@agents24/react 0.2.13 → 0.2.15
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/compatibility.json +5 -5
- package/dist/chat-observation.d.ts +27 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +690 -383
- package/dist/index.js.map +1 -1
- package/dist/lifecycle.d.ts +4 -0
- package/dist/model.d.ts +1 -1
- package/dist/operation-ownership.d.ts +12 -0
- package/dist/provider.d.ts +4 -2
- package/dist/state.d.ts +2 -0
- package/dist/thread-message-queue.d.ts +6 -4
- package/dist/use-agent-chat-feedback.d.ts +14 -7
- package/dist/use-agent-chat-queue-actions.d.ts +2 -1
- package/dist/use-agent-chat.d.ts +1 -0
- package/dist/use-chat-observation.d.ts +4 -0
- package/package.json +2 -2
- package/dist/thread-summary-subscription.d.ts +0 -12
package/dist/lifecycle.d.ts
CHANGED
|
@@ -4,5 +4,9 @@ export type AbortControllerLike = {
|
|
|
4
4
|
abort(reason?: unknown): void;
|
|
5
5
|
};
|
|
6
6
|
export type AbortControllerFactory = () => AbortControllerLike;
|
|
7
|
+
export type VisibilitySource = {
|
|
8
|
+
isVisible(): boolean;
|
|
9
|
+
subscribe(listener: () => void): () => void;
|
|
10
|
+
};
|
|
7
11
|
export declare function createPortableId(): string;
|
|
8
12
|
export declare function isAbortLike(error: unknown): boolean;
|
package/dist/model.d.ts
CHANGED
|
@@ -257,7 +257,7 @@ export declare function assistantProjectionFromEvent(event: RuntimeEvent): {
|
|
|
257
257
|
export declare function modelTurnPartFromEvent(event: RuntimeEvent): ChatModelTurnPart | null;
|
|
258
258
|
export declare function contextCompressionPartFromEvent(event: RuntimeEvent, existingParts?: readonly ChatPart[]): ChatContextCompressionPart | null;
|
|
259
259
|
export declare function threadDetailToMessages(detail: ThreadDetail): ChatMessage[];
|
|
260
|
-
export declare function threadTimelineToMessages(items: readonly import("@agents24/client").ThreadMessage[]
|
|
260
|
+
export declare function threadTimelineToMessages(items: readonly import("@agents24/client").ThreadMessage[]): ChatMessage[];
|
|
261
261
|
export declare function latestThreadContext(detail: ThreadDetail): {
|
|
262
262
|
contextWindow: ContextWindow | null;
|
|
263
263
|
contextCompression: ContextCompression | null;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** A selection generation distinguishes A → B → A from uninterrupted ownership. */
|
|
2
|
+
export type ChatOperationOwner = {
|
|
3
|
+
generation: number;
|
|
4
|
+
threadId: string | null;
|
|
5
|
+
runId?: string | null;
|
|
6
|
+
stream?: unknown;
|
|
7
|
+
};
|
|
8
|
+
export declare function captureChatOperation(read: () => ChatOperationOwner, options?: {
|
|
9
|
+
run?: boolean;
|
|
10
|
+
stream?: boolean;
|
|
11
|
+
adoptThread?: boolean;
|
|
12
|
+
}): () => boolean;
|
package/dist/provider.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AgentClient } from "@agents24/client";
|
|
2
2
|
import * as React from "react";
|
|
3
|
-
import type { AbortControllerFactory } from "./lifecycle";
|
|
3
|
+
import type { AbortControllerFactory, VisibilitySource } from "./lifecycle";
|
|
4
4
|
import type { StoredChatThread } from "./model";
|
|
5
5
|
export type AgentChatStorage = {
|
|
6
6
|
loadThreads(): StoredChatThread[];
|
|
@@ -13,6 +13,7 @@ export type Agents24ReactRuntime = {
|
|
|
13
13
|
createAbortController: AbortControllerFactory;
|
|
14
14
|
createId: () => string;
|
|
15
15
|
storage?: AgentChatStorage;
|
|
16
|
+
visibility?: VisibilitySource;
|
|
16
17
|
};
|
|
17
18
|
export type Agents24ProviderProps = {
|
|
18
19
|
children: React.ReactNode;
|
|
@@ -20,7 +21,8 @@ export type Agents24ProviderProps = {
|
|
|
20
21
|
createAbortController: AbortControllerFactory;
|
|
21
22
|
createId?: () => string;
|
|
22
23
|
storage?: AgentChatStorage;
|
|
24
|
+
visibility?: VisibilitySource;
|
|
23
25
|
};
|
|
24
|
-
export declare function Agents24Provider({ children, client, createAbortController, createId, storage, }: Agents24ProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
export declare function Agents24Provider({ children, client, createAbortController, createId, storage, visibility, }: Agents24ProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
25
27
|
export declare function useAgents24Runtime(): Agents24ReactRuntime;
|
|
26
28
|
export declare function useAgentClient(): AgentClient;
|
package/dist/state.d.ts
CHANGED
|
@@ -64,6 +64,8 @@ export declare function appendStableStreamingTurn<TMessage extends StableChatMes
|
|
|
64
64
|
export declare function preserveMountedMessageIds(canonical: ChatMessage[], current: ChatMessage[]): ChatMessage[];
|
|
65
65
|
/** Reconcile a durable timeline without replacing a newer live assistant segment. */
|
|
66
66
|
export declare function reconcileThreadTimeline(current: ChatMessage[], canonical: ChatMessage[], activeRunId: string | null, streamingMessageId: string | null): ChatMessage[];
|
|
67
|
+
/** Older pages add history without replacing already mounted or live messages. */
|
|
68
|
+
export declare function prependThreadTimeline(current: ChatMessage[], older: ChatMessage[]): ChatMessage[];
|
|
67
69
|
/** A promoted queue item enters the transcript under its durable message ID. */
|
|
68
70
|
export declare function promoteThreadMessage(current: ChatMessage[], message: ChatMessage, runId: string): ChatMessage[];
|
|
69
71
|
export declare function upsertStableAssistantMessage<TMessage extends StableChatMessageBase>(messages: TMessage[], input: StableAssistantUpsertInput<TMessage>): TMessage[];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ChatMessage } from "./model";
|
|
2
2
|
import { type AgentChatState } from "./state";
|
|
3
|
-
import type { ThreadMessage, ThreadMessageInput, ThreadMessageQueueState, ThreadMessageSubmission, ThreadMessagesPage } from "@agents24/client";
|
|
3
|
+
import type { ThreadMessage, ThreadMessageInput, ThreadMessageQueueState, ThreadMessageSubmission, ThreadMessagesPage, AbortSignalLike } from "@agents24/client";
|
|
4
4
|
/** Retry uncertain admission once; the caller retains the same receipt and payload. */
|
|
5
5
|
export declare function retrySubmissionAdmission<T>(admit: () => Promise<T>): Promise<T>;
|
|
6
6
|
export type ThreadMessageNotice = {
|
|
@@ -11,7 +11,7 @@ export type ThreadMessageNotice = {
|
|
|
11
11
|
clientSubmissionId?: string | null;
|
|
12
12
|
};
|
|
13
13
|
export type ThreadMessageQueueTransport = {
|
|
14
|
-
list(threadId: string): Promise<ThreadMessagesPage>;
|
|
14
|
+
list(threadId: string, signal?: AbortSignalLike): Promise<ThreadMessagesPage>;
|
|
15
15
|
submit(input: ThreadMessageInput): Promise<ThreadMessageSubmission>;
|
|
16
16
|
edit(message: ThreadMessage, input: {
|
|
17
17
|
text: string;
|
|
@@ -26,16 +26,18 @@ export type ThreadMessageQueueTransport = {
|
|
|
26
26
|
}>;
|
|
27
27
|
};
|
|
28
28
|
export type RetractedMessageDraft = Pick<ThreadMessage, "text" | "attachment_ids" | "attachments">;
|
|
29
|
-
export declare function useThreadMessageQueue({ threadId, transport, onPromoted, onOptimistic, onDiscard }: {
|
|
29
|
+
export declare function useThreadMessageQueue({ threadId, transport, onPromoted, onUnknownPromotion, onOptimistic, onDiscard, ownOperation: ownSelection }: {
|
|
30
30
|
threadId: string | null;
|
|
31
|
+
ownOperation?: () => () => boolean;
|
|
31
32
|
transport: ThreadMessageQueueTransport;
|
|
32
33
|
onPromoted: (message: ThreadMessage, runId: string) => void;
|
|
34
|
+
onUnknownPromotion?: (runId: string, threadId: string) => void;
|
|
33
35
|
onOptimistic?: (message: ThreadMessage, uploading: boolean) => void;
|
|
34
36
|
onDiscard?: (message: ThreadMessage) => void;
|
|
35
37
|
}): {
|
|
36
38
|
pendingMessages: readonly ThreadMessage[];
|
|
37
39
|
messageQueue: ThreadMessageQueueState | null;
|
|
38
|
-
refresh: (selectedThreadId?: string | null) => Promise<ThreadMessagesPage | null>;
|
|
40
|
+
refresh: (selectedThreadId?: string | null, signal?: AbortSignalLike) => Promise<ThreadMessagesPage | null>;
|
|
39
41
|
hydrate: (page: ThreadMessagesPage, selectedThreadId: string) => void;
|
|
40
42
|
acceptNotice: (notice: ThreadMessageNotice) => boolean;
|
|
41
43
|
beginSubmission: (input: {
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
import type { AgentClient, FeedbackReason } from "@agents24/client";
|
|
2
2
|
import type { ChatMessage } from "./model";
|
|
3
3
|
import { type AgentChatOperation, type AgentChatState } from "./state";
|
|
4
|
-
export declare function useAgentChatFeedback({ client, update, clearOperationError, failOperation }: {
|
|
5
|
-
client:
|
|
4
|
+
export declare function useAgentChatFeedback({ client, update, clearOperationError, failOperation, ownOperation, refreshMessages }: {
|
|
5
|
+
client: {
|
|
6
|
+
runs: Pick<AgentClient["runs"], "setFeedback">;
|
|
7
|
+
};
|
|
8
|
+
ownOperation: () => () => boolean;
|
|
9
|
+
refreshMessages: () => Promise<void>;
|
|
6
10
|
update: (updater: (current: AgentChatState) => AgentChatState) => void;
|
|
7
11
|
clearOperationError: () => void;
|
|
8
12
|
failOperation: (operation: AgentChatOperation, cause: unknown) => void;
|
|
9
|
-
}):
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
}): {
|
|
14
|
+
setFeedback: (message: ChatMessage, input: {
|
|
15
|
+
rating: "like" | "dislike" | null;
|
|
16
|
+
reason?: FeedbackReason | null;
|
|
17
|
+
comment?: string | null;
|
|
18
|
+
}) => Promise<void>;
|
|
19
|
+
captureRead: () => (incoming: ChatMessage[], current: ChatMessage[]) => ChatMessage[];
|
|
20
|
+
};
|
|
@@ -3,7 +3,8 @@ import * as React from "react";
|
|
|
3
3
|
import type { AgentChatSubmitInput } from "./use-agent-chat";
|
|
4
4
|
import { useThreadMessageQueue } from "./thread-message-queue";
|
|
5
5
|
import type { AgentChatOperation, AgentChatState } from "./state";
|
|
6
|
-
export declare function useAgentChatQueueActions({ queue, stateRef, createId, clearOperationError, failOperation, refreshMessages, attachRun }: {
|
|
6
|
+
export declare function useAgentChatQueueActions({ queue, stateRef, createId, clearOperationError, failOperation, refreshMessages, attachRun, ownOperation }: {
|
|
7
|
+
ownOperation: () => () => boolean;
|
|
7
8
|
queue: ReturnType<typeof useThreadMessageQueue>;
|
|
8
9
|
stateRef: React.RefObject<AgentChatState>;
|
|
9
10
|
createId: () => string;
|
package/dist/use-agent-chat.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agents24/react",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.15",
|
|
4
4
|
"description": "DOM-free React state and hooks for Agents24 client applications.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"prepack": "pnpm run build && pnpm run check:boundaries"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@agents24/client": "0.2.
|
|
43
|
+
"@agents24/client": "0.2.13"
|
|
44
44
|
},
|
|
45
45
|
"peerDependencies": {
|
|
46
46
|
"react": ">=19.0.0 <20.0.0"
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { AbortSignalLike, AgentClient, ThreadSummaryEvent } from "@agents24/client";
|
|
2
|
-
type ThreadSummarySubscription = {
|
|
3
|
-
client: AgentClient;
|
|
4
|
-
signal: AbortSignalLike;
|
|
5
|
-
onEvent(event: ThreadSummaryEvent): Promise<void> | void;
|
|
6
|
-
onError(error: unknown): void;
|
|
7
|
-
onRecovered(): void;
|
|
8
|
-
refresh(): Promise<void>;
|
|
9
|
-
};
|
|
10
|
-
/** Keep the thread list connected across clean EOFs and transient stream failures. */
|
|
11
|
-
export declare function subscribeToThreadSummaries(input: ThreadSummarySubscription): Promise<void>;
|
|
12
|
-
export {};
|