agents 0.3.0 → 0.3.2
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 +12 -326
- package/dist/ai-chat-agent.d.ts +1 -324
- package/dist/ai-chat-agent.js +3 -1147
- package/dist/ai-chat-agent.js.map +1 -1
- package/dist/ai-chat-v5-migration.d.ts +1 -155
- package/dist/ai-chat-v5-migration.js +4 -151
- package/dist/ai-chat-v5-migration.js.map +1 -1
- package/dist/ai-react.d.ts +1 -286
- package/dist/ai-react.js +3 -632
- package/dist/ai-react.js.map +1 -1
- package/dist/ai-types.d.ts +7 -6
- package/dist/ai-types.js +12 -2
- package/dist/ai-types.js.map +1 -0
- package/dist/{client-QZa2Rq0l.js → client-C7SOlYfK.js} +2 -2
- package/dist/{client-QZa2Rq0l.js.map → client-C7SOlYfK.js.map} +1 -1
- package/dist/{client-DjTPRM8-.js → client-CEO0P7vN.js} +2 -2
- package/dist/client-CEO0P7vN.js.map +1 -0
- package/dist/{client-DFotUKH_.d.ts → client-CbcnyqCo.d.ts} +10 -10
- package/dist/client.d.ts +92 -7
- package/dist/client.js +1 -1
- package/dist/codemode/ai.d.ts +1 -27
- package/dist/codemode/ai.js +3 -146
- package/dist/codemode/ai.js.map +1 -1
- package/dist/{do-oauth-client-provider--To1Tsjj.d.ts → do-oauth-client-provider-BH9zFtSy.d.ts} +1 -1
- package/dist/{do-oauth-client-provider-B1fVIshX.js → do-oauth-client-provider-BfPFgQU0.js} +1 -1
- package/dist/{do-oauth-client-provider-B1fVIshX.js.map → do-oauth-client-provider-BfPFgQU0.js.map} +1 -1
- package/dist/{index-DLuxm_9W.d.ts → index-B7Ny-XfU.d.ts} +2 -2
- package/dist/index.d.ts +553 -38
- package/dist/index.js +5 -5
- package/dist/{context-DcbQ8o7k.d.ts → internal_context-neg89p5n.d.ts} +2 -2
- package/dist/{context-BkKbAa1R.js → internal_context-oN047Id3.js} +2 -2
- package/dist/internal_context-oN047Id3.js.map +1 -0
- package/dist/{context.d.ts → internal_context.d.ts} +1 -1
- package/dist/internal_context.js +3 -0
- package/dist/mcp/client.d.ts +1 -1
- package/dist/mcp/client.js +2 -2
- package/dist/mcp/do-oauth-client-provider.d.ts +1 -1
- package/dist/mcp/do-oauth-client-provider.js +1 -1
- package/dist/mcp/index.d.ts +3 -4
- package/dist/mcp/index.js +6 -6
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/x402.d.ts +1 -1
- package/dist/{mcp-CPSfGUgd.d.ts → mcp-AK39tq6H.d.ts} +1 -1
- package/dist/observability/index.d.ts +1 -1
- package/dist/observability/index.js +5 -5
- package/dist/react.d.ts +14 -6
- package/dist/react.js +16 -8
- package/dist/react.js.map +1 -1
- package/dist/serializable.d.ts +33 -6
- package/dist/{src-BZDh910Z.js → src-CXf5SiV4.js} +6 -6
- package/dist/src-CXf5SiV4.js.map +1 -0
- package/dist/types-4b5tlB0u.js +15 -0
- package/dist/types-4b5tlB0u.js.map +1 -0
- package/dist/types-C5vR2Gzv.d.ts +13 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.js +3 -0
- package/package.json +33 -25
- package/dist/ai-types-0OnT3FHg.d.ts +0 -127
- package/dist/ai-types-DEtF_8Km.js +0 -28
- package/dist/ai-types-DEtF_8Km.js.map +0 -1
- package/dist/client-CdM5I962.d.ts +0 -104
- package/dist/client-DjTPRM8-.js.map +0 -1
- package/dist/context-BkKbAa1R.js.map +0 -1
- package/dist/context.js +0 -3
- package/dist/index-CT2tCrLr.d.ts +0 -577
- package/dist/serializable-Crsj26mx.d.ts +0 -39
- package/dist/src-BZDh910Z.js.map +0 -1
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import { UIMessage } from "ai";
|
|
2
|
-
|
|
3
|
-
//#region src/ai-types.d.ts
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Enum for message types to improve type safety and maintainability
|
|
7
|
-
*/
|
|
8
|
-
declare enum MessageType {
|
|
9
|
-
CF_AGENT_CHAT_MESSAGES = "cf_agent_chat_messages",
|
|
10
|
-
CF_AGENT_USE_CHAT_REQUEST = "cf_agent_use_chat_request",
|
|
11
|
-
CF_AGENT_USE_CHAT_RESPONSE = "cf_agent_use_chat_response",
|
|
12
|
-
CF_AGENT_CHAT_CLEAR = "cf_agent_chat_clear",
|
|
13
|
-
CF_AGENT_CHAT_REQUEST_CANCEL = "cf_agent_chat_request_cancel",
|
|
14
|
-
/** Sent by server when client connects and there's an active stream to resume */
|
|
15
|
-
CF_AGENT_STREAM_RESUMING = "cf_agent_stream_resuming",
|
|
16
|
-
/** Sent by client to acknowledge stream resuming notification and request chunks */
|
|
17
|
-
CF_AGENT_STREAM_RESUME_ACK = "cf_agent_stream_resume_ack",
|
|
18
|
-
CF_AGENT_MCP_SERVERS = "cf_agent_mcp_servers",
|
|
19
|
-
CF_MCP_AGENT_EVENT = "cf_mcp_agent_event",
|
|
20
|
-
CF_AGENT_STATE = "cf_agent_state",
|
|
21
|
-
RPC = "rpc",
|
|
22
|
-
/** Client sends tool result to server (for client-side tools) */
|
|
23
|
-
CF_AGENT_TOOL_RESULT = "cf_agent_tool_result",
|
|
24
|
-
/** Server notifies client that a message was updated (e.g., tool result applied) */
|
|
25
|
-
CF_AGENT_MESSAGE_UPDATED = "cf_agent_message_updated"
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Types of messages sent from the Agent to clients
|
|
29
|
-
*/
|
|
30
|
-
type OutgoingMessage<ChatMessage extends UIMessage = UIMessage> =
|
|
31
|
-
| {
|
|
32
|
-
/** Indicates this message is a command to clear chat history */
|
|
33
|
-
type: MessageType.CF_AGENT_CHAT_CLEAR;
|
|
34
|
-
}
|
|
35
|
-
| {
|
|
36
|
-
/** Indicates this message contains updated chat messages */
|
|
37
|
-
type: MessageType.CF_AGENT_CHAT_MESSAGES;
|
|
38
|
-
/** Array of chat messages */
|
|
39
|
-
messages: ChatMessage[];
|
|
40
|
-
}
|
|
41
|
-
| {
|
|
42
|
-
/** Indicates this message is a response to a chat request */
|
|
43
|
-
type: MessageType.CF_AGENT_USE_CHAT_RESPONSE;
|
|
44
|
-
/** Unique ID of the request this response corresponds to */
|
|
45
|
-
id: string;
|
|
46
|
-
/** Content body of the response */
|
|
47
|
-
body: string;
|
|
48
|
-
/** Whether this is the final chunk of the response */
|
|
49
|
-
done: boolean;
|
|
50
|
-
/** Whether this response contains an error */
|
|
51
|
-
error?: boolean;
|
|
52
|
-
/** Whether this is a continuation (append to last assistant message) */
|
|
53
|
-
continuation?: boolean;
|
|
54
|
-
}
|
|
55
|
-
| {
|
|
56
|
-
/** Indicates the server is resuming an active stream */
|
|
57
|
-
type: MessageType.CF_AGENT_STREAM_RESUMING;
|
|
58
|
-
/** The request ID of the stream being resumed */
|
|
59
|
-
id: string;
|
|
60
|
-
}
|
|
61
|
-
| {
|
|
62
|
-
/** Server notifies client that a message was updated (e.g., tool result applied) */
|
|
63
|
-
type: MessageType.CF_AGENT_MESSAGE_UPDATED;
|
|
64
|
-
/** The updated message */
|
|
65
|
-
message: ChatMessage;
|
|
66
|
-
};
|
|
67
|
-
/**
|
|
68
|
-
* Types of messages sent from clients to the Agent
|
|
69
|
-
*/
|
|
70
|
-
type IncomingMessage<ChatMessage extends UIMessage = UIMessage> =
|
|
71
|
-
| {
|
|
72
|
-
/** Indicates this message is a command to clear chat history */
|
|
73
|
-
type: MessageType.CF_AGENT_CHAT_CLEAR;
|
|
74
|
-
}
|
|
75
|
-
| {
|
|
76
|
-
/** Indicates this message is a request to the chat API */
|
|
77
|
-
type: MessageType.CF_AGENT_USE_CHAT_REQUEST;
|
|
78
|
-
/** Unique ID for this request */
|
|
79
|
-
id: string;
|
|
80
|
-
/** Request initialization options */
|
|
81
|
-
init: Pick<
|
|
82
|
-
RequestInit,
|
|
83
|
-
| "method"
|
|
84
|
-
| "keepalive"
|
|
85
|
-
| "headers"
|
|
86
|
-
| "body"
|
|
87
|
-
| "redirect"
|
|
88
|
-
| "integrity"
|
|
89
|
-
| "credentials"
|
|
90
|
-
| "mode"
|
|
91
|
-
| "referrer"
|
|
92
|
-
| "referrerPolicy"
|
|
93
|
-
| "window"
|
|
94
|
-
>;
|
|
95
|
-
}
|
|
96
|
-
| {
|
|
97
|
-
/** Indicates this message contains updated chat messages */
|
|
98
|
-
type: MessageType.CF_AGENT_CHAT_MESSAGES;
|
|
99
|
-
/** Array of chat messages */
|
|
100
|
-
messages: ChatMessage[];
|
|
101
|
-
}
|
|
102
|
-
| {
|
|
103
|
-
/** Indicates the user wants to stop generation of this message */
|
|
104
|
-
type: MessageType.CF_AGENT_CHAT_REQUEST_CANCEL;
|
|
105
|
-
id: string;
|
|
106
|
-
}
|
|
107
|
-
| {
|
|
108
|
-
/** Client acknowledges stream resuming notification and is ready to receive chunks */
|
|
109
|
-
type: MessageType.CF_AGENT_STREAM_RESUME_ACK;
|
|
110
|
-
/** The request ID of the stream being resumed */
|
|
111
|
-
id: string;
|
|
112
|
-
}
|
|
113
|
-
| {
|
|
114
|
-
/** Client sends tool result to server (for client-side tools) */
|
|
115
|
-
type: MessageType.CF_AGENT_TOOL_RESULT;
|
|
116
|
-
/** The tool call ID this result is for */
|
|
117
|
-
toolCallId: string;
|
|
118
|
-
/** The name of the tool */
|
|
119
|
-
toolName: string;
|
|
120
|
-
/** The output from the tool execution */
|
|
121
|
-
output: unknown;
|
|
122
|
-
/** Whether server should auto-continue the conversation after applying result */
|
|
123
|
-
autoContinue?: boolean;
|
|
124
|
-
};
|
|
125
|
-
//#endregion
|
|
126
|
-
export { MessageType as n, OutgoingMessage as r, IncomingMessage as t };
|
|
127
|
-
//# sourceMappingURL=ai-types-0OnT3FHg.d.ts.map
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
//#region src/ai-types.ts
|
|
2
|
-
/**
|
|
3
|
-
* Enum for message types to improve type safety and maintainability
|
|
4
|
-
*/
|
|
5
|
-
let MessageType = /* @__PURE__ */ function(MessageType$1) {
|
|
6
|
-
MessageType$1["CF_AGENT_CHAT_MESSAGES"] = "cf_agent_chat_messages";
|
|
7
|
-
MessageType$1["CF_AGENT_USE_CHAT_REQUEST"] = "cf_agent_use_chat_request";
|
|
8
|
-
MessageType$1["CF_AGENT_USE_CHAT_RESPONSE"] = "cf_agent_use_chat_response";
|
|
9
|
-
MessageType$1["CF_AGENT_CHAT_CLEAR"] = "cf_agent_chat_clear";
|
|
10
|
-
MessageType$1["CF_AGENT_CHAT_REQUEST_CANCEL"] = "cf_agent_chat_request_cancel";
|
|
11
|
-
/** Sent by server when client connects and there's an active stream to resume */
|
|
12
|
-
MessageType$1["CF_AGENT_STREAM_RESUMING"] = "cf_agent_stream_resuming";
|
|
13
|
-
/** Sent by client to acknowledge stream resuming notification and request chunks */
|
|
14
|
-
MessageType$1["CF_AGENT_STREAM_RESUME_ACK"] = "cf_agent_stream_resume_ack";
|
|
15
|
-
MessageType$1["CF_AGENT_MCP_SERVERS"] = "cf_agent_mcp_servers";
|
|
16
|
-
MessageType$1["CF_MCP_AGENT_EVENT"] = "cf_mcp_agent_event";
|
|
17
|
-
MessageType$1["CF_AGENT_STATE"] = "cf_agent_state";
|
|
18
|
-
MessageType$1["RPC"] = "rpc";
|
|
19
|
-
/** Client sends tool result to server (for client-side tools) */
|
|
20
|
-
MessageType$1["CF_AGENT_TOOL_RESULT"] = "cf_agent_tool_result";
|
|
21
|
-
/** Server notifies client that a message was updated (e.g., tool result applied) */
|
|
22
|
-
MessageType$1["CF_AGENT_MESSAGE_UPDATED"] = "cf_agent_message_updated";
|
|
23
|
-
return MessageType$1;
|
|
24
|
-
}({});
|
|
25
|
-
|
|
26
|
-
//#endregion
|
|
27
|
-
export { MessageType as t };
|
|
28
|
-
//# sourceMappingURL=ai-types-DEtF_8Km.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ai-types-DEtF_8Km.js","names":[],"sources":["../src/ai-types.ts"],"sourcesContent":["import type { UIMessage } from \"ai\";\n\n/**\n * Enum for message types to improve type safety and maintainability\n */\nexport enum MessageType {\n CF_AGENT_CHAT_MESSAGES = \"cf_agent_chat_messages\",\n CF_AGENT_USE_CHAT_REQUEST = \"cf_agent_use_chat_request\",\n CF_AGENT_USE_CHAT_RESPONSE = \"cf_agent_use_chat_response\",\n CF_AGENT_CHAT_CLEAR = \"cf_agent_chat_clear\",\n CF_AGENT_CHAT_REQUEST_CANCEL = \"cf_agent_chat_request_cancel\",\n\n /** Sent by server when client connects and there's an active stream to resume */\n CF_AGENT_STREAM_RESUMING = \"cf_agent_stream_resuming\",\n /** Sent by client to acknowledge stream resuming notification and request chunks */\n CF_AGENT_STREAM_RESUME_ACK = \"cf_agent_stream_resume_ack\",\n\n CF_AGENT_MCP_SERVERS = \"cf_agent_mcp_servers\",\n CF_MCP_AGENT_EVENT = \"cf_mcp_agent_event\",\n CF_AGENT_STATE = \"cf_agent_state\",\n RPC = \"rpc\",\n\n /** Client sends tool result to server (for client-side tools) */\n CF_AGENT_TOOL_RESULT = \"cf_agent_tool_result\",\n /** Server notifies client that a message was updated (e.g., tool result applied) */\n CF_AGENT_MESSAGE_UPDATED = \"cf_agent_message_updated\"\n}\n\n/**\n * Types of messages sent from the Agent to clients\n */\nexport type OutgoingMessage<ChatMessage extends UIMessage = UIMessage> =\n | {\n /** Indicates this message is a command to clear chat history */\n type: MessageType.CF_AGENT_CHAT_CLEAR;\n }\n | {\n /** Indicates this message contains updated chat messages */\n type: MessageType.CF_AGENT_CHAT_MESSAGES;\n /** Array of chat messages */\n messages: ChatMessage[];\n }\n | {\n /** Indicates this message is a response to a chat request */\n type: MessageType.CF_AGENT_USE_CHAT_RESPONSE;\n /** Unique ID of the request this response corresponds to */\n id: string;\n /** Content body of the response */\n body: string;\n /** Whether this is the final chunk of the response */\n done: boolean;\n /** Whether this response contains an error */\n error?: boolean;\n /** Whether this is a continuation (append to last assistant message) */\n continuation?: boolean;\n }\n | {\n /** Indicates the server is resuming an active stream */\n type: MessageType.CF_AGENT_STREAM_RESUMING;\n /** The request ID of the stream being resumed */\n id: string;\n }\n | {\n /** Server notifies client that a message was updated (e.g., tool result applied) */\n type: MessageType.CF_AGENT_MESSAGE_UPDATED;\n /** The updated message */\n message: ChatMessage;\n };\n\n/**\n * Types of messages sent from clients to the Agent\n */\nexport type IncomingMessage<ChatMessage extends UIMessage = UIMessage> =\n | {\n /** Indicates this message is a command to clear chat history */\n type: MessageType.CF_AGENT_CHAT_CLEAR;\n }\n | {\n /** Indicates this message is a request to the chat API */\n type: MessageType.CF_AGENT_USE_CHAT_REQUEST;\n /** Unique ID for this request */\n id: string;\n /** Request initialization options */\n init: Pick<\n RequestInit,\n | \"method\"\n | \"keepalive\"\n | \"headers\"\n | \"body\"\n | \"redirect\"\n | \"integrity\"\n | \"credentials\"\n | \"mode\"\n | \"referrer\"\n | \"referrerPolicy\"\n | \"window\"\n >;\n }\n | {\n /** Indicates this message contains updated chat messages */\n type: MessageType.CF_AGENT_CHAT_MESSAGES;\n /** Array of chat messages */\n messages: ChatMessage[];\n }\n | {\n /** Indicates the user wants to stop generation of this message */\n type: MessageType.CF_AGENT_CHAT_REQUEST_CANCEL;\n id: string;\n }\n | {\n /** Client acknowledges stream resuming notification and is ready to receive chunks */\n type: MessageType.CF_AGENT_STREAM_RESUME_ACK;\n /** The request ID of the stream being resumed */\n id: string;\n }\n | {\n /** Client sends tool result to server (for client-side tools) */\n type: MessageType.CF_AGENT_TOOL_RESULT;\n /** The tool call ID this result is for */\n toolCallId: string;\n /** The name of the tool */\n toolName: string;\n /** The output from the tool execution */\n output: unknown;\n /** Whether server should auto-continue the conversation after applying result */\n autoContinue?: boolean;\n };\n"],"mappings":";;;;AAKA,IAAY,sDAAL;AACL;AACA;AACA;AACA;AACA;;AAGA;;AAEA;AAEA;AACA;AACA;AACA;;AAGA;;AAEA"}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
i as SerializableValue,
|
|
3
|
-
r as SerializableReturnValue
|
|
4
|
-
} from "./serializable-Crsj26mx.js";
|
|
5
|
-
import {
|
|
6
|
-
PartyFetchOptions,
|
|
7
|
-
PartySocket,
|
|
8
|
-
PartySocketOptions
|
|
9
|
-
} from "partysocket";
|
|
10
|
-
|
|
11
|
-
//#region src/client.d.ts
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Options for creating an AgentClient
|
|
15
|
-
*/
|
|
16
|
-
type AgentClientOptions<State = unknown> = Omit<
|
|
17
|
-
PartySocketOptions,
|
|
18
|
-
"party" | "room"
|
|
19
|
-
> & {
|
|
20
|
-
/** Name of the agent to connect to */
|
|
21
|
-
agent: string;
|
|
22
|
-
/** Name of the specific Agent instance */
|
|
23
|
-
name?: string;
|
|
24
|
-
/** Called when the Agent's state is updated */
|
|
25
|
-
onStateUpdate?: (state: State, source: "server" | "client") => void;
|
|
26
|
-
};
|
|
27
|
-
/**
|
|
28
|
-
* Options for streaming RPC calls
|
|
29
|
-
*/
|
|
30
|
-
type StreamOptions = {
|
|
31
|
-
/** Called when a chunk of data is received */
|
|
32
|
-
onChunk?: (chunk: unknown) => void;
|
|
33
|
-
/** Called when the stream ends */
|
|
34
|
-
onDone?: (finalChunk: unknown) => void;
|
|
35
|
-
/** Called when an error occurs */
|
|
36
|
-
onError?: (error: string) => void;
|
|
37
|
-
};
|
|
38
|
-
/**
|
|
39
|
-
* Options for the agentFetch function
|
|
40
|
-
*/
|
|
41
|
-
type AgentClientFetchOptions = Omit<PartyFetchOptions, "party" | "room"> & {
|
|
42
|
-
/** Name of the agent to connect to */
|
|
43
|
-
agent: string;
|
|
44
|
-
/** Name of the specific Agent instance */
|
|
45
|
-
name?: string;
|
|
46
|
-
};
|
|
47
|
-
/**
|
|
48
|
-
* Convert a camelCase string to a kebab-case string
|
|
49
|
-
* @param str The string to convert
|
|
50
|
-
* @returns The kebab-case string
|
|
51
|
-
*/
|
|
52
|
-
declare function camelCaseToKebabCase(str: string): string;
|
|
53
|
-
/**
|
|
54
|
-
* WebSocket client for connecting to an Agent
|
|
55
|
-
*/
|
|
56
|
-
declare class AgentClient<State = unknown> extends PartySocket {
|
|
57
|
-
/**
|
|
58
|
-
* @deprecated Use agentFetch instead
|
|
59
|
-
*/
|
|
60
|
-
static fetch(_opts: PartyFetchOptions): Promise<Response>;
|
|
61
|
-
agent: string;
|
|
62
|
-
name: string;
|
|
63
|
-
private options;
|
|
64
|
-
private _pendingCalls;
|
|
65
|
-
constructor(options: AgentClientOptions<State>);
|
|
66
|
-
setState(state: State): void;
|
|
67
|
-
/**
|
|
68
|
-
* Call a method on the Agent
|
|
69
|
-
* @param method Name of the method to call
|
|
70
|
-
* @param args Arguments to pass to the method
|
|
71
|
-
* @param streamOptions Options for handling streaming responses
|
|
72
|
-
* @returns Promise that resolves with the method's return value
|
|
73
|
-
*/
|
|
74
|
-
call<T extends SerializableReturnValue>(
|
|
75
|
-
method: string,
|
|
76
|
-
args?: SerializableValue[],
|
|
77
|
-
streamOptions?: StreamOptions
|
|
78
|
-
): Promise<T>;
|
|
79
|
-
call<T = unknown>(
|
|
80
|
-
method: string,
|
|
81
|
-
args?: unknown[],
|
|
82
|
-
streamOptions?: StreamOptions
|
|
83
|
-
): Promise<T>;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Make an HTTP request to an Agent
|
|
87
|
-
* @param opts Connection options
|
|
88
|
-
* @param init Request initialization options
|
|
89
|
-
* @returns Promise resolving to a Response
|
|
90
|
-
*/
|
|
91
|
-
declare function agentFetch(
|
|
92
|
-
opts: AgentClientFetchOptions,
|
|
93
|
-
init?: RequestInit
|
|
94
|
-
): Promise<Response>;
|
|
95
|
-
//#endregion
|
|
96
|
-
export {
|
|
97
|
-
agentFetch as a,
|
|
98
|
-
StreamOptions as i,
|
|
99
|
-
AgentClientFetchOptions as n,
|
|
100
|
-
camelCaseToKebabCase as o,
|
|
101
|
-
AgentClientOptions as r,
|
|
102
|
-
AgentClient as t
|
|
103
|
-
};
|
|
104
|
-
//# sourceMappingURL=client-CdM5I962.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client-DjTPRM8-.js","names":["parsedMessage: Record<string, unknown>","request: RPCRequest"],"sources":["../src/client.ts"],"sourcesContent":["import {\n type PartyFetchOptions,\n PartySocket,\n type PartySocketOptions\n} from \"partysocket\";\nimport type { RPCRequest, RPCResponse } from \"./\";\nimport type {\n SerializableReturnValue,\n SerializableValue\n} from \"./serializable\";\nimport { MessageType } from \"./ai-types\";\n\n/**\n * Options for creating an AgentClient\n */\nexport type AgentClientOptions<State = unknown> = Omit<\n PartySocketOptions,\n \"party\" | \"room\"\n> & {\n /** Name of the agent to connect to */\n agent: string;\n /** Name of the specific Agent instance */\n name?: string;\n /** Called when the Agent's state is updated */\n onStateUpdate?: (state: State, source: \"server\" | \"client\") => void;\n};\n\n/**\n * Options for streaming RPC calls\n */\nexport type StreamOptions = {\n /** Called when a chunk of data is received */\n onChunk?: (chunk: unknown) => void;\n /** Called when the stream ends */\n onDone?: (finalChunk: unknown) => void;\n /** Called when an error occurs */\n onError?: (error: string) => void;\n};\n\n/**\n * Options for the agentFetch function\n */\nexport type AgentClientFetchOptions = Omit<\n PartyFetchOptions,\n \"party\" | \"room\"\n> & {\n /** Name of the agent to connect to */\n agent: string;\n /** Name of the specific Agent instance */\n name?: string;\n};\n\n/**\n * Convert a camelCase string to a kebab-case string\n * @param str The string to convert\n * @returns The kebab-case string\n */\nexport function camelCaseToKebabCase(str: string): string {\n // If string is all uppercase, convert to lowercase\n if (str === str.toUpperCase() && str !== str.toLowerCase()) {\n return str.toLowerCase().replace(/_/g, \"-\");\n }\n\n // Otherwise handle camelCase to kebab-case\n let kebabified = str.replace(\n /[A-Z]/g,\n (letter) => `-${letter.toLowerCase()}`\n );\n kebabified = kebabified.startsWith(\"-\") ? kebabified.slice(1) : kebabified;\n // Convert any remaining underscores to hyphens and remove trailing -'s\n return kebabified.replace(/_/g, \"-\").replace(/-$/, \"\");\n}\n\n/**\n * WebSocket client for connecting to an Agent\n */\nexport class AgentClient<State = unknown> extends PartySocket {\n /**\n * @deprecated Use agentFetch instead\n */\n static fetch(_opts: PartyFetchOptions): Promise<Response> {\n throw new Error(\n \"AgentClient.fetch is not implemented, use agentFetch instead\"\n );\n }\n agent: string;\n name: string;\n private options: AgentClientOptions<State>;\n private _pendingCalls = new Map<\n string,\n {\n resolve: (value: unknown) => void;\n reject: (error: Error) => void;\n stream?: StreamOptions;\n type?: unknown;\n }\n >();\n\n constructor(options: AgentClientOptions<State>) {\n const agentNamespace = camelCaseToKebabCase(options.agent);\n super({\n party: agentNamespace,\n prefix: \"agents\",\n room: options.name || \"default\",\n ...options\n });\n this.agent = agentNamespace;\n this.name = options.name || \"default\";\n this.options = options;\n\n this.addEventListener(\"message\", (event) => {\n if (typeof event.data === \"string\") {\n let parsedMessage: Record<string, unknown>;\n try {\n parsedMessage = JSON.parse(event.data);\n } catch (_error) {\n // silently ignore invalid messages for now\n // TODO: log errors with log levels\n return;\n }\n if (parsedMessage.type === MessageType.CF_AGENT_STATE) {\n this.options.onStateUpdate?.(parsedMessage.state as State, \"server\");\n return;\n }\n if (parsedMessage.type === MessageType.RPC) {\n const response = parsedMessage as RPCResponse;\n const pending = this._pendingCalls.get(response.id);\n if (!pending) return;\n\n if (!response.success) {\n pending.reject(new Error(response.error));\n this._pendingCalls.delete(response.id);\n pending.stream?.onError?.(response.error);\n return;\n }\n\n // Handle streaming responses\n if (\"done\" in response) {\n if (response.done) {\n pending.resolve(response.result);\n this._pendingCalls.delete(response.id);\n pending.stream?.onDone?.(response.result);\n } else {\n pending.stream?.onChunk?.(response.result);\n }\n } else {\n // Non-streaming response\n pending.resolve(response.result);\n this._pendingCalls.delete(response.id);\n }\n }\n }\n });\n }\n\n setState(state: State) {\n this.send(JSON.stringify({ state, type: MessageType.CF_AGENT_STATE }));\n this.options.onStateUpdate?.(state, \"client\");\n }\n\n /**\n * Call a method on the Agent\n * @param method Name of the method to call\n * @param args Arguments to pass to the method\n * @param streamOptions Options for handling streaming responses\n * @returns Promise that resolves with the method's return value\n */\n call<T extends SerializableReturnValue>(\n method: string,\n args?: SerializableValue[],\n streamOptions?: StreamOptions\n ): Promise<T>;\n call<T = unknown>(\n method: string,\n args?: unknown[],\n streamOptions?: StreamOptions\n ): Promise<T>;\n async call<T>(\n method: string,\n args: unknown[] = [],\n streamOptions?: StreamOptions\n ): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n const id = Math.random().toString(36).slice(2);\n this._pendingCalls.set(id, {\n reject,\n resolve: (value: unknown) => resolve(value as T),\n stream: streamOptions,\n type: null as T\n });\n\n const request: RPCRequest = {\n args,\n id,\n method,\n type: MessageType.RPC\n };\n\n this.send(JSON.stringify(request));\n });\n }\n}\n\n/**\n * Make an HTTP request to an Agent\n * @param opts Connection options\n * @param init Request initialization options\n * @returns Promise resolving to a Response\n */\nexport function agentFetch(opts: AgentClientFetchOptions, init?: RequestInit) {\n const agentNamespace = camelCaseToKebabCase(opts.agent);\n\n return PartySocket.fetch(\n {\n party: agentNamespace,\n prefix: \"agents\",\n room: opts.name || \"default\",\n ...opts\n },\n init\n );\n}\n"],"mappings":";;;;;;;;;AAyDA,SAAgB,qBAAqB,KAAqB;AAExD,KAAI,QAAQ,IAAI,aAAa,IAAI,QAAQ,IAAI,aAAa,CACxD,QAAO,IAAI,aAAa,CAAC,QAAQ,MAAM,IAAI;CAI7C,IAAI,aAAa,IAAI,QACnB,WACC,WAAW,IAAI,OAAO,aAAa,GACrC;AACD,cAAa,WAAW,WAAW,IAAI,GAAG,WAAW,MAAM,EAAE,GAAG;AAEhE,QAAO,WAAW,QAAQ,MAAM,IAAI,CAAC,QAAQ,MAAM,GAAG;;;;;AAMxD,IAAa,cAAb,cAAkD,YAAY;;;;CAI5D,OAAO,MAAM,OAA6C;AACxD,QAAM,IAAI,MACR,+DACD;;CAeH,YAAY,SAAoC;EAC9C,MAAM,iBAAiB,qBAAqB,QAAQ,MAAM;AAC1D,QAAM;GACJ,OAAO;GACP,QAAQ;GACR,MAAM,QAAQ,QAAQ;GACtB,GAAG;GACJ,CAAC;uCAjBoB,IAAI,KAQzB;AAUD,OAAK,QAAQ;AACb,OAAK,OAAO,QAAQ,QAAQ;AAC5B,OAAK,UAAU;AAEf,OAAK,iBAAiB,YAAY,UAAU;AAC1C,OAAI,OAAO,MAAM,SAAS,UAAU;IAClC,IAAIA;AACJ,QAAI;AACF,qBAAgB,KAAK,MAAM,MAAM,KAAK;aAC/B,QAAQ;AAGf;;AAEF,QAAI,cAAc,SAAS,YAAY,gBAAgB;AACrD,UAAK,QAAQ,gBAAgB,cAAc,OAAgB,SAAS;AACpE;;AAEF,QAAI,cAAc,SAAS,YAAY,KAAK;KAC1C,MAAM,WAAW;KACjB,MAAM,UAAU,KAAK,cAAc,IAAI,SAAS,GAAG;AACnD,SAAI,CAAC,QAAS;AAEd,SAAI,CAAC,SAAS,SAAS;AACrB,cAAQ,OAAO,IAAI,MAAM,SAAS,MAAM,CAAC;AACzC,WAAK,cAAc,OAAO,SAAS,GAAG;AACtC,cAAQ,QAAQ,UAAU,SAAS,MAAM;AACzC;;AAIF,SAAI,UAAU,SACZ,KAAI,SAAS,MAAM;AACjB,cAAQ,QAAQ,SAAS,OAAO;AAChC,WAAK,cAAc,OAAO,SAAS,GAAG;AACtC,cAAQ,QAAQ,SAAS,SAAS,OAAO;WAEzC,SAAQ,QAAQ,UAAU,SAAS,OAAO;UAEvC;AAEL,cAAQ,QAAQ,SAAS,OAAO;AAChC,WAAK,cAAc,OAAO,SAAS,GAAG;;;;IAI5C;;CAGJ,SAAS,OAAc;AACrB,OAAK,KAAK,KAAK,UAAU;GAAE;GAAO,MAAM,YAAY;GAAgB,CAAC,CAAC;AACtE,OAAK,QAAQ,gBAAgB,OAAO,SAAS;;CAoB/C,MAAM,KACJ,QACA,OAAkB,EAAE,EACpB,eACY;AACZ,SAAO,IAAI,SAAY,SAAS,WAAW;GACzC,MAAM,KAAK,KAAK,QAAQ,CAAC,SAAS,GAAG,CAAC,MAAM,EAAE;AAC9C,QAAK,cAAc,IAAI,IAAI;IACzB;IACA,UAAU,UAAmB,QAAQ,MAAW;IAChD,QAAQ;IACR,MAAM;IACP,CAAC;GAEF,MAAMC,UAAsB;IAC1B;IACA;IACA;IACA,MAAM,YAAY;IACnB;AAED,QAAK,KAAK,KAAK,UAAU,QAAQ,CAAC;IAClC;;;;;;;;;AAUN,SAAgB,WAAW,MAA+B,MAAoB;CAC5E,MAAM,iBAAiB,qBAAqB,KAAK,MAAM;AAEvD,QAAO,YAAY,MACjB;EACE,OAAO;EACP,QAAQ;EACR,MAAM,KAAK,QAAQ;EACnB,GAAG;EACJ,EACD,KACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context-BkKbAa1R.js","names":[],"sources":["../src/context.ts"],"sourcesContent":["import { AsyncLocalStorage } from \"node:async_hooks\";\nimport type { Connection } from \"partyserver\";\n\nexport type AgentEmail = {\n from: string;\n to: string;\n getRaw: () => Promise<Uint8Array>;\n headers: Headers;\n rawSize: number;\n setReject: (reason: string) => void;\n forward: (rcptTo: string, headers?: Headers) => Promise<void>;\n reply: (options: { from: string; to: string; raw: string }) => Promise<void>;\n};\n\nexport type AgentContextStore = {\n // Using unknown to avoid circular dependency with Agent\n agent: unknown;\n connection: Connection | undefined;\n request: Request | undefined;\n email: AgentEmail | undefined;\n};\n\nexport const agentContext = new AsyncLocalStorage<AgentContextStore>();\n"],"mappings":";;;AAsBA,MAAa,eAAe,IAAI,mBAAsC"}
|
package/dist/context.js
DELETED