@ouispec/agent-react 0.4.0 → 0.8.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.
package/README.md CHANGED
@@ -7,6 +7,8 @@ npm install @ouispec/agent-react
7
7
  ```
8
8
 
9
9
  - `AgentProvider` and `useAgent`: the conversation, its messages and tool calls, sending a turn, and the turn's stream. The socket is a seam (`realtime.createSocket`), so a product supplies its own connection and credentials.
10
+ - `stopTurn`, `isStopping` and `acceptedTurnId` on `useAgent`: the person's Stop for the turn in progress, and the turn whose UI requests the tab runs now (give it to the tab's OUI runtime: `accept: acceptCurrentTurn(agent.acceptedTurnId)`). A message sent while a turn runs supersedes it; a stopped turn's message keeps what it had said, marked `stopped`.
11
+ - `attachments` on `useAgent`: the files on the message being written. `attach(files)` checks each against the platform's limits and uploads it at once through `config.attachments.upload` (into the conversation, made then if there is none yet); each item shows its progress, or why it was refused; `remove(key)` cancels an upload or removes the file. `sendMessage` waits for uploads still running and sends the ready files' references; `waitingToSend` is true meanwhile. It sends nothing, and resolves `notSent: { reason, content }` so the composer keeps the draft, when a file on the message is refused, when a send already waits, or when the conversation changes or `stopTurn` gives the waiting send up. A file uploaded for a message that is not sent is removed through `config.attachments.remove`. A message's files are on `AgentMessage.attachments`.
10
12
  - `ApprovalCard`: shows what an irreversible call will do and takes the person's decision. It can't be bound to the agent: only a person's click approves.
11
13
  - `useFeedback`, `storedToAgentMessages`, and the view annotations.
12
14
 
package/dist/index.d.ts CHANGED
@@ -1,9 +1,10 @@
1
- export { AgentProvider, useAgent } from './provider/AgentProvider.js';
1
+ export { AgentProvider, useAgent, STOP_CONFIRM_TIMEOUT_MS } from './provider/AgentProvider.js';
2
2
  export { useFeedback } from './hooks/useFeedback.js';
3
3
  export { storedToAgentMessages } from './provider/stored-messages.js';
4
+ export type { ComposerAttachment, ComposerAttachmentsState, NotSentReason } from './provider/attachments.js';
4
5
  export { ApprovalCard } from './approvals/ApprovalCard.js';
5
6
  export type { ApprovalCardProps, ApprovalCardParts, ApprovalCardFrameProps, ApprovalCardButtonProps, ApprovalCardLabels, } from './approvals/ApprovalCard.js';
6
- export type { AgentApprovalRequest, AgentClientConfig, AgentContextValue, AgentHistoryState, AgentMessage, AgentToolCallState, AgentDebugState, AgentSessionRecord, DebugLogEntry, DebugLogLevel, DebugLogNamespace, } from './provider/types.js';
7
+ export type { AgentApprovalRequest, AgentClientConfig, AgentContextValue, AgentHistoryState, AgentMessage, AgentToolCallState, AgentDebugState, AgentSessionRecord, DebugLogEntry, DebugLogLevel, DebugLogNamespace, SendMessageResult, } from './provider/types.js';
7
8
  export { AgentEntityComponent, defineAgentEntity, AgentEntity, asAgentEntity, useViewAnnotation, } from './entity/index.js';
8
9
  export type { AgentEntityRenderContext, DefineAgentEntityConfig, AgentEntityProps, AgentEntityChildContext, AsAgentEntityConfig, InjectedAgentEntityProps, UseViewAnnotationOptions, UseViewAnnotationReturn, } from './entity/index.js';
9
10
  export { AnnotationRegistry } from './annotations/AnnotationRegistry.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,6BAA6B,CAAC;AAErC,YAAY,EACV,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,wBAAwB,EACxB,uBAAuB,EACvB,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAE/F,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,YAAY,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE7G,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,6BAA6B,CAAC;AAErC,YAAY,EACV,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,wBAAwB,EACxB,uBAAuB,EACvB,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { AgentProvider, useAgent } from './provider/AgentProvider.js';
1
+ export { AgentProvider, useAgent, STOP_CONFIRM_TIMEOUT_MS } from './provider/AgentProvider.js';
2
2
  export { useFeedback } from './hooks/useFeedback.js';
3
3
  export { storedToAgentMessages } from './provider/stored-messages.js';
4
4
  // Approvals (ADR-0228): the card where the person approves an irreversible call.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,iFAAiF;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAuB3D,8BAA8B;AAC9B,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAa3B,2CAA2C;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAEzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAE/F,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAGtE,iFAAiF;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAwB3D,8BAA8B;AAC9B,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAa3B,2CAA2C;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAEzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import React from 'react';
2
2
  import type { AgentClientConfig } from '@ouispec/agent-core';
3
3
  import type { AgentContextValue } from './types.js';
4
+ /** How long a stop may go unconfirmed by the turn's end before the turn is shown as stopped (ADR-0252 §2.14). */
5
+ export declare const STOP_CONFIRM_TIMEOUT_MS = 10000;
4
6
  /**
5
7
  * AgentProvider — turnkey provider that handles the complete agent lifecycle.
6
8
  *
@@ -1 +1 @@
1
- {"version":3,"file":"AgentProvider.d.ts","sourceRoot":"","sources":["../../src/provider/AgentProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAA8E,MAAM,OAAO,CAAC;AACnG,OAAO,KAAK,EACV,iBAAiB,EAKlB,MAAM,qBAAqB,CAAC;AAY7B,OAAO,KAAK,EAEV,iBAAiB,EAOlB,MAAM,YAAY,CAAC;AA2EpB;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;IAAE,MAAM,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,iFAi0B3G;AAED,wBAAgB,QAAQ,IAAI,iBAAiB,CAI5C"}
1
+ {"version":3,"file":"AgentProvider.d.ts","sourceRoot":"","sources":["../../src/provider/AgentProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAA8E,MAAM,OAAO,CAAC;AACnG,OAAO,KAAK,EACV,iBAAiB,EAKlB,MAAM,qBAAqB,CAAC;AAc7B,OAAO,KAAK,EAEV,iBAAiB,EAQlB,MAAM,YAAY,CAAC;AAepB,iHAAiH;AACjH,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAiE9C;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;IAAE,MAAM,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,iFAwiC3G;AAED,wBAAgB,QAAQ,IAAI,iBAAiB,CAI5C"}
@@ -1,5 +1,6 @@
1
1
  import React, { createContext, useContext, useState, useCallback, useEffect, useRef } from 'react';
2
- import { APPROVAL_DECIDE_EVENT } from '@ouispec/agent-core';
2
+ import { APPROVAL_DECIDE_EVENT, TURN_STOP_EVENT } from '@ouispec/agent-core';
3
+ import { useComposerAttachments } from './attachments.js';
3
4
  import { ALL_AGENT_SOCKET_EVENTS, parseSocketEvent } from '@ouispec/agent-core';
4
5
  import { browserTimeZone } from './time-zone.js';
5
6
  import { createSocketIOSocket } from './socketio.js';
@@ -13,6 +14,12 @@ const DEFAULT_ACTIVE_CONVERSATION_KEY = 'agent-sdk.activeConversation';
13
14
  const HISTORY_PAGE_SIZE = 20;
14
15
  /** How long the card waits for the approval store to answer a click. */
15
16
  const APPROVAL_DECIDE_TIMEOUT_MS = 10_000;
17
+ /** How long the server's answer to a Stop is waited for before the platform's API is asked instead. */
18
+ const STOP_ACK_TIMEOUT_MS = 3_000;
19
+ /** How long a stop may go unconfirmed by the turn's end before the turn is shown as stopped (ADR-0252 §2.14). */
20
+ export const STOP_CONFIRM_TIMEOUT_MS = 10_000;
21
+ /** How many ended turns the tab remembers, to ignore what they still send. */
22
+ const ENDED_TURNS_REMEMBERED = 20;
16
23
  /**
17
24
  * The tab's remembered active conversation, in `sessionStorage` so a reload
18
25
  * returns to it and a new tab starts fresh. Storage can be missing or throw
@@ -121,6 +128,9 @@ export function AgentProvider({ config, children }) {
121
128
  const [pendingApproval, setPendingApproval] = useState(null);
122
129
  const [approvalDeciding, setApprovalDeciding] = useState(false);
123
130
  const [approvalError, setApprovalError] = useState(null);
131
+ // The turn the person asked to stop, from their Stop until its end arrives (ADR-0252 §2.14).
132
+ const [isStopping, setIsStopping] = useState(false);
133
+ const stoppingRef = useRef(null);
124
134
  const socketRef = useRef(null);
125
135
  const unsubscribeRef = useRef(null);
126
136
  // The room of the turn in progress and its token. A reconnect gives the
@@ -151,6 +161,46 @@ export function AgentProvider({ config, children }) {
151
161
  });
152
162
  }, []);
153
163
  const clearDebugLogs = useCallback(() => setDebugLogs([]), []);
164
+ // The conversation a message or a file goes to: made on first use, once,
165
+ // however many files and messages ask for it at the same moment.
166
+ const creatingRef = useRef(null);
167
+ const ensureConversation = useCallback(async () => {
168
+ // A conversation being restored or opened is the one a message or a file goes to: wait for it,
169
+ // rather than make another (a file pasted while the remembered chat loads belongs to it).
170
+ // Each load is waited for once: one that is still pending after it settled is not waited on again.
171
+ for (let pending = pendingLoadRef.current; pending;) {
172
+ await pending;
173
+ const next = pendingLoadRef.current;
174
+ pending = next === pending ? null : next;
175
+ }
176
+ if (conversationIdRef.current)
177
+ return conversationIdRef.current;
178
+ if (!creatingRef.current) {
179
+ creatingRef.current = (async () => {
180
+ addDebugLog('info', 'agent:api', 'Creating conversation...', {});
181
+ const result = await configRef.current.createConversation();
182
+ setActiveConversation(result.conversationId);
183
+ addDebugLog('info', 'agent:api', `Conversation created: ${result.conversationId}`, { conversationId: result.conversationId });
184
+ return result.conversationId;
185
+ })().finally(() => {
186
+ creatingRef.current = null;
187
+ });
188
+ }
189
+ return creatingRef.current;
190
+ }, [addDebugLog, setActiveConversation]);
191
+ // The files on the message being written (ADR-0252 §2.14).
192
+ const messagesRef = useRef([]);
193
+ messagesRef.current = messages;
194
+ const composer = useComposerAttachments({
195
+ config: () => configRef.current,
196
+ ensureConversation,
197
+ conversationId: () => conversationIdRef.current,
198
+ messages: () => messagesRef.current,
199
+ log: (level, message, data) => addDebugLog(level, 'agent:api', message, data),
200
+ });
201
+ const { takeForSend, clear: clearComposer, ...composerState } = composer;
202
+ const cancelWaitingSendRef = useRef(composer.cancelWaitingSend);
203
+ cancelWaitingSendRef.current = composer.cancelWaitingSend;
154
204
  // --- Socket connection lifecycle (SDK-owned; the socket is a seam) ---
155
205
  useEffect(() => {
156
206
  const { url, getToken, createSocket = createSocketIOSocket } = config.realtime;
@@ -214,6 +264,58 @@ export function AgentProvider({ config, children }) {
214
264
  const liveTurnRef = useRef({ starting: false, turnId: null });
215
265
  const turnStartsRef = useRef(0);
216
266
  const heldEndsRef = useRef([]);
267
+ /**
268
+ * Whether an event of turn `turnId` belongs to the turn the tab is running. While a new turn has
269
+ * no id yet, nothing does: whatever still arrives is the turn before it, which a new message has
270
+ * superseded (ADR-0252 §2.5), and its text and calls are no longer shown as in progress.
271
+ */
272
+ const ofLiveTurn = (turnId) => {
273
+ const { starting, turnId: live } = liveTurnRef.current;
274
+ if (starting)
275
+ return false;
276
+ if (turnId !== undefined && endedTurnsRef.current.has(turnId))
277
+ return false;
278
+ return live === null || turnId === undefined || turnId === live;
279
+ };
280
+ /**
281
+ * The turns the tab has shown as ended. A turn shown as stopped because its stop was never
282
+ * confirmed, or superseded by a new message, may have a worker still streaming: the text, calls
283
+ * and approval cards it sends after that are not shown as in progress again (`ofLiveTurn`). Its
284
+ * end is still read, since an end is safe to apply twice: for a turn that is not the tab's it
285
+ * only finishes that turn's own message, and for no turn at all it changes nothing.
286
+ */
287
+ const endedTurnsRef = useRef(new Set());
288
+ const rememberEnded = (turnId) => {
289
+ if (!turnId)
290
+ return;
291
+ const ended = endedTurnsRef.current;
292
+ ended.add(turnId);
293
+ // The last few are all that can still be sending.
294
+ if (ended.size > ENDED_TURNS_REMEMBERED)
295
+ ended.delete(ended.values().next().value);
296
+ };
297
+ /** The assistant message and running calls of a turn that ended by being stopped, as the panel shows them. */
298
+ const markStopped = (prev, turnId, reason) => {
299
+ const msgId = `msg_${turnId}`;
300
+ const marked = prev.map((m) => {
301
+ if (m.id === msgId)
302
+ return { ...m, isStreaming: false, stopped: reason };
303
+ if (m.toolCall?.status === 'running')
304
+ return { ...m, toolCall: { ...m.toolCall, status: 'stopped' } };
305
+ return m.isStreaming ? { ...m, isStreaming: false } : m;
306
+ });
307
+ // A turn stopped before it said anything still shows that it was stopped.
308
+ return marked.some((m) => m.id === msgId)
309
+ ? marked
310
+ : [...marked, { id: msgId, role: 'assistant', content: '', timestamp: Date.now(), stopped: reason }];
311
+ };
312
+ /** A stop is no longer waited on: its turn ended, or the tab moved on. */
313
+ const clearStopping = () => {
314
+ if (stoppingRef.current?.timer)
315
+ clearTimeout(stoppingRef.current.timer);
316
+ stoppingRef.current = null;
317
+ setIsStopping(false);
318
+ };
217
319
  /** Whether an end of turn `turnId` is the end of the turn the tab is running. */
218
320
  const endsLiveTurn = (turnId) => {
219
321
  const live = liveTurnRef.current.turnId;
@@ -232,6 +334,9 @@ export function AgentProvider({ config, children }) {
232
334
  case 'token': {
233
335
  if (!event.content)
234
336
  break;
337
+ // Text a superseded turn still sends is not the turn in progress's.
338
+ if (!ofLiveTurn(event.turnId))
339
+ break;
235
340
  streamBufferRef.current += event.content;
236
341
  // Snapshot the accumulated content BEFORE enqueueing the state update.
237
342
  // React batches updates and runs the setMessages callback later; if the
@@ -273,6 +378,8 @@ export function AgentProvider({ config, children }) {
273
378
  // Don't update message content — leave the existing text visible.
274
379
  break;
275
380
  case 'intent_call':
381
+ if (!ofLiveTurn(event.turnId))
382
+ break;
276
383
  setMessages(prev => [...prev, {
277
384
  id: `tool_${event.id}`,
278
385
  role: 'tool',
@@ -296,6 +403,9 @@ export function AgentProvider({ config, children }) {
296
403
  : m));
297
404
  break;
298
405
  case 'approval_required': {
406
+ // A card for a turn the person has moved on from is not shown: its approval is withdrawn.
407
+ if (!ofLiveTurn(event.turnId))
408
+ break;
299
409
  // The card renders it; only the user's click on it decides.
300
410
  const { type: _type, ...request } = event;
301
411
  setPendingApproval(request);
@@ -309,12 +419,39 @@ export function AgentProvider({ config, children }) {
309
419
  // message is finished, and nothing of the turn in progress is touched — not its streaming
310
420
  // state, its id, its room or its text.
311
421
  const earlier = `msg_${event.turnId}`;
312
- setMessages(prev => prev.map(m => (m.id === earlier && m.isStreaming ? { ...m, isStreaming: false } : m)));
422
+ rememberEnded(event.turnId);
423
+ setMessages(prev => prev.map(m => m.id === earlier ? { ...m, isStreaming: false, ...(event.stopReason ? { stopped: event.stopReason } : {}) } : m));
313
424
  addDebugLog('info', 'agent:state', 'An earlier turn completed after the next one started; the turn in progress continues', {
314
425
  turnId: event.turnId,
315
426
  });
316
427
  break;
317
428
  }
429
+ if (event.stopReason) {
430
+ // The turn was stopped: what it had said stays, marked. Stopped by a message from another
431
+ // window, the conversation has moved on without this tab, so it is read again.
432
+ const reason = event.stopReason;
433
+ const asked = stoppingRef.current?.turnId === event.turnId;
434
+ rememberEnded(event.turnId);
435
+ streamBufferRef.current = '';
436
+ roundPrefixRef.current = '';
437
+ setMessages(prev => markStopped(prev, event.turnId, reason));
438
+ setIsStreaming(false);
439
+ setCurrentTurnId(null);
440
+ liveTurnRef.current = { starting: false, turnId: null };
441
+ activeRoomRef.current = null;
442
+ if (unsubscribeRef.current) {
443
+ unsubscribeRef.current();
444
+ unsubscribeRef.current = null;
445
+ }
446
+ clearStopping();
447
+ setPendingApproval(null);
448
+ addDebugLog('info', 'agent:state', `Turn stopped: ${reason}`, { turnId: event.turnId, reason });
449
+ if (reason === 'superseded' && !asked)
450
+ supersededElsewhereRef.current?.();
451
+ break;
452
+ }
453
+ clearStopping();
454
+ rememberEnded(event.turnId);
318
455
  // Finalize all streaming messages. Drop any assistant streaming bubble
319
456
  // that ended up truly empty (e.g. token_clear wiped it and no text was
320
457
  // re-emitted). Preserve tool messages (which legitimately have null content).
@@ -325,7 +462,8 @@ export function AgentProvider({ config, children }) {
325
462
  return finalized.filter(m => {
326
463
  // Only drop assistant bubbles that are empty (null or empty string).
327
464
  // Tool messages have null content by design — keep them.
328
- if (m.role === 'assistant' && (m.content === null || m.content === '')) {
465
+ // A stopped turn's message is kept even when it had said nothing: it says the turn was stopped.
466
+ if (m.role === 'assistant' && (m.content === null || m.content === '') && !m.stopped) {
329
467
  return false;
330
468
  }
331
469
  return true;
@@ -373,9 +511,12 @@ export function AgentProvider({ config, children }) {
373
511
  unsubscribeRef.current();
374
512
  unsubscribeRef.current = null;
375
513
  }
514
+ clearStopping();
376
515
  break;
377
516
  }
378
517
  }, []);
518
+ // Set once conversations can be loaded (below): what a turn superseded from another window does.
519
+ const supersededElsewhereRef = useRef(null);
379
520
  // --- Join a turn room ---
380
521
  // The realtime server requires a signed room token for a turn room and
381
522
  // denies the join without one — the socket stays connected, the
@@ -458,14 +599,8 @@ export function AgentProvider({ config, children }) {
458
599
  // A message sent while a conversation loads belongs to that conversation.
459
600
  if (pendingLoadRef.current)
460
601
  await pendingLoadRef.current;
461
- let convId = conversationIdRef.current;
462
- if (!convId) {
463
- addDebugLog('info', 'agent:api', 'Creating conversation...', {});
464
- const result = await configRef.current.createConversation();
465
- convId = result.conversationId;
466
- setActiveConversation(convId);
467
- addDebugLog('info', 'agent:api', `Conversation created: ${convId}`, { conversationId: convId });
468
- }
602
+ // Read at once when there is one: the message goes out in the same tick it was sent.
603
+ const convId = conversationIdRef.current ?? (await ensureConversation());
469
604
  // A click on the approval card continues the turn, but it is not a message.
470
605
  if (!approval) {
471
606
  const userMsg = {
@@ -473,6 +608,7 @@ export function AgentProvider({ config, children }) {
473
608
  role: 'user',
474
609
  content,
475
610
  timestamp: Date.now(),
611
+ ...(attachments?.length ? { attachments } : {}),
476
612
  };
477
613
  setMessages(prev => [...prev, userMsg]);
478
614
  // A new message moves on: a card still waiting belongs to the previous turn.
@@ -480,6 +616,16 @@ export function AgentProvider({ config, children }) {
480
616
  }
481
617
  // Any choice still on screen belongs to the previous turn.
482
618
  setPresentedOptions(null);
619
+ // A message sent while a turn runs supersedes it (ADR-0252 §2.5): the platform stops that turn,
620
+ // and here it is shown as stopped at once. Its room is left when the new turn's is joined, so
621
+ // its own end may never arrive to say so.
622
+ const superseded = approval ? null : liveTurnRef.current.turnId;
623
+ if (superseded) {
624
+ rememberEnded(superseded);
625
+ setMessages(prev => markStopped(prev, superseded, 'superseded'));
626
+ roundPrefixRef.current = '';
627
+ clearStopping();
628
+ }
483
629
  setIsStreaming(true);
484
630
  // From here the tab's turn is this one, though it has no id until the request returns: the end
485
631
  // of any earlier turn no longer ends it.
@@ -498,7 +644,7 @@ export function AgentProvider({ config, children }) {
498
644
  conversationId: convId,
499
645
  content,
500
646
  context,
501
- attachments,
647
+ ...(attachments?.length ? { attachments } : {}),
502
648
  ...(approval ? { approval } : {}),
503
649
  });
504
650
  addDebugLog('info', 'agent:api', `Turn started: ${turnId}`, {
@@ -542,8 +688,87 @@ export function AgentProvider({ config, children }) {
542
688
  }]);
543
689
  return { turnId: '' };
544
690
  }
545
- }, [collectContext, subscribeToRoom, addDebugLog, setActiveConversation, handleProtocolEvent]);
546
- const sendMessage = useCallback((content, attachments) => startTurn(content, attachments), [startTurn]);
691
+ }, [collectContext, subscribeToRoom, addDebugLog, ensureConversation, handleProtocolEvent]);
692
+ // A message carries the composer's ready files, once the uploads still running have finished.
693
+ // Nothing is sent when the files say not to: why, with the text, so the composer keeps the draft.
694
+ const sendMessage = useCallback((content, attachments) => {
695
+ if (attachments)
696
+ return startTurn(content, attachments);
697
+ const go = (taken) => {
698
+ if ('refs' in taken)
699
+ return startTurn(content, taken.refs);
700
+ addDebugLog('info', 'agent:api', `The message was not sent: ${taken.notSent}`, { reason: taken.notSent });
701
+ return { turnId: '', notSent: { reason: taken.notSent, content } };
702
+ };
703
+ const taken = takeForSend();
704
+ return 'then' in taken ? taken.then(go) : Promise.resolve(go(taken));
705
+ }, [startTurn, takeForSend, addDebugLog]);
706
+ // --- The person's Stop (ADR-0252 §2.14) ---
707
+ // Asked over the socket, from the turn's room: the server takes it only from there. The turn's
708
+ // worker hears it, stores what it had, and sends the turn's end with why. If the socket cannot
709
+ // ask, or the end has not arrived in time, the platform's API is asked instead and the turn is
710
+ // shown as stopped: the person pressed Stop, and the panel must not go on saying "working".
711
+ const stopTurn = useCallback(async () => {
712
+ // A send still waiting for its files is given up: nothing was sent, and the draft is kept.
713
+ cancelWaitingSendRef.current();
714
+ const turnId = liveTurnRef.current.turnId;
715
+ if (!turnId || stoppingRef.current)
716
+ return;
717
+ const entry = { turnId, timer: null };
718
+ stoppingRef.current = entry;
719
+ setIsStopping(true);
720
+ addDebugLog('info', 'agent:api', 'Stopping the turn', { turnId });
721
+ let askedThroughApi = false;
722
+ const askApi = async () => {
723
+ const stop = configRef.current.stopTurn;
724
+ if (!stop || askedThroughApi)
725
+ return;
726
+ askedThroughApi = true;
727
+ try {
728
+ await stop({ turnId, conversationId: conversationIdRef.current });
729
+ }
730
+ catch (err) {
731
+ addDebugLog('warn', 'agent:api', `The API could not be asked to stop the turn: ${reasonOf(err)}`, { turnId });
732
+ }
733
+ };
734
+ const stillWaiting = () => stoppingRef.current === entry;
735
+ // Not confirmed in time: ask the API (once), and show the turn as stopped.
736
+ entry.timer = setTimeout(() => {
737
+ void (async () => {
738
+ if (!stillWaiting())
739
+ return;
740
+ await askApi();
741
+ if (!stillWaiting())
742
+ return;
743
+ addDebugLog('warn', 'agent:state', 'The stop was not confirmed in time; the turn is shown as stopped', { turnId });
744
+ handleProtocolEvent({ type: 'done', turnId, stopReason: 'user_stop' });
745
+ })();
746
+ }, STOP_CONFIRM_TIMEOUT_MS);
747
+ const socket = socketRef.current;
748
+ const room = activeRoomRef.current?.room;
749
+ const answer = socket?.connected && room
750
+ ? await new Promise(resolve => {
751
+ const timer = setTimeout(() => resolve({ ok: false, reason: 'unavailable' }), STOP_ACK_TIMEOUT_MS);
752
+ socket.emit(TURN_STOP_EVENT, { turnId, room }, (result) => {
753
+ clearTimeout(timer);
754
+ resolve(result && typeof result === 'object' && 'ok' in result ? result : { ok: false, reason: 'unavailable' });
755
+ });
756
+ })
757
+ : { ok: false, reason: 'unavailable' };
758
+ if (!answer.ok) {
759
+ // The socket could not ask (not connected, or a realtime server from before the event).
760
+ addDebugLog('warn', 'agent:socket', `The stop could not be asked over the socket: ${answer.reason}`, { turnId });
761
+ if (stillWaiting())
762
+ await askApi();
763
+ }
764
+ }, [addDebugLog, handleProtocolEvent]);
765
+ /** The turn whose UI requests the tab runs now: none while starting, none once a stop is asked. */
766
+ const acceptedTurnId = useCallback(() => {
767
+ const { starting, turnId } = liveTurnRef.current;
768
+ if (starting || !turnId)
769
+ return null;
770
+ return stoppingRef.current?.turnId === turnId ? null : turnId;
771
+ }, []);
547
772
  // --- The user's decision on an approval card (ADR-0228 §2.2.3) ---
548
773
  // Only the card calls this: it is not on the context `useAgent` returns, so
549
774
  // nothing an app binds for the assistant can reach it.
@@ -604,6 +829,7 @@ export function AgentProvider({ config, children }) {
604
829
  turnStartsRef.current += 1;
605
830
  liveTurnRef.current = { starting: false, turnId: null };
606
831
  heldEndsRef.current = [];
832
+ clearStopping();
607
833
  }, []);
608
834
  /**
609
835
  * Show a stored conversation. The latest request wins: a load that finishes
@@ -617,7 +843,13 @@ export function AgentProvider({ config, children }) {
617
843
  const seq = ++loadSeqRef.current;
618
844
  setIsLoadingConversation(true);
619
845
  addDebugLog('info', 'agent:api', `${restoring ? 'Restoring' : 'Loading'} conversation ${id}`, { conversationId: id });
620
- const load = (async () => {
846
+ // The load is the pending one before anything in it runs, and it clears the pending load only
847
+ // while it is that load, as it settles: a host whose getConversation throws synchronously
848
+ // leaves nothing pending.
849
+ let settle;
850
+ const load = new Promise(resolve => (settle = resolve));
851
+ pendingLoadRef.current = load;
852
+ void (async () => {
621
853
  try {
622
854
  const stored = await getConversation(id);
623
855
  if (seq !== loadSeqRef.current)
@@ -641,15 +873,22 @@ export function AgentProvider({ config, children }) {
641
873
  }
642
874
  }
643
875
  finally {
644
- if (seq === loadSeqRef.current) {
876
+ if (seq === loadSeqRef.current)
645
877
  setIsLoadingConversation(false);
878
+ if (pendingLoadRef.current === load)
646
879
  pendingLoadRef.current = null;
647
- }
880
+ settle();
648
881
  }
649
882
  })();
650
- pendingLoadRef.current = load;
651
883
  return load;
652
884
  }, [addDebugLog, setActiveConversation]);
885
+ // A turn of this tab superseded by a message sent from another window: the conversation has
886
+ // moved on there, so it is read again here.
887
+ supersededElsewhereRef.current = () => {
888
+ const id = conversationIdRef.current;
889
+ if (id)
890
+ void loadConversation(id, { restoring: false });
891
+ };
653
892
  // Return to the tab's conversation after a reload.
654
893
  useEffect(() => {
655
894
  const remembered = readRemembered(sessionKeyOf(configRef.current));
@@ -732,8 +971,10 @@ export function AgentProvider({ config, children }) {
732
971
  if (isStreaming || id === conversationIdRef.current)
733
972
  return;
734
973
  leaveTurn();
974
+ // Files on an unsent message belong to the conversation being left.
975
+ clearComposer();
735
976
  await loadConversation(id, { restoring: false });
736
- }, [isStreaming, leaveTurn, loadConversation]);
977
+ }, [isStreaming, leaveTurn, loadConversation, clearComposer]);
737
978
  /** Leave the open conversation for a new one. Callers check that no turn is answering. */
738
979
  const resetToNewConversation = useCallback(() => {
739
980
  loadSeqRef.current++;
@@ -742,10 +983,11 @@ export function AgentProvider({ config, children }) {
742
983
  leaveTurn();
743
984
  setActiveConversation(null);
744
985
  setMessages([]);
986
+ clearComposer();
745
987
  setPresentedOptions(null);
746
988
  setPendingApproval(null);
747
989
  addDebugLog('info', 'agent:state', 'New conversation');
748
- }, [leaveTurn, setActiveConversation, addDebugLog]);
990
+ }, [leaveTurn, setActiveConversation, addDebugLog, clearComposer]);
749
991
  const startNewConversation = useCallback(() => {
750
992
  if (isStreaming)
751
993
  return;
@@ -833,6 +1075,10 @@ export function AgentProvider({ config, children }) {
833
1075
  open: useCallback(() => setIsOpen(true), []),
834
1076
  close: useCallback(() => setIsOpen(false), []),
835
1077
  sendMessage,
1078
+ attachments: composerState,
1079
+ stopTurn,
1080
+ isStopping,
1081
+ acceptedTurnId,
836
1082
  messages,
837
1083
  isStreaming,
838
1084
  isProcessing: isStreaming,
@@ -1 +1 @@
1
- {"version":3,"file":"AgentProvider.js","sourceRoot":"","sources":["../../src/provider/AgentProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentProvider.js","sourceRoot":"","sources":["../../src/provider/AgentProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import { type AgentClientConfig, type AttachmentRef } from '@ouispec/agent-core';
2
+ import type { AgentMessage } from './types.js';
3
+ /** One file on the message being written. */
4
+ export interface ComposerAttachment {
5
+ /** Stable for the item's life: what `remove` takes. */
6
+ key: string;
7
+ name: string;
8
+ bytes: number;
9
+ mediaType: string;
10
+ /** `uploading` until the platform has it and has checked it; `refused` with `error` when it will not take it. */
11
+ status: 'uploading' | 'ready' | 'refused';
12
+ /** 0 to 1 while uploading. */
13
+ progress: number;
14
+ /** Set once it is ready: what the message carries. */
15
+ ref?: AttachmentRef;
16
+ /** Why it was refused, in words the person reads. */
17
+ error?: string;
18
+ }
19
+ export interface ComposerAttachmentsState {
20
+ /** Whether the platform takes files at all. */
21
+ enabled: boolean;
22
+ items: ComposerAttachment[];
23
+ /** True while any file is still uploading: Send waits for it. */
24
+ uploading: boolean;
25
+ /**
26
+ * True from Send until the files it waits for have finished uploading. A
27
+ * second Send meanwhile is refused (`notSent: 'waiting'`); Stop, or
28
+ * `cancelWaitingSend`, gives the send up and keeps the draft.
29
+ */
30
+ waitingToSend: boolean;
31
+ /** Attach files: each is checked against the limits, then uploaded at once. */
32
+ attach: (files: Iterable<File> | ArrayLike<File>) => void;
33
+ /** Take a file off the message: an upload is cancelled, an uploaded file is removed from the file area. */
34
+ remove: (key: string) => void;
35
+ /** Give up a send that waits for uploads: nothing is sent, and the files stay on the message. */
36
+ cancelWaitingSend: () => void;
37
+ }
38
+ /**
39
+ * Why a message was not sent. The person's text is handed back with it
40
+ * (`sendMessage` → `notSent.content`), so the composer keeps the draft.
41
+ * - `waiting`: a send is already waiting for its files.
42
+ * - `file_refused`: a file on the message was refused; it stays there with
43
+ * why, until it is taken off.
44
+ * - `conversation_changed`: the conversation changed while the send waited
45
+ * for its files.
46
+ * - `cancelled`: the person gave the waiting send up.
47
+ */
48
+ export type NotSentReason = 'waiting' | 'file_refused' | 'conversation_changed' | 'cancelled';
49
+ export type TakeForSend = {
50
+ refs: AttachmentRef[];
51
+ } | {
52
+ notSent: NotSentReason;
53
+ };
54
+ interface Deps {
55
+ config: () => AgentClientConfig;
56
+ /** The conversation's id, made now if there is none yet: a file is uploaded into its conversation. */
57
+ ensureConversation: () => Promise<string>;
58
+ /** The open conversation's id, or null before it is made. */
59
+ conversationId: () => string | null;
60
+ /** The messages on screen, to count the conversation's files. */
61
+ messages: () => readonly AgentMessage[];
62
+ log: (level: 'info' | 'warn', message: string, data?: Record<string, unknown>) => void;
63
+ }
64
+ export declare function useComposerAttachments({ config, ensureConversation, conversationId, messages, log }: Deps): ComposerAttachmentsState & {
65
+ /**
66
+ * What a Send takes: the references of the ready files, at once when no
67
+ * upload is running, else once the running ones have finished. Only what
68
+ * it took leaves the composer. Nothing is taken, and the message is not to
69
+ * be sent, when a file is refused, when a send already waits, or when the
70
+ * conversation changes or the send is given up while it waits.
71
+ */
72
+ takeForSend: () => TakeForSend | Promise<TakeForSend>;
73
+ /** Clear the composer without sending (another conversation): uploads stop, uploaded files are removed. */
74
+ clear: () => void;
75
+ };
76
+ export {};
77
+ //# sourceMappingURL=attachments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attachments.d.ts","sourceRoot":"","sources":["../../src/provider/attachments.ts"],"names":[],"mappings":"AAWA,OAAO,EAIL,KAAK,iBAAiB,EAEtB,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,6CAA6C;AAC7C,MAAM,WAAW,kBAAkB;IACjC,uDAAuD;IACvD,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,iHAAiH;IACjH,MAAM,EAAE,WAAW,GAAG,OAAO,GAAG,SAAS,CAAC;IAC1C,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,+CAA+C;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,iEAAiE;IACjE,SAAS,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,aAAa,EAAE,OAAO,CAAC;IACvB,+EAA+E;IAC/E,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC1D,2GAA2G;IAC3G,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,iGAAiG;IACjG,iBAAiB,EAAE,MAAM,IAAI,CAAC;CAC/B;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,cAAc,GAAG,sBAAsB,GAAG,WAAW,CAAC;AAE9F,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,EAAE,aAAa,EAAE,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,aAAa,CAAA;CAAE,CAAC;AAEjF,UAAU,IAAI;IACZ,MAAM,EAAE,MAAM,iBAAiB,CAAC;IAChC,sGAAsG;IACtG,kBAAkB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,6DAA6D;IAC7D,cAAc,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACpC,iEAAiE;IACjE,QAAQ,EAAE,MAAM,SAAS,YAAY,EAAE,CAAC;IACxC,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACxF;AAaD,wBAAgB,sBAAsB,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,wBAAwB,GAAG;IACtI;;;;;;OAMG;IACH,WAAW,EAAE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACtD,2GAA2G;IAC3G,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAmNA"}
@@ -0,0 +1,213 @@
1
+ /**
2
+ * The composer's files (ADR-0252 §2.14): what the person attached to the
3
+ * message they are writing, each uploaded as soon as it is attached.
4
+ *
5
+ * Headless: the SDK holds the state and the platform's seam does the work
6
+ * (`AgentClientConfig.attachments`). A file is refused before it is uploaded
7
+ * when it breaks the platform's limits, and the reason stays on its item.
8
+ * Sending waits for the uploads still running and sends the references of
9
+ * the files that are ready.
10
+ */
11
+ import { useCallback, useRef, useState } from 'react';
12
+ import { DEFAULT_ATTACHMENT_LIMITS, attachmentKindOf, attachmentRefusal, } from '@ouispec/agent-core';
13
+ let keys = 0;
14
+ /** A file's chip, when it went to a conversation other than the one open now. */
15
+ const OTHER_CONVERSATION = 'This file was attached in another conversation. Take it off and attach it here again.';
16
+ export function useComposerAttachments({ config, ensureConversation, conversationId, messages, log }) {
17
+ const [items, setItems] = useState([]);
18
+ const [waitingToSend, setWaitingToSend] = useState(false);
19
+ const itemsRef = useRef([]);
20
+ const running = useRef(new Map());
21
+ /** The conversation each file went to: where it is removed from. */
22
+ const uploadedTo = useRef(new Map());
23
+ const limitsRef = useRef(null);
24
+ /** The send waiting for its files, and how to give it up. */
25
+ const waitRef = useRef(null);
26
+ /** Moves on each time the composer is cleared for another conversation. */
27
+ const epochRef = useRef(0);
28
+ const set = useCallback((next) => {
29
+ itemsRef.current = next(itemsRef.current);
30
+ setItems(itemsRef.current);
31
+ }, []);
32
+ const update = useCallback((key, patch) => set(prev => prev.map(item => (item.key === key ? { ...item, ...patch } : item))), [set]);
33
+ const limits = useCallback(async () => {
34
+ if (limitsRef.current)
35
+ return limitsRef.current;
36
+ const given = config().attachments?.limits;
37
+ const resolved = typeof given === 'function' ? await given() : (given ?? DEFAULT_ATTACHMENT_LIMITS);
38
+ limitsRef.current = resolved;
39
+ return resolved;
40
+ }, [config]);
41
+ /** Remove an uploaded file from the file area it went to; a failure is logged, never thrown. */
42
+ const removeUploaded = useCallback((ref, to, why) => {
43
+ const seam = config().attachments;
44
+ if (!seam?.remove || !to)
45
+ return;
46
+ void seam
47
+ .remove(ref, { conversationId: to })
48
+ .catch(err => log('warn', 'A file could not be deleted from the file area', { attachmentId: ref.id, why, reason: String(err) }));
49
+ }, [config, log]);
50
+ const attach = useCallback((files) => {
51
+ const seam = config().attachments;
52
+ if (!seam)
53
+ return;
54
+ const list = Array.from(files);
55
+ const added = list.map(file => ({
56
+ key: `att_local_${++keys}`,
57
+ name: file.name,
58
+ bytes: file.size,
59
+ mediaType: file.type || 'application/octet-stream',
60
+ status: 'uploading',
61
+ progress: 0,
62
+ }));
63
+ set(prev => [...prev, ...added]);
64
+ void (async () => {
65
+ const lim = await limits();
66
+ // What the conversation already holds: the files on its messages, and on this one.
67
+ const onScreen = messages().flatMap(m => m.attachments ?? []).filter(ref => !ref.removed);
68
+ let onMessage = itemsRef.current.filter(i => i.status !== 'refused' && !added.some(a => a.key === i.key)).length;
69
+ let inConversation = onScreen.length + onMessage;
70
+ let bytesInConversation = onScreen.reduce((sum, ref) => sum + ref.bytes, 0) +
71
+ itemsRef.current.filter(i => i.status !== 'refused' && !added.some(a => a.key === i.key)).reduce((sum, i) => sum + i.bytes, 0);
72
+ for (const [index, file] of list.entries()) {
73
+ const item = added[index];
74
+ // Taken off the message, or the composer cleared, while the limits were read.
75
+ if (!itemsRef.current.some(i => i.key === item.key))
76
+ continue;
77
+ const refusal = attachmentRefusal({ name: file.name, size: file.size, type: file.type || 'application/octet-stream' }, { onMessage, inConversation, bytesInConversation }, lim);
78
+ if (refusal) {
79
+ update(item.key, { status: 'refused', error: refusal });
80
+ log('info', 'A file was refused before upload', { name: file.name, bytes: file.size, reason: refusal });
81
+ continue;
82
+ }
83
+ onMessage += 1;
84
+ inConversation += 1;
85
+ bytesInConversation += file.size;
86
+ const controller = new AbortController();
87
+ const aborted = new Promise(resolve => controller.signal.addEventListener('abort', () => resolve(), { once: true }));
88
+ const work = (async () => {
89
+ let to;
90
+ try {
91
+ to = await ensureConversation();
92
+ uploadedTo.current.set(item.key, to);
93
+ const ref = await seam.upload(file, {
94
+ conversationId: to,
95
+ signal: controller.signal,
96
+ onProgress: fraction => update(item.key, { progress: Math.max(0, Math.min(1, fraction)) }),
97
+ });
98
+ if (controller.signal.aborted) {
99
+ // Taken off, or cleared, after the platform had it: it must not stay in the file area.
100
+ removeUploaded(ref, to, 'its upload was cancelled after it finished');
101
+ return;
102
+ }
103
+ update(item.key, { status: 'ready', progress: 1, ref });
104
+ log('info', 'A file was attached', { attachmentId: ref.id, kind: ref.kind ?? attachmentKindOf(ref.mediaType), bytes: ref.bytes });
105
+ }
106
+ catch (err) {
107
+ if (controller.signal.aborted)
108
+ return;
109
+ const reason = err instanceof Error && err.message ? err.message : 'The file could not be uploaded.';
110
+ update(item.key, { status: 'refused', error: reason });
111
+ log('warn', 'A file could not be attached', { name: file.name, reason });
112
+ }
113
+ })();
114
+ const done = Promise.race([work, aborted]).finally(() => running.current.delete(item.key));
115
+ running.current.set(item.key, { controller, done });
116
+ }
117
+ })();
118
+ }, [config, ensureConversation, limits, log, messages, removeUploaded, set, update]);
119
+ const remove = useCallback((key) => {
120
+ const item = itemsRef.current.find(i => i.key === key);
121
+ if (!item)
122
+ return;
123
+ running.current.get(key)?.controller.abort();
124
+ running.current.delete(key);
125
+ set(prev => prev.filter(i => i.key !== key));
126
+ if (item.ref)
127
+ removeUploaded(item.ref, uploadedTo.current.get(key), 'it was taken off the message');
128
+ uploadedTo.current.delete(key);
129
+ }, [removeUploaded, set]);
130
+ const takeForSend = useCallback(() => {
131
+ if (waitRef.current)
132
+ return { notSent: 'waiting' };
133
+ // What this Send is of: the files on the message now. A file attached while it waits stays for the next.
134
+ const sentKeys = new Set(itemsRef.current.map(i => i.key));
135
+ const epoch = epochRef.current;
136
+ const take = () => {
137
+ const mine = itemsRef.current.filter(i => sentKeys.has(i.key));
138
+ // A refused file stays on the message with why, and holds the message until it is taken off.
139
+ if (mine.some(i => i.status === 'refused'))
140
+ return { notSent: 'file_refused' };
141
+ const ready = mine.filter(i => i.status === 'ready' && i.ref);
142
+ // Each file belongs to the conversation it was uploaded into: one that went elsewhere
143
+ // cannot go with a message to this one. It says so on its chip, and holds the message
144
+ // until it is taken off (which removes it from the conversation it went to).
145
+ const now = conversationId();
146
+ const elsewhere = new Set(ready.filter(i => uploadedTo.current.get(i.key) !== now).map(i => i.key));
147
+ if (elsewhere.size > 0) {
148
+ set(prev => prev.map(i => elsewhere.has(i.key)
149
+ ? { ...i, status: 'refused', error: OTHER_CONVERSATION }
150
+ : i));
151
+ return { notSent: 'conversation_changed' };
152
+ }
153
+ const taken = new Set(ready.map(i => i.key));
154
+ if (taken.size > 0)
155
+ set(prev => prev.filter(i => !taken.has(i.key)));
156
+ for (const key of taken)
157
+ uploadedTo.current.delete(key);
158
+ return { refs: ready.map(i => i.ref) };
159
+ };
160
+ const waitingFor = [...running.current.entries()].filter(([key]) => sentKeys.has(key)).map(([, r]) => r.done);
161
+ // Nothing still uploading: the message goes now, as a message with no files always has.
162
+ if (waitingFor.length === 0)
163
+ return take();
164
+ setWaitingToSend(true);
165
+ return new Promise(resolve => {
166
+ let settled = false;
167
+ const finish = (result) => {
168
+ if (settled)
169
+ return;
170
+ settled = true;
171
+ waitRef.current = null;
172
+ setWaitingToSend(false);
173
+ resolve(result);
174
+ };
175
+ waitRef.current = { cancel: reason => finish({ notSent: reason }) };
176
+ void Promise.all(waitingFor).then(() => {
177
+ // The composer was cleared for another conversation while it waited. Otherwise `take`
178
+ // checks each file against the conversation open now.
179
+ if (epochRef.current !== epoch)
180
+ finish({ notSent: 'conversation_changed' });
181
+ else
182
+ finish(take());
183
+ });
184
+ });
185
+ }, [conversationId, set]);
186
+ const cancelWaitingSend = useCallback(() => waitRef.current?.cancel('cancelled'), []);
187
+ const clear = useCallback(() => {
188
+ epochRef.current += 1;
189
+ waitRef.current?.cancel('conversation_changed');
190
+ for (const r of running.current.values())
191
+ r.controller.abort();
192
+ running.current.clear();
193
+ // Files uploaded for a message that will not be sent: out of the file area, so they do not count against it.
194
+ for (const item of itemsRef.current) {
195
+ if (item.ref)
196
+ removeUploaded(item.ref, uploadedTo.current.get(item.key), 'the message they were on was given up');
197
+ }
198
+ uploadedTo.current.clear();
199
+ set(() => []);
200
+ }, [removeUploaded, set]);
201
+ return {
202
+ enabled: !!config().attachments,
203
+ items,
204
+ uploading: items.some(i => i.status === 'uploading'),
205
+ waitingToSend,
206
+ attach,
207
+ remove,
208
+ cancelWaitingSend,
209
+ takeForSend,
210
+ clear,
211
+ };
212
+ }
213
+ //# sourceMappingURL=attachments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attachments.js","sourceRoot":"","sources":["../../src/provider/attachments.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stored-messages.d.ts","sourceRoot":"","sources":["../../src/provider/stored-messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAY/C;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,GAAG,YAAY,EAAE,CAiC3F"}
1
+ {"version":3,"file":"stored-messages.d.ts","sourceRoot":"","sources":["../../src/provider/stored-messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAClG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAY/C;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,GAAG,YAAY,EAAE,CA8C3F"}
@@ -1,4 +1,4 @@
1
- import { displayedToolCall } from '@ouispec/agent-core';
1
+ import { displayedToolCall, turnStoppedNote } from '@ouispec/agent-core';
2
2
  /** A stored tool result as the live stream carried it: parsed JSON when it is JSON. */
3
3
  function parseResult(content) {
4
4
  if (content == null)
@@ -29,8 +29,21 @@ export function storedToAgentMessages(stored) {
29
29
  for (const m of stored) {
30
30
  const timestamp = Date.parse(m.createdAt) || 0;
31
31
  if (m.role === 'user' || m.role === 'assistant') {
32
- if (m.content) {
33
- messages.push({ id: m.id, role: m.role === 'user' ? 'user' : 'assistant', content: m.content, timestamp });
32
+ // A stopped turn's last message keeps its mark; one that has only the mark
33
+ // (the turn was stopped before it said anything) shows as stopped, with no text.
34
+ const stopped = m.role === 'assistant' && m.stopped ? m.stopped.reason : undefined;
35
+ const onlyTheMark = stopped !== undefined && m.content === turnStoppedNote({ reason: stopped });
36
+ // A message may be files with no text.
37
+ const attachments = m.role === 'user' && m.attachments?.length ? m.attachments : undefined;
38
+ if (m.content || stopped || attachments) {
39
+ messages.push({
40
+ id: m.id,
41
+ role: m.role === 'user' ? 'user' : 'assistant',
42
+ content: onlyTheMark ? '' : (m.content ?? ''),
43
+ timestamp,
44
+ ...(stopped ? { stopped } : {}),
45
+ ...(attachments ? { attachments } : {}),
46
+ });
34
47
  }
35
48
  for (const call of m.toolCalls ?? []) {
36
49
  const shown = displayedToolCall(call);
@@ -1 +1 @@
1
- {"version":3,"file":"stored-messages.js","sourceRoot":"","sources":["../../src/provider/stored-messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA2B,MAAM,qBAAqB,CAAC;AAGjF,uFAAuF;AACvF,SAAS,WAAW,CAAC,OAAsB;IACzC,IAAI,OAAO,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC;IACtC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAqC;IACzE,MAAM,QAAQ,GAAmB,EAAE,CAAC;IACpC,MAAM,cAAc,GAAmB,EAAE,CAAC;IAE1C,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAChD,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;gBACd,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;YAC7G,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;gBACrC,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACtC,MAAM,WAAW,GAAiB;oBAChC,EAAE,EAAE,QAAQ,IAAI,CAAC,EAAE,EAAE;oBACrB,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,IAAI;oBACb,SAAS;oBACT,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE;iBAC5H,CAAC;gBACF,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC3B,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,CAAC,CAAC,UAAU;gBACxB,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC,UAAU,CAAC;gBAChE,CAAC,CAAC,CAAC,CAAC;YACN,MAAM,MAAM,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3E,IAAI,MAAM,EAAE,QAAQ,EAAE,CAAC;gBACrB,MAAM,CAAC,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3E,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"stored-messages.js","sourceRoot":"","sources":["../../src/provider/stored-messages.ts"],"names":[],"mappings":"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"}
@@ -2,13 +2,25 @@
2
2
  * Re-export the config type for convenience.
3
3
  */
4
4
  export type { AgentClientConfig } from '@ouispec/agent-core';
5
- import type { ApprovalRequiredProtocolEvent, SocketLike, AgentConversationChanges, AgentConversationFilter, AgentConversationSummary } from '@ouispec/agent-core';
5
+ import type { AttachmentRef } from '@ouispec/agent-core';
6
+ import type { ComposerAttachmentsState, NotSentReason } from './attachments.js';
7
+ /** What `sendMessage` did: the turn it started, or why nothing was sent. */
8
+ export interface SendMessageResult {
9
+ /** Empty when nothing was sent. */
10
+ turnId: string;
11
+ notSent?: {
12
+ reason: NotSentReason;
13
+ content: string;
14
+ };
15
+ }
16
+ import type { ApprovalRequiredProtocolEvent, SocketLike, AgentConversationChanges, AgentConversationFilter, AgentConversationSummary, TurnStoppedReason } from '@ouispec/agent-core';
6
17
  export interface AgentToolCallState {
7
18
  id: string;
8
19
  name: string;
9
20
  /** What the assistant called it with: a session's record can be replayed from it (ADR-0244 §2.7). */
10
21
  arguments?: Record<string, unknown>;
11
- status: 'running' | 'complete' | 'error';
22
+ /** `stopped`: the turn was stopped before this call's result arrived here. */
23
+ status: 'running' | 'complete' | 'error' | 'stopped';
12
24
  result?: unknown;
13
25
  }
14
26
  export interface AgentMessage {
@@ -18,6 +30,13 @@ export interface AgentMessage {
18
30
  timestamp: number;
19
31
  toolCall?: AgentToolCallState;
20
32
  isStreaming?: boolean;
33
+ /**
34
+ * Set on the assistant message of a turn that was stopped (ADR-0252): by
35
+ * the person, or by a newer message. What it had said is kept.
36
+ */
37
+ stopped?: TurnStoppedReason;
38
+ /** The files the person attached to this message (ADR-0252 §2.8), by reference. */
39
+ attachments?: AttachmentRef[];
21
40
  }
22
41
  export type DebugLogLevel = 'info' | 'warn' | 'error' | 'event' | 'socket';
23
42
  /**
@@ -164,9 +183,40 @@ export interface AgentContextValue {
164
183
  toggle: () => void;
165
184
  open: () => void;
166
185
  close: () => void;
167
- sendMessage: (content: string, attachments?: File[]) => Promise<{
168
- turnId: string;
169
- }>;
186
+ /**
187
+ * Sends the person's message. While a turn is running this is a barge-in
188
+ * (ADR-0252 §2.5): the platform stops the running turn and this message
189
+ * runs next. The tab's turn is the new one from this call on.
190
+ *
191
+ * The message carries the composer's ready files (`attachments`), after
192
+ * waiting for any still uploading, unless references are given here.
193
+ *
194
+ * It is not sent, and `notSent` says why and hands back `content` for the
195
+ * composer to keep as the draft, when a file on it is refused, when a send
196
+ * already waits for its files, or when the conversation changes or the
197
+ * person gives the send up (Stop) while it waits.
198
+ */
199
+ sendMessage: (content: string, attachments?: AttachmentRef[]) => Promise<SendMessageResult>;
200
+ /**
201
+ * The files on the message being written (ADR-0252 §2.14): attach, watch
202
+ * each upload, remove. `enabled` is false when the platform takes no files.
203
+ */
204
+ attachments: ComposerAttachmentsState;
205
+ /**
206
+ * Stops the turn in progress (ADR-0252 §2.14). What it had produced is
207
+ * kept. Does nothing when no turn is running or a stop is already asked.
208
+ */
209
+ stopTurn: () => Promise<void>;
210
+ /** True from the person's Stop until the turn's end arrives. */
211
+ isStopping: boolean;
212
+ /**
213
+ * The turn whose UI requests this tab runs now, or null: read when a request
214
+ * arrives, not at render. Null while no turn runs, while a new turn has no
215
+ * id yet, and from the moment a stop is asked, so a request a stopped or
216
+ * superseded turn sends late is refused. Give it to the tab's OUI runtime:
217
+ * `accept: acceptCurrentTurn(agent.acceptedTurnId)`.
218
+ */
219
+ acceptedTurnId: () => string | null;
170
220
  messages: AgentMessage[];
171
221
  isStreaming: boolean;
172
222
  currentTurnId: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/provider/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/provider/types.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export declare const SDK_PACKAGE = "@ouispec/agent-react";
2
- export declare const SDK_VERSION = "0.4.0";
2
+ export declare const SDK_VERSION = "0.8.0";
3
3
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,4 +1,4 @@
1
1
  // Written by scripts/write-version.mjs from package.json. Not committed.
2
2
  export const SDK_PACKAGE = "@ouispec/agent-react";
3
- export const SDK_VERSION = "0.4.0";
3
+ export const SDK_VERSION = "0.8.0";
4
4
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ouispec/agent-react",
3
- "version": "0.4.0",
3
+ "version": "0.8.0",
4
4
  "description": "React bindings — view annotations, execution engine, agent UI components",
5
5
  "homepage": "https://github.com/wesreid/oui/tree/main/packages/agent-react#readme",
6
6
  "bugs": {
@@ -32,7 +32,7 @@
32
32
  },
33
33
  "dependencies": {
34
34
  "socket.io-client": "^4.7.0",
35
- "@ouispec/agent-core": "^0.4.0"
35
+ "@ouispec/agent-core": "^0.8.0"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@testing-library/react": "^16",
@@ -42,7 +42,7 @@
42
42
  "react-dom": "^19.0.0",
43
43
  "typescript": "^5.8.0",
44
44
  "vitest": "^3.2.0",
45
- "oui-spec": "0.8.0"
45
+ "oui-spec": "0.11.0"
46
46
  },
47
47
  "publishConfig": {
48
48
  "access": "public",