@vellumai/plugin-api 0.12.2-dev.202609211820.22f71b0 → 0.12.2-dev.202609212016.fb4c53e

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 (3) hide show
  1. package/index.d.ts +180 -0
  2. package/index.js +3 -0
  3. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -3669,6 +3669,50 @@ declare const AssistantEventEnvelopeSchema: z.ZodObject<{
3669
3669
  errorMessage: z.ZodOptional<z.ZodString>;
3670
3670
  mayRequireJavaScript: z.ZodOptional<z.ZodBoolean>;
3671
3671
  }, z.core.$strip>>;
3672
+ recall: z.ZodOptional<z.ZodObject<{
3673
+ query: z.ZodString;
3674
+ depth: z.ZodEnum<{
3675
+ standard: "standard";
3676
+ fast: "fast";
3677
+ deep: "deep";
3678
+ }>;
3679
+ sources: z.ZodArray<z.ZodEnum<{
3680
+ workspace: "workspace";
3681
+ memory: "memory";
3682
+ conversations: "conversations";
3683
+ }>>;
3684
+ answer: z.ZodOptional<z.ZodString>;
3685
+ evidence: z.ZodArray<z.ZodObject<{
3686
+ source: z.ZodEnum<{
3687
+ workspace: "workspace";
3688
+ memory: "memory";
3689
+ conversations: "conversations";
3690
+ }>;
3691
+ title: z.ZodString;
3692
+ locator: z.ZodString;
3693
+ excerpt: z.ZodString;
3694
+ timestampMs: z.ZodOptional<z.ZodNumber>;
3695
+ path: z.ZodOptional<z.ZodString>;
3696
+ conversationId: z.ZodOptional<z.ZodString>;
3697
+ messageId: z.ZodOptional<z.ZodString>;
3698
+ }, z.core.$strip>>;
3699
+ searchedSources: z.ZodArray<z.ZodObject<{
3700
+ source: z.ZodEnum<{
3701
+ workspace: "workspace";
3702
+ memory: "memory";
3703
+ conversations: "conversations";
3704
+ }>;
3705
+ status: z.ZodEnum<{
3706
+ searched: "searched";
3707
+ degraded: "degraded";
3708
+ }>;
3709
+ evidenceCount: z.ZodNumber;
3710
+ error: z.ZodOptional<z.ZodString>;
3711
+ }, z.core.$strip>>;
3712
+ }, z.core.$strip>>;
3713
+ remember: z.ZodOptional<z.ZodObject<{
3714
+ facts: z.ZodArray<z.ZodString>;
3715
+ }, z.core.$strip>>;
3672
3716
  }, z.core.$strip>>;
3673
3717
  answeredQuestion: z.ZodOptional<z.ZodObject<{
3674
3718
  requestId: z.ZodString;
@@ -5260,6 +5304,50 @@ declare const AssistantEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
5260
5304
  errorMessage: z.ZodOptional<z.ZodString>;
5261
5305
  mayRequireJavaScript: z.ZodOptional<z.ZodBoolean>;
5262
5306
  }, z.core.$strip>>;
5307
+ recall: z.ZodOptional<z.ZodObject<{
5308
+ query: z.ZodString;
5309
+ depth: z.ZodEnum<{
5310
+ standard: "standard";
5311
+ fast: "fast";
5312
+ deep: "deep";
5313
+ }>;
5314
+ sources: z.ZodArray<z.ZodEnum<{
5315
+ workspace: "workspace";
5316
+ memory: "memory";
5317
+ conversations: "conversations";
5318
+ }>>;
5319
+ answer: z.ZodOptional<z.ZodString>;
5320
+ evidence: z.ZodArray<z.ZodObject<{
5321
+ source: z.ZodEnum<{
5322
+ workspace: "workspace";
5323
+ memory: "memory";
5324
+ conversations: "conversations";
5325
+ }>;
5326
+ title: z.ZodString;
5327
+ locator: z.ZodString;
5328
+ excerpt: z.ZodString;
5329
+ timestampMs: z.ZodOptional<z.ZodNumber>;
5330
+ path: z.ZodOptional<z.ZodString>;
5331
+ conversationId: z.ZodOptional<z.ZodString>;
5332
+ messageId: z.ZodOptional<z.ZodString>;
5333
+ }, z.core.$strip>>;
5334
+ searchedSources: z.ZodArray<z.ZodObject<{
5335
+ source: z.ZodEnum<{
5336
+ workspace: "workspace";
5337
+ memory: "memory";
5338
+ conversations: "conversations";
5339
+ }>;
5340
+ status: z.ZodEnum<{
5341
+ searched: "searched";
5342
+ degraded: "degraded";
5343
+ }>;
5344
+ evidenceCount: z.ZodNumber;
5345
+ error: z.ZodOptional<z.ZodString>;
5346
+ }, z.core.$strip>>;
5347
+ }, z.core.$strip>>;
5348
+ remember: z.ZodOptional<z.ZodObject<{
5349
+ facts: z.ZodArray<z.ZodString>;
5350
+ }, z.core.$strip>>;
5263
5351
  }, z.core.$strip>>;
5264
5352
  answeredQuestion: z.ZodOptional<z.ZodObject<{
5265
5353
  requestId: z.ZodString;
@@ -12342,6 +12430,13 @@ declare type InterfaceId = (typeof INTERFACE_IDS)[number];
12342
12430
  */
12343
12431
  export declare const INTERNAL_NUDGE_OUTPUT_SUPPRESSION = " This notice is internal: do not repeat, quote, describe, or acknowledge it, and do not narrate whether you will continue or whether the turn is done. Reply with only the content the user should see.";
12344
12432
 
12433
+ /**
12434
+ * Failed-parse tool result for executors that validate their own input (the
12435
+ * pre-execution gate in `ToolApprovalHandler` produces the same message, so
12436
+ * the error reads identically whichever layer catches it first).
12437
+ */
12438
+ export declare function invalidToolInputResult(toolName: string, error: z.ZodError): ToolExecutionResult;
12439
+
12345
12440
  /** Whether the conversation currently has a turn in flight. */
12346
12441
  export declare function isConversationProcessing(id: string): Promise<boolean>;
12347
12442
 
@@ -18105,6 +18200,16 @@ generated: undefined;
18105
18200
  dialect: "sqlite";
18106
18201
  }>;
18107
18202
 
18203
+ /**
18204
+ * Wrap an optional field's schema so an explicit `null` parses as "omitted"
18205
+ * (`undefined`). Models routinely send `null` for optional fields they mean
18206
+ * to skip, and executors read such fields via `input.x ?? fallback`, where
18207
+ * null and absent are equivalent — validation must not reject null there.
18208
+ * The derived JSON Schema is the inner schema's (the null-tolerance is
18209
+ * runtime slack, not advertised contract).
18210
+ */
18211
+ export declare function nullAsOmitted<T extends z.ZodType>(schema: T): z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<T>>;
18212
+
18108
18213
  declare const oauthApps: SQLiteTableWithColumns< {
18109
18214
  name: "oauth_apps";
18110
18215
  schema: undefined;
@@ -23576,6 +23681,50 @@ declare const ToolActivityMetadataSchema: z.ZodObject<{
23576
23681
  errorMessage: z.ZodOptional<z.ZodString>;
23577
23682
  mayRequireJavaScript: z.ZodOptional<z.ZodBoolean>;
23578
23683
  }, z.core.$strip>>;
23684
+ recall: z.ZodOptional<z.ZodObject<{
23685
+ query: z.ZodString;
23686
+ depth: z.ZodEnum<{
23687
+ standard: "standard";
23688
+ fast: "fast";
23689
+ deep: "deep";
23690
+ }>;
23691
+ sources: z.ZodArray<z.ZodEnum<{
23692
+ workspace: "workspace";
23693
+ memory: "memory";
23694
+ conversations: "conversations";
23695
+ }>>;
23696
+ answer: z.ZodOptional<z.ZodString>;
23697
+ evidence: z.ZodArray<z.ZodObject<{
23698
+ source: z.ZodEnum<{
23699
+ workspace: "workspace";
23700
+ memory: "memory";
23701
+ conversations: "conversations";
23702
+ }>;
23703
+ title: z.ZodString;
23704
+ locator: z.ZodString;
23705
+ excerpt: z.ZodString;
23706
+ timestampMs: z.ZodOptional<z.ZodNumber>;
23707
+ path: z.ZodOptional<z.ZodString>;
23708
+ conversationId: z.ZodOptional<z.ZodString>;
23709
+ messageId: z.ZodOptional<z.ZodString>;
23710
+ }, z.core.$strip>>;
23711
+ searchedSources: z.ZodArray<z.ZodObject<{
23712
+ source: z.ZodEnum<{
23713
+ workspace: "workspace";
23714
+ memory: "memory";
23715
+ conversations: "conversations";
23716
+ }>;
23717
+ status: z.ZodEnum<{
23718
+ searched: "searched";
23719
+ degraded: "degraded";
23720
+ }>;
23721
+ evidenceCount: z.ZodNumber;
23722
+ error: z.ZodOptional<z.ZodString>;
23723
+ }, z.core.$strip>>;
23724
+ }, z.core.$strip>>;
23725
+ remember: z.ZodOptional<z.ZodObject<{
23726
+ facts: z.ZodArray<z.ZodString>;
23727
+ }, z.core.$strip>>;
23579
23728
  }, z.core.$strip>;
23580
23729
 
23581
23730
  /**
@@ -24369,6 +24518,37 @@ export declare interface ToolUseContent {
24369
24518
  };
24370
24519
  }
24371
24520
 
24521
+ /**
24522
+ * Derive a tool's LLM-facing `input_schema` from its Zod input schema, so the
24523
+ * schema the model sees and the validation the executor runs share one source
24524
+ * and cannot drift (`TOOL_INPUT_SCHEMAS` in `../tool-input-schemas.ts` holds
24525
+ * the executor-side half).
24526
+ *
24527
+ * Conversion uses Zod 4's native `z.toJSONSchema` (mirroring
24528
+ * `workflows/leaf-runner.ts`), then adjusts the output for the tool-definition
24529
+ * context:
24530
+ *
24531
+ * - The `$schema` marker is dropped — tool definitions don't carry one.
24532
+ * - `additionalProperties` values of `false` / `{}` are dropped. They are
24533
+ * authoring artifacts of `z.object` / `z.looseObject`, not intentional
24534
+ * contract: runtime validation never rejects unknown keys (registry schemas
24535
+ * must tolerate injected fields like `activity`, see
24536
+ * `schema-transforms.ts`), so advertising `additionalProperties: false`
24537
+ * would claim a strictness the runtime doesn't enforce.
24538
+ *
24539
+ * `advertiseRequired` names fields to mark required in the advertised schema
24540
+ * even though the Zod schema treats them as optional. This is the one
24541
+ * sanctioned divergence, and only in the tolerant direction: the model is told
24542
+ * to always send the field (e.g. `activity`, which drives status UX), but a
24543
+ * call that omits it still executes rather than failing on a field the tool
24544
+ * doesn't need. Naming `activity` there also records the schema as carrying
24545
+ * the daemon's own status field (`declareDaemonActivityField`), so a surface
24546
+ * that renders no activity text can drop it from the advertised copy.
24547
+ */
24548
+ export declare function toToolInputSchema(schema: z.ZodType, opts?: {
24549
+ advertiseRequired?: readonly string[];
24550
+ }): Record<string, unknown>;
24551
+
24372
24552
  /**
24373
24553
  * Trust classification of an inbound actor, ordered most- to least-trusted.
24374
24554
  * The one declaration of the vocabulary: the gateway classifies with it and
package/index.js CHANGED
@@ -35,6 +35,7 @@ export const getRecordedConversationToolSurface = api.getRecordedConversationToo
35
35
  export const getWorkspaceDir = api.getWorkspaceDir;
36
36
  export const hasLexicalTokens = api.hasLexicalTokens;
37
37
  export const indexDocument = api.indexDocument;
38
+ export const invalidToolInputResult = api.invalidToolInputResult;
38
39
  export const isConversationProcessing = api.isConversationProcessing;
39
40
  export const isMaxTokensStopReason = api.isMaxTokensStopReason;
40
41
  export const isToolResultMessage = api.isToolResultMessage;
@@ -44,6 +45,7 @@ export const listCatalogSkills = api.listCatalogSkills;
44
45
  export const listConversations = api.listConversations;
45
46
  export const listInstalledSkills = api.listInstalledSkills;
46
47
  export const mediaBlockAttachmentId = api.mediaBlockAttachmentId;
48
+ export const nullAsOmitted = api.nullAsOmitted;
47
49
  export const openTranscriptionSession = api.openTranscriptionSession;
48
50
  export const parseMessageMetadata = api.parseMessageMetadata;
49
51
  export const parseSurfaceShowResultId = api.parseSurfaceShowResultId;
@@ -67,4 +69,5 @@ export const sweepOrphanedGraphNodePoints = api.sweepOrphanedGraphNodePoints;
67
69
  export const syncMessageToDisk = api.syncMessageToDisk;
68
70
  export const synthesizeText = api.synthesizeText;
69
71
  export const throwIfCancelled = api.throwIfCancelled;
72
+ export const toToolInputSchema = api.toToolInputSchema;
70
73
  export const updateMessageMetadata = api.updateMessageMetadata;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vellumai/plugin-api",
3
- "version": "0.12.2-dev.202609211820.22f71b0",
3
+ "version": "0.12.2-dev.202609212016.fb4c53e",
4
4
  "description": "Public TypeScript authoring contract for Vellum assistant plugins.",
5
5
  "license": "MIT",
6
6
  "type": "module",