@vellumai/plugin-api 0.11.5-dev.202608251921.029df82 → 0.11.5-dev.202608252008.65007aa

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.
Files changed (2) hide show
  1. package/index.d.ts +44 -2
  2. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -600,10 +600,10 @@ declare const AssistantConfigSchema: z.ZodObject<{
600
600
  model: z.ZodOptional<z.ZodString>;
601
601
  maxTokens: z.ZodOptional<z.ZodNumber>;
602
602
  effort: z.ZodOptional<z.ZodEnum<{
603
+ none: "none";
603
604
  low: "low";
604
605
  medium: "medium";
605
606
  high: "high";
606
- none: "none";
607
607
  xhigh: "xhigh";
608
608
  max: "max";
609
609
  }>>;
@@ -724,10 +724,10 @@ declare const AssistantConfigSchema: z.ZodObject<{
724
724
  model: z.ZodOptional<z.ZodString>;
725
725
  maxTokens: z.ZodOptional<z.ZodNumber>;
726
726
  effort: z.ZodOptional<z.ZodEnum<{
727
+ none: "none";
727
728
  low: "low";
728
729
  medium: "medium";
729
730
  high: "high";
730
- none: "none";
731
731
  xhigh: "xhigh";
732
732
  max: "max";
733
733
  }>>;
@@ -4158,6 +4158,19 @@ declare interface CliCommandHelp {
4158
4158
  subcommands?: CliSubcommandHelp[];
4159
4159
  }
4160
4160
 
4161
+ /**
4162
+ * Client OS surfaces — the value set for the message-body `clientOs` field.
4163
+ *
4164
+ * This is deliberately SEPARATE from {@link INTERFACE_IDS}: `clientOs`
4165
+ * describes which OS the user's device runs, not which transport the turn
4166
+ * arrived on. `"android"` (and `"ios"` for a mobile browser) are real OS
4167
+ * surfaces but not transports — they must never answer transport questions
4168
+ * (`supportsHostProxy`, `isInteractiveInterface`), so they live here rather
4169
+ * than polluting the interface vocabulary. Drives only the per-turn
4170
+ * `client_os` context line (e.g. app-builder mobile-first for `ios`/`android`).
4171
+ */
4172
+ declare const CLIENT_OS_VALUES: readonly ["web", "ios", "macos", "windows", "android"];
4173
+
4161
4174
  declare interface ClientEntry extends BaseSubscriberEntry {
4162
4175
  type: "client";
4163
4176
  clientId: string;
@@ -4186,6 +4199,8 @@ declare interface ClientEntry extends BaseSubscriberEntry {
4186
4199
  webPresence?: ClientWebPresence;
4187
4200
  }
4188
4201
 
4202
+ declare type ClientOs = (typeof CLIENT_OS_VALUES)[number];
4203
+
4189
4204
  declare interface ClientPresence {
4190
4205
  state: DesktopPresenceState;
4191
4206
  /** When the daemon last heard from the client. Drives staleness. */
@@ -4944,6 +4959,12 @@ declare interface LiveVoiceAssistantTextDeltaServerFrame extends LiveVoiceServer
4944
4959
  declare interface LiveVoiceBusyServerFrame extends LiveVoiceServerFrameBase {
4945
4960
  readonly type: "busy";
4946
4961
  readonly activeSessionId: string;
4962
+ /**
4963
+ * Absent from daemons that predate it, and from a holder that revealed
4964
+ * neither field, so a client must degrade to the unspecific copy rather
4965
+ * than assume.
4966
+ */
4967
+ readonly holder?: LiveVoiceSessionHolder;
4947
4968
  }
4948
4969
 
4949
4970
  export declare interface LiveVoiceConnection {
@@ -5118,6 +5139,27 @@ declare type LiveVoiceServerFrameType = (typeof _LIVE_VOICE_SERVER_FRAME_TYPES)[
5118
5139
 
5119
5140
  export declare type LiveVoiceSessionCloseReason = "client_end" | "error" | "websocket_close" | "transport_closed" | "client_timeout" | "forced_end" | "manager_shutdown";
5120
5141
 
5142
+ /**
5143
+ * Where the session holding the daemon's single live-voice slot is running,
5144
+ * as much of it as the daemon knows.
5145
+ *
5146
+ * Display only: it is what lets a client refused a session say where the one
5147
+ * that blocked it is. Nothing routes, authorizes, or decides capability on
5148
+ * it, and every field is optional, so a holder that names neither its surface
5149
+ * nor a conversation is simply less specific.
5150
+ */
5151
+ declare interface LiveVoiceSessionHolder {
5152
+ /**
5153
+ * The OS surface the holder is running on, from its `start` frame. A
5154
+ * {@link ClientOs} carries no transport meaning by contract (see
5155
+ * `channels/types.ts`), which is exactly right for a label: it says which
5156
+ * device the user should go looking on, and answers nothing else.
5157
+ */
5158
+ readonly client?: ClientOs;
5159
+ /** The conversation the holder is talking in, once it has one. */
5160
+ readonly conversationId?: string;
5161
+ }
5162
+
5121
5163
  /**
5122
5164
  * Emitted when the server VAD detects user speech. The client MUST
5123
5165
  * immediately stop local TTS playback — this doubles as the flush-tail-audio
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vellumai/plugin-api",
3
- "version": "0.11.5-dev.202608251921.029df82",
3
+ "version": "0.11.5-dev.202608252008.65007aa",
4
4
  "description": "Public TypeScript authoring contract for Vellum assistant plugins.",
5
5
  "license": "MIT",
6
6
  "type": "module",