atproto-mcp 0.1.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.
- package/LICENSE +22 -0
- package/README.md +293 -0
- package/dist/cli.d.ts +10 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +261 -0
- package/dist/cli.js.map +1 -0
- package/dist/health-check.d.ts +7 -0
- package/dist/health-check.d.ts.map +1 -0
- package/dist/health-check.js +57 -0
- package/dist/health-check.js.map +1 -0
- package/dist/index.d.ts +122 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +612 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/index.d.ts +77 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +186 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/resources/index.d.ts +75 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +218 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/test/setup.d.ts +78 -0
- package/dist/test/setup.d.ts.map +1 -0
- package/dist/test/setup.js +138 -0
- package/dist/test/setup.js.map +1 -0
- package/dist/tools/implementations/advanced-social-tools.d.ts +250 -0
- package/dist/tools/implementations/advanced-social-tools.d.ts.map +1 -0
- package/dist/tools/implementations/advanced-social-tools.js +380 -0
- package/dist/tools/implementations/advanced-social-tools.js.map +1 -0
- package/dist/tools/implementations/base-tool.d.ts +73 -0
- package/dist/tools/implementations/base-tool.d.ts.map +1 -0
- package/dist/tools/implementations/base-tool.js +225 -0
- package/dist/tools/implementations/base-tool.js.map +1 -0
- package/dist/tools/implementations/content-management-tools.d.ts +81 -0
- package/dist/tools/implementations/content-management-tools.d.ts.map +1 -0
- package/dist/tools/implementations/content-management-tools.js +236 -0
- package/dist/tools/implementations/content-management-tools.js.map +1 -0
- package/dist/tools/implementations/create-post-tool.d.ts +131 -0
- package/dist/tools/implementations/create-post-tool.d.ts.map +1 -0
- package/dist/tools/implementations/create-post-tool.js +182 -0
- package/dist/tools/implementations/create-post-tool.js.map +1 -0
- package/dist/tools/implementations/follow-user-tool.d.ts +69 -0
- package/dist/tools/implementations/follow-user-tool.d.ts.map +1 -0
- package/dist/tools/implementations/follow-user-tool.js +200 -0
- package/dist/tools/implementations/follow-user-tool.js.map +1 -0
- package/dist/tools/implementations/get-user-profile-tool.d.ts +61 -0
- package/dist/tools/implementations/get-user-profile-tool.d.ts.map +1 -0
- package/dist/tools/implementations/get-user-profile-tool.js +139 -0
- package/dist/tools/implementations/get-user-profile-tool.js.map +1 -0
- package/dist/tools/implementations/index.d.ts +22 -0
- package/dist/tools/implementations/index.d.ts.map +1 -0
- package/dist/tools/implementations/index.js +32 -0
- package/dist/tools/implementations/index.js.map +1 -0
- package/dist/tools/implementations/like-post-tool.d.ts +68 -0
- package/dist/tools/implementations/like-post-tool.d.ts.map +1 -0
- package/dist/tools/implementations/like-post-tool.js +184 -0
- package/dist/tools/implementations/like-post-tool.js.map +1 -0
- package/dist/tools/implementations/media-tools.d.ts +360 -0
- package/dist/tools/implementations/media-tools.d.ts.map +1 -0
- package/dist/tools/implementations/media-tools.js +444 -0
- package/dist/tools/implementations/media-tools.js.map +1 -0
- package/dist/tools/implementations/moderation-tools.d.ts +189 -0
- package/dist/tools/implementations/moderation-tools.d.ts.map +1 -0
- package/dist/tools/implementations/moderation-tools.js +289 -0
- package/dist/tools/implementations/moderation-tools.js.map +1 -0
- package/dist/tools/implementations/oauth-tools.d.ts +108 -0
- package/dist/tools/implementations/oauth-tools.d.ts.map +1 -0
- package/dist/tools/implementations/oauth-tools.js +183 -0
- package/dist/tools/implementations/oauth-tools.js.map +1 -0
- package/dist/tools/implementations/reply-to-post-tool.d.ts +52 -0
- package/dist/tools/implementations/reply-to-post-tool.d.ts.map +1 -0
- package/dist/tools/implementations/reply-to-post-tool.js +167 -0
- package/dist/tools/implementations/reply-to-post-tool.js.map +1 -0
- package/dist/tools/implementations/repost-tool.d.ts +76 -0
- package/dist/tools/implementations/repost-tool.d.ts.map +1 -0
- package/dist/tools/implementations/repost-tool.js +181 -0
- package/dist/tools/implementations/repost-tool.js.map +1 -0
- package/dist/tools/implementations/search-posts-tool.d.ts +95 -0
- package/dist/tools/implementations/search-posts-tool.d.ts.map +1 -0
- package/dist/tools/implementations/search-posts-tool.js +208 -0
- package/dist/tools/implementations/search-posts-tool.js.map +1 -0
- package/dist/tools/implementations/social-graph-tools.d.ts +119 -0
- package/dist/tools/implementations/social-graph-tools.d.ts.map +1 -0
- package/dist/tools/implementations/social-graph-tools.js +262 -0
- package/dist/tools/implementations/social-graph-tools.js.map +1 -0
- package/dist/tools/implementations/streaming-tools.d.ts +130 -0
- package/dist/tools/implementations/streaming-tools.d.ts.map +1 -0
- package/dist/tools/implementations/streaming-tools.js +241 -0
- package/dist/tools/implementations/streaming-tools.js.map +1 -0
- package/dist/tools/implementations/timeline-tools.d.ts +69 -0
- package/dist/tools/implementations/timeline-tools.d.ts.map +1 -0
- package/dist/tools/implementations/timeline-tools.js +194 -0
- package/dist/tools/implementations/timeline-tools.js.map +1 -0
- package/dist/tools/index.d.ts +23 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +73 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/types/index.d.ts +242 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +73 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/atp-client.d.ts +109 -0
- package/dist/utils/atp-client.d.ts.map +1 -0
- package/dist/utils/atp-client.js +451 -0
- package/dist/utils/atp-client.js.map +1 -0
- package/dist/utils/config.d.ts +74 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +311 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/firehose-client.d.ts +96 -0
- package/dist/utils/firehose-client.d.ts.map +1 -0
- package/dist/utils/firehose-client.js +252 -0
- package/dist/utils/firehose-client.js.map +1 -0
- package/dist/utils/logger.d.ts +74 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +142 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/oauth-client.d.ts +61 -0
- package/dist/utils/oauth-client.d.ts.map +1 -0
- package/dist/utils/oauth-client.js +224 -0
- package/dist/utils/oauth-client.js.map +1 -0
- package/dist/utils/performance.d.ts +102 -0
- package/dist/utils/performance.d.ts.map +1 -0
- package/dist/utils/performance.js +302 -0
- package/dist/utils/performance.js.map +1 -0
- package/dist/utils/security.d.ts +154 -0
- package/dist/utils/security.d.ts.map +1 -0
- package/dist/utils/security.js +358 -0
- package/dist/utils/security.js.map +1 -0
- package/package.json +93 -0
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Content moderation tools for AT Protocol
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { BaseTool } from './base-tool.js';
|
|
6
|
+
const MuteUserSchema = z.object({
|
|
7
|
+
actor: z.string().min(1, 'Actor (DID or handle) is required'),
|
|
8
|
+
});
|
|
9
|
+
const UnmuteUserSchema = z.object({
|
|
10
|
+
actor: z.string().min(1, 'Actor (DID or handle) is required'),
|
|
11
|
+
});
|
|
12
|
+
const BlockUserSchema = z.object({
|
|
13
|
+
actor: z.string().min(1, 'Actor (DID or handle) is required'),
|
|
14
|
+
});
|
|
15
|
+
const UnblockUserSchema = z.object({
|
|
16
|
+
actor: z.string().min(1, 'Actor (DID or handle) is required'),
|
|
17
|
+
});
|
|
18
|
+
const ReportContentSchema = z.object({
|
|
19
|
+
subject: z.object({
|
|
20
|
+
uri: z.string().min(1, 'Content URI is required'),
|
|
21
|
+
cid: z.string().min(1, 'Content CID is required'),
|
|
22
|
+
}),
|
|
23
|
+
reasonType: z.enum(['spam', 'violation', 'misleading', 'sexual', 'rude', 'other']),
|
|
24
|
+
reason: z.string().max(2000, 'Reason cannot exceed 2000 characters').optional(),
|
|
25
|
+
});
|
|
26
|
+
const ReportUserSchema = z.object({
|
|
27
|
+
actor: z.string().min(1, 'Actor (DID or handle) is required'),
|
|
28
|
+
reasonType: z.enum(['spam', 'violation', 'misleading', 'sexual', 'rude', 'other']),
|
|
29
|
+
reason: z.string().max(2000, 'Reason cannot exceed 2000 characters').optional(),
|
|
30
|
+
});
|
|
31
|
+
export class MuteUserTool extends BaseTool {
|
|
32
|
+
schema = {
|
|
33
|
+
method: 'mute_user',
|
|
34
|
+
description: 'Mute a user to hide their content from your feeds and notifications without them knowing.',
|
|
35
|
+
params: MuteUserSchema,
|
|
36
|
+
};
|
|
37
|
+
constructor(atpClient) {
|
|
38
|
+
super(atpClient, 'MuteUser');
|
|
39
|
+
}
|
|
40
|
+
async execute(params) {
|
|
41
|
+
try {
|
|
42
|
+
this.logger.info('Muting user', { actor: params.actor });
|
|
43
|
+
this.validateActor(params.actor);
|
|
44
|
+
const response = await this.executeAtpOperation(async () => {
|
|
45
|
+
const agent = this.atpClient.getAgent();
|
|
46
|
+
return await agent.mute(params.actor);
|
|
47
|
+
}, 'muteUser', { actor: params.actor });
|
|
48
|
+
this.logger.info('User muted successfully', { actor: params.actor });
|
|
49
|
+
return {
|
|
50
|
+
success: true,
|
|
51
|
+
message: `User ${params.actor} has been muted. Their content will no longer appear in your feeds.`,
|
|
52
|
+
mutedUser: {
|
|
53
|
+
actor: params.actor,
|
|
54
|
+
did: response?.data?.did,
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
this.logger.error('Failed to mute user', error);
|
|
60
|
+
this.formatError(error);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
export class UnmuteUserTool extends BaseTool {
|
|
65
|
+
schema = {
|
|
66
|
+
method: 'unmute_user',
|
|
67
|
+
description: 'Unmute a previously muted user to restore their content in your feeds.',
|
|
68
|
+
params: UnmuteUserSchema,
|
|
69
|
+
};
|
|
70
|
+
constructor(atpClient) {
|
|
71
|
+
super(atpClient, 'UnmuteUser');
|
|
72
|
+
}
|
|
73
|
+
async execute(params) {
|
|
74
|
+
try {
|
|
75
|
+
this.logger.info('Unmuting user', { actor: params.actor });
|
|
76
|
+
this.validateActor(params.actor);
|
|
77
|
+
const response = await this.executeAtpOperation(async () => {
|
|
78
|
+
const agent = this.atpClient.getAgent();
|
|
79
|
+
return await agent.unmute(params.actor);
|
|
80
|
+
}, 'unmuteUser', { actor: params.actor });
|
|
81
|
+
this.logger.info('User unmuted successfully', { actor: params.actor });
|
|
82
|
+
return {
|
|
83
|
+
success: true,
|
|
84
|
+
message: `User ${params.actor} has been unmuted. Their content will now appear in your feeds.`,
|
|
85
|
+
unmutedUser: {
|
|
86
|
+
actor: params.actor,
|
|
87
|
+
did: response?.data?.did,
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
this.logger.error('Failed to unmute user', error);
|
|
93
|
+
this.formatError(error);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
export class BlockUserTool extends BaseTool {
|
|
98
|
+
schema = {
|
|
99
|
+
method: 'block_user',
|
|
100
|
+
description: 'Block a user to prevent them from seeing your content and interacting with you.',
|
|
101
|
+
params: BlockUserSchema,
|
|
102
|
+
};
|
|
103
|
+
constructor(atpClient) {
|
|
104
|
+
super(atpClient, 'BlockUser');
|
|
105
|
+
}
|
|
106
|
+
async execute(params) {
|
|
107
|
+
try {
|
|
108
|
+
this.logger.info('Blocking user', { actor: params.actor });
|
|
109
|
+
this.validateActor(params.actor);
|
|
110
|
+
const response = await this.executeAtpOperation(async () => {
|
|
111
|
+
const agent = this.atpClient.getAgent();
|
|
112
|
+
return await agent.app.bsky.graph.block.create({ repo: agent.session?.did || '' }, {
|
|
113
|
+
subject: params.actor,
|
|
114
|
+
createdAt: new Date().toISOString(),
|
|
115
|
+
});
|
|
116
|
+
}, 'blockUser', { actor: params.actor });
|
|
117
|
+
this.logger.info('User blocked successfully', {
|
|
118
|
+
actor: params.actor,
|
|
119
|
+
uri: response.uri,
|
|
120
|
+
});
|
|
121
|
+
return {
|
|
122
|
+
success: true,
|
|
123
|
+
message: `User ${params.actor} has been blocked. They cannot see your content or interact with you.`,
|
|
124
|
+
blockedUser: {
|
|
125
|
+
actor: params.actor,
|
|
126
|
+
did: response?.did,
|
|
127
|
+
uri: response.uri,
|
|
128
|
+
},
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
this.logger.error('Failed to block user', error);
|
|
133
|
+
this.formatError(error);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
export class UnblockUserTool extends BaseTool {
|
|
138
|
+
schema = {
|
|
139
|
+
method: 'unblock_user',
|
|
140
|
+
description: 'Unblock a previously blocked user to restore normal interactions.',
|
|
141
|
+
params: UnblockUserSchema,
|
|
142
|
+
};
|
|
143
|
+
constructor(atpClient) {
|
|
144
|
+
super(atpClient, 'UnblockUser');
|
|
145
|
+
}
|
|
146
|
+
async execute(params) {
|
|
147
|
+
try {
|
|
148
|
+
this.logger.info('Unblocking user', { actor: params.actor });
|
|
149
|
+
this.validateActor(params.actor);
|
|
150
|
+
// First, find the block record
|
|
151
|
+
const agent = this.atpClient.getAgent();
|
|
152
|
+
const blocksResponse = await this.executeAtpOperation(async () => await agent.app.bsky.graph.getBlocks({
|
|
153
|
+
limit: 100,
|
|
154
|
+
}), 'getBlocks', { actor: params.actor });
|
|
155
|
+
const blockRecord = blocksResponse.data.blocks.find((block) => block.subject?.did === params.actor || block.subject?.handle === params.actor);
|
|
156
|
+
if (!blockRecord) {
|
|
157
|
+
return {
|
|
158
|
+
success: false,
|
|
159
|
+
message: `User ${params.actor} is not currently blocked.`,
|
|
160
|
+
unblockedUser: {
|
|
161
|
+
actor: params.actor,
|
|
162
|
+
},
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
// Delete the block record
|
|
166
|
+
await this.executeAtpOperation(async () => await agent.app.bsky.graph.block.delete({
|
|
167
|
+
repo: agent.session?.did || '',
|
|
168
|
+
rkey: blockRecord?.uri?.split('/').pop() || blockRecord?.rkey || '',
|
|
169
|
+
}), 'unblockUser', { actor: params.actor });
|
|
170
|
+
this.logger.info('User unblocked successfully', { actor: params.actor });
|
|
171
|
+
return {
|
|
172
|
+
success: true,
|
|
173
|
+
message: `User ${params.actor} has been unblocked. Normal interactions are now restored.`,
|
|
174
|
+
unblockedUser: {
|
|
175
|
+
actor: params.actor,
|
|
176
|
+
},
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
this.logger.error('Failed to unblock user', error);
|
|
181
|
+
this.formatError(error);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
export class ReportContentTool extends BaseTool {
|
|
186
|
+
schema = {
|
|
187
|
+
method: 'report_content',
|
|
188
|
+
description: 'Report content that violates community guidelines or terms of service.',
|
|
189
|
+
params: ReportContentSchema,
|
|
190
|
+
};
|
|
191
|
+
constructor(atpClient) {
|
|
192
|
+
super(atpClient, 'ReportContent');
|
|
193
|
+
}
|
|
194
|
+
async execute(params) {
|
|
195
|
+
try {
|
|
196
|
+
this.logger.info('Reporting content', {
|
|
197
|
+
uri: params.subject.uri,
|
|
198
|
+
reasonType: params.reasonType,
|
|
199
|
+
});
|
|
200
|
+
this.validateAtUri(params.subject.uri);
|
|
201
|
+
this.validateCid(params.subject.cid);
|
|
202
|
+
const response = await this.executeAtpOperation(async () => {
|
|
203
|
+
const agent = this.atpClient.getAgent();
|
|
204
|
+
return await agent.com.atproto.moderation.createReport({
|
|
205
|
+
reasonType: `com.atproto.moderation.defs#reason${params.reasonType.charAt(0).toUpperCase() + params.reasonType.slice(1)}`,
|
|
206
|
+
reason: params.reason,
|
|
207
|
+
subject: {
|
|
208
|
+
$type: 'com.atproto.repo.strongRef',
|
|
209
|
+
uri: params.subject.uri,
|
|
210
|
+
cid: params.subject.cid,
|
|
211
|
+
},
|
|
212
|
+
});
|
|
213
|
+
}, 'reportContent', {
|
|
214
|
+
uri: params.subject.uri,
|
|
215
|
+
reasonType: params.reasonType,
|
|
216
|
+
});
|
|
217
|
+
this.logger.info('Content reported successfully', {
|
|
218
|
+
reportId: response.data.id,
|
|
219
|
+
uri: params.subject.uri,
|
|
220
|
+
});
|
|
221
|
+
return {
|
|
222
|
+
success: true,
|
|
223
|
+
message: 'Content has been reported successfully. Moderators will review your report.',
|
|
224
|
+
reportId: response.data.id.toString(),
|
|
225
|
+
reportDetails: {
|
|
226
|
+
subject: params.subject.uri,
|
|
227
|
+
reasonType: params.reasonType,
|
|
228
|
+
reason: params.reason,
|
|
229
|
+
},
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
catch (error) {
|
|
233
|
+
this.logger.error('Failed to report content', error);
|
|
234
|
+
this.formatError(error);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
export class ReportUserTool extends BaseTool {
|
|
239
|
+
schema = {
|
|
240
|
+
method: 'report_user',
|
|
241
|
+
description: 'Report a user account that violates community guidelines or terms of service.',
|
|
242
|
+
params: ReportUserSchema,
|
|
243
|
+
};
|
|
244
|
+
constructor(atpClient) {
|
|
245
|
+
super(atpClient, 'ReportUser');
|
|
246
|
+
}
|
|
247
|
+
async execute(params) {
|
|
248
|
+
try {
|
|
249
|
+
this.logger.info('Reporting user', {
|
|
250
|
+
actor: params.actor,
|
|
251
|
+
reasonType: params.reasonType,
|
|
252
|
+
});
|
|
253
|
+
this.validateActor(params.actor);
|
|
254
|
+
const response = await this.executeAtpOperation(async () => {
|
|
255
|
+
const agent = this.atpClient.getAgent();
|
|
256
|
+
return await agent.com.atproto.moderation.createReport({
|
|
257
|
+
reasonType: `com.atproto.moderation.defs#reason${params.reasonType.charAt(0).toUpperCase() + params.reasonType.slice(1)}`,
|
|
258
|
+
reason: params.reason,
|
|
259
|
+
subject: {
|
|
260
|
+
$type: 'com.atproto.admin.defs#repoRef',
|
|
261
|
+
did: params.actor,
|
|
262
|
+
},
|
|
263
|
+
});
|
|
264
|
+
}, 'reportUser', {
|
|
265
|
+
actor: params.actor,
|
|
266
|
+
reasonType: params.reasonType,
|
|
267
|
+
});
|
|
268
|
+
this.logger.info('User reported successfully', {
|
|
269
|
+
reportId: response.data.id,
|
|
270
|
+
actor: params.actor,
|
|
271
|
+
});
|
|
272
|
+
return {
|
|
273
|
+
success: true,
|
|
274
|
+
message: 'User has been reported successfully. Moderators will review your report.',
|
|
275
|
+
reportId: response.data.id.toString(),
|
|
276
|
+
reportDetails: {
|
|
277
|
+
actor: params.actor,
|
|
278
|
+
reasonType: params.reasonType,
|
|
279
|
+
reason: params.reason,
|
|
280
|
+
},
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
catch (error) {
|
|
284
|
+
this.logger.error('Failed to report user', error);
|
|
285
|
+
this.formatError(error);
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
//# sourceMappingURL=moderation-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"moderation-tools.js","sourceRoot":"","sources":["../../../src/tools/implementations/moderation-tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,mCAAmC,CAAC;CAC9D,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,mCAAmC,CAAC;CAC9D,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,mCAAmC,CAAC;CAC9D,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,mCAAmC,CAAC;CAC9D,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,yBAAyB,CAAC;QACjD,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,yBAAyB,CAAC;KAClD,CAAC;IACF,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAClF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,sCAAsC,CAAC,CAAC,QAAQ,EAAE;CAChF,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,mCAAmC,CAAC;IAC7D,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAClF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,sCAAsC,CAAC,CAAC,QAAQ,EAAE;CAChF,CAAC,CAAC;AAEH,MAAM,OAAO,YAAa,SAAQ,QAAQ;IACxB,MAAM,GAAG;QACvB,MAAM,EAAE,WAAW;QACnB,WAAW,EACT,2FAA2F;QAC7F,MAAM,EAAE,cAAc;KACvB,CAAC;IAEF,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC/B,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,MAAyB;QAQ/C,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAEzD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAEjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAC7C,KAAK,IAAI,EAAE;gBACT,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACxC,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxC,CAAC,EACD,UAAU,EACV,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CACxB,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAErE,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,QAAQ,MAAM,CAAC,KAAK,qEAAqE;gBAClG,SAAS,EAAE;oBACT,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,GAAG,EAAG,QAAgB,EAAE,IAAI,EAAE,GAAG;iBAClC;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;YAChD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,QAAQ;IAC1B,MAAM,GAAG;QACvB,MAAM,EAAE,aAAa;QACrB,WAAW,EAAE,wEAAwE;QACrF,MAAM,EAAE,gBAAgB;KACzB,CAAC;IAEF,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACjC,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,MAAyB;QAQ/C,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAE3D,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAEjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAC7C,KAAK,IAAI,EAAE;gBACT,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACxC,OAAO,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1C,CAAC,EACD,YAAY,EACZ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CACxB,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAEvE,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,QAAQ,MAAM,CAAC,KAAK,iEAAiE;gBAC9F,WAAW,EAAE;oBACX,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,GAAG,EAAG,QAAgB,EAAE,IAAI,EAAE,GAAG;iBAClC;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;YAClD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,QAAQ;IACzB,MAAM,GAAG;QACvB,MAAM,EAAE,YAAY;QACpB,WAAW,EAAE,iFAAiF;QAC9F,MAAM,EAAE,eAAe;KACxB,CAAC;IAEF,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAChC,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,MAAyB;QAS/C,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAE3D,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAEjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAC7C,KAAK,IAAI,EAAE;gBACT,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACxC,OAAO,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAC5C,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAClC;oBACE,OAAO,EAAE,MAAM,CAAC,KAAK;oBACrB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC,CACF,CAAC;YACJ,CAAC,EACD,WAAW,EACX,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CACxB,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;gBAC5C,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,GAAG,EAAE,QAAQ,CAAC,GAAG;aAClB,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,QAAQ,MAAM,CAAC,KAAK,uEAAuE;gBACpG,WAAW,EAAE;oBACX,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,GAAG,EAAG,QAAgB,EAAE,GAAG;oBAC3B,GAAG,EAAE,QAAQ,CAAC,GAAG;iBAClB;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;YACjD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,QAAQ;IAC3B,MAAM,GAAG;QACvB,MAAM,EAAE,cAAc;QACtB,WAAW,EAAE,mEAAmE;QAChF,MAAM,EAAE,iBAAiB;KAC1B,CAAC;IAEF,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAClC,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,MAAyB;QAO/C,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAE7D,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAEjC,+BAA+B;YAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YACxC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,mBAAmB,CACnD,KAAK,IAAI,EAAE,CACT,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;gBACnC,KAAK,EAAE,GAAG;aACX,CAAC,EACJ,WAAW,EACX,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CACxB,CAAC;YAEF,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CACjD,CAAC,KAAU,EAAE,EAAE,CACb,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,KAAK,CACzE,CAAC;YAET,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,QAAQ,MAAM,CAAC,KAAK,4BAA4B;oBACzD,aAAa,EAAE;wBACb,KAAK,EAAE,MAAM,CAAC,KAAK;qBACpB;iBACF,CAAC;YACJ,CAAC;YAED,0BAA0B;YAC1B,MAAM,IAAI,CAAC,mBAAmB,CAC5B,KAAK,IAAI,EAAE,CACT,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;gBACtC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE;gBAC9B,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,WAAW,EAAE,IAAI,IAAI,EAAE;aACpE,CAAC,EACJ,aAAa,EACb,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CACxB,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAEzE,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,QAAQ,MAAM,CAAC,KAAK,4DAA4D;gBACzF,aAAa,EAAE;oBACb,KAAK,EAAE,MAAM,CAAC,KAAK;iBACpB;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YACnD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,QAAQ;IAC7B,MAAM,GAAG;QACvB,MAAM,EAAE,gBAAgB;QACxB,WAAW,EAAE,wEAAwE;QACrF,MAAM,EAAE,mBAAmB;KAC5B,CAAC;IAEF,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACpC,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,MAIvB;QAUC,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE;gBACpC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG;gBACvB,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CAAC,CAAC;YAEH,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAErC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAC7C,KAAK,IAAI,EAAE;gBACT,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACxC,OAAO,MAAM,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC;oBACrD,UAAU,EAAE,qCAAqC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;oBACzH,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,OAAO,EAAE;wBACP,KAAK,EAAE,4BAA4B;wBACnC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG;wBACvB,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG;qBACxB;iBACF,CAAC,CAAC;YACL,CAAC,EACD,eAAe,EACf;gBACE,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG;gBACvB,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CACF,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE;gBAChD,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE;gBAC1B,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG;aACxB,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,6EAA6E;gBACtF,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE;gBACrC,aAAa,EAAE;oBACb,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG;oBAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;iBACtB;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;YACrD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,QAAQ;IAC1B,MAAM,GAAG;QACvB,MAAM,EAAE,aAAa;QACrB,WAAW,EAAE,+EAA+E;QAC5F,MAAM,EAAE,gBAAgB;KACzB,CAAC;IAEF,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACjC,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,MAA8D;QAUpF,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBACjC,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CAAC,CAAC;YAEH,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAEjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAC7C,KAAK,IAAI,EAAE;gBACT,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACxC,OAAO,MAAM,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC;oBACrD,UAAU,EAAE,qCAAqC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;oBACzH,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,OAAO,EAAE;wBACP,KAAK,EAAE,gCAAgC;wBACvC,GAAG,EAAE,MAAM,CAAC,KAAK;qBAClB;iBACF,CAAC,CAAC;YACL,CAAC,EACD,YAAY,EACZ;gBACE,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CACF,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE;gBAC7C,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE;gBAC1B,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,0EAA0E;gBACnF,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE;gBACrC,aAAa,EAAE;oBACb,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;iBACtB;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;YAClD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OAuth management tools for AT Protocol authentication
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { BaseTool } from './base-tool.js';
|
|
6
|
+
import type { AtpClient } from '../../utils/atp-client.js';
|
|
7
|
+
export declare class StartOAuthFlowTool extends BaseTool {
|
|
8
|
+
readonly schema: {
|
|
9
|
+
method: string;
|
|
10
|
+
description: string;
|
|
11
|
+
params: z.ZodObject<{
|
|
12
|
+
identifier: z.ZodString;
|
|
13
|
+
}, "strip", z.ZodTypeAny, {
|
|
14
|
+
identifier: string;
|
|
15
|
+
}, {
|
|
16
|
+
identifier: string;
|
|
17
|
+
}>;
|
|
18
|
+
};
|
|
19
|
+
constructor(atpClient: AtpClient);
|
|
20
|
+
protected execute(params: {
|
|
21
|
+
identifier: string;
|
|
22
|
+
}): Promise<{
|
|
23
|
+
success: boolean;
|
|
24
|
+
authUrl: string;
|
|
25
|
+
state: string;
|
|
26
|
+
instructions: string;
|
|
27
|
+
expiresIn: number;
|
|
28
|
+
}>;
|
|
29
|
+
}
|
|
30
|
+
export declare class HandleOAuthCallbackTool extends BaseTool {
|
|
31
|
+
readonly schema: {
|
|
32
|
+
method: string;
|
|
33
|
+
description: string;
|
|
34
|
+
params: z.ZodObject<{
|
|
35
|
+
code: z.ZodString;
|
|
36
|
+
state: z.ZodString;
|
|
37
|
+
}, "strip", z.ZodTypeAny, {
|
|
38
|
+
code: string;
|
|
39
|
+
state: string;
|
|
40
|
+
}, {
|
|
41
|
+
code: string;
|
|
42
|
+
state: string;
|
|
43
|
+
}>;
|
|
44
|
+
};
|
|
45
|
+
constructor(atpClient: AtpClient);
|
|
46
|
+
protected execute(params: {
|
|
47
|
+
code: string;
|
|
48
|
+
state: string;
|
|
49
|
+
}): Promise<{
|
|
50
|
+
success: boolean;
|
|
51
|
+
session: {
|
|
52
|
+
did: string;
|
|
53
|
+
handle: string;
|
|
54
|
+
expiresAt: string;
|
|
55
|
+
};
|
|
56
|
+
message: string;
|
|
57
|
+
}>;
|
|
58
|
+
}
|
|
59
|
+
export declare class RefreshOAuthTokensTool extends BaseTool {
|
|
60
|
+
readonly schema: {
|
|
61
|
+
method: string;
|
|
62
|
+
description: string;
|
|
63
|
+
params: z.ZodObject<{
|
|
64
|
+
refreshToken: z.ZodString;
|
|
65
|
+
}, "strip", z.ZodTypeAny, {
|
|
66
|
+
refreshToken: string;
|
|
67
|
+
}, {
|
|
68
|
+
refreshToken: string;
|
|
69
|
+
}>;
|
|
70
|
+
};
|
|
71
|
+
constructor(atpClient: AtpClient);
|
|
72
|
+
protected execute(params: {
|
|
73
|
+
refreshToken: string;
|
|
74
|
+
}): Promise<{
|
|
75
|
+
success: boolean;
|
|
76
|
+
session: {
|
|
77
|
+
did: string;
|
|
78
|
+
handle: string;
|
|
79
|
+
expiresAt: string;
|
|
80
|
+
};
|
|
81
|
+
message: string;
|
|
82
|
+
}>;
|
|
83
|
+
}
|
|
84
|
+
export declare class RevokeOAuthTokensTool extends BaseTool {
|
|
85
|
+
readonly schema: {
|
|
86
|
+
method: string;
|
|
87
|
+
description: string;
|
|
88
|
+
params: z.ZodObject<{
|
|
89
|
+
accessToken: z.ZodString;
|
|
90
|
+
refreshToken: z.ZodOptional<z.ZodString>;
|
|
91
|
+
}, "strip", z.ZodTypeAny, {
|
|
92
|
+
accessToken: string;
|
|
93
|
+
refreshToken?: string | undefined;
|
|
94
|
+
}, {
|
|
95
|
+
accessToken: string;
|
|
96
|
+
refreshToken?: string | undefined;
|
|
97
|
+
}>;
|
|
98
|
+
};
|
|
99
|
+
constructor(atpClient: AtpClient);
|
|
100
|
+
protected execute(params: {
|
|
101
|
+
accessToken: string;
|
|
102
|
+
refreshToken?: string;
|
|
103
|
+
}): Promise<{
|
|
104
|
+
success: boolean;
|
|
105
|
+
message: string;
|
|
106
|
+
}>;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=oauth-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth-tools.d.ts","sourceRoot":"","sources":["../../../src/tools/implementations/oauth-tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAgB,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAqB3D,qBAAa,kBAAmB,SAAQ,QAAQ;IAC9C,SAAgB,MAAM;;;;;;;;;;MAKpB;gBAEU,SAAS,EAAE,SAAS;cAIhB,OAAO,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAC/D,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CAoCH;AAED,qBAAa,uBAAwB,SAAQ,QAAQ;IACnD,SAAgB,MAAM;;;;;;;;;;;;;MAIpB;gBAEU,SAAS,EAAE,SAAS;cAIhB,OAAO,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QACxE,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE;YACP,GAAG,EAAE,MAAM,CAAC;YACZ,MAAM,EAAE,MAAM,CAAC;YACf,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CAsCH;AAED,qBAAa,sBAAuB,SAAQ,QAAQ;IAClD,SAAgB,MAAM;;;;;;;;;;MAIpB;gBAEU,SAAS,EAAE,SAAS;cAIhB,OAAO,CAAC,MAAM,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QACjE,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE;YACP,GAAG,EAAE,MAAM,CAAC;YACZ,MAAM,EAAE,MAAM,CAAC;YACf,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CAmCH;AAED,qBAAa,qBAAsB,SAAQ,QAAQ;IACjD,SAAgB,MAAM;;;;;;;;;;;;;MAIpB;gBAEU,SAAS,EAAE,SAAS;cAIhB,OAAO,CAAC,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QACvF,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CA2BH"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OAuth management tools for AT Protocol authentication
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { BaseTool, ToolAuthMode } from './base-tool.js';
|
|
6
|
+
import { AtpOAuthClient } from '../../utils/oauth-client.js';
|
|
7
|
+
const StartOAuthFlowSchema = z.object({
|
|
8
|
+
identifier: z.string().min(1, 'Identifier (handle or DID) is required'),
|
|
9
|
+
});
|
|
10
|
+
const HandleOAuthCallbackSchema = z.object({
|
|
11
|
+
code: z.string().min(1, 'Authorization code is required'),
|
|
12
|
+
state: z.string().min(1, 'State parameter is required'),
|
|
13
|
+
});
|
|
14
|
+
const RefreshOAuthTokensSchema = z.object({
|
|
15
|
+
refreshToken: z.string().min(1, 'Refresh token is required'),
|
|
16
|
+
});
|
|
17
|
+
const RevokeOAuthTokensSchema = z.object({
|
|
18
|
+
accessToken: z.string().min(1, 'Access token is required'),
|
|
19
|
+
refreshToken: z.string().optional(),
|
|
20
|
+
});
|
|
21
|
+
export class StartOAuthFlowTool extends BaseTool {
|
|
22
|
+
schema = {
|
|
23
|
+
method: 'start_oauth_flow',
|
|
24
|
+
description: 'Start OAuth authorization flow for AT Protocol authentication. Returns authorization URL that user must visit.',
|
|
25
|
+
params: StartOAuthFlowSchema,
|
|
26
|
+
};
|
|
27
|
+
constructor(atpClient) {
|
|
28
|
+
super(atpClient, 'StartOAuthFlow', ToolAuthMode.PUBLIC);
|
|
29
|
+
}
|
|
30
|
+
async execute(params) {
|
|
31
|
+
try {
|
|
32
|
+
this.logger.info('Starting OAuth flow', { identifier: params.identifier });
|
|
33
|
+
this.validateActor(params.identifier);
|
|
34
|
+
// Get OAuth configuration from ATP client
|
|
35
|
+
const config = this.atpClient.getAgent().service;
|
|
36
|
+
const oauthClient = new AtpOAuthClient({
|
|
37
|
+
service: config.toString(),
|
|
38
|
+
authMethod: 'oauth',
|
|
39
|
+
clientId: process.env['OAUTH_CLIENT_ID'],
|
|
40
|
+
clientSecret: process.env['OAUTH_CLIENT_SECRET'],
|
|
41
|
+
redirectUri: process.env['OAUTH_REDIRECT_URI'],
|
|
42
|
+
});
|
|
43
|
+
const authRequest = await oauthClient.startAuthorization(params.identifier);
|
|
44
|
+
this.logger.info('OAuth authorization URL generated', {
|
|
45
|
+
identifier: params.identifier,
|
|
46
|
+
state: `${authRequest.state.substring(0, 8)}...`,
|
|
47
|
+
});
|
|
48
|
+
return {
|
|
49
|
+
success: true,
|
|
50
|
+
authUrl: authRequest.authUrl,
|
|
51
|
+
state: authRequest.state,
|
|
52
|
+
instructions: 'Visit the authorization URL in your browser, complete the OAuth flow, and use the returned authorization code with the handle_oauth_callback tool.',
|
|
53
|
+
expiresIn: 1800, // 30 minutes
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
this.logger.error('Failed to start OAuth flow', error);
|
|
58
|
+
this.formatError(error);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
export class HandleOAuthCallbackTool extends BaseTool {
|
|
63
|
+
schema = {
|
|
64
|
+
method: 'handle_oauth_callback',
|
|
65
|
+
description: 'Handle OAuth callback and exchange authorization code for access tokens.',
|
|
66
|
+
params: HandleOAuthCallbackSchema,
|
|
67
|
+
};
|
|
68
|
+
constructor(atpClient) {
|
|
69
|
+
super(atpClient, 'HandleOAuthCallback', ToolAuthMode.PUBLIC);
|
|
70
|
+
}
|
|
71
|
+
async execute(params) {
|
|
72
|
+
try {
|
|
73
|
+
this.logger.info('Handling OAuth callback', {
|
|
74
|
+
code: `${params.code.substring(0, 10)}...`,
|
|
75
|
+
state: `${params.state.substring(0, 8)}...`,
|
|
76
|
+
});
|
|
77
|
+
// Get OAuth configuration from ATP client
|
|
78
|
+
const config = this.atpClient.getAgent().service;
|
|
79
|
+
const oauthClient = new AtpOAuthClient({
|
|
80
|
+
service: config.toString(),
|
|
81
|
+
authMethod: 'oauth',
|
|
82
|
+
clientId: process.env['OAUTH_CLIENT_ID'],
|
|
83
|
+
clientSecret: process.env['OAUTH_CLIENT_SECRET'],
|
|
84
|
+
redirectUri: process.env['OAUTH_REDIRECT_URI'],
|
|
85
|
+
});
|
|
86
|
+
const session = await oauthClient.handleCallback(params.code, params.state);
|
|
87
|
+
this.logger.info('OAuth authentication successful', {
|
|
88
|
+
did: session.did,
|
|
89
|
+
handle: session.handle,
|
|
90
|
+
});
|
|
91
|
+
return {
|
|
92
|
+
success: true,
|
|
93
|
+
session: {
|
|
94
|
+
did: session.did,
|
|
95
|
+
handle: session.handle,
|
|
96
|
+
expiresAt: session.expiresAt.toISOString(),
|
|
97
|
+
},
|
|
98
|
+
message: 'OAuth authentication completed successfully. You can now use AT Protocol tools.',
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
this.logger.error('Failed to handle OAuth callback', error);
|
|
103
|
+
this.formatError(error);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
export class RefreshOAuthTokensTool extends BaseTool {
|
|
108
|
+
schema = {
|
|
109
|
+
method: 'refresh_oauth_tokens',
|
|
110
|
+
description: 'Refresh OAuth access tokens using a refresh token.',
|
|
111
|
+
params: RefreshOAuthTokensSchema,
|
|
112
|
+
};
|
|
113
|
+
constructor(atpClient) {
|
|
114
|
+
super(atpClient, 'RefreshOAuthTokens', ToolAuthMode.PUBLIC);
|
|
115
|
+
}
|
|
116
|
+
async execute(params) {
|
|
117
|
+
try {
|
|
118
|
+
this.logger.info('Refreshing OAuth tokens');
|
|
119
|
+
// Get OAuth configuration from ATP client
|
|
120
|
+
const config = this.atpClient.getAgent().service;
|
|
121
|
+
const oauthClient = new AtpOAuthClient({
|
|
122
|
+
service: config.toString(),
|
|
123
|
+
authMethod: 'oauth',
|
|
124
|
+
clientId: process.env['OAUTH_CLIENT_ID'],
|
|
125
|
+
clientSecret: process.env['OAUTH_CLIENT_SECRET'],
|
|
126
|
+
redirectUri: process.env['OAUTH_REDIRECT_URI'],
|
|
127
|
+
});
|
|
128
|
+
const session = await oauthClient.refreshTokens(params.refreshToken);
|
|
129
|
+
this.logger.info('OAuth tokens refreshed successfully', {
|
|
130
|
+
did: session.did,
|
|
131
|
+
handle: session.handle,
|
|
132
|
+
});
|
|
133
|
+
return {
|
|
134
|
+
success: true,
|
|
135
|
+
session: {
|
|
136
|
+
did: session.did,
|
|
137
|
+
handle: session.handle,
|
|
138
|
+
expiresAt: session.expiresAt.toISOString(),
|
|
139
|
+
},
|
|
140
|
+
message: 'OAuth tokens refreshed successfully.',
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
this.logger.error('Failed to refresh OAuth tokens', error);
|
|
145
|
+
this.formatError(error);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
export class RevokeOAuthTokensTool extends BaseTool {
|
|
150
|
+
schema = {
|
|
151
|
+
method: 'revoke_oauth_tokens',
|
|
152
|
+
description: 'Revoke OAuth access and refresh tokens to log out.',
|
|
153
|
+
params: RevokeOAuthTokensSchema,
|
|
154
|
+
};
|
|
155
|
+
constructor(atpClient) {
|
|
156
|
+
super(atpClient, 'RevokeOAuthTokens', ToolAuthMode.PUBLIC);
|
|
157
|
+
}
|
|
158
|
+
async execute(params) {
|
|
159
|
+
try {
|
|
160
|
+
this.logger.info('Revoking OAuth tokens');
|
|
161
|
+
// Get OAuth configuration from ATP client
|
|
162
|
+
const config = this.atpClient.getAgent().service;
|
|
163
|
+
const oauthClient = new AtpOAuthClient({
|
|
164
|
+
service: config.toString(),
|
|
165
|
+
authMethod: 'oauth',
|
|
166
|
+
clientId: process.env['OAUTH_CLIENT_ID'],
|
|
167
|
+
clientSecret: process.env['OAUTH_CLIENT_SECRET'],
|
|
168
|
+
redirectUri: process.env['OAUTH_REDIRECT_URI'],
|
|
169
|
+
});
|
|
170
|
+
await oauthClient.revokeTokens(params.accessToken, params.refreshToken);
|
|
171
|
+
this.logger.info('OAuth tokens revoked successfully');
|
|
172
|
+
return {
|
|
173
|
+
success: true,
|
|
174
|
+
message: 'OAuth tokens revoked successfully. You have been logged out.',
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
catch (error) {
|
|
178
|
+
this.logger.error('Failed to revoke OAuth tokens', error);
|
|
179
|
+
this.formatError(error);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=oauth-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth-tools.js","sourceRoot":"","sources":["../../../src/tools/implementations/oauth-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reply to Post Tool - Creates replies to existing posts on AT Protocol
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { BaseTool } from './base-tool.js';
|
|
6
|
+
import type { AtpClient } from '../../utils/atp-client.js';
|
|
7
|
+
import type { ATURI, CID, IReplyToPostParams } from '../../types/index.js';
|
|
8
|
+
/**
|
|
9
|
+
* Tool for replying to posts on AT Protocol
|
|
10
|
+
*/
|
|
11
|
+
export declare class ReplyToPostTool extends BaseTool {
|
|
12
|
+
readonly schema: {
|
|
13
|
+
method: string;
|
|
14
|
+
description: string;
|
|
15
|
+
params: z.ZodObject<{
|
|
16
|
+
text: z.ZodString;
|
|
17
|
+
root: z.ZodString;
|
|
18
|
+
parent: z.ZodString;
|
|
19
|
+
langs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
20
|
+
}, "strip", z.ZodTypeAny, {
|
|
21
|
+
text: string;
|
|
22
|
+
root: string;
|
|
23
|
+
parent: string;
|
|
24
|
+
langs?: string[] | undefined;
|
|
25
|
+
}, {
|
|
26
|
+
text: string;
|
|
27
|
+
root: string;
|
|
28
|
+
parent: string;
|
|
29
|
+
langs?: string[] | undefined;
|
|
30
|
+
}>;
|
|
31
|
+
};
|
|
32
|
+
constructor(atpClient: AtpClient);
|
|
33
|
+
protected execute(params: IReplyToPostParams): Promise<{
|
|
34
|
+
uri: ATURI;
|
|
35
|
+
cid: CID;
|
|
36
|
+
success: boolean;
|
|
37
|
+
message: string;
|
|
38
|
+
replyTo: {
|
|
39
|
+
root: ATURI;
|
|
40
|
+
parent: ATURI;
|
|
41
|
+
};
|
|
42
|
+
}>;
|
|
43
|
+
/**
|
|
44
|
+
* Get CID from AT Protocol URI by fetching the record
|
|
45
|
+
*/
|
|
46
|
+
private getCidFromUri;
|
|
47
|
+
/**
|
|
48
|
+
* Validate that the parent and root posts exist and are accessible
|
|
49
|
+
*/
|
|
50
|
+
private validatePostExists;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=reply-to-post-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reply-to-post-tool.d.ts","sourceRoot":"","sources":["../../../src/tools/implementations/reply-to-post-tool.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAe3E;;GAEG;AACH,qBAAa,eAAgB,SAAQ,QAAQ;IAC3C,SAAgB,MAAM;;;;;;;;;;;;;;;;;;;MAKpB;gBAEU,SAAS,EAAE,SAAS;cAIhB,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC;QAC3D,GAAG,EAAE,KAAK,CAAC;QACX,GAAG,EAAE,GAAG,CAAC;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE;YACP,IAAI,EAAE,KAAK,CAAC;YACZ,MAAM,EAAE,KAAK,CAAC;SACf,CAAC;KACH,CAAC;IA8EF;;OAEG;YACW,aAAa;IAgD3B;;OAEG;YACW,kBAAkB;CA6BjC"}
|