@paigy/mcp 0.33.0 → 0.34.0
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.
- package/dist/{chunk-JT7I3EGY.js → chunk-45CIZLCJ.js} +13 -1
- package/dist/{chunk-SASREQWV.js → chunk-G2WR7FCJ.js} +1 -1
- package/dist/{chunk-E3OWSUGJ.js → chunk-X42EUXML.js} +13 -1
- package/dist/enable.js +2 -2
- package/dist/index.js +4 -4
- package/dist/listen.js +2 -2
- package/dist/onboard.js +2 -2
- package/dist/statusline.js +1 -1
- package/package.json +1 -1
|
@@ -362,6 +362,12 @@ var PendingRepliesSchema = z.object({
|
|
|
362
362
|
pending: z.array(
|
|
363
363
|
z.object({ parentId: z.string(), notificationId: z.string(), createdAt: z.string() })
|
|
364
364
|
),
|
|
365
|
+
/** WHO YOU ARE on this account (field report 2026-08-28): the name and device the user
|
|
366
|
+
* sees for this session's identity. From inside a session there was no way to find out —
|
|
367
|
+
* `pair` with no arguments can HATCH a fresh identity, so it is not a safe probe — and an
|
|
368
|
+
* agent that cannot tell which agent it is cannot tell whether work addressed to
|
|
369
|
+
* "Reta" was addressed to it. Absent only for a token with no pairing behind it. */
|
|
370
|
+
you: z.object({ name: z.string(), device: z.string().nullable(), tokenId: z.string() }).optional(),
|
|
365
371
|
/** User-initiated requests addressed to this agent; act on them and reply via
|
|
366
372
|
* contact on the same parentId. Keeps reappearing until you call
|
|
367
373
|
* set_task_state on its notificationId. */
|
|
@@ -373,7 +379,13 @@ var PendingRepliesSchema = z.object({
|
|
|
373
379
|
createdAt: z.string(),
|
|
374
380
|
/** The user seeded this request with a past conversation — call get_thread on it
|
|
375
381
|
* FIRST and treat the transcript as prior context (#57/#251). */
|
|
376
|
-
contextParentId: z.string().optional()
|
|
382
|
+
contextParentId: z.string().optional(),
|
|
383
|
+
/** STRANDED (field report 2026-08-28): this request was addressed to ANOTHER agent on
|
|
384
|
+
* the account — the name here — which has not been seen since it landed, so nobody
|
|
385
|
+
* came for it. Handed to you because you are the session that is here. Take it like
|
|
386
|
+
* any request (set_task_state claims it, reply with contact on its parentId), and say
|
|
387
|
+
* whose it was, because the user chose that agent on purpose. */
|
|
388
|
+
stranded: z.string().optional()
|
|
377
389
|
})
|
|
378
390
|
),
|
|
379
391
|
/** Callbacks you owe the user that are now DUE (you said you'd follow up when done,
|
|
@@ -2756,6 +2756,12 @@ var PendingRepliesSchema = z.object({
|
|
|
2756
2756
|
pending: z.array(
|
|
2757
2757
|
z.object({ parentId: z.string(), notificationId: z.string(), createdAt: z.string() })
|
|
2758
2758
|
),
|
|
2759
|
+
/** WHO YOU ARE on this account (field report 2026-08-28): the name and device the user
|
|
2760
|
+
* sees for this session's identity. From inside a session there was no way to find out —
|
|
2761
|
+
* `pair` with no arguments can HATCH a fresh identity, so it is not a safe probe — and an
|
|
2762
|
+
* agent that cannot tell which agent it is cannot tell whether work addressed to
|
|
2763
|
+
* "Reta" was addressed to it. Absent only for a token with no pairing behind it. */
|
|
2764
|
+
you: z.object({ name: z.string(), device: z.string().nullable(), tokenId: z.string() }).optional(),
|
|
2759
2765
|
/** User-initiated requests addressed to this agent; act on them and reply via
|
|
2760
2766
|
* contact on the same parentId. Keeps reappearing until you call
|
|
2761
2767
|
* set_task_state on its notificationId. */
|
|
@@ -2767,7 +2773,13 @@ var PendingRepliesSchema = z.object({
|
|
|
2767
2773
|
createdAt: z.string(),
|
|
2768
2774
|
/** The user seeded this request with a past conversation — call get_thread on it
|
|
2769
2775
|
* FIRST and treat the transcript as prior context (#57/#251). */
|
|
2770
|
-
contextParentId: z.string().optional()
|
|
2776
|
+
contextParentId: z.string().optional(),
|
|
2777
|
+
/** STRANDED (field report 2026-08-28): this request was addressed to ANOTHER agent on
|
|
2778
|
+
* the account — the name here — which has not been seen since it landed, so nobody
|
|
2779
|
+
* came for it. Handed to you because you are the session that is here. Take it like
|
|
2780
|
+
* any request (set_task_state claims it, reply with contact on its parentId), and say
|
|
2781
|
+
* whose it was, because the user chose that agent on purpose. */
|
|
2782
|
+
stranded: z.string().optional()
|
|
2771
2783
|
})
|
|
2772
2784
|
),
|
|
2773
2785
|
/** Callbacks you owe the user that are now DUE (you said you'd follow up when done,
|
package/dist/enable.js
CHANGED
package/dist/index.js
CHANGED
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
import {
|
|
3
3
|
HandoffSchema,
|
|
4
4
|
MISSED_CALL_PLAN
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-45CIZLCJ.js";
|
|
6
6
|
import {
|
|
7
7
|
ENABLE_COMMAND,
|
|
8
8
|
PAIGY_TOOL_IDS,
|
|
9
9
|
autoConfigureClients,
|
|
10
10
|
claudeInstallHint,
|
|
11
11
|
paigyToolsAllowlisted
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-G2WR7FCJ.js";
|
|
13
13
|
import {
|
|
14
14
|
clearSurface,
|
|
15
15
|
writeSurface
|
|
@@ -51,7 +51,7 @@ import {
|
|
|
51
51
|
startE2ee,
|
|
52
52
|
submitNotification,
|
|
53
53
|
whoAmI
|
|
54
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-X42EUXML.js";
|
|
55
55
|
|
|
56
56
|
// src/index.ts
|
|
57
57
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
@@ -468,7 +468,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
468
468
|
},
|
|
469
469
|
{
|
|
470
470
|
name: "check_replies",
|
|
471
|
-
description: "The catch-up sweep for everything outstanding \u2014 a PURE read, takes no arguments, safe to call as often as you like: nothing here is consumed by reading it. Returns `replies` (answers to notifications you sent), your still-pending notifications, and `requests` \u2014 requests the user started toward you (each { notificationId, parentId, text }). Each keeps reappearing on every call until you actually engage with it: call set_task_state on its notificationId, which is what claims/acknowledges it \u2014 a human-initiated reply or request must never be silently dropped just because you read the list without acting. Also returns `threads` \u2014 the SAME replies + requests grouped by conversation, oldest thread first, each with a `busy` flag and its `items` in arrival order. WORK ONE THREAD AT A TIME: take the oldest thread whose `busy` is false, handle ALL of its items together in a single turn (one set_task_state), then go to the next \u2014 don't interleave threads item-by-item. A `busy` thread already has a turn in progress; leave it and let its new items ride the next turn. Use check_replies when booting up / starting a session, or when you've been waiting a long time on something else. To wait on an answer to a contact call you just made, use await_reply instead. Also returns owedCallbacks: callbacks now due that you promised \u2014 fulfill each with contact on its parentId. EVERY Paigy reply \u2014 this one, await_reply's, and contact's \u2014 may carry `also`: work assigned to you that no wake could reach, handed to you because you happened to be here. It is NOT what you asked about and it is never urgent: FINISH what you came for first, then take it up. Each entry has a `noteId` and the owner's own words; report on its `parentId` thread when it has one, and call set_task_state on that thread as you would for any assigned work. Ignoring it costs nothing \u2014 it rides your next reply too. Also returns `stalled`: work (either direction) you reported in_progress via set_task_state a while ago and never reported completed \u2014 likely left half-done by this session or a prior one that crashed or went idle. For each, either continue the work and report a real state, or investigate why it stalled. Replies may carry `intents`/`transcript`/`covered` (call-mapped answers) \u2014 handle intents exactly as await_reply's description says (defer \u2192 schedule_callback now; delegate \u2192 decide and say so; channel \u2192 honor next contact), and treat a `covered` list missing one of your declared points as that part still unanswered.",
|
|
471
|
+
description: "The catch-up sweep for everything outstanding \u2014 a PURE read, takes no arguments, safe to call as often as you like: nothing here is consumed by reading it. Returns `replies` (answers to notifications you sent), your still-pending notifications, and `requests` \u2014 requests the user started toward you (each { notificationId, parentId, text }). Each keeps reappearing on every call until you actually engage with it: call set_task_state on its notificationId, which is what claims/acknowledges it \u2014 a human-initiated reply or request must never be silently dropped just because you read the list without acting. Also returns `threads` \u2014 the SAME replies + requests grouped by conversation, oldest thread first, each with a `busy` flag and its `items` in arrival order. WORK ONE THREAD AT A TIME: take the oldest thread whose `busy` is false, handle ALL of its items together in a single turn (one set_task_state), then go to the next \u2014 don't interleave threads item-by-item. A `busy` thread already has a turn in progress; leave it and let its new items ride the next turn. Use check_replies when booting up / starting a session, or when you've been waiting a long time on something else. To wait on an answer to a contact call you just made, use await_reply instead. Also returns owedCallbacks: callbacks now due that you promised \u2014 fulfill each with contact on its parentId. EVERY Paigy reply \u2014 this one, await_reply's, and contact's \u2014 may carry `also`: work assigned to you that no wake could reach, handed to you because you happened to be here. It is NOT what you asked about and it is never urgent: FINISH what you came for first, then take it up. Each entry has a `noteId` and the owner's own words; report on its `parentId` thread when it has one, and call set_task_state on that thread as you would for any assigned work. Ignoring it costs nothing \u2014 it rides your next reply too. Also returns `stalled`: work (either direction) you reported in_progress via set_task_state a while ago and never reported completed \u2014 likely left half-done by this session or a prior one that crashed or went idle. For each, either continue the work and report a real state, or investigate why it stalled. Also returns `you` \u2014 WHICH IDENTITY you are speaking as ({ name, device, tokenId }), the same name and device the user sees on their Agents screen. This is the only safe way to find out (calling `pair` can MINT a new identity instead of telling you about the current one). Use it when the user asks who you are, and to tell whether work addressed to a name is addressed to you. A request may also carry `stranded`: it was addressed to ANOTHER agent on this account (that name) which has not been seen since it landed, so nobody came for it and it is handed to you because you are the session that is here. Take it exactly like your own \u2014 set_task_state claims it, reply with contact on its parentId \u2014 and say whose it was, because the user picked that agent on purpose. Replies may carry `intents`/`transcript`/`covered` (call-mapped answers) \u2014 handle intents exactly as await_reply's description says (defer \u2192 schedule_callback now; delegate \u2192 decide and say so; channel \u2192 honor next contact), and treat a `covered` list missing one of your declared points as that part still unanswered.",
|
|
472
472
|
inputSchema: json(z.object({}))
|
|
473
473
|
},
|
|
474
474
|
{
|
package/dist/listen.js
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
import {
|
|
3
3
|
WAKE_EVENT,
|
|
4
4
|
wakeChannel
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-45CIZLCJ.js";
|
|
6
6
|
import {
|
|
7
7
|
checkReplies,
|
|
8
8
|
registerDelivery
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-X42EUXML.js";
|
|
10
10
|
|
|
11
11
|
// src/listen.ts
|
|
12
12
|
import { createClient } from "@supabase/supabase-js";
|
package/dist/onboard.js
CHANGED
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
autoConfigureClients,
|
|
4
4
|
claudeInstallHint,
|
|
5
5
|
openBrowser
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-G2WR7FCJ.js";
|
|
7
7
|
import {
|
|
8
8
|
AGENT_NAME,
|
|
9
9
|
TOKEN_PATH,
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
setIdentity,
|
|
18
18
|
sleep,
|
|
19
19
|
whoAmI
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-X42EUXML.js";
|
|
21
21
|
|
|
22
22
|
// src/onboard.ts
|
|
23
23
|
async function main() {
|
package/dist/statusline.js
CHANGED