@arbidocs/tui 0.3.68 → 0.3.70

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
@@ -1413,10 +1413,27 @@ var miscCommands = [
1413
1413
  },
1414
1414
  {
1415
1415
  name: "settings",
1416
- description: "Show user settings",
1416
+ description: "Show or update user settings",
1417
+ argHint: "get | set <key> <value>",
1417
1418
  requires: "auth",
1418
1419
  run: async (ctx) => {
1419
- 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
+ }
1420
1437
  const data = await sdk.settings.getSettings(arbi);
1421
1438
  const entries = Object.entries(data);
1422
1439
  if (entries.length === 0) return "No settings configured.";
@@ -1429,6 +1446,15 @@ var miscCommands = [
1429
1446
  }
1430
1447
  }
1431
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
+ }
1432
1458
  var MAX_PASSAGE_CHARS = 2e3;
1433
1459
  var CitationPanel = class extends piTui.Box {
1434
1460
  constructor(citation, passageIndex = 0) {