pulls.review 0.3.1 → 0.3.3

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 (107) hide show
  1. package/README.md +1 -1
  2. package/dist/client/assets/ActionButton-BYTohOMA.js +1 -0
  3. package/dist/client/assets/ActionIconButton-B2taMg1G.js +1 -0
  4. package/dist/client/assets/{ChatMessage-Ccffh_8Z.js → ChatMessage-BRtxpV-j.js} +44 -44
  5. package/dist/client/assets/ChatWidget-DGoJBAHG.js +1 -0
  6. package/dist/client/assets/{DisplayFileIcon-DWj5Zxib.js → DisplayFileIcon-CgcKzuIF.js} +3 -3
  7. package/dist/client/assets/LandingHero-BcDLrBWu.js +1 -0
  8. package/dist/client/assets/LocalAgentSettings-DnWX-4ja.js +1 -0
  9. package/dist/client/assets/MarkdownMermaid-CZsnBTo5.js +134 -0
  10. package/dist/client/assets/ModelPicker-DJOF4_oE.js +3 -0
  11. package/dist/client/assets/SelectViewport-CLu2vHZ1.js +1 -0
  12. package/dist/client/assets/_repo_-B9Xsfdgp.js +22 -0
  13. package/dist/client/assets/analyze-Dt4HsiiL.js +1 -0
  14. package/dist/client/assets/{core-messages-ClW97ZVa.js → core-messages-BKVsL0s6.js} +1 -1
  15. package/dist/client/assets/dark-BBICmi9u.js +1 -0
  16. package/dist/client/assets/de-X0_7KOpR.js +1 -0
  17. package/dist/client/assets/decode-BMLx_QAi.js +1 -0
  18. package/dist/client/assets/{diagnostics-wATZy2jc.js → diagnostics-FPncUZ9A.js} +1 -1
  19. package/dist/client/assets/diff-BVBdGkpM.js +37 -0
  20. package/dist/client/assets/diff-CNjyt43T.js +1 -0
  21. package/dist/client/assets/diffs-store-M5WP-Rye.js +1432 -0
  22. package/dist/client/assets/dist-B3ulq7dg.js +3 -0
  23. package/dist/client/assets/en-4wf48bhl.js +1 -0
  24. package/dist/client/assets/es-z_aJuLEM.js +1 -0
  25. package/dist/client/assets/fr-BSSnc845.js +1 -0
  26. package/dist/client/assets/glimmer-js-BheR6Tf0.js +1 -0
  27. package/dist/client/assets/glimmer-ts-B3Q3-uij.js +1 -0
  28. package/dist/client/assets/handlebars-qjPKy-PP.js +1 -0
  29. package/dist/client/assets/i18n-BaWfCCFj.js +2 -0
  30. package/dist/client/assets/id-DpmfJDwA.js +1 -0
  31. package/dist/client/assets/index-B346Vuj9.css +1 -0
  32. package/dist/client/assets/index-DAczNoU5.js +2 -0
  33. package/dist/client/assets/install-BtceKESn.js +4 -0
  34. package/dist/client/assets/it-DnvTXQOp.js +1 -0
  35. package/dist/client/assets/ja-EKD3f8pB.js +1 -0
  36. package/dist/client/assets/ko-3WANYsbE.js +1 -0
  37. package/dist/client/assets/llm-DwxQbGwE.js +88 -0
  38. package/dist/client/assets/llm-store-CBiRLoQj.js +1 -0
  39. package/dist/client/assets/local-agents-Bhc2OYII.js +1 -0
  40. package/dist/client/assets/pages-IPE7GMm2.js +1 -0
  41. package/dist/client/assets/pages-local-B-qUAdMG.js +1 -0
  42. package/dist/client/assets/pages-web-CV7QqqdA.js +21 -0
  43. package/dist/client/assets/portalTarget-DKryvPGY.js +1 -0
  44. package/dist/client/assets/pt-BR-BC7-mMJ3.js +1 -0
  45. package/dist/client/assets/rpc-backends-Bm_fmyjf.js +1 -0
  46. package/dist/client/assets/ru-ChI2XEFF.js +1 -0
  47. package/dist/client/assets/{ruby-CfFGiaYl.js → ruby-CaMjWH7T.js} +1 -1
  48. package/dist/client/assets/runtime-dom.esm-bundler-D9VhaAqy.js +2 -0
  49. package/dist/client/assets/{source-CvnvCX42.js → source-BWADV8Aq.js} +1 -1
  50. package/dist/client/assets/time-ago-CMSCAiQn.js +1 -0
  51. package/dist/client/assets/upload-riZ3DIfL.js +1 -0
  52. package/dist/client/assets/useCommitView-CgsbPEnq.js +1 -0
  53. package/dist/client/assets/useDocumentTitle-D1Q-0ufQ.js +92 -0
  54. package/dist/client/assets/useNonce-AntPf6d2.js +1 -0
  55. package/dist/client/assets/useTypeahead-DtM58Ahg.js +1 -0
  56. package/dist/client/assets/utils-DaMPgnza.js +1 -0
  57. package/dist/client/assets/vue-i18n-X72ILEtz.js +3 -0
  58. package/dist/client/assets/zh-CN-DXr4JfHY.js +1 -0
  59. package/dist/client/assets/zh-TW-CmCU_HxU.js +1 -0
  60. package/dist/client/index.html +9 -8
  61. package/dist/{devframe-DH2vpasJ.mjs → devframe-C2cyQ64F.mjs} +153 -6
  62. package/dist/devframe.mjs +1 -1
  63. package/dist/index.mjs +6 -2
  64. package/package.json +2 -2
  65. package/dist/client/assets/ActionButton-V4dY2wPS.js +0 -1
  66. package/dist/client/assets/ActionIconButton-4b5xelMn.js +0 -1
  67. package/dist/client/assets/ChatWidget-BFjNWi3R.js +0 -1
  68. package/dist/client/assets/GithubAvatar-DGJrpCsX.js +0 -1
  69. package/dist/client/assets/LandingHero-DWdx6_8g.js +0 -1
  70. package/dist/client/assets/LocalAgentSettings-COjAszEL.js +0 -1
  71. package/dist/client/assets/ModelPicker-CDTiUMZ3.js +0 -3
  72. package/dist/client/assets/SelectViewport-DF4P4Akh.js +0 -1
  73. package/dist/client/assets/_repo_-D3lApLQL.js +0 -22
  74. package/dist/client/assets/analyze-BgWIIbl3.js +0 -1
  75. package/dist/client/assets/de-BoIOg_UW.js +0 -1
  76. package/dist/client/assets/diff-CNRGXNmw.js +0 -1
  77. package/dist/client/assets/diff-Cx43r-a6.js +0 -37
  78. package/dist/client/assets/diffs-store-D3BzIMVi.js +0 -1431
  79. package/dist/client/assets/en-CbWYrCM5.js +0 -1
  80. package/dist/client/assets/es-CqEudTln.js +0 -1
  81. package/dist/client/assets/fr-qiQQ-4AO.js +0 -1
  82. package/dist/client/assets/i18n-Cx8anq4V.js +0 -2
  83. package/dist/client/assets/id-BkDzu8gq.js +0 -1
  84. package/dist/client/assets/index-De-UtOit.css +0 -1
  85. package/dist/client/assets/index-KDAJXf4E.js +0 -2
  86. package/dist/client/assets/install-D-S32JY7.js +0 -4
  87. package/dist/client/assets/it-tZZZbUKN.js +0 -1
  88. package/dist/client/assets/ja-kGPK4Fmt.js +0 -1
  89. package/dist/client/assets/ko-CULiae40.js +0 -1
  90. package/dist/client/assets/llm-Le5CPsNn.js +0 -88
  91. package/dist/client/assets/llm-store-CzMnTJNa.js +0 -1
  92. package/dist/client/assets/local-agents-BQLn-Ppw.js +0 -1
  93. package/dist/client/assets/pages-ByEfDjFa.js +0 -1
  94. package/dist/client/assets/pages-local-CVPpEWZ_.js +0 -1
  95. package/dist/client/assets/pages-web-BLxMupU5.js +0 -21
  96. package/dist/client/assets/portalTarget-DQg8GgWm.js +0 -1
  97. package/dist/client/assets/pt-BR-BcwoZLSs.js +0 -1
  98. package/dist/client/assets/rpc-backends-DYtuJyeF.js +0 -1
  99. package/dist/client/assets/ru-DOordgLF.js +0 -1
  100. package/dist/client/assets/runtime-dom.esm-bundler-Du_ZCcVN.js +0 -2
  101. package/dist/client/assets/time-ago-Bdao9Hh1.js +0 -1
  102. package/dist/client/assets/upload-DRO7bkBV.js +0 -1
  103. package/dist/client/assets/useDocumentTitle-BQJCa6Lm.js +0 -92
  104. package/dist/client/assets/useNonce-CwUrgryd.js +0 -1
  105. package/dist/client/assets/vue-i18n-CGHHpbTP.js +0 -5
  106. package/dist/client/assets/zh-CN-CmTqGY9s.js +0 -1
  107. package/dist/client/assets/zh-TW-DKGtbJQy.js +0 -1
@@ -1 +0,0 @@
1
- import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";var t=e({analyze:()=>l,category:()=>_,chat:()=>y,common:()=>n,default:()=>w,embed:()=>s,errors:()=>S,file:()=>p,fileStatus:()=>h,group:()=>d,guide:()=>i,landing:()=>r,load:()=>a,local:()=>C,note:()=>f,pr:()=>o,prState:()=>g,pulls:()=>c,review:()=>v,reviewProgress:()=>m,rules:()=>x,settings:()=>b,share:()=>u}),n={cancel:`Cancel`,save:`Save`,remove:`Remove`,retry:`Retry`,close:`Close`,dismiss:`Dismiss`,refresh:`Refresh`,settings:`Settings`,you:`you`,loading:`Loading…`,send:`Send`,stop:`Stop`,clear:`Clear`,reply:`Reply`,submit:`Submit`,abort:`Abort`,rerun:`Rerun`,files:`{n} file | {n} files`,subgroups:`{n} subgroup | {n} subgroups`,githubRepository:`GitHub repository`,avatar:`{login}'s avatar`},r={dropHint:`Drop to load your diff / .patch file`,tagline:`Groups changed files, summarizes what matters, review them one scope at a time. Everything works locally in your browser.`,documentTitle:`Pull reviews made clear and organized`,open:`Open`,pasteHint:`Paste any GitHub pull request URL, or pick a demo below.`,recentlyViewed:`// recently viewed`,recentRepositories:`// recently viewed repositories`,tryDemos:`// try some demos`,demoBefore:`// before`,demoAfter:`// after`,moreFiles:`... {n} more files`,demoTitle:`feat: share an AI analysis as a PR comment and load shared results`,demoSummary:`One reviewer with an API key posts their analysis to the PR; everyone else loads it without a token.`,demoGroups:{store:`Shared analysis store & comment contract`,ui:`Share result UI`,refactor:`Store refactor: result to root`,tests:`Tests`,docs:`Docs & deps`},uploadTitle:`Review a diff without a PR`,uploadDescription:`Upload or paste a unified diff, or drop a {diff} / {patch} file anywhere on this page.`,uploadButton:`Upload a diff`,embedTitle:`Use it embedded on github.com`,embedDescription:`With {tampermonkey} or {violentmonkey} installed, a pulls.review drawer appears on every pull request page.`,installUserscript:`Install userscript`,bookmarkletTitle:`Jump between github.com and pulls.review`,bookmarkletDescription:`Can't install extensions? Drag this bookmarklet to your bookmarks bar to open the current pull request on pulls.review, and back.`,bookmarkletDrag:`Drag me to your bookmarks bar`,actionsTitle:`Set up auto analyze with GitHub Actions`,actionsDescription:`Analyze every pull request once in CI and post the result as a PR comment, so reviewers don't each need a model key.`,cliTitle:`Run on local git changes with the CLI`,cliDescription:`Review your working tree, a commit or a branch before you push, grouped and summarized like a PR.`,viewGuide:`View guide`},i={userscript:{title:`Use pulls.review embedded on github.com`,intro:`The userscript adds a pulls.review drawer directly to pull request pages on github.com, with grouped files and summaries, so you don't have to switch tabs.`,manager:`Install a userscript manager: {tampermonkey} or {violentmonkey}.`,install:`Install the pulls.review userscript. Your manager asks you to confirm.`,open:`Open any pull request on github.com and click the {tab} tab next to "Files changed".`,ai:`github.com blocks the requests AI analysis needs, so the drawer shows analyses shared as PR comments. Open the PR on pulls.review to run a new one.`},bookmarklet:{title:`Jump between github.com and pulls.review`,intro:`A bookmarklet is a bookmark that runs a small script. It works in any browser, with no extension to install, and opens the page you are on in the other site.`,bar:`Show your bookmarks bar, for example with {shortcut}.`,drag:`Drag this button onto the bookmarks bar:`,use:`On a pull request, commit or compare page on github.com, click the bookmark to open it on pulls.review. Click it again to go back.`},actions:{title:`Auto analyze with GitHub Actions`,intro:`Let CI analyze each pull request once, as soon as it's opened or updated. Everyone who opens the PR, here or in the github.com drawer, sees the same grouped summary right away. Nobody needs their own model key, and pull requests from forks get it too.`,secret:`Add your model key as a repository secret, for example {name}.`,workflow:`Add this workflow to the repository:`,result:`Open or update a pull request to try it. The analysis arrives as a comment, and re-runs on an unchanged PR skip the model call.`,options:`The {provider} is inferred from the key. Set {provider}, {model} or {locale} to override it. See the {readme} for every option.`},cli:{title:`Review local git changes with the CLI`,intro:`Review your own change before anyone else does. The CLI opens your branch, a commit or your uncommitted work in pulls.review, so you can see how the change reads, grouped and summarized, before you push or open a PR.`,branch:`In a git repository, run this to review your current branch against the default branch:`,target:`Or choose what to review:`,browser:`It opens {url} in your browser to visualize your local changes. Confirm the tab with the one-time code printed in your terminal. From there, you can also pick other branches or commits to compare.`}},a={title:`Load a diff`,description:`Paste or drop a unified diff / .patch file to review it.`,pasteLabel:`Paste a unified diff / .patch`,chooseFile:`Or choose a .diff/.patch file`,loadButton:`Load diff`,parsing:`Parsing diff…`,parseFailed:`Couldn't parse this diff`,noDiff:`No diff loaded`,noDiffHint:`Go to the home page and use the upload button to paste or drop a diff.`,goHome:`Go home`},o={loading:`Loading pull request…`,loadFailed:`Couldn't load this pull request`,somethingWrong:`Something went wrong`,newCommits:`This pull request has new commits since it was cached.`,autoRefreshNextTime:`Auto refresh next time`,endOfDiff:`You have reached the end of the diff.`,analyzeBy:`Analyze by`,rules:`Rules`,ai:`AI`,by:`by`,sharedBy:`Viewing AI analysis shared by`,sharedAnalysis:`Viewing Shared Analysis`,reviewedOf:`/ {total} reviewed`,openInSite:`Open in pulls.review`},s={reviewChanges:`Review Changes`,updateUserscript:`Update userscript`},c={loading:`Loading pull requests…`,loadFailed:`Couldn't load pull requests`,open:`{n} open`,search:`Filter pull requests`,empty:`There aren't any open pull requests`,noMatches:`No pull requests match your search`,searchingAll:`Searching all {n} open pull requests…`,loadingMore:`Loading more…`,openedBy:`opened {time} by {author}`,milestone:`Milestone`,comments:`{n} comment | {n} comments`,linkedIssues:`{n} linked issue | {n} linked issues`,assignedTo:`Assigned to {login}`,groups:`{n} group | {n} groups`,viewedHint:`Viewed in this browser`,aiAvailable:`AI analysis available`,sort:{label:`Sort`,"recently-updated":`Recently updated`,"least-recently-updated":`Least recently updated`,newest:`Newest`,oldest:`Oldest`,"most-commented":`Most commented`,"least-commented":`Least commented`},review:{approved:`Approved`,changes_requested:`Changes requested`,review_required:`Review required`},checks:{success:`All checks have passed`,failure:`Some checks were not successful`,pending:`Some checks haven't completed yet`}},l={setupKeys:`Setup API Keys`,analyzing:`Analyzing…`,failed:`Analysis failed`,failedTitle:`AI analysis failed: {message}`,reanalyze:`Re-analyze`,withAi:`Analyze with AI`,statusTitle:`AI analysis`,starting:`Starting…`,thinking:`Thinking… (step {step})`,reading:`Reading {n} file: {first} | Reading {n} files: {first}`,organizing:`Organizing groups…`,notConfigured:`AI analysis is not configured: add a gateway token or a vendor API key in Settings`,chatFailed:`Chat request failed`,agentSessionLost:`The agent no longer has this conversation. Re-analyze to chat.`},u={button:`Share result`,updateButton:`Update shared comment`,sharing:`Sharing…`,tooltip:`Post this analysis as a comment on the pull request so others can load it`,needsToken:`A GitHub token with write access is required to share`,failed:`Sharing failed: {message}`,titleUpdate:`Update your shared analysis`,titleShare:`Share this analysis on GitHub`,willUpdate:`Your existing {comment} on this pull request will be updated as {user} with your GitHub token.`,willPost:`A public comment will be posted on this pull request as {user} with your GitHub token.`,commentLink:`comment`,contains:`The comment contains:`,containsLink:`a link to open this review on {site}`,containsJson:`the grouping and summaries of this AI analysis as JSON inside a collapsed block`,excludes:`Your chat messages, API keys, or anything else from your settings will not be included.`,anyoneCanLoad:`Anyone viewing the pull request can load the shared analysis.`,englishRecommended:`If you are working on a public project, we recommend sharing the result in English to make it helpful to the community.`,share:`Share`,update:`Update`,shareAnyway:`Share anyway`,updateAnyway:`Update anyway`,loadReplaces:`Load a shared AI analysis? It replaces yours:`,available:`Shared AI analyses of this pull request available:`,staleTitle:`Analyzed before the latest commits`,outdated:`(outdated)`,inLanguage:`Analyzed in {language}`,notShared:`{login} has not shared an analysis of this pull request.`},d={toggle:`Toggle group`,filesReviewed:`{reviewed} / {total} files reviewed`,subgroupsOf:`subgroups of`,hideSubgroups:`Hide subgroups`,showSubgroups:`Show subgroups`,navTabs:`Show groups as tabs`,navSidebar:`Show groups as sidebar`,uncategorized:`Uncategorized`,uncategorizedSummary:`Files not covered by the current analysis.`},f={critical:`Review carefully`},p={layoutTree:`Show files as tree`,layoutList:`Show files as list`,markReviewed:`Mark as reviewed`,markFolderReviewed:`Mark all files in {name} as reviewed`,changedSinceReviewed:`This file was previously reviewed but changed in later commits`,resolved:`{n} resolved`,binary:`Binary file`,binaryNotShown:`Binary file not shown.`,tooLarge:`Diff too large to show.`,loadFailed:`Failed to load`,loadFull:`Load full file content`,expand:`Expand file`,collapse:`Collapse file`,collapseMenu:`Expand or collapse files`,expandAll:`Expand all files`,collapseAll:`Collapse all files`,collapseReviewed:`Collapse reviewed files`,noLongerInDiff:`No longer in this diff`,removed:`removed`},m={title:`Review progress`,markAll:`Mark all as reviewed`,reset:`Reset review state`,invert:`Invert review state`,status:{reviewed:`Reviewed`,changed:`Changed since review`,unreviewed:`Not reviewed`}},h={added:`added`,removed:`removed`,modified:`modified`,renamed:`renamed`,copied:`copied`},g={open:`open`,draft:`draft`,closed:`closed`,merged:`merged`},_={ui:`UI`,api:`API`,core:`core`,data:`data`,cli:`CLI`,security:`security`,tests:`tests`,docs:`docs`,examples:`examples`,deps:`dependencies`,build:`build`,scripts:`scripts`,config:`config`,i18n:`i18n`,assets:`assets`,other:`other`},v={addReview:`Add Review`,hideComments:`Hide review comments`,showComments:`Show review comments`,reviews:`Reviews`,approved:`approved`,changesRequested:`requested changes`,commented:`commented`,dismissed:`review dismissed`,reviewChanges:`Review changes`,includesPending:`Submitting includes your {n} pending comment. | Submitting includes your {n} pending comments.`,summaryPlaceholder:`Leave a summary (optional for Approve)`,comment:`Comment`,approve:`Approve`,requestChanges:`Request changes`,ownPrCommentOnly:`You cannot approve or request changes on your own pull requests.`,discard:`Discard review`,leaveComment:`Leave a comment`,addSingle:`Add single comment`,addToReview:`Add review comment`,startReview:`Start a review`,pending:`Pending`,editComment:`Edit comment`,deleteComment:`Delete comment`,replyPlaceholder:`Reply…`,resolve:`Resolve`},y={title:`Ask about this PR`,collapse:`Collapse`,reanalyzeToEnable:`Re-analyze to enable chat`,thinking:`Thinking…`,placeholder:`Ask about this PR…`,updatedGrouping:`Updated grouping: {n} groups`,readFiles:`Read {n} file | Read {n} files`,updatingGrouping:`Updating grouping…`,submittingGrouping:`Submitting grouping…`,requestFailed:`Request failed`,stopped:`stopped`},b={layout:`Diff layout`,wrapLines:`Wrap lines`,unified:`Unified`,split:`Split`,syntaxTheme:{label:`Syntax theme`,light:`Light mode`,dark:`Dark mode`},cached:`Cached pull requests`,autoRefresh:`Auto refresh when new commits are found`,language:`Language`,token:{label:`GitHub Personal Access Token`,optional:`Optional for public repos; required for private repos, or leaving reviews.`,scopes:`Reviews need the {repo} scope (classic token) or {fineGrained} (fine-grained token)`,storedLocally:`Stored only in this browser.`,generate:`Generate one on GitHub →`,fineGrained:`Fine-grained token (no classic scopes)`,updated:`Updated`,expires:`Expires`,neverExpires:`Never expires`,change:`Change token`,checking:`Checking token…`,couldNotVerify:`Could not verify this token.`},tabs:{appearance:`Appearance`,behavior:`Behavior`,github:`GitHub`,ai:`AI Analysis`,notSetUp:`Not set up yet`},llm:{title:`AI Analysis`,description:`Configure a model provider to enable AI-generated summaries. Stored only in this browser and sent only to the provider you select.`,provider:`Provider`,baseUrl:`Base URL`,baseUrlDescription:`Any OpenAI-compatible chat completions endpoint (OpenAI itself, a local server, etc.).`,apiKey:`API key`,gatewayHint:`A {link} token, reaching any of its supported vendors with a single token.`,anthropicHint:`An {link}, called directly from this browser (no gateway).`,anthropicLink:`Anthropic API key`,openaiHint:`The API key for the endpoint above.`,createKey:`Create one on {provider} →`,configured:`Configured`,changeKey:`Change key`,model:`Model`,modelListFailed:`Could not load the model list ({error}). Enter a model id manually.`,embedUnavailable:`AI features aren't available in embedded mode`,embedReason:`github.com's strict Content Security Policy blocks the requests AI features need here. {link} to use them.`,goToWebsite:`Go to the website`,agent:`Agent`,agentNeedsCli:"Local agents run in the pulls.review CLI: start it in a repository with `npx pulls.review` and pick one there.",agentDetecting:`Looking for agent CLIs…`,agentNone:`No agent CLI found on this machine.`,agentHint:`A coding agent installed on this machine, signed in with its own account: {claude}, {opencode}, or {pi}. It reads the patch and the repository, never writes.`,agentPick:`Pick an agent…`},models:{placeholder:`model id`,loading:`Loading models…`,search:`Search models…`,noMatch:`No matching model`,useCustom:`Use “{id}”`,free:`Free`,priceTitle:`Input {input}/M · Output {output}/M tokens`,agentDefault:`Agent default`}},x={allFiles:`All files`,code:{label:`Code`,summary:`Source changes.`},other:{label:`Other`,summary:`Other changes that don't fit an existing category.`},docs:{label:`Docs`,summary:`Documentation updates.`},tests:{label:`Tests`,summary:`Test coverage for the change.`},config:{label:`Config`,summary:`Configuration changes.`},deps:{label:`Dependencies`,summary:`Dependency version changes.`},generated:{label:`Generated`,summary:`Generated or build output changes.`}},S={tokenRequired:`A GitHub token is required to write to this pull request.`,diffNotLoaded:`The diff has not finished loading yet.`,noViewer:`Could not determine the GitHub user of this token.`,tokenRejected:`GitHub rejected this token (401). Check that it was pasted completely and has not been revoked.`,tooLarge:`The analysis is too large to share as a comment ({n} characters).`},C={loading:`Loading local changes…`,loadFailed:`Couldn't load these changes`,auth:{title:`Enter the code from your terminal`,hint:`pulls.review printed a 6-digit code in the terminal it runs in.`,invalid:`That code didn't work. Check the terminal and try again.`,submit:`Continue`},picker:{tagline:`Review your local branches, ranges and uncommitted changes like a pull request: grouped, summarized, one scope at a time.`,title:`Review local changes`,base:`Base`,head:`Head`,compare:`Compare`,shortcuts:`Shortcuts`,worktree:`Uncommitted changes`,recentCommits:`Recent commits`,branches:`Branches`,against:`against {base}`,current:`Checked out`,github:`Or a GitHub pull request, compare or commit`}},w={common:n,landing:r,guide:i,load:a,pr:o,embed:s,pulls:c,analyze:l,share:u,group:d,note:f,file:p,reviewProgress:m,fileStatus:h,prState:g,category:_,review:v,chat:y,settings:b,rules:x,errors:S,local:C};export{t as n,w as t};
@@ -1 +0,0 @@
1
- var e={cancel:`Cancelar`,save:`Guardar`,remove:`Quitar`,retry:`Reintentar`,close:`Cerrar`,dismiss:`Descartar`,refresh:`Actualizar`,settings:`Ajustes`,you:`tú`,loading:`Cargando…`,send:`Enviar`,stop:`Detener`,clear:`Limpiar`,reply:`Responder`,submit:`Enviar`,abort:`Abortar`,rerun:`Volver a ejecutar`,files:`{n} archivo | {n} archivos`,subgroups:`{n} subgrupo | {n} subgrupos`,githubRepository:`Repositorio de GitHub`,avatar:`Avatar de {login}`},t={dropHint:`Suelta para cargar tu archivo diff / .patch`,tagline:`Agrupa los archivos cambiados, resume lo importante y revísalos ámbito por ámbito. Todo funciona localmente en tu navegador.`,documentTitle:`Revisiones de pull requests claras y organizadas`,open:`Abrir`,pasteHint:`Pega la URL de cualquier pull request de GitHub o elige una demo abajo.`,recentlyViewed:`// vistos recientemente`,recentRepositories:`// repositorios vistos recientemente`,tryDemos:`// prueba algunas demos`,demoBefore:`// antes`,demoAfter:`// después`,moreFiles:`... {n} archivos más`,demoTitle:`feat: compartir un análisis de IA como comentario del PR y cargar resultados compartidos`,demoSummary:`Un revisor con API key publica su análisis en el PR; el resto lo carga sin token.`,demoGroups:{store:`Store de análisis compartidos y contrato del comentario`,ui:`UI para compartir resultados`,refactor:`Refactor del store: resultado a la raíz`,tests:`Pruebas`,docs:`Docs y dependencias`},uploadTitle:`Revisa un diff sin PR`,uploadDescription:`Sube o pega un unified diff, o suelta un archivo {diff} / {patch} en cualquier parte de esta página.`,uploadButton:`Subir un diff`,embedTitle:`Úsalo integrado en github.com`,embedDescription:`Con {tampermonkey} o {violentmonkey} instalado, aparece un panel de pulls.review en cada página de pull request.`,installUserscript:`Instalar userscript`,bookmarkletTitle:`Salta entre github.com y pulls.review`,bookmarkletDescription:`¿No puedes instalar extensiones? Arrastra este bookmarklet a tu barra de marcadores para abrir la pull request actual en pulls.review, y volver.`,bookmarkletDrag:`Arrástrame a tu barra de marcadores`,actionsTitle:`Configura el análisis automático con GitHub Actions`,actionsDescription:`Analiza cada pull request una vez en CI y publica el resultado como comentario, para que cada revisor no necesite su propia clave de modelo.`,cliTitle:`Ejecútalo sobre cambios locales de git con la CLI`,cliDescription:`Revisa tu árbol de trabajo, un commit o una rama antes de hacer push, agrupado y resumido como un PR.`,viewGuide:`Ver guía`},n={userscript:{title:`Usa pulls.review integrado en github.com`,intro:`El userscript añade un panel de pulls.review directamente en las páginas de pull requests de github.com, con archivos agrupados y resúmenes, para que no tengas que cambiar de pestaña.`,manager:`Instala un gestor de userscripts: {tampermonkey} o {violentmonkey}.`,install:`Instala el userscript de pulls.review. Tu gestor te pedirá confirmación.`,open:`Abre cualquier pull request en github.com y haz clic en la pestaña {tab} junto a "Files changed".`,ai:`github.com bloquea las solicitudes que necesita el análisis con IA, así que el panel muestra los análisis compartidos como comentarios del PR. Abre el PR en pulls.review para ejecutar uno nuevo.`},bookmarklet:{title:`Salta entre github.com y pulls.review`,intro:`Un bookmarklet es un marcador que ejecuta un pequeño script. Funciona en cualquier navegador, sin instalar ninguna extensión, y abre la página actual en el otro sitio.`,bar:`Muestra tu barra de marcadores, por ejemplo con {shortcut}.`,drag:`Arrastra este botón a la barra de marcadores:`,use:`En una página de pull request, commit o comparación de github.com, haz clic en el marcador para abrirla en pulls.review. Haz clic otra vez para volver.`},actions:{title:`Análisis automático con GitHub Actions`,intro:`Deja que la CI analice cada pull request una vez, en cuanto se abre o se actualiza. Todos los que abren el PR, aquí o en el panel de github.com, ven al instante el mismo resumen agrupado. Nadie necesita su propia clave de modelo, y los pull requests desde forks también lo reciben.`,secret:`Añade tu clave de modelo como secreto del repositorio, por ejemplo {name}.`,workflow:`Añade este workflow al repositorio:`,result:`Abre o actualiza un pull request para probarlo. El análisis llega como comentario, y las nuevas ejecuciones sobre un PR sin cambios omiten la llamada al modelo.`,options:`El {provider} se deduce de la clave. Define {provider}, {model} o {locale} para cambiarlo. Consulta el {readme} para ver todas las opciones.`},cli:{title:`Revisa cambios locales de git con la CLI`,intro:`Revisa tu propio cambio antes que nadie. La CLI abre tu rama, un commit o tu trabajo sin commit en pulls.review, para que veas cómo se lee el cambio, agrupado y resumido, antes de hacer push o abrir un PR.`,branch:`En un repositorio git, ejecuta esto para revisar tu rama actual contra la rama por defecto:`,target:`O elige qué revisar:`,browser:`Abre {url} en tu navegador para visualizar tus cambios locales. Confirma la pestaña con el código de un solo uso que aparece en tu terminal. Desde ahí también puedes elegir otras ramas o commits para comparar.`}},r={title:`Cargar un diff`,description:`Pega o suelta un archivo unified diff / .patch para revisarlo.`,pasteLabel:`Pega un unified diff / .patch`,chooseFile:`O elige un archivo .diff/.patch`,loadButton:`Cargar diff`,parsing:`Analizando el diff…`,parseFailed:`No se pudo analizar este diff`,noDiff:`Ningún diff cargado`,noDiffHint:`Ve a la página de inicio y usa el botón de subir para pegar o soltar un diff.`,goHome:`Ir al inicio`},i={loading:`Cargando pull request…`,loadFailed:`No se pudo cargar este pull request`,somethingWrong:`Algo salió mal`,newCommits:`Este pull request tiene commits nuevos desde que se guardó en caché.`,autoRefreshNextTime:`Actualizar automáticamente la próxima vez`,endOfDiff:`Has llegado al final del diff.`,analyzeBy:`Analizar con`,rules:`Reglas`,ai:`IA`,by:`por`,sharedBy:`Viendo el análisis de IA compartido por`,sharedAnalysis:`Viendo el análisis compartido`,reviewedOf:`/ {total} revisados`,openInSite:`Abrir en pulls.review`},a={reviewChanges:`Revisar cambios`,updateUserscript:`Actualizar userscript`},o={loading:`Cargando pull requests…`,loadFailed:`No se pudieron cargar los pull requests`,open:`{n} abiertos`,search:`Filtrar pull requests`,empty:`No hay pull requests abiertos`,noMatches:`Ningún pull request coincide con tu búsqueda`,searchingAll:`Buscando en los {n} pull requests abiertos…`,loadingMore:`Cargando más…`,openedBy:`abierto {time} por {author}`,milestone:`Hito`,comments:`{n} comentario | {n} comentarios`,linkedIssues:`{n} issue vinculado | {n} issues vinculados`,assignedTo:`Asignado a {login}`,groups:`{n} grupo | {n} grupos`,viewedHint:`Visto en este navegador`,aiAvailable:`Análisis de IA disponible`,sort:{label:`Ordenar`,"recently-updated":`Actualizados recientemente`,"least-recently-updated":`Actualizados hace más tiempo`,newest:`Más recientes`,oldest:`Más antiguos`,"most-commented":`Más comentados`,"least-commented":`Menos comentados`},review:{approved:`Aprobado`,changes_requested:`Cambios solicitados`,review_required:`Revisión requerida`},checks:{success:`Todas las comprobaciones pasaron`,failure:`Algunas comprobaciones fallaron`,pending:`Algunas comprobaciones aún no han terminado`}},s={setupKeys:`Configurar claves API`,analyzing:`Analizando…`,failed:`El análisis falló`,failedTitle:`El análisis de IA falló: {message}`,reanalyze:`Volver a analizar`,withAi:`Analizar con IA`,statusTitle:`Análisis de IA`,starting:`Iniciando…`,thinking:`Pensando… (paso {step})`,reading:`Leyendo {n} archivo: {first} | Leyendo {n} archivos: {first}`,organizing:`Organizando grupos…`,notConfigured:`El análisis de IA no está configurado: añade un token de gateway o una API key de proveedor en Ajustes`,chatFailed:`La solicitud del chat falló`,agentSessionLost:`El agente ya no tiene esta conversación. Vuelve a analizar para chatear.`},c={button:`Compartir resultado`,updateButton:`Actualizar comentario compartido`,sharing:`Compartiendo…`,tooltip:`Publica este análisis como comentario en el pull request para que otros puedan cargarlo`,needsToken:`Para compartir se necesita un token de GitHub con permiso de escritura`,failed:`Error al compartir: {message}`,titleUpdate:`Actualizar tu análisis compartido`,titleShare:`Compartir este análisis en GitHub`,willUpdate:`Tu {comment} existente en este pull request se actualizará como {user} con tu token de GitHub.`,willPost:`Se publicará un comentario público en este pull request como {user} con tu token de GitHub.`,commentLink:`comentario`,contains:`El comentario contiene:`,containsLink:`un enlace para abrir esta revisión en {site}`,containsJson:`la agrupación y los resúmenes de este análisis de IA como JSON dentro de un bloque plegado`,excludes:`Tus mensajes de chat, claves API o cualquier otro dato de tus ajustes no se incluirán.`,anyoneCanLoad:`Cualquiera que vea el pull request puede cargar el análisis compartido.`,englishRecommended:`Si trabajas en un proyecto público, te recomendamos compartir el resultado en inglés para que sea útil a la comunidad.`,share:`Compartir`,update:`Actualizar`,shareAnyway:`Compartir de todos modos`,updateAnyway:`Actualizar de todos modos`,loadReplaces:`¿Cargar un análisis de IA compartido? Reemplazará el tuyo:`,available:`Hay análisis de IA compartidos de este pull request:`,staleTitle:`Analizado antes de los últimos commits`,outdated:`(desactualizado)`,inLanguage:`Analizado en {language}`,notShared:`{login} no ha compartido un análisis de este pull request.`},l={toggle:`Plegar o desplegar grupo`,filesReviewed:`{reviewed} / {total} archivos revisados`,subgroupsOf:`subgrupos de`,hideSubgroups:`Ocultar subgrupos`,showSubgroups:`Mostrar subgrupos`,navTabs:`Mostrar grupos como pestañas`,navSidebar:`Mostrar grupos como barra lateral`,uncategorized:`Sin categoría`,uncategorizedSummary:`Archivos no cubiertos por el análisis actual.`},u={critical:`Revisar con cuidado`},d={layoutTree:`Mostrar archivos como árbol`,layoutList:`Mostrar archivos como lista`,markReviewed:`Marcar como revisado`,markFolderReviewed:`Marcar todos los archivos de {name} como revisados`,changedSinceReviewed:`Este archivo ya fue revisado, pero cambió en commits posteriores`,resolved:`{n} resueltos`,binary:`Archivo binario`,binaryNotShown:`El archivo binario no se muestra.`,tooLarge:`El diff es demasiado grande para mostrarse.`,loadFailed:`Error al cargar`,loadFull:`Cargar el contenido completo del archivo`,expand:`Desplegar archivo`,collapse:`Plegar archivo`,collapseMenu:`Expandir o plegar archivos`,expandAll:`Expandir todos los archivos`,collapseAll:`Plegar todos los archivos`,collapseReviewed:`Plegar archivos revisados`,noLongerInDiff:`Ya no está en este diff`,removed:`eliminado`},f={title:`Progreso de la revisión`,markAll:`Marcar todos como revisados`,reset:`Restablecer el estado de revisión`,invert:`Invertir el estado de revisión`,status:{reviewed:`Revisado`,changed:`Cambió desde la revisión`,unreviewed:`Sin revisar`}},p={added:`añadido`,removed:`eliminado`,modified:`modificado`,renamed:`renombrado`,copied:`copiado`},m={open:`abierto`,draft:`borrador`,closed:`cerrado`,merged:`fusionado`},h={ui:`UI`,api:`API`,core:`núcleo`,data:`datos`,cli:`CLI`,security:`seguridad`,tests:`pruebas`,docs:`documentación`,examples:`ejemplos`,deps:`dependencias`,build:`build`,scripts:`scripts`,config:`configuración`,i18n:`i18n`,assets:`recursos`,other:`otros`},g={addReview:`Añadir revisión`,hideComments:`Ocultar comentarios de revisión`,showComments:`Mostrar comentarios de revisión`,reviews:`Revisiones`,approved:`aprobó`,changesRequested:`solicitó cambios`,commented:`comentó`,dismissed:`revisión descartada`,reviewChanges:`Revisar cambios`,includesPending:`Al enviar se incluirá tu {n} comentario pendiente. | Al enviar se incluirán tus {n} comentarios pendientes.`,summaryPlaceholder:`Deja un resumen (opcional al aprobar)`,comment:`Comentar`,approve:`Aprobar`,requestChanges:`Solicitar cambios`,discard:`Descartar revisión`,leaveComment:`Deja un comentario`,addSingle:`Añadir comentario único`,addToReview:`Añadir comentario de revisión`,startReview:`Iniciar una revisión`,pending:`Pendiente`,editComment:`Editar comentario`,deleteComment:`Eliminar comentario`,replyPlaceholder:`Responder…`,resolve:`Resolver`},_={title:`Preguntar sobre este PR`,collapse:`Contraer`,reanalyzeToEnable:`Vuelve a analizar para habilitar el chat`,thinking:`Pensando…`,placeholder:`Pregunta sobre este PR…`,updatedGrouping:`Agrupación actualizada: {n} grupos`,readFiles:`Leyó {n} archivo | Leyó {n} archivos`,updatingGrouping:`Actualizando agrupación…`,submittingGrouping:`Enviando agrupación…`,requestFailed:`La solicitud falló`,stopped:`detenido`},v={layout:`Disposición del diff`,wrapLines:`Ajustar líneas`,unified:`Unificada`,split:`Dividida`,syntaxTheme:{label:`Tema de sintaxis`,light:`Modo claro`,dark:`Modo oscuro`},cached:`Pull requests en caché`,autoRefresh:`Actualizar automáticamente al encontrar commits nuevos`,language:`Idioma`,token:{label:`Token de acceso personal de GitHub`,optional:`Opcional para repositorios públicos; necesario para repositorios privados o para dejar revisiones.`,scopes:`Las revisiones necesitan el ámbito {repo} (token clásico) o {fineGrained} (token granular)`,storedLocally:`Se guarda solo en este navegador.`,generate:`Generar uno en GitHub →`,fineGrained:`Token granular (sin ámbitos clásicos)`,updated:`Actualizado`,expires:`Expira`,neverExpires:`No expira`,change:`Cambiar token`,checking:`Comprobando token…`,couldNotVerify:`No se pudo verificar este token.`},tabs:{appearance:`Apariencia`,behavior:`Comportamiento`,github:`GitHub`,ai:`Análisis con IA`,notSetUp:`Aún sin configurar`},llm:{title:`Análisis de IA`,description:`Configura un proveedor de modelos para habilitar resúmenes generados por IA. Se guarda solo en este navegador y se envía únicamente al proveedor que elijas.`,provider:`Proveedor`,baseUrl:`URL base`,baseUrlDescription:`Cualquier endpoint de chat completions compatible con OpenAI (OpenAI, un servidor local, etc.).`,apiKey:`API key`,gatewayHint:`Un token de {link}, que llega a cualquiera de sus proveedores compatibles con un solo token.`,anthropicHint:`Una {link}, llamada directamente desde este navegador (sin gateway).`,anthropicLink:`API key de Anthropic`,openaiHint:`La API key del endpoint anterior.`,createKey:`Crear una en {provider} →`,configured:`Configurada`,changeKey:`Cambiar clave`,model:`Modelo`,modelListFailed:`No se pudo cargar la lista de modelos ({error}). Introduce un id de modelo manualmente.`,embedUnavailable:`Las funciones de IA no están disponibles en modo integrado`,embedReason:`La estricta CSP de github.com bloquea las solicitudes que necesitan las funciones de IA. {link} para usarlas.`,goToWebsite:`Ve al sitio web`,agent:`Agente`,agentNeedsCli:"Los agentes locales se ejecutan en la CLI de pulls.review: iníciala en un repositorio con `npx pulls.review` y elige uno allí.",agentDetecting:`Buscando CLIs de agentes…`,agentNone:`No se encontró ninguna CLI de agente en esta máquina.`,agentHint:`Un agente de código instalado en esta máquina, con su propia cuenta: {claude} u {opencode}. Lee el parche y el repositorio, nunca escribe.`,agentPick:`Elige un agente…`},models:{placeholder:`id del modelo`,loading:`Cargando modelos…`,search:`Buscar modelos…`,noMatch:`Ningún modelo coincide`,useCustom:`Usar «{id}»`,free:`Gratis`,priceTitle:`Entrada {input}/M · Salida {output}/M tokens`,agentDefault:`Predeterminado del agente`}},y={allFiles:`Todos los archivos`,code:{label:`Código`,summary:`Cambios en el código fuente.`},other:{label:`Otros`,summary:`Otros cambios que no encajan en una categoría existente.`},docs:{label:`Documentación`,summary:`Actualizaciones de documentación.`},tests:{label:`Pruebas`,summary:`Cobertura de pruebas del cambio.`},config:{label:`Configuración`,summary:`Cambios de configuración.`},deps:{label:`Dependencias`,summary:`Cambios de versión de dependencias.`},generated:{label:`Generados`,summary:`Cambios en archivos generados o de build.`}},b={tokenRequired:`Se necesita un token de GitHub para escribir en este pull request.`,diffNotLoaded:`El diff aún no ha terminado de cargarse.`,noViewer:`No se pudo determinar el usuario de GitHub de este token.`,tokenRejected:`GitHub rechazó este token (401). Comprueba que se pegó completo y que no ha sido revocado.`,tooLarge:`El análisis es demasiado grande para compartirlo como comentario ({n} caracteres).`},x={loading:`Cargando cambios locales…`,loadFailed:`No se pudieron cargar estos cambios`,auth:{title:`Introduce el código de tu terminal`,hint:`pulls.review mostró un código de 6 dígitos en la terminal donde se ejecuta.`,invalid:`Ese código no funcionó. Revisa la terminal e inténtalo de nuevo.`,submit:`Continuar`},picker:{tagline:`Revisa tus ramas locales, rangos y cambios sin confirmar como un pull request: agrupados, resumidos, un ámbito a la vez.`,title:`Revisar cambios locales`,base:`Base`,head:`Head`,compare:`Comparar`,shortcuts:`Accesos rápidos`,worktree:`Cambios sin confirmar`,recentCommits:`Commits recientes`,branches:`Ramas`,against:`frente a {base}`,current:`Rama actual`,github:`O un pull request, comparación o commit de GitHub`}},S={common:e,landing:t,guide:n,load:r,pr:i,embed:a,pulls:o,analyze:s,share:c,group:l,note:u,file:d,reviewProgress:f,fileStatus:p,prState:m,category:h,review:g,chat:_,settings:v,rules:y,errors:b,local:x};export{s as analyze,h as category,_ as chat,e as common,S as default,a as embed,b as errors,d as file,p as fileStatus,l as group,n as guide,t as landing,r as load,x as local,u as note,i as pr,m as prState,o as pulls,g as review,f as reviewProgress,y as rules,v as settings,c as share};
@@ -1 +0,0 @@
1
- var e={cancel:`Annuler`,save:`Enregistrer`,remove:`Supprimer`,retry:`Réessayer`,close:`Fermer`,dismiss:`Ignorer`,refresh:`Actualiser`,settings:`Paramètres`,you:`vous`,loading:`Chargement…`,send:`Envoyer`,stop:`Arrêter`,clear:`Effacer`,reply:`Répondre`,submit:`Envoyer`,abort:`Interrompre`,rerun:`Relancer`,files:`{n} fichier | {n} fichiers`,subgroups:`{n} sous-groupe | {n} sous-groupes`,githubRepository:`Dépôt GitHub`,avatar:`Avatar de {login}`},t={dropHint:`Déposez pour charger votre fichier diff / .patch`,tagline:`Regroupe les fichiers modifiés, résume l'essentiel, et vous les fait relire un périmètre à la fois. Tout fonctionne localement dans votre navigateur.`,documentTitle:`Des revues de pull requests claires et organisées`,open:`Ouvrir`,pasteHint:`Collez l'URL d'une pull request GitHub, ou choisissez une démo ci-dessous.`,recentlyViewed:`// vus récemment`,recentRepositories:`// dépôts consultés récemment`,tryDemos:`// essayez des démos`,demoBefore:`// avant`,demoAfter:`// après`,moreFiles:`... {n} fichiers de plus`,demoTitle:`feat: partager une analyse IA en commentaire de PR et charger les résultats partagés`,demoSummary:`Un relecteur avec une API key publie son analyse sur la PR ; tous les autres la chargent sans token.`,demoGroups:{store:`Store d'analyses partagées et contrat du commentaire`,ui:`UI de partage du résultat`,refactor:`Refactor du store : résultat à la racine`,tests:`Tests`,docs:`Docs et dépendances`},uploadTitle:`Relire un diff sans PR`,uploadDescription:`Importez ou collez un unified diff, ou déposez un fichier {diff} / {patch} n'importe où sur cette page.`,uploadButton:`Importer un diff`,embedTitle:`Utilisez-le intégré à github.com`,embedDescription:`Avec {tampermonkey} ou {violentmonkey} installé, un panneau pulls.review apparaît sur chaque page de pull request.`,installUserscript:`Installer le userscript`,bookmarkletTitle:`Passer de github.com à pulls.review`,bookmarkletDescription:`Impossible d'installer des extensions ? Glissez ce bookmarklet dans votre barre de favoris pour ouvrir la pull request actuelle sur pulls.review, et revenir.`,bookmarkletDrag:`Glissez-moi dans votre barre de favoris`,actionsTitle:`Configurer l'analyse automatique avec GitHub Actions`,actionsDescription:`Analysez chaque pull request une fois en CI et publiez le résultat en commentaire, pour que chaque relecteur n'ait pas besoin de sa propre clé de modèle.`,cliTitle:`Lancez-le sur vos modifications git locales avec la CLI`,cliDescription:`Relisez votre arbre de travail, un commit ou une branche avant de pousser, groupés et résumés comme une PR.`,viewGuide:`Voir le guide`},n={userscript:{title:`Utiliser pulls.review intégré à github.com`,intro:`Le userscript ajoute un panneau pulls.review directement aux pages de pull request sur github.com, avec fichiers groupés et résumés, pour que vous n'ayez pas à changer d'onglet.`,manager:`Installez un gestionnaire de userscripts : {tampermonkey} ou {violentmonkey}.`,install:`Installez le userscript pulls.review. Votre gestionnaire vous demande de confirmer.`,open:`Ouvrez n'importe quelle pull request sur github.com et cliquez sur l'onglet {tab} à côté de "Files changed".`,ai:`github.com bloque les requêtes nécessaires à l'analyse IA : le panneau affiche donc les analyses partagées en commentaire. Ouvrez la PR sur pulls.review pour en lancer une nouvelle.`},bookmarklet:{title:`Passer de github.com à pulls.review`,intro:`Un bookmarklet est un favori qui exécute un petit script. Il fonctionne dans tous les navigateurs, sans extension à installer, et ouvre la page actuelle sur l'autre site.`,bar:`Affichez votre barre de favoris, par exemple avec {shortcut}.`,drag:`Glissez ce bouton dans la barre de favoris :`,use:`Sur une page de pull request, de commit ou de comparaison sur github.com, cliquez sur le favori pour l'ouvrir sur pulls.review. Cliquez à nouveau pour revenir.`},actions:{title:`Analyse automatique avec GitHub Actions`,intro:`Laissez la CI analyser chaque pull request une fois, dès qu'elle est ouverte ou mise à jour. Toute personne qui ouvre la PR, ici ou dans le panneau sur github.com, voit aussitôt le même résumé groupé. Personne n'a besoin de sa propre clé de modèle, et les pull requests venant de forks en profitent aussi.`,secret:`Ajoutez votre clé de modèle comme secret du dépôt, par exemple {name}.`,workflow:`Ajoutez ce workflow au dépôt :`,result:`Ouvrez ou mettez à jour une pull request pour essayer. L'analyse arrive en commentaire, et les relances sur une PR inchangée sautent l'appel au modèle.`,options:`Le {provider} est déduit de la clé. Définissez {provider}, {model} ou {locale} pour le remplacer. Toutes les options sont dans le {readme}.`},cli:{title:`Relire des modifications git locales avec la CLI`,intro:`Relisez votre propre modification avant les autres. La CLI ouvre votre branche, un commit ou votre travail non commité dans pulls.review, pour voir comment la modification se lit, groupée et résumée, avant de pousser ou d'ouvrir une PR.`,branch:`Dans un dépôt git, lancez ceci pour relire votre branche actuelle par rapport à la branche par défaut :`,target:`Ou choisissez quoi relire :`,browser:`Elle ouvre {url} dans votre navigateur pour visualiser vos modifications locales. Confirmez l'onglet avec le code à usage unique affiché dans votre terminal. Vous pouvez aussi y choisir d'autres branches ou commits à comparer.`}},r={title:`Charger un diff`,description:`Collez ou déposez un fichier unified diff / .patch pour le relire.`,pasteLabel:`Collez un unified diff / .patch`,chooseFile:`Ou choisissez un fichier .diff/.patch`,loadButton:`Charger le diff`,parsing:`Analyse du diff…`,parseFailed:`Impossible d'analyser ce diff`,noDiff:`Aucun diff chargé`,noDiffHint:`Retournez à l'accueil et utilisez le bouton d'import pour coller ou déposer un diff.`,goHome:`Accueil`},i={loading:`Chargement de la pull request…`,loadFailed:`Impossible de charger cette pull request`,somethingWrong:`Une erreur est survenue`,newCommits:`Cette pull request a de nouveaux commits depuis sa mise en cache.`,autoRefreshNextTime:`Actualiser automatiquement la prochaine fois`,endOfDiff:`Vous avez atteint la fin du diff.`,analyzeBy:`Analyser par`,rules:`Règles`,ai:`IA`,by:`par`,sharedBy:`Analyse IA partagée par`,sharedAnalysis:`Analyse partagée`,reviewedOf:`/ {total} relus`,openInSite:`Ouvrir dans pulls.review`},a={reviewChanges:`Relire les modifications`,updateUserscript:`Mettre à jour le userscript`},o={loading:`Chargement des pull requests…`,loadFailed:`Impossible de charger les pull requests`,open:`{n} ouvertes`,search:`Filtrer les pull requests`,empty:`Aucune pull request ouverte`,noMatches:`Aucune pull request ne correspond à votre recherche`,searchingAll:`Recherche parmi les {n} pull requests ouvertes…`,loadingMore:`Chargement…`,openedBy:`ouverte {time} par {author}`,milestone:`Jalon`,comments:`{n} commentaire | {n} commentaires`,linkedIssues:`{n} issue liée | {n} issues liées`,assignedTo:`Assignée à {login}`,groups:`{n} groupe | {n} groupes`,viewedHint:`Consultée dans ce navigateur`,aiAvailable:`Analyse IA disponible`,sort:{label:`Trier`,"recently-updated":`Mises à jour récemment`,"least-recently-updated":`Mises à jour le moins récemment`,newest:`Plus récentes`,oldest:`Plus anciennes`,"most-commented":`Plus commentées`,"least-commented":`Moins commentées`},review:{approved:`Approuvée`,changes_requested:`Modifications demandées`,review_required:`Revue requise`},checks:{success:`Toutes les vérifications ont réussi`,failure:`Certaines vérifications ont échoué`,pending:`Certaines vérifications ne sont pas terminées`}},s={setupKeys:`Configurer les clés API`,analyzing:`Analyse…`,failed:`Échec de l'analyse`,failedTitle:`Échec de l'analyse IA : {message}`,reanalyze:`Réanalyser`,withAi:`Analyser avec l'IA`,statusTitle:`Analyse IA`,starting:`Démarrage…`,thinking:`Réflexion… (étape {step})`,reading:`Lecture de {n} fichier : {first} | Lecture de {n} fichiers : {first}`,organizing:`Organisation des groupes…`,notConfigured:`L'analyse IA n'est pas configurée : ajoutez un token gateway ou une API key de fournisseur dans les Paramètres`,chatFailed:`La requête du chat a échoué`,agentSessionLost:`L’agent n’a plus cette conversation. Relancez l’analyse pour discuter.`},c={button:`Partager le résultat`,updateButton:`Mettre à jour le commentaire partagé`,sharing:`Partage…`,tooltip:`Publie cette analyse en commentaire de la pull request pour que d'autres puissent la charger`,needsToken:`Un token GitHub avec accès en écriture est requis pour partager`,failed:`Échec du partage : {message}`,titleUpdate:`Mettre à jour votre analyse partagée`,titleShare:`Partager cette analyse sur GitHub`,willUpdate:`Votre {comment} existant sur cette pull request sera mis à jour en tant que {user} avec votre token GitHub.`,willPost:`Un commentaire public sera publié sur cette pull request en tant que {user} avec votre token GitHub.`,commentLink:`commentaire`,contains:`Le commentaire contient :`,containsLink:`un lien pour ouvrir cette revue sur {site}`,containsJson:`le regroupement et les résumés de cette analyse IA en JSON dans un bloc replié`,excludes:`Vos messages de chat, clés API ou toute autre donnée de vos paramètres ne seront pas inclus.`,anyoneCanLoad:`Toute personne consultant la pull request peut charger l'analyse partagée.`,englishRecommended:`Si vous travaillez sur un projet public, nous recommandons de partager le résultat en anglais pour qu'il soit utile à la communauté.`,share:`Partager`,update:`Mettre à jour`,shareAnyway:`Partager quand même`,updateAnyway:`Mettre à jour quand même`,loadReplaces:`Charger une analyse IA partagée ? Elle remplacera la vôtre :`,available:`Analyses IA partagées disponibles pour cette pull request :`,staleTitle:`Analysée avant les derniers commits`,outdated:`(obsolète)`,inLanguage:`Analysée en {language}`,notShared:`{login} n'a pas partagé d'analyse de cette pull request.`},l={toggle:`Replier ou déplier le groupe`,filesReviewed:`{reviewed} / {total} fichiers relus`,subgroupsOf:`sous-groupes de`,hideSubgroups:`Masquer les sous-groupes`,showSubgroups:`Afficher les sous-groupes`,navTabs:`Afficher les groupes en onglets`,navSidebar:`Afficher les groupes en barre latérale`,uncategorized:`Non classés`,uncategorizedSummary:`Fichiers non couverts par l'analyse actuelle.`},u={critical:`À relire attentivement`},d={layoutTree:`Afficher les fichiers en arborescence`,layoutList:`Afficher les fichiers en liste`,markReviewed:`Marquer comme relu`,markFolderReviewed:`Marquer tous les fichiers de {name} comme relus`,changedSinceReviewed:`Ce fichier avait été relu, mais a changé dans des commits ultérieurs`,resolved:`{n} résolus`,binary:`Fichier binaire`,binaryNotShown:`Fichier binaire non affiché.`,tooLarge:`Diff trop volumineux pour être affiché.`,loadFailed:`Échec du chargement`,loadFull:`Charger le contenu complet du fichier`,expand:`Déplier le fichier`,collapse:`Replier le fichier`,collapseMenu:`Déplier ou replier les fichiers`,expandAll:`Déplier tous les fichiers`,collapseAll:`Replier tous les fichiers`,collapseReviewed:`Replier les fichiers relus`,noLongerInDiff:`N'est plus dans ce diff`,removed:`supprimé`},f={title:`Avancement de la relecture`,markAll:`Tout marquer comme relu`,reset:`Réinitialiser l'état de relecture`,invert:`Inverser l'état de relecture`,status:{reviewed:`Relu`,changed:`Modifié depuis la relecture`,unreviewed:`Non relu`}},p={added:`ajouté`,removed:`supprimé`,modified:`modifié`,renamed:`renommé`,copied:`copié`},m={open:`ouverte`,draft:`brouillon`,closed:`fermée`,merged:`fusionnée`},h={ui:`UI`,api:`API`,core:`cœur`,data:`données`,cli:`CLI`,security:`sécurité`,tests:`tests`,docs:`documentation`,examples:`exemples`,deps:`dépendances`,build:`build`,scripts:`scripts`,config:`configuration`,i18n:`i18n`,assets:`ressources`,other:`autre`},g={addReview:`Ajouter une revue`,hideComments:`Masquer les commentaires de revue`,showComments:`Afficher les commentaires de revue`,reviews:`Revues`,approved:`a approuvé`,changesRequested:`a demandé des modifications`,commented:`a commenté`,dismissed:`revue rejetée`,reviewChanges:`Relire les modifications`,includesPending:`L'envoi inclut votre {n} commentaire en attente. | L'envoi inclut vos {n} commentaires en attente.`,summaryPlaceholder:`Laissez un résumé (facultatif pour approuver)`,comment:`Commenter`,approve:`Approuver`,requestChanges:`Demander des modifications`,discard:`Abandonner la revue`,leaveComment:`Laissez un commentaire`,addSingle:`Ajouter un commentaire seul`,addToReview:`Ajouter un commentaire de revue`,startReview:`Commencer une revue`,pending:`En attente`,editComment:`Modifier le commentaire`,deleteComment:`Supprimer le commentaire`,replyPlaceholder:`Répondre…`,resolve:`Résoudre`},_={title:`Poser une question sur cette PR`,collapse:`Réduire`,reanalyzeToEnable:`Réanalysez pour activer le chat`,thinking:`Réflexion…`,placeholder:`Posez une question sur cette PR…`,updatedGrouping:`Regroupement mis à jour : {n} groupes`,readFiles:`{n} fichier lu | {n} fichiers lus`,updatingGrouping:`Mise à jour du regroupement…`,submittingGrouping:`Envoi du regroupement…`,requestFailed:`La requête a échoué`,stopped:`arrêté`},v={layout:`Disposition du diff`,wrapLines:`Retour à la ligne automatique`,unified:`Unifiée`,split:`Côte à côte`,syntaxTheme:{label:`Thème de syntaxe`,light:`Mode clair`,dark:`Mode sombre`},cached:`Pull requests en cache`,autoRefresh:`Actualiser automatiquement quand de nouveaux commits sont trouvés`,language:`Langue`,token:{label:`Personal Access Token GitHub`,optional:`Facultatif pour les dépôts publics ; requis pour les dépôts privés ou pour laisser des revues.`,scopes:`Les revues nécessitent le scope {repo} (classic token) ou {fineGrained} (fine-grained token)`,storedLocally:`Stocké uniquement dans ce navigateur.`,generate:`En générer un sur GitHub →`,fineGrained:`Fine-grained token (sans scopes classiques)`,updated:`Mis à jour`,expires:`Expire`,neverExpires:`N'expire jamais`,change:`Changer le token`,checking:`Vérification du token…`,couldNotVerify:`Impossible de vérifier ce token.`},tabs:{appearance:`Apparence`,behavior:`Comportement`,github:`GitHub`,ai:`Analyse IA`,notSetUp:`Pas encore configuré`},llm:{title:`Analyse IA`,description:`Configurez un fournisseur de modèles pour activer les résumés générés par l'IA. Stocké uniquement dans ce navigateur et envoyé seulement au fournisseur que vous choisissez.`,provider:`Fournisseur`,baseUrl:`URL de base`,baseUrlDescription:`N'importe quel endpoint de chat completions compatible OpenAI (OpenAI, un serveur local, etc.).`,apiKey:`API key`,gatewayHint:`Un token {link}, donnant accès à tous ses fournisseurs pris en charge avec un seul token.`,anthropicHint:`Une {link}, appelée directement depuis ce navigateur (sans gateway).`,anthropicLink:`API key Anthropic`,openaiHint:`L'API key de l'endpoint ci-dessus.`,createKey:`En créer une sur {provider} →`,configured:`Configurée`,changeKey:`Changer la clé`,model:`Modèle`,modelListFailed:`Impossible de charger la liste des modèles ({error}). Saisissez un id de modèle manuellement.`,embedUnavailable:`Les fonctions IA ne sont pas disponibles en mode intégré`,embedReason:`La CSP stricte de github.com bloque les requêtes nécessaires aux fonctions IA. {link} pour les utiliser.`,goToWebsite:`Rendez-vous sur le site`,agent:`Agent`,agentNeedsCli:"Les agents locaux s’exécutent dans la CLI pulls.review : lancez-la dans un dépôt avec `npx pulls.review` et choisissez-en un là.",agentDetecting:`Recherche des CLI d’agents…`,agentNone:`Aucune CLI d’agent trouvée sur cette machine.`,agentHint:`Un agent de code installé sur cette machine, connecté avec son propre compte : {claude} ou {opencode}. Il lit le patch et le dépôt, n’écrit jamais.`,agentPick:`Choisir un agent…`},models:{placeholder:`id du modèle`,loading:`Chargement des modèles…`,search:`Rechercher des modèles…`,noMatch:`Aucun modèle correspondant`,useCustom:`Utiliser « {id} »`,free:`Gratuit`,priceTitle:`Entrée {input}/M · Sortie {output}/M tokens`,agentDefault:`Défaut de l’agent`}},y={allFiles:`Tous les fichiers`,code:{label:`Code`,summary:`Modifications du code source.`},other:{label:`Autre`,summary:`Autres modifications ne correspondant à aucune catégorie existante.`},docs:{label:`Docs`,summary:`Mises à jour de la documentation.`},tests:{label:`Tests`,summary:`Couverture de tests de la modification.`},config:{label:`Config`,summary:`Modifications de configuration.`},deps:{label:`Dépendances`,summary:`Changements de version des dépendances.`},generated:{label:`Générés`,summary:`Modifications de fichiers générés ou de build.`}},b={tokenRequired:`Un token GitHub est requis pour écrire sur cette pull request.`,diffNotLoaded:`Le diff n'a pas fini de se charger.`,noViewer:`Impossible de déterminer l'utilisateur GitHub de ce token.`,tokenRejected:`GitHub a refusé ce token (401). Vérifiez qu'il a été collé en entier et qu'il n'a pas été révoqué.`,tooLarge:`L'analyse est trop volumineuse pour être partagée en commentaire ({n} caractères).`},x={loading:`Chargement des modifications locales…`,loadFailed:`Impossible de charger ces modifications`,auth:{title:`Saisissez le code affiché dans votre terminal`,hint:`pulls.review a affiché un code à 6 chiffres dans le terminal où il s'exécute.`,invalid:`Ce code n'a pas fonctionné. Vérifiez le terminal et réessayez.`,submit:`Continuer`},picker:{tagline:`Relisez vos branches locales, plages et modifications non commitées comme une pull request : regroupées, résumées, un périmètre à la fois.`,title:`Relire les modifications locales`,base:`Base`,head:`Head`,compare:`Comparer`,shortcuts:`Raccourcis`,worktree:`Modifications non commitées`,recentCommits:`Commits récents`,branches:`Branches`,against:`par rapport à {base}`,current:`Branche actuelle`,github:`Ou une pull request, une comparaison ou un commit GitHub`}},S={common:e,landing:t,guide:n,load:r,pr:i,embed:a,pulls:o,analyze:s,share:c,group:l,note:u,file:d,reviewProgress:f,fileStatus:p,prState:m,category:h,review:g,chat:_,settings:v,rules:y,errors:b,local:x};export{s as analyze,h as category,_ as chat,e as common,S as default,a as embed,b as errors,d as file,p as fileStatus,l as group,n as guide,t as landing,r as load,x as local,u as note,i as pr,m as prState,o as pulls,g as review,f as reviewProgress,y as rules,v as settings,c as share};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./en-CbWYrCM5.js","./rolldown-runtime-Dd_uD5pT.js"])))=>i.map(i=>d[i]);
2
- import{d as e,mn as t,t as n}from"./vue-i18n-CGHHpbTP.js";import{n as r,r as i}from"./locales-SpkpwNqX.js";import{t as a}from"./preload-helper-BaNbYf_w.js";import{t as o}from"./en-CbWYrCM5.js";var s=[`claude`,`opencode`,`pi`],c={provider:`gateway`,gatewayToken:``,gatewayModel:`anthropic/claude-sonnet-5`,anthropicApiKey:``,anthropicModel:`claude-sonnet-5`,openaiApiKey:``,openaiBaseUrl:`https://api.openai.com/v1`,openaiModel:`gpt-5.1`,agent:``,agentModel:``};function l(e){return e.gatewayToken?`gateway`:e.anthropicApiKey?`anthropic`:e.openaiApiKey?`openai-compatible`:`gateway`}function u(e,...t){return typeof e==`function`?e(...t):e}var d=Error.captureStackTrace,f=class e extends Error{name;code;docs;fix;sources;data;get why(){return this.message}constructor(t,n=e){super(t.why,{cause:t.cause}),this.code=this.name=t.code,this.fix=t.fix,this.docs=t.docs,this.sources=t.sources,this.data=t.data,d?.(this,n)}toJSON(){return{name:this.name,why:this.why,fix:this.fix,docs:this.docs,sources:this.sources,cause:this.cause,data:this.data,stack:this.stack}}};function p(e,t){return typeof e==`string`?`${e}/${t.toLowerCase()}`:e?.(t)}function m(e){let t=e.reporters??[],n={},{docsBase:r}=e;for(let i of Object.keys(e.codes)){let a=e.codes[i],o=a.docs===!1?void 0:a.docs||p(r,i),s=(e={},n={})=>{let r=new f({code:i,why:u(a.why,e),fix:u(a.fix,e),docs:o,cause:e.cause,sources:e.sources,data:u(a.data,e)},s);for(let e of t)e(r,n);return r};n[i]=s}return n}var h={githubToken:``,llm:c,locale:r()},g=e(`diffs:settings`,h,{mergeDefaults:(e,t)=>{let n={...t.llm,...e?.llm};e?.llm?.provider||(n.provider=l(n));let r=i(e?.locale)?e.locale:t.locale;return{...t,...e,llm:n,locale:r}}});function _(e,t){if(e===0)return 0;let n=e>10&&e<20,r=e%10==1;return t<4?!n&&r?1:2:!n&&r?1:!n&&e%10>=2&&e%10<=4?2:3}var v=n({legacy:!1,locale:`en`,fallbackLocale:`en`,messages:{en:o},pluralizationRules:{ru:_}}),y=Object.assign({"./locales/de.json":()=>a(()=>import(`./de-BoIOg_UW.js`),[],import.meta.url),"./locales/en.json":()=>a(()=>import(`./en-CbWYrCM5.js`).then(e=>e.n),__vite__mapDeps([0,1]),import.meta.url),"./locales/es.json":()=>a(()=>import(`./es-CqEudTln.js`),[],import.meta.url),"./locales/fr.json":()=>a(()=>import(`./fr-qiQQ-4AO.js`),[],import.meta.url),"./locales/id.json":()=>a(()=>import(`./id-BkDzu8gq.js`),[],import.meta.url),"./locales/it.json":()=>a(()=>import(`./it-tZZZbUKN.js`),[],import.meta.url),"./locales/ja.json":()=>a(()=>import(`./ja-kGPK4Fmt.js`),[],import.meta.url),"./locales/ko.json":()=>a(()=>import(`./ko-CULiae40.js`),[],import.meta.url),"./locales/pt-BR.json":()=>a(()=>import(`./pt-BR-BcwoZLSs.js`),[],import.meta.url),"./locales/ru.json":()=>a(()=>import(`./ru-DOordgLF.js`),[],import.meta.url),"./locales/zh-CN.json":()=>a(()=>import(`./zh-CN-CmTqGY9s.js`),[],import.meta.url),"./locales/zh-TW.json":()=>a(()=>import(`./zh-TW-DKGtbJQy.js`),[],import.meta.url)});async function b(e){if(!v.global.availableLocales.includes(e)){let t=await y[`./locales/${e}.json`]();v.global.setLocaleMessage(e,t.default)}v.global.locale.value=e,document.documentElement.lang=e}t(()=>g.value.locale,e=>void b(e),{immediate:!0});var x=v.global.t;export{m as a,f as i,x as n,s as o,g as r,v as t};
@@ -1 +0,0 @@
1
- var e={cancel:`Batal`,save:`Simpan`,remove:`Hapus`,retry:`Coba lagi`,close:`Tutup`,dismiss:`Tutup`,refresh:`Muat ulang`,settings:`Pengaturan`,you:`Anda`,loading:`Memuat…`,send:`Kirim`,stop:`Berhenti`,clear:`Bersihkan`,reply:`Balas`,submit:`Kirim`,abort:`Batalkan`,rerun:`Jalankan ulang`,files:`{n} berkas`,subgroups:`{n} subgrup`,githubRepository:`Repositori GitHub`,avatar:`Avatar {login}`},t={dropHint:`Lepaskan untuk memuat berkas diff / .patch Anda`,tagline:`Mengelompokkan berkas yang berubah, merangkum yang penting, dan meninjaunya satu lingkup sekaligus. Semuanya berjalan lokal di browser Anda.`,documentTitle:`Tinjauan pull request yang jelas dan teratur`,open:`Buka`,pasteHint:`Tempel URL pull request GitHub mana pun, atau pilih demo di bawah.`,recentlyViewed:`// baru dilihat`,recentRepositories:`// repositori yang baru dilihat`,tryDemos:`// coba beberapa demo`,demoBefore:`// sebelum`,demoAfter:`// sesudah`,moreFiles:`... {n} berkas lainnya`,demoTitle:`feat: bagikan analisis AI sebagai komentar PR dan muat hasil yang dibagikan`,demoSummary:`Satu peninjau dengan API key mengirim analisisnya ke PR; semua orang lain memuatnya tanpa token.`,demoGroups:{store:`Store analisis bersama & kontrak komentar`,ui:`UI berbagi hasil`,refactor:`Refactor store: hasil ke root`,tests:`Pengujian`,docs:`Dokumentasi & dependensi`},uploadTitle:`Tinjau diff tanpa PR`,uploadDescription:`Unggah atau tempel unified diff, atau seret berkas {diff} / {patch} ke mana saja di halaman ini.`,uploadButton:`Unggah diff`,embedTitle:`Gunakan tertanam di github.com`,embedDescription:`Dengan {tampermonkey} atau {violentmonkey} terpasang, panel pulls.review muncul di setiap halaman pull request.`,installUserscript:`Pasang userscript`,bookmarkletTitle:`Berpindah antara github.com dan pulls.review`,bookmarkletDescription:`Tidak bisa memasang ekstensi? Seret bookmarklet ini ke bilah bookmark untuk membuka pull request saat ini di pulls.review, dan kembali.`,bookmarkletDrag:`Seret saya ke bilah bookmark`,actionsTitle:`Siapkan analisis otomatis dengan GitHub Actions`,actionsDescription:`Analisis setiap pull request sekali di CI dan kirim hasilnya sebagai komentar PR, jadi setiap reviewer tidak perlu kunci model sendiri.`,cliTitle:`Jalankan pada perubahan git lokal dengan CLI`,cliDescription:`Tinjau working tree, sebuah commit, atau branch sebelum push, dikelompokkan dan diringkas seperti PR.`,viewGuide:`Lihat panduan`},n={userscript:{title:`Gunakan pulls.review tertanam di github.com`,intro:`Userscript menambahkan panel pulls.review langsung ke halaman pull request di github.com, lengkap dengan file yang dikelompokkan dan ringkasan, sehingga Anda tidak perlu berpindah tab.`,manager:`Pasang pengelola userscript: {tampermonkey} atau {violentmonkey}.`,install:`Pasang userscript pulls.review. Pengelola Anda akan meminta konfirmasi.`,open:`Buka pull request apa pun di github.com lalu klik tab {tab} di samping "Files changed".`,ai:`github.com memblokir permintaan yang dibutuhkan analisis AI, jadi panel menampilkan analisis yang dibagikan sebagai komentar PR. Buka PR di pulls.review untuk menjalankan analisis baru.`},bookmarklet:{title:`Berpindah antara github.com dan pulls.review`,intro:`Bookmarklet adalah bookmark yang menjalankan skrip kecil. Bookmarklet bekerja di browser apa pun tanpa perlu memasang ekstensi, dan membuka halaman saat ini di situs lainnya.`,bar:`Tampilkan bilah bookmark, misalnya dengan {shortcut}.`,drag:`Seret tombol ini ke bilah bookmark:`,use:`Di halaman pull request, commit, atau compare di github.com, klik bookmark untuk membukanya di pulls.review. Klik lagi untuk kembali.`},actions:{title:`Analisis otomatis dengan GitHub Actions`,intro:`Biarkan CI menganalisis setiap pull request sekali, begitu dibuka atau diperbarui. Semua yang membuka PR, di sini atau di panel github.com, langsung melihat ringkasan yang sama. Tidak ada yang perlu kunci model sendiri, dan pull request dari fork juga mendapatkannya.`,secret:`Tambahkan kunci model Anda sebagai secret repositori, misalnya {name}.`,workflow:`Tambahkan workflow ini ke repositori:`,result:`Buka atau perbarui pull request untuk mencobanya. Analisis muncul sebagai komentar, dan menjalankan ulang pada PR yang tidak berubah melewati panggilan model.`,options:`{provider} disimpulkan dari kunci. Atur {provider}, {model}, atau {locale} untuk menggantinya. Lihat {readme} untuk semua opsi.`},cli:{title:`Tinjau perubahan git lokal dengan CLI`,intro:`Tinjau perubahan Anda sendiri sebelum orang lain. CLI membuka branch Anda, sebuah commit, atau pekerjaan yang belum di-commit di pulls.review, sehingga Anda bisa melihat perubahan dalam bentuk kelompok dan ringkasan sebelum push atau membuka PR.`,branch:`Di repositori git, jalankan ini untuk meninjau branch saat ini terhadap branch default:`,target:`Atau pilih apa yang ingin ditinjau:`,browser:`CLI membuka {url} di browser untuk menampilkan perubahan lokal Anda. Konfirmasi tab dengan kode sekali pakai yang tercetak di terminal. Di sana Anda juga bisa memilih branch atau commit lain untuk dibandingkan.`}},r={title:`Muat diff`,description:`Tempel atau seret berkas unified diff / .patch untuk meninjaunya.`,pasteLabel:`Tempel unified diff / .patch`,chooseFile:`Atau pilih berkas .diff/.patch`,loadButton:`Muat diff`,parsing:`Mengurai diff…`,parseFailed:`Diff ini tidak dapat diurai`,noDiff:`Belum ada diff yang dimuat`,noDiffHint:`Kembali ke halaman utama dan gunakan tombol unggah untuk menempel atau menyeret diff.`,goHome:`Ke halaman utama`},i={loading:`Memuat pull request…`,loadFailed:`Pull request ini tidak dapat dimuat`,somethingWrong:`Terjadi kesalahan`,newCommits:`Pull request ini memiliki commit baru sejak disimpan di cache.`,autoRefreshNextTime:`Muat ulang otomatis lain kali`,endOfDiff:`Anda telah mencapai akhir diff.`,analyzeBy:`Analisis dengan`,rules:`Aturan`,ai:`AI`,by:`oleh`,sharedBy:`Melihat analisis AI yang dibagikan oleh`,sharedAnalysis:`Melihat analisis bersama`,reviewedOf:`/ {total} ditinjau`,openInSite:`Buka di pulls.review`},a={reviewChanges:`Tinjau Perubahan`,updateUserscript:`Perbarui userscript`},o={loading:`Memuat pull request…`,loadFailed:`Tidak dapat memuat pull request`,open:`{n} terbuka`,search:`Filter pull request`,empty:`Tidak ada pull request yang terbuka`,noMatches:`Tidak ada pull request yang cocok dengan pencarian Anda`,searchingAll:`Mencari di semua {n} pull request terbuka…`,loadingMore:`Memuat lebih banyak…`,openedBy:`dibuka {time} oleh {author}`,milestone:`Milestone`,comments:`{n} komentar | {n} komentar`,linkedIssues:`{n} issue terkait | {n} issue terkait`,assignedTo:`Ditugaskan kepada {login}`,groups:`{n} grup | {n} grup`,viewedHint:`Dilihat di browser ini`,aiAvailable:`Analisis AI tersedia`,sort:{label:`Urutkan`,"recently-updated":`Baru diperbarui`,"least-recently-updated":`Paling lama diperbarui`,newest:`Terbaru`,oldest:`Terlama`,"most-commented":`Paling banyak komentar`,"least-commented":`Paling sedikit komentar`},review:{approved:`Disetujui`,changes_requested:`Perubahan diminta`,review_required:`Perlu review`},checks:{success:`Semua pemeriksaan lolos`,failure:`Beberapa pemeriksaan gagal`,pending:`Beberapa pemeriksaan belum selesai`}},s={setupKeys:`Atur API key`,analyzing:`Menganalisis…`,failed:`Analisis gagal`,failedTitle:`Analisis AI gagal: {message}`,reanalyze:`Analisis ulang`,withAi:`Analisis dengan AI`,statusTitle:`Analisis AI`,starting:`Memulai…`,thinking:`Berpikir… (langkah {step})`,reading:`Membaca {n} berkas: {first}`,organizing:`Menyusun grup…`,notConfigured:`Analisis AI belum dikonfigurasi: tambahkan token gateway atau API key penyedia di Pengaturan`,chatFailed:`Permintaan chat gagal`,agentSessionLost:`Agen tidak lagi memiliki percakapan ini. Analisis ulang untuk mengobrol.`},c={button:`Bagikan hasil`,updateButton:`Perbarui komentar yang dibagikan`,sharing:`Membagikan…`,tooltip:`Kirim analisis ini sebagai komentar di pull request agar orang lain dapat memuatnya`,needsToken:`Membagikan memerlukan token GitHub dengan akses tulis`,failed:`Gagal membagikan: {message}`,titleUpdate:`Perbarui analisis yang Anda bagikan`,titleShare:`Bagikan analisis ini di GitHub`,willUpdate:`{comment} Anda yang sudah ada di pull request ini akan diperbarui sebagai {user} dengan token GitHub Anda.`,willPost:`Komentar publik akan dikirim ke pull request ini sebagai {user} dengan token GitHub Anda.`,commentLink:`Komentar`,contains:`Komentar berisi:`,containsLink:`tautan untuk membuka tinjauan ini di {site}`,containsJson:`pengelompokan dan ringkasan analisis AI ini sebagai JSON di dalam blok yang dilipat`,excludes:`Pesan chat, API key, atau apa pun dari pengaturan Anda tidak akan disertakan.`,anyoneCanLoad:`Siapa pun yang melihat pull request dapat memuat analisis yang dibagikan.`,englishRecommended:`Jika Anda mengerjakan proyek publik, kami menyarankan membagikan hasil dalam bahasa Inggris agar bermanfaat bagi komunitas.`,share:`Bagikan`,update:`Perbarui`,shareAnyway:`Tetap bagikan`,updateAnyway:`Tetap perbarui`,loadReplaces:`Muat analisis AI yang dibagikan? Ini akan menggantikan milik Anda:`,available:`Analisis AI yang dibagikan untuk pull request ini tersedia:`,staleTitle:`Dianalisis sebelum commit terbaru`,outdated:`(usang)`,inLanguage:`Dianalisis dalam {language}`,notShared:`{login} belum membagikan analisis pull request ini.`},l={toggle:`Buka/tutup grup`,filesReviewed:`{reviewed} / {total} berkas ditinjau`,subgroupsOf:`subgrup dari`,hideSubgroups:`Sembunyikan subgrup`,showSubgroups:`Tampilkan subgrup`,navTabs:`Tampilkan grup sebagai tab`,navSidebar:`Tampilkan grup sebagai bilah samping`,uncategorized:`Tanpa kategori`,uncategorizedSummary:`Berkas yang tidak tercakup oleh analisis saat ini.`},u={critical:`Tinjau dengan cermat`},d={layoutTree:`Tampilkan berkas sebagai pohon`,layoutList:`Tampilkan berkas sebagai daftar`,markReviewed:`Tandai sudah ditinjau`,markFolderReviewed:`Tandai semua berkas di {name} sudah ditinjau`,changedSinceReviewed:`Berkas ini sudah pernah ditinjau, tetapi berubah di commit berikutnya`,resolved:`{n} terselesaikan`,binary:`Berkas biner`,binaryNotShown:`Berkas biner tidak ditampilkan.`,tooLarge:`Diff terlalu besar untuk ditampilkan.`,loadFailed:`Gagal memuat`,loadFull:`Muat isi berkas lengkap`,expand:`Buka berkas`,collapse:`Tutup berkas`,collapseMenu:`Buka atau tutup berkas`,expandAll:`Buka semua berkas`,collapseAll:`Tutup semua berkas`,collapseReviewed:`Tutup berkas yang sudah ditinjau`,noLongerInDiff:`Tidak lagi ada di diff ini`,removed:`dihapus`},f={title:`Progres tinjauan`,markAll:`Tandai semua sudah ditinjau`,reset:`Atur ulang status tinjauan`,invert:`Balik status tinjauan`,status:{reviewed:`Sudah ditinjau`,changed:`Berubah sejak ditinjau`,unreviewed:`Belum ditinjau`}},p={added:`ditambahkan`,removed:`dihapus`,modified:`diubah`,renamed:`diganti nama`,copied:`disalin`},m={open:`terbuka`,draft:`draf`,closed:`ditutup`,merged:`digabungkan`},h={ui:`UI`,api:`API`,core:`inti`,data:`data`,cli:`CLI`,security:`keamanan`,tests:`pengujian`,docs:`dokumentasi`,examples:`contoh`,deps:`dependensi`,build:`build`,scripts:`skrip`,config:`konfigurasi`,i18n:`i18n`,assets:`aset`,other:`lainnya`},g={addReview:`Tambah tinjauan`,hideComments:`Sembunyikan komentar tinjauan`,showComments:`Tampilkan komentar tinjauan`,reviews:`Tinjauan`,approved:`menyetujui`,changesRequested:`meminta perubahan`,commented:`berkomentar`,dismissed:`tinjauan dibatalkan`,reviewChanges:`Tinjau perubahan`,includesPending:`Pengiriman menyertakan {n} komentar tertunda Anda.`,summaryPlaceholder:`Tulis ringkasan (opsional untuk menyetujui)`,comment:`Komentar`,approve:`Setujui`,requestChanges:`Minta perubahan`,discard:`Buang tinjauan`,leaveComment:`Tulis komentar`,addSingle:`Tambah satu komentar`,addToReview:`Tambah komentar tinjauan`,startReview:`Mulai tinjauan`,pending:`Tertunda`,editComment:`Edit komentar`,deleteComment:`Hapus komentar`,replyPlaceholder:`Balas…`,resolve:`Selesaikan`},_={title:`Tanya tentang PR ini`,collapse:`Lipat`,reanalyzeToEnable:`Analisis ulang untuk mengaktifkan chat`,thinking:`Berpikir…`,placeholder:`Tanya tentang PR ini…`,updatedGrouping:`Pengelompokan diperbarui: {n} grup`,readFiles:`Membaca {n} berkas`,updatingGrouping:`Memperbarui pengelompokan…`,submittingGrouping:`Mengirim pengelompokan…`,requestFailed:`Permintaan gagal`,stopped:`dihentikan`},v={layout:`Tata letak diff`,wrapLines:`Bungkus baris`,unified:`Gabungan`,split:`Terpisah`,syntaxTheme:{label:`Tema sintaks`,light:`Mode terang`,dark:`Mode gelap`},cached:`Pull request di cache`,autoRefresh:`Muat ulang otomatis saat ada commit baru`,language:`Bahasa`,token:{label:`GitHub Personal Access Token`,optional:`Opsional untuk repositori publik; wajib untuk repositori privat atau untuk memberikan tinjauan.`,scopes:`Tinjauan memerlukan scope {repo} (token klasik) atau {fineGrained} (token fine-grained)`,storedLocally:`Hanya disimpan di browser ini.`,generate:`Buat di GitHub →`,fineGrained:`Token fine-grained (tanpa scope klasik)`,updated:`Diperbarui`,expires:`Berakhir`,neverExpires:`Tidak pernah berakhir`,change:`Ganti token`,checking:`Memeriksa token…`,couldNotVerify:`Token ini tidak dapat diverifikasi.`},tabs:{appearance:`Tampilan`,behavior:`Perilaku`,github:`GitHub`,ai:`Analisis AI`,notSetUp:`Belum diatur`},llm:{title:`Analisis AI`,description:`Konfigurasikan penyedia model untuk mengaktifkan ringkasan buatan AI. Hanya disimpan di browser ini dan hanya dikirim ke penyedia yang Anda pilih.`,provider:`Penyedia`,baseUrl:`URL dasar`,baseUrlDescription:`Endpoint chat completions apa pun yang kompatibel dengan OpenAI (OpenAI sendiri, server lokal, dll.).`,apiKey:`API key`,gatewayHint:`Token {link}, yang menjangkau semua vendor yang didukung dengan satu token.`,anthropicHint:`{link}, dipanggil langsung dari browser ini (tanpa gateway).`,anthropicLink:`API key Anthropic`,openaiHint:`API key untuk endpoint di atas.`,createKey:`Buat di {provider} →`,configured:`Terkonfigurasi`,changeKey:`Ganti kunci`,model:`Model`,modelListFailed:`Daftar model tidak dapat dimuat ({error}). Masukkan id model secara manual.`,embedUnavailable:`Fitur AI tidak tersedia dalam mode tersemat`,embedReason:`CSP github.com yang ketat memblokir permintaan yang dibutuhkan fitur AI di sini. {link} untuk menggunakannya.`,goToWebsite:`Kunjungi situs web`,agent:`Agen`,agentNeedsCli:"Agen lokal berjalan di CLI pulls.review: jalankan di sebuah repositori dengan `npx pulls.review` dan pilih di sana.",agentDetecting:`Mencari CLI agen…`,agentNone:`Tidak ada CLI agen ditemukan di mesin ini.`,agentHint:`Agen pengkodean yang terpasang di mesin ini, masuk dengan akunnya sendiri: {claude} atau {opencode}. Ia membaca patch dan repositori, tidak pernah menulis.`,agentPick:`Pilih agen…`},models:{placeholder:`id model`,loading:`Memuat model…`,search:`Cari model…`,noMatch:`Tidak ada model yang cocok`,useCustom:`Gunakan “{id}”`,free:`Gratis`,priceTitle:`Input {input}/M · Output {output}/M token`,agentDefault:`Bawaan agen`}},y={allFiles:`Semua berkas`,code:{label:`Kode`,summary:`Perubahan kode sumber.`},other:{label:`Lainnya`,summary:`Perubahan lain yang tidak cocok dengan kategori yang ada.`},docs:{label:`Dokumentasi`,summary:`Pembaruan dokumentasi.`},tests:{label:`Pengujian`,summary:`Cakupan pengujian untuk perubahan ini.`},config:{label:`Konfigurasi`,summary:`Perubahan konfigurasi.`},deps:{label:`Dependensi`,summary:`Perubahan versi dependensi.`},generated:{label:`Hasil generate`,summary:`Perubahan berkas hasil generate atau build.`}},b={tokenRequired:`Token GitHub diperlukan untuk menulis ke pull request ini.`,diffNotLoaded:`Diff belum selesai dimuat.`,noViewer:`Pengguna GitHub untuk token ini tidak dapat ditentukan.`,tokenRejected:`GitHub menolak token ini (401). Pastikan token ditempel lengkap dan belum dicabut.`,tooLarge:`Analisis terlalu besar untuk dibagikan sebagai komentar ({n} karakter).`},x={loading:`Memuat perubahan lokal…`,loadFailed:`Tidak dapat memuat perubahan ini`,auth:{title:`Masukkan kode dari terminal Anda`,hint:`pulls.review menampilkan kode 6 digit di terminal tempat ia berjalan.`,invalid:`Kode itu tidak berhasil. Periksa terminal dan coba lagi.`,submit:`Lanjutkan`},picker:{tagline:`Tinjau branch lokal, rentang, dan perubahan yang belum di-commit seperti pull request: dikelompokkan, diringkas, satu cakupan setiap kali.`,title:`Tinjau perubahan lokal`,base:`Basis`,head:`Head`,compare:`Bandingkan`,shortcuts:`Pintasan`,worktree:`Perubahan yang belum di-commit`,recentCommits:`Commit terbaru`,branches:`Branch`,against:`terhadap {base}`,current:`Branch saat ini`,github:`Atau pull request, perbandingan, atau commit GitHub`}},S={common:e,landing:t,guide:n,load:r,pr:i,embed:a,pulls:o,analyze:s,share:c,group:l,note:u,file:d,reviewProgress:f,fileStatus:p,prState:m,category:h,review:g,chat:_,settings:v,rules:y,errors:b,local:x};export{s as analyze,h as category,_ as chat,e as common,S as default,a as embed,b as errors,d as file,p as fileStatus,l as group,n as guide,t as landing,r as load,x as local,u as note,i as pr,m as prState,o as pulls,g as review,f as reviewProgress,y as rules,v as settings,c as share};