@mastra/client-js 1.51.0-alpha.8 → 1.51.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.
@@ -3,7 +3,7 @@ name: mastra-client-js
3
3
  description: Documentation for @mastra/client-js. Use when working with @mastra/client-js APIs, configuration, or implementation.
4
4
  metadata:
5
5
  package: "@mastra/client-js"
6
- version: "1.51.0-alpha.8"
6
+ version: "1.51.0"
7
7
  ---
8
8
 
9
9
  ## When to use
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.51.0-alpha.8",
2
+ "version": "1.51.0",
3
3
  "package": "@mastra/client-js",
4
4
  "exports": {},
5
5
  "modules": {}
@@ -401,7 +401,7 @@ Create the session under `thread.resourceId`. Because a session can bind only th
401
401
 
402
402
  Failures that aren't refusals (a storage outage, a bug in your resolver's dependencies) still post an error to the thread, so a broken bot doesn't look like a silent one. If you need to tell them apart in your own code, a refusal is a `ChannelSessionRejectedError` with the original error as its `cause`.
403
403
 
404
- `resolveSession` also runs when a user answers an approval card, with that action's request context, so a shared install revalidates the person approving rather than trusting the person who sent the original message.
404
+ `resolveSession` also runs when a user answers an approval card, with that action's request context. A shared install revalidates the person approving rather than trusting the person who sent the original message.
405
405
 
406
406
  ### Handle stale approvals
407
407
 
@@ -470,7 +470,7 @@ const subscription = await session.subscribe({
470
470
  subscription.unsubscribe()
471
471
  ```
472
472
 
473
- `subscribe()` takes an options object and is async, unlike the in-process listener. Its promise resolves once the stream is established and rejects when it can't connect, so a rejected call leaves nothing running in the background. `reconnect: true` re-establishes a stream that drops after it was established, with exponential backoff.
473
+ `subscribe()` takes an options object and is async, unlike the in-process listener. Its promise resolves once the stream is established and rejects when it can't connect. A rejected call leaves nothing running in the background. `reconnect: true` re-establishes a stream that drops after it was established, with exponential backoff.
474
474
 
475
475
  The server doesn't replay events missed while the stream was down, so read `session.state()` from `onReconnect` for the current mode, model, and thread. The client surface has no `session.displayState.get()`.
476
476
 
@@ -483,4 +483,6 @@ Send work with `session.sendMessage(content)`, or `session.sendMessage({ content
483
483
  - [Agents](https://mastra.ai/docs/agents/overview)
484
484
  - [Workspace](https://mastra.ai/docs/sandbox/overview)
485
485
  - [Observational memory](https://mastra.ai/docs/memory/observational-memory)
486
- - [Channels](https://mastra.ai/docs/channels)
486
+ - [Channels](https://mastra.ai/docs/channels)
487
+ - [Mastra Code](https://code.mastra.ai)
488
+ - [Mastra Factory](https://factory.mastra.ai)
@@ -73,7 +73,7 @@ Without a `threadId`, each fire is an isolated `agent.generate()` run. Nothing i
73
73
 
74
74
  ### Threaded
75
75
 
76
- With a `threadId`, the schedule sends a [signal](https://mastra.ai/docs/harness/signals) into that thread, so the prompt joins the agent's conversation. Threaded schedules require a `resourceId` alongside the `threadId`.
76
+ With a `threadId`, the schedule sends a [signal](https://mastra.ai/docs/harness/signals) into that thread. The prompt joins the agent's conversation. Threaded schedules require a `resourceId` alongside the `threadId`.
77
77
 
78
78
  ```typescript
79
79
  await mastra.schedules.create({
@@ -196,6 +196,33 @@ Every hook context includes `agentId` (the agent the schedule fired for) alongsi
196
196
 
197
197
  Hook exceptions are caught and logged. They never re-route the worker or trigger another hook.
198
198
 
199
+ ## Recurring prompts in Mastra Code
200
+
201
+ Mastra Code offers the `/schedules` command, which attaches a recurring prompt to the current conversation thread. Unlike `mastra.schedules`, these schedules live only in the Mastra Code process that created them: nothing is written to storage, and each fire is sent to the thread with `agent.sendSignal()` directly.
202
+
203
+ Run `/schedules` to open a menu with **Create schedule** and one row per schedule on the current thread. Creating a schedule walks through these steps:
204
+
205
+ 1. Choose what each fire sends: a **Prompt**, a **Prompt file** that's re-read on every fire, or a **Script** that runs on every fire.
206
+ 2. Enter the prompt text or the file path. Paths resolve from the project root. For a script, you can add a prompt that's sent after the script output.
207
+ 3. Pick a cadence from `1m` to `1d`, or type one such as `20m` or `3h`. Minute steps must divide an hour and hour steps must divide a day.
208
+ 4. Confirm.
209
+
210
+ Scripts run from the project root with a 60-second timeout, and their stdout, stderr, and exit code become the prompt. The extra prompt is never passed to the script.
211
+
212
+ Selecting an existing schedule offers **Run now**, **Pause** or **Resume**, and **Delete**. **Run now** fires the schedule once without changing its cadence, works on paused schedules, and is skipped while a fire of the same schedule is still running.
213
+
214
+ Each fire arrives on the thread as a `user`-type signal and shows in the transcript as a `schedule` entry with the schedule's id, cadence, source, and script exit status. If the thread is busy, the running agent receives the prompt as its next input, the same way a message you type mid-run does. If the thread is idle, it wakes and runs. Schedules fire on any thread in the process, not only the one focused in the terminal. After `/new`, a new schedule binds to the new thread.
215
+
216
+ Things to know:
217
+
218
+ - **Session scoped.** Schedules exist only in the Mastra Code process that created them and stop when it exits. Other Mastra Code processes sharing the same database never see or fire them.
219
+ - **Clock boundaries.** `5m` fires at :00, :05, :10 and so on, not five minutes after creation, and `1d` fires at local midnight. Hour and day cadences follow wall-clock time across daylight saving changes, like cron. A fire missed while the machine slept, or one whose timer runs more than a minute late, is skipped, and the schedule resumes at the next boundary.
220
+ - **Overlapping fires are skipped.** If a script is still running when the next boundary arrives, that fire doesn't run.
221
+
222
+ ### Agent schedule tools
223
+
224
+ Turning on **Experimental schedule tools** in `/settings` (restart required) gives the agent tools that manage the same schedules: `schedule_create`, `schedule_list`, `schedule_update` (pause or delete), `schedule_resume`, and `schedule_run`. The tools only see and change schedules on the thread of the run that calls them. Because a schedule can run a script on every fire, `schedule_create`, `schedule_resume`, and `schedule_run` need the same approval as running a shell command unless YOLO mode is on. Schedules the agent creates are marked `created by agent` in the transcript.
225
+
199
226
  ## Related
200
227
 
201
228
  - [`mastra.schedules`](https://mastra.ai/reference/schedules/overview): API reference for creating and managing schedules.
@@ -218,7 +218,7 @@ export const agentsMdReminderProcessor: Processor = {
218
218
  }
219
219
  ```
220
220
 
221
- Reactive signals default to `tagName: 'system-reminder'`, so the model receives this context as
221
+ Reactive signals default to `tagName: 'system-reminder'`. The model receives this context as
222
222
 
223
223
  ```xml
224
224
  <system-reminder type="dynamic-agents-md" path="packages/ui/AGENTS.md">
@@ -411,7 +411,7 @@ export const mastra = new Mastra({
411
411
  })
412
412
  ```
413
413
 
414
- `RedisStreamsPubSub` implements both the event delivery contract and distributed leasing, so a single backend handles cross-instance signal delivery and lease ownership. Vercel's managed Redis integration and Upstash Redis both work well. For more on when a distributed pub/sub is needed, see the [PubSub guide](https://mastra.ai/docs/server/pubsub) and the [`RedisStreamsPubSub` reference](https://mastra.ai/reference/pubsub/redis-streams).
414
+ `RedisStreamsPubSub` implements both the event delivery contract and distributed leasing. A single backend handles cross-instance signal delivery and lease ownership. Vercel's managed Redis integration and Upstash Redis both work well. For more on when a distributed pub/sub is needed, see the [PubSub guide](https://mastra.ai/docs/server/pubsub) and the [`RedisStreamsPubSub` reference](https://mastra.ai/reference/pubsub/redis-streams).
415
415
 
416
416
  ## Compatibility and APIs
417
417
 
@@ -91,7 +91,7 @@ Returns: `Promise<CreateAgentControllerSessionResponse>`
91
91
 
92
92
  ### `subscribe(options)`
93
93
 
94
- Subscribes to the session's event stream over SSE. The promise resolves once the stream is established and rejects when it can't connect, so a rejected call leaves nothing running in the background. `reconnect` only governs re-establishing a stream that drops after it was established. To retry the initial connection, loop around `subscribe()`.
94
+ Subscribes to the session's event stream over SSE. The promise resolves once the stream is established and rejects when it can't connect. A rejected call leaves nothing running in the background. `reconnect` only governs re-establishing a stream that drops after it was established. To retry the initial connection, loop around `subscribe()`.
95
95
 
96
96
  **onEvent** (`(event: AgentControllerEvent) => void`): Called for each event received over the stream. See Events for the event types.
97
97
 
@@ -283,21 +283,21 @@ Hono and Fastify enforce the request-body limit before JSON parsing. Express and
283
283
 
284
284
  ## Fields and operators
285
285
 
286
- | Predicate context | Fields | Operators |
287
- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------- |
288
- | Trace | `traceId`, `threadId`, `resourceId`, `entityName`, `entityType`, `environment`, `status` | `eq`, `ne`, `in`, `notIn`, `exists`, `notExists` |
289
- | Trace metadata | `metadata.<key>` | `eq`, `ne`, `in`, `notIn`, `exists`, `notExists` |
290
- | Trace | `startedAt`, `endedAt`, `durationMs` | `eq`, `ne`, `in`, `notIn`, `lt`, `lte`, `gt`, `gte`, `exists`, `notExists` |
291
- | Trace | `tags` | `includes`, `notIncludes`, `exists`, `notExists` |
292
- | Span | `name`, `spanType`, `model`, `provider`, `status`, `entityType`, `entityId`, `entityName`, `entityVersionId`, `parentEntityVersionId`, `rootEntityVersionId` | `eq`, `ne`, `in`, `notIn`, `exists`, `notExists` |
293
- | Span | `startedAt`, `endedAt`, `durationMs` | `eq`, `ne`, `in`, `notIn`, `lt`, `lte`, `gt`, `gte`, `exists`, `notExists` |
294
- | Span | `error` | `exists`, `notExists` |
295
- | Score | `scorerId`, `scorerVersion`, `scoreSource`, `entityVersionId`, `parentEntityVersionId`, `rootEntityVersionId` | `eq`, `ne`, `in`, `notIn`, `exists`, `notExists` |
296
- | Score | `score`, `timestamp` | `eq`, `ne`, `in`, `notIn`, `lt`, `lte`, `gt`, `gte`, `exists`, `notExists` |
297
- | Score | `spanId` | `exists`, `notExists` |
298
- | Feedback | `feedbackType`, `feedbackSource`, `feedbackUserId`, `sourceId`, `entityVersionId`, `parentEntityVersionId`, `rootEntityVersionId` | `eq`, `ne`, `in`, `notIn`, `exists`, `notExists` |
299
- | Feedback | `value`, `timestamp` | `eq`, `ne`, `in`, `notIn`, `lt`, `lte`, `gt`, `gte`, `exists`, `notExists` |
300
- | Feedback | `comment` | `exists`, `notExists` |
286
+ | Predicate context | Fields | Operators |
287
+ | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
288
+ | Trace | `traceId`, `threadId`, `resourceId`, `runId`, `sessionId`, `userId`, `organizationId`, `entityName`, `entityType`, `environment`, `status` | `eq`, `ne`, `in`, `notIn`, `exists`, `notExists` |
289
+ | Trace metadata | `metadata.<key>` | `eq`, `ne`, `in`, `notIn`, `exists`, `notExists` |
290
+ | Trace | `startedAt`, `endedAt`, `durationMs` | `eq`, `ne`, `in`, `notIn`, `lt`, `lte`, `gt`, `gte`, `exists`, `notExists` |
291
+ | Trace | `tags` | `includes`, `notIncludes`, `exists`, `notExists` |
292
+ | Span | `name`, `spanType`, `model`, `provider`, `status`, `entityType`, `entityId`, `entityName`, `entityVersionId`, `parentEntityVersionId`, `rootEntityVersionId`, `runId`, `sessionId`, `userId`, `organizationId` | `eq`, `ne`, `in`, `notIn`, `exists`, `notExists` |
293
+ | Span | `startedAt`, `endedAt`, `durationMs` | `eq`, `ne`, `in`, `notIn`, `lt`, `lte`, `gt`, `gte`, `exists`, `notExists` |
294
+ | Span | `error` | `exists`, `notExists` |
295
+ | Score | `scorerId`, `scorerVersion`, `scoreSource`, `entityVersionId`, `parentEntityVersionId`, `rootEntityVersionId` | `eq`, `ne`, `in`, `notIn`, `exists`, `notExists` |
296
+ | Score | `score`, `timestamp` | `eq`, `ne`, `in`, `notIn`, `lt`, `lte`, `gt`, `gte`, `exists`, `notExists` |
297
+ | Score | `spanId` | `exists`, `notExists` |
298
+ | Feedback | `feedbackType`, `feedbackSource`, `feedbackUserId`, `sourceId`, `entityVersionId`, `parentEntityVersionId`, `rootEntityVersionId` | `eq`, `ne`, `in`, `notIn`, `exists`, `notExists` |
299
+ | Feedback | `value`, `timestamp` | `eq`, `ne`, `in`, `notIn`, `lt`, `lte`, `gt`, `gte`, `exists`, `notExists` |
300
+ | Feedback | `comment` | `exists`, `notExists` |
301
301
 
302
302
  Compose predicates with `{ op: 'and', args: [...] }`, `{ op: 'or', args: [...] }`, and `{ op: 'not', arg: ... }`. Comparison predicates place a field reference on the left and a literal on the right. Membership predicates use a field reference in `value` and a homogeneous literal array in `set`. Tag predicates name the stored tag collection in `path`. `includes` and `notIncludes` also take one tag in `value`, while `exists` and `notExists` take only `op` and `path`. See [Filter by tags](#filter-by-tags).
303
303
 
@@ -319,6 +319,27 @@ This top-level predicate doesn't inspect child spans. In contrast, `spans.some`
319
319
 
320
320
  Trace queries exclude incomplete roots before evaluating predicates. As a result, `{ op: 'notExists', path: 'durationMs' }` doesn't find running traces or malformed roots without a usable `endedAt`.
321
321
 
322
+ ### Filter by context identifiers
323
+
324
+ `runId`, `sessionId`, `userId`, and `organizationId` are available at trace scope and inside `spans.some` / `spans.none`. Trace-scope predicates read the current root span. Span-scope predicates bind to one related current span, so a run recorded only on a child span is found through `spans.some`:
325
+
326
+ ```typescript
327
+ const sessionTracesWithRun = {
328
+ op: 'and',
329
+ args: [
330
+ { op: 'eq', left: { path: 'organizationId' }, right: { literal: 'org-123' } },
331
+ { op: 'eq', left: { path: 'sessionId' }, right: { literal: 'session-123' } },
332
+ {
333
+ spans: {
334
+ some: { op: 'eq', left: { path: 'runId' }, right: { literal: 'run-42' } },
335
+ },
336
+ },
337
+ ],
338
+ }
339
+ ```
340
+
341
+ These identifiers support `eq`, `ne`, `in`, `notIn`, `exists`, and `notExists`. Field discovery lists them, but value discovery doesn't return their recorded values. Stores advertise support through the `trace-query-context-ids` feature. A predicate on one of these fields against an older store returns `501` before storage runs, and field discovery omits them for that store.
342
+
322
343
  ### Filter by span properties
323
344
 
324
345
  Every condition inside one `spans.some` or `spans.none` clause applies to the same current span. For example, this predicate finds a failed tool span whose name is `medication_lookup`; a matching name on one span and an error on another don't satisfy it:
@@ -679,7 +700,7 @@ const plan = planTraceQuery(parseTraceQueryRequest(request), {
679
700
  })
680
701
  ```
681
702
 
682
- `resourceId` is optional and narrows within the organization. Keyset and delta cursors are bound to the scope, so a cursor minted under one scope and reused under another returns `409` before storage runs. A scoped request against an observability store or `@mastra/core` that predates tenant scope returns `501` instead of running unscoped. Stores advertise support through the `trace-query-tenant-scope` feature. Callers can't name `organizationId` or `projectId` in predicates. Without a scope the routes behave as before, so self-hosted installations keep their own tenant model.
703
+ `resourceId` is optional and narrows within the organization. Keyset and delta cursors are bound to the scope. A cursor created under one scope and reused under another returns `409` before storage runs. A scoped request against an observability store or `@mastra/core` that predates tenant scope returns `501` instead of running unscoped. Stores advertise support through the `trace-query-tenant-scope` feature. Callers can't name `projectId` in predicates. An `organizationId` predicate compares recorded data and is ANDed with the scope, so it can only narrow the tenant's own traces and never widens it. Without a scope the routes behave as before, so self-hosted installations keep their own tenant model.
683
704
 
684
705
  Cursor pagination is deterministic, but it isn't a database snapshot. Traces or replacement signals written between page requests can change later pages.
685
706
 
@@ -96,12 +96,12 @@ type InputShared_Auxiliary_223 = {
96
96
  op: 'not';
97
97
  arg: InputShared_Auxiliary_223;
98
98
  };
99
- type InputShared_Auxiliary_251 = {
99
+ type InputShared_Auxiliary_254 = {
100
100
  op: 'and' | 'or';
101
- args: InputShared_Auxiliary_251[];
101
+ args: InputShared_Auxiliary_254[];
102
102
  } | {
103
103
  op: 'not';
104
- arg: InputShared_Auxiliary_251;
104
+ arg: InputShared_Auxiliary_254;
105
105
  } | {
106
106
  traces: {
107
107
  some: InputShared_Auxiliary_204;
@@ -109,7 +109,7 @@ type InputShared_Auxiliary_251 = {
109
109
  none: InputShared_Auxiliary_204;
110
110
  };
111
111
  };
112
- type InputShared_Auxiliary_667 = {
112
+ type InputShared_Auxiliary_670 = {
113
113
  op: 'eq' | 'ne' | 'lt' | 'lte' | 'gt' | 'gte';
114
114
  left: {
115
115
  path: string;
@@ -141,24 +141,24 @@ type InputShared_Auxiliary_667 = {
141
141
  };
142
142
  } | {
143
143
  op: 'and' | 'or';
144
- args: InputShared_Auxiliary_667[];
144
+ args: InputShared_Auxiliary_670[];
145
145
  } | {
146
146
  op: 'not';
147
- arg: InputShared_Auxiliary_667;
147
+ arg: InputShared_Auxiliary_670;
148
148
  };
149
- type InputShared_Auxiliary_741 = {
149
+ type InputShared_Auxiliary_744 = {
150
150
  id?: string | undefined;
151
151
  name: string;
152
152
  type: 'file' | 'folder';
153
153
  content?: string | undefined;
154
- children?: InputShared_Auxiliary_741[] | undefined;
154
+ children?: InputShared_Auxiliary_744[] | undefined;
155
155
  };
156
- type Shared_Auxiliary_750 = {
156
+ type Shared_Auxiliary_752 = {
157
157
  id?: string | undefined;
158
158
  name: string;
159
159
  type: 'file' | 'folder';
160
160
  content?: string | undefined;
161
- children?: Shared_Auxiliary_750[] | undefined;
161
+ children?: Shared_Auxiliary_752[] | undefined;
162
162
  };
163
163
  type InputShared_Type_0 = {
164
164
  thread: string | {
@@ -1280,7 +1280,7 @@ type InputShared_Type_86 = {
1280
1280
  [key: string]: unknown;
1281
1281
  } | undefined;
1282
1282
  steps: InputShared_Type_81[];
1283
- predicates: InputShared_Auxiliary_667[];
1283
+ predicates: InputShared_Auxiliary_670[];
1284
1284
  };
1285
1285
  type InputShared_Type_87 = {
1286
1286
  type: 'loop';
@@ -1291,7 +1291,7 @@ type InputShared_Type_87 = {
1291
1291
  } | undefined;
1292
1292
  step: InputShared_Type_81;
1293
1293
  loopType: 'dowhile' | 'dountil';
1294
- predicate: InputShared_Auxiliary_667;
1294
+ predicate: InputShared_Auxiliary_670;
1295
1295
  };
1296
1296
  type InputShared_Type_88 = InputShared_Type_78 | InputShared_Type_79 | InputShared_Type_80 | {
1297
1297
  type: 'workflow';
@@ -2671,6 +2671,8 @@ type Shared_Type_65 = {
2671
2671
  traceQuery: boolean;
2672
2672
  /** `durationMs` predicates in trace and thread queries */
2673
2673
  traceQueryRootDuration: boolean;
2674
+ /** `runId`, `sessionId`, `userId` and `organizationId` predicates in trace and thread queries */
2675
+ traceQueryContextIds: boolean;
2674
2676
  /** Trace query field discovery (POST /observability/traces/query/fields and /values) */
2675
2677
  traceQueryDiscovery: boolean;
2676
2678
  /** Trusted tenant scoping of trace and thread queries */
@@ -3073,7 +3075,7 @@ type Shared_Type_81 = {
3073
3075
  /** List of asset file paths */
3074
3076
  assets?: string[] | undefined;
3075
3077
  /** Full file tree structure for the skill */
3076
- files?: Shared_Auxiliary_750[] | undefined;
3078
+ files?: Shared_Auxiliary_752[] | undefined;
3077
3079
  /** Additional metadata for the skill */
3078
3080
  metadata?: {
3079
3081
  [key: string]: unknown;
@@ -7850,6 +7852,53 @@ export interface PostObservabilityTracesQuery_RouteContract {
7850
7852
  response: PostObservabilityTracesQuery_Response;
7851
7853
  responseType: 'json';
7852
7854
  }
7855
+ export type PostObservabilityTracesAggregate_Body = {
7856
+ timeRange: {
7857
+ from: string;
7858
+ to: string;
7859
+ };
7860
+ where?: InputShared_Auxiliary_204 | undefined;
7861
+ groupBy?: string[];
7862
+ interval?: ('1m' | '5m' | '15m' | '1h' | '1d') | undefined;
7863
+ measures: (('count' | 'duration.avg' | 'duration.min' | 'duration.max' | 'duration.p50' | 'duration.p90' | 'duration.p95' | 'duration.p99' | 'errorCount' | 'errorRate') | `countDistinct.${string}`)[];
7864
+ having?: InputShared_Auxiliary_223 | undefined;
7865
+ orderBy?: {
7866
+ field: string;
7867
+ direction: 'asc' | 'desc';
7868
+ };
7869
+ limit?: number;
7870
+ };
7871
+ export type PostObservabilityTracesAggregate_Response = {
7872
+ rows: {
7873
+ dimensions?: {
7874
+ [key: string]: string | null;
7875
+ } | undefined;
7876
+ bucket?: string | undefined;
7877
+ measures: {
7878
+ [K in ('count' | 'duration.avg' | 'duration.min' | 'duration.max' | 'duration.p50' | 'duration.p90' | 'duration.p95' | 'duration.p99' | 'errorCount' | 'errorRate') | `countDistinct.${string}`]?: number;
7879
+ };
7880
+ }[];
7881
+ truncated: boolean;
7882
+ };
7883
+ export type PostObservabilityTracesAggregate_Request = Simplify<(never extends never ? {} : {
7884
+ params: never;
7885
+ }) & (never extends never ? {} : {} extends never ? {
7886
+ query?: never;
7887
+ } : {
7888
+ query: never;
7889
+ }) & (PostObservabilityTracesAggregate_Body extends never ? {} : {} extends PostObservabilityTracesAggregate_Body ? {
7890
+ body?: PostObservabilityTracesAggregate_Body;
7891
+ } : {
7892
+ body: PostObservabilityTracesAggregate_Body;
7893
+ })>;
7894
+ export interface PostObservabilityTracesAggregate_RouteContract {
7895
+ pathParams: never;
7896
+ queryParams: never;
7897
+ body: PostObservabilityTracesAggregate_Body;
7898
+ request: PostObservabilityTracesAggregate_Request;
7899
+ response: PostObservabilityTracesAggregate_Response;
7900
+ responseType: 'json';
7901
+ }
7853
7902
  export type PostObservabilityThreadsQuery_Body = {
7854
7903
  traces: {
7855
7904
  timeRange: {
@@ -7858,7 +7907,7 @@ export type PostObservabilityThreadsQuery_Body = {
7858
7907
  };
7859
7908
  where?: InputShared_Auxiliary_204 | undefined;
7860
7909
  };
7861
- where?: InputShared_Auxiliary_251 | undefined;
7910
+ where?: InputShared_Auxiliary_254 | undefined;
7862
7911
  page?: {
7863
7912
  limit?: number;
7864
7913
  after?: (string | null) | undefined;
@@ -14150,7 +14199,7 @@ export type PostStoredSkills_Body = {
14150
14199
  /** List of asset file paths */
14151
14200
  assets?: string[] | undefined;
14152
14201
  /** Full file tree structure for the skill */
14153
- files?: InputShared_Auxiliary_741[] | undefined;
14202
+ files?: InputShared_Auxiliary_744[] | undefined;
14154
14203
  /** Additional metadata for the skill */
14155
14204
  metadata?: {
14156
14205
  [key: string]: unknown;
@@ -14200,7 +14249,7 @@ export type PatchStoredSkillsStoredSkillId_Body = {
14200
14249
  /** List of asset file paths */
14201
14250
  assets?: (string[] | undefined) | undefined;
14202
14251
  /** Full file tree structure for the skill */
14203
- files?: (InputShared_Auxiliary_741[] | undefined) | undefined;
14252
+ files?: (InputShared_Auxiliary_744[] | undefined) | undefined;
14204
14253
  /** Additional metadata for the skill */
14205
14254
  metadata?: ({
14206
14255
  [key: string]: unknown;
@@ -18550,6 +18599,7 @@ export interface RouteTypes {
18550
18599
  'POST /observability/traces/score': PostObservabilityTracesScore_RouteContract;
18551
18600
  'GET /observability/traces/:traceId/:spanId/scores': GetObservabilityTracesTraceIdSpanIdScores_RouteContract;
18552
18601
  'POST /observability/traces/query': PostObservabilityTracesQuery_RouteContract;
18602
+ 'POST /observability/traces/aggregate': PostObservabilityTracesAggregate_RouteContract;
18553
18603
  'POST /observability/threads/query': PostObservabilityThreadsQuery_RouteContract;
18554
18604
  'POST /observability/traces/query/fields': PostObservabilityTracesQueryFields_RouteContract;
18555
18605
  'POST /observability/traces/query/values': PostObservabilityTracesQueryValues_RouteContract;
@@ -19507,6 +19557,9 @@ export interface Client {
19507
19557
  '/observability/traces/:traceId/trajectory': {
19508
19558
  GET: GetObservabilityTracesTraceIdTrajectory_RouteContract;
19509
19559
  };
19560
+ '/observability/traces/aggregate': {
19561
+ POST: PostObservabilityTracesAggregate_RouteContract;
19562
+ };
19510
19563
  '/observability/traces/delete': {
19511
19564
  POST: PostObservabilityTracesDelete_RouteContract;
19512
19565
  };