@tianshu-ai/local-bridge 0.9.1 → 0.9.2

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.
@@ -34,7 +34,10 @@ export function openSettingsWindow(configPath, current) {
34
34
  // ─── Windows: PowerShell + WinForms ─────────────────────────────────
35
35
  function openWindowsForm(configPath, cur) {
36
36
  const scriptPath = path.join(os.tmpdir(), `tsbridge-settings-${process.pid}.ps1`);
37
- const ps = renderWindowsPs1(configPath, cur);
37
+ // Diagnostics: the PS script logs here (and we redirect its stdio too),
38
+ // so "clicked Settings, nothing happened" always leaves a trace.
39
+ const settingsLog = path.join(path.dirname(configPath), "settings.log");
40
+ const ps = renderWindowsPs1(configPath, cur, settingsLog);
38
41
  try {
39
42
  fs.writeFileSync(scriptPath, ps, "utf8");
40
43
  }
@@ -42,18 +45,25 @@ function openWindowsForm(configPath, cur) {
42
45
  return false;
43
46
  }
44
47
  try {
45
- // -STA is required for WinForms; -WindowStyle Hidden hides the PS
46
- // console so only the form shows.
48
+ // -STA is required for WinForms. We do NOT pass -WindowStyle Hidden:
49
+ // it can suppress the form itself, and windowsHide:true on the spawn
50
+ // already keeps the PS console from flashing. The form is shown
51
+ // TopMost + Activated (see the script) so it comes to the front.
52
+ let out = "ignore";
53
+ try {
54
+ out = fs.openSync(settingsLog, "a");
55
+ }
56
+ catch {
57
+ out = "ignore";
58
+ }
47
59
  const child = spawn("powershell.exe", [
48
60
  "-NoProfile",
49
61
  "-ExecutionPolicy",
50
62
  "Bypass",
51
63
  "-STA",
52
- "-WindowStyle",
53
- "Hidden",
54
64
  "-File",
55
65
  scriptPath,
56
- ], { stdio: "ignore", detached: true, windowsHide: true });
66
+ ], { stdio: ["ignore", out, out], detached: true, windowsHide: true });
57
67
  // Swallow spawn errors (e.g. powershell missing) so they don't crash
58
68
  // the tray process; the caller falls back to opening the raw file.
59
69
  child.on("error", () => { });
@@ -68,12 +78,19 @@ function openWindowsForm(configPath, cur) {
68
78
  function psq(s) {
69
79
  return `'${String(s).replace(/'/g, "''")}'`;
70
80
  }
71
- function renderWindowsPs1(configPath, cur) {
81
+ function renderWindowsPs1(configPath, cur, logPathArg) {
72
82
  // 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).
83
+ // and on OK writes the known fields to config.json.
75
84
  const cfgPathLit = psq(configPath);
85
+ const logLit = psq(logPathArg);
86
+ // Whole body wrapped in try/catch → any WinForms/assembly error is
87
+ // written to settings.log instead of vanishing silently.
76
88
  return `
89
+ $ErrorActionPreference = 'Stop'
90
+ $logPath = ${logLit}
91
+ function Log($m) { try { Add-Content -Path $logPath -Value ("[{0}] {1}" -f (Get-Date -Format o), $m) } catch {} }
92
+ Log 'settings window: starting'
93
+ try {
77
94
  Add-Type -AssemblyName System.Windows.Forms
78
95
  Add-Type -AssemblyName System.Drawing
79
96
 
@@ -86,6 +103,12 @@ $form.StartPosition = 'CenterScreen'
86
103
  $form.FormBorderStyle = 'FixedDialog'
87
104
  $form.MaximizeBox = $false
88
105
  $form.MinimizeBox = $false
106
+ # Force the window to the front — a detached PowerShell child doesn't own
107
+ # the foreground, so without this the form can open behind other windows
108
+ # and look like "nothing happened".
109
+ $form.TopMost = $true
110
+ $form.ShowInTaskbar = $true
111
+ $form.Add_Shown({ $form.Activate(); $form.BringToFront() })
89
112
 
90
113
  function New-Label($text, $y) {
91
114
  $l = New-Object System.Windows.Forms.Label
@@ -172,24 +195,31 @@ $cancel.DialogResult = [System.Windows.Forms.DialogResult]::Cancel
172
195
  $form.Controls.Add($cancel)
173
196
  $form.CancelButton = $cancel
174
197
 
198
+ Log 'settings window: showing dialog'
175
199
  $result = $form.ShowDialog()
176
200
  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 = @{} }
201
+ # Build the config as an ordered dictionary. We deliberately do NOT use
202
+ # ConvertFrom-Json -AsHashtable (that switch is PowerShell 6+; Windows
203
+ # ships 5.1). We just write the known fields — the tray only reads
204
+ # these, so a full round-trip merge isn't needed.
205
+ $cfg = [ordered]@{
206
+ server = $server.Text
207
+ token = $token.Text
208
+ device = $device.Text
209
+ browser = [bool]$browser.Checked
210
+ engine = [string]$engine.SelectedItem
211
+ headless = [bool]$headless.Checked
212
+ shell = [bool]$shell.Checked
181
213
  }
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
214
  $dir = Split-Path -Parent $configPath
191
215
  if (-not (Test-Path $dir)) { New-Item -ItemType Directory -Path $dir -Force | Out-Null }
192
216
  ($cfg | ConvertTo-Json -Depth 10) | Set-Content -Path $configPath -Encoding UTF8
217
+ Log 'settings window: saved config'
218
+ } else {
219
+ Log 'settings window: cancelled'
220
+ }
221
+ } catch {
222
+ Log ("settings window ERROR: " + $_.Exception.Message)
193
223
  }
194
224
  `;
195
225
  }
@@ -1 +1 @@
1
- {"version":3,"file":"settings-window.js","sourceRoot":"","sources":["../src/settings-window.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings-window.js","sourceRoot":"","sources":["../src/settings-window.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.9.1",
3
+ "version": "0.9.2",
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": {