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.
- package/CHANGELOG.md +276 -0
- package/LICENSE +21 -0
- package/README.md +400 -2
- package/dist/agent.d.ts +22 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/client.d.ts +479 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/compat.d.ts +28 -0
- package/dist/compat.d.ts.map +1 -0
- package/dist/endpoints/addThreadMessages.d.ts +22 -0
- package/dist/endpoints/addThreadMessages.d.ts.map +1 -0
- package/dist/endpoints/clearThreadState.d.ts +15 -0
- package/dist/endpoints/clearThreadState.d.ts.map +1 -0
- package/dist/endpoints/deleteMemory.d.ts +19 -0
- package/dist/endpoints/deleteMemory.d.ts.map +1 -0
- package/dist/endpoints/deleteThread.d.ts +19 -0
- package/dist/endpoints/deleteThread.d.ts.map +1 -0
- package/dist/endpoints/deleteThreadMessage.d.ts +20 -0
- package/dist/endpoints/deleteThreadMessage.d.ts.map +1 -0
- package/dist/endpoints/files.d.ts +83 -0
- package/dist/endpoints/files.d.ts.map +1 -0
- package/dist/endpoints/fixGraph.d.ts +29 -0
- package/dist/endpoints/fixGraph.d.ts.map +1 -0
- package/dist/endpoints/forgetMemories.d.ts +22 -0
- package/dist/endpoints/forgetMemories.d.ts.map +1 -0
- package/dist/endpoints/getMemory.d.ts +19 -0
- package/dist/endpoints/getMemory.d.ts.map +1 -0
- package/dist/endpoints/graph.d.ts +39 -0
- package/dist/endpoints/graph.d.ts.map +1 -0
- package/dist/endpoints/graphTools.d.ts +32 -0
- package/dist/endpoints/graphTools.d.ts.map +1 -0
- package/dist/endpoints/invoke.d.ts +59 -0
- package/dist/endpoints/invoke.d.ts.map +1 -0
- package/dist/endpoints/listMemories.d.ts +19 -0
- package/dist/endpoints/listMemories.d.ts.map +1 -0
- package/dist/endpoints/metadata.d.ts +6 -0
- package/dist/endpoints/metadata.d.ts.map +1 -0
- package/dist/endpoints/observability.d.ts +58 -0
- package/dist/endpoints/observability.d.ts.map +1 -0
- package/dist/endpoints/ping.d.ts +10 -0
- package/dist/endpoints/ping.d.ts.map +1 -0
- package/dist/endpoints/realtime.d.ts +134 -0
- package/dist/endpoints/realtime.d.ts.map +1 -0
- package/dist/endpoints/searchMemory.d.ts +57 -0
- package/dist/endpoints/searchMemory.d.ts.map +1 -0
- package/dist/endpoints/stateSchema.d.ts +50 -0
- package/dist/endpoints/stateSchema.d.ts.map +1 -0
- package/dist/endpoints/stopGraph.d.ts +26 -0
- package/dist/endpoints/stopGraph.d.ts.map +1 -0
- package/dist/endpoints/storeMemory.d.ts +33 -0
- package/dist/endpoints/storeMemory.d.ts.map +1 -0
- package/dist/endpoints/stream.d.ts +60 -0
- package/dist/endpoints/stream.d.ts.map +1 -0
- package/dist/endpoints/threadDetails.d.ts +19 -0
- package/dist/endpoints/threadDetails.d.ts.map +1 -0
- package/dist/endpoints/threadMessage.d.ts +17 -0
- package/dist/endpoints/threadMessage.d.ts.map +1 -0
- package/dist/endpoints/threadMessages.d.ts +23 -0
- package/dist/endpoints/threadMessages.d.ts.map +1 -0
- package/dist/endpoints/threadState.d.ts +14 -0
- package/dist/endpoints/threadState.d.ts.map +1 -0
- package/dist/endpoints/threads.d.ts +30 -0
- package/dist/endpoints/threads.d.ts.map +1 -0
- package/dist/endpoints/updateMemory.d.ts +21 -0
- package/dist/endpoints/updateMemory.d.ts.map +1 -0
- package/dist/endpoints/updateThreadState.d.ts +18 -0
- package/dist/endpoints/updateThreadState.d.ts.map +1 -0
- package/dist/endpoints/wsStream.d.ts +33 -0
- package/dist/endpoints/wsStream.d.ts.map +1 -0
- package/dist/errors.d.ts +155 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/index.cjs +6 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +39 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2664 -0
- package/dist/index.js.map +1 -0
- package/dist/message.d.ts +174 -0
- package/dist/message.d.ts.map +1 -0
- package/dist/request.d.ts +33 -0
- package/dist/request.d.ts.map +1 -0
- package/dist/tools.d.ts +67 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/ws.d.ts +48 -0
- package/dist/ws.d.ts.map +1 -0
- package/package.json +99 -4
- package/src/agent.ts +43 -0
- package/src/client.ts +1044 -0
- package/src/compat.ts +35 -0
- package/src/endpoints/addThreadMessages.ts +83 -0
- package/src/endpoints/clearThreadState.ts +75 -0
- package/src/endpoints/deleteMemory.ts +91 -0
- package/src/endpoints/deleteThread.ts +78 -0
- package/src/endpoints/deleteThreadMessage.ts +83 -0
- package/src/endpoints/files.ts +274 -0
- package/src/endpoints/fixGraph.ts +91 -0
- package/src/endpoints/forgetMemories.ts +95 -0
- package/src/endpoints/getMemory.ts +82 -0
- package/src/endpoints/graph.ts +97 -0
- package/src/endpoints/graphTools.ts +90 -0
- package/src/endpoints/invoke.ts +318 -0
- package/src/endpoints/listMemories.ts +97 -0
- package/src/endpoints/metadata.ts +6 -0
- package/src/endpoints/observability.ts +107 -0
- package/src/endpoints/ping.ts +58 -0
- package/src/endpoints/realtime.ts +326 -0
- package/src/endpoints/searchMemory.ts +132 -0
- package/src/endpoints/stateSchema.ts +106 -0
- package/src/endpoints/stopGraph.ts +85 -0
- package/src/endpoints/storeMemory.ts +98 -0
- package/src/endpoints/stream.ts +440 -0
- package/src/endpoints/threadDetails.ts +78 -0
- package/src/endpoints/threadMessage.ts +76 -0
- package/src/endpoints/threadMessages.ts +97 -0
- package/src/endpoints/threadState.ts +74 -0
- package/src/endpoints/threads.ts +112 -0
- package/src/endpoints/updateMemory.ts +90 -0
- package/src/endpoints/updateThreadState.ts +82 -0
- package/src/endpoints/wsStream.ts +251 -0
- package/src/errors.ts +553 -0
- package/src/index.ts +108 -0
- package/src/message.ts +436 -0
- package/src/request.ts +168 -0
- package/src/tools.ts +225 -0
- package/src/ws.ts +100 -0
package/src/compat.ts
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deprecated names from `@10xscale/agentflow-client`, kept so code written against the old
|
|
3
|
+
* package keeps compiling after switching the import to `10xgraph-client`.
|
|
4
|
+
* Each alias is the same class or type as its new name, so `instanceof` checks still work.
|
|
5
|
+
* All of them will be removed in 2.0.
|
|
6
|
+
*/
|
|
7
|
+
import { TenxGraphClient, TenxGraphConfig } from './client.js';
|
|
8
|
+
import { TenxGraphError } from './errors.js';
|
|
9
|
+
import {
|
|
10
|
+
TenxGraphAuth,
|
|
11
|
+
TenxGraphBasicAuth,
|
|
12
|
+
TenxGraphBearerAuth,
|
|
13
|
+
TenxGraphHeaderAuth,
|
|
14
|
+
} from './request.js';
|
|
15
|
+
|
|
16
|
+
/** @deprecated Use `TenxGraphClient`. Removed in 2.0. */
|
|
17
|
+
export const AgentFlowClient = TenxGraphClient;
|
|
18
|
+
/** @deprecated Use `TenxGraphClient`. Removed in 2.0. */
|
|
19
|
+
export type AgentFlowClient = TenxGraphClient;
|
|
20
|
+
|
|
21
|
+
/** @deprecated Use `TenxGraphError`. Removed in 2.0. */
|
|
22
|
+
export const AgentFlowError = TenxGraphError;
|
|
23
|
+
/** @deprecated Use `TenxGraphError`. Removed in 2.0. */
|
|
24
|
+
export type AgentFlowError = TenxGraphError;
|
|
25
|
+
|
|
26
|
+
/** @deprecated Use `TenxGraphConfig`. Removed in 2.0. */
|
|
27
|
+
export type AgentFlowConfig = TenxGraphConfig;
|
|
28
|
+
/** @deprecated Use `TenxGraphAuth`. Removed in 2.0. */
|
|
29
|
+
export type AgentFlowAuth = TenxGraphAuth;
|
|
30
|
+
/** @deprecated Use `TenxGraphBearerAuth`. Removed in 2.0. */
|
|
31
|
+
export type AgentFlowBearerAuth = TenxGraphBearerAuth;
|
|
32
|
+
/** @deprecated Use `TenxGraphBasicAuth`. Removed in 2.0. */
|
|
33
|
+
export type AgentFlowBasicAuth = TenxGraphBasicAuth;
|
|
34
|
+
/** @deprecated Use `TenxGraphHeaderAuth`. Removed in 2.0. */
|
|
35
|
+
export type AgentFlowHeaderAuth = TenxGraphHeaderAuth;
|
|
@@ -0,0 +1,83 @@
|
|
|
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 AddThreadMessagesContext extends RequestContext {}
|
|
7
|
+
|
|
8
|
+
export interface AddThreadMessagesRequest {
|
|
9
|
+
threadId: string | number;
|
|
10
|
+
config: Record<string, any>;
|
|
11
|
+
messages: Message[];
|
|
12
|
+
metadata?: Record<string, any>;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface AddThreadMessagesData {
|
|
16
|
+
success: boolean;
|
|
17
|
+
message: string;
|
|
18
|
+
data: Record<string, any>;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface AddThreadMessagesResponse {
|
|
22
|
+
data: AddThreadMessagesData;
|
|
23
|
+
metadata: ResponseMetadata;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export async function addThreadMessages(
|
|
27
|
+
context: AddThreadMessagesContext,
|
|
28
|
+
request: AddThreadMessagesRequest
|
|
29
|
+
): Promise<AddThreadMessagesResponse> {
|
|
30
|
+
try {
|
|
31
|
+
if (context.debug) {
|
|
32
|
+
console.debug('TenxGraphClient: Adding thread messages to thread', request.threadId);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const controller = new AbortController();
|
|
36
|
+
const timeoutId = setTimeout(() => controller.abort(), context.timeout);
|
|
37
|
+
|
|
38
|
+
const url = `${context.baseUrl}/v1/threads/${request.threadId}/messages`;
|
|
39
|
+
|
|
40
|
+
// Prepare request body
|
|
41
|
+
const body = {
|
|
42
|
+
config: request.config,
|
|
43
|
+
messages: request.messages,
|
|
44
|
+
metadata: request.metadata || {},
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
const response = await fetch(url, {
|
|
48
|
+
method: 'POST',
|
|
49
|
+
headers: buildHeaders(context as RequestContext, {
|
|
50
|
+
'Content-Type': 'application/json',
|
|
51
|
+
}),
|
|
52
|
+
...getRequestCredentials(context as RequestContext),
|
|
53
|
+
body: JSON.stringify(body),
|
|
54
|
+
signal: controller.signal,
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
clearTimeout(timeoutId);
|
|
58
|
+
|
|
59
|
+
if (!response.ok) {
|
|
60
|
+
console.warn(`TenxGraphClient: Add checkpoint messages failed with HTTP ${response.status}`);
|
|
61
|
+
const error = await createErrorFromResponse(
|
|
62
|
+
response,
|
|
63
|
+
'Add thread messages failed',
|
|
64
|
+
'/v1/threads/{thread_id}/messages',
|
|
65
|
+
'POST'
|
|
66
|
+
);
|
|
67
|
+
throw error;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
const data: AddThreadMessagesResponse = await response.json();
|
|
71
|
+
|
|
72
|
+
if (context.debug) {
|
|
73
|
+
console.info('TenxGraphClient: Thread messages added successfully', data);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return data;
|
|
77
|
+
} catch (error) {
|
|
78
|
+
if (context.debug) {
|
|
79
|
+
console.debug('TenxGraphClient: Add checkpoint messages failed:', error);
|
|
80
|
+
}
|
|
81
|
+
throw error;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { ResponseMetadata } from './metadata.js';
|
|
2
|
+
import { createErrorFromResponse } from '../errors.js';
|
|
3
|
+
import { buildHeaders, getRequestCredentials, RequestContext } from '../request.js';
|
|
4
|
+
|
|
5
|
+
export interface ClearThreadStateContext extends RequestContext {}
|
|
6
|
+
|
|
7
|
+
export interface ClearThreadStateData {
|
|
8
|
+
success: boolean;
|
|
9
|
+
message: string;
|
|
10
|
+
data: boolean;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export interface ClearThreadStateResponse {
|
|
14
|
+
data: ClearThreadStateData;
|
|
15
|
+
metadata: ResponseMetadata;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export async function clearThreadState(
|
|
19
|
+
context: ClearThreadStateContext,
|
|
20
|
+
threadId: string | number
|
|
21
|
+
): Promise<ClearThreadStateResponse> {
|
|
22
|
+
try {
|
|
23
|
+
if (context.debug) {
|
|
24
|
+
console.debug(`TenxGraphClient: Clearing thread state for thread ${threadId}`);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const controller = new AbortController();
|
|
28
|
+
const timeoutId = setTimeout(() => controller.abort(), context.timeout);
|
|
29
|
+
|
|
30
|
+
const response = await fetch(`${context.baseUrl}/v1/threads/${threadId}/state`, {
|
|
31
|
+
method: 'DELETE',
|
|
32
|
+
headers: buildHeaders(context as RequestContext, {
|
|
33
|
+
'Content-Type': 'application/json',
|
|
34
|
+
accept: 'application/json',
|
|
35
|
+
}),
|
|
36
|
+
...getRequestCredentials(context as RequestContext),
|
|
37
|
+
signal: controller.signal,
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
clearTimeout(timeoutId);
|
|
41
|
+
|
|
42
|
+
if (!response.ok) {
|
|
43
|
+
console.warn(`TenxGraphClient: Thread state clear failed with HTTP ${response.status}`);
|
|
44
|
+
const error = await createErrorFromResponse(
|
|
45
|
+
response,
|
|
46
|
+
'Thread state clear failed',
|
|
47
|
+
'/v1/threads/{thread_id}/state',
|
|
48
|
+
'DELETE'
|
|
49
|
+
);
|
|
50
|
+
throw error;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const data: ClearThreadStateResponse = await response.json();
|
|
54
|
+
|
|
55
|
+
if (context.debug) {
|
|
56
|
+
console.info(
|
|
57
|
+
`TenxGraphClient: Thread state cleared successfully for thread ${threadId}`,
|
|
58
|
+
data
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return data;
|
|
63
|
+
} catch (error) {
|
|
64
|
+
if ((error as Error).name === 'AbortError') {
|
|
65
|
+
console.warn(`TenxGraphClient: Thread state clear timeout after ${context.timeout}ms`);
|
|
66
|
+
throw new Error(`Request timeout after ${context.timeout}ms`);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
if (context.debug) {
|
|
70
|
+
console.debug(`TenxGraphClient: Thread state clear failed:`, error);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
throw error;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { ResponseMetadata } from './metadata.js';
|
|
2
|
+
import { createErrorFromResponse } from '../errors.js';
|
|
3
|
+
import { buildHeaders, getRequestCredentials, RequestContext } from '../request.js';
|
|
4
|
+
|
|
5
|
+
export interface DeleteMemoryContext extends RequestContext {}
|
|
6
|
+
|
|
7
|
+
export interface DeleteMemoryRequest {
|
|
8
|
+
memoryId: string;
|
|
9
|
+
config?: Record<string, any>;
|
|
10
|
+
options?: Record<string, any>;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export interface DeleteMemoryData {
|
|
14
|
+
success: boolean;
|
|
15
|
+
data: string;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export interface DeleteMemoryResponse {
|
|
19
|
+
data: DeleteMemoryData;
|
|
20
|
+
metadata: ResponseMetadata;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export async function deleteMemory(
|
|
24
|
+
context: DeleteMemoryContext,
|
|
25
|
+
request: DeleteMemoryRequest
|
|
26
|
+
): Promise<DeleteMemoryResponse> {
|
|
27
|
+
try {
|
|
28
|
+
if (context.debug) {
|
|
29
|
+
console.debug('TenxGraphClient: Deleting memory with ID:', request.memoryId);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const controller = new AbortController();
|
|
33
|
+
const timeoutId = setTimeout(() => controller.abort(), context.timeout);
|
|
34
|
+
|
|
35
|
+
const url = `${context.baseUrl}/v1/store/memories/${request.memoryId}`;
|
|
36
|
+
|
|
37
|
+
// Prepare request body
|
|
38
|
+
const body = {
|
|
39
|
+
config: request.config || {},
|
|
40
|
+
options: request.options || {},
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
if (context.debug) {
|
|
44
|
+
console.debug('TenxGraphClient: Delete request payload:', JSON.stringify(body, null, 2));
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const response = await fetch(url, {
|
|
48
|
+
method: 'DELETE',
|
|
49
|
+
headers: buildHeaders(context as RequestContext, {
|
|
50
|
+
'Content-Type': 'application/json',
|
|
51
|
+
accept: 'application/json',
|
|
52
|
+
}),
|
|
53
|
+
...getRequestCredentials(context as RequestContext),
|
|
54
|
+
body: JSON.stringify(body),
|
|
55
|
+
signal: controller.signal,
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
clearTimeout(timeoutId);
|
|
59
|
+
|
|
60
|
+
if (!response.ok) {
|
|
61
|
+
console.warn(`TenxGraphClient: Delete memory failed with HTTP ${response.status}`);
|
|
62
|
+
const error = await createErrorFromResponse(
|
|
63
|
+
response,
|
|
64
|
+
'Delete memory request failed',
|
|
65
|
+
'/v1/memory/{memory_id}',
|
|
66
|
+
'DELETE'
|
|
67
|
+
);
|
|
68
|
+
throw error;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const data: DeleteMemoryResponse = await response.json();
|
|
72
|
+
|
|
73
|
+
if (context.debug) {
|
|
74
|
+
console.info('TenxGraphClient: Memory deleted successfully', {
|
|
75
|
+
memory_id: request.memoryId,
|
|
76
|
+
success: data.data.success,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
return data;
|
|
81
|
+
} catch (error) {
|
|
82
|
+
if ((error as Error).name === 'AbortError') {
|
|
83
|
+
console.warn(`TenxGraphClient: Delete memory timeout after ${context.timeout}ms`);
|
|
84
|
+
throw new Error(`Request timeout after ${context.timeout}ms`);
|
|
85
|
+
}
|
|
86
|
+
if (context.debug) {
|
|
87
|
+
console.debug('TenxGraphClient: Delete memory failed:', error);
|
|
88
|
+
}
|
|
89
|
+
throw error;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { ResponseMetadata } from './metadata.js';
|
|
2
|
+
import { createErrorFromResponse } from '../errors.js';
|
|
3
|
+
import { buildHeaders, getRequestCredentials, RequestContext } from '../request.js';
|
|
4
|
+
|
|
5
|
+
export interface DeleteThreadContext extends RequestContext {}
|
|
6
|
+
|
|
7
|
+
export interface DeleteThreadRequest {
|
|
8
|
+
threadId: string | number;
|
|
9
|
+
config?: Record<string, any>;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface DeleteThreadData {
|
|
13
|
+
success: boolean;
|
|
14
|
+
message: string;
|
|
15
|
+
data: boolean;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export interface DeleteThreadResponse {
|
|
19
|
+
data: DeleteThreadData;
|
|
20
|
+
metadata: ResponseMetadata;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export async function deleteThread(
|
|
24
|
+
context: DeleteThreadContext,
|
|
25
|
+
request: DeleteThreadRequest
|
|
26
|
+
): Promise<DeleteThreadResponse> {
|
|
27
|
+
try {
|
|
28
|
+
if (context.debug) {
|
|
29
|
+
console.debug('TenxGraphClient: Deleting thread', `thread: ${request.threadId}`);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const controller = new AbortController();
|
|
33
|
+
const timeoutId = setTimeout(() => controller.abort(), context.timeout);
|
|
34
|
+
|
|
35
|
+
const url = `${context.baseUrl}/v1/threads/${request.threadId}`;
|
|
36
|
+
|
|
37
|
+
const response = await fetch(url, {
|
|
38
|
+
method: 'DELETE',
|
|
39
|
+
headers: buildHeaders(context as RequestContext, {
|
|
40
|
+
'Content-Type': 'application/json',
|
|
41
|
+
accept: 'application/json',
|
|
42
|
+
}),
|
|
43
|
+
...getRequestCredentials(context as RequestContext),
|
|
44
|
+
body: JSON.stringify({ config: request.config || {} }),
|
|
45
|
+
signal: controller.signal,
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
clearTimeout(timeoutId);
|
|
49
|
+
|
|
50
|
+
if (!response.ok) {
|
|
51
|
+
console.warn(`TenxGraphClient: Delete thread failed with HTTP ${response.status}`);
|
|
52
|
+
const error = await createErrorFromResponse(
|
|
53
|
+
response,
|
|
54
|
+
'Delete thread failed',
|
|
55
|
+
'/v1/threads/{thread_id}',
|
|
56
|
+
'DELETE'
|
|
57
|
+
);
|
|
58
|
+
throw error;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
const data: DeleteThreadResponse = await response.json();
|
|
62
|
+
|
|
63
|
+
if (context.debug) {
|
|
64
|
+
console.info('TenxGraphClient: Thread deleted successfully', data);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return data;
|
|
68
|
+
} catch (error) {
|
|
69
|
+
if ((error as Error).name === 'AbortError') {
|
|
70
|
+
console.warn(`TenxGraphClient: Delete thread timeout after ${context.timeout}ms`);
|
|
71
|
+
throw new Error(`Request timeout after ${context.timeout}ms`);
|
|
72
|
+
}
|
|
73
|
+
if (context.debug) {
|
|
74
|
+
console.debug('TenxGraphClient: Delete thread failed:', error);
|
|
75
|
+
}
|
|
76
|
+
throw error;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { ResponseMetadata } from './metadata.js';
|
|
2
|
+
import { createErrorFromResponse } from '../errors.js';
|
|
3
|
+
import { buildHeaders, getRequestCredentials, RequestContext } from '../request.js';
|
|
4
|
+
|
|
5
|
+
export interface DeleteThreadMessageContext extends RequestContext {}
|
|
6
|
+
|
|
7
|
+
export interface DeleteThreadMessageRequest {
|
|
8
|
+
threadId: string | number;
|
|
9
|
+
messageId: string;
|
|
10
|
+
config?: Record<string, any>;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export interface DeleteThreadMessageData {
|
|
14
|
+
success: boolean;
|
|
15
|
+
message: string;
|
|
16
|
+
data: Record<string, any>;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface DeleteThreadMessageResponse {
|
|
20
|
+
data: DeleteThreadMessageData;
|
|
21
|
+
metadata: ResponseMetadata;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export async function deleteThreadMessage(
|
|
25
|
+
context: DeleteThreadMessageContext,
|
|
26
|
+
request: DeleteThreadMessageRequest
|
|
27
|
+
): Promise<DeleteThreadMessageResponse> {
|
|
28
|
+
try {
|
|
29
|
+
if (context.debug) {
|
|
30
|
+
console.debug(
|
|
31
|
+
'TenxGraphClient: Deleting thread message',
|
|
32
|
+
`thread: ${request.threadId}`,
|
|
33
|
+
`message: ${request.messageId}`
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const controller = new AbortController();
|
|
38
|
+
const timeoutId = setTimeout(() => controller.abort(), context.timeout);
|
|
39
|
+
|
|
40
|
+
const url = `${context.baseUrl}/v1/threads/${request.threadId}/messages/${request.messageId}`;
|
|
41
|
+
|
|
42
|
+
const response = await fetch(url, {
|
|
43
|
+
method: 'DELETE',
|
|
44
|
+
headers: buildHeaders(context as RequestContext, {
|
|
45
|
+
'Content-Type': 'application/json',
|
|
46
|
+
accept: 'application/json',
|
|
47
|
+
}),
|
|
48
|
+
...getRequestCredentials(context as RequestContext),
|
|
49
|
+
body: JSON.stringify({ config: request.config || {} }),
|
|
50
|
+
signal: controller.signal,
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
clearTimeout(timeoutId);
|
|
54
|
+
|
|
55
|
+
if (!response.ok) {
|
|
56
|
+
console.warn(`TenxGraphClient: Delete thread message failed with HTTP ${response.status}`);
|
|
57
|
+
const error = await createErrorFromResponse(
|
|
58
|
+
response,
|
|
59
|
+
'Delete thread message failed',
|
|
60
|
+
'/v1/threads/{thread_id}/messages/{message_id}',
|
|
61
|
+
'DELETE'
|
|
62
|
+
);
|
|
63
|
+
throw error;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const data: DeleteThreadMessageResponse = await response.json();
|
|
67
|
+
|
|
68
|
+
if (context.debug) {
|
|
69
|
+
console.info('TenxGraphClient: Thread message deleted successfully', data);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
return data;
|
|
73
|
+
} catch (error) {
|
|
74
|
+
if ((error as Error).name === 'AbortError') {
|
|
75
|
+
console.warn(`TenxGraphClient: Delete thread message timeout after ${context.timeout}ms`);
|
|
76
|
+
throw new Error(`Request timeout after ${context.timeout}ms`);
|
|
77
|
+
}
|
|
78
|
+
if (context.debug) {
|
|
79
|
+
console.debug('TenxGraphClient: Delete thread message failed:', error);
|
|
80
|
+
}
|
|
81
|
+
throw error;
|
|
82
|
+
}
|
|
83
|
+
}
|