@pergy-ai/mcp 0.3.0 → 0.3.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/dist/index.js +6 -5
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -12,8 +12,8 @@ import { execSync } from "child_process";
12
12
  // ../../packages/schema/dist/index.js
13
13
  import { z } from "zod";
14
14
  var ContextSchema = z.object({
15
- title: z.string().describe("One-line headline of what you need."),
16
- description: z.array(z.string()).min(1).describe("Semantic chunks of detail (each a standalone piece). The user can select chunks to ask you to expand.")
15
+ title: z.string().min(1).describe("One-line headline of what you need (required, non-empty)."),
16
+ description: z.array(z.string().min(1)).min(1).describe("Semantic chunks of detail (each a standalone, non-empty piece). The user can select chunks to ask you to expand.")
17
17
  });
18
18
  var OptionSchema = z.object({
19
19
  id: z.string(),
@@ -46,8 +46,9 @@ var NotifyRequestSchema = z.object({
46
46
  /** Continue an existing conversation; omitted = start a new thread. */
47
47
  threadId: z.string().uuid().optional(),
48
48
  createdAt: z.string().datetime(),
49
- /** Whether this should ring the user (SP3) or sit in the inbox. Inert until SP3. */
50
- urgency: z.enum(["inbox", "call"]).default("inbox"),
49
+ urgency: z.enum(["inbox", "call"]).default("inbox").describe(
50
+ "'inbox' (default) = sits silently in the inbox for the user to get to. 'call' = rings the user's phone now (a CallKit voice call) \u2014 use only when you genuinely need them in the moment (blocked and waiting, time-sensitive). context.title becomes what they see on the ring, so make it specific."
51
+ ),
51
52
  /** The request this one was spawned from, for a clarification. */
52
53
  parentId: z.string().optional(),
53
54
  /** How the user answers the options: pick one (default), pick several, or pick & order. */
@@ -276,7 +277,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => ({
276
277
  tools: [
277
278
  {
278
279
  name: "notify_user",
279
- description: "Notify the user via Pergy and get a request id to poll for their answer. Provide context.title (one-line headline) and context.description (an array of standalone detail chunks the user can selectively ask you to expand). Plus optional options (answerable choices; each may carry a sandboxed `html` or an `image` preview for a visual 'pick one' \u2014 e.g. show layout/UI alternatives) and visuals. Use `select` to control how the user answers options: 'one' (default) = pick a single option; 'many' = multi-select, user checks any subset \u2192 answer arrives as {kind:'multi', optionIds:[...]}; 'rank' = select and order, user taps options in preferred order \u2192 answer arrives as {kind:'ranked', optionIds:[...]} (ordered by choice). If a reply comes back as {kind:'clarify', chunks:[...]}, the user wants more detail on those chunks \u2014 respond via notify_user with the SAME threadId and an expanded description. Pass `threadId` from a prior notify_user result or an await_reply reply to continue that conversation thread; omit it to start a new one.",
280
+ description: "Notify the user via Pergy and get a request id to poll for their answer. Provide context.title (a specific, non-empty one-line headline \u2014 this is what the user sees first, and what shows on the ring for a call) and context.description (an array of standalone, non-empty detail chunks the user can selectively ask you to expand). Set `urgency`: 'inbox' (default) drops it silently in their inbox; 'call' rings their phone now as a voice call \u2014 use 'call' only when you genuinely need them in the moment (blocked/waiting, time-sensitive), not for routine FYIs. Plus optional options (answerable choices; each may carry a sandboxed `html` or an `image` preview for a visual 'pick one' \u2014 e.g. show layout/UI alternatives) and visuals. Use `select` to control how the user answers options: 'one' (default) = pick a single option; 'many' = multi-select, user checks any subset \u2192 answer arrives as {kind:'multi', optionIds:[...]}; 'rank' = select and order, user taps options in preferred order \u2192 answer arrives as {kind:'ranked', optionIds:[...]} (ordered by choice). If a reply comes back as {kind:'clarify', chunks:[...]}, the user wants more detail on those chunks \u2014 respond via notify_user with the SAME threadId and an expanded description. Pass `threadId` from a prior notify_user result or an await_reply reply to continue that conversation thread; omit it to start a new one.",
280
281
  inputSchema: zodToJsonSchema(NotifyRequestSchema, { target: "openApi3" })
281
282
  },
282
283
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pergy-ai/mcp",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "Pergy MCP server — a voice inbox for your AI agents. Lets an agent notify a user and await their reply.",
5
5
  "license": "MIT",
6
6
  "type": "module",