paperclip-plugin-telegram 0.7.1 → 0.8.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/README.md +5 -5
- package/dist/acp-bridge.d.ts +9 -2
- package/dist/acp-bridge.js +65 -7
- package/dist/acp-bridge.js.map +1 -1
- package/dist/agent-status.d.ts +26 -0
- package/dist/agent-status.js +33 -0
- package/dist/agent-status.js.map +1 -0
- package/dist/commands.js +41 -9
- package/dist/commands.js.map +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/escalation.d.ts +1 -1
- package/dist/escalation.js +3 -1
- package/dist/escalation.js.map +1 -1
- package/dist/formatters.js +17 -5
- package/dist/formatters.js.map +1 -1
- package/dist/manifest.js +27 -0
- package/dist/manifest.js.map +1 -1
- package/dist/media-pipeline.js +12 -3
- package/dist/media-pipeline.js.map +1 -1
- package/dist/runtime-token.d.ts +10 -3
- package/dist/runtime-token.js +18 -8
- package/dist/runtime-token.js.map +1 -1
- package/dist/secret-ref-validation.d.ts +29 -1
- package/dist/secret-ref-validation.js +33 -1
- package/dist/secret-ref-validation.js.map +1 -1
- package/dist/ui/index.js +90 -36
- package/dist/ui/index.js.map +1 -1
- package/dist/watch-registry.d.ts +1 -1
- package/dist/watch-registry.js +7 -6
- package/dist/watch-registry.js.map +1 -1
- package/dist/worker.d.ts +1 -0
- package/dist/worker.js +715 -424
- package/dist/worker.js.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -28,8 +28,8 @@ This is that plugin.
|
|
|
28
28
|
- **Issue created** - Title, description, status, priority, assignee, project fields, and a "View Issue" link
|
|
29
29
|
- **Issue done** - Completion confirmation with status fields
|
|
30
30
|
- **Approval requested** - Interactive **Approve** and **Reject** inline buttons. Click to act without leaving Telegram.
|
|
31
|
-
- **Agent error** - Error message with warning indicator
|
|
32
|
-
- **Agent run started/finished** -
|
|
31
|
+
- **Agent error** - Error message with warning indicator and human-readable agent label (the full agent ID is kept in a metadata line for correlation)
|
|
32
|
+
- **Agent run started/finished** - Optional lifecycle notifications, disabled by default to avoid chat spam
|
|
33
33
|
|
|
34
34
|
### Interactive approvals
|
|
35
35
|
- Approve/reject inline buttons on every approval notification
|
|
@@ -153,9 +153,6 @@ curl -X POST http://127.0.0.1:3100/api/plugins/install \
|
|
|
153
153
|
-d '{"packageName":"paperclip-plugin-telegram"}'
|
|
154
154
|
```
|
|
155
155
|
|
|
156
|
-
> **Note — `paperclipai` master, post [#5429](https://github.com/paperclipai/paperclip/pull/5429) (2026-05-09):**
|
|
157
|
-
> The new Secrets Manager ships with a temporary kill switch on plugin secret-ref UUIDs while a company-scoped `plugin_config` follow-up lands. If you're running paperclipai master, plugin activation will fail with `Plugin secret references are disabled until company-scoped plugin config lands`, and `POST /api/plugins/:id/config` returns HTTP 422 for configs containing secret-ref UUIDs (e.g. `telegramBotTokenRef`). This is intentional fail-closed mitigation (PAP-2394 — see the [upstream plan doc](https://github.com/paperclipai/paperclip/blob/master/doc/plans/2026-04-26-plugin-secret-ref-company-scope.md)). Until the follow-up lands, pin to the last paperclipai release before #5429. This callout will be removed once secret-ref resolution is restored.
|
|
158
|
-
|
|
159
156
|
## Troubleshooting: confirm your Paperclip host
|
|
160
157
|
|
|
161
158
|
Before filing a bug, confirm which Paperclip host this plugin is actually talking to. Run `paperclipai plugin target` ([#8575](https://github.com/paperclipai/paperclip/pull/8575)) — it prints the resolved API URL plus the server's status, version, deploymentMode, and deploymentExposure *before* anything is installed. A server version older than this plugin expects is the most common cause of activation failures and secret-resolution errors (e.g. `telegramBotTokenRef` not resolving) that look like plugin bugs but aren't. If the URL or version is wrong, point Paperclip at the right host — or update the server — before opening an issue.
|
|
@@ -194,6 +191,9 @@ Before filing a bug, confirm which Paperclip host this plugin is actually talkin
|
|
|
194
191
|
| `enableCommands` | No | Enable bot commands (default: true) |
|
|
195
192
|
| `enableInbound` | No | Route Telegram replies to issues (default: true) |
|
|
196
193
|
| `onlyNotifyBoardApprovals` | No | When enabled, send Telegram approval notifications only for `request_board_approval` approvals |
|
|
194
|
+
| `notifyOnAgentError` | No | Send agent failure notifications (default: true) |
|
|
195
|
+
| `notifyOnAgentRunStarted` | No | Send agent run-start lifecycle notifications (default: false) |
|
|
196
|
+
| `notifyOnAgentRunFinished` | No | Send agent run-finish lifecycle notifications (default: false) |
|
|
197
197
|
| `allowedTelegramUserIds` | No | Optional allowlist of Telegram user IDs allowed to use commands, inbound replies, media intake, and inline buttons. Empty means any user is allowed |
|
|
198
198
|
| `allowedTelegramChatIds` | No | Optional allowlist of Telegram chat IDs where commands, inbound replies, media intake, and inline buttons are accepted. Empty means any chat is allowed |
|
|
199
199
|
| `topicRouting` | No | Map forum topics to projects (default: false) |
|
package/dist/acp-bridge.d.ts
CHANGED
|
@@ -16,11 +16,18 @@ type AcpOutputEvent = {
|
|
|
16
16
|
text: string;
|
|
17
17
|
done?: boolean;
|
|
18
18
|
};
|
|
19
|
-
|
|
19
|
+
/**
|
|
20
|
+
* `resolveToken` is called per-delivery rather than a token captured once:
|
|
21
|
+
* setup() runs before any configuration is available (see worker.ts's
|
|
22
|
+
* deliveries-only bootstrap), so the token this listener needs can only be
|
|
23
|
+
* read from the runtime that `onConfigChanged` builds later, and can change
|
|
24
|
+
* whenever the plugin's bot token is rotated.
|
|
25
|
+
*/
|
|
26
|
+
export declare function setupAcpOutputListener(ctx: PluginContext, resolveToken: () => string | null): void;
|
|
20
27
|
export declare function handleAcpCommand(ctx: PluginContext, token: string, chatId: string, args: string, messageThreadId?: number, companyId?: string, maxAgentsPerThread?: number): Promise<void>;
|
|
21
28
|
export declare function wakeAgentWithIssue(ctx: PluginContext, agentId: string, companyId: string, promptText: string, reason: string, projectId?: string): Promise<string | null>;
|
|
22
29
|
export declare function routeMessageToAgent(ctx: PluginContext, token: string, chatId: string, threadId: number, text: string, replyToMessageId?: number, companyId?: string): Promise<boolean>;
|
|
23
|
-
export declare function handleAcpOutput(ctx: PluginContext, token: string, event: AcpOutputEvent): Promise<void>;
|
|
30
|
+
export declare function handleAcpOutput(ctx: PluginContext, token: string, event: AcpOutputEvent, companyId?: string): Promise<void>;
|
|
24
31
|
export declare function handleHandoffToolCall(ctx: PluginContext, token: string, params: Record<string, unknown>, companyId: string, sourceAgentId: string): Promise<{
|
|
25
32
|
content?: string;
|
|
26
33
|
error?: string;
|
package/dist/acp-bridge.js
CHANGED
|
@@ -3,10 +3,25 @@ import { truncateAtWord } from "./telegram-api.js";
|
|
|
3
3
|
import { resolveMappedProjectIdForTopic } from "./topic-projects.js";
|
|
4
4
|
import { MAX_AGENTS_PER_THREAD, DEFAULT_CONVERSATION_TURNS, MAX_CONVERSATION_TURNS, ACP_SPAWN_EVENT, ACP_OUTPUT_EVENT, } from "./constants.js";
|
|
5
5
|
// --- Setup: register ACP output listener ---
|
|
6
|
-
|
|
6
|
+
/**
|
|
7
|
+
* `resolveToken` is called per-delivery rather than a token captured once:
|
|
8
|
+
* setup() runs before any configuration is available (see worker.ts's
|
|
9
|
+
* deliveries-only bootstrap), so the token this listener needs can only be
|
|
10
|
+
* read from the runtime that `onConfigChanged` builds later, and can change
|
|
11
|
+
* whenever the plugin's bot token is rotated.
|
|
12
|
+
*/
|
|
13
|
+
export function setupAcpOutputListener(ctx, resolveToken) {
|
|
7
14
|
ctx.events.on(ACP_OUTPUT_EVENT, async (event) => {
|
|
15
|
+
const token = resolveToken();
|
|
16
|
+
if (!token) {
|
|
17
|
+
ctx.logger.warn("Skipping ACP output because the Telegram plugin has no active runtime yet");
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
8
20
|
const payload = event.payload;
|
|
9
|
-
|
|
21
|
+
// The envelope's companyId is the host's own; it is already trusted enough
|
|
22
|
+
// to resolve the bot token. Passing it on keeps the discussion loop from
|
|
23
|
+
// re-deriving the company from chat state, which is guesswork by comparison.
|
|
24
|
+
await handleAcpOutput(ctx, token, payload, event.companyId);
|
|
10
25
|
});
|
|
11
26
|
}
|
|
12
27
|
// --- ACP command handler ---
|
|
@@ -139,6 +154,10 @@ async function handleAcpSpawn(ctx, token, chatId, agentName, messageThreadId, co
|
|
|
139
154
|
const trimmedName = agentName.trim();
|
|
140
155
|
const displayName = trimmedName.charAt(0).toUpperCase() + trimmedName.slice(1);
|
|
141
156
|
const resolvedCompanyId = companyId ?? await resolveCompanyIdFromChat(ctx, chatId);
|
|
157
|
+
if (!resolvedCompanyId) {
|
|
158
|
+
await sendMessage(ctx, token, chatId, NOT_LINKED_MESSAGE, { messageThreadId });
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
142
161
|
// Try native session first: resolve agent by name, then create session
|
|
143
162
|
let transport = "acp";
|
|
144
163
|
let sessionId;
|
|
@@ -255,6 +274,10 @@ async function handleAcpCancel(ctx, token, chatId, messageThreadId, companyId) {
|
|
|
255
274
|
// Cancel the most recently active session
|
|
256
275
|
const target = activeSessions.sort((a, b) => new Date(b.lastActivityAt).getTime() - new Date(a.lastActivityAt).getTime())[0];
|
|
257
276
|
const resolvedCompanyId = companyId ?? await resolveCompanyIdFromChat(ctx, chatId);
|
|
277
|
+
if (!resolvedCompanyId) {
|
|
278
|
+
await sendMessage(ctx, token, chatId, NOT_LINKED_MESSAGE, { messageThreadId });
|
|
279
|
+
return;
|
|
280
|
+
}
|
|
258
281
|
if (target.transport === "native") {
|
|
259
282
|
try {
|
|
260
283
|
await ctx.agents.sessions.close(target.sessionId, resolvedCompanyId);
|
|
@@ -307,6 +330,10 @@ async function handleAcpClose(ctx, token, chatId, targetAgentName, messageThread
|
|
|
307
330
|
targetSession = activeSessions.sort((a, b) => new Date(b.lastActivityAt).getTime() - new Date(a.lastActivityAt).getTime())[0];
|
|
308
331
|
}
|
|
309
332
|
const resolvedCompanyId = companyId ?? await resolveCompanyIdFromChat(ctx, chatId);
|
|
333
|
+
if (!resolvedCompanyId) {
|
|
334
|
+
await sendMessage(ctx, token, chatId, NOT_LINKED_MESSAGE, { messageThreadId });
|
|
335
|
+
return;
|
|
336
|
+
}
|
|
310
337
|
// Close via the correct transport
|
|
311
338
|
if (targetSession.transport === "native") {
|
|
312
339
|
try {
|
|
@@ -377,6 +404,12 @@ export async function routeMessageToAgent(ctx, token, chatId, threadId, text, re
|
|
|
377
404
|
}
|
|
378
405
|
await saveSessions(ctx, chatId, threadId, sessions);
|
|
379
406
|
const resolvedCompanyId = companyId ?? await resolveCompanyIdFromChat(ctx, chatId);
|
|
407
|
+
if (!resolvedCompanyId) {
|
|
408
|
+
// Handled: the message was addressed to a live session, so staying silent
|
|
409
|
+
// here would look like the agent simply ignored it.
|
|
410
|
+
await sendMessage(ctx, token, chatId, NOT_LINKED_MESSAGE, { messageThreadId: threadId });
|
|
411
|
+
return true;
|
|
412
|
+
}
|
|
380
413
|
const projectId = await resolveMappedProjectIdForTopic(ctx, chatId, resolvedCompanyId, threadId);
|
|
381
414
|
// Route via correct transport
|
|
382
415
|
if (targetSession.transport === "native") {
|
|
@@ -410,7 +443,7 @@ export async function routeMessageToAgent(ctx, token, chatId, threadId, text, re
|
|
|
410
443
|
return true;
|
|
411
444
|
}
|
|
412
445
|
// --- ACP output handler (sequenced, labeled) ---
|
|
413
|
-
export async function handleAcpOutput(ctx, token, event) {
|
|
446
|
+
export async function handleAcpOutput(ctx, token, event, companyId) {
|
|
414
447
|
const { sessionId, chatId, threadId, text, done } = event;
|
|
415
448
|
const sessions = await getSessions(ctx, chatId, threadId);
|
|
416
449
|
const session = sessions.find((s) => s.sessionId === sessionId);
|
|
@@ -438,7 +471,7 @@ export async function handleAcpOutput(ctx, token, event) {
|
|
|
438
471
|
return;
|
|
439
472
|
}
|
|
440
473
|
await sendLabeledOutput(ctx, token, chatId, threadId, sessionId, displayName, text, done);
|
|
441
|
-
await checkConversationLoopContinuation(ctx, token, chatId, threadId, sessionId, text, done);
|
|
474
|
+
await checkConversationLoopContinuation(ctx, token, chatId, threadId, sessionId, text, done, companyId);
|
|
442
475
|
}
|
|
443
476
|
// --- Output sequencing ---
|
|
444
477
|
async function handleOutputSequencing(ctx, token, chatId, threadId, entry) {
|
|
@@ -808,7 +841,7 @@ export async function handleDiscussToolCall(ctx, token, params, companyId, sourc
|
|
|
808
841
|
return { content: JSON.stringify({ status: "started", loopId, maxTurns }) };
|
|
809
842
|
}
|
|
810
843
|
// --- Conversation loop continuation ---
|
|
811
|
-
async function checkConversationLoopContinuation(ctx, token, chatId, threadId, sessionId, text, done) {
|
|
844
|
+
async function checkConversationLoopContinuation(ctx, token, chatId, threadId, sessionId, text, done, companyId) {
|
|
812
845
|
const loop = await ctx.state.get({
|
|
813
846
|
scopeKind: "instance",
|
|
814
847
|
stateKey: `loop_${chatId}_${threadId}`,
|
|
@@ -849,7 +882,16 @@ async function checkConversationLoopContinuation(ctx, token, chatId, threadId, s
|
|
|
849
882
|
const sessions = await getSessions(ctx, chatId, threadId);
|
|
850
883
|
const nextSession = sessions.find((s) => s.sessionId === nextSessionId);
|
|
851
884
|
if (nextSession) {
|
|
852
|
-
const resolvedCompanyId = await resolveCompanyIdFromChat(ctx, chatId);
|
|
885
|
+
const resolvedCompanyId = companyId ?? await resolveCompanyIdFromChat(ctx, chatId);
|
|
886
|
+
if (!resolvedCompanyId) {
|
|
887
|
+
// Pausing beats continuing: this runs once per turn, so an unresolved
|
|
888
|
+
// company would otherwise be re-spent on every remaining turn of the
|
|
889
|
+
// discussion, each failing the same way and none of it visible.
|
|
890
|
+
loop.status = "paused";
|
|
891
|
+
await ctx.state.set({ scopeKind: "instance", stateKey: `loop_${chatId}_${threadId}` }, loop);
|
|
892
|
+
await sendMessage(ctx, token, chatId, `${escapeMarkdownV2("⚠️")} *Discussion Paused* \\- ${escapeMarkdownV2("this chat is not linked to a Paperclip company. Use /connect, then send a message to resume.")}`, { parseMode: "MarkdownV2", messageThreadId: threadId });
|
|
893
|
+
return;
|
|
894
|
+
}
|
|
853
895
|
if (nextSession.transport === "native") {
|
|
854
896
|
await wakeAgentWithIssue(ctx, nextSession.agentId, resolvedCompanyId, `[Discussion: ${loop.topic}] ${text}`, "discussion_turn");
|
|
855
897
|
}
|
|
@@ -876,13 +918,29 @@ export async function getSessions(ctx, chatId, threadId) {
|
|
|
876
918
|
async function saveSessions(ctx, chatId, threadId, sessions) {
|
|
877
919
|
await ctx.state.set({ scopeKind: "instance", stateKey: `sessions_${chatId}_${threadId}` }, sessions);
|
|
878
920
|
}
|
|
921
|
+
/**
|
|
922
|
+
* The company this chat is linked to, or null when it is linked to nothing.
|
|
923
|
+
*
|
|
924
|
+
* This used to fall back to the raw `chatId`, which is a Telegram identifier
|
|
925
|
+
* and never a Paperclip company id. Every caller then spent that fake id on a
|
|
926
|
+
* host call that could only fail, and because nothing here throws or logs, an
|
|
927
|
+
* unlinked chat looked exactly like a working one. The discussion loop made it
|
|
928
|
+
* worse: it re-resolved per turn, so one unlinked chat produced a fake id on
|
|
929
|
+
* every turn of an agent-to-agent conversation.
|
|
930
|
+
*
|
|
931
|
+
* Returning null forces each caller to say why it stopped. `companyName` stays
|
|
932
|
+
* as a fallback because worker.ts and commands.ts both accept it for chats
|
|
933
|
+
* linked by older versions; unlike chatId it is at least a company reference.
|
|
934
|
+
*/
|
|
879
935
|
async function resolveCompanyIdFromChat(ctx, chatId) {
|
|
880
936
|
const mapping = await ctx.state.get({
|
|
881
937
|
scopeKind: "instance",
|
|
882
938
|
stateKey: `chat_${chatId}`,
|
|
883
939
|
});
|
|
884
|
-
return mapping?.companyId ?? mapping?.companyName ??
|
|
940
|
+
return mapping?.companyId ?? mapping?.companyName ?? null;
|
|
885
941
|
}
|
|
942
|
+
/** What every call site says when the chat turns out not to be linked. */
|
|
943
|
+
const NOT_LINKED_MESSAGE = "This chat is not linked to a Paperclip company. Use /connect first.";
|
|
886
944
|
function simpleHash(text) {
|
|
887
945
|
let hash = 0;
|
|
888
946
|
for (let i = 0; i < text.length; i++) {
|
package/dist/acp-bridge.js.map
CHANGED
|
@@ -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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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Agent } from "@paperclipai/plugin-sdk";
|
|
2
|
+
/**
|
|
3
|
+
* Agent counting for user-facing readouts (/status, daily digest).
|
|
4
|
+
*
|
|
5
|
+
* Availability is decided by a positive filter over the statuses that mean an
|
|
6
|
+
* agent can take work. The SDK union is
|
|
7
|
+
* `error | active | idle | paused | running | pending_approval | terminated`,
|
|
8
|
+
* so subtracting the unavailable ones from the total would count `terminated`
|
|
9
|
+
* and `pending_approval` agents as available. A positive filter also fails
|
|
10
|
+
* safe: a status added to the union later is reported as unavailable until
|
|
11
|
+
* someone decides otherwise, rather than silently inflating the count.
|
|
12
|
+
*
|
|
13
|
+
* `active` is a valid value in the union and shared's agent-eligibility treats
|
|
14
|
+
* it as live, but it is not observed on current hosts. It is counted as working
|
|
15
|
+
* so a host that does emit it reads correctly.
|
|
16
|
+
*/
|
|
17
|
+
export declare function isWorking(agent: Agent): boolean;
|
|
18
|
+
export declare function isAvailable(agent: Agent): boolean;
|
|
19
|
+
export declare function isUnavailable(agent: Agent): boolean;
|
|
20
|
+
export type AgentCounts = {
|
|
21
|
+
total: number;
|
|
22
|
+
working: number;
|
|
23
|
+
available: number;
|
|
24
|
+
unavailable: number;
|
|
25
|
+
};
|
|
26
|
+
export declare function countAgents(agents: Agent[]): AgentCounts;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent counting for user-facing readouts (/status, daily digest).
|
|
3
|
+
*
|
|
4
|
+
* Availability is decided by a positive filter over the statuses that mean an
|
|
5
|
+
* agent can take work. The SDK union is
|
|
6
|
+
* `error | active | idle | paused | running | pending_approval | terminated`,
|
|
7
|
+
* so subtracting the unavailable ones from the total would count `terminated`
|
|
8
|
+
* and `pending_approval` agents as available. A positive filter also fails
|
|
9
|
+
* safe: a status added to the union later is reported as unavailable until
|
|
10
|
+
* someone decides otherwise, rather than silently inflating the count.
|
|
11
|
+
*
|
|
12
|
+
* `active` is a valid value in the union and shared's agent-eligibility treats
|
|
13
|
+
* it as live, but it is not observed on current hosts. It is counted as working
|
|
14
|
+
* so a host that does emit it reads correctly.
|
|
15
|
+
*/
|
|
16
|
+
export function isWorking(agent) {
|
|
17
|
+
return agent.status === "running" || agent.status === "active";
|
|
18
|
+
}
|
|
19
|
+
export function isAvailable(agent) {
|
|
20
|
+
return isWorking(agent) || agent.status === "idle";
|
|
21
|
+
}
|
|
22
|
+
export function isUnavailable(agent) {
|
|
23
|
+
return agent.status === "paused" || agent.status === "error";
|
|
24
|
+
}
|
|
25
|
+
export function countAgents(agents) {
|
|
26
|
+
return {
|
|
27
|
+
total: agents.length,
|
|
28
|
+
working: agents.filter(isWorking).length,
|
|
29
|
+
available: agents.filter(isAvailable).length,
|
|
30
|
+
unavailable: agents.filter(isUnavailable).length,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=agent-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-status.js","sourceRoot":"","sources":["../src/agent-status.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,UAAU,SAAS,CAAC,KAAY;IACpC,OAAO,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAY;IACtC,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAY;IACxC,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC;AAC/D,CAAC;AASD,MAAM,UAAU,WAAW,CAAC,MAAe;IACzC,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,MAAM;QACpB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM;QACxC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM;QAC5C,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,MAAM;KACjD,CAAC;AACJ,CAAC"}
|
package/dist/commands.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { sendMessage, escapeMarkdownV2, sendChatAction } from "./telegram-api.js";
|
|
2
2
|
import { METRIC_NAMES } from "./constants.js";
|
|
3
|
+
import { countAgents } from "./agent-status.js";
|
|
3
4
|
import { handleAcpCommand } from "./acp-bridge.js";
|
|
4
5
|
import { buildPaperclipAuthHeaders, fetchPaperclipApi } from "./paperclip-api.js";
|
|
6
|
+
// Leaves headroom below Telegram's 4096-char hard limit for /agents so a
|
|
7
|
+
// company with many agents doesn't produce a message the API silently drops.
|
|
8
|
+
const AGENTS_MESSAGE_CHAR_BUDGET = 3500;
|
|
5
9
|
export const BOT_COMMANDS = [
|
|
6
10
|
{ command: "create", description: "Create a new task (assigned to CEO agent)" },
|
|
7
11
|
{ command: "status", description: "Company health: active agents, open issues" },
|
|
@@ -33,6 +37,12 @@ export async function handleCommand(ctx, token, chatId, command, args, messageTh
|
|
|
33
37
|
case "approve":
|
|
34
38
|
await handleApprove(ctx, token, chatId, args, messageThreadId, baseUrl, boardApiToken);
|
|
35
39
|
break;
|
|
40
|
+
// /start is Telegram's own entry point — the client shows it as a button on
|
|
41
|
+
// every new chat, so it is the first thing most users ever send. Without a
|
|
42
|
+
// case here it falls through to "Unknown command: /start", which is a poor
|
|
43
|
+
// first impression of the bot. Deliberately not added to BOT_COMMANDS:
|
|
44
|
+
// Telegram treats /start as implicit and listing it clutters the menu.
|
|
45
|
+
case "start":
|
|
36
46
|
case "help":
|
|
37
47
|
await handleHelp(ctx, token, chatId, messageThreadId);
|
|
38
48
|
break;
|
|
@@ -62,13 +72,19 @@ async function handleStatus(ctx, token, chatId, messageThreadId, publicUrl, reso
|
|
|
62
72
|
try {
|
|
63
73
|
const companyId = resolvedCompanyId ?? await resolveCompanyId(ctx, chatId);
|
|
64
74
|
const agents = await ctx.agents.list({ companyId });
|
|
65
|
-
|
|
75
|
+
// Agents report "running" or "idle" (and "paused"/"error" when unavailable).
|
|
76
|
+
// Counting `status === "active"` matched nothing on current hosts, so this
|
|
77
|
+
// line always read "0/N" no matter how many agents were working.
|
|
78
|
+
const counts = countAgents(agents);
|
|
66
79
|
const issues = await ctx.issues.list({ companyId, limit: 10 });
|
|
67
80
|
const doneIssues = issues.filter((i) => i.status === "done");
|
|
81
|
+
const agentLine = `${escapeMarkdownV2("🤖")} Agents: *${counts.working}* running, ` +
|
|
82
|
+
`*${escapeMarkdownV2(String(counts.available))}* available` +
|
|
83
|
+
(counts.unavailable > 0 ? escapeMarkdownV2(` (${counts.unavailable} paused/error)`) : "");
|
|
68
84
|
const lines = [
|
|
69
85
|
escapeMarkdownV2("📊") + " *Paperclip Status*",
|
|
70
86
|
"",
|
|
71
|
-
|
|
87
|
+
agentLine,
|
|
72
88
|
`${escapeMarkdownV2("📋")} Recent issues: *${escapeMarkdownV2(String(issues.length))}* \\(${escapeMarkdownV2(String(doneIssues.length))} done\\)`,
|
|
73
89
|
];
|
|
74
90
|
const inlineKeyboard = isExternalUrl(publicUrl)
|
|
@@ -137,15 +153,23 @@ async function handleAgents(ctx, token, chatId, messageThreadId, publicUrl, reso
|
|
|
137
153
|
const hasLinks = isExternalUrl(publicUrl);
|
|
138
154
|
const statusEmoji = { active: "🟢", error: "🔴", paused: "🟡", idle: "⚪", running: "🔵" };
|
|
139
155
|
const lines = [escapeMarkdownV2("🤖") + " *Agents*", ""];
|
|
156
|
+
let shown = 0;
|
|
140
157
|
for (const agent of agents) {
|
|
141
158
|
const emoji = statusEmoji[agent.status] ?? "⚪";
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
159
|
+
const line = hasLinks
|
|
160
|
+
? `${escapeMarkdownV2(emoji)} [${escapeMarkdownV2(agent.name)}](${publicUrl}/agents/${agent.id}) \\- ${escapeMarkdownV2(agent.status)}`
|
|
161
|
+
: `${escapeMarkdownV2(emoji)} *${escapeMarkdownV2(agent.name)}* \\- ${escapeMarkdownV2(agent.status)}`;
|
|
162
|
+
// Stop before the message grows past Telegram's 4096-char hard limit,
|
|
163
|
+
// leaving room for a trailing "and N more" line.
|
|
164
|
+
const projected = lines.join("\n").length + 1 + line.length;
|
|
165
|
+
if (shown > 0 && projected > AGENTS_MESSAGE_CHAR_BUDGET)
|
|
166
|
+
break;
|
|
167
|
+
lines.push(line);
|
|
168
|
+
shown++;
|
|
169
|
+
}
|
|
170
|
+
const remaining = agents.length - shown;
|
|
171
|
+
if (remaining > 0) {
|
|
172
|
+
lines.push("", escapeMarkdownV2(`…and ${remaining} more`));
|
|
149
173
|
}
|
|
150
174
|
await sendMessage(ctx, token, chatId, lines.join("\n"), {
|
|
151
175
|
parseMode: "MarkdownV2",
|
|
@@ -211,6 +235,14 @@ async function handleConnect(ctx, token, chatId, companyArg, messageThreadId) {
|
|
|
211
235
|
await sendMessage(ctx, token, chatId, `Company "${input}" not found. Available: ${names || "none"}`, { messageThreadId });
|
|
212
236
|
return;
|
|
213
237
|
}
|
|
238
|
+
const existing = await ctx.state.get({
|
|
239
|
+
scopeKind: "instance",
|
|
240
|
+
stateKey: `chat_${chatId}`,
|
|
241
|
+
});
|
|
242
|
+
if (existing?.companyId === match.id) {
|
|
243
|
+
ctx.logger.info("Chat already linked to company", { chatId, companyId: match.id, companyName: match.name });
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
214
246
|
// Inbound: chat → company (for commands like /status)
|
|
215
247
|
await ctx.state.set({ scopeKind: "instance", stateKey: `chat_${chatId}` }, { companyId: match.id, companyName: match.name ?? input, linkedAt: new Date().toISOString() });
|
|
216
248
|
// Outbound: company → chat (for notifications)
|