@openacp/cli 0.4.3 → 0.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -876,6 +876,13 @@ var SessionManager = class {
876
876
  await this.store.save({ ...record, status });
877
877
  }
878
878
  }
879
+ async updateSessionDangerousMode(sessionId, dangerousMode) {
880
+ if (!this.store) return;
881
+ const record = this.store.get(sessionId);
882
+ if (record) {
883
+ await this.store.save({ ...record, dangerousMode });
884
+ }
885
+ }
879
886
  async updateSessionName(sessionId, name) {
880
887
  if (!this.store) return;
881
888
  const record = this.store.get(sessionId);
@@ -1436,6 +1443,7 @@ var OpenACPCore = class {
1436
1443
  session.agentSessionId = agentInstance.sessionId;
1437
1444
  session.status = "active";
1438
1445
  session.name = record.name;
1446
+ session.dangerousMode = record.dangerousMode ?? false;
1439
1447
  this.sessionManager.registerSession(session);
1440
1448
  const adapter = this.adapters.get(message.channelId);
1441
1449
  if (adapter) {
@@ -2355,23 +2363,44 @@ function setupDangerousModeCallbacks(bot, core) {
2355
2363
  bot.callbackQuery(/^d:/, async (ctx) => {
2356
2364
  const sessionId = ctx.callbackQuery.data.slice(2);
2357
2365
  const session = core.sessionManager.getSession(sessionId);
2358
- if (!session) {
2366
+ if (session) {
2367
+ session.dangerousMode = !session.dangerousMode;
2368
+ log7.info({ sessionId, dangerousMode: session.dangerousMode }, "Dangerous mode toggled via button");
2369
+ core.sessionManager.updateSessionDangerousMode(sessionId, session.dangerousMode).catch(() => {
2370
+ });
2371
+ const toastText2 = session.dangerousMode ? "\u2620\uFE0F Dangerous mode enabled \u2014 permissions auto-approved" : "\u{1F510} Dangerous mode disabled \u2014 permissions shown normally";
2372
+ try {
2373
+ await ctx.answerCallbackQuery({ text: toastText2 });
2374
+ } catch {
2375
+ }
2376
+ try {
2377
+ await ctx.editMessageReplyMarkup({
2378
+ reply_markup: buildDangerousModeKeyboard(sessionId, session.dangerousMode)
2379
+ });
2380
+ } catch {
2381
+ }
2382
+ return;
2383
+ }
2384
+ const record = core.sessionManager.getSessionRecord(sessionId);
2385
+ if (!record || record.status === "cancelled" || record.status === "error") {
2359
2386
  try {
2360
2387
  await ctx.answerCallbackQuery({ text: "\u26A0\uFE0F Session not found or already ended." });
2361
2388
  } catch {
2362
2389
  }
2363
2390
  return;
2364
2391
  }
2365
- session.dangerousMode = !session.dangerousMode;
2366
- log7.info({ sessionId, dangerousMode: session.dangerousMode }, "Dangerous mode toggled via button");
2367
- const toastText = session.dangerousMode ? "\u2620\uFE0F Dangerous mode enabled \u2014 permissions auto-approved" : "\u{1F510} Dangerous mode disabled \u2014 permissions shown normally";
2392
+ const newDangerousMode = !(record.dangerousMode ?? false);
2393
+ core.sessionManager.updateSessionDangerousMode(sessionId, newDangerousMode).catch(() => {
2394
+ });
2395
+ log7.info({ sessionId, dangerousMode: newDangerousMode }, "Dangerous mode toggled via button (store-only, session not in memory)");
2396
+ const toastText = newDangerousMode ? "\u2620\uFE0F Dangerous mode enabled \u2014 permissions auto-approved" : "\u{1F510} Dangerous mode disabled \u2014 permissions shown normally";
2368
2397
  try {
2369
2398
  await ctx.answerCallbackQuery({ text: toastText });
2370
2399
  } catch {
2371
2400
  }
2372
2401
  try {
2373
2402
  await ctx.editMessageReplyMarkup({
2374
- reply_markup: buildDangerousModeKeyboard(sessionId, session.dangerousMode)
2403
+ reply_markup: buildDangerousModeKeyboard(sessionId, newDangerousMode)
2375
2404
  });
2376
2405
  } catch {
2377
2406
  }
@@ -2384,15 +2413,27 @@ async function handleEnableDangerous(ctx, core) {
2384
2413
  return;
2385
2414
  }
2386
2415
  const session = core.sessionManager.getSessionByThread("telegram", String(threadId));
2387
- if (!session) {
2388
- await ctx.reply("\u26A0\uFE0F No active session in this topic.", { parse_mode: "HTML" });
2389
- return;
2390
- }
2391
- if (session.dangerousMode) {
2392
- await ctx.reply("\u2620\uFE0F Dangerous mode is already enabled.", { parse_mode: "HTML" });
2393
- return;
2416
+ if (session) {
2417
+ if (session.dangerousMode) {
2418
+ await ctx.reply("\u2620\uFE0F Dangerous mode is already enabled.", { parse_mode: "HTML" });
2419
+ return;
2420
+ }
2421
+ session.dangerousMode = true;
2422
+ core.sessionManager.updateSessionDangerousMode(session.id, true).catch(() => {
2423
+ });
2424
+ } else {
2425
+ const record = core.sessionManager.getRecordByThread("telegram", String(threadId));
2426
+ if (!record || record.status === "cancelled" || record.status === "error") {
2427
+ await ctx.reply("\u26A0\uFE0F No active session in this topic.", { parse_mode: "HTML" });
2428
+ return;
2429
+ }
2430
+ if (record.dangerousMode) {
2431
+ await ctx.reply("\u2620\uFE0F Dangerous mode is already enabled.", { parse_mode: "HTML" });
2432
+ return;
2433
+ }
2434
+ core.sessionManager.updateSessionDangerousMode(record.sessionId, true).catch(() => {
2435
+ });
2394
2436
  }
2395
- session.dangerousMode = true;
2396
2437
  await ctx.reply(
2397
2438
  `\u26A0\uFE0F <b>Dangerous mode enabled</b>
2398
2439
 
@@ -2455,15 +2496,27 @@ async function handleDisableDangerous(ctx, core) {
2455
2496
  return;
2456
2497
  }
2457
2498
  const session = core.sessionManager.getSessionByThread("telegram", String(threadId));
2458
- if (!session) {
2459
- await ctx.reply("\u26A0\uFE0F No active session in this topic.", { parse_mode: "HTML" });
2460
- return;
2461
- }
2462
- if (!session.dangerousMode) {
2463
- await ctx.reply("\u{1F510} Dangerous mode is already disabled.", { parse_mode: "HTML" });
2464
- return;
2499
+ if (session) {
2500
+ if (!session.dangerousMode) {
2501
+ await ctx.reply("\u{1F510} Dangerous mode is already disabled.", { parse_mode: "HTML" });
2502
+ return;
2503
+ }
2504
+ session.dangerousMode = false;
2505
+ core.sessionManager.updateSessionDangerousMode(session.id, false).catch(() => {
2506
+ });
2507
+ } else {
2508
+ const record = core.sessionManager.getRecordByThread("telegram", String(threadId));
2509
+ if (!record || record.status === "cancelled" || record.status === "error") {
2510
+ await ctx.reply("\u26A0\uFE0F No active session in this topic.", { parse_mode: "HTML" });
2511
+ return;
2512
+ }
2513
+ if (!record.dangerousMode) {
2514
+ await ctx.reply("\u{1F510} Dangerous mode is already disabled.", { parse_mode: "HTML" });
2515
+ return;
2516
+ }
2517
+ core.sessionManager.updateSessionDangerousMode(record.sessionId, false).catch(() => {
2518
+ });
2465
2519
  }
2466
- session.dangerousMode = false;
2467
2520
  await ctx.reply("\u{1F510} <b>Dangerous mode disabled</b>\n\nPermission requests will be shown normally.", { parse_mode: "HTML" });
2468
2521
  }
2469
2522
  function botFromCtx(ctx) {
@@ -3705,7 +3758,16 @@ Task completed.
3705
3758
  { parse_mode: "HTML" }
3706
3759
  );
3707
3760
  return;
3708
- } catch {
3761
+ } catch (err) {
3762
+ const msg = err instanceof Error ? err.message : "";
3763
+ if (msg.includes("message is not modified")) {
3764
+ return;
3765
+ }
3766
+ try {
3767
+ await this.bot.api.deleteMessage(this.telegramConfig.chatId, existingMsgId);
3768
+ } catch {
3769
+ }
3770
+ this.skillMessages.delete(sessionId);
3709
3771
  }
3710
3772
  }
3711
3773
  try {
@@ -3808,4 +3870,4 @@ export {
3808
3870
  ApiServer,
3809
3871
  TelegramAdapter
3810
3872
  };
3811
- //# sourceMappingURL=chunk-GA26H6JY.js.map
3873
+ //# sourceMappingURL=chunk-V5P3K4A5.js.map