@visorcraft/idlehands 2.2.4 → 2.2.5

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.
Files changed (42) hide show
  1. package/dist/agent.js +241 -14
  2. package/dist/agent.js.map +1 -1
  3. package/dist/anton/verifier-utils.js +75 -3
  4. package/dist/anton/verifier-utils.js.map +1 -1
  5. package/dist/anton/verifier.js +2 -1
  6. package/dist/anton/verifier.js.map +1 -1
  7. package/dist/bot/anton-run.js +1 -0
  8. package/dist/bot/anton-run.js.map +1 -1
  9. package/dist/bot/basic-commands.js +2 -1
  10. package/dist/bot/basic-commands.js.map +1 -1
  11. package/dist/bot/command-logic.js +1 -1
  12. package/dist/bot/command-logic.js.map +1 -1
  13. package/dist/bot/commands.js +79 -1
  14. package/dist/bot/commands.js.map +1 -1
  15. package/dist/bot/discord-commands.js +121 -18
  16. package/dist/bot/discord-commands.js.map +1 -1
  17. package/dist/bot/discord.js +86 -6
  18. package/dist/bot/discord.js.map +1 -1
  19. package/dist/bot/runtime-model-picker.js +77 -0
  20. package/dist/bot/runtime-model-picker.js.map +1 -0
  21. package/dist/bot/session-settings.js +28 -30
  22. package/dist/bot/session-settings.js.map +1 -1
  23. package/dist/bot/telegram-commands.js +161 -36
  24. package/dist/bot/telegram-commands.js.map +1 -1
  25. package/dist/bot/telegram.js +6 -1
  26. package/dist/bot/telegram.js.map +1 -1
  27. package/dist/bot/ux/events.js.map +1 -1
  28. package/dist/bot/ux/progress-to-events.js +11 -0
  29. package/dist/bot/ux/progress-to-events.js.map +1 -1
  30. package/dist/cli/commands/anton.js +3 -0
  31. package/dist/cli/commands/anton.js.map +1 -1
  32. package/dist/cli/commands/editing.js +26 -0
  33. package/dist/cli/commands/editing.js.map +1 -1
  34. package/dist/cli/commands/session.js +1 -1
  35. package/dist/cli/commands/session.js.map +1 -1
  36. package/dist/config.js +134 -0
  37. package/dist/config.js.map +1 -1
  38. package/dist/routing/mode.js +32 -0
  39. package/dist/routing/mode.js.map +1 -0
  40. package/dist/routing/turn-router.js +128 -0
  41. package/dist/routing/turn-router.js.map +1 -0
  42. package/package.json +1 -1
@@ -0,0 +1,77 @@
1
+ export const TELEGRAM_MODELS_PER_PAGE = 8;
2
+ export const DISCORD_MODELS_PER_PAGE = 10;
3
+ export function normalizeModelQuery(query) {
4
+ return String(query ?? '').trim().toLowerCase();
5
+ }
6
+ export function filterRuntimeModels(models, query) {
7
+ const normalized = normalizeModelQuery(query);
8
+ const enabled = (models ?? []).filter((m) => m && m.enabled !== false);
9
+ if (!normalized)
10
+ return enabled;
11
+ const terms = normalized.split(/\s+/).filter(Boolean);
12
+ return enabled.filter((m) => {
13
+ const hay = `${m.display_name} ${m.id}`.toLowerCase();
14
+ return terms.every((term) => hay.includes(term));
15
+ });
16
+ }
17
+ export function truncateLabel(input, max = 48) {
18
+ const text = String(input ?? '').trim();
19
+ if (max <= 1)
20
+ return text.slice(0, Math.max(0, max));
21
+ return text.length > max ? `${text.slice(0, max - 1)}…` : text;
22
+ }
23
+ function normalizePerPage(perPage) {
24
+ const n = Number.isFinite(perPage) ? Math.floor(Number(perPage)) : TELEGRAM_MODELS_PER_PAGE;
25
+ return Math.max(1, Math.min(25, n));
26
+ }
27
+ export function buildRuntimeModelPickerPage(models, opts) {
28
+ const enabled = (models ?? []).filter((m) => m && m.enabled !== false);
29
+ const perPage = normalizePerPage(opts?.perPage);
30
+ const totalModels = enabled.length;
31
+ const totalPages = Math.max(1, Math.ceil(totalModels / perPage));
32
+ const requestedPage = Number.isFinite(opts?.page) ? Math.floor(Number(opts?.page)) : 0;
33
+ const page = Math.max(0, Math.min(totalPages - 1, requestedPage));
34
+ const start = page * perPage;
35
+ const selected = enabled.slice(start, start + perPage);
36
+ const activeId = opts?.activeModelId ?? null;
37
+ const items = selected.map((m, i) => ({
38
+ ordinal: start + i + 1,
39
+ id: m.id,
40
+ displayName: m.display_name,
41
+ isActive: !!activeId && m.id === activeId,
42
+ }));
43
+ return {
44
+ page,
45
+ totalPages,
46
+ perPage,
47
+ totalModels,
48
+ hasPrev: page > 0,
49
+ hasNext: page < totalPages - 1,
50
+ items,
51
+ };
52
+ }
53
+ export function formatRuntimeModelPickerText(page, opts) {
54
+ const header = opts?.header ?? '📋 Select a model to switch to:';
55
+ const maxDisplayName = opts?.maxDisplayName ?? 72;
56
+ const maxModelId = opts?.maxModelId ?? 80;
57
+ const query = String(opts?.query ?? '').trim();
58
+ const lines = [];
59
+ lines.push(`${header} (page ${page.page + 1}/${page.totalPages}, total ${page.totalModels})`);
60
+ if (query)
61
+ lines.push(`Filter: "${truncateLabel(query, 48)}"`);
62
+ lines.push('');
63
+ if (!page.items.length) {
64
+ lines.push('No models on this page.');
65
+ }
66
+ else {
67
+ for (const item of page.items) {
68
+ const marker = item.isActive ? '★' : ' ';
69
+ lines.push(`${String(item.ordinal).padStart(2, '0')}. ${marker} ${truncateLabel(item.displayName, maxDisplayName)}`);
70
+ lines.push(` id: ${truncateLabel(item.id, maxModelId)}`);
71
+ }
72
+ }
73
+ lines.push('');
74
+ lines.push('Tap a number button below to switch.');
75
+ return lines.join('\n');
76
+ }
77
+ //# sourceMappingURL=runtime-model-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-model-picker.js","sourceRoot":"","sources":["../../src/bot/runtime-model-picker.ts"],"names":[],"mappings":"AAuBA,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAC1C,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C,MAAM,UAAU,mBAAmB,CAAC,KAAgC;IAClE,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAA0B,EAAE,KAAc;IAC5E,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC;IACvE,IAAI,CAAC,UAAU;QAAE,OAAO,OAAO,CAAC;IAEhC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACtD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC;QACtD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,GAAG,GAAG,EAAE;IACnD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACrD,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACjE,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAgB;IACxC,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC;IAC5F,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,MAA0B,EAC1B,IAIC;IAED,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IACnC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;IAEjE,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvF,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;IAElE,MAAM,KAAK,GAAG,IAAI,GAAG,OAAO,CAAC;IAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,IAAI,EAAE,aAAa,IAAI,IAAI,CAAC;IAE7C,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACpC,OAAO,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC;QACtB,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,WAAW,EAAE,CAAC,CAAC,YAAY;QAC3B,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,KAAK,QAAQ;KAC1C,CAAC,CAAC,CAAC;IAEJ,OAAO;QACL,IAAI;QACJ,UAAU;QACV,OAAO;QACP,WAAW;QACX,OAAO,EAAE,IAAI,GAAG,CAAC;QACjB,OAAO,EAAE,IAAI,GAAG,UAAU,GAAG,CAAC;QAC9B,KAAK;KACN,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,IAA4B,EAC5B,IAKC;IAED,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,iCAAiC,CAAC;IACjE,MAAM,cAAc,GAAG,IAAI,EAAE,cAAc,IAAI,EAAE,CAAC;IAClD,MAAM,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC;IAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAE/C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,UAAU,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,WAAW,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;IAC9F,IAAI,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAC/D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YACzC,KAAK,CAAC,IAAI,CACR,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,CACzG,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,WAAW,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACnD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { ROUTING_MODES, getEffectiveRoutingMode, normalizeRoutingMode, routingModeStatusLines, } from '../routing/mode.js';
1
2
  const APPROVAL_MODES = ['plan', 'default', 'auto-edit', 'yolo'];
2
3
  // ── Dir / pin / unpin ───────────────────────────────────────────────
3
4
  export function dirShowCommand(managed) {
@@ -54,24 +55,13 @@ export function approvalSetCommand(managed, arg) {
54
55
  managed.approvalMode = arg;
55
56
  return { success: `✅ Approval mode set to ${arg}` };
56
57
  }
57
- // Routing modes for Phase 2 - Fast/Heavy/Auto Routing
58
- const ROUTING_MODES = ['auto', 'fast', 'heavy'];
59
58
  export function modeShowCommand(managed) {
60
59
  const mode = managed.config.mode ?? 'code';
61
60
  return {
62
61
  kv: [['Mode', mode, true]],
63
- lines: mode === 'auto' || mode === 'fast' || mode === 'heavy'
64
- ? [`Routing mode: ${mode}`]
65
- : undefined
66
62
  };
67
63
  }
68
64
  export function modeSetCommand(managed, arg) {
69
- // Check if it's a routing mode
70
- if (ROUTING_MODES.includes(arg)) {
71
- managed.config.mode = arg;
72
- return { success: `✅ Routing mode set to ${arg}` };
73
- }
74
- // Check if it's a legacy mode (code/sys)
75
65
  if (arg === 'code' || arg === 'sys') {
76
66
  managed.config.mode = arg;
77
67
  if (arg === 'sys' && managed.config.approval_mode === 'auto-edit') {
@@ -81,33 +71,41 @@ export function modeSetCommand(managed, arg) {
81
71
  }
82
72
  return { success: `✅ Mode set to ${arg}` };
83
73
  }
84
- // Invalid mode
85
74
  return {
86
- error: `Invalid mode. Options: code, sys, ${ROUTING_MODES.join(', ')}`
75
+ error: 'Invalid mode. Options: code, sys',
87
76
  };
88
77
  }
89
78
  export function modeStatusCommand(managed) {
90
79
  const mode = managed.config.mode ?? 'code';
91
- const lines = [];
92
- if (mode === 'auto' || mode === 'fast' || mode === 'heavy') {
93
- lines.push(`Current routing mode: ${mode}`);
94
- }
95
- else {
96
- lines.push(`Current mode: ${mode}`);
97
- }
98
- // Show routing config if available
99
- const routing = managed.config.routing;
100
- if (routing) {
101
- lines.push(`Default mode: ${routing.defaultMode ?? 'auto'}`);
102
- lines.push(`Fast model: ${routing.fastModel ?? 'not configured'}`);
103
- lines.push(`Heavy model: ${routing.heavyModel ?? 'not configured'}`);
104
- }
105
- else {
106
- lines.push('Routing not configured');
80
+ return {
81
+ title: 'Mode Status',
82
+ lines: [
83
+ `Current mode: ${mode}`,
84
+ 'Use /plan and /approval for planning/approval behavior.',
85
+ ],
86
+ };
87
+ }
88
+ export function routingModeShowCommand(managed) {
89
+ const mode = getEffectiveRoutingMode(managed.config);
90
+ return {
91
+ kv: [['Routing mode', mode, true]],
92
+ lines: [`Options: ${ROUTING_MODES.join(', ')}`],
93
+ };
94
+ }
95
+ export function routingModeSetCommand(managed, arg) {
96
+ const mode = normalizeRoutingMode(arg);
97
+ if (!mode) {
98
+ return {
99
+ error: `Invalid routing mode. Options: ${ROUTING_MODES.join(', ')}`,
100
+ };
107
101
  }
102
+ managed.config.routing_mode = mode;
103
+ return { success: `✅ Routing mode set to ${mode}` };
104
+ }
105
+ export function routingModeStatusCommand(managed) {
108
106
  return {
109
107
  title: 'Routing Mode Status',
110
- lines
108
+ lines: routingModeStatusLines(managed.config),
111
109
  };
112
110
  }
113
111
  export function subagentsShowCommand(managed) {
@@ -1 +1 @@
1
- {"version":3,"file":"session-settings.js","sourceRoot":"","sources":["../../src/bot/session-settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-settings.js","sourceRoot":"","sources":["../../src/bot/session-settings.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,27 @@
4
4
  * model-selection callback query.
5
5
  */
6
6
  import path from 'node:path';
7
+ import { TELEGRAM_MODELS_PER_PAGE, buildRuntimeModelPickerPage, filterRuntimeModels, formatRuntimeModelPickerText, truncateLabel, } from './runtime-model-picker.js';
8
+ const modelQueryRegistry = new Map();
9
+ const MODEL_QUERY_REGISTRY_LIMIT = 200;
10
+ function registerModelQuery(query) {
11
+ const trimmed = String(query ?? '').trim();
12
+ if (!trimmed)
13
+ return '-';
14
+ const key = `${Date.now().toString(36)}${Math.random().toString(36).slice(2, 6)}`;
15
+ modelQueryRegistry.set(key, trimmed);
16
+ if (modelQueryRegistry.size > MODEL_QUERY_REGISTRY_LIMIT) {
17
+ const oldest = modelQueryRegistry.keys().next().value;
18
+ if (oldest)
19
+ modelQueryRegistry.delete(oldest);
20
+ }
21
+ return key;
22
+ }
23
+ function readModelQuery(key) {
24
+ if (!key || key === '-')
25
+ return '';
26
+ return modelQueryRegistry.get(key) ?? '';
27
+ }
7
28
  /**
8
29
  * Register runtime-related command handlers on the bot instance.
9
30
  */
@@ -40,33 +61,73 @@ export function registerRuntimeCommands(bot) {
40
61
  await ctx.reply(`❌ Failed to load backends: ${e?.message ?? String(e)}`);
41
62
  }
42
63
  });
43
- const handleRuntimeModels = async (ctx) => {
44
- try {
45
- const { loadRuntimes } = await import('../runtime/store.js');
46
- const config = await loadRuntimes();
47
- if (!config.models.length) {
48
- await ctx.reply('No runtime models configured.');
49
- return;
50
- }
51
- const enabledModels = config.models.filter((m) => m.enabled);
52
- if (!enabledModels.length) {
53
- await ctx.reply('No enabled runtime models. Use `idlehands models enable <id>` in CLI.');
54
- return;
55
- }
56
- const buttons = enabledModels.map((m) => [
64
+ const buildTelegramModelPage = async (page, query = '', queryKey = '-') => {
65
+ const { loadRuntimes } = await import('../runtime/store.js');
66
+ const { loadActiveRuntime } = await import('../runtime/executor.js');
67
+ const config = await loadRuntimes();
68
+ const active = await loadActiveRuntime().catch(() => null);
69
+ if (!config.models.length) {
70
+ return { empty: 'No runtime models configured.' };
71
+ }
72
+ const filteredModels = filterRuntimeModels(config.models, query);
73
+ if (!filteredModels.length) {
74
+ const suffix = query ? ` matching "${truncateLabel(query, 48)}"` : '';
75
+ return {
76
+ empty: `No enabled runtime models${suffix}.`,
77
+ };
78
+ }
79
+ const modelPage = buildRuntimeModelPickerPage(filteredModels, {
80
+ page,
81
+ perPage: TELEGRAM_MODELS_PER_PAGE,
82
+ activeModelId: active?.modelId,
83
+ });
84
+ const rows = [];
85
+ for (let i = 0; i < modelPage.items.length; i += 2) {
86
+ const row = modelPage.items.slice(i, i + 2).map((item) => ({
87
+ text: `${item.isActive ? '★' : ''}${item.ordinal}`,
88
+ callback_data: `model_select:${item.id}`,
89
+ }));
90
+ rows.push(row);
91
+ }
92
+ if (modelPage.totalPages > 1) {
93
+ rows.push([
94
+ {
95
+ text: modelPage.hasPrev ? '⬅️ Prev' : '·',
96
+ callback_data: modelPage.hasPrev
97
+ ? `model_page:${modelPage.page - 1}:${queryKey}`
98
+ : 'model_page_noop',
99
+ },
57
100
  {
58
- text: `🟢 ${m.display_name}`,
59
- callback_data: `model_select:${m.id}`,
101
+ text: `${modelPage.page + 1}/${modelPage.totalPages}`,
102
+ callback_data: 'model_page_noop',
103
+ },
104
+ {
105
+ text: modelPage.hasNext ? 'Next ➡️' : '·',
106
+ callback_data: modelPage.hasNext
107
+ ? `model_page:${modelPage.page + 1}:${queryKey}`
108
+ : 'model_page_noop',
60
109
  },
61
110
  ]);
62
- const keyboard = [];
63
- for (let i = 0; i < buttons.length; i += 2) {
64
- const row = buttons.slice(i, i + 2).flat();
65
- keyboard.push(row);
111
+ }
112
+ const text = formatRuntimeModelPickerText(modelPage, {
113
+ header: '📋 Select a model to switch to',
114
+ maxDisplayName: 64,
115
+ maxModelId: 72,
116
+ query,
117
+ });
118
+ return { text, keyboard: rows };
119
+ };
120
+ const handleRuntimeModels = async (ctx) => {
121
+ try {
122
+ const query = ctx.match?.toString()?.trim() ?? '';
123
+ const queryKey = registerModelQuery(query);
124
+ const page = await buildTelegramModelPage(0, query, queryKey);
125
+ if ('empty' in page) {
126
+ await ctx.reply(page.empty);
127
+ return;
66
128
  }
67
- await ctx.reply('📋 *Select a model to switch to:*', {
68
- parse_mode: 'Markdown',
69
- reply_markup: { inline_keyboard: keyboard },
129
+ await ctx.reply(page.text, {
130
+ reply_markup: { inline_keyboard: page.keyboard },
70
131
  });
71
132
  }
72
133
  catch (e) {
@@ -74,7 +135,6 @@ export function registerRuntimeCommands(bot) {
74
135
  }
75
136
  };
76
137
  bot.command('models', handleRuntimeModels);
77
- bot.command('rtmodels', handleRuntimeModels);
78
138
  bot.command('rtstatus', async (ctx) => {
79
139
  try {
80
140
  const { loadActiveRuntime } = await import('../runtime/executor.js');
@@ -257,10 +317,83 @@ export function registerRuntimeCommands(bot) {
257
317
  */
258
318
  export async function handleModelSelectCallback(ctx) {
259
319
  const data = ctx.callbackQuery.data;
260
- if (!data.startsWith('model_select:'))
320
+ if (!data.startsWith('model_select:') &&
321
+ !data.startsWith('model_page:') &&
322
+ data !== 'model_page_noop') {
261
323
  return false;
324
+ }
325
+ if (data === 'model_page_noop') {
326
+ await ctx.answerCallbackQuery().catch(() => { });
327
+ return true;
328
+ }
329
+ const buildTelegramModelPage = async (page, query = '', queryKey = '-') => {
330
+ const { loadRuntimes } = await import('../runtime/store.js');
331
+ const { loadActiveRuntime } = await import('../runtime/executor.js');
332
+ const config = await loadRuntimes();
333
+ const active = await loadActiveRuntime().catch(() => null);
334
+ const filteredModels = filterRuntimeModels(config.models, query);
335
+ const modelPage = buildRuntimeModelPickerPage(filteredModels, {
336
+ page,
337
+ perPage: TELEGRAM_MODELS_PER_PAGE,
338
+ activeModelId: active?.modelId,
339
+ });
340
+ const rows = [];
341
+ for (let i = 0; i < modelPage.items.length; i += 2) {
342
+ rows.push(modelPage.items.slice(i, i + 2).map((item) => ({
343
+ text: `${item.isActive ? '★' : ''}${item.ordinal}`,
344
+ callback_data: `model_select:${item.id}`,
345
+ })));
346
+ }
347
+ if (modelPage.totalPages > 1) {
348
+ rows.push([
349
+ {
350
+ text: modelPage.hasPrev ? '⬅️ Prev' : '·',
351
+ callback_data: modelPage.hasPrev
352
+ ? `model_page:${modelPage.page - 1}:${queryKey}`
353
+ : 'model_page_noop',
354
+ },
355
+ {
356
+ text: `${modelPage.page + 1}/${modelPage.totalPages}`,
357
+ callback_data: 'model_page_noop',
358
+ },
359
+ {
360
+ text: modelPage.hasNext ? 'Next ➡️' : '·',
361
+ callback_data: modelPage.hasNext
362
+ ? `model_page:${modelPage.page + 1}:${queryKey}`
363
+ : 'model_page_noop',
364
+ },
365
+ ]);
366
+ }
367
+ const text = formatRuntimeModelPickerText(modelPage, {
368
+ header: '📋 Select a model to switch to',
369
+ maxDisplayName: 64,
370
+ maxModelId: 72,
371
+ query,
372
+ });
373
+ return { text, keyboard: rows };
374
+ };
375
+ if (data.startsWith('model_page:')) {
376
+ const rest = data.slice('model_page:'.length);
377
+ const [pageRaw, queryKeyRaw] = rest.split(':', 2);
378
+ const page = Number.parseInt(pageRaw, 10);
379
+ const queryKey = queryKeyRaw ?? '-';
380
+ const query = readModelQuery(queryKey);
381
+ await ctx.answerCallbackQuery().catch(() => { });
382
+ try {
383
+ const payload = await buildTelegramModelPage(Number.isFinite(page) ? page : 0, query, queryKey);
384
+ await ctx
385
+ .editMessageText(payload.text, {
386
+ reply_markup: { inline_keyboard: payload.keyboard },
387
+ })
388
+ .catch(() => { });
389
+ }
390
+ catch (e) {
391
+ await ctx.editMessageText(`❌ Failed to load model page: ${e?.message ?? String(e)}`).catch(() => { });
392
+ }
393
+ return true;
394
+ }
262
395
  const modelId = data.slice('model_select:'.length);
263
- await ctx.answerCallbackQuery({ text: `Switching to ${modelId}...` }).catch(() => { });
396
+ await ctx.answerCallbackQuery({ text: `Switching to ${truncateLabel(modelId, 48)}...` }).catch(() => { });
264
397
  try {
265
398
  const { plan } = await import('../runtime/planner.js');
266
399
  const { execute, loadActiveRuntime } = await import('../runtime/executor.js');
@@ -274,11 +407,7 @@ export async function handleModelSelectCallback(ctx) {
274
407
  return true;
275
408
  }
276
409
  if (result.reuse) {
277
- await ctx
278
- .editMessageText(`✅ Already using *${result.model.display_name}*`, {
279
- parse_mode: 'Markdown',
280
- })
281
- .catch(() => { });
410
+ await ctx.editMessageText(`✅ Already using ${result.model.display_name}`).catch(() => { });
282
411
  return true;
283
412
  }
284
413
  const execResult = await execute(result, {
@@ -293,11 +422,7 @@ export async function handleModelSelectCallback(ctx) {
293
422
  },
294
423
  });
295
424
  if (execResult.ok) {
296
- await ctx
297
- .editMessageText(`✅ Switched to *${result.model.display_name}*`, {
298
- parse_mode: 'Markdown',
299
- })
300
- .catch(() => { });
425
+ await ctx.editMessageText(`✅ Switched to ${result.model.display_name}`).catch(() => { });
301
426
  }
302
427
  else {
303
428
  await ctx
@@ -1 +1 @@
1
- {"version":3,"file":"telegram-commands.js","sourceRoot":"","sources":["../../src/bot/telegram-commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telegram-commands.js","sourceRoot":"","sources":["../../src/bot/telegram-commands.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ import { formatToolCallSummary } from '../progress/tool-summary.js';
11
11
  import { PKG_VERSION } from '../utils.js';
12
12
  import { formatWatchdogCancelMessage, resolveWatchdogSettings } from '../watchdog.js';
13
13
  import { isToolLoopBreak, formatAutoContinueNotice, AUTO_CONTINUE_PROMPT, } from './auto-continue.js';
14
- import { handleStart, handleHelp, handleVersion, handleNew, handleCancel, handleStatus, handleWatchdog, handleDir, handlePin, handleUnpin, handleModel, handleCompact, handleApproval, handleMode, handleSubAgents, handleChanges, handleUndo, handleVault, handleAnton, handleAgent, handleAgents, handleEscalate, handleDeescalate, handleRestartBot, handleGitStatus, } from './commands.js';
14
+ import { handleStart, handleHelp, handleVersion, handleNew, handleCancel, handleStatus, handleWatchdog, handleDir, handlePin, handleUnpin, handleModel, handleCompact, handleApproval, handleMode, handleRoutingMode, handleRetryFast, handleRetryHeavy, handleSubAgents, handleChanges, handleUndo, handleVault, handleAnton, handleAgent, handleAgents, handleEscalate, handleDeescalate, handleRestartBot, handleGitStatus, } from './commands.js';
15
15
  import { TelegramConfirmProvider } from './confirm-telegram.js';
16
16
  import { detectEscalation, checkKeywordEscalation } from './discord-routing.js';
17
17
  import { markdownToTelegramHtml, splitMessage, escapeHtml } from './format.js';
@@ -338,6 +338,9 @@ export async function startTelegramBot(config, botConfig) {
338
338
  bot.command('compact', (ctx) => handleCompact(cmdCtx(ctx)));
339
339
  bot.command('approval', (ctx) => handleApproval(cmdCtx(ctx)));
340
340
  bot.command('mode', (ctx) => handleMode(cmdCtx(ctx)));
341
+ bot.command('routing_mode', (ctx) => handleRoutingMode(cmdCtx(ctx)));
342
+ bot.command('retry_fast', (ctx) => handleRetryFast(cmdCtx(ctx)));
343
+ bot.command('retry_heavy', (ctx) => handleRetryHeavy(cmdCtx(ctx)));
341
344
  bot.command('subagents', (ctx) => handleSubAgents(cmdCtx(ctx)));
342
345
  bot.command('changes', (ctx) => handleChanges(cmdCtx(ctx)));
343
346
  bot.command('undo', (ctx) => handleUndo(cmdCtx(ctx)));
@@ -476,12 +479,14 @@ export async function startTelegramBot(config, botConfig) {
476
479
  { command: 'agents', description: 'List all configured agents' },
477
480
  { command: 'escalate', description: 'Use larger model for next message' },
478
481
  { command: 'deescalate', description: 'Return to base model' },
482
+ { command: 'restart_bot', description: 'Restart bot service' },
479
483
  { command: 'upgrade', description: 'Upgrade IdleHands and restart' },
480
484
  { command: 'dir', description: 'Get/set working directory' },
481
485
  { command: 'model', description: 'Show current model' },
482
486
  { command: 'compact', description: 'Compact context' },
483
487
  { command: 'approval', description: 'Get/set approval mode' },
484
488
  { command: 'mode', description: 'Get/set mode (code/sys)' },
489
+ { command: 'routing_mode', description: 'Get/set routing mode (auto/fast/heavy)' },
485
490
  { command: 'subagents', description: 'Toggle sub-agents on/off' },
486
491
  { command: 'changes', description: 'Files modified this session' },
487
492
  { command: 'undo', description: 'Undo last edit' },