@paigy/mcp 0.40.34 → 0.40.36
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-5YTQF6KQ.js → chunk-EDC5PD65.js} +1 -89
- package/dist/{chunk-VVQ4OQOB.js → chunk-LO27ONPJ.js} +2 -2
- package/dist/{chunk-YIMNBJEF.js → chunk-R3QKEB2X.js} +0 -52
- package/dist/{chunk-7ZM5RGW4.js → chunk-XTMBFUIL.js} +1 -1
- package/dist/{dist-HRRH3KO4.js → dist-MKJUX54U.js} +1 -9
- package/dist/enable.js +3 -3
- package/dist/index.js +4 -4
- package/dist/listen.js +2 -2
- package/dist/onboard.js +4 -4
- package/dist/slot.js +1 -1
- package/dist/stalled.js +1 -1
- package/dist/statusline.js +1 -1
- package/package.json +1 -1
|
@@ -3220,58 +3220,6 @@ var NoteSchema = z12.object({
|
|
|
3220
3220
|
lastRideAt: z12.string().nullable().default(null),
|
|
3221
3221
|
createdAt: z12.string()
|
|
3222
3222
|
});
|
|
3223
|
-
var TriageItemSchema = z12.object({
|
|
3224
|
-
noteId: z12.string(),
|
|
3225
|
-
/** The note's headline at run time. */
|
|
3226
|
-
title: z12.string(),
|
|
3227
|
-
/** WHY, in one short human line, evidence first — this is read on a phone underneath
|
|
3228
|
-
* the note's title: "no movement in 34 days", "worked 3 notes in this repo this week".
|
|
3229
|
-
* Never a model's reasoning transcript, never an id. */
|
|
3230
|
-
why: z12.string()
|
|
3231
|
-
});
|
|
3232
|
-
var TriageAssignmentSchema = z12.object({
|
|
3233
|
-
/** The agent's token id — what `dispatchNote` resolves and what a request is addressed to. */
|
|
3234
|
-
agent: z12.string(),
|
|
3235
|
-
/** Its display name at run time (the name on the hatchling's card). Denormalized for the
|
|
3236
|
-
* same reason as `title`: the card must render from the proposal alone. */
|
|
3237
|
-
agentName: z12.string(),
|
|
3238
|
-
notes: z12.array(TriageItemSchema)
|
|
3239
|
-
});
|
|
3240
|
-
var TriageStatusSchema = z12.enum(["open", "superseded", "dismissed"]);
|
|
3241
|
-
var SubmitTriageSchema = z12.object({
|
|
3242
|
-
/** Which runtime judged: "ollama" (inference never left the machine) or a harness the
|
|
3243
|
-
* user already runs under their own credentials ("claude" / "codex" / "agy"). Recorded
|
|
3244
|
-
* so the phone can say where the content went — an unattributed privacy claim is worth
|
|
3245
|
-
* nothing, and #1106's promise is precisely "Paigy's servers never see this". */
|
|
3246
|
-
provider: z12.string().min(1).max(60),
|
|
3247
|
-
/** The concrete model when the provider names one (an ollama tag); null otherwise. */
|
|
3248
|
-
model: z12.string().max(200).nullable().optional(),
|
|
3249
|
-
/** How many open notes the run actually looked at — the denominator on the phone
|
|
3250
|
-
* ("6 of 50"), and the honest answer to "did it read the whole queue?". */
|
|
3251
|
-
reviewed: z12.number().int().min(0).max(1e4).default(0),
|
|
3252
|
-
close: z12.array(TriageItemSchema).max(200).default([]),
|
|
3253
|
-
stale: z12.array(TriageItemSchema).max(200).default([]),
|
|
3254
|
-
assign: z12.array(TriageAssignmentSchema).max(50).default([])
|
|
3255
|
-
});
|
|
3256
|
-
var TriageProposalSchema = SubmitTriageSchema.extend({
|
|
3257
|
-
id: z12.string(),
|
|
3258
|
-
runAt: z12.string(),
|
|
3259
|
-
status: TriageStatusSchema,
|
|
3260
|
-
model: z12.string().nullable().default(null)
|
|
3261
|
-
});
|
|
3262
|
-
var AcceptTriageSchema = z12.discriminatedUnion("group", [
|
|
3263
|
-
z12.object({ group: z12.literal("close"), noteIds: z12.array(z12.string()).max(200).optional() }),
|
|
3264
|
-
z12.object({ group: z12.literal("stale"), noteIds: z12.array(z12.string()).max(200).optional() }),
|
|
3265
|
-
z12.object({
|
|
3266
|
-
group: z12.literal("assign"),
|
|
3267
|
-
agent: z12.string().min(1),
|
|
3268
|
-
noteIds: z12.array(z12.string()).max(200).optional()
|
|
3269
|
-
})
|
|
3270
|
-
]);
|
|
3271
|
-
var AcceptTriageResultSchema = z12.object({
|
|
3272
|
-
accepted: z12.array(z12.string()),
|
|
3273
|
-
failed: z12.array(z12.object({ noteId: z12.string(), reason: z12.string() }))
|
|
3274
|
-
});
|
|
3275
3223
|
var DeliveryModeSchema = z12.enum(["poll", "self_hosted"]);
|
|
3276
3224
|
var WAKE_EVENT = "wake";
|
|
3277
3225
|
var wakeChannel = (tokenId) => `wake:${tokenId}`;
|
|
@@ -3834,39 +3782,6 @@ async function listConnections(opts = {}) {
|
|
|
3834
3782
|
if (!res.ok) throw new Error(`list_connections failed: ${res.status} ${await res.text()}`);
|
|
3835
3783
|
return await res.json();
|
|
3836
3784
|
}
|
|
3837
|
-
async function submitTriage(run, opts = {}) {
|
|
3838
|
-
const res = await ensureAuthed(await reach(`${BACKEND_URL}/api/triage`, {
|
|
3839
|
-
method: "POST",
|
|
3840
|
-
headers: { "content-type": "application/json", authorization: `Bearer ${authToken(opts.token)}` },
|
|
3841
|
-
body: JSON.stringify(run)
|
|
3842
|
-
}));
|
|
3843
|
-
if (!res.ok) throw new Error(`submit_triage failed: ${res.status} ${await res.text()}`);
|
|
3844
|
-
return await res.json();
|
|
3845
|
-
}
|
|
3846
|
-
async function getTriage(opts = {}) {
|
|
3847
|
-
const res = await ensureAuthed(await reach(`${BACKEND_URL}/api/triage`, {
|
|
3848
|
-
headers: { authorization: `Bearer ${authToken(opts.token)}` }
|
|
3849
|
-
}));
|
|
3850
|
-
if (!res.ok) throw new Error(`get_triage failed: ${res.status} ${await res.text()}`);
|
|
3851
|
-
return await res.json();
|
|
3852
|
-
}
|
|
3853
|
-
async function acceptTriage(proposalId, body, opts = {}) {
|
|
3854
|
-
const res = await ensureAuthed(await reach(`${BACKEND_URL}/api/triage/${encodeURIComponent(proposalId)}/accept`, {
|
|
3855
|
-
method: "POST",
|
|
3856
|
-
headers: { "content-type": "application/json", authorization: `Bearer ${authToken(opts.token)}` },
|
|
3857
|
-
body: JSON.stringify(body)
|
|
3858
|
-
}));
|
|
3859
|
-
if (!res.ok) throw new Error(`accept_triage failed: ${res.status} ${await res.text()}`);
|
|
3860
|
-
return await res.json();
|
|
3861
|
-
}
|
|
3862
|
-
async function dismissTriage(proposalId, opts = {}) {
|
|
3863
|
-
const res = await ensureAuthed(await reach(`${BACKEND_URL}/api/triage/${encodeURIComponent(proposalId)}/dismiss`, {
|
|
3864
|
-
method: "POST",
|
|
3865
|
-
headers: { authorization: `Bearer ${authToken(opts.token)}` }
|
|
3866
|
-
}));
|
|
3867
|
-
if (!res.ok) throw new Error(`dismiss_triage failed: ${res.status} ${await res.text()}`);
|
|
3868
|
-
return await res.json();
|
|
3869
|
-
}
|
|
3870
3785
|
async function searchRecords(input, opts = {}) {
|
|
3871
3786
|
const res = await ensureAuthed(await (opts.reach ?? reach)(`${BACKEND_URL}/api/records/search`, {
|
|
3872
3787
|
method: "POST",
|
|
@@ -4084,6 +3999,7 @@ function conversation(e) {
|
|
|
4084
3999
|
from: who(entry.authorParticipant),
|
|
4085
4000
|
at: at(entry.createdAt),
|
|
4086
4001
|
said: sealed ? "[encrypted]" : entryWords(entry).trim(),
|
|
4002
|
+
caveat: entry.callOngoing ? "Call ongoing; what the person decides may change." : void 0,
|
|
4087
4003
|
units: askUnits(entry, e.entries ?? []).map((u) => `${u.title}: ${u.body}`),
|
|
4088
4004
|
re: re ? handle(re) : void 0,
|
|
4089
4005
|
options,
|
|
@@ -4621,10 +4537,6 @@ export {
|
|
|
4621
4537
|
registerDelivery,
|
|
4622
4538
|
listNotes,
|
|
4623
4539
|
listConnections,
|
|
4624
|
-
submitTriage,
|
|
4625
|
-
getTriage,
|
|
4626
|
-
acceptTriage,
|
|
4627
|
-
dismissTriage,
|
|
4628
4540
|
searchRecords,
|
|
4629
4541
|
checkActivity,
|
|
4630
4542
|
readDelivery,
|
|
@@ -4,12 +4,12 @@ import {
|
|
|
4
4
|
serverInstructions,
|
|
5
5
|
sessionStartHook,
|
|
6
6
|
withSessionStartHook
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-R3QKEB2X.js";
|
|
8
8
|
import {
|
|
9
9
|
CODEX_ENV,
|
|
10
10
|
agentName,
|
|
11
11
|
withCodexEnv
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-EDC5PD65.js";
|
|
13
13
|
|
|
14
14
|
// src/toolset.ts
|
|
15
15
|
var CONFIGURE_DESCRIPTION = "Set this agent up with Paigy \u2014 call it FIRST, before contact, and any time you're unsure who you are. One call does whatever the situation needs: NOT SET UP \u2192 if this machine holds a device credential (the user ran the Paigy desktop app or harness) it hatches an identity INSTANTLY, no code and no approval; otherwise it starts the code ceremony. ALREADY SET UP \u2192 returns your current identity and the two things left to decide, renaming it or logging out. TOKEN NO LONGER VALID \u2192 says so, then re-pairs. Pass { name, voice } to choose who you are when hatching, or to RENAME yourself when already set up (pick your own; voices: rachel, george, jessica, brian, lily). Safe to call any time: idempotent, and it never writes settings \u2014 the tool-allowlist state it reports is read-only.\n\nTHE CODE CEREMONY does not open a browser; the user enters the code in the Paigy app (or scans `qr`). A result with { user_code, device_code, qr, user_message } has already started polling for approval in the background: you MUST immediately print the `user_message` (the bare code) to the user, AND in that same turn call configure again with that `device_code` to collect the result. It returns the moment the user approves; on { status:'pending' } call again to keep waiting; on { status:'awaiting_confirmation' } (E2EE) show the bare `user_message` verify code and call again to finish. The leading text block of every result states the code plainly, so it shows even if you emit no prose.\n\nOn { status:'paired' }, or whenever it returns `enable_command`, ALWAYS follow the `enable_prompt`: PRINT that command for the user to run, so Paigy's tools stop prompting each time. You cannot apply it yourself (it writes your own permission allowlist, which hosts block as privilege escalation), so print it, don't wait for it, and carry on.\n\nLOG OUT with { logOut: true }: it logs out THIS agent only \u2014 its token is revoked server-side and its local entry removed. Other agents and this device's credential are untouched, and a later configure re-hatches instantly while the device credential exists. Disconnecting the device itself is not an agent tool.";
|
|
@@ -1707,58 +1707,6 @@ var NoteSchema = z12.object({
|
|
|
1707
1707
|
lastRideAt: z12.string().nullable().default(null),
|
|
1708
1708
|
createdAt: z12.string()
|
|
1709
1709
|
});
|
|
1710
|
-
var TriageItemSchema = z12.object({
|
|
1711
|
-
noteId: z12.string(),
|
|
1712
|
-
/** The note's headline at run time. */
|
|
1713
|
-
title: z12.string(),
|
|
1714
|
-
/** WHY, in one short human line, evidence first — this is read on a phone underneath
|
|
1715
|
-
* the note's title: "no movement in 34 days", "worked 3 notes in this repo this week".
|
|
1716
|
-
* Never a model's reasoning transcript, never an id. */
|
|
1717
|
-
why: z12.string()
|
|
1718
|
-
});
|
|
1719
|
-
var TriageAssignmentSchema = z12.object({
|
|
1720
|
-
/** The agent's token id — what `dispatchNote` resolves and what a request is addressed to. */
|
|
1721
|
-
agent: z12.string(),
|
|
1722
|
-
/** Its display name at run time (the name on the hatchling's card). Denormalized for the
|
|
1723
|
-
* same reason as `title`: the card must render from the proposal alone. */
|
|
1724
|
-
agentName: z12.string(),
|
|
1725
|
-
notes: z12.array(TriageItemSchema)
|
|
1726
|
-
});
|
|
1727
|
-
var TriageStatusSchema = z12.enum(["open", "superseded", "dismissed"]);
|
|
1728
|
-
var SubmitTriageSchema = z12.object({
|
|
1729
|
-
/** Which runtime judged: "ollama" (inference never left the machine) or a harness the
|
|
1730
|
-
* user already runs under their own credentials ("claude" / "codex" / "agy"). Recorded
|
|
1731
|
-
* so the phone can say where the content went — an unattributed privacy claim is worth
|
|
1732
|
-
* nothing, and #1106's promise is precisely "Paigy's servers never see this". */
|
|
1733
|
-
provider: z12.string().min(1).max(60),
|
|
1734
|
-
/** The concrete model when the provider names one (an ollama tag); null otherwise. */
|
|
1735
|
-
model: z12.string().max(200).nullable().optional(),
|
|
1736
|
-
/** How many open notes the run actually looked at — the denominator on the phone
|
|
1737
|
-
* ("6 of 50"), and the honest answer to "did it read the whole queue?". */
|
|
1738
|
-
reviewed: z12.number().int().min(0).max(1e4).default(0),
|
|
1739
|
-
close: z12.array(TriageItemSchema).max(200).default([]),
|
|
1740
|
-
stale: z12.array(TriageItemSchema).max(200).default([]),
|
|
1741
|
-
assign: z12.array(TriageAssignmentSchema).max(50).default([])
|
|
1742
|
-
});
|
|
1743
|
-
var TriageProposalSchema = SubmitTriageSchema.extend({
|
|
1744
|
-
id: z12.string(),
|
|
1745
|
-
runAt: z12.string(),
|
|
1746
|
-
status: TriageStatusSchema,
|
|
1747
|
-
model: z12.string().nullable().default(null)
|
|
1748
|
-
});
|
|
1749
|
-
var AcceptTriageSchema = z12.discriminatedUnion("group", [
|
|
1750
|
-
z12.object({ group: z12.literal("close"), noteIds: z12.array(z12.string()).max(200).optional() }),
|
|
1751
|
-
z12.object({ group: z12.literal("stale"), noteIds: z12.array(z12.string()).max(200).optional() }),
|
|
1752
|
-
z12.object({
|
|
1753
|
-
group: z12.literal("assign"),
|
|
1754
|
-
agent: z12.string().min(1),
|
|
1755
|
-
noteIds: z12.array(z12.string()).max(200).optional()
|
|
1756
|
-
})
|
|
1757
|
-
]);
|
|
1758
|
-
var AcceptTriageResultSchema = z12.object({
|
|
1759
|
-
accepted: z12.array(z12.string()),
|
|
1760
|
-
failed: z12.array(z12.object({ noteId: z12.string(), reason: z12.string() }))
|
|
1761
|
-
});
|
|
1762
1710
|
var DeliveryModeSchema = z12.enum(["poll", "self_hosted"]);
|
|
1763
1711
|
var RegisterDeliverySchema = z12.object({ mode: DeliveryModeSchema });
|
|
1764
1712
|
var OAuthStartSchema = z12.object({
|
|
@@ -13,7 +13,6 @@ import {
|
|
|
13
13
|
RevokedError,
|
|
14
14
|
TOKEN_PATH,
|
|
15
15
|
UnpairedError,
|
|
16
|
-
acceptTriage,
|
|
17
16
|
acknowledge,
|
|
18
17
|
agentName,
|
|
19
18
|
authToken,
|
|
@@ -23,10 +22,8 @@ import {
|
|
|
23
22
|
contact,
|
|
24
23
|
currentRepo,
|
|
25
24
|
deleteToken,
|
|
26
|
-
dismissTriage,
|
|
27
25
|
finishSessionEnd,
|
|
28
26
|
getGoals,
|
|
29
|
-
getTriage,
|
|
30
27
|
hatch,
|
|
31
28
|
heartbeat,
|
|
32
29
|
isNetworkError,
|
|
@@ -61,12 +58,11 @@ import {
|
|
|
61
58
|
sleep,
|
|
62
59
|
slotIdentity,
|
|
63
60
|
slotName,
|
|
64
|
-
submitTriage,
|
|
65
61
|
subscribeWake,
|
|
66
62
|
updateSlot,
|
|
67
63
|
whoAmI,
|
|
68
64
|
withCodexEnv
|
|
69
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-EDC5PD65.js";
|
|
70
66
|
export {
|
|
71
67
|
AGENT_TOOLS,
|
|
72
68
|
AGENT_TOOL_NAMES,
|
|
@@ -82,7 +78,6 @@ export {
|
|
|
82
78
|
RevokedError,
|
|
83
79
|
TOKEN_PATH,
|
|
84
80
|
UnpairedError,
|
|
85
|
-
acceptTriage,
|
|
86
81
|
acknowledge,
|
|
87
82
|
agentName,
|
|
88
83
|
authToken,
|
|
@@ -92,10 +87,8 @@ export {
|
|
|
92
87
|
contact,
|
|
93
88
|
currentRepo,
|
|
94
89
|
deleteToken,
|
|
95
|
-
dismissTriage,
|
|
96
90
|
finishSessionEnd,
|
|
97
91
|
getGoals,
|
|
98
|
-
getTriage,
|
|
99
92
|
hatch,
|
|
100
93
|
heartbeat,
|
|
101
94
|
isNetworkError,
|
|
@@ -130,7 +123,6 @@ export {
|
|
|
130
123
|
sleep,
|
|
131
124
|
slotIdentity,
|
|
132
125
|
slotName,
|
|
133
|
-
submitTriage,
|
|
134
126
|
subscribeWake,
|
|
135
127
|
updateSlot,
|
|
136
128
|
whoAmI,
|
package/dist/enable.js
CHANGED
|
@@ -3,9 +3,9 @@ import {
|
|
|
3
3
|
PAIGY_TOOL_IDS,
|
|
4
4
|
enablePaigyTools,
|
|
5
5
|
installSessionListening
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-LO27ONPJ.js";
|
|
7
|
+
import "./chunk-R3QKEB2X.js";
|
|
8
|
+
import "./chunk-EDC5PD65.js";
|
|
9
9
|
|
|
10
10
|
// src/enable.ts
|
|
11
11
|
function main() {
|
package/dist/index.js
CHANGED
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
resolvePairing,
|
|
10
10
|
startPairing,
|
|
11
11
|
suggestedAgentName
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-XTMBFUIL.js";
|
|
13
13
|
import {
|
|
14
14
|
ConfigureSchema,
|
|
15
15
|
ENABLE_COMMAND,
|
|
@@ -17,14 +17,14 @@ import {
|
|
|
17
17
|
SERVER_INSTRUCTIONS,
|
|
18
18
|
TOOLS,
|
|
19
19
|
paigyToolsAllowlisted
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-LO27ONPJ.js";
|
|
21
21
|
import {
|
|
22
22
|
decideListen,
|
|
23
23
|
existingListener,
|
|
24
24
|
harnessDriven,
|
|
25
25
|
listenerKey,
|
|
26
26
|
wakeStatusPath
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-R3QKEB2X.js";
|
|
28
28
|
import {
|
|
29
29
|
clearSurface,
|
|
30
30
|
writeSurface
|
|
@@ -45,7 +45,7 @@ import {
|
|
|
45
45
|
setClient,
|
|
46
46
|
slotName,
|
|
47
47
|
whoAmI
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-EDC5PD65.js";
|
|
49
49
|
|
|
50
50
|
// src/index.ts
|
|
51
51
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
package/dist/listen.js
CHANGED
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
removeListenMark,
|
|
12
12
|
wakeStatusPath,
|
|
13
13
|
writeListenMark
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-R3QKEB2X.js";
|
|
15
15
|
import {
|
|
16
16
|
agentName,
|
|
17
17
|
getGoals,
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
receive,
|
|
21
21
|
slotName,
|
|
22
22
|
subscribeWake
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-EDC5PD65.js";
|
|
24
24
|
|
|
25
25
|
// src/listen.ts
|
|
26
26
|
import { createHash } from "crypto";
|
package/dist/onboard.js
CHANGED
|
@@ -3,13 +3,13 @@ import {
|
|
|
3
3
|
resolvePairing,
|
|
4
4
|
startPairing,
|
|
5
5
|
suggestedAgentName
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-XTMBFUIL.js";
|
|
7
7
|
import {
|
|
8
8
|
autoConfigureClients,
|
|
9
9
|
claudeInstallHint,
|
|
10
10
|
openBrowser
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-LO27ONPJ.js";
|
|
12
|
+
import "./chunk-R3QKEB2X.js";
|
|
13
13
|
import {
|
|
14
14
|
TOKEN_PATH,
|
|
15
15
|
agentName,
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
saveToken,
|
|
21
21
|
setIdentity,
|
|
22
22
|
whoAmI
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-EDC5PD65.js";
|
|
24
24
|
|
|
25
25
|
// src/onboard.ts
|
|
26
26
|
function reportRegistered() {
|
package/dist/slot.js
CHANGED
package/dist/stalled.js
CHANGED
|
@@ -29,7 +29,7 @@ async function main() {
|
|
|
29
29
|
const dir = join(homedir(), ".paigy", "stalled-reminded");
|
|
30
30
|
const mark = join(dir, `${session || "session"}-${day}`);
|
|
31
31
|
if (existsSync(mark)) return;
|
|
32
|
-
const { receive } = await import("./dist-
|
|
32
|
+
const { receive } = await import("./dist-MKJUX54U.js");
|
|
33
33
|
const reply = stopReply((await receive()).stalled ?? [], input.hook_event_name ?? "Stop");
|
|
34
34
|
if (!reply) return;
|
|
35
35
|
mkdirSync(dir, { recursive: true });
|
package/dist/statusline.js
CHANGED
package/package.json
CHANGED