@arbidocs/tui 0.3.67 → 0.3.69

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.
package/dist/index.js CHANGED
@@ -578,6 +578,7 @@ var ToastContainer = class extends piTui.Container {
578
578
  // src/command-registry.ts
579
579
  init_tui_helpers();
580
580
  var registry = /* @__PURE__ */ new Map();
581
+ var KNOWN_SERVER_COMMANDS = /* @__PURE__ */ new Set(["pa", "setup", "cold-start"]);
581
582
  function registerCommand(def) {
582
583
  registry.set(def.name, def);
583
584
  }
@@ -647,6 +648,9 @@ async function dispatchCommand(tui, input2) {
647
648
  showMessage(tui, meta, "info");
648
649
  return false;
649
650
  }
651
+ if (KNOWN_SERVER_COMMANDS.has(cmdName)) {
652
+ return false;
653
+ }
650
654
  showMessage(tui, `Unknown command: /${cmdName}. Type /help for available commands.`, "warning");
651
655
  return true;
652
656
  }
@@ -1409,10 +1413,27 @@ var miscCommands = [
1409
1413
  },
1410
1414
  {
1411
1415
  name: "settings",
1412
- description: "Show user settings",
1416
+ description: "Show or update user settings",
1417
+ argHint: "get | set <key> <value>",
1413
1418
  requires: "auth",
1414
1419
  run: async (ctx) => {
1415
- const { arbi } = ctx;
1420
+ const { args, arbi } = ctx;
1421
+ const sub = args[0]?.toLowerCase();
1422
+ if (sub === "set") {
1423
+ const key = args[1];
1424
+ const rawValue = args.slice(2).join(" ").trim();
1425
+ if (!key || rawValue.length === 0) {
1426
+ return `${colors.error("Usage:")} /settings set <key> <value> (e.g. /settings set show_pa_mode true)`;
1427
+ }
1428
+ const value = coerceSettingValue(rawValue);
1429
+ await sdk.settings.updateSettings(arbi, {
1430
+ [key]: value
1431
+ });
1432
+ return `${colors.success("Updated")} ${colors.accent(key)} \u2192 ${String(value)}`;
1433
+ }
1434
+ if (sub && sub !== "get") {
1435
+ return `${colors.error("Unknown subcommand:")} /settings ${sub} \u2014 use /settings, /settings get, or /settings set <key> <value>`;
1436
+ }
1416
1437
  const data = await sdk.settings.getSettings(arbi);
1417
1438
  const entries = Object.entries(data);
1418
1439
  if (entries.length === 0) return "No settings configured.";
@@ -1425,6 +1446,15 @@ var miscCommands = [
1425
1446
  }
1426
1447
  }
1427
1448
  ];
1449
+ function coerceSettingValue(raw) {
1450
+ const lower = raw.toLowerCase();
1451
+ if (lower === "true" || lower === "yes" || lower === "on") return true;
1452
+ if (lower === "false" || lower === "no" || lower === "off") return false;
1453
+ if (lower === "null") return null;
1454
+ if (/^-?\d+$/.test(raw)) return Number(raw);
1455
+ if (/^-?\d+\.\d+$/.test(raw)) return Number(raw);
1456
+ return raw;
1457
+ }
1428
1458
  var MAX_PASSAGE_CHARS = 2e3;
1429
1459
  var CitationPanel = class extends piTui.Box {
1430
1460
  constructor(citation, passageIndex = 0) {