@songsid/agend 2.1.7-beta.2 → 2.1.7-beta.3

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.
@@ -72,12 +72,21 @@ export declare class MuseBackend implements CliBackend {
72
72
  * instance stuck in `working` forever (no auto-pause, cancel never retires,
73
73
  * delegate_task times out on the readiness gate).
74
74
  *
75
- * The idle layout, last four visible rows:
75
+ * The idle layout, last four non-blank rows:
76
76
  * ───────────────────────────── (separator)
77
77
  * ❯ (empty input box — no user text after it)
78
78
  * ───────────────────────────── (separator)
79
79
  * model · effort · cwd (status bar)
80
80
  *
81
+ * Muse draws inline, so until the transcript fills the window tmux pads the
82
+ * capture with blank rows BELOW the status bar (live muse 1.4.0 at 120x36,
83
+ * 2026-09-28: six of them). Counting those as "bottom rows" pushed the prompt
84
+ * out of the old fixed 8-row window, so a freshly restarted, idle muse could
85
+ * never prove it was idle and stayed `working` until the transcript grew
86
+ * (#958). The proof is therefore anchored to the last non-blank rows: the
87
+ * live input box must END the capture, which also means a `❯ / ───` pair
88
+ * sitting in scrollback can never qualify.
89
+ *
81
90
  * Per the CliBackend contract, this method must be a strong structural proof:
82
91
  * false positives can retire Cancel and admit a new delivery into a busy CLI.
83
92
  * A working pane shows `◇ Thinking (2s · esc to interrupt)` in the rows
@@ -299,12 +299,21 @@ export class MuseBackend {
299
299
  * instance stuck in `working` forever (no auto-pause, cancel never retires,
300
300
  * delegate_task times out on the readiness gate).
301
301
  *
302
- * The idle layout, last four visible rows:
302
+ * The idle layout, last four non-blank rows:
303
303
  * ───────────────────────────── (separator)
304
304
  * ❯ (empty input box — no user text after it)
305
305
  * ───────────────────────────── (separator)
306
306
  * model · effort · cwd (status bar)
307
307
  *
308
+ * Muse draws inline, so until the transcript fills the window tmux pads the
309
+ * capture with blank rows BELOW the status bar (live muse 1.4.0 at 120x36,
310
+ * 2026-09-28: six of them). Counting those as "bottom rows" pushed the prompt
311
+ * out of the old fixed 8-row window, so a freshly restarted, idle muse could
312
+ * never prove it was idle and stayed `working` until the transcript grew
313
+ * (#958). The proof is therefore anchored to the last non-blank rows: the
314
+ * live input box must END the capture, which also means a `❯ / ───` pair
315
+ * sitting in scrollback can never qualify.
316
+ *
308
317
  * Per the CliBackend contract, this method must be a strong structural proof:
309
318
  * false positives can retire Cancel and admit a new delivery into a busy CLI.
310
319
  * A working pane shows `◇ Thinking (2s · esc to interrupt)` in the rows
@@ -318,28 +327,63 @@ export class MuseBackend {
318
327
  */
319
328
  isPeriodicRedrawIdlePane(pane) {
320
329
  const rows = pane.replace(/\r/g, "").split("\n");
321
- // Search the bottom 8 visible rows for an EMPTY ❯ line. Lines with user
322
- // text (`❯ Write a haiku…`) are the input box with content — they sit in
323
- // the conversation transcript and are not the live idle prompt.
324
- let promptRow = -1;
325
- for (let i = rows.length - 1; i >= Math.max(0, rows.length - 8); i--) {
326
- if (/^❯\s*$/.test(rows[i])) {
327
- promptRow = i;
330
+ while (rows.length && !rows[rows.length - 1].trim())
331
+ rows.pop();
332
+ const separator = /^─{10,}\s*$/;
333
+ const busyPattern = this.getBusyPattern();
334
+ // The status bar's own grammar, not merely "some indented text": the model
335
+ // id first, then at least one more ` · `-joined field
336
+ // (` muse-spark-1.3-contributor · high · ~/cwd · Launch overrides`). A
337
+ // chooser drawn under the box (` 1 Allow`) or any other indented row
338
+ // cannot pass for it.
339
+ const statusBar = /^\s{1,4}[^\s·]+(?:\s+·\s+[^·\s][^·]*)+$/;
340
+ // Menu chrome muse draws for its dialogs and pickers. The approval prompt
341
+ // is auto-answered rather than input-blocking, so the idle proof itself
342
+ // must refuse a frame that shows one. The picker chrome is muse 1.4.0's
343
+ // list component, captured live on its login menu (2026-09-28):
344
+ // Log in with browser · Enter to choose (the selected row)
345
+ // Set an API key
346
+ // ↓↑ to select · Esc to quit (the hint row)
347
+ const dialogChrome = /Allow this (?:tool|command)|Approve this (?:tool|command)|^\s*[>❯]?\s*1\s+(?:Allow|Approve|Trust)\b|Use Up\/Down|Esc (?:quits|to cancel)|↓↑ to select|·\s*Enter to choose\b/i;
348
+ // The status bar is one row; a long cwd in a narrow pane wraps it onto a
349
+ // few more. Everything after the bottom separator must be that bar.
350
+ const MAX_STATUS_ROWS = 4;
351
+ let bottomSeparator = -1;
352
+ for (let i = rows.length - 2; i >= Math.max(0, rows.length - 1 - MAX_STATUS_ROWS); i--) {
353
+ if (separator.test(rows[i])) {
354
+ bottomSeparator = i;
328
355
  break;
329
356
  }
330
357
  }
331
- if (promptRow < 0)
358
+ if (bottomSeparator < 2)
332
359
  return false;
333
- // The line immediately after the empty ❯ must be the separator (─ × N).
334
- // Without it we may be looking at the prompt in the transcript, not the
335
- // live input box.
336
- if (!/^─{10,}/.test(rows[promptRow + 1] ?? ""))
360
+ const status = rows.slice(bottomSeparator + 1);
361
+ if (!statusBar.test(status[0]))
337
362
  return false;
338
- // No busy indicator in the active region above the prompt. The working
339
- // indicator (`◇ Thinking (2s · esc to interrupt)`) sits just above the
340
- // top separator (~3 rows above promptRow). Check 6 rows up to be safe.
341
- const busyPattern = this.getBusyPattern();
342
- return !rows.slice(Math.max(0, promptRow - 6), promptRow).some(r => busyPattern.test(r));
363
+ if (!status.every(row => /^\s+\S/.test(row) && !separator.test(row.trim()) && !busyPattern.test(row) && !dialogChrome.test(row)))
364
+ return false;
365
+ // A wrapped cwd continues as path text; a numbered option list or a
366
+ // selection cursor under the bar is a picker, not the bar.
367
+ if (status.slice(1).some(row => /^\s*[>❯›]?\s*\d+[.)]?\s+\S/.test(row) || /^\s*[>›]/.test(row)))
368
+ return false;
369
+ // Directly above it, the EMPTY live prompt. A `❯` with text is a draft
370
+ // (or, higher up, a transcript echo) and never proves idle.
371
+ if (!/^❯\s*$/.test(rows[bottomSeparator - 1]))
372
+ return false;
373
+ const topSeparator = bottomSeparator - 2;
374
+ if (!separator.test(rows[topSeparator]))
375
+ return false;
376
+ // No busy indicator and no dialog just above the input box. The working
377
+ // line (`◇ Thinking (2s · esc to interrupt)`) sits immediately above the
378
+ // top separator; check 8 rows up to be safe.
379
+ const above = rows.slice(Math.max(0, topSeparator - 8), topSeparator);
380
+ if (above.some(r => busyPattern.test(r) || dialogChrome.test(r)))
381
+ return false;
382
+ // Arrow-key pickers (`/model`) are refused by their component chrome
383
+ // above, not by guessing from answer text that happens to list model ids.
384
+ // A `›` selection cursor is refused too; `❯` is not a cursor here — muse
385
+ // echoes submitted messages with it.
386
+ return !above.some(r => /^\s*›\s+\S/.test(r));
343
387
  }
344
388
  getErrorPatterns() {
345
389
  // NOTE: an Escape-interrupted run prints "interrupting run" in the status
@@ -1 +1 @@
1
- {"version":3,"file":"muse.js","sourceRoot":"","sources":["../../src/backend/muse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC7K,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAuH,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAChN,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEnE,wFAAwF;AACxF,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC,kFAAkF;AAClF,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;AACvF,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,WAAW;IAQF;IAPX,UAAU,GAAG,MAAM,CAAC;IACrB,UAAU,CAAS;IACV,mBAAmB,CAAS;IAC7C,yEAAyE;IACzE,8DAA8D;IACtD,gBAAgB,CAAU;IAElC,YAAoB,WAAmB;QAAnB,gBAAW,GAAX,WAAW,CAAQ;QACrC,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;IAChG,CAAC;IAED,YAAY,CAAC,MAAwB;QACnC,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAEhD,yEAAyE;QACzE,0EAA0E;QAC1E,wEAAwE;QACxE,uEAAuE;QACvE,wEAAwE;QACxE,kEAAkE;QAClE,0EAA0E;QAC1E,0EAA0E;QAC1E,0DAA0D;QAC1D,IAAI,GAAG,GAAG,mBAAmB,UAAU,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,0CAA0C,IAAI,CAAC,UAAU,EAAE,CAAC;QAEjI,4EAA4E;QAC5E,4EAA4E;QAC5E,qEAAqE;QACrE,IAAI,MAAM,CAAC,WAAW;YAAE,GAAG,IAAI,eAAe,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QAE/E,yEAAyE;QACzE,4EAA4E;QAC5E,mDAAmD;QACnD,EAAE;QACF,sEAAsE;QACtE,0EAA0E;QAC1E,4EAA4E;QAC5E,qEAAqE;QACrE,4DAA4D;QAC5D,IAAI,MAAM,CAAC,eAAe,KAAK,KAAK;YAAE,GAAG,IAAI,uCAAuC,CAAC;QAErF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1C,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACnC,GAAG,IAAI,YAAY,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACzC,CAAC;QACD,4EAA4E;QAC5E,yEAAyE;QACzE,IAAI,MAAM,CAAC,MAAM;YAAE,GAAG,IAAI,uBAAuB,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAE7E,wEAAwE;QACxE,4EAA4E;QAC5E,qEAAqE;QACrE,6EAA6E;QAC7E,qEAAqE;QACrE,8BAA8B;QAC9B,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YACnC,IAAI,GAAG;gBAAE,GAAG,IAAI,WAAW,GAAG,EAAE,CAAC;QACnC,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,mFAAmF;IAC3E,eAAe;QACrB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/E,OAAO,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,OAAe,EAAE,YAAoB;QAClD,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QACxD,IAAI,KAAK,KAAK,YAAY;YAAE,OAAO,SAAS,OAAO,IAAI,YAAY,EAAE,CAAC;QACtE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC1E,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC,CAAC,CAAC,SAAS,OAAO,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,OAAO,IAAI,IAAI,EAAE,CAAC;IAChF,CAAC;IAEO,qBAAqB;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC5C,CAAC;IAED,oFAAoF;IAC5E,YAAY;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;IACrE,CAAC;IAEO,kBAAkB;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;IACjE,CAAC;IAEO,yBAAyB,CAAC,SAAiB,EAAE,WAAmB,EAAE,QAAqB;QAC7F,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1C,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YACjC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACrC,IAAI,CAAC;gBACH,SAAS,CAAC,IAAI,CAAC,CAAC;gBAChB,SAAS,CAAC,mDAAmD;YAC/D,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;oBAAE,MAAM,GAAG,CAAC;YAClE,CAAC;YACD,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,gFAAgF;IACxE,cAAc;QACpB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;QAC7D,MAAM,eAAe,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACrD,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QACtD,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3D,SAAS,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7D,SAAS,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7D,SAAS,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QAClC,SAAS,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QAClC,2EAA2E;QAC3E,yEAAyE;QACzE,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,mBAAmB,EAAE,eAAe,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC7F,IAAI,CAAC,yBAAyB,CAAC,aAAa,EAAE,eAAe,EAAE,IAAI,GAAG,CAAC,CAAC,eAAe,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAC3H,0EAA0E;QAC1E,uEAAuE;QACvE,KAAK,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE,CAAC;YACpD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC3B,IAAI,EAAE,CAAC,cAAc,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,MAAM;oBAAE,SAAS;gBACnE,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,EAAE,CAAC,CAAC;YACjE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;oBAAE,MAAM,GAAG,CAAC;YAClE,CAAC;YACD,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,WAAW,CAAC,MAAwB;QAClC,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAEhD,0EAA0E;QAC1E,0EAA0E;QAC1E,6EAA6E;QAC7E,wEAAwE;QACxE,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACzC,IAAI,IAAI,GAA4B,EAAE,CAAC;QACvC,IAAI,CAAC;YAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;QACrG,IAAI,OAAO,IAAI,CAAC,cAAc,KAAK,QAAQ;YAAE,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QAErE,MAAM,OAAO,GAAG,EAAE,GAAI,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAA6B,EAAE,CAAC;QAC5E,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;QACvE,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9D,MAAM,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,mBAAmB,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;YAE1E,wEAAwE;YACxE,yEAAyE;YACzE,qEAAqE;YACrE,0EAA0E;YAC1E,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,IAAI,KAAK,CAAC,CAAC;YACrE,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;iBACtC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;iBACpE,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,mEAAmE;YACnE,aAAa,CACX,WAAW,EACX,gBAAgB,UAAU,yIAAyI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAClP,EAAE,IAAI,EAAE,KAAK,EAAE,CAChB,CAAC;YACF,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAE9B,wEAAwE;YACxE,0EAA0E;YAC1E,kBAAkB;YAClB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG;gBAChD,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,UAAU;aACjB,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;QAC1B,MAAM,aAAa,GAAG,GAAG,YAAY,IAAI,OAAO,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;QAC7F,IAAI,CAAC;YACH,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACzF,UAAU,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;YACxC,SAAS,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACjC,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC;gBAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,6BAA6B,CAAC,CAAC;QAC5E,CAAC;QAED,4EAA4E;QAC5E,2EAA2E;QAC3E,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;YACzG,CAAC;YAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,0BAA0B;QACxB,4EAA4E;QAC5E,sEAAsE;QACtE,0EAA0E;QAC1E,kBAAkB;QAClB,EAAE;QACF,cAAc;QACd,cAAc;QACd,cAAc;QACd,EAAE;QACF,4EAA4E;QAC5E,4EAA4E;QAC5E,qEAAqE;QACrE,0EAA0E;QAC1E,2EAA2E;QAC3E,EAAE;QACF,4EAA4E;QAC5E,0EAA0E;QAC1E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe;QACb,yEAAyE;QACzE,4EAA4E;QAC5E,uEAAuE;QACvE,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,cAAc;QACZ,OAAO,iDAAiD,CAAC;IAC3D,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,wBAAwB,CAAC,IAAY;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjD,wEAAwE;QACxE,yEAAyE;QACzE,gEAAgE;QAChE,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACrE,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,CAAC,CAAC;gBAAC,MAAM;YAAC,CAAC;QACvD,CAAC;QACD,IAAI,SAAS,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAChC,wEAAwE;QACxE,wEAAwE;QACxE,kBAAkB;QAClB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;QAC7D,uEAAuE;QACvE,uEAAuE;QACvE,uEAAuE;QACvE,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,gBAAgB;QACd,0EAA0E;QAC1E,4EAA4E;QAC5E,qDAAqD;QACrD,OAAO;YACL,EAAE,OAAO,EAAE,wCAAwC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,yBAAyB,EAAE;YACjI,EAAE,OAAO,EAAE,gEAAgE,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE;YACxJ,EAAE,OAAO,EAAE,mCAAmC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,sBAAsB,EAAE;SACnH,CAAC;IACJ,CAAC;IAED,iBAAiB;QACf,OAAO;YACL,wEAAwE;YACxE,qEAAqE;YACrE,qEAAqE;YACrE,uEAAuE;YACvE,oCAAoC;YACpC;gBACE,OAAO,EAAE,+BAA+B;gBACxC,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC;gBACpB,WAAW,EAAE,oDAAoD;aAClE;YACD,mEAAmE;YACnE,kEAAkE;YAClE,sEAAsE;YACtE,uBAAuB;YACvB;gBACE,OAAO,EAAE,mDAAmD;gBAC5D,IAAI,EAAE,EAAE;gBACR,WAAW,EAAE,kEAAkE;aAChF;SACF,CAAC;IACJ,CAAC;IAED,iBAAiB;QACf,OAAO;YACL,yEAAyE;YACzE,yEAAyE;YACzE,gEAAgE;YAChE;gBACE,OAAO,EAAE,4EAA4E;gBACrF,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC;gBACpB,WAAW,EAAE,4BAA4B;aAC1C;SACF,CAAC;IACJ,CAAC;IAED,eAAe;QACb,uEAAuE;QACvE,2EAA2E;QAC3E,2EAA2E;QAC3E,sBAAsB;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iEAAiE;IACjE,6EAA6E;IAC7E,6EAA6E;IAC7E,4DAA4D;IAE5D,YAAY;QACV,0EAA0E;QAC1E,0EAA0E;QAC1E,4EAA4E;QAC5E,sEAAsE;QACtE,2DAA2D;QAC3D,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAAE,OAAO,IAAI,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YACpE,IAAI,QAAQ,GAAkB,IAAI,CAAC;YACnC,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC;YACrB,KAAK,MAAM,UAAU,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/C,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC/D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBAAE,SAAS;gBACxC,IAAI,IAAY,CAAC;gBACjB,IAAI,CAAC;oBACH,MAAM,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC7F,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;gBACzC,CAAC;gBAAC,MAAM,CAAC;oBAAC,SAAS;gBAAC,CAAC;gBACrB,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,gBAAgB;oBAAE,SAAS;gBAC7D,yEAAyE;gBACzE,wEAAwE;gBACxE,mEAAmE;gBACnE,gDAAgD;gBAChD,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC;oBACH,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;wBACxC,IAAI,CAAC;4BAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;4BAAC,IAAI,CAAC,GAAG,QAAQ;gCAAE,QAAQ,GAAG,CAAC,CAAC;wBAAC,CAAC;wBAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;oBAC/G,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC,CAAC,gBAAgB,CAAC,CAAC;gBAC5B,IAAI,QAAQ,GAAG,WAAW,EAAE,CAAC;oBAAC,WAAW,GAAG,QAAQ,CAAC;oBAAC,QAAQ,GAAG,IAAI,CAAC;gBAAC,CAAC;YAC1E,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;IAC1B,CAAC;IAED,0EAA0E;IAC1E,8EAA8E;IAC9E,6BAA6B;IAC7B,cAAc,KAAoB,OAAO,OAAO,CAAC,CAAC,CAAC;IACnD,UAAU,KAAa,OAAO,KAAK,CAAC,CAAC,CAAC;IACtC,iBAAiB,KAAa,OAAO,CAAC,CAAC,CAAC,CAAC;IAEzC,iBAAiB,KAAa,OAAO,UAAU,CAAC,CAAC,CAAC;IAClD,eAAe,KAAoB,OAAO,QAAQ,CAAC,CAAC,CAAC;IAErD;;;;;;OAMG;IACH,YAAY,KAAa,OAAO,QAAQ,CAAC,CAAC,CAAC;IAE3C,4EAA4E;IAC5E,iBAAiB,KAA4C,OAAO,SAAS,CAAC,CAAC,CAAC;IAChF,0EAA0E;IAC1E,uCAAuC;IACvC,eAAe,KAAe,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAEjF,wEAAwE;IACxE,sBAAsB,KAA4B,OAAO,SAAS,CAAC,CAAC,CAAC;IAErE,KAAK,CAAC,UAAU;QACd,qEAAqE;QACrE,kEAAkE;QAClE,0EAA0E;QAC1E,4EAA4E;QAC5E,6DAA6D;QAC7D,OAAO;YACL,EAAE,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,EAAE;YACjD,EAAE,EAAE,EAAE,4BAA4B,EAAE,KAAK,EAAE,6CAA6C,EAAE;YAC1F,EAAE,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,EAAE;YACjD,EAAE,EAAE,EAAE,4BAA4B,EAAE,KAAK,EAAE,6CAA6C,EAAE;SAC3F,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;QACvD,0EAA0E;QAC1E,IAAI,YAAgC,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CACtC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,EACjF,OAAO,CACR,CAAC,CAAC;YACH,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ;gBAAE,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC;QACxE,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAC7B,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,UAAU,EAAE,EAAE,YAAY,EAAE,CAAC;IACtG,CAAC;IAED,OAAO,CAAC,MAAwB;QAC9B,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7D,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;oBAClD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;gBACjE,CAAC;gBACD,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC5E,SAAS,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAE7B,IAAI,CAAC;YACH,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QAChF,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAC/B,CAAC;CACF;AAED,6EAA6E;AAC7E,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAY,EAAE;QACzC,IAAI,CAAC;YAAC,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,EAAE,CAAC;QAAC,CAAC;IACvD,CAAC,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QACpC,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;YAC/C,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;gBACpD,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;oBAC7D,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"muse.js","sourceRoot":"","sources":["../../src/backend/muse.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,8 @@ export interface RestartProgressOptions {
30
30
  }
31
31
  export type RestartProgressMode = "restart" | "update" | "reload";
32
32
  export declare const RESTART_PROGRESS_TERMINAL_TIMEOUT_MS = 30000;
33
+ /** Minimum ms between non-terminal progress edits (throttle window). */
34
+ export declare const PROGRESS_THROTTLE_MS = 2500;
33
35
  /** One terminal text shared by the in-place edit and FleetManager fallback. */
34
36
  export declare function formatRestartProgressCompletion(mode: RestartProgressMode, summary: RestartProgressSummary, startedAt: number, now?: number): string;
35
37
  /** One General-topic message that is edited throughout a fleet startup. */
@@ -49,6 +51,12 @@ export declare class RestartProgress {
49
51
  private pendingProgressText;
50
52
  private finished;
51
53
  private readonly mode;
54
+ /** Timestamp of the last successfully dispatched non-terminal progress edit. */
55
+ private lastProgressEditAt;
56
+ /** setTimeout handle for the next throttle-deferred progress edit. */
57
+ private throttleTimer;
58
+ /** Resolves the active drainProgressEdits backoff sleep early when finish() is called. */
59
+ private wakeBackoff;
52
60
  constructor(total: number, startedAt: number, logger: ProgressLogger, options?: RestartProgressOptions);
53
61
  /** May be called before the channel adapter is ready; progress is retained. */
54
62
  markReady(): void;
@@ -59,6 +67,13 @@ export declare class RestartProgress {
59
67
  /** Deliver the terminal state. Returns true only after an edit or fresh fallback succeeds. */
60
68
  finish(summary?: RestartProgressSummary): Promise<boolean>;
61
69
  get readyCount(): number;
70
+ /**
71
+ * Throttle non-terminal progress edits so at most one fires every
72
+ * PROGRESS_THROTTLE_MS. If called too soon after the last edit, schedule a
73
+ * deferred fire instead of sending immediately. This prevents every markReady()
74
+ * call from generating an editMessage request and triggering Telegram 429s.
75
+ */
76
+ private maybeQueueProgressEdit;
62
77
  private queueProgressEdit;
63
78
  private resolveAdapter;
64
79
  private adapterReady;
@@ -70,6 +85,7 @@ export declare class RestartProgress {
70
85
  * Wait through a bounded adapter-recovery window, re-resolving replacement
71
86
  * adapter objects each time. If editing the adopted message fails, post a
72
87
  * fresh completion message so the user is never left at the last X/N update.
88
+ * 429 responses are retried with their retry-after delay up to the deadline.
73
89
  */
74
90
  private deliverTerminal;
75
91
  private waitForReadyAdapter;
@@ -3,12 +3,24 @@ import { updateElapsedSeconds } from "./update-progress.js";
3
3
  import { runBeforeDeadline } from "./deadline.js";
4
4
  const TERMINAL_DELIVERY_RETRY_MS = 1_000;
5
5
  export const RESTART_PROGRESS_TERMINAL_TIMEOUT_MS = 30_000;
6
+ /** Minimum ms between non-terminal progress edits (throttle window). */
7
+ export const PROGRESS_THROTTLE_MS = 2_500;
6
8
  function formatElapsed(ms) {
7
9
  const seconds = Math.max(0, Math.floor(ms / 1000));
8
10
  const minutes = Math.floor(seconds / 60);
9
11
  const remainder = seconds % 60;
10
12
  return minutes > 0 ? `${minutes}m ${remainder}s` : `${seconds}s`;
11
13
  }
14
+ /** Extract retry-after milliseconds from a Telegram 429 GrammyError, or 0. */
15
+ function retryAfterMs(err) {
16
+ if (err instanceof Error) {
17
+ const e = err;
18
+ if (e.error_code === 429 && typeof e.parameters?.retry_after === "number") {
19
+ return e.parameters.retry_after * 1_000;
20
+ }
21
+ }
22
+ return 0;
23
+ }
12
24
  /** One terminal text shared by the in-place edit and FleetManager fallback. */
13
25
  export function formatRestartProgressCompletion(mode, summary, startedAt, now = Date.now()) {
14
26
  const elapsed = formatElapsed(now - startedAt);
@@ -44,6 +56,12 @@ export class RestartProgress {
44
56
  pendingProgressText = null;
45
57
  finished = false;
46
58
  mode;
59
+ /** Timestamp of the last successfully dispatched non-terminal progress edit. */
60
+ lastProgressEditAt = -PROGRESS_THROTTLE_MS;
61
+ /** setTimeout handle for the next throttle-deferred progress edit. */
62
+ throttleTimer = null;
63
+ /** Resolves the active drainProgressEdits backoff sleep early when finish() is called. */
64
+ wakeBackoff = null;
47
65
  constructor(total, startedAt, logger, options = {}) {
48
66
  this.total = total;
49
67
  this.startedAt = startedAt;
@@ -57,7 +75,7 @@ export class RestartProgress {
57
75
  return;
58
76
  this.ready = Math.min(this.total, this.ready + 1);
59
77
  if (this.messageId && this.ready - this.lastReportedReady >= 5) {
60
- this.queueProgressEdit();
78
+ this.maybeQueueProgressEdit();
61
79
  }
62
80
  }
63
81
  /** Post the one progress message once General and its adapter are available. */
@@ -72,7 +90,7 @@ export class RestartProgress {
72
90
  const sent = await adapter.sendText(target.chatId, `🔄 Fleet restarting — ${this.total} instances starting...`, { threadId: target.threadId });
73
91
  this.messageId = sent.messageId;
74
92
  if (this.ready >= 5)
75
- this.queueProgressEdit();
93
+ this.maybeQueueProgressEdit();
76
94
  this.updateTimer = setInterval(() => this.queueProgressEdit(), 30_000);
77
95
  this.updateTimer.unref?.();
78
96
  return true;
@@ -110,10 +128,15 @@ export class RestartProgress {
110
128
  const progressEditWorker = this.progressEditWorker;
111
129
  this.finished = true;
112
130
  this.pendingProgressText = null;
131
+ this.wakeBackoff?.();
113
132
  if (this.updateTimer) {
114
133
  clearInterval(this.updateTimer);
115
134
  this.updateTimer = null;
116
135
  }
136
+ if (this.throttleTimer) {
137
+ clearTimeout(this.throttleTimer);
138
+ this.throttleTimer = null;
139
+ }
117
140
  if (!this.target || !this.messageId)
118
141
  return false;
119
142
  const text = summary
@@ -122,6 +145,34 @@ export class RestartProgress {
122
145
  return this.deliverTerminal(text, progressEditWorker);
123
146
  }
124
147
  get readyCount() { return this.ready; }
148
+ /**
149
+ * Throttle non-terminal progress edits so at most one fires every
150
+ * PROGRESS_THROTTLE_MS. If called too soon after the last edit, schedule a
151
+ * deferred fire instead of sending immediately. This prevents every markReady()
152
+ * call from generating an editMessage request and triggering Telegram 429s.
153
+ */
154
+ maybeQueueProgressEdit() {
155
+ if (this.finished || !this.target || !this.messageId)
156
+ return;
157
+ const now = Date.now();
158
+ const msSinceLast = now - this.lastProgressEditAt;
159
+ if (msSinceLast >= PROGRESS_THROTTLE_MS) {
160
+ this.lastProgressEditAt = now;
161
+ this.queueProgressEdit();
162
+ }
163
+ else if (!this.throttleTimer) {
164
+ // Schedule a deferred fire once the throttle window expires so the latest
165
+ // state (not a stale snapshot) is sent when the window opens.
166
+ const delay = PROGRESS_THROTTLE_MS - msSinceLast;
167
+ this.throttleTimer = setTimeout(() => {
168
+ this.throttleTimer = null;
169
+ this.lastProgressEditAt = Date.now();
170
+ this.queueProgressEdit();
171
+ }, delay);
172
+ this.throttleTimer.unref?.();
173
+ }
174
+ // else: a deferred fire is already pending — it will pick up the latest state
175
+ }
125
176
  queueProgressEdit() {
126
177
  if (this.finished || !this.target || !this.messageId)
127
178
  return;
@@ -177,7 +228,22 @@ export class RestartProgress {
177
228
  await adapter.editMessage(target.chatId, messageId, text, target.threadId);
178
229
  }
179
230
  catch (err) {
180
- this.logger.warn({ err }, "Failed to edit fleet restart progress");
231
+ const backoffMs = retryAfterMs(err);
232
+ if (backoffMs > 0) {
233
+ this.logger.warn({ retryAfterMs: backoffMs }, "Fleet restart progress edit throttled (429); backing off");
234
+ // Re-queue the current frame (unless a newer one arrived) so the loop
235
+ // retries this edit after the backoff window.
236
+ if (this.pendingProgressText == null)
237
+ this.pendingProgressText = text;
238
+ await new Promise(resolve => {
239
+ const t = setTimeout(() => { this.wakeBackoff = null; resolve(); }, backoffMs);
240
+ t.unref?.();
241
+ this.wakeBackoff = () => { clearTimeout(t); this.wakeBackoff = null; resolve(); };
242
+ });
243
+ }
244
+ else {
245
+ this.logger.warn({ err }, "Failed to edit fleet restart progress");
246
+ }
181
247
  }
182
248
  }
183
249
  }
@@ -186,6 +252,7 @@ export class RestartProgress {
186
252
  * Wait through a bounded adapter-recovery window, re-resolving replacement
187
253
  * adapter objects each time. If editing the adopted message fails, post a
188
254
  * fresh completion message so the user is never left at the last X/N update.
255
+ * 429 responses are retried with their retry-after delay up to the deadline.
189
256
  */
190
257
  async deliverTerminal(text, progressEditWorker) {
191
258
  const target = this.target;
@@ -205,15 +272,38 @@ export class RestartProgress {
205
272
  let adapter = await this.waitForReadyAdapter(deadline);
206
273
  if (!adapter)
207
274
  return this.terminalDeliveryFailed();
208
- const editAdapter = adapter;
209
- const edit = await this.beforeDeadline(() => editAdapter.editMessage(target.chatId, this.messageId, text, target.threadId), deadline);
210
- if (edit.status === "fulfilled")
211
- return true;
212
- if (edit.status === "rejected") {
275
+ // Retry terminal edit with 429-aware backoff until the deadline.
276
+ while (true) {
277
+ const remaining = deadline - Date.now();
278
+ if (remaining <= 0)
279
+ break;
280
+ const editAdapter = adapter;
281
+ const edit = await this.beforeDeadline(() => editAdapter.editMessage(target.chatId, this.messageId, text, target.threadId), deadline);
282
+ if (edit.status === "fulfilled")
283
+ return true;
284
+ if (edit.status === "timeout") {
285
+ this.logger.warn({}, "Timed out editing fleet restart progress terminal state");
286
+ break; // no point retrying after timeout
287
+ }
288
+ // rejected
289
+ const backoff = retryAfterMs(edit.reason);
290
+ if (backoff > 0) {
291
+ const wait = Math.min(backoff, deadline - Date.now());
292
+ if (wait > 0) {
293
+ this.logger.warn({ retryAfterMs: backoff }, "Fleet restart terminal edit throttled (429); will retry");
294
+ await new Promise(resolve => {
295
+ const t = setTimeout(resolve, wait);
296
+ t.unref?.();
297
+ });
298
+ // Re-resolve adapter after backoff (it may have rotated)
299
+ adapter = await this.waitForReadyAdapter(deadline);
300
+ if (!adapter)
301
+ return this.terminalDeliveryFailed();
302
+ continue;
303
+ }
304
+ }
213
305
  this.logger.warn({ err: edit.reason }, "Failed to edit fleet restart progress terminal state");
214
- }
215
- else {
216
- this.logger.warn({}, "Timed out editing fleet restart progress terminal state");
306
+ break;
217
307
  }
218
308
  // The edit may have failed because the gateway dropped between the first
219
309
  // readiness probe and the write. Re-check and, if necessary, wait for the
@@ -1 +1 @@
1
- {"version":3,"file":"restart-progress.js","sourceRoot":"","sources":["../src/restart-progress.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"restart-progress.js","sourceRoot":"","sources":["../src/restart-progress.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Pure rendering helpers shared by scripts/generate-tips-html.mjs (the build
3
+ * artefact generator) and tests/website-tips-generator.test.ts (the
4
+ * consistency check that compares generated output against committed files).
5
+ *
6
+ * Having the render logic here — rather than copied inside the test — means
7
+ * the test always exercises the real production code path and cannot silently
8
+ * diverge from the generator.
9
+ */
10
+ export declare const LEVELS: readonly ["beginner", "intermediate", "advanced"];
11
+ export type Locale = "en" | "zh";
12
+ export declare const COPY: {
13
+ readonly en: {
14
+ readonly lang: "en";
15
+ readonly description: "Practical AgEnD guidance, from first chat to fleet operations.";
16
+ readonly intro: "300 practical notes, grouped from everyday use to advanced fleet operations.";
17
+ readonly switchLabel: "繁體中文";
18
+ readonly switchHref: "./tips-zh.html";
19
+ readonly home: "Home";
20
+ readonly count: "tips";
21
+ readonly levels: {
22
+ readonly beginner: readonly ["Beginner", "Everyday chat and core concepts"];
23
+ readonly intermediate: readonly ["Intermediate", "Commands, Backends, and coordination"];
24
+ readonly advanced: readonly ["Advanced", "Configuration, reliability, and troubleshooting"];
25
+ };
26
+ };
27
+ readonly zh: {
28
+ readonly lang: "zh-TW";
29
+ readonly description: "從第一次對話到 Fleet 維運的 AgEnD 實用提示。";
30
+ readonly intro: "300 條實用提示,從日常操作一路整理到進階 Fleet 維運。";
31
+ readonly switchLabel: "English";
32
+ readonly switchHref: "./tips-en.html";
33
+ readonly home: "首頁";
34
+ readonly count: "條提示";
35
+ readonly levels: {
36
+ readonly beginner: readonly ["入門", "日常對話與核心概念"];
37
+ readonly intermediate: readonly ["中階", "指令、Backend 與協作"];
38
+ readonly advanced: readonly ["進階", "設定、可靠性與疑難排解"];
39
+ };
40
+ };
41
+ };
42
+ export declare function escapeHtml(value: string): string;
43
+ export interface Tip {
44
+ id: string;
45
+ level: "beginner" | "intermediate" | "advanced";
46
+ text_en: string;
47
+ text_zh: string;
48
+ tags?: string[];
49
+ }
50
+ export declare function renderTip(tip: Tip, locale: Locale): string;
51
+ export declare function renderPage(tips: Tip[], locale: Locale): string;
@@ -0,0 +1,138 @@
1
+ /**
2
+ * Pure rendering helpers shared by scripts/generate-tips-html.mjs (the build
3
+ * artefact generator) and tests/website-tips-generator.test.ts (the
4
+ * consistency check that compares generated output against committed files).
5
+ *
6
+ * Having the render logic here — rather than copied inside the test — means
7
+ * the test always exercises the real production code path and cannot silently
8
+ * diverge from the generator.
9
+ */
10
+ export const LEVELS = ["beginner", "intermediate", "advanced"];
11
+ export const COPY = {
12
+ en: {
13
+ lang: "en",
14
+ description: "Practical AgEnD guidance, from first chat to fleet operations.",
15
+ intro: "300 practical notes, grouped from everyday use to advanced fleet operations.",
16
+ switchLabel: "繁體中文",
17
+ switchHref: "./tips-zh.html",
18
+ home: "Home",
19
+ count: "tips",
20
+ levels: {
21
+ beginner: ["Beginner", "Everyday chat and core concepts"],
22
+ intermediate: ["Intermediate", "Commands, Backends, and coordination"],
23
+ advanced: ["Advanced", "Configuration, reliability, and troubleshooting"],
24
+ },
25
+ },
26
+ zh: {
27
+ lang: "zh-TW",
28
+ description: "從第一次對話到 Fleet 維運的 AgEnD 實用提示。",
29
+ intro: "300 條實用提示,從日常操作一路整理到進階 Fleet 維運。",
30
+ switchLabel: "English",
31
+ switchHref: "./tips-en.html",
32
+ home: "首頁",
33
+ count: "條提示",
34
+ levels: {
35
+ beginner: ["入門", "日常對話與核心概念"],
36
+ intermediate: ["中階", "指令、Backend 與協作"],
37
+ advanced: ["進階", "設定、可靠性與疑難排解"],
38
+ },
39
+ },
40
+ };
41
+ export function escapeHtml(value) {
42
+ return String(value)
43
+ .replaceAll("&", "&amp;")
44
+ .replaceAll("<", "&lt;")
45
+ .replaceAll(">", "&gt;")
46
+ .replaceAll('"', "&quot;")
47
+ .replaceAll("'", "&#39;");
48
+ }
49
+ export function renderTip(tip, locale) {
50
+ const text = locale === "zh" ? tip.text_zh : tip.text_en;
51
+ const tags = (tip.tags ?? []).map(tag => `<span class="tag">${escapeHtml(tag)}</span>`).join("");
52
+ const tagRow = tags ? `\n <div class="tags" aria-label="Backend tags">${tags}</div>` : "";
53
+ return `<article class="tip-card" id="${escapeHtml(tip.id)}" data-tip-id="${escapeHtml(tip.id)}" data-level="${tip.level}">
54
+ <a class="tip-id" href="#${escapeHtml(tip.id)}">${escapeHtml(tip.id)}</a>
55
+ <p>${escapeHtml(text)}</p>${tagRow}
56
+ </article>`;
57
+ }
58
+ export function renderPage(tips, locale) {
59
+ const copy = COPY[locale];
60
+ const sections = LEVELS.map(level => {
61
+ const levelTips = tips.filter(tip => tip.level === level);
62
+ const [heading, subtitle] = copy.levels[level];
63
+ return `<section class="tips-section" id="${level}">
64
+ <div class="section-heading">
65
+ <div>
66
+ <span class="eyebrow">${escapeHtml(level)}</span>
67
+ <h2>${escapeHtml(heading)}</h2>
68
+ <p>${escapeHtml(subtitle)}</p>
69
+ </div>
70
+ <span class="level-count">${levelTips.length} ${escapeHtml(copy.count)}</span>
71
+ </div>
72
+ <div class="tips-grid">
73
+ ${levelTips.map(tip => renderTip(tip, locale)).join("\n ")}
74
+ </div>
75
+ </section>`;
76
+ }).join("\n");
77
+ return `<!doctype html>
78
+ <html lang="${copy.lang}">
79
+ <head>
80
+ <meta charset="utf-8">
81
+ <meta name="viewport" content="width=device-width, initial-scale=1">
82
+ <title>AgEnD Tips</title>
83
+ <meta name="description" content="${escapeHtml(copy.description)}">
84
+ <link rel="icon" type="image/svg+xml" href="./favicon.svg">
85
+ <link rel="preconnect" href="https://fonts.googleapis.com">
86
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
87
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;600&family=Noto+Sans+TC:wght@400;500;700&display=swap" rel="stylesheet">
88
+ <style>
89
+ :root { color-scheme: dark; --bg:#0d1117; --surface:#161b22; --raised:#1c2129; --border:#30363d; --text:#f0f6fc; --secondary:#8b949e; --muted:#6e7681; --accent:#2aabee; --accent-dim:rgba(42,171,238,.1); }
90
+ * { box-sizing: border-box; }
91
+ html { scroll-behavior: smooth; scroll-padding-top: 5.5rem; }
92
+ body { margin:0; background:var(--bg); color:var(--text); font-family:Inter,"Noto Sans TC",system-ui,sans-serif; line-height:1.65; }
93
+ body::before { content:""; position:fixed; inset:0; pointer-events:none; opacity:.22; background-image:radial-gradient(circle,var(--border) 1px,transparent 1px); background-size:24px 24px; mask-image:linear-gradient(to bottom,black,transparent 42rem); }
94
+ a { color:inherit; }
95
+ nav { position:sticky; top:0; z-index:10; height:64px; border-bottom:1px solid rgba(48,54,61,.7); background:rgba(13,17,23,.86); backdrop-filter:blur(14px); }
96
+ .nav-inner { max-width:1152px; height:100%; margin:auto; padding:0 24px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
97
+ .brand { color:var(--accent); font:700 18px/1 "JetBrains Mono",monospace; text-decoration:none; }
98
+ .nav-actions { display:flex; align-items:center; gap:12px; font-size:14px; color:var(--secondary); }
99
+ .nav-actions a { text-decoration:none; border:1px solid var(--border); border-radius:10px; padding:6px 11px; transition:.2s ease; }
100
+ .nav-actions a:hover { color:var(--text); border-color:var(--secondary); }
101
+ main { position:relative; max-width:1152px; margin:auto; padding:72px 24px 96px; }
102
+ .hero { max-width:780px; margin-bottom:64px; }
103
+ .hero .kicker,.eyebrow { color:var(--accent); font:600 12px/1.4 "JetBrains Mono",monospace; letter-spacing:.12em; text-transform:uppercase; }
104
+ h1 { margin:13px 0 16px; font-size:clamp(42px,7vw,72px); line-height:1.02; letter-spacing:-.045em; }
105
+ .hero p { color:var(--secondary); font-size:18px; margin:0; }
106
+ .jump-links { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
107
+ .jump-links a { text-decoration:none; color:var(--secondary); background:var(--surface); border:1px solid var(--border); border-radius:999px; padding:7px 13px; font-size:13px; }
108
+ .jump-links a:hover { color:var(--accent); border-color:var(--accent); }
109
+ .tips-section { margin-top:72px; }
110
+ .section-heading { display:flex; justify-content:space-between; align-items:end; gap:24px; padding-bottom:20px; border-bottom:1px solid var(--border); margin-bottom:20px; }
111
+ .section-heading h2 { margin:5px 0 2px; font-size:30px; letter-spacing:-.025em; }
112
+ .section-heading p { margin:0; color:var(--secondary); }
113
+ .level-count { white-space:nowrap; color:var(--muted); font:500 13px/1.4 "JetBrains Mono",monospace; }
114
+ .tips-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
115
+ .tip-card { position:relative; display:grid; grid-template-columns:64px 1fr; gap:14px; align-items:start; padding:18px; background:rgba(22,27,34,.94); border:1px solid var(--border); border-radius:14px; transition:transform .2s ease,border-color .2s ease; }
116
+ .tip-card:hover { transform:translateY(-2px); border-color:var(--accent); }
117
+ .tip-card:target { border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-dim); }
118
+ .tip-id { padding-top:2px; color:var(--accent); font:600 11px/1.5 "JetBrains Mono",monospace; text-decoration:none; }
119
+ .tip-card p { margin:0; color:#d8dee4; font-size:14px; }
120
+ .tags { grid-column:2; display:flex; flex-wrap:wrap; gap:6px; margin-top:2px; }
121
+ .tag { color:var(--secondary); background:var(--raised); border:1px solid var(--border); border-radius:999px; padding:2px 8px; font:500 10px/1.5 "JetBrains Mono",monospace; }
122
+ footer { border-top:1px solid var(--border); color:var(--muted); font-size:13px; }
123
+ .footer-inner { max-width:1152px; margin:auto; padding:30px 24px; display:flex; justify-content:space-between; gap:16px; }
124
+ @media (max-width:760px) { main { padding-top:48px; } .tips-grid { grid-template-columns:1fr; } .section-heading { align-items:start; flex-direction:column; gap:8px; } .tip-card { grid-template-columns:56px 1fr; } .footer-inner { flex-direction:column; } }
125
+ </style>
126
+ </head>
127
+ <body>
128
+ <nav><div class="nav-inner"><a class="brand" href="./">AgEnD</a><div class="nav-actions"><a href="./">${escapeHtml(copy.home)}</a><a href="${copy.switchHref}" hreflang="${locale === "zh" ? "en" : "zh-TW"}">${escapeHtml(copy.switchLabel)}</a></div></div></nav>
129
+ <main>
130
+ <header class="hero"><span class="kicker">Knowledge library</span><h1>AgEnD Tips</h1><p>${escapeHtml(copy.intro)}</p><div class="jump-links">${LEVELS.map(level => `<a href="#${level}">${escapeHtml(copy.levels[level][0])}</a>`).join("")}</div></header>
131
+ ${sections}
132
+ </main>
133
+ <footer><div class="footer-inner"><span><strong>AgEnD</strong> · Multi-Agent, One Conversation</span><span>Generated from <code>src/tips.ts</code></span></div></footer>
134
+ </body>
135
+ </html>
136
+ `;
137
+ }
138
+ //# sourceMappingURL=website-tips-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"website-tips-renderer.js","sourceRoot":"","sources":["../src/website-tips-renderer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@songsid/agend",
3
- "version": "2.1.7-beta.2",
3
+ "version": "2.1.7-beta.3",
4
4
  "description": "Multi-agent fleet daemon — run any coding CLI (Claude, Gemini, Codex, OpenCode) from Telegram",
5
5
  "type": "module",
6
6
  "bin": {