@synaplink/orqlaude 0.3.3 → 0.5.1

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.
@@ -1,13 +1,33 @@
1
1
  import { promises as fs } from "node:fs";
2
2
  import path from "node:path";
3
3
  import { StateStore } from "../lib/state.js";
4
+ import { agnetLabel } from "../lib/agnet.js";
5
+ /** Minimum interval between edits when using the editMessageText fallback
6
+ * (the Bot API limits edits to ~1/sec per chat; we use 1.5s for headroom).
7
+ * sendMessageDraft is designed for streaming so we use a shorter throttle. */
8
+ const STREAM_EDIT_THROTTLE_MS = 1500;
9
+ const STREAM_DRAFT_THROTTLE_MS = 400;
10
+ /**
11
+ * Derive a stable, non-zero 48-bit integer draft_id from a stream UUID. Same
12
+ * stream UUID always yields the same draft_id, so a restart of the notifier
13
+ * can pick up an in-flight stream and continue animating it.
14
+ */
15
+ function streamDraftId(streamId) {
16
+ const hex = streamId.replace(/-/g, "").slice(0, 12); // 48 bits, safely in MAX_SAFE_INTEGER
17
+ const n = parseInt(hex, 16);
18
+ return n === 0 ? 1 : n;
19
+ }
4
20
  const EMPTY_CURSOR = {
5
21
  initialized: false,
6
22
  lastNoteId: null,
7
23
  taskStatus: {},
8
24
  planStatus: {},
9
25
  alertedHallucinations: [],
26
+ notifiedUserNotificationIds: [],
27
+ notifiedUserRequestIds: [],
28
+ notifiedUserStreamIds: [],
10
29
  };
30
+ const URGENCY_EMOJI = { low: "💬", normal: "📢", high: "🚨" };
11
31
  export class Notifier {
12
32
  projectDir;
13
33
  cfg;
@@ -58,51 +78,67 @@ export class Notifier {
58
78
  cursor.taskStatus[task.id] = task.status;
59
79
  if (plan.notes.length > 0)
60
80
  cursor.lastNoteId = plan.notes[plan.notes.length - 1].id;
81
+ for (const n of plan.userNotifications)
82
+ cursor.notifiedUserNotificationIds.push(n.id);
83
+ for (const r of plan.userResponseRequests)
84
+ cursor.notifiedUserRequestIds.push(r.id);
85
+ for (const s of plan.userStreams)
86
+ cursor.notifiedUserStreamIds.push(s.id);
61
87
  }
62
88
  cursor.initialized = true;
63
89
  await this.saveCursor();
64
90
  return;
65
91
  }
66
- const messages = [];
92
+ // Plain text messages (no inline keyboard).
93
+ const plainMessages = [];
94
+ const questionPushes = [];
67
95
  for (const plan of plans) {
96
+ // ---- plan/task status transitions ----
68
97
  const prevStatus = cursor.planStatus[plan.id];
69
98
  if (prevStatus !== plan.status) {
70
99
  if (!prevStatus && plan.status === "draft") {
71
- messages.push(`📋 *New plan* \`${plan.id.slice(0, 8)}\` — ${plan.tasks.length} task(s)\n${escapeMd(truncate(plan.rootTask, 100))}`);
100
+ plainMessages.push(`📋 *New plan* \`${plan.id.slice(0, 8)}\` — ${plan.tasks.length} task(s)\n${escapeMd(truncate(plan.rootTask, 100))}`);
72
101
  }
73
102
  else if (plan.status === "approved" && prevStatus !== "approved") {
74
- messages.push(`✅ *Approved* \`${plan.id.slice(0, 8)}\` — spawning ${plan.tasks.length} agents`);
103
+ plainMessages.push(`✅ *Approved* \`${plan.id.slice(0, 8)}\` — spawning ${plan.tasks.length} agents`);
75
104
  }
76
105
  else if (plan.status === "collected") {
77
106
  const total = plan.tasks.length;
78
107
  const done = plan.tasks.filter((t) => t.status === "done").length;
79
- messages.push(`🎉 *Collected* \`${plan.id.slice(0, 8)}\` — ${done}/${total} tasks done`);
108
+ plainMessages.push(`🎉 *Collected* \`${plan.id.slice(0, 8)}\` — ${done}/${total} tasks done`);
80
109
  }
81
110
  else if (plan.status === "cancelled_overbudget") {
82
- messages.push(`💸 *Auto-cancelled* \`${plan.id.slice(0, 8)}\` — fleet exceeded token budget`);
111
+ plainMessages.push(`💸 *Auto-cancelled* \`${plan.id.slice(0, 8)}\` — fleet exceeded token budget`);
83
112
  }
84
113
  else if (plan.status === "cancelled") {
85
- messages.push(`❌ *Cancelled* \`${plan.id.slice(0, 8)}\``);
114
+ plainMessages.push(`❌ *Cancelled* \`${plan.id.slice(0, 8)}\``);
86
115
  }
87
116
  cursor.planStatus[plan.id] = plan.status;
88
117
  }
89
118
  for (const task of plan.tasks) {
90
119
  const prev = cursor.taskStatus[task.id];
91
120
  if (prev !== task.status) {
121
+ // v0.5: prefix every task-status message with the Agnet designation
122
+ // so the user sees who's reporting in.
123
+ const agnet = escapeMd(agnetLabel(task.agnetName));
124
+ const title = escapeMd(truncate(task.title, 50));
92
125
  if (task.status === "done") {
93
126
  const prSuffix = task.prUrl ? `\n${task.prUrl}` : "";
94
- messages.push(`✓ *${escapeMd(truncate(task.title, 60))}* — done${prSuffix}`);
127
+ plainMessages.push(`✓ *${agnet}* finished _${title}_${prSuffix}`);
95
128
  }
96
129
  else if (task.status === "failed") {
97
- messages.push(`❌ *${escapeMd(truncate(task.title, 60))}* — failed${task.exitReason ? `\n${escapeMd(task.exitReason)}` : ""}`);
130
+ plainMessages.push(`❌ *${agnet}* failed _${title}_${task.exitReason ? `\n${escapeMd(task.exitReason)}` : ""}`);
98
131
  }
99
132
  else if (task.status === "cancelled") {
100
- messages.push(`🛑 *${escapeMd(truncate(task.title, 60))}* — cancelled`);
133
+ plainMessages.push(`🛑 *${agnet}* cancelled _${title}_`);
134
+ }
135
+ else if (task.status === "running" && prev === "dispatched") {
136
+ plainMessages.push(`▶ *${agnet}* started — _${title}_`);
101
137
  }
102
138
  cursor.taskStatus[task.id] = task.status;
103
139
  }
104
140
  }
105
- // New notes after the last-seen id.
141
+ // ---- agent (Agnet) notes ----
106
142
  let foundLast = cursor.lastNoteId === null;
107
143
  for (const note of plan.notes) {
108
144
  if (!foundLast) {
@@ -110,16 +146,47 @@ export class Notifier {
110
146
  foundLast = true;
111
147
  continue;
112
148
  }
113
- const taskTitle = plan.tasks.find((t) => t.id === note.taskId)?.title ?? note.taskId.slice(0, 8);
149
+ const task = plan.tasks.find((t) => t.id === note.taskId);
150
+ const agnet = escapeMd(agnetLabel(task?.agnetName));
114
151
  const blocking = note.blocking ? " 🟡 blocking" : "";
115
- messages.push(`📝 *${escapeMd(truncate(taskTitle, 50))}*${blocking}\n${escapeMd(truncate(note.text, 300))}${note.prUrl ? `\n${note.prUrl}` : ""}`);
152
+ plainMessages.push(`📝 *${agnet}*${blocking}\n${escapeMd(truncate(note.text, 300))}${note.prUrl ? `\n${note.prUrl}` : ""}`);
116
153
  cursor.lastNoteId = note.id;
117
154
  }
155
+ // ---- v0.4: user notifications ----
156
+ for (const n of plan.userNotifications) {
157
+ if (cursor.notifiedUserNotificationIds.includes(n.id))
158
+ continue;
159
+ const emoji = URGENCY_EMOJI[n.urgency] ?? URGENCY_EMOJI.normal;
160
+ plainMessages.push(`${emoji} ${escapeMd(n.text)}`);
161
+ cursor.notifiedUserNotificationIds.push(n.id);
162
+ }
163
+ // ---- v0.4: user response requests ----
164
+ for (const r of plan.userResponseRequests) {
165
+ if (cursor.notifiedUserRequestIds.includes(r.id))
166
+ continue;
167
+ if (r.cancelled || r.response !== undefined) {
168
+ // Already resolved before we got to it; just record so we don't re-send.
169
+ cursor.notifiedUserRequestIds.push(r.id);
170
+ continue;
171
+ }
172
+ const headline = `❓ *Question from orqlaude* \\(${r.shortId}\\)\n${escapeMd(r.prompt)}`;
173
+ const trailer = r.options
174
+ ? ""
175
+ : `\n\nReply with: \`/respond ${r.shortId} <your answer>\``;
176
+ const text = headline + trailer;
177
+ const inlineKeyboard = r.options
178
+ ? buildInlineKeyboard(r.shortId, r.options)
179
+ : undefined;
180
+ questionPushes.push({ req: r, text, inlineKeyboard });
181
+ cursor.notifiedUserRequestIds.push(r.id);
182
+ }
118
183
  }
119
- // Save cursor BEFORE sending so a failed send won't re-spam on retry.
184
+ // Persist cursor BEFORE we attempt sends — so a failed network call
185
+ // doesn't cause re-spam on retry.
120
186
  await this.saveCursor();
187
+ // Send plain notifications to every whitelisted chat.
121
188
  for (const entry of this.cfg.whitelist) {
122
- for (const msg of messages) {
189
+ for (const msg of plainMessages) {
123
190
  try {
124
191
  await this.api.sendMessage(entry.chatId, msg, { parseMode: "Markdown" });
125
192
  }
@@ -128,20 +195,232 @@ export class Notifier {
128
195
  }
129
196
  }
130
197
  }
198
+ // ---- v0.5+ stream handling (draft-first, edit fallback) ----
199
+ //
200
+ // For each stream we maintain ONE of two transports per Telegram chat:
201
+ // 1. "draft" (preferred, v0.5.1+): sendMessageDraft with a stable
202
+ // draft_id. Telegram animates updates and shows them as an
203
+ // ephemeral preview. When the stream ends we call sendMessage to
204
+ // persist the final content.
205
+ // 2. "edit" (fallback): sendMessage once + editMessageText for each
206
+ // update. Used when sendMessageDraft is unavailable on the bot's
207
+ // Telegram server.
208
+ //
209
+ // We probe draft on first attempt; if it fails (404 / method not found),
210
+ // we switch the stream's transport to "edit" and stick with it for the
211
+ // rest of its lifecycle.
212
+ for (const plan of plans) {
213
+ for (const stream of plan.userStreams) {
214
+ const isNew = !cursor.notifiedUserStreamIds.includes(stream.id);
215
+ const hasNewContent = stream.lastDeliveredContent !== stream.content;
216
+ const justEnded = stream.status === "ended" && !stream.finalSent;
217
+ if (!isNew && !hasNewContent && !justEnded)
218
+ continue;
219
+ // Throttle: drafts are designed for streaming, so we tick faster.
220
+ const throttle = stream.transport === "edit" ? STREAM_EDIT_THROTTLE_MS : STREAM_DRAFT_THROTTLE_MS;
221
+ const now = Date.now();
222
+ if (!isNew && !justEnded && stream.lastEditedAt && now - stream.lastEditedAt < throttle) {
223
+ continue;
224
+ }
225
+ const draftId = stream.draftId ?? streamDraftId(stream.id);
226
+ if (!stream.draftId) {
227
+ // First touch — record draft id.
228
+ await store.update((state) => {
229
+ for (const p of Object.values(state.plans)) {
230
+ const s = p.userStreams.find((x) => x.id === stream.id);
231
+ if (s)
232
+ s.draftId = draftId;
233
+ }
234
+ });
235
+ }
236
+ for (const entry of this.cfg.whitelist) {
237
+ // Effective transport: explicit, else default to "draft" and let
238
+ // the first call probe.
239
+ const transport = stream.transport ?? "draft";
240
+ if (transport === "draft") {
241
+ // Draft path. text="" on initial empty content gives the
242
+ // Telegram "Thinking…" placeholder.
243
+ const text = formatStreamMessage(stream);
244
+ const result = await this.api.sendMessageDraft(entry.chatId, draftId, text, { parseMode: "Markdown" });
245
+ if (!result.ok) {
246
+ // Server doesn't support drafts (or other failure). Switch to
247
+ // edit fallback for the rest of this stream's life.
248
+ process.stderr.write(`[orqlaude tg stream] sendMessageDraft failed (${result.status}); falling back to edit. body=${result.body.slice(0, 200)}\n`);
249
+ await store.update((state) => {
250
+ for (const p of Object.values(state.plans)) {
251
+ const s = p.userStreams.find((x) => x.id === stream.id);
252
+ if (s)
253
+ s.transport = "edit";
254
+ }
255
+ });
256
+ // Now do the edit-path open in this same tick.
257
+ await openOrEditEditMode(this.api, store, stream, entry.chatId, justEnded);
258
+ }
259
+ else {
260
+ // Draft sent. Record delivery state.
261
+ await store.update((state) => {
262
+ for (const p of Object.values(state.plans)) {
263
+ const s = p.userStreams.find((x) => x.id === stream.id);
264
+ if (s) {
265
+ s.transport = "draft";
266
+ s.telegramChatId = s.telegramChatId ?? entry.chatId;
267
+ s.lastDeliveredContent = text;
268
+ s.lastEditedAt = Date.now();
269
+ }
270
+ }
271
+ });
272
+ // On end: persist the final message via sendMessage and mark.
273
+ if (justEnded) {
274
+ try {
275
+ await this.api.sendMessage(entry.chatId, formatStreamEnded(stream), { parseMode: "Markdown" });
276
+ await store.update((state) => {
277
+ for (const p of Object.values(state.plans)) {
278
+ const s = p.userStreams.find((x) => x.id === stream.id);
279
+ if (s)
280
+ s.finalSent = true;
281
+ }
282
+ });
283
+ }
284
+ catch (err) {
285
+ process.stderr.write(`[orqlaude tg stream] final persist failed: ${err.message}\n`);
286
+ }
287
+ }
288
+ }
289
+ }
290
+ else {
291
+ // Edit path.
292
+ await openOrEditEditMode(this.api, store, stream, entry.chatId, justEnded);
293
+ }
294
+ }
295
+ if (isNew)
296
+ cursor.notifiedUserStreamIds.push(stream.id);
297
+ }
298
+ }
299
+ // Send question pushes. Persist message_id back into state so the bot
300
+ // can edit on response.
301
+ for (const qp of questionPushes) {
302
+ for (const entry of this.cfg.whitelist) {
303
+ try {
304
+ const { message_id } = await this.api.sendMessage(entry.chatId, qp.text, {
305
+ parseMode: "Markdown",
306
+ inlineKeyboard: qp.inlineKeyboard,
307
+ });
308
+ // Save message_id + chat_id of FIRST whitelisted recipient so the
309
+ // bot can edit the question into a "✓ answered" form on response.
310
+ if (qp.req.telegramMessageId === undefined) {
311
+ await store.update((state) => {
312
+ for (const plan of Object.values(state.plans)) {
313
+ const r = plan.userResponseRequests.find((x) => x.id === qp.req.id);
314
+ if (r) {
315
+ r.telegramMessageId = message_id;
316
+ r.telegramChatId = entry.chatId;
317
+ r.delivered = true;
318
+ r.deliveredAt = Date.now();
319
+ }
320
+ }
321
+ });
322
+ }
323
+ }
324
+ catch (err) {
325
+ process.stderr.write(`[orqlaude tg notifier] question send to ${entry.chatId} failed: ${err.message}\n`);
326
+ }
327
+ }
328
+ }
329
+ }
330
+ }
331
+ function formatStreamMessage(stream) {
332
+ // Title bold; body plain (caller-escaped if they care).
333
+ const body = stream.content ? `\n${stream.content}` : "";
334
+ return `*${escapeMd(stream.title)}*${body}`;
335
+ }
336
+ function formatStreamEnded(stream) {
337
+ const body = stream.content ? `\n${stream.content}` : "";
338
+ return `*${escapeMd(stream.title)}* ✓${body}`;
339
+ }
340
+ /**
341
+ * Edit-mode fallback: maintain a single persistent Telegram message via
342
+ * sendMessage + editMessageText. Used when sendMessageDraft is unavailable.
343
+ */
344
+ async function openOrEditEditMode(api, store, stream, chatId, justEnded) {
345
+ if (!stream.telegramMessageId) {
346
+ // First time on this chat — send the message.
347
+ try {
348
+ const { message_id } = await api.sendMessage(chatId, formatStreamMessage(stream), { parseMode: "Markdown" });
349
+ await store.update((state) => {
350
+ for (const p of Object.values(state.plans)) {
351
+ const s = p.userStreams.find((x) => x.id === stream.id);
352
+ if (s) {
353
+ s.transport = "edit";
354
+ s.telegramMessageId = message_id;
355
+ s.telegramChatId = chatId;
356
+ s.lastDeliveredContent = stream.content;
357
+ s.lastEditedAt = Date.now();
358
+ }
359
+ }
360
+ });
361
+ // If the stream is already ended, do one more edit to mark complete.
362
+ if (justEnded) {
363
+ try {
364
+ await api.editMessageText(chatId, message_id, formatStreamEnded(stream), { parseMode: "Markdown" });
365
+ await store.update((state) => {
366
+ for (const p of Object.values(state.plans)) {
367
+ const s = p.userStreams.find((x) => x.id === stream.id);
368
+ if (s)
369
+ s.finalSent = true;
370
+ }
371
+ });
372
+ }
373
+ catch (err) {
374
+ process.stderr.write(`[orqlaude tg stream] edit-mode final edit failed: ${err.message}\n`);
375
+ }
376
+ }
377
+ }
378
+ catch (err) {
379
+ process.stderr.write(`[orqlaude tg stream] edit-mode open failed: ${err.message}\n`);
380
+ }
381
+ return;
382
+ }
383
+ // Subsequent updates — edit in place.
384
+ try {
385
+ const text = justEnded ? formatStreamEnded(stream) : formatStreamMessage(stream);
386
+ await api.editMessageText(stream.telegramChatId, stream.telegramMessageId, text, { parseMode: "Markdown" });
387
+ await store.update((state) => {
388
+ for (const p of Object.values(state.plans)) {
389
+ const s = p.userStreams.find((x) => x.id === stream.id);
390
+ if (s) {
391
+ s.lastDeliveredContent = text;
392
+ s.lastEditedAt = Date.now();
393
+ if (justEnded)
394
+ s.finalSent = true;
395
+ }
396
+ }
397
+ });
398
+ }
399
+ catch (err) {
400
+ process.stderr.write(`[orqlaude tg stream] edit-mode update failed: ${err.message}\n`);
401
+ }
402
+ }
403
+ function buildInlineKeyboard(shortId, options) {
404
+ // Two columns max; one row per pair. callback_data format:
405
+ // orq:resp:<shortId>:<optionIdx>
406
+ // Telegram's callback_data is capped at 64 bytes; shortId (8) + prefix (~10)
407
+ // + index (1-2) is well under.
408
+ const rows = [];
409
+ for (let i = 0; i < options.length; i += 2) {
410
+ const row = [
411
+ { text: options[i], callback_data: `orq:resp:${shortId}:${i}` },
412
+ ];
413
+ if (i + 1 < options.length) {
414
+ row.push({ text: options[i + 1], callback_data: `orq:resp:${shortId}:${i + 1}` });
415
+ }
416
+ rows.push(row);
131
417
  }
418
+ return rows;
132
419
  }
133
420
  /**
134
- * Escape characters that Telegram MarkdownV1 treats as syntax.
135
- *
136
- * Per https://core.telegram.org/bots/api#markdown-style, V1's reserved set is
137
- * `_ * ` ` [`. Without escaping these in user-supplied strings, an innocuous
138
- * branch name like `feature/foo_bar` or a note containing a single `*` makes
139
- * sendMessage 400 → notifier swallows the error → cursor already advanced →
140
- * notification permanently lost.
141
- *
142
- * URL text (e.g. PR links) is appended raw and not run through this escaper,
143
- * because backslashing chars in URLs breaks them. Keep URL fragments out of
144
- * this function's input.
421
+ * Escape Telegram MarkdownV1 reserved chars in user-supplied strings:
422
+ * `_ * ` [`. Backslashing parens / hyphens / dots etc. is unnecessary in
423
+ * V1 (those are syntax only in V2 / MarkdownV2).
145
424
  */
146
425
  export function escapeMd(s) {
147
426
  return s.replace(/([_*`\[])/g, "\\$1");
@@ -1 +1 @@
1
- {"version":3,"file":"notifier.js","sourceRoot":"","sources":["../../src/telegram/notifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notifier.js","sourceRoot":"","sources":["../../src/telegram/notifier.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ export function registerPing(server) {
14
14
  const payload = {
15
15
  ok: warnings.length === 0,
16
16
  server: "orqlaude",
17
- version: "0.3.3",
17
+ version: "0.5.1",
18
18
  cwd: realCwd,
19
19
  cwd_source: stateRes.cwdSource,
20
20
  state_dir: stateRes.path,
@@ -2,6 +2,7 @@ import { z } from "zod";
2
2
  import { randomUUID } from "node:crypto";
3
3
  import { newPlan, findPlan } from "../lib/state.js";
4
4
  import { estimateAgent, readDailyTokenUsage } from "../lib/budgeting.js";
5
+ import { pickAgnetName, agnetLabel } from "../lib/agnet.js";
5
6
  /**
6
7
  * Planning-phase tools: create_plan, estimate, request_approval, confirm.
7
8
  *
@@ -39,6 +40,12 @@ export function registerPlanning(server, store, audit) {
39
40
  try {
40
41
  plan = await store.update((state) => {
41
42
  const p = newPlan(root_task, budget_cap_tokens, tasks);
43
+ // Assign Agnet names — stable per task_id, unique within plan.
44
+ const taken = new Set();
45
+ for (const t of p.tasks) {
46
+ t.agnetName = pickAgnetName(t.id, taken);
47
+ taken.add(t.agnetName);
48
+ }
42
49
  const est = estimateAgent(model_for_estimate, effort_multiplier);
43
50
  p.estimatedTokens = est.tokens.totalEffective * p.tasks.length;
44
51
  p.estimatedCostUsd = est.costUsd * p.tasks.length;
@@ -74,6 +81,7 @@ export function registerPlanning(server, store, audit) {
74
81
  id: t.id,
75
82
  title: t.title,
76
83
  tldr: t.tldr,
84
+ agnet: agnetLabel(t.agnetName), // v0.5+: human-friendly designation
77
85
  scope: t.scope ?? [],
78
86
  budget_hint_tokens: t.budgetHintTokens ?? null,
79
87
  })),
@@ -1 +1 @@
1
- {"version":3,"file":"planning.js","sourceRoot":"","sources":["../../src/tools/planning.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"planning.js","sourceRoot":"","sources":["../../src/tools/planning.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { StateStore } from "../lib/state.js";
3
+ import type { AuditLog } from "../lib/audit.js";
4
+ export declare function registerUserIo(server: McpServer, store: StateStore, audit: AuditLog): void;