@agent-os-sdk/client 0.9.26 → 0.9.28
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/dist/client/AgentOsClient.d.ts +141 -0
- package/dist/client/AgentOsClient.d.ts.map +1 -0
- package/{src/client/AgentOsClient.ts → dist/client/AgentOsClient.js} +61 -105
- package/dist/client/HttpRequestBuilder.d.ts +50 -0
- package/dist/client/HttpRequestBuilder.d.ts.map +1 -0
- package/{src/client/HttpRequestBuilder.ts → dist/client/HttpRequestBuilder.js} +9 -41
- package/{src/client/OperationContext.ts → dist/client/OperationContext.d.ts} +6 -9
- package/dist/client/OperationContext.d.ts.map +1 -0
- package/dist/client/OperationContext.js +13 -0
- package/dist/client/OperationContextProvider.d.ts +54 -0
- package/dist/client/OperationContextProvider.d.ts.map +1 -0
- package/{src/client/OperationContextProvider.ts → dist/client/OperationContextProvider.js} +17 -35
- package/{src/client/auth.ts → dist/client/auth.d.ts} +29 -65
- package/dist/client/auth.d.ts.map +1 -0
- package/dist/client/auth.js +38 -0
- package/dist/client/config.d.ts +49 -0
- package/dist/client/config.d.ts.map +1 -0
- package/{src/client/config.ts → dist/client/config.js} +5 -43
- package/dist/client/helpers.d.ts +63 -0
- package/dist/client/helpers.d.ts.map +1 -0
- package/{src/client/helpers.ts → dist/client/helpers.js} +9 -52
- package/dist/client/pagination.d.ts +105 -0
- package/dist/client/pagination.d.ts.map +1 -0
- package/{src/client/pagination.ts → dist/client/pagination.js} +15 -116
- package/dist/client/raw.d.ts +277 -0
- package/dist/client/raw.d.ts.map +1 -0
- package/dist/client/raw.js +337 -0
- package/dist/client/retry.d.ts +37 -0
- package/dist/client/retry.d.ts.map +1 -0
- package/{src/client/retry.ts → dist/client/retry.js} +13 -55
- package/dist/client/sanitize.d.ts +19 -0
- package/dist/client/sanitize.d.ts.map +1 -0
- package/{src/client/sanitize.ts → dist/client/sanitize.js} +4 -7
- package/dist/client/timeout.d.ts +26 -0
- package/dist/client/timeout.d.ts.map +1 -0
- package/{src/client/timeout.ts → dist/client/timeout.js} +10 -18
- package/dist/errors/factory.d.ts +22 -0
- package/dist/errors/factory.d.ts.map +1 -0
- package/{src/errors/factory.ts → dist/errors/factory.js} +18 -57
- package/dist/errors/index.d.ts +210 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/{src/errors/index.ts → dist/errors/index.js} +74 -156
- package/{src/generated/client.ts → dist/generated/client.d.ts} +5 -17
- package/dist/generated/client.d.ts.map +1 -0
- package/dist/generated/client.js +15 -0
- package/{src/generated/index.ts → dist/generated/index.d.ts} +1 -1
- package/dist/generated/index.d.ts.map +1 -0
- package/dist/generated/index.js +1 -0
- package/{src/generated/openapi.ts → dist/generated/openapi.d.ts} +1 -1
- package/dist/generated/openapi.d.ts.map +1 -0
- package/dist/generated/openapi.js +5 -0
- package/dist/index.d.ts +69 -0
- package/dist/index.d.ts.map +1 -0
- package/{src/index.ts → dist/index.js} +13 -63
- package/dist/modules/a2a.d.ts +48 -0
- package/dist/modules/a2a.d.ts.map +1 -0
- package/dist/modules/a2a.js +37 -0
- package/dist/modules/agents.d.ts +346 -0
- package/dist/modules/agents.d.ts.map +1 -0
- package/dist/modules/agents.js +296 -0
- package/dist/modules/apiTokens.d.ts +62 -0
- package/dist/modules/apiTokens.d.ts.map +1 -0
- package/dist/modules/apiTokens.js +56 -0
- package/dist/modules/approvals.d.ts +77 -0
- package/dist/modules/approvals.d.ts.map +1 -0
- package/dist/modules/approvals.js +91 -0
- package/dist/modules/audit.d.ts +78 -0
- package/dist/modules/audit.d.ts.map +1 -0
- package/{src/modules/audit.ts → dist/modules/audit.js} +23 -74
- package/{src/modules/auth.ts → dist/modules/auth.d.ts} +6 -11
- package/dist/modules/auth.d.ts.map +1 -0
- package/dist/modules/auth.js +22 -0
- package/dist/modules/builder.d.ts +242 -0
- package/dist/modules/builder.d.ts.map +1 -0
- package/dist/modules/builder.js +248 -0
- package/dist/modules/catalog.d.ts +142 -0
- package/dist/modules/catalog.d.ts.map +1 -0
- package/dist/modules/catalog.js +136 -0
- package/dist/modules/chatwoot.d.ts +59 -0
- package/dist/modules/chatwoot.d.ts.map +1 -0
- package/dist/modules/chatwoot.js +200 -0
- package/dist/modules/checkpoints.d.ts +62 -0
- package/dist/modules/checkpoints.d.ts.map +1 -0
- package/dist/modules/checkpoints.js +48 -0
- package/dist/modules/contracts.d.ts +48 -0
- package/dist/modules/contracts.d.ts.map +1 -0
- package/dist/modules/contracts.js +25 -0
- package/dist/modules/credentials.d.ts +105 -0
- package/dist/modules/credentials.d.ts.map +1 -0
- package/dist/modules/credentials.js +135 -0
- package/dist/modules/crons.d.ts +73 -0
- package/dist/modules/crons.d.ts.map +1 -0
- package/dist/modules/crons.js +67 -0
- package/dist/modules/datasets.d.ts +80 -0
- package/dist/modules/datasets.d.ts.map +1 -0
- package/dist/modules/datasets.js +91 -0
- package/{src/modules/evaluation.ts → dist/modules/evaluation.d.ts} +23 -109
- package/dist/modules/evaluation.d.ts.map +1 -0
- package/dist/modules/evaluation.js +108 -0
- package/dist/modules/files.d.ts +89 -0
- package/dist/modules/files.d.ts.map +1 -0
- package/dist/modules/files.js +133 -0
- package/dist/modules/graphs.d.ts +120 -0
- package/dist/modules/graphs.d.ts.map +1 -0
- package/dist/modules/graphs.js +69 -0
- package/{src/modules/improvements.ts → dist/modules/improvements.d.ts} +8 -27
- package/dist/modules/improvements.d.ts.map +1 -0
- package/dist/modules/improvements.js +27 -0
- package/dist/modules/info.d.ts +76 -0
- package/dist/modules/info.d.ts.map +1 -0
- package/{src/modules/info.ts → dist/modules/info.js} +16 -66
- package/dist/modules/knowledge.d.ts +91 -0
- package/dist/modules/knowledge.d.ts.map +1 -0
- package/dist/modules/knowledge.js +80 -0
- package/{src/modules/me.ts → dist/modules/me.d.ts} +7 -23
- package/dist/modules/me.d.ts.map +1 -0
- package/dist/modules/me.js +28 -0
- package/dist/modules/members.d.ts +124 -0
- package/dist/modules/members.d.ts.map +1 -0
- package/dist/modules/members.js +142 -0
- package/dist/modules/memberships.d.ts +25 -0
- package/dist/modules/memberships.d.ts.map +1 -0
- package/dist/modules/memberships.js +20 -0
- package/{src/modules/metaAgent.ts → dist/modules/metaAgent.d.ts} +8 -44
- package/dist/modules/metaAgent.d.ts.map +1 -0
- package/dist/modules/metaAgent.js +32 -0
- package/dist/modules/metrics.d.ts +20 -0
- package/dist/modules/metrics.d.ts.map +1 -0
- package/{src/modules/metrics.ts → dist/modules/metrics.js} +7 -14
- package/dist/modules/observability.d.ts +19 -0
- package/dist/modules/observability.d.ts.map +1 -0
- package/dist/modules/observability.js +14 -0
- package/dist/modules/playground.d.ts +42 -0
- package/dist/modules/playground.d.ts.map +1 -0
- package/dist/modules/playground.js +48 -0
- package/dist/modules/presets.d.ts +32 -0
- package/dist/modules/presets.d.ts.map +1 -0
- package/dist/modules/presets.js +199 -0
- package/dist/modules/prompts.d.ts +87 -0
- package/dist/modules/prompts.d.ts.map +1 -0
- package/dist/modules/prompts.js +87 -0
- package/dist/modules/roles.d.ts +64 -0
- package/dist/modules/roles.d.ts.map +1 -0
- package/dist/modules/roles.js +79 -0
- package/dist/modules/runs.d.ts +451 -0
- package/dist/modules/runs.d.ts.map +1 -0
- package/{src/modules/runs.ts → dist/modules/runs.js} +96 -438
- package/dist/modules/store.d.ts +37 -0
- package/dist/modules/store.d.ts.map +1 -0
- package/dist/modules/store.js +48 -0
- package/{src/modules/templates.ts → dist/modules/templates.d.ts} +8 -32
- package/dist/modules/templates.d.ts.map +1 -0
- package/dist/modules/templates.js +26 -0
- package/dist/modules/tenants.d.ts +49 -0
- package/dist/modules/tenants.d.ts.map +1 -0
- package/dist/modules/tenants.js +56 -0
- package/dist/modules/threads.d.ts +205 -0
- package/dist/modules/threads.d.ts.map +1 -0
- package/dist/modules/threads.js +225 -0
- package/dist/modules/tools.d.ts +62 -0
- package/dist/modules/tools.d.ts.map +1 -0
- package/dist/modules/tools.js +45 -0
- package/dist/modules/traces.d.ts +89 -0
- package/dist/modules/traces.d.ts.map +1 -0
- package/dist/modules/traces.js +65 -0
- package/{src/modules/triggers.ts → dist/modules/triggers.d.ts} +24 -153
- package/dist/modules/triggers.d.ts.map +1 -0
- package/dist/modules/triggers.js +176 -0
- package/{src/modules/usage.ts → dist/modules/usage.d.ts} +14 -46
- package/dist/modules/usage.d.ts.map +1 -0
- package/dist/modules/usage.js +43 -0
- package/dist/modules/vectorStores.d.ts +100 -0
- package/dist/modules/vectorStores.d.ts.map +1 -0
- package/dist/modules/vectorStores.js +159 -0
- package/dist/modules/workspaces.d.ts +138 -0
- package/dist/modules/workspaces.d.ts.map +1 -0
- package/dist/modules/workspaces.js +121 -0
- package/dist/sse/client.d.ts +140 -0
- package/dist/sse/client.d.ts.map +1 -0
- package/{src/sse/client.ts → dist/sse/client.js} +24 -100
- package/package.json +8 -15
- package/src/client/raw.ts +0 -609
- package/src/generated/swagger.json +0 -17014
- package/src/modules/a2a.ts +0 -64
- package/src/modules/agents.ts +0 -604
- package/src/modules/apiTokens.ts +0 -101
- package/src/modules/approvals.ts +0 -151
- package/src/modules/catalog.ts +0 -241
- package/src/modules/chatwoot.ts +0 -242
- package/src/modules/checkpoints.ts +0 -87
- package/src/modules/contracts.ts +0 -80
- package/src/modules/credentials.ts +0 -216
- package/src/modules/crons.ts +0 -115
- package/src/modules/datasets.ts +0 -142
- package/src/modules/files.ts +0 -208
- package/src/modules/members.ts +0 -199
- package/src/modules/memberships.ts +0 -42
- package/src/modules/observability.ts +0 -28
- package/src/modules/playground.ts +0 -68
- package/src/modules/presets.ts +0 -246
- package/src/modules/prompts.ts +0 -147
- package/src/modules/roles.ts +0 -112
- package/src/modules/store.ts +0 -65
- package/src/modules/tenants.ts +0 -79
- package/src/modules/threads.ts +0 -343
- package/src/modules/tools.ts +0 -91
- package/src/modules/traces.ts +0 -133
- package/src/modules/vectorStores.ts +0 -257
- package/src/modules/workspaces.ts +0 -216
|
@@ -0,0 +1,140 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/sse/client.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,QAAQ,CAAC,CAAC,GAAG,OAAO,IAAI;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,MAAM,CAAC,EAAE,WAAW,CAAC;CACxB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAuB,QAAQ,CAAC,CAAC,EAC7B,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;CAAE,GAClC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAiE7B;AAED;;;;;;;GAOG;AACH,wBAAuB,SAAS,CAAC,CAAC,EAC9B,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,UAAe,GACzB,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAW7B;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,WAAW,GACjB;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACnE;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GACzC;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACnD;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACrE;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAEnE;;;GAGG;AACH,MAAM,MAAM,cAAc,GACpB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAC3D;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAChE;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC"}
|
|
@@ -1,30 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Agent OS SDK - SSE Client
|
|
3
|
-
*
|
|
3
|
+
*
|
|
4
4
|
* Typed Server-Sent Events client for streaming endpoints.
|
|
5
|
-
*
|
|
5
|
+
*
|
|
6
6
|
* This module provides utilities for parsing SSE responses.
|
|
7
7
|
* The actual HTTP request should be made via rawClient.streamGet/streamPost.
|
|
8
8
|
*/
|
|
9
|
-
|
|
10
|
-
export type SSEEvent<T = unknown> = {
|
|
11
|
-
id?: string;
|
|
12
|
-
event: string;
|
|
13
|
-
data: T;
|
|
14
|
-
retry?: number;
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
export type SSEOptions = {
|
|
18
|
-
headers?: Record<string, string>;
|
|
19
|
-
onOpen?: () => void;
|
|
20
|
-
onError?: (error: Error) => void;
|
|
21
|
-
signal?: AbortSignal;
|
|
22
|
-
};
|
|
23
|
-
|
|
24
9
|
/**
|
|
25
10
|
* Parse SSE events from a Response object.
|
|
26
11
|
* Use this with rawClient.streamGet() or rawClient.streamPost().
|
|
27
|
-
*
|
|
12
|
+
*
|
|
28
13
|
* @example
|
|
29
14
|
* ```ts
|
|
30
15
|
* const response = await client.streamGet("/v1/api/runs/{runId}/events/stream", {
|
|
@@ -35,88 +20,77 @@ export type SSEOptions = {
|
|
|
35
20
|
* }
|
|
36
21
|
* ```
|
|
37
22
|
*/
|
|
38
|
-
export async function* parseSSE
|
|
39
|
-
response: Response,
|
|
40
|
-
options?: { onOpen?: () => void }
|
|
41
|
-
): AsyncGenerator<SSEEvent<T>> {
|
|
23
|
+
export async function* parseSSE(response, options) {
|
|
42
24
|
if (!response.ok) {
|
|
43
25
|
throw new Error(`SSE connection failed: ${response.status}`);
|
|
44
26
|
}
|
|
45
|
-
|
|
46
27
|
if (!response.body) {
|
|
47
28
|
throw new Error("No response body");
|
|
48
29
|
}
|
|
49
|
-
|
|
50
30
|
options?.onOpen?.();
|
|
51
|
-
|
|
52
31
|
const reader = response.body.getReader();
|
|
53
32
|
const decoder = new TextDecoder();
|
|
54
|
-
|
|
55
33
|
let buffer = "";
|
|
56
34
|
// State must be maintained across chunks
|
|
57
|
-
let currentEvent
|
|
58
|
-
|
|
35
|
+
let currentEvent = { event: "message" };
|
|
59
36
|
try {
|
|
60
37
|
while (true) {
|
|
61
38
|
const { done, value } = await reader.read();
|
|
62
|
-
if (done)
|
|
63
|
-
|
|
39
|
+
if (done)
|
|
40
|
+
break;
|
|
64
41
|
buffer += decoder.decode(value, { stream: true });
|
|
65
42
|
const lines = buffer.split("\n");
|
|
66
|
-
|
|
67
43
|
// Keep the last partial line in the buffer
|
|
68
44
|
buffer = lines.pop() ?? "";
|
|
69
|
-
|
|
70
45
|
for (const line of lines) {
|
|
71
46
|
const trimmed = line.trim();
|
|
72
|
-
|
|
73
47
|
if (trimmed === "") {
|
|
74
48
|
// Empty line triggers event dispatch if we have data
|
|
75
49
|
if (currentEvent.data !== undefined) {
|
|
76
|
-
yield currentEvent
|
|
50
|
+
yield currentEvent;
|
|
77
51
|
}
|
|
78
52
|
// Reset for next event
|
|
79
53
|
currentEvent = { event: "message" };
|
|
80
54
|
continue;
|
|
81
55
|
}
|
|
82
|
-
|
|
83
56
|
if (line.startsWith("event:")) {
|
|
84
57
|
currentEvent.event = line.slice(6).trim();
|
|
85
|
-
}
|
|
58
|
+
}
|
|
59
|
+
else if (line.startsWith("data:")) {
|
|
86
60
|
const dataStr = line.slice(5).trim();
|
|
87
61
|
try {
|
|
88
62
|
// Accumulate data if meaningful (though standard SSE usually has one data line per event,
|
|
89
63
|
// multiline data is possible but rare in this specific protocol.
|
|
90
64
|
// For simplicity and matching current backend, we overwrite or concatenation check could be stricter).
|
|
91
65
|
// Given strict JSON protocol, we assume valid info per data line or single data line.
|
|
92
|
-
currentEvent.data = JSON.parse(dataStr)
|
|
93
|
-
}
|
|
94
|
-
|
|
66
|
+
currentEvent.data = JSON.parse(dataStr);
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
currentEvent.data = dataStr;
|
|
95
70
|
}
|
|
96
|
-
}
|
|
71
|
+
}
|
|
72
|
+
else if (line.startsWith("id:")) {
|
|
97
73
|
currentEvent.id = line.slice(3).trim();
|
|
98
|
-
}
|
|
74
|
+
}
|
|
75
|
+
else if (line.startsWith("retry:")) {
|
|
99
76
|
currentEvent.retry = parseInt(line.slice(6).trim(), 10);
|
|
100
77
|
}
|
|
101
78
|
}
|
|
102
79
|
}
|
|
103
|
-
}
|
|
80
|
+
}
|
|
81
|
+
finally {
|
|
104
82
|
reader.releaseLock();
|
|
105
83
|
}
|
|
106
84
|
}
|
|
107
|
-
|
|
108
85
|
/**
|
|
109
86
|
* Legacy streamSSE function - DEPRECATED.
|
|
110
87
|
* Use rawClient.streamGet() + parseSSE() instead.
|
|
111
|
-
*
|
|
88
|
+
*
|
|
112
89
|
* Kept for backward compatibility during migration.
|
|
113
|
-
*
|
|
90
|
+
*
|
|
114
91
|
* @deprecated Use rawClient.streamGet() + parseSSE() instead
|
|
115
92
|
*/
|
|
116
|
-
export async function* streamSSE
|
|
117
|
-
url: string,
|
|
118
|
-
options: SSEOptions = {}
|
|
119
|
-
): AsyncGenerator<SSEEvent<T>> {
|
|
93
|
+
export async function* streamSSE(url, options = {}) {
|
|
120
94
|
const response = await fetch(url, {
|
|
121
95
|
method: "GET",
|
|
122
96
|
headers: {
|
|
@@ -125,55 +99,5 @@ export async function* streamSSE<T>(
|
|
|
125
99
|
},
|
|
126
100
|
signal: options.signal,
|
|
127
101
|
});
|
|
128
|
-
|
|
129
|
-
yield* parseSSE<T>(response, { onOpen: options.onOpen });
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
/**
|
|
133
|
-
* Run event from the execution ledger (Wave 2.3).
|
|
134
|
-
* This is the actual payload sent within SSE `run_event` messages.
|
|
135
|
-
*/
|
|
136
|
-
export interface RunEventDto {
|
|
137
|
-
id: string;
|
|
138
|
-
seq: number;
|
|
139
|
-
type: string;
|
|
140
|
-
timestamp: string;
|
|
141
|
-
attempt_id: string;
|
|
142
|
-
payload: Record<string, unknown> | null;
|
|
143
|
-
truncated?: boolean;
|
|
102
|
+
yield* parseSSE(response, { onOpen: options.onOpen });
|
|
144
103
|
}
|
|
145
|
-
|
|
146
|
-
/**
|
|
147
|
-
* SSE Event types for Run streaming (V1.2 Cinema Mode).
|
|
148
|
-
*
|
|
149
|
-
* The server sends these event types:
|
|
150
|
-
* - `connected`: Initial connection acknowledgment
|
|
151
|
-
* - `run_event`: Individual run events from the ledger (with seq for resume)
|
|
152
|
-
* - `heartbeat`: Keepalive every 15s
|
|
153
|
-
* - `close`: Run reached terminal state (completed/failed/canceled)
|
|
154
|
-
* - `error`: Stream error occurred
|
|
155
|
-
*
|
|
156
|
-
* Each event has an `id` field containing the seq number for Last-Event-ID resume support.
|
|
157
|
-
*/
|
|
158
|
-
export type RunSSEEvent =
|
|
159
|
-
| { event: "connected"; data: { run_id: string; start_seq: number } }
|
|
160
|
-
| { event: "run_event"; data: RunEventDto }
|
|
161
|
-
| { event: "heartbeat"; data: { timestamp: string } }
|
|
162
|
-
| { event: "close"; data: { final_status: string; final_seq: number } }
|
|
163
|
-
| { event: "error"; data: { code?: string; message: string } };
|
|
164
|
-
|
|
165
|
-
/**
|
|
166
|
-
* @deprecated Use RunSSEEvent for typed SSE events, or RunEventDto for event payloads.
|
|
167
|
-
* Kept for backward compatibility.
|
|
168
|
-
*/
|
|
169
|
-
export type RunStreamEvent =
|
|
170
|
-
| { type: "run_started"; run_id: string; status: string }
|
|
171
|
-
| { type: "node_started"; node_name: string; timestamp: string }
|
|
172
|
-
| { type: "node_completed"; node_name: string; output: unknown }
|
|
173
|
-
| { type: "tool_call"; tool_name: string; args: unknown }
|
|
174
|
-
| { type: "tool_result"; tool_name: string; result: unknown }
|
|
175
|
-
| { type: "checkpoint"; checkpoint_id: string; step_name: string }
|
|
176
|
-
| { type: "waiting_for_human"; prompt: string }
|
|
177
|
-
| { type: "run_completed"; output: unknown }
|
|
178
|
-
| { type: "run_failed"; error: unknown }
|
|
179
|
-
| { type: "heartbeat"; timestamp: string };
|
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-os-sdk/client",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.28",
|
|
4
4
|
"description": "Official TypeScript SDK for Agent OS platform",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"main": "./index.js",
|
|
7
|
-
"module": "./index.js",
|
|
8
|
-
"types": "./index.d.ts",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"module": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
9
|
"exports": {
|
|
10
10
|
".": {
|
|
11
|
-
"import": "./index.js",
|
|
12
|
-
"types": "./index.d.ts"
|
|
11
|
+
"import": "./dist/index.js",
|
|
12
|
+
"types": "./dist/index.d.ts"
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
15
|
"scripts": {
|
|
@@ -47,14 +47,7 @@
|
|
|
47
47
|
"vitest": "^4.0.18"
|
|
48
48
|
},
|
|
49
49
|
"files": [
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"generated",
|
|
53
|
-
"index.d.ts",
|
|
54
|
-
"index.d.ts.map",
|
|
55
|
-
"index.js",
|
|
56
|
-
"modules",
|
|
57
|
-
"src",
|
|
58
|
-
"sse"
|
|
50
|
+
"dist",
|
|
51
|
+
"README.md"
|
|
59
52
|
]
|
|
60
53
|
}
|