@ably/ai-transport 0.2.0 → 0.3.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 +10 -19
- package/dist/ably-ai-transport.js +1790 -1091
- 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 +2 -2
- package/dist/core/agent.d.ts +20 -5
- package/dist/core/channel-options.d.ts +57 -0
- package/dist/core/codec/codec-event.d.ts +9 -0
- package/dist/core/codec/decoder.d.ts +4 -1
- package/dist/core/codec/define-codec.d.ts +100 -0
- package/dist/core/codec/encoder.d.ts +2 -7
- package/dist/core/codec/field-bag.d.ts +85 -0
- package/dist/core/codec/fields.d.ts +141 -0
- package/dist/core/codec/index.d.ts +8 -1
- package/dist/core/codec/input-descriptor-decoder.d.ts +19 -0
- package/dist/core/codec/input-descriptor-encoder.d.ts +22 -0
- package/dist/core/codec/input-descriptors.d.ts +281 -0
- package/dist/core/codec/output-descriptor-decoder.d.ts +29 -0
- package/dist/core/codec/output-descriptor-encoder.d.ts +31 -0
- package/dist/core/codec/output-descriptors.d.ts +237 -0
- package/dist/core/codec/types.d.ts +95 -36
- package/dist/core/codec/well-known-inputs.d.ts +52 -0
- package/dist/core/transport/agent-view.d.ts +296 -0
- package/dist/core/transport/decode-fold.d.ts +40 -32
- package/dist/core/transport/headers.d.ts +30 -1
- package/dist/core/transport/index.d.ts +1 -1
- package/dist/core/transport/invocation.d.ts +1 -1
- package/dist/core/transport/load-history-pages.d.ts +71 -0
- package/dist/core/transport/load-history.d.ts +21 -16
- package/dist/core/transport/run-manager.d.ts +9 -11
- package/dist/core/transport/session-support.d.ts +55 -0
- package/dist/core/transport/tree.d.ts +165 -15
- package/dist/core/transport/types/agent.d.ts +120 -98
- package/dist/core/transport/types/client.d.ts +45 -12
- package/dist/core/transport/types/tree.d.ts +52 -10
- package/dist/core/transport/types/view.d.ts +55 -28
- package/dist/core/transport/view.d.ts +176 -58
- package/dist/core/transport/wire-log.d.ts +102 -0
- package/dist/errors.d.ts +10 -4
- package/dist/index.d.ts +6 -5
- package/dist/react/ably-ai-transport-react.js +784 -415
- 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/client-session-context.d.ts +2 -1
- package/dist/react/contexts/client-session-provider.d.ts +3 -0
- package/dist/react/index.d.ts +2 -1
- package/dist/react/internal/skipped-session.d.ts +8 -0
- package/dist/react/use-view.d.ts +3 -3
- package/dist/utils.d.ts +22 -54
- package/dist/vercel/ably-ai-transport-vercel.js +2297 -2026
- 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/decode-lifecycle.d.ts +9 -0
- package/dist/vercel/codec/events.d.ts +1 -2
- package/dist/vercel/codec/fields.d.ts +44 -0
- package/dist/vercel/codec/fold-content.d.ts +16 -0
- package/dist/vercel/codec/fold-data.d.ts +16 -0
- package/dist/vercel/codec/fold-input.d.ts +67 -0
- package/dist/vercel/codec/fold-lifecycle.d.ts +16 -0
- package/dist/vercel/codec/fold-text.d.ts +16 -0
- package/dist/vercel/codec/fold-tool-input.d.ts +17 -0
- package/dist/vercel/codec/fold-tool-output.d.ts +16 -0
- package/dist/vercel/codec/index.d.ts +5 -30
- package/dist/vercel/codec/inputs.d.ts +11 -0
- package/dist/vercel/codec/outputs.d.ts +11 -0
- package/dist/vercel/codec/reducer-state.d.ts +121 -0
- package/dist/vercel/codec/reducer.d.ts +20 -102
- package/dist/vercel/codec/tool-transitions.d.ts +0 -6
- package/dist/vercel/codec/wire-data.d.ts +34 -0
- package/dist/vercel/index.d.ts +1 -0
- package/dist/vercel/react/ably-ai-transport-vercel-react.js +2013 -9500
- package/dist/vercel/react/ably-ai-transport-vercel-react.js.map +1 -1
- package/dist/vercel/react/ably-ai-transport-vercel-react.umd.cjs +1 -70
- package/dist/vercel/react/ably-ai-transport-vercel-react.umd.cjs.map +1 -1
- package/dist/vercel/react/contexts/chat-transport-context.d.ts +2 -1
- package/dist/vercel/run-end-reason.d.ts +66 -11
- package/dist/vercel/tool-part.d.ts +21 -0
- package/dist/vercel/transport/chat-transport.d.ts +0 -2
- package/dist/vercel/transport/index.d.ts +1 -1
- package/dist/vercel/transport/run-output-stream.d.ts +6 -8
- package/dist/version.d.ts +1 -1
- package/package.json +2 -2
- package/src/constants.ts +2 -2
- package/src/core/agent.ts +43 -19
- package/src/core/channel-options.ts +89 -0
- package/src/core/codec/codec-event.ts +27 -0
- package/src/core/codec/decoder.ts +145 -21
- package/src/core/codec/define-codec.ts +432 -0
- package/src/core/codec/encoder.ts +13 -54
- package/src/core/codec/field-bag.ts +142 -0
- package/src/core/codec/fields.ts +193 -0
- package/src/core/codec/index.ts +43 -0
- package/src/core/codec/input-descriptor-decoder.ts +97 -0
- package/src/core/codec/input-descriptor-encoder.ts +150 -0
- package/src/core/codec/input-descriptors.ts +373 -0
- package/src/core/codec/output-descriptor-decoder.ts +139 -0
- package/src/core/codec/output-descriptor-encoder.ts +101 -0
- package/src/core/codec/output-descriptors.ts +307 -0
- package/src/core/codec/types.ts +99 -36
- package/src/core/codec/well-known-inputs.ts +96 -0
- package/src/core/transport/agent-session.ts +330 -589
- package/src/core/transport/agent-view.ts +738 -0
- package/src/core/transport/client-session.ts +74 -69
- package/src/core/transport/decode-fold.ts +57 -47
- package/src/core/transport/headers.ts +57 -4
- package/src/core/transport/index.ts +2 -1
- package/src/core/transport/invocation.ts +1 -1
- package/src/core/transport/load-history-pages.ts +220 -0
- package/src/core/transport/load-history.ts +63 -61
- package/src/core/transport/pipe-stream.ts +10 -1
- package/src/core/transport/run-manager.ts +25 -31
- package/src/core/transport/session-support.ts +96 -0
- package/src/core/transport/tree.ts +414 -47
- package/src/core/transport/types/agent.ts +129 -102
- package/src/core/transport/types/client.ts +49 -13
- package/src/core/transport/types/tree.ts +61 -12
- package/src/core/transport/types/view.ts +57 -28
- package/src/core/transport/view.ts +520 -172
- package/src/core/transport/wire-log.ts +189 -0
- package/src/errors.ts +10 -3
- package/src/index.ts +44 -11
- package/src/react/contexts/client-session-context.ts +1 -1
- package/src/react/contexts/client-session-provider.tsx +38 -2
- package/src/react/index.ts +2 -1
- package/src/react/internal/skipped-session.ts +62 -0
- package/src/react/use-client-session.ts +7 -30
- package/src/react/use-view.ts +3 -3
- package/src/utils.ts +31 -97
- package/src/vercel/codec/decode-lifecycle.ts +70 -0
- package/src/vercel/codec/events.ts +1 -3
- package/src/vercel/codec/fields.ts +58 -0
- package/src/vercel/codec/fold-content.ts +54 -0
- package/src/vercel/codec/fold-data.ts +46 -0
- package/src/vercel/codec/fold-input.ts +255 -0
- package/src/vercel/codec/fold-lifecycle.ts +85 -0
- package/src/vercel/codec/fold-text.ts +55 -0
- package/src/vercel/codec/fold-tool-input.ts +86 -0
- package/src/vercel/codec/fold-tool-output.ts +79 -0
- package/src/vercel/codec/index.ts +23 -63
- package/src/vercel/codec/inputs.ts +116 -0
- package/src/vercel/codec/outputs.ts +207 -0
- package/src/vercel/codec/reducer-state.ts +169 -0
- package/src/vercel/codec/reducer.ts +52 -838
- package/src/vercel/codec/tool-transitions.ts +1 -12
- package/src/vercel/codec/wire-data.ts +64 -0
- package/src/vercel/index.ts +1 -0
- package/src/vercel/react/contexts/chat-transport-context.ts +1 -1
- package/src/vercel/react/use-chat-transport.ts +8 -28
- package/src/vercel/react/use-message-sync.ts +5 -10
- package/src/vercel/run-end-reason.ts +95 -16
- package/src/vercel/tool-part.ts +25 -0
- package/src/vercel/transport/chat-transport.ts +10 -22
- package/src/vercel/transport/index.ts +1 -1
- package/src/vercel/transport/run-output-stream.ts +7 -8
- package/src/version.ts +1 -1
- package/dist/core/transport/branch-chain.d.ts +0 -43
- package/dist/core/transport/load-conversation.d.ts +0 -128
- package/dist/vercel/codec/decoder.d.ts +0 -9
- package/dist/vercel/codec/encoder.d.ts +0 -11
- package/src/core/transport/branch-chain.ts +0 -58
- package/src/core/transport/load-conversation.ts +0 -355
- package/src/vercel/codec/decoder.ts +0 -696
- package/src/vercel/codec/encoder.ts +0 -548
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core-provided factories for the well-known input variants.
|
|
3
|
+
*
|
|
4
|
+
* Every codec's `TInput` union is built from the same well-known input shapes
|
|
5
|
+
* ({@link UserMessage}, {@link Regenerate}, {@link ToolResult}, {@link
|
|
6
|
+
* ToolResultError}, {@link ToolApprovalResponse}). The factory bodies that wrap
|
|
7
|
+
* a domain value into one of these variants are fully determined by those
|
|
8
|
+
* shapes, so they live here once rather than being re-implemented per codec.
|
|
9
|
+
* {@link wellKnownInputs} returns them payload-typed to a given `TInput`, ready
|
|
10
|
+
* to spread into a codec definition.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import type {
|
|
14
|
+
CodecInputEvent,
|
|
15
|
+
Regenerate,
|
|
16
|
+
ToolApprovalResponse,
|
|
17
|
+
ToolApprovalResponsePayloadOf,
|
|
18
|
+
ToolResult,
|
|
19
|
+
ToolResultError,
|
|
20
|
+
ToolResultErrorPayloadOf,
|
|
21
|
+
ToolResultPayloadOf,
|
|
22
|
+
UserMessage,
|
|
23
|
+
UserMessageOf,
|
|
24
|
+
} from './types.js';
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* The well-known input factory functions, payload-typed for a codec's `TInput`
|
|
28
|
+
* union. A codec spreads these into its definition rather than re-implementing
|
|
29
|
+
* the variant-wrapping boilerplate. Each factory returns the specific variant
|
|
30
|
+
* it builds — a member of the codec's `TInput` union.
|
|
31
|
+
* @template TInput - The codec's input union.
|
|
32
|
+
*/
|
|
33
|
+
export interface WellKnownInputFactories<TInput extends CodecInputEvent> {
|
|
34
|
+
/**
|
|
35
|
+
* Wrap a domain message as the codec's {@link UserMessage} variant.
|
|
36
|
+
* @param message - The message in the codec's domain representation.
|
|
37
|
+
* @returns The user-message input.
|
|
38
|
+
*/
|
|
39
|
+
createUserMessage(message: UserMessageOf<TInput>): UserMessage<UserMessageOf<TInput>>;
|
|
40
|
+
/**
|
|
41
|
+
* Build a {@link Regenerate} input.
|
|
42
|
+
* @param target - The codec-message-id of the assistant message to regenerate.
|
|
43
|
+
* @param parent - The codec-message-id of the parent user message the new assistant threads under.
|
|
44
|
+
* @returns The regenerate input.
|
|
45
|
+
*/
|
|
46
|
+
createRegenerate(target: string, parent: string): Regenerate;
|
|
47
|
+
/**
|
|
48
|
+
* Build a {@link ToolResult} input addressing an assistant codec-message.
|
|
49
|
+
* @param codecMessageId - The assistant codec-message carrying the tool call.
|
|
50
|
+
* @param payload - The codec's domain payload describing the tool result.
|
|
51
|
+
* @returns The tool-result input.
|
|
52
|
+
*/
|
|
53
|
+
createToolResult(
|
|
54
|
+
codecMessageId: string,
|
|
55
|
+
payload: ToolResultPayloadOf<TInput>,
|
|
56
|
+
): ToolResult<ToolResultPayloadOf<TInput>>;
|
|
57
|
+
/**
|
|
58
|
+
* Build a {@link ToolResultError} input addressing an assistant codec-message.
|
|
59
|
+
* @param codecMessageId - The assistant codec-message carrying the tool call.
|
|
60
|
+
* @param payload - The codec's domain payload describing the failure.
|
|
61
|
+
* @returns The tool-result-error input.
|
|
62
|
+
*/
|
|
63
|
+
createToolResultError(
|
|
64
|
+
codecMessageId: string,
|
|
65
|
+
payload: ToolResultErrorPayloadOf<TInput>,
|
|
66
|
+
): ToolResultError<ToolResultErrorPayloadOf<TInput>>;
|
|
67
|
+
/**
|
|
68
|
+
* Build a {@link ToolApprovalResponse} input addressing an assistant codec-message.
|
|
69
|
+
* @param codecMessageId - The assistant codec-message carrying the tool call.
|
|
70
|
+
* @param payload - The codec's domain payload describing the approval decision.
|
|
71
|
+
* @returns The tool-approval-response input.
|
|
72
|
+
*/
|
|
73
|
+
createToolApprovalResponse(
|
|
74
|
+
codecMessageId: string,
|
|
75
|
+
payload: ToolApprovalResponsePayloadOf<TInput>,
|
|
76
|
+
): ToolApprovalResponse<ToolApprovalResponsePayloadOf<TInput>>;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Build the {@link WellKnownInputFactories} for a codec's `TInput` union. The
|
|
81
|
+
* returned factories wrap domain values into the well-known input variants and
|
|
82
|
+
* are typically spread into a codec definition.
|
|
83
|
+
* @template TInput - The codec's input union.
|
|
84
|
+
* @returns The well-known input factory functions, payload-typed to `TInput`.
|
|
85
|
+
*/
|
|
86
|
+
export const wellKnownInputs = <TInput extends CodecInputEvent>(): WellKnownInputFactories<TInput> => ({
|
|
87
|
+
createUserMessage: (message) => ({ kind: 'user-message', message }),
|
|
88
|
+
createRegenerate: (target, parent) => ({ kind: 'regenerate', target, parent }),
|
|
89
|
+
createToolResult: (codecMessageId, payload) => ({ kind: 'tool-result', codecMessageId, payload }),
|
|
90
|
+
createToolResultError: (codecMessageId, payload) => ({ kind: 'tool-result-error', codecMessageId, payload }),
|
|
91
|
+
createToolApprovalResponse: (codecMessageId, payload) => ({
|
|
92
|
+
kind: 'tool-approval-response',
|
|
93
|
+
codecMessageId,
|
|
94
|
+
payload,
|
|
95
|
+
}),
|
|
96
|
+
});
|