agent-relay 2.0.11 → 2.0.13
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/bin/relay-pty-darwin-arm64 +0 -0
- package/bin/relay-pty-darwin-x64 +0 -0
- package/bin/relay-pty-linux-x64 +0 -0
- package/dist/dashboard/out/404.html +1 -1
- package/dist/dashboard/out/_next/static/chunks/320-23e5ffe6aa7eb934.js +1 -0
- package/{packages/dashboard/ui-dist/_next/static/css/99c2552394077586.css → dist/dashboard/out/_next/static/css/605dd4e30c91986f.css} +1 -1
- package/dist/dashboard/out/app/onboarding.html +1 -1
- package/dist/dashboard/out/app/onboarding.txt +1 -1
- package/dist/dashboard/out/app.html +1 -1
- package/dist/dashboard/out/app.txt +2 -2
- package/dist/dashboard/out/cloud/link.html +1 -1
- package/dist/dashboard/out/cloud/link.txt +1 -1
- package/dist/dashboard/out/connect-repos.html +1 -1
- package/dist/dashboard/out/connect-repos.txt +1 -1
- package/dist/dashboard/out/history.html +1 -1
- package/dist/dashboard/out/history.txt +1 -1
- package/dist/dashboard/out/index.html +1 -1
- package/dist/dashboard/out/index.txt +2 -2
- package/dist/dashboard/out/login.html +2 -2
- package/dist/dashboard/out/login.txt +1 -1
- package/dist/dashboard/out/metrics.html +1 -1
- package/dist/dashboard/out/metrics.txt +1 -1
- package/dist/dashboard/out/pricing.html +2 -2
- package/dist/dashboard/out/pricing.txt +1 -1
- package/dist/dashboard/out/providers/setup/claude.html +1 -1
- package/dist/dashboard/out/providers/setup/claude.txt +1 -1
- package/dist/dashboard/out/providers/setup/codex.html +1 -1
- package/dist/dashboard/out/providers/setup/codex.txt +1 -1
- package/dist/dashboard/out/providers/setup/cursor.html +1 -1
- package/dist/dashboard/out/providers/setup/cursor.txt +1 -1
- package/dist/dashboard/out/providers.html +1 -1
- package/dist/dashboard/out/providers.txt +1 -1
- package/dist/dashboard/out/signup.html +2 -2
- package/dist/dashboard/out/signup.txt +1 -1
- package/package.json +15 -15
- package/packages/api-types/package.json +1 -1
- package/packages/bridge/dist/spawner.js +25 -71
- package/packages/bridge/package.json +7 -7
- package/packages/cloud/dist/api/cli-pty-runner.js +4 -25
- package/packages/cloud/dist/api/provider-env.d.ts +12 -0
- package/packages/cloud/dist/api/provider-env.js +66 -0
- package/packages/cloud/dist/api/providers.js +12 -2
- package/packages/cloud/package.json +6 -6
- package/packages/config/package.json +2 -2
- package/packages/continuity/package.json +1 -1
- package/packages/daemon/dist/cli-auth.js +4 -25
- package/packages/daemon/package.json +12 -12
- package/packages/dashboard/dist/server.js +32 -0
- package/packages/dashboard/package.json +12 -12
- package/packages/dashboard/ui/react-components/settings/WorkspaceSettingsPanel.tsx +44 -3
- package/packages/dashboard/ui-dist/404.html +1 -1
- package/packages/dashboard/ui-dist/_next/static/chunks/320-23e5ffe6aa7eb934.js +1 -0
- package/{dist/dashboard/out/_next/static/css/99c2552394077586.css → packages/dashboard/ui-dist/_next/static/css/605dd4e30c91986f.css} +1 -1
- package/packages/dashboard/ui-dist/app/onboarding.html +1 -1
- package/packages/dashboard/ui-dist/app/onboarding.txt +1 -1
- package/packages/dashboard/ui-dist/app.html +1 -1
- package/packages/dashboard/ui-dist/app.txt +2 -2
- package/packages/dashboard/ui-dist/cloud/link.html +1 -1
- package/packages/dashboard/ui-dist/cloud/link.txt +1 -1
- package/packages/dashboard/ui-dist/connect-repos.html +1 -1
- package/packages/dashboard/ui-dist/connect-repos.txt +1 -1
- package/packages/dashboard/ui-dist/history.html +1 -1
- package/packages/dashboard/ui-dist/history.txt +1 -1
- package/packages/dashboard/ui-dist/index.html +1 -1
- package/packages/dashboard/ui-dist/index.txt +2 -2
- package/packages/dashboard/ui-dist/login.html +2 -2
- package/packages/dashboard/ui-dist/login.txt +1 -1
- package/packages/dashboard/ui-dist/metrics.html +1 -1
- package/packages/dashboard/ui-dist/metrics.txt +1 -1
- package/packages/dashboard/ui-dist/pricing.html +2 -2
- package/packages/dashboard/ui-dist/pricing.txt +1 -1
- package/packages/dashboard/ui-dist/providers/setup/claude.html +1 -1
- package/packages/dashboard/ui-dist/providers/setup/claude.txt +1 -1
- package/packages/dashboard/ui-dist/providers/setup/codex.html +1 -1
- package/packages/dashboard/ui-dist/providers/setup/codex.txt +1 -1
- package/packages/dashboard/ui-dist/providers/setup/cursor.html +1 -1
- package/packages/dashboard/ui-dist/providers/setup/cursor.txt +1 -1
- package/packages/dashboard/ui-dist/providers.html +1 -1
- package/packages/dashboard/ui-dist/providers.txt +1 -1
- package/packages/dashboard/ui-dist/signup.html +2 -2
- package/packages/dashboard/ui-dist/signup.txt +1 -1
- package/packages/dashboard-server/package.json +12 -12
- package/packages/hooks/package.json +4 -4
- package/packages/mcp/package.json +2 -2
- package/packages/memory/package.json +2 -2
- package/packages/policy/package.json +2 -2
- package/packages/protocol/package.json +1 -1
- package/packages/resiliency/package.json +1 -1
- package/packages/sdk/package.json +2 -2
- package/packages/spawner/package.json +1 -1
- package/packages/state/package.json +1 -1
- package/packages/storage/package.json +2 -2
- package/packages/telemetry/package.json +1 -1
- package/packages/trajectory/package.json +2 -2
- package/packages/user-directory/dist/user-directory.d.ts +17 -0
- package/packages/user-directory/dist/user-directory.js +73 -0
- package/packages/user-directory/package.json +2 -2
- package/packages/utils/dist/index.d.ts +1 -0
- package/packages/utils/dist/index.js +1 -0
- package/packages/utils/dist/relay-pty-path.d.ts +44 -0
- package/packages/utils/dist/relay-pty-path.js +127 -0
- package/packages/utils/package.json +6 -1
- package/packages/wrapper/dist/relay-pty-orchestrator.d.ts +1 -0
- package/packages/wrapper/dist/relay-pty-orchestrator.js +71 -32
- package/packages/wrapper/package.json +6 -6
- package/dist/dashboard/out/_next/static/chunks/320-22ebe7be58cf982a.js +0 -1
- package/packages/dashboard/ui-dist/_next/static/chunks/320-22ebe7be58cf982a.js +0 -1
- /package/dist/dashboard/out/_next/static/{N2nFek-KCN321ZAghmjge → Fa21F5wPUusvLUxj67gGm}/_buildManifest.js +0 -0
- /package/dist/dashboard/out/_next/static/{N2nFek-KCN321ZAghmjge → Fa21F5wPUusvLUxj67gGm}/_ssgManifest.js +0 -0
- /package/packages/dashboard/ui-dist/_next/static/{59SiFCGkIPHj5xnvI-Hkn → Fa21F5wPUusvLUxj67gGm}/_buildManifest.js +0 -0
- /package/packages/dashboard/ui-dist/_next/static/{59SiFCGkIPHj5xnvI-Hkn → Fa21F5wPUusvLUxj67gGm}/_ssgManifest.js +0 -0
- /package/packages/dashboard/ui-dist/_next/static/{N2nFek-KCN321ZAghmjge → coRjSO5QkUdvCiJRCqxfi}/_buildManifest.js +0 -0
- /package/packages/dashboard/ui-dist/_next/static/{N2nFek-KCN321ZAghmjge → coRjSO5QkUdvCiJRCqxfi}/_ssgManifest.js +0 -0
- /package/packages/dashboard/ui-dist/_next/static/{eWYFV8hKU_42BNS8Dj84s → yKnlyfJx-NzAy4kPAGkMr}/_buildManifest.js +0 -0
- /package/packages/dashboard/ui-dist/_next/static/{eWYFV8hKU_42BNS8Dj84s → yKnlyfJx-NzAy4kPAGkMr}/_ssgManifest.js +0 -0
|
@@ -158,6 +158,9 @@ export function WorkspaceSettingsPanel({
|
|
|
158
158
|
google: true, // Default to terminal for Gemini - allows choosing OAuth or API key
|
|
159
159
|
});
|
|
160
160
|
|
|
161
|
+
// Provider disconnection state
|
|
162
|
+
const [disconnectingProvider, setDisconnectingProvider] = useState<string | null>(null);
|
|
163
|
+
|
|
161
164
|
// Repo sync state
|
|
162
165
|
const [syncingRepoId, setSyncingRepoId] = useState<string | null>(null);
|
|
163
166
|
|
|
@@ -231,6 +234,34 @@ export function WorkspaceSettingsPanel({
|
|
|
231
234
|
// ProviderAuthFlow will handle the rest when it mounts
|
|
232
235
|
};
|
|
233
236
|
|
|
237
|
+
// Disconnect a provider
|
|
238
|
+
const handleDisconnectProvider = useCallback(async (provider: AIProvider) => {
|
|
239
|
+
const confirmed = window.confirm(
|
|
240
|
+
`Are you sure you want to disconnect ${provider.displayName}? This will remove the authentication and delete credential files from the workspace.`
|
|
241
|
+
);
|
|
242
|
+
if (!confirmed) return;
|
|
243
|
+
|
|
244
|
+
setDisconnectingProvider(provider.id);
|
|
245
|
+
setProviderError(null);
|
|
246
|
+
|
|
247
|
+
try {
|
|
248
|
+
const result = await cloudApi.disconnectProvider(provider.id, workspaceId);
|
|
249
|
+
if (result.success) {
|
|
250
|
+
setProviderStatus(prev => {
|
|
251
|
+
const updated = { ...prev };
|
|
252
|
+
delete updated[provider.id];
|
|
253
|
+
return updated;
|
|
254
|
+
});
|
|
255
|
+
} else {
|
|
256
|
+
setProviderError(result.error);
|
|
257
|
+
}
|
|
258
|
+
} catch (err) {
|
|
259
|
+
setProviderError(err instanceof Error ? err.message : 'Failed to disconnect provider');
|
|
260
|
+
} finally {
|
|
261
|
+
setDisconnectingProvider(null);
|
|
262
|
+
}
|
|
263
|
+
}, [workspaceId]);
|
|
264
|
+
|
|
234
265
|
const submitApiKey = async (provider: AIProvider) => {
|
|
235
266
|
if (!apiKeyInput.trim()) {
|
|
236
267
|
setProviderError('Please enter an API key');
|
|
@@ -605,9 +636,19 @@ export function WorkspaceSettingsPanel({
|
|
|
605
636
|
</div>
|
|
606
637
|
|
|
607
638
|
{providerStatus[provider.id] ? (
|
|
608
|
-
<div className="flex items-center gap-
|
|
609
|
-
<div className="
|
|
610
|
-
|
|
639
|
+
<div className="flex items-center gap-3">
|
|
640
|
+
<div className="flex items-center gap-2 px-4 py-2 bg-success/15 rounded-full border border-success/30">
|
|
641
|
+
<div className="w-2 h-2 rounded-full bg-success animate-pulse" />
|
|
642
|
+
<span className="text-sm font-medium text-success">Connected</span>
|
|
643
|
+
</div>
|
|
644
|
+
<button
|
|
645
|
+
onClick={() => handleDisconnectProvider(provider)}
|
|
646
|
+
disabled={disconnectingProvider === provider.id}
|
|
647
|
+
className="px-3 py-2 text-xs font-medium text-error/80 hover:text-error hover:bg-error/10 rounded-lg border border-transparent hover:border-error/30 transition-all disabled:opacity-50 disabled:cursor-not-allowed"
|
|
648
|
+
title={`Disconnect ${provider.displayName}`}
|
|
649
|
+
>
|
|
650
|
+
{disconnectingProvider === provider.id ? 'Disconnecting...' : 'Disconnect'}
|
|
651
|
+
</button>
|
|
611
652
|
</div>
|
|
612
653
|
) : null}
|
|
613
654
|
</div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/605dd4e30c91986f.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-1cdd8ed57114d5e1.js"/><script src="/_next/static/chunks/fd9d1056-609918ca7b6280bb.js" async=""></script><script src="/_next/static/chunks/117-c8afed19e821a35d.js" async=""></script><script src="/_next/static/chunks/main-app-fdbeb09028f57c9f.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>Agent Relay Dashboard</title><meta name="description" content="Fleet control dashboard for Agent Relay"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/_next/static/chunks/webpack-1cdd8ed57114d5e1.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/605dd4e30c91986f.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[2846,[],\"\"]\n4:I[4707,[],\"\"]\n5:I[6423,[],\"\"]\nb:I[1060,[],\"\"]\n6:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n7:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n8:{\"display\":\"inline-block\"}\n9:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nc:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"Fa21F5wPUusvLUxj67gGm\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"_not-found\"],\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null],null],null]},[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/605dd4e30c91986f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$6\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$7\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$8\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$9\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],\"$La\"],\"globalErrorComponent\":\"$b\",\"missingSlots\":\"$Wc\"}]\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Agent Relay Dashboard\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Fleet control dashboard for Agent Relay\"}]]\n3:null\n"])</script></body></html>
|