@vellumai/plugin-api 0.11.6-dev.202608252309.48526e7 → 0.11.6-staging.2

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 +24 -127
  2. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -148,9 +148,10 @@ declare const AssistantConfigSchema: z.ZodObject<{
148
148
  stt: z.ZodDefault<z.ZodObject<{
149
149
  provider: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodEnum<{
150
150
  vellum: "vellum";
151
- "openai-whisper": "openai-whisper";
152
151
  deepgram: "deepgram";
152
+ "deepgram-flux": "deepgram-flux";
153
153
  "google-gemini": "google-gemini";
154
+ "openai-whisper": "openai-whisper";
154
155
  xai: "xai";
155
156
  }>>;
156
157
  language: z.ZodDefault<z.ZodString>;
@@ -279,24 +280,6 @@ declare const AssistantConfigSchema: z.ZodObject<{
279
280
  "your-own": "your-own";
280
281
  }>>;
281
282
  }, z.core.$strip>>;
282
- "monday-oauth": z.ZodDefault<z.ZodObject<{
283
- mode: z.ZodDefault<z.ZodEnum<{
284
- managed: "managed";
285
- "your-own": "your-own";
286
- }>>;
287
- }, z.core.$strip>>;
288
- "eventbrite-oauth": z.ZodDefault<z.ZodObject<{
289
- mode: z.ZodDefault<z.ZodEnum<{
290
- managed: "managed";
291
- "your-own": "your-own";
292
- }>>;
293
- }, z.core.$strip>>;
294
- "calendly-oauth": z.ZodDefault<z.ZodObject<{
295
- mode: z.ZodDefault<z.ZodEnum<{
296
- managed: "managed";
297
- "your-own": "your-own";
298
- }>>;
299
- }, z.core.$strip>>;
300
283
  }, z.core.$strip>>;
301
284
  memory: z.ZodDefault<z.ZodObject<{
302
285
  enabled: z.ZodDefault<z.ZodBoolean>;
@@ -617,10 +600,10 @@ declare const AssistantConfigSchema: z.ZodObject<{
617
600
  model: z.ZodOptional<z.ZodString>;
618
601
  maxTokens: z.ZodOptional<z.ZodNumber>;
619
602
  effort: z.ZodOptional<z.ZodEnum<{
620
- none: "none";
621
603
  low: "low";
622
604
  medium: "medium";
623
605
  high: "high";
606
+ none: "none";
624
607
  xhigh: "xhigh";
625
608
  max: "max";
626
609
  }>>;
@@ -690,7 +673,6 @@ declare const AssistantConfigSchema: z.ZodObject<{
690
673
  profile: z.ZodString;
691
674
  weight: z.ZodNumber;
692
675
  }, z.core.$strip>>>;
693
- fallbackProfile: z.ZodOptional<z.ZodString>;
694
676
  }, z.core.$strip>>>;
695
677
  profileOrder: z.ZodDefault<z.ZodArray<z.ZodString>>;
696
678
  callSites: z.ZodDefault<z.ZodRecord<z.ZodEnum<{
@@ -741,10 +723,10 @@ declare const AssistantConfigSchema: z.ZodObject<{
741
723
  model: z.ZodOptional<z.ZodString>;
742
724
  maxTokens: z.ZodOptional<z.ZodNumber>;
743
725
  effort: z.ZodOptional<z.ZodEnum<{
744
- none: "none";
745
726
  low: "low";
746
727
  medium: "medium";
747
728
  high: "high";
729
+ none: "none";
748
730
  xhigh: "xhigh";
749
731
  max: "max";
750
732
  }>>;
@@ -1078,7 +1060,7 @@ declare const AssistantConfigSchema: z.ZodObject<{
1078
1060
  turnEnd: z.ZodDefault<z.ZodObject<{
1079
1061
  enabled: z.ZodDefault<z.ZodBoolean>;
1080
1062
  }, z.core.$strip>>;
1081
- model: z.ZodOptional<z.ZodString>;
1063
+ model: z.ZodDefault<z.ZodString>;
1082
1064
  eotThreshold: z.ZodDefault<z.ZodNumber>;
1083
1065
  eagerEotThreshold: z.ZodOptional<z.ZodNumber>;
1084
1066
  eotTimeoutMs: z.ZodDefault<z.ZodNumber>;
@@ -4175,19 +4157,6 @@ declare interface CliCommandHelp {
4175
4157
  subcommands?: CliSubcommandHelp[];
4176
4158
  }
4177
4159
 
4178
- /**
4179
- * Client OS surfaces — the value set for the message-body `clientOs` field.
4180
- *
4181
- * This is deliberately SEPARATE from {@link INTERFACE_IDS}: `clientOs`
4182
- * describes which OS the user's device runs, not which transport the turn
4183
- * arrived on. `"android"` (and `"ios"` for a mobile browser) are real OS
4184
- * surfaces but not transports — they must never answer transport questions
4185
- * (`supportsHostProxy`, `isInteractiveInterface`), so they live here rather
4186
- * than polluting the interface vocabulary. Drives only the per-turn
4187
- * `client_os` context line (e.g. app-builder mobile-first for `ios`/`android`).
4188
- */
4189
- declare const CLIENT_OS_VALUES: readonly ["web", "ios", "macos", "windows", "android"];
4190
-
4191
4160
  declare interface ClientEntry extends BaseSubscriberEntry {
4192
4161
  type: "client";
4193
4162
  clientId: string;
@@ -4216,8 +4185,6 @@ declare interface ClientEntry extends BaseSubscriberEntry {
4216
4185
  webPresence?: ClientWebPresence;
4217
4186
  }
4218
4187
 
4219
- declare type ClientOs = (typeof CLIENT_OS_VALUES)[number];
4220
-
4221
4188
  declare interface ClientPresence {
4222
4189
  state: DesktopPresenceState;
4223
4190
  /** When the daemon last heard from the client. Drives staleness. */
@@ -4583,11 +4550,11 @@ export declare function getDocument(documentId: string): Promise<IndexedDocument
4583
4550
  export declare function getMessages(conversationId: string): Promise<MessageRow[]>;
4584
4551
 
4585
4552
  /**
4586
- * List the workspace inference profiles a plugin can route to, in the order a
4587
- * user-facing model picker presents them (`llm.profileOrder` first, then the
4588
- * rest alphabetically). Managed backup routes are internal and omitted.
4589
- * Metadata-only entries without a provider, model, or mix are not routing
4590
- * targets, so plugins never see them. Disabled profiles are included and flagged via
4553
+ * List the workspace inference profiles a plugin can route to, in the order the
4554
+ * `/model` picker presents them (`llm.profileOrder` first, then the rest
4555
+ * alphabetically). Metadata-only entries without a provider, model, or mix are
4556
+ * not routing targets, so plugins never see them. Disabled profiles are
4557
+ * included and flagged via
4591
4558
  * {@link ModelProfileInfo.isDisabled}; weighted "mix" profiles are included and
4592
4559
  * flagged via {@link ModelProfileInfo.isMix}, since a mix is itself a valid
4593
4560
  * routing target (it resolves to one constituent per conversation).
@@ -4976,12 +4943,6 @@ declare interface LiveVoiceAssistantTextDeltaServerFrame extends LiveVoiceServer
4976
4943
  declare interface LiveVoiceBusyServerFrame extends LiveVoiceServerFrameBase {
4977
4944
  readonly type: "busy";
4978
4945
  readonly activeSessionId: string;
4979
- /**
4980
- * Absent from daemons that predate it, and from a holder that revealed
4981
- * neither field, so a client must degrade to the unspecific copy rather
4982
- * than assume.
4983
- */
4984
- readonly holder?: LiveVoiceSessionHolder;
4985
4946
  }
4986
4947
 
4987
4948
  export declare interface LiveVoiceConnection {
@@ -5126,23 +5087,6 @@ declare interface LiveVoiceReadyServerFrame extends LiveVoiceServerFrameBase {
5126
5087
  * (older daemons) means "manual".
5127
5088
  */
5128
5089
  readonly turnDetection?: LiveVoiceTurnDetectionMode;
5129
- /**
5130
- * Whether this daemon will accept `text` frames on the session. Absent
5131
- * (older daemons) means no, which is what lets a client that asked for
5132
- * `textInput` fall back rather than type into a socket that would answer
5133
- * every typed turn with an `unknown_type` error.
5134
- */
5135
- readonly textInput?: boolean;
5136
- /**
5137
- * Whether the session's speech-to-text leg is live. Absent means yes, which
5138
- * is the only thing an older daemon can have meant: it rejects a session it
5139
- * cannot transcribe, so every session it readies can hear.
5140
- *
5141
- * False is reachable only for a client that declared `textInput`, and tells
5142
- * it to present the session as typed rather than draw a microphone that
5143
- * will never hear anything.
5144
- */
5145
- readonly audioInput?: boolean;
5146
5090
  }
5147
5091
 
5148
5092
  export declare type LiveVoiceServerFrame = LiveVoiceReadyServerFrame | LiveVoiceBusyServerFrame | LiveVoiceSpeechStartedServerFrame | LiveVoiceUtteranceEndServerFrame | LiveVoiceUtteranceDiscardedServerFrame | LiveVoiceSttPartialServerFrame | LiveVoiceSttFinalServerFrame | LiveVoiceThinkingServerFrame | LiveVoiceActivityServerFrame | LiveVoiceAssistantTextDeltaServerFrame | LiveVoiceTtsAudioServerFrame | LiveVoiceTtsDoneServerFrame | LiveVoiceTurnCancelledServerFrame | LiveVoiceMinimizeRoomServerFrame | LiveVoiceMetricsServerFrame | LiveVoiceArchivedServerFrame | LiveVoiceErrorServerFrame;
@@ -5156,27 +5100,6 @@ declare type LiveVoiceServerFrameType = (typeof _LIVE_VOICE_SERVER_FRAME_TYPES)[
5156
5100
 
5157
5101
  export declare type LiveVoiceSessionCloseReason = "client_end" | "error" | "websocket_close" | "transport_closed" | "client_timeout" | "forced_end" | "manager_shutdown";
5158
5102
 
5159
- /**
5160
- * Where the session holding the daemon's single live-voice slot is running,
5161
- * as much of it as the daemon knows.
5162
- *
5163
- * Display only: it is what lets a client refused a session say where the one
5164
- * that blocked it is. Nothing routes, authorizes, or decides capability on
5165
- * it, and every field is optional, so a holder that names neither its surface
5166
- * nor a conversation is simply less specific.
5167
- */
5168
- declare interface LiveVoiceSessionHolder {
5169
- /**
5170
- * The OS surface the holder is running on, from its `start` frame. A
5171
- * {@link ClientOs} carries no transport meaning by contract (see
5172
- * `channels/types.ts`), which is exactly right for a label: it says which
5173
- * device the user should go looking on, and answers nothing else.
5174
- */
5175
- readonly client?: ClientOs;
5176
- /** The conversation the holder is talking in, once it has one. */
5177
- readonly conversationId?: string;
5178
- }
5179
-
5180
5103
  /**
5181
5104
  * Emitted when the server VAD detects user speech. The client MUST
5182
5105
  * immediately stop local TTS playback — this doubles as the flush-tail-audio
@@ -6002,15 +5925,6 @@ export declare interface ProviderResponse {
6002
5925
  model: string;
6003
5926
  /** Provider that actually produced this response, which may differ from a wrapper provider name. */
6004
5927
  actualProvider?: string;
6005
- /**
6006
- * Inference profile key that actually governed this response when a
6007
- * wrapper re-routed the request away from the caller's own resolution
6008
- * (`RetryProvider`'s fallback-route escalation). `UsageTrackingProvider`
6009
- * prefers this over re-resolving from the original request options, so a
6010
- * successful fallback serve is attributed to the backup profile rather
6011
- * than the failed primary's. Absent on the normal (non-rerouted) path.
6012
- */
6013
- actualInferenceProfile?: string;
6014
5928
  /**
6015
5929
  * Base URL the provider's HTTP client actually resolved to for this request,
6016
5930
  * read from the live SDK client instance rather than re-derived from config.
@@ -6531,18 +6445,6 @@ export declare interface SendMessageConfig {
6531
6445
  * request.
6532
6446
  */
6533
6447
  forceOverrideProfile?: boolean;
6534
- /**
6535
- * True when the caller appended {@link NATIVE_WEB_SEARCH_TOOL_NAME} purely
6536
- * to activate the route's provider-native web search, rather than passing an
6537
- * app-executed search tool of the same name (which is what runs when a
6538
- * search backend like Brave or the platform search proxy is configured).
6539
- * Only the caller can tell those apart, and a route change after that
6540
- * decision has to: `RetryProvider` drops the tool on a backup that runs no
6541
- * native search, and must not touch it when the daemon executes it itself.
6542
- * A resolution/routing-time concern only; stripped before any provider wire
6543
- * request.
6544
- */
6545
- nativeWebSearchSentinel?: boolean;
6546
6448
  /**
6547
6449
  * Per-conversation seed for deterministic `mix`-profile expansion. The agent
6548
6450
  * loop sets this to the conversation id so every resolver call this send
@@ -6915,33 +6817,28 @@ export declare type SttErrorCategory =
6915
6817
  | "provider-error";
6916
6818
 
6917
6819
  /**
6918
- * Catalog identity for a daemon-hosted STT backend.
6820
+ * Provider-agnostic speech-to-text domain types for daemon transcription.
6919
6821
  *
6920
- * This is the key capability is stored under, NOT the set of values a user may
6921
- * put in `services.stt.provider`. A provider that offers more than one model
6922
- * family with genuinely different capabilities gets a row per family, because
6923
- * the catalog is a capability matrix and those capabilities differ. Users
6924
- * select the family with `services.stt.providers.<id>.model`, and
6925
- * {@link resolveSttCatalogKey} maps that pair onto the row.
6822
+ * These types define the boundary between callers that need audio transcription
6823
+ * and the concrete STT provider implementations. The goal is to let daemon
6824
+ * callsites program against a single typed interface so that provider swaps are
6825
+ * localized to the adapter layer.
6926
6826
  *
6927
- * Keeping the two apart bounds the user-facing surface: adding a model family
6928
- * costs a catalog row and nothing else, while adding a provider id costs an
6929
- * enum entry, a settings-picker row, and a place in every predicate that
6930
- * classifies providers.
6827
+ * Two execution modes are supported:
6828
+ * - **Batch** — a single audio buffer is sent and a final transcript returned.
6829
+ * - **Streaming** — audio chunks are sent over a persistent session, and the
6830
+ * provider emits partial/final transcript events in real time.
6831
+ */
6832
+ /**
6833
+ * Canonical provider identifiers for daemon-hosted STT backends.
6834
+ * Extend this union as new providers are integrated.
6931
6835
  */
6932
6836
  export declare type SttProviderId = "openai-whisper" | "deepgram"
6933
6837
  /**
6934
6838
  * Deepgram's Flux conversational speech model. Shares the `deepgram`
6935
6839
  * credential and is streaming-only: Flux has no batch endpoint.
6936
6840
  */
6937
- | "deepgram-flux" | "google-gemini" | "xai" | "vellum"
6938
- /**
6939
- * Managed Flux: the same conversational model as `deepgram-flux`, reached
6940
- * through the platform's speech relay instead of a Deepgram key. Dials the
6941
- * relay's STT v2 endpoint asking for native Flux frames, so it keeps the
6942
- * turn events the relay's default v1-shaped translation drops.
6943
- */
6944
- | "vellum-flux";
6841
+ | "deepgram-flux" | "google-gemini" | "xai" | "vellum";
6945
6842
 
6946
6843
  /** The streaming session has closed (no more events will be emitted). */
6947
6844
  export declare interface SttStreamServerClosedEvent {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vellumai/plugin-api",
3
- "version": "0.11.6-dev.202608252309.48526e7",
3
+ "version": "0.11.6-staging.2",
4
4
  "description": "Public TypeScript authoring contract for Vellum assistant plugins.",
5
5
  "license": "MIT",
6
6
  "type": "module",