@talk2view/sdk 0.3.3 → 0.5.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 (160) hide show
  1. package/dist/event-emitter.d.ts +7 -0
  2. package/dist/event-emitter.d.ts.map +1 -0
  3. package/dist/event-emitter.js +23 -0
  4. package/dist/event-emitter.js.map +1 -0
  5. package/dist/index.d.ts +76 -2
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +310 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/react/T2VProvider.js +1 -1
  10. package/dist/react/T2VProvider.js.map +1 -1
  11. package/dist/react/index.d.ts +2 -1
  12. package/dist/react/index.d.ts.map +1 -1
  13. package/dist/react/useT2VChat.d.ts +6 -22
  14. package/dist/react/useT2VChat.d.ts.map +1 -1
  15. package/dist/react/useT2VChat.js +34 -218
  16. package/dist/react/useT2VChat.js.map +1 -1
  17. package/dist/sessions.d.ts.map +1 -1
  18. package/dist/sessions.js +3 -0
  19. package/dist/sessions.js.map +1 -1
  20. package/dist/tools.d.ts +5 -0
  21. package/dist/tools.d.ts.map +1 -1
  22. package/dist/tools.js +16 -2
  23. package/dist/tools.js.map +1 -1
  24. package/dist/types.d.ts +45 -0
  25. package/dist/types.d.ts.map +1 -1
  26. package/dist/ui/components/ApprovalCard.d.ts +10 -0
  27. package/dist/ui/components/ApprovalCard.d.ts.map +1 -0
  28. package/dist/ui/components/ApprovalCard.js +60 -0
  29. package/dist/ui/components/ApprovalCard.js.map +1 -0
  30. package/dist/ui/components/{T2VChatHeader.d.ts → ChatHeader.d.ts} +4 -4
  31. package/dist/ui/components/ChatHeader.d.ts.map +1 -0
  32. package/dist/ui/components/ChatHeader.js +126 -0
  33. package/dist/ui/components/ChatHeader.js.map +1 -0
  34. package/dist/ui/components/ChatPanel.d.ts +9 -0
  35. package/dist/ui/components/ChatPanel.d.ts.map +1 -0
  36. package/dist/ui/components/ChatPanel.js +37 -0
  37. package/dist/ui/components/ChatPanel.js.map +1 -0
  38. package/dist/ui/components/ChatWidget.d.ts +5 -0
  39. package/dist/ui/components/ChatWidget.d.ts.map +1 -0
  40. package/dist/ui/components/ChatWidget.js +27 -0
  41. package/dist/ui/components/ChatWidget.js.map +1 -0
  42. package/dist/ui/components/CodeBlock.d.ts +6 -0
  43. package/dist/ui/components/CodeBlock.d.ts.map +1 -0
  44. package/dist/ui/components/CodeBlock.js +79 -0
  45. package/dist/ui/components/CodeBlock.js.map +1 -0
  46. package/dist/ui/components/Composer.d.ts +14 -0
  47. package/dist/ui/components/Composer.d.ts.map +1 -0
  48. package/dist/ui/components/Composer.js +172 -0
  49. package/dist/ui/components/Composer.js.map +1 -0
  50. package/dist/ui/components/LoginForm.d.ts +5 -0
  51. package/dist/ui/components/LoginForm.d.ts.map +1 -0
  52. package/dist/ui/components/LoginForm.js +37 -0
  53. package/dist/ui/components/LoginForm.js.map +1 -0
  54. package/dist/ui/components/MarkdownRenderer.d.ts +5 -0
  55. package/dist/ui/components/MarkdownRenderer.d.ts.map +1 -0
  56. package/dist/ui/components/MarkdownRenderer.js +28 -0
  57. package/dist/ui/components/MarkdownRenderer.js.map +1 -0
  58. package/dist/ui/components/MessageActions.d.ts +6 -0
  59. package/dist/ui/components/MessageActions.d.ts.map +1 -0
  60. package/dist/ui/components/MessageActions.js +43 -0
  61. package/dist/ui/components/MessageActions.js.map +1 -0
  62. package/dist/ui/components/MessageBubble.d.ts +16 -0
  63. package/dist/ui/components/MessageBubble.d.ts.map +1 -0
  64. package/dist/ui/components/MessageBubble.js +71 -0
  65. package/dist/ui/components/MessageBubble.js.map +1 -0
  66. package/dist/ui/components/MessageList.d.ts +10 -0
  67. package/dist/ui/components/MessageList.d.ts.map +1 -0
  68. package/dist/ui/components/MessageList.js +69 -0
  69. package/dist/ui/components/MessageList.js.map +1 -0
  70. package/dist/ui/components/SettingsPanel.d.ts +11 -0
  71. package/dist/ui/components/SettingsPanel.d.ts.map +1 -0
  72. package/dist/ui/components/{SettingsView.js → SettingsPanel.js} +27 -27
  73. package/dist/ui/components/SettingsPanel.js.map +1 -0
  74. package/dist/ui/components/Shimmer.d.ts +2 -0
  75. package/dist/ui/components/Shimmer.d.ts.map +1 -0
  76. package/dist/ui/components/Shimmer.js +10 -0
  77. package/dist/ui/components/Shimmer.js.map +1 -0
  78. package/dist/ui/components/Talk2View.d.ts +21 -0
  79. package/dist/ui/components/Talk2View.d.ts.map +1 -0
  80. package/dist/ui/components/Talk2View.js +79 -0
  81. package/dist/ui/components/Talk2View.js.map +1 -0
  82. package/dist/ui/components/ThinkingBlock.d.ts +7 -0
  83. package/dist/ui/components/ThinkingBlock.d.ts.map +1 -0
  84. package/dist/ui/components/ThinkingBlock.js +64 -0
  85. package/dist/ui/components/ThinkingBlock.js.map +1 -0
  86. package/dist/ui/components/ToolDisplay.d.ts +28 -0
  87. package/dist/ui/components/ToolDisplay.d.ts.map +1 -0
  88. package/dist/ui/components/ToolDisplay.js +123 -0
  89. package/dist/ui/components/ToolDisplay.js.map +1 -0
  90. package/dist/ui/components/WelcomeScreen.d.ts +6 -0
  91. package/dist/ui/components/WelcomeScreen.d.ts.map +1 -0
  92. package/dist/ui/components/WelcomeScreen.js +18 -0
  93. package/dist/ui/components/WelcomeScreen.js.map +1 -0
  94. package/dist/ui/context.d.ts +29 -0
  95. package/dist/ui/context.d.ts.map +1 -0
  96. package/dist/ui/context.js +16 -0
  97. package/dist/ui/context.js.map +1 -0
  98. package/dist/ui/index.d.ts +24 -37
  99. package/dist/ui/index.d.ts.map +1 -1
  100. package/dist/ui/index.js +23 -35
  101. package/dist/ui/index.js.map +1 -1
  102. package/dist/ui/styles.d.ts +2 -0
  103. package/dist/ui/styles.d.ts.map +1 -0
  104. package/dist/ui/styles.js +91 -0
  105. package/dist/ui/styles.js.map +1 -0
  106. package/dist/ui/theme.d.ts +11 -0
  107. package/dist/ui/theme.d.ts.map +1 -0
  108. package/dist/ui/theme.js +70 -0
  109. package/dist/ui/theme.js.map +1 -0
  110. package/package.json +3 -10
  111. package/dist/ui/components/LoginModal.d.ts +0 -10
  112. package/dist/ui/components/LoginModal.d.ts.map +0 -1
  113. package/dist/ui/components/LoginModal.js +0 -138
  114. package/dist/ui/components/LoginModal.js.map +0 -1
  115. package/dist/ui/components/SettingsView.d.ts +0 -11
  116. package/dist/ui/components/SettingsView.d.ts.map +0 -1
  117. package/dist/ui/components/SettingsView.js.map +0 -1
  118. package/dist/ui/components/T2VAssistantModal.d.ts +0 -31
  119. package/dist/ui/components/T2VAssistantModal.d.ts.map +0 -1
  120. package/dist/ui/components/T2VAssistantModal.js +0 -151
  121. package/dist/ui/components/T2VAssistantModal.js.map +0 -1
  122. package/dist/ui/components/T2VAssistantProvider.d.ts +0 -42
  123. package/dist/ui/components/T2VAssistantProvider.d.ts.map +0 -1
  124. package/dist/ui/components/T2VAssistantProvider.js +0 -66
  125. package/dist/ui/components/T2VAssistantProvider.js.map +0 -1
  126. package/dist/ui/components/T2VChatHeader.d.ts.map +0 -1
  127. package/dist/ui/components/T2VChatHeader.js +0 -112
  128. package/dist/ui/components/T2VChatHeader.js.map +0 -1
  129. package/dist/ui/components/T2VComposer.d.ts +0 -11
  130. package/dist/ui/components/T2VComposer.d.ts.map +0 -1
  131. package/dist/ui/components/T2VComposer.js +0 -124
  132. package/dist/ui/components/T2VComposer.js.map +0 -1
  133. package/dist/ui/components/T2VDictationAdapter.d.ts +0 -18
  134. package/dist/ui/components/T2VDictationAdapter.d.ts.map +0 -1
  135. package/dist/ui/components/T2VDictationAdapter.js +0 -126
  136. package/dist/ui/components/T2VDictationAdapter.js.map +0 -1
  137. package/dist/ui/components/T2VLoginGate.d.ts +0 -23
  138. package/dist/ui/components/T2VLoginGate.d.ts.map +0 -1
  139. package/dist/ui/components/T2VLoginGate.js +0 -11
  140. package/dist/ui/components/T2VLoginGate.js.map +0 -1
  141. package/dist/ui/components/T2VThread.d.ts +0 -25
  142. package/dist/ui/components/T2VThread.d.ts.map +0 -1
  143. package/dist/ui/components/T2VThread.js +0 -66
  144. package/dist/ui/components/T2VThread.js.map +0 -1
  145. package/dist/ui/components/T2VToolFallback.d.ts +0 -11
  146. package/dist/ui/components/T2VToolFallback.d.ts.map +0 -1
  147. package/dist/ui/components/T2VToolFallback.js +0 -209
  148. package/dist/ui/components/T2VToolFallback.js.map +0 -1
  149. package/dist/ui/runtime/convertMessage.d.ts +0 -17
  150. package/dist/ui/runtime/convertMessage.d.ts.map +0 -1
  151. package/dist/ui/runtime/convertMessage.js +0 -77
  152. package/dist/ui/runtime/convertMessage.js.map +0 -1
  153. package/dist/ui/runtime/useT2VRuntime.d.ts +0 -42
  154. package/dist/ui/runtime/useT2VRuntime.d.ts.map +0 -1
  155. package/dist/ui/runtime/useT2VRuntime.js +0 -62
  156. package/dist/ui/runtime/useT2VRuntime.js.map +0 -1
  157. package/dist/ui/themes/tailwind-preset.d.ts +0 -43
  158. package/dist/ui/themes/tailwind-preset.d.ts.map +0 -1
  159. package/dist/ui/themes/tailwind-preset.js +0 -43
  160. package/dist/ui/themes/tailwind-preset.js.map +0 -1
@@ -0,0 +1,7 @@
1
+ export declare class TypedEventEmitter<TEvents extends Record<string, unknown[]>> {
2
+ private listeners;
3
+ on<K extends keyof TEvents>(event: K, callback: (...args: TEvents[K]) => void): () => void;
4
+ emit<K extends keyof TEvents>(event: K, ...args: TEvents[K]): void;
5
+ removeAllListeners(): void;
6
+ }
7
+ //# sourceMappingURL=event-emitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-emitter.d.ts","sourceRoot":"","sources":["../src/event-emitter.ts"],"names":[],"mappings":"AAAA,qBAAa,iBAAiB,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;IACtE,OAAO,CAAC,SAAS,CAA+D;IAEhF,EAAE,CAAC,CAAC,SAAS,MAAM,OAAO,EACxB,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,GACtC,MAAM,IAAI;IASb,IAAI,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IASlE,kBAAkB,IAAI,IAAI;CAG3B"}
@@ -0,0 +1,23 @@
1
+ export class TypedEventEmitter {
2
+ listeners = new Map();
3
+ on(event, callback) {
4
+ if (!this.listeners.has(event)) {
5
+ this.listeners.set(event, new Set());
6
+ }
7
+ const set = this.listeners.get(event);
8
+ set.add(callback);
9
+ return () => set.delete(callback);
10
+ }
11
+ emit(event, ...args) {
12
+ const set = this.listeners.get(event);
13
+ if (set) {
14
+ for (const cb of set) {
15
+ cb(...args);
16
+ }
17
+ }
18
+ }
19
+ removeAllListeners() {
20
+ this.listeners.clear();
21
+ }
22
+ }
23
+ //# sourceMappingURL=event-emitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-emitter.js","sourceRoot":"","sources":["../src/event-emitter.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,iBAAiB;IACpB,SAAS,GAAG,IAAI,GAAG,EAAoD,CAAC;IAEhF,EAAE,CACA,KAAQ,EACR,QAAuC;QAEvC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;QACvC,GAAG,CAAC,GAAG,CAAC,QAAwC,CAAC,CAAC;QAClD,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,QAAwC,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,CAA0B,KAAQ,EAAE,GAAG,IAAgB;QACzD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,GAAG,EAAE,CAAC;YACR,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;gBACrB,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -28,7 +28,7 @@ import { T2VAuth } from './auth';
28
28
  import { T2VSession } from './sessions';
29
29
  import { T2VSkills } from './skills';
30
30
  import { T2VTools } from './tools';
31
- import type { AudioModelsResponse, ChatEvent, ChatMessage, HumanDecision, PartnerConfig, PendingApproval, ModelsResponse, T2VConfig, TranscriptionResponse } from './types';
31
+ import type { AgentStatus, AudioModelsResponse, ChatEvent, ChatMessage, DisplayMessage, HumanDecision, PartnerConfig, PendingApproval, ModelsResponse, T2VConfig, T2VEventMap, TranscriptionResponse } from './types';
32
32
  type SessionClearCallback = () => void;
33
33
  type SessionCreateCallback = (toolNames: string[]) => void;
34
34
  export declare class Talk2View {
@@ -40,6 +40,18 @@ export declare class Talk2View {
40
40
  private currentSession;
41
41
  private sessionClearListeners;
42
42
  private sessionCreateListeners;
43
+ private _messages;
44
+ private _conversationHistory;
45
+ private _isLoading;
46
+ private _error;
47
+ private _pendingApproval;
48
+ private _agentStatus;
49
+ private _threadId;
50
+ private _alwaysAllowedTools;
51
+ private _lastUserMessage;
52
+ private _messageCounter;
53
+ private readonly emitter;
54
+ private debug;
43
55
  constructor(config: T2VConfig);
44
56
  /**
45
57
  * Create a new chat session.
@@ -124,12 +136,74 @@ export declare class Talk2View {
124
136
  * @returns An unsubscribe function.
125
137
  */
126
138
  onSessionCreate(callback: SessionCreateCallback): () => void;
139
+ get messages(): DisplayMessage[];
140
+ get isLoading(): boolean;
141
+ get error(): string | null;
142
+ get pendingApproval(): PendingApproval | null;
143
+ get agentStatus(): AgentStatus | null;
144
+ get threadId(): string | null;
145
+ get alwaysAllowedTools(): ReadonlySet<string>;
146
+ on<K extends keyof T2VEventMap>(event: K, callback: (...args: T2VEventMap[K]) => void): () => void;
147
+ private setMessages;
148
+ private setLoading;
149
+ private setError;
150
+ private setPendingApproval;
151
+ private setAgentStatus;
152
+ private setThreadId;
153
+ private setAlwaysAllowed;
154
+ private nextMessageId;
155
+ private updateAssistantMessage;
156
+ /**
157
+ * Process events from a chat stream, updating state as events arrive.
158
+ * Returns whether the stream paused for approval and any auto-approval info.
159
+ */
160
+ /**
161
+ * Create a new streaming assistant message and append it to the message list.
162
+ * Returns the new message's ID.
163
+ */
164
+ private startNewAssistantMessage;
165
+ private consumeStream;
166
+ /**
167
+ * Loop consumeStream, auto-approving always-allowed tools until the stream completes.
168
+ */
169
+ private drainStream;
170
+ private finalizeStream;
171
+ /**
172
+ * Send a message with full state management.
173
+ *
174
+ * Adds user/assistant messages, starts streaming, and updates all state
175
+ * (loading, error, status, etc.) as events arrive.
176
+ */
177
+ sendMessage(content: string, options?: {
178
+ systemPrompt?: string;
179
+ model?: string;
180
+ }): Promise<void>;
181
+ /**
182
+ * Respond to a pending tool approval (human-in-the-loop).
183
+ *
184
+ * If `decision.action` is `'always'`, the tool is remembered and auto-approved
185
+ * for all subsequent calls in this session.
186
+ */
187
+ approveToolCall(decision: HumanDecision): Promise<void>;
188
+ /**
189
+ * Retry the last user message. Removes the failed user+assistant pair and resends.
190
+ */
191
+ retryLastMessage(): Promise<void>;
192
+ /**
193
+ * Clear all messages and reset conversation state.
194
+ */
195
+ clearMessages(): void;
196
+ /**
197
+ * Clear the current error.
198
+ */
199
+ clearError(): void;
127
200
  }
128
201
  export { T2VAuth } from './auth';
129
202
  export { T2VClient } from './client';
130
203
  export { T2VSession } from './sessions';
131
204
  export { T2VSkills } from './skills';
132
205
  export { T2VTools } from './tools';
206
+ export { TypedEventEmitter } from './event-emitter';
133
207
  export { T2VError, AuthenticationError, PartnerKeyError, SessionError, NetworkError } from './errors';
134
- export type { T2VConfig, User, ChatEvent, ChatMessage, ClientTool, ClientToolSchema, ToolHandler, TokenResponse, ToolCallInterrupt, AgentStatus, ChatCompletionChunk, RegisterToolsResponse, RegisterSkillsResponse, UserSkill, HumanDecision, PendingApproval, PermissionResult, PermissionCheckResult, ToolPermissionCallback, Model, ModelsResponse, TranscriptionResponse, AudioModelsResponse, PartnerConfig, UserPreferences, } from './types';
208
+ export type { T2VEventMap, T2VConfig, User, ChatEvent, ChatMessage, ClientTool, ClientToolSchema, ToolHandler, TokenResponse, ToolCallInterrupt, AgentStatus, ChatCompletionChunk, RegisterToolsResponse, RegisterSkillsResponse, UserSkill, HumanDecision, PendingApproval, PermissionResult, PermissionCheckResult, ToolPermissionCallback, Model, ModelsResponse, TranscriptionResponse, AudioModelsResponse, PartnerConfig, UserPreferences, DisplayMessage, ToolStep, } from './types';
135
209
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -26,9 +26,10 @@
26
26
  */
27
27
  import { T2VAuth } from './auth';
28
28
  import { T2VClient } from './client';
29
+ import { TypedEventEmitter } from './event-emitter';
29
30
  import { T2VSession } from './sessions';
30
31
  import { T2VSkills } from './skills';
31
- import { T2VTools } from './tools';
32
+ import { T2VTools, stripNullArgs } from './tools';
32
33
  export class Talk2View {
33
34
  auth;
34
35
  tools;
@@ -38,6 +39,22 @@ export class Talk2View {
38
39
  currentSession = null;
39
40
  sessionClearListeners = new Set();
40
41
  sessionCreateListeners = new Set();
42
+ // ── State management ────────────────────────────────────────────────────
43
+ _messages = []; // UI display (segmented)
44
+ _conversationHistory = []; // LLM history (clean user/assistant alternation)
45
+ _isLoading = false;
46
+ _error = null;
47
+ _pendingApproval = null;
48
+ _agentStatus = null;
49
+ _threadId = null;
50
+ _alwaysAllowedTools = new Set();
51
+ _lastUserMessage = null;
52
+ _messageCounter = 0;
53
+ emitter = new TypedEventEmitter();
54
+ debug(...args) {
55
+ if (this.config.debug)
56
+ console.log('[T2V]', ...args);
57
+ }
41
58
  constructor(config) {
42
59
  if (config.voiceApiUrl) {
43
60
  console.warn('[Talk2View] voiceApiUrl is deprecated and has no effect. ' +
@@ -183,6 +200,297 @@ export class Talk2View {
183
200
  this.sessionCreateListeners.delete(callback);
184
201
  };
185
202
  }
203
+ // ── Public state getters ──────────────────────────────────────────────────
204
+ get messages() { return this._messages; }
205
+ get isLoading() { return this._isLoading; }
206
+ get error() { return this._error; }
207
+ get pendingApproval() { return this._pendingApproval; }
208
+ get agentStatus() { return this._agentStatus; }
209
+ get threadId() { return this._threadId; }
210
+ get alwaysAllowedTools() { return this._alwaysAllowedTools; }
211
+ // ── Event subscription ────────────────────────────────────────────────────
212
+ on(event, callback) {
213
+ return this.emitter.on(event, callback);
214
+ }
215
+ // ── Private state helpers ─────────────────────────────────────────────────
216
+ setMessages(msgs) {
217
+ this._messages = msgs;
218
+ this.emitter.emit('messagesChange', this._messages);
219
+ }
220
+ setLoading(loading) {
221
+ this._isLoading = loading;
222
+ this.emitter.emit('loadingChange', loading);
223
+ }
224
+ setError(error) {
225
+ this._error = error;
226
+ this.emitter.emit('errorChange', error);
227
+ }
228
+ setPendingApproval(approval) {
229
+ this._pendingApproval = approval;
230
+ this.emitter.emit('approvalChange', approval);
231
+ }
232
+ setAgentStatus(status) {
233
+ this._agentStatus = status;
234
+ this.emitter.emit('statusChange', status);
235
+ }
236
+ setThreadId(threadId) {
237
+ this._threadId = threadId;
238
+ this.emitter.emit('threadIdChange', threadId);
239
+ }
240
+ setAlwaysAllowed(tools) {
241
+ this._alwaysAllowedTools = tools;
242
+ this.emitter.emit('alwaysAllowedChange', this._alwaysAllowedTools);
243
+ }
244
+ nextMessageId() {
245
+ return `msg_${++this._messageCounter}_${Date.now()}`;
246
+ }
247
+ updateAssistantMessage(id, updater) {
248
+ this._messages = this._messages.map((m) => (m.id === id ? updater(m) : m));
249
+ this.emitter.emit('messagesChange', this._messages);
250
+ }
251
+ // ── Stream processing ─────────────────────────────────────────────────────
252
+ /**
253
+ * Process events from a chat stream, updating state as events arrive.
254
+ * Returns whether the stream paused for approval and any auto-approval info.
255
+ */
256
+ /**
257
+ * Create a new streaming assistant message and append it to the message list.
258
+ * Returns the new message's ID.
259
+ */
260
+ startNewAssistantMessage() {
261
+ const msg = {
262
+ id: this.nextMessageId(), role: 'assistant', content: '',
263
+ timestamp: new Date(), isStreaming: true,
264
+ };
265
+ this._messages = [...this._messages, msg];
266
+ this.emitter.emit('messagesChange', this._messages);
267
+ return msg.id;
268
+ }
269
+ async consumeStream(stream, assistantId) {
270
+ let pendingAutoApproval = null;
271
+ let currentId = assistantId;
272
+ let hadToolSinceLastText = false;
273
+ try {
274
+ for await (const event of stream) {
275
+ if (event.type !== 'text')
276
+ this.debug('event', event.type, 'toolName' in event ? event.toolName : '');
277
+ switch (event.type) {
278
+ case 'text':
279
+ // After tool calls, finalize current message and start a new one
280
+ if (hadToolSinceLastText) {
281
+ this.updateAssistantMessage(currentId, (m) => ({ ...m, isStreaming: false }));
282
+ currentId = this.startNewAssistantMessage();
283
+ hadToolSinceLastText = false;
284
+ }
285
+ this.updateAssistantMessage(currentId, (m) => ({
286
+ ...m, content: m.content + event.content,
287
+ }));
288
+ break;
289
+ case 'status':
290
+ this.setAgentStatus({ type: event.status, message: event.message });
291
+ break;
292
+ case 'todos':
293
+ this.updateAssistantMessage(currentId, (m) => ({ ...m, plan: event.content }));
294
+ break;
295
+ case 'tool_call':
296
+ this.updateAssistantMessage(currentId, (m) => ({
297
+ ...m, steps: [...(m.steps ?? []), { name: event.toolName, status: 'used', args: stripNullArgs(event.arguments) }],
298
+ }));
299
+ hadToolSinceLastText = true;
300
+ break;
301
+ case 'approval_required': {
302
+ const cleanedArgs = stripNullArgs(event.arguments);
303
+ const approval = {
304
+ toolCallId: event.toolCallId, toolName: event.toolName,
305
+ arguments: cleanedArgs, description: event.description,
306
+ };
307
+ this.updateAssistantMessage(currentId, (m) => ({
308
+ ...m, steps: [...(m.steps ?? []), { name: event.toolName, status: 'running', args: cleanedArgs }],
309
+ }));
310
+ if (this._alwaysAllowedTools.has(event.toolName)) {
311
+ pendingAutoApproval = approval;
312
+ return { paused: true, pendingAutoApproval, currentAssistantId: currentId };
313
+ }
314
+ this.setPendingApproval(approval);
315
+ return { paused: true, pendingAutoApproval: null, currentAssistantId: currentId };
316
+ }
317
+ case 'approval_result':
318
+ this.updateAssistantMessage(currentId, (m) => ({
319
+ ...m, steps: (m.steps ?? []).map((s) => s.name === event.toolName ? { ...s, status: event.decision === 'deny' ? 'denied' : 'used' } : s),
320
+ }));
321
+ hadToolSinceLastText = true;
322
+ break;
323
+ case 'done':
324
+ this.setThreadId(event.threadId);
325
+ break;
326
+ case 'error':
327
+ this.setError(event.message);
328
+ break;
329
+ }
330
+ }
331
+ }
332
+ catch (err) {
333
+ this.setError(err instanceof Error ? err.message : String(err));
334
+ }
335
+ return { paused: false, pendingAutoApproval: null, currentAssistantId: currentId };
336
+ }
337
+ /**
338
+ * Loop consumeStream, auto-approving always-allowed tools until the stream completes.
339
+ */
340
+ async drainStream(stream, assistantId) {
341
+ let currentStream = stream;
342
+ let currentId = assistantId;
343
+ while (true) {
344
+ const { paused, pendingAutoApproval, currentAssistantId } = await this.consumeStream(currentStream, currentId);
345
+ currentId = currentAssistantId;
346
+ if (!paused)
347
+ break;
348
+ if (!pendingAutoApproval) {
349
+ // Manual approval needed — keep isStreaming true so ApprovalCard renders
350
+ this.setLoading(false);
351
+ return;
352
+ }
353
+ this.setAgentStatus({ type: 'auto-approved', message: `Auto-approved ${pendingAutoApproval.toolName}` });
354
+ currentStream = this.respondToApproval(pendingAutoApproval, { action: 'once' });
355
+ }
356
+ this.finalizeStream(currentId);
357
+ }
358
+ finalizeStream(assistantId) {
359
+ this.updateAssistantMessage(assistantId, (m) => ({ ...m, isStreaming: false }));
360
+ // Clean up empty trailing messages (tools-only messages with no text are fine, but
361
+ // empty messages created right before 'done' should be removed)
362
+ const last = this._messages[this._messages.length - 1];
363
+ if (last && last.role === 'assistant' && !last.content && !last.steps?.length && !last.plan) {
364
+ this._messages = this._messages.slice(0, -1);
365
+ this.emitter.emit('messagesChange', this._messages);
366
+ }
367
+ // Record the complete assistant turn in conversation history.
368
+ // Collect all text from the segmented display messages that form this turn
369
+ // (consecutive assistant messages after the last user message).
370
+ const parts = [];
371
+ for (let i = this._messages.length - 1; i >= 0; i--) {
372
+ const m = this._messages[i];
373
+ if (m.role !== 'assistant')
374
+ break;
375
+ if (m.content)
376
+ parts.unshift(m.content);
377
+ }
378
+ if (parts.length > 0) {
379
+ const merged = parts.join('\n\n');
380
+ this._conversationHistory.push({ role: 'assistant', content: merged });
381
+ this.debug('finalize — assistant turn recorded', { segments: parts.length, contentLength: merged.length });
382
+ }
383
+ else if (this._error) {
384
+ // Stream errored without producing any assistant text. Roll back the
385
+ // trailing user turn so the next sendMessage doesn't send [..., user, user].
386
+ const lastHist = this._conversationHistory[this._conversationHistory.length - 1];
387
+ if (lastHist?.role === 'user') {
388
+ this._conversationHistory.pop();
389
+ this.debug('finalize — rolled back orphan user turn after error');
390
+ }
391
+ }
392
+ this.setAgentStatus(null);
393
+ this.setLoading(false);
394
+ }
395
+ // ── Public chat methods ───────────────────────────────────────────────────
396
+ /**
397
+ * Send a message with full state management.
398
+ *
399
+ * Adds user/assistant messages, starts streaming, and updates all state
400
+ * (loading, error, status, etc.) as events arrive.
401
+ */
402
+ async sendMessage(content, options) {
403
+ const userMsg = { id: this.nextMessageId(), role: 'user', content, timestamp: new Date() };
404
+ const assistantMsg = { id: this.nextMessageId(), role: 'assistant', content: '', timestamp: new Date(), isStreaming: true };
405
+ this._messages = [...this._messages, userMsg, assistantMsg];
406
+ this.emitter.emit('messagesChange', this._messages);
407
+ this._lastUserMessage = content;
408
+ this.setLoading(true);
409
+ this.setError(null);
410
+ // Build history from prior turns (exclude current message — T2VSession.sendMessage appends it)
411
+ const historySnapshot = [...this._conversationHistory];
412
+ // Record user turn in conversation history
413
+ this._conversationHistory.push({ role: 'user', content });
414
+ this.debug('sendMessage', { content, historyLength: this._conversationHistory.length });
415
+ this.debug('history →', JSON.stringify(this._conversationHistory.map((m) => ({ role: m.role, content: m.content.slice(0, 80) + (m.content.length > 80 ? '...' : '') }))));
416
+ const systemPrompt = options?.systemPrompt;
417
+ const model = options?.model ?? this.config.model;
418
+ const stream = this.chat(content, { systemPrompt, model, history: historySnapshot });
419
+ await this.drainStream(stream, assistantMsg.id);
420
+ }
421
+ /**
422
+ * Respond to a pending tool approval (human-in-the-loop).
423
+ *
424
+ * If `decision.action` is `'always'`, the tool is remembered and auto-approved
425
+ * for all subsequent calls in this session.
426
+ */
427
+ async approveToolCall(decision) {
428
+ const approval = this._pendingApproval;
429
+ if (!approval)
430
+ return;
431
+ if (decision.action === 'always') {
432
+ const updated = new Set(this._alwaysAllowedTools);
433
+ updated.add(approval.toolName);
434
+ this.setAlwaysAllowed(updated);
435
+ }
436
+ this.setPendingApproval(null);
437
+ this.setLoading(true);
438
+ // Find the latest streaming assistant message (the one with the pending tool step)
439
+ let assistantMsg;
440
+ for (let i = this._messages.length - 1; i >= 0; i--) {
441
+ if (this._messages[i].role === 'assistant') {
442
+ assistantMsg = this._messages[i];
443
+ break;
444
+ }
445
+ }
446
+ if (!assistantMsg)
447
+ return;
448
+ const stream = this.respondToApproval(approval, decision);
449
+ await this.drainStream(stream, assistantMsg.id);
450
+ }
451
+ /**
452
+ * Retry the last user message. Removes the failed user+assistant pair and resends.
453
+ */
454
+ async retryLastMessage() {
455
+ if (!this._lastUserMessage)
456
+ return;
457
+ const content = this._lastUserMessage;
458
+ const msgs = [...this._messages];
459
+ while (msgs.length > 0 && msgs[msgs.length - 1].role === 'assistant')
460
+ msgs.pop();
461
+ while (msgs.length > 0 && msgs[msgs.length - 1].role === 'user')
462
+ msgs.pop();
463
+ this.setMessages(msgs);
464
+ // Remove the last user+assistant pair from conversation history too
465
+ while (this._conversationHistory.length > 0 && this._conversationHistory[this._conversationHistory.length - 1].role === 'assistant')
466
+ this._conversationHistory.pop();
467
+ while (this._conversationHistory.length > 0 && this._conversationHistory[this._conversationHistory.length - 1].role === 'user')
468
+ this._conversationHistory.pop();
469
+ this.setError(null);
470
+ await this.sendMessage(content);
471
+ }
472
+ /**
473
+ * Clear all messages and reset conversation state.
474
+ */
475
+ clearMessages() {
476
+ this.setMessages([]);
477
+ this._conversationHistory = [];
478
+ this.setLoading(false);
479
+ this.setError(null);
480
+ this.setPendingApproval(null);
481
+ this.setAgentStatus(null);
482
+ this.setThreadId(null);
483
+ this._lastUserMessage = null;
484
+ this._alwaysAllowedTools = new Set();
485
+ this.emitter.emit('alwaysAllowedChange', this._alwaysAllowedTools);
486
+ this.clearSession();
487
+ }
488
+ /**
489
+ * Clear the current error.
490
+ */
491
+ clearError() {
492
+ this.setError(null);
493
+ }
186
494
  }
187
495
  // Re-export types and classes for consumers
188
496
  export { T2VAuth } from './auth';
@@ -190,5 +498,6 @@ export { T2VClient } from './client';
190
498
  export { T2VSession } from './sessions';
191
499
  export { T2VSkills } from './skills';
192
500
  export { T2VTools } from './tools';
501
+ export { TypedEventEmitter } from './event-emitter';
193
502
  export { T2VError, AuthenticationError, PartnerKeyError, SessionError, NetworkError } from './errors';
194
503
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAMnC,MAAM,OAAO,SAAS;IACX,IAAI,CAAU;IACd,KAAK,CAAW;IAChB,MAAM,CAAY;IACV,MAAM,CAAY;IAC1B,MAAM,CAAY;IACnB,cAAc,GAAsB,IAAI,CAAC;IACzC,qBAAqB,GAA8B,IAAI,GAAG,EAAE,CAAC;IAC7D,sBAAsB,GAA+B,IAAI,GAAG,EAAE,CAAC;IAEvE,YAAY,MAAiB;QAC3B,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CACV,2DAA2D;gBAC3D,4CAA4C;gBAC5C,yCAAyC,CAC1C,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa;QACjB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAIvC,cAAc,EAAE;YACjB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;SACnD,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/E,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAE9B,iFAAiF;QACjF,gFAAgF;QAChF,oDAAoD;QACpD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YAC7C,IAAI,MAAM,EAAE,CAAC;gBACX,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;oBACnD,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,yDAAyD,EAAE,GAAG,CAAC,CAAC;QAC/E,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,CAAC,IAAI,CACT,OAAe,EACf,OAA4E;QAE5E,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC7B,CAAC;QAED,KAAK,CAAC,CAAC,IAAI,CAAC,cAAe,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAiB,YAAY,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,QAAkB;QACjC,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAwB,0BAA0B,EAAE,QAAQ,CAAC,CAAC;IAChG,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAsB,kBAAkB,CAAC,CAAC;IACtE,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAgB,YAAY,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,IAKC,EACD,OAA8B;QAE9B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,iBAAiB,EACjB,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAC9C,IAAI,EACJ,OAAO,EAAE,OAAO,CACjB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,CAAC,iBAAiB,CACtB,QAAyB,EACzB,QAAuB;QAEvB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QACD,KAAK,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,YAAY;QACV,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YACzC,yDAAyD;YACzD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACzF,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAClD,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,cAAc,CAAC,QAA8B;QAC3C,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,eAAe,CAAC,QAA+B;QAC7C,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1C,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC,CAAC;IACJ,CAAC;CACF;AAED,4CAA4C;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ import { createContext, useContext, useEffect, useMemo, useState } from 'react';
9
9
  import { Talk2View } from '../index';
10
10
  const T2VContext = createContext(null);
11
11
  export function T2VProvider({ children, ...config }) {
12
- const t2v = useMemo(() => new Talk2View(config), [config.partnerKey, config.baseUrl, config.model]);
12
+ const t2v = useMemo(() => new Talk2View(config), [config.partnerKey, config.baseUrl, config.model, config.debug]);
13
13
  const [user, setUser] = useState(() => t2v.auth.getUser());
14
14
  useEffect(() => {
15
15
  const unsubscribe = t2v.auth.onAuthStateChange((newUser) => {
@@ -1 +1 @@
1
- {"version":3,"file":"T2VProvider.js","sourceRoot":"","sources":["../../src/react/T2VProvider.tsx"],"names":[],"mappings":";AAAA;;;;;GAKG;AAEH,OAAc,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACvF,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAUrC,MAAM,UAAU,GAAG,aAAa,CAAyB,IAAI,CAAC,CAAC;AAM/D,MAAM,UAAU,WAAW,CAAC,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAoB;IACnE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACpG,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAc,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAExE,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAAE,EAAE;YACzD,OAAO,CAAC,OAAO,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;QACH,OAAO,WAAW,CAAC;IACrB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,CAAC;QACL,GAAG;QACH,IAAI;QACJ,eAAe,EAAE,IAAI,KAAK,IAAI;QAC9B,OAAO;KACR,CAAC,EACF,CAAC,GAAG,EAAE,IAAI,CAAC,CACZ,CAAC;IAEF,OAAO,KAAC,UAAU,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAuB,CAAC;AAC7E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM;IACpB,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACnC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"T2VProvider.js","sourceRoot":"","sources":["../../src/react/T2VProvider.tsx"],"names":[],"mappings":";AAAA;;;;;GAKG;AAEH,OAAc,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACvF,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAUrC,MAAM,UAAU,GAAG,aAAa,CAAyB,IAAI,CAAC,CAAC;AAM/D,MAAM,UAAU,WAAW,CAAC,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAoB;IACnE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAClH,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAc,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAExE,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAAE,EAAE;YACzD,OAAO,CAAC,OAAO,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;QACH,OAAO,WAAW,CAAC;IACrB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,CAAC;QACL,GAAG;QACH,IAAI;QACJ,eAAe,EAAE,IAAI,KAAK,IAAI;QAC9B,OAAO;KACR,CAAC,EACF,CAAC,GAAG,EAAE,IAAI,CAAC,CACZ,CAAC;IAEF,OAAO,KAAC,UAAU,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAuB,CAAC;AAC7E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM;IACpB,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACnC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -20,7 +20,8 @@ export { usePartnerConfig } from './usePartnerConfig';
20
20
  export { T2V_VARS } from './theme';
21
21
  export type { T2VProviderProps } from './T2VProvider';
22
22
  export type { UseT2VAuthResult } from './useT2VAuth';
23
- export type { UseT2VChatResult, DisplayMessage, ToolStep, PendingApproval } from './useT2VChat';
23
+ export type { UseT2VChatResult, PendingApproval } from './useT2VChat';
24
+ export type { DisplayMessage, ToolStep } from '../types';
24
25
  export type { UseT2VToolsResult } from './useT2VTools';
25
26
  export type { UseUserPreferencesResult } from './useUserPreferences';
26
27
  export type { UsePartnerConfigResult } from './usePartnerConfig';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAChG,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,YAAY,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACrE,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACtE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzD,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,YAAY,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACrE,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,34 +1,18 @@
1
1
  /**
2
- * useT2VChat — React hook for chat interactions with streaming, auto tool handling,
3
- * and human-in-the-loop approval support.
2
+ * useT2VChat — thin React wrapper that syncs Talk2View state into React state.
4
3
  *
5
- * Permission model (aligned with Claude Agent SDK):
6
- * - Allow Once: execute this tool call
7
- * - Allow Always: execute and auto-approve future calls to this tool for the session
8
- * - Deny: reject with optional corrective feedback
4
+ * All state management and streaming logic lives in the Talk2View class.
5
+ * This hook subscribes to its events and re-exports the result as React state.
9
6
  */
10
- import type { HumanDecision, PendingApproval } from '../types';
7
+ import type { DisplayMessage, PendingApproval, HumanDecision } from '../types';
11
8
  export type { PendingApproval } from '../types';
12
- export interface ToolStep {
13
- name: string;
14
- status: 'used' | 'denied';
15
- }
16
- export interface DisplayMessage {
17
- id: string;
18
- role: 'user' | 'assistant';
19
- content: string;
20
- timestamp: Date;
21
- isStreaming?: boolean;
22
- /** Markdown checklist from the agent's planning tool (write_todos). */
23
- plan?: string;
24
- /** Completed tool call steps (rendered as Chainlit-style inline steps). */
25
- steps?: ToolStep[];
26
- }
9
+ export type { DisplayMessage, ToolStep } from '../types';
27
10
  export interface UseT2VChatResult {
28
11
  messages: DisplayMessage[];
29
12
  isLoading: boolean;
30
13
  error: string | null;
31
14
  threadId: string | null;
15
+ /** Agent status uses `status` field for backwards compatibility (maps from AgentStatus.type). */
32
16
  agentStatus: {
33
17
  status: string;
34
18
  message: string;
@@ -1 +1 @@
1
- {"version":3,"file":"useT2VChat.d.ts","sourceRoot":"","sources":["../../src/react/useT2VChat.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAA0B,aAAa,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGvF,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACxD,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,qEAAqE;IACrE,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACxC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,eAAe,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,uEAAuE;IACvE,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAQD,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,gBAAgB,CAgShG"}
1
+ {"version":3,"file":"useT2VChat.d.ts","sourceRoot":"","sources":["../../src/react/useT2VChat.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAY,eAAe,EAAE,aAAa,EAAe,MAAM,UAAU,CAAC;AAEtG,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,iGAAiG;IACjG,WAAW,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACxD,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,qEAAqE;IACrE,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACxC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,eAAe,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,uEAAuE;IACvE,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAQD,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,gBAAgB,CAuDhG"}