@ai-development-environment/server 0.0.30 → 0.0.32

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.
Files changed (192) hide show
  1. package/package.json +1 -1
  2. package/standalone/.next/BUILD_ID +1 -1
  3. package/standalone/.next/app-path-routes-manifest.json +1 -0
  4. package/standalone/.next/build-manifest.json +3 -3
  5. package/standalone/.next/prerender-manifest.json +3 -3
  6. package/standalone/.next/routes-manifest.json +9 -0
  7. package/standalone/.next/server/app/[locale]/actions/page.js +2 -1
  8. package/standalone/.next/server/app/[locale]/actions/page.js.nft.json +1 -1
  9. package/standalone/.next/server/app/[locale]/actions/page_client-reference-manifest.js +1 -1
  10. package/standalone/.next/server/app/[locale]/agents/[id]/page.js +2 -1
  11. package/standalone/.next/server/app/[locale]/agents/[id]/page.js.nft.json +1 -1
  12. package/standalone/.next/server/app/[locale]/agents/[id]/page_client-reference-manifest.js +1 -1
  13. package/standalone/.next/server/app/[locale]/agents/page.js +2 -1
  14. package/standalone/.next/server/app/[locale]/agents/page.js.nft.json +1 -1
  15. package/standalone/.next/server/app/[locale]/agents/page_client-reference-manifest.js +1 -1
  16. package/standalone/.next/server/app/[locale]/build-data/page.js +2 -1
  17. package/standalone/.next/server/app/[locale]/build-data/page.js.nft.json +1 -1
  18. package/standalone/.next/server/app/[locale]/build-data/page_client-reference-manifest.js +1 -1
  19. package/standalone/.next/server/app/[locale]/builds/[buildId]/coverage/page.js +2 -1
  20. package/standalone/.next/server/app/[locale]/builds/[buildId]/coverage/page.js.nft.json +1 -1
  21. package/standalone/.next/server/app/[locale]/builds/[buildId]/coverage/page_client-reference-manifest.js +1 -1
  22. package/standalone/.next/server/app/[locale]/builds/[buildId]/page.js +2 -1
  23. package/standalone/.next/server/app/[locale]/builds/[buildId]/page.js.nft.json +1 -1
  24. package/standalone/.next/server/app/[locale]/builds/[buildId]/page_client-reference-manifest.js +1 -1
  25. package/standalone/.next/server/app/[locale]/builds/page.js +2 -1
  26. package/standalone/.next/server/app/[locale]/builds/page.js.nft.json +1 -1
  27. package/standalone/.next/server/app/[locale]/builds/page_client-reference-manifest.js +1 -1
  28. package/standalone/.next/server/app/[locale]/codebases/[codebaseId]/page.js +2 -1
  29. package/standalone/.next/server/app/[locale]/codebases/[codebaseId]/page.js.nft.json +1 -1
  30. package/standalone/.next/server/app/[locale]/codebases/[codebaseId]/page_client-reference-manifest.js +1 -1
  31. package/standalone/.next/server/app/[locale]/codebases/page.js +2 -1
  32. package/standalone/.next/server/app/[locale]/codebases/page.js.nft.json +1 -1
  33. package/standalone/.next/server/app/[locale]/codebases/page_client-reference-manifest.js +1 -1
  34. package/standalone/.next/server/app/[locale]/codebases/repositories/[repositoryId]/page.js +2 -1
  35. package/standalone/.next/server/app/[locale]/codebases/repositories/[repositoryId]/page.js.nft.json +1 -1
  36. package/standalone/.next/server/app/[locale]/codebases/repositories/[repositoryId]/page_client-reference-manifest.js +1 -1
  37. package/standalone/.next/server/app/[locale]/comments/page.js +2 -1
  38. package/standalone/.next/server/app/[locale]/comments/page.js.nft.json +1 -1
  39. package/standalone/.next/server/app/[locale]/comments/page_client-reference-manifest.js +1 -1
  40. package/standalone/.next/server/app/[locale]/jira/cache/page.js +2 -1
  41. package/standalone/.next/server/app/[locale]/jira/cache/page.js.nft.json +1 -1
  42. package/standalone/.next/server/app/[locale]/jira/cache/page_client-reference-manifest.js +1 -1
  43. package/standalone/.next/server/app/[locale]/jira/cache/tickets/[issueKey]/page.js +2 -1
  44. package/standalone/.next/server/app/[locale]/jira/cache/tickets/[issueKey]/page.js.nft.json +1 -1
  45. package/standalone/.next/server/app/[locale]/jira/cache/tickets/[issueKey]/page_client-reference-manifest.js +1 -1
  46. package/standalone/.next/server/app/[locale]/jira/tickets/[issueKey]/page.js +2 -1
  47. package/standalone/.next/server/app/[locale]/jira/tickets/[issueKey]/page.js.nft.json +1 -1
  48. package/standalone/.next/server/app/[locale]/jira/tickets/[issueKey]/page_client-reference-manifest.js +1 -1
  49. package/standalone/.next/server/app/[locale]/jira/tickets/page.js +2 -1
  50. package/standalone/.next/server/app/[locale]/jira/tickets/page.js.nft.json +1 -1
  51. package/standalone/.next/server/app/[locale]/jira/tickets/page_client-reference-manifest.js +1 -1
  52. package/standalone/.next/server/app/[locale]/jobs/[jobId]/page.js +2 -1
  53. package/standalone/.next/server/app/[locale]/jobs/[jobId]/page.js.nft.json +1 -1
  54. package/standalone/.next/server/app/[locale]/jobs/[jobId]/page_client-reference-manifest.js +1 -1
  55. package/standalone/.next/server/app/[locale]/page.js +2 -1
  56. package/standalone/.next/server/app/[locale]/page.js.nft.json +1 -1
  57. package/standalone/.next/server/app/[locale]/page_client-reference-manifest.js +1 -1
  58. package/standalone/.next/server/app/[locale]/pull-requests/[owner]/[repository]/[number]/page.js +2 -1
  59. package/standalone/.next/server/app/[locale]/pull-requests/[owner]/[repository]/[number]/page.js.nft.json +1 -1
  60. package/standalone/.next/server/app/[locale]/pull-requests/[owner]/[repository]/[number]/page_client-reference-manifest.js +1 -1
  61. package/standalone/.next/server/app/[locale]/pull-requests/page.js +2 -1
  62. package/standalone/.next/server/app/[locale]/pull-requests/page.js.nft.json +1 -1
  63. package/standalone/.next/server/app/[locale]/pull-requests/page_client-reference-manifest.js +1 -1
  64. package/standalone/.next/server/app/[locale]/settings/page.js +2 -1
  65. package/standalone/.next/server/app/[locale]/settings/page.js.nft.json +1 -1
  66. package/standalone/.next/server/app/[locale]/settings/page_client-reference-manifest.js +1 -1
  67. package/standalone/.next/server/app/[locale]/skills/[skillId]/page.js +2 -1
  68. package/standalone/.next/server/app/[locale]/skills/[skillId]/page.js.nft.json +1 -1
  69. package/standalone/.next/server/app/[locale]/skills/[skillId]/page_client-reference-manifest.js +1 -1
  70. package/standalone/.next/server/app/[locale]/skills/groups/[groupId]/page.js +2 -1
  71. package/standalone/.next/server/app/[locale]/skills/groups/[groupId]/page.js.nft.json +1 -1
  72. package/standalone/.next/server/app/[locale]/skills/groups/[groupId]/page_client-reference-manifest.js +1 -1
  73. package/standalone/.next/server/app/[locale]/skills/groups/page.js +2 -1
  74. package/standalone/.next/server/app/[locale]/skills/groups/page.js.nft.json +1 -1
  75. package/standalone/.next/server/app/[locale]/skills/groups/page_client-reference-manifest.js +1 -1
  76. package/standalone/.next/server/app/[locale]/skills/page.js +2 -1
  77. package/standalone/.next/server/app/[locale]/skills/page.js.nft.json +1 -1
  78. package/standalone/.next/server/app/[locale]/skills/page_client-reference-manifest.js +1 -1
  79. package/standalone/.next/server/app/[locale]/skills/sync/[runId]/page.js +2 -1
  80. package/standalone/.next/server/app/[locale]/skills/sync/[runId]/page.js.nft.json +1 -1
  81. package/standalone/.next/server/app/[locale]/skills/sync/[runId]/page_client-reference-manifest.js +1 -1
  82. package/standalone/.next/server/app/[locale]/tools/page.js +2 -1
  83. package/standalone/.next/server/app/[locale]/tools/page.js.nft.json +1 -1
  84. package/standalone/.next/server/app/[locale]/tools/page_client-reference-manifest.js +1 -1
  85. package/standalone/.next/server/app/[locale]/usage/page.js +2 -1
  86. package/standalone/.next/server/app/[locale]/usage/page.js.nft.json +1 -1
  87. package/standalone/.next/server/app/[locale]/usage/page_client-reference-manifest.js +1 -1
  88. package/standalone/.next/server/app/[locale]/worktrees/[worktreeId]/page.js +2 -1
  89. package/standalone/.next/server/app/[locale]/worktrees/[worktreeId]/page.js.nft.json +1 -1
  90. package/standalone/.next/server/app/[locale]/worktrees/[worktreeId]/page_client-reference-manifest.js +1 -1
  91. package/standalone/.next/server/app/[locale]/worktrees/page.js +2 -1
  92. package/standalone/.next/server/app/[locale]/worktrees/page.js.nft.json +1 -1
  93. package/standalone/.next/server/app/[locale]/worktrees/page_client-reference-manifest.js +1 -1
  94. package/standalone/.next/server/app/_global-error.html +1 -1
  95. package/standalone/.next/server/app/_global-error.rsc +1 -1
  96. package/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  97. package/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  98. package/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  99. package/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  100. package/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  101. package/standalone/.next/server/app/_not-found.html +1 -1
  102. package/standalone/.next/server/app/_not-found.rsc +1 -1
  103. package/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  104. package/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  105. package/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  106. package/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  107. package/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  108. package/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  109. package/standalone/.next/server/app/api/build-artifact-uploads/[uploadId]/route.js +1 -1
  110. package/standalone/.next/server/app/api/build-artifact-uploads/[uploadId]/route.js.nft.json +1 -1
  111. package/standalone/.next/server/app/api/builds/[buildId]/artifacts/[artifactId]/manifest.plist/route/app-paths-manifest.json +3 -0
  112. package/standalone/.next/server/app/api/builds/[buildId]/artifacts/[artifactId]/manifest.plist/route/build-manifest.json +9 -0
  113. package/standalone/.next/server/app/api/builds/[buildId]/artifacts/[artifactId]/manifest.plist/route/server-reference-manifest.json +4 -0
  114. package/standalone/.next/server/app/api/builds/[buildId]/artifacts/[artifactId]/manifest.plist/route.js +11 -0
  115. package/standalone/.next/server/app/api/builds/[buildId]/artifacts/[artifactId]/manifest.plist/route.js.map +5 -0
  116. package/standalone/.next/server/app/api/builds/[buildId]/artifacts/[artifactId]/manifest.plist/route.js.nft.json +1 -0
  117. package/standalone/.next/server/app/api/builds/[buildId]/artifacts/[artifactId]/manifest.plist/route_client-reference-manifest.js +3 -0
  118. package/standalone/.next/server/app/api/builds/[buildId]/artifacts/[artifactId]/route.js +4 -3
  119. package/standalone/.next/server/app/api/builds/[buildId]/artifacts/[artifactId]/route.js.nft.json +1 -1
  120. package/standalone/.next/server/app/api/codebases/by-path/route.js.nft.json +1 -1
  121. package/standalone/.next/server/app/api/codebases/route.js.nft.json +1 -1
  122. package/standalone/.next/server/app/api/graphql/route.js.nft.json +1 -1
  123. package/standalone/.next/server/app/api/mcp/route.js.nft.json +1 -1
  124. package/standalone/.next/server/app/api/tools/call/route.js.nft.json +1 -1
  125. package/standalone/.next/server/app/api/tools/catalog/route.js.nft.json +1 -1
  126. package/standalone/.next/server/app/api/worktrees/[worktreeId]/diff-image/route.js +1 -1
  127. package/standalone/.next/server/app/api/worktrees/[worktreeId]/diff-image/route.js.nft.json +1 -1
  128. package/standalone/.next/server/app-paths-manifest.json +1 -0
  129. package/standalone/.next/server/chunks/07_e_builds_[buildId]_artifacts_[artifactId]_manifest_plist_route_actions_18mzaf3.js +3 -0
  130. package/standalone/.next/server/chunks/[root-of-the-server]__08mnmfs._.js +3 -0
  131. package/standalone/.next/server/chunks/[root-of-the-server]__0906ea6._.js +3 -0
  132. package/standalone/.next/server/chunks/{[root-of-the-server]__09skp6r._.js → [root-of-the-server]__0cz4ap5._.js} +1 -1
  133. package/standalone/.next/server/chunks/[root-of-the-server]__0nvcazp._.js +3 -0
  134. package/standalone/.next/server/chunks/{[root-of-the-server]__1wtng3p._.js → [root-of-the-server]__12807ia._.js} +1 -1
  135. package/standalone/.next/server/chunks/[root-of-the-server]__1csx222._.js +3 -0
  136. package/standalone/.next/server/chunks/{[root-of-the-server]__0zyqmd4._.js → [root-of-the-server]__1ix62p0._.js} +3 -3
  137. package/standalone/.next/server/chunks/[root-of-the-server]__1j-hk6b._.js +3 -0
  138. package/standalone/.next/server/chunks/{[root-of-the-server]__15aat79._.js → [root-of-the-server]__1j0u03u._.js} +1 -1
  139. package/standalone/.next/server/chunks/[root-of-the-server]__1qmvsu_._.js +3 -0
  140. package/standalone/.next/server/chunks/[root-of-the-server]__1w59u6o._.js +3 -0
  141. package/standalone/.next/server/chunks/{[root-of-the-server]__0-ypkf7._.js → [root-of-the-server]__1z-3x8k._.js} +1 -1
  142. package/standalone/.next/server/chunks/_0exkna-._.js +51 -1
  143. package/standalone/.next/server/chunks/_0jurkow._.js +1 -1
  144. package/standalone/.next/server/chunks/_0rx5rfm._.js +1 -1
  145. package/standalone/.next/server/chunks/_0tufgj0._.js +111 -61
  146. package/standalone/.next/server/chunks/_0w2eghf._.js +51 -1
  147. package/standalone/.next/server/chunks/_152rnkf._.js +3 -3
  148. package/standalone/.next/server/chunks/_16x77b_._.js +1 -1
  149. package/standalone/.next/server/chunks/_1dbqy8c._.js +3 -3
  150. package/standalone/.next/server/chunks/_1vrixpc._.js +3 -3
  151. package/standalone/.next/server/chunks/_1yfz-9u._.js +3 -3
  152. package/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_08x37wy.js +6 -0
  153. package/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0eghv0a.js +3 -0
  154. package/standalone/.next/server/chunks/ssr/[root-of-the-server]__08bbv6z._.js +1 -1
  155. package/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ckj6wg._.js +1 -1
  156. package/standalone/.next/server/chunks/ssr/[root-of-the-server]__0qy28ku._.js +3 -0
  157. package/standalone/.next/server/chunks/ssr/[root-of-the-server]__1potsqg._.js +1 -1
  158. package/standalone/.next/server/chunks/ssr/_0a1ligo._.js +1 -1
  159. package/standalone/.next/server/chunks/ssr/{_1n9rteq._.js → _1f5k6bj._.js} +2 -2
  160. package/standalone/.next/server/chunks/ssr/messages_de_json_[json]_cjs_1uig1ud._.js +1 -1
  161. package/standalone/.next/server/chunks/ssr/messages_en_json_[json]_cjs_206072-._.js +1 -1
  162. package/standalone/.next/server/chunks/ssr/messages_es_json_[json]_cjs_082yukd._.js +1 -1
  163. package/standalone/.next/server/chunks/ssr/messages_fr_json_[json]_cjs_0j6-w0i._.js +1 -1
  164. package/standalone/.next/server/chunks/ssr/node_modules_0obs0k7._.js +5 -0
  165. package/standalone/.next/server/chunks/ssr/node_modules_next_1ep9xf4._.js +3 -0
  166. package/standalone/.next/server/chunks/ssr/src_components_builds_build-detail-page_tsx_0q1lvps._.js +20 -10
  167. package/standalone/.next/server/functions-config-manifest.json +5 -2
  168. package/standalone/.next/server/middleware-build-manifest.js +3 -3
  169. package/standalone/.next/server/pages/404.html +1 -1
  170. package/standalone/.next/server/pages/500.html +1 -1
  171. package/standalone/.next/server/server-reference-manifest.js +1 -1
  172. package/standalone/.next/server/server-reference-manifest.json +1 -1
  173. package/standalone/.next/static/chunks/{1ut0xkaqsykm4.js → 0mq066ue0yufb.js} +1 -1
  174. package/standalone/.next/static/chunks/{041g9raf1naqv.js → 175269y15-grc.js} +1 -1
  175. package/standalone/.next/static/chunks/17t4ft9o1tqw3.js +35 -0
  176. package/standalone/.next/static/chunks/{3q0q6_ntq8aa5.js → 208k3moxxd_53.js} +1 -1
  177. package/standalone/.next/static/chunks/2zwijj9t6y7gn.js +7 -0
  178. package/standalone/.next/static/chunks/398uw5_4-ciaz.css +1 -0
  179. package/standalone/.next/static/chunks/{29zl8lgsa28tb.js → 3l2g83119oyl0.js} +1 -1
  180. package/standalone/src/services/builds/artifact-cache.test.ts +271 -0
  181. package/standalone/src/services/builds/artifact-cache.ts +272 -0
  182. package/standalone/src/services/builds/artifact-transfer.ts +2 -1
  183. package/standalone/src/services/builds/builds.service.ts +139 -56
  184. package/standalone/.next/server/chunks/[root-of-the-server]__02vqwey._.js +0 -3
  185. package/standalone/.next/server/chunks/[root-of-the-server]__0rwpsai._.js +0 -3
  186. package/standalone/.next/server/chunks/ssr/[root-of-the-server]__10-ftkj._.js +0 -3
  187. package/standalone/.next/server/chunks/ssr/node_modules_1n5939e._.js +0 -5
  188. package/standalone/.next/static/chunks/3p7wbgo7qd6_m.css +0 -1
  189. package/standalone/.next/static/chunks/3vg6y29m047x9.js +0 -31
  190. /package/standalone/.next/static/{ePu377E66yy0icQx3ykQJ → qUqJkVkzos1XoXFl7PSxx}/_buildManifest.js +0 -0
  191. /package/standalone/.next/static/{ePu377E66yy0icQx3ykQJ → qUqJkVkzos1XoXFl7PSxx}/_clientMiddlewareManifest.js +0 -0
  192. /package/standalone/.next/static/{ePu377E66yy0icQx3ykQJ → qUqJkVkzos1XoXFl7PSxx}/_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","agents":"Agents","usage":"Usage","github":"GitHub","pullRequests":"Pull Requests","actions":"Actions","comments":"Comments","jira":"Jira","tickets":"Tickets","cache":"Cache","system":"System","skills":"Skills","tools":"Tools","settings":"Settings"},"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.","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"}},"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 the integrations used by this 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."},"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","pullRequestFilter":"Open pull request","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.","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","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.","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}","attempt":"Attempt {attempt}","view":"View","viewWorktree":"View","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…"},"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.","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."},"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","projectOnly":"Project 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, and action.","postBuildScriptHelp":"Default-export a function that also receives buildFolder, failed, cancelled, errorCode, and error.","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","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","automatic":"Automatic","manual":"Manual","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","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"},"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"}},"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","agents":"Agents","usage":"Usage","github":"GitHub","pullRequests":"Pull Requests","actions":"Actions","comments":"Comments","jira":"Jira","tickets":"Tickets","cache":"Cache","system":"System","skills":"Skills","tools":"Tools","settings":"Settings"},"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.","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"}},"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 the integrations used by this 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."},"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","pullRequestFilter":"Open pull request","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.","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","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.","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}","attempt":"Attempt {attempt}","view":"View","viewWorktree":"View","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…"},"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.","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."},"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","projectOnly":"Project 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, and action.","postBuildScriptHelp":"Default-export a function that also receives buildFolder, failed, cancelled, errorCode, and error.","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","provisioningProfiles":"Provisioning profiles","selectProfile":"Select a profile","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","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","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"},"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"}},"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