@vellumai/plugin-api 0.11.8 → 0.11.9-staging.1

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 +39 -31
  2. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -31,6 +31,17 @@ declare interface AddMessageOptions {
31
31
  * internally. Pass the same value as `requestId` for user turns so
32
32
  * the persisted row ID matches the runtime correlation ID. */
33
33
  id?: string;
34
+ /**
35
+ * Answered synchronously at the top of every insert attempt, immediately
36
+ * before that attempt's statement. False aborts with a
37
+ * {@link MessageInsertPreconditionError} and writes nothing.
38
+ *
39
+ * For a caller whose right to write can lapse while the insert is in
40
+ * flight. Per attempt rather than per call because contention retries the
41
+ * insert after an awaited backoff, and the world can move under a caller
42
+ * during that sleep.
43
+ */
44
+ insertPrecondition?: () => boolean;
34
45
  }
35
46
 
36
47
  declare type AddMessageResult = Awaited<ReturnType<addMessage_2>>;
@@ -1579,15 +1590,6 @@ declare const AssistantEventEnvelopeSchema: z.ZodObject<{
1579
1590
  profile: z.ZodNullable<z.ZodString>;
1580
1591
  sessionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1581
1592
  expiresAt: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
1582
- }, z.core.$strip>, z.ZodObject<{
1583
- type: z.ZodLiteral<"conversation_list_invalidated">;
1584
- reason: z.ZodEnum<{
1585
- deleted: "deleted";
1586
- created: "created";
1587
- renamed: "renamed";
1588
- reordered: "reordered";
1589
- seen_changed: "seen_changed";
1590
- }>;
1591
1593
  }, z.core.$strip>, z.ZodObject<{
1592
1594
  type: z.ZodLiteral<"conversation_notice">;
1593
1595
  conversationId: z.ZodString;
@@ -2617,9 +2619,7 @@ export declare class AssistantEventHub {
2617
2619
  * it receive the event; untargeted events go to all
2618
2620
  * - if `targetInterfaceId` is set, only client subscribers whose
2619
2621
  * `interfaceId` matches receive the event; process subscribers and
2620
- * non-matching clients are skipped. Used to narrow legacy
2621
- * broadcasts (e.g. `conversation_list_invalidated`) to a specific
2622
- * client surface during a migration window.
2622
+ * non-matching clients are skipped.
2623
2623
  *
2624
2624
  * Fanout is isolated: a throwing or rejecting subscriber does not abort
2625
2625
  * delivery to remaining subscribers.
@@ -2752,6 +2752,7 @@ declare const AssistantEventPublishOptionsSchema: z.ZodObject<{
2752
2752
  ios: "ios";
2753
2753
  macos: "macos";
2754
2754
  windows: "windows";
2755
+ linux: "linux";
2755
2756
  cli: "cli";
2756
2757
  "chrome-extension": "chrome-extension";
2757
2758
  route: "route";
@@ -3099,15 +3100,6 @@ declare const AssistantEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
3099
3100
  profile: z.ZodNullable<z.ZodString>;
3100
3101
  sessionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
3101
3102
  expiresAt: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
3102
- }, z.core.$strip>, z.ZodObject<{
3103
- type: z.ZodLiteral<"conversation_list_invalidated">;
3104
- reason: z.ZodEnum<{
3105
- deleted: "deleted";
3106
- created: "created";
3107
- renamed: "renamed";
3108
- reordered: "reordered";
3109
- seen_changed: "seen_changed";
3110
- }>;
3111
3103
  }, z.core.$strip>, z.ZodObject<{
3112
3104
  type: z.ZodLiteral<"conversation_notice">;
3113
3105
  conversationId: z.ZodString;
@@ -4286,7 +4278,7 @@ declare interface CliCommandHelp {
4286
4278
  * than polluting the interface vocabulary. Drives only the per-turn
4287
4279
  * `client_os` context line (e.g. app-builder mobile-first for `ios`/`android`).
4288
4280
  */
4289
- declare const CLIENT_OS_VALUES: readonly ["web", "ios", "macos", "windows", "android"];
4281
+ declare const CLIENT_OS_VALUES: readonly ["web", "ios", "macos", "windows", "linux", "android"];
4290
4282
 
4291
4283
  declare interface ClientEntry extends BaseSubscriberEntry {
4292
4284
  type: "client";
@@ -4816,8 +4808,8 @@ export declare const HOOKS: {
4816
4808
 
4817
4809
  /**
4818
4810
  * Host proxy capabilities that an interface can support. macOS supports all
4819
- * of them, Windows withholds app control, and chrome-extension supports only
4820
- * host_browser through the Chrome DevTools Protocol proxy.
4811
+ * of them, Windows and Linux withhold app control, and chrome-extension
4812
+ * supports only host_browser through the Chrome DevTools Protocol proxy.
4821
4813
  */
4822
4814
  declare const HOST_PROXY_CAPABILITIES: readonly ["host_bash", "host_file", "host_cu", "host_browser", "host_app_control", "host_ui_snapshot"];
4823
4815
 
@@ -4935,7 +4927,7 @@ declare interface InsertedMessage {
4935
4927
  deduplicated: boolean;
4936
4928
  }
4937
4929
 
4938
- declare const INTERFACE_IDS: readonly ["macos", "windows", "ios", "cli", "telegram", "phone", "web", "whatsapp", "slack", "email", "chrome-extension", "a2a", "discord", "route", "plugin"];
4930
+ declare const INTERFACE_IDS: readonly ["macos", "windows", "linux", "ios", "cli", "telegram", "phone", "web", "whatsapp", "slack", "email", "chrome-extension", "a2a", "discord", "route", "plugin"];
4939
4931
 
4940
4932
  declare type InterfaceId = (typeof INTERFACE_IDS)[number];
4941
4933
 
@@ -5141,6 +5133,23 @@ declare interface LiveVoiceErrorServerFrame extends LiveVoiceServerFrameBase {
5141
5133
  * from older daemons) means the error is terminal for the session.
5142
5134
  */
5143
5135
  readonly recoverable?: boolean;
5136
+ /**
5137
+ * The attachment the refused frame named, present on `sight_frame`
5138
+ * rejections so the client can retire the exact keep that failed.
5139
+ *
5140
+ * `frameType` alone only narrows a rejection to the keep stream, and that
5141
+ * stream is the one place several sends are routinely outstanding at once:
5142
+ * the camera keeps shooting while a persist waits out a running turn, so a
5143
+ * client holding three unacknowledged keeps cannot tell which of them this
5144
+ * error is about. Naming the id is what turns "a frame failed" into "this
5145
+ * preview comes down".
5146
+ *
5147
+ * Optional, and no other error path populates it: a parse failure has no
5148
+ * id to name, and the other frames carrying an attachment have at most one
5149
+ * in flight, which `frameType` already identifies. Clients must tolerate
5150
+ * an absent id and must not gate any behavior on its presence.
5151
+ */
5152
+ readonly attachmentId?: string;
5144
5153
  }
5145
5154
 
5146
5155
  /**
@@ -5484,8 +5493,8 @@ declare const messageMetadataSchema: z.ZodObject<{
5484
5493
  discord: "discord";
5485
5494
  plugin: "plugin";
5486
5495
  }>>;
5487
- userMessageInterface: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<"phone" | "telegram" | "whatsapp" | "slack" | "email" | "a2a" | "discord" | "plugin" | "web" | "ios" | "macos" | "windows" | "cli" | "chrome-extension" | "route" | null, string>> & z.ZodType<"phone" | "telegram" | "whatsapp" | "slack" | "email" | "a2a" | "discord" | "plugin" | "web" | "ios" | "macos" | "windows" | "cli" | "chrome-extension" | "route", string, z.core.$ZodTypeInternals<"phone" | "telegram" | "whatsapp" | "slack" | "email" | "a2a" | "discord" | "plugin" | "web" | "ios" | "macos" | "windows" | "cli" | "chrome-extension" | "route", string>>>;
5488
- assistantMessageInterface: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<"phone" | "telegram" | "whatsapp" | "slack" | "email" | "a2a" | "discord" | "plugin" | "web" | "ios" | "macos" | "windows" | "cli" | "chrome-extension" | "route" | null, string>> & z.ZodType<"phone" | "telegram" | "whatsapp" | "slack" | "email" | "a2a" | "discord" | "plugin" | "web" | "ios" | "macos" | "windows" | "cli" | "chrome-extension" | "route", string, z.core.$ZodTypeInternals<"phone" | "telegram" | "whatsapp" | "slack" | "email" | "a2a" | "discord" | "plugin" | "web" | "ios" | "macos" | "windows" | "cli" | "chrome-extension" | "route", string>>>;
5496
+ userMessageInterface: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<"phone" | "telegram" | "whatsapp" | "slack" | "email" | "a2a" | "discord" | "plugin" | "web" | "ios" | "macos" | "windows" | "linux" | "cli" | "chrome-extension" | "route" | null, string>> & z.ZodType<"phone" | "telegram" | "whatsapp" | "slack" | "email" | "a2a" | "discord" | "plugin" | "web" | "ios" | "macos" | "windows" | "linux" | "cli" | "chrome-extension" | "route", string, z.core.$ZodTypeInternals<"phone" | "telegram" | "whatsapp" | "slack" | "email" | "a2a" | "discord" | "plugin" | "web" | "ios" | "macos" | "windows" | "linux" | "cli" | "chrome-extension" | "route", string>>>;
5497
+ assistantMessageInterface: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<"phone" | "telegram" | "whatsapp" | "slack" | "email" | "a2a" | "discord" | "plugin" | "web" | "ios" | "macos" | "windows" | "linux" | "cli" | "chrome-extension" | "route" | null, string>> & z.ZodType<"phone" | "telegram" | "whatsapp" | "slack" | "email" | "a2a" | "discord" | "plugin" | "web" | "ios" | "macos" | "windows" | "linux" | "cli" | "chrome-extension" | "route", string, z.core.$ZodTypeInternals<"phone" | "telegram" | "whatsapp" | "slack" | "email" | "a2a" | "discord" | "plugin" | "web" | "ios" | "macos" | "windows" | "linux" | "cli" | "chrome-extension" | "route", string>>>;
5489
5498
  client: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
5490
5499
  clientOsFromRequest: z.ZodOptional<z.ZodBoolean>;
5491
5500
  subagentNotification: z.ZodOptional<z.ZodObject<{
@@ -5552,6 +5561,7 @@ declare const messageMetadataSchema: z.ZodObject<{
5552
5561
  attachmentStoredPaths: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
5553
5562
  memoryInjectedBlock: z.ZodOptional<z.ZodString>;
5554
5563
  memoryV3InjectedBlock: z.ZodOptional<z.ZodString>;
5564
+ memoryV3SpotlightBlock: z.ZodOptional<z.ZodString>;
5555
5565
  turnContextBlock: z.ZodOptional<z.ZodString>;
5556
5566
  pkbSystemReminderBlock: z.ZodOptional<z.ZodString>;
5557
5567
  workspaceBlock: z.ZodOptional<z.ZodString>;
@@ -6735,10 +6745,7 @@ export declare interface SendMessageConfig {
6735
6745
  /**
6736
6746
  * When true, the TURN-STARTING user message carries content that will not
6737
6747
  * recur byte-identically on the next turn, so a long-TTL breakpoint placed
6738
- * on it could never be read back across turns. The agent loop is the only
6739
- * producer: it sets the flag from the history it is about to send, when the
6740
- * turn-starting message carries a memory-v3 `<memory_spotlight>` block (the
6741
- * one injected block strip-and-replaced from every user message each turn).
6748
+ * on it could never be read back across turns.
6742
6749
  *
6743
6750
  * The flag describes the turn, not the request, so it holds for every
6744
6751
  * request the turn makes, including tool-loop iterations, whose trailing
@@ -7683,6 +7690,7 @@ declare const ToolDefinitionSchema: z.ZodObject<{
7683
7690
  macos: "macos";
7684
7691
  windows: "windows";
7685
7692
  android: "android";
7693
+ linux: "linux";
7686
7694
  }>>>;
7687
7695
  execute: z.ZodOptional<z.ZodCustom<(input: Record<string, unknown>, context: ToolContext) => Promise<ToolExecutionResult>, (input: Record<string, unknown>, context: ToolContext) => Promise<ToolExecutionResult>>>;
7688
7696
  exclusive: z.ZodOptional<z.ZodBoolean>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vellumai/plugin-api",
3
- "version": "0.11.8",
3
+ "version": "0.11.9-staging.1",
4
4
  "description": "Public TypeScript authoring contract for Vellum assistant plugins.",
5
5
  "license": "MIT",
6
6
  "type": "module",