@ai-development-environment/server 0.0.45 → 0.0.46
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/package.json +1 -1
- package/standalone/.next/BUILD_ID +1 -1
- package/standalone/.next/build-manifest.json +3 -3
- package/standalone/.next/prerender-manifest.json +3 -3
- package/standalone/.next/server/app/[locale]/actions/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/actions-cache/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/agents/[id]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/agents/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/analytics-events/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/build-data/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/builds/[buildId]/coverage/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/builds/[buildId]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/builds/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/codebases/[codebaseId]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/codebases/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/codebases/repositories/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/comments/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/console-logs/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/credentials/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/devices/[id]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/devices/enroll/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/devices/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/jira/cache/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/jira/cache/tickets/[issueKey]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/jira/tickets/[issueKey]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/jira/tickets/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/jobs/[jobId]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/notifications/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/provisioning-profiles/[profileId]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/provisioning-profiles/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/pull-requests/[owner]/[repository]/[number]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/pull-requests/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/push-notifications/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/settings/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/skills/[skillId]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/skills/groups/[groupId]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/skills/groups/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/skills/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/skills/sync/[runId]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/tools/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/unified-events/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/usage/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/worktrees/[worktreeId]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/worktrees/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/_global-error.html +1 -1
- package/standalone/.next/server/app/_global-error.rsc +1 -1
- package/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/standalone/.next/server/app/_not-found.html +1 -1
- package/standalone/.next/server/app/_not-found.rsc +1 -1
- package/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/standalone/.next/server/chunks/ssr/_0dvnys0._.js +4 -4
- package/standalone/.next/server/chunks/ssr/_0k5jx04._.js +4 -4
- package/standalone/.next/server/chunks/ssr/messages_de_json_[json]_cjs_1uig1ud._.js +1 -1
- package/standalone/.next/server/chunks/ssr/messages_en_json_[json]_cjs_206072-._.js +1 -1
- package/standalone/.next/server/chunks/ssr/messages_es_json_[json]_cjs_082yukd._.js +1 -1
- package/standalone/.next/server/chunks/ssr/messages_fr_json_[json]_cjs_0j6-w0i._.js +1 -1
- package/standalone/.next/server/chunks/ssr/src_components_settings-page_tsx_06dxqc7._.js +31 -31
- package/standalone/.next/server/middleware-build-manifest.js +3 -3
- package/standalone/.next/server/pages/404.html +1 -1
- package/standalone/.next/server/pages/500.html +1 -1
- package/standalone/.next/server/server-reference-manifest.js +1 -1
- package/standalone/.next/server/server-reference-manifest.json +1 -1
- package/standalone/.next/static/chunks/{0zha00anzjjeh.js → 0eibx0a-j2s56.js} +4 -4
- package/standalone/.next/static/chunks/{2xeugqh9w5yfk.js → 0ftq0sdx2ck_7.js} +4 -4
- package/standalone/.next/static/chunks/1x-rxqwi4o4t2.css +1 -0
- package/standalone/.next/static/chunks/2t9stoad5r1nz.js +35 -0
- package/standalone/.next/static/chunks/1gz-q30e1qzuf.js +0 -35
- package/standalone/.next/static/chunks/2-6q03hqlurh2.css +0 -1
- /package/standalone/.next/static/{xU6QTRGzeBpwH4_PLChiN → HhiEyDs5GGmRv4pwGKg-m}/_buildManifest.js +0 -0
- /package/standalone/.next/static/{xU6QTRGzeBpwH4_PLChiN → HhiEyDs5GGmRv4pwGKg-m}/_clientMiddlewareManifest.js +0 -0
- /package/standalone/.next/static/{xU6QTRGzeBpwH4_PLChiN → HhiEyDs5GGmRv4pwGKg-m}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[845983,(a,b,c)=>{b.exports=JSON.parse('{"metadata":{"title":"AI Development Environment","description":"An AI-focused development environment."},"common":{"cancel":"Cancel","continue":"Continue","cannotBeUndone":"This action cannot be undone."},"shell":{"productName":"AI Development Environment","welcome":"Welcome","dashboard":"Dashboard","navigation":"Navigation","navigationDescription":"Primary navigation for AI Development Environment.","notifications":"Notifications","notificationsDescription":"Notification updates and alerts.","showNavigation":"Show navigation","hideNavigation":"Hide navigation","closeNavigation":"Close navigation","showNotifications":"Show notifications","hideNotifications":"Hide notifications","closeNotifications":"Close notifications","codebases":"Codebases","worktrees":"Worktrees","buildData":"Build Data","builds":"Builds","provisioningProfiles":"Provisioning Profiles","devices":"Devices","pushNotifications":"Push Notifications","agents":"Agents","usage":"Usage","github":"GitHub","pullRequests":"Pull Requests","actions":"Actions","comments":"Comments","actionsCache":"Actions Cache","jira":"Jira","tickets":"Tickets","cache":"Cache","system":"System","skills":"Skills","tools":"Tools","debugging":"Debugging","consoleLogs":"Console Logs","analyticsEvents":"Analytics Events","unifiedEvents":"Unified View","credentials":"Credentials","settings":"Settings"},"notifications":{"title":"Notifications","description":"Review notification history and choose how each event reaches you.","deliverySetup":"Browser delivery","deliverySetupDescription":"Browser permission and Web Push subscription are configured separately for this browser.","browserAlerts":"Browser alerts","browserUnsupported":"Browser alerts are not supported here.","enabled":"Enabled","enable":"Enable","webPush":"Web Push","pushUnsupported":"Web Push requires a supported browser and a secure HTTPS context.","pushSubscribed":"This browser is subscribed.","pushNotSubscribed":"This browser is not subscribed.","subscriptionCount":"{count, plural, one {# subscribed browser} other {# subscribed browsers}}","subscribedBrowsers":"Subscribed browsers","subscribedBrowsersDescription":"Send a test notification or remove browsers that should no longer receive Web Push.","browser":"Browser","pushService":"Push service","locale":"Locale","lastSeen":"Last seen","actions":"Actions","noSubscribedBrowsers":"No browsers are subscribed to Web Push.","current":"Current","test":"Test","testSent":"Sent","remove":"Remove","removeBrowser":"Remove {browser}","removeBrowserTitle":"Remove this subscribed browser?","removeBrowserDescription":"This browser will stop receiving Web Push notifications. It can subscribe again later.","unknownBrowser":"Unknown browser","subscribe":"Subscribe","unsubscribe":"Unsubscribe","permissionRequired":"Notification permission is required for Web Push.","pushKeyUnavailable":"The Web Push public key is unavailable.","pushSubscriptionInvalid":"The browser returned an invalid push subscription.","iosInstallHelp":"On iPhone or iPad, install this app from Share → Add to Home Screen before subscribing to Web Push.","preferences":"Notification types","preferencesDescription":"Channels are independent. Enabling Browser and Web Push can produce both alerts.","notificationType":"Type","sidebarChannel":"Sidebar","browserChannel":"Browser","pushChannel":"Web Push","toggleChannel":"Toggle {channel} for {type}","history":"History","historyCount":"{count, plural, one {# notification} other {# notifications}}","historyEmpty":"No notifications yet.","notification":"Notification","channels":"Channels","received":"Received","edit":"Edit","done":"Done","deleteSelected":"Delete selected","deleteAll":"Delete all","deleteAllTitle":"Delete all notification history?","deleteAllDescription":"This permanently deletes every notification from the database and cannot be undone.","selectedCount":"{count, plural, one {# selected} other {# selected}}","allSelected":"All notifications selected","selectAll":"Select all notifications","selectDay":"Select notifications from {day}","selectNotification":"Select {title}","dismiss":"Dismiss","dismissOne":"Dismiss {title} from the sidebar","openBuild":"Open build","openWorktree":"Open worktree","delete":"Delete","confirmDelete":"Confirm delete","mute":"Mute notification sounds","unmute":"Turn on notification sounds","clearAll":"Clear all","clearSidebar":"Clear sidebar","clearSidebarTitle":"Clear the notification sidebar?","clearSidebarDescription":"Notifications will be dismissed from the sidebar but remain in notification history.","sidebarEmpty":"No new notifications.","cancel":"Cancel","permissions":{"default":"Permission has not been requested.","granted":"Permission granted for this browser.","denied":"Permission is blocked in browser settings."},"types":{"IOS_BUILD_SUCCEEDED":{"title":"iOS build succeeded","description":"An iOS build finishes successfully."},"IOS_BUILD_FAILED":{"title":"iOS build failed","description":"An iOS build finishes with a failure."}},"categories":{"BUILDS":"Builds"}},"credentialEncryption":{"title":"Database credentials are not encrypted","description":"Secrets stored in the application database are currently plaintext. Generate a 32-byte key with this command:","instructionsPrefix":"Set the generated value as","instructionsSuffix":"in the server environment, then restart the server. Existing plaintext credential rows are encrypted together after restart.","backup":"Back up this key securely and retain it for the lifetime of the encrypted rows. Losing or changing it makes those credentials unreadable."},"credentials":{"title":"Credentials","description":"Review the active credential backend, protection status, and a metadata-only inventory. Secret values are never shown here.","refresh":"Refresh","loading":"Loading credential inventory…","loadFailed":"Credential inventory could not be loaded","storageTitle":"Credential storage","storageDescription":"Runtime configuration and safe location details for the selected backend.","backend":"Backend","protection":"Protection","itemCount":"Stored items","mismatchCount":"Backend mismatches","inventoryTitle":"Stored credential items","inventoryDescription":"This table contains identifiers and protection metadata only. Manage each value in its owning settings form.","feature":"Owning feature","kind":"Credential kind","updated":"Updated","emptyTitle":"No credentials stored","emptyDescription":"Credentials appear here after they are saved from an owning settings form.","states":{"READY":"Ready","WARNING":"Warning","ERROR":"Error"},"backends":{"DATABASE":"Database","VAULT":"HashiCorp Vault","KEYCHAIN":"macOS Keychain","UNKNOWN":"Unknown"},"encryptionStates":{"ENCRYPTED":"Encrypted","PLAINTEXT":"Plaintext","EXTERNAL":"External backend","ERROR":"Unavailable"},"protections":{"ENCRYPTED":"AES-256-GCM","PLAINTEXT":"Plaintext","VAULT":"Vault KV v2","KEYCHAIN":"Keychain"},"features":{"jira":"Jira","github":"GitHub","cache":"Actions cache","mcp":"External MCP server","ios":"iOS devices","push":"Push notifications","notifications":"Notifications"},"kinds":{"jira-api-token":"API token","github-personal-access-token":"Personal access token","github-app-private-key":"GitHub App private key","cache-server-api-key":"API key","cache-server-headers":"Custom header bundle","external-mcp-server-headers":"Header bundle","ios-profile-signer-private-key":"Profile signer private key","app-store-connect-private-key":"App Store Connect private key","apns-token-private-key":"APNs token private key","apns-certificate-bundle":"APNs certificate bundle","web-push-vapid-private-key":"Web Push VAPID private key"},"details":{"configuredValue":"Configured value","location":"Location","encryptionKey":"Encryption key","service":"Service","hostPlatform":"Host platform","address":"Address","mount":"KV v2 mount","pathPrefix":"Path prefix","namespace":"Namespace","authenticationToken":"Authentication token","additionalHeaders":"Additional header names","customCa":"Custom CA","tlsServerName":"TLS server name"},"detailValues":{"configured":"Configured","notConfigured":"Not configured","none":"None","invalid":"Invalid","applicationDatabase":"Application database"},"warningTitles":{"DATABASE_UNENCRYPTED":"Database encryption is disabled","CREDENTIAL_ENCRYPTION_KEY_INVALID":"Encryption key is invalid","CREDENTIAL_ENCRYPTION_KEY_MISSING":"Encryption key is missing","CREDENTIAL_ENCRYPTION_KEY_MISMATCH":"Encryption key does not match","CREDENTIAL_DATA_INVALID":"Credential data is invalid","CREDENTIAL_STORAGE_TYPE_INVALID":"Storage type is invalid","CREDENTIAL_STORE_UNAVAILABLE":"Credential store is unavailable","VAULT_CONFIGURATION_INVALID":"Vault configuration is invalid","VAULT_INSECURE_HTTP":"Vault uses plaintext HTTP","VAULT_TLS_VERIFICATION_DISABLED":"Vault certificate verification is disabled","KEYCHAIN_UNSUPPORTED_PLATFORM":"Keychain is unsupported on this host","BACKEND_MISMATCH":"Credentials use another backend"},"warnings":{"DATABASE_UNENCRYPTED":"Database credential payloads are stored as plaintext until an encryption key is configured.","CREDENTIAL_ENCRYPTION_KEY_INVALID":"CREDENTIAL_ENCRYPTION_KEY must be strict base64 encoding of exactly 32 bytes. Fix it and restart the server; plaintext fallback is disabled when an invalid key is present.","CREDENTIAL_ENCRYPTION_KEY_MISSING":"Encrypted credential rows exist, but the encryption key is missing. Restore the original key and restart the server.","CREDENTIAL_ENCRYPTION_KEY_MISMATCH":"The configured key does not match existing encrypted rows. Restore the original key and restart the server.","CREDENTIAL_DATA_INVALID":"One or more credential records contain invalid metadata and cannot be used.","CREDENTIAL_STORAGE_TYPE_INVALID":"CREDENTIAL_STORAGE_TYPE must be database, vault, or keychain.","CREDENTIAL_STORE_UNAVAILABLE":"The credential store could not be initialized. Review the server configuration and logs.","VAULT_CONFIGURATION_INVALID":"Vault cannot be initialized with the current environment variables. Review the Vault address, headers, path, and TLS settings.","VAULT_INSECURE_HTTP":"Vault traffic, secret payloads, and authentication headers are not protected in transit over HTTP.","VAULT_TLS_VERIFICATION_DISABLED":"VAULT_SKIP_VERIFY allows untrusted certificates and exposes Vault traffic to interception.","KEYCHAIN_UNSUPPORTED_PLATFORM":"macOS Keychain is available only when the Next.js host runs on macOS. The server remains available, but credential operations will fail.","BACKEND_MISMATCH":"{count} credential item(s) were recorded with another backend. Re-enter them through their owning settings forms; values are not moved or deleted automatically."}},"agents":{"title":"Agents","description":"Manage enrolled Macs and durable jobs from one control plane.","refresh":"Refresh","enroll":"Enroll agent","enrollmentTitle":"One-time enrollment command","enrollmentDescription":"Run this on the Mac after installing control-agent. The Mac connects outbound; it does not open a listening port.","serverAddress":"Server address","copy":"Copy command","copyFailed":"Could not copy the command. Select and copy it manually.","expires":"Token expires {date}","loading":"Loading agents…","emptyTitle":"No agents enrolled","emptyDescription":"Create an enrollment command to pair your first Mac.","version":"Version","platform":"Platform","lastSeen":"Last seen","never":"Never"},"usage":{"title":"Usage","description":"Review token usage and cost across every enrolled Mac.","refresh":"Refresh usage","rangeLabel":"Usage range","allData":"All data","last7Days":"7 days","last30Days":"30 days","loading":"Loading agents…","noAgents":"No agents enrolled","noAgentsDescription":"Enroll a Mac before collecting usage.","noCompatible":"No compatible agents online","noCompatibleDescription":"Update control-agent on an online Mac to add the ccusage capability.","noOnline":"No agents online","noOnlineDescription":"Connect an enrolled Mac before collecting usage.","collectionFailed":"Usage collection failed","collectionFailedDescription":"No agent returned a valid ccusage report. Review the agent errors above and try again.","zeroUsage":"No usage found","zeroUsageDescription":"The agents reported successfully, but ccusage found no daily usage.","noUsageInRange":"No usage in this range","noUsageInRangeDescription":"Choose a longer date range to see older usage.","progress":"{complete} of {total} compatible agents reported","offlineAgents":"Offline: {agents}","unsupportedAgents":"Update required: {agents}","failedAgents":"Failed: {agents}","costChartTitle":"Daily cost by model","costChartDescription":"Stacked USD usage for each day in the selected range.","totalCost":"Total cost","totalTokens":"Total tokens","inputTokens":"Input tokens","outputTokens":"Output tokens","cacheCreationTokens":"Cache creation tokens","cacheReadTokens":"Cache read tokens","usage":"Usage","input":"Input","output":"Output","cacheCreation":"Cache creation","cacheRead":"Cache read","total":"Total","cost":"Cost","grandTotal":"Grand total","unattributedTokens":"Unattributed tokens","modelCount":"{count} models","agentCount":"{count} agents","showModels":"Show models for {date}","hideModels":"Hide models for {date}","showAgents":"Show agents using {model}","hideAgents":"Hide agents using {model}"},"agentDetail":{"back":"Agents","loading":"Loading agent…","notFound":"Agent not found.","version":"Version","lastSeen":"Last seen","never":"Never","generalInformation":"General information","generalInformationDescription":"Hardware and resource usage update with each agent heartbeat.","cpuModel":"CPU model","operatingSystem":"Operating system","architecture":"Architecture","ipAddress":"IP address","memory":"Memory","disk":"Disk space","used":"Used","free":"Free","unavailable":"Unavailable","capabilities":"Capabilities","capabilitiesDescription":"Search the capabilities advertised by this agent, then expand one to invoke it and inspect its live response.","searchCapabilities":"Search capabilities","searchCapabilitiesPlaceholder":"Search capability names…","noMatchingCapabilities":"No capabilities match this search.","capability":"Capability","kind":"Kind","event":"Event","job":"Job","expandCapability":"Expand {capability}","collapseCapability":"Collapse {capability}","eventCapabilityDescription":"This event requests an immediate codebase reconciliation and does not accept a payload.","payload":"Payload (JSON object)","invoke":"Invoke capability","invokeOffline":"Connect this agent before invoking a capability.","noCapabilityResponse":"Invoke the capability to see its response.","codebases":"Codebases","codebasesDescription":"Registered codebases hosted by this agent.","noCodebases":"No codebases are registered on this agent.","repository":"Repository","status":"Status","created":"Created","finished":"Finished","selectJob":"Select {kind}","runTitle":"Run Cloudflared Tunnel","runDescription":"Starts the allow-listed cloudflared handler on this Mac. It keeps running in the agent service when you leave this page.","tunnelName":"Tunnel name","tunnelPlaceholder":"dev-tunnel","queuing":"Queuing…","run":"Run","history":"Job history","noJobs":"No jobs have run on this agent.","baseRepoDirectory":"Base repository directory","baseRepoDirectoryDescription":"Choose the folder on this agent that contains its repositories. Worktree paths inside it are shown relative to this folder.","currentDirectory":"Current directory","notConfigured":"Not configured","useDirectory":"Use this directory","clearDirectory":"Clear directory","directoryBrowsingUnavailable":"Connect this agent and update it if needed to browse directories.","derivedDataLocation":"Xcode Derived Data","derivedDataLocationDescription":"Choose where this agent stores Xcode DerivedData.","derivedDataMode":"Location mode","derivedDataDefault":"Default Xcode location","derivedDataAbsolute":"Custom absolute directory","derivedDataRelative":"Relative to every worktree","derivedDataAbsolutePath":"Absolute directory","derivedDataRelativePath":"Relative folder path","derivedDataAbsoluteHelp":"Enter an absolute path on this agent or choose an existing directory below.","derivedDataRelativeHelp":"This folder is checked beneath every active tracked worktree.","saveDerivedDataSettings":"Save Derived Data settings","buildsDirectory":"Builds directory","buildsDirectoryDescription":"Build logs, copied products, archives, and exports are stored in one folder per build. The default is the Base repository directory with /Builds appended unless overridden here.","browseBuildsDirectory":"Browse builds directory","effectiveDirectory":"Effective directory","agentDefault":"Base repository default","customBuildsDirectory":"Custom absolute directory","saveBuildsDirectory":"Save builds directory","useAgentDefault":"Use base repository default","deleteAgent":"Delete agent","deleteAgentTitle":"Delete this agent?","deleteAgentDescription":"Permanently delete {name} and all of its jobs and codebase registrations. This cannot be undone."},"buildData":{"title":"Build Data","description":"Inspect and clean up Xcode DerivedData across enrolled agents.","derivedDataTitle":"Derived Data","derivedDataDescription":"Per-project build products, indexes, logs, and shared Xcode caches.","deviceSupportTitle":"iOS Device Support","deviceSupportDescription":"Xcode symbols and support files retained for iOS versions connected to each agent.","deviceSupportVersion":"iOS version","selectAllDeviceSupport":"Select all iOS Device Support entries","noDeviceSupport":"No iOS Device Support folders were found.","deleteDeviceSupportTitle":"Delete iOS Device Support?","deleteDeviceSupportDescription":"Permanently delete {count} selected Device Support folders? Xcode can recreate them when a matching device is connected.","refresh":"Refresh","calculateSizes":"Calculate sizes","loading":"Scanning Derived Data…","emptyTitle":"No Derived Data found","emptyDescription":"No configured DerivedData directories currently contain entries.","progress":"Scanned {complete} of {total} eligible agents","selected":"{count} selected","deleteSelected":"Delete selected","selectAll":"Select all Derived Data entries","selectEntry":"Select {name}","folder":"Folder","worktree":"Worktree path","size":"Disk usage","agent":"Agent","actions":"Actions","entryActions":"Actions for {name}","deleteEntry":"Delete {name}","confirmDeleteEntry":"Confirm deletion of {name}","confirmDelete":"Confirm","delete":"Delete","deleteTitle":"Delete Derived Data?","deleteDescription":"Permanently delete {count} selected Derived Data entries? This cannot be undone.","history":"Deletion history","historyDescription":"Derived Data removed from enrolled agents during the last 90 days.","clearHistory":"Clear history","clearHistoryTitle":"Clear deletion history?","clearHistoryDescription":"Delete all retained Derived Data deletion records? This does not affect files on any agent.","loadingHistory":"Loading deletion history…","noHistory":"No Derived Data has been deleted yet.","deleted":"Deleted","sourceLabel":"Source","loadMore":"Load more","status":{"UNLINKED":"Unlinked","PENDING":"Build starting","SHARED_CACHE":"Shared cache"},"source":{"USER":"User","AUTOMATIC":"Automatic"},"agentStatus":{"QUEUING":"queuing","QUEUED":"queued","RUNNING":"scanning","SUCCEEDED":"complete","FAILED":"failed","CANCELLED":"cancelled","TIMED_OUT":"timed out","OFFLINE":"offline","UNSUPPORTED":"agent update required","INVALID":"invalid response"}},"cacheServerSettings":{"title":"Actions Cache Server","description":"Connect to a GitHub Actions Cache Server to manage its cache entries.","configured":"Configured","notConfigured":"Not configured","loading":"Loading settings…","saved":"Cache server settings saved.","connectionSucceeded":"Connected to the cache server successfully.","removed":"Cache server settings removed.","baseUrl":"Base URL","baseUrlHelp":"The management API base URL, including any path prefix.","apiKey":"API key","apiKeyPlaceholder":"Enter the cache server API key","apiKeyPlaceholderConfigured":"Leave blank to keep the current key","apiKeyHelp":"Sent as the x-api-key header on every request.","apiKeyKeepHelp":"A key is stored. Enter a new value to replace it.","headers":"Custom headers","addHeader":"Add header","headersHelp":"Header values are stored locally, sent with every cache server request, and never returned to the browser.","noHeaders":"No custom headers configured.","headerName":"Name","headerValue":"Value","headerValuePlaceholderConfigured":"Leave blank to keep the current value","removeHeader":"Remove header","remove":"Remove","confirmRemove":"Remove cache server settings?","confirmRemoveDescription":"The connection details and API key will be deleted. The Actions Cache page will be hidden until it is reconfigured.","test":"Test","save":"Save"},"cacheServer":{"title":"Actions Cache","description":"Browse and manage entries on the GitHub Actions Cache Server.","matchLookup":"Match lookup","refresh":"Refresh","close":"Close","filtersTitle":"Filters","filtersDescription":"Narrow cache entries by key, version, scope, or repository.","key":"Key","keyPlaceholder":"Cache key","version":"Version","versionPlaceholder":"Cache version","scope":"Scope","scopePlaceholder":"Ref or scope","repoId":"Repo ID","repoIdPlaceholder":"Repository ID","itemsPerPage":"Per page","deleteMatching":"Delete matching","confirmDeleteMatching":"Delete all matching entries?","confirmDeleteMatchingDescription":"Every cache entry matching the applied filters will be deleted. This action cannot be undone.","reset":"Reset","applyFilters":"Apply","entriesTitle":"Cache entries","entriesDescription":"Cache entries stored on the server.","loading":"Loading cache entries…","noEntries":"No cache entries match the current filters.","updatedAt":"Updated","actions":"Actions","viewDetails":"View details","delete":"Delete","confirmDeleteEntry":"Delete this cache entry?","edit":"Edit","doneEditing":"Done","selected":"{count} selected","selectAll":"Select all cache entries","selectEntry":"Select {name}","deleteSelected":"Delete selected","confirmDeleteSelected":"Delete {count} cache entries?","showing":"Showing {start}–{end} of {total}","previous":"Previous","next":"Next","notConfiguredTitle":"Cache server not configured","notConfiguredDescription":"Configure the GitHub Actions Cache Server on the Settings page to manage its entries.","goToSettings":"Go to Settings","detailTitle":"Cache entry","detailDescription":"The full cache entry and the storage location that backs it.","entryNotFound":"This cache entry no longer exists.","entrySection":"Entry","id":"ID","locationId":"Location ID","locationSection":"Storage location","deleteLocation":"Delete location","confirmDeleteLocation":"Delete this storage location?","confirmDeleteLocationDescription":"The storage folder and its data will be removed. This action cannot be undone.","folderName":"Folder name","partCount":"Part count","sizeBytes":"Size","mergeStartedAt":"Merge started","mergedAt":"Merged","partsDeletedAt":"Parts deleted","lastDownloadedAt":"Last downloaded","noLocation":"No storage location is linked to this entry.","matchTitle":"Match cache entry","matchDescription":"Find the entry the cache server would restore for a set of keys.","primaryKey":"Primary key","restoreKeys":"Restore keys","commaSeparated":"Comma-separated","scopes":"Scopes","matchFound":"Match found","matchTypes":{"EXACT_PRIMARY":"Exact primary","PREFIXED_PRIMARY":"Prefixed primary","EXACT_RESTORE":"Exact restore","PREFIXED_RESTORE":"Prefixed restore"},"noMatch":"No cache entry matched the provided keys.","runMatch":"Run match"},"jobs":{"back":"Agents","open":"Open job","cancel":"Cancel","loading":"Loading job…","notFound":"Job not found.","waiting":"Waiting for output…"},"jiraTickets":{"title":"Jira Tickets","description":"Browse saved Jira projects, boards, and JQL queries by status.","refresh":"Refresh","manage":"Manage","showBoardLayout":"Board layout","showTableLayout":"Table layout","collapseStatus":"Collapse {status}","expandStatus":"Expand {status}","issueType":"Issue type","priority":"Priority","loading":"Loading Jira projects…","loadingTickets":"Loading tickets…","loadingTicket":"Loading ticket details…","emptyProjects":"No Jira projects yet","emptyProjectsDescription":"Configure Jira in Settings, then add a project and its first source.","emptySources":"This project has no sources","emptySourcesDescription":"Add a named JQL query or Jira board URL to load tickets.","emptyTickets":"No tickets matched this source.","addProject":"Add project","addSource":"Add source","projectTabs":"Jira projects","sourceTabs":"Ticket sources","staleWarning":"Jira could not be reached, so this view is showing expired cached data.","truncatedWarning":"This source has more than 1,000 tickets. Refine it to see the remaining results.","issue":"Issue","unassigned":"Unassigned","manageTitle":"Manage Jira projects and sources","manageDescription":"Projects come from Jira. Each source is validated before it is saved.","projects":"Projects","availableProjects":"Available Jira projects","selectProject":"Select a project","sourceCount":"{count} sources","removeProject":"Remove project","confirmRemoveProject":"Remove this project and all of its saved sources?","sourcesFor":"Sources for {project}","displaySettings":"Display settings","displaySettingsDescription":"These settings apply only to this project.","ticketsToShow":"Tickets to show","allTickets":"All tickets","unassignedOrSelfAssigned":"Unassigned or assigned to me","selfAssignedInProgress":"My in-progress tickets","hideCompletedTickets":"Hide completed tickets","hideCompletedTicketsDescription":"Choose which project statuses count as completed.","completedStatuses":"Completed statuses","loadingStatuses":"Loading statuses…","selectCompletedStatuses":"Select completed statuses","saveDisplaySettings":"Save display settings","branchNaming":"Branch naming","branchNamingDescription":"This function is used when a worktree branch is created from a ticket in this project.","branchNamingFunction":"JavaScript branch naming function","branchNamingFunctionHelp":"Receives ticketKey, type, title, and alreadyTaken. Return a valid Git branch name; alreadyTaken is omitted on the first call.","saveBranchNaming":"Save branch naming","sourceName":"Source name","sourceType":"Source type","boardUrl":"Board URL","editSource":"Edit source","deleteSource":"Delete source","confirmDeleteSource":"Delete this source and its related cache entries?","saveSource":"Save source","cancel":"Cancel","done":"Done","ticket":"Ticket","staleTicket":"Some ticket data is stale because Jira could not be reached.","openInJira":"Open in Jira","worktreeAction":"Create worktree","ticketWorktreeTitle":"Create from {issueKey}","ticketWorktreeDescription":"Create a new worktree on an agent, or create the ticket branch and switch an existing worktree.","newWorktree":"New worktree","existingWorktree":"Existing worktree","agentAndCodebase":"Agent and codebase","selectWorktreeDestination":"Select a destination","searchWorktreeDestinations":"Search worktrees, agents, and codebases","noWorktreeDestinations":"No online, compatible destinations are available.","chooseWorktreeDestination":"Choose where the ticket branch should be created.","loadingWorktreeDestinations":"Loading worktree destinations…","ticketWorktreeCreated":"The ticket worktree was created.","ticketBranchChanged":"The ticket branch was created and the worktree switched to it.","createTicketWorktree":"Create ticket worktree","createAndSwitchBranch":"Create and switch branch","ticketStashRetryHelp":"Git could not switch with the current changes. Stash tracked and untracked changes, then retry.","stashAndRetry":"Stash and retry","detachedBranch":"Detached HEAD","descriptionTitle":"Description","classification":"Classification","labels":"Labels","components":"Components","fixVersions":"Fix versions","sprints":"Sprints","relatedIssues":"Related issues","attachments":"Attachments","comments":"Comments ({count})","noComments":"No comments on this ticket.","unknownUser":"Unknown user","assignee":"Assignee","reporter":"Reporter","created":"Created","updated":"Updated","due":"Due","resolved":"Resolved","affectedVersions":"Affected versions","openFullDetails":"Open full details","renderFormat":"Render format","markdown":"Markdown","jiraWiki":"Jira Wiki","viewRendered":"View rendered","viewRaw":"View raw","rendered":"Rendered","raw":"Raw","copied":"Copied","copy":"Copy","commentActions":"Comment actions","copyRaw":"Copy raw content","copyFailed":"Could not copy the content.","authoringFormat":"Authoring format","preview":"Preview","hidePreview":"Hide preview","commentBody":"Comment","commentPlaceholder":"Write a comment…","saving":"Saving…","addComment":"Add comment","changeAssignee":"Change assignee","searchAssignees":"Search assignable users","loadingAssignees":"Loading users…","noAssignees":"No assignable users found.","status":"Status","changeStatus":"Change status","requiresJira":"Requires Jira"},"jiraTicketDetail":{"loading":"Loading Jira ticket…","notFound":"Ticket not found","notFoundDescription":"The Jira ticket could not be loaded.","back":"Back to Jira tickets","summary":"Summary","save":"Save","editSummary":"Edit summary","refresh":"Refresh","edit":"Edit","saveDescription":"Save description","descriptionHistory":"Description history","descriptionHistoryDescription":"Select two versions from Jira activity to compare their text.","currentVersion":"Current version","beforeChange":"Before {date}","afterChange":"After {date}","loadingHistory":"Loading history…","noDescriptionHistory":"No previous description versions are available.","compareFrom":"Compare from","compareTo":"Compare to","compareVersions":"Compare versions","descriptionComparison":"Description comparison","selectVersions":"Select two different versions to compare.","activity":"Activity","comments":"Comments","history":"History","worklogs":"Worklogs","unknownUser":"Unknown user","noHistory":"No history is available.","loadMore":"Load more","started":"Started {date}","noWorklogs":"No worklogs are available.","allFields":"All Jira fields","expandFields":"Show fields","collapseFields":"Hide fields","searchFields":"Search fields","field":"Field","value":"Value","custom":"Custom","details":"Details","editDetails":"Edit ticket details","editDetailsDescription":"Only fields Jira allows you to edit are shown.","none":"None","commaSeparated":"Comma-separated values","pickDate":"Choose a date","clearDate":"Clear date","saving":"Saving…"},"jiraCache":{"title":"Jira Cache","description":"Inspect cached Jira data, API usage, latency, and errors.","ttl":"Cache TTL in minutes","saveTtl":"Save TTL","clearCache":"Clear cache","confirmClear":"Clear every Jira response and cached ticket? API call history will be kept.","loading":"Loading cache activity…","average":"Average {ms} ms","live":"Live","cache":"Cache","errors":"Errors","operationsTitle":"API operations","operationsDescription":"Counts by operation and result source for each rolling window.","noMetrics":"No Jira API activity in the last 24 hours.","operation":"Operation","recentTitle":"Recent API calls","recentDescription":"Every cached Jira SDK operation, newest first.","noCalls":"No Jira API calls have been recorded.","time":"Time","fetched":"What was fetched","source":"Source","sources":{"LIVE":"Live","CACHE":"Cache","ERROR":"Error"},"duration":"Duration","error":"Error","stale":"Stale","ticketsTitle":"Cached tickets","ticketsDescription":"Materialized summary, detail, and comment coverage for Jira issues.","noTickets":"No Jira tickets are cached.","ticket":"Ticket","status":"Status","coverage":"Coverage","freshness":"Freshness","fresh":"Fresh","lastFetched":"Last fetched","actions":"Actions","open":"Open","refresh":"Refresh","delete":"Delete","confirmDeleteTicket":"Delete {issueKey} and every cache entry that references it?","showing":"Showing {start}–{end} of {total}","previous":"Previous","next":"Next"},"jiraCacheDetail":{"back":"Jira Cache","description":"Cached Jira ticket data","refresh":"Refresh ticket","delete":"Delete from cache","confirmDelete":"Delete {issueKey} and its related cache entries?","loading":"Loading cached ticket…","notFound":"This ticket is not in the Jira cache.","coverage":"Coverage","freshness":"Freshness","fresh":"Fresh","stale":"Stale","detailFetched":"Detail fetched","commentsFetched":"Comments fetched","summaryData":"Summary response","detailData":"Full detail response","commentsData":"Complete comments response","notFetched":"This data level has not been fetched.","relatedEntries":"Related cache entries","noEntries":"No cache entries reference this ticket.","operation":"Operation","fetchedAt":"Fetched at","entryId":"Cache entry ID"},"jiraSettings":{"title":"Settings","description":"Configure the Jira Cloud account used by this application.","loading":"Loading Jira settings…","credentials":"Jira credentials","configured":"Token configured","notConfigured":"Token not configured","siteUrl":"Jira Cloud site URL","siteUrlHelp":"Use the base *.atlassian.net URL for your Jira site.","email":"Jira account email","apiToken":"Jira API token","tokenPlaceholder":"Paste an Atlassian API token","tokenPlaceholderConfigured":"Leave blank to keep the saved token","tokenHelp":"The token is stored in the local SQLite database and is never returned to the browser.","tokenKeepHelp":"Leave this blank unless you want to replace the saved token.","save":"Save settings","test":"Test connection","remove":"Remove credentials","saved":"Jira settings saved.","connectionSucceeded":"Jira connection succeeded.","removed":"Jira credentials removed and cached Jira data cleared.","confirmSiteChange":"Changing the Jira site removes all saved Jira projects, sources, and cached data. Continue?","confirmRemove":"Remove the saved email and API token and clear cached Jira data?"},"settings":{"title":"Settings","description":"Configure development tools, Apple services, and external integrations.","developmentGroup":"Development","developmentGroupDescription":"Choose the tools used with local checkouts and worktrees.","appleGroup":"Apple services","appleGroupDescription":"Manage iOS enrollment, App Store Connect, and APNs credentials.","integrationsGroup":"Integrations","integrationsGroupDescription":"Connect the Jira and GitHub accounts used throughout the application."},"editorSettings":{"title":"Worktree editor","description":"Choose which VS Code edition opens worktrees, or hide editor actions.","loading":"Loading editor settings…","label":"Editor","code":"Visual Studio Code","insiders":"Visual Studio Code - Insiders","none":"None (hide editor buttons)","save":"Save editor","saved":"Editor setting saved."},"githubSettings":{"title":"GitHub credentials","description":"Connect the account used to load pull requests and GitHub Actions.","loading":"Loading GitHub settings…","configured":"Token configured","notConfigured":"Token not configured","apiToken":"GitHub personal access token","tokenPlaceholder":"Paste a GitHub personal access token","tokenPlaceholderConfigured":"Leave blank to keep the saved token","tokenHelp":"Grant pull-request read and write access plus Actions read access in the repositories you want to use. The token is used for pull request views, review-thread actions, and workflow-run details.","tokenKeepHelp":"Leave this blank unless you want to replace the saved token.","save":"Save settings","test":"Test connection","remove":"Remove credentials","saved":"GitHub settings saved.","connectionSucceeded":"GitHub connection succeeded.","removed":"GitHub credentials removed. Managed repositories were kept.","confirmRemove":"Remove GitHub credentials?","confirmRemoveDescription":"The saved token will be removed. Managed repository and Jira regex settings will be kept."},"githubAppSettings":{"title":"GitHub App pipeline retries","description":"Use your own GitHub App to rerun GitHub Actions workflows.","loading":"Loading GitHub App settings…","verified":"Verified","notConfigured":"Not configured","setupTitle":"Set up your GitHub App","stepRegister":"Register a uniquely named GitHub App, such as “AI Environment Check Rerunner,” from","registerLink":"New GitHub App","stepHomepage":"Use","stepHomepageSuffix":" as the Homepage URL. Leave the callback URL empty and disable webhooks.","stepPermissions":"Set Repository permissions → Actions to Read and write. Metadata remains read-only automatically; Checks permission is not required.","stepInstall":"Create the app, generate a private key, then install it on only the repositories this deployment should control.","stepInstallationId":"After installation, open the app’s Configure page. The installation ID is the final number in its URL, for example","stepInstallationIdSuffix":". Replace Organization-name with your organization; copy the final ID value.","stepCredentials":"Copy the App ID and installation ID, then paste them and the downloaded PEM below.","appId":"GitHub App ID","appIdPlaceholder":"Enter the numeric App ID","installationId":"Installation ID","installationIdPlaceholder":"Enter the numeric installation ID","privateKey":"PEM private key","privateKeyDropZone":"PEM private key drop zone","pemDropHint":"Drop a .pem file here, or paste the key below.","pemFileLoaded":"Loaded {filename}. Save and verify to use this key.","pemFileInvalid":"Drop a valid .pem file containing an RSA private key.","pemFileReadError":"The dropped PEM file could not be read.","privateKeyPlaceholder":"Paste the downloaded GitHub App PEM","privateKeyPlaceholderConfigured":"Leave blank to keep the configured private key","privateKeyHelp":"The key is sent only to the Next.js server and is never returned to the browser.","privateKeyKeepHelp":"A private key is configured. Paste a replacement PEM only when rotating it.","connectedAs":"Connected to {app} on {account}","connectionDetails":"Actions: {permission}; repositories: {selection}","lastVerified":"Last verified: {date}","save":"Save and verify","rotate":"Rotate key and verify","test":"Test connection","remove":"Remove GitHub App","saved":"GitHub App saved and verified.","rotated":"GitHub App private key rotated and verified.","connectionSucceeded":"GitHub App connection verified.","removed":"GitHub App credentials removed. The personal token and managed repositories were kept.","confirmRemove":"Remove GitHub App credentials?","confirmRemoveDescription":"The App ID, installation ID, and private key will be removed. Pull request credentials and managed repositories will be kept."},"pullRequests":{"title":"Pull Requests","description":"Review your GitHub pull requests and monitored repositories in one place.","refresh":"Refresh","manage":"Manage","loading":"Loading GitHub configuration…","credentialsRequired":"Connect GitHub to view pull requests","credentialsRequiredDescription":"Add a personal access token in Settings before loading GitHub data.","openSettings":"Open Settings","tabsLabel":"Pull request views","mine":"Mine","reviewRequests":"Review requests","repositories":"Repositories","stateFilter":"Pull request state","repositoryFilter":"Repository","selectRepository":"Select a repository","searchRepositories":"Search repositories","searchAvailableRepositories":"Search available repositories","noRepositoryMatches":"No repositories match your search.","truncated":"GitHub search returns at most 1,000 results. Refine your workload on GitHub to see anything beyond this limit.","loadingPullRequests":"Loading pull requests…","loadingMore":"Loading more…","retryLoad":"Try again","empty":"No pull requests","emptyDescription":"No pull requests currently match this view.","repository":"Repository","number":"Number","pullRequest":"Pull request","pullRequestAndRepository":"Pull request / Repository","labels":"Labels","ticket":"Ticket","pipeline":"Pipeline","approval":"Approval","openComments":"Open comments","viewOpenComments":"View {count} open comments","age":"Age","actions":"Actions","details":"Details","openInGitHub":"Open in GitHub","merge":"Merge","mergePullRequest":"Merge pull request","mergePullRequestDescription":"Merge {repository} #{number} after reviewing the commit details.","loadingMergeOptions":"Checking merge requirements…","mergeType":"Merge type","selectMergeType":"Select a merge type","mergeTypes":{"SQUASH":"Squash and merge","MERGE":"Create a merge commit","REBASE":"Rebase and merge"},"commitMessage":"Commit message","commitDescription":"Commit description","commitEmail":"Commit email","githubDefaultEmail":"Use GitHub account default","cancelMerge":"Cancel","merging":"Merging…","pipelineStates":{"ACTION_REQUIRED":"Action required","CANCELLED":"Cancelled","ERROR":"Error","EXPECTED":"Expected","FAILURE":"Failed","IN_PROGRESS":"In progress","NEUTRAL":"Neutral","PENDING":"Pending","QUEUED":"Queued","SKIPPED":"Skipped","STALE":"Stale","STARTUP_FAILURE":"Startup failed","SUCCESS":"Passed","TIMED_OUT":"Timed out","NONE":"No checks"},"pipelineMenuTitle":"Pipeline status","noPipelines":"No pipeline checks were reported.","retry":"Retry","retrying":"Retrying…","retryUnavailable":{"GITHUB_APP_NOT_CONFIGURED":"Configure and verify a GitHub App in Settings to retry this workflow.","NOT_COMPLETED":"Only completed workflows can be retried.","NOT_GITHUB_ACTIONS":"Only GitHub Actions workflow runs can be retried.","WORKFLOW_RUN_UNAVAILABLE":"GitHub did not provide a workflow run for this check suite.","HISTORICAL_ATTEMPT":"Historical attempts are read-only."},"reviewStates":{"APPROVED":"Approved","CHANGES_REQUESTED":"Changes requested","REVIEW_REQUIRED":"Review required","NONE":"No decision"},"pullRequestStates":{"ALL":"All","OPEN":"Open","CLOSED":"Closed","MERGED":"Merged"},"mergeableStates":{"CONFLICTING":"Conflicts","MERGEABLE":"Mergeable","UNKNOWN":"Calculating"},"manageTitle":"Manage GitHub repositories","manageDescription":"Choose repository tabs and configure how Jira keys are parsed from pull request titles.","manageCredentialsRequired":"Configure GitHub credentials before adding repositories.","managedRepositories":"Managed repositories","noManagedRepositories":"No repositories are managed yet.","addRepository":"Add repository","browse":"Browse","enterManually":"Enter manually","privateRepository":"Private repository","managed":"Managed","add":"Add","loadingRepositories":"Loading repositories…","loadMore":"Load more","repositoryName":"Repository owner/name","jiraKeyRegex":"Jira key regex","jiraKeyRegexHelp":"The first capture group is used when present; otherwise the entire match is used. Clear this field to disable Jira key parsing.","defaultJiraKeyRegex":"Default ticket key regex","defaultJiraKeyRegexHelp":"Used for every managed repository without its own override. The first capture group is used when present.","jiraKeyRegexOverrideHelp":"Leave blank to inherit the default ticket key regex.","saveDefaultRegex":"Save default ticket key regex","invalidRegex":"Enter a valid Jira key regular expression.","done":"Done","removeRepository":"Remove repository","confirmRemoveRepository":"Remove this managed repository?","confirmRemoveRepositoryDescription":"Its pull request tab and Jira regex configuration will be removed.","saveRegex":"Save Jira regex"},"githubComments":{"title":"Comments","description":"Review and respond to GitHub review threads on your open pull requests.","refresh":"Refresh","layout":"Comments layout","cards":"Card layout","table":"Table layout","loadingConfiguration":"Loading GitHub configuration…","credentialsRequired":"Connect GitHub to view comments","credentialsDescription":"Add a personal access token with pull-request read and write access in Settings.","openSettings":"Open Settings","allPullRequests":"All open pull requests","searchPullRequests":"Search open pull requests","noPullRequestMatches":"No open pull requests match your search.","currentUser":"Current User","otherUsers":"Other Users","unresolved":"Unresolved","truncated":"GitHub search returns at most 1,000 pull requests. Some review threads may not be shown.","loading":"Loading review comments…","empty":"No review comments","emptyDescription":"No review threads match the selected pull request and filters.","reviewThreads":"Review comments","reviewThreadsDescription":"{count, plural, =0 {No review threads match the current filters.} one {# review thread matches the current filters.} other {# review threads match the current filters.}}","author":"Author","pullRequest":"Pull request","comment":"Comment","date":"Date","replies":"Replies","github":"GitHub","rendered":"Rendered","markdown":"Markdown","viewRaw":"Raw","viewRendered":"Rendered","copy":"Copy","copied":"Copied","copyFailed":"Could not copy the Markdown.","unknownAuthor":"Unknown author","fileComment":"File comment","outdated":"Outdated","resolved":"Resolved","openInGitHub":"Open in GitHub","openReplyInGitHub":"Open reply in GitHub","reply":"Reply","replyPlaceholder":"Reply with Markdown…","replyUnavailable":"GitHub does not allow this account to reply to this thread.","reopen":"Reopen thread","resolve":"Resolve thread","replying":"Replying…","sendReply":"Send reply"},"pullRequestDetail":{"back":"Pull Requests","loading":"Loading pull request details…","notFound":"Pull request not found","notFoundDescription":"This pull request is unavailable or the configured GitHub token cannot access it.","refresh":"Refresh","openInGitHub":"Open in GitHub","viewWorktree":"View Worktree","draft":"Draft","description":"Description","noDescription":"No description was provided.","comments":"Comments","noComments":"No review comments","noCommentsDescription":"This pull request does not have any review threads.","pipelines":"Pipelines","pipelineCount":"{count} pipelines and status contexts","viewAll":"View all","pipelineName":"Pipeline","pipelineStatus":"Status","pipelineDetails":"Details","viewPipeline":"View","jobCount":"{count} jobs","noJobs":"No jobs were reported for this run.","viewJob":"View {job} on GitHub","retryJob":"Retry {job}","showJobSteps":"Show steps for {job}","hideJobSteps":"Hide steps for {job}","steps":"Steps","noSteps":"No steps have been reported for this job yet.","details":"Pull request details","branches":"Branches","changes":"Changes","files":"Files changed","commits":"Commits","mergeable":"Mergeability","openComments":"Open comments","created":"Created","updated":"Updated","merged":"Merged","people":"People","author":"Author","assignees":"Assignees","unassigned":"Unassigned","unknown":"Unknown"},"actionsPage":{"title":"GitHub Actions","description":"Monitor workflow runs across registered GitHub codebases.","refresh":"Refresh","loadingConfiguration":"Loading GitHub configuration…","credentialsRequired":"Connect GitHub to view Actions","credentialsRequiredDescription":"Add a personal access token with Actions read access in Settings.","openSettings":"Open Settings","repositoryFilter":"Repository","allRepositories":"All repositories","searchRepositories":"Search repositories","noRepositoryMatches":"No repositories match your search.","branchFilter":"Branch","branchFilterPlaceholder":"Enter an exact branch name","applyBranchFilter":"Apply","clearBranchFilter":"Clear branch filter","pipelineFilter":"Pipeline","allPipelines":"All pipelines","searchPipelines":"Search pipelines","noPipelineMatches":"No pipelines match your search.","loadingRuns":"Loading workflow runs…","noCodebases":"No GitHub codebases","noCodebasesDescription":"Register a codebase with a github.com origin to view its workflow runs.","empty":"No workflow runs","emptyDescription":"GitHub did not return any workflow runs for this repository selection.","expand":"Expand","repository":"Repository","workflowRun":"Workflow run","trigger":"Trigger","status":"Status","pullRequest":"Pull request","ticket":"Ticket","worktree":"Worktree","started":"Started","duration":"Duration {duration}","actions":"Actions","runNumber":"Run #{number}","autoRetry":"Auto Retry","attempt":"Attempt {attempt}","view":"View","viewWorktree":"View","cancel":"Cancel","cancelling":"Cancelling…","forceCancel":"Force cancel","forceCancelling":"Force cancelling…","forceCancelTitle":"Force cancel this workflow run?","forceCancelDescription":"Force cancellation bypasses conditions that normally prevent GitHub from stopping this run. Use it only when normal cancellation is stuck.","keepRunning":"Keep running","showJobs":"Show jobs for {run}","hideJobs":"Hide jobs for {run}","jobs":"Jobs","jobCount":"{count} jobs","loadingJobs":"Loading jobs…","retryLoad":"Try again","noJobs":"No jobs were reported for this run.","showJobSteps":"Show steps for {job}","hideJobSteps":"Hide steps for {job}","retryJob":"Retry {job}","steps":"Steps","noSteps":"No steps have been reported for this job yet.","loadMore":"Load more","loadingMore":"Loading more…"},"githubAutomation":{"autoRetry":"Auto Retry","title":"Configure Auto Retry","description":"Automatically rerun selected GitHub Actions workflows or jobs.","loading":"Loading workflows and saved rules…","credentialsRequired":"Configure a personal access token and verify a GitHub App with Actions write access before creating Auto Retry rules.","scope":"Applies to","currentRuns":"Current runs","futureRuns":"Future runs","targets":"Pipelines and jobs","allWorkflows":"All workflows, including workflows added later","noWorkflows":"No GitHub Actions workflows were found.","mode":"Retry mode","failureMode":"Retry failures","countMode":"Retry successful runs by count","retryLimit":"Retry limit","unlimited":"Unlimited","failureStrategy":"When a failure occurs","failedJobs":"Retry failed jobs only","allJobs":"Retry all jobs","savedRules":"Saved rules","edit":"Edit rule","ruleProgress":"{retries} automatic retries across {executions} runs","pause":"Pause rule","resume":"Resume rule","delete":"Delete rule","close":"Close","save":"Save rule","limitError":"Enter a retry limit from 1 to 100.","targetRequired":"Select at least one workflow or job.","attemptSelector":"Workflow attempt","latestAttempt":"Latest — Attempt {attempt}","attempt":"Attempt {attempt}","attemptStartedBy":"Started by @{actor}","pipelines":"Pipelines","pipelineCount":"{count} GitHub Actions pipelines","pipeline":"Pipeline","status":"Status","actions":"Actions","view":"View","noJobs":"No jobs were reported for this attempt.","statuses":{"ACTIVE":"Active","PAUSED":"Paused","COMPLETED":"Completed","EXHAUSTED":"Exhausted","ERROR":"Error"},"scopes":{"WORKFLOW_RUN":"Current run","WORKTREE_BRANCH":"Worktree branch","PULL_REQUEST":"Pull request","REPOSITORY":"Repository"}},"codebases":{"title":"Codebases","description":"Track Git repositories and checkouts across every enrolled agent.","refreshAll":"Refresh all","fetchAll":"Fetch all","add":"Add codebase","groupBy":"Group codebases by","agents":"Agents","repositories":"Repositories","loading":"Loading codebases…","emptyTitle":"No codebases yet","emptyDescription":"Add an existing Git repository from an online agent.","skipped":"Skipped {count} offline, unsupported, or unavailable codebases.","fetchQueued":"Fetch started for eligible codebases.","refreshQueued":"Refresh started for eligible codebases.","online":"Online","offline":"Offline","edit":"Edit","view":"View","folder":"Folder","origin":"Origin","branch":"Branch","upstream":"Upstream","lastChecked":"Last checked","lastFetched":"Last fetched","never":"Never","unknown":"Unknown","none":"None","ahead":"Ahead {count}","behind":"Behind {count}","sync":{"IN_SYNC":"In sync","AHEAD":"Ahead","BEHIND":"Behind","DIVERGED":"Diverged","NO_UPSTREAM":"No upstream","DETACHED":"Detached","UNKNOWN":"Unknown"},"availability":{"AVAILABLE":"Available","MISSING":"Folder missing","NOT_REPOSITORY":"Not a Git repository","ORIGIN_MISMATCH":"Origin changed","ERROR":"Unavailable"},"operationRunning":"Git operation in progress…","fetch":"Fetch","addTitle":"Add a codebase","addDescription":"Browse an agent, inspect a Git repository, and confirm its origin before saving.","agent":"Agent","selectAgent":"Select an online agent","browseHome":"Browse home folder","home":"Home","showHidden":"Show hidden folders","truncated":"Only the first 1,000 folders are shown.","addFolder":"Add this folder","detached":"Detached HEAD","existingOrigin":"This origin already uses the shared name “{name}”.","name":"Repository name","repositoryDescription":"Repository description","cancel":"Cancel","confirm":"Confirm codebase","editTitle":"Edit repository details","loadingRepository":"Loading repository…","repositoryNotFound":"Repository not found","repositoryNotFoundDescription":"This logical repository may no longer have a registered checkout.","backToCodebases":"Back to codebases","repositorySharedDescription":"These details, build configurations, and allowed scripts belong to the logical repository and apply across every agent checkout and worktree.","repositoryDetails":"Repository details","repositoryDetailsDescription":"Manage settings shared by every registered checkout of this repository.","repositorySaved":"Repository details saved.","autoRetry":"Auto Retry","autoRetryDescription":"Configure durable retry rules for GitHub Actions workflows in this repository.","autoRetryGitHubOnly":"Auto Retry is available only for repositories hosted on GitHub.","skillGroups":"Skill groups","skillGroupsHelp":"Choose the project skill groups synchronized into every checkout and worktree for this repository.","noSkillGroups":"No skill groups are available.","keepBaseBranchUpToDate":"Keep base branch up to date","keepBaseBranchUpToDateHelp":"After a successful fetch, fast-forward the base branch when there are no staged changes. This repository setting applies to every agent.","save":"Save","remove":"Remove","confirmRemoveTitle":"Remove codebase registration?","confirmRemoveDescription":"The registration for {folder} will be removed. The folder and all of its files will remain untouched on the agent.","removed":"Codebase registration removed.","settings":"Settings","settingsTitle":"Codebase status settings","settingsDescription":"Set how often updated agents inspect registered folders and report Git status.","refreshInterval":"Agent refresh interval (seconds)","refreshIntervalHelp":"Choose an integer from {min} to {max}. Each agent waits this long after a scan completes. Git remotes are not contacted.","fetchInterval":"Automatic fetch interval (seconds)","fetchIntervalHelp":"Choose an integer from {min} to {max}. Each agent fetches origin when this interval is due.","defaultJiraBranchRegex":"Default Jira branch regex","jiraBranchRegex":"Jira branch regex override","jiraBranchRegexHelp":"The first capture group is used when present; otherwise the entire branch match is used.","inheritDefaultRegex":"Inherit the default regex","settingsSaved":"Agent refresh interval saved."},"codebaseDetail":{"loading":"Loading codebase…","notFound":"Codebase not found","notFoundDescription":"This codebase registration may have been removed.","back":"Back to codebases","operationQueued":"Git operation queued.","operationSucceeded":"Git operation completed.","operationFailed":"Git operation failed.","offlineReadOnly":"This agent is offline. Stored branch information is available read-only until it reconnects.","unsupportedReadOnly":"Update this agent to inspect and manage branches and stashes. Stored branch information is shown read-only.","dirty":"Uncommitted changes","refresh":"Refresh","fetch":"Fetch origin","repositorySettings":"Repository settings","origin":"Origin","currentBranch":"Current branch","upstream":"Upstream","lastFetched":"Last fetched","activeOperation":"{kind} is running…","branches":"Branches ({count})","stashes":"Stashes ({count})","iosApp":"iOS App","branchesTruncated":"Only the first 1,000 branches are shown.","localBranches":"Local branches","remoteBranches":"Remote origin branches","noLocalBranches":"No local branches found.","noRemoteBranches":"No origin branches found. Fetch origin and try again.","branchName":"Branch","branchStatus":"Status","actions":"Actions","current":"Current","default":"Default","protected":"Protected","otherWorktree":"Other worktree","localAvailable":"Local branch exists","switch":"Switch","stashAndSwitch":"Stash and switch","confirmDirtySwitchTitle":"Stash changes and switch branches?","confirmDirtySwitchDescription":"Staged, unstaged, and untracked changes will be saved in a new stash before switching to {branch}. The stash will be preserved.","checkout":"Checkout","stashAndCheckout":"Stash and checkout","confirmDirtyCheckoutTitle":"Stash changes and check out this branch?","confirmDirtyCheckoutDescription":"Staged, unstaged, and untracked changes will be saved in a new stash before checking out {branch}. The stash will be preserved.","pull":"Pull","deleteRemote":"Delete remote","confirmDeleteRemoteBranchTitle":"Delete remote branch?","confirmDeleteRemoteBranchDescription":"origin/{branch} will be permanently deleted. Any same-named local branch and worktrees will remain untouched.","delete":"Delete","cancel":"Cancel","confirmDeleteBranchTitle":"Delete local branch?","confirmDeleteBranchDescription":"Git will safely delete {branch} only if its commits are already merged. This cannot delete the current, default, or another worktree\'s branch.","noStashes":"No stashes","noStashesDescription":"This checkout does not currently have any Git stashes.","preview":"Preview","hidePreview":"Hide preview","loadingPreview":"Loading stash patch…","emptyPatch":"This stash has no text patch to display.","copyPatch":"Copy patch","patchCopied":"Patch copied","copyPatchFailed":"Could not copy the patch.","patchTruncated":"This patch was truncated at 256 KiB.","stashesTruncated":"Only the first 200 stashes are shown.","apply":"Apply","confirmDeleteStashTitle":"Delete stash?","confirmDeleteStashDescription":"{stash} will be permanently removed. Apply it first if you need to preserve its changes.","stashesTitle":"Stashes","stashMessage":"Stash","searchBranches":"Search branches","searchBranchesPlaceholder":"Filter by branch name","noMatchingBranches":"No branches match your search.","sortBranches":"Sort branches","sortByName":"Name","sortByNewestCommit":"Newest commit","searchStashes":"Search stashes","searchStashesPlaceholder":"Filter by message or selector","noMatchingStashes":"No stashes match your search."},"worktrees":{"title":"Worktrees","description":"Manage primary and linked Git worktrees across every enrolled agent.","agentOffline":"The agent is offline.","worktreeUnavailable":"This worktree is unavailable.","agentUnsupported":"Update the agent to enable iOS builds.","iosBuildNotConfigured":"Add an iOS App project and build configuration in repository settings first.","filters":"Worktree filters","searchWorktrees":"Search worktrees","searchWorktreesPlaceholder":"Search branches, agents, repositories, tickets, or codebases…","filterByAgent":"Filter by agent","allAgents":"All agents","filterByRepository":"Filter by repository","allRepositories":"All repositories","noMatchingWorktrees":"No matching worktrees","noMatchingWorktreesDescription":"Try a different search or filter.","refresh":"Refresh","fetchNow":"Fetch now","fetchStarted":"Fetch started for eligible codebases.","createWorktree":"Create worktree","worktreeCreated":"Worktree created.","repositoryCheckout":"Repository checkout","selectCodebase":"Select an agent and repository","selectCodebaseHelp":"Choose the agent checkout that will own this worktree.","searchCodebases":"Search repositories and agents","noEligibleCodebases":"No online, compatible repository checkouts are available.","newBranch":"New branch","existingBranch":"Existing branch","fromTicket":"From ticket","branchName":"Branch name","ticketKey":"Ticket key","loadingTicketBranch":"Loading ticket and branch name…","selectExistingBranch":"Select an existing branch","selectBaseBranch":"Select a base branch","searchBranches":"Search branches","noMatchingBranches":"No matching branches.","localBranch":"Local","originBranch":"Origin remote","localAndOrigin":"Local and origin","remoteDefault":"Remote default","changeBranch":"Change branch","moveToAgent":"Move to agent","moveWorktree":"Move worktree","moveDescription":"Push {branch} and check it out on another agent.","destinationAgent":"Destination agent and checkout","selectDestinationAgent":"Select a destination agent","searchDestinationAgents":"Search agents and checkouts","noMoveDestinations":"No compatible destination checkouts are available.","destinationWorktree":"Destination worktree","createDestinationWorktree":"Create a new worktree","dirtyDestinationWarning":"This destination has uncommitted changes. Git will carry them onto the incoming branch when possible.","deleteOldWorktree":"Delete old worktree after moving","deleteOldWorktreeDisabled":"Primary worktrees cannot be deleted.","moveFailed":"The worktree move failed.","moveCompleted":"Worktree moved.","moveCompletedWithWarning":"The destination is ready, but source cleanup needs attention.","moveCancelled":"Move cancelled. The source branch remains pushed and the source worktree was kept.","moveNeedsStash":"Destination changes prevent Git from switching branches.","moveStashHelp":"Stash tracked and untracked destination changes, continue the move, and leave the stash for manual restoration.","moveProgress":"Moving {branch}","stashAndContinue":"Stash and continue","cancelMove":"Cancel move","cancel":"Cancel","moveStatus":{"PUSHING":"Pushing the source branch…","CHECKING_OUT":"Checking out the destination…","AWAITING_STASH":"Waiting for a stash decision…","CLEANING_UP":"Removing the old worktree…","SUCCEEDED":"Move complete.","SUCCEEDED_WITH_WARNING":"Move complete with a cleanup warning.","FAILED":"Move failed.","CANCELLED":"Move cancelled."},"moveBlocked":{"agent":"The source agent is offline or must be updated.","busy":"Another operation is active for this repository.","detached":"A named source branch is required.","dirty":"Commit or discard source changes before moving.","behind":"Pull the origin changes before moving.","diverged":"Resolve the diverged origin branch before moving.","unknown":"The branch cannot currently be verified as safely pushable.","destination":"No compatible destination agent is currently available."},"deleteWorktree":"Delete worktree","deleteWorktreeDescription":"Permanently remove {path} and its local branch.","deleteWorktreeWarning":"All staged, unstaged, and untracked changes in this worktree will be permanently lost.","deleteRemoteBranch":"Also delete origin/{branch}","defaultRemoteProtected":"The repository default branch cannot be deleted from origin.","stashAndRetry":"Stash and retry","stashRetryHelp":"Git could not switch with the current changes. Stash tracked and untracked changes, retry, and leave the stash for manual restoration.","hidden":"Hidden ({count})","cards":"Card layout","table":"Table layout","loading":"Loading worktrees…","emptyTitle":"No worktrees found","emptyDescription":"Add a codebase and connect its agent to discover its primary and linked worktrees.","online":"Online","offline":"Offline","lastFetched":"Last fetched: {value}","neverFetched":"never","secondsAgo":"{count}s ago","branch":"Branch","path":"Path","baseBranch":"Base branch","editBase":"Edit base branch","saveBase":"Save base branch","inheritBase":"Inherit remote default","baseUnavailable":"Remote default unavailable","upstreamStatus":"Upstream status","baseStatus":"Base freshness","baseCurrent":"Current · {count} ahead","baseBehind":"{count} behind base","yes":"Yes","notUpToDate":"No · {count} commits behind base","ahead":"{count} ahead","behind":"{count} behind","diverged":"Diverged","upToDate":"Up to date","origin":"Origin","inSync":"In sync","dirty":"Dirty","branchCommits":"Commits: {count}","unpublished":"Unpublished","detached":"Detached HEAD","unknown":"Unknown","primary":"Primary","tags":"Tags","manageTags":"Manage tags","manageTagsDescription":"Create reusable global tags and choose their badge colors.","highlight":"Highlight","clearHighlight":"Clear highlight","customize":"Customize worktree","edit":"Edit","editTag":"Edit tag","createTag":"Create tag","saveTag":"Save tag","openCode":"Open in VS Code","openInsiders":"Open in VS Code Insiders","forcePush":"Force push","sync":"Sync","push":"Push","publish":"Publish","reset":"Reset","stashAll":"Stash all","stageAll":"Stage all","unstageAll":"Unstage all","confirmAction":"Confirm","operationRunning":"Operation in progress…","loadingDetails":"Loading commits and changes…","commits":"Commits ({count})","changes":"Changes ({count})","noCommits":"No commits differ from the base branch.","noChanges":"The worktree is clean.","conflicted":"Conflicted","staged":"Staged","unstaged":"Unstaged","untracked":"Untracked","truncated":"Only the first supported results are shown.","status":"Status","pullRequest":"Pull request","latestBuild":"Latest build","openInGitHub":"Open in GitHub","openDetails":"Open details","openWorktreeDetails":"Open details for {branch}","hiddenTitle":"Hidden worktrees","hiddenDescription":"Missing worktrees are retained for seven days. Rediscovery restores their saved metadata.","noHidden":"No hidden worktrees.","purge":"Purge","purgeAll":"Purge all","review":{"APPROVED":"Approved","CHANGES_REQUESTED":"Changes requested","REVIEW_REQUIRED":"Review required","NONE":"No decision"},"comments":"Comments: {count}"},"worktreeDetail":{"loading":"Loading worktree details…","notFound":"Worktree not found","notFoundDescription":"This worktree is missing, hidden, or no longer available.","back":"Back to worktrees","linked":"Linked","refresh":"Refresh","inspectionOffline":"The agent is offline. Saved worktree metadata remains available, but commits and changes cannot be inspected.","inspectionUnavailable":"This worktree is unavailable for live inspection.","inspectionBusy":"Commits and changes will refresh after the active worktree operation finishes.","inspectionUnsupported":"Update the agent to inspect commits and changes.","inspectionFailed":"Commits and changes could not be loaded.","actions":"Actions","workingTree":"Working tree","overview":"Overview","repository":"Repository","origin":"Origin","agent":"Agent","folder":"Folder","head":"HEAD commit","upstream":"Upstream","originStatus":"Origin status","baseStatus":"Base freshness","lastChecked":"Last checked","lastFetched":"Last fetched","management":"Management","branchChanges":"Branch changes","noBranchChanges":"No committed branch changes","diffTruncated":"Some changed files are not shown because the result was truncated.","codeCoverage":"Code coverage","noCoverageReports":"No worktree coverage reports have been generated.","coverageBuild":"Build","coverageStatus":"Status","coverageStatuses":{"PENDING":"Pending","READY":"Ready","FAILED":"Failed"},"overallCoverage":"Overall coverage","changedCoverage":"Changed coverage","generated":"Generated","viewReport":"View report","loadingDiff":"Loading changes…","binaryFileChanged":"Binary file changed","noTextChanges":"No textual changes","diffTooLarge":"Diff exceeds the 2 MiB display limit","diffLimit":"Diff truncated at 2 MiB.","sideBySide":"Side by side","overlap":"Overlap","imageTransparency":"Image transparency","before":"Before","after":"After","noImageSide":"No image on this side"},"tools":{"title":"Tools","description":"Browse, configure, and run built-in and external MCP tools.","addServer":"Add MCP server","search":"Search tools","searchPlaceholder":"Search tool names, descriptions, or servers…","serversTitle":"External MCP servers","serversDescription":"Manage Streamable HTTP and legacy SSE tool providers.","loadingServers":"Loading MCP servers…","noServers":"No external MCP servers are configured.","name":"Name","url":"URL","transport":"Transport","prefix":"Tool name prefix","actions":"Actions","http":"HTTP (Streamable)","sse":"SSE (legacy)","editServer":"Edit {name}","delete":"Delete","deleteServer":"Delete {name}","confirmDelete":"Delete MCP server?","confirmDeleteDescription":"Delete {name} and its saved custom headers?","catalogTitle":"Tool catalog","catalogDescription":"Expand a tool, enter its parameters, and inspect the complete response.","refresh":"Refresh tools","loadingTools":"Loading tools…","noMatchingTools":"No tools match this search.","addServerTitle":"Add external MCP server","editServerTitle":"Edit external MCP server","serverDialogDescription":"Connection details are used only by the server-side MCP client.","prefixHelp":"The prefix is applied literally when tools are displayed and invoked.","headers":"Custom headers","headersHelp":"Header values are saved locally and never returned to the browser.","addHeader":"Add header","noHeaders":"No custom headers.","headerName":"Header name","headerValue":"Header value","keepHeaderValue":"Leave blank to keep the saved value","removeHeader":"Remove header","saveServer":"Save server","toolCount":"{count} tools","tool":"Tool","toolDescription":"Description","expandTool":"Expand {name}","collapseTool":"Collapse {name}","noDescription":"No description was provided.","parameters":"Parameters","noParameters":"This tool has no parameters.","run":"Run tool","running":"Running…","response":"Response","copyResponse":"Copy response","copied":"Response copied","copyFailed":"Could not copy the response.","noResponse":"Run the tool to see its response.","selectValue":"Select a value","unset":"Unset","true":"True","false":"False","jsonArguments":"Arguments (JSON object)","invalidJson":"Enter valid JSON.","invalidJsonObject":"Enter a JSON object.","jsonObjectPlaceholder":"Enter key/value pairs as a JSON object","jsonPlaceholder":"Enter JSON, for example []"},"skills":{"title":"Skills","description":"Manage reusable AI skill packages across the database, clients, agents, and repositories.","manageGroups":"Manage groups","settings":"Settings","addSkill":"Add skill","syncAll":"Sync all","search":"Search skills","searchPlaceholder":"Search names, descriptions, groups, repositories, agents, or paths…","database":"Database","skillSource":"Skill source","databaseSkills":"Database skills","databaseSkillsDescription":"Canonical skill packages stored in the control plane.","clientSkills":"Client skills","clientSkillsDescription":"Skill packages discovered in the selected AI client.","loading":"Loading skills…","name":"Name","skillDescription":"Description","scope":"Scope","groups":"Groups","files":"Files","updated":"Updated","global":"Global","project":"Project","groupOnly":"Group only","noSkills":"No database skills match this search.","agent":"Agent","location":"Location","status":"Status","tracked":"Tracked","inSync":"In sync","toDatabase":"To database","conflict":"Conflict","noClientSkills":"No skills were discovered for this client.","settingsTitle":"Skill settings","settingsDescription":"Choose which configured clients participate and whether project groups reconcile automatically.","autoSync":"Auto-sync project skill groups","autoSyncHelp":"Keep assigned groups current in every registered checkout and worktree.","enabledTools":"Enabled AI clients","configured":"Configured","configuredAgents":"{count} configured agent(s)","notDetected":"Not detected","saveSettings":"Save settings","skillNotFound":"Skill not found.","loadingSkill":"Loading skill…","backToSkills":"Back to skills","newSkill":"New skill","editorDescription":"Edit metadata and every file in this skill package.","delete":"Delete","cancel":"Cancel","deleteSkillDescription":"Delete {name} from the database and remove its managed copies during sync?","deleteSkill":"Delete skill?","saveSkill":"Save skill","syncGlobally":"Sync globally","syncGloballyHelp":"Include this skill in personal/global client synchronization.","noGroups":"No skill groups yet.","packageFiles":"Package files","addFiles":"Add or replace package files","download":"Download","removeFile":"Remove","rename":"Rename","executable":"Executable","binaryFile":"Binary file. Download or replace it to edit its contents.","selectFile":"Select a file","duplicateFile":"A file with that path already exists.","skillGroups":"Skill groups","groupsDescription":"Bundle project-only skills and assign them to repositories.","groupsTableDescription":"Project skill groups and their assigned skills and repositories.","addGroup":"Add group","loadingGroups":"Loading skill groups…","skillsCount":"Skills","repositoriesCount":"Repositories","newGroup":"New skill group","newGroupDescription":"Create the group, then choose its skills and repositories.","createGroup":"Create group","groupNotFound":"Skill group not found.","loadingGroup":"Loading skill group…","backToGroups":"Back to skill groups","groupSettingsDescription":"Manage membership, repository assignments, and deployment.","deleteGroupDescription":"Delete {name} and remove copies no longer required by another group?","deleteGroup":"Delete skill group?","syncGroup":"Sync group","saveGroup":"Save group","groupSkills":"Skills in this group","searchSkills":"Search database skills…","groupRepositories":"Repositories using this group","searchRepositories":"Search repositories…","syncRunNotFound":"Sync run not found.","loadingSync":"Loading sync run…","syncTitle":"Skill synchronization","syncGroupName":"Synchronizing the {name} group across assigned repositories.","syncAllDescription":"Reconciling database, personal, and project skills across all agents.","applySync":"Apply sync","skipPendingClients":"Skip pending clients","unknownAgent":"Unknown agent","syncAgents":"Agent sync status","syncAgentsDescription":"Connection and synchronization status for every participating agent.","connection":"Connection","operation":"Operation","syncStatus":"Sync status","syncChanges":"Proposed changes","syncChangesDescription":"Review the changes and resolve conflicts before applying this sync.","change":"Change","resolution":"Resolution","newSharedLocation":"New shared location","chooseGroup":"Choose a skill group","useDatabase":"Use database","useTarget":"Use client copy","deleteClientCopy":"Delete client copy","editManually":"Edit manually","compareAndResolve":"Compare and resolve","skip":"Skip","scanningAgents":"Scanning enabled clients across agents…","noSyncChanges":"No skill changes are required.","manualResolution":"Manual conflict resolution","manualResolutionDescription":"Compare complete packages and edit the canonical result, including text, binary, and executable files.","startFromDatabase":"Start from database","startFromTarget":"Start from client copy","databaseVersion":"Database version","targetVersion":"Client version","resultVersion":"Canonical result","binaryPreview":"Binary file; compare size and executable metadata.","missingFile":"This version does not contain the selected file.","filePath":"File path","missingResultFile":"Add this file to the result or select another package file.","useManualVersion":"Use edited version"},"builds":{"title":"Builds","description":"Configure, run, inspect, deploy, and export iOS builds across codebases and worktrees.","build":"Build","history":"History","buildScripts":"Build Scripts","status":"Status","destination":"Destination","duration":"Duration","durationValue":"Duration {duration}","actionsLabel":"Actions","selectBuilds":"Select builds","selectBuild":"Select build {id}","selectDate":"Select all builds for {date}","deleteSelected":"Delete selected ({count})","deleteBuilds":"Delete builds","deleteBuildsTitle":"Delete {count, plural, one {build} other {# builds}}?","deleteBuildsDescription":"This permanently deletes the selected build records and their build folders.","filterStatus":"Filter builds by status","allStatuses":"All statuses","loading":"Loading builds…","emptyTitle":"No builds yet","emptyDescription":"Start a build from a worktree to create the first immutable build record.","durationSeconds":"{count} seconds","artifactCount":"{count, plural, one {# artifact} other {# artifacts}}","viewBuild":"View build","loadMore":"Load more","newScript":"New build script","noScripts":"No build scripts","noScriptsDescription":"Create reusable JavaScript hooks, then allow them for individual repositories.","defaultEnabled":"Enabled by default","preBuild":"Pre-build","postBuild":"Post-build","timeoutSeconds":"{count} second timeout","edit":"Edit","deleteScript":"Delete build script","editScript":"Edit build script","scriptDescription":"Trusted Node.js ESM hooks run from the selected worktree root with a minimal environment.","name":"Name","preBuildScript":"Pre-build JavaScript","postBuildScript":"Post-build JavaScript","preBuildScriptHelp":"Default-export a function that receives buildId, branch, destination, action, and the telemetry URL snapshot.","postBuildScriptHelp":"Default-export a function that also receives buildFolder, failed, cancelled, errorCode, error, and the same telemetry URL snapshot.","timeout":"Timeout in seconds","failureBehavior":"Failure behavior","enabledByDefault":"Preselect this script for builds","save":"Save","cancel":"Cancel","startBuild":"Start Build","startBuildDescription":"Choose one saved configuration and destination. The command runs from this worktree root.","configuration":"Configuration","configurationInvalid":"The saved source, scheme, or configuration is unavailable in this worktree.","noConfigurations":"Create a valid iOS build configuration in repository settings before starting a build.","reparse":"Reparse","action":"Action","destinationType":"Destination type","simulator":"Simulator","physicalDevice":"Physical Device","device":"Device","selectDevice":"Select a device","anySimulator":"Any iOS Simulator","anyPhysicalDevice":"Any Physical iOS Device","scripts":"Build scripts","advancedSettings":"Advanced settings","priorBuildForTesting":"Prior Build for Testing","selectPriorBuildForTesting":"Select a compatible Build for Testing","noPriorBuildForTesting":"Run a successful Build for Testing with this configuration first.","priorBuildSummary":"uses Build for Testing {id}","developmentTeam":"Development team","testPlan":"Test plan","schemeDefaultTestPlan":"Scheme default","packageResolution":"Package resolution","disablePackageRepositoryCache":"Disable package repository cache","signingStyle":"Signing style","codeSignIdentity":"Code signing identity","provisioningProfileSpecifier":"Provisioning profile","productBundleIdentifier":"Product bundle identifier","codeCoverage":"Enable code coverage","parseTestResults":"Parse test results after the build","allowProvisioningDeviceRegistration":"Allow provisioning device registration","parallelTesting":"Parallel testing","parallelTestingWorkers":"Parallel testing workers","onlyTesting":"Only test","skipTesting":"Skip tests","priorTestProductsPath":"Prior test products path","priorXctestrunPath":"Prior xctestrun path","settingsEnabled":"Enabled","settingsDisabled":"Disabled","advancedSettingsNotCaptured":"Advanced settings were not captured for this build.","generateWorktreeCoverage":"Generate code coverage","startWorktreeCoverage":"Run Worktree Coverage","startWorktreeCoverageDescription":"Run tests with coverage and measure executable lines changed in this branch and working tree.","startBuildFailed":"The build could not be started.","parseTestResultsAction":"Parse test results","retryParseTestResults":"Retry test parsing","generateCoverageReport":"Generate coverage report","retryCoverageReport":"Retry coverage report","viewCoverageReport":"View coverage report","testResults":"Test results","testResultsFailed":"Test results could not be parsed.","testTotal":"{count} tests","testPassed":"{count} passed","testFailed":"{count} failed","testSkipped":"{count} skipped","testResultFilters":"Test result filters","testFilterAll":"All ({count})","testFilterPassed":"Passed ({count})","testFilterFailed":"Failed ({count})","testFilterSkipped":"Skipped ({count})","testsWithoutSuite":"Tests without a suite","testsWithoutFile":"Tests without a file","expandTestSuite":"Expand test suite {suite}","collapseTestSuite":"Collapse test suite {suite}","expandTestFile":"Expand test file {file}","collapseTestFile":"Collapse test file {file}","testSuitePassed":"{passed} of {total} passed ({percent})","testStatus":"Result","testName":"Test","testSuite":"Suite","testBundle":"Bundle","testDuration":"Duration","coverageReport":"Code coverage report","loadingCoverageReport":"Loading coverage report…","coverageReportNotFound":"Coverage report not found","coverageReportNotFoundDescription":"Generate a coverage report from the build details page first.","backToBuild":"Back to build","overallCoverage":"Overall coverage","changedCoverage":"Changed coverage","coveredLines":"Covered lines","executableLines":"Executable lines","uncoveredLines":"Uncovered lines","changedFilesCoverage":"Coverage of changed files","allCoverageFiles":"All coverage files","expandCoverageFiles":"Expand all coverage files","collapseCoverageFiles":"Collapse all coverage files","searchCoverageFiles":"Search targets, files, or paths","searchChangedCoverageFiles":"Search changed files or paths","sortCoverageFiles":"Sort coverage files by {column}","coverageTarget":"Target","coverageFile":"File","coverage":"Coverage","changeType":"Change","allowProvisioningUpdates":"Allow provisioning updates","buildSettingOverrides":"Approved build-setting overrides (JSON)","commandPreview":"Command preview","overridesInvalid":"Build-setting overrides must be a JSON object.","advancedJsonInvalid":"Advanced settings must be valid JSON.","buildNotFound":"Build not found","buildNotFoundDescription":"This build record does not exist or is no longer available.","backToBuilds":"Back to builds","buildId":"Build ID","deleteBuild":"Delete build","deleteBuildTitle":"Delete this build?","deleteBuildDescription":"This permanently deletes the build record and its build folder.","downloadArtifact":"Download","downloadIpa":"Download IPA","installOnDevice":"Install on device","installPreparing":"Preparing download…","installRequiresHttps":"Over-the-air installation requires a public HTTPS address. Open this page over HTTPS or set PUBLIC_BASE_URL.","installNotSupportedForAppStore":"App Store Connect builds cannot be installed over the air. Export with Debugging, Release Testing, or Enterprise instead.","installMissingBundleIdentifier":"The bundle identifier is unavailable. Export the archive again to enable installation.","installOpenOnDevice":"Open this page on an iPhone or iPad to install.","installFailed":"Could not start the installation.","copyInstallLink":"Copy install link","installLinkCopied":"Install link copied","ipaBundleIdentifier":"Bundle identifier","ipaBundleVersion":"Version","cancelBuild":"Cancel build","rebuild":"Rebuild","outOfDate":"Out of date","configureBuilds":"Go to repository settings to configure builds","selectedDevices":"{count} devices","selectRunDevices":"Run devices","noCompatibleDevices":"No compatible connected destinations are available.","run":"Run","exportArchive":"Export archive","logs":"Logs","expandLogs":"Expand logs","collapseLogs":"Collapse logs","noLogs":"No log events have been reported.","scrollLogsToTop":"Scroll logs to top","scrollLogsToBottom":"Scroll logs to bottom","commandSummary":"Command summary","copyCommand":"Copy command summary","commandCopied":"Command summary copied","copyFailed":"Could not copy to the clipboard.","noScriptExecutions":"No build scripts were selected.","overview":"Overview","scheme":"Scheme","head":"Commit","startedAt":"Started","finishedAt":"Finished","artifactDirectory":"Build folder","artifacts":"Artifacts","noArtifacts":"No artifacts were captured.","runsAndExports":"Runs and exports","archiveExport":"Archive export","noRunsOrExports":"This build has not been run or exported.","exportArchiveDescription":"Export the captured .xcarchive locally without uploading it.","distributionMethod":"Distribution method","exportMethod":{"DEBUGGING":"Debugging","RELEASE_TESTING":"Release Testing","ENTERPRISE":"Enterprise","APP_STORE_CONNECT":"App Store Connect"},"selectTeam":"Select a team","noTeams":"No development teams were found on the build agent.","signingCertificate":"Signing certificate","certificateAutomatic":"Chosen automatically","certificateMayNotMatch":"May not match selected profiles","provisioningProfiles":"Provisioning profiles","parseProvisioningProfiles":"Parse project","reparseProvisioningProfiles":"Parse again","parseProvisioningProfilesHelp":"Read the selected scheme’s signable targets and match installed profiles.","parseProvisioningProfilesEmpty":"Parse the project to replace JSON with one profile selector per app and extension.","noSigningRequirements":"No signable app or extension targets were found.","selectSigningSourceFirst":"Select an Xcode source, scheme, and configuration first.","selectProfile":"Select a profile","profileMayNotMatch":"May not match this bundle","manualBundleIdentifier":"Bundle identifier to add","manualBundleIdentifierPlaceholder":"com.example.app.extension","manualBundleIdentifierHelp":"Add any bundle identifier that parsing missed, then choose from every available profile.","addBundleIdentifier":"Add bundle identifier","removeBundleIdentifier":"Remove {bundleId}","showAllProfiles":"Show all","showMatching":"Show matching","noMatchingProfiles":"No installed profile matches this bundle for the selected method.","noArchiveBundles":"No signable bundles were found in the archive.","profileExpired":"expired","signingOptionsFailed":"Could not read signing options from the agent.","automatic":"Automatic","manual":"Manual","autoExport":"Automatically export successful archives","exportWhenComplete":"Export when complete","uploadSymbols":"Upload symbols","manageBuildNumber":"Manage app version and build number","internalTestFlightOnly":"Internal TestFlight only","stripSwiftSymbols":"Strip Swift symbols","thinning":"App thinning","iCloudEnvironment":"iCloud container environment","distributionBundleIdentifier":"Distribution bundle identifier","localExportOnly":"Exports are written locally as an IPA. These settings never upload to App Store Connect.","signingAssetCoverageWarning":"This identity is installed on {installed} of {total} signing-capable agents. Builds assigned elsewhere may fail to export.","iosApp":"iOS App","parseCheckout":"Checkout used for parsing","parseCheckoutDescription":"Saved configurations are repository-wide. Source discovery, validation, and parse status use the selected agent checkout.","checkoutUnavailable":"unavailable","addIosProject":"Add iOS App project","addIosProjectDescription":"Enable reusable Xcode build configurations for every checkout and worktree of this repository.","sharedProjectDescription":"Project definitions and allowed scripts are shared by the repository. Parse status below comes from this agent checkout.","buildConfigurations":"Build configurations","newConfiguration":"New configuration","lastParsed":"Parsed {value}","neverParsed":"Never parsed","stale":"stale metadata","savedValueUnavailable":"saved value unavailable","deleteConfiguration":"Delete build configuration","allowedScripts":"Allowed build scripts","createScriptsOnBuildsPage":"Create reusable scripts on the Builds page, then return here to allow them.","editConfiguration":"Edit build configuration","configurationDescription":"Select a repository-relative Xcode source and save its scheme, configuration, action, and optional advanced settings.","icon":"Icon","configurationIcons":{"none":"No icon","apple":"Apple","app-window":"App window","archive":"Archive","beaker":"Experiment","box":"Box","bug":"Bug","code":"Code","gauge":"Performance","hammer":"Build","layers":"Layers","package":"Package","play":"Run","rocket":"Release","shield":"Security","smartphone":"Mobile app","sparkles":"Feature","terminal":"Command line","test-tube":"Tests","wrench":"Tools"},"source":"Xcode source","selectSource":"Select a project, workspace, or root Package.swift","loadingSources":"Discovering sources…","defaultAction":"Default action","advancedJson":"Normalized advanced settings (JSON)","statuses":{"QUEUED":"Queued","PREPARING":"Preparing","RUNNING":"Running","SUCCEEDED":"Succeeded","FAILED":"Failed","CANCELLED":"Canceled"},"parseStatuses":{"UNPARSED":"Not parsed","PARSING":"Parsing","VALID":"Valid","INVALID":"Invalid","ERROR":"Error"},"actions":{"BUILD":"Build","TEST":"Test","ANALYZE":"Analyze","ARCHIVE":"Archive","BUILD_FOR_TESTING":"Build for testing","TEST_WITHOUT_BUILDING":"Test without building"},"failureBehaviors":{"FAIL_BUILD":"Fail the build","CONTINUE":"Continue with a warning"}},"devices":{"title":"Devices","description":"Enroll iPhones and iPads, review connection history, and register approved devices with Apple.","export":"Export Apple TSV","addDevice":"Add device","filterStatus":"Filter devices by status","allStatuses":"All statuses","sort":"Sort devices","sortOption":{"NEWEST":"Newest enrollment","NAME":"Device name","LAST_SEEN":"Last seen"},"loading":"Loading devices…","emptyTitle":"No devices enrolled","emptyDescription":"Create an enrollment profile on an iPhone or iPad to collect its identifier.","device":"Device","statusLabel":"Status","hardware":"Product","lastIp":"Last IP","enrolled":"Enrolled","registered":"Apple registration","lastSeen":"Last seen","viewDevice":"View {name}","unavailable":"Unavailable","status":{"PENDING":"Pending","REGISTERING":"Registering","REGISTERED":"Registered","REGISTRATION_FAILED":"Registration failed","REJECTED":"Rejected"},"back":"Back to devices","enrollTitle":"Enroll an iOS device","enrollDescription":"Install a temporary signed profile to send this device’s development identifier securely.","httpsRequired":"Enrollment is disabled because this address is not public HTTPS. Use a publicly trusted HTTPS reverse proxy or configure PUBLIC_BASE_URL.","collectedTitle":"Information collected","collectUdid":"The device UDID used for Apple development registration.","collectProduct":"The Apple product model reported by iOS.","collectVersion":"The installed iOS or iPadOS version.","collectIp":"The IP address observed during profile download and response, including which proxy header supplied it.","deviceLabel":"Device label","deviceLabelPlaceholder":"For example, iPhone","deviceLabelHelp":"Choose a recognizable label. Apple’s profile service cannot read the name assigned in Settings.","consent":"I consent to collection and storage of the device identifier, product, software version, and observed IP addresses for device management.","downloadProfile":"Download enrollment profile","notFound":"This device was not found.","rebuildWarning":"This device is registered with Apple. Existing IPAs do not gain access automatically; create a new provisioning profile and export a new IPA.","openBuilds":"Open Builds","configureAppleFirst":"Configure and verify App Store Connect credentials before registering this device.","openSettings":"Open Settings","generalInformation":"General information","deviceModel":"Device model","saveName":"Save label","udid":"Device UDID","hideUdid":"Hide device UDID","revealUdid":"Reveal device UDID","copyUdid":"Copy device UDID","osVersion":"Software version","appleDeviceId":"Apple resource ID","retryRegistration":"Retry registration","registerWithApple":"Register with Apple","reject":"Reject","delete":"Delete","ipHistory":"IP history","ipAddress":"IP address","source":"Enrollment step","forwardedBy":"Address header","observed":"Observed","noIpHistory":"No IP observations are stored for this device.","ipSource":{"PROFILE_DOWNLOAD":"Profile download","PROFILE_RESPONSE":"Profile response"},"ipHeaderSource":{"CLOUDFLARE":"Cloudflare (CF-Connecting-IP)","FORWARDED":"Proxy (X-Forwarded-For)","REAL_IP":"Origin proxy (X-Real-IP)"},"enrollmentHistory":"Enrollment history","noEnrollmentHistory":"No enrollment attempts are stored for this device.","firmwareTitle":"iOS firmware","firmwareDescription":"Firmware versions and current signing status provided by IPSW.me.","firmwareLoading":"Loading firmware information…","firmwareLoadFailed":"Firmware information could not be loaded: {error}","signingStatus":"Signing status","firmwareVersion":"Version","releaseDate":"Release date","fileSize":"Size","firmwareDownload":"Download","signed":"Signed","unsigned":"Unsigned","downloadFirmware":"Download","copyFirmwareUrl":"Copy download URL for iOS {version}","noFirmware":"No firmware information is available for this device.","created":"Created","completed":"Completed","failure":"Failure","enrollmentStatus":{"ISSUED":"Issued","DOWNLOADED":"Downloaded","COMPLETED":"Completed","EXPIRED":"Expired","FAILED":"Failed"},"registerTitle":"Register this device with Apple?","registerDescription":"The device will be reconciled by UDID and then added to your Apple Developer account if needed. This does not rebuild an IPA.","confirmRegister":"Register device","rejectTitle":"Reject this device?","rejectDescription":"The device remains in local history and cannot be registered. Delete it locally and enroll it again if you want to reconsider it.","confirmReject":"Reject device","deleteTitle":"Delete this device?","deleteDescription":"This deletes the local device, enrollment attempts, and IP history. Apple’s annual device registration is not removed.","confirmDelete":"Delete device"},"iosDeviceSettings":{"title":"iOS device enrollment","description":"Configure signed enrollment profiles and optional Apple device registration.","loading":"Loading iOS device settings…","unavailable":"Unavailable","profileTitle":"Enrollment profile","profileDescription":"These values identify the temporary profile shown in iOS Settings.","signerReady":"Signer ready","signerNotGenerated":"Signer not generated","organizationName":"Organization name","profileIdentifier":"Profile identifier","signerCreated":"Created {date}","signerExpires":"Expires {date}","unverifiedWarning":"The generated certificate is self-signed, so iOS shows the profile as Unverified. Review the displayed organization before installing it.","regenerateSigner":"Regenerate signer","regenerateTitle":"Regenerate the profile signer?","regenerateDescription":"New enrollment profiles will use a new private key and certificate. Profiles already downloaded can still return their device response until their token expires.","saveProfile":"Save profile settings","profileSaved":"Enrollment profile settings saved.","signerRegenerated":"A new profile signer was generated.","appleTitle":"App Store Connect Devices API","appleDescription":"Use an API key with Certificates, Identifiers & Profiles access. The private key is stored server-side and never returned to the browser.","verified":"Verified","notVerified":"Not verified","issuerId":"Issuer ID","keyId":"Key ID","privateKey":"App Store Connect .p8 private key","p8DropZone":"App Store Connect private key drop zone","p8DropHint":"Paste the key below, drop a .p8 file here, or choose a file.","chooseP8":"Choose App Store Connect .p8 file","privateKeyPlaceholder":"-----BEGIN PRIVATE KEY-----","privateKeyConfiguredPlaceholder":"A private key is stored. Leave blank to keep it.","privateKeyHelp":"Only ES256 PKCS#8 keys downloaded from App Store Connect are accepted.","privateKeyKeepHelp":"Leave this blank to keep the stored key, or provide a new .p8 key to replace it.","lastVerified":"Credentials verified {date}","lastTestFailed":"Credential test failed {date}","clear":"Clear credentials","clearTitle":"Clear App Store Connect credentials?","clearDescription":"Device registration will be disabled until another API key is saved and verified.","retest":"Retest","saveAndVerify":"Save and verify","appleSaved":"App Store Connect credentials saved and verified.","appleTestSucceeded":"App Store Connect credentials verified successfully.","appleCleared":"App Store Connect credentials cleared.","p8Invalid":"Choose a valid .p8 file containing a PKCS#8 private key.","p8ReadError":"The selected .p8 file could not be read.","p8Loaded":"Loaded {filename}. Save and verify to use this key."},"telemetry":{"consoleTitle":"Console Logs","consoleDescription":"Inspect searchable console output collected from builds and devices.","analyticsTitle":"Analytics Events","analyticsDescription":"Inspect product analytics events and their parameters as they arrive.","unifiedTitle":"Unified View","unifiedDescription":"Review console logs and analytics events in one live timeline.","separator":"Separator","deleteSeparator":"Delete separator {name}","settings":"Settings","refresh":"Refresh","search":"Search telemetry","searchPlaceholder":"Search text, glob, or regex","searchMode":"Search mode","searchModes":{"text":"Text","glob":"Glob","regex":"Regex"},"caseSensitive":"Case sensitive","filters":"Filters","columnsAction":"Columns","removeColumn":"Remove {column} column","export":"Export","edit":"Edit","done":"Done","on":"on","off":"off","allCollection":"All","consoleCollection":"Console","analyticsCollection":"Analytics","count":"{matching} of {total}","allResultsSelected":"All matching rows selected","selectedCount":"{count} selected","clearSelected":"Clear selected","clearAll":"Clear all","confirmClearRecords":"Clear records","confirmClearWithSeparators":"Clear with separators","clearBeforeSeparator":"Clear before latest separator","confirmClearBefore":"Confirm clear before separator","cancel":"Cancel","selectAll":"Select all matching rows","expand":"Expand row","collapse":"Collapse row","selectRow":"Select row","selectDay":"Select all rows for {day}","selectSeparator":"Select rows above {name}","loading":"Loading telemetry…","empty":"No matching telemetry.","loadMore":"Load more","highlight":"Highlight","clearHighlight":"Clear highlight","advancedFilters":"Advanced filters","advancedFiltersDescription":"Combine reusable conditions across standard fields and parameter paths.","match":"Match","allConditions":"All conditions","anyCondition":"Any condition","filterField":"Filter field","operator":"Operator","removeCondition":"Remove condition","filterValue":"Value","appliesTo":"Applies to","console":"Console","analytics":"Analytics","addCondition":"Add condition","savedFilters":"Saved filters","noSavedFilters":"No saved filters.","load":"Load","delete":"Delete","filterName":"Filter name","saveFilter":"Save filter","updateFilter":"Update filter","editSavedFilter":"Edit {name}","applyFilters":"Apply filters","clearFilters":"Clear filters","manageColumns":"Manage columns","manageColumnsDescription":"Choose, order, reset, and save the columns used by this view.","availableColumns":"Available columns","resetColumns":"Reset columns","columnPresets":"Column presets","noColumnPresets":"No column presets.","default":"Default","setDefault":"Set as default","presetName":"Preset name","setAsDefault":"Set as default","savePreset":"Save preset","updatePreset":"Update preset","editPreset":"Edit {name}","saveAs":"Save as","applyColumns":"Apply columns","telemetrySettings":"Observability settings","apiHelp":"API help","consoleApiHelpTitle":"Send console logs","analyticsApiHelpTitle":"Send analytics events","apiHelpDescription":"Review the REST ingestion contract and copy a ready-to-use Markdown reference.","copyMarkdownDocs":"Copy Markdown docs","markdownDocsCopied":"Markdown copied","settingsDescription":"Configure auto-detected and overridden ingestion origins shared by every view.","localBaseUrl":"Local base URL","remoteBaseUrl":"Remote base URL","override":"Override","detected":"Detected: {value}","effective":"Effective: {value}","localConsoleEndpoint":"Local console endpoint","localAnalyticsEndpoint":"Local analytics endpoint","remoteConsoleEndpoint":"Remote console endpoint","remoteAnalyticsEndpoint":"Remote analytics endpoint","copyEndpoint":"Copy {label}","clearValues":"Clear values","noValues":"No values","copyColumnValue":"Copy {label}: value","copyValue":"Copy value","filterByValue":"Filter by value","copyJsonDictionary":"Copy JSON dictionary","copyPathValues":"Copy path: value","copyParameterValue":"Copy {key}: value","addColumn":"Add {key} column","filterParameter":"Filter by {key}","saveSettings":"Save settings","addSeparator":"Add separator","addSeparatorDescription":"Insert a shared timeline boundary. The name is optional.","optionalName":"Optional name","exportTitle":"Export telemetry","exportSelectedDescription":"Export the {count} selected rows.","exportAllDescription":"Export every row matching the current search and filters.","format":"Format","exportFields":"Fields","exportFailed":"Export failed. Try again.","columns":{"time":"Time","source":"Source","level":"Level","category":"Category","message":"Message","buildId":"Build ID","sessionId":"Session ID","deviceIp":"Device IP","receivedAt":"Received","attributes":"Attributes","kind":"Kind","levelKind":"Level / Kind","name":"Name","screenName":"Screen Name","parameters":"Parameters","defaultParameters":"Default Parameters","additionalParameters":"Additional Parameters","detail":"Detail","attribute":"Attribute","defaultParameter":"Default","additionalParameter":"Additional"},"operators":{"CONTAINS":"contains","DOES_NOT_CONTAIN":"does not contain","IS":"is","IS_NOT":"is not","MATCHES_GLOB":"matches glob","MATCHES_REGEX":"matches regex","NO_REGEX_MATCH":"no regex match","IS_EMPTY":"is empty","IS_NOT_EMPTY":"is not empty"}},"provisioningProfiles":{"title":"Provisioning Profiles","description":"Inspect, sync, import, and remove Apple signing assets across build agents and the Apple Developer portal.","refresh":"Refresh inventory","refreshProgress":"Refreshing inventory: {complete} of {total} agents finished.","noRefreshAgents":"No signing-capable agents are available to refresh.","refreshStatus":{"QUEUED":"Queued","RUNNING":"Scanning","SUCCEEDED":"Complete","FAILED":"Failed","CANCELLED":"Cancelled","TIMED_OUT":"Timed out"},"agents":"Target agents","agentsDescription":"Older agents remain visible but cannot receive signing operations until they are updated.","unsupported":"Unsupported","uploadProfile":"Install a provisioning profile","uploadProfileDescription":"Install one .mobileprovision on every selected agent.","chooseMobileprovision":"Choose .mobileprovision","importIdentity":"Import a signing identity","importIdentityDescription":"Send an encrypted .p12 through one-time target-bound claims and import it for codesign.","passphrase":".p12 passphrase","chooseP12":"Choose encrypted .p12","localProfiles":"Local profiles","localCertificates":"Local identities","applePortal":"Apple portal","profilesDescription":"Profiles are grouped across agents by UUID and content hash.","deleteExpired":"Delete expired","deleteExpiredDescription":"Remove all expired local provisioning profiles from the selected agents?","name":"Name","bundleId":"Bundle ID","type":"Type","team":"Team","devices":"Devices","expires":"Expires","installedAgents":"Installed agents","expired":"Expired","syncMissing":"Sync to missing","viewProfile":"View details for {name}","download":"Download profile","delete":"Delete","deleteProfile":"Delete provisioning profile?","deleteProfileDescription":"Remove this profile from every listed agent. Xcode-managed profiles may be downloaded again.","fingerprints":"Fingerprints","privateKey":"Private key","available":"Available","missing":"Missing","deleteIdentity":"Delete signing identity?","deleteIdentityDescription":"Delete this identity and its private key from each listed agent login keychain.","portalProfiles":"Portal profiles","portalCertificates":"Portal certificates","createPortalProfile":"Create portal profile","createPortalProfileDescription":"Creates a profile from an existing bundle ID, certificate, and all applicable registered devices. Private keys are never generated.","profileName":"Profile name","selectBundleId":"Select bundle ID","selectCertificate":"Select certificate","create":"Create","confirmPortalDelete":"Confirm Apple portal change","portalDeleteDescription":"This immediately changes the Apple Developer account and can break signing on other machines.","none":"None found.","operations":"Recent operations","certificatesDescription":"Code-signing identities grouped by certificate fingerprint across agents.","noLocalProfiles":"No local provisioning profiles found.","noLocalCertificates":"No local signing identities found.","loadingPortal":"Loading Apple Developer resources…","loadingProfile":"Loading provisioning profile…","backToProfiles":"Back to provisioning profiles","profileNotFound":"This provisioning profile is no longer installed on an agent.","profileDetails":"Profile details","platforms":"Platforms","created":"Created","acceptedCertificates":"Accepted certificate fingerprints","provisionedDevices":"Provisioned devices","provisionedDevicesDescription":"This profile contains {count} device identifiers.","deviceListPendingRefresh":"Refresh signing inventory to load the device identifiers stored in this profile.","noProvisionedDevices":"This distribution profile is not restricted to individual devices.","device":"Device","udid":"Device UDID","status":"Status","unknownDevice":"Not enrolled in this app"},"apnsDevices":{"title":"APNs Devices","description":"App and MDM push-token registrations available for notification targeting.","loading":"Loading APNs devices…","empty":"No apps have registered an APNs token yet.","device":"Device / app","topic":"Topic","environment":"Environment","pushTypes":"Push types","token":"Masked token","status":"Status","lastRegistration":"Last registration","lastSend":"Last send","rename":"Rename","renameDescription":"Choose a label that makes this registration easy to target.","displayName":"Display name","save":"Save","activate":"Activate","deactivate":"Deactivate","delete":"Delete","deleteTitle":"Delete APNs registration?","deleteDescription":"Delete this token registration and detach it from retained delivery history?","apiHelp":"API help","apiHelpTitle":"Register an APNs device","apiHelpDescription":"POST strict JSON to the public registration endpoint. Tokens may be HEX or Base64; MDM registrations also require pushMagic."},"pushSettings":{"title":"Push Notifications","tokenAuthentication":"Token authentication (.p8)","tokenDescription":"Recommended for apps, Live Activities, VoIP, and other non-MDM push types.","configured":"Configured","notConfigured":"Not configured","teamId":"Team ID","keyId":"Key ID","chooseP8":"Drop or choose the APNs .p8 key","replaceP8":"Drop a new .p8 to rotate the key","p8Ready":".p8 ready to save","remove":"Remove","removeToken":"Remove APNs token key?","removeTokenDescription":"Pushes using token authentication will stop until a replacement .p8 is configured.","save":"Save","certificateAuthentication":"Certificate authentication (.p12)","certificateDescription":"Multiple topic-bound certificates are supported and are required for MDM wake-ups.","name":"Credential name","topic":"Topic","environment":"Environment","chooseP12":"Choose encrypted .p12","p12Ready":".p12 ready to save","passphrase":".p12 passphrase","addCertificate":"Add certificate","expires":"Expires {date}","lastTested":"Last tested {date}","retest":"Retest","removeCertificate":"Remove APNs certificate?","removeCertificateDescription":"Sends using this certificate will fail after it is removed."},"pushNotifications":{"title":"Push Notifications","description":"Compose, validate, target, queue, and inspect Apple push notifications.","editor":"Notification editor","editorDescription":"APNs payload shape, headers, byte limits, and eligible devices update with the selected push type.","presetName":"Preset name","savePreset":"Save current","presetSaved":"Preset saved.","content":"Content","headers":"Headers","advanced":"Advanced aps","specialized":"Specialized","pushType":"Push type","titleField":"Title","subtitle":"Subtitle","body":"Body","badge":"Badge","sound":"Sound","category":"Category","threadId":"Thread ID","contentAvailable":"Content available","mutableContent":"Mutable content","criticalSound":"Critical sound","soundVolume":"Sound volume","topic":"APNs topic","priority":"Priority","apnsId":"APNs ID","expiration":"Expiration","collapseId":"Collapse ID","certificateCredential":"Certificate credential","selectCredential":"Select certificate","titleLocKey":"Title localization key","titleLocArgs":"Title localization arguments","subtitleLocKey":"Subtitle localization key","subtitleLocArgs":"Subtitle localization arguments","bodyLocKey":"Body localization key","bodyLocArgs":"Body localization arguments","launchImage":"Launch image","summaryArg":"Summary argument","summaryArgCount":"Summary argument count","targetContentId":"Target content ID","interruptionLevel":"Interruption level","relevanceScore":"Relevance score","customJson":"Custom root JSON","timestamp":"Timestamp","event":"Event","attributesType":"Attributes type","contentState":"Content state JSON","attributes":"Attributes JSON","staleDate":"Stale date","dismissalDate":"Dismissal date","inputPushToken":"Request an input push token","mdmHelp":"MDM uses the selected certificate and each registration’s PushMagic. Its payload contains mdm only and no aps dictionary.","specializedHelp":"Use Custom root JSON for the framework-specific {type} application payload; APNs headers and limits are still validated.","payloadPreview":"Live JSON preview","recipients":"Recipients","directDevices":"Direct device tokens","directToken":"One-off Live Activity token","liveActivityToken":"Live Activity push token","allEligibleDevices":"All eligible devices ({count})","selectedDevices":"{count} devices selected","searchDevices":"Search devices…","noEligibleDevices":"No compatible active registrations.","saveDraft":"Save draft","draftSaved":"Draft saved to history.","send":"Send","queued":"Push batch queued.","broadcastChannels":"Live Activity broadcast channels","broadcastDescription":"Channel storage policy is immutable after creation.","bundleId":"Bundle ID","noStorage":"No storage","mostRecent":"Most recent message","createChannel":"Create channel","deleteChannel":"Delete broadcast channel?","deleteChannelDescription":"Delete this channel. Existing presets and history keep only its identifier.","delete":"Delete","history":"History","presets":"Presets","created":"Created","deliveryMode":"Delivery","result":"Success / failure","status":"Status","payload":"Payload","attempts":"attempts","load":"Load into editor","saveAsPreset":"Save as preset","presetFromHistory":"History","resend":"Resend","deleteHistory":"Delete history item?","deleteHistoryDescription":"Delete this batch, its payload snapshot, and recipient outcomes.","clearHistory":"Clear all history","clearHistoryDescription":"Delete every completed send and draft? Active batches are preserved.","name":"Name","updated":"Updated","loadEdit":"Load / edit","deletePreset":"Delete preset?","deletePresetDescription":"Delete this reusable payload and header preset.","historyDescription":"Sent batches, drafts, and per-recipient APNs outcomes.","presetsDescription":"Reusable notification content and headers; recipients are selected when sending.","noHistory":"No push notification history yet.","noPresets":"No push notification presets saved yet."},"status":{"online":"Online","offline":"Offline","queued":"Queued","running":"Running","succeeded":"Succeeded","failed":"Failed","cancelled":"Cancelled","timed_out":"Timed out"}}')}];
|
|
1
|
+
module.exports=[845983,(a,b,c)=>{b.exports=JSON.parse('{"metadata":{"title":"AI Development Environment","description":"An AI-focused development environment."},"common":{"cancel":"Cancel","continue":"Continue","cannotBeUndone":"This action cannot be undone."},"shell":{"productName":"AI Development Environment","welcome":"Welcome","dashboard":"Dashboard","navigation":"Navigation","navigationDescription":"Primary navigation for AI Development Environment.","notifications":"Notifications","notificationsDescription":"Notification updates and alerts.","showNavigation":"Show navigation","hideNavigation":"Hide navigation","closeNavigation":"Close navigation","showNotifications":"Show notifications","hideNotifications":"Hide notifications","closeNotifications":"Close notifications","codebases":"Codebases","worktrees":"Worktrees","buildData":"Build Data","builds":"Builds","provisioningProfiles":"Provisioning Profiles","devices":"Devices","pushNotifications":"Push Notifications","agents":"Agents","usage":"Usage","github":"GitHub","pullRequests":"Pull Requests","actions":"Actions","comments":"Comments","actionsCache":"Actions Cache","jira":"Jira","tickets":"Tickets","cache":"Cache","system":"System","skills":"Skills","tools":"Tools","debugging":"Debugging","consoleLogs":"Console Logs","analyticsEvents":"Analytics Events","unifiedEvents":"Unified View","credentials":"Credentials","settings":"Settings"},"notifications":{"title":"Notifications","description":"Review notification history and choose how each event reaches you.","deliverySetup":"Browser delivery","deliverySetupDescription":"Browser permission and Web Push subscription are configured separately for this browser.","browserAlerts":"Browser alerts","browserUnsupported":"Browser alerts are not supported here.","enabled":"Enabled","enable":"Enable","webPush":"Web Push","pushUnsupported":"Web Push requires a supported browser and a secure HTTPS context.","pushSubscribed":"This browser is subscribed.","pushNotSubscribed":"This browser is not subscribed.","subscriptionCount":"{count, plural, one {# subscribed browser} other {# subscribed browsers}}","subscribedBrowsers":"Subscribed browsers","subscribedBrowsersDescription":"Send a test notification or remove browsers that should no longer receive Web Push.","browser":"Browser","pushService":"Push service","locale":"Locale","lastSeen":"Last seen","actions":"Actions","noSubscribedBrowsers":"No browsers are subscribed to Web Push.","current":"Current","test":"Test","testSent":"Sent","remove":"Remove","removeBrowser":"Remove {browser}","removeBrowserTitle":"Remove this subscribed browser?","removeBrowserDescription":"This browser will stop receiving Web Push notifications. It can subscribe again later.","unknownBrowser":"Unknown browser","subscribe":"Subscribe","unsubscribe":"Unsubscribe","permissionRequired":"Notification permission is required for Web Push.","pushKeyUnavailable":"The Web Push public key is unavailable.","pushSubscriptionInvalid":"The browser returned an invalid push subscription.","iosInstallHelp":"On iPhone or iPad, install this app from Share → Add to Home Screen before subscribing to Web Push.","preferences":"Notification types","preferencesDescription":"Channels are independent. Enabling Browser and Web Push can produce both alerts.","notificationType":"Type","sidebarChannel":"Sidebar","browserChannel":"Browser","pushChannel":"Web Push","toggleChannel":"Toggle {channel} for {type}","history":"History","historyCount":"{count, plural, one {# notification} other {# notifications}}","historyEmpty":"No notifications yet.","notification":"Notification","channels":"Channels","received":"Received","edit":"Edit","done":"Done","deleteSelected":"Delete selected","deleteAll":"Delete all","deleteAllTitle":"Delete all notification history?","deleteAllDescription":"This permanently deletes every notification from the database and cannot be undone.","selectedCount":"{count, plural, one {# selected} other {# selected}}","allSelected":"All notifications selected","selectAll":"Select all notifications","selectDay":"Select notifications from {day}","selectNotification":"Select {title}","dismiss":"Dismiss","dismissOne":"Dismiss {title} from the sidebar","openBuild":"Open build","openWorktree":"Open worktree","delete":"Delete","confirmDelete":"Confirm delete","mute":"Mute notification sounds","unmute":"Turn on notification sounds","clearAll":"Clear all","clearSidebar":"Clear sidebar","clearSidebarTitle":"Clear the notification sidebar?","clearSidebarDescription":"Notifications will be dismissed from the sidebar but remain in notification history.","sidebarEmpty":"No new notifications.","cancel":"Cancel","permissions":{"default":"Permission has not been requested.","granted":"Permission granted for this browser.","denied":"Permission is blocked in browser settings."},"types":{"IOS_BUILD_SUCCEEDED":{"title":"iOS build succeeded","description":"An iOS build finishes successfully."},"IOS_BUILD_FAILED":{"title":"iOS build failed","description":"An iOS build finishes with a failure."}},"categories":{"BUILDS":"Builds"}},"credentialEncryption":{"title":"Database credentials are not encrypted","description":"Secrets stored in the application database are currently plaintext. Generate a 32-byte key with this command:","instructionsPrefix":"Set the generated value as","instructionsSuffix":"in the server environment, then restart the server. Existing plaintext credential rows are encrypted together after restart.","backup":"Back up this key securely and retain it for the lifetime of the encrypted rows. Losing or changing it makes those credentials unreadable."},"credentials":{"title":"Credentials","description":"Review the active credential backend, protection status, and a metadata-only inventory. Secret values are never shown here.","refresh":"Refresh","loading":"Loading credential inventory…","loadFailed":"Credential inventory could not be loaded","storageTitle":"Credential storage","storageDescription":"Runtime configuration and safe location details for the selected backend.","backend":"Backend","protection":"Protection","itemCount":"Stored items","mismatchCount":"Backend mismatches","inventoryTitle":"Stored credential items","inventoryDescription":"This table contains identifiers and protection metadata only. Manage each value in its owning settings form.","feature":"Owning feature","kind":"Credential kind","updated":"Updated","emptyTitle":"No credentials stored","emptyDescription":"Credentials appear here after they are saved from an owning settings form.","states":{"READY":"Ready","WARNING":"Warning","ERROR":"Error"},"backends":{"DATABASE":"Database","VAULT":"HashiCorp Vault","KEYCHAIN":"macOS Keychain","UNKNOWN":"Unknown"},"encryptionStates":{"ENCRYPTED":"Encrypted","PLAINTEXT":"Plaintext","EXTERNAL":"External backend","ERROR":"Unavailable"},"protections":{"ENCRYPTED":"AES-256-GCM","PLAINTEXT":"Plaintext","VAULT":"Vault KV v2","KEYCHAIN":"Keychain"},"features":{"jira":"Jira","github":"GitHub","cache":"Actions cache","mcp":"External MCP server","ios":"iOS devices","push":"Push notifications","notifications":"Notifications"},"kinds":{"jira-api-token":"API token","github-personal-access-token":"Personal access token","github-app-private-key":"GitHub App private key","cache-server-api-key":"API key","cache-server-headers":"Custom header bundle","external-mcp-server-headers":"Header bundle","ios-profile-signer-private-key":"Profile signer private key","app-store-connect-private-key":"App Store Connect private key","apns-token-private-key":"APNs token private key","apns-certificate-bundle":"APNs certificate bundle","web-push-vapid-private-key":"Web Push VAPID private key"},"details":{"configuredValue":"Configured value","location":"Location","encryptionKey":"Encryption key","service":"Service","hostPlatform":"Host platform","address":"Address","mount":"KV v2 mount","pathPrefix":"Path prefix","namespace":"Namespace","authenticationToken":"Authentication token","additionalHeaders":"Additional header names","customCa":"Custom CA","tlsServerName":"TLS server name"},"detailValues":{"configured":"Configured","notConfigured":"Not configured","none":"None","invalid":"Invalid","applicationDatabase":"Application database"},"warningTitles":{"DATABASE_UNENCRYPTED":"Database encryption is disabled","CREDENTIAL_ENCRYPTION_KEY_INVALID":"Encryption key is invalid","CREDENTIAL_ENCRYPTION_KEY_MISSING":"Encryption key is missing","CREDENTIAL_ENCRYPTION_KEY_MISMATCH":"Encryption key does not match","CREDENTIAL_DATA_INVALID":"Credential data is invalid","CREDENTIAL_STORAGE_TYPE_INVALID":"Storage type is invalid","CREDENTIAL_STORE_UNAVAILABLE":"Credential store is unavailable","VAULT_CONFIGURATION_INVALID":"Vault configuration is invalid","VAULT_INSECURE_HTTP":"Vault uses plaintext HTTP","VAULT_TLS_VERIFICATION_DISABLED":"Vault certificate verification is disabled","KEYCHAIN_UNSUPPORTED_PLATFORM":"Keychain is unsupported on this host","BACKEND_MISMATCH":"Credentials use another backend"},"warnings":{"DATABASE_UNENCRYPTED":"Database credential payloads are stored as plaintext until an encryption key is configured.","CREDENTIAL_ENCRYPTION_KEY_INVALID":"CREDENTIAL_ENCRYPTION_KEY must be strict base64 encoding of exactly 32 bytes. Fix it and restart the server; plaintext fallback is disabled when an invalid key is present.","CREDENTIAL_ENCRYPTION_KEY_MISSING":"Encrypted credential rows exist, but the encryption key is missing. Restore the original key and restart the server.","CREDENTIAL_ENCRYPTION_KEY_MISMATCH":"The configured key does not match existing encrypted rows. Restore the original key and restart the server.","CREDENTIAL_DATA_INVALID":"One or more credential records contain invalid metadata and cannot be used.","CREDENTIAL_STORAGE_TYPE_INVALID":"CREDENTIAL_STORAGE_TYPE must be database, vault, or keychain.","CREDENTIAL_STORE_UNAVAILABLE":"The credential store could not be initialized. Review the server configuration and logs.","VAULT_CONFIGURATION_INVALID":"Vault cannot be initialized with the current environment variables. Review the Vault address, headers, path, and TLS settings.","VAULT_INSECURE_HTTP":"Vault traffic, secret payloads, and authentication headers are not protected in transit over HTTP.","VAULT_TLS_VERIFICATION_DISABLED":"VAULT_SKIP_VERIFY allows untrusted certificates and exposes Vault traffic to interception.","KEYCHAIN_UNSUPPORTED_PLATFORM":"macOS Keychain is available only when the Next.js host runs on macOS. The server remains available, but credential operations will fail.","BACKEND_MISMATCH":"{count} credential item(s) were recorded with another backend. Re-enter them through their owning settings forms; values are not moved or deleted automatically."}},"agents":{"title":"Agents","description":"Manage enrolled Macs and durable jobs from one control plane.","refresh":"Refresh","enroll":"Enroll agent","enrollmentTitle":"One-time enrollment command","enrollmentDescription":"Run this on the Mac after installing control-agent. The Mac connects outbound; it does not open a listening port.","serverAddress":"Server address","copy":"Copy command","copyFailed":"Could not copy the command. Select and copy it manually.","expires":"Token expires {date}","loading":"Loading agents…","emptyTitle":"No agents enrolled","emptyDescription":"Create an enrollment command to pair your first Mac.","version":"Version","platform":"Platform","lastSeen":"Last seen","never":"Never"},"usage":{"title":"Usage","description":"Review token usage and cost across every enrolled Mac.","refresh":"Refresh usage","rangeLabel":"Usage range","allData":"All data","last7Days":"7 days","last30Days":"30 days","loading":"Loading agents…","noAgents":"No agents enrolled","noAgentsDescription":"Enroll a Mac before collecting usage.","noCompatible":"No compatible agents online","noCompatibleDescription":"Update control-agent on an online Mac to add the ccusage capability.","noOnline":"No agents online","noOnlineDescription":"Connect an enrolled Mac before collecting usage.","collectionFailed":"Usage collection failed","collectionFailedDescription":"No agent returned a valid ccusage report. Review the agent errors above and try again.","zeroUsage":"No usage found","zeroUsageDescription":"The agents reported successfully, but ccusage found no daily usage.","noUsageInRange":"No usage in this range","noUsageInRangeDescription":"Choose a longer date range to see older usage.","progress":"{complete} of {total} compatible agents reported","offlineAgents":"Offline: {agents}","unsupportedAgents":"Update required: {agents}","failedAgents":"Failed: {agents}","costChartTitle":"Daily cost by model","costChartDescription":"Stacked USD usage for each day in the selected range.","totalCost":"Total cost","totalTokens":"Total tokens","inputTokens":"Input tokens","outputTokens":"Output tokens","cacheCreationTokens":"Cache creation tokens","cacheReadTokens":"Cache read tokens","usage":"Usage","input":"Input","output":"Output","cacheCreation":"Cache creation","cacheRead":"Cache read","total":"Total","cost":"Cost","grandTotal":"Grand total","unattributedTokens":"Unattributed tokens","modelCount":"{count} models","agentCount":"{count} agents","showModels":"Show models for {date}","hideModels":"Hide models for {date}","showAgents":"Show agents using {model}","hideAgents":"Hide agents using {model}"},"agentDetail":{"back":"Agents","loading":"Loading agent…","notFound":"Agent not found.","version":"Version","lastSeen":"Last seen","never":"Never","generalInformation":"General information","generalInformationDescription":"Hardware and resource usage update with each agent heartbeat.","cpuModel":"CPU model","operatingSystem":"Operating system","architecture":"Architecture","ipAddress":"IP address","memory":"Memory","disk":"Disk space","used":"Used","free":"Free","unavailable":"Unavailable","capabilities":"Capabilities","capabilitiesDescription":"Search the capabilities advertised by this agent, then expand one to invoke it and inspect its live response.","searchCapabilities":"Search capabilities","searchCapabilitiesPlaceholder":"Search capability names…","noMatchingCapabilities":"No capabilities match this search.","capability":"Capability","kind":"Kind","event":"Event","job":"Job","expandCapability":"Expand {capability}","collapseCapability":"Collapse {capability}","eventCapabilityDescription":"This event requests an immediate codebase reconciliation and does not accept a payload.","payload":"Payload (JSON object)","invoke":"Invoke capability","invokeOffline":"Connect this agent before invoking a capability.","noCapabilityResponse":"Invoke the capability to see its response.","codebases":"Codebases","codebasesDescription":"Registered codebases hosted by this agent.","noCodebases":"No codebases are registered on this agent.","repository":"Repository","status":"Status","created":"Created","finished":"Finished","selectJob":"Select {kind}","runTitle":"Run Cloudflared Tunnel","runDescription":"Starts the allow-listed cloudflared handler on this Mac. It keeps running in the agent service when you leave this page.","tunnelName":"Tunnel name","tunnelPlaceholder":"dev-tunnel","queuing":"Queuing…","run":"Run","history":"Job history","noJobs":"No jobs have run on this agent.","baseRepoDirectory":"Base repository directory","baseRepoDirectoryDescription":"Choose the folder on this agent that contains its repositories. Worktree paths inside it are shown relative to this folder.","currentDirectory":"Current directory","notConfigured":"Not configured","useDirectory":"Use this directory","clearDirectory":"Clear directory","directoryBrowsingUnavailable":"Connect this agent and update it if needed to browse directories.","derivedDataLocation":"Xcode Derived Data","derivedDataLocationDescription":"Choose where this agent stores Xcode DerivedData.","derivedDataMode":"Location mode","derivedDataDefault":"Default Xcode location","derivedDataAbsolute":"Custom absolute directory","derivedDataRelative":"Relative to every worktree","derivedDataAbsolutePath":"Absolute directory","derivedDataRelativePath":"Relative folder path","derivedDataAbsoluteHelp":"Enter an absolute path on this agent or choose an existing directory below.","derivedDataRelativeHelp":"This folder is checked beneath every active tracked worktree.","saveDerivedDataSettings":"Save Derived Data settings","buildsDirectory":"Builds directory","buildsDirectoryDescription":"Build logs, copied products, archives, and exports are stored in one folder per build. The default is the Base repository directory with /Builds appended unless overridden here.","browseBuildsDirectory":"Browse builds directory","effectiveDirectory":"Effective directory","agentDefault":"Base repository default","customBuildsDirectory":"Custom absolute directory","saveBuildsDirectory":"Save builds directory","useAgentDefault":"Use base repository default","deleteAgent":"Delete agent","deleteAgentTitle":"Delete this agent?","deleteAgentDescription":"Permanently delete {name} and all of its jobs and codebase registrations. This cannot be undone."},"buildData":{"title":"Build Data","description":"Inspect and clean up Xcode DerivedData across enrolled agents.","derivedDataTitle":"Derived Data","derivedDataDescription":"Per-project build products, indexes, logs, and shared Xcode caches.","deviceSupportTitle":"iOS Device Support","deviceSupportDescription":"Xcode symbols and support files retained for iOS versions connected to each agent.","deviceSupportVersion":"iOS version","selectAllDeviceSupport":"Select all iOS Device Support entries","noDeviceSupport":"No iOS Device Support folders were found.","deleteDeviceSupportTitle":"Delete iOS Device Support?","deleteDeviceSupportDescription":"Permanently delete {count} selected Device Support folders? Xcode can recreate them when a matching device is connected.","refresh":"Refresh","calculateSizes":"Calculate sizes","loading":"Scanning Derived Data…","emptyTitle":"No Derived Data found","emptyDescription":"No configured DerivedData directories currently contain entries.","progress":"Scanned {complete} of {total} eligible agents","selected":"{count} selected","deleteSelected":"Delete selected","selectAll":"Select all Derived Data entries","selectEntry":"Select {name}","folder":"Folder","worktree":"Worktree path","size":"Disk usage","agent":"Agent","actions":"Actions","entryActions":"Actions for {name}","deleteEntry":"Delete {name}","confirmDeleteEntry":"Confirm deletion of {name}","confirmDelete":"Confirm","delete":"Delete","deleteTitle":"Delete Derived Data?","deleteDescription":"Permanently delete {count} selected Derived Data entries? This cannot be undone.","history":"Deletion history","historyDescription":"Derived Data removed from enrolled agents during the last 90 days.","clearHistory":"Clear history","clearHistoryTitle":"Clear deletion history?","clearHistoryDescription":"Delete all retained Derived Data deletion records? This does not affect files on any agent.","loadingHistory":"Loading deletion history…","noHistory":"No Derived Data has been deleted yet.","deleted":"Deleted","sourceLabel":"Source","loadMore":"Load more","status":{"UNLINKED":"Unlinked","PENDING":"Build starting","SHARED_CACHE":"Shared cache"},"source":{"USER":"User","AUTOMATIC":"Automatic"},"agentStatus":{"QUEUING":"queuing","QUEUED":"queued","RUNNING":"scanning","SUCCEEDED":"complete","FAILED":"failed","CANCELLED":"cancelled","TIMED_OUT":"timed out","OFFLINE":"offline","UNSUPPORTED":"agent update required","INVALID":"invalid response"}},"cacheServerSettings":{"title":"Actions Cache Server","description":"Connect to a GitHub Actions Cache Server to manage its cache entries.","configured":"Configured","notConfigured":"Not configured","loading":"Loading settings…","saved":"Cache server settings saved.","connectionSucceeded":"Connected to the cache server successfully.","removed":"Cache server settings removed.","baseUrl":"Base URL","baseUrlHelp":"The management API base URL, including any path prefix.","setupHelp":"Get the management API base URL and API key from the cache server\'s deployment configuration or administrator. The configured key is sent as the x-api-key header.","apiKey":"API key","apiKeyPlaceholder":"Enter the cache server API key","apiKeyPlaceholderConfigured":"Leave blank to keep the current key","apiKeyHelp":"Sent as the x-api-key header on every request.","apiKeyKeepHelp":"A key is stored. Enter a new value to replace it.","headers":"Custom headers","addHeader":"Add header","headersHelp":"Header values are stored locally, sent with every cache server request, and never returned to the browser.","headersSetupHelp":"Add custom headers only when an authentication proxy requires them; get their names and values from the proxy administrator.","noHeaders":"No custom headers configured.","headerName":"Name","headerValue":"Value","headerValuePlaceholderConfigured":"Leave blank to keep the current value","removeHeader":"Remove header","remove":"Remove","confirmRemove":"Remove cache server settings?","confirmRemoveDescription":"The connection details and API key will be deleted. The Actions Cache page will be hidden until it is reconfigured.","test":"Test","save":"Save"},"cacheServer":{"title":"Actions Cache","description":"Browse and manage entries on the GitHub Actions Cache Server.","matchLookup":"Match lookup","refresh":"Refresh","close":"Close","filtersTitle":"Filters","filtersDescription":"Narrow cache entries by key, version, scope, or repository.","key":"Key","keyPlaceholder":"Cache key","version":"Version","versionPlaceholder":"Cache version","scope":"Scope","scopePlaceholder":"Ref or scope","repoId":"Repo ID","repoIdPlaceholder":"Repository ID","itemsPerPage":"Per page","deleteMatching":"Delete matching","confirmDeleteMatching":"Delete all matching entries?","confirmDeleteMatchingDescription":"Every cache entry matching the applied filters will be deleted. This action cannot be undone.","reset":"Reset","applyFilters":"Apply","entriesTitle":"Cache entries","entriesDescription":"Cache entries stored on the server.","loading":"Loading cache entries…","noEntries":"No cache entries match the current filters.","updatedAt":"Updated","actions":"Actions","viewDetails":"View details","delete":"Delete","confirmDeleteEntry":"Delete this cache entry?","edit":"Edit","doneEditing":"Done","selected":"{count} selected","selectAll":"Select all cache entries","selectEntry":"Select {name}","deleteSelected":"Delete selected","confirmDeleteSelected":"Delete {count} cache entries?","showing":"Showing {start}–{end} of {total}","previous":"Previous","next":"Next","notConfiguredTitle":"Cache server not configured","notConfiguredDescription":"Configure the GitHub Actions Cache Server on the Settings page to manage its entries.","goToSettings":"Go to Settings","detailTitle":"Cache entry","detailDescription":"The full cache entry and the storage location that backs it.","entryNotFound":"This cache entry no longer exists.","entrySection":"Entry","id":"ID","locationId":"Location ID","locationSection":"Storage location","deleteLocation":"Delete location","confirmDeleteLocation":"Delete this storage location?","confirmDeleteLocationDescription":"The storage folder and its data will be removed. This action cannot be undone.","folderName":"Folder name","partCount":"Part count","sizeBytes":"Size","mergeStartedAt":"Merge started","mergedAt":"Merged","partsDeletedAt":"Parts deleted","lastDownloadedAt":"Last downloaded","noLocation":"No storage location is linked to this entry.","matchTitle":"Match cache entry","matchDescription":"Find the entry the cache server would restore for a set of keys.","primaryKey":"Primary key","restoreKeys":"Restore keys","commaSeparated":"Comma-separated","scopes":"Scopes","matchFound":"Match found","matchTypes":{"EXACT_PRIMARY":"Exact primary","PREFIXED_PRIMARY":"Prefixed primary","EXACT_RESTORE":"Exact restore","PREFIXED_RESTORE":"Prefixed restore"},"noMatch":"No cache entry matched the provided keys.","runMatch":"Run match"},"jobs":{"back":"Agents","open":"Open job","cancel":"Cancel","loading":"Loading job…","notFound":"Job not found.","waiting":"Waiting for output…"},"jiraTickets":{"title":"Jira Tickets","description":"Browse saved Jira projects, boards, and JQL queries by status.","refresh":"Refresh","manage":"Manage","showBoardLayout":"Board layout","showTableLayout":"Table layout","collapseStatus":"Collapse {status}","expandStatus":"Expand {status}","issueType":"Issue type","priority":"Priority","loading":"Loading Jira projects…","loadingTickets":"Loading tickets…","loadingTicket":"Loading ticket details…","emptyProjects":"No Jira projects yet","emptyProjectsDescription":"Configure Jira in Settings, then add a project and its first source.","emptySources":"This project has no sources","emptySourcesDescription":"Add a named JQL query or Jira board URL to load tickets.","emptyTickets":"No tickets matched this source.","addProject":"Add project","addSource":"Add source","projectTabs":"Jira projects","sourceTabs":"Ticket sources","staleWarning":"Jira could not be reached, so this view is showing expired cached data.","truncatedWarning":"This source has more than 1,000 tickets. Refine it to see the remaining results.","issue":"Issue","unassigned":"Unassigned","manageTitle":"Manage Jira projects and sources","manageDescription":"Projects come from Jira. Each source is validated before it is saved.","projects":"Projects","availableProjects":"Available Jira projects","selectProject":"Select a project","sourceCount":"{count} sources","removeProject":"Remove project","confirmRemoveProject":"Remove this project and all of its saved sources?","sourcesFor":"Sources for {project}","displaySettings":"Display settings","displaySettingsDescription":"These settings apply only to this project.","ticketsToShow":"Tickets to show","allTickets":"All tickets","unassignedOrSelfAssigned":"Unassigned or assigned to me","selfAssignedInProgress":"My in-progress tickets","hideCompletedTickets":"Hide completed tickets","hideCompletedTicketsDescription":"Choose which project statuses count as completed.","completedStatuses":"Completed statuses","loadingStatuses":"Loading statuses…","selectCompletedStatuses":"Select completed statuses","saveDisplaySettings":"Save display settings","branchNaming":"Branch naming","branchNamingDescription":"This function is used when a worktree branch is created from a ticket in this project.","branchNamingFunction":"JavaScript branch naming function","branchNamingFunctionHelp":"Receives ticketKey, type, title, and alreadyTaken. Return a valid Git branch name; alreadyTaken is omitted on the first call.","saveBranchNaming":"Save branch naming","sourceName":"Source name","sourceType":"Source type","boardUrl":"Board URL","editSource":"Edit source","deleteSource":"Delete source","confirmDeleteSource":"Delete this source and its related cache entries?","saveSource":"Save source","cancel":"Cancel","done":"Done","ticket":"Ticket","staleTicket":"Some ticket data is stale because Jira could not be reached.","openInJira":"Open in Jira","worktreeAction":"Create worktree","ticketWorktreeTitle":"Create from {issueKey}","ticketWorktreeDescription":"Create a new worktree on an agent, or create the ticket branch and switch an existing worktree.","newWorktree":"New worktree","existingWorktree":"Existing worktree","agentAndCodebase":"Agent and codebase","selectWorktreeDestination":"Select a destination","searchWorktreeDestinations":"Search worktrees, agents, and codebases","noWorktreeDestinations":"No online, compatible destinations are available.","chooseWorktreeDestination":"Choose where the ticket branch should be created.","loadingWorktreeDestinations":"Loading worktree destinations…","ticketWorktreeCreated":"The ticket worktree was created.","ticketBranchChanged":"The ticket branch was created and the worktree switched to it.","createTicketWorktree":"Create ticket worktree","createAndSwitchBranch":"Create and switch branch","ticketStashRetryHelp":"Git could not switch with the current changes. Stash tracked and untracked changes, then retry.","stashAndRetry":"Stash and retry","detachedBranch":"Detached HEAD","descriptionTitle":"Description","classification":"Classification","labels":"Labels","components":"Components","fixVersions":"Fix versions","sprints":"Sprints","relatedIssues":"Related issues","attachments":"Attachments","comments":"Comments ({count})","noComments":"No comments on this ticket.","unknownUser":"Unknown user","assignee":"Assignee","reporter":"Reporter","created":"Created","updated":"Updated","due":"Due","resolved":"Resolved","affectedVersions":"Affected versions","openFullDetails":"Open full details","renderFormat":"Render format","markdown":"Markdown","jiraWiki":"Jira Wiki","viewRendered":"View rendered","viewRaw":"View raw","rendered":"Rendered","raw":"Raw","copied":"Copied","copy":"Copy","commentActions":"Comment actions","copyRaw":"Copy raw content","copyFailed":"Could not copy the content.","authoringFormat":"Authoring format","preview":"Preview","hidePreview":"Hide preview","commentBody":"Comment","commentPlaceholder":"Write a comment…","saving":"Saving…","addComment":"Add comment","changeAssignee":"Change assignee","searchAssignees":"Search assignable users","loadingAssignees":"Loading users…","noAssignees":"No assignable users found.","status":"Status","changeStatus":"Change status","requiresJira":"Requires Jira"},"jiraTicketDetail":{"loading":"Loading Jira ticket…","notFound":"Ticket not found","notFoundDescription":"The Jira ticket could not be loaded.","back":"Back to Jira tickets","summary":"Summary","save":"Save","editSummary":"Edit summary","refresh":"Refresh","edit":"Edit","saveDescription":"Save description","descriptionHistory":"Description history","descriptionHistoryDescription":"Select two versions from Jira activity to compare their text.","currentVersion":"Current version","beforeChange":"Before {date}","afterChange":"After {date}","loadingHistory":"Loading history…","noDescriptionHistory":"No previous description versions are available.","compareFrom":"Compare from","compareTo":"Compare to","compareVersions":"Compare versions","descriptionComparison":"Description comparison","selectVersions":"Select two different versions to compare.","activity":"Activity","comments":"Comments","history":"History","worklogs":"Worklogs","unknownUser":"Unknown user","noHistory":"No history is available.","loadMore":"Load more","started":"Started {date}","noWorklogs":"No worklogs are available.","allFields":"All Jira fields","expandFields":"Show fields","collapseFields":"Hide fields","searchFields":"Search fields","field":"Field","value":"Value","custom":"Custom","details":"Details","editDetails":"Edit ticket details","editDetailsDescription":"Only fields Jira allows you to edit are shown.","none":"None","commaSeparated":"Comma-separated values","pickDate":"Choose a date","clearDate":"Clear date","saving":"Saving…"},"jiraCache":{"title":"Jira Cache","description":"Inspect cached Jira data, API usage, latency, and errors.","ttl":"Cache TTL in minutes","saveTtl":"Save TTL","clearCache":"Clear cache","confirmClear":"Clear every Jira response and cached ticket? API call history will be kept.","loading":"Loading cache activity…","average":"Average {ms} ms","live":"Live","cache":"Cache","errors":"Errors","operationsTitle":"API operations","operationsDescription":"Counts by operation and result source for each rolling window.","noMetrics":"No Jira API activity in the last 24 hours.","operation":"Operation","recentTitle":"Recent API calls","recentDescription":"Every cached Jira SDK operation, newest first.","noCalls":"No Jira API calls have been recorded.","time":"Time","fetched":"What was fetched","source":"Source","sources":{"LIVE":"Live","CACHE":"Cache","ERROR":"Error"},"duration":"Duration","error":"Error","stale":"Stale","ticketsTitle":"Cached tickets","ticketsDescription":"Materialized summary, detail, and comment coverage for Jira issues.","noTickets":"No Jira tickets are cached.","ticket":"Ticket","status":"Status","coverage":"Coverage","freshness":"Freshness","fresh":"Fresh","lastFetched":"Last fetched","actions":"Actions","open":"Open","refresh":"Refresh","delete":"Delete","confirmDeleteTicket":"Delete {issueKey} and every cache entry that references it?","showing":"Showing {start}–{end} of {total}","previous":"Previous","next":"Next"},"jiraCacheDetail":{"back":"Jira Cache","description":"Cached Jira ticket data","refresh":"Refresh ticket","delete":"Delete from cache","confirmDelete":"Delete {issueKey} and its related cache entries?","loading":"Loading cached ticket…","notFound":"This ticket is not in the Jira cache.","coverage":"Coverage","freshness":"Freshness","fresh":"Fresh","stale":"Stale","detailFetched":"Detail fetched","commentsFetched":"Comments fetched","summaryData":"Summary response","detailData":"Full detail response","commentsData":"Complete comments response","notFetched":"This data level has not been fetched.","relatedEntries":"Related cache entries","noEntries":"No cache entries reference this ticket.","operation":"Operation","fetchedAt":"Fetched at","entryId":"Cache entry ID"},"jiraSettings":{"title":"Settings","description":"Configure the Jira Cloud account used by this application.","loading":"Loading Jira settings…","credentials":"Jira credentials","configured":"Token configured","notConfigured":"Token not configured","siteUrl":"Jira Cloud site URL","siteUrlHelp":"Use the base *.atlassian.net URL for your Jira site.","email":"Jira account email","accountHelp":"Open Jira in your browser and copy only its https://*.atlassian.net origin. Use the email address for the same Atlassian account.","apiToken":"Jira API token","tokenPlaceholder":"Paste an Atlassian API token","tokenPlaceholderConfigured":"Leave blank to keep the saved token","tokenHelp":"The token is stored in the local SQLite database and is never returned to the browser.","tokenKeepHelp":"Leave this blank unless you want to replace the saved token.","tokenAcquireHelp":"Create a standard Atlassian API token that can authenticate directly to this Jira site.","createToken":"Create Jira API token","save":"Save settings","test":"Test connection","remove":"Remove credentials","saved":"Jira settings saved.","connectionSucceeded":"Jira connection succeeded.","removed":"Jira credentials removed and cached Jira data cleared.","confirmSiteChange":"Changing the Jira site removes all saved Jira projects, sources, and cached data. Continue?","confirmRemove":"Remove the saved email and API token and clear cached Jira data?"},"settings":{"title":"Settings","description":"Configure development tools, Apple services, and external integrations.","developmentGroup":"Development","developmentGroupDescription":"Choose the tools used with local checkouts and worktrees.","appleGroup":"Apple services","appleGroupDescription":"Manage iOS enrollment, App Store Connect, and APNs credentials.","integrationsGroup":"Integrations","integrationsGroupDescription":"Connect the Jira and GitHub accounts used throughout the application."},"editorSettings":{"title":"Worktree editor","description":"Choose which VS Code edition opens worktrees, or hide editor actions.","loading":"Loading editor settings…","label":"Editor","code":"Visual Studio Code","insiders":"Visual Studio Code - Insiders","none":"None (hide editor buttons)","setupHelp":"Install the selected edition on the Mac that hosts the worktree:","downloadCode":"Download Visual Studio Code","downloadInsiders":"Download VS Code Insiders","save":"Save editor","saved":"Editor setting saved."},"githubSettings":{"title":"GitHub credentials","description":"Connect the account used to load pull requests and GitHub Actions.","loading":"Loading GitHub settings…","configured":"Token configured","notConfigured":"Token not configured","apiToken":"GitHub personal access token","tokenPlaceholder":"Paste a GitHub personal access token","tokenPlaceholderConfigured":"Leave blank to keep the saved token","tokenHelp":"Grant pull-request read and write access plus Actions read access in the repositories you want to use. The token is used for pull request views, review-thread actions, and workflow-run details.","tokenKeepHelp":"Leave this blank unless you want to replace the saved token.","tokenAcquireHelp":"Create a fine-grained token limited to the repositories used here. Grant Actions: read, Checks: read, Pull requests: read and write, and Contents: read and write for merging. Email addresses: read is optional for commit-email choices.","createToken":"Create fine-grained token","save":"Save settings","test":"Test connection","remove":"Remove credentials","saved":"GitHub settings saved.","connectionSucceeded":"GitHub connection succeeded.","removed":"GitHub credentials removed. Managed repositories were kept.","confirmRemove":"Remove GitHub credentials?","confirmRemoveDescription":"The saved token will be removed. Managed repository and Jira regex settings will be kept."},"githubAppSettings":{"title":"GitHub App pipeline retries","description":"Use your own GitHub App to rerun GitHub Actions workflows.","loading":"Loading GitHub App settings…","verified":"Verified","notConfigured":"Not configured","setupTitle":"Set up your GitHub App","stepRegister":"Register a uniquely named GitHub App, such as “AI Environment Check Rerunner,” from","registerLink":"New GitHub App","stepHomepage":"Use","stepHomepageSuffix":" as the Homepage URL. Leave the callback URL empty and disable webhooks.","stepPermissions":"Set Repository permissions → Actions to Read and write. Metadata remains read-only automatically; Checks permission is not required.","stepInstall":"Create the app, generate a private key, then install it on only the repositories this deployment should control.","stepInstallationId":"After installation, open the app’s Configure page. The installation ID is the final number in its URL, for example","stepInstallationIdSuffix":". Replace Organization-name with your organization; copy the final ID value.","stepCredentials":"Copy the App ID and installation ID, then paste them and the downloaded PEM below.","appId":"GitHub App ID","appIdPlaceholder":"Enter the numeric App ID","installationId":"Installation ID","installationIdPlaceholder":"Enter the numeric installation ID","privateKey":"PEM private key","privateKeyDropZone":"PEM private key drop zone","pemDropHint":"Drop a .pem file here, or paste the key below.","pemFileLoaded":"Loaded {filename}. Save and verify to use this key.","pemFileInvalid":"Drop a valid .pem file containing an RSA private key.","pemFileReadError":"The dropped PEM file could not be read.","privateKeyPlaceholder":"Paste the downloaded GitHub App PEM","privateKeyPlaceholderConfigured":"Leave blank to keep the configured private key","privateKeyHelp":"The key is sent only to the Next.js server and is never returned to the browser.","privateKeyKeepHelp":"A private key is configured. Paste a replacement PEM only when rotating it.","connectedAs":"Connected to {app} on {account}","connectionDetails":"Actions: {permission}; repositories: {selection}","lastVerified":"Last verified: {date}","save":"Save and verify","rotate":"Rotate key and verify","test":"Test connection","remove":"Remove GitHub App","saved":"GitHub App saved and verified.","rotated":"GitHub App private key rotated and verified.","connectionSucceeded":"GitHub App connection verified.","removed":"GitHub App credentials removed. The personal token and managed repositories were kept.","confirmRemove":"Remove GitHub App credentials?","confirmRemoveDescription":"The App ID, installation ID, and private key will be removed. Pull request credentials and managed repositories will be kept."},"pullRequests":{"title":"Pull Requests","description":"Review your GitHub pull requests and monitored repositories in one place.","refresh":"Refresh","manage":"Manage","loading":"Loading GitHub configuration…","credentialsRequired":"Connect GitHub to view pull requests","credentialsRequiredDescription":"Add a personal access token in Settings before loading GitHub data.","openSettings":"Open Settings","tabsLabel":"Pull request views","mine":"Mine","reviewRequests":"Review requests","repositories":"Repositories","stateFilter":"Pull request state","repositoryFilter":"Repository","selectRepository":"Select a repository","searchRepositories":"Search repositories","searchAvailableRepositories":"Search available repositories","noRepositoryMatches":"No repositories match your search.","truncated":"GitHub search returns at most 1,000 results. Refine your workload on GitHub to see anything beyond this limit.","loadingPullRequests":"Loading pull requests…","loadingMore":"Loading more…","retryLoad":"Try again","empty":"No pull requests","emptyDescription":"No pull requests currently match this view.","repository":"Repository","number":"Number","pullRequest":"Pull request","pullRequestAndRepository":"Pull request / Repository","labels":"Labels","ticket":"Ticket","pipeline":"Pipeline","approval":"Approval","openComments":"Open comments","viewOpenComments":"View {count} open comments","age":"Age","actions":"Actions","details":"Details","openInGitHub":"Open in GitHub","merge":"Merge","mergePullRequest":"Merge pull request","mergePullRequestDescription":"Merge {repository} #{number} after reviewing the commit details.","loadingMergeOptions":"Checking merge requirements…","mergeType":"Merge type","selectMergeType":"Select a merge type","mergeTypes":{"SQUASH":"Squash and merge","MERGE":"Create a merge commit","REBASE":"Rebase and merge"},"commitMessage":"Commit message","commitDescription":"Commit description","commitEmail":"Commit email","githubDefaultEmail":"Use GitHub account default","cancelMerge":"Cancel","merging":"Merging…","pipelineStates":{"ACTION_REQUIRED":"Action required","CANCELLED":"Cancelled","ERROR":"Error","EXPECTED":"Expected","FAILURE":"Failed","IN_PROGRESS":"In progress","NEUTRAL":"Neutral","PENDING":"Pending","QUEUED":"Queued","SKIPPED":"Skipped","STALE":"Stale","STARTUP_FAILURE":"Startup failed","SUCCESS":"Passed","TIMED_OUT":"Timed out","NONE":"No checks"},"pipelineMenuTitle":"Pipeline status","noPipelines":"No pipeline checks were reported.","retry":"Retry","retrying":"Retrying…","retryUnavailable":{"GITHUB_APP_NOT_CONFIGURED":"Configure and verify a GitHub App in Settings to retry this workflow.","NOT_COMPLETED":"Only completed workflows can be retried.","NOT_GITHUB_ACTIONS":"Only GitHub Actions workflow runs can be retried.","WORKFLOW_RUN_UNAVAILABLE":"GitHub did not provide a workflow run for this check suite.","HISTORICAL_ATTEMPT":"Historical attempts are read-only."},"reviewStates":{"APPROVED":"Approved","CHANGES_REQUESTED":"Changes requested","REVIEW_REQUIRED":"Review required","NONE":"No decision"},"pullRequestStates":{"ALL":"All","OPEN":"Open","CLOSED":"Closed","MERGED":"Merged"},"mergeableStates":{"CONFLICTING":"Conflicts","MERGEABLE":"Mergeable","UNKNOWN":"Calculating"},"manageTitle":"Manage GitHub repositories","manageDescription":"Choose repository tabs and configure how Jira keys are parsed from pull request titles.","manageCredentialsRequired":"Configure GitHub credentials before adding repositories.","managedRepositories":"Managed repositories","noManagedRepositories":"No repositories are managed yet.","addRepository":"Add repository","browse":"Browse","enterManually":"Enter manually","privateRepository":"Private repository","managed":"Managed","add":"Add","loadingRepositories":"Loading repositories…","loadMore":"Load more","repositoryName":"Repository owner/name","jiraKeyRegex":"Jira key regex","jiraKeyRegexHelp":"The first capture group is used when present; otherwise the entire match is used. Clear this field to disable Jira key parsing.","defaultJiraKeyRegex":"Default ticket key regex","defaultJiraKeyRegexHelp":"Used for every managed repository without its own override. The first capture group is used when present.","jiraKeyRegexOverrideHelp":"Leave blank to inherit the default ticket key regex.","saveDefaultRegex":"Save default ticket key regex","invalidRegex":"Enter a valid Jira key regular expression.","done":"Done","removeRepository":"Remove repository","confirmRemoveRepository":"Remove this managed repository?","confirmRemoveRepositoryDescription":"Its pull request tab and Jira regex configuration will be removed.","saveRegex":"Save Jira regex"},"githubComments":{"title":"Comments","description":"Review and respond to GitHub review threads on your open pull requests.","refresh":"Refresh","layout":"Comments layout","cards":"Card layout","table":"Table layout","loadingConfiguration":"Loading GitHub configuration…","credentialsRequired":"Connect GitHub to view comments","credentialsDescription":"Add a personal access token with pull-request read and write access in Settings.","openSettings":"Open Settings","allPullRequests":"All open pull requests","searchPullRequests":"Search open pull requests","noPullRequestMatches":"No open pull requests match your search.","currentUser":"Current User","otherUsers":"Other Users","unresolved":"Unresolved","truncated":"GitHub search returns at most 1,000 pull requests. Some review threads may not be shown.","loading":"Loading review comments…","empty":"No review comments","emptyDescription":"No review threads match the selected pull request and filters.","reviewThreads":"Review comments","reviewThreadsDescription":"{count, plural, =0 {No review threads match the current filters.} one {# review thread matches the current filters.} other {# review threads match the current filters.}}","author":"Author","pullRequest":"Pull request","comment":"Comment","date":"Date","replies":"Replies","github":"GitHub","rendered":"Rendered","markdown":"Markdown","viewRaw":"Raw","viewRendered":"Rendered","copy":"Copy","copied":"Copied","copyFailed":"Could not copy the Markdown.","unknownAuthor":"Unknown author","fileComment":"File comment","outdated":"Outdated","resolved":"Resolved","openInGitHub":"Open in GitHub","openReplyInGitHub":"Open reply in GitHub","reply":"Reply","replyPlaceholder":"Reply with Markdown…","replyUnavailable":"GitHub does not allow this account to reply to this thread.","reopen":"Reopen thread","resolve":"Resolve thread","replying":"Replying…","sendReply":"Send reply"},"pullRequestDetail":{"back":"Pull Requests","loading":"Loading pull request details…","notFound":"Pull request not found","notFoundDescription":"This pull request is unavailable or the configured GitHub token cannot access it.","refresh":"Refresh","openInGitHub":"Open in GitHub","viewWorktree":"View Worktree","draft":"Draft","description":"Description","noDescription":"No description was provided.","comments":"Comments","noComments":"No review comments","noCommentsDescription":"This pull request does not have any review threads.","pipelines":"Pipelines","pipelineCount":"{count} pipelines and status contexts","viewAll":"View all","pipelineName":"Pipeline","pipelineStatus":"Status","pipelineDetails":"Details","viewPipeline":"View","jobCount":"{count} jobs","noJobs":"No jobs were reported for this run.","viewJob":"View {job} on GitHub","retryJob":"Retry {job}","showJobSteps":"Show steps for {job}","hideJobSteps":"Hide steps for {job}","steps":"Steps","noSteps":"No steps have been reported for this job yet.","details":"Pull request details","branches":"Branches","changes":"Changes","files":"Files changed","commits":"Commits","mergeable":"Mergeability","openComments":"Open comments","created":"Created","updated":"Updated","merged":"Merged","people":"People","author":"Author","assignees":"Assignees","unassigned":"Unassigned","unknown":"Unknown"},"actionsPage":{"title":"GitHub Actions","description":"Monitor workflow runs across registered GitHub codebases.","refresh":"Refresh","loadingConfiguration":"Loading GitHub configuration…","credentialsRequired":"Connect GitHub to view Actions","credentialsRequiredDescription":"Add a personal access token with Actions read access in Settings.","openSettings":"Open Settings","repositoryFilter":"Repository","allRepositories":"All repositories","searchRepositories":"Search repositories","noRepositoryMatches":"No repositories match your search.","branchFilter":"Branch","branchFilterPlaceholder":"Enter an exact branch name","applyBranchFilter":"Apply","clearBranchFilter":"Clear branch filter","pipelineFilter":"Pipeline","allPipelines":"All pipelines","searchPipelines":"Search pipelines","noPipelineMatches":"No pipelines match your search.","loadingRuns":"Loading workflow runs…","noCodebases":"No GitHub codebases","noCodebasesDescription":"Register a codebase with a github.com origin to view its workflow runs.","empty":"No workflow runs","emptyDescription":"GitHub did not return any workflow runs for this repository selection.","expand":"Expand","repository":"Repository","workflowRun":"Workflow run","trigger":"Trigger","status":"Status","pullRequest":"Pull request","ticket":"Ticket","worktree":"Worktree","started":"Started","duration":"Duration {duration}","actions":"Actions","runNumber":"Run #{number}","autoRetry":"Auto Retry","attempt":"Attempt {attempt}","view":"View","viewWorktree":"View","cancel":"Cancel","cancelling":"Cancelling…","forceCancel":"Force cancel","forceCancelling":"Force cancelling…","forceCancelTitle":"Force cancel this workflow run?","forceCancelDescription":"Force cancellation bypasses conditions that normally prevent GitHub from stopping this run. Use it only when normal cancellation is stuck.","keepRunning":"Keep running","showJobs":"Show jobs for {run}","hideJobs":"Hide jobs for {run}","jobs":"Jobs","jobCount":"{count} jobs","loadingJobs":"Loading jobs…","retryLoad":"Try again","noJobs":"No jobs were reported for this run.","showJobSteps":"Show steps for {job}","hideJobSteps":"Hide steps for {job}","retryJob":"Retry {job}","steps":"Steps","noSteps":"No steps have been reported for this job yet.","loadMore":"Load more","loadingMore":"Loading more…"},"githubAutomation":{"autoRetry":"Auto Retry","title":"Configure Auto Retry","description":"Automatically rerun selected GitHub Actions workflows or jobs.","loading":"Loading workflows and saved rules…","credentialsRequired":"Configure a personal access token and verify a GitHub App with Actions write access before creating Auto Retry rules.","scope":"Applies to","currentRuns":"Current runs","futureRuns":"Future runs","targets":"Pipelines and jobs","allWorkflows":"All workflows, including workflows added later","noWorkflows":"No GitHub Actions workflows were found.","mode":"Retry mode","failureMode":"Retry failures","countMode":"Retry successful runs by count","retryLimit":"Retry limit","unlimited":"Unlimited","failureStrategy":"When a failure occurs","failedJobs":"Retry failed jobs only","allJobs":"Retry all jobs","savedRules":"Saved rules","edit":"Edit rule","ruleProgress":"{retries} automatic retries across {executions} runs","pause":"Pause rule","resume":"Resume rule","delete":"Delete rule","close":"Close","save":"Save rule","limitError":"Enter a retry limit from 1 to 100.","targetRequired":"Select at least one workflow or job.","attemptSelector":"Workflow attempt","latestAttempt":"Latest — Attempt {attempt}","attempt":"Attempt {attempt}","attemptStartedBy":"Started by @{actor}","pipelines":"Pipelines","pipelineCount":"{count} GitHub Actions pipelines","pipeline":"Pipeline","status":"Status","actions":"Actions","view":"View","noJobs":"No jobs were reported for this attempt.","statuses":{"ACTIVE":"Active","PAUSED":"Paused","COMPLETED":"Completed","EXHAUSTED":"Exhausted","ERROR":"Error"},"scopes":{"WORKFLOW_RUN":"Current run","WORKTREE_BRANCH":"Worktree branch","PULL_REQUEST":"Pull request","REPOSITORY":"Repository"}},"codebases":{"title":"Codebases","description":"Track Git repositories and checkouts across every enrolled agent.","refreshAll":"Refresh all","fetchAll":"Fetch all","add":"Add codebase","groupBy":"Group codebases by","agents":"Agents","repositories":"Repositories","loading":"Loading codebases…","emptyTitle":"No codebases yet","emptyDescription":"Add an existing Git repository from an online agent.","skipped":"Skipped {count} offline, unsupported, or unavailable codebases.","fetchQueued":"Fetch started for eligible codebases.","refreshQueued":"Refresh started for eligible codebases.","online":"Online","offline":"Offline","edit":"Edit","view":"View","folder":"Folder","origin":"Origin","branch":"Branch","upstream":"Upstream","lastChecked":"Last checked","lastFetched":"Last fetched","never":"Never","unknown":"Unknown","none":"None","ahead":"Ahead {count}","behind":"Behind {count}","sync":{"IN_SYNC":"In sync","AHEAD":"Ahead","BEHIND":"Behind","DIVERGED":"Diverged","NO_UPSTREAM":"No upstream","DETACHED":"Detached","UNKNOWN":"Unknown"},"availability":{"AVAILABLE":"Available","MISSING":"Folder missing","NOT_REPOSITORY":"Not a Git repository","ORIGIN_MISMATCH":"Origin changed","ERROR":"Unavailable"},"operationRunning":"Git operation in progress…","fetch":"Fetch","addTitle":"Add a codebase","addDescription":"Browse an agent, inspect a Git repository, and confirm its origin before saving.","agent":"Agent","selectAgent":"Select an online agent","browseHome":"Browse home folder","home":"Home","showHidden":"Show hidden folders","truncated":"Only the first 1,000 folders are shown.","addFolder":"Add this folder","detached":"Detached HEAD","existingOrigin":"This origin already uses the shared name “{name}”.","name":"Repository name","repositoryDescription":"Repository description","cancel":"Cancel","confirm":"Confirm codebase","editTitle":"Edit repository details","loadingRepository":"Loading repository…","repositoryNotFound":"Repository not found","repositoryNotFoundDescription":"This logical repository may no longer have a registered checkout.","backToCodebases":"Back to codebases","repositorySharedDescription":"These details, build configurations, and allowed scripts belong to the logical repository and apply across every agent checkout and worktree.","repositoryDetails":"Repository details","repositoryDetailsDescription":"Manage settings shared by every registered checkout of this repository.","repositorySaved":"Repository details saved.","autoRetry":"Auto Retry","autoRetryDescription":"Configure durable retry rules for GitHub Actions workflows in this repository.","autoRetryGitHubOnly":"Auto Retry is available only for repositories hosted on GitHub.","skillGroups":"Skill groups","skillGroupsHelp":"Choose the project skill groups synchronized into every checkout and worktree for this repository.","noSkillGroups":"No skill groups are available.","keepBaseBranchUpToDate":"Keep base branch up to date","keepBaseBranchUpToDateHelp":"After a successful fetch, fast-forward the base branch when there are no staged changes. This repository setting applies to every agent.","save":"Save","remove":"Remove","confirmRemoveTitle":"Remove codebase registration?","confirmRemoveDescription":"The registration for {folder} will be removed. The folder and all of its files will remain untouched on the agent.","removed":"Codebase registration removed.","settings":"Settings","settingsTitle":"Codebase status settings","settingsDescription":"Set how often updated agents inspect registered folders and report Git status.","refreshInterval":"Agent refresh interval (seconds)","refreshIntervalHelp":"Choose an integer from {min} to {max}. Each agent waits this long after a scan completes. Git remotes are not contacted.","fetchInterval":"Automatic fetch interval (seconds)","fetchIntervalHelp":"Choose an integer from {min} to {max}. Each agent fetches origin when this interval is due.","defaultJiraBranchRegex":"Default Jira branch regex","jiraBranchRegex":"Jira branch regex override","jiraBranchRegexHelp":"The first capture group is used when present; otherwise the entire branch match is used.","inheritDefaultRegex":"Inherit the default regex","settingsSaved":"Agent refresh interval saved."},"codebaseDetail":{"loading":"Loading codebase…","notFound":"Codebase not found","notFoundDescription":"This codebase registration may have been removed.","back":"Back to codebases","operationQueued":"Git operation queued.","operationSucceeded":"Git operation completed.","operationFailed":"Git operation failed.","offlineReadOnly":"This agent is offline. Stored branch information is available read-only until it reconnects.","unsupportedReadOnly":"Update this agent to inspect and manage branches and stashes. Stored branch information is shown read-only.","dirty":"Uncommitted changes","refresh":"Refresh","fetch":"Fetch origin","repositorySettings":"Repository settings","origin":"Origin","currentBranch":"Current branch","upstream":"Upstream","lastFetched":"Last fetched","activeOperation":"{kind} is running…","branches":"Branches ({count})","stashes":"Stashes ({count})","iosApp":"iOS App","branchesTruncated":"Only the first 1,000 branches are shown.","localBranches":"Local branches","remoteBranches":"Remote origin branches","noLocalBranches":"No local branches found.","noRemoteBranches":"No origin branches found. Fetch origin and try again.","branchName":"Branch","branchStatus":"Status","actions":"Actions","current":"Current","default":"Default","protected":"Protected","otherWorktree":"Other worktree","localAvailable":"Local branch exists","switch":"Switch","stashAndSwitch":"Stash and switch","confirmDirtySwitchTitle":"Stash changes and switch branches?","confirmDirtySwitchDescription":"Staged, unstaged, and untracked changes will be saved in a new stash before switching to {branch}. The stash will be preserved.","checkout":"Checkout","stashAndCheckout":"Stash and checkout","confirmDirtyCheckoutTitle":"Stash changes and check out this branch?","confirmDirtyCheckoutDescription":"Staged, unstaged, and untracked changes will be saved in a new stash before checking out {branch}. The stash will be preserved.","pull":"Pull","deleteRemote":"Delete remote","confirmDeleteRemoteBranchTitle":"Delete remote branch?","confirmDeleteRemoteBranchDescription":"origin/{branch} will be permanently deleted. Any same-named local branch and worktrees will remain untouched.","delete":"Delete","cancel":"Cancel","confirmDeleteBranchTitle":"Delete local branch?","confirmDeleteBranchDescription":"Git will safely delete {branch} only if its commits are already merged. This cannot delete the current, default, or another worktree\'s branch.","noStashes":"No stashes","noStashesDescription":"This checkout does not currently have any Git stashes.","preview":"Preview","hidePreview":"Hide preview","loadingPreview":"Loading stash patch…","emptyPatch":"This stash has no text patch to display.","copyPatch":"Copy patch","patchCopied":"Patch copied","copyPatchFailed":"Could not copy the patch.","patchTruncated":"This patch was truncated at 256 KiB.","stashesTruncated":"Only the first 200 stashes are shown.","apply":"Apply","confirmDeleteStashTitle":"Delete stash?","confirmDeleteStashDescription":"{stash} will be permanently removed. Apply it first if you need to preserve its changes.","stashesTitle":"Stashes","stashMessage":"Stash","searchBranches":"Search branches","searchBranchesPlaceholder":"Filter by branch name","noMatchingBranches":"No branches match your search.","sortBranches":"Sort branches","sortByName":"Name","sortByNewestCommit":"Newest commit","searchStashes":"Search stashes","searchStashesPlaceholder":"Filter by message or selector","noMatchingStashes":"No stashes match your search."},"worktrees":{"title":"Worktrees","description":"Manage primary and linked Git worktrees across every enrolled agent.","agentOffline":"The agent is offline.","worktreeUnavailable":"This worktree is unavailable.","agentUnsupported":"Update the agent to enable iOS builds.","iosBuildNotConfigured":"Add an iOS App project and build configuration in repository settings first.","filters":"Worktree filters","searchWorktrees":"Search worktrees","searchWorktreesPlaceholder":"Search branches, agents, repositories, tickets, or codebases…","filterByAgent":"Filter by agent","allAgents":"All agents","filterByRepository":"Filter by repository","allRepositories":"All repositories","noMatchingWorktrees":"No matching worktrees","noMatchingWorktreesDescription":"Try a different search or filter.","refresh":"Refresh","fetchNow":"Fetch now","fetchStarted":"Fetch started for eligible codebases.","createWorktree":"Create worktree","worktreeCreated":"Worktree created.","repositoryCheckout":"Repository checkout","selectCodebase":"Select an agent and repository","selectCodebaseHelp":"Choose the agent checkout that will own this worktree.","searchCodebases":"Search repositories and agents","noEligibleCodebases":"No online, compatible repository checkouts are available.","newBranch":"New branch","existingBranch":"Existing branch","fromTicket":"From ticket","branchName":"Branch name","ticketKey":"Ticket key","loadingTicketBranch":"Loading ticket and branch name…","selectExistingBranch":"Select an existing branch","selectBaseBranch":"Select a base branch","searchBranches":"Search branches","noMatchingBranches":"No matching branches.","localBranch":"Local","originBranch":"Origin remote","localAndOrigin":"Local and origin","remoteDefault":"Remote default","changeBranch":"Change branch","moveToAgent":"Move to agent","moveWorktree":"Move worktree","moveDescription":"Push {branch} and check it out on another agent.","destinationAgent":"Destination agent and checkout","selectDestinationAgent":"Select a destination agent","searchDestinationAgents":"Search agents and checkouts","noMoveDestinations":"No compatible destination checkouts are available.","destinationWorktree":"Destination worktree","createDestinationWorktree":"Create a new worktree","dirtyDestinationWarning":"This destination has uncommitted changes. Git will carry them onto the incoming branch when possible.","deleteOldWorktree":"Delete old worktree after moving","deleteOldWorktreeDisabled":"Primary worktrees cannot be deleted.","moveFailed":"The worktree move failed.","moveCompleted":"Worktree moved.","moveCompletedWithWarning":"The destination is ready, but source cleanup needs attention.","moveCancelled":"Move cancelled. The source branch remains pushed and the source worktree was kept.","moveNeedsStash":"Destination changes prevent Git from switching branches.","moveStashHelp":"Stash tracked and untracked destination changes, continue the move, and leave the stash for manual restoration.","moveProgress":"Moving {branch}","stashAndContinue":"Stash and continue","cancelMove":"Cancel move","cancel":"Cancel","moveStatus":{"PUSHING":"Pushing the source branch…","CHECKING_OUT":"Checking out the destination…","AWAITING_STASH":"Waiting for a stash decision…","CLEANING_UP":"Removing the old worktree…","SUCCEEDED":"Move complete.","SUCCEEDED_WITH_WARNING":"Move complete with a cleanup warning.","FAILED":"Move failed.","CANCELLED":"Move cancelled."},"moveBlocked":{"agent":"The source agent is offline or must be updated.","busy":"Another operation is active for this repository.","detached":"A named source branch is required.","dirty":"Commit or discard source changes before moving.","behind":"Pull the origin changes before moving.","diverged":"Resolve the diverged origin branch before moving.","unknown":"The branch cannot currently be verified as safely pushable.","destination":"No compatible destination agent is currently available."},"deleteWorktree":"Delete worktree","deleteWorktreeDescription":"Permanently remove {path} and its local branch.","deleteWorktreeWarning":"All staged, unstaged, and untracked changes in this worktree will be permanently lost.","deleteRemoteBranch":"Also delete origin/{branch}","defaultRemoteProtected":"The repository default branch cannot be deleted from origin.","stashAndRetry":"Stash and retry","stashRetryHelp":"Git could not switch with the current changes. Stash tracked and untracked changes, retry, and leave the stash for manual restoration.","hidden":"Hidden ({count})","cards":"Card layout","table":"Table layout","loading":"Loading worktrees…","emptyTitle":"No worktrees found","emptyDescription":"Add a codebase and connect its agent to discover its primary and linked worktrees.","online":"Online","offline":"Offline","lastFetched":"Last fetched: {value}","neverFetched":"never","secondsAgo":"{count}s ago","branch":"Branch","path":"Path","baseBranch":"Base branch","editBase":"Edit base branch","saveBase":"Save base branch","inheritBase":"Inherit remote default","baseUnavailable":"Remote default unavailable","upstreamStatus":"Upstream status","baseStatus":"Base freshness","baseCurrent":"Current · {count} ahead","baseBehind":"{count} behind base","yes":"Yes","notUpToDate":"No · {count} commits behind base","ahead":"{count} ahead","behind":"{count} behind","diverged":"Diverged","upToDate":"Up to date","origin":"Origin","inSync":"In sync","dirty":"Dirty","branchCommits":"Commits: {count}","unpublished":"Unpublished","detached":"Detached HEAD","unknown":"Unknown","primary":"Primary","tags":"Tags","manageTags":"Manage tags","manageTagsDescription":"Create reusable global tags and choose their badge colors.","highlight":"Highlight","clearHighlight":"Clear highlight","customize":"Customize worktree","edit":"Edit","editTag":"Edit tag","createTag":"Create tag","saveTag":"Save tag","openCode":"Open in VS Code","openInsiders":"Open in VS Code Insiders","forcePush":"Force push","sync":"Sync","push":"Push","publish":"Publish","reset":"Reset","stashAll":"Stash all","stageAll":"Stage all","unstageAll":"Unstage all","confirmAction":"Confirm","operationRunning":"Operation in progress…","loadingDetails":"Loading commits and changes…","commits":"Commits ({count})","changes":"Changes ({count})","noCommits":"No commits differ from the base branch.","noChanges":"The worktree is clean.","conflicted":"Conflicted","staged":"Staged","unstaged":"Unstaged","untracked":"Untracked","truncated":"Only the first supported results are shown.","status":"Status","pullRequest":"Pull request","latestBuild":"Latest build","openInGitHub":"Open in GitHub","openDetails":"Open details","openWorktreeDetails":"Open details for {branch}","hiddenTitle":"Hidden worktrees","hiddenDescription":"Missing worktrees are retained for seven days. Rediscovery restores their saved metadata.","noHidden":"No hidden worktrees.","purge":"Purge","purgeAll":"Purge all","review":{"APPROVED":"Approved","CHANGES_REQUESTED":"Changes requested","REVIEW_REQUIRED":"Review required","NONE":"No decision"},"comments":"Comments: {count}"},"worktreeDetail":{"loading":"Loading worktree details…","notFound":"Worktree not found","notFoundDescription":"This worktree is missing, hidden, or no longer available.","back":"Back to worktrees","linked":"Linked","refresh":"Refresh","inspectionOffline":"The agent is offline. Saved worktree metadata remains available, but commits and changes cannot be inspected.","inspectionUnavailable":"This worktree is unavailable for live inspection.","inspectionBusy":"Commits and changes will refresh after the active worktree operation finishes.","inspectionUnsupported":"Update the agent to inspect commits and changes.","inspectionFailed":"Commits and changes could not be loaded.","actions":"Actions","workingTree":"Working tree","overview":"Overview","repository":"Repository","origin":"Origin","agent":"Agent","folder":"Folder","head":"HEAD commit","upstream":"Upstream","originStatus":"Origin status","baseStatus":"Base freshness","lastChecked":"Last checked","lastFetched":"Last fetched","management":"Management","branchChanges":"Branch changes","noBranchChanges":"No committed branch changes","diffTruncated":"Some changed files are not shown because the result was truncated.","codeCoverage":"Code coverage","noCoverageReports":"No worktree coverage reports have been generated.","coverageBuild":"Build","coverageStatus":"Status","coverageStatuses":{"PENDING":"Pending","READY":"Ready","FAILED":"Failed"},"overallCoverage":"Overall coverage","changedCoverage":"Changed coverage","generated":"Generated","viewReport":"View report","loadingDiff":"Loading changes…","binaryFileChanged":"Binary file changed","noTextChanges":"No textual changes","diffTooLarge":"Diff exceeds the 2 MiB display limit","diffLimit":"Diff truncated at 2 MiB.","sideBySide":"Side by side","overlap":"Overlap","imageTransparency":"Image transparency","before":"Before","after":"After","noImageSide":"No image on this side"},"tools":{"title":"Tools","description":"Browse, configure, and run built-in and external MCP tools.","addServer":"Add MCP server","search":"Search tools","searchPlaceholder":"Search tool names, descriptions, or servers…","serversTitle":"External MCP servers","serversDescription":"Manage Streamable HTTP and legacy SSE tool providers.","loadingServers":"Loading MCP servers…","noServers":"No external MCP servers are configured.","name":"Name","url":"URL","transport":"Transport","prefix":"Tool name prefix","actions":"Actions","http":"HTTP (Streamable)","sse":"SSE (legacy)","editServer":"Edit {name}","delete":"Delete","deleteServer":"Delete {name}","confirmDelete":"Delete MCP server?","confirmDeleteDescription":"Delete {name} and its saved custom headers?","catalogTitle":"Tool catalog","catalogDescription":"Expand a tool, enter its parameters, and inspect the complete response.","refresh":"Refresh tools","loadingTools":"Loading tools…","noMatchingTools":"No tools match this search.","addServerTitle":"Add external MCP server","editServerTitle":"Edit external MCP server","serverDialogDescription":"Connection details are used only by the server-side MCP client.","prefixHelp":"The prefix is applied literally when tools are displayed and invoked.","headers":"Custom headers","headersHelp":"Header values are saved locally and never returned to the browser.","addHeader":"Add header","noHeaders":"No custom headers.","headerName":"Header name","headerValue":"Header value","keepHeaderValue":"Leave blank to keep the saved value","removeHeader":"Remove header","saveServer":"Save server","toolCount":"{count} tools","tool":"Tool","toolDescription":"Description","expandTool":"Expand {name}","collapseTool":"Collapse {name}","noDescription":"No description was provided.","parameters":"Parameters","noParameters":"This tool has no parameters.","run":"Run tool","running":"Running…","response":"Response","copyResponse":"Copy response","copied":"Response copied","copyFailed":"Could not copy the response.","noResponse":"Run the tool to see its response.","selectValue":"Select a value","unset":"Unset","true":"True","false":"False","jsonArguments":"Arguments (JSON object)","invalidJson":"Enter valid JSON.","invalidJsonObject":"Enter a JSON object.","jsonObjectPlaceholder":"Enter key/value pairs as a JSON object","jsonPlaceholder":"Enter JSON, for example []"},"skills":{"title":"Skills","description":"Manage reusable AI skill packages across the database, clients, agents, and repositories.","manageGroups":"Manage groups","settings":"Settings","addSkill":"Add skill","syncAll":"Sync all","search":"Search skills","searchPlaceholder":"Search names, descriptions, groups, repositories, agents, or paths…","database":"Database","skillSource":"Skill source","databaseSkills":"Database skills","databaseSkillsDescription":"Canonical skill packages stored in the control plane.","clientSkills":"Client skills","clientSkillsDescription":"Skill packages discovered in the selected AI client.","loading":"Loading skills…","name":"Name","skillDescription":"Description","scope":"Scope","groups":"Groups","files":"Files","updated":"Updated","global":"Global","project":"Project","groupOnly":"Group only","noSkills":"No database skills match this search.","agent":"Agent","location":"Location","status":"Status","tracked":"Tracked","inSync":"In sync","toDatabase":"To database","conflict":"Conflict","noClientSkills":"No skills were discovered for this client.","settingsTitle":"Skill settings","settingsDescription":"Choose which configured clients participate and whether project groups reconcile automatically.","autoSync":"Auto-sync project skill groups","autoSyncHelp":"Keep assigned groups current in every registered checkout and worktree.","enabledTools":"Enabled AI clients","configured":"Configured","configuredAgents":"{count} configured agent(s)","notDetected":"Not detected","saveSettings":"Save settings","skillNotFound":"Skill not found.","loadingSkill":"Loading skill…","backToSkills":"Back to skills","newSkill":"New skill","editorDescription":"Edit metadata and every file in this skill package.","delete":"Delete","cancel":"Cancel","deleteSkillDescription":"Delete {name} from the database and remove its managed copies during sync?","deleteSkill":"Delete skill?","saveSkill":"Save skill","syncGlobally":"Sync globally","syncGloballyHelp":"Include this skill in personal/global client synchronization.","noGroups":"No skill groups yet.","packageFiles":"Package files","addFiles":"Add or replace package files","download":"Download","removeFile":"Remove","rename":"Rename","executable":"Executable","binaryFile":"Binary file. Download or replace it to edit its contents.","selectFile":"Select a file","duplicateFile":"A file with that path already exists.","skillGroups":"Skill groups","groupsDescription":"Bundle project-only skills and assign them to repositories.","groupsTableDescription":"Project skill groups and their assigned skills and repositories.","addGroup":"Add group","loadingGroups":"Loading skill groups…","skillsCount":"Skills","repositoriesCount":"Repositories","newGroup":"New skill group","newGroupDescription":"Create the group, then choose its skills and repositories.","createGroup":"Create group","groupNotFound":"Skill group not found.","loadingGroup":"Loading skill group…","backToGroups":"Back to skill groups","groupSettingsDescription":"Manage membership, repository assignments, and deployment.","deleteGroupDescription":"Delete {name} and remove copies no longer required by another group?","deleteGroup":"Delete skill group?","syncGroup":"Sync group","saveGroup":"Save group","groupSkills":"Skills in this group","searchSkills":"Search database skills…","groupRepositories":"Repositories using this group","searchRepositories":"Search repositories…","syncRunNotFound":"Sync run not found.","loadingSync":"Loading sync run…","syncTitle":"Skill synchronization","syncGroupName":"Synchronizing the {name} group across assigned repositories.","syncAllDescription":"Reconciling database, personal, and project skills across all agents.","applySync":"Apply sync","skipPendingClients":"Skip pending clients","unknownAgent":"Unknown agent","syncAgents":"Agent sync status","syncAgentsDescription":"Connection and synchronization status for every participating agent.","connection":"Connection","operation":"Operation","syncStatus":"Sync status","syncChanges":"Proposed changes","syncChangesDescription":"Review the changes and resolve conflicts before applying this sync.","change":"Change","resolution":"Resolution","newSharedLocation":"New shared location","chooseGroup":"Choose a skill group","useDatabase":"Use database","useTarget":"Use client copy","deleteClientCopy":"Delete client copy","editManually":"Edit manually","compareAndResolve":"Compare and resolve","skip":"Skip","scanningAgents":"Scanning enabled clients across agents…","noSyncChanges":"No skill changes are required.","manualResolution":"Manual conflict resolution","manualResolutionDescription":"Compare complete packages and edit the canonical result, including text, binary, and executable files.","startFromDatabase":"Start from database","startFromTarget":"Start from client copy","databaseVersion":"Database version","targetVersion":"Client version","resultVersion":"Canonical result","binaryPreview":"Binary file; compare size and executable metadata.","missingFile":"This version does not contain the selected file.","filePath":"File path","missingResultFile":"Add this file to the result or select another package file.","useManualVersion":"Use edited version"},"builds":{"title":"Builds","description":"Configure, run, inspect, deploy, and export iOS builds across codebases and worktrees.","build":"Build","history":"History","buildScripts":"Build Scripts","status":"Status","destination":"Destination","duration":"Duration","durationValue":"Duration {duration}","actionsLabel":"Actions","selectBuilds":"Select builds","selectBuild":"Select build {id}","selectDate":"Select all builds for {date}","deleteSelected":"Delete selected ({count})","deleteBuilds":"Delete builds","deleteBuildsTitle":"Delete {count, plural, one {build} other {# builds}}?","deleteBuildsDescription":"This permanently deletes the selected build records and their build folders.","filterStatus":"Filter builds by status","allStatuses":"All statuses","loading":"Loading builds…","emptyTitle":"No builds yet","emptyDescription":"Start a build from a worktree to create the first immutable build record.","durationSeconds":"{count} seconds","artifactCount":"{count, plural, one {# artifact} other {# artifacts}}","viewBuild":"View build","loadMore":"Load more","newScript":"New build script","noScripts":"No build scripts","noScriptsDescription":"Create reusable JavaScript hooks, then allow them for individual repositories.","defaultEnabled":"Enabled by default","preBuild":"Pre-build","postBuild":"Post-build","timeoutSeconds":"{count} second timeout","edit":"Edit","deleteScript":"Delete build script","editScript":"Edit build script","scriptDescription":"Trusted Node.js ESM hooks run from the selected worktree root with a minimal environment.","name":"Name","preBuildScript":"Pre-build JavaScript","postBuildScript":"Post-build JavaScript","preBuildScriptHelp":"Default-export a function that receives buildId, branch, destination, action, and the telemetry URL snapshot.","postBuildScriptHelp":"Default-export a function that also receives buildFolder, failed, cancelled, errorCode, error, and the same telemetry URL snapshot.","timeout":"Timeout in seconds","failureBehavior":"Failure behavior","enabledByDefault":"Preselect this script for builds","save":"Save","cancel":"Cancel","startBuild":"Start Build","startBuildDescription":"Choose one saved configuration and destination. The command runs from this worktree root.","configuration":"Configuration","configurationInvalid":"The saved source, scheme, or configuration is unavailable in this worktree.","noConfigurations":"Create a valid iOS build configuration in repository settings before starting a build.","reparse":"Reparse","action":"Action","destinationType":"Destination type","simulator":"Simulator","physicalDevice":"Physical Device","device":"Device","selectDevice":"Select a device","anySimulator":"Any iOS Simulator","anyPhysicalDevice":"Any Physical iOS Device","scripts":"Build scripts","advancedSettings":"Advanced settings","priorBuildForTesting":"Prior Build for Testing","selectPriorBuildForTesting":"Select a compatible Build for Testing","noPriorBuildForTesting":"Run a successful Build for Testing with this configuration first.","priorBuildSummary":"uses Build for Testing {id}","developmentTeam":"Development team","testPlan":"Test plan","schemeDefaultTestPlan":"Scheme default","packageResolution":"Package resolution","disablePackageRepositoryCache":"Disable package repository cache","signingStyle":"Signing style","codeSignIdentity":"Code signing identity","provisioningProfileSpecifier":"Provisioning profile","productBundleIdentifier":"Product bundle identifier","codeCoverage":"Enable code coverage","parseTestResults":"Parse test results after the build","allowProvisioningDeviceRegistration":"Allow provisioning device registration","parallelTesting":"Parallel testing","parallelTestingWorkers":"Parallel testing workers","onlyTesting":"Only test","skipTesting":"Skip tests","priorTestProductsPath":"Prior test products path","priorXctestrunPath":"Prior xctestrun path","settingsEnabled":"Enabled","settingsDisabled":"Disabled","advancedSettingsNotCaptured":"Advanced settings were not captured for this build.","generateWorktreeCoverage":"Generate code coverage","startWorktreeCoverage":"Run Worktree Coverage","startWorktreeCoverageDescription":"Run tests with coverage and measure executable lines changed in this branch and working tree.","startBuildFailed":"The build could not be started.","parseTestResultsAction":"Parse test results","retryParseTestResults":"Retry test parsing","generateCoverageReport":"Generate coverage report","retryCoverageReport":"Retry coverage report","viewCoverageReport":"View coverage report","testResults":"Test results","testResultsFailed":"Test results could not be parsed.","testTotal":"{count} tests","testPassed":"{count} passed","testFailed":"{count} failed","testSkipped":"{count} skipped","testResultFilters":"Test result filters","testFilterAll":"All ({count})","testFilterPassed":"Passed ({count})","testFilterFailed":"Failed ({count})","testFilterSkipped":"Skipped ({count})","testsWithoutSuite":"Tests without a suite","testsWithoutFile":"Tests without a file","expandTestSuite":"Expand test suite {suite}","collapseTestSuite":"Collapse test suite {suite}","expandTestFile":"Expand test file {file}","collapseTestFile":"Collapse test file {file}","testSuitePassed":"{passed} of {total} passed ({percent})","testStatus":"Result","testName":"Test","testSuite":"Suite","testBundle":"Bundle","testDuration":"Duration","coverageReport":"Code coverage report","loadingCoverageReport":"Loading coverage report…","coverageReportNotFound":"Coverage report not found","coverageReportNotFoundDescription":"Generate a coverage report from the build details page first.","backToBuild":"Back to build","overallCoverage":"Overall coverage","changedCoverage":"Changed coverage","coveredLines":"Covered lines","executableLines":"Executable lines","uncoveredLines":"Uncovered lines","changedFilesCoverage":"Coverage of changed files","allCoverageFiles":"All coverage files","expandCoverageFiles":"Expand all coverage files","collapseCoverageFiles":"Collapse all coverage files","searchCoverageFiles":"Search targets, files, or paths","searchChangedCoverageFiles":"Search changed files or paths","sortCoverageFiles":"Sort coverage files by {column}","coverageTarget":"Target","coverageFile":"File","coverage":"Coverage","changeType":"Change","allowProvisioningUpdates":"Allow provisioning updates","buildSettingOverrides":"Approved build-setting overrides (JSON)","commandPreview":"Command preview","overridesInvalid":"Build-setting overrides must be a JSON object.","advancedJsonInvalid":"Advanced settings must be valid JSON.","buildNotFound":"Build not found","buildNotFoundDescription":"This build record does not exist or is no longer available.","backToBuilds":"Back to builds","buildId":"Build ID","deleteBuild":"Delete build","deleteBuildTitle":"Delete this build?","deleteBuildDescription":"This permanently deletes the build record and its build folder.","downloadArtifact":"Download","downloadIpa":"Download IPA","installOnDevice":"Install on device","installPreparing":"Preparing download…","installRequiresHttps":"Over-the-air installation requires a public HTTPS address. Open this page over HTTPS or set PUBLIC_BASE_URL.","installNotSupportedForAppStore":"App Store Connect builds cannot be installed over the air. Export with Debugging, Release Testing, or Enterprise instead.","installMissingBundleIdentifier":"The bundle identifier is unavailable. Export the archive again to enable installation.","installOpenOnDevice":"Open this page on an iPhone or iPad to install.","installFailed":"Could not start the installation.","copyInstallLink":"Copy install link","installLinkCopied":"Install link copied","ipaBundleIdentifier":"Bundle identifier","ipaBundleVersion":"Version","cancelBuild":"Cancel build","rebuild":"Rebuild","outOfDate":"Out of date","configureBuilds":"Go to repository settings to configure builds","selectedDevices":"{count} devices","selectRunDevices":"Run devices","noCompatibleDevices":"No compatible connected destinations are available.","run":"Run","exportArchive":"Export archive","logs":"Logs","expandLogs":"Expand logs","collapseLogs":"Collapse logs","noLogs":"No log events have been reported.","scrollLogsToTop":"Scroll logs to top","scrollLogsToBottom":"Scroll logs to bottom","commandSummary":"Command summary","copyCommand":"Copy command summary","commandCopied":"Command summary copied","copyFailed":"Could not copy to the clipboard.","noScriptExecutions":"No build scripts were selected.","overview":"Overview","scheme":"Scheme","head":"Commit","startedAt":"Started","finishedAt":"Finished","artifactDirectory":"Build folder","artifacts":"Artifacts","noArtifacts":"No artifacts were captured.","runsAndExports":"Runs and exports","archiveExport":"Archive export","noRunsOrExports":"This build has not been run or exported.","exportArchiveDescription":"Export the captured .xcarchive locally without uploading it.","distributionMethod":"Distribution method","exportMethod":{"DEBUGGING":"Debugging","RELEASE_TESTING":"Release Testing","ENTERPRISE":"Enterprise","APP_STORE_CONNECT":"App Store Connect"},"selectTeam":"Select a team","noTeams":"No development teams were found on the build agent.","signingCertificate":"Signing certificate","certificateAutomatic":"Chosen automatically","certificateMayNotMatch":"May not match selected profiles","provisioningProfiles":"Provisioning profiles","parseProvisioningProfiles":"Parse project","reparseProvisioningProfiles":"Parse again","parseProvisioningProfilesHelp":"Read the selected scheme’s signable targets and match installed profiles.","parseProvisioningProfilesEmpty":"Parse the project to replace JSON with one profile selector per app and extension.","noSigningRequirements":"No signable app or extension targets were found.","selectSigningSourceFirst":"Select an Xcode source, scheme, and configuration first.","selectProfile":"Select a profile","profileMayNotMatch":"May not match this bundle","manualBundleIdentifier":"Bundle identifier to add","manualBundleIdentifierPlaceholder":"com.example.app.extension","manualBundleIdentifierHelp":"Add any bundle identifier that parsing missed, then choose from every available profile.","addBundleIdentifier":"Add bundle identifier","removeBundleIdentifier":"Remove {bundleId}","showAllProfiles":"Show all","showMatching":"Show matching","noMatchingProfiles":"No installed profile matches this bundle for the selected method.","noArchiveBundles":"No signable bundles were found in the archive.","profileExpired":"expired","signingOptionsFailed":"Could not read signing options from the agent.","automatic":"Automatic","manual":"Manual","autoExport":"Automatically export successful archives","exportWhenComplete":"Export when complete","uploadSymbols":"Upload symbols","manageBuildNumber":"Manage app version and build number","internalTestFlightOnly":"Internal TestFlight only","stripSwiftSymbols":"Strip Swift symbols","thinning":"App thinning","iCloudEnvironment":"iCloud container environment","distributionBundleIdentifier":"Distribution bundle identifier","localExportOnly":"Exports are written locally as an IPA. These settings never upload to App Store Connect.","signingAssetCoverageWarning":"This identity is installed on {installed} of {total} signing-capable agents. Builds assigned elsewhere may fail to export.","iosApp":"iOS App","parseCheckout":"Checkout used for parsing","parseCheckoutDescription":"Saved configurations are repository-wide. Source discovery, validation, and parse status use the selected agent checkout.","checkoutUnavailable":"unavailable","addIosProject":"Add iOS App project","addIosProjectDescription":"Enable reusable Xcode build configurations for every checkout and worktree of this repository.","sharedProjectDescription":"Project definitions and allowed scripts are shared by the repository. Parse status below comes from this agent checkout.","buildConfigurations":"Build configurations","newConfiguration":"New configuration","lastParsed":"Parsed {value}","neverParsed":"Never parsed","stale":"stale metadata","savedValueUnavailable":"saved value unavailable","deleteConfiguration":"Delete build configuration","allowedScripts":"Allowed build scripts","createScriptsOnBuildsPage":"Create reusable scripts on the Builds page, then return here to allow them.","editConfiguration":"Edit build configuration","configurationDescription":"Select a repository-relative Xcode source and save its scheme, configuration, action, and optional advanced settings.","icon":"Icon","configurationIcons":{"none":"No icon","apple":"Apple","app-window":"App window","archive":"Archive","beaker":"Experiment","box":"Box","bug":"Bug","code":"Code","gauge":"Performance","hammer":"Build","layers":"Layers","package":"Package","play":"Run","rocket":"Release","shield":"Security","smartphone":"Mobile app","sparkles":"Feature","terminal":"Command line","test-tube":"Tests","wrench":"Tools"},"source":"Xcode source","selectSource":"Select a project, workspace, or root Package.swift","loadingSources":"Discovering sources…","defaultAction":"Default action","advancedJson":"Normalized advanced settings (JSON)","statuses":{"QUEUED":"Queued","PREPARING":"Preparing","RUNNING":"Running","SUCCEEDED":"Succeeded","FAILED":"Failed","CANCELLED":"Canceled"},"parseStatuses":{"UNPARSED":"Not parsed","PARSING":"Parsing","VALID":"Valid","INVALID":"Invalid","ERROR":"Error"},"actions":{"BUILD":"Build","TEST":"Test","ANALYZE":"Analyze","ARCHIVE":"Archive","BUILD_FOR_TESTING":"Build for testing","TEST_WITHOUT_BUILDING":"Test without building"},"failureBehaviors":{"FAIL_BUILD":"Fail the build","CONTINUE":"Continue with a warning"}},"devices":{"title":"Devices","description":"Enroll iPhones and iPads, review connection history, and register approved devices with Apple.","export":"Export Apple TSV","addDevice":"Add device","filterStatus":"Filter devices by status","allStatuses":"All statuses","sort":"Sort devices","sortOption":{"NEWEST":"Newest enrollment","NAME":"Device name","LAST_SEEN":"Last seen"},"loading":"Loading devices…","emptyTitle":"No devices enrolled","emptyDescription":"Create an enrollment profile on an iPhone or iPad to collect its identifier.","device":"Device","statusLabel":"Status","hardware":"Product","lastIp":"Last IP","enrolled":"Enrolled","registered":"Apple registration","lastSeen":"Last seen","viewDevice":"View {name}","unavailable":"Unavailable","status":{"PENDING":"Pending","REGISTERING":"Registering","REGISTERED":"Registered","REGISTRATION_FAILED":"Registration failed","REJECTED":"Rejected"},"back":"Back to devices","enrollTitle":"Enroll an iOS device","enrollDescription":"Install a temporary signed profile to send this device’s development identifier securely.","httpsRequired":"Enrollment is disabled because this address is not public HTTPS. Use a publicly trusted HTTPS reverse proxy or configure PUBLIC_BASE_URL.","collectedTitle":"Information collected","collectUdid":"The device UDID used for Apple development registration.","collectProduct":"The Apple product model reported by iOS.","collectVersion":"The installed iOS or iPadOS version.","collectIp":"The IP address observed during profile download and response, including which proxy header supplied it.","deviceLabel":"Device label","deviceLabelPlaceholder":"For example, iPhone","deviceLabelHelp":"Choose a recognizable label. Apple’s profile service cannot read the name assigned in Settings.","consent":"I consent to collection and storage of the device identifier, product, software version, and observed IP addresses for device management.","downloadProfile":"Download enrollment profile","notFound":"This device was not found.","rebuildWarning":"This device is registered with Apple. Existing IPAs do not gain access automatically; create a new provisioning profile and export a new IPA.","openBuilds":"Open Builds","configureAppleFirst":"Configure and verify App Store Connect credentials before registering this device.","openSettings":"Open Settings","generalInformation":"General information","deviceModel":"Device model","saveName":"Save label","udid":"Device UDID","hideUdid":"Hide device UDID","revealUdid":"Reveal device UDID","copyUdid":"Copy device UDID","osVersion":"Software version","appleDeviceId":"Apple resource ID","retryRegistration":"Retry registration","registerWithApple":"Register with Apple","reject":"Reject","delete":"Delete","ipHistory":"IP history","ipAddress":"IP address","source":"Enrollment step","forwardedBy":"Address header","observed":"Observed","noIpHistory":"No IP observations are stored for this device.","ipSource":{"PROFILE_DOWNLOAD":"Profile download","PROFILE_RESPONSE":"Profile response"},"ipHeaderSource":{"CLOUDFLARE":"Cloudflare (CF-Connecting-IP)","FORWARDED":"Proxy (X-Forwarded-For)","REAL_IP":"Origin proxy (X-Real-IP)"},"enrollmentHistory":"Enrollment history","noEnrollmentHistory":"No enrollment attempts are stored for this device.","firmwareTitle":"iOS firmware","firmwareDescription":"Firmware versions and current signing status provided by IPSW.me.","firmwareLoading":"Loading firmware information…","firmwareLoadFailed":"Firmware information could not be loaded: {error}","signingStatus":"Signing status","firmwareVersion":"Version","releaseDate":"Release date","fileSize":"Size","firmwareDownload":"Download","signed":"Signed","unsigned":"Unsigned","downloadFirmware":"Download","copyFirmwareUrl":"Copy download URL for iOS {version}","noFirmware":"No firmware information is available for this device.","created":"Created","completed":"Completed","failure":"Failure","enrollmentStatus":{"ISSUED":"Issued","DOWNLOADED":"Downloaded","COMPLETED":"Completed","EXPIRED":"Expired","FAILED":"Failed"},"registerTitle":"Register this device with Apple?","registerDescription":"The device will be reconciled by UDID and then added to your Apple Developer account if needed. This does not rebuild an IPA.","confirmRegister":"Register device","rejectTitle":"Reject this device?","rejectDescription":"The device remains in local history and cannot be registered. Delete it locally and enroll it again if you want to reconsider it.","confirmReject":"Reject device","deleteTitle":"Delete this device?","deleteDescription":"This deletes the local device, enrollment attempts, and IP history. Apple’s annual device registration is not removed.","confirmDelete":"Delete device"},"iosDeviceSettings":{"title":"iOS device enrollment","description":"Configure signed enrollment profiles and optional Apple device registration.","loading":"Loading iOS device settings…","unavailable":"Unavailable","profileTitle":"Enrollment profile","profileDescription":"These values identify the temporary profile shown in iOS Settings.","signerReady":"Signer ready","signerNotGenerated":"Signer not generated","organizationName":"Organization name","profileOrganizationHelp":"Use a recognizable name; iOS displays this organization while the enrollment profile is installed.","profileIdentifier":"Profile identifier","profileIdentifierHelp":"Use a stable reverse-DNS identifier, such as com.example.ai-development-environment.enrollment.","signerCreated":"Created {date}","signerExpires":"Expires {date}","unverifiedWarning":"The generated certificate is self-signed, so iOS shows the profile as Unverified. Review the displayed organization before installing it.","regenerateSigner":"Regenerate signer","regenerateTitle":"Regenerate the profile signer?","regenerateDescription":"New enrollment profiles will use a new private key and certificate. Profiles already downloaded can still return their device response until their token expires.","saveProfile":"Save profile settings","profileSaved":"Enrollment profile settings saved.","signerRegenerated":"A new profile signer was generated.","appleTitle":"App Store Connect Devices API","appleDescription":"Use an API key with Certificates, Identifiers & Profiles access. The private key is stored server-side and never returned to the browser.","appleSetupHelp":"In Users and Access → Integrations, create a Team API key with Certificates, Identifiers & Profiles access. Copy its Issuer ID and Key ID, then download and retain the .p8 file; Apple offers it only once.","openApiKeys":"Open App Store Connect API keys","verified":"Verified","notVerified":"Not verified","issuerId":"Issuer ID","keyId":"Key ID","privateKey":"App Store Connect .p8 private key","p8DropZone":"App Store Connect private key drop zone","p8DropHint":"Paste the key below, drop a .p8 file here, or choose a file.","chooseP8":"Choose App Store Connect .p8 file","privateKeyPlaceholder":"-----BEGIN PRIVATE KEY-----","privateKeyConfiguredPlaceholder":"A private key is stored. Leave blank to keep it.","privateKeyHelp":"Only ES256 PKCS#8 keys downloaded from App Store Connect are accepted.","privateKeyKeepHelp":"Leave this blank to keep the stored key, or provide a new .p8 key to replace it.","lastVerified":"Credentials verified {date}","lastTestFailed":"Credential test failed {date}","clear":"Clear credentials","clearTitle":"Clear App Store Connect credentials?","clearDescription":"Device registration will be disabled until another API key is saved and verified.","retest":"Retest","saveAndVerify":"Save and verify","appleSaved":"App Store Connect credentials saved and verified.","appleTestSucceeded":"App Store Connect credentials verified successfully.","appleCleared":"App Store Connect credentials cleared.","p8Invalid":"Choose a valid .p8 file containing a PKCS#8 private key.","p8ReadError":"The selected .p8 file could not be read.","p8Loaded":"Loaded {filename}. Save and verify to use this key."},"telemetry":{"consoleTitle":"Console Logs","consoleDescription":"Inspect searchable console output collected from builds and devices.","analyticsTitle":"Analytics Events","analyticsDescription":"Inspect product analytics events and their parameters as they arrive.","unifiedTitle":"Unified View","unifiedDescription":"Review console logs and analytics events in one live timeline.","separator":"Separator","deleteSeparator":"Delete separator {name}","settings":"Settings","refresh":"Refresh","search":"Search telemetry","searchPlaceholder":"Search text, glob, or regex","searchMode":"Search mode","searchModes":{"text":"Text","glob":"Glob","regex":"Regex"},"caseSensitive":"Case sensitive","filters":"Filters","columnsAction":"Columns","removeColumn":"Remove {column} column","export":"Export","edit":"Edit","done":"Done","on":"on","off":"off","allCollection":"All","consoleCollection":"Console","analyticsCollection":"Analytics","count":"{matching} of {total}","allResultsSelected":"All matching rows selected","selectedCount":"{count} selected","clearSelected":"Clear selected","clearAll":"Clear all","confirmClearRecords":"Clear records","confirmClearWithSeparators":"Clear with separators","clearBeforeSeparator":"Clear before latest separator","confirmClearBefore":"Confirm clear before separator","cancel":"Cancel","selectAll":"Select all matching rows","expand":"Expand row","collapse":"Collapse row","selectRow":"Select row","selectDay":"Select all rows for {day}","selectSeparator":"Select rows above {name}","loading":"Loading telemetry…","empty":"No matching telemetry.","loadMore":"Load more","highlight":"Highlight","clearHighlight":"Clear highlight","advancedFilters":"Advanced filters","advancedFiltersDescription":"Combine reusable conditions across standard fields and parameter paths.","match":"Match","allConditions":"All conditions","anyCondition":"Any condition","filterField":"Filter field","operator":"Operator","removeCondition":"Remove condition","filterValue":"Value","appliesTo":"Applies to","console":"Console","analytics":"Analytics","addCondition":"Add condition","savedFilters":"Saved filters","noSavedFilters":"No saved filters.","load":"Load","delete":"Delete","filterName":"Filter name","saveFilter":"Save filter","updateFilter":"Update filter","editSavedFilter":"Edit {name}","applyFilters":"Apply filters","clearFilters":"Clear filters","manageColumns":"Manage columns","manageColumnsDescription":"Choose, order, reset, and save the columns used by this view.","availableColumns":"Available columns","resetColumns":"Reset columns","columnPresets":"Column presets","noColumnPresets":"No column presets.","default":"Default","setDefault":"Set as default","presetName":"Preset name","setAsDefault":"Set as default","savePreset":"Save preset","updatePreset":"Update preset","editPreset":"Edit {name}","saveAs":"Save as","applyColumns":"Apply columns","telemetrySettings":"Observability settings","apiHelp":"API help","consoleApiHelpTitle":"Send console logs","analyticsApiHelpTitle":"Send analytics events","apiHelpDescription":"Review the REST ingestion contract and copy a ready-to-use Markdown reference.","copyMarkdownDocs":"Copy Markdown docs","markdownDocsCopied":"Markdown copied","settingsDescription":"Configure auto-detected and overridden ingestion origins shared by every view.","localBaseUrl":"Local base URL","remoteBaseUrl":"Remote base URL","override":"Override","detected":"Detected: {value}","effective":"Effective: {value}","localConsoleEndpoint":"Local console endpoint","localAnalyticsEndpoint":"Local analytics endpoint","remoteConsoleEndpoint":"Remote console endpoint","remoteAnalyticsEndpoint":"Remote analytics endpoint","copyEndpoint":"Copy {label}","clearValues":"Clear values","noValues":"No values","copyColumnValue":"Copy {label}: value","copyValue":"Copy value","filterByValue":"Filter by value","copyJsonDictionary":"Copy JSON dictionary","copyPathValues":"Copy path: value","copyParameterValue":"Copy {key}: value","addColumn":"Add {key} column","filterParameter":"Filter by {key}","saveSettings":"Save settings","addSeparator":"Add separator","addSeparatorDescription":"Insert a shared timeline boundary. The name is optional.","optionalName":"Optional name","exportTitle":"Export telemetry","exportSelectedDescription":"Export the {count} selected rows.","exportAllDescription":"Export every row matching the current search and filters.","format":"Format","exportFields":"Fields","exportFailed":"Export failed. Try again.","columns":{"time":"Time","source":"Source","level":"Level","category":"Category","message":"Message","buildId":"Build ID","sessionId":"Session ID","deviceIp":"Device IP","receivedAt":"Received","attributes":"Attributes","kind":"Kind","levelKind":"Level / Kind","name":"Name","screenName":"Screen Name","parameters":"Parameters","defaultParameters":"Default Parameters","additionalParameters":"Additional Parameters","detail":"Detail","attribute":"Attribute","defaultParameter":"Default","additionalParameter":"Additional"},"operators":{"CONTAINS":"contains","DOES_NOT_CONTAIN":"does not contain","IS":"is","IS_NOT":"is not","MATCHES_GLOB":"matches glob","MATCHES_REGEX":"matches regex","NO_REGEX_MATCH":"no regex match","IS_EMPTY":"is empty","IS_NOT_EMPTY":"is not empty"}},"provisioningProfiles":{"title":"Provisioning Profiles","description":"Inspect, sync, import, and remove Apple signing assets across build agents and the Apple Developer portal.","refresh":"Refresh inventory","refreshProgress":"Refreshing inventory: {complete} of {total} agents finished.","noRefreshAgents":"No signing-capable agents are available to refresh.","refreshStatus":{"QUEUED":"Queued","RUNNING":"Scanning","SUCCEEDED":"Complete","FAILED":"Failed","CANCELLED":"Cancelled","TIMED_OUT":"Timed out"},"agents":"Target agents","agentsDescription":"Older agents remain visible but cannot receive signing operations until they are updated.","unsupported":"Unsupported","uploadProfile":"Install a provisioning profile","uploadProfileDescription":"Install one .mobileprovision on every selected agent.","chooseMobileprovision":"Choose .mobileprovision","importIdentity":"Import a signing identity","importIdentityDescription":"Send an encrypted .p12 through one-time target-bound claims and import it for codesign.","passphrase":".p12 passphrase","chooseP12":"Choose encrypted .p12","localProfiles":"Local profiles","localCertificates":"Local identities","applePortal":"Apple portal","profilesDescription":"Profiles are grouped across agents by UUID and content hash.","deleteExpired":"Delete expired","deleteExpiredDescription":"Remove all expired local provisioning profiles from the selected agents?","name":"Name","bundleId":"Bundle ID","type":"Type","team":"Team","devices":"Devices","expires":"Expires","installedAgents":"Installed agents","expired":"Expired","syncMissing":"Sync to missing","viewProfile":"View details for {name}","download":"Download profile","delete":"Delete","deleteProfile":"Delete provisioning profile?","deleteProfileDescription":"Remove this profile from every listed agent. Xcode-managed profiles may be downloaded again.","fingerprints":"Fingerprints","privateKey":"Private key","available":"Available","missing":"Missing","deleteIdentity":"Delete signing identity?","deleteIdentityDescription":"Delete this identity and its private key from each listed agent login keychain.","portalProfiles":"Portal profiles","portalCertificates":"Portal certificates","createPortalProfile":"Create portal profile","createPortalProfileDescription":"Creates a profile from an existing bundle ID, certificate, and all applicable registered devices. Private keys are never generated.","profileName":"Profile name","selectBundleId":"Select bundle ID","selectCertificate":"Select certificate","create":"Create","confirmPortalDelete":"Confirm Apple portal change","portalDeleteDescription":"This immediately changes the Apple Developer account and can break signing on other machines.","none":"None found.","operations":"Recent operations","certificatesDescription":"Code-signing identities grouped by certificate fingerprint across agents.","noLocalProfiles":"No local provisioning profiles found.","noLocalCertificates":"No local signing identities found.","loadingPortal":"Loading Apple Developer resources…","loadingProfile":"Loading provisioning profile…","backToProfiles":"Back to provisioning profiles","profileNotFound":"This provisioning profile is no longer installed on an agent.","profileDetails":"Profile details","platforms":"Platforms","created":"Created","acceptedCertificates":"Accepted certificate fingerprints","provisionedDevices":"Provisioned devices","provisionedDevicesDescription":"This profile contains {count} device identifiers.","deviceListPendingRefresh":"Refresh signing inventory to load the device identifiers stored in this profile.","noProvisionedDevices":"This distribution profile is not restricted to individual devices.","device":"Device","udid":"Device UDID","status":"Status","unknownDevice":"Not enrolled in this app"},"apnsDevices":{"title":"APNs Devices","description":"App and MDM push-token registrations available for notification targeting.","loading":"Loading APNs devices…","empty":"No apps have registered an APNs token yet.","device":"Device / app","topic":"Topic","environment":"Environment","pushTypes":"Push types","token":"Masked token","status":"Status","lastRegistration":"Last registration","lastSend":"Last send","rename":"Rename","renameDescription":"Choose a label that makes this registration easy to target.","displayName":"Display name","save":"Save","activate":"Activate","deactivate":"Deactivate","delete":"Delete","deleteTitle":"Delete APNs registration?","deleteDescription":"Delete this token registration and detach it from retained delivery history?","apiHelp":"API help","apiHelpTitle":"Register an APNs device","apiHelpDescription":"POST strict JSON to the public registration endpoint. Tokens may be HEX or Base64; MDM registrations also require pushMagic."},"pushSettings":{"title":"Push Notifications","tokenAuthentication":"Token authentication (.p8)","tokenDescription":"Recommended for apps, Live Activities, VoIP, and other non-MDM push types.","tokenSetupHelp":"Create a key with Apple Push Notifications service (APNs) enabled, copy its Key ID, and download and retain the .p8 file; Apple offers it only once.","createTokenKey":"Create an APNs key","configured":"Configured","notConfigured":"Not configured","teamId":"Team ID","keyId":"Key ID","teamIdHelp":"Copy the Team ID from your Apple Developer membership details.","openMembership":"Open membership details","chooseP8":"Drop or choose the APNs .p8 key","replaceP8":"Drop a new .p8 to rotate the key","p8Ready":".p8 ready to save","remove":"Remove","removeToken":"Remove APNs token key?","removeTokenDescription":"Pushes using token authentication will stop until a replacement .p8 is configured.","save":"Save","certificateAuthentication":"Certificate authentication (.p12)","certificateDescription":"Multiple topic-bound certificates are supported and are required for MDM wake-ups.","certificateSetupHelp":"Create the appropriate push certificate, install it with its private key in Keychain Access, then export both as a password-protected .p12. Use the certificate topic (the app bundle ID or MDM topic) and select its sandbox or production environment.","createCertificate":"Create an APNs certificate","name":"Credential name","topic":"Topic","environment":"Environment","chooseP12":"Choose encrypted .p12","p12Ready":".p12 ready to save","passphrase":".p12 passphrase","addCertificate":"Add certificate","expires":"Expires {date}","lastTested":"Last tested {date}","retest":"Retest","removeCertificate":"Remove APNs certificate?","removeCertificateDescription":"Sends using this certificate will fail after it is removed."},"pushNotifications":{"title":"Push Notifications","description":"Compose, validate, target, queue, and inspect Apple push notifications.","editor":"Notification editor","editorDescription":"APNs payload shape, headers, byte limits, and eligible devices update with the selected push type.","presetName":"Preset name","savePreset":"Save current","presetSaved":"Preset saved.","content":"Content","headers":"Headers","advanced":"Advanced aps","specialized":"Specialized","pushType":"Push type","titleField":"Title","subtitle":"Subtitle","body":"Body","badge":"Badge","sound":"Sound","category":"Category","threadId":"Thread ID","contentAvailable":"Content available","mutableContent":"Mutable content","criticalSound":"Critical sound","soundVolume":"Sound volume","topic":"APNs topic","priority":"Priority","apnsId":"APNs ID","expiration":"Expiration","collapseId":"Collapse ID","certificateCredential":"Certificate credential","selectCredential":"Select certificate","titleLocKey":"Title localization key","titleLocArgs":"Title localization arguments","subtitleLocKey":"Subtitle localization key","subtitleLocArgs":"Subtitle localization arguments","bodyLocKey":"Body localization key","bodyLocArgs":"Body localization arguments","launchImage":"Launch image","summaryArg":"Summary argument","summaryArgCount":"Summary argument count","targetContentId":"Target content ID","interruptionLevel":"Interruption level","relevanceScore":"Relevance score","customJson":"Custom root JSON","timestamp":"Timestamp","event":"Event","attributesType":"Attributes type","contentState":"Content state JSON","attributes":"Attributes JSON","staleDate":"Stale date","dismissalDate":"Dismissal date","inputPushToken":"Request an input push token","mdmHelp":"MDM uses the selected certificate and each registration’s PushMagic. Its payload contains mdm only and no aps dictionary.","specializedHelp":"Use Custom root JSON for the framework-specific {type} application payload; APNs headers and limits are still validated.","payloadPreview":"Live JSON preview","recipients":"Recipients","directDevices":"Direct device tokens","directToken":"One-off Live Activity token","liveActivityToken":"Live Activity push token","allEligibleDevices":"All eligible devices ({count})","selectedDevices":"{count} devices selected","searchDevices":"Search devices…","noEligibleDevices":"No compatible active registrations.","saveDraft":"Save draft","draftSaved":"Draft saved to history.","send":"Send","queued":"Push batch queued.","broadcastChannels":"Live Activity broadcast channels","broadcastDescription":"Channel storage policy is immutable after creation.","bundleId":"Bundle ID","noStorage":"No storage","mostRecent":"Most recent message","createChannel":"Create channel","deleteChannel":"Delete broadcast channel?","deleteChannelDescription":"Delete this channel. Existing presets and history keep only its identifier.","delete":"Delete","history":"History","presets":"Presets","created":"Created","deliveryMode":"Delivery","result":"Success / failure","status":"Status","payload":"Payload","attempts":"attempts","load":"Load into editor","saveAsPreset":"Save as preset","presetFromHistory":"History","resend":"Resend","deleteHistory":"Delete history item?","deleteHistoryDescription":"Delete this batch, its payload snapshot, and recipient outcomes.","clearHistory":"Clear all history","clearHistoryDescription":"Delete every completed send and draft? Active batches are preserved.","name":"Name","updated":"Updated","loadEdit":"Load / edit","deletePreset":"Delete preset?","deletePresetDescription":"Delete this reusable payload and header preset.","historyDescription":"Sent batches, drafts, and per-recipient APNs outcomes.","presetsDescription":"Reusable notification content and headers; recipients are selected when sending.","noHistory":"No push notification history yet.","noPresets":"No push notification presets saved yet."},"status":{"online":"Online","offline":"Offline","queued":"Queued","running":"Running","succeeded":"Succeeded","failed":"Failed","cancelled":"Cancelled","timed_out":"Timed out"}}')}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=messages_en_json_%5Bjson%5D_cjs_206072-._.js.map
|