@ably/ai-transport 0.0.1 → 0.1.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 +54 -47
- package/dist/ably-ai-transport.js +1006 -539
- package/dist/ably-ai-transport.js.map +1 -1
- package/dist/ably-ai-transport.umd.cjs +1 -1
- package/dist/ably-ai-transport.umd.cjs.map +1 -1
- package/dist/constants.d.ts +4 -0
- package/dist/core/codec/types.d.ts +19 -2
- package/dist/core/transport/decode-history.d.ts +8 -6
- package/dist/core/transport/headers.d.ts +4 -2
- package/dist/core/transport/index.d.ts +4 -1
- package/dist/core/transport/pipe-stream.d.ts +3 -2
- package/dist/core/transport/stream-router.d.ts +11 -1
- package/dist/core/transport/tree.d.ts +171 -0
- package/dist/core/transport/turn-manager.d.ts +4 -1
- package/dist/core/transport/types.d.ts +270 -119
- package/dist/core/transport/view.d.ts +166 -0
- package/dist/errors.d.ts +19 -2
- package/dist/index.d.ts +3 -1
- package/dist/react/ably-ai-transport-react.js +1019 -486
- package/dist/react/ably-ai-transport-react.js.map +1 -1
- package/dist/react/ably-ai-transport-react.umd.cjs +1 -1
- package/dist/react/ably-ai-transport-react.umd.cjs.map +1 -1
- package/dist/react/contexts/transport-context.d.ts +31 -0
- package/dist/react/contexts/transport-provider.d.ts +49 -0
- package/dist/react/create-transport-hooks.d.ts +124 -0
- package/dist/react/index.d.ts +14 -8
- package/dist/react/use-ably-messages.d.ts +14 -8
- package/dist/react/use-active-turns.d.ts +7 -3
- package/dist/react/use-client-transport.d.ts +78 -5
- package/dist/react/use-create-view.d.ts +22 -0
- package/dist/react/use-tree.d.ts +20 -0
- package/dist/react/use-view.d.ts +79 -0
- package/dist/vercel/ably-ai-transport-vercel.js +1478 -842
- package/dist/vercel/ably-ai-transport-vercel.js.map +1 -1
- package/dist/vercel/ably-ai-transport-vercel.umd.cjs +1 -1
- package/dist/vercel/ably-ai-transport-vercel.umd.cjs.map +1 -1
- package/dist/vercel/codec/tool-transitions.d.ts +50 -0
- package/dist/vercel/index.d.ts +3 -0
- package/dist/vercel/react/ably-ai-transport-vercel-react.js +9099 -852
- package/dist/vercel/react/ably-ai-transport-vercel-react.js.map +1 -1
- package/dist/vercel/react/ably-ai-transport-vercel-react.umd.cjs +45 -1
- package/dist/vercel/react/ably-ai-transport-vercel-react.umd.cjs.map +1 -1
- package/dist/vercel/react/contexts/chat-transport-context.d.ts +32 -0
- package/dist/vercel/react/contexts/chat-transport-provider.d.ts +84 -0
- package/dist/vercel/react/index.d.ts +5 -0
- package/dist/vercel/react/use-chat-transport.d.ts +61 -20
- package/dist/vercel/react/use-message-sync.d.ts +41 -9
- package/dist/vercel/react/use-staged-add-tool-approval-response.d.ts +30 -0
- package/dist/vercel/tool-approvals.d.ts +124 -0
- package/dist/vercel/tool-events.d.ts +26 -0
- package/dist/vercel/transport/chat-transport.d.ts +33 -11
- package/dist/vercel/transport/index.d.ts +5 -2
- package/package.json +23 -17
- package/src/constants.ts +6 -0
- package/src/core/codec/encoder.ts +10 -1
- package/src/core/codec/types.ts +19 -3
- package/src/core/transport/client-transport.ts +382 -364
- package/src/core/transport/decode-history.ts +229 -81
- package/src/core/transport/headers.ts +6 -2
- package/src/core/transport/index.ts +13 -5
- package/src/core/transport/pipe-stream.ts +8 -5
- package/src/core/transport/server-transport.ts +212 -58
- package/src/core/transport/stream-router.ts +21 -3
- package/src/core/transport/{conversation-tree.ts → tree.ts} +192 -77
- package/src/core/transport/turn-manager.ts +28 -10
- package/src/core/transport/types.ts +318 -139
- package/src/core/transport/view.ts +840 -0
- package/src/errors.ts +21 -1
- package/src/index.ts +10 -5
- package/src/react/contexts/transport-context.ts +37 -0
- package/src/react/contexts/transport-provider.tsx +164 -0
- package/src/react/create-transport-hooks.ts +144 -0
- package/src/react/index.ts +15 -8
- package/src/react/use-ably-messages.ts +34 -16
- package/src/react/use-active-turns.ts +28 -17
- package/src/react/use-client-transport.ts +184 -24
- package/src/react/use-create-view.ts +68 -0
- package/src/react/use-tree.ts +53 -0
- package/src/react/use-view.ts +233 -0
- package/src/react/vite.config.ts +4 -1
- package/src/vercel/codec/accumulator.ts +64 -79
- package/src/vercel/codec/decoder.ts +11 -8
- package/src/vercel/codec/encoder.ts +68 -54
- package/src/vercel/codec/index.ts +0 -2
- package/src/vercel/codec/tool-transitions.ts +122 -0
- package/src/vercel/index.ts +17 -0
- package/src/vercel/react/contexts/chat-transport-context.ts +40 -0
- package/src/vercel/react/contexts/chat-transport-provider.tsx +122 -0
- package/src/vercel/react/index.ts +14 -0
- package/src/vercel/react/use-chat-transport.ts +164 -42
- package/src/vercel/react/use-message-sync.ts +77 -19
- package/src/vercel/react/use-staged-add-tool-approval-response.ts +87 -0
- package/src/vercel/react/vite.config.ts +4 -2
- package/src/vercel/tool-approvals.ts +380 -0
- package/src/vercel/tool-events.ts +53 -0
- package/src/vercel/transport/chat-transport.ts +225 -79
- package/src/vercel/transport/index.ts +14 -3
- package/dist/core/transport/conversation-tree.d.ts +0 -9
- package/dist/react/use-conversation-tree.d.ts +0 -20
- package/dist/react/use-edit.d.ts +0 -7
- package/dist/react/use-history.d.ts +0 -19
- package/dist/react/use-messages.d.ts +0 -7
- package/dist/react/use-regenerate.d.ts +0 -7
- package/dist/react/use-send.d.ts +0 -7
- package/src/react/use-conversation-tree.ts +0 -71
- package/src/react/use-edit.ts +0 -24
- package/src/react/use-history.ts +0 -111
- package/src/react/use-messages.ts +0 -32
- package/src/react/use-regenerate.ts +0 -24
- package/src/react/use-send.ts +0 -25
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared tool part transition logic for the Vercel AI SDK codec.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from the accumulator so the tool output state transition logic
|
|
5
|
+
* lives in one place, reusable by the accumulator and any other callers.
|
|
6
|
+
*/
|
|
7
|
+
import type * as AI from 'ai';
|
|
8
|
+
/** The set of UIMessageChunk types that represent tool output transitions. */
|
|
9
|
+
export type ToolOutputChunk = Extract<AI.UIMessageChunk, {
|
|
10
|
+
type: 'tool-output-available' | 'tool-output-error' | 'tool-output-denied' | 'tool-approval-request';
|
|
11
|
+
}>;
|
|
12
|
+
/**
|
|
13
|
+
* Whether a UIMessageChunk is a tool output transition event.
|
|
14
|
+
* @param chunk - The chunk to test.
|
|
15
|
+
* @returns True if the chunk is a tool output transition type.
|
|
16
|
+
*/
|
|
17
|
+
export declare const isToolOutputChunk: (chunk: AI.UIMessageChunk) => chunk is ToolOutputChunk;
|
|
18
|
+
/** Fields shared by all DynamicToolUIPart state variants. */
|
|
19
|
+
interface ToolBaseFields {
|
|
20
|
+
type: 'dynamic-tool';
|
|
21
|
+
toolName: string;
|
|
22
|
+
toolCallId: string;
|
|
23
|
+
title?: string;
|
|
24
|
+
providerExecuted?: boolean;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Extract the state-independent base fields for a DynamicToolUIPart.
|
|
28
|
+
* Works with both chunks (tool-input-start, etc.) and existing parts.
|
|
29
|
+
* @param source - Any object containing the required tool identity fields.
|
|
30
|
+
* @param source.toolCallId - The tool call identifier.
|
|
31
|
+
* @param source.toolName - The tool name.
|
|
32
|
+
* @param source.title - Optional display title.
|
|
33
|
+
* @param source.providerExecuted - Whether the provider executed the tool.
|
|
34
|
+
* @returns Base fields shared across all DynamicToolUIPart state variants.
|
|
35
|
+
*/
|
|
36
|
+
export declare const toolBase: (source: {
|
|
37
|
+
toolCallId: string;
|
|
38
|
+
toolName: string;
|
|
39
|
+
title?: string;
|
|
40
|
+
providerExecuted?: boolean;
|
|
41
|
+
}) => ToolBaseFields;
|
|
42
|
+
/**
|
|
43
|
+
* Transition a DynamicToolUIPart to a new state based on a tool output chunk.
|
|
44
|
+
* Pure function — does not mutate the input part.
|
|
45
|
+
* @param part - The existing tool part to transition.
|
|
46
|
+
* @param chunk - The tool output chunk describing the transition.
|
|
47
|
+
* @returns A new DynamicToolUIPart in the target state.
|
|
48
|
+
*/
|
|
49
|
+
export declare const transitionToolPart: (part: AI.DynamicToolUIPart, chunk: ToolOutputChunk) => AI.DynamicToolUIPart;
|
|
50
|
+
export {};
|
package/dist/vercel/index.d.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
export { UIMessageCodec } from './codec/index.js';
|
|
2
2
|
export type { ChatTransport, ChatTransportOptions, SendMessagesRequestContext, VercelClientTransportOptions, VercelServerTransportOptions, } from './transport/index.js';
|
|
3
3
|
export { createChatTransport, createClientTransport, createServerTransport } from './transport/index.js';
|
|
4
|
+
export { applyToolEventsToHistory } from './tool-events.js';
|
|
5
|
+
export type { PrepareApprovalTurnOptions, PrepareApprovalTurnResult, StreamResponseWithApprovalRedirectOptions, ToolApprovalDecision, } from './tool-approvals.js';
|
|
6
|
+
export { applyToolApprovalsToHistory, extractApprovalDecisionsFromHistory, prepareApprovalTurn, streamResponseWithApprovalRedirect, } from './tool-approvals.js';
|