@1claw/mcp 0.44.3 → 0.46.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.
Files changed (37) hide show
  1. package/README.md +15 -5
  2. package/dist/client.d.ts +30 -0
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +42 -0
  5. package/dist/client.js.map +1 -1
  6. package/dist/index.js +14 -0
  7. package/dist/index.js.map +1 -1
  8. package/dist/tools/create_channel.d.ts +16 -0
  9. package/dist/tools/create_channel.d.ts.map +1 -1
  10. package/dist/tools/create_channel.js +11 -2
  11. package/dist/tools/create_channel.js.map +1 -1
  12. package/dist/tools/delegation.d.ts +77 -0
  13. package/dist/tools/delegation.d.ts.map +1 -0
  14. package/dist/tools/delegation.js +181 -0
  15. package/dist/tools/delegation.js.map +1 -0
  16. package/dist/tools/oauth_revoke_consent.d.ts +21 -0
  17. package/dist/tools/oauth_revoke_consent.d.ts.map +1 -0
  18. package/dist/tools/oauth_revoke_consent.js +34 -0
  19. package/dist/tools/oauth_revoke_consent.js.map +1 -0
  20. package/dist/tools/oauth_revoke_token.d.ts +25 -0
  21. package/dist/tools/oauth_revoke_token.d.ts.map +1 -0
  22. package/dist/tools/oauth_revoke_token.js +39 -0
  23. package/dist/tools/oauth_revoke_token.js.map +1 -0
  24. package/dist/tools/org_directory.d.ts +2 -2
  25. package/dist/tools/platform_app_stats.d.ts +21 -0
  26. package/dist/tools/platform_app_stats.d.ts.map +1 -0
  27. package/dist/tools/platform_app_stats.js +47 -0
  28. package/dist/tools/platform_app_stats.js.map +1 -0
  29. package/dist/tools/platform_marketplace.d.ts +29 -0
  30. package/dist/tools/platform_marketplace.d.ts.map +1 -0
  31. package/dist/tools/platform_marketplace.js +49 -0
  32. package/dist/tools/platform_marketplace.js.map +1 -0
  33. package/dist/tools/platform_rotate_webhook_secret.d.ts +21 -0
  34. package/dist/tools/platform_rotate_webhook_secret.d.ts.map +1 -0
  35. package/dist/tools/platform_rotate_webhook_secret.js +44 -0
  36. package/dist/tools/platform_rotate_webhook_secret.js.map +1 -0
  37. package/package.json +1 -1
@@ -0,0 +1,77 @@
1
+ import { z } from "zod";
2
+ import { OneClawClient } from "../client.js";
3
+ export declare function listDelegationsTool(client: OneClawClient): {
4
+ name: "list_delegations";
5
+ description: string;
6
+ parameters: z.ZodObject<{
7
+ agent_id: z.ZodOptional<z.ZodString>;
8
+ }, "strip", z.ZodTypeAny, {
9
+ agent_id?: string | undefined;
10
+ }, {
11
+ agent_id?: string | undefined;
12
+ }>;
13
+ execute: (args: {
14
+ agent_id?: string;
15
+ }, { log }: {
16
+ log: {
17
+ info: (msg: string) => void;
18
+ };
19
+ }) => Promise<string>;
20
+ };
21
+ export declare function createDelegationTool(client: OneClawClient): {
22
+ name: "create_delegation";
23
+ description: string;
24
+ parameters: z.ZodObject<{
25
+ agent_id: z.ZodString;
26
+ delegate_id: z.ZodString;
27
+ allowed_tools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
28
+ blocked_tools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
29
+ max_daily_delegations: z.ZodOptional<z.ZodNumber>;
30
+ max_depth: z.ZodOptional<z.ZodNumber>;
31
+ delegation_mode: z.ZodOptional<z.ZodEnum<["caller", "target", "both"]>>;
32
+ expires_at: z.ZodOptional<z.ZodString>;
33
+ }, "strip", z.ZodTypeAny, {
34
+ agent_id: string;
35
+ delegate_id: string;
36
+ expires_at?: string | undefined;
37
+ allowed_tools?: string[] | undefined;
38
+ blocked_tools?: string[] | undefined;
39
+ max_daily_delegations?: number | undefined;
40
+ max_depth?: number | undefined;
41
+ delegation_mode?: "caller" | "target" | "both" | undefined;
42
+ }, {
43
+ agent_id: string;
44
+ delegate_id: string;
45
+ expires_at?: string | undefined;
46
+ allowed_tools?: string[] | undefined;
47
+ blocked_tools?: string[] | undefined;
48
+ max_daily_delegations?: number | undefined;
49
+ max_depth?: number | undefined;
50
+ delegation_mode?: "caller" | "target" | "both" | undefined;
51
+ }>;
52
+ execute: (args: {
53
+ agent_id: string;
54
+ delegate_id: string;
55
+ allowed_tools?: string[];
56
+ blocked_tools?: string[];
57
+ max_daily_delegations?: number;
58
+ max_depth?: number;
59
+ delegation_mode?: "caller" | "target" | "both";
60
+ expires_at?: string;
61
+ }, { log }: {
62
+ log: {
63
+ info: (msg: string) => void;
64
+ };
65
+ }) => Promise<string>;
66
+ };
67
+ export declare function getEffectiveDelegationsTool(client: OneClawClient): {
68
+ name: "get_effective_delegations";
69
+ description: string;
70
+ parameters: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
71
+ execute: (_args: Record<string, never>, { log }: {
72
+ log: {
73
+ info: (msg: string) => void;
74
+ };
75
+ }) => Promise<string>;
76
+ };
77
+ //# sourceMappingURL=delegation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation.d.ts","sourceRoot":"","sources":["../../src/tools/delegation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAmB,MAAM,cAAc,CAAC;AAE9D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa;;;;;;;;;;oBAc7C;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,WAClB;QAAE,GAAG,EAAE;YAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;SAAE,CAAA;KAAE;EA+CtD;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAkC9C;QACJ,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QACzB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QACzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,eAAe,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;QAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,WACQ;QAAE,GAAG,EAAE;YAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;SAAE,CAAA;KAAE;EAqCtD;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,aAAa;;;;qBAOpD,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,WACnB;QAAE,GAAG,EAAE;YAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;SAAE,CAAA;KAAE;EAgDtD"}
@@ -0,0 +1,181 @@
1
+ import { z } from "zod";
2
+ import { UserError } from "fastmcp";
3
+ import { OneClawApiError } from "../client.js";
4
+ export function listDelegationsTool(client) {
5
+ return {
6
+ name: "list_delegations",
7
+ description: "List delegations configured for an agent (as delegator). Shows which agents it can delegate to and with what constraints.",
8
+ parameters: z.object({
9
+ agent_id: z
10
+ .string()
11
+ .optional()
12
+ .describe("Agent ID to list delegations for. Omit to use the current agent."),
13
+ }),
14
+ execute: async (args, { log }) => {
15
+ try {
16
+ const agentId = args.agent_id || client.agentId;
17
+ if (!agentId) {
18
+ throw new UserError("No agent_id provided and no agent ID configured on the client.");
19
+ }
20
+ const result = await client.listDelegations(agentId);
21
+ const delegations = result.delegations ?? [];
22
+ log.info(`listed ${delegations.length} delegation(s)`);
23
+ if (delegations.length === 0)
24
+ return "No delegations found.";
25
+ return delegations
26
+ .map((d) => {
27
+ const parts = [
28
+ `ID: ${d.id}`,
29
+ `Delegate: ${d.delegate_name || d.delegate_id}`,
30
+ `Mode: ${d.delegation_mode}`,
31
+ `Active: ${d.is_active}`,
32
+ ];
33
+ if (Array.isArray(d.allowed_tools) && d.allowed_tools.length > 0)
34
+ parts.push(`Allowed tools: ${d.allowed_tools.join(", ")}`);
35
+ if (Array.isArray(d.blocked_tools) && d.blocked_tools.length > 0)
36
+ parts.push(`Blocked tools: ${d.blocked_tools.join(", ")}`);
37
+ if (d.max_daily_delegations != null)
38
+ parts.push(`Daily limit: ${d.max_daily_delegations}`);
39
+ if (d.delegations_today != null)
40
+ parts.push(`Used today: ${d.delegations_today}`);
41
+ if (d.max_depth != null)
42
+ parts.push(`Max depth: ${d.max_depth}`);
43
+ if (d.expires_at)
44
+ parts.push(`Expires: ${d.expires_at}`);
45
+ parts.push(`Created: ${d.created_at}`);
46
+ return parts.join("\n");
47
+ })
48
+ .join("\n---\n");
49
+ }
50
+ catch (err) {
51
+ if (err instanceof OneClawApiError) {
52
+ if (err.status === 403)
53
+ throw new UserError(`Access denied: ${err.detail}`);
54
+ if (err.status === 404)
55
+ throw new UserError("Agent not found.");
56
+ }
57
+ throw err;
58
+ }
59
+ },
60
+ };
61
+ }
62
+ export function createDelegationTool(client) {
63
+ return {
64
+ name: "create_delegation",
65
+ description: "Create a delegation granting an agent permission to delegate tasks to another agent. Human-scoped — agents cannot create their own delegations.",
66
+ parameters: z.object({
67
+ agent_id: z.string().min(1).describe("Delegator agent ID"),
68
+ delegate_id: z.string().min(1).describe("Delegate (target) agent ID"),
69
+ allowed_tools: z
70
+ .array(z.string())
71
+ .optional()
72
+ .describe("List of tool names the delegate may use (empty = all)"),
73
+ blocked_tools: z
74
+ .array(z.string())
75
+ .optional()
76
+ .describe("List of tool names the delegate may NOT use"),
77
+ max_daily_delegations: z
78
+ .number()
79
+ .optional()
80
+ .describe("Max delegation calls per UTC day"),
81
+ max_depth: z
82
+ .number()
83
+ .optional()
84
+ .describe("Max delegation chain depth (default: 3)"),
85
+ delegation_mode: z
86
+ .enum(["caller", "target", "both"])
87
+ .optional()
88
+ .describe("Execution mode: caller, target, or both"),
89
+ expires_at: z
90
+ .string()
91
+ .optional()
92
+ .describe("ISO 8601 expiration timestamp"),
93
+ }),
94
+ execute: async (args, { log }) => {
95
+ try {
96
+ const result = await client.createDelegation(args.agent_id, {
97
+ delegate_id: args.delegate_id,
98
+ allowed_tools: args.allowed_tools,
99
+ blocked_tools: args.blocked_tools,
100
+ max_daily_delegations: args.max_daily_delegations,
101
+ max_depth: args.max_depth,
102
+ delegation_mode: args.delegation_mode,
103
+ expires_at: args.expires_at,
104
+ });
105
+ const d = result;
106
+ log.info(`created delegation ${d.id}`);
107
+ const parts = [
108
+ `Delegation created: ${d.id}`,
109
+ `Delegator: ${d.delegator_name || d.delegator_id}`,
110
+ `Delegate: ${d.delegate_name || d.delegate_id}`,
111
+ `Mode: ${d.delegation_mode}`,
112
+ `Max depth: ${d.max_depth}`,
113
+ ];
114
+ if (d.max_daily_delegations != null)
115
+ parts.push(`Daily limit: ${d.max_daily_delegations}`);
116
+ if (d.expires_at)
117
+ parts.push(`Expires: ${d.expires_at}`);
118
+ return parts.join("\n");
119
+ }
120
+ catch (err) {
121
+ if (err instanceof OneClawApiError) {
122
+ if (err.status === 403)
123
+ throw new UserError(`Access denied: ${err.detail}`);
124
+ if (err.status === 409)
125
+ throw new UserError(`Delegation already exists: ${err.detail}`);
126
+ }
127
+ throw err;
128
+ }
129
+ },
130
+ };
131
+ }
132
+ export function getEffectiveDelegationsTool(client) {
133
+ return {
134
+ name: "get_effective_delegations",
135
+ description: "Get effective delegations for the current agent — shows which agents it can delegate to, with daily usage and limits. Agent-scoped, auto-discovers agent ID.",
136
+ parameters: z.object({}),
137
+ execute: async (_args, { log }) => {
138
+ try {
139
+ const agentId = client.agentId;
140
+ if (!agentId) {
141
+ throw new UserError("No agent ID configured. Set ONECLAW_AGENT_ID or use agent key auth.");
142
+ }
143
+ const result = await client.getEffectiveDelegations(agentId);
144
+ const delegations = result.delegations ?? [];
145
+ log.info(`fetched ${delegations.length} effective delegation(s)`);
146
+ if (delegations.length === 0)
147
+ return "No delegations configured — you are not authorized to delegate to any agents.";
148
+ return delegations
149
+ .map((d) => {
150
+ const parts = [
151
+ `Delegate: ${d.delegate_name || d.delegate_id}`,
152
+ `Mode: ${d.delegation_mode}`,
153
+ ];
154
+ if (Array.isArray(d.allowed_tools) && d.allowed_tools.length > 0)
155
+ parts.push(`Allowed tools: ${d.allowed_tools.join(", ")}`);
156
+ if (Array.isArray(d.blocked_tools) && d.blocked_tools.length > 0)
157
+ parts.push(`Blocked tools: ${d.blocked_tools.join(", ")}`);
158
+ if (d.max_daily_delegations != null) {
159
+ const remaining = d.max_daily_delegations -
160
+ (d.delegations_today || 0);
161
+ parts.push(`Daily: ${d.delegations_today || 0}/${d.max_daily_delegations} (${Math.max(0, remaining)} remaining)`);
162
+ }
163
+ if (d.max_depth != null)
164
+ parts.push(`Max depth: ${d.max_depth}`);
165
+ if (d.expires_at)
166
+ parts.push(`Expires: ${d.expires_at}`);
167
+ return parts.join("\n");
168
+ })
169
+ .join("\n---\n");
170
+ }
171
+ catch (err) {
172
+ if (err instanceof OneClawApiError) {
173
+ if (err.status === 403)
174
+ throw new UserError(`Access denied: ${err.detail}`);
175
+ }
176
+ throw err;
177
+ }
178
+ },
179
+ };
180
+ }
181
+ //# sourceMappingURL=delegation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation.js","sourceRoot":"","sources":["../../src/tools/delegation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { z } from "zod";
2
+ import { OneClawClient } from "../client.js";
3
+ export declare function oauthRevokeConsentTool(client: OneClawClient): {
4
+ name: "oauth_revoke_consent";
5
+ description: string;
6
+ parameters: z.ZodObject<{
7
+ app_id: z.ZodString;
8
+ }, "strip", z.ZodTypeAny, {
9
+ app_id: string;
10
+ }, {
11
+ app_id: string;
12
+ }>;
13
+ execute: (args: {
14
+ app_id: string;
15
+ }, { log }: {
16
+ log: {
17
+ info: (msg: string) => void;
18
+ };
19
+ }) => Promise<string>;
20
+ };
21
+ //# sourceMappingURL=oauth_revoke_consent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth_revoke_consent.d.ts","sourceRoot":"","sources":["../../src/tools/oauth_revoke_consent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAmB,MAAM,cAAc,CAAC;AAE9D,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,aAAa;;;;;;;;;;oBAYhD;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,WACf;QAAE,GAAG,EAAE;YAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;SAAE,CAAA;KAAE;EAgBtD"}
@@ -0,0 +1,34 @@
1
+ import { z } from "zod";
2
+ import { UserError } from "fastmcp";
3
+ import { OneClawApiError } from "../client.js";
4
+ export function oauthRevokeConsentTool(client) {
5
+ return {
6
+ name: "oauth_revoke_consent",
7
+ description: "Revoke OAuth consent previously granted to a platform app. This removes the app's access and invalidates any tokens issued through the consent.",
8
+ parameters: z.object({
9
+ app_id: z
10
+ .string()
11
+ .uuid()
12
+ .describe("The platform app ID whose OAuth consent should be revoked"),
13
+ }),
14
+ execute: async (args, { log }) => {
15
+ try {
16
+ await client.oauthRevokeConsent(args.app_id);
17
+ log.info(`OAuth consent revoked for app: ${args.app_id}`);
18
+ return `OAuth consent revoked for app ${args.app_id}. The app can no longer access your account.`;
19
+ }
20
+ catch (err) {
21
+ if (err instanceof OneClawApiError) {
22
+ if (err.status === 400)
23
+ throw new UserError(err.detail);
24
+ if (err.status === 403)
25
+ throw new UserError(`Access denied: ${err.detail}`);
26
+ if (err.status === 404)
27
+ throw new UserError(`No consent found for app ${args.app_id}`);
28
+ }
29
+ throw err;
30
+ }
31
+ },
32
+ };
33
+ }
34
+ //# sourceMappingURL=oauth_revoke_consent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth_revoke_consent.js","sourceRoot":"","sources":["../../src/tools/oauth_revoke_consent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAiB,eAAe,EAAE,MAAM,cAAc,CAAC;AAE9D,MAAM,UAAU,sBAAsB,CAAC,MAAqB;IAC1D,OAAO;QACL,IAAI,EAAE,sBAA+B;QACrC,WAAW,EACT,iJAAiJ;QACnJ,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;YACnB,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,IAAI,EAAE;iBACN,QAAQ,CAAC,2DAA2D,CAAC;SACzE,CAAC;QACF,OAAO,EAAE,KAAK,EACZ,IAAwB,EACxB,EAAE,GAAG,EAA4C,EACjD,EAAE;YACF,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC7C,GAAG,CAAC,IAAI,CAAC,kCAAkC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC1D,OAAO,iCAAiC,IAAI,CAAC,MAAM,8CAA8C,CAAC;YACpG,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;oBACnC,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;wBAAE,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACxD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;wBAAE,MAAM,IAAI,SAAS,CAAC,kBAAkB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC5E,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;wBAAE,MAAM,IAAI,SAAS,CAAC,4BAA4B,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBACzF,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { z } from "zod";
2
+ import { OneClawClient } from "../client.js";
3
+ export declare function oauthRevokeTokenTool(client: OneClawClient): {
4
+ name: "oauth_revoke_token";
5
+ description: string;
6
+ parameters: z.ZodObject<{
7
+ token: z.ZodString;
8
+ token_type_hint: z.ZodOptional<z.ZodEnum<["access_token", "refresh_token"]>>;
9
+ }, "strip", z.ZodTypeAny, {
10
+ token: string;
11
+ token_type_hint?: "access_token" | "refresh_token" | undefined;
12
+ }, {
13
+ token: string;
14
+ token_type_hint?: "access_token" | "refresh_token" | undefined;
15
+ }>;
16
+ execute: (args: {
17
+ token: string;
18
+ token_type_hint?: string;
19
+ }, { log }: {
20
+ log: {
21
+ info: (msg: string) => void;
22
+ };
23
+ }) => Promise<string>;
24
+ };
25
+ //# sourceMappingURL=oauth_revoke_token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth_revoke_token.d.ts","sourceRoot":"","sources":["../../src/tools/oauth_revoke_token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAmB,MAAM,cAAc,CAAC;AAE9D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa;;;;;;;;;;;;;oBAgB9C;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,WACxC;QAAE,GAAG,EAAE;YAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;SAAE,CAAA;KAAE;EAkBtD"}
@@ -0,0 +1,39 @@
1
+ import { z } from "zod";
2
+ import { UserError } from "fastmcp";
3
+ import { OneClawApiError } from "../client.js";
4
+ export function oauthRevokeTokenTool(client) {
5
+ return {
6
+ name: "oauth_revoke_token",
7
+ description: "Revoke an OAuth access token or refresh token issued by 1Claw's OAuth authorization server. Follows RFC 7009 token revocation.",
8
+ parameters: z.object({
9
+ token: z
10
+ .string()
11
+ .min(1)
12
+ .describe("The access token or refresh token to revoke"),
13
+ token_type_hint: z
14
+ .enum(["access_token", "refresh_token"])
15
+ .optional()
16
+ .describe("Hint about the token type being revoked (access_token or refresh_token)"),
17
+ }),
18
+ execute: async (args, { log }) => {
19
+ try {
20
+ await client.oauthRevokeToken({
21
+ token: args.token,
22
+ token_type_hint: args.token_type_hint,
23
+ });
24
+ log.info("OAuth token revoked");
25
+ return "OAuth token revoked successfully.";
26
+ }
27
+ catch (err) {
28
+ if (err instanceof OneClawApiError) {
29
+ if (err.status === 400)
30
+ throw new UserError(err.detail);
31
+ if (err.status === 401)
32
+ throw new UserError(`Unauthorized: ${err.detail}`);
33
+ }
34
+ throw err;
35
+ }
36
+ },
37
+ };
38
+ }
39
+ //# sourceMappingURL=oauth_revoke_token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth_revoke_token.js","sourceRoot":"","sources":["../../src/tools/oauth_revoke_token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAiB,eAAe,EAAE,MAAM,cAAc,CAAC;AAE9D,MAAM,UAAU,oBAAoB,CAAC,MAAqB;IACxD,OAAO;QACL,IAAI,EAAE,oBAA6B;QACnC,WAAW,EACT,gIAAgI;QAClI,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;YACnB,KAAK,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,CAAC,6CAA6C,CAAC;YAC1D,eAAe,EAAE,CAAC;iBACf,IAAI,CAAC,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;iBACvC,QAAQ,EAAE;iBACV,QAAQ,CAAC,yEAAyE,CAAC;SACvF,CAAC;QACF,OAAO,EAAE,KAAK,EACZ,IAAiD,EACjD,EAAE,GAAG,EAA4C,EACjD,EAAE;YACF,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,gBAAgB,CAAC;oBAC5B,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,eAAe,EAAE,IAAI,CAAC,eAAe;iBACtC,CAAC,CAAC;gBACH,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBAChC,OAAO,mCAAmC,CAAC;YAC7C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;oBACnC,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;wBAAE,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACxD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;wBAAE,MAAM,IAAI,SAAS,CAAC,iBAAiB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC7E,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -9,13 +9,13 @@ export declare function orgDirectoryTool(client: OneClawClient): {
9
9
  page: z.ZodOptional<z.ZodNumber>;
10
10
  page_size: z.ZodOptional<z.ZodNumber>;
11
11
  }, "strip", z.ZodTypeAny, {
12
- q?: string | undefined;
13
12
  tags?: string | undefined;
13
+ q?: string | undefined;
14
14
  page?: number | undefined;
15
15
  page_size?: number | undefined;
16
16
  }, {
17
- q?: string | undefined;
18
17
  tags?: string | undefined;
18
+ q?: string | undefined;
19
19
  page?: number | undefined;
20
20
  page_size?: number | undefined;
21
21
  }>;
@@ -0,0 +1,21 @@
1
+ import { z } from "zod";
2
+ import { OneClawClient } from "../client.js";
3
+ export declare function platformAppStatsTool(client: OneClawClient): {
4
+ name: "platform_app_stats";
5
+ description: string;
6
+ parameters: z.ZodObject<{
7
+ app_id: z.ZodString;
8
+ }, "strip", z.ZodTypeAny, {
9
+ app_id: string;
10
+ }, {
11
+ app_id: string;
12
+ }>;
13
+ execute: (args: {
14
+ app_id: string;
15
+ }, { log }: {
16
+ log: {
17
+ info: (msg: string) => void;
18
+ };
19
+ }) => Promise<string>;
20
+ };
21
+ //# sourceMappingURL=platform_app_stats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform_app_stats.d.ts","sourceRoot":"","sources":["../../src/tools/platform_app_stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAmB,MAAM,cAAc,CAAC;AAE9D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa;;;;;;;;;;oBAY9C;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,WACf;QAAE,GAAG,EAAE;YAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;SAAE,CAAA;KAAE;EAwCtD"}
@@ -0,0 +1,47 @@
1
+ import { z } from "zod";
2
+ import { UserError } from "fastmcp";
3
+ import { OneClawApiError } from "../client.js";
4
+ export function platformAppStatsTool(client) {
5
+ return {
6
+ name: "platform_app_stats",
7
+ description: "Get usage statistics for a platform app — connected users, bootstrap count, API request volume, and more.",
8
+ parameters: z.object({
9
+ app_id: z
10
+ .string()
11
+ .uuid()
12
+ .describe("The platform app ID to get statistics for"),
13
+ }),
14
+ execute: async (args, { log }) => {
15
+ try {
16
+ const stats = (await client.platformAppStats(args.app_id));
17
+ log.info(`fetched stats for platform app: ${args.app_id}`);
18
+ const lines = [`Statistics for platform app ${args.app_id}:`];
19
+ if (stats.connected_users != null)
20
+ lines.push(` Connected users: ${stats.connected_users}`);
21
+ if (stats.active_users != null)
22
+ lines.push(` Active users: ${stats.active_users}`);
23
+ if (stats.total_bootstraps != null)
24
+ lines.push(` Total bootstraps: ${stats.total_bootstraps}`);
25
+ if (stats.total_api_requests != null)
26
+ lines.push(` Total API requests: ${stats.total_api_requests}`);
27
+ if (stats.total_grants != null)
28
+ lines.push(` Total grants: ${stats.total_grants}`);
29
+ const extra = Object.entries(stats).filter(([k]) => !["app_id", "connected_users", "active_users", "total_bootstraps", "total_api_requests", "total_grants"].includes(k));
30
+ for (const [k, v] of extra) {
31
+ lines.push(` ${k}: ${JSON.stringify(v)}`);
32
+ }
33
+ return lines.join("\n");
34
+ }
35
+ catch (err) {
36
+ if (err instanceof OneClawApiError) {
37
+ if (err.status === 403)
38
+ throw new UserError(`Access denied: ${err.detail}`);
39
+ if (err.status === 404)
40
+ throw new UserError(`Platform app not found: ${err.detail}`);
41
+ }
42
+ throw err;
43
+ }
44
+ },
45
+ };
46
+ }
47
+ //# sourceMappingURL=platform_app_stats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform_app_stats.js","sourceRoot":"","sources":["../../src/tools/platform_app_stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAiB,eAAe,EAAE,MAAM,cAAc,CAAC;AAE9D,MAAM,UAAU,oBAAoB,CAAC,MAAqB;IACxD,OAAO;QACL,IAAI,EAAE,oBAA6B;QACnC,WAAW,EACT,2GAA2G;QAC7G,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;YACnB,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,IAAI,EAAE;iBACN,QAAQ,CAAC,2CAA2C,CAAC;SACzD,CAAC;QACF,OAAO,EAAE,KAAK,EACZ,IAAwB,EACxB,EAAE,GAAG,EAA4C,EACjD,EAAE;YACF,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAQxD,CAAC;gBAEF,GAAG,CAAC,IAAI,CAAC,mCAAmC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBAE3D,MAAM,KAAK,GAAG,CAAC,+BAA+B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC9D,IAAI,KAAK,CAAC,eAAe,IAAI,IAAI;oBAAE,KAAK,CAAC,IAAI,CAAC,sBAAsB,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;gBAC7F,IAAI,KAAK,CAAC,YAAY,IAAI,IAAI;oBAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;gBACpF,IAAI,KAAK,CAAC,gBAAgB,IAAI,IAAI;oBAAE,KAAK,CAAC,IAAI,CAAC,uBAAuB,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC;gBAChG,IAAI,KAAK,CAAC,kBAAkB,IAAI,IAAI;oBAAE,KAAK,CAAC,IAAI,CAAC,yBAAyB,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC;gBACtG,IAAI,KAAK,CAAC,YAAY,IAAI,IAAI;oBAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;gBAEpF,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CACxC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CACN,CAAC,CAAC,QAAQ,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CACvH,CAAC;gBACF,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC;oBAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC7C,CAAC;gBAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;oBACnC,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;wBAAE,MAAM,IAAI,SAAS,CAAC,kBAAkB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC5E,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;wBAAE,MAAM,IAAI,SAAS,CAAC,2BAA2B,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBACvF,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { z } from "zod";
2
+ import type { OneClawClient } from "../client.js";
3
+ export declare function platformMarketplaceTool(client: OneClawClient): {
4
+ name: "platform_marketplace";
5
+ description: string;
6
+ parameters: z.ZodObject<{
7
+ query: z.ZodOptional<z.ZodString>;
8
+ category: z.ZodOptional<z.ZodString>;
9
+ tags: z.ZodOptional<z.ZodString>;
10
+ }, "strip", z.ZodTypeAny, {
11
+ category?: string | undefined;
12
+ tags?: string | undefined;
13
+ query?: string | undefined;
14
+ }, {
15
+ category?: string | undefined;
16
+ tags?: string | undefined;
17
+ query?: string | undefined;
18
+ }>;
19
+ execute: (args: {
20
+ query?: string;
21
+ category?: string;
22
+ tags?: string;
23
+ }, { log }: {
24
+ log: {
25
+ info: (msg: string) => void;
26
+ };
27
+ }) => Promise<string>;
28
+ };
29
+ //# sourceMappingURL=platform_marketplace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform_marketplace.d.ts","sourceRoot":"","sources":["../../src/tools/platform_marketplace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,aAAa;;;;;;;;;;;;;;;;oBAoBjD;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,WACjD;QAAE,GAAG,EAAE;YAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;SAAE,CAAA;KAAE;EAwCtD"}
@@ -0,0 +1,49 @@
1
+ import { z } from "zod";
2
+ export function platformMarketplaceTool(client) {
3
+ return {
4
+ name: "platform_marketplace",
5
+ description: "List apps on the public 1Claw platform marketplace. Browse available integrations by category, tags, or search query. No authentication required.",
6
+ parameters: z.object({
7
+ query: z
8
+ .string()
9
+ .optional()
10
+ .describe("Search query for app name or description"),
11
+ category: z
12
+ .string()
13
+ .optional()
14
+ .describe("Filter by category (e.g. 'defi', 'security', 'ai')"),
15
+ tags: z
16
+ .string()
17
+ .optional()
18
+ .describe("Comma-separated tags to filter by"),
19
+ }),
20
+ execute: async (args, { log }) => {
21
+ const result = (await client.platformMarketplace({
22
+ q: args.query,
23
+ category: args.category,
24
+ tags: args.tags,
25
+ }));
26
+ const apps = result.apps ?? [];
27
+ log.info(`marketplace returned ${apps.length} app(s)`);
28
+ if (apps.length === 0) {
29
+ return "No apps found on the marketplace matching your criteria.";
30
+ }
31
+ const lines = apps.map((a) => {
32
+ const parts = [
33
+ `- ${a.name} (slug: ${a.slug}, id: ${a.id})`,
34
+ ];
35
+ if (a.description)
36
+ parts.push(` ${a.description.slice(0, 200)}`);
37
+ if (a.category)
38
+ parts.push(` Category: ${a.category}`);
39
+ if (a.listing_tags?.length)
40
+ parts.push(` Tags: ${a.listing_tags.join(", ")}`);
41
+ if (a.pricing_summary)
42
+ parts.push(` Pricing: ${a.pricing_summary}`);
43
+ return parts.join("\n");
44
+ });
45
+ return `Found ${result.total ?? apps.length} marketplace app(s):\n${lines.join("\n")}`;
46
+ },
47
+ };
48
+ }
49
+ //# sourceMappingURL=platform_marketplace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform_marketplace.js","sourceRoot":"","sources":["../../src/tools/platform_marketplace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,uBAAuB,CAAC,MAAqB;IAC3D,OAAO;QACL,IAAI,EAAE,sBAA+B;QACrC,WAAW,EACT,mJAAmJ;QACrJ,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;YACnB,KAAK,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,0CAA0C,CAAC;YACvD,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,oDAAoD,CAAC;YACjE,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,mCAAmC,CAAC;SACjD,CAAC;QACF,OAAO,EAAE,KAAK,EACZ,IAA0D,EAC1D,EAAE,GAAG,EAA4C,EACjD,EAAE;YACF,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC;gBAC/C,CAAC,EAAE,IAAI,CAAC,KAAK;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC,CAWD,CAAC;YAEF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YAC/B,GAAG,CAAC,IAAI,CAAC,wBAAwB,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC;YAEvD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO,0DAA0D,CAAC;YACpE,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC3B,MAAM,KAAK,GAAG;oBACZ,KAAK,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,GAAG;iBAC7C,CAAC;gBACF,IAAI,CAAC,CAAC,WAAW;oBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBAClE,IAAI,CAAC,CAAC,QAAQ;oBAAE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACxD,IAAI,CAAC,CAAC,YAAY,EAAE,MAAM;oBAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC/E,IAAI,CAAC,CAAC,eAAe;oBAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;gBACrE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC;YAEH,OAAO,SAAS,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,yBAAyB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACzF,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { z } from "zod";
2
+ import { OneClawClient } from "../client.js";
3
+ export declare function platformRotateWebhookSecretTool(client: OneClawClient): {
4
+ name: "platform_rotate_webhook_secret";
5
+ description: string;
6
+ parameters: z.ZodObject<{
7
+ app_id: z.ZodString;
8
+ }, "strip", z.ZodTypeAny, {
9
+ app_id: string;
10
+ }, {
11
+ app_id: string;
12
+ }>;
13
+ execute: (args: {
14
+ app_id: string;
15
+ }, { log }: {
16
+ log: {
17
+ info: (msg: string) => void;
18
+ };
19
+ }) => Promise<string>;
20
+ };
21
+ //# sourceMappingURL=platform_rotate_webhook_secret.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform_rotate_webhook_secret.d.ts","sourceRoot":"","sources":["../../src/tools/platform_rotate_webhook_secret.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAmB,MAAM,cAAc,CAAC;AAE9D,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,aAAa;;;;;;;;;;oBAYzD;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,WACf;QAAE,GAAG,EAAE;YAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;SAAE,CAAA;KAAE;EAiCtD"}