@ziggs-ai/ziggs-mcp 0.37.16 → 0.37.18
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 +6 -0
- package/dist/directorySurface.js +3 -2
- package/dist/tools.js +24 -1
- package/dist/workspaceRouting.js +14 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 0.37.18
|
|
6
|
+
|
|
7
|
+
- Inspect notification health through a read-only assistant-connection status tool: explicit workspace, expiry, callback acceptance, retry timing and categorized failures, without callback URLs or signing secrets. Receipt is not proof of a host response. Preserve backend errors when observing through a connection.
|
|
8
|
+
|
|
9
|
+
- Read small inbox deltas with an observation cursor that renews on use, independent of work acknowledgements. Preserve the recovery cursor when the stream limit is reached. Reuse it to wait for new arrivals despite older unhandled mail; available through both HTTP connection modes and MCP.
|
|
10
|
+
|
|
5
11
|
## 0.37.16
|
|
6
12
|
|
|
7
13
|
- Clarify the shared hiring instructions: a mandate governs the work; agent-initiated hires need a covering grant or approval on the existing agreement.
|
package/dist/directorySurface.js
CHANGED
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
const directories = new WeakSet();
|
|
3
3
|
export const DIRECTORY_TOOLS = new Set(`
|
|
4
4
|
ziggs_auth_status ziggs_org_list ziggs_workspace_sync ziggs_context_snapshot
|
|
5
|
+
ziggs_notification_status
|
|
5
6
|
ziggs_agreement_list ziggs_agreement_get ziggs_chat_list ziggs_chat_open ziggs_chat_send
|
|
6
7
|
ziggs_agreement_buy ziggs_agreement_bid ziggs_agreement_broker ziggs_agreement_request
|
|
7
8
|
ziggs_agreement_handoff
|
|
8
9
|
ziggs_agreement_claim ziggs_agreement_subcontract ziggs_marketplace_view
|
|
9
10
|
ziggs_agreement_respond ziggs_agreement_revoke ziggs_agreement_counter ziggs_agreement_fulfill
|
|
10
|
-
ziggs_inbox_peek ziggs_inbox ziggs_inbox_claim ziggs_inbox_ack ziggs_inbox_park
|
|
11
|
+
ziggs_inbox_changes ziggs_inbox_peek ziggs_inbox ziggs_inbox_claim ziggs_inbox_ack ziggs_inbox_park
|
|
11
12
|
ziggs_grant_list ziggs_context_expand_reach ziggs_context_discover_grantable
|
|
12
13
|
ziggs_open ziggs_access_explain ziggs_context_read
|
|
13
14
|
ziggs_artifact_record ziggs_artifact_list ziggs_artifact_find ziggs_artifact_share
|
|
@@ -25,7 +26,7 @@ ziggs_introduction_list ziggs_introduction_revoke ziggs_context_revoke_grant zig
|
|
|
25
26
|
* in one workspace, so tools.ts registers it only when the key carries a
|
|
26
27
|
* connection. Tests subtract this set for such a key.
|
|
27
28
|
*/
|
|
28
|
-
export const CONNECTION_ONLY_DIRECTORY_TOOLS = new Set(['ziggs_workspace_sync']);
|
|
29
|
+
export const CONNECTION_ONLY_DIRECTORY_TOOLS = new Set(['ziggs_workspace_sync', 'ziggs_notification_status']);
|
|
29
30
|
/** Public discovery and actions accepting new counterparties or audiences. */
|
|
30
31
|
const OPEN_WORLD = new Set(`
|
|
31
32
|
ziggs_agent_search ziggs_agent_get ziggs_marketplace_view
|
package/dist/tools.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isDirectorySurface } from './directorySurface.js';
|
|
2
2
|
import { randomUUID } from 'node:crypto';
|
|
3
3
|
import { z } from 'zod';
|
|
4
|
-
import { presentResourceActions, getAgreement, getMyAgreements, listMyChats, respondToAgreement, revokeAgreement, counterAgreement, fulfillAgreement, sendChatMessage, ConnectionsClient, ContextReadClient, GrantsClient, InboxClient, createTask, updateTaskState, acknowledgeTaskControl, replaceTaskPlan, updateTaskPlanSteps, listTasks, getTask, getBackendUrl, fetchMyOrgs, fetchSessionAccess, isMcpOAuthDelegateSession, GRANTS_CAPABILITIES, 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';
|
|
4
|
+
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_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
5
|
import { decodeOperatorKeyClaims } from './operatorKey.js';
|
|
6
6
|
import { registerTrustTools } from './trustTools.js';
|
|
7
7
|
import { registerPaymentTools } from './paymentTools.js';
|
|
@@ -613,6 +613,29 @@ export function registerZiggsTools(server, creds, cfg) {
|
|
|
613
613
|
return toolError(e);
|
|
614
614
|
}
|
|
615
615
|
});
|
|
616
|
+
if (decodeOperatorKeyClaims(creds.operatorKey)?.connectionClientId) {
|
|
617
|
+
registerStrictTool(server, 'ziggs_notification_status', {
|
|
618
|
+
orgId: z.string().min(1).max(200).describe('Workspace ID.'),
|
|
619
|
+
}, readOnly('Notification status'), async ({ orgId }) => {
|
|
620
|
+
try {
|
|
621
|
+
return textResult(await new AssistantConnectionClient(creds).eventStatus(orgId));
|
|
622
|
+
}
|
|
623
|
+
catch (error) {
|
|
624
|
+
return toolError(error);
|
|
625
|
+
}
|
|
626
|
+
});
|
|
627
|
+
}
|
|
628
|
+
registerStrictTool(server, 'ziggs_inbox_changes', {
|
|
629
|
+
cursor: z.string().optional().describe('Observation cursor; reads renew it for 24h. Omit or restart on 410 to scan retained history. Never ack it.'),
|
|
630
|
+
waitSeconds: z.number().min(0).optional().describe('Wait up to 110 seconds for an unobserved delivery; use 55 during an active session.'),
|
|
631
|
+
}, readOnly('Read new inbox arrivals'), async ({ cursor, waitSeconds }) => {
|
|
632
|
+
try {
|
|
633
|
+
return textResult(await inboxFor(creds).getChanges({ cursor, waitSeconds }));
|
|
634
|
+
}
|
|
635
|
+
catch (error) {
|
|
636
|
+
return toolError(error);
|
|
637
|
+
}
|
|
638
|
+
});
|
|
616
639
|
registerStrictTool(server, 'ziggs_inbox_peek', {
|
|
617
640
|
waitSeconds: z
|
|
618
641
|
.number()
|
package/dist/workspaceRouting.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { isDirectorySurface } from './directorySurface.js';
|
|
2
|
+
import { toolError } from './toolError.js';
|
|
2
3
|
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
3
4
|
import { AssistantConnectionClient, withAssistantRequest, decodeOperatorKeyClaims, parseRef, } from '@ziggs-ai/api-client';
|
|
4
5
|
import { formatInboxToolResult } from './inboxToolResult.js';
|
|
@@ -14,6 +15,8 @@ const CONNECTION = new Set([
|
|
|
14
15
|
'ziggs_org_list',
|
|
15
16
|
'ziggs_inbox',
|
|
16
17
|
'ziggs_inbox_peek',
|
|
18
|
+
'ziggs_inbox_changes',
|
|
19
|
+
'ziggs_notification_status',
|
|
17
20
|
'ziggs_inbox_ack',
|
|
18
21
|
'ziggs_inbox_park',
|
|
19
22
|
'ziggs_inbox_claim',
|
|
@@ -249,6 +252,15 @@ export class WorkspaceRouter {
|
|
|
249
252
|
instruction: `deliveries.forYou is your work; deliveries.forYourPerson is for your person to see. ${ASK_YOUR_HUMAN}`,
|
|
250
253
|
}, { agentIds: self.agentIds ?? [] });
|
|
251
254
|
}
|
|
255
|
+
if (name === 'ziggs_notification_status') {
|
|
256
|
+
return result(await this.client.eventStatus(args.orgId));
|
|
257
|
+
}
|
|
258
|
+
if (name === 'ziggs_inbox_changes') {
|
|
259
|
+
return result(await this.client.getChanges({
|
|
260
|
+
cursor: args.cursor,
|
|
261
|
+
waitSeconds: args.waitSeconds,
|
|
262
|
+
}));
|
|
263
|
+
}
|
|
252
264
|
if (name === 'ziggs_inbox_peek') {
|
|
253
265
|
return result(await this.client.request(`inbox/peek?wait=${Number(args.waitSeconds ?? 0)}`));
|
|
254
266
|
}
|
|
@@ -258,6 +270,8 @@ export class WorkspaceRouter {
|
|
|
258
270
|
return result({ count: workspaces.length, orgs: workspaces });
|
|
259
271
|
}
|
|
260
272
|
catch (error) {
|
|
273
|
+
if (name === 'ziggs_notification_status' || name === 'ziggs_inbox_changes')
|
|
274
|
+
return toolError(error);
|
|
261
275
|
return refusal('CONNECTION_REQUEST_FAILED', error instanceof Error ? error.message : String(error));
|
|
262
276
|
}
|
|
263
277
|
}
|
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.18",
|
|
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.18",
|
|
55
55
|
"dotenv": "^16.6.1",
|
|
56
56
|
"zod": "^3.24.2",
|
|
57
57
|
"zod-to-json-schema": "^3.25.1"
|