From 875dd1a28fe99b8611942409986041a3acb9abb1 Mon Sep 17 00:00:00 2001 From: Vantz Stockwell Date: Wed, 25 Mar 2026 00:07:15 -0400 Subject: [PATCH] =?UTF-8?q?feat:=20complete=20Tools=20suite=20=E2=80=94=20?= =?UTF-8?q?7=20tool=20UIs=20in=20popup=20windows?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit All 7 tool windows with full UIs: - Network Scanner: subnet scan, ARP+DNS discovery, results table with Quick Scan per host, SSH/RDP connect buttons, CSV export - Port Scanner: custom range or quick scan (24 common ports), open/closed results table with service names - Ping: remote ping with count, raw output display - Traceroute: remote traceroute, raw output display - Wake on LAN: MAC address input, broadcasts via python3 on remote host - SSH Key Generator: ed25519/RSA, copy public/private key, fingerprint - Password Generator: configurable length/charset, copy button, history Architecture: - App.vue detects tool mode via URL hash (#/tool/name?sessionId=...) - ToolWindow.vue routes to correct tool component - Tools menu in toolbar opens Tauri popup windows (WebviewWindow) - Capabilities grant tool-* windows the same permissions as main - SFTP context menu: right-click Edit/Download/Rename/Delete Co-Authored-By: Claude Opus 4.6 (1M context) --- src-tauri/capabilities/default.json | 2 +- src-tauri/gen/schemas/capabilities.json | 2 +- src/App.vue | 31 ++++++--- src/components/tools/NetworkScanner.vue | 89 +++++++++++++++++++++++++ src/components/tools/PasswordGen.vue | 63 +++++++++++++++++ src/components/tools/PingTool.vue | 32 +++++++++ src/components/tools/PortScanner.vue | 81 ++++++++++++++++++++++ src/components/tools/SshKeyGen.vue | 65 ++++++++++++++++++ src/components/tools/ToolWindow.vue | 29 ++++++++ src/components/tools/TracerouteTool.vue | 29 ++++++++ src/components/tools/WakeOnLan.vue | 32 +++++++++ 11 files changed, 445 insertions(+), 10 deletions(-) create mode 100644 src/components/tools/NetworkScanner.vue create mode 100644 src/components/tools/PasswordGen.vue create mode 100644 src/components/tools/PingTool.vue create mode 100644 src/components/tools/PortScanner.vue create mode 100644 src/components/tools/SshKeyGen.vue create mode 100644 src/components/tools/ToolWindow.vue create mode 100644 src/components/tools/TracerouteTool.vue create mode 100644 src/components/tools/WakeOnLan.vue diff --git a/src-tauri/capabilities/default.json b/src-tauri/capabilities/default.json index 03ac4f0..bf0c95b 100644 --- a/src-tauri/capabilities/default.json +++ b/src-tauri/capabilities/default.json @@ -1,7 +1,7 @@ { "identifier": "default", "description": "Default capabilities for the main Wraith window", - "windows": ["main"], + "windows": ["main", "tool-*"], "permissions": [ "core:default", "core:event:default", diff --git a/src-tauri/gen/schemas/capabilities.json b/src-tauri/gen/schemas/capabilities.json index 3956473..c8b8edd 100644 --- a/src-tauri/gen/schemas/capabilities.json +++ b/src-tauri/gen/schemas/capabilities.json @@ -1 +1 @@ -{"default":{"identifier":"default","description":"Default capabilities for the main Wraith window","local":true,"windows":["main"],"permissions":["core:default","core:event:default","core:window:default","shell:allow-open"]}} \ No newline at end of file +{"default":{"identifier":"default","description":"Default capabilities for the main Wraith window","local":true,"windows":["main","tool-*"],"permissions":["core:default","core:event:default","core:window:default","shell:allow-open"]}} \ No newline at end of file diff --git a/src/App.vue b/src/App.vue index 67d3526..c30fb14 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,27 +1,42 @@ diff --git a/src/components/tools/NetworkScanner.vue b/src/components/tools/NetworkScanner.vue new file mode 100644 index 0000000..9375df2 --- /dev/null +++ b/src/components/tools/NetworkScanner.vue @@ -0,0 +1,89 @@ + + + diff --git a/src/components/tools/PasswordGen.vue b/src/components/tools/PasswordGen.vue new file mode 100644 index 0000000..b8f5a6d --- /dev/null +++ b/src/components/tools/PasswordGen.vue @@ -0,0 +1,63 @@ + + + diff --git a/src/components/tools/PingTool.vue b/src/components/tools/PingTool.vue new file mode 100644 index 0000000..1b7388c --- /dev/null +++ b/src/components/tools/PingTool.vue @@ -0,0 +1,32 @@ + + + diff --git a/src/components/tools/PortScanner.vue b/src/components/tools/PortScanner.vue new file mode 100644 index 0000000..e22f6e3 --- /dev/null +++ b/src/components/tools/PortScanner.vue @@ -0,0 +1,81 @@ + + + diff --git a/src/components/tools/SshKeyGen.vue b/src/components/tools/SshKeyGen.vue new file mode 100644 index 0000000..fef7c41 --- /dev/null +++ b/src/components/tools/SshKeyGen.vue @@ -0,0 +1,65 @@ +