@1claw/mcp 0.45.0 → 0.47.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 (49) hide show
  1. package/README.md +4 -1
  2. package/dist/client.d.ts +54 -0
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +69 -0
  5. package/dist/client.js.map +1 -1
  6. package/dist/index.js +22 -0
  7. package/dist/index.js.map +1 -1
  8. package/dist/tools/create_sub_org.d.ts +29 -0
  9. package/dist/tools/create_sub_org.d.ts.map +1 -0
  10. package/dist/tools/create_sub_org.js +36 -0
  11. package/dist/tools/create_sub_org.js.map +1 -0
  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/get_portfolio.d.ts +25 -0
  17. package/dist/tools/get_portfolio.d.ts.map +1 -0
  18. package/dist/tools/get_portfolio.js +23 -0
  19. package/dist/tools/get_portfolio.js.map +1 -0
  20. package/dist/tools/import_signing_key.d.ts +37 -0
  21. package/dist/tools/import_signing_key.d.ts.map +1 -0
  22. package/dist/tools/import_signing_key.js +47 -0
  23. package/dist/tools/import_signing_key.js.map +1 -0
  24. package/dist/tools/import_smart_account.d.ts +37 -0
  25. package/dist/tools/import_smart_account.d.ts.map +1 -0
  26. package/dist/tools/import_smart_account.js +42 -0
  27. package/dist/tools/import_smart_account.js.map +1 -0
  28. package/dist/tools/list_cedar_policies.d.ts +13 -0
  29. package/dist/tools/list_cedar_policies.d.ts.map +1 -0
  30. package/dist/tools/list_cedar_policies.js +16 -0
  31. package/dist/tools/list_cedar_policies.js.map +1 -0
  32. package/dist/tools/list_opa_policies.d.ts +13 -0
  33. package/dist/tools/list_opa_policies.d.ts.map +1 -0
  34. package/dist/tools/list_opa_policies.js +16 -0
  35. package/dist/tools/list_opa_policies.js.map +1 -0
  36. package/dist/tools/list_sub_orgs.d.ts +13 -0
  37. package/dist/tools/list_sub_orgs.d.ts.map +1 -0
  38. package/dist/tools/list_sub_orgs.js +16 -0
  39. package/dist/tools/list_sub_orgs.js.map +1 -0
  40. package/dist/tools/platform_create_app.d.ts +1 -1
  41. package/dist/tools/test_cedar_policy.d.ts +33 -0
  42. package/dist/tools/test_cedar_policy.d.ts.map +1 -0
  43. package/dist/tools/test_cedar_policy.js +19 -0
  44. package/dist/tools/test_cedar_policy.js.map +1 -0
  45. package/dist/tools/test_opa_policy.d.ts +25 -0
  46. package/dist/tools/test_opa_policy.d.ts.map +1 -0
  47. package/dist/tools/test_opa_policy.js +17 -0
  48. package/dist/tools/test_opa_policy.js.map +1 -0
  49. 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,25 @@
1
+ import { z } from "zod";
2
+ import type { OneClawClient } from "../client.js";
3
+ export declare function getPortfolioTool(client: OneClawClient): {
4
+ name: "get_portfolio";
5
+ description: string;
6
+ parameters: z.ZodObject<{
7
+ chains: z.ZodOptional<z.ZodString>;
8
+ include_tokens: z.ZodDefault<z.ZodBoolean>;
9
+ }, "strip", z.ZodTypeAny, {
10
+ include_tokens: boolean;
11
+ chains?: string | undefined;
12
+ }, {
13
+ chains?: string | undefined;
14
+ include_tokens?: boolean | undefined;
15
+ }>;
16
+ execute: (args: {
17
+ chains?: string;
18
+ include_tokens: boolean;
19
+ }, { log }: {
20
+ log: {
21
+ info: (msg: string) => void;
22
+ };
23
+ }) => Promise<string>;
24
+ };
25
+ //# sourceMappingURL=get_portfolio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get_portfolio.d.ts","sourceRoot":"","sources":["../../src/tools/get_portfolio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa;;;;;;;;;;;;;oBAgBpC;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,OAAO,CAAA;KAAE,WACzC;QAAE,GAAG,EAAE;YAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;SAAE,CAAA;KAAE;EAO5D"}
@@ -0,0 +1,23 @@
1
+ import { z } from "zod";
2
+ export function getPortfolioTool(client) {
3
+ return {
4
+ name: "get_portfolio",
5
+ description: "Get a unified portfolio view of all wallet balances across treasury wallets, signing keys, and smart accounts.",
6
+ parameters: z.object({
7
+ chains: z
8
+ .string()
9
+ .optional()
10
+ .describe("Filter by chains (comma-separated, e.g. 'ethereum,solana')"),
11
+ include_tokens: z
12
+ .boolean()
13
+ .default(false)
14
+ .describe("Include token balances alongside native balances"),
15
+ }),
16
+ execute: async (args, { log }) => {
17
+ const res = await client.getPortfolio(args.chains, args.include_tokens);
18
+ log.info(`portfolio: ${res.wallets.length} wallets`);
19
+ return JSON.stringify(res, null, 2);
20
+ },
21
+ };
22
+ }
23
+ //# sourceMappingURL=get_portfolio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get_portfolio.js","sourceRoot":"","sources":["../../src/tools/get_portfolio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,gBAAgB,CAAC,MAAqB;IAClD,OAAO;QACH,IAAI,EAAE,eAAwB;QAC9B,WAAW,EACP,gHAAgH;QACpH,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;YACjB,MAAM,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,4DAA4D,CAAC;YAC3E,cAAc,EAAE,CAAC;iBACZ,OAAO,EAAE;iBACT,OAAO,CAAC,KAAK,CAAC;iBACd,QAAQ,CAAC,kDAAkD,CAAC;SACpE,CAAC;QACF,OAAO,EAAE,KAAK,EACV,IAAkD,EAClD,EAAE,GAAG,EAA4C,EACnD,EAAE;YACA,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YACxE,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,OAAO,CAAC,MAAM,UAAU,CAAC,CAAC;YACrD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACxC,CAAC;KACJ,CAAC;AACN,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { z } from "zod";
2
+ import { OneClawClient } from "../client.js";
3
+ export declare function importSigningKeyTool(client: OneClawClient): {
4
+ name: "import_signing_key";
5
+ description: string;
6
+ parameters: z.ZodObject<{
7
+ agent_id: z.ZodOptional<z.ZodString>;
8
+ chain: z.ZodEnum<["ethereum", "bitcoin", "solana", "xrp", "cardano", "tron"]>;
9
+ private_key: z.ZodString;
10
+ format: z.ZodDefault<z.ZodEnum<["hex", "base64", "wif"]>>;
11
+ password: z.ZodString;
12
+ }, "strip", z.ZodTypeAny, {
13
+ password: string;
14
+ private_key: string;
15
+ chain: "ethereum" | "bitcoin" | "solana" | "xrp" | "cardano" | "tron";
16
+ format: "base64" | "hex" | "wif";
17
+ agent_id?: string | undefined;
18
+ }, {
19
+ password: string;
20
+ private_key: string;
21
+ chain: "ethereum" | "bitcoin" | "solana" | "xrp" | "cardano" | "tron";
22
+ agent_id?: string | undefined;
23
+ format?: "base64" | "hex" | "wif" | undefined;
24
+ }>;
25
+ execute: (args: {
26
+ agent_id?: string;
27
+ chain: string;
28
+ private_key: string;
29
+ format: string;
30
+ password: string;
31
+ }, { log }: {
32
+ log: {
33
+ info: (msg: string) => void;
34
+ };
35
+ }) => Promise<string>;
36
+ };
37
+ //# sourceMappingURL=import_signing_key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import_signing_key.d.ts","sourceRoot":"","sources":["../../src/tools/import_signing_key.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;;;;;;;;;;;;;;;;;;;;;;oBAkBxC;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,WACxF;QAAE,GAAG,EAAE;YAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;SAAE,CAAA;KAAE;EAyB5D"}
@@ -0,0 +1,47 @@
1
+ import { z } from "zod";
2
+ import { UserError } from "fastmcp";
3
+ import { OneClawApiError } from "../client.js";
4
+ export function importSigningKeyTool(client) {
5
+ return {
6
+ name: "import_signing_key",
7
+ description: "Import an existing private key as a signing key for an agent on a specific chain. Human-only. Requires password re-authentication via the password parameter. WARNING: The private key will be transmitted to the 1Claw vault for secure storage.",
8
+ parameters: z.object({
9
+ agent_id: z.string().optional().describe("Agent ID. Uses the current authenticated agent if omitted."),
10
+ chain: z
11
+ .enum(["ethereum", "bitcoin", "solana", "xrp", "cardano", "tron"])
12
+ .describe("Chain name"),
13
+ private_key: z.string().describe("Private key to import"),
14
+ format: z
15
+ .enum(["hex", "base64", "wif"])
16
+ .default("hex")
17
+ .describe("Key format"),
18
+ password: z.string().describe("Account password for re-authentication"),
19
+ }),
20
+ execute: async (args, { log }) => {
21
+ const agentId = args.agent_id || client.agentId;
22
+ if (!agentId) {
23
+ throw new UserError("import_signing_key requires an agent_id parameter or agent authentication (ONECLAW_AGENT_API_KEY).");
24
+ }
25
+ try {
26
+ const res = await client.importSigningKey(agentId, args.chain, args.private_key, args.format, args.password);
27
+ log.info(`signing key imported for ${args.chain}`);
28
+ const address = res.address ?? "N/A";
29
+ return `Signing key imported for ${args.chain} on agent ${agentId}. Address: ${address}`;
30
+ }
31
+ catch (err) {
32
+ if (err instanceof OneClawApiError) {
33
+ if (err.status === 400)
34
+ throw new UserError(err.detail);
35
+ if (err.status === 401)
36
+ throw new UserError(`Re-authentication failed: ${err.detail}`);
37
+ if (err.status === 403)
38
+ throw new UserError(`Access denied: ${err.detail}`);
39
+ if (err.status === 409)
40
+ throw new UserError(`Key already exists: ${err.detail}`);
41
+ }
42
+ throw err;
43
+ }
44
+ },
45
+ };
46
+ }
47
+ //# sourceMappingURL=import_signing_key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import_signing_key.js","sourceRoot":"","sources":["../../src/tools/import_signing_key.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;IACtD,OAAO;QACH,IAAI,EAAE,oBAA6B;QACnC,WAAW,EACP,mPAAmP;QACvP,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;YACjB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;YACtG,KAAK,EAAE,CAAC;iBACH,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;iBACjE,QAAQ,CAAC,YAAY,CAAC;YAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YACzD,MAAM,EAAE,CAAC;iBACJ,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;iBAC9B,OAAO,CAAC,KAAK,CAAC;iBACd,QAAQ,CAAC,YAAY,CAAC;YAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;SAC1E,CAAC;QACF,OAAO,EAAE,KAAK,EACV,IAAiG,EACjG,EAAE,GAAG,EAA4C,EACnD,EAAE;YACA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC;YAChD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,MAAM,IAAI,SAAS,CACf,oGAAoG,CACvG,CAAC;YACN,CAAC;YAED,IAAI,CAAC;gBACD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC7G,GAAG,CAAC,IAAI,CAAC,4BAA4B,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBACnD,MAAM,OAAO,GAAI,GAA+B,CAAC,OAAO,IAAI,KAAK,CAAC;gBAClE,OAAO,4BAA4B,IAAI,CAAC,KAAK,aAAa,OAAO,cAAc,OAAO,EAAE,CAAC;YAC7F,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;oBACjC,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,6BAA6B,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;oBACvF,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,uBAAuB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBACrF,CAAC;gBACD,MAAM,GAAG,CAAC;YACd,CAAC;QACL,CAAC;KACJ,CAAC;AACN,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { z } from "zod";
2
+ import { OneClawClient } from "../client.js";
3
+ export declare function importSmartAccountTool(client: OneClawClient): {
4
+ name: "import_smart_account";
5
+ description: string;
6
+ parameters: z.ZodObject<{
7
+ agent_id: z.ZodOptional<z.ZodString>;
8
+ chain: z.ZodString;
9
+ chain_id: z.ZodNumber;
10
+ safe_address: z.ZodString;
11
+ verify: z.ZodDefault<z.ZodBoolean>;
12
+ }, "strip", z.ZodTypeAny, {
13
+ verify: boolean;
14
+ chain: string;
15
+ chain_id: number;
16
+ safe_address: string;
17
+ agent_id?: string | undefined;
18
+ }, {
19
+ chain: string;
20
+ chain_id: number;
21
+ safe_address: string;
22
+ verify?: boolean | undefined;
23
+ agent_id?: string | undefined;
24
+ }>;
25
+ execute: (args: {
26
+ agent_id?: string;
27
+ chain: string;
28
+ chain_id: number;
29
+ safe_address: string;
30
+ verify: boolean;
31
+ }, { log }: {
32
+ log: {
33
+ info: (msg: string) => void;
34
+ };
35
+ }) => Promise<string>;
36
+ };
37
+ //# sourceMappingURL=import_smart_account.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import_smart_account.d.ts","sourceRoot":"","sources":["../../src/tools/import_smart_account.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;;;;;;;;;;;;;;;;;;;;;;oBAgB1C;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,WAC1F;QAAE,GAAG,EAAE;YAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;SAAE,CAAA;KAAE;EAuB5D"}
@@ -0,0 +1,42 @@
1
+ import { z } from "zod";
2
+ import { UserError } from "fastmcp";
3
+ import { OneClawApiError } from "../client.js";
4
+ export function importSmartAccountTool(client) {
5
+ return {
6
+ name: "import_smart_account",
7
+ description: "Import an existing Safe smart account for an agent. Optionally verifies on-chain that the agent's EOA is a signer on the Safe.",
8
+ parameters: z.object({
9
+ agent_id: z.string().optional().describe("Agent ID. Uses the current authenticated agent if omitted."),
10
+ chain: z.string().describe("Chain name (e.g. 'ethereum', 'base', 'polygon')"),
11
+ chain_id: z.number().int().describe("Chain ID (e.g. 1 for mainnet, 8453 for Base)"),
12
+ safe_address: z.string().describe("Safe contract address"),
13
+ verify: z
14
+ .boolean()
15
+ .default(true)
16
+ .describe("Verify on-chain Safe ownership before importing"),
17
+ }),
18
+ execute: async (args, { log }) => {
19
+ const agentId = args.agent_id || client.agentId;
20
+ if (!agentId) {
21
+ throw new UserError("import_smart_account requires an agent_id parameter or agent authentication (ONECLAW_AGENT_API_KEY).");
22
+ }
23
+ try {
24
+ await client.importSmartAccount(agentId, args.chain, args.chain_id, args.safe_address, args.verify);
25
+ log.info(`smart account imported for agent ${agentId}`);
26
+ return `Smart account imported: ${args.safe_address} on ${args.chain} (chain_id: ${args.chain_id}) for agent ${agentId}.`;
27
+ }
28
+ catch (err) {
29
+ if (err instanceof OneClawApiError) {
30
+ if (err.status === 400)
31
+ throw new UserError(err.detail);
32
+ if (err.status === 403)
33
+ throw new UserError(`Access denied: ${err.detail}`);
34
+ if (err.status === 409)
35
+ throw new UserError(`Already exists: ${err.detail}`);
36
+ }
37
+ throw err;
38
+ }
39
+ },
40
+ };
41
+ }
42
+ //# sourceMappingURL=import_smart_account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import_smart_account.js","sourceRoot":"","sources":["../../src/tools/import_smart_account.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;IACxD,OAAO;QACH,IAAI,EAAE,sBAA+B;QACrC,WAAW,EACP,gIAAgI;QACpI,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;YACjB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;YACtG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;YAC7E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;YACnF,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YAC1D,MAAM,EAAE,CAAC;iBACJ,OAAO,EAAE;iBACT,OAAO,CAAC,IAAI,CAAC;iBACb,QAAQ,CAAC,iDAAiD,CAAC;SACnE,CAAC;QACF,OAAO,EAAE,KAAK,EACV,IAAmG,EACnG,EAAE,GAAG,EAA4C,EACnD,EAAE;YACA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC;YAChD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,MAAM,IAAI,SAAS,CACf,sGAAsG,CACzG,CAAC;YACN,CAAC;YAED,IAAI,CAAC;gBACD,MAAM,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBACpG,GAAG,CAAC,IAAI,CAAC,oCAAoC,OAAO,EAAE,CAAC,CAAC;gBACxD,OAAO,2BAA2B,IAAI,CAAC,YAAY,OAAO,IAAI,CAAC,KAAK,eAAe,IAAI,CAAC,QAAQ,eAAe,OAAO,GAAG,CAAC;YAC9H,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;oBACjC,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,mBAAmB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBACjF,CAAC;gBACD,MAAM,GAAG,CAAC;YACd,CAAC;QACL,CAAC;KACJ,CAAC;AACN,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { z } from "zod";
2
+ import type { OneClawClient } from "../client.js";
3
+ export declare function listCedarPoliciesTool(client: OneClawClient): {
4
+ name: "list_cedar_policies";
5
+ description: string;
6
+ parameters: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
7
+ execute: (_args: Record<string, never>, { log }: {
8
+ log: {
9
+ info: (msg: string) => void;
10
+ };
11
+ }) => Promise<string>;
12
+ };
13
+ //# sourceMappingURL=list_cedar_policies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list_cedar_policies.d.ts","sourceRoot":"","sources":["../../src/tools/list_cedar_policies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa;;;;qBAOxC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,WACnB;QAAE,GAAG,EAAE;YAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;SAAE,CAAA;KAAE;EAQ5D"}
@@ -0,0 +1,16 @@
1
+ import { z } from "zod";
2
+ export function listCedarPoliciesTool(client) {
3
+ return {
4
+ name: "list_cedar_policies",
5
+ description: "List all Cedar policies configured for the organization. Cedar provides fine-grained authorization using a declarative policy language.",
6
+ parameters: z.object({}),
7
+ execute: async (_args, { log }) => {
8
+ const res = await client.listCedarPolicies();
9
+ log.info(`listed ${res.policies.length} cedar policies`);
10
+ if (!res.policies.length)
11
+ return "No Cedar policies found.";
12
+ return JSON.stringify(res.policies, null, 2);
13
+ },
14
+ };
15
+ }
16
+ //# sourceMappingURL=list_cedar_policies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list_cedar_policies.js","sourceRoot":"","sources":["../../src/tools/list_cedar_policies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,qBAAqB,CAAC,MAAqB;IACvD,OAAO;QACH,IAAI,EAAE,qBAA8B;QACpC,WAAW,EACP,yIAAyI;QAC7I,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,KAAK,EACV,KAA4B,EAC5B,EAAE,GAAG,EAA4C,EACnD,EAAE;YACA,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC7C,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,QAAQ,CAAC,MAAM,iBAAiB,CAAC,CAAC;YACzD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM;gBAAE,OAAO,0BAA0B,CAAC;YAC5D,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACjD,CAAC;KACJ,CAAC;AACN,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { z } from "zod";
2
+ import type { OneClawClient } from "../client.js";
3
+ export declare function listOpaPoliciesTool(client: OneClawClient): {
4
+ name: "list_opa_policies";
5
+ description: string;
6
+ parameters: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
7
+ execute: (_args: Record<string, never>, { log }: {
8
+ log: {
9
+ info: (msg: string) => void;
10
+ };
11
+ }) => Promise<string>;
12
+ };
13
+ //# sourceMappingURL=list_opa_policies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list_opa_policies.d.ts","sourceRoot":"","sources":["../../src/tools/list_opa_policies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa;;;;qBAOtC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,WACnB;QAAE,GAAG,EAAE;YAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;SAAE,CAAA;KAAE;EAQ5D"}
@@ -0,0 +1,16 @@
1
+ import { z } from "zod";
2
+ export function listOpaPoliciesTool(client) {
3
+ return {
4
+ name: "list_opa_policies",
5
+ description: "List all OPA (Open Policy Agent) policies configured for the organization.",
6
+ parameters: z.object({}),
7
+ execute: async (_args, { log }) => {
8
+ const res = await client.listOpaPolicies();
9
+ log.info(`listed ${res.policies.length} OPA policies`);
10
+ if (!res.policies.length)
11
+ return "No OPA policies found.";
12
+ return JSON.stringify(res.policies, null, 2);
13
+ },
14
+ };
15
+ }
16
+ //# sourceMappingURL=list_opa_policies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list_opa_policies.js","sourceRoot":"","sources":["../../src/tools/list_opa_policies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,mBAAmB,CAAC,MAAqB;IACrD,OAAO;QACH,IAAI,EAAE,mBAA4B;QAClC,WAAW,EACP,4EAA4E;QAChF,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,KAAK,EACV,KAA4B,EAC5B,EAAE,GAAG,EAA4C,EACnD,EAAE;YACA,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC;YAC3C,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,QAAQ,CAAC,MAAM,eAAe,CAAC,CAAC;YACvD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM;gBAAE,OAAO,wBAAwB,CAAC;YAC1D,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACjD,CAAC;KACJ,CAAC;AACN,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { z } from "zod";
2
+ import type { OneClawClient } from "../client.js";
3
+ export declare function listSubOrgsTool(client: OneClawClient): {
4
+ name: "list_sub_orgs";
5
+ description: string;
6
+ parameters: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
7
+ execute: (_args: Record<string, never>, { log }: {
8
+ log: {
9
+ info: (msg: string) => void;
10
+ };
11
+ }) => Promise<string>;
12
+ };
13
+ //# sourceMappingURL=list_sub_orgs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list_sub_orgs.d.ts","sourceRoot":"","sources":["../../src/tools/list_sub_orgs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa;;;;qBAOlC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,WACnB;QAAE,GAAG,EAAE;YAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;SAAE,CAAA;KAAE;EAQ5D"}
@@ -0,0 +1,16 @@
1
+ import { z } from "zod";
2
+ export function listSubOrgsTool(client) {
3
+ return {
4
+ name: "list_sub_orgs",
5
+ description: "List all sub-organizations under the current organization.",
6
+ parameters: z.object({}),
7
+ execute: async (_args, { log }) => {
8
+ const res = await client.listSubOrgs();
9
+ log.info(`listed ${res.sub_orgs.length} sub-orgs`);
10
+ if (!res.sub_orgs.length)
11
+ return "No sub-organizations found.";
12
+ return JSON.stringify(res.sub_orgs, null, 2);
13
+ },
14
+ };
15
+ }
16
+ //# sourceMappingURL=list_sub_orgs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list_sub_orgs.js","sourceRoot":"","sources":["../../src/tools/list_sub_orgs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,eAAe,CAAC,MAAqB;IACjD,OAAO;QACH,IAAI,EAAE,eAAwB;QAC9B,WAAW,EACP,4DAA4D;QAChE,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,KAAK,EACV,KAA4B,EAC5B,EAAE,GAAG,EAA4C,EACnD,EAAE;YACA,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;YACvC,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,QAAQ,CAAC,MAAM,WAAW,CAAC,CAAC;YACnD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM;gBAAE,OAAO,6BAA6B,CAAC;YAC/D,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACjD,CAAC;KACJ,CAAC;AACN,CAAC"}