Browse Source

tui: fix command validation to prevent invalid commands from being executed

Dax Raad 3 months ago
parent
commit
234db24f1f
1 changed files with 10 additions and 2 deletions
  1. 10 2
      packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx

+ 10 - 2
packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx

@@ -28,6 +28,7 @@ import { useExit } from "../../context/exit"
 import { Clipboard } from "../../util/clipboard"
 import type { FilePart } from "@opencode-ai/sdk"
 import { TuiEvent } from "../../event"
+import { iife } from "@/util/iife"
 
 export type PromptProps = {
   sessionID?: string
@@ -363,8 +364,15 @@ export function Prompt(props: PromptProps) {
         },
       })
       setStore("mode", "normal")
-    } else if (inputText.startsWith("/")) {
-      const [command, ...args] = inputText.split(" ")
+    } else if (
+      inputText.startsWith("/") &&
+      iife(() => {
+        const command = inputText.split(" ")[0].slice(1)
+        console.log(command)
+        return sync.data.command.some((x) => x.name === command)
+      })
+    ) {
+      let [command, ...args] = inputText.split(" ")
       sdk.client.session.command({
         path: {
           id: sessionID,