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,97 @@
1
+ import { ResponseMetadata } from './metadata.js';
2
+ import { Message } from '../message.js';
3
+ import { createErrorFromResponse } from '../errors.js';
4
+ import { buildHeaders, getRequestCredentials, RequestContext } from '../request.js';
5
+
6
+ export interface ThreadMessagesContext extends RequestContext {}
7
+
8
+ export interface ThreadMessagesRequest {
9
+ threadId: string | number;
10
+ search?: string;
11
+ offset?: number;
12
+ limit?: number;
13
+ }
14
+
15
+ export interface ThreadMessagesData {
16
+ messages: Message[];
17
+ }
18
+
19
+ // Backward compatibility alias
20
+ export type CheckpointMessagesData = ThreadMessagesData;
21
+
22
+ export interface ThreadMessagesResponse {
23
+ data: ThreadMessagesData;
24
+ metadata: ResponseMetadata;
25
+ }
26
+
27
+ // Backward compatibility alias
28
+ export type CheckpointMessagesResponse = ThreadMessagesResponse;
29
+
30
+ export async function threadMessages(
31
+ context: ThreadMessagesContext,
32
+ request: ThreadMessagesRequest
33
+ ): Promise<ThreadMessagesResponse> {
34
+ try {
35
+ if (context.debug) {
36
+ console.debug('TenxGraphClient: Fetching thread messages for thread', request.threadId);
37
+ }
38
+
39
+ const controller = new AbortController();
40
+ const timeoutId = setTimeout(() => controller.abort(), context.timeout);
41
+
42
+ // Build query parameters
43
+ const params = new URLSearchParams();
44
+ if (request.search !== undefined) {
45
+ params.append('search', request.search);
46
+ }
47
+ if (request.offset !== undefined) {
48
+ params.append('offset', request.offset.toString());
49
+ }
50
+ if (request.limit !== undefined) {
51
+ params.append('limit', request.limit.toString());
52
+ }
53
+
54
+ const queryString = params.toString();
55
+ const url = `${context.baseUrl}/v1/threads/${request.threadId}/messages${queryString ? '?' + queryString : ''}`;
56
+
57
+ const response = await fetch(url, {
58
+ method: 'GET',
59
+ headers: buildHeaders(context as RequestContext, {
60
+ 'Content-Type': 'application/json',
61
+ }),
62
+ ...getRequestCredentials(context as RequestContext),
63
+ signal: controller.signal,
64
+ });
65
+
66
+ clearTimeout(timeoutId);
67
+
68
+ if (!response.ok) {
69
+ console.warn(
70
+ `TenxGraphClient: Checkpoint messages fetch failed with HTTP ${response.status}`
71
+ );
72
+ const error = await createErrorFromResponse(
73
+ response,
74
+ 'Thread messages fetch failed',
75
+ '/v1/threads/{thread_id}/messages',
76
+ 'GET'
77
+ );
78
+ throw error;
79
+ }
80
+
81
+ const data: ThreadMessagesResponse = await response.json();
82
+
83
+ if (context.debug) {
84
+ console.info('TenxGraphClient: Thread messages fetched successfully', data);
85
+ }
86
+
87
+ return data;
88
+ } catch (error) {
89
+ if (context.debug) {
90
+ console.debug('TenxGraphClient: Checkpoint messages fetch failed:', error);
91
+ }
92
+ throw error;
93
+ }
94
+ }
95
+
96
+ // Backward compatibility alias
97
+ export const checkpointMessages = threadMessages;
@@ -0,0 +1,74 @@
1
+ import { ResponseMetadata } from './metadata.js';
2
+ import { AgentState } from '../agent.js';
3
+ import { createErrorFromResponse } from '../errors.js';
4
+ import { buildHeaders, getRequestCredentials, RequestContext } from '../request.js';
5
+
6
+ export interface ThreadStateContext extends RequestContext {}
7
+
8
+ export interface ThreadStateData {
9
+ state: AgentState;
10
+ }
11
+
12
+ export interface ThreadStateResponse {
13
+ data: ThreadStateData;
14
+ metadata: ResponseMetadata;
15
+ }
16
+
17
+ export async function threadState(
18
+ context: ThreadStateContext,
19
+ threadId: string | number
20
+ ): Promise<ThreadStateResponse> {
21
+ try {
22
+ if (context.debug) {
23
+ console.debug(`TenxGraphClient: Fetching thread state for thread ${threadId}`);
24
+ }
25
+
26
+ const controller = new AbortController();
27
+ const timeoutId = setTimeout(() => controller.abort(), context.timeout);
28
+
29
+ const response = await fetch(`${context.baseUrl}/v1/threads/${threadId}/state`, {
30
+ method: 'GET',
31
+ headers: buildHeaders(context as RequestContext, {
32
+ 'Content-Type': 'application/json',
33
+ accept: 'application/json',
34
+ }),
35
+ ...getRequestCredentials(context as RequestContext),
36
+ signal: controller.signal,
37
+ });
38
+
39
+ clearTimeout(timeoutId);
40
+
41
+ if (!response.ok) {
42
+ console.warn(`TenxGraphClient: Thread state fetch failed with HTTP ${response.status}`);
43
+ const error = await createErrorFromResponse(
44
+ response,
45
+ 'Thread state fetch failed',
46
+ '/v1/threads/{thread_id}/state',
47
+ 'GET'
48
+ );
49
+ throw error;
50
+ }
51
+
52
+ const data: ThreadStateResponse = await response.json();
53
+
54
+ if (context.debug) {
55
+ console.info(
56
+ `TenxGraphClient: Thread state fetched successfully for thread ${threadId}`,
57
+ data
58
+ );
59
+ }
60
+
61
+ return data;
62
+ } catch (error) {
63
+ if ((error as Error).name === 'AbortError') {
64
+ console.warn(`TenxGraphClient: Thread state fetch timeout after ${context.timeout}ms`);
65
+ throw new Error(`Request timeout after ${context.timeout}ms`);
66
+ }
67
+
68
+ if (context.debug) {
69
+ console.debug(`TenxGraphClient: Thread state fetch failed:`, error);
70
+ }
71
+
72
+ throw error;
73
+ }
74
+ }
@@ -0,0 +1,112 @@
1
+ import { ResponseMetadata } from './metadata.js';
2
+ import { createErrorFromResponse } from '../errors.js';
3
+ import { buildHeaders, getRequestCredentials, RequestContext } from '../request.js';
4
+
5
+ export interface ThreadsContext extends RequestContext {}
6
+
7
+ export interface ThreadsRequest {
8
+ search?: string;
9
+ offset?: number;
10
+ limit?: number;
11
+ }
12
+
13
+ export interface ThreadItem {
14
+ thread_id: string;
15
+ thread_name: string | null;
16
+ user_id: string | null;
17
+ metadata: Record<string, any> | null;
18
+ updated_at: string | null;
19
+ run_id: string | null;
20
+ }
21
+
22
+ export interface ThreadsData {
23
+ threads: ThreadItem[];
24
+ }
25
+
26
+ export interface ThreadsResponse {
27
+ data: ThreadsData;
28
+ metadata: ResponseMetadata;
29
+ }
30
+
31
+ /**
32
+ * Fetch list of threads with optional search and pagination
33
+ * GET /v1/threads
34
+ */
35
+ export async function threads(
36
+ context: ThreadsContext,
37
+ request?: ThreadsRequest
38
+ ): Promise<ThreadsResponse> {
39
+ try {
40
+ if (context.debug) {
41
+ console.debug('TenxGraphClient: Fetching threads list');
42
+ if (request?.search) {
43
+ console.debug(` Search: ${request.search}`);
44
+ }
45
+ if (request?.offset !== undefined) {
46
+ console.debug(` Offset: ${request.offset}`);
47
+ }
48
+ if (request?.limit !== undefined) {
49
+ console.debug(` Limit: ${request.limit}`);
50
+ }
51
+ }
52
+
53
+ const controller = new AbortController();
54
+ const timeoutId = setTimeout(() => controller.abort(), context.timeout);
55
+
56
+ // Build query parameters
57
+ const params = new URLSearchParams();
58
+ if (request?.search) {
59
+ params.append('search', request.search);
60
+ }
61
+ if (request?.offset !== undefined) {
62
+ params.append('offset', request.offset.toString());
63
+ }
64
+ if (request?.limit !== undefined) {
65
+ params.append('limit', request.limit.toString());
66
+ }
67
+
68
+ const queryString = params.toString();
69
+ const url = `${context.baseUrl}/v1/threads${queryString ? `?${queryString}` : ''}`;
70
+
71
+ const response = await fetch(url, {
72
+ method: 'GET',
73
+ headers: buildHeaders(context as RequestContext, {
74
+ 'Content-Type': 'application/json',
75
+ accept: 'application/json',
76
+ }),
77
+ ...getRequestCredentials(context as RequestContext),
78
+ signal: controller.signal,
79
+ });
80
+
81
+ clearTimeout(timeoutId);
82
+
83
+ if (!response.ok) {
84
+ console.warn(`TenxGraphClient: Threads list fetch failed with HTTP ${response.status}`);
85
+ const error = await createErrorFromResponse(
86
+ response,
87
+ 'Threads list fetch failed',
88
+ '/v1/threads',
89
+ 'GET'
90
+ );
91
+ throw error;
92
+ }
93
+
94
+ const data: ThreadsResponse = await response.json();
95
+
96
+ if (context.debug) {
97
+ console.info('TenxGraphClient: Threads list fetched successfully', data);
98
+ console.debug(` Found ${data.data.threads.length} threads`);
99
+ }
100
+
101
+ return data;
102
+ } catch (error) {
103
+ if ((error as Error).name === 'AbortError') {
104
+ console.warn(`TenxGraphClient: Threads list fetch timeout after ${context.timeout}ms`);
105
+ throw new Error(`Request timeout after ${context.timeout}ms`);
106
+ }
107
+ if (context.debug) {
108
+ console.debug('TenxGraphClient: Threads list fetch failed:', error);
109
+ }
110
+ throw error;
111
+ }
112
+ }
@@ -0,0 +1,90 @@
1
+ import { ResponseMetadata } from './metadata.js';
2
+ import { createErrorFromResponse } from '../errors.js';
3
+ import { buildHeaders, getRequestCredentials, RequestContext } from '../request.js';
4
+
5
+ export interface UpdateMemoryContext extends RequestContext {}
6
+
7
+ export interface UpdateMemoryRequest {
8
+ memoryId: string;
9
+ config?: Record<string, any>;
10
+ options?: Record<string, any>;
11
+ content: string;
12
+ metadata?: Record<string, any>;
13
+ }
14
+
15
+ export interface UpdateMemoryData {
16
+ success: boolean;
17
+ data: Record<string, any>;
18
+ }
19
+
20
+ export interface UpdateMemoryResponse {
21
+ data: UpdateMemoryData;
22
+ metadata: ResponseMetadata;
23
+ }
24
+
25
+ export async function updateMemory(
26
+ context: UpdateMemoryContext,
27
+ request: UpdateMemoryRequest
28
+ ): Promise<UpdateMemoryResponse> {
29
+ try {
30
+ if (context.debug) {
31
+ console.debug('TenxGraphClient: Updating memory with ID:', request.memoryId);
32
+ }
33
+
34
+ const controller = new AbortController();
35
+ const timeoutId = setTimeout(() => controller.abort(), context.timeout);
36
+
37
+ const url = `${context.baseUrl}/v1/store/memories/${request.memoryId}`;
38
+
39
+ // Prepare request body
40
+ const body = {
41
+ config: request.config || {},
42
+ options: request.options || {},
43
+ content: request.content,
44
+ metadata: request.metadata || {},
45
+ };
46
+
47
+ if (context.debug) {
48
+ console.debug('TenxGraphClient: Request payload:', JSON.stringify(body, null, 2));
49
+ }
50
+
51
+ const response = await fetch(url, {
52
+ method: 'PUT',
53
+ headers: buildHeaders(context as RequestContext, {
54
+ 'Content-Type': 'application/json',
55
+ }),
56
+ ...getRequestCredentials(context as RequestContext),
57
+ body: JSON.stringify(body),
58
+ signal: controller.signal,
59
+ });
60
+
61
+ clearTimeout(timeoutId);
62
+
63
+ if (!response.ok) {
64
+ console.warn(`TenxGraphClient: Update memory failed with HTTP ${response.status}`);
65
+ const error = await createErrorFromResponse(
66
+ response,
67
+ 'Update memory request failed',
68
+ '/v1/memory/{memory_id}',
69
+ 'PUT'
70
+ );
71
+ throw error;
72
+ }
73
+
74
+ const data: UpdateMemoryResponse = await response.json();
75
+
76
+ if (context.debug) {
77
+ console.info('TenxGraphClient: Memory updated successfully', {
78
+ memory_id: request.memoryId,
79
+ success: data.data.success,
80
+ });
81
+ }
82
+
83
+ return data;
84
+ } catch (error) {
85
+ if (context.debug) {
86
+ console.debug('TenxGraphClient: Update memory failed:', error);
87
+ }
88
+ throw error;
89
+ }
90
+ }
@@ -0,0 +1,82 @@
1
+ import { ResponseMetadata } from './metadata.js';
2
+ import { AgentState } from '../agent.js';
3
+ import { createErrorFromResponse } from '../errors.js';
4
+ import { buildHeaders, getRequestCredentials, RequestContext } from '../request.js';
5
+
6
+ export interface UpdateThreadStateContext extends RequestContext {}
7
+
8
+ export interface UpdateThreadStateRequest {
9
+ config: Record<string, any>;
10
+ state: AgentState;
11
+ }
12
+
13
+ export interface UpdateThreadStateData {
14
+ state: AgentState;
15
+ }
16
+
17
+ export interface UpdateThreadStateResponse {
18
+ data: UpdateThreadStateData;
19
+ metadata: ResponseMetadata;
20
+ }
21
+
22
+ export async function updateThreadState(
23
+ context: UpdateThreadStateContext,
24
+ threadId: string | number,
25
+ request: UpdateThreadStateRequest
26
+ ): Promise<UpdateThreadStateResponse> {
27
+ try {
28
+ if (context.debug) {
29
+ console.debug(`TenxGraphClient: Updating thread state for thread ${threadId}`);
30
+ console.debug(`TenxGraphClient: Request payload:`, JSON.stringify(request, null, 2));
31
+ }
32
+
33
+ const controller = new AbortController();
34
+ const timeoutId = setTimeout(() => controller.abort(), context.timeout);
35
+
36
+ const response = await fetch(`${context.baseUrl}/v1/threads/${threadId}/state`, {
37
+ method: 'PUT',
38
+ headers: buildHeaders(context as RequestContext, {
39
+ 'Content-Type': 'application/json',
40
+ accept: 'application/json',
41
+ }),
42
+ ...getRequestCredentials(context as RequestContext),
43
+ body: JSON.stringify(request),
44
+ signal: controller.signal,
45
+ });
46
+
47
+ clearTimeout(timeoutId);
48
+
49
+ if (!response.ok) {
50
+ console.warn(`TenxGraphClient: Thread state update failed with HTTP ${response.status}`);
51
+ const error = await createErrorFromResponse(
52
+ response,
53
+ 'Thread state update failed',
54
+ '/v1/threads/{thread_id}/state',
55
+ 'PUT'
56
+ );
57
+ throw error;
58
+ }
59
+
60
+ const data: UpdateThreadStateResponse = await response.json();
61
+
62
+ if (context.debug) {
63
+ console.info(
64
+ `TenxGraphClient: Thread state updated successfully for thread ${threadId}`,
65
+ data
66
+ );
67
+ }
68
+
69
+ return data;
70
+ } catch (error) {
71
+ if ((error as Error).name === 'AbortError') {
72
+ console.warn(`TenxGraphClient: Thread state update timeout after ${context.timeout}ms`);
73
+ throw new Error(`Request timeout after ${context.timeout}ms`);
74
+ }
75
+
76
+ if (context.debug) {
77
+ console.debug(`TenxGraphClient: Thread state update failed:`, error);
78
+ }
79
+
80
+ throw error;
81
+ }
82
+ }