@vellumai/plugin-api 0.10.7-dev.202607091938.bdf217a → 0.10.7-dev.202607092134.572d027

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 +101 -0
  2. package/index.js +2 -0
  3. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -1207,6 +1207,7 @@ declare const AssistantConfigSchema: z.ZodObject<{
1207
1207
  high: "high";
1208
1208
  }>>;
1209
1209
  telephonyStreaming: z.ZodDefault<z.ZodBoolean>;
1210
+ utteranceEndMs: z.ZodDefault<z.ZodNumber>;
1210
1211
  }, z.core.$strip>>;
1211
1212
  callerIdentity: z.ZodDefault<z.ZodObject<{
1212
1213
  allowPerCallOverride: z.ZodDefault<z.ZodBoolean>;
@@ -1227,6 +1228,7 @@ declare const AssistantConfigSchema: z.ZodObject<{
1227
1228
  speechEnergyThreshold: z.ZodDefault<z.ZodNumber>;
1228
1229
  silenceThresholdMs: z.ZodDefault<z.ZodNumber>;
1229
1230
  maxTurnDurationMs: z.ZodDefault<z.ZodNumber>;
1231
+ bargeInMinSpeechMs: z.ZodDefault<z.ZodNumber>;
1230
1232
  }, z.core.$strip>>;
1231
1233
  maxSessionDurationSeconds: z.ZodDefault<z.ZodNumber>;
1232
1234
  }, z.core.$strip>>;
@@ -3470,6 +3472,30 @@ declare type InterfaceId = (typeof INTERFACE_IDS)[number];
3470
3472
  */
3471
3473
  export declare function isMaxTokensStopReason(stopReason: string | null | undefined): boolean;
3472
3474
 
3475
+ /**
3476
+ * The remote skill catalog, fetched via the shared catalog cache. Entries
3477
+ * whose declared feature flag is disabled are reported with
3478
+ * `state: "unavailable"`; all others are `state: "available"`. Not deduplicated
3479
+ * against the installed catalog — callers that merge the two lists filter by
3480
+ * installed ids themselves.
3481
+ *
3482
+ * A fetch failure never rejects: the underlying cache degrades through its
3483
+ * fallback chain (stale cache → bundled local catalog → empty) and this
3484
+ * returns whatever that yields. An empty result therefore means "could not
3485
+ * enumerate the catalog" as much as "the catalog is empty" — callers must
3486
+ * gate destructive reconciliation (pruning against the catalog id set) on a
3487
+ * non-empty result. Unexpected errors from the catalog read propagate.
3488
+ */
3489
+ export declare function listCatalogSkills(): Promise<ResolvedSkillEntry[]>;
3490
+
3491
+ /**
3492
+ * The locally installed skill catalog with resolved states. Includes every
3493
+ * catalog entry — skills dropped by flag gating or the bundled allowlist are
3494
+ * reported with `state: "unavailable"` rather than omitted, so the returned
3495
+ * ids are the complete installed universe.
3496
+ */
3497
+ export declare function listInstalledSkills(): Promise<ResolvedSkillEntry[]>;
3498
+
3473
3499
  declare interface ListItem {
3474
3500
  id: string;
3475
3501
  title: string;
@@ -4468,6 +4494,52 @@ declare const RelationshipStateUpdatedEventSchema: z.ZodObject<{
4468
4494
  updatedAt: z.ZodString;
4469
4495
  }, z.core.$strip>;
4470
4496
 
4497
+ /**
4498
+ * Plugin-facing read API over the skill surface: the locally installed
4499
+ * catalog with resolved enablement states, and the remote skill catalog —
4500
+ * each composed host-side (catalog load + install-state resolution +
4501
+ * feature-flag gating + install-meta read), so callers hold no host config
4502
+ * and perform no flag checks of their own.
4503
+ *
4504
+ * The underlying skill and flag modules are loaded via dynamic `import()`
4505
+ * inside each function so that importing this module — which every
4506
+ * `@vellumai/plugin-api` consumer does transitively — does not eagerly pull
4507
+ * the catalog/flag import graph. An eager pull would force those modules'
4508
+ * named exports to resolve at instantiation, which breaks the intentional
4509
+ * partial module mocks in tests.
4510
+ */
4511
+ /** One skill as seen by a plugin: capability fields plus resolved state. */
4512
+ export declare interface ResolvedSkillEntry {
4513
+ id: string;
4514
+ displayName: string;
4515
+ description: string;
4516
+ /** Compact routing cues declared in frontmatter / catalog metadata. */
4517
+ activationHints?: string[];
4518
+ /** Conditions under which the skill should not be loaded. */
4519
+ avoidWhen?: string[];
4520
+ /** True when the skill is pinned into the memory selector pool every turn. */
4521
+ alwaysCandidate?: boolean;
4522
+ /** True for locally installed skills; false for remote catalog entries. */
4523
+ installed: boolean;
4524
+ /** Where the installed skill comes from. Unset for remote catalog entries. */
4525
+ source?: SkillSource;
4526
+ /**
4527
+ * Resolved availability:
4528
+ * - `enabled` / `disabled` — installed, per config and source defaults.
4529
+ * - `unavailable` — gated off (feature flag disabled, or a bundled skill
4530
+ * excluded by the `allowBundled` allowlist). Present so callers can still
4531
+ * enumerate the full id universe.
4532
+ * - `available` — a remote catalog entry that is not locally installed.
4533
+ */
4534
+ state: "enabled" | "disabled" | "unavailable" | "available";
4535
+ /**
4536
+ * Install metadata for user-installed skills (`managed` / `workspace` /
4537
+ * `extra` sources): `null` when the directory has no install-meta file,
4538
+ * unset for sources that never carry one (bundled, plugin, remote).
4539
+ */
4540
+ installMeta?: SkillInstallMeta | null;
4541
+ }
4542
+
4471
4543
  /**
4472
4544
  * Resolve a media source to inline base64, reading a reference source back from
4473
4545
  * its workspace location. Returns `null` when a reference can no longer be
@@ -4829,6 +4901,21 @@ declare interface SkillBodyResponse {
4829
4901
  error?: string;
4830
4902
  }
4831
4903
 
4904
+ declare interface SkillInstallMeta {
4905
+ origin: "vellum" | "clawhub" | "skillssh" | "custom";
4906
+ installedAt: string;
4907
+ installedBy?: string;
4908
+ backfilledBy?: string;
4909
+ version?: string;
4910
+ slug?: string;
4911
+ sourceRepo?: string;
4912
+ contentHash?: string;
4913
+ author?: "assistant" | "user";
4914
+ sourceConversationId?: string;
4915
+ retrospectiveConversationId?: string;
4916
+ lastUsedAt?: string;
4917
+ }
4918
+
4832
4919
  declare interface SkillsDraftResponse {
4833
4920
  type: "skills_draft_response";
4834
4921
  success: boolean;
@@ -4884,6 +4971,20 @@ declare interface SkillsListResponse {
4884
4971
  skills: SlimSkillResponse[];
4885
4972
  }
4886
4973
 
4974
+ /**
4975
+ * Origin of a skill in the merged catalog.
4976
+ *
4977
+ * - `bundled`: ships inside the assistant binary under `bundled-skills/`.
4978
+ * - `managed`: installed into `$VELLUM_WORKSPACE_DIR/skills/` from our catalog.
4979
+ * - `workspace`: user-authored skill living in a conversation's working dir.
4980
+ * - `extra`: third-party directory roots passed via `loadSkillCatalog`'s
4981
+ * `extraDirs` argument (primarily for tests).
4982
+ * - `plugin`: shipped on disk inside an installed plugin at
4983
+ * `<workspaceDir>/plugins/<name>/skills/<id>/SKILL.md`, attributed back to
4984
+ * the owning plugin via its `owner` descriptor.
4985
+ */
4986
+ declare type SkillSource = "bundled" | "managed" | "workspace" | "extra" | "plugin";
4987
+
4887
4988
  declare type _SkillsServerMessages = SkillsListResponse | SkillBodyResponse | SkillStateChanged | SkillsInspectResponse | SkillsDraftResponse;
4888
4989
 
4889
4990
  declare interface SkillsshSlimSkill extends SlimSkillBase {
package/index.js CHANGED
@@ -9,6 +9,8 @@ export const getAssistantName = api.getAssistantName;
9
9
  export const getConfiguredProvider = api.getConfiguredProvider;
10
10
  export const getModelProfiles = api.getModelProfiles;
11
11
  export const isMaxTokensStopReason = api.isMaxTokensStopReason;
12
+ export const listCatalogSkills = api.listCatalogSkills;
13
+ export const listInstalledSkills = api.listInstalledSkills;
12
14
  export const resolveMediaSourceData = api.resolveMediaSourceData;
13
15
  export const resolveUserName = api.resolveUserName;
14
16
  export const selectedBackendSupportsMultimodal = api.selectedBackendSupportsMultimodal;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vellumai/plugin-api",
3
- "version": "0.10.7-dev.202607091938.bdf217a",
3
+ "version": "0.10.7-dev.202607092134.572d027",
4
4
  "description": "Public TypeScript authoring contract for Vellum assistant plugins.",
5
5
  "license": "MIT",
6
6
  "type": "module",