@ziggs-ai/ziggs-mcp 0.37.23 → 0.37.25
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/CHANGELOG.md +10 -0
- package/dist/tools.js +8 -7
- package/dist/workspaceRouting.js +13 -3
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 0.37.25
|
|
6
|
+
|
|
7
|
+
- `ziggs_inbox_claim` takes the lease and returns that it claimed, plus how many deliveries are waiting. It does not return the inbox.
|
|
8
|
+
- A malformed inbox acknowledgement is a request error, not a connection failure.
|
|
9
|
+
- Agreement list `fields` resolve the same aliases as the other lists and report `unknownFields`.
|
|
10
|
+
|
|
11
|
+
## 0.37.24
|
|
12
|
+
|
|
13
|
+
- `tools/list` marks `ziggs_inbox` read-only, with no ack parameters. `ziggs_inbox_ack` stays the write that moves the watermark. The inbox description says a full read takes this host's lease and that waitSeconds long-polls.
|
|
14
|
+
|
|
5
15
|
## 0.37.23
|
|
6
16
|
|
|
7
17
|
- `ziggs_agreement_list` with no scope returns the agreements you can reach, including hires. `scope: mine` is the party-only filter. `ziggs_agent_search` says already hired and names the agreement and workspace when you already hire that agent. The skill says the same.
|
package/dist/tools.js
CHANGED
|
@@ -2,7 +2,7 @@ import { isDirectorySurface } from './directorySurface.js';
|
|
|
2
2
|
import { INBOX_CARD_TOOL_META, inboxCardResult, registerInboxCardResource, } from './inboxCard.js';
|
|
3
3
|
import { randomUUID } from 'node:crypto';
|
|
4
4
|
import { z } from 'zod';
|
|
5
|
-
import { presentResourceActions, getAgreement, getMyAgreements, listMyChats, respondToAgreement, revokeAgreement, counterAgreement, fulfillAgreement, sendChatMessage, ConnectionsClient, ContextReadClient, GrantsClient, InboxClient, AssistantConnectionClient, createTask, updateTaskState, acknowledgeTaskControl, replaceTaskPlan, updateTaskPlanSteps, listTasks, getTask, getBackendUrl, fetchMyOrgs, fetchSessionAccess, isMcpOAuthDelegateSession, GRANTS_CAPABILITIES, AGREEMENT_TERMS_PARAMS, AGREEMENT_VERB_CAPABILITIES, LISTING_DOOR_CAPABILITIES, CONTEXT_GRANT_SCOPE_KINDS, contextReadCapability, openCapability, accessExplainCapability, contextExpandReachCapability, contextDiscoverGrantableCapability, recordArtifactCapability, listArtifactsCapability, findArtifactsCapability, shareArtifactCapability, attachArtifactCapability, uploadArtifactUrlCapability, completeArtifactFileCapability, downloadArtifactCapability, openConversationCapability, connectionProxyCapability, requestConnectionCapability, agreementClaimCapability, agreementSubcontractCapability, listTasksCapability, cancelTaskCapability, marketplaceViewCapability, parseListFields, pickListedRows, projectChatListRows, sessionOrientation, presentSendResult, presentTaskOutcome, explainRefusedRead, RESOURCE_HIDDEN_MESSAGE, SOURCES_DESCRIPTION, } from '@ziggs-ai/api-client';
|
|
5
|
+
import { presentResourceActions, getAgreement, getMyAgreements, listMyChats, respondToAgreement, revokeAgreement, counterAgreement, fulfillAgreement, sendChatMessage, ConnectionsClient, ContextReadClient, GrantsClient, InboxClient, AssistantConnectionClient, createTask, updateTaskState, acknowledgeTaskControl, replaceTaskPlan, updateTaskPlanSteps, listTasks, getTask, getBackendUrl, fetchMyOrgs, fetchSessionAccess, isMcpOAuthDelegateSession, GRANTS_CAPABILITIES, AGREEMENT_TERMS_PARAMS, AGREEMENT_VERB_CAPABILITIES, LISTING_DOOR_CAPABILITIES, CONTEXT_GRANT_SCOPE_KINDS, contextReadCapability, openCapability, accessExplainCapability, contextExpandReachCapability, contextDiscoverGrantableCapability, recordArtifactCapability, listArtifactsCapability, findArtifactsCapability, shareArtifactCapability, attachArtifactCapability, uploadArtifactUrlCapability, completeArtifactFileCapability, downloadArtifactCapability, openConversationCapability, connectionProxyCapability, requestConnectionCapability, agreementClaimCapability, agreementSubcontractCapability, listTasksCapability, cancelTaskCapability, marketplaceViewCapability, parseListFields, pickListedRows, listedFieldNote, projectChatListRows, sessionOrientation, presentSendResult, presentTaskOutcome, explainRefusedRead, RESOURCE_HIDDEN_MESSAGE, SOURCES_DESCRIPTION, } from '@ziggs-ai/api-client';
|
|
6
6
|
import { decodeOperatorKeyClaims } from './operatorKey.js';
|
|
7
7
|
import { registerTrustTools } from './trustTools.js';
|
|
8
8
|
import { registerPaymentTools } from './paymentTools.js';
|
|
@@ -392,10 +392,12 @@ export function registerZiggsTools(server, creds, cfg) {
|
|
|
392
392
|
...(proposalStatus ? { proposalStatus } : {}),
|
|
393
393
|
partyOnly: scope === 'mine',
|
|
394
394
|
}, creds);
|
|
395
|
+
const projected = parseListFields(fields);
|
|
395
396
|
return textResult({
|
|
396
397
|
count: agreements.length,
|
|
397
398
|
scope: scope ?? 'reachable',
|
|
398
|
-
agreements: pickListedRows(agreements,
|
|
399
|
+
agreements: pickListedRows(agreements, projected),
|
|
400
|
+
...listedFieldNote(agreements, projected),
|
|
399
401
|
});
|
|
400
402
|
}
|
|
401
403
|
catch (e) {
|
|
@@ -709,7 +711,7 @@ export function registerZiggsTools(server, creds, cfg) {
|
|
|
709
711
|
.number()
|
|
710
712
|
.optional()
|
|
711
713
|
.describe('Long-poll: hold up to this many seconds (the server clamps a hold at about 110) and return as soon as something new arrives, same response shape, no busy re-polling. Omit for an immediate snapshot. When your person asked you to wait for a reply, pass 55 and call again until it arrives or ten minutes have passed.'),
|
|
712
|
-
},
|
|
714
|
+
}, readOnly('Read your inbox'), async ({ waitSeconds }) => {
|
|
713
715
|
try {
|
|
714
716
|
// Unset on stdio: that process IS the host, and a scheduler that
|
|
715
717
|
// respawns it per run pins ZIGGS_INSTANCE_ID instead.
|
|
@@ -830,10 +832,9 @@ export function registerZiggsTools(server, creds, cfg) {
|
|
|
830
832
|
registerStrictTool(server, 'ziggs_inbox_claim', {}, destructive('Claim the inbox for this worker'), async () => {
|
|
831
833
|
try {
|
|
832
834
|
const client = inboxFor(creds);
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
});
|
|
835
|
+
const inbox = await client.getInbox();
|
|
836
|
+
const deliveryCount = Array.isArray(inbox.deliveries) ? inbox.deliveries.length : 0;
|
|
837
|
+
return textResult({ claimed: true, deliveryCount });
|
|
837
838
|
}
|
|
838
839
|
catch (e) {
|
|
839
840
|
return toolError(e);
|
package/dist/workspaceRouting.js
CHANGED
|
@@ -229,7 +229,15 @@ export class WorkspaceRouter {
|
|
|
229
229
|
this.remember(synced.workspaces);
|
|
230
230
|
return result(synced);
|
|
231
231
|
}
|
|
232
|
-
if (name === '
|
|
232
|
+
if (name === 'ziggs_inbox_claim') {
|
|
233
|
+
const inbox = await this.client.inbox(0, false);
|
|
234
|
+
const workspaces = inbox.workspaces;
|
|
235
|
+
if (Array.isArray(workspaces))
|
|
236
|
+
this.remember(workspaces);
|
|
237
|
+
const deliveryCount = Array.isArray(inbox.deliveries) ? inbox.deliveries.length : 0;
|
|
238
|
+
return compactTextResult({ claimed: true, deliveryCount });
|
|
239
|
+
}
|
|
240
|
+
if (name === 'ziggs_inbox') {
|
|
233
241
|
const inbox = await this.client.inbox(Number(args.waitSeconds ?? 0), this.directory && name === 'ziggs_inbox');
|
|
234
242
|
const workspaces = inbox.workspaces;
|
|
235
243
|
if (Array.isArray(workspaces))
|
|
@@ -248,7 +256,7 @@ export class WorkspaceRouter {
|
|
|
248
256
|
return compactTextResult({
|
|
249
257
|
...news,
|
|
250
258
|
...pending,
|
|
251
|
-
...(
|
|
259
|
+
...(args.waitSeconds == null ? { rules: sessionRules('directory') } : {}),
|
|
252
260
|
...(note && typeof pending.notice === 'string' ? { notice: `${pending.notice} ${note}` } : {}),
|
|
253
261
|
session: { workspaces },
|
|
254
262
|
instruction: `deliveries.forYou is your work; deliveries.forYourPerson is for your person to see. ${ASK_YOUR_HUMAN}`,
|
|
@@ -282,7 +290,9 @@ export class WorkspaceRouter {
|
|
|
282
290
|
return result({ count: workspaces.length, orgs: workspaces });
|
|
283
291
|
}
|
|
284
292
|
catch (error) {
|
|
285
|
-
if (name === 'ziggs_notification_status' ||
|
|
293
|
+
if (name === 'ziggs_notification_status' ||
|
|
294
|
+
name === 'ziggs_inbox_changes' ||
|
|
295
|
+
name === 'ziggs_inbox_ack')
|
|
286
296
|
return toolError(error);
|
|
287
297
|
return refusal('CONNECTION_REQUEST_FAILED', error instanceof Error ? error.message : String(error));
|
|
288
298
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ziggs-ai/ziggs-mcp",
|
|
3
|
-
"version": "0.37.
|
|
3
|
+
"version": "0.37.25",
|
|
4
4
|
"description": "MCP server for Claude Code, Cursor, and other MCP hosts \u2014 act as your Ziggs delegate agent",
|
|
5
5
|
"homepage": "https://ziggsai.com/docs",
|
|
6
6
|
"bugs": {
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
53
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
54
|
-
"@ziggs-ai/api-client": "0.37.
|
|
54
|
+
"@ziggs-ai/api-client": "0.37.23",
|
|
55
55
|
"dotenv": "^16.6.1",
|
|
56
56
|
"zod": "^3.24.2",
|
|
57
57
|
"zod-to-json-schema": "^3.25.1"
|