Przeglądaj źródła

fix(cli): hide auto approval aliases in help (#34641)

Co-authored-by: James Long <longster@gmail.com>
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
opencode-agent[bot] 2 miesięcy temu
rodzic
commit
20445ca031

+ 12 - 2
packages/opencode/src/cli/cmd/run.ts

@@ -240,11 +240,20 @@ export const RunCommand = effectCmd({
         default: false,
       })
       .option("auto", {
-        alias: ["yolo", "dangerously-skip-permissions"],
         type: "boolean",
         describe: "auto-approve permissions that are not explicitly denied (dangerous!)",
         default: false,
       })
+      .option("yolo", {
+        type: "boolean",
+        hidden: true,
+        default: false,
+      })
+      .option("dangerously-skip-permissions", {
+        type: "boolean",
+        hidden: true,
+        default: false,
+      })
       .option("demo", {
         type: "boolean",
         default: false,
@@ -262,6 +271,7 @@ export const RunCommand = effectCmd({
     yield* Effect.promise(async () => {
       const rawMessage = [...args.message, ...(args["--"] || [])].join(" ")
       const interactive = args.mini
+      const auto = args.auto || args.yolo || args["dangerously-skip-permissions"]
       const thinking = interactive ? (args.thinking ?? true) : (args.thinking ?? false)
       const die = (message: string): never => {
         UI.error(message)
@@ -787,7 +797,7 @@ export const RunCommand = effectCmd({
               const permission = event.properties
               if (permission.sessionID !== sessionID) continue
 
-              if (args.auto) {
+              if (auto) {
                 await client.permission.reply({
                   requestID: permission.id,
                   reply: "once",

+ 11 - 2
packages/opencode/src/cli/cmd/tui.ts

@@ -106,11 +106,20 @@ export const TuiThreadCommand = cmd({
         describe: "agent to use",
       })
       .option("auto", {
-        alias: ["yolo", "dangerously-skip-permissions"],
         type: "boolean",
         describe: "auto-approve permissions that are not explicitly denied (dangerous!)",
         default: false,
       })
+      .option("yolo", {
+        type: "boolean",
+        hidden: true,
+        default: false,
+      })
+      .option("dangerously-skip-permissions", {
+        type: "boolean",
+        hidden: true,
+        default: false,
+      })
       .option("mini", {
         type: "boolean",
         describe: "start the minimal interactive interface",
@@ -278,7 +287,7 @@ export const TuiThreadCommand = cmd({
               model: args.model,
               prompt,
               fork: args.fork,
-              auto: args.auto,
+              auto: args.auto || args.yolo || args["dangerously-skip-permissions"],
             },
           }),
         )

+ 26 - 38
packages/opencode/test/cli/help/__snapshots__/help-snapshots.test.ts.snap

@@ -76,46 +76,34 @@ Positionals:
   message  message to send                                                     [array] [default: []]
 
 Options:
-  -h, --help                                          show help                            [boolean]
-  -v, --version                                       show version number                  [boolean]
-      --print-logs                                    print logs to stderr                 [boolean]
-      --log-level                                     log level
-                                                [string] [choices: "DEBUG", "INFO", "WARN", "ERROR"]
-      --pure                                          run without external plugins         [boolean]
-      --command                                       the command to run, use message for args
-                                                                                            [string]
-  -c, --continue                                      continue the last session            [boolean]
-  -s, --session                                       session id to continue                [string]
-      --fork                                          fork the session before continuing (requires
-                                                      --continue or --session)             [boolean]
-      --share                                         share the session                    [boolean]
-  -m, --model                                         model to use in the format of provider/model
-                                                                                            [string]
-      --agent                                         agent to use                          [string]
-      --format                                        format: default (formatted) or json (raw JSON
-                                                      events)
+  -h, --help         show help                                                             [boolean]
+  -v, --version      show version number                                                   [boolean]
+      --print-logs   print logs to stderr                                                  [boolean]
+      --log-level    log level                  [string] [choices: "DEBUG", "INFO", "WARN", "ERROR"]
+      --pure         run without external plugins                                          [boolean]
+      --command      the command to run, use message for args                               [string]
+  -c, --continue     continue the last session                                             [boolean]
+  -s, --session      session id to continue                                                 [string]
+      --fork         fork the session before continuing (requires --continue or --session) [boolean]
+      --share        share the session                                                     [boolean]
+  -m, --model        model to use in the format of provider/model                           [string]
+      --agent        agent to use                                                           [string]
+      --format       format: default (formatted) or json (raw JSON events)
                                           [string] [choices: "default", "json"] [default: "default"]
-  -f, --file                                          file(s) to attach to message           [array]
-      --title                                         title for the session (uses truncated prompt
-                                                      if no value provided)                 [string]
-      --attach                                        attach to a running opencode server (e.g.,
-                                                      http://localhost:4096)                [string]
-  -p, --password                                      basic auth password (defaults to
-                                                      OPENCODE_SERVER_PASSWORD)             [string]
-  -u, --username                                      basic auth username (defaults to
-                                                      OPENCODE_SERVER_USERNAME or 'opencode')
+  -f, --file         file(s) to attach to message                                            [array]
+      --title        title for the session (uses truncated prompt if no value provided)     [string]
+      --attach       attach to a running opencode server (e.g., http://localhost:4096)      [string]
+  -p, --password     basic auth password (defaults to OPENCODE_SERVER_PASSWORD)             [string]
+  -u, --username     basic auth username (defaults to OPENCODE_SERVER_USERNAME or 'opencode')
                                                                                             [string]
-      --dir                                           directory to run in, path on remote server if
-                                                      attaching                             [string]
-      --port                                          port for the local server (defaults to random
-                                                      port if no value provided)            [number]
-      --variant                                       model variant (provider-specific reasoning
-                                                      effort, e.g., high, max, minimal)     [string]
-      --thinking                                      show thinking blocks                 [boolean]
-  -i, --interactive                                   run in direct interactive split-footer mode
-                                                                          [boolean] [default: false]
-      --auto, --yolo, --dangerously-skip-permissions  auto-approve permissions that are not
-                                                      explicitly denied (dangerous!)
+      --dir          directory to run in, path on remote server if attaching                [string]
+      --port         port for the local server (defaults to random port if no value provided)
+                                                                                            [number]
+      --variant      model variant (provider-specific reasoning effort, e.g., high, max, minimal)
+                                                                                            [string]
+      --thinking     show thinking blocks                                                  [boolean]
+  -i, --interactive  run in direct interactive split-footer mode          [boolean] [default: false]
+      --auto         auto-approve permissions that are not explicitly denied (dangerous!)
                                                                           [boolean] [default: false]"
 `;