opencode-plugin-teleprompt 0.2.1 → 0.2.2

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.
@@ -0,0 +1,47 @@
1
+ import type { PendingQuestionAnswer, TelegramInlineKeyboardMarkup } from "../types.js";
2
+ export declare const TELEGRAM_CALLBACK_DATA_MAX = 64;
3
+ export declare const PERMISSION_CALLBACK_PREFIX = "p";
4
+ export declare const QUESTION_CALLBACK_PREFIX = "q";
5
+ export declare function encodePermissionCallback(action: "once" | "always" | "reject", requestID: string): string;
6
+ export declare function encodeQuestionReject(requestID: string): string;
7
+ export declare function encodeQuestionAnswer(requestID: string, questionIndex: number, optionIndex: number): string;
8
+ export declare function encodeQuestionToggle(requestID: string, questionIndex: number, optionIndex: number): string;
9
+ export declare function encodeQuestionConfirm(requestID: string, questionIndex: number): string;
10
+ type PermissionCallback = {
11
+ kind: "permission";
12
+ action: "once" | "always" | "reject";
13
+ requestID: string;
14
+ };
15
+ type QuestionCallback = {
16
+ kind: "question";
17
+ action: "answer" | "reject" | "toggle" | "confirm";
18
+ requestID: string;
19
+ questionIndex?: number;
20
+ optionIndex?: number;
21
+ };
22
+ export type DecodedCallback = PermissionCallback | QuestionCallback | {
23
+ kind: "unknown";
24
+ raw: string;
25
+ };
26
+ export declare function decodeCallbackData(raw: string): DecodedCallback;
27
+ export declare function buildPermissionKeyboard(requestID: string): TelegramInlineKeyboardMarkup;
28
+ export declare function buildQuestionKeyboard(input: {
29
+ requestID: string;
30
+ questionIndex: number;
31
+ options: {
32
+ label: string;
33
+ description?: string;
34
+ }[];
35
+ selectedLabels: string[];
36
+ multiple: boolean;
37
+ }): TelegramInlineKeyboardMarkup;
38
+ export declare function encodeTextQuestionReply(requestID: string, answers: PendingQuestionAnswer[]): string;
39
+ export declare function encodeTextQuestionReject(requestID: string): string;
40
+ export declare function decodeTextQuestionReply(text: string): {
41
+ requestID: string;
42
+ answers: PendingQuestionAnswer[];
43
+ } | undefined;
44
+ export declare function decodeTextQuestionReject(text: string): {
45
+ requestID: string;
46
+ } | undefined;
47
+ export {};
@@ -0,0 +1,195 @@
1
+ export const TELEGRAM_CALLBACK_DATA_MAX = 64;
2
+ export const PERMISSION_CALLBACK_PREFIX = "p";
3
+ export const QUESTION_CALLBACK_PREFIX = "q";
4
+ const PERMISSION_ACTION = {
5
+ once: "o",
6
+ always: "a",
7
+ reject: "r",
8
+ };
9
+ const QUESTION_ACTION = {
10
+ answer: "a",
11
+ reject: "r",
12
+ toggle: "t",
13
+ confirm: "c",
14
+ };
15
+ export function encodePermissionCallback(action, requestID) {
16
+ return `${PERMISSION_CALLBACK_PREFIX}:${PERMISSION_ACTION[action]}:${requestID}`;
17
+ }
18
+ export function encodeQuestionReject(requestID) {
19
+ return `${QUESTION_CALLBACK_PREFIX}:${QUESTION_ACTION.reject}:${requestID}`;
20
+ }
21
+ export function encodeQuestionAnswer(requestID, questionIndex, optionIndex) {
22
+ return `${QUESTION_CALLBACK_PREFIX}:${QUESTION_ACTION.answer}:${requestID}:${questionIndex}:${optionIndex}`;
23
+ }
24
+ export function encodeQuestionToggle(requestID, questionIndex, optionIndex) {
25
+ return `${QUESTION_CALLBACK_PREFIX}:${QUESTION_ACTION.toggle}:${requestID}:${questionIndex}:${optionIndex}`;
26
+ }
27
+ export function encodeQuestionConfirm(requestID, questionIndex) {
28
+ return `${QUESTION_CALLBACK_PREFIX}:${QUESTION_ACTION.confirm}:${requestID}:${questionIndex}`;
29
+ }
30
+ export function decodeCallbackData(raw) {
31
+ const parts = raw.split(":");
32
+ const head = parts[0];
33
+ if (head === PERMISSION_CALLBACK_PREFIX && parts.length === 3) {
34
+ const actionCode = parts[1];
35
+ const requestID = parts[2];
36
+ if (actionCode === PERMISSION_ACTION.once) {
37
+ return { kind: "permission", action: "once", requestID };
38
+ }
39
+ if (actionCode === PERMISSION_ACTION.always) {
40
+ return { kind: "permission", action: "always", requestID };
41
+ }
42
+ if (actionCode === PERMISSION_ACTION.reject) {
43
+ return { kind: "permission", action: "reject", requestID };
44
+ }
45
+ }
46
+ if (head === QUESTION_CALLBACK_PREFIX) {
47
+ const actionCode = parts[1];
48
+ const requestID = parts[2];
49
+ if (actionCode === QUESTION_ACTION.reject && parts.length === 3) {
50
+ return { kind: "question", action: "reject", requestID };
51
+ }
52
+ if (actionCode === QUESTION_ACTION.answer &&
53
+ parts.length === 5 &&
54
+ requestID) {
55
+ return {
56
+ kind: "question",
57
+ action: "answer",
58
+ requestID,
59
+ questionIndex: Number(parts[3]),
60
+ optionIndex: Number(parts[4]),
61
+ };
62
+ }
63
+ if (actionCode === QUESTION_ACTION.toggle &&
64
+ parts.length === 5 &&
65
+ requestID) {
66
+ return {
67
+ kind: "question",
68
+ action: "toggle",
69
+ requestID,
70
+ questionIndex: Number(parts[3]),
71
+ optionIndex: Number(parts[4]),
72
+ };
73
+ }
74
+ if (actionCode === QUESTION_ACTION.confirm &&
75
+ parts.length === 4 &&
76
+ requestID) {
77
+ return {
78
+ kind: "question",
79
+ action: "confirm",
80
+ requestID,
81
+ questionIndex: Number(parts[3]),
82
+ };
83
+ }
84
+ }
85
+ return { kind: "unknown", raw };
86
+ }
87
+ export function buildPermissionKeyboard(requestID) {
88
+ const row = [
89
+ {
90
+ text: "Approve once",
91
+ callback_data: encodePermissionCallback("once", requestID),
92
+ },
93
+ {
94
+ text: "Approve always",
95
+ callback_data: encodePermissionCallback("always", requestID),
96
+ },
97
+ {
98
+ text: "Deny",
99
+ callback_data: encodePermissionCallback("reject", requestID),
100
+ },
101
+ ];
102
+ return { inline_keyboard: [row] };
103
+ }
104
+ export function buildQuestionKeyboard(input) {
105
+ const { requestID, questionIndex, options, selectedLabels, multiple } = input;
106
+ const buttons = options.map((opt, idx) => {
107
+ const isSelected = selectedLabels.includes(opt.label);
108
+ const labelText = multiple
109
+ ? `${isSelected ? "✅" : "▫️"} ${opt.label}`
110
+ : opt.label;
111
+ return {
112
+ text: labelText,
113
+ callback_data: multiple
114
+ ? encodeQuestionToggle(requestID, questionIndex, idx)
115
+ : encodeQuestionAnswer(requestID, questionIndex, idx),
116
+ };
117
+ });
118
+ const rows = [];
119
+ for (let i = 0; i < buttons.length; i += 2) {
120
+ const slice = buttons.slice(i, i + 2);
121
+ if (slice.length === 1) {
122
+ rows.push(slice);
123
+ }
124
+ else {
125
+ rows.push(slice);
126
+ }
127
+ }
128
+ if (multiple) {
129
+ const hasSelection = selectedLabels.length > 0;
130
+ rows.push([
131
+ {
132
+ text: hasSelection
133
+ ? `Confirm (${selectedLabels.length})`
134
+ : "Select at least one",
135
+ callback_data: encodeQuestionConfirm(requestID, questionIndex),
136
+ },
137
+ {
138
+ text: "Skip / Reject",
139
+ callback_data: encodeQuestionReject(requestID),
140
+ },
141
+ ]);
142
+ }
143
+ else {
144
+ rows.push([
145
+ {
146
+ text: "Skip / Reject",
147
+ callback_data: encodeQuestionReject(requestID),
148
+ },
149
+ ]);
150
+ }
151
+ return { inline_keyboard: rows };
152
+ }
153
+ export function encodeTextQuestionReply(requestID, answers) {
154
+ const lines = [];
155
+ lines.push(`/qreply ${requestID}`);
156
+ for (let i = 0; i < answers.length; i++) {
157
+ const ans = answers[i];
158
+ const labels = ans.labels.join("|");
159
+ lines.push(`${i}:${labels}`);
160
+ }
161
+ return lines.join("\n");
162
+ }
163
+ export function encodeTextQuestionReject(requestID) {
164
+ return `/qreject ${requestID}`;
165
+ }
166
+ export function decodeTextQuestionReply(text) {
167
+ const lines = text.split(/\r?\n/).map((line) => line.trim()).filter(Boolean);
168
+ if (lines.length === 0)
169
+ return undefined;
170
+ const header = lines[0].split(/\s+/);
171
+ const head = header[0].startsWith("/") ? header[0].slice(1) : header[0];
172
+ if (head !== "qreply" || !header[1])
173
+ return undefined;
174
+ const requestID = header[1];
175
+ const answers = [];
176
+ for (let i = 1; i < lines.length; i++) {
177
+ const [idxRaw, labelsRaw] = lines[i].split(":", 2);
178
+ if (idxRaw === undefined || labelsRaw === undefined)
179
+ continue;
180
+ const idx = Number(idxRaw);
181
+ if (!Number.isFinite(idx))
182
+ continue;
183
+ const labels = labelsRaw.split("|").filter(Boolean);
184
+ answers.push({ questionIndex: idx, labels });
185
+ }
186
+ return { requestID, answers };
187
+ }
188
+ export function decodeTextQuestionReject(text) {
189
+ const header = text.trim().split(/\s+/);
190
+ const head = header[0].startsWith("/") ? header[0].slice(1) : header[0];
191
+ if (head !== "qreject" || !header[1])
192
+ return undefined;
193
+ return { requestID: header[1] };
194
+ }
195
+ //# sourceMappingURL=callback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callback.js","sourceRoot":"","sources":["../../src/telegram/callback.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
- import type { ParsedTelegramCommand, TelegramChannelPost, TelegramUpdate } from "../types.js";
2
- export declare function parseTelegramUpdate(update: TelegramUpdate, channelID: string, prefix: string): ParsedTelegramCommand | undefined;
1
+ import type { ParsedCallbackQuery, ParsedTelegramCommand, TelegramCallbackQuery, TelegramChannelPost, TelegramUpdate } from "../types.js";
2
+ export declare function parseTelegramUpdate(update: TelegramUpdate, channelID: string, prefix: string): ParsedTelegramCommand | ParsedCallbackQuery | undefined;
3
3
  export declare function isChannelPostFromTarget(post: TelegramChannelPost | undefined, channelID: string): boolean;
4
+ export declare function isCallbackFromTarget(query: TelegramCallbackQuery | undefined, channelID: string): boolean;
@@ -1,3 +1,4 @@
1
+ import { decodeCallbackData, decodeTextQuestionReject, decodeTextQuestionReply, } from "./callback.js";
1
2
  function parseCommandBody(body) {
2
3
  const trimmed = body.trim();
3
4
  if (!trimmed)
@@ -41,6 +42,9 @@ function parseCommandBody(body) {
41
42
  const lastErrorMatch = /^last-error\s*$/i.exec(trimmed);
42
43
  if (lastErrorMatch)
43
44
  return { kind: "last-error" };
45
+ const diagMatch = /^diag(nostic)?\s*$/i.exec(trimmed);
46
+ if (diagMatch)
47
+ return { kind: "diag" };
44
48
  const versionMatch = /^version\s*$/i.exec(trimmed);
45
49
  if (versionMatch)
46
50
  return { kind: "version" };
@@ -66,6 +70,48 @@ function parseCommandBody(body) {
66
70
  if (denyMatch) {
67
71
  return { kind: "permission", action: "reject", requestID: denyMatch[1] };
68
72
  }
73
+ const qreplyMatch = /^qreply\s+([A-Za-z0-9_\-:.]+)/i.exec(trimmed);
74
+ if (qreplyMatch) {
75
+ const decoded = decodeTextQuestionReply(trimmed);
76
+ if (decoded && decoded.requestID === qreplyMatch[1]) {
77
+ return {
78
+ kind: "question",
79
+ action: "reply",
80
+ requestID: decoded.requestID,
81
+ answers: decoded.answers,
82
+ };
83
+ }
84
+ }
85
+ const ansMatch = /^ans(wer)?\s+([A-Za-z0-9_\-:.]+)\s+(.+)$/i.exec(trimmed);
86
+ if (ansMatch) {
87
+ const requestID = ansMatch[2];
88
+ const rawAnswer = ansMatch[3].trim();
89
+ // Support "0:Option" or "Option" format
90
+ const qIndexMatch = /^(\d+):(.+)$/.exec(rawAnswer);
91
+ const questionIndex = qIndexMatch ? Number(qIndexMatch[1]) : 0;
92
+ const label = qIndexMatch ? qIndexMatch[2].trim() : rawAnswer;
93
+ return {
94
+ kind: "question",
95
+ action: "reply",
96
+ requestID,
97
+ answers: [{ questionIndex, labels: [label] }],
98
+ };
99
+ }
100
+ const qrejectMatch = /^qreject\s+([A-Za-z0-9_\-:.]+)\s*$/i.exec(trimmed);
101
+ const skipMatch = /^skip\s+([A-Za-z0-9_\-:.]+)\s*$/i.exec(trimmed);
102
+ if (skipMatch) {
103
+ return { kind: "question", action: "reject", requestID: skipMatch[1] };
104
+ }
105
+ if (qrejectMatch) {
106
+ const decoded = decodeTextQuestionReject(trimmed);
107
+ if (decoded) {
108
+ return {
109
+ kind: "question",
110
+ action: "reject",
111
+ requestID: decoded.requestID,
112
+ };
113
+ }
114
+ }
69
115
  const modelMatch = /^model(?:\s+([A-Za-z0-9_./-]+))?\s*$/i.exec(trimmed);
70
116
  if (modelMatch) {
71
117
  const rawTarget = modelMatch[1]?.trim();
@@ -90,6 +136,12 @@ function parseCommandBody(body) {
90
136
  return { kind: "prompt", prompt: trimmed };
91
137
  }
92
138
  export function parseTelegramUpdate(update, channelID, prefix) {
139
+ if (update.callback_query) {
140
+ return parseCallbackQuery(update, channelID);
141
+ }
142
+ return parseChannelPost(update, channelID, prefix);
143
+ }
144
+ function parseChannelPost(update, channelID, prefix) {
93
145
  const post = update.channel_post || update.message;
94
146
  if (!post)
95
147
  return undefined;
@@ -158,9 +210,86 @@ export function parseTelegramUpdate(update, channelID, prefix) {
158
210
  }
159
211
  return undefined;
160
212
  }
213
+ function parseCallbackQuery(update, channelID) {
214
+ const query = update.callback_query;
215
+ if (!query)
216
+ return undefined;
217
+ const message = query.message;
218
+ if (!message)
219
+ return undefined;
220
+ const normalizedChannel = String(message.chat.id);
221
+ if (normalizedChannel !== channelID)
222
+ return undefined;
223
+ const data = query.data;
224
+ if (!data)
225
+ return undefined;
226
+ const decoded = decodeCallbackData(data);
227
+ if (decoded.kind === "unknown")
228
+ return undefined;
229
+ let command;
230
+ if (decoded.kind === "permission") {
231
+ command = {
232
+ kind: "permission",
233
+ action: decoded.action,
234
+ requestID: decoded.requestID,
235
+ };
236
+ }
237
+ else if (decoded.kind === "question") {
238
+ if (decoded.action === "reject") {
239
+ command = {
240
+ kind: "question",
241
+ action: "reject",
242
+ requestID: decoded.requestID,
243
+ };
244
+ }
245
+ else if (decoded.action === "answer") {
246
+ // Single-choice: will be resolved to a full answer by the controller
247
+ // using the pending question's option labels. We pass the indices.
248
+ command = {
249
+ kind: "question",
250
+ action: "reply",
251
+ requestID: decoded.requestID,
252
+ questionIndex: decoded.questionIndex,
253
+ optionIndex: decoded.optionIndex,
254
+ };
255
+ }
256
+ else if (decoded.action === "toggle") {
257
+ command = {
258
+ kind: "question",
259
+ action: "toggle",
260
+ requestID: decoded.requestID,
261
+ questionIndex: decoded.questionIndex,
262
+ optionIndex: decoded.optionIndex,
263
+ };
264
+ }
265
+ else if (decoded.action === "confirm") {
266
+ command = {
267
+ kind: "question",
268
+ action: "confirm",
269
+ requestID: decoded.requestID,
270
+ questionIndex: decoded.questionIndex,
271
+ };
272
+ }
273
+ }
274
+ if (!command)
275
+ return undefined;
276
+ return {
277
+ updateID: update.update_id,
278
+ callbackQueryID: query.id,
279
+ channelID: normalizedChannel,
280
+ messageID: message.message_id,
281
+ rawData: data,
282
+ command,
283
+ };
284
+ }
161
285
  export function isChannelPostFromTarget(post, channelID) {
162
286
  if (!post)
163
287
  return false;
164
288
  return String(post.chat.id) === channelID;
165
289
  }
290
+ export function isCallbackFromTarget(query, channelID) {
291
+ if (!query)
292
+ return false;
293
+ return String(query.message?.chat.id ?? "") === channelID;
294
+ }
166
295
  //# sourceMappingURL=parser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/telegram/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/telegram/parser.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
- import type { ParsedTelegramCommand } from "../types.js";
1
+ import type { ParsedCallbackQuery, ParsedTelegramCommand } from "../types.js";
2
2
  import { TelegramApi } from "./api.js";
3
+ type BridgeCommand = ParsedTelegramCommand | ParsedCallbackQuery;
3
4
  type PollerHandlers = {
4
- onCommand: (command: ParsedTelegramCommand) => Promise<void>;
5
+ onCommand: (command: BridgeCommand) => Promise<void>;
5
6
  onOffset: (offset: number) => Promise<void>;
6
7
  onError: (error: unknown) => void;
7
8
  onUpdates?: (count: number) => void;
9
+ onLog?: (message: string) => void;
8
10
  };
9
11
  export declare class TelegramPoller {
10
12
  private readonly api;
@@ -15,9 +15,12 @@ export class TelegramPoller {
15
15
  }
16
16
  async run(startOffset, signal) {
17
17
  let offset = startOffset;
18
+ this.handlers.onLog?.(`poller: run starting at offset=${offset} timeout=${this.timeoutSec}s`);
18
19
  while (!signal.aborted) {
19
20
  try {
21
+ this.handlers.onLog?.(`poller: getUpdates(offset=${offset})`);
20
22
  const updates = await this.api.getUpdates(offset, this.timeoutSec, signal);
23
+ this.handlers.onLog?.(`poller: getUpdates returned ${updates.length} updates`);
21
24
  if (signal.aborted)
22
25
  break;
23
26
  if (updates.length > 0) {
@@ -28,10 +31,12 @@ export class TelegramPoller {
28
31
  catch (error) {
29
32
  if (signal.aborted)
30
33
  break;
34
+ this.handlers.onLog?.(`poller: getUpdates threw: ${String(error)}`);
31
35
  this.handlers.onError(error);
32
36
  await delayWithSignal(1000, signal);
33
37
  }
34
38
  }
39
+ this.handlers.onLog?.("poller: run exiting");
35
40
  }
36
41
  async processUpdates(offset, updates) {
37
42
  let nextOffset = offset;
@@ -39,23 +44,35 @@ export class TelegramPoller {
39
44
  const parsed = parseTelegramUpdate(update, this.channelID, this.prefix);
40
45
  const candidateOffset = Math.max(nextOffset, update.update_id + 1);
41
46
  if (!parsed) {
42
- const post = update.channel_post || update.message;
43
- if (post) {
47
+ const cq = update.callback_query;
48
+ if (cq) {
49
+ const chatId = cq.message?.chat.id;
50
+ this.handlers.onLog?.(`poller: ignored callback_query id=${cq.id} chatId=${chatId} (expected ${this.channelID}) data=${cq.data}`);
51
+ }
52
+ else if (update.channel_post || update.message) {
53
+ const post = (update.channel_post || update.message);
44
54
  const chatId = post.chat.id;
45
55
  const text = post.text || "";
46
- // Only show warning if it looks like a command meant for the bot
47
56
  if (text.trim().startsWith(this.prefix) || text.trim().startsWith("/")) {
48
- this.handlers.onError(new Error(`Update ignored. Got Chat ID: ${chatId} (expected: ${this.channelID}), Text: "${text}"`));
57
+ this.handlers.onError(new Error(`Update ignored. Chat ID: ${chatId} (expected ${this.channelID}), Text: "${text}"`));
49
58
  }
50
59
  }
60
+ else {
61
+ this.handlers.onLog?.(`poller: ignored update id=${update.update_id} type=${Object.keys(update).filter(k => k !== 'update_id').join(",")}`);
62
+ }
51
63
  nextOffset = candidateOffset;
52
64
  await this.handlers.onOffset(nextOffset);
53
65
  continue;
54
66
  }
55
- // Persist offset only after command handling succeeds, so failed commands are retried.
56
- await this.handlers.onCommand(parsed);
67
+ // Save offset immediately, then fire-and-forget the command handler.
68
+ // This prevents the poller from being blocked while a long-running
69
+ // command (e.g. prompt processing) completes. Errors are caught and
70
+ // forwarded to the error handler.
57
71
  nextOffset = candidateOffset;
58
72
  await this.handlers.onOffset(nextOffset);
73
+ this.handlers.onCommand(parsed).catch((err) => {
74
+ this.handlers.onError(err);
75
+ });
59
76
  }
60
77
  return nextOffset;
61
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"poller.js","sourceRoot":"","sources":["../../src/telegram/poller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"poller.js","sourceRoot":"","sources":["../../src/telegram/poller.ts"],"names":[],"mappings":"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"}