@4via6/relay 1.2.1 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/auth.js +3 -1
  2. package/dist/auth.js.map +1 -1
  3. package/dist/bot.js +1 -0
  4. package/dist/bot.js.map +1 -1
  5. package/dist/commands/admin.js +139 -66
  6. package/dist/commands/admin.js.map +1 -1
  7. package/dist/commands/chat.js +9 -3
  8. package/dist/commands/chat.js.map +1 -1
  9. package/dist/commands/files.js +37 -47
  10. package/dist/commands/files.js.map +1 -1
  11. package/dist/commands/history.js +21 -25
  12. package/dist/commands/history.js.map +1 -1
  13. package/dist/commands/index.d.ts +3 -0
  14. package/dist/commands/index.js +60 -0
  15. package/dist/commands/index.js.map +1 -1
  16. package/dist/commands/mcp.js +2 -2
  17. package/dist/commands/mcp.js.map +1 -1
  18. package/dist/commands/media.js +90 -4
  19. package/dist/commands/media.js.map +1 -1
  20. package/dist/commands/monitor.js +8 -8
  21. package/dist/commands/monitor.js.map +1 -1
  22. package/dist/commands/session.js +16 -20
  23. package/dist/commands/session.js.map +1 -1
  24. package/dist/commands/shell.js +14 -14
  25. package/dist/commands/shell.js.map +1 -1
  26. package/dist/config/loader.js +2 -3
  27. package/dist/config/loader.js.map +1 -1
  28. package/dist/config/setup.js +5 -3
  29. package/dist/config/setup.js.map +1 -1
  30. package/dist/index.js +11 -1
  31. package/dist/index.js.map +1 -1
  32. package/dist/providers/claude.d.ts +14 -0
  33. package/dist/providers/claude.js +152 -15
  34. package/dist/providers/claude.js.map +1 -1
  35. package/dist/providers/codex.d.ts +6 -0
  36. package/dist/providers/codex.js +113 -39
  37. package/dist/providers/codex.js.map +1 -1
  38. package/dist/providers/index.js +4 -0
  39. package/dist/providers/index.js.map +1 -1
  40. package/dist/providers/opencode.js +51 -35
  41. package/dist/providers/opencode.js.map +1 -1
  42. package/dist/utils/chunker.js +2 -2
  43. package/dist/utils/chunker.js.map +1 -1
  44. package/dist/utils/errors.js +20 -3
  45. package/dist/utils/errors.js.map +1 -1
  46. package/dist/utils/logger.d.ts +1 -0
  47. package/dist/utils/logger.js +1 -0
  48. package/dist/utils/logger.js.map +1 -1
  49. package/dist/utils/store.d.ts +1 -0
  50. package/dist/utils/store.js +4 -1
  51. package/dist/utils/store.js.map +1 -1
  52. package/dist/utils/stream.js +97 -20
  53. package/dist/utils/stream.js.map +1 -1
  54. package/dist/utils/stt.js +4 -1
  55. package/dist/utils/stt.js.map +1 -1
  56. package/dist/utils/system-prompt.js +10 -9
  57. package/dist/utils/system-prompt.js.map +1 -1
  58. package/package.json +1 -1
package/dist/auth.js CHANGED
@@ -16,7 +16,9 @@ export async function authMiddleware(ctx, next) {
16
16
  await ctx.reply("Bot is misconfigured — ALLOWED_USER_ID is not set.");
17
17
  return;
18
18
  }
19
- const userId = ctx.from?.id;
19
+ if (!ctx.from)
20
+ return; // channel posts, etc. — silently ignore
21
+ const userId = ctx.from.id;
20
22
  if (userId !== allowedUserId) {
21
23
  await ctx.reply("Unauthorized.");
22
24
  return;
package/dist/auth.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAEA,0CAA0C;AAC1C,IAAI,aAAa,GAAG,GAAG,CAAC;AAExB,kEAAkE;AAClE,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,MAAM,WAAW,GAAG,IAAI,GAAG,EAAoB,CAAC;AAEhD,MAAM,UAAU,QAAQ,CAAC,MAAc;IACrC,aAAa,GAAG,MAAM,CAAC;IACvB,OAAO,gBAAgB,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,aAAa,GAAG,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAY,EAAE,IAAkB;IACnE,wEAAwE;IACxE,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;QACxB,MAAM,GAAG,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACtE,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;IAC5B,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;QAC7B,MAAM,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IAED,gBAAgB;IAChB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;IAC/E,IAAI,MAAM,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC;QAChC,MAAM,GAAG,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEhC,MAAM,IAAI,EAAE,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAEA,0CAA0C;AAC1C,IAAI,aAAa,GAAG,GAAG,CAAC;AAExB,kEAAkE;AAClE,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,MAAM,WAAW,GAAG,IAAI,GAAG,EAAoB,CAAC;AAEhD,MAAM,UAAU,QAAQ,CAAC,MAAc;IACrC,aAAa,GAAG,MAAM,CAAC;IACvB,OAAO,gBAAgB,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,aAAa,GAAG,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAY,EAAE,IAAkB;IACnE,wEAAwE;IACxE,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;QACxB,MAAM,GAAG,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACtE,OAAO;IACT,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,IAAI;QAAE,OAAO,CAAE,wCAAwC;IAChE,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;IAC3B,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;QAC7B,MAAM,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IAED,gBAAgB;IAChB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;IAC/E,IAAI,MAAM,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC;QAChC,MAAM,GAAG,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEhC,MAAM,IAAI,EAAE,CAAC;AACf,CAAC"}
package/dist/bot.js CHANGED
@@ -9,6 +9,7 @@ export function createBot(token) {
9
9
  bot.catch((err) => {
10
10
  const e = err.error;
11
11
  botLogger.error({ err: e instanceof Error ? e.message : String(e) }, "Bot error");
12
+ err.ctx?.reply("Something went wrong. Please try again.").catch(() => { });
12
13
  });
13
14
  return bot;
14
15
  }
package/dist/bot.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bot.js","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAE3B,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACxB,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAEtB,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QAChB,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;QACpB,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"bot.js","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAE3B,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACxB,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAEtB,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QAChB,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;QACpB,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAClF,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,yCAAyC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,4 +1,4 @@
1
- import { InputFile, InlineKeyboard } from "grammy";
1
+ import { InlineKeyboard } from "grammy";
2
2
  import { getProvider, getProviderName } from "../providers/index.js";
3
3
  import { setSelectedModel, getSelectedModel } from "../session.js";
4
4
  import { chunkMessage } from "../utils/chunker.js";
@@ -8,6 +8,13 @@ import { getSystemPrompt, reloadSystemPrompt, isUsingCustomPrompt } from "../uti
8
8
  import { formatCatchError } from "../utils/errors.js";
9
9
  import { escapeHtml } from "../utils/html.js";
10
10
  const MODELS_PER_PAGE = 8;
11
+ const SENSITIVE_KEYS = new Set([
12
+ "botToken",
13
+ "groqApiKey",
14
+ "openaiSttApiKey",
15
+ "assemblyaiApiKey",
16
+ "webhookSecret",
17
+ ]);
11
18
  function buildModelKeyboard(models, page, selectedModel) {
12
19
  // Group by provider
13
20
  const grouped = new Map();
@@ -77,6 +84,64 @@ function buildModelKeyboard(models, page, selectedModel) {
77
84
  }
78
85
  return { keyboard: kb, text: headerText };
79
86
  }
87
+ function formatConfigResponse(data) {
88
+ if (!data || typeof data !== "object") {
89
+ return "No configuration data available.";
90
+ }
91
+ const entries = Object.entries(data);
92
+ if (entries.length === 0) {
93
+ return "Configuration is empty.";
94
+ }
95
+ let text = "<b>Configuration</b>\n\n";
96
+ for (const [key, value] of entries) {
97
+ if (value === undefined || value === null || value === "")
98
+ continue;
99
+ const displayValue = SENSITIVE_KEYS.has(key)
100
+ ? "••••••"
101
+ : typeof value === "object"
102
+ ? JSON.stringify(value)
103
+ : String(value);
104
+ text += `<b>${escapeHtml(key)}:</b> <code>${escapeHtml(displayValue)}</code>\n`;
105
+ }
106
+ return text;
107
+ }
108
+ function formatProvidersResponse(data) {
109
+ if (!data)
110
+ return "No provider data available.";
111
+ const items = Array.isArray(data) ? data : [data];
112
+ if (items.length === 0)
113
+ return "No providers found.";
114
+ let text = `<b>Providers</b> (${items.length})\n\n`;
115
+ for (const p of items) {
116
+ const name = p.name ?? p.id ?? "unknown";
117
+ text += `<b>${escapeHtml(name)}</b>`;
118
+ if (p.id && p.id !== name)
119
+ text += ` <code>${escapeHtml(p.id)}</code>`;
120
+ if (p.status)
121
+ text += ` — ${escapeHtml(p.status)}`;
122
+ text += "\n";
123
+ if (p.models && Array.isArray(p.models)) {
124
+ text += ` Models: ${p.models.length}\n`;
125
+ }
126
+ }
127
+ return text;
128
+ }
129
+ function formatAgentsResponse(data) {
130
+ if (!data)
131
+ return "No agent data available.";
132
+ const items = Array.isArray(data) ? data : [data];
133
+ if (items.length === 0)
134
+ return "No agents available.";
135
+ let text = `<b>Agents</b> (${items.length})\n\n`;
136
+ for (const a of items) {
137
+ const name = a.name ?? a.id ?? "unknown";
138
+ text += `<code>${escapeHtml(name)}</code>`;
139
+ if (a.description)
140
+ text += ` — ${escapeHtml(a.description)}`;
141
+ text += "\n";
142
+ }
143
+ return text;
144
+ }
80
145
  export function registerAdminCommands(bot) {
81
146
  bot.command("health", async (ctx) => {
82
147
  try {
@@ -133,7 +198,11 @@ export function registerAdminCommands(bot) {
133
198
  try {
134
199
  const provider = getProvider();
135
200
  const config = await provider.getConfig();
136
- await sendJsonResponse(ctx, config, "config.json");
201
+ const text = formatConfigResponse(config);
202
+ const chunks = chunkMessage(text);
203
+ for (const chunk of chunks) {
204
+ await ctx.reply(chunk, { parse_mode: "HTML" });
205
+ }
137
206
  }
138
207
  catch (err) {
139
208
  await ctx.reply(formatCatchError(err, "fetching config"), { parse_mode: "HTML" });
@@ -143,7 +212,11 @@ export function registerAdminCommands(bot) {
143
212
  try {
144
213
  const provider = getProvider();
145
214
  const providers = await provider.getProviders();
146
- await sendJsonResponse(ctx, providers, "providers.json");
215
+ const text = formatProvidersResponse(providers);
216
+ const chunks = chunkMessage(text);
217
+ for (const chunk of chunks) {
218
+ await ctx.reply(chunk, { parse_mode: "HTML" });
219
+ }
147
220
  }
148
221
  catch (err) {
149
222
  await ctx.reply(formatCatchError(err, "fetching providers"), { parse_mode: "HTML" });
@@ -154,14 +227,18 @@ export function registerAdminCommands(bot) {
154
227
  const provider = getProvider();
155
228
  const agents = await provider.getAgents();
156
229
  if (agents === null) {
157
- await ctx.reply(`Agent listing is not supported by the ${provider.name} provider.`);
230
+ await ctx.reply(`Agent listing is not supported by the <b>${escapeHtml(provider.name)}</b> provider.`, { parse_mode: "HTML" });
158
231
  return;
159
232
  }
160
233
  if (agents.length === 0) {
161
- await ctx.reply("No agents available.");
234
+ await ctx.reply("No agents available.", { parse_mode: "HTML" });
162
235
  return;
163
236
  }
164
- await sendJsonResponse(ctx, agents, "agents.json");
237
+ const text = formatAgentsResponse(agents);
238
+ const chunks = chunkMessage(text);
239
+ for (const chunk of chunks) {
240
+ await ctx.reply(chunk, { parse_mode: "HTML" });
241
+ }
165
242
  }
166
243
  catch (err) {
167
244
  await ctx.reply(formatCatchError(err, "listing agents"), { parse_mode: "HTML" });
@@ -172,7 +249,7 @@ export function registerAdminCommands(bot) {
172
249
  const provider = getProvider();
173
250
  const proj = await provider.getProjectInfo();
174
251
  if (!proj) {
175
- await ctx.reply(`Project info is not available for the ${provider.name} provider.`);
252
+ await ctx.reply(`Project info is not available for the <b>${escapeHtml(provider.name)}</b> provider.`, { parse_mode: "HTML" });
176
253
  return;
177
254
  }
178
255
  let text = `<b>Project Info</b>\n\n`;
@@ -201,7 +278,7 @@ export function registerAdminCommands(bot) {
201
278
  provider.getFileStatus(),
202
279
  ]);
203
280
  if (!projectInfo?.branch && fileStatus === null) {
204
- await ctx.reply(`Git info is not directly available for the ${provider.name} provider.`);
281
+ await ctx.reply(`Git info is not available for the <b>${escapeHtml(provider.name)}</b> provider.`, { parse_mode: "HTML" });
205
282
  return;
206
283
  }
207
284
  let text = `<b>Git Info</b>\n\n` +
@@ -236,11 +313,11 @@ export function registerAdminCommands(bot) {
236
313
  const provider = getProvider();
237
314
  const ids = await provider.getTools();
238
315
  if (ids === null) {
239
- await ctx.reply(`Tool listing is not supported by the ${provider.name} provider.`);
316
+ await ctx.reply(`Tool listing is not supported by the <b>${escapeHtml(provider.name)}</b> provider.`, { parse_mode: "HTML" });
240
317
  return;
241
318
  }
242
319
  if (ids.length === 0) {
243
- await ctx.reply("No tools available.");
320
+ await ctx.reply("No tools available.", { parse_mode: "HTML" });
244
321
  return;
245
322
  }
246
323
  const text = `<b>Available Tools</b> (${ids.length})\n\n` +
@@ -260,7 +337,7 @@ export function registerAdminCommands(bot) {
260
337
  const models = await provider.listModels();
261
338
  const selected = getSelectedModel();
262
339
  if (models.length === 0) {
263
- await ctx.reply("No models available.");
340
+ await ctx.reply("No models available.", { parse_mode: "HTML" });
264
341
  return;
265
342
  }
266
343
  // Mark the active model
@@ -424,21 +501,24 @@ export function registerAdminCommands(bot) {
424
501
  }
425
502
  const prompt = getSystemPrompt();
426
503
  const source = isUsingCustomPrompt() ? "Custom (SKILL.md)" : "Default (built-in)";
427
- const escaped = escapeHtml(prompt.length > 500 ? prompt.slice(0, 500) + "\n\n...(truncated)" : prompt);
428
- await ctx.reply(`<b>System Prompt</b>\n` +
429
- `<b>Source:</b> ${source} | <b>Length:</b> ${prompt.length} chars\n\n` +
430
- `<pre>${escaped}</pre>`, { parse_mode: "HTML" });
504
+ const header = `<b>System Prompt</b>\n<b>Source:</b> ${source} | <b>Length:</b> ${prompt.length} chars\n\n`;
505
+ const text = header + `<pre>${escapeHtml(prompt)}</pre>`;
506
+ const chunks = chunkMessage(text);
507
+ for (const chunk of chunks) {
508
+ await ctx.reply(chunk, { parse_mode: "HTML" });
509
+ }
431
510
  });
432
511
  bot.command("start", async (ctx) => {
433
512
  const providerName = getProviderName();
434
513
  await ctx.reply(`Hey! Send me a message and I'll pass it to the AI.\n\n` +
435
- `Provider: ${providerName}\n\n` +
514
+ `<b>Provider:</b> ${escapeHtml(providerName)}\n\n` +
436
515
  `You can also send voice notes, photos, or files.\n\n` +
437
- `Type /help to see all commands.`);
516
+ `Type /help to see all commands.`, { parse_mode: "HTML" });
438
517
  });
439
518
  bot.command("help", async (ctx) => {
440
519
  const providerName = getProviderName();
441
- const isOpencode = providerName === "opencode";
520
+ const provider = getProvider();
521
+ const caps = provider.capabilities;
442
522
  let text = `<b>Relay</b> — ${providerName} provider\n\n` +
443
523
  `<b>Chat</b>\n` +
444
524
  `Just send any text, voice, photo, or file\n\n` +
@@ -447,40 +527,51 @@ export function registerAdminCommands(bot) {
447
527
  `/sessions — List sessions\n` +
448
528
  `/switch <code>id</code> — Switch session\n` +
449
529
  `/delete <code>id</code> — Delete session\n` +
450
- `/current — Active session\n` +
451
- `/fork <code>[messageId]</code> — Fork session\n\n`;
452
- if (isOpencode) {
453
- text +=
454
- `<b>Monitor</b>\n` +
455
- `/todo — AI task checklist\n` +
456
- `/diff — Session code changes\n` +
457
- `/diff full — Download full diff\n\n`;
530
+ `/current — Active session\n`;
531
+ if (caps.fork) {
532
+ text += `/fork <code>[messageId]</code> — Fork session\n`;
533
+ }
534
+ text += `\n`;
535
+ if (caps.todos || caps.diff) {
536
+ text += `<b>Monitor</b>\n`;
537
+ if (caps.todos)
538
+ text += `/todo — AI task checklist\n`;
539
+ if (caps.diff) {
540
+ text += `/diff — Session code changes\n`;
541
+ text += `/diff full — Download full diff\n`;
542
+ }
543
+ text += `\n`;
458
544
  }
459
- text +=
460
- `<b>Files</b>\n` +
461
- `/read <code>path</code> — Read file\n` +
462
- `/find <code>query</code> — Find files\n` +
463
- `/search <code>pattern</code> — Search in files\n` +
464
- `/symbols <code>query</code> — Find symbols\n` +
465
- `/status — Git status\n\n` +
466
- `<b>History</b>\n` +
467
- `/history — Conversation history\n` +
468
- `/summarize — Summarize session\n` +
469
- `/revert — Undo last change\n` +
470
- `/abort — Cancel operation\n` +
471
- `/share — Share session\n\n` +
472
- `<b>Shell</b>\n` +
473
- `/shell <code>cmd</code> — Run command\n`;
474
- if (isOpencode) {
545
+ if (caps.fileOps) {
475
546
  text +=
476
- `/cmd <code>command</code> — OpenCode command\n` +
477
- `/commandsList available commands\n\n`;
478
- }
479
- else {
547
+ `<b>Files</b>\n` +
548
+ `/read <code>path</code>Read file\n` +
549
+ `/find <code>query</code> — Find files\n` +
550
+ `/search <code>pattern</code> — Search in files\n` +
551
+ `/symbols <code>query</code> — Find symbols\n` +
552
+ `/status — Git status\n\n`;
553
+ }
554
+ text += `<b>History</b>\n`;
555
+ if (caps.history)
556
+ text += `/history — Conversation history\n`;
557
+ if (caps.summarize)
558
+ text += `/summarize — Summarize session\n`;
559
+ if (caps.revert)
560
+ text += `/revert — Undo last change\n`;
561
+ text += `/abort — Cancel operation\n`;
562
+ if (caps.share)
563
+ text += `/share — Share session\n`;
564
+ text += `\n`;
565
+ if (caps.shell) {
566
+ text += `<b>Shell</b>\n`;
567
+ text += `/shell <code>cmd</code> — Run command\n`;
568
+ if (caps.commands) {
569
+ text += `/cmd <code>command</code> — OpenCode command\n`;
570
+ text += `/commands — List available commands\n`;
571
+ }
480
572
  text += `\n`;
481
573
  }
482
- const provider = getProvider();
483
- if (provider.capabilities.mcp) {
574
+ if (caps.mcp) {
484
575
  text +=
485
576
  `<b>MCP</b>\n` +
486
577
  `/mcp — MCP server status\n` +
@@ -504,22 +595,4 @@ export function registerAdminCommands(bot) {
504
595
  await ctx.reply(text, { parse_mode: "HTML" });
505
596
  });
506
597
  }
507
- async function sendJsonResponse(ctx, data, filename) {
508
- const json = JSON.stringify(data, null, 2);
509
- if (json.length > 3500) {
510
- const buffer = Buffer.from(json, "utf-8");
511
- await ctx.replyWithDocument(new InputFile(buffer, filename));
512
- return;
513
- }
514
- const text = "```json\n" + json + "\n```";
515
- const chunks = chunkMessage(text);
516
- for (const chunk of chunks) {
517
- try {
518
- await ctx.reply(chunk, { parse_mode: "Markdown" });
519
- }
520
- catch {
521
- await ctx.reply(chunk);
522
- }
523
- }
524
- }
525
598
  //# sourceMappingURL=admin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/commands/admin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/commands/admin.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import { getSystemPrompt } from "../utils/system-prompt.js";
6
6
  import { formatCatchError, EMPTY_RESPONSE_MSG } from "../utils/errors.js";
7
7
  import { withTimeout, getPromptTimeout } from "../utils/timeout.js";
8
8
  import { extractFileParts, sendResponseFiles } from "../utils/files.js";
9
+ import { chatLogger } from "../utils/logger.js";
9
10
  import { InputFile } from "grammy";
10
11
  const MAX_INPUT_LENGTH = 32_000;
11
12
  export function registerChat(bot) {
@@ -13,10 +14,11 @@ export function registerChat(bot) {
13
14
  const text = ctx.message.text;
14
15
  if (text.startsWith("/"))
15
16
  return;
17
+ chatLogger.info({ from: ctx.from?.id, len: text.length }, "Inbound message");
16
18
  if (text.length > MAX_INPUT_LENGTH) {
17
- await ctx.reply(`Message too long (${text.toLocaleString().length} chars). ` +
19
+ await ctx.reply(`Message too long (${text.length.toLocaleString()} chars). ` +
18
20
  `Maximum is ${MAX_INPUT_LENGTH.toLocaleString()} characters. ` +
19
- `Send the content as a file instead.`);
21
+ `Send the content as a file instead.`, { parse_mode: "HTML" });
20
22
  return;
21
23
  }
22
24
  try {
@@ -72,7 +74,11 @@ async function sendResponse(ctx, text) {
72
74
  try {
73
75
  await ctx.reply(chunk, { parse_mode: "Markdown" });
74
76
  }
75
- catch {
77
+ catch (sendErr) {
78
+ const desc = sendErr?.description ?? sendErr?.message ?? "";
79
+ if (!desc.includes("can't parse")) {
80
+ chatLogger.warn({ err: desc }, "Failed to send message chunk");
81
+ }
76
82
  await ctx.reply(chunk);
77
83
  }
78
84
  }
@@ -1 +1 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"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"}