linkshell-cli 0.2.113 → 0.2.114

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.
@@ -512,6 +512,73 @@ function providerLabel(provider) {
512
512
  const ALL_REASONING_EFFORTS = ["none", "minimal", "low", "medium", "high", "xhigh"];
513
513
  const ALL_PERMISSION_MODES = ["read_only", "workspace_write", "full_access"];
514
514
  const CODEX_COMMAND_NAMES = ["plan", "exit-plan", "compact", "clear", "status", "review", "subagents"];
515
+ const CLAUDE_REMOTE_HIDDEN_COMMANDS = new Set([
516
+ "add-dir",
517
+ "agents",
518
+ "allowed-tools",
519
+ "android",
520
+ "app",
521
+ "bashes",
522
+ "branch",
523
+ "bug",
524
+ "checkpoint",
525
+ "chrome",
526
+ "color",
527
+ "config",
528
+ "continue",
529
+ "copy",
530
+ "cost",
531
+ "desktop",
532
+ "diff",
533
+ "doctor",
534
+ "exit",
535
+ "export",
536
+ "extra-usage",
537
+ "feedback",
538
+ "focus",
539
+ "fork",
540
+ "hooks",
541
+ "ide",
542
+ "init",
543
+ "install-github-app",
544
+ "install-slack-app",
545
+ "ios",
546
+ "keybindings",
547
+ "login",
548
+ "logout",
549
+ "mcp",
550
+ "memory",
551
+ "migrate-installer",
552
+ "mobile",
553
+ "model",
554
+ "passes",
555
+ "permissions",
556
+ "plugin",
557
+ "powerup",
558
+ "pr-comments",
559
+ "privacy-settings",
560
+ "quit",
561
+ "rc",
562
+ "release-notes",
563
+ "remote-control",
564
+ "remote-env",
565
+ "resume",
566
+ "rewind",
567
+ "settings",
568
+ "statusline",
569
+ "stickers",
570
+ "tasks",
571
+ "teleport",
572
+ "terminal-setup",
573
+ "theme",
574
+ "tp",
575
+ "tui",
576
+ "undo",
577
+ "upgrade",
578
+ "vim",
579
+ "voice",
580
+ "web-setup",
581
+ ]);
515
582
  const CLAUDE_BUILT_IN_COMMANDS = [
516
583
  { name: "add-dir", description: "Add a working directory for file access", argsMode: "required" },
517
584
  { name: "agents", description: "Manage agent configurations", argsMode: "none" },
@@ -615,6 +682,9 @@ const CLAUDE_BUILT_IN_COMMANDS = [
615
682
  { name: "voice", description: "Toggle voice dictation" },
616
683
  { name: "web-setup", description: "Connect your GitHub account to Claude Code on the web", argsMode: "none" },
617
684
  ];
685
+ function isClaudeRemoteFriendlyCommand(name) {
686
+ return !CLAUDE_REMOTE_HIDDEN_COMMANDS.has(name.replace(/^\/+/, ""));
687
+ }
618
688
  function commandId(provider, name, source = "built_in") {
619
689
  return `${provider}:${source}:${name.replace(/^\/+/, "")}`;
620
690
  }
@@ -725,7 +795,9 @@ function defaultProviderCommands(provider, cwd, enabled) {
725
795
  }));
726
796
  }
727
797
  if (provider === "claude") {
728
- const builtIns = CLAUDE_BUILT_IN_COMMANDS.map((entry) => makeCommand({
798
+ const builtIns = CLAUDE_BUILT_IN_COMMANDS
799
+ .filter((entry) => isClaudeRemoteFriendlyCommand(entry.name))
800
+ .map((entry) => makeCommand({
729
801
  provider,
730
802
  name: entry.name,
731
803
  description: entry.description,
@@ -758,7 +830,12 @@ function mergeCommands(...groups) {
758
830
  for (const group of groups) {
759
831
  for (const command of group ?? []) {
760
832
  const key = `${command.provider ?? ""}:${command.name}`;
761
- map.set(key, { ...map.get(key), ...command });
833
+ const existing = map.get(key);
834
+ map.set(key, {
835
+ ...existing,
836
+ ...command,
837
+ disabledReason: command.disabledReason ?? existing?.disabledReason,
838
+ });
762
839
  }
763
840
  }
764
841
  return [...map.values()].sort((a, b) => a.name.localeCompare(b.name));
@@ -774,6 +851,8 @@ function runtimeCommands(provider, value) {
774
851
  return commandsValue
775
852
  .map((entry) => {
776
853
  if (typeof entry === "string") {
854
+ if (provider === "claude" && !isClaudeRemoteFriendlyCommand(entry))
855
+ return undefined;
777
856
  return makeCommand({
778
857
  provider,
779
858
  name: entry,
@@ -787,6 +866,8 @@ function runtimeCommands(provider, value) {
787
866
  const name = firstString(record, ["name", "command", "id"]);
788
867
  if (!name)
789
868
  return undefined;
869
+ if (provider === "claude" && !isClaudeRemoteFriendlyCommand(name))
870
+ return undefined;
790
871
  return makeCommand({
791
872
  provider,
792
873
  name,