@beeper/desktop-mcp 0.1.5 → 4.2.1
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/README.md +10 -14
- package/docs-search-tool.d.mts +44 -0
- package/docs-search-tool.d.mts.map +1 -0
- package/docs-search-tool.d.ts +44 -0
- package/docs-search-tool.d.ts.map +1 -0
- package/docs-search-tool.js +43 -0
- package/docs-search-tool.js.map +1 -0
- package/docs-search-tool.mjs +39 -0
- package/docs-search-tool.mjs.map +1 -0
- package/handlers/get-accounts.d.mts +3 -0
- package/handlers/get-accounts.d.mts.map +1 -0
- package/handlers/get-accounts.d.ts +3 -0
- package/handlers/get-accounts.d.ts.map +1 -0
- package/handlers/get-accounts.js +32 -0
- package/handlers/get-accounts.js.map +1 -0
- package/handlers/get-accounts.mjs +28 -0
- package/handlers/get-accounts.mjs.map +1 -0
- package/handlers/get-chat.d.mts +3 -0
- package/handlers/get-chat.d.mts.map +1 -0
- package/handlers/get-chat.d.ts +3 -0
- package/handlers/get-chat.d.ts.map +1 -0
- package/handlers/get-chat.js +20 -0
- package/handlers/get-chat.js.map +1 -0
- package/handlers/get-chat.mjs +16 -0
- package/handlers/get-chat.mjs.map +1 -0
- package/handlers/index.d.mts +3 -0
- package/handlers/index.d.mts.map +1 -0
- package/handlers/index.d.ts +3 -0
- package/handlers/index.d.ts.map +1 -0
- package/handlers/index.js +30 -0
- package/handlers/index.js.map +1 -0
- package/handlers/index.mjs +27 -0
- package/handlers/index.mjs.map +1 -0
- package/handlers/list-chats.d.mts +3 -0
- package/handlers/list-chats.d.mts.map +1 -0
- package/handlers/list-chats.d.ts +3 -0
- package/handlers/list-chats.d.ts.map +1 -0
- package/handlers/list-chats.js +46 -0
- package/handlers/list-chats.js.map +1 -0
- package/handlers/list-chats.mjs +42 -0
- package/handlers/list-chats.mjs.map +1 -0
- package/handlers/list-messages.d.mts +3 -0
- package/handlers/list-messages.d.mts.map +1 -0
- package/handlers/list-messages.d.ts +3 -0
- package/handlers/list-messages.d.ts.map +1 -0
- package/handlers/list-messages.js +34 -0
- package/handlers/list-messages.js.map +1 -0
- package/handlers/list-messages.mjs +30 -0
- package/handlers/list-messages.mjs.map +1 -0
- package/handlers/open-app.d.mts +3 -0
- package/handlers/open-app.d.mts.map +1 -0
- package/handlers/open-app.d.ts +3 -0
- package/handlers/open-app.d.ts.map +1 -0
- package/handlers/open-app.js +26 -0
- package/handlers/open-app.js.map +1 -0
- package/handlers/open-app.mjs +22 -0
- package/handlers/open-app.mjs.map +1 -0
- package/handlers/search-chats.d.mts +3 -0
- package/handlers/search-chats.d.mts.map +1 -0
- package/handlers/search-chats.d.ts +3 -0
- package/handlers/search-chats.d.ts.map +1 -0
- package/handlers/search-chats.js +38 -0
- package/handlers/search-chats.js.map +1 -0
- package/handlers/search-chats.mjs +34 -0
- package/handlers/search-chats.mjs.map +1 -0
- package/handlers/search-messages.d.mts +3 -0
- package/handlers/search-messages.d.mts.map +1 -0
- package/handlers/search-messages.d.ts +3 -0
- package/handlers/search-messages.d.ts.map +1 -0
- package/handlers/search-messages.js +11 -0
- package/handlers/search-messages.js.map +1 -0
- package/handlers/search-messages.mjs +7 -0
- package/handlers/search-messages.mjs.map +1 -0
- package/handlers/search.d.mts +3 -0
- package/handlers/search.d.mts.map +1 -0
- package/handlers/search.d.ts +3 -0
- package/handlers/search.d.ts.map +1 -0
- package/handlers/search.js +29 -0
- package/handlers/search.js.map +1 -0
- package/handlers/search.mjs +25 -0
- package/handlers/search.mjs.map +1 -0
- package/handlers/send-message.d.mts +3 -0
- package/handlers/send-message.d.mts.map +1 -0
- package/handlers/send-message.d.ts +3 -0
- package/handlers/send-message.d.ts.map +1 -0
- package/handlers/send-message.js +20 -0
- package/handlers/send-message.js.map +1 -0
- package/handlers/send-message.mjs +16 -0
- package/handlers/send-message.mjs.map +1 -0
- package/handlers/utils.d.mts +29 -0
- package/handlers/utils.d.mts.map +1 -0
- package/handlers/utils.d.ts +29 -0
- package/handlers/utils.d.ts.map +1 -0
- package/handlers/utils.js +296 -0
- package/handlers/utils.js.map +1 -0
- package/handlers/utils.mjs +282 -0
- package/handlers/utils.mjs.map +1 -0
- package/http.d.mts +6 -0
- package/http.d.mts.map +1 -1
- package/http.d.ts +6 -0
- package/http.d.ts.map +1 -1
- package/http.js +7 -4
- package/http.js.map +1 -1
- package/http.mjs +3 -3
- package/http.mjs.map +1 -1
- package/options.d.mts +1 -0
- package/options.d.mts.map +1 -1
- package/options.d.ts +1 -0
- package/options.d.ts.map +1 -1
- package/options.js +13 -6
- package/options.js.map +1 -1
- package/options.mjs +13 -6
- package/options.mjs.map +1 -1
- package/package.json +23 -2
- package/server.d.mts.map +1 -1
- package/server.d.ts.map +1 -1
- package/server.js +8 -4
- package/server.js.map +1 -1
- package/server.mjs +8 -4
- package/server.mjs.map +1 -1
- package/src/docs-search-tool.ts +48 -0
- package/src/handlers/get-accounts.ts +28 -0
- package/src/handlers/get-chat.ts +18 -0
- package/src/handlers/index.ts +29 -0
- package/src/handlers/list-chats.ts +47 -0
- package/src/handlers/list-messages.ts +33 -0
- package/src/handlers/open-app.ts +20 -0
- package/src/handlers/search-chats.ts +39 -0
- package/src/handlers/search-messages.ts +8 -0
- package/src/handlers/search.ts +24 -0
- package/src/handlers/send-message.ts +17 -0
- package/src/handlers/utils.ts +381 -0
- package/src/http.ts +3 -3
- package/src/options.ts +17 -7
- package/src/server.ts +8 -5
- package/src/tools/accounts/get-accounts.ts +3 -3
- package/src/tools/chats/archive-chat.ts +6 -6
- package/src/tools/chats/get-chat.ts +6 -7
- package/src/tools/chats/reminders/clear-chat-reminder.ts +10 -8
- package/src/tools/chats/reminders/set-chat-reminder.ts +6 -5
- package/src/tools/chats/search-chats.ts +5 -5
- package/src/tools/index.ts +8 -5
- package/src/tools/messages/list-messages.ts +51 -0
- package/src/tools/messages/search-messages.ts +6 -7
- package/src/tools/messages/send-message.ts +5 -5
- package/src/tools/{app/open-in-app.ts → top-level/focus-app.ts} +6 -6
- package/src/tools/{app → top-level}/search.ts +3 -3
- package/tools/accounts/get-accounts.js +3 -3
- package/tools/accounts/get-accounts.js.map +1 -1
- package/tools/accounts/get-accounts.mjs +3 -3
- package/tools/accounts/get-accounts.mjs.map +1 -1
- package/tools/chats/archive-chat.d.mts.map +1 -1
- package/tools/chats/archive-chat.d.ts.map +1 -1
- package/tools/chats/archive-chat.js +6 -5
- package/tools/chats/archive-chat.js.map +1 -1
- package/tools/chats/archive-chat.mjs +6 -5
- package/tools/chats/archive-chat.mjs.map +1 -1
- package/tools/chats/get-chat.d.mts.map +1 -1
- package/tools/chats/get-chat.d.ts.map +1 -1
- package/tools/chats/get-chat.js +6 -6
- package/tools/chats/get-chat.js.map +1 -1
- package/tools/chats/get-chat.mjs +6 -6
- package/tools/chats/get-chat.mjs.map +1 -1
- package/tools/chats/reminders/clear-chat-reminder.d.mts.map +1 -1
- package/tools/chats/reminders/clear-chat-reminder.d.ts.map +1 -1
- package/tools/chats/reminders/clear-chat-reminder.js +10 -7
- package/tools/chats/reminders/clear-chat-reminder.js.map +1 -1
- package/tools/chats/reminders/clear-chat-reminder.mjs +10 -7
- package/tools/chats/reminders/clear-chat-reminder.mjs.map +1 -1
- package/tools/chats/reminders/set-chat-reminder.d.mts.map +1 -1
- package/tools/chats/reminders/set-chat-reminder.d.ts.map +1 -1
- package/tools/chats/reminders/set-chat-reminder.js +6 -5
- package/tools/chats/reminders/set-chat-reminder.js.map +1 -1
- package/tools/chats/reminders/set-chat-reminder.mjs +6 -5
- package/tools/chats/reminders/set-chat-reminder.mjs.map +1 -1
- package/tools/chats/search-chats.js +5 -5
- package/tools/chats/search-chats.js.map +1 -1
- package/tools/chats/search-chats.mjs +5 -5
- package/tools/chats/search-chats.mjs.map +1 -1
- package/tools/index.d.mts.map +1 -1
- package/tools/index.d.ts.map +1 -1
- package/tools/index.js +8 -5
- package/tools/index.js.map +1 -1
- package/tools/index.mjs +8 -5
- package/tools/index.mjs.map +1 -1
- package/tools/messages/list-messages.d.mts +45 -0
- package/tools/messages/list-messages.d.mts.map +1 -0
- package/tools/messages/list-messages.d.ts +45 -0
- package/tools/messages/list-messages.d.ts.map +1 -0
- package/tools/messages/list-messages.js +47 -0
- package/tools/messages/list-messages.js.map +1 -0
- package/tools/messages/list-messages.mjs +43 -0
- package/tools/messages/list-messages.mjs.map +1 -0
- package/tools/messages/search-messages.d.mts.map +1 -1
- package/tools/messages/search-messages.d.ts.map +1 -1
- package/tools/messages/search-messages.js +6 -6
- package/tools/messages/search-messages.js.map +1 -1
- package/tools/messages/search-messages.mjs +6 -6
- package/tools/messages/search-messages.mjs.map +1 -1
- package/tools/messages/send-message.js +5 -5
- package/tools/messages/send-message.js.map +1 -1
- package/tools/messages/send-message.mjs +5 -5
- package/tools/messages/send-message.mjs.map +1 -1
- package/tools/{app/open-in-app.d.ts → top-level/focus-app.d.mts} +1 -1
- package/tools/top-level/focus-app.d.mts.map +1 -0
- package/tools/{app/open-in-app.d.mts → top-level/focus-app.d.ts} +1 -1
- package/tools/top-level/focus-app.d.ts.map +1 -0
- package/tools/{app/open-in-app.js → top-level/focus-app.js} +7 -7
- package/tools/top-level/focus-app.js.map +1 -0
- package/tools/{app/open-in-app.mjs → top-level/focus-app.mjs} +7 -7
- package/tools/top-level/focus-app.mjs.map +1 -0
- package/tools/top-level/search.d.mts.map +1 -0
- package/tools/top-level/search.d.ts.map +1 -0
- package/tools/{app → top-level}/search.js +3 -3
- package/tools/top-level/search.js.map +1 -0
- package/tools/{app → top-level}/search.mjs +3 -3
- package/tools/top-level/search.mjs.map +1 -0
- package/tools/app/open-in-app.d.mts.map +0 -1
- package/tools/app/open-in-app.d.ts.map +0 -1
- package/tools/app/open-in-app.js.map +0 -1
- package/tools/app/open-in-app.mjs.map +0 -1
- package/tools/app/search.d.mts.map +0 -1
- package/tools/app/search.d.ts.map +0 -1
- package/tools/app/search.js.map +0 -1
- package/tools/app/search.mjs.map +0 -1
- /package/tools/{app → top-level}/search.d.mts +0 -0
- /package/tools/{app → top-level}/search.d.ts +0 -0
package/README.md
CHANGED
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
# Beeper Desktop API MCP Server
|
|
2
2
|
|
|
3
|
-
>
|
|
4
|
-
>
|
|
5
|
-
> This project is work in progress and should not be used.
|
|
6
|
-
> Please use the built-in MCP server Beeper Desktop comes with for now.
|
|
7
|
-
>
|
|
8
|
-
> We plan to migrate the built-in server to this package soon.
|
|
9
|
-
>
|
|
3
|
+
> Beeper Desktop already comes with this MCP server, use this package directly for custom integrations.
|
|
4
|
+
>
|
|
10
5
|
> [Learn more about the built-in Beeper Desktop MCP server here.](https://developers.beeper.com/desktop-api/mcp/)
|
|
11
6
|
|
|
12
7
|
## Installation
|
|
@@ -180,7 +175,7 @@ http://localhost:3000?client=cursor&capability=tool-name-length%3D40
|
|
|
180
175
|
import { server, endpoints, init } from "@beeper/desktop-mcp/server";
|
|
181
176
|
|
|
182
177
|
// import a specific tool
|
|
183
|
-
import
|
|
178
|
+
import focusApp from "@beeper/desktop-mcp/tools/top-level/focus-app";
|
|
184
179
|
|
|
185
180
|
// initialize the server and all endpoints
|
|
186
181
|
init({ server, endpoints });
|
|
@@ -205,21 +200,21 @@ const myCustomEndpoint = {
|
|
|
205
200
|
};
|
|
206
201
|
|
|
207
202
|
// initialize the server with your custom endpoints
|
|
208
|
-
init({ server: myServer, endpoints: [
|
|
203
|
+
init({ server: myServer, endpoints: [focusApp, myCustomEndpoint] });
|
|
209
204
|
```
|
|
210
205
|
|
|
211
206
|
## Available Tools
|
|
212
207
|
|
|
213
208
|
The following tools are available in this MCP server.
|
|
214
209
|
|
|
215
|
-
### Resource
|
|
210
|
+
### Resource `$client`:
|
|
216
211
|
|
|
217
|
-
- `
|
|
212
|
+
- `focus_app` (`write`) tags: [app]: Focus Beeper Desktop and optionally navigate to a specific chat, message, or pre-fill draft text and attachment.
|
|
213
|
+
- `search` (`read`) tags: [app]: Search for chats, participant name matches in groups, and the first page of messages in one call. Use this when the user asks for a specific chat, group, or person.
|
|
218
214
|
|
|
219
|
-
### Resource `
|
|
215
|
+
### Resource `accounts`:
|
|
220
216
|
|
|
221
|
-
- `
|
|
222
|
-
- `search` (`read`) tags: [app]: Search for chats, participant name matches in groups, and the first page of messages in one call. Use this when the user asks for a specific chat, group, or person.
|
|
217
|
+
- `get_accounts` (`read`) tags: [accounts]: List connected accounts on this device.
|
|
223
218
|
|
|
224
219
|
### Resource `chats`:
|
|
225
220
|
|
|
@@ -234,6 +229,7 @@ The following tools are available in this MCP server.
|
|
|
234
229
|
|
|
235
230
|
### Resource `messages`:
|
|
236
231
|
|
|
232
|
+
- `list_messages` (`read`) tags: [messages]: List messages from a specific chat with pagination support.
|
|
237
233
|
- `search_messages` (`read`) tags: [messages]: Search messages across chats using Beeper's message index.
|
|
238
234
|
- When to use: find messages by text and/or filters (chatIDs, accountIDs, chatType, media type filters, sender, date ranges).
|
|
239
235
|
- CRITICAL: Query is LITERAL WORD MATCHING, NOT semantic search! Only finds messages containing these EXACT words.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Metadata } from "./tools/types.mjs";
|
|
2
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
export declare const metadata: Metadata;
|
|
4
|
+
export declare const tool: Tool;
|
|
5
|
+
export declare const handler: (_: unknown, args: Record<string, unknown> | undefined) => Promise<import("./tools/types").ToolCallResult>;
|
|
6
|
+
declare const _default: {
|
|
7
|
+
metadata: Metadata;
|
|
8
|
+
tool: {
|
|
9
|
+
[x: string]: unknown;
|
|
10
|
+
name: string;
|
|
11
|
+
inputSchema: {
|
|
12
|
+
[x: string]: unknown;
|
|
13
|
+
type: "object";
|
|
14
|
+
properties?: {
|
|
15
|
+
[x: string]: unknown;
|
|
16
|
+
} | undefined;
|
|
17
|
+
required?: string[] | undefined;
|
|
18
|
+
};
|
|
19
|
+
title?: string | undefined;
|
|
20
|
+
description?: string | undefined;
|
|
21
|
+
outputSchema?: {
|
|
22
|
+
[x: string]: unknown;
|
|
23
|
+
type: "object";
|
|
24
|
+
properties?: {
|
|
25
|
+
[x: string]: unknown;
|
|
26
|
+
} | undefined;
|
|
27
|
+
required?: string[] | undefined;
|
|
28
|
+
} | undefined;
|
|
29
|
+
annotations?: {
|
|
30
|
+
[x: string]: unknown;
|
|
31
|
+
title?: string | undefined;
|
|
32
|
+
readOnlyHint?: boolean | undefined;
|
|
33
|
+
destructiveHint?: boolean | undefined;
|
|
34
|
+
idempotentHint?: boolean | undefined;
|
|
35
|
+
openWorldHint?: boolean | undefined;
|
|
36
|
+
} | undefined;
|
|
37
|
+
_meta?: {
|
|
38
|
+
[x: string]: unknown;
|
|
39
|
+
} | undefined;
|
|
40
|
+
};
|
|
41
|
+
handler: (_: unknown, args: Record<string, unknown> | undefined) => Promise<import("./tools/types").ToolCallResult>;
|
|
42
|
+
};
|
|
43
|
+
export default _default;
|
|
44
|
+
//# sourceMappingURL=docs-search-tool.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs-search-tool.d.mts","sourceRoot":"","sources":["src/docs-search-tool.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,EAAuB;OAEjC,EAAE,IAAI,EAAE,MAAM,oCAAoC;AAEzD,eAAO,MAAM,QAAQ,EAAE,QAKtB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,IAsBlB,CAAC;AAKF,eAAO,MAAM,OAAO,GAAU,GAAG,OAAO,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,oDAKlF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAL+B,OAAO,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;AAOnF,wBAA2C"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Metadata } from "./tools/types.js";
|
|
2
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
export declare const metadata: Metadata;
|
|
4
|
+
export declare const tool: Tool;
|
|
5
|
+
export declare const handler: (_: unknown, args: Record<string, unknown> | undefined) => Promise<import("./tools/types").ToolCallResult>;
|
|
6
|
+
declare const _default: {
|
|
7
|
+
metadata: Metadata;
|
|
8
|
+
tool: {
|
|
9
|
+
[x: string]: unknown;
|
|
10
|
+
name: string;
|
|
11
|
+
inputSchema: {
|
|
12
|
+
[x: string]: unknown;
|
|
13
|
+
type: "object";
|
|
14
|
+
properties?: {
|
|
15
|
+
[x: string]: unknown;
|
|
16
|
+
} | undefined;
|
|
17
|
+
required?: string[] | undefined;
|
|
18
|
+
};
|
|
19
|
+
title?: string | undefined;
|
|
20
|
+
description?: string | undefined;
|
|
21
|
+
outputSchema?: {
|
|
22
|
+
[x: string]: unknown;
|
|
23
|
+
type: "object";
|
|
24
|
+
properties?: {
|
|
25
|
+
[x: string]: unknown;
|
|
26
|
+
} | undefined;
|
|
27
|
+
required?: string[] | undefined;
|
|
28
|
+
} | undefined;
|
|
29
|
+
annotations?: {
|
|
30
|
+
[x: string]: unknown;
|
|
31
|
+
title?: string | undefined;
|
|
32
|
+
readOnlyHint?: boolean | undefined;
|
|
33
|
+
destructiveHint?: boolean | undefined;
|
|
34
|
+
idempotentHint?: boolean | undefined;
|
|
35
|
+
openWorldHint?: boolean | undefined;
|
|
36
|
+
} | undefined;
|
|
37
|
+
_meta?: {
|
|
38
|
+
[x: string]: unknown;
|
|
39
|
+
} | undefined;
|
|
40
|
+
};
|
|
41
|
+
handler: (_: unknown, args: Record<string, unknown> | undefined) => Promise<import("./tools/types").ToolCallResult>;
|
|
42
|
+
};
|
|
43
|
+
export default _default;
|
|
44
|
+
//# sourceMappingURL=docs-search-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs-search-tool.d.ts","sourceRoot":"","sources":["src/docs-search-tool.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,EAAuB;OAEjC,EAAE,IAAI,EAAE,MAAM,oCAAoC;AAEzD,eAAO,MAAM,QAAQ,EAAE,QAKtB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,IAsBlB,CAAC;AAKF,eAAO,MAAM,OAAO,GAAU,GAAG,OAAO,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,oDAKlF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAL+B,OAAO,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;AAOnF,wBAA2C"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.handler = exports.tool = exports.metadata = void 0;
|
|
5
|
+
const types_1 = require("./tools/types.js");
|
|
6
|
+
exports.metadata = {
|
|
7
|
+
resource: 'all',
|
|
8
|
+
operation: 'read',
|
|
9
|
+
tags: [],
|
|
10
|
+
httpMethod: 'get',
|
|
11
|
+
};
|
|
12
|
+
exports.tool = {
|
|
13
|
+
name: 'search_docs',
|
|
14
|
+
description: 'Search for documentation for how to use the client to interact with the API.\nThe tool will return an array of Markdown-formatted documentation pages.',
|
|
15
|
+
inputSchema: {
|
|
16
|
+
type: 'object',
|
|
17
|
+
properties: {
|
|
18
|
+
query: {
|
|
19
|
+
type: 'string',
|
|
20
|
+
description: 'The query to search for.',
|
|
21
|
+
},
|
|
22
|
+
language: {
|
|
23
|
+
type: 'string',
|
|
24
|
+
description: 'The language for the SDK to search for.',
|
|
25
|
+
enum: ['http', 'python', 'go', 'typescript', 'terraform', 'ruby', 'java', 'kotlin'],
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
required: ['query', 'language'],
|
|
29
|
+
},
|
|
30
|
+
annotations: {
|
|
31
|
+
readOnlyHint: true,
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
const docsSearchURL = process.env['DOCS_SEARCH_URL'] || 'https://api.stainless.com/api/projects/beeper-desktop-api/docs/search';
|
|
35
|
+
const handler = async (_, args) => {
|
|
36
|
+
const body = args;
|
|
37
|
+
const query = new URLSearchParams(body).toString();
|
|
38
|
+
const result = await fetch(`${docsSearchURL}?${query}`);
|
|
39
|
+
return (0, types_1.asTextContentResult)(await result.json());
|
|
40
|
+
};
|
|
41
|
+
exports.handler = handler;
|
|
42
|
+
exports.default = { metadata: exports.metadata, tool: exports.tool, handler: exports.handler };
|
|
43
|
+
//# sourceMappingURL=docs-search-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs-search-tool.js","sourceRoot":"","sources":["src/docs-search-tool.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,4CAA8D;AAIjD,QAAA,QAAQ,GAAa;IAChC,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,MAAM;IACjB,IAAI,EAAE,EAAE;IACR,UAAU,EAAE,KAAK;CAClB,CAAC;AAEW,QAAA,IAAI,GAAS;IACxB,IAAI,EAAE,aAAa;IACnB,WAAW,EACT,wJAAwJ;IAC1J,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,0BAA0B;aACxC;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yCAAyC;gBACtD,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;aACpF;SACF;QACD,QAAQ,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;KAChC;IACD,WAAW,EAAE;QACX,YAAY,EAAE,IAAI;KACnB;CACF,CAAC;AAEF,MAAM,aAAa,GACjB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,uEAAuE,CAAC;AAErG,MAAM,OAAO,GAAG,KAAK,EAAE,CAAU,EAAE,IAAyC,EAAE,EAAE;IACrF,MAAM,IAAI,GAAG,IAAW,CAAC;IACzB,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;IACnD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,aAAa,IAAI,KAAK,EAAE,CAAC,CAAC;IACxD,OAAO,IAAA,2BAAmB,EAAC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AAClD,CAAC,CAAC;AALW,QAAA,OAAO,WAKlB;AAEF,kBAAe,EAAE,QAAQ,EAAR,gBAAQ,EAAE,IAAI,EAAJ,YAAI,EAAE,OAAO,EAAP,eAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
import { asTextContentResult } from "./tools/types.mjs";
|
|
3
|
+
export const metadata = {
|
|
4
|
+
resource: 'all',
|
|
5
|
+
operation: 'read',
|
|
6
|
+
tags: [],
|
|
7
|
+
httpMethod: 'get',
|
|
8
|
+
};
|
|
9
|
+
export const tool = {
|
|
10
|
+
name: 'search_docs',
|
|
11
|
+
description: 'Search for documentation for how to use the client to interact with the API.\nThe tool will return an array of Markdown-formatted documentation pages.',
|
|
12
|
+
inputSchema: {
|
|
13
|
+
type: 'object',
|
|
14
|
+
properties: {
|
|
15
|
+
query: {
|
|
16
|
+
type: 'string',
|
|
17
|
+
description: 'The query to search for.',
|
|
18
|
+
},
|
|
19
|
+
language: {
|
|
20
|
+
type: 'string',
|
|
21
|
+
description: 'The language for the SDK to search for.',
|
|
22
|
+
enum: ['http', 'python', 'go', 'typescript', 'terraform', 'ruby', 'java', 'kotlin'],
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
required: ['query', 'language'],
|
|
26
|
+
},
|
|
27
|
+
annotations: {
|
|
28
|
+
readOnlyHint: true,
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
const docsSearchURL = process.env['DOCS_SEARCH_URL'] || 'https://api.stainless.com/api/projects/beeper-desktop-api/docs/search';
|
|
32
|
+
export const handler = async (_, args) => {
|
|
33
|
+
const body = args;
|
|
34
|
+
const query = new URLSearchParams(body).toString();
|
|
35
|
+
const result = await fetch(`${docsSearchURL}?${query}`);
|
|
36
|
+
return asTextContentResult(await result.json());
|
|
37
|
+
};
|
|
38
|
+
export default { metadata, tool, handler };
|
|
39
|
+
//# sourceMappingURL=docs-search-tool.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs-search-tool.mjs","sourceRoot":"","sources":["src/docs-search-tool.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EAAY,mBAAmB,EAAE;AAIxC,MAAM,CAAC,MAAM,QAAQ,GAAa;IAChC,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,MAAM;IACjB,IAAI,EAAE,EAAE;IACR,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAS;IACxB,IAAI,EAAE,aAAa;IACnB,WAAW,EACT,wJAAwJ;IAC1J,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,0BAA0B;aACxC;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yCAAyC;gBACtD,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;aACpF;SACF;QACD,QAAQ,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;KAChC;IACD,WAAW,EAAE;QACX,YAAY,EAAE,IAAI;KACnB;CACF,CAAC;AAEF,MAAM,aAAa,GACjB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,uEAAuE,CAAC;AAE5G,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAAE,CAAU,EAAE,IAAyC,EAAE,EAAE;IACrF,MAAM,IAAI,GAAG,IAAW,CAAC;IACzB,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;IACnD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,aAAa,IAAI,KAAK,EAAE,CAAC,CAAC;IACxD,OAAO,mBAAmB,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-accounts.d.mts","sourceRoot":"","sources":["../src/handlers/get-accounts.ts"],"names":[],"mappings":"OAAO,KAAK,EAAE,eAAe,EAAE;AAG/B,eAAO,MAAM,OAAO,EAAE,eAwBrB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-accounts.d.ts","sourceRoot":"","sources":["../src/handlers/get-accounts.ts"],"names":[],"mappings":"OAAO,KAAK,EAAE,eAAe,EAAE;AAG/B,eAAO,MAAM,OAAO,EAAE,eAwBrB,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handler = void 0;
|
|
4
|
+
const utils_1 = require("./utils.js");
|
|
5
|
+
const handler = async (client) => {
|
|
6
|
+
const accounts = await client.accounts.list();
|
|
7
|
+
if (!accounts || accounts.length === 0)
|
|
8
|
+
throw new Error('No accounts found. This should never happen, please contact help@beeper.com.');
|
|
9
|
+
const lines = [];
|
|
10
|
+
lines.push('# Accounts');
|
|
11
|
+
for (const acc of accounts) {
|
|
12
|
+
if (!acc.user) {
|
|
13
|
+
lines.push(`\n## ${acc.network}`);
|
|
14
|
+
lines.push(`**Account ID**: \`${acc.accountID}\``);
|
|
15
|
+
lines.push('**User**: Unknown');
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
18
|
+
const name = acc.user.fullName || acc.user.username || acc.user.id;
|
|
19
|
+
lines.push(`\n## ${acc.network}`);
|
|
20
|
+
lines.push(`**Account ID**: \`${acc.accountID}\``);
|
|
21
|
+
lines.push(`**User**: ${name}`);
|
|
22
|
+
if (acc.user.email)
|
|
23
|
+
lines.push(`**Email**: ${acc.user.email}`);
|
|
24
|
+
if (acc.user.phoneNumber)
|
|
25
|
+
lines.push(`**Phone**: ${acc.user.phoneNumber}`);
|
|
26
|
+
}
|
|
27
|
+
lines.push('\n# Using this information\n');
|
|
28
|
+
lines.push('- Pass accountIDs to narrow chat/message queries when known.');
|
|
29
|
+
return (0, utils_1.asMarkdownContentResult)(lines);
|
|
30
|
+
};
|
|
31
|
+
exports.handler = handler;
|
|
32
|
+
//# sourceMappingURL=get-accounts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-accounts.js","sourceRoot":"","sources":["../src/handlers/get-accounts.ts"],"names":[],"mappings":";;;AACA,sCAAkD;AAE3C,MAAM,OAAO,GAAoB,KAAK,EAAE,MAAM,EAAE,EAAE;IACvD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC9C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;IAClG,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,qBAAqB,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC;YACnD,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAChC,SAAS;QACX,CAAC;QAED,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACnE,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,qBAAqB,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;QAChC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC/D,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW;YAAE,KAAK,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;IAC3E,OAAO,IAAA,+BAAuB,EAAC,KAAK,CAAC,CAAC;AACxC,CAAC,CAAC;AAxBW,QAAA,OAAO,WAwBlB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { asMarkdownContentResult } from "./utils.mjs";
|
|
2
|
+
export const handler = async (client) => {
|
|
3
|
+
const accounts = await client.accounts.list();
|
|
4
|
+
if (!accounts || accounts.length === 0)
|
|
5
|
+
throw new Error('No accounts found. This should never happen, please contact help@beeper.com.');
|
|
6
|
+
const lines = [];
|
|
7
|
+
lines.push('# Accounts');
|
|
8
|
+
for (const acc of accounts) {
|
|
9
|
+
if (!acc.user) {
|
|
10
|
+
lines.push(`\n## ${acc.network}`);
|
|
11
|
+
lines.push(`**Account ID**: \`${acc.accountID}\``);
|
|
12
|
+
lines.push('**User**: Unknown');
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
15
|
+
const name = acc.user.fullName || acc.user.username || acc.user.id;
|
|
16
|
+
lines.push(`\n## ${acc.network}`);
|
|
17
|
+
lines.push(`**Account ID**: \`${acc.accountID}\``);
|
|
18
|
+
lines.push(`**User**: ${name}`);
|
|
19
|
+
if (acc.user.email)
|
|
20
|
+
lines.push(`**Email**: ${acc.user.email}`);
|
|
21
|
+
if (acc.user.phoneNumber)
|
|
22
|
+
lines.push(`**Phone**: ${acc.user.phoneNumber}`);
|
|
23
|
+
}
|
|
24
|
+
lines.push('\n# Using this information\n');
|
|
25
|
+
lines.push('- Pass accountIDs to narrow chat/message queries when known.');
|
|
26
|
+
return asMarkdownContentResult(lines);
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=get-accounts.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-accounts.mjs","sourceRoot":"","sources":["../src/handlers/get-accounts.ts"],"names":[],"mappings":"OACO,EAAE,uBAAuB,EAAE;AAElC,MAAM,CAAC,MAAM,OAAO,GAAoB,KAAK,EAAE,MAAM,EAAE,EAAE;IACvD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC9C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;IAClG,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,qBAAqB,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC;YACnD,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAChC,SAAS;QACX,CAAC;QAED,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACnE,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,qBAAqB,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;QAChC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC/D,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW;YAAE,KAAK,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;IAC3E,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-chat.d.mts","sourceRoot":"","sources":["../src/handlers/get-chat.ts"],"names":[],"mappings":"OAAO,KAAK,EAAE,eAAe,EAAE;AAG/B,eAAO,MAAM,OAAO,EAAE,eAcrB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-chat.d.ts","sourceRoot":"","sources":["../src/handlers/get-chat.ts"],"names":[],"mappings":"OAAO,KAAK,EAAE,eAAe,EAAE;AAG/B,eAAO,MAAM,OAAO,EAAE,eAcrB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handler = void 0;
|
|
4
|
+
const utils_1 = require("./utils.js");
|
|
5
|
+
const handler = async (client, args) => {
|
|
6
|
+
const { chatID, ...queryParams } = args;
|
|
7
|
+
const chat = await client.chats.retrieve(chatID, queryParams);
|
|
8
|
+
const lines = [];
|
|
9
|
+
if (!chat) {
|
|
10
|
+
lines.push('Chat not found.');
|
|
11
|
+
return (0, utils_1.asMarkdownContentResult)(lines);
|
|
12
|
+
}
|
|
13
|
+
lines.push((0, utils_1.formatChatToMarkdown)(chat, undefined));
|
|
14
|
+
lines.push('\n# Using this information\n');
|
|
15
|
+
lines.push('- Use search_messages to find specific content in this chat.');
|
|
16
|
+
lines.push('- Link the "open" link to the user to allow them to view the chat in Beeper Desktop.');
|
|
17
|
+
return (0, utils_1.asMarkdownContentResult)(lines);
|
|
18
|
+
};
|
|
19
|
+
exports.handler = handler;
|
|
20
|
+
//# sourceMappingURL=get-chat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-chat.js","sourceRoot":"","sources":["../src/handlers/get-chat.ts"],"names":[],"mappings":";;;AACA,sCAAwE;AAEjE,MAAM,OAAO,GAAoB,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;IAC7D,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,GAAG,IAAW,CAAC;IAC/C,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAE9D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,OAAO,IAAA,+BAAuB,EAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,IAAA,4BAAoB,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAClD,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;IAC3E,KAAK,CAAC,IAAI,CAAC,sFAAsF,CAAC,CAAC;IACnG,OAAO,IAAA,+BAAuB,EAAC,KAAK,CAAC,CAAC;AACxC,CAAC,CAAC;AAdW,QAAA,OAAO,WAclB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { asMarkdownContentResult, formatChatToMarkdown } from "./utils.mjs";
|
|
2
|
+
export const handler = async (client, args) => {
|
|
3
|
+
const { chatID, ...queryParams } = args;
|
|
4
|
+
const chat = await client.chats.retrieve(chatID, queryParams);
|
|
5
|
+
const lines = [];
|
|
6
|
+
if (!chat) {
|
|
7
|
+
lines.push('Chat not found.');
|
|
8
|
+
return asMarkdownContentResult(lines);
|
|
9
|
+
}
|
|
10
|
+
lines.push(formatChatToMarkdown(chat, undefined));
|
|
11
|
+
lines.push('\n# Using this information\n');
|
|
12
|
+
lines.push('- Use search_messages to find specific content in this chat.');
|
|
13
|
+
lines.push('- Link the "open" link to the user to allow them to view the chat in Beeper Desktop.');
|
|
14
|
+
return asMarkdownContentResult(lines);
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=get-chat.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-chat.mjs","sourceRoot":"","sources":["../src/handlers/get-chat.ts"],"names":[],"mappings":"OACO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE;AAExD,MAAM,CAAC,MAAM,OAAO,GAAoB,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;IAC7D,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,GAAG,IAAW,CAAC;IAC/C,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAE9D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAClD,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;IAC3E,KAAK,CAAC,IAAI,CAAC,sFAAsF,CAAC,CAAC;IACnG,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/handlers/index.ts"],"names":[],"mappings":"OAAO,KAAK,EAAE,QAAQ,EAAmB;AAqBzC,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAOxD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/handlers/index.ts"],"names":[],"mappings":"OAAO,KAAK,EAAE,QAAQ,EAAmB;AAqBzC,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAOxD"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mapEndpoint = mapEndpoint;
|
|
4
|
+
const get_accounts_1 = require("./get-accounts.js");
|
|
5
|
+
const open_app_1 = require("./open-app.js");
|
|
6
|
+
const search_1 = require("./search.js");
|
|
7
|
+
const get_chat_1 = require("./get-chat.js");
|
|
8
|
+
const search_chats_1 = require("./search-chats.js");
|
|
9
|
+
const search_messages_1 = require("./search-messages.js");
|
|
10
|
+
const send_message_1 = require("./send-message.js");
|
|
11
|
+
const HANDLER_OVERRIDES = {
|
|
12
|
+
get_accounts: get_accounts_1.handler,
|
|
13
|
+
open_in_app: open_app_1.handler,
|
|
14
|
+
focus_app: open_app_1.handler,
|
|
15
|
+
search: search_1.handler,
|
|
16
|
+
get_chat: get_chat_1.handler,
|
|
17
|
+
search_chats: search_chats_1.handler,
|
|
18
|
+
search_messages: search_messages_1.handler,
|
|
19
|
+
send_message: send_message_1.handler,
|
|
20
|
+
};
|
|
21
|
+
function mapEndpoint(endpoint) {
|
|
22
|
+
const handler = HANDLER_OVERRIDES[endpoint.tool.name];
|
|
23
|
+
if (!handler)
|
|
24
|
+
return endpoint;
|
|
25
|
+
return {
|
|
26
|
+
...endpoint,
|
|
27
|
+
handler,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/handlers/index.ts"],"names":[],"mappings":";;AAqBA,kCAOC;AA1BD,oDAAyD;AACzD,4CAAoD;AACpD,wCAA6C;AAC7C,4CAAiD;AACjD,oDAAyD;AACzD,0DAA+D;AAC/D,oDAAyD;AAEzD,MAAM,iBAAiB,GAAoC;IACzD,YAAY,EAAZ,sBAAY;IACZ,WAAW,EAAX,kBAAW;IACX,SAAS,EAAE,kBAAW;IACtB,MAAM,EAAN,gBAAM;IACN,QAAQ,EAAR,kBAAQ;IACR,YAAY,EAAZ,sBAAY;IACZ,eAAe,EAAf,yBAAe;IACf,YAAY,EAAZ,sBAAY;CACb,CAAC;AAEF,SAAgB,WAAW,CAAC,QAAkB;IAC5C,MAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,CAAC,OAAO;QAAE,OAAO,QAAQ,CAAC;IAC9B,OAAO;QACL,GAAG,QAAQ;QACX,OAAO;KACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { handler as get_accounts } from "./get-accounts.mjs";
|
|
2
|
+
import { handler as open_in_app } from "./open-app.mjs";
|
|
3
|
+
import { handler as search } from "./search.mjs";
|
|
4
|
+
import { handler as get_chat } from "./get-chat.mjs";
|
|
5
|
+
import { handler as search_chats } from "./search-chats.mjs";
|
|
6
|
+
import { handler as search_messages } from "./search-messages.mjs";
|
|
7
|
+
import { handler as send_message } from "./send-message.mjs";
|
|
8
|
+
const HANDLER_OVERRIDES = {
|
|
9
|
+
get_accounts,
|
|
10
|
+
open_in_app,
|
|
11
|
+
focus_app: open_in_app,
|
|
12
|
+
search,
|
|
13
|
+
get_chat,
|
|
14
|
+
search_chats,
|
|
15
|
+
search_messages,
|
|
16
|
+
send_message,
|
|
17
|
+
};
|
|
18
|
+
export function mapEndpoint(endpoint) {
|
|
19
|
+
const handler = HANDLER_OVERRIDES[endpoint.tool.name];
|
|
20
|
+
if (!handler)
|
|
21
|
+
return endpoint;
|
|
22
|
+
return {
|
|
23
|
+
...endpoint,
|
|
24
|
+
handler,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/handlers/index.ts"],"names":[],"mappings":"OAEO,EAAE,OAAO,IAAI,YAAY,EAAE;OAC3B,EAAE,OAAO,IAAI,WAAW,EAAE;OAC1B,EAAE,OAAO,IAAI,MAAM,EAAE;OACrB,EAAE,OAAO,IAAI,QAAQ,EAAE;OACvB,EAAE,OAAO,IAAI,YAAY,EAAE;OAC3B,EAAE,OAAO,IAAI,eAAe,EAAE;OAC9B,EAAE,OAAO,IAAI,YAAY,EAAE;AAElC,MAAM,iBAAiB,GAAoC;IACzD,YAAY;IACZ,WAAW;IACX,SAAS,EAAE,WAAW;IACtB,MAAM;IACN,QAAQ;IACR,YAAY;IACZ,eAAe;IACf,YAAY;CACb,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,QAAkB;IAC5C,MAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,CAAC,OAAO;QAAE,OAAO,QAAQ,CAAC;IAC9B,OAAO;QACL,GAAG,QAAQ;QACX,OAAO;KACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-chats.d.mts","sourceRoot":"","sources":["../src/handlers/list-chats.ts"],"names":[],"mappings":"OAAO,KAAK,EAAE,eAAe,EAAE;AAG/B,eAAO,MAAM,OAAO,EAAE,eA2CrB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-chats.d.ts","sourceRoot":"","sources":["../src/handlers/list-chats.ts"],"names":[],"mappings":"OAAO,KAAK,EAAE,eAAe,EAAE;AAG/B,eAAO,MAAM,OAAO,EAAE,eA2CrB,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handler = void 0;
|
|
4
|
+
const utils_1 = require("./utils.js");
|
|
5
|
+
const handler = async (client, args) => {
|
|
6
|
+
const body = args;
|
|
7
|
+
const output = await client.chats.search(body);
|
|
8
|
+
const lines = [];
|
|
9
|
+
lines.push('# Chats');
|
|
10
|
+
const items = output.items || [];
|
|
11
|
+
const hasMore = !!output.hasMore;
|
|
12
|
+
if (hasMore) {
|
|
13
|
+
lines.push(`\nShowing ${items.length} chats (more available)`);
|
|
14
|
+
if (output.oldestCursor) {
|
|
15
|
+
lines.push(`Next page (older): cursor='${output.oldestCursor}', direction='before'`);
|
|
16
|
+
}
|
|
17
|
+
if (output.newestCursor) {
|
|
18
|
+
lines.push(`Previous page (newer): cursor='${output.newestCursor}', direction='after'`);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
else if (items.length > 0) {
|
|
22
|
+
lines.push(`\nShowing ${items.length} chat${items.length === 1 ? '' : 's'}`);
|
|
23
|
+
}
|
|
24
|
+
if (items.length === 0) {
|
|
25
|
+
lines.push('\nNo chats found.');
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
for (const chatWithPreview of items) {
|
|
29
|
+
lines.push((0, utils_1.formatChatToMarkdown)(chatWithPreview, undefined));
|
|
30
|
+
const preview = chatWithPreview.preview;
|
|
31
|
+
if (preview) {
|
|
32
|
+
lines.push(`**Last message**: ${preview.text || '(no text)'}`);
|
|
33
|
+
if (preview.senderName) {
|
|
34
|
+
lines.push(`**From**: ${preview.senderName}`);
|
|
35
|
+
}
|
|
36
|
+
lines.push(`**Timestamp**: ${preview.timestamp}`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
lines.push('\n# Using this information\n');
|
|
41
|
+
lines.push('- Pass the "chatID" to get_chat or search_messages for details about a chat, or send_message to send a message to a chat.');
|
|
42
|
+
lines.push('- Link the "open" link to the user to allow them to view the chat in Beeper Desktop.');
|
|
43
|
+
return (0, utils_1.asMarkdownContentResult)(lines);
|
|
44
|
+
};
|
|
45
|
+
exports.handler = handler;
|
|
46
|
+
//# sourceMappingURL=list-chats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-chats.js","sourceRoot":"","sources":["../src/handlers/list-chats.ts"],"names":[],"mappings":";;;AACA,sCAAwE;AAEjE,MAAM,OAAO,GAAoB,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;IAC7D,MAAM,IAAI,GAAG,IAAW,CAAC;IACzB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE/C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEtB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;IAEjC,IAAI,OAAO,EAAE,CAAC;QACZ,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,MAAM,yBAAyB,CAAC,CAAC;QAC/D,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,8BAA8B,MAAM,CAAC,YAAY,uBAAuB,CAAC,CAAC;QACvF,CAAC;QACD,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,kCAAkC,MAAM,CAAC,YAAY,sBAAsB,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;SAAM,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,MAAM,QAAQ,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,eAAe,IAAI,KAAK,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,IAAA,4BAAoB,EAAC,eAAe,EAAE,SAAS,CAAC,CAAC,CAAC;YAC7D,MAAM,OAAO,GAAI,eAAuB,CAAC,OAAO,CAAC;YACjD,IAAI,OAAO,EAAE,CAAC;gBACZ,KAAK,CAAC,IAAI,CAAC,qBAAqB,OAAO,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC,CAAC;gBAC/D,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;oBACvB,KAAK,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;gBAChD,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,kBAAkB,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CACR,2HAA2H,CAC5H,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,sFAAsF,CAAC,CAAC;IACnG,OAAO,IAAA,+BAAuB,EAAC,KAAK,CAAC,CAAC;AACxC,CAAC,CAAC;AA3CW,QAAA,OAAO,WA2ClB"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { asMarkdownContentResult, formatChatToMarkdown } from "./utils.mjs";
|
|
2
|
+
export const handler = async (client, args) => {
|
|
3
|
+
const body = args;
|
|
4
|
+
const output = await client.chats.search(body);
|
|
5
|
+
const lines = [];
|
|
6
|
+
lines.push('# Chats');
|
|
7
|
+
const items = output.items || [];
|
|
8
|
+
const hasMore = !!output.hasMore;
|
|
9
|
+
if (hasMore) {
|
|
10
|
+
lines.push(`\nShowing ${items.length} chats (more available)`);
|
|
11
|
+
if (output.oldestCursor) {
|
|
12
|
+
lines.push(`Next page (older): cursor='${output.oldestCursor}', direction='before'`);
|
|
13
|
+
}
|
|
14
|
+
if (output.newestCursor) {
|
|
15
|
+
lines.push(`Previous page (newer): cursor='${output.newestCursor}', direction='after'`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
else if (items.length > 0) {
|
|
19
|
+
lines.push(`\nShowing ${items.length} chat${items.length === 1 ? '' : 's'}`);
|
|
20
|
+
}
|
|
21
|
+
if (items.length === 0) {
|
|
22
|
+
lines.push('\nNo chats found.');
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
for (const chatWithPreview of items) {
|
|
26
|
+
lines.push(formatChatToMarkdown(chatWithPreview, undefined));
|
|
27
|
+
const preview = chatWithPreview.preview;
|
|
28
|
+
if (preview) {
|
|
29
|
+
lines.push(`**Last message**: ${preview.text || '(no text)'}`);
|
|
30
|
+
if (preview.senderName) {
|
|
31
|
+
lines.push(`**From**: ${preview.senderName}`);
|
|
32
|
+
}
|
|
33
|
+
lines.push(`**Timestamp**: ${preview.timestamp}`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
lines.push('\n# Using this information\n');
|
|
38
|
+
lines.push('- Pass the "chatID" to get_chat or search_messages for details about a chat, or send_message to send a message to a chat.');
|
|
39
|
+
lines.push('- Link the "open" link to the user to allow them to view the chat in Beeper Desktop.');
|
|
40
|
+
return asMarkdownContentResult(lines);
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=list-chats.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-chats.mjs","sourceRoot":"","sources":["../src/handlers/list-chats.ts"],"names":[],"mappings":"OACO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE;AAExD,MAAM,CAAC,MAAM,OAAO,GAAoB,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;IAC7D,MAAM,IAAI,GAAG,IAAW,CAAC;IACzB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE/C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEtB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;IAEjC,IAAI,OAAO,EAAE,CAAC;QACZ,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,MAAM,yBAAyB,CAAC,CAAC;QAC/D,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,8BAA8B,MAAM,CAAC,YAAY,uBAAuB,CAAC,CAAC;QACvF,CAAC;QACD,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,kCAAkC,MAAM,CAAC,YAAY,sBAAsB,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;SAAM,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,MAAM,QAAQ,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,eAAe,IAAI,KAAK,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC,CAAC;YAC7D,MAAM,OAAO,GAAI,eAAuB,CAAC,OAAO,CAAC;YACjD,IAAI,OAAO,EAAE,CAAC;gBACZ,KAAK,CAAC,IAAI,CAAC,qBAAqB,OAAO,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC,CAAC;gBAC/D,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;oBACvB,KAAK,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;gBAChD,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,kBAAkB,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CACR,2HAA2H,CAC5H,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,sFAAsF,CAAC,CAAC;IACnG,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-messages.d.mts","sourceRoot":"","sources":["../src/handlers/list-messages.ts"],"names":[],"mappings":"OAAO,EAAuB,KAAK,eAAe,EAAE;AAGpD,eAAO,MAAM,OAAO,EAAE,eA6BrB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-messages.d.ts","sourceRoot":"","sources":["../src/handlers/list-messages.ts"],"names":[],"mappings":"OAAO,EAAuB,KAAK,eAAe,EAAE;AAGpD,eAAO,MAAM,OAAO,EAAE,eA6BrB,CAAC"}
|