@agent-native/toolkit 0.5.0 → 0.6.0

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 (178) hide show
  1. package/dist/composer/AgentComposerFrame.d.ts +19 -0
  2. package/dist/composer/AgentComposerFrame.d.ts.map +1 -0
  3. package/dist/composer/AgentComposerFrame.js +14 -0
  4. package/dist/composer/AgentComposerFrame.js.map +1 -0
  5. package/dist/composer/ComposerPlusMenu.d.ts +17 -0
  6. package/dist/composer/ComposerPlusMenu.d.ts.map +1 -0
  7. package/dist/composer/ComposerPlusMenu.js +501 -0
  8. package/dist/composer/ComposerPlusMenu.js.map +1 -0
  9. package/dist/composer/MentionPopover.d.ts +29 -0
  10. package/dist/composer/MentionPopover.d.ts.map +1 -0
  11. package/dist/composer/MentionPopover.js +180 -0
  12. package/dist/composer/MentionPopover.js.map +1 -0
  13. package/dist/composer/PastedTextChip.d.ts +9 -0
  14. package/dist/composer/PastedTextChip.d.ts.map +1 -0
  15. package/dist/composer/PastedTextChip.js +47 -0
  16. package/dist/composer/PastedTextChip.js.map +1 -0
  17. package/dist/composer/PromptComposer.d.ts +114 -0
  18. package/dist/composer/PromptComposer.d.ts.map +1 -0
  19. package/dist/composer/PromptComposer.js +302 -0
  20. package/dist/composer/PromptComposer.js.map +1 -0
  21. package/dist/composer/PromptComposer.spec.d.ts +2 -0
  22. package/dist/composer/PromptComposer.spec.d.ts.map +1 -0
  23. package/dist/composer/PromptComposer.spec.js +64 -0
  24. package/dist/composer/PromptComposer.spec.js.map +1 -0
  25. package/dist/composer/RealtimeVoiceMode.d.ts +104 -0
  26. package/dist/composer/RealtimeVoiceMode.d.ts.map +1 -0
  27. package/dist/composer/RealtimeVoiceMode.js +245 -0
  28. package/dist/composer/RealtimeVoiceMode.js.map +1 -0
  29. package/dist/composer/RealtimeVoiceMode.spec.d.ts +2 -0
  30. package/dist/composer/RealtimeVoiceMode.spec.d.ts.map +1 -0
  31. package/dist/composer/RealtimeVoiceMode.spec.js +439 -0
  32. package/dist/composer/RealtimeVoiceMode.spec.js.map +1 -0
  33. package/dist/composer/TiptapComposer.d.ts +221 -0
  34. package/dist/composer/TiptapComposer.d.ts.map +1 -0
  35. package/dist/composer/TiptapComposer.js +1838 -0
  36. package/dist/composer/TiptapComposer.js.map +1 -0
  37. package/dist/composer/TiptapComposer.spec.d.ts +2 -0
  38. package/dist/composer/TiptapComposer.spec.d.ts.map +1 -0
  39. package/dist/composer/TiptapComposer.spec.js +277 -0
  40. package/dist/composer/TiptapComposer.spec.js.map +1 -0
  41. package/dist/composer/VoiceButton.d.ts +25 -0
  42. package/dist/composer/VoiceButton.d.ts.map +1 -0
  43. package/dist/composer/VoiceButton.js +100 -0
  44. package/dist/composer/VoiceButton.js.map +1 -0
  45. package/dist/composer/VoiceButton.spec.d.ts +2 -0
  46. package/dist/composer/VoiceButton.spec.d.ts.map +1 -0
  47. package/dist/composer/VoiceButton.spec.js +19 -0
  48. package/dist/composer/VoiceButton.spec.js.map +1 -0
  49. package/dist/composer/asset-picker-url.d.ts +16 -0
  50. package/dist/composer/asset-picker-url.d.ts.map +1 -0
  51. package/dist/composer/asset-picker-url.js +64 -0
  52. package/dist/composer/asset-picker-url.js.map +1 -0
  53. package/dist/composer/asset-picker-url.spec.d.ts +2 -0
  54. package/dist/composer/asset-picker-url.spec.d.ts.map +1 -0
  55. package/dist/composer/asset-picker-url.spec.js +23 -0
  56. package/dist/composer/asset-picker-url.spec.js.map +1 -0
  57. package/dist/composer/attachment-accept.d.ts +9 -0
  58. package/dist/composer/attachment-accept.d.ts.map +1 -0
  59. package/dist/composer/attachment-accept.js +65 -0
  60. package/dist/composer/attachment-accept.js.map +1 -0
  61. package/dist/composer/attachment-accept.spec.d.ts +2 -0
  62. package/dist/composer/attachment-accept.spec.d.ts.map +1 -0
  63. package/dist/composer/attachment-accept.spec.js +15 -0
  64. package/dist/composer/attachment-accept.spec.js.map +1 -0
  65. package/dist/composer/draft-key.d.ts +2 -0
  66. package/dist/composer/draft-key.d.ts.map +1 -0
  67. package/dist/composer/draft-key.js +8 -0
  68. package/dist/composer/draft-key.js.map +1 -0
  69. package/dist/composer/draft-key.spec.d.ts +2 -0
  70. package/dist/composer/draft-key.spec.d.ts.map +1 -0
  71. package/dist/composer/draft-key.spec.js +13 -0
  72. package/dist/composer/draft-key.spec.js.map +1 -0
  73. package/dist/composer/extensions/FileReference.d.ts +3 -0
  74. package/dist/composer/extensions/FileReference.d.ts.map +1 -0
  75. package/dist/composer/extensions/FileReference.js +36 -0
  76. package/dist/composer/extensions/FileReference.js.map +1 -0
  77. package/dist/composer/extensions/MentionReference.d.ts +3 -0
  78. package/dist/composer/extensions/MentionReference.d.ts.map +1 -0
  79. package/dist/composer/extensions/MentionReference.js +66 -0
  80. package/dist/composer/extensions/MentionReference.js.map +1 -0
  81. package/dist/composer/extensions/SkillReference.d.ts +3 -0
  82. package/dist/composer/extensions/SkillReference.d.ts.map +1 -0
  83. package/dist/composer/extensions/SkillReference.js +40 -0
  84. package/dist/composer/extensions/SkillReference.js.map +1 -0
  85. package/dist/composer/index.d.ts +14 -0
  86. package/dist/composer/index.d.ts.map +1 -0
  87. package/dist/composer/index.js +13 -0
  88. package/dist/composer/index.js.map +1 -0
  89. package/dist/composer/pasted-text.d.ts +31 -0
  90. package/dist/composer/pasted-text.d.ts.map +1 -0
  91. package/dist/composer/pasted-text.js +130 -0
  92. package/dist/composer/pasted-text.js.map +1 -0
  93. package/dist/composer/pasted-text.spec.d.ts +2 -0
  94. package/dist/composer/pasted-text.spec.d.ts.map +1 -0
  95. package/dist/composer/pasted-text.spec.js +107 -0
  96. package/dist/composer/pasted-text.spec.js.map +1 -0
  97. package/dist/composer/prompt-attachments.d.ts +18 -0
  98. package/dist/composer/prompt-attachments.d.ts.map +1 -0
  99. package/dist/composer/prompt-attachments.js +65 -0
  100. package/dist/composer/prompt-attachments.js.map +1 -0
  101. package/dist/composer/prompt-attachments.spec.d.ts +2 -0
  102. package/dist/composer/prompt-attachments.spec.d.ts.map +1 -0
  103. package/dist/composer/prompt-attachments.spec.js +63 -0
  104. package/dist/composer/prompt-attachments.spec.js.map +1 -0
  105. package/dist/composer/realtime-voice-audio-level.d.ts +14 -0
  106. package/dist/composer/realtime-voice-audio-level.d.ts.map +1 -0
  107. package/dist/composer/realtime-voice-audio-level.js +47 -0
  108. package/dist/composer/realtime-voice-audio-level.js.map +1 -0
  109. package/dist/composer/realtime-voice-audio-level.spec.d.ts +2 -0
  110. package/dist/composer/realtime-voice-audio-level.spec.d.ts.map +1 -0
  111. package/dist/composer/realtime-voice-audio-level.spec.js +25 -0
  112. package/dist/composer/realtime-voice-audio-level.spec.js.map +1 -0
  113. package/dist/composer/realtime-voice-transcript.d.ts +26 -0
  114. package/dist/composer/realtime-voice-transcript.d.ts.map +1 -0
  115. package/dist/composer/realtime-voice-transcript.js +103 -0
  116. package/dist/composer/realtime-voice-transcript.js.map +1 -0
  117. package/dist/composer/realtime-voice-transcript.spec.d.ts +2 -0
  118. package/dist/composer/realtime-voice-transcript.spec.d.ts.map +1 -0
  119. package/dist/composer/realtime-voice-transcript.spec.js +76 -0
  120. package/dist/composer/realtime-voice-transcript.spec.js.map +1 -0
  121. package/dist/composer/runtime-adapters.d.ts +163 -0
  122. package/dist/composer/runtime-adapters.d.ts.map +1 -0
  123. package/dist/composer/runtime-adapters.js +130 -0
  124. package/dist/composer/runtime-adapters.js.map +1 -0
  125. package/dist/composer/types.d.ts +60 -0
  126. package/dist/composer/types.d.ts.map +1 -0
  127. package/dist/composer/types.js +2 -0
  128. package/dist/composer/types.js.map +1 -0
  129. package/dist/composer/use-file-search.d.ts +6 -0
  130. package/dist/composer/use-file-search.d.ts.map +1 -0
  131. package/dist/composer/use-file-search.js +53 -0
  132. package/dist/composer/use-file-search.js.map +1 -0
  133. package/dist/composer/use-mention-search.d.ts +6 -0
  134. package/dist/composer/use-mention-search.d.ts.map +1 -0
  135. package/dist/composer/use-mention-search.js +75 -0
  136. package/dist/composer/use-mention-search.js.map +1 -0
  137. package/dist/composer/use-skills.d.ts +7 -0
  138. package/dist/composer/use-skills.d.ts.map +1 -0
  139. package/dist/composer/use-skills.js +40 -0
  140. package/dist/composer/use-skills.js.map +1 -0
  141. package/dist/composer/useRealtimeVoiceMode.d.ts +179 -0
  142. package/dist/composer/useRealtimeVoiceMode.d.ts.map +1 -0
  143. package/dist/composer/useRealtimeVoiceMode.js +1657 -0
  144. package/dist/composer/useRealtimeVoiceMode.js.map +1 -0
  145. package/dist/composer/useRealtimeVoiceMode.spec.d.ts +2 -0
  146. package/dist/composer/useRealtimeVoiceMode.spec.d.ts.map +1 -0
  147. package/dist/composer/useRealtimeVoiceMode.spec.js +618 -0
  148. package/dist/composer/useRealtimeVoiceMode.spec.js.map +1 -0
  149. package/dist/composer/useVoiceDictation.d.ts +57 -0
  150. package/dist/composer/useVoiceDictation.d.ts.map +1 -0
  151. package/dist/composer/useVoiceDictation.js +1004 -0
  152. package/dist/composer/useVoiceDictation.js.map +1 -0
  153. package/dist/composer/useVoiceDictation.spec.d.ts +2 -0
  154. package/dist/composer/useVoiceDictation.spec.d.ts.map +1 -0
  155. package/dist/composer/useVoiceDictation.spec.js +32 -0
  156. package/dist/composer/useVoiceDictation.spec.js.map +1 -0
  157. package/dist/editor/RegistryBlockContext.d.ts +68 -0
  158. package/dist/editor/RegistryBlockContext.d.ts.map +1 -0
  159. package/dist/editor/RegistryBlockContext.js +10 -0
  160. package/dist/editor/RegistryBlockContext.js.map +1 -0
  161. package/dist/editor/RegistryBlockNode.d.ts +66 -0
  162. package/dist/editor/RegistryBlockNode.d.ts.map +1 -0
  163. package/dist/editor/RegistryBlockNode.js +406 -0
  164. package/dist/editor/RegistryBlockNode.js.map +1 -0
  165. package/dist/editor/RegistryBlockNode.spec.d.ts +2 -0
  166. package/dist/editor/RegistryBlockNode.spec.d.ts.map +1 -0
  167. package/dist/editor/RegistryBlockNode.spec.js +215 -0
  168. package/dist/editor/RegistryBlockNode.spec.js.map +1 -0
  169. package/dist/editor/index.d.ts +3 -0
  170. package/dist/editor/index.d.ts.map +1 -1
  171. package/dist/editor/index.js +2 -0
  172. package/dist/editor/index.js.map +1 -1
  173. package/dist/editor/registrySlashCommands.d.ts +68 -0
  174. package/dist/editor/registrySlashCommands.d.ts.map +1 -0
  175. package/dist/editor/registrySlashCommands.js +51 -0
  176. package/dist/editor/registrySlashCommands.js.map +1 -0
  177. package/migration-manifest.json +4 -0
  178. package/package.json +18 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-file-search.js","sourceRoot":"","sources":["../../src/composer/use-file-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAGnE,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,OAAgB;IAC3D,MAAM,EAAE,WAAW,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,0BAA0B,EAAE,CAAC;IACtE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,EAAE,CAAC,CAAC;IACrD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAG,MAAM,CAAyB,IAAI,CAAC,CAAC;IAEtD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,QAAQ,CAAC,EAAE,CAAC,CAAC;YACb,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,MAAM,EAAE,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC;QAClC,6EAA6E;QAC7E,0EAA0E;QAC1E,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;QACpC,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;QAEzB,MAAM,KAAK,GAAG,UAAU,CACtB,KAAK,IAAI,EAAE;YACT,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,WAAW,CACT,qCAAqC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CACjE,EACD,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CACzB,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,EAAE;oBAAE,MAAM,IAAI,KAAK,EAAE,CAAC;gBAC/B,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;gBAC9B,kDAAkD;gBAClD,IAAI,EAAE,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC;oBAChC,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAK,GAAa,EAAE,IAAI,KAAK,YAAY;oBAAE,OAAO;gBAClD,IAAI,EAAE,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC;oBAChC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACf,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,IAAI,EAAE,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC;oBAChC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC,EACD,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAC7B,CAAC;QAEF,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;IAElC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { MentionItem } from "./types.js";
2
+ export declare function useMentionSearch(query: string, enabled: boolean, resolvePathOverride?: (path: string) => string): {
3
+ items: MentionItem[];
4
+ isLoading: boolean;
5
+ };
6
+ //# sourceMappingURL=use-mention-search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-mention-search.d.ts","sourceRoot":"","sources":["../../src/composer/use-mention-search.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,EAChB,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM;;;EAiF/C"}
@@ -0,0 +1,75 @@
1
+ import { useState, useEffect, useRef } from "react";
2
+ import { useComposerRuntimeAdapters } from "./runtime-adapters.js";
3
+ export function useMentionSearch(query, enabled, resolvePathOverride) {
4
+ const { resolvePath = (path) => path } = useComposerRuntimeAdapters();
5
+ const resolveRequestPath = resolvePathOverride ?? resolvePath;
6
+ const [items, setItems] = useState([]);
7
+ const [isLoading, setIsLoading] = useState(false);
8
+ const abortRef = useRef(null);
9
+ const requestIdRef = useRef(0);
10
+ useEffect(() => {
11
+ if (!enabled) {
12
+ setItems([]);
13
+ setIsLoading(false);
14
+ return;
15
+ }
16
+ // Cancel any in-flight stream
17
+ abortRef.current?.abort();
18
+ const abort = new AbortController();
19
+ abortRef.current = abort;
20
+ const id = ++requestIdRef.current;
21
+ setItems([]);
22
+ setIsLoading(true);
23
+ const debounceMs = query.length === 0 ? 0 : 150;
24
+ const timer = setTimeout(async () => {
25
+ try {
26
+ const res = await fetch(resolveRequestPath(`/_agent-native/agent-chat/mentions?q=${encodeURIComponent(query)}`), { signal: abort.signal });
27
+ if (!res.ok || !res.body)
28
+ throw new Error();
29
+ const reader = res.body.getReader();
30
+ const decoder = new TextDecoder();
31
+ let buf = "";
32
+ while (true) {
33
+ const { done, value } = await reader.read();
34
+ if (done)
35
+ break;
36
+ buf += decoder.decode(value, { stream: true });
37
+ const lines = buf.split("\n");
38
+ buf = lines.pop(); // last line may be incomplete
39
+ for (const line of lines) {
40
+ if (!line.trim())
41
+ continue;
42
+ try {
43
+ const { items: batch } = JSON.parse(line);
44
+ if (id === requestIdRef.current && batch?.length) {
45
+ setItems((prev) => {
46
+ // Deduplicate by id
47
+ const seen = new Set(prev.map((x) => x.id));
48
+ const fresh = batch.filter((x) => !seen.has(x.id));
49
+ return fresh.length ? [...prev, ...fresh] : prev;
50
+ });
51
+ }
52
+ }
53
+ catch { }
54
+ }
55
+ }
56
+ }
57
+ catch (err) {
58
+ if (err instanceof Error && err.name === "AbortError")
59
+ return;
60
+ if (id === requestIdRef.current)
61
+ setItems([]);
62
+ }
63
+ finally {
64
+ if (id === requestIdRef.current)
65
+ setIsLoading(false);
66
+ }
67
+ }, debounceMs);
68
+ return () => {
69
+ clearTimeout(timer);
70
+ abort.abort();
71
+ };
72
+ }, [query, enabled, resolveRequestPath]);
73
+ return { items, isLoading };
74
+ }
75
+ //# sourceMappingURL=use-mention-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-mention-search.js","sourceRoot":"","sources":["../../src/composer/use-mention-search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { SkillResult } from "./types.js";
2
+ export declare function useSkills(enabled: boolean): {
3
+ skills: SkillResult[];
4
+ hint: string | undefined;
5
+ isLoading: boolean;
6
+ };
7
+ //# sourceMappingURL=use-skills.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-skills.d.ts","sourceRoot":"","sources":["../../src/composer/use-skills.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO;;;;EAuCzC"}
@@ -0,0 +1,40 @@
1
+ import { useState, useEffect, useRef } from "react";
2
+ import { useComposerRuntimeAdapters } from "./runtime-adapters.js";
3
+ export function useSkills(enabled) {
4
+ const { resolvePath = (path) => path } = useComposerRuntimeAdapters();
5
+ const [skills, setSkills] = useState([]);
6
+ const [hint, setHint] = useState();
7
+ const [isLoading, setIsLoading] = useState(false);
8
+ const requestIdRef = useRef(0);
9
+ useEffect(() => {
10
+ if (!enabled) {
11
+ return;
12
+ }
13
+ setIsLoading(true);
14
+ const id = ++requestIdRef.current;
15
+ fetch(resolvePath("/_agent-native/agent-chat/skills"))
16
+ .then((res) => {
17
+ if (!res.ok)
18
+ throw new Error();
19
+ return res.json();
20
+ })
21
+ .then((data) => {
22
+ if (id === requestIdRef.current) {
23
+ setSkills(data.skills || []);
24
+ setHint(data.hint);
25
+ }
26
+ })
27
+ .catch(() => {
28
+ if (id === requestIdRef.current) {
29
+ setSkills([]);
30
+ }
31
+ })
32
+ .finally(() => {
33
+ if (id === requestIdRef.current) {
34
+ setIsLoading(false);
35
+ }
36
+ });
37
+ }, [enabled, resolvePath]);
38
+ return { skills, hint, isLoading };
39
+ }
40
+ //# sourceMappingURL=use-skills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-skills.js","sourceRoot":"","sources":["../../src/composer/use-skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAGnE,MAAM,UAAU,SAAS,CAAC,OAAgB;IACxC,MAAM,EAAE,WAAW,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,0BAA0B,EAAE,CAAC;IACtE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAgB,EAAE,CAAC,CAAC;IACxD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,EAAsB,CAAC;IACvD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAE/B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,MAAM,EAAE,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC;QAElC,KAAK,CAAC,WAAW,CAAC,kCAAkC,CAAC,CAAC;aACnD,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACZ,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,EAAE,CAAC;YAC/B,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACb,IAAI,EAAE,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC;gBAChC,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;gBAC7B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACV,IAAI,EAAE,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC;gBAChC,SAAS,CAAC,EAAE,CAAC,CAAC;YAChB,CAAC;QACH,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,EAAE,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC;gBAChC,YAAY,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC,CAAC,CAAC;IACP,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;IAE3B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AACrC,CAAC"}
@@ -0,0 +1,179 @@
1
+ import { type ReactNode } from "react";
2
+ import { type RealtimeVoiceAudioLevelStore } from "./realtime-voice-audio-level.js";
3
+ import { type RealtimeVoiceModeCopy, type RealtimeVoiceModeState } from "./RealtimeVoiceMode.js";
4
+ export declare const REALTIME_VOICE_LANGUAGES: readonly ["auto", "en", "es", "fr", "de", "it", "pt", "ja", "ko", "zh"];
5
+ export declare const REALTIME_VOICE_INTELLIGENCE_LEVELS: readonly ["instant", "balanced", "deep"];
6
+ export declare const REALTIME_VOICES: readonly ["marin", "cedar", "coral", "sage", "verse", "alloy", "ash", "ballad", "echo", "shimmer"];
7
+ export type RealtimeVoiceLanguage = (typeof REALTIME_VOICE_LANGUAGES)[number];
8
+ export type RealtimeVoiceIntelligence = (typeof REALTIME_VOICE_INTELLIGENCE_LEVELS)[number];
9
+ export type RealtimeVoice = (typeof REALTIME_VOICES)[number];
10
+ export interface RealtimeVoicePreferences {
11
+ language: RealtimeVoiceLanguage;
12
+ intelligence: RealtimeVoiceIntelligence;
13
+ voice: RealtimeVoice;
14
+ }
15
+ export declare const DEFAULT_REALTIME_VOICE_PREFERENCES: RealtimeVoicePreferences;
16
+ export declare const REALTIME_VOICE_AUDIO_CONSTRAINTS: MediaTrackConstraints;
17
+ type RealtimeServerEvent = Record<string, unknown> & {
18
+ type?: string;
19
+ };
20
+ export interface RealtimeVoiceToolResult {
21
+ callId: string;
22
+ status: "completed" | "failed" | "approval_required";
23
+ output: string;
24
+ approvalKey?: string;
25
+ expandedTools?: RealtimeVoiceFunctionTool[];
26
+ }
27
+ export interface RealtimeVoiceSessionAnswer {
28
+ sdp: string;
29
+ capability?: string;
30
+ }
31
+ export interface RealtimeVoiceFunctionTool {
32
+ type: "function";
33
+ name: string;
34
+ description?: string;
35
+ parameters?: Record<string, unknown>;
36
+ }
37
+ export interface RealtimeVoiceModeApi {
38
+ state: "idle" | RealtimeVoiceModeState;
39
+ active: boolean;
40
+ errorMessage: string | null;
41
+ chatVisible: boolean;
42
+ audioLevels: RealtimeVoiceAudioLevelStore;
43
+ preferences: RealtimeVoicePreferences;
44
+ microphones: readonly RealtimeVoiceMicrophone[];
45
+ microphoneDeviceId: string;
46
+ microphoneSwitching: boolean;
47
+ microphoneError: string | null;
48
+ voiceChangePending: boolean;
49
+ setLanguage: (language: RealtimeVoiceLanguage) => void;
50
+ setIntelligence: (intelligence: RealtimeVoiceIntelligence) => void;
51
+ setVoice: (voice: RealtimeVoice) => void;
52
+ setMicrophone: (deviceId: string) => Promise<void>;
53
+ start: () => Promise<void>;
54
+ end: () => void;
55
+ toggleChat: () => void;
56
+ }
57
+ export interface RealtimeVoiceMicrophone {
58
+ deviceId: string;
59
+ label: string;
60
+ }
61
+ export declare function createRealtimeVoiceAudioConstraints(deviceId?: string, exact?: boolean): MediaTrackConstraints;
62
+ export declare function replaceRealtimeVoiceMicrophone(options: {
63
+ mediaDevices: Pick<MediaDevices, "getUserMedia">;
64
+ peer: Pick<RTCPeerConnection, "getSenders">;
65
+ currentStream: MediaStream | null;
66
+ deviceId: string;
67
+ }): Promise<MediaStream>;
68
+ export declare function normalizeRealtimeVoicePreferences(value: unknown): RealtimeVoicePreferences;
69
+ export declare function resolveRealtimeVoiceLanguage(language: RealtimeVoiceLanguage, browserLanguages?: readonly string[]): Exclude<RealtimeVoiceLanguage, "auto">;
70
+ export declare function realtimeVoiceReasoningEffort(intelligence: RealtimeVoiceIntelligence): "minimal" | "low" | "medium";
71
+ export declare function createRealtimeVoicePreferenceUpdate(preferences: RealtimeVoicePreferences, options?: {
72
+ browserLanguages?: readonly string[];
73
+ includeVoice?: boolean;
74
+ }): Record<string, unknown>;
75
+ export interface CompletedRealtimeVoiceTranscript {
76
+ role: "user" | "assistant";
77
+ text: string;
78
+ providerId?: string;
79
+ }
80
+ export interface RealtimeVoiceTranscriptSequencer {
81
+ handle: (event: RealtimeServerEvent) => void;
82
+ reset: () => void;
83
+ }
84
+ /**
85
+ * Input transcription is produced by a separate ASR model and can finish after
86
+ * the assistant response. Reserve each message's position when OpenAI adds it
87
+ * to the conversation, then publish only the contiguous completed prefix.
88
+ */
89
+ export declare function createRealtimeVoiceTranscriptSequencer(publish: (transcript: CompletedRealtimeVoiceTranscript) => void): RealtimeVoiceTranscriptSequencer;
90
+ export declare function createRealtimeVoiceGreetingEvent(): Record<string, unknown>;
91
+ export declare function createRealtimeVoiceGreetingStarter(send: (event: Record<string, unknown>) => void): {
92
+ start: () => boolean;
93
+ reset: () => void;
94
+ };
95
+ /**
96
+ * Voice mode owns the chat only temporarily. Restore the captured transcript
97
+ * when it is still the user's active thread (or the chat has no active thread)
98
+ * but never pull them back after they deliberately selected another thread.
99
+ */
100
+ export declare function shouldRestoreRealtimeVoiceTranscriptThread(transcriptThreadId: string | undefined, activeThreadId: string | undefined): transcriptThreadId is string;
101
+ export declare function extractCompletedRealtimeVoiceTranscript(event: RealtimeServerEvent): CompletedRealtimeVoiceTranscript | null;
102
+ export interface RealtimeVoiceModeProviderProps {
103
+ children: ReactNode;
104
+ browserTabId?: string;
105
+ }
106
+ export declare function isRealtimeVoiceAbortError(error: unknown): boolean;
107
+ export declare function isRealtimeVoiceSetupRequiredError(error: unknown): boolean;
108
+ export declare function createRealtimeVoiceConnectionTimeout(onTimeout: () => void, timeoutMs?: number): () => void;
109
+ export declare function createRealtimeVoiceConnectionGate(onTimeout: () => void, timeoutMs?: number): {
110
+ markTransportReady: () => void;
111
+ markSessionCreated: () => void;
112
+ cancel: () => void;
113
+ };
114
+ interface RealtimeVoiceSessionOptions {
115
+ browserTabId?: string;
116
+ signal?: AbortSignal;
117
+ preferences?: RealtimeVoicePreferences;
118
+ browserLanguages?: readonly string[];
119
+ }
120
+ export declare function createRealtimeVoiceSessionWithCapability(offerSdp: string, options?: RealtimeVoiceSessionOptions): Promise<RealtimeVoiceSessionAnswer>;
121
+ /** Backwards-compatible SDP-only session helper for existing client callers. */
122
+ export declare function createRealtimeVoiceSession(offerSdp: string, options?: RealtimeVoiceSessionOptions): Promise<string>;
123
+ export declare function executeRealtimeVoiceTool(input: {
124
+ name: string;
125
+ args: Record<string, unknown>;
126
+ callId: string;
127
+ sessionId?: string;
128
+ browserTabId?: string;
129
+ capability?: string;
130
+ signal?: AbortSignal;
131
+ }): Promise<RealtimeVoiceToolResult>;
132
+ export declare function extractRealtimeVoiceSessionTools(event: RealtimeServerEvent): RealtimeVoiceFunctionTool[] | null;
133
+ /**
134
+ * Merge search-discovered schemas into the live manifest. Pinned navigation
135
+ * and discovery tools stay available, then the newest discoveries take the
136
+ * remaining slots ahead of lower-priority tools from the original manifest.
137
+ */
138
+ export declare function mergeRealtimeVoiceToolManifest(currentTools: readonly RealtimeVoiceFunctionTool[], expandedTools: readonly RealtimeVoiceFunctionTool[]): RealtimeVoiceFunctionTool[];
139
+ export interface RealtimeVoiceToolManifestCoordinator {
140
+ enqueue: (result: RealtimeVoiceToolResult) => void;
141
+ setSessionTools: (tools: readonly RealtimeVoiceFunctionTool[]) => void;
142
+ handleError: (eventId: string | undefined, message?: string) => boolean;
143
+ reset: () => void;
144
+ getTools: () => readonly RealtimeVoiceFunctionTool[];
145
+ }
146
+ /**
147
+ * Realtime treats `session.update.tools` as a full replacement. Serialize
148
+ * discovery updates and wait for a confirming `session.updated` manifest
149
+ * before returning the search result and allowing the next model response.
150
+ */
151
+ export declare function createRealtimeVoiceToolManifestCoordinator(send: (event: Record<string, unknown>) => void, timeoutMs?: number): RealtimeVoiceToolManifestCoordinator;
152
+ export declare function extractRealtimeVoiceFunctionCalls(event: RealtimeServerEvent): Array<{
153
+ name: string;
154
+ callId: string;
155
+ argumentsText: string;
156
+ }>;
157
+ export declare function listenForRealtimeVoicePageHide(cleanup: () => void): () => void;
158
+ export declare function useRealtimeVoiceModeCopy(): RealtimeVoiceModeCopy;
159
+ export declare function RealtimeVoiceModeProvider({ children, browserTabId, }: RealtimeVoiceModeProviderProps): import("react").JSX.Element;
160
+ /**
161
+ * Ensure standalone/full-page composers get realtime voice without nesting a
162
+ * second session owner inside the persistent AgentSidebar provider.
163
+ */
164
+ export declare function RealtimeVoiceModeBoundary({ children, browserTabId, }: RealtimeVoiceModeProviderProps): import("react").JSX.Element;
165
+ export declare function useRealtimeVoiceMode(): RealtimeVoiceModeApi;
166
+ export declare function useRealtimeVoiceModeOptional(): RealtimeVoiceModeApi | null;
167
+ export declare function readRealtimeVoiceContext(): Promise<{
168
+ navigation: unknown;
169
+ url: unknown;
170
+ }>;
171
+ export declare function readRealtimeVoiceContextWith(options: {
172
+ readAppState?: (key: string) => Promise<unknown> | unknown;
173
+ resolvePath?: (path: string) => string;
174
+ }): Promise<{
175
+ navigation: unknown;
176
+ url: unknown;
177
+ }>;
178
+ export {};
179
+ //# sourceMappingURL=useRealtimeVoiceMode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRealtimeVoiceMode.d.ts","sourceRoot":"","sources":["../../src/composer/useRealtimeVoiceMode.tsx"],"names":[],"mappings":"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"}