camelagi 0.5.39 → 0.5.41

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 (104) hide show
  1. package/README.md +58 -17
  2. package/dashboard/_next/static/chunks/172-a2787ae03f0db2b4.js +12 -0
  3. package/dashboard/_next/static/chunks/239-49a9ac3789f8c41c.js +1 -0
  4. package/dashboard/_next/static/chunks/255-102f2e5b2e3dc2ef.js +1 -0
  5. package/dashboard/_next/static/chunks/413-89d8e4554f461999.js +1 -0
  6. package/dashboard/_next/static/chunks/4bd1b696-c023c6e3521b1417.js +1 -0
  7. package/dashboard/_next/static/chunks/619-ba102abea3e3d0e4.js +1 -0
  8. package/dashboard/_next/static/chunks/909-aed3aa549e59d0fb.js +1 -0
  9. package/dashboard/_next/static/chunks/app/_not-found/page-121b856ce9a0ddcd.js +1 -0
  10. package/dashboard/_next/static/chunks/app/dashboard/agents/page-aa6e6fb2a1df7d63.js +1 -0
  11. package/dashboard/_next/static/chunks/app/dashboard/chat/page-feeb17fdc08b91e5.js +1 -0
  12. package/dashboard/_next/static/chunks/app/dashboard/config/page-afad9f4da82a343e.js +1 -0
  13. package/dashboard/_next/static/chunks/app/dashboard/layout-853ce5dfe3461735.js +1 -0
  14. package/dashboard/_next/static/chunks/app/dashboard/monitor/page-1b3d112c49b3a383.js +1 -0
  15. package/dashboard/_next/static/chunks/app/dashboard/page-b15605f3b21f7467.js +1 -0
  16. package/dashboard/_next/static/chunks/app/dashboard/sessions/page-e11d3f3e6ad99067.js +1 -0
  17. package/dashboard/_next/static/chunks/app/docs/[slug]/page-baf0632d98082d10.js +1 -0
  18. package/dashboard/_next/static/chunks/app/docs/page-5933496f46ff00ec.js +1 -0
  19. package/dashboard/_next/static/chunks/app/download/page-da533b5f543dfd66.js +1 -0
  20. package/dashboard/_next/static/chunks/app/layout-1112267c08c875b5.js +1 -0
  21. package/dashboard/_next/static/chunks/app/page-d69c17b39431e2c5.js +1 -0
  22. package/dashboard/_next/static/chunks/framework-de98b93a850cfc71.js +1 -0
  23. package/dashboard/_next/static/chunks/main-8d9a106db393efcf.js +1 -0
  24. package/dashboard/_next/static/chunks/main-app-e38cb42677e65e59.js +1 -0
  25. package/dashboard/_next/static/chunks/pages/_app-7d307437aca18ad4.js +1 -0
  26. package/dashboard/_next/static/chunks/pages/_error-cb2a52f75f2162e2.js +1 -0
  27. package/dashboard/_next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  28. package/dashboard/_next/static/chunks/webpack-b2507a6fba7be451.js +1 -0
  29. package/dashboard/_next/static/css/c60b60dc84892a8b.css +5 -0
  30. package/dashboard/_next/static/css/d4ea3c83e49eb5e1.css +4 -0
  31. package/dashboard/_next/static/jjqY4ybx1hNTX-bnJfS2f/_buildManifest.js +1 -0
  32. package/dashboard/_next/static/jjqY4ybx1hNTX-bnJfS2f/_ssgManifest.js +1 -0
  33. package/dashboard/_next/static/media/4cf2300e9c8272f7-s.p.woff2 +0 -0
  34. package/dashboard/_next/static/media/4da3161b738b07dd-s.woff2 +0 -0
  35. package/dashboard/_next/static/media/8d697b304b401681-s.woff2 +0 -0
  36. package/dashboard/_next/static/media/af4bf8399d1aacdf-s.p.woff2 +0 -0
  37. package/dashboard/_next/static/media/ba015fad6dcf6784-s.woff2 +0 -0
  38. package/dashboard/_next/static/media/fb526027db1fc1ae-s.woff2 +0 -0
  39. package/dashboard/agents/index.html +1 -0
  40. package/dashboard/agents/index.txt +28 -0
  41. package/dashboard/chat/index.html +1 -0
  42. package/dashboard/chat/index.txt +28 -0
  43. package/dashboard/config/index.html +1 -0
  44. package/dashboard/config/index.txt +28 -0
  45. package/dashboard/index.html +1 -0
  46. package/dashboard/index.txt +28 -0
  47. package/dashboard/monitor/index.html +1 -0
  48. package/dashboard/monitor/index.txt +28 -0
  49. package/dashboard/sessions/index.html +1 -0
  50. package/dashboard/sessions/index.txt +28 -0
  51. package/dist/agent/agent-sdk.js +66 -56
  52. package/dist/agent/agent-sdk.js.map +1 -1
  53. package/dist/bootstrap.js +1 -1
  54. package/dist/bootstrap.js.map +1 -1
  55. package/dist/cli/cmd-config.js +1 -1
  56. package/dist/cli/cmd-config.js.map +1 -1
  57. package/dist/cli/cmd-pairing.js +1 -1
  58. package/dist/cli/cmd-pairing.js.map +1 -1
  59. package/dist/core/config.js +29 -48
  60. package/dist/core/config.js.map +1 -1
  61. package/dist/core/constants.js +2 -0
  62. package/dist/core/constants.js.map +1 -1
  63. package/dist/core/version.js +1 -1
  64. package/dist/extensions/bot-approval.js +63 -0
  65. package/dist/extensions/bot-approval.js.map +1 -0
  66. package/dist/extensions/pairing.js +138 -0
  67. package/dist/extensions/pairing.js.map +1 -0
  68. package/dist/gateway/csrf.js +1 -1
  69. package/dist/gateway/csrf.js.map +1 -1
  70. package/dist/gateway/routes.js +31 -92
  71. package/dist/gateway/routes.js.map +1 -1
  72. package/dist/gateway/ws-handler.js +191 -167
  73. package/dist/gateway/ws-handler.js.map +1 -1
  74. package/dist/gateway-entry.js +8 -2
  75. package/dist/gateway-entry.js.map +1 -1
  76. package/dist/model.js +5 -4
  77. package/dist/model.js.map +1 -1
  78. package/dist/serve.js +20 -3
  79. package/dist/serve.js.map +1 -1
  80. package/dist/setup.js +17 -2
  81. package/dist/setup.js.map +1 -1
  82. package/dist/telegram/admin-agents.js +498 -0
  83. package/dist/telegram/admin-agents.js.map +1 -0
  84. package/dist/telegram/admin-bot.js +13 -934
  85. package/dist/telegram/admin-bot.js.map +1 -1
  86. package/dist/telegram/admin-commands.js +403 -0
  87. package/dist/telegram/admin-commands.js.map +1 -0
  88. package/dist/telegram/agent-bot.js +45 -1338
  89. package/dist/telegram/agent-bot.js.map +1 -1
  90. package/dist/telegram/agent-claude-code.js +555 -0
  91. package/dist/telegram/agent-claude-code.js.map +1 -0
  92. package/dist/telegram/agent-commands.js +396 -0
  93. package/dist/telegram/agent-commands.js.map +1 -0
  94. package/dist/telegram/agent-context.js +136 -0
  95. package/dist/telegram/agent-context.js.map +1 -0
  96. package/dist/telegram/agent-messages.js +249 -0
  97. package/dist/telegram/agent-messages.js.map +1 -0
  98. package/dist/telegram/resolve.js +15 -28
  99. package/dist/telegram/resolve.js.map +1 -1
  100. package/dist/telegram/terminal.js +75 -2
  101. package/dist/telegram/terminal.js.map +1 -1
  102. package/dist/telegram/wizards.js +1 -1
  103. package/dist/telegram/wizards.js.map +1 -1
  104. package/package.json +2 -1
package/dist/setup.js CHANGED
@@ -4,7 +4,7 @@ import * as p from "@clack/prompts";
4
4
  import { loadConfig, saveConfig, ensureDirs, paths } from "./core/config.js";
5
5
  import { seedWorkspace, seedAgentWorkspace } from "./workspace.js";
6
6
  import { PROVIDER_PRESETS, fetchOpenRouterModels } from "./core/models.js";
7
- import { listPendingRequests, approveRequest } from "./telegram/pairing.js";
7
+ import { listPendingRequests, approveRequest } from "./extensions/pairing.js";
8
8
  function check(value) {
9
9
  if (p.isCancel(value)) {
10
10
  p.cancel("Setup cancelled.");
@@ -51,10 +51,12 @@ export async function runSetup() {
51
51
  options: [
52
52
  { value: "tui", label: "Terminal (TUI)", hint: "Just need an API key" },
53
53
  { value: "telegram", label: "Telegram", hint: "Admin bot + agents from Telegram" },
54
+ { value: "dashboard", label: "Dashboard (Web UI)", hint: "Browser-based control panel" },
54
55
  { value: "both", label: "Both", hint: "Terminal + Telegram" },
55
56
  ],
56
57
  }));
57
58
  const wantsTelegram = mode === "telegram" || mode === "both";
59
+ const wantsDashboard = mode === "dashboard";
58
60
  // ── 1. API Provider ─────────────────────────────────────────────
59
61
  if (!hasApiKey) {
60
62
  await runApiSetup();
@@ -81,7 +83,20 @@ export async function runSetup() {
81
83
  }
82
84
  lines.push(`Config ${paths.configFile}`);
83
85
  p.note(lines.join("\n"), "Setup complete");
84
- if (wantsTelegram) {
86
+ if (wantsDashboard) {
87
+ const port = config.serve?.port ?? 18305;
88
+ p.outro("Starting server + opening dashboard...");
89
+ const { startServer } = await import("./serve.js");
90
+ await startServer({ port, cron: true, boot: true });
91
+ const url = `http://127.0.0.1:${port}`;
92
+ const dashUrl = `${url}/dashboard`;
93
+ // Open local dashboard in browser
94
+ const { exec } = await import("node:child_process");
95
+ const openCmd = process.platform === "darwin" ? "open" : process.platform === "win32" ? "start" : "xdg-open";
96
+ exec(`${openCmd} ${dashUrl}`);
97
+ p.log.success(`Dashboard: ${dashUrl}`);
98
+ }
99
+ else if (wantsTelegram) {
85
100
  p.outro("Run \x1b[36mcamel serve\x1b[0m to start the server.");
86
101
  }
87
102
  else {
package/dist/setup.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,498 @@
1
+ // Admin bot: agent management — list, create, delete, edit, clone, soul
2
+ import { InlineKeyboard } from "grammy";
3
+ import fs from "node:fs";
4
+ import path from "node:path";
5
+ import { saveConfig } from "../core/config.js";
6
+ import { agentMemoryDir } from "../workspace.js";
7
+ import { getActiveBotIds, startBot, stopBot } from "../telegram.js";
8
+ import { startWizard } from "./wizard.js";
9
+ import { createNewAgentWizard, createCloneWizard } from "./wizards.js";
10
+ import { resolvePreset } from "../core/models.js";
11
+ import { approveRequest, denyRequest } from "../extensions/pairing.js";
12
+ import { notifyUserApproved, notifyUserOfDenial } from "./pairing-notify.js";
13
+ import { approveBotApproval, denyBotApproval } from "../extensions/bot-approval.js";
14
+ // ─── Helpers ────────────────────────────────────────────────────────
15
+ async function showSoul(chatId, targetId, edit, bot) {
16
+ const soulPath = path.join(agentMemoryDir(targetId), "SOUL.md");
17
+ if (edit) {
18
+ const editWizard = {
19
+ id: "soul-edit",
20
+ steps: [{
21
+ id: "content",
22
+ prompt: `Send the new SOUL.md content for "${targetId}".\nCurrent content will be replaced. /cancel to abort.`,
23
+ }],
24
+ onComplete: async (data) => {
25
+ const dir = agentMemoryDir(targetId);
26
+ fs.mkdirSync(dir, { recursive: true });
27
+ fs.writeFileSync(soulPath, data.content);
28
+ return `SOUL.md updated for "${targetId}".\n\n${data.content.slice(0, 200)}${data.content.length > 200 ? "..." : ""}`;
29
+ },
30
+ };
31
+ await startWizard(chatId, editWizard, bot);
32
+ return;
33
+ }
34
+ if (!fs.existsSync(soulPath)) {
35
+ await bot.api.sendMessage(chatId, `No SOUL.md for "${targetId}" yet.`);
36
+ return;
37
+ }
38
+ const content = fs.readFileSync(soulPath, "utf-8").trim();
39
+ const preview = content.length > 3800 ? content.slice(0, 3800) + "\n\n[truncated]" : content;
40
+ const kb = new InlineKeyboard().text("Edit", `picksoul:edit:${targetId}`);
41
+ await bot.api.sendMessage(chatId, `SOUL.md (${targetId}):\n\n${preview}`, { reply_markup: kb });
42
+ }
43
+ async function showAgentConfig(chatId, agentIdParam, config, bot) {
44
+ const agent = config.agents[agentIdParam];
45
+ if (!agent)
46
+ return;
47
+ const model = agent.model ?? config.model;
48
+ const thinking = agent.thinking ?? config.thinking;
49
+ const effort = agent.effort ?? config.effort;
50
+ const maxTurns = agent.maxTurns ?? config.maxTurns;
51
+ const mcpCount = agent.mcp ? Object.keys(agent.mcp.servers).length : 0;
52
+ const runningBots = getActiveBotIds();
53
+ const running = runningBots.includes(agentIdParam);
54
+ const statusIcon = running ? "🟢" : agent.telegram?.botToken ? "🔴" : "⚪";
55
+ const briefMode = agent.telegram?.briefMode ?? true;
56
+ const lines = [
57
+ `${statusIcon} ${agent.name} (${agentIdParam})\n`,
58
+ `Model: ${model}`, `Thinking: ${thinking}`, `Effort: ${effort}`,
59
+ `Max Turns: ${maxTurns}`, `Brief: ${briefMode ? "on" : "off"}`,
60
+ mcpCount > 0 ? `MCP: ${mcpCount} server${mcpCount > 1 ? "s" : ""}` : `MCP: none`,
61
+ ];
62
+ const kb = new InlineKeyboard()
63
+ .text("Model", `ae:model:${agentIdParam}`)
64
+ .text("Thinking", `ae:think:${agentIdParam}`)
65
+ .text("Effort", `ae:effort:${agentIdParam}`)
66
+ .row()
67
+ .text("Max Turns", `ae:turns:${agentIdParam}`)
68
+ .text(`Brief: ${briefMode ? "on" : "off"}`, `ae:brief:${agentIdParam}`)
69
+ .text("Clone", `ae:clone:${agentIdParam}`);
70
+ await bot.api.sendMessage(chatId, lines.join("\n"), { reply_markup: kb });
71
+ }
72
+ // ─── Registration ───────────────────────────────────────────────────
73
+ export function registerAdminAgents(b, agentId, getConfig, getSystemPrompt, activeBots) {
74
+ // ─── Agent list ─────────────────────────────────────────────────
75
+ b.command("agents", async (ctx) => {
76
+ const config = getConfig();
77
+ const entries = Object.entries(config.agents);
78
+ if (entries.length === 0) {
79
+ await ctx.reply("No agents configured.\n\nUse /newagent to create one.");
80
+ return;
81
+ }
82
+ const runningBots = getActiveBotIds();
83
+ const lines = ["Your agents:\n"];
84
+ const kb = new InlineKeyboard();
85
+ let hasButtons = false;
86
+ for (const [id, a] of entries) {
87
+ const running = runningBots.includes(id);
88
+ const botState = activeBots.get(id);
89
+ const username = botState?.botInfo?.username;
90
+ const statusIcon = running ? "🟢" : a.telegram?.botToken ? "🔴" : "⚪";
91
+ lines.push(`${statusIcon} ${a.name} (${id})`);
92
+ lines.push(` Model: ${a.model ?? config.model}`);
93
+ if (running && username)
94
+ lines.push(` @${username}`);
95
+ else if (a.telegram?.botToken && !running)
96
+ lines.push(` Telegram: stopped`);
97
+ else if (!a.telegram?.botToken && !a.admin)
98
+ lines.push(` No channel configured`);
99
+ lines.push("");
100
+ if (running && username && !a.admin) {
101
+ kb.url(`💬 ${a.name}`, `https://t.me/${username}`);
102
+ hasButtons = true;
103
+ }
104
+ }
105
+ lines.push("Use /agent <id> to view/edit config");
106
+ if (hasButtons)
107
+ kb.row();
108
+ kb.text("➕ New agent", "agents:newagent");
109
+ const stoppedAgents = entries.filter(([id, a]) => !runningBots.includes(id) && a.telegram?.botToken && !a.admin);
110
+ if (stoppedAgents.length > 0)
111
+ kb.text("🔄 Restart stopped", "agents:restart");
112
+ await ctx.reply(lines.join("\n"), { reply_markup: kb });
113
+ });
114
+ b.callbackQuery("agents:newagent", async (ctx) => {
115
+ await ctx.answerCallbackQuery();
116
+ const config = getConfig();
117
+ if (!config.apiKey) {
118
+ await ctx.reply("No API key configured. Run /setup first.");
119
+ return;
120
+ }
121
+ await startWizard(ctx.chat.id, createNewAgentWizard(getConfig, getSystemPrompt), b);
122
+ });
123
+ b.callbackQuery("agents:restart", async (ctx) => {
124
+ await ctx.answerCallbackQuery();
125
+ const config = getConfig();
126
+ const restarted = [];
127
+ for (const [id, a] of Object.entries(config.agents)) {
128
+ if (a.admin || !a.telegram?.botToken)
129
+ continue;
130
+ if (getActiveBotIds().includes(id))
131
+ continue;
132
+ try {
133
+ const sysPrompt = getSystemPrompt();
134
+ await startBot(id, a.telegram.botToken, getConfig, () => sysPrompt);
135
+ restarted.push(id);
136
+ }
137
+ catch { /* skip */ }
138
+ }
139
+ await ctx.reply(restarted.length > 0 ? `Restarted: ${restarted.join(", ")}` : "No stopped bots to restart.");
140
+ });
141
+ // ─── Delete agent ─────────────────────────────────────────────────
142
+ b.command("deleteagent", async (ctx) => {
143
+ const config = getConfig();
144
+ const deletable = Object.entries(config.agents).filter(([, a]) => !a.admin);
145
+ if (deletable.length === 0) {
146
+ await ctx.reply("No agents to delete.");
147
+ return;
148
+ }
149
+ const kb = new InlineKeyboard();
150
+ for (const [id, a] of deletable)
151
+ kb.text(`${a.name}`, `pickdelete:${id}`).row();
152
+ await ctx.reply("Which agent do you want to delete?", { reply_markup: kb });
153
+ });
154
+ b.callbackQuery(/^pickdelete:(.+)$/, async (ctx) => {
155
+ const id = ctx.callbackQuery.data.match(/^pickdelete:(.+)$/)?.[1];
156
+ if (!id)
157
+ return;
158
+ await ctx.answerCallbackQuery();
159
+ const config = getConfig();
160
+ if (!config.agents[id]) {
161
+ try {
162
+ await ctx.editMessageText("Agent not found.");
163
+ }
164
+ catch { }
165
+ return;
166
+ }
167
+ const kb = new InlineKeyboard()
168
+ .text("Yes, delete", `confirm:delete:${id}`)
169
+ .text("Cancel", `confirm:cancel:${id}`);
170
+ try {
171
+ await ctx.editMessageText(`Delete "${config.agents[id].name}" (${id})?\n\nBot will be stopped. Workspace files are preserved.`, { reply_markup: kb });
172
+ }
173
+ catch { }
174
+ });
175
+ b.callbackQuery(/^confirm:(.+):(.+)$/, async (ctx) => {
176
+ const match = ctx.callbackQuery.data.match(/^confirm:(.+):(.+)$/);
177
+ if (!match)
178
+ return;
179
+ const [, action, param] = match;
180
+ try {
181
+ await ctx.editMessageText(`${ctx.callbackQuery.message?.text ?? ""}\n\n-> ${action === "delete" ? "Deleting..." : "Cancelled"}`);
182
+ }
183
+ catch { }
184
+ await ctx.answerCallbackQuery();
185
+ if (action === "delete") {
186
+ const config = getConfig();
187
+ if (config.agents[param]) {
188
+ stopBot(param);
189
+ const agents = { ...config.agents };
190
+ delete agents[param];
191
+ saveConfig({ agents });
192
+ await ctx.reply(`Agent "${param}" deleted.\nWorkspace files preserved at ${agentMemoryDir(param)}`);
193
+ }
194
+ }
195
+ });
196
+ // ─── Soul ─────────────────────────────────────────────────────────
197
+ b.command("soul", async (ctx) => {
198
+ const args = (ctx.match ?? "").trim().split(/\s+/);
199
+ const targetId = args[0];
200
+ const action = args[1];
201
+ if (!targetId) {
202
+ const config = getConfig();
203
+ const entries = Object.entries(config.agents);
204
+ if (entries.length === 0) {
205
+ await ctx.reply("No agents. Use /newagent first.");
206
+ return;
207
+ }
208
+ const kb = new InlineKeyboard();
209
+ for (const [id, a] of entries)
210
+ kb.text(`${a.name}`, `picksoul:view:${id}`).row();
211
+ await ctx.reply("Which agent's SOUL.md?", { reply_markup: kb });
212
+ return;
213
+ }
214
+ const config = getConfig();
215
+ if (!config.agents[targetId]) {
216
+ await ctx.reply(`Agent "${targetId}" not found.`);
217
+ return;
218
+ }
219
+ await showSoul(ctx.chat.id, targetId, action === "edit", b);
220
+ });
221
+ b.callbackQuery(/^picksoul:(.+):(.+)$/, async (ctx) => {
222
+ const match = ctx.callbackQuery.data.match(/^picksoul:(.+):(.+)$/);
223
+ if (!match)
224
+ return;
225
+ const [, action, id] = match;
226
+ await ctx.answerCallbackQuery();
227
+ try {
228
+ await ctx.editMessageText(`-> ${id}`);
229
+ }
230
+ catch { }
231
+ await showSoul(ctx.chat.id, id, action === "edit", b);
232
+ });
233
+ // ─── Agent config editing ─────────────────────────────────────────
234
+ b.command("agent", async (ctx) => {
235
+ const targetId = (ctx.match ?? "").trim();
236
+ const config = getConfig();
237
+ if (!targetId) {
238
+ const entries = Object.entries(config.agents);
239
+ if (entries.length === 0) {
240
+ await ctx.reply("No agents. Use /newagent first.");
241
+ return;
242
+ }
243
+ const kb = new InlineKeyboard();
244
+ for (const [id, a] of entries)
245
+ kb.text(a.name, `ae:show:${id}`).row();
246
+ await ctx.reply("Which agent to view/edit?", { reply_markup: kb });
247
+ return;
248
+ }
249
+ if (!config.agents[targetId]) {
250
+ await ctx.reply(`Agent "${targetId}" not found.`);
251
+ return;
252
+ }
253
+ await showAgentConfig(ctx.chat.id, targetId, config, b);
254
+ });
255
+ b.callbackQuery(/^ae:show:(.+)$/, async (ctx) => {
256
+ const agentIdParam = ctx.callbackQuery.data.match(/^ae:show:(.+)$/)?.[1];
257
+ if (!agentIdParam)
258
+ return;
259
+ await ctx.answerCallbackQuery();
260
+ await showAgentConfig(ctx.chat.id, agentIdParam, getConfig(), b);
261
+ });
262
+ b.callbackQuery(/^ae:think:(.+)$/, async (ctx) => {
263
+ const agentIdParam = ctx.callbackQuery.data.match(/^ae:think:(.+)$/)?.[1];
264
+ if (!agentIdParam)
265
+ return;
266
+ await ctx.answerCallbackQuery();
267
+ const config = getConfig();
268
+ const current = config.agents[agentIdParam]?.thinking ?? config.thinking;
269
+ const levels = ["off", "low", "medium", "high"];
270
+ const kb = new InlineKeyboard();
271
+ for (const l of levels)
272
+ kb.text(l === current ? `✓ ${l}` : l, `as:${agentIdParam}:think:${l}`);
273
+ await ctx.reply(`Set thinking for ${agentIdParam}:`, { reply_markup: kb });
274
+ });
275
+ b.callbackQuery(/^ae:effort:(.+)$/, async (ctx) => {
276
+ const agentIdParam = ctx.callbackQuery.data.match(/^ae:effort:(.+)$/)?.[1];
277
+ if (!agentIdParam)
278
+ return;
279
+ await ctx.answerCallbackQuery();
280
+ const config = getConfig();
281
+ const current = config.agents[agentIdParam]?.effort ?? config.effort;
282
+ const levels = ["low", "medium", "high", "max"];
283
+ const kb = new InlineKeyboard();
284
+ for (const l of levels)
285
+ kb.text(l === current ? `✓ ${l}` : l, `as:${agentIdParam}:effort:${l}`);
286
+ await ctx.reply(`Set effort for ${agentIdParam}:`, { reply_markup: kb });
287
+ });
288
+ b.callbackQuery(/^ae:turns:(.+)$/, async (ctx) => {
289
+ const agentIdParam = ctx.callbackQuery.data.match(/^ae:turns:(.+)$/)?.[1];
290
+ if (!agentIdParam)
291
+ return;
292
+ await ctx.answerCallbackQuery();
293
+ const config = getConfig();
294
+ const current = config.agents[agentIdParam]?.maxTurns ?? config.maxTurns;
295
+ const options = [10, 25, 50, 100];
296
+ const kb = new InlineKeyboard();
297
+ for (const n of options)
298
+ kb.text(n === current ? `✓ ${n}` : String(n), `as:${agentIdParam}:turns:${n}`);
299
+ await ctx.reply(`Set max turns for ${agentIdParam}:`, { reply_markup: kb });
300
+ });
301
+ b.callbackQuery(/^ae:model:(.+)$/, async (ctx) => {
302
+ const agentIdParam = ctx.callbackQuery.data.match(/^ae:model:(.+)$/)?.[1];
303
+ if (!agentIdParam)
304
+ return;
305
+ await ctx.answerCallbackQuery();
306
+ const config = getConfig();
307
+ const current = config.agents[agentIdParam]?.model ?? config.model;
308
+ const preset = resolvePreset(config.provider, config.baseUrl);
309
+ const models = preset.models.slice(0, 6);
310
+ const kb = new InlineKeyboard();
311
+ for (const m of models) {
312
+ const slash = m.indexOf("/");
313
+ const label = slash > 0 ? m.slice(slash + 1) : m;
314
+ const check = m === current ? "✓ " : "";
315
+ kb.text(`${check}${label}`, `as:${agentIdParam}:model:${m}`).row();
316
+ }
317
+ kb.text("✏️ Type custom", `ae:modelcustom:${agentIdParam}`);
318
+ await ctx.reply(`Set model for ${agentIdParam}:`, { reply_markup: kb });
319
+ });
320
+ b.callbackQuery(/^ae:modelcustom:(.+)$/, async (ctx) => {
321
+ const agentIdParam = ctx.callbackQuery.data.match(/^ae:modelcustom:(.+)$/)?.[1];
322
+ if (!agentIdParam)
323
+ return;
324
+ await ctx.answerCallbackQuery();
325
+ await startWizard(ctx.chat.id, {
326
+ id: "agent-model-edit",
327
+ steps: [{ id: "model", prompt: `Type the model name for "${agentIdParam}":` }],
328
+ onComplete: async (data) => {
329
+ const cfg = getConfig();
330
+ const agents = { ...cfg.agents };
331
+ agents[agentIdParam] = { ...agents[agentIdParam], model: data.model };
332
+ saveConfig({ agents });
333
+ return `Model set to: ${data.model}`;
334
+ },
335
+ }, b);
336
+ });
337
+ b.callbackQuery(/^ae:brief:(.+)$/, async (ctx) => {
338
+ const agentIdParam = ctx.callbackQuery.data.match(/^ae:brief:(.+)$/)?.[1];
339
+ if (!agentIdParam)
340
+ return;
341
+ await ctx.answerCallbackQuery();
342
+ const config = getConfig();
343
+ const agent = config.agents[agentIdParam];
344
+ if (!agent?.telegram) {
345
+ await ctx.reply("Agent has no Telegram config.");
346
+ return;
347
+ }
348
+ const current = agent.telegram.briefMode ?? true;
349
+ const next = !current;
350
+ const agents = { ...config.agents };
351
+ agents[agentIdParam] = { ...agents[agentIdParam], telegram: { ...agents[agentIdParam].telegram, briefMode: next } };
352
+ saveConfig({ agents });
353
+ try {
354
+ await ctx.editMessageText(`Brief mode: ${next ? "on" : "off"} ✓`);
355
+ }
356
+ catch {
357
+ await ctx.reply(`Brief mode: ${next ? "on" : "off"} ✓`);
358
+ }
359
+ });
360
+ b.callbackQuery(/^ae:mcp:(.+)$/, async (ctx) => {
361
+ await ctx.answerCallbackQuery();
362
+ await ctx.reply("Use /mcp to manage MCP servers.");
363
+ });
364
+ b.callbackQuery(/^ae:clone:(.+)$/, async (ctx) => {
365
+ const agentIdParam = ctx.callbackQuery.data.match(/^ae:clone:(.+)$/)?.[1];
366
+ if (!agentIdParam)
367
+ return;
368
+ await ctx.answerCallbackQuery();
369
+ await startWizard(ctx.chat.id, createCloneWizard(agentIdParam, getConfig, getSystemPrompt), b);
370
+ });
371
+ // Generic agent setting apply (think, effort, turns, model)
372
+ b.callbackQuery(/^as:(.+?):(.+?):(.+)$/, async (ctx) => {
373
+ const match = ctx.callbackQuery.data.match(/^as:(.+?):(.+?):(.+)$/);
374
+ if (!match)
375
+ return;
376
+ const [, agentIdParam, field, value] = match;
377
+ await ctx.answerCallbackQuery();
378
+ const config = getConfig();
379
+ if (!config.agents[agentIdParam]) {
380
+ await ctx.reply("Agent not found.");
381
+ return;
382
+ }
383
+ const agents = { ...config.agents };
384
+ const agent = { ...agents[agentIdParam] };
385
+ const fieldLabels = { think: "Thinking", effort: "Effort", turns: "Max Turns", model: "Model" };
386
+ if (field === "think")
387
+ agent.thinking = value;
388
+ else if (field === "effort")
389
+ agent.effort = value;
390
+ else if (field === "turns")
391
+ agent.maxTurns = parseInt(value, 10);
392
+ else if (field === "model")
393
+ agent.model = value;
394
+ agents[agentIdParam] = agent;
395
+ saveConfig({ agents });
396
+ const label = fieldLabels[field] ?? field;
397
+ try {
398
+ await ctx.editMessageText(`${label} set to: ${value} ✓`);
399
+ }
400
+ catch {
401
+ await ctx.reply(`${label} set to: ${value} ✓`);
402
+ }
403
+ });
404
+ // ─── Pairing & bot approval callbacks ─────────────────────────────
405
+ b.callbackQuery(/^pairing:(approve|deny):(.+)$/, async (ctx) => {
406
+ const match = ctx.callbackQuery.data.match(/^pairing:(approve|deny):(.+)$/);
407
+ if (!match)
408
+ return;
409
+ const [, action, code] = match;
410
+ if (action === "approve") {
411
+ const request = approveRequest(code);
412
+ if (request) {
413
+ try {
414
+ await ctx.editMessageText(`${ctx.callbackQuery.message?.text ?? ""}\n\n-> Approved`);
415
+ }
416
+ catch { }
417
+ await notifyUserApproved(request, activeBots);
418
+ }
419
+ else {
420
+ try {
421
+ await ctx.editMessageText("Request expired or already handled.");
422
+ }
423
+ catch { }
424
+ }
425
+ }
426
+ else {
427
+ const request = denyRequest(code);
428
+ if (request) {
429
+ try {
430
+ await ctx.editMessageText(`${ctx.callbackQuery.message?.text ?? ""}\n\n-> Denied`);
431
+ }
432
+ catch { }
433
+ await notifyUserOfDenial(request, activeBots);
434
+ }
435
+ else {
436
+ try {
437
+ await ctx.editMessageText("Request expired or already handled.");
438
+ }
439
+ catch { }
440
+ }
441
+ }
442
+ await ctx.answerCallbackQuery();
443
+ });
444
+ b.callbackQuery(/^botapproval:(approve|deny):(.+)$/, async (ctx) => {
445
+ const match = ctx.callbackQuery.data.match(/^botapproval:(approve|deny):(.+)$/);
446
+ if (!match)
447
+ return;
448
+ const [, action, agentIdParam] = match;
449
+ if (action === "approve") {
450
+ const approval = approveBotApproval(agentIdParam);
451
+ if (approval) {
452
+ const botLabel = approval.botUsername ? `@${approval.botUsername}` : agentIdParam;
453
+ try {
454
+ const sysPrompt = getSystemPrompt();
455
+ await startBot(agentIdParam, approval.botToken, getConfig, () => sysPrompt);
456
+ }
457
+ catch (err) {
458
+ const errMsg = err instanceof Error ? err.message : String(err);
459
+ if (!errMsg.includes("already running") && !errMsg.includes("already starting")) {
460
+ try {
461
+ await ctx.editMessageText(`Failed to start bot: ${errMsg}`);
462
+ }
463
+ catch { }
464
+ await ctx.answerCallbackQuery();
465
+ return;
466
+ }
467
+ }
468
+ try {
469
+ await ctx.editMessageText(`${ctx.callbackQuery.message?.text ?? ""}\n\n-> Approved. ${botLabel} is now running.`);
470
+ }
471
+ catch { }
472
+ }
473
+ else {
474
+ try {
475
+ await ctx.editMessageText("Approval not found or already handled.");
476
+ }
477
+ catch { }
478
+ }
479
+ }
480
+ else {
481
+ const approval = denyBotApproval(agentIdParam);
482
+ if (approval) {
483
+ try {
484
+ await ctx.editMessageText(`${ctx.callbackQuery.message?.text ?? ""}\n\n-> Denied. Bot will not start.`);
485
+ }
486
+ catch { }
487
+ }
488
+ else {
489
+ try {
490
+ await ctx.editMessageText("Approval not found or already handled.");
491
+ }
492
+ catch { }
493
+ }
494
+ }
495
+ await ctx.answerCallbackQuery();
496
+ });
497
+ }
498
+ //# sourceMappingURL=admin-agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-agents.js","sourceRoot":"","sources":["../../src/telegram/admin-agents.ts"],"names":[],"mappings":"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"}