@vellumai/plugin-api 0.12.2-dev.202609181515.7e76c92 → 0.12.2-dev.202609181615.645c0a5

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 +45 -6
  2. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -4740,11 +4740,13 @@ declare type DistributiveOmit<T, K extends PropertyKey> = T extends unknown ? Om
4740
4740
  /**
4741
4741
  * Whether the given model or profile can process image input.
4742
4742
  *
4743
- * `modelOrProfile` may be a concrete model id, a profile key, or a
4744
- * {@link ModelProfileInfo}. A bare string is resolved as a model id first and,
4745
- * failing that, as a profile key. Returns `false` when nothing resolves.
4743
+ * `modelOrProfile` may be a concrete model id, a profile key, a
4744
+ * {@link ModelProfileInfo}, or a fully resolved target. A resolved target
4745
+ * combines the final provider/model with the winning profile's modality
4746
+ * policy. A bare string is resolved as a model id first and, failing that, as
4747
+ * a profile key. Returns `false` when nothing resolves.
4746
4748
  */
4747
- export declare function doesSupportVision(modelOrProfile: ModelProfileInfo | string): boolean;
4749
+ export declare function doesSupportVision(modelOrProfile: ModelProfileInfo | ResolvedVisionTarget | string): boolean;
4748
4750
 
4749
4751
  /**
4750
4752
  * Embed an input and return the raw dense vector (provider, model, and
@@ -5097,6 +5099,27 @@ export declare interface InitContext {
5097
5099
  assistantVersion: string;
5098
5100
  }
5099
5101
 
5102
+ declare type InputModalities = z.infer<typeof InputModalitiesSchema>;
5103
+
5104
+ declare const InputModalitiesSchema: z.ZodObject<{
5105
+ text: z.ZodOptional<z.ZodObject<{
5106
+ enabled: z.ZodOptional<z.ZodBoolean>;
5107
+ supported: z.ZodOptional<z.ZodBoolean>;
5108
+ }, z.core.$strip>>;
5109
+ image: z.ZodOptional<z.ZodObject<{
5110
+ enabled: z.ZodOptional<z.ZodBoolean>;
5111
+ supported: z.ZodOptional<z.ZodBoolean>;
5112
+ }, z.core.$strip>>;
5113
+ audio: z.ZodOptional<z.ZodObject<{
5114
+ enabled: z.ZodOptional<z.ZodBoolean>;
5115
+ supported: z.ZodOptional<z.ZodBoolean>;
5116
+ }, z.core.$strip>>;
5117
+ video: z.ZodOptional<z.ZodObject<{
5118
+ enabled: z.ZodOptional<z.ZodBoolean>;
5119
+ supported: z.ZodOptional<z.ZodBoolean>;
5120
+ }, z.core.$strip>>;
5121
+ }, z.core.$strip>;
5122
+
5100
5123
  /** Shape returned by {@link insertMessageCore} and its public wrappers. */
5101
5124
  declare interface InsertedMessage {
5102
5125
  id: string;
@@ -5219,8 +5242,9 @@ declare const LIVE_VOICE_TURN_DETECTION_MODES: readonly ["manual", "server_vad"]
5219
5242
  * the room) can otherwise only say "Thinking...". The label is composed here
5220
5243
  * rather than by each surface for the same reason phase wording is composed
5221
5244
  * once: the Live Activity has two independent drivers (this socket and an APNs
5222
- * push the daemon dispatches), they must carry identical content, and the only
5223
- * way to guarantee that is for both to be handed the same string.
5245
+ * push the daemon dispatches), they must carry compatible content. Structured
5246
+ * kinds let in-conversation surfaces use localized copy while system-level
5247
+ * surfaces can suppress internal detail.
5224
5248
  *
5225
5249
  * An empty `label` means "no current activity", which is what a turn's end
5226
5250
  * sends. Emitted only on change, never per tool result.
@@ -5229,6 +5253,12 @@ declare interface LiveVoiceActivityServerFrame extends LiveVoiceServerFrameBase
5229
5253
  readonly type: "activity";
5230
5254
  readonly turnId: string;
5231
5255
  readonly label: string;
5256
+ /** Structured reason for the activity, when a client needs custom display. */
5257
+ readonly kind?: "escalation";
5258
+ /** Selected inference profile for diagnostics, never default UI copy. */
5259
+ readonly profile?: string;
5260
+ /** Why the selected profile won for this leg. */
5261
+ readonly profileSource?: VoiceEscalationProfileSource;
5232
5262
  /**
5233
5263
  * The confirmation this turn is blocked on, when the label describes a wait
5234
5264
  * rather than work in flight. Absent otherwise.
@@ -6705,6 +6735,13 @@ export declare interface ResolvedSkillEntry {
6705
6735
  installMeta?: SkillInstallMeta | null;
6706
6736
  }
6707
6737
 
6738
+ /** A fully resolved provider target plus the winning profile's policy. */
6739
+ declare interface ResolvedVisionTarget {
6740
+ readonly provider?: string;
6741
+ readonly model: string;
6742
+ readonly inputModalities?: InputModalities | null;
6743
+ }
6744
+
6708
6745
  /**
6709
6746
  * Resolve a media source to inline base64, reading a reference source back from
6710
6747
  * its workspace location. Returns `null` when a reference can no longer be
@@ -8348,6 +8385,8 @@ export declare interface VideoEmbeddingInput {
8348
8385
  */
8349
8386
  export declare const VOICE_ESCALATION_CONTINUATION_MESSAGE_KIND = "voice_escalation_continuation";
8350
8387
 
8388
+ declare type VoiceEscalationProfileSource = "conversation" | "turn_override" | "image_compatibility" | "pre_model_hook" | "call_site";
8389
+
8351
8390
  declare interface WebFetchMetadata {
8352
8391
  url: string;
8353
8392
  finalUrl: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vellumai/plugin-api",
3
- "version": "0.12.2-dev.202609181515.7e76c92",
3
+ "version": "0.12.2-dev.202609181615.645c0a5",
4
4
  "description": "Public TypeScript authoring contract for Vellum assistant plugins.",
5
5
  "license": "MIT",
6
6
  "type": "module",