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.
- package/dist/api-exports.d.ts +227 -40
- package/dist/api-exports.js +474 -39
- package/dist/api-exports.js.map +1 -1
- package/dist/index.js +1065 -343
- package/dist/index.js.map +1 -1
- package/dist/workflow-builder.d.ts +9 -2
- package/dist/workflow-builder.js +238 -4
- package/dist/workflow-builder.js.map +1 -1
- package/docs/API_REFERENCE.md +1 -1
- package/docs/api/Agents.md +23 -9
- package/docs/api/Baskets.md +11 -1
- package/docs/api/LuaJob.md +117 -87
- package/docs/api/PostProcessor.md +73 -42
- package/docs/api/User.md +104 -74
- package/docs/api/Workflows.md +12 -4
- package/docs/workflows/approvals.md +2 -0
- package/docs/workflows/workspaces-and-long-steps.md +1 -1
- package/package.json +5 -5
- package/template/examples/postprocessors/modifyResponse.ts +4 -3
- package/template/package.json +1 -1
- package/template-web-app/web/src/lua/client.ts +12 -7
package/dist/api-exports.d.ts
CHANGED
|
@@ -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
|
|
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, {
|
|
2922
|
-
*
|
|
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, {
|
|
2948
|
-
*
|
|
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
|
-
*
|
|
3312
|
+
* Receives `(payload, { device, trigger })`; the returned value is the trigger result.
|
|
3168
3313
|
*/
|
|
3169
|
-
execute?: (payload: any, context:
|
|
3170
|
-
|
|
3171
|
-
|
|
3172
|
-
|
|
3173
|
-
|
|
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, {
|
|
4974
|
-
*
|
|
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, {
|
|
5033
|
-
*
|
|
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'
|
|
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
|
|
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:
|
|
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:
|
|
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).
|
|
8256
|
-
* `timeoutMs`: `WorkflowApi.startRun` long-polls with `waitSeconds ≤ 55` and raises
|
|
8257
|
-
*
|
|
8258
|
-
*
|
|
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: {
|