@chenzy-design/core 0.3.1 → 0.4.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 (283) hide show
  1. package/dist/ai-chat-dialogue.d.ts +300 -0
  2. package/dist/ai-chat-dialogue.d.ts.map +1 -0
  3. package/dist/ai-chat-dialogue.js +699 -0
  4. package/dist/ai-chat-dialogue.js.map +1 -0
  5. package/dist/ai-chat-dialogue.test.d.ts +2 -0
  6. package/dist/ai-chat-dialogue.test.d.ts.map +1 -0
  7. package/dist/ai-chat-dialogue.test.js +338 -0
  8. package/dist/ai-chat-dialogue.test.js.map +1 -0
  9. package/dist/ai-chat-input.d.ts +191 -0
  10. package/dist/ai-chat-input.d.ts.map +1 -0
  11. package/dist/ai-chat-input.js +274 -0
  12. package/dist/ai-chat-input.js.map +1 -0
  13. package/dist/ai-chat-input.test.d.ts +2 -0
  14. package/dist/ai-chat-input.test.d.ts.map +1 -0
  15. package/dist/ai-chat-input.test.js +339 -0
  16. package/dist/ai-chat-input.test.js.map +1 -0
  17. package/dist/audio-player.d.ts +154 -0
  18. package/dist/audio-player.d.ts.map +1 -0
  19. package/dist/audio-player.js +254 -0
  20. package/dist/audio-player.js.map +1 -0
  21. package/dist/audio-player.test.d.ts +2 -0
  22. package/dist/audio-player.test.d.ts.map +1 -0
  23. package/dist/audio-player.test.js +275 -0
  24. package/dist/audio-player.test.js.map +1 -0
  25. package/dist/back-top.d.ts +4 -1
  26. package/dist/back-top.d.ts.map +1 -1
  27. package/dist/back-top.js +5 -2
  28. package/dist/back-top.js.map +1 -1
  29. package/dist/back-top.test.js +3 -2
  30. package/dist/back-top.test.js.map +1 -1
  31. package/dist/calendar.d.ts +132 -44
  32. package/dist/calendar.d.ts.map +1 -1
  33. package/dist/calendar.js +413 -70
  34. package/dist/calendar.js.map +1 -1
  35. package/dist/calendar.test.js +160 -76
  36. package/dist/calendar.test.js.map +1 -1
  37. package/dist/chat.d.ts +172 -0
  38. package/dist/chat.d.ts.map +1 -0
  39. package/dist/chat.js +210 -0
  40. package/dist/chat.js.map +1 -0
  41. package/dist/chat.test.d.ts +2 -0
  42. package/dist/chat.test.d.ts.map +1 -0
  43. package/dist/chat.test.js +181 -0
  44. package/dist/chat.test.js.map +1 -0
  45. package/dist/code-highlight.d.ts +30 -0
  46. package/dist/code-highlight.d.ts.map +1 -0
  47. package/dist/code-highlight.js +37 -0
  48. package/dist/code-highlight.js.map +1 -0
  49. package/dist/code-highlight.test.d.ts +2 -0
  50. package/dist/code-highlight.test.d.ts.map +1 -0
  51. package/dist/code-highlight.test.js +36 -0
  52. package/dist/code-highlight.test.js.map +1 -0
  53. package/dist/collapsible.d.ts +41 -0
  54. package/dist/collapsible.d.ts.map +1 -0
  55. package/dist/collapsible.js +33 -0
  56. package/dist/collapsible.js.map +1 -0
  57. package/dist/collapsible.test.d.ts +2 -0
  58. package/dist/collapsible.test.d.ts.map +1 -0
  59. package/dist/collapsible.test.js +57 -0
  60. package/dist/collapsible.test.js.map +1 -0
  61. package/dist/color-value.d.ts +60 -0
  62. package/dist/color-value.d.ts.map +1 -0
  63. package/dist/color-value.js +165 -0
  64. package/dist/color-value.js.map +1 -0
  65. package/dist/color-value.test.d.ts +2 -0
  66. package/dist/color-value.test.d.ts.map +1 -0
  67. package/dist/color-value.test.js +104 -0
  68. package/dist/color-value.test.js.map +1 -0
  69. package/dist/config-provider.d.ts +76 -37
  70. package/dist/config-provider.d.ts.map +1 -1
  71. package/dist/config-provider.js +107 -32
  72. package/dist/config-provider.js.map +1 -1
  73. package/dist/config-provider.test.js +123 -60
  74. package/dist/config-provider.test.js.map +1 -1
  75. package/dist/cropper.d.ts +164 -0
  76. package/dist/cropper.d.ts.map +1 -0
  77. package/dist/cropper.js +841 -0
  78. package/dist/cropper.js.map +1 -0
  79. package/dist/cropper.test.d.ts +2 -0
  80. package/dist/cropper.test.d.ts.map +1 -0
  81. package/dist/cropper.test.js +259 -0
  82. package/dist/cropper.test.js.map +1 -0
  83. package/dist/drag-move.d.ts +119 -0
  84. package/dist/drag-move.d.ts.map +1 -0
  85. package/dist/drag-move.js +237 -0
  86. package/dist/drag-move.js.map +1 -0
  87. package/dist/drag-move.test.d.ts +2 -0
  88. package/dist/drag-move.test.d.ts.map +1 -0
  89. package/dist/drag-move.test.js +304 -0
  90. package/dist/drag-move.test.js.map +1 -0
  91. package/dist/editable.d.ts +24 -4
  92. package/dist/editable.d.ts.map +1 -1
  93. package/dist/editable.js +18 -0
  94. package/dist/editable.js.map +1 -1
  95. package/dist/editable.test.js +55 -2
  96. package/dist/editable.test.js.map +1 -1
  97. package/dist/ellipsis.d.ts +13 -0
  98. package/dist/ellipsis.d.ts.map +1 -1
  99. package/dist/ellipsis.js +36 -0
  100. package/dist/ellipsis.js.map +1 -1
  101. package/dist/ellipsis.test.js +37 -1
  102. package/dist/ellipsis.test.js.map +1 -1
  103. package/dist/form-path.d.ts +19 -0
  104. package/dist/form-path.d.ts.map +1 -0
  105. package/dist/form-path.js +97 -0
  106. package/dist/form-path.js.map +1 -0
  107. package/dist/form-path.test.d.ts +2 -0
  108. package/dist/form-path.test.d.ts.map +1 -0
  109. package/dist/form-path.test.js +57 -0
  110. package/dist/form-path.test.js.map +1 -0
  111. package/dist/form-validate.d.ts +13 -0
  112. package/dist/form-validate.d.ts.map +1 -0
  113. package/dist/form-validate.js +204 -0
  114. package/dist/form-validate.js.map +1 -0
  115. package/dist/form.d.ts +91 -18
  116. package/dist/form.d.ts.map +1 -1
  117. package/dist/form.js +170 -115
  118. package/dist/form.js.map +1 -1
  119. package/dist/form.test.js +349 -76
  120. package/dist/form.test.js.map +1 -1
  121. package/dist/highlight.d.ts +42 -32
  122. package/dist/highlight.d.ts.map +1 -1
  123. package/dist/highlight.js +67 -41
  124. package/dist/highlight.js.map +1 -1
  125. package/dist/highlight.test.js +73 -32
  126. package/dist/highlight.test.js.map +1 -1
  127. package/dist/hotkeys.d.ts +151 -0
  128. package/dist/hotkeys.d.ts.map +1 -0
  129. package/dist/hotkeys.js +188 -0
  130. package/dist/hotkeys.js.map +1 -0
  131. package/dist/hotkeys.test.d.ts +2 -0
  132. package/dist/hotkeys.test.d.ts.map +1 -0
  133. package/dist/hotkeys.test.js +170 -0
  134. package/dist/hotkeys.test.js.map +1 -0
  135. package/dist/index.d.ts +33 -17
  136. package/dist/index.d.ts.map +1 -1
  137. package/dist/index.js +32 -13
  138. package/dist/index.js.map +1 -1
  139. package/dist/input.d.ts +34 -0
  140. package/dist/input.d.ts.map +1 -0
  141. package/dist/input.js +54 -0
  142. package/dist/input.js.map +1 -0
  143. package/dist/input.test.d.ts +2 -0
  144. package/dist/input.test.d.ts.map +1 -0
  145. package/dist/input.test.js +56 -0
  146. package/dist/input.test.js.map +1 -0
  147. package/dist/markdown-render.d.ts +49 -0
  148. package/dist/markdown-render.d.ts.map +1 -0
  149. package/dist/markdown-render.js +61 -0
  150. package/dist/markdown-render.js.map +1 -0
  151. package/dist/markdown-render.test.d.ts +2 -0
  152. package/dist/markdown-render.test.d.ts.map +1 -0
  153. package/dist/markdown-render.test.js +106 -0
  154. package/dist/markdown-render.test.js.map +1 -0
  155. package/dist/notification.d.ts +40 -31
  156. package/dist/notification.d.ts.map +1 -1
  157. package/dist/notification.js +86 -70
  158. package/dist/notification.js.map +1 -1
  159. package/dist/notification.test.js +62 -39
  160. package/dist/notification.test.js.map +1 -1
  161. package/dist/numeral.d.ts +32 -0
  162. package/dist/numeral.d.ts.map +1 -0
  163. package/dist/numeral.js +67 -0
  164. package/dist/numeral.js.map +1 -0
  165. package/dist/numeral.test.d.ts +2 -0
  166. package/dist/numeral.test.d.ts.map +1 -0
  167. package/dist/numeral.test.js +59 -0
  168. package/dist/numeral.test.js.map +1 -0
  169. package/dist/overflow-list.d.ts +9 -40
  170. package/dist/overflow-list.d.ts.map +1 -1
  171. package/dist/overflow-list.js +9 -70
  172. package/dist/overflow-list.js.map +1 -1
  173. package/dist/overflow-list.test.js +1 -122
  174. package/dist/overflow-list.test.js.map +1 -1
  175. package/dist/pagination.d.ts +17 -0
  176. package/dist/pagination.d.ts.map +1 -1
  177. package/dist/pagination.js +48 -0
  178. package/dist/pagination.js.map +1 -1
  179. package/dist/pagination.test.js +40 -1
  180. package/dist/pagination.test.js.map +1 -1
  181. package/dist/pincode.d.ts +79 -0
  182. package/dist/pincode.d.ts.map +1 -0
  183. package/dist/pincode.js +119 -0
  184. package/dist/pincode.js.map +1 -0
  185. package/dist/pincode.test.d.ts +2 -0
  186. package/dist/pincode.test.d.ts.map +1 -0
  187. package/dist/pincode.test.js +151 -0
  188. package/dist/pincode.test.js.map +1 -0
  189. package/dist/progress.d.ts +32 -30
  190. package/dist/progress.d.ts.map +1 -1
  191. package/dist/progress.js +257 -64
  192. package/dist/progress.js.map +1 -1
  193. package/dist/progress.test.js +50 -47
  194. package/dist/progress.test.js.map +1 -1
  195. package/dist/resizable.d.ts +200 -0
  196. package/dist/resizable.d.ts.map +1 -0
  197. package/dist/resizable.js +329 -0
  198. package/dist/resizable.js.map +1 -0
  199. package/dist/resizable.test.d.ts +2 -0
  200. package/dist/resizable.test.d.ts.map +1 -0
  201. package/dist/resizable.test.js +302 -0
  202. package/dist/resizable.test.js.map +1 -0
  203. package/dist/scroll-list.d.ts +69 -62
  204. package/dist/scroll-list.d.ts.map +1 -1
  205. package/dist/scroll-list.js +103 -144
  206. package/dist/scroll-list.js.map +1 -1
  207. package/dist/scroll-list.test.js +100 -110
  208. package/dist/scroll-list.test.js.map +1 -1
  209. package/dist/sidebar.d.ts +46 -0
  210. package/dist/sidebar.d.ts.map +1 -0
  211. package/dist/sidebar.js +65 -0
  212. package/dist/sidebar.js.map +1 -0
  213. package/dist/sidebar.test.d.ts +2 -0
  214. package/dist/sidebar.test.d.ts.map +1 -0
  215. package/dist/sidebar.test.js +88 -0
  216. package/dist/sidebar.test.js.map +1 -0
  217. package/dist/spin.d.ts +5 -5
  218. package/dist/spin.d.ts.map +1 -1
  219. package/dist/spin.js +13 -39
  220. package/dist/spin.js.map +1 -1
  221. package/dist/spin.test.js +2 -26
  222. package/dist/spin.test.js.map +1 -1
  223. package/dist/toast.d.ts +33 -30
  224. package/dist/toast.d.ts.map +1 -1
  225. package/dist/toast.js +77 -72
  226. package/dist/toast.js.map +1 -1
  227. package/dist/toast.test.js +63 -37
  228. package/dist/toast.test.js.map +1 -1
  229. package/dist/tree.d.ts +22 -5
  230. package/dist/tree.d.ts.map +1 -1
  231. package/dist/tree.js +61 -9
  232. package/dist/tree.js.map +1 -1
  233. package/dist/tree.test.js +72 -1
  234. package/dist/tree.test.js.map +1 -1
  235. package/dist/user-guide.d.ts +73 -0
  236. package/dist/user-guide.d.ts.map +1 -0
  237. package/dist/user-guide.js +95 -0
  238. package/dist/user-guide.js.map +1 -0
  239. package/dist/user-guide.test.d.ts +2 -0
  240. package/dist/user-guide.test.d.ts.map +1 -0
  241. package/dist/user-guide.test.js +109 -0
  242. package/dist/user-guide.test.js.map +1 -0
  243. package/dist/video-player.d.ts +196 -0
  244. package/dist/video-player.d.ts.map +1 -0
  245. package/dist/video-player.js +461 -0
  246. package/dist/video-player.js.map +1 -0
  247. package/dist/video-player.test.d.ts +2 -0
  248. package/dist/video-player.test.d.ts.map +1 -0
  249. package/dist/video-player.test.js +435 -0
  250. package/dist/video-player.test.js.map +1 -0
  251. package/package.json +17 -1
  252. package/dist/banner.d.ts +0 -19
  253. package/dist/banner.d.ts.map +0 -1
  254. package/dist/banner.js +0 -20
  255. package/dist/banner.js.map +0 -1
  256. package/dist/banner.test.d.ts +0 -2
  257. package/dist/banner.test.d.ts.map +0 -1
  258. package/dist/banner.test.js +0 -29
  259. package/dist/banner.test.js.map +0 -1
  260. package/dist/breakpoints.d.ts +0 -30
  261. package/dist/breakpoints.d.ts.map +0 -1
  262. package/dist/breakpoints.js +0 -45
  263. package/dist/breakpoints.js.map +0 -1
  264. package/dist/breakpoints.test.d.ts +0 -2
  265. package/dist/breakpoints.test.d.ts.map +0 -1
  266. package/dist/breakpoints.test.js +0 -46
  267. package/dist/breakpoints.test.js.map +0 -1
  268. package/dist/lottie-icon.d.ts +0 -88
  269. package/dist/lottie-icon.d.ts.map +0 -1
  270. package/dist/lottie-icon.js +0 -84
  271. package/dist/lottie-icon.js.map +0 -1
  272. package/dist/lottie-icon.test.d.ts +0 -2
  273. package/dist/lottie-icon.test.d.ts.map +0 -1
  274. package/dist/lottie-icon.test.js +0 -88
  275. package/dist/lottie-icon.test.js.map +0 -1
  276. package/dist/sider.d.ts +0 -26
  277. package/dist/sider.d.ts.map +0 -1
  278. package/dist/sider.js +0 -55
  279. package/dist/sider.js.map +0 -1
  280. package/dist/sider.test.d.ts +0 -2
  281. package/dist/sider.test.d.ts.map +0 -1
  282. package/dist/sider.test.js +0 -29
  283. package/dist/sider.test.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-chat-dialogue.js","sourceRoot":"","sources":["../src/ai-chat-dialogue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ai-chat-dialogue.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-chat-dialogue.test.d.ts","sourceRoot":"","sources":["../src/ai-chat-dialogue.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,338 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { describe, it, expect } from 'vitest';
3
+ import { responseToMessage, chatCompletionToMessage, streamingResponseToMessage, streamingChatCompletionToMessage, dialogueMessageToInput, formatToolArguments, toolCallStatus, toolCallView, contentItemType, normalizeDialogueContent, } from './ai-chat-dialogue.js';
4
+ describe('ai-chat-dialogue · responseToMessage', () => {
5
+ it('Response Object → assistant Message,output 作为 content', () => {
6
+ const resp = {
7
+ id: 'resp_1',
8
+ model: 'gpt-5',
9
+ status: 'completed',
10
+ created_at: 1234,
11
+ output_text: 'hello',
12
+ output: [{ type: 'message', content: [{ type: 'output_text', text: 'hello' }] }],
13
+ };
14
+ const msg = responseToMessage(resp);
15
+ expect(msg.id).toBe('resp_1');
16
+ expect(msg.role).toBe('assistant');
17
+ expect(msg.status).toBe('completed');
18
+ expect(msg.model).toBe('gpt-5');
19
+ expect(msg.output_text).toBe('hello');
20
+ expect(Array.isArray(msg.content)).toBe(true);
21
+ });
22
+ });
23
+ describe('ai-chat-dialogue · chatCompletionToMessage', () => {
24
+ it('单 choice text → 一条 Message,含 output_text 块', () => {
25
+ const cc = {
26
+ id: 'cc_1',
27
+ choices: [{ message: { role: 'assistant', content: 'hi there', refusal: '' } }],
28
+ };
29
+ const msgs = chatCompletionToMessage(cc);
30
+ expect(msgs).toHaveLength(1);
31
+ expect(msgs[0].id).toBe('cc_1');
32
+ expect(msgs[0].status).toBe('completed');
33
+ const content = msgs[0].content;
34
+ expect(content[0].type).toBe('message');
35
+ const inner = content[0].content;
36
+ expect(inner[0].type).toBe('output_text');
37
+ expect(inner[0].text).toBe('hi there');
38
+ });
39
+ it('多 choice(n>1)→ 多条 Message', () => {
40
+ const cc = {
41
+ id: 'cc_2',
42
+ choices: [
43
+ { message: { role: 'assistant', content: 'a', refusal: '' } },
44
+ { message: { role: 'assistant', content: 'b', refusal: '' } },
45
+ ],
46
+ };
47
+ expect(chatCompletionToMessage(cc)).toHaveLength(2);
48
+ });
49
+ it('annotations 映射到 output_text.annotations', () => {
50
+ const cc = {
51
+ id: 'cc_3',
52
+ choices: [
53
+ {
54
+ message: {
55
+ role: 'assistant',
56
+ content: 'see source',
57
+ refusal: '',
58
+ annotations: [{ type: 'url_citation', url_citation: { url: 'https://x.com', title: 'X' } }],
59
+ },
60
+ },
61
+ ],
62
+ };
63
+ const content = chatCompletionToMessage(cc)[0].content;
64
+ const outputText = content[0].content[0];
65
+ expect(outputText.annotations[0].url).toBe('https://x.com');
66
+ });
67
+ it('function_call → function_call 块', () => {
68
+ const cc = {
69
+ id: 'cc_4',
70
+ choices: [
71
+ {
72
+ message: {
73
+ role: 'assistant',
74
+ content: '',
75
+ refusal: '',
76
+ function_call: { name: 'get_weather', arguments: '{"city":"SF"}' },
77
+ },
78
+ },
79
+ ],
80
+ };
81
+ const content = chatCompletionToMessage(cc)[0].content;
82
+ const fc = content.find((c) => c.type === 'function_call');
83
+ expect(fc).toBeDefined();
84
+ expect(fc.name).toBe('get_weather');
85
+ expect(fc.status).toBe('completed');
86
+ });
87
+ it('tool_calls(function)→ function_call 块', () => {
88
+ const cc = {
89
+ id: 'cc_5',
90
+ choices: [
91
+ {
92
+ message: {
93
+ role: 'assistant',
94
+ content: '',
95
+ refusal: '',
96
+ tool_calls: [{ type: 'function', function: { name: 'search', arguments: '{}' } }],
97
+ },
98
+ },
99
+ ],
100
+ };
101
+ const content = chatCompletionToMessage(cc)[0].content;
102
+ expect(content.some((c) => c.type === 'function_call' && c.name === 'search')).toBe(true);
103
+ });
104
+ it('audio → audio 块', () => {
105
+ const cc = {
106
+ id: 'cc_6',
107
+ choices: [{ message: { role: 'assistant', content: '', refusal: '', audio: { data: 'x' } } }],
108
+ };
109
+ const content = chatCompletionToMessage(cc)[0].content;
110
+ expect(content.some((c) => c.type === 'audio')).toBe(true);
111
+ });
112
+ });
113
+ describe('ai-chat-dialogue · helpers', () => {
114
+ it('contentItemType 取 type', () => {
115
+ expect(contentItemType({ type: 'reasoning' })).toBe('reasoning');
116
+ expect(contentItemType({})).toBe('unknown');
117
+ });
118
+ it('normalizeDialogueContent:string → 单 output_text 块', () => {
119
+ const items = normalizeDialogueContent('plain text');
120
+ expect(items).toHaveLength(1);
121
+ const inner = items[0].content[0];
122
+ expect(inner.text).toBe('plain text');
123
+ });
124
+ it('normalizeDialogueContent:数组原样返回、null → []', () => {
125
+ const arr = [{ type: 'reasoning' }];
126
+ expect(normalizeDialogueContent(arr)).toBe(arr);
127
+ expect(normalizeDialogueContent(undefined)).toEqual([]);
128
+ });
129
+ });
130
+ describe('ai-chat-dialogue · streamingResponseToMessage', () => {
131
+ it('无块 → null', () => {
132
+ expect(streamingResponseToMessage([])).toBeNull();
133
+ expect(streamingResponseToMessage(null)).toBeNull();
134
+ });
135
+ it('快速路径:末块 response.completed 直接返回完整消息', () => {
136
+ const chunks = [
137
+ {
138
+ type: 'response.completed',
139
+ response: {
140
+ id: 'r1',
141
+ model: 'gpt-5',
142
+ status: 'completed',
143
+ output: [{ type: 'message', content: [{ type: 'output_text', text: 'hi' }] }],
144
+ output_text: 'hi',
145
+ created_at: 123,
146
+ },
147
+ },
148
+ ];
149
+ const res = streamingResponseToMessage(chunks);
150
+ expect(res.nextState).toBeNull();
151
+ expect(res.message?.id).toBe('r1');
152
+ expect(res.message?.output_text).toBe('hi');
153
+ expect(res.message?.status).toBe('completed');
154
+ });
155
+ it('顺序 delta 累积 output_text(含 created + item.added)', () => {
156
+ const chunks = [
157
+ { type: 'response.created', sequence_number: 0, response: { id: 'r2', model: 'm', created_at: 1 } },
158
+ { type: 'response.output_item.added', sequence_number: 1, output_index: 0, item: { type: 'message' } },
159
+ { type: 'response.output_text.delta', sequence_number: 2, output_index: 0, content_index: 0, delta: '你' },
160
+ { type: 'response.output_text.delta', sequence_number: 3, output_index: 0, content_index: 0, delta: '好' },
161
+ ];
162
+ const res = streamingResponseToMessage(chunks);
163
+ expect(res.message?.id).toBe('r2');
164
+ // 增量下 output_text 提取顶层 output_text item;message 类型的文本在嵌套 content 里。
165
+ const inner = (res.message?.content)[0].content[0];
166
+ expect(inner.text).toBe('你好');
167
+ expect(res.message?.status).toBe('in_progress');
168
+ });
169
+ it('增量:分两次调用累积(第二次传 nextState)', () => {
170
+ const first = streamingResponseToMessage([
171
+ { type: 'response.output_item.added', sequence_number: 0, output_index: 0, item: { type: 'message' } },
172
+ { type: 'response.output_text.delta', sequence_number: 1, output_index: 0, content_index: 0, delta: 'a' },
173
+ ]);
174
+ const second = streamingResponseToMessage([{ type: 'response.output_text.delta', sequence_number: 2, output_index: 0, content_index: 0, delta: 'b' }], first.nextState);
175
+ expect((second.message?.content)[0].content[0].text).toBe('ab');
176
+ });
177
+ it('无序缓冲:块 [0,2] 先到缓冲 2,[1] 补齐后按序处理 0,1,2', () => {
178
+ const s1 = streamingResponseToMessage([
179
+ { type: 'response.output_item.added', sequence_number: 0, output_index: 0, item: { type: 'message' } },
180
+ { type: 'response.output_text.delta', sequence_number: 2, output_index: 0, content_index: 0, delta: 'B' },
181
+ ]);
182
+ // seq 2 还没处理(等 seq 1)
183
+ expect(s1.message?.output_text).toBe('');
184
+ const s2 = streamingResponseToMessage([{ type: 'response.output_text.delta', sequence_number: 1, output_index: 0, content_index: 0, delta: 'A' }], s1.nextState);
185
+ expect((s2.message?.content)[0].content[0].text).toBe('AB');
186
+ });
187
+ it('reasoning delta 累积到 summary', () => {
188
+ const res = streamingResponseToMessage([
189
+ { type: 'response.output_item.added', sequence_number: 0, output_index: 0, item: { type: 'reasoning' } },
190
+ { type: 'response.reasoning_summary_text.delta', sequence_number: 1, output_index: 0, summary_index: 0, delta: '思考' },
191
+ ]);
192
+ const item = (res.message?.content)[0];
193
+ expect(item.summary[0].text).toBe('思考');
194
+ });
195
+ it('function_call_arguments delta 累积 + done 设 name', () => {
196
+ const res = streamingResponseToMessage([
197
+ { type: 'response.output_item.added', sequence_number: 0, output_index: 0, item: { type: 'function_call' } },
198
+ { type: 'response.function_call_arguments.delta', sequence_number: 1, output_index: 0, delta: '{"a":' },
199
+ { type: 'response.function_call_arguments.done', sequence_number: 2, output_index: 0, name: 'fn', arguments: '{"a":1}' },
200
+ ]);
201
+ const item = (res.message?.content)[0];
202
+ expect(item.name).toBe('fn');
203
+ expect(item.arguments).toBe('{"a":1}');
204
+ });
205
+ it('error 块记录到 message.error', () => {
206
+ const res = streamingResponseToMessage([
207
+ { type: 'response.created', sequence_number: 0, response: { id: 'r' } },
208
+ { type: 'error', sequence_number: 1, code: 'E', message: 'boom' },
209
+ ]);
210
+ expect(res.message?.error).toEqual({ code: 'E', message: 'boom' });
211
+ });
212
+ });
213
+ describe('ai-chat-dialogue · streamingChatCompletionToMessage', () => {
214
+ const chunk = (id, delta, finish = null, index = 0) => ({
215
+ id,
216
+ choices: [{ index, delta, finish_reason: finish }],
217
+ });
218
+ it('累积 content delta,finish_reason 非 null → completed', () => {
219
+ const res = streamingChatCompletionToMessage([
220
+ chunk('c1', { content: 'Hel' }),
221
+ chunk('c1', { content: 'lo' }, 'stop'),
222
+ ]);
223
+ expect(res.messages).toHaveLength(1);
224
+ const m = res.messages[0];
225
+ expect(m.status).toBe('completed');
226
+ const text = m.content[0].content[0].text;
227
+ expect(text).toBe('Hello');
228
+ });
229
+ it('增量:第二次调用传 state 只处理新片段', () => {
230
+ const r1 = streamingChatCompletionToMessage([chunk('c2', { content: 'A' })]);
231
+ const r2 = streamingChatCompletionToMessage([chunk('c2', { content: 'A' }), chunk('c2', { content: 'B' }, 'stop')], r1.state);
232
+ const text = r2.messages[0].content[0].content[0].text;
233
+ expect(text).toBe('AB');
234
+ });
235
+ it('tool_calls 累积(function)', () => {
236
+ const res = streamingChatCompletionToMessage([
237
+ chunk('c3', { tool_calls: [{ id: 't1', function: { name: 'foo', arguments: '{"x":' } }] }),
238
+ chunk('c3', { tool_calls: [{ id: 't1', function: { name: '', arguments: '1}' } }] }, 'tool_calls'),
239
+ ]);
240
+ const tool = res.messages[0].content.find((c) => c.type === 'function_call');
241
+ expect(tool.name).toBe('foo');
242
+ // 对齐 Semi:arguments 累积门控在 function.name 非空的段;后续 name 为空的段不再累积
243
+ // (保真 Semi 行为,即末段 name 空时其 arguments 不拼接),故停在首段的 '{"x":'。
244
+ expect(tool.arguments).toBe('{"x":');
245
+ });
246
+ it('多 choice.index 分组产出多条消息', () => {
247
+ const res = streamingChatCompletionToMessage([
248
+ { id: 'c4', choices: [
249
+ { index: 0, delta: { content: 'a' }, finish_reason: 'stop' },
250
+ { index: 1, delta: { content: 'b' }, finish_reason: 'stop' },
251
+ ] },
252
+ ]);
253
+ expect(res.messages).toHaveLength(2);
254
+ });
255
+ });
256
+ describe('ai-chat-dialogue · dialogueMessageToInput', () => {
257
+ it('抽取 input_text/output_text → inputContents 文本段', () => {
258
+ const msg = {
259
+ id: 'm1',
260
+ role: 'user',
261
+ content: [
262
+ { type: 'message', content: [{ type: 'input_text', text: '你好' }] },
263
+ { type: 'message', content: [{ type: 'output_text', text: '世界' }] },
264
+ ],
265
+ };
266
+ const payload = dialogueMessageToInput(msg);
267
+ expect(payload.inputContents).toEqual([
268
+ { type: 'text', text: '你好' },
269
+ { type: 'text', text: '世界' },
270
+ ]);
271
+ });
272
+ it('string content → 用 output_text', () => {
273
+ const payload = dialogueMessageToInput({ id: 'm', role: 'user', content: 'hi', output_text: 'hi' });
274
+ expect(payload.inputContents).toEqual([{ type: 'text', text: 'hi' }]);
275
+ });
276
+ it('携带 attachments/references 时透传', () => {
277
+ const payload = dialogueMessageToInput({
278
+ id: 'm',
279
+ role: 'user',
280
+ content: [{ type: 'message', content: [{ type: 'input_text', text: 'x' }] }],
281
+ attachments: [{ uid: '1' }],
282
+ references: [{ type: 'file', id: 'r' }],
283
+ });
284
+ expect(payload.attachments).toHaveLength(1);
285
+ expect(payload.references).toHaveLength(1);
286
+ });
287
+ });
288
+ describe('ai-chat-dialogue · 工具块 helpers', () => {
289
+ it('formatToolArguments:JSON 字符串美化', () => {
290
+ expect(formatToolArguments('{"a":1,"b":2}')).toBe('{\n "a": 1,\n "b": 2\n}');
291
+ });
292
+ it('formatToolArguments:对象美化', () => {
293
+ expect(formatToolArguments({ x: 1 })).toBe('{\n "x": 1\n}');
294
+ });
295
+ it('formatToolArguments:未完成 JSON 片段原样返回', () => {
296
+ expect(formatToolArguments('{"a":')).toBe('{"a":');
297
+ });
298
+ it('formatToolArguments:null/undefined → 空串', () => {
299
+ expect(formatToolArguments(null)).toBe('');
300
+ expect(formatToolArguments(undefined)).toBe('');
301
+ });
302
+ it('toolCallStatus:归一各状态', () => {
303
+ expect(toolCallStatus({ status: 'in_progress' })).toBe('in_progress');
304
+ expect(toolCallStatus({ status: 'queued' })).toBe('in_progress');
305
+ expect(toolCallStatus({ status: 'failed' })).toBe('failed');
306
+ expect(toolCallStatus({ status: 'incomplete' })).toBe('incomplete');
307
+ expect(toolCallStatus({})).toBe('completed');
308
+ });
309
+ it('toolCallView:抽取 name/arguments/output/callId', () => {
310
+ const view = toolCallView({
311
+ type: 'function_call',
312
+ name: 'get_weather',
313
+ arguments: '{"city":"SF"}',
314
+ output: '{"temp":20}',
315
+ call_id: 'call_1',
316
+ status: 'completed',
317
+ });
318
+ expect(view.name).toBe('get_weather');
319
+ expect(view.arguments).toBe('{\n "city": "SF"\n}');
320
+ expect(view.output).toBe('{\n "temp": 20\n}');
321
+ expect(view.callId).toBe('call_1');
322
+ expect(view.status).toBe('completed');
323
+ });
324
+ it('toolCallView:MCP serverLabel + custom input', () => {
325
+ const view = toolCallView({
326
+ type: 'mcp_call',
327
+ name: 'search',
328
+ arguments: '{}',
329
+ input: '{"q":"x"}',
330
+ server_label: 'fs-server',
331
+ id: 'mcp_1',
332
+ });
333
+ expect(view.serverLabel).toBe('fs-server');
334
+ expect(view.input).toBe('{\n "q": "x"\n}');
335
+ expect(view.callId).toBe('mcp_1');
336
+ });
337
+ });
338
+ //# sourceMappingURL=ai-chat-dialogue.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-chat-dialogue.test.js","sourceRoot":"","sources":["../src/ai-chat-dialogue.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,191 @@
1
+ /**
2
+ * createAIChatInput headless — framework-agnostic logic for AIChatInput。
3
+ * 对齐 Semi AIChatInput,纯逻辑(可单测),tiptap Editor 实例与 DOM 归 svelte 渲染层:
4
+ * - 阶段 1:发送态判定(canSend)、快捷键判定(sendHotKey)、MessageContent 组装、doc→Content[] 归一。
5
+ * - 阶段 2:suggestion 面板键盘导航(环绕 index)、suggestion/reference 显示文本归一。
6
+ * - 阶段 3:skill 归一 / getSkillSlotHTML / skillHotKey 判定。
7
+ * - 阶段 4:配置区 setField/removeField(不可变)。
8
+ * - 阶段 5:Adapter 桥(messageToChatInput / chatInputToChatCompletion)接 AIChatDialogue / OpenAI API。
9
+ * 见 specs/components/show/AIChatInput.spec.md §2/§4/§5。
10
+ */
11
+ import type { AIDialogueMessage } from './ai-chat-dialogue.js';
12
+ /** 富文本输出块(tiptap JSON 经 transformer 归一后的一段内容)。阶段 1 为纯文本段。 */
13
+ export interface AIChatInputContent {
14
+ type: string;
15
+ [key: string]: unknown;
16
+ }
17
+ /** 上传附件(对齐 Semi Attachment,阶段 1 仅透传,不解析 children)。 */
18
+ export interface AIChatInputAttachment {
19
+ uid?: string;
20
+ name?: string;
21
+ status?: string;
22
+ size?: string | number;
23
+ url?: string;
24
+ type?: 'file' | 'directory';
25
+ [key: string]: unknown;
26
+ }
27
+ /**
28
+ * 引用块(阶段 2 渲染于编辑区上方 top area)。对齐 Semi Reference:
29
+ * type='text' 时显示 content,其它类型显示 name;图片类型(type='image' 或 url 是图)显示缩略图。
30
+ */
31
+ export interface AIChatInputReference {
32
+ type: string;
33
+ id: string;
34
+ /** type='text' 时的文本内容。 */
35
+ content?: string;
36
+ /** 非文本类型的显示名。 */
37
+ name?: string;
38
+ /** 图片/文件的 URL(图片类型用作缩略图 src)。 */
39
+ url?: string;
40
+ [key: string]: unknown;
41
+ }
42
+ /** onMessageSend 载荷,对齐 Semi MessageContent。 */
43
+ export interface AIChatInputMessageContent {
44
+ references?: AIChatInputReference[];
45
+ attachments?: AIChatInputAttachment[];
46
+ inputContents?: AIChatInputContent[];
47
+ setup?: Record<string, unknown>;
48
+ }
49
+ /** 发送快捷键:enter = Enter 发送 / Shift+Enter 换行;shift+enter 则相反。 */
50
+ export type AIChatInputSendHotKey = 'enter' | 'shift+enter';
51
+ /** onContentChange 载荷(阶段 1:纯文本 + html + json)。 */
52
+ export interface AIChatInputChangePayload {
53
+ text: string;
54
+ html: string;
55
+ json: unknown;
56
+ }
57
+ /**
58
+ * 判定一次 Enter 键是否应触发发送(而非换行)。
59
+ * - sendHotKey='enter':裸 Enter 发送,Shift+Enter 换行。
60
+ * - sendHotKey='shift+enter':Shift+Enter 发送,裸 Enter 换行。
61
+ * IME 组字中(composing)永不发送,交由渲染层前置拦截。
62
+ */
63
+ export declare function isSendHotKey(key: string, shiftKey: boolean, sendHotKey: AIChatInputSendHotKey): boolean;
64
+ /**
65
+ * 解析当前是否可发送。
66
+ * - 显式传入 canSend(受控)时直接返回它。
67
+ * - 否则:富文本非空 或 有附件 即可发送。
68
+ */
69
+ export declare function resolveCanSend(params: {
70
+ canSend?: boolean | undefined;
71
+ isEmpty: boolean;
72
+ attachments?: AIChatInputAttachment[] | undefined;
73
+ }): boolean;
74
+ /** 组装 onMessageSend 载荷。空字段省略,保持载荷精简。 */
75
+ export declare function buildMessageContent(params: {
76
+ inputContents?: AIChatInputContent[] | undefined;
77
+ attachments?: AIChatInputAttachment[] | undefined;
78
+ references?: AIChatInputReference[] | undefined;
79
+ setup?: Record<string, unknown> | undefined;
80
+ }): AIChatInputMessageContent;
81
+ /**
82
+ * 把 tiptap 文档 JSON 归一为 AIChatInputContent[](阶段 1)。
83
+ * 阶段 1 只有段落文本:每个顶层块产出一段 `{ type:'text', text }`,空段丢弃。
84
+ * transformer(Map<nodeType, fn>)可覆盖特定节点的转换(对齐 Semi transformer)。
85
+ * 阶段 2+ 的 input-slot/select-slot 节点在此扩展。
86
+ */
87
+ export declare function transformDocToContents(json: unknown, transformer?: Map<string, (node: unknown) => AIChatInputContent>): AIChatInputContent[];
88
+ /** 零宽字符(对齐 Semi ZERO_WIDTH_CHAR):inputSlot 空态占位锚点,归一时剔除。 */
89
+ export declare const AI_CHAT_INPUT_ZERO_WIDTH = "\uFEFF";
90
+ /**
91
+ * 建议项(对齐 Semi Suggestion):纯字符串或含 content 字段的对象。
92
+ * 面板点击/回车后把它交给 onSuggestClick,由消费方决定如何用(通常插入编辑器)。
93
+ */
94
+ export type AIChatInputSuggestion = string | {
95
+ content: string;
96
+ [key: string]: unknown;
97
+ };
98
+ /** 取建议项的显示文本(string 直接返回,对象取 content)。 */
99
+ export declare function suggestionContent(suggestion: AIChatInputSuggestion): string;
100
+ /**
101
+ * 建议面板键盘导航:从 current 沿 dir(-1=上 / +1=下)环绕移动,返回新 activeIndex。
102
+ * - len<=0 返回 -1(无项)。
103
+ * - current<0(未选中)时:向下从 0 开始、向上从末项开始。
104
+ */
105
+ export declare function nextSuggestionIndex(current: number, len: number, dir: -1 | 1): number;
106
+ /**
107
+ * 取引用项的显示文本:type='text' 用 content,否则用 name(缺省回退到 id)。
108
+ */
109
+ export declare function referenceLabel(ref: AIChatInputReference): string;
110
+ /** 该引用是否应按图片渲染(type='image' 或 url 以常见图片扩展名结尾)。 */
111
+ export declare function isImageReference(ref: AIChatInputReference): boolean;
112
+ /**
113
+ * 技能项(对齐 Semi Skill/BaseSkill):空编辑区按 skillHotKey 触发面板,选中后
114
+ * 作为 skillSlot 节点插入编辑器。hasTemplate=true 的技能选中后可展开模版面板。
115
+ * icon 由渲染层提供(Snippet/组件),此处只管数据。
116
+ */
117
+ export interface AIChatInputSkill {
118
+ /** 展示标签(skillSlot chip 显示,缺省回退 value)。 */
119
+ label?: string;
120
+ /** 技能值(唯一标识/插入值)。 */
121
+ value?: string;
122
+ /** 是否有配套模版(选中后展示模版按钮)。 */
123
+ hasTemplate?: boolean;
124
+ [key: string]: unknown;
125
+ }
126
+ /** 取技能项的显示文本(label 优先,回退 value,再回退空串)。 */
127
+ export declare function skillLabel(skill: AIChatInputSkill): string;
128
+ /**
129
+ * 生成 skillSlot 节点的 HTML(供 editor.setContent 插入)。对齐 Semi getSkillSlotString:
130
+ * `<skill-slot data-label data-value data-template>`。属性值做 HTML 转义防注入。
131
+ */
132
+ export declare function getSkillSlotHTML(skill: AIChatInputSkill): string;
133
+ /**
134
+ * 生成 selectSlot 节点的 HTML(供 editor.setContent 插入,通常用于 renderTemplate 模版填空)。
135
+ * 对齐 Semi selectSlot:`<select-slot options='["a","b"]' value="a">`。options 为 JSON 字符串。
136
+ * @param options 可选项(string[])
137
+ * @param value 默认选中值(缺省空)
138
+ */
139
+ export declare function getSelectSlotHTML(options: string[], value?: string): string;
140
+ /**
141
+ * 生成 inputSlot 节点的 HTML(供 editor.setContent 插入,用于 renderTemplate 模版填空的可编辑空格)。
142
+ * 对齐 Semi inputSlot:`<input-slot placeholder="...">` 内含零宽字符作为空态光标锚点。
143
+ * @param placeholder 空态占位提示
144
+ * @param value 初始内容(缺省仅零宽锚点)
145
+ */
146
+ export declare function getInputSlotHTML(placeholder?: string, value?: string): string;
147
+ /**
148
+ * 是否应触发技能面板:编辑区为空、按下的键等于 skillHotKey、且有技能项。
149
+ * 对齐 Semi:`oldValue === '' && e.key === skillHotKey && skills.length`。
150
+ */
151
+ export declare function shouldOpenSkillPanel(params: {
152
+ key: string;
153
+ skillHotKey: string;
154
+ isEmpty: boolean;
155
+ skillCount: number;
156
+ }): boolean;
157
+ /** 配置区的值:字段名 → 任意值(对齐 Semi LeftMenuChangeProps / setup)。 */
158
+ export type AIChatInputConfigureValue = Record<string, unknown>;
159
+ /**
160
+ * 配置区状态计算(纯函数,框架无关)。渲染层持有 value($state),
161
+ * 用这些函数算下一个 value —— 对齐 Semi Configure 的 onChange(obj)/onRemove(field)。
162
+ */
163
+ /** 合并一个字段补丁到 value,返回新对象(不可变)。 */
164
+ export declare function setConfigureField(value: AIChatInputConfigureValue, patch: AIChatInputConfigureValue): AIChatInputConfigureValue;
165
+ /** 从 value 移除一个字段,返回新对象(不可变;对齐 Semi onRemove)。 */
166
+ export declare function removeConfigureField(value: AIChatInputConfigureValue, field: string): AIChatInputConfigureValue;
167
+ /**
168
+ * messageToChatInput —— 把 AIChatInput 的 onMessageSend 载荷转成一条 AIDialogueMessage(user 角色),
169
+ * 供直接 push 进 AIChatDialogue 的 chats 展示。对齐 OpenAI Response 输入消息形态:
170
+ * content 为单个 InputMessage 块,其 content 数组含 input_text / input_image / input_file。
171
+ *
172
+ * @param message AIChatInput onMessageSend 载荷
173
+ * @param opts.id 消息 id(AIChatDialogue 需唯一 id;调用方应提供,缺省 '')
174
+ * @param opts.model 可选模型标记
175
+ */
176
+ export declare function messageToChatInput(message: AIChatInputMessageContent, opts?: {
177
+ id?: string;
178
+ model?: string;
179
+ }): AIDialogueMessage;
180
+ /** OpenAI ChatCompletion 请求里的一条 message(user)。content 为多模态 parts。 */
181
+ export interface ChatCompletionInputMessage {
182
+ role: 'user';
183
+ content: Array<Record<string, unknown>>;
184
+ }
185
+ /**
186
+ * chatInputToChatCompletion —— 把 onMessageSend 载荷转成 OpenAI ChatCompletion 请求的 user message,
187
+ * content 为多模态 parts(text / image_url / file)。供直接放进 messages 数组喂 API。
188
+ * 纯文本可由调用方按需扁平化;这里统一产出 parts 数组,保真多模态。
189
+ */
190
+ export declare function chatInputToChatCompletion(message: AIChatInputMessageContent): ChatCompletionInputMessage;
191
+ //# sourceMappingURL=ai-chat-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-chat-input.d.ts","sourceRoot":"","sources":["../src/ai-chat-input.ts"],"names":[],"mappings":"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"}