@agent-os-sdk/client 0.9.24 → 0.9.26
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/package.json +15 -8
- package/src/generated/openapi.ts +90 -0
- package/src/generated/swagger.json +181 -0
- package/src/modules/runs.ts +64 -0
- package/src/modules/templates.ts +35 -0
- package/dist/client/AgentOsClient.d.ts +0 -141
- package/dist/client/AgentOsClient.d.ts.map +0 -1
- package/dist/client/AgentOsClient.js +0 -250
- package/dist/client/HttpRequestBuilder.d.ts +0 -50
- package/dist/client/HttpRequestBuilder.d.ts.map +0 -1
- package/dist/client/HttpRequestBuilder.js +0 -83
- package/dist/client/OperationContext.d.ts +0 -19
- package/dist/client/OperationContext.d.ts.map +0 -1
- package/dist/client/OperationContext.js +0 -13
- package/dist/client/OperationContextProvider.d.ts +0 -54
- package/dist/client/OperationContextProvider.d.ts.map +0 -1
- package/dist/client/OperationContextProvider.js +0 -71
- package/dist/client/auth.d.ts +0 -100
- package/dist/client/auth.d.ts.map +0 -1
- package/dist/client/auth.js +0 -38
- package/dist/client/config.d.ts +0 -49
- package/dist/client/config.d.ts.map +0 -1
- package/dist/client/config.js +0 -62
- package/dist/client/helpers.d.ts +0 -63
- package/dist/client/helpers.d.ts.map +0 -1
- package/dist/client/helpers.js +0 -55
- package/dist/client/pagination.d.ts +0 -105
- package/dist/client/pagination.d.ts.map +0 -1
- package/dist/client/pagination.js +0 -117
- package/dist/client/raw.d.ts +0 -277
- package/dist/client/raw.d.ts.map +0 -1
- package/dist/client/raw.js +0 -337
- package/dist/client/retry.d.ts +0 -37
- package/dist/client/retry.d.ts.map +0 -1
- package/dist/client/retry.js +0 -108
- package/dist/client/sanitize.d.ts +0 -19
- package/dist/client/sanitize.d.ts.map +0 -1
- package/dist/client/sanitize.js +0 -28
- package/dist/client/timeout.d.ts +0 -26
- package/dist/client/timeout.d.ts.map +0 -1
- package/dist/client/timeout.js +0 -51
- package/dist/errors/factory.d.ts +0 -22
- package/dist/errors/factory.d.ts.map +0 -1
- package/dist/errors/factory.js +0 -101
- package/dist/errors/index.d.ts +0 -210
- package/dist/errors/index.d.ts.map +0 -1
- package/dist/errors/index.js +0 -283
- package/dist/generated/client.d.ts +0 -20
- package/dist/generated/client.d.ts.map +0 -1
- package/dist/generated/client.js +0 -15
- package/dist/generated/index.d.ts +0 -2
- package/dist/generated/index.d.ts.map +0 -1
- package/dist/generated/index.js +0 -1
- package/dist/generated/openapi.d.ts +0 -12294
- package/dist/generated/openapi.d.ts.map +0 -1
- package/dist/generated/openapi.js +0 -5
- package/dist/index.d.ts +0 -69
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -81
- package/dist/modules/a2a.d.ts +0 -48
- package/dist/modules/a2a.d.ts.map +0 -1
- package/dist/modules/a2a.js +0 -37
- package/dist/modules/agents.d.ts +0 -346
- package/dist/modules/agents.d.ts.map +0 -1
- package/dist/modules/agents.js +0 -296
- package/dist/modules/apiTokens.d.ts +0 -62
- package/dist/modules/apiTokens.d.ts.map +0 -1
- package/dist/modules/apiTokens.js +0 -56
- package/dist/modules/approvals.d.ts +0 -75
- package/dist/modules/approvals.d.ts.map +0 -1
- package/dist/modules/approvals.js +0 -91
- package/dist/modules/audit.d.ts +0 -78
- package/dist/modules/audit.d.ts.map +0 -1
- package/dist/modules/audit.js +0 -94
- package/dist/modules/auth.d.ts +0 -28
- package/dist/modules/auth.d.ts.map +0 -1
- package/dist/modules/auth.js +0 -22
- package/dist/modules/builder.d.ts +0 -242
- package/dist/modules/builder.d.ts.map +0 -1
- package/dist/modules/builder.js +0 -248
- package/dist/modules/catalog.d.ts +0 -142
- package/dist/modules/catalog.d.ts.map +0 -1
- package/dist/modules/catalog.js +0 -136
- package/dist/modules/chatwoot.d.ts +0 -59
- package/dist/modules/chatwoot.d.ts.map +0 -1
- package/dist/modules/chatwoot.js +0 -200
- package/dist/modules/checkpoints.d.ts +0 -62
- package/dist/modules/checkpoints.d.ts.map +0 -1
- package/dist/modules/checkpoints.js +0 -48
- package/dist/modules/contracts.d.ts +0 -48
- package/dist/modules/contracts.d.ts.map +0 -1
- package/dist/modules/contracts.js +0 -25
- package/dist/modules/credentials.d.ts +0 -105
- package/dist/modules/credentials.d.ts.map +0 -1
- package/dist/modules/credentials.js +0 -135
- package/dist/modules/crons.d.ts +0 -73
- package/dist/modules/crons.d.ts.map +0 -1
- package/dist/modules/crons.js +0 -67
- package/dist/modules/datasets.d.ts +0 -80
- package/dist/modules/datasets.d.ts.map +0 -1
- package/dist/modules/datasets.js +0 -91
- package/dist/modules/evaluation.d.ts +0 -183
- package/dist/modules/evaluation.d.ts.map +0 -1
- package/dist/modules/evaluation.js +0 -108
- package/dist/modules/files.d.ts +0 -89
- package/dist/modules/files.d.ts.map +0 -1
- package/dist/modules/files.js +0 -133
- package/dist/modules/graphs.d.ts +0 -120
- package/dist/modules/graphs.d.ts.map +0 -1
- package/dist/modules/graphs.js +0 -69
- package/dist/modules/improvements.d.ts +0 -52
- package/dist/modules/improvements.d.ts.map +0 -1
- package/dist/modules/improvements.js +0 -27
- package/dist/modules/info.d.ts +0 -76
- package/dist/modules/info.d.ts.map +0 -1
- package/dist/modules/info.js +0 -93
- package/dist/modules/knowledge.d.ts +0 -91
- package/dist/modules/knowledge.d.ts.map +0 -1
- package/dist/modules/knowledge.js +0 -80
- package/dist/modules/me.d.ts +0 -58
- package/dist/modules/me.d.ts.map +0 -1
- package/dist/modules/me.js +0 -28
- package/dist/modules/members.d.ts +0 -124
- package/dist/modules/members.d.ts.map +0 -1
- package/dist/modules/members.js +0 -142
- package/dist/modules/memberships.d.ts +0 -25
- package/dist/modules/memberships.d.ts.map +0 -1
- package/dist/modules/memberships.js +0 -20
- package/dist/modules/metaAgent.d.ts +0 -95
- package/dist/modules/metaAgent.d.ts.map +0 -1
- package/dist/modules/metaAgent.js +0 -32
- package/dist/modules/metrics.d.ts +0 -20
- package/dist/modules/metrics.d.ts.map +0 -1
- package/dist/modules/metrics.js +0 -27
- package/dist/modules/observability.d.ts +0 -19
- package/dist/modules/observability.d.ts.map +0 -1
- package/dist/modules/observability.js +0 -14
- package/dist/modules/playground.d.ts +0 -42
- package/dist/modules/playground.d.ts.map +0 -1
- package/dist/modules/playground.js +0 -48
- package/dist/modules/presets.d.ts +0 -32
- package/dist/modules/presets.d.ts.map +0 -1
- package/dist/modules/presets.js +0 -199
- package/dist/modules/prompts.d.ts +0 -87
- package/dist/modules/prompts.d.ts.map +0 -1
- package/dist/modules/prompts.js +0 -87
- package/dist/modules/roles.d.ts +0 -64
- package/dist/modules/roles.d.ts.map +0 -1
- package/dist/modules/roles.js +0 -79
- package/dist/modules/runs.d.ts +0 -400
- package/dist/modules/runs.d.ts.map +0 -1
- package/dist/modules/runs.js +0 -526
- package/dist/modules/store.d.ts +0 -37
- package/dist/modules/store.d.ts.map +0 -1
- package/dist/modules/store.js +0 -48
- package/dist/modules/templates.d.ts +0 -28
- package/dist/modules/templates.d.ts.map +0 -1
- package/dist/modules/templates.js +0 -19
- package/dist/modules/tenants.d.ts +0 -49
- package/dist/modules/tenants.d.ts.map +0 -1
- package/dist/modules/tenants.js +0 -56
- package/dist/modules/threads.d.ts +0 -205
- package/dist/modules/threads.d.ts.map +0 -1
- package/dist/modules/threads.js +0 -225
- package/dist/modules/tools.d.ts +0 -62
- package/dist/modules/tools.d.ts.map +0 -1
- package/dist/modules/tools.js +0 -45
- package/dist/modules/traces.d.ts +0 -89
- package/dist/modules/traces.d.ts.map +0 -1
- package/dist/modules/traces.js +0 -65
- package/dist/modules/triggers.d.ts +0 -228
- package/dist/modules/triggers.d.ts.map +0 -1
- package/dist/modules/triggers.js +0 -176
- package/dist/modules/usage.d.ts +0 -85
- package/dist/modules/usage.d.ts.map +0 -1
- package/dist/modules/usage.js +0 -43
- package/dist/modules/vectorStores.d.ts +0 -100
- package/dist/modules/vectorStores.d.ts.map +0 -1
- package/dist/modules/vectorStores.js +0 -159
- package/dist/modules/workspaces.d.ts +0 -138
- package/dist/modules/workspaces.d.ts.map +0 -1
- package/dist/modules/workspaces.js +0 -121
- package/dist/sse/client.d.ts +0 -140
- package/dist/sse/client.d.ts.map +0 -1
- package/dist/sse/client.js +0 -103
package/dist/sse/client.d.ts
DELETED
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agent OS SDK - SSE Client
|
|
3
|
-
*
|
|
4
|
-
* Typed Server-Sent Events client for streaming endpoints.
|
|
5
|
-
*
|
|
6
|
-
* This module provides utilities for parsing SSE responses.
|
|
7
|
-
* The actual HTTP request should be made via rawClient.streamGet/streamPost.
|
|
8
|
-
*/
|
|
9
|
-
export type SSEEvent<T = unknown> = {
|
|
10
|
-
id?: string;
|
|
11
|
-
event: string;
|
|
12
|
-
data: T;
|
|
13
|
-
retry?: number;
|
|
14
|
-
};
|
|
15
|
-
export type SSEOptions = {
|
|
16
|
-
headers?: Record<string, string>;
|
|
17
|
-
onOpen?: () => void;
|
|
18
|
-
onError?: (error: Error) => void;
|
|
19
|
-
signal?: AbortSignal;
|
|
20
|
-
};
|
|
21
|
-
/**
|
|
22
|
-
* Parse SSE events from a Response object.
|
|
23
|
-
* Use this with rawClient.streamGet() or rawClient.streamPost().
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* ```ts
|
|
27
|
-
* const response = await client.streamGet("/v1/api/runs/{runId}/events/stream", {
|
|
28
|
-
* params: { path: { runId }, query: { attemptId, afterSeq: 0 } }
|
|
29
|
-
* });
|
|
30
|
-
* for await (const event of parseSSE<RunStreamEvent>(response)) {
|
|
31
|
-
* console.log(event);
|
|
32
|
-
* }
|
|
33
|
-
* ```
|
|
34
|
-
*/
|
|
35
|
-
export declare function parseSSE<T>(response: Response, options?: {
|
|
36
|
-
onOpen?: () => void;
|
|
37
|
-
}): AsyncGenerator<SSEEvent<T>>;
|
|
38
|
-
/**
|
|
39
|
-
* Legacy streamSSE function - DEPRECATED.
|
|
40
|
-
* Use rawClient.streamGet() + parseSSE() instead.
|
|
41
|
-
*
|
|
42
|
-
* Kept for backward compatibility during migration.
|
|
43
|
-
*
|
|
44
|
-
* @deprecated Use rawClient.streamGet() + parseSSE() instead
|
|
45
|
-
*/
|
|
46
|
-
export declare function streamSSE<T>(url: string, options?: SSEOptions): AsyncGenerator<SSEEvent<T>>;
|
|
47
|
-
/**
|
|
48
|
-
* Run event from the execution ledger (Wave 2.3).
|
|
49
|
-
* This is the actual payload sent within SSE `run_event` messages.
|
|
50
|
-
*/
|
|
51
|
-
export interface RunEventDto {
|
|
52
|
-
id: string;
|
|
53
|
-
seq: number;
|
|
54
|
-
type: string;
|
|
55
|
-
timestamp: string;
|
|
56
|
-
attempt_id: string;
|
|
57
|
-
payload: Record<string, unknown> | null;
|
|
58
|
-
truncated?: boolean;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* SSE Event types for Run streaming (V1.2 Cinema Mode).
|
|
62
|
-
*
|
|
63
|
-
* The server sends these event types:
|
|
64
|
-
* - `connected`: Initial connection acknowledgment
|
|
65
|
-
* - `run_event`: Individual run events from the ledger (with seq for resume)
|
|
66
|
-
* - `heartbeat`: Keepalive every 15s
|
|
67
|
-
* - `close`: Run reached terminal state (completed/failed/canceled)
|
|
68
|
-
* - `error`: Stream error occurred
|
|
69
|
-
*
|
|
70
|
-
* Each event has an `id` field containing the seq number for Last-Event-ID resume support.
|
|
71
|
-
*/
|
|
72
|
-
export type RunSSEEvent = {
|
|
73
|
-
event: "connected";
|
|
74
|
-
data: {
|
|
75
|
-
run_id: string;
|
|
76
|
-
start_seq: number;
|
|
77
|
-
};
|
|
78
|
-
} | {
|
|
79
|
-
event: "run_event";
|
|
80
|
-
data: RunEventDto;
|
|
81
|
-
} | {
|
|
82
|
-
event: "heartbeat";
|
|
83
|
-
data: {
|
|
84
|
-
timestamp: string;
|
|
85
|
-
};
|
|
86
|
-
} | {
|
|
87
|
-
event: "close";
|
|
88
|
-
data: {
|
|
89
|
-
final_status: string;
|
|
90
|
-
final_seq: number;
|
|
91
|
-
};
|
|
92
|
-
} | {
|
|
93
|
-
event: "error";
|
|
94
|
-
data: {
|
|
95
|
-
code?: string;
|
|
96
|
-
message: string;
|
|
97
|
-
};
|
|
98
|
-
};
|
|
99
|
-
/**
|
|
100
|
-
* @deprecated Use RunSSEEvent for typed SSE events, or RunEventDto for event payloads.
|
|
101
|
-
* Kept for backward compatibility.
|
|
102
|
-
*/
|
|
103
|
-
export type RunStreamEvent = {
|
|
104
|
-
type: "run_started";
|
|
105
|
-
run_id: string;
|
|
106
|
-
status: string;
|
|
107
|
-
} | {
|
|
108
|
-
type: "node_started";
|
|
109
|
-
node_name: string;
|
|
110
|
-
timestamp: string;
|
|
111
|
-
} | {
|
|
112
|
-
type: "node_completed";
|
|
113
|
-
node_name: string;
|
|
114
|
-
output: unknown;
|
|
115
|
-
} | {
|
|
116
|
-
type: "tool_call";
|
|
117
|
-
tool_name: string;
|
|
118
|
-
args: unknown;
|
|
119
|
-
} | {
|
|
120
|
-
type: "tool_result";
|
|
121
|
-
tool_name: string;
|
|
122
|
-
result: unknown;
|
|
123
|
-
} | {
|
|
124
|
-
type: "checkpoint";
|
|
125
|
-
checkpoint_id: string;
|
|
126
|
-
step_name: string;
|
|
127
|
-
} | {
|
|
128
|
-
type: "waiting_for_human";
|
|
129
|
-
prompt: string;
|
|
130
|
-
} | {
|
|
131
|
-
type: "run_completed";
|
|
132
|
-
output: unknown;
|
|
133
|
-
} | {
|
|
134
|
-
type: "run_failed";
|
|
135
|
-
error: unknown;
|
|
136
|
-
} | {
|
|
137
|
-
type: "heartbeat";
|
|
138
|
-
timestamp: string;
|
|
139
|
-
};
|
|
140
|
-
//# sourceMappingURL=client.d.ts.map
|
package/dist/sse/client.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/sse/client.ts"],"names":[],"mappings":"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"}
|
package/dist/sse/client.js
DELETED
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agent OS SDK - SSE Client
|
|
3
|
-
*
|
|
4
|
-
* Typed Server-Sent Events client for streaming endpoints.
|
|
5
|
-
*
|
|
6
|
-
* This module provides utilities for parsing SSE responses.
|
|
7
|
-
* The actual HTTP request should be made via rawClient.streamGet/streamPost.
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
* Parse SSE events from a Response object.
|
|
11
|
-
* Use this with rawClient.streamGet() or rawClient.streamPost().
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* ```ts
|
|
15
|
-
* const response = await client.streamGet("/v1/api/runs/{runId}/events/stream", {
|
|
16
|
-
* params: { path: { runId }, query: { attemptId, afterSeq: 0 } }
|
|
17
|
-
* });
|
|
18
|
-
* for await (const event of parseSSE<RunStreamEvent>(response)) {
|
|
19
|
-
* console.log(event);
|
|
20
|
-
* }
|
|
21
|
-
* ```
|
|
22
|
-
*/
|
|
23
|
-
export async function* parseSSE(response, options) {
|
|
24
|
-
if (!response.ok) {
|
|
25
|
-
throw new Error(`SSE connection failed: ${response.status}`);
|
|
26
|
-
}
|
|
27
|
-
if (!response.body) {
|
|
28
|
-
throw new Error("No response body");
|
|
29
|
-
}
|
|
30
|
-
options?.onOpen?.();
|
|
31
|
-
const reader = response.body.getReader();
|
|
32
|
-
const decoder = new TextDecoder();
|
|
33
|
-
let buffer = "";
|
|
34
|
-
// State must be maintained across chunks
|
|
35
|
-
let currentEvent = { event: "message" };
|
|
36
|
-
try {
|
|
37
|
-
while (true) {
|
|
38
|
-
const { done, value } = await reader.read();
|
|
39
|
-
if (done)
|
|
40
|
-
break;
|
|
41
|
-
buffer += decoder.decode(value, { stream: true });
|
|
42
|
-
const lines = buffer.split("\n");
|
|
43
|
-
// Keep the last partial line in the buffer
|
|
44
|
-
buffer = lines.pop() ?? "";
|
|
45
|
-
for (const line of lines) {
|
|
46
|
-
const trimmed = line.trim();
|
|
47
|
-
if (trimmed === "") {
|
|
48
|
-
// Empty line triggers event dispatch if we have data
|
|
49
|
-
if (currentEvent.data !== undefined) {
|
|
50
|
-
yield currentEvent;
|
|
51
|
-
}
|
|
52
|
-
// Reset for next event
|
|
53
|
-
currentEvent = { event: "message" };
|
|
54
|
-
continue;
|
|
55
|
-
}
|
|
56
|
-
if (line.startsWith("event:")) {
|
|
57
|
-
currentEvent.event = line.slice(6).trim();
|
|
58
|
-
}
|
|
59
|
-
else if (line.startsWith("data:")) {
|
|
60
|
-
const dataStr = line.slice(5).trim();
|
|
61
|
-
try {
|
|
62
|
-
// Accumulate data if meaningful (though standard SSE usually has one data line per event,
|
|
63
|
-
// multiline data is possible but rare in this specific protocol.
|
|
64
|
-
// For simplicity and matching current backend, we overwrite or concatenation check could be stricter).
|
|
65
|
-
// Given strict JSON protocol, we assume valid info per data line or single data line.
|
|
66
|
-
currentEvent.data = JSON.parse(dataStr);
|
|
67
|
-
}
|
|
68
|
-
catch {
|
|
69
|
-
currentEvent.data = dataStr;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
else if (line.startsWith("id:")) {
|
|
73
|
-
currentEvent.id = line.slice(3).trim();
|
|
74
|
-
}
|
|
75
|
-
else if (line.startsWith("retry:")) {
|
|
76
|
-
currentEvent.retry = parseInt(line.slice(6).trim(), 10);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
finally {
|
|
82
|
-
reader.releaseLock();
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Legacy streamSSE function - DEPRECATED.
|
|
87
|
-
* Use rawClient.streamGet() + parseSSE() instead.
|
|
88
|
-
*
|
|
89
|
-
* Kept for backward compatibility during migration.
|
|
90
|
-
*
|
|
91
|
-
* @deprecated Use rawClient.streamGet() + parseSSE() instead
|
|
92
|
-
*/
|
|
93
|
-
export async function* streamSSE(url, options = {}) {
|
|
94
|
-
const response = await fetch(url, {
|
|
95
|
-
method: "GET",
|
|
96
|
-
headers: {
|
|
97
|
-
Accept: "text/event-stream",
|
|
98
|
-
...options.headers,
|
|
99
|
-
},
|
|
100
|
-
signal: options.signal,
|
|
101
|
-
});
|
|
102
|
-
yield* parseSSE(response, { onOpen: options.onOpen });
|
|
103
|
-
}
|