viba-cli 0.17.0 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +2 -2
- package/.next/fallback-build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/app/_global-error.html +2 -2
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/credentials/page/server-reference-manifest.json +4 -4
- package/.next/server/app/credentials/page.js +1 -1
- package/.next/server/app/credentials/page.js.nft.json +1 -1
- package/.next/server/app/credentials/page_client-reference-manifest.js +1 -1
- package/.next/server/app/credentials.html +1 -1
- package/.next/server/app/credentials.rsc +3 -3
- package/.next/server/app/credentials.segments/_full.segment.rsc +3 -3
- package/.next/server/app/credentials.segments/_head.segment.rsc +1 -1
- package/.next/server/app/credentials.segments/_index.segment.rsc +2 -2
- package/.next/server/app/credentials.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/credentials.segments/credentials/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/credentials.segments/credentials.segment.rsc +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +3 -3
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/new/page/server-reference-manifest.json +24 -24
- package/.next/server/app/new/page.js +2 -2
- package/.next/server/app/new/page.js.nft.json +1 -1
- package/.next/server/app/new/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page/server-reference-manifest.json +24 -24
- package/.next/server/app/page.js +2 -2
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/session/[sessionId]/page/server-reference-manifest.json +48 -18
- package/.next/server/app/session/[sessionId]/page.js +2 -2
- package/.next/server/app/session/[sessionId]/page.js.nft.json +1 -1
- package/.next/server/app/session/[sessionId]/page_client-reference-manifest.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0d6c1eaa._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0d6c1eaa._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__213d5b40._.js +4 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__213d5b40._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__319c1c59._.js +4 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__319c1c59._.js.map +1 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__8a0e24f5._.js → [root-of-the-server]__352d2b3c._.js} +2 -2
- package/.next/server/chunks/ssr/{[root-of-the-server]__8a0e24f5._.js.map → [root-of-the-server]__352d2b3c._.js.map} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__3e7d3e82._.js +4 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__3e7d3e82._.js.map +1 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__0f4b4e29._.js → [root-of-the-server]__465506fb._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__465506fb._.js.map +1 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__93ddb098._.js → [root-of-the-server]__4a339c8f._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__4a339c8f._.js.map +1 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__ca6b57fd._.js → [root-of-the-server]__9201693f._.js} +2 -2
- package/.next/server/chunks/ssr/{[root-of-the-server]__ca6b57fd._.js.map → [root-of-the-server]__9201693f._.js.map} +1 -1
- package/.next/server/chunks/ssr/{[root-of-the-server]__b34e2fd7._.js → [root-of-the-server]__d07cf0e3._.js} +2 -2
- package/.next/server/chunks/ssr/{[root-of-the-server]__b34e2fd7._.js.map → [root-of-the-server]__d07cf0e3._.js.map} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__ee9c5185._.js +4 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__ee9c5185._.js.map +1 -0
- package/.next/server/chunks/ssr/src_app_session_[sessionId]_SessionPageClient_tsx_dab490d7._.js +1 -1
- package/.next/server/chunks/ssr/src_app_session_[sessionId]_SessionPageClient_tsx_dab490d7._.js.map +1 -1
- package/.next/server/chunks/ssr/src_components_GitRepoSelector_tsx_05c81afa._.js +2 -2
- package/.next/server/chunks/ssr/src_components_GitRepoSelector_tsx_05c81afa._.js.map +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +2 -2
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +71 -41
- package/.next/static/chunks/{085da7823d01cc9c.js → 23ea6e0c3ec36f45.js} +3 -3
- package/.next/static/chunks/{dd7ab75cebb1129b.css → 3ccb056bb06defd9.css} +1 -1
- package/.next/static/chunks/5a698c283b43c75e.js +1 -0
- package/.next/static/chunks/6a155eddb97350ad.js +3 -0
- package/.next/static/chunks/9b14e927da55903f.js +3 -0
- package/.next/static/chunks/{a80a958edc7d308f.js → a1db4a7daf17246a.js} +1 -1
- package/.next/static/chunks/{63199c91b9367faf.js → abf75d4c9646daac.js} +3 -3
- package/package.json +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0f4b4e29._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__53817fb3._.js +0 -4
- package/.next/server/chunks/ssr/[root-of-the-server]__53817fb3._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__93ddb098._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__97d60c43._.js +0 -4
- package/.next/server/chunks/ssr/[root-of-the-server]__97d60c43._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__99c90313._.js +0 -4
- package/.next/server/chunks/ssr/[root-of-the-server]__99c90313._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__ecb136ac._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__ecb136ac._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__eec0d3c4._.js +0 -4
- package/.next/server/chunks/ssr/[root-of-the-server]__eec0d3c4._.js.map +0 -1
- package/.next/static/chunks/455da08a17f8b156.js +0 -3
- package/.next/static/chunks/4f3394ed14b55920.js +0 -3
- package/.next/static/chunks/78bbc2b72c81a406.js +0 -1
- /package/.next/static/{wnjyGh7Tpd-C6MCeMdVV7 → OvVVXN8N9S6UXr-F40y-W}/_buildManifest.js +0 -0
- /package/.next/static/{wnjyGh7Tpd-C6MCeMdVV7 → OvVVXN8N9S6UXr-F40y-W}/_clientMiddlewareManifest.json +0 -0
- /package/.next/static/{wnjyGh7Tpd-C6MCeMdVV7 → OvVVXN8N9S6UXr-F40y-W}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/credentials.ts","../../../../src/app/actions/credentials.ts","../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/server-reference.ts","../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/action-validate.ts","../../../../src/lib/repo-resolver.ts","../../../../src/app/actions/repository.ts","../../../../.next-internal/server/app/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["import fs from 'fs/promises';\nimport os from 'os';\nimport path from 'path';\n\nconst SERVICE_NAME = 'viba-git-credentials';\nconst CREDENTIALS_FILE_NAME = 'credentials.json';\n\nexport type CredentialType = 'github' | 'gitlab';\n\nexport interface BaseCredential {\n id: string;\n type: CredentialType;\n username: string;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface GitHubCredential extends BaseCredential {\n type: 'github';\n}\n\nexport interface GitLabCredential extends BaseCredential {\n type: 'gitlab';\n serverUrl: string;\n}\n\nexport type Credential = GitHubCredential | GitLabCredential;\n\ntype CredentialMetadata = {\n id: string;\n type: CredentialType;\n username: string;\n serverUrl?: string;\n createdAt: string;\n updatedAt: string;\n keytarAccount?: string;\n};\n\ntype LegacyCredentialMetadata = {\n type: CredentialType;\n username: string;\n serverUrl?: string;\n createdAt: string;\n updatedAt: string;\n};\n\ntype KeytarModule = {\n getPassword(service: string, account: string): Promise<string | null>;\n setPassword(service: string, account: string, password: string): Promise<void>;\n deletePassword(service: string, account: string): Promise<boolean>;\n};\n\nlet keytarPromise: Promise<KeytarModule | null> | null = null;\nlet keytarUnavailableReason: string | null = null;\nlet didLogKeytarWarning = false;\n\nfunction keytarUnavailableMessage(): string {\n if (keytarUnavailableReason) {\n return `Secure credential storage is unavailable: ${keytarUnavailableReason}`;\n }\n return 'Secure credential storage is unavailable in this runtime.';\n}\n\nasync function loadKeytar(): Promise<KeytarModule | null> {\n if (!keytarPromise) {\n keytarPromise = import('keytar')\n .then((module) => (module.default ?? module) as KeytarModule)\n .catch((error: unknown) => {\n keytarUnavailableReason = error instanceof Error ? error.message : String(error);\n if (!didLogKeytarWarning) {\n didLogKeytarWarning = true;\n console.warn(`[credentials] ${keytarUnavailableMessage()}`);\n }\n return null;\n });\n }\n\n return keytarPromise;\n}\n\nasync function requireKeytar(): Promise<KeytarModule> {\n const keytar = await loadKeytar();\n if (!keytar) {\n throw new Error(keytarUnavailableMessage());\n }\n return keytar;\n}\n\nfunction generateId(): string {\n return `${Date.now()}-${Math.random().toString(36).slice(2, 9)}`;\n}\n\nfunction normalizeGitLabServerUrl(serverUrl: string): string {\n return serverUrl.trim().replace(/\\/$/, '');\n}\n\nfunction getDefaultKeytarAccount(id: string): string {\n return `credential-${id}`;\n}\n\nfunction getLegacyKeytarAccount(type: CredentialType): string {\n return `credential-${type}`;\n}\n\nfunction getKeytarAccountForMetadata(metadata: CredentialMetadata): string {\n return metadata.keytarAccount || getDefaultKeytarAccount(metadata.id);\n}\n\nfunction toCredential(metadata: CredentialMetadata): Credential {\n if (metadata.type === 'gitlab') {\n return {\n id: metadata.id,\n type: 'gitlab',\n username: metadata.username,\n serverUrl: metadata.serverUrl || 'https://gitlab.com',\n createdAt: metadata.createdAt,\n updatedAt: metadata.updatedAt,\n };\n }\n\n return {\n id: metadata.id,\n type: 'github',\n username: metadata.username,\n createdAt: metadata.createdAt,\n updatedAt: metadata.updatedAt,\n };\n}\n\nasync function getCredentialsFilePath(): Promise<string> {\n const vibaDir = path.join(os.homedir(), '.viba');\n await fs.mkdir(vibaDir, { recursive: true });\n return path.join(vibaDir, CREDENTIALS_FILE_NAME);\n}\n\nfunction isLegacyCredentialMetadata(value: unknown, expectedType: CredentialType): value is LegacyCredentialMetadata {\n if (!value || typeof value !== 'object') return false;\n\n const candidate = value as Record<string, unknown>;\n if (candidate.type !== expectedType) return false;\n if (typeof candidate.username !== 'string') return false;\n if (typeof candidate.createdAt !== 'string') return false;\n if (typeof candidate.updatedAt !== 'string') return false;\n\n if (expectedType === 'gitlab') {\n return typeof candidate.serverUrl === 'string';\n }\n\n return true;\n}\n\nfunction isCredentialMetadata(value: unknown): value is CredentialMetadata {\n if (!value || typeof value !== 'object') return false;\n\n const candidate = value as Record<string, unknown>;\n if (typeof candidate.id !== 'string' || !candidate.id.trim()) return false;\n if (candidate.type !== 'github' && candidate.type !== 'gitlab') return false;\n if (typeof candidate.username !== 'string') return false;\n if (typeof candidate.createdAt !== 'string') return false;\n if (typeof candidate.updatedAt !== 'string') return false;\n if (candidate.keytarAccount !== undefined && typeof candidate.keytarAccount !== 'string') return false;\n\n if (candidate.type === 'gitlab') {\n return typeof candidate.serverUrl === 'string';\n }\n\n return true;\n}\n\nasync function writeCredentialsMetadata(metadata: CredentialMetadata[]): Promise<void> {\n const credentialsFilePath = await getCredentialsFilePath();\n await fs.writeFile(credentialsFilePath, JSON.stringify(metadata, null, 2), 'utf-8');\n}\n\nasync function readCredentialsMetadata(): Promise<CredentialMetadata[]> {\n const credentialsFilePath = await getCredentialsFilePath();\n\n try {\n const content = await fs.readFile(credentialsFilePath, 'utf-8');\n const parsed = JSON.parse(content) as unknown;\n\n if (Array.isArray(parsed)) {\n return parsed.filter(isCredentialMetadata);\n }\n\n if (!parsed || typeof parsed !== 'object') {\n return [];\n }\n\n const legacyMapped = parsed as Record<string, unknown>;\n const migrated: CredentialMetadata[] = [];\n\n if (isLegacyCredentialMetadata(legacyMapped.github, 'github')) {\n const metadata = legacyMapped.github;\n migrated.push({\n id: generateId(),\n type: 'github',\n username: metadata.username,\n createdAt: metadata.createdAt,\n updatedAt: metadata.updatedAt,\n keytarAccount: getLegacyKeytarAccount('github'),\n });\n }\n\n if (isLegacyCredentialMetadata(legacyMapped.gitlab, 'gitlab')) {\n const metadata = legacyMapped.gitlab;\n migrated.push({\n id: generateId(),\n type: 'gitlab',\n username: metadata.username,\n serverUrl: metadata.serverUrl,\n createdAt: metadata.createdAt,\n updatedAt: metadata.updatedAt,\n keytarAccount: getLegacyKeytarAccount('gitlab'),\n });\n }\n\n if (migrated.length > 0) {\n await writeCredentialsMetadata(migrated);\n }\n\n return migrated;\n } catch (error) {\n if ((error as NodeJS.ErrnoException)?.code === 'ENOENT') {\n return [];\n }\n\n console.error('Failed to parse credentials metadata:', error);\n return [];\n }\n}\n\nexport async function getAllCredentials(): Promise<Credential[]> {\n const metadata = await readCredentialsMetadata();\n\n return metadata\n .map(toCredential)\n .sort((a, b) => b.updatedAt.localeCompare(a.updatedAt));\n}\n\nexport async function getCredentialById(id: string): Promise<Credential | null> {\n const metadata = await readCredentialsMetadata();\n const found = metadata.find((credential) => credential.id === id);\n return found ? toCredential(found) : null;\n}\n\nexport async function getCredentialToken(id: string): Promise<string | null> {\n const metadata = await readCredentialsMetadata();\n const found = metadata.find((credential) => credential.id === id);\n if (!found) {\n return null;\n }\n\n const keytar = await loadKeytar();\n if (!keytar) {\n return null;\n }\n\n return keytar.getPassword(SERVICE_NAME, getKeytarAccountForMetadata(found));\n}\n\nasync function verifyGitHubToken(token: string): Promise<{ valid: boolean; username?: string; error?: string }> {\n try {\n const response = await fetch('https://api.github.com/user', {\n headers: {\n Authorization: `Bearer ${token}`,\n Accept: 'application/vnd.github+json',\n 'X-GitHub-Api-Version': '2022-11-28',\n },\n });\n\n if (!response.ok) {\n if (response.status === 401) {\n return { valid: false, error: 'Invalid or expired GitHub token.' };\n }\n return { valid: false, error: `GitHub API returned ${response.status}.` };\n }\n\n const data = await response.json();\n const username = typeof data?.login === 'string' ? data.login : null;\n if (!username) {\n return { valid: false, error: 'GitHub API response did not include a username.' };\n }\n\n return { valid: true, username };\n } catch (error) {\n return { valid: false, error: `Failed to verify GitHub token: ${(error as Error).message}` };\n }\n}\n\nasync function verifyGitLabToken(serverUrl: string, token: string): Promise<{ valid: boolean; username?: string; error?: string }> {\n try {\n const normalizedUrl = normalizeGitLabServerUrl(serverUrl);\n const response = await fetch(`${normalizedUrl}/api/v4/user`, {\n headers: {\n 'PRIVATE-TOKEN': token,\n },\n });\n\n if (!response.ok) {\n if (response.status === 401) {\n return { valid: false, error: 'Invalid or expired GitLab token.' };\n }\n return { valid: false, error: `GitLab API returned ${response.status}.` };\n }\n\n const data = await response.json();\n const username = typeof data?.username === 'string' ? data.username : null;\n if (!username) {\n return { valid: false, error: 'GitLab API response did not include a username.' };\n }\n\n return { valid: true, username };\n } catch (error) {\n return { valid: false, error: `Failed to verify GitLab token: ${(error as Error).message}` };\n }\n}\n\nexport async function createGitHubCredential(token: string): Promise<{ success: boolean; credential?: GitHubCredential; error?: string }> {\n const trimmedToken = token.trim();\n if (!trimmedToken) {\n return { success: false, error: 'GitHub token is required.' };\n }\n\n let keytar: KeytarModule;\n try {\n keytar = await requireKeytar();\n } catch (error) {\n return { success: false, error: (error as Error).message };\n }\n\n const verification = await verifyGitHubToken(trimmedToken);\n if (!verification.valid || !verification.username) {\n return { success: false, error: verification.error || 'Failed to verify GitHub token.' };\n }\n\n const metadata = await readCredentialsMetadata();\n const duplicate = metadata.find((credential) => (\n credential.type === 'github'\n && credential.username === verification.username\n ));\n\n if (duplicate) {\n return { success: false, error: `A GitHub credential for ${verification.username} already exists.` };\n }\n\n const id = generateId();\n const now = new Date().toISOString();\n const keytarAccount = getDefaultKeytarAccount(id);\n\n await keytar.setPassword(SERVICE_NAME, keytarAccount, trimmedToken);\n\n const created: CredentialMetadata = {\n id,\n type: 'github',\n username: verification.username,\n createdAt: now,\n updatedAt: now,\n keytarAccount,\n };\n\n metadata.push(created);\n await writeCredentialsMetadata(metadata);\n\n return {\n success: true,\n credential: {\n id: created.id,\n type: 'github',\n username: created.username,\n createdAt: created.createdAt,\n updatedAt: created.updatedAt,\n },\n };\n}\n\nexport async function createGitLabCredential(\n serverUrl: string,\n token: string,\n): Promise<{ success: boolean; credential?: GitLabCredential; error?: string }> {\n const normalizedServerUrl = normalizeGitLabServerUrl(serverUrl);\n const trimmedToken = token.trim();\n\n if (!normalizedServerUrl) {\n return { success: false, error: 'GitLab server URL is required.' };\n }\n\n try {\n new URL(normalizedServerUrl);\n } catch {\n return { success: false, error: 'GitLab server URL must be a valid URL.' };\n }\n\n if (!trimmedToken) {\n return { success: false, error: 'GitLab token is required.' };\n }\n\n let keytar: KeytarModule;\n try {\n keytar = await requireKeytar();\n } catch (error) {\n return { success: false, error: (error as Error).message };\n }\n\n const verification = await verifyGitLabToken(normalizedServerUrl, trimmedToken);\n if (!verification.valid || !verification.username) {\n return { success: false, error: verification.error || 'Failed to verify GitLab token.' };\n }\n\n const metadata = await readCredentialsMetadata();\n const duplicate = metadata.find((credential) => (\n credential.type === 'gitlab'\n && credential.username === verification.username\n && credential.serverUrl === normalizedServerUrl\n ));\n\n if (duplicate) {\n return {\n success: false,\n error: `A GitLab credential for ${verification.username} on ${normalizedServerUrl} already exists.`,\n };\n }\n\n const id = generateId();\n const now = new Date().toISOString();\n const keytarAccount = getDefaultKeytarAccount(id);\n\n await keytar.setPassword(SERVICE_NAME, keytarAccount, trimmedToken);\n\n const created: CredentialMetadata = {\n id,\n type: 'gitlab',\n username: verification.username,\n serverUrl: normalizedServerUrl,\n createdAt: now,\n updatedAt: now,\n keytarAccount,\n };\n\n metadata.push(created);\n await writeCredentialsMetadata(metadata);\n\n return {\n success: true,\n credential: {\n id: created.id,\n type: 'gitlab',\n username: created.username,\n serverUrl: created.serverUrl || normalizedServerUrl,\n createdAt: created.createdAt,\n updatedAt: created.updatedAt,\n },\n };\n}\n\nexport async function deleteCredential(id: string): Promise<{ success: boolean; error?: string }> {\n const metadata = await readCredentialsMetadata();\n const index = metadata.findIndex((credential) => credential.id === id);\n\n if (index === -1) {\n return { success: false, error: 'Credential not found.' };\n }\n\n const credential = metadata[index];\n metadata.splice(index, 1);\n await writeCredentialsMetadata(metadata);\n\n const keytar = await loadKeytar();\n if (keytar) {\n await keytar.deletePassword(SERVICE_NAME, getKeytarAccountForMetadata(credential));\n }\n\n return { success: true };\n}\n","'use server';\n\nimport {\n createGitHubCredential,\n createGitLabCredential,\n deleteCredential,\n getAllCredentials,\n} from '@/lib/credentials';\nimport type { Credential } from '@/lib/credentials';\n\ntype ListCredentialsResult =\n | { success: true; credentials: Credential[] }\n | { success: false; error: string };\n\nexport async function listCredentials(): Promise<ListCredentialsResult> {\n try {\n const credentials = await getAllCredentials();\n return { success: true, credentials };\n } catch (error) {\n console.error('Failed to list credentials:', error);\n return { success: false, error: 'Failed to load credentials.' };\n }\n}\n\ntype SaveCredentialResult =\n | { success: true; credential: Credential }\n | { success: false; error: string };\n\nexport async function saveGitHubCredential(token: string): Promise<SaveCredentialResult> {\n const result = await createGitHubCredential(token);\n if (!result.success || !result.credential) {\n return { success: false, error: result.error || 'Failed to save GitHub credential.' };\n }\n\n return { success: true, credential: result.credential };\n}\n\nexport async function saveGitLabCredential(serverUrl: string, token: string): Promise<SaveCredentialResult> {\n const result = await createGitLabCredential(serverUrl, token);\n if (!result.success || !result.credential) {\n return { success: false, error: result.error || 'Failed to save GitLab credential.' };\n }\n\n return { success: true, credential: result.credential };\n}\n\ntype RemoveCredentialResult =\n | { success: true }\n | { success: false; error: string };\n\nexport async function removeCredential(id: string): Promise<RemoveCredentialResult> {\n try {\n const result = await deleteCredential(id);\n if (!result.success) {\n return { success: false, error: result.error || 'Failed to remove credential.' };\n }\n\n return { success: true };\n } catch (error) {\n console.error('Failed to remove credential:', error);\n return { success: false, error: 'Failed to remove credential.' };\n }\n}\n","/* eslint-disable import/no-extraneous-dependencies */\nexport { registerServerReference } from 'react-server-dom-webpack/server'\n","// This function ensures that all the exported values are valid server actions,\n// during the runtime. By definition all actions are required to be async\n// functions, but here we can only check that they are functions.\nexport function ensureServerEntryExports(actions: any[]) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i]\n if (typeof action !== 'function') {\n throw new Error(\n `A \"use server\" file can only export async functions, found ${typeof action}.\\nRead more: https://nextjs.org/docs/messages/invalid-use-server-value`\n )\n }\n }\n}\n","import fs from 'fs/promises';\nimport type { Dirent } from 'fs';\nimport path from 'path';\nimport { getConfig } from '@/app/actions/config';\n\nconst MAX_SCAN_DEPTH = 5;\nconst MAX_SCANNED_DIRECTORIES = 5000;\nconst RESOLUTION_CACHE_TTL_MS = 5 * 60 * 1000;\nconst SKIPPED_DIR_NAMES = new Set([\n '.git',\n 'node_modules',\n '.next',\n '.viba',\n 'dist',\n 'build',\n 'coverage',\n]);\n\ntype RepoResolutionCacheEntry = {\n repoPath: string;\n resolvedAt: number;\n};\n\ndeclare global {\n var repoResolutionCache: Map<string, RepoResolutionCacheEntry> | undefined;\n}\n\nfunction getResolutionCache(): Map<string, RepoResolutionCacheEntry> {\n if (!global.repoResolutionCache) {\n global.repoResolutionCache = new Map<string, RepoResolutionCacheEntry>();\n }\n return global.repoResolutionCache;\n}\n\nfunction cacheResolution(repoName: string, repoPath: string): void {\n getResolutionCache().set(repoName.toLowerCase(), {\n repoPath,\n resolvedAt: Date.now(),\n });\n}\n\nasync function getValidCachedResolution(repoName: string): Promise<string | null> {\n const entry = getResolutionCache().get(repoName.toLowerCase());\n if (!entry) return null;\n if (Date.now() - entry.resolvedAt > RESOLUTION_CACHE_TTL_MS) {\n getResolutionCache().delete(repoName.toLowerCase());\n return null;\n }\n\n if (await isGitRepository(entry.repoPath)) {\n return entry.repoPath;\n }\n\n getResolutionCache().delete(repoName.toLowerCase());\n return null;\n}\n\nasync function isGitRepository(dirPath: string): Promise<boolean> {\n try {\n await fs.access(path.join(dirPath, '.git'));\n return true;\n } catch {\n return false;\n }\n}\n\nfunction hasMatchingName(repoPath: string, repoName: string): boolean {\n return path.basename(repoPath).toLowerCase() === repoName.toLowerCase();\n}\n\nfunction shouldSkipDirectory(entryName: string, targetName: string): boolean {\n const lowerName = entryName.toLowerCase();\n if (lowerName === targetName) return false;\n if (SKIPPED_DIR_NAMES.has(lowerName)) return true;\n if (entryName.startsWith('.')) return true;\n return false;\n}\n\nasync function findByNameWithinRoot(rootPath: string, repoName: string): Promise<string | null> {\n const directCandidate = path.join(rootPath, repoName);\n if (await isGitRepository(directCandidate)) {\n return directCandidate;\n }\n\n const queue: Array<{ dirPath: string; depth: number }> = [{ dirPath: rootPath, depth: 0 }];\n let scannedCount = 0;\n const targetName = repoName.toLowerCase();\n\n for (let index = 0; index < queue.length; index += 1) {\n const current = queue[index];\n scannedCount += 1;\n if (scannedCount > MAX_SCANNED_DIRECTORIES) {\n break;\n }\n\n let entries: Dirent[];\n try {\n entries = await fs.readdir(current.dirPath, { withFileTypes: true });\n } catch {\n continue;\n }\n\n for (const entry of entries) {\n if (!entry.isDirectory()) continue;\n if (shouldSkipDirectory(entry.name, targetName)) continue;\n\n const nextDirPath = path.join(current.dirPath, entry.name);\n\n if (entry.name.toLowerCase() === targetName && await isGitRepository(nextDirPath)) {\n return nextDirPath;\n }\n\n if (current.depth + 1 <= MAX_SCAN_DEPTH) {\n queue.push({ dirPath: nextDirPath, depth: current.depth + 1 });\n }\n }\n }\n\n return null;\n}\n\nexport async function resolveRepositoryPathByName(repoName: string): Promise<string | null> {\n const trimmedName = repoName.trim();\n if (!trimmedName) return null;\n\n const cachedResolution = await getValidCachedResolution(trimmedName);\n if (cachedResolution) {\n return cachedResolution;\n }\n\n const config = await getConfig();\n\n const recentMatches = config.recentRepos.filter((repoPath) => hasMatchingName(repoPath, trimmedName));\n for (const repoPath of recentMatches) {\n if (await isGitRepository(repoPath)) {\n cacheResolution(trimmedName, repoPath);\n return repoPath;\n }\n }\n\n const searchRoots: string[] = [];\n const visitedRoots = new Set<string>();\n for (const repoPath of config.recentRepos) {\n const parentPath = path.dirname(repoPath);\n if (!visitedRoots.has(parentPath)) {\n visitedRoots.add(parentPath);\n searchRoots.push(parentPath);\n }\n }\n if (config.defaultRoot && !visitedRoots.has(config.defaultRoot)) {\n visitedRoots.add(config.defaultRoot);\n searchRoots.push(config.defaultRoot);\n }\n\n for (const rootPath of searchRoots) {\n const resolvedPath = await findByNameWithinRoot(rootPath, trimmedName);\n if (resolvedPath) {\n cacheResolution(trimmedName, resolvedPath);\n return resolvedPath;\n }\n }\n\n return null;\n}\n","'use server';\n\nimport { resolveRepositoryPathByName } from '@/lib/repo-resolver';\n\ntype ResolveRepositoryResult = {\n success: boolean;\n repoPath: string | null;\n error?: string;\n};\n\nexport async function resolveRepositoryByName(repoName: string): Promise<ResolveRepositoryResult> {\n try {\n const resolvedPath = await resolveRepositoryPathByName(repoName);\n return {\n success: true,\n repoPath: resolvedPath,\n };\n } catch (error) {\n console.error('Failed to resolve repository by name:', error);\n return {\n success: false,\n repoPath: null,\n error: 'Failed to search repositories. Please try again.',\n };\n }\n}\n","export {checkDirectoryAccessible as '402049a51d1ca6db2818a90f672096d8b1f9e9998a'} from 'ACTIONS_MODULE0'\nexport {listDirectories as '40986b59dad2e7ed2d6313af6d0dcac57397e2b324'} from 'ACTIONS_MODULE0'\nexport {getHomeDirectory as '00f2c61198618f84e4136634732270fad870dd9554'} from 'ACTIONS_MODULE0'\nexport {checkIsGitRepo as '400cbfc8c521c45a6f6adeec1f4b297e2644671747'} from 'ACTIONS_MODULE0'\nexport {getBranches as '4022b965ca1fe521d06daa98f0174c5f4bc2097970'} from 'ACTIONS_MODULE0'\nexport {checkoutBranch as '60799215c7b6468ae0369d2f925f09248851e016a2'} from 'ACTIONS_MODULE0'\nexport {startTtydProcess as '7f5bda4c7bd5e68ec8a478374b3e7d54bc7d479b07'} from 'ACTIONS_MODULE0'\nexport {getStartupScript as '7f9da734aeb584e0970c47ee7c02200fb890807599'} from 'ACTIONS_MODULE0'\nexport {getDefaultDevServerScript as '7f282c744696cfd1de2730331634c16b1d2a4569bd'} from 'ACTIONS_MODULE0'\nexport {listRepoFiles as '7f8cce0dac8a53474149a0ef9a5da3cc172bb508c0'} from 'ACTIONS_MODULE0'\nexport {saveAttachments as '7f7e661f5b4c0959fce7cb1176a2f74f112c76df9f'} from 'ACTIONS_MODULE0'\nexport {checkAgentCliInstalled as '4027240f68b38666f303975d87e63e0dfe73afb62d'} from 'ACTIONS_MODULE0'\nexport {installAgentCli as '401460854fdcfc717dda9fda285aaca353bebb07d7'} from 'ACTIONS_MODULE0'\nexport {resolveRepositoryByName as '404032b18cf362a97fb44478d41640141e7411bf42'} from 'ACTIONS_MODULE1'\nexport {copySessionAttachments as '70dc70ed7b1a40c1d3da467aae83a0c8a6d47e7761'} from 'ACTIONS_MODULE2'\nexport {createSession as '703ace398e6ae0d4ed8084c75708becf71ccee5847'} from 'ACTIONS_MODULE2'\nexport {deleteSession as '40ea783814968efc22bd61fae3eca5fcb065f14ba9'} from 'ACTIONS_MODULE2'\nexport {getSessionPrefillContext as '406931ec09ffeae3a5edd7c3f635709211220e87f9'} from 'ACTIONS_MODULE2'\nexport {listSessions as '408483f0ec64f86d68d7b24e22242504de09617cea'} from 'ACTIONS_MODULE2'\nexport {saveSessionLaunchContext as '60eeeebd75f68f395180434358d5a5662752ef9902'} from 'ACTIONS_MODULE2'\nexport {getConfig as '004bfabaf4b1e82781f3d5b0d7e58113b55176c6c3'} from 'ACTIONS_MODULE3'\nexport {updateConfig as '4013beb0fd5e41605f35d43f0410f0aa46998a3b48'} from 'ACTIONS_MODULE3'\nexport {updateRepoSettings as '601730fa59d968263bd7383a69c1a56f2fa1c01aa3'} from 'ACTIONS_MODULE3'\nexport {listCredentials as '0078074bcb5c62bcd2ced5447a3fdb8dbfdf7b3386'} from 'ACTIONS_MODULE4'\n"],"names":["registerServerReference","ensureServerEntryExports","actions","i","length","action","Error"],"mappings":"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","ignoreList":[2,3]}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[72131,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].React},9270,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.AppRouterContext},36313,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.HooksClientContext},18341,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.ServerInsertedHtml},38783,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactServerDOMTurbopackClient},35112,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactDOM},18622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},20635,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},42602,(a,b,c)=>{"use strict";b.exports=a.r(18622)},87924,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactJsxRuntime},29796,45193,a=>{"use strict";var b=a.i(5050);let c=(0,b.createServerReference)("004bfabaf4b1e82781f3d5b0d7e58113b55176c6c3",b.callServer,void 0,b.findSourceMapURL,"getConfig");a.s(["getConfig",()=>c],29796);let d=(0,b.createServerReference)("4013beb0fd5e41605f35d43f0410f0aa46998a3b48",b.callServer,void 0,b.findSourceMapURL,"updateConfig");a.s(["updateConfig",()=>d],45193)},25015,a=>{"use strict";let b=(0,a.i(70106).default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);a.s(["Play",()=>b],25015)},10948,15618,a=>{"use strict";var b=a.i(70106);let c=(0,b.default)("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);a.s(["GitBranch",()=>c],10948);let d=(0,b.default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);a.s(["Plus",()=>d],15618)},66407,a=>{"use strict";var b=a.i(5050);let c=(0,b.createServerReference)("00f2c61198618f84e4136634732270fad870dd9554",b.callServer,void 0,b.findSourceMapURL,"getHomeDirectory");a.s(["getHomeDirectory",()=>c])},85768,a=>{"use strict";var b=a.i(5050);let c=(0,b.createServerReference)("7f7e661f5b4c0959fce7cb1176a2f74f112c76df9f",b.callServer,void 0,b.findSourceMapURL,"saveAttachments");a.s(["saveAttachments",()=>c])},92596,11431,94659,a=>{"use strict";let b=(0,a.i(70106).default)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);function c(a){return a&&a.replace(/\\/g,"/").split("/").filter(Boolean).pop()||""}function d(a){if(!a)return"";let b=a.replace(/\\/g,"/"),c=b.length>1&&b.endsWith("/")?b.slice(0,-1):b,d=c.lastIndexOf("/");return -1===d?a.includes(":")&&a.length<=3?b:".":0===d?"/":a.includes(":")&&2===d?c.substring(0,3):c.substring(0,d)}function e(a){return/^[a-zA-Z]:[\\/]/.test(a)}a.s(["Folder",()=>b],92596),a.s(["getBaseName",()=>c,"getDirName",()=>d,"isWindowsAbsolutePath",()=>e],11431);var f=a.i(72131);function g({enabled:a=!0,onConfirm:b,onDismiss:c,canConfirm:d=!0}){(0,f.useEffect)(()=>{if(!a)return;let e=a=>{if("Escape"===a.key){a.preventDefault(),c();return}"Enter"!==a.key||!b||!d||a.defaultPrevented||a.metaKey||a.ctrlKey||a.altKey||a.shiftKey||(a=>{if(!(a instanceof HTMLElement))return!1;let b=a.tagName.toUpperCase();return"INPUT"===b||"TEXTAREA"===b||"SELECT"===b||a.isContentEditable})(a.target)||(a.preventDefault(),b())};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}},[a,b,c,d])}a.s(["useDialogKeyboardShortcuts",()=>g],94659)},12627,a=>{"use strict";function b(){}a.s(["SESSIONS_UPDATED_EVENT",0,"viba:sessions-updated","SESSIONS_UPDATED_STORAGE_KEY",0,"viba:sessions-updated-at","notifySessionsUpdated",()=>b])},51443,a=>{"use strict";var b=a.i(5050);let c=(0,b.createServerReference)("7f5bda4c7bd5e68ec8a478374b3e7d54bc7d479b07",b.callServer,void 0,b.findSourceMapURL,"startTtydProcess");a.s(["startTtydProcess",()=>c])}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__ecb136ac._.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../node_modules/next/src/server/route-modules/app-page/vendored/ssr/react.ts","../../../../node_modules/next/src/server/route-modules/app-page/vendored/contexts/app-router-context.ts","../../../../node_modules/next/src/server/route-modules/app-page/vendored/contexts/hooks-client-context.ts","../../../../node_modules/next/src/server/route-modules/app-page/vendored/contexts/server-inserted-html.ts","../../../../node_modules/next/src/server/route-modules/app-page/vendored/ssr/react-server-dom-turbopack-client.ts","../../../../node_modules/next/src/server/route-modules/app-page/vendored/ssr/react-dom.ts","../../../../node_modules/next/src/server/route-modules/app-page/module.compiled.js","../../../../node_modules/next/src/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.ts","../../../../src/app/actions/data%3Af680ba%20%3Ctext/javascript%3E","../../../../src/app/actions/data%3A57d0fd%20%3Ctext/javascript%3E","../../../../node_modules/lucide-react/src/icons/play.ts","../../../../node_modules/lucide-react/src/icons/plus.ts","../../../../node_modules/lucide-react/src/icons/git-branch.ts","../../../../src/app/actions/data%3Ad61c9b%20%3Ctext/javascript%3E","../../../../src/app/actions/data%3A50378c%20%3Ctext/javascript%3E","../../../../src/hooks/useDialogKeyboardShortcuts.ts","../../../../src/lib/path.ts","../../../../node_modules/lucide-react/src/icons/folder.ts","../../../../src/lib/session-updates.ts","../../../../src/app/actions/data%3A9e63d6%20%3Ctext/javascript%3E"],"sourcesContent":["module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.React\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].AppRouterContext\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].HooksClientContext\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].ServerInsertedHtml\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.ReactServerDOMTurbopackClient\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.ReactDOM\n","if (process.env.NEXT_RUNTIME === 'edge') {\n module.exports = require('next/dist/server/route-modules/app-page/module.js')\n} else {\n if (process.env.__NEXT_EXPERIMENTAL_REACT) {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.prod.js')\n }\n }\n } else {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.prod.js')\n }\n }\n }\n}\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.ReactJsxRuntime\n","/* __next_internal_action_entry_do_not_use__ [{\"004bfabaf4b1e82781f3d5b0d7e58113b55176c6c3\":\"getConfig\"},\"src/app/actions/config.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"004bfabaf4b1e82781f3d5b0d7e58113b55176c6c3\",callServer,void 0,findSourceMapURL,\"getConfig\");export{$$RSC_SERVER_ACTION_0 as getConfig};","/* __next_internal_action_entry_do_not_use__ [{\"4013beb0fd5e41605f35d43f0410f0aa46998a3b48\":\"updateConfig\"},\"src/app/actions/config.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_2=/*#__PURE__*/createServerReference(\"4013beb0fd5e41605f35d43f0410f0aa46998a3b48\",callServer,void 0,findSourceMapURL,\"updateConfig\");export{$$RSC_SERVER_ACTION_2 as updateConfig};","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z',\n key: '10ikf1',\n },\n ],\n];\n\n/**\n * @component @name Play\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/play\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Play = createLucideIcon('play', __iconNode);\n\nexport default Play;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M5 12h14', key: '1ays0h' }],\n ['path', { d: 'M12 5v14', key: 's699le' }],\n];\n\n/**\n * @component @name Plus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/plus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Plus = createLucideIcon('plus', __iconNode);\n\nexport default Plus;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['line', { x1: '6', x2: '6', y1: '3', y2: '15', key: '17qcm7' }],\n ['circle', { cx: '18', cy: '6', r: '3', key: '1h7g24' }],\n ['circle', { cx: '6', cy: '18', r: '3', key: 'fqmcym' }],\n ['path', { d: 'M18 9a9 9 0 0 1-9 9', key: 'n2h4wq' }],\n];\n\n/**\n * @component @name GitBranch\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/git-branch\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst GitBranch = createLucideIcon('git-branch', __iconNode);\n\nexport default GitBranch;\n","/* __next_internal_action_entry_do_not_use__ [{\"00f2c61198618f84e4136634732270fad870dd9554\":\"getHomeDirectory\"},\"src/app/actions/git.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"00f2c61198618f84e4136634732270fad870dd9554\",callServer,void 0,findSourceMapURL,\"getHomeDirectory\");export{$$RSC_SERVER_ACTION_0 as getHomeDirectory};","/* __next_internal_action_entry_do_not_use__ [{\"7f7e661f5b4c0959fce7cb1176a2f74f112c76df9f\":\"saveAttachments\"},\"src/app/actions/git.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_17=/*#__PURE__*/createServerReference(\"7f7e661f5b4c0959fce7cb1176a2f74f112c76df9f\",callServer,void 0,findSourceMapURL,\"saveAttachments\");export{$$RSC_SERVER_ACTION_17 as saveAttachments};","import { useEffect } from 'react';\n\ntype UseDialogKeyboardShortcutsOptions = {\n enabled?: boolean;\n onConfirm?: () => void | Promise<unknown>;\n onDismiss: () => void;\n canConfirm?: boolean;\n};\n\nconst isEditableTarget = (target: EventTarget | null): boolean => {\n if (!(target instanceof HTMLElement)) return false;\n const tagName = target.tagName.toUpperCase();\n return tagName === 'INPUT' || tagName === 'TEXTAREA' || tagName === 'SELECT' || target.isContentEditable;\n};\n\nexport function useDialogKeyboardShortcuts({\n enabled = true,\n onConfirm,\n onDismiss,\n canConfirm = true,\n}: UseDialogKeyboardShortcutsOptions) {\n useEffect(() => {\n if (!enabled) return;\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n event.preventDefault();\n onDismiss();\n return;\n }\n\n if (event.key !== 'Enter') return;\n if (!onConfirm || !canConfirm) return;\n if (event.defaultPrevented) return;\n if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) return;\n if (isEditableTarget(event.target)) return;\n\n event.preventDefault();\n void onConfirm();\n };\n\n window.addEventListener('keydown', handleKeyDown);\n return () => {\n window.removeEventListener('keydown', handleKeyDown);\n };\n }, [enabled, onConfirm, onDismiss, canConfirm]);\n}\n","export function getBaseName(path: string): string {\n if (!path) return '';\n // Support both Windows (\\) and POSIX (/) separators\n // Using a simpler approach to avoid regex escaping issues in some environments\n const normalized = path.replace(/\\\\/g, '/');\n const parts = normalized.split('/');\n // Filter out empty strings which can happen with trailing slashes or absolute paths\n return parts.filter(Boolean).pop() || '';\n}\n\nexport function getDirName(path: string): string {\n if (!path) return '';\n \n // Normalize separators to / for easier processing\n const normalized = path.replace(/\\\\/g, '/');\n \n // Remove trailing slash if it exists (but not if it's the root '/')\n const withoutTrailing = (normalized.length > 1 && normalized.endsWith('/')) \n ? normalized.slice(0, -1) \n : normalized;\n \n const lastIdx = withoutTrailing.lastIndexOf('/');\n \n if (lastIdx === -1) {\n // No separator found. Could be a relative path or a Windows drive root like \"C:\"\n // For \"C:\\\" or \"C:\", we return the normalized version (C:/ or C:)\n if (path.includes(':') && path.length <= 3) return normalized;\n return '.';\n }\n \n if (lastIdx === 0) return '/';\n \n // On Windows, if we're at \"C:/\", lastIdx might be 2.\n if (path.includes(':') && lastIdx === 2) {\n return withoutTrailing.substring(0, 3); // \"C:/\"\n }\n \n return withoutTrailing.substring(0, lastIdx);\n}\n\nexport function isWindowsAbsolutePath(value: string): boolean {\n return /^[a-zA-Z]:[\\\\/]/.test(value);\n}\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',\n key: '1kt360',\n },\n ],\n];\n\n/**\n * @component @name Folder\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/folder\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Folder = createLucideIcon('folder', __iconNode);\n\nexport default Folder;\n","export const SESSIONS_UPDATED_STORAGE_KEY = 'viba:sessions-updated-at';\nexport const SESSIONS_UPDATED_EVENT = 'viba:sessions-updated';\n\nexport function notifySessionsUpdated(): void {\n if (typeof window === 'undefined') return;\n\n try {\n localStorage.setItem(SESSIONS_UPDATED_STORAGE_KEY, new Date().toISOString());\n } catch {\n // Ignore localStorage failures (private mode, quota, etc.)\n }\n\n window.dispatchEvent(new CustomEvent(SESSIONS_UPDATED_EVENT));\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"7f5bda4c7bd5e68ec8a478374b3e7d54bc7d479b07\":\"startTtydProcess\"},\"src/app/actions/git.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_9=/*#__PURE__*/createServerReference(\"7f5bda4c7bd5e68ec8a478374b3e7d54bc7d479b07\",callServer,void 0,findSourceMapURL,\"startTtydProcess\");export{$$RSC_SERVER_ACTION_9 as startTtydProcess};"],"names":["module","exports","require","vendored","React","AppRouterContext","HooksClientContext","ServerInsertedHtml","ReactServerDOMTurbopackClient","ReactDOM","process","env","NEXT_RUNTIME","__NEXT_EXPERIMENTAL_REACT","NODE_ENV","TURBOPACK","ReactJsxRuntime"],"mappings":"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","ignoreList":[0,1,2,3,4,5,6,7,10,11,12,17]}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
module.exports=[33405,(a,b,c)=>{b.exports=a.x("child_process",()=>require("child_process"))},70722,(a,b,c)=>{b.exports=a.x("tty",()=>require("tty"))},24868,(a,b,c)=>{b.exports=a.x("fs/promises",()=>require("fs/promises"))},46786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},37936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},13095,(a,b,c)=>{"use strict";function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
|
|
2
|
-
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},39298,a=>{"use strict";var b=a.i(51817),c=a.i(15271),d=a.i(38642);a.s([],99637),a.i(99637),a.s(["004bfabaf4b1e82781f3d5b0d7e58113b55176c6c3",()=>d.getConfig,"00f2c61198618f84e4136634732270fad870dd9554",()=>c.getHomeDirectory,"400400664b8a848b7f534f1a34fc6257da11c2e520",()=>b.mergeSessionToBase,"400f7de8fc977d8ea150039c3d814c08da1909903c",()=>b.deleteSessionInBackground,"4013beb0fd5e41605f35d43f0410f0aa46998a3b48",()=>d.updateConfig,"404783f8b682df7fe52043752f7f6cbba97f12691a",()=>b.getSessionUncommittedFileCount,"4047c66c64f2767cd76a24da07689445e64df2f857",()=>b.consumeSessionLaunchContext,"408492ea0b68e56f674cd196de8e7c59554f07b8bb",()=>b.markSessionInitialized,"408f16165cf5f2f4f06c957aa57fedc190dda58a44",()=>b.rebaseSessionOntoBase,"4090b457be37b5da673da17ac2d03cacc5b5aed995",()=>c.listPathEntries,"40debaedf38c8e0abd9a90b084c64596ca251b5428",()=>b.listSessionBaseBranches,"40eb6e73da3c95c508ec75605e85c67424810eef77",()=>b.getSessionDivergence,"40ed8ecf5be0dfb81268d2619792a70bee2fe8b195",()=>b.getSessionMetadata,"608f18694afb9833dcb10e99fbf7dc860bd54fffc4",()=>b.writeSessionPromptFile,"609d83fea7bfe823abe1447435d104dc1cfa271901",()=>b.updateSessionBaseBranch,"7f5bda4c7bd5e68ec8a478374b3e7d54bc7d479b07",()=>c.startTtydProcess,"7f7e661f5b4c0959fce7cb1176a2f74f112c76df9f",()=>c.saveAttachments,"7ff3d1b76a025c42284478a5ad166f07f384420b2b",()=>c.setTmuxSessionMouseMode],39298)},44264,a=>{a.v(a=>Promise.resolve().then(()=>a(33405)))},37706,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__edf0aa7a._.js"].map(b=>a.l(b))).then(()=>b(78775)))}];
|
|
3
|
-
|
|
4
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__eec0d3c4._.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/server-reference.ts","../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/action-validate.ts","../../../../.next-internal/server/app/session/%5BsessionId%5D/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["/* eslint-disable import/no-extraneous-dependencies */\nexport { registerServerReference } from 'react-server-dom-webpack/server'\n","// This function ensures that all the exported values are valid server actions,\n// during the runtime. By definition all actions are required to be async\n// functions, but here we can only check that they are functions.\nexport function ensureServerEntryExports(actions: any[]) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i]\n if (typeof action !== 'function') {\n throw new Error(\n `A \"use server\" file can only export async functions, found ${typeof action}.\\nRead more: https://nextjs.org/docs/messages/invalid-use-server-value`\n )\n }\n }\n}\n","export {deleteSessionInBackground as '400f7de8fc977d8ea150039c3d814c08da1909903c'} from 'ACTIONS_MODULE0'\nexport {getSessionDivergence as '40eb6e73da3c95c508ec75605e85c67424810eef77'} from 'ACTIONS_MODULE0'\nexport {getSessionUncommittedFileCount as '404783f8b682df7fe52043752f7f6cbba97f12691a'} from 'ACTIONS_MODULE0'\nexport {listSessionBaseBranches as '40debaedf38c8e0abd9a90b084c64596ca251b5428'} from 'ACTIONS_MODULE0'\nexport {mergeSessionToBase as '400400664b8a848b7f534f1a34fc6257da11c2e520'} from 'ACTIONS_MODULE0'\nexport {rebaseSessionOntoBase as '408f16165cf5f2f4f06c957aa57fedc190dda58a44'} from 'ACTIONS_MODULE0'\nexport {updateSessionBaseBranch as '609d83fea7bfe823abe1447435d104dc1cfa271901'} from 'ACTIONS_MODULE0'\nexport {writeSessionPromptFile as '608f18694afb9833dcb10e99fbf7dc860bd54fffc4'} from 'ACTIONS_MODULE0'\nexport {setTmuxSessionMouseMode as '7ff3d1b76a025c42284478a5ad166f07f384420b2b'} from 'ACTIONS_MODULE1'\nexport {getConfig as '004bfabaf4b1e82781f3d5b0d7e58113b55176c6c3'} from 'ACTIONS_MODULE2'\nexport {updateConfig as '4013beb0fd5e41605f35d43f0410f0aa46998a3b48'} from 'ACTIONS_MODULE2'\nexport {getHomeDirectory as '00f2c61198618f84e4136634732270fad870dd9554'} from 'ACTIONS_MODULE1'\nexport {listPathEntries as '4090b457be37b5da673da17ac2d03cacc5b5aed995'} from 'ACTIONS_MODULE1'\nexport {saveAttachments as '7f7e661f5b4c0959fce7cb1176a2f74f112c76df9f'} from 'ACTIONS_MODULE1'\nexport {consumeSessionLaunchContext as '4047c66c64f2767cd76a24da07689445e64df2f857'} from 'ACTIONS_MODULE0'\nexport {getSessionMetadata as '40ed8ecf5be0dfb81268d2619792a70bee2fe8b195'} from 'ACTIONS_MODULE0'\nexport {markSessionInitialized as '408492ea0b68e56f674cd196de8e7c59554f07b8bb'} from 'ACTIONS_MODULE0'\nexport {startTtydProcess as '7f5bda4c7bd5e68ec8a478374b3e7d54bc7d479b07'} from 'ACTIONS_MODULE1'\n"],"names":["registerServerReference","ensureServerEntryExports","actions","i","length","action","Error"],"mappings":"mTAAoD,OAAA,cAAA,CAAA,EAAA,aAAA,oCAC3CA,0BAAAA,qCAAAA,EAAAA,uBAAuB,YAAQ,CAAA,CAAA,IAAA,iCCEjC,SAASC,EAAyBC,CAAc,EACrD,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAQE,MAAM,CAAED,IAAK,CACvC,IAAME,EAASH,CAAO,CAACC,EAAE,CACzB,GAAsB,YAAlB,AAA8B,OAAvBE,EACT,MAAM,OAAA,cAEL,CAFK,AAAIC,MACR,CAAC,2DAA2D,EAAE,OAAOD,EAAO;AAAA,oEAAuE,CAAC,EADhJ,oBAAA,OAAA,mBAAA,gBAAA,CAEN,EAEJ,CACF,0EATgBJ,2BAAAA,qCAAAA,6BCHhB,IAAA,EAAA,EAAA,CAAA,CAAA,OAQA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA","ignoreList":[0,1]}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,33525,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return i}});let i=e=>{}},35027,e=>{e.v([{name:"Codex",cli:"codex",description:"OpenAI's specialized models for agentic coding and deep reasoning.",models:[{id:"gpt-5.3-codex",label:"GPT-5.3 Codex",description:"Latest frontier agentic coding model."},{id:"gpt-5.2-codex",label:"GPT-5.2 Codex",description:"Frontier agentic coding model."},{id:"gpt-5.1-codex-max",label:"GPT-5.1 Codex Max",description:"Codex-optimized flagship for deep and fast reasoning."},{id:"gpt-5.2",label:"GPT-5.2",description:"Latest frontier model with improvements across knowledge, reasoning and coding"},{id:"gpt-5.1-codex-mini",label:"GPT-5.1 Codex Mini",description:"Optimized for codex. Cheaper, faster, but less capable."}]},{name:"Gemini",cli:"gemini",description:"Google's powerful multimodal models with large context windows.",models:[{id:"gemini-3-pro-preview",label:"Gemini 3 Pro Preview",description:"Google's most capable model for complex reasoning and coding tasks."},{id:"gemini-3-flash-preview",label:"Gemini 3 Flash Preview",description:"Fast and efficient model optimized for speed and low latency."},{id:"gemini-2.5-pro",label:"Gemini 2.5 Pro",description:"High-performance model with excellent reasoning capabilities."},{id:"gemini-2.5-flash",label:"Gemini 2.5 Flash",description:"Streamlined model for quick responses and iterative tasks."},{id:"gemini-2.5-flash-lite",label:"Gemini 2.5 Flash Lite",description:"Optimized for extreme speed and cost efficiency."}]},{name:"Cursor Agent",cli:"agent",description:"Integrated agentic experience powered by Claude and GPT models.",models:[{id:"auto",label:"Auto"},{id:"composer-1.5",label:"Composer 1.5"},{id:"composer-1",label:"Composer 1"},{id:"gpt-5.3-codex",label:"GPT-5.3 Codex"},{id:"gpt-5.3-codex-low",label:"GPT-5.3 Codex Low"},{id:"gpt-5.3-codex-high",label:"GPT-5.3 Codex High"},{id:"gpt-5.3-codex-xhigh",label:"GPT-5.3 Codex Extra High"},{id:"gpt-5.3-codex-fast",label:"GPT-5.3 Codex Fast"},{id:"gpt-5.3-codex-low-fast",label:"GPT-5.3 Codex Low Fast"},{id:"gpt-5.3-codex-high-fast",label:"GPT-5.3 Codex High Fast"},{id:"gpt-5.3-codex-xhigh-fast",label:"GPT-5.3 Codex Extra High Fast"},{id:"gpt-5.2",label:"GPT-5.2"},{id:"gpt-5.2-codex",label:"GPT-5.2 Codex"},{id:"gpt-5.2-codex-high",label:"GPT-5.2 Codex High"},{id:"gpt-5.2-codex-low",label:"GPT-5.2 Codex Low"},{id:"gpt-5.2-codex-xhigh",label:"GPT-5.2 Codex Extra High"},{id:"gpt-5.2-codex-fast",label:"GPT-5.2 Codex Fast"},{id:"gpt-5.2-codex-high-fast",label:"GPT-5.2 Codex High Fast"},{id:"gpt-5.2-codex-low-fast",label:"GPT-5.2 Codex Low Fast"},{id:"gpt-5.2-codex-xhigh-fast",label:"GPT-5.2 Codex Extra High Fast"},{id:"gpt-5.1-codex-max",label:"GPT-5.1 Codex Max"},{id:"gpt-5.1-codex-max-high",label:"GPT-5.1 Codex Max High"},{id:"opus-4.6-thinking",label:"Claude 4.6 Opus (Thinking) (default)"},{id:"sonnet-4.5-thinking",label:"Claude 4.5 Sonnet (Thinking)"},{id:"gpt-5.2-high",label:"GPT-5.2 High"},{id:"opus-4.6",label:"Claude 4.6 Opus"},{id:"opus-4.5",label:"Claude 4.5 Opus"},{id:"opus-4.5-thinking",label:"Claude 4.5 Opus (Thinking)"},{id:"sonnet-4.5",label:"Claude 4.5 Sonnet"},{id:"gpt-5.1-high",label:"GPT-5.1 High"},{id:"gemini-3-pro",label:"Gemini 3 Pro"},{id:"gemini-3-flash",label:"Gemini 3 Flash"},{id:"grok",label:"Grok"}]}])},55716,7233,e=>{"use strict";var t=e.i(75254);let r=(0,t.default)("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);e.s(["GitBranch",()=>r],55716);let i=(0,t.default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",()=>i],7233)},31343,e=>{"use strict";let t=(0,e.i(75254).default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);e.s(["Play",()=>t],31343)},83177,e=>{"use strict";var t=e.i(95187);let r=(0,t.createServerReference)("00f2c61198618f84e4136634732270fad870dd9554",t.callServer,void 0,t.findSourceMapURL,"getHomeDirectory");e.s(["getHomeDirectory",()=>r])},27025,81016,43733,e=>{"use strict";let t=(0,e.i(75254).default)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);function r(e){return e&&e.replace(/\\/g,"/").split("/").filter(Boolean).pop()||""}function i(e){if(!e)return"";let t=e.replace(/\\/g,"/"),r=t.length>1&&t.endsWith("/")?t.slice(0,-1):t,i=r.lastIndexOf("/");return -1===i?e.includes(":")&&e.length<=3?t:".":0===i?"/":e.includes(":")&&2===i?r.substring(0,3):r.substring(0,i)}function n(e){return/^[a-zA-Z]:[\\/]/.test(e)}e.s(["Folder",()=>t],27025),e.s(["getBaseName",()=>r,"getDirName",()=>i,"isWindowsAbsolutePath",()=>n],81016);var a=e.i(71645);function o({enabled:e=!0,onConfirm:t,onDismiss:r,canConfirm:i=!0}){(0,a.useEffect)(()=>{if(!e)return;let n=e=>{if("Escape"===e.key){e.preventDefault(),r();return}"Enter"!==e.key||!t||!i||e.defaultPrevented||e.metaKey||e.ctrlKey||e.altKey||e.shiftKey||(e=>{if(!(e instanceof HTMLElement))return!1;let t=e.tagName.toUpperCase();return"INPUT"===t||"TEXTAREA"===t||"SELECT"===t||e.isContentEditable})(e.target)||(e.preventDefault(),t())};return window.addEventListener("keydown",n),()=>{window.removeEventListener("keydown",n)}},[e,t,r,i])}e.s(["useDialogKeyboardShortcuts",()=>o],43733)},92696,e=>{"use strict";var t=e.i(95187);let r=(0,t.createServerReference)("7f5bda4c7bd5e68ec8a478374b3e7d54bc7d479b07",t.callServer,void 0,t.findSourceMapURL,"startTtydProcess");e.s(["startTtydProcess",()=>r])},49525,e=>{"use strict";var t=e.i(95187);let r=(0,t.createServerReference)("7f7e661f5b4c0959fce7cb1176a2f74f112c76df9f",t.callServer,void 0,t.findSourceMapURL,"saveAttachments");e.s(["saveAttachments",()=>r])},91536,90181,e=>{"use strict";var t=e.i(95187);let r=(0,t.createServerReference)("004bfabaf4b1e82781f3d5b0d7e58113b55176c6c3",t.callServer,void 0,t.findSourceMapURL,"getConfig");e.s(["getConfig",()=>r],91536);let i=(0,t.createServerReference)("4013beb0fd5e41605f35d43f0410f0aa46998a3b48",t.callServer,void 0,t.findSourceMapURL,"updateConfig");e.s(["updateConfig",()=>i],90181)},63671,e=>{"use strict";let t="viba:sessions-updated-at",r="viba:sessions-updated";function i(){try{localStorage.setItem(t,new Date().toISOString())}catch{}window.dispatchEvent(new CustomEvent(r))}e.s(["SESSIONS_UPDATED_EVENT",0,r,"SESSIONS_UPDATED_STORAGE_KEY",0,t,"notifySessionsUpdated",()=>i])},75254,e=>{"use strict";var t=e.i(71645);let r=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim(),i=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)};var n={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let a=(0,t.forwardRef)(({color:e="currentColor",size:i=24,strokeWidth:a=2,absoluteStrokeWidth:o,className:l="",children:s,iconNode:d,...c},u)=>(0,t.createElement)("svg",{ref:u,...n,width:i,height:i,stroke:e,strokeWidth:o?24*Number(a)/Number(i):a,className:r("lucide",l),...!s&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(c)&&{"aria-hidden":"true"},...c},[...d.map(([e,r])=>(0,t.createElement)(e,r)),...Array.isArray(s)?s:[s]])),o=(e,n)=>{let o=(0,t.forwardRef)(({className:o,...l},s)=>(0,t.createElement)(a,{ref:s,iconNode:n,className:r(`lucide-${i(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,o),...l}));return o.displayName=i(e),o};e.s(["default",()=>o],75254)},27612,e=>{"use strict";let t=(0,e.i(75254).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",()=>t],27612)},95187,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={callServer:function(){return a.callServer},createServerReference:function(){return l.createServerReference},findSourceMapURL:function(){return o.findSourceMapURL}};for(var n in i)Object.defineProperty(r,n,{enumerable:!0,get:i[n]});let a=e.r(32120),o=e.r(92245),l=e.r(35326)},71689,e=>{"use strict";let t=(0,e.i(75254).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",()=>t],71689)},18566,(e,t,r)=>{t.exports=e.r(76562)},88143,(e,t,r)=>{"use strict";function i({widthInt:e,heightInt:t,blurWidth:r,blurHeight:i,blurDataURL:n,objectFit:a}){let o=r?40*r:e,l=i?40*i:t,s=o&&l?`viewBox='0 0 ${o} ${l}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${s}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${s?"none":"contain"===a?"xMidYMid":"cover"===a?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${n}'/%3E%3C/svg%3E`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImageBlurSvg",{enumerable:!0,get:function(){return i}})},87690,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={VALID_LOADERS:function(){return a},imageConfigDefault:function(){return o}};for(var n in i)Object.defineProperty(r,n,{enumerable:!0,get:i[n]});let a=["default","imgix","cloudinary","akamai","custom"],o={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1}},8927,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImgProps",{enumerable:!0,get:function(){return d}}),e.r(33525);let i=e.r(43369),n=e.r(88143),a=e.r(87690),o=["-moz-initial","fill","none","scale-down",void 0];function l(e){return void 0!==e.default}function s(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function d({src:e,sizes:t,unoptimized:r=!1,priority:d=!1,preload:c=!1,loading:u,className:f,quality:p,width:g,height:m,fill:h=!1,style:b,overrideSrc:y,onLoad:v,onLoadingComplete:x,placeholder:w="empty",blurDataURL:P,fetchPriority:C,decoding:_="async",layout:S,objectFit:E,objectPosition:O,lazyBoundary:j,lazyRoot:R,...M},T){var k;let G,z,A,{imgConf:I,showAltText:L,blurComplete:D,defaultLoader:$}=T,U=I||a.imageConfigDefault;if("allSizes"in U)G=U;else{let e=[...U.deviceSizes,...U.imageSizes].sort((e,t)=>e-t),t=U.deviceSizes.sort((e,t)=>e-t),r=U.qualities?.sort((e,t)=>e-t);G={...U,allSizes:e,deviceSizes:t,qualities:r}}if(void 0===$)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let F=M.loader||$;delete M.loader,delete M.srcSet;let N="__next_img_default"in F;if(N){if("custom"===G.loader)throw Object.defineProperty(Error(`Image with src "${e}" is missing "loader" prop.
|
|
2
|
-
Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=F;F=t=>{let{config:r,...i}=t;return e(i)}}if(S){"fill"===S&&(h=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[S];e&&(b={...b,...e});let r={responsive:"100vw",fill:"100vw"}[S];r&&!t&&(t=r)}let H="",q=s(g),B=s(m);if((k=e)&&"object"==typeof k&&(l(k)||void 0!==k.src)){let t=l(e)?e.default:e;if(!t.src)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!t.height||!t.width)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(z=t.blurWidth,A=t.blurHeight,P=P||t.blurDataURL,H=t.src,!h)if(q||B){if(q&&!B){let e=q/t.width;B=Math.round(t.height*e)}else if(!q&&B){let e=B/t.height;q=Math.round(t.width*e)}}else q=t.width,B=t.height}let W=!d&&!c&&("lazy"===u||void 0===u);(!(e="string"==typeof e?e:H)||e.startsWith("data:")||e.startsWith("blob:"))&&(r=!0,W=!1),G.unoptimized&&(r=!0),N&&!G.dangerouslyAllowSVG&&e.split("?",1)[0].endsWith(".svg")&&(r=!0);let V=s(p),K=Object.assign(h?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:E,objectPosition:O}:{},L?{}:{color:"transparent"},b),X=D||"empty"===w?null:"blur"===w?`url("data:image/svg+xml;charset=utf-8,${(0,n.getImageBlurSvg)({widthInt:q,heightInt:B,blurWidth:z,blurHeight:A,blurDataURL:P||"",objectFit:K.objectFit})}")`:`url("${w}")`,Z=o.includes(K.objectFit)?"fill"===K.objectFit?"100% 100%":"cover":K.objectFit,Y=X?{backgroundSize:Z,backgroundPosition:K.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:X}:{},J=function({config:e,src:t,unoptimized:r,width:n,quality:a,sizes:o,loader:l}){if(r){let e=(0,i.getDeploymentId)();if(t.startsWith("/")&&!t.startsWith("//")&&e){let r=t.includes("?")?"&":"?";t=`${t}${r}dpl=${e}`}return{src:t,srcSet:void 0,sizes:void 0}}let{widths:s,kind:d}=function({deviceSizes:e,allSizes:t},r,i){if(i){let r=/(^|\s)(1?\d?\d)vw/g,n=[];for(let e;e=r.exec(i);)n.push(parseInt(e[2]));if(n.length){let r=.01*Math.min(...n);return{widths:t.filter(t=>t>=e[0]*r),kind:"w"}}return{widths:t,kind:"w"}}return"number"!=typeof r?{widths:e,kind:"w"}:{widths:[...new Set([r,2*r].map(e=>t.find(t=>t>=e)||t[t.length-1]))],kind:"x"}}(e,n,o),c=s.length-1;return{sizes:o||"w"!==d?o:"100vw",srcSet:s.map((r,i)=>`${l({config:e,src:t,quality:a,width:r})} ${"w"===d?r:i+1}${d}`).join(", "),src:l({config:e,src:t,quality:a,width:s[c]})}}({config:G,src:e,unoptimized:r,width:q,quality:V,sizes:t,loader:F}),Q=W?"lazy":u;return{props:{...M,loading:Q,fetchPriority:C,width:q,height:B,decoding:_,className:f,style:{...K,...Y},sizes:J.sizes,srcSet:J.srcSet,src:y||J.src},meta:{unoptimized:r,preload:c||d,placeholder:w,fill:h}}}},98879,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return l}});let i=e.r(71645),n="u"<typeof window,a=n?()=>{}:i.useLayoutEffect,o=n?()=>{}:i.useEffect;function l(e){let{headManager:t,reduceComponentsToState:r}=e;function l(){if(t&&t.mountedInstances){let e=i.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(e))}}return n&&(t?.mountedInstances?.add(e.children),l()),a(()=>(t?.mountedInstances?.add(e.children),()=>{t?.mountedInstances?.delete(e.children)})),a(()=>(t&&(t._pendingUpdate=l),()=>{t&&(t._pendingUpdate=l)})),o(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},25633,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={default:function(){return m},defaultHead:function(){return u}};for(var n in i)Object.defineProperty(r,n,{enumerable:!0,get:i[n]});let a=e.r(55682),o=e.r(90809),l=e.r(43476),s=o._(e.r(71645)),d=a._(e.r(98879)),c=e.r(42732);function u(){return[(0,l.jsx)("meta",{charSet:"utf-8"},"charset"),(0,l.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function f(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===s.default.Fragment?e.concat(s.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}e.r(33525);let p=["name","httpEquiv","charSet","itemProp"];function g(e){let t,r,i,n;return e.reduce(f,[]).reverse().concat(u().reverse()).filter((t=new Set,r=new Set,i=new Set,n={},e=>{let a=!0,o=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){o=!0;let r=e.key.slice(e.key.indexOf("$")+1);t.has(r)?a=!1:t.add(r)}switch(e.type){case"title":case"base":r.has(e.type)?a=!1:r.add(e.type);break;case"meta":for(let t=0,r=p.length;t<r;t++){let r=p[t];if(e.props.hasOwnProperty(r))if("charSet"===r)i.has(r)?a=!1:i.add(r);else{let t=e.props[r],i=n[r]||new Set;("name"!==r||!o)&&i.has(t)?a=!1:(i.add(t),n[r]=i)}}}return a})).reverse().map((e,t)=>{let r=e.key||t;return s.default.cloneElement(e,{key:r})})}let m=function({children:e}){let t=(0,s.useContext)(c.HeadManagerContext);return(0,l.jsx)(d.default,{reduceComponentsToState:g,headManager:t,children:e})};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18556,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ImageConfigContext",{enumerable:!0,get:function(){return a}});let i=e.r(55682)._(e.r(71645)),n=e.r(87690),a=i.default.createContext(n.imageConfigDefault)},65856,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RouterContext",{enumerable:!0,get:function(){return i}});let i=e.r(55682)._(e.r(71645)).default.createContext(null)},70965,(e,t,r)=>{"use strict";function i(e,t){let r=e||75;return t?.qualities?.length?t.qualities.reduce((e,t)=>Math.abs(t-r)<Math.abs(e-r)?t:e,0):r}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"findClosestQuality",{enumerable:!0,get:function(){return i}})},1948,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return o}});let i=e.r(70965),n=e.r(43369);function a({config:e,src:t,width:r,quality:a}){if(t.startsWith("/")&&t.includes("?")&&e.localPatterns?.length===1&&"**"===e.localPatterns[0].pathname&&""===e.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${t}" is using a query string which is not configured in images.localPatterns.
|
|
3
|
-
Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let o=(0,i.findClosestQuality)(a,e),l=(0,n.getDeploymentId)();return`${e.path}?url=${encodeURIComponent(t)}&w=${r}&q=${o}${t.startsWith("/")&&l?`&dpl=${l}`:""}`}a.__next_img_default=!0;let o=a},18581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return n}});let i=e.r(71645);function n(e,t){let r=(0,i.useRef)(null),n=(0,i.useRef)(null);return(0,i.useCallback)(i=>{if(null===i){let e=r.current;e&&(r.current=null,e());let t=n.current;t&&(n.current=null,t())}else e&&(r.current=a(e,i)),t&&(n.current=a(t,i))},[e,t])}function a(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},5500,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"Image",{enumerable:!0,get:function(){return x}});let i=e.r(55682),n=e.r(90809),a=e.r(43476),o=n._(e.r(71645)),l=i._(e.r(74080)),s=i._(e.r(25633)),d=e.r(8927),c=e.r(87690),u=e.r(18556);e.r(33525);let f=e.r(65856),p=i._(e.r(1948)),g=e.r(18581),m={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function h(e,t,r,i,n,a,o){let l=e?.src;e&&e["data-loaded-src"]!==l&&(e["data-loaded-src"]=l,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&n(!0),r?.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let i=!1,n=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>i,isPropagationStopped:()=>n,persist:()=>{},preventDefault:()=>{i=!0,t.preventDefault()},stopPropagation:()=>{n=!0,t.stopPropagation()}})}i?.current&&i.current(e)}}))}function b(e){return o.use?{fetchPriority:e}:{fetchpriority:e}}"u"<typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let y=(0,o.forwardRef)(({src:e,srcSet:t,sizes:r,height:i,width:n,decoding:l,className:s,style:d,fetchPriority:c,placeholder:u,loading:f,unoptimized:p,fill:m,onLoadRef:y,onLoadingCompleteRef:v,setBlurComplete:x,setShowAltText:w,sizesInput:P,onLoad:C,onError:_,...S},E)=>{let O=(0,o.useCallback)(e=>{e&&(_&&(e.src=e.src),e.complete&&h(e,u,y,v,x,p,P))},[e,u,y,v,x,_,p,P]),j=(0,g.useMergedRef)(E,O);return(0,a.jsx)("img",{...S,...b(c),loading:f,width:n,height:i,decoding:l,"data-nimg":m?"fill":"1",className:s,style:d,sizes:r,srcSet:t,src:e,ref:j,onLoad:e=>{h(e.currentTarget,u,y,v,x,p,P)},onError:e=>{w(!0),"empty"!==u&&x(!0),_&&_(e)}})});function v({isAppRouter:e,imgAttributes:t}){let r={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...b(t.fetchPriority)};return e&&l.default.preload?(l.default.preload(t.src,r),null):(0,a.jsx)(s.default,{children:(0,a.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...r},"__nimg-"+t.src+t.srcSet+t.sizes)})}let x=(0,o.forwardRef)((e,t)=>{let r=(0,o.useContext)(f.RouterContext),i=(0,o.useContext)(u.ImageConfigContext),n=(0,o.useMemo)(()=>{let e=m||i||c.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>e-t),r=e.deviceSizes.sort((e,t)=>e-t),n=e.qualities?.sort((e,t)=>e-t);return{...e,allSizes:t,deviceSizes:r,qualities:n,localPatterns:"u"<typeof window?i?.localPatterns:e.localPatterns}},[i]),{onLoad:l,onLoadingComplete:s}=e,g=(0,o.useRef)(l);(0,o.useEffect)(()=>{g.current=l},[l]);let h=(0,o.useRef)(s);(0,o.useEffect)(()=>{h.current=s},[s]);let[b,x]=(0,o.useState)(!1),[w,P]=(0,o.useState)(!1),{props:C,meta:_}=(0,d.getImgProps)(e,{defaultLoader:p.default,imgConf:n,blurComplete:b,showAltText:w});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(y,{...C,unoptimized:_.unoptimized,placeholder:_.placeholder,fill:_.fill,onLoadRef:g,onLoadingCompleteRef:h,setBlurComplete:x,setShowAltText:P,sizesInput:e.sizes,ref:t}),_.preload?(0,a.jsx)(v,{isAppRouter:!r,imgAttributes:C}):null]})});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},94909,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={default:function(){return c},getImageProps:function(){return d}};for(var n in i)Object.defineProperty(r,n,{enumerable:!0,get:i[n]});let a=e.r(55682),o=e.r(8927),l=e.r(5500),s=a._(e.r(1948));function d(e){let{props:t}=(0,o.getImgProps)(e,{defaultLoader:s.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[e,r]of Object.entries(t))void 0===r&&delete t[e];return{props:t}}let c=l.Image},57688,(e,t,r)=>{t.exports=e.r(94909)},65261,e=>{"use strict";let t=(0,e.i(75254).default)("key-round",[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]);e.s(["KeyRound",()=>t],65261)},18868,e=>{"use strict";var t=e.i(95187);let r=(0,t.createServerReference)("0078074bcb5c62bcd2ced5447a3fdb8dbfdf7b3386",t.callServer,void 0,t.findSourceMapURL,"listCredentials");e.s(["listCredentials",()=>r])}]);
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,5951,e=>{"use strict";var t=e.i(43476),a=e.i(71645),s=e.i(75254);let l=(0,s.default)("folder-git-2",[["path",{d:"M18 19a5 5 0 0 1-5-5v8",key:"sz5oeg"}],["path",{d:"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5",key:"1w6njk"}],["circle",{cx:"13",cy:"12",r:"2",key:"1j92g6"}],["circle",{cx:"20",cy:"19",r:"2",key:"1obnsp"}]]);var r=e.i(55716),i=e.i(7233);let n=(0,s.default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),c=(0,s.default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]),o=(0,s.default)("folder-cog",[["path",{d:"M10.3 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.98a2 2 0 0 1 1.69.9l.66 1.2A2 2 0 0 0 12 6h8a2 2 0 0 1 2 2v3.3",key:"128dxu"}],["path",{d:"m14.305 19.53.923-.382",key:"3m78fa"}],["path",{d:"m15.228 16.852-.923-.383",key:"npixar"}],["path",{d:"m16.852 15.228-.383-.923",key:"5xggr7"}],["path",{d:"m16.852 20.772-.383.924",key:"dpfhf9"}],["path",{d:"m19.148 15.228.383-.923",key:"1reyyz"}],["path",{d:"m19.53 21.696-.382-.924",key:"1goivc"}],["path",{d:"m20.772 16.852.924-.383",key:"htqkph"}],["path",{d:"m20.772 19.148.924.383",key:"9w9pjp"}],["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}]]),d=(0,s.default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]),m=(0,s.default)("cpu",[["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M17 20v2",key:"1rnc9c"}],["path",{d:"M17 2v2",key:"11trls"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M2 17h2",key:"7oei6x"}],["path",{d:"M2 7h2",key:"asdhe0"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"M20 17h2",key:"1fpfkl"}],["path",{d:"M20 7h2",key:"1o8tra"}],["path",{d:"M7 20v2",key:"4gnj0m"}],["path",{d:"M7 2v2",key:"1i4yhu"}],["rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",key:"1vbyd7"}],["rect",{x:"8",y:"8",width:"8",height:"8",rx:"1",key:"z9xiuo"}]]);var u=e.i(27612),h=e.i(31343),p=e.i(65261);let x=(0,s.default)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);var f=e.i(95187);let b=(0,f.createServerReference)("402049a51d1ca6db2818a90f672096d8b1f9e9998a",f.callServer,void 0,f.findSourceMapURL,"checkDirectoryAccessible"),g=(0,f.createServerReference)("40986b59dad2e7ed2d6313af6d0dcac57397e2b324",f.callServer,void 0,f.findSourceMapURL,"listDirectories");var y=e.i(83177),v=e.i(27025),j=e.i(71689);let w=(0,s.default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);var N=e.i(81016),S=e.i(43733);function k({title:e,initialPath:s,onSelect:l,onCancel:r,checkRepo:i}){let[n,c]=(0,a.useState)(""),[o,d]=(0,a.useState)(""),[m,u]=(0,a.useState)([]),[h,p]=(0,a.useState)(!1),[x,f]=(0,a.useState)(null);(0,a.useEffect)(()=>{let e=!0;return(async()=>{try{let t=await (0,y.getHomeDirectory)();if(!e)return;d(t),c(s||t)}catch(t){if(console.error("Failed to resolve home directory:",t),!e)return;f("Failed to access your home directory."),c(s||"/")}})(),()=>{e=!1}},[s]),(0,a.useEffect)(()=>{if(!n)return;let e=!0;return(async()=>{p(!0),f(null);try{let t=await g(n);if(!e)return;if(0===t.length&&o&&n!==o){let t=await b(n);if(!e)return;if(!t){f(`Could not access "${n}". Showing home directory.`),c(o);return}}let a=t.map(e=>({name:e.name,path:e.path,isDirectory:e.isDirectory,isGitRepo:e.isGitRepo}));u(a)}catch(t){if(console.error(t),!e)return;if(o&&n!==o){f(`Could not access "${n}". Showing home directory.`),c(o);return}u([]),f("Failed to load directory contents")}finally{e&&p(!1)}})(),()=>{e=!1}},[n,o]);let k=(0,a.useCallback)(async e=>{if(i&&!await i(e)){f("Selected directory is not a valid git repository."),setTimeout(()=>f(null),3e3);return}await l(e)},[i,l]),C=(0,a.useCallback)(async()=>{await k(n)},[n,k]);return(0,S.useDialogKeyboardShortcuts)({onConfirm:C,onDismiss:r,canConfirm:!!n}),(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm p-4",children:(0,t.jsxs)("div",{className:"bg-base-200 rounded-lg shadow-xl w-full max-w-3xl h-[80vh] flex flex-col",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between p-4 border-b border-base-300",children:[(0,t.jsxs)("h2",{className:"text-xl font-bold flex items-center gap-2",children:[(0,t.jsx)(v.Folder,{className:"w-5 h-5"}),e||"Browse Local Repository"]}),(0,t.jsx)("button",{onClick:r,className:"btn btn-sm btn-ghost btn-circle",children:"✕"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 p-3 bg-base-300",children:[(0,t.jsx)("button",{onClick:()=>{let e=(0,N.getDirName)(n);e&&e!==n&&c(e)},className:"btn btn-sm btn-square btn-ghost",title:"Go Up",disabled:"/"===n||!n,children:(0,t.jsx)(j.ArrowLeft,{className:"w-4 h-4"})}),(0,t.jsx)("div",{className:"flex-1 overflow-x-auto whitespace-nowrap px-2 font-mono text-sm",children:n}),(0,t.jsx)("button",{onClick:C,className:"btn btn-sm btn-primary",children:"Select Current Folder"})]}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto p-2",children:h?(0,t.jsx)("div",{className:"flex justify-center items-center h-full",children:(0,t.jsx)("span",{className:"loading loading-spinner loading-lg"})}):x?(0,t.jsx)("div",{className:"alert alert-error",children:x}):0===m.length?(0,t.jsx)("div",{className:"text-center text-base-content/50 mt-10",children:"Empty directory"}):(0,t.jsx)("div",{className:"grid grid-cols-1 gap-1",children:m.map(e=>(0,t.jsxs)("div",{className:"flex items-center justify-between p-2 hover:bg-base-100 rounded-md cursor-pointer transition-colors",onClick:()=>{c(e.path)},children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 overflow-hidden",children:[(0,t.jsx)(v.Folder,{className:`w-5 h-5 ${e.isGitRepo?"text-primary":"text-base-content/70"}`}),(0,t.jsx)("span",{className:"truncate",children:e.name}),e.isGitRepo&&(0,t.jsx)("span",{className:"badge badge-xs badge-primary",children:"git"})]}),e.isGitRepo&&(0,t.jsxs)("button",{className:"btn btn-xs btn-primary",onClick:t=>{t.stopPropagation(),k(e.path)},title:`Select ${e.name}`,children:[(0,t.jsx)(w,{className:"w-3 h-3"}),"Select"]})]},e.path))})}),(0,t.jsx)("div",{className:"p-3 border-t border-base-300 text-xs text-base-content/50 text-center",children:'Navigate to a folder and click "Select Current Folder" to choose it.'})]})})}let C=(0,f.createServerReference)("400cbfc8c521c45a6f6adeec1f4b297e2644671747",f.callServer,void 0,f.findSourceMapURL,"checkIsGitRepo"),R=(0,f.createServerReference)("4022b965ca1fe521d06daa98f0174c5f4bc2097970",f.callServer,void 0,f.findSourceMapURL,"getBranches"),M=(0,f.createServerReference)("60799215c7b6468ae0369d2f925f09248851e016a2",f.callServer,void 0,f.findSourceMapURL,"checkoutBranch");var D=e.i(92696);let L=(0,f.createServerReference)("7f9da734aeb584e0970c47ee7c02200fb890807599",f.callServer,void 0,f.findSourceMapURL,"getStartupScript"),P=(0,f.createServerReference)("7f282c744696cfd1de2730331634c16b1d2a4569bd",f.callServer,void 0,f.findSourceMapURL,"getDefaultDevServerScript"),E=(0,f.createServerReference)("7f8cce0dac8a53474149a0ef9a5da3cc172bb508c0",f.callServer,void 0,f.findSourceMapURL,"listRepoFiles");var F=e.i(49525);let $=(0,f.createServerReference)("4027240f68b38666f303975d87e63e0dfe73afb62d",f.callServer,void 0,f.findSourceMapURL,"checkAgentCliInstalled"),A=(0,f.createServerReference)("401460854fdcfc717dda9fda285aaca353bebb07d7",f.callServer,void 0,f.findSourceMapURL,"installAgentCli"),U=(0,f.createServerReference)("404032b18cf362a97fb44478d41640141e7411bf42",f.callServer,void 0,f.findSourceMapURL,"resolveRepositoryByName"),T=(0,f.createServerReference)("70dc70ed7b1a40c1d3da467aae83a0c8a6d47e7761",f.callServer,void 0,f.findSourceMapURL,"copySessionAttachments"),I=(0,f.createServerReference)("703ace398e6ae0d4ed8084c75708becf71ccee5847",f.callServer,void 0,f.findSourceMapURL,"createSession"),G=(0,f.createServerReference)("40ea783814968efc22bd61fae3eca5fcb065f14ba9",f.callServer,void 0,f.findSourceMapURL,"deleteSession"),K=(0,f.createServerReference)("406931ec09ffeae3a5edd7c3f635709211220e87f9",f.callServer,void 0,f.findSourceMapURL,"getSessionPrefillContext"),B=(0,f.createServerReference)("408483f0ec64f86d68d7b24e22242504de09617cea",f.callServer,void 0,f.findSourceMapURL,"listSessions"),O=(0,f.createServerReference)("60eeeebd75f68f395180434358d5a5662752ef9902",f.callServer,void 0,f.findSourceMapURL,"saveSessionLaunchContext");var z=e.i(91536),H=e.i(90181);let V=(0,f.createServerReference)("601730fa59d968263bd7383a69c1a56f2fa1c01aa3",f.callServer,void 0,f.findSourceMapURL,"updateRepoSettings");var _=e.i(18868),q=e.i(18566),W=e.i(63671),Y=e.i(57688);function J(e){if("github"===e.type)return`GitHub - ${e.username}`;let t=e.serverUrl;try{t=new URL(e.serverUrl).host}catch{}return`GitLab - ${e.username} @ ${t}`}let Q=e.i(35027).default,X="viba:new-session-mode",Z={gemini:"gemini",codex:"codex",agent:"agent"},ee={gemini:"Gemini CLI",codex:"Codex CLI",agent:"Cursor Agent CLI"};function et({mode:e="home",repoPath:s=null,fromRepoName:f=null,prefillFromSession:b=null}){let[g,y]=(0,a.useState)(!1),[v,j]=(0,a.useState)(!1),[w,et]=(0,a.useState)(!1),[ea,es]=(0,a.useState)(null),[el,er]=(0,a.useState)(null),[ei,en]=(0,a.useState)(null),[ec,eo]=(0,a.useState)("auto"),[ed,em]=(0,a.useState)([]),eu=(0,q.useRouter)(),[eh,ep]=(0,a.useState)([]),[ex,ef]=(0,a.useState)(""),[eb,eg]=(0,a.useState)([]),[ey,ev]=(0,a.useState)([]),[ej,ew]=(0,a.useState)(null),[eN,eS]=(0,a.useState)(""),[ek,eC]=(0,a.useState)(""),[eR,eM]=(0,a.useState)(""),[eD,eL]=(0,a.useState)(!1),[eP,eE]=(0,a.useState)(""),[eF,e$]=(0,a.useState)(""),[eA,eU]=(0,a.useState)("fast"),[eT,eI]=(0,a.useState)([]),[eG,eK]=(0,a.useState)([]),[eB,eO]=(0,a.useState)(null),[ez,eH]=(0,a.useState)(!1),[eV,e_]=(0,a.useState)(!1),[eq,eW]=(0,a.useState)(null),[eY,eJ]=(0,a.useState)(null),[eQ,eX]=(0,a.useState)(!1),[eZ,e0]=(0,a.useState)(!1),[e2,e1]=(0,a.useState)(!1),[e3,e4]=(0,a.useState)(null),[e6,e7]=(0,a.useState)(!1),[e5,e8]=(0,a.useState)(null),[e9,te]=(0,a.useState)(""),[tt,ta]=(0,a.useState)(!1),[ts,tl]=(0,a.useState)(null),[tr,ti]=(0,a.useState)(null),[tn,tc]=(0,a.useState)(!1),[to,td]=(0,a.useState)(!1),tm=(0,a.useRef)(null),tu=ej&&eN?`Show Session Setup (${ej.name} / ${eN})`:"Show Session Setup",th=(0,a.useCallback)(()=>{(0,W.notifySessionsUpdated)()},[]),tp=(0,a.useCallback)(async(e=el)=>{try{let[t,a]=await Promise.all([B(),e?B(e):Promise.resolve([])]);ev(t),e&&eg(a)}catch(e){console.error("Failed to refresh sessions",e)}},[el]),tx=(0,a.useCallback)(e=>"gemini"===e||"codex"===e||"agent"===e?e:null,[]),tf=(0,a.useCallback)((e,t=ed)=>{let a=ea?.repoSettings?.[e];if(!a)return"auto";if(a.credentialId)return a.credentialId;let s=a.credentialPreference;if("github"===s||"gitlab"===s){let e=t.find(e=>e.type===s);if(e)return e.id}return"auto"},[ea,ed]),tb=(0,a.useCallback)(e=>{let t=ea?.repoSettings?.[e];if(!t)return"Auto";if(t.credentialId){let e=ed.find(e=>e.id===t.credentialId);return e?J(e):"Selected credential"}return"github"===t.credentialPreference?"GitHub (legacy)":"gitlab"===t.credentialPreference?"GitLab (legacy)":"Auto"},[ea,ed]),tg=(0,a.useCallback)(()=>{to||(et(!1),en(null),eo("auto"),ti(null),tc(!1))},[to]);(0,a.useEffect)(()=>{(async()=>{try{let[e,t,a]=await Promise.all([(0,z.getConfig)(),B(),(0,_.listCredentials)()]);es(e),ev(t),a.success&&em(a.credentials)}catch(e){console.error("Failed to load data",e)}finally{e0(!0)}})()},[]),(0,a.useEffect)(()=>{if("new"===e)try{let e=window.localStorage.getItem(X);("fast"===e||"plan"===e)&&eU(e)}catch{}},[e]),(0,a.useEffect)(()=>{let t=()=>{tp("new"===e?el:null)},a=e=>{e.key===W.SESSIONS_UPDATED_STORAGE_KEY&&t()},s=()=>{t()},l=()=>{t()};return window.addEventListener("storage",a),window.addEventListener("focus",s),window.addEventListener(W.SESSIONS_UPDATED_EVENT,l),()=>{window.removeEventListener("storage",a),window.removeEventListener("focus",s),window.removeEventListener(W.SESSIONS_UPDATED_EVENT,l)}},[e,tp,el]);let ty=async e=>{er(e),tH([]),await tw(e),await tS(e),await tp(e)},tv=async t=>{e_(!0),eJ(null);try{if(!await C(t))return eJ("Selected directory is not a valid git repository."),!1;let a=[...(ea||await (0,z.getConfig)()).recentRepos];a.includes(t)?a=[t,...a.filter(e=>e!==t)]:a.unshift(t);let s=await (0,H.updateConfig)({recentRepos:a});if(es(s),y(!1),"home"===e)return eu.push(`/new?repo=${encodeURIComponent(t)}`),!0;return await ty(t),!0}catch(e){return console.error(e),eJ("Failed to open repository."),!1}finally{e_(!1)}},tj=async t=>{if("new"!==e)return;let a=t.target.value;if(!a||a===el||!await tv(a))return;let s=new URLSearchParams;s.set("repo",a),b&&s.set("prefillFromSession",b),eu.replace(`/new?${s.toString()}`)};(0,a.useEffect)(()=>{if("new"===e){if(!s){er(null),eg([]),ep([]),ef("");return}s!==el&&tv(s)}},[e,s,el]),(0,a.useEffect)(()=>{if("new"!==e)return;if(s)return void eX(!1);let t=f?.trim()??"";if(!t)return void eX(!1);let a=!1;return(async()=>{eJ(null),eX(!0);let e=await U(t);if(a)return;if(!e.success){eJ(e.error||"Failed to search repositories."),eX(!1);return}if(!e.repoPath){eJ(`Could not find a matching repository for "${t}".`),eX(!1);return}let s=new URLSearchParams;s.set("repo",e.repoPath),b&&s.set("prefillFromSession",b),eu.replace(`/new?${s.toString()}`)})(),()=>{a=!0}},[f,e,b,s,eu]),(0,a.useEffect)(()=>{eH(!1),eK([]),eO(null)},[b]),(0,a.useEffect)(()=>{if("new"!==e||!el||!b||ez)return;let t=!1;return(async()=>{let e=await K(b);if(t)return;if(!e.success||!e.context){e.error&&eJ(e.error),eH(!0);return}let a=e.context;if(a.repoPath!==el)return eH(!0);let s=Q.find(e=>e.cli===a.agentProvider);s&&(ew(s),a.model&&("auto"===a.model||s.models.some(e=>e.id===a.model))?eS(a.model):eS("auto")),e$(a.title||""),eE(a.initialMessage||""),eK(a.attachmentNames||[]),eO(a.sourceSessionName),eL(!0),eH(!0)})(),()=>{t=!0}},[ez,e,b,el]);let tw=async e=>{let t=ea||await (0,z.getConfig)();ea||es(t);let a=t.repoSettings[e]||{},s=a.agentProvider,l=a.agentModel,r=a.startupScript,i=a.devServerScript;if(s){let e=Q.find(e=>e.cli===s);e?(ew(e),l&&("auto"===l||e.models.some(e=>e.id===l))?eS(l):eS("auto")):(ew(Q[0]),eS("auto"))}else ew(Q[0]),eS("auto");null!=r?eC(r):eC(await L(e)),null!=i?eM(i):eM(await P(e))},tN=async e=>{es(await (0,H.updateConfig)({defaultRoot:e})),j(!1)},tS=async e=>{try{let t=await R(e);ep(t);let a=((ea||await (0,z.getConfig)()).repoSettings[e]||{}).lastBranch,s=t.find(e=>e.current)?.name;if(a&&t.some(e=>e.name===a)){if(ef(a),a!==s)try{await M(e,a);let t=await R(e);ep(t)}catch(e){console.warn("Could not auto-checkout to remembered branch",e),s&&ef(s)}}else s&&ef(s)}catch(e){console.error("Failed to load branches",e),eJ("Failed to load branches.")}},tk=async e=>{let t=e.target.value;if(el){e_(!0);try{await M(el,t),ef(t);let e=await V(el,{lastBranch:t});es(e);let a=await R(el);ep(a)}catch{eJ(`Failed to checkout branch ${t}`)}finally{e_(!1)}}},tC=async e=>{let t=e.target.value,a=Q.find(e=>e.cli===t);if(a&&el){ew(a);let e="auto";eS(e),es(await V(el,{agentProvider:a.cli,agentModel:e}))}},tR=async e=>{let t=e.target.value;eS(t),el&&es(await V(el,{agentModel:t}))},tM=async e=>{eC(e.target.value)},tD=async()=>{el&&es(await V(el,{startupScript:ek}))},tL=async e=>{el&&es(await V(el,{devServerScript:e}))},tP=async()=>{await tL(eR)},tE=(0,a.useCallback)((e,t)=>{if(e.name&&e.name.trim().length>0)return e;let a=e.type&&e.type.split("/")[1]?.split("+")[0]||"bin";return new File([e],`pasted-file-${Date.now()}-${t+1}.${a}`,{type:e.type,lastModified:e.lastModified||Date.now()})},[]),tF=(0,a.useCallback)(e=>{0!==e.length&&eI(t=>{let a=new Map(t.map(e=>[e.name,e]));return e.forEach(e=>{a.set(e.name,e)}),Array.from(a.values())})},[]),[t$,tA]=(0,a.useState)(!1),[tU,tT]=(0,a.useState)([]),[,tI]=(0,a.useState)(""),[tG,tK]=(0,a.useState)(0),[tB,tO]=(0,a.useState)(0),[tz,tH]=(0,a.useState)([]),tV=async e=>{let t=e.target.value,a=e.target.selectionStart;eE(t),tK(a);let s=t.substring(0,a),l=s.lastIndexOf("@");if(-1!==l){let e=s.substring(l+1);if(!/\s/.test(e)){if(tI(e),tA(!0),el){var r;let t,a=tz;0===tz.length&&tH(a=await E(el)),r=a,t=e.toLowerCase(),tT([...[...eT.map(e=>e.name),...eG].filter(e=>e.toLowerCase().includes(t)),...r.filter(e=>e.toLowerCase().includes(t)).slice(0,20)]),tO(0)}return}}tA(!1)},t_=e=>{let t=eP.substring(0,tG).lastIndexOf("@");if(-1!==t){let a=eP.substring(0,t),s=eP.substring(tG);eE(`${a}@${e} ${s}`),tA(!1)}};(0,a.useEffect)(()=>{if("new"!==e||!el)return;let t=e=>{let t=e.clipboardData;if(!t)return;let a=Array.from(t.items).filter(e=>"file"===e.kind).map(e=>e.getAsFile()).filter(e=>null!==e),s=(a.length>0?a:Array.from(t.files)).map((e,t)=>tE(e,t));0!==s.length&&(e.preventDefault(),tF(s))};return window.addEventListener("paste",t),()=>{window.removeEventListener("paste",t)}},[tF,e,tE,el]);let tq=async(e,t)=>{if(e.stopPropagation(),ea){let e=ea.recentRepos.filter(e=>e!==t);es(await (0,H.updateConfig)({recentRepos:e}))}},tW=async(e,t)=>{e.stopPropagation(),en(t),eo(tf(t)),ti(null),et(!0),tc(!0);try{let e=await (0,_.listCredentials)();e.success?(em(e.credentials),eo(tf(t,e.credentials))):(ti(e.error),em([]))}catch(e){console.error(e),ti("Failed to load credentials."),em([])}finally{tc(!1)}},tY=async()=>{if(!ei)return;let e="auto"===ec?null:ec;if(e&&!ed.some(t=>t.id===e))return void ti("Selected credential no longer exists. Please choose another credential.");td(!0),ti(null);try{let t=await V(ei,{credentialId:e,credentialPreference:void 0});es(t),tg()}catch(e){console.error(e),ti("Failed to save repository settings.")}finally{td(!1)}},tJ=(0,a.useCallback)(()=>{if(!e6||!e9||!tm.current)return;let e=tm.current,t=(a=0)=>{if(a>40)return void tl("Timed out while waiting for terminal to initialize.");try{let s=e.contentWindow;if(s?.term){s.term.paste(`${e9}\r`),ta(!0),tl(null),s.focus();return}setTimeout(()=>t(a+1),300)}catch(e){console.error("Failed to inject login command into terminal iframe:",e),tl("Could not access ttyd terminal. Ensure ttyd is running and try again.")}};setTimeout(()=>t(),500)},[e6,e9]),tQ=(0,a.useCallback)(async()=>{let e=tx(ej?.cli);if(!e)return!0;let t=await $(e);if(!t.success)return eJ(t.error||`Failed to verify ${ee[e]} installation status.`),!1;if(t.installed)return!0;e1(!0),e4(e),eJ(null);let a=await A(e);if(e1(!1),e4(null),!a.success)return eJ(a.error||`Failed to install ${ee[e]}.`),!1;let s=await (0,D.startTtydProcess)();return s.success?(e8(e),te(Z[e]),ta(!1),tl(null),e7(!0)):eJ(s.error||"Failed to start ttyd"),!1},[ej?.cli,tx]),tX=async(e={})=>{if(el){e_(!0),eJ(null);try{if(!e.skipAgentSetup&&!await tQ())return void e_(!1);let t=eR.trim();!t&&(t=await P(el))&&eM(t),await tD(),await tL(t);let a=await (0,D.startTtydProcess)();if(!a.success){eJ(a.error||"Failed to start ttyd"),e_(!1);return}let s=await I(el,ex||"main",{agent:ej?.cli||"agent",model:eN||"",title:eF,devServerScript:t||void 0});if(s.success&&s.sessionName&&s.worktreePath&&s.branchName){let e=[],t=[];if(eT.length>0){let t=new FormData;eT.forEach(e=>t.append(e.name,e)),e=await (0,F.saveAttachments)(s.worktreePath,t)}if(eB&&eG.length>0){let e=await T(eB,s.worktreePath,eG);if(!e.success){eJ(e.error||"Failed to carry over attachments from source session"),e_(!1);return}t=e.copiedAttachmentNames}let a=Array.from(new Set([...e,...t])),l=eP.trim(),r=l;r=r.replace(/@(\S+)/g,(e,t)=>a.includes(t)?`${s.worktreePath}-attachments/${t}`:t);let i=await O(s.sessionName,{title:eF||void 0,initialMessage:r||void 0,rawInitialMessage:l||void 0,startupScript:ek||void 0,attachmentNames:a,agentProvider:ej?.cli||"agent",model:eN||"",sessionMode:eA});if(!i.success){eJ(i.error||"Failed to save session context"),e_(!1);return}let n=`/session/${s.sessionName}`;eu.push(n),e_(!1)}else eJ(s.error||"Failed to create session worktree"),e_(!1)}catch(e){console.error(e),eJ("Failed to start session"),e_(!1)}}},tZ=()=>{tX()},t0=(0,a.useCallback)(()=>{e7(!1),e8(null),te(""),ta(!1),tl(null)},[]),t2=async()=>{t0(),await tX({skipAgentSetup:!0})};(0,S.useDialogKeyboardShortcuts)({enabled:"new"===e&&e6&&!!e5,onConfirm:t2,onDismiss:t0,canConfirm:!eV}),(0,S.useDialogKeyboardShortcuts)({enabled:"home"===e&&w&&!!ei,onConfirm:tY,onDismiss:tg,canConfirm:!to});let t1=async e=>{if(el){e_(!0);try{let t=await (0,D.startTtydProcess)();if(!t.success){eJ(t.error||"Failed to start ttyd"),e_(!1);return}let a=`/session/${e.sessionName}`;eu.push(a),e_(!1)}catch(e){console.error(e),eJ("Failed to resume session"),e_(!1)}}},t3=async e=>{if(el&&confirm(`Delete session "${e.sessionName}"?
|
|
2
|
-
|
|
3
|
-
This will remove the worktree, branch, and session metadata.`)){eW(e.sessionName),eJ(null);try{let t=await G(e.sessionName);if(!t.success)return void eJ(t.error||"Failed to delete session");let a=await B(el);eg(a);let s=await B();ev(s),th()}catch(e){console.error(e),eJ("Failed to delete session")}finally{eW(null)}}},t4=ea?.recentRepos??[],t6=el?t4.includes(el)?t4:[el,...t4]:t4;return(0,t.jsxs)(t.Fragment,{children:["home"===e&&(0,t.jsx)("div",{className:"card w-full max-w-2xl bg-base-200 shadow-xl",children:(0,t.jsxs)("div",{className:"card-body",children:[(0,t.jsxs)("h2",{className:"card-title flex justify-between items-center",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(Y.default,{src:"/icon.png",alt:"Viba",width:24,height:24,className:"rounded-sm"}),"Viba"]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("button",{className:"btn btn-ghost btn-sm gap-2",onClick:()=>eu.push("/credentials"),title:"Manage GitHub/GitLab credentials",children:[(0,t.jsx)(p.KeyRound,{className:"w-4 h-4"}),"Credentials"]}),(0,t.jsxs)("button",{className:"btn btn-ghost btn-sm gap-2",onClick:()=>j(!0),title:ea?.defaultRoot?`Default: ${ea.defaultRoot}`:"Set default browsing folder",children:[(0,t.jsx)(o,{className:"w-4 h-4"}),ea?.defaultRoot?"Change Default":"Set Default Root"]}),(0,t.jsxs)("button",{className:"btn btn-primary btn-sm gap-2",onClick:()=>y(!0),children:[(0,t.jsx)(i.Plus,{className:"w-4 h-4"})," Open Local Repo"]})]})]}),eY&&(0,t.jsx)("div",{className:"alert alert-error text-sm py-2 px-3 mt-2",children:eY}),(0,t.jsx)("div",{className:"mt-4 space-y-4",children:(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("h3",{className:"text-sm font-semibold opacity-70 uppercase tracking-wide",children:"Recent Repositories"}),eZ?ea&&0!==ea.recentRepos.length?(0,t.jsx)("div",{className:"flex flex-col gap-2",children:ea.recentRepos.map(e=>{let a=tb(e);return(0,t.jsxs)("div",{onClick:()=>tv(e),className:"flex items-center justify-between p-3 bg-base-100 hover:bg-base-300 rounded-md cursor-pointer group transition-all border border-base-300",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 overflow-hidden shrink min-w-0",children:[(0,t.jsx)(l,{className:"w-5 h-5 text-secondary shrink-0"}),(0,t.jsxs)("div",{className:"flex flex-col overflow-hidden",children:[(0,t.jsx)("span",{className:"font-medium truncate",children:(0,N.getBaseName)(e)}),(0,t.jsx)("span",{className:"text-xs opacity-50 truncate",children:e}),(0,t.jsxs)("span",{className:"text-[10px] opacity-60 mt-0.5",children:["Credential: ",a]})]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[(0,t.jsx)("button",{onClick:t=>{tW(t,e)},className:"btn btn-circle btn-ghost btn-xs opacity-0 group-hover:opacity-100",title:"Repository settings",children:(0,t.jsx)(x,{className:"w-3 h-3"})}),(0,t.jsx)("button",{onClick:t=>tq(t,e),className:"btn btn-circle btn-ghost btn-xs opacity-0 group-hover:opacity-100 text-error",title:"Remove from history",children:(0,t.jsx)(n,{className:"w-3 h-3"})}),(0,t.jsx)(c,{className:"w-4 h-4 opacity-30"})]})]},e)})}):(0,t.jsx)("div",{className:"text-center py-8 text-base-content/40 italic bg-base-100 rounded-lg",children:"No recent repositories found."}):(0,t.jsx)("div",{className:"flex items-center justify-center py-8 bg-base-100 rounded-lg",children:(0,t.jsx)("span",{className:"loading loading-spinner loading-md"})})]})})]})}),"home"===e&&w&&ei&&(0,t.jsx)("div",{className:"fixed inset-0 z-[1002] flex items-center justify-center bg-base-content/60 p-4",children:(0,t.jsx)("div",{className:"w-full max-w-xl rounded-xl border border-base-300 bg-base-100 shadow-2xl",children:(0,t.jsxs)("div",{className:"space-y-4 p-5 md:p-6",children:[(0,t.jsx)("h3",{className:"text-xl font-semibold",children:"Repository Settings"}),(0,t.jsx)("p",{className:"text-sm opacity-75",children:"Choose which credential this repository should use for authenticated Git operations."}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-xs uppercase tracking-wide opacity-70",children:"Repository"}),(0,t.jsx)("div",{className:"rounded-md border border-base-300 bg-base-200 px-3 py-2 font-mono text-xs break-all",children:ei})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-xs uppercase tracking-wide opacity-70",children:"Credential"}),(0,t.jsxs)("select",{className:"select select-bordered w-full",value:ec,onChange:e=>eo(e.target.value),disabled:to,children:[(0,t.jsx)("option",{value:"auto",children:"Auto (match repository remote)"}),ed.map(e=>(0,t.jsx)("option",{value:e.id,children:J(e)},e.id))]}),0===ed.length&&!tn&&(0,t.jsx)("div",{className:"text-xs opacity-60",children:"No credentials found. Add credentials from the Credentials page."})]}),tn&&(0,t.jsxs)("div",{className:"text-sm opacity-70 flex items-center gap-2",children:[(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Loading credentials..."]}),tr&&(0,t.jsx)("div",{className:"alert alert-error text-sm py-2",children:tr}),(0,t.jsxs)("div",{className:"flex justify-end gap-2 pt-2",children:[(0,t.jsx)("button",{className:"btn btn-ghost",onClick:tg,disabled:to,children:"Cancel"}),(0,t.jsxs)("button",{className:"btn btn-primary",onClick:()=>void tY(),disabled:to||tn,children:[to?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):null,"Save"]})]})]})})}),"new"===e&&el&&(0,t.jsxs)("div",{className:"w-full max-w-6xl space-y-4",children:[eY&&(0,t.jsx)("div",{className:"alert alert-error text-sm py-2 px-3",children:eY}),(0,t.jsxs)("div",{className:"flex flex-col gap-4 w-full",children:[(0,t.jsx)("div",{className:"card w-full bg-base-200 shadow-xl",children:(0,t.jsxs)("div",{className:"card-body",children:[(0,t.jsxs)("h2",{className:"card-title flex justify-between items-center",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(l,{className:"w-6 h-6 text-primary"}),"Git Repository Selector"]}),(0,t.jsx)("button",{className:"btn btn-sm btn-ghost",onClick:()=>eu.push("/"),children:"Change Repo"})]}),(0,t.jsx)("div",{className:"mt-4",children:(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,t.jsxs)("div",{className:"bg-base-100 p-4 rounded-lg border border-base-300 space-y-2",children:[(0,t.jsx)("label",{className:"text-xs opacity-50 uppercase tracking-widest",children:"Current Repository"}),(0,t.jsxs)("div",{className:"join w-full",children:[(0,t.jsx)("div",{className:"join-item bg-base-300 flex items-center px-3 border border-base-content/20 border-r-0",children:(0,t.jsx)(l,{className:"w-4 h-4 text-primary"})}),(0,t.jsx)("select",{className:"select select-bordered join-item w-full font-mono focus:outline-none",value:el,onChange:e=>{tj(e)},disabled:eV||0===t6.length,children:t6.map(e=>(0,t.jsx)("option",{value:e,children:(0,N.getBaseName)(e)},e))})]}),(0,t.jsx)("div",{className:"text-[10px] opacity-50 font-mono truncate px-1",title:el,children:el})]}),(0,t.jsxs)("div",{className:"bg-base-100 p-4 rounded-lg border border-base-300 space-y-2",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)("label",{className:"text-sm font-medium opacity-70 uppercase tracking-widest",children:"Current Branch"}),eV&&(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"})]}),(0,t.jsxs)("div",{className:"join w-full",children:[(0,t.jsx)("div",{className:"join-item bg-base-300 flex items-center px-3 border border-base-content/20 border-r-0",children:(0,t.jsx)(r.GitBranch,{className:"w-4 h-4"})}),(0,t.jsx)("select",{className:"select select-bordered join-item w-full font-mono focus:outline-none",value:ex,onChange:tk,disabled:eV,children:eh.map(e=>(0,t.jsxs)("option",{value:e.name,children:[e.name," ",e.current?"(checked out)":""]},e.name))})]}),(0,t.jsx)("div",{className:"text-[10px] opacity-50 px-1 italic",children:"Switching branches updates the working directory."})]})]})})]})}),eb.length>0&&(0,t.jsx)("div",{className:"card w-full bg-base-200 shadow-xl",children:(0,t.jsxs)("div",{className:"card-body",children:[(0,t.jsxs)("h2",{className:"card-title flex items-center gap-2",children:[(0,t.jsx)(h.Play,{className:"w-6 h-6 text-success"}),"Continue Existing Session"]}),(0,t.jsx)("div",{className:"flex flex-col gap-2 mt-4 max-h-64 overflow-y-auto",children:eb.map(e=>(0,t.jsx)("div",{className:"flex flex-col gap-2 p-3 bg-base-100 rounded-md border border-base-300",children:(0,t.jsxs)("div",{className:"flex justify-between items-start",children:[(0,t.jsxs)("div",{children:[e.title&&(0,t.jsx)("div",{className:"font-semibold",children:e.title}),(0,t.jsx)("div",{className:"text-xs opacity-60 font-mono",children:e.sessionName}),(0,t.jsxs)("div",{className:"text-xs opacity-60 mt-1",children:["Agent: ",e.agent," • Model: ",e.model]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("button",{className:"btn btn-sm btn-success btn-outline gap-2",onClick:()=>t1(e),disabled:eV||eq===e.sessionName,children:[(0,t.jsx)(h.Play,{className:"w-3 h-3"})," Resume"]}),(0,t.jsxs)("button",{className:"btn btn-sm btn-secondary btn-outline gap-2",onClick:()=>(e=>{if(!el)return;let t=`/new?repo=${encodeURIComponent(el)}&prefillFromSession=${encodeURIComponent(e.sessionName)}`;eu.push(t)})(e),disabled:eV||eq===e.sessionName,title:"Start a new attempt prefilled from this session",children:[(0,t.jsx)(i.Plus,{className:"w-3 h-3"})," New Attempt"]}),(0,t.jsxs)("button",{className:"btn btn-sm btn-error btn-outline gap-2",onClick:()=>t3(e),disabled:eV||eq===e.sessionName,children:[(0,t.jsx)(u.Trash2,{className:"w-3 h-3"}),eq===e.sessionName?"Deleting...":"Delete"]})]})]})},e.sessionName))})]})}),(0,t.jsx)("div",{className:"card w-full bg-base-200 shadow-xl",children:(0,t.jsxs)("div",{className:"card-body",children:[(0,t.jsxs)("h2",{className:"card-title flex items-center gap-2",children:[(0,t.jsx)(d,{className:"w-6 h-6 text-secondary"}),"Start New Session"]}),(0,t.jsxs)("div",{className:"mt-4 space-y-6",children:[(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("button",{type:"button",className:"btn btn-ghost btn-sm px-2 h-auto min-h-0 normal-case justify-start gap-2",onClick:()=>eL(e=>!e),children:[(0,t.jsx)(c,{className:`w-4 h-4 transition-transform ${eD?"rotate-90":""}`}),eD?"Hide Session Setup":tu]}),eD&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium opacity-70",children:"Agent Provider"}),(0,t.jsxs)("div",{className:"join w-full",children:[(0,t.jsx)("div",{className:"join-item bg-base-300 flex items-center px-3 border border-base-content/20 border-r-0",children:(0,t.jsx)(d,{className:"w-4 h-4"})}),(0,t.jsx)("select",{className:"select select-bordered join-item w-full focus:outline-none",value:ej?.cli||"",onChange:tC,disabled:eV,children:Q.map(e=>(0,t.jsx)("option",{value:e.cli,children:e.name},e.cli))})]}),ej?.description&&(0,t.jsx)("p",{className:"text-[10px] opacity-60 mt-1 pl-1 italic leading-tight",children:ej.description})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium opacity-70",children:"Model"}),(0,t.jsxs)("div",{className:"join w-full",children:[(0,t.jsx)("div",{className:"join-item bg-base-300 flex items-center px-3 border border-base-content/20 border-r-0",children:(0,t.jsx)(m,{className:"w-4 h-4"})}),(0,t.jsxs)("select",{className:"select select-bordered join-item w-full focus:outline-none",value:eN,onChange:tR,disabled:eV||!ej,children:[(0,t.jsx)("option",{value:"auto",children:"Auto"}),ej?.models.map(e=>(0,t.jsx)("option",{value:e.id,children:e.label},e.id))]})]}),ej?.models.find(e=>e.id===eN)?.description&&(0,t.jsx)("p",{className:"text-[10px] opacity-60 mt-1 pl-1 italic leading-tight",children:ej.models.find(e=>e.id===eN)?.description})]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium opacity-70",children:"Start up script (Optional)"}),(0,t.jsx)("input",{type:"text",className:"input input-bordered w-full font-mono text-sm",placeholder:"npm i",value:ek,onChange:tM,onBlur:tD,onKeyDown:e=>{(e.metaKey||e.ctrlKey)&&"Enter"===e.key&&(e.preventDefault(),tZ())},disabled:eV}),(0,t.jsx)("div",{className:"text-xs opacity-50 px-1",children:"Script to run in the terminal agent iframe upon startup."})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium opacity-70",children:"Dev server script (Optional)"}),(0,t.jsx)("input",{type:"text",className:"input input-bordered w-full font-mono text-sm",placeholder:"npm run dev",value:eR,onChange:e=>{eM(e.target.value)},onBlur:tP,onKeyDown:e=>{(e.metaKey||e.ctrlKey)&&"Enter"===e.key&&(e.preventDefault(),tZ())},disabled:eV}),(0,t.jsx)("div",{className:"text-xs opacity-50 px-1",children:"Script for the Session View Start Dev Server button in the right terminal."})]})]})]}),(0,t.jsx)("div",{className:"divider"}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium opacity-70",children:"Session Mode"}),(0,t.jsxs)("select",{className:"select select-bordered w-full focus:outline-none",value:eA,onChange:e=>{let t="plan"===e.target.value?"plan":"fast";eU(t);try{window.localStorage.setItem(X,t)}catch{}},disabled:eV,children:[(0,t.jsx)("option",{value:"fast",children:"Fast Mode (default)"}),(0,t.jsx)("option",{value:"plan",children:"Plan Mode"})]}),(0,t.jsx)("div",{className:"text-xs opacity-50 px-1",children:"plan"===eA?"Plan mode asks the agent to study the repo, propose a plan, and wait for your approval before implementation.":"Fast mode starts the agent with current behavior."})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium opacity-70",children:"Title (Optional)"}),(0,t.jsx)("input",{type:"text",className:"input input-bordered w-full font-mono text-sm",placeholder:"Task Title",value:eF,onChange:e=>e$(e.target.value),onKeyDown:e=>{(e.metaKey||e.ctrlKey)&&"Enter"===e.key&&(e.preventDefault(),tZ())},disabled:eV})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium opacity-70",children:"Initial Message (Optional)"}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("textarea",{className:"textarea textarea-bordered w-full h-64 font-mono text-sm leading-tight resize-none",placeholder:"Describe what you want the agent to do... Type @ to mention files.",value:eP,onChange:tV,onKeyDown:e=>{if((e.metaKey||e.ctrlKey)&&"Enter"===e.key){e.preventDefault(),tZ();return}t$&&tU.length>0&&("ArrowUp"===e.key?(e.preventDefault(),tO(e=>e>0?e-1:tU.length-1)):"ArrowDown"===e.key?(e.preventDefault(),tO(e=>e<tU.length-1?e+1:0)):"Enter"===e.key||"Tab"===e.key?(e.preventDefault(),t_(tU[tB])):"Escape"===e.key&&(e.preventDefault(),tA(!1)))},onClick:e=>{tK(e.currentTarget.selectionStart),tA(!1)},onKeyUp:e=>tK(e.currentTarget.selectionStart),disabled:eV}),t$&&tU.length>0&&(0,t.jsx)("div",{className:"absolute left-0 right-0 z-50 mt-1 max-h-48 overflow-y-auto bg-base-100 border border-base-300 rounded-md shadow-lg",children:tU.map((e,a)=>(0,t.jsx)("button",{className:`w-full text-left px-3 py-2 text-xs border-b border-base-200 last:border-0 truncate ${a===tB?"bg-primary text-primary-content":"hover:bg-primary/10"}`,onMouseDown:t=>{t.preventDefault(),t_(e)},children:e},e))})]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium opacity-70",children:"Attachments (Optional)"}),(0,t.jsx)("input",{type:"file",multiple:!0,className:"file-input file-input-bordered w-full",onChange:e=>{e.target.files&&(tF(Array.from(e.target.files).map((e,t)=>tE(e,t))),e.target.value="")},disabled:eV}),(0,t.jsx)("div",{className:"text-xs opacity-50 px-1",children:"Paste files from clipboard with Cmd/Ctrl+V anywhere on this page."}),eT.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-2 mt-2",children:eT.map((e,a)=>(0,t.jsxs)("span",{className:"badge badge-neutral gap-2 p-3",children:[e.name,(0,t.jsx)("button",{onClick:()=>{eI(e=>e.filter((e,t)=>t!==a))},className:"btn btn-ghost btn-xs btn-circle text-error",children:(0,t.jsx)(n,{className:"w-3 h-3"})})]},`upload-${a}`))}),eG.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-2 mt-2",children:eG.map((e,a)=>(0,t.jsxs)("span",{className:"badge badge-secondary gap-2 p-3",children:[e,(0,t.jsx)("button",{onClick:()=>{eK(e=>e.filter((e,t)=>t!==a))},className:"btn btn-ghost btn-xs btn-circle text-error",title:"Remove carried attachment",children:(0,t.jsx)(n,{className:"w-3 h-3"})})]},`prefill-${e}-${a}`))})]}),(0,t.jsx)("div",{className:"card-actions justify-end mt-4",children:(0,t.jsx)("button",{className:"btn btn-primary btn-wide shadow-lg",onClick:tZ,disabled:eV,children:eV?(0,t.jsx)("span",{className:"loading loading-spinner"}):"Start Session"})})]})]})})]})]}),"new"===e&&!el&&(0,t.jsx)("div",{className:"card w-full max-w-2xl bg-base-200 shadow-xl",children:(0,t.jsxs)("div",{className:"card-body",children:[eY&&(0,t.jsx)("div",{className:"alert alert-error text-sm py-2 px-3",children:eY}),(0,t.jsx)("h2",{className:"card-title",children:"Select a Repository"}),(0,t.jsx)("p",{className:"opacity-70 text-sm",children:"Choose a repository first, then start or resume a session."}),(0,t.jsx)("div",{className:"card-actions justify-end mt-4",children:(0,t.jsx)("button",{className:"btn btn-primary",onClick:()=>eu.push("/"),children:"Go to Home"})})]})}),"new"===e&&e2&&e3&&(0,t.jsx)("div",{className:"fixed inset-0 z-[1000] flex items-center justify-center bg-base-content/45 px-4",children:(0,t.jsx)("div",{className:"w-full max-w-md rounded-xl border border-base-300 bg-base-100 p-6 shadow-2xl",children:(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsx)("span",{className:"loading loading-spinner loading-lg text-primary"}),(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsxs)("h3",{className:"text-lg font-semibold",children:["Installing ",ee[e3]]}),(0,t.jsx)("p",{className:"text-sm opacity-70",children:"Please wait while we install the coding agent CLI."})]})]})})}),"new"===e&&e6&&e5&&(0,t.jsx)("div",{className:"fixed inset-0 z-[1001] flex items-center justify-center bg-base-content/60 p-4",children:(0,t.jsx)("div",{className:"w-full max-w-5xl rounded-xl border border-base-300 bg-base-100 shadow-2xl",children:(0,t.jsxs)("div",{className:"space-y-4 p-5 md:p-6",children:[(0,t.jsx)("h3",{className:"text-xl font-semibold",children:"Login Required"}),(0,t.jsxs)("p",{className:"text-sm opacity-80",children:[ee[e5]," has been installed. Complete login in the terminal below, then click Done to continue."]}),(0,t.jsxs)("p",{className:"text-xs opacity-60",children:["Command: ",(0,t.jsx)("span",{className:"font-mono",children:e9})]}),(0,t.jsx)("div",{className:"h-[420px] overflow-hidden rounded-lg border border-base-300 bg-base-200",children:(0,t.jsx)("iframe",{ref:tm,src:"/terminal",className:"h-full w-full border-none",allow:"clipboard-read; clipboard-write",onLoad:tJ})}),ts&&(0,t.jsx)("div",{className:"alert alert-error text-sm py-2",children:ts}),!ts&&(0,t.jsx)("div",{className:"text-xs opacity-70",children:tt?"Login command was sent to the terminal automatically.":"Waiting for terminal to initialize..."}),(0,t.jsx)("div",{className:"flex justify-end",children:(0,t.jsx)("button",{className:"btn btn-primary",onClick:()=>void t2(),disabled:eV,children:"Done"})})]})})}),"new"===e&&!el&&(!s||!!eY)&&(0,t.jsx)("div",{className:"card w-full max-w-2xl bg-base-200 shadow-xl",children:(0,t.jsxs)("div",{className:"card-body",children:[(0,t.jsxs)("h2",{className:"card-title flex items-center gap-2",children:[(0,t.jsx)(l,{className:"w-6 h-6 text-primary"}),"Git Repository Selector"]}),eQ?(0,t.jsxs)("div",{className:"alert text-sm py-2 px-3 mt-2 flex items-center gap-2",children:[(0,t.jsx)("span",{className:"loading loading-spinner loading-sm"}),f?`Searching for repository "${f}"...`:"Searching for repository..."]}):eY?(0,t.jsx)("div",{className:"alert alert-error text-sm py-2 px-3 mt-2",children:eY}):(0,t.jsx)("div",{className:"text-sm opacity-70 mt-2",children:"No repository specified."}),(0,t.jsx)("div",{className:"mt-4",children:(0,t.jsx)("button",{className:"btn btn-primary btn-sm",onClick:()=>eu.push("/"),children:"Choose Repository"})})]})}),"home"===e&&g&&(0,t.jsx)(k,{initialPath:ea?.defaultRoot||void 0,onSelect:tv,onCancel:()=>y(!1),checkRepo:C}),"home"===e&&v&&(0,t.jsx)(k,{title:"Default Root Folder",initialPath:ea?.defaultRoot||void 0,onSelect:tN,onCancel:()=>j(!1)})]})}e.s(["default",()=>et],5951)}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,36438,e=>{"use strict";var t=e.i(43476),r=e.i(71645),n=e.i(18566),a=e.i(95187);let s=(0,a.createServerReference)("400f7de8fc977d8ea150039c3d814c08da1909903c",a.callServer,void 0,a.findSourceMapURL,"deleteSessionInBackground"),i=(0,a.createServerReference)("40eb6e73da3c95c508ec75605e85c67424810eef77",a.callServer,void 0,a.findSourceMapURL,"getSessionDivergence"),o=(0,a.createServerReference)("404783f8b682df7fe52043752f7f6cbba97f12691a",a.callServer,void 0,a.findSourceMapURL,"getSessionUncommittedFileCount"),l=(0,a.createServerReference)("40debaedf38c8e0abd9a90b084c64596ca251b5428",a.callServer,void 0,a.findSourceMapURL,"listSessionBaseBranches"),c=(0,a.createServerReference)("400400664b8a848b7f534f1a34fc6257da11c2e520",a.callServer,void 0,a.findSourceMapURL,"mergeSessionToBase"),d=(0,a.createServerReference)("408f16165cf5f2f4f06c957aa57fedc190dda58a44",a.callServer,void 0,a.findSourceMapURL,"rebaseSessionOntoBase"),u=(0,a.createServerReference)("609d83fea7bfe823abe1447435d104dc1cfa271901",a.callServer,void 0,a.findSourceMapURL,"updateSessionBaseBranch"),m=(0,a.createServerReference)("608f18694afb9833dcb10e99fbf7dc860bd54fffc4",a.callServer,void 0,a.findSourceMapURL,"writeSessionPromptFile"),h=(0,a.createServerReference)("7ff3d1b76a025c42284478a5ad166f07f384420b2b",a.callServer,void 0,a.findSourceMapURL,"setTmuxSessionMouseMode");var p=e.i(91536),f=e.i(90181),b=e.i(27612),x=e.i(75254);let v=(0,x.default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);var w=e.i(31343);let g=(0,x.default)("git-commit-horizontal",[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["line",{x1:"3",x2:"9",y1:"12",y2:"12",key:"1dyftd"}],["line",{x1:"15",x2:"21",y1:"12",y2:"12",key:"oup4p8"}]]),y=(0,x.default)("git-merge",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M6 21V9a9 9 0 0 0 9 9",key:"7kw0sc"}]]),j=(0,x.default)("git-pull-request-arrow",[["circle",{cx:"5",cy:"6",r:"3",key:"1qnov2"}],["path",{d:"M5 9v12",key:"ih889a"}],["circle",{cx:"19",cy:"18",r:"3",key:"1qljk2"}],["path",{d:"m15 9-3-3 3-3",key:"1lwv8l"}],["path",{d:"M12 6h5a2 2 0 0 1 2 2v7",key:"1yj91y"}]]);var k=e.i(55716);let N=(0,x.default)("arrow-up",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]),S=(0,x.default)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]),C=(0,x.default)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]),$=(0,x.default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]),R=(0,x.default)("grip",[["circle",{cx:"12",cy:"5",r:"1",key:"gxeob9"}],["circle",{cx:"19",cy:"5",r:"1",key:"w8mnmm"}],["circle",{cx:"5",cy:"5",r:"1",key:"lttvr7"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}],["circle",{cx:"12",cy:"19",r:"1",key:"lyex9k"}],["circle",{cx:"19",cy:"19",r:"1",key:"shf9b7"}],["circle",{cx:"5",cy:"19",r:"1",key:"bfqh0e"}]]),E=(0,x.default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);var M=e.i(7233);let L=(0,x.default)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]),P=(0,x.default)("mouse-pointer-2",[["path",{d:"M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z",key:"edeuup"}]]);var F=e.i(71689);let D=(0,x.default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]),T=(0,x.default)("rotate-cw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]);var A=e.i(57688),q=e.i(83177);let z=(0,a.createServerReference)("4090b457be37b5da673da17ac2d03cacc5b5aed995",a.callServer,void 0,a.findSourceMapURL,"listPathEntries");var B=e.i(49525);let I=(0,x.default)("clipboard",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}]]),U=(0,x.default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);var W=e.i(27025);let H=(0,x.default)("grid-2x2",[["path",{d:"M12 3v18",key:"108xh3"}],["path",{d:"M3 12h18",key:"1i2n21"}],["rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",key:"h1oib"}]]),K=(0,x.default)("house",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]]),_=(0,x.default)("list",[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]]),O=(0,x.default)("pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]),V=(0,x.default)("pin-off",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89",key:"znwnzq"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11",key:"c9qhm2"}]]);var Y=e.i(81016),G=e.i(43733);let X="viba:session-file-browser:view-mode";function J({initialPath:e,worktreePath:n,onConfirm:a,onCancel:s,onPathChange:i}){let o=(0,r.useMemo)(()=>new Set([".png",".jpg",".jpeg",".gif",".webp",".bmp",".svg",".ico",".avif"]),[]),[l,c]=(0,r.useState)(""),[d,u]=(0,r.useState)([]),[m,h]=(0,r.useState)(!1),[b,x]=(0,r.useState)(null),[v,w]=(0,r.useState)(""),[g,y]=(0,r.useState)([]),[j,k]=(0,r.useState)(null),[N,S]=(0,r.useState)("list"),[C,$]=(0,r.useState)(!1),[R,E]=(0,r.useState)({}),[M,L]=(0,r.useState)([]);(0,r.useEffect)(()=>{let t=!0;return(async()=>{try{let r=await (0,q.getHomeDirectory)();if(!t)return;w(r),e||c(r)}catch(e){console.error("Failed to resolve home directory:",e)}e&&t&&c(e)})(),()=>{t=!1}},[e]),(0,r.useEffect)(()=>{let e=!0;return(async()=>{try{let t=await (0,p.getConfig)();if(!e)return;let r=Array.isArray(t.pinnedFolderShortcuts)?t.pinnedFolderShortcuts.filter(e=>"string"==typeof e&&e.trim().length>0):[];L(Array.from(new Set(r)))}catch(e){console.error("Failed to load pinned folder shortcuts:",e)}})(),()=>{e=!1}},[]),(0,r.useEffect)(()=>{try{let e=localStorage.getItem(X);("list"===e||"grid"===e)&&S(e)}catch{}finally{$(!0)}},[]),(0,r.useEffect)(()=>{if(C)try{localStorage.setItem(X,N)}catch{}},[C,N]),(0,r.useEffect)(()=>{l&&(async()=>{h(!0),x(null);try{let e=await z(l);u(e)}catch(e){console.error("Failed to list files:",e),x("Failed to load directory contents")}finally{h(!1)}})()},[l]),(0,r.useEffect)(()=>{l&&i?.(l)},[l,i]),(0,r.useEffect)(()=>{y([]),k(null),E({})},[l]);let P=(0,r.useMemo)(()=>new Set(g),[g]),D=(e,t,r)=>{if(e.isDirectory)return void c(e.path);let n=r.metaKey||r.ctrlKey;if(r.shiftKey&&null!==j){let e=Math.min(j,t),r=Math.max(j,t);y(d.slice(e,r+1).filter(e=>!e.isDirectory).map(e=>e.path));return}if(n){y(t=>t.includes(e.path)?t.filter(t=>t!==e.path):[...t,e.path]),k(t);return}y([e.path]),k(t)},T=async()=>{if(x(null),!n)return void x("Cannot paste: Session worktree path is missing.");try{if(h(!0),!navigator.clipboard||!navigator.clipboard.read)throw Error("Clipboard API not supported in this browser");let e=await navigator.clipboard.read(),t=new FormData,r=!1;for(let n of e)for(let e of n.types)if(e.startsWith("image/")){let a=await n.getType(e),s=e.split("/")[1]||"png",i=`pasted-image-${Date.now()}.${s}`,o=new File([a],i,{type:e});t.append(i,o),r=!0;break}if(r){let e=await (0,B.saveAttachments)(n,t);if(e&&e.length>0)return void await a(e);x("Failed to save pasted files.")}else try{let e=await navigator.clipboard.readText();e&&e.trim().startsWith("/")?x("No file content found in clipboard. Copy an image or file first."):x("No file content found in clipboard.")}catch{x("No file content found in clipboard.")}}catch(t){let e=t instanceof Error?t.message:String(t);console.error("Paste error:",t),x(`Failed to read from clipboard: ${e}`)}finally{h(!1)}},J=async e=>{L(e);try{await (0,f.updateConfig)({pinnedFolderShortcuts:e})}catch(e){console.error("Failed to save pinned folder shortcuts:",e),x("Failed to save pinned shortcuts")}},Z=async e=>{(x(null),M.includes(e))?await J(M.filter(t=>t!==e)):await J([...M,e])},Q=(0,r.useCallback)(async()=>{0!==g.length&&await a(g)},[a,g]);return(0,G.useDialogKeyboardShortcuts)({onConfirm:Q,onDismiss:s,canConfirm:g.length>0}),(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm p-4",children:(0,t.jsxs)("div",{className:"bg-base-200 rounded-lg shadow-xl w-full max-w-5xl h-[82vh] flex flex-col",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between p-4 border-b border-base-300",children:[(0,t.jsxs)("h2",{className:"text-xl font-bold flex items-center gap-2",children:[(0,t.jsx)(W.Folder,{className:"w-5 h-5"}),"Browse Files"]}),(0,t.jsx)("button",{onClick:s,className:"btn btn-sm btn-ghost btn-circle",title:"Close file browser",children:"✕"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 p-3 bg-base-300",children:[(0,t.jsx)("button",{onClick:()=>{let e=(0,Y.getDirName)(l);e&&e!==l&&c(e)},className:"btn btn-sm btn-square btn-ghost",title:"Go Up",disabled:"/"===l||!l,children:(0,t.jsx)(F.ArrowLeft,{className:"w-4 h-4"})}),(0,t.jsxs)("button",{onClick:()=>{v&&l!==v&&c(v)},className:"btn btn-sm btn-ghost gap-1",title:v?`Go to Home Folder (${v})`:"Go to Home Folder",disabled:!v||l===v,children:[(0,t.jsx)(K,{className:"w-4 h-4"}),"Home"]}),(0,t.jsx)("div",{className:"flex-1 overflow-x-auto whitespace-nowrap px-2 font-mono text-sm",children:l}),(0,t.jsxs)("div",{className:"join",children:[(0,t.jsx)("button",{type:"button",onClick:()=>S("list"),className:`btn btn-sm join-item ${"list"===N?"btn-active":"btn-ghost"}`,title:"List view",children:(0,t.jsx)(_,{className:"w-4 h-4"})}),(0,t.jsx)("button",{type:"button",onClick:()=>S("grid"),className:`btn btn-sm join-item ${"grid"===N?"btn-active":"btn-ghost"}`,title:"Grid view",children:(0,t.jsx)(H,{className:"w-4 h-4"})})]}),(0,t.jsxs)("button",{onClick:Q,className:"btn btn-sm btn-primary gap-2",disabled:0===g.length,title:"Insert selected absolute paths",children:["Insert (",g.length,")"]}),(0,t.jsx)("div",{className:"w-[1px] h-6 bg-base-content/10 mx-1"}),(0,t.jsxs)("button",{onClick:T,className:"btn btn-sm btn-ghost gap-2",title:"Paste file/image from clipboard",disabled:!n,children:[(0,t.jsx)(I,{className:"w-4 h-4"}),"Paste"]})]}),M.length>0&&(0,t.jsx)("div",{className:"px-3 py-2 border-b border-base-300 bg-base-200/50",children:(0,t.jsx)("div",{className:"flex items-center gap-2 overflow-x-auto",children:M.map(e=>{let r=e===l,n=e.split(/[\\/]/).filter(Boolean).pop()||e;return(0,t.jsxs)("div",{className:"join shrink-0",children:[(0,t.jsxs)("button",{type:"button",className:`btn btn-xs join-item ${r?"btn-primary":"btn-ghost"}`,onClick:()=>c(e),title:e,children:[(0,t.jsx)(W.Folder,{className:"w-3 h-3"}),n]}),(0,t.jsx)("button",{type:"button",className:"btn btn-xs btn-ghost join-item",onClick:()=>void Z(e),title:`Unpin ${e}`,children:(0,t.jsx)(V,{className:"w-3 h-3"})})]},e)})})}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto p-2",children:m?(0,t.jsx)("div",{className:"flex justify-center items-center h-full",children:(0,t.jsx)("span",{className:"loading loading-spinner loading-lg"})}):b?(0,t.jsx)("div",{className:"alert alert-error",children:b}):0===d.length?(0,t.jsx)("div",{className:"text-center text-base-content/50 mt-10",children:"Empty directory"}):"list"===N?(0,t.jsx)("div",{className:"grid grid-cols-1 gap-1",children:d.map((e,r)=>{let n=P.has(e.path);return(0,t.jsxs)("div",{className:`flex items-center justify-between p-2 rounded-md cursor-pointer transition-colors border ${n?"bg-primary text-primary-content border-primary":"hover:bg-base-100 border-transparent"}`,onClick:t=>D(e,r,t),title:e.path,children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 overflow-hidden",children:[e.isDirectory?(0,t.jsx)(W.Folder,{className:"w-5 h-5 shrink-0"}):(0,t.jsx)(U,{className:"w-5 h-5 shrink-0"}),(0,t.jsx)("span",{className:"truncate",children:e.name})]}),(0,t.jsx)("span",{className:"text-[10px] opacity-70 shrink-0",children:e.isDirectory?(0,t.jsx)("button",{type:"button",className:"btn btn-ghost btn-xs h-6 min-h-6",onClick:t=>{t.stopPropagation(),Z(e.path)},title:M.includes(e.path)?"Unpin folder":"Pin folder",children:(0,t.jsx)(O,{className:`w-3 h-3 ${M.includes(e.path)?"fill-current":""}`})}):"file"})]},e.path)})}):(0,t.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-4 lg:grid-cols-5 gap-3",children:d.map((e,r)=>{var n;let a,s=P.has(e.path),i=!e.isDirectory&&-1!==(a=(n=e.name).lastIndexOf("."))&&o.has(n.slice(a).toLowerCase()),l=`/api/file-thumbnail?path=${encodeURIComponent(e.path)}`;return(0,t.jsxs)("button",{type:"button",className:`rounded-lg border text-left overflow-hidden transition-colors ${s?"border-primary bg-primary/15":"border-base-300 hover:bg-base-100"}`,onClick:t=>D(e,r,t),title:e.path,children:[(0,t.jsxs)("div",{className:"aspect-square bg-base-300 flex items-center justify-center overflow-hidden relative",children:[i&&!R[e.path]?(0,t.jsx)(A.default,{src:l,alt:e.name,fill:!0,sizes:"(max-width: 768px) 50vw, (max-width: 1024px) 25vw, 20vw",className:"object-cover",unoptimized:!0,onError:()=>E(t=>({...t,[e.path]:!0}))}):e.isDirectory?(0,t.jsx)(W.Folder,{className:"w-10 h-10 opacity-80"}):(0,t.jsx)(U,{className:"w-10 h-10 opacity-80"}),e.isDirectory&&(0,t.jsx)("button",{type:"button",className:`absolute top-1 right-1 btn btn-xs btn-circle ${M.includes(e.path)?"btn-primary":"btn-ghost bg-base-100/70"}`,onClick:t=>{t.stopPropagation(),Z(e.path)},title:M.includes(e.path)?"Unpin folder":"Pin folder",children:(0,t.jsx)(O,{className:`w-3 h-3 ${M.includes(e.path)?"fill-current":""}`})})]}),(0,t.jsxs)("div",{className:"px-2 py-2",children:[(0,t.jsx)("div",{className:"truncate text-sm font-medium",title:e.name,children:e.name}),(0,t.jsx)("div",{className:"text-[10px] opacity-70",children:e.isDirectory?"folder":i?"image":"file"})]})]},e.path)})})}),(0,t.jsx)("div",{className:"p-3 border-t border-base-300 text-xs text-base-content/60 text-center",children:"Click: single select. Cmd/Ctrl+Click: multi-select. Shift+Click: range select. Click a folder to open it."})]})})}var Z=e.i(63671);function Q(e,t){var r,n;let a=(r=e,n=t,`viba-${(r.trim().replace(/[^a-zA-Z0-9_-]/g,"-")||"session").slice(0,40)}-${n}`),s=new URLSearchParams;return s.append("arg","new-session"),s.append("arg","-A"),s.append("arg","-s"),s.append("arg",a),`/terminal?${s.toString()}`}let ee=e=>{let t=e.trim();return t?/^https?:\/\//i.test(t)?t:/^[a-z][a-z0-9+.-]*:/i.test(t)?null:`http://${t}`:null},et=e=>`'${e.replace(/'/g,"'\\''")}'`,er=[{id:"vscode",name:"VS Code",protocol:"vscode"},{id:"cursor",name:"Cursor",protocol:"cursor"},{id:"windsurf",name:"Windsurf",protocol:"windsurf"},{id:"antigravity",name:"Antigravity",protocol:"antigravity"}],en="viba-terminal-size",ea="viba-agent-preview-split-ratio",es="__vibaTerminalBootstrapRegistry",ei=/(?:\$|%|#|>) $/,eo=e=>Math.max(.2,Math.min(.8,e)),el=(e,t)=>{let r=e.replace(/\\/g,"/").replace(/\/+$/,""),n=t.replace(/\\/g,"/").replace(/^\/+/,"");return`${r}/${n}`},ec=(e,t)=>{let r=t.trim().replace(/\\/g,"/").replace(/\/+$/,"");if(!r)return null;let n=(e=>{let t=e.trim();if(!t)return"";if(t=t.replace(/[#?].*$/,""),/^file:\/\//i.test(t))try{let e=new URL(t);t=decodeURIComponent(e.pathname)}catch{}else if(/^https?:\/\//i.test(t))try{let e=new URL(t);t=decodeURIComponent(e.pathname)}catch{}return(t=t.replace(/^webpack(?:-internal)?:\/\/\/?/,"").replace(/^rsc:\/\//,"").replace(/^\(.*?\)\//,"").replace(/^\/\.\//,"/").replace(/^\.\//,"").replace(/\\/g,"/")).trim()})(e);if(!n)return null;if(n.startsWith("/")||(0,Y.isWindowsAbsolutePath)(n))return n;let a=new Set;a.add(n.replace(/^\.\/+/,""));let s=n.indexOf("/src/");for(let e of(s>=0&&a.add(n.slice(s+1)),n.startsWith("src/")&&a.add(n),a))if(e)return el(r,e);return null},ed=e=>{let t=e.trim();if(!t)return"";let r=t.match(/[A-Za-z_$][\w$]*/);return r?r[0]:""};function eu({repo:e,worktree:n,branch:a,baseBranch:x,sessionName:A,agent:q,model:z,startupScript:B,devServerScript:I,initialMessage:U,attachmentNames:W,title:H,sessionMode:K="fast",onExit:_,isResume:O,terminalPersistenceMode:V="shell",onSessionStart:G}){let X="hidden min-[1900px]:inline",el=(0,r.useRef)(null),eu=(0,r.useRef)(null),em=(0,r.useRef)(null),eh=(0,r.useRef)(null),ep=(0,r.useRef)(null),ef=(0,r.useRef)({startX:0,startRatio:.5}),eb=(0,r.useRef)(null),ex=(0,r.useRef)(null),ev=(0,r.useRef)(null),ew=(0,r.useRef)({injected:!1,timer:null}),eg=(0,r.useMemo)(()=>Q(A,"agent"),[A]),ey=(0,r.useMemo)(()=>Q(A,"terminal"),[A]),ej=(0,r.useRef)({agent:"idle",terminal:"idle"});(0,r.useEffect)(()=>{ej.current={agent:"idle",terminal:"idle"},null!==ew.current.timer&&window.clearTimeout(ew.current.timer),ew.current={injected:!1,timer:null}},[A]),(0,r.useEffect)(()=>()=>{null!==ew.current.timer&&(window.clearTimeout(ew.current.timer),ew.current.timer=null)},[]);let ek=(0,r.useCallback)(e=>`viba:terminal-bootstrap:${A}:${e}`,[A]),eN=(0,r.useCallback)(e=>`${A}:${e}`,[A]),eS=(0,r.useCallback)(()=>{let e=window;return e[es]||(e[es]={}),e[es]||null},[]),eC=(0,r.useCallback)(e=>{let t=eS();return t&&t[eN(e)]||"idle"},[eS,eN]),e$=(0,r.useCallback)((e,t)=>{let r=eS();r&&(r[eN(e)]=t)},[eS,eN]),eR=(0,r.useCallback)(e=>{if("done"===ej.current[e]||"done"===eC(e))return!0;try{return"1"===window.sessionStorage.getItem(ek(e))}catch{return!1}},[eC,ek]),eE=(0,r.useCallback)(e=>{let t=ej.current[e],r=eC(e);return"done"!==t&&"in_progress"!==t&&"done"!==r&&"in_progress"!==r&&(ej.current[e]="in_progress",e$(e,"in_progress"),!0)},[eC,e$]),eM=(0,r.useCallback)(e=>{"done"!==ej.current[e]&&(ej.current[e]="idle"),"done"!==eC(e)&&e$(e,"idle")},[eC,e$]),eL=(0,r.useCallback)(e=>{ej.current[e]="done",e$(e,"done");try{window.sessionStorage.setItem(ek(e),"1")}catch{}},[ek,e$]),eP=(0,r.useCallback)(e=>{let t=e?.buffer?.active;if(!t||"function"!=typeof t.getLine)return!0;let r=t.baseY+t.cursorY;for(let e=0;e<6;e+=1){let n=t.getLine(r-e),a=n?.translateToString(!0)??"";if(a.trim())return ei.test(a)}return!1},[]),eF=(0,r.useCallback)(()=>{ev.current&&(ev.current(),ev.current=null)},[]),eD=(0,r.useCallback)((e,t)=>{eF();let r=!1,n=null,a=null,s=null,i=()=>{if(r)return;let e=!eP(t);e_(t=>t===e?t:e)};i(),s=window.setInterval(i,1e3);try{if("function"==typeof t.onWriteParsed)n=t.onWriteParsed(i)||null;else{let t=e.contentDocument?.querySelector(".xterm-screen")||e.contentDocument?.body;t&&(a=new MutationObserver(i)).observe(t,{childList:!0,subtree:!0,characterData:!0})}}catch(e){console.error("Failed to setup terminal process monitor:",e)}ev.current=()=>{r=!0,null!==s&&(window.clearInterval(s),s=null),n&&"function"==typeof n.dispose&&n.dispose(),a?.disconnect()}},[eP,eF]);(0,r.useEffect)(()=>()=>{eF()},[eF]),(0,r.useEffect)(()=>{e_(!1),eF()},[A,eF]);let eT=(0,r.useCallback)((e,t,r)=>{if(O)return!1;let n=B?.trim();return!!n&&!ew.current.injected&&(ew.current.injected=!0,null!==ew.current.timer&&window.clearTimeout(ew.current.timer),ew.current.timer=window.setTimeout(()=>{ew.current.timer=null;try{let a;r.paste(n),(a=e.contentDocument?.querySelector("textarea.xterm-helper-textarea"))?a.dispatchEvent(new KeyboardEvent("keypress",{bubbles:!0,cancelable:!0,charCode:13,keyCode:13,key:"Enter",view:t})):r.paste("\r")}catch(e){ew.current.injected=!1,console.error("Failed to inject startup script into terminal iframe:",e)}},500),!0)},[O,B]);(0,r.useEffect)(()=>{if(O||!B?.trim()||ew.current.injected)return;let e=!1,t=(r=0)=>{if(e||ew.current.injected||r>30)return;if(!eR("terminal"))return void window.setTimeout(()=>t(r+1),200);let n=eu.current;if(n){try{let e=n.contentWindow;if(e?.term)return void eT(n,e,e.term)}catch{}window.setTimeout(()=>t(r+1),200)}};return t(),()=>{e=!0}},[eR,eT,O,B]);let[eA,eq]=(0,r.useState)("Initializing..."),[ez,eB]=(0,r.useState)("idle"),[eI,eU]=(0,r.useState)(null),[eW,eH]=(0,r.useState)(!1),[eK,e_]=(0,r.useState)(!1),[eO,eV]=(0,r.useState)(!1),[eY,eG]=(0,r.useState)(!1),[eX,eJ]=(0,r.useState)(!1),[eZ,eQ]=(0,r.useState)(!1),[e0,e1]=(0,r.useState)(n||e),[e2,e3]=(0,r.useState)(!1),[e5,e6]=(0,r.useState)(x?.trim()||""),[e4,e7]=(0,r.useState)([]),[e9,e8]=(0,r.useState)(!1),te=(0,r.useRef)(!1),[tt,tr]=(0,r.useState)(!1),[tn,ta]=(0,r.useState)({ahead:0,behind:0}),[ts,ti]=(0,r.useState)(0),[to,tl]=(0,r.useState)(!1),[tc,td]=(0,r.useState)(""),[tu,tm]=(0,r.useState)(""),[th,tp]=(0,r.useState)(!1),[tf,tb]=(0,r.useState)(!1),[tx,tv]=(0,r.useState)(.5),[tw,tg]=(0,r.useState)(!1),[ty,tj]=(0,r.useState)(!0),[tk,tN]=(0,r.useState)({width:460,height:320}),[tS,tC]=(0,r.useState)(!1),[t$,tR]=(0,r.useState)(!1),tE=(0,r.useRef)({startX:0,startY:0,startWidth:0,startHeight:0}),[tM,tL]=(0,r.useState)("scroll"),[tP,tF]=(0,r.useState)(!1),tD=(0,r.useRef)(0);(0,r.useEffect)(()=>{e1(n||e)},[e,n]),(0,r.useEffect)(()=>{let e=localStorage.getItem(en);if(e)try{tN(JSON.parse(e))}catch(e){console.error("Failed to parse saved terminal size",e)}let t=localStorage.getItem(ea);if(t){let e=Number.parseFloat(t);Number.isNaN(e)||tv(eo(e))}tR(!0)},[]),(0,r.useEffect)(()=>{if(!tS)return;let e=e=>{let t=tE.current.startX-e.clientX,r=tE.current.startY-e.clientY;tN({width:Math.max(300,Math.min(window.innerWidth-32,tE.current.startWidth+t)),height:Math.max(100,Math.min(window.innerHeight-32,tE.current.startHeight+r))})},t=()=>{tC(!1)};return window.addEventListener("mousemove",e),window.addEventListener("mouseup",t),()=>{window.removeEventListener("mousemove",e),window.removeEventListener("mouseup",t)}},[tS]),(0,r.useEffect)(()=>{t$&&!tS&&localStorage.setItem(en,JSON.stringify(tk))},[t$,tS,tk]),(0,r.useEffect)(()=>{t$&&!tw&&localStorage.setItem(ea,String(tx))},[tx,t$,tw]),(0,r.useEffect)(()=>{if(!tw)return;let e=e=>{let t=ep.current;if(!t)return;let r=t.getBoundingClientRect();if(r.width<=0)return;let n=e.clientX-ef.current.startX;tv(eo((ef.current.startRatio*r.width+n)/r.width))},t=()=>{tg(!1)};return window.addEventListener("mousemove",e),window.addEventListener("mouseup",t),()=>{window.removeEventListener("mousemove",e),window.removeEventListener("mouseup",t)}},[tw]),(0,r.useEffect)(()=>{if(!ty&&eu.current){let e=eu.current;setTimeout(()=>{try{let t=e.contentWindow;if(t&&t.term){t.term.scrollToBottom?.(),t.focus();let r=e.contentDocument?.querySelector("textarea.xterm-helper-textarea");r&&r.focus()}}catch(e){console.error("Failed to focus/scroll terminal on restore:",e)}},100)}},[ty]);let[tT,tA]=(0,r.useState)("vscode");(0,r.useEffect)(()=>{let e=H?.trim();if(e)return document.title=`${e} | Viba`,()=>{document.title="Viba"};document.title="Viba"},[H]),(0,r.useEffect)(()=>{(async()=>{let e=await (0,p.getConfig)();e.selectedIde&&er.some(t=>t.id===e.selectedIde)&&tA(e.selectedIde)})()},[]),(0,r.useEffect)(()=>{e6(x?.trim()||""),e7([])},[x,A]),(0,r.useEffect)(()=>{tL("scroll"),tF(!1),tD.current+=1},[A]);let tq=async e=>{let t=e.target.value;tA(t),await (0,f.updateConfig)({selectedIde:t})},tz=(0,r.useCallback)(async(e,t)=>{if("tmux"!==V)return!0;let r=++tD.current;t?.silent||tF(!0);let n="scroll"===e,[a,s]=await Promise.all([h(A,"agent",n),h(A,"terminal",n)]);return r===tD.current&&((t?.silent||tF(!1),[a,s].find(e=>!e.success))?(t?.silent||eq(`Failed to switch to ${"scroll"===e?"scroll mode":"text select mode"}`),!1):(t?.silent||eq("scroll"===e?"Terminal mode: Scroll":"Terminal mode: Text Select"),!0))},[A,V]);(0,r.useEffect)(()=>{"tmux"===V&&tz("scroll",{silent:!0})},[tz,V]);let tB=(0,r.useCallback)(()=>{if("tmux"!==V||tP)return;let e="scroll"===tM?"select":"scroll";tL(e),(async()=>{await tz(e)||tL(tM)})()},[tz,tP,tM,V]),tI=async(t=!0)=>{if(!e||!n||!a||t&&!confirm("Are you sure you want to delete this session? This will remove the branch and worktree."))return!1;eU(null),eB("idle"),eq("Purging session...");try{let e=await s(A);if(!e.success)return console.error("Cleanup failed:",e.error||"Unknown error"),eB("error"),eU(e.error||"Failed to delete session"),!1;(0,Z.notifySessionsUpdated)()}catch(e){return console.error("Cleanup request failed:",e),eB("error"),eU(e instanceof Error?e.message:"Unknown error"),!1}return _(!0),!0},tU=async()=>{await tI(!0)},tW=(0,r.useCallback)((e,t)=>new Promise(r=>{let n=el.current;if(!n)return void r(!1);let s=(i=0)=>{if(i>30)return void r(!1);try{let o=n.contentWindow;if(!o||(o.postMessage({type:"viba:agent-request",action:t,prompt:e,sessionName:A,branch:a,baseBranch:e5||void 0,timestamp:Date.now()},"*"),!o.term))return void setTimeout(()=>s(i+1),300);o.term.paste(e);let l=n.contentDocument?.querySelector("textarea.xterm-helper-textarea");l?(l.dispatchEvent(new KeyboardEvent("keypress",{bubbles:!0,cancelable:!0,charCode:13,keyCode:13,key:"Enter",view:o})),l.focus()):o.term.paste("\r"),o.focus(),r(!0)}catch(e){console.error("Failed to send prompt to agent iframe:",e),setTimeout(()=>s(i+1),300)}};s()}),[a,e5,A]),tH=async()=>{eV(!0),eq("Requesting commit from agent..."),eq(await tW("Please create a git commit with the current changes in this worktree.","commit")?"Commit request sent to agent":"Failed to send commit request to agent"),eV(!1)},tK=(0,r.useCallback)(e=>new Promise(t=>{let r=el.current;if(!r)return void t(!1);let n=(a=0)=>{if(a>30)return void t(!1);try{let s=r.contentWindow;if(!s||!s.term)return void setTimeout(()=>n(a+1),300);s.term.paste(e);let i=r.contentDocument?.querySelector("textarea.xterm-helper-textarea");i&&i.focus(),s.focus(),t(!0)}catch(e){console.error("Failed to paste into agent iframe:",e),setTimeout(()=>n(a+1),300)}};n()}),[]),t_=(0,r.useCallback)(async e=>{if(0===e.length)return;e3(!0);let t=`${e.join(" ")} `;eq(await tK(t)?`Inserted ${e.length} file path${1===e.length?"":"s"} into agent input`:"Failed to insert file paths into agent input"),e3(!1)},[tK]),tO=(0,r.useCallback)(async t=>{let r=t.map(ed).filter(Boolean);if(0===r.length)return null;let a=Array.from(new Set([e,n].map(e=>(e||"").trim()).filter(Boolean)));if(0===a.length)return null;for(let e of a)try{let t=await fetch("/api/component-source/resolve",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({componentNames:r,workspaceRoot:e})}),n=await t.json().catch(()=>null);if(!t.ok){console.warn("Component source resolve miss",{componentNames:r,workspaceRoot:e,error:n?.error||t.statusText});continue}let a="string"==typeof n?.sourcePath?n.sourcePath.trim():"",s="string"==typeof n?.resolvedName?n.resolvedName.trim():"";if(a&&s)return{sourcePath:a,resolvedName:s}}catch(e){console.error("Failed to resolve component source path:",e)}return null},[e,n]),tV=(0,r.useCallback)(async()=>{if(A&&!te.current){te.current=!0,e8(!0);try{let e=await l(A);e.success?(e7(e.branches??[]),e6(e.baseBranch?.trim()||"")):e.error&&eq(`Failed to load branches: ${e.error}`)}catch(e){console.error("Failed to load base branches:",e)}finally{te.current=!1,e8(!1)}}},[A]);(0,r.useEffect)(()=>{A&&tV()},[tV,A]);let tY=(0,r.useCallback)(async()=>{if(A)try{let e=await i(A);e.success&&"number"==typeof e.ahead&&"number"==typeof e.behind&&ta({ahead:e.ahead,behind:e.behind})}catch(e){console.error("Failed to load branch divergence:",e)}},[A]);(0,r.useEffect)(()=>{if(!A||!e5)return void ta({ahead:0,behind:0});tY();let e=window.setInterval(()=>{tY()},6e4);return()=>window.clearInterval(e)},[e5,tY,A]);let tG=(0,r.useCallback)(async()=>{if(A)try{let e=await o(A);e.success&&"number"==typeof e.count&&ti(e.count)}catch(e){console.error("Failed to load uncommitted file count:",e)}},[A]);(0,r.useEffect)(()=>{if(!A)return;tG();let e=window.setInterval(()=>{tG()},1e4);return()=>window.clearInterval(e)},[tG,A]);let tX=async()=>{if(!A||!e5)return!1;eG(!0),eq("Merging session branch...");try{let e=await c(A);if(e.success)return eq(`Merged ${e.branchName} into ${e.baseBranch}`),tY(),!0;return eq(`Merge failed: ${e.error}`),!1}catch(e){return console.error("Merge request failed:",e),eq("Merge failed"),!1}finally{eG(!1)}},tJ=async()=>{await tX()},[tZ,tQ]=(0,r.useState)(!1),t0=(0,r.useRef)(null);(0,r.useEffect)(()=>{let e=e=>{t0.current&&!t0.current.contains(e.target)&&tQ(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]);let t1=async e=>{if(tQ(!1),!A)return;let t=e!==e5;eJ(!0),eq(t?`Updating base to ${e} and rebasing...`:"Rebasing session branch...");try{if(t){let t=await u(A,e);if(!t.success){eq(`Failed to update base branch: ${t.error}`),eJ(!1);return}e6(t.baseBranch),await tV()}let r=await d(A);r.success?(eq(`Rebased ${r.branchName} onto ${r.baseBranch}`),tY()):eq(`Rebase failed: ${r.error}`)}catch(e){console.error("Rebase request failed:",e),eq("Rebase failed")}finally{eJ(!1)}},t2=(0,r.useCallback)(async(e,t)=>{let r=ee(e);if(!r)return eq("Please enter a preview URL"),!1;td(r),tp(!1),eq(`Loading preview: ${r}`);try{let e=await fetch("/api/preview-proxy/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({target:r})}),n=await e.json().catch(()=>null);if(!e.ok||!n?.proxyUrl)throw Error(n?.error||"Failed to start preview proxy");return tm(n.proxyUrl),t&&tl(!0),eq(`Loaded preview: ${r}`),!0}catch(t){let e=t instanceof Error?t.message:"Failed to load preview";return console.error("Failed to load preview via proxy:",t),eq(`Failed to load preview: ${e}`),!1}},[]),t3=(0,r.useCallback)(()=>{if(!tu)return void eq("Load a preview before picking elements");let e=em.current?.contentWindow;if(!e)return void eq("Preview is not ready yet");let t=!th;e.postMessage({type:"viba:preview-picker-toggle",active:t},"*"),tp(t),eq(t?"Picker enabled: click an element in the preview":"Picker disabled")},[th,tu]),t5=(0,r.useCallback)(e=>{let t=em.current?.contentWindow;return t?(t.postMessage(e,"*"),!0):(eq("Preview is not ready yet"),!1)},[]),t6=(0,r.useCallback)(e=>{tu?t5({type:"viba:preview-navigation",action:e})&&"reload"===e&&eq("Reloading preview..."):eq("Load a preview before using navigation controls")},[t5,tu]),t4=(0,r.useCallback)(()=>{t5({type:"viba:preview-location-request"})},[t5]),{attachTerminalLinkHandler:t7}=function({onLoadPreview:e}){let t=(0,r.useCallback)((t,r)=>{let n=ee(t);return!!n&&(r?window.open(n,"_blank","noopener,noreferrer"):e(n,!0),!0)},[e]),n=(0,r.useCallback)((e,r,n)=>{r.current?.();let a=e.contentWindow,s=a?.term;if(!a||!s)return;let i=n?.onLinkActivated,o=[],l=e.contentDocument,c={metaKey:!1,ctrlKey:!1,at:0};if(l){let e=e=>{c={metaKey:e.metaKey,ctrlKey:e.ctrlKey,at:Date.now()}};l.addEventListener("mousedown",e,!0),l.addEventListener("click",e,!0),o.push(()=>{l.removeEventListener("mousedown",e,!0),l.removeEventListener("click",e,!0)})}let d=a.open.bind(a);a.open=(...e)=>{let r=Date.now()-c.at<1e3&&(c.metaKey||c.ctrlKey);if("string"==typeof e[0]&&e[0].trim())return(i?.(),t(e[0],r))?null:d(...e);if(0===e.length){let e=null;return{opener:null,location:{set href(url){if(i?.(),!t(url,r)&&(e=d())){try{e.opener=null}catch{}e.location.href=url}},get href(){return""}}}}return d(...e)},o.push(()=>{a.open=d});let u=s._core?._linkProviderService?.linkProviders;if(u instanceof Map){for(let e of u.values())if(e&&"object"==typeof e){if("function"==typeof e._handler){let r=e._handler;e._handler=(e,n)=>{i?.(),t(n,!!(e?.metaKey||e?.ctrlKey))||r(e,n)},o.push(()=>{e._handler=r})}if("function"==typeof e.provideLinks){let r=e.provideLinks.bind(e);e.provideLinks=(e,n)=>{r(e,e=>{if(Array.isArray(e))for(let r of e){if(!r||"object"!=typeof r||"function"!=typeof r.activate)continue;let e=r.activate.bind(r);r.activate=(r,n)=>{i?.(),t(n,!!(r?.metaKey||r?.ctrlKey))||e(r,n)}}n(e)})},o.push(()=>{e.provideLinks=r})}}}let m=s.options.linkHandler,h={allowNonHttpProtocols:m?.allowNonHttpProtocols??!1,activate:(e,r,n)=>{i?.(),t(r,!!(e?.metaKey||e?.ctrlKey))||m?.activate?.(e,r,n)},hover:(e,t,r)=>{m?.hover?.(e,t,r)},leave:(e,t,r)=>{m?.leave?.(e,t,r)}};s.options.linkHandler=h,o.push(()=>{s.options.linkHandler=m??null}),r.current=()=>{for(let e of o)e();r.current=null}},[t]);return{handleTerminalLinkOpen:t,attachTerminalLinkHandler:n}}({onLoadPreview:t2});if((0,r.useEffect)(()=>{if(!to||tc.trim())return;let e=window.setTimeout(()=>{eh.current?.focus()},0);return()=>{window.clearTimeout(e)}},[to,tc]),(0,r.useEffect)(()=>{let t=t=>{if(!em.current||t.source!==em.current.contentWindow)return;let r=t.data;if(r&&"object"==typeof r){if("viba:preview-picker-state"===r.type)return void tp(!!r.active);if("viba:preview-picker-ready"===r.type){let e=em.current?.contentWindow;e&&e.postMessage({type:"viba:preview-location-request"},"*");return}if("viba:preview-location-change"===r.type){"string"==typeof r.url&&r.url.trim().length>0&&td(r.url);return}if("viba:preview-element-selected"===r.type){let t=r.element&&"object"==typeof r.element?r.element:null,a=Array.isArray(t?.reactComponentStack)?t.reactComponentStack:[],s=((e,t)=>{for(let r of e){if(!r||"object"!=typeof r)continue;let e="string"==typeof r.name?r.name.trim():"";if(!e)continue;let n="string"==typeof r.source?.fileName?r.source.fileName.trim():"",a=n?ec(n,t):null;if(a)return`${e} (${a})`}return null})(a,n||e),i=a[0]&&"object"==typeof a[0]?a[0].name:void 0,o="string"==typeof i&&i.trim().length>0?i.trim():"",l=new Set(["Suspense","ErrorBoundary","Router","AppRouter","LayoutRouter","RenderFromTemplateContext","ScrollAndFocusHandler","InnerLayoutRouter","RedirectErrorBoundary","NotFoundBoundary","LoadingBoundary","ReactDevOverlay","HotReload","AppContainer","Route","Link","Image","OuterLayoutRouter","Head","StringRefs","Fragment","Profiler","StrictMode","SuspenseList","Script","Page","__next_root_layout_boundary__"]),c=Array.from(new Set(a.map(e=>{if(!e||"object"!=typeof e)return"";let t=e.name;return"string"==typeof t?t.trim():""}).filter(e=>!(!e||l.has(e)||e.startsWith("styled.")||e.startsWith("Styled(")))));console.log("Filtered stack component names:",c);let d=s||o||("string"==typeof t?.selector?t.selector:"");if(console.log("Preview selected element:",t),console.log("Preview selected reactComponentStack:",a),console.log("Preview selected identifier:",d),tp(!1),!d)return void eq("Element selected. No identifier was resolved.");(async()=>{let e=s||"";if(!e&&c.length>0){tb(!0);try{let t=await tO(c);t?.resolvedName&&t?.sourcePath&&(e=`${t.resolvedName} (${t.sourcePath})`)}finally{tb(!1)}}if(!e){if(c.length>0)return eq("Element selected, but source file path could not be resolved for the component");e=d}console.log("Final resolved component identifier:",e),eq(await tK(`${e} `)?`Element identifier sent to agent: ${e}`:"Element selected, but failed to send identifier to agent input")})()}}};return window.addEventListener("message",t),()=>{window.removeEventListener("message",t)}},[tK,e,tO,n]),(0,r.useEffect)(()=>{tp(!1)},[tu]),!e)return(0,t.jsx)("div",{className:"p-4 text-error",children:"No repository specified"});if("error"===ez)return(0,t.jsx)("div",{className:"flex h-screen w-full items-center justify-center bg-base-100",children:(0,t.jsx)("div",{className:"card w-96 bg-base-200 shadow-xl",children:(0,t.jsxs)("div",{className:"card-body items-center text-center",children:[(0,t.jsx)("h2",{className:"card-title text-error",children:"Cleanup failed"}),(0,t.jsx)("p",{children:eI||"An unknown error occurred while cleaning up this session."}),(0,t.jsx)("div",{className:"card-actions justify-end",children:(0,t.jsx)("button",{className:"btn btn-primary",onClick:()=>_(),children:"Back to Home"})})]})})});let t9=Array.from(new Set([...e5?[e5]:[],...e4])).filter(e=>e!==a||e===e5),t8=ty?`calc(40px - min(${tk.width}px, calc(100vw - 2rem)))`:16,re=!!I?.trim();return(0,t.jsxs)("div",{className:`flex flex-col h-screen w-full overflow-hidden bg-base-100 ${tS||tw?"select-none":""}`,children:[(tS||tw)&&(0,t.jsx)("div",{className:`fixed inset-0 z-[9999] ${tS?"cursor-nwse-resize":"cursor-col-resize"}`}),(0,t.jsxs)("div",{className:"z-20 bg-base-300/95 p-2 text-xs flex justify-between px-4 font-mono select-none items-center shadow-md backdrop-blur-sm border-b border-base-content/10",children:[(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsx)("button",{className:"btn btn-ghost btn-xs h-6 min-h-6 px-1 hover:bg-base-content/10",onClick:()=>_(),title:"Back to Home",children:(0,t.jsx)($,{className:"w-4 h-4"})}),(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"opacity-50",children:"Repo:"}),(0,t.jsx)("span",{className:"font-bold",children:(0,Y.getBaseName)(e)})]}),A&&(0,t.jsxs)("div",{className:"hidden min-[1200px]:flex min-w-0 items-center gap-2 text-[10px] opacity-70",children:[(0,t.jsx)("span",{children:"Session:"}),(0,t.jsx)("span",{className:"truncate max-w-[220px]",title:A,children:A})]})]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsxs)("div",{className:"flex items-center border border-base-content/20 rounded overflow-hidden",children:[(0,t.jsx)("select",{className:"select select-xs h-6 min-h-6 bg-base-200 border-none focus:outline-none rounded-none pr-7",value:tT,onChange:tq,children:er.map(e=>(0,t.jsx)("option",{value:e.id,children:e.name},e.id))}),(0,t.jsx)("div",{className:"w-[1px] h-4 bg-base-content/20"}),(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs rounded-none h-6 min-h-6 border-none hover:bg-base-content/10",onClick:()=>{if(!n)return;let e=er.find(e=>e.id===tT);if(!e)return;let t=`${e.protocol}://file/${encodeURI(n)}`;window.open(t,"_blank")},title:`Open in ${er.find(e=>e.id===tT)?.name}`,children:[(0,t.jsx)(v,{className:"w-3 h-3"}),(0,t.jsx)("span",{className:X,children:"Open"})]})]}),(0,t.jsxs)("div",{className:"flex items-center border border-base-content/20 rounded overflow-hidden bg-base-100",children:[(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs rounded-none h-6 min-h-6 border-none px-2 hover:bg-base-content/10",onClick:()=>{if(!n||!a)return;let e=new URLSearchParams({path:n,branch:a});window.open(`http://localhost:3100/workspace?${e.toString()}`,"_blank","noopener,noreferrer")},disabled:!n||!a,title:"Open this worktree and branch in Trident",children:[(0,t.jsx)(k.GitBranch,{className:"w-3 h-3"}),(0,t.jsx)("span",{className:X,children:"Diff"})]}),(0,t.jsx)("div",{className:"w-[1px] h-4 bg-base-content/10"}),(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs rounded-none h-6 min-h-6 border-none px-2 hover:bg-base-content/10",onClick:tH,disabled:eO,title:"Ask agent to create a commit with current changes",children:[eO?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,t.jsx)(g,{className:"w-3 h-3"}),(0,t.jsxs)("span",{className:X,children:["Commit (",ts,")"]})]})]}),(0,t.jsxs)("div",{className:"flex items-center border border-base-content/20 rounded overflow-hidden bg-base-100",children:[(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs rounded-none h-6 min-h-6 border-none px-2 hover:bg-base-content/10",onClick:()=>eQ(!0),disabled:e2,title:"Browse files and insert absolute paths into the agent input",children:[e2?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,t.jsx)(C,{className:"w-3 h-3"}),(0,t.jsx)("span",{className:X,children:"Add Files"})]}),(0,t.jsx)("div",{className:"w-[1px] h-4 bg-base-content/10"}),(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs rounded-none h-6 min-h-6 border-none px-2 hover:bg-base-content/10",onClick:()=>{if(!e||!A)return;let t=`/new?repo=${encodeURIComponent(e)}&prefillFromSession=${encodeURIComponent(A)}`;window.open(t,"_blank","noopener,noreferrer")},title:"Start a new attempt in a new tab with this session context",children:[(0,t.jsx)(M.Plus,{className:"w-3 h-3"}),(0,t.jsx)("span",{className:X,children:"New Attempt"})]})]}),(0,t.jsxs)("div",{className:"flex items-center border border-base-content/20 rounded overflow-hidden bg-base-100",children:[(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs rounded-none h-6 min-h-6 border-none px-2 hover:bg-base-content/10",onClick:()=>{let e=I?.trim();if(!e||!eu.current||eK)return;tj(!1);let t=eu.current;eH(!0),eq("Starting dev server...");let r=(n=0)=>{if(n>30){eq("Failed to start dev server: terminal is not ready"),eH(!1);return}try{let a=t.contentWindow;if(a&&a.term){a.term.paste(e);let r=t.contentDocument?.querySelector("textarea.xterm-helper-textarea");r?r.dispatchEvent(new KeyboardEvent("keypress",{bubbles:!0,cancelable:!0,charCode:13,keyCode:13,key:"Enter",view:a})):a.term.paste("\r"),a.focus(),r&&r.focus(),eq("Dev server start command sent"),eH(!1)}else setTimeout(()=>r(n+1),300)}catch(e){console.error("Dev server injection error",e),eq("Failed to start dev server"),eH(!1)}};r()},disabled:!re||eW||eK,title:re?eK?"A process is already running in the terminal":"Run dev server script in terminal":"Set a dev server script to enable this button",children:[eW?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,t.jsx)(w.Play,{className:"w-3 h-3"}),(0,t.jsx)("span",{className:X,children:"Dev"})]}),(0,t.jsx)("div",{className:"w-[1px] h-4 bg-base-content/10"}),(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs rounded-none h-6 min-h-6 border-none px-2 hover:bg-base-content/10",onClick:()=>tl(e=>!e),title:to?"Hide preview panel":"Show preview panel",children:[(0,t.jsx)(L,{className:"w-3 h-3"}),(0,t.jsx)("span",{className:X,children:to?"Close":"Preview"})]})]}),(0,t.jsx)("div",{className:"flex items-center border border-base-content/20 rounded overflow-hidden bg-base-100",children:(0,t.jsxs)("button",{className:`btn btn-ghost btn-xs rounded-none h-6 min-h-6 border-none px-2 hover:bg-base-content/10 ${"select"===tM?"text-warning":""}`,onClick:tB,disabled:"tmux"!==V||tP,title:"tmux"===V?"scroll"===tM?"Switch to text select mode for easier copy":"Switch to scroll mode for wheel scrollback":"Mode toggle is available only in tmux persistence mode",children:[tP?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,t.jsx)(P,{className:"w-3 h-3"}),(0,t.jsx)("span",{children:"scroll"===tM?"Scroll Mode":"Text Select"})]})}),(0,t.jsxs)("div",{className:"flex items-center border border-base-content/20 rounded relative bg-base-100",ref:t0,children:[(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs rounded-none rounded-l h-6 min-h-6 border-none px-2 hover:bg-base-content/10",onClick:()=>{tQ(!tZ)},disabled:eX||eY||tt,title:"Select base branch and rebase",children:[eX?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,t.jsx)(j,{className:"w-3 h-3"}),(0,t.jsx)("span",{className:X,children:"Rebase"}),(0,t.jsx)(E,{className:"w-3 h-3 opacity-50 ml-0.5"})]}),tZ&&(0,t.jsxs)("div",{className:"absolute top-full left-0 z-50 mt-1 w-64 p-0 shadow-xl dropdown-content bg-base-200 rounded-box border border-base-content/20 flex flex-col max-h-80 overflow-hidden",children:[(0,t.jsxs)("div",{className:"px-4 py-2 text-[10px] uppercase font-bold tracking-wider opacity-50 border-b border-base-content/10 bg-base-200 flex justify-between items-center shrink-0",children:[(0,t.jsx)("span",{children:"Select Base Branch"}),(e9||tt)&&(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"})]}),(0,t.jsxs)("ul",{className:"menu p-0 overflow-y-auto flex-nowrap custom-scrollbar overflow-x-hidden w-full",children:[t9.length>0?t9.map(e=>(0,t.jsx)("li",{children:(0,t.jsxs)("button",{onClick:()=>t1(e),className:`flex justify-between items-center text-xs py-2 truncate max-w-full rounded-none ${e===e5?"active font-bold":""}`,title:e,children:[(0,t.jsx)("span",{className:"truncate",children:e}),e===e5&&(0,t.jsx)("span",{className:"opacity-70 text-[10px] ml-2 shrink-0",children:"(Current)"})]})},e)):(0,t.jsx)("li",{className:"text-xs px-4 py-2 opacity-50 italic text-center",children:"No other branches found"}),(0,t.jsx)("div",{className:"divider my-1 opacity-50"}),(0,t.jsx)("li",{children:(0,t.jsx)("button",{onClick:()=>void tV(),className:"text-[10px] justify-center opacity-70 hover:opacity-100",children:"Refresh Branches"})})]})]})]}),(0,t.jsx)("div",{className:"w-[1px] h-4 bg-base-content/10"}),(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs btn-success rounded-none h-6 min-h-6 border-none px-2 hover:bg-success/20 hover:border-transparent",onClick:tJ,disabled:eY||eX||tt||!e5,title:e5?`Merge current branch (${a}) into target branch (${e5})`:"Target branch unavailable for this session",children:[eY?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,t.jsx)(y,{className:"w-3 h-3"}),(0,t.jsx)("span",{className:X,children:"Merge"})]}),(0,t.jsx)("div",{className:"w-[1px] h-4 bg-base-content/10"}),(0,t.jsxs)("button",{className:"btn btn-ghost btn-error btn-xs rounded-none rounded-r h-6 min-h-6 border-none px-2 hover:bg-error/20 hover:border-transparent",onClick:tU,disabled:eY||eX||!n,title:"Clean up and exit",children:[(0,t.jsx)(b.Trash2,{className:"w-3 h-3"}),(0,t.jsx)("span",{className:X,children:"Purge"})]})]}),e5&&(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs opacity-80",title:`Divergence against ${e5}`,children:[(0,t.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,t.jsx)(N,{className:"w-3 h-3"}),tn.ahead]}),(0,t.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,t.jsx)(S,{className:"w-3 h-3"}),tn.behind]})]}),(0,t.jsx)("div",{className:"hidden min-[1200px]:block w-[1px] h-4 bg-base-content/20 mx-2"}),(0,t.jsxs)("div",{className:"hidden min-[1200px]:flex min-w-0 max-w-[280px] items-center gap-2",children:[(0,t.jsx)("span",{className:`w-2 h-2 rounded-full ${eA.includes("Error")||eA.includes("failed")?"bg-error":eA.includes("started")||eA.includes("Merged")||eA.includes("Rebased")||eA.includes("sent")?"bg-success":"bg-warning"}`}),(0,t.jsx)("span",{className:"truncate",title:eA,children:eA})]})]})]}),(0,t.jsxs)("div",{ref:ep,className:"flex min-h-0 flex-1 w-full",children:[(0,t.jsx)("div",{className:"h-full min-w-0",style:{width:to?`${100*tx}%`:"100%"},children:(0,t.jsx)("iframe",{ref:el,src:eg,className:`h-full w-full border-none dark:invert dark:brightness-90 ${tS||tw?"pointer-events-none":""}`,allow:"clipboard-read; clipboard-write",onLoad:()=>{if(!el.current)return;let t=el.current;try{t.contentWindow}catch(e){eq("Error: Cross-Origin access blocked. Ensure proxy is working.");return}t.contentWindow&&(t.contentWindow.onbeforeunload=null,t.contentWindow.addEventListener("beforeunload",e=>{e.stopImmediatePropagation()},!0)),eq("Connecting to terminal...");let r=(a=0)=>{if(a>30)return void eq("Timeout waiting for terminal to be ready");try{let s=t.contentWindow;if(s&&s.term){let i=s.term;t7(t,eb);try{i.options.theme={...i.options.theme||{},selectionBackground:"rgba(59, 130, 246, 0.4)"}}catch{}let o=eR("agent"),l=!!O&&"tmux"===V;if(o||l){l&&!o?(eL("agent"),eq("Attached to persisted terminal")):eq("Reconnected to terminal"),s.focus();let e=t.contentDocument?.querySelector("textarea.xterm-helper-textarea");e&&e.focus();return}if(!eP(i)&&a<10)return void setTimeout(()=>r(a+1),200);if(!eE("agent")){eq("Reconnected to terminal"),s.focus();let e=t.contentDocument?.querySelector("textarea.xterm-helper-textarea");e&&e.focus();return}let c=n||e,d=`cd ${et(c)}`;i.paste(d);let u=()=>{let e=t.contentDocument?.querySelector("textarea.xterm-helper-textarea");e?e.dispatchEvent(new KeyboardEvent("keypress",{bubbles:!0,cancelable:!0,charCode:13,keyCode:13,key:"Enter",view:s})):i.paste("\r")};if(u(),eL("agent"),q){let t=async()=>{let t="";if(O)t=q.toLowerCase().includes("gemini")?"gemini --resume latest --yolo":q.toLowerCase().includes("codex")?"codex resume --last --sandbox danger-full-access --ask-for-approval on-request --search":"agent"===q.toLowerCase()||q.toLowerCase().includes("cursor")?"agent resume":`${et(q)} resume`;else{let r=H?.trim()||"",a=U?.trim()||"",s=[];r&&s.push(r),a&&s.push(a);let i=s.join("\n\n"),o=(W||[]).map(e=>e.trim()).filter(Boolean).map(t=>`${n||e}-attachments/${t}`),l=[];i&&l.push(i),o.length>0&&l.push(["Attachments:",...o.map(e=>`- ${e}`)].join("\n"));let c=l.join("\n\n"),d="";if(c){let e=[];"plan"===K&&e.push("Plan mode requirements: study the repository thoroughly first, then present a concrete implementation plan, and wait for explicit user approval before making file changes or running write operations."),e.push("After each round of conversation, if work is completed and files changed, commit all changes with an appropriate git commit message. The commit message must include a clear title and a detailed body describing what changed and why, not just a title. No need to confirm when creating commits.");let t=["# Instructions\n",e.join("\n"),"\n# Task\n",c].join("\n");try{let e=await m(A,t);e.success&&e.filePath?d=` "$(cat ${et(e.filePath)})"`:(console.error("Failed to write prompt file, falling back to inline prompt",e.error),d=` ${et(t)}`)}catch(e){console.error("Exception writing prompt file",e),d=` ${et(t)}`}}let u=z&&"auto"!==z.toLowerCase()?` --model ${et(z)}`:"";t=q.toLowerCase().includes("codex")?`codex${u} --sandbox danger-full-access --ask-for-approval on-request --search${d}`:q.toLowerCase().includes("gemini")?`gemini${u} --yolo${d}`:"agent"===q.toLowerCase()||q.toLowerCase().includes("cursor")?`agent${u}${d}`:`${et(q)}${u}${d}`}t&&(i.paste(t),u(),eq(O?`Resumed session with ${q}`:`Session started with ${q}`),!O&&G&&G())};setTimeout(()=>t(),500)}else eq(`Session started ${n?"(Worktree)":""}`),!O&&G&&G();s.focus();let h=t.contentDocument?.querySelector("textarea.xterm-helper-textarea");h&&h.focus()}else setTimeout(()=>r(a+1),500)}catch(e){eM("agent"),console.error("Access error during injection:",e),eq("Error accessing terminal: "+String(e))}};setTimeout(()=>r(),1e3)}})}),to&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"relative h-full w-2 shrink-0 cursor-col-resize bg-base-300/40 hover:bg-base-content/20",onMouseDown:e=>{e.preventDefault(),tg(!0),ef.current={startX:e.clientX,startRatio:tx}},role:"separator","aria-orientation":"vertical","aria-label":"Resize preview panel",title:"Drag to resize preview panel",children:(0,t.jsx)("div",{className:"absolute left-1/2 top-1/2 h-12 w-[2px] -translate-x-1/2 -translate-y-1/2 rounded-full bg-base-content/30"})}),(0,t.jsxs)("div",{className:"flex h-full min-w-0 flex-1 flex-col border-l border-base-content/10 bg-base-200/50",children:[(0,t.jsxs)("form",{className:"flex items-center gap-2 border-b border-base-content/10 bg-base-200 px-3 py-2",onSubmit:e=>{e.preventDefault(),t2(tc,!0)},children:[(0,t.jsx)("button",{className:"btn btn-ghost btn-xs h-7 min-h-7 w-7 p-0",type:"button",onClick:()=>t6("back"),disabled:!tu,title:"Go back","aria-label":"Go back",children:(0,t.jsx)(F.ArrowLeft,{className:"h-3.5 w-3.5"})}),(0,t.jsx)("button",{className:"btn btn-ghost btn-xs h-7 min-h-7 w-7 p-0",type:"button",onClick:()=>t6("forward"),disabled:!tu,title:"Go forward","aria-label":"Go forward",children:(0,t.jsx)(D,{className:"h-3.5 w-3.5"})}),(0,t.jsx)("button",{className:"btn btn-ghost btn-xs h-7 min-h-7 w-7 p-0",type:"button",onClick:()=>t6("reload"),disabled:!tu,title:"Reload preview","aria-label":"Reload preview",children:(0,t.jsx)(T,{className:"h-3.5 w-3.5"})}),(0,t.jsx)("input",{ref:eh,type:"text",className:"input input-xs input-bordered w-full font-mono",value:tc,onChange:e=>td(e.target.value),placeholder:"http://127.0.0.1:3000",spellCheck:!1}),(0,t.jsx)("button",{className:`btn btn-ghost btn-xs ${th?"btn-active text-success":""}`,type:"button",onClick:t3,disabled:!tu||tf,title:th?"Disable picker":"Pick element from preview",children:tf?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs w-3 h-3"}):(0,t.jsx)(P,{className:"h-3 w-3"})}),(0,t.jsx)("button",{className:"btn btn-xs",type:"submit",children:"Go"})]}),(0,t.jsx)("div",{className:"min-h-0 flex-1",children:tu?(0,t.jsx)("iframe",{ref:em,src:tu,className:`h-full w-full border-none ${tS||tw?"pointer-events-none":""}`,title:"Dev server preview",onLoad:t4,sandbox:"allow-forms allow-modals allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-downloads"}):(0,t.jsx)("div",{className:"flex h-full items-center justify-center px-6 text-center text-xs opacity-70",children:"Run the dev server, or enter a URL above to load a preview."})})]})]})]}),(0,t.jsxs)("div",{className:`absolute z-30 overflow-hidden rounded-lg border border-base-content/20 bg-base-200/95 shadow-2xl backdrop-blur-sm ${tS||tw?"":"transition-all"}`,style:{bottom:80,right:t8,width:tk.width,height:ty?40:tk.height,maxWidth:"calc(100vw - 2rem)",maxHeight:"calc(100vh - 2rem)"},children:[(0,t.jsx)("button",{className:`absolute left-0 top-0 z-50 flex h-10 w-10 items-center justify-center text-base-content/30 hover:text-base-content/60 ${ty?"cursor-pointer":"cursor-nwse-resize"}`,onMouseDown:ty?void 0:e=>{e.preventDefault(),e.stopPropagation(),tC(!0),tE.current={startX:e.clientX,startY:e.clientY,startWidth:tk.width,startHeight:tk.height}},onClick:ty?()=>tj(!1):void 0,title:ty?"Expand terminal":"Drag to resize",type:"button",children:(0,t.jsx)(R,{size:14})}),!ty&&(0,t.jsxs)("button",{className:"flex h-10 w-full items-center justify-between px-3 pl-10 text-xs font-mono hover:bg-base-content/10",onClick:()=>tj(e=>!e),title:"Minimize terminal",type:"button",children:[(0,t.jsx)("span",{children:"Terminal"}),(0,t.jsx)("span",{className:"opacity-70",children:"Hide"})]}),(0,t.jsx)("div",{className:ty?"h-0 overflow-hidden":"h-[calc(100%-2.5rem)]",children:(0,t.jsx)("iframe",{ref:eu,src:ey,className:`h-full w-full border-none dark:invert dark:brightness-90 ${tS||tw?"pointer-events-none":""}`,allow:"clipboard-read; clipboard-write",onLoad:()=>{if(!eu.current)return;let t=eu.current;eF(),e_(!1);try{t.contentWindow}catch(e){console.error("Secondary terminal: Cross-Origin access blocked.");return}t.contentWindow&&(t.contentWindow.onbeforeunload=null,t.contentWindow.addEventListener("beforeunload",e=>{e.stopImmediatePropagation()},!0));let r=(a=0)=>{if(!(a>30))try{let s=t.contentWindow;if(s&&s.term){let i,o=s.term;t7(t,ex,{onLinkActivated:()=>tj(!0)});try{o.options.theme={...o.options.theme||{},selectionBackground:"rgba(59, 130, 246, 0.4)"}}catch{}eD(t,o);try{let e=()=>{let e=o.buffer?.active,t="number"==typeof e?.baseY?e.baseY:0;"number"==typeof e?.viewportY&&e.viewportY,o.scrollToBottom?.()};if("function"==typeof o.onWriteParsed)o.onWriteParsed(e);else{let r=t.contentDocument?.querySelector(".xterm-screen")||t.contentDocument?.body;r&&new MutationObserver(e).observe(r,{childList:!0,subtree:!0,characterData:!0})}}catch(e){console.error("Failed to setup auto-scroll:",e)}let l=eR("terminal"),c=!!O&&"tmux"===V;if(l||c){c&&!l&&eL("terminal"),l&&eT(t,s,o),s.focus();let e=t.contentDocument?.querySelector("textarea.xterm-helper-textarea");e&&e.focus();return}if(!eP(o)&&a<10)return void setTimeout(()=>r(a+1),200);if(!eE("terminal")){s.focus();let e=t.contentDocument?.querySelector("textarea.xterm-helper-textarea");e&&e.focus();return}let d=n||e,u=`cd ${et(d)}`;o.paste(u),(i=t.contentDocument?.querySelector("textarea.xterm-helper-textarea"))?i.dispatchEvent(new KeyboardEvent("keypress",{bubbles:!0,cancelable:!0,charCode:13,keyCode:13,key:"Enter",view:s})):o.paste("\r"),eL("terminal"),eT(t,s,o),s.focus();let m=t.contentDocument?.querySelector("textarea.xterm-helper-textarea");m&&m.focus()}else setTimeout(()=>r(a+1),500)}catch(e){e_(!1),eM("terminal"),console.error("Secondary terminal injection error",e)}};setTimeout(()=>r(),1e3)}})})]}),eZ&&(0,t.jsx)(J,{initialPath:e0,worktreePath:n,onPathChange:e1,onConfirm:e=>{eQ(!1),t_(e)},onCancel:()=>eQ(!1)})]})}let em=(0,a.createServerReference)("4047c66c64f2767cd76a24da07689445e64df2f857",a.callServer,void 0,a.findSourceMapURL,"consumeSessionLaunchContext"),eh=(0,a.createServerReference)("40ed8ecf5be0dfb81268d2619792a70bee2fe8b195",a.callServer,void 0,a.findSourceMapURL,"getSessionMetadata"),ep=(0,a.createServerReference)("408492ea0b68e56f674cd196de8e7c59554f07b8bb",a.callServer,void 0,a.findSourceMapURL,"markSessionInitialized");var ef=e.i(92696);function eb(){let e=(0,n.useParams)().sessionId,a=Array.isArray(e)?e[0]:e,s=(0,n.useRouter)(),[i,o]=(0,r.useState)(null),[l,c]=(0,r.useState)(!0),[d,u]=(0,r.useState)(null),[m,h]=(0,r.useState)(void 0),[p,f]=(0,r.useState)(void 0),[b,x]=(0,r.useState)(void 0),[v,w]=(0,r.useState)(void 0),[g,y]=(0,r.useState)(void 0),[j,k]=(0,r.useState)(void 0),[N,S]=(0,r.useState)([]),[C,$]=(0,r.useState)(!0),[R,E]=(0,r.useState)("shell");(0,r.useEffect)(()=>(document.documentElement.classList.add("session-page"),()=>{document.documentElement.classList.remove("session-page")}),[]),(0,r.useEffect)(()=>{a&&(async()=>{try{let e=await (0,ef.startTtydProcess)();if(!e.success){u("Failed to start terminal service"),c(!1);return}E("tmux"===e.persistenceMode?"tmux":"shell");let t=await eh(a);if(!t){u("Session not found"),c(!1);return}if(o(t),!1===t.initialized){let e=await em(a);if(e.success&&e.context){let t=e.context;h(t.initialMessage),f(t.startupScript),x(t.title),w(t.agentProvider),y(t.model),k(t.sessionMode),S(t.attachmentNames||[])}$(!1)}else $(!0);c(!1)}catch(e){console.error("Failed to load session:",e),u("Failed to load session"),c(!1)}})()},[a]);let M=e=>{e?window.location.href="/":s.push("/")},L=async()=>{a&&await ep(a)};return l?(0,t.jsx)("div",{className:"flex h-screen w-full items-center justify-center bg-base-100",children:(0,t.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,t.jsx)("span",{className:"loading loading-spinner loading-lg text-primary"}),(0,t.jsx)("p",{className:"opacity-60",children:"Loading session..."})]})}):d||!i?(0,t.jsx)("div",{className:"flex h-screen w-full items-center justify-center bg-base-100",children:(0,t.jsx)("div",{className:"card w-96 bg-base-200 shadow-xl",children:(0,t.jsxs)("div",{className:"card-body items-center text-center",children:[(0,t.jsx)("h2",{className:"card-title text-error",children:"Error"}),(0,t.jsx)("p",{children:d||"Session not found"}),(0,t.jsx)("div",{className:"card-actions justify-end",children:(0,t.jsx)("button",{className:"btn btn-primary",onClick:()=>M(),children:"Back to Home"})})]})})}):(0,t.jsx)(eu,{repo:i.repoPath,worktree:i.worktreePath,branch:i.branchName,baseBranch:i.baseBranch,sessionName:i.sessionName,agent:v||i.agent,model:g||i.model,startupScript:p,devServerScript:i.devServerScript,initialMessage:m,attachmentNames:N,title:b||i.title,sessionMode:j,onExit:M,isResume:C,terminalPersistenceMode:R,onSessionStart:L})}e.s(["default",()=>eb],36438)}]);
|
|
File without changes
|
/package/.next/static/{wnjyGh7Tpd-C6MCeMdVV7 → OvVVXN8N9S6UXr-F40y-W}/_clientMiddlewareManifest.json
RENAMED
|
File without changes
|
|
File without changes
|