@tianshu-ai/local-bridge 0.8.1 → 0.9.1

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.
@@ -0,0 +1,257 @@
1
+ // A native settings window for the tray, per platform, using each OS's
2
+ // own GUI toolkit — no bundled runtime, no extra install (the same
3
+ // philosophy as the macOS Swift menu-bar app).
4
+ //
5
+ // Windows → PowerShell + System.Windows.Forms (ships with Windows)
6
+ // macOS → AppleScript dialogs (osascript, ships with macOS)
7
+ // Linux → fall back to opening the JSON in the default editor
8
+ //
9
+ // The window reads the current config.json, lets the user edit the same
10
+ // fields the Swift app exposes (server / token / browser+engine+headless
11
+ // / shell / device), and writes config.json back on Save. Runs the GUI
12
+ // as a detached child so it doesn't block the tray.
13
+ import { spawn } from "node:child_process";
14
+ import fs from "node:fs";
15
+ import os from "node:os";
16
+ import path from "node:path";
17
+ /**
18
+ * Open a native settings window. Best-effort, non-blocking. On success
19
+ * the GUI writes the edited config to `configPath` itself; the caller
20
+ * can re-read config after the window closes (or just on next Start).
21
+ *
22
+ * Returns true if a native window was launched, false if we fell back
23
+ * to opening the raw file (Linux / unsupported).
24
+ */
25
+ export function openSettingsWindow(configPath, current) {
26
+ if (process.platform === "win32") {
27
+ return openWindowsForm(configPath, current);
28
+ }
29
+ if (process.platform === "darwin") {
30
+ return openMacDialogs(configPath, current);
31
+ }
32
+ return false; // Linux: caller opens the file instead
33
+ }
34
+ // ─── Windows: PowerShell + WinForms ─────────────────────────────────
35
+ function openWindowsForm(configPath, cur) {
36
+ const scriptPath = path.join(os.tmpdir(), `tsbridge-settings-${process.pid}.ps1`);
37
+ const ps = renderWindowsPs1(configPath, cur);
38
+ try {
39
+ fs.writeFileSync(scriptPath, ps, "utf8");
40
+ }
41
+ catch {
42
+ return false;
43
+ }
44
+ try {
45
+ // -STA is required for WinForms; -WindowStyle Hidden hides the PS
46
+ // console so only the form shows.
47
+ const child = spawn("powershell.exe", [
48
+ "-NoProfile",
49
+ "-ExecutionPolicy",
50
+ "Bypass",
51
+ "-STA",
52
+ "-WindowStyle",
53
+ "Hidden",
54
+ "-File",
55
+ scriptPath,
56
+ ], { stdio: "ignore", detached: true, windowsHide: true });
57
+ // Swallow spawn errors (e.g. powershell missing) so they don't crash
58
+ // the tray process; the caller falls back to opening the raw file.
59
+ child.on("error", () => { });
60
+ child.unref();
61
+ return true;
62
+ }
63
+ catch {
64
+ return false;
65
+ }
66
+ }
67
+ /** PowerShell-single-quote-escape a JS string. */
68
+ function psq(s) {
69
+ return `'${String(s).replace(/'/g, "''")}'`;
70
+ }
71
+ function renderWindowsPs1(configPath, cur) {
72
+ // The script builds a WinForms dialog, prefilled with current values,
73
+ // and on OK writes config.json (merging into whatever is already there
74
+ // so we don't clobber unknown keys).
75
+ const cfgPathLit = psq(configPath);
76
+ return `
77
+ Add-Type -AssemblyName System.Windows.Forms
78
+ Add-Type -AssemblyName System.Drawing
79
+
80
+ $configPath = ${cfgPathLit}
81
+
82
+ $form = New-Object System.Windows.Forms.Form
83
+ $form.Text = 'Tianshu Bridge — Settings'
84
+ $form.Size = New-Object System.Drawing.Size(460, 380)
85
+ $form.StartPosition = 'CenterScreen'
86
+ $form.FormBorderStyle = 'FixedDialog'
87
+ $form.MaximizeBox = $false
88
+ $form.MinimizeBox = $false
89
+
90
+ function New-Label($text, $y) {
91
+ $l = New-Object System.Windows.Forms.Label
92
+ $l.Text = $text
93
+ $l.Location = New-Object System.Drawing.Point(16, $y)
94
+ $l.Size = New-Object System.Drawing.Size(120, 20)
95
+ $form.Controls.Add($l)
96
+ return $l
97
+ }
98
+
99
+ # Server
100
+ New-Label 'Server URL' 20 | Out-Null
101
+ $server = New-Object System.Windows.Forms.TextBox
102
+ $server.Location = New-Object System.Drawing.Point(140, 18)
103
+ $server.Size = New-Object System.Drawing.Size(290, 20)
104
+ $server.Text = ${psq(cur.server)}
105
+ $form.Controls.Add($server)
106
+
107
+ # Token
108
+ New-Label 'Token' 52 | Out-Null
109
+ $token = New-Object System.Windows.Forms.TextBox
110
+ $token.Location = New-Object System.Drawing.Point(140, 50)
111
+ $token.Size = New-Object System.Drawing.Size(290, 20)
112
+ $token.Text = ${psq(cur.token)}
113
+ $form.Controls.Add($token)
114
+
115
+ # Device
116
+ New-Label 'Device (optional)' 84 | Out-Null
117
+ $device = New-Object System.Windows.Forms.TextBox
118
+ $device.Location = New-Object System.Drawing.Point(140, 82)
119
+ $device.Size = New-Object System.Drawing.Size(290, 20)
120
+ $device.Text = ${psq(cur.device)}
121
+ $form.Controls.Add($device)
122
+
123
+ # Browser enabled
124
+ $browser = New-Object System.Windows.Forms.CheckBox
125
+ $browser.Text = 'Expose browser tools'
126
+ $browser.Location = New-Object System.Drawing.Point(140, 116)
127
+ $browser.Size = New-Object System.Drawing.Size(290, 20)
128
+ $browser.Checked = $${cur.browser ? "true" : "false"}
129
+ $form.Controls.Add($browser)
130
+
131
+ # Engine
132
+ New-Label 'Browser engine' 148 | Out-Null
133
+ $engine = New-Object System.Windows.Forms.ComboBox
134
+ $engine.Location = New-Object System.Drawing.Point(140, 146)
135
+ $engine.Size = New-Object System.Drawing.Size(150, 20)
136
+ $engine.DropDownStyle = 'DropDownList'
137
+ [void]$engine.Items.Add('own')
138
+ [void]$engine.Items.Add('stealth')
139
+ $engine.SelectedItem = ${psq(cur.engine)}
140
+ $form.Controls.Add($engine)
141
+
142
+ # Headless
143
+ $headless = New-Object System.Windows.Forms.CheckBox
144
+ $headless.Text = 'Headless (no browser window)'
145
+ $headless.Location = New-Object System.Drawing.Point(140, 178)
146
+ $headless.Size = New-Object System.Drawing.Size(290, 20)
147
+ $headless.Checked = $${cur.headless ? "true" : "false"}
148
+ $form.Controls.Add($headless)
149
+
150
+ # Shell
151
+ $shell = New-Object System.Windows.Forms.CheckBox
152
+ $shell.Text = 'Expose shell (exec + file sync) — runs commands on this machine'
153
+ $shell.Location = New-Object System.Drawing.Point(140, 210)
154
+ $shell.Size = New-Object System.Drawing.Size(300, 34)
155
+ $shell.Checked = $${cur.shell ? "true" : "false"}
156
+ $form.Controls.Add($shell)
157
+
158
+ # Buttons
159
+ $ok = New-Object System.Windows.Forms.Button
160
+ $ok.Text = 'Save'
161
+ $ok.Location = New-Object System.Drawing.Point(250, 300)
162
+ $ok.Size = New-Object System.Drawing.Size(85, 28)
163
+ $ok.DialogResult = [System.Windows.Forms.DialogResult]::OK
164
+ $form.Controls.Add($ok)
165
+ $form.AcceptButton = $ok
166
+
167
+ $cancel = New-Object System.Windows.Forms.Button
168
+ $cancel.Text = 'Cancel'
169
+ $cancel.Location = New-Object System.Drawing.Point(345, 300)
170
+ $cancel.Size = New-Object System.Drawing.Size(85, 28)
171
+ $cancel.DialogResult = [System.Windows.Forms.DialogResult]::Cancel
172
+ $form.Controls.Add($cancel)
173
+ $form.CancelButton = $cancel
174
+
175
+ $result = $form.ShowDialog()
176
+ if ($result -eq [System.Windows.Forms.DialogResult]::OK) {
177
+ # Merge into existing config so unknown keys survive.
178
+ $cfg = @{}
179
+ if (Test-Path $configPath) {
180
+ try { $cfg = Get-Content $configPath -Raw | ConvertFrom-Json -AsHashtable } catch { $cfg = @{} }
181
+ }
182
+ if ($null -eq $cfg) { $cfg = @{} }
183
+ $cfg['server'] = $server.Text
184
+ $cfg['token'] = $token.Text
185
+ $cfg['device'] = $device.Text
186
+ $cfg['browser'] = [bool]$browser.Checked
187
+ $cfg['engine'] = [string]$engine.SelectedItem
188
+ $cfg['headless'] = [bool]$headless.Checked
189
+ $cfg['shell'] = [bool]$shell.Checked
190
+ $dir = Split-Path -Parent $configPath
191
+ if (-not (Test-Path $dir)) { New-Item -ItemType Directory -Path $dir -Force | Out-Null }
192
+ ($cfg | ConvertTo-Json -Depth 10) | Set-Content -Path $configPath -Encoding UTF8
193
+ }
194
+ `;
195
+ }
196
+ // ─── macOS: AppleScript dialogs ─────────────────────────────────────
197
+ //
198
+ // A lightweight multi-field settings flow via osascript. Not as slick as
199
+ // the Swift app's form, but keeps parity if someone runs the CLI tray on
200
+ // macOS instead of the .app. Presents fields sequentially.
201
+ function openMacDialogs(configPath, cur) {
202
+ // Keep it simple + non-blocking: one AppleScript that chains dialogs
203
+ // and writes the JSON via `defaults`-free plain file write in the
204
+ // script tail. We build the whole thing as one osascript -e program.
205
+ const script = renderMacOsa(configPath, cur);
206
+ try {
207
+ const child = spawn("osascript", ["-e", script], {
208
+ stdio: "ignore",
209
+ detached: true,
210
+ });
211
+ child.on("error", () => { });
212
+ child.unref();
213
+ return true;
214
+ }
215
+ catch {
216
+ return false;
217
+ }
218
+ }
219
+ /** AppleScript-double-quote-escape. */
220
+ function asq(s) {
221
+ return `"${String(s).replace(/\\/g, "\\\\").replace(/"/g, '\\"')}"`;
222
+ }
223
+ function renderMacOsa(configPath, cur) {
224
+ // Prompt for server + token + engine + toggles, then shell out to a
225
+ // tiny writer. Fields are gathered with `display dialog`; booleans via
226
+ // `choose from list`. This is intentionally minimal.
227
+ const p = asq(configPath);
228
+ return [
229
+ `set cfgPath to ${p}`,
230
+ `set srv to text returned of (display dialog "Server URL" default answer ${asq(cur.server)})`,
231
+ `set tok to text returned of (display dialog "Token (blank for none)" default answer ${asq(cur.token)})`,
232
+ `set dev to text returned of (display dialog "Device (optional)" default answer ${asq(cur.device)})`,
233
+ `set eng to (choose from list {"own", "stealth"} default items {${asq(cur.engine)}} with prompt "Browser engine")`,
234
+ `if eng is false then return`,
235
+ `set engv to item 1 of eng`,
236
+ `set opts to (choose from list {"browser", "headless", "shell"} default items {${[
237
+ cur.browser ? '"browser"' : "",
238
+ cur.headless ? '"headless"' : "",
239
+ cur.shell ? '"shell"' : "",
240
+ ]
241
+ .filter(Boolean)
242
+ .join(", ")}} with prompt "Enable which options?" with multiple selections allowed)`,
243
+ `if opts is false then set opts to {}`,
244
+ `set br to "false"`,
245
+ `set hl to "false"`,
246
+ `set sh to "false"`,
247
+ `repeat with o in opts`,
248
+ ` if (o as string) is "browser" then set br to "true"`,
249
+ ` if (o as string) is "headless" then set hl to "true"`,
250
+ ` if (o as string) is "shell" then set sh to "true"`,
251
+ `end repeat`,
252
+ `set json to "{\\"server\\":\\"" & srv & "\\",\\"token\\":\\"" & tok & "\\",\\"device\\":\\"" & dev & "\\",\\"browser\\":" & br & ",\\"engine\\":\\"" & engv & "\\",\\"headless\\":" & hl & ",\\"shell\\":" & sh & "}"`,
253
+ `do shell script "mkdir -p " & quoted form of (do shell script "dirname " & quoted form of cfgPath)`,
254
+ `do shell script "cat > " & quoted form of cfgPath & " <<'TSEOF'\n" & json & "\nTSEOF"`,
255
+ ].join("\n");
256
+ }
257
+ //# sourceMappingURL=settings-window.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings-window.js","sourceRoot":"","sources":["../src/settings-window.ts"],"names":[],"mappings":"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"}
package/dist/tray.js CHANGED
@@ -15,6 +15,7 @@ import fs from "node:fs";
15
15
  import os from "node:os";
16
16
  import path from "node:path";
17
17
  import { fileURLToPath } from "node:url";
18
+ import { openSettingsWindow } from "./settings-window.js";
18
19
  // systray2 is CommonJS. Under NodeNext the default-import interop
19
20
  // mis-resolves the class (sees a namespace with no construct signature),
20
21
  // so load it through createRequire to get the real constructor, and type
@@ -226,10 +227,26 @@ export async function runTray() {
226
227
  click: () => bridge.stop(),
227
228
  };
228
229
  const settingsItem = {
229
- title: "Edit settings (config.json)…",
230
- tooltip: "Open the config file",
230
+ title: "Settings…",
231
+ tooltip: "Edit the bridge settings",
231
232
  enabled: true,
232
- click: () => openPath(ensureConfigFile()),
233
+ click: () => {
234
+ const p = ensureConfigFile();
235
+ const c = loadConfig();
236
+ // Native settings window (WinForms on Windows, AppleScript on
237
+ // macOS). Falls back to opening the raw JSON on Linux / failure.
238
+ const opened = openSettingsWindow(p, {
239
+ server: c.server,
240
+ token: c.token,
241
+ browser: c.browser,
242
+ engine: c.engine,
243
+ headless: c.headless,
244
+ shell: c.shell,
245
+ device: c.device,
246
+ });
247
+ if (!opened)
248
+ openPath(p);
249
+ },
233
250
  };
234
251
  const logItem = {
235
252
  title: "Open log",
package/dist/tray.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tray.js","sourceRoot":"","sources":["../src/tray.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tray.js","sourceRoot":"","sources":["../src/tray.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tianshu-ai/local-bridge",
3
- "version": "0.8.1",
3
+ "version": "0.9.1",
4
4
  "description": "Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {