10xgraph-client 0.6.0 → 1.0.0-rc.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/CHANGELOG.md +207 -0
- package/README.md +11 -5
- package/dist/agent.d.ts +17 -5
- package/dist/agent.d.ts.map +1 -1
- package/dist/cjs/agent.d.ts +33 -0
- package/dist/cjs/client.d.ts +533 -0
- package/dist/cjs/compat.d.ts +27 -0
- package/dist/cjs/endpoints/addThreadMessages.d.ts +25 -0
- package/dist/cjs/endpoints/clearThreadState.d.ts +14 -0
- package/dist/cjs/endpoints/deleteFile.d.ts +13 -0
- package/dist/cjs/endpoints/deleteMemory.d.ts +18 -0
- package/dist/cjs/endpoints/deleteThread.d.ts +18 -0
- package/dist/cjs/endpoints/deleteThreadMessage.d.ts +19 -0
- package/dist/cjs/endpoints/files.d.ts +115 -0
- package/dist/cjs/endpoints/fixGraph.d.ts +33 -0
- package/dist/cjs/endpoints/forgetMemories.d.ts +21 -0
- package/dist/cjs/endpoints/getMemory.d.ts +18 -0
- package/dist/cjs/endpoints/graph.d.ts +50 -0
- package/dist/cjs/endpoints/graphTools.d.ts +31 -0
- package/dist/cjs/endpoints/invoke.d.ts +66 -0
- package/dist/cjs/endpoints/listMemories.d.ts +24 -0
- package/dist/cjs/endpoints/metadata.d.ts +5 -0
- package/dist/cjs/endpoints/observability.d.ts +111 -0
- package/dist/cjs/endpoints/ping.d.ts +9 -0
- package/dist/cjs/endpoints/realtime.d.ts +154 -0
- package/dist/cjs/endpoints/searchMemory.d.ts +56 -0
- package/dist/cjs/endpoints/stateSchema.d.ts +49 -0
- package/dist/cjs/endpoints/stopGraph.d.ts +35 -0
- package/dist/cjs/endpoints/storeMemory.d.ts +32 -0
- package/dist/cjs/endpoints/stream.d.ts +67 -0
- package/dist/cjs/endpoints/threadDetails.d.ts +18 -0
- package/dist/cjs/endpoints/threadMessage.d.ts +16 -0
- package/dist/cjs/endpoints/threadMessages.d.ts +28 -0
- package/dist/cjs/endpoints/threadState.d.ts +13 -0
- package/dist/cjs/endpoints/threads.d.ts +35 -0
- package/dist/cjs/endpoints/updateMemory.d.ts +20 -0
- package/dist/cjs/endpoints/updateThreadMessageFeedback.d.ts +19 -0
- package/dist/cjs/endpoints/updateThreadState.d.ts +22 -0
- package/dist/cjs/endpoints/wsStream.d.ts +34 -0
- package/dist/cjs/errors.d.ts +212 -0
- package/dist/cjs/index.d.ts +41 -0
- package/dist/cjs/interrupt.d.ts +45 -0
- package/dist/cjs/message.d.ts +173 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/request.d.ts +60 -0
- package/dist/cjs/tools.d.ts +80 -0
- package/dist/cjs/ws.d.ts +47 -0
- package/dist/client.d.ts +95 -40
- package/dist/client.d.ts.map +1 -1
- package/dist/endpoints/addThreadMessages.d.ts +4 -0
- package/dist/endpoints/addThreadMessages.d.ts.map +1 -1
- package/dist/endpoints/clearThreadState.d.ts.map +1 -1
- package/dist/endpoints/deleteFile.d.ts +14 -0
- package/dist/endpoints/deleteFile.d.ts.map +1 -0
- package/dist/endpoints/deleteMemory.d.ts.map +1 -1
- package/dist/endpoints/deleteThread.d.ts.map +1 -1
- package/dist/endpoints/deleteThreadMessage.d.ts.map +1 -1
- package/dist/endpoints/files.d.ts +33 -0
- package/dist/endpoints/files.d.ts.map +1 -1
- package/dist/endpoints/fixGraph.d.ts +8 -3
- package/dist/endpoints/fixGraph.d.ts.map +1 -1
- package/dist/endpoints/forgetMemories.d.ts.map +1 -1
- package/dist/endpoints/getMemory.d.ts.map +1 -1
- package/dist/endpoints/graph.d.ts +20 -8
- package/dist/endpoints/graph.d.ts.map +1 -1
- package/dist/endpoints/graphTools.d.ts.map +1 -1
- package/dist/endpoints/invoke.d.ts +8 -0
- package/dist/endpoints/invoke.d.ts.map +1 -1
- package/dist/endpoints/listMemories.d.ts +6 -0
- package/dist/endpoints/listMemories.d.ts.map +1 -1
- package/dist/endpoints/observability.d.ts +54 -0
- package/dist/endpoints/observability.d.ts.map +1 -1
- package/dist/endpoints/ping.d.ts.map +1 -1
- package/dist/endpoints/realtime.d.ts +25 -4
- package/dist/endpoints/realtime.d.ts.map +1 -1
- package/dist/endpoints/searchMemory.d.ts.map +1 -1
- package/dist/endpoints/stateSchema.d.ts.map +1 -1
- package/dist/endpoints/stopGraph.d.ts +13 -3
- package/dist/endpoints/stopGraph.d.ts.map +1 -1
- package/dist/endpoints/storeMemory.d.ts.map +1 -1
- package/dist/endpoints/stream.d.ts +8 -0
- package/dist/endpoints/stream.d.ts.map +1 -1
- package/dist/endpoints/threadDetails.d.ts.map +1 -1
- package/dist/endpoints/threadMessage.d.ts.map +1 -1
- package/dist/endpoints/threadMessages.d.ts +6 -0
- package/dist/endpoints/threadMessages.d.ts.map +1 -1
- package/dist/endpoints/threadState.d.ts.map +1 -1
- package/dist/endpoints/threads.d.ts +6 -0
- package/dist/endpoints/threads.d.ts.map +1 -1
- package/dist/endpoints/updateMemory.d.ts.map +1 -1
- package/dist/endpoints/updateThreadMessageFeedback.d.ts +20 -0
- package/dist/endpoints/updateThreadMessageFeedback.d.ts.map +1 -0
- package/dist/endpoints/updateThreadState.d.ts +6 -1
- package/dist/endpoints/updateThreadState.d.ts.map +1 -1
- package/dist/endpoints/wsStream.d.ts +2 -0
- package/dist/endpoints/wsStream.d.ts.map +1 -1
- package/dist/errors.d.ts +60 -2
- package/dist/errors.d.ts.map +1 -1
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1742 -1217
- package/dist/index.js.map +1 -1
- package/dist/interrupt.d.ts +46 -0
- package/dist/interrupt.d.ts.map +1 -0
- package/dist/request.d.ts +28 -0
- package/dist/request.d.ts.map +1 -1
- package/dist/tools.d.ts +14 -0
- package/dist/tools.d.ts.map +1 -1
- package/package.json +11 -6
- package/src/agent.ts +17 -4
- package/src/client.ts +248 -128
- package/src/endpoints/addThreadMessages.ts +15 -10
- package/src/endpoints/clearThreadState.ts +19 -20
- package/src/endpoints/deleteFile.ts +65 -0
- package/src/endpoints/deleteMemory.ts +9 -13
- package/src/endpoints/deleteThread.ts +9 -13
- package/src/endpoints/deleteThreadMessage.ts +9 -13
- package/src/endpoints/files.ts +164 -131
- package/src/endpoints/fixGraph.ts +15 -16
- package/src/endpoints/forgetMemories.ts +44 -60
- package/src/endpoints/getMemory.ts +9 -9
- package/src/endpoints/graph.ts +28 -21
- package/src/endpoints/graphTools.ts +7 -13
- package/src/endpoints/invoke.ts +105 -84
- package/src/endpoints/listMemories.ts +18 -13
- package/src/endpoints/observability.ts +77 -34
- package/src/endpoints/ping.ts +7 -13
- package/src/endpoints/realtime.ts +101 -39
- package/src/endpoints/searchMemory.ts +19 -13
- package/src/endpoints/stateSchema.ts +7 -13
- package/src/endpoints/stopGraph.ts +20 -16
- package/src/endpoints/storeMemory.ts +7 -8
- package/src/endpoints/stream.ts +179 -61
- package/src/endpoints/threadDetails.ts +9 -14
- package/src/endpoints/threadMessage.ts +9 -9
- package/src/endpoints/threadMessages.ts +15 -9
- package/src/endpoints/threadState.ts +19 -20
- package/src/endpoints/threads.ts +13 -12
- package/src/endpoints/updateMemory.ts +9 -9
- package/src/endpoints/updateThreadMessageFeedback.ts +80 -0
- package/src/endpoints/updateThreadState.ts +28 -22
- package/src/endpoints/wsStream.ts +167 -42
- package/src/errors.ts +332 -93
- package/src/index.ts +9 -0
- package/src/interrupt.ts +60 -0
- package/src/request.ts +134 -0
- package/src/tools.ts +95 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File upload and retrieval endpoints for multimodal messages.
|
|
3
|
+
*/
|
|
4
|
+
import { RequestContext } from '../request.js';
|
|
5
|
+
export interface FileUploadContext extends RequestContext {
|
|
6
|
+
}
|
|
7
|
+
export interface FileUploadResponse {
|
|
8
|
+
data: {
|
|
9
|
+
file_id: string;
|
|
10
|
+
mime_type: string;
|
|
11
|
+
size_bytes: number;
|
|
12
|
+
filename: string;
|
|
13
|
+
extracted_text: string | null;
|
|
14
|
+
url: string;
|
|
15
|
+
direct_url?: string | null;
|
|
16
|
+
direct_url_expires_at?: number | null;
|
|
17
|
+
};
|
|
18
|
+
metadata?: {
|
|
19
|
+
request_id: string;
|
|
20
|
+
timestamp: string;
|
|
21
|
+
message: string;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export interface FileInfoResponse {
|
|
25
|
+
data: {
|
|
26
|
+
file_id: string;
|
|
27
|
+
mime_type: string;
|
|
28
|
+
size_bytes: number;
|
|
29
|
+
filename?: string | null;
|
|
30
|
+
extracted_text: string | null;
|
|
31
|
+
direct_url?: string | null;
|
|
32
|
+
direct_url_expires_at?: number | null;
|
|
33
|
+
};
|
|
34
|
+
metadata?: {
|
|
35
|
+
request_id: string;
|
|
36
|
+
timestamp: string;
|
|
37
|
+
message: string;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export interface FileAccessUrlResponse {
|
|
41
|
+
data: {
|
|
42
|
+
file_id: string;
|
|
43
|
+
url: string;
|
|
44
|
+
expires_at?: number | null;
|
|
45
|
+
mime_type: string;
|
|
46
|
+
};
|
|
47
|
+
metadata?: {
|
|
48
|
+
request_id: string;
|
|
49
|
+
timestamp: string;
|
|
50
|
+
message: string;
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export interface MultimodalConfigResponse {
|
|
54
|
+
data: {
|
|
55
|
+
media_storage_type: string;
|
|
56
|
+
media_max_size_mb: number;
|
|
57
|
+
document_handling: string;
|
|
58
|
+
};
|
|
59
|
+
metadata?: {
|
|
60
|
+
request_id: string;
|
|
61
|
+
timestamp: string;
|
|
62
|
+
message: string;
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Upload a file (image, audio, document) to the server.
|
|
67
|
+
*
|
|
68
|
+
* @param ctx - Connection context
|
|
69
|
+
* @param file - A File, Blob, or { data: Blob; filename: string } object
|
|
70
|
+
* @returns FileUploadResponse with file_id and metadata
|
|
71
|
+
*/
|
|
72
|
+
export declare function uploadFile(ctx: FileUploadContext, file: File | Blob | {
|
|
73
|
+
data: Blob;
|
|
74
|
+
filename: string;
|
|
75
|
+
}): Promise<FileUploadResponse>;
|
|
76
|
+
/**
|
|
77
|
+
* Download a file by its file_id. Returns raw Blob.
|
|
78
|
+
*/
|
|
79
|
+
export declare function getFile(ctx: FileUploadContext, fileId: string): Promise<Blob>;
|
|
80
|
+
export interface ListFilesRequest {
|
|
81
|
+
/** Page size (server default 50, maximum 200). */
|
|
82
|
+
limit?: number;
|
|
83
|
+
/** Number of files to skip. */
|
|
84
|
+
offset?: number;
|
|
85
|
+
}
|
|
86
|
+
export interface FileListItem {
|
|
87
|
+
file_id: string;
|
|
88
|
+
filename: string | null;
|
|
89
|
+
mime_type: string;
|
|
90
|
+
size_bytes: number;
|
|
91
|
+
url: string;
|
|
92
|
+
/** Unix seconds, or null when the store records no timestamp. */
|
|
93
|
+
created_at: number | null;
|
|
94
|
+
}
|
|
95
|
+
export interface ListFilesResponse {
|
|
96
|
+
data: {
|
|
97
|
+
files: FileListItem[];
|
|
98
|
+
has_more: boolean;
|
|
99
|
+
offset: number;
|
|
100
|
+
limit: number;
|
|
101
|
+
};
|
|
102
|
+
metadata?: {
|
|
103
|
+
request_id: string;
|
|
104
|
+
timestamp: string;
|
|
105
|
+
message: string;
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* List the caller's uploaded files. A store that cannot enumerate its files
|
|
110
|
+
* (for example a cloud store) answers 501, which is thrown as a TenxGraphError.
|
|
111
|
+
*/
|
|
112
|
+
export declare function listFiles(ctx: FileUploadContext, params?: ListFilesRequest): Promise<ListFilesResponse>;
|
|
113
|
+
export declare function getFileInfo(ctx: FileUploadContext, fileId: string): Promise<FileInfoResponse>;
|
|
114
|
+
export declare function getFileAccessUrl(ctx: FileUploadContext, fileId: string): Promise<FileAccessUrlResponse>;
|
|
115
|
+
export declare function getMultimodalConfig(ctx: FileUploadContext): Promise<MultimodalConfigResponse>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ResponseMetadata } from './metadata.js';
|
|
2
|
+
import { RequestContext } from '../request.js';
|
|
3
|
+
export interface FixGraphContext extends RequestContext {
|
|
4
|
+
}
|
|
5
|
+
export interface FixGraphRequest {
|
|
6
|
+
thread_id: string;
|
|
7
|
+
config?: Record<string, any>;
|
|
8
|
+
}
|
|
9
|
+
export interface FixGraphResponse {
|
|
10
|
+
data: {
|
|
11
|
+
success: boolean;
|
|
12
|
+
message: string;
|
|
13
|
+
removed_count: number;
|
|
14
|
+
state?: Record<string, any>;
|
|
15
|
+
};
|
|
16
|
+
metadata: ResponseMetadata;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Repair a thread whose run stopped after the model asked for tools but before
|
|
20
|
+
* the results were saved.
|
|
21
|
+
*
|
|
22
|
+
* The server removes an assistant message when any of its tool calls has no
|
|
23
|
+
* matching tool result (matched by tool call id), then removes tool result
|
|
24
|
+
* messages whose call no longer exists. If the thread is paused (interrupt,
|
|
25
|
+
* client tool call or human approval), the unanswered calls of the latest
|
|
26
|
+
* assistant message are kept. Messages without tool calls are never touched.
|
|
27
|
+
* When nothing needs fixing, removed_count is 0 and the state is not written.
|
|
28
|
+
*
|
|
29
|
+
* @param context - Request context with baseUrl, auth, timeout
|
|
30
|
+
* @param request - Fix request with thread_id and optional config
|
|
31
|
+
* @returns Promise<FixGraphResponse> with fix operation result
|
|
32
|
+
*/
|
|
33
|
+
export declare function fixGraph(context: FixGraphContext, request: FixGraphRequest): Promise<FixGraphResponse>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ResponseMetadata } from './metadata.js';
|
|
2
|
+
import { MemoryType } from './storeMemory.js';
|
|
3
|
+
import { RequestContext } from '../request.js';
|
|
4
|
+
export interface ForgetMemoriesContext extends RequestContext {
|
|
5
|
+
}
|
|
6
|
+
export interface ForgetMemoriesRequest {
|
|
7
|
+
config?: Record<string, any>;
|
|
8
|
+
options?: Record<string, any>;
|
|
9
|
+
memory_type?: MemoryType;
|
|
10
|
+
category?: string;
|
|
11
|
+
filters?: Record<string, any>;
|
|
12
|
+
}
|
|
13
|
+
export interface ForgetMemoriesData {
|
|
14
|
+
success: boolean;
|
|
15
|
+
data: Record<string, any>;
|
|
16
|
+
}
|
|
17
|
+
export interface ForgetMemoriesResponse {
|
|
18
|
+
data: ForgetMemoriesData;
|
|
19
|
+
metadata: ResponseMetadata;
|
|
20
|
+
}
|
|
21
|
+
export declare function forgetMemories(context: ForgetMemoriesContext, request: ForgetMemoriesRequest): Promise<ForgetMemoriesResponse>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ResponseMetadata } from './metadata.js';
|
|
2
|
+
import { RequestContext } from '../request.js';
|
|
3
|
+
import { MemoryResult } from './searchMemory.js';
|
|
4
|
+
export interface GetMemoryContext extends RequestContext {
|
|
5
|
+
}
|
|
6
|
+
export interface GetMemoryRequest {
|
|
7
|
+
memoryId: string;
|
|
8
|
+
config?: Record<string, any>;
|
|
9
|
+
options?: Record<string, any>;
|
|
10
|
+
}
|
|
11
|
+
export interface GetMemoryData {
|
|
12
|
+
memory: MemoryResult;
|
|
13
|
+
}
|
|
14
|
+
export interface GetMemoryResponse {
|
|
15
|
+
data: GetMemoryData;
|
|
16
|
+
metadata: ResponseMetadata;
|
|
17
|
+
}
|
|
18
|
+
export declare function getMemory(context: GetMemoryContext, request: GetMemoryRequest): Promise<GetMemoryResponse>;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { ResponseMetadata } from './metadata.js';
|
|
2
|
+
import { RequestContext } from '../request.js';
|
|
3
|
+
export interface GraphContext extends RequestContext {
|
|
4
|
+
}
|
|
5
|
+
export interface GraphNode {
|
|
6
|
+
id: string;
|
|
7
|
+
name: string;
|
|
8
|
+
}
|
|
9
|
+
export interface GraphEdge {
|
|
10
|
+
id: string;
|
|
11
|
+
source: string;
|
|
12
|
+
target: string;
|
|
13
|
+
}
|
|
14
|
+
/** Live (realtime) init options the server honors. */
|
|
15
|
+
export interface GraphRealtimeOptions {
|
|
16
|
+
/** Init-frame keys applied from the client (subset of voice, modalities, vad, system_prompt). */
|
|
17
|
+
client_overrides: string[];
|
|
18
|
+
/** Accepted values for the init `model`; empty means the client cannot choose. */
|
|
19
|
+
models: string[];
|
|
20
|
+
model_selectable: boolean;
|
|
21
|
+
/** The client may narrow (never widen) the agent's tool tags. */
|
|
22
|
+
tools_tags: boolean;
|
|
23
|
+
}
|
|
24
|
+
export interface GraphInfo {
|
|
25
|
+
node_count: number;
|
|
26
|
+
edge_count: number;
|
|
27
|
+
checkpointer: boolean;
|
|
28
|
+
checkpointer_type: string | null;
|
|
29
|
+
publisher: boolean;
|
|
30
|
+
store: boolean;
|
|
31
|
+
interrupt_before: string[] | null;
|
|
32
|
+
interrupt_after: string[] | null;
|
|
33
|
+
context_type: string | null;
|
|
34
|
+
id_generator: string | null;
|
|
35
|
+
id_type: string | null;
|
|
36
|
+
state_type: string | null;
|
|
37
|
+
state_fields: string[] | null;
|
|
38
|
+
/** Live options the server honors; null when the graph is not a realtime agent. */
|
|
39
|
+
realtime_options?: GraphRealtimeOptions | null;
|
|
40
|
+
}
|
|
41
|
+
export interface GraphData {
|
|
42
|
+
info: GraphInfo;
|
|
43
|
+
nodes: GraphNode[];
|
|
44
|
+
edges: GraphEdge[];
|
|
45
|
+
}
|
|
46
|
+
export interface GraphResponse {
|
|
47
|
+
data: GraphData;
|
|
48
|
+
metadata: ResponseMetadata;
|
|
49
|
+
}
|
|
50
|
+
export declare function graph(context: GraphContext): Promise<GraphResponse>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ResponseMetadata } from './metadata.js';
|
|
2
|
+
import { RequestContext } from '../request.js';
|
|
3
|
+
export interface GraphToolsContext extends RequestContext {
|
|
4
|
+
}
|
|
5
|
+
export type ToolSource = 'local' | 'mcp' | 'remote';
|
|
6
|
+
export interface GraphTool {
|
|
7
|
+
name: string;
|
|
8
|
+
description: string;
|
|
9
|
+
source: ToolSource;
|
|
10
|
+
/** JSON Schema of the tool parameters (OpenAI function-calling shape). */
|
|
11
|
+
parameters: Record<string, any>;
|
|
12
|
+
}
|
|
13
|
+
export interface GraphToolNode {
|
|
14
|
+
node_name: string;
|
|
15
|
+
tool_count: number;
|
|
16
|
+
tools: GraphTool[];
|
|
17
|
+
}
|
|
18
|
+
export interface GraphToolsData {
|
|
19
|
+
node_count: number;
|
|
20
|
+
tool_count: number;
|
|
21
|
+
nodes: GraphToolNode[];
|
|
22
|
+
}
|
|
23
|
+
export interface GraphToolsResponse {
|
|
24
|
+
data: GraphToolsData;
|
|
25
|
+
metadata: ResponseMetadata;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Fetch the tools exposed by every ToolNode in the graph, grouped by node.
|
|
29
|
+
* Each tool is tagged with its source (local / mcp / remote).
|
|
30
|
+
*/
|
|
31
|
+
export declare function graphTools(context: GraphToolsContext): Promise<GraphToolsResponse>;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { Message } from '../message.js';
|
|
2
|
+
import { AgentState } from '../agent.js';
|
|
3
|
+
import { ToolExecutor } from '../tools.js';
|
|
4
|
+
import { RequestContext } from '../request.js';
|
|
5
|
+
export interface InvokeContext extends RequestContext {
|
|
6
|
+
toolExecutor?: ToolExecutor;
|
|
7
|
+
/** Caller-supplied signal; aborting it cancels the in-flight request. */
|
|
8
|
+
signal?: AbortSignal;
|
|
9
|
+
}
|
|
10
|
+
export interface InvokeRequest {
|
|
11
|
+
messages: any[];
|
|
12
|
+
initial_state?: Record<string, any>;
|
|
13
|
+
config?: Record<string, any>;
|
|
14
|
+
recursion_limit?: number;
|
|
15
|
+
/** What to do when another run is active on the same thread (server default: 'wait'). */
|
|
16
|
+
on_busy?: 'wait' | 'cancel';
|
|
17
|
+
/** Value that answers an open interrupt. Send together with `interrupt_id`. */
|
|
18
|
+
resume?: unknown;
|
|
19
|
+
/** Id of the interrupt being answered by `resume`. */
|
|
20
|
+
interrupt_id?: string;
|
|
21
|
+
response_granularity?: 'full' | 'partial' | 'low';
|
|
22
|
+
}
|
|
23
|
+
export interface InvokeMetadata {
|
|
24
|
+
is_new_thread: boolean;
|
|
25
|
+
thread_id: string;
|
|
26
|
+
}
|
|
27
|
+
export interface InvokeResponse {
|
|
28
|
+
data: {
|
|
29
|
+
messages: Message[];
|
|
30
|
+
state?: AgentState;
|
|
31
|
+
context?: Message[];
|
|
32
|
+
summary?: string | null;
|
|
33
|
+
meta: InvokeMetadata;
|
|
34
|
+
};
|
|
35
|
+
metadata: {
|
|
36
|
+
request_id: string;
|
|
37
|
+
timestamp: string;
|
|
38
|
+
message: string;
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export interface InvokeResult {
|
|
42
|
+
messages: Message[];
|
|
43
|
+
state?: AgentState;
|
|
44
|
+
context?: Message[];
|
|
45
|
+
summary?: string | null;
|
|
46
|
+
meta: InvokeMetadata;
|
|
47
|
+
all_messages: Message[];
|
|
48
|
+
iterations: number;
|
|
49
|
+
recursion_limit_reached: boolean;
|
|
50
|
+
}
|
|
51
|
+
export interface InvokePartialResult {
|
|
52
|
+
iteration: number;
|
|
53
|
+
messages: Message[];
|
|
54
|
+
state?: AgentState;
|
|
55
|
+
context?: Message[];
|
|
56
|
+
summary?: string | null;
|
|
57
|
+
meta: InvokeMetadata;
|
|
58
|
+
has_tool_calls: boolean;
|
|
59
|
+
is_final: boolean;
|
|
60
|
+
}
|
|
61
|
+
export type InvokeCallback = (partial: InvokePartialResult) => void | Promise<void>;
|
|
62
|
+
/**
|
|
63
|
+
* Invoke the graph with automatic tool execution loop
|
|
64
|
+
* @param onPartialResult - Optional callback to receive results as they arrive
|
|
65
|
+
*/
|
|
66
|
+
export declare function invoke(context: InvokeContext, request: InvokeRequest, onPartialResult?: InvokeCallback): Promise<InvokeResult>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ResponseMetadata } from './metadata.js';
|
|
2
|
+
import { RequestContext } from '../request.js';
|
|
3
|
+
import { MemoryResult } from './searchMemory.js';
|
|
4
|
+
export interface ListMemoriesContext extends RequestContext {
|
|
5
|
+
}
|
|
6
|
+
export interface ListMemoriesRequest {
|
|
7
|
+
config?: Record<string, any>;
|
|
8
|
+
options?: Record<string, any>;
|
|
9
|
+
limit?: number;
|
|
10
|
+
/** Memories to skip, for paging. Use `next_offset` from the previous page. Needs 10xgraph-api with paging support. */
|
|
11
|
+
offset?: number;
|
|
12
|
+
}
|
|
13
|
+
export interface ListMemoriesData {
|
|
14
|
+
memories: MemoryResult[];
|
|
15
|
+
/** True when more memories follow this page. Absent on servers without paging. */
|
|
16
|
+
has_more?: boolean;
|
|
17
|
+
/** Offset to request next, or null on the last page. */
|
|
18
|
+
next_offset?: number | null;
|
|
19
|
+
}
|
|
20
|
+
export interface ListMemoriesResponse {
|
|
21
|
+
data: ListMemoriesData;
|
|
22
|
+
metadata: ResponseMetadata;
|
|
23
|
+
}
|
|
24
|
+
export declare function listMemories(context: ListMemoriesContext, request: ListMemoriesRequest): Promise<ListMemoriesResponse>;
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { ResponseMetadata } from './metadata.js';
|
|
2
|
+
import { RequestContext } from '../request.js';
|
|
3
|
+
export interface ObservabilityContext extends RequestContext {
|
|
4
|
+
}
|
|
5
|
+
/** Compact view of a complete message seen during a node visit. */
|
|
6
|
+
export interface ObsMessageSummary {
|
|
7
|
+
role: 'user' | 'assistant' | 'tool' | 'system' | string;
|
|
8
|
+
text?: string;
|
|
9
|
+
tool_calls?: Array<{
|
|
10
|
+
id: string;
|
|
11
|
+
name: string;
|
|
12
|
+
}>;
|
|
13
|
+
tool_results?: Array<{
|
|
14
|
+
call_id: string;
|
|
15
|
+
is_error: boolean;
|
|
16
|
+
}>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* One span in the run tree: `root` > `node` (one per visit) > `llm` and `tool`.
|
|
20
|
+
* The tree is built from `parent`. Fields marked 1.0.0 are absent on older servers.
|
|
21
|
+
* Values in `inputs` / `outputs` are clipped at 4000 characters
|
|
22
|
+
* (a clipped value is a string ending in `...[truncated N chars]`).
|
|
23
|
+
*
|
|
24
|
+
* `inputs` / `outputs` by kind:
|
|
25
|
+
* - root: `{ user_message }` / `{ assistant_message }`
|
|
26
|
+
* - node: `{ incoming_message }` (approximate) / `{ messages: ObsMessageSummary[] }`
|
|
27
|
+
* - llm: `null` (the prompt is not recorded) / `{ text?, tool_calls? }`
|
|
28
|
+
* - tool: `{ args }` / `{ result }`
|
|
29
|
+
*/
|
|
30
|
+
export interface ObsSpan {
|
|
31
|
+
id: string;
|
|
32
|
+
name: string;
|
|
33
|
+
kind: 'root' | 'node' | 'llm' | 'tool';
|
|
34
|
+
parent: string | null;
|
|
35
|
+
start_ms: number;
|
|
36
|
+
duration_ms: number;
|
|
37
|
+
model?: string | null;
|
|
38
|
+
input_tokens?: number | null;
|
|
39
|
+
output_tokens?: number | null;
|
|
40
|
+
/** ok | error | running. */
|
|
41
|
+
status?: 'ok' | 'error' | 'running';
|
|
42
|
+
/** Error text when `status` is `error`. */
|
|
43
|
+
error?: string | null;
|
|
44
|
+
inputs?: Record<string, unknown> | null;
|
|
45
|
+
outputs?: Record<string, unknown> | null;
|
|
46
|
+
/** Graph step (node spans), else null. */
|
|
47
|
+
step?: number | null;
|
|
48
|
+
/** 1-based visit count of this node name (node spans), else null. */
|
|
49
|
+
visit?: number | null;
|
|
50
|
+
total_tokens?: number | null;
|
|
51
|
+
reasoning_tokens?: number | null;
|
|
52
|
+
/** Tool spans only. */
|
|
53
|
+
tool_name?: string | null;
|
|
54
|
+
tool_call_id?: string | null;
|
|
55
|
+
}
|
|
56
|
+
export interface ObsEvent {
|
|
57
|
+
id: string;
|
|
58
|
+
type: string;
|
|
59
|
+
node: string;
|
|
60
|
+
offset_ms: number;
|
|
61
|
+
summary: string;
|
|
62
|
+
}
|
|
63
|
+
export interface ObsTokenUsage {
|
|
64
|
+
prompt_tokens: number;
|
|
65
|
+
completion_tokens: number;
|
|
66
|
+
reasoning_tokens: number;
|
|
67
|
+
total_tokens: number;
|
|
68
|
+
}
|
|
69
|
+
export interface ObsRun {
|
|
70
|
+
run_id: string;
|
|
71
|
+
thread_id: string;
|
|
72
|
+
status: string;
|
|
73
|
+
started_at: number | null;
|
|
74
|
+
finished_at: number | null;
|
|
75
|
+
duration_ms: number;
|
|
76
|
+
spans: ObsSpan[];
|
|
77
|
+
events: ObsEvent[];
|
|
78
|
+
usage: ObsTokenUsage;
|
|
79
|
+
llm_calls: number;
|
|
80
|
+
tool_calls: number;
|
|
81
|
+
/** Number of node visits (distinct node names on servers older than 1.0.0). */
|
|
82
|
+
iterations: number;
|
|
83
|
+
/** First error text seen in the run, else null. */
|
|
84
|
+
error?: string | null;
|
|
85
|
+
/** First model seen in the run, else null. */
|
|
86
|
+
model?: string | null;
|
|
87
|
+
models?: string[];
|
|
88
|
+
/** Human-readable limits of this run's trace (may be empty). */
|
|
89
|
+
notes?: string[];
|
|
90
|
+
}
|
|
91
|
+
/** Why `run` is null. */
|
|
92
|
+
export type ObsEmptyReason = 'disabled_in_production' | 'store_unavailable' | 'no_runs';
|
|
93
|
+
export interface ObservabilityData {
|
|
94
|
+
thread_id: string;
|
|
95
|
+
run_count: number;
|
|
96
|
+
run_ids: string[];
|
|
97
|
+
run: ObsRun | null;
|
|
98
|
+
/** False when the local trace store is off (for example MODE=production). */
|
|
99
|
+
enabled?: boolean;
|
|
100
|
+
/** Why `run` is null: tracing off, store missing, or no runs captured yet. */
|
|
101
|
+
reason?: ObsEmptyReason | null;
|
|
102
|
+
}
|
|
103
|
+
export interface ObservabilityResponse {
|
|
104
|
+
data: ObservabilityData;
|
|
105
|
+
metadata: ResponseMetadata;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Fetch the reconstructed observability trace (spans, events, cost) for a thread.
|
|
109
|
+
* Returns the latest run by default, or a specific run when `runId` is given.
|
|
110
|
+
*/
|
|
111
|
+
export declare function observability(context: ObservabilityContext, threadId: string, runId?: string): Promise<ObservabilityResponse>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ResponseMetadata } from './metadata.js';
|
|
2
|
+
import { RequestContext } from '../request.js';
|
|
3
|
+
export interface PingContext extends RequestContext {
|
|
4
|
+
}
|
|
5
|
+
export interface PingResponse {
|
|
6
|
+
data: string;
|
|
7
|
+
metadata: ResponseMetadata;
|
|
8
|
+
}
|
|
9
|
+
export declare function ping(context: PingContext): Promise<PingResponse>;
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { RequestContext } from '../request.js';
|
|
2
|
+
import { WsAuthContext } from '../ws.js';
|
|
3
|
+
export declare const REALTIME_OUTPUT_SAMPLE_RATE = 24000;
|
|
4
|
+
export declare const REALTIME_INPUT_SAMPLE_RATE = 16000;
|
|
5
|
+
export type ResponseModality = 'AUDIO' | 'TEXT';
|
|
6
|
+
export interface RealtimeVADConfig {
|
|
7
|
+
enabled?: boolean;
|
|
8
|
+
start_sensitivity?: string | null;
|
|
9
|
+
end_sensitivity?: string | null;
|
|
10
|
+
prefix_padding_ms?: number | null;
|
|
11
|
+
silence_duration_ms?: number | null;
|
|
12
|
+
}
|
|
13
|
+
export interface RealtimeInit {
|
|
14
|
+
/**
|
|
15
|
+
* e.g. "gemini-3.8-live". Honoured only when the server lists it in
|
|
16
|
+
* `websocket.realtime_models`; otherwise the agent's own model is used.
|
|
17
|
+
*/
|
|
18
|
+
model?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Omit to let the server create the thread; the id arrives in the `session_started` event and
|
|
21
|
+
* is read from `session.threadId`. Pass an id to continue a thread (the server must allow it:
|
|
22
|
+
* under the default `runs.thread_ids: "server"` it must be one the server already knows).
|
|
23
|
+
*/
|
|
24
|
+
thread_id?: string;
|
|
25
|
+
voice?: string;
|
|
26
|
+
modalities?: ResponseModality | ResponseModality[];
|
|
27
|
+
vad?: RealtimeVADConfig;
|
|
28
|
+
system_prompt?: string;
|
|
29
|
+
/** Can only narrow the agent's own tag filter. */
|
|
30
|
+
tools_tags?: string[];
|
|
31
|
+
/** Forward-compatible passthrough; unknown keys are ignored by the server. */
|
|
32
|
+
[k: string]: unknown;
|
|
33
|
+
}
|
|
34
|
+
/** Downstream JSON events. Audio arrives separately as binary via the `audio` channel. */
|
|
35
|
+
export type RealtimeEvent = {
|
|
36
|
+
type: 'session_started';
|
|
37
|
+
thread_id: string;
|
|
38
|
+
} | {
|
|
39
|
+
type: 'input_transcript';
|
|
40
|
+
text: string;
|
|
41
|
+
finished: boolean;
|
|
42
|
+
} | {
|
|
43
|
+
type: 'output_transcript';
|
|
44
|
+
text: string;
|
|
45
|
+
finished: boolean;
|
|
46
|
+
} | {
|
|
47
|
+
type: 'tool_call';
|
|
48
|
+
id: string;
|
|
49
|
+
name: string;
|
|
50
|
+
args: Record<string, unknown>;
|
|
51
|
+
} | {
|
|
52
|
+
type: 'tool_result';
|
|
53
|
+
id: string;
|
|
54
|
+
result: unknown;
|
|
55
|
+
} | {
|
|
56
|
+
type: 'turn_complete';
|
|
57
|
+
} | {
|
|
58
|
+
type: 'interrupted';
|
|
59
|
+
} | {
|
|
60
|
+
type: 'session_update';
|
|
61
|
+
resumption_handle?: string | null;
|
|
62
|
+
} | {
|
|
63
|
+
type: 'go_away';
|
|
64
|
+
time_left?: string | null;
|
|
65
|
+
} | {
|
|
66
|
+
type: 'agent_changed';
|
|
67
|
+
author: string;
|
|
68
|
+
} | {
|
|
69
|
+
type: 'error';
|
|
70
|
+
code?: string | null;
|
|
71
|
+
message: string;
|
|
72
|
+
fatal: boolean;
|
|
73
|
+
};
|
|
74
|
+
export type RealtimeEventType = RealtimeEvent['type'];
|
|
75
|
+
export interface RealtimeReconnectOptions {
|
|
76
|
+
enabled?: boolean;
|
|
77
|
+
baseDelay?: number;
|
|
78
|
+
maxDelay?: number;
|
|
79
|
+
maxAttempts?: number;
|
|
80
|
+
}
|
|
81
|
+
export interface RealtimeOptions {
|
|
82
|
+
reconnect?: RealtimeReconnectOptions;
|
|
83
|
+
onAudio?: (pcm16: Uint8Array, sampleRate: number) => void;
|
|
84
|
+
onEvent?: (e: RealtimeEvent) => void;
|
|
85
|
+
onError?: (e: Extract<RealtimeEvent, {
|
|
86
|
+
type: 'error';
|
|
87
|
+
}>) => void;
|
|
88
|
+
}
|
|
89
|
+
export type RealtimeContext = RequestContext & WsAuthContext & {
|
|
90
|
+
/** Resolves the current bearer token; called on every (re)connect so a refreshed token is used. */
|
|
91
|
+
getAuthToken?: () => string | null | undefined;
|
|
92
|
+
};
|
|
93
|
+
type ChannelMap = {
|
|
94
|
+
audio: (pcm16: Uint8Array, sampleRate: number) => void;
|
|
95
|
+
event: (e: RealtimeEvent) => void;
|
|
96
|
+
open: () => void;
|
|
97
|
+
close: (code: number) => void;
|
|
98
|
+
reconnecting: (attempt: number) => void;
|
|
99
|
+
reconnected: () => void;
|
|
100
|
+
} & {
|
|
101
|
+
[K in RealtimeEventType]: (e: Extract<RealtimeEvent, {
|
|
102
|
+
type: K;
|
|
103
|
+
}>) => void;
|
|
104
|
+
};
|
|
105
|
+
type ChannelName = keyof ChannelMap;
|
|
106
|
+
/**
|
|
107
|
+
* A transport-only realtime audio session over `/v1/graph/live`.
|
|
108
|
+
*
|
|
109
|
+
* Send PCM16 input via `sendAudio`; receive PCM16 output via `.on('audio', ...)`.
|
|
110
|
+
* All non-audio events arrive via `.on('event', ...)` and per-type channels.
|
|
111
|
+
* Mic capture and audio playback are the caller's responsibility.
|
|
112
|
+
*/
|
|
113
|
+
export declare class RealtimeSession {
|
|
114
|
+
/**
|
|
115
|
+
* The thread this session runs on: the caller's `thread_id`, or the id the server created.
|
|
116
|
+
* `null` until the `session_started` event arrives, when the caller gave none.
|
|
117
|
+
*/
|
|
118
|
+
threadId: string | null;
|
|
119
|
+
resumptionHandle: string | null;
|
|
120
|
+
ready: Promise<void>;
|
|
121
|
+
private ctx;
|
|
122
|
+
private init;
|
|
123
|
+
private ws;
|
|
124
|
+
private listeners;
|
|
125
|
+
private resolveReady;
|
|
126
|
+
private rejectReady;
|
|
127
|
+
private readyResolved;
|
|
128
|
+
private closedByUser;
|
|
129
|
+
private fatal;
|
|
130
|
+
private reconnectAttempts;
|
|
131
|
+
private reconnectTimer;
|
|
132
|
+
private stableTimer;
|
|
133
|
+
private readonly reconnectCfg;
|
|
134
|
+
constructor(ctx: RealtimeContext, init: RealtimeInit, options?: RealtimeOptions);
|
|
135
|
+
/**
|
|
136
|
+
* Frames are dropped unless the socket is open; await `session.ready` (or the `open`
|
|
137
|
+
* event) before sending, so mic callbacks that fire early do not throw.
|
|
138
|
+
*/
|
|
139
|
+
sendAudio(pcm16: Uint8Array | ArrayBuffer): void;
|
|
140
|
+
sendText(text: string): void;
|
|
141
|
+
activityStart(): void;
|
|
142
|
+
activityEnd(): void;
|
|
143
|
+
close(): void;
|
|
144
|
+
on<K extends ChannelName>(event: K, listener: ChannelMap[K]): this;
|
|
145
|
+
off<K extends ChannelName>(event: K, listener: ChannelMap[K]): this;
|
|
146
|
+
private emit;
|
|
147
|
+
private sendControl;
|
|
148
|
+
private clearTimers;
|
|
149
|
+
private connect;
|
|
150
|
+
private handleMessage;
|
|
151
|
+
private maybeReconnect;
|
|
152
|
+
private reconnect;
|
|
153
|
+
}
|
|
154
|
+
export {};
|