@agent-os-sdk/client 0.9.26 → 0.9.27
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 +75 -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,248 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Builder Module - Meta-Agent for Agent Building
|
|
3
|
+
*
|
|
4
|
+
* Connects to the Control Plane's builder endpoint which proxies to the
|
|
5
|
+
* Data Plane's meta-agent for AI-assisted agent creation.
|
|
6
|
+
* Uses SSE streaming for real-time responses and graph updates.
|
|
7
|
+
*
|
|
8
|
+
* Flow: Frontend → CP:5000/v1/api/builder/{agentId}/chat → DP:8001/v1/internal/builder/{agentId}/chat
|
|
9
|
+
*
|
|
10
|
+
* ALL HTTP goes through rawClient - no direct fetch calls.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* const client = new AgentOsClient({ ... })
|
|
15
|
+
*
|
|
16
|
+
* // SSE streaming chat
|
|
17
|
+
* for await (const event of client.builder.chat(agentId, {
|
|
18
|
+
* message: "Adicione um nó de pesquisa web",
|
|
19
|
+
* current_graph_spec: { nodes: [...], edges: [...] }
|
|
20
|
+
* })) {
|
|
21
|
+
* if (event.type === 'message') console.log(event.data.text)
|
|
22
|
+
* if (event.type === 'graph_update') applyAction(event.data)
|
|
23
|
+
* }
|
|
24
|
+
*
|
|
25
|
+
* // Sync chat (no streaming)
|
|
26
|
+
* const result = await client.builder.chatSync(agentId, { message: "Mude as instruções" })
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export class BuilderModule {
|
|
30
|
+
client;
|
|
31
|
+
constructor(client) {
|
|
32
|
+
this.client = client;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Stream chat with meta-agent (SSE).
|
|
36
|
+
* Returns async generator of events.
|
|
37
|
+
*
|
|
38
|
+
* Uses rawClient.streamPost() - headers resolved asynchronously.
|
|
39
|
+
*/
|
|
40
|
+
async *chat(agentId, request, options) {
|
|
41
|
+
// Use rawClient.streamPost() - ALL auth headers resolved automatically
|
|
42
|
+
const response = await this.client.streamPost("/v1/api/builder/{agentId}/chat", {
|
|
43
|
+
params: { path: { agentId } },
|
|
44
|
+
body: request,
|
|
45
|
+
signal: options?.signal,
|
|
46
|
+
});
|
|
47
|
+
if (!response.ok) {
|
|
48
|
+
const errorText = await response.text();
|
|
49
|
+
throw new Error(`Builder chat failed: ${response.status} - ${errorText}`);
|
|
50
|
+
}
|
|
51
|
+
if (!response.body) {
|
|
52
|
+
throw new Error("No response body");
|
|
53
|
+
}
|
|
54
|
+
options?.onOpen?.();
|
|
55
|
+
const reader = response.body.getReader();
|
|
56
|
+
const decoder = new TextDecoder();
|
|
57
|
+
let buffer = "";
|
|
58
|
+
try {
|
|
59
|
+
while (true) {
|
|
60
|
+
const { done, value } = await reader.read();
|
|
61
|
+
if (done)
|
|
62
|
+
break;
|
|
63
|
+
buffer += decoder.decode(value, { stream: true });
|
|
64
|
+
const lines = buffer.split("\n");
|
|
65
|
+
buffer = lines.pop() ?? "";
|
|
66
|
+
let eventType = "message";
|
|
67
|
+
let eventData = "";
|
|
68
|
+
for (const line of lines) {
|
|
69
|
+
if (line.startsWith("event:")) {
|
|
70
|
+
eventType = line.slice(6).trim();
|
|
71
|
+
}
|
|
72
|
+
else if (line.startsWith("data:")) {
|
|
73
|
+
eventData = line.slice(5).trim();
|
|
74
|
+
}
|
|
75
|
+
else if (line === "" && eventData) {
|
|
76
|
+
try {
|
|
77
|
+
const parsed = JSON.parse(eventData);
|
|
78
|
+
yield { type: eventType, data: parsed };
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
// Skip invalid JSON
|
|
82
|
+
}
|
|
83
|
+
eventData = "";
|
|
84
|
+
eventType = "message";
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
finally {
|
|
90
|
+
reader.releaseLock();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Sync chat with meta-agent (no streaming).
|
|
95
|
+
*
|
|
96
|
+
* Uses rawClient.POST() - headers resolved asynchronously.
|
|
97
|
+
*/
|
|
98
|
+
async chatSync(agentId, request) {
|
|
99
|
+
const { data, error } = await this.client.POST("/v1/api/builder/{agentId}/chat/sync", {
|
|
100
|
+
params: { path: { agentId } },
|
|
101
|
+
body: request,
|
|
102
|
+
});
|
|
103
|
+
if (error) {
|
|
104
|
+
throw new Error(`Builder chat failed: ${error.code} - ${error.message}`);
|
|
105
|
+
}
|
|
106
|
+
return data;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Convenience method: chat and collect all events.
|
|
110
|
+
*/
|
|
111
|
+
async chatCollect(agentId, request) {
|
|
112
|
+
let fullResponse = "";
|
|
113
|
+
let lastGraphSpec;
|
|
114
|
+
let allHints = [];
|
|
115
|
+
const allErrors = [];
|
|
116
|
+
let threadId = request.thread_id ?? "";
|
|
117
|
+
let isValid = true;
|
|
118
|
+
for await (const event of this.chat(agentId, request)) {
|
|
119
|
+
if (event.type === "message") {
|
|
120
|
+
fullResponse += event.data.text;
|
|
121
|
+
}
|
|
122
|
+
else if (event.type === "graph_update") {
|
|
123
|
+
if ('graph_spec' in event.data) {
|
|
124
|
+
lastGraphSpec = event.data.graph_spec;
|
|
125
|
+
if (event.data.hints) {
|
|
126
|
+
allHints.push(...event.data.hints);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
else if (event.type === "validation") {
|
|
131
|
+
isValid = event.data.valid;
|
|
132
|
+
if (event.data.errors) {
|
|
133
|
+
allErrors.push(...event.data.errors);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
else if (event.type === "done") {
|
|
137
|
+
threadId = event.data.thread_id;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return {
|
|
141
|
+
response: fullResponse,
|
|
142
|
+
graph_spec: lastGraphSpec,
|
|
143
|
+
hints: allHints,
|
|
144
|
+
valid: isValid,
|
|
145
|
+
errors: allErrors,
|
|
146
|
+
thread_id: threadId,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
// ============================================
|
|
150
|
+
// META-CHAT V2 (PATCH-OPS ARCHITECTURE)
|
|
151
|
+
// ============================================
|
|
152
|
+
/**
|
|
153
|
+
* Stream meta-chat with patch-ops architecture (SSE).
|
|
154
|
+
* Returns GraphPatch proposals instead of full graph specs.
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* ```ts
|
|
158
|
+
* for await (const event of client.builder.metaChat(agentId, {
|
|
159
|
+
* instruction: "Add a log node after the main agent"
|
|
160
|
+
* })) {
|
|
161
|
+
* if (event.type === 'patch.proposed') {
|
|
162
|
+
* const patch = event.data;
|
|
163
|
+
* console.log(`Proposed ${patch.ops.length} operations`);
|
|
164
|
+
* }
|
|
165
|
+
* }
|
|
166
|
+
* ```
|
|
167
|
+
*/
|
|
168
|
+
async *metaChat(agentId, request, options) {
|
|
169
|
+
const response = await this.client.streamPost("/v1/builder/{agentId}/meta-chat", {
|
|
170
|
+
params: { path: { agentId } },
|
|
171
|
+
body: request,
|
|
172
|
+
signal: options?.signal,
|
|
173
|
+
});
|
|
174
|
+
if (!response.ok) {
|
|
175
|
+
const errorText = await response.text();
|
|
176
|
+
throw new Error(`Meta-chat failed: ${response.status} - ${errorText}`);
|
|
177
|
+
}
|
|
178
|
+
if (!response.body) {
|
|
179
|
+
throw new Error("No response body");
|
|
180
|
+
}
|
|
181
|
+
options?.onOpen?.();
|
|
182
|
+
const reader = response.body.getReader();
|
|
183
|
+
const decoder = new TextDecoder();
|
|
184
|
+
let buffer = "";
|
|
185
|
+
try {
|
|
186
|
+
while (true) {
|
|
187
|
+
const { done, value } = await reader.read();
|
|
188
|
+
if (done)
|
|
189
|
+
break;
|
|
190
|
+
buffer += decoder.decode(value, { stream: true });
|
|
191
|
+
const lines = buffer.split("\n");
|
|
192
|
+
buffer = lines.pop() ?? "";
|
|
193
|
+
let eventType = "message";
|
|
194
|
+
let eventData = "";
|
|
195
|
+
for (const line of lines) {
|
|
196
|
+
if (line.startsWith("event:")) {
|
|
197
|
+
eventType = line.slice(6).trim();
|
|
198
|
+
}
|
|
199
|
+
else if (line.startsWith("data:")) {
|
|
200
|
+
eventData = line.slice(5).trim();
|
|
201
|
+
}
|
|
202
|
+
else if (line === "" && eventData) {
|
|
203
|
+
try {
|
|
204
|
+
const parsed = JSON.parse(eventData);
|
|
205
|
+
yield { type: eventType, data: parsed };
|
|
206
|
+
}
|
|
207
|
+
catch {
|
|
208
|
+
// Skip invalid JSON
|
|
209
|
+
}
|
|
210
|
+
eventData = "";
|
|
211
|
+
eventType = "message";
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
finally {
|
|
217
|
+
reader.releaseLock();
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Meta-chat and collect the proposed patch.
|
|
222
|
+
*/
|
|
223
|
+
async metaChatCollect(agentId, request) {
|
|
224
|
+
let patch = null;
|
|
225
|
+
let isValid = true;
|
|
226
|
+
const errors = [];
|
|
227
|
+
let message = "";
|
|
228
|
+
for await (const event of this.metaChat(agentId, request)) {
|
|
229
|
+
if (event.type === "assistant.delta") {
|
|
230
|
+
message += event.data.text;
|
|
231
|
+
}
|
|
232
|
+
else if (event.type === "patch.proposed") {
|
|
233
|
+
patch = event.data;
|
|
234
|
+
}
|
|
235
|
+
else if (event.type === "patch.validation") {
|
|
236
|
+
isValid = event.data.valid;
|
|
237
|
+
errors.push(...event.data.errors);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
return {
|
|
241
|
+
patch,
|
|
242
|
+
applied_spec: null, // Frontend should apply patch locally
|
|
243
|
+
valid: isValid,
|
|
244
|
+
errors,
|
|
245
|
+
message,
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Catalog Module - Canonical Catalog Access
|
|
3
|
+
*
|
|
4
|
+
* Provides access to versioned catalogs:
|
|
5
|
+
* - Node Catalog (node types, config schemas)
|
|
6
|
+
* - Tool Catalog (tool definitions)
|
|
7
|
+
* - Trigger Templates (trigger configurations)
|
|
8
|
+
*
|
|
9
|
+
* All responses include:
|
|
10
|
+
* - ETag header for caching
|
|
11
|
+
* - X-Content-Hash header for integrity verification
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* const client = new AgentOsClient({ ... })
|
|
16
|
+
*
|
|
17
|
+
* // Get all catalogs
|
|
18
|
+
* const nodes = await unwrap(client.catalog.getNodes())
|
|
19
|
+
* const tools = await unwrap(client.catalog.getTools())
|
|
20
|
+
* const triggers = await unwrap(client.catalog.getTriggers())
|
|
21
|
+
*
|
|
22
|
+
* // Use returned metadata for caching
|
|
23
|
+
* console.log(nodes.etag, nodes.contentHash)
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
import type { RawClient, APIResponse } from "../client/raw.js";
|
|
27
|
+
export interface CatalogVersions {
|
|
28
|
+
nodes: string;
|
|
29
|
+
tools: string;
|
|
30
|
+
triggers: string;
|
|
31
|
+
}
|
|
32
|
+
export interface CatalogMetadata {
|
|
33
|
+
version: string;
|
|
34
|
+
etag?: string;
|
|
35
|
+
contentHash?: string;
|
|
36
|
+
}
|
|
37
|
+
export interface PaletteCatalogResponse extends CatalogMetadata {
|
|
38
|
+
nodes: NodeDefinition[];
|
|
39
|
+
tools: ToolDefinition[];
|
|
40
|
+
triggers: TriggerTemplate[];
|
|
41
|
+
presets: PresetDefinition[];
|
|
42
|
+
}
|
|
43
|
+
export interface NodeCatalogResponse extends CatalogMetadata {
|
|
44
|
+
nodes: NodeDefinition[];
|
|
45
|
+
}
|
|
46
|
+
export interface NodeDefinition {
|
|
47
|
+
capability_ref: string;
|
|
48
|
+
capability_version: string;
|
|
49
|
+
execution_binding: string;
|
|
50
|
+
required_credentials: string[];
|
|
51
|
+
kind: string;
|
|
52
|
+
title: string;
|
|
53
|
+
category: string;
|
|
54
|
+
description?: string;
|
|
55
|
+
inputs?: string[];
|
|
56
|
+
outputs?: string[];
|
|
57
|
+
config_schema?: Record<string, unknown>;
|
|
58
|
+
default_config?: Record<string, unknown>;
|
|
59
|
+
}
|
|
60
|
+
export interface ToolCatalogResponse extends CatalogMetadata {
|
|
61
|
+
tools: ToolDefinition[];
|
|
62
|
+
}
|
|
63
|
+
export interface ToolDefinition {
|
|
64
|
+
capability_ref: string;
|
|
65
|
+
capability_version: string;
|
|
66
|
+
execution_binding: string;
|
|
67
|
+
slug?: string;
|
|
68
|
+
required_credentials: string[];
|
|
69
|
+
name: string;
|
|
70
|
+
description?: string;
|
|
71
|
+
type: string;
|
|
72
|
+
version?: number;
|
|
73
|
+
input_schema?: Record<string, unknown>;
|
|
74
|
+
output_schema?: Record<string, unknown>;
|
|
75
|
+
}
|
|
76
|
+
export interface TriggerCatalogResponse extends CatalogMetadata {
|
|
77
|
+
templates: TriggerTemplate[];
|
|
78
|
+
}
|
|
79
|
+
export interface TriggerTemplate {
|
|
80
|
+
capability_ref: string;
|
|
81
|
+
capability_version: string;
|
|
82
|
+
slug?: string;
|
|
83
|
+
kind: string;
|
|
84
|
+
description?: string;
|
|
85
|
+
run_input_schema?: Record<string, unknown>;
|
|
86
|
+
}
|
|
87
|
+
export interface PresetCatalogResponse extends CatalogMetadata {
|
|
88
|
+
presets: PresetDefinition[];
|
|
89
|
+
}
|
|
90
|
+
export interface PresetDefinition {
|
|
91
|
+
preset_slug: string;
|
|
92
|
+
base_capability_ref: string;
|
|
93
|
+
title: string;
|
|
94
|
+
description?: string;
|
|
95
|
+
default_config?: Record<string, unknown>;
|
|
96
|
+
locked_fields?: string[];
|
|
97
|
+
ui_variant?: string;
|
|
98
|
+
}
|
|
99
|
+
export declare class CatalogModule {
|
|
100
|
+
private client;
|
|
101
|
+
constructor(client: RawClient);
|
|
102
|
+
getPalette(version?: string): Promise<APIResponse<PaletteCatalogResponse>>;
|
|
103
|
+
/**
|
|
104
|
+
* Get the Node Catalog.
|
|
105
|
+
* Returns node types with their configuration schemas.
|
|
106
|
+
*/
|
|
107
|
+
getNodes(version?: string): Promise<APIResponse<NodeCatalogResponse>>;
|
|
108
|
+
/**
|
|
109
|
+
* Get the Tool Catalog.
|
|
110
|
+
* Returns tool definitions with input/output schemas.
|
|
111
|
+
*/
|
|
112
|
+
getTools(version?: string): Promise<APIResponse<ToolCatalogResponse>>;
|
|
113
|
+
/**
|
|
114
|
+
* Get the Trigger Templates Catalog.
|
|
115
|
+
* Returns trigger configurations and input schemas.
|
|
116
|
+
*/
|
|
117
|
+
getTriggers(version?: string): Promise<APIResponse<TriggerCatalogResponse>>;
|
|
118
|
+
/**
|
|
119
|
+
* Get the Node Presets Catalog.
|
|
120
|
+
* Returns pre-configured node variants with locked fields.
|
|
121
|
+
*/
|
|
122
|
+
getPresets(version?: string): Promise<APIResponse<PresetCatalogResponse>>;
|
|
123
|
+
/**
|
|
124
|
+
* Get all catalogs at once for convenience.
|
|
125
|
+
* Returns combined catalog data with versions.
|
|
126
|
+
*/
|
|
127
|
+
getAll(version?: string): Promise<{
|
|
128
|
+
data?: {
|
|
129
|
+
nodes: NodeCatalogResponse;
|
|
130
|
+
tools: ToolCatalogResponse;
|
|
131
|
+
triggers: TriggerCatalogResponse;
|
|
132
|
+
presets: PresetCatalogResponse;
|
|
133
|
+
catalog_versions: CatalogVersions;
|
|
134
|
+
};
|
|
135
|
+
error?: {
|
|
136
|
+
code: string;
|
|
137
|
+
message: string;
|
|
138
|
+
details?: unknown;
|
|
139
|
+
};
|
|
140
|
+
}>;
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=catalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/modules/catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Catalog Module - Canonical Catalog Access
|
|
3
|
+
*
|
|
4
|
+
* Provides access to versioned catalogs:
|
|
5
|
+
* - Node Catalog (node types, config schemas)
|
|
6
|
+
* - Tool Catalog (tool definitions)
|
|
7
|
+
* - Trigger Templates (trigger configurations)
|
|
8
|
+
*
|
|
9
|
+
* All responses include:
|
|
10
|
+
* - ETag header for caching
|
|
11
|
+
* - X-Content-Hash header for integrity verification
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* const client = new AgentOsClient({ ... })
|
|
16
|
+
*
|
|
17
|
+
* // Get all catalogs
|
|
18
|
+
* const nodes = await unwrap(client.catalog.getNodes())
|
|
19
|
+
* const tools = await unwrap(client.catalog.getTools())
|
|
20
|
+
* const triggers = await unwrap(client.catalog.getTriggers())
|
|
21
|
+
*
|
|
22
|
+
* // Use returned metadata for caching
|
|
23
|
+
* console.log(nodes.etag, nodes.contentHash)
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export class CatalogModule {
|
|
27
|
+
client;
|
|
28
|
+
constructor(client) {
|
|
29
|
+
this.client = client;
|
|
30
|
+
}
|
|
31
|
+
async getPalette(version = "1") {
|
|
32
|
+
const [nodesRes, toolsRes, triggersRes, presetsRes] = await Promise.all([
|
|
33
|
+
this.getNodes(version),
|
|
34
|
+
this.getTools(version),
|
|
35
|
+
this.getTriggers(version),
|
|
36
|
+
this.getPresets(version),
|
|
37
|
+
]);
|
|
38
|
+
const fallbackResponse = nodesRes.response || toolsRes.response || triggersRes.response || presetsRes.response;
|
|
39
|
+
if (nodesRes.error || toolsRes.error || triggersRes.error || presetsRes.error) {
|
|
40
|
+
return {
|
|
41
|
+
data: undefined,
|
|
42
|
+
error: nodesRes.error ||
|
|
43
|
+
toolsRes.error ||
|
|
44
|
+
triggersRes.error ||
|
|
45
|
+
presetsRes.error || { code: "NOT_FOUND", message: "Palette catalog is unavailable" },
|
|
46
|
+
response: fallbackResponse,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
data: {
|
|
51
|
+
version,
|
|
52
|
+
nodes: nodesRes.data?.nodes || [],
|
|
53
|
+
tools: toolsRes.data?.tools || [],
|
|
54
|
+
triggers: triggersRes.data?.templates || [],
|
|
55
|
+
presets: presetsRes.data?.presets || [],
|
|
56
|
+
},
|
|
57
|
+
error: undefined,
|
|
58
|
+
response: fallbackResponse,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get the Node Catalog.
|
|
63
|
+
* Returns node types with their configuration schemas.
|
|
64
|
+
*/
|
|
65
|
+
async getNodes(version = "1") {
|
|
66
|
+
const response = await this.client.GET("/v1/api/catalog/nodes", {
|
|
67
|
+
params: { query: { version } },
|
|
68
|
+
});
|
|
69
|
+
// Extract headers for metadata (if available from raw response)
|
|
70
|
+
return response;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Get the Tool Catalog.
|
|
74
|
+
* Returns tool definitions with input/output schemas.
|
|
75
|
+
*/
|
|
76
|
+
async getTools(version = "1") {
|
|
77
|
+
const response = await this.client.GET("/v1/api/tools/definitions", {
|
|
78
|
+
params: { query: { version } },
|
|
79
|
+
});
|
|
80
|
+
return response;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Get the Trigger Templates Catalog.
|
|
84
|
+
* Returns trigger configurations and input schemas.
|
|
85
|
+
*/
|
|
86
|
+
async getTriggers(version = "1") {
|
|
87
|
+
const response = await this.client.GET("/v1/api/triggers/templates", {
|
|
88
|
+
params: { query: { version } },
|
|
89
|
+
});
|
|
90
|
+
return response;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Get the Node Presets Catalog.
|
|
94
|
+
* Returns pre-configured node variants with locked fields.
|
|
95
|
+
*/
|
|
96
|
+
async getPresets(version = "1") {
|
|
97
|
+
const response = await this.client.GET("/v1/api/catalog/presets", {
|
|
98
|
+
params: { query: { version } },
|
|
99
|
+
});
|
|
100
|
+
return response;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Get all catalogs at once for convenience.
|
|
104
|
+
* Returns combined catalog data with versions.
|
|
105
|
+
*/
|
|
106
|
+
async getAll(version = "1") {
|
|
107
|
+
const [nodesRes, toolsRes, triggersRes, presetsRes] = await Promise.all([
|
|
108
|
+
this.getNodes(version),
|
|
109
|
+
this.getTools(version),
|
|
110
|
+
this.getTriggers(version),
|
|
111
|
+
this.getPresets(version),
|
|
112
|
+
]);
|
|
113
|
+
if (nodesRes.error)
|
|
114
|
+
return { data: undefined, error: nodesRes.error };
|
|
115
|
+
if (toolsRes.error)
|
|
116
|
+
return { data: undefined, error: toolsRes.error };
|
|
117
|
+
if (triggersRes.error)
|
|
118
|
+
return { data: undefined, error: triggersRes.error };
|
|
119
|
+
if (presetsRes.error)
|
|
120
|
+
return { data: undefined, error: presetsRes.error };
|
|
121
|
+
return {
|
|
122
|
+
data: {
|
|
123
|
+
nodes: nodesRes.data,
|
|
124
|
+
tools: toolsRes.data,
|
|
125
|
+
triggers: triggersRes.data,
|
|
126
|
+
presets: presetsRes.data,
|
|
127
|
+
catalog_versions: {
|
|
128
|
+
nodes: version,
|
|
129
|
+
tools: version,
|
|
130
|
+
triggers: version,
|
|
131
|
+
},
|
|
132
|
+
},
|
|
133
|
+
error: undefined,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chatwoot Module
|
|
3
|
+
*/
|
|
4
|
+
import type { APIResponse, RawClient } from "../client/raw.js";
|
|
5
|
+
export interface ChatwootInboxUrlResponse {
|
|
6
|
+
url: string;
|
|
7
|
+
}
|
|
8
|
+
export interface ChatwootConfig {
|
|
9
|
+
baseUrl: string;
|
|
10
|
+
accountId: string;
|
|
11
|
+
apiAccessToken: string;
|
|
12
|
+
}
|
|
13
|
+
export declare class ChatwootModule {
|
|
14
|
+
private client;
|
|
15
|
+
private headers;
|
|
16
|
+
constructor(client: RawClient, headers: () => Record<string, string>);
|
|
17
|
+
/**
|
|
18
|
+
* Internal helper to resolve Chatwoot configuration from AgentOS credentials
|
|
19
|
+
*/
|
|
20
|
+
private _getChatwootConfig;
|
|
21
|
+
/**
|
|
22
|
+
* Direct call to Chatwoot API
|
|
23
|
+
*/
|
|
24
|
+
private _chatwootRequest;
|
|
25
|
+
/**
|
|
26
|
+
* Get the inbox URL for a specific credential.
|
|
27
|
+
* Use this to open the Chatwoot inbox directly.
|
|
28
|
+
*/
|
|
29
|
+
getInboxUrl(credentialId: string): Promise<APIResponse<ChatwootInboxUrlResponse>>;
|
|
30
|
+
/**
|
|
31
|
+
* List all inboxes
|
|
32
|
+
*/
|
|
33
|
+
listInboxes(credentialId: string): Promise<APIResponse<any[]>>;
|
|
34
|
+
/**
|
|
35
|
+
* Create a new inbox
|
|
36
|
+
*/
|
|
37
|
+
createInbox(credentialId: string, data: any): Promise<APIResponse<any>>;
|
|
38
|
+
/**
|
|
39
|
+
* Get a specific inbox
|
|
40
|
+
*/
|
|
41
|
+
getInbox(credentialId: string, inboxId: string | number): Promise<APIResponse<any>>;
|
|
42
|
+
/**
|
|
43
|
+
* Update an inbox
|
|
44
|
+
*/
|
|
45
|
+
updateInbox(credentialId: string, inboxId: string | number, data: any): Promise<APIResponse<any>>;
|
|
46
|
+
/**
|
|
47
|
+
* Delete an inbox
|
|
48
|
+
*/
|
|
49
|
+
deleteInbox(credentialId: string, inboxId: string | number): Promise<APIResponse<any>>;
|
|
50
|
+
/**
|
|
51
|
+
* Get inbox metrics
|
|
52
|
+
*/
|
|
53
|
+
getInboxMetrics(credentialId: string, inboxId: string | number): Promise<APIResponse<any>>;
|
|
54
|
+
/**
|
|
55
|
+
* Get the inbox URL for a specific agent.
|
|
56
|
+
*/
|
|
57
|
+
getAgentInboxUrl(agentId: string): Promise<APIResponse<ChatwootInboxUrlResponse>>;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=chatwoot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chatwoot.d.ts","sourceRoot":"","sources":["../../src/modules/chatwoot.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE/D,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,cAAc;IAEvB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;gBADP,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAG/C;;OAEG;YACW,kBAAkB;IA4DhC;;OAEG;YACW,gBAAgB;IAmC9B;;;OAGG;IACG,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;IAgBvF;;OAEG;IACG,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;IAcpE;;OAEG;IACG,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAO7E;;OAEG;IACG,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAOzF;;OAEG;IACG,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAOvG;;OAEG;IACG,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAO5F;;OAEG;IACG,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAOhG;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;CA4BxF"}
|