@visorcraft/idlehands 2.2.4 → 2.2.7

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 (64) hide show
  1. package/dist/agent/capture.js +98 -0
  2. package/dist/agent/capture.js.map +1 -0
  3. package/dist/agent/client-pool.js +115 -0
  4. package/dist/agent/client-pool.js.map +1 -0
  5. package/dist/agent/conversation-branch.js +50 -0
  6. package/dist/agent/conversation-branch.js.map +1 -0
  7. package/dist/agent/tools-schema.js +16 -3
  8. package/dist/agent/tools-schema.js.map +1 -1
  9. package/dist/agent.js +465 -56
  10. package/dist/agent.js.map +1 -1
  11. package/dist/anton/verifier-utils.js +75 -3
  12. package/dist/anton/verifier-utils.js.map +1 -1
  13. package/dist/anton/verifier.js +2 -1
  14. package/dist/anton/verifier.js.map +1 -1
  15. package/dist/bot/anton-run.js +1 -0
  16. package/dist/bot/anton-run.js.map +1 -1
  17. package/dist/bot/basic-commands.js +10 -1
  18. package/dist/bot/basic-commands.js.map +1 -1
  19. package/dist/bot/budget-command.js +74 -0
  20. package/dist/bot/budget-command.js.map +1 -0
  21. package/dist/bot/capture-commands.js +82 -0
  22. package/dist/bot/capture-commands.js.map +1 -0
  23. package/dist/bot/command-logic.js +6 -1
  24. package/dist/bot/command-logic.js.map +1 -1
  25. package/dist/bot/commands.js +157 -1
  26. package/dist/bot/commands.js.map +1 -1
  27. package/dist/bot/cost-command.js +80 -0
  28. package/dist/bot/cost-command.js.map +1 -0
  29. package/dist/bot/diff-command.js +48 -0
  30. package/dist/bot/diff-command.js.map +1 -0
  31. package/dist/bot/discord-commands.js +152 -18
  32. package/dist/bot/discord-commands.js.map +1 -1
  33. package/dist/bot/discord.js +86 -6
  34. package/dist/bot/discord.js.map +1 -1
  35. package/dist/bot/rollback-command.js +33 -0
  36. package/dist/bot/rollback-command.js.map +1 -0
  37. package/dist/bot/runtime-model-picker.js +77 -0
  38. package/dist/bot/runtime-model-picker.js.map +1 -0
  39. package/dist/bot/session-settings.js +28 -30
  40. package/dist/bot/session-settings.js.map +1 -1
  41. package/dist/bot/telegram-commands.js +161 -36
  42. package/dist/bot/telegram-commands.js.map +1 -1
  43. package/dist/bot/telegram.js +13 -1
  44. package/dist/bot/telegram.js.map +1 -1
  45. package/dist/bot/ux/events.js.map +1 -1
  46. package/dist/bot/ux/progress-to-events.js +11 -0
  47. package/dist/bot/ux/progress-to-events.js.map +1 -1
  48. package/dist/cli/commands/anton.js +3 -0
  49. package/dist/cli/commands/anton.js.map +1 -1
  50. package/dist/cli/commands/editing.js +37 -2
  51. package/dist/cli/commands/editing.js.map +1 -1
  52. package/dist/cli/commands/session.js +1 -1
  53. package/dist/cli/commands/session.js.map +1 -1
  54. package/dist/config.js +161 -0
  55. package/dist/config.js.map +1 -1
  56. package/dist/progress/turn-progress.js +203 -129
  57. package/dist/progress/turn-progress.js.map +1 -1
  58. package/dist/routing/hysteresis.js +69 -0
  59. package/dist/routing/hysteresis.js.map +1 -0
  60. package/dist/routing/mode.js +32 -0
  61. package/dist/routing/mode.js.map +1 -0
  62. package/dist/routing/turn-router.js +128 -0
  63. package/dist/routing/turn-router.js.map +1 -0
  64. package/package.json +1 -1
@@ -8,7 +8,7 @@
8
8
  import { firstToken } from '../cli/command-utils.js';
9
9
  import { shouldAutoPinBeforeAntonStart } from './anton-auto-pin.js';
10
10
  import { formatHtml } from './command-format.js';
11
- import { versionCommand, startCommand, helpCommand, modelCommand, compactCommand, statusCommand, watchdogCommand, dirShowCommand, approvalShowCommand, approvalSetCommand, modeShowCommand, modeSetCommand, modeStatusCommand, subagentsShowCommand, subagentsSetCommand, changesCommand, undoCommand, vaultCommand, agentCommand, agentsCommand, escalateShowCommand, escalateSetCommand, deescalateCommand, gitStatusCommand, antonCommand, } from './command-logic.js';
11
+ import { versionCommand, startCommand, helpCommand, modelCommand, compactCommand, statusCommand, watchdogCommand, captureSetCommand, captureShowCommand, rollbackCommand, checkpointsCommand, budgetCommand, diffCommand, costCommand, dirShowCommand, approvalShowCommand, approvalSetCommand, modeShowCommand, modeSetCommand, modeStatusCommand, routingModeShowCommand, routingModeSetCommand, routingModeStatusCommand, subagentsShowCommand, subagentsSetCommand, changesCommand, undoCommand, vaultCommand, agentCommand, agentsCommand, escalateShowCommand, escalateSetCommand, deescalateCommand, gitStatusCommand, antonCommand, } from './command-logic.js';
12
12
  import { escapeHtml } from './format.js';
13
13
  /** Send formatted CmdResult as Telegram HTML. */
14
14
  async function reply(ctx, result) {
@@ -191,6 +191,29 @@ export async function handleCompact({ ctx, sessions }) {
191
191
  }
192
192
  await reply(ctx, compactCommand(managed));
193
193
  }
194
+ export async function handleCapture({ ctx, sessions }) {
195
+ const chatId = ctx.chat?.id;
196
+ const userId = ctx.from?.id;
197
+ if (!chatId)
198
+ return;
199
+ const text = ctx.message?.text ?? '';
200
+ const arg = text.replace(/^\/capture\s*/i, '').trim();
201
+ let managed = sessions.get(chatId);
202
+ if (!managed && userId) {
203
+ managed = (await sessions.getOrCreate(chatId, userId)) ?? undefined;
204
+ }
205
+ if (!managed) {
206
+ await ctx.reply('No active session. Send a message to start one.');
207
+ return;
208
+ }
209
+ if (!arg) {
210
+ await reply(ctx, captureShowCommand(managed));
211
+ return;
212
+ }
213
+ const mode = firstToken(arg).toLowerCase();
214
+ const filePath = arg.slice(mode.length).trim() || undefined;
215
+ await reply(ctx, await captureSetCommand(managed, mode, filePath));
216
+ }
194
217
  export async function handleApproval({ ctx, sessions }) {
195
218
  const chatId = ctx.chat?.id;
196
219
  if (!chatId)
@@ -248,6 +271,30 @@ export async function handleMode({ ctx, sessions }) {
248
271
  }
249
272
  await reply(ctx, modeSetCommand(managed, arg));
250
273
  }
274
+ export async function handleRoutingMode({ ctx, sessions }) {
275
+ const chatId = ctx.chat?.id;
276
+ if (!chatId)
277
+ return;
278
+ const text = ctx.message?.text ?? '';
279
+ const arg = text
280
+ .replace(/^\/routing_mode\s*/, '')
281
+ .trim()
282
+ .toLowerCase();
283
+ const managed = sessions.get(chatId);
284
+ if (!managed) {
285
+ await ctx.reply('No active session. Send a message to start one.');
286
+ return;
287
+ }
288
+ if (!arg) {
289
+ await reply(ctx, routingModeShowCommand(managed));
290
+ return;
291
+ }
292
+ if (arg === 'status') {
293
+ await reply(ctx, routingModeStatusCommand(managed));
294
+ return;
295
+ }
296
+ await reply(ctx, routingModeSetCommand(managed, arg));
297
+ }
251
298
  export async function handleSubAgents({ ctx, sessions }) {
252
299
  const chatId = ctx.chat?.id;
253
300
  if (!chatId)
@@ -290,6 +337,61 @@ export async function handleUndo({ ctx, sessions }) {
290
337
  }
291
338
  await reply(ctx, await undoCommand(managed));
292
339
  }
340
+ export async function handleRollback({ ctx, sessions }) {
341
+ const chatId = ctx.chat?.id;
342
+ if (!chatId)
343
+ return;
344
+ const managed = sessions.get(chatId);
345
+ if (!managed) {
346
+ await ctx.reply('No active session.');
347
+ return;
348
+ }
349
+ await reply(ctx, rollbackCommand(managed));
350
+ }
351
+ export async function handleCheckpoints({ ctx, sessions }) {
352
+ const chatId = ctx.chat?.id;
353
+ if (!chatId)
354
+ return;
355
+ const managed = sessions.get(chatId);
356
+ if (!managed) {
357
+ await ctx.reply('No active session.');
358
+ return;
359
+ }
360
+ await reply(ctx, checkpointsCommand(managed));
361
+ }
362
+ export async function handleCost({ ctx, sessions }) {
363
+ const chatId = ctx.chat?.id;
364
+ if (!chatId)
365
+ return;
366
+ const managed = sessions.get(chatId);
367
+ if (!managed) {
368
+ await ctx.reply('No active session.');
369
+ return;
370
+ }
371
+ await reply(ctx, costCommand(managed));
372
+ }
373
+ export async function handleDiff({ ctx, sessions }) {
374
+ const chatId = ctx.chat?.id;
375
+ if (!chatId)
376
+ return;
377
+ const managed = sessions.get(chatId);
378
+ if (!managed) {
379
+ await ctx.reply('No active session.');
380
+ return;
381
+ }
382
+ await reply(ctx, diffCommand(managed));
383
+ }
384
+ export async function handleBudget({ ctx, sessions }) {
385
+ const chatId = ctx.chat?.id;
386
+ if (!chatId)
387
+ return;
388
+ const managed = sessions.get(chatId);
389
+ if (!managed) {
390
+ await ctx.reply('No active session.');
391
+ return;
392
+ }
393
+ await reply(ctx, budgetCommand(managed));
394
+ }
293
395
  export async function handleVault({ ctx, sessions }) {
294
396
  const chatId = ctx.chat?.id;
295
397
  if (!chatId)
@@ -486,4 +588,58 @@ export async function handleGitStatus({ ctx, sessions }) {
486
588
  }
487
589
  await reply(ctx, await gitStatusCommand(cwd));
488
590
  }
591
+ export async function handleRetryFast({ ctx, sessions }) {
592
+ const chatId = ctx.chat?.id;
593
+ if (!chatId)
594
+ return;
595
+ const managed = sessions.get(chatId);
596
+ if (!managed) {
597
+ await ctx.reply('No active session. Send a message to start one.');
598
+ return;
599
+ }
600
+ // Set routing mode to fast
601
+ await reply(ctx, routingModeSetCommand(managed, 'fast'));
602
+ // Re-run the last task
603
+ const lastInstruction = managed.session.lastAskInstructionText || '';
604
+ if (!lastInstruction.trim()) {
605
+ await ctx.reply('❌ No previous task to retry.');
606
+ return;
607
+ }
608
+ // Add to queue for re-processing with new routing mode
609
+ const newMessage = {
610
+ text: lastInstruction,
611
+ from: ctx.message?.from,
612
+ chat: ctx.message?.chat,
613
+ date: Date.now(),
614
+ };
615
+ managed.pendingQueue.push(newMessage);
616
+ await ctx.reply('🔄 Added to queue with routing mode set to `fast`.');
617
+ }
618
+ export async function handleRetryHeavy({ ctx, sessions }) {
619
+ const chatId = ctx.chat?.id;
620
+ if (!chatId)
621
+ return;
622
+ const managed = sessions.get(chatId);
623
+ if (!managed) {
624
+ await ctx.reply('No active session. Send a message to start one.');
625
+ return;
626
+ }
627
+ // Set routing mode to heavy
628
+ await reply(ctx, routingModeSetCommand(managed, 'heavy'));
629
+ // Re-run the last task
630
+ const lastInstruction = managed.session.lastAskInstructionText || '';
631
+ if (!lastInstruction.trim()) {
632
+ await ctx.reply('❌ No previous task to retry.');
633
+ return;
634
+ }
635
+ // Add to queue for re-processing with new routing mode
636
+ const newMessage = {
637
+ text: lastInstruction,
638
+ from: ctx.message?.from,
639
+ chat: ctx.message?.chat,
640
+ date: Date.now(),
641
+ };
642
+ managed.pendingQueue.push(newMessage);
643
+ await ctx.reply('🔄 Added to queue with routing mode set to `heavy`.');
644
+ }
489
645
  //# sourceMappingURL=commands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/bot/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/bot/commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Approximate cost per 1M tokens for known models.
3
+ * Values in USD. Format: [input_per_1M, output_per_1M].
4
+ */
5
+ const MODEL_PRICING = {
6
+ // OpenAI
7
+ 'gpt-4o': [2.50, 10.00],
8
+ 'gpt-4o-mini': [0.15, 0.60],
9
+ 'gpt-4.1': [2.00, 8.00],
10
+ 'gpt-4.1-mini': [0.40, 1.60],
11
+ 'gpt-4.1-nano': [0.10, 0.40],
12
+ 'gpt-5': [10.00, 30.00],
13
+ 'gpt-5-mini': [1.50, 6.00],
14
+ 'gpt-5.2-codex': [0.50, 2.00],
15
+ 'gpt-5.3-codex': [0.50, 2.00],
16
+ 'o3': [10.00, 40.00],
17
+ 'o3-mini': [1.10, 4.40],
18
+ 'o4-mini': [1.10, 4.40],
19
+ // Anthropic
20
+ 'claude-sonnet-4-20250514': [3.00, 15.00],
21
+ 'claude-opus-4-20250514': [15.00, 75.00],
22
+ 'claude-opus-4-6': [15.00, 75.00],
23
+ // Google
24
+ 'gemini-2.5-pro': [1.25, 10.00],
25
+ 'gemini-2.5-flash': [0.15, 0.60],
26
+ 'gemini-3-flash': [0.10, 0.40],
27
+ 'gemini-3-pro': [1.00, 4.00],
28
+ // Local models are free
29
+ };
30
+ function findPricing(model) {
31
+ // Exact match first
32
+ if (MODEL_PRICING[model])
33
+ return MODEL_PRICING[model];
34
+ // Prefix match (e.g. "gpt-4o-2024-11-20" → "gpt-4o")
35
+ for (const [key, price] of Object.entries(MODEL_PRICING)) {
36
+ if (model.startsWith(key))
37
+ return price;
38
+ }
39
+ // Check if it contains a known model name
40
+ for (const [key, price] of Object.entries(MODEL_PRICING)) {
41
+ if (model.includes(key))
42
+ return price;
43
+ }
44
+ return null;
45
+ }
46
+ /**
47
+ * /cost — Show estimated API costs for the current session.
48
+ */
49
+ export function costCommand(managed) {
50
+ const session = managed.session;
51
+ const model = session.model;
52
+ const usage = session.usage;
53
+ const pricing = findPricing(model);
54
+ if (!pricing) {
55
+ return {
56
+ title: 'Session Cost',
57
+ lines: [
58
+ `Model: ${model}`,
59
+ `Tokens: ${usage.prompt.toLocaleString()} in / ${usage.completion.toLocaleString()} out`,
60
+ '',
61
+ 'No pricing data available for this model.',
62
+ 'Local models are free! 🎉',
63
+ ],
64
+ };
65
+ }
66
+ const [inputPer1M, outputPer1M] = pricing;
67
+ const inputCost = (usage.prompt / 1_000_000) * inputPer1M;
68
+ const outputCost = (usage.completion / 1_000_000) * outputPer1M;
69
+ const totalCost = inputCost + outputCost;
70
+ return {
71
+ title: 'Session Cost',
72
+ kv: [
73
+ ['Model', model],
74
+ ['Input', `${usage.prompt.toLocaleString()} tokens · $${inputCost.toFixed(4)}`],
75
+ ['Output', `${usage.completion.toLocaleString()} tokens · $${outputCost.toFixed(4)}`],
76
+ ['Total', `$${totalCost.toFixed(4)}`],
77
+ ],
78
+ };
79
+ }
80
+ //# sourceMappingURL=cost-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cost-command.js","sourceRoot":"","sources":["../../src/bot/cost-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import { spawnSync } from 'node:child_process';
2
+ /**
3
+ * /diff — Show a unified diff of uncommitted changes in the working directory.
4
+ */
5
+ export function diffCommand(managed) {
6
+ const cwd = managed.workingDir;
7
+ // Check if it's a git repo
8
+ const isGit = spawnSync('git', ['rev-parse', '--is-inside-work-tree'], {
9
+ cwd,
10
+ timeout: 5000,
11
+ encoding: 'utf8',
12
+ });
13
+ if (isGit.status !== 0) {
14
+ return { error: 'Not a git repository.' };
15
+ }
16
+ // Get diff (staged + unstaged)
17
+ const diff = spawnSync('git', ['diff', 'HEAD', '--stat'], {
18
+ cwd,
19
+ timeout: 10000,
20
+ encoding: 'utf8',
21
+ });
22
+ const output = (diff.stdout ?? '').trim();
23
+ if (!output) {
24
+ return { lines: ['No uncommitted changes.'] };
25
+ }
26
+ // Also get the full diff but cap it
27
+ const fullDiff = spawnSync('git', ['diff', 'HEAD', '--no-color'], {
28
+ cwd,
29
+ timeout: 10000,
30
+ encoding: 'utf8',
31
+ });
32
+ const fullOutput = (fullDiff.stdout ?? '').trim();
33
+ const maxChars = 3000;
34
+ const truncated = fullOutput.length > maxChars
35
+ ? fullOutput.slice(0, maxChars) + '\n... (truncated)'
36
+ : fullOutput;
37
+ return {
38
+ title: 'Uncommitted Changes',
39
+ lines: [
40
+ output,
41
+ '',
42
+ '```diff',
43
+ truncated,
44
+ '```',
45
+ ],
46
+ };
47
+ }
48
+ //# sourceMappingURL=diff-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff-command.js","sourceRoot":"","sources":["../../src/bot/diff-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAAoB;IAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC;IAE/B,2BAA2B;IAC3B,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,uBAAuB,CAAC,EAAE;QACrE,GAAG;QACH,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,MAAM;KACjB,CAAC,CAAC;IACH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC;IAC5C,CAAC;IAED,+BAA+B;IAC/B,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE;QACxD,GAAG;QACH,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,MAAM;KACjB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,KAAK,EAAE,CAAC,yBAAyB,CAAC,EAAE,CAAC;IAChD,CAAC;IAED,oCAAoC;IACpC,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE;QAChE,GAAG;QACH,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,MAAM;KACjB,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAClD,MAAM,QAAQ,GAAG,IAAI,CAAC;IACtB,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,GAAG,QAAQ;QAC5C,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,mBAAmB;QACrD,CAAC,CAAC,UAAU,CAAC;IAEf,OAAO;QACL,KAAK,EAAE,qBAAqB;QAC5B,KAAK,EAAE;YACL,MAAM;YACN,EAAE;YACF,SAAS;YACT,SAAS;YACT,KAAK;SACN;KACF,CAAC;AACJ,CAAC"}
@@ -6,13 +6,34 @@
6
6
  */
7
7
  import path from 'node:path';
8
8
  import { PKG_VERSION } from '../utils.js';
9
- import { startCommand, helpCommand, modelCommand, compactCommand, statusCommand, dirShowCommand, approvalShowCommand, approvalSetCommand, modeShowCommand, modeSetCommand, modeStatusCommand, subagentsShowCommand, subagentsSetCommand, changesCommand, undoCommand, vaultCommand, agentCommand, agentsCommand, escalateShowCommand, escalateSetCommand, deescalateCommand, gitStatusCommand, } from './command-logic.js';
9
+ import { DISCORD_MODELS_PER_PAGE, buildRuntimeModelPickerPage, filterRuntimeModels, formatRuntimeModelPickerText, truncateLabel, } from './runtime-model-picker.js';
10
+ import { startCommand, helpCommand, modelCommand, compactCommand, captureSetCommand, captureShowCommand, statusCommand, dirShowCommand, approvalShowCommand, approvalSetCommand, modeShowCommand, modeSetCommand, modeStatusCommand, routingModeShowCommand, routingModeSetCommand, routingModeStatusCommand, subagentsShowCommand, subagentsSetCommand, changesCommand, undoCommand, rollbackCommand, checkpointsCommand, budgetCommand, diffCommand, costCommand, vaultCommand, agentCommand, agentsCommand, escalateShowCommand, escalateSetCommand, deescalateCommand, gitStatusCommand, } from './command-logic.js';
10
11
  import { detectRepoCandidates, expandHome, isPathAllowed } from './dir-guard.js';
11
12
  import { performBotUpgrade } from './upgrade-command.js';
12
13
  import { maybeAutoPinDiscordAntonStart } from './discord-anton-autopin.js';
13
14
  import { handleDiscordAnton } from './discord-anton.js';
14
15
  import { sendDiscordResult } from './discord-result.js';
15
16
  import { splitDiscord } from './discord-routing.js';
17
+ const modelQueryRegistry = new Map();
18
+ const MODEL_QUERY_REGISTRY_LIMIT = 200;
19
+ function registerModelQuery(query) {
20
+ const trimmed = String(query ?? '').trim();
21
+ if (!trimmed)
22
+ return '-';
23
+ const key = `${Date.now().toString(36)}${Math.random().toString(36).slice(2, 6)}`;
24
+ modelQueryRegistry.set(key, trimmed);
25
+ if (modelQueryRegistry.size > MODEL_QUERY_REGISTRY_LIMIT) {
26
+ const oldest = modelQueryRegistry.keys().next().value;
27
+ if (oldest)
28
+ modelQueryRegistry.delete(oldest);
29
+ }
30
+ return key;
31
+ }
32
+ export function readDiscordModelQuery(key) {
33
+ if (!key || key === '-')
34
+ return '';
35
+ return modelQueryRegistry.get(key) ?? '';
36
+ }
16
37
  /**
17
38
  * Handle text-based commands from Discord messages.
18
39
  * Returns true if a command was handled, false if the message should be
@@ -78,6 +99,17 @@ export async function handleTextCommand(managed, msg, content, ctx) {
78
99
  await send(compactCommand(m));
79
100
  return true;
80
101
  }
102
+ if (content === '/capture' || content.startsWith('/capture ')) {
103
+ const arg = content.slice('/capture'.length).trim();
104
+ if (!arg) {
105
+ await send(captureShowCommand(m));
106
+ return true;
107
+ }
108
+ const [modeToken, ...rest] = arg.split(/\s+/);
109
+ const filePath = rest.join(' ').trim() || undefined;
110
+ await send(await captureSetCommand(m, modeToken.toLowerCase(), filePath));
111
+ return true;
112
+ }
81
113
  if (content === '/dir' || content.startsWith('/dir ')) {
82
114
  const arg = content.slice('/dir'.length).trim();
83
115
  if (!arg) {
@@ -174,6 +206,55 @@ export async function handleTextCommand(managed, msg, content, ctx) {
174
206
  await send(modeSetCommand(m, arg));
175
207
  return true;
176
208
  }
209
+ if (content === '/routing_mode' || content.startsWith('/routing_mode ')) {
210
+ const arg = content.slice('/routing_mode'.length).trim().toLowerCase();
211
+ if (!arg) {
212
+ await send(routingModeShowCommand(m));
213
+ return true;
214
+ }
215
+ if (arg === 'status') {
216
+ await send(routingModeStatusCommand(m));
217
+ return true;
218
+ }
219
+ await send(routingModeSetCommand(m, arg));
220
+ return true;
221
+ }
222
+ if (content === '/retry_fast') {
223
+ // Set routing mode to fast
224
+ await send(routingModeSetCommand(m, 'fast'));
225
+ // Re-run the last task
226
+ const lastInstruction = managed.session.lastAskInstructionText || '';
227
+ if (!lastInstruction.trim()) {
228
+ await send({ error: '❌ No previous task to retry.' });
229
+ return true;
230
+ }
231
+ // Add to queue for re-processing with new routing mode
232
+ const newMessage = {
233
+ ...msg,
234
+ content: lastInstruction,
235
+ };
236
+ managed.pendingQueue.push(newMessage);
237
+ await sendUserVisible(msg, '🔄 Added to queue with routing mode set to `fast`.');
238
+ return true;
239
+ }
240
+ if (content === '/retry_heavy') {
241
+ // Set routing mode to heavy
242
+ await send(routingModeSetCommand(m, 'heavy'));
243
+ // Re-run the last task
244
+ const lastInstruction = managed.session.lastAskInstructionText || '';
245
+ if (!lastInstruction.trim()) {
246
+ await send({ error: '❌ No previous task to retry.' });
247
+ return true;
248
+ }
249
+ // Add to queue for re-processing with new routing mode
250
+ const newMessage = {
251
+ ...msg,
252
+ content: lastInstruction,
253
+ };
254
+ managed.pendingQueue.push(newMessage);
255
+ await sendUserVisible(msg, '🔄 Added to queue with routing mode set to `heavy`.');
256
+ return true;
257
+ }
177
258
  if (content === '/subagents' || content.startsWith('/subagents ')) {
178
259
  const arg = content.slice('/subagents'.length).trim().toLowerCase();
179
260
  if (!arg) {
@@ -191,6 +272,26 @@ export async function handleTextCommand(managed, msg, content, ctx) {
191
272
  await send(await undoCommand(m));
192
273
  return true;
193
274
  }
275
+ if (content === '/rollback') {
276
+ await send(rollbackCommand(m));
277
+ return true;
278
+ }
279
+ if (content === '/checkpoints') {
280
+ await send(checkpointsCommand(m));
281
+ return true;
282
+ }
283
+ if (content === '/budget') {
284
+ await send(budgetCommand(m));
285
+ return true;
286
+ }
287
+ if (content === '/diff') {
288
+ await send(diffCommand(m));
289
+ return true;
290
+ }
291
+ if (content === '/cost') {
292
+ await send(costCommand(m));
293
+ return true;
294
+ }
194
295
  if (content === '/vault' || content.startsWith('/vault ')) {
195
296
  const query = content.slice('/vault'.length).trim();
196
297
  await send(await vaultCommand(m, query));
@@ -310,39 +411,72 @@ export async function handleTextCommand(managed, msg, content, ctx) {
310
411
  }
311
412
  return true;
312
413
  }
313
- if (content === '/models' || content === '/rtmodels') {
414
+ if (content === '/models' || content.startsWith('/models ')) {
314
415
  try {
315
416
  const { loadRuntimes } = await import('../runtime/store.js');
417
+ const { loadActiveRuntime } = await import('../runtime/executor.js');
418
+ const { ActionRowBuilder, ButtonBuilder, ButtonStyle } = await import('discord.js');
419
+ const query = content
420
+ .replace(/^\/models\s*/i, '')
421
+ .trim();
422
+ const queryKey = registerModelQuery(query);
316
423
  const rtConfig = await loadRuntimes();
317
424
  if (!rtConfig.models.length) {
318
425
  await sendUserVisible(msg, 'No runtime models configured.').catch(() => { });
319
426
  return true;
320
427
  }
321
- const enabledModels = rtConfig.models.filter((mod) => mod.enabled);
322
- if (!enabledModels.length) {
323
- await sendUserVisible(msg, 'No enabled runtime models. Use `idlehands models enable <id>` in CLI.').catch(() => { });
428
+ const filteredModels = filterRuntimeModels(rtConfig.models, query);
429
+ if (!filteredModels.length) {
430
+ const q = query ? ` matching "${truncateLabel(query, 48)}"` : '';
431
+ await sendUserVisible(msg, `No enabled runtime models${q}.`).catch(() => { });
324
432
  return true;
325
433
  }
326
- const { ActionRowBuilder, ButtonBuilder, ButtonStyle } = await import('discord.js');
434
+ const active = await loadActiveRuntime().catch(() => null);
435
+ const modelPage = buildRuntimeModelPickerPage(filteredModels, {
436
+ page: 0,
437
+ perPage: DISCORD_MODELS_PER_PAGE,
438
+ activeModelId: active?.modelId,
439
+ });
327
440
  const rows = [];
328
- let currentRow = new ActionRowBuilder();
329
- for (const mod of enabledModels) {
441
+ let row = new ActionRowBuilder();
442
+ for (const item of modelPage.items) {
330
443
  const btn = new ButtonBuilder()
331
- .setCustomId(`model_switch:${mod.id}`)
332
- .setLabel(mod.display_name.slice(0, 80))
333
- .setStyle(ButtonStyle.Primary);
334
- currentRow.addComponents(btn);
335
- if (currentRow.components.length >= 5) {
336
- rows.push(currentRow);
337
- currentRow = new ActionRowBuilder();
444
+ .setCustomId(`model_switch:${item.id}`)
445
+ .setLabel(item.isActive ? `★${item.ordinal}` : String(item.ordinal))
446
+ .setStyle(item.isActive ? ButtonStyle.Success : ButtonStyle.Primary);
447
+ row.addComponents(btn);
448
+ if (row.components.length >= 5) {
449
+ rows.push(row);
450
+ row = new ActionRowBuilder();
338
451
  }
339
452
  }
340
- if (currentRow.components.length > 0) {
341
- rows.push(currentRow);
453
+ if (row.components.length > 0)
454
+ rows.push(row);
455
+ if (modelPage.totalPages > 1) {
456
+ const navRow = new ActionRowBuilder().addComponents(new ButtonBuilder()
457
+ .setCustomId(modelPage.hasPrev ? `model_page:${modelPage.page - 1}:${queryKey}` : 'model_page_noop')
458
+ .setLabel('⬅ Prev')
459
+ .setStyle(ButtonStyle.Secondary)
460
+ .setDisabled(!modelPage.hasPrev), new ButtonBuilder()
461
+ .setCustomId(`model_page_status:${modelPage.page + 1}`)
462
+ .setLabel(`${modelPage.page + 1}/${modelPage.totalPages}`)
463
+ .setStyle(ButtonStyle.Secondary)
464
+ .setDisabled(true), new ButtonBuilder()
465
+ .setCustomId(modelPage.hasNext ? `model_page:${modelPage.page + 1}:${queryKey}` : 'model_page_noop')
466
+ .setLabel('Next ➜')
467
+ .setStyle(ButtonStyle.Secondary)
468
+ .setDisabled(!modelPage.hasNext));
469
+ rows.push(navRow);
342
470
  }
471
+ const contentText = formatRuntimeModelPickerText(modelPage, {
472
+ header: '📋 Select a model to switch to',
473
+ maxDisplayName: 68,
474
+ maxModelId: 72,
475
+ query,
476
+ });
343
477
  await msg.channel
344
478
  .send({
345
- content: '📋 **Select a model to switch to:**',
479
+ content: contentText,
346
480
  components: rows.slice(0, 5),
347
481
  })
348
482
  .catch(() => { });