lua-cli 3.43.0 → 3.45.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.
@@ -720,6 +720,15 @@ export declare interface AgentsApi {
720
720
  promote(version: number, opts: {
721
721
  expectActive: number | null;
722
722
  }): Promise<unknown>;
723
+ /**
724
+ * WD — restore `version`, a version that was ACTIVE before, is OLDER than the active one and was active within the
725
+ * last 7 days (`supervision:rollback`, held only by a WATCHDOG grant; only from a workflow step the grant names).
726
+ * Compare-and-swap: refused (409 `supervision_rollback_conflict`) unless `expectActive` is the active version.
727
+ * Other refusals: `supervision_rollback_never_active`, `supervision_rollback_not_older`, `supervision_rollback_too_old`.
728
+ */
729
+ rollback(version: number, opts: {
730
+ expectActive: number;
731
+ }): Promise<unknown>;
723
732
  /**
724
733
  * Soft-delete `version` (`supervision:release`; only from a named workflow step). Refused
725
734
  * (409 `supervision_version_not_superseded`) unless the version is `superseded` — never the
@@ -788,10 +797,12 @@ export declare interface AgentsApi {
788
797
  * Publish workflow `version` (a semver). Compare-and-swap: refused (409 `WORKFLOW_DEPLOY_CONFLICT`, the
789
798
  * message names the live version) unless `expectActive` is the workflow's live version ID (null = none live).
790
799
  * A deploy also records a new active agent version, so a later `versions.promote` needs a fresh
791
- * `expectActive`.
800
+ * `expectActive`. `commitHash` is the optional source commit the deployed version was built from; it is
801
+ * forwarded unchanged, and when omitted the platform decides what to record.
792
802
  */
793
803
  deploy(workflowId: string, version: string, opts: {
794
804
  expectActive: string | null;
805
+ commitHash?: string;
795
806
  }): Promise<unknown>;
796
807
  };
797
808
  persona(agentId: string): {
@@ -809,9 +820,14 @@ export declare interface AgentsApi {
809
820
  size?: number;
810
821
  }[];
811
822
  }>;
823
+ /**
824
+ * The file's text. A file that is not valid UTF-8 (an image, an archive) comes back base64 with
825
+ * `encoding: 'base64'` — never decoded as text. Absent `encoding` ⇒ `content` is the UTF-8 text.
826
+ */
812
827
  get(path: string): Promise<{
813
828
  path: string;
814
829
  content: string;
830
+ encoding?: 'base64';
815
831
  }>;
816
832
  };
817
833
  /** Environment variable NAMES only — values are never returned (`supervision:observe`). */
@@ -820,6 +836,17 @@ export declare interface AgentsApi {
820
836
  keys: string[];
821
837
  }>;
822
838
  };
839
+ /**
840
+ * What the agent serves RIGHT NOW (`supervision:observe`): its live skills (each with its tools), the published
841
+ * persona, its pre/postprocessors and its `model`, read from each primitive's live pointer, never the latest push. Each
842
+ * `versionId` means what an agent version snapshot's does (skill = semver, processor = version id, persona =
843
+ * persona version id with the same `contentHash`), so you can diff live against a staged version even when the
844
+ * agent has no promoted agent version (`activeAgentVersion: null`). `model` is the model the agent runs now (`''`
845
+ * when unset, as in a snapshot): a promote applies the version's model, so compare it with the snapshot's. Metadata and hashes only: read code with
846
+ * `source(agentId).get(path)` and persona text with `persona(agentId).versions()`. Platform only: offline
847
+ * (`lua test` / `lua dev`) it throws `supervision_offline_unsupported`.
848
+ */
849
+ deployed(agentId: string): Promise<DeployedPrimitives>;
823
850
  /**
824
851
  * Supervision events of the target (`supervision:observe`). Each event of a subscribed kind
825
852
  * (`governance.blocked`, `workflow.run_failed`, `workflow.run_gated`, `connection.unhealthy`, …)
@@ -1196,6 +1223,12 @@ declare interface AgentToolScope_2 {
1196
1223
  connectionIds?: string[];
1197
1224
  /** Allowlisted skill ids (from the agent's `subAgent.skills`). */
1198
1225
  skillIds?: string[];
1226
+ /**
1227
+ * Allowlisted tool ids, as a workflow agent step's `toolScope.toolIds` declares them. Today the runtime applies
1228
+ * it to device tools only: when it names at least one `device__<device>__<command>` tool, only the named device
1229
+ * tools are offered; otherwise (absent, empty, or no device tool named) device tools are unaffected.
1230
+ */
1231
+ toolIds?: string[];
1199
1232
  }
1200
1233
 
1201
1234
  export declare const AI: AiApi;
@@ -1251,6 +1284,27 @@ export declare interface AiApi {
1251
1284
  * ```
1252
1285
  */
1253
1286
  generate(options: AiGenerateInput): Promise<AiGenerateOutput>;
1287
+ /**
1288
+ * Generate ONE image from a prompt and return its hosted CDN url. The image sibling of `generate`:
1289
+ * proxied to the API (server-side provider + CDN upload + org billing), not the agent chat pipeline.
1290
+ * Returns a public `https://cdn.heylua.ai/…` url ready to embed (e.g. in a deck or a message).
1291
+ *
1292
+ * @example
1293
+ * ```typescript
1294
+ * const url = await AI.image('A sunrise over a calm sea, minimal, no text');
1295
+ * const wide = await AI.image('A clean product hero shot', { size: '1536x1024', quality: 'high' });
1296
+ * ```
1297
+ */
1298
+ image(prompt: string, options?: Omit<AiImageInput, 'prompt'>): Promise<string>;
1299
+ /**
1300
+ * Generate one image with full options. Returns the full `{ url, model, provider }`.
1301
+ *
1302
+ * @example
1303
+ * ```typescript
1304
+ * const { url, model } = await AI.image({ prompt: 'A minimal abstract cover', size: '1536x1024' });
1305
+ * ```
1306
+ */
1307
+ image(options: AiImageInput): Promise<AiImageOutput>;
1254
1308
  }
1255
1309
 
1256
1310
  /**
@@ -1392,6 +1446,34 @@ export declare interface AiGenerateToolResult {
1392
1446
  isError?: boolean;
1393
1447
  }
1394
1448
 
1449
+ /**
1450
+ * Wire-format types for sandbox `AI.image` / `POST developer/ai/:agentId/image` (JSON-serializable).
1451
+ * The image sibling of `AI.generate`: generates ONE image from a prompt, hosts it on the CDN, bills the
1452
+ * agent's org, and returns the public URL. Not the agent chat pipeline. DTOs live in `@lua/shared-dto`.
1453
+ */
1454
+ declare interface AiImageInput {
1455
+ /** Plain-language description of the image to draw (3–4000 chars). */
1456
+ prompt: string;
1457
+ /** Provider-prefixed image model, e.g. "openai/gpt-image-2". Defaults to the agent/platform image model. */
1458
+ model?: string;
1459
+ /** Image size, e.g. "1024x1024", "1536x1024", "1024x1536" (provider-dependent). */
1460
+ size?: string;
1461
+ /** Render quality. */
1462
+ quality?: 'low' | 'medium' | 'high';
1463
+ /** Output image format. */
1464
+ outputFormat?: 'png' | 'jpeg' | 'webp';
1465
+ }
1466
+
1467
+ /** Result from the image-generation surface. `url` is a public, hosted CDN link. */
1468
+ declare interface AiImageOutput {
1469
+ /** Public CDN URL of the generated image. */
1470
+ url: string;
1471
+ /** The model that produced the image. */
1472
+ model: string;
1473
+ /** The provider that produced the image. */
1474
+ provider: string;
1475
+ }
1476
+
1395
1477
  export declare const and: (...args: LuaPredicate[]) => LuaPredicate;
1396
1478
 
1397
1479
  /**
@@ -1906,9 +1988,9 @@ export declare const CDN: {
1906
1988
  /**
1907
1989
  * Channel type.
1908
1990
  * Represents the communication channel through which a request originated.
1909
- * Known channels are typed as string literals, unrecognized channels are unknown.
1991
+ * Known channels are typed as string literals; unrecognised channels fall through as plain strings.
1910
1992
  */
1911
- export declare type Channel = 'web' | 'whatsapp' | 'facebook' | 'instagram' | 'slack' | 'teams' | 'front' | 'messagebird' | 'api' | 'dev' | 'email' | string;
1993
+ export declare type Channel = 'web' | 'pop' | 'phone' | 'meeting' | 'whatsapp' | 'facebook' | 'instagram' | 'slack' | 'teams' | 'front' | 'messagebird' | 'api' | 'dev' | 'email' | 'rcs' | 'sms' | 'mms' | 'imessage' | 'device' | string;
1912
1994
 
1913
1995
  /** Channels accepted by the v1 unified send. Warm-only channels (teams,
1914
1996
  * instagram, messenger) require a prior inbound conversation. */
@@ -2918,8 +3000,8 @@ export { DatasetRef }
2918
3000
  * paper_low: {
2919
3001
  * description: 'Fired when paper level drops below threshold',
2920
3002
  * payloadSchema: z.object({ level: z.number() }),
2921
- * execute: async (payload, { agent }) => {
2922
- * await agent.chat(\`Printer paper low: \${payload.level}%\`);
3003
+ * execute: async (payload, { device, trigger }) => {
3004
+ * return { device: device.name, trigger: trigger.name, level: payload.level };
2923
3005
  * },
2924
3006
  * },
2925
3007
  * },
@@ -2944,8 +3026,8 @@ export declare function defineDevice(config: LuaDeviceConfig): LuaDevice;
2944
3026
  * name: 'paper-low',
2945
3027
  * description: 'Fired when printer paper drops below threshold',
2946
3028
  * payloadSchema: z.object({ level: z.number() }),
2947
- * execute: async (payload, { agent, device }) => {
2948
- * await agent.chat(\`Printer \${device.name} paper low: \${payload.level}%\`);
3029
+ * execute: async (payload, { device, trigger }) => {
3030
+ * return { device: device.name, trigger: trigger.name, level: payload.level };
2949
3031
  * },
2950
3032
  * });
2951
3033
  * ```
@@ -3139,6 +3221,69 @@ export declare interface DeliveryView {
3139
3221
  failedAt?: string;
3140
3222
  }
3141
3223
 
3224
+ declare interface DeployedPersona {
3225
+ versionId: string;
3226
+ version?: number;
3227
+ /** The same hash an agent version snapshot stores for its persona. */
3228
+ contentHash: string;
3229
+ }
3230
+
3231
+ /**
3232
+ * SV (LUA-1080) — `primitives.deployed` / `Agents.deployed(id)`: the target's CURRENTLY DEPLOYED primitives, read from
3233
+ * each primitive's live pointer (never the latest push). An agent whose live state was deployed primitive by
3234
+ * primitive, with no promoted agent version, answers the same shape, so a supervisor can diff it against a staged
3235
+ * version.
3236
+ *
3237
+ * `versionId` follows the agent version snapshot's semantics entry by entry: a skill's is its semver, a processor's
3238
+ * the version document id, the persona's the PersonaVersion id with the same `contentHash`. Never code, tool source
3239
+ * or persona text: read those with `source.get` and `persona.versions`.
3240
+ */
3241
+ declare interface DeployedPrimitives {
3242
+ agentId: string;
3243
+ /** The promoted (`active`) agent version, or null when the live state is not a promoted version. */
3244
+ activeAgentVersion: number | null;
3245
+ /**
3246
+ * The model the agent runs now (`SubAgent.model`), with the agent version snapshot's meaning: a promote writes
3247
+ * `snapshot.model` here, and an unset model reads `''` as it does in a snapshot, so `model === snapshot.model`
3248
+ * holds exactly when the release would leave the model unchanged.
3249
+ */
3250
+ model: string;
3251
+ skills: DeployedSkill[];
3252
+ /** The served (`published`) persona, or null when none is published. */
3253
+ persona: DeployedPersona | null;
3254
+ preprocessors: DeployedProcessor[];
3255
+ postprocessors: DeployedProcessor[];
3256
+ }
3257
+
3258
+ declare interface DeployedProcessor {
3259
+ id: string;
3260
+ name?: string;
3261
+ /** The live version document id (`activeVersionId`). */
3262
+ versionId: string;
3263
+ version: string;
3264
+ codeHash?: string;
3265
+ }
3266
+
3267
+ declare interface DeployedSkill {
3268
+ skillId: string;
3269
+ name?: string;
3270
+ /** The live semver (`Skills.activeVersionId`), as an agent version snapshot pins it. */
3271
+ versionId: string;
3272
+ version: string;
3273
+ /** Where the skill came from: `cli`, `marketplace`, `manual` or `template`. */
3274
+ origin?: string;
3275
+ /** The deployed version's tools. Equal skill `versionId` ⇒ equal tools. */
3276
+ tools: DeployedTool[];
3277
+ }
3278
+
3279
+ declare interface DeployedTool {
3280
+ name: string;
3281
+ /** The uploaded bundle's content hash, when the version stores one. */
3282
+ codeHash?: string;
3283
+ /** Whether the author's TypeScript source is attached to this version. */
3284
+ hasSource: boolean;
3285
+ }
3286
+
3142
3287
  declare type Depth = [never, 0, 1, 2, 3, 4];
3143
3288
 
3144
3289
  /** Configuration for a single device command (agent → device) */
@@ -3164,13 +3309,20 @@ export declare interface DeviceTriggerConfig {
3164
3309
  payloadSchema?: ZodType;
3165
3310
  /**
3166
3311
  * Handler that runs on lua-core when the device fires this trigger.
3167
- * Has full access to agent context (can call agent.chat(), use tools, etc.)
3312
+ * Receives `(payload, { device, trigger })`; the returned value is the trigger result.
3168
3313
  */
3169
- execute?: (payload: any, context: {
3170
- agent: any;
3171
- device: any;
3172
- trigger: any;
3173
- }) => Promise<any>;
3314
+ execute?: (payload: any, context: DeviceTriggerContext) => Promise<any>;
3315
+ }
3316
+
3317
+ /** Context a device-trigger handler receives; mirrors what lua-core (execute.device-trigger.service.ts) and sandbox-runtime (wrapper-templates.ts) pass. */
3318
+ export declare interface DeviceTriggerContext {
3319
+ device: {
3320
+ name: string;
3321
+ };
3322
+ trigger: {
3323
+ name: string;
3324
+ triggerId: string;
3325
+ };
3174
3326
  }
3175
3327
 
3176
3328
  /** A matched org member and their shareable channel targets (empty when none shared). */
@@ -3657,6 +3809,12 @@ declare abstract class HttpClient {
3657
3809
  * @private
3658
3810
  */
3659
3811
  private request;
3812
+ /**
3813
+ * A backoff wait the caller's signal can cut short (BAC-1097): resolves at `ms` or on abort, whichever is
3814
+ * first, and never leaves the timer or the listener behind. The caller re-checks `signal.aborted` afterwards.
3815
+ * @private
3816
+ */
3817
+ private sleep;
3660
3818
  /**
3661
3819
  * Non-2xx classification shared by `request` and `httpStream` (WF-204): 401s become
3662
3820
  * `AuthenticationError` (ownership vs credential), 403s throw, everything else returns the
@@ -4970,8 +5128,8 @@ export declare class LuaDevice {
4970
5128
  * paper_low: {
4971
5129
  * description: 'Fired when paper level drops below threshold',
4972
5130
  * payloadSchema: z.object({ level: z.number(), threshold: z.number() }),
4973
- * execute: async (payload, { agent }) => {
4974
- * await agent.chat(\`Printer paper low: \${payload.level}%\`);
5131
+ * execute: async (payload, { device, trigger }) => {
5132
+ * return { device: device.name, trigger: trigger.name, level: payload.level };
4975
5133
  * },
4976
5134
  * },
4977
5135
  * },
@@ -5003,12 +5161,7 @@ export declare class LuaDeviceTrigger {
5003
5161
  readonly name: string;
5004
5162
  readonly description: string;
5005
5163
  readonly payloadSchema?: ZodType;
5006
- readonly execute: (payload: any, context: {
5007
- agent: any;
5008
- device: {
5009
- name: string;
5010
- };
5011
- }) => Promise<any>;
5164
+ readonly execute: (payload: any, context: DeviceTriggerContext) => Promise<any>;
5012
5165
  constructor(config: LuaDeviceTriggerConfig);
5013
5166
  }
5014
5167
 
@@ -5029,8 +5182,8 @@ export declare class LuaDeviceTrigger {
5029
5182
  * name: 'paper-low',
5030
5183
  * description: 'Fired when printer paper drops below threshold',
5031
5184
  * payloadSchema: z.object({ level: z.number() }),
5032
- * execute: async (payload, { agent, device }) => {
5033
- * await agent.chat(`Printer ${device.name} paper low: ${payload.level}%`);
5185
+ * execute: async (payload, { device, trigger }) => {
5186
+ * return { device: device.name, trigger: trigger.name, level: payload.level };
5034
5187
  * },
5035
5188
  * });
5036
5189
  * ```
@@ -5043,12 +5196,7 @@ export declare interface LuaDeviceTriggerConfig {
5043
5196
  /** Zod schema for trigger payload validation */
5044
5197
  payloadSchema?: ZodType;
5045
5198
  /** Function that executes when the trigger fires */
5046
- execute: (payload: any, context: {
5047
- agent: any;
5048
- device: {
5049
- name: string;
5050
- };
5051
- }) => Promise<any>;
5199
+ execute: (payload: any, context: DeviceTriggerContext) => Promise<any>;
5052
5200
  }
5053
5201
 
5054
5202
  /**
@@ -6894,7 +7042,11 @@ export declare type LuaWorkflowBuildCode = 'duplicate-step-id' | 'unknown-step-r
6894
7042
  */
6895
7043
  | 'approval-inside-container' | 'node-type-unsupported-in-container' | 'empty-graph' | 'ephemeral-role-too-long' | 'role-ref-and-inline' | 'approver-excludes-only-candidate' | 'four-eyes-requires-editable' | 'escalation-chain-not-terminal' | 'escalation-chain-too-long'
6896
7044
  /** LUA-973: `remindAfterHours` is not a number of hours in 1..720 (`validateApprovalReminder`). */
6897
- | 'remind-after-invalid' | 'editable-path-invalid' | 'env-template-secret-key' | 'invalid-envelope' | 'invalid-step' | 'invalid-step-id' | 'invalid-workflow-name' | 'schedule-input-required' | 'schedule-input-invalid' | 'hitl-duration-defaulted' | 'WORKFLOW_UNPLACED_STEP';
7045
+ | 'remind-after-invalid'
7046
+ /** BAC-2062: the builder mirror of the BAC-619 validator codes: a `waitForSignal` name a delivery refuses. */
7047
+ | 'signal-name-invalid'
7048
+ /** BAC-2062: a numeric approval / waitForSignal `timeoutHours` outside 1..720. */
7049
+ | 'timeout-hours-out-of-range' | 'editable-path-invalid' | 'env-template-secret-key' | 'invalid-envelope' | 'invalid-step' | 'invalid-step-id' | 'invalid-workflow-name' | 'schedule-input-required' | 'schedule-input-invalid' | 'hitl-duration-defaulted' | 'WORKFLOW_UNPLACED_STEP';
6898
7050
 
6899
7051
  export declare interface LuaWorkflowBuilder {
6900
7052
  then(step: StepRef): this;
@@ -6985,7 +7137,10 @@ export declare interface LuaWorkflowConfig {
6985
7137
  * marketplace template freezes from this schedule: `'installer'` (the default when absent — every install's
6986
7138
  * fires run as the person who installed, who gets the run card in their inbox) or `'system'` (the frozen copy
6987
7139
  * runs user-less and unwatched — no inbox card for its runs; the install response says so). On this agent the
6988
- * schedule runs as you either way.
7140
+ * schedule runs as you, unless the platform has enabled author system schedules: then `'system'` makes this
7141
+ * agent's own schedule run as the agent (`system:<agentId>`), like a template copy's, with you recorded as the
7142
+ * deployer who scheduled it (the schedule stops if you lose access to the agent). A manual run ("Run now")
7143
+ * always runs as the person who starts it.
6989
7144
  */
6990
7145
  schedule?: JobSchedule & {
6991
7146
  runAs?: 'installer' | 'system';
@@ -7208,6 +7363,13 @@ export declare type MCPTransport = 'sse' | 'streamable-http';
7208
7363
 
7209
7364
  declare type Message = TextMessage_2 | ImageMessage_2 | FileMessage_2;
7210
7365
 
7366
+ /**
7367
+ * The text of a postprocessor's `message`, whichever shape it arrived in: a string as is,
7368
+ * parts as their `text` parts joined with a newline (image and file parts are skipped).
7369
+ * Anything else yields `''`.
7370
+ */
7371
+ export declare function messageText(message: PostProcessorMessage | null | undefined): string;
7372
+
7211
7373
  export declare const Metrics: MetricsApi;
7212
7374
 
7213
7375
  /**
@@ -7564,7 +7726,7 @@ declare class PostProcessor {
7564
7726
  getName(): string;
7565
7727
  getDescription(): string;
7566
7728
  getPriority(): number;
7567
- execute(user: UserDataInstance, message: string, response: string, channel: string): Promise<PostProcessorResponse>;
7729
+ execute(user: UserDataInstance, message: PostProcessorMessage, response: string, channel: string): Promise<PostProcessorResponse>;
7568
7730
  }
7569
7731
  export { PostProcessor as LuaPostprocessor }
7570
7732
  export { PostProcessor }
@@ -7585,10 +7747,18 @@ export declare interface PostProcessorConfig {
7585
7747
  /**
7586
7748
  * Function that processes the agent's response before sending to user.
7587
7749
  * MUST return { modifiedResponse: string } - the formatted response text.
7750
+ * `message` is the user's message: a string or its parts — read it with `messageText(message)`.
7588
7751
  */
7589
- execute: (user: UserDataInstance, message: string, response: string, channel: string) => Promise<PostProcessorResponse>;
7752
+ execute: (user: UserDataInstance, message: PostProcessorMessage, response: string, channel: string) => Promise<PostProcessorResponse>;
7590
7753
  }
7591
7754
 
7755
+ /**
7756
+ * The user's message as a postprocessor receives it (LUA-1075).
7757
+ * lua-core passes the turn's user content unchanged: a plain string, or the message parts
7758
+ * (`[{ type: 'text', text }, { type: 'image', ... }]`). Use {@link messageText} for its text.
7759
+ */
7760
+ export declare type PostProcessorMessage = string | ChatMessage[];
7761
+
7592
7762
  /**
7593
7763
  * PostProcessor override for sandbox testing.
7594
7764
  * Maps production postprocessor ID to sandbox version ID.
@@ -8252,13 +8422,19 @@ declare type RequestCredentialDescriptor = {
8252
8422
  declare type RequestCredentialInput = string | RequestCredential;
8253
8423
 
8254
8424
  /**
8255
- * Optional per-request overrides (WF-202, 03 §3.7 client-deadline rule). Today only
8256
- * `timeoutMs`: `WorkflowApi.startRun` long-polls with `waitSeconds ≤ 55` and raises
8257
- * its deadline to `(waitSeconds + 10) s` so the 30 s default abort never races the
8258
- * server. Every other call site is untouched (undefined ⇒ the 30 s default).
8425
+ * Optional per-request overrides (WF-202, 03 §3.7 client-deadline rule).
8426
+ * - `timeoutMs`: `WorkflowApi.startRun` long-polls with `waitSeconds ≤ 55` and raises
8427
+ * its deadline to `(waitSeconds + 10) s` so the 30 s default abort never races the
8428
+ * server. Every other call site is untouched (undefined ⇒ the 30 s default).
8429
+ * - `signal` (BAC-1097): a caller's AbortSignal. It is linked to the request's own
8430
+ * AbortController (which still owns the `timeoutMs` deadline — one controller, no
8431
+ * double-cancel), so aborting closes the in-flight fetch, stops any retry / Core-drain
8432
+ * backoff, and answers the `REQUEST_ABORTED` envelope. `AgentsApiService.invoke` passes
8433
+ * `AgentInvocationInput.signal` here; the signal is never serialized.
8259
8434
  */
8260
8435
  declare interface RequestOverrides {
8261
8436
  timeoutMs?: number;
8437
+ signal?: AbortSignal;
8262
8438
  }
8263
8439
 
8264
8440
  /**
@@ -8969,6 +9145,14 @@ declare interface SupervisionLogRow {
8969
9145
  logSource?: string;
8970
9146
  primitiveName?: string;
8971
9147
  toolName?: string;
9148
+ /**
9149
+ * LUA-1076 — the agent version that served the row (string form of the version number / id), when the writer
9150
+ * stamped it. Lets a supervisor tell a staged version's errors from the live version's. Filter with
9151
+ * `{ agentVersion }` on the `logs` op.
9152
+ */
9153
+ agentVersion?: string;
9154
+ /** 'production' for the promoted (live) version; 'sandbox' for previews, practice and dev. Filter with `{ environment }`. */
9155
+ environment?: string;
8972
9156
  /**
8973
9157
  * A non-identifying conversation key: the same value for every row of one conversation (thread) on this target,
8974
9158
  * never the thread id itself (which embeds the end user's id), and different on another target. Present on rows
@@ -10691,9 +10875,6 @@ export declare const Workflows: WorkflowsApi;
10691
10875
  *
10692
10876
  * - `start` options are checked: an option key it does not know throws
10693
10877
  * `WorkflowApiError{ code:'VALIDATION_FAILED' }` naming it — never silently dropped.
10694
- *
10695
- * `startBatch`, `signalByKey`, `raiseBudget`, `setGoal` and `goals.*` are part of the
10696
- * frozen member list and throw `WORKFLOWS_API_UNAVAILABLE` until their routes ship.
10697
10878
  */
10698
10879
  export declare interface WorkflowsApi {
10699
10880
  start(nameOrId: string, input?: unknown, opts?: {
@@ -10791,6 +10972,11 @@ export declare interface WorkflowsApi {
10791
10972
  code?: string;
10792
10973
  }>;
10793
10974
  }>;
10975
+ /**
10976
+ * Raise a parked or in-flight run's caps (increases only). Only the run's creator/holder or an
10977
+ * org admin may raise it. Refusals are typed `WorkflowApiError`s: 400 `VALIDATION_FAILED` /
10978
+ * `CAP_EXCEEDED`, 403 `NOT_RUN_CREATOR`, 404 `RUN_NOT_FOUND`, 409 `BUDGET_NOT_RAISABLE`.
10979
+ */
10794
10980
  raiseBudget(runId: string, patch: {
10795
10981
  maxCredits?: number;
10796
10982
  maxSteps?: number;
@@ -10805,6 +10991,7 @@ export declare interface WorkflowsApi {
10805
10991
  } | {
10806
10992
  raised: false;
10807
10993
  reason: 'already_raised';
10994
+ runStatus?: WorkflowRunStatus;
10808
10995
  }>;
10809
10996
  setGoal(agentId: string, goal: Record<string, unknown>): Promise<Record<string, unknown>>;
10810
10997
  goals: {