lua-cli 3.48.0 → 3.49.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.
@@ -119,7 +119,7 @@ declare interface LuaToolCtx {
119
119
  *
120
120
  * export default new LuaVoice({
121
121
  * name: 'support-line',
122
- * llm: 'openai/gpt-5.2-chat-latest',
122
+ * llm: 'openai/chat-latest',
123
123
  * stt: 'deepgram/nova-3',
124
124
  * tts: { model: 'cartesia/sonic-3', voice: '9626c31c-bec5-4cca-baa8-f8ba9e84c8bc' },
125
125
  * vad: 'silero',
@@ -219,7 +219,7 @@ declare const LuaVoiceConfigSchema: z.ZodEffects<z.ZodObject<{
219
219
  name: z.ZodOptional<z.ZodString>;
220
220
  llm: z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
221
221
  kind: z.ZodLiteral<"inference">;
222
- /** Provider-prefixed model id (e.g. `'openai/gpt-5.2-chat-latest'`). */
222
+ /** Provider-prefixed model id (e.g. `'openai/chat-latest'`). */
223
223
  model: z.ZodString;
224
224
  /**
225
225
  * TTS-only — provider voice id. Inference's TTS API takes voice
@@ -285,7 +285,7 @@ declare const LuaVoiceConfigSchema: z.ZodEffects<z.ZodObject<{
285
285
  }>]>;
286
286
  stt: z.ZodOptional<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
287
287
  kind: z.ZodLiteral<"inference">;
288
- /** Provider-prefixed model id (e.g. `'openai/gpt-5.2-chat-latest'`). */
288
+ /** Provider-prefixed model id (e.g. `'openai/chat-latest'`). */
289
289
  model: z.ZodString;
290
290
  /**
291
291
  * TTS-only — provider voice id. Inference's TTS API takes voice
@@ -351,7 +351,7 @@ declare const LuaVoiceConfigSchema: z.ZodEffects<z.ZodObject<{
351
351
  }>]>>;
352
352
  tts: z.ZodOptional<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
353
353
  kind: z.ZodLiteral<"inference">;
354
- /** Provider-prefixed model id (e.g. `'openai/gpt-5.2-chat-latest'`). */
354
+ /** Provider-prefixed model id (e.g. `'openai/chat-latest'`). */
355
355
  model: z.ZodString;
356
356
  /**
357
357
  * TTS-only — provider voice id. Inference's TTS API takes voice
@@ -10,7 +10,7 @@
10
10
  * import { deepgram, elevenlabs, inference } from 'lua-cli/voice';
11
11
  *
12
12
  * export default new LuaVoice({
13
- * llm: 'openai/gpt-5.2-chat-latest', // string descriptor → Inference
13
+ * llm: 'openai/chat-latest', // string descriptor → Inference
14
14
  * stt: new deepgram.STT({ model: 'nova-3' }), // class form → direct plugin
15
15
  * tts: new elevenlabs.TTS({ voiceId: 'abc', model: 'eleven_v3' }),
16
16
  * });
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/voice-exports.ts"],"sourcesContent":["/**\n * Sub-entrypoint for voice-related imports — re-exports the LiveKit\n * plugin namespaces that LuaVoice's class-form `stt` / `tts` accept.\n *\n * Devs who write a code-defined LuaVoice with the plugin route can keep\n * `lua-cli` as the only dependency they import:\n *\n * ```typescript\n * import { LuaVoice } from 'lua-cli';\n * import { deepgram, elevenlabs, inference } from 'lua-cli/voice';\n *\n * export default new LuaVoice({\n * llm: 'openai/gpt-5.2-chat-latest', // string descriptor → Inference\n * stt: new deepgram.STT({ model: 'nova-3' }), // class form → direct plugin\n * tts: new elevenlabs.TTS({ voiceId: 'abc', model: 'eleven_v3' }),\n * });\n * ```\n *\n * Without this sub-entrypoint, devs would need to add\n * `@livekit/agents-plugin-deepgram` etc. as direct dependencies in\n * their own project. Routing through `lua-cli` keeps the dev-side\n * `package.json` clean.\n *\n * Note: these are *type-only relevant* at compile time — the lua-cli\n * compiler ASTs the dev's source and extracts `{ kind: 'plugin',\n * provider, class, options }` for the wire shape. The actual\n * `new deepgram.STT({...})` construction happens in the lua-livekit\n * worker's dispatch path, not the dev's process. The re-exports here\n * give devs full TypeScript autocomplete on plugin-specific options.\n *\n * `inference` is re-exported from `@livekit/agents` (the parent\n * package) so devs can use the typed `new inference.LLM/STT/TTS({...})`\n * form without adding `@livekit/agents` to their dev project.\n */\n\nexport * as deepgram from '@livekit/agents-plugin-deepgram';\nexport * as elevenlabs from '@livekit/agents-plugin-elevenlabs';\nexport * as openai from '@livekit/agents-plugin-openai';\nexport * as google from '@livekit/agents-plugin-google';\nexport * as xai from '@livekit/agents-plugin-xai';\nexport { inference } from '@livekit/agents';\n"],"mappings":";AAmCA,YAAYA,cAAc;AAC1B,YAAYC,gBAAgB;AAC5B,YAAYC,YAAY;AACxB,YAAYC,YAAY;AACxB,YAAYC,SAAS;AACrB,SAASC,iBAAiB;","names":["deepgram","elevenlabs","openai","google","xai","inference"]}
1
+ {"version":3,"sources":["../src/voice-exports.ts"],"sourcesContent":["/**\n * Sub-entrypoint for voice-related imports — re-exports the LiveKit\n * plugin namespaces that LuaVoice's class-form `stt` / `tts` accept.\n *\n * Devs who write a code-defined LuaVoice with the plugin route can keep\n * `lua-cli` as the only dependency they import:\n *\n * ```typescript\n * import { LuaVoice } from 'lua-cli';\n * import { deepgram, elevenlabs, inference } from 'lua-cli/voice';\n *\n * export default new LuaVoice({\n * llm: 'openai/chat-latest', // string descriptor → Inference\n * stt: new deepgram.STT({ model: 'nova-3' }), // class form → direct plugin\n * tts: new elevenlabs.TTS({ voiceId: 'abc', model: 'eleven_v3' }),\n * });\n * ```\n *\n * Without this sub-entrypoint, devs would need to add\n * `@livekit/agents-plugin-deepgram` etc. as direct dependencies in\n * their own project. Routing through `lua-cli` keeps the dev-side\n * `package.json` clean.\n *\n * Note: these are *type-only relevant* at compile time — the lua-cli\n * compiler ASTs the dev's source and extracts `{ kind: 'plugin',\n * provider, class, options }` for the wire shape. The actual\n * `new deepgram.STT({...})` construction happens in the lua-livekit\n * worker's dispatch path, not the dev's process. The re-exports here\n * give devs full TypeScript autocomplete on plugin-specific options.\n *\n * `inference` is re-exported from `@livekit/agents` (the parent\n * package) so devs can use the typed `new inference.LLM/STT/TTS({...})`\n * form without adding `@livekit/agents` to their dev project.\n */\n\nexport * as deepgram from '@livekit/agents-plugin-deepgram';\nexport * as elevenlabs from '@livekit/agents-plugin-elevenlabs';\nexport * as openai from '@livekit/agents-plugin-openai';\nexport * as google from '@livekit/agents-plugin-google';\nexport * as xai from '@livekit/agents-plugin-xai';\nexport { inference } from '@livekit/agents';\n"],"mappings":";AAmCA,YAAYA,cAAc;AAC1B,YAAYC,gBAAgB;AAC5B,YAAYC,YAAY;AACxB,YAAYC,YAAY;AACxB,YAAYC,SAAS;AACrB,SAASC,iBAAiB;","names":["deepgram","elevenlabs","openai","google","xai","inference"]}
@@ -361,7 +361,9 @@ export declare type LuaWorkflowBuildCode = 'duplicate-step-id' | 'unknown-step-r
361
361
  /** BAC-2062: the builder mirror of the BAC-619 validator codes: a `waitForSignal` name a delivery refuses. */
362
362
  | 'signal-name-invalid'
363
363
  /** BAC-2062: a numeric approval / waitForSignal `timeoutHours` outside 1..720. */
364
- | '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';
364
+ | 'timeout-hours-out-of-range' | 'editable-path-invalid' | 'env-template-secret-key' | 'invalid-envelope'
365
+ /** BAC-2341: a `concurrencyKey` declared without `concurrencyPolicy:'forbid'` (the server's 400 twin). */
366
+ | 'concurrency-key-requires-forbid' | 'invalid-step' | 'invalid-step-id' | 'invalid-workflow-name' | 'schedule-input-required' | 'schedule-input-invalid' | 'hitl-duration-defaulted' | 'WORKFLOW_UNPLACED_STEP';
365
367
 
366
368
  export declare interface LuaWorkflowBuilder {
367
369
  then(step: StepRef): this;
@@ -428,6 +430,11 @@ export declare interface LuaWorkflowConfig {
428
430
  stateSchema?: ZodType;
429
431
  /** 'forbid' = jobs-style overlap guard per workflow (D21-r1) — every start path gets 409 `RUNS_IN_FLIGHT`. */
430
432
  concurrencyPolicy?: 'allow' | 'forbid';
433
+ /**
434
+ * Scope the `forbid` overlap guard per correlation key instead of workflow-wide. Requires `concurrencyPolicy:'forbid'`;
435
+ * absent means workflow-wide. Rides the manifest and the push body, not the graph envelope or `graphHash`.
436
+ */
437
+ concurrencyKey?: 'correlationKey';
431
438
  /** Who may READ this workflow's run outputs beyond `workflows:read-outputs` holders (B44). Envelope member outside `graphHash`. */
432
439
  outputVisibility?: WorkflowOutputVisibility;
433
440
  /**