@serendb/serendesktop 0.1.6 → 0.1.8
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.
- package/dist/server.js +28 -2
- package/package.json +1 -1
- package/public/assets/{auto-connect-CPOXAhyI.js → auto-connect-C3gCq2JD.js} +1 -1
- package/public/assets/{index-CUq9sqde.js → index-CkwrW8Um.js} +72 -68
- package/public/assets/index-DWrjjWiX.css +10 -0
- package/public/index.html +2 -2
- package/public/assets/index-B9Nm4Pas.css +0 -10
package/dist/server.js
CHANGED
|
@@ -216,10 +216,34 @@ function isAuthError(message) {
|
|
|
216
216
|
}
|
|
217
217
|
function authErrorMessage(agentType) {
|
|
218
218
|
if (agentType === "claude-code") {
|
|
219
|
-
return "Claude Code
|
|
219
|
+
return "Claude Code login required. A terminal window has been opened \u2014 please complete the login there, then try starting the agent again.";
|
|
220
220
|
}
|
|
221
221
|
return "Agent authentication required. Please log in via the agent CLI first.";
|
|
222
222
|
}
|
|
223
|
+
function launchClaudeLogin() {
|
|
224
|
+
const os2 = platform();
|
|
225
|
+
try {
|
|
226
|
+
if (os2 === "darwin") {
|
|
227
|
+
spawn("osascript", [
|
|
228
|
+
"-e",
|
|
229
|
+
'tell application "Terminal" to do script "claude login"',
|
|
230
|
+
"-e",
|
|
231
|
+
'tell application "Terminal" to activate'
|
|
232
|
+
], { detached: true, stdio: "ignore" }).unref();
|
|
233
|
+
} else if (os2 === "win32") {
|
|
234
|
+
spawn("cmd", ["/c", "start", "cmd", "/c", "claude login"], {
|
|
235
|
+
detached: true,
|
|
236
|
+
stdio: "ignore"
|
|
237
|
+
}).unref();
|
|
238
|
+
} else {
|
|
239
|
+
spawn("x-terminal-emulator", ["-e", "claude", "login"], {
|
|
240
|
+
detached: true,
|
|
241
|
+
stdio: "ignore"
|
|
242
|
+
}).unref();
|
|
243
|
+
}
|
|
244
|
+
} catch {
|
|
245
|
+
}
|
|
246
|
+
}
|
|
223
247
|
var sessions = /* @__PURE__ */ new Map();
|
|
224
248
|
function createClient(sessionId) {
|
|
225
249
|
return {
|
|
@@ -475,7 +499,9 @@ async function acpSpawn(params) {
|
|
|
475
499
|
} catch (err) {
|
|
476
500
|
session.status = "error";
|
|
477
501
|
const rawMessage = err instanceof Error ? err.message : JSON.stringify(err);
|
|
478
|
-
const
|
|
502
|
+
const authDetected = isAuthError(rawMessage);
|
|
503
|
+
if (authDetected) launchClaudeLogin();
|
|
504
|
+
const errorMsg = authDetected ? authErrorMessage(agentType) : `Failed to initialize agent: ${rawMessage}`;
|
|
479
505
|
emit("acp://error", {
|
|
480
506
|
sessionId,
|
|
481
507
|
error: errorMsg
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{m as o,i as c,a,l as i,g as m}from"./index-
|
|
1
|
+
import{m as o,i as c,a,l as i,g as m}from"./index-CkwrW8Um.js";import"./monaco-editor-CjinG6ix.js";async function f(){await i();const t=m();if(t.length===0)return[];const r=t.filter(c);return r.length===0?[]:(await Promise.allSettled(r.map(async e=>{try{return await a.connect(e.name,e.command,e.args,e.env),{serverName:e.name,success:!0}}catch(n){return{serverName:e.name,success:!1,error:n instanceof Error?n.message:String(n)}}}))).map((e,n)=>e.status==="fulfilled"?e.value:{serverName:r[n].name,success:!1,error:e.reason instanceof Error?e.reason.message:String(e.reason)})}async function g(t){const r=o().servers.filter(e=>t.includes(e.name)&&e.enabled).filter(c);return r.length===0?[]:(await Promise.allSettled(r.map(async e=>{try{return await a.connect(e.name,e.command,e.args,e.env),{serverName:e.name,success:!0}}catch(n){return{serverName:e.name,success:!1,error:n instanceof Error?n.message:String(n)}}}))).map((e,n)=>e.status==="fulfilled"?e.value:{serverName:r[n].name,success:!1,error:e.reason instanceof Error?e.reason.message:String(e.reason)})}async function d(){const r=o().servers.filter(e=>e.enabled).filter(c).filter(e=>{const n=a.getConnection(e.name);return!n||n.status!=="connected"});return r.length===0?[]:(await Promise.allSettled(r.map(async e=>{try{return await a.connect(e.name,e.command,e.args,e.env),{serverName:e.name,success:!0}}catch(n){return{serverName:e.name,success:!1,error:n instanceof Error?n.message:String(n)}}}))).map((e,n)=>e.status==="fulfilled"?e.value:{serverName:r[n].name,success:!1,error:e.reason instanceof Error?e.reason.message:String(e.reason)})}async function S(){const r=Array.from(a.connections().values()).filter(s=>s.status==="connected");await Promise.allSettled(r.map(s=>a.disconnect(s.serverName)))}export{d as connectAllEnabledServers,S as disconnectAllServers,f as initMcpAutoConnect,g as retryFailedConnections};
|