@mastra/client-js 1.11.2-alpha.0 → 1.12.0-alpha.0

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/index.js CHANGED
@@ -322,7 +322,11 @@ async function executeToolCallAndRespond({
322
322
  }
323
323
  ];
324
324
  const updatedMessages = threadId ? newMessages : [...Array.isArray(params.messages) ? params.messages : [], ...newMessages];
325
- return respondFn(updatedMessages, params);
325
+ const respondOptions = {
326
+ ...params
327
+ };
328
+ delete respondOptions.messages;
329
+ return respondFn(updatedMessages, respondOptions);
326
330
  }
327
331
  }
328
332
  }
@@ -1953,6 +1957,45 @@ var Processor = class extends BaseResource {
1953
1957
  });
1954
1958
  }
1955
1959
  };
1960
+
1961
+ // src/resources/conversations.ts
1962
+ var ConversationItems = class extends BaseResource {
1963
+ constructor(options) {
1964
+ super(options);
1965
+ }
1966
+ list(conversationId, requestContext) {
1967
+ return this.request(
1968
+ `/v1/conversations/${encodeURIComponent(conversationId)}/items${requestContextQueryString(requestContext)}`
1969
+ );
1970
+ }
1971
+ };
1972
+ var Conversations = class extends BaseResource {
1973
+ items;
1974
+ constructor(options) {
1975
+ super(options);
1976
+ this.items = new ConversationItems(options);
1977
+ }
1978
+ create(params) {
1979
+ const { requestContext, ...body } = params;
1980
+ return this.request(`/v1/conversations${requestContextQueryString(requestContext)}`, {
1981
+ method: "POST",
1982
+ body
1983
+ });
1984
+ }
1985
+ retrieve(conversationId, requestContext) {
1986
+ return this.request(
1987
+ `/v1/conversations/${encodeURIComponent(conversationId)}${requestContextQueryString(requestContext)}`
1988
+ );
1989
+ }
1990
+ delete(conversationId, requestContext) {
1991
+ return this.request(
1992
+ `/v1/conversations/${encodeURIComponent(conversationId)}${requestContextQueryString(requestContext)}`,
1993
+ {
1994
+ method: "DELETE"
1995
+ }
1996
+ );
1997
+ }
1998
+ };
1956
1999
  function deserializeWorkflowError(result) {
1957
2000
  if (result.status === "failed" && result.error) {
1958
2001
  result.error = getErrorFromUnknown(result.error, {
@@ -4109,12 +4152,151 @@ var StoredSkill = class extends BaseResource {
4109
4152
  }
4110
4153
  };
4111
4154
 
4155
+ // src/resources/responses.ts
4156
+ function getOutputText(output) {
4157
+ return output.flatMap((item) => item.type === "message" ? item.content : []).map((part) => typeof part?.text === "string" ? part.text : "").filter(Boolean).join("");
4158
+ }
4159
+ function attachOutputText(response) {
4160
+ return {
4161
+ ...response,
4162
+ output_text: getOutputText(response.output)
4163
+ };
4164
+ }
4165
+ function hydrateOutputItem(item) {
4166
+ if (item.type !== "message") {
4167
+ return item;
4168
+ }
4169
+ return {
4170
+ ...item,
4171
+ content: item.content ?? []
4172
+ };
4173
+ }
4174
+ function hydrateStreamEvent(event) {
4175
+ if (typeof event === "object" && event !== null && "response" in event && (event.type === "response.created" || event.type === "response.in_progress" || event.type === "response.completed")) {
4176
+ return {
4177
+ ...event,
4178
+ response: attachOutputText(event.response)
4179
+ };
4180
+ }
4181
+ if (typeof event === "object" && event !== null && "output" in event) {
4182
+ return attachOutputText(event);
4183
+ }
4184
+ if (typeof event === "object" && event !== null && "item" in event && (event.type === "response.output_item.added" || event.type === "response.output_item.done")) {
4185
+ return {
4186
+ ...event,
4187
+ item: hydrateOutputItem(event.item)
4188
+ };
4189
+ }
4190
+ return event;
4191
+ }
4192
+ function parseSseBlock(block) {
4193
+ const normalizedBlock = block.replace(/\r\n/g, "\n").trim();
4194
+ if (!normalizedBlock) {
4195
+ return null;
4196
+ }
4197
+ const dataLines = normalizedBlock.split("\n").filter((line) => line.startsWith("data:")).map((line) => line.slice("data:".length).trim());
4198
+ if (!dataLines.length) {
4199
+ return null;
4200
+ }
4201
+ const data = dataLines.join("\n");
4202
+ if (data === "[DONE]") {
4203
+ return null;
4204
+ }
4205
+ return hydrateStreamEvent(JSON.parse(data));
4206
+ }
4207
+ var ResponsesStream = class {
4208
+ constructor(response) {
4209
+ this.response = response;
4210
+ }
4211
+ asResponse() {
4212
+ return this.response;
4213
+ }
4214
+ async *[Symbol.asyncIterator]() {
4215
+ if (!this.response.body) {
4216
+ return;
4217
+ }
4218
+ const reader = this.response.body.getReader();
4219
+ const decoder = new TextDecoder();
4220
+ let buffer = "";
4221
+ let completed = false;
4222
+ try {
4223
+ while (true) {
4224
+ const { done, value } = await reader.read();
4225
+ buffer += decoder.decode(value ?? new Uint8Array(), { stream: !done });
4226
+ let boundaryIndex = buffer.indexOf("\n\n");
4227
+ while (boundaryIndex !== -1) {
4228
+ const block = buffer.slice(0, boundaryIndex);
4229
+ buffer = buffer.slice(boundaryIndex + 2);
4230
+ const parsed = parseSseBlock(block);
4231
+ if (parsed) {
4232
+ yield parsed;
4233
+ }
4234
+ boundaryIndex = buffer.indexOf("\n\n");
4235
+ }
4236
+ if (done) {
4237
+ break;
4238
+ }
4239
+ }
4240
+ const finalEvent = parseSseBlock(buffer);
4241
+ completed = true;
4242
+ if (finalEvent) {
4243
+ yield finalEvent;
4244
+ }
4245
+ } finally {
4246
+ if (!completed) {
4247
+ await reader.cancel();
4248
+ }
4249
+ reader.releaseLock();
4250
+ }
4251
+ }
4252
+ };
4253
+ var Responses = class extends BaseResource {
4254
+ constructor(options) {
4255
+ super(options);
4256
+ }
4257
+ async create(params) {
4258
+ const { requestContext, ...body } = params;
4259
+ const path = `/v1/responses${requestContextQueryString(requestContext)}`;
4260
+ if (params.stream) {
4261
+ const response2 = await this.request(path, {
4262
+ method: "POST",
4263
+ body,
4264
+ stream: true
4265
+ });
4266
+ return new ResponsesStream(response2);
4267
+ }
4268
+ const response = await this.request(path, {
4269
+ method: "POST",
4270
+ body
4271
+ });
4272
+ return attachOutputText(response);
4273
+ }
4274
+ stream(params) {
4275
+ return this.create({ ...params, stream: true });
4276
+ }
4277
+ async retrieve(responseId, requestContext) {
4278
+ const response = await this.request(
4279
+ `/v1/responses/${encodeURIComponent(responseId)}${requestContextQueryString(requestContext)}`
4280
+ );
4281
+ return attachOutputText(response);
4282
+ }
4283
+ delete(responseId, requestContext) {
4284
+ return this.request(`/v1/responses/${encodeURIComponent(responseId)}${requestContextQueryString(requestContext)}`, {
4285
+ method: "DELETE"
4286
+ });
4287
+ }
4288
+ };
4289
+
4112
4290
  // src/client.ts
4113
4291
  var MastraClient = class extends BaseResource {
4114
4292
  observability;
4293
+ conversations;
4294
+ responses;
4115
4295
  constructor(options) {
4116
4296
  super(options);
4117
4297
  this.observability = new Observability(options);
4298
+ this.conversations = new Conversations(options);
4299
+ this.responses = new Responses(options);
4118
4300
  }
4119
4301
  /**
4120
4302
  * Retrieves all available agents