@agent-os-sdk/client 0.7.8 → 0.7.10
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/modules/builder.d.ts +89 -0
- package/dist/modules/builder.d.ts.map +1 -1
- package/dist/modules/builder.js +99 -0
- package/dist/modules/checkpoints.d.ts +14 -5
- package/dist/modules/checkpoints.d.ts.map +1 -1
- package/dist/modules/checkpoints.js +18 -9
- package/dist/modules/triggers.d.ts +36 -1
- package/dist/modules/triggers.d.ts.map +1 -1
- package/dist/modules/triggers.js +31 -2
- package/package.json +2 -2
- package/src/modules/builder.ts +179 -0
- package/src/modules/checkpoints.ts +20 -11
- package/src/modules/triggers.ts +62 -2
|
@@ -133,6 +133,74 @@ export type BuilderChatResponse = {
|
|
|
133
133
|
thread_id: string;
|
|
134
134
|
hints: HintModel[];
|
|
135
135
|
};
|
|
136
|
+
/** Supported patch operation types */
|
|
137
|
+
export type OpType = "add_node" | "remove_node" | "update_node" | "add_edge" | "remove_edge" | "set_entrypoint" | "rename_node";
|
|
138
|
+
/** A single graph modification operation */
|
|
139
|
+
export type PatchOp = {
|
|
140
|
+
op: OpType;
|
|
141
|
+
node_id?: string;
|
|
142
|
+
kind?: string;
|
|
143
|
+
label?: string;
|
|
144
|
+
data?: Record<string, unknown>;
|
|
145
|
+
set?: Record<string, unknown>;
|
|
146
|
+
source?: string;
|
|
147
|
+
target?: string;
|
|
148
|
+
from?: string;
|
|
149
|
+
to?: string;
|
|
150
|
+
entrypoint?: string;
|
|
151
|
+
};
|
|
152
|
+
/** A collection of patch operations with deterministic ID */
|
|
153
|
+
export type GraphPatch = {
|
|
154
|
+
patch_id: string;
|
|
155
|
+
ops: PatchOp[];
|
|
156
|
+
description?: string;
|
|
157
|
+
};
|
|
158
|
+
/** Validation error from applying patch */
|
|
159
|
+
export type PatchValidationError = {
|
|
160
|
+
code: string;
|
|
161
|
+
message: string;
|
|
162
|
+
node_id?: string;
|
|
163
|
+
path?: string;
|
|
164
|
+
};
|
|
165
|
+
/** Meta-chat request */
|
|
166
|
+
export type MetaChatRequest = {
|
|
167
|
+
instruction: string;
|
|
168
|
+
};
|
|
169
|
+
/** Meta-chat stream events */
|
|
170
|
+
export type MetaChatStreamEvent = {
|
|
171
|
+
type: "assistant.delta";
|
|
172
|
+
data: {
|
|
173
|
+
text: string;
|
|
174
|
+
};
|
|
175
|
+
} | {
|
|
176
|
+
type: "patch.validation";
|
|
177
|
+
data: {
|
|
178
|
+
valid: boolean;
|
|
179
|
+
errors: PatchValidationError[];
|
|
180
|
+
};
|
|
181
|
+
} | {
|
|
182
|
+
type: "patch.proposed";
|
|
183
|
+
data: GraphPatch;
|
|
184
|
+
} | {
|
|
185
|
+
type: "final";
|
|
186
|
+
data: {
|
|
187
|
+
ok: boolean;
|
|
188
|
+
patch_id: string;
|
|
189
|
+
};
|
|
190
|
+
} | {
|
|
191
|
+
type: "error";
|
|
192
|
+
data: {
|
|
193
|
+
error: string;
|
|
194
|
+
};
|
|
195
|
+
};
|
|
196
|
+
/** Meta-chat sync response */
|
|
197
|
+
export type MetaChatResponse = {
|
|
198
|
+
patch: GraphPatch | null;
|
|
199
|
+
applied_spec: Record<string, unknown> | null;
|
|
200
|
+
valid: boolean;
|
|
201
|
+
errors: PatchValidationError[];
|
|
202
|
+
message: string;
|
|
203
|
+
};
|
|
136
204
|
export declare class BuilderModule {
|
|
137
205
|
private client;
|
|
138
206
|
constructor(client: RawClient);
|
|
@@ -153,5 +221,26 @@ export declare class BuilderModule {
|
|
|
153
221
|
* Convenience method: chat and collect all events.
|
|
154
222
|
*/
|
|
155
223
|
chatCollect(agentId: string, request: BuilderChatRequest): Promise<BuilderChatResponse>;
|
|
224
|
+
/**
|
|
225
|
+
* Stream meta-chat with patch-ops architecture (SSE).
|
|
226
|
+
* Returns GraphPatch proposals instead of full graph specs.
|
|
227
|
+
*
|
|
228
|
+
* @example
|
|
229
|
+
* ```ts
|
|
230
|
+
* for await (const event of client.builder.metaChat(agentId, {
|
|
231
|
+
* instruction: "Add a log node after the main agent"
|
|
232
|
+
* })) {
|
|
233
|
+
* if (event.type === 'patch.proposed') {
|
|
234
|
+
* const patch = event.data;
|
|
235
|
+
* console.log(`Proposed ${patch.ops.length} operations`);
|
|
236
|
+
* }
|
|
237
|
+
* }
|
|
238
|
+
* ```
|
|
239
|
+
*/
|
|
240
|
+
metaChat(agentId: string, request: MetaChatRequest, options?: SSEOptions): AsyncGenerator<MetaChatStreamEvent>;
|
|
241
|
+
/**
|
|
242
|
+
* Meta-chat and collect the proposed patch.
|
|
243
|
+
*/
|
|
244
|
+
metaChatCollect(agentId: string, request: MetaChatRequest): Promise<MetaChatResponse>;
|
|
156
245
|
}
|
|
157
246
|
//# sourceMappingURL=builder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/modules/builder.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/modules/builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,MAAM,eAAe,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC7B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC7B,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5D,4CAA4C;IAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,aAAa,GAAG,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/E,MAAM,CAAC,EAAE,mBAAmB,GAAG,YAAY,GAAG,iBAAiB,GAAG,MAAM,CAAC;CAC5E,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAExB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAGlB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IAGd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;IAC3C,IAAI,EACF,gBAAgB,GAChB,kBAAkB,GAClB,gBAAgB,GAChB,cAAc,GACd,gBAAgB,GAChB,OAAO,GACP,aAAa,GACb,cAAc,GACd,aAAa,GACb,cAAc,GACd,eAAe,GACf,kBAAkB,GAClB,MAAM,CAAC;IACT,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IAChD,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,aAAa,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAE5B,MAAM,EAAE,MAAM,CAAC;CAElB,GAAG;IAEA,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GACxB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,GAAG,EAAE,CAAA;KAAE,CAAA;CAAE,GAC/D;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,KAAK,EAAE,SAAS,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,GACjH;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC/D;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAEjD,MAAM,MAAM,mBAAmB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,GAAG,EAAE,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,SAAS,EAAE,CAAC;CACtB,CAAC;AAMF,sCAAsC;AACtC,MAAM,MAAM,MAAM,GACZ,UAAU,GACV,aAAa,GACb,aAAa,GACb,UAAU,GACV,aAAa,GACb,gBAAgB,GAChB,aAAa,CAAC;AAEpB,4CAA4C;AAC5C,MAAM,MAAM,OAAO,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,6DAA6D;AAC7D,MAAM,MAAM,UAAU,GAAG;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,OAAO,EAAE,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,2CAA2C;AAC3C,MAAM,MAAM,oBAAoB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAwB;AACxB,MAAM,MAAM,eAAe,GAAG;IAC1B,WAAW,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,8BAA8B;AAC9B,MAAM,MAAM,mBAAmB,GACzB;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,IAAI,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,oBAAoB,EAAE,CAAA;KAAE,CAAA;CAAE,GACtF;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAEjD,8BAA8B;AAC9B,MAAM,MAAM,gBAAgB,GAAG;IAC3B,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7C,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAGF,qBAAa,aAAa;IACV,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,SAAS;IAErC;;;;;OAKG;IACI,IAAI,CACP,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,kBAAkB,EAC3B,OAAO,CAAC,EAAE,UAAU,GACrB,cAAc,CAAC,kBAAkB,CAAC;IAyDrC;;;;OAIG;IACG,QAAQ,CACV,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,kBAAkB,GAC5B,OAAO,CAAC,mBAAmB,CAAC;IAgB/B;;OAEG;IACG,WAAW,CACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,kBAAkB,GAC5B,OAAO,CAAC,mBAAmB,CAAC;IA0C/B;;;;;;;;;;;;;;;OAeG;IACI,QAAQ,CACX,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,eAAe,EACxB,OAAO,CAAC,EAAE,UAAU,GACrB,cAAc,CAAC,mBAAmB,CAAC;IAwDtC;;OAEG;IACG,eAAe,CACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,eAAe,GACzB,OAAO,CAAC,gBAAgB,CAAC;CAyB/B"}
|
package/dist/modules/builder.js
CHANGED
|
@@ -146,4 +146,103 @@ export class BuilderModule {
|
|
|
146
146
|
thread_id: threadId,
|
|
147
147
|
};
|
|
148
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
|
+
}
|
|
149
248
|
}
|
|
@@ -36,18 +36,27 @@ export declare class CheckpointsModule {
|
|
|
36
36
|
constructor(client: RawClient, headers: () => Record<string, string>);
|
|
37
37
|
/**
|
|
38
38
|
* List checkpoints for a run.
|
|
39
|
+
* @param workspaceId - Workspace ID
|
|
40
|
+
* @param runId - Run ID
|
|
39
41
|
*/
|
|
40
|
-
list(runId: string): Promise<APIResponse<CheckpointsResponse>>;
|
|
42
|
+
list(workspaceId: string, runId: string): Promise<APIResponse<CheckpointsResponse>>;
|
|
41
43
|
/**
|
|
42
44
|
* Get a specific checkpoint.
|
|
45
|
+
* @param workspaceId - Workspace ID
|
|
46
|
+
* @param runId - Run ID
|
|
47
|
+
* @param checkpointId - Checkpoint ID
|
|
43
48
|
*/
|
|
44
|
-
get(checkpointId: string): Promise<APIResponse<Checkpoint>>;
|
|
49
|
+
get(workspaceId: string, runId: string, checkpointId: string): Promise<APIResponse<Checkpoint>>;
|
|
45
50
|
/**
|
|
46
51
|
* Replay from a checkpoint.
|
|
52
|
+
* @param workspaceId - Workspace ID
|
|
53
|
+
* @param runId - Run ID
|
|
54
|
+
* @param checkpointId - Checkpoint ID
|
|
55
|
+
* @param options - Replay options
|
|
47
56
|
*/
|
|
48
|
-
replay(checkpointId: string, options?: {
|
|
49
|
-
|
|
50
|
-
|
|
57
|
+
replay(workspaceId: string, runId: string, checkpointId: string, options?: {
|
|
58
|
+
create_new_thread?: boolean;
|
|
59
|
+
modified_input?: string;
|
|
51
60
|
}): Promise<APIResponse<ReplayResponse>>;
|
|
52
61
|
}
|
|
53
62
|
//# sourceMappingURL=checkpoints.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkpoints.d.ts","sourceRoot":"","sources":["../../src/modules/checkpoints.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAc,MAAM,kBAAkB,CAAC;AAK3E,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,cAAc,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,2BAA2B,EAAE,MAAM,CAAC;CACvC;AAED,qBAAa,iBAAiB;IACd,OAAO,CAAC,MAAM;IAAa,OAAO,CAAC,OAAO;gBAAlC,MAAM,EAAE,SAAS,EAAU,OAAO,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAEpF
|
|
1
|
+
{"version":3,"file":"checkpoints.d.ts","sourceRoot":"","sources":["../../src/modules/checkpoints.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAc,MAAM,kBAAkB,CAAC;AAK3E,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,cAAc,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,2BAA2B,EAAE,MAAM,CAAC;CACvC;AAED,qBAAa,iBAAiB;IACd,OAAO,CAAC,MAAM;IAAa,OAAO,CAAC,OAAO;gBAAlC,MAAM,EAAE,SAAS,EAAU,OAAO,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAEpF;;;;OAIG;IACG,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAOzF;;;;;OAKG;IACG,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAOrG;;;;;;OAMG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAC7E,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;KAC3B,GAAG,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;CAO3C"}
|
|
@@ -10,28 +10,37 @@ export class CheckpointsModule {
|
|
|
10
10
|
}
|
|
11
11
|
/**
|
|
12
12
|
* List checkpoints for a run.
|
|
13
|
+
* @param workspaceId - Workspace ID
|
|
14
|
+
* @param runId - Run ID
|
|
13
15
|
*/
|
|
14
|
-
async list(runId) {
|
|
15
|
-
return this.client.GET("/v1/api/runs/{runId}/checkpoints", {
|
|
16
|
-
params: { path: { runId } },
|
|
16
|
+
async list(workspaceId, runId) {
|
|
17
|
+
return this.client.GET("/v1/api/workspaces/{workspaceId}/runs/{runId}/checkpoints", {
|
|
18
|
+
params: { path: { workspaceId, runId } },
|
|
17
19
|
headers: this.headers(),
|
|
18
20
|
});
|
|
19
21
|
}
|
|
20
22
|
/**
|
|
21
23
|
* Get a specific checkpoint.
|
|
24
|
+
* @param workspaceId - Workspace ID
|
|
25
|
+
* @param runId - Run ID
|
|
26
|
+
* @param checkpointId - Checkpoint ID
|
|
22
27
|
*/
|
|
23
|
-
async get(checkpointId) {
|
|
24
|
-
return this.client.GET("/v1/api/checkpoints/{
|
|
25
|
-
params: { path: {
|
|
28
|
+
async get(workspaceId, runId, checkpointId) {
|
|
29
|
+
return this.client.GET("/v1/api/workspaces/{workspaceId}/runs/{runId}/checkpoints/{checkpointId}", {
|
|
30
|
+
params: { path: { workspaceId, runId, checkpointId } },
|
|
26
31
|
headers: this.headers(),
|
|
27
32
|
});
|
|
28
33
|
}
|
|
29
34
|
/**
|
|
30
35
|
* Replay from a checkpoint.
|
|
36
|
+
* @param workspaceId - Workspace ID
|
|
37
|
+
* @param runId - Run ID
|
|
38
|
+
* @param checkpointId - Checkpoint ID
|
|
39
|
+
* @param options - Replay options
|
|
31
40
|
*/
|
|
32
|
-
async replay(checkpointId, options) {
|
|
33
|
-
return this.client.POST("/v1/api/checkpoints/{
|
|
34
|
-
params: { path: {
|
|
41
|
+
async replay(workspaceId, runId, checkpointId, options) {
|
|
42
|
+
return this.client.POST("/v1/api/workspaces/{workspaceId}/runs/{runId}/checkpoints/{checkpointId}/replay", {
|
|
43
|
+
params: { path: { workspaceId, runId, checkpointId } },
|
|
35
44
|
body: options ?? {},
|
|
36
45
|
headers: this.headers(),
|
|
37
46
|
});
|
|
@@ -55,6 +55,27 @@ export interface TriggerListResponse {
|
|
|
55
55
|
items: Trigger[];
|
|
56
56
|
total: number;
|
|
57
57
|
}
|
|
58
|
+
export interface TriggerInputContractResponse {
|
|
59
|
+
trigger_id: string;
|
|
60
|
+
template_slug?: string;
|
|
61
|
+
external_body_schema?: unknown;
|
|
62
|
+
run_input_schema?: unknown;
|
|
63
|
+
effective_input_mapping_spec?: unknown;
|
|
64
|
+
example_payload?: unknown;
|
|
65
|
+
has_input_mapping: boolean;
|
|
66
|
+
}
|
|
67
|
+
export interface MappingValidationError {
|
|
68
|
+
code: string;
|
|
69
|
+
path?: string;
|
|
70
|
+
message: string;
|
|
71
|
+
}
|
|
72
|
+
export interface TestMappingResponse {
|
|
73
|
+
original_payload: unknown;
|
|
74
|
+
transformed_graph_input: unknown;
|
|
75
|
+
mapping_configured: boolean;
|
|
76
|
+
mapping_executed: boolean;
|
|
77
|
+
validation_errors?: MappingValidationError[];
|
|
78
|
+
}
|
|
58
79
|
export declare class TriggersModule {
|
|
59
80
|
private client;
|
|
60
81
|
private headers;
|
|
@@ -109,7 +130,21 @@ export declare class TriggersModule {
|
|
|
109
130
|
* Avoids client-side secret exposure - server signs the request.
|
|
110
131
|
* @param triggerId - The trigger to test
|
|
111
132
|
* @param payload - Optional JSON payload (wrapped in { payload: ... } per backend contract)
|
|
133
|
+
* @param threadKey - Optional thread key for conversation context
|
|
134
|
+
* @param idempotencyKey - Optional idempotency key for deduplication
|
|
135
|
+
*/
|
|
136
|
+
test(triggerId: string, payload?: unknown, threadKey?: string, idempotencyKey?: string): Promise<APIResponse<TestTriggerResponse>>;
|
|
137
|
+
/**
|
|
138
|
+
* Get the full input contract for a trigger.
|
|
139
|
+
* Returns schemas and mapping spec for transformation configuration.
|
|
140
|
+
*/
|
|
141
|
+
getContract(triggerId: string): Promise<APIResponse<TriggerInputContractResponse>>;
|
|
142
|
+
/**
|
|
143
|
+
* Test input mapping transformation without executing a run.
|
|
144
|
+
* Preview how a payload will be transformed before execution.
|
|
145
|
+
* @param triggerId - The trigger to test mapping for
|
|
146
|
+
* @param samplePayload - Sample payload to transform
|
|
112
147
|
*/
|
|
113
|
-
|
|
148
|
+
testMapping(triggerId: string, samplePayload: unknown): Promise<APIResponse<TestMappingResponse>>;
|
|
114
149
|
}
|
|
115
150
|
//# sourceMappingURL=triggers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"triggers.d.ts","sourceRoot":"","sources":["../../src/modules/triggers.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"triggers.d.ts","sourceRoot":"","sources":["../../src/modules/triggers.ts"],"names":[],"mappings":"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"}
|
package/dist/modules/triggers.js
CHANGED
|
@@ -82,11 +82,40 @@ export class TriggersModule {
|
|
|
82
82
|
* Avoids client-side secret exposure - server signs the request.
|
|
83
83
|
* @param triggerId - The trigger to test
|
|
84
84
|
* @param payload - Optional JSON payload (wrapped in { payload: ... } per backend contract)
|
|
85
|
+
* @param threadKey - Optional thread key for conversation context
|
|
86
|
+
* @param idempotencyKey - Optional idempotency key for deduplication
|
|
85
87
|
*/
|
|
86
|
-
async test(triggerId, payload) {
|
|
88
|
+
async test(triggerId, payload, threadKey, idempotencyKey) {
|
|
87
89
|
return this.client.POST("/v1/api/triggers/{id}/test", {
|
|
88
90
|
params: { path: { id: triggerId } },
|
|
89
|
-
body:
|
|
91
|
+
body: {
|
|
92
|
+
payload: payload ?? undefined,
|
|
93
|
+
thread_key: threadKey ?? undefined,
|
|
94
|
+
idempotency_key: idempotencyKey ?? undefined,
|
|
95
|
+
},
|
|
96
|
+
headers: this.headers(),
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Get the full input contract for a trigger.
|
|
101
|
+
* Returns schemas and mapping spec for transformation configuration.
|
|
102
|
+
*/
|
|
103
|
+
async getContract(triggerId) {
|
|
104
|
+
return this.client.GET("/v1/api/triggers/{id}/contract", {
|
|
105
|
+
params: { path: { id: triggerId } },
|
|
106
|
+
headers: this.headers(),
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Test input mapping transformation without executing a run.
|
|
111
|
+
* Preview how a payload will be transformed before execution.
|
|
112
|
+
* @param triggerId - The trigger to test mapping for
|
|
113
|
+
* @param samplePayload - Sample payload to transform
|
|
114
|
+
*/
|
|
115
|
+
async testMapping(triggerId, samplePayload) {
|
|
116
|
+
return this.client.POST("/v1/api/triggers/{id}/test-mapping", {
|
|
117
|
+
params: { path: { id: triggerId } },
|
|
118
|
+
body: { sample_payload: samplePayload },
|
|
90
119
|
headers: this.headers(),
|
|
91
120
|
});
|
|
92
121
|
}
|
package/package.json
CHANGED
package/src/modules/builder.ts
CHANGED
|
@@ -144,6 +144,73 @@ export type BuilderChatResponse = {
|
|
|
144
144
|
hints: HintModel[];
|
|
145
145
|
};
|
|
146
146
|
|
|
147
|
+
// ============================================
|
|
148
|
+
// PATCH-OPS ARCHITECTURE (Meta-Agent V2)
|
|
149
|
+
// ============================================
|
|
150
|
+
|
|
151
|
+
/** Supported patch operation types */
|
|
152
|
+
export type OpType =
|
|
153
|
+
| "add_node"
|
|
154
|
+
| "remove_node"
|
|
155
|
+
| "update_node"
|
|
156
|
+
| "add_edge"
|
|
157
|
+
| "remove_edge"
|
|
158
|
+
| "set_entrypoint"
|
|
159
|
+
| "rename_node";
|
|
160
|
+
|
|
161
|
+
/** A single graph modification operation */
|
|
162
|
+
export type PatchOp = {
|
|
163
|
+
op: OpType;
|
|
164
|
+
node_id?: string;
|
|
165
|
+
kind?: string;
|
|
166
|
+
label?: string;
|
|
167
|
+
data?: Record<string, unknown>;
|
|
168
|
+
set?: Record<string, unknown>;
|
|
169
|
+
source?: string;
|
|
170
|
+
target?: string;
|
|
171
|
+
from?: string;
|
|
172
|
+
to?: string;
|
|
173
|
+
entrypoint?: string;
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
/** A collection of patch operations with deterministic ID */
|
|
177
|
+
export type GraphPatch = {
|
|
178
|
+
patch_id: string;
|
|
179
|
+
ops: PatchOp[];
|
|
180
|
+
description?: string;
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
/** Validation error from applying patch */
|
|
184
|
+
export type PatchValidationError = {
|
|
185
|
+
code: string;
|
|
186
|
+
message: string;
|
|
187
|
+
node_id?: string;
|
|
188
|
+
path?: string;
|
|
189
|
+
};
|
|
190
|
+
|
|
191
|
+
/** Meta-chat request */
|
|
192
|
+
export type MetaChatRequest = {
|
|
193
|
+
instruction: string;
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
/** Meta-chat stream events */
|
|
197
|
+
export type MetaChatStreamEvent =
|
|
198
|
+
| { type: "assistant.delta"; data: { text: string } }
|
|
199
|
+
| { type: "patch.validation"; data: { valid: boolean; errors: PatchValidationError[] } }
|
|
200
|
+
| { type: "patch.proposed"; data: GraphPatch }
|
|
201
|
+
| { type: "final"; data: { ok: boolean; patch_id: string } }
|
|
202
|
+
| { type: "error"; data: { error: string } };
|
|
203
|
+
|
|
204
|
+
/** Meta-chat sync response */
|
|
205
|
+
export type MetaChatResponse = {
|
|
206
|
+
patch: GraphPatch | null;
|
|
207
|
+
applied_spec: Record<string, unknown> | null;
|
|
208
|
+
valid: boolean;
|
|
209
|
+
errors: PatchValidationError[];
|
|
210
|
+
message: string;
|
|
211
|
+
};
|
|
212
|
+
|
|
213
|
+
|
|
147
214
|
export class BuilderModule {
|
|
148
215
|
constructor(private client: RawClient) { }
|
|
149
216
|
|
|
@@ -281,4 +348,116 @@ export class BuilderModule {
|
|
|
281
348
|
thread_id: threadId,
|
|
282
349
|
};
|
|
283
350
|
}
|
|
351
|
+
|
|
352
|
+
// ============================================
|
|
353
|
+
// META-CHAT V2 (PATCH-OPS ARCHITECTURE)
|
|
354
|
+
// ============================================
|
|
355
|
+
|
|
356
|
+
/**
|
|
357
|
+
* Stream meta-chat with patch-ops architecture (SSE).
|
|
358
|
+
* Returns GraphPatch proposals instead of full graph specs.
|
|
359
|
+
*
|
|
360
|
+
* @example
|
|
361
|
+
* ```ts
|
|
362
|
+
* for await (const event of client.builder.metaChat(agentId, {
|
|
363
|
+
* instruction: "Add a log node after the main agent"
|
|
364
|
+
* })) {
|
|
365
|
+
* if (event.type === 'patch.proposed') {
|
|
366
|
+
* const patch = event.data;
|
|
367
|
+
* console.log(`Proposed ${patch.ops.length} operations`);
|
|
368
|
+
* }
|
|
369
|
+
* }
|
|
370
|
+
* ```
|
|
371
|
+
*/
|
|
372
|
+
async *metaChat(
|
|
373
|
+
agentId: string,
|
|
374
|
+
request: MetaChatRequest,
|
|
375
|
+
options?: SSEOptions
|
|
376
|
+
): AsyncGenerator<MetaChatStreamEvent> {
|
|
377
|
+
const response = await this.client.streamPost("/v1/builder/{agentId}/meta-chat", {
|
|
378
|
+
params: { path: { agentId } },
|
|
379
|
+
body: request,
|
|
380
|
+
signal: options?.signal,
|
|
381
|
+
});
|
|
382
|
+
|
|
383
|
+
if (!response.ok) {
|
|
384
|
+
const errorText = await response.text();
|
|
385
|
+
throw new Error(`Meta-chat failed: ${response.status} - ${errorText}`);
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
if (!response.body) {
|
|
389
|
+
throw new Error("No response body");
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
options?.onOpen?.();
|
|
393
|
+
|
|
394
|
+
const reader = response.body.getReader();
|
|
395
|
+
const decoder = new TextDecoder();
|
|
396
|
+
let buffer = "";
|
|
397
|
+
|
|
398
|
+
try {
|
|
399
|
+
while (true) {
|
|
400
|
+
const { done, value } = await reader.read();
|
|
401
|
+
if (done) break;
|
|
402
|
+
|
|
403
|
+
buffer += decoder.decode(value, { stream: true });
|
|
404
|
+
const lines = buffer.split("\n");
|
|
405
|
+
buffer = lines.pop() ?? "";
|
|
406
|
+
|
|
407
|
+
let eventType = "message";
|
|
408
|
+
let eventData = "";
|
|
409
|
+
|
|
410
|
+
for (const line of lines) {
|
|
411
|
+
if (line.startsWith("event:")) {
|
|
412
|
+
eventType = line.slice(6).trim();
|
|
413
|
+
} else if (line.startsWith("data:")) {
|
|
414
|
+
eventData = line.slice(5).trim();
|
|
415
|
+
} else if (line === "" && eventData) {
|
|
416
|
+
try {
|
|
417
|
+
const parsed = JSON.parse(eventData);
|
|
418
|
+
yield { type: eventType, data: parsed } as MetaChatStreamEvent;
|
|
419
|
+
} catch {
|
|
420
|
+
// Skip invalid JSON
|
|
421
|
+
}
|
|
422
|
+
eventData = "";
|
|
423
|
+
eventType = "message";
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
} finally {
|
|
428
|
+
reader.releaseLock();
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
/**
|
|
433
|
+
* Meta-chat and collect the proposed patch.
|
|
434
|
+
*/
|
|
435
|
+
async metaChatCollect(
|
|
436
|
+
agentId: string,
|
|
437
|
+
request: MetaChatRequest
|
|
438
|
+
): Promise<MetaChatResponse> {
|
|
439
|
+
let patch: GraphPatch | null = null;
|
|
440
|
+
let isValid = true;
|
|
441
|
+
const errors: PatchValidationError[] = [];
|
|
442
|
+
let message = "";
|
|
443
|
+
|
|
444
|
+
for await (const event of this.metaChat(agentId, request)) {
|
|
445
|
+
if (event.type === "assistant.delta") {
|
|
446
|
+
message += event.data.text;
|
|
447
|
+
} else if (event.type === "patch.proposed") {
|
|
448
|
+
patch = event.data;
|
|
449
|
+
} else if (event.type === "patch.validation") {
|
|
450
|
+
isValid = event.data.valid;
|
|
451
|
+
errors.push(...event.data.errors);
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
return {
|
|
456
|
+
patch,
|
|
457
|
+
applied_spec: null, // Frontend should apply patch locally
|
|
458
|
+
valid: isValid,
|
|
459
|
+
errors,
|
|
460
|
+
message,
|
|
461
|
+
};
|
|
462
|
+
}
|
|
284
463
|
}
|
|
@@ -44,33 +44,42 @@ export class CheckpointsModule {
|
|
|
44
44
|
|
|
45
45
|
/**
|
|
46
46
|
* List checkpoints for a run.
|
|
47
|
+
* @param workspaceId - Workspace ID
|
|
48
|
+
* @param runId - Run ID
|
|
47
49
|
*/
|
|
48
|
-
async list(runId: string): Promise<APIResponse<CheckpointsResponse>> {
|
|
49
|
-
return this.client.GET<CheckpointsResponse>("/v1/api/runs/{runId}/checkpoints", {
|
|
50
|
-
params: { path: { runId } },
|
|
50
|
+
async list(workspaceId: string, runId: string): Promise<APIResponse<CheckpointsResponse>> {
|
|
51
|
+
return this.client.GET<CheckpointsResponse>("/v1/api/workspaces/{workspaceId}/runs/{runId}/checkpoints", {
|
|
52
|
+
params: { path: { workspaceId, runId } },
|
|
51
53
|
headers: this.headers(),
|
|
52
54
|
});
|
|
53
55
|
}
|
|
54
56
|
|
|
55
57
|
/**
|
|
56
58
|
* Get a specific checkpoint.
|
|
59
|
+
* @param workspaceId - Workspace ID
|
|
60
|
+
* @param runId - Run ID
|
|
61
|
+
* @param checkpointId - Checkpoint ID
|
|
57
62
|
*/
|
|
58
|
-
async get(checkpointId: string): Promise<APIResponse<Checkpoint>> {
|
|
59
|
-
return this.client.GET<Checkpoint>("/v1/api/checkpoints/{
|
|
60
|
-
params: { path: {
|
|
63
|
+
async get(workspaceId: string, runId: string, checkpointId: string): Promise<APIResponse<Checkpoint>> {
|
|
64
|
+
return this.client.GET<Checkpoint>("/v1/api/workspaces/{workspaceId}/runs/{runId}/checkpoints/{checkpointId}", {
|
|
65
|
+
params: { path: { workspaceId, runId, checkpointId } },
|
|
61
66
|
headers: this.headers(),
|
|
62
67
|
});
|
|
63
68
|
}
|
|
64
69
|
|
|
65
70
|
/**
|
|
66
71
|
* Replay from a checkpoint.
|
|
72
|
+
* @param workspaceId - Workspace ID
|
|
73
|
+
* @param runId - Run ID
|
|
74
|
+
* @param checkpointId - Checkpoint ID
|
|
75
|
+
* @param options - Replay options
|
|
67
76
|
*/
|
|
68
|
-
async replay(checkpointId: string, options?: {
|
|
69
|
-
|
|
70
|
-
|
|
77
|
+
async replay(workspaceId: string, runId: string, checkpointId: string, options?: {
|
|
78
|
+
create_new_thread?: boolean;
|
|
79
|
+
modified_input?: string;
|
|
71
80
|
}): Promise<APIResponse<ReplayResponse>> {
|
|
72
|
-
return this.client.POST<ReplayResponse>("/v1/api/checkpoints/{
|
|
73
|
-
params: { path: {
|
|
81
|
+
return this.client.POST<ReplayResponse>("/v1/api/workspaces/{workspaceId}/runs/{runId}/checkpoints/{checkpointId}/replay", {
|
|
82
|
+
params: { path: { workspaceId, runId, checkpointId } },
|
|
74
83
|
body: options ?? {},
|
|
75
84
|
headers: this.headers(),
|
|
76
85
|
});
|
package/src/modules/triggers.ts
CHANGED
|
@@ -68,6 +68,34 @@ export interface TriggerListResponse {
|
|
|
68
68
|
total: number;
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
+
// =============================================================================
|
|
72
|
+
// Input Mapping Types (Wave 2)
|
|
73
|
+
// =============================================================================
|
|
74
|
+
|
|
75
|
+
export interface TriggerInputContractResponse {
|
|
76
|
+
trigger_id: string;
|
|
77
|
+
template_slug?: string;
|
|
78
|
+
external_body_schema?: unknown;
|
|
79
|
+
run_input_schema?: unknown;
|
|
80
|
+
effective_input_mapping_spec?: unknown;
|
|
81
|
+
example_payload?: unknown;
|
|
82
|
+
has_input_mapping: boolean;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export interface MappingValidationError {
|
|
86
|
+
code: string;
|
|
87
|
+
path?: string;
|
|
88
|
+
message: string;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export interface TestMappingResponse {
|
|
92
|
+
original_payload: unknown;
|
|
93
|
+
transformed_graph_input: unknown;
|
|
94
|
+
mapping_configured: boolean;
|
|
95
|
+
mapping_executed: boolean;
|
|
96
|
+
validation_errors?: MappingValidationError[];
|
|
97
|
+
}
|
|
98
|
+
|
|
71
99
|
// =============================================================================
|
|
72
100
|
// Module
|
|
73
101
|
// =============================================================================
|
|
@@ -165,12 +193,44 @@ export class TriggersModule {
|
|
|
165
193
|
* Avoids client-side secret exposure - server signs the request.
|
|
166
194
|
* @param triggerId - The trigger to test
|
|
167
195
|
* @param payload - Optional JSON payload (wrapped in { payload: ... } per backend contract)
|
|
196
|
+
* @param threadKey - Optional thread key for conversation context
|
|
197
|
+
* @param idempotencyKey - Optional idempotency key for deduplication
|
|
168
198
|
*/
|
|
169
|
-
async test(triggerId: string, payload?: unknown): Promise<APIResponse<TestTriggerResponse>> {
|
|
199
|
+
async test(triggerId: string, payload?: unknown, threadKey?: string, idempotencyKey?: string): Promise<APIResponse<TestTriggerResponse>> {
|
|
170
200
|
return this.client.POST<TestTriggerResponse>("/v1/api/triggers/{id}/test", {
|
|
171
201
|
params: { path: { id: triggerId } },
|
|
172
|
-
body:
|
|
202
|
+
body: {
|
|
203
|
+
payload: payload ?? undefined,
|
|
204
|
+
thread_key: threadKey ?? undefined,
|
|
205
|
+
idempotency_key: idempotencyKey ?? undefined,
|
|
206
|
+
},
|
|
207
|
+
headers: this.headers(),
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* Get the full input contract for a trigger.
|
|
213
|
+
* Returns schemas and mapping spec for transformation configuration.
|
|
214
|
+
*/
|
|
215
|
+
async getContract(triggerId: string): Promise<APIResponse<TriggerInputContractResponse>> {
|
|
216
|
+
return this.client.GET<TriggerInputContractResponse>("/v1/api/triggers/{id}/contract", {
|
|
217
|
+
params: { path: { id: triggerId } },
|
|
218
|
+
headers: this.headers(),
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* Test input mapping transformation without executing a run.
|
|
224
|
+
* Preview how a payload will be transformed before execution.
|
|
225
|
+
* @param triggerId - The trigger to test mapping for
|
|
226
|
+
* @param samplePayload - Sample payload to transform
|
|
227
|
+
*/
|
|
228
|
+
async testMapping(triggerId: string, samplePayload: unknown): Promise<APIResponse<TestMappingResponse>> {
|
|
229
|
+
return this.client.POST<TestMappingResponse>("/v1/api/triggers/{id}/test-mapping", {
|
|
230
|
+
params: { path: { id: triggerId } },
|
|
231
|
+
body: { sample_payload: samplePayload },
|
|
173
232
|
headers: this.headers(),
|
|
174
233
|
});
|
|
175
234
|
}
|
|
176
235
|
}
|
|
236
|
+
|