@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.
@@ -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":"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"}
@@ -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
- mode?: "best_effort" | "strict";
50
- modified_state?: unknown;
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;;OAEG;IACG,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAOpE;;OAEG;IACG,GAAG,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAOjE;;OAEG;IACG,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QACzC,IAAI,CAAC,EAAE,aAAa,GAAG,QAAQ,CAAC;QAChC,cAAc,CAAC,EAAE,OAAO,CAAC;KAC5B,GAAG,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;CAO3C"}
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/{id}", {
25
- params: { path: { id: checkpointId } },
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/{id}/replay", {
34
- params: { path: { id: checkpointId } },
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
- test(triggerId: string, payload?: unknown): Promise<APIResponse<TestTriggerResponse>>;
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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"}
@@ -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: payload !== undefined ? { payload } : undefined,
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-os-sdk/client",
3
- "version": "0.7.8",
3
+ "version": "0.7.10",
4
4
  "description": "Official TypeScript SDK for Agent OS platform",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -49,4 +49,4 @@
49
49
  "dist",
50
50
  "src"
51
51
  ]
52
- }
52
+ }
@@ -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/{id}", {
60
- params: { path: { id: checkpointId } },
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
- mode?: "best_effort" | "strict";
70
- modified_state?: unknown;
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/{id}/replay", {
73
- params: { path: { id: checkpointId } },
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
  });
@@ -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: payload !== undefined ? { payload } : undefined,
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
+