10xgraph-client 0.0.0-stage → 0.6.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.
Files changed (125) hide show
  1. package/CHANGELOG.md +276 -0
  2. package/LICENSE +21 -0
  3. package/README.md +400 -2
  4. package/dist/agent.d.ts +22 -0
  5. package/dist/agent.d.ts.map +1 -0
  6. package/dist/client.d.ts +479 -0
  7. package/dist/client.d.ts.map +1 -0
  8. package/dist/compat.d.ts +28 -0
  9. package/dist/compat.d.ts.map +1 -0
  10. package/dist/endpoints/addThreadMessages.d.ts +22 -0
  11. package/dist/endpoints/addThreadMessages.d.ts.map +1 -0
  12. package/dist/endpoints/clearThreadState.d.ts +15 -0
  13. package/dist/endpoints/clearThreadState.d.ts.map +1 -0
  14. package/dist/endpoints/deleteMemory.d.ts +19 -0
  15. package/dist/endpoints/deleteMemory.d.ts.map +1 -0
  16. package/dist/endpoints/deleteThread.d.ts +19 -0
  17. package/dist/endpoints/deleteThread.d.ts.map +1 -0
  18. package/dist/endpoints/deleteThreadMessage.d.ts +20 -0
  19. package/dist/endpoints/deleteThreadMessage.d.ts.map +1 -0
  20. package/dist/endpoints/files.d.ts +83 -0
  21. package/dist/endpoints/files.d.ts.map +1 -0
  22. package/dist/endpoints/fixGraph.d.ts +29 -0
  23. package/dist/endpoints/fixGraph.d.ts.map +1 -0
  24. package/dist/endpoints/forgetMemories.d.ts +22 -0
  25. package/dist/endpoints/forgetMemories.d.ts.map +1 -0
  26. package/dist/endpoints/getMemory.d.ts +19 -0
  27. package/dist/endpoints/getMemory.d.ts.map +1 -0
  28. package/dist/endpoints/graph.d.ts +39 -0
  29. package/dist/endpoints/graph.d.ts.map +1 -0
  30. package/dist/endpoints/graphTools.d.ts +32 -0
  31. package/dist/endpoints/graphTools.d.ts.map +1 -0
  32. package/dist/endpoints/invoke.d.ts +59 -0
  33. package/dist/endpoints/invoke.d.ts.map +1 -0
  34. package/dist/endpoints/listMemories.d.ts +19 -0
  35. package/dist/endpoints/listMemories.d.ts.map +1 -0
  36. package/dist/endpoints/metadata.d.ts +6 -0
  37. package/dist/endpoints/metadata.d.ts.map +1 -0
  38. package/dist/endpoints/observability.d.ts +58 -0
  39. package/dist/endpoints/observability.d.ts.map +1 -0
  40. package/dist/endpoints/ping.d.ts +10 -0
  41. package/dist/endpoints/ping.d.ts.map +1 -0
  42. package/dist/endpoints/realtime.d.ts +134 -0
  43. package/dist/endpoints/realtime.d.ts.map +1 -0
  44. package/dist/endpoints/searchMemory.d.ts +57 -0
  45. package/dist/endpoints/searchMemory.d.ts.map +1 -0
  46. package/dist/endpoints/stateSchema.d.ts +50 -0
  47. package/dist/endpoints/stateSchema.d.ts.map +1 -0
  48. package/dist/endpoints/stopGraph.d.ts +26 -0
  49. package/dist/endpoints/stopGraph.d.ts.map +1 -0
  50. package/dist/endpoints/storeMemory.d.ts +33 -0
  51. package/dist/endpoints/storeMemory.d.ts.map +1 -0
  52. package/dist/endpoints/stream.d.ts +60 -0
  53. package/dist/endpoints/stream.d.ts.map +1 -0
  54. package/dist/endpoints/threadDetails.d.ts +19 -0
  55. package/dist/endpoints/threadDetails.d.ts.map +1 -0
  56. package/dist/endpoints/threadMessage.d.ts +17 -0
  57. package/dist/endpoints/threadMessage.d.ts.map +1 -0
  58. package/dist/endpoints/threadMessages.d.ts +23 -0
  59. package/dist/endpoints/threadMessages.d.ts.map +1 -0
  60. package/dist/endpoints/threadState.d.ts +14 -0
  61. package/dist/endpoints/threadState.d.ts.map +1 -0
  62. package/dist/endpoints/threads.d.ts +30 -0
  63. package/dist/endpoints/threads.d.ts.map +1 -0
  64. package/dist/endpoints/updateMemory.d.ts +21 -0
  65. package/dist/endpoints/updateMemory.d.ts.map +1 -0
  66. package/dist/endpoints/updateThreadState.d.ts +18 -0
  67. package/dist/endpoints/updateThreadState.d.ts.map +1 -0
  68. package/dist/endpoints/wsStream.d.ts +33 -0
  69. package/dist/endpoints/wsStream.d.ts.map +1 -0
  70. package/dist/errors.d.ts +155 -0
  71. package/dist/errors.d.ts.map +1 -0
  72. package/dist/index.cjs +6 -0
  73. package/dist/index.cjs.map +1 -0
  74. package/dist/index.d.ts +39 -0
  75. package/dist/index.d.ts.map +1 -0
  76. package/dist/index.js +2664 -0
  77. package/dist/index.js.map +1 -0
  78. package/dist/message.d.ts +174 -0
  79. package/dist/message.d.ts.map +1 -0
  80. package/dist/request.d.ts +33 -0
  81. package/dist/request.d.ts.map +1 -0
  82. package/dist/tools.d.ts +67 -0
  83. package/dist/tools.d.ts.map +1 -0
  84. package/dist/ws.d.ts +48 -0
  85. package/dist/ws.d.ts.map +1 -0
  86. package/package.json +99 -4
  87. package/src/agent.ts +43 -0
  88. package/src/client.ts +1044 -0
  89. package/src/compat.ts +35 -0
  90. package/src/endpoints/addThreadMessages.ts +83 -0
  91. package/src/endpoints/clearThreadState.ts +75 -0
  92. package/src/endpoints/deleteMemory.ts +91 -0
  93. package/src/endpoints/deleteThread.ts +78 -0
  94. package/src/endpoints/deleteThreadMessage.ts +83 -0
  95. package/src/endpoints/files.ts +274 -0
  96. package/src/endpoints/fixGraph.ts +91 -0
  97. package/src/endpoints/forgetMemories.ts +95 -0
  98. package/src/endpoints/getMemory.ts +82 -0
  99. package/src/endpoints/graph.ts +97 -0
  100. package/src/endpoints/graphTools.ts +90 -0
  101. package/src/endpoints/invoke.ts +318 -0
  102. package/src/endpoints/listMemories.ts +97 -0
  103. package/src/endpoints/metadata.ts +6 -0
  104. package/src/endpoints/observability.ts +107 -0
  105. package/src/endpoints/ping.ts +58 -0
  106. package/src/endpoints/realtime.ts +326 -0
  107. package/src/endpoints/searchMemory.ts +132 -0
  108. package/src/endpoints/stateSchema.ts +106 -0
  109. package/src/endpoints/stopGraph.ts +85 -0
  110. package/src/endpoints/storeMemory.ts +98 -0
  111. package/src/endpoints/stream.ts +440 -0
  112. package/src/endpoints/threadDetails.ts +78 -0
  113. package/src/endpoints/threadMessage.ts +76 -0
  114. package/src/endpoints/threadMessages.ts +97 -0
  115. package/src/endpoints/threadState.ts +74 -0
  116. package/src/endpoints/threads.ts +112 -0
  117. package/src/endpoints/updateMemory.ts +90 -0
  118. package/src/endpoints/updateThreadState.ts +82 -0
  119. package/src/endpoints/wsStream.ts +251 -0
  120. package/src/errors.ts +553 -0
  121. package/src/index.ts +108 -0
  122. package/src/message.ts +436 -0
  123. package/src/request.ts +168 -0
  124. package/src/tools.ts +225 -0
  125. package/src/ws.ts +100 -0
@@ -0,0 +1,174 @@
1
+ export declare class MediaRef {
2
+ kind: 'url' | 'file_id' | 'data';
3
+ url?: string;
4
+ file_id?: string;
5
+ data_base64?: string;
6
+ mime_type?: string;
7
+ size_bytes?: number;
8
+ sha256?: string;
9
+ filename?: string;
10
+ width?: number;
11
+ height?: number;
12
+ duration_ms?: number;
13
+ page?: number;
14
+ constructor(kind?: 'url' | 'file_id' | 'data', url?: string, file_id?: string, data_base64?: string, mime_type?: string, size_bytes?: number, sha256?: string, filename?: string, width?: number, height?: number, duration_ms?: number, page?: number);
15
+ }
16
+ export declare class AnnotationRef {
17
+ url?: string;
18
+ file_id?: string;
19
+ page?: number;
20
+ index?: number;
21
+ title?: string;
22
+ constructor(url?: string, file_id?: string, page?: number, index?: number, title?: string);
23
+ }
24
+ export declare class TextBlock {
25
+ type: 'text';
26
+ text: string;
27
+ annotations: AnnotationRef[];
28
+ constructor(text?: string, annotations?: AnnotationRef[]);
29
+ }
30
+ export declare class ImageBlock {
31
+ type: 'image';
32
+ media: MediaRef;
33
+ alt_text?: string;
34
+ bbox?: number[];
35
+ constructor(media?: MediaRef, alt_text?: string, bbox?: number[]);
36
+ }
37
+ export declare class AudioBlock {
38
+ type: 'audio';
39
+ media: MediaRef;
40
+ transcript?: string;
41
+ sample_rate?: number;
42
+ channels?: number;
43
+ constructor(media?: MediaRef, transcript?: string, sample_rate?: number, channels?: number);
44
+ }
45
+ export declare class VideoBlock {
46
+ type: 'video';
47
+ media: MediaRef;
48
+ thumbnail?: MediaRef;
49
+ constructor(media?: MediaRef, thumbnail?: MediaRef);
50
+ }
51
+ export declare class DocumentBlock {
52
+ type: 'document';
53
+ media: MediaRef;
54
+ pages?: number[];
55
+ excerpt?: string;
56
+ constructor(media?: MediaRef, pages?: number[], excerpt?: string);
57
+ }
58
+ export declare class DataBlock {
59
+ type: 'data';
60
+ mime_type: string;
61
+ data_base64?: string;
62
+ media?: MediaRef;
63
+ constructor(mime_type?: string, data_base64?: string, media?: MediaRef);
64
+ }
65
+ export declare class ToolCallBlock {
66
+ type: 'tool_call';
67
+ id: string;
68
+ name: string;
69
+ args: Record<string, any>;
70
+ tool_type?: string;
71
+ constructor(id?: string, name?: string, args?: Record<string, any>, tool_type?: string);
72
+ }
73
+ export declare class RemoteToolCallBlock {
74
+ type: 'remote_tool_call';
75
+ id: string;
76
+ name: string;
77
+ args: Record<string, any>;
78
+ tool_type: string;
79
+ constructor(id?: string, name?: string, args?: Record<string, any>, tool_type?: string);
80
+ }
81
+ export declare class ToolResultBlock {
82
+ type: 'tool_result';
83
+ call_id: string;
84
+ output: any;
85
+ is_error: boolean;
86
+ status?: 'completed' | 'failed';
87
+ constructor(props: {
88
+ call_id: string;
89
+ output: any;
90
+ status: 'completed' | 'failed';
91
+ is_error: boolean;
92
+ });
93
+ }
94
+ export declare class ReasoningBlock {
95
+ type: 'reasoning';
96
+ summary: string;
97
+ details?: string[];
98
+ constructor(summary?: string, details?: string[]);
99
+ }
100
+ export declare class AnnotationBlock {
101
+ type: 'annotation';
102
+ kind: 'citation' | 'note';
103
+ refs: AnnotationRef[];
104
+ spans?: [number, number][];
105
+ constructor(kind?: 'citation' | 'note', refs?: AnnotationRef[], spans?: [number, number][]);
106
+ }
107
+ export declare class ErrorBlock {
108
+ type: 'error';
109
+ message: string;
110
+ code?: string;
111
+ data?: Record<string, any>;
112
+ constructor(message?: string, code?: string, data?: Record<string, any>);
113
+ }
114
+ export type ContentBlock = TextBlock | ImageBlock | AudioBlock | VideoBlock | DocumentBlock | DataBlock | ToolCallBlock | RemoteToolCallBlock | ToolResultBlock | ReasoningBlock | AnnotationBlock | ErrorBlock;
115
+ export declare class TokenUsages {
116
+ completion_tokens: number;
117
+ prompt_tokens: number;
118
+ total_tokens: number;
119
+ reasoning_tokens: number;
120
+ cache_creation_input_tokens: number;
121
+ cache_read_input_tokens: number;
122
+ image_tokens?: number;
123
+ audio_tokens?: number;
124
+ }
125
+ export declare class Message {
126
+ message_id: string | null;
127
+ role: 'user' | 'assistant' | 'system' | 'tool';
128
+ content: ContentBlock[];
129
+ delta: boolean;
130
+ tools_calls?: Record<string, any>[];
131
+ timestamp: number;
132
+ metadata: Record<string, any>;
133
+ usages?: TokenUsages;
134
+ raw?: Record<string, any>;
135
+ constructor(role: 'user' | 'assistant' | 'system' | 'tool', content: ContentBlock[], message_id?: string | null);
136
+ static text_message(content: string, role?: 'user' | 'assistant' | 'system' | 'tool', message_id?: string | null): Message;
137
+ static tool_message(content: ContentBlock[], message_id?: string | null, meta?: Record<string, any>): Message;
138
+ text(): string;
139
+ attach_media(media: MediaRef, as_type: 'image' | 'audio' | 'video' | 'document'): void;
140
+ /**
141
+ * Create a message with an image (via URL or base64).
142
+ *
143
+ * @example
144
+ * ```ts
145
+ * const msg = Message.withImage('Describe this', 'https://example.com/photo.jpg');
146
+ * const msg2 = Message.withImage('Describe this', 'data:image/png;base64,...');
147
+ * ```
148
+ */
149
+ static withImage(text: string, imageUrl: string, role?: 'user' | 'assistant' | 'system'): Message;
150
+ /**
151
+ * Create a message with a file reference (e.g. from uploadFile result).
152
+ *
153
+ * @example
154
+ * ```ts
155
+ * const upload = await client.uploadFile(pdfFile);
156
+ * const msg = Message.withFile('Summarize this PDF', upload.data.file_id, 'application/pdf');
157
+ * ```
158
+ */
159
+ static withFile(text: string, fileId: string, mimeType?: string, role?: 'user' | 'assistant' | 'system'): Message;
160
+ /**
161
+ * Create a multimodal message with arbitrary content blocks.
162
+ *
163
+ * @example
164
+ * ```ts
165
+ * const msg = Message.multimodal([
166
+ * new TextBlock('Look at these'),
167
+ * new ImageBlock(new MediaRef('url', 'https://...')),
168
+ * new ImageBlock(new MediaRef('url', 'https://...')),
169
+ * ]);
170
+ * ```
171
+ */
172
+ static multimodal(blocks: ContentBlock[], role?: 'user' | 'assistant' | 'system'): Message;
173
+ }
174
+ //# sourceMappingURL=message.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../src/message.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { WebSocketImpl } from './ws.js';
2
+ export interface TenxGraphBearerAuth {
3
+ type: 'bearer';
4
+ token: string;
5
+ }
6
+ export interface TenxGraphBasicAuth {
7
+ type: 'basic';
8
+ username: string;
9
+ password: string;
10
+ }
11
+ export interface TenxGraphHeaderAuth {
12
+ type: 'header';
13
+ name: string;
14
+ value: string;
15
+ prefix?: string | null;
16
+ }
17
+ export type TenxGraphAuth = TenxGraphBearerAuth | TenxGraphBasicAuth | TenxGraphHeaderAuth;
18
+ export interface RequestContext {
19
+ baseUrl: string;
20
+ authToken?: string | null;
21
+ auth?: TenxGraphAuth | null;
22
+ headers?: HeadersInit;
23
+ credentials?: RequestCredentials;
24
+ timeout: number;
25
+ debug: boolean;
26
+ webSocketImpl?: WebSocketImpl;
27
+ }
28
+ export declare function buildHeaders(context: Pick<RequestContext, 'authToken' | 'auth' | 'headers'>, defaults?: HeadersInit): Record<string, string>;
29
+ export declare function getRequestCredentials(context: Pick<RequestContext, 'credentials'>): Pick<RequestInit, 'credentials'> | Record<string, never>;
30
+ export declare function bearerAuth(token: string): TenxGraphBearerAuth;
31
+ export declare function basicAuth(username: string, password: string): TenxGraphBasicAuth;
32
+ export declare function headerAuth(name: string, value: string, prefix?: string | null): TenxGraphHeaderAuth;
33
+ //# sourceMappingURL=request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,MAAM,aAAa,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,mBAAmB,CAAC;AAE3F,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AA8FD,wBAAgB,YAAY,CAC1B,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC,EAC/D,QAAQ,CAAC,EAAE,WAAW,GACrB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAaxB;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,GAC3C,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAM1D;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,CAE7D;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CAEhF;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GACrB,mBAAmB,CAErB"}
@@ -0,0 +1,67 @@
1
+ import { Message } from './message.js';
2
+ export interface ToolHandler {
3
+ (args: any): Promise<any>;
4
+ }
5
+ /**
6
+ * JSON Schema describing a tool's arguments.
7
+ *
8
+ * `properties` and `required` are optional, matching JSON Schema itself: a tool
9
+ * whose arguments are all optional needs neither, and a tool that takes no
10
+ * arguments can be declared as `{ type: 'object' }`. Additional JSON Schema
11
+ * keywords (`additionalProperties`, `$defs`, ...) are passed through untouched.
12
+ */
13
+ export interface ToolParameter {
14
+ type: string;
15
+ properties?: Record<string, any>;
16
+ required?: string[];
17
+ [key: string]: unknown;
18
+ }
19
+ /**
20
+ * Fill in the JSON Schema defaults a tool declaration may leave out, so the
21
+ * wire format sent to the server is always a complete object schema.
22
+ */
23
+ export declare function normalizeToolParameters(parameters?: ToolParameter): ToolParameter;
24
+ export interface Tool {
25
+ type: string;
26
+ function: {
27
+ name: string;
28
+ description: string;
29
+ parameters: ToolParameter;
30
+ };
31
+ }
32
+ export interface ToolRegistration {
33
+ node?: string;
34
+ name: string;
35
+ description?: string;
36
+ parameters?: ToolParameter;
37
+ handler: ToolHandler;
38
+ }
39
+ export interface ToolDefinition extends ToolHandler {
40
+ name: string;
41
+ description?: string;
42
+ parameters?: ToolParameter;
43
+ node?: string;
44
+ }
45
+ export declare class ToolExecutor {
46
+ private tools;
47
+ private toolsByNode;
48
+ constructor(tools?: ToolDefinition[]);
49
+ /**
50
+ * Register a new tool
51
+ */
52
+ registerTool(registration: ToolRegistration): void;
53
+ /**
54
+ * Get tools for a specific node
55
+ */
56
+ getToolsForNode(node: string): ToolDefinition[];
57
+ /**
58
+ * Get all tools in OpenAI-compatible format
59
+ */
60
+ all_tools(): Tool[];
61
+ /**
62
+ * Extract and execute all tool calls from the response
63
+ * Returns an array of tool result messages
64
+ */
65
+ executeToolCalls(messages: Message[]): Promise<Message[]>;
66
+ }
67
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAwC,MAAM,cAAc,CAAC;AAG7E,MAAM,WAAW,WAAW;IAC1B,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CAC3B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,CAAC,EAAE,aAAa,GAAG,aAAa,CAUjF;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,aAAa,CAAC;KAC3B,CAAC;CACH;AAGD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,OAAO,EAAE,WAAW,CAAC;CACtB;AAGD,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,WAAW,CAA2C;gBAElD,KAAK,GAAE,cAAc,EAAO;IAiBxC;;OAEG;IACH,YAAY,CAAC,YAAY,EAAE,gBAAgB,GAAG,IAAI;IAuClD;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE;IAK/C;;OAEG;IACH,SAAS,IAAI,IAAI,EAAE;IAkBnB;;;OAGG;IACG,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAgEhE"}
package/dist/ws.d.ts ADDED
@@ -0,0 +1,48 @@
1
+ import { TenxGraphAuth } from './request.js';
2
+ /**
3
+ * Sec-WebSocket-Protocol token the server recognizes for browser-safe bearer auth.
4
+ * The client opens the socket with `[WS_BEARER_SUBPROTOCOL, "<jwt>"]`; the server
5
+ * extracts the second protocol entry as the token. This works in browsers (which
6
+ * cannot set request headers on a WebSocket) and avoids leaking the token in the URL.
7
+ */
8
+ export declare const WS_BEARER_SUBPROTOCOL = "10xgraph-bearer";
9
+ /** Minimal constructor shape shared by the browser `WebSocket` and the Node `ws` package. */
10
+ export type WebSocketImpl = new (url: string, protocols?: string | string[], options?: unknown) => WebSocket;
11
+ /** The auth/transport fields the WS helpers read from a request context. */
12
+ export interface WsAuthContext {
13
+ baseUrl: string;
14
+ authToken?: string | null;
15
+ auth?: TenxGraphAuth | null;
16
+ headers?: HeadersInit;
17
+ credentials?: RequestCredentials;
18
+ debug?: boolean;
19
+ /** Optional WebSocket implementation for runtimes without a global (Node < 21). */
20
+ webSocketImpl?: WebSocketImpl;
21
+ }
22
+ /**
23
+ * Resolve the bearer token with the same priority as `buildHeaders`.
24
+ *
25
+ * `auth` takes precedence over `authToken`, matching the HTTP path. When `auth`
26
+ * is set to a non-bearer scheme (basic/header) there is no bearer token to send,
27
+ * so this returns `null` rather than silently falling back to `authToken` — the
28
+ * HTTP path would not send a bearer in that case either.
29
+ */
30
+ export declare function resolveBearerToken(context: Pick<WsAuthContext, 'authToken' | 'auth'>): string | null;
31
+ /**
32
+ * Convert the HTTP base URL to a WebSocket URL and append `path`.
33
+ * The token is never placed in the URL — it travels via the `10xgraph-bearer`
34
+ * subprotocol (browser-safe) and, in Node, the Authorization header.
35
+ */
36
+ export declare function buildWsUrl(context: Pick<WsAuthContext, 'baseUrl'>, path: string): string;
37
+ /**
38
+ * Open a WebSocket with bearer auth.
39
+ *
40
+ * - If a token is present it is sent as the `10xgraph-bearer` subprotocol (works
41
+ * in browsers and Node `ws`).
42
+ * - In Node-style implementations that accept a third `options` argument, the
43
+ * Authorization header is also passed (ignored by browsers).
44
+ * - The implementation is taken from `context.webSocketImpl`, falling back to the
45
+ * global `WebSocket`. If neither exists a descriptive error is thrown.
46
+ */
47
+ export declare function openWebSocket(url: string, context: WsAuthContext): WebSocket;
48
+ //# sourceMappingURL=ws.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../src/ws.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgB,MAAM,cAAc,CAAC;AAE3D;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AAEvD,6FAA6F;AAC7F,MAAM,MAAM,aAAa,GAAG,KAC1B,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,EAC7B,OAAO,CAAC,EAAE,OAAO,KACd,SAAS,CAAC;AAEf,4EAA4E;AAC5E,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mFAAmF;IACnF,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,GAAG,MAAM,CAAC,GACjD,MAAM,GAAG,IAAI,CAQf;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAOxF;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,SAAS,CA0B5E"}
package/package.json CHANGED
@@ -1,6 +1,101 @@
1
1
  {
2
2
  "name": "10xgraph-client",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.6.0",
4
+ "description": "TypeScript client for the 10xGraph API server: invoke and stream agent graphs, manage threads, memory and files, run client-side tools, and realtime audio. Formerly @10xscale/agentflow-client.",
5
+ "type": "module",
6
+ "main": "./dist/index.cjs",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js",
13
+ "require": "./dist/index.cjs"
14
+ },
15
+ "./package.json": "./package.json"
16
+ },
17
+ "sideEffects": false,
18
+ "files": [
19
+ "dist",
20
+ "src",
21
+ "README.md",
22
+ "LICENSE",
23
+ "CHANGELOG.md"
24
+ ],
25
+ "scripts": {
26
+ "build": "npm run clean && tsc -p tsconfig.build.json && vite build",
27
+ "clean": "rimraf dist",
28
+ "dev": "vite build --watch",
29
+ "typecheck": "tsc --noEmit",
30
+ "lint": "eslint . --max-warnings 253",
31
+ "lint:fix": "eslint . --fix",
32
+ "format": "prettier --write .",
33
+ "format:check": "prettier --check .",
34
+ "test": "vitest",
35
+ "test:run": "vitest run",
36
+ "test:coverage": "vitest run --coverage",
37
+ "test:ui": "vitest --ui",
38
+ "coverage": "vitest run --coverage",
39
+ "coverage:open": "vitest run --coverage && xdg-open coverage/index.html",
40
+ "check": "npm run lint && npm run typecheck && npm run test:run",
41
+ "prepublishOnly": "npm run check && npm run build"
42
+ },
43
+ "repository": {
44
+ "type": "git",
45
+ "url": "git+https://github.com/10xGraph/10xgraph-client.git"
46
+ },
47
+ "bugs": {
48
+ "url": "https://github.com/10xGraph/10xgraph-client/issues"
49
+ },
50
+ "homepage": "https://10xgraph.com",
51
+ "devDependencies": {
52
+ "@eslint/js": "^9.13.0",
53
+ "@vitest/coverage-v8": "^3.2.7",
54
+ "@vitest/ui": "^3.2.7",
55
+ "eslint": "^9.13.0",
56
+ "eslint-config-prettier": "^9.1.0",
57
+ "prettier": "^3.3.0",
58
+ "rimraf": "^6.0.1",
59
+ "ts-node": "^10.9.2",
60
+ "typescript": "^5.0.0",
61
+ "typescript-eslint": "^8.11.0",
62
+ "vite": "^7.3.6",
63
+ "vitest": "^3.2.7"
64
+ },
65
+ "keywords": [
66
+ "10xgraph",
67
+ "10xscale",
68
+ "agentflow",
69
+ "ai-agents",
70
+ "multi-agent",
71
+ "agent",
72
+ "llm",
73
+ "typescript",
74
+ "api-client",
75
+ "sdk",
76
+ "streaming",
77
+ "sse",
78
+ "websocket",
79
+ "realtime-audio",
80
+ "client-side-tools",
81
+ "remote-tools",
82
+ "threads",
83
+ "memory",
84
+ "react",
85
+ "nodejs"
86
+ ],
87
+ "author": "Shudipto Trafder <shudiptotrafder@gmail.com>",
88
+ "contributors": [
89
+ {
90
+ "name": "10xGraph",
91
+ "url": "https://github.com/10xGraph"
92
+ }
93
+ ],
94
+ "license": "MIT",
95
+ "engines": {
96
+ "node": ">=18.0.0"
97
+ },
98
+ "publishConfig": {
99
+ "access": "public"
100
+ }
101
+ }
package/src/agent.ts ADDED
@@ -0,0 +1,43 @@
1
+ import { Message } from './message.js';
2
+
3
+ // Define ExecutionMeta interface
4
+ interface ExecutionMeta {
5
+ current_node: string;
6
+ step: number;
7
+ interrupt?: {
8
+ node: string;
9
+ reason: string;
10
+ status: string;
11
+ data?: Record<string, any>;
12
+ };
13
+ is_running: boolean;
14
+ is_interrupted: boolean;
15
+ is_stopped_requested: boolean;
16
+ }
17
+
18
+ // Define default ExecutionMeta implementation
19
+ class DefaultExecutionMeta implements ExecutionMeta {
20
+ current_node: string = 'START';
21
+ step: number = 0;
22
+ is_running: boolean = true;
23
+ is_interrupted: boolean = false;
24
+ is_stopped_requested: boolean = false;
25
+
26
+ interrupt?: {
27
+ node: string;
28
+ reason: string;
29
+ status: string;
30
+ data?: Record<string, any>;
31
+ };
32
+ }
33
+
34
+ // Define AgentState class
35
+ export class AgentState {
36
+ context: Message[] = [];
37
+ context_summary: string | null = null;
38
+ execution_meta: ExecutionMeta = new DefaultExecutionMeta();
39
+
40
+ constructor(initialData: Partial<Record<string, any>> = {}) {
41
+ Object.assign(this, initialData);
42
+ }
43
+ }