visionclaw 0.1.78 → 0.1.80

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 (62) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/agent/context.d.ts +1 -2
  3. package/dist/agent/context.d.ts.map +1 -1
  4. package/dist/agent/context.js +2 -2
  5. package/dist/agent/context.js.map +1 -1
  6. package/dist/agent/interrupt-handler.d.ts +5 -0
  7. package/dist/agent/interrupt-handler.d.ts.map +1 -1
  8. package/dist/agent/interrupt-handler.js +28 -1
  9. package/dist/agent/interrupt-handler.js.map +1 -1
  10. package/dist/agent/loop.d.ts +1 -0
  11. package/dist/agent/loop.d.ts.map +1 -1
  12. package/dist/agent/loop.js +7 -5
  13. package/dist/agent/loop.js.map +1 -1
  14. package/dist/agent/onboarding-gate.d.ts.map +1 -1
  15. package/dist/agent/onboarding-gate.js +0 -2
  16. package/dist/agent/onboarding-gate.js.map +1 -1
  17. package/dist/agent/session-manager.js +1 -1
  18. package/dist/agent/session-manager.js.map +1 -1
  19. package/dist/agent/system-prompt.js +2 -2
  20. package/dist/agent/system-prompt.js.map +1 -1
  21. package/dist/config/types.d.ts +1 -1
  22. package/dist/config/types.d.ts.map +1 -1
  23. package/dist/config/types.js +1 -1
  24. package/dist/config/types.js.map +1 -1
  25. package/dist/index.js +9 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/obs/server.js +1 -1
  28. package/dist/obs/server.js.map +1 -1
  29. package/dist/onboarding/bot-profile.d.ts +32 -0
  30. package/dist/onboarding/bot-profile.d.ts.map +1 -0
  31. package/dist/onboarding/bot-profile.js +105 -0
  32. package/dist/onboarding/bot-profile.js.map +1 -0
  33. package/dist/onboarding/index.d.ts.map +1 -1
  34. package/dist/onboarding/index.js +40 -0
  35. package/dist/onboarding/index.js.map +1 -1
  36. package/dist/onboarding/macos-permissions.d.ts +49 -4
  37. package/dist/onboarding/macos-permissions.d.ts.map +1 -1
  38. package/dist/onboarding/macos-permissions.js +156 -25
  39. package/dist/onboarding/macos-permissions.js.map +1 -1
  40. package/dist/onboarding/onboarding-session.d.ts.map +1 -1
  41. package/dist/onboarding/onboarding-session.js +4 -15
  42. package/dist/onboarding/onboarding-session.js.map +1 -1
  43. package/dist/onboarding/onboarding-tools.d.ts +0 -34
  44. package/dist/onboarding/onboarding-tools.d.ts.map +1 -1
  45. package/dist/onboarding/onboarding-tools.js +3 -138
  46. package/dist/onboarding/onboarding-tools.js.map +1 -1
  47. package/dist/onboarding/prepare-mac.d.ts.map +1 -1
  48. package/dist/onboarding/prepare-mac.js +95 -24
  49. package/dist/onboarding/prepare-mac.js.map +1 -1
  50. package/dist/onboarding/send-invite.js +1 -1
  51. package/dist/onboarding/send-invite.js.map +1 -1
  52. package/dist/onboarding/set-owner.d.ts.map +1 -1
  53. package/dist/onboarding/set-owner.js +0 -1
  54. package/dist/onboarding/set-owner.js.map +1 -1
  55. package/dist/onboarding/telegram-onboarding.d.ts +0 -1
  56. package/dist/onboarding/telegram-onboarding.d.ts.map +1 -1
  57. package/dist/onboarding/telegram-onboarding.js +1 -31
  58. package/dist/onboarding/telegram-onboarding.js.map +1 -1
  59. package/dist/reconfigure.d.ts.map +1 -1
  60. package/dist/reconfigure.js +7 -8
  61. package/dist/reconfigure.js.map +1 -1
  62. package/package.json +1 -1
@@ -1,6 +1,66 @@
1
- import { exec } from "node:child_process";
1
+ import { exec, execSync } from "node:child_process";
2
2
  import { promisify } from "node:util";
3
3
  const execAsync = promisify(exec);
4
+ // ─── Terminal Constants ─────────────────────────────────────────────────────
5
+ const TERMINAL_BUNDLE_ID = "com.apple.Terminal";
6
+ const TERMINAL_NAME = "Terminal";
7
+ // ─── TCC Permission Management ──────────────────────────────────────────────
8
+ const TCC_SERVICES = {
9
+ screenRecording: "kTCCServiceScreenCapture",
10
+ accessibility: "kTCCServiceAccessibility",
11
+ appleEvents: "kTCCServiceAppleEvents",
12
+ };
13
+ /**
14
+ * Attempt to grant a TCC permission to Apple Terminal via the user TCC.db.
15
+ *
16
+ * On macOS Sonoma+ the user-level TCC.db can be modified with sqlite3 when
17
+ * SIP's TCC protection allows it (common on manufacturer-provisioned Macs or
18
+ * when using MDM). Falls back to opening System Settings if direct write fails.
19
+ *
20
+ * Returns true if the permission was successfully inserted/verified.
21
+ */
22
+ export async function grantTCCPermission(service) {
23
+ if (process.platform !== "darwin")
24
+ return true;
25
+ const tccService = TCC_SERVICES[service];
26
+ const dbPath = `${process.env.HOME}/Library/Application Support/com.apple.TCC/TCC.db`;
27
+ try {
28
+ const { stdout: existing } = await execAsync(`sqlite3 "${dbPath}" "SELECT allowed FROM access WHERE service='${tccService}' AND client='${TERMINAL_BUNDLE_ID}';" 2>/dev/null`);
29
+ if (existing.trim() === "1")
30
+ return true;
31
+ await execAsync(`sqlite3 "${dbPath}" "INSERT OR REPLACE INTO access (service, client, client_type, auth_value, auth_reason, auth_version, flags) VALUES ('${tccService}', '${TERMINAL_BUNDLE_ID}', 0, 2, 3, 1, 0);" 2>/dev/null`);
32
+ const { stdout: verify } = await execAsync(`sqlite3 "${dbPath}" "SELECT auth_value FROM access WHERE service='${tccService}' AND client='${TERMINAL_BUNDLE_ID}';" 2>/dev/null`);
33
+ return verify.trim() === "2";
34
+ }
35
+ catch {
36
+ return false;
37
+ }
38
+ }
39
+ /**
40
+ * Open the System Settings panel for a given TCC permission category.
41
+ */
42
+ export function openSystemSettingsForPermission(permission) {
43
+ const urls = {
44
+ screenRecording: "x-apple.systempreferences:com.apple.preference.security?Privacy_ScreenCapture",
45
+ accessibility: "x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility",
46
+ appleEvents: "x-apple.systempreferences:com.apple.preference.security?Privacy_Automation",
47
+ };
48
+ try {
49
+ execSync(`open "${urls[permission]}"`, { stdio: "ignore" });
50
+ }
51
+ catch { /* non-fatal */ }
52
+ }
53
+ /**
54
+ * Attempt to grant all required TCC permissions for Apple Terminal.
55
+ * Tries direct TCC.db writes; returns which permissions were successfully granted.
56
+ */
57
+ export async function grantAllTerminalPermissions() {
58
+ return {
59
+ screenRecording: await grantTCCPermission("screenRecording"),
60
+ accessibility: await grantTCCPermission("accessibility"),
61
+ appleEvents: await grantTCCPermission("appleEvents"),
62
+ };
63
+ }
4
64
  /**
5
65
  * Check if Screen Recording permission is granted on macOS.
6
66
  *
@@ -169,38 +229,86 @@ export async function checkChromeInstalled() {
169
229
  /**
170
230
  * Check if Accessibility permission is granted on macOS.
171
231
  *
172
- * Uses AppleScript to test if we can check accessibility status.
173
- * Also tries the `tccutil` approach as a fallback.
232
+ * Uses AppleScript to test if we can query System Events.
174
233
  */
175
234
  export async function checkAccessibilityPermission() {
176
235
  if (process.platform !== "darwin")
177
236
  return true;
178
237
  try {
179
- // Use the system's accessibility check via osascript
180
238
  const { stdout } = await execAsync(`osascript -e 'tell application "System Events" to return name of first process'`);
181
- // If this returns a process name, we have accessibility access
182
239
  return stdout.trim().length > 0;
183
240
  }
184
241
  catch {
185
- // "System Events got an error: osascript is not allowed assistive access"
186
242
  return false;
187
243
  }
188
244
  }
189
245
  /**
190
- * Print instructions for granting a macOS permission.
246
+ * Check if Automation (AppleScript) permission is granted on macOS.
247
+ *
248
+ * Tests whether osascript can send Apple Events to Finder, which requires
249
+ * the terminal app to have Automation permission.
191
250
  */
192
- export function printPermissionInstructions(permission) {
193
- if (permission === "screen-recording") {
194
- console.log("\n To grant Screen Recording permission:");
195
- console.log(" 1. Open System Settings > Privacy & Security > Screen Recording");
196
- console.log(" 2. Click '+' and add your terminal app (Terminal, iTerm2, etc.)");
197
- console.log(" 3. Restart your terminal after granting permission");
251
+ export async function checkAutomationPermission() {
252
+ if (process.platform !== "darwin")
253
+ return true;
254
+ try {
255
+ const { stdout } = await execAsync(`osascript -e 'tell application "Finder" to return name of startup disk' 2>&1`);
256
+ return stdout.trim().length > 0 && !stdout.includes("not allowed");
198
257
  }
199
- else {
200
- console.log("\n To grant Accessibility permission:");
201
- console.log(" 1. Open System Settings > Privacy & Security > Accessibility");
202
- console.log(" 2. Click '+' and add your terminal app (Terminal, iTerm2, etc.)");
203
- console.log(" 3. Restart your terminal after granting permission");
258
+ catch {
259
+ return false;
260
+ }
261
+ }
262
+ /**
263
+ * Check if Files & Folders / Full Disk Access is sufficient.
264
+ *
265
+ * Tests whether we can read a protected location (~/Desktop).
266
+ * This is a heuristic — Full Disk Access is a superset but we only need
267
+ * enough access to read user directories and ~/screenshots.
268
+ */
269
+ export async function checkFileAccessPermission() {
270
+ if (process.platform !== "darwin")
271
+ return true;
272
+ try {
273
+ await execAsync(`ls "${process.env.HOME}/Desktop" >/dev/null 2>&1`);
274
+ return true;
275
+ }
276
+ catch {
277
+ return false;
278
+ }
279
+ }
280
+ /**
281
+ * Print instructions for granting a macOS permission to Apple Terminal.
282
+ */
283
+ export function printPermissionInstructions(permission) {
284
+ const instructions = {
285
+ "screen-recording": [
286
+ `\n To grant Screen Recording permission:`,
287
+ ` 1. Open System Settings > Privacy & Security > Screen Recording`,
288
+ ` 2. Click '+' and add Terminal`,
289
+ ` 3. Restart Terminal after granting permission`,
290
+ ],
291
+ "accessibility": [
292
+ `\n To grant Accessibility permission:`,
293
+ ` 1. Open System Settings > Privacy & Security > Accessibility`,
294
+ ` 2. Click '+' and add Terminal`,
295
+ ` 3. Restart Terminal after granting permission`,
296
+ ],
297
+ "automation": [
298
+ `\n To grant Automation permission:`,
299
+ ` 1. Open System Settings > Privacy & Security > Automation`,
300
+ ` 2. Enable access for Terminal to control other apps`,
301
+ ` 3. Restart Terminal after granting permission`,
302
+ ],
303
+ "file-access": [
304
+ `\n To grant Files & Folders / Full Disk Access:`,
305
+ ` 1. Open System Settings > Privacy & Security > Full Disk Access`,
306
+ ` 2. Click '+' and add Terminal`,
307
+ ` 3. Restart Terminal after granting permission`,
308
+ ],
309
+ };
310
+ for (const line of instructions[permission]) {
311
+ console.log(line);
204
312
  }
205
313
  }
206
314
  /**
@@ -212,6 +320,7 @@ export async function checkMacOSPermissions() {
212
320
  return true;
213
321
  }
214
322
  console.log("--- macOS Permissions Check ---\n");
323
+ console.log(` Terminal: ${TERMINAL_NAME} (${TERMINAL_BUNDLE_ID})\n`);
215
324
  let allGranted = true;
216
325
  // Screen Recording
217
326
  process.stdout.write(" Screen Recording: ");
@@ -235,8 +344,30 @@ export async function checkMacOSPermissions() {
235
344
  printPermissionInstructions("accessibility");
236
345
  allGranted = false;
237
346
  }
347
+ // Automation (AppleScript)
348
+ process.stdout.write(" Automation: ");
349
+ const automationOk = await checkAutomationPermission();
350
+ if (automationOk) {
351
+ console.log("Granted");
352
+ }
353
+ else {
354
+ console.log("NOT GRANTED");
355
+ printPermissionInstructions("automation");
356
+ allGranted = false;
357
+ }
358
+ // Files & Folders
359
+ process.stdout.write(" File Access: ");
360
+ const fileOk = await checkFileAccessPermission();
361
+ if (fileOk) {
362
+ console.log("Granted");
363
+ }
364
+ else {
365
+ console.log("NOT GRANTED");
366
+ printPermissionInstructions("file-access");
367
+ allGranted = false;
368
+ }
238
369
  // cliclick (for computer_use tools)
239
- process.stdout.write(" cliclick: ");
370
+ process.stdout.write(" cliclick: ");
240
371
  const cliclickOk = await checkCliclickInstalled();
241
372
  if (cliclickOk) {
242
373
  console.log("Installed");
@@ -247,7 +378,7 @@ export async function checkMacOSPermissions() {
247
378
  allGranted = false;
248
379
  }
249
380
  // ffmpeg (for screenshot compression and audio transcription)
250
- process.stdout.write(" ffmpeg: ");
381
+ process.stdout.write(" ffmpeg: ");
251
382
  const ffmpegOk = await checkFfmpegInstalled();
252
383
  if (ffmpegOk) {
253
384
  console.log("Installed");
@@ -258,7 +389,7 @@ export async function checkMacOSPermissions() {
258
389
  allGranted = false;
259
390
  }
260
391
  // Chrome / Chromium (for Playwright browser tools)
261
- process.stdout.write(" Chrome: ");
392
+ process.stdout.write(" Chrome: ");
262
393
  const chromeOk = await checkChromeInstalled();
263
394
  if (chromeOk) {
264
395
  console.log("Found");
@@ -269,7 +400,7 @@ export async function checkMacOSPermissions() {
269
400
  allGranted = false;
270
401
  }
271
402
  // GitHub CLI (for code operations)
272
- process.stdout.write(" gh (GitHub CLI): ");
403
+ process.stdout.write(" gh (GitHub CLI): ");
273
404
  const ghOk = await checkGhInstalled();
274
405
  if (ghOk) {
275
406
  const ghAuth = await checkGhAuthenticated();
@@ -289,7 +420,7 @@ export async function checkMacOSPermissions() {
289
420
  allGranted = false;
290
421
  }
291
422
  // whisper-cpp (for audio transcription)
292
- process.stdout.write(" whisper-cli: ");
423
+ process.stdout.write(" whisper-cli: ");
293
424
  const whisperOk = await checkWhisperCppInstalled();
294
425
  if (whisperOk) {
295
426
  console.log("Installed");
@@ -300,7 +431,7 @@ export async function checkMacOSPermissions() {
300
431
  allGranted = false;
301
432
  }
302
433
  // whisper model (large-v3-turbo for transcription)
303
- process.stdout.write(" Whisper model: ");
434
+ process.stdout.write(" Whisper model: ");
304
435
  const modelOk = await checkWhisperModelExists();
305
436
  if (modelOk) {
306
437
  console.log("Found");
@@ -312,7 +443,7 @@ export async function checkMacOSPermissions() {
312
443
  allGranted = false;
313
444
  }
314
445
  // pm2 (process manager for production)
315
- process.stdout.write(" pm2: ");
446
+ process.stdout.write(" pm2: ");
316
447
  const pm2Ok = await checkPm2Installed();
317
448
  if (pm2Ok) {
318
449
  console.log("Installed");
@@ -1 +1 @@
1
- {"version":3,"file":"macos-permissions.js","sourceRoot":"","sources":["../../src/onboarding/macos-permissions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"macos-permissions.js","sourceRoot":"","sources":["../../src/onboarding/macos-permissions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"onboarding-session.d.ts","sourceRoot":"","sources":["../../src/onboarding/onboarding-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,gCAAgC,CAAC;AAUxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AA0D3D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;GAMG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,WAAW,CAA6B;gBAG9C,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;IAQ7C;;;;OAIG;IACG,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAC/D,OAAO,CAAC,eAAe,CAAC;YAoCb,YAAY;IA4E1B,OAAO,CAAC,cAAc;IAoCtB,OAAO,CAAC,gBAAgB;IAQxB,YAAY,IAAI,MAAM,GAAG,IAAI;IAI7B,sBAAsB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;CAG7C"}
1
+ {"version":3,"file":"onboarding-session.d.ts","sourceRoot":"","sources":["../../src/onboarding/onboarding-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,gCAAgC,CAAC;AAUxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AA4C3D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;GAMG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,WAAW,CAA6B;gBAG9C,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;IAQ7C;;;;OAIG;IACG,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAC/D,OAAO,CAAC,eAAe,CAAC;YAoCb,YAAY;IA4E1B,OAAO,CAAC,cAAc;IAoCtB,OAAO,CAAC,gBAAgB;IAQxB,YAAY,IAAI,MAAM,GAAG,IAAI;IAI7B,sBAAsB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;CAG7C"}
@@ -4,12 +4,10 @@ import path from "path";
4
4
  import { loadOnboardingSessionId, saveOnboardingSessionId, getConfigDir, } from "../config/index.js";
5
5
  import { buildAgentEnv, getModelId } from "../agent/client-factory.js";
6
6
  import { logger } from "../logger.js";
7
- import { AVATAR_OPTIONS } from "./onboarding-tools.js";
8
7
  const ONBOARDING_QUERY_TIMEOUT_MS = 2 * 60 * 1000;
9
8
  const MAX_QUERY_RETRIES = 2;
10
9
  const RETRY_BASE_DELAY_MS = 3_000;
11
10
  function buildOnboardingSystemPrompt(ownerEmail) {
12
- const avatarList = AVATAR_OPTIONS.map((opt, i) => ` ${i + 1}. ${opt.label}`).join("\n");
13
11
  return `# Identity
14
12
 
15
13
  You are a setup assistant for a personal desktop agent. You are helping a new owner complete the initial configuration via Telegram.
@@ -19,14 +17,8 @@ You are a setup assistant for a personal desktop agent. You are helping a new ow
19
17
  Collect the following information through natural conversation:
20
18
 
21
19
  1. **Owner's name** — Ask what they'd like to be called. Make sure it's a real name (not gibberish, not a question, not a greeting). If the response doesn't look like a name, politely ask again.
22
- 2. **Agent name** — What they want to name their assistant. Default is "VisionClaw" if they don't have a preference. This should be a proper name, not a sentence.
23
- 3. **Wakeup interval** — How often the agent should check in (in minutes). Default is 3 minutes. Range: 1 to 1440. If the user doesn't care, use the default.
24
- 4. **Coding tasks** — Ask if they plan to use the agent for complex, multi-step coding tasks (refactoring, debugging, feature implementation). If yes, dual-session mode will be enabled so the agent automatically switches to a focused coding session when needed, keeping the coding context separate from general conversations. Default is yes/enabled.
25
- 5. **Profile photo** — The user can choose a profile photo for the bot. Call \`send_avatar_options\` to show them the available options. They can pick a number or upload their own photo. This step is optional — the user can skip it.
26
-
27
- ## Available Avatar Options
28
-
29
- ${avatarList}
20
+ 2. **Wakeup interval** — How often the agent should check in (in minutes). Default is 3 minutes. Range: 1 to 1440. If the user doesn't care, use the default.
21
+ 3. **Coding tasks** — Ask if they plan to use the agent for complex, multi-step coding tasks (refactoring, debugging, feature implementation). If yes, dual-session mode will be enabled so the agent automatically switches to a focused coding session when needed, keeping the coding context separate from general conversations. Default is yes/enabled.
30
22
 
31
23
  ## Owner Information Already Known
32
24
 
@@ -42,14 +34,11 @@ ${avatarList}
42
34
 
43
35
  ## Tool Usage
44
36
 
45
- - IMPORTANT: Before calling \`send_avatar_options\`, first send a text message introducing the profile photo step (e.g. "Now let's pick a profile photo for me! Here are some options:"). Never call the tool without introducing it first — otherwise the user will receive photos with no context and be confused.
46
- - Call \`send_avatar_options\` to send the bundled avatar images to the user.
47
- - Do NOT try to set the profile photo directly — just remember the user's choice (option number or uploaded file URL) and pass it in the \`profilePhotoSource\` parameter of \`complete_onboarding\`. The photo will be applied automatically.
48
- - Call \`complete_onboarding\` when all information is confirmed. Include the \`profilePhotoSource\` if the user chose one.
37
+ - Call \`complete_onboarding\` when all information is confirmed.
49
38
 
50
39
  ## Conversation Flow
51
40
 
52
- Start by greeting the user and asking for their name. Then proceed through agent name, wakeup interval, and profile photo in a natural conversational order. You don't have to follow a rigid sequence — adapt to the user's responses.
41
+ Start by greeting the user and asking for their name. Then proceed through wakeup interval and coding tasks in a natural conversational order. You don't have to follow a rigid sequence — adapt to the user's responses.
53
42
  After onboarding is complete, notify the user that the onboarding is complete, the agent will be restarted and will be available in a few seconds.
54
43
 
55
44
  You should politely reject any request that is not related to the onboarding process.
@@ -1 +1 @@
1
- {"version":3,"file":"onboarding-session.js","sourceRoot":"","sources":["../../src/onboarding/onboarding-session.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAGN,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,2BAA2B,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAClD,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAElC,SAAS,2BAA2B,CAAC,UAAkB;IACrD,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CACnC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,KAAK,EAAE,CACvC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,OAAO;;;;;;;;;;;;;;;;EAgBP,UAAU;;;;eAIG,UAAU;;;;;;;;;;;;;;;;;;;;;;;CAuBxB,CAAC;AACF,CAAC;AAOD;;;;;;GAMG;AACH,MAAM,OAAO,iBAAiB;IACpB,MAAM,CAAmB;IACzB,UAAU,CAAS;IACnB,SAAS,CAAgB;IACzB,UAAU,CAAkC;IAC5C,WAAW,GAAwB,IAAI,CAAC;IAEhD,YACE,MAAwB,EACxB,UAAkB,EAClB,UAA2C;QAE3C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,uBAAuB,EAAE,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe,CACnB,WAAmB,EACnB,OAAgE;QAEhE,IAAI,SAA6B,CAAC;QAElC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,iBAAiB,EAAE,OAAO,EAAE,EAAE,CAAC;YAC9D,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChB,MAAM,KAAK,GAAG,mBAAmB,GAAG,OAAO,CAAC;gBAC5C,MAAM,CAAC,KAAK,CAAC,2BAA2B,OAAO,IAAI,iBAAiB,UAAU,KAAK,IAAI,CAAC,CAAC;gBACzF,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,OAAO,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;gBAC5C,CAAC;gBACD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;YACjD,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAEpD,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACpC,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;gBACzB,MAAM,CAAC,IAAI,CACT,4BAA4B,OAAO,GAAG,CAAC,YAAY,MAAM,CAAC,KAAK,EAAE,CAClE,CAAC;gBACF,SAAS;YACX,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QAC5D,CAAC;QAED,MAAM,CAAC,IAAI,CACT,iCAAiC,iBAAiB,GAAG,CAAC,cAAc,SAAS,IAAI,SAAS,EAAE,CAC7F,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACxC,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,WAAmB;QAEnB,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAC7B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC,EAChE,QAAQ,CACT,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC;QAEtC,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,UAAU,CACxB,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,EAC7B,2BAA2B,CAC5B,CAAC;QAEF,MAAM,OAAO,GAAG;YACd,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;YAC9B,0BAA0B,EAAE,UAAU;YACtC,YAAY,EAAE,2BAA2B,CAAC,IAAI,CAAC,UAAU,CAAC;YAC1D,cAAc,EAAE,mBAA4B;YAC5C,+BAA+B,EAAE,IAAI;YACrC,GAAG,EAAE,YAAY,EAAE;YACnB,cAAc,EAAE,CAAC,SAAkB,CAAC;YACpC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,eAAe;YACf,GAAG,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;YAC/B,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtD,CAAC;QAEF,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,CAAC,KAAK,CAAC,gCAAgC,cAAc,EAAE,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QAEnC,IAAI,CAAC;YACH,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;gBAChE,IAAI,YAAY,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;oBAC1C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACxC,CAAC;gBAED,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,UAAU,EAAE,EAAE;oBACjD,IAAI,UAAU;wBAAE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;gBACzC,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAEvC,IAAI,IAAI,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC5B,MAAM,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;gBACxE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;YAC9C,CAAC;YAED,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnC,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC5C,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACjG,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;QAED,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAEvC,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACxC,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IAC9C,CAAC;IAEO,cAAc,CACpB,GAAe,EACf,SAAmB,EACnB,cAA2C;QAE3C,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;oBACxC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;wBACxC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC7B,CAAC;oBACD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;wBACtE,cAAc,CAAC,IAAI,CAAC,CAAC;oBACvB,CAAC;oBACD,IACE,KAAK,CAAC,IAAI,KAAK,UAAU;wBACzB,KAAK,CAAC,IAAI,KAAK,sCAAsC,EACrD,CAAC;wBACD,cAAc,CAAC,IAAI,CAAC,CAAC;oBACvB,CAAC;gBACH,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,IAAI,GAAG,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC3C,MAAM,CAAC,KAAK,CACV,2BAA2B,GAAG,CAAC,SAAS,UAAU,IAAI,GAAG;oBACzD,MAAM,GAAG,CAAC,KAAK,CAAC,YAAY,QAAQ,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,CAC9D,CAAC;gBACF,MAAM;YACR,CAAC;YACD;gBACE,MAAM;QACV,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,EAAU;QACjC,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;YACpB,uBAAuB,CAAC,EAAE,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,sBAAsB,CAAC,EAAc;QACnC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;CACF"}
1
+ {"version":3,"file":"onboarding-session.js","sourceRoot":"","sources":["../../src/onboarding/onboarding-session.ts"],"names":[],"mappings":"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"}
@@ -1,43 +1,9 @@
1
- export declare const AVATAR_OPTIONS: readonly [{
2
- readonly name: "visionclaw";
3
- readonly label: "VisionClaw";
4
- readonly file: "visionclaw.jpg";
5
- }, {
6
- readonly name: "robot";
7
- readonly label: "Friendly Robot";
8
- readonly file: "robot.jpg";
9
- }, {
10
- readonly name: "owl";
11
- readonly label: "Wise Owl";
12
- readonly file: "owl.jpg";
13
- }, {
14
- readonly name: "orb";
15
- readonly label: "Crystal Orb";
16
- readonly file: "orb.jpg";
17
- }, {
18
- readonly name: "fox";
19
- readonly label: "Clever Fox";
20
- readonly file: "fox.jpg";
21
- }, {
22
- readonly name: "cat";
23
- readonly label: "Curious Cat";
24
- readonly file: "cat.jpg";
25
- }, {
26
- readonly name: "abstract";
27
- readonly label: "Abstract Geometry";
28
- readonly file: "abstract.jpg";
29
- }];
30
1
  export interface OnboardingResult {
31
2
  ownerName: string;
32
- agentName: string;
33
3
  wakeupIntervalMinutes: number;
34
4
  dualSessionEnabled?: boolean;
35
- profilePhotoSource?: string;
36
5
  }
37
6
  interface OnboardingToolDeps {
38
- botToken: string;
39
- chatId: number;
40
- sendPhoto: (chatId: number, photoPath: string, caption: string) => Promise<void>;
41
7
  onComplete: (result: OnboardingResult) => void;
42
8
  }
43
9
  export declare function createOnboardingToolServer(deps: OnboardingToolDeps): import("@anthropic-ai/claude-agent-sdk").McpSdkServerConfigWithInstance;
@@ -1 +1 @@
1
- {"version":3,"file":"onboarding-tools.d.ts","sourceRoot":"","sources":["../../src/onboarding/onboarding-tools.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQjB,CAAC;AAEX,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjF,UAAU,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAChD;AA2LD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,kBAAkB,2EASlE"}
1
+ {"version":3,"file":"onboarding-tools.d.ts","sourceRoot":"","sources":["../../src/onboarding/onboarding-tools.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,UAAU,kBAAkB;IAC1B,UAAU,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAChD;AA8CD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,kBAAkB,2EAQlE"}
@@ -1,145 +1,19 @@
1
- import fs from "node:fs";
2
- import path from "node:path";
3
- import { fileURLToPath } from "node:url";
4
1
  import { z } from "zod";
5
2
  import { tool, createSdkMcpServer } from "@anthropic-ai/claude-agent-sdk";
6
3
  import { DEFAULT_HEARTBEAT_INTERVAL_MS } from "../config/types.js";
7
- import { logger } from "../logger.js";
8
- const __dirname = path.dirname(fileURLToPath(import.meta.url));
9
- const AVATARS_DIR = path.resolve(__dirname, "../../assets/avatars");
10
- export const AVATAR_OPTIONS = [
11
- { name: "visionclaw", label: "VisionClaw", file: "visionclaw.jpg" },
12
- { name: "robot", label: "Friendly Robot", file: "robot.jpg" },
13
- { name: "owl", label: "Wise Owl", file: "owl.jpg" },
14
- { name: "orb", label: "Crystal Orb", file: "orb.jpg" },
15
- { name: "fox", label: "Clever Fox", file: "fox.jpg" },
16
- { name: "cat", label: "Curious Cat", file: "cat.jpg" },
17
- { name: "abstract", label: "Abstract Geometry", file: "abstract.jpg" },
18
- ];
19
- // eslint-disable-next-line @typescript-eslint/explicit-function-return-type
20
- function createSendAvatarOptionsTool(deps) {
21
- return tool("send_avatar_options", "Send the available avatar/profile photo options to the user as Telegram photos. " +
22
- "IMPORTANT: You MUST first send a text message introducing the profile photo selection step " +
23
- "before calling this tool. The user needs context before receiving the images.", {}, async () => {
24
- const results = [];
25
- for (let i = 0; i < AVATAR_OPTIONS.length; i++) {
26
- const opt = AVATAR_OPTIONS[i];
27
- const filePath = path.join(AVATARS_DIR, opt.file);
28
- if (!fs.existsSync(filePath)) {
29
- results.push(`Option ${i + 1} (${opt.label}): file not found`);
30
- continue;
31
- }
32
- try {
33
- await deps.sendPhoto(deps.chatId, filePath, `Option ${i + 1}: ${opt.label}`);
34
- results.push(`Option ${i + 1}: ${opt.label} ✓`);
35
- }
36
- catch (err) {
37
- results.push(`Option ${i + 1} (${opt.label}): failed to send - ${err instanceof Error ? err.message : String(err)}`);
38
- }
39
- }
40
- return {
41
- content: [{
42
- type: "text",
43
- text: `Sent ${AVATAR_OPTIONS.length} avatar options to the user:\n${results.join("\n")}\n\n` +
44
- "The user can reply with an option number (1-7) or send their own photo. " +
45
- "They can also skip by saying they don't want to set a profile photo.",
46
- }],
47
- };
48
- });
49
- }
50
- async function callSetProfilePhoto(botToken, photoBuffer, maxRetries = 2) {
51
- for (let attempt = 0; attempt <= maxRetries; attempt++) {
52
- const file = new File([photoBuffer], "photo.jpg", { type: "image/jpeg" });
53
- const form = new FormData();
54
- form.append("photo", JSON.stringify({ type: "static", photo: "attach://photo_file" }));
55
- form.append("photo_file", file);
56
- const res = await fetch(`https://api.telegram.org/bot${botToken}/setMyProfilePhoto`, {
57
- method: "POST",
58
- body: form,
59
- signal: AbortSignal.timeout(30_000),
60
- });
61
- const data = (await res.json());
62
- if (data.ok)
63
- return data;
64
- const desc = data.description ?? "";
65
- const isRetryable = /timeout|gateway|retry|temporarily/i.test(desc);
66
- if (!isRetryable || attempt === maxRetries)
67
- return data;
68
- logger.warn(`setMyProfilePhoto attempt ${attempt + 1} failed (${desc}), retrying…`);
69
- await new Promise((r) => setTimeout(r, 2000 * (attempt + 1)));
70
- }
71
- return { ok: false, description: "max retries exceeded" };
72
- }
73
- async function setProfilePhotoAsync(botToken, source) {
74
- let photoPath;
75
- let tempFile;
76
- try {
77
- const optionNum = parseInt(source, 10);
78
- if (!isNaN(optionNum) && optionNum >= 1 && optionNum <= AVATAR_OPTIONS.length) {
79
- const opt = AVATAR_OPTIONS[optionNum - 1];
80
- photoPath = path.join(AVATARS_DIR, opt.file);
81
- if (!fs.existsSync(photoPath)) {
82
- logger.warn(`Avatar file not found at ${photoPath}`);
83
- return;
84
- }
85
- }
86
- else if (source.startsWith("https://")) {
87
- const res = await fetch(source);
88
- if (!res.ok) {
89
- logger.warn(`Failed to download user photo: HTTP ${res.status}`);
90
- return;
91
- }
92
- const buffer = Buffer.from(await res.arrayBuffer());
93
- tempFile = path.join(AVATARS_DIR, `_temp_upload_${Date.now()}.jpg`);
94
- fs.writeFileSync(tempFile, buffer);
95
- photoPath = tempFile;
96
- }
97
- else {
98
- logger.warn(`Invalid profile photo source: ${source}`);
99
- return;
100
- }
101
- const fileBuffer = fs.readFileSync(photoPath);
102
- logger.debug(`Setting bot profile photo from ${photoPath} (${fileBuffer.length} bytes)`);
103
- const data = await callSetProfilePhoto(botToken, fileBuffer);
104
- if (data.ok) {
105
- logger.system("Telegram bot profile photo updated");
106
- }
107
- else {
108
- logger.warn(`setMyProfilePhoto failed: ${data.description ?? "unknown"}`);
109
- }
110
- }
111
- catch (err) {
112
- logger.warn(`setMyProfilePhoto error: ${err instanceof Error ? err.message : String(err)}`);
113
- }
114
- finally {
115
- if (tempFile && fs.existsSync(tempFile)) {
116
- fs.unlinkSync(tempFile);
117
- }
118
- }
119
- }
120
4
  // eslint-disable-next-line @typescript-eslint/explicit-function-return-type
121
5
  function createCompleteOnboardingTool(deps) {
122
6
  return tool("complete_onboarding", "Finalize onboarding with the collected information. Call this ONLY after you have " +
123
- "gathered all required info (owner name, agent name, wakeup interval, profile photo choice) " +
124
- "and the user has confirmed. The profile photo will be applied automatically. " +
7
+ "gathered all required info (owner name, wakeup interval) " +
8
+ "and the user has confirmed. " +
125
9
  "After calling this tool, send a brief goodbye/welcome message and stop.", {
126
10
  ownerName: z.string().min(1).describe("The owner's name"),
127
- agentName: z
128
- .string()
129
- .default("VisionClaw")
130
- .describe('The name the user chose for the agent (default: "VisionClaw")'),
131
11
  wakeupIntervalMinutes: z
132
12
  .number()
133
13
  .min(1)
134
14
  .max(1440)
135
15
  .default(DEFAULT_HEARTBEAT_INTERVAL_MS / 60_000)
136
16
  .describe("How often the agent wakes up, in minutes (1-1440, default: 3)"),
137
- profilePhotoSource: z
138
- .string()
139
- .optional()
140
- .describe("The user's profile photo choice: an option number ('1' through '7') for a bundled avatar, " +
141
- "a Telegram file URL (https://api.telegram.org/file/...) from a user-uploaded image, " +
142
- "or omit / leave empty if the user chose to skip."),
143
17
  dualSessionEnabled: z
144
18
  .boolean()
145
19
  .default(true)
@@ -148,22 +22,14 @@ function createCompleteOnboardingTool(deps) {
148
22
  }, (args) => {
149
23
  deps.onComplete({
150
24
  ownerName: args.ownerName,
151
- agentName: args.agentName,
152
25
  wakeupIntervalMinutes: args.wakeupIntervalMinutes,
153
26
  dualSessionEnabled: args.dualSessionEnabled,
154
- profilePhotoSource: args.profilePhotoSource,
155
27
  });
156
- if (args.profilePhotoSource) {
157
- setProfilePhotoAsync(deps.botToken, args.profilePhotoSource).catch((err) => {
158
- logger.warn(`Background profile photo upload failed: ${err instanceof Error ? err.message : String(err)}`);
159
- });
160
- }
161
28
  return Promise.resolve({
162
29
  content: [{
163
30
  type: "text",
164
- text: `Onboarding finalized! Owner: ${args.ownerName}, Agent: ${args.agentName}, ` +
31
+ text: `Onboarding finalized! Owner: ${args.ownerName}, ` +
165
32
  `Wakeup: every ${args.wakeupIntervalMinutes} min. ` +
166
- (args.profilePhotoSource ? "Profile photo is being applied. " : "") +
167
33
  "Send a brief welcome message to the user and then stop.",
168
34
  }],
169
35
  });
@@ -175,7 +41,6 @@ export function createOnboardingToolServer(deps) {
175
41
  name: "onboarding",
176
42
  version: "0.1.0",
177
43
  tools: [
178
- createSendAvatarOptionsTool(deps),
179
44
  createCompleteOnboardingTool(deps),
180
45
  ],
181
46
  });