@agent-os-sdk/client 0.7.9 → 0.7.11

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.
@@ -115,6 +115,28 @@ export declare class AgentsModule {
115
115
  version_label?: string | null;
116
116
  set_as_live?: boolean;
117
117
  }): Promise<APIResponse<components["schemas"]["BundleResponse"]>>;
118
+ /**
119
+ * Get the manifest for a specific bundle.
120
+ * Returns artifact metadata and graph_spec.
121
+ * @example
122
+ * ```ts
123
+ * const { data } = await client.agents.getBundleManifest(agentId, bundleId);
124
+ * console.log(data?.graph_spec);
125
+ * ```
126
+ */
127
+ getBundleManifest(agentId: string, bundleId: string): Promise<APIResponse<BundleManifestResponse>>;
128
+ }
129
+ export interface BundleManifestResponse {
130
+ agent_id: string;
131
+ bundle_id: string;
132
+ agent_name: string;
133
+ artifact_uri?: string;
134
+ artifact_hash?: string;
135
+ content_hash?: string;
136
+ format?: string;
137
+ schema_version?: string;
138
+ created_at?: string;
139
+ graph_spec?: Record<string, unknown>;
118
140
  }
119
141
  export {};
120
142
  //# sourceMappingURL=agents.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/modules/agents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/modules/agents.ts"],"names":[],"mappings":"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"}
@@ -135,4 +135,20 @@ export class AgentsModule {
135
135
  headers: this.headers()
136
136
  });
137
137
  }
138
+ // ======================== Bundles ========================
139
+ /**
140
+ * Get the manifest for a specific bundle.
141
+ * Returns artifact metadata and graph_spec.
142
+ * @example
143
+ * ```ts
144
+ * const { data } = await client.agents.getBundleManifest(agentId, bundleId);
145
+ * console.log(data?.graph_spec);
146
+ * ```
147
+ */
148
+ async getBundleManifest(agentId, bundleId) {
149
+ return this.client.GET("/v1/api/agents/{agentId}/bundles/{bundleId}/manifest", {
150
+ params: { path: { agentId, bundleId } },
151
+ headers: this.headers(),
152
+ });
153
+ }
138
154
  }
@@ -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
  }
@@ -5,20 +5,44 @@ import type { RawClient, APIResponse } from "../client/raw.js";
5
5
  export interface DlqMessage {
6
6
  id: string;
7
7
  workspace_id: string;
8
- queue_name: string;
9
- original_message: unknown;
10
- error_reason: string;
8
+ message_type: string;
9
+ original_run_id?: string;
10
+ bundle_id?: string;
11
+ error_code?: string;
12
+ error_detail?: string;
13
+ is_poison: boolean;
11
14
  retry_count: number;
15
+ failed_at: string;
16
+ created_at: string;
17
+ payload?: unknown;
18
+ dead_letter_reason?: string;
19
+ attempt_id?: string;
20
+ }
21
+ export interface DlqListItem {
22
+ id: string;
23
+ message_type: string;
24
+ original_run_id?: string;
25
+ bundle_id?: string;
26
+ error_code?: string;
27
+ error_detail?: string;
28
+ is_poison: boolean;
29
+ retry_count: number;
30
+ failed_at: string;
12
31
  created_at: string;
13
- last_retry_at?: string;
14
32
  }
15
33
  export interface DlqListResponse {
16
- items: DlqMessage[];
34
+ items: DlqListItem[];
17
35
  total: number;
36
+ skip: number;
37
+ take: number;
18
38
  }
19
39
  export interface DlqRetryResponse {
20
- success: boolean;
21
- message_id: string;
40
+ retried: boolean;
41
+ new_run_id?: string;
42
+ retry_count?: number;
43
+ removed_from_dlq?: boolean;
44
+ message?: string;
45
+ error?: string;
22
46
  }
23
47
  export interface DlqPurgeResponse {
24
48
  deleted_count: number;
@@ -31,7 +55,6 @@ export declare class DlqModule {
31
55
  * List DLQ messages.
32
56
  */
33
57
  list(params?: {
34
- workspace_id?: string;
35
58
  queue_name?: string;
36
59
  limit?: number;
37
60
  offset?: number;
@@ -52,9 +75,7 @@ export declare class DlqModule {
52
75
  * Purge DLQ messages.
53
76
  */
54
77
  purge(params?: {
55
- workspace_id?: string;
56
78
  queue_name?: string;
57
- older_than_days?: number;
58
79
  }): Promise<APIResponse<DlqPurgeResponse>>;
59
80
  }
60
81
  //# sourceMappingURL=dlq.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dlq.d.ts","sourceRoot":"","sources":["../../src/modules/dlq.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/D,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC7B,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,SAAS;IACN,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,MAAM,CAAC,EAAE;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IAOzC;;OAEG;IACG,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAO9D;;OAEG;IACG,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAOtE;;OAEG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAO3D;;OAEG;IACG,KAAK,CAAC,MAAM,CAAC,EAAE;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC5B,GAAG,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;CAM7C"}
1
+ {"version":3,"file":"dlq.d.ts","sourceRoot":"","sources":["../../src/modules/dlq.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/D,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IAEnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC7B,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,SAAS;IACN,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,MAAM,CAAC,EAAE;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IAazC;;OAEG;IACG,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAO9D;;OAEG;IACG,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAOtE;;OAEG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAO3D;;OAEG;IACG,KAAK,CAAC,MAAM,CAAC,EAAE;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;CAS7C"}
@@ -12,8 +12,15 @@ export class DlqModule {
12
12
  * List DLQ messages.
13
13
  */
14
14
  async list(params) {
15
- return this.client.GET("/v1/api/dlq", {
16
- params: { query: params },
15
+ const queryParams = {};
16
+ if (params?.queue_name)
17
+ queryParams.messageType = params.queue_name;
18
+ if (params?.limit !== undefined)
19
+ queryParams.take = params.limit;
20
+ if (params?.offset !== undefined)
21
+ queryParams.skip = params.offset;
22
+ return this.client.GET("/v1/api/runs/dlq", {
23
+ params: { query: queryParams },
17
24
  headers: this.headers(),
18
25
  });
19
26
  }
@@ -21,7 +28,7 @@ export class DlqModule {
21
28
  * Get a DLQ message by ID.
22
29
  */
23
30
  async get(messageId) {
24
- return this.client.GET("/v1/api/dlq/{id}", {
31
+ return this.client.GET("/v1/api/runs/dlq/{id}", {
25
32
  params: { path: { id: messageId } },
26
33
  headers: this.headers(),
27
34
  });
@@ -30,7 +37,7 @@ export class DlqModule {
30
37
  * Retry a DLQ message.
31
38
  */
32
39
  async retry(messageId) {
33
- return this.client.POST("/v1/api/dlq/{id}/retry", {
40
+ return this.client.POST("/v1/api/runs/dlq/{id}/retry", {
34
41
  params: { path: { id: messageId } },
35
42
  headers: this.headers(),
36
43
  });
@@ -39,7 +46,7 @@ export class DlqModule {
39
46
  * Delete a DLQ message.
40
47
  */
41
48
  async delete(messageId) {
42
- return this.client.DELETE("/v1/api/dlq/{id}", {
49
+ return this.client.DELETE("/v1/api/runs/dlq/{id}", {
43
50
  params: { path: { id: messageId } },
44
51
  headers: this.headers(),
45
52
  });
@@ -48,8 +55,11 @@ export class DlqModule {
48
55
  * Purge DLQ messages.
49
56
  */
50
57
  async purge(params) {
51
- return this.client.POST("/v1/api/dlq/purge", {
52
- body: params ?? {},
58
+ const queryParams = {};
59
+ if (params?.queue_name)
60
+ queryParams.messageType = params.queue_name;
61
+ return this.client.DELETE("/v1/api/runs/dlq/purge", {
62
+ params: { query: queryParams },
53
63
  headers: this.headers(),
54
64
  });
55
65
  }
@@ -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.9",
3
+ "version": "0.7.11",
4
4
  "description": "Official TypeScript SDK for Agent OS platform",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -203,4 +203,36 @@ export class AgentsModule {
203
203
  });
204
204
  }
205
205
 
206
+ // ======================== Bundles ========================
207
+
208
+ /**
209
+ * Get the manifest for a specific bundle.
210
+ * Returns artifact metadata and graph_spec.
211
+ * @example
212
+ * ```ts
213
+ * const { data } = await client.agents.getBundleManifest(agentId, bundleId);
214
+ * console.log(data?.graph_spec);
215
+ * ```
216
+ */
217
+ async getBundleManifest(agentId: string, bundleId: string): Promise<APIResponse<BundleManifestResponse>> {
218
+ return this.client.GET<BundleManifestResponse>("/v1/api/agents/{agentId}/bundles/{bundleId}/manifest", {
219
+ params: { path: { agentId, bundleId } },
220
+ headers: this.headers(),
221
+ });
222
+ }
223
+
224
+ }
225
+
226
+ // Bundle manifest response type
227
+ export interface BundleManifestResponse {
228
+ agent_id: string;
229
+ bundle_id: string;
230
+ agent_name: string;
231
+ artifact_uri?: string;
232
+ artifact_hash?: string;
233
+ content_hash?: string;
234
+ format?: string;
235
+ schema_version?: string;
236
+ created_at?: string;
237
+ graph_spec?: Record<string, unknown>;
206
238
  }
@@ -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
  }
@@ -7,22 +7,48 @@ import type { RawClient, APIResponse } from "../client/raw.js";
7
7
  export interface DlqMessage {
8
8
  id: string;
9
9
  workspace_id: string;
10
- queue_name: string;
11
- original_message: unknown;
12
- error_reason: string;
10
+ message_type: string;
11
+ original_run_id?: string;
12
+ bundle_id?: string;
13
+ error_code?: string;
14
+ error_detail?: string;
15
+ is_poison: boolean;
13
16
  retry_count: number;
17
+ failed_at: string;
18
+ created_at: string;
19
+ // Detailing specific fields that might come from the full object
20
+ payload?: unknown;
21
+ dead_letter_reason?: string;
22
+ attempt_id?: string;
23
+ }
24
+
25
+ export interface DlqListItem {
26
+ id: string;
27
+ message_type: string;
28
+ original_run_id?: string;
29
+ bundle_id?: string;
30
+ error_code?: string;
31
+ error_detail?: string;
32
+ is_poison: boolean;
33
+ retry_count: number;
34
+ failed_at: string;
14
35
  created_at: string;
15
- last_retry_at?: string;
16
36
  }
17
37
 
18
38
  export interface DlqListResponse {
19
- items: DlqMessage[];
39
+ items: DlqListItem[];
20
40
  total: number;
41
+ skip: number;
42
+ take: number;
21
43
  }
22
44
 
23
45
  export interface DlqRetryResponse {
24
- success: boolean;
25
- message_id: string;
46
+ retried: boolean;
47
+ new_run_id?: string;
48
+ retry_count?: number;
49
+ removed_from_dlq?: boolean;
50
+ message?: string;
51
+ error?: string;
26
52
  }
27
53
 
28
54
  export interface DlqPurgeResponse {
@@ -36,13 +62,18 @@ export class DlqModule {
36
62
  * List DLQ messages.
37
63
  */
38
64
  async list(params?: {
39
- workspace_id?: string;
40
- queue_name?: string;
41
- limit?: number;
42
- offset?: number;
65
+ queue_name?: string; // Maps to messageType
66
+ limit?: number; // Maps to take
67
+ offset?: number; // Maps to skip
43
68
  }): Promise<APIResponse<DlqListResponse>> {
44
- return this.client.GET<DlqListResponse>("/v1/api/dlq", {
45
- params: { query: params },
69
+ const queryParams: Record<string, any> = {};
70
+
71
+ if (params?.queue_name) queryParams.messageType = params.queue_name;
72
+ if (params?.limit !== undefined) queryParams.take = params.limit;
73
+ if (params?.offset !== undefined) queryParams.skip = params.offset;
74
+
75
+ return this.client.GET<DlqListResponse>("/v1/api/runs/dlq", {
76
+ params: { query: queryParams },
46
77
  headers: this.headers(),
47
78
  });
48
79
  }
@@ -51,7 +82,7 @@ export class DlqModule {
51
82
  * Get a DLQ message by ID.
52
83
  */
53
84
  async get(messageId: string): Promise<APIResponse<DlqMessage>> {
54
- return this.client.GET<DlqMessage>("/v1/api/dlq/{id}", {
85
+ return this.client.GET<DlqMessage>("/v1/api/runs/dlq/{id}", {
55
86
  params: { path: { id: messageId } },
56
87
  headers: this.headers(),
57
88
  });
@@ -61,7 +92,7 @@ export class DlqModule {
61
92
  * Retry a DLQ message.
62
93
  */
63
94
  async retry(messageId: string): Promise<APIResponse<DlqRetryResponse>> {
64
- return this.client.POST<DlqRetryResponse>("/v1/api/dlq/{id}/retry", {
95
+ return this.client.POST<DlqRetryResponse>("/v1/api/runs/dlq/{id}/retry", {
65
96
  params: { path: { id: messageId } },
66
97
  headers: this.headers(),
67
98
  });
@@ -71,7 +102,7 @@ export class DlqModule {
71
102
  * Delete a DLQ message.
72
103
  */
73
104
  async delete(messageId: string): Promise<APIResponse<void>> {
74
- return this.client.DELETE<void>("/v1/api/dlq/{id}", {
105
+ return this.client.DELETE<void>("/v1/api/runs/dlq/{id}", {
75
106
  params: { path: { id: messageId } },
76
107
  headers: this.headers(),
77
108
  });
@@ -81,12 +112,13 @@ export class DlqModule {
81
112
  * Purge DLQ messages.
82
113
  */
83
114
  async purge(params?: {
84
- workspace_id?: string;
85
- queue_name?: string;
86
- older_than_days?: number;
115
+ queue_name?: string; // Maps to messageType
87
116
  }): Promise<APIResponse<DlqPurgeResponse>> {
88
- return this.client.POST<DlqPurgeResponse>("/v1/api/dlq/purge", {
89
- body: params ?? {},
117
+ const queryParams: Record<string, any> = {};
118
+ if (params?.queue_name) queryParams.messageType = params.queue_name;
119
+
120
+ return this.client.DELETE<DlqPurgeResponse>("/v1/api/runs/dlq/purge", {
121
+ params: { query: queryParams },
90
122
  headers: this.headers(),
91
123
  });
92
124
  }
@@ -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
+