paperclip-plugin-telegram 0.4.0 → 0.5.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/dist/commands.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { sendMessage, escapeMarkdownV2, sendChatAction } from "./telegram-api.js";
2
2
  import { METRIC_NAMES } from "./constants.js";
3
3
  import { handleAcpCommand } from "./acp-bridge.js";
4
+ import { buildPaperclipAuthHeaders, fetchPaperclipApi } from "./paperclip-api.js";
4
5
  export const BOT_COMMANDS = [
5
6
  { command: "create", description: "Create a new task (assigned to CEO agent)" },
6
7
  { command: "status", description: "Company health: active agents, open issues" },
@@ -10,26 +11,27 @@ export const BOT_COMMANDS = [
10
11
  { command: "help", description: "Show available commands" },
11
12
  { command: "connect", description: "Link this chat to a Paperclip company" },
12
13
  { command: "connect_topic", description: "Map a project to a forum topic" },
14
+ { command: "topics", description: "List or remove forum topic mappings" },
13
15
  { command: "acp", description: "Manage agent sessions (spawn, status, cancel, close)" },
14
16
  { command: "commands", description: "Manage custom workflow commands (list, import, run, delete)" },
15
17
  ];
16
- export async function handleCommand(ctx, token, chatId, command, args, messageThreadId, baseUrl, publicUrl) {
18
+ export async function handleCommand(ctx, token, chatId, command, args, messageThreadId, baseUrl, publicUrl, companyId, boardApiToken) {
17
19
  await ctx.metrics.write(METRIC_NAMES.commandsHandled, 1);
18
20
  switch (command) {
19
21
  case "create":
20
- await handleCreate(ctx, token, chatId, args, messageThreadId, publicUrl || baseUrl);
22
+ await handleCreate(ctx, token, chatId, args, messageThreadId, publicUrl || baseUrl, companyId);
21
23
  break;
22
24
  case "status":
23
- await handleStatus(ctx, token, chatId, messageThreadId, publicUrl);
25
+ await handleStatus(ctx, token, chatId, messageThreadId, publicUrl, companyId);
24
26
  break;
25
27
  case "issues":
26
- await handleIssues(ctx, token, chatId, args, messageThreadId, publicUrl || baseUrl);
28
+ await handleIssues(ctx, token, chatId, args, messageThreadId, publicUrl || baseUrl, companyId);
27
29
  break;
28
30
  case "agents":
29
- await handleAgents(ctx, token, chatId, messageThreadId, publicUrl);
31
+ await handleAgents(ctx, token, chatId, messageThreadId, publicUrl, companyId);
30
32
  break;
31
33
  case "approve":
32
- await handleApprove(ctx, token, chatId, args, messageThreadId, baseUrl);
34
+ await handleApprove(ctx, token, chatId, args, messageThreadId, baseUrl, boardApiToken);
33
35
  break;
34
36
  case "help":
35
37
  await handleHelp(ctx, token, chatId, messageThreadId);
@@ -40,6 +42,9 @@ export async function handleCommand(ctx, token, chatId, command, args, messageTh
40
42
  case "connect_topic":
41
43
  await handleConnectTopic(ctx, token, chatId, args, messageThreadId);
42
44
  break;
45
+ case "topics":
46
+ await handleTopicsCommand(ctx, token, chatId, args, messageThreadId);
47
+ break;
43
48
  case "acp":
44
49
  await handleAcpCommand(ctx, token, chatId, args, messageThreadId);
45
50
  break;
@@ -52,10 +57,10 @@ export async function handleCommand(ctx, token, chatId, command, args, messageTh
52
57
  function isExternalUrl(url) {
53
58
  return !!url && url.startsWith("https://");
54
59
  }
55
- async function handleStatus(ctx, token, chatId, messageThreadId, publicUrl) {
60
+ async function handleStatus(ctx, token, chatId, messageThreadId, publicUrl, resolvedCompanyId) {
56
61
  await sendChatAction(ctx, token, chatId);
57
62
  try {
58
- const companyId = await resolveCompanyId(ctx, chatId);
63
+ const companyId = resolvedCompanyId ?? await resolveCompanyId(ctx, chatId);
59
64
  const agents = await ctx.agents.list({ companyId });
60
65
  const activeAgents = agents.filter((a) => a.status === "active");
61
66
  const issues = await ctx.issues.list({ companyId, limit: 10 });
@@ -82,10 +87,10 @@ async function handleStatus(ctx, token, chatId, messageThreadId, publicUrl) {
82
87
  });
83
88
  }
84
89
  }
85
- async function handleIssues(ctx, token, chatId, projectFilter, messageThreadId, baseUrl) {
90
+ async function handleIssues(ctx, token, chatId, projectFilter, messageThreadId, baseUrl, resolvedCompanyId) {
86
91
  await sendChatAction(ctx, token, chatId);
87
92
  try {
88
- const companyId = await resolveCompanyId(ctx, chatId);
93
+ const companyId = resolvedCompanyId ?? await resolveCompanyId(ctx, chatId);
89
94
  const company = await ctx.companies.get(companyId);
90
95
  const issues = await ctx.issues.list({ companyId, limit: 10 });
91
96
  const filtered = projectFilter
@@ -120,10 +125,10 @@ async function handleIssues(ctx, token, chatId, projectFilter, messageThreadId,
120
125
  await sendMessage(ctx, token, chatId, `Could not fetch issues${filter}. Make sure this chat is linked with /connect.`, { messageThreadId });
121
126
  }
122
127
  }
123
- async function handleAgents(ctx, token, chatId, messageThreadId, publicUrl) {
128
+ async function handleAgents(ctx, token, chatId, messageThreadId, publicUrl, resolvedCompanyId) {
124
129
  await sendChatAction(ctx, token, chatId);
125
130
  try {
126
- const companyId = await resolveCompanyId(ctx, chatId);
131
+ const companyId = resolvedCompanyId ?? await resolveCompanyId(ctx, chatId);
127
132
  const agents = await ctx.agents.list({ companyId });
128
133
  if (agents.length === 0) {
129
134
  await sendMessage(ctx, token, chatId, "No agents found.", { messageThreadId });
@@ -151,7 +156,7 @@ async function handleAgents(ctx, token, chatId, messageThreadId, publicUrl) {
151
156
  await sendMessage(ctx, token, chatId, "Could not fetch agents. Make sure this chat is linked with /connect.", { messageThreadId });
152
157
  }
153
158
  }
154
- async function handleApprove(ctx, token, chatId, approvalId, messageThreadId, baseUrl = "http://localhost:3100") {
159
+ async function handleApprove(ctx, token, chatId, approvalId, messageThreadId, baseUrl = "http://localhost:3100", boardApiToken) {
155
160
  if (!approvalId.trim()) {
156
161
  await sendMessage(ctx, token, chatId, "Usage: /approve <approval-id>", {
157
162
  messageThreadId,
@@ -159,9 +164,12 @@ async function handleApprove(ctx, token, chatId, approvalId, messageThreadId, ba
159
164
  return;
160
165
  }
161
166
  try {
162
- await ctx.http.fetch(`${baseUrl}/api/approvals/${approvalId.trim()}/approve`, {
167
+ await fetchPaperclipApi(ctx, `${baseUrl}/api/approvals/${approvalId.trim()}/approve`, {
163
168
  method: "POST",
164
- headers: { "Content-Type": "application/json" },
169
+ headers: {
170
+ "Content-Type": "application/json",
171
+ ...buildPaperclipAuthHeaders(boardApiToken),
172
+ },
165
173
  body: JSON.stringify({ decidedByUserId: `telegram:${chatId}` }),
166
174
  });
167
175
  await sendMessage(ctx, token, chatId, `${escapeMarkdownV2("✅")} *Approved*: \`${escapeMarkdownV2(approvalId.trim())}\``, { parseMode: "MarkdownV2", messageThreadId });
@@ -214,7 +222,7 @@ async function handleConnect(ctx, token, chatId, companyArg, messageThreadId) {
214
222
  await sendMessage(ctx, token, chatId, `Failed to connect: ${err instanceof Error ? err.message : String(err)}`, { messageThreadId });
215
223
  }
216
224
  }
217
- async function handleCreate(ctx, token, chatId, titleArg, messageThreadId, linkBaseUrl) {
225
+ async function handleCreate(ctx, token, chatId, titleArg, messageThreadId, linkBaseUrl, resolvedCompanyId) {
218
226
  const title = titleArg.trim();
219
227
  if (!title) {
220
228
  await sendMessage(ctx, token, chatId, "Usage: /create <task title>", { messageThreadId });
@@ -222,9 +230,10 @@ async function handleCreate(ctx, token, chatId, titleArg, messageThreadId, linkB
222
230
  }
223
231
  await sendChatAction(ctx, token, chatId);
224
232
  try {
225
- const companyId = await resolveCompanyId(ctx, chatId);
233
+ const companyId = resolvedCompanyId ?? await resolveCompanyId(ctx, chatId);
226
234
  const company = await ctx.companies.get(companyId);
227
235
  const issuePrefix = company?.issuePrefix;
236
+ const projectId = await resolveProjectIdForTopic(ctx, chatId, companyId, messageThreadId);
228
237
  // Find the CEO agent to assign to
229
238
  const agents = await ctx.agents.list({ companyId });
230
239
  const ceo = agents.find((a) => a.role === "ceo" && a.status !== "paused" && a.status !== "error");
@@ -232,7 +241,7 @@ async function handleCreate(ctx, token, chatId, titleArg, messageThreadId, linkB
232
241
  // This ordering is load-bearing: the issue_assigned wake only fires when the assignee
233
242
  // *transitions* from null to an agent. If we set the assignee at creation time, there's
234
243
  // no transition and the agent never gets woken.
235
- let issue = await ctx.issues.create({ companyId, title });
244
+ let issue = await ctx.issues.create({ companyId, title, ...(projectId ? { projectId } : {}) });
236
245
  if (ceo) {
237
246
  issue = await ctx.issues.update(issue.id, { status: "todo", assigneeAgentId: ceo.id }, companyId);
238
247
  }
@@ -253,53 +262,214 @@ async function handleCreate(ctx, token, chatId, titleArg, messageThreadId, linkB
253
262
  }
254
263
  }
255
264
  export async function handleConnectTopic(ctx, token, chatId, args, messageThreadId) {
256
- const parts = args.trim().split(/\s+/);
257
- if (parts.length < 1 || (parts.length < 2 && !messageThreadId)) {
258
- await sendMessage(ctx, token, chatId, "Usage: /connect\\-topic <project\\-name> \\[topic\\-id\\]", {
265
+ const trimmedArgs = args.trim();
266
+ if (!trimmedArgs) {
267
+ await sendMessage(ctx, token, chatId, "Usage: /connect\\_topic <project\\-name> \\[topic\\-id\\]", {
268
+ parseMode: "MarkdownV2",
269
+ messageThreadId,
270
+ });
271
+ return;
272
+ }
273
+ const parts = trimmedArgs.split(/\s+/);
274
+ if (parts.length < 2 && !messageThreadId) {
275
+ await sendMessage(ctx, token, chatId, "Usage: /connect\\_topic <project\\-name> \\[topic\\-id\\]", {
259
276
  parseMode: "MarkdownV2",
260
277
  messageThreadId,
261
278
  });
262
279
  return;
263
280
  }
264
281
  let topicId;
265
- let projectName;
282
+ let projectNameInput;
266
283
  const explicitTopicId = parts.length >= 2 && /^\d+$/.test(parts[parts.length - 1]);
267
284
  if (explicitTopicId) {
268
285
  topicId = parts.pop();
269
- projectName = parts.join(" ");
286
+ projectNameInput = parts.join(" ");
270
287
  }
271
288
  else {
272
289
  if (!messageThreadId) {
273
- await sendMessage(ctx, token, chatId, "Usage: /connect\\-topic <project\\-name> \\[topic\\-id\\]", {
290
+ await sendMessage(ctx, token, chatId, "Usage: /connect\\_topic <project\\-name> \\[topic\\-id\\]", {
274
291
  parseMode: "MarkdownV2",
275
292
  messageThreadId,
276
293
  });
277
294
  return;
278
295
  }
279
296
  topicId = String(messageThreadId);
280
- projectName = parts.join(" ");
297
+ projectNameInput = parts.join(" ");
298
+ }
299
+ const companyId = await resolveCompanyId(ctx, chatId);
300
+ const project = await resolveProjectByName(ctx, companyId, projectNameInput);
301
+ if (!project) {
302
+ await sendProjectNotFoundMessage(ctx, token, chatId, companyId, projectNameInput, messageThreadId);
303
+ return;
304
+ }
305
+ const topicMap = await getTopicMap(ctx, chatId);
306
+ const existingKey = findTopicMapKey(topicMap, project.name) ?? findTopicMapKey(topicMap, projectNameInput);
307
+ if (existingKey && existingKey !== project.name) {
308
+ delete topicMap[existingKey];
309
+ }
310
+ topicMap[project.name] = { projectId: project.id, projectName: project.name, topicId };
311
+ await setTopicMap(ctx, chatId, topicMap);
312
+ await sendMessage(ctx, token, chatId, `${escapeMarkdownV2("🔗")} ${escapeMarkdownV2(`Mapped project "${project.name}" to topic ${topicId}`)}`, { parseMode: "MarkdownV2", messageThreadId });
313
+ ctx.logger.info("Topic mapped", { chatId, projectId: project.id, projectName: project.name, topicId });
314
+ }
315
+ async function handleTopicsCommand(ctx, token, chatId, args, messageThreadId) {
316
+ const [subcommand = "list", ...rest] = args.trim().split(/\s+/).filter(Boolean);
317
+ switch (subcommand.toLowerCase()) {
318
+ case "list":
319
+ await handleTopicsList(ctx, token, chatId, messageThreadId);
320
+ break;
321
+ case "remove":
322
+ await handleTopicsRemove(ctx, token, chatId, rest.join(" "), messageThreadId);
323
+ break;
324
+ case "clear":
325
+ await handleTopicsClear(ctx, token, chatId, messageThreadId);
326
+ break;
327
+ default:
328
+ await sendTopicsUsage(ctx, token, chatId, messageThreadId);
329
+ }
330
+ }
331
+ async function handleTopicsList(ctx, token, chatId, messageThreadId) {
332
+ const topicMap = await getTopicMap(ctx, chatId);
333
+ const entries = Object.entries(topicMap);
334
+ if (entries.length === 0) {
335
+ await sendMessage(ctx, token, chatId, "No topic mappings found for this chat.", { messageThreadId });
336
+ return;
337
+ }
338
+ const lines = [
339
+ escapeMarkdownV2("🧭") + " *Topic mappings*",
340
+ "",
341
+ ...entries.map(([key, value]) => {
342
+ const mapping = normalizeTopicMapping(key, value);
343
+ return `• ${escapeMarkdownV2(mapping.projectName)} ${escapeMarkdownV2("→")} ${escapeMarkdownV2(mapping.topicId)}`;
344
+ }),
345
+ ];
346
+ await sendMessage(ctx, token, chatId, lines.join("\n"), {
347
+ parseMode: "MarkdownV2",
348
+ messageThreadId,
349
+ });
350
+ }
351
+ async function handleTopicsRemove(ctx, token, chatId, projectName, messageThreadId) {
352
+ const input = projectName.trim();
353
+ if (!input) {
354
+ await sendMessage(ctx, token, chatId, "Usage: /topics remove <project\\-name>", {
355
+ parseMode: "MarkdownV2",
356
+ messageThreadId,
357
+ });
358
+ return;
281
359
  }
282
- const existing = (await ctx.state.get({
360
+ const topicMap = await getTopicMap(ctx, chatId);
361
+ const key = findTopicMapKey(topicMap, input);
362
+ if (!key) {
363
+ await sendMessage(ctx, token, chatId, `No topic mapping found for "${input}".`, { messageThreadId });
364
+ return;
365
+ }
366
+ const mapping = normalizeTopicMapping(key, topicMap[key]);
367
+ delete topicMap[key];
368
+ await setTopicMap(ctx, chatId, topicMap);
369
+ await sendMessage(ctx, token, chatId, `${escapeMarkdownV2("🗑️")} ${escapeMarkdownV2(`Removed topic mapping for "${mapping.projectName}".`)}`, { parseMode: "MarkdownV2", messageThreadId });
370
+ }
371
+ async function handleTopicsClear(ctx, token, chatId, messageThreadId) {
372
+ await setTopicMap(ctx, chatId, {});
373
+ await sendMessage(ctx, token, chatId, "Cleared all topic mappings for this chat.", { messageThreadId });
374
+ }
375
+ async function sendTopicsUsage(ctx, token, chatId, messageThreadId) {
376
+ await sendMessage(ctx, token, chatId, [
377
+ escapeMarkdownV2("🧭") + " *Topic Commands*",
378
+ "",
379
+ `/topics list \\- ${escapeMarkdownV2("Show mappings for this chat")}`,
380
+ `/topics remove <project\\-name> \\- ${escapeMarkdownV2("Remove one mapping")}`,
381
+ `/topics clear \\- ${escapeMarkdownV2("Remove all mappings for this chat")}`,
382
+ ].join("\n"), { parseMode: "MarkdownV2", messageThreadId });
383
+ }
384
+ async function resolveProjectByName(ctx, companyId, projectName) {
385
+ const input = projectName.trim();
386
+ if (!input)
387
+ return undefined;
388
+ const projects = await ctx.projects.list({ companyId, limit: 100 });
389
+ return projects.find((project) => project.id === input)
390
+ ?? projects.find((project) => project.name === input)
391
+ ?? projects.find((project) => project.name?.toLowerCase() === input.toLowerCase());
392
+ }
393
+ async function sendProjectNotFoundMessage(ctx, token, chatId, companyId, projectName, messageThreadId) {
394
+ try {
395
+ const projects = await ctx.projects.list({ companyId, limit: 100 });
396
+ const names = projects.map((project) => project.name || project.id).filter(Boolean).join(", ");
397
+ await sendMessage(ctx, token, chatId, `Project "${projectName.trim()}" not found. Available: ${names || "none"}`, { messageThreadId });
398
+ }
399
+ catch {
400
+ await sendMessage(ctx, token, chatId, `Project "${projectName.trim()}" not found.`, { messageThreadId });
401
+ }
402
+ }
403
+ async function getTopicMap(ctx, chatId) {
404
+ const existing = await ctx.state.get({
283
405
  scopeKind: "instance",
284
406
  stateKey: `topic-map-${chatId}`,
285
- }));
286
- const topicMap = existing ?? {};
287
- topicMap[projectName] = topicId;
407
+ });
408
+ if (!existing || typeof existing !== "object" || Array.isArray(existing))
409
+ return {};
410
+ return existing;
411
+ }
412
+ async function setTopicMap(ctx, chatId, topicMap) {
288
413
  await ctx.state.set({ scopeKind: "instance", stateKey: `topic-map-${chatId}` }, topicMap);
289
- await sendMessage(ctx, token, chatId, `${escapeMarkdownV2("🔗")} ${escapeMarkdownV2(`Mapped project "${projectName}" to topic ${topicId}`)}`, { parseMode: "MarkdownV2", messageThreadId });
290
- ctx.logger.info("Topic mapped", { chatId, projectName, topicId });
414
+ }
415
+ function findTopicMapKey(topicMap, projectName) {
416
+ const input = projectName.trim().toLowerCase();
417
+ if (!input)
418
+ return undefined;
419
+ return Object.entries(topicMap).find(([key, value]) => {
420
+ const mapping = normalizeTopicMapping(key, value);
421
+ return key.toLowerCase() === input
422
+ || mapping.projectName.toLowerCase() === input
423
+ || mapping.projectId?.toLowerCase() === input;
424
+ })?.[0];
425
+ }
426
+ function normalizeTopicMapping(projectName, value) {
427
+ if (typeof value === "string") {
428
+ return { projectName, topicId: value };
429
+ }
430
+ return {
431
+ projectId: value.projectId,
432
+ projectName: value.projectName || projectName,
433
+ topicId: String(value.topicId),
434
+ };
291
435
  }
292
436
  export async function getTopicForProject(ctx, chatId, projectName) {
293
437
  if (!projectName)
294
438
  return undefined;
439
+ const topicMap = await getTopicMap(ctx, chatId);
440
+ const key = findTopicMapKey(topicMap, projectName);
441
+ if (!key)
442
+ return undefined;
443
+ const mapping = normalizeTopicMapping(key, topicMap[key]);
444
+ return Number(mapping.topicId);
445
+ }
446
+ async function getProjectNameForTopic(ctx, chatId, messageThreadId) {
447
+ if (!messageThreadId)
448
+ return undefined;
295
449
  const topicMap = (await ctx.state.get({
296
450
  scopeKind: "instance",
297
451
  stateKey: `topic-map-${chatId}`,
298
452
  }));
299
453
  if (!topicMap)
300
454
  return undefined;
301
- const topicId = topicMap[projectName];
302
- return topicId ? Number(topicId) : undefined;
455
+ const topicId = String(messageThreadId);
456
+ const match = Object.entries(topicMap).find(([, mappedTopicId]) => mappedTopicId === topicId);
457
+ return match?.[0];
458
+ }
459
+ async function resolveProjectIdForTopic(ctx, chatId, companyId, messageThreadId) {
460
+ const projectName = await getProjectNameForTopic(ctx, chatId, messageThreadId);
461
+ if (!projectName)
462
+ return undefined;
463
+ try {
464
+ const projects = await ctx.projects.list({ companyId, limit: 100 });
465
+ const exactMatch = projects.find((project) => project.name === projectName);
466
+ if (exactMatch)
467
+ return exactMatch.id;
468
+ return projects.find((project) => project.name?.toLowerCase() === projectName.toLowerCase())?.id;
469
+ }
470
+ catch {
471
+ return undefined;
472
+ }
303
473
  }
304
474
  export async function resolveNotificationThreadId(ctx, chatId, event, topicRouting) {
305
475
  if (!topicRouting)
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
@@ -4,17 +4,25 @@ export declare const DEFAULT_CONFIG: {
4
4
  readonly telegramBotTokenRef: "";
5
5
  readonly defaultChatId: "";
6
6
  readonly approvalsChatId: "";
7
+ readonly approvalsTopicId: "";
7
8
  readonly errorsChatId: "";
9
+ readonly errorsTopicId: "";
10
+ readonly digestChatId: "";
11
+ readonly digestTopicId: "";
8
12
  readonly paperclipBaseUrl: "http://localhost:3100";
13
+ readonly paperclipBoardApiTokenRef: "";
9
14
  readonly paperclipPublicUrl: "";
10
15
  readonly notifyOnIssueCreated: true;
11
16
  readonly notifyOnIssueDone: true;
12
17
  readonly notifyOnIssueAssigned: false;
13
18
  readonly onlyNotifyIfAssignedTo: "";
14
19
  readonly notifyOnApprovalCreated: true;
20
+ readonly onlyNotifyBoardApprovals: false;
15
21
  readonly notifyOnAgentError: true;
16
22
  readonly enableCommands: true;
17
23
  readonly enableInbound: true;
24
+ readonly allowedTelegramUserIds: string[];
25
+ readonly allowedTelegramChatIds: string[];
18
26
  readonly digestMode: "off" | "daily" | "bidaily" | "tridaily";
19
27
  readonly dailyDigestTime: "09:00";
20
28
  readonly bidailySecondTime: "17:00";
package/dist/constants.js CHANGED
@@ -4,17 +4,25 @@ export const DEFAULT_CONFIG = {
4
4
  telegramBotTokenRef: "",
5
5
  defaultChatId: "",
6
6
  approvalsChatId: "",
7
+ approvalsTopicId: "",
7
8
  errorsChatId: "",
9
+ errorsTopicId: "",
10
+ digestChatId: "",
11
+ digestTopicId: "",
8
12
  paperclipBaseUrl: "http://localhost:3100",
13
+ paperclipBoardApiTokenRef: "",
9
14
  paperclipPublicUrl: "",
10
15
  notifyOnIssueCreated: true,
11
16
  notifyOnIssueDone: true,
12
17
  notifyOnIssueAssigned: false,
13
18
  onlyNotifyIfAssignedTo: "",
14
19
  notifyOnApprovalCreated: true,
20
+ onlyNotifyBoardApprovals: false,
15
21
  notifyOnAgentError: true,
16
22
  enableCommands: true,
17
23
  enableInbound: true,
24
+ allowedTelegramUserIds: [],
25
+ allowedTelegramChatIds: [],
18
26
  digestMode: "off",
19
27
  dailyDigestTime: "09:00",
20
28
  bidailySecondTime: "17:00",
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,2BAA2B,CAAC;AACrD,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AAEtC,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,mBAAmB,EAAE,EAAE;IACvB,aAAa,EAAE,EAAE;IACjB,eAAe,EAAE,EAAE;IACnB,YAAY,EAAE,EAAE;IAChB,gBAAgB,EAAE,uBAAuB;IACzC,kBAAkB,EAAE,EAAE;IACtB,oBAAoB,EAAE,IAAI;IAC1B,iBAAiB,EAAE,IAAI;IACvB,qBAAqB,EAAE,KAAK;IAC5B,sBAAsB,EAAE,EAAE;IAC1B,uBAAuB,EAAE,IAAI;IAC7B,kBAAkB,EAAE,IAAI;IACxB,cAAc,EAAE,IAAI;IACpB,aAAa,EAAE,IAAI;IACnB,UAAU,EAAE,KAAiD;IAC7D,eAAe,EAAE,OAAO;IACxB,iBAAiB,EAAE,OAAO;IAC1B,aAAa,EAAE,mBAAmB;IAClC,YAAY,EAAE,KAAK;IACnB,gBAAgB,EAAE,EAAE;IACpB,mBAAmB,EAAE,MAAM;IAC3B,uBAAuB,EAAE,OAAO;IAChC,qBAAqB,EAAE,sDAAsD;IAC7E,0BAA0B;IAC1B,YAAY,EAAE,EAAE;IAChB,iBAAiB,EAAE,EAAc;IACjC,sBAAsB,EAAE,EAAE;IAC1B,iCAAiC;IACjC,+BAA+B,EAAE,EAAE;IACnC,0BAA0B,EAAE,QAAQ,EAAE,MAAM;CACpC,CAAC;AAEX,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AACvC,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AACzC,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAE7C,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,6BAA6B;IACnC,MAAM,EAAE,gCAAgC;IACxC,eAAe,EAAE,2BAA2B;IAC5C,aAAa,EAAE,yBAAyB;IACxC,kBAAkB,EAAE,8BAA8B;IAClD,mBAAmB,EAAE,+BAA+B;IACpD,mBAAmB,EAAE,gCAAgC;IACrD,cAAc,EAAE,0BAA0B;IAC1C,gBAAgB,EAAE,mCAAmC;IACrD,kBAAkB,EAAE,8BAA8B;CAC1C,CAAC;AAEX,+BAA+B;AAC/B,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC;AAC3C,MAAM,CAAC,MAAM,gBAAgB,GAAG,oCAAoC,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,2BAA2B,CAAC;AACrD,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AAEtC,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,mBAAmB,EAAE,EAAE;IACvB,aAAa,EAAE,EAAE;IACjB,eAAe,EAAE,EAAE;IACnB,gBAAgB,EAAE,EAAE;IACpB,YAAY,EAAE,EAAE;IAChB,aAAa,EAAE,EAAE;IACjB,YAAY,EAAE,EAAE;IAChB,aAAa,EAAE,EAAE;IACjB,gBAAgB,EAAE,uBAAuB;IACzC,yBAAyB,EAAE,EAAE;IAC7B,kBAAkB,EAAE,EAAE;IACtB,oBAAoB,EAAE,IAAI;IAC1B,iBAAiB,EAAE,IAAI;IACvB,qBAAqB,EAAE,KAAK;IAC5B,sBAAsB,EAAE,EAAE;IAC1B,uBAAuB,EAAE,IAAI;IAC7B,wBAAwB,EAAE,KAAK;IAC/B,kBAAkB,EAAE,IAAI;IACxB,cAAc,EAAE,IAAI;IACpB,aAAa,EAAE,IAAI;IACnB,sBAAsB,EAAE,EAAc;IACtC,sBAAsB,EAAE,EAAc;IACtC,UAAU,EAAE,KAAiD;IAC7D,eAAe,EAAE,OAAO;IACxB,iBAAiB,EAAE,OAAO;IAC1B,aAAa,EAAE,mBAAmB;IAClC,YAAY,EAAE,KAAK;IACnB,gBAAgB,EAAE,EAAE;IACpB,mBAAmB,EAAE,MAAM;IAC3B,uBAAuB,EAAE,OAAO;IAChC,qBAAqB,EAAE,sDAAsD;IAC7E,0BAA0B;IAC1B,YAAY,EAAE,EAAE;IAChB,iBAAiB,EAAE,EAAc;IACjC,sBAAsB,EAAE,EAAE;IAC1B,iCAAiC;IACjC,+BAA+B,EAAE,EAAE;IACnC,0BAA0B,EAAE,QAAQ,EAAE,MAAM;CACpC,CAAC;AAEX,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AACvC,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AACzC,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAE7C,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,6BAA6B;IACnC,MAAM,EAAE,gCAAgC;IACxC,eAAe,EAAE,2BAA2B;IAC5C,aAAa,EAAE,yBAAyB;IACxC,kBAAkB,EAAE,8BAA8B;IAClD,mBAAmB,EAAE,+BAA+B;IACpD,mBAAmB,EAAE,gCAAgC;IACrD,cAAc,EAAE,0BAA0B;IAC1C,gBAAgB,EAAE,mCAAmC;IACrD,kBAAkB,EAAE,8BAA8B;CAC1C,CAAC;AAEX,+BAA+B;AAC/B,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC;AAC3C,MAAM,CAAC,MAAM,gBAAgB,GAAG,oCAAoC,CAAC"}
package/dist/manifest.js CHANGED
@@ -31,9 +31,22 @@ const manifest = {
31
31
  "activity.log.write",
32
32
  "metrics.write",
33
33
  "jobs.schedule",
34
+ "instance.settings.register",
35
+ "ui.page.register",
34
36
  ],
35
37
  entrypoints: {
36
38
  worker: "./dist/worker.js",
39
+ ui: "./dist/ui",
40
+ },
41
+ ui: {
42
+ slots: [
43
+ {
44
+ type: "settingsPage",
45
+ id: "telegram-settings",
46
+ displayName: "Telegram Settings",
47
+ exportName: "TelegramSettingsPage",
48
+ },
49
+ ],
37
50
  },
38
51
  instanceConfigSchema: {
39
52
  type: "object",
@@ -52,6 +65,13 @@ const manifest = {
52
65
  description: "Internal URL of the Paperclip API server. Used for API calls (approvals, comments). Keep as localhost for same-server deployments.",
53
66
  default: DEFAULT_CONFIG.paperclipBaseUrl,
54
67
  },
68
+ paperclipBoardApiTokenRef: {
69
+ type: "string",
70
+ format: "secret-ref",
71
+ title: "Paperclip Board API Token (secret reference)",
72
+ description: "Secret UUID for a Paperclip board API token. Used by Telegram approval buttons and /approve commands to resolve approvals as a board actor.",
73
+ default: DEFAULT_CONFIG.paperclipBoardApiTokenRef,
74
+ },
55
75
  paperclipPublicUrl: {
56
76
  type: "string",
57
77
  title: "Paperclip Public URL",
@@ -71,12 +91,36 @@ const manifest = {
71
91
  description: "Chat ID for approval requests. Falls back to default chat.",
72
92
  default: DEFAULT_CONFIG.approvalsChatId,
73
93
  },
94
+ approvalsTopicId: {
95
+ type: "string",
96
+ title: "Approvals topic ID",
97
+ description: "Optional Telegram forum topic/thread ID for approval notifications inside the selected approvals/default chat.",
98
+ default: DEFAULT_CONFIG.approvalsTopicId,
99
+ },
74
100
  errorsChatId: {
75
101
  type: "string",
76
102
  title: "Errors Chat ID",
77
103
  description: "Chat ID for agent error notifications. Falls back to default chat.",
78
104
  default: DEFAULT_CONFIG.errorsChatId,
79
105
  },
106
+ errorsTopicId: {
107
+ type: "string",
108
+ title: "Errors topic ID",
109
+ description: "Optional Telegram forum topic/thread ID for agent error notifications inside the selected errors/default chat.",
110
+ default: DEFAULT_CONFIG.errorsTopicId,
111
+ },
112
+ digestChatId: {
113
+ type: "string",
114
+ title: "Digest Chat ID",
115
+ description: "Chat ID for digest notifications. Falls back to the company/default chat.",
116
+ default: DEFAULT_CONFIG.digestChatId,
117
+ },
118
+ digestTopicId: {
119
+ type: "string",
120
+ title: "Digest topic ID",
121
+ description: "Optional Telegram forum topic/thread ID for digest notifications inside the selected digest/company/default chat.",
122
+ default: DEFAULT_CONFIG.digestTopicId,
123
+ },
80
124
  escalationChatId: {
81
125
  type: "string",
82
126
  title: "Escalation Chat ID",
@@ -117,6 +161,12 @@ const manifest = {
117
161
  title: "Notify on approval requested",
118
162
  default: DEFAULT_CONFIG.notifyOnApprovalCreated,
119
163
  },
164
+ onlyNotifyBoardApprovals: {
165
+ type: "boolean",
166
+ title: "Only notify board approval requests",
167
+ description: "When enabled, Telegram approval notifications are sent only for request_board_approval approvals. Leave disabled to notify for every approval request.",
168
+ default: DEFAULT_CONFIG.onlyNotifyBoardApprovals,
169
+ },
120
170
  notifyOnAgentError: {
121
171
  type: "boolean",
122
172
  title: "Notify on agent error",
@@ -152,15 +202,29 @@ const manifest = {
152
202
  enableCommands: {
153
203
  type: "boolean",
154
204
  title: "Enable bot commands",
155
- description: "Allow users to interact with Paperclip via Telegram bot commands (/status, /issues, /agents).",
205
+ description: "Allow users to interact with Paperclip via Telegram bot commands (/status, /issues, /agents). If this is enabled, consider configuring the Telegram user/chat allowlists below.",
156
206
  default: DEFAULT_CONFIG.enableCommands,
157
207
  },
158
208
  enableInbound: {
159
209
  type: "boolean",
160
210
  title: "Enable inbound message routing",
161
- description: "Route Telegram messages to Paperclip issue comments. Messages sent in reply to a notification get attached to that issue.",
211
+ description: "Route Telegram messages to Paperclip issue comments. Messages sent in reply to a notification get attached to that issue. If this is enabled, consider configuring the Telegram user/chat allowlists below.",
162
212
  default: DEFAULT_CONFIG.enableInbound,
163
213
  },
214
+ allowedTelegramUserIds: {
215
+ type: "array",
216
+ items: { type: "string" },
217
+ title: "Allowed Telegram user IDs",
218
+ description: "Optional allowlist of Telegram user IDs allowed to interact with the bot. Leave empty to allow any user. Applies to bot commands, inbound replies, media intake, and inline button callbacks. If both user and chat allowlists are set, both must match. Save the config and restart the plugin if changes are not picked up immediately.",
219
+ default: DEFAULT_CONFIG.allowedTelegramUserIds,
220
+ },
221
+ allowedTelegramChatIds: {
222
+ type: "array",
223
+ items: { type: "string" },
224
+ title: "Allowed Telegram chat IDs",
225
+ description: "Optional allowlist of Telegram chat IDs where inbound bot interactions are accepted. Leave empty to allow any chat. Use private DM IDs and/or private group IDs to restrict where commands, replies, media intake, and callbacks are accepted. If both user and chat allowlists are set, both must match. Save the config and restart the plugin if changes are not picked up immediately.",
226
+ default: DEFAULT_CONFIG.allowedTelegramChatIds,
227
+ },
164
228
  // --- Escalation ---
165
229
  escalationTimeoutMs: {
166
230
  type: "number",