@burdenoff/microfe-vibecontrols 2026.524.3 → 2026.524.4

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.
@@ -40,7 +40,7 @@ function m({ tunnelUrl: u, agentApiKey: d, profile: m, workspacePath: h, mode: g
40
40
  try {
41
41
  x("checking");
42
42
  let e = await l(u, f(m, "/status"), d);
43
- if (e.status === 404) throw Error(y("vibecontrols.agents.editor.notInstalled", "Code-server isn't available on this agent. Install the code-server plugin (Plugins tab) to enable Open in Browser."));
43
+ if (e.status === 404) throw Error(y("vibecontrols.agents.editor.notInstalled", "Code-server isn't available on this agent. Install the code-server plugin (Plugins tab) to enable Open Editor."));
44
44
  if (!e.ok) throw Error(`Status check failed: ${e.status}`);
45
45
  let t = await e.json();
46
46
  if (!t.installed && !t.installing) {
@@ -86,7 +86,7 @@ function m({ tunnelUrl: u, agentApiKey: d, profile: m, workspacePath: h, mode: g
86
86
  case "starting": return y("vibecontrols.agents.editor.starting", "Starting...");
87
87
  case "ready": return y("vibecontrols.agents.editor.opened", "Opened");
88
88
  case "error": return y("vibecontrols.agents.editor.retry", "Retry");
89
- default: return y("vibecontrols.agents.editor.openInBrowser", "Open in Browser");
89
+ default: return y("vibecontrols.agents.editor.openEditor", "Open Editor");
90
90
  }
91
91
  })(), D = (() => {
92
92
  switch (b) {
@@ -1 +1 @@
1
- {"version":3,"file":"OpenInBrowserEditorButton.js","names":[],"sources":["../../../src/components/agents/OpenInBrowserEditorButton.tsx"],"sourcesContent":["import { useState, useCallback } from 'react';\nimport { Code, Loader2, AlertCircle, Check } from 'lucide-react';\nimport { useTr } from '../../shared/hooks/useTr';\n\n// ── Types ──────────────────────────────────────────────────────────────\n\ntype EditorState = 'idle' | 'checking' | 'installing' | 'starting' | 'ready' | 'error';\n\nexport interface OpenInBrowserEditorButtonProps {\n /** Agent tunnel URL (e.g. \"https://xxx.trycloudflare.com\") */\n tunnelUrl: string | null;\n /** Agent API key for authentication */\n agentApiKey: string | null;\n /**\n * Canonical CLI profile name on the remote agent. Maps to the\n * `/api/profiles/<profile>/code-server/...` URL prefix.\n */\n profile: string;\n /** Directory to open as workspace root. Defaults to agent home if not set. */\n workspacePath?: string;\n /** How to open — new browser tab or call back with URL for iframe embedding */\n mode?: 'newtab' | 'iframe';\n /** Called with the ready URL when mode is 'iframe' */\n onIframeUrl?: (url: string) => void;\n /** Additional CSS class names */\n className?: string;\n}\n\n// ── Helpers ────────────────────────────────────────────────────────────\n\nasync function agentFetch(\n tunnelUrl: string,\n path: string,\n apiKey: string,\n options?: RequestInit\n): Promise<Response> {\n const base = tunnelUrl.replace(/\\/$/, '');\n // Only advertise a JSON body when we actually send one. The agent's\n // `/api/*` delegation consumes the request body once; a POST that carries a\n // Content-Type but an (already-read) body fails on the agent with\n // \"ReadableStream has already been used\". No body → no Content-Type → safe.\n const hasBody = options?.body != null;\n return fetch(`${base}${path}`, {\n ...options,\n headers: {\n ...(hasBody ? { 'Content-Type': 'application/json' } : {}),\n 'x-agent-api-key': apiKey,\n ...options?.headers,\n },\n });\n}\n\ninterface CodeServerStatus {\n installed: boolean;\n installing: boolean;\n running: boolean;\n port?: number;\n error?: string;\n}\n\nconst POLL_INTERVAL_MS = 2000;\nconst POLL_TIMEOUT_MS = 120_000; // 2 minutes max\n\n/**\n * Build a profile-scoped agent endpoint path. The agent moved every\n * data-plane endpoint under `/api/profiles/<profile>/…` and now returns\n * 410 Gone for bare `/api/code-server/*` paths — hitting the old paths\n * surfaced in the browser as a misleading CORS error (the 410 response\n * omits Access-Control-Allow-Origin).\n */\nfunction codeServerPath(profile: string, sub: string): string {\n return `/api/profiles/${encodeURIComponent(profile)}/code-server${sub}`;\n}\n\n/**\n * Poll until a condition is met on the status response.\n */\nasync function pollUntil(\n tunnelUrl: string,\n apiKey: string,\n profile: string,\n predicate: (status: CodeServerStatus) => boolean,\n errorCheck: (status: CodeServerStatus) => string | null\n): Promise<CodeServerStatus> {\n const deadline = Date.now() + POLL_TIMEOUT_MS;\n\n while (Date.now() < deadline) {\n const res = await agentFetch(tunnelUrl, codeServerPath(profile, '/status'), apiKey);\n if (!res.ok) throw new Error(`Status check failed: ${res.status}`);\n const status: CodeServerStatus = await res.json();\n\n const err = errorCheck(status);\n if (err) throw new Error(err);\n\n if (predicate(status)) return status;\n\n await new Promise((r) => setTimeout(r, POLL_INTERVAL_MS));\n }\n\n throw new Error('Operation timed out');\n}\n\n// ── Component ──────────────────────────────────────────────────────────\n\nexport function OpenInBrowserEditorButton({\n tunnelUrl,\n agentApiKey,\n profile,\n workspacePath,\n mode = 'newtab',\n onIframeUrl,\n className,\n}: OpenInBrowserEditorButtonProps) {\n const tr = useTr();\n const [state, setState] = useState<EditorState>('idle');\n const [errorMsg, setErrorMsg] = useState<string | null>(null);\n\n const handleClick = useCallback(async () => {\n if (!tunnelUrl || !agentApiKey) {\n setErrorMsg('Agent tunnel or API key not available');\n setState('error');\n return;\n }\n\n setErrorMsg(null);\n\n try {\n // Step 1: Check status\n setState('checking');\n const res = await agentFetch(tunnelUrl, codeServerPath(profile, '/status'), agentApiKey);\n if (res.status === 404) {\n throw new Error(\n tr(\n 'vibecontrols.agents.editor.notInstalled',\n \"Code-server isn't available on this agent. Install the code-server plugin (Plugins tab) to enable Open in Browser.\"\n )\n );\n }\n if (!res.ok) throw new Error(`Status check failed: ${res.status}`);\n const status: CodeServerStatus = await res.json();\n\n // Step 2: Install if needed\n if (!status.installed && !status.installing) {\n setState('installing');\n const installRes = await agentFetch(\n tunnelUrl,\n codeServerPath(profile, '/install'),\n agentApiKey,\n {\n method: 'POST',\n }\n );\n if (!installRes.ok) throw new Error(`Install failed: ${installRes.status}`);\n\n // Poll until installed\n await pollUntil(\n tunnelUrl,\n agentApiKey,\n profile,\n (s) => s.installed,\n (s) => s.error || null\n );\n } else if (status.installing) {\n setState('installing');\n await pollUntil(\n tunnelUrl,\n agentApiKey,\n profile,\n (s) => s.installed,\n (s) => s.error || null\n );\n }\n\n // Step 3: Start if not running\n if (!status.running) {\n setState('starting');\n const startRes = await agentFetch(\n tunnelUrl,\n codeServerPath(profile, '/start'),\n agentApiKey,\n {\n method: 'POST',\n ...(workspacePath ? { body: JSON.stringify({ workspacePath }) } : {}),\n }\n );\n if (!startRes.ok) {\n const err = await startRes.json().catch(() => ({}));\n throw new Error((err as { error?: string }).error || `Start failed: ${startRes.status}`);\n }\n\n // Brief wait for code-server to be ready\n await new Promise((r) => setTimeout(r, 1000));\n } else if (workspacePath && status.running) {\n // Restart with new workspace path if different\n setState('starting');\n // workspacePath is guaranteed truthy by the `else if` guard above.\n await agentFetch(tunnelUrl, codeServerPath(profile, '/restart'), agentApiKey, {\n method: 'POST',\n body: JSON.stringify({ workspacePath }),\n });\n await new Promise((r) => setTimeout(r, 1000));\n }\n\n // Step 4: Open the editor\n setState('ready');\n const base = tunnelUrl.replace(/\\/$/, '');\n const editorUrl = `${base}/code-server/?apiKey=${encodeURIComponent(agentApiKey)}`;\n\n if (mode === 'iframe' && onIframeUrl) {\n onIframeUrl(editorUrl);\n } else {\n window.open(editorUrl, '_blank');\n }\n\n // Reset after a moment\n setTimeout(() => setState('idle'), 2000);\n } catch (err) {\n setErrorMsg(err instanceof Error ? err.message : 'Failed to open editor');\n setState('error');\n }\n }, [tunnelUrl, agentApiKey, profile, workspacePath, mode, onIframeUrl, tr]);\n\n const isDisabled =\n !tunnelUrl || !agentApiKey || (state !== 'idle' && state !== 'error' && state !== 'ready');\n\n const label = (() => {\n switch (state) {\n case 'checking':\n return tr('vibecontrols.agents.editor.checking', 'Checking...');\n case 'installing':\n return tr('vibecontrols.agents.editor.installing', 'Installing...');\n case 'starting':\n return tr('vibecontrols.agents.editor.starting', 'Starting...');\n case 'ready':\n return tr('vibecontrols.agents.editor.opened', 'Opened');\n case 'error':\n return tr('vibecontrols.agents.editor.retry', 'Retry');\n default:\n return tr('vibecontrols.agents.editor.openInBrowser', 'Open in Browser');\n }\n })();\n\n const Icon = (() => {\n switch (state) {\n case 'checking':\n case 'installing':\n case 'starting':\n return Loader2;\n case 'ready':\n return Check;\n case 'error':\n return AlertCircle;\n default:\n return Code;\n }\n })();\n\n const isSpinning = state === 'checking' || state === 'installing' || state === 'starting';\n\n return (\n <div className=\"relative inline-flex\">\n <button\n onClick={handleClick}\n disabled={isDisabled}\n className={`flex items-center gap-1.5 px-2.5 py-1.5 sm:px-3 sm:py-2 text-xs sm:text-sm rounded-md transition-colors disabled:opacity-50 ${\n state === 'error'\n ? 'bg-status-error-bg text-status-error-text hover:opacity-80'\n : state === 'ready'\n ? 'bg-status-success-bg text-status-success-text'\n : 'bg-bg-sunken text-text-primary hover:bg-bg-sunken/80'\n } ${className || ''}`}\n title={errorMsg || 'Open VS Code in browser via code-server'}\n >\n <Icon className={`w-3.5 h-3.5 sm:w-4 sm:h-4 ${isSpinning ? 'animate-spin' : ''}`} />\n <span className=\"hidden sm:inline\">{label}</span>\n </button>\n\n {/* Error tooltip */}\n {state === 'error' && errorMsg && (\n <div className=\"absolute top-full left-0 mt-1 z-50 bg-bg-surface border border-border-default rounded-md shadow-lg p-2 text-xs text-status-error-text max-w-[250px]\">\n {errorMsg}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;AA8BA,eAAe,EACb,GACA,GACA,GACA,GACmB;CACnB,IAAM,IAAO,EAAU,QAAQ,OAAO,GAAG,EAKnC,IAAU,GAAS,QAAQ;AACjC,QAAO,MAAM,GAAG,IAAO,KAAQ;EAC7B,GAAG;EACH,SAAS;GACP,GAAI,IAAU,EAAE,gBAAgB,oBAAoB,GAAG,EAAE;GACzD,mBAAmB;GACnB,GAAG,GAAS;GACb;EACF,CAAC;;AAWJ,IAAM,IAAmB,KACnB,IAAkB;AASxB,SAAS,EAAe,GAAiB,GAAqB;AAC5D,QAAO,iBAAiB,mBAAmB,EAAQ,CAAC,cAAc;;AAMpE,eAAe,EACb,GACA,GACA,GACA,GACA,GAC2B;CAC3B,IAAM,IAAW,KAAK,KAAK,GAAG;AAE9B,QAAO,KAAK,KAAK,GAAG,IAAU;EAC5B,IAAM,IAAM,MAAM,EAAW,GAAW,EAAe,GAAS,UAAU,EAAE,EAAO;AACnF,MAAI,CAAC,EAAI,GAAI,OAAU,MAAM,wBAAwB,EAAI,SAAS;EAClE,IAAM,IAA2B,MAAM,EAAI,MAAM,EAE3C,IAAM,EAAW,EAAO;AAC9B,MAAI,EAAK,OAAU,MAAM,EAAI;AAE7B,MAAI,EAAU,EAAO,CAAE,QAAO;AAE9B,QAAM,IAAI,SAAS,MAAM,WAAW,GAAG,EAAiB,CAAC;;AAG3D,OAAU,MAAM,sBAAsB;;AAKxC,SAAgB,EAA0B,EACxC,cACA,gBACA,YACA,kBACA,UAAO,UACP,gBACA,gBACiC;CACjC,IAAM,IAAK,GAAO,EACZ,CAAC,GAAO,KAAY,EAAsB,OAAO,EACjD,CAAC,GAAU,KAAe,EAAwB,KAAK,EAEvD,IAAc,EAAY,YAAY;AAC1C,MAAI,CAAC,KAAa,CAAC,GAAa;AAE9B,GADA,EAAY,wCAAwC,EACpD,EAAS,QAAQ;AACjB;;AAGF,IAAY,KAAK;AAEjB,MAAI;AAEF,KAAS,WAAW;GACpB,IAAM,IAAM,MAAM,EAAW,GAAW,EAAe,GAAS,UAAU,EAAE,EAAY;AACxF,OAAI,EAAI,WAAW,IACjB,OAAU,MACR,EACE,2CACA,qHACD,CACF;AAEH,OAAI,CAAC,EAAI,GAAI,OAAU,MAAM,wBAAwB,EAAI,SAAS;GAClE,IAAM,IAA2B,MAAM,EAAI,MAAM;AAGjD,OAAI,CAAC,EAAO,aAAa,CAAC,EAAO,YAAY;AAC3C,MAAS,aAAa;IACtB,IAAM,IAAa,MAAM,EACvB,GACA,EAAe,GAAS,WAAW,EACnC,GACA,EACE,QAAQ,QACT,CACF;AACD,QAAI,CAAC,EAAW,GAAI,OAAU,MAAM,mBAAmB,EAAW,SAAS;AAG3E,UAAM,EACJ,GACA,GACA,IACC,MAAM,EAAE,YACR,MAAM,EAAE,SAAS,KACnB;UACQ,EAAO,eAChB,EAAS,aAAa,EACtB,MAAM,EACJ,GACA,GACA,IACC,MAAM,EAAE,YACR,MAAM,EAAE,SAAS,KACnB;AAIH,OAAK,EAAO,SAkBD,KAAiB,EAAO,YAEjC,EAAS,WAAW,EAEpB,MAAM,EAAW,GAAW,EAAe,GAAS,WAAW,EAAE,GAAa;IAC5E,QAAQ;IACR,MAAM,KAAK,UAAU,EAAE,kBAAe,CAAC;IACxC,CAAC,EACF,MAAM,IAAI,SAAS,MAAM,WAAW,GAAG,IAAK,CAAC;QA1B1B;AACnB,MAAS,WAAW;IACpB,IAAM,IAAW,MAAM,EACrB,GACA,EAAe,GAAS,SAAS,EACjC,GACA;KACE,QAAQ;KACR,GAAI,IAAgB,EAAE,MAAM,KAAK,UAAU,EAAE,kBAAe,CAAC,EAAE,GAAG,EAAE;KACrE,CACF;AACD,QAAI,CAAC,EAAS,IAAI;KAChB,IAAM,IAAM,MAAM,EAAS,MAAM,CAAC,aAAa,EAAE,EAAE;AACnD,WAAU,MAAO,EAA2B,SAAS,iBAAiB,EAAS,SAAS;;AAI1F,UAAM,IAAI,SAAS,MAAM,WAAW,GAAG,IAAK,CAAC;;AAa/C,KAAS,QAAQ;GAEjB,IAAM,IAAY,GADL,EAAU,QAAQ,OAAO,GAAG,CACf,uBAAuB,mBAAmB,EAAY;AAShF,GAPI,MAAS,YAAY,IACvB,EAAY,EAAU,GAEtB,OAAO,KAAK,GAAW,SAAS,EAIlC,iBAAiB,EAAS,OAAO,EAAE,IAAK;WACjC,GAAK;AAEZ,GADA,EAAY,aAAe,QAAQ,EAAI,UAAU,wBAAwB,EACzE,EAAS,QAAQ;;IAElB;EAAC;EAAW;EAAa;EAAS;EAAe;EAAM;EAAa;EAAG,CAAC,EAErE,IACJ,CAAC,KAAa,CAAC,KAAgB,MAAU,UAAU,MAAU,WAAW,MAAU,SAE9E,WAAe;AACnB,UAAQ,GAAR;GACE,KAAK,WACH,QAAO,EAAG,uCAAuC,cAAc;GACjE,KAAK,aACH,QAAO,EAAG,yCAAyC,gBAAgB;GACrE,KAAK,WACH,QAAO,EAAG,uCAAuC,cAAc;GACjE,KAAK,QACH,QAAO,EAAG,qCAAqC,SAAS;GAC1D,KAAK,QACH,QAAO,EAAG,oCAAoC,QAAQ;GACxD,QACE,QAAO,EAAG,4CAA4C,kBAAkB;;KAE1E,EAEE,WAAc;AAClB,UAAQ,GAAR;GACE,KAAK;GACL,KAAK;GACL,KAAK,WACH,QAAO;GACT,KAAK,QACH,QAAO;GACT,KAAK,QACH,QAAO;GACT,QACE,QAAO;;KAET,EAEE,IAAa,MAAU,cAAc,MAAU,gBAAgB,MAAU;AAE/E,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,UAAD;GACE,SAAS;GACT,UAAU;GACV,WAAW,+HACT,MAAU,UACN,+DACA,MAAU,UACR,kDACA,uDACP,GAAG,KAAa;GACjB,OAAO,KAAY;aAVrB,CAYE,kBAAC,GAAD,EAAM,WAAW,6BAA6B,IAAa,iBAAiB,MAAQ,CAAA,EACpF,kBAAC,QAAD;IAAM,WAAU;cAAoB;IAAa,CAAA,CAC1C;MAGR,MAAU,WAAW,KACpB,kBAAC,OAAD;GAAK,WAAU;aACZ;GACG,CAAA,CAEJ"}
1
+ {"version":3,"file":"OpenInBrowserEditorButton.js","names":[],"sources":["../../../src/components/agents/OpenInBrowserEditorButton.tsx"],"sourcesContent":["import { useState, useCallback } from 'react';\nimport { Code, Loader2, AlertCircle, Check } from 'lucide-react';\nimport { useTr } from '../../shared/hooks/useTr';\n\n// ── Types ──────────────────────────────────────────────────────────────\n\ntype EditorState = 'idle' | 'checking' | 'installing' | 'starting' | 'ready' | 'error';\n\nexport interface OpenInBrowserEditorButtonProps {\n /** Agent tunnel URL (e.g. \"https://xxx.trycloudflare.com\") */\n tunnelUrl: string | null;\n /** Agent API key for authentication */\n agentApiKey: string | null;\n /**\n * Canonical CLI profile name on the remote agent. Maps to the\n * `/api/profiles/<profile>/code-server/...` URL prefix.\n */\n profile: string;\n /** Directory to open as workspace root. Defaults to agent home if not set. */\n workspacePath?: string;\n /** How to open — new browser tab or call back with URL for iframe embedding */\n mode?: 'newtab' | 'iframe';\n /** Called with the ready URL when mode is 'iframe' */\n onIframeUrl?: (url: string) => void;\n /** Additional CSS class names */\n className?: string;\n}\n\n// ── Helpers ────────────────────────────────────────────────────────────\n\nasync function agentFetch(\n tunnelUrl: string,\n path: string,\n apiKey: string,\n options?: RequestInit\n): Promise<Response> {\n const base = tunnelUrl.replace(/\\/$/, '');\n // Only advertise a JSON body when we actually send one. The agent's\n // `/api/*` delegation consumes the request body once; a POST that carries a\n // Content-Type but an (already-read) body fails on the agent with\n // \"ReadableStream has already been used\". No body → no Content-Type → safe.\n const hasBody = options?.body != null;\n return fetch(`${base}${path}`, {\n ...options,\n headers: {\n ...(hasBody ? { 'Content-Type': 'application/json' } : {}),\n 'x-agent-api-key': apiKey,\n ...options?.headers,\n },\n });\n}\n\ninterface CodeServerStatus {\n installed: boolean;\n installing: boolean;\n running: boolean;\n port?: number;\n error?: string;\n}\n\nconst POLL_INTERVAL_MS = 2000;\nconst POLL_TIMEOUT_MS = 120_000; // 2 minutes max\n\n/**\n * Build a profile-scoped agent endpoint path. The agent moved every\n * data-plane endpoint under `/api/profiles/<profile>/…` and now returns\n * 410 Gone for bare `/api/code-server/*` paths — hitting the old paths\n * surfaced in the browser as a misleading CORS error (the 410 response\n * omits Access-Control-Allow-Origin).\n */\nfunction codeServerPath(profile: string, sub: string): string {\n return `/api/profiles/${encodeURIComponent(profile)}/code-server${sub}`;\n}\n\n/**\n * Poll until a condition is met on the status response.\n */\nasync function pollUntil(\n tunnelUrl: string,\n apiKey: string,\n profile: string,\n predicate: (status: CodeServerStatus) => boolean,\n errorCheck: (status: CodeServerStatus) => string | null\n): Promise<CodeServerStatus> {\n const deadline = Date.now() + POLL_TIMEOUT_MS;\n\n while (Date.now() < deadline) {\n const res = await agentFetch(tunnelUrl, codeServerPath(profile, '/status'), apiKey);\n if (!res.ok) throw new Error(`Status check failed: ${res.status}`);\n const status: CodeServerStatus = await res.json();\n\n const err = errorCheck(status);\n if (err) throw new Error(err);\n\n if (predicate(status)) return status;\n\n await new Promise((r) => setTimeout(r, POLL_INTERVAL_MS));\n }\n\n throw new Error('Operation timed out');\n}\n\n// ── Component ──────────────────────────────────────────────────────────\n\nexport function OpenInBrowserEditorButton({\n tunnelUrl,\n agentApiKey,\n profile,\n workspacePath,\n mode = 'newtab',\n onIframeUrl,\n className,\n}: OpenInBrowserEditorButtonProps) {\n const tr = useTr();\n const [state, setState] = useState<EditorState>('idle');\n const [errorMsg, setErrorMsg] = useState<string | null>(null);\n\n const handleClick = useCallback(async () => {\n if (!tunnelUrl || !agentApiKey) {\n setErrorMsg('Agent tunnel or API key not available');\n setState('error');\n return;\n }\n\n setErrorMsg(null);\n\n try {\n // Step 1: Check status\n setState('checking');\n const res = await agentFetch(tunnelUrl, codeServerPath(profile, '/status'), agentApiKey);\n if (res.status === 404) {\n throw new Error(\n tr(\n 'vibecontrols.agents.editor.notInstalled',\n \"Code-server isn't available on this agent. Install the code-server plugin (Plugins tab) to enable Open Editor.\"\n )\n );\n }\n if (!res.ok) throw new Error(`Status check failed: ${res.status}`);\n const status: CodeServerStatus = await res.json();\n\n // Step 2: Install if needed\n if (!status.installed && !status.installing) {\n setState('installing');\n const installRes = await agentFetch(\n tunnelUrl,\n codeServerPath(profile, '/install'),\n agentApiKey,\n {\n method: 'POST',\n }\n );\n if (!installRes.ok) throw new Error(`Install failed: ${installRes.status}`);\n\n // Poll until installed\n await pollUntil(\n tunnelUrl,\n agentApiKey,\n profile,\n (s) => s.installed,\n (s) => s.error || null\n );\n } else if (status.installing) {\n setState('installing');\n await pollUntil(\n tunnelUrl,\n agentApiKey,\n profile,\n (s) => s.installed,\n (s) => s.error || null\n );\n }\n\n // Step 3: Start if not running\n if (!status.running) {\n setState('starting');\n const startRes = await agentFetch(\n tunnelUrl,\n codeServerPath(profile, '/start'),\n agentApiKey,\n {\n method: 'POST',\n ...(workspacePath ? { body: JSON.stringify({ workspacePath }) } : {}),\n }\n );\n if (!startRes.ok) {\n const err = await startRes.json().catch(() => ({}));\n throw new Error((err as { error?: string }).error || `Start failed: ${startRes.status}`);\n }\n\n // Brief wait for code-server to be ready\n await new Promise((r) => setTimeout(r, 1000));\n } else if (workspacePath && status.running) {\n // Restart with new workspace path if different\n setState('starting');\n // workspacePath is guaranteed truthy by the `else if` guard above.\n await agentFetch(tunnelUrl, codeServerPath(profile, '/restart'), agentApiKey, {\n method: 'POST',\n body: JSON.stringify({ workspacePath }),\n });\n await new Promise((r) => setTimeout(r, 1000));\n }\n\n // Step 4: Open the editor\n setState('ready');\n const base = tunnelUrl.replace(/\\/$/, '');\n const editorUrl = `${base}/code-server/?apiKey=${encodeURIComponent(agentApiKey)}`;\n\n if (mode === 'iframe' && onIframeUrl) {\n onIframeUrl(editorUrl);\n } else {\n window.open(editorUrl, '_blank');\n }\n\n // Reset after a moment\n setTimeout(() => setState('idle'), 2000);\n } catch (err) {\n setErrorMsg(err instanceof Error ? err.message : 'Failed to open editor');\n setState('error');\n }\n }, [tunnelUrl, agentApiKey, profile, workspacePath, mode, onIframeUrl, tr]);\n\n const isDisabled =\n !tunnelUrl || !agentApiKey || (state !== 'idle' && state !== 'error' && state !== 'ready');\n\n const label = (() => {\n switch (state) {\n case 'checking':\n return tr('vibecontrols.agents.editor.checking', 'Checking...');\n case 'installing':\n return tr('vibecontrols.agents.editor.installing', 'Installing...');\n case 'starting':\n return tr('vibecontrols.agents.editor.starting', 'Starting...');\n case 'ready':\n return tr('vibecontrols.agents.editor.opened', 'Opened');\n case 'error':\n return tr('vibecontrols.agents.editor.retry', 'Retry');\n default:\n return tr('vibecontrols.agents.editor.openEditor', 'Open Editor');\n }\n })();\n\n const Icon = (() => {\n switch (state) {\n case 'checking':\n case 'installing':\n case 'starting':\n return Loader2;\n case 'ready':\n return Check;\n case 'error':\n return AlertCircle;\n default:\n return Code;\n }\n })();\n\n const isSpinning = state === 'checking' || state === 'installing' || state === 'starting';\n\n return (\n <div className=\"relative inline-flex\">\n <button\n onClick={handleClick}\n disabled={isDisabled}\n className={`flex items-center gap-1.5 px-2.5 py-1.5 sm:px-3 sm:py-2 text-xs sm:text-sm rounded-md transition-colors disabled:opacity-50 ${\n state === 'error'\n ? 'bg-status-error-bg text-status-error-text hover:opacity-80'\n : state === 'ready'\n ? 'bg-status-success-bg text-status-success-text'\n : 'bg-bg-sunken text-text-primary hover:bg-bg-sunken/80'\n } ${className || ''}`}\n title={errorMsg || 'Open VS Code in browser via code-server'}\n >\n <Icon className={`w-3.5 h-3.5 sm:w-4 sm:h-4 ${isSpinning ? 'animate-spin' : ''}`} />\n <span className=\"hidden sm:inline\">{label}</span>\n </button>\n\n {/* Error tooltip */}\n {state === 'error' && errorMsg && (\n <div className=\"absolute top-full left-0 mt-1 z-50 bg-bg-surface border border-border-default rounded-md shadow-lg p-2 text-xs text-status-error-text max-w-[250px]\">\n {errorMsg}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1351,7 +1351,8 @@ var e = {
1351
1351
  editor: {
1352
1352
  checking: "Checking...",
1353
1353
  installing: "Installing...",
1354
- openInBrowser: "Open in Browser",
1354
+ notInstalled: "Code-server isn't available on this agent. Install the code-server plugin (Plugins tab) to enable Open Editor.",
1355
+ openEditor: "Open Editor",
1355
1356
  opened: "Opened",
1356
1357
  retry: "Retry",
1357
1358
  starting: "Starting..."
@@ -1 +1 @@
1
- {"version":3,"file":"en.js","names":[],"sources":["../../src/translations/en.ts"],"sourcesContent":["/**\n * English fallback translations for microfe-vibecontrols.\n *\n * Keys use dot-notation (e.g., 'vibecontrols.actions.card.never') which the\n * I18nProvider resolves against this nested object structure.\n *\n * This file is the source of truth for all translation keys used in this MFE.\n * Register it with the host shell's AppShellProvider.fallbackTranslations\n * to enable offline/fallback support.\n */\nexport const enTranslations = {\n actions: {\n searchPlaceholder: 'Search actions...',\n },\n agentDetails: {\n agentApiKey: 'Agent API Key',\n agentApiKeyPlaceholder: 'sk-agent-...',\n agentNameRequired: 'Agent name is required',\n apiAuthentication: 'API Authentication',\n appId: 'App ID',\n authExemptAnd: 'and',\n authExemptPrefix: 'The',\n authHeaderRecommended: 'Header (recommended)',\n authQueryParameter: 'URL query parameter',\n backToAgents: 'Back to Agents',\n backup: 'Backup',\n capabilities: 'Capabilities',\n clientId: 'Client ID',\n clientSecretOneTimeTitle: 'Client Secret (one-time display)',\n configuration: 'Configuration',\n configurationUpdateFailed: 'Failed to update agent configuration',\n configurationUpdated: 'Agent configuration updated successfully',\n configure: 'Configure',\n copyApiKey: 'Copy API key',\n copyClientId: 'Copy Client ID',\n failedLoad: 'Failed to load agent',\n failedSetupGatewayAuth: 'Failed to set up gateway auth',\n failedUnlinkApp: 'Failed to unlink app',\n gatewayAuthTitle: 'Gateway Auth (OAuth2)',\n hideApiKey: 'Hide API key',\n hoursAgo: '{{count}}h ago',\n installFailed: 'Install failed',\n linkedToOauthApp: 'Linked to OAuth App',\n loadingDetails: 'Loading agent details...',\n metadataJsonRequired: 'Metadata must be valid JSON',\n metadataLabel: 'Metadata (JSON)',\n minutesAgo: '{{count}}m ago',\n noCapabilitiesConfigured: 'No capabilities configured',\n noHostnameConfigured: 'No hostname configured',\n noOauthAppLinked: 'No OAuth App Linked',\n noSessionsOnAgent: 'No sessions on this agent',\n noVibesUsingAgent: 'No vibes using this agent',\n notFound: 'Agent not found',\n notFoundDescriptionPrefix: 'No agent with ID',\n notFoundDescriptionSuffix: 'exists',\n pluginInstallFailed: 'Failed to install plugin',\n pluginRemoveFailed: 'Failed to remove plugin',\n plugins: 'Plugins',\n refreshPlugins: 'Refresh plugins',\n removeAgentConfirm: 'Are you sure you want to remove agent \"{{name}}\"?',\n removeFailed: 'Remove failed',\n removePluginConfirm: 'Remove plugin {{packageName}}?',\n saveConfiguration: 'Save Configuration',\n saving: 'Saving...',\n security: 'Security',\n settingUp: 'Setting up...',\n setupGatewayAuth: 'Setup Gateway Auth',\n showApiKey: 'Show API key',\n start: 'Start',\n tabsAriaLabel: 'Agent tabs',\n tunnelUrl: 'Tunnel URL',\n unlinkApp: 'Unlink App',\n version: 'Version',\n viewInDeveloperPortal: 'View in Developer Portal',\n },\n agentGraph: {\n countSummary: '{{targets}} targets, {{connections}} connections',\n failedLoad: 'Failed to load agent graph',\n failedRefresh: 'Failed to refresh agent graph',\n loading: 'Loading agent graph...',\n loadingScope: 'Applying selected scope...',\n noScopeResults: 'No results for this scope',\n noTargetsConnected: 'No targets connected',\n refreshing: 'Refreshing graph...',\n scopeAgentPrefix: 'Agent: {{name}}',\n scopeAll: 'All targets & agents',\n scopeLabel: 'Scope:',\n scopeTargetPrefix: 'Target: {{name}}',\n },\n agentsLanding: {\n accessDenied: 'Access Denied',\n loadingPermissions: 'Loading permissions...',\n tabAgents: 'Agents',\n tabGraph: 'Agent Graph',\n tabTargets: 'Targets',\n },\n agentsPage: {\n accessDeniedTitle: 'Access Denied',\n addAgent: 'Add Agent',\n addNewAgent: 'Add New Agent',\n adding: 'Adding...',\n agentApiKey: 'Agent API Key',\n agentApiKeyLabel: 'Agent API Key',\n agentApiKeyPlaceholder: 'sk-agent-...',\n apiAccess: 'API Access',\n apiKeyHint: 'Run',\n apiTunnelUrl: 'API / Tunnel URL',\n architecture: 'Architecture',\n back: 'Back',\n cancel: 'Cancel',\n close: 'Close',\n copy: 'Copy',\n create: 'Create',\n createFirstTarget: 'Create first target',\n createNewTarget: 'Create a new target',\n descriptionOnline: '{{active}} of {{total}} agents online',\n deselect: 'Deselect',\n deselectAll: 'Deselect All',\n detectedAgentInfo: 'Detected Agent Info',\n editTunnelTitle: 'Edit Tunnel',\n emptyAdjustSearch: 'Try adjusting your search or filters',\n emptyNoAgentsConfigured: 'No agents configured',\n emptyNoAgentsFound: 'No agents found',\n failedLoad: 'Failed to load agents',\n filterPlatform: 'Platform',\n filterStatus: 'Status',\n filterTag: 'Tag',\n gridViewTitle: 'Grid view',\n healthCheck: 'Health Check',\n inlineTargetFailed: 'Failed to create target. Please try again.',\n installInstructions: 'Agent Install Instructions',\n installStep1: '1. Install the agent CLI',\n installStep2: '2. Start the agent',\n installStep3: '3. Get the API key',\n installStep4: '4. Start the tunnel',\n justNow: 'Just now',\n listViewTitle: 'List view',\n loadingAgents: 'Loading agents...',\n loadingPermissions: 'Loading permissions...',\n loadingTargets: 'Loading targets...',\n name: 'Name',\n never: 'Never',\n nextValidate: 'Next: Validate',\n platform: 'Platform',\n platformAll: 'All Platforms',\n platformLinux: 'Linux',\n platformMac: 'macOS',\n platformWindows: 'Windows',\n refreshTitle: 'Refresh agents',\n refreshing: '(refreshing...)',\n remove: 'Remove',\n retryValidation: 'Retry validation',\n save: 'Save',\n saving: 'Saving...',\n searchPlaceholder: 'Search agents...',\n searchTargets: 'Search targets...',\n selectAll: 'Select All',\n selectTarget: 'Select a target...',\n selectedCount: '{{count}} agents selected',\n setupGuide: 'Setup guide',\n showingResults: 'Showing {{filtered}} of {{total}} agents',\n startAgent: 'Start Agent',\n statusActive: 'Active',\n statusAll: 'All Statuses',\n statusOffline: 'Offline',\n statusStopped: 'Stopped',\n stopAgent: 'Stop Agent',\n target: 'Target',\n targetName: 'Target name',\n title: 'Agents',\n tryDifferentAgent: 'Try Different Agent',\n tunnelUrlLabel: 'Tunnel URL',\n },\n ai: {\n config: 'Config',\n contexts: 'Contexts',\n goToAgents: 'Go to Agents',\n noActiveAgent: 'No active agent available',\n overview: 'Overview',\n playground: 'Playground',\n prompts: 'Prompts',\n stats: 'Stats',\n tasks: 'Tasks',\n templates: 'Templates',\n },\n analytics: {\n architecture: 'Architecture',\n entityTabs: 'Analytics sections',\n platform: 'Platform',\n },\n audit: {\n action: 'Action',\n actionArchive: 'Archive',\n actionCreate: 'Create',\n actionDelete: 'Delete',\n actionExecute: 'Execute',\n actionExport: 'Export',\n actionRestore: 'Restore',\n actionRevoke: 'Revoke',\n actionShare: 'Share',\n actionUpdate: 'Update',\n actions: 'Actions',\n actor: 'Actor',\n allActions: 'All Actions',\n allResources: 'All Resources',\n allStatuses: 'All Statuses',\n commandsOnly: 'Commands only',\n deleteAuditLog: 'Delete audit log',\n deleteFailed: 'Failed to delete audit log. Please try again.',\n export: 'Export',\n exportCsv: 'Export as CSV',\n exportJson: 'Export as JSON',\n exportOptions: 'Export options',\n exporting: 'Exporting…',\n loadingLogs: 'Loading audit logs...',\n name: 'Name',\n next: 'Next',\n noLogs: 'No audit logs',\n of: 'of',\n page: 'Page',\n previous: 'Previous',\n resource: 'Resource',\n resourceAgent: 'Agent',\n resourceAgentConnection: 'Agent Connection',\n resourceAiToolEvent: 'AI Tool Event',\n resourceAuditLog: 'Audit Log',\n resourceCalendarTask: 'Calendar Task',\n resourceConfiguration: 'Configuration',\n resourceDeckButton: 'Deck Button',\n resourceNote: 'Note',\n resourceSession: 'Session',\n resourceSessionShare: 'Session Share',\n resourceShareLink: 'Share Link',\n resourceTarget: 'Target',\n resourceUiSession: 'UI Session',\n resourceVibe: 'Vibe',\n resourceVibeDeck: 'Vibe Deck',\n resourceWebhook: 'Webhook',\n searchPlaceholder: 'Search audit logs...',\n showing: 'Showing',\n status: 'Status',\n statusDenied: 'Denied',\n statusError: 'Error',\n statusFailure: 'Failure',\n statusSuccess: 'Success',\n time: 'Time',\n viewAuditLog: 'View details',\n },\n calendar: {\n description: 'Schedule and manage tasks across your agents',\n failedLoad: 'Failed to load calendar data',\n retry: 'Retry',\n },\n catalog: {\n addComponent: 'Add Component',\n addComponentTitle: 'Add Component to Catalog',\n allVisibility: 'All Visibility',\n backToCatalogs: 'Back to Catalogs',\n componentAdded: 'Component added to catalog',\n components: 'Components',\n componentsInCatalog: 'components in this catalog',\n createCatalog: 'Create Catalog',\n createdSuccess: 'Catalog created successfully',\n dependencyGraph: 'Dependency Graph',\n description: '{{total}} catalogs',\n descriptionLabel: 'Description',\n descriptionPlaceholder: 'Describe this catalog...',\n docs: 'Docs',\n downloadSBOM: 'Download JSON',\n editCatalog: 'Edit Catalog',\n editDetails: 'Edit Details',\n emptyAdjustSearch: 'Try adjusting your search or filters',\n emptyCreate: 'Create your first catalog to organize components',\n emptyNoCatalogs: 'No catalogs yet',\n emptyNoResults: 'No catalogs found',\n failedLoad: 'Failed to load catalog',\n failedSave: 'Failed to save catalog',\n fillRequired: 'Please fill in all required fields',\n filterVisibility: 'Visibility',\n graphEdges: 'Dependencies',\n graphEdgesList: 'Dependencies',\n graphError: 'Failed to load graph',\n graphNodes: 'Components',\n graphNodesList: 'Components',\n loading: 'Loading catalogs...',\n loadingDetails: 'Loading catalog details...',\n loadingGraph: 'Loading dependency graph...',\n loadingSBOM: 'Generating SBOM...',\n metadata: 'Metadata',\n nameLabel: 'Name *',\n namePlaceholder: 'My Catalog',\n nameRequired: 'Name is required',\n noAvailableComponents: 'No available components to add',\n noComponents: 'No components',\n noDescription: 'No description',\n noGraphNodes: 'No dependency data',\n noSBOMEntries: 'No SBOM entries',\n notFound: 'Catalog not found',\n ownerLabel: 'Owner',\n ownerName: 'Owner',\n ownerNameLabel: 'Owner',\n ownerPlaceholder: 'team-name',\n sbom: 'SBOM',\n sbomEntries: 'Entries',\n sbomError: 'Failed to load SBOM',\n sbomFormat: 'Format',\n sbomGenerated: 'Generated',\n sbomLicense: 'License',\n sbomName: 'Name',\n sbomSupplier: 'Supplier',\n sbomType: 'Type',\n sbomVersion: 'Version',\n scorecard: 'Scorecard',\n searchComponents: 'Search components...',\n searchPlaceholder: 'Search catalogs...',\n showingResults: 'Showing {{filtered}} of {{total}} catalogs',\n tabsAriaLabel: 'Catalog tabs',\n tags: 'Tags',\n tagsLabel: 'Tags (comma-separated)',\n tagsPlaceholder: 'frontend, microservice, api',\n title: 'Catalogs',\n updatedSuccess: 'Catalog updated successfully',\n vibes: 'Vibes',\n visibility: 'Visibility',\n visibilityInternal: 'Internal',\n visibilityLabel: 'Visibility',\n visibilityPrivate: 'Private',\n visibilityPublic: 'Public',\n },\n catalogDocs: {\n backToCatalog: 'Back to Catalog',\n failedLoad: 'Failed to load docs',\n failedLoadDocs: 'Failed to load documentation',\n goToCatalog: 'Go to Catalog Details',\n loading: 'Loading documentation...',\n },\n common: {\n accessDeniedTitle: 'Access Denied',\n archive: 'Archive',\n cancel: 'Cancel',\n close: 'Close',\n created: 'Created',\n delete: 'Delete',\n dismiss: 'Dismiss',\n edit: 'Edit',\n error: 'Error',\n exitFullscreen: 'Exit fullscreen',\n fullscreen: 'Fullscreen',\n hide: 'Hide',\n loading: 'Loading...',\n refresh: 'Refresh',\n refreshing: '(refreshing...)',\n retry: 'Retry',\n save: 'Save',\n saved: 'Saved!',\n saving: 'Saving...',\n settings: 'Settings',\n show: 'Show',\n unset: 'Unset',\n updated: 'Updated',\n },\n component: {\n allLifecycles: 'All Lifecycles',\n allTypes: 'All Types',\n backToComponents: 'Back to Components',\n catalogs: 'Catalogs',\n catalogsContaining: 'catalogs containing this component',\n createComponent: 'Create Component',\n createdSuccess: 'Component created successfully',\n description: '{{total}} components',\n descriptionLabel: 'Description',\n descriptionPlaceholder: 'Describe this component...',\n docs: 'Docs',\n editComponent: 'Edit Component',\n editDetails: 'Edit Details',\n emptyAdjustSearch: 'Try adjusting your search or filters',\n emptyNoComponents: 'No components yet',\n emptyNoResults: 'No components found',\n failedLoad: 'Failed to load component',\n failedPublish: 'Failed to publish',\n failedSave: 'Failed to save component',\n fillRequired: 'Please fill in all required fields',\n filterLifecycle: 'Lifecycle',\n filterType: 'Type',\n frameworkLabel: 'Framework',\n frameworkPlaceholder: 'React',\n languageLabel: 'Language',\n languagePlaceholder: 'TypeScript',\n lifecycle: 'Lifecycle',\n lifecycleDeprecated: 'Deprecated',\n lifecycleExperimental: 'Experimental',\n lifecycleLabel: 'Lifecycle',\n lifecycleProduction: 'Production',\n loading: 'Loading components...',\n loadingDetails: 'Loading component details...',\n metadata: 'Metadata',\n nameLabel: 'Name *',\n namePlaceholder: 'my-service',\n nameRequired: 'Name is required',\n noCatalogs: 'Not in any catalogs',\n noDescription: 'No description',\n notFound: 'Component not found',\n ownerLabel: 'Owner',\n ownerNameLabel: 'Owner',\n ownerPlaceholder: 'team-name',\n publishAsTemplate: 'Publish as Template',\n publishedAsTemplate: 'Published as template successfully',\n repository: 'Repository',\n scorecard: 'Scorecard',\n searchPlaceholder: 'Search components...',\n showingResults: 'Showing {{filtered}} of {{total}} components',\n tabsAriaLabel: 'Component tabs',\n tags: 'Tags',\n tagsLabel: 'Tags (comma-separated)',\n tagsPlaceholder: 'backend, api, graphql',\n template: 'Template',\n title: 'Components',\n type: 'Type',\n typeApi: 'API',\n typeCustom: 'Custom',\n typeDatabase: 'Database',\n typeFrontend: 'Frontend',\n typeInfrastructure: 'Infrastructure',\n typeLabel: 'Type',\n typeLibrary: 'Library',\n typeMobile: 'Mobile',\n typeService: 'Service',\n updatedSuccess: 'Component updated successfully',\n version: 'Version',\n versionLabel: 'Version',\n versionPlaceholder: '1.0.0',\n viewTemplate: 'View Template',\n },\n componentDocs: {\n backToComponent: 'Back to Component',\n failedLoad: 'Failed to load docs',\n failedLoadDocs: 'Failed to load documentation',\n goToComponent: 'Go to Component Details',\n loading: 'Loading documentation...',\n },\n connectionPermissionsDialog: {\n cancel: 'Cancel',\n noPermissions: 'No permissions configured',\n noScopes: 'No scopes configured',\n permissions: 'Permissions',\n save: 'Save Permissions',\n scopes: 'Scopes',\n title: 'Connection Permissions',\n },\n gettingStarted: {\n addAgent: 'Add Agent',\n cliQuickRef: 'CLI Quick Reference',\n cliTab: 'CLI Reference',\n cmdAiPrompts: 'List prompt templates',\n cmdAutostartInstall: 'Auto-start on reboot',\n cmdAutostartStatus: 'Check autostart status',\n cmdConfig: 'Show all config',\n cmdHealth: 'Health check',\n cmdInfo: 'Version & system info',\n cmdKey: 'Show API key',\n cmdLogs: 'Follow agent logs',\n cmdPluginCreate: 'Scaffold a new plugin',\n cmdPluginList: 'List installed plugins',\n cmdSessionCreate: 'Create a session',\n cmdSessionList: 'List sessions',\n cmdStatus: 'Show agent status',\n cmdStop: 'Stop the agent',\n cmdTunnelAgent: 'Show tunnel status',\n cmdTunnelList: 'List all tunnels',\n cmdTunnelStart: 'Expose port 8080',\n cmdUrl: 'Show active URL (tunnel or local)',\n installAgent: 'Install the Agent',\n installTab: 'Install',\n nextStep1Prefix: 'Start the agent:',\n nextStep2And: 'and',\n nextStep2Prefix: 'Grab your tunnel URL and API key:',\n nextStep3Prefix: 'In this UI, go to',\n nextSteps: 'Next steps',\n npmLatest: '@vibecontrols/agent (latest)',\n npmPackage: 'npm package',\n pinVersion: 'Pin a specific agent version (optional)',\n targetsAndAgents: 'Targets & Agents',\n title: 'Getting Started',\n },\n gitops: {\n addProvider: 'Add Provider',\n ci: 'CI Pipelines',\n gitUI: 'Git UI',\n loadingProviders: 'Loading GitOps providers...',\n provider: 'Provider',\n refresh: 'Refresh',\n repoStats: 'Repo Stats',\n startUngit: 'Start Ungit',\n startingUngit: 'Starting...',\n ungitNote: 'Visual git client powered by Ungit plugin on the agent.',\n },\n health: {\n active: 'active',\n agentHealth: 'Agent Health',\n agents: 'Agents',\n allSystemsOperational: 'All Systems Operational',\n autoRefresh: 'Auto-refresh',\n cpu: 'CPU',\n healthy: 'healthy',\n hoursAgo: 'h ago',\n justNow: 'Just now',\n lastChecked: 'Last checked',\n lastHeartbeat: 'Last Heartbeat',\n lastUpdated: 'Last updated',\n majorSystemOutage: 'Major System Outage',\n memory: 'Memory',\n minutesAgo: 'm ago',\n never: 'Never',\n noAgentsRegistered: 'No agents registered',\n noSessions: 'No sessions',\n noVibes: 'No vibes',\n partialSystemOutage: 'Partial System Outage',\n running: 'running',\n sessionStatus: 'Session Status',\n sessions: 'Sessions',\n statusUnknown: 'Status Unknown',\n systemOffline: 'System Offline',\n systemStatus: 'System',\n targets: 'Targets',\n tunnel: 'Tunnel',\n vibeStatus: 'Vibe Status',\n vibes: 'Vibes',\n },\n logs: {\n agentLabel: 'Agent:',\n clear: 'Clear',\n connectToAgent: 'Connect to an agent to view logs',\n description: 'Gateway-proxied log streaming from your agents',\n disconnected: 'Disconnected',\n entries: 'entries',\n export: 'Export',\n fetchFailed: 'Failed to fetch logs',\n filterLogs: 'Filter logs...',\n levelFilter: 'Log level filter',\n live: 'Live',\n loadingAgents: 'Loading agents...',\n noAgentSelected: 'Select an agent to view logs',\n noAgentsAvailable: 'No agents with tunnel access available',\n pause: 'Pause',\n resume: 'Resume',\n selectAgent: 'Select an agent...',\n waitingForEntries: 'Waiting for log entries...',\n },\n nav: {\n actions: 'Actions',\n agentGraph: 'Agent Graph',\n agents: 'Agents',\n ai: 'AI',\n aiBookmarks: 'Bookmarks',\n analytics: 'Analytics',\n gitops: 'GitOps',\n health: 'Health',\n logs: 'Logs',\n overview: 'Overview',\n sessions: 'Session',\n settings: 'Settings',\n targets: 'Targets',\n vibeAudit: 'Audit',\n vibeCalendar: 'Calendar',\n vibeDeck: 'Vibe Deck',\n vibes: 'Vibes',\n webhooks: 'Webhooks',\n },\n noteDetails: {\n accessDenied: 'Access Denied',\n attachedTo: 'Attached to',\n back: 'Back',\n created: 'Created',\n details: 'Details',\n failedLoad: 'Failed to load note',\n loading: 'Loading note...',\n loadingPermissions: 'Loading permissions...',\n noTags: 'No tags assigned.',\n notFound: 'Note not found',\n noteId: 'Note ID',\n openVibe: 'Open Vibe',\n pinned: 'Pinned',\n tags: 'Tags',\n updated: 'Updated',\n vibe: 'Vibe',\n workspaceNote: 'Workspace note',\n },\n overviewPage: {\n activity: {\n agentOnline: 'Agent Online',\n agentOnlineDescription: '{{name}} is active',\n sessionRunning: 'Session Running',\n sessionStatus: 'Session {{status}}',\n },\n empty: {\n addAgent: 'Add agent',\n addVibe: 'Add a vibe',\n installCliHint: 'Install the agent CLI to get started',\n noActiveAgents: 'No active agents',\n noActiveVibes: 'No active vibes',\n noRecentActivity: 'No recent activity',\n noRunningSessions: 'No running sessions',\n setupGuide: 'Setup guide',\n startSession: 'Start a session',\n viewAuditLog: 'View audit log',\n },\n loadingPermissions: 'Loading permissions...',\n refresh: 'Refresh',\n sections: {\n activeAgents: 'Active Agents',\n activeVibes: 'Active Vibes',\n recentActivity: 'Recent Activity',\n runningSessions: 'Running Sessions',\n viewAll: 'View all',\n },\n stats: {\n active: '{{count}} active',\n agents: 'Agents',\n connected: '{{count}} connected',\n notes: 'Notes',\n pinned: '{{count}} pinned',\n running: '{{count}} running',\n sessions: 'Sessions',\n targets: 'Targets',\n vibes: 'Vibes',\n },\n time: {\n daysAgo: '{{count}}d ago',\n hoursAgo: '{{count}}h ago',\n justNow: 'Just now',\n minutesAgo: '{{count}}m ago',\n unknown: 'Unknown',\n },\n title: 'VibeControls Overview',\n },\n scorecard: {\n addMetric: 'Add Metric',\n empty: 'No scorecard metrics',\n failedLoad: 'Failed to load scorecard',\n loading: 'Loading scorecard...',\n overallScore: 'Overall Score',\n },\n sessionDetails: {\n accessDenied: 'Access Denied',\n agentLabel: 'Agent',\n agentNoApiUrl: 'Agent has no API URL configured',\n autoStart: 'Auto Start',\n backToSessions: 'Back to Sessions',\n cancel: 'Cancel',\n collapseTerminal: 'Collapse terminal',\n commandLabel: 'Command',\n commandPlaceholder: 'bun run dev',\n commandTitle: 'Command',\n created: 'Created',\n editCommandTitle: 'Edit command and working directory',\n envVars: 'Environment Variables',\n exitCode: 'Exit Code',\n expandTerminal: 'Expand terminal',\n failedLoad: 'Failed to load session',\n failedStartTerminal: 'Failed to start terminal',\n hideTerminal: 'Hide terminal',\n lastOutput: 'Last Output',\n loadingPermissions: 'Loading permissions...',\n loadingSession: 'Loading session details...',\n maximize: 'Maximize',\n no: 'No',\n noAgentAssigned: 'No agent assigned',\n noCommandSpecified: 'No command specified',\n noEnvVars: 'No environment variables configured',\n noOutput: 'No output captured',\n noTerminalRunning: 'No terminal running',\n notFound: 'Session not found',\n notFoundDescPrefix: 'No session with ID',\n notFoundDescSuffix: 'exists',\n openInNewTab: 'Open terminal in new tab',\n openInNewTabShort: 'Open in new tab',\n openTerminal: 'Open Terminal',\n opening: 'Opening...',\n pidLabel: 'PID',\n relatedVibe: 'Related Vibe',\n restartCommand: 'Restart Command',\n restoreSize: 'Restore size',\n retry: 'Retry',\n runCommand: 'Run Command',\n runningOnAgent: 'Running on Agent',\n save: 'Save',\n showTerminal: 'Show terminal',\n startingTerminal: 'Starting terminal for',\n statusLabel: 'Status',\n stopCommand: 'Stop Command',\n tags: 'Tags',\n terminal: 'Terminal',\n timeline: 'Timeline',\n typeLabel: 'Type',\n updated: 'Updated',\n workingDirDefault: 'not set — defaults to OS home',\n workingDirLabel: 'Working Directory',\n workingDirPlaceholder: '/home/user/myproject',\n workingDirectory: 'Working Directory',\n yes: 'Yes',\n },\n sessions: {\n active: 'Active',\n agentRequired: 'Please select an agent for this session.',\n autoStartWithVibe: 'Auto-start with vibe',\n checkHealth: 'Check session health',\n command: 'Command',\n commandPlaceholder: 'bun run dev',\n confirmRemovePrefix: 'Are you sure you want to remove',\n confirmRemoveSuffix: 'This cannot be undone.',\n createSession: 'Create Session',\n createdSuccess: 'Session created successfully',\n creating: 'Creating...',\n deselect: 'Deselect',\n deselectAll: 'Deselect All',\n emptyAdjustSearch: 'Try adjusting your search or filters',\n emptyConfigured: 'No sessions configured',\n emptyFound: 'No sessions found',\n errorPrefix: 'Error',\n failed: 'failed',\n failedCreate: 'Failed to create session',\n failedLoad: 'Failed to load sessions',\n failedRemove: 'Failed to remove sessions',\n failedRestart: 'Failed to restart sessions',\n failedRestartTerminal: 'Failed to restart terminal',\n failedStartTerminal: 'Failed to start terminal',\n failedStop: 'Failed to stop sessions',\n filterAgent: 'Agent',\n filterAgentAll: 'All Agents',\n filterStatus: 'Status',\n filterType: 'Type',\n filterVibe: 'Vibe',\n filterVibeAll: 'All Vibes',\n filterVibeNone: 'No Vibe',\n gridViewTitle: 'Grid view',\n listViewTitle: 'List view',\n loading: 'Loading sessions...',\n name: 'Name',\n namePlaceholder: 'dev-server',\n nameRequired: 'Name is required',\n newSession: 'New Session',\n noVibe: 'No vibe',\n of: 'of',\n offline: 'Offline',\n pageDescription: '{{running}} of {{total}} sessions running',\n refreshTitle: 'Refresh sessions',\n refreshing: 'refreshing...',\n remove: 'Remove',\n removed: 'Removed',\n requiredPermission: 'Required permission: session:list',\n restart: 'Restart',\n restarted: 'Restarted',\n running: 'Running',\n runningSummary: '{{running}} running / {{total}} total',\n searchAgents: 'Search agents...',\n searchPlaceholder: 'Search sessions...',\n searchTypes: 'Search types...',\n searchVibes: 'Search vibes...',\n selectAgent: 'Select an agent',\n selectAll: 'Select All',\n selectType: 'Select type',\n selected: 'selected',\n showing: 'Showing',\n starting: 'Starting',\n statusAll: 'All Statuses',\n stop: 'Stop',\n stopped: 'Stopped',\n stoppedState: 'Stopped',\n terminalStopped: 'Terminal stopped',\n terminalViewTitle: 'Terminal view',\n typeAll: 'All Types',\n typeCustom: 'Custom',\n typeScript: 'Script',\n typeSsh: 'SSH',\n typeTerminal: 'Terminal',\n typeTmux: 'TMUX',\n typeTmuxLower: 'tmux',\n typeWezTerm: 'WezTerm',\n typeZellij: 'Zellij',\n },\n settings: {\n activeSessions: 'Active Sessions',\n addSecret: 'Add secret',\n advanced: 'Advanced',\n advancedDesc: 'Logging, telemetry, secrets',\n advancedSettings: 'Advanced Settings',\n agentDefaults: 'Agent Defaults',\n agentOfflineAlerts: 'Agent Offline Alerts',\n agentStateActive: 'Active',\n agentStateOffline: 'Offline',\n autoGitSync: 'Auto Git Sync',\n autoReconnect: 'Auto-reconnect',\n autoStartSessions: 'Auto-start Sessions',\n autoUpdate: 'Auto Update',\n avatarUrl: 'Avatar URL',\n avatarUrlDesc: 'URL to your avatar image',\n bio: 'Bio',\n bioPlaceholder: 'Tell us about yourself...',\n codeFont: 'Code Font',\n codeFontSize: 'Code Font Size',\n configuredSecrets: 'Configured Secrets',\n defaultAgent: 'Default Agent',\n defaultAgentPlaceholder: 'Select default agent...',\n defaultEnvVars: 'Default Environment Variables',\n defaultEnvVarsPlaceholder: 'KEY=value&#10;ANOTHER_KEY=value',\n defaultSessionType: 'Default Session Type',\n defaultVibeType: 'Default Vibe Type',\n deleteSecret: 'Delete secret',\n digestFrequency: 'Digest Frequency',\n digestFrequencyDaily: 'Daily',\n digestFrequencyNone: 'None',\n digestFrequencyWeekly: 'Weekly',\n displayName: 'Display Name',\n displayNamePlaceholder: 'Your display name',\n emailDigest: 'Email Digest',\n emailDigestDescription: 'Receive summary emails of activity',\n generalDefaults: 'General Defaults',\n heartbeatInterval: 'Heartbeat Interval (seconds)',\n language: 'Language',\n loading: 'Loading settings...',\n logLevel: 'Log Level',\n logLevelDebug: 'Debug',\n logLevelInfo: 'Info',\n logLevelWarning: 'Warning',\n maxSessionsPerAgent: 'Max Sessions Per Agent',\n mfa: 'Multi-Factor Authentication',\n noSecretsConfigured: 'No secrets configured',\n notifications: 'Notifications',\n notificationsDesc: 'Alert preferences',\n preferences: 'Preferences',\n profile: 'Profile',\n refreshSecrets: 'Refresh secrets',\n reset: 'Reset',\n resetFailed: 'Failed to reset settings.',\n resetSuccess: 'Settings reset to defaults.',\n resetToDefaults: 'Reset to defaults',\n saveFailed: 'Failed to save settings.',\n saveSecret: 'Save Secret',\n saveSuccess: 'Settings saved successfully.',\n secretValuePlaceholder: 'Secret value',\n sections: 'Settings sections',\n security: 'Security',\n sessionErrorAlerts: 'Session Error Alerts',\n sessionTimeout: 'Session Timeout',\n sessionTypeScript: 'Script',\n sessionTypeSsh: 'SSH',\n sessionTypeTerminal: 'Terminal',\n sessionTypeTmux: 'Tmux',\n sessionTypeWezTerm: 'WezTerm',\n sessionTypeZellij: 'Zellij',\n sidebarCollapsed: 'Sidebar Collapsed',\n telemetry: 'Telemetry',\n theme: 'Theme',\n timezone: 'Timezone',\n uiDensity: 'UI Density',\n vibeDefaults: 'Vibe Defaults',\n vibeStatusChanges: 'Vibe Status Changes',\n vibeTypeCustom: 'Custom',\n vibeTypeMonorepo: 'Monorepo',\n vibeTypePackage: 'Package',\n vibeTypeProject: 'Project',\n vibeTypeRepository: 'Repository',\n vibeTypeWorkspace: 'Workspace',\n workspace: 'Workspace',\n workspaceDesc: 'Agent, session, vibe defaults',\n },\n sharedSession: {\n canControl: 'Can Control',\n connected: 'Connected',\n expires: 'Expires',\n failedJoin: 'Failed to Join Session',\n failedValidate: 'Failed to validate the share link',\n goBack: 'Go Back',\n interactive: 'Interactive',\n invalidExpiredLink: 'Invalid or Expired Link',\n joining: 'Joining session...',\n linkNoLongerValid: 'This share link is no longer valid.',\n rejoin: 'Rejoin',\n rejoinHint: 'You can rejoin using the same share link.',\n retry: 'Retry',\n sessionInfo: 'Session Info',\n sharedBy: 'Shared by',\n status: 'Status',\n terminalLoading: 'Terminal loading...',\n unableToLoad: 'Unable to Load Session',\n validating: 'Validating share link...',\n viewOnly: 'View Only',\n viewer: 'Viewer',\n youLeft: 'You left the session',\n yourRole: 'Your role',\n },\n sharedVibeDeck: {\n canExecute: 'Can execute',\n enterPasswordHint: 'Enter the password to continue',\n invalidLink: 'Invalid share link',\n linkInvalidOrExpired: 'This share link is invalid or has expired.',\n poweredBy: 'Powered by',\n requiresPassword: 'This VibeDeck requires a password',\n viewOnly: 'View only',\n },\n targets: {\n addTarget: 'Add Target',\n agentConnectionHintPrefix: 'The agent that will establish the',\n agentConnectionHintSuffix: 'connection to this target.',\n agentInstalled: 'Agent Installed',\n agentInstalledSuccess: 'Agent installed successfully!',\n allAgents: 'All agents',\n authentication: 'Authentication',\n confirmDeleteSelectedPrefix: 'Are you sure you want to delete',\n confirmDeleteSelectedSuffix: 'This action cannot be undone.',\n connected: 'Connected',\n connectionFailed: 'Connection failed',\n connectionSuccessful: 'Connection successful',\n deleteAll: 'Delete All',\n deleteSelectedTargets: 'Delete Selected Targets',\n deleteTarget: 'Delete Target',\n descriptionOptional: 'Description (optional)',\n deselectAll: 'Deselect All',\n disconnected: 'Disconnected',\n emptyAdjustSearch: 'Try adjusting your search or filters',\n emptyNoTargetsConfigured: 'No targets configured',\n emptyNoTargetsFound: 'No targets found',\n filterStatusAll: 'All Statuses',\n filterTypeAll: 'All Types',\n gridViewTitle: 'Grid view',\n host: 'Host',\n hostPlaceholder: '192.168.1.100',\n installAgent: 'Install Agent',\n installationFailed: 'Installation failed.',\n installing: 'Installing...',\n installingAgentOn: 'Installing Agent on',\n labelOptional: 'Label (optional)',\n labelPlaceholder: 'web-server-01',\n listViewTitle: 'List view',\n loading: 'Loading targets...',\n namePlaceholderDirect: 'My Laptop',\n namePlaceholderServer: 'Production Server',\n openTerminal: 'Open terminal',\n password: 'Password',\n privateKey: 'Private Key',\n privateKeyPath: 'Private Key Path',\n privateKeyPathPlaceholder: '~/.ssh/id_rsa',\n refreshTitle: 'Refresh targets',\n searchPlaceholder: 'Search targets...',\n selectAgentConnectFrom: 'Select an agent to connect from',\n selectAll: 'Select All',\n showingResults: 'Showing {{filtered}} of {{total}} targets',\n sourceAgent: 'Source Agent',\n startingInstallJob: 'Starting install job...',\n tagsCommaSeparated: 'Tags (comma-separated)',\n tagsPlaceholder: 'production, web',\n targetType: 'Target Type',\n targetTypeSshHint: 'A remote server accessible via SSH.',\n terminal: 'Terminal',\n test: 'Test',\n testConnectivity: 'Test connectivity',\n typeDirect: 'Direct',\n uninstall: 'Uninstall',\n uninstallAgent: 'Uninstall agent',\n unknown: 'Unknown',\n username: 'Username',\n usernamePlaceholder: 'root',\n via: 'via',\n },\n template: {\n allCategories: 'All Categories',\n backToTemplates: 'Back to Templates',\n categoryBackend: 'Backend',\n categoryCustom: 'Custom',\n categoryFrontend: 'Frontend',\n categoryFullstack: 'Fullstack',\n categoryInfrastructure: 'Infrastructure',\n categoryLibrary: 'Library',\n categoryMicroservice: 'Microservice',\n categoryStarter: 'Starter',\n clone: 'Clone',\n cloneDescPlaceholder: 'Optional description',\n cloneDescription: 'Description',\n cloneFailed: 'Failed to clone',\n cloneFromTemplate: 'Clone from Template',\n cloneName: 'Name *',\n cloneNamePlaceholder: 'my-new-component',\n cloneNameRequired: 'Name is required',\n clonedSuccess: 'Cloned successfully',\n clones: 'clones',\n cloning: 'Cloning...',\n description: '{{total}} templates available',\n emptyAdjustSearch: 'Try adjusting your search or filters',\n emptyNoResults: 'No templates found',\n emptyNoTemplates: 'No templates yet',\n failedLoad: 'Failed to load template',\n fileTree: 'File Tree',\n filterCategory: 'Category',\n loading: 'Loading templates...',\n loadingDetails: 'Loading template details...',\n noDescription: 'No description',\n notFound: 'Template not found',\n searchPlaceholder: 'Search templates...',\n setupInstructions: 'Setup Instructions',\n showingResults: 'Showing {{filtered}} of {{total}} templates',\n sourceComponent: 'Source Component',\n title: 'Templates',\n },\n tunnels: {\n port: 'Port',\n },\n vibeDeck: {\n cancel: 'Cancel',\n colorTheme: 'Color Theme',\n columns: 'Columns',\n description: 'Description',\n descriptionPlaceholder: 'Optional description...',\n dropHere: 'Drop here',\n gridLayout: 'Grid Layout',\n name: 'Name',\n namePlaceholder: 'My Vibe Deck',\n rows: 'Rows',\n save: 'Save',\n saving: 'Saving...',\n },\n vibeDetails: {\n activate: 'Activate',\n addToCatalog: 'Add to Catalog',\n addToCatalogTitle: 'Add Vibe to Catalog',\n archive: 'Archive',\n backToVibes: 'Back to Vibe',\n branch: 'Branch',\n catalogs: 'Catalogs',\n catalogsTitle: 'Catalogs',\n childVibes: 'Child Vibes',\n config: 'Config',\n created: 'Created',\n deactivate: 'Deactivate',\n docs: 'Docs',\n environmentVariables: 'Environment Variables',\n failedLoad: 'Failed to load vibe',\n features: 'Features',\n git: 'Git',\n gitInformation: 'Git Information',\n gitops: 'GitOps',\n gitopsTitle: 'GitOps',\n graphqlPlayground: 'GraphQL',\n graphqlPlaygroundTitle: 'GraphQL Playground',\n loadApi: 'Load API',\n loadingCatalogs: 'Loading catalogs...',\n loadingConfig: 'Loading saved configuration...',\n loadingDetails: 'Loading vibe details...',\n new: 'New',\n newSessionFor: 'New Session for',\n noAgentAvailable: 'No agent available. Please configure an agent first.',\n noAgentTunnel: 'No agent tunnel available',\n noCatalogs: 'Not in any catalogs',\n noDescription: 'No description',\n noGitInformation: 'No git information',\n noRelatedEntities: 'No related entities',\n noSessionsForVibe: 'No sessions for this vibe',\n notFound: 'Vibe not found',\n notFoundDescriptionPrefix: 'No vibe with ID',\n notFoundDescriptionSuffix: 'exists',\n notes: 'Notes',\n openInEditor: 'Open in Editor',\n openInLocalVscode: 'Open in local VS Code',\n parentVibe: 'Parent Vibe',\n path: 'Path',\n related: 'Related',\n remote: 'Remote',\n removeFromCatalog: 'Remove from catalog',\n restPlayground: 'REST',\n restPlaygroundTitle: 'REST API Playground',\n runningOnAgent: 'Running on Agent',\n scorecard: 'Scorecard',\n sessionCommandPlaceholder: 'bash',\n sessionName: 'Session Name',\n sessionNamePlaceholder: 'dev-terminal',\n sessionNameRequired: 'Session name is required',\n tabsAriaLabel: 'Vibe tabs',\n tags: 'Tags',\n timeline: 'Timeline',\n updated: 'Updated',\n workingDirectory: 'Working Directory',\n },\n vibeDocs: {\n documentation: 'Documentation',\n exitFullscreen: 'Exit fullscreen',\n failedLoadDocs: 'Failed to load docs',\n failedLoadDocumentation: 'Failed to load documentation',\n fullscreen: 'Fullscreen',\n goToVibeDetails: 'Go to Vibe Details',\n loadingDocumentation: 'Loading documentation...',\n retry: 'Retry',\n },\n vibeTask: {\n accessDenied: 'Access Denied',\n action: 'Action',\n actionExecutorHint: 'Executor config comes from the Action definition.',\n actions: 'Actions',\n execHistory: 'Execution History',\n exitCode: 'Exit Code',\n lastRun: 'Last run',\n loadingPermissions: 'Loading permissions...',\n loadingTask: 'Loading task details...',\n next: 'Next',\n noExecutions: 'No executions yet',\n oneTime: 'One-time',\n recurring: 'Recurring',\n schedule: 'Schedule',\n started: 'Started',\n status: 'Status',\n triggerNow: 'Trigger Now',\n viewLogs: 'View Logs',\n },\n vibecontrols: {\n actions: {\n card: {\n addToCalendar: 'Add to calendar',\n delete: 'Delete',\n duplicate: 'Duplicate',\n edit: 'Edit',\n execute: 'Execute',\n executionRuns: '{{count}} runs',\n hoursAgo: '{{count}}h ago',\n justNow: 'Just now',\n minutesAgo: '{{count}}m ago',\n never: 'Never',\n runs: 'runs',\n schedule: 'Schedule this action',\n },\n executionHistory: {\n close: 'Close',\n noExecutions: 'No executions yet',\n recentExecutions: 'Recent Executions',\n },\n form: {\n actionType: 'Action Type',\n anyAvailableAgent: 'Any available agent',\n authType: 'Auth Type',\n bodyJson: 'Body (JSON)',\n cancel: 'Cancel',\n category: 'Category',\n command: 'Command',\n commandSettings: 'Command Settings',\n createAction: 'Create Action',\n description: 'Description',\n displayName: 'Display Name',\n interpreter: 'Interpreter',\n method: 'Method',\n nameSlug: 'Name (slug)',\n offline: '(offline)',\n requireConfirmation: 'Require confirmation',\n retryCount: 'Retry Count',\n saving: 'Saving...',\n schedule: 'Schedule (cron expression)',\n script: 'Script',\n scriptSettings: 'Script Settings',\n tags: 'Tags (comma separated)',\n targetAgent: 'Target Agent',\n timeout: 'Timeout (ms)',\n triggerType: 'Trigger Type',\n updateAction: 'Update Action',\n url: 'URL',\n webhookSettings: 'Webhook Settings',\n workingDirectory: 'Working Directory',\n },\n },\n agentManager: {\n adminBar: {\n openFullPage: 'Open full page',\n },\n bridle: {\n clear: 'Clear',\n command: 'Command',\n commandCopied: 'Command copied to clipboard',\n configuration: 'Configuration',\n copiedToClipboard: 'Copied to clipboard',\n initialize: 'Initialize',\n installFromGithub: 'Install from GitHub',\n listProfiles: 'List Profiles',\n profileName: 'Profile Name',\n quickActions: 'Quick Actions',\n showProfile: 'Show Profile',\n showStatus: 'Show Status',\n supportedHarnesses: 'Supported Harnesses',\n title: 'Bridle — Cross-Harness Config Manager',\n },\n bulkActions: {\n cancel: 'Cancel',\n cannotUndo: 'This action cannot be undone.',\n clearSelection: 'Clear selection',\n delete: 'Delete',\n deleteConfirm: 'Are you sure you want to delete',\n deleteSelected: 'Delete selected',\n deleteSessionsTitle: 'Delete Sessions',\n export: 'Export',\n exportSelected: 'Export selected',\n selected: 'selected',\n session: 'session',\n sessions: 'sessions',\n },\n center: {\n close: 'Close',\n createNewSession: 'Create a new session',\n keyboardShortcuts: 'Keyboard Shortcuts',\n noActiveSession: 'No active session',\n },\n bookmarksDrawer: {\n editLabel: 'Edit label',\n empty: 'No bookmarks in this session yet',\n emptyHint: 'Click the bookmark icon on any message to save it for later.',\n fromAssistant: 'Assistant reply',\n fromUser: 'From you',\n jump: 'Jump to message',\n labelPlaceholder: 'Add a label (optional)',\n seeAll: 'See all bookmarks across sessions',\n stale: 'Message no longer available',\n title: 'Bookmarks in this session',\n },\n chatPane: {\n bookmarksLabel: 'Bookmarks',\n bookmarksTooltip: 'View bookmarked messages',\n searchInSession: 'Search in session',\n },\n config: {\n advancedJson: 'Advanced (JSON)',\n maxTokens: 'Max Tokens',\n model: 'Model',\n quickSettings: 'Quick Settings',\n save: 'Save',\n saving: 'Saving...',\n systemPrompt: 'System Prompt',\n temperature: 'Temperature (0-1)',\n terminate: 'Terminate',\n terminateSessionTitle: 'Terminate Session',\n },\n controls: {\n agentDefault: 'Agent (default)',\n attachFile: 'Attach file',\n disableVoice: 'Disable voice mode',\n enableVoice: 'Enable voice mode',\n listening: 'Listening...',\n noMatchingServers: 'No matching servers',\n noMatchingVibes: 'No matching vibes',\n noMcpServers: 'No MCP servers available',\n noModelsAvailable: 'No models available',\n noVibesAvailable: 'No vibes available',\n },\n detailPanel: {\n closePanel: 'Close detail panel',\n },\n dialogs: {\n cancel: 'Cancel',\n chooseFormat: 'Choose the export format:',\n create: 'Create',\n creating: 'Creating...',\n export: 'Export',\n exportSession: 'Export Session',\n exporting: 'Exporting...',\n model: 'Model',\n name: 'Name',\n newSession: 'New Session',\n noResultsFound: 'No results found',\n renameSession: 'Rename Session',\n save: 'Save',\n sdkAndMode: 'SDK & Mode',\n searching: 'Searching...',\n tagsLabel: 'Tags (comma-separated)',\n },\n inputArea: {\n cancel: 'Cancel',\n hideThinking: 'Hide thinking',\n schedule: 'Schedule',\n scheduleSend: 'Schedule send',\n send: 'Send (Enter)',\n sendAt: 'Send at:',\n showThinking: 'Show thinking',\n },\n layout: {\n closeSidebar: 'Close sidebar',\n details: 'Details',\n openDetailPanel: 'Open detail panel',\n openSidebar: 'Open sidebar',\n sessions: 'Sessions',\n },\n logs: {\n disableAutoRefresh: 'Disable auto-refresh',\n enableAutoRefresh: 'Enable auto-refresh',\n noLogsMatch: 'No logs match the selected filters',\n },\n messageItem: {\n bookmarkMessage: 'Bookmark message',\n copyMessage: 'Copy message',\n removeBookmark: 'Remove bookmark',\n tokens: 'tokens',\n },\n messageList: {\n noResults: 'No messages match your search',\n startConversation: 'Start a conversation',\n },\n sessionItem: {\n deleteSession: 'Delete session',\n editTags: 'Edit tags',\n pin: 'Pin',\n unpin: 'Unpin',\n },\n sessionList: {\n noSessionsYet: 'No sessions yet',\n retry: 'Retry',\n },\n sidebar: {\n hideFilters: 'Hide filters',\n newSession: 'New Session',\n showFilters: 'Show filters',\n },\n stats: {\n avgLatency: 'Avg Latency',\n inputTokens: 'Input Tokens',\n outputTokens: 'Output Tokens',\n requests: 'Requests',\n totalTokens: 'Total Tokens',\n },\n streaming: {\n cancelEscape: 'Cancel (Escape)',\n cancelStreaming: 'Cancel streaming',\n stop: 'Stop',\n thinking: 'Thinking...',\n },\n tab: {\n close: 'Close',\n },\n tabBar: {\n createNewSession: 'Create new session',\n enterFullscreen: 'Enter fullscreen',\n exitFullscreen: 'Exit fullscreen',\n exportSession: 'Export session',\n keyboardShortcuts: 'Keyboard shortcuts',\n newSession: 'New session (Ctrl+N)',\n searchSessions: 'Search sessions (Ctrl+K)',\n },\n tools: {\n installed: 'Installed',\n noToolsAvailable: 'No tools available',\n notInstalled: 'Not installed',\n },\n },\n agents: {\n addAgent: 'Add Agent',\n backup: {\n backupIfChanged: 'Backup if Changed',\n backupNow: 'Backup Now',\n configuration: 'Configuration',\n disableSchedule: 'Disable Schedule',\n disabled: 'Disabled',\n enableSchedule: 'Enable Schedule',\n enabled: 'Enabled',\n history: 'Backup History',\n loading: 'Loading backup settings...',\n scheduler: 'Scheduler',\n status: 'Status',\n target: 'Target',\n testConnection: 'Test Connection',\n title: 'Database Backup',\n totalBackups: 'Total Backups',\n },\n columnActions: 'Actions',\n columnAgent: 'Agent',\n columnArch: 'Arch',\n columnLastHeartbeat: 'Last Heartbeat',\n columnPlatform: 'Platform',\n columnStatus: 'Status',\n deselectAll: 'Deselect All',\n editor: {\n checking: 'Checking...',\n installing: 'Installing...',\n openInBrowser: 'Open in Browser',\n opened: 'Opened',\n retry: 'Retry',\n starting: 'Starting...',\n },\n emptyTitle: 'No agents configured',\n selectAll: 'Select All',\n },\n ai: {\n assistant: {\n clearConversation: 'Clear conversation',\n howCanIHelp: 'How can I help?',\n sendMessage: 'Send message',\n shiftEnterHint: 'Shift+Enter for new line',\n title: 'AI Assistant',\n },\n contexts: {\n add: 'Add',\n addTagPlaceholder: 'Add a tag...',\n cancel: 'Cancel',\n clearSelection: 'Clear selection',\n content: 'Content',\n create: 'Create',\n deleteSelected: 'Delete Selected',\n editContext: 'Edit Context',\n emptyTitle: 'No contexts yet',\n loadFailed: 'Failed to load contexts',\n loading: 'Loading contexts...',\n name: 'Name',\n namePlaceholder: 'Context name',\n newContext: 'New Context',\n saving: 'Saving...',\n selectAllVisible: 'Select all visible',\n selected: 'selected',\n tags: 'Tags',\n type: 'Type',\n update: 'Update',\n },\n overview: {\n activeSessions: 'Active Sessions',\n loadFailed: 'Failed to load overview',\n loading: 'Loading AI overview...',\n noPrompts: 'No prompts dispatched yet',\n noSessions: 'No sessions yet',\n queuedPrompts: 'Queued Prompts',\n recentPrompts: 'Recent Prompts',\n recentSessions: 'Recent Sessions',\n totalSessions: 'Total Sessions',\n totalTokens: 'Total Tokens',\n },\n playground: {\n endpoint: 'Endpoint',\n execute: 'Execute',\n executing: 'Executing...',\n loadFailed: 'Failed to load API',\n loading: 'Loading API descriptor...',\n noEndpoints: 'No API endpoints',\n parameters: 'Parameters',\n response: 'Response',\n },\n prompts: {\n attachContexts: 'Attach Contexts',\n composePrompt: 'Compose Prompt',\n dispatchHistory: 'Dispatch History',\n generate: 'Generate',\n generateFromTemplate: 'Generate from Template',\n generating: 'Generating...',\n loadFailed: 'Failed to load data',\n loading: 'Loading prompts...',\n noContexts: 'No contexts available',\n noDispatched: 'No dispatched prompts',\n selectSession: 'Select session...',\n selectTemplate: 'Select a template...',\n sendToSession: 'Send to Session',\n sending: 'Sending...',\n targetSession: 'Target Session',\n },\n sessions: {\n agentType: 'Agent Type',\n cancel: 'Cancel',\n create: 'Create',\n creating: 'Creating...',\n emptyTitle: 'No AI sessions',\n loadFailed: 'Failed to load sessions',\n loading: 'Loading sessions...',\n name: 'Name',\n newAISession: 'New AI Session',\n newSession: 'New Session',\n },\n stats: {\n inputTokens: 'Input Tokens',\n loadFailed: 'Failed to load stats',\n loading: 'Loading stats...',\n outputTokens: 'Output Tokens',\n refresh: 'Refresh',\n sessionsByStatus: 'Sessions by Status',\n tokenDistribution: 'Token Distribution',\n totalTokens: 'Total Tokens',\n usageByProvider: 'Usage by Provider',\n },\n tasks: {\n clearSelection: 'Clear selection',\n createTask: 'Create Task',\n deleteSelected: 'Delete Selected',\n description: 'Description',\n emptyTitle: 'No AI tasks',\n loadFailed: 'Failed to load tasks',\n loading: 'Loading AI tasks from PlanMagnet...',\n moveSelected: 'Move Selected',\n newAITask: 'New AI Task',\n noWorkspace: 'No workspace selected',\n retry: 'Retry',\n selectAllVisible: 'Select all visible',\n selected: 'selected',\n title: 'Title',\n titlePlaceholder: 'Task title',\n },\n templates: {\n adjustSearch: 'Try adjusting your search query',\n editTemplate: 'Edit Template',\n emptyTitle: 'No templates yet',\n loadFailed: 'Failed to load templates',\n loading: 'Loading templates...',\n newTemplate: 'New Template',\n noMatch: 'No templates match your search',\n previewTemplate: 'Preview Template',\n render: 'Render',\n rendering: 'Rendering...',\n searchPlaceholder: 'Search templates...',\n },\n },\n analytics: {\n cached: 'Cached',\n kpi: {\n actions: 'Actions',\n agents: 'Agents',\n aiEvents: 'AI Events',\n auditLogs: 'Audit Logs',\n docs: 'Docs',\n executions: 'Executions',\n notes: 'Notes',\n sessions: 'Sessions',\n targets: 'Targets',\n vibeDecks: 'Vibe Decks',\n vibes: 'Vibes',\n webhooks: 'Webhooks',\n },\n loading: 'Loading...',\n noData: 'No data',\n refresh: 'Refresh',\n sandbox: {\n expired: 'Expired',\n failed: 'Failed',\n noRecentActivity: 'No recent sandbox activity',\n recentActivity: 'Recent Sandbox Activity',\n resourceUtilization: 'Resource Utilization',\n running: 'Running',\n totalCpuUsed: 'Total CPU Used',\n totalCreated: 'Total Created',\n totalMemoryUsed: 'Total Memory Used',\n },\n },\n assistant: {\n chatInput: {\n ariaLabel: 'Message input',\n send: 'Send message',\n },\n conversations: {\n empty: 'No conversations yet',\n new: 'New conversation',\n startNew: 'Start a new conversation',\n title: 'Conversations',\n },\n export: {\n ariaLabel: 'Export conversation',\n json: 'Export as JSON',\n markdown: 'Export as Markdown',\n },\n markdown: {\n copied: 'Copied',\n copy: 'Copy',\n copyCode: 'Copy code',\n },\n message: {\n downloads: 'Downloads',\n },\n messageList: {\n ariaLabel: 'Conversation messages',\n },\n modeSelector: {\n ariaLabel: 'Select assistant mode',\n },\n panel: {\n ariaLabel: 'AI Assistant',\n close: 'Close assistant',\n title: 'AI Assistant',\n toggleList: 'Toggle conversation list',\n },\n welcome: {\n suggestions: 'Suggestions',\n title: 'VibeControls Assistant',\n },\n },\n audit: {\n cancel: 'Cancel',\n deleting: 'Deleting...',\n reasonLabel: 'Reason for deletion',\n },\n bookmarks: {\n empty: \"You haven't bookmarked any messages yet\",\n emptyHint:\n 'Open any AI Chat session and click the bookmark icon on a message to save it here.',\n jumpToMessage: 'Jump to message in session',\n notFoundInSession: 'Bookmarked message not found',\n openInSession: 'Open session',\n pageSubtitle: 'Every AI Chat message you have bookmarked across all sessions.',\n pageTitle: 'Saved messages',\n unlabeled: 'Unlabeled bookmark',\n },\n calendar: {\n agenda: {\n noTasks: 'No scheduled tasks in this range',\n },\n day: {\n taskScheduled: 'task scheduled',\n tasksScheduled: 'tasks scheduled',\n },\n header: {\n scheduleTask: 'Schedule Task',\n today: 'Today',\n },\n month: {\n more: 'more',\n },\n schedule: {\n actionToSchedule: 'Action to Schedule',\n addActionToCalendar: 'Add Action to Calendar',\n cancel: 'Cancel',\n creating: 'Creating...',\n description: 'Description',\n runAt: 'Run At',\n schedule: 'Schedule',\n scheduleBtn: 'Schedule',\n selectActionFirst: 'Select an Action first',\n timezone: 'Timezone',\n title: 'Title',\n },\n },\n dashboard: {\n title: 'Dashboard',\n },\n docs: {\n compile: {\n built: 'Built',\n failed: 'Failed',\n published: 'Published',\n },\n edit: {\n compile: 'Compile',\n preview: 'Preview',\n },\n editor: {\n pageTitle: 'Page title',\n selectPage: 'Select a page to edit',\n },\n empty: {\n createDocs: 'Create Documentation',\n title: 'No documentation yet',\n },\n pageTree: {\n addFirstPage: 'Add your first page',\n noPages: 'No pages yet',\n pages: 'Pages',\n },\n preview: {\n compileDocs: 'Compile Docs',\n edit: 'Edit',\n openFullScreen: 'Open Full Screen',\n startEditing: 'Start Editing',\n },\n settings: {\n save: 'Save Settings',\n saving: 'Saving...',\n title: 'Site Settings',\n },\n tab: {\n loadFailed: 'Failed to load docs',\n loading: 'Loading documentation...',\n },\n },\n gitops: {\n ciTab: {\n avgDuration: 'Avg Duration',\n columnBranch: 'Branch',\n columnDuration: 'Duration',\n columnStatus: 'Status',\n columnTime: 'Time',\n columnTrigger: 'Trigger',\n columnWorkflow: 'Workflow',\n failedRuns: 'Failed Runs',\n noRuns: 'No pipeline runs found',\n noWorkflows: 'No workflows found',\n perPipelineRun: 'per pipeline run',\n recentRuns: 'Recent Runs',\n successRate: 'Success Rate',\n viewFullDetails: 'View full details',\n viewRun: 'View run',\n workflows: 'Workflows',\n },\n provider: {\n active: 'Active',\n inactive: 'Inactive',\n },\n repoStats: {\n activity: 'Activity',\n issues: 'Issues',\n languages: 'Languages',\n noLanguageData: 'No language data available',\n noOpenIssues: 'No open issues — looking good!',\n noOpenPRs: 'No open pull requests',\n noVulnerabilities: 'No known vulnerabilities',\n pullRequests: 'Pull Requests',\n security: 'Security',\n topContributors: 'Top contributors',\n view: 'View',\n },\n setup: {\n agent: 'Agent',\n connect: 'Connect Repository',\n name: 'Name',\n providerType: 'Provider Type',\n repoUrl: 'Repository URL',\n title: 'Connect a Repository',\n },\n },\n graph: {\n noAgentInstalled: 'No agent installed',\n permissionsSaved: 'Permissions saved',\n },\n notes: {\n cancel: 'Cancel',\n columnActions: 'Actions',\n columnTags: 'Tags',\n columnTitle: 'Title',\n columnUpdated: 'Updated',\n columnVibe: 'Vibe',\n createNote: 'Create Note',\n edit: 'Edit',\n editNote: 'Edit Note',\n emptyTitle: 'No notes yet',\n newNote: 'New Note',\n pinThisNote: 'Pin this note',\n preview: 'Preview',\n relatedVibe: 'Related Vibe (optional)',\n saveNote: 'Save Note',\n saving: 'Saving...',\n tags: 'Tags',\n titlePlaceholder: 'Note title...',\n },\n pages: {\n ai: {\n back: 'Back',\n dangerZone: 'Danger Zone',\n goToAgents: 'Go to Agents',\n noActiveAgent: 'No active agent',\n noActiveAgentAvailable: 'No active agent available',\n saveConfig: 'Save Config',\n savedSuccessfully: 'Saved successfully',\n saving: 'Saving...',\n send: 'Send',\n sessionConfig: 'Session Configuration',\n terminateSession: 'Terminate Session',\n terminating: 'Terminating...',\n thinking: 'Thinking...',\n },\n },\n sessions: {\n card: {\n openTerminal: 'Open Terminal',\n restart: 'Restart',\n shareSession: 'Share Session',\n start: 'Start',\n stop: 'Stop',\n terminate: 'Terminate',\n },\n collaborators: {\n editor: 'Editor',\n giveControl: 'Give control',\n hasControl: 'Has Control',\n owner: 'Owner',\n requestControl: 'Request Control',\n requesting: 'Requesting...',\n title: 'Collaborators',\n transferControl: 'Transfer control',\n viewOnlyMode: 'View only mode',\n viewer: 'Viewer',\n viewing: 'Viewing',\n you: 'You',\n },\n control: {\n hasControl: 'has control',\n noControl: 'No control',\n noOneHasControl: 'No one has control',\n releaseControl: 'Release Control',\n releasing: 'Releasing...',\n requesting: 'Requesting...',\n someone: 'Someone',\n takeControl: 'Take Control',\n userHasControl: '{{username}} has control',\n viewOnly: 'View only',\n watching: 'watching',\n you: 'You',\n youHaveControl: 'You have control',\n },\n form: {\n agent: 'Agent',\n autoStart: 'Auto-start when agent connects',\n cancel: 'Cancel',\n command: 'Command',\n createSession: 'Create Session',\n creating: 'Creating...',\n editSession: 'Edit Session',\n name: 'Name',\n newSession: 'New Session',\n saveChanges: 'Save Changes',\n selectAgent: 'Select Agent...',\n selectVibe: 'Select Vibe...',\n type: 'Type',\n vibeProject: 'Vibe (Project)',\n workingDirectory: 'Working Directory',\n },\n list: {\n colActions: 'Actions',\n colAgent: 'Agent',\n colName: 'Name',\n colStatus: 'Status',\n colType: 'Type',\n colUpdated: 'Updated',\n colVibe: 'Vibe',\n noSessionsTitle: 'No sessions yet',\n startSession: 'Start Session',\n terminate: 'Terminate',\n },\n share: {\n activeLinks: 'Active Links',\n canControl: 'Can Control',\n createLink: 'Create Link',\n createShareLink: 'Create Share Link',\n creating: 'Creating...',\n currentlySharedWith: 'Currently Shared With',\n emailAddress: 'Email Address',\n expiresIn: 'Expires In',\n linkNameOptional: 'Link Name (optional)',\n maxUses: 'Max Uses',\n messageOptional: 'Message (optional)',\n passwordOptional: 'Password (optional)',\n permission: 'Permission',\n shareSession: 'Share Session',\n shareWithUser: 'Share with User',\n sharing: 'Sharing...',\n title: 'Share Session',\n viewOnly: 'View Only',\n },\n shared: {\n isTyping: 'is typing',\n release: 'Release',\n requestControl: 'Request control',\n requesting: 'Requesting...',\n someone: 'Someone',\n takeControl: 'Take control',\n viewOnly: 'View Only',\n viewOnlyCannotType: 'View only - You cannot type in this session',\n youHaveControl: 'You have control',\n },\n sharedTerminal: {\n userTyping: '{{name}} is typing',\n },\n terminal: {\n closeTab: 'Close Tab',\n connecting: 'Connecting...',\n connectionLost: 'Connection Lost',\n newSession: 'New Session',\n noTerminalsOpen: 'No terminals open',\n openInNewTab: 'Open in New Tab',\n reconnect: 'Reconnect',\n reconnectNow: 'Reconnect Now',\n rename: 'Rename',\n restartTerminal: 'Restart Terminal',\n retry: 'Retry',\n stopTerminal: 'Stop Terminal',\n },\n },\n settings: {\n add: 'Add',\n addNewConfig: 'Add New Configuration',\n close: 'Close',\n items: 'items',\n manageConfig: 'Manage configuration values',\n markAsSecret: 'Mark as secret',\n },\n shared: {\n agentSetupBanner: {\n clickToCopy: 'Click to copy',\n dismiss: 'Dismiss',\n npmPackage: 'npm package',\n setupGuide: 'Setup guide',\n },\n confirmDialog: {\n cancel: 'Cancel',\n confirm: 'Confirm',\n processing: 'Processing...',\n },\n entityTagPicker: {\n addTag: 'Add Tag',\n assignedTags: 'Assigned tags',\n dismissError: 'Dismiss error',\n done: 'Done',\n failedToAddTag: 'Failed to add tag',\n failedToRemoveTag: 'Failed to remove tag',\n loading: 'Loading...',\n loadingTags: 'Loading tags...',\n noAvailableTags: 'No available tags',\n noMatchingTags: 'No matching tags',\n noTagsAssigned: 'No tags assigned',\n tagSuggestions: 'Tag suggestions',\n untitledTag: 'Untitled tag',\n },\n errorState: {\n title: 'Something went wrong',\n tryAgain: 'Try Again',\n },\n filterDropdown: {\n all: 'All',\n },\n getHelpButton: {\n label: 'Get Help',\n tooltip: 'Ask the assistant to explain',\n },\n installTabs: {\n clickToCopy: 'Click to copy',\n curlRecommended: 'Curl (Recommended)',\n linux: 'Linux',\n macos: 'macOS',\n npm: 'NPM',\n viewInstallScript: 'View the install script',\n windows: 'Windows',\n },\n loadingState: {\n loading: 'Loading...',\n },\n notificationToast: {\n moreNotifications: 'more notification(s)',\n },\n quotaExhaustedDialog: {\n dismiss: 'Dismiss',\n title: 'Quota Reached',\n viewBilling: 'View Billing',\n },\n searchInput: {\n placeholder: 'Search...',\n },\n searchableSelect: {\n noOptionsFound: 'No options found',\n placeholder: 'Select...',\n searchPlaceholder: 'Search...',\n },\n sessionNotificationBanner: {\n connecting: 'Connecting...',\n disconnected: 'Disconnected',\n live: 'Live',\n reconnect: 'Reconnect',\n },\n tagFilter: {\n all: 'All',\n label: 'Tag',\n },\n },\n targets: {\n deleteTarget: 'Delete Target',\n editTarget: 'Edit Target',\n installAgent: 'Install Agent',\n openTerminal: 'Open Terminal',\n testConnection: 'Test Connection',\n uninstallAgent: 'Uninstall Agent',\n },\n tunnels: {\n audit: {\n emptyEntriesTitle: 'No audit entries yet',\n emptyTitle: 'Open a tunnel to see its audit trail',\n title: 'Audit',\n },\n back: 'Back',\n cli: {\n followSessions: 'Follow sessions',\n issueToken: 'Issue a one-shot token',\n rotateCredentials: 'Rotate credentials',\n startLocally: 'Start locally',\n stop: 'Stop',\n },\n createTitle: 'Create tunnel',\n createTunnel: 'Create tunnel',\n creating: 'Creating...',\n detail: {\n audit: 'Audit',\n cli: 'CLI',\n domains: 'Domains',\n endpoints: 'Endpoints',\n overview: 'Overview',\n sessions: 'Sessions',\n settings: 'Settings',\n usage: 'Usage',\n },\n domains: {\n addDomain: 'Add domain',\n adding: 'Adding...',\n attachCustomDomain: 'Attach a custom domain',\n emptyTitle: 'No domains yet',\n title: 'Domains',\n },\n list: {\n createTunnel: 'Create tunnel',\n emptyTitle: 'No tunnels yet',\n newTunnel: 'New tunnel',\n title: 'Tunnels',\n },\n next: 'Next',\n noDomain: 'No domain attached',\n open: 'Open',\n overview: {\n activity: 'Activity',\n configuration: 'Configuration',\n },\n providers: {\n emptyTitle: 'No providers registered',\n title: 'Providers',\n },\n review: 'Review',\n sessions: {\n emptySessionsTitle: 'No sessions',\n emptyTitle: 'No active sessions',\n revoke: 'Revoke',\n title: 'Sessions',\n },\n settings: {\n deleteTunnel: 'Delete tunnel',\n deleteTunnelBtn: 'Delete tunnel',\n rotateCredentials: 'Rotate credentials',\n rotateNow: 'Rotate now',\n rotating: 'Rotating...',\n },\n start: 'Start',\n stop: 'Stop',\n tabs: {\n audit: 'Audit',\n domains: 'Domains',\n providers: 'Providers',\n sessions: 'Sessions',\n tunnels: 'Tunnels',\n usage: 'Usage',\n },\n usage: {\n emptyTitle: 'Usage aggregation coming soon',\n emptyUsageTitle: 'No usage yet',\n title: 'Usage',\n },\n },\n vibedeck: {\n buttonForm: {\n action: 'Action',\n cancel: 'Cancel',\n createNewAction: 'Create new action',\n label: 'Label',\n requireConfirmation: 'Require confirmation',\n save: 'Save',\n saving: 'Saving...',\n },\n executionLog: {\n title: 'Execution Log',\n },\n share: {\n createLink: 'Create Link',\n createShareLink: 'Create share link',\n manageAccess: 'Manage access to this VibeDeck',\n noLinks: 'No share links yet',\n },\n switcher: {\n delete: 'Delete',\n duplicate: 'Duplicate',\n editDeck: 'Edit deck',\n newDeck: 'New Deck',\n setDefault: 'Set as default',\n share: 'Share',\n },\n },\n vibes: {\n form: {\n agent: 'Agent',\n cancel: 'Cancel',\n createNewVibe: 'Create New Vibe',\n createVibe: 'Create Vibe',\n description: 'Description',\n editVibe: 'Edit Vibe',\n name: 'Name',\n path: 'Path',\n saveChanges: 'Save Changes',\n saving: 'Saving...',\n selectAgent: 'Select Agent...',\n tags: 'Tags (comma-separated)',\n type: 'Type',\n },\n list: {\n createVibe: 'Create Vibe',\n emptyTitle: 'No vibes yet',\n },\n },\n webhooks: {\n addWebhook: 'Add Webhook',\n emptyTitle: 'No webhooks configured',\n },\n },\n vibesPage: {\n accessDeniedTitle: 'Access Denied',\n addNewVibe: 'Add New Vibe',\n addVibe: 'Add Vibe',\n agentLabel: 'Agent',\n allAgents: 'All Agents',\n cancel: 'Cancel',\n createVibe: 'Create Vibe',\n createdSuccess: 'Vibe created successfully',\n creating: 'Creating...',\n descriptionActive: '{{active}} of {{total}} vibes active',\n dismiss: 'Dismiss',\n emptyAdjustSearch: 'Try adjusting your search or filters',\n emptyNoVibesConfigured: 'No vibes configured',\n emptyNoVibesFound: 'No vibes found',\n failedCreate: 'Failed to create vibe',\n failedLoad: 'Failed to load vibes',\n fillRequired: 'Please fill in all required fields',\n filterAgent: 'Agent',\n filterStatus: 'Status',\n filterType: 'Type',\n gridViewTitle: 'Grid view',\n listViewTitle: 'List view',\n loadingPermissions: 'Loading permissions...',\n loadingVibes: 'Loading vibes...',\n nameLabel: 'Name *',\n namePlaceholder: 'My Project',\n nameRequired: 'Name is required',\n openEditorPathMissing: 'No path available to open in editor',\n pathLabel: 'Path *',\n pathPlaceholder: '/path/to/project',\n pathRequired: 'Path is required',\n refreshTitle: 'Refresh vibes',\n refreshing: '(refreshing...)',\n searchPlaceholder: 'Search vibes...',\n selectAgent: 'Select an agent',\n showingResults: 'Showing {{filtered}} of {{total}} vibes',\n statusActive: 'Active',\n statusAll: 'All Statuses',\n statusArchived: 'Archived',\n statusError: 'Error',\n statusInactive: 'Inactive',\n title: 'Vibes',\n typeAll: 'All Types',\n typeCustom: 'Custom',\n typeLabel: 'Type',\n typeMonorepo: 'Monorepo',\n typePackage: 'Package',\n typeProject: 'Project',\n typeRepository: 'Repository',\n typeWorkspace: 'Workspace',\n },\n webhooks: {\n active: 'Active',\n agent: 'agent',\n agentScope: 'Agent Scope',\n createWebhook: 'Create Webhook',\n createdSuccess: 'Webhook created successfully',\n creating: 'Creating...',\n customEventPlaceholder: 'custom:event-name',\n deletedSuccess: 'Webhook deleted successfully',\n deliveries: 'deliveries',\n disable: 'Disable',\n disabledSuccess: 'Webhook disabled successfully',\n emptyAdjustSearch: 'Try adjusting your search or filters',\n emptyConfigured: 'No webhooks configured',\n emptyFound: 'No webhooks found',\n enable: 'Enable',\n enabledSuccess: 'Webhook enabled successfully',\n error: 'Error',\n eventRequired: 'At least one event must be selected',\n events: 'Events',\n failedCreate: 'Failed to create webhook',\n failedDelete: 'Failed to delete webhook',\n failedLoad: 'Failed to load webhooks',\n failedTest: 'Failed to test webhook',\n failedToggle: 'Failed to update webhook state',\n failures: 'failures',\n gridViewTitle: 'Grid view',\n inactive: 'Inactive',\n justNow: 'Just now',\n lastDelivery: 'Last delivery',\n lastError: 'Last error',\n listViewTitle: 'List view',\n loading: 'Loading webhooks...',\n name: 'Name',\n namePlaceholder: 'Slack Notifications',\n nameRequired: 'Name is required',\n never: 'Never',\n newWebhook: 'New Webhook',\n of: 'of',\n refreshTitle: 'Refresh webhooks',\n refreshing: 'refreshing...',\n scopedTo: 'Scoped to',\n searchPlaceholder: 'Search webhooks...',\n secret: 'Secret',\n secretPlaceholder: 'Optional signing secret',\n showingResults: 'Showing',\n signingKey: 'Signing Key',\n status: 'Status',\n test: 'Test',\n testSuccess: 'Webhook test delivery completed',\n url: 'URL',\n urlInvalid: 'Please enter a valid URL (e.g., https://example.com/webhook)',\n urlProtocolRequired: 'URL must use http:// or https:// protocol',\n urlRequired: 'URL is required',\n withErrors: 'With Errors',\n },\n} as const;\n"],"mappings":"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AW;IACX,cAAc;IACd,QAAQ;IACR,iBAAiB;IACjB,OAAO;IACP,cAAc;IACf;GACF;EACD,UAAU;GACR,KAAK;GACL,cAAc;GACd,OAAO;GACP,OAAO;GACP,cAAc;GACd,cAAc;GACf;EACD,QAAQ;GACN,kBAAkB;IAChB,aAAa;IACb,SAAS;IACT,YAAY;IACZ,YAAY;IACb;GACD,eAAe;IACb,QAAQ;IACR,SAAS;IACT,YAAY;IACb;GACD,iBAAiB;IACf,QAAQ;IACR,cAAc;IACd,cAAc;IACd,MAAM;IACN,gBAAgB;IAChB,mBAAmB;IACnB,SAAS;IACT,aAAa;IACb,iBAAiB;IACjB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,aAAa;IACd;GACD,YAAY;IACV,OAAO;IACP,UAAU;IACX;GACD,gBAAgB,EACd,KAAK,OACN;GACD,eAAe;IACb,OAAO;IACP,SAAS;IACV;GACD,aAAa;IACX,aAAa;IACb,iBAAiB;IACjB,OAAO;IACP,OAAO;IACP,KAAK;IACL,mBAAmB;IACnB,SAAS;IACV;GACD,cAAc,EACZ,SAAS,cACV;GACD,mBAAmB,EACjB,mBAAmB,wBACpB;GACD,sBAAsB;IACpB,SAAS;IACT,OAAO;IACP,aAAa;IACd;GACD,aAAa,EACX,aAAa,aACd;GACD,kBAAkB;IAChB,gBAAgB;IAChB,aAAa;IACb,mBAAmB;IACpB;GACD,2BAA2B;IACzB,YAAY;IACZ,cAAc;IACd,MAAM;IACN,WAAW;IACZ;GACD,WAAW;IACT,KAAK;IACL,OAAO;IACR;GACF;EACD,SAAS;GACP,cAAc;GACd,YAAY;GACZ,cAAc;GACd,cAAc;GACd,gBAAgB;GAChB,gBAAgB;GACjB;EACD,SAAS;GACP,OAAO;IACL,mBAAmB;IACnB,YAAY;IACZ,OAAO;IACR;GACD,MAAM;GACN,KAAK;IACH,gBAAgB;IAChB,YAAY;IACZ,mBAAmB;IACnB,cAAc;IACd,MAAM;IACP;GACD,aAAa;GACb,cAAc;GACd,UAAU;GACV,QAAQ;IACN,OAAO;IACP,KAAK;IACL,SAAS;IACT,WAAW;IACX,UAAU;I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"}
1
+ {"version":3,"file":"en.js","names":[],"sources":["../../src/translations/en.ts"],"sourcesContent":["/**\n * English fallback translations for microfe-vibecontrols.\n *\n * Keys use dot-notation (e.g., 'vibecontrols.actions.card.never') which the\n * I18nProvider resolves against this nested object structure.\n *\n * This file is the source of truth for all translation keys used in this MFE.\n * Register it with the host shell's AppShellProvider.fallbackTranslations\n * to enable offline/fallback support.\n */\nexport const enTranslations = {\n actions: {\n searchPlaceholder: 'Search actions...',\n },\n agentDetails: {\n agentApiKey: 'Agent API Key',\n agentApiKeyPlaceholder: 'sk-agent-...',\n agentNameRequired: 'Agent name is required',\n apiAuthentication: 'API Authentication',\n appId: 'App ID',\n authExemptAnd: 'and',\n authExemptPrefix: 'The',\n authHeaderRecommended: 'Header (recommended)',\n authQueryParameter: 'URL query parameter',\n backToAgents: 'Back to Agents',\n backup: 'Backup',\n capabilities: 'Capabilities',\n clientId: 'Client ID',\n clientSecretOneTimeTitle: 'Client Secret (one-time display)',\n configuration: 'Configuration',\n configurationUpdateFailed: 'Failed to update agent configuration',\n configurationUpdated: 'Agent configuration updated successfully',\n configure: 'Configure',\n copyApiKey: 'Copy API key',\n copyClientId: 'Copy Client ID',\n failedLoad: 'Failed to load agent',\n failedSetupGatewayAuth: 'Failed to set up gateway auth',\n failedUnlinkApp: 'Failed to unlink app',\n gatewayAuthTitle: 'Gateway Auth (OAuth2)',\n hideApiKey: 'Hide API key',\n hoursAgo: '{{count}}h ago',\n installFailed: 'Install failed',\n linkedToOauthApp: 'Linked to OAuth App',\n loadingDetails: 'Loading agent details...',\n metadataJsonRequired: 'Metadata must be valid JSON',\n metadataLabel: 'Metadata (JSON)',\n minutesAgo: '{{count}}m ago',\n noCapabilitiesConfigured: 'No capabilities configured',\n noHostnameConfigured: 'No hostname configured',\n noOauthAppLinked: 'No OAuth App Linked',\n noSessionsOnAgent: 'No sessions on this agent',\n noVibesUsingAgent: 'No vibes using this agent',\n notFound: 'Agent not found',\n notFoundDescriptionPrefix: 'No agent with ID',\n notFoundDescriptionSuffix: 'exists',\n pluginInstallFailed: 'Failed to install plugin',\n pluginRemoveFailed: 'Failed to remove plugin',\n plugins: 'Plugins',\n refreshPlugins: 'Refresh plugins',\n removeAgentConfirm: 'Are you sure you want to remove agent \"{{name}}\"?',\n removeFailed: 'Remove failed',\n removePluginConfirm: 'Remove plugin {{packageName}}?',\n saveConfiguration: 'Save Configuration',\n saving: 'Saving...',\n security: 'Security',\n settingUp: 'Setting up...',\n setupGatewayAuth: 'Setup Gateway Auth',\n showApiKey: 'Show API key',\n start: 'Start',\n tabsAriaLabel: 'Agent tabs',\n tunnelUrl: 'Tunnel URL',\n unlinkApp: 'Unlink App',\n version: 'Version',\n viewInDeveloperPortal: 'View in Developer Portal',\n },\n agentGraph: {\n countSummary: '{{targets}} targets, {{connections}} connections',\n failedLoad: 'Failed to load agent graph',\n failedRefresh: 'Failed to refresh agent graph',\n loading: 'Loading agent graph...',\n loadingScope: 'Applying selected scope...',\n noScopeResults: 'No results for this scope',\n noTargetsConnected: 'No targets connected',\n refreshing: 'Refreshing graph...',\n scopeAgentPrefix: 'Agent: {{name}}',\n scopeAll: 'All targets & agents',\n scopeLabel: 'Scope:',\n scopeTargetPrefix: 'Target: {{name}}',\n },\n agentsLanding: {\n accessDenied: 'Access Denied',\n loadingPermissions: 'Loading permissions...',\n tabAgents: 'Agents',\n tabGraph: 'Agent Graph',\n tabTargets: 'Targets',\n },\n agentsPage: {\n accessDeniedTitle: 'Access Denied',\n addAgent: 'Add Agent',\n addNewAgent: 'Add New Agent',\n adding: 'Adding...',\n agentApiKey: 'Agent API Key',\n agentApiKeyLabel: 'Agent API Key',\n agentApiKeyPlaceholder: 'sk-agent-...',\n apiAccess: 'API Access',\n apiKeyHint: 'Run',\n apiTunnelUrl: 'API / Tunnel URL',\n architecture: 'Architecture',\n back: 'Back',\n cancel: 'Cancel',\n close: 'Close',\n copy: 'Copy',\n create: 'Create',\n createFirstTarget: 'Create first target',\n createNewTarget: 'Create a new target',\n descriptionOnline: '{{active}} of {{total}} agents online',\n deselect: 'Deselect',\n deselectAll: 'Deselect All',\n detectedAgentInfo: 'Detected Agent Info',\n editTunnelTitle: 'Edit Tunnel',\n emptyAdjustSearch: 'Try adjusting your search or filters',\n emptyNoAgentsConfigured: 'No agents configured',\n emptyNoAgentsFound: 'No agents found',\n failedLoad: 'Failed to load agents',\n filterPlatform: 'Platform',\n filterStatus: 'Status',\n filterTag: 'Tag',\n gridViewTitle: 'Grid view',\n healthCheck: 'Health Check',\n inlineTargetFailed: 'Failed to create target. Please try again.',\n installInstructions: 'Agent Install Instructions',\n installStep1: '1. Install the agent CLI',\n installStep2: '2. Start the agent',\n installStep3: '3. Get the API key',\n installStep4: '4. Start the tunnel',\n justNow: 'Just now',\n listViewTitle: 'List view',\n loadingAgents: 'Loading agents...',\n loadingPermissions: 'Loading permissions...',\n loadingTargets: 'Loading targets...',\n name: 'Name',\n never: 'Never',\n nextValidate: 'Next: Validate',\n platform: 'Platform',\n platformAll: 'All Platforms',\n platformLinux: 'Linux',\n platformMac: 'macOS',\n platformWindows: 'Windows',\n refreshTitle: 'Refresh agents',\n refreshing: '(refreshing...)',\n remove: 'Remove',\n retryValidation: 'Retry validation',\n save: 'Save',\n saving: 'Saving...',\n searchPlaceholder: 'Search agents...',\n searchTargets: 'Search targets...',\n selectAll: 'Select All',\n selectTarget: 'Select a target...',\n selectedCount: '{{count}} agents selected',\n setupGuide: 'Setup guide',\n showingResults: 'Showing {{filtered}} of {{total}} agents',\n startAgent: 'Start Agent',\n statusActive: 'Active',\n statusAll: 'All Statuses',\n statusOffline: 'Offline',\n statusStopped: 'Stopped',\n stopAgent: 'Stop Agent',\n target: 'Target',\n targetName: 'Target name',\n title: 'Agents',\n tryDifferentAgent: 'Try Different Agent',\n tunnelUrlLabel: 'Tunnel URL',\n },\n ai: {\n config: 'Config',\n contexts: 'Contexts',\n goToAgents: 'Go to Agents',\n noActiveAgent: 'No active agent available',\n overview: 'Overview',\n playground: 'Playground',\n prompts: 'Prompts',\n stats: 'Stats',\n tasks: 'Tasks',\n templates: 'Templates',\n },\n analytics: {\n architecture: 'Architecture',\n entityTabs: 'Analytics sections',\n platform: 'Platform',\n },\n audit: {\n action: 'Action',\n actionArchive: 'Archive',\n actionCreate: 'Create',\n actionDelete: 'Delete',\n actionExecute: 'Execute',\n actionExport: 'Export',\n actionRestore: 'Restore',\n actionRevoke: 'Revoke',\n actionShare: 'Share',\n actionUpdate: 'Update',\n actions: 'Actions',\n actor: 'Actor',\n allActions: 'All Actions',\n allResources: 'All Resources',\n allStatuses: 'All Statuses',\n commandsOnly: 'Commands only',\n deleteAuditLog: 'Delete audit log',\n deleteFailed: 'Failed to delete audit log. Please try again.',\n export: 'Export',\n exportCsv: 'Export as CSV',\n exportJson: 'Export as JSON',\n exportOptions: 'Export options',\n exporting: 'Exporting…',\n loadingLogs: 'Loading audit logs...',\n name: 'Name',\n next: 'Next',\n noLogs: 'No audit logs',\n of: 'of',\n page: 'Page',\n previous: 'Previous',\n resource: 'Resource',\n resourceAgent: 'Agent',\n resourceAgentConnection: 'Agent Connection',\n resourceAiToolEvent: 'AI Tool Event',\n resourceAuditLog: 'Audit Log',\n resourceCalendarTask: 'Calendar Task',\n resourceConfiguration: 'Configuration',\n resourceDeckButton: 'Deck Button',\n resourceNote: 'Note',\n resourceSession: 'Session',\n resourceSessionShare: 'Session Share',\n resourceShareLink: 'Share Link',\n resourceTarget: 'Target',\n resourceUiSession: 'UI Session',\n resourceVibe: 'Vibe',\n resourceVibeDeck: 'Vibe Deck',\n resourceWebhook: 'Webhook',\n searchPlaceholder: 'Search audit logs...',\n showing: 'Showing',\n status: 'Status',\n statusDenied: 'Denied',\n statusError: 'Error',\n statusFailure: 'Failure',\n statusSuccess: 'Success',\n time: 'Time',\n viewAuditLog: 'View details',\n },\n calendar: {\n description: 'Schedule and manage tasks across your agents',\n failedLoad: 'Failed to load calendar data',\n retry: 'Retry',\n },\n catalog: {\n addComponent: 'Add Component',\n addComponentTitle: 'Add Component to Catalog',\n allVisibility: 'All Visibility',\n backToCatalogs: 'Back to Catalogs',\n componentAdded: 'Component added to catalog',\n components: 'Components',\n componentsInCatalog: 'components in this catalog',\n createCatalog: 'Create Catalog',\n createdSuccess: 'Catalog created successfully',\n dependencyGraph: 'Dependency Graph',\n description: '{{total}} catalogs',\n descriptionLabel: 'Description',\n descriptionPlaceholder: 'Describe this catalog...',\n docs: 'Docs',\n downloadSBOM: 'Download JSON',\n editCatalog: 'Edit Catalog',\n editDetails: 'Edit Details',\n emptyAdjustSearch: 'Try adjusting your search or filters',\n emptyCreate: 'Create your first catalog to organize components',\n emptyNoCatalogs: 'No catalogs yet',\n emptyNoResults: 'No catalogs found',\n failedLoad: 'Failed to load catalog',\n failedSave: 'Failed to save catalog',\n fillRequired: 'Please fill in all required fields',\n filterVisibility: 'Visibility',\n graphEdges: 'Dependencies',\n graphEdgesList: 'Dependencies',\n graphError: 'Failed to load graph',\n graphNodes: 'Components',\n graphNodesList: 'Components',\n loading: 'Loading catalogs...',\n loadingDetails: 'Loading catalog details...',\n loadingGraph: 'Loading dependency graph...',\n loadingSBOM: 'Generating SBOM...',\n metadata: 'Metadata',\n nameLabel: 'Name *',\n namePlaceholder: 'My Catalog',\n nameRequired: 'Name is required',\n noAvailableComponents: 'No available components to add',\n noComponents: 'No components',\n noDescription: 'No description',\n noGraphNodes: 'No dependency data',\n noSBOMEntries: 'No SBOM entries',\n notFound: 'Catalog not found',\n ownerLabel: 'Owner',\n ownerName: 'Owner',\n ownerNameLabel: 'Owner',\n ownerPlaceholder: 'team-name',\n sbom: 'SBOM',\n sbomEntries: 'Entries',\n sbomError: 'Failed to load SBOM',\n sbomFormat: 'Format',\n sbomGenerated: 'Generated',\n sbomLicense: 'License',\n sbomName: 'Name',\n sbomSupplier: 'Supplier',\n sbomType: 'Type',\n sbomVersion: 'Version',\n scorecard: 'Scorecard',\n searchComponents: 'Search components...',\n searchPlaceholder: 'Search catalogs...',\n showingResults: 'Showing {{filtered}} of {{total}} catalogs',\n tabsAriaLabel: 'Catalog tabs',\n tags: 'Tags',\n tagsLabel: 'Tags (comma-separated)',\n tagsPlaceholder: 'frontend, microservice, api',\n title: 'Catalogs',\n updatedSuccess: 'Catalog updated successfully',\n vibes: 'Vibes',\n visibility: 'Visibility',\n visibilityInternal: 'Internal',\n visibilityLabel: 'Visibility',\n visibilityPrivate: 'Private',\n visibilityPublic: 'Public',\n },\n catalogDocs: {\n backToCatalog: 'Back to Catalog',\n failedLoad: 'Failed to load docs',\n failedLoadDocs: 'Failed to load documentation',\n goToCatalog: 'Go to Catalog Details',\n loading: 'Loading documentation...',\n },\n common: {\n accessDeniedTitle: 'Access Denied',\n archive: 'Archive',\n cancel: 'Cancel',\n close: 'Close',\n created: 'Created',\n delete: 'Delete',\n dismiss: 'Dismiss',\n edit: 'Edit',\n error: 'Error',\n exitFullscreen: 'Exit fullscreen',\n fullscreen: 'Fullscreen',\n hide: 'Hide',\n loading: 'Loading...',\n refresh: 'Refresh',\n refreshing: '(refreshing...)',\n retry: 'Retry',\n save: 'Save',\n saved: 'Saved!',\n saving: 'Saving...',\n settings: 'Settings',\n show: 'Show',\n unset: 'Unset',\n updated: 'Updated',\n },\n component: {\n allLifecycles: 'All Lifecycles',\n allTypes: 'All Types',\n backToComponents: 'Back to Components',\n catalogs: 'Catalogs',\n catalogsContaining: 'catalogs containing this component',\n createComponent: 'Create Component',\n createdSuccess: 'Component created successfully',\n description: '{{total}} components',\n descriptionLabel: 'Description',\n descriptionPlaceholder: 'Describe this component...',\n docs: 'Docs',\n editComponent: 'Edit Component',\n editDetails: 'Edit Details',\n emptyAdjustSearch: 'Try adjusting your search or filters',\n emptyNoComponents: 'No components yet',\n emptyNoResults: 'No components found',\n failedLoad: 'Failed to load component',\n failedPublish: 'Failed to publish',\n failedSave: 'Failed to save component',\n fillRequired: 'Please fill in all required fields',\n filterLifecycle: 'Lifecycle',\n filterType: 'Type',\n frameworkLabel: 'Framework',\n frameworkPlaceholder: 'React',\n languageLabel: 'Language',\n languagePlaceholder: 'TypeScript',\n lifecycle: 'Lifecycle',\n lifecycleDeprecated: 'Deprecated',\n lifecycleExperimental: 'Experimental',\n lifecycleLabel: 'Lifecycle',\n lifecycleProduction: 'Production',\n loading: 'Loading components...',\n loadingDetails: 'Loading component details...',\n metadata: 'Metadata',\n nameLabel: 'Name *',\n namePlaceholder: 'my-service',\n nameRequired: 'Name is required',\n noCatalogs: 'Not in any catalogs',\n noDescription: 'No description',\n notFound: 'Component not found',\n ownerLabel: 'Owner',\n ownerNameLabel: 'Owner',\n ownerPlaceholder: 'team-name',\n publishAsTemplate: 'Publish as Template',\n publishedAsTemplate: 'Published as template successfully',\n repository: 'Repository',\n scorecard: 'Scorecard',\n searchPlaceholder: 'Search components...',\n showingResults: 'Showing {{filtered}} of {{total}} components',\n tabsAriaLabel: 'Component tabs',\n tags: 'Tags',\n tagsLabel: 'Tags (comma-separated)',\n tagsPlaceholder: 'backend, api, graphql',\n template: 'Template',\n title: 'Components',\n type: 'Type',\n typeApi: 'API',\n typeCustom: 'Custom',\n typeDatabase: 'Database',\n typeFrontend: 'Frontend',\n typeInfrastructure: 'Infrastructure',\n typeLabel: 'Type',\n typeLibrary: 'Library',\n typeMobile: 'Mobile',\n typeService: 'Service',\n updatedSuccess: 'Component updated successfully',\n version: 'Version',\n versionLabel: 'Version',\n versionPlaceholder: '1.0.0',\n viewTemplate: 'View Template',\n },\n componentDocs: {\n backToComponent: 'Back to Component',\n failedLoad: 'Failed to load docs',\n failedLoadDocs: 'Failed to load documentation',\n goToComponent: 'Go to Component Details',\n loading: 'Loading documentation...',\n },\n connectionPermissionsDialog: {\n cancel: 'Cancel',\n noPermissions: 'No permissions configured',\n noScopes: 'No scopes configured',\n permissions: 'Permissions',\n save: 'Save Permissions',\n scopes: 'Scopes',\n title: 'Connection Permissions',\n },\n gettingStarted: {\n addAgent: 'Add Agent',\n cliQuickRef: 'CLI Quick Reference',\n cliTab: 'CLI Reference',\n cmdAiPrompts: 'List prompt templates',\n cmdAutostartInstall: 'Auto-start on reboot',\n cmdAutostartStatus: 'Check autostart status',\n cmdConfig: 'Show all config',\n cmdHealth: 'Health check',\n cmdInfo: 'Version & system info',\n cmdKey: 'Show API key',\n cmdLogs: 'Follow agent logs',\n cmdPluginCreate: 'Scaffold a new plugin',\n cmdPluginList: 'List installed plugins',\n cmdSessionCreate: 'Create a session',\n cmdSessionList: 'List sessions',\n cmdStatus: 'Show agent status',\n cmdStop: 'Stop the agent',\n cmdTunnelAgent: 'Show tunnel status',\n cmdTunnelList: 'List all tunnels',\n cmdTunnelStart: 'Expose port 8080',\n cmdUrl: 'Show active URL (tunnel or local)',\n installAgent: 'Install the Agent',\n installTab: 'Install',\n nextStep1Prefix: 'Start the agent:',\n nextStep2And: 'and',\n nextStep2Prefix: 'Grab your tunnel URL and API key:',\n nextStep3Prefix: 'In this UI, go to',\n nextSteps: 'Next steps',\n npmLatest: '@vibecontrols/agent (latest)',\n npmPackage: 'npm package',\n pinVersion: 'Pin a specific agent version (optional)',\n targetsAndAgents: 'Targets & Agents',\n title: 'Getting Started',\n },\n gitops: {\n addProvider: 'Add Provider',\n ci: 'CI Pipelines',\n gitUI: 'Git UI',\n loadingProviders: 'Loading GitOps providers...',\n provider: 'Provider',\n refresh: 'Refresh',\n repoStats: 'Repo Stats',\n startUngit: 'Start Ungit',\n startingUngit: 'Starting...',\n ungitNote: 'Visual git client powered by Ungit plugin on the agent.',\n },\n health: {\n active: 'active',\n agentHealth: 'Agent Health',\n agents: 'Agents',\n allSystemsOperational: 'All Systems Operational',\n autoRefresh: 'Auto-refresh',\n cpu: 'CPU',\n healthy: 'healthy',\n hoursAgo: 'h ago',\n justNow: 'Just now',\n lastChecked: 'Last checked',\n lastHeartbeat: 'Last Heartbeat',\n lastUpdated: 'Last updated',\n majorSystemOutage: 'Major System Outage',\n memory: 'Memory',\n minutesAgo: 'm ago',\n never: 'Never',\n noAgentsRegistered: 'No agents registered',\n noSessions: 'No sessions',\n noVibes: 'No vibes',\n partialSystemOutage: 'Partial System Outage',\n running: 'running',\n sessionStatus: 'Session Status',\n sessions: 'Sessions',\n statusUnknown: 'Status Unknown',\n systemOffline: 'System Offline',\n systemStatus: 'System',\n targets: 'Targets',\n tunnel: 'Tunnel',\n vibeStatus: 'Vibe Status',\n vibes: 'Vibes',\n },\n logs: {\n agentLabel: 'Agent:',\n clear: 'Clear',\n connectToAgent: 'Connect to an agent to view logs',\n description: 'Gateway-proxied log streaming from your agents',\n disconnected: 'Disconnected',\n entries: 'entries',\n export: 'Export',\n fetchFailed: 'Failed to fetch logs',\n filterLogs: 'Filter logs...',\n levelFilter: 'Log level filter',\n live: 'Live',\n loadingAgents: 'Loading agents...',\n noAgentSelected: 'Select an agent to view logs',\n noAgentsAvailable: 'No agents with tunnel access available',\n pause: 'Pause',\n resume: 'Resume',\n selectAgent: 'Select an agent...',\n waitingForEntries: 'Waiting for log entries...',\n },\n nav: {\n actions: 'Actions',\n agentGraph: 'Agent Graph',\n agents: 'Agents',\n ai: 'AI',\n aiBookmarks: 'Bookmarks',\n analytics: 'Analytics',\n gitops: 'GitOps',\n health: 'Health',\n logs: 'Logs',\n overview: 'Overview',\n sessions: 'Session',\n settings: 'Settings',\n targets: 'Targets',\n vibeAudit: 'Audit',\n vibeCalendar: 'Calendar',\n vibeDeck: 'Vibe Deck',\n vibes: 'Vibes',\n webhooks: 'Webhooks',\n },\n noteDetails: {\n accessDenied: 'Access Denied',\n attachedTo: 'Attached to',\n back: 'Back',\n created: 'Created',\n details: 'Details',\n failedLoad: 'Failed to load note',\n loading: 'Loading note...',\n loadingPermissions: 'Loading permissions...',\n noTags: 'No tags assigned.',\n notFound: 'Note not found',\n noteId: 'Note ID',\n openVibe: 'Open Vibe',\n pinned: 'Pinned',\n tags: 'Tags',\n updated: 'Updated',\n vibe: 'Vibe',\n workspaceNote: 'Workspace note',\n },\n overviewPage: {\n activity: {\n agentOnline: 'Agent Online',\n agentOnlineDescription: '{{name}} is active',\n sessionRunning: 'Session Running',\n sessionStatus: 'Session {{status}}',\n },\n empty: {\n addAgent: 'Add agent',\n addVibe: 'Add a vibe',\n installCliHint: 'Install the agent CLI to get started',\n noActiveAgents: 'No active agents',\n noActiveVibes: 'No active vibes',\n noRecentActivity: 'No recent activity',\n noRunningSessions: 'No running sessions',\n setupGuide: 'Setup guide',\n startSession: 'Start a session',\n viewAuditLog: 'View audit log',\n },\n loadingPermissions: 'Loading permissions...',\n refresh: 'Refresh',\n sections: {\n activeAgents: 'Active Agents',\n activeVibes: 'Active Vibes',\n recentActivity: 'Recent Activity',\n runningSessions: 'Running Sessions',\n viewAll: 'View all',\n },\n stats: {\n active: '{{count}} active',\n agents: 'Agents',\n connected: '{{count}} connected',\n notes: 'Notes',\n pinned: '{{count}} pinned',\n running: '{{count}} running',\n sessions: 'Sessions',\n targets: 'Targets',\n vibes: 'Vibes',\n },\n time: {\n daysAgo: '{{count}}d ago',\n hoursAgo: '{{count}}h ago',\n justNow: 'Just now',\n minutesAgo: '{{count}}m ago',\n unknown: 'Unknown',\n },\n title: 'VibeControls Overview',\n },\n scorecard: {\n addMetric: 'Add Metric',\n empty: 'No scorecard metrics',\n failedLoad: 'Failed to load scorecard',\n loading: 'Loading scorecard...',\n overallScore: 'Overall Score',\n },\n sessionDetails: {\n accessDenied: 'Access Denied',\n agentLabel: 'Agent',\n agentNoApiUrl: 'Agent has no API URL configured',\n autoStart: 'Auto Start',\n backToSessions: 'Back to Sessions',\n cancel: 'Cancel',\n collapseTerminal: 'Collapse terminal',\n commandLabel: 'Command',\n commandPlaceholder: 'bun run dev',\n commandTitle: 'Command',\n created: 'Created',\n editCommandTitle: 'Edit command and working directory',\n envVars: 'Environment Variables',\n exitCode: 'Exit Code',\n expandTerminal: 'Expand terminal',\n failedLoad: 'Failed to load session',\n failedStartTerminal: 'Failed to start terminal',\n hideTerminal: 'Hide terminal',\n lastOutput: 'Last Output',\n loadingPermissions: 'Loading permissions...',\n loadingSession: 'Loading session details...',\n maximize: 'Maximize',\n no: 'No',\n noAgentAssigned: 'No agent assigned',\n noCommandSpecified: 'No command specified',\n noEnvVars: 'No environment variables configured',\n noOutput: 'No output captured',\n noTerminalRunning: 'No terminal running',\n notFound: 'Session not found',\n notFoundDescPrefix: 'No session with ID',\n notFoundDescSuffix: 'exists',\n openInNewTab: 'Open terminal in new tab',\n openInNewTabShort: 'Open in new tab',\n openTerminal: 'Open Terminal',\n opening: 'Opening...',\n pidLabel: 'PID',\n relatedVibe: 'Related Vibe',\n restartCommand: 'Restart Command',\n restoreSize: 'Restore size',\n retry: 'Retry',\n runCommand: 'Run Command',\n runningOnAgent: 'Running on Agent',\n save: 'Save',\n showTerminal: 'Show terminal',\n startingTerminal: 'Starting terminal for',\n statusLabel: 'Status',\n stopCommand: 'Stop Command',\n tags: 'Tags',\n terminal: 'Terminal',\n timeline: 'Timeline',\n typeLabel: 'Type',\n updated: 'Updated',\n workingDirDefault: 'not set — defaults to OS home',\n workingDirLabel: 'Working Directory',\n workingDirPlaceholder: '/home/user/myproject',\n workingDirectory: 'Working Directory',\n yes: 'Yes',\n },\n sessions: {\n active: 'Active',\n agentRequired: 'Please select an agent for this session.',\n autoStartWithVibe: 'Auto-start with vibe',\n checkHealth: 'Check session health',\n command: 'Command',\n commandPlaceholder: 'bun run dev',\n confirmRemovePrefix: 'Are you sure you want to remove',\n confirmRemoveSuffix: 'This cannot be undone.',\n createSession: 'Create Session',\n createdSuccess: 'Session created successfully',\n creating: 'Creating...',\n deselect: 'Deselect',\n deselectAll: 'Deselect All',\n emptyAdjustSearch: 'Try adjusting your search or filters',\n emptyConfigured: 'No sessions configured',\n emptyFound: 'No sessions found',\n errorPrefix: 'Error',\n failed: 'failed',\n failedCreate: 'Failed to create session',\n failedLoad: 'Failed to load sessions',\n failedRemove: 'Failed to remove sessions',\n failedRestart: 'Failed to restart sessions',\n failedRestartTerminal: 'Failed to restart terminal',\n failedStartTerminal: 'Failed to start terminal',\n failedStop: 'Failed to stop sessions',\n filterAgent: 'Agent',\n filterAgentAll: 'All Agents',\n filterStatus: 'Status',\n filterType: 'Type',\n filterVibe: 'Vibe',\n filterVibeAll: 'All Vibes',\n filterVibeNone: 'No Vibe',\n gridViewTitle: 'Grid view',\n listViewTitle: 'List view',\n loading: 'Loading sessions...',\n name: 'Name',\n namePlaceholder: 'dev-server',\n nameRequired: 'Name is required',\n newSession: 'New Session',\n noVibe: 'No vibe',\n of: 'of',\n offline: 'Offline',\n pageDescription: '{{running}} of {{total}} sessions running',\n refreshTitle: 'Refresh sessions',\n refreshing: 'refreshing...',\n remove: 'Remove',\n removed: 'Removed',\n requiredPermission: 'Required permission: session:list',\n restart: 'Restart',\n restarted: 'Restarted',\n running: 'Running',\n runningSummary: '{{running}} running / {{total}} total',\n searchAgents: 'Search agents...',\n searchPlaceholder: 'Search sessions...',\n searchTypes: 'Search types...',\n searchVibes: 'Search vibes...',\n selectAgent: 'Select an agent',\n selectAll: 'Select All',\n selectType: 'Select type',\n selected: 'selected',\n showing: 'Showing',\n starting: 'Starting',\n statusAll: 'All Statuses',\n stop: 'Stop',\n stopped: 'Stopped',\n stoppedState: 'Stopped',\n terminalStopped: 'Terminal stopped',\n terminalViewTitle: 'Terminal view',\n typeAll: 'All Types',\n typeCustom: 'Custom',\n typeScript: 'Script',\n typeSsh: 'SSH',\n typeTerminal: 'Terminal',\n typeTmux: 'TMUX',\n typeTmuxLower: 'tmux',\n typeWezTerm: 'WezTerm',\n typeZellij: 'Zellij',\n },\n settings: {\n activeSessions: 'Active Sessions',\n addSecret: 'Add secret',\n advanced: 'Advanced',\n advancedDesc: 'Logging, telemetry, secrets',\n advancedSettings: 'Advanced Settings',\n agentDefaults: 'Agent Defaults',\n agentOfflineAlerts: 'Agent Offline Alerts',\n agentStateActive: 'Active',\n agentStateOffline: 'Offline',\n autoGitSync: 'Auto Git Sync',\n autoReconnect: 'Auto-reconnect',\n autoStartSessions: 'Auto-start Sessions',\n autoUpdate: 'Auto Update',\n avatarUrl: 'Avatar URL',\n avatarUrlDesc: 'URL to your avatar image',\n bio: 'Bio',\n bioPlaceholder: 'Tell us about yourself...',\n codeFont: 'Code Font',\n codeFontSize: 'Code Font Size',\n configuredSecrets: 'Configured Secrets',\n defaultAgent: 'Default Agent',\n defaultAgentPlaceholder: 'Select default agent...',\n defaultEnvVars: 'Default Environment Variables',\n defaultEnvVarsPlaceholder: 'KEY=value&#10;ANOTHER_KEY=value',\n defaultSessionType: 'Default Session Type',\n defaultVibeType: 'Default Vibe Type',\n deleteSecret: 'Delete secret',\n digestFrequency: 'Digest Frequency',\n digestFrequencyDaily: 'Daily',\n digestFrequencyNone: 'None',\n digestFrequencyWeekly: 'Weekly',\n displayName: 'Display Name',\n displayNamePlaceholder: 'Your display name',\n emailDigest: 'Email Digest',\n emailDigestDescription: 'Receive summary emails of activity',\n generalDefaults: 'General Defaults',\n heartbeatInterval: 'Heartbeat Interval (seconds)',\n language: 'Language',\n loading: 'Loading settings...',\n logLevel: 'Log Level',\n logLevelDebug: 'Debug',\n logLevelInfo: 'Info',\n logLevelWarning: 'Warning',\n maxSessionsPerAgent: 'Max Sessions Per Agent',\n mfa: 'Multi-Factor Authentication',\n noSecretsConfigured: 'No secrets configured',\n notifications: 'Notifications',\n notificationsDesc: 'Alert preferences',\n preferences: 'Preferences',\n profile: 'Profile',\n refreshSecrets: 'Refresh secrets',\n reset: 'Reset',\n resetFailed: 'Failed to reset settings.',\n resetSuccess: 'Settings reset to defaults.',\n resetToDefaults: 'Reset to defaults',\n saveFailed: 'Failed to save settings.',\n saveSecret: 'Save Secret',\n saveSuccess: 'Settings saved successfully.',\n secretValuePlaceholder: 'Secret value',\n sections: 'Settings sections',\n security: 'Security',\n sessionErrorAlerts: 'Session Error Alerts',\n sessionTimeout: 'Session Timeout',\n sessionTypeScript: 'Script',\n sessionTypeSsh: 'SSH',\n sessionTypeTerminal: 'Terminal',\n sessionTypeTmux: 'Tmux',\n sessionTypeWezTerm: 'WezTerm',\n sessionTypeZellij: 'Zellij',\n sidebarCollapsed: 'Sidebar Collapsed',\n telemetry: 'Telemetry',\n theme: 'Theme',\n timezone: 'Timezone',\n uiDensity: 'UI Density',\n vibeDefaults: 'Vibe Defaults',\n vibeStatusChanges: 'Vibe Status Changes',\n vibeTypeCustom: 'Custom',\n vibeTypeMonorepo: 'Monorepo',\n vibeTypePackage: 'Package',\n vibeTypeProject: 'Project',\n vibeTypeRepository: 'Repository',\n vibeTypeWorkspace: 'Workspace',\n workspace: 'Workspace',\n workspaceDesc: 'Agent, session, vibe defaults',\n },\n sharedSession: {\n canControl: 'Can Control',\n connected: 'Connected',\n expires: 'Expires',\n failedJoin: 'Failed to Join Session',\n failedValidate: 'Failed to validate the share link',\n goBack: 'Go Back',\n interactive: 'Interactive',\n invalidExpiredLink: 'Invalid or Expired Link',\n joining: 'Joining session...',\n linkNoLongerValid: 'This share link is no longer valid.',\n rejoin: 'Rejoin',\n rejoinHint: 'You can rejoin using the same share link.',\n retry: 'Retry',\n sessionInfo: 'Session Info',\n sharedBy: 'Shared by',\n status: 'Status',\n terminalLoading: 'Terminal loading...',\n unableToLoad: 'Unable to Load Session',\n validating: 'Validating share link...',\n viewOnly: 'View Only',\n viewer: 'Viewer',\n youLeft: 'You left the session',\n yourRole: 'Your role',\n },\n sharedVibeDeck: {\n canExecute: 'Can execute',\n enterPasswordHint: 'Enter the password to continue',\n invalidLink: 'Invalid share link',\n linkInvalidOrExpired: 'This share link is invalid or has expired.',\n poweredBy: 'Powered by',\n requiresPassword: 'This VibeDeck requires a password',\n viewOnly: 'View only',\n },\n targets: {\n addTarget: 'Add Target',\n agentConnectionHintPrefix: 'The agent that will establish the',\n agentConnectionHintSuffix: 'connection to this target.',\n agentInstalled: 'Agent Installed',\n agentInstalledSuccess: 'Agent installed successfully!',\n allAgents: 'All agents',\n authentication: 'Authentication',\n confirmDeleteSelectedPrefix: 'Are you sure you want to delete',\n confirmDeleteSelectedSuffix: 'This action cannot be undone.',\n connected: 'Connected',\n connectionFailed: 'Connection failed',\n connectionSuccessful: 'Connection successful',\n deleteAll: 'Delete All',\n deleteSelectedTargets: 'Delete Selected Targets',\n deleteTarget: 'Delete Target',\n descriptionOptional: 'Description (optional)',\n deselectAll: 'Deselect All',\n disconnected: 'Disconnected',\n emptyAdjustSearch: 'Try adjusting your search or filters',\n emptyNoTargetsConfigured: 'No targets configured',\n emptyNoTargetsFound: 'No targets found',\n filterStatusAll: 'All Statuses',\n filterTypeAll: 'All Types',\n gridViewTitle: 'Grid view',\n host: 'Host',\n hostPlaceholder: '192.168.1.100',\n installAgent: 'Install Agent',\n installationFailed: 'Installation failed.',\n installing: 'Installing...',\n installingAgentOn: 'Installing Agent on',\n labelOptional: 'Label (optional)',\n labelPlaceholder: 'web-server-01',\n listViewTitle: 'List view',\n loading: 'Loading targets...',\n namePlaceholderDirect: 'My Laptop',\n namePlaceholderServer: 'Production Server',\n openTerminal: 'Open terminal',\n password: 'Password',\n privateKey: 'Private Key',\n privateKeyPath: 'Private Key Path',\n privateKeyPathPlaceholder: '~/.ssh/id_rsa',\n refreshTitle: 'Refresh targets',\n searchPlaceholder: 'Search targets...',\n selectAgentConnectFrom: 'Select an agent to connect from',\n selectAll: 'Select All',\n showingResults: 'Showing {{filtered}} of {{total}} targets',\n sourceAgent: 'Source Agent',\n startingInstallJob: 'Starting install job...',\n tagsCommaSeparated: 'Tags (comma-separated)',\n tagsPlaceholder: 'production, web',\n targetType: 'Target Type',\n targetTypeSshHint: 'A remote server accessible via SSH.',\n terminal: 'Terminal',\n test: 'Test',\n testConnectivity: 'Test connectivity',\n typeDirect: 'Direct',\n uninstall: 'Uninstall',\n uninstallAgent: 'Uninstall agent',\n unknown: 'Unknown',\n username: 'Username',\n usernamePlaceholder: 'root',\n via: 'via',\n },\n template: {\n allCategories: 'All Categories',\n backToTemplates: 'Back to Templates',\n categoryBackend: 'Backend',\n categoryCustom: 'Custom',\n categoryFrontend: 'Frontend',\n categoryFullstack: 'Fullstack',\n categoryInfrastructure: 'Infrastructure',\n categoryLibrary: 'Library',\n categoryMicroservice: 'Microservice',\n categoryStarter: 'Starter',\n clone: 'Clone',\n cloneDescPlaceholder: 'Optional description',\n cloneDescription: 'Description',\n cloneFailed: 'Failed to clone',\n cloneFromTemplate: 'Clone from Template',\n cloneName: 'Name *',\n cloneNamePlaceholder: 'my-new-component',\n cloneNameRequired: 'Name is required',\n clonedSuccess: 'Cloned successfully',\n clones: 'clones',\n cloning: 'Cloning...',\n description: '{{total}} templates available',\n emptyAdjustSearch: 'Try adjusting your search or filters',\n emptyNoResults: 'No templates found',\n emptyNoTemplates: 'No templates yet',\n failedLoad: 'Failed to load template',\n fileTree: 'File Tree',\n filterCategory: 'Category',\n loading: 'Loading templates...',\n loadingDetails: 'Loading template details...',\n noDescription: 'No description',\n notFound: 'Template not found',\n searchPlaceholder: 'Search templates...',\n setupInstructions: 'Setup Instructions',\n showingResults: 'Showing {{filtered}} of {{total}} templates',\n sourceComponent: 'Source Component',\n title: 'Templates',\n },\n tunnels: {\n port: 'Port',\n },\n vibeDeck: {\n cancel: 'Cancel',\n colorTheme: 'Color Theme',\n columns: 'Columns',\n description: 'Description',\n descriptionPlaceholder: 'Optional description...',\n dropHere: 'Drop here',\n gridLayout: 'Grid Layout',\n name: 'Name',\n namePlaceholder: 'My Vibe Deck',\n rows: 'Rows',\n save: 'Save',\n saving: 'Saving...',\n },\n vibeDetails: {\n activate: 'Activate',\n addToCatalog: 'Add to Catalog',\n addToCatalogTitle: 'Add Vibe to Catalog',\n archive: 'Archive',\n backToVibes: 'Back to Vibe',\n branch: 'Branch',\n catalogs: 'Catalogs',\n catalogsTitle: 'Catalogs',\n childVibes: 'Child Vibes',\n config: 'Config',\n created: 'Created',\n deactivate: 'Deactivate',\n docs: 'Docs',\n environmentVariables: 'Environment Variables',\n failedLoad: 'Failed to load vibe',\n features: 'Features',\n git: 'Git',\n gitInformation: 'Git Information',\n gitops: 'GitOps',\n gitopsTitle: 'GitOps',\n graphqlPlayground: 'GraphQL',\n graphqlPlaygroundTitle: 'GraphQL Playground',\n loadApi: 'Load API',\n loadingCatalogs: 'Loading catalogs...',\n loadingConfig: 'Loading saved configuration...',\n loadingDetails: 'Loading vibe details...',\n new: 'New',\n newSessionFor: 'New Session for',\n noAgentAvailable: 'No agent available. Please configure an agent first.',\n noAgentTunnel: 'No agent tunnel available',\n noCatalogs: 'Not in any catalogs',\n noDescription: 'No description',\n noGitInformation: 'No git information',\n noRelatedEntities: 'No related entities',\n noSessionsForVibe: 'No sessions for this vibe',\n notFound: 'Vibe not found',\n notFoundDescriptionPrefix: 'No vibe with ID',\n notFoundDescriptionSuffix: 'exists',\n notes: 'Notes',\n openInEditor: 'Open in Editor',\n openInLocalVscode: 'Open in local VS Code',\n parentVibe: 'Parent Vibe',\n path: 'Path',\n related: 'Related',\n remote: 'Remote',\n removeFromCatalog: 'Remove from catalog',\n restPlayground: 'REST',\n restPlaygroundTitle: 'REST API Playground',\n runningOnAgent: 'Running on Agent',\n scorecard: 'Scorecard',\n sessionCommandPlaceholder: 'bash',\n sessionName: 'Session Name',\n sessionNamePlaceholder: 'dev-terminal',\n sessionNameRequired: 'Session name is required',\n tabsAriaLabel: 'Vibe tabs',\n tags: 'Tags',\n timeline: 'Timeline',\n updated: 'Updated',\n workingDirectory: 'Working Directory',\n },\n vibeDocs: {\n documentation: 'Documentation',\n exitFullscreen: 'Exit fullscreen',\n failedLoadDocs: 'Failed to load docs',\n failedLoadDocumentation: 'Failed to load documentation',\n fullscreen: 'Fullscreen',\n goToVibeDetails: 'Go to Vibe Details',\n loadingDocumentation: 'Loading documentation...',\n retry: 'Retry',\n },\n vibeTask: {\n accessDenied: 'Access Denied',\n action: 'Action',\n actionExecutorHint: 'Executor config comes from the Action definition.',\n actions: 'Actions',\n execHistory: 'Execution History',\n exitCode: 'Exit Code',\n lastRun: 'Last run',\n loadingPermissions: 'Loading permissions...',\n loadingTask: 'Loading task details...',\n next: 'Next',\n noExecutions: 'No executions yet',\n oneTime: 'One-time',\n recurring: 'Recurring',\n schedule: 'Schedule',\n started: 'Started',\n status: 'Status',\n triggerNow: 'Trigger Now',\n viewLogs: 'View Logs',\n },\n vibecontrols: {\n actions: {\n card: {\n addToCalendar: 'Add to calendar',\n delete: 'Delete',\n duplicate: 'Duplicate',\n edit: 'Edit',\n execute: 'Execute',\n executionRuns: '{{count}} runs',\n hoursAgo: '{{count}}h ago',\n justNow: 'Just now',\n minutesAgo: '{{count}}m ago',\n never: 'Never',\n runs: 'runs',\n schedule: 'Schedule this action',\n },\n executionHistory: {\n close: 'Close',\n noExecutions: 'No executions yet',\n recentExecutions: 'Recent Executions',\n },\n form: {\n actionType: 'Action Type',\n anyAvailableAgent: 'Any available agent',\n authType: 'Auth Type',\n bodyJson: 'Body (JSON)',\n cancel: 'Cancel',\n category: 'Category',\n command: 'Command',\n commandSettings: 'Command Settings',\n createAction: 'Create Action',\n description: 'Description',\n displayName: 'Display Name',\n interpreter: 'Interpreter',\n method: 'Method',\n nameSlug: 'Name (slug)',\n offline: '(offline)',\n requireConfirmation: 'Require confirmation',\n retryCount: 'Retry Count',\n saving: 'Saving...',\n schedule: 'Schedule (cron expression)',\n script: 'Script',\n scriptSettings: 'Script Settings',\n tags: 'Tags (comma separated)',\n targetAgent: 'Target Agent',\n timeout: 'Timeout (ms)',\n triggerType: 'Trigger Type',\n updateAction: 'Update Action',\n url: 'URL',\n webhookSettings: 'Webhook Settings',\n workingDirectory: 'Working Directory',\n },\n },\n agentManager: {\n adminBar: {\n openFullPage: 'Open full page',\n },\n bridle: {\n clear: 'Clear',\n command: 'Command',\n commandCopied: 'Command copied to clipboard',\n configuration: 'Configuration',\n copiedToClipboard: 'Copied to clipboard',\n initialize: 'Initialize',\n installFromGithub: 'Install from GitHub',\n listProfiles: 'List Profiles',\n profileName: 'Profile Name',\n quickActions: 'Quick Actions',\n showProfile: 'Show Profile',\n showStatus: 'Show Status',\n supportedHarnesses: 'Supported Harnesses',\n title: 'Bridle — Cross-Harness Config Manager',\n },\n bulkActions: {\n cancel: 'Cancel',\n cannotUndo: 'This action cannot be undone.',\n clearSelection: 'Clear selection',\n delete: 'Delete',\n deleteConfirm: 'Are you sure you want to delete',\n deleteSelected: 'Delete selected',\n deleteSessionsTitle: 'Delete Sessions',\n export: 'Export',\n exportSelected: 'Export selected',\n selected: 'selected',\n session: 'session',\n sessions: 'sessions',\n },\n center: {\n close: 'Close',\n createNewSession: 'Create a new session',\n keyboardShortcuts: 'Keyboard Shortcuts',\n noActiveSession: 'No active session',\n },\n bookmarksDrawer: {\n editLabel: 'Edit label',\n empty: 'No bookmarks in this session yet',\n emptyHint: 'Click the bookmark icon on any message to save it for later.',\n fromAssistant: 'Assistant reply',\n fromUser: 'From you',\n jump: 'Jump to message',\n labelPlaceholder: 'Add a label (optional)',\n seeAll: 'See all bookmarks across sessions',\n stale: 'Message no longer available',\n title: 'Bookmarks in this session',\n },\n chatPane: {\n bookmarksLabel: 'Bookmarks',\n bookmarksTooltip: 'View bookmarked messages',\n searchInSession: 'Search in session',\n },\n config: {\n advancedJson: 'Advanced (JSON)',\n maxTokens: 'Max Tokens',\n model: 'Model',\n quickSettings: 'Quick Settings',\n save: 'Save',\n saving: 'Saving...',\n systemPrompt: 'System Prompt',\n temperature: 'Temperature (0-1)',\n terminate: 'Terminate',\n terminateSessionTitle: 'Terminate Session',\n },\n controls: {\n agentDefault: 'Agent (default)',\n attachFile: 'Attach file',\n disableVoice: 'Disable voice mode',\n enableVoice: 'Enable voice mode',\n listening: 'Listening...',\n noMatchingServers: 'No matching servers',\n noMatchingVibes: 'No matching vibes',\n noMcpServers: 'No MCP servers available',\n noModelsAvailable: 'No models available',\n noVibesAvailable: 'No vibes available',\n },\n detailPanel: {\n closePanel: 'Close detail panel',\n },\n dialogs: {\n cancel: 'Cancel',\n chooseFormat: 'Choose the export format:',\n create: 'Create',\n creating: 'Creating...',\n export: 'Export',\n exportSession: 'Export Session',\n exporting: 'Exporting...',\n model: 'Model',\n name: 'Name',\n newSession: 'New Session',\n noResultsFound: 'No results found',\n renameSession: 'Rename Session',\n save: 'Save',\n sdkAndMode: 'SDK & Mode',\n searching: 'Searching...',\n tagsLabel: 'Tags (comma-separated)',\n },\n inputArea: {\n cancel: 'Cancel',\n hideThinking: 'Hide thinking',\n schedule: 'Schedule',\n scheduleSend: 'Schedule send',\n send: 'Send (Enter)',\n sendAt: 'Send at:',\n showThinking: 'Show thinking',\n },\n layout: {\n closeSidebar: 'Close sidebar',\n details: 'Details',\n openDetailPanel: 'Open detail panel',\n openSidebar: 'Open sidebar',\n sessions: 'Sessions',\n },\n logs: {\n disableAutoRefresh: 'Disable auto-refresh',\n enableAutoRefresh: 'Enable auto-refresh',\n noLogsMatch: 'No logs match the selected filters',\n },\n messageItem: {\n bookmarkMessage: 'Bookmark message',\n copyMessage: 'Copy message',\n removeBookmark: 'Remove bookmark',\n tokens: 'tokens',\n },\n messageList: {\n noResults: 'No messages match your search',\n startConversation: 'Start a conversation',\n },\n sessionItem: {\n deleteSession: 'Delete session',\n editTags: 'Edit tags',\n pin: 'Pin',\n unpin: 'Unpin',\n },\n sessionList: {\n noSessionsYet: 'No sessions yet',\n retry: 'Retry',\n },\n sidebar: {\n hideFilters: 'Hide filters',\n newSession: 'New Session',\n showFilters: 'Show filters',\n },\n stats: {\n avgLatency: 'Avg Latency',\n inputTokens: 'Input Tokens',\n outputTokens: 'Output Tokens',\n requests: 'Requests',\n totalTokens: 'Total Tokens',\n },\n streaming: {\n cancelEscape: 'Cancel (Escape)',\n cancelStreaming: 'Cancel streaming',\n stop: 'Stop',\n thinking: 'Thinking...',\n },\n tab: {\n close: 'Close',\n },\n tabBar: {\n createNewSession: 'Create new session',\n enterFullscreen: 'Enter fullscreen',\n exitFullscreen: 'Exit fullscreen',\n exportSession: 'Export session',\n keyboardShortcuts: 'Keyboard shortcuts',\n newSession: 'New session (Ctrl+N)',\n searchSessions: 'Search sessions (Ctrl+K)',\n },\n tools: {\n installed: 'Installed',\n noToolsAvailable: 'No tools available',\n notInstalled: 'Not installed',\n },\n },\n agents: {\n addAgent: 'Add Agent',\n backup: {\n backupIfChanged: 'Backup if Changed',\n backupNow: 'Backup Now',\n configuration: 'Configuration',\n disableSchedule: 'Disable Schedule',\n disabled: 'Disabled',\n enableSchedule: 'Enable Schedule',\n enabled: 'Enabled',\n history: 'Backup History',\n loading: 'Loading backup settings...',\n scheduler: 'Scheduler',\n status: 'Status',\n target: 'Target',\n testConnection: 'Test Connection',\n title: 'Database Backup',\n totalBackups: 'Total Backups',\n },\n columnActions: 'Actions',\n columnAgent: 'Agent',\n columnArch: 'Arch',\n columnLastHeartbeat: 'Last Heartbeat',\n columnPlatform: 'Platform',\n columnStatus: 'Status',\n deselectAll: 'Deselect All',\n editor: {\n checking: 'Checking...',\n installing: 'Installing...',\n notInstalled:\n \"Code-server isn't available on this agent. Install the code-server plugin (Plugins tab) to enable Open Editor.\",\n openEditor: 'Open Editor',\n opened: 'Opened',\n retry: 'Retry',\n starting: 'Starting...',\n },\n emptyTitle: 'No agents configured',\n selectAll: 'Select All',\n },\n ai: {\n assistant: {\n clearConversation: 'Clear conversation',\n howCanIHelp: 'How can I help?',\n sendMessage: 'Send message',\n shiftEnterHint: 'Shift+Enter for new line',\n title: 'AI Assistant',\n },\n contexts: {\n add: 'Add',\n addTagPlaceholder: 'Add a tag...',\n cancel: 'Cancel',\n clearSelection: 'Clear selection',\n content: 'Content',\n create: 'Create',\n deleteSelected: 'Delete Selected',\n editContext: 'Edit Context',\n emptyTitle: 'No contexts yet',\n loadFailed: 'Failed to load contexts',\n loading: 'Loading contexts...',\n name: 'Name',\n namePlaceholder: 'Context name',\n newContext: 'New Context',\n saving: 'Saving...',\n selectAllVisible: 'Select all visible',\n selected: 'selected',\n tags: 'Tags',\n type: 'Type',\n update: 'Update',\n },\n overview: {\n activeSessions: 'Active Sessions',\n loadFailed: 'Failed to load overview',\n loading: 'Loading AI overview...',\n noPrompts: 'No prompts dispatched yet',\n noSessions: 'No sessions yet',\n queuedPrompts: 'Queued Prompts',\n recentPrompts: 'Recent Prompts',\n recentSessions: 'Recent Sessions',\n totalSessions: 'Total Sessions',\n totalTokens: 'Total Tokens',\n },\n playground: {\n endpoint: 'Endpoint',\n execute: 'Execute',\n executing: 'Executing...',\n loadFailed: 'Failed to load API',\n loading: 'Loading API descriptor...',\n noEndpoints: 'No API endpoints',\n parameters: 'Parameters',\n response: 'Response',\n },\n prompts: {\n attachContexts: 'Attach Contexts',\n composePrompt: 'Compose Prompt',\n dispatchHistory: 'Dispatch History',\n generate: 'Generate',\n generateFromTemplate: 'Generate from Template',\n generating: 'Generating...',\n loadFailed: 'Failed to load data',\n loading: 'Loading prompts...',\n noContexts: 'No contexts available',\n noDispatched: 'No dispatched prompts',\n selectSession: 'Select session...',\n selectTemplate: 'Select a template...',\n sendToSession: 'Send to Session',\n sending: 'Sending...',\n targetSession: 'Target Session',\n },\n sessions: {\n agentType: 'Agent Type',\n cancel: 'Cancel',\n create: 'Create',\n creating: 'Creating...',\n emptyTitle: 'No AI sessions',\n loadFailed: 'Failed to load sessions',\n loading: 'Loading sessions...',\n name: 'Name',\n newAISession: 'New AI Session',\n newSession: 'New Session',\n },\n stats: {\n inputTokens: 'Input Tokens',\n loadFailed: 'Failed to load stats',\n loading: 'Loading stats...',\n outputTokens: 'Output Tokens',\n refresh: 'Refresh',\n sessionsByStatus: 'Sessions by Status',\n tokenDistribution: 'Token Distribution',\n totalTokens: 'Total Tokens',\n usageByProvider: 'Usage by Provider',\n },\n tasks: {\n clearSelection: 'Clear selection',\n createTask: 'Create Task',\n deleteSelected: 'Delete Selected',\n description: 'Description',\n emptyTitle: 'No AI tasks',\n loadFailed: 'Failed to load tasks',\n loading: 'Loading AI tasks from PlanMagnet...',\n moveSelected: 'Move Selected',\n newAITask: 'New AI Task',\n noWorkspace: 'No workspace selected',\n retry: 'Retry',\n selectAllVisible: 'Select all visible',\n selected: 'selected',\n title: 'Title',\n titlePlaceholder: 'Task title',\n },\n templates: {\n adjustSearch: 'Try adjusting your search query',\n editTemplate: 'Edit Template',\n emptyTitle: 'No templates yet',\n loadFailed: 'Failed to load templates',\n loading: 'Loading templates...',\n newTemplate: 'New Template',\n noMatch: 'No templates match your search',\n previewTemplate: 'Preview Template',\n render: 'Render',\n rendering: 'Rendering...',\n searchPlaceholder: 'Search templates...',\n },\n },\n analytics: {\n cached: 'Cached',\n kpi: {\n actions: 'Actions',\n agents: 'Agents',\n aiEvents: 'AI Events',\n auditLogs: 'Audit Logs',\n docs: 'Docs',\n executions: 'Executions',\n notes: 'Notes',\n sessions: 'Sessions',\n targets: 'Targets',\n vibeDecks: 'Vibe Decks',\n vibes: 'Vibes',\n webhooks: 'Webhooks',\n },\n loading: 'Loading...',\n noData: 'No data',\n refresh: 'Refresh',\n sandbox: {\n expired: 'Expired',\n failed: 'Failed',\n noRecentActivity: 'No recent sandbox activity',\n recentActivity: 'Recent Sandbox Activity',\n resourceUtilization: 'Resource Utilization',\n running: 'Running',\n totalCpuUsed: 'Total CPU Used',\n totalCreated: 'Total Created',\n totalMemoryUsed: 'Total Memory Used',\n },\n },\n assistant: {\n chatInput: {\n ariaLabel: 'Message input',\n send: 'Send message',\n },\n conversations: {\n empty: 'No conversations yet',\n new: 'New conversation',\n startNew: 'Start a new conversation',\n title: 'Conversations',\n },\n export: {\n ariaLabel: 'Export conversation',\n json: 'Export as JSON',\n markdown: 'Export as Markdown',\n },\n markdown: {\n copied: 'Copied',\n copy: 'Copy',\n copyCode: 'Copy code',\n },\n message: {\n downloads: 'Downloads',\n },\n messageList: {\n ariaLabel: 'Conversation messages',\n },\n modeSelector: {\n ariaLabel: 'Select assistant mode',\n },\n panel: {\n ariaLabel: 'AI Assistant',\n close: 'Close assistant',\n title: 'AI Assistant',\n toggleList: 'Toggle conversation list',\n },\n welcome: {\n suggestions: 'Suggestions',\n title: 'VibeControls Assistant',\n },\n },\n audit: {\n cancel: 'Cancel',\n deleting: 'Deleting...',\n reasonLabel: 'Reason for deletion',\n },\n bookmarks: {\n empty: \"You haven't bookmarked any messages yet\",\n emptyHint:\n 'Open any AI Chat session and click the bookmark icon on a message to save it here.',\n jumpToMessage: 'Jump to message in session',\n notFoundInSession: 'Bookmarked message not found',\n openInSession: 'Open session',\n pageSubtitle: 'Every AI Chat message you have bookmarked across all sessions.',\n pageTitle: 'Saved messages',\n unlabeled: 'Unlabeled bookmark',\n },\n calendar: {\n agenda: {\n noTasks: 'No scheduled tasks in this range',\n },\n day: {\n taskScheduled: 'task scheduled',\n tasksScheduled: 'tasks scheduled',\n },\n header: {\n scheduleTask: 'Schedule Task',\n today: 'Today',\n },\n month: {\n more: 'more',\n },\n schedule: {\n actionToSchedule: 'Action to Schedule',\n addActionToCalendar: 'Add Action to Calendar',\n cancel: 'Cancel',\n creating: 'Creating...',\n description: 'Description',\n runAt: 'Run At',\n schedule: 'Schedule',\n scheduleBtn: 'Schedule',\n selectActionFirst: 'Select an Action first',\n timezone: 'Timezone',\n title: 'Title',\n },\n },\n dashboard: {\n title: 'Dashboard',\n },\n docs: {\n compile: {\n built: 'Built',\n failed: 'Failed',\n published: 'Published',\n },\n edit: {\n compile: 'Compile',\n preview: 'Preview',\n },\n editor: {\n pageTitle: 'Page title',\n selectPage: 'Select a page to edit',\n },\n empty: {\n createDocs: 'Create Documentation',\n title: 'No documentation yet',\n },\n pageTree: {\n addFirstPage: 'Add your first page',\n noPages: 'No pages yet',\n pages: 'Pages',\n },\n preview: {\n compileDocs: 'Compile Docs',\n edit: 'Edit',\n openFullScreen: 'Open Full Screen',\n startEditing: 'Start Editing',\n },\n settings: {\n save: 'Save Settings',\n saving: 'Saving...',\n title: 'Site Settings',\n },\n tab: {\n loadFailed: 'Failed to load docs',\n loading: 'Loading documentation...',\n },\n },\n gitops: {\n ciTab: {\n avgDuration: 'Avg Duration',\n columnBranch: 'Branch',\n columnDuration: 'Duration',\n columnStatus: 'Status',\n columnTime: 'Time',\n columnTrigger: 'Trigger',\n columnWorkflow: 'Workflow',\n failedRuns: 'Failed Runs',\n noRuns: 'No pipeline runs found',\n noWorkflows: 'No workflows found',\n perPipelineRun: 'per pipeline run',\n recentRuns: 'Recent Runs',\n successRate: 'Success Rate',\n viewFullDetails: 'View full details',\n viewRun: 'View run',\n workflows: 'Workflows',\n },\n provider: {\n active: 'Active',\n inactive: 'Inactive',\n },\n repoStats: {\n activity: 'Activity',\n issues: 'Issues',\n languages: 'Languages',\n noLanguageData: 'No language data available',\n noOpenIssues: 'No open issues — looking good!',\n noOpenPRs: 'No open pull requests',\n noVulnerabilities: 'No known vulnerabilities',\n pullRequests: 'Pull Requests',\n security: 'Security',\n topContributors: 'Top contributors',\n view: 'View',\n },\n setup: {\n agent: 'Agent',\n connect: 'Connect Repository',\n name: 'Name',\n providerType: 'Provider Type',\n repoUrl: 'Repository URL',\n title: 'Connect a Repository',\n },\n },\n graph: {\n noAgentInstalled: 'No agent installed',\n permissionsSaved: 'Permissions saved',\n },\n notes: {\n cancel: 'Cancel',\n columnActions: 'Actions',\n columnTags: 'Tags',\n columnTitle: 'Title',\n columnUpdated: 'Updated',\n columnVibe: 'Vibe',\n createNote: 'Create Note',\n edit: 'Edit',\n editNote: 'Edit Note',\n emptyTitle: 'No notes yet',\n newNote: 'New Note',\n pinThisNote: 'Pin this note',\n preview: 'Preview',\n relatedVibe: 'Related Vibe (optional)',\n saveNote: 'Save Note',\n saving: 'Saving...',\n tags: 'Tags',\n titlePlaceholder: 'Note title...',\n },\n pages: {\n ai: {\n back: 'Back',\n dangerZone: 'Danger Zone',\n goToAgents: 'Go to Agents',\n noActiveAgent: 'No active agent',\n noActiveAgentAvailable: 'No active agent available',\n saveConfig: 'Save Config',\n savedSuccessfully: 'Saved successfully',\n saving: 'Saving...',\n send: 'Send',\n sessionConfig: 'Session Configuration',\n terminateSession: 'Terminate Session',\n terminating: 'Terminating...',\n thinking: 'Thinking...',\n },\n },\n sessions: {\n card: {\n openTerminal: 'Open Terminal',\n restart: 'Restart',\n shareSession: 'Share Session',\n start: 'Start',\n stop: 'Stop',\n terminate: 'Terminate',\n },\n collaborators: {\n editor: 'Editor',\n giveControl: 'Give control',\n hasControl: 'Has Control',\n owner: 'Owner',\n requestControl: 'Request Control',\n requesting: 'Requesting...',\n title: 'Collaborators',\n transferControl: 'Transfer control',\n viewOnlyMode: 'View only mode',\n viewer: 'Viewer',\n viewing: 'Viewing',\n you: 'You',\n },\n control: {\n hasControl: 'has control',\n noControl: 'No control',\n noOneHasControl: 'No one has control',\n releaseControl: 'Release Control',\n releasing: 'Releasing...',\n requesting: 'Requesting...',\n someone: 'Someone',\n takeControl: 'Take Control',\n userHasControl: '{{username}} has control',\n viewOnly: 'View only',\n watching: 'watching',\n you: 'You',\n youHaveControl: 'You have control',\n },\n form: {\n agent: 'Agent',\n autoStart: 'Auto-start when agent connects',\n cancel: 'Cancel',\n command: 'Command',\n createSession: 'Create Session',\n creating: 'Creating...',\n editSession: 'Edit Session',\n name: 'Name',\n newSession: 'New Session',\n saveChanges: 'Save Changes',\n selectAgent: 'Select Agent...',\n selectVibe: 'Select Vibe...',\n type: 'Type',\n vibeProject: 'Vibe (Project)',\n workingDirectory: 'Working Directory',\n },\n list: {\n colActions: 'Actions',\n colAgent: 'Agent',\n colName: 'Name',\n colStatus: 'Status',\n colType: 'Type',\n colUpdated: 'Updated',\n colVibe: 'Vibe',\n noSessionsTitle: 'No sessions yet',\n startSession: 'Start Session',\n terminate: 'Terminate',\n },\n share: {\n activeLinks: 'Active Links',\n canControl: 'Can Control',\n createLink: 'Create Link',\n createShareLink: 'Create Share Link',\n creating: 'Creating...',\n currentlySharedWith: 'Currently Shared With',\n emailAddress: 'Email Address',\n expiresIn: 'Expires In',\n linkNameOptional: 'Link Name (optional)',\n maxUses: 'Max Uses',\n messageOptional: 'Message (optional)',\n passwordOptional: 'Password (optional)',\n permission: 'Permission',\n shareSession: 'Share Session',\n shareWithUser: 'Share with User',\n sharing: 'Sharing...',\n title: 'Share Session',\n viewOnly: 'View Only',\n },\n shared: {\n isTyping: 'is typing',\n release: 'Release',\n requestControl: 'Request control',\n requesting: 'Requesting...',\n someone: 'Someone',\n takeControl: 'Take control',\n viewOnly: 'View Only',\n viewOnlyCannotType: 'View only - You cannot type in this session',\n youHaveControl: 'You have control',\n },\n sharedTerminal: {\n userTyping: '{{name}} is typing',\n },\n terminal: {\n closeTab: 'Close Tab',\n connecting: 'Connecting...',\n connectionLost: 'Connection Lost',\n newSession: 'New Session',\n noTerminalsOpen: 'No terminals open',\n openInNewTab: 'Open in New Tab',\n reconnect: 'Reconnect',\n reconnectNow: 'Reconnect Now',\n rename: 'Rename',\n restartTerminal: 'Restart Terminal',\n retry: 'Retry',\n stopTerminal: 'Stop Terminal',\n },\n },\n settings: {\n add: 'Add',\n addNewConfig: 'Add New Configuration',\n close: 'Close',\n items: 'items',\n manageConfig: 'Manage configuration values',\n markAsSecret: 'Mark as secret',\n },\n shared: {\n agentSetupBanner: {\n clickToCopy: 'Click to copy',\n dismiss: 'Dismiss',\n npmPackage: 'npm package',\n setupGuide: 'Setup guide',\n },\n confirmDialog: {\n cancel: 'Cancel',\n confirm: 'Confirm',\n processing: 'Processing...',\n },\n entityTagPicker: {\n addTag: 'Add Tag',\n assignedTags: 'Assigned tags',\n dismissError: 'Dismiss error',\n done: 'Done',\n failedToAddTag: 'Failed to add tag',\n failedToRemoveTag: 'Failed to remove tag',\n loading: 'Loading...',\n loadingTags: 'Loading tags...',\n noAvailableTags: 'No available tags',\n noMatchingTags: 'No matching tags',\n noTagsAssigned: 'No tags assigned',\n tagSuggestions: 'Tag suggestions',\n untitledTag: 'Untitled tag',\n },\n errorState: {\n title: 'Something went wrong',\n tryAgain: 'Try Again',\n },\n filterDropdown: {\n all: 'All',\n },\n getHelpButton: {\n label: 'Get Help',\n tooltip: 'Ask the assistant to explain',\n },\n installTabs: {\n clickToCopy: 'Click to copy',\n curlRecommended: 'Curl (Recommended)',\n linux: 'Linux',\n macos: 'macOS',\n npm: 'NPM',\n viewInstallScript: 'View the install script',\n windows: 'Windows',\n },\n loadingState: {\n loading: 'Loading...',\n },\n notificationToast: {\n moreNotifications: 'more notification(s)',\n },\n quotaExhaustedDialog: {\n dismiss: 'Dismiss',\n title: 'Quota Reached',\n viewBilling: 'View Billing',\n },\n searchInput: {\n placeholder: 'Search...',\n },\n searchableSelect: {\n noOptionsFound: 'No options found',\n placeholder: 'Select...',\n searchPlaceholder: 'Search...',\n },\n sessionNotificationBanner: {\n connecting: 'Connecting...',\n disconnected: 'Disconnected',\n live: 'Live',\n reconnect: 'Reconnect',\n },\n tagFilter: {\n all: 'All',\n label: 'Tag',\n },\n },\n targets: {\n deleteTarget: 'Delete Target',\n editTarget: 'Edit Target',\n installAgent: 'Install Agent',\n openTerminal: 'Open Terminal',\n testConnection: 'Test Connection',\n uninstallAgent: 'Uninstall Agent',\n },\n tunnels: {\n audit: {\n emptyEntriesTitle: 'No audit entries yet',\n emptyTitle: 'Open a tunnel to see its audit trail',\n title: 'Audit',\n },\n back: 'Back',\n cli: {\n followSessions: 'Follow sessions',\n issueToken: 'Issue a one-shot token',\n rotateCredentials: 'Rotate credentials',\n startLocally: 'Start locally',\n stop: 'Stop',\n },\n createTitle: 'Create tunnel',\n createTunnel: 'Create tunnel',\n creating: 'Creating...',\n detail: {\n audit: 'Audit',\n cli: 'CLI',\n domains: 'Domains',\n endpoints: 'Endpoints',\n overview: 'Overview',\n sessions: 'Sessions',\n settings: 'Settings',\n usage: 'Usage',\n },\n domains: {\n addDomain: 'Add domain',\n adding: 'Adding...',\n attachCustomDomain: 'Attach a custom domain',\n emptyTitle: 'No domains yet',\n title: 'Domains',\n },\n list: {\n createTunnel: 'Create tunnel',\n emptyTitle: 'No tunnels yet',\n newTunnel: 'New tunnel',\n title: 'Tunnels',\n },\n next: 'Next',\n noDomain: 'No domain attached',\n open: 'Open',\n overview: {\n activity: 'Activity',\n configuration: 'Configuration',\n },\n providers: {\n emptyTitle: 'No providers registered',\n title: 'Providers',\n },\n review: 'Review',\n sessions: {\n emptySessionsTitle: 'No sessions',\n emptyTitle: 'No active sessions',\n revoke: 'Revoke',\n title: 'Sessions',\n },\n settings: {\n deleteTunnel: 'Delete tunnel',\n deleteTunnelBtn: 'Delete tunnel',\n rotateCredentials: 'Rotate credentials',\n rotateNow: 'Rotate now',\n rotating: 'Rotating...',\n },\n start: 'Start',\n stop: 'Stop',\n tabs: {\n audit: 'Audit',\n domains: 'Domains',\n providers: 'Providers',\n sessions: 'Sessions',\n tunnels: 'Tunnels',\n usage: 'Usage',\n },\n usage: {\n emptyTitle: 'Usage aggregation coming soon',\n emptyUsageTitle: 'No usage yet',\n title: 'Usage',\n },\n },\n vibedeck: {\n buttonForm: {\n action: 'Action',\n cancel: 'Cancel',\n createNewAction: 'Create new action',\n label: 'Label',\n requireConfirmation: 'Require confirmation',\n save: 'Save',\n saving: 'Saving...',\n },\n executionLog: {\n title: 'Execution Log',\n },\n share: {\n createLink: 'Create Link',\n createShareLink: 'Create share link',\n manageAccess: 'Manage access to this VibeDeck',\n noLinks: 'No share links yet',\n },\n switcher: {\n delete: 'Delete',\n duplicate: 'Duplicate',\n editDeck: 'Edit deck',\n newDeck: 'New Deck',\n setDefault: 'Set as default',\n share: 'Share',\n },\n },\n vibes: {\n form: {\n agent: 'Agent',\n cancel: 'Cancel',\n createNewVibe: 'Create New Vibe',\n createVibe: 'Create Vibe',\n description: 'Description',\n editVibe: 'Edit Vibe',\n name: 'Name',\n path: 'Path',\n saveChanges: 'Save Changes',\n saving: 'Saving...',\n selectAgent: 'Select Agent...',\n tags: 'Tags (comma-separated)',\n type: 'Type',\n },\n list: {\n createVibe: 'Create Vibe',\n emptyTitle: 'No vibes yet',\n },\n },\n webhooks: {\n addWebhook: 'Add Webhook',\n emptyTitle: 'No webhooks configured',\n },\n },\n vibesPage: {\n accessDeniedTitle: 'Access Denied',\n addNewVibe: 'Add New Vibe',\n addVibe: 'Add Vibe',\n agentLabel: 'Agent',\n allAgents: 'All Agents',\n cancel: 'Cancel',\n createVibe: 'Create Vibe',\n createdSuccess: 'Vibe created successfully',\n creating: 'Creating...',\n descriptionActive: '{{active}} of {{total}} vibes active',\n dismiss: 'Dismiss',\n emptyAdjustSearch: 'Try adjusting your search or filters',\n emptyNoVibesConfigured: 'No vibes configured',\n emptyNoVibesFound: 'No vibes found',\n failedCreate: 'Failed to create vibe',\n failedLoad: 'Failed to load vibes',\n fillRequired: 'Please fill in all required fields',\n filterAgent: 'Agent',\n filterStatus: 'Status',\n filterType: 'Type',\n gridViewTitle: 'Grid view',\n listViewTitle: 'List view',\n loadingPermissions: 'Loading permissions...',\n loadingVibes: 'Loading vibes...',\n nameLabel: 'Name *',\n namePlaceholder: 'My Project',\n nameRequired: 'Name is required',\n openEditorPathMissing: 'No path available to open in editor',\n pathLabel: 'Path *',\n pathPlaceholder: '/path/to/project',\n pathRequired: 'Path is required',\n refreshTitle: 'Refresh vibes',\n refreshing: '(refreshing...)',\n searchPlaceholder: 'Search vibes...',\n selectAgent: 'Select an agent',\n showingResults: 'Showing {{filtered}} of {{total}} vibes',\n statusActive: 'Active',\n statusAll: 'All Statuses',\n statusArchived: 'Archived',\n statusError: 'Error',\n statusInactive: 'Inactive',\n title: 'Vibes',\n typeAll: 'All Types',\n typeCustom: 'Custom',\n typeLabel: 'Type',\n typeMonorepo: 'Monorepo',\n typePackage: 'Package',\n typeProject: 'Project',\n typeRepository: 'Repository',\n typeWorkspace: 'Workspace',\n },\n webhooks: {\n active: 'Active',\n agent: 'agent',\n agentScope: 'Agent Scope',\n createWebhook: 'Create Webhook',\n createdSuccess: 'Webhook created successfully',\n creating: 'Creating...',\n customEventPlaceholder: 'custom:event-name',\n deletedSuccess: 'Webhook deleted successfully',\n deliveries: 'deliveries',\n disable: 'Disable',\n disabledSuccess: 'Webhook disabled successfully',\n emptyAdjustSearch: 'Try adjusting your search or filters',\n emptyConfigured: 'No webhooks configured',\n emptyFound: 'No webhooks found',\n enable: 'Enable',\n enabledSuccess: 'Webhook enabled successfully',\n error: 'Error',\n eventRequired: 'At least one event must be selected',\n events: 'Events',\n failedCreate: 'Failed to create webhook',\n failedDelete: 'Failed to delete webhook',\n failedLoad: 'Failed to load webhooks',\n failedTest: 'Failed to test webhook',\n failedToggle: 'Failed to update webhook state',\n failures: 'failures',\n gridViewTitle: 'Grid view',\n inactive: 'Inactive',\n justNow: 'Just now',\n lastDelivery: 'Last delivery',\n lastError: 'Last error',\n listViewTitle: 'List view',\n loading: 'Loading webhooks...',\n name: 'Name',\n namePlaceholder: 'Slack Notifications',\n nameRequired: 'Name is required',\n never: 'Never',\n newWebhook: 'New Webhook',\n of: 'of',\n refreshTitle: 'Refresh webhooks',\n refreshing: 'refreshing...',\n scopedTo: 'Scoped to',\n searchPlaceholder: 'Search webhooks...',\n secret: 'Secret',\n secretPlaceholder: 'Optional signing secret',\n showingResults: 'Showing',\n signingKey: 'Signing Key',\n status: 'Status',\n test: 'Test',\n testSuccess: 'Webhook test delivery completed',\n url: 'URL',\n urlInvalid: 'Please enter a valid URL (e.g., https://example.com/webhook)',\n urlProtocolRequired: 'URL must use http:// or https:// protocol',\n urlRequired: 'URL is required',\n withErrors: 'With Errors',\n },\n} as const;\n"],"mappings":"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Ac;IACd,WAAW;IACX,cAAc;IACd,QAAQ;IACR,iBAAiB;IACjB,OAAO;IACP,cAAc;IACf;GACF;EACD,UAAU;GACR,KAAK;GACL,cAAc;GACd,OAAO;GACP,OAAO;GACP,cAAc;GACd,cAAc;GACf;EACD,QAAQ;GACN,kBAAkB;IAChB,aAAa;IACb,SAAS;IACT,YAAY;IACZ,YAAY;IACb;GACD,eAAe;IACb,QAAQ;IACR,SAAS;IACT,YAAY;IACb;GACD,iBAAiB;IACf,QAAQ;IACR,cAAc;IACd,cAAc;IACd,MAAM;IACN,gBAAgB;IAChB,mBAAmB;IACnB,SAAS;IACT,aAAa;IACb,iBAAiB;IACjB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,aAAa;IACd;GACD,YAAY;IACV,OAAO;IACP,UAAU;IACX;GACD,gBAAgB,EACd,KAAK,OACN;GACD,eAAe;IACb,OAAO;IACP,SAAS;IACV;GACD,aAAa;IACX,aAAa;IACb,iBAAiB;IACjB,OAAO;IACP,OAAO;IACP,KAAK;IACL,mBAAmB;IACnB,SAAS;IACV;GACD,cAAc,EACZ,SAAS,cACV;GACD,mBAAmB,EACjB,mBAAmB,wBACpB;GACD,sBAAsB;IACpB,SAAS;IACT,OAAO;IACP,aAAa;IACd;GACD,aAAa,EACX,aAAa,aACd;GACD,kBAAkB;IAChB,gBAAgB;IAChB,aAAa;IACb,mBAAmB;IACpB;GACD,2BAA2B;IACzB,YAAY;IACZ,cAAc;IACd,MAAM;IACN,WAAW;IACZ;GACD,WAAW;IACT,KAAK;IACL,OAAO;IACR;GACF;EACD,SAAS;GACP,cAAc;GACd,YAAY;GACZ,cAAc;GACd,cAAc;GACd,gBAAgB;GAChB,gBAAgB;GACjB;EACD,SAAS;GACP,OAAO;IACL,mBAAmB;IACnB,YAAY;IACZ,OAAO;IACR;GACD,MAAM;GACN,KAAK;IACH,gBAAgB;IAChB,YAAY;IACZ,mBAAmB;IACnB,cAAc;IACd,MAAM;IACP;GACD,aAAa;GACb,cAAc;GACd,UAAU;GACV,QAAQ;IACN,OAAO;IACP,KAAK;IACL,SAAS;IACT,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,OAAO;IACR;GACD,SAAS;IACP,WAAW;IACX,QAAQ;IACR,oBAAoB;IACpB,YAAY;IACZ,OAAO;IACR;GACD,MAAM;IACJ,cAAc;IACd,YAAY;IACZ,WAAW;IACX,OAAO;IACR;GACD,MAAM;GACN,UAAU;GACV,MAAM;GACN,UAAU;IACR,UAAU;IACV,eAAe;IAChB;GACD,WAAW;IACT,YAAY;IACZ,OAAO;IACR;GACD,QAAQ;GACR,UAAU;IACR,oBAAoB;IACpB,YAAY;IACZ,QAAQ;IACR,OAAO;IACR;GACD,UAAU;IACR,cAAc;IACd,iBAAiB;IACjB,mBAAmB;IACnB,WAAW;IACX,UAAU;IACX;GACD,OAAO;GACP,MAAM;GACN,MAAM;IACJ,OAAO;IACP,SAAS;IACT,WAAW;IACX,UAAU;IACV,SAAS;IACT,OAAO;IACR;GACD,OAAO;IACL,YAAY;IACZ,iBAAiB;IACjB,OAAO;IACR;GACF;EACD,UAAU;GACR,YAAY;IACV,QAAQ;IACR,QAAQ;IACR,iBAAiB;IACjB,OAAO;IACP,qBAAqB;IACrB,MAAM;IACN,QAAQ;IACT;GACD,cAAc,EACZ,OAAO,iBACR;GACD,OAAO;IACL,YAAY;IACZ,iBAAiB;IACjB,cAAc;IACd,SAAS;IACV;GACD,UAAU;IACR,QAAQ;IACR,WAAW;IACX,UAAU;IACV,SAAS;IACT,YAAY;IACZ,OAAO;IACR;GACF;EACD,OAAO;GACL,MAAM;IACJ,OAAO;IACP,QAAQ;IACR,eAAe;IACf,YAAY;IACZ,aAAa;IACb,UAAU;IACV,MAAM;IACN,MAAM;IACN,aAAa;IACb,QAAQ;IACR,aAAa;IACb,MAAM;IACN,MAAM;IACP;GACD,MAAM;IACJ,YAAY;IACZ,YAAY;IACb;GACF;EACD,UAAU;GACR,YAAY;GACZ,YAAY;GACb;EACF;CACD,WAAW;EACT,mBAAmB;EACnB,YAAY;EACZ,SAAS;EACT,YAAY;EACZ,WAAW;EACX,QAAQ;EACR,YAAY;EACZ,gBAAgB;EAChB,UAAU;EACV,mBAAmB;EACnB,SAAS;EACT,mBAAmB;EACnB,wBAAwB;EACxB,mBAAmB;EACnB,cAAc;EACd,YAAY;EACZ,cAAc;EACd,aAAa;EACb,cAAc;EACd,YAAY;EACZ,eAAe;EACf,eAAe;EACf,oBAAoB;EACpB,cAAc;EACd,WAAW;EACX,iBAAiB;EACjB,cAAc;EACd,uBAAuB;EACvB,WAAW;EACX,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,YAAY;EACZ,mBAAmB;EACnB,aAAa;EACb,gBAAgB;EAChB,cAAc;EACd,WAAW;EACX,gBAAgB;EAChB,aAAa;EACb,gBAAgB;EAChB,OAAO;EACP,SAAS;EACT,YAAY;EACZ,WAAW;EACX,cAAc;EACd,aAAa;EACb,aAAa;EACb,gBAAgB;EAChB,eAAe;EAChB;CACD,UAAU;EACR,QAAQ;EACR,OAAO;EACP,YAAY;EACZ,eAAe;EACf,gBAAgB;EAChB,UAAU;EACV,wBAAwB;EACxB,gBAAgB;EAChB,YAAY;EACZ,SAAS;EACT,iBAAiB;EACjB,mBAAmB;EACnB,iBAAiB;EACjB,YAAY;EACZ,QAAQ;EACR,gBAAgB;EAChB,OAAO;EACP,eAAe;EACf,QAAQ;EACR,cAAc;EACd,cAAc;EACd,YAAY;EACZ,YAAY;EACZ,cAAc;EACd,UAAU;EACV,eAAe;EACf,UAAU;EACV,SAAS;EACT,cAAc;EACd,WAAW;EACX,eAAe;EACf,SAAS;EACT,MAAM;EACN,iBAAiB;EACjB,cAAc;EACd,OAAO;EACP,YAAY;EACZ,IAAI;EACJ,cAAc;EACd,YAAY;EACZ,UAAU;EACV,mBAAmB;EACnB,QAAQ;EACR,mBAAmB;EACnB,gBAAgB;EAChB,YAAY;EACZ,QAAQ;EACR,MAAM;EACN,aAAa;EACb,KAAK;EACL,YAAY;EACZ,qBAAqB;EACrB,aAAa;EACb,YAAY;EACb;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/microfe-vibecontrols",
3
- "version": "2026.524.3",
3
+ "version": "2026.524.4",
4
4
  "description": "VibeControls microfrontend for Burdenoff products",
5
5
  "type": "module",
6
6
  "files": [