@trusty-squire/mcp 0.9.19-rc.2 ā 0.9.19-rc.21
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 +15 -33
- package/dist/api-client.d.ts +6 -0
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js.map +1 -1
- package/dist/bin.js +4 -10
- package/dist/bin.js.map +1 -1
- package/dist/bot/agent.d.ts +24 -2
- package/dist/bot/agent.d.ts.map +1 -1
- package/dist/bot/agent.js +634 -55
- package/dist/bot/agent.js.map +1 -1
- package/dist/bot/browser.d.ts +7 -0
- package/dist/bot/browser.d.ts.map +1 -1
- package/dist/bot/browser.js +182 -3
- package/dist/bot/browser.js.map +1 -1
- package/dist/bot/credential-extraction-flow.d.ts +2 -0
- package/dist/bot/credential-extraction-flow.d.ts.map +1 -1
- package/dist/bot/credential-extraction-flow.js +71 -1
- package/dist/bot/credential-extraction-flow.js.map +1 -1
- package/dist/bot/form-fill.d.ts.map +1 -1
- package/dist/bot/form-fill.js +11 -0
- package/dist/bot/form-fill.js.map +1 -1
- package/dist/bot/google-login.d.ts.map +1 -1
- package/dist/bot/google-login.js +37 -1
- package/dist/bot/google-login.js.map +1 -1
- package/dist/bot/index.d.ts +1 -0
- package/dist/bot/index.d.ts.map +1 -1
- package/dist/bot/index.js +1 -0
- package/dist/bot/index.js.map +1 -1
- package/dist/bot/login-state.d.ts +2 -1
- package/dist/bot/login-state.d.ts.map +1 -1
- package/dist/bot/login-state.js +22 -5
- package/dist/bot/login-state.js.map +1 -1
- package/dist/bot/nav-search.d.ts.map +1 -1
- package/dist/bot/nav-search.js +9 -0
- package/dist/bot/nav-search.js.map +1 -1
- package/dist/bot/post-signup-flow.d.ts.map +1 -1
- package/dist/bot/post-signup-flow.js +21 -0
- package/dist/bot/post-signup-flow.js.map +1 -1
- package/dist/bot/post-signup-recovery-state.d.ts +3 -0
- package/dist/bot/post-signup-recovery-state.d.ts.map +1 -1
- package/dist/bot/post-signup-recovery-state.js +3 -0
- package/dist/bot/post-signup-recovery-state.js.map +1 -1
- package/dist/bot/provision-session.d.ts +116 -1
- package/dist/bot/provision-session.d.ts.map +1 -1
- package/dist/bot/provision-session.js +885 -41
- package/dist/bot/provision-session.js.map +1 -1
- package/dist/bot/redact.d.ts.map +1 -1
- package/dist/bot/redact.js +25 -2
- package/dist/bot/redact.js.map +1 -1
- package/dist/bot/replay-skill.d.ts +6 -0
- package/dist/bot/replay-skill.d.ts.map +1 -1
- package/dist/bot/replay-skill.js +39 -5
- package/dist/bot/replay-skill.js.map +1 -1
- package/dist/bot/skill-hint.d.ts +7 -0
- package/dist/bot/skill-hint.d.ts.map +1 -0
- package/dist/bot/skill-hint.js +105 -0
- package/dist/bot/skill-hint.js.map +1 -0
- package/dist/bot/terminal-gate.d.ts +3 -1
- package/dist/bot/terminal-gate.d.ts.map +1 -1
- package/dist/bot/terminal-gate.js +19 -0
- package/dist/bot/terminal-gate.js.map +1 -1
- package/dist/install/agents.d.ts.map +1 -1
- package/dist/install/agents.js +12 -2
- package/dist/install/agents.js.map +1 -1
- package/dist/install/cli.d.ts +14 -2
- package/dist/install/cli.d.ts.map +1 -1
- package/dist/install/cli.js +346 -150
- package/dist/install/cli.js.map +1 -1
- package/dist/install/interactive.d.ts +9 -3
- package/dist/install/interactive.d.ts.map +1 -1
- package/dist/install/interactive.js +80 -140
- package/dist/install/interactive.js.map +1 -1
- package/dist/install/proxy-url.d.ts +2 -0
- package/dist/install/proxy-url.d.ts.map +1 -0
- package/dist/install/proxy-url.js +20 -0
- package/dist/install/proxy-url.js.map +1 -0
- package/dist/install/ui.js +1 -1
- package/dist/install/ui.js.map +1 -1
- package/dist/session.d.ts +3 -0
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js.map +1 -1
- package/dist/skill-registry-client.d.ts +8 -0
- package/dist/skill-registry-client.d.ts.map +1 -1
- package/dist/skill-registry-client.js +70 -53
- package/dist/skill-registry-client.js.map +1 -1
- package/dist/tools/index.d.ts +1 -2
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +10 -19
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/provision-any.d.ts +3 -0
- package/dist/tools/provision-any.d.ts.map +1 -1
- package/dist/tools/provision-any.js +162 -32
- package/dist/tools/provision-any.js.map +1 -1
- package/dist/tools/provision-drive.d.ts +121 -5
- package/dist/tools/provision-drive.d.ts.map +1 -1
- package/dist/tools/provision-drive.js +339 -48
- package/dist/tools/provision-drive.js.map +1 -1
- package/dist/tools/store-credential.d.ts +5 -0
- package/dist/tools/store-credential.d.ts.map +1 -1
- package/dist/tools/store-credential.js +5 -0
- package/dist/tools/store-credential.js.map +1 -1
- package/package.json +1 -3
- package/dist/bot/telegram-notify.d.ts +0 -8
- package/dist/bot/telegram-notify.d.ts.map +0 -1
- package/dist/bot/telegram-notify.js +0 -134
- package/dist/bot/telegram-notify.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-credential.js","sourceRoot":"","sources":["../../src/tools/store-credential.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAa,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;IAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;IACxD,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACzD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC1C,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,CAAC,GAAG,CAAC;SACR,KAAK,CAAC,+BAA+B,EAAE,uDAAuD,CAAC;SAC/F,QAAQ,EAAE;CACd,CAAC;KACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;IACpG,OAAO,EAAE,oCAAoC;CAC9C,CAAC,CAAC;AAEL,MAAM,WAAW,GAAG
|
|
1
|
+
{"version":3,"file":"store-credential.js","sourceRoot":"","sources":["../../src/tools/store-credential.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAa,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;IAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;IACxD,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACzD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC1C,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtE,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,CAAC,GAAG,CAAC;SACR,KAAK,CAAC,+BAA+B,EAAE,uDAAuD,CAAC;SAC/F,QAAQ,EAAE;CACd,CAAC;KACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;IACpG,OAAO,EAAE,oCAAoC;CAC9C,CAAC,CAAC;AAEL,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;iCAea,CAAC;AAElC,MAAM,CAAC,MAAM,mBAAmB,GAAsC;IACpE,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,WAAW;IACxB,WAAW;IACX,eAAe,EAAE;QACf,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,SAAS,CAAC;QACrB,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YACpE,kBAAkB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACtC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YAC5D,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC/B;KACF;IACD,WAAW,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;IACrC,IAAI,EAAE,gBAAgB;IACtB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;QACrB,SAAS,CAAC,GAAG,CAAC,CAAC;QACf,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC;YACpC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,IAAI,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjG,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,IAAI,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrF,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1E,CAAC,CAAC;QACH,OAAO;YACL,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,aAAa,EAAE,GAAG,CAAC,aAAa;YAChC,OAAO,EAAE,GAAG,CAAC,OAAO;SACrB,CAAC;IACJ,CAAC;CACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trusty-squire/mcp",
|
|
3
|
-
"version": "0.9.19-rc.
|
|
3
|
+
"version": "0.9.19-rc.21",
|
|
4
4
|
"mcpName": "io.github.Trusty-Squire/mcp",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Local MCP server vibe coding agents install. Thin relay to the Trusty Squire API, with the bundled universal signup bot.",
|
|
@@ -11,8 +11,6 @@
|
|
|
11
11
|
"files": [
|
|
12
12
|
"dist",
|
|
13
13
|
"assets",
|
|
14
|
-
"!dist/housekeeper",
|
|
15
|
-
"!dist/housekeeper/**",
|
|
16
14
|
"!dist/bot/eval-*",
|
|
17
15
|
"!dist/bot/build-corpus.*",
|
|
18
16
|
"!dist/bot/label-target.*",
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export interface TelegramHeightenedAuthInput {
|
|
2
|
-
service: string;
|
|
3
|
-
digit: string | null;
|
|
4
|
-
windowSeconds: number;
|
|
5
|
-
}
|
|
6
|
-
export declare function sendTelegramHeightenedAuth(input: TelegramHeightenedAuthInput): Promise<boolean>;
|
|
7
|
-
export declare function formatMessage(input: TelegramHeightenedAuthInput): string;
|
|
8
|
-
//# sourceMappingURL=telegram-notify.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"telegram-notify.d.ts","sourceRoot":"","sources":["../../src/bot/telegram-notify.ts"],"names":[],"mappings":"AA+BA,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAID,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,2BAA2B,GACjC,OAAO,CAAC,OAAO,CAAC,CAOlB;AAGD,wBAAgB,aAAa,CAAC,KAAK,EAAE,2BAA2B,GAAG,MAAM,CAexE"}
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
// Telegram fallback for heightened-auth alerts.
|
|
2
|
-
//
|
|
3
|
-
// The API's /v1/notify/heightened-auth fires an email via Gmail SMTP
|
|
4
|
-
// authed as the operator's gmail. When GMAIL_USER == account.email
|
|
5
|
-
// (the housekeeper case where the operator and the only paired user
|
|
6
|
-
// are the same gmail account), Gmail collapses the self-send to the
|
|
7
|
-
// Sent folder and it never reaches the Inbox. The user never sees
|
|
8
|
-
// the digit.
|
|
9
|
-
//
|
|
10
|
-
// This module sends the digit to a Telegram bot/chat directly from
|
|
11
|
-
// the bot, bypassing email entirely. Opt-in via TELEGRAM_BOT_TOKEN
|
|
12
|
-
// in the bot's env ā when unset, this module is a no-op and the
|
|
13
|
-
// email path is the only delivery channel. The housekeeper's
|
|
14
|
-
// env already sets the token, so the housekeeper run is
|
|
15
|
-
// covered automatically.
|
|
16
|
-
//
|
|
17
|
-
// chat_id resolution mirrors the harvester's tools/archived-harvester/
|
|
18
|
-
// telegram.mjs: read ~/.trusty-squire/telegram-chat-id.txt (cached
|
|
19
|
-
// from the first /start), fall back to getUpdates if absent, persist
|
|
20
|
-
// the discovered id. Sharing the cache file with the housekeeper means
|
|
21
|
-
// no extra one-time setup for the bot-side path on machines where
|
|
22
|
-
// the housekeeper already runs.
|
|
23
|
-
import { homedir } from "node:os";
|
|
24
|
-
import { join } from "node:path";
|
|
25
|
-
import { existsSync, readFileSync, writeFileSync, mkdirSync } from "node:fs";
|
|
26
|
-
const TELEGRAM_API = "https://api.telegram.org";
|
|
27
|
-
const CHAT_ID_PATH = join(homedir(), ".trusty-squire", "telegram-chat-id.txt");
|
|
28
|
-
const MAX_MESSAGE_LEN = 4096;
|
|
29
|
-
// Fire-and-forget. Returns true on POST success, false on any failure
|
|
30
|
-
// (missing token, missing chat id, HTTP error). Never throws.
|
|
31
|
-
export async function sendTelegramHeightenedAuth(input) {
|
|
32
|
-
const token = process.env.TELEGRAM_BOT_TOKEN;
|
|
33
|
-
if (token === undefined || token.length === 0)
|
|
34
|
-
return false;
|
|
35
|
-
const chatId = await resolveChatId(token);
|
|
36
|
-
if (chatId === null)
|
|
37
|
-
return false;
|
|
38
|
-
const text = formatMessage(input);
|
|
39
|
-
return await postSendMessage(token, chatId, text);
|
|
40
|
-
}
|
|
41
|
-
// Exported for unit testing.
|
|
42
|
-
export function formatMessage(input) {
|
|
43
|
-
if (input.digit !== null) {
|
|
44
|
-
return (`š Google number-match on ${input.service}\n\n` +
|
|
45
|
-
`Tap *${input.digit}* on your phone ā ${input.windowSeconds}-second window.\n\n` +
|
|
46
|
-
`(Trusty Squire bot mid-OAuth handshake.)`);
|
|
47
|
-
}
|
|
48
|
-
return (`š Google challenge on ${input.service}\n\n` +
|
|
49
|
-
`A number-match prompt was detected but the bot couldn't read the digit. ` +
|
|
50
|
-
`Open the Google app on your phone, then tap the number the prompt shows ā ` +
|
|
51
|
-
`${input.windowSeconds}-second window.\n\n` +
|
|
52
|
-
`(Trusty Squire bot mid-OAuth handshake.)`);
|
|
53
|
-
}
|
|
54
|
-
async function resolveChatId(token) {
|
|
55
|
-
// Env override wins. Lets the operator pin a specific chat
|
|
56
|
-
// (group/channel) without depending on the cache file, and gives
|
|
57
|
-
// tests a clean injection point.
|
|
58
|
-
const envChatId = process.env.TELEGRAM_CHAT_ID;
|
|
59
|
-
if (envChatId !== undefined && envChatId.length > 0) {
|
|
60
|
-
const n = Number(envChatId);
|
|
61
|
-
if (Number.isFinite(n))
|
|
62
|
-
return n;
|
|
63
|
-
}
|
|
64
|
-
const cached = loadCachedChatId();
|
|
65
|
-
if (cached !== null)
|
|
66
|
-
return cached;
|
|
67
|
-
const fromUpdates = await fetchChatIdFromUpdates(token);
|
|
68
|
-
if (fromUpdates !== null)
|
|
69
|
-
persistChatId(fromUpdates);
|
|
70
|
-
return fromUpdates;
|
|
71
|
-
}
|
|
72
|
-
function loadCachedChatId() {
|
|
73
|
-
try {
|
|
74
|
-
if (!existsSync(CHAT_ID_PATH))
|
|
75
|
-
return null;
|
|
76
|
-
const raw = readFileSync(CHAT_ID_PATH, "utf8").trim();
|
|
77
|
-
const id = Number(raw);
|
|
78
|
-
return Number.isFinite(id) ? id : null;
|
|
79
|
-
}
|
|
80
|
-
catch {
|
|
81
|
-
return null;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
function persistChatId(id) {
|
|
85
|
-
try {
|
|
86
|
-
mkdirSync(join(homedir(), ".trusty-squire"), { recursive: true });
|
|
87
|
-
writeFileSync(CHAT_ID_PATH, `${id}\n`);
|
|
88
|
-
}
|
|
89
|
-
catch {
|
|
90
|
-
// Non-fatal; next call will re-fetch.
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
async function fetchChatIdFromUpdates(token) {
|
|
94
|
-
try {
|
|
95
|
-
const res = await fetch(`${TELEGRAM_API}/bot${token}/getUpdates`);
|
|
96
|
-
if (!res.ok)
|
|
97
|
-
return null;
|
|
98
|
-
const body = (await res.json());
|
|
99
|
-
if (body.ok !== true || !Array.isArray(body.result))
|
|
100
|
-
return null;
|
|
101
|
-
for (let i = body.result.length - 1; i >= 0; i--) {
|
|
102
|
-
const u = body.result[i];
|
|
103
|
-
const id = u?.message?.chat?.id ?? u?.channel_post?.chat?.id;
|
|
104
|
-
if (typeof id === "number")
|
|
105
|
-
return id;
|
|
106
|
-
}
|
|
107
|
-
return null;
|
|
108
|
-
}
|
|
109
|
-
catch {
|
|
110
|
-
return null;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
async function postSendMessage(token, chatId, text) {
|
|
114
|
-
try {
|
|
115
|
-
const truncated = text.length <= MAX_MESSAGE_LEN
|
|
116
|
-
? text
|
|
117
|
-
: text.slice(0, MAX_MESSAGE_LEN - 32) + "\nā¦[truncated]";
|
|
118
|
-
const res = await fetch(`${TELEGRAM_API}/bot${token}/sendMessage`, {
|
|
119
|
-
method: "POST",
|
|
120
|
-
headers: { "content-type": "application/json" },
|
|
121
|
-
body: JSON.stringify({
|
|
122
|
-
chat_id: chatId,
|
|
123
|
-
text: truncated,
|
|
124
|
-
parse_mode: "Markdown",
|
|
125
|
-
disable_web_page_preview: true,
|
|
126
|
-
}),
|
|
127
|
-
});
|
|
128
|
-
return res.ok;
|
|
129
|
-
}
|
|
130
|
-
catch {
|
|
131
|
-
return false;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
//# sourceMappingURL=telegram-notify.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"telegram-notify.js","sourceRoot":"","sources":["../../src/bot/telegram-notify.ts"],"names":[],"mappings":"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"}
|