paperclip-plugin-telegram 0.2.9 → 0.4.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.
@@ -18,6 +18,7 @@ type AcpOutputEvent = {
18
18
  };
19
19
  export declare function setupAcpOutputListener(ctx: PluginContext, token: string): void;
20
20
  export declare function handleAcpCommand(ctx: PluginContext, token: string, chatId: string, args: string, messageThreadId?: number, companyId?: string): Promise<void>;
21
+ export declare function wakeAgentWithIssue(ctx: PluginContext, agentId: string, companyId: string, promptText: string, reason: string): Promise<string | null>;
21
22
  export declare function routeMessageToAgent(ctx: PluginContext, token: string, chatId: string, threadId: number, text: string, replyToMessageId?: number, companyId?: string): Promise<boolean>;
22
23
  export declare function handleAcpOutput(ctx: PluginContext, token: string, event: AcpOutputEvent): Promise<void>;
23
24
  export declare function handleHandoffToolCall(ctx: PluginContext, token: string, params: Record<string, unknown>, companyId: string, sourceAgentId: string): Promise<{
@@ -1,4 +1,5 @@
1
1
  import { sendMessage, escapeMarkdownV2, sendChatAction } from "./telegram-api.js";
2
+ import { truncateAtWord } from "./telegram-api.js";
2
3
  import { MAX_AGENTS_PER_THREAD, DEFAULT_CONVERSATION_TURNS, MAX_CONVERSATION_TURNS, ACP_SPAWN_EVENT, ACP_OUTPUT_EVENT, } from "./constants.js";
3
4
  // --- Setup: register ACP output listener ---
4
5
  export function setupAcpOutputListener(ctx, token) {
@@ -40,16 +41,71 @@ export async function handleAcpCommand(ctx, token, chatId, args, messageThreadId
40
41
  * Resolve an agent by name/urlKey (case-insensitive).
41
42
  * The plugin SDK's `agents.get()` requires a UUID, so we list all agents
42
43
  * and match by name or urlKey.
44
+ *
45
+ * The SDK may return the agent UUID in `id`, `agentId`, or `_id` depending
46
+ * on the Paperclip version. We pick the first field that looks like a UUID
47
+ * and fall back to `id` if none do (caller will get a clear error on create).
43
48
  */
49
+ const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
44
50
  async function resolveAgentByName(ctx, name, companyId) {
45
51
  try {
46
52
  const allAgents = await ctx.agents.list({ companyId });
47
53
  const lower = name.toLowerCase();
48
54
  const match = allAgents.find((a) => a.name?.toLowerCase() === lower ||
49
55
  a.urlKey?.toLowerCase() === lower);
50
- return match ? { id: match.id, name: match.name } : null;
56
+ if (!match)
57
+ return null;
58
+ // Find the UUID — different SDK versions may use different field names
59
+ const candidateId = match.agentId ?? match._id ?? match.id;
60
+ const resolvedId = UUID_RE.test(String(candidateId)) ? String(candidateId) : String(match.id);
61
+ ctx.logger.info("Resolved agent by name", {
62
+ agentName: name,
63
+ resolvedId,
64
+ rawId: match.id,
65
+ rawAgentId: match.agentId,
66
+ hasUrlKey: !!match.urlKey,
67
+ });
68
+ return { id: resolvedId, name: match.name };
69
+ }
70
+ catch (err) {
71
+ ctx.logger.error("Failed to resolve agent by name", { agentName: name, companyId, error: String(err) });
72
+ return null;
73
+ }
74
+ }
75
+ // --- Native prompt delivery via issue creation ---
76
+ //
77
+ // The Paperclip heartbeat system only delivers taskId/issueId/commentId to
78
+ // agents — freeform prompts passed via sessions.sendMessage({ prompt }) are
79
+ // silently dropped. To work around this, we create a lightweight issue whose
80
+ // title IS the prompt and assign it to the agent. The agent wakes with
81
+ // PAPERCLIP_TASK_ID pointing to that issue and can read the prompt from the
82
+ // issue title + description.
83
+ export async function wakeAgentWithIssue(ctx, agentId, companyId, promptText, reason) {
84
+ try {
85
+ const title = truncateAtWord(promptText.replace(/\n/g, " "), 200);
86
+ const description = promptText.length > 200 ? promptText : undefined;
87
+ const issue = await ctx.issues.create({
88
+ companyId,
89
+ title: `[Telegram] ${title}`,
90
+ description,
91
+ assigneeAgentId: agentId,
92
+ });
93
+ await ctx.issues.update(issue.id, { status: "todo" }, companyId);
94
+ ctx.logger.info("Created issue for native agent prompt delivery", {
95
+ issueId: issue.id,
96
+ agentId,
97
+ reason,
98
+ promptLength: promptText.length,
99
+ });
100
+ return issue.id;
51
101
  }
52
- catch {
102
+ catch (err) {
103
+ ctx.logger.error("Failed to create issue for native prompt delivery", {
104
+ agentId,
105
+ companyId,
106
+ reason,
107
+ error: String(err),
108
+ });
53
109
  return null;
54
110
  }
55
111
  }
@@ -91,11 +147,18 @@ async function handleAcpSpawn(ctx, token, chatId, agentName, messageThreadId, co
91
147
  transport = "native";
92
148
  ctx.logger.info("Created native agent session", { agentId, sessionId });
93
149
  }
94
- catch {
150
+ catch (err) {
151
+ ctx.logger.error("Native session creation failed, falling back to ACP", {
152
+ agentId,
153
+ agentName: trimmedName,
154
+ companyId: resolvedCompanyId,
155
+ error: String(err),
156
+ });
95
157
  sessionId = `acp_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
96
158
  }
97
159
  }
98
160
  else {
161
+ ctx.logger.warn("Agent not found by name, using ACP transport", { agentName: trimmedName, companyId: resolvedCompanyId });
99
162
  sessionId = `acp_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
100
163
  }
101
164
  const now = new Date().toISOString();
@@ -309,70 +372,12 @@ export async function routeMessageToAgent(ctx, token, chatId, threadId, text, re
309
372
  const resolvedCompanyId = companyId ?? await resolveCompanyIdFromChat(ctx, chatId);
310
373
  // Route via correct transport
311
374
  if (targetSession.transport === "native") {
312
- try {
313
- await ctx.agents.sessions.sendMessage(targetSession.sessionId, resolvedCompanyId, {
314
- prompt: text,
315
- reason: "telegram_message",
316
- onEvent: (() => {
317
- // Buffer assistant text and send only the final response
318
- const assistantTextBuffer = [];
319
- return (event) => {
320
- if (event.eventType === "chunk" && event.message) {
321
- const msg = event.message;
322
- if (msg.startsWith("{")) {
323
- try {
324
- const parsed = JSON.parse(msg);
325
- // Collect assistant text content from both Claude and Pi output formats.
326
- // Claude emits: { type: "assistant", message: { content: [...] } }
327
- // Pi emits: { type: "message_end", message: { role: "assistant", content: [...] } }
328
- const isClaudeAssistant = parsed.type === "assistant" && parsed.message?.content;
329
- const isPiAssistant = parsed.type === "message_end"
330
- && parsed.message?.role === "assistant"
331
- && Array.isArray(parsed.message.content);
332
- if (isClaudeAssistant || isPiAssistant) {
333
- const textParts = parsed.message.content
334
- .filter((c) => c.type === "text" && c.text)
335
- .map((c) => c.text);
336
- if (textParts.length > 0) {
337
- assistantTextBuffer.push(textParts.join("\n"));
338
- }
339
- }
340
- }
341
- catch {
342
- // Not JSON — ignore non-structured output
343
- }
344
- }
345
- // Drop all non-JSON chunks (system messages like "run started", "adapter invocation", etc.)
346
- }
347
- else if (event.eventType === "done") {
348
- const finalText = assistantTextBuffer.length > 0
349
- ? assistantTextBuffer.join("\n\n")
350
- : "";
351
- if (finalText) {
352
- handleAcpOutput(ctx, token, {
353
- sessionId: targetSession.sessionId,
354
- chatId,
355
- threadId,
356
- text: finalText,
357
- done: true,
358
- }).catch((err) => ctx.logger.error("Native output handler error", { error: String(err) }));
359
- }
360
- else {
361
- handleAcpOutput(ctx, token, {
362
- sessionId: targetSession.sessionId,
363
- chatId,
364
- threadId,
365
- text: event.message ?? "Run completed",
366
- done: true,
367
- }).catch((err) => ctx.logger.error("Native output handler error", { error: String(err) }));
368
- }
369
- }
370
- };
371
- })(),
375
+ const issueId = await wakeAgentWithIssue(ctx, targetSession.agentId, resolvedCompanyId, text, "telegram_message");
376
+ if (!issueId) {
377
+ ctx.logger.error("Failed to deliver message to native agent — issue creation failed", {
378
+ sessionId: targetSession.sessionId,
379
+ agentId: targetSession.agentId,
372
380
  });
373
- }
374
- catch (err) {
375
- ctx.logger.error("Failed to send message to native session", { error: String(err) });
376
381
  return false;
377
382
  }
378
383
  }
@@ -637,7 +642,10 @@ async function executeHandoff(ctx, token, chatId, threadId, targetAgent, context
637
642
  sessionId = session.sessionId;
638
643
  transport = "native";
639
644
  }
640
- catch {
645
+ catch (err) {
646
+ ctx.logger.error("Native session creation failed during handoff, falling back to ACP", {
647
+ agentId, targetAgent, companyId, error: String(err),
648
+ });
641
649
  sessionId = `acp_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
642
650
  }
643
651
  }
@@ -671,15 +679,7 @@ async function executeHandoff(ctx, token, chatId, threadId, targetAgent, context
671
679
  }
672
680
  // Send context to target agent
673
681
  if (targetSession.transport === "native") {
674
- try {
675
- await ctx.agents.sessions.sendMessage(targetSession.sessionId, companyId, {
676
- prompt: `[Handoff context] ${contextSummary}`,
677
- reason: "handoff",
678
- });
679
- }
680
- catch (err) {
681
- ctx.logger.error("Failed to send handoff context to native session", { error: String(err) });
682
- }
682
+ await wakeAgentWithIssue(ctx, targetSession.agentId, companyId, `[Handoff context] ${contextSummary}`, "handoff");
683
683
  }
684
684
  else {
685
685
  ctx.events.emit(ACP_SPAWN_EVENT, companyId, {
@@ -723,7 +723,10 @@ export async function handleDiscussToolCall(ctx, token, params, companyId, sourc
723
723
  sessionId = session.sessionId;
724
724
  transport = "native";
725
725
  }
726
- catch {
726
+ catch (err) {
727
+ ctx.logger.error("Native session creation failed during discussion, falling back to ACP", {
728
+ agentId, targetAgent, companyId, error: String(err),
729
+ });
727
730
  sessionId = `acp_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
728
731
  }
729
732
  }
@@ -783,15 +786,7 @@ export async function handleDiscussToolCall(ctx, token, params, companyId, sourc
783
786
  ].filter(Boolean).join("\n"), { parseMode: "MarkdownV2", messageThreadId: threadId });
784
787
  // Send initial message to target via correct transport
785
788
  if (targetSession.transport === "native") {
786
- try {
787
- await ctx.agents.sessions.sendMessage(targetSession.sessionId, companyId, {
788
- prompt: `[Discussion: ${topic}] ${initialMessage}`,
789
- reason: "discussion",
790
- });
791
- }
792
- catch (err) {
793
- ctx.logger.error("Failed to send discussion message to native session", { error: String(err) });
794
- }
789
+ await wakeAgentWithIssue(ctx, targetSession.agentId, companyId, `[Discussion: ${topic}] ${initialMessage}`, "discussion");
795
790
  }
796
791
  else {
797
792
  ctx.events.emit(ACP_SPAWN_EVENT, companyId, {
@@ -848,15 +843,7 @@ async function checkConversationLoopContinuation(ctx, token, chatId, threadId, s
848
843
  if (nextSession) {
849
844
  const resolvedCompanyId = await resolveCompanyIdFromChat(ctx, chatId);
850
845
  if (nextSession.transport === "native") {
851
- try {
852
- await ctx.agents.sessions.sendMessage(nextSessionId, resolvedCompanyId, {
853
- prompt: `[Discussion: ${loop.topic}] ${text}`,
854
- reason: "discussion_turn",
855
- });
856
- }
857
- catch (err) {
858
- ctx.logger.error("Failed to send discussion turn to native session", { error: String(err) });
859
- }
846
+ await wakeAgentWithIssue(ctx, nextSession.agentId, resolvedCompanyId, `[Discussion: ${loop.topic}] ${text}`, "discussion_turn");
860
847
  }
861
848
  else {
862
849
  ctx.events.emit(ACP_SPAWN_EVENT, resolvedCompanyId, {
@@ -1 +1 @@
1
- {"version":3,"file":"acp-bridge.js","sourceRoot":"","sources":["../src/acp-bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acp-bridge.js","sourceRoot":"","sources":["../src/acp-bridge.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { PluginContext } from "@paperclipai/plugin-sdk";
1
+ import type { PluginContext, PluginEvent } from "@paperclipai/plugin-sdk";
2
2
  type BotCommand = {
3
3
  command: string;
4
4
  description: string;
@@ -7,4 +7,5 @@ export declare const BOT_COMMANDS: BotCommand[];
7
7
  export declare function handleCommand(ctx: PluginContext, token: string, chatId: string, command: string, args: string, messageThreadId?: number, baseUrl?: string, publicUrl?: string): Promise<void>;
8
8
  export declare function handleConnectTopic(ctx: PluginContext, token: string, chatId: string, args: string, messageThreadId?: number): Promise<void>;
9
9
  export declare function getTopicForProject(ctx: PluginContext, chatId: string, projectName?: string): Promise<number | undefined>;
10
+ export declare function resolveNotificationThreadId(ctx: PluginContext, chatId: string, event: PluginEvent, topicRouting: boolean): Promise<number | undefined>;
10
11
  export {};
package/dist/commands.js CHANGED
@@ -2,6 +2,7 @@ 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
4
  export const BOT_COMMANDS = [
5
+ { command: "create", description: "Create a new task (assigned to CEO agent)" },
5
6
  { command: "status", description: "Company health: active agents, open issues" },
6
7
  { command: "issues", description: "List open issues (optionally by project)" },
7
8
  { command: "agents", description: "List agents with current status" },
@@ -15,6 +16,9 @@ export const BOT_COMMANDS = [
15
16
  export async function handleCommand(ctx, token, chatId, command, args, messageThreadId, baseUrl, publicUrl) {
16
17
  await ctx.metrics.write(METRIC_NAMES.commandsHandled, 1);
17
18
  switch (command) {
19
+ case "create":
20
+ await handleCreate(ctx, token, chatId, args, messageThreadId, publicUrl || baseUrl);
21
+ break;
18
22
  case "status":
19
23
  await handleStatus(ctx, token, chatId, messageThreadId, publicUrl);
20
24
  break;
@@ -199,7 +203,10 @@ async function handleConnect(ctx, token, chatId, companyArg, messageThreadId) {
199
203
  await sendMessage(ctx, token, chatId, `Company "${input}" not found. Available: ${names || "none"}`, { messageThreadId });
200
204
  return;
201
205
  }
206
+ // Inbound: chat → company (for commands like /status)
202
207
  await ctx.state.set({ scopeKind: "instance", stateKey: `chat_${chatId}` }, { companyId: match.id, companyName: match.name ?? input, linkedAt: new Date().toISOString() });
208
+ // Outbound: company → chat (for notifications)
209
+ await ctx.state.set({ scopeKind: "company", scopeId: match.id, stateKey: "telegram-chat" }, chatId);
203
210
  await sendMessage(ctx, token, chatId, `${escapeMarkdownV2("🔗")} ${escapeMarkdownV2("Linked this chat to company:")} *${escapeMarkdownV2(match.name ?? input)}*`, { parseMode: "MarkdownV2", messageThreadId });
204
211
  ctx.logger.info("Chat linked to company", { chatId, companyId: match.id, companyName: match.name });
205
212
  }
@@ -207,17 +214,71 @@ async function handleConnect(ctx, token, chatId, companyArg, messageThreadId) {
207
214
  await sendMessage(ctx, token, chatId, `Failed to connect: ${err instanceof Error ? err.message : String(err)}`, { messageThreadId });
208
215
  }
209
216
  }
217
+ async function handleCreate(ctx, token, chatId, titleArg, messageThreadId, linkBaseUrl) {
218
+ const title = titleArg.trim();
219
+ if (!title) {
220
+ await sendMessage(ctx, token, chatId, "Usage: /create <task title>", { messageThreadId });
221
+ return;
222
+ }
223
+ await sendChatAction(ctx, token, chatId);
224
+ try {
225
+ const companyId = await resolveCompanyId(ctx, chatId);
226
+ const company = await ctx.companies.get(companyId);
227
+ const issuePrefix = company?.issuePrefix;
228
+ // Find the CEO agent to assign to
229
+ const agents = await ctx.agents.list({ companyId });
230
+ const ceo = agents.find((a) => a.role === "ceo" && a.status !== "paused" && a.status !== "error");
231
+ // Create the issue WITHOUT assignee first, then update with both status and assignee.
232
+ // This ordering is load-bearing: the issue_assigned wake only fires when the assignee
233
+ // *transitions* from null to an agent. If we set the assignee at creation time, there's
234
+ // no transition and the agent never gets woken.
235
+ let issue = await ctx.issues.create({ companyId, title });
236
+ if (ceo) {
237
+ issue = await ctx.issues.update(issue.id, { status: "todo", assigneeAgentId: ceo.id }, companyId);
238
+ }
239
+ else {
240
+ // No CEO to assign to — still bump status to todo so it's visible in the backlog
241
+ issue = await ctx.issues.update(issue.id, { status: "todo" }, companyId);
242
+ }
243
+ const id = issue.identifier ?? issue.id;
244
+ const hasLink = linkBaseUrl && isExternalUrl(linkBaseUrl) && issuePrefix;
245
+ const idText = hasLink
246
+ ? `[${escapeMarkdownV2(id)}](${linkBaseUrl}/${issuePrefix}/issues/${id})`
247
+ : `\`${escapeMarkdownV2(id)}\``;
248
+ const assigneeText = ceo ? ` ${escapeMarkdownV2("→")} *${escapeMarkdownV2(ceo.name)}*` : "";
249
+ await sendMessage(ctx, token, chatId, `${escapeMarkdownV2("✅")} *Task created*: ${idText}${assigneeText}\n${escapeMarkdownV2(title)}`, { parseMode: "MarkdownV2", messageThreadId });
250
+ }
251
+ catch (err) {
252
+ await sendMessage(ctx, token, chatId, `Failed to create task: ${err instanceof Error ? err.message : String(err)}`, { messageThreadId });
253
+ }
254
+ }
210
255
  export async function handleConnectTopic(ctx, token, chatId, args, messageThreadId) {
211
256
  const parts = args.trim().split(/\s+/);
212
- if (parts.length < 2) {
213
- await sendMessage(ctx, token, chatId, "Usage: /connect\\-topic <project\\-name> <topic\\-id>", {
257
+ if (parts.length < 1 || (parts.length < 2 && !messageThreadId)) {
258
+ await sendMessage(ctx, token, chatId, "Usage: /connect\\-topic <project\\-name> \\[topic\\-id\\]", {
214
259
  parseMode: "MarkdownV2",
215
260
  messageThreadId,
216
261
  });
217
262
  return;
218
263
  }
219
- const topicId = parts.pop();
220
- const projectName = parts.join(" ");
264
+ let topicId;
265
+ let projectName;
266
+ const explicitTopicId = parts.length >= 2 && /^\d+$/.test(parts[parts.length - 1]);
267
+ if (explicitTopicId) {
268
+ topicId = parts.pop();
269
+ projectName = parts.join(" ");
270
+ }
271
+ else {
272
+ if (!messageThreadId) {
273
+ await sendMessage(ctx, token, chatId, "Usage: /connect\\-topic <project\\-name> \\[topic\\-id\\]", {
274
+ parseMode: "MarkdownV2",
275
+ messageThreadId,
276
+ });
277
+ return;
278
+ }
279
+ topicId = String(messageThreadId);
280
+ projectName = parts.join(" ");
281
+ }
221
282
  const existing = (await ctx.state.get({
222
283
  scopeKind: "instance",
223
284
  stateKey: `topic-map-${chatId}`,
@@ -240,6 +301,41 @@ export async function getTopicForProject(ctx, chatId, projectName) {
240
301
  const topicId = topicMap[projectName];
241
302
  return topicId ? Number(topicId) : undefined;
242
303
  }
304
+ export async function resolveNotificationThreadId(ctx, chatId, event, topicRouting) {
305
+ if (!topicRouting)
306
+ return undefined;
307
+ const projectName = await resolveEventProjectName(ctx, event);
308
+ return getTopicForProject(ctx, chatId, projectName);
309
+ }
310
+ async function resolveEventProjectName(ctx, event) {
311
+ const payload = event.payload;
312
+ const payloadProjectName = payload.projectName ? String(payload.projectName) : undefined;
313
+ if (payloadProjectName)
314
+ return payloadProjectName;
315
+ const payloadProjectId = payload.projectId ? String(payload.projectId) : undefined;
316
+ if (payloadProjectId) {
317
+ try {
318
+ const project = await ctx.projects.get(payloadProjectId, event.companyId);
319
+ if (project?.name)
320
+ return project.name;
321
+ }
322
+ catch {
323
+ return undefined;
324
+ }
325
+ }
326
+ if (event.entityType !== "issue" || !event.entityId)
327
+ return undefined;
328
+ try {
329
+ const issue = await ctx.issues.get(event.entityId, event.companyId);
330
+ if (!issue?.projectId)
331
+ return undefined;
332
+ const project = await ctx.projects.get(issue.projectId, event.companyId);
333
+ return project?.name;
334
+ }
335
+ catch {
336
+ return undefined;
337
+ }
338
+ }
243
339
  async function resolveCompanyId(ctx, chatId) {
244
340
  const mapping = await ctx.state.get({
245
341
  scopeKind: "instance",