From 79afbb2f0980954c359bad94bbb8046cb68d9b29 Mon Sep 17 00:00:00 2001 From: Efra Espada Date: Tue, 20 Oct 2026 14:09:26 +0200 Subject: [PATCH 1/4] docs-617-make-onboarding-web-first-with-a-verifiable-first-workflow-and-goal-based-documentation: guide web setup and verifiable workflows --- README.md | 139 +++------ docs.json | 74 ++++- docs/assets/README.md | 12 + docs/assets/setup-web-pairing.png | Bin 0 -> 52458 bytes docs/assets/setup-web-plan.png | Bin 0 -> 48333 bytes docs/authentication.mdx | 2 + docs/bugbot/index.mdx | 8 +- docs/configuration-checklist.mdx | 2 + docs/configuration.mdx | 2 + docs/features.mdx | 4 +- docs/first-workflow.mdx | 139 ++++++--- docs/guides/index.mdx | 28 ++ docs/guides/issues-and-branches.mdx | 47 +++ docs/guides/releases-and-hotfixes.mdx | 53 ++++ docs/guides/review-pull-requests.mdx | 51 ++++ docs/guides/work-with-the-bot.mdx | 52 ++++ docs/how-to-use.mdx | 409 +++++++++++--------------- docs/index.mdx | 95 ++---- docs/issues/first-workflow.mdx | 2 + docs/issues/index.mdx | 2 + docs/overview.mdx | 47 ++- docs/pull-requests/first-workflow.mdx | 2 + docs/pull-requests/index.mdx | 2 + docs/quick-start.mdx | 94 ++---- docs/setup-web.mdx | 135 +++++++++ 25 files changed, 869 insertions(+), 532 deletions(-) create mode 100644 docs/assets/README.md create mode 100644 docs/assets/setup-web-pairing.png create mode 100644 docs/assets/setup-web-plan.png create mode 100644 docs/guides/index.mdx create mode 100644 docs/guides/issues-and-branches.mdx create mode 100644 docs/guides/releases-and-hotfixes.mdx create mode 100644 docs/guides/review-pull-requests.mdx create mode 100644 docs/guides/work-with-the-bot.mdx create mode 100644 docs/setup-web.mdx diff --git a/README.md b/README.md index 6c4964c10..82ec9cda8 100644 --- a/README.md +++ b/README.md @@ -3,122 +3,75 @@ ![Build](https://github.com/vypdev/copilot/actions/workflows/ci_check.yml/badge.svg) ![License](https://img.shields.io/github/license/vypdev/copilot) - # Copilot — GitHub with super powers -**Copilot** is a GitHub Action for task management using Git-Flow: it links issues, branches, and pull requests to GitHub Projects, automates branch creation from labels, and keeps boards and progress in sync. Think of it as bringing Atlassian-style integration (boards, tasks, branches) to GitHub. - -Full documentation: **[docs.page/vypdev/copilot](https://docs.page/vypdev/copilot)** +**Copilot connects the work described in a GitHub issue to its branch, implementation, pull request, review, and release.** It combines a GitHub Action for repository automation with a local CLI and web setup assistant. Enable the capabilities your team needs, including optional AI analysis and code changes. -*Maintains state and configuration persisted in issue descriptions for seamless workflow automation.* +## What can I do with it? ---- +| Your goal | What Copilot provides | Start here | +|---|---|---| +| Organize work from issues | Issue Forms, Action-managed branches, lifecycle labels, progress, and GitHub Projects updates | [Manage issues and branches](https://docs.page/vypdev/copilot/guides/issues-and-branches) | +| Review pull requests | Bugbot findings near the code, a current review status, optional PR descriptions, and explicit requests to fix findings | [Review PRs and resolve findings](https://docs.page/vypdev/copilot/guides/review-pull-requests) | +| Ask for help or implementation | Commands to explain code, diagnose problems, plan work, or apply an authorized change and run verification | [Work with the bot](https://docs.page/vypdev/copilot/guides/work-with-the-bot) | +| Keep working branches current | Drift notices and an authorized synchronization command that verifies the merge before pushing | [Branch synchronization](https://docs.page/vypdev/copilot/issues/branch-synchronization) | +| Ship releases and hotfixes | Frozen source revisions, protected promotion PRs, version tags, GitHub Releases, and reconciliation back to development | [Release and hotfix guide](https://docs.page/vypdev/copilot/guides/releases-and-hotfixes) | -## Documentation index +For example, a maintainer starts an admitted issue with `in-progress`. Copilot creates and verifies its branch. A developer or an authorized bot request contributes changes on that exact branch. A linked PR receives review findings and runs the repository's checks. After an authorized merge, a separately launched release can promote the accepted production commit and reconcile it into development. -| Section | Description | -|--------|-------------| -| [How to use](https://docs.page/vypdev/copilot/how-to-use) | Step-by-step setup: PAT, `copilot setup`, workflows | -| [Features & capabilities](https://docs.page/vypdev/copilot/features) | Workflow triggers, single actions, agent execution, and concurrency | -| [Authentication](https://docs.page/vypdev/copilot/authentication) | PAT setup, permissions, token best practices | -| [Configuration](https://docs.page/vypdev/copilot/configuration) | All inputs: branches, labels, projects, locale, agents, and more | -| [Release orchestration](https://docs.page/vypdev/copilot/issues/deployment-orchestration) | Production-first release/hotfix flow, npm OIDC, reconciliation, and recovery | -| [Agents](https://docs.page/vypdev/copilot/agents) | Runtime, model, CLI, policy, and failure behavior | -| [Security & Operations](https://docs.page/vypdev/copilot/security-operations) | Credentials, trust boundaries, provisioning, verification, upgrades, and rollback | -| [Development](https://docs.page/vypdev/copilot/development) | Architecture, testing, documentation, artifacts, and release process | +```mermaid +flowchart LR + I[Issue and plan] --> B[Verified working branch] + B --> C[Developer or authorized bot changes] + C --> P[Linked PR and review] + P --> M[Protected merge] + M --> R[Explicit release or hotfix] + R --> D[Development reconciliation] +``` ---- +AI capabilities require a configured agent runtime, an allowed model, and working authentication on the selected runner. Code-changing requests require repository write authority and run configured verification before commit/push. Release promotion follows the repository's merge policy. Installing Copilot does not grant permission to merge or deploy. -## Getting started +## Start with the web assistant -The recommended onboarding path is to install the published package globally with -`pnpm` and initialize the target repository with `copilot setup`: +Use **Node.js 24 or newer**, `pnpm`, and a working checkout of the repository you want to configure: ```bash pnpm add --global @vypdev/copilot copilot --version cd /path/to/your/repository -copilot setup -# Optional local visual assistant, in the same repository: copilot setup --web ``` -`@vypdev/copilot` contains both the `copilot` CLI and the compiled GitHub Action. -The global installation makes the CLI and the setup templates available; it does -not install an Action into GitHub. `copilot setup` is the canonical initialization -flow and will, according to the selected features: - -- copy the selected workflows, Issue Forms, pull request template, and repository agent guidance into the repository; -- create the labels and issue types used by the workflows; -- configure non-sensitive Repository Variables; and -- validate or provision the workflow PAT and provider credentials at the selected scope. - -The wizard selects issue workflow kinds with a Space/Enter multi-select; `All` -is the default. It also generates `.copilot/repository-profile.json`, -`.copilot/AGENT_GUIDE.md`, and the Codex skill -`.agents/skills/copilot-repository-workflow/SKILL.md` by default. The generated -guidance makes clear that the Action owns remote branch lifecycle: agents work -on the exact existing branch and push normal commits, but do not create, rename, -delete, replace, or force-push managed branches. - -The setup PAT entered by the operator is separate from the workflow `PAT` Secret. -Interactive setup can guide creation of both via GitHub's prefilled PAT form: -picks the permission-affecting setup options first, then the operator creates a temporary setup token, and the bot account creates the -persistent workflow token. GitHub handles account switching, 2FA, repository -selection, and final creation; Copilot never creates or revokes either token. -Use `copilot setup --dry-run` to inspect the plan before making local or remote -changes. See the complete [How to use](https://docs.page/vypdev/copilot/how-to-use) -guide and [Authentication](https://docs.page/vypdev/copilot/authentication). - -`--web` opens an ephemeral, loopback-only setup page with a six-stage progress -rail, plan review, separate masked inputs for the two PAT roles, and a -System/Light/Dark theme control. If the browser does not open, use the local -URL printed in the terminal. The page does not create PATs: GitHub owns the -form, account switch, 2FA, and token issuance. You must explicitly approve -the plan and Apply; `--web` cannot be combined with unattended approval or -secret-bearing command-line flags. The terminal wizard remains the default. - -### Manual workflow integration (advanced) - -You can integrate the Action manually when the CLI setup flow is not suitable: -copy selected files from `setup/workflows/` into `.github/workflows/` and add -steps such as: - -```yaml -- uses: vypdev/copilot@v3 - with: - token: ${{ secrets.PAT }} -``` +The CLI opens a local browser page. Pair it with the code printed in the terminal, confirm the target repository, and choose **Basic guided setup**. The assistant explains the required permissions, guides the two separate PAT roles, and shows the files and GitHub resources affected before you approve changes. + +- The temporary **setup PAT** belongs to the operator and is used locally to configure the installation. +- The persistent **workflow PAT** belongs to the bot account and is stored as the Actions Secret `PAT`. +- GitHub creates both tokens in its own tabs. The assistant never creates or revokes them. + +Follow the [web setup tutorial](https://docs.page/vypdev/copilot/setup-web) through installing the generated files and verifying the result. Then complete the [first issue-to-PR workflow](https://docs.page/vypdev/copilot/first-workflow). A local configuration check alone does not prove that an Action can run successfully. -This is a lower-level integration path, not an alternative name for -`copilot setup`: it does not automatically create labels, issue types, Variables, -Secrets, templates, or the complete set of workflows. Those resources must be -configured and kept consistent manually. See [Workflow setup](https://docs.page/vypdev/copilot/issues/workflow-setup) -for action-level examples. +`copilot setup` without `--web` launches the terminal assistant. Use `copilot setup --web --dry-run` for a no-change preview. The npm package installs the CLI and templates; running setup and installing its generated files enables the Action in your repository. ---- +## Choose your next step -## What it does +| You need… | Documentation | +|---|---| +| A short installation checklist | [Quick start](https://docs.page/vypdev/copilot/quick-start) | +| A walkthrough of browser setup | [Set up with the web assistant](https://docs.page/vypdev/copilot/setup-web) | +| Observable proof that the installation works | [First workflow](https://docs.page/vypdev/copilot/first-workflow) | +| A guide for a specific outcome | [Choose a goal](https://docs.page/vypdev/copilot/guides) | +| Token ownership, permissions, or account recovery | [Authentication](https://docs.page/vypdev/copilot/authentication) | +| Existing-installation updates, batch setup, or manual integration | [Setup and maintenance reference](https://docs.page/vypdev/copilot/how-to-use) | +| Every feature, input, and operational control | [Capabilities](https://docs.page/vypdev/copilot/features), [Configuration](https://docs.page/vypdev/copilot/configuration), [Security & Operations](https://docs.page/vypdev/copilot/security-operations) | -- **Issues** — Branch creation from labels (feature, bugfix, hotfix, release, docs, chore), project linking, assignees, lifecycle/size/progress labels; new issues receive a contextual `@vypbot` welcome; from comments you can ask for help, explain/diagnose/analyze code, plan work, fix findings, or request an authorized implementation. -- **Pull requests** — Link PRs to issues, update project columns, assign reviewers; optional AI-generated PR description and automatic Bugbot review with stable finding threads; use `/copilot analyze` or `@vypbot analyze ...` for read-only review, or request an authorized change. -- **Push (commits)** — Notify the issue, update size/progress, and optionally run Bugbot; a separate agent-free observer watches every branch and recommends synchronizing children when their parent moves. -- **Projects** — Link issues and PRs to boards and move them to the right columns. -- **Single actions** — On-demand maintenance and analysis, plus workflow-owned callbacks for durable release and hotfix operations. -- **Branch synchronization** — Authorized issue/PR commands merge parent into working branch, call the fixer only for eligible conflicts, run verification, reject remote races, push, and report exactly what happened. -- **Release and hotfix orchestration** — Cut from the correct immutable origin, promote through a protected production PR, publish only the accepted production commit, and reconcile it back through resumable managed PRs without keeping a runner polling checks. -- **Evidence and safety** — Every run writes a bounded Job Summary; PR findings are reconciled from GitHub into one status card, historical review status blocks, and a `Copilot / Review` Check Run. Actionable findings are neutral by default and fail it only when `bugbot-fail-on-unresolved` is enabled, while unknown/incomplete state always fails closed. Agent sandboxes run without approval or network access, and all agent/comment content remains bounded, secret-redacted, and treated as untrusted data. -- **Bugbot quality** — Hierarchical rules, semantic finding identity, safe GitHub suggestions, analysis-only dry runs, a multilingual regression corpus, real-agent benchmark runner, content-free telemetry/analytics, and the provider-neutral `@vypdev/copilot/bugbot` API. -- **Concurrency** — Durable mutation workflows wait only for older active runs of that same workflow, with rate-limit-aware polling and a 90-minute deadline. Commit and Pull Request templates share a branch-scoped latest-revision group so a newer Bugbot review supersedes an older one; provider re-reads and head guards make interrupted finding transitions retryable. Event templates can also skip bot-authored jobs before runner allocation through `COPILOT_BOT_LOGIN`. See [Features → Workflow concurrency](https://docs.page/vypdev/copilot/features#workflow-concurrency-and-sequential-execution). +Setup installs the selected workflows, Issue Forms, labels, issue types, Variables, credentials, and repository agent guidance. Projects, agent routing, release/hotfix workflows, and other capabilities follow your selections. New setup offers PR approval assessment in `recommend` mode; native bot approval requires explicitly selecting `guarded` and meeting its prerequisites. See [guarded approval](https://docs.page/vypdev/copilot/pull-requests/guarded-approval). -AI features use the configured agent runtime and qualified model; see the [Agents](https://docs.page/vypdev/copilot/agents) and [Security & Operations](https://docs.page/vypdev/copilot/security-operations) documentation. You can run progress and Bugbot locally through the [Single actions → Workflow & CLI](https://docs.page/vypdev/copilot/single-actions/workflow-and-cli) path. +Release templates are registry-neutral. Publishing your application or package requires your own build, validation, and deployment steps. This repository's npm publishing workflow is an example, not something setup installs into every consumer repository. -The programmatic Bugbot API is request-only: `review(BugbotReviewRequest)` is -the sole review entrypoint, and internal runtime aggregates are not exported. -See the [Programmatic API](https://docs.page/vypdev/copilot/bugbot/programmatic-api). +## Advanced integrations and contributing ---- +For a manually maintained workflow, use `vypdev/copilot@v3` and supply `token: ${{ secrets.PAT }}`. Follow the [manual integration instructions](https://docs.page/vypdev/copilot/how-to-use#manual-workflow-integration-advanced) to install the supporting resources and event workflows. -## Contributing +The request-only `@vypdev/copilot/bugbot` API is documented in the [programmatic API guide](https://docs.page/vypdev/copilot/bugbot/programmatic-api). For local commands, see [Workflow & CLI](https://docs.page/vypdev/copilot/single-actions/workflow-and-cli). -See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, conventions, and how to submit changes. +See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup and contribution requirements. diff --git a/docs.json b/docs.json index 68302b40b..7187d8296 100644 --- a/docs.json +++ b/docs.json @@ -1,6 +1,6 @@ { "name": "Copilot", - "description": "A tool for managing Git workflow and board integration", + "description": "Automate issue-to-PR workflows, review, authorized changes and releases in GitHub", "tabs": [ { "id": "root", @@ -53,30 +53,67 @@ "href": "/", "icon": "rocket" }, - { - "title": "Overview", - "href": "/overview", - "icon": "house" - }, { "title": "Quick start", "href": "/quick-start", "icon": "play" }, { - "title": "First workflow", + "title": "Set up with the web assistant", + "href": "/setup-web", + "icon": "gear" + }, + { + "title": "Your first issue-to-PR workflow", "href": "/first-workflow", "icon": "square-check" + } + ] + }, + { + "group": "Guides by goal", + "tab": "root", + "pages": [ + { + "title": "Choose a goal", + "href": "/guides", + "icon": "list-check" }, { - "title": "Configuration checklist", - "href": "/configuration-checklist", - "icon": "square-check" + "title": "Manage issues and branches", + "href": "/guides/issues-and-branches", + "icon": "code-branch" }, { - "title": "How To Use", - "href": "/how-to-use", - "icon": "list-check" + "title": "Review PRs and resolve findings", + "href": "/guides/review-pull-requests", + "icon": "code-pull-request" + }, + { + "title": "Work with the bot", + "href": "/guides/work-with-the-bot", + "icon": "robot" + }, + { + "title": "Releases and hotfixes", + "href": "/guides/releases-and-hotfixes", + "icon": "rocket" + } + ] + }, + { + "group": "Reference", + "tab": "root", + "pages": [ + { + "title": "Overview and responsibilities", + "href": "/overview", + "icon": "house" + }, + { + "title": "Features & capabilities", + "href": "/features", + "icon": "list" }, { "title": "Authentication", @@ -89,9 +126,14 @@ "icon": "gear" }, { - "title": "Features & Capabilities", - "href": "/features", - "icon": "list" + "title": "Setup and maintenance", + "href": "/how-to-use", + "icon": "list-check" + }, + { + "title": "Configuration checklist", + "href": "/configuration-checklist", + "icon": "square-check" } ] }, diff --git a/docs/assets/README.md b/docs/assets/README.md new file mode 100644 index 000000000..6a4c8f74b --- /dev/null +++ b/docs/assets/README.md @@ -0,0 +1,12 @@ +# Web setup screenshots + +`setup-web-pairing.png` and `setup-web-plan.png` show the committed browser UI +with the read-only fixture served by `node scripts/serve-web-setup-review.cjs plan`. +They contain public fixture identities and no real PAT, provider credential or +installation result. The pairing screenshot is taken before entering the public +fixture code; the plan screenshot shows its example decision summary. + +To refresh them, follow `docs/development/setup-assistant-review.mdx`, inspect the +screens in the browser, and capture the corresponding states. Keep the fixture +captions in the tutorial: these images illustrate the UI and do not prove a +successful setup, provider authentication or end-to-end acceptance pass. diff --git a/docs/assets/setup-web-pairing.png b/docs/assets/setup-web-pairing.png new file mode 100644 index 0000000000000000000000000000000000000000..6badcb05f90306334aef0d73fb1cf9c0da776d8e GIT binary patch literal 52458 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/authentication.mdx b/docs/authentication.mdx index 6e8db18a7..9fefb943f 100644 --- a/docs/authentication.mdx +++ b/docs/authentication.mdx @@ -3,6 +3,8 @@ title: Authentication description: Securely authenticate your workflows using personal access tokens (PATs). --- +For a first installation, follow [Set up with the web assistant](/setup-web), which introduces each credential at the point it is needed. This page is the permission and recovery reference. + Copilot uses two deliberately separate credentials: - **Setup PAT (operator token):** entered in `copilot setup` or `copilot doctor`, used only for that local command, and never stored in the repository or in a GitHub Secret. The wizard validates it before making changes. diff --git a/docs/bugbot/index.mdx b/docs/bugbot/index.mdx index b69d40578..91443dfe3 100644 --- a/docs/bugbot/index.mdx +++ b/docs/bugbot/index.mdx @@ -5,6 +5,8 @@ description: Detect potential problems, publish findings, and optionally apply t # Bugbot +For the setup-to-resolution walkthrough, use [Review PRs and resolve findings](/guides/review-pull-requests). To request a general implementation, use [Work with the bot](/guides/work-with-the-bot). This section is the detailed Bugbot reference. + Bugbot analyzes changes with the configured agent CLI and publishes structured findings to issues and pull requests. It can optionally apply fixes or user-requested changes when the workflow is restricted to trusted actors and the verification commands pass. @@ -24,11 +26,11 @@ See [Agent CLI configuration](/agents/cli-configuration) and [Configuration](/bu | What you do | What happens | | --- | --- | -| **Push** to a branch linked to an issue | Bugbot analyzes the diff and posts findings on the issue and, when uniquely verified, one canonical PR. | +| **Push** to a branch linked to an issue | Without an open PR, Bugbot analyzes the branch and posts findings on the issue. With a verified open PR, its synchronization event owns review; the paired push keeps issue progress current. | | **Open, reopen, or synchronize a PR** | Bugbot reviews the full PR when it opens/reopens and only the new commit range on synchronization, while rechecking every open finding and reconciling one current status card from verified GitHub state. | | **Comment** `/copilot review`, `/copilot findings`, or `/copilot recheck` | Bugbot performs a read-only review and reconciles historical review blocks, native threads, the status card, Check, and Job Summary without changing files. | -| **Comment** “fix it” / “fix all” (with permission) | The selected agent applies the requested fixes; verification commands run before any commit or push. | -| **Comment** “add a test for X” (with permission) | The selected agent applies the request; verification commands run before any commit or push. | +| **Address the bot** with a fix request, or use `/copilot fix ` (with permission) | The selected agent applies the requested fixes on the authoritative PR branch; configured verification runs before any commit or push. | +| **Comment** `/copilot implement add a test for X` (with permission) | The selected agent applies the request on the verified working branch; configured verification runs before any commit or push. | | **Comment** `/copilot remember ` (with permission) | Adds an auditable rule to `.copilot/BUGBOT.learned.md` and commits it. | ## Pages diff --git a/docs/configuration-checklist.mdx b/docs/configuration-checklist.mdx index 9ab223a97..15d81d7d5 100644 --- a/docs/configuration-checklist.mdx +++ b/docs/configuration-checklist.mdx @@ -4,6 +4,8 @@ description: Required checks before enabling Copilot automation. --- # Configuration checklist +This is the detailed operator checklist for the capabilities you select. For a first installation, follow [web setup](/setup-web) and [your first issue-to-PR workflow](/first-workflow); use the [goal guides](/guides) to identify which optional sections apply. Complete checks for enabled capabilities rather than enabling every feature to satisfy this list. + ## Action contract If guarded PR approval is selected, confirm the exact test/coverage producer tuple, complete info-level Bugbot evidence, a separate workflow PAT bot, effective stale-dismissal rules, and installation of the observer on the default branch. `Copilot / Approval` must never be a required prerequisite of itself. See [guarded approval](/pull-requests/guarded-approval) and rerun `copilot doctor` after installing. diff --git a/docs/configuration.mdx b/docs/configuration.mdx index d69362070..8d300f149 100644 --- a/docs/configuration.mdx +++ b/docs/configuration.mdx @@ -5,6 +5,8 @@ description: Detailed configuration options for Copilot # Configuration Options +For a new installation, use [web setup](/setup-web). To configure a specific outcome, start with the [goal guides](/guides); they connect setup choices, runtime configuration and verification. This page is the input and scope reference. + Copilot provides extensive configuration options to customize your workflow. Use the tabs below to jump to the category you need. To inspect existing settings or change one independent parameter, use the [web configuration panel](/how-to-use#inspect-configuration-and-make-a-small-adjustment). Each quick adjustment shows its source and scope, preserves unrelated values, and verifies the written value from GitHub. diff --git a/docs/features.mdx b/docs/features.mdx index 2d3a047a8..9f950a751 100644 --- a/docs/features.mdx +++ b/docs/features.mdx @@ -5,7 +5,7 @@ description: Complete reference of what the Copilot GitHub Action does # Features & Capabilities -This page describes **every function** the Copilot GitHub Action provides: workflow-triggered behavior (issues, pull requests, pushes) and **single actions** you can run on demand. +Use the [goal guides](/guides) to enable and verify a capability, or [web setup](/setup-web) for the first installation. This page is the detailed capability reference: event-driven behavior and on-demand actions. Workflow-owned deployment continuations are listed for operators; they are not manual commands. @@ -130,7 +130,7 @@ Codex is the default runtime for the repository's AI feature paths. OpenCode and |--------|----------------|-------------| | **Check progress** | Push (commit) pipeline; optional single action `check_progress_action` / CLI `check-progress` | Compares issue vs branch diff, updates progress labels, and reconciles one issue progress card only when its semantic projection changes and the analyzed branch `HEAD` is still current. Stale results change nothing and are explained in the Job Summary. It does not post per-commit narration. | | **Bugbot (potential problems)** | Push (commit) pipeline; optional single action `detect_potential_problems_action` / CLI `detect-potential-problems` | Analyzes branch vs base and posts bounded findings near code plus one concise aggregate status card. A clean full-coverage card omits empty tables and technical detail; incomplete coverage names an effective recovery action instead of requesting identical rechecks. | -| **Do user request** | Issue comment; PR review comment | When you comment asking to perform a change in the repo (or use `/copilot implement `), the configured agent applies the changes in the workspace, runs verify commands, and the action commits and pushes with a generic message. Organization repositories require an org member; personal repositories require the owner or a `push`/`maintain`/`admin` collaborator. Uses the same `bugbot-fix-verify-commands` and agent CLI setup. | +| **Do user request** | Issue comment; PR review comment | When you comment asking to perform a change in the repo (or use `/copilot implement `), the configured agent applies the changes in the workspace, runs verify commands, and the action commits and pushes with a generic message. Organization and personal repositories require the owner or a collaborator with `push`, `maintain`, or `admin` permission; organization membership alone is insufficient. Uses the same `bugbot-fix-verify-commands` and agent CLI setup. | | **Think / reasoning** | Issue/PR comment pipeline; single action `think_action` | Deep code analysis and change proposals (configured agent CLI). On GitHub, returns one sanitized, correlated semantic answer to an explicit `/copilot` command or exact bot mention; Think itself has no comment mutation capability. In the CLI, it prints the answer locally and `--issue` is optional context. | | **Explicit Copilot commands** | Issue and PR comments | `/copilot help`, `/copilot plan`, `/copilot clarify`, `/copilot estimate`, `/copilot test-plan`, `/copilot explain`, `/copilot diagnose`, `/copilot analyze`, `/copilot status`, `/copilot review`, `/copilot findings`, `/copilot recheck`, `/copilot fix`, `/copilot dismiss`, `/copilot remember`, `/copilot implement`, and `/copilot sync-branch` provide a bounded, predictable interface. | | **Branch synchronization** | All-branch push observer; issue/PR command | Detection is agent-free. An authorized command merges parent into working branch, invokes the fixer only for eligible Git conflicts, validates the prepared merge, runs configured checks, revalidates remote heads, pushes, and reports the outcome. | diff --git a/docs/first-workflow.mdx b/docs/first-workflow.mdx index 5adb9c950..82b930cf1 100644 --- a/docs/first-workflow.mdx +++ b/docs/first-workflow.mdx @@ -1,40 +1,105 @@ --- -title: First workflow -description: Create and verify a complete Copilot workflow before enabling broader automation. +title: Your first issue-to-PR workflow +description: Verify a real installation using one documentation issue, its managed branch and a linked PR. --- -# First workflow - -Use this page after [Quick start](/quick-start). It creates one controlled workflow, verifies the result, and only then expands the configuration. - - -Start with the minimum permissions and a trusted branch. Do not expose write credentials to forked pull requests. - - - - - Add a workflow under `.github/workflows/` that checks out the repository and invokes the Copilot Action. Use an explicit Action ref for production. - - - Grant only the permissions required by the selected capability. Detection can start with read-oriented permissions; comments and commits require explicit write permissions. - - - Set `agent-provider`, `agent-model-provider`, and `agent-model` explicitly; set `agent-effort` when the selected model supports it. Configure the matching credential reference and model allowlists. - - - Trigger the workflow on a branch controlled by the repository. Confirm the workflow starts, the selected CLI is provisioned, and the model policy passes. - - - Check the expected comment, label, branch, or output. Review sanitized logs and confirm that no credential or sensitive workspace content was exposed. - - - -## Minimal verification checklist - -- [ ] The workflow used the intended event. -- [ ] The selected runtime and qualified model were explicit. -- [ ] Provisioning and authentication preflight passed. -- [ ] The expected GitHub side effect occurred once. -- [ ] No fork or untrusted checkout received write credentials. - -For agent details, see [Agents](/agents). For operational controls, see [Security & Operations](/security-operations). +# Your first issue-to-PR workflow + +After [web setup](/setup-web), use this small documentation task to verify the installed issue, branch, push and PR routes. It uses your repository's real GitHub workflows. It does not require a release or an automatic code-changing request. + +## Before you start + +- The reviewed installation is on the default branch and on the configured development line where its checkout files are needed. +- Issues, Pull requests, Commits, Issue Forms and the Documentation issue kind are enabled. Enable comment capabilities if you use the optional `/copilot` commands below. +- The workflow bot has the required access. If review/progress is enabled, its runner, runtime/model and credentials are ready. +- You can open issues and contribute a branch/PR; an authorized maintainer can start work and perform the final merge. + +Choose an existing README or documentation file for a one-sentence improvement. Use the following example only if it fits your project; all example issue numbers and branch names must be replaced by the actual GitHub results. + +## 1. Open the Documentation Update form + +Go to **Issues → New issue → Documentation Update**. Enter: + +| Field | Example | +|---|---| +| Title | Explain where developers can find the project's test command | +| Describe the documentation update | Add the existing test command and where to run it to the README's Development section | +| Why is this update needed? | A new contributor should be able to find and run the existing checks without asking the owner | + +Complete the existing-issue checkbox and other required fields. The installed form supplies `documentation` and `docs` by default. Do not remove its required headings or manually edit Copilot's persisted configuration. + +**Expected result:** an admitted Documentation issue, routing labels, and a bot welcome or plan response. Assignee and Project updates depend on your enabled configuration. Opening the issue alone does not create its working branch. + +## 2. Start and verify branch readiness + +An authorized maintainer adds `in-progress`. In **Actions**, open the related **Copilot - Issue** run and its **Job Summary**. + +**Expected result:** the issue has `branched` and an exact branch link under **Development**. Read its recorded parent branch too. The Action chooses the name and parent and applies `branched` only after verification. Do not add that label yourself or create a replacement remote branch. + +If readiness is missing, stop here and inspect the status card/Job Summary. Correct missing fields, permissions or reported prerequisites before retrying. If an SDD is required, answer its blocking questions. A Help issue never becomes a branch-bearing task. + +## 3. Make and verify the small change + +Copy the exact linked remote branch. From your checkout, substitute it for the placeholder: + +```bash +git fetch origin +git switch --track 'origin/' +``` + +If that local tracking branch already exists, switch to it instead. Edit the selected documentation file, using your project's actual test command; do not add a guessed command. Inspect the diff and run: + +```bash +git diff --check +git diff +``` + +Run the test command you documented from its stated directory, plus any documentation checks required by your project. Record their actual results. Commit and push to the same tracked branch through your normal workflow. For a README change: + +```bash +git add README.md +git commit -m "docs: explain the existing test command" +git push +``` + +**Expected result:** that exact branch contains your commit. If progress analysis is enabled, inspect its issue card/labels or the reason evidence is incomplete. Do not treat a percentage as proof that tests passed. + +## 4. Open and inspect the linked PR + +Open a non-draft PR from the managed branch to the recorded parent. Describe the change and checks you actually ran. Link the real issue number, for example `Closes #123` when your issue is #123. + +**Expected result:** the PR has the intended base/head and issue link. Inspect the Actions run for that revision, generated description if enabled, current Bugbot status/inline findings if enabled, and **Copilot / Review** when emitted. The default skips draft review. Project updates depend on your setup. + +If comments are enabled, `/copilot recheck` requests a fresh read-only review. To test a simple comment route separately, post `/copilot help` and verify one reference reply; this metadata-only command does not prove agent authentication. Use `/copilot explain the change in this PR` if you also want to exercise a configured read-only agent request. + +Resolve findings and failing checks. A neutral Bugbot check can still have actionable findings under the default policy; read the current status. Verify the latest pushed SHA rather than relying on an older green run. + +## 5. Complete and record the result + +An authorized maintainer merges through the repository's normal protected process. Verify the Action's resulting issue/project state and configured branch cleanup. If the issue remains open unexpectedly, inspect the completion run rather than manually rewriting its durable configuration. + +Record these observable results in the PR: + +| Result | What to verify | +|---|---| +| Issue admission | Enabled Documentation kind, required fields accepted | +| Branch readiness | `branched`, exact linked ref, recorded parent | +| Contribution | Expected documentation commit on that ref | +| PR processing | Correct link/base/head and checks for the latest revision | +| Review, if enabled | Current review status, findings addressed or explicit coverage/recovery guidance | +| Completion | Merged PR and expected issue/project/cleanup outcome | + +This verifies only the routes exercised. Release publication, guarded approval, other runtimes and additional Projects need their own checks. Choose your [next goal](/guides) after this baseline works. + +## If a checkpoint fails + +| Symptom | Inspect | +|---|---| +| No form or issue workflow | Installation on the default branch and the enabled [workflow profile](/issues/configurable-workflows) | +| No `branched` or linked ref | Copilot - Issue Job Summary, access, selected development branch and any required SDD | +| Run stays queued | Availability and labels of the runner selected during setup | +| Runtime/model/credential error | [Agent failure behavior](/agents/failure-policy) and [Authentication](/authentication) | +| No review | Non-draft status, enabled PR/agent routes, actor gating and current Job Summary | +| Parent moved | The drift card and authorized [branch synchronization](/issues/branch-synchronization) | + +Use [Troubleshooting](/security-operations/operations/troubleshooting) for the reported failure. Reuse the issue and its verified branch when recovering. diff --git a/docs/guides/index.mdx b/docs/guides/index.mdx new file mode 100644 index 000000000..be16ee13d --- /dev/null +++ b/docs/guides/index.mdx @@ -0,0 +1,28 @@ +--- +title: Choose a goal +description: Enable, configure, use and verify the Copilot capabilities you need. +--- + +# Choose a goal + +Use [web setup](/setup-web) to install Copilot and the [first workflow](/first-workflow) to verify the baseline. Then choose the outcome you need. Each guide connects setup choices to everyday use and observable results. + +| I want to… | Guide | Main setup choices | +|---|---|---| +| Turn issues into tracked branches and PRs | [Manage issues and branches](/guides/issues-and-branches) | Issues, Issue Forms and selected kinds; Commits for progress; Projects if needed | +| Review PRs and fix reported problems | [Review PRs and resolve findings](/guides/review-pull-requests) | Pull requests, review/commit routes, agent runtime and comment capabilities for requests | +| Ask for explanations, a plan or implementation | [Work with the bot](/guides/work-with-the-bot) | Issue/PR comments, allowed runtime/model and verification commands | +| Publish a release or emergency fix | [Release and hotfix guide](/guides/releases-and-hotfixes) | Release/Hotfix kinds, publishing and continuation workflows, protected merge policy | + +For branch drift, use [Branch synchronization](/issues/branch-synchronization). For local analysis or a programmatic integration, use [Workflow & CLI](/single-actions/workflow-and-cli) or the [Bugbot API](/bugbot/programmatic-api). + +## Understand the configuration layers + +1. **Setup choices** select capabilities and generate coordinated files and GitHub resources. +2. **Variables and Secrets** supply runtime settings and credentials at the reviewed repository/organization scope. +3. **Workflow inputs and event subscriptions** determine when the Action runs and which settings it receives. +4. **GitHub policy** still controls repository access, checks, review, merge and protected deployment. + +Use setup to change coordinated features. Existing-installation inspection and quick adjustments are documented in [Setup and maintenance](/how-to-use#inspect-configuration-and-make-a-small-adjustment). The complete [Configuration reference](/configuration) explains individual inputs and scope precedence. + +Enabling analysis, file-changing commands, native bot approval and release deployment are separate decisions. Start with the capabilities you can verify, then expand them deliberately. diff --git a/docs/guides/issues-and-branches.mdx b/docs/guides/issues-and-branches.mdx new file mode 100644 index 000000000..1916b6344 --- /dev/null +++ b/docs/guides/issues-and-branches.mdx @@ -0,0 +1,47 @@ +--- +title: Manage issues and branches +description: Configure issue-driven work, branch readiness, progress and optional Project tracking. +--- + +# Manage issues and branches + +Use this path to turn an issue into a tracked working branch and linked PR. Copilot owns the managed branch lifecycle; developers and collaborator agents contribute ordinary commits on its verified ref. + +## Enable and configure + +In [web setup](/setup-web), enable **Issues**, **Issue Forms** and the issue kinds you use. Keep issue-managed branches enabled. Enable **Pull requests** for PR lifecycle automation and **Commits** for push-time issue size/progress and branch-drift observation. Progress analysis additionally needs the configured agent. + +Select your real production/development branch names. Feature, bugfix, documentation and chore work start from the configured development line. Release/hotfix origins have their own [rules](/guides/releases-and-hotfixes). Keep generated form labels and workflow inputs consistent; the [installed workflow profile](/issues/configurable-workflows) records the allowed kinds. + +The workflow PAT needs the grants derived by setup. Plain branch/label/Project operations are GitHub metadata work; planning, Bugbot and pre-branch SDD generation also require an agent runtime and credentials. + +## Use it + +1. Open the appropriate installed Issue Form and complete its required fields. +2. A maintainer adds `in-progress` to start admitted work. +3. Wait for `branched` and the exact linked branch in **Development**. `branched` is an Action-verified result, not a label to add manually. +4. Fetch/check out that ref, make your change, run project checks, commit and push to the same remote ref. +5. Open a PR to the recorded parent, link the issue and resolve the required review/checks before an authorized merge. + +Use the worked [first workflow](/first-workflow) for a complete documentation example. + +When `pre-branch-sdd` is enabled, features and issues marked `contract-change` must answer the blocking specification questions before readiness. Help issues are branchless. See [Pre-branch SDDs](/issues/pre-branch-sdds). + +## Add Project tracking + +Enable Projects only when you want board synchronization. Setup first asks whether you need the integration; after authentication, it discovers accessible organization Projects or offers manual URL/number entry. Configure numeric Project numbers and the exact **Status field option names** for the transitions you want. + +The operator needs discovery access; the workflow bot needs access to update each selected Project. Multiple Projects must support the selected Status values. These are Status field values, not arbitrary visual board-column names. See [Project configuration](/issues/configuration) and [Authentication](/authentication). + +## Verify and recover + +| Check | Expected evidence | +|---|---| +| Issue admission | Correct enabled kind and no missing-field or conflicting-label blocker | +| Branch readiness | `branched`, exact Development link and recorded parent | +| Contribution | Your pushed revision appears on that linked ref | +| Progress, when enabled | Current progress card/labels or an explicit incomplete-evidence diagnostic; no invented percentage | +| Projects, when enabled | Correct linked item and configured Status after an issue/PR transition | +| Completion | Merged linked PR and the Action's resulting issue/project state | + +For a missing branch, inspect the issue status card and Actions Job Summary. Do not create a replacement managed branch. When the parent advances, inspect the drift notice and use authorized `/copilot sync-branch` (or its `--dry-run` preview); see [Branch synchronization](/issues/branch-synchronization). For configuration mismatches, inspect [labels and branch types](/issues/labels-and-branch-types) and run `copilot doctor --read-only`. diff --git a/docs/guides/releases-and-hotfixes.mdx b/docs/guides/releases-and-hotfixes.mdx new file mode 100644 index 000000000..66e3a071c --- /dev/null +++ b/docs/guides/releases-and-hotfixes.mdx @@ -0,0 +1,53 @@ +--- +title: Release and hotfix guide +description: Configure publication, launch one authorized operation and verify production and development reconciliation. +--- + +# Release and hotfix guide + +Use a Release issue to ship a frozen development snapshot, or a Hotfix issue to start from an existing production version tag. Copilot coordinates preparation, protected production promotion, publication and reconciliation. Your repository supplies its product-specific build and deployment steps. + +## Before launching a release + +1. Enable the Release and/or Hotfix kinds in [web setup](/setup-web), keeping Issues and managed branches enabled. Review the production/development branch roles and reconciliation policy. +2. Install `copilot_deployment_orchestration.yml` and every enabled publisher (`release_workflow.yml` and/or `hotfix_workflow.yml`) on the repository's **default branch** before starting. A continuation installed only on a temporary release branch cannot wake the operation. +3. Add and validate your own preparation, build, test and deployment steps at the template extension points. Consumer templates are registry-neutral: they do not automatically publish your package to npm. +4. Check bot PAT permissions, protected target branches, merge-commit support for `production-lineage`, and native auto-merge or merge-queue readiness for the chosen mode. The release operator and workflow bot must be different identities. +5. Configure the credentials, environments and registry-specific controls required by your own deployment. This project's npm OIDC setup is documented as a [repository-specific example](/issues/deployment-orchestration#npm-trusted-publishing-for-this-repository). +6. Run `copilot doctor` after installing workflows and Variables, inspect its limitations and correct blockers. Complete the full [operator preflight](/issues/deployment-orchestration#operator-preflight). + +## Launch one authorized release + +1. Check the currently published version and existing open release operations. Select the next intended version without duplicating an active operation. +2. Open **Issues → New issue → Release** and complete every field, including Release Type, Release Version, Changelog and Additional Context. Use your installed form and label names. +3. A maintainer adds `in-progress`. Wait for `branched` and verify the exact linked release branch. Copilot records the development origin SHA at this cut; later development commits are outside that snapshot. +4. Once ready and explicitly authorized to deploy this release, add the installed deployment label (`deploy` by default). +5. Follow the issue's control-center card and protected promotion PR. Review the exact prepared revision and required checks; merge or let the configured protected merge mode proceed only within your authorization. +6. After production promotion, let the installed continuation publish the accepted production commit and open the configured reconciliation PRs. Complete their protected review/merge requirements. + +```mermaid +flowchart LR + D[Development snapshot] --> R[Ready release branch] + R --> P[Protected production PR] + P --> A[Accepted production commit] + A --> T[Version tag and configured publication] + T --> B[Development reconciliation] + B --> C[Completed operation] +``` + +## Verify completion + +Check the durable operation and publication facts together: + +- The release includes the intended fixes and the accepted production SHA. +- The immutable version tag resolves to that SHA and the GitHub Release is published. +- Your package or deployed artifact reports the expected identity/version and commit, where that metadata is available. For this repository's npm package, `gitHead` must match the accepted production SHA. +- Every configured reconciliation target completed and the operation is marked `completed` without an outstanding failure. + +A merged production PR, closed issue, created tag or successful preparation job alone does not establish all of these facts. + +## Hotfixes and recovery + +For a hotfix, use the installed **Hotfix** form with an existing Base Version tag and the new Hotfix Version, description and solution. Start with `in-progress`, wait for readiness, then explicitly launch with `deploy`. Its origin is the selected production tag; reconciliation follows the configured development/active-release policy. + +When an operation pauses or fails, reuse its existing issue and control-center recovery action. Inspect the visible phase and retained commits/PRs/publication receipts; do not create replacement managed branches, tags, releases or duplicate dispatches. Checks and reviews may be an external wait rather than a failed workflow. Use the [phase-specific recovery reference](/issues/deployment-orchestration#recovery-by-visible-phase) for the correct next action. diff --git a/docs/guides/review-pull-requests.mdx b/docs/guides/review-pull-requests.mdx new file mode 100644 index 000000000..467b28591 --- /dev/null +++ b/docs/guides/review-pull-requests.mdx @@ -0,0 +1,51 @@ +--- +title: Review PRs and resolve findings +description: Enable Bugbot review, understand its status, and verify fixes on the current PR revision. +--- + +# Review PRs and resolve findings + +Use Bugbot to report potential problems near the changed code and maintain a current review status as a PR evolves. Review findings, required CI checks and native approvals are separate signals. + +## Enable and configure + +In [web setup](/setup-web), enable **Pull requests** and the agent runtime/model used for review. Enable **Commits** if you also want branch analysis before a PR exists. Enable the issue/PR comment capabilities for explicit review and fix commands. Install the generated files before testing. + +Review these settings in setup or the [Bugbot configuration reference](/bugbot/configuration): + +| Setting | Use | +|---|---| +| `bugbot-severity` | Minimum severity published; setup selects `info`, while the standalone Action default is `low` | +| `bugbot-comment-limit` | Individual finding publication limit; overflow is summarized | +| `bugbot-review-drafts` | Whether draft PRs receive review; default `false` | +| `bugbot-fail-on-unresolved` | Whether actionable findings fail the check; default `false` | +| `bugbot-fix-verify-commands` | Your build/test/lint commands that must pass before an automated fix is committed | + +Start PR approval assessment in `recommend` or choose `off`. Native `guarded` approval requires explicit CI/coverage producer attestations and branch-rule/identity prerequisites. A passing Bugbot review alone does not meet those requirements. See [Guarded PR approval](/pull-requests/guarded-approval). + +## Review and resolve a PR + +1. Open a same-repository PR from the verified issue branch to its recorded parent and link the issue. Use a non-draft PR for the default review path. +2. Check the current **Bugbot status** comment, inline findings and **Copilot / Review** check for the current head. Review bodies from older runs are history. +3. Push a fix yourself, or copy the exact reported finding ID and request a targeted fix from the PR conversation or finding thread: + + ```text + /copilot fix + ``` + + Replace the placeholder with the actual ID. The author must have repository write authority; the Action verifies the authoritative branch and runs configured verification before commit/push. +4. Request a fresh read-only review when needed: + + ```text + /copilot recheck + ``` + +5. If a finding is demonstrably incorrect, explain the evidence and use `/copilot dismiss` with its exact ID. Dismissal records a review decision; it is not a code fix. + +## Verify the result + +A successful fix commit does not resolve a finding by itself. A fresh review of the current revision must verify it and reconcile the thread/status. Check the pushed SHA, its required CI results, the current finding state and any incomplete-coverage guidance. + +With the default `bugbot-fail-on-unresolved: false`, actionable findings may produce a neutral check. `unknown` or failed/incomplete reconciliation remains a failure. A green or neutral check is therefore not a substitute for reading the current status card. Bounded partial/skipped outcomes are explained there and in the Job Summary; split an overlarge change or follow the stated recovery instead of repeating an identical review blindly. + +For failures, inspect [Detection](/bugbot/detection), [Finding publication](/bugbot/finding-publication), [Autofix](/bugbot/autofix), and [Troubleshooting](/security-operations/operations/troubleshooting). Keep write credentials away from untrusted fork checkouts; use the documented [trust boundaries](/security-operations/security/trust-boundaries). diff --git a/docs/guides/work-with-the-bot.mdx b/docs/guides/work-with-the-bot.mdx new file mode 100644 index 000000000..d5e8200a8 --- /dev/null +++ b/docs/guides/work-with-the-bot.mdx @@ -0,0 +1,52 @@ +--- +title: Work with the bot +description: Ask for explanations, plans, diagnosis or an authorized implementation from GitHub comments. +--- + +# Work with the bot + +Address Copilot from an issue or PR to ask about the code or request a concrete change. Read-only analysis and file-changing requests have different requirements and results. + +## Enable and configure + +Enable the issue and PR comment capabilities in [web setup](/setup-web). Select a supported runtime/model and ensure authentication works on the runner. For file changes, configure `bugbot-fix-verify-commands` with the project's actual validation commands and provide a verified branch-bearing issue or same-repository PR. + +The installed workflow PAT determines the bot identity. Explicit `/copilot` commands do not require a mention. For natural language, mention the exact configured bot account; `@vypbot` is this repository's account, not a universal bot login. + +## Start with a read-only request + +Post one command in the relevant issue or PR: + +```text +/copilot explain how this request reaches the authentication check +``` + +Other examples: + +```text +/copilot plan add validation for an empty configuration file +/copilot diagnose why the current workflow cannot find its runtime +/copilot test-plan cover invalid and expired credentials +``` + +**Expected result:** one correlated GitHub reply or updated plan, with no repository file edits. General unaddressed conversation stays inert. `/copilot help` lists commands; `/copilot status` reports lifecycle state; `/copilot doctor` checks runtime prerequisites using bounded read-only evidence. Their metadata-only routes do not need a model call. + +## Request an implementation + +First verify the issue has its Action-linked ready branch, or use the intended open PR in this repository. Review the plan and make the authorized request explicit: + +```text +/copilot implement add the empty-file validation described in this issue and its regression tests +``` + +For organization and personal repositories, file-changing requests require the owner or a collaborator with `push`, `maintain` or `admin` permission. Organization membership alone is insufficient. `ai-members-only`, when enabled, is an additional gate. + +Copilot checks out the authoritative branch, applies the bounded request, runs the configured verification and commits/pushes only if validation succeeds. If there is no verified branch or verification fails, it stops before publishing a commit. A Help issue remains branchless; use an enabled branch-bearing Issue Form for implementation. + +**Expected result:** a reply stating whether changes were pushed or no commit was needed. Inspect the actual diff, verification evidence and acceptance criteria before treating the task as complete. The request does not authorize merging the PR or launching a release. + +## Follow up + +Use `/copilot fix ` for an existing finding, `/copilot recheck` for a fresh read-only review, and `/copilot sync-branch --dry-run` to preview parent/working-branch synchronization. Replace finding placeholders with the exact published IDs. + +If a request is blocked, inspect the reply and Job Summary for authorization, branch, runtime, model or verification failures. Fix that prerequisite before retrying. The complete [command reference](/issues/comment-commands) lists effects and limits; [Do user request](/bugbot/do-user-request) describes implementation boundaries and [verification commands](/bugbot/verification-commands) explains validation. diff --git a/docs/how-to-use.mdx b/docs/how-to-use.mdx index f18bc6441..51821d8ae 100644 --- a/docs/how-to-use.mdx +++ b/docs/how-to-use.mdx @@ -1,128 +1,22 @@ --- -title: How To Use -description: Quick setup with copilot setup, then customize labels, templates, and workflows. +title: Setup and maintenance reference +description: Terminal setup, installation maintenance, organization reuse and complete generated-resource inventories. --- -## Inspect configuration and make a small adjustment - -Run `copilot setup --web` from your checkout. After pairing and repository -confirmation, the configuration panel explains whether Copilot is detected, -not configured, or only partly inspectable. A new checkout offers **Start -setup**. Existing workflows offer inspection, **Quick adjustments**, and -**Run the complete assistant**. - -Choose **Read configuration from GitHub** to supply a temporary setup PAT. -Opening or refreshing the panel reads only. The guided link requests read -access for Variable values and Secret names; Secret presence does not prove -that its token is valid. The panel distinguishes repository values, -organization values and workflow fallbacks, including repository overrides. -Expand the workflow details to inspect every detected non-secret input. - -For an independent setting such as the review comment limit, choose **Change**, -enter a value, then review the old value, new value and scope. Organization -changes show their shared impact before approval and retain existing visibility -and repository access. Copilot tests Variables Write with a temporary Variable, -removes it, checks for changes during your review, writes the single setting, -and reads it back. It returns to the panel so you can make another adjustment. -Quick adjustments never request a bot PAT or rewrite workflows and Secrets. -Choose **Finish** when you are done. A read-only inspection ends successfully -without suggesting that setup was cancelled or that anything was changed. - -Use the complete assistant for agents, Projects, capabilities, credentials, -scope changes or workflows. This starts a fresh questionnaire with its usual -defaults; it does not reconstruct your customized configuration. Inspect the -panel first and review the final plan before applying it. `--skip-variables` -keeps quick adjustments read-only; `--dry-run` uses the existing full preview -assistant without the management write path. - -If access is limited, reconnect with a corrected setup PAT. Unknown expressions, -environment overrides and unavailable inventories cannot authorize a quick -change. If cleanup or read-back cannot be confirmed, inspect GitHub before -retrying; Copilot does not automatically restore an earlier value. The panel -describes this checkout rather than certifying the default branch or runner. - - -## Reuse organization settings or configure several repositories - -Run `copilot setup --web` from the current repository and confirm its owner and -name. Choose **This repository** (the default) or **Several repositories**. The -terminal equivalent for an explicit batch is `copilot setup --batch`. - -```mermaid -flowchart LR - A[Confirm repository] --> B[Choose scope and configuration source] - B --> C[Select exact repositories] - C --> D[Review target settings and complete batch] - D --> E[Approve temporary permission checks and setup PRs] - E --> F[Human merge and verification] -``` - -Choose **Reuse compatible organization configuration** to import recognized, -valid Variables and skip their questions. Repository overrides take precedence; -explicit answers take precedence over both. Target branches, CI commands and -approval producer identities still need their own review. Reuse creates only missing repository -Variable names. If an existing repository value must change, make a separate -reviewed update and prepare a fresh plan; batch setup will not overwrite it. -Equivalent validated approval-policy JSON is retained despite formatting. -Retained Secrets require complete revision metadata before Apply. If that -metadata cannot be verified, setup stops and asks for a fresh inspection; -existing values and completed effects are preserved. The preview shows -retained shared settings and new repository overrides. Existing Secret values -are never read, copied, displayed or replaced. A missing required binding blocks -that repository; provision it separately and inspect again. - -In the terminal, enter repository IDs or type `confirm` to keep the displayed -selection. A blank answer does not accept the selection. +# Setup and maintenance reference -For several repositories, select 1–25 explicit repository identities in the same -organization. Discovery is limited to the PAT's visible repositories, with -search and exact-name lookup. If needed, reconnect with a temporary operator PAT -restricted to the selected repositories. There is no implicit “all repositories” -selection. Batch Customize changes settings while retaining existing Secret -bindings; use current-repository Customize to provision new credential values. - -Each target gets its own workflows, forms, labels, issue types and guidance. -The selected development branch must already exist and be readable; create or -select the intended branch before applying a blocked target. Setup does not -invent a development branch or its starting revision. -Review the exact file changes, repository Variable names, additive shared-access -grants, installation ref, base SHA and temporary permission checks. Approval can -create/remove test resources and leave GitHub history or notifications. Pending -cleanup blocks installation. Shared values, visibility and other memberships -stay unchanged. Replaced setup assets have separate backups under -`.copilot/setup-backups/`, retaining their relative paths even when their names -and contents match. Apply runs sequentially and opens at most one setup PR per -changed target in `setup/copilot/`. It never merges, tags, -releases or deploys. A repository with matching files needs no new PR and remains -pending verification after resource checks. - -A failed target retains its completed effects while other ready targets can -continue. Stop prevents pending work; it does not remove successful grants or -PRs. One explicit retry is available in the paired session after another review. -If a permission audit ends without a confirmed cleanup report, setup saves that -uncertainty, retains existing effects and stops pending work. The saved operation -cannot resume writes. Inspect the GitHub history and local recovery journal, -resolve any temporary resources, then start a fresh setup preview. -For a closed session, use `copilot setup --web --resume-operation ` -with a fresh temporary PAT and the same configuration. Private local receipts -contain identities, hashes and completed effects, never credentials, values or -file contents. Resume rejects a changed base, target set or desired plan before -permission probes. If the base changed (including after a merge), inspect the -retained PR and start a fresh setup preview instead. A PR means **Waiting for -merge**; credential metadata or PAT authentication does not prove runtime -permissions. Delete the temporary operator PAT yourself after finishing. - -Project Status columns are selected and reviewed for the target Project. Nonempty organization column values are shown as review work and do not prefill or complete those questions. - -Batch write preflight requires complete revision metadata for existing repository -Secrets; matching names alone cannot establish that a credential was not rotated. +For a new installation, use the illustrated [web setup tutorial](/setup-web), +then verify [your first issue-to-PR workflow](/first-workflow). Use this page for +terminal setup details, existing-installation management, upgrades, organization +reuse, batch setup and manual integration. Choose a capability in the [goal guides](/guides). ## Recommended installation and initialization -The setup questionnaire includes an optional [guarded PR approval](/pull-requests/guarded-approval) stage. It recommends guarded mode for new installations, but will not invent test or coverage evidence; `recommend` and `off` remain explicit choices. Existing installations do not begin approving merely by upgrading. +The setup questionnaire includes an optional [guarded PR approval](/pull-requests/guarded-approval) stage. It offers `recommend` by default, which assesses readiness without submitting a native approval. Choose `guarded` explicitly only after its CI/coverage and branch-rule prerequisites are proven, or `off` to disable assessment. Existing installations do not begin approving merely by upgrading. -The recommended path is to install the published package globally with `pnpm` and -then initialize the target repository with `copilot setup`. The package is scoped +Install the published package globally with `pnpm`, then initialize the target +repository with `copilot setup --web` for the recommended browser path or +`copilot setup` for the terminal assistant. The package is scoped as `@vypdev/copilot`, but it exposes the global `copilot` executable: ```bash @@ -140,82 +34,16 @@ Run repository-dependent commands from the root of the repository where you want Copilot to operate, not from the package installation directory. Version and help commands can be run from any directory. -For local development or when testing an unreleased checkout, install from the repository instead: - -```bash -git clone https://github.com/vypdev/copilot.git -cd copilot -PACKAGE_TARBALL="$(npm pack --ignore-scripts --silent)" -corepack pnpm add --global "./$PACKAGE_TARBALL" --force -``` - -If the checkout does not include the compiled `build/` folder, run `corepack pnpm install` and `corepack pnpm run build` before packing. The tarball can be removed after installation. Packing the checkout avoids silently retaining a different global package with the same version. - Once installed, the `copilot` command is available globally. Repository-dependent commands such as `copilot setup`, `copilot doctor`, `copilot check-progress`, `copilot think`, and `copilot do` must be run **from the root of the target repository**. The `copilot upgrade`, `copilot --version`, and help flows can run from any directory. Commands that access GitHub accept `--token` or `PERSONAL_ACCESS_TOKEN` from the environment. `copilot setup` and `copilot doctor` securely prompt for the setup PAT when run interactively; no `.env` file is read or created. `copilot setup --dry-run` is the only setup mode that can run without a token. See [CLI commands](/single-actions/workflow-and-cli). The target must be a working checkout. A bare Git repository has no files for setup or doctor to inspect and is rejected. -Prefer a visual walkthrough? Run `copilot setup --web` from the repository -root on an attached Git branch. A detached HEAD is rejected before credentials -are requested; check out a branch first. Running from a subdirectory is also -rejected before the browser opens or a PAT is requested; change to the -repository root printed in the error and rerun. The CLI starts a short-lived page on -`127.0.0.1` and opens your browser; -if opening fails, paste the printed local URL into a browser on this computer. -Enter the 16-character pairing code shown in the terminal before setup state -appears. The URL contains no secret; keep the pairing code private. Loopback -by itself does not restrict access to your OS account, and anyone on this -computer with the code could join the session. After a page refresh, enter -the code again. Neither the code nor the session key is sent to GitHub. -After five incorrect codes, pairing and takeover pause for 30 seconds; the -session is not permanently locked. Wait and retry the code shown in the -launching terminal. Terminal setup remains available. -An input TTY is not required for `--web`, but you must be able to read the -launcher's stdout (or a privately captured task log) to obtain the code. If -that output was discarded, stop and relaunch from a readable terminal; there -is no code-recovery link in the browser. Treat any captured output as private. -The page shows the same six setup stages, keeps the review pass visibly part -of the current run, presents permissions and the final plan, and asks for a -separate final **Apply setup** approval. Use the System/Light/Dark control in -the top bar to choose a readable palette; the choice lasts only in that tab. -After a successful Apply, **Verify installed setup (read-only)** performs a -separate metadata inspection in the same local session and shows only summary -counts. It does not dispatch an Action or read Secret values; if you have -already deleted the setup PAT in GitHub, run `copilot doctor --read-only` -with a valid setup PAT instead. A failed or partial Apply does -not offer this button: inspect the itemized result and use the CLI command -after resolving the uncertain resources. -While Apply runs, the page reports each resource as in progress and then as -completed, skipped, or needing inspection. If the process stops mid-write, -the operation may already have reached GitHub; inspect that resource before -starting a new setup session. A new process always requires a fresh review -and approval. -The language selector starts in English and offers Spanish, French, and -Portuguese. Switching language does not change the repository locale or reset -your answers. Question headings, explanations, options, permission details, -plan warnings, local errors, and credential status summaries are translated. -A persistent review notice remains in non-English modes while rare dynamic -GitHub/provider diagnostics and the end-to-end language review are completed. -GitHub's own PAT form uses the language -configured on GitHub, independently of this page. -After confirming the checkout, choose **Basic guided setup** (recommended) or -**Customize every setting**. Basic retains explicit permission, security, -branch-role, Project, approval, and storage decisions; only selected advanced -agent, branch-prefix, and Bugbot values stay at their defaults. Explicit -non-default configuration is still asked. Each section shows question-level -progress and has a Previous question control; the final plan summarizes key -decisions and names sections whose advanced defaults were retained. Use its -Change controls to reopen any section and recheck the plan and setup PAT -permissions before approving. A return to a previous section is the same run, -not a new setup attempt. No GitHub change starts by reviewing or editing. -PAT values are submitted to the local process through masked fields and are -not restored after refreshing the page. A new setup question starts with its -own suggested answer; status updates do not erase an answer you are typing. -A second tab is read-only until you explicitly re-enter the launcher's pairing -code there to take control; this invalidates the first tab's control. The -pairing code authorizes this takeover, so share it only with someone you trust -to control the setup. The terminal remains the default with -`copilot setup`. +For interactive onboarding, follow [Set up with the web assistant](/setup-web). +It covers pairing, capability choices, the two PAT roles, plan approval, Apply, +installation of generated files and runtime verification. The terminal remains +available with `copilot setup`. + +### Terminal and advanced setup behavior In the terminal wizard, each question shows a short explanation, the suggested answer, and a related documentation URL. Type `?` at a text, number, or @@ -397,6 +225,19 @@ npm uninstall --global copilot corepack pnpm remove --global copilot ``` +### Installing an unreleased checkout + +For local development or when testing an unreleased checkout, install from the repository instead: + +```bash +git clone https://github.com/vypdev/copilot.git +cd copilot +PACKAGE_TARBALL="$(npm pack --ignore-scripts --silent)" +corepack pnpm add --global "./$PACKAGE_TARBALL" --force +``` + +If the checkout does not include the compiled `build/` folder, run `corepack pnpm install` and `corepack pnpm run build` before packing. The tarball can be removed after installation. Packing the checkout avoids silently retaining a different global package with the same version. + ### Update or reinstall the global CLI For a published release, update the active global npm or pnpm installation: @@ -453,69 +294,144 @@ The complete command reference, including every supported option, is in [Workflo ## Tutorial: Initialize a repository - - - Create the **workflow PAT** for the dedicated bot account. Follow the [Authentication](/authentication) guide to create a **fine-grained PAT** with the runtime permissions required by your workflows and store it as the `PAT` Secret in your repository or organization. During `copilot setup`, the operator will provide a separate **setup PAT** in a hidden prompt; that token is used locally to configure the repository and is never stored as `PAT`. - +The canonical interactive walkthrough is [web setup](/setup-web). For the +terminal alternative: + +1. Install the CLI as above, change to the target repository root, and run + `copilot setup`. +2. Choose capabilities and review the permission-affecting decisions. Create the + temporary operator setup PAT with the guided link, then review the final + plan. Use `:back` to revise a question or `:edit` to change a plan section. +3. Approve the reviewed plan and its disclosed temporary permission tests, supply + the separate workflow bot PAT and required provider credentials, then confirm + Apply. Inspect the itemized receipt for partial or blocked work. +4. Review, commit and merge the generated files through the normal protected + process. Install them on the default branch and the configured development + line where needed, as explained in [install the generated files](/setup-web#install-the-generated-files). +5. Run `copilot doctor --read-only` with a valid setup PAT, resolve blockers, + and complete the [first workflow](/first-workflow). Metadata inspection does + not verify Secret values or establish runtime success. + +For unattended flags and credential provisioning, use [Workflow & CLI](/single-actions/workflow-and-cli). +The detailed workflow inventory below explains installation dependencies and +customization boundaries; the generated plan remains the exact inventory for +your selected features. - - Go to the **root of the repository** where you want Copilot (clone it if needed), then run: +--- - ```bash - cd /path/to/your/repo - copilot setup - ``` +## Inspect configuration and make a small adjustment - In guided interactive setup, answer the short permission-intent questions and review the proposed grants before creating the setup PAT in GitHub. The wizard then securely asks for the token and continues with the remaining plan questions. For automation, pass it explicitly or through the environment: +Run `copilot setup --web` from your checkout. After pairing and repository +confirmation, the configuration panel explains whether Copilot is detected, +not configured, or only partly inspectable. A new checkout offers **Start +setup**. Existing workflows offer inspection, **Quick adjustments**, and +**Run the complete assistant**. - ```bash - PERSONAL_ACCESS_TOKEN=your_setup_pat copilot setup --non-interactive --yes --skip-secrets - # or: copilot setup --token your_setup_pat - ``` +Choose **Read configuration from GitHub** to supply a temporary setup PAT. +Opening or refreshing the panel reads only. The guided link requests read +access for Variable values and Secret names; Secret presence does not prove +that its token is valid. The panel distinguishes repository values, +organization values and workflow fallbacks, including repository overrides. +Expand the workflow details to inspect every detected non-secret input. - The wizard shows a reviewable plan and asks for confirmation. During either questionnaire, use `:back` in the terminal or **Previous question** in the browser to correct an answer; the final plan also offers **Change section** (terminal: `:edit`) without discarding other answers. Revisions recompute dependent questions and PAT grants. The web plan lists agent/model routes, issue workflows, exact trusted check/App/workflow identities, coverage evidence, Project Status transitions, scopes, files, Variables, Secret names, and the temporary PAT write checks selected for this plan. Declining the plan starts no temporary write tests or setup changes. After approval in a normal setup run, each required Write permission is tested with a disposable resource before setup applies changes. Actions and Pull request tests may leave history or notifications after cleanup. `Ctrl-C` or end-of-input exits 130, while declining the final plan exits 0. Use `copilot setup --dry-run` to inspect the plan without changes, whether or not you supply a PAT. +For an independent setting such as the review comment limit, choose **Change**, +enter a value, then review the old value, new value and scope. Organization +changes show their shared impact before approval and retain existing visibility +and repository access. Copilot tests Variables Write with a temporary Variable, +removes it, checks for changes during your review, writes the single setting, +and reads it back. It returns to the panel so you can make another adjustment. +Quick adjustments never request a bot PAT or rewrite workflows and Secrets. +Choose **Finish** when you are done. A read-only inspection ends successfully +without suggesting that setup was cancelled or that anything was changed. + +Use the complete assistant for agents, Projects, capabilities, credentials, +scope changes or workflows. This starts a fresh questionnaire with its usual +defaults; it does not reconstruct your customized configuration. Inspect the +panel first and review the final plan before applying it. `--skip-variables` +keeps quick adjustments read-only; `--dry-run` uses the existing full preview +assistant without the management write path. + +If access is limited, reconnect with a corrected setup PAT. Unknown expressions, +environment overrides and unavailable inventories cannot authorize a quick +change. If cleanup or read-back cannot be confirmed, inspect GitHub before +retrying; Copilot does not automatically restore an earlier value. The panel +describes this checkout rather than certifying the default branch or runner. - In automation, `--non-interactive` creates no terminal. `--yes` approves only the final plan: it does not supply a missing PAT, credential, target, or organization prerequisite. Required Write permissions are tested after plan approval and block setup if their disposable checks fail. The former `--confirm-unverifiable-write-permissions` flag is rejected. - Repository agent guidance remains enabled by default in automation, but the root pointer uses the safe `create-if-missing` policy unless `--agent-guidance prompt` (or the equivalent config value) explicitly authorizes a bounded update to an existing `AGENTS.md`. +## Reuse organization settings or configure several repositories - `copilot setup` will: - - Create `.github/`, `.github/workflows/`, and `.github/ISSUE_TEMPLATE/` if they do not exist. - - Copy only the selected files from the Copilot `setup/` folder into your repo (workflows, issue templates, pull request template). Existing files are **not** overwritten unless you approve an update. - - Detect existing setup workflows and ask before updating them. Use `--update-workflows` to approve updates non-interactively; existing workflow files are backed up under `.copilot/setup-backups/` before replacement. - - Verify GitHub access using the setup PAT. This operator token is used only for the setup operation and is never stored as a workflow Secret. - - Ask for the separate workflow PAT owned by the bot account. It is validated and stored remotely as the `PAT` Secret; it is not the setup PAT. - - Offer the credential fallbacks needed by the selected providers, validate supplied values with metadata-only requests, and store them as GitHub Secrets. Existing Secrets are never overwritten unless you explicitly replace them. Codex credentials are optional when the target runner already passes `codex login status`; setup and doctor report that state as an operational warning rather than a missing-secret failure. If a remote credential health workflow is already available, existing values are validated remotely before you choose to keep them. - - Create or update non-sensitive Repository Variables for the selected runtimes, model policy, branches, Projects, AI behavior (including `AI_IGNORE_FILES`), and Bugbot settings. Use `--skip-variables` to leave them unchanged. - - Create all required **labels** in the repository (type, action, priority, size, progress 0%–100%, and the lifecycle/activity/waiting labels). - - Create all required **issue types** in the organization (Task, Bug, Feature, Release, Hotfix, etc.), if your plan supports it. +Run `copilot setup --web` from the current repository and confirm its owner and +name. Choose **This repository** (the default) or **Several repositories**. The +terminal equivalent for an explicit batch is `copilot setup --batch`. - After this step you have a working baseline: labels, selected templates/workflows, agent routing, operational Variables, and validated credentials are in place. - +```mermaid +flowchart LR + A[Confirm repository] --> B[Choose scope and configuration source] + B --> C[Select exact repositories] + C --> D[Review target settings and complete batch] + D --> E[Approve temporary permission checks and setup PRs] + E --> F[Human merge and verification] +``` - - You can tweak issue templates (text, dropdowns), workflow names, and branch names. The following points are **required** for the GitHub Action to behave correctly; the rest is optional. +Choose **Reuse compatible organization configuration** to import recognized, +valid Variables and skip their questions. Repository overrides take precedence; +explicit answers take precedence over both. Target branches, CI commands and +approval producer identities still need their own review. Reuse creates only missing repository +Variable names. If an existing repository value must change, make a separate +reviewed update and prepare a fresh plan; batch setup will not overwrite it. +Equivalent validated approval-policy JSON is retained despite formatting. +Retained Secrets require complete revision metadata before Apply. If that +metadata cannot be verified, setup stops and asks for a fresh inspection; +existing values and completed effects are preserved. The preview shows +retained shared settings and new repository overrides. Existing Secret values +are never read, copied, displayed or replaced. A missing required binding blocks +that repository; provision it separately and inspect again. - **Required for the action to work:** - - **Token**: Every workflow that runs Copilot must pass the `token` input (your PAT). Typically you set `token: ${{ secrets.PAT }}` in each Copilot step. Without it, the action cannot create branches, update issues, or call the API. - - **Workflow file names for release/hotfix**: When an issue has the **deploy** label, Copilot *dispatches* a workflow by **filename**. The action inputs `release-workflow` (default: `release_workflow.yml`) and `hotfix-workflow` (default: `hotfix_workflow.yml`) must match the **exact filenames** in `.github/workflows/`. If you rename `release_workflow.yml` or `hotfix_workflow.yml`, you **must** pass the new names to the action in the workflows that invoke Copilot (e.g. in `copilot_issue.yml` add `release-workflow: 'your_release.yml'` and `hotfix-workflow: 'your_hotfix.yml'`). - - **Deploy label**: The label that triggers the deploy flow is configured by the `deploy-label` input (default: `deploy`). The issue templates and your usage must use this same label when you want to run the release or hotfix workflow. - - **Branch names in workflows**: The Commit workflow (push) often excludes the main and development branches from running (e.g. `!master`, `!develop`). If you change the default branch names (e.g. `main-branch: 'main'`, `development-branch: 'develop'`), update the `push.branches` filter in `.github/workflows/copilot_commit.yml` so it excludes those same names; otherwise the action may run on every push to main/develop or never run on feature branches. +In the terminal, enter repository IDs or type `confirm` to keep the displayed +selection. A blank answer does not accept the selection. - **Runner selection:** Keep installed routing, explicitly choose GitHub-hosted jobs, reuse an existing organization profile, or enter a known self-hosted group and labels. Review effective routes and access/capacity observations per repository. Agent jobs and CLI provisioning share the agent route; ordinary validation has a separate choice. Approval observers, merge-group checks and publication stay independent. A changed dynamic route that you retain requires separate review of its matrix/inputs. No environment fallback or runner access grant is implicit. See [runner profiles](/configuration#runner-profiles). Windows service registrations omit `codex`: **Codex no soportado en runners Windows ejecutados como servicio**. +For several repositories, select 1–25 explicit repository identities in the same +organization. Discovery is limited to the PAT's visible repositories, with +search and exact-name lookup. If needed, reconnect with a temporary operator PAT +restricted to the selected repositories. There is no implicit “all repositories” +selection. Batch Customize changes settings while retaining existing Secret +bindings; use current-repository Customize to provision new credential values. - **Copilot source repository:** A target containing a root-local `uses: ./` Action retains its existing native workflows and complete source guidance. Its Commit and Branch Sync workflows gain the temporary `copilot-permission-test-*` push exclusion; Commit also excludes installer branches. Branch Sync retains all ordinary branches, installer branches and bot pushes. The parity inventory distinguishes shared assets, missing optional assets, customizations, native extensions and incompatible generator metadata. Native CI, RepoWise, runner diagnostics, the platform smoke matrix and npm publication are intentional source extensions. Source now includes compatible manual CLI-provisioning and credential-health workflows; provisioning uses the Codex pool, while credential health keeps its independent hosted route. Future generator metadata is retained or blocks regeneration; setup does not silently migrate it. +Each target gets its own workflows, forms, labels, issue types and guidance. +The selected development branch must already exist and be readable; create or +select the intended branch before applying a blocked target. Setup does not +invent a development branch or its starting revision. +Review the exact file changes, repository Variable names, additive shared-access +grants, installation ref, base SHA and temporary permission checks. Approval can +create/remove test resources and leave GitHub history or notifications. Pending +cleanup blocks installation. Shared values, visibility and other memberships +stay unchanged. Replaced setup assets have separate backups under +`.copilot/setup-backups/`, retaining their relative paths even when their names +and contents match. Apply runs sequentially and opens at most one setup PR per +changed target in `setup/copilot/`. It never merges, tags, +releases or deploys. A repository with matching files needs no new PR and remains +pending verification after resource checks. - **Optional but keep coherence:** - - **Labels**: If you change any label input (e.g. `feature-label`, `bugfix-label`, `deploy-label`), use the **same** label names in your issue templates (`labels:` in each `.yml`) and when labeling issues manually. Otherwise the action will not recognize the type or flow. - - **Branch name prefixes**: The action uses inputs like `feature-tree`, `bugfix-tree`, `release-tree`, `hotfix-tree` (defaults: `feature`, `bugfix`, `release`, `hotfix`) to create branch names. If you change them, branch names will follow the new prefixes; keep templates and docs in sync. - - **Project Status options**: Default values are "Todo" and "In Progress". If you rename the options in the Project's **Status** single-select field, set the corresponding action inputs (`project-column-issue-created`, `project-column-issue-in-progress`, etc.) to the exact option names. These legacy input names say `column`, but ProjectV2 updates the Status field, not a visual board column. +A failed target retains its completed effects while other ready targets can +continue. Stop prevents pending work; it does not remove successful grants or +PRs. One explicit retry is available in the paired session after another review. +If a permission audit ends without a confirmed cleanup report, setup saves that +uncertainty, retains existing effects and stops pending work. The saved operation +cannot resume writes. Inspect the GitHub history and local recovery journal, +resolve any temporary resources, then start a fresh setup preview. +For a closed session, use `copilot setup --web --resume-operation ` +with a fresh temporary PAT and the same configuration. Private local receipts +contain identities, hashes and completed effects, never credentials, values or +file contents. Resume rejects a changed base, target set or desired plan before +permission probes. If the base changed (including after a merge), inspect the +retained PR and start a fresh setup preview instead. A PR means **Waiting for +merge**; credential metadata or PAT authentication does not prove runtime +permissions. Delete the temporary operator PAT yourself after finishing. - **Bugbot autofix (issue/PR comments):** Workflows that run on `issue_comment` or `pull_request_review_comment` (so users can ask the bot to fix reported findings) must grant **`contents: write`** so the action can commit and push. On **issue_comment**, the action resolves the branch from an open PR that references the issue and checks out that branch before applying fixes and pushing. See [Bugbot autofix](/bugbot/autofix) and [Troubleshooting](/security-operations/operations/troubleshooting). - - +Project Status columns are selected and reviewed for the target Project. Nonempty organization column values are shown as review work and do not prefill or complete those questions. ---- +Batch write preflight requires complete revision metadata for existing repository +Secrets; matching names alone cannot establish that a credential was not rotated. ## Manual workflow integration (advanced) @@ -545,6 +461,27 @@ for the action-level contract. --- +## Review customizations after setup + +You can tweak issue templates (text, dropdowns), workflow names, and branch names. The following points are **required** for the GitHub Action to behave correctly; the rest is optional. + +**Required for the action to work:** +- **Token**: Every workflow that runs Copilot must pass the `token` input (your PAT). Typically you set `token: ${{ secrets.PAT }}` in each Copilot step. Without it, the action cannot create branches, update issues, or call the API. +- **Workflow file names for release/hotfix**: When an issue has the **deploy** label, Copilot *dispatches* a workflow by **filename**. The action inputs `release-workflow` (default: `release_workflow.yml`) and `hotfix-workflow` (default: `hotfix_workflow.yml`) must match the **exact filenames** in `.github/workflows/`. If you rename `release_workflow.yml` or `hotfix_workflow.yml`, you **must** pass the new names to the action in the workflows that invoke Copilot (e.g. in `copilot_issue.yml` add `release-workflow: 'your_release.yml'` and `hotfix-workflow: 'your_hotfix.yml'`). +- **Deploy label**: The label that triggers the deploy flow is configured by the `deploy-label` input (default: `deploy`). The issue templates and your usage must use this same label when you want to run the release or hotfix workflow. +- **Branch names in workflows**: The Commit workflow (push) often excludes the main and development branches from running (e.g. `!master`, `!develop`). If you change the default branch names (e.g. `main-branch: 'main'`, `development-branch: 'develop'`), update the `push.branches` filter in `.github/workflows/copilot_commit.yml` so it excludes those same names; otherwise the action may run on every push to main/develop or never run on feature branches. + +**Runner selection:** Keep installed routing, explicitly choose GitHub-hosted jobs, reuse an existing organization profile, or enter a known self-hosted group and labels. Review effective routes and access/capacity observations per repository. Agent jobs and CLI provisioning share the agent route; ordinary validation has a separate choice. Approval observers, merge-group checks and publication stay independent. A changed dynamic route that you retain requires separate review of its matrix/inputs. No environment fallback or runner access grant is implicit. See [runner profiles](/configuration#runner-profiles). Windows service registrations omit `codex`: **Codex no soportado en runners Windows ejecutados como servicio**. + +**Copilot source repository:** A target containing a root-local `uses: ./` Action retains its existing native workflows and complete source guidance. Its Commit and Branch Sync workflows gain the temporary `copilot-permission-test-*` push exclusion; Commit also excludes installer branches. Branch Sync retains all ordinary branches, installer branches and bot pushes. The parity inventory distinguishes shared assets, missing optional assets, customizations, native extensions and incompatible generator metadata. Native CI, RepoWise, runner diagnostics, the platform smoke matrix and npm publication are intentional source extensions. Source now includes compatible manual CLI-provisioning and credential-health workflows; provisioning uses the Codex pool, while credential health keeps its independent hosted route. Future generator metadata is retained or blocks regeneration; setup does not silently migrate it. + +**Optional but keep coherence:** +- **Labels**: If you change any label input (e.g. `feature-label`, `bugfix-label`, `deploy-label`), use the **same** label names in your issue templates (`labels:` in each `.yml`) and when labeling issues manually. Otherwise the action will not recognize the type or flow. +- **Branch name prefixes**: The action uses inputs like `feature-tree`, `bugfix-tree`, `release-tree`, `hotfix-tree` (defaults: `feature`, `bugfix`, `release`, `hotfix`) to create branch names. If you change them, branch names will follow the new prefixes; keep templates and docs in sync. +- **Project Status options**: Default values are "Todo" and "In Progress". If you rename the options in the Project's **Status** single-select field, set the corresponding action inputs (`project-column-issue-created`, `project-column-issue-in-progress`, etc.) to the exact option names. These legacy input names say `column`, but ProjectV2 updates the Status field, not a visual board column. + +**Bugbot autofix (issue/PR comments):** Workflows that run on `issue_comment` or `pull_request_review_comment` (so users can ask the bot to fix reported findings) must grant **`contents: write`** so the action can commit and push. Autofix requires an authoritative PR/head identity; use the intended PR conversation or review thread. General implementation requests may use the issue's verified linked branch. Missing or conflicting branch evidence stops file changes before the agent runs. See [Bugbot autofix](/bugbot/autofix) and [Troubleshooting](/security-operations/operations/troubleshooting). + ## What lives in `setup/` (and what gets created) The workflow and template files under `setup/` are copied into your repo by diff --git a/docs/index.mdx b/docs/index.mdx index 44fa437a2..ebd11c219 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -1,82 +1,49 @@ --- title: Copilot -description: Streamline your GitHub workflow with automated branch management, issue tracking, and project integration. Enhance team collaboration and optimize your development process. +description: Connect issues, branches, implementation, review, and releases in GitHub. --- -export const Columns = ({ children }) =>
{children}
+# From a GitHub issue to a reviewed change and release -> This is GitHub with super powers 🚀 +Copilot is a GitHub Action and local CLI that connects issues, branches, pull requests, Projects, and releases. Optional AI capabilities help plan work, explain code, review changes, and apply authorized fixes. -**Copilot** is designed with task management in mind, closely mirroring the approach used by Atlassian with Bitbucket and Jira. It leverages GitHub's project boards and issues as the foundation for task management at every stage of development. - -The goal is to replicate the seamless integration of boards, tasks, and branches that Atlassian offers, enhancing your workflow and project management capabilities. - -This repository itself utilizes this GitHub Action for task management. You can explore the various issues and pull requests as examples of how it functions in practice. - -Experience seamless project management, automated branch handling, and enhanced team collaboration. Start optimizing your development process today and take your Git workflow to the next level! ✨ +Start by installing the capabilities you need, then verify one small documentation change from issue to PR. - - Step-by-step setup for issues, pull requests, and push workflows. - - - Complete reference: workflow triggers, single actions, and configured agent execution. - - - PAT setup, permissions, and token best practices. - - - All inputs: branches, labels, projects, locale, agents, and more. + + Install the CLI, pair the local assistant, review permissions and apply the plan. - - Production-first release and hotfix promotion, publication, reconciliation, and recovery. + + Create a documentation issue, get its verified branch, and open a linked PR. - - Run supported on-demand actions and understand internal deployment continuations. - - - How to use and how it works: detection, autofix, and do-user-request. - - - Common issues and solutions. + + Manage issues, review PRs, request implementation, or prepare a release. -## Motivation - -I've always felt that while GitHub is an outstanding platform for code management, its issue tracking and project boards — despite their powerful capabilities — are often underused or overlooked. Many teams and individual developers tend to focus primarily on version control and pull requests, missing out on the full potential of these features for organizing and streamlining their workflows. - -This project was created with both large organizations and small teams in mind, as well as for individual developers who enjoy building their ideas as a hobby. Whether you're managing a complex project or just keeping track of your personal coding adventures, this GitHub Action aims to help you make the most of the tools GitHub already offers, enhancing productivity and bringing more structure to your development process. - -For a complete list of what the action does (workflow triggers and single actions), see [Features & Capabilities](/features). +## What happens during everyday work? -## Features +```mermaid +flowchart LR + I[Issue] --> S[Plan and verified branch] + S --> W[Developer or authorized bot contribution] + W --> P[Pull request and review findings] + P --> M[Required checks and authorized merge] + M --> R[Separately authorized release] + R --> D[Publication and reconciliation] +``` -### Issue Management -- Automatic branch creation based on issue labels -- Real-time issue status updates -- Automated issue tracking and monitoring -- Seamless integration with GitHub Projects -- Issue assignment and label management -- **Bugbot**: AI-reported potential problems as comments on the issue, updated when findings are resolved; you can ask to fix findings from a comment (Bugbot autofix) +| Goal | What you do | What Copilot can do | +|---|---|---| +| Organize a task | Create an installed Issue Form and add `in-progress` | Verify admission, create its managed branch, and synchronize labels and Projects | +| Understand or plan work | Address the bot with `/copilot explain` or `/copilot plan` | Return a code-aware answer or plan | +| Implement a change | Contribute normally or send an authorized `/copilot implement` request | Apply the requested change on the verified branch and run configured verification before pushing | +| Review a PR | Open or update a linked PR | Publish Bugbot findings and current review status; generate a description when enabled | +| Fix a finding | Push your fix or request `/copilot fix` with its finding ID | Recheck the current revision and reconcile the finding state | +| Release | Complete a Release or Hotfix form and explicitly launch deployment | Promote through protected PRs, publish the accepted revision, and reconcile development | -### Pull Request Features -- Automatic PR linking to issues -- Branch status tracking -- PR review process automation -- Commit monitoring and updates -- **Bugbot**: Potential problems as PR review comments, with threads marked as resolved when fixed; you can ask to fix findings from a comment (Bugbot autofix) -- Efficient PR lifecycle management +Issue/branch/Project automation uses GitHub metadata. AI analysis and editing additionally require a runner, configured runtime/model and usable credentials. Choose these capabilities deliberately during setup. See [Overview](/overview) for responsibilities and [Features & capabilities](/features) for the complete reference. -### Project Integration -- Automated project board updates -- Task status synchronization -- Column movement automation -- Project progress tracking -- Team workflow optimization +## Already installed? -### Performance -- Fast execution -- **Workflow coordination** — Durable mutations queue without discarding intermediate events. Commit and Pull Request use separate branch-scoped lanes, and an open PR makes its synchronization event the sole Bugbot owner for that head (see [Features → Workflow concurrency](/features#workflow-concurrency-and-sequential-execution)). -- Efficient resource utilization -- Reliable automation +Use the [setup and maintenance reference](/how-to-use) for configuration inspection, quick adjustments, organization reuse, upgrades and manual integration. Use [Troubleshooting](/security-operations/operations/troubleshooting) when a result differs from the expected workflow. diff --git a/docs/issues/first-workflow.mdx b/docs/issues/first-workflow.mdx index ed8f6dd59..811e0876a 100644 --- a/docs/issues/first-workflow.mdx +++ b/docs/issues/first-workflow.mdx @@ -5,6 +5,8 @@ description: Create, automate, verify, and close one issue-driven workflow. # First issue workflow +For the worked example, prerequisites and result checklist, follow [Your first issue-to-PR workflow](/first-workflow). This page summarizes the issue-specific lifecycle and SDD gate. + Use a documentation change for your first run: it exercises issue admission, branch creation and PR review without changing application behavior. diff --git a/docs/issues/index.mdx b/docs/issues/index.mdx index 57354ae1a..9bd2a032d 100644 --- a/docs/issues/index.mdx +++ b/docs/issues/index.mdx @@ -5,6 +5,8 @@ description: Automate issue tracking, branch management, project linking, and as # Issues +For installation and daily use, start with [Manage issues and branches](/guides/issues-and-branches). Follow [your first issue-to-PR workflow](/first-workflow) for a concrete example with observable checkpoints. The pages below provide the detailed reference. + Copilot automates **issue tracking** so that labels, branch creation, project linking, and assignees stay in sync with your Git-Flow workflow. When you open or update an issue (or add labels), the action can create branches, link the issue to boards, assign members, and later notify you of commits and close the issue when branches are merged. diff --git a/docs/overview.mdx b/docs/overview.mdx index fe5c87933..b6c69655d 100644 --- a/docs/overview.mdx +++ b/docs/overview.mdx @@ -1,28 +1,49 @@ --- title: Overview -description: What Copilot does, who should use it, and the current execution contract. +description: Capabilities, responsibilities, and the path from installation to a verified workflow. --- + # Overview -Copilot is a GitHub Action and local CLI for repository workflow automation. It manages issues, branches, pull requests, projects, releases, and optional agent-assisted analysis. +Copilot connects work across GitHub issues, branches, pull requests, Projects and releases. Its local CLI configures the installation; the GitHub Action responds to the installed repository events and explicitly addressed commands. + +## Choose what to automate + +| Capability | Typical result | Needs an agent? | Guide | +|---|---|---|---| +| Issue and branch lifecycle | An admitted issue gets a verified working branch after `in-progress` | Branch creation itself does not; planning and required SDDs do | [Issues and branches](/guides/issues-and-branches) | +| Projects and native metadata | Linked items and matching Status, assignee and lifecycle updates | No, for metadata operations | [Issues and branches](/guides/issues-and-branches#add-project-tracking) | +| Bugbot and progress | Current findings, review status and evidence-based progress | Yes | [PR review](/guides/review-pull-requests) | +| Explanations, planning and implementation | A correlated answer or verified commit on the authoritative branch | Yes, for analysis and implementation | [Work with the bot](/guides/work-with-the-bot) | +| Branch synchronization | Drift notices and a verified merge after an authorized command | Detection is agent-free; eligible conflicts may use the fixer | [Branch synchronization](/issues/branch-synchronization) | +| Release and hotfix orchestration | Protected promotion, publication and development reconciliation | Depends on your preparation/build steps | [Releases and hotfixes](/guides/releases-and-hotfixes) | + +## Who does what? + +- **Installer/operator:** chooses capabilities, scopes, credentials and runners, reviews the setup plan, and installs generated files on the intended branches. +- **Developer:** opens an Issue Form, contributes on the verified linked branch, opens a PR, and responds to checks and findings. +- **Authorized maintainer:** starts admitted work, authorizes file-changing bot requests, reviews and merges through branch protection, and explicitly launches releases. +- **Copilot Action:** owns managed branch creation, naming, synchronization and cleanup. It performs configured automation using the workflow bot identity. + +Generated repository guidance records the installed contract in `.copilot/repository-profile.json` and `.copilot/AGENT_GUIDE.md`. Collaborator agents follow that contract and contribute ordinary commits on the existing Action-managed branch. -## Current contract +## Installation has two verification steps -Agent execution is CLI-only. The Action selects exactly one runtime CLI and exactly one qualified model per run: +1. [Web setup](/setup-web) prepares local files and selected GitHub resources. Its read-only verification checks installation metadata; it cannot prove a Secret's value or a real agent run. +2. [First workflow](/first-workflow) exercises the installed events using one documentation issue and linked PR. It shows the GitHub results that establish a working path. + +You can then enable additional [goals](/guides). Release templates provide the orchestration and extension points; your product's build and deployment remain repository-specific. + +## Agent execution contract + +AI tasks use one runtime CLI and one qualified model per run: ```text agent-provider = runtime CLI agent-model-provider = model provider agent-model = model name -agent-effort = optional reasoning effort or model variant +agent-effort = optional reasoning effort or model variant qualified model = agent-model-provider/agent-model ``` -The default is `codex` with `openai/gpt-6-luna`. The selected configuration is validated before execution. No implicit runtime, model, credential, or transport is selected. - -## Who should read what? - -- Users: [Quick start](/quick-start), [Configuration checklist](/configuration-checklist). -- Operators: [Release orchestration](/issues/deployment-orchestration), [Provisioning](/security-operations/operations/provisioning), [Verification](/security-operations/operations/verification), [Security](/security-operations/security/credentials). -- Bugbot users: [Bugbot overview](/bugbot), [Detection](/bugbot/detection), [Autofix](/bugbot/autofix). -- Contributors: [Architecture](/development/architecture), [Testing](/development/testing), [Release process](/development/release-process). +The default is `codex` with `openai/gpt-6-luna`. Copilot validates runtime, model policy and credentials before execution. See [Agents](/agents) for configuration, [Authentication](/authentication) for the two PAT roles, and [Security & Operations](/security-operations) for runner and credential boundaries. diff --git a/docs/pull-requests/first-workflow.mdx b/docs/pull-requests/first-workflow.mdx index 612005892..dc7a321d9 100644 --- a/docs/pull-requests/first-workflow.mdx +++ b/docs/pull-requests/first-workflow.mdx @@ -5,6 +5,8 @@ description: Configure and verify one pull-request automation path safely. # First pull request workflow +Use [Your first issue-to-PR workflow](/first-workflow) for the complete worked example after installation, including the exact branch, target, linked issue and current-revision checks. Use [Review PRs and resolve findings](/guides/review-pull-requests) to configure the review capabilities. The checklist below applies to an already installed PR workflow; it does not ask you to create another one. + Start with a branch and repository under your control. Grant only the permissions needed for the selected PR capability. diff --git a/docs/pull-requests/index.mdx b/docs/pull-requests/index.mdx index 871130dac..e2d2a0932 100644 --- a/docs/pull-requests/index.mdx +++ b/docs/pull-requests/index.mdx @@ -5,6 +5,8 @@ description: How Copilot handles pull requests: linking, projects, reviewers, si # Pull Request Management +Start with [Review PRs and resolve findings](/guides/review-pull-requests) to connect setup choices, everyday commands and verification. New installations should first complete [web setup](/setup-web) and the [first issue-to-PR workflow](/first-workflow). + When your workflow runs on **`pull_request`** code and lifecycle events, Copilot keeps PRs connected to projects and team workflows. It can link a distinct branch issue when one exists, add the PR to project boards, assign reviewers, apply size and priority policy, and optionally generate a concise PR description with AI. Unlinked PRs remain supported and are never linked to themselves. diff --git a/docs/quick-start.mdx b/docs/quick-start.mdx index 93f70be71..2620e7a76 100644 --- a/docs/quick-start.mdx +++ b/docs/quick-start.mdx @@ -1,85 +1,43 @@ --- title: Quick start -description: Minimal verified setup for the Copilot Action. +description: Install with the web assistant and verify one issue-to-PR workflow. --- + # Quick start -## Recommended setup +Use this checklist if you already know your repository and runner choices. Follow [Set up with the web assistant](/setup-web) for the illustrated walkthrough. + +## 1. Prepare + +You need Node.js 24 or newer, `pnpm`, a working checkout on an attached Git branch, and permission to install workflows and configure the selected GitHub resources. Choose the account that will own the workflow PAT; a dedicated bot account is recommended. AI features also need a usable runtime/model and authentication on the runner. -The supported onboarding path is the global CLI package followed by -`copilot setup`. It initializes the repository and lets you select the workflows, -templates, labels, issue types, Variables, Secrets, and agent settings together. +## 2. Launch the local web assistant ```bash pnpm add --global @vypdev/copilot copilot --version cd /path/to/your/repository -copilot setup +copilot setup --web ``` -Use `copilot setup --dry-run` to review the plan without changing files or GitHub. -The setup PAT used by the operator is separate from the workflow `PAT` Secret. -After setup, review and commit the generated `.github/` files, then customize the -selected workflows as needed. See [How to use](/how-to-use) for the full flow. - -New setup offers [PR approval assessment](/pull-requests/guarded-approval) in `recommend` mode by default: it explains readiness without submitting a native approval. Select and attest an exact CI/coverage producer, verify stale-approval dismissal and the runtime bot PAT, and commit the generated observer workflow to the default branch. Choose `guarded` explicitly only after those prerequisites are proven, or `off` to disable it. Existing repositories without the policy Variable remain off. - - - If you enable release or hotfix automation, merge - `copilot_deployment_orchestration.yml` and every publishing workflow you - enable (`release_workflow.yml` and/or `hotfix_workflow.yml`) into the - repository's default branch before launching the first operation. GitHub - cannot dispatch or wake a continuation workflow that exists only on the - temporary release/hotfix branch. This project enables both publishers. For - its npm publication, also configure the exact `npm` Environment and npm - Trusted Publisher entries before testing the flow. See - [Release and hotfix orchestration](/issues/deployment-orchestration#operator-preflight). - - -## Manual workflow integration (advanced) - -If the setup wizard cannot be used, the Action can be wired directly into a -workflow. This only configures execution; it does not initialize repository -metadata or install the complete Copilot workflow set. - -```yaml -name: Copilot -on: push -jobs: - copilot: - runs-on: ubuntu-latest - permissions: - contents: write - issues: write - pull-requests: write - steps: - - uses: actions/checkout@v5 - with: - persist-credentials: false - - uses: vypdev/copilot@v3 - with: - token: ${{ secrets.COPILOT_TOKEN }} - agent-provider: codex - agent-model-provider: openai - agent-model: gpt-6-luna - agent-effort: medium - env: - # Omit when Codex is already authenticated on the controlled runner. - CODEX_API_KEY: ${{ secrets.CODEX_API_KEY }} -``` +Enter the pairing code from the terminal, confirm the repository, and choose **This repository** and **Basic guided setup**. `copilot setup` without `--web` remains the terminal alternative; `copilot setup --web --dry-run` previews without setup changes. + +## 3. Select and review + +For the [first workflow](/first-workflow), enable Issues, Pull requests, Commits, the Documentation issue kind and Issue Forms. Enable the comment capabilities if you want `/copilot` commands. You can leave Projects, releases and hotfixes disabled until you need them. + +Check your actual production/development branches and runners. The development branch must already exist. New setup offers PR approval assessment in `recommend` mode, which does not submit native approvals. Select `off` if you do not want assessment; choose `guarded` explicitly only after its [CI/coverage and branch-rule prerequisites](/pull-requests/guarded-approval) are proven. + +Follow the guided GitHub links for the temporary **setup PAT** and persistent **workflow PAT**. Confirm the correct GitHub account, target repository and grants for each role. Review files, Variables, Secret names and temporary permission checks in the plan before approving; then complete the separate **Apply setup** confirmation. + +## 4. Install and verify -Configure labels, issue types, Variables, Secrets, templates, permissions, and -additional workflows manually when following this path. The example points the -Action at the `v3` major-version tag, which Copilot moves to the latest published -compatible release. +Review and commit the generated installation files, then merge them through your normal review process. Ensure event workflows and Issue Forms are available on the repository's default branch and that the configured development branch contains the files needed by issue branches. See the [installation steps](/setup-web#install-the-generated-files) before testing. -## Verify before enabling writes +Run `copilot doctor --read-only` with a valid setup PAT to inspect files and GitHub metadata. Resolve reported failures, then complete [Your first issue-to-PR workflow](/first-workflow). A passing metadata inspection alone does not verify the bot credentials or runtime. -1. Run the workflow with read-only permissions. -2. Confirm the selected agent CLI version and model allowlists. -3. Run the provider smoke procedure. -4. Grant write permissions only to the workflows that need commits or comments. -5. If releases are enabled, complete the production, continuation, npm OIDC, - and merge-policy checks in the deployment preflight. + + The installed release/hotfix templates are registry-neutral. Before launching either capability, install its publishing and continuation workflows on the default branch, add your own build/deployment steps, and complete the [release preflight](/guides/releases-and-hotfixes#before-launching-a-release). + -See [Configuration checklist](/configuration-checklist) and [Security](/security-operations/security/credentials). +Next: [choose another goal](/guides), inspect the [configuration reference](/configuration), or use the [setup and maintenance reference](/how-to-use) for terminal automation and manual integration. diff --git a/docs/setup-web.mdx b/docs/setup-web.mdx new file mode 100644 index 000000000..f3632d6a7 --- /dev/null +++ b/docs/setup-web.mdx @@ -0,0 +1,135 @@ +--- +title: Set up with the web assistant +description: Install Copilot with the local browser assistant, then verify a real GitHub workflow. +--- + +# Set up with the web assistant + +This is the recommended interactive installation path. The assistant runs on your computer and prepares the selected workflows and GitHub resources. You review the plan before permission checks or installation changes begin. + +## Before you start + +| You need | Why | +|---|---| +| Node.js 24 or newer and `pnpm` | Run the published CLI and local browser assistant | +| A working checkout at its root, on an attached Git branch | Inspect and prepare files for the intended repository; bare repositories and detached HEAD are rejected | +| The intended production and development branches | Setup asks for their names; the selected development branch must already exist | +| Permission to configure the selected repository resources | Workflows, labels, Variables and Secrets need different grants; setup derives the exact list from your choices | +| Access to the GitHub account chosen as the workflow bot | Its workflow PAT supplies the Action identity; a dedicated account is recommended | +| A runner and runtime/model authentication for AI features | Your local CLI installation does not authenticate or provision the runtime on a remote runner | + +For a small first installation, choose Issues, Pull requests, Commits, comment commands and the Documentation issue kind. Leave Projects, releases and hotfixes for later unless you already have their prerequisites. You can use the [goal guides](/guides) to decide what to enable. + +## 1. Launch and pair + +```bash +node --version +pnpm add --global @vypdev/copilot +copilot --version +cd /path/to/your/repository +copilot setup --web +``` + +Keep the launching terminal open. The CLI opens a short-lived page on `127.0.0.1`; if no browser opens, use the local URL printed in that terminal. Enter its 16-character pairing code, then choose **Connect to local setup**. Keep the code private. Refreshing the page requires pairing again. + +Web setup pairing screen with a terminal-code field and the six-stage journey + +*Example screen from the repository's read-only fixture. No real credential or setup operation is shown.* + +**Expected result:** the page names the repository you intend to configure. Confirm its owner, name and branch. If another repository appears, stop and relaunch from the correct checkout. + +The page offers English, Spanish, French and Portuguese, plus System/Light/Dark themes. These display settings do not change the repository's configured message locale. + +## 2. Choose the installation and capabilities + +Choose **This repository** for your first installation. A new checkout offers **Start setup**; an existing installation offers inspection and maintenance choices. Use **Run the complete assistant** when you intend to configure the full installation. That path starts a new questionnaire with its defaults, so inspect existing settings before changing them. + +Choose **Basic guided setup** unless you need every advanced setting. Basic still asks for permission, branch, runner, Project, approval and storage decisions. **Customize every setting** exposes the advanced configuration. Use **Previous question** or the plan's **Change** controls to revise answers without losing the others. + +The six milestones are: + +```text +Repository → Setup choices → Setup PAT → Plan → Bot PAT & credentials → Apply +``` + +They describe progress through the current run, not a fixed number of questions. Select the issue kinds and capabilities you actually want; **All** is initially selected for issue kinds. Keep Documentation enabled for the [first workflow](/first-workflow). + +Review these decisions before continuing: + +| Decision | Suggested starting point | +|---|---| +| Branches | Select the actual production and development branches; do not accept `master`/`develop` if your repository uses other names | +| Runner | Choose a supported hosted route or a known self-hosted route with actual access and capacity | +| Agent | Select a supported runtime, allowed model and authentication available on that runner | +| Secrets and Variables | Repository scope is simplest for one repository; review shared impact when choosing organization scope | +| Projects | Enable only if you need board updates and both operator and bot can access the selected Projects | +| PR approval | New setup offers `recommend`, which assesses readiness without submitting `APPROVE`; use `off` to disable assessment | +| Releases and hotfixes | Enable after reviewing the [deployment preflight](/guides/releases-and-hotfixes#before-launching-a-release) and your own deployment steps | + +`guarded` approval is an explicit choice with additional CI/coverage, identity and branch-rule requirements. It does not grant merge authority. See [Guarded PR approval](/pull-requests/guarded-approval). + +## 3. Provide the temporary setup PAT + +The assistant first asks the choices that affect permissions, then shows the setup PAT grants. Follow the guided GitHub link or use manual entry. On GitHub, confirm the operator account, select the intended repository, review the grants, create the token and paste it into the masked setup field. + +| Credential | Owner and purpose | Where it remains | +|---|---|---| +| Setup PAT | Operator; inspect and configure this installation | Local command/session only; it is not saved as the workflow Secret | +| Workflow PAT | Bot account; run installed repository automation | Actions Secret `PAT` at the scope reviewed in the plan | +| Agent credential, when needed | Selected model/provider account | Selected Secret or authenticated controlled runner, according to your configuration | + +GitHub handles sign-in, account switching, 2FA and token issuance in its own tabs. Copilot cannot create or revoke PATs. The exact grants depend on your choices; follow the displayed report and [Authentication](/authentication), rather than copying a blanket permission list. + +**Expected result:** the setup identity and required read access are verified. A failed required permission blocks progress with corrective guidance. The browser does not dispatch or temporarily install a credential-health workflow before **Apply setup**. + +## 4. Review the plan + +Inspect the capability and agent/model choices, branch roles, approval policy, Projects, storage scopes, complete file changes, Variables, Secret names and temporary permission tests. Expand inventories and use **Change** to correct a section. + +Example setup-plan decisions showing capabilities, runtime/model routes, branches, recommendation-only approval and trusted CI identity + +*Read-only fixture data illustrates the plan. Its model name, organization scope and repository are examples, not recommended configuration values.* + +Choose **Approve this plan** only after review. Approval authorizes the listed temporary create/read/delete permission checks; they may leave Actions, Issue or PR history or notifications. Reading or editing the plan starts no setup changes. A blocked check must be resolved before installation continues. + +## 5. Provide bot credentials and apply + +Use the bot PAT link under the **bot account named by the assistant**. A private GitHub browser window can help avoid creating it under the operator account. Confirm the account, selected repository and grants on GitHub, then paste the token into the separate masked bot field. If the account is wrong, choose **Enter another bot PAT**; the session retains your answers and reviewed plan. + +Supply any requested provider credentials, then review the separate **Apply setup** confirmation. Apply prepares local installation files and selected remote resources. The result distinguishes completed, skipped, not-started and needs-inspection items. Inspect partial results before retrying; an interrupted request may already have changed GitHub. + +**Expected result:** an itemized installation receipt. It describes what was prepared or changed; it does not establish that the installed Action has run successfully. + +## Install the generated files + +For the current-repository path, inspect the local changes with `git status` and `git diff`. Review the generated workflows, forms, PR template, guidance and installation manifest, then commit them and open a normal installation PR. Merge through your repository's usual review and protection rules. + +The workflows and Issue Forms must be available on the repository's **default branch** before testing its issue events. If development is a separate branch, bring the reviewed installation into that line through your normal protected process too: issue branches start from it, and checkout-time files must be present there. Do not infer that GitHub's default branch and Copilot's production/development roles are the same. + +The [batch installation path](/how-to-use#reuse-organization-settings-or-configure-several-repositories) opens setup PRs instead of treating local files as an installed result. Those PRs still need human review, merge and runtime verification. + +## Verify the installation + +1. After a successful Apply, **Verify installed setup (read-only)** checks metadata in the same session. Alternatively, from the checkout, run: + + ```bash + copilot doctor --read-only + ``` + + Supply a valid setup PAT when prompted. Inspect failures and warnings; preserved Secret values remain unverified. This mode does not dispatch Actions. +2. Complete [Your first issue-to-PR workflow](/first-workflow). Check issue admission, the linked branch, the PR results and the exact revision tested. This is the runtime proof for the capabilities exercised. +3. Delete the temporary setup PAT yourself in GitHub when you no longer need it. Keep the bot PAT active and renew it before expiry. If you deleted the setup PAT earlier, create a valid one before another local diagnosis. + +Plain `copilot doctor` can dispatch the installed credential-health workflow when available. Choose it explicitly when you want that additional check; metadata verification and credential health are different evidence. + +## If you get stuck + +| Symptom | Next action | +|---|---| +| Browser does not open or pairing code is lost | Use the terminal's local URL; if its output is unavailable, stop and relaunch from a readable terminal | +| No Issue Forms or workflows appear in GitHub | Check that the reviewed installation reached the default branch | +| Wrong account or missing PAT grant | Follow the displayed corrected-token/account guidance and [Authentication](/authentication) | +| Apply is partial or cleanup needs inspection | Inspect the named resources and terminal diagnostic before starting a fresh reviewed run | +| Metadata checks pass but Actions fail | Check the run's Job Summary, runner availability, bot PAT and runtime authentication using [Troubleshooting](/security-operations/operations/troubleshooting) | + +For a no-change preview, use `copilot setup --web --dry-run`. The web assistant cannot be combined with unattended approval or secret-bearing CLI flags. For terminal setup, automation, updates and advanced integrations, use the [setup and maintenance reference](/how-to-use). From 0b6dfa55601950538bcb18335d00bbeb8655b328 Mon Sep 17 00:00:00 2001 From: Efra Espada Date: Tue, 20 Oct 2026 14:13:50 +0200 Subject: [PATCH 2/4] docs-617-make-onboarding-web-first-with-a-verifiable-first-workflow-and-goal-based-documentation: avoid duplicate titles in rendered onboarding pages --- docs/first-workflow.mdx | 2 -- docs/guides/index.mdx | 2 -- docs/guides/issues-and-branches.mdx | 2 -- docs/guides/releases-and-hotfixes.mdx | 2 -- docs/guides/review-pull-requests.mdx | 2 -- docs/guides/work-with-the-bot.mdx | 2 -- docs/how-to-use.mdx | 2 -- docs/index.mdx | 2 +- docs/overview.mdx | 2 -- docs/quick-start.mdx | 2 -- docs/setup-web.mdx | 2 -- 11 files changed, 1 insertion(+), 21 deletions(-) diff --git a/docs/first-workflow.mdx b/docs/first-workflow.mdx index 82b930cf1..822c7685c 100644 --- a/docs/first-workflow.mdx +++ b/docs/first-workflow.mdx @@ -3,8 +3,6 @@ title: Your first issue-to-PR workflow description: Verify a real installation using one documentation issue, its managed branch and a linked PR. --- -# Your first issue-to-PR workflow - After [web setup](/setup-web), use this small documentation task to verify the installed issue, branch, push and PR routes. It uses your repository's real GitHub workflows. It does not require a release or an automatic code-changing request. ## Before you start diff --git a/docs/guides/index.mdx b/docs/guides/index.mdx index be16ee13d..0a05b1646 100644 --- a/docs/guides/index.mdx +++ b/docs/guides/index.mdx @@ -3,8 +3,6 @@ title: Choose a goal description: Enable, configure, use and verify the Copilot capabilities you need. --- -# Choose a goal - Use [web setup](/setup-web) to install Copilot and the [first workflow](/first-workflow) to verify the baseline. Then choose the outcome you need. Each guide connects setup choices to everyday use and observable results. | I want to… | Guide | Main setup choices | diff --git a/docs/guides/issues-and-branches.mdx b/docs/guides/issues-and-branches.mdx index 1916b6344..31acb3441 100644 --- a/docs/guides/issues-and-branches.mdx +++ b/docs/guides/issues-and-branches.mdx @@ -3,8 +3,6 @@ title: Manage issues and branches description: Configure issue-driven work, branch readiness, progress and optional Project tracking. --- -# Manage issues and branches - Use this path to turn an issue into a tracked working branch and linked PR. Copilot owns the managed branch lifecycle; developers and collaborator agents contribute ordinary commits on its verified ref. ## Enable and configure diff --git a/docs/guides/releases-and-hotfixes.mdx b/docs/guides/releases-and-hotfixes.mdx index 66e3a071c..28176c088 100644 --- a/docs/guides/releases-and-hotfixes.mdx +++ b/docs/guides/releases-and-hotfixes.mdx @@ -3,8 +3,6 @@ title: Release and hotfix guide description: Configure publication, launch one authorized operation and verify production and development reconciliation. --- -# Release and hotfix guide - Use a Release issue to ship a frozen development snapshot, or a Hotfix issue to start from an existing production version tag. Copilot coordinates preparation, protected production promotion, publication and reconciliation. Your repository supplies its product-specific build and deployment steps. ## Before launching a release diff --git a/docs/guides/review-pull-requests.mdx b/docs/guides/review-pull-requests.mdx index 467b28591..0edf56951 100644 --- a/docs/guides/review-pull-requests.mdx +++ b/docs/guides/review-pull-requests.mdx @@ -3,8 +3,6 @@ title: Review PRs and resolve findings description: Enable Bugbot review, understand its status, and verify fixes on the current PR revision. --- -# Review PRs and resolve findings - Use Bugbot to report potential problems near the changed code and maintain a current review status as a PR evolves. Review findings, required CI checks and native approvals are separate signals. ## Enable and configure diff --git a/docs/guides/work-with-the-bot.mdx b/docs/guides/work-with-the-bot.mdx index d5e8200a8..c51de7565 100644 --- a/docs/guides/work-with-the-bot.mdx +++ b/docs/guides/work-with-the-bot.mdx @@ -3,8 +3,6 @@ title: Work with the bot description: Ask for explanations, plans, diagnosis or an authorized implementation from GitHub comments. --- -# Work with the bot - Address Copilot from an issue or PR to ask about the code or request a concrete change. Read-only analysis and file-changing requests have different requirements and results. ## Enable and configure diff --git a/docs/how-to-use.mdx b/docs/how-to-use.mdx index 51821d8ae..f7505c22e 100644 --- a/docs/how-to-use.mdx +++ b/docs/how-to-use.mdx @@ -3,8 +3,6 @@ title: Setup and maintenance reference description: Terminal setup, installation maintenance, organization reuse and complete generated-resource inventories. --- -# Setup and maintenance reference - For a new installation, use the illustrated [web setup tutorial](/setup-web), then verify [your first issue-to-PR workflow](/first-workflow). Use this page for terminal setup details, existing-installation management, upgrades, organization diff --git a/docs/index.mdx b/docs/index.mdx index ebd11c219..1776b1481 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -3,7 +3,7 @@ title: Copilot description: Connect issues, branches, implementation, review, and releases in GitHub. --- -# From a GitHub issue to a reviewed change and release +**From a GitHub issue to a reviewed change and release.** Copilot is a GitHub Action and local CLI that connects issues, branches, pull requests, Projects, and releases. Optional AI capabilities help plan work, explain code, review changes, and apply authorized fixes. diff --git a/docs/overview.mdx b/docs/overview.mdx index b6c69655d..3c116019f 100644 --- a/docs/overview.mdx +++ b/docs/overview.mdx @@ -3,8 +3,6 @@ title: Overview description: Capabilities, responsibilities, and the path from installation to a verified workflow. --- -# Overview - Copilot connects work across GitHub issues, branches, pull requests, Projects and releases. Its local CLI configures the installation; the GitHub Action responds to the installed repository events and explicitly addressed commands. ## Choose what to automate diff --git a/docs/quick-start.mdx b/docs/quick-start.mdx index 2620e7a76..30599e9b2 100644 --- a/docs/quick-start.mdx +++ b/docs/quick-start.mdx @@ -3,8 +3,6 @@ title: Quick start description: Install with the web assistant and verify one issue-to-PR workflow. --- -# Quick start - Use this checklist if you already know your repository and runner choices. Follow [Set up with the web assistant](/setup-web) for the illustrated walkthrough. ## 1. Prepare diff --git a/docs/setup-web.mdx b/docs/setup-web.mdx index f3632d6a7..4013de5c3 100644 --- a/docs/setup-web.mdx +++ b/docs/setup-web.mdx @@ -3,8 +3,6 @@ title: Set up with the web assistant description: Install Copilot with the local browser assistant, then verify a real GitHub workflow. --- -# Set up with the web assistant - This is the recommended interactive installation path. The assistant runs on your computer and prepares the selected workflows and GitHub resources. You review the plan before permission checks or installation changes begin. ## Before you start From 18e38ce93b56b89eb7e955dfd112b50fc2ad2169 Mon Sep 17 00:00:00 2001 From: Efra Espada Date: Tue, 20 Oct 2026 15:03:33 +0200 Subject: [PATCH 3/4] docs-617-make-onboarding-web-first-with-a-verifiable-first-workflow-and-goal-based-documentation: connect setup help and documentation consumption --- README.md | 1 + build/cli/index.js | 50 ++++++- build/web/assets/index-BTzJj-al.js | 3 - build/web/assets/index-CfyclPC5.css | 1 + build/web/assets/index-CsboG2sG.js | 3 + build/web/assets/index-ERZ4A62w.css | 1 - build/web/index.html | 4 +- docs.json | 5 + docs/agents/cursor.mdx | 3 + docs/agents/opencode.mdx | 3 + docs/assets/README.md | 3 +- docs/assets/setup-web-pairing.png | Bin 52458 -> 60421 bytes docs/dependency-rules.md | 4 +- .../documentation-completeness-plan.mdx | 20 ++- docs/development/setup-assistant-review.mdx | 10 ++ docs/how-to-use.mdx | 2 + .../operations/cli-provisioning.mdx | 3 + .../operations/cli-runners.mdx | 3 + .../operations/verification.mdx | 3 + docs/setup-web.mdx | 4 +- docs/support.mdx | 127 ++++++---------- docs/using-the-docs.mdx | 78 ++++++++++ scripts/validate-docs-page-assets.cjs | 6 + scripts/validate-documentation-contract.cjs | 8 ++ specs/CATALOG.md | 20 +-- specs/catalog.json | 43 ++++-- specs/local-web-setup-assistant.md | 136 ++++++++++++++++++ ...up-configuration-credentials-and-doctor.md | 9 ++ .../contracts/setup_documentation.ts | 6 + ...etup_question_documentation_policy.test.ts | 8 +- .../setup_question_documentation_policy.ts | 17 ++- .../__tests__/web_setup_boundaries.test.ts | 23 ++- .../setup_documentation_navigation.test.ts | 81 +++++++++++ src/cli/commands/setup.ts | 2 + src/cli/setup_journey_presenter.ts | 8 ++ web/src/App.svelte | 4 +- web/src/components/CompletedSetupHelp.svelte | 8 ++ web/src/components/ResultPanel.svelte | 7 +- web/src/components/SetupHelp.svelte | 21 +++ web/src/i18n/en.ts | 4 + web/src/i18n/es.ts | 3 + web/src/i18n/fr.ts | 3 + web/src/i18n/pt.ts | 3 + 43 files changed, 608 insertions(+), 143 deletions(-) delete mode 100644 build/web/assets/index-BTzJj-al.js create mode 100644 build/web/assets/index-CfyclPC5.css create mode 100644 build/web/assets/index-CsboG2sG.js delete mode 100644 build/web/assets/index-ERZ4A62w.css create mode 100644 docs/using-the-docs.mdx create mode 100644 src/application/contracts/setup_documentation.ts create mode 100644 src/cli/__tests__/setup_documentation_navigation.test.ts create mode 100644 web/src/components/CompletedSetupHelp.svelte create mode 100644 web/src/components/SetupHelp.svelte diff --git a/README.md b/README.md index 82ec9cda8..8917d7d1c 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,7 @@ Follow the [web setup tutorial](https://docs.page/vypdev/copilot/setup-web) thro | A walkthrough of browser setup | [Set up with the web assistant](https://docs.page/vypdev/copilot/setup-web) | | Observable proof that the installation works | [First workflow](https://docs.page/vypdev/copilot/first-workflow) | | A guide for a specific outcome | [Choose a goal](https://docs.page/vypdev/copilot/guides) | +| Version selection, contextual or offline help | [Use the documentation](https://docs.page/vypdev/copilot/using-the-docs) | | Token ownership, permissions, or account recovery | [Authentication](https://docs.page/vypdev/copilot/authentication) | | Existing-installation updates, batch setup, or manual integration | [Setup and maintenance reference](https://docs.page/vypdev/copilot/how-to-use) | | Every feature, input, and operational control | [Capabilities](https://docs.page/vypdev/copilot/features), [Configuration](https://docs.page/vypdev/copilot/configuration), [Security & Operations](https://docs.page/vypdev/copilot/security-operations) | diff --git a/build/cli/index.js b/build/cli/index.js index cce31f344..a9feb21c4 100755 --- a/build/cli/index.js +++ b/build/cli/index.js @@ -38002,6 +38002,23 @@ exports.TITLE = void 0; exports.TITLE = 'Copilot'; +/***/ }), + +/***/ 2396: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.SETUP_DOCUMENTATION = void 0; +/** Public, source-controlled navigation. Never attach session, repository or credential data. */ +exports.SETUP_DOCUMENTATION = { + tutorial: 'https://docs.page/vypdev/copilot/setup-web', + firstWorkflow: 'https://docs.page/vypdev/copilot/first-workflow', + recovery: 'https://docs.page/vypdev/copilot/security-operations/operations/troubleshooting', +}; + + /***/ }), /***/ 75999: @@ -50159,13 +50176,16 @@ function validateDiscoveredProjectStatuses(configuration, discovery) { Object.defineProperty(exports, "__esModule", ({ value: true })); exports.setupQuestionDocumentation = setupQuestionDocumentation; const docs = { - features: { title: 'Copilot features and workflow triggers', url: 'https://docs.page/vypdev/copilot/features' }, - issueWorkflows: { title: 'Copilot issue workflow setup', url: 'https://docs.page/vypdev/copilot/issues/workflow-setup' }, + features: { title: 'Choose a Copilot goal', url: 'https://docs.page/vypdev/copilot/guides' }, + issueWorkflows: { title: 'Select issue kinds and forms', url: 'https://docs.page/vypdev/copilot/issues/configurable-workflows' }, + issuesGuide: { title: 'Manage issues and branches', url: 'https://docs.page/vypdev/copilot/guides/issues-and-branches' }, + reviewGuide: { title: 'Review PRs and resolve findings', url: 'https://docs.page/vypdev/copilot/guides/review-pull-requests' }, + botGuide: { title: 'Work with the bot', url: 'https://docs.page/vypdev/copilot/guides/work-with-the-bot' }, + releaseGuide: { title: 'Release and hotfix guide', url: 'https://docs.page/vypdev/copilot/guides/releases-and-hotfixes' }, branchManagement: { title: 'Issue branch management', url: 'https://docs.page/vypdev/copilot/issues/branch-management' }, preBranchSdd: { title: 'Pre-branch design documents', url: 'https://docs.page/vypdev/copilot/issues/pre-branch-sdds' }, issueLifecycle: { title: 'Issue notifications and automatic closure', url: 'https://docs.page/vypdev/copilot/issues/notifications-and-auto-close' }, assignments: { title: 'Assignees and GitHub Projects', url: 'https://docs.page/vypdev/copilot/issues/assignees-and-projects' }, - pullRequestWorkflows: { title: 'Pull-request workflow setup', url: 'https://docs.page/vypdev/copilot/pull-requests/workflow-setup' }, pullRequestDescription: { title: 'AI pull-request descriptions', url: 'https://docs.page/vypdev/copilot/pull-requests/ai-description' }, repositoryGuidance: { title: 'Repository guidance for agents', url: 'https://docs.page/vypdev/copilot/agents/repository-collaboration' }, runtime: { title: 'Agent runtime selection', url: 'https://docs.page/vypdev/copilot/agents/runtime-selection' }, @@ -50180,7 +50200,7 @@ const docs = { projects: { title: 'Assignees and GitHub Projects', url: 'https://docs.page/vypdev/copilot/issues/assignees-and-projects' }, githubProjects: { title: 'GitHub: About Projects', url: 'https://docs.github.com/en/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects' }, githubStatus: { title: 'GitHub: About single-select fields', url: 'https://docs.github.com/en/issues/planning-and-tracking-with-projects/understanding-fields/about-single-select-fields' }, - provisioning: { title: 'Copilot setup and provisioning', url: 'https://docs.page/vypdev/copilot/how-to-use' }, + provisioning: { title: 'Set up with the web assistant', url: 'https://docs.page/vypdev/copilot/setup-web' }, storage: { title: 'GitHub Actions Secrets and Variables', url: 'https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/use-secrets' }, }; /** Links are selected from source-controlled constants, never derived from answers or remote text. */ @@ -50190,10 +50210,14 @@ function setupQuestionDocumentation(question) { return { title: 'Runner profiles', url: 'https://docs.page/vypdev/copilot/configuration#runner-profiles' }; if (id === 'issueWorkflows.enabled') return docs.issueWorkflows; - if (id === 'features.issues') - return docs.issueWorkflows; + if (id === 'features.issues' || id === 'features.commits') + return docs.issuesGuide; if (id === 'features.pullRequests') - return docs.pullRequestWorkflows; + return docs.reviewGuide; + if (id === 'features.issueComments' || id === 'features.pullRequestComments') + return docs.botGuide; + if (id === 'features.release' || id === 'features.hotfix') + return docs.releaseGuide; if (id === 'repository.issueManagedBranches' || /^repository\.(feature|bugfix|hotfix|release|docs|chore)Tree$/u.test(id)) return docs.branchManagement; if (id === 'repository.preBranchSdd') @@ -73494,6 +73518,7 @@ exports.registerSetupCommand = registerSetupCommand; const product_identity_1 = __nccwpck_require__(18739); const setup_command_options_1 = __nccwpck_require__(99254); const setup_execution_1 = __nccwpck_require__(51293); +const setup_documentation_1 = __nccwpck_require__(2396); function registerSetupCommand(program) { program .command('setup') @@ -73527,6 +73552,7 @@ function registerSetupCommand(program) { .option('--update-workflows', 'Allow setup-managed workflows already in the repository to be updated', false) .option('--workflow-pat ', 'Workflow PAT for the bot account (prefer the hidden interactive prompt)') .option('--secret ', 'Secret value for non-interactive setup; repeat for each API key', setup_command_options_1.collectSecret, {}) + .addHelpText('after', `\nGuides (open only when you choose):\n Web setup tutorial: ${setup_documentation_1.SETUP_DOCUMENTATION.tutorial}\n First issue-to-PR workflow: ${setup_documentation_1.SETUP_DOCUMENTATION.firstWorkflow}\n Troubleshooting: ${setup_documentation_1.SETUP_DOCUMENTATION.recovery}\n\nDuring interactive setup, type ? for question help and :back to revisit an answer.\n`) .action(setup_execution_1.executeSetupCommand); } @@ -75440,9 +75466,19 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports.ConsoleSetupJourneyPresenter = void 0; exports.renderSetupJourney = renderSetupJourney; const setup_prompt_rendering_1 = __nccwpck_require__(76673); +const setup_documentation_1 = __nccwpck_require__(2396); class ConsoleSetupJourneyPresenter { present(view) { console.log(renderSetupJourney(view)); + if (view.outcome === 'complete') { + console.log(`Next: install the reviewed files, then verify your first workflow: ${setup_documentation_1.SETUP_DOCUMENTATION.firstWorkflow}`); + } + else if (view.outcome === 'blocked' || view.outcome === 'partial') { + console.log(`Inspect the result before retrying. Troubleshooting: ${setup_documentation_1.SETUP_DOCUMENTATION.recovery}`); + } + else if (view.current === 'Repository' || view.outcome === 'dry-run') { + console.log(`Setup tutorial (opens only when you choose): ${setup_documentation_1.SETUP_DOCUMENTATION.tutorial}`); + } } } exports.ConsoleSetupJourneyPresenter = ConsoleSetupJourneyPresenter; diff --git a/build/web/assets/index-BTzJj-al.js b/build/web/assets/index-BTzJj-al.js deleted file mode 100644 index 0dea944d6..000000000 --- a/build/web/assets/index-BTzJj-al.js +++ /dev/null @@ -1,3 +0,0 @@ -(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})(),typeof window<`u`&&((window.__svelte??={}).v??=new Set).add(`5`);var e=!1;function t(){e=!0}t();var n={},r=Symbol(`uninitialized`),i=`http://www.w3.org/1999/xhtml`,a=Array.isArray,o=Array.prototype.indexOf,s=Array.prototype.includes,c=Array.from,l=Object.defineProperty,u=Object.getOwnPropertyDescriptor,d=Object.getOwnPropertyDescriptors,f=Object.prototype,p=Array.prototype,m=Object.getPrototypeOf,h=Object.isExtensible,g=()=>{};function _(e){return e()}function v(e){for(var t=0;t{e=n,t=r}),resolve:e,reject:t}}function b(e,t){if(Array.isArray(e))return e;if(t===void 0||!(Symbol.iterator in e))return Array.from(e);let n=[];for(let r of e)if(n.push(r),n.length===t)break;return n}var x=1024,S=2048,C=4096,w=8192,ee=16384,te=32768,ne=1<<25,re=65536,ie=1<<19,ae=1<<20,oe=1<<25,se=1<<21,ce=1<<22,le=1<<23,ue=Symbol(`$state`),de=Symbol(`component`),fe=Symbol(`legacy props`),pe=Symbol(``),me=Symbol(`attributes`),he=Symbol(`class`),ge=Symbol(`style`),_e=Symbol(`text`),ve=Symbol(`form reset`),ye=new class extends Error{name=`StaleReactionError`;message="The reaction that called `getAbortSignal()` was re-run or destroyed"},be=!!globalThis.document?.contentType&&globalThis.document.contentType.includes(`xml`);function xe(){console.warn(`https://svelte.dev/e/derived_inert`)}function Se(e){console.warn(`https://svelte.dev/e/hydration_mismatch`)}function Ce(){console.warn(`https://svelte.dev/e/select_multiple_invalid_value`)}function we(){console.warn(`https://svelte.dev/e/svelte_boundary_reset_noop`)}var T=!1;function Te(e){T=e}var E;function Ee(e){if(e===null)throw Se(),n;return E=e}function De(){return Ee(ln(E))}function D(e){if(T){if(ln(E)!==null)throw Se(),n;E=e}}function Oe(e=1){if(T){for(var t=e,n=E;t--;)n=ln(n);E=n}}function ke(e=!0){for(var t=0,n=E;;){if(n.nodeType===8){var r=n.data;if(r===`]`){if(t===0)return n;--t}else(r===`[`||r===`[!`||r[0]===`[`&&!isNaN(Number(r.slice(1))))&&(t+=1)}var i=ln(n);e&&n.remove(),n=i}}function Ae(e){if(!e||e.nodeType!==8)throw Se(),n;return e.data}function je(e){return e===this.v}function Me(e,t){return e==e?e!==t||typeof e==`object`&&!!e||typeof e==`function`:t==t}function Ne(e){return!Me(e,this.v)}function Pe(e){throw Error(`https://svelte.dev/e/lifecycle_outside_component`)}function Fe(){throw Error(`https://svelte.dev/e/async_derived_orphan`)}function Ie(e,t,n){throw Error(`https://svelte.dev/e/each_key_duplicate`)}function Le(e){throw Error(`https://svelte.dev/e/effect_in_teardown`)}function Re(){throw Error(`https://svelte.dev/e/effect_in_unowned_derived`)}function ze(e){throw Error(`https://svelte.dev/e/effect_orphan`)}function Be(){throw Error(`https://svelte.dev/e/effect_update_depth_exceeded`)}function Ve(e){throw Error(`https://svelte.dev/e/props_invalid_value`)}function He(){throw Error(`https://svelte.dev/e/state_descriptors_fixed`)}function Ue(){throw Error(`https://svelte.dev/e/state_prototype_fixed`)}function We(){throw Error(`https://svelte.dev/e/state_unsafe_mutation`)}function Ge(){throw Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`)}var Ke=null;function qe(e){Ke=e}function O(t,n=!1,r){Ke={p:Ke,i:!1,c:null,e:null,s:t,x:null,r:z,l:e&&!n?{s:null,u:null,$:[]}:null}}function Je(e){var t=Ke,n=t.e;if(n!==null){t.e=null;for(var r of n)Sn(r)}return e!==void 0&&(t.x=e),t.i=!0,Ke=t.p,Ye(e)}function Ye(e={}){return l(e,de,{value:!0}),e}function Xe(){return!e||Ke!==null&&Ke.l===null}var Ze=[];function Qe(){var e=Ze;Ze=[],v(e)}function $e(e){if(Ze.length===0&&!Dt){var t=Ze;queueMicrotask(()=>{t===Ze&&Qe()})}Ze.push(e)}function et(){for(;Ze.length>0;)Qe()}var tt=~(S|C|x);function nt(e,t){e.f=e.f&tt|t}function rt(e){e.f&512||e.deps===null?nt(e,x):nt(e,C)}function it(e,t,n){e.f&2048?t.add(e):e.f&4096&&n.add(e),nt(e,x)}function at(e){T&&cn(e)!==null&&un(e)}var ot=!1;function st(){ot||(ot=!0,document.addEventListener(`reset`,e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(let t of e.target.elements)t[ve]?.()})},{capture:!0}))}function ct(e){var t=Kn,n=z;Jn(null),Yn(null);try{return e()}finally{Jn(t),Yn(n)}}function lt(e,t,n,r=n){e.addEventListener(t,()=>ct(n));let i=e[ve];e[ve]=i?()=>{i(),r(!0)}:()=>r(!0),st()}function ut(e,t,n,r){let i=Xe()?mt:k;var a=e.filter(e=>!e.settled),o=t.map(i);if(n.length===0&&a.length===0){r(o);return}var s=z,c=dt(),l=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(e=>e.promise)):null;function u(e){if(!(s.f&16384)){c();try{r([...o,...e])}catch(e){hn(e,s)}ft()}}var d=pt();if(n.length===0){l.then(()=>u([])).finally(d);return}function f(){Promise.all(n.map(e=>gt(e))).then(u).catch(e=>hn(e,s)).finally(d)}l?l.then(()=>{c(),f(),ft()}):f()}function dt(){var e=z,t=Kn,n=Ke,r=A;return function(i=!0){Yn(e),Jn(t),qe(n),i&&!(e.f&16384)&&(r?.activate(),r?.apply())}}function ft(e=!0){Yn(null),Jn(null),qe(null),e&&A?.deactivate()}function pt(){var e=z,t=e.b,n=A,r=!!t?.is_rendered();return t?.update_pending_count(1,n),n.increment(r,e),()=>{t?.update_pending_count(-1,n),n.decrement(r,e)}}function mt(e){var t=2|S;return z!==null&&(z.f|=ie),{ctx:Ke,deps:null,effects:null,equals:je,f:t,fn:e,reactions:null,rv:0,v:r,wv:0,parent:z,ac:null}}var ht=Symbol(`obsolete`);function gt(e,t,n){let i=z;i===null&&Fe();var a=void 0,o=Wt(r),s=!Kn,c=new Set;return Dn(()=>{var t=z,n=y();a=n.promise;try{Promise.resolve(e()).then(n.resolve,e=>{e!==ye&&n.reject(e)}).finally(ft)}catch(e){n.reject(e),ft()}var r=A;if(s){if(t.f&32768)var l=pt();if(i.b?.is_rendered())r.async_deriveds.get(t)?.reject(ht);else for(let e of c.values())e.reject(ht);c.add(n),r.async_deriveds.set(t,n)}let u=(e,t=void 0)=>{l?.(),c.delete(n),t!==ht&&(r.activate(),t?(o.f|=le,Jt(o,t)):(o.f&8388608&&(o.f^=le),Jt(o,e)),r.deactivate())};n.promise.then(u,e=>u(null,e||`unknown`))}),bn(()=>{for(let e of c)e.reject(ht)}),new Promise(e=>{function t(n){function r(){n===a?e(o):t(a)}n.then(r,r)}t(a)})}function _t(e){let t=mt(e);return Zn(t),t}function k(e){let t=mt(e);return t.equals=Ne,t}function vt(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n{t.ac.abort(ye),t.ac=null}),t.fn!==null&&(t.teardown=g),fr(t,0),Mn(t))}function St(e){if(e.effects!==null)for(let t of e.effects)t.teardown&&t.fn!==null&&pr(t)}var Ct=null,A=null,wt=null,Tt=null,Et=null,Dt=!1,Ot=!1,kt=null,At=null,jt=0,Mt=1,Nt=class e{id=Mt++;#e=!1;linked=!0;#t=null;#n=null;async_deriveds=new Map;current=new Map;previous=new Map;#r=new Set;#i=new Set;#a=0;#o=new Map;#s=null;#c=[];#l=[];#u=new Set;#d=new Set;#f=new Map;#p=new Set;is_fork=!1;#m=!1;constructor(){Ct===null?Ct=this:(Ct.#n=this,this.#t=Ct),Ct=this}#h(){if(this.is_fork)return!0;for(let n of this.#o.keys()){for(var e=n,t=!1;e.parent!==null;){if(this.#f.has(e)){t=!0;break}e=e.parent}if(!t)return!0}return!1}skip_effect(e){this.#f.has(e)||this.#f.set(e,{d:[],m:[]}),this.#p.delete(e)}unskip_effect(e,t=e=>this.schedule(e)){var n=this.#f.get(e);if(n){this.#f.delete(e);for(var r of n.d)nt(r,S),t(r);for(r of n.m)nt(r,C),t(r)}this.#p.add(e)}#g(){var e=[];for(let i of this.#c)if(!(i.f&16384||!(i.f&6144))){for(var t=i,n=!1;t.parent!==null;){t=t.parent;var r=t.f;if(r&96){if(!(r&1024)){n=!0;break}t.f^=x}}n||e.push(t)}return this.#c=[],e}#_(){this.#e=!0;for(let e of this.#u)this.#d.delete(e),nt(e,S),this.schedule(e);for(let e of this.#d)nt(e,C),this.schedule(e);this.apply();for(var t=kt=[],n=[],r=At=[];this.#c.length>0;){jt++>1e3&&(this.#S(),Ft());for(let e of this.#g())try{this.#v(e,t,n)}catch(t){throw Bt(e),this.#h()||this.discard(),t}}if(A=null,r.length>0){var i=e.ensure();for(let e of r)i.schedule(e)}if(kt=null,At=null,this.#h()){this.#x(n),this.#x(t);for(let[e,t]of this.#f)zt(e,t);r.length>0&&A.#_();return}let a=this.#y();if(a){this.#x(n),this.#x(t),a.#b(this);return}this.#u.clear(),this.#d.clear();for(let e of this.#r)e(this);this.#r.clear(),wt=this,Lt(n),Lt(t),wt=null,this.#s?.resolve();var o=A;if(this.#a===0&&(this.#c.length===0||o!==null)&&this.#S(),this.#c.length>0){if(o!==null){for(let e of this.#c)o.#c.push(e);this.#c=[]}else o=this}o!==null&&(Ht.clear(),o.#_())}#v(e,t,n){e.f^=x;for(var r=e.first;r!==null;){var i=r.f,a=!!(i&96);if(!(a&&i&1024||i&8192||this.#f.has(r))&&r.fn!==null){a?r.f^=x:i&4?t.push(r):sr(r)&&(i&16&&this.#d.add(r),pr(r));var o=r.first;if(o!==null){r=o;continue}}for(;r!==null;){var s=r.next;if(s!==null){r=s;break}r=r.parent}}}#y(){for(var e=this.#t;e!==null;){if(!e.is_fork){for(let[t,[,n]]of this.current)if(e.current.has(t)&&!n)return e}e=e.#t}return null}#b(e){for(let[t,n]of e.current)!this.previous.has(t)&&e.previous.has(t)&&this.previous.set(t,e.previous.get(t)),this.current.set(t,n);for(let[t,n]of e.async_deriveds){let e=this.async_deriveds.get(t);e&&n.promise.then(e.resolve).catch(e.reject)}e.async_deriveds.clear(),this.transfer_effects(e.#u,e.#d);let t=e=>{var n=e.reactions;if(n!==null&&!(e.f&2&&!(e.f&6144)))for(let e of n){var r=e.f;if(r&2)t(e);else{var i=e;r&4194320&&!this.async_deriveds.has(i)&&(this.#d.delete(i),nt(i,S),this.schedule(i))}}};for(let e of this.current.keys())t(e);this.oncommit(()=>e.discard()),e.#S(),A=this,this.#_()}#x(e){for(var t=0;t{this.#m=!1,this.linked&&this.flush()}))}transfer_effects(e,t){for(let t of e)this.#u.add(t);for(let e of t)this.#d.add(e);e.clear(),t.clear()}oncommit(e){this.#r.add(e)}ondiscard(e){this.#i.add(e)}settled(){return(this.#s??=y()).promise}static ensure(){if(A===null){let t=A=new e;!Ot&&!Dt&&$e(()=>{t.#e||t.flush()})}return A}apply(){Tt=null}schedule(e){if(Et=e,e.b?.is_pending&&e.f&16777228&&!(e.f&32768)){e.b.defer_effect(e);return}this.#c.push(e)}#S(){if(this.linked){var e=this.#t,t=this.#n;e===null||(e.#n=t),t===null?Ct=e:t.#t=e,this.linked=!1}}};function Pt(e){var t=Dt;Dt=!0;try{var n;for(e&&(A!==null&&!A.is_fork&&A.flush(),n=e());;){if(et(),A===null)return n;A.flush()}}finally{Dt=t}}function Ft(){try{Be()}catch(e){hn(e,Et)}}var It=null;function Lt(e){var t=e.length;if(t!==0){for(var n=0;n0)){Ht.clear();for(let e of It){if(e.f&24576)continue;let t=[e],n=e.parent;for(;n!==null;)It.has(n)&&(It.delete(n),t.push(n)),n=n.parent;for(let e=t.length-1;e>=0;e--){let n=t[e];n.f&24576||pr(n)}}It.clear()}}It=null}}function Rt(e){A.schedule(e)}function zt(e,t){if(!(e.f&32&&e.f&1024)){e.f&2048?t.d.push(e):e.f&4096&&t.m.push(e),nt(e,x);for(var n=e.first;n!==null;)zt(n,t),n=n.next}}function Bt(e){nt(e,x);for(var t=e.first;t!==null;)Bt(t),t=t.next}var Vt=new Set,Ht=new Map,Ut=!1;function Wt(e,t){return{f:0,v:e,reactions:null,equals:je,rv:0,wv:0}}function Gt(e,t){let n=Wt(e,t);return Zn(n),n}function j(t,n=!1,r=!0){let i=Wt(t);return n||(i.equals=Ne),e&&r&&Ke!==null&&Ke.l!==null&&(Ke.l.s??=[]).push(i),i}function M(e,t,n=!1){return Kn!==null&&(!qn||Kn.f&131072)&&Xe()&&Kn.f&4325394&&(Xn===null||!Xn.has(e))&&We(),Jt(e,n?Qt(t):t,At)}var Kt=null,qt=0;function Jt(e,t,n=null){if(!e.equals(t)){Wn?Ht.set(e,t):Ht.has(e)||Ht.set(e,e.v);var r=Nt.ensure();if(r.capture(e,t),e.f&2){let t=e;e.f&2048&&yt(t),Tt===null&&rt(t)}e.wv=or(),Kt=null,qt=0,Zt(e,S,n),Kt=null,Xe()&&z!==null&&z.f&1024&&!(z.f&96)&&(er===null?tr([e]):er.push(e)),!r.is_fork&&Vt.size>0&&!Ut&&Yt()}return t}function Yt(){Ut=!1;for(let e of Vt){e.f&1024&&nt(e,C);let t;try{t=sr(e)}catch{t=!0}t&&pr(e)}Vt.clear()}function Xt(e){M(e,e.v+1)}function Zt(e,t,n){var r=e.reactions;if(r!==null){var i=Xe(),a=r.length;if(qt+=a,qt>1e5&&Kt===null&&(Kt=new Set),Kt!==null){if(Kt.has(e))return;Kt.add(e)}for(var o=0;o{if(ir===c)return e();var t=Kn,n=ir;Jn(null),ar(c);var r=e();return Jn(t),ar(n),r};return i&&n.set(`length`,Gt(e.length,s)),new Proxy(e,{defineProperty(e,t,r){(!(`value`in r)||r.configurable===!1||r.enumerable===!1||r.writable===!1)&&He();var i=n.get(t);return i===void 0?l(()=>{var e=Gt(r.value,s);return n.set(t,e),e}):M(i,r.value,!0),!0},deleteProperty(e,t){var i=n.get(t);if(i===void 0){if(t in e){let e=l(()=>Gt(r,s));n.set(t,e),Xt(o)}}else M(i,r),Xt(o);return!0},get(t,i,a){if(i===ue)return e;var o=n.get(i),c=i in t;if(o===void 0&&(!c||u(t,i)?.writable)&&(o=l(()=>Gt(Qt(c?t[i]:r),s)),n.set(i,o)),o!==void 0){var d=B(o);return d===r?void 0:d}return Reflect.get(t,i,a)},getOwnPropertyDescriptor(e,t){this.has?.(e,t);var i=Reflect.getOwnPropertyDescriptor(e,t),a=n.get(t);if(a!==void 0){var o=B(a);if(o===r)return;if(i&&`value`in i)i.value=o;else return{enumerable:!0,configurable:!0,value:o,writable:!0}}return i},has(e,t){if(t===ue)return!0;var i=n.get(t),a=i!==void 0&&i.v!==r||Reflect.has(e,t);return(i!==void 0||z!==null&&(!a||u(e,t)?.writable))&&(i===void 0&&(i=l(()=>Gt(a?Qt(e[t]):r,s)),n.set(t,i)),B(i)===r)?!1:a},set(e,t,a,c){var d=n.get(t),f=t in e;if(i&&t===`length`)for(var p=a;pGt(r,s)),n.set(p+``,m)):M(m,r)}if(d===void 0)(!f||u(e,t)?.writable)&&(d=l(()=>Gt(void 0,s)),M(d,Qt(a)),n.set(t,d));else{f=d.v!==r;var h=l(()=>Qt(a));M(d,h)}var g=Reflect.getOwnPropertyDescriptor(e,t);if(g?.set&&g.set.call(c,a),!f){if(i&&typeof t==`string`){var _=n.get(`length`),v=Number(t);Number.isInteger(v)&&v>=_.v&&M(_,v+1)}Xt(o)}return!0},ownKeys(e){B(o);var t=Reflect.ownKeys(e).filter(e=>{var t=n.get(e);return t===void 0||t.v!==r});for(var[i,a]of n)a.v!==r&&!(i in e)&&t.push(i);return t},setPrototypeOf(){Ue()}})}function $t(e){try{if(typeof e==`object`&&e&&ue in e)return e[ue]}catch{}return e}function en(e,t){return Object.is($t(e),$t(t))}var tn,nn,rn,an;function on(){if(tn===void 0){tn=window,nn=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;rn=u(t,`firstChild`).get,an=u(t,`nextSibling`).get,h(e)&&(e[he]=void 0,e[me]=null,e[ge]=void 0,e.__e=void 0),h(n)&&(n[_e]=void 0)}}function sn(e=``){return document.createTextNode(e)}function cn(e){return rn.call(e)}function ln(e){return an.call(e)}function N(e,t){if(!T)return cn(e);var n=cn(E);if(n===null)n=E.appendChild(sn());else if(t&&n.nodeType!==3){var r=sn();return n?.before(r),Ee(r),r}return t&&pn(n),Ee(n),n}function P(e,t=!1){if(!T){var n=cn(e);return n instanceof Comment&&n.data===``?ln(n):n}if(t){if(E?.nodeType!==3){var r=sn();return E?.before(r),Ee(r),r}pn(E)}return E}function F(e,t=!1){if(!T)return cn(e);var n=N(e,t);return D(e),n}function I(e,t=1,n=!1){let r=T?E:e;for(var i;t--;)i=r,r=ln(r);if(!T)return r;if(n){if(r?.nodeType!==3){var a=sn();return r===null?i?.after(a):r.before(a),Ee(a),a}pn(r)}return Ee(r),r}function un(e){e.textContent=``}function dn(){return!1}function fn(e,t,n){return t==null||t===`http://www.w3.org/1999/xhtml`?n?document.createElement(e,{is:n}):document.createElement(e):n?document.createElementNS(t,e,{is:n}):document.createElementNS(t,e)}function pn(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===3;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function mn(e){var t=z;if(t===null)return Kn.f|=le,e;if(!(t.f&32768)&&!(t.f&4))throw e;hn(e,t)}function hn(e,t){if(!(t!==null&&t.f&16384)){for(;t!==null;){if(t.f&128&&!(t.f&33570816)){if(!(t.f&32768))throw e;try{t.b.error(e);return}catch(t){e=t}}t=t.parent}throw e}}function gn(e){z===null&&(Kn===null&&ze(e),Re()),Wn&&Le(e)}function _n(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function vn(e,t){var n=z;n!==null&&n.f&8192&&(e|=w);var r={ctx:Ke,deps:null,nodes:null,f:e|S|512,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};A?.register_created_effect(r);var i=r;if(e&4)kt===null?Nt.ensure().schedule(r):kt.push(r);else if(t!==null){try{pr(r)}catch(e){throw Pn(r),e}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&!(i.f&524288)&&(i=i.first,e&16&&e&65536&&i!==null&&(i.f|=re))}if(i!==null&&(i.parent=n,n!==null&&_n(i,n),Kn!==null&&Kn.f&2&&!(e&64))){var a=Kn;(a.effects??=[]).push(i)}return r}function yn(){return Kn!==null&&!qn}function bn(e){let t=vn(8,null);return nt(t,x),t.teardown=e,t}function xn(e){gn(`$effect`);var t=z.f;if(!Kn&&t&32&&Ke!==null&&!Ke.i){var n=Ke;(n.e??=[]).push(e)}else return Sn(e)}function Sn(e){return vn(4|ae,e)}function Cn(e){return gn(`$effect.pre`),vn(8|ae,e)}function wn(e){Nt.ensure();let t=vn(64|ie,e);return(e={})=>new Promise(n=>{e.outro?Ln(t,()=>{Pn(t),n(void 0)}):(Pn(t),n(void 0))})}function Tn(e){return vn(4,e)}function L(e,t){var n=Ke,r={effect:null,ran:!1,deps:e};n.l.$.push(r),r.effect=On(()=>{if(e(),!r.ran){r.ran=!0;var n=z;try{Yn(n.parent),V(t)}finally{Yn(n)}}})}function En(){var e=Ke;On(()=>{for(var t of e.l.$){t.deps();var n=t.effect;n.f&1024&&n.deps!==null&&nt(n,C),sr(n)&&pr(n),t.ran=!1}})}function Dn(e){return vn(ce|ie,e)}function On(e,t=0){return vn(8|t,e)}function R(e,t=[],n=[],r=[]){ut(r,t,n,t=>{vn(8,()=>{e(...t.map(B))})})}function kn(e,t=0){return vn(16|t,e)}function An(e){return vn(32|ie,e)}function jn(e){var t=e.teardown;if(t!==null){let n=Wn,r=Kn;Gn(!0),Jn(null);try{t.call(null)}catch(t){hn(t,e.parent)}finally{Gn(n),Jn(r)}}}function Mn(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){let e=n.ac;e!==null&&ct(()=>{e.abort(ye)});var r=n.next;n.f&64?n.parent=null:Pn(n,t),n=r}}function Nn(e){for(var t=e.first;t!==null;){var n=t.next;t.f&32||Pn(t),t=n}}function Pn(e,t=!0){var n=!1;(t||e.f&262144)&&e.nodes!==null&&e.nodes.end!==null&&(Fn(e.nodes.start,e.nodes.end),n=!0),e.f|=ne,Mn(e,t&&!n),fr(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)e.stop();jn(e),e.f^=ne,e.f|=ee;var i=e.parent;i!==null&&i.first!==null&&In(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Fn(e,t){for(;e!==null;){var n=e===t?null:ln(e);e.remove(),e=n}}function In(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function Ln(e,t,n=!0){var r=[];e.f|=256,Rn(e,r,!0);var i=()=>{n&&Pn(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||i();for(var s of r)s.out(o)}else i()}function Rn(e,t,n){if(!(e.f&8192)){e.f^=w;var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)(e.is_global||n)&&t.push(e);for(var i=e.first;i!==null;){var a=i.next;if(!(i.f&64)){var o=!!(i.f&65536)||!!(i.f&32)&&!!(e.f&16);Rn(i,t,o?n:!1)}i=a}}}function zn(e){e.f&=-257,Bn(e,!0)}function Bn(e,t){if(!(e.f&256)&&e.f&8192){e.f^=w,e.f&1024||(nt(e,S),Nt.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,i=!!(n.f&65536)||!!(n.f&32);Bn(n,i?t:!1),n=r}var a=e.nodes&&e.nodes.t;if(a!==null)for(let e of a)(e.is_global||t)&&e.in()}}function Vn(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var i=n===r?null:ln(n);t.append(n),n=i}}var Hn=null,Un=!1,Wn=!1;function Gn(e){Wn=e}var Kn=null,qn=!1;function Jn(e){Kn=e}var z=null;function Yn(e){z=e}var Xn=null;function Zn(e){Kn!==null&&(Kn.f&2097152||Kn.f&2)&&(Xn??=new Set).add(e)}var Qn=null,$n=0,er=null;function tr(e){er=e}var nr=1,rr=0,ir=rr;function ar(e){ir=e}function or(){return++nr}function sr(e){var t=e.f;if(t&2048)return!0;if(t&4096){for(var n=e.deps,r=n.length,i=0;ie.wv)return!0}t&512&&Tt===null&&nt(e,x)}return!1}function cr(e,t,n=!0){var r=e.reactions;if(r!==null&&!(Xn!==null&&Xn.has(e)))for(var i=0;i{e.ac.abort(ye)}),e.ac=null);try{e.f|=se;var u=e.fn,d=u();e.f|=te;var f=ur(e);if(Xe()&&er!==null&&!qn&&f!==null&&!(e.f&6146))for(var p=0;p0)for(t.length=$n+Qn.length,r=0;r{c.ac.abort(ye),c.ac=null,nt(c,S)}),xt(c),fr(c,0)}}function fr(e,t){var n=e.deps;if(n!==null)for(var r=t;rn?.call(this,e))}return e.startsWith(`pointer`)||e.startsWith(`touch`)||e===`wheel`?(i.__removed=!1,$e(()=>{i.__removed||t.addEventListener(e,i,r)})):t.addEventListener(e,i,r),i}function Sr(e,t,n,r,i){var a={capture:r,passive:i},o=xr(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&bn(()=>{o.__removed=!0,t.removeEventListener(e,o,a)})}function Cr(e,t,n){(t[vr]??={})[e]=n}function wr(e){for(var t=0;t{Er=!1,Tr=null}));var o=0,s=Tr===e&&e[vr];if(s){var c=i.indexOf(s);if(c!==-1&&(t===document||t===window)){e[vr]=t;return}var u=i.indexOf(t);if(u===-1)return;c<=u&&(o=c)}if(a=i[o]||e.target,a!==t){l(e,`currentTarget`,{configurable:!0,get(){return a||n}});var d=Kn,f=z;Jn(null),Yn(null);try{for(var p,m=[];a!==null&&a!==t;){try{var h=a[vr]?.[r];h!=null&&(!a.disabled||e.target===a)&&h.call(a,e)}catch(e){p?m.push(e):p=e}if(e.cancelBubble)break;o++,a=o{throw e});throw p}}finally{e[vr]=t,delete e.currentTarget,Jn(d),Yn(f)}}}var Or=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy(`svelte-trusted-html`,{createHTML:e=>e});function kr(e){return Or?.createHTML(e)??e}function Ar(e){var t=fn(`template`);return t.innerHTML=kr(e.replaceAll(``,``)),t.content}function jr(e,t){var n=z;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function U(e,t){var n=!!(t&1),r=!!(t&2),i,a=!e.startsWith(``);return()=>{if(T)return jr(E,null),E;i===void 0&&(i=Ar(a?e:``+e),n||(i=cn(i)));var t=r||nn?document.importNode(i,!0):i.cloneNode(!0);if(n){var o=cn(t),s=t.lastChild;jr(o,s)}else jr(t,t);return t}}function Mr(e=``){if(!T){var t=sn(e+``);return jr(t,t),t}var n=E;return n.nodeType===3?pn(n):(n.before(n=sn()),Ee(n)),jr(n,n),n}function Nr(){if(T)return jr(E,null),E;var e=document.createDocumentFragment(),t=document.createComment(``),n=sn();return e.append(t,n),jr(t,n),e}function W(e,t){if(T){var n=z;(!(n.f&32768)||n.nodes.end===null)&&(n.nodes.end=E),De();return}e!==null&&e.before(t)}[...`allowfullscreen.async.autofocus.autoplay.checked.controls.default.disabled.formnovalidate.indeterminate.inert.ismap.loop.multiple.muted.nomodule.novalidate.open.playsinline.readonly.required.reversed.seamless.selected.webkitdirectory.defer.disablepictureinpicture.disableremoteplayback`.split(`.`)];var Pr=[`touchstart`,`touchmove`];function Fr(e){return Pr.includes(e)}function Ir(e){let t=0,n=Wt(0),r;return()=>{yn()&&(B(n),On(()=>(t===0&&(r=V(()=>e(()=>Xt(n)))),t+=1,()=>{$e(()=>{--t,t===0&&(r?.(),r=void 0,Xt(n))})})))}}var Lr=re|ie;function Rr(e,t,n,r){new zr(e,t,n,r)}var zr=class{parent;is_pending=!1;transform_error;#e;#t=T?E:null;#n;#r;#i;#a=null;#o=null;#s=null;#c=null;#l=0;#u=0;#d=!1;#f=new Set;#p=new Set;#m=null;#h=Ir(()=>(this.#m=Wt(this.#l),()=>{this.#m=null}));constructor(e,t,n,r){this.#e=e,this.#n=t,this.#r=e=>{var t=z;t.b=this,t.f|=128,n(e)},this.parent=z.b,this.transform_error=r??this.parent?.transform_error??(e=>e),this.#i=kn(()=>{if(T){let e=this.#t;De();let t=e.data===`[!`;if(e.data.startsWith(`[?`)){let t=JSON.parse(e.data.slice(2));this.#_(t)}else t?this.#y():this.#g()}else this.#b()},Lr),T&&(this.#e=E)}#g(){try{this.#a=An(()=>this.#r(this.#e))}catch(e){this.error(e)}}#_(e){let t=this.#n.failed,{reset:n,invoke_onerror:r}=this.#v(e);$e(r),t&&(this.#s=An(()=>{t(this.#e,()=>e,()=>n)}))}#v(e){var t=!1,n=!1;let r=()=>{if(t){we();return}t=!0,n&&Ge(),this.#s!==null&&Ln(this.#s,()=>{this.#s=null}),this.#S(()=>{this.#b()})};return{reset:r,invoke_onerror:()=>{try{n=!0,this.#n.onerror?.(e,r),n=!1}catch(e){hn(e,this.#i&&this.#i.parent)}}}}#y(){let e=this.#n.pending;e&&(this.is_pending=!0,this.#o=An(()=>e(this.#e)),$e(()=>{var e=this.#c=document.createDocumentFragment(),t=sn(),n=!1;if(e.append(t),this.#a=this.#S(()=>{try{return An(()=>this.#r(t))}catch(e){try{this.error(e),n=!0}catch(e){hn(e,this.#i.parent)}return null}}),this.#a===null){this.#c=null,n&&this.#x(A);return}this.#u===0&&(this.#e.before(e),this.#c=null,Ln(this.#o,()=>{this.#o=null}),this.#x(A))}))}#b(){try{if(this.is_pending=this.has_pending_snippet(),this.#u=0,this.#l=0,this.#a=An(()=>{this.#r(this.#e)}),this.#u>0){var e=this.#c=document.createDocumentFragment();Vn(this.#a,e);let t=this.#n.pending;this.#o=An(()=>t(this.#e))}else this.#x(A)}catch(e){this.error(e)}}#x(e){this.is_pending=!1,e.transfer_effects(this.#f,this.#p)}defer_effect(e){it(e,this.#f,this.#p)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#n.pending}#S(e){var t=z,n=Kn,r=Ke;Yn(this.#i),Jn(this.#i),qe(this.#i.ctx);try{return Nt.ensure(),e()}finally{Yn(t),Jn(n),qe(r)}}#C(e,t){if(!this.has_pending_snippet()){this.parent&&this.parent.#C(e,t);return}this.#u+=e,this.#u===0&&(this.#x(t),this.#o&&Ln(this.#o,()=>{this.#o=null}),this.#c&&=(this.#e.before(this.#c),null))}update_pending_count(e,t){this.#C(e,t),this.#l+=e,!(!this.#m||this.#d)&&(this.#d=!0,$e(()=>{this.#d=!1,this.#m&&Jt(this.#m,this.#l)}))}get_effect_pending(){return this.#h(),B(this.#m)}error(e){if(!this.#n.onerror&&!this.#n.failed)throw e;A?.is_fork?(this.#a&&A.skip_effect(this.#a),this.#o&&A.skip_effect(this.#o),this.#s&&A.skip_effect(this.#s),A.oncommit(()=>{this.#w(e)})):this.#w(e)}#w(e){this.#a&&=(Pn(this.#a),null),this.#o&&=(Pn(this.#o),null),this.#s&&=(Pn(this.#s),null),T&&(Ee(this.#t),Oe(),Ee(ke()));let t=this.#n.failed,n=e=>{let{reset:n,invoke_onerror:r}=this.#v(e);r(),t&&(this.#s=this.#S(()=>{try{return An(()=>{var r=z;r.b=this,r.f|=128,t(this.#e,()=>e,()=>n)})}catch(e){return hn(e,this.#i.parent),null}}))};$e(()=>{var t;try{t=this.transform_error(e)}catch(e){hn(e,this.#i&&this.#i.parent);return}typeof t==`object`&&t&&typeof t.then==`function`?t.then(n,e=>hn(e,this.#i&&this.#i.parent)):n(t)})}};function G(e,t){var n=t==null?``:typeof t==`object`?`${t}`:t;n!==(e[_e]??=e.nodeValue)&&(e[_e]=n,e.nodeValue=`${n}`)}function Br(e,t){return Hr(e,t)}var Vr=new Map;function Hr(e,{target:t,anchor:r,props:i={},events:a,context:o,intro:s=!0,transformError:l}){on();var u=void 0,d=wn(()=>{var s=r??t.appendChild(sn());Rr(s,{pending:()=>{}},t=>{O({});var r=Ke;if(o&&(r.c=o),a&&(i.$$events=a),T&&jr(t,null),u=e(t,i)||Ye(),T&&(z.nodes.end=E,E===null||E.nodeType!==8||E.data!==`]`))throw Se(),n;Je()},l);var d=new Set,f=e=>{for(var n=0;n{for(var e of d)for(let r of[t,document]){var n=Vr.get(r),i=n.get(e);--i==0?(r.removeEventListener(e,Dr),n.delete(e),n.size===0&&Vr.delete(r)):n.set(e,i)}br.delete(f),s!==r&&s.parentNode?.removeChild(s)}});return Ur.set(u,d),u}var Ur=new WeakMap,Wr=class{anchor;#e=new Map;#t=new Map;#n=new Map;#r=new Set;#i=!0;constructor(e,t=!0){this.anchor=e,this.#i=t}#a=e=>{if(this.#e.has(e)){var t=this.#e.get(e),n=this.#t.get(t);if(n)zn(n),this.#r.delete(t);else{var r=this.#n.get(t);r&&(zn(r.effect),this.#t.set(t,r.effect),this.#n.delete(t),r.fragment.lastChild.remove(),this.anchor.before(r.fragment),n=r.effect)}for(let[t,n]of this.#e){if(this.#e.delete(t),t===e)break;let r=this.#n.get(n);r&&(Pn(r.effect),this.#n.delete(n))}for(let[e,r]of this.#t){if(e===t||this.#r.has(e))continue;let i=()=>{if(Array.from(this.#e.values()).includes(e)){var t=document.createDocumentFragment();Vn(r,t),t.append(sn()),this.#n.set(e,{effect:r,fragment:t})}else Pn(r);this.#r.delete(e),this.#t.delete(e)};this.#i||!n?(this.#r.add(e),Ln(r,i,!1)):i()}}};#o=e=>{this.#e.delete(e);let t=Array.from(this.#e.values());for(let[e,n]of this.#n)t.includes(e)||(Pn(n.effect),this.#n.delete(e))};ensure(e,t){var n=A,r=dn();if(t&&!this.#t.has(e)&&!this.#n.has(e)){if(r){var i=document.createDocumentFragment(),a=sn();i.append(a),this.#n.set(e,{effect:An(()=>t(a)),fragment:i})}else this.#t.set(e,An(()=>t(this.anchor)))}if(this.#e.set(n,e),r){for(let[t,r]of this.#t)t===e?n.unskip_effect(r):n.skip_effect(r);for(let[t,r]of this.#n)t===e?n.unskip_effect(r.effect):n.skip_effect(r.effect);n.oncommit(this.#a),n.ondiscard(this.#o)}else T&&(this.anchor=E),this.#a(n)}};function Gr(t){Ke===null&&Pe(`onMount`),e&&Ke.l!==null?Kr(Ke).m.push(t):xn(()=>{let e=V(t);if(typeof e==`function`)return e})}function Kr(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}function K(e,t,n=!1){var r;T&&(r=E,De());var i=new Wr(e),a=n?re:0;function o(e,t){if(T){var n=Ae(r);if(e!==parseInt(n.substring(1))){var a=ke();Ee(a),i.anchor=a,Te(!1),i.ensure(e,t),Te(!0);return}}i.ensure(e,t)}kn(()=>{var e=!1;t((t,n=0)=>{e=!0,o(n,t)}),e||o(-1,null)},a)}var qr=Symbol(`NaN`);function Jr(e,t,n){T&&De();var r=new Wr(e),i=!Xe();kn(()=>{var e=t();e!==e&&(e=qr),i&&typeof e==`object`&&e&&(e={}),r.ensure(e,n)})}function q(e,t){return t}function Yr(e,t,n){for(var r=[],i=t.length,a,o=t.length,s=0;s{if(a){if(a.pending.delete(n),a.done.add(n),a.pending.size===0){var t=e.outrogroups;Xr(e,c(a.done)),t.delete(a),t.size===0&&(e.outrogroups=null)}}else--o},!1)}if(o===0){var l=r.length===0&&n!==null&&e.pending.size===0;if(l){var u=n,d=u.parentNode;un(d),d.append(u),e.items.clear()}Xr(e,t,!l)}else a={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(a)}function Xr(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(let t of e.pending.values())for(let n of t)r.add(e.items.get(n).e)}for(var i=0;i{var e=n();return a(e)?e:e==null?[]:c(e)}),p,m=new Map,h=!0;function g(e){v.effect.f&16384||(v.pending.delete(e),v.fallback=d,$r(v,p,s,t,r),d!==null&&(p.length===0?d.f&33554432?(d.f^=oe,ti(d,null,s)):zn(d):Ln(d,()=>{d=null})))}function _(e){v.pending.delete(e)}var v={effect:kn(()=>{p=B(f);var e=p.length;let a=!1;T&&Ae(s)===`[!`!=(e===0)&&(s=ke(),Ee(s),Te(!1),a=!0);for(var c=new Set,u=A,v=dn(),y=0;yo(s)):(d=An(()=>o(Zr??=sn())),d.f|=oe)),e>c.size&&Ie(``,``,``),T&&e>0&&Ee(ke()),!h){if(m.set(u,c),v){for(let[e,t]of l)c.has(e)||u.skip_effect(t.e);u.oncommit(g),u.ondiscard(_)}else g(u)}a&&Te(!0),B(f)}),flags:t,items:l,pending:m,outrogroups:null,fallback:d};h=!1,T&&(s=E)}function Qr(e){for(;e!==null&&!(e.f&32);)e=e.next;return e}function $r(e,t,n,r,i){var a=!!(r&8),o=t.length,s=e.items,l=Qr(e.effect.first),u,d=null,f,p=[],m=[],h,g,_,v;if(a)for(v=0;v0){var te=r&4&&o===0?n:null;if(a){for(v=0;v{if(f!==void 0)for(_ of f)_.nodes?.a?.apply()})}function ei(e,t,n,r,i,a,o,s){var c=o&1?o&16?Wt(n):j(n,!1,!1):null,l=o&2?Wt(i):null;return{v:c,i:l,e:An(()=>(a(t,c??n,l??i,s),()=>{e.delete(r)}))}}function ti(e,t,n){if(e.nodes)for(var r=e.nodes.start,i=e.nodes.end,a=t&&!(t.f&33554432)?t.nodes.start:n;r!==null;){var o=ln(r);if(a.before(r),r===i)return;r=o}}function ni(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function ri(e,t,n){Tn(()=>{var r=V(()=>t(e,n?.())||{});if(n&&r?.update){var i=!1,a={};On(()=>{var e=n();H(e),i&&Me(a,e)&&(a=e,r.update(e))}),i=!0}if(r?.destroy)return()=>r.destroy()})}function ii(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`){if(Array.isArray(e)){var i=e.length;for(t=0;t=0;){var s=o+a;(o===0||si.includes(r[o-1]))&&(s===r.length||si.includes(r[s]))?r=(o===0?``:r.substring(0,o))+r.substring(s+1):o=s}}return r===``?null:r}function li(e,t,n,r,i,a){var o=e[he];if(T||o!==n||o===void 0){var s=ci(n,r,a);(!T||s!==e.getAttribute(`class`))&&(s==null?e.removeAttribute(`class`):t?e.className=s:e.setAttribute(`class`,s)),e[he]=n}else if(a&&i!==a)for(var c in a){var l=!!a[c];(i==null||l!==!!i[c])&&e.classList.toggle(c,l)}return a}function ui(e,t){t?e.hasAttribute(`selected`)||e.setAttribute(`selected`,``):e.removeAttribute(`selected`)}function di(e,t){var n=e.__defaultValue,r=e.multiple,i=r?n??[]:null;if(!r||a(i)){var o=e.selectedIndex,s=t&&r?new Set(e.selectedOptions):null;for(var c of e.options){var l=hi(c);ui(c,r?i.includes(l):en(l,n))}if(t){if(s!==null)for(c of e.options){var u=s.has(c);c.selected!==u&&(c.selected=u)}else e.selectedIndex!==o&&(e.selectedIndex=o)}}}function fi(e,t,n=!1){if(e.multiple){if(t==null)return;if(!a(t))return Ce();for(var r of e.options)r.selected=t.includes(hi(r));return}for(r of e.options)if(en(hi(r),t)){r.selected=!0;return}(!n||t!==void 0)&&(e.selectedIndex=-1)}function pi(e){var t=new MutationObserver(t=>{t.every(gi)||(`__defaultValue`in e&&di(e,!1),`__value`in e&&fi(e,e.__value))});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`value`]}),bn(()=>{t.disconnect()})}function mi(e,t,n=t){var r=new WeakSet,i=!0;lt(e,`change`,t=>{var i=t?`[selected]`:`:checked`,a;if(e.multiple)a=[].map.call(e.querySelectorAll(i),hi);else{var o=e.querySelector(i)??e.querySelector(`option:not([disabled])`);a=o&&hi(o)}n(a),e.__value=a,A!==null&&r.add(A)}),Tn(()=>{var a=t();if(e===document.activeElement){var o=A;if(r.has(o))return}if(fi(e,a,i),i&&a===void 0){var s=e.querySelector(`:checked`);s!==null&&(a=hi(s),n(a))}e.__value=a,i=!1})}function hi(e){return`__value`in e?e.__value:e.value}function gi(e){if(e.target.closest(`selectedcontent`)!==null)return!0;if(e.type===`childList`){var t=[...e.addedNodes,...e.removedNodes];return t.length>0&&t.every(e=>e.nodeName===`SELECTEDCONTENT`)}return!1}var _i=Symbol(`is custom element`),vi=Symbol(`is html`),yi=be?`link`:`LINK`;function bi(e){if(T){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute(`value`)){var n=e.value;Y(e,`value`,null),e.value=n}if(e.hasAttribute(`checked`)){var r=e.checked;Y(e,`checked`,null),e.checked=r}}};e[ve]=n,$e(n),st()}}function xi(e,t){var n=Si(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function Y(e,t,n,r){var i=Si(e);T&&(i[t]=e.getAttribute(t),t===`src`||t===`srcset`||t===`href`&&e.nodeName===yi)||i[t]!==(i[t]=n)&&(t===`loading`&&(e[pe]=n),n==null?e.removeAttribute(t):typeof n!=`string`&&wi(e).has(t)?e[t]=n:e.setAttribute(t,n))}function Si(e){return e[me]??={[_i]:e.nodeName.includes(`-`),[vi]:e.namespaceURI===i}}var Ci=new Map;function wi(e){var t=e.getAttribute(`is`)||e.nodeName,n=Ci.get(t);if(n)return n;Ci.set(t,n=new Set);for(var r,i=e,a=Element.prototype;a!==i;){for(var o in r=d(i),r)r[o].set&&o!==`innerHTML`&&o!==`textContent`&&o!==`innerText`&&n.add(o);i=m(i)}return n}function Ti(e,t,n=t){var r=new WeakSet;lt(e,`input`,async i=>{var a=i?e.defaultValue:e.value;if(a=Ei(e)?Di(a):a,n(a),A!==null&&r.add(A),await mr(),a!==(a=t())){var o=e.selectionStart,s=e.selectionEnd,c=e.value.length;if(e.value=a??``,s!==null){var l=e.value.length;o===s&&s===c&&l>c?(e.selectionStart=l,e.selectionEnd=l):(e.selectionStart=o,e.selectionEnd=Math.min(s,l))}}}),(T&&e.defaultValue!==e.value||V(t)==null&&e.value)&&(n(Ei(e)?Di(e.value):e.value),A!==null&&r.add(A)),On(()=>{var n=t();if(e===document.activeElement){var i=A;if(r.has(i))return}Ei(e)&&n===Di(e.value)||(e.type!==`date`||n||e.value)&&n!==e.value&&(e.value=n??``)})}function Ei(e){var t=e.type;return t===`number`||t===`range`}function Di(e){return e===``?null:+e}function Oi(e,t){return e===t||e?.[ue]===t}function ki(e=Ye(),t,n,r){var i=Ke.r,a=z;return Tn(()=>{var o,s;return On(()=>{o=s,s=r?.()||[],V(()=>{Oi(n(...s),e)||(t(e,...s),o&&Oi(n(...o),e)&&t(null,...o))})}),()=>{let r=a;for(;r!==i&&r.parent!==null&&r.parent.f&33554432;)r=r.parent;let o=()=>{s&&Oi(n(...s),e)&&t(null,...s)},c=r.teardown;r.teardown=()=>{o(),c?.()}}}),e}function Ai(e=!1){let t=Ke,n=t.l.u;if(!n)return;let r=()=>H(t.s);if(e){let e=0,n={},i=mt(()=>{let r=!1,i=t.s;for(let e in i)i[e]!==n[e]&&(n[e]=i[e],r=!0);return r&&e++,e});r=()=>B(i)}n.b.length&&Cn(()=>{ji(t,r),v(n.b)}),xn(()=>{let e=V(()=>n.m.map(_));return()=>{for(let t of e)typeof t==`function`&&t()}}),n.a.length&&xn(()=>{ji(t,r),v(n.a)})}function ji(e,t){if(e.l.s)for(let t of e.l.s)B(t);t()}function Mi(e,t,n){if(e==null)return t(void 0),n&&n(void 0),g;let r=V(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}var Ni=[];function Pi(e,t=g){let n=null,r=new Set;function i(t){if(Me(e,t)&&(e=t,n)){let t=!Ni.length;for(let t of r)t[1](),Ni.push(t,e);if(t){for(let e=0;e{r.delete(c),r.size===0&&n&&(n(),n=null)}}return{set:i,update:a,subscribe:o}}function Fi(e){let t;return Mi(e,e=>t=e)(),t}var Ii=!1,Li=Symbol(`unmounted`);function Ri(e,t,n){let r=n[t]??={store:null,source:j(void 0),unsubscribe:g};if(r.store!==e&&!(Li in n)){if(r.unsubscribe(),r.store=e??null,e==null)r.source.v=void 0,r.unsubscribe=g;else{var i=!0;r.unsubscribe=Mi(e,e=>{i?r.source.v=e:M(r.source,e)}),i=!1}}return e&&Li in n?Fi(e):B(r.source)}function zi(){let e={};function t(){bn(()=>{for(var t in e)e[t].unsubscribe();l(e,Li,{enumerable:!1,value:!0})})}return[e,t]}function Bi(e){var t=Ii;try{return Ii=!1,[e(),Ii]}finally{Ii=t}}function X(t,n,r,i){var a=!e||!!(r&2),o=!!(r&8),s=!!(r&16),c=i,l=!0,d=void 0,f=()=>s&&a?(d??=mt(i),B(d)):(l&&(l=!1,c=s?V(i):i),c);let p;if(o){var m=ue in t||fe in t;p=u(t,n)?.set??(m&&n in t?e=>t[n]=e:void 0)}var h,g=!1;o?[h,g]=Bi(()=>t[n]):h=t[n],h===void 0&&i!==void 0&&(h=f(),p&&(a&&Ve(n),p(h)));var _=a?()=>{var e=t[n];return e===void 0?f():(l=!0,e)}:()=>{var e=t[n];return e!==void 0&&(c=void 0),e===void 0?c:e};if(a&&!(r&4))return _;if(p){var v=t.$$legacy;return(function(e,t){return arguments.length>0?((!a||!t||v||g)&&p(t?_():e),e):_()})}var y=!1,b=(r&1?mt:k)(()=>(y=!1,_()));o&&B(b);var x=z;return(function(e,t){if(arguments.length>0){let n=t?B(b):a&&o?Qt(e):e;return M(b,n),y=!0,c!==void 0&&(c=n),e}return Wn&&y||x.f&16384?b.v:B(b)})}async function Vi(e,t,n){let r=await fetch(e,{method:`POST`,cache:`no-store`,headers:{"Content-Type":`application/json`,"X-Setup-Session-Key":n.sessionKey,...n.capability?{"X-Setup-Capability":n.capability}:{}},body:JSON.stringify(t)}),i=await r.json();if(!r.ok)throw Error(String(i.error??`The request was rejected.`));return i}function Hi(e){let t=Pi({paired:!!e,controller:!1,busy:!1,error:``}),n=e,r,i={paired:!!e,controller:!1,busy:!1,error:``},a=!1;function o(e){i={...i,...e},t.set(i)}async function s(e=!1){if(!(a||!n||i.closed)){a=!0;try{let t=await fetch(`/api/state`,{cache:`no-store`,headers:{"X-Setup-Session-Key":n}});if(!t.ok)throw Error(`The local setup session is unavailable.`);let r=await t.json();i.closed||o({view:r,...e?{}:{error:``}})}catch{i.closed||o({view:void 0,error:`Connection lost. The CLI may have stopped. Check the terminal before trying again.`})}finally{a=!1}}}let c=()=>s(!0);async function l(){if(n&&!i.closed)try{let e=await fetch(`/api/bootstrap`,{cache:`no-store`,headers:{"X-Setup-Session-Key":n}});if(!e.ok)throw Error(`Could not join this local session.`);let t=await e.json();r=t.capability,o({controller:t.controller,error:``}),await s()}catch{n=void 0,r=void 0,o({view:void 0,paired:!1,controller:!1,error:`Could not connect to the local setup session. Check the terminal and pair again.`})}}async function u(e){if(!(i.busy||i.paired)){o({busy:!0,error:``});try{let t=await fetch(`/api/pair`,{method:`POST`,cache:`no-store`,headers:{"Content-Type":`application/json`},body:JSON.stringify({code:e.trim().toLowerCase()})}),r=await t.json();if(!t.ok)throw Error(String(r.error??`Pairing was rejected.`));if(typeof r.sessionKey!=`string`||!/^[a-f0-9]{64}$/.test(r.sessionKey))throw Error(`Invalid local pairing response.`);n=r.sessionKey,o({paired:!0,error:``}),await l()}catch(e){o({error:e instanceof Error?e.message:`Could not pair this browser.`})}finally{o({busy:!1})}}}let d=(e,t,i=!0)=>Vi(e,t,{sessionKey:n,capability:i?r:void 0});async function f(e,t){let n=e instanceof Error?e.message:t;o({error:n}),/read-only|Control moved/.test(n)?await l():await s(!0)}async function p(e,t){if(!i.busy&&i.controller&&i.view?.promptRevision===e){o({busy:!0,error:``});try{await d(`/api/answer`,{revision:e,value:t}),await s()}catch(e){await f(e,`Could not submit this answer.`)}finally{o({busy:!1})}}}async function m(e){if(!i.busy&&i.controller&&i.view?.promptRevision===e){o({busy:!0,error:``});try{await d(`/api/retry-discovery`,{revision:e}),await s()}catch(e){await f(e,`Could not retry discovery.`)}finally{o({busy:!1})}}}async function h(e){if(!i.busy&&i.controller&&i.view?.promptRevision===e){o({busy:!0,error:``});try{await d(`/api/back`,{revision:e}),await s()}catch(e){await f(e,`Could not return to the previous question.`)}finally{o({busy:!1})}}}async function g(){if(i.controller&&!i.busy){o({busy:!0,error:``});try{await d(`/api/cancel`,{}),await s()}catch(e){let t=e instanceof Error?e.message:`Cancellation failed.`;o({error:t}),/read-only|Control moved/.test(t)&&await l()}finally{o({busy:!1})}}}async function _(e){if(!(i.busy||i.closed||!i.paired||i.controller)){o({busy:!0,error:``});try{let t=await d(`/api/takeover`,{code:e.trim().toLowerCase()},!1);r=String(t.capability),o({controller:!0,error:``}),await s()}catch(e){o({error:e instanceof Error?e.message:`Takeover failed.`}),await s(!0)}finally{o({busy:!1})}}}async function v(){if(!i.busy&&!i.closed&&i.controller&&i.view?.outcome){o({busy:!0,error:``});try{if((await d(`/api/close`,{})).closed!==!0)throw Error(`Could not close the local session. Check the terminal before trying again.`);n=void 0,r=void 0,o({closed:!0,controller:!1,error:``})}catch{o({error:`Could not close the local session. Check the terminal before trying again.`})}finally{o({busy:!1})}}}async function y(){if(!(i.busy||i.closed||!i.controller||i.view?.outcome!==`complete`)){o({busy:!0,error:``,view:{...i.view,doctor:{status:`running`}}});try{await d(`/api/doctor`,{})}catch(e){o({error:e instanceof Error?e.message:`Read-only verification failed.`})}finally{await s(!0),o({busy:!1})}}}return{subscribe:t.subscribe,pair:u,connect:l,refresh:s,poll:c,submit:p,retryDiscovery:m,back:h,cancel:g,takeOver:_,close:v,runDoctor:y}}var Ui={batchNextActions:`Next steps`,batchStatusReady:`Ready for review`,batchStatusBlocked:`Needs action`,batchStatusApplying:`Applying reviewed plan`,batchStatusPartial:`Partially applied; inspect before retry`,batchStatusWaiting:`PR created · waiting for human merge`,batchStatusPending:`Configuration applied · verification pending`,batchStatusUnchanged:`Already matches · unchanged`,batchStatusCancelled:`Pending work stopped; completed effects retained`,batchConfigurationPreview:`Configuration preview. This adds the configuration to your batch review. No permission probe or installation runs before you approve the complete batch.`,batchUseConfiguration:`Use this configuration`,planReuseBody:`Approve the listed temporary permission checks, then apply the reviewed setup. Existing Secret values are retained and will not be requested or replaced. Runtime capability verification can remain pending.`,organizationReuseTitle:`Reusing existing configuration`,organizationReuseBody:`{imported} compatible settings imported. Retain {shared} organization Variables and {overrides} repository overrides; write {writes} repository Variables. Shared values and existing Secret values stay unchanged.`,batchBranchReview:`Installation branch and reviewed base`,batchFocusTitle:`Selected repositories`,batchFocusBody:`{count} explicitly selected repositories in this organization. Review each target independently.`,batchReviewTitle:`Review setup plans`,batchProgressTitle:`Applying repository plans`,batchResultTitle:`Repository setup results`,batchProgressBody:`Applying the approved plans sequentially. Stop pauses pending work after the current request; completed changes and PRs remain.`,batchReviewBody:`Approve only the ready plans below. Setup proceeds sequentially, adds reviewed access without replacing shared values, and creates a PR for each changed repository. It does not merge, tag, release or deploy.`,batchResultBody:`A setup PR still needs human review and merge. Credential and runtime capability verification can remain pending. Completed PRs and access changes are kept if another target stops.`,batchStopping:`Stopping pending work after the current request. Completed changes will be retained.`,batchReasonDrift:`The reviewed base or ownership changed. Inspect the repository and review a fresh plan.`,batchReasonProvider:`GitHub did not confirm the last step. Retry inspects existing effects before continuing.`,batchCleanupPending:`Permission-check cleanup could not be confirmed. Pending work is stopped. Inspect GitHub history and the local recovery journal; resolve cleanup before starting a fresh setup. This operation cannot resume writes.`,batchReasonCancelled:`Pending work stopped. Completed changes were retained.`,batchReasonPreflight:`Review repository access, required bindings and target-specific settings before continuing.`,batchOpenPull:`Open setup PR`,batchFilesCount:`{count} changed files`,batchVariablesCount:`{count} repository Variable changes`,batchGrantsCount:`{count} additive repository access grants`,batchRetainedSecrets:`Existing Secret bindings retained`,batchResourcesExplanation:`Labels and enabled Issue Types are ensured separately for this target. Existing shared Secret values and other repositories’ access stay unchanged.`,batchReviewFiles:`Inspect proposed files`,batchDeleteFile:`This setup-managed file will be removed from the installation tree; inspect its retained backup.`,batchRepositoryOverrides:`Review repository Variable names`,batchReviewedAccess:`Review additive access`,batchApplyPlans:`Apply ready plans`,batchLeavePreview:`Leave without applying`,batchStopPending:`Stop pending work`,batchStopConfirm:`Stop pending setup work after the current request? Completed PRs, access and other changes will be kept.`,batchRetryPending:`Inspect and retry unfinished work`,batchFinish:`Finish this operation`,batchCleanup:`Delete temporary setup PATs in GitHub after this operation. Keep the bot PAT while repositories still consume its Secret.`,batchTechnical:`Operation details`,batchLookupUnavailable:`GitHub could not confirm that repository. Check its exact name and PAT access.`,batchSelectionInvalid:`Review the selection: choose 1–25 available repositories from this organization.`,batchAccessUnavailable:`Access is unconfirmed. Review the temporary PAT or remove this repository from the selection.`,batchSelectionBody:`Choose 1–25 repositories in {organization}. Only the repositories you select will be configured.`,batchDiscoveryUnavailable:`GitHub could not list repositories. The current repository remains available; find another by its exact name or review PAT access.`,batchDiscoveryTruncated:`This view reached its 1,000-repository limit. Search an exact repository name to add a missing target.`,batchFilter:`Filter visible repositories`,batchSelectedCount:`{count} selected · maximum 25`,batchRepositories:`Repositories`,batchPrivate:`Private`,batchPublic:`Public`,batchCurrent:`Current repository`,batchArchived:`Archived`,batchDisabled:`Disabled`,batchReadOnly:`Write access unavailable`,batchNoMatches:`No visible repositories match this filter.`,batchPrevious:`Previous`,batchNext:`Next`,batchMissingRepository:`Cannot find a repository?`,batchAccessExplanation:`Discovery shows only repositories this PAT can see. An exact-name lookup does not grant access or select the repository automatically. If you replace the temporary PAT, limit it to the repositories you intend to configure.`,batchExactName:`Exact repository name in this organization`,batchFindRepository:`Find repository`,batchChangeAccess:`Change temporary PAT access`,batchReviewSelection:`Review selected repositories`,patStorageRetain:`Keep the existing PAT Secret binding in {destination}. Its value is not requested, copied or replaced. A missing binding requires separate provisioning. Runtime identity and capability verification remain pending.`,patStorageTitle:`Bot PAT storage`,patRepositoryReplace:`Secret PAT already exists in repository {destination}. It will be replaced even when other existing Secrets are preserved.`,patOrganizationReplace:`Secret PAT already exists in organization {destination}. It will be replaced even when other existing Secrets are preserved.`,patRepositoryCreate:`The bot PAT will be stored as Secret PAT in repository {destination}.`,patOrganizationCreate:`The bot PAT will be stored as Secret PAT in organization {destination}.`,patReplacementChecks:`The supplied bot PAT must pass identity, repository access and required permission checks before this Secret is written.`,patOrganizationImpact:`Replacing this organization Secret can affect other repositories that use it. Checks for this repository do not verify their requirements.`,repositorySecretSettings:`Open repository Actions Secrets`,botAccountWarning:`You must open this link with the selected bot account: @{account}.`,botAccountHelp:`Check the GitHub account before generating the PAT. Use a private window or switch accounts if your browser is signed in as the setup operator.`,botGithubForm:`Create bot PAT as @{account}`,language:`Language`,english:`English`,spanish:`Español`,setup:`SETUP`,connecting:`Connecting…`,localSession:`LOCAL SESSION`,progress:`Setup progress`,studio:`SETUP STUDIO`,journey:`YOUR SETUP JOURNEY`,repository:`Repository`,choices:`Setup choices`,setupPat:`Setup PAT`,plan:`Plan`,botPat:`Bot PAT & credentials`,apply:`Apply`,localDesign:`Local by design`,localDesignBody:`This page runs on your computer. GitHub creates both PATs in its own browser tabs.`,preparing:`Preparing your setup…`,completeTitle:`Setup complete.`,previewTitle:`Preview complete.`,cancelledTitle:`Setup cancelled.`,blockedTitle:`Setup needs attention.`,gettingReady:`GETTING READY`,activeLede:`One decision at a time. Your choices shape the permissions, plan and credentials needed for this repository.`,resultLede:`Review the result and next action below. The terminal has additional technical detail.`,readOnly:`Read-only tab`,readOnlyBody:`Another tab controls this session. You can review progress here or explicitly take over.`,takeOver:`Take control in this tab`,attention:`Needs attention`,checked:`Checked`,pleaseNote:`Please note`,progressUpdate:`Progress update`,reviewPass:`Reviewing saved choices — pass {pass}. This is the same setup run, not a restart.`,cancelSetup:`Cancel setup`,cancelConfirm:`Cancel this local setup session? PATs already created in GitHub will still exist.`,footerLocal:`LOCALHOST ONLY`,footerCloud:`NO CLOUD SETUP ACCOUNT`,footerGithub:`GITHUB OWNS PAT ISSUANCE`,currentDecision:`CURRENT DECISION`,session:`SESSION`,continue:`Continue`,previousQuestion:`Previous question`,questionProgress:`Question {current} of {total} in this group · {overall} of {all} overall`,yes:`Yes`,no:`No`,permissionPreview:`PERMISSION PREVIEW`,changeAnswersTitle:`Change your answers`,changeAnswersHelp:`Return to a section without losing other answers. The plan and required PAT grants will be checked again.`,changeSection:`Change {section}`,editCapabilities:`Capabilities`,editRuntimes:`Agent runtimes`,editModels:`Agent models`,editRoleModels:`Per-role models`,editRepository:`Repository behavior`,editDeployment:`Release and hotfix`,editBugbot:`Bugbot`,editApproval:`PR approval`,editProjects:`Projects`,editProvisioning:`Provisioning`,editStorage:`Secrets and Variables`,suggested:`Suggested answer: {answer}. You can review choices again before creating your setup PAT.`,none:`none`,sourceGithub:`Observed from authenticated GitHub repository metadata.`,sourceConfig:`Provided by your configuration; GitHub has not replaced it.`,sourceDefault:`Product default; not verified against this repository.`,sourceLocal:`Observed in this local checkout; confirm this branch exists on GitHub before applying.`,whyMatters:`Why this matters`,whenApplies:`When it applies`,whereConfigured:`Where it is configured`,howToChoose:`How to choose`,whyRecommendation:`Why this matters`,example:`Example`,effect:`What changes`,verify:`How to check`,learnMore:`Read documentation about this setting`,resultApplied:`Your configuration was applied`,resultNoChanges:`No changes were made`,resultStopped:`No setup changes started`,resultPartial:`Check partial changes before retrying`,resultCompleteBody:`The temporary setup PAT is not revoked automatically. Delete it in GitHub after confirming your setup. Keep the bot PAT until you rotate the installed Secret.`,resultPartialBody:`A bot Secret write or another change may have succeeded. Inspect GitHub and run copilot doctor --read-only before replacing or deleting its PAT.`,resultNoChangesBody:`Copilot did not begin applying setup changes. Temporary permission checks may have run; GitHub can retain Actions, Issue or PR history after cleanup. PATs you created still exist until you delete them in GitHub.`,whatHappened:`What happened`,alreadyChanged:`Already changed`,noChanges:`No repository or GitHub setup changes were started in this session.`,nextAction:`Next action`,reasonPermissions:`The setup PAT lacked or could not confirm required permissions.`,nextPermissions:`Check the displayed grants, correct the PAT in GitHub, then start a fresh setup run.`,reasonWorkflowPermissions:`The bot PAT did not complete every required permission check. Check the failed grant and any preparation or cleanup prerequisite below.`,permissionReportTitle:`PAT permission evidence`,permissionReportLead:`Any required grants that could not be confirmed are listed below. Unverifiable does not mean missing.`,updatedSetupPatTitle:`Correct the setup PAT`,updatedSetupPatBody:`This GitHub link includes the required permissions for this setup run. Select this repository before creating the PAT. Close this local session, then start a fresh setup run with the corrected PAT.`,updatedSetupPatGrants:`Additional permissions discovered after inspection`,updatedSetupPatLink:`Create corrected setup PAT`,permissionProbeCleanupPending:`A temporary permission-test resource may still exist. Setup has stopped; do not assume cleanup succeeded.`,permissionProbeCleanupAction:`Retry with a PAT that can remove this resource. The local recovery journal is checked before any new permission tests.`,permissionSecretCollision:`GitHub reported that a Secret at the random test name was updated. A concurrent Secret value may have changed. Setup stopped without deleting it.`,permissionSecretCollisionAction:`Inspect the GitHub Secret audit trail and restore any affected value before retrying. This collision cannot be repaired from the local recovery journal.`,permissionIdentity:`GitHub identity and repository access`,permissionIdentityValid:`Verified`,permissionIdentityInvalid:`Rejected`,permissionIdentityUnknown:`Could not be confirmed`,permissionGrantNotChecked:`Not checked`,permissionReportNoFailedGrant:`No required grant failed this check. Review the intended PAT account and the terminal error before retrying.`,reasonStorage:`The selected GitHub Actions storage could not be used safely.`,nextStorage:`Inspect the Variables/Secrets scope and existing resources, then retry.`,reasonConfiguration:`The chosen configuration could not be validated.`,nextConfiguration:`Review the terminal validation details, correct the choices, and retry.`,reasonExpired:`The local setup session expired.`,nextExpired:`Start a new setup session; the old approval cannot be replayed.`,reasonCancelled:`This setup was cancelled.`,nextCancelled:`Start a new run if you still want to configure this repository.`,reasonUnknown:`Setup stopped. The browser could not determine the exact cause. Review the resource receipt when available and inspect the terminal.`,nextUnknown:`Check the final terminal error before retrying; do not assume a PAT was revoked.`,reasonProvider:`GitHub or another provider did not complete the requested operation.`,nextProvider:`Use the diagnostic reference to inspect the terminal result, check provider availability and access, then retry only after reviewing possible partial changes.`,reasonRateLimit:`GitHub temporarily limited the requests needed for setup.`,nextRateLimit:`Wait for the limit to reset. Inspect any completed changes before starting another setup run.`,diagnosticReference:`Diagnostic reference`,resourceReceipt:`Setup operation receipt`,effectCompleted:`Reported completed`,effectSkipped:`Reported skipped`,effectInspect:`Outcome needs inspection`,effectNotStarted:`Not started`,effectInProgress:`In progress; outcome not yet confirmed`,scopeLocal:`Local checkout`,scopeMixed:`Repository and organization`,receiptFiles:`Setup files`,receiptSecrets:`GitHub Actions Secrets`,receiptLabels:`Issue labels`,receiptIssueTypes:`Issue types`,receiptVariables:`GitHub Actions Variables`,receiptInitialTag:`Initial version tag`,inspectPartial:`Some setup changes may already be active. Inspect GitHub and the terminal result before retrying.`,patSettings:`Open GitHub PAT settings ↗`,closeSession:`Close local session`,sessionClosed:`Local session closed`,sessionClosedBody:`The local server accepted the close request. This page has stopped contacting it and retains the result. Closing the session does not revoke any PAT created in GitHub.`,doctorHelp:`After success, you can verify installed resources here without dispatching Actions. Or run copilot doctor --read-only from the repository root with the temporary setup PAT and the same non-secret --config file, if used.`,doctorRun:`Verify installed setup (read-only)`,doctorRunning:`Checking installed resources without dispatching Actions…`,doctorPassed:`Read-only verification found no failing checks.`,doctorWarnings:`Read-only verification needs attention.`,doctorFailed:`Read-only verification did not finish. Check the terminal or run the command below.`,doctorCounts:`{pass} passed · {warn} warnings · {fail} failed · {skipped} skipped.`,doctorSecretLimit:`Secret values cannot be verified in this mode.`,botRenewal:`The bot PAT stays in the selected GitHub Actions Secret for future runs. Its actual expiry is not verified here; record it in GitHub and rotate the Secret before expiry.`,working:`Working on the next step`,workingBody:`The local process is checking your answers and preparing the next decision. Keep this page open.`,repoFocus:`Repository in focus`,repoFocusBody:`This setup configures the repository below. Organization Secrets and Variables may be shared with other repositories.`,access:`access`,readOnlyCheck:`Capability check`,provisionalGrants:`Provisional least-privilege grants`,conditionalGrants:`Conditional grants depend on the choices and GitHub facts. A final audit runs before setup changes.`,permissionEvidenceVerified:`A GitHub read confirmed this access.`,permissionEvidenceVerifiedWrite:`A temporary resource was created, read, and removed.`,permissionEvidencePrivateProject:`A non-public organization Project confirmed Projects read access.`,permissionEvidenceMissing:`GitHub rejected the required access. Check the PAT settings.`,permissionEvidenceWrite:`The temporary write check did not finish successfully. Review the failed phase and retry.`,permissionEvidencePublic:`The read succeeded, but this public resource does not independently prove the PAT grant.`,permissionEvidencePublicProjects:`The Projects read succeeded, including an empty result. Private Project access is checked when a Project is selected.`,permissionEvidenceUnknownRead:`The read check was inconclusive. Review the terminal detail and retry if needed.`,permissionUnknown:`This permission needs review. Check its exact grant and technical explanation in the terminal before continuing.`,permissionsFollow:`Permissions follow your choices`,permissionsFollowBody:`We’ll show the exact grants before you create each PAT. Nothing is created just by opening this page.`,files:`Files`,workflows:`Workflows`,variables:`Variables`,secretNames:`Secret names`,planBody:`Review exactly what this run may change. Approval first runs temporary PAT write checks, then collects the bot PAT and other credentials. GitHub may retain workflow runs, Issue or PR history, or notifications from those checks.`,planPermissionProbeTitle:`Temporary permission checks after approval`,planPermissionProbeBody:`Each listed permission creates, reads and removes its own temporary resource. The Issues check creates a visible Issue; if GitHub denies deletion, setup closes it, reports its number and stops. Actions, Issues and Pull requests may leave history or notifications.`,planActionsProbePrerequisites:`The Actions check needs Contents Write to create its isolated branch. If the exact packaged health workflow is unavailable on the default branch, it also needs Workflows Write to prepare a disabled-job override. For the bot check, the setup PAT prepares and cleans the fixture; the bot PAT dispatches and reads its run. A blocked prerequisite does not prove Actions is missing.`,planSecretProbeLimit:`GitHub only offers an upsert for Secrets. The check uses a private random name and confirms it is absent first, but GitHub cannot guarantee atomic create-only behavior. If it reports an update, setup stops and asks you to inspect the Secret audit trail.`,planChoices:`Your key decisions`,planEnabledCapabilities:`Enabled capabilities`,planBranchRoles:`Production / development branch`,planApprovalMode:`Pull-request approval`,planVariableScope:`Variables scope`,planSecretScope:`Secrets scope`,planInitialTag:`Create initial tag`,planAgentRouting:`Agent and model for each task`,planIssueWorkflows:`Issue workflows`,planTrustedChecks:`Trusted CI producers`,planCoverage:`Coverage evidence`,planProjectStatuses:`Project Status transitions`,planIssueResources:`Issue labels and issue types`,planIssueResourcesValue:`Checked or provisioned during Apply`,planProducerAttested:`CI identity and enforcing step verified by you`,planCoverageThreshold:`Minimum changed-line coverage`,planCoverageReporter:`Artifact-publishing workflow`,planReporterAttested:`Coverage reporter verified by you`,planAdvancedDefaults:`The plan also includes defaults for settings you did not change. Use Change below to inspect any section before approving.`,planUnknownWarning:`An additional plan warning could not be displayed here. Read the terminal warning before approving.`,planBasicDefaultsIntro:`Basic setup retained these advanced defaults. Open a section below to review or change them:`,scopeRepository:`Repository`,scopeOrganization:`Organization`,scopeDisabled:`Not provisioned`,approvalOff:`Off`,approvalRecommend:`Recommendation only`,approvalGuarded:`Guarded approval`,beforeContinue:`Before you continue`,stopHere:`Stop here`,approvePlan:`Approve this plan`,githubLink:`Open GitHub link ↗`,githubForm:`Open the official GitHub PAT form`,githubFormHelp:`Check the signed-in account, select Only select repositories, then select this repository. GitHub handles 2FA and creates the PAT.`,pasteHere:`Paste the value here`,yourAnswer:`Your answer`,hiddenAfter:`Hidden after submission`,typeAnswer:`Type your answer`,secretHelp:`Sent only to this local process. It will not be shown again or saved in browser storage.`,pairTitle:`Pair this browser`,pairLabel:`Pairing code from terminal`,pairPlaceholder:`16 hexadecimal characters`,pairBody:`Find the 16-character pairing code in the terminal that started copilot setup --web. Enter it here to view or control this setup. The code is never placed in the browser URL or stored after this page closes.`,pairHelp:`Keep the code private. After refreshing this page, enter it again to reconnect.`,pairButton:`Connect to local setup`,privateSession:`PRIVATE LOCAL SESSION`,theme:`Color theme`,themeAuto:`Auto`,themeSystem:`Follow system theme`,themeLight:`Light theme`,themeDark:`Dark theme`,selectOne:`Select one`,ciRun:`Open CI run on GitHub ↗`,manualCheck:`Check not listed? Enter exact name|App ID|workflow, separated by semicolons.`,checksObserved:`Recent CI jobs were found. Open each run and verify the exact job, App and enforcing coverage step before trusting it.`,checksNoRecent:`No recent pull-request workflow runs were found. Run your normal CI on a real pull request, or enter an exact producer manually.`,checksNoVerifiable:`Recent runs exist, but no job could be linked to an exact Check Run and App identity. Inspect GitHub or enter an exact producer manually.`,checksDenied:`GitHub did not allow CI discovery. Give the setup PAT Actions: read and Checks: read, or enter an exact producer manually.`,checksUnavailable:`GitHub CI discovery could not complete. This is not evidence that the repository has no checks. Retry setup or enter an exact producer manually.`,projectsObserved:`These existing Projects belong to the repository owner. Select only Projects this automation should update.`,projectsEmpty:`This bounded GitHub query returned no open, accessible organization Projects; it does not prove none exist. Check access or enter a verified Project number.`,projectsDenied:`GitHub did not allow Project discovery. Check organization Projects: read on the setup PAT, or enter Project numbers manually.`,projectsUnavailable:`GitHub Project discovery could not complete. This is not evidence that no Projects exist. Enter a verified Project number manually or retry.`,projectsUnsupported:`GitHub does not support listing personal Projects with a fine-grained PAT through this endpoint. Enter an existing Project number from its URL.`,discoveryTruncated:`Only a bounded sample of accessible Projects or recent checks was inspected. Use manual entry for an item not shown.`,checksDiscoveryScope:`Search scope: select up to 20 PR runs from the latest 1,000 workflow runs (up to 10 pages) within 90 days; at most 15 runs and 100 checks per commit are inspected.`,projectsDiscoveryScope:`Search scope: at most 30 open, accessible organization Projects from two pages; up to 100 fields are inspected per Project. Closed Projects are excluded.`,retryDiscovery:`Retry GitHub discovery`,retryRemaining:`{count} read-only retries left. Your answers stay here.`,retryExhausted:`No discovery retries remain. Inspect GitHub and use the manual option if the item is missing.`,observationTimeUnknown:`observation time unavailable`,branchRequirementUnknown:`Required by branch rule: not checked`,branchRequirementObserved:`Required on {branch} by an active ruleset for this exact check and App.`,ciRule:`Open required-check ruleset ↗`,projectSharedStatus:`All selected Projects must share each chosen Status value. This setup cannot assign a different Status vocabulary per Project.`,fixedWorkflowEnabled:`Your configuration fixes features.{kind}=true. Keep {kind} selected; edit --config or flags to change this.`,fixedWorkflowDisabled:`Your configuration fixes features.{kind}=false. Leave {kind} unselected; edit --config or flags to change this.`,fixedIssuesRequired:`Your configuration explicitly enables release or hotfix automation. Keep Issues enabled, or change --config or flags first.`,projectSelectionNotObserved:`Previously selected Project numbers are retained, but no longer appear in this GitHub result. Verify each in GitHub or remove it.`,removeSelection:`Remove selection`,projectTransitionIssueCreated:`New issue`,projectTransitionPullRequestCreated:`New pull request`,projectTransitionIssueInProgress:`Issue in progress`,projectTransitionPullRequestInProgress:`Pull request in progress`,projectUrl:`Open Project on GitHub ↗`,projectManual:`Project not listed? Enter its positive number or exact GitHub URL. PVT_ IDs are not accepted.`,projectStatusUnavailable:`Status options could not be verified for every selected Project. Enter the exact existing Status value after checking each Project in GitHub.`,projectStatusIncompatible:`Selected Projects have no shared Status values. Choose compatible Projects before continuing.`,producerName:`Check/job name`,producerAppId:`Source GitHub App ID`,producerWorkflow:`Workflow name`,producerAdd:`Add exact check`,producerRemove:`Remove check`,producerManualHelp:`Use the exact identity shown on GitHub. Adding it does not attest that it enforces coverage.`,producerManualInvalid:`Enter a check name, positive numeric App ID and workflow name. Do not use | or ; in names. Commas are allowed.`,translationPreviewTitle:`Translation review in progress`,translationPreviewBody:`First-party setup questions are translated. Some dynamic GitHub or provider diagnostics may still appear in English while localization review finishes. Changing language does not change your answers.`,unknownLocalError:`An unexpected local setup error occurred. Check the terminal for details, then refresh or restart setup.`},Wi={batchNextActions:`Siguientes pasos`,batchStatusReady:`Listo para revisar`,batchStatusBlocked:`Requiere una acción`,batchStatusApplying:`Aplicando el plan revisado`,batchStatusPartial:`Aplicado parcialmente; revisa antes de reintentar`,batchStatusWaiting:`PR creada · pendiente de merge por un mantenedor`,batchStatusPending:`Configuración aplicada · verificación pendiente`,batchStatusUnchanged:`Ya coincide · sin cambios`,batchStatusCancelled:`Trabajo pendiente detenido; se conservan los cambios completados`,batchConfigurationPreview:`Vista previa de la configuración. Se añadirá a la revisión del lote. Las pruebas de permisos y la instalación esperan a que apruebes el lote completo.`,batchUseConfiguration:`Usar esta configuración`,planReuseBody:`Aprueba las pruebas temporales de permisos indicadas y después se aplicará el setup revisado. Los valores de los Secrets existentes se conservan y no se solicitan ni se sustituyen. La verificación de permisos en ejecución puede quedar pendiente.`,organizationReuseTitle:`Reutilización de la configuración existente`,organizationReuseBody:`{imported} ajustes compatibles importados. Se conservan {shared} Variables de organización y {overrides} del repositorio; se escriben {writes} Variables en el repositorio. Los valores compartidos y los Secrets existentes se conservan.`,batchBranchReview:`Rama de instalación y base revisada`,batchFocusTitle:`Repositorios seleccionados`,batchFocusBody:`{count} repositorios seleccionados explícitamente en esta organización. Revisa cada destino por separado.`,batchReviewTitle:`Revisa los planes de setup`,batchProgressTitle:`Aplicando los planes por repositorio`,batchResultTitle:`Resultados del setup por repositorio`,batchProgressBody:`Se aplican los planes aprobados por orden. Detener pausa el trabajo pendiente después de la petición actual; los cambios y las PRs completadas se conservan.`,batchReviewBody:`Aprueba solo los planes listos que aparecen abajo. El setup avanza por orden, añade el acceso revisado sin sustituir valores compartidos y crea una PR por cada repositorio con cambios. No hace merge, crea tags, publica versiones ni despliega.`,batchResultBody:`Una PR de setup todavía necesita revisión y merge por un mantenedor. La verificación de credenciales y permisos en ejecución puede quedar pendiente. Las PRs y los accesos completados se conservan si otro destino se detiene.`,batchStopping:`Deteniendo el trabajo pendiente tras la petición actual. Los cambios completados se conservarán.`,batchReasonDrift:`La base revisada o su titularidad han cambiado. Inspecciona el repositorio y revisa un plan nuevo.`,batchReasonProvider:`GitHub no ha confirmado el último paso. El reintento inspecciona lo existente antes de continuar.`,batchCleanupPending:`No se pudo confirmar la limpieza de la comprobación de permisos. El trabajo pendiente está detenido. Revisa el historial de GitHub y el registro local de recuperación; resuelve la limpieza antes de iniciar un setup nuevo. Esta operación no puede reanudar escrituras.`,batchReasonCancelled:`El trabajo pendiente se detuvo. Se conservaron los cambios completados.`,batchReasonPreflight:`Revisa el acceso, los secretos requeridos y los ajustes específicos del repositorio antes de continuar.`,batchOpenPull:`Abrir PR de setup`,batchFilesCount:`{count} archivos con cambios`,batchVariablesCount:`{count} cambios en Variables del repositorio`,batchGrantsCount:`{count} accesos que se añadirán para este repositorio`,batchRetainedSecrets:`Secrets existentes que se conservan`,batchResourcesExplanation:`Los labels y los Issue Types habilitados se preparan por separado para este destino. Se conservan los valores de los Secrets compartidos y el acceso de los demás repositorios.`,batchReviewFiles:`Inspeccionar archivos propuestos`,batchDeleteFile:`Este archivo gestionado por el setup se retirará del árbol de instalación; inspecciona la copia conservada.`,batchRepositoryOverrides:`Revisar nombres de Variables del repositorio`,batchReviewedAccess:`Revisar accesos que se añadirán`,batchApplyPlans:`Aplicar planes listos`,batchLeavePreview:`Salir sin aplicar`,batchStopPending:`Detener trabajo pendiente`,batchStopConfirm:`¿Detener el trabajo pendiente tras la petición actual? Se conservarán las PRs, los accesos y los cambios completados.`,batchRetryPending:`Inspeccionar y reintentar lo pendiente`,batchFinish:`Finalizar esta operación`,batchCleanup:`Elimina los PATs temporales de setup en GitHub al terminar. Conserva el PAT del bot mientras los repositorios consuman su Secret.`,batchTechnical:`Detalles de la operación`,batchLookupUnavailable:`GitHub no ha podido confirmar ese repositorio. Revisa el nombre exacto y el acceso del PAT.`,batchSelectionInvalid:`Revisa la selección: elige entre 1 y 25 repositorios disponibles de esta organización.`,batchAccessUnavailable:`El acceso no está confirmado. Revisa el PAT temporal o quita este repositorio de la selección.`,batchSelectionBody:`Elige entre 1 y 25 repositorios de {organization}. Solo se configurarán los que selecciones.`,batchDiscoveryUnavailable:`GitHub no ha podido listar los repositorios. Puedes seleccionar el actual, buscar otro por su nombre exacto o revisar el acceso del PAT.`,batchDiscoveryTruncated:`Esta vista ha alcanzado el límite de 1.000 repositorios. Busca por nombre exacto para añadir uno que falte.`,batchFilter:`Filtrar repositorios visibles`,batchSelectedCount:`{count} seleccionados · máximo 25`,batchRepositories:`Repositorios`,batchPrivate:`Privado`,batchPublic:`Público`,batchCurrent:`Repositorio actual`,batchArchived:`Archivado`,batchDisabled:`Deshabilitado`,batchReadOnly:`Sin acceso de escritura`,batchNoMatches:`Ningún repositorio visible coincide con el filtro.`,batchPrevious:`Anterior`,batchNext:`Siguiente`,batchMissingRepository:`¿No encuentras un repositorio?`,batchAccessExplanation:`La lista solo muestra los repositorios visibles para este PAT. Buscar por nombre exacto no concede acceso ni selecciona el repositorio automáticamente. Si sustituyes el PAT temporal, limítalo a los repositorios que quieras configurar.`,batchExactName:`Nombre exacto del repositorio en esta organización`,batchFindRepository:`Buscar repositorio`,batchChangeAccess:`Cambiar acceso del PAT temporal`,batchReviewSelection:`Revisar repositorios seleccionados`,patStorageRetain:`Se conserva el Secret PAT existente en {destination}. No se pide, copia ni sustituye su valor. Si falta, debe crearse por separado. La verificación de la identidad y los permisos en ejecución queda pendiente.`,patStorageTitle:`Almacenamiento del PAT del bot`,patRepositoryReplace:`El Secret PAT ya existe en el repositorio {destination}. Se sustituirá aunque hayas elegido preservar los demás Secrets existentes.`,patOrganizationReplace:`El Secret PAT ya existe en la organización {destination}. Se sustituirá aunque hayas elegido preservar los demás Secrets existentes.`,patRepositoryCreate:`El PAT del bot se guardará como Secret PAT en el repositorio {destination}.`,patOrganizationCreate:`El PAT del bot se guardará como Secret PAT en la organización {destination}.`,patReplacementChecks:`El PAT del bot que introduzcas debe superar las comprobaciones de identidad, acceso al repositorio y permisos necesarios antes de escribir este Secret.`,patOrganizationImpact:`Sustituir este Secret de organización puede afectar a otros repositorios que lo utilizan. Las comprobaciones para este repositorio no verifican los requisitos de los demás.`,repositorySecretSettings:`Abrir los Secrets de Actions del repositorio`,botAccountWarning:`Debes abrir este enlace con la cuenta de bot seleccionada: @{account}.`,botAccountHelp:`Comprueba la cuenta de GitHub antes de generar el PAT. Usa una ventana privada o cambia de cuenta si el navegador tiene la sesión del operador del setup.`,botGithubForm:`Crear PAT del bot como @{account}`,language:`Idioma`,english:`English`,spanish:`Español`,setup:`CONFIGURACIÓN`,connecting:`Conectando…`,localSession:`SESIÓN LOCAL`,progress:`Progreso de la configuración`,studio:`ASISTENTE DE CONFIGURACIÓN`,journey:`TU RECORRIDO`,repository:`Repositorio`,choices:`Opciones de configuración`,setupPat:`PAT de configuración`,plan:`Plan`,botPat:`PAT del bot y credenciales`,apply:`Aplicar`,localDesign:`Local por diseño`,localDesignBody:`Esta página se ejecuta en tu ordenador. GitHub crea ambos PAT en sus propias pestañas.`,preparing:`Preparando la configuración…`,completeTitle:`Configuración completada.`,previewTitle:`Vista previa completada.`,cancelledTitle:`Configuración cancelada.`,blockedTitle:`La configuración necesita atención.`,gettingReady:`PREPARANDO`,activeLede:`Una decisión cada vez. Tus elecciones determinan los permisos, el plan y las credenciales que necesita este repositorio.`,resultLede:`Revisa abajo el resultado y el siguiente paso. La terminal contiene más detalles técnicos.`,readOnly:`Pestaña de solo lectura`,readOnlyBody:`Otra pestaña controla esta sesión. Puedes ver el progreso aquí o tomar el control explícitamente.`,takeOver:`Tomar el control en esta pestaña`,attention:`Necesita atención`,checked:`Comprobado`,pleaseNote:`Ten en cuenta`,progressUpdate:`Actualización de progreso`,reviewPass:`Revisando las opciones guardadas — pasada {pass}. Es la misma ejecución, no un reinicio.`,cancelSetup:`Cancelar configuración`,cancelConfirm:`¿Cancelar esta sesión local? Los PAT ya creados en GitHub seguirán existiendo.`,footerLocal:`SOLO LOCALHOST`,footerCloud:`SIN CUENTA DE CONFIGURACIÓN EN LA NUBE`,footerGithub:`GITHUB EMITE LOS PAT`,currentDecision:`DECISIÓN ACTUAL`,session:`SESIÓN`,continue:`Continuar`,previousQuestion:`Pregunta anterior`,questionProgress:`Pregunta {current} de {total} en este grupo · {overall} de {all} en total`,yes:`Sí`,no:`No`,permissionPreview:`VISTA PREVIA DE PERMISOS`,changeAnswersTitle:`Cambiar respuestas`,changeAnswersHelp:`Vuelve a una sección sin perder las demás respuestas. Se comprobarán de nuevo el plan y los permisos necesarios del PAT.`,changeSection:`Cambiar {section}`,editCapabilities:`Funciones`,editRuntimes:`Agentes`,editModels:`Modelos de agentes`,editRoleModels:`Modelos por tarea`,editRepository:`Comportamiento del repositorio`,editDeployment:`Releases y hotfixes`,editBugbot:`Bugbot`,editApproval:`Aprobación de PR`,editProjects:`Projects`,editProvisioning:`Aprovisionamiento`,editStorage:`Secrets y Variables`,suggested:`Respuesta sugerida: {answer}. Podrás revisar las opciones antes de crear el PAT de configuración.`,none:`ninguna`,sourceGithub:`Consultado en los metadatos autenticados de este repositorio en GitHub.`,sourceConfig:`Valor de tu configuración; GitHub no lo ha sustituido.`,sourceDefault:`Valor predeterminado del producto; no verificado en este repositorio.`,sourceLocal:`Observado en este checkout local; confirma que la rama existe en GitHub antes de aplicar cambios.`,whyMatters:`Por qué importa`,whenApplies:`Cuándo se aplica`,whereConfigured:`Dónde se configura`,howToChoose:`Cómo elegir`,whyRecommendation:`Por qué importa`,example:`Ejemplo`,effect:`Qué cambia`,verify:`Cómo comprobarlo`,learnMore:`Leer documentación de esta opción`,resultApplied:`Tu configuración se ha aplicado`,resultNoChanges:`No se hicieron cambios`,resultStopped:`No se empezó a aplicar la configuración`,resultPartial:`Revisa los cambios parciales antes de reintentar`,resultCompleteBody:`El PAT temporal de configuración no se revoca automáticamente. Elimínalo en GitHub tras comprobar el resultado. Conserva el PAT del bot hasta que rotes el Secret instalado.`,resultPartialBody:`Puede haberse escrito el Secret del bot u otro recurso. Revisa GitHub y ejecuta copilot doctor --read-only antes de reemplazar o eliminar ese PAT.`,resultNoChangesBody:`Copilot no empezó a aplicar cambios de configuración. Puede haber ejecutado pruebas temporales de permisos; GitHub puede conservar historial de Actions, Issues o PR después de limpiarlas. Los PAT creados siguen allí hasta que los elimines.`,whatHappened:`Qué ha pasado`,alreadyChanged:`Qué ha cambiado`,noChanges:`No se iniciaron cambios de configuración en el repositorio ni en GitHub durante esta sesión.`,nextAction:`Siguiente paso`,reasonPermissions:`Faltan permisos del PAT de configuración o no pudieron confirmarse.`,nextPermissions:`Comprueba los permisos mostrados, corrige el PAT en GitHub e inicia una nueva sesión.`,reasonWorkflowPermissions:`El PAT del bot no completó todas las comprobaciones de permisos. Revisa el permiso fallido y los requisitos de preparación o limpieza indicados abajo.`,permissionReportTitle:`Comprobación de permisos del PAT`,permissionReportLead:`Se muestran los permisos obligatorios que no pudieron confirmarse. «No verificable» no significa «ausente».`,updatedSetupPatTitle:`Corrige el PAT de configuración`,updatedSetupPatBody:`Este enlace de GitHub incluye los permisos necesarios para esta configuración. Selecciona este repositorio antes de crear el PAT. Cierra esta sesión local e inicia una nueva configuración con el PAT corregido.`,updatedSetupPatGrants:`Permisos adicionales detectados tras la inspección`,updatedSetupPatLink:`Crear PAT de configuración corregido`,permissionProbeCleanupPending:`Puede quedar un recurso temporal de comprobación de permisos. El setup se ha detenido; no supongas que se eliminó.`,permissionProbeCleanupAction:`Reintenta con un PAT capaz de eliminarlo. Se revisa el registro local de recuperación antes de nuevas pruebas.`,permissionSecretCollision:`GitHub indicó que se actualizó un Secret con el nombre aleatorio de prueba. Es posible que haya cambiado un valor creado a la vez. El setup se detuvo sin eliminarlo.`,permissionSecretCollisionAction:`Revisa el historial de Secrets de GitHub y restaura cualquier valor afectado antes de reintentar. El registro local de recuperación no puede reparar esta colisión.`,permissionIdentity:`Identidad de GitHub y acceso al repositorio`,permissionIdentityValid:`Verificados`,permissionIdentityInvalid:`Rechazados`,permissionIdentityUnknown:`No se pudieron confirmar`,permissionGrantNotChecked:`Sin comprobar`,permissionReportNoFailedGrant:`La comprobación no detectó un permiso obligatorio fallido. Revisa la cuenta prevista para el PAT y el error de la terminal antes de reintentarlo.`,reasonStorage:`No se pudo usar de forma segura el almacenamiento elegido de GitHub Actions.`,nextStorage:`Revisa el ámbito de Variables/Secrets y los recursos existentes; después, reinténtalo.`,reasonConfiguration:`No se pudo validar la configuración elegida.`,nextConfiguration:`Revisa el detalle de validación en la terminal, corrige las opciones y reinténtalo.`,reasonExpired:`La sesión local caducó.`,nextExpired:`Inicia una sesión nueva; la aprobación anterior no puede reutilizarse.`,reasonCancelled:`La sesión se canceló.`,nextCancelled:`Inicia una nueva ejecución si todavía quieres configurar este repositorio.`,reasonUnknown:`La configuración se detuvo. El navegador no pudo determinar la causa exacta. Revisa el recibo de recursos, si está disponible, y consulta la terminal.`,nextUnknown:`Consulta el último error de la terminal antes de reintentar; no supongas que se revocó ningún PAT.`,reasonProvider:`GitHub u otro proveedor no completó la operación solicitada.`,nextProvider:`Usa la referencia de diagnóstico para consultar la terminal, comprueba la disponibilidad y el acceso al proveedor y revisa posibles cambios parciales antes de reintentar.`,reasonRateLimit:`GitHub ha limitado temporalmente las solicitudes necesarias para la configuración.`,nextRateLimit:`Espera a que se restablezca el límite. Inspecciona los cambios completados antes de iniciar otra configuración.`,diagnosticReference:`Referencia de diagnóstico`,resourceReceipt:`Registro de operaciones de configuración`,effectCompleted:`Marcada como completada`,effectSkipped:`Marcada como omitida`,effectInspect:`Resultado pendiente de inspección`,effectNotStarted:`No iniciada`,effectInProgress:`En curso; resultado aún sin confirmar`,scopeLocal:`Checkout local`,scopeMixed:`Repositorio y organización`,receiptFiles:`Archivos de configuración`,receiptSecrets:`Secrets de GitHub Actions`,receiptLabels:`Etiquetas de issues`,receiptIssueTypes:`Tipos de issue`,receiptVariables:`Variables de GitHub Actions`,receiptInitialTag:`Etiqueta de versión inicial`,inspectPartial:`Algunos cambios podrían estar activos. Revisa GitHub y el resultado de la terminal antes de reintentar.`,patSettings:`Abrir ajustes de PAT en GitHub ↗`,closeSession:`Cerrar sesión local`,sessionClosed:`Sesión local cerrada`,sessionClosedBody:`El servidor local aceptó la solicitud de cierre. Esta página deja de consultarlo y conserva el resultado. Cerrar la sesión no revoca ningún PAT creado en GitHub.`,doctorHelp:`Tras completar el setup, puedes comprobar aquí los recursos instalados sin lanzar Actions. También puedes ejecutar copilot doctor --read-only desde la raíz del repositorio con el PAT temporal y el mismo archivo --config no secreto, si lo usaste.`,doctorRun:`Comprobar instalación (solo lectura)`,doctorRunning:`Comprobando los recursos instalados sin lanzar Actions…`,doctorPassed:`La comprobación de solo lectura no encontró fallos.`,doctorWarnings:`La comprobación de solo lectura requiere atención.`,doctorFailed:`La comprobación de solo lectura no terminó. Revisa la terminal o ejecuta el comando indicado abajo.`,doctorCounts:`{pass} correctas · {warn} avisos · {fail} fallos · {skipped} omitidas.`,doctorSecretLimit:`Este modo no puede verificar los valores de Secrets.`,botRenewal:`El PAT del bot permanece en el Secret de GitHub Actions seleccionado para futuras ejecuciones. Su fecha real de caducidad no se verifica aquí; anótala en GitHub y rota el Secret antes de que venza.`,working:`Preparando el siguiente paso`,workingBody:`El proceso local comprueba tus respuestas y prepara la siguiente decisión. Mantén esta página abierta.`,repoFocus:`Repositorio seleccionado`,repoFocusBody:`Este setup configura el repositorio indicado. Los Secrets y Variables de organización pueden compartirse con otros repositorios.`,access:`acceso`,readOnlyCheck:`Comprobación de capacidades`,provisionalGrants:`Permisos provisionales de mínimo privilegio`,conditionalGrants:`Los permisos condicionales dependen de tus elecciones y de GitHub. Se hará una auditoría final antes de cualquier cambio.`,permissionEvidenceVerified:`Una lectura de GitHub confirmó este acceso.`,permissionEvidenceVerifiedWrite:`Se creó, leyó y eliminó un recurso temporal.`,permissionEvidencePrivateProject:`Un Project no público de la organización confirmó el acceso de lectura a Projects.`,permissionEvidenceMissing:`GitHub rechazó el acceso necesario. Comprueba los ajustes del PAT.`,permissionEvidenceWrite:`La comprobación temporal de escritura no terminó correctamente. Revisa la fase fallida y vuelve a intentarlo.`,permissionEvidencePublic:`La lectura funcionó, pero este recurso público no demuestra por sí solo el permiso del PAT.`,permissionEvidencePublicProjects:`La lectura de Projects funcionó, incluso si devolvió una lista vacía. El acceso a Projects privados se comprueba al seleccionarlos.`,permissionEvidenceUnknownRead:`La consulta de lectura no fue concluyente. Revisa el detalle en la terminal y reintenta si hace falta.`,permissionUnknown:`Este permiso requiere revisión. Comprueba en la terminal el permiso exacto y su explicación técnica antes de continuar.`,permissionsFollow:`Los permisos dependen de tus elecciones`,permissionsFollowBody:`Mostraremos los permisos exactos antes de crear cada PAT. Abrir esta página no crea nada.`,files:`Archivos`,workflows:`Workflows`,variables:`Variables`,secretNames:`Nombres de Secrets`,planBody:`Revisa exactamente lo que podría cambiar. Al aprobar, se prueban los permisos de escritura del PAT con recursos temporales; después se pedirán el PAT del bot y otras credenciales. GitHub puede conservar ejecuciones, historial de Issues o PR y notificaciones de esas pruebas.`,planPermissionProbeTitle:`Pruebas temporales de permisos tras aprobar`,planPermissionProbeBody:`Cada permiso indicado crea, lee y elimina su propio recurso temporal. La prueba de Issues crea un Issue visible; si GitHub impide borrarlo, el setup lo cierra, informa de su número y se detiene. Actions, Issues y Pull requests pueden dejar historial o notificaciones.`,planActionsProbePrerequisites:`La prueba de Actions necesita Contents Write para crear su rama aislada. Si el workflow de salud empaquetado exacto no está disponible en la rama predeterminada, también necesita Workflows Write para preparar una versión con los jobs desactivados. Al comprobar el bot, el PAT de setup prepara y limpia el recurso; el PAT del bot lanza y lee su ejecución. Un requisito bloqueado no demuestra que falte Actions.`,planSecretProbeLimit:`GitHub solo permite crear o actualizar Secrets con la misma operación. La prueba usa un nombre aleatorio privado y comprueba antes que no exista, pero GitHub no garantiza una creación atómica. Si informa de una actualización, el setup se detiene y te pide revisar el historial del Secret.`,planChoices:`Tus decisiones principales`,planEnabledCapabilities:`Funciones activadas`,planBranchRoles:`Rama de producción / desarrollo`,planApprovalMode:`Aprobación de pull requests`,planVariableScope:`Ámbito de Variables`,planSecretScope:`Ámbito de Secrets`,planInitialTag:`Crear etiqueta inicial`,planAgentRouting:`Agente y modelo por tarea`,planIssueWorkflows:`Flujos de issues`,planTrustedChecks:`Productores de CI fiables`,planCoverage:`Prueba de cobertura`,planProjectStatuses:`Transiciones de Status en Projects`,planIssueResources:`Etiquetas y tipos de issue`,planIssueResourcesValue:`Se comprobarán o crearán al aplicar`,planProducerAttested:`Identidad de CI y paso obligatorio comprobados por ti`,planCoverageThreshold:`Cobertura mínima de líneas modificadas`,planCoverageReporter:`Workflow que publica el artefacto`,planReporterAttested:`Generador de cobertura comprobado por ti`,planAdvancedDefaults:`El plan también incluye valores predeterminados de ajustes que no cambiaste. Usa Cambiar más abajo para revisar cualquier sección antes de aprobar.`,planUnknownWarning:`Hay un aviso adicional del plan que no se puede mostrar aquí. Léelo en la terminal antes de aprobar.`,planBasicDefaultsIntro:`El modo básico conservó estos ajustes avanzados. Abre una sección más abajo para revisarlos o cambiarlos:`,scopeRepository:`Repositorio`,scopeOrganization:`Organización`,scopeDisabled:`Sin aprovisionar`,approvalOff:`Desactivada`,approvalRecommend:`Solo recomendaciones`,approvalGuarded:`Aprobación protegida`,beforeContinue:`Antes de continuar`,stopHere:`Detener aquí`,approvePlan:`Aprobar este plan`,githubLink:`Abrir enlace de GitHub ↗`,githubForm:`Abrir el formulario oficial de PAT de GitHub`,githubFormHelp:`Comprueba la cuenta activa, elige Only select repositories y selecciona este repositorio. GitHub gestiona el 2FA y crea el PAT.`,pasteHere:`Pega aquí el valor`,yourAnswer:`Tu respuesta`,hiddenAfter:`Oculto tras enviarlo`,typeAnswer:`Escribe tu respuesta`,secretHelp:`Se envía solo a este proceso local. No volverá a mostrarse ni se guardará en el almacenamiento del navegador.`,pairTitle:`Vincula este navegador`,pairLabel:`Código de vinculación de la terminal`,pairPlaceholder:`16 caracteres hexadecimales`,pairBody:`Busca el código de 16 caracteres en la terminal donde ejecutaste copilot setup --web. Introdúcelo para ver o controlar la sesión. No aparece en la URL ni se almacena al cerrar la página.`,pairHelp:`Mantén el código en privado. Tras actualizar la página, introdúcelo de nuevo para reconectar.`,pairButton:`Conectar a la configuración local`,privateSession:`SESIÓN LOCAL PRIVADA`,theme:`Tema de color`,themeAuto:`Sistema`,themeSystem:`Seguir tema del sistema`,themeLight:`Tema claro`,themeDark:`Tema oscuro`,selectOne:`Selecciona una opción`,ciRun:`Abrir ejecución de CI en GitHub ↗`,manualCheck:`¿No aparece el check? Introduce nombre|ID de App|workflow exactos, separados por punto y coma.`,checksObserved:`Se encontraron jobs recientes de CI. Abre cada ejecución y comprueba el job, la App y el paso obligatorio de cobertura antes de confiar en él.`,checksNoRecent:`No hay ejecuciones recientes de workflows de pull request. Ejecuta tu CI habitual en un PR real o introduce manualmente un productor exacto.`,checksNoVerifiable:`Hay ejecuciones recientes, pero ningún job pudo vincularse a un Check Run y una App concretos. Revisa GitHub o introduce el productor manualmente.`,checksDenied:`GitHub no permitió consultar los checks. Concede Actions: read y Checks: read al PAT de configuración, o introduce el productor manualmente.`,checksUnavailable:`No se pudo completar la consulta de CI. Esto no significa que el repositorio no tenga checks. Reintenta o introduce el productor manualmente.`,projectsObserved:`Estos Projects existentes pertenecen al dueño del repositorio. Selecciona solo los que deba actualizar la automatización.`,projectsEmpty:`Esta consulta limitada no devolvió Projects abiertos y accesibles; eso no demuestra que no existan. Comprueba el acceso o introduce un número verificado.`,projectsDenied:`GitHub no permitió consultar Projects. Comprueba Projects: read de la organización en el PAT o introduce los números manualmente.`,projectsUnavailable:`No se pudo consultar Projects. Eso no demuestra que no existan. Introduce un número verificado o reintenta.`,projectsUnsupported:`GitHub no permite listar Projects personales con un PAT de permisos precisos mediante esta API. Introduce el número de la URL de un Project existente.`,discoveryTruncated:`Solo se inspeccionó una muestra limitada de Projects accesibles o checks recientes. Usa la entrada manual si falta uno.`,checksDiscoveryScope:`Alcance: hasta 20 ejecuciones de PR entre las últimas 1.000 ejecuciones de workflows (hasta 10 páginas) de los últimos 90 días; se inspeccionan como máximo 15 ejecuciones y 100 checks por commit.`,projectsDiscoveryScope:`Alcance: hasta 30 Projects abiertos y accesibles de la organización en dos páginas; se inspeccionan hasta 100 campos por Project. Se excluyen los Projects cerrados.`,retryDiscovery:`Reintentar búsqueda en GitHub`,retryRemaining:`Quedan {count} reintentos de solo lectura. Tus respuestas se conservan.`,retryExhausted:`No quedan reintentos. Consulta GitHub e introduce manualmente lo que falte.`,observationTimeUnknown:`fecha de observación no disponible`,branchRequirementUnknown:`Obligatorio según la regla de rama: no comprobado`,branchRequirementObserved:`Obligatorio en {branch} por un ruleset activo para este check y esta App exactos.`,ciRule:`Abrir ruleset del check obligatorio ↗`,projectSharedStatus:`Todos los Projects elegidos deben compartir cada valor Status. Este setup no asigna valores diferentes por Project.`,fixedWorkflowEnabled:`Tu configuración fija features.{kind}=true. Mantén {kind} seleccionado; cambia --config o los flags si quieres modificarlo.`,fixedWorkflowDisabled:`Tu configuración fija features.{kind}=false. Deja {kind} sin seleccionar; cambia --config o los flags si quieres modificarlo.`,fixedIssuesRequired:`Tu configuración activa expresamente release o hotfix. Mantén Issues activado o cambia antes --config o los flags.`,projectSelectionNotObserved:`Se conservan los números de Project elegidos antes, aunque ya no figuren en esta consulta. Compruébalos en GitHub o quítalos.`,removeSelection:`Quitar selección`,projectTransitionIssueCreated:`Issue nuevo`,projectTransitionPullRequestCreated:`Pull request nuevo`,projectTransitionIssueInProgress:`Issue en curso`,projectTransitionPullRequestInProgress:`Pull request en curso`,projectUrl:`Abrir Project en GitHub ↗`,projectManual:`¿Falta un Project? Introduce su número positivo o URL exacta de GitHub. No se aceptan IDs PVT_.`,projectStatusUnavailable:`No se pudieron verificar las opciones Status de todos los Projects elegidos. Comprueba cada Project en GitHub e introduce el valor exacto.`,projectStatusIncompatible:`Los Projects elegidos no comparten valores Status. Elige Projects compatibles antes de continuar.`,producerName:`Nombre del check/job`,producerAppId:`ID de la App de GitHub`,producerWorkflow:`Nombre del workflow`,producerAdd:`Añadir check exacto`,producerRemove:`Quitar check`,producerManualHelp:`Usa la identidad exacta de GitHub. Añadirla no acredita que exija la cobertura.`,producerManualInvalid:`Indica nombre, ID numérico positivo de App y workflow. No uses | ni ; en los nombres. Se permiten comas.`,translationPreviewTitle:`Revisión de la traducción en curso`,translationPreviewBody:`Las preguntas propias de la configuración ya están traducidas. Algunos diagnósticos dinámicos de GitHub o del proveedor aún pueden aparecer en inglés mientras termina la revisión. Cambiar de idioma no modifica tus respuestas.`,unknownLocalError:`Se ha producido un error inesperado en la configuración local. Consulta la terminal y actualiza la página o reinicia la configuración.`},Gi={batchNextActions:`Prochaines étapes`,batchStatusReady:`Prêt à examiner`,batchStatusBlocked:`Action requise`,batchStatusApplying:`Application du plan validé`,batchStatusPartial:`Partiellement appliqué ; vérifier avant de réessayer`,batchStatusWaiting:`PR créée · en attente de fusion par un mainteneur`,batchStatusPending:`Configuration appliquée · vérification en attente`,batchStatusUnchanged:`Déjà conforme · inchangé`,batchStatusCancelled:`Travail en attente arrêté ; effets réalisés conservés`,batchConfigurationPreview:`Aperçu de la configuration, ajouté à la revue du lot. Les tests de permissions et l’installation attendent votre approbation du lot complet.`,batchUseConfiguration:`Utiliser cette configuration`,planReuseBody:`Approuvez les tests temporaires de permissions indiqués, puis la configuration revue sera appliquée. Les valeurs des Secrets existants sont conservées, sans être demandées ni remplacées. La vérification des capacités d’exécution peut rester en attente.`,organizationReuseTitle:`Réutilisation de la configuration existante`,organizationReuseBody:`{imported} paramètres compatibles importés. Conservation de {shared} Variables d’organisation et de {overrides} surcharges du dépôt ; écriture de {writes} Variables du dépôt. Les valeurs partagées et les Secrets existants restent inchangés.`,batchBranchReview:`Branche d’installation et base revue`,batchFocusTitle:`Dépôts sélectionnés`,batchFocusBody:`{count} dépôts sélectionnés explicitement dans cette organisation. Vérifiez chaque cible séparément.`,batchReviewTitle:`Examinez les plans de configuration`,batchProgressTitle:`Application des plans par dépôt`,batchResultTitle:`Résultats de configuration par dépôt`,batchProgressBody:`Application séquentielle des plans approuvés. Arrêter suspend le travail restant après la requête en cours ; les modifications et PR terminées sont conservées.`,batchReviewBody:`Approuvez uniquement les plans prêts ci-dessous. La configuration avance dans l’ordre, ajoute les accès validés sans remplacer les valeurs partagées et crée une PR par dépôt modifié. Elle ne fusionne pas, ne crée pas de tag, ne publie pas et ne déploie pas.`,batchResultBody:`Une PR de configuration nécessite encore une revue et une fusion par un mainteneur. La vérification des identifiants et capacités à l’exécution peut rester en attente. Les PR et accès réalisés sont conservés si un autre dépôt s’arrête.`,batchStopping:`Arrêt du travail en attente après la requête actuelle. Les changements réalisés seront conservés.`,batchReasonDrift:`La base validée ou sa propriété a changé. Inspectez le dépôt et examinez un nouveau plan.`,batchReasonProvider:`GitHub n’a pas confirmé la dernière étape. Une nouvelle tentative inspecte les effets existants avant de continuer.`,batchCleanupPending:`Le nettoyage du contrôle des permissions n’a pas pu être confirmé. Le travail restant est arrêté. Vérifiez l’historique GitHub et le journal local de récupération ; résolvez le nettoyage avant de démarrer une nouvelle configuration. Cette opération ne peut pas reprendre les écritures.`,batchReasonCancelled:`Le travail en attente s’est arrêté. Les changements réalisés ont été conservés.`,batchReasonPreflight:`Vérifiez l’accès, les identifiants requis et les réglages propres au dépôt avant de continuer.`,batchOpenPull:`Ouvrir la PR de configuration`,batchFilesCount:`{count} fichiers modifiés`,batchVariablesCount:`{count} changements de Variables du dépôt`,batchGrantsCount:`{count} ajouts d’accès pour ce dépôt`,batchRetainedSecrets:`Secrets existants conservés`,batchResourcesExplanation:`Les labels et Issue Types activés sont préparés séparément pour ce dépôt. Les valeurs des Secrets partagés et les accès des autres dépôts sont conservés.`,batchReviewFiles:`Inspecter les fichiers proposés`,batchDeleteFile:`Ce fichier géré par la configuration sera retiré de l’arbre d’installation ; inspectez sa sauvegarde conservée.`,batchRepositoryOverrides:`Examiner les noms des Variables du dépôt`,batchReviewedAccess:`Examiner les ajouts d’accès`,batchApplyPlans:`Appliquer les plans prêts`,batchLeavePreview:`Quitter sans appliquer`,batchStopPending:`Arrêter le travail en attente`,batchStopConfirm:`Arrêter le travail en attente après la requête actuelle ? Les PR, accès et changements réalisés seront conservés.`,batchRetryPending:`Inspecter et réessayer le travail inachevé`,batchFinish:`Terminer cette opération`,batchCleanup:`Supprimez les PAT temporaires de configuration dans GitHub après cette opération. Conservez le PAT du bot tant que les dépôts utilisent son Secret.`,batchTechnical:`Détails de l’opération`,batchLookupUnavailable:`GitHub n’a pas pu confirmer ce dépôt. Vérifiez son nom exact et l’accès du PAT.`,batchSelectionInvalid:`Vérifiez la sélection : choisissez 1 à 25 dépôts disponibles de cette organisation.`,batchAccessUnavailable:`L’accès n’est pas confirmé. Vérifiez le PAT temporaire ou retirez ce dépôt de la sélection.`,batchSelectionBody:`Choisissez 1 à 25 dépôts de {organization}. Seuls les dépôts sélectionnés seront configurés.`,batchDiscoveryUnavailable:`GitHub n’a pas pu lister les dépôts. Le dépôt actuel reste disponible ; cherchez un autre par son nom exact ou vérifiez l’accès du PAT.`,batchDiscoveryTruncated:`Cette vue a atteint la limite de 1 000 dépôts. Recherchez un nom exact pour ajouter un dépôt absent.`,batchFilter:`Filtrer les dépôts visibles`,batchSelectedCount:`{count} sélectionnés · maximum 25`,batchRepositories:`Dépôts`,batchPrivate:`Privé`,batchPublic:`Public`,batchCurrent:`Dépôt actuel`,batchArchived:`Archivé`,batchDisabled:`Désactivé`,batchReadOnly:`Accès en écriture indisponible`,batchNoMatches:`Aucun dépôt visible ne correspond au filtre.`,batchPrevious:`Précédent`,batchNext:`Suivant`,batchMissingRepository:`Un dépôt manque ?`,batchAccessExplanation:`La liste montre uniquement les dépôts visibles avec ce PAT. Une recherche par nom exact n’accorde aucun accès et ne sélectionne pas automatiquement le dépôt. Si vous remplacez le PAT temporaire, limitez-le aux dépôts à configurer.`,batchExactName:`Nom exact du dépôt dans cette organisation`,batchFindRepository:`Trouver le dépôt`,batchChangeAccess:`Changer l’accès du PAT temporaire`,batchReviewSelection:`Examiner les dépôts sélectionnés`,patStorageRetain:`Conservez le Secret PAT existant dans {destination}. Sa valeur n’est ni demandée, ni copiée, ni remplacée. S’il manque, créez-le séparément. La vérification de l’identité et des autorisations à l’exécution reste en attente.`,patStorageTitle:`Stockage du PAT du bot`,patRepositoryReplace:`Le Secret PAT existe déjà dans le dépôt {destination}. Il sera remplacé même si vous avez choisi de conserver les autres Secrets existants.`,patOrganizationReplace:`Le Secret PAT existe déjà dans l’organisation {destination}. Il sera remplacé même si vous avez choisi de conserver les autres Secrets existants.`,patRepositoryCreate:`Le PAT du bot sera enregistré comme Secret PAT dans le dépôt {destination}.`,patOrganizationCreate:`Le PAT du bot sera enregistré comme Secret PAT dans l’organisation {destination}.`,patReplacementChecks:`Le PAT du bot fourni doit réussir les vérifications d’identité, d’accès au dépôt et des autorisations requises avant l’écriture de ce Secret.`,patOrganizationImpact:`Remplacer ce Secret d’organisation peut affecter les autres dépôts qui l’utilisent. Les vérifications pour ce dépôt ne valident pas leurs exigences.`,repositorySecretSettings:`Ouvrir les Secrets Actions du dépôt`,botAccountWarning:`Vous devez ouvrir ce lien avec le compte bot sélectionné : @{account}.`,botAccountHelp:`Vérifiez le compte GitHub avant de générer le PAT. Utilisez une fenêtre privée ou changez de compte si le navigateur utilise le compte de l’opérateur de configuration.`,botGithubForm:`Créer le PAT du bot en tant que @{account}`,language:`Langue`,english:`Anglais`,spanish:`Espagnol`,setup:`CONFIGURATION`,connecting:`Connexion…`,localSession:`SESSION LOCALE`,progress:`Progression`,studio:`ASSISTANT DE CONFIGURATION`,journey:`VOTRE PARCOURS`,repository:`Dépôt`,choices:`Choix`,setupPat:`PAT de configuration`,plan:`Plan`,botPat:`PAT du bot et identifiants`,apply:`Appliquer`,localDesign:`Local par conception`,localDesignBody:`Cette page fonctionne sur votre ordinateur. GitHub crée les deux PAT dans ses propres onglets.`,preparing:`Préparation…`,completeTitle:`Configuration terminée.`,previewTitle:`Aperçu terminé.`,cancelledTitle:`Configuration annulée.`,blockedTitle:`Une intervention est nécessaire.`,gettingReady:`PRÉPARATION`,activeLede:`Une décision à la fois. Vos choix déterminent les droits, le plan et les identifiants nécessaires.`,resultLede:`Consultez le résultat et la prochaine étape ci-dessous. Le terminal fournit les détails techniques.`,readOnly:`Onglet en lecture seule`,readOnlyBody:`Un autre onglet contrôle cette session. Vous pouvez suivre la progression ou prendre le contrôle.`,takeOver:`Prendre le contrôle`,attention:`Action nécessaire`,checked:`Vérifié`,pleaseNote:`À noter`,progressUpdate:`Mise à jour`,reviewPass:`Révision des choix enregistrés — passage {pass}. C’est la même session, pas un redémarrage.`,cancelSetup:`Annuler`,cancelConfirm:`Annuler cette session locale ? Les PAT créés sur GitHub continueront d’exister.`,footerLocal:`LOCALHOST UNIQUEMENT`,footerCloud:`AUCUN COMPTE CLOUD`,footerGithub:`GITHUB ÉMET LES PAT`,currentDecision:`DÉCISION ACTUELLE`,session:`SESSION`,continue:`Continuer`,previousQuestion:`Question précédente`,questionProgress:`Question {current} sur {total} dans ce groupe · {overall} sur {all} au total`,yes:`Oui`,no:`Non`,permissionPreview:`APERÇU DES DROITS`,changeAnswersTitle:`Modifier vos réponses`,changeAnswersHelp:`Revenez à une section sans perdre les autres réponses. Le plan et les droits PAT requis seront vérifiés à nouveau.`,changeSection:`Modifier {section}`,editCapabilities:`Fonctionnalités`,editRuntimes:`Agents`,editModels:`Modèles des agents`,editRoleModels:`Modèles par tâche`,editRepository:`Comportement du dépôt`,editDeployment:`Releases et correctifs`,editBugbot:`Bugbot`,editApproval:`Approbation des PR`,editProjects:`Projects`,editProvisioning:`Provisionnement`,editStorage:`Secrets et Variables`,suggested:`Réponse suggérée : {answer}. Vous pourrez revoir vos choix avant de créer le PAT.`,none:`aucune`,sourceGithub:`Observé dans les métadonnées authentifiées de ce dépôt GitHub.`,sourceConfig:`Fourni par votre configuration ; GitHub ne l’a pas remplacé.`,sourceDefault:`Valeur par défaut du produit ; non vérifiée dans ce dépôt.`,sourceLocal:`Observé dans ce dossier local ; vérifiez que cette branche existe sur GitHub avant d’appliquer les changements.`,whyMatters:`Pourquoi c’est important`,whenApplies:`Quand cela s’applique`,whereConfigured:`Où se fait le réglage`,howToChoose:`Comment choisir`,whyRecommendation:`Pourquoi c’est important`,example:`Exemple`,effect:`Ce qui change`,verify:`Comment vérifier`,learnMore:`Lire la documentation de ce réglage`,resultApplied:`Configuration appliquée`,resultNoChanges:`Aucun changement effectué`,resultStopped:`Aucun changement commencé`,resultPartial:`Vérifiez les changements partiels`,resultCompleteBody:`Le PAT temporaire n’est pas révoqué automatiquement. Supprimez-le sur GitHub après vérification. Gardez le PAT du bot jusqu’à rotation du Secret.`,resultPartialBody:`Un Secret ou une autre ressource a peut-être été modifié. Vérifiez GitHub et exécutez copilot doctor --read-only avant de remplacer ou supprimer un PAT.`,resultNoChangesBody:`Copilot n’a pas commencé à appliquer la configuration. Des tests temporaires de permissions ont pu s’exécuter ; GitHub peut conserver l’historique Actions, Issues ou PR après leur nettoyage. Les PAT créés restent actifs jusqu’à leur suppression.`,whatHappened:`Ce qui s’est passé`,alreadyChanged:`Déjà modifié`,noChanges:`Aucun changement du dépôt ou de GitHub n’a commencé pendant cette session.`,nextAction:`Prochaine étape`,reasonPermissions:`Les droits nécessaires du PAT de configuration manquent ou n’ont pas pu être confirmés.`,nextPermissions:`Vérifiez les droits affichés, corrigez le PAT sur GitHub, puis recommencez.`,reasonWorkflowPermissions:`Le PAT du bot n’a pas terminé toutes les vérifications de droits. Consultez le droit concerné et les prérequis de préparation ou de nettoyage ci-dessous.`,permissionReportTitle:`Vérification des droits du PAT`,permissionReportLead:`Les droits requis qui n’ont pas pu être confirmés sont indiqués ci-dessous. « Non vérifiable » ne signifie pas « absent ».`,updatedSetupPatTitle:`Corrigez le PAT de configuration`,updatedSetupPatBody:`Ce lien GitHub inclut les droits requis pour cette configuration. Sélectionnez ce dépôt avant de créer le PAT. Fermez cette session locale, puis recommencez la configuration avec le PAT corrigé.`,updatedSetupPatGrants:`Droits supplémentaires détectés après inspection`,updatedSetupPatLink:`Créer un PAT de configuration corrigé`,permissionProbeCleanupPending:`Une ressource temporaire de vérification peut encore exister. La configuration est arrêtée ; ne supposez pas que le nettoyage a réussi.`,permissionProbeCleanupAction:`Réessayez avec un PAT capable de la supprimer. Le journal local de récupération est consulté avant tout nouveau test.`,permissionSecretCollision:`GitHub a indiqué qu’un Secret portant le nom de test aléatoire a été mis à jour. Une valeur créée simultanément peut avoir changé. La configuration s’est arrêtée sans le supprimer.`,permissionSecretCollisionAction:`Consultez l’historique des Secrets GitHub et restaurez toute valeur concernée avant de réessayer. Le journal local ne peut pas corriger cette collision.`,permissionIdentity:`Identité GitHub et accès au dépôt`,permissionIdentityValid:`Vérifiés`,permissionIdentityInvalid:`Refusés`,permissionIdentityUnknown:`Non confirmés`,permissionGrantNotChecked:`Non vérifié`,permissionReportNoFailedGrant:`Cette vérification n’a trouvé aucun droit requis en échec. Vérifiez le compte prévu pour le PAT et l’erreur du terminal avant de réessayer.`,reasonStorage:`Le stockage GitHub Actions choisi ne peut pas être utilisé en sécurité.`,nextStorage:`Vérifiez la portée des Variables/Secrets et les ressources existantes, puis réessayez.`,reasonConfiguration:`La configuration choisie n’a pas pu être validée.`,nextConfiguration:`Lisez les détails du terminal, corrigez les choix et réessayez.`,reasonExpired:`La session locale a expiré.`,nextExpired:`Démarrez une nouvelle session ; l’ancienne approbation ne peut pas être réutilisée.`,reasonCancelled:`La configuration a été annulée.`,nextCancelled:`Démarrez une nouvelle session si vous souhaitez encore configurer ce dépôt.`,reasonUnknown:`La configuration s’est arrêtée. Le navigateur n’a pas pu déterminer la cause exacte. Consultez le reçu des ressources, s’il est disponible, et le terminal.`,nextUnknown:`Consultez la dernière erreur du terminal avant de réessayer. Ne supposez pas qu’un PAT a été révoqué.`,reasonProvider:`GitHub ou un autre fournisseur n’a pas terminé l’opération demandée.`,nextProvider:`Utilisez la référence de diagnostic pour consulter le terminal, vérifiez la disponibilité et les accès, puis examinez tout changement partiel avant de réessayer.`,reasonRateLimit:`GitHub a temporairement limité les requêtes nécessaires à la configuration.`,nextRateLimit:`Attendez la réinitialisation de la limite. Examinez les changements effectués avant de recommencer.`,diagnosticReference:`Référence de diagnostic`,resourceReceipt:`Reçu des opérations de configuration`,effectCompleted:`Signalée comme terminée`,effectSkipped:`Signalée comme ignorée`,effectInspect:`Résultat à vérifier`,effectNotStarted:`Non commencée`,effectInProgress:`En cours ; résultat non encore confirmé`,scopeLocal:`Dossier local`,scopeMixed:`Dépôt et organisation`,receiptFiles:`Fichiers de configuration`,receiptSecrets:`Secrets GitHub Actions`,receiptLabels:`Étiquettes des tickets`,receiptIssueTypes:`Types de ticket`,receiptVariables:`Variables GitHub Actions`,receiptInitialTag:`Première étiquette de version`,inspectPartial:`Des changements peuvent déjà être actifs. Vérifiez GitHub et le terminal avant de réessayer.`,patSettings:`Ouvrir les paramètres PAT GitHub ↗`,closeSession:`Fermer la session locale`,sessionClosed:`Session locale fermée`,sessionClosedBody:`Le serveur local a accepté la demande de fermeture. Cette page ne le contacte plus et conserve le résultat. Fermer la session ne révoque aucun PAT créé dans GitHub.`,doctorHelp:`Après la configuration, vérifiez ici les ressources installées sans déclencher d’Actions. Vous pouvez aussi exécuter copilot doctor --read-only à la racine du dépôt avec le PAT temporaire et le même fichier --config non secret, le cas échéant.`,doctorRun:`Vérifier l’installation (lecture seule)`,doctorRunning:`Vérification des ressources installées sans déclencher d’Actions…`,doctorPassed:`La vérification en lecture seule n’a trouvé aucun échec.`,doctorWarnings:`La vérification en lecture seule demande une attention particulière.`,doctorFailed:`La vérification en lecture seule ne s’est pas terminée. Consultez le terminal ou exécutez la commande ci-dessous.`,doctorCounts:`{pass} réussis · {warn} avertissements · {fail} échecs · {skipped} ignorés.`,doctorSecretLimit:`Ce mode ne peut pas vérifier les valeurs des Secrets.`,botRenewal:`Le PAT du bot reste dans le secret GitHub Actions choisi pour les futures exécutions. Sa date d’expiration réelle n’est pas vérifiée ici ; notez-la sur GitHub et remplacez le secret avant cette date.`,working:`Préparation de l’étape suivante`,workingBody:`Le processus local vérifie vos réponses. Gardez cette page ouverte.`,repoFocus:`Dépôt concerné`,repoFocusBody:`Cette configuration concerne le dépôt indiqué. Les Secrets et Variables d’organisation peuvent être partagés avec d’autres dépôts.`,access:`accès`,readOnlyCheck:`Vérification des capacités`,provisionalGrants:`Droits provisoires minimaux`,conditionalGrants:`Les droits conditionnels dépendent de vos choix et de GitHub. Un contrôle final précède toute modification.`,permissionEvidenceVerified:`Une lecture GitHub a confirmé cet accès.`,permissionEvidenceVerifiedWrite:`Une ressource temporaire a été créée, lue et supprimée.`,permissionEvidencePrivateProject:`Un Project non public de l’organisation a confirmé l’accès Projects en lecture.`,permissionEvidenceMissing:`GitHub a refusé l’accès requis. Vérifiez les paramètres du PAT.`,permissionEvidenceWrite:`La vérification temporaire en écriture n’a pas abouti. Examinez l’étape échouée puis réessayez.`,permissionEvidencePublic:`La lecture a réussi, mais cette ressource publique ne prouve pas à elle seule le droit du PAT.`,permissionEvidencePublicProjects:`La lecture des Projects a réussi, même avec une liste vide. L’accès aux Projects privés est vérifié lors de leur sélection.`,permissionEvidenceUnknownRead:`Le contrôle en lecture n’est pas concluant. Consultez le détail dans le terminal et réessayez si nécessaire.`,permissionUnknown:`Ce droit exige une vérification. Consultez le droit exact et son explication technique dans le terminal avant de continuer.`,permissionsFollow:`Les droits suivent vos choix`,permissionsFollowBody:`Les droits exacts sont affichés avant chaque PAT. Ouvrir cette page ne crée rien.`,files:`Fichiers`,workflows:`Workflows`,variables:`Variables`,secretNames:`Noms des Secrets`,planBody:`Vérifiez précisément ce qui pourrait changer. Après approbation, des ressources temporaires testent les droits d’écriture du PAT, puis le PAT du bot et les autres identifiants sont demandés. GitHub peut conserver des exécutions, l’historique des Issues ou PR et des notifications.`,planPermissionProbeTitle:`Tests temporaires des permissions après approbation`,planPermissionProbeBody:`Chaque permission indiquée crée, lit puis supprime sa propre ressource temporaire. Le test Issues crée une Issue visible ; si GitHub refuse sa suppression, la configuration la ferme, indique son numéro et s’arrête. Actions, Issues et Pull requests peuvent laisser un historique ou des notifications.`,planActionsProbePrerequisites:`Le test Actions nécessite Contents Write pour créer sa branche isolée. Si le workflow de santé empaqueté exact est indisponible sur la branche par défaut, il nécessite aussi Workflows Write pour préparer une version dont les jobs sont désactivés. Pour le bot, le PAT de configuration prépare et nettoie la ressource ; le PAT du bot déclenche et lit son exécution. Un prérequis bloqué ne prouve pas qu’Actions manque.`,planSecretProbeLimit:`GitHub ne propose qu’une opération de création ou mise à jour pour les Secrets. Le contrôle utilise un nom aléatoire privé et vérifie d’abord son absence, mais GitHub ne garantit pas une création atomique. S’il signale une mise à jour, la configuration s’arrête et vous demande de consulter l’historique du Secret.`,planChoices:`Vos décisions principales`,planEnabledCapabilities:`Fonctionnalités activées`,planBranchRoles:`Branche de production / développement`,planApprovalMode:`Approbation des pull requests`,planVariableScope:`Portée des variables`,planSecretScope:`Portée des secrets`,planInitialTag:`Créer la première étiquette`,planAgentRouting:`Agent et modèle par tâche`,planIssueWorkflows:`Workflows de tickets`,planTrustedChecks:`Producteurs CI de confiance`,planCoverage:`Preuve de couverture`,planProjectStatuses:`Transitions Status des Projects`,planIssueResources:`Étiquettes et types de ticket`,planIssueResourcesValue:`Vérifiés ou créés lors de l’application`,planProducerAttested:`Identité CI et étape obligatoire vérifiées par vous`,planCoverageThreshold:`Couverture minimale des lignes modifiées`,planCoverageReporter:`Workflow publiant l’artefact`,planReporterAttested:`Producteur du rapport de couverture vérifié par vous`,planAdvancedDefaults:`Le plan comprend aussi les valeurs par défaut des réglages non modifiés. Utilisez Modifier ci-dessous pour examiner une section avant de valider.`,planUnknownWarning:`Un avertissement supplémentaire du plan ne peut pas être affiché ici. Lisez-le dans le terminal avant de valider.`,planBasicDefaultsIntro:`Le parcours de base a conservé ces réglages avancés. Ouvrez une section ci-dessous pour les vérifier ou les modifier :`,scopeRepository:`Dépôt`,scopeOrganization:`Organisation`,scopeDisabled:`Non provisionné`,approvalOff:`Désactivée`,approvalRecommend:`Recommandation uniquement`,approvalGuarded:`Approbation protégée`,beforeContinue:`Avant de continuer`,stopHere:`Arrêter ici`,approvePlan:`Approuver ce plan`,githubLink:`Ouvrir le lien GitHub ↗`,githubForm:`Ouvrir le formulaire PAT officiel de GitHub`,githubFormHelp:`Vérifiez le compte connecté, choisissez Only select repositories et ce dépôt. GitHub gère la 2FA et crée le PAT.`,pasteHere:`Collez la valeur ici`,yourAnswer:`Votre réponse`,hiddenAfter:`Masquée après envoi`,typeAnswer:`Saisissez votre réponse`,secretHelp:`Envoyé uniquement au processus local. Ni réaffiché ni enregistré dans le navigateur.`,pairTitle:`Associer ce navigateur`,pairLabel:`Code du terminal`,pairPlaceholder:`16 caractères hexadécimaux`,pairBody:`Trouvez le code à 16 caractères dans le terminal qui a lancé copilot setup --web. Il ne figure pas dans l’URL et n’est pas conservé après fermeture.`,pairHelp:`Gardez ce code secret. Après actualisation, saisissez-le de nouveau.`,pairButton:`Se connecter à la configuration locale`,privateSession:`SESSION LOCALE PRIVÉE`,theme:`Thème`,themeAuto:`Auto`,themeSystem:`Suivre le système`,themeLight:`Thème clair`,themeDark:`Thème sombre`,selectOne:`Choisissez une option`,ciRun:`Voir l’exécution CI sur GitHub ↗`,manualCheck:`Check absent ? Saisissez nom|ID App|workflow exacts, séparés par des points-virgules.`,checksObserved:`Des jobs CI récents ont été trouvés. Ouvrez chaque exécution et vérifiez le job, l’App et l’étape obligatoire de couverture avant de lui faire confiance.`,checksNoRecent:`Aucune exécution récente de workflow de pull request. Lancez le CI habituel sur une vraie PR ou saisissez un producteur exact.`,checksNoVerifiable:`Des exécutions récentes existent, mais aucun job ne correspond à une identité exacte de Check Run et d’App. Vérifiez GitHub ou saisissez-la.`,checksDenied:`GitHub a refusé la découverte CI. Accordez Actions: read et Checks: read au PAT de configuration, ou saisissez un producteur exact.`,checksUnavailable:`La découverte CI a échoué. Cela ne prouve pas l’absence de checks. Réessayez ou saisissez un producteur exact.`,projectsObserved:`Ces Projects existants appartiennent au propriétaire du dépôt. Ne choisissez que ceux que l’automatisation doit modifier.`,projectsEmpty:`Cette requête GitHub limitée n’a renvoyé aucun Project ouvert et accessible ; elle ne prouve pas leur absence. Vérifiez l’accès ou saisissez un numéro vérifié.`,projectsDenied:`GitHub a refusé la découverte des Projects. Vérifiez Projects: read au niveau organisation sur le PAT, ou saisissez les numéros.`,projectsUnavailable:`La découverte des Projects a échoué. Cela ne prouve pas leur absence. Saisissez un numéro vérifié ou réessayez.`,projectsUnsupported:`Cette API GitHub ne liste pas les Projects personnels avec un PAT à permissions fines. Saisissez le numéro figurant dans l’URL.`,discoveryTruncated:`Seul un échantillon limité de Projects accessibles ou checks récents a été inspecté. Saisissez manuellement un élément absent.`,checksDiscoveryScope:`Périmètre : jusqu’à 20 exécutions de PR parmi les 1 000 dernières exécutions de workflows (jusqu’à 10 pages) des 90 derniers jours ; au plus 15 exécutions et 100 checks par commit sont inspectés.`,projectsDiscoveryScope:`Périmètre : au plus 30 Projects ouverts et accessibles de l’organisation sur deux pages ; jusqu’à 100 champs sont inspectés par Project. Les Projects fermés sont exclus.`,retryDiscovery:`Relancer la recherche GitHub`,retryRemaining:`Il reste {count} essais en lecture seule. Vos réponses sont conservées.`,retryExhausted:`Plus aucun essai disponible. Vérifiez GitHub et saisissez manuellement tout élément manquant.`,observationTimeUnknown:`date d’observation indisponible`,branchRequirementUnknown:`Exigé par la règle de branche : non vérifié`,branchRequirementObserved:`Exigé sur {branch} par un ruleset actif pour ce contrôle et cette application précis.`,ciRule:`Ouvrir le ruleset du contrôle obligatoire ↗`,projectSharedStatus:`Tous les Projects choisis doivent partager chaque valeur Status. Cette configuration ne définit pas de valeurs différentes par Project.`,fixedWorkflowEnabled:`Votre configuration fixe features.{kind}=true. Gardez {kind} sélectionné ; modifiez --config ou les options pour changer ce choix.`,fixedWorkflowDisabled:`Votre configuration fixe features.{kind}=false. Ne sélectionnez pas {kind} ; modifiez --config ou les options pour changer ce choix.`,fixedIssuesRequired:`Votre configuration active explicitement release ou hotfix. Gardez Issues activé ou modifiez d’abord --config ou les options.`,projectSelectionNotObserved:`Les numéros de Projects choisis auparavant sont conservés, mais n’apparaissent plus dans ce résultat GitHub. Vérifiez-les sur GitHub ou retirez-les.`,removeSelection:`Retirer la sélection`,projectTransitionIssueCreated:`Nouveau ticket`,projectTransitionPullRequestCreated:`Nouvelle pull request`,projectTransitionIssueInProgress:`Ticket en cours`,projectTransitionPullRequestInProgress:`Pull request en cours`,projectUrl:`Ouvrir le Project sur GitHub ↗`,projectManual:`Project absent ? Saisissez son numéro positif ou son URL GitHub exacte. Les ID PVT_ sont refusés.`,projectStatusUnavailable:`Les options Status n’ont pas pu être vérifiées pour tous les Projects. Vérifiez-les sur GitHub et saisissez la valeur exacte.`,projectStatusIncompatible:`Les Projects choisis ne partagent aucun Status. Choisissez des Projects compatibles avant de continuer.`,producerName:`Nom du check/job`,producerAppId:`ID de l’App GitHub source`,producerWorkflow:`Nom du workflow`,producerAdd:`Ajouter le check exact`,producerRemove:`Retirer le check`,producerManualHelp:`Utilisez l’identité exacte affichée sur GitHub. L’ajouter ne prouve pas que la couverture est imposée.`,producerManualInvalid:`Indiquez le nom, un ID numérique positif d’App et le workflow. N’utilisez ni | ni ; dans les noms. Les virgules sont autorisées.`,translationPreviewTitle:`Révision de la traduction en cours`,translationPreviewBody:`Les questions propres à la configuration sont traduites. Certains diagnostics dynamiques de GitHub ou du fournisseur peuvent encore apparaître en anglais pendant la révision. Changer de langue ne modifie pas vos réponses.`,unknownLocalError:`Une erreur inattendue est survenue pendant la configuration locale. Consultez le terminal, puis actualisez la page ou relancez la configuration.`},Ki={batchNextActions:`Próximos passos`,batchStatusReady:`Pronto para revisão`,batchStatusBlocked:`Requer uma ação`,batchStatusApplying:`A aplicar o plano revisto`,batchStatusPartial:`Aplicado parcialmente; reveja antes de tentar novamente`,batchStatusWaiting:`PR criada · aguarda integração por um responsável`,batchStatusPending:`Configuração aplicada · verificação pendente`,batchStatusUnchanged:`Já corresponde · sem alterações`,batchStatusCancelled:`Trabalho pendente interrompido; alterações concluídas mantidas`,batchConfigurationPreview:`Prévia da configuração, adicionada à revisão do lote. Os testes de permissões e a instalação aguardam a aprovação do lote completo.`,batchUseConfiguration:`Usar esta configuração`,planReuseBody:`Aprove os testes temporários de permissões indicados; em seguida, aplica-se o setup revisto. Os valores dos Secrets existentes são preservados, sem serem pedidos ou substituídos. A verificação de permissões em execução pode ficar pendente.`,organizationReuseTitle:`Reutilizar a configuração existente`,organizationReuseBody:`{imported} definições compatíveis importadas. Preservam-se {shared} Variables da organização e {overrides} substituições do repositório; escrevem-se {writes} Variables no repositório. Os valores partilhados e os Secrets existentes são preservados.`,batchBranchReview:`Ramo de instalação e base revista`,batchFocusTitle:`Repositórios selecionados`,batchFocusBody:`{count} repositórios selecionados explicitamente nesta organização. Reveja cada destino separadamente.`,batchReviewTitle:`Reveja os planos de configuração`,batchProgressTitle:`A aplicar os planos por repositório`,batchResultTitle:`Resultados da configuração por repositório`,batchProgressBody:`Aplicam-se os planos aprovados por ordem. Parar suspende o trabalho pendente após o pedido atual; as alterações e PRs concluídas são preservadas.`,batchReviewBody:`Aprove apenas os planos prontos abaixo. A configuração avança por ordem, adiciona o acesso revisto sem substituir valores partilhados e cria uma PR por repositório alterado. Não integra, cria tags, publica versões nem implementa.`,batchResultBody:`Uma PR de configuração ainda precisa de revisão e integração por um responsável. A verificação de credenciais e permissões em execução pode ficar pendente. As PRs e os acessos concluídos mantêm-se se outro destino parar.`,batchStopping:`A interromper o trabalho pendente após o pedido atual. As alterações concluídas serão mantidas.`,batchReasonDrift:`A base revista ou a sua titularidade mudou. Inspecione o repositório e reveja um novo plano.`,batchReasonProvider:`O GitHub não confirmou o último passo. Uma nova tentativa inspeciona os efeitos existentes antes de continuar.`,batchCleanupPending:`Não foi possível confirmar a limpeza da verificação de permissões. O trabalho pendente foi interrompido. Verifique o histórico do GitHub e o registro local de recuperação; resolva a limpeza antes de iniciar uma nova configuração. Esta operação não pode retomar gravações.`,batchReasonCancelled:`O trabalho pendente parou. As alterações concluídas foram mantidas.`,batchReasonPreflight:`Reveja o acesso, as credenciais necessárias e os ajustes específicos do repositório antes de continuar.`,batchOpenPull:`Abrir PR de configuração`,batchFilesCount:`{count} ficheiros alterados`,batchVariablesCount:`{count} alterações de Variables do repositório`,batchGrantsCount:`{count} acessos a adicionar para este repositório`,batchRetainedSecrets:`Secrets existentes mantidos`,batchResourcesExplanation:`Os labels e Issue Types ativados são preparados separadamente para este destino. Os valores dos Secrets partilhados e os acessos dos outros repositórios são mantidos.`,batchReviewFiles:`Inspecionar ficheiros propostos`,batchDeleteFile:`Este ficheiro gerido pela configuração será removido da árvore de instalação; inspecione a cópia mantida.`,batchRepositoryOverrides:`Rever os nomes das Variables do repositório`,batchReviewedAccess:`Rever os acessos a adicionar`,batchApplyPlans:`Aplicar planos prontos`,batchLeavePreview:`Sair sem aplicar`,batchStopPending:`Interromper trabalho pendente`,batchStopConfirm:`Interromper o trabalho pendente após o pedido atual? As PRs, os acessos e as alterações concluídas serão mantidos.`,batchRetryPending:`Inspecionar e repetir o trabalho pendente`,batchFinish:`Concluir esta operação`,batchCleanup:`Elimine os PATs temporários de configuração no GitHub após esta operação. Mantenha o PAT do bot enquanto os repositórios consumirem o seu Secret.`,batchTechnical:`Detalhes da operação`,batchLookupUnavailable:`O GitHub não conseguiu confirmar esse repositório. Verifique o nome exato e o acesso do PAT.`,batchSelectionInvalid:`Reveja a seleção: escolha entre 1 e 25 repositórios disponíveis desta organização.`,batchAccessUnavailable:`O acesso não está confirmado. Reveja o PAT temporário ou remova este repositório da seleção.`,batchSelectionBody:`Escolha entre 1 e 25 repositórios de {organization}. Apenas os selecionados serão configurados.`,batchDiscoveryUnavailable:`O GitHub não conseguiu listar os repositórios. O atual continua disponível; procure outro pelo nome exato ou reveja o acesso do PAT.`,batchDiscoveryTruncated:`Esta vista atingiu o limite de 1.000 repositórios. Procure pelo nome exato para adicionar um destino em falta.`,batchFilter:`Filtrar repositórios visíveis`,batchSelectedCount:`{count} selecionados · máximo 25`,batchRepositories:`Repositórios`,batchPrivate:`Privado`,batchPublic:`Público`,batchCurrent:`Repositório atual`,batchArchived:`Arquivado`,batchDisabled:`Desativado`,batchReadOnly:`Sem acesso de escrita`,batchNoMatches:`Nenhum repositório visível corresponde ao filtro.`,batchPrevious:`Anterior`,batchNext:`Seguinte`,batchMissingRepository:`Não encontra um repositório?`,batchAccessExplanation:`A lista mostra apenas os repositórios visíveis para este PAT. A pesquisa por nome exato não concede acesso nem seleciona o repositório automaticamente. Se substituir o PAT temporário, limite-o aos repositórios que pretende configurar.`,batchExactName:`Nome exato do repositório nesta organização`,batchFindRepository:`Procurar repositório`,batchChangeAccess:`Alterar o acesso do PAT temporário`,batchReviewSelection:`Rever repositórios selecionados`,patStorageRetain:`Mantém-se o Secret PAT existente em {destination}. O seu valor não é pedido, copiado nem substituído. Se faltar, deve ser criado em separado. A verificação da identidade e das permissões em execução fica pendente.`,patStorageTitle:`Armazenamento do PAT do bot`,patRepositoryReplace:`O Secret PAT já existe no repositório {destination}. Será substituído mesmo que tenha escolhido preservar os outros Secrets existentes.`,patOrganizationReplace:`O Secret PAT já existe na organização {destination}. Será substituído mesmo que tenha escolhido preservar os outros Secrets existentes.`,patRepositoryCreate:`O PAT do bot será guardado como Secret PAT no repositório {destination}.`,patOrganizationCreate:`O PAT do bot será guardado como Secret PAT na organização {destination}.`,patReplacementChecks:`O PAT do bot fornecido tem de passar as verificações de identidade, acesso ao repositório e permissões necessárias antes de escrever este Secret.`,patOrganizationImpact:`Substituir este Secret da organização pode afetar outros repositórios que o utilizam. As verificações deste repositório não validam os requisitos dos restantes.`,repositorySecretSettings:`Abrir os Secrets Actions do repositório`,botAccountWarning:`Deve abrir este link com a conta de bot selecionada: @{account}.`,botAccountHelp:`Confirme a conta do GitHub antes de gerar o PAT. Use uma janela privada ou mude de conta se o navegador tiver a sessão do operador da configuração.`,botGithubForm:`Criar PAT do bot como @{account}`,language:`Idioma`,english:`Inglês`,spanish:`Espanhol`,setup:`CONFIGURAÇÃO`,connecting:`A ligar…`,localSession:`SESSÃO LOCAL`,progress:`Progresso`,studio:`ASSISTENTE DE CONFIGURAÇÃO`,journey:`O SEU PERCURSO`,repository:`Repositório`,choices:`Opções`,setupPat:`PAT de configuração`,plan:`Plano`,botPat:`PAT do bot e credenciais`,apply:`Aplicar`,localDesign:`Local por conceção`,localDesignBody:`Esta página funciona no seu computador. O GitHub cria ambos os PAT nos seus próprios separadores.`,preparing:`A preparar a configuração…`,completeTitle:`Configuração concluída.`,previewTitle:`Pré-visualização concluída.`,cancelledTitle:`Configuração cancelada.`,blockedTitle:`A configuração requer atenção.`,gettingReady:`A PREPARAR`,activeLede:`Uma decisão de cada vez. As suas escolhas determinam permissões, plano e credenciais.`,resultLede:`Consulte abaixo o resultado e o próximo passo. O terminal contém mais detalhes técnicos.`,readOnly:`Separador só de leitura`,readOnlyBody:`Outro separador controla esta sessão. Pode acompanhar o progresso ou assumir o controlo.`,takeOver:`Assumir o controlo`,attention:`Requer atenção`,checked:`Verificado`,pleaseNote:`Atenção`,progressUpdate:`Atualização de progresso`,reviewPass:`A rever as escolhas guardadas — passagem {pass}. É a mesma execução, não um reinício.`,cancelSetup:`Cancelar configuração`,cancelConfirm:`Cancelar esta sessão local? Os PAT já criados no GitHub continuarão a existir.`,footerLocal:`APENAS LOCALHOST`,footerCloud:`SEM CONTA DE CONFIGURAÇÃO NA NUVEM`,footerGithub:`O GITHUB EMITE OS PAT`,currentDecision:`DECISÃO ATUAL`,session:`SESSÃO`,continue:`Continuar`,previousQuestion:`Pergunta anterior`,questionProgress:`Pergunta {current} de {total} neste grupo · {overall} de {all} no total`,yes:`Sim`,no:`Não`,permissionPreview:`PRÉ-VISUALIZAÇÃO DAS PERMISSÕES`,changeAnswersTitle:`Alterar respostas`,changeAnswersHelp:`Volte a uma secção sem perder as outras respostas. O plano e as permissões PAT necessárias serão verificados de novo.`,changeSection:`Alterar {section}`,editCapabilities:`Funcionalidades`,editRuntimes:`Agentes`,editModels:`Modelos dos agentes`,editRoleModels:`Modelos por tarefa`,editRepository:`Comportamento do repositório`,editDeployment:`Releases e correções`,editBugbot:`Bugbot`,editApproval:`Aprovação de PR`,editProjects:`Projects`,editProvisioning:`Provisionamento`,editStorage:`Secrets e Variables`,suggested:`Resposta sugerida: {answer}. Pode rever as opções antes de criar o PAT.`,none:`nenhuma`,sourceGithub:`Observado nos metadados autenticados deste repositório no GitHub.`,sourceConfig:`Fornecido pela sua configuração; o GitHub não o substituiu.`,sourceDefault:`Valor predefinido do produto; não verificado neste repositório.`,sourceLocal:`Observado neste checkout local; confirme que o ramo existe no GitHub antes de aplicar alterações.`,whyMatters:`Porque importa`,whenApplies:`Quando se aplica`,whereConfigured:`Onde se configura`,howToChoose:`Como escolher`,whyRecommendation:`Porque importa`,example:`Exemplo`,effect:`O que muda`,verify:`Como verificar`,learnMore:`Ler a documentação desta opção`,resultApplied:`A configuração foi aplicada`,resultNoChanges:`Nenhuma alteração efetuada`,resultStopped:`Nenhuma alteração iniciada`,resultPartial:`Verifique as alterações parciais`,resultCompleteBody:`O PAT temporário não é revogado automaticamente. Elimine-o no GitHub após verificar. Guarde o PAT do bot até rodar o Secret.`,resultPartialBody:`Um Secret ou outro recurso pode ter sido alterado. Verifique o GitHub e execute copilot doctor --read-only antes de substituir ou eliminar o PAT.`,resultNoChangesBody:`O Copilot não começou a aplicar alterações. Podem ter ocorrido testes temporários de permissões; o GitHub pode conservar o histórico de Actions, Issues ou PR após a limpeza. Os PAT criados permanecem até serem eliminados.`,whatHappened:`O que aconteceu`,alreadyChanged:`O que mudou`,noChanges:`Não foram iniciadas alterações no repositório nem no GitHub nesta sessão.`,nextAction:`Próximo passo`,reasonPermissions:`Faltam permissões do PAT de configuração ou não foi possível confirmá-las.`,nextPermissions:`Verifique as permissões, corrija o PAT no GitHub e inicie uma nova sessão.`,reasonWorkflowPermissions:`O PAT do bot não concluiu todas as verificações de permissões. Verifique a permissão que falhou e os requisitos de preparação ou limpeza abaixo.`,permissionReportTitle:`Verificação das permissões do PAT`,permissionReportLead:`As permissões obrigatórias que não puderam ser confirmadas aparecem abaixo. «Não verificável» não significa «ausente».`,updatedSetupPatTitle:`Corrija o PAT de configuração`,updatedSetupPatBody:`Esta ligação do GitHub inclui as permissões necessárias para esta configuração. Selecione este repositório antes de criar o PAT. Feche esta sessão local e inicie uma nova configuração com o PAT corrigido.`,updatedSetupPatGrants:`Permissões adicionais detetadas após a inspeção`,updatedSetupPatLink:`Criar PAT de configuração corrigido`,permissionProbeCleanupPending:`Pode ainda existir um recurso temporário de verificação de permissões. O setup parou; não presuma que foi removido.`,permissionProbeCleanupAction:`Tente novamente com um PAT que o possa remover. O registo local de recuperação é verificado antes de novos testes.`,permissionSecretCollision:`O GitHub indicou que um Secret com o nome aleatório de teste foi atualizado. Um valor criado em simultâneo pode ter mudado. A configuração parou sem o eliminar.`,permissionSecretCollisionAction:`Consulte o histórico de Secrets do GitHub e reponha qualquer valor afetado antes de tentar novamente. O registo local não pode corrigir esta colisão.`,permissionIdentity:`Identidade GitHub e acesso ao repositório`,permissionIdentityValid:`Verificados`,permissionIdentityInvalid:`Recusados`,permissionIdentityUnknown:`Não confirmados`,permissionGrantNotChecked:`Não verificada`,permissionReportNoFailedGrant:`Esta verificação não encontrou uma permissão obrigatória em falta. Confirme a conta prevista para o PAT e o erro no terminal antes de tentar novamente.`,reasonStorage:`O armazenamento GitHub Actions escolhido não pôde ser usado com segurança.`,nextStorage:`Verifique o âmbito das Variables/Secrets e os recursos existentes; depois tente novamente.`,reasonConfiguration:`Não foi possível validar a configuração escolhida.`,nextConfiguration:`Leia os detalhes no terminal, corrija as opções e tente novamente.`,reasonExpired:`A sessão local expirou.`,nextExpired:`Inicie uma nova sessão; a aprovação anterior não pode ser reutilizada.`,reasonCancelled:`A configuração foi cancelada.`,nextCancelled:`Inicie outra execução se ainda quiser configurar o repositório.`,reasonUnknown:`A configuração parou. O navegador não conseguiu determinar a causa exata. Consulte o recibo de recursos, se estiver disponível, e o terminal.`,nextUnknown:`Leia o último erro no terminal antes de tentar novamente. Não presuma que um PAT foi revogado.`,reasonProvider:`O GitHub ou outro fornecedor não concluiu a operação solicitada.`,nextProvider:`Use a referência de diagnóstico para consultar o terminal, verifique a disponibilidade e o acesso e reveja possíveis alterações parciais antes de tentar novamente.`,reasonRateLimit:`O GitHub limitou temporariamente os pedidos necessários para a configuração.`,nextRateLimit:`Aguarde a reposição do limite. Inspecione as alterações concluídas antes de iniciar outra configuração.`,diagnosticReference:`Referência de diagnóstico`,resourceReceipt:`Registo das operações de configuração`,effectCompleted:`Indicada como concluída`,effectSkipped:`Indicada como ignorada`,effectInspect:`Resultado por inspecionar`,effectNotStarted:`Não iniciada`,effectInProgress:`Em curso; resultado ainda por confirmar`,scopeLocal:`Checkout local`,scopeMixed:`Repositório e organização`,receiptFiles:`Ficheiros de configuração`,receiptSecrets:`Secrets do GitHub Actions`,receiptLabels:`Etiquetas das questões`,receiptIssueTypes:`Tipos de questão`,receiptVariables:`Variables do GitHub Actions`,receiptInitialTag:`Etiqueta de versão inicial`,inspectPartial:`Algumas alterações podem estar ativas. Verifique o GitHub e o terminal antes de tentar novamente.`,patSettings:`Abrir definições de PAT no GitHub ↗`,closeSession:`Fechar sessão local`,sessionClosed:`Sessão local encerrada`,sessionClosedBody:`O servidor local aceitou o pedido de encerramento. Esta página deixa de o contactar e preserva o resultado. Encerrar a sessão não revoga nenhum PAT criado no GitHub.`,doctorHelp:`Depois de concluir a configuração, pode verificar aqui os recursos instalados sem iniciar Actions. Também pode executar copilot doctor --read-only na raiz do repositório com o PAT temporário e o mesmo ficheiro --config não secreto, caso o tenha usado.`,doctorRun:`Verificar instalação (só de leitura)`,doctorRunning:`A verificar os recursos instalados sem iniciar Actions…`,doctorPassed:`A verificação só de leitura não encontrou falhas.`,doctorWarnings:`A verificação só de leitura requer atenção.`,doctorFailed:`A verificação só de leitura não terminou. Consulte o terminal ou execute o comando abaixo.`,doctorCounts:`{pass} aprovados · {warn} avisos · {fail} falhas · {skipped} ignorados.`,doctorSecretLimit:`Este modo não consegue verificar os valores dos Secrets.`,botRenewal:`O PAT do bot permanece no Secret do GitHub Actions escolhido para execuções futuras. A data de validade real não é verificada aqui; registe-a no GitHub e substitua o Secret antes de expirar.`,working:`A preparar o próximo passo`,workingBody:`O processo local está a verificar as respostas. Mantenha esta página aberta.`,repoFocus:`Repositório em foco`,repoFocusBody:`Esta configuração destina-se ao repositório indicado. Secrets e Variables da organização podem ser partilhados com outros repositórios.`,access:`acesso`,readOnlyCheck:`Verificação de capacidades`,provisionalGrants:`Permissões provisórias mínimas`,conditionalGrants:`As permissões condicionais dependem das escolhas e do GitHub. Haverá uma auditoria final antes das alterações.`,permissionEvidenceVerified:`Uma leitura no GitHub confirmou este acesso.`,permissionEvidenceVerifiedWrite:`Foi criado, lido e removido um recurso temporário.`,permissionEvidencePrivateProject:`Um Project não público da organização confirmou o acesso de leitura a Projects.`,permissionEvidenceMissing:`O GitHub recusou o acesso necessário. Verifique as definições do PAT.`,permissionEvidenceWrite:`A verificação temporária de escrita não terminou com sucesso. Reveja a etapa que falhou e tente novamente.`,permissionEvidencePublic:`A leitura foi bem-sucedida, mas este recurso público não comprova por si só a permissão do PAT.`,permissionEvidencePublicProjects:`A leitura dos Projects foi bem-sucedida, mesmo com uma lista vazia. O acesso a Projects privados é verificado quando são selecionados.`,permissionEvidenceUnknownRead:`A consulta de leitura foi inconclusiva. Consulte o detalhe no terminal e tente de novo se necessário.`,permissionUnknown:`Esta permissão exige revisão. Consulte a permissão exata e a explicação técnica no terminal antes de continuar.`,permissionsFollow:`As permissões seguem as suas escolhas`,permissionsFollowBody:`Mostramos as permissões exatas antes de criar cada PAT. Abrir esta página não cria nada.`,files:`Ficheiros`,workflows:`Workflows`,variables:`Variables`,secretNames:`Nomes dos Secrets`,planBody:`Reveja exatamente o que pode mudar. Após a aprovação, recursos temporários testam as permissões de escrita do PAT; depois são pedidos o PAT do bot e outras credenciais. O GitHub pode conservar execuções, histórico de Issues ou PR e notificações.`,planPermissionProbeTitle:`Testes temporários de permissões após aprovação`,planPermissionProbeBody:`Cada permissão indicada cria, lê e remove o seu recurso temporário. O teste de Issues cria uma Issue visível; se o GitHub impedir a eliminação, a configuração fecha-a, indica o número e para. Actions, Issues e Pull requests podem deixar histórico ou notificações.`,planActionsProbePrerequisites:`O teste de Actions precisa de Contents Write para criar a branch isolada. Se o workflow de saúde empacotado exato não estiver disponível na branch predefinida, também precisa de Workflows Write para preparar uma versão com os jobs desativados. Para verificar o bot, o PAT de configuração prepara e limpa o recurso; o PAT do bot inicia e lê a execução. Um pré-requisito bloqueado não prova que falte Actions.`,planSecretProbeLimit:`O GitHub só oferece uma operação de criação ou atualização para Secrets. A verificação usa um nome aleatório privado e confirma primeiro que não existe, mas o GitHub não garante uma criação atómica. Se indicar uma atualização, a configuração para e pede a revisão do histórico do Secret.`,planChoices:`As suas decisões principais`,planEnabledCapabilities:`Funcionalidades ativadas`,planBranchRoles:`Ramo de produção / desenvolvimento`,planApprovalMode:`Aprovação de pull requests`,planVariableScope:`Âmbito das Variables`,planSecretScope:`Âmbito dos Secrets`,planInitialTag:`Criar etiqueta inicial`,planAgentRouting:`Agente e modelo por tarefa`,planIssueWorkflows:`Fluxos de questões`,planTrustedChecks:`Produtores CI de confiança`,planCoverage:`Evidência de cobertura`,planProjectStatuses:`Transições Status dos Projects`,planIssueResources:`Etiquetas e tipos de questão`,planIssueResourcesValue:`Verificados ou criados ao aplicar`,planProducerAttested:`Identidade CI e passo obrigatório verificados por si`,planCoverageThreshold:`Cobertura mínima das linhas alteradas`,planCoverageReporter:`Workflow que publica o artefacto`,planReporterAttested:`Produtor do relatório de cobertura verificado por si`,planAdvancedDefaults:`O plano também inclui valores predefinidos para definições que não alterou. Use Alterar abaixo para rever qualquer secção antes de aprovar.`,planUnknownWarning:`Um aviso adicional do plano não pode ser apresentado aqui. Leia-o no terminal antes de aprovar.`,planBasicDefaultsIntro:`O percurso básico manteve estas definições avançadas. Abra uma secção abaixo para as rever ou alterar:`,scopeRepository:`Repositório`,scopeOrganization:`Organização`,scopeDisabled:`Sem aprovisionamento`,approvalOff:`Desativada`,approvalRecommend:`Apenas recomendações`,approvalGuarded:`Aprovação protegida`,beforeContinue:`Antes de continuar`,stopHere:`Parar aqui`,approvePlan:`Aprovar este plano`,githubLink:`Abrir ligação do GitHub ↗`,githubForm:`Abrir formulário oficial de PAT no GitHub`,githubFormHelp:`Confirme a conta ligada, escolha Only select repositories e este repositório. O GitHub gere 2FA e cria o PAT.`,pasteHere:`Cole o valor aqui`,yourAnswer:`A sua resposta`,hiddenAfter:`Oculto após envio`,typeAnswer:`Escreva a sua resposta`,secretHelp:`Enviado apenas ao processo local. Não será mostrado de novo nem guardado no navegador.`,pairTitle:`Emparelhar este navegador`,pairLabel:`Código do terminal`,pairPlaceholder:`16 caracteres hexadecimais`,pairBody:`Encontre o código de 16 caracteres no terminal onde iniciou copilot setup --web. Não aparece no URL nem fica guardado após fechar a página.`,pairHelp:`Mantenha o código privado. Após atualizar a página, introduza-o novamente.`,pairButton:`Ligar à configuração local`,privateSession:`SESSÃO LOCAL PRIVADA`,theme:`Tema`,themeAuto:`Automático`,themeSystem:`Seguir sistema`,themeLight:`Tema claro`,themeDark:`Tema escuro`,selectOne:`Selecione uma opção`,ciRun:`Abrir execução de CI no GitHub ↗`,manualCheck:`Check não listado? Indique nome|ID da App|workflow exatos, separados por ponto e vírgula.`,checksObserved:`Foram encontrados jobs recentes de CI. Abra cada execução e confirme o job, a App e o passo obrigatório de cobertura antes de confiar nele.`,checksNoRecent:`Não há execuções recentes de workflows de pull request. Execute o CI habitual numa PR real ou introduza um produtor exato.`,checksNoVerifiable:`Há execuções recentes, mas nenhum job foi ligado a um Check Run e App exatos. Consulte o GitHub ou introduza o produtor manualmente.`,checksDenied:`O GitHub recusou a consulta do CI. Conceda Actions: read e Checks: read ao PAT de configuração ou introduza um produtor exato.`,checksUnavailable:`A consulta do CI falhou. Isto não prova que o repositório não tenha checks. Tente novamente ou introduza um produtor exato.`,projectsObserved:`Estes Projects existentes pertencem ao proprietário do repositório. Selecione só os que a automatização deve atualizar.`,projectsEmpty:`Esta consulta limitada ao GitHub não devolveu Projects abertos e acessíveis; isso não prova que não existam. Verifique o acesso ou introduza um número confirmado.`,projectsDenied:`O GitHub recusou a consulta de Projects. Verifique Projects: read da organização no PAT ou introduza os números.`,projectsUnavailable:`Não foi possível consultar Projects. Isto não prova que não existam. Introduza um número verificado ou tente novamente.`,projectsUnsupported:`Esta API do GitHub não lista Projects pessoais com um PAT de permissões precisas. Introduza o número do URL de um Project existente.`,discoveryTruncated:`Só foi inspecionada uma amostra limitada de Projects acessíveis ou checks recentes. Introduza manualmente um elemento em falta.`,checksDiscoveryScope:`Âmbito: até 20 execuções de PR entre as últimas 1.000 execuções de workflows (até 10 páginas) dos últimos 90 dias; são inspecionadas no máximo 15 execuções e 100 checks por commit.`,projectsDiscoveryScope:`Âmbito: no máximo 30 Projects abertos e acessíveis da organização em duas páginas; são inspecionados até 100 campos por Project. Os Projects fechados são excluídos.`,retryDiscovery:`Repetir pesquisa no GitHub`,retryRemaining:`Restam {count} tentativas só de leitura. As suas respostas são mantidas.`,retryExhausted:`Não restam tentativas. Verifique o GitHub e introduza manualmente os itens em falta.`,observationTimeUnknown:`data de observação indisponível`,branchRequirementUnknown:`Exigido pela regra do ramo: não verificado`,branchRequirementObserved:`Exigido em {branch} por um ruleset ativo para esta verificação e esta App específicas.`,ciRule:`Abrir ruleset da verificação obrigatória ↗`,projectSharedStatus:`Todos os Projects escolhidos devem partilhar cada valor Status. Esta configuração não atribui valores diferentes por Project.`,fixedWorkflowEnabled:`A sua configuração fixa features.{kind}=true. Mantenha {kind} selecionado; altere --config ou as opções para mudar esta escolha.`,fixedWorkflowDisabled:`A sua configuração fixa features.{kind}=false. Não selecione {kind}; altere --config ou as opções para mudar esta escolha.`,fixedIssuesRequired:`A sua configuração ativa explicitamente release ou hotfix. Mantenha Issues ativo ou altere primeiro --config ou as opções.`,projectSelectionNotObserved:`Os números de Projects escolhidos anteriormente são mantidos, mas já não aparecem neste resultado do GitHub. Confirme-os no GitHub ou remova-os.`,removeSelection:`Remover seleção`,projectTransitionIssueCreated:`Nova questão`,projectTransitionPullRequestCreated:`Novo pull request`,projectTransitionIssueInProgress:`Questão em curso`,projectTransitionPullRequestInProgress:`Pull request em curso`,projectUrl:`Abrir Project no GitHub ↗`,projectManual:`Project em falta? Introduza o número positivo ou o URL exato do GitHub. IDs PVT_ não são aceites.`,projectStatusUnavailable:`Não foi possível verificar as opções Status de todos os Projects. Consulte cada um no GitHub e introduza o valor exato.`,projectStatusIncompatible:`Os Projects escolhidos não partilham valores Status. Selecione Projects compatíveis antes de continuar.`,producerName:`Nome do check/job`,producerAppId:`ID da App GitHub de origem`,producerWorkflow:`Nome do workflow`,producerAdd:`Adicionar check exato`,producerRemove:`Remover check`,producerManualHelp:`Use a identidade exata apresentada no GitHub. Adicioná-la não prova que exige cobertura.`,producerManualInvalid:`Indique nome, ID numérico positivo da App e workflow. Não use | ou ; nos nomes. São permitidas vírgulas.`,translationPreviewTitle:`Revisão da tradução em curso`,translationPreviewBody:`As perguntas próprias da configuração já estão traduzidas. Alguns diagnósticos dinâmicos do GitHub ou do fornecedor ainda podem aparecer em inglês durante a revisão. Mudar de idioma não altera as suas respostas.`,unknownLocalError:`Ocorreu um erro inesperado na configuração local. Consulte o terminal e atualize a página ou reinicie a configuração.`},qi=[`en`,`es`,`fr`,`pt`],Ji={en:`English`,es:`Español`,fr:`Français`,pt:`Português`},Yi={en:Ui,es:Wi,fr:Gi,pt:Ki};function Z(e,t,n={}){return(Yi[t]??Yi.en)[e].replace(/\{(\w+)\}/gu,(e,t)=>n[t]??``)}var Xi={Repository:`repository`,"Setup choices":`choices`,"Setup PAT":`setupPat`,Plan:`plan`,"Bot PAT & credentials":`botPat`,Apply:`apply`,Preparation:`gettingReady`};function Zi(e,t){return Z(Qi(e),t)}function Qi(e){return Xi[e??``]??`gettingReady`}var Q=Pi(`en`),$i={en:{checking:`Checking permission for this adjustment. The temporary Variable will be removed before the reviewed setting is written.`,finish:`Finish`,finished:`Configuration updated`,inspectionFinished:`Configuration inspection finished`,inspectionStopped:`Configuration inspection stopped`,inspectAdjustment:`Check this adjustment before retrying`,finishedBody:`Your adjustments were verified by reading GitHub again. Delete the temporary setup PAT when you finish.`,inspectionBody:`No adjustment was applied. Your configuration is preserved. Any PAT created on GitHub remains until you delete it.`,title:`Your Copilot configuration`,unconfigured:`Copilot is not configured in this checkout`,detected:`Configuration detected in this checkout`,incomplete:`Some configuration could not be inspected`,intro:`Review what this checkout configures, make a small adjustment, or run the complete assistant again.`,startHelp:`Start the guided assistant to choose workflows, agents and GitHub settings for this repository. You will review the plan before any setup changes are applied.`,local:`Local files are shown below. Connect to GitHub to read the current repository and organization settings. No changes happen when you open this panel.`,limits:`This panel describes the current checkout. It does not certify the default branch, runner authentication, branch rules, or environment-specific overrides.`,connect:`Read configuration from GitHub`,refresh:`Refresh configuration`,wizard:`Run the complete assistant`,start:`Start setup`,close:`Close local session`,unknown:`Not verified`,repository:`Repository`,organization:`Organization`,workflow:`Workflow value`,source:`Where this value comes from`,quick:`Quick adjustments`,quickHelp:`Only independent settings can be changed here. Use the complete assistant for workflows, agents, Projects, permissions or credentials.`,edit:`Change`,details:`All workflow settings`,credentials:`Credentials`,secretHelp:`Secret names only. GitHub cannot return their values, owners or permissions; presence is not proof of validity.`,variables:`GitHub settings used by these workflows`,shadowed:`Overridden by the repository value`,empty:`No entries detected`,githubIncomplete:`Some GitHub inventories are unavailable. Unknown values stay unknown; quick changes are disabled until both Variable scopes can be read.`,current:`Current value`,next:`New value`,review:`Review this adjustment`,back:`Back to configuration`,preview:`Review change`,apply:`Apply this adjustment`,effect:`Only this setting is written. Workflows and Secrets are preserved. Before writing, Copilot tests Variables Write using one temporary Variable and removes it.`,orgImpact:`This changes a shared organization setting and can affect every repository with access to it. Its visibility and repository access are preserved.`,repoImpact:`This changes the setting for this repository only.`,connected:`GitHub configuration read. Review the current values below.`,invalid:`Choose a supported value. Nothing was changed.`,unchanged:`That value is already in effect. Nothing was changed.`,stale:`The configuration changed while you reviewed it. Review the refreshed value and try again; nothing was written.`,blocked:`Access could not be confirmed. You can reconnect with a corrected setup PAT; your configuration is preserved.`,updated:`Adjustment applied and read back from GitHub. You can make another adjustment or close the session.`,partial:`The write could not be confirmed. Inspect GitHub before retrying; the previous value was not restored automatically.`},es:{checking:`Comprobando el permiso para este ajuste. La Variable temporal se eliminará antes de escribir el parámetro aprobado.`,finish:`Terminar`,finished:`Configuración actualizada`,inspectionFinished:`Inspección de configuración finalizada`,inspectionStopped:`Inspección de configuración interrumpida`,inspectAdjustment:`Revisa este ajuste antes de reintentar`,finishedBody:`Los ajustes se confirmaron mediante una nueva lectura de GitHub. Elimina el PAT temporal de setup cuando termines.`,inspectionBody:`No se ha aplicado ningún ajuste. Tu configuración se conserva. Los PAT creados en GitHub existen hasta que los elimines.`,title:`Tu configuración de Copilot`,unconfigured:`Copilot no está configurado en este checkout`,detected:`Configuración detectada en este checkout`,incomplete:`No se pudo inspeccionar parte de la configuración`,intro:`Revisa la configuración de este checkout, haz un ajuste puntual o vuelve a ejecutar el asistente completo.`,startHelp:`Inicia el asistente guiado para elegir workflows, agentes y parámetros de GitHub para este repositorio. Revisarás el plan antes de aplicar cambios de configuración.`,local:`Estos son los archivos locales. Conecta con GitHub para leer los valores actuales del repositorio y la organización. Abrir el panel no realiza cambios.`,limits:`El panel describe este checkout. No certifica la rama por defecto, la autenticación del runner, las reglas de ramas ni las excepciones de entornos.`,connect:`Leer configuración de GitHub`,refresh:`Actualizar información`,wizard:`Ejecutar el asistente completo`,start:`Iniciar configuración`,close:`Cerrar sesión local`,unknown:`Sin verificar`,repository:`Repositorio`,organization:`Organización`,workflow:`Valor del workflow`,source:`Procedencia del valor`,quick:`Ajustes rápidos`,quickHelp:`Aquí puedes cambiar parámetros independientes. Para workflows, agentes, Projects, permisos o credenciales, usa el asistente completo.`,edit:`Cambiar`,details:`Todos los parámetros de los workflows`,credentials:`Credenciales`,secretHelp:`Solo se muestran nombres. GitHub no devuelve valores, propietarios ni permisos de los Secrets; su presencia no demuestra su validez.`,variables:`Parámetros de GitHub usados por estos workflows`,shadowed:`El valor del repositorio tiene prioridad`,empty:`No se han detectado entradas`,githubIncomplete:`Parte de la información de GitHub no está disponible. Los valores desconocidos siguen sin verificar; los ajustes requieren leer ambos scopes de Variables.`,current:`Valor actual`,next:`Nuevo valor`,review:`Revisar este ajuste`,back:`Volver a la configuración`,preview:`Revisar cambio`,apply:`Aplicar este ajuste`,effect:`Solo se escribe este parámetro. Se conservan workflows y Secrets. Antes de escribir, Copilot prueba Variables Write con una Variable temporal y la elimina.`,orgImpact:`Cambiarás un parámetro compartido de la organización: puede afectar a todos los repositorios con acceso. Se conservarán su visibilidad y sus accesos.`,repoImpact:`El cambio afecta únicamente a este repositorio.`,connected:`Configuración de GitHub leída. Revisa los valores actuales.`,invalid:`Elige un valor permitido. No se ha cambiado nada.`,unchanged:`Ese valor ya está en uso. No se ha cambiado nada.`,stale:`La configuración cambió durante la revisión. Revisa el valor actualizado y vuelve a intentarlo; no se ha escrito nada.`,blocked:`No se pudo confirmar el acceso. Puedes conectar con un PAT de setup corregido; tu configuración se conserva.`,updated:`Ajuste aplicado y confirmado mediante una nueva lectura de GitHub. Puedes hacer otro ajuste o cerrar la sesión.`,partial:`No se pudo confirmar la escritura. Revisa GitHub antes de reintentar; el valor anterior no se restauró automáticamente.`},fr:{checking:`Vérification de la permission pour cet ajustement. La Variable temporaire sera supprimée avant l’écriture du paramètre approuvé.`,finish:`Terminer`,finished:`Configuration mise à jour`,inspectionFinished:`Inspection de la configuration terminée`,inspectionStopped:`Inspection de la configuration interrompue`,inspectAdjustment:`Vérifiez cet ajustement avant de réessayer`,finishedBody:`Les ajustements ont été confirmés par une nouvelle lecture de GitHub. Supprimez le PAT temporaire à la fin.`,inspectionBody:`Aucun ajustement appliqué. La configuration est conservée. Tout PAT créé sur GitHub existe jusqu’à sa suppression.`,title:`Votre configuration Copilot`,unconfigured:`Copilot n’est pas configuré dans ce checkout`,detected:`Configuration détectée dans ce checkout`,incomplete:`Une partie de la configuration n’a pas pu être inspectée`,intro:`Consultez la configuration, ajustez un paramètre ou relancez l’assistant complet.`,local:`Voici les fichiers locaux. Connectez GitHub pour lire les valeurs actuelles du dépôt et de l’organisation. Ouvrir ce panneau ne modifie rien.`,startHelp:`Lancez l’assistant guidé pour choisir les workflows, agents et paramètres GitHub de ce dépôt. Vous examinerez le plan avant toute modification de configuration.`,limits:`Ce panneau décrit le checkout actuel. Il ne certifie pas la branche par défaut, l’authentification du runner, les règles de branches ni les exceptions des environnements.`,connect:`Lire la configuration GitHub`,refresh:`Actualiser`,wizard:`Relancer l’assistant complet`,start:`Configurer Copilot`,close:`Fermer la session locale`,unknown:`Non vérifié`,repository:`Dépôt`,organization:`Organisation`,workflow:`Valeur du workflow`,source:`Origine de cette valeur`,quick:`Ajustements rapides`,quickHelp:`Seuls les paramètres indépendants sont modifiables ici. Utilisez l’assistant complet pour les workflows, agents, Projects, permissions ou identifiants.`,edit:`Modifier`,details:`Tous les paramètres des workflows`,credentials:`Identifiants`,secretHelp:`Noms des Secrets uniquement. GitHub ne retourne ni valeurs, ni propriétaires, ni permissions ; leur présence ne prouve pas leur validité.`,variables:`Paramètres GitHub utilisés par ces workflows`,shadowed:`Remplacé par la valeur du dépôt`,empty:`Aucune entrée détectée`,githubIncomplete:`Certaines données GitHub sont indisponibles. Les valeurs inconnues restent non vérifiées ; les deux scopes de Variables doivent être lisibles.`,current:`Valeur actuelle`,next:`Nouvelle valeur`,review:`Vérifier cet ajustement`,back:`Retour à la configuration`,preview:`Vérifier le changement`,apply:`Appliquer cet ajustement`,effect:`Seul ce paramètre est écrit. Workflows et Secrets sont conservés. Copilot teste Variables Write avec une Variable temporaire, puis la supprime.`,orgImpact:`Ce paramètre partagé peut affecter tous les dépôts autorisés. Sa visibilité et ses accès restent identiques.`,repoImpact:`Ce changement affecte seulement ce dépôt.`,connected:`Configuration GitHub lue. Consultez les valeurs actuelles.`,invalid:`Choisissez une valeur autorisée. Aucun changement.`,unchanged:`Cette valeur est déjà appliquée. Aucun changement.`,stale:`La configuration a changé pendant votre examen. Vérifiez la nouvelle valeur et réessayez ; aucune écriture.`,blocked:`L’accès n’a pas été confirmé. Reconnectez un PAT de configuration corrigé ; la configuration est conservée.`,updated:`Ajustement appliqué et relu depuis GitHub. Vous pouvez continuer ou fermer la session.`,partial:`L’écriture n’a pas été confirmée. Vérifiez GitHub avant de réessayer ; la valeur précédente n’a pas été restaurée automatiquement.`},pt:{checking:`A verificar a permissão para este ajuste. A Variable temporária será eliminada antes de escrever o parâmetro aprovado.`,finish:`Terminar`,finished:`Configuração atualizada`,inspectionFinished:`Inspeção da configuração concluída`,inspectionStopped:`Inspeção da configuração interrompida`,inspectAdjustment:`Verifique este ajuste antes de tentar novamente`,finishedBody:`Os ajustes foram confirmados por uma nova leitura do GitHub. Elimine o PAT temporário de setup ao terminar.`,inspectionBody:`Nenhum ajuste aplicado. A configuração é preservada. Os PAT criados no GitHub existem até os eliminar.`,title:`A sua configuração Copilot`,unconfigured:`Copilot não está configurado neste checkout`,detected:`Configuração detetada neste checkout`,incomplete:`Parte da configuração não pôde ser inspecionada`,intro:`Veja a configuração, ajuste um parâmetro ou execute o assistente completo novamente.`,local:`Estes são os ficheiros locais. Ligue ao GitHub para ler os valores atuais do repositório e da organização. Abrir este painel não altera nada.`,startHelp:`Inicie o assistente guiado para escolher workflows, agentes e parâmetros GitHub para este repositório. Irá rever o plano antes de aplicar alterações de configuração.`,limits:`Este painel descreve o checkout atual. Não certifica o branch predefinido, a autenticação do runner, as regras de branches nem exceções dos ambientes.`,connect:`Ler configuração do GitHub`,refresh:`Atualizar informação`,wizard:`Executar o assistente completo`,start:`Configurar Copilot`,close:`Fechar sessão local`,unknown:`Não verificado`,repository:`Repositório`,organization:`Organização`,workflow:`Valor do workflow`,source:`Origem do valor`,quick:`Ajustes rápidos`,quickHelp:`Aqui pode alterar parâmetros independentes. Use o assistente completo para workflows, agentes, Projects, permissões ou credenciais.`,edit:`Alterar`,details:`Todos os parâmetros dos workflows`,credentials:`Credenciais`,secretHelp:`Apenas nomes dos Secrets. GitHub não devolve valores, contas ou permissões; a presença não comprova a validade.`,variables:`Parâmetros GitHub usados por estes workflows`,shadowed:`Substituído pelo valor do repositório`,empty:`Nenhuma entrada detetada`,githubIncomplete:`Alguns dados GitHub estão indisponíveis. Os valores desconhecidos continuam não verificados; os dois scopes de Variables devem poder ser lidos.`,current:`Valor atual`,next:`Novo valor`,review:`Rever este ajuste`,back:`Voltar à configuração`,preview:`Rever alteração`,apply:`Aplicar este ajuste`,effect:`Só este parâmetro é escrito. Workflows e Secrets são preservados. Copilot testa Variables Write com uma Variable temporária e depois elimina-a.`,orgImpact:`Este parâmetro partilhado pode afetar todos os repositórios autorizados. A visibilidade e os acessos são preservados.`,repoImpact:`Esta alteração afeta apenas este repositório.`,connected:`Configuração GitHub lida. Reveja os valores atuais.`,invalid:`Escolha um valor permitido. Nada foi alterado.`,unchanged:`Este valor já está aplicado. Nada foi alterado.`,stale:`A configuração mudou durante a revisão. Reveja o valor atualizado e tente novamente; nada foi escrito.`,blocked:`O acesso não foi confirmado. Ligue um PAT de setup corrigido; a configuração é preservada.`,updated:`Ajuste aplicado e confirmado por uma nova leitura do GitHub. Pode continuar ou fechar a sessão.`,partial:`A escrita não foi confirmada. Verifique GitHub antes de tentar novamente; o valor anterior não foi restaurado automaticamente.`}},ea={assignees:[`Issue assignees`,`Responsables de issues`,`Responsables des issues`,`Responsáveis pelas issues`],reviewers:[`PR reviewers`,`Revisores de PRs`,`Relecteurs des PRs`,`Revisores de PRs`],inactivity:[`Close waiting issues after (hours)`,`Cerrar issues en espera tras (horas)`,`Fermer les issues en attente après (heures)`,`Fechar issues em espera após (horas)`],reopen:[`Reopen issues after a push`,`Reabrir issues tras un push`,`Rouvrir les issues après un push`,`Reabrir issues após um push`],description:[`PR description updates`,`Actualizaciones de la descripción de PRs`,`Mise à jour des descriptions de PRs`,`Atualizações da descrição de PRs`],members:[`Limit AI interactions to members`,`Limitar interacciones de IA a miembros`,`Limiter l’IA aux membres`,`Limitar interações de IA a membros`],reasoning:[`Include AI reasoning`,`Incluir razonamiento de IA`,`Inclure le raisonnement de l’IA`,`Incluir raciocínio da IA`],severity:[`Minimum finding severity`,`Severidad mínima de findings`,`Gravité minimale des findings`,`Gravidade mínima dos findings`],commentLimit:[`Maximum review comments`,`Máximo de comentarios por revisión`,`Maximum de commentaires par analyse`,`Máximo de comentários por revisão`],dryRun:[`Preview findings without publishing`,`Analizar findings sin publicarlos`,`Analyser sans publier les findings`,`Analisar findings sem publicar`],effort:[`Review depth`,`Profundidad de revisión`,`Profondeur de l’analyse`,`Profundidade da revisão`],drafts:[`Review draft PRs`,`Revisar PRs en borrador`,`Analyser les PRs en brouillon`,`Rever PRs em rascunho`],suggestions:[`Publish suggested code changes`,`Publicar cambios de código sugeridos`,`Publier des suggestions de code`,`Publicar sugestões de código`],telemetry:[`Include review metrics`,`Incluir métricas de revisión`,`Inclure les métriques d’analyse`,`Incluir métricas de revisão`]},ta=e=>$i[e],na=(e,t)=>ea[e]?.[[`en`,`es`,`fr`,`pt`].indexOf(t)]??e,ra={true:[`On`,`Activado`,`Activé`,`Ativado`],false:[`Off`,`Desactivado`,`Désactivé`,`Desativado`],replace:[`Replace the description`,`Sustituir la descripción`,`Remplacer la description`,`Substituir a descrição`],append:[`Add to the description`,`Añadir a la descripción`,`Compléter la description`,`Acrescentar à descrição`],preserve:[`Keep the description`,`Conservar la descripción`,`Conserver la description`,`Preservar a descrição`],disabled:[`Disabled`,`Desactivado`,`Désactivé`,`Desativado`],info:[`Informational`,`Informativo`,`Information`,`Informativo`],low:[`Low`,`Bajo`,`Faible`,`Baixo`],medium:[`Medium`,`Medio`,`Moyen`,`Médio`],high:[`High`,`Alto`,`Élevé`,`Alto`],smart:[`Automatic`,`Automático`,`Automatique`,`Automático`],default:[`Standard`,`Estándar`,`Standard`,`Padrão`]},ia=(e,t)=>ra[e]?.[[`en`,`es`,`fr`,`pt`].indexOf(t)]??e,aa=U(`

`,1),oa=U(`
  • `),sa=U(`
      `,1),ca=U(``);function la(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=j(),o=X(t,`management`,8,!1),s=X(t,`journey`,8),c=[`repository`,`choices`,`setupPat`,`plan`,`botPat`,`apply`];L(()=>(H(s()),Qi),()=>{M(a,s()?.complete?.map(Qi)??[])}),En(),Ai();var l=ca(),u=N(l),d=I(N(u)),f=F(I(N(d)),!0);D(d),D(u);var p=I(u,2),m=e=>{var t=aa(),r=P(t),i=F(r,!0),a=F(I(r,2),!0);R((e,t)=>{G(i,e),G(a,t)},[()=>(H(ta),n(),V(()=>ta(n()).title)),()=>(H(ta),n(),V(()=>ta(n()).quickHelp))]),W(e,t)},h=e=>{var t=sa(),r=P(t),i=F(r,!0),o=I(r,2);J(o,5,()=>c,q,(e,t,r)=>{var i=oa();let o;var c=N(i),l=F(c,!0),u=F(I(c,2),!0);D(i),R((e,t,n,r,a)=>{Y(i,`aria-current`,e),o=li(i,1,``,null,o,{current:t,completed:n}),G(l,r),G(u,a)},[()=>(H(s()),B(a),B(t),V(()=>s()?.position===r+1&&!B(a).includes(B(t))?`step`:void 0)),()=>s()?.position===r+1&&!B(a).includes(B(t)),()=>B(a).includes(B(t)),()=>(B(a),B(t),V(()=>B(a).includes(B(t))?`✓`:String(r+1).padStart(2,`0`))),()=>(H(Z),B(t),n(),V(()=>Z(B(t),n())))]),W(e,i)}),D(o),R(e=>G(i,e),[()=>(H(Z),n(),V(()=>Z(`journey`,n())))]),W(e,t)};K(p,e=>{o()?e(m):e(h,-1)});var g=I(p,2),_=I(N(g)),v=N(_),y=F(v,!0),b=F(I(v),!0);D(_),D(g),D(l),R((e,t,n,r)=>{Y(l,`aria-label`,e),G(f,t),G(y,n),G(b,r)},[()=>(H(Z),n(),V(()=>Z(`progress`,n()))),()=>(H(Z),n(),V(()=>Z(`studio`,n()))),()=>(H(Z),n(),V(()=>Z(`localDesign`,n()))),()=>(H(Z),n(),V(()=>Z(`localDesignBody`,n())))]),W(e,l),Je(),i()}var ua=U(`
      `);function da(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=j(`system`);L(()=>B(a),()=>{document.documentElement.dataset.theme=B(a)}),En(),Ai();var o=ua(),s=N(o);let c;var l=F(s,!0),u=I(s,2);let d;var f=I(u,2);let p;D(o),R((e,t,n,r,i,m,h,g)=>{Y(o,`aria-label`,e),Y(s,`aria-pressed`,B(a)===`system`),Y(s,`aria-label`,t),Y(s,`title`,n),c=li(s,1,``,null,c,{active:B(a)===`system`}),G(l,r),Y(u,`aria-pressed`,B(a)===`light`),Y(u,`aria-label`,i),Y(u,`title`,m),d=li(u,1,``,null,d,{active:B(a)===`light`}),Y(f,`aria-pressed`,B(a)===`dark`),Y(f,`aria-label`,h),Y(f,`title`,g),p=li(f,1,``,null,p,{active:B(a)===`dark`})},[()=>(H(Z),n(),V(()=>Z(`theme`,n()))),()=>(H(Z),n(),V(()=>Z(`themeSystem`,n()))),()=>(H(Z),n(),V(()=>Z(`themeSystem`,n()))),()=>(H(Z),n(),V(()=>Z(`themeAuto`,n()))),()=>(H(Z),n(),V(()=>Z(`themeLight`,n()))),()=>(H(Z),n(),V(()=>Z(`themeLight`,n()))),()=>(H(Z),n(),V(()=>Z(`themeDark`,n()))),()=>(H(Z),n(),V(()=>Z(`themeDark`,n())))]),Cr(`click`,s,()=>M(a,`system`)),Cr(`click`,u,()=>M(a,`light`)),Cr(`click`,f,()=>M(a,`dark`)),W(e,o),Je(),i()}wr([`click`]);var fa=U(``),pa=U(` `,1);function ma(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi();function a(e){let t=e.currentTarget.value;qi.includes(t)&&Q.set(t)}Ai();var o=pa(),s=P(o),c=N(s),l=I(c);J(l,5,()=>qi,q,(e,t)=>{var n=fa(),r=F(n,!0),i={};R(()=>{G(r,Ji[B(t)]),i!==(i=B(t))&&(n.value=(n.__value=i)??``)}),W(e,n)}),D(l);var u;pi(l),D(s);var d=F(I(s,2),!0);R((e,t)=>{G(c,`${e??``} `),Y(l,`aria-label`,t),u!==(u=n())&&(l.value=(l.__value=u)??``,fi(l,u)),G(d,Ji[n()])},[()=>Z(`language`,n()),()=>Z(`language`,n())]),Cr(`change`,l,a),W(e,o),Je(),i()}wr([`change`]);var ha=U(``),ga=U(`
      `);function _a(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=X(t,`repository`,8),o=X(t,`closed`,8,!1);Ai();var s=ga(),c=N(s),l=N(c),u=F(l,!0),d=I(l,2),f=F(N(d),!0);D(d),D(c);var p=I(c,2),m=N(p),h=N(m),g=e=>{W(e,ha())};K(h,e=>{o()||e(g)});var _=I(h);D(m);var v=I(m);ma(v,{}),da(I(v),{}),D(p),D(s),R((e,t,n)=>{G(u,e),G(f,t),G(_,` ${n??``}`)},[()=>(H(Z),n(),V(()=>Z(`setup`,n()))),()=>(H(a()),H(Z),n(),V(()=>a()??Z(`connecting`,n()))),()=>(H(Z),H(o()),n(),V(()=>Z(o()?`sessionClosed`:`localSession`,n())))]),W(e,s),Je(),i()}var va={"setup.scope":{title:`Choose setup scope`,description:`This repository keeps the local preview and Apply flow. Several repositories lets you explicitly select 1–25 targets in the same organization and create reviewed setup PRs. Batch setup does not merge, create tags, release or deploy.`,choices:[`This repository`,`Several repositories in this organization`]},"setup.batchSource":{title:`Where should configuration come from?`,description:`Reuse compatible organization settings to skip completed questions, or customize repository settings. Batch setup keeps existing Secret bindings in both paths. Provision missing credentials separately, then inspect again; shared values are never replaced.`,choices:[`Reuse organization configuration`,`Customize settings; keep existing Secrets`]},"batch.token":{title:`Temporary PAT for selected repositories`,description:`Create a temporary setup PAT limited to these repositories: {repositories}. The GitHub link proposes grants; select only the intended repositories yourself. Leave blank to keep the current PAT. The final plan rechecks exact permissions. Delete temporary setup PATs afterwards.`},"setup.source":{title:`Where should configuration come from?`,description:`Reuse compatible organization Variables and existing Secret bindings, keeping repository overrides. Only missing, invalid or repository-specific settings are asked again. Shared values are preserved; reviewed differences become repository overrides. Choose Customize to provision or replace credentials.`,choices:[`Reuse organization configuration`,`Customize configuration`]},"setup.reusePatReview":{title:`Review organization reuse access`,description:`These provisional grants inspect existing organization configuration and allow repository setup. Shared Secret values are never requested or replaced. The final plan rechecks exact permissions; authentication evidence can remain pending. Select only the intended repositories in GitHub and delete the temporary PAT afterwards.`,choices:[`Continue to GitHub`,`Enter a PAT manually`]},"botPat.scopeConflict":{title:`Resolve the bot PAT scope conflict`,description:`Repository Secret PAT in {repository} overrides the selected organization PAT. Delete the repository Secret in GitHub, then ask Copilot to check again, or change the PAT scope to this repository. Your setup answers are retained. Copilot will not delete any Secret.`,choices:[`I have deleted the repository PAT — check again`,`Store PAT in the repository instead`,`Stop setup`]},"botPat.scopeConflictUnavailable":{title:`Resolve the bot PAT scope conflict`,description:`GitHub could not confirm whether the repository PAT was removed. The conflict remains unresolved. Your setup answers are retained. Check access and try again, change the PAT scope to this repository, or stop setup.`,choices:[`I have deleted the repository PAT — check again`,`Store PAT in the repository instead`,`Stop setup`]},"repository.confirm":{title:`Confirm this repository`,description:`This checkout points to {repository} on branch {branch}. Confirm the target before configuring PAT access or files.`,choices:[`Yes, this is my repository`,`Stop and choose another checkout`]},"setup.depth":{title:`Choose how much detail to review`,description:`Basic still asks about permissions, security, branch roles, Projects, approval and storage. Selected advanced agent, branch-prefix and Bugbot settings keep their defaults; inspect and edit them in the final plan. Custom asks every applicable question. Neither path applies changes now.`,choices:[`Basic guided setup (recommended)`,`Customize every setting`]},"setup.environmentPat":{title:`An environment setup PAT is available`,description:`The value stays in the CLI process. Continuing starts identity checks and isolated temporary create/read/delete tests before planning. Installation requires final approval. Exiting Copilot cannot unset your parent shell variable.`,choices:[`Use the environment PAT`,`Create or enter a different PAT`]},"plan.review":{title:`Review your setup plan`,description:`Inspect the affected files, workflows, Variables and Secret names before approving. No setup changes start by opening this plan.`},"workflow.update":{title:`Update existing workflows?`,description:`These existing workflow files differ from the setup plan: {files}. Keeping them may leave some new settings inactive.`,choices:[`Keep existing`,`Update setup-managed workflows`]},"setupPat.method":{title:`How will you provide your setup PAT?`,description:`This temporary PAT authorizes this one setup run. GitHub creates it under your operator account; Copilot cannot revoke it for you.`,choices:[`Guided GitHub link`,`Manual PAT`]},"setupPat.ownerKind":{title:`Who owns this repository on GitHub?`,description:`The owner determines which organization permissions may be needed. Check the repository header on GitHub if unsure.`,choices:[`Organization`,`Personal account`,`Not sure`]},"setupPat.review":{title:`Review provisional setup PAT permissions`,description:`These grants follow your choices. When managing Secrets, the link prefills Actions, Contents and Workflows write for possible health checks. Those checks run only if the approved plan requires them. GitHub inspection may reveal other requirements.`,choices:[`Continue to GitHub`,`Review setup choices again`,`View full permission table`,`Enter a PAT manually`]},"setupPat.entry":{title:`Temporary setup PAT`,description:`Open GitHub as your operator account, complete 2FA, choose “Only select repositories”, select this repository and copy the generated PAT here. This PAT is for this run only; delete it on GitHub afterwards.`},"setupPat.confirmAccount":{title:`GitHub authenticated the setup PAT as @{account}`,description:`Is this the operator account that should configure this repository? A wrong account must stop before any setup change.`,choices:[`Yes, continue`,`No, stop`]},"setupPat.confirmUnverifiedAccess":{title:`Check the PAT grants marked Unverifiable`,description:`Verified rows already passed. Compare each required Unverifiable row with the scope and access level in your GitHub PAT settings. Read-only checks cannot prove Write; Unverifiable does not mean missing. Check Projects: read only if that row is Unverifiable. Continue only after checking every such grant.`,choices:[`No, stop`,`Yes, I checked them`]},"botPat.method":{title:`How will you provide the bot PAT?`,description:`The bot PAT is separate from the setup PAT. It belongs to the account that will run future GitHub Actions and is stored as a Secret after approval.`,choices:[`Guided GitHub link`,`Manual PAT`]},"botPat.login":{title:`Expected GitHub bot login`,description:`Enter the bot account login without @. Copilot resolves its numeric GitHub ID and compares it with the PAT owner.`},"botPat.entry.guided":{title:`{name} — bot account PAT`,description:`Open GitHub as @{account} (account ID {accountId}), not as the setup operator. Select only this repository, review all grants and paste the PAT here. Suggested expiry: 90 days. An existing Secret value cannot be read back.`},"botPat.entry.manual":{title:`{name} — bot account PAT`,description:`Use the bot account, select only the intended repository and review all grants before pasting its PAT. Suggested expiry: 90 days. An existing Secret value cannot be read back.`},"botPat.identityMismatch":{title:`This PAT belongs to a different GitHub account`,description:`The PAT belongs to @{actual}; the selected bot is @{expected}. No bot Secret was written. Your answers and approved plan are retained. Delete the unused PAT in GitHub, switch to @{expected}, then choose whether to enter another PAT or stop setup.`,choices:[`Enter another bot PAT`,`Stop setup`]},"credential.apiKey":{title:`{name} — {provider} API key`,description:`Paste the API key for {provider}. It is sent only to this local setup process and, if approved, installed as a GitHub Actions Secret. Existing Secret values cannot be read back.`},"credential.existing":{title:`Existing {name}: {status}`,description:`GitHub cannot reveal the current Secret value. Keep it only if you deliberately accept that its health cannot be verified here; replace or skip it otherwise.`,choices:[`Keep existing`,`Replace it`,`Skip this credential`]},"apply.confirm":{title:`Apply this setup now?`,description:`This is the final approval. Local files and selected GitHub resources may change. A partial result may require inspection before retrying.`,choices:[`Apply setup`,`Stop without applying`]},"management.token":{title:`Temporary setup PAT`,description:`Read configuration from GitHub with a setup PAT. Read access is enough for inspection; changes require Variables Write and a separate approval. Secrets are shown by name only. Leave blank to return to the panel.`},"management.tokenWrite":{title:`Setup PAT for this adjustment`,description:`Use Variables Write in the reviewed scope. After approval, verification creates and removes one temporary Variable. Leave blank to return to the panel.`}},ya={"setup.scope":{title:`Elige el alcance del setup`,description:`Este repositorio conserva la vista previa y la aplicación local. Varios repositorios permite seleccionar entre 1 y 25 destinos de la misma organización y crear PRs de setup para revisarlas. El lote no hace merge, crea tags, publica versiones ni despliega.`,choices:[`Este repositorio`,`Varios repositorios de esta organización`]},"setup.batchSource":{title:`¿De dónde debe venir la configuración?`,description:`Reutiliza los ajustes compatibles de la organización para saltar preguntas ya resueltas, o personaliza los ajustes del repositorio. En ambos casos, el lote conserva los Secrets existentes. Crea por separado las credenciales que falten y vuelve a inspeccionar; los valores compartidos no se sustituyen.`,choices:[`Reutilizar configuración de la organización`,`Personalizar ajustes; conservar Secrets`]},"batch.token":{title:`PAT temporal para los repositorios seleccionados`,description:`Crea un PAT temporal de setup limitado a estos repositorios: {repositories}. El enlace propone permisos; selecciona tú solo los repositorios previstos en GitHub. Déjalo vacío para conservar el PAT actual. El plan final vuelve a comprobar los permisos exactos. Elimina después los PATs temporales de setup.`},"setup.source":{title:`¿De dónde debe venir la configuración?`,description:`Reutiliza las Variables compatibles y los Secrets existentes de la organización, conservando los ajustes del repositorio. Solo se preguntan los ajustes que falten, sean inválidos o dependan del repositorio. Los valores compartidos se conservan; las diferencias revisadas se guardan en el repositorio. Elige Personalizar para crear o sustituir credenciales.`,choices:[`Reutilizar configuración de la organización`,`Personalizar configuración`]},"setup.reusePatReview":{title:`Revisa el acceso para reutilizar configuración`,description:`Estos permisos provisionales permiten inspeccionar la configuración existente y configurar el repositorio. No se piden ni sustituyen los valores de los Secrets compartidos. El plan final comprueba los permisos exactos; la verificación de las credenciales puede quedar pendiente. Selecciona solo los repositorios previstos en GitHub y elimina después el PAT temporal.`,choices:[`Continuar a GitHub`,`Introducir un PAT manualmente`]},"botPat.scopeConflict":{title:`Resuelve el conflicto de scope del PAT del bot`,description:`El Secret PAT del repositorio {repository} tiene prioridad sobre el PAT de organización seleccionado. Elimina el Secret del repositorio en GitHub y pide a Copilot que lo compruebe de nuevo, o cambia el scope del PAT a este repositorio. Tus respuestas se conservan. Copilot no eliminará ningún Secret.`,choices:[`Ya he eliminado el PAT del repositorio — comprobar de nuevo`,`Guardar PAT en el repositorio`,`Detener setup`]},"botPat.scopeConflictUnavailable":{title:`Resuelve el conflicto de scope del PAT del bot`,description:`GitHub no ha permitido confirmar si se eliminó el PAT del repositorio. El conflicto sigue sin resolverse. Tus respuestas se conservan. Comprueba el acceso y vuelve a intentarlo, cambia el scope del PAT a este repositorio o detén el setup.`,choices:[`Ya he eliminado el PAT del repositorio — comprobar de nuevo`,`Guardar PAT en el repositorio`,`Detener setup`]},"botPat.identityMismatch":{title:`Este PAT pertenece a otra cuenta de GitHub`,description:`El PAT pertenece a @{actual}; el bot seleccionado es @{expected}. No se ha escrito el Secret del bot. Conservamos tus respuestas y el plan aprobado. Elimina el PAT sin usar en GitHub, cambia a @{expected} y elige si quieres introducir otro PAT o detener el setup.`,choices:[`Introducir otro PAT del bot`,`Detener setup`]},"repository.confirm":{title:`Confirma el repositorio`,description:`Este checkout apunta a {repository} en la rama {branch}. Comprueba el destino antes de configurar permisos del PAT o archivos.`,choices:[`Sí, es mi repositorio`,`Detener y elegir otro checkout`]},"setup.depth":{title:`Elige cuánto detalle quieres revisar`,description:`El modo básico sigue preguntando por permisos, seguridad, ramas, Projects, aprobación y almacenamiento. Algunos ajustes avanzados de agentes, prefijos de rama y Bugbot conservan sus valores predeterminados; podrás revisarlos y editarlos en el plan final. El modo personalizado pregunta por todos los ajustes aplicables. Ninguno aplica cambios todavía.`,choices:[`Configuración básica guiada (recomendada)`,`Personalizar todos los ajustes`]},"setup.environmentPat":{title:`Hay un PAT de configuración en el entorno`,description:`El valor permanece en el proceso CLI. Al continuar se comprueba la identidad y se crean, leen y eliminan recursos temporales antes de preparar el plan. La instalación requiere aprobación final. Cerrar Copilot no elimina la variable de la terminal original.`,choices:[`Usar el PAT del entorno`,`Crear o introducir otro PAT`]},"plan.review":{title:`Revisa el plan de configuración`,description:`Comprueba los archivos, workflows, Variables y nombres de Secrets antes de aprobar. Abrir el plan no inicia ningún cambio.`},"workflow.update":{title:`¿Actualizar los workflows existentes?`,description:`Estos archivos difieren del plan: {files}. Si los conservas, algunos ajustes nuevos podrían no activarse.`,choices:[`Conservar los existentes`,`Actualizar los workflows gestionados`]},"setupPat.method":{title:`¿Cómo proporcionarás el PAT de configuración?`,description:`Este PAT temporal autoriza una sola ejecución. GitHub lo crea con tu cuenta de operador; Copilot no puede revocarlo por ti.`,choices:[`Enlace guiado de GitHub`,`Introducir PAT manualmente`]},"setupPat.ownerKind":{title:`¿Quién es propietario de este repositorio en GitHub?`,description:`El propietario determina qué permisos de organización pueden hacer falta. Consulta la cabecera del repositorio en GitHub si dudas.`,choices:[`Organización`,`Cuenta personal`,`No lo sé`]},"setupPat.review":{title:`Revisa los permisos provisionales del PAT de configuración`,description:`Estos permisos dependen de tus elecciones. Si gestionas Secrets, el enlace preselecciona Actions, Contents y Workflows en escritura para posibles comprobaciones de credenciales. Esas comprobaciones solo se ejecutan si el plan aprobado las necesita. La inspección de GitHub puede revelar otros requisitos.`,choices:[`Continuar en GitHub`,`Revisar de nuevo las opciones`,`Ver la tabla completa de permisos`,`Introducir un PAT manualmente`]},"setupPat.entry":{title:`PAT temporal de configuración`,description:`Abre GitHub con tu cuenta de operador, completa el 2FA, elige «Only select repositories», selecciona este repositorio y pega aquí el PAT generado. Es solo para esta ejecución; elimínalo en GitHub después.`},"setupPat.confirmAccount":{title:`GitHub autenticó el PAT de configuración como @{account}`,description:`¿Es la cuenta de operador que debe configurar este repositorio? Una cuenta incorrecta debe detener el proceso antes de cualquier cambio.`,choices:[`Sí, continuar`,`No, detener`]},"setupPat.confirmUnverifiedAccess":{title:`Comprueba los permisos del PAT marcados como No verificable`,description:`Los permisos Verificados ya pasaron la comprobación. Compara cada permiso obligatorio No verificable con su ámbito y nivel de acceso en los ajustes del PAT en GitHub. Una consulta de solo lectura no demuestra Escritura; No verificable no significa ausente. Comprueba Projects: lectura solo si esa fila aparece como No verificable. Continúa únicamente tras comprobar todos esos permisos.`,choices:[`No, detener`,`Sí, los he comprobado`]},"botPat.method":{title:`¿Cómo proporcionarás el PAT del bot?`,description:`Es distinto del PAT de configuración. Pertenece a la cuenta que ejecutará las futuras GitHub Actions y se instalará como Secret tras la aprobación.`,choices:[`Enlace guiado de GitHub`,`Introducir PAT manualmente`]},"botPat.login":{title:`Usuario previsto del bot en GitHub`,description:`Introduce el nombre de usuario del bot sin @. Copilot consultará su ID numérico de GitHub y lo comparará con el propietario del PAT.`},"botPat.entry.guided":{title:`{name} — PAT de la cuenta bot`,description:`Abre GitHub como @{account} (ID {accountId}), no como operador de setup. Selecciona solo este repositorio, revisa todos los permisos y pega aquí el PAT. Caducidad sugerida: 90 días. El valor de un Secret existente no puede leerse.`},"botPat.entry.manual":{title:`{name} — PAT de la cuenta bot`,description:`Usa la cuenta bot, selecciona solo el repositorio previsto y revisa todos los permisos antes de pegar el PAT. Caducidad sugerida: 90 días. El valor de un Secret existente no puede leerse.`},"credential.apiKey":{title:`{name} — clave API de {provider}`,description:`Pega la clave API de {provider}. Solo se envía a este proceso local y, si apruebas el plan, se instala como Secret de GitHub Actions. Los valores existentes no pueden leerse.`},"credential.existing":{title:`{name} existente: {status}`,description:`GitHub no muestra el valor actual del Secret. Consérvalo solo si aceptas expresamente que aquí no se puede comprobar su estado; de lo contrario, sustitúyelo u omítelo.`,choices:[`Conservar`,`Sustituir`,`Omitir esta credencial`]},"apply.confirm":{title:`¿Aplicar la configuración ahora?`,description:`Esta es la aprobación final. Pueden cambiar archivos locales y recursos de GitHub seleccionados. Si el resultado es parcial, revísalo antes de reintentar.`,choices:[`Aplicar configuración`,`Detener sin aplicar`]},"management.token":{title:`PAT temporal de setup`,description:`Lee la configuración de GitHub con un PAT de setup. Leer basta para inspeccionar; los cambios requieren Variables Write y aprobación independiente. Solo se muestran nombres de Secrets. Deja el campo vacío para volver al panel.`},"management.tokenWrite":{title:`PAT de setup para este ajuste`,description:`Usa Variables Write en el ámbito revisado. Tras aprobar, la verificación crea y elimina una Variable temporal. Deja el campo vacío para volver al panel.`}},ba={"setup.scope":{title:`Choisissez la portée de la configuration`,description:`Ce dépôt conserve l’aperçu et l’application locale. Plusieurs dépôts permet de sélectionner explicitement 1 à 25 destinations de la même organisation et de créer des PR à examiner. Le lot ne fusionne pas, ne crée pas de tag, ne publie pas et ne déploie pas.`,choices:[`Ce dépôt`,`Plusieurs dépôts de cette organisation`]},"setup.batchSource":{title:`D’où doit venir la configuration ?`,description:`Réutilisez les réglages compatibles de l’organisation pour passer les questions déjà résolues, ou personnalisez les réglages du dépôt. Dans les deux cas, le lot conserve les Secrets existants. Créez séparément les identifiants manquants puis inspectez à nouveau ; les valeurs partagées ne sont jamais remplacées.`,choices:[`Réutiliser la configuration de l’organisation`,`Personnaliser les réglages ; conserver les Secrets`]},"batch.token":{title:`PAT temporaire pour les dépôts sélectionnés`,description:`Créez un PAT temporaire limité à ces dépôts : {repositories}. Le lien propose des autorisations ; sélectionnez vous-même uniquement les dépôts prévus dans GitHub. Laissez vide pour conserver le PAT actuel. Le plan final vérifie à nouveau les autorisations exactes. Supprimez ensuite les PAT temporaires de configuration.`},"setup.source":{title:`D’où doit venir la configuration ?`,description:`Réutilisez les Variables compatibles et les Secrets existants de l’organisation en conservant les réglages du dépôt. Seuls les réglages manquants, invalides ou propres au dépôt seront demandés. Les valeurs partagées sont conservées ; les différences validées sont enregistrées dans le dépôt. Choisissez Personnaliser pour créer ou remplacer des identifiants.`,choices:[`Réutiliser la configuration de l’organisation`,`Personnaliser la configuration`]},"setup.reusePatReview":{title:`Vérifiez l’accès pour réutiliser la configuration`,description:`Ces autorisations provisoires permettent de lire la configuration existante et de configurer le dépôt. Les valeurs des Secrets partagés ne sont jamais demandées ni remplacées. Le plan final vérifie les autorisations exactes ; la vérification des identifiants peut rester en attente. Sélectionnez uniquement les dépôts prévus dans GitHub puis supprimez le PAT temporaire.`,choices:[`Continuer vers GitHub`,`Saisir un PAT manuellement`]},"botPat.scopeConflict":{title:`Résoudre le conflit de périmètre du PAT du bot`,description:`Le Secret PAT du dépôt {repository} est prioritaire sur le PAT d’organisation sélectionné. Supprimez le Secret du dépôt dans GitHub, puis demandez à Copilot de vérifier à nouveau, ou choisissez le périmètre du dépôt pour le PAT. Vos réponses sont conservées. Copilot ne supprimera aucun Secret.`,choices:[`J’ai supprimé le PAT du dépôt — vérifier à nouveau`,`Enregistrer le PAT dans le dépôt`,`Arrêter la configuration`]},"botPat.scopeConflictUnavailable":{title:`Résoudre le conflit de périmètre du PAT du bot`,description:`GitHub n’a pas permis de confirmer la suppression du PAT du dépôt. Le conflit reste non résolu. Vos réponses sont conservées. Vérifiez l’accès et réessayez, choisissez le périmètre du dépôt pour le PAT ou arrêtez la configuration.`,choices:[`J’ai supprimé le PAT du dépôt — vérifier à nouveau`,`Enregistrer le PAT dans le dépôt`,`Arrêter la configuration`]},"botPat.identityMismatch":{title:`Ce PAT appartient à un autre compte GitHub`,description:`Le PAT appartient à @{actual} ; le bot sélectionné est @{expected}. Aucun Secret du bot n’a été écrit. Vos réponses et le plan approuvé sont conservés. Supprimez le PAT inutilisé dans GitHub, passez à @{expected}, puis choisissez de saisir un autre PAT ou d’arrêter la configuration.`,choices:[`Saisir un autre PAT du bot`,`Arrêter la configuration`]},"repository.confirm":{title:`Confirmez ce dépôt`,description:`Ce dossier pointe vers {repository}, branche {branch}. Vérifiez la cible avant de configurer les accès PAT ou les fichiers.`,choices:[`Oui, c’est mon dépôt`,`Arrêter et choisir un autre dossier`]},"setup.depth":{title:`Choisissez le niveau de détail`,description:`Le parcours de base demande toujours les autorisations, la sécurité, les branches, Projects, l’approbation et le stockage. Certains réglages avancés des agents, préfixes de branche et Bugbot conservent leurs valeurs par défaut ; vous pourrez les examiner et les modifier dans le plan final. Le parcours personnalisé pose toutes les questions applicables. Aucun changement n’est appliqué à ce stade.`,choices:[`Configuration de base guidée (recommandée)`,`Personnaliser tous les réglages`]},"setup.environmentPat":{title:`Un PAT de configuration est disponible dans l’environnement`,description:`La valeur reste dans le processus CLI. Continuer lance la vérification de l’identité puis des tests temporaires isolés de création, lecture et suppression avant le plan. L’installation exige une approbation finale. Quitter Copilot ne supprime pas la variable du shell parent.`,choices:[`Utiliser le PAT de l’environnement`,`Créer ou saisir un autre PAT`]},"plan.review":{title:`Examinez le plan de configuration`,description:`Vérifiez les fichiers, workflows, Variables et noms de Secrets avant d’approuver. Ouvrir le plan ne lance aucun changement.`},"workflow.update":{title:`Mettre à jour les workflows existants ?`,description:`Ces fichiers diffèrent du plan : {files}. Les conserver peut laisser certains nouveaux réglages inactifs.`,choices:[`Conserver les fichiers existants`,`Mettre à jour les workflows gérés`]},"setupPat.method":{title:`Comment fournirez-vous le PAT de configuration ?`,description:`Ce PAT temporaire autorise une seule exécution. GitHub le crée avec votre compte opérateur ; Copilot ne peut pas le révoquer à votre place.`,choices:[`Lien GitHub guidé`,`Saisir un PAT manuellement`]},"setupPat.ownerKind":{title:`À qui appartient ce dépôt sur GitHub ?`,description:`Le propriétaire détermine les éventuelles autorisations d’organisation. Consultez l’en-tête du dépôt sur GitHub en cas de doute.`,choices:[`Organisation`,`Compte personnel`,`Je ne sais pas`]},"setupPat.review":{title:`Examinez les autorisations provisoires du PAT de configuration`,description:`Ces droits suivent vos choix. Si vous gérez des Secrets, le lien présélectionne Actions, Contents et Workflows en écriture pour les éventuelles vérifications des identifiants. Ces vérifications ne démarrent que si le plan approuvé les exige. L’inspection de GitHub peut révéler d’autres besoins.`,choices:[`Continuer sur GitHub`,`Revoir les choix de configuration`,`Voir toutes les autorisations`,`Saisir un PAT manuellement`]},"setupPat.entry":{title:`PAT temporaire de configuration`,description:`Ouvrez GitHub avec votre compte opérateur, effectuez la 2FA, choisissez « Only select repositories », sélectionnez ce dépôt puis collez ici le PAT généré. Il ne sert qu’à cette exécution ; supprimez-le sur GitHub ensuite.`},"setupPat.confirmAccount":{title:`GitHub a authentifié le PAT de configuration comme @{account}`,description:`Est-ce bien le compte opérateur autorisé à configurer ce dépôt ? Un autre compte doit arrêter le processus avant tout changement.`,choices:[`Oui, continuer`,`Non, arrêter`]},"setupPat.confirmUnverifiedAccess":{title:`Vérifiez les droits du PAT marqués Non vérifiable`,description:`Les lignes Vérifiées ont déjà passé le contrôle. Comparez chaque droit requis Non vérifiable avec sa portée et son niveau d’accès dans les paramètres du PAT GitHub. Une lecture seule ne prouve pas le niveau Écriture ; Non vérifiable ne signifie pas absent. Vérifiez Projects : lecture seulement si cette ligne est Non vérifiable. Continuez uniquement après avoir vérifié tous ces droits.`,choices:[`Non, arrêter`,`Oui, je les ai vérifiés`]},"botPat.method":{title:`Comment fournirez-vous le PAT du bot ?`,description:`Il est distinct du PAT de configuration. Il appartient au compte qui exécutera les futures GitHub Actions et sera installé comme Secret après approbation.`,choices:[`Lien GitHub guidé`,`Saisir un PAT manuellement`]},"botPat.login":{title:`Identifiant GitHub attendu pour le bot`,description:`Saisissez l’identifiant du bot sans @. Copilot récupère son ID numérique GitHub et le compare au propriétaire du PAT.`},"botPat.entry.guided":{title:`{name} — PAT du compte bot`,description:`Ouvrez GitHub en tant que @{account} (ID {accountId}), pas en tant qu’opérateur. Sélectionnez uniquement ce dépôt, vérifiez tous les droits et collez le PAT ici. Expiration suggérée : 90 jours. La valeur d’un Secret existant ne peut pas être relue.`},"botPat.entry.manual":{title:`{name} — PAT du compte bot`,description:`Utilisez le compte bot, sélectionnez uniquement le dépôt voulu et vérifiez tous les droits avant de coller le PAT. Expiration suggérée : 90 jours. La valeur d’un Secret existant ne peut pas être relue.`},"credential.apiKey":{title:`{name} — clé API de {provider}`,description:`Collez la clé API de {provider}. Elle est envoyée uniquement au processus local puis, si vous approuvez le plan, installée comme Secret GitHub Actions. Les valeurs existantes ne peuvent pas être relues.`},"credential.existing":{title:`{name} existant : {status}`,description:`GitHub ne révèle pas la valeur actuelle du Secret. Ne la conservez que si vous acceptez explicitement de ne pas pouvoir vérifier son état ici ; sinon, remplacez-la ou ignorez-la.`,choices:[`Conserver`,`Remplacer`,`Ignorer cet identifiant`]},"apply.confirm":{title:`Appliquer la configuration maintenant ?`,description:`C’est l’approbation finale. Des fichiers locaux et ressources GitHub choisis peuvent changer. Un résultat partiel doit être inspecté avant une nouvelle tentative.`,choices:[`Appliquer la configuration`,`Arrêter sans appliquer`]},"management.token":{title:`PAT temporaire de configuration`,description:`Lisez la configuration GitHub avec un PAT. La lecture suffit pour inspecter ; les changements nécessitent Variables Write et une approbation distincte. Noms des Secrets uniquement. Laissez vide pour revenir au panneau.`},"management.tokenWrite":{title:`PAT de configuration pour cet ajustement`,description:`Utilisez Variables Write dans le scope examiné. Après approbation, la vérification crée et supprime une Variable temporaire. Laissez vide pour revenir au panneau.`}},xa={"setup.scope":{title:`Escolha o âmbito da configuração`,description:`Este repositório mantém a pré-visualização e a aplicação local. Vários repositórios permite selecionar explicitamente entre 1 e 25 destinos da mesma organização e criar PRs para revisão. O lote não integra, cria tags, publica versões nem implementa.`,choices:[`Este repositório`,`Vários repositórios desta organização`]},"setup.batchSource":{title:`De onde deve vir a configuração?`,description:`Reutilize os ajustes compatíveis da organização para saltar perguntas já resolvidas, ou personalize os ajustes do repositório. Em ambos os casos, o lote mantém os Secrets existentes. Crie separadamente as credenciais em falta e volte a inspecionar; os valores partilhados nunca são substituídos.`,choices:[`Reutilizar a configuração da organização`,`Personalizar ajustes; manter os Secrets`]},"batch.token":{title:`PAT temporário para os repositórios selecionados`,description:`Crie um PAT temporário limitado a estes repositórios: {repositories}. O link propõe permissões; selecione pessoalmente apenas os repositórios previstos no GitHub. Deixe vazio para manter o PAT atual. O plano final volta a verificar as permissões exatas. Elimine depois os PATs temporários de configuração.`},"setup.source":{title:`De onde deve vir a configuração?`,description:`Reutilize as Variables compatíveis e os Secrets existentes da organização, mantendo os ajustes do repositório. Só serão pedidos os ajustes em falta, inválidos ou específicos do repositório. Os valores partilhados são mantidos; as diferenças revistas ficam no repositório. Escolha Personalizar para criar ou substituir credenciais.`,choices:[`Reutilizar a configuração da organização`,`Personalizar a configuração`]},"setup.reusePatReview":{title:`Reveja o acesso para reutilizar a configuração`,description:`Estas permissões provisórias permitem consultar a configuração existente e configurar o repositório. Os valores dos Secrets partilhados nunca são pedidos nem substituídos. O plano final verifica as permissões exatas; a verificação das credenciais pode ficar pendente. Selecione apenas os repositórios previstos no GitHub e elimine depois o PAT temporário.`,choices:[`Continuar para o GitHub`,`Introduzir um PAT manualmente`]},"botPat.scopeConflict":{title:`Resolver o conflito de âmbito do PAT do bot`,description:`O Secret PAT do repositório {repository} tem prioridade sobre o PAT da organização selecionado. Elimine o Secret do repositório no GitHub e peça ao Copilot para verificar novamente, ou altere o âmbito do PAT para este repositório. As suas respostas são preservadas. O Copilot não eliminará nenhum Secret.`,choices:[`Já eliminei o PAT do repositório — verificar novamente`,`Guardar o PAT no repositório`,`Parar a configuração`]},"botPat.scopeConflictUnavailable":{title:`Resolver o conflito de âmbito do PAT do bot`,description:`O GitHub não permitiu confirmar se o PAT do repositório foi eliminado. O conflito continua por resolver. As suas respostas são preservadas. Verifique o acesso e tente novamente, altere o âmbito do PAT para este repositório ou pare a configuração.`,choices:[`Já eliminei o PAT do repositório — verificar novamente`,`Guardar o PAT no repositório`,`Parar a configuração`]},"botPat.identityMismatch":{title:`Este PAT pertence a outra conta do GitHub`,description:`O PAT pertence a @{actual}; o bot selecionado é @{expected}. Nenhum Secret do bot foi gravado. As suas respostas e o plano aprovado são mantidos. Elimine o PAT não utilizado no GitHub, mude para @{expected} e escolha entre introduzir outro PAT ou parar a configuração.`,choices:[`Introduzir outro PAT do bot`,`Parar a configuração`]},"repository.confirm":{title:`Confirme este repositório`,description:`Esta pasta aponta para {repository}, no ramo {branch}. Confirme o destino antes de configurar acessos PAT ou ficheiros.`,choices:[`Sim, é o meu repositório`,`Parar e escolher outra pasta`]},"setup.depth":{title:`Escolha o nível de detalhe`,description:`O percurso básico continua a perguntar sobre permissões, segurança, ramos, Projects, aprovação e armazenamento. Algumas definições avançadas de agentes, prefixos de ramos e Bugbot mantêm os valores predefinidos; poderá revê-las e editá-las no plano final. O percurso personalizado pergunta por todas as definições aplicáveis. Nenhum dos percursos aplica alterações nesta fase.`,choices:[`Configuração básica guiada (recomendada)`,`Personalizar todas as definições`]},"setup.environmentPat":{title:`Existe um PAT de configuração no ambiente`,description:`O valor permanece no processo CLI. Continuar inicia a verificação de identidade e testes temporários isolados de criação, leitura e eliminação antes do plano. A instalação exige aprovação final. Sair do Copilot não remove a variável da shell original.`,choices:[`Usar o PAT do ambiente`,`Criar ou introduzir outro PAT`]},"plan.review":{title:`Reveja o plano de configuração`,description:`Confirme ficheiros, fluxos, Variables e nomes de Secrets antes de aprovar. Abrir o plano não inicia alterações.`,choices:void 0},"workflow.update":{title:`Atualizar os fluxos existentes?`,description:`Estes ficheiros diferem do plano: {files}. Conservá-los pode deixar algumas definições novas inativas.`,choices:[`Conservar os existentes`,`Atualizar os fluxos geridos`]},"setupPat.method":{title:`Como irá fornecer o PAT de configuração?`,description:`Este PAT temporário autoriza uma única execução. O GitHub cria-o na sua conta de operador; o Copilot não pode revogá-lo por si.`,choices:[`Ligação guiada do GitHub`,`Introduzir PAT manualmente`]},"setupPat.ownerKind":{title:`Quem é o proprietário deste repositório no GitHub?`,description:`O proprietário determina as permissões de organização necessárias. Consulte o cabeçalho do repositório no GitHub se tiver dúvidas.`,choices:[`Organização`,`Conta pessoal`,`Não tenho a certeza`]},"setupPat.review":{title:`Reveja as permissões provisórias do PAT de configuração`,description:`Estas permissões seguem as suas escolhas. Ao gerir Secrets, a ligação pré-seleciona Actions, Contents e Workflows em escrita para possíveis verificações de credenciais. Estas verificações só decorrem se o plano aprovado as exigir. A inspeção do GitHub pode revelar outros requisitos.`,choices:[`Continuar no GitHub`,`Rever as escolhas`,`Ver a tabela completa de permissões`,`Introduzir um PAT manualmente`]},"setupPat.entry":{title:`PAT temporário de configuração`,description:`Abra o GitHub com a sua conta de operador, conclua a 2FA, escolha «Only select repositories», selecione este repositório e cole aqui o PAT gerado. É apenas para esta execução; elimine-o no GitHub depois.`},"setupPat.confirmAccount":{title:`O GitHub autenticou o PAT de configuração como @{account}`,description:`É esta a conta de operador que deve configurar o repositório? Uma conta errada tem de parar o processo antes de qualquer alteração.`,choices:[`Sim, continuar`,`Não, parar`]},"setupPat.confirmUnverifiedAccess":{title:`Verifique as permissões do PAT marcadas Não verificável`,description:`As linhas Verificadas já passaram na verificação. Compare cada permissão necessária Não verificável com o âmbito e o nível de acesso nas definições do PAT no GitHub. Uma consulta só de leitura não prova Escrita; Não verificável não significa ausente. Verifique Projects: leitura apenas se essa linha estiver Não verificável. Continue só depois de verificar todas essas permissões.`,choices:[`Não, parar`,`Sim, já as verifiquei`]},"botPat.method":{title:`Como irá fornecer o PAT do bot?`,description:`É diferente do PAT de configuração. Pertence à conta que executará as futuras GitHub Actions e será instalado como Secret após aprovação.`,choices:[`Ligação guiada do GitHub`,`Introduzir PAT manualmente`]},"botPat.login":{title:`Utilizador GitHub esperado para o bot`,description:`Introduza o nome de utilizador do bot sem @. O Copilot consulta o ID numérico do GitHub e compara-o com o proprietário do PAT.`},"botPat.entry.guided":{title:`{name} — PAT da conta bot`,description:`Abra o GitHub como @{account} (ID {accountId}), não como operador. Selecione apenas este repositório, reveja todas as permissões e cole aqui o PAT. Validade sugerida: 90 dias. Não é possível voltar a ler o valor de um Secret existente.`},"botPat.entry.manual":{title:`{name} — PAT da conta bot`,description:`Use a conta bot, selecione apenas o repositório pretendido e reveja todas as permissões antes de colar o PAT. Validade sugerida: 90 dias. Não é possível voltar a ler o valor de um Secret existente.`},"credential.apiKey":{title:`{name} — chave API de {provider}`,description:`Cole a chave API de {provider}. Só é enviada para este processo local e, se aprovar o plano, instalada como Secret do GitHub Actions. Os valores existentes não podem voltar a ser lidos.`},"credential.existing":{title:`{name} existente: {status}`,description:`O GitHub não revela o valor atual do Secret. Conserve-o apenas se aceitar expressamente que aqui não se pode verificar o seu estado; caso contrário, substitua-o ou ignore-o.`,choices:[`Conservar`,`Substituir`,`Ignorar esta credencial`]},"apply.confirm":{title:`Aplicar a configuração agora?`,description:`Esta é a aprovação final. Ficheiros locais e recursos GitHub selecionados podem mudar. Um resultado parcial exige inspeção antes de tentar novamente.`,choices:[`Aplicar configuração`,`Parar sem aplicar`]},"management.token":{title:`PAT temporário de setup`,description:`Leia a configuração GitHub com um PAT. A leitura basta para inspecionar; alterações exigem Variables Write e aprovação separada. Apenas nomes dos Secrets. Deixe vazio para voltar ao painel.`},"management.tokenWrite":{title:`PAT de setup para este ajuste`,description:`Use Variables Write no scope revisto. Após aprovação, a verificação cria e elimina uma Variable temporária. Deixe vazio para voltar ao painel.`}},Sa={"session.controlMoved":`Control moved to this tab. The previous tab is now read-only.`,"session.cancelled":`Cancellation requested. Temporary permission checks already started will finish cleanup before the process exits. PATs created on GitHub remain until you delete them there.`,"plan.ready":`Plan ready: {files} files, {variables} Variables and {secrets} Secret names. Review it before continuing.`,"permission.preview":`Permission preview: issue workflows {issues}; PR approval {approval}; Secrets {secrets}; Variables {variables}; Projects {projects}. Review the exact grants before creating the setup PAT.`,"setupPat.corrected.bootstrap":`The setup PAT could not access the repository. Installation has not started. Resolve failed permission tests and any pending cleanup before retrying. Required grants: {grants}. Create a corrected PAT using the updated GitHub link.`,"setupPat.corrected.final":`Required setup PAT permissions changed after inspection. Installation has not started. Resolve failed permission tests and any pending cleanup before retrying. New grants: {grants}. Create a corrected PAT using the updated GitHub link.`,"setupPat.cleanup":`Delete the temporary setup PAT in GitHub Settings after this run. Closing Copilot does not revoke it.`,"botPat.separation":`The bot PAT is separate from your setup PAT. These credentials become GitHub Actions Secrets: {names}. Existing Secret values cannot be read back. Re-enter an existing bot PAT so its grants can be checked. No credential-health workflow runs before Apply.`,"credential.checks":`Credential checks finished for {count} items. Each result is shown below. The terminal has technical details; an existing Secret value cannot be read back.`,"credential.status.valid":`Valid`,"credential.status.invalid":`Invalid`,"credential.status.missing":`Missing`,"credential.status.unverifiable":`Cannot be verified without a new value`,"credential.status.not_required":`Not required`,"validation.producers":`Select 1–8 observed checks or enter exact name|App ID|workflow tuples.`,"validation.duplicateNames":`Two trusted producers use the same check name. Coverage stores only the name: choose one producer or rename the CI jobs.`,"validation.projectStatusVerified":`Open every selected Project in GitHub and confirm that all four exact Status values exist. Answer Yes after checking, or No to choose Projects again.`,"validation.projectStatusRedo":`Status values were not confirmed. Choose compatible Projects, then review their Status options again.`,"validation.number":`Enter a non-negative whole number.`,"validation.boolean":`Enter yes or no.`,"validation.choice":`Select one of the listed options.`,"validation.unknownResource":`Unknown inherited resource names: {names}. Choose only names shown in the inherited list.`,"validation.unknownWorkflow":`Unknown issue workflows: {names}. Choose only the listed workflow types.`,"validation.firstQuestion":`This is the first question in this pass. Review it or cancel setup.`,"validation.duplicateProducer":`This trusted check was selected twice. Remove the duplicate selection.`,"validation.savedStatus":`The saved Status value is not available in every selected Project. Choose a listed option.`,"validation.projectIncompatible":`The selected Projects have no common Status option. Choose compatible Projects or configure them separately.`,"validation.projectLimit":`Choose at most 10 Projects; separate their numbers or URLs with commas.`,"validation.projectOwnerNeeded":`A Project URL needs a known repository owner; enter its positive number instead.`,"validation.projectOwnerMismatch":`Use a GitHub Project URL belonging to {owner}, without query parameters.`,"validation.projectUrl":`Enter a valid GitHub Project URL or positive Project number.`,"validation.projectNumber":`Enter the positive Project number from its GitHub URL, not a PVT_ GraphQL ID.`,"validation.projectNumberRange":`Project numbers must be positive integers at most 2147483647.`,"validation.projectDuplicate":`Project {number} was selected more than once.`,"validation.fixedIssues":`Your configuration explicitly enables release or hotfix automation. Keep Issues enabled or edit that configuration first.`,"validation.fixedWorkflowEnabled":`Your configuration enables {kind}. Keep that workflow selected or edit the configuration first.`,"validation.fixedWorkflowDisabled":`Your configuration disables {kind}. Deselect that workflow or edit the configuration first.`,"validation.unknown":`This answer could not be accepted. Review the question and its help; the terminal has the technical detail.`},Ca={"session.controlMoved":`El control ha pasado a esta pestaña. La anterior ahora es de solo lectura.`,"session.cancelled":`Cancelación solicitada. Las pruebas temporales ya iniciadas terminarán su limpieza antes de que salga el proceso. Los PAT creados en GitHub seguirán allí hasta que los elimines.`,"plan.ready":`Plan listo: {files} archivos, {variables} Variables y {secrets} nombres de Secrets. Revísalo antes de continuar.`,"permission.preview":`Vista previa de permisos: flujos de incidencias {issues}; aprobación de PR {approval}; Secrets {secrets}; Variables {variables}; Projects {projects}. Revisa los permisos exactos antes de crear el PAT de configuración.`,"setupPat.corrected.bootstrap":`El PAT de configuración no pudo acceder al repositorio. La instalación no ha empezado. Resuelve las pruebas fallidas y cualquier limpieza pendiente antes de reintentar. Permisos necesarios: {grants}. Crea un PAT corregido desde el enlace actualizado de GitHub.`,"setupPat.corrected.final":`Los permisos necesarios del PAT cambiaron tras la inspección. La instalación no ha empezado. Resuelve las pruebas fallidas y cualquier limpieza pendiente antes de reintentar. Permisos nuevos: {grants}. Crea un PAT corregido desde el enlace actualizado.`,"setupPat.cleanup":`Elimina el PAT temporal de configuración en los ajustes de GitHub después de esta ejecución. Cerrar Copilot no lo revoca.`,"botPat.separation":`El PAT del bot es distinto del de configuración. Estas credenciales se instalarán como Secrets de GitHub Actions: {names}. Los valores existentes no pueden leerse. Vuelve a introducir un PAT del bot para comprobar sus permisos. Antes de Aplicar no se ejecuta ningún workflow de comprobación.`,"credential.checks":`Se han comprobado {count} credenciales. Abajo aparece el resultado de cada una. La terminal contiene los detalles técnicos; el valor de un Secret existente no puede leerse.`,"credential.status.valid":`Válida`,"credential.status.invalid":`No válida`,"credential.status.missing":`Falta`,"credential.status.unverifiable":`No verificable sin un valor nuevo`,"credential.status.not_required":`No necesaria`,"validation.producers":`Selecciona entre 1 y 8 checks observados o introduce las tuplas exactas nombre|ID de App|workflow.`,"validation.duplicateNames":`Dos productores fiables tienen el mismo nombre de check. La cobertura solo guarda el nombre: elige uno o cambia el nombre de los jobs de CI.`,"validation.projectStatusVerified":`Abre cada Project elegido en GitHub y confirma los cuatro valores Status exactos. Responde Sí tras comprobarlo, o No para elegir Projects de nuevo.`,"validation.projectStatusRedo":`No se confirmaron los valores Status. Elige Projects compatibles y vuelve a revisar sus opciones Status.`,"validation.number":`Introduce un número entero no negativo.`,"validation.boolean":`Elige Sí o No.`,"validation.choice":`Elige una de las opciones mostradas.`,"validation.unknownResource":`Nombres de recursos heredados desconocidos: {names}. Elige solo nombres de la lista heredada.`,"validation.unknownWorkflow":`Flujos de issues desconocidos: {names}. Elige solo los tipos indicados.`,"validation.firstQuestion":`Esta es la primera pregunta de esta pasada. Revísala o cancela la configuración.`,"validation.duplicateProducer":`Has seleccionado dos veces el mismo check fiable. Quita la selección duplicada.`,"validation.savedStatus":`El valor Status guardado no existe en todos los Projects seleccionados. Elige una opción de la lista.`,"validation.projectIncompatible":`Los Projects elegidos no comparten ningún valor Status. Elige Projects compatibles o configúralos por separado.`,"validation.projectLimit":`Elige como máximo 10 Projects; separa sus números o URL con comas.`,"validation.projectOwnerNeeded":`Para usar la URL de un Project hay que conocer el propietario del repositorio; introduce su número positivo.`,"validation.projectOwnerMismatch":`Usa la URL de un Project de GitHub que pertenezca a {owner}, sin parámetros.`,"validation.projectUrl":`Introduce una URL válida de un Project de GitHub o su número positivo.`,"validation.projectNumber":`Introduce el número positivo del Project que aparece en su URL, no un ID GraphQL PVT_.`,"validation.projectNumberRange":`El número del Project debe ser un entero positivo no mayor de 2147483647.`,"validation.projectDuplicate":`Has seleccionado el Project {number} más de una vez.`,"validation.fixedIssues":`Tu configuración activa expresamente release o hotfix. Mantén Issues activado o cambia antes la configuración.`,"validation.fixedWorkflowEnabled":`Tu configuración activa {kind}. Mantén ese flujo seleccionado o cambia antes la configuración.`,"validation.fixedWorkflowDisabled":`Tu configuración desactiva {kind}. Desmarca ese flujo o cambia antes la configuración.`,"validation.unknown":`No se pudo aceptar esta respuesta. Revisa la pregunta y su ayuda; la terminal contiene el detalle técnico.`},wa={"session.controlMoved":`Le contrôle est passé à cet onglet. L’onglet précédent est maintenant en lecture seule.`,"session.cancelled":`Annulation demandée. Les tests temporaires déjà lancés termineront leur nettoyage avant la fin du processus. Les PAT créés sur GitHub restent actifs jusqu’à leur suppression.`,"plan.ready":`Plan prêt : {files} fichiers, {variables} Variables et {secrets} noms de Secrets. Examinez-le avant de continuer.`,"permission.preview":`Aperçu des droits : flux de tickets {issues} ; approbation des PR {approval} ; Secrets {secrets} ; Variables {variables} ; Projects {projects}. Vérifiez les droits exacts avant de créer le PAT de configuration.`,"setupPat.corrected.bootstrap":`Le PAT de configuration n’a pas pu accéder au dépôt. L’installation n’a pas commencé. Résolvez les tests échoués et tout nettoyage incomplet avant de réessayer. Droits requis : {grants}. Créez un PAT corrigé avec le lien GitHub mis à jour.`,"setupPat.corrected.final":`Les droits requis du PAT ont changé après inspection. L’installation n’a pas commencé. Résolvez les tests échoués et tout nettoyage incomplet avant de réessayer. Nouveaux droits : {grants}. Créez un PAT corrigé avec le lien mis à jour.`,"setupPat.cleanup":`Supprimez le PAT temporaire de configuration dans les paramètres GitHub après cette exécution. Fermer Copilot ne le révoque pas.`,"botPat.separation":`Le PAT du bot est distinct du PAT de configuration. Ces identifiants deviendront des Secrets GitHub Actions : {names}. Les valeurs existantes ne peuvent pas être relues. Saisissez à nouveau un PAT du bot pour vérifier ses droits. Aucun workflow de vérification ne démarre avant Appliquer.`,"credential.checks":`Vérification terminée pour {count} identifiants. Le résultat de chacun figure ci-dessous. Le terminal contient les détails techniques ; la valeur d’un Secret existant ne peut pas être relue.`,"credential.status.valid":`Valide`,"credential.status.invalid":`Invalide`,"credential.status.missing":`Manquant`,"credential.status.unverifiable":`Invérifiable sans nouvelle valeur`,"credential.status.not_required":`Non requis`,"validation.producers":`Choisissez 1 à 8 vérifications observées ou saisissez les triplets exacts nom|ID d’App|workflow.`,"validation.duplicateNames":`Deux producteurs fiables portent le même nom de vérification. La couverture ne stocke que ce nom : choisissez-en un ou renommez les jobs CI.`,"validation.projectStatusVerified":`Ouvrez chaque Project choisi sur GitHub et confirmez les quatre valeurs Status exactes. Répondez Oui après vérification, ou Non pour choisir à nouveau les Projects.`,"validation.projectStatusRedo":`Les valeurs Status n’ont pas été confirmées. Choisissez des Projects compatibles, puis revérifiez leurs options Status.`,"validation.number":`Saisissez un entier positif ou nul.`,"validation.boolean":`Choisissez Oui ou Non.`,"validation.choice":`Choisissez une des options affichées.`,"validation.unknownResource":`Noms de ressources héritées inconnus : {names}. Choisissez seulement les noms de la liste héritée.`,"validation.unknownWorkflow":`Workflows de ticket inconnus : {names}. Choisissez seulement les types proposés.`,"validation.firstQuestion":`C’est la première question de cette passe. Vérifiez-la ou annulez la configuration.`,"validation.duplicateProducer":`Cette vérification fiable a été choisie deux fois. Retirez le doublon.`,"validation.savedStatus":`La valeur Status enregistrée n’existe pas dans tous les Projects choisis. Sélectionnez une option proposée.`,"validation.projectIncompatible":`Les Projects choisis ne partagent aucune valeur Status. Choisissez des Projects compatibles ou configurez-les séparément.`,"validation.projectLimit":`Choisissez au plus 10 Projects ; séparez leurs numéros ou URL par des virgules.`,"validation.projectOwnerNeeded":`Une URL de Project exige de connaître le propriétaire du dépôt ; saisissez plutôt son numéro positif.`,"validation.projectOwnerMismatch":`Utilisez une URL de Project GitHub appartenant à {owner}, sans paramètres.`,"validation.projectUrl":`Saisissez une URL valide de Project GitHub ou son numéro positif.`,"validation.projectNumber":`Saisissez le numéro positif figurant dans l’URL du Project, pas un ID GraphQL PVT_.`,"validation.projectNumberRange":`Le numéro du Project doit être un entier positif inférieur ou égal à 2147483647.`,"validation.projectDuplicate":`Le Project {number} a été choisi plusieurs fois.`,"validation.fixedIssues":`Votre configuration active explicitement release ou hotfix. Gardez Issues activé ou modifiez d’abord la configuration.`,"validation.fixedWorkflowEnabled":`Votre configuration active {kind}. Gardez ce flux sélectionné ou modifiez d’abord la configuration.`,"validation.fixedWorkflowDisabled":`Votre configuration désactive {kind}. Désélectionnez ce flux ou modifiez d’abord la configuration.`,"validation.unknown":`Cette réponse n’a pas été acceptée. Vérifiez la question et son aide ; le terminal contient le détail technique.`},Ta={"session.controlMoved":`O controlo passou para este separador. O separador anterior é agora apenas de leitura.`,"session.cancelled":`Cancelamento solicitado. Os testes temporários já iniciados concluirão a limpeza antes de o processo terminar. Os PAT criados no GitHub permanecem até serem eliminados.`,"plan.ready":`Plano pronto: {files} ficheiros, {variables} Variables e {secrets} nomes de Secrets. Reveja-o antes de continuar.`,"permission.preview":`Pré-visualização das permissões: fluxos de issues {issues}; aprovação de PR {approval}; Secrets {secrets}; Variables {variables}; Projects {projects}. Reveja as permissões exatas antes de criar o PAT de configuração.`,"setupPat.corrected.bootstrap":`O PAT de configuração não conseguiu aceder ao repositório. A instalação não começou. Resolva os testes falhados e qualquer limpeza pendente antes de repetir. Permissões necessárias: {grants}. Crie um PAT corrigido com a ligação GitHub atualizada.`,"setupPat.corrected.final":`As permissões necessárias do PAT mudaram após inspeção. A instalação não começou. Resolva os testes falhados e qualquer limpeza pendente antes de repetir. Novas permissões: {grants}. Crie um PAT corrigido com a ligação atualizada.`,"setupPat.cleanup":`Elimine o PAT temporário de configuração nas definições do GitHub após esta execução. Fechar o Copilot não o revoga.`,"botPat.separation":`O PAT do bot é distinto do PAT de configuração. Estas credenciais serão Secrets do GitHub Actions: {names}. Os valores existentes não podem voltar a ser lidos. Reintroduza um PAT do bot para verificar as permissões. Nenhum fluxo de verificação é executado antes de Aplicar.`,"credential.checks":`Verificação concluída para {count} credenciais. O resultado de cada uma aparece abaixo. O terminal contém os detalhes técnicos; o valor de um Secret existente não pode voltar a ser lido.`,"credential.status.valid":`Válida`,"credential.status.invalid":`Inválida`,"credential.status.missing":`Em falta`,"credential.status.unverifiable":`Não verificável sem um novo valor`,"credential.status.not_required":`Não necessária`,"validation.producers":`Selecione 1 a 8 verificações observadas ou introduza os triplos exatos nome|ID da App|workflow.`,"validation.duplicateNames":`Dois produtores fiáveis têm o mesmo nome de check. A cobertura guarda apenas o nome: escolha um ou altere o nome dos jobs de CI.`,"validation.projectStatusVerified":`Abra cada Project escolhido no GitHub e confirme os quatro valores Status exatos. Responda Sim após verificar, ou Não para voltar a escolher Projects.`,"validation.projectStatusRedo":`Os valores Status não foram confirmados. Escolha Projects compatíveis e volte a verificar as opções Status.`,"validation.number":`Introduza um número inteiro não negativo.`,"validation.boolean":`Escolha Sim ou Não.`,"validation.choice":`Escolha uma das opções apresentadas.`,"validation.unknownResource":`Nomes de recursos herdados desconhecidos: {names}. Escolha apenas nomes da lista herdada.`,"validation.unknownWorkflow":`Fluxos de questões desconhecidos: {names}. Escolha apenas os tipos indicados.`,"validation.firstQuestion":`Esta é a primeira pergunta desta ronda. Reveja-a ou cancele a configuração.`,"validation.duplicateProducer":`Esta verificação de confiança foi selecionada duas vezes. Remova a seleção duplicada.`,"validation.savedStatus":`O valor Status guardado não existe em todos os Projects escolhidos. Selecione uma opção da lista.`,"validation.projectIncompatible":`Os Projects escolhidos não partilham qualquer valor Status. Escolha Projects compatíveis ou configure-os separadamente.`,"validation.projectLimit":`Escolha no máximo 10 Projects; separe os números ou URL por vírgulas.`,"validation.projectOwnerNeeded":`Uma URL de Project exige que se conheça o proprietário do repositório; introduza antes o número positivo.`,"validation.projectOwnerMismatch":`Use uma URL de Project do GitHub pertencente a {owner}, sem parâmetros.`,"validation.projectUrl":`Introduza uma URL válida de Project do GitHub ou o respetivo número positivo.`,"validation.projectNumber":`Introduza o número positivo apresentado na URL do Project, não um ID GraphQL PVT_.`,"validation.projectNumberRange":`O número do Project tem de ser um inteiro positivo até 2147483647.`,"validation.projectDuplicate":`O Project {number} foi selecionado mais do que uma vez.`,"validation.fixedIssues":`A sua configuração ativa explicitamente release ou hotfix. Mantenha Issues ativo ou altere primeiro a configuração.`,"validation.fixedWorkflowEnabled":`A sua configuração ativa {kind}. Mantenha esse fluxo selecionado ou altere primeiro a configuração.`,"validation.fixedWorkflowDisabled":`A sua configuração desativa {kind}. Desmarque esse fluxo ou altere primeiro a configuração.`,"validation.unknown":`Esta resposta não foi aceite. Reveja a pergunta e a ajuda; o terminal contém o detalhe técnico.`},Ea={en:{title:`Runners and installation parity`,help:`Access and capacity are observations. Verify runner authentication separately. Busy/offline waits for capacity; unknown access needs administrator verification. The chosen route never changes automatically.`,assets:`Asset inventory`,changes:`Complete changes (recognized credential formats masked)`,redactionNotice:`Masking covers recognized credential formats. Other hardcoded values can remain visible in these local workflow files; inspect them before sharing the review.`,before:`Before`,after:`After`,absent:`Absent`,disabled:`Disabled`,retained:`Retained`,blockers:`Needs attention`,registry:`Profile registry`,inventory:`Runner discovery`,profiles:`Reusable profiles`,observed:`Observed groups and labels`,limited:`Showing the first 10 runners. Manual entry remains available.`,available:`Available`,incomplete:`Incomplete`,missing:`Missing`,invalid:`Invalid: repair the registry or enter a manual profile`,unavailable:`Unavailable`,confirmed:`Repository access confirmed`,unknown:`Access unverified`,ready:`Available capacity observed`,hosted:`GitHub-hosted`,"pending-capacity":`Capacity pending: busy or offline`,"access-unknown":`Access unverified`,shared:`Shared/generated`,"source-only":`Source extension: retained`,customized:`Customized: review`,incompatible:`Incompatible generator: inspect before replacing`,agent:`Agent jobs`,"credential-health":`Credential verification`,validation:`Ordinary validation`,observer:`Trusted approval observer`,publication:`Publication`,isolated:`Isolated merge-group check`,retain:`Keep installed routing (recommended)`,"organization-profile":`Reuse an existing shared profile`,"manual-self-hosted":`Choose an existing self-hosted runner`,"validation-agent":`Use the selected agent runner`,"validation-hosted":`Use GitHub-hosted runners (recommended)`},es:{title:`Runners y paridad de la instalación`,help:`Acceso y capacidad son observaciones. Verifica la autenticación del runner por separado. Ocupado/desconectado espera capacidad; acceso desconocido requiere verificación del administrador. La ruta elegida nunca cambia automáticamente.`,assets:`Inventario de archivos`,changes:`Cambios completos (formatos de credenciales reconocidos ocultos)`,redactionNotice:`Se ocultan los formatos de credenciales reconocidos. Otros valores escritos en los workflows pueden seguir visibles en esta vista local; revísalos antes de compartirla.`,before:`Antes`,after:`Después`,absent:`Ausente`,disabled:`Desactivado`,retained:`Conservado`,blockers:`Requiere atención`,registry:`Registro de perfiles`,inventory:`Descubrimiento de runners`,profiles:`Perfiles reutilizables`,observed:`Grupos y etiquetas observados`,limited:`Se muestran los primeros 10 runners. Sigue disponible la entrada manual.`,available:`Disponible`,incomplete:`Incompleto`,missing:`Ausente`,invalid:`Inválido: corrige el registro o introduce un perfil manual`,unavailable:`No disponible`,confirmed:`Acceso del repositorio confirmado`,unknown:`Acceso sin verificar`,ready:`Capacidad disponible observada`,hosted:`Runners de GitHub`,"pending-capacity":`Capacidad pendiente: ocupado o desconectado`,"access-unknown":`Acceso sin verificar`,shared:`Compartido/generado`,"source-only":`Extensión propia: conservada`,customized:`Personalizado: revisar`,incompatible:`Generador incompatible: revisar antes de sustituir`,agent:`Jobs del agente`,"credential-health":`Verificación de credenciales`,validation:`Validación ordinaria`,observer:`Observador de aprobación fiable`,publication:`Publicación`,isolated:`Check aislado de la cola de fusión`,retain:`Conservar rutas instaladas (recomendado)`,"organization-profile":`Reutilizar un perfil compartido existente`,"manual-self-hosted":`Elegir un runner self-hosted existente`,"validation-agent":`Usar el runner del agente elegido`,"validation-hosted":`Usar runners de GitHub (recomendado)`},fr:{title:`Runners et parité de l’installation`,help:`Accès et capacité sont des observations. Vérifiez séparément l’authentification. Occupé/hors ligne attend la capacité ; l’accès inconnu exige une vérification administrateur. La route ne change jamais automatiquement.`,assets:`Inventaire des fichiers`,redactionNotice:`Le masquage couvre les formats de secrets reconnus. D’autres valeurs littérales peuvent rester visibles dans cette vue locale ; vérifiez-les avant de la partager.`,changes:`Modifications complètes (formats d’identifiants reconnus masqués)`,before:`Avant`,after:`Après`,absent:`Absent`,disabled:`Désactivé`,retained:`Conservé`,blockers:`Attention requise`,registry:`Registre des profils`,inventory:`Découverte des runners`,profiles:`Profils réutilisables`,observed:`Groupes et étiquettes observés`,limited:`Les 10 premiers runners sont affichés. La saisie manuelle reste disponible.`,available:`Disponible`,incomplete:`Incomplet`,missing:`Absent`,invalid:`Invalide : corrigez le registre ou saisissez un profil manuel`,unavailable:`Indisponible`,confirmed:`Accès du dépôt confirmé`,unknown:`Accès non vérifié`,ready:`Capacité disponible observée`,hosted:`Runners GitHub`,"pending-capacity":`Capacité en attente : occupé ou hors ligne`,"access-unknown":`Accès non vérifié`,shared:`Partagé/généré`,"source-only":`Extension source conservée`,customized:`Personnalisé : à vérifier`,incompatible:`Générateur incompatible : vérifiez avant remplacement`,agent:`Jobs de l’agent`,"credential-health":`Vérification des identifiants`,validation:`Validation ordinaire`,observer:`Observateur d’approbation fiable`,publication:`Publication`,isolated:`Vérification isolée de la file de fusion`,retain:`Conserver les routes installées (recommandé)`,"organization-profile":`Réutiliser un profil partagé existant`,"manual-self-hosted":`Choisir un runner auto-hébergé existant`,"validation-agent":`Utiliser le runner de l’agent sélectionné`,"validation-hosted":`Utiliser GitHub (recommandé)`},pt:{title:`Runners e paridade da instalação`,help:`Acesso e capacidade são observações. Verifique a autenticação separadamente. Ocupado/offline aguarda capacidade; acesso desconhecido exige verificação do administrador. A rota nunca muda automaticamente.`,assets:`Inventário de ficheiros`,redactionNotice:`São ocultados os formatos de credenciais reconhecidos. Outros valores escritos nos workflows podem continuar visíveis nesta vista local; reveja-os antes de a partilhar.`,changes:`Alterações completas (formatos de credenciais reconhecidos ocultos)`,before:`Antes`,after:`Depois`,absent:`Ausente`,disabled:`Desativado`,retained:`Mantido`,blockers:`Requer atenção`,registry:`Registo de perfis`,inventory:`Descoberta de runners`,profiles:`Perfis reutilizáveis`,observed:`Grupos e etiquetas observados`,limited:`São apresentados os primeiros 10 runners. A entrada manual continua disponível.`,available:`Disponível`,incomplete:`Incompleto`,missing:`Ausente`,invalid:`Inválido: corrija o registo ou introduza um perfil manual`,unavailable:`Indisponível`,confirmed:`Acesso do repositório confirmado`,unknown:`Acesso não verificado`,ready:`Capacidade disponível observada`,hosted:`Runners GitHub`,"pending-capacity":`Capacidade pendente: ocupado ou offline`,"access-unknown":`Acesso não verificado`,shared:`Partilhado/gerado`,"source-only":`Extensão própria mantida`,customized:`Personalizado: rever`,incompatible:`Gerador incompatível: reveja antes de substituir`,agent:`Jobs do agente`,"credential-health":`Verificação de credenciais`,validation:`Validação normal`,observer:`Observador de aprovação fiável`,publication:`Publicação`,isolated:`Verificação isolada da fila de fusão`,retain:`Manter rotas instaladas (recomendado)`,"organization-profile":`Reutilizar um perfil partilhado existente`,"manual-self-hosted":`Escolher um runner self-hosted existente`,"validation-agent":`Usar o runner do agente selecionado`,"validation-hosted":`Usar GitHub (recomendado)`}},Da={en:`This plan cannot be applied. Retain the existing asset or restore it with a compatible generator, then review again. No installation change has been applied. Open the details to identify the affected file.`,es:`Este plan no se puede aplicar. Conserva el archivo existente o restáuralo con un generador compatible y vuelve a revisar. No se ha aplicado ningún cambio de instalación. Abre los detalles para identificar el archivo afectado.`,fr:`Ce plan ne peut pas être appliqué. Conservez le fichier existant ou restaurez-le avec un générateur compatible, puis révisez le plan. Aucune modification d’installation n’a été appliquée. Ouvrez les détails pour identifier le fichier concerné.`,pt:`Este plano não pode ser aplicado. Mantenha o ficheiro existente ou restaure-o com um gerador compatível e reveja o plano. Nenhuma alteração de instalação foi aplicada. Abra os detalhes para identificar o ficheiro afetado.`};function $(e,t){return e===`blockedAction`?Da[t]:Ea[t][e]??Ea.en[e]??e}var Oa={es:{All:`Todos`,prompt:`Preguntar antes de crear el enlace`,"create-if-missing":`Crear el enlace si falta`,disabled:`Desactivado`,replace:`Sustituir`,append:`Añadir`,preserve:`Conservar`,info:`Informativa`,low:`Baja`,medium:`Media`,high:`Alta`,smart:`Adaptativa`,default:`Predeterminado`,auto:`Automático`,always:`Reinstalar siempre`,recommend:`Recomendar aprobación`,guarded:`Aprobar solo con garantías`,off:`Desactivado`,check:`Check de CI que exige la cobertura`,numeric:`Informe numérico verificable`,repository:`Repositorio`,organization:`Organización`,selected:`Repositorios seleccionados`,private:`Repositorios privados`,all:`Todos los repositorios`,"production-lineage":`Conservar el linaje de producción`,"canonical-gitflow":`Git-Flow canónico`,manual:`Manual`,"auto-merge":`Fusionar automáticamente`,"merge-queue":`Cola de integración`,"create-only":`Solo crear PR`,direct:`Integración directa`,"sync-branch":`Mediante rama de sincronización`,"prefer-release":`Priorizar la release`,development:`Desarrollo`,both:`Ambos destinos`,"source-only":`Solo rama de origen`,"sync-only":`Solo rama de sincronización`,none:`Ninguna`,close:`Cerrar el issue`,"keep-open":`Mantener abierto`,guided:`Guiado`,compact:`Compacto`,quiet:`Mínimo`,update:`Actualizar el comentario`,milestones:`Publicar en hitos`,feature:`Funcionalidad`,bugfix:`Corrección`,documentation:`Documentación`,chore:`Mantenimiento`,help:`Ayuda o pregunta`,hotfix:`Arreglo urgente`,release:`Release`},fr:{All:`Tous`,prompt:`Demander avant de créer le renvoi`,"create-if-missing":`Créer le renvoi s’il manque`,disabled:`Désactivé`,replace:`Remplacer`,append:`Ajouter`,preserve:`Conserver`,info:`Information`,low:`Faible`,medium:`Moyenne`,high:`Élevée`,smart:`Adaptatif`,default:`Par défaut`,auto:`Automatique`,always:`Toujours réinstaller`,recommend:`Recommander une approbation`,guarded:`Approuver sous garde`,off:`Désactivé`,check:`Vérification CI imposant la couverture`,numeric:`Rapport numérique vérifiable`,repository:`Dépôt`,organization:`Organisation`,selected:`Dépôts sélectionnés`,private:`Dépôts privés`,all:`Tous les dépôts`,"production-lineage":`Préserver la filiation de production`,"canonical-gitflow":`Git-Flow canonique`,manual:`Manuel`,"auto-merge":`Fusionner automatiquement`,"merge-queue":`File de fusion`,"create-only":`Créer la PR uniquement`,direct:`Fusion directe`,"sync-branch":`Par branche de synchronisation`,"prefer-release":`Privilégier la version`,development:`Développement`,both:`Les deux destinations`,"source-only":`Branche source seulement`,"sync-only":`Branche de synchronisation seulement`,none:`Aucune`,close:`Fermer le ticket`,"keep-open":`Garder ouvert`,guided:`Guidé`,compact:`Compact`,quiet:`Minimal`,update:`Mettre le commentaire à jour`,milestones:`Publier aux étapes clés`,feature:`Fonctionnalité`,bugfix:`Correction`,documentation:`Documentation`,chore:`Maintenance`,help:`Aide ou question`,hotfix:`Correctif urgent`,release:`Version`},pt:{All:`Todos`,prompt:`Perguntar antes de criar o apontador`,"create-if-missing":`Criar o apontador se faltar`,disabled:`Desativado`,replace:`Substituir`,append:`Acrescentar`,preserve:`Conservar`,info:`Informação`,low:`Baixa`,medium:`Média`,high:`Alta`,smart:`Adaptativo`,default:`Predefinido`,auto:`Automático`,always:`Reinstalar sempre`,recommend:`Recomendar aprovação`,guarded:`Aprovar sob condições`,off:`Desativado`,check:`Verificação CI que exige cobertura`,numeric:`Relatório numérico verificável`,repository:`Repositório`,organization:`Organização`,selected:`Repositórios selecionados`,private:`Repositórios privados`,all:`Todos os repositórios`,"production-lineage":`Preservar a linhagem de produção`,"canonical-gitflow":`Git-Flow canónico`,manual:`Manual`,"auto-merge":`Integrar automaticamente`,"merge-queue":`Fila de integração`,"create-only":`Criar apenas a PR`,direct:`Integração direta`,"sync-branch":`Através de ramo de sincronização`,"prefer-release":`Priorizar a release`,development:`Desenvolvimento`,both:`Ambos os destinos`,"source-only":`Apenas ramo de origem`,"sync-only":`Apenas ramo de sincronização`,none:`Nenhum`,close:`Fechar a questão`,"keep-open":`Manter aberta`,guided:`Guiado`,compact:`Compacto`,quiet:`Mínimo`,update:`Atualizar o comentário`,milestones:`Publicar nos marcos`,feature:`Funcionalidade`,bugfix:`Correção`,documentation:`Documentação`,chore:`Manutenção`,help:`Ajuda ou pergunta`,hotfix:`Hotfix`,release:`Release`}},ka=new Set([`codex`,`opencode`,`cursor`,`openai`,`anthropic`,`google`,`openrouter`,`local`]);function Aa(e,t,n){if(e===`runners.mode`)return $(t,n);if(e===`runners.validation`)return $(`validation-${t}`,n);if(n===`en`||ka.has(t))return t;let r=Oa[n];if(e===`issueWorkflows.enabled`&&t.includes(` — `)){let e=t.split(` — `,1)[0];if(r[e])return`${e} — ${r[e]}`}return e===`repository.reconciliationCleanup`&&t===`all`?{es:`Todas las ramas temporales`,fr:`Toutes les branches temporaires`,pt:`Todos os ramos temporários`}[n]:r[t]??t}function ja(e,t){return typeof e.defaultValue==`boolean`?Z(e.defaultValue?`yes`:`no`,t):e.defaultValue===void 0||e.defaultValue===``?Z(`none`,t):e.kind===`choice`||e.kind===`multi-select`?Aa(e.id,String(e.defaultValue),t):String(e.defaultValue)}var Ma={en:Sa,es:Ca,fr:wa,pt:Ta};function Na(e,t){if(e.managementState)return ta(t)[e.managementState];if(!e.copyId)return t===`en`?e.text:Z(`unknownLocalError`,t);let n=Ma[t][e.copyId],r=e.copyValues??{},i=e.copyId===`permission.preview`?{...r,issues:(r.issues??``).split(`|`).map(e=>Aa(`issueWorkflows.enabled`,e,t)).join(`, `),approval:Aa(`pullRequestApproval.mode`,r.approval??``,t),secrets:Aa(`storage.secrets.defaultScope`,r.secrets??``,t),variables:Aa(`storage.variables.defaultScope`,r.variables??``,t),projects:Aa(`projects.ids`,r.projects??``,t)}:r,a=n.replace(/\{([a-zA-Z]\w*)\}/gu,(e,t)=>i[t]??``);return e.copyId!==`credential.checks`||!e.credentialChecks?.length?a:`${a}\n${e.credentialChecks.map(e=>{let n=`credential.status.${e.status}`;return`${e.name}: ${Ma[t][n]}`}).join(` -`)}`}var Pa={en:va,es:ya,fr:ba,pt:xa};function Fa(e,t){return e.replace(/\{([a-zA-Z]\w*)\}/gu,(e,n)=>t[n]??``)}function Ia(e,t){if(!e.copyId)return;let n=Pa[t][e.copyId],r={...e.copyValues??{}};if(e.copyId===`credential.existing`&&r.status&&[`valid`,`invalid`,`missing`,`unverifiable`,`not_required`].includes(r.status)){let e=`credential.status.${r.status}`;r.status=Ma[t][e]}return{title:Fa(n.title,r),description:Fa(n.description,r),...n.choices?{choices:n.choices}:{}}}function La(e,t,n){return Ia(e,t)?.choices?.[n]??e.choices[n]}var Ra=U(`

      `,1);function za(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=j(),o=X(t,`view`,8);L(()=>(H(o()),n(),Ia),()=>{M(a,o()?.batch?Z(o().batch.phase===`review`?`batchReviewTitle`:o().batch.phase===`applying`?`batchProgressTitle`:`batchResultTitle`,n()):o()?.outcome===`complete`?Z(`completeTitle`,n()):o()?.outcome===`dry-run`?Z(`previewTitle`,n()):o()?.outcome===`cancelled`?Z(`cancelledTitle`,n()):o()?.outcome?Z(`blockedTitle`,n()):o()?.prompt?.kind===`repositories`?Z(`batchReviewSelection`,n()):o()?.prompt?.kind===`question`?Z(`choices`,n()):o()?.prompt?.kind===`plan`?Z(`plan`,n()):o()?.prompt?Ia(o().prompt,n())?.title??o().prompt.title:Z(`preparing`,n()))}),En(),Ai();var s=Ra(),c=P(s),l=I(N(c)),u=F(I(l));D(c);var d=I(c,2),f=F(d,!0),p=F(I(d,2),!0);R((e,t,n)=>{G(l,` ${e??``} `),G(u,`${t??``} / 06`),G(f,B(a)),G(p,n)},[()=>(H(Zi),H(o()),n(),V(()=>Zi(o()?.journey?.current,n()).toUpperCase())),()=>(H(o()),V(()=>String(o()?.journey?.position??1).padStart(2,`0`))),()=>(H(o()),H(Z),n(),V(()=>o()?.outcome?Z(`resultLede`,n()):Z(`activeLede`,n())))]),W(e,s),Je(),i()}function Ba(e){try{let t=new URL(e??``);return t.protocol===`https:`&&t.hostname===`github.com`&&(t.pathname===`/settings/personal-access-tokens`||t.pathname.startsWith(`/settings/personal-access-tokens/`))?t.toString():void 0}catch{return}}function Va(e){return e&&/^[A-Za-z0-9-]{1,39}\/(?!\.{1,2}$)[A-Za-z0-9._-]{1,100}$/u.test(e)?`https://github.com/${e}/settings/secrets/actions`:void 0}function Ha(e){try{let t=new URL(e??``);return t.protocol===`https:`&&t.hostname===`github.com`&&!t.username&&!t.password&&!t.search&&!t.hash&&/^\/[A-Za-z0-9-]{1,39}\/[A-Za-z0-9._-]{1,100}\/actions\/runs\/[1-9][0-9]*$/u.test(t.pathname)?t.toString():void 0}catch{return}}function Ua(e){try{let t=new URL(e??``);return t.protocol===`https:`&&t.hostname===`github.com`&&!t.username&&!t.password&&!t.search&&!t.hash&&/^\/[A-Za-z0-9-]{1,39}\/[A-Za-z0-9._-]{1,100}\/rules\/[1-9][0-9]*$/u.test(t.pathname)?t.toString():void 0}catch{return}}function Wa(e){try{let t=new URL(e??``);return t.protocol===`https:`&&t.hostname===`github.com`&&!t.username&&!t.password&&!t.search&&!t.hash&&/^\/(?:orgs|users)\/[A-Za-z0-9-]{1,39}\/projects\/[1-9][0-9]*$/u.test(t.pathname)?t.toString():void 0}catch{return}}var Ga=U(``),Ka=U(``);function qa(e,t){let n=X(t,`label`,8),r=X(t,`variant`,8,`primary`),i=X(t,`disabled`,8,!1),a=X(t,`arrow`,8,!1),o=X(t,`onClick`,8);var s=Ka(),c=N(s,!0),l=I(c),u=e=>{W(e,Ga())};K(l,e=>{a()&&e(u)}),D(s),R(()=>{li(s,1,oi(r())),s.disabled=i(),G(c,n())}),Cr(`click`,s,function(...e){o()?.apply(this,e)}),W(e,s)}wr([`click`]);var Ja=U(` `),Ya=U(`

      `);function Xa(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=j(),o=X(t,`tone`,8,`info`),s=X(t,`title`,8),c=X(t,`message`,8),l=X(t,`link`,8,void 0),u=X(t,`actionLabel`,8,void 0),d=X(t,`onAction`,8,void 0);L(()=>H(l()),()=>{M(a,Ba(l()))}),En(),Ai();var f=Ya(),p=N(f),m=F(p,!0),h=I(p),g=F(h,!0),_=I(h,2),v=e=>{var t=Ja(),r=F(t,!0);R(e=>{Y(t,`href`,B(a)),G(r,e)},[()=>(H(Z),n(),V(()=>Z(`githubLink`,n())))]),W(e,t)};K(_,e=>{B(a)&&e(v)});var y=I(_,2),b=e=>{qa(e,{get label(){return u()},variant:`secondary`,get onClick(){return d()}})};K(y,e=>{u()&&d()&&e(b)}),D(f),R(()=>{li(f,1,`banner ${o()??``}`),Y(f,`role`,o()===`error`?`alert`:`status`),G(m,s()),G(g,c())}),W(e,f),Je(),i()}var Za=U(`
    1. :
    2. `),Qa=U(`
        `),$a=U(`
      • `),eo=U(`
      • `),to=U(`

        `),no=U(`
            `),ro=U(`

            `);function io(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=X(t,`question`,8);Ai();var o=Nr(),s=P(o),c=e=>{var t=ro(),r=N(t),i=F(r,!0),o=I(r,2),s=N(o),c=I(s),l=e=>{var t=Mr();R(e=>G(t,`(${e??``})`),[()=>(H(Z),H(a()),n(),V(()=>Z(a().runnerRegistryScope===`repository`?`scopeRepository`:`scopeOrganization`,n())))]),W(e,t)};K(c,e=>{H(a()),V(()=>a().runnerRegistryScope)&&e(l)});var u=I(c);D(o);var d=I(o,2),f=e=>{var t=Qa(),r=N(t),i=F(r,!0),o=I(r,2);J(o,5,()=>(H(a()),V(()=>a().runnerProfiles)),q,(e,t)=>{var n=Za(),r=N(n),i=F(r,!0),a=F(I(r,2));D(n),R(e=>{G(i,(B(t),V(()=>B(t).id))),G(a,`${B(t),V(()=>B(t).group||`—`)??``} · ${e??``}`)},[()=>(B(t),V(()=>B(t).labels.join(`, `)))]),W(e,n)}),D(o),D(t),R(e=>G(i,e),[()=>(H($),n(),V(()=>$(`profiles`,n())))]),W(e,t)};K(d,e=>{H(a()),V(()=>a().runnerProfiles?.length)&&e(f)});var p=I(d,2),m=e=>{var t=no(),r=N(t),i=F(r,!0),o=I(r,2);J(o,5,()=>(H(a()),V(()=>a().runnerInventory.groups)),q,(e,t)=>{var r=$a(),i=N(r),a=F(i,!0),o=I(i);D(r),R(e=>{G(a,(B(t),V(()=>B(t).name))),G(o,`: ${e??``}`)},[()=>(H($),B(t),n(),V(()=>$(B(t).access,n())))]),W(e,r)}),D(o);var s=I(o,2);J(s,5,()=>(H(a()),V(()=>a().runnerInventory.candidates.slice(0,10))),q,(e,t)=>{var n=eo(),r=F(N(n),!0);D(n),R(e=>G(r,e),[()=>(B(t),V(()=>B(t).labels.join(`, `)))]),W(e,n)}),D(s);var c=I(s,2),l=e=>{var t=to(),r=F(t,!0);R(e=>G(r,e),[()=>(H($),n(),V(()=>$(`limited`,n())))]),W(e,t)};K(c,e=>{H(a()),V(()=>a().runnerInventory.candidates.length>10)&&e(l)}),D(t),R(e=>G(i,e),[()=>(H($),n(),V(()=>$(`observed`,n())))]),W(e,t)};K(p,e=>{H(a()),V(()=>a().runnerInventory)&&e(m)}),D(t),R((e,t,n,r,a)=>{G(i,e),G(s,`${t??``}: ${n??``}`),G(u,` · ${r??``}: ${a??``}`)},[()=>(H($),n(),V(()=>$(`help`,n()))),()=>(H($),n(),V(()=>$(`registry`,n()))),()=>(H($),H(a()),n(),V(()=>$(a().runnerRegistryStatus??`unavailable`,n()))),()=>(H($),n(),V(()=>$(`inventory`,n()))),()=>(H($),H(a()),n(),V(()=>$(a().runnerInventory?.status??`unavailable`,n())))]),W(e,t)},l=_t(()=>(H(a()),V(()=>a().id.startsWith(`runners.`)&&a().id!==`runners.discover`)));K(s,e=>{B(l)&&e(c)}),W(e,o),Je(),i()}function ao(e){let t=String(e.question.defaultValue),n=t.split(`,`).map(e=>e.trim()).filter(Boolean),r=e.question.kind===`multi-select`?n.includes(`All`)&&e.question.choices?.includes(`All`)?[`All`]:(e.question.choices??[]).filter(e=>e!==`All`&&n.includes(e.split(` — `)[0])):e.question.kind===`scope-overrides`?n:e.question.kind===`producer-select`?t.split(`;`).map(e=>e.trim()).filter(Boolean):e.question.kind===`project-select`?n.filter(t=>e.question.projectCandidates?.some(e=>String(e.number)===t)):[],i=e.question.kind===`project-select`?n.filter(e=>!r.includes(e)).join(`,`):t;return{value:e.question.kind===`producer-select`?``:i,selected:r}}function oo(e,t){return t===`All`?e.includes(`All`)?[]:[`All`]:e.includes(t)?e.filter(e=>e!==t):[...e.filter(e=>e!==`All`),t]}function so(e,t,n){return e.question.kind===`scope-overrides`||e.question.kind===`multi-select`?n.length?n.join(`,`):`none`:e.question.kind===`producer-select`?[...n,...t.split(`;`).map(e=>e.trim()).filter(Boolean)].join(`;`):e.question.kind===`project-select`?[...n,...t.split(`,`).map(e=>e.trim()).filter(Boolean)].join(`,`)||`none`:t}var co={issueCreated:`projectTransitionIssueCreated`,pullRequestCreated:`projectTransitionPullRequestCreated`,issueInProgress:`projectTransitionIssueInProgress`,pullRequestInProgress:`projectTransitionPullRequestInProgress`};function lo(e){if(e)try{let t=new URL(e);if(t.protocol!==`https:`||t.username||t.password||t.search)return;if(t.hostname===`docs.page`&&t.port===``&&t.pathname.startsWith(`/vypdev/copilot/`)||t.hostname===`docs.github.com`&&t.port===``&&t.pathname.startsWith(`/en/`))return t.href}catch{return}}var uo=U(`

            `),fo=U(`

            `),po=U(` `,1);function mo(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=j(),o=X(t,`kind`,8),s=X(t,`status`,8),c=X(t,`truncated`,8,!1),l={observed:`checksObserved`,"no-recent-runs":`checksNoRecent`,"no-verifiable-checks":`checksNoVerifiable`,"permission-denied":`checksDenied`,unavailable:`checksUnavailable`},u={observed:`projectsObserved`,empty:`projectsEmpty`,"permission-denied":`projectsDenied`,unavailable:`projectsUnavailable`,unsupported:`projectsUnsupported`};L(()=>(H(s()),H(o())),()=>{M(a,s()?o()===`checks`?l[s()]:u[s()]:void 0)}),En(),Ai();var d=po(),f=P(d),p=e=>{var t=uo(),r=F(t,!0);R(e=>G(r,e),[()=>(H(Z),B(a),n(),V(()=>Z(B(a),n())))]),W(e,t)};K(f,e=>{B(a)&&e(p)});var m=I(f,2),h=e=>{var t=fo(),r=F(t,!0);R(e=>G(r,e),[()=>(H(Z),H(o()),n(),V(()=>Z(o()===`checks`?`checksDiscoveryScope`:`projectsDiscoveryScope`,n())))]),W(e,t)};K(m,e=>{(s()===`observed`||s()===`empty`||s()===`no-recent-runs`||s()===`no-verifiable-checks`)&&e(h)});var g=I(m,2),_=e=>{var t=fo(),r=F(t,!0);R(e=>G(r,e),[()=>(H(Z),n(),V(()=>Z(`discoveryTruncated`,n())))]),W(e,t)};K(g,e=>{c()&&e(_)}),W(e,d),Je(),i()}var ho={en:{success:`Passed`,failure:`Failed`,cancelled:`Cancelled`,neutral:`Neutral`,skipped:`Skipped`,timed_out:`Timed out`,action_required:`Action required`,stale:`Stale`,startup_failure:`Failed to start`,unknown:`Unknown outcome`},es:{success:`Correcto`,failure:`Falló`,cancelled:`Cancelado`,neutral:`Neutral`,skipped:`Omitido`,timed_out:`Agotó el tiempo`,action_required:`Requiere intervención`,stale:`Obsoleto`,startup_failure:`Falló al iniciar`,unknown:`Resultado desconocido`},fr:{success:`Réussi`,failure:`Échoué`,cancelled:`Annulé`,neutral:`Neutre`,skipped:`Ignoré`,timed_out:`Délai dépassé`,action_required:`Action nécessaire`,stale:`Obsolète`,startup_failure:`Échec au démarrage`,unknown:`Résultat inconnu`},pt:{success:`Concluído`,failure:`Falhou`,cancelled:`Cancelado`,neutral:`Neutro`,skipped:`Ignorado`,timed_out:`Tempo esgotado`,action_required:`Ação necessária`,stale:`Obsoleto`,startup_failure:`Falha ao iniciar`,unknown:`Resultado desconhecido`}};function go(e,t){return ho[t][e]??ho[t].unknown}function _o(e,t,n){let r=e.trim(),i=n.trim(),a=String(t??``).trim(),o=Number(a);if(!(!r||!i||r.length>100||i.length>100||/[|;\r\n]/u.test(r+i)||!/^[1-9]\d*$/u.test(a)||!Number.isSafeInteger(o)))return`${r}|${o}|${i}`}var vo=U(` `),yo=U(`
            `),bo=U(`
          • `),xo=U(`
              `),So=U(``),Co=U(`

              `,1);function wo(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=j(),o=j(),s=X(t,`candidates`,8),c=X(t,`selected`,12),l=X(t,`controller`,8),u=j(``),d=j(``),f=j(``),p=j(!1);function m(){let e=_o(B(u),B(d),B(f));if(!e||c().length>=8){M(p,!0);return}M(p,!1),c().includes(e)||c([...c(),e]),M(u,``),M(d,``),M(f,``)}L(()=>H(s()),()=>{M(a,new Set(s().map(e=>`${e.name}|${e.sourceAppId}|${e.workflowName}`)))}),L(()=>(H(c()),B(a)),()=>{M(o,c().filter(e=>!B(a).has(e)))}),En(),Ai();var h=Co(),g=P(h);J(g,5,s,q,(e,t)=>{let r=k(()=>(B(t),V(()=>`${B(t).name}|${B(t).sourceAppId}|${B(t).workflowName}`)));var i=yo(),a=N(i),o=N(a);bi(o);var s=I(o,2),u=N(s),d=F(N(u),!0);D(u);var f=I(u),p=F(N(f));D(f);var m=F(I(f),!0);D(s),D(a);var h=I(a,2),g=N(h),_=e=>{var r=vo(),i=F(r,!0);R((e,t)=>{Y(r,`href`,e),G(i,t)},[()=>(H(Ha),B(t),V(()=>Ha(B(t).runUrl))),()=>(H(Z),n(),V(()=>Z(`ciRun`,n())))]),W(e,r)},v=_t(()=>(H(Ha),B(t),V(()=>Ha(B(t).runUrl))));K(g,e=>{B(v)&&e(_)});var y=I(g,2),b=e=>{var r=vo(),i=F(r,!0);R((e,t)=>{Y(r,`href`,e),G(i,t)},[()=>(H(Ua),B(t),V(()=>Ua(B(t).requiredByRuleset?.sourceUrl))),()=>(H(Z),n(),V(()=>Z(`ciRule`,n())))]),W(e,r)},x=_t(()=>(H(Ua),B(t),V(()=>Ua(B(t).requiredByRuleset?.sourceUrl))));K(y,e=>{B(x)&&e(b)}),D(h),D(i),R((e,n,r,i,a,s)=>{xi(o,e),o.disabled=n,G(d,(B(t),V(()=>B(t).name))),G(p,`${B(t),V(()=>B(t).workflowName)??``} · ${B(t),V(()=>B(t).sourceAppName??`GitHub App`)??``} ${B(t),V(()=>B(t).sourceAppId)??``} · ${r??``} · ${i??``} · ${a??``}`),G(m,s)},[()=>(H(c()),H(B(r)),V(()=>c().includes(B(r)))),()=>(H(l()),H(c()),H(B(r)),V(()=>!l()||c().length>=8&&!c().includes(B(r)))),()=>(H(go),B(t),n(),V(()=>go(B(t).conclusion,n()))),()=>(B(t),V(()=>B(t).headSha.slice(0,7))),()=>(B(t),H(Z),n(),V(()=>B(t).observedAt??Z(`observationTimeUnknown`,n()))),()=>(B(t),H(Z),n(),V(()=>B(t).requiredByRuleset?Z(`branchRequirementObserved`,n(),{branch:B(t).requiredByRuleset.branch}):Z(`branchRequirementUnknown`,n())))]),Cr(`change`,o,()=>c(oo(c(),B(r)))),W(e,i)}),D(g);var _=I(g,2),v=e=>{var t=xo();J(t,5,()=>B(o),q,(e,t)=>{var r=bo(),i=N(r),a=F(i,!0),o=I(i,2),s=F(o,!0);D(r),R(e=>{G(a,B(t)),o.disabled=!l(),G(s,e)},[()=>(H(Z),n(),V(()=>Z(`producerRemove`,n())))]),Cr(`click`,o,()=>c(oo(c(),B(t)))),W(e,r)}),D(t),W(e,t)};K(_,e=>{B(o),V(()=>B(o).length)&&e(v)});var y=I(_,2),b=F(y,!0),x=I(y,2),S=N(x),C=N(S,!0),w=I(C);bi(w),D(S);var ee=I(S,2),te=N(ee,!0),ne=I(te);bi(ne),D(ee);var re=I(ee,2),ie=N(re,!0),ae=I(ie);bi(ae),D(re),D(x);var oe=I(x,2),se=F(oe,!0),ce=I(oe,2),le=e=>{var t=So(),r=F(t,!0);R(e=>G(r,e),[()=>(H(Z),n(),V(()=>Z(`producerManualInvalid`,n())))]),W(e,t)};K(ce,e=>{B(p)&&e(le)}),R((e,t,n,r,i,a)=>{Y(g,`aria-label`,e),G(b,t),G(C,n),w.disabled=!l(),G(te,r),ne.disabled=!l(),G(ie,i),ae.disabled=!l(),oe.disabled=!l(),G(se,a)},[()=>(H(Z),n(),V(()=>Z(`checksObserved`,n()))),()=>(H(Z),n(),V(()=>Z(`producerManualHelp`,n()))),()=>(H(Z),n(),V(()=>Z(`producerName`,n()))),()=>(H(Z),n(),V(()=>Z(`producerAppId`,n()))),()=>(H(Z),n(),V(()=>Z(`producerWorkflow`,n()))),()=>(H(Z),n(),V(()=>Z(`producerAdd`,n())))]),Ti(w,()=>B(u),e=>M(u,e)),Ti(ne,()=>B(d),e=>M(d,e)),Ti(ae,()=>B(f),e=>M(f,e)),Cr(`click`,oe,m),W(e,h),Je(),i()}wr([`change`,`click`]);var To=U(` `),Eo=U(`
              `),Do=U(`
            • `),Oo=U(`

                `,1),ko=U(`
                `,1);function Ao(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=j(),o=j(),s=X(t,`candidates`,8),c=X(t,`selected`,12),l=X(t,`value`,12),u=X(t,`controller`,8);L(()=>H(s()),()=>{M(a,new Set(s().map(e=>String(e.number))))}),L(()=>(H(c()),B(a)),()=>{M(o,c().filter(e=>!B(a).has(e)))}),En(),Ai();var d=ko(),f=P(d);J(f,5,s,q,(e,t)=>{var r=Eo(),i=N(r),a=N(i);bi(a);var o=I(a,2),s=N(o),l=F(N(s),!0);D(s);var d=I(s),f=F(N(d));D(d),D(o),D(i);var p=I(i,2),m=e=>{var r=To(),i=F(r,!0);R((e,t)=>{Y(r,`href`,e),G(i,t)},[()=>(H(Wa),B(t),V(()=>Wa(B(t).url))),()=>(H(Z),n(),V(()=>Z(`projectUrl`,n())))]),W(e,r)},h=_t(()=>(H(Wa),B(t),V(()=>Wa(B(t).url))));K(p,e=>{B(h)&&e(m)}),D(r),R((e,n)=>{xi(a,e),a.disabled=n,G(l,(B(t),V(()=>B(t).title))),G(f,`${B(t),V(()=>B(t).owner)??``} · #${B(t),V(()=>B(t).number)??``}`)},[()=>(H(c()),B(t),V(()=>c().includes(String(B(t).number)))),()=>(H(u()),H(c()),B(t),V(()=>!u()||c().length>=10&&!c().includes(String(B(t).number))))]),Cr(`change`,a,()=>c(oo(c(),String(B(t).number)))),W(e,r)}),D(f);var p=I(f,2),m=e=>{var t=Oo(),r=P(t),i=F(r,!0),a=I(r,2);J(a,5,()=>B(o),q,(e,t)=>{var r=Do(),i=N(r),a=F(i),o=I(i,2),s=F(o,!0);D(r),R(e=>{G(a,`#${B(t)??``}`),o.disabled=!u(),G(s,e)},[()=>(H(Z),n(),V(()=>Z(`removeSelection`,n())))]),Cr(`click`,o,()=>c(oo(c(),B(t)))),W(e,r)}),D(a),R(e=>G(i,e),[()=>(H(Z),n(),V(()=>Z(`projectSelectionNotObserved`,n())))]),W(e,t)};K(p,e=>{B(o),V(()=>B(o).length)&&e(m)});var h=I(p,2),g=N(h),_=F(g,!0),v=I(g,2);bi(v),D(h),R((e,t)=>{Y(f,`aria-label`,e),G(_,t),v.disabled=!u()},[()=>(H(Z),n(),V(()=>Z(`projectsObserved`,n()))),()=>(H(Z),n(),V(()=>Z(`projectManual`,n())))]),Ti(v,l),W(e,d),Je(),i()}wr([`change`,`click`]);var jo=U(``),Mo=U(`
                `),No=U(` `,1);function Po(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=X(t,`explanation`,8),o=X(t,`helpUrl`,8);Ai();var s=No(),c=P(s),l=e=>{var t=jo(),r=N(t),i=F(r);D(t),R(e=>{Y(r,`href`,o()),G(i,`${e??``} ↗`)},[()=>(H(Z),n(),V(()=>Z(`learnMore`,n())))]),W(e,t)};K(c,e=>{o()&&e(l)});var u=I(c,2),d=e=>{var t=Mo(),r=N(t),i=F(r,!0),o=I(r),s=N(o),c=F(s,!0),l=I(s),u=F(l,!0),d=I(l,2),f=F(d,!0),p=I(d),m=F(p,!0),h=I(p,2),g=F(h,!0),_=I(h),v=F(_,!0),y=I(_,2),b=F(y,!0),x=I(y),S=F(x,!0),C=I(x,2),w=F(C,!0),ee=I(C),te=F(ee,!0),ne=I(ee,2),re=F(ne,!0),ie=I(ne),ae=F(ie,!0),oe=I(ie,2),se=F(oe,!0),ce=F(I(oe),!0);D(o),D(t),R((e,t,n,r,o,s,l,d)=>{G(i,e),G(c,t),G(u,(H(a()),V(()=>a().when))),G(f,n),G(m,(H(a()),V(()=>a().where))),G(g,r),G(v,(H(a()),V(()=>a().how))),G(b,o),G(S,(H(a()),V(()=>a().why))),G(w,s),G(te,(H(a()),V(()=>a().example))),G(re,l),G(ae,(H(a()),V(()=>a().effect))),G(se,d),G(ce,(H(a()),V(()=>a().verify)))},[()=>(H(Z),n(),V(()=>Z(`whyMatters`,n()))),()=>(H(Z),n(),V(()=>Z(`whenApplies`,n()))),()=>(H(Z),n(),V(()=>Z(`whereConfigured`,n()))),()=>(H(Z),n(),V(()=>Z(`howToChoose`,n()))),()=>(H(Z),n(),V(()=>Z(`whyRecommendation`,n()))),()=>(H(Z),n(),V(()=>Z(`example`,n()))),()=>(H(Z),n(),V(()=>Z(`effect`,n()))),()=>(H(Z),n(),V(()=>Z(`verify`,n())))]),W(e,t)};K(u,e=>{a()&&e(d)}),W(e,s),Je(),i()}var Fo=U(`· `,1),Io=U(`

                `,1);function Lo(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=X(t,`candidate`,8);Ai();var o=Io(),s=P(o),c=N(s),l=F(c),u=I(c,2),d=e=>{var t=Fo(),r=I(P(t)),i=F(r,!0);R((e,t)=>{Y(r,`href`,e),G(i,t)},[()=>(H(Ha),H(a()),V(()=>Ha(a().runUrl))),()=>(H(Z),n(),V(()=>Z(`ciRun`,n())))]),W(e,t)},f=_t(()=>(H(Ha),H(a()),V(()=>Ha(a().runUrl))));K(u,e=>{B(f)&&e(d)}),D(s);var p=I(s,2),m=N(p),h=F(m),g=I(m),_=I(g),v=e=>{var t=Fo(),r=I(P(t)),i=F(r,!0);R((e,t)=>{Y(r,`href`,e),G(i,t)},[()=>(H(Ua),H(a()),V(()=>Ua(a().requiredByRuleset?.sourceUrl))),()=>(H(Z),n(),V(()=>Z(`ciRule`,n())))]),W(e,t)},y=_t(()=>(H(Ua),H(a()),V(()=>Ua(a().requiredByRuleset?.sourceUrl))));K(_,e=>{B(y)&&e(v)}),D(p),R((e,t,n,r)=>{G(l,`${H(a()),V(()=>a().workflowName)??``} · GitHub App ${H(a()),V(()=>a().sourceAppId)??``}`),G(h,`${e??``} · ${t??``} · ${n??``}`),G(g,` · ${r??``} `)},[()=>(H(go),H(a()),n(),V(()=>go(a().conclusion,n()))),()=>(H(a()),V(()=>a().headSha.slice(0,7))),()=>(H(a()),H(Z),n(),V(()=>a().observedAt??Z(`observationTimeUnknown`,n()))),()=>(H(a()),H(Z),n(),V(()=>a().requiredByRuleset?Z(`branchRequirementObserved`,n(),{branch:a().requiredByRuleset.branch}):Z(`branchRequirementUnknown`,n())))]),W(e,o),Je(),i()}var Ro=U(`

                `);function zo(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=X(t,`question`,8);Ai();var o=Nr(),s=P(o),c=e=>{var t=Ro(),r=F(t,!0);R(e=>G(r,e),[()=>(H(Z),n(),V(()=>Z(`fixedIssuesRequired`,n())))]),W(e,t)},l=e=>{var t=Nr();J(P(t),1,()=>(H(a()),V(()=>Object.entries(a().fixedWorkflowFeatures).filter(([,e])=>e!==void 0))),q,(e,t)=>{var r=_t(()=>b(B(t),2));let i=()=>B(r)[0],a=()=>B(r)[1];var o=Ro(),s=F(o,!0);R(e=>G(s,e),[()=>(H(Z),a(),n(),i(),V(()=>Z(a()?`fixedWorkflowEnabled`:`fixedWorkflowDisabled`,n(),{kind:i()})))]),W(e,o)}),W(e,t)};K(s,e=>{H(a()),V(()=>a().id===`features.issues`&&(a().fixedWorkflowFeatures?.release||a().fixedWorkflowFeatures?.hotfix))?e(c):(H(a()),V(()=>a().fixedWorkflowFeatures)&&e(l,1))}),W(e,o),Je(),i()}var Bo=U(` `),Vo=U(`

                `),Ho=U(`

                `),Uo=U(` `,1),Wo=U(`

                `),Go=U(`
                `),Ko=U(`

                `),qo=U(``),Jo=U(`
              • `),Yo=U(`
                  `),Xo=U(`
                  `),Zo=U(``),Qo=U(``),$o=U(` `,1),es=U(``),ts=U(`
                  `),ns=U(``),rs=U(``),is=U(`

                  `,1);function as(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=j(),o=j(),s=j(),c=X(t,`prompt`,8),l=X(t,`controller`,8),u=X(t,`busy`,8),d=X(t,`onSubmit`,8),f=X(t,`onRetryDiscovery`,8),p=X(t,`onBack`,8),m=ao(c()),h=j(m.value),g=j(m.selected);L(()=>(H(c()),n()),()=>{M(a,c().presentation?.[n()])}),L(()=>B(a),()=>{M(o,lo(B(a)?.documentation?.url))}),L(()=>(H(c()),n()),()=>{M(s,ja(c().question,n()))}),En(),Ai();var _=is(),v=P(_),y=N(v),b=F(y,!0),x=I(y),S=e=>{var t=Bo(),r=F(t,!0);R(e=>G(r,e),[()=>(H(Z),n(),V(()=>Z(`permissionPreview`,n())))]),W(e,t)};K(x,e=>{H(c()),V(()=>c().phase===`permission-intent`)&&e(S)}),D(v);var C=I(v,2),w=e=>{var t=Vo(),r=F(t,!0);R(e=>G(r,e),[()=>(H(Z),n(),H(c()),V(()=>Z(`questionProgress`,n(),{current:String(c().progress.groupPosition),total:String(c().progress.groupTotal),overall:String(c().progress.position),all:String(c().progress.total)})))]),W(e,t)};K(C,e=>{H(c()),V(()=>c().progress)&&e(w)});var ee=I(C,2),te=e=>{var t=Ho(),n=F(t,!0);R(()=>G(n,(B(a),V(()=>B(a).summary)))),W(e,t)};K(ee,e=>{B(a)&&e(te)});var ne=I(ee,2),re=e=>{mo(e,{kind:`checks`,get status(){return H(c()),V(()=>c().question.discoveryStatus)},get truncated(){return H(c()),V(()=>c().question.discoveryTruncated)}})};K(ne,e=>{H(c()),V(()=>c().question.id===`pullRequestApproval.testChecks`)&&e(re)});var ie=I(ne,2),ae=e=>{mo(e,{kind:`projects`,get status(){return H(c()),V(()=>c().question.discoveryStatus)},get truncated(){return H(c()),V(()=>c().question.discoveryTruncated)}})};K(ie,e=>{H(c()),V(()=>c().question.id===`projects.ids`)&&e(ae)});var oe=I(ie,2),se=e=>{var t=Go(),r=N(t),i=e=>{var t=Uo(),r=P(t),i=F(r,!0),a=F(I(r,2),!0);R((e,t)=>{r.disabled=!l()||u(),G(i,e),G(a,t)},[()=>(H(Z),n(),V(()=>Z(`retryDiscovery`,n()))),()=>(H(Z),n(),H(c()),V(()=>Z(`retryRemaining`,n(),{count:String(c().question.discoveryRetryRemaining)})))]),Cr(`click`,r,function(...e){f()?.apply(this,e)}),W(e,t)},a=e=>{var t=Wo(),r=F(t,!0);R(e=>G(r,e),[()=>(H(Z),n(),V(()=>Z(`retryExhausted`,n())))]),W(e,t)};K(r,e=>{H(c()),V(()=>c().question.discoveryRetryRemaining>0)?e(i):e(a,-1)}),D(t),W(e,t)};K(oe,e=>{H(c()),V(()=>c().question.discoveryRetryRemaining!==void 0)&&e(se)});var ce=I(oe,2),le=e=>{var t=Ko(),r=F(t,!0);R(e=>G(r,e),[()=>(H(Z),n(),V(()=>Z(`projectStatusUnavailable`,n())))]),W(e,t)};K(ce,e=>{H(c()),V(()=>c().question.statusOptionState===`unavailable`)&&e(le)});var ue=I(ce,2),de=e=>{var t=qo(),r=F(t,!0);R(e=>G(r,e),[()=>(H(Z),n(),V(()=>Z(`projectStatusIncompatible`,n())))]),W(e,t)};K(ue,e=>{H(c()),V(()=>c().question.statusOptionState===`incompatible`)&&e(de)});var fe=I(ue,2),pe=e=>{var t=Wo(),r=F(t,!0);R(e=>G(r,e),[()=>(H(Z),n(),V(()=>Z(`projectSharedStatus`,n())))]),W(e,t)};K(fe,e=>{H(c()),V(()=>c().question.id===`projects.ids`)&&e(pe)});var me=I(fe,2);zo(me,{get question(){return H(c()),V(()=>c().question)}});var he=I(me,2),ge=e=>{var t=Yo();J(t,5,()=>(H(c()),V(()=>c().question.projectStatusValues)),q,(e,t)=>{var r=Jo(),i=N(r),a=I(i),o=F(N(a),!0);D(a),D(r),R(e=>{G(i,`${e??``}: `),G(o,(B(t),V(()=>B(t).value)))},[()=>(H(Z),H(co),B(t),n(),V(()=>Z(co[B(t).transition],n())))]),W(e,r)}),D(t),W(e,t)};K(he,e=>{H(c()),V(()=>c().question.projectStatusValues)&&e(ge)});var _e=I(he,2),ve=e=>{var t=Xo(),r=N(t);let i;var o=F(r,!0),s=I(r);let u;var d=F(s,!0);D(t),R((e,n)=>{Y(t,`aria-label`,(B(a),H(c()),V(()=>B(a)?.label??c().question.label))),Y(r,`aria-pressed`,B(h)===`yes`||B(h)===`true`),r.disabled=!l(),i=li(r,1,``,null,i,{selected:B(h)===`yes`||B(h)===`true`}),G(o,e),Y(s,`aria-pressed`,B(h)===`no`||B(h)===`false`),s.disabled=!l(),u=li(s,1,``,null,u,{selected:B(h)===`no`||B(h)===`false`}),G(d,n)},[()=>(H(Z),n(),V(()=>Z(`yes`,n()))),()=>(H(Z),n(),V(()=>Z(`no`,n())))]),Cr(`click`,r,()=>M(h,`yes`)),Cr(`click`,s,()=>M(h,`no`)),W(e,t)},ye=e=>{var t=$o(),r=P(t),i=N(r),o=e=>{var t=Zo(),r=F(t,!0);t.value=t.__value=``,R(e=>G(r,e),[()=>(H(Z),n(),V(()=>Z(`selectOne`,n())))]),W(e,t)};K(i,e=>{H(c()),V(()=>!c().question.defaultValue)&&e(o)}),J(I(i),1,()=>(H(c()),V(()=>c().question.choices??[])),q,(e,t)=>{let r=k(()=>(H(c()),B(t),V(()=>c().question.id===`pullRequestApproval.coverage.checkName`?c().question.trustedProducers?.find(e=>e.name===B(t)):void 0)));var i=Qo(),a=F(i,!0),o={};R(e=>{G(a,e),o!==(o=B(t))&&(i.value=(i.__value=o)??``)},[()=>(H(B(r)),B(t),H(Aa),H(c()),n(),V(()=>B(r)?`${B(t)} — ${B(r).workflowName} · App ${B(r).sourceAppId}`:Aa(c().question.id,B(t),n())))]),W(e,i)}),D(r),pi(r);var s=I(r,2),u=e=>{var t=Nr();J(P(t),1,()=>(H(c()),B(h),V(()=>(c().question.producerCandidates??[]).filter(e=>e.name===B(h)))),q,(e,t)=>{Lo(e,{get candidate(){return B(t)}})}),W(e,t)};K(s,e=>{H(c()),V(()=>c().question.id===`pullRequestApproval.coverage.checkName`)&&e(u)}),R(()=>{Y(r,`aria-label`,(B(a),H(c()),V(()=>B(a)?.label??c().question.label))),r.disabled=!l()}),mi(r,()=>B(h),e=>M(h,e)),W(e,t)},be=e=>{{let t=k(()=>(H(c()),V(()=>c().question.producerCandidates??[])));wo(e,{get candidates(){return B(t)},get controller(){return l()},get selected(){return B(g)},set selected(e){M(g,e)},$$legacy:!0})}},xe=e=>{{let t=k(()=>(H(c()),V(()=>c().question.projectCandidates??[])));Ao(e,{get candidates(){return B(t)},get controller(){return l()},get selected(){return B(g)},set selected(e){M(g,e)},get value(){return B(h)},set value(e){M(h,e)},$$legacy:!0})}},Se=e=>{var t=ts();J(t,5,()=>(H(c()),V(()=>c().question.kind===`multi-select`?c().question.choices??[]:c().question.allowedNames??[])),q,(e,t)=>{var r=es(),i=N(r);bi(i);var a=F(I(i),!0);D(r),R((e,t)=>{xi(i,e),i.disabled=!l(),G(a,t)},[()=>(B(g),B(t),V(()=>B(g).includes(B(t)))),()=>(H(c()),H(Aa),B(t),n(),V(()=>c().question.kind===`multi-select`?Aa(c().question.id,B(t),n()):B(t)))]),Cr(`change`,i,()=>M(g,oo(B(g),B(t)))),W(e,r)}),D(t),R(()=>Y(t,`aria-label`,(B(a),H(c()),V(()=>B(a)?.label??c().question.label)))),W(e,t)},Ce=e=>{var t=Nr(),n=P(t),r=e=>{var t=ns();at(t),R(()=>{Y(t,`aria-label`,(B(a),H(c()),V(()=>B(a)?.label??c().question.label))),t.disabled=!l()}),Ti(t,()=>B(h),e=>M(h,e)),W(e,t)},i=e=>{var t=rs();bi(t),R(()=>{Y(t,`aria-label`,(B(a),H(c()),V(()=>B(a)?.label??c().question.label))),Y(t,`type`,(H(c()),V(()=>c().question.kind===`number`?`number`:`text`))),Y(t,`min`,(H(c()),V(()=>c().question.kind===`number`?0:void 0))),t.disabled=!l()}),Ti(t,()=>B(h),e=>M(h,e)),W(e,t)};K(n,e=>{H(c()),V(()=>c().question.id===`ai.bugbotOrganizationRules`)?e(r):e(i,-1)}),W(e,t)};K(_e,e=>{H(c()),V(()=>c().question.kind===`boolean`)?e(ve):(H(c()),V(()=>c().question.kind===`choice`)?e(ye,1):(H(c()),V(()=>c().question.kind===`producer-select`)?e(be,2):(H(c()),V(()=>c().question.kind===`project-select`)?e(xe,3):(H(c()),V(()=>c().question.kind===`multi-select`||c().question.kind===`scope-overrides`)?e(Se,4):e(Ce,-1)))))});var we=I(_e,2),T=F(we,!0),Te=I(we,2),E=e=>{var t=Vo(),r=F(t,!0);R(e=>G(r,e),[()=>(H(Z),H(c()),n(),V(()=>Z(c().question.suggestionSource===`github`?`sourceGithub`:c().question.suggestionSource===`local`?`sourceLocal`:c().question.suggestionSource===`configuration`?`sourceConfig`:`sourceDefault`,n())))]),W(e,t)};K(Te,e=>{H(c()),V(()=>c().question.suggestionSource)&&e(E)});var Ee=I(Te,2);io(Ee,{get question(){return H(c()),V(()=>c().question)}});var De=I(Ee,2);Po(De,{get explanation(){return B(a)},get helpUrl(){return B(o)}});var Oe=I(De,2),ke=N(Oe),Ae=e=>{{let t=k(()=>(H(Z),n(),V(()=>Z(`previousQuestion`,n())))),r=k(()=>!l()||u());qa(e,{get label(){return B(t)},variant:`secondary`,get onClick(){return p()},get disabled(){return B(r)}})}};K(ke,e=>{H(c()),V(()=>c().canGoBack)&&e(Ae)});var je=I(ke,2);{let e=k(()=>(H(Z),n(),V(()=>Z(`continue`,n())))),t=k(()=>!l()||u());qa(je,{get label(){return B(e)},arrow:!0,onClick:()=>d()(so(c(),B(h),B(g))),get disabled(){return B(t)}})}D(Oe),R((e,t)=>{G(b,e),G(T,t)},[()=>(B(a),H(c()),V(()=>B(a)?.label??c().question.label.replace(` (Space toggles, Enter confirms)`,``))),()=>(H(Z),n(),B(s),V(()=>Z(`suggested`,n(),{answer:B(s)})))]),W(e,_),Je(),i()}wr([`click`,`change`]);var os=U(` `),ss=U(``),cs=U(`
                  `,1);function ls(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=j(),o=X(t,`prompt`,8),s=X(t,`controller`,8),c=X(t,`busy`,8),l=X(t,`onSubmit`,8);L(()=>(H(o()),Va),()=>{M(a,o().copyId===`botPat.scopeConflict`||o().copyId===`botPat.scopeConflictUnavailable`?Va(o().copyValues?.repository):void 0)}),En(),Ai();var u=cs(),d=P(u),f=e=>{var t=os(),r=N(t);Oe(),D(t),R(e=>{Y(t,`href`,B(a)),G(r,`${e??``} `)},[()=>(H(Z),n(),V(()=>Z(`repositorySecretSettings`,n())))]),W(e,t)};K(d,e=>{B(a)&&e(f)});var p=I(d,2);J(p,5,()=>(H(o()),V(()=>o().choices)),q,(e,t,r)=>{var i=ss(),a=F(N(i),!0);Oe(),D(i),R(e=>{i.disabled=!s()||c(),G(a,e)},[()=>(H(La),H(o()),n(),V(()=>La(o(),n(),r)))]),Cr(`click`,i,()=>l()(B(t))),W(e,i)}),D(p),W(e,u),Je(),i()}wr([`click`]);var us=U(`

                  `),ds=U(`

                  `,1),fs=U(``);function ps(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=X(t,`storage`,8);Ai();var o=fs(),s=N(o),c=F(s,!0),l=I(s,2),u=F(l,!0),d=I(l,2),f=e=>{var t=ds(),r=P(t),i=F(r,!0),o=I(r,2),s=e=>{var t=us(),r=F(t,!0);R(e=>G(r,e),[()=>(H(Z),n(),V(()=>Z(`patOrganizationImpact`,n())))]),W(e,t)};K(o,e=>{H(a()),V(()=>a().scope===`organization`&&a().replacesExisting)&&e(s)}),R(e=>G(i,e),[()=>(H(Z),n(),V(()=>Z(`patReplacementChecks`,n())))]),W(e,t)};K(d,e=>{H(a()),V(()=>a().operation!==`retain`)&&e(f)}),D(o),R((e,t)=>{G(c,e),G(u,t)},[()=>(H(Z),n(),V(()=>Z(`patStorageTitle`,n()))),()=>(H(Z),H(a()),n(),V(()=>Z(a().operation===`retain`?`patStorageRetain`:a().replacesExisting?a().scope===`repository`?`patRepositoryReplace`:`patOrganizationReplace`:a().scope===`repository`?`patRepositoryCreate`:`patOrganizationCreate`,n(),{destination:a().destination})))]),W(e,o),Je(),i()}var ms=U(``),hs=U(`

                  `,1),gs=U(`

                  `),_s=U(`
                  `,1);function vs(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=j(),o=j(),s=j(),c=j(),l=X(t,`prompt`,8),u=X(t,`controller`,8),d=X(t,`busy`,8),f=X(t,`onSubmit`,8),p=j(``);function m(){let e=B(p);l().kind===`secret`&&M(p,``),f()(e)}L(()=>H(l()),()=>{M(a,Ba(l().link))}),L(()=>H(l()),()=>{M(o,l().copyId===`botPat.entry.guided`?l().copyValues?.account:void 0)}),L(()=>H(l()),()=>{M(s,l().copyId===`botPat.entry.guided`||l().copyId===`botPat.entry.manual`)}),L(()=>(B(s),H(l())),()=>{M(c,B(s)?l().copyValues?.storageScope:void 0)}),En(),Ai();var h=_s(),g=P(h),_=e=>{var t=hs(),r=P(t),i=e=>{var t=ms(),r=N(t),i=F(r,!0),a=F(I(r,2),!0);D(t),R((e,t)=>{G(i,e),G(a,t)},[()=>(H(Z),n(),B(o),V(()=>Z(`botAccountWarning`,n(),{account:B(o)}))),()=>(H(Z),n(),V(()=>Z(`botAccountHelp`,n())))]),W(e,t)};K(r,e=>{B(o)&&e(i)});var s=I(r,2),c=N(s);Oe(),D(s);var l=F(I(s,2),!0);R((e,t)=>{Y(s,`href`,B(a)),Y(s,`aria-describedby`,B(o)?`bot-account-warning`:void 0),G(c,`${e??``} `),G(l,t)},[()=>(B(o),H(Z),n(),V(()=>B(o)?Z(`botGithubForm`,n(),{account:B(o)}):Z(`githubForm`,n()))),()=>(H(Z),n(),V(()=>Z(`githubFormHelp`,n())))]),W(e,t)};K(g,e=>{B(a)&&e(_)});var v=I(g,2),y=e=>{{let t=k(()=>(B(c),H(l()),V(()=>({scope:B(c),destination:l().copyValues.storageDestination,replacesExisting:l().copyValues.storageReplacesExisting===`true`}))));ps(e,{get storage(){return B(t)}})}};K(v,e=>{B(c),H(l()),V(()=>(B(c)===`repository`||B(c)===`organization`)&&l().copyValues?.storageDestination)&&e(y)});var b=I(v,2),x=F(b,!0),S=I(b,2);bi(S);var C=I(S,2),w=e=>{var t=gs(),r=F(t,!0);R(e=>G(r,e),[()=>(H(Z),n(),V(()=>Z(`secretHelp`,n())))]),W(e,t)};K(C,e=>{H(l()),V(()=>l().kind===`secret`)&&e(w)});var ee=I(C,2),te=N(ee);{let e=k(()=>(H(Z),n(),V(()=>Z(`continue`,n())))),t=k(()=>(H(u()),H(d()),H(l()),B(p),V(()=>!u()||d()||!l().optional&&!B(p).trim())));qa(te,{get label(){return B(e)},arrow:!0,onClick:m,get disabled(){return B(t)}})}D(ee),R((e,t)=>{G(x,e),Y(S,`type`,(H(l()),V(()=>l().kind===`secret`?`password`:`text`))),S.disabled=!u(),Y(S,`placeholder`,t)},[()=>(H(Z),H(l()),n(),V(()=>Z(l().kind===`secret`?`pasteHere`:`yourAnswer`,n()))),()=>(H(Z),H(l()),n(),V(()=>Z(l().kind===`secret`?`hiddenAfter`:`typeAnswer`,n())))]),Ti(S,()=>B(p),e=>M(p,e)),W(e,h),Je(),i()}var ys={"No issue workflow kind is enabled; issue events will remain unmanaged until a supported Issue Form and profile entry are enabled.":`No issue workflow kind is enabled; issue events will remain unmanaged until a supported Issue Form and profile entry are enabled.`,"Help / question issues remain branchless even when issue-managed-branches is enabled.":`Help / question issues remain branchless even when issue-managed-branches is enabled.`,"Release automation is installed, but release issue events are disabled by the selected issue workflow profile.":`Release automation is installed, but release issue events are disabled by the selected issue workflow profile.`,"Hotfix automation is installed, but hotfix issue events are disabled by the selected issue workflow profile.":`Hotfix automation is installed, but hotfix issue events are disabled by the selected issue workflow profile.`,"Repository agent guidance generation is disabled; collaborators will not receive the generated profile or workflow skill.":`Repository agent guidance generation is disabled; collaborators will not receive the generated profile or workflow skill.`,"Release and hotfix workflows require the workflow PAT Secret and a writable token.":`Release and hotfix workflows require the workflow PAT Secret and a writable token.`,"Merge queue mode fails closed unless every required producer is verified automatically or covered by an exact reviewed attestation.":`Merge queue mode fails closed unless every required producer is verified automatically or covered by an exact reviewed attestation.`,"Inactive issue closure is enabled; waiting issues are closed after the configured inactivity threshold and can be reopened with a new comment.":`Inactive issue closure is enabled; waiting issues are closed after the configured inactivity threshold and can be reopened with a new comment.`,"Selected Project numbers must be accessible to the bot PAT, and all four configured Status values must exist in every selected Project.":`Selected Project numbers must be accessible to the bot PAT, and all four configured Status values must exist in every selected Project.`,"Cursor is an experimental runtime in Copilot and requires a compatible CLI plus CURSOR_API_KEY; the Action installs the official CLI when the default executable is absent.":`Cursor is an experimental runtime in Copilot and requires a compatible CLI plus CURSOR_API_KEY; the Action installs the official CLI when the default executable is absent.`,"Organization-level Secrets and Variables require organization permissions; selected access is the safest default and repository values take precedence.":`Organization-level Secrets and Variables require organization permissions; selected access is the safest default and repository values take precedence.`},bs={en:ys,es:{"No issue workflow kind is enabled; issue events will remain unmanaged until a supported Issue Form and profile entry are enabled.":`No has activado ningún tipo de flujo de incidencias. Sus eventos no se gestionarán hasta que actives un formulario de incidencia y su entrada en el perfil.`,"Help / question issues remain branchless even when issue-managed-branches is enabled.":`Las incidencias de ayuda y consulta no crean ramas, aunque actives las ramas gestionadas por incidencias.`,"Release automation is installed, but release issue events are disabled by the selected issue workflow profile.":`La automatización de versiones ya está instalada, pero el perfil elegido desactiva los eventos de incidencias de versiones.`,"Hotfix automation is installed, but hotfix issue events are disabled by the selected issue workflow profile.":`La automatización de correcciones urgentes ya está instalada, pero el perfil elegido desactiva los eventos de sus incidencias.`,"Repository agent guidance generation is disabled; collaborators will not receive the generated profile or workflow skill.":`Has desactivado la generación de instrucciones para agentes del repositorio. Los colaboradores no recibirán el perfil ni la guía del flujo de trabajo generados.`,"Release and hotfix workflows require the workflow PAT Secret and a writable token.":`Los flujos de versiones y correcciones urgentes requieren el Secret con el PAT de la Action y un token con permisos de escritura.`,"Merge queue mode fails closed unless every required producer is verified automatically or covered by an exact reviewed attestation.":`La cola de merge bloqueará la operación si cada productor obligatorio no se verifica automáticamente o no dispone de una certificación exacta revisada.`,"Inactive issue closure is enabled; waiting issues are closed after the configured inactivity threshold and can be reopened with a new comment.":`Está activado el cierre de incidencias inactivas. Las que estén en espera se cerrarán tras el plazo configurado y podrán reabrirse con un comentario.`,"Selected Project numbers must be accessible to the bot PAT, and all four configured Status values must exist in every selected Project.":`El PAT del bot debe tener acceso a los Projects seleccionados, y los cuatro valores de Status configurados deben existir en cada uno de ellos.`,"Cursor is an experimental runtime in Copilot and requires a compatible CLI plus CURSOR_API_KEY; the Action installs the official CLI when the default executable is absent.":`Cursor es un entorno experimental en Copilot y requiere un CLI compatible y CURSOR_API_KEY; la Action instala el CLI oficial si falta el ejecutable predeterminado.`,"Organization-level Secrets and Variables require organization permissions; selected access is the safest default and repository values take precedence.":`Los Secrets y Variables de organización requieren permisos en ella. Limitar el acceso a los repositorios elegidos es la opción más segura; los valores del repositorio tienen prioridad.`},fr:{"No issue workflow kind is enabled; issue events will remain unmanaged until a supported Issue Form and profile entry are enabled.":`Aucun type de flux de travail pour les tickets n’est activé. Leurs événements ne seront pas gérés tant qu’un formulaire de ticket pris en charge et son entrée de profil ne seront pas activés.`,"Help / question issues remain branchless even when issue-managed-branches is enabled.":`Les tickets d’aide ou de question ne créent pas de branche, même lorsque les branches gérées par les tickets sont activées.`,"Release automation is installed, but release issue events are disabled by the selected issue workflow profile.":`L’automatisation des versions est déjà installée, mais le profil choisi désactive les événements des tickets de version.`,"Hotfix automation is installed, but hotfix issue events are disabled by the selected issue workflow profile.":`L’automatisation des correctifs urgents est déjà installée, mais le profil choisi désactive les événements des tickets correspondants.`,"Repository agent guidance generation is disabled; collaborators will not receive the generated profile or workflow skill.":`La génération des consignes pour les agents du dépôt est désactivée. Les collaborateurs ne recevront ni le profil ni le guide de flux de travail générés.`,"Release and hotfix workflows require the workflow PAT Secret and a writable token.":`Les flux de version et de correctif urgent nécessitent le Secret contenant le PAT de l’Action et un jeton autorisé à écrire.`,"Merge queue mode fails closed unless every required producer is verified automatically or covered by an exact reviewed attestation.":`La file de fusion bloque l’opération si chaque producteur requis n’est pas vérifié automatiquement ou couvert par une attestation exacte et examinée.`,"Inactive issue closure is enabled; waiting issues are closed after the configured inactivity threshold and can be reopened with a new comment.":`La fermeture des tickets inactifs est activée. Les tickets en attente seront fermés après le délai configuré et pourront être rouverts par un nouveau commentaire.`,"Selected Project numbers must be accessible to the bot PAT, and all four configured Status values must exist in every selected Project.":`Le PAT du bot doit avoir accès aux Projects sélectionnés, et les quatre valeurs Status configurées doivent exister dans chacun de ces Projects.`,"Cursor is an experimental runtime in Copilot and requires a compatible CLI plus CURSOR_API_KEY; the Action installs the official CLI when the default executable is absent.":`Cursor est un environnement expérimental dans Copilot et nécessite un CLI compatible ainsi que CURSOR_API_KEY ; l’Action installe le CLI officiel si l’exécutable par défaut est absent.`,"Organization-level Secrets and Variables require organization permissions; selected access is the safest default and repository values take precedence.":`Les Secrets et Variables d’organisation nécessitent des droits sur celle-ci. Limiter l’accès aux dépôts sélectionnés est le choix le plus sûr ; les valeurs du dépôt prévalent.`},pt:{"No issue workflow kind is enabled; issue events will remain unmanaged until a supported Issue Form and profile entry are enabled.":`Não está ativo nenhum tipo de fluxo de trabalho para issues. Os respetivos eventos não serão geridos até ativar um formulário de issue suportado e a entrada correspondente no perfil.`,"Help / question issues remain branchless even when issue-managed-branches is enabled.":`As issues de ajuda ou perguntas não criam ramos, mesmo com os ramos geridos por issues ativados.`,"Release automation is installed, but release issue events are disabled by the selected issue workflow profile.":`A automação de versões já está instalada, mas o perfil escolhido desativa os eventos das issues de versão.`,"Hotfix automation is installed, but hotfix issue events are disabled by the selected issue workflow profile.":`A automação de correções urgentes já está instalada, mas o perfil escolhido desativa os eventos das respetivas issues.`,"Repository agent guidance generation is disabled; collaborators will not receive the generated profile or workflow skill.":`A criação de orientações para agentes do repositório está desativada. Os colaboradores não receberão o perfil nem o guia do fluxo de trabalho gerados.`,"Release and hotfix workflows require the workflow PAT Secret and a writable token.":`Os fluxos de versão e correção urgente exigem o Secret com o PAT da Action e um token com permissão de escrita.`,"Merge queue mode fails closed unless every required producer is verified automatically or covered by an exact reviewed attestation.":`A fila de integração bloqueia a operação se cada produtor obrigatório não for verificado automaticamente ou coberto por uma declaração exata e revista.`,"Inactive issue closure is enabled; waiting issues are closed after the configured inactivity threshold and can be reopened with a new comment.":`O fecho de issues inativas está ativado. As que aguardam resposta serão fechadas após o prazo configurado e poderão ser reabertas com um novo comentário.`,"Selected Project numbers must be accessible to the bot PAT, and all four configured Status values must exist in every selected Project.":`O PAT do bot tem de ter acesso aos Projects selecionados, e os quatro valores de Status configurados têm de existir em cada Project.`,"Cursor is an experimental runtime in Copilot and requires a compatible CLI plus CURSOR_API_KEY; the Action installs the official CLI when the default executable is absent.":`O Cursor é um ambiente experimental no Copilot e requer um CLI compatível e CURSOR_API_KEY; a Action instala o CLI oficial se o executável padrão não estiver disponível.`,"Organization-level Secrets and Variables require organization permissions; selected access is the safest default and repository values take precedence.":`Os Secrets e Variables da organização exigem permissões nessa organização. Restringir o acesso aos repositórios selecionados é a opção mais segura; os valores do repositório prevalecem.`}};function xs(e,t){let n=bs[t]??ys;return Object.prototype.hasOwnProperty.call(n,e)?n[e]:t===`en`?e:Z(`planUnknownWarning`,t)}var Ss={en:{issues:`Issues`,pullRequests:`Pull requests`,commits:`Commits`,issueComments:`Issue comments`,pullRequestComments:`Pull-request comments`,release:`Releases`,hotfix:`Hotfixes`,agentProvisioning:`Agent provisioning`,credentialHealth:`Credential health`,inactiveIssueClosure:`Inactive issue closure`,issueTemplates:`Issue templates`,pullRequestTemplate:`Pull-request template`},es:{issues:`Issues`,pullRequests:`Pull requests`,commits:`Commits`,issueComments:`Comentarios en issues`,pullRequestComments:`Comentarios en pull requests`,release:`Releases`,hotfix:`Correcciones urgentes`,agentProvisioning:`Instalación de agentes`,credentialHealth:`Estado de credenciales`,inactiveIssueClosure:`Cierre de issues inactivos`,issueTemplates:`Plantillas de issues`,pullRequestTemplate:`Plantilla de pull requests`},fr:{issues:`Tickets`,pullRequests:`Pull requests`,commits:`Commits`,issueComments:`Commentaires des tickets`,pullRequestComments:`Commentaires des pull requests`,release:`Versions`,hotfix:`Correctifs urgents`,agentProvisioning:`Installation des agents`,credentialHealth:`État des identifiants`,inactiveIssueClosure:`Fermeture des tickets inactifs`,issueTemplates:`Modèles de tickets`,pullRequestTemplate:`Modèle de pull request`},pt:{issues:`Questões`,pullRequests:`Pull requests`,commits:`Commits`,issueComments:`Comentários nas questões`,pullRequestComments:`Comentários nas pull requests`,release:`Versões`,hotfix:`Correções urgentes`,agentProvisioning:`Instalação de agentes`,credentialHealth:`Estado das credenciais`,inactiveIssueClosure:`Fecho de questões inativas`,issueTemplates:`Modelos de questões`,pullRequestTemplate:`Modelo de pull request`}};function Cs(e,t){return Ss[t][e]??e}var ws={en:{planner:`Planner`,findings:`Findings analyst`,reviewer:`Reviewer`,fixer:`Fixer`,tester:`Tester`},es:{planner:`Planificador`,findings:`Analista de hallazgos`,reviewer:`Revisor`,fixer:`Corrector`,tester:`Probador`},fr:{planner:`Planificateur`,findings:`Analyste des problèmes`,reviewer:`Réviseur`,fixer:`Correcteur`,tester:`Testeur`},pt:{planner:`Planeador`,findings:`Analista de problemas`,reviewer:`Revisor`,fixer:`Corretor`,tester:`Testador`}};function Ts(e,t){return ws[t][e]??e}var Es=U(`
                • `),Ds=U(`
                • `),Os=U(`
                    `),ks=U(`· `,1),As=U(`
                    `,1),js=U(`
                    `,1),Ms=U(`
                      `),Ns=U(`

                        /

                        `);function Ps(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=X(t,`decisions`,8);function o(e){return Z(e===`repository`?`scopeRepository`:e===`organization`?`scopeOrganization`:`scopeDisabled`,n())}function s(e){return Z(e===`guarded`?`approvalGuarded`:e===`recommend`?`approvalRecommend`:`approvalOff`,n())}Ai();var c=Ns(),l=N(c),u=F(l,!0),d=I(l,2),f=N(d),p=N(f),m=F(p,!0),h=F(I(p),!0);D(f);var g=I(f,2),_=N(g),v=F(_,!0),y=F(I(_),!0);D(g);var b=I(g,2),x=N(b),S=F(x,!0),C=I(x),w=N(C);J(w,5,()=>(H(a()),V(()=>a().agentRouting)),q,(e,t)=>{var r=Es(),i=N(r),a=F(I(i));D(r),R(e=>{G(i,`${e??``}: `),G(a,`${B(t),V(()=>B(t).provider)??``} · ${B(t),V(()=>B(t).modelProvider)??``}/${B(t),V(()=>B(t).model)??``}`)},[()=>(H(Ts),B(t),n(),V(()=>Ts(B(t).role,n())))]),W(e,r)}),D(w),D(C),D(b);var ee=I(b,2),te=N(ee),ne=F(te,!0),re=I(te),ie=N(re),ae=F(ie,!0),oe=F(I(ie,2),!0);D(re),D(ee);var se=I(ee,2),ce=N(se),le=F(ce,!0),ue=F(I(ce),!0);D(se);var de=I(se,2),fe=e=>{var t=js(),r=P(t),i=N(r),o=F(i,!0),s=I(i),c=N(s),l=e=>{var t=Os();J(t,5,()=>(H(a()),V(()=>a().trustedChecks)),q,(e,t)=>{var r=Ds(),i=N(r),a=F(i,!0),o=I(i),s=F(I(o),!0);D(r),R(e=>{G(a,(B(t),V(()=>B(t).name))),G(o,` · ${e??``} ${B(t),V(()=>B(t).sourceAppId)??``} · `),G(s,(B(t),V(()=>B(t).workflowName)))},[()=>(H(Z),n(),V(()=>Z(`producerAppId`,n())))]),W(e,r)}),D(t),W(e,t)},u=e=>{var t=Mr();R(e=>G(t,e),[()=>(H(Z),n(),V(()=>Z(`none`,n())))]),W(e,t)};K(c,e=>{H(a()),V(()=>a().trustedChecks.length)?e(l):e(u,-1)}),D(s),D(r);var d=I(r,2),f=N(d),p=F(f,!0),m=F(I(f),!0);D(d);var h=I(d,2),g=N(h),_=F(g,!0),v=I(g),y=N(v,!0),b=I(y),x=e=>{var t=ks(),n=F(I(P(t)),!0);R(()=>G(n,(H(a()),V(()=>a().coverageCheck)))),W(e,t)};K(b,e=>{H(a()),V(()=>a().coverageCheck)&&e(x)}),D(v),D(h);var S=I(h,2),C=e=>{var t=As(),r=P(t),i=N(r),o=F(i,!0),s=F(I(i),!0);D(r);var c=I(r,2),l=N(c),u=F(l,!0),d=I(l),f=F(N(d),!0);D(d),D(c);var p=I(c,2),m=N(p),h=F(m,!0),g=F(I(m),!0);D(p),R((e,t,n,r,i,a)=>{G(o,e),G(s,t),G(u,n),G(f,r),G(h,i),G(g,a)},[()=>(H(Z),n(),V(()=>Z(`planCoverageThreshold`,n()))),()=>(H(a()),H(Z),n(),V(()=>a().coverageMinimum===void 0?Z(`none`,n()):`${a().coverageMinimum}%`)),()=>(H(Z),n(),V(()=>Z(`planCoverageReporter`,n()))),()=>(H(a()),H(Z),n(),V(()=>a().coverageArtifactWorkflow||Z(`none`,n()))),()=>(H(Z),n(),V(()=>Z(`planReporterAttested`,n()))),()=>(H(Z),H(a()),n(),V(()=>Z(a().coverageReporterAttested?`yes`:`no`,n())))]),W(e,t)};K(S,e=>{H(a()),V(()=>a().coverageMode===`numeric`)&&e(C)}),R((e,t,n,r,i)=>{G(o,e),G(p,t),G(m,n),G(_,r),G(y,i)},[()=>(H(Z),n(),V(()=>Z(`planTrustedChecks`,n()))),()=>(H(Z),n(),V(()=>Z(`planProducerAttested`,n()))),()=>(H(Z),H(a()),n(),V(()=>Z(a().producerAttested?`yes`:`no`,n()))),()=>(H(Z),n(),V(()=>Z(`planCoverage`,n()))),()=>(H(Aa),H(a()),n(),V(()=>Aa(`pullRequestApproval.coverage.mode`,a().coverageMode,n())))]),W(e,t)};K(de,e=>{H(a()),V(()=>a().approvalMode!==`off`)&&e(fe)});var pe=I(de,2),me=N(pe),he=F(me,!0),ge=F(I(me),!0);D(pe);var _e=I(pe,2),ve=e=>{var t=Ms(),r=N(t),i=F(r,!0),o=I(r),s=N(o);J(s,5,()=>(H(a()),V(()=>a().projectStatuses)),q,(e,t)=>{var r=Es(),i=N(r),a=F(I(i),!0);D(r),R(e=>{G(i,`${e??``}: `),G(a,(B(t),V(()=>B(t).value)))},[()=>(H(Z),H(co),B(t),n(),V(()=>Z(co[B(t).transition],n())))]),W(e,r)}),D(s),D(o),D(t),R(e=>G(i,e),[()=>(H(Z),n(),V(()=>Z(`planProjectStatuses`,n())))]),W(e,t)};K(_e,e=>{H(a()),V(()=>a().projectNumbers.length)&&e(ve)});var ye=I(_e,2),be=N(ye),xe=F(be,!0),Se=F(I(be),!0);D(ye);var Ce=I(ye,2),we=N(Ce),T=F(we,!0),Te=F(I(we),!0);D(Ce);var E=I(Ce,2),Ee=N(E),De=F(Ee,!0),Oe=F(I(Ee),!0);D(E);var ke=I(E,2),Ae=N(ke),je=F(Ae,!0),Me=F(I(Ae),!0);D(ke),D(d);var Ne=F(I(d,2),!0);D(c),R((e,t,n,r,i,o,s,c,l,d,f,p,g,_,b,x,C,w,ee,te)=>{G(u,e),G(m,t),G(h,n),G(v,r),G(y,i),G(S,o),G(ne,s),G(ae,(H(a()),V(()=>a().productionBranch))),G(oe,(H(a()),V(()=>a().developmentBranch))),G(le,c),G(ue,l),G(he,d),G(ge,f),G(xe,p),G(Se,g),G(T,_),G(Te,b),G(De,x),G(Oe,C),G(je,w),G(Me,ee),G(Ne,te)},[()=>(H(Z),n(),V(()=>Z(`planChoices`,n()))),()=>(H(Z),n(),V(()=>Z(`planEnabledCapabilities`,n()))),()=>(H(a()),H(Cs),n(),H(Z),V(()=>a().enabledCapabilities.length?a().enabledCapabilities.map(e=>Cs(e,n())).join(`, `):Z(`none`,n()))),()=>(H(Z),n(),V(()=>Z(`planIssueWorkflows`,n()))),()=>(H(a()),H(Aa),n(),H(Z),V(()=>a().issueWorkflows.length?a().issueWorkflows.map(e=>Aa(`issueWorkflows.enabled`,e,n())).join(`, `):Z(`none`,n()))),()=>(H(Z),n(),V(()=>Z(`planAgentRouting`,n()))),()=>(H(Z),n(),V(()=>Z(`planBranchRoles`,n()))),()=>(H(Z),n(),V(()=>Z(`planApprovalMode`,n()))),()=>(H(a()),V(()=>s(a().approvalMode))),()=>(H(Z),n(),V(()=>Z(`editProjects`,n()))),()=>(H(a()),H(Z),n(),V(()=>a().projectNumbers.length?a().projectNumbers.map(e=>`#${e}`).join(`, `):Z(`none`,n()))),()=>(H(Z),n(),V(()=>Z(`planVariableScope`,n()))),()=>(H(a()),V(()=>o(a().variableScope))),()=>(H(Z),n(),V(()=>Z(`planSecretScope`,n()))),()=>(H(a()),V(()=>o(a().secretScope))),()=>(H(Z),n(),V(()=>Z(`planIssueResources`,n()))),()=>(H(Z),n(),V(()=>Z(`planIssueResourcesValue`,n()))),()=>(H(Z),n(),V(()=>Z(`planInitialTag`,n()))),()=>(H(Z),H(a()),n(),V(()=>Z(a().initialTag?`yes`:`no`,n()))),()=>(H(Z),n(),V(()=>Z(`planAdvancedDefaults`,n())))]),W(e,c),Je(),i()}var Fs=U(`
                      • `),Is=U(`

                          `,1),Ls=U(`
                        • ·

                        • `),Rs=U(`
                        • `),zs=U(`

                           

                           
                          `),Bs=U(`

                              `);function Vs(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=X(t,`review`,8);Ai();var o=Bs(),s=N(o),c=F(s,!0),l=I(s,2),u=F(l,!0),d=I(l,2),f=e=>{var t=Is(),r=P(t),i=F(r,!0),o=I(r),s=N(o),c=F(s,!0),l=I(s);J(l,5,()=>(H(a()),V(()=>a().blockers)),q,(e,t)=>{var n=Fs(),r=F(n,!0);R(()=>G(r,B(t))),W(e,n)}),D(l),D(o),R((e,t)=>{G(i,e),G(c,t)},[()=>(H($),n(),V(()=>$(`blockedAction`,n()))),()=>(H($),n(),V(()=>$(`blockers`,n())))]),W(e,t)};K(d,e=>{H(a()),V(()=>a().blockers.length)&&e(f)});var p=I(d,2);J(p,5,()=>(H(a()),V(()=>a().jobs)),q,(e,t)=>{var r=Ls(),i=N(r),a=F(i,!0),o=I(i,2),s=F(o,!0),c=I(o,2),l=e=>{var t=Mr();R(e=>G(t,`· ${e??``}`),[()=>(H($),n(),V(()=>$(`retained`,n())))]),W(e,t)};K(c,e=>{B(t),V(()=>B(t).retained)&&e(l)});var u=I(c,2),d=F(N(u));D(u);var f=F(I(u));D(r),R((e,n,r)=>{G(a,e),G(s,n),G(d,`${B(t),V(()=>B(t).file)??``} / ${B(t),V(()=>B(t).job)??``}`),G(f,`runs-on: ${r??``}`)},[()=>(H($),B(t),n(),V(()=>$(B(t).role,n()))),()=>(H($),B(t),n(),V(()=>$(B(t).status,n()))),()=>(B(t),V(()=>JSON.stringify(B(t).runsOn)))]),W(e,r)}),D(p);var m=I(p,2),h=N(m),g=F(h),_=I(h,2);J(_,5,()=>(H(a()),V(()=>a().assets)),q,(e,t)=>{var r=Rs(),i=N(r),a=F(i,!0),o=I(i),s=I(o),c=e=>{var t=Mr();R(e=>G(t,`· ${e??``}`),[()=>(H($),n(),V(()=>$(`disabled`,n())))]),W(e,t)};K(s,e=>{B(t),V(()=>!B(t).enabled)&&e(c)}),D(r),R(e=>{G(a,(B(t),V(()=>B(t).path))),G(o,`: ${e??``}`)},[()=>(H($),B(t),n(),V(()=>$(B(t).status,n())))]),W(e,r)}),D(_),D(m);var v=I(m,2),y=N(v),b=F(y),x=I(y,2),S=F(x,!0);J(I(x,2),1,()=>(H(a()),V(()=>a().changes)),q,(e,t)=>{var r=zs(),i=N(r),a=F(N(i),!0);D(i);var o=I(i,2),s=F(o,!0),c=I(o),l=F(c,!0),u=I(c,2),d=F(u,!0),f=F(I(u),!0);D(r),R((e,n,r,i)=>{G(a,(B(t),V(()=>B(t).path))),G(s,e),G(l,n),G(d,r),G(f,i)},[()=>(H($),n(),V(()=>$(`before`,n()))),()=>(B(t),H($),n(),V(()=>B(t).before??$(`absent`,n()))),()=>(H($),n(),V(()=>$(`after`,n()))),()=>(B(t),H($),n(),V(()=>B(t).after??$(`absent`,n())))]),W(e,r)}),D(v),D(o),R((e,t,n,r,i)=>{G(c,e),G(u,t),G(g,`${n??``} (${H(a()),V(()=>a().assets.length)??``})`),G(b,`${r??``} (${H(a()),V(()=>a().changes.length)??``})`),G(S,i)},[()=>(H($),n(),V(()=>$(`title`,n()))),()=>(H($),n(),V(()=>$(`help`,n()))),()=>(H($),n(),V(()=>$(`assets`,n()))),()=>(H($),n(),V(()=>$(`changes`,n()))),()=>(H($),n(),V(()=>$(`redactionNotice`,n())))]),W(e,o),Je(),i()}var Hs={"Self-hosted runners":`Self-hosted runners`,Metadata:`Metadata`,Contents:`Contents`,Secrets:`Secrets`,Variables:`Variables`,Issues:`Issues`,Actions:`Actions`,Checks:`Checks`,Administration:`Administration`,Workflows:`Workflows`,"Issue Types":`Issue Types`,Projects:`Projects`,"Pull requests":`Pull requests`,Members:`Members`},Us={repository:`repository`,organization:`organization`,read:`Read`,write:`Write`,required:`Required`,conditional:`Conditional`,verified:`Verified`,available:`Read available`,missing:`Missing`,unverifiable:`Unverifiable`},Ws={"Self-hosted runners":`Runners autohospedados`,Metadata:`Metadatos`,Contents:`Contenido`,Secrets:`Secretos`,Variables:`Variables`,Issues:`Incidencias`,Actions:`Acciones`,Checks:`Comprobaciones`,Administration:`Administración`,Workflows:`Flujos de trabajo`,"Issue Types":`Tipos de incidencia`,Projects:`Proyectos`,"Pull requests":`Solicitudes de cambio`,Members:`Miembros`},Gs={repository:`repositorio`,organization:`organización`,read:`Lectura`,write:`Escritura`,required:`Obligatorio`,conditional:`Condicional`,verified:`Verificado`,available:`Lectura disponible`,missing:`Faltante`,unverifiable:`No verificable`},Ks={"Self-hosted runners":`Runners auto-hébergés`,Metadata:`Métadonnées`,Contents:`Contenu`,Secrets:`Secrets`,Variables:`Variables`,Issues:`Tickets`,Actions:`Actions`,Checks:`Vérifications`,Administration:`Administration`,Workflows:`Flux de travail`,"Issue Types":`Types de ticket`,Projects:`Projets`,"Pull requests":`Demandes de tirage`,Members:`Membres`},qs={repository:`dépôt`,organization:`organisation`,read:`Lecture`,write:`Écriture`,required:`Obligatoire`,conditional:`Conditionnel`,verified:`Vérifié`,available:`Lecture disponible`,missing:`Manquant`,unverifiable:`Non vérifiable`},Js={"Self-hosted runners":`Runners autoalojados`,Metadata:`Metadados`,Contents:`Conteúdo`,Secrets:`Segredos`,Variables:`Variáveis`,Issues:`Questões`,Actions:`Ações`,Checks:`Verificações`,Administration:`Administração`,Workflows:`Fluxos de trabalho`,"Issue Types":`Tipos de questão`,Projects:`Projetos`,"Pull requests":`Pedidos de alteração`,Members:`Membros`},Ys={repository:`repositório`,organization:`organização`,read:`Leitura`,write:`Escrita`,required:`Obrigatório`,conditional:`Condicional`,verified:`Verificado`,available:`Leitura disponível`,missing:`Em falta`,unverifiable:`Não verificável`},Xs={en:Hs,es:Ws,fr:Ks,pt:Js},Zs={en:Us,es:Gs,fr:qs,pt:Ys};function Qs(e,t){return Zs[e][t]}function $s(e,t){return Object.prototype.hasOwnProperty.call(Xs[e],t)?Xs[e][t]:t}function ec(e,t){if(t===`verified`||t===`available`||t===`missing`||t===`unverifiable`)return Zs[e][t]}var tc=U(`

                              `),nc=U(`
                            • `),rc=U(`

                              `),ic=U(`

                                `),ac=U(`
                              • `),oc=U(`
                                  `),sc=U(`

                                    `),cc=U(``),lc=U(`

                                    `),uc=U(`

                                      `);function dc(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=j(),o=X(t,`prompt`,8),s=X(t,`controller`,8),c=X(t,`busy`,8),l=X(t,`onSubmit`,8),u={capabilities:`editCapabilities`,"agent-runtime":`editRuntimes`,"agent-model-defaults":`editModels`,"agent-role-overrides":`editRoleModels`,repository:`editRepository`,deployment:`editDeployment`,bugbot:`editBugbot`,"pull-request-approval":`editApproval`,projects:`editProjects`,provisioning:`editProvisioning`,storage:`editStorage`};L(()=>(n(),H(o())),()=>{M(a,[{title:Z(`files`,n()),items:o().plan.files},{title:Z(`workflows`,n()),items:o().plan.workflows},{title:Z(`variables`,n()),items:o().plan.variables},{title:Z(`secretNames`,n()),items:o().plan.secrets}])}),En(),Ai();var d=uc(),f=N(d),p=F(f,!0),m=I(f,2),h=N(m),g=F(h,!0),_=I(h,2),v=F(_,!0),y=I(_,2),b=e=>{var t=tc(),r=F(t,!0);R(e=>G(r,e),[()=>(H(Z),n(),V(()=>Z(`planActionsProbePrerequisites`,n())))]),W(e,t)},x=_t(()=>(H(o()),V(()=>o().plan.permissionProbes?.some(e=>e.permission===`Actions`))));K(y,e=>{B(x)&&e(b)});var S=I(y,2),C=e=>{var t=tc(),r=F(t,!0);R(e=>G(r,e),[()=>(H(Z),n(),V(()=>Z(`planSecretProbeLimit`,n())))]),W(e,t)},w=_t(()=>(H(o()),V(()=>o().plan.permissionProbes?.some(e=>e.permission===`Secrets`))));K(S,e=>{B(w)&&e(C)});var ee=I(S,2);J(ee,5,()=>(H(o()),V(()=>o().plan.permissionProbes)),q,(e,t)=>{var r=nc(),i=F(r);R((e,t)=>G(i,`${e??``}: ${t??``}`),[()=>(H(Qs),n(),B(t),V(()=>Qs(n(),B(t).scope))),()=>(H($s),n(),B(t),V(()=>$s(n(),B(t).permission)))]),W(e,r)},e=>{var t=nc(),r=F(t,!0);R(e=>G(r,e),[()=>(H(Z),n(),V(()=>Z(`none`,n())))]),W(e,t)}),D(ee),D(m);var te=I(m,2),ne=e=>{var t=rc(),r=N(t),i=F(r,!0),a=I(r,2),s=F(a,!0),c=I(a,2),l=N(c),u=F(l,!0),d=F(I(l),!0);D(c),D(t),R((e,t,n,r)=>{G(i,e),G(s,t),G(u,n),G(d,r)},[()=>(H(Z),n(),V(()=>Z(`organizationReuseTitle`,n()))),()=>(H(Z),n(),H(o()),V(()=>Z(`organizationReuseBody`,n(),{imported:String(o().plan.organizationReuse.imported),shared:String(o().plan.organizationReuse.organizationVariables.length),overrides:String(o().plan.organizationReuse.repositoryVariables.length),writes:String(o().plan.organizationReuse.repositoryWrites.length)}))),()=>(H(Z),n(),V(()=>Z(`batchRepositoryOverrides`,n()))),()=>(H(o()),H(Z),n(),V(()=>o().plan.organizationReuse.repositoryWrites.join(`, `)||Z(`none`,n())))]),W(e,t)};K(te,e=>{H(o()),V(()=>o().plan.organizationReuse)&&e(ne)});var re=I(te,2);Ps(re,{get decisions(){return H(o()),V(()=>o().plan.decisions)}});var ie=I(re,2),ae=e=>{Vs(e,{get review(){return H(o()),V(()=>o().plan.installationReview)}})};K(ie,e=>{H(o()),V(()=>o().plan.installationReview)&&e(ae)});var oe=I(ie,2),se=e=>{ps(e,{get storage(){return H(o()),V(()=>o().plan.workflowPatStorage)}})};K(oe,e=>{H(o()),V(()=>o().plan.workflowPatStorage)&&e(se)});var ce=I(oe,2),le=e=>{var t=ic(),r=N(t),i=F(r,!0),a=I(r,2);J(a,5,()=>(H(o()),V(()=>o().plan.presentationDefaults)),q,(e,t)=>{var r=nc(),i=F(r);R(e=>G(i,`${e??``}: ${B(t),V(()=>B(t).count)??``}`),[()=>(B(t),H(Z),n(),V(()=>u[B(t).group]?Z(u[B(t).group],n()):B(t).group))]),W(e,r)}),D(a),D(t),R(e=>G(i,e),[()=>(H(Z),n(),V(()=>Z(`planBasicDefaultsIntro`,n())))]),W(e,t)};K(ce,e=>{H(o()),V(()=>o().plan.presentationDefaults.length)&&e(le)});var ue=I(ce,2);J(ue,5,()=>B(a),q,(e,t)=>{var r=oc(),i=N(r),a=N(i),o=F(a,!0),s=F(I(a),!0);D(i);var c=I(i);J(c,5,()=>(B(t),V(()=>B(t).items)),q,(e,t)=>{var n=ac(),r=F(N(n),!0);D(n),R(()=>G(r,B(t))),W(e,n)},e=>{var t=nc(),r=F(t,!0);R(e=>G(r,e),[()=>(H(Z),n(),V(()=>Z(`none`,n())))]),W(e,t)}),D(c),D(r),R(()=>{G(o,(B(t),V(()=>B(t).title))),G(s,(B(t),V(()=>B(t).items.length)))}),W(e,r)}),D(ue);var de=I(ue,2),fe=e=>{var t=sc(),r=N(t),i=F(r,!0),a=I(r);J(a,5,()=>(H(o()),V(()=>o().plan.warnings)),q,(e,t)=>{var r=nc(),i=F(r,!0);R(e=>G(i,e),[()=>(H(xs),B(t),n(),V(()=>xs(B(t),n())))]),W(e,r)}),D(a),D(t),R(e=>G(i,e),[()=>(H(Z),n(),V(()=>Z(`beforeContinue`,n())))]),W(e,t)};K(de,e=>{H(o()),V(()=>o().plan.warnings.length)&&e(fe)});var pe=I(de,2),me=e=>{var t=lc(),r=N(t),i=F(r,!0),a=I(r),d=F(a,!0),f=I(a,2);J(f,5,()=>(H(o()),V(()=>o().editGroups)),q,(e,t)=>{var r=cc(),i=F(r,!0);R(e=>{r.disabled=!s()||c(),G(i,e)},[()=>(H(Z),n(),B(t),V(()=>Z(`changeSection`,n(),{section:Z(u[B(t)],n())})))]),Cr(`click`,r,()=>l()(`revise:${B(t)}`)),W(e,r)}),D(f),D(t),R((e,t)=>{G(i,e),G(d,t)},[()=>(H(Z),n(),V(()=>Z(`changeAnswersTitle`,n()))),()=>(H(Z),n(),V(()=>Z(`changeAnswersHelp`,n())))]),W(e,t)};K(pe,e=>{H(o()),V(()=>o().editGroups?.length)&&e(me)});var he=I(pe,2),ge=N(he);{let e=k(()=>(H(Z),n(),V(()=>Z(`stopHere`,n())))),t=k(()=>!s()||c());qa(ge,{get label(){return B(e)},variant:`secondary`,onClick:()=>l()(`decline`),get disabled(){return B(t)}})}var _e=I(ge);{let e=k(()=>(H(Z),H(o()),n(),V(()=>Z(o().plan.deliveryMode===`pull-request`?`batchUseConfiguration`:`approvePlan`,n())))),t=k(()=>(H(s()),H(c()),H(o()),V(()=>!s()||c()||!!o().plan.installationReview?.blockers.length)));qa(_e,{get label(){return B(e)},arrow:!0,onClick:()=>l()(`approve`),get disabled(){return B(t)}})}D(he),D(d),R((e,t,n,r)=>{G(p,e),Y(m,`aria-label`,t),G(g,n),G(v,r)},[()=>(H(Z),H(o()),n(),V(()=>Z(o().plan.deliveryMode===`pull-request`?`batchConfigurationPreview`:o().plan.organizationReuse?`planReuseBody`:`planBody`,n()))),()=>(H(Z),n(),V(()=>Z(`planPermissionProbeTitle`,n()))),()=>(H(Z),n(),V(()=>Z(`planPermissionProbeTitle`,n()))),()=>(H(Z),n(),V(()=>Z(`planPermissionProbeBody`,n())))]),W(e,d),Je(),i()}wr([`click`]);var fc=U(`

                                      `),pc=U(`
                                    • `),mc=U(`
                                      `,1),hc=U(`
                                      `,1),gc=U(`

                                      `),_c=U(`

                                        `,1);function vc(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=j(),o=X(t,`view`,8);L(()=>n(),()=>{M(a,ta(n()))}),En(),Ai();var s=_c(),c=P(s),l=N(c),u=F(l,!0),d=I(l),f=F(d,!0),p=I(d,2),m=e=>{var t=fc(),n=F(t,!0);R(()=>G(n,(B(a),V(()=>B(a).unknown)))),W(e,t)};K(p,e=>{H(o()),V(()=>o().secretInventory!==`available`)&&e(m)});var h=I(p,2);J(h,5,()=>(H(o()),V(()=>o().secrets)),q,(e,t)=>{var n=pc(),r=N(n),i=F(r,!0),o=I(r),s=I(o),c=e=>{var t=Mr();R(()=>G(t,`· ${B(a),V(()=>B(a).shadowed)??``}`)),W(e,t)};K(s,e=>{B(t),V(()=>B(t).shadowed)&&e(c)}),D(n),R(()=>{G(i,(B(t),V(()=>B(t).name))),G(o,` · ${B(a),B(t),V(()=>B(a)[B(t).scope])??``} `)}),W(e,n)}),D(h),D(c);var g=I(c,2),_=N(g),v=F(_),y=I(_,2),b=e=>{var t=fc(),n=F(t,!0);R(()=>G(n,(B(a),V(()=>B(a).empty)))),W(e,t)};K(y,e=>{H(o()),V(()=>!o().variables.length)&&e(b)});var x=I(y,2);J(x,5,()=>(H(o()),V(()=>o().variables)),q,(e,t)=>{var n=mc(),r=P(n),i=N(r),o=I(i),s=e=>{var t=Mr();R(()=>G(t,`· ${B(a),V(()=>B(a).shadowed)??``}`)),W(e,t)};K(o,e=>{B(t),V(()=>B(t).shadowed)&&e(s)}),D(r);var c=F(I(r),!0);R(()=>{G(i,`${B(t),V(()=>B(t).name)??``} · ${B(a),B(t),V(()=>B(a)[B(t).scope])??``} `),G(c,(B(t),V(()=>B(t).value)))}),W(e,n)}),D(x),D(g);var S=I(g,2),C=N(S),w=F(C);J(I(C,2),1,()=>(H(o()),V(()=>o().workflows)),q,(e,t)=>{var n=gc(),r=N(n),i=F(r,!0),o=I(r,2),s=F(o,!0),c=I(o,2);J(c,5,()=>(B(t),V(()=>B(t).inputs)),q,(e,t)=>{var n=hc(),r=P(n),i=F(r,!0),o=I(r),s=N(o,!0),c=I(s),l=e=>{var n=Mr();R(()=>G(n,`· ${B(a),V(()=>B(a).workflow)??``}: ${B(t),V(()=>B(t).fallback)??``}`)),W(e,n)};K(c,e=>{B(t),V(()=>B(t).fallback!==void 0)&&e(l)}),D(o),R(()=>{G(i,(B(t),V(()=>B(t).name))),G(s,(B(t),B(a),V(()=>B(t).unsupported?B(a).unknown:B(t).variable?`vars.${B(t).variable}`:B(t).literal)))}),W(e,n)}),D(c),D(n),R(()=>{G(i,(B(t),V(()=>B(t).file))),G(s,(B(t),V(()=>B(t).action)))}),W(e,n)}),D(S),R(()=>{G(u,(B(a),V(()=>B(a).credentials))),G(f,(B(a),V(()=>B(a).secretHelp))),G(v,`${B(a),V(()=>B(a).variables)??``} (${H(o()),V(()=>o().variables.length)??``})`),G(w,`${B(a),V(()=>B(a).details)??``} (${H(o()),V(()=>o().workflows.length)??``})`)}),W(e,s),Je(),i()}var yc=U(`

                                        `),bc=U(``),xc=U(``),Sc=U(`

                                        `),Cc=U(`

                                        `,1),wc=U(`

                                        `,1);function Tc(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=j(),o=X(t,`view`,8),s=X(t,`controller`,8),c=X(t,`busy`,8),l=X(t,`onSubmit`,8);L(()=>n(),()=>{M(a,ta(n()))}),En(),Ai();var u=wc(),d=P(u),f=F(d,!0),p=I(d,2),m=F(p,!0),h=I(p,2),g=F(h,!0),_=I(h,2),v=e=>{var t=yc(),n=F(t,!0);R(()=>G(n,(B(a),V(()=>B(a).local)))),W(e,t)};K(_,e=>{H(o()),V(()=>o().github===`not-connected`&&o().status!==`unconfigured`)&&e(v)});var y=I(_,2),b=e=>{var t=bc(),n=F(t,!0);R(()=>G(n,(B(a),V(()=>B(a).githubIncomplete)))),W(e,t)};K(y,e=>{H(o()),V(()=>o().github===`incomplete`)&&e(b)});var x=I(y,2),S=N(x),C=e=>{var t=xc(),n=F(t,!0);R(()=>{t.disabled=!s()||c(),G(n,(H(o()),B(a),V(()=>o().github===`not-connected`?B(a).connect:B(a).refresh)))}),Cr(`click`,t,()=>l()(o().github===`not-connected`?`connect`:`refresh`)),W(e,t)};K(S,e=>{H(o()),V(()=>o().status!==`unconfigured`)&&e(C)});var w=I(S,2);let ee;var te=F(w,!0);D(x);var ne=I(x,2),re=e=>{var t=Cc(),r=P(t),i=N(r),u=F(i,!0),d=I(i),f=F(d,!0),p=I(d,2);J(p,5,()=>(H(o()),V(()=>o().settings)),q,(e,t)=>{var r=Sc(),i=N(r),o=N(i),u=F(o,!0),d=I(o),f=N(d,!0),p=I(f),m=e=>{var n=Mr();R(()=>G(n,` · ${B(a),B(t),V(()=>B(a)[B(t).source])??``}`)),W(e,n)};K(p,e=>{B(t),V(()=>B(t).source!==`unknown`)&&e(m)}),D(d),D(i);var h=I(i,2),g=F(h,!0);D(r),R((e,n,r)=>{G(u,e),G(f,n),Y(h,`aria-label`,r),h.disabled=(H(s()),H(c()),B(t),V(()=>!s()||c()||!B(t).editable)),G(g,(B(a),V(()=>B(a).edit)))},[()=>(H(na),B(t),n(),V(()=>na(B(t).id,n()))),()=>(B(t),B(a),H(ia),n(),V(()=>B(t).value===void 0?B(a).unknown:ia(B(t).value,n()))),()=>(B(a),H(na),B(t),n(),V(()=>`${B(a).edit}: ${na(B(t).id,n())}`))]),Cr(`click`,h,()=>l()(`edit:${B(t).id}`)),W(e,r)}),D(p),D(r),vc(I(r,2),{get view(){return o()}}),R(()=>{G(u,(B(a),V(()=>B(a).quick))),G(f,(B(a),V(()=>B(a).quickHelp)))}),W(e,t)};K(ne,e=>{H(o()),V(()=>o().status!==`unconfigured`)&&e(re)});var ie=I(ne,2),ae=F(ie,!0),oe=I(ie,2),se=N(oe),ce=F(se,!0);D(oe),R(()=>{G(f,(B(a),V(()=>B(a).title))),G(m,(B(a),H(o()),V(()=>B(a)[o().status]))),G(g,(H(o()),B(a),V(()=>o().status===`unconfigured`?B(a).startHelp:B(a).intro))),ee=li(w,1,`button`,null,ee,{primary:o().status===`unconfigured`,secondary:o().status!==`unconfigured`}),w.disabled=!s()||c(),G(te,(H(o()),B(a),V(()=>o().status===`unconfigured`?B(a).start:B(a).wizard))),G(ae,(B(a),V(()=>B(a).limits))),se.disabled=!s()||c(),G(ce,(B(a),V(()=>B(a).finish)))}),Cr(`click`,w,()=>l()(`wizard`)),Cr(`click`,se,()=>l()(`close`)),W(e,u),Je(),i()}wr([`click`]);var Ec=U(``),Dc=U(``),Oc=U(`
                                      • `),kc=U(`
                                          `),Ac=U(`

                                          `),jc=U(` `),Mc=U(`

                                            `),Nc=U(`
                                             
                                            `),Pc=U(`
                                            `),Fc=U(`
                                            `),Ic=U(`

                                            `),Lc=U(`
                                          • `),Rc=U(`
                                              `),zc=U(`

                                              `,1),Bc=U(`

                                              →

                                              `),Vc=U(`
                                              `),Hc=U(``),Uc=U(``),Wc=U(`
                                              `),Gc=U(`

                                              `);function Kc(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=j(),o=X(t,`batch`,8),s=X(t,`controller`,8),c=X(t,`busy`,8),l=X(t,`mode`,8,`progress`),u=X(t,`onSubmit`,8,async()=>void 0),d=X(t,`onStop`,8,async()=>void 0),f={ready:`batchStatusReady`,blocked:`batchStatusBlocked`,applying:`batchStatusApplying`,partial:`batchStatusPartial`,"waiting-for-merge":`batchStatusWaiting`,"verification-pending":`batchStatusPending`,unchanged:`batchStatusUnchanged`,cancelled:`batchStatusCancelled`};function p(e){return e&&/^https:\/\/github\.com\/[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+\/pull\/[1-9][0-9]*$/.test(e)?e:void 0}L(()=>H(o()),()=>{M(a,o().targets.some(e=>e.cleanupPending)?[]:o().targets.filter(e=>[`ready`,`partial`,`cancelled`,`applying`].includes(e.status)))}),En(),Ai();var m=Gc(),h=N(m),g=F(h,!0),_=I(h,2),v=F(_,!0),y=I(_,2),b=e=>{var t=Ec(),r=F(t,!0);R(e=>G(r,e),[()=>(H(Z),n(),V(()=>Z(`batchStopping`,n())))]),W(e,t)};K(y,e=>{H(o()),V(()=>o().stopRequested)&&e(b)});var x=I(y,2);J(x,5,()=>(H(o()),V(()=>o().targets)),e=>e.repositoryId,(e,t)=>{var r=Bc(),i=N(r),a=F(i,!0),o=I(i,2),s=e=>{Vs(e,{get review(){return B(t),V(()=>B(t).installationReview)}})};K(o,e=>{B(t),V(()=>B(t).installationReview)&&e(s)});var c=I(o,2),l=F(c,!0),u=I(c,2),d=e=>{var t=Dc(),r=F(t,!0);R(e=>G(r,e),[()=>(H(Z),n(),V(()=>Z(`batchCleanupPending`,n())))]),W(e,t)};K(u,e=>{B(t),V(()=>B(t).cleanupPending)&&e(d)});var m=I(u,2),h=e=>{var n=kc();J(n,5,()=>(B(t),V(()=>B(t).blockers)),q,(e,t)=>{var n=Oc(),r=F(n,!0);R(()=>G(r,B(t))),W(e,n)}),D(n),W(e,n)};K(m,e=>{B(t),V(()=>B(t).blockers?.length)&&e(h)});var g=I(m,2),_=e=>{var r=Ac(),i=F(r,!0);R(e=>G(i,e),[()=>(H(Z),B(t),n(),V(()=>Z(B(t).reason===`drift`||B(t).reason===`ownership`?`batchReasonDrift`:B(t).reason===`provider`?`batchReasonProvider`:B(t).reason===`cancelled`?`batchReasonCancelled`:`batchReasonPreflight`,n())))]),W(e,r)};K(g,e=>{B(t),V(()=>B(t).reason&&!B(t).cleanupPending)&&e(_)});var v=I(g,2),y=N(v),b=F(y,!0),x=I(y),S=N(x),C=F(S,!0),w=F(I(S,2),!0);D(x);var ee=F(I(x),!0);D(v);var te=I(v,2),ne=e=>{var r=jc(),i=F(r);R((e,t)=>{Y(r,`href`,e),G(i,`${t??``} ↗`)},[()=>(B(t),V(()=>p(B(t).pullRequestUrl))),()=>(H(Z),n(),V(()=>Z(`batchOpenPull`,n())))]),W(e,r)},re=_t(()=>(B(t),V(()=>p(B(t).pullRequestUrl))));K(te,e=>{B(re)&&e(ne)});var ie=I(te,2),ae=e=>{var r=zc(),i=P(r),a=N(i),o=F(a,!0),s=I(a,2),c=F(s,!0),l=F(I(s,2),!0);D(i);var u=I(i,2),d=e=>{var r=Ac(),i=F(r);R((e,t)=>G(i,`${e??``}: ${t??``}.`),[()=>(H(Z),n(),V(()=>Z(`batchRetainedSecrets`,n()))),()=>(B(t),V(()=>B(t).retainedSecrets.join(`, `)))]),W(e,r)};K(u,e=>{B(t),V(()=>B(t).retainedSecrets.length)&&e(d)});var f=I(u,2),p=F(f,!0),m=I(f,2),h=e=>{var r=Mc(),i=N(r),a=F(i,!0),o=I(i,2),s=F(o,!0),c=I(o,2);J(c,5,()=>(B(t),V(()=>B(t).permissionProbes)),q,(e,t)=>{var r=Oc(),i=F(r);R((e,t)=>G(i,`${e??``}: ${t??``}`),[()=>(H(Qs),n(),B(t),V(()=>Qs(n(),B(t).scope))),()=>(H($s),n(),B(t),V(()=>$s(n(),B(t).permission)))]),W(e,r)}),D(c);var l=I(c,2),u=e=>{var t=Ac(),r=F(t,!0);R(e=>G(r,e),[()=>(H(Z),n(),V(()=>Z(`planSecretProbeLimit`,n())))]),W(e,t)},d=_t(()=>(B(t),V(()=>B(t).permissionProbes.some(e=>e.permission===`Secrets`))));K(l,e=>{B(d)&&e(u)}),D(r),R((e,t)=>{G(a,e),G(s,t)},[()=>(H(Z),n(),V(()=>Z(`planPermissionProbeTitle`,n()))),()=>(H(Z),n(),V(()=>Z(`planPermissionProbeBody`,n())))]),W(e,r)};K(m,e=>{B(t),V(()=>B(t).permissionProbes?.length)&&e(h)});var g=I(m,2),_=e=>{var r=Fc(),i=N(r),a=F(i,!0);J(I(i,2),1,()=>(B(t),V(()=>B(t).files)),q,(e,t)=>{var r=Pc(),i=N(r),a=F(N(i),!0);D(i);var o=I(i,2),s=e=>{var t=Ac(),r=F(t,!0);R(e=>G(r,e),[()=>(H(Z),n(),V(()=>Z(`batchDeleteFile`,n())))]),W(e,t)},c=e=>{var n=Nc(),r=F(n,!0);R(()=>G(r,(B(t),V(()=>B(t).content)))),W(e,n)};K(o,e=>{B(t),V(()=>B(t).content===null)?e(s):e(c,-1)}),D(r),R(()=>G(a,(B(t),V(()=>B(t).path)))),W(e,r)}),D(r),R(e=>G(a,e),[()=>(H(Z),n(),V(()=>Z(`batchReviewFiles`,n())))]),W(e,r)};K(g,e=>{B(t),V(()=>B(t).files.length)&&e(_)});var v=I(g,2),y=e=>{var r=Ic(),i=N(r),a=F(i,!0),o=F(I(i),!0);D(r),R((e,t)=>{G(a,e),G(o,t)},[()=>(H(Z),n(),V(()=>Z(`batchRepositoryOverrides`,n()))),()=>(B(t),V(()=>B(t).repositoryVariables.join(`, `)))]),W(e,r)};K(v,e=>{B(t),V(()=>B(t).repositoryVariables.length)&&e(y)});var b=I(v,2),x=e=>{var r=Rc(),i=N(r),a=F(i,!0),o=I(i);J(o,5,()=>(B(t),V(()=>B(t).grants)),q,(e,t)=>{var n=Lc(),r=N(n),i=F(I(r),!0);D(n),R(()=>{G(r,`${B(t),V(()=>B(t).kind===`secret`?`Secret`:`Variable`)??``} `),G(i,(B(t),V(()=>B(t).name)))}),W(e,n)}),D(o),D(r),R(e=>G(a,e),[()=>(H(Z),n(),V(()=>Z(`batchReviewedAccess`,n())))]),W(e,r)};K(b,e=>{B(t),V(()=>B(t).grants.length)&&e(x)}),R((e,t,n,r)=>{G(o,e),G(c,t),G(l,n),G(p,r)},[()=>(H(Z),n(),B(t),V(()=>Z(`batchFilesCount`,n(),{count:String(B(t).files.length)}))),()=>(H(Z),n(),B(t),V(()=>Z(`batchVariablesCount`,n(),{count:String(B(t).repositoryVariables.length)}))),()=>(H(Z),n(),B(t),V(()=>Z(`batchGrantsCount`,n(),{count:String(B(t).grants.length)}))),()=>(H(Z),n(),V(()=>Z(`batchResourcesExplanation`,n())))]),W(e,r)},oe=_t(()=>(B(t),V(()=>![`waiting-for-merge`,`verification-pending`,`unchanged`].includes(B(t).status))));K(ie,e=>{B(oe)&&e(ae)}),D(r),R((e,n)=>{G(a,(B(t),V(()=>B(t).repository))),G(l,e),G(b,n),G(C,(B(t),V(()=>B(t).installationBranch))),G(w,(B(t),V(()=>B(t).baseBranch))),G(ee,(B(t),V(()=>B(t).baseSha)))},[()=>(H(Z),B(t),n(),V(()=>Z(f[B(t).status],n()))),()=>(H(Z),n(),V(()=>Z(`batchBranchReview`,n())))]),W(e,r)}),D(x);var S=I(x,2),C=e=>{var t=Vc(),r=N(t),i=F(r,!0),o=I(r,2),l=F(o,!0);D(t),R((e,t)=>{r.disabled=(H(s()),H(c()),B(a),V(()=>!s()||c()||!B(a).length)),G(i,e),o.disabled=!s()||c(),G(l,t)},[()=>(H(Z),n(),V(()=>Z(`batchApplyPlans`,n()))),()=>(H(Z),n(),V(()=>Z(`batchLeavePreview`,n())))]),Cr(`click`,r,()=>u()(`approve`)),Cr(`click`,o,()=>u()(`decline`)),W(e,t)},w=e=>{var t=Hc(),r=F(t,!0);R(e=>{t.disabled=(H(s()),H(c()),H(o()),V(()=>!s()||c()||o().stopRequested)),G(r,e)},[()=>(H(Z),n(),V(()=>Z(`batchStopPending`,n())))]),Cr(`click`,t,function(...e){d()?.apply(this,e)}),W(e,t)},ee=e=>{var t=Wc(),r=N(t),i=e=>{var t=Uc(),r=F(t,!0);R(e=>{t.disabled=!s()||c(),G(r,e)},[()=>(H(Z),n(),V(()=>Z(`batchRetryPending`,n())))]),Cr(`click`,t,()=>u()(`retry`)),W(e,t)};K(r,e=>{B(a),H(o()),V(()=>B(a).length&&o().retryRemaining>0)&&e(i)});var l=I(r,2),d=F(l,!0);D(t),R(e=>{l.disabled=!s()||c(),G(d,e)},[()=>(H(Z),n(),V(()=>Z(`batchFinish`,n())))]),Cr(`click`,l,()=>u()(`finish`)),W(e,t)};K(S,e=>{l()===`review`?e(C):l()===`progress`?e(w,1):l()===`result`&&e(ee,2)});var te=I(S,2),ne=N(te),re=F(ne,!0),ie=F(I(ne),!0);D(te),D(m),R((e,t,n)=>{G(g,e),G(v,t),G(re,n),G(ie,(H(o()),V(()=>o().operationId)))},[()=>(H(Z),H(l()),n(),V(()=>Z(l()===`review`?`batchReviewTitle`:l()===`progress`?`batchProgressTitle`:`batchResultTitle`,n()))),()=>(H(Z),H(l()),n(),V(()=>Z(l()===`review`?`batchReviewBody`:l()===`progress`?`batchProgressBody`:`batchResultBody`,n()))),()=>(H(Z),n(),V(()=>Z(`batchTechnical`,n())))]),W(e,m),Je(),i()}wr([`click`]);var qc=U(``),Jc=U(``),Yc=U(`

                                              `),Xc=U(`
                                              `),Zc=U(`

                                              `,1);function Qc(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=j(),o=j(),s=j(),c=X(t,`selection`,8),l=X(t,`controller`,8),u=X(t,`busy`,8),d=X(t,`onSubmit`,8),f=j([...c().selectedIds]),p=j(``),m=j(``),h=j(0);function g(e){M(f,B(f).includes(e)?B(f).filter(t=>t!==e):[...B(f),e])}function _(e){d()(JSON.stringify({action:e,selectedIds:B(f),...e===`resolve`?{name:B(m).trim()}:{}}))}L(()=>(H(c()),B(p)),()=>{M(a,c().candidates.filter(e=>e.name.toLowerCase().includes(B(p).toLowerCase())))}),L(()=>(B(h),B(a)),()=>{B(h)>0&&B(h)*25>=B(a).length&&M(h,0)}),L(()=>(B(a),B(h)),()=>{M(o,B(a).slice(B(h)*25,(B(h)+1)*25))}),L(()=>(B(f),H(c())),()=>{M(s,B(f).some(e=>!c().candidates.some(t=>t.id===e&&!t.unavailable)))}),En(),Ai();var v=Zc(),y=P(v),b=F(y,!0),x=I(y,2),S=e=>{var t=qc(),r=F(t,!0);R(e=>G(r,e),[()=>(H(Z),n(),V(()=>Z(`batchDiscoveryUnavailable`,n())))]),W(e,t)};K(x,e=>{H(c()),V(()=>c().discoveryStatus===`unavailable`)&&e(S)});var C=I(x,2),w=e=>{var t=qc(),r=F(t,!0);R(e=>G(r,e),[()=>(H(Z),H(c()),n(),V(()=>Z(c().message===`lookup-unavailable`?`batchLookupUnavailable`:c().message===`selection-invalid`?`batchSelectionInvalid`:`batchAccessUnavailable`,n())))]),W(e,t)};K(C,e=>{H(c()),V(()=>c().message)&&e(w)});var ee=I(C,2),te=e=>{var t=qc(),r=F(t,!0);R(e=>G(r,e),[()=>(H(Z),n(),V(()=>Z(`batchDiscoveryTruncated`,n())))]),W(e,t)};K(ee,e=>{H(c()),V(()=>c().truncated)&&e(te)});var ne=I(ee,2),re=F(ne,!0),ie=I(ne,2);bi(ie);var ae=I(ie,2),oe=F(ae,!0),se=I(ae,2),ce=N(se),le=F(ce,!0),ue=I(ce,2);J(ue,5,()=>B(o),e=>e.id,(e,t)=>{var r=Jc(),i=N(r);bi(i);var a=I(i,2),o=N(a),s=F(o,!0),l=I(o),u=N(l),d=I(u),p=e=>{var t=Mr();R(e=>G(t,`· ${e??``}`),[()=>(H(Z),n(),V(()=>Z(`batchCurrent`,n())))]),W(e,t)};K(d,e=>{B(t),H(c()),V(()=>B(t).id===c().currentRepositoryId)&&e(p)});var m=I(d,2),h=e=>{var r=Mr();R(e=>G(r,`· ${e??``}`),[()=>(H(Z),B(t),n(),V(()=>Z(B(t).unavailable===`archived`?`batchArchived`:B(t).unavailable===`disabled`?`batchDisabled`:B(t).unavailable===`access-unavailable`?`batchAccessUnavailable`:`batchReadOnly`,n())))]),W(e,r)};K(m,e=>{B(t),V(()=>B(t).unavailable)&&e(h)}),D(l),D(a),D(r),R((e,n,r)=>{xi(i,e),i.disabled=n,G(s,(B(t),V(()=>B(t).name))),G(u,`${r??``} `)},[()=>(B(f),B(t),V(()=>B(f).includes(B(t).id))),()=>(B(f),B(t),V(()=>!B(f).includes(B(t).id)&&(!!B(t).unavailable||B(f).length>=25))),()=>(H(Z),B(t),n(),V(()=>Z(B(t).private?`batchPrivate`:`batchPublic`,n())))]),Cr(`change`,i,()=>g(B(t).id)),W(e,r)}),D(ue),D(se);var de=I(se,2),fe=e=>{var t=Yc(),r=F(t,!0);R(e=>G(r,e),[()=>(H(Z),n(),V(()=>Z(`batchNoMatches`,n())))]),W(e,t)};K(de,e=>{B(a),V(()=>!B(a).length)&&e(fe)});var pe=I(de,2),me=e=>{var t=Xc(),r=N(t),i=F(r,!0),o=I(r,2),s=F(o),c=I(o,2),d=F(c,!0);D(t),R((e,t,n)=>{r.disabled=B(h)===0||!l()||u(),G(i,e),G(s,`${B(h)+1} / ${t??``}`),c.disabled=(B(h),B(a),H(l()),H(u()),V(()=>(B(h)+1)*25>=B(a).length||!l()||u())),G(d,n)},[()=>(H(Z),n(),V(()=>Z(`batchPrevious`,n()))),()=>(B(a),V(()=>Math.ceil(B(a).length/25))),()=>(H(Z),n(),V(()=>Z(`batchNext`,n())))]),Cr(`click`,r,()=>M(h,B(h)-1)),Cr(`click`,c,()=>M(h,B(h)+1)),W(e,t)};K(pe,e=>{B(a),V(()=>B(a).length>25)&&e(me)});var he=I(pe,2),ge=N(he),_e=F(ge,!0),ve=I(ge,2),ye=F(ve,!0),be=I(ve,2),xe=F(be,!0),Se=I(be,2);bi(Se);var Ce=I(Se,2),we=N(Ce),T=F(we,!0),Te=I(we,2),E=F(Te,!0);D(Ce),D(he);var Ee=I(he,2),De=F(Ee,!0);R((e,t,n,r,i,a,o,c,d,p,m)=>{G(b,e),G(re,t),ie.disabled=!l()||u(),G(oe,n),se.disabled=!l()||u(),G(le,r),G(_e,i),G(ye,a),G(xe,o),Se.disabled=!l()||u(),we.disabled=c,G(T,d),Te.disabled=!l()||u(),G(E,p),Ee.disabled=(H(l()),H(u()),B(s),B(f),V(()=>!l()||u()||B(s)||B(f).length<1||B(f).length>25)),G(De,m)},[()=>(H(Z),n(),H(c()),V(()=>Z(`batchSelectionBody`,n(),{organization:c().organization}))),()=>(H(Z),n(),V(()=>Z(`batchFilter`,n()))),()=>(H(Z),n(),B(f),V(()=>Z(`batchSelectedCount`,n(),{count:String(B(f).length)}))),()=>(H(Z),n(),V(()=>Z(`batchRepositories`,n()))),()=>(H(Z),n(),V(()=>Z(`batchMissingRepository`,n()))),()=>(H(Z),n(),V(()=>Z(`batchAccessExplanation`,n()))),()=>(H(Z),n(),V(()=>Z(`batchExactName`,n()))),()=>(H(l()),H(u()),B(m),V(()=>!l()||u()||!/^[A-Za-z0-9][A-Za-z0-9_.-]{0,99}$/.test(B(m).trim()))),()=>(H(Z),n(),V(()=>Z(`batchFindRepository`,n()))),()=>(H(Z),n(),V(()=>Z(`batchChangeAccess`,n()))),()=>(H(Z),n(),V(()=>Z(`batchReviewSelection`,n())))]),Cr(`input`,ie,()=>M(h,0)),Ti(ie,()=>B(p),e=>M(p,e)),Ti(Se,()=>B(m),e=>M(m,e)),Cr(`click`,we,()=>_(`resolve`)),Cr(`click`,Te,()=>_(`access`)),Cr(`click`,Ee,()=>_(`select`)),W(e,v),Je(),i()}wr([`input`,`change`,`click`]);var $c=U(`

                                              `,1),el=U(``),tl=U(``),nl=U(``),rl=U(`

                                              `,1),il=U(`

                                              `,1);function al(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=j(),o=X(t,`prompt`,8),s=X(t,`controller`,8),c=X(t,`busy`,8),l=X(t,`onSubmit`,8),u=j(o().kind===`quick-edit`?o().current:``);L(()=>n(),()=>{M(a,ta(n()))}),En(),Ai();var d=Nr(),f=P(d),p=e=>{var t=rl(),r=P(t),i=F(r,!0),d=I(r,2),f=e=>{var t=$c(),r=P(t),i=F(r,!0),a=I(r,2);{let e=k(()=>(H(lo),H(o()),n(),V(()=>lo(o().presentation[n()].documentation.url))));Po(a,{get explanation(){return H(o()),n(),V(()=>o().presentation[n()])},get helpUrl(){return B(e)}})}R(()=>G(i,(H(o()),n(),V(()=>o().presentation[n()].summary)))),W(e,t)};K(d,e=>{H(o()),V(()=>o().presentation)&&e(f)});var p=I(d,2),m=F(p),h=I(p,2),g=N(h),_=F(g,!0),v=I(g,2),y=e=>{var t=tl();J(t,5,()=>(H(o()),V(()=>o().choices)),q,(e,t)=>{var r=el(),i=F(r,!0),a={};R(e=>{G(i,e),a!==(a=B(t))&&(r.value=(r.__value=a)??``)},[()=>(H(ia),B(t),n(),V(()=>ia(B(t),n())))]),W(e,r)}),D(t),pi(t),R(()=>t.disabled=!s()||c()),mi(t,()=>B(u),e=>M(u,e)),W(e,t)},b=e=>{var t=nl();bi(t),R(()=>{Y(t,`min`,(H(o()),V(()=>o().min))),Y(t,`max`,(H(o()),V(()=>o().max))),t.disabled=!s()||c()}),Ti(t,()=>B(u),e=>M(u,e)),W(e,t)};K(v,e=>{H(o()),V(()=>o().choices)?e(y):e(b,-1)});var x=I(v,2),S=N(x),C=F(S,!0),w=I(S),ee=F(w,!0);D(x),D(h),R((e,t)=>{G(i,e),G(m,`${B(a),V(()=>B(a).current)??``}: ${t??``}`),G(_,(B(a),V(()=>B(a).next))),S.disabled=!s()||c(),G(C,(B(a),V(()=>B(a).back))),w.disabled=!s()||c(),G(ee,(B(a),V(()=>B(a).preview)))},[()=>(H(na),H(o()),n(),V(()=>na(o().id,n()))),()=>(H(ia),H(o()),n(),V(()=>ia(o().current,n())))]),Sr(`submit`,h,e=>{e.preventDefault(),l()(String(B(u)??``))}),Cr(`click`,S,()=>l()(`cancel`)),W(e,t)},m=e=>{var t=il(),r=P(t),i=F(r,!0),u=I(r),d=F(u,!0),f=I(u,2),p=N(f),m=F(p,!0),h=I(p),g=F(h,!0),_=I(h),v=F(_,!0),y=I(_),b=F(y,!0),x=I(y),S=F(x,!0),C=F(I(x),!0);D(f);var w=I(f,2);let ee;var te=F(w,!0),ne=I(w,2),re=F(ne,!0),ie=I(ne,2),ae=N(ie),oe=F(ae,!0),se=I(ae),ce=F(se,!0);D(ie),R((e,t,n)=>{G(i,(B(a),V(()=>B(a).review))),G(d,e),G(m,(B(a),V(()=>B(a).current))),G(g,t),G(v,(B(a),V(()=>B(a).next))),G(b,n),G(S,(B(a),V(()=>B(a).source))),G(C,(B(a),H(o()),V(()=>B(a)[o().change.scope]))),ee=li(w,1,`banner`,null,ee,{warning:o().change.scope===`organization`}),G(te,(H(o()),B(a),V(()=>o().change.scope===`organization`?B(a).orgImpact:B(a).repoImpact))),G(re,(B(a),V(()=>B(a).effect))),ae.disabled=!s()||c(),G(oe,(B(a),V(()=>B(a).back))),se.disabled=!s()||c(),G(ce,(B(a),V(()=>B(a).apply)))},[()=>(H(na),H(o()),n(),V(()=>na(o().change.id,n()))),()=>(H(ia),H(o()),n(),V(()=>ia(o().change.before,n()))),()=>(H(ia),H(o()),n(),V(()=>ia(o().change.after,n())))]),Cr(`click`,ae,()=>l()(`cancel`)),Cr(`click`,se,()=>l()(`approve`)),W(e,t)};K(f,e=>{H(o()),V(()=>o().kind===`quick-edit`)?e(p):e(m,-1)}),W(e,d),Je(),i()}wr([`click`]);function ol(e,t){let n=t,r=!0,i=()=>queueMicrotask(()=>{if(!r||!e.isConnected)return;let t=e.querySelector?.(`h2`);t?.isConnected?(t.setAttribute(`tabindex`,`-1`),t.focus({preventScroll:!1})):e.focus({preventScroll:!1})});return i(),{update(e){e!==n&&(n=e,i())},destroy(){r=!1}}}var sl=U(`

                                              `),cl=U(`

                                              `),ll=U(`
                                              `);function ul(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=j(),o=X(t,`prompt`,8),s=X(t,`revision`,8),c=X(t,`promptRevision`,8),l=X(t,`controller`,8),u=X(t,`busy`,8),d=X(t,`onSubmit`,8),f=X(t,`onRetryDiscovery`,8),p=X(t,`onBack`,8);L(()=>(H(o()),n()),()=>{M(a,Ia(o(),n()))}),En(),Ai();var m=ll(),h=N(m),g=N(h),_=F(g,!0),v=F(I(g));D(h);var y=I(h,2),b=e=>{var t=sl(),r=F(t,!0);R(e=>G(r,e),[()=>(H(o()),H(Z),n(),B(a),V(()=>o().kind===`repositories`?Z(`batchReviewSelection`,n()):B(a)?.title??o().title))]),W(e,t)},x=_t(()=>(H(o()),V(()=>![`question`,`management`,`quick-edit`,`quick-review`,`batch-plan`,`batch-result`].includes(o().kind))));K(y,e=>{B(x)&&e(b)});var S=I(y,2),C=e=>{var t=cl(),n=F(t,!0);R(()=>G(n,(B(a),H(o()),V(()=>B(a)?.description??(`description`in o()?o().description:``))))),W(e,t)};K(S,e=>{B(a),H(o()),V(()=>B(a)?.description||`description`in o()&&o().description)&&e(C)}),Jr(I(S,2),c,e=>{var t=Nr(),n=P(t),r=e=>{{let t=k(()=>(H(o()),V(()=>o().kind===`batch-plan`?`review`:`result`)));Kc(e,{get batch(){return H(o()),V(()=>o().batch)},get mode(){return B(t)},get controller(){return l()},get busy(){return u()},get onSubmit(){return d()}})}},i=e=>{Qc(e,{get selection(){return H(o()),V(()=>o().selection)},get controller(){return l()},get busy(){return u()},get onSubmit(){return d()}})},a=e=>{as(e,{get prompt(){return o()},get controller(){return l()},get busy(){return u()},get onSubmit(){return d()},get onRetryDiscovery(){return f()},get onBack(){return p()}})},s=e=>{ls(e,{get prompt(){return o()},get controller(){return l()},get busy(){return u()},get onSubmit(){return d()}})},c=e=>{vs(e,{get prompt(){return o()},get controller(){return l()},get busy(){return u()},get onSubmit(){return d()}})},m=e=>{dc(e,{get prompt(){return o()},get controller(){return l()},get busy(){return u()},get onSubmit(){return d()}})},h=e=>{Tc(e,{get view(){return H(o()),V(()=>o().management)},get controller(){return l()},get busy(){return u()},get onSubmit(){return d()}})},g=e=>{al(e,{get prompt(){return o()},get controller(){return l()},get busy(){return u()},get onSubmit(){return d()}})};K(n,e=>{H(o()),V(()=>o().kind===`batch-plan`||o().kind===`batch-result`)?e(r):(H(o()),V(()=>o().kind===`repositories`)?e(i,1):(H(o()),V(()=>o().kind===`question`)?e(a,2):(H(o()),V(()=>o().kind===`choice`||o().kind===`confirm`)?e(s,3):(H(o()),V(()=>o().kind===`text`||o().kind===`secret`)?e(c,4):(H(o()),V(()=>o().kind===`plan`)?e(m,5):(H(o()),V(()=>o().kind===`management`)?e(h,6):(H(o()),V(()=>o().kind===`quick-edit`||o().kind===`quick-review`)&&e(g,7))))))))}),W(e,t)}),D(m),ri(m,(e,t)=>ol?.(e,t),c),R((e,t,n)=>{Y(m,`aria-label`,e),G(_,t),G(v,`${n??``} ${s()??``}`)},[()=>(H(Z),n(),V(()=>Z(`currentDecision`,n()))),()=>(H(Z),n(),V(()=>Z(`currentDecision`,n()))),()=>(H(Z),n(),V(()=>Z(`session`,n())))]),W(e,m),Je(),i()}var dl=`Optional runner discovery selected(Optional organization runner discovery selected(List existing repository self-hosted runners without changing access.(List existing eligible runner groups and their runners; manual routing remains available without this grant.(Create the reviewed installation commit and installer-owned branch.(Include reviewed workflow files in the installation PR.(Create the reviewed installation PR without merging it.(Add only the reviewed repository access to an existing selected resource.(Inspect reusable organization configuration without changing its values.(Inspect effective repository overrides.(Inspect existing Secret names without reading their values.(Inspect inherited Secret access without replacing existing bindings.(Inspect existing trusted credential-health evidence.(Resolve repository identity and visibility.(Inspect installed workflows and repository files.(Inspect and provision selected GitHub Actions Secrets.(Inspect and provision selected GitHub Actions Variables.(Provision labels and issue resources.(Inspect and dispatch credential-health workflows.(Inspect CI workflow runs and jobs for exact producer identities.(Discover exact CI check and producer identities for guarded approval.(Inspect branch protection and rulesets.(Bootstrap a missing credential-health workflow.(Inspect and provision organization Actions Secrets.(Inspect and provision organization Actions Variables.(Provision and assign configured issue types.(Inspect selected Projects and their Status options; setup does not edit Project items.(Create the initial repository tag when no version tag exists.(Create an isolated branch for the Actions permission check.(Create the initial tag and an isolated branch for the Actions permission check.(Create the initial tag or an isolated branch for the Actions permission check.(Inspect and provision selected repository Actions Secrets.(Inspect and provision selected repository Actions Variables.(Provision labels for the selected issue workflows.(Dispatch credential-health checks for existing Secrets.(Prepare and clean isolated Actions checks for the bot PAT and any existing credentials.(Prepare a verified no-job workflow for the bot Actions check.(Inspect CI workflow runs and jobs for approval evidence.(Temporarily install credential health when its workflow is not confirmed installed.(Inspect branch protection and effective rulesets.(Inspect and provision selected organization Actions Secrets.(Inspect and provision selected organization Actions Variables.(Provision native issue types for the selected workflows.(Resolve repository and collaborator metadata.(Read repository branches, commits, and files for enabled runtime routes.(Dispatch selected release or hotfix workflows and check previous runs.(Check previous workflow runs before executing an enabled route.(Create managed branches, edit files, or merge selected release/hotfix changes.(Manage selected issue lifecycles, comments, and progress.(Manage selected pull request workflows, reviews, or autofix.(Verify current-head required checks and producer identities.(Load the PR approval assessment policy.(Select or authorize organization members for enabled workflows.(Assign configured organization issue types.(Update selected organization Projects.(Load the organization-scoped approval policy.(Secret provisioning enabled(Variable provisioning enabled(Issue workflows enabled(Credential health enabled(Initial tag or credential-health check enabled(Pull-request approval enabled(Guarded pull-request approval enabled(Release, hotfix, or guarded approval enabled(Temporary health workflow required(Organization Secret storage selected(Organization Variable storage selected(Issue type automation enabled(Organization Projects selected`.split(`(`),fl={"Optional runner discovery selected":`Consulta opcional de runners seleccionada`,"Optional organization runner discovery selected":`Consulta opcional de runners de organización seleccionada`,"List existing repository self-hosted runners without changing access.":`Consultar los runners self-hosted existentes del repositorio sin cambiar su acceso.`,"List existing eligible runner groups and their runners; manual routing remains available without this grant.":`Consultar los grupos de runners accesibles y sus runners; la configuración manual sigue disponible sin este permiso.`,"Create the reviewed installation commit and installer-owned branch.":`Crear el commit de instalación revisado y la rama del instalador.`,"Include reviewed workflow files in the installation PR.":`Incluir los workflows revisados en la PR de instalación.`,"Create the reviewed installation PR without merging it.":`Crear la PR de instalación revisada sin fusionarla.`,"Add only the reviewed repository access to an existing selected resource.":`Añadir solo el acceso del repositorio revisado a un recurso existente de visibilidad seleccionada.`,"Inspect reusable organization configuration without changing its values.":`Inspeccionar la configuración reutilizable de la organización sin cambiar sus valores.`,"Inspect effective repository overrides.":`Inspeccionar los ajustes efectivos del repositorio.`,"Inspect existing Secret names without reading their values.":`Inspeccionar los nombres de los Secrets existentes sin leer sus valores.`,"Inspect inherited Secret access without replacing existing bindings.":`Inspeccionar el acceso a los Secrets heredados sin sustituir los existentes.`,"Inspect existing trusted credential-health evidence.":`Inspeccionar la evidencia fiable existente sobre las credenciales.`,"Resolve repository identity and visibility.":`Comprobar la identidad y visibilidad del repositorio.`,"Inspect installed workflows and repository files.":`Examinar los workflows instalados y los archivos del repositorio.`,"Inspect and provision selected GitHub Actions Secrets.":`Examinar y configurar los Secrets de GitHub Actions seleccionados.`,"Inspect and provision selected GitHub Actions Variables.":`Examinar y configurar las Variables de GitHub Actions seleccionadas.`,"Provision labels and issue resources.":`Crear etiquetas y recursos de issues.`,"Inspect and dispatch credential-health workflows.":`Examinar y ejecutar los workflows de comprobación de credenciales.`,"Inspect CI workflow runs and jobs for exact producer identities.":`Examinar ejecuciones y jobs de CI para identificar sus productores exactos.`,"Discover exact CI check and producer identities for guarded approval.":`Identificar los checks de CI y sus productores exactos para la aprobación protegida.`,"Inspect branch protection and rulesets.":`Examinar la protección de ramas y sus reglas.`,"Bootstrap a missing credential-health workflow.":`Instalar provisionalmente el workflow de comprobación de credenciales que falta.`,"Inspect and provision organization Actions Secrets.":`Examinar y configurar Secrets de Actions en la organización.`,"Inspect and provision organization Actions Variables.":`Examinar y configurar Variables de Actions en la organización.`,"Provision and assign configured issue types.":`Crear y asignar los tipos de issue configurados.`,"Inspect selected Projects and their Status options; setup does not edit Project items.":`Consultar los Projects seleccionados y sus opciones de Status; el setup no modifica los elementos de los Projects.`,"Create the initial repository tag when no version tag exists.":`Crear el tag inicial si el repositorio aún no tiene ninguno de versión.`,"Create an isolated branch for the Actions permission check.":`Crear una rama aislada para comprobar el permiso de Actions.`,"Create the initial tag and an isolated branch for the Actions permission check.":`Crear el tag inicial y una rama aislada para comprobar el permiso de Actions.`,"Create the initial tag or an isolated branch for the Actions permission check.":`Crear el tag inicial o una rama aislada para comprobar el permiso de Actions.`,"Inspect and provision selected repository Actions Secrets.":`Examinar y configurar los Secrets de Actions seleccionados en el repositorio.`,"Inspect and provision selected repository Actions Variables.":`Examinar y configurar las Variables de Actions seleccionadas en el repositorio.`,"Provision labels for the selected issue workflows.":`Crear las etiquetas de los flujos de issues seleccionados.`,"Dispatch credential-health checks for existing Secrets.":`Ejecutar comprobaciones de credenciales para los Secrets existentes.`,"Prepare and clean isolated Actions checks for the bot PAT and any existing credentials.":`Preparar y limpiar las pruebas aisladas de Actions para el PAT del bot y las credenciales existentes.`,"Prepare a verified no-job workflow for the bot Actions check.":`Preparar un workflow verificado con los jobs desactivados para comprobar Actions con el PAT del bot.`,"Inspect CI workflow runs and jobs for approval evidence.":`Examinar ejecuciones y jobs de CI como prueba para la aprobación.`,"Temporarily install credential health when its workflow is not confirmed installed.":`Instalar temporalmente la comprobación de credenciales si su workflow no está confirmado.`,"Inspect branch protection and effective rulesets.":`Examinar la protección de ramas y las reglas efectivas.`,"Inspect and provision selected organization Actions Secrets.":`Examinar y configurar los Secrets de Actions seleccionados en la organización.`,"Inspect and provision selected organization Actions Variables.":`Examinar y configurar las Variables de Actions seleccionadas en la organización.`,"Provision native issue types for the selected workflows.":`Crear tipos de issue nativos para los flujos seleccionados.`,"Resolve repository and collaborator metadata.":`Consultar los metadatos del repositorio y sus colaboradores.`,"Read repository branches, commits, and files for enabled runtime routes.":`Leer ramas, commits y archivos del repositorio para las rutas de ejecución habilitadas.`,"Dispatch selected release or hotfix workflows and check previous runs.":`Ejecutar los flujos de release o hotfix seleccionados y comprobar ejecuciones anteriores.`,"Check previous workflow runs before executing an enabled route.":`Comprobar ejecuciones anteriores antes de iniciar un flujo habilitado.`,"Create managed branches, edit files, or merge selected release/hotfix changes.":`Crear ramas gestionadas, editar archivos o integrar cambios de release y hotfix.`,"Manage selected issue lifecycles, comments, and progress.":`Gestionar el ciclo de vida, los comentarios y el progreso de los issues seleccionados.`,"Manage selected pull request workflows, reviews, or autofix.":`Gestionar flujos de pull requests, revisiones o correcciones automáticas.`,"Verify current-head required checks and producer identities.":`Verificar los checks obligatorios y productores del commit actual.`,"Load the PR approval assessment policy.":`Leer la política de evaluación de aprobación de PRs.`,"Select or authorize organization members for enabled workflows.":`Seleccionar o autorizar miembros de la organización para los flujos activos.`,"Assign configured organization issue types.":`Asignar los tipos de issue configurados en la organización.`,"Update selected organization Projects.":`Actualizar los Projects seleccionados de la organización.`,"Load the organization-scoped approval policy.":`Leer la política de aprobación guardada en la organización.`,"Secret provisioning enabled":`Configuración de Secrets activada`,"Variable provisioning enabled":`Configuración de Variables activada`,"Issue workflows enabled":`Flujos de issues activados`,"Credential health enabled":`Comprobación de credenciales activada`,"Initial tag or credential-health check enabled":`Tag inicial o comprobación de credenciales activados`,"Pull-request approval enabled":`Aprobación de pull requests activada`,"Guarded pull-request approval enabled":`Aprobación protegida de pull requests activada`,"Release, hotfix, or guarded approval enabled":`Release, hotfix o aprobación protegida activados`,"Temporary health workflow required":`Hace falta un workflow temporal de comprobación`,"Organization Secret storage selected":`Se eligió guardar Secrets en la organización`,"Organization Variable storage selected":`Se eligió guardar Variables en la organización`,"Issue type automation enabled":`Automatización de tipos de issue activada`,"Organization Projects selected":`Se seleccionaron Projects de la organización`},pl={"Optional runner discovery selected":`Consultation facultative des runners sélectionnée`,"Optional organization runner discovery selected":`Consultation facultative des runners de l’organisation sélectionnée`,"List existing repository self-hosted runners without changing access.":`Consulter les runners auto-hébergés existants du dépôt sans modifier leurs accès.`,"List existing eligible runner groups and their runners; manual routing remains available without this grant.":`Consulter les groupes accessibles et leurs runners ; la configuration manuelle reste possible sans ce droit.`,"Create the reviewed installation commit and installer-owned branch.":`Créer le commit d’installation validé et la branche de l’installateur.`,"Include reviewed workflow files in the installation PR.":`Inclure les workflows validés dans la PR d’installation.`,"Create the reviewed installation PR without merging it.":`Créer la PR d’installation validée sans la fusionner.`,"Add only the reviewed repository access to an existing selected resource.":`Ajouter uniquement l’accès validé du dépôt à une ressource existante de visibilité sélectionnée.`,"Inspect reusable organization configuration without changing its values.":`Lire la configuration réutilisable de l’organisation sans modifier ses valeurs.`,"Inspect effective repository overrides.":`Lire les réglages effectifs du dépôt.`,"Inspect existing Secret names without reading their values.":`Lire les noms des Secrets existants sans accéder à leurs valeurs.`,"Inspect inherited Secret access without replacing existing bindings.":`Vérifier l’accès aux Secrets hérités sans remplacer les liaisons existantes.`,"Inspect existing trusted credential-health evidence.":`Lire les preuves fiables existantes de vérification des identifiants.`,"Resolve repository identity and visibility.":`Vérifier l’identité et la visibilité du dépôt.`,"Inspect installed workflows and repository files.":`Examiner les workflows installés et les fichiers du dépôt.`,"Inspect and provision selected GitHub Actions Secrets.":`Examiner et configurer les Secrets GitHub Actions choisis.`,"Inspect and provision selected GitHub Actions Variables.":`Examiner et configurer les Variables GitHub Actions choisies.`,"Provision labels and issue resources.":`Créer des étiquettes et des ressources pour les tickets.`,"Inspect and dispatch credential-health workflows.":`Examiner et lancer les workflows de vérification des identifiants.`,"Inspect CI workflow runs and jobs for exact producer identities.":`Examiner les exécutions et jobs CI pour identifier exactement leurs producteurs.`,"Discover exact CI check and producer identities for guarded approval.":`Identifier précisément les vérifications CI et leurs producteurs pour l’approbation encadrée.`,"Inspect branch protection and rulesets.":`Examiner la protection des branches et les ensembles de règles.`,"Bootstrap a missing credential-health workflow.":`Installer provisoirement le workflow de vérification des identifiants manquant.`,"Inspect and provision organization Actions Secrets.":`Examiner et configurer les Secrets Actions de l’organisation.`,"Inspect and provision organization Actions Variables.":`Examiner et configurer les Variables Actions de l’organisation.`,"Provision and assign configured issue types.":`Créer et attribuer les types de ticket configurés.`,"Inspect selected Projects and their Status options; setup does not edit Project items.":`Consulter les Projects sélectionnés et leurs options Status ; la configuration ne modifie aucun élément de Project.`,"Create the initial repository tag when no version tag exists.":`Créer le tag initial si le dépôt ne possède encore aucun tag de version.`,"Create an isolated branch for the Actions permission check.":`Créer une branche isolée pour vérifier l’autorisation Actions.`,"Create the initial tag and an isolated branch for the Actions permission check.":`Créer le tag initial et une branche isolée pour vérifier l’autorisation Actions.`,"Create the initial tag or an isolated branch for the Actions permission check.":`Créer le tag initial ou une branche isolée pour vérifier l’autorisation Actions.`,"Inspect and provision selected repository Actions Secrets.":`Examiner et configurer les Secrets Actions choisis dans le dépôt.`,"Inspect and provision selected repository Actions Variables.":`Examiner et configurer les Variables Actions choisies dans le dépôt.`,"Provision labels for the selected issue workflows.":`Créer les étiquettes des workflows de ticket choisis.`,"Dispatch credential-health checks for existing Secrets.":`Lancer des vérifications d’identifiants pour les Secrets existants.`,"Prepare and clean isolated Actions checks for the bot PAT and any existing credentials.":`Préparer et nettoyer les tests Actions isolés du PAT du bot et des identifiants existants.`,"Prepare a verified no-job workflow for the bot Actions check.":`Préparer un workflow vérifié aux jobs désactivés pour tester Actions avec le PAT du bot.`,"Inspect CI workflow runs and jobs for approval evidence.":`Examiner les exécutions et jobs CI comme preuve pour l’approbation.`,"Temporarily install credential health when its workflow is not confirmed installed.":`Installer provisoirement la vérification des identifiants si son workflow n’est pas confirmé.`,"Inspect branch protection and effective rulesets.":`Examiner la protection des branches et les règles applicables.`,"Inspect and provision selected organization Actions Secrets.":`Examiner et configurer les Secrets Actions choisis dans l’organisation.`,"Inspect and provision selected organization Actions Variables.":`Examiner et configurer les Variables Actions choisies dans l’organisation.`,"Provision native issue types for the selected workflows.":`Créer des types de ticket natifs pour les workflows choisis.`,"Resolve repository and collaborator metadata.":`Consulter les métadonnées du dépôt et de ses collaborateurs.`,"Read repository branches, commits, and files for enabled runtime routes.":`Lire les branches, commits et fichiers du dépôt pour les parcours d’exécution activés.`,"Dispatch selected release or hotfix workflows and check previous runs.":`Lancer les workflows de version ou correctif urgent choisis et vérifier les exécutions précédentes.`,"Check previous workflow runs before executing an enabled route.":`Vérifier les exécutions précédentes avant de lancer un parcours activé.`,"Create managed branches, edit files, or merge selected release/hotfix changes.":`Créer des branches gérées, modifier des fichiers ou fusionner les changements de version et correctif.`,"Manage selected issue lifecycles, comments, and progress.":`Gérer le cycle de vie, les commentaires et la progression des tickets choisis.`,"Manage selected pull request workflows, reviews, or autofix.":`Gérer les workflows de pull request, les revues ou les corrections automatiques.`,"Verify current-head required checks and producer identities.":`Vérifier les contrôles requis et leurs producteurs pour le commit courant.`,"Load the PR approval assessment policy.":`Lire la politique d’évaluation de l’approbation des PR.`,"Select or authorize organization members for enabled workflows.":`Sélectionner ou autoriser des membres de l’organisation pour les workflows activés.`,"Assign configured organization issue types.":`Attribuer les types de ticket configurés dans l’organisation.`,"Update selected organization Projects.":`Mettre à jour les projets de l’organisation choisis.`,"Load the organization-scoped approval policy.":`Lire la politique d’approbation stockée dans l’organisation.`,"Secret provisioning enabled":`Configuration des Secrets activée`,"Variable provisioning enabled":`Configuration des Variables activée`,"Issue workflows enabled":`Workflows de ticket activés`,"Credential health enabled":`Vérification des identifiants activée`,"Initial tag or credential-health check enabled":`Tag initial ou vérification des identifiants activés`,"Pull-request approval enabled":`Approbation des pull requests activée`,"Guarded pull-request approval enabled":`Approbation encadrée des pull requests activée`,"Release, hotfix, or guarded approval enabled":`Version, correctif urgent ou approbation encadrée activés`,"Temporary health workflow required":`Workflow temporaire de vérification requis`,"Organization Secret storage selected":`Stockage des Secrets dans l’organisation choisi`,"Organization Variable storage selected":`Stockage des Variables dans l’organisation choisi`,"Issue type automation enabled":`Automatisation des types de ticket activée`,"Organization Projects selected":`Projets de l’organisation choisis`},ml={"Optional runner discovery selected":`Consulta opcional de runners selecionada`,"Optional organization runner discovery selected":`Consulta opcional de runners da organização selecionada`,"List existing repository self-hosted runners without changing access.":`Consultar os runners self-hosted existentes do repositório sem alterar o acesso.`,"List existing eligible runner groups and their runners; manual routing remains available without this grant.":`Consultar os grupos acessíveis e os seus runners; a configuração manual continua disponível sem esta permissão.`,"Create the reviewed installation commit and installer-owned branch.":`Criar o commit de instalação revisto e o ramo do instalador.`,"Include reviewed workflow files in the installation PR.":`Incluir os workflows revistos na PR de instalação.`,"Create the reviewed installation PR without merging it.":`Criar a PR de instalação revista sem a integrar.`,"Add only the reviewed repository access to an existing selected resource.":`Adicionar apenas o acesso revisto do repositório a um recurso existente de visibilidade selecionada.`,"Inspect reusable organization configuration without changing its values.":`Consultar a configuração reutilizável da organização sem alterar os seus valores.`,"Inspect effective repository overrides.":`Consultar os ajustes efetivos do repositório.`,"Inspect existing Secret names without reading their values.":`Consultar os nomes dos Secrets existentes sem ler os seus valores.`,"Inspect inherited Secret access without replacing existing bindings.":`Consultar o acesso aos Secrets herdados sem substituir as ligações existentes.`,"Inspect existing trusted credential-health evidence.":`Consultar as provas fiáveis existentes da verificação das credenciais.`,"Resolve repository identity and visibility.":`Verificar a identidade e visibilidade do repositório.`,"Inspect installed workflows and repository files.":`Inspecionar os fluxos instalados e os ficheiros do repositório.`,"Inspect and provision selected GitHub Actions Secrets.":`Inspecionar e configurar os Secrets do GitHub Actions selecionados.`,"Inspect and provision selected GitHub Actions Variables.":`Inspecionar e configurar as Variables do GitHub Actions selecionadas.`,"Provision labels and issue resources.":`Criar etiquetas e recursos para questões.`,"Inspect and dispatch credential-health workflows.":`Inspecionar e executar os fluxos de verificação de credenciais.`,"Inspect CI workflow runs and jobs for exact producer identities.":`Inspecionar execuções e jobs CI para identificar exatamente os seus produtores.`,"Discover exact CI check and producer identities for guarded approval.":`Identificar as verificações CI e os seus produtores exatos para a aprovação protegida.`,"Inspect branch protection and rulesets.":`Inspecionar a proteção de ramos e os conjuntos de regras.`,"Bootstrap a missing credential-health workflow.":`Instalar temporariamente o fluxo de verificação de credenciais em falta.`,"Inspect and provision organization Actions Secrets.":`Inspecionar e configurar os Secrets de Actions da organização.`,"Inspect and provision organization Actions Variables.":`Inspecionar e configurar as Variables de Actions da organização.`,"Provision and assign configured issue types.":`Criar e atribuir os tipos de questão configurados.`,"Inspect selected Projects and their Status options; setup does not edit Project items.":`Consultar os Projects selecionados e as suas opções de Status; a configuração não altera os itens dos Projects.`,"Create the initial repository tag when no version tag exists.":`Criar a etiqueta inicial se o repositório ainda não tiver etiquetas de versão.`,"Create an isolated branch for the Actions permission check.":`Criar um ramo isolado para verificar a permissão de Actions.`,"Create the initial tag and an isolated branch for the Actions permission check.":`Criar a etiqueta inicial e um ramo isolado para verificar a permissão de Actions.`,"Create the initial tag or an isolated branch for the Actions permission check.":`Criar a etiqueta inicial ou um ramo isolado para verificar a permissão de Actions.`,"Inspect and provision selected repository Actions Secrets.":`Inspecionar e configurar os Secrets de Actions selecionados no repositório.`,"Inspect and provision selected repository Actions Variables.":`Inspecionar e configurar as Variables de Actions selecionadas no repositório.`,"Provision labels for the selected issue workflows.":`Criar etiquetas para os fluxos de questões selecionados.`,"Dispatch credential-health checks for existing Secrets.":`Executar verificações de credenciais para os Secrets existentes.`,"Prepare and clean isolated Actions checks for the bot PAT and any existing credentials.":`Preparar e limpar os testes isolados de Actions para o PAT do bot e as credenciais existentes.`,"Prepare a verified no-job workflow for the bot Actions check.":`Preparar um workflow verificado com os jobs desativados para testar Actions com o PAT do bot.`,"Inspect CI workflow runs and jobs for approval evidence.":`Inspecionar execuções e jobs CI como prova para aprovação.`,"Temporarily install credential health when its workflow is not confirmed installed.":`Instalar temporariamente a verificação de credenciais se o fluxo não estiver confirmado.`,"Inspect branch protection and effective rulesets.":`Inspecionar a proteção de ramos e as regras aplicáveis.`,"Inspect and provision selected organization Actions Secrets.":`Inspecionar e configurar os Secrets de Actions selecionados na organização.`,"Inspect and provision selected organization Actions Variables.":`Inspecionar e configurar as Variables de Actions selecionadas na organização.`,"Provision native issue types for the selected workflows.":`Criar tipos de questão nativos para os fluxos selecionados.`,"Resolve repository and collaborator metadata.":`Consultar os metadados do repositório e dos colaboradores.`,"Read repository branches, commits, and files for enabled runtime routes.":`Ler branches, commits e arquivos do repositório para os fluxos de execução habilitados.`,"Dispatch selected release or hotfix workflows and check previous runs.":`Executar os fluxos de release ou hotfix selecionados e verificar execuções anteriores.`,"Check previous workflow runs before executing an enabled route.":`Verificar execuções anteriores antes de iniciar um percurso ativo.`,"Create managed branches, edit files, or merge selected release/hotfix changes.":`Criar ramos geridos, editar ficheiros ou integrar alterações de release e hotfix.`,"Manage selected issue lifecycles, comments, and progress.":`Gerir o ciclo de vida, os comentários e o progresso das questões selecionadas.`,"Manage selected pull request workflows, reviews, or autofix.":`Gerir fluxos de pull requests, revisões ou correções automáticas.`,"Verify current-head required checks and producer identities.":`Verificar as verificações obrigatórias e os produtores do commit atual.`,"Load the PR approval assessment policy.":`Ler a política de avaliação de aprovação de PRs.`,"Select or authorize organization members for enabled workflows.":`Selecionar ou autorizar membros da organização para os fluxos ativos.`,"Assign configured organization issue types.":`Atribuir os tipos de questão configurados na organização.`,"Update selected organization Projects.":`Atualizar os Projetos selecionados da organização.`,"Load the organization-scoped approval policy.":`Ler a política de aprovação guardada na organização.`,"Secret provisioning enabled":`Configuração de Secrets ativa`,"Variable provisioning enabled":`Configuração de Variables ativa`,"Issue workflows enabled":`Fluxos de questões ativos`,"Credential health enabled":`Verificação de credenciais ativa`,"Initial tag or credential-health check enabled":`Etiqueta inicial ou verificação de credenciais ativas`,"Pull-request approval enabled":`Aprovação de pull requests ativa`,"Guarded pull-request approval enabled":`Aprovação protegida de pull requests ativa`,"Release, hotfix, or guarded approval enabled":`Release, hotfix ou aprovação protegida ativos`,"Temporary health workflow required":`É necessário um fluxo temporário de verificação`,"Organization Secret storage selected":`Armazenamento dos Secrets na organização selecionado`,"Organization Variable storage selected":`Armazenamento das Variables na organização selecionado`,"Issue type automation enabled":`Automatização de tipos de questão ativa`,"Organization Projects selected":`Projetos da organização selecionados`},hl=new Set(dl),gl={es:fl,fr:pl,pt:ml};function _l(e,t){return e===`en`?t:hl.has(t)?gl[e][t]:Z(`permissionUnknown`,e)}var vl={en:{"contents-write":`Actions was not tested because its temporary branch could not be created. Check repository Contents Write, repository selection and organization authorization.`,"contents-workflows-write":`Actions was not tested because its temporary workflow could not be written. Check repository Contents and Workflows Write, repository selection and organization authorization. Unverifiable does not mean Actions is missing.`,"dispatch-workflow":`Actions was not tested because no active workflow_dispatch workflow was found on the default branch. Install an eligible workflow before retrying.`},es:{"contents-write":`No se comprobó Actions porque no se pudo crear su rama temporal. Revisa Contents Write del repositorio, la selección del repositorio y la autorización de la organización.`,"contents-workflows-write":`No se comprobó Actions porque no se pudo escribir su workflow temporal. Revisa Contents y Workflows Write del repositorio, la selección del repositorio y la autorización de la organización. No verificable no significa que falte Actions.`,"dispatch-workflow":`No se comprobó Actions porque no se encontró un workflow activo con workflow_dispatch en la rama predeterminada. Instala uno antes de reintentar.`},fr:{"contents-write":`Actions n’a pas été testé car sa branche temporaire n’a pas pu être créée. Vérifiez Contents Write du dépôt, la sélection du dépôt et l’autorisation de l’organisation.`,"contents-workflows-write":`Actions n’a pas été testé car son workflow temporaire n’a pas pu être écrit. Vérifiez Contents et Workflows Write du dépôt, la sélection du dépôt et l’autorisation de l’organisation. Non vérifiable ne signifie pas qu’Actions manque.`,"dispatch-workflow":`Actions n’a pas été testé car aucun workflow actif avec workflow_dispatch n’a été trouvé sur la branche par défaut. Installez-en un avant de réessayer.`},pt:{"contents-write":`Actions não foi testado porque não foi possível criar a sua branch temporária. Verifique Contents Write do repositório, a seleção do repositório e a autorização da organização.`,"contents-workflows-write":`Actions não foi testado porque não foi possível escrever o seu workflow temporário. Verifique Contents e Workflows Write do repositório, a seleção do repositório e a autorização da organização. Não verificável não significa que falte Actions.`,"dispatch-workflow":`Actions não foi testado porque não foi encontrado um workflow ativo com workflow_dispatch na branch predefinida. Instale um antes de tentar novamente.`}};function yl(e,t){if(e===`contents-write`||e===`contents-workflows-write`||e===`dispatch-workflow`)return vl[t][e]}function bl(e,t){if(e.status===`unverifiable`&&e.permission===`Actions`&&e.level===`write`){let n=yl(e.prerequisite,t);if(n)return n}return e.status===`verified`?Z(e.level===`write`?`permissionEvidenceVerifiedWrite`:e.scope===`organization`&&e.permission===`Projects`&&e.level===`read`?`permissionEvidencePrivateProject`:`permissionEvidenceVerified`,t):e.status===`missing`?Z(`permissionEvidenceMissing`,t):e.status===`available`?Z(e.publicReadEvidence===`public-organization-projects`?`permissionEvidencePublicProjects`:`permissionEvidencePublic`,t):e.level===`write`?Z(`permissionEvidenceWrite`,t):e.publicReadEvidence===`public-organization-projects`?Z(`permissionEvidencePublicProjects`,t):e.publicReadEvidence===`public-repository`?Z(`permissionEvidencePublic`,t):Z(`permissionEvidenceUnknownRead`,t)}var xl=U(` `),Sl=U(` `),Cl=U(`
                                            • `),wl=U(`

                                                `),Tl=U(`

                                                `),El=U(``);function Dl(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=X(t,`view`,8);Ai();var o=El(),s=N(o),c=I(N(s)),l=F(c,!0),u=I(c),d=F(u,!0),f=I(u),p=F(N(f),!0);D(f),D(s);var m=I(s,2),h=e=>{var t=wl(),r=I(N(t)),i=F(r),o=I(r),s=F(o,!0),c=I(o,2);J(c,5,()=>(H(a()),V(()=>a().permissions.report?.checks??a().permissions.requirements??[])),q,(e,t)=>{var r=Cl(),i=N(r),a=N(i,!0),o=I(a),s=e=>{var n=xl(),r=F(N(n));D(n),R(()=>G(r,`GitHub · ${B(t),V(()=>B(t).permission)??``}`)),W(e,n)},c=_t(()=>(n(),H($s),B(t),V(()=>n()!==`en`&&$s(n(),B(t).permission)!==B(t).permission)));K(o,e=>{B(c)&&e(s)});var l=I(o),u=F(l),d=I(l),f=F(d,!0),p=I(d),m=e=>{var r=Sl(),i=F(r,!0);R(e=>G(i,e),[()=>(H(_l),n(),B(t),V(()=>_l(n(),B(t).condition)))]),W(e,r)};K(p,e=>{B(t),V(()=>B(t).condition)&&e(m)});var h=I(p),g=e=>{var r=Sl(),i=F(r,!0);R(e=>G(i,e),[()=>(H(bl),B(t),n(),V(()=>bl(B(t),n())))]),W(e,r)};K(h,e=>{`status`in B(t)&&e(g)}),D(i);var _=I(i),v=N(_,!0),y=I(v),b=e=>{var r=Sl(),i=F(r,!0);R(e=>G(i,e),[()=>(H(ec),n(),B(t),V(()=>ec(n(),B(t).status)))]),W(e,r)},x=_t(()=>(B(t),H(ec),n(),V(()=>`status`in B(t)&&ec(n(),B(t).status))));K(y,e=>{B(x)&&e(b)}),D(_),D(r),R((e,t,n,r,i)=>{G(a,e),G(u,`${t??``} · ${n??``}`),G(f,r),G(v,i)},[()=>(H($s),n(),B(t),V(()=>$s(n(),B(t).permission))),()=>(H(Qs),n(),B(t),V(()=>Qs(n(),B(t).scope))),()=>(H(Qs),n(),B(t),V(()=>Qs(n(),B(t).applicability))),()=>(H(_l),n(),B(t),V(()=>_l(n(),B(t).reason))),()=>(H(Qs),n(),B(t),V(()=>Qs(n(),B(t).level)))]),W(e,r)}),D(c);var l=F(I(c,2),!0);D(t),R((e,t,n,r)=>{G(i,`${e??``} ${t??``}`),G(s,n),G(l,r)},[()=>(H(a()),H(Z),n(),V(()=>a().permissions.role===`setup`?Z(`setupPat`,n()):Z(`botPat`,n()))),()=>(H(Z),n(),V(()=>Z(`access`,n()))),()=>(H(a()),H(Z),n(),V(()=>a().permissions.report?Z(`readOnlyCheck`,n()):Z(`provisionalGrants`,n()))),()=>(H(Z),n(),V(()=>Z(`conditionalGrants`,n())))]),W(e,t)},g=e=>{var t=Tl(),r=I(N(t)),i=F(r,!0),a=F(I(r),!0);D(t),R((e,t)=>{G(i,e),G(a,t)},[()=>(H(Z),n(),V(()=>Z(`permissionsFollow`,n()))),()=>(H(Z),n(),V(()=>Z(`permissionsFollowBody`,n())))]),W(e,t)};K(m,e=>{H(a()),V(()=>a().permissions)?e(h):e(g,-1)}),D(o),R((e,t,n)=>{Y(o,`aria-label`,e),G(l,t),G(d,n),G(p,(H(a()),V(()=>a().batch?.organization??a().repository)))},[()=>(H(Z),n(),V(()=>Z(`setup`,n()))),()=>(H(Z),H(a()),n(),V(()=>Z(a().batch?`batchFocusTitle`:`repoFocus`,n()))),()=>(H(a()),H(Z),n(),V(()=>a().batch?Z(`batchFocusBody`,n(),{count:String(a().batch.targets.length)}):Z(`repoFocusBody`,n())))]),W(e,o),Je(),i()}function Ol(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=X(t,`report`,8,void 0);Ai();var o=Nr(),s=P(o),c=e=>{{let t=k(()=>(H(Z),n(),V(()=>Z(`permissionSecretCollision`,n())))),r=k(()=>(H(Z),n(),V(()=>Z(`permissionSecretCollisionAction`,n()))));Xa(e,{tone:`warning`,get title(){return B(t)},get message(){return B(r)}})}},l=_t(()=>(H(a()),V(()=>a()?.checks.some(e=>e.incident===`secret-collision`)))),u=e=>{{let t=k(()=>(H(Z),n(),V(()=>Z(`permissionProbeCleanupPending`,n())))),r=k(()=>(H(Z),n(),V(()=>Z(`permissionProbeCleanupAction`,n()))));Xa(e,{tone:`warning`,get title(){return B(t)},get message(){return B(r)}})}},d=_t(()=>(H(a()),V(()=>a()?.checks.some(e=>e.cleanupPending))));K(s,e=>{B(l)?e(c):B(d)&&e(u,1)}),W(e,o),Je(),i()}var kl=U(`
                                              • `),Al=U(`

                                                  `);function jl(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=X(t,`effects`,8),o={files:`receiptFiles`,secrets:`receiptSecrets`,labels:`receiptLabels`,"issue-types":`receiptIssueTypes`,variables:`receiptVariables`,"initial-tag":`receiptInitialTag`},s={completed:`effectCompleted`,skipped:`effectSkipped`,"needs-inspection":`effectInspect`,"not-started":`effectNotStarted`,"in-progress":`effectInProgress`},c={local:`scopeLocal`,repository:`scopeRepository`,organization:`scopeOrganization`,mixed:`scopeMixed`};Ai();var l=Al(),u=N(l),d=F(u,!0),f=I(u,2);J(f,5,a,e=>e.id,(e,t)=>{var r=kl(),i=N(r),a=F(i,!0),l=I(i),u=I(l),d=e=>{var r=Mr();R(e=>G(r,`· ${e??``}`),[()=>(H(Z),B(t),n(),V(()=>Z(c[B(t).scope],n())))]),W(e,r)};K(u,e=>{B(t),V(()=>B(t).scope)&&e(d)}),D(r),R((e,t)=>{G(a,e),G(l,` — ${t??``}`)},[()=>(B(t),H(Z),n(),V(()=>o[B(t).id]?Z(o[B(t).id],n()):B(t).id)),()=>(H(Z),B(t),n(),V(()=>Z(s[B(t).state],n())))]),W(e,r)}),D(f),D(l),R(e=>G(d,e),[()=>(H(Z),n(),V(()=>Z(`resourceReceipt`,n())))]),W(e,l),Je(),i()}var Ml=U(`
                                                • `),Nl=U(`

                                                    `,1),Pl=U(`

                                                    `);function Fl(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=X(t,`correction`,8);Ai();var o=Pl(),s=N(o),c=F(s,!0),l=I(s,2),u=F(l,!0),d=I(l,2),f=e=>{var t=Nl(),r=P(t),i=F(N(r));D(r);var o=I(r,2);J(o,5,()=>(H(a()),V(()=>a().addedGrants)),q,(e,t)=>{var n=Ml(),r=F(N(n),!0);D(n),R(()=>G(r,B(t))),W(e,n)}),D(o),R(e=>G(i,`${e??``}:`),[()=>(H(Z),n(),V(()=>Z(`updatedSetupPatGrants`,n())))]),W(e,t)};K(d,e=>{H(a()),V(()=>a().stage===`final`&&a().addedGrants.length)&&e(f)});var p=I(d,2),m=F(p);D(o),R((e,t,n,r)=>{Y(o,`aria-label`,e),G(c,t),G(u,n),Y(p,`href`,(H(a()),V(()=>a().url))),G(m,`${r??``} ↗`)},[()=>(H(Z),n(),V(()=>Z(`updatedSetupPatTitle`,n()))),()=>(H(Z),n(),V(()=>Z(`updatedSetupPatTitle`,n()))),()=>(H(Z),n(),V(()=>Z(`updatedSetupPatBody`,n()))),()=>(H(Z),n(),V(()=>Z(`updatedSetupPatLink`,n())))]),W(e,o),Je(),i()}var Il=U(`

                                                    `),Ll=U(`

                                                    `),Rl=U(`

                                                    `),zl=U(` `),Bl=U(`

                                                    `),Vl=U(`
                                                  • `),Hl=U(`
                                                      `),Ul=U(`

                                                      `),Wl=U(`
                                                      `),Gl=U(`copilot doctor --read-only`),Kl=U(`

                                                      `);function ql(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=j(),o=j(),s=j(),c=j(),l=j(),u=j(),d=j(),f=j(),p=j(),m=X(t,`management`,8,!1),h=X(t,`batch`,8,!1),g=X(t,`outcome`,8),_=X(t,`controller`,8),v=X(t,`onClose`,8),y=X(t,`onDoctor`,8,async()=>void 0),b=X(t,`doctor`,8,void 0),x=X(t,`detail`,8,void 0),S=X(t,`permissionReport`,8,void 0),C=X(t,`setupPatCorrection`,8,void 0),w={permissions:[`reasonPermissions`,`nextPermissions`],storage:[`reasonStorage`,`nextStorage`],configuration:[`reasonConfiguration`,`nextConfiguration`],"session-expired":[`reasonExpired`,`nextExpired`],cancelled:[`reasonCancelled`,`nextCancelled`],provider:[`reasonProvider`,`nextProvider`],"rate-limit":[`reasonRateLimit`,`nextRateLimit`],unknown:[`reasonUnknown`,`nextUnknown`]};L(()=>H(x()),()=>{M(a,x()?.effects?.some(e=>e.state===`completed`)===!0)}),L(()=>(H(h()),n(),H(m()),H(g()),B(a)),()=>{M(o,h()?Z(`batchNextActions`,n()):m()?ta(n())[g()===`complete`&&B(a)?`finished`:g()===`partial`?`inspectAdjustment`:g()===`complete`?`inspectionFinished`:`inspectionStopped`]:g()===`complete`?Z(`resultApplied`,n()):g()===`dry-run`?Z(`resultNoChanges`,n()):g()===`cancelled`||g()===`blocked`?Z(`resultStopped`,n()):Z(`resultPartial`,n()))}),L(()=>(H(h()),n(),H(m()),H(g()),B(a)),()=>{M(s,h()?Z(`batchResultBody`,n()):m()?ta(n())[g()===`complete`&&B(a)?`finishedBody`:g()===`partial`?`partial`:`inspectionBody`]:g()===`complete`?Z(`resultCompleteBody`,n()):g()===`partial`?Z(`resultPartialBody`,n()):Z(`resultNoChangesBody`,n()))}),L(()=>(H(g()),H(x()),H(S())),()=>{M(c,(g()===`blocked`||g()===`partial`)&&x()?.reasonCode===`permissions`?S():void 0)}),L(()=>B(c),()=>{M(l,B(c)?.checks.some(e=>e.cleanupPending===!0)===!0)}),L(()=>B(c),()=>{M(u,B(c)?.checks.some(e=>e.incident===`secret-collision`)===!0)}),L(()=>(B(c),H(x())),()=>{M(d,B(c)?.role===`workflow`?`reasonWorkflowPermissions`:w[x()?.reasonCode??`unknown`][0])}),L(()=>(H(g()),H(h()),H(x()),B(l),B(u),H(C())),()=>{M(f,(g()===`blocked`||h()&&g()===`partial`)&&x()?.reasonCode===`permissions`&&(h()||x().mutationStarted===!1)&&!B(l)&&!B(u)&&C())}),L(()=>B(c),()=>{M(p,B(c)?B(c).checks.filter(e=>e.applicability===`required`&&e.status!==`verified`&&e.status!==`available`):[])}),En(),Ai();var ee=Kl(),te=N(ee),ne=F(te,!0),re=I(te),ie=F(re,!0),ae=I(re,2),oe=e=>{var t=Rl(),r=N(t),i=N(r),a=F(i),o=I(i);D(r);var s=I(r,2),c=e=>{var t=Il(),r=N(t),i=F(r),a=I(r);D(t),R((e,t)=>{G(i,`${e??``}:`),G(a,` ${t??``}`)},[()=>(H(Z),n(),V(()=>Z(`progress`,n()))),()=>(H(Zi),H(x()),n(),V(()=>Zi(x().stoppedStage,n())))]),W(e,t)};K(s,e=>{H(x()),V(()=>x()?.stoppedStage)&&e(c)});var f=I(s,2),p=N(f),m=F(p),h=I(p);D(f);var _=I(f,2),v=N(_),y=F(v),b=I(v);D(_);var S=I(_,2),C=e=>{var t=Ll(),r=N(t),i=F(r),a=F(I(r,2),!0);D(t),R(e=>{G(i,`${e??``}:`),G(a,(H(x()),V(()=>x().diagnosticRef)))},[()=>(H(Z),n(),V(()=>Z(`diagnosticReference`,n())))]),W(e,t)};K(S,e=>{H(x()),V(()=>x()?.diagnosticRef)&&e(C)}),D(t),R((e,t,n,r,i,s)=>{G(a,`${e??``}:`),G(o,` ${t??``}`),G(m,`${n??``}:`),G(h,` ${r??``}`),G(y,`${i??``}:`),G(b,` ${s??``}`)},[()=>(H(Z),n(),V(()=>Z(`whatHappened`,n()))),()=>(H(Z),B(d),n(),V(()=>Z(B(d),n()))),()=>(H(Z),n(),V(()=>Z(`alreadyChanged`,n()))),()=>(B(u),H(Z),n(),B(l),H(x()),H(g()),V(()=>B(u)?Z(`permissionSecretCollision`,n()):B(l)?Z(`permissionProbeCleanupPending`,n()):x()?.mutationStarted||g()===`partial`?Z(`inspectPartial`,n()):Z(`noChanges`,n()))),()=>(H(Z),n(),V(()=>Z(`nextAction`,n()))),()=>(B(u),H(Z),n(),B(l),H(g()),H(x()),V(()=>B(u)?Z(`permissionSecretCollisionAction`,n()):B(l)?Z(`permissionProbeCleanupAction`,n()):g()===`partial`?`${Z(`inspectPartial`,n())} ${Z(w[x()?.reasonCode??`unknown`][1],n())}`:Z(w[x()?.reasonCode??`unknown`][1],n())))]),W(e,t)};K(ae,e=>{(g()===`blocked`||g()===`cancelled`||g()===`partial`)&&e(oe)});var se=I(ae,2),ce=e=>{var t=Ul(),r=N(t),i=F(r,!0),a=I(r,2),o=F(a,!0),s=I(a,2),l=N(s),u=F(l),d=I(l);D(s);var f=I(s,2),m=e=>{var t=Hl();J(t,5,()=>B(p),q,(e,t)=>{var r=Vl(),i=N(r),a=F(i,!0),o=I(i),s=e=>{var n=zl(),r=F(N(n));D(n),R(()=>G(r,`GitHub · ${B(t),V(()=>B(t).permission)??``}`)),W(e,n)},l=_t(()=>(n(),H($s),B(t),V(()=>n()!==`en`&&$s(n(),B(t).permission)!==B(t).permission)));K(o,e=>{B(l)&&e(s)});var u=I(o),d=I(u),f=F(d,!0),p=I(d),m=e=>{var r=Bl(),i=F(r,!0);R(e=>G(i,e),[()=>(H(bl),B(t),n(),V(()=>bl(B(t),n())))]),W(e,r)};K(p,e=>{B(c),V(()=>B(c).identityStatus===`valid`)&&e(m)}),D(r),R((e,t,n,r)=>{G(a,e),G(u,` — ${t??``} · ${n??``} · `),G(f,r)},[()=>(H($s),n(),B(t),V(()=>$s(n(),B(t).permission))),()=>(H(Qs),n(),B(t),V(()=>Qs(n(),B(t).scope))),()=>(H(Qs),n(),B(t),V(()=>Qs(n(),B(t).level))),()=>(B(c),H(Qs),n(),B(t),H(Z),V(()=>B(c).identityStatus===`valid`?Qs(n(),B(t).status):Z(`permissionGrantNotChecked`,n())))]),W(e,r)}),D(t),W(e,t)},h=e=>{var t=Bl(),r=F(t,!0);R(e=>G(r,e),[()=>(H(Z),n(),V(()=>Z(`permissionReportNoFailedGrant`,n())))]),W(e,t)};K(f,e=>{B(p),V(()=>B(p).length)?e(m):(B(c),V(()=>B(c).identityStatus===`valid`)&&e(h,1))}),D(t),R((e,n,r,a,s)=>{Y(t,`aria-label`,e),G(i,n),G(o,r),G(u,`${a??``}:`),G(d,` ${s??``}`)},[()=>(H(Z),n(),V(()=>Z(`permissionReportTitle`,n()))),()=>(H(Z),n(),V(()=>Z(`permissionReportTitle`,n()))),()=>(H(Z),n(),V(()=>Z(`permissionReportLead`,n()))),()=>(H(Z),n(),V(()=>Z(`permissionIdentity`,n()))),()=>(H(Z),B(c),n(),V(()=>Z(B(c).identityStatus===`valid`?`permissionIdentityValid`:B(c).identityStatus===`invalid`?`permissionIdentityInvalid`:`permissionIdentityUnknown`,n())))]),W(e,t)};K(se,e=>{B(c)&&e(ce)});var le=I(se,2),ue=e=>{jl(e,{get effects(){return H(x()),V(()=>x().effects)}})};K(le,e=>{H(x()),V(()=>x()?.effects?.length)&&e(ue)});var de=I(le,2),fe=e=>{Fl(e,{get correction(){return C()}})};K(de,e=>{B(f)&&C()&&e(fe)});var pe=I(de,2),me=F(pe,!0),he=I(pe,2),ge=e=>{var t=Bl(),r=F(t,!0);R(e=>G(r,e),[()=>(H(Z),n(),V(()=>Z(`batchCleanup`,n())))]),W(e,t)};K(he,e=>{h()&&e(ge)});var _e=I(he,2),ve=e=>{var t=Bl(),r=F(t,!0);R(e=>G(r,e),[()=>(H(Z),n(),V(()=>Z(`botRenewal`,n())))]),W(e,t)};K(_e,e=>{g()===`complete`&&!m()&&!h()&&e(ve)});var ye=I(_e,2),be=e=>{var t=Bl(),r=F(t,!0);R(e=>G(r,e),[()=>(H(Z),n(),V(()=>Z(`doctorHelp`,n())))]),W(e,t)};K(ye,e=>{!m()&&!h()&&e(be)});var xe=I(ye,2),Se=e=>{var t=Wl(),r=N(t),i=e=>{var t=Bl(),r=F(t,!0);R(e=>G(r,e),[()=>(H(Z),n(),V(()=>Z(`doctorRunning`,n())))]),W(e,t)},a=e=>{var t=Bl(),r=F(t);R((e,t,n)=>G(r,`${e??``} ${t??``} ${n??``}`),[()=>(H(Z),H(b()),n(),V(()=>Z(b().healthy?`doctorPassed`:`doctorWarnings`,n()))),()=>(H(Z),n(),H(b()),V(()=>Z(`doctorCounts`,n(),{pass:String(b().pass??0),warn:String(b().warn??0),fail:String(b().fail??0),skipped:String(b().skipped??0)}))),()=>(H(Z),n(),V(()=>Z(`doctorSecretLimit`,n())))]),W(e,t)},o=e=>{var t=Bl(),r=F(t,!0);R(e=>G(r,e),[()=>(H(Z),n(),V(()=>Z(`doctorFailed`,n())))]),W(e,t)};K(r,e=>{H(b()),V(()=>b()?.status===`running`)?e(i):(H(b()),V(()=>b()?.status===`complete`)?e(a,1):(H(b()),V(()=>b()?.status===`failed`)&&e(o,2)))});var s=I(r,2),c=e=>{{let t=k(()=>(H(Z),n(),V(()=>Z(`doctorRun`,n()))));qa(e,{get label(){return B(t)},variant:`secondary`,get onClick(){return y()}})}};K(s,e=>{H(_()),H(b()),V(()=>_()&&b()?.status!==`running`&&b()?.status!==`complete`)&&e(c)}),D(t),W(e,t)};K(xe,e=>{g()===`complete`&&!m()&&!h()&&e(Se)});var Ce=I(xe,2),we=N(Ce),T=F(we,!0),Te=I(we),E=e=>{W(e,Gl())};K(Te,e=>{h()||e(E)}),D(Ce);var Ee=I(Ce),De=e=>{{let t=k(()=>(H(Z),n(),V(()=>Z(`closeSession`,n()))));qa(e,{get label(){return B(t)},get onClick(){return v()}})}};K(Ee,e=>{_()&&e(De)}),D(ee),ri(ee,(e,t)=>ol?.(e,t),()=>1),R((e,t)=>{G(ne,g()===`complete`?`✓`:`!`),G(ie,B(o)),G(me,e),G(T,t)},[()=>(B(u),H(Z),n(),B(l),B(s),V(()=>B(u)?Z(`permissionSecretCollision`,n()):B(l)?Z(`permissionProbeCleanupPending`,n()):B(s))),()=>(H(Z),n(),V(()=>Z(`patSettings`,n())))]),W(e,ee),Je(),i()}var Jl=U(`

                                                      `);function Yl(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=X(t,`effects`,8,void 0);Ai();var o=Jl(),s=I(N(o)),c=F(s,!0),l=I(s),u=F(l,!0),d=I(l),f=e=>{jl(e,{get effects(){return a()}})};K(d,e=>{H(a()),V(()=>a()?.length)&&e(f)}),D(o),R((e,t)=>{G(c,e),G(u,t)},[()=>(H(Z),n(),V(()=>Z(`working`,n()))),()=>(H(Z),n(),V(()=>Z(`workingBody`,n())))]),W(e,o),Je(),i()}var Xl={en:{title:`Checking PAT access`,lead:`Each permission is checked separately. Temporary test resources are removed after verification.`,pending:`Waiting`,checking:`Checking read access`,creating:`Creating temporary resource`,reading:`Reading temporary resource`,deleting:`Removing temporary resource`,verified:`Verified`,failed:`Needs attention`,skipped:`Checked after plan approval if required`},es:{title:`Comprobando el acceso del PAT`,lead:`Cada permiso se comprueba por separado. Los recursos temporales se eliminan tras verificarlos.`,pending:`Pendiente`,checking:`Comprobando lectura`,creating:`Creando recurso temporal`,reading:`Leyendo recurso temporal`,deleting:`Eliminando recurso temporal`,verified:`Verificado`,failed:`Requiere atención`,skipped:`Se comprobará tras aprobar el plan si es necesario`},fr:{title:`Vérification des accès du PAT`,lead:`Chaque permission est vérifiée séparément. Les ressources temporaires sont supprimées après vérification.`,pending:`En attente`,checking:`Vérification de la lecture`,creating:`Création d’une ressource temporaire`,reading:`Lecture de la ressource temporaire`,deleting:`Suppression de la ressource temporaire`,verified:`Vérifié`,failed:`Intervention nécessaire`,skipped:`Vérifiée après approbation du plan si nécessaire`},pt:{title:`A verificar o acesso do PAT`,lead:`Cada permissão é verificada separadamente. Os recursos temporários são removidos após a verificação.`,pending:`Pendente`,checking:`A verificar a leitura`,creating:`A criar recurso temporário`,reading:`A ler recurso temporário`,deleting:`A remover recurso temporário`,verified:`Verificado`,failed:`Requer atenção`,skipped:`Verificada após a aprovação do plano se necessário`}};function Zl(e,t){return Xl[e][t]}var Ql={en:{unavailable:`The check did not complete. Review the terminal result.`,"cleanup-pending":`Cleanup is unresolved; recovery is required before retrying.`,"secret-collision":`GitHub reported an existing Secret at the random test name. Setup stopped; inspect the GitHub Secret audit trail.`,unsupported:`No isolated probe exists for this permission yet.`},es:{unavailable:`La comprobación no terminó. Revisa el resultado en el terminal.`,"cleanup-pending":`La limpieza está pendiente; hay que recuperarla antes de reintentar.`,"secret-collision":`GitHub encontró un Secret existente con el nombre aleatorio de prueba. El setup se detuvo; revisa el historial del Secret.`,unsupported:`Aún no hay una prueba aislada para este permiso.`},fr:{unavailable:`La vérification n’a pas abouti. Consultez le résultat dans le terminal.`,"cleanup-pending":`Le nettoyage reste à terminer avant de réessayer.`,"secret-collision":`GitHub a trouvé un Secret existant sous le nom de test aléatoire. La configuration s’est arrêtée ; consultez l’historique du Secret.`,unsupported:`Aucun test isolé n’existe encore pour cette permission.`},pt:{unavailable:`A verificação não terminou. Consulte o resultado no terminal.`,"cleanup-pending":`A limpeza está pendente; é necessária recuperação antes de tentar novamente.`,"secret-collision":`O GitHub encontrou um Secret existente com o nome aleatório de teste. A configuração parou; consulte o histórico do Secret.`,unsupported:`Ainda não existe um teste isolado para esta permissão.`}},$l={en:{closed:e=>`Temporary Issue #${e} was closed but could not be deleted. Remove it in GitHub before retrying.`,unresolved:e=>`Temporary Issue #${e} could not be deleted or confirmed closed. Inspect it in GitHub before retrying.`},es:{closed:e=>`El Issue temporal #${e} se cerró, pero no se pudo borrar. Elimínalo en GitHub antes de reintentar.`,unresolved:e=>`No se pudo borrar ni confirmar el cierre del Issue temporal #${e}. Revísalo en GitHub antes de reintentar.`},fr:{closed:e=>`L’Issue temporaire n° ${e} a été fermée mais n’a pas pu être supprimée. Supprimez-la dans GitHub avant de réessayer.`,unresolved:e=>`La suppression et la fermeture de l’Issue temporaire n° ${e} n’ont pas pu être confirmées. Vérifiez-la dans GitHub avant de réessayer.`},pt:{closed:e=>`A Issue temporária n.º ${e} foi fechada, mas não pôde ser eliminada. Elimine-a no GitHub antes de tentar novamente.`,unresolved:e=>`Não foi possível eliminar nem confirmar o fecho da Issue temporária n.º ${e}. Verifique-a no GitHub antes de tentar novamente.`}},eu={en:e=>`GitHub HTTP ${e}`,es:e=>`Error HTTP ${e} de GitHub`,fr:e=>`Erreur HTTP ${e} de GitHub`,pt:e=>`Erro HTTP ${e} do GitHub`};function tu(e,t){let n=yl(t,e);if(n)return n;let r=/^issue-(closed|unresolved)-([1-9][0-9]*)$/u.exec(t);return r?$l[e][r[1]](r[2]):/^http-[1-5][0-9]{2}$/u.test(t)?eu[e](t.slice(5)):t===`unavailable`||t===`cleanup-pending`||t===`secret-collision`||t===`unsupported`?Ql[e][t]:Ql[e].unavailable}var nu=U(` `),ru=U(`
                                                    • `),iu=U(`

                                                        `);function au(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=j(),o=X(t,`permissions`,8);function s(e){return o().progress?.filter(t=>t.requirementId===e).at(-1)}L(()=>H(o()),()=>{M(a,o().progress?.at(-1))}),En(),Ai();var c=iu(),l=N(c),u=F(l,!0),d=I(l,2),f=F(d,!0),p=I(d,2),m=N(p),h=e=>{var t=Mr();R((e,n)=>G(t,`${e??``}: ${n??``}`),[()=>(H($s),n(),H(o()),B(a),V(()=>$s(n(),o().requirements?.find(e=>e.id===B(a).requirementId)?.permission??B(a).requirementId))),()=>(H(Zl),n(),B(a),V(()=>Zl(n(),B(a).phase)))]),W(e,t)};K(m,e=>{B(a)&&e(h)}),D(p);var g=I(p,2);J(g,5,()=>(H(o()),V(()=>o().requirements??[])),e=>e.id,(e,t)=>{let r=k(()=>(B(t),V(()=>s(B(t).id))));var i=ru();let a;var o=N(i),c=F(o,!0),l=I(o,2),u=N(l),d=F(u,!0),f=I(u),p=F(f),m=I(f),h=e=>{var t=nu(),i=F(t,!0);R(e=>G(i,e),[()=>(H(tu),n(),H(B(r)),V(()=>tu(n(),B(r).detail)))]),W(e,t)};K(m,e=>{H(B(r)),V(()=>B(r)?.phase===`failed`&&B(r).detail)&&e(h)}),D(l);var g=F(I(l,2),!0);D(i),R((e,t,n,o)=>{a=li(i,1,``,null,a,{"permission-progress-done":B(r)?.phase===`verified`,"permission-progress-failed":B(r)?.phase===`failed`}),G(c,(H(B(r)),V(()=>B(r)?.phase===`verified`?`✓`:B(r)?.phase===`failed`?`!`:B(r)?`◌`:`·`))),G(d,e),G(p,`${t??``} · ${n??``}`),G(g,o)},[()=>(H($s),n(),B(t),V(()=>$s(n(),B(t).permission))),()=>(H(Qs),n(),B(t),V(()=>Qs(n(),B(t).scope))),()=>(H(Qs),n(),B(t),V(()=>Qs(n(),B(t).level))),()=>(H(Zl),n(),H(B(r)),V(()=>Zl(n(),B(r)?.phase??`pending`)))]),W(e,i)}),D(g),D(c),R((e,t)=>{G(u,e),G(f,t)},[()=>(H(Zl),n(),V(()=>Zl(n(),`title`))),()=>(H(Zl),n(),V(()=>Zl(n(),`lead`)))]),W(e,c),Je(),i()}function ou(e,t){return!t&&/^[A-Fa-f0-9]{16}$/u.test(e.trim())}var su=U(`

                                                        `);function cu(e,t){O(t,!1);let n=()=>Ri(Q,`$setupLocale`,r),[r,i]=zi(),a=X(t,`busy`,8),o=X(t,`onPair`,8),s=X(t,`mode`,8,`pair`),c=j(``),l=j();async function u(){if(!ou(B(c),a()))return;let e=B(c).trim();M(c,``),await o()(e),await mr(),B(l)?.isConnected&&!B(l).disabled&&B(l).focus()}Ai();var d=su(),f=N(d),p=F(N(f),!0);D(f);var m=I(f,2),h=F(N(m),!0);D(m);var g=I(m,2),_=F(g,!0),v=I(g,2),y=N(v),b=F(y,!0),x=I(y,2);bi(x),ki(x,e=>M(l,e),()=>B(l));var S=I(x,2),C=F(S,!0),w=I(S,2),ee=N(w);{let e=k(()=>(H(Z),H(s()),n(),V(()=>Z(s()===`pair`?`pairButton`:`takeOver`,n())))),t=k(()=>(H(ou),B(c),H(a()),V(()=>!ou(B(c),a()))));qa(ee,{get label(){return B(e)},arrow:!0,onClick:u,get disabled(){return B(t)}})}D(w),D(v),D(d),R((e,t,n,r,i,o,s)=>{Y(d,`aria-label`,e),G(p,t),G(h,n),G(_,r),G(b,i),x.disabled=a(),Y(x,`placeholder`,o),G(C,s)},[()=>(H(Z),H(s()),n(),V(()=>Z(s()===`pair`?`pairTitle`:`takeOver`,n()))),()=>(H(Z),n(),V(()=>Z(`privateSession`,n()))),()=>(H(Z),H(s()),n(),V(()=>Z(s()===`pair`?`pairTitle`:`takeOver`,n()))),()=>(H(Z),H(s()),n(),V(()=>Z(s()===`pair`?`pairBody`:`readOnlyBody`,n()))),()=>(H(Z),n(),V(()=>Z(`pairLabel`,n()))),()=>(H(Z),n(),V(()=>Z(`pairPlaceholder`,n()))),()=>(H(Z),n(),V(()=>Z(`pairHelp`,n())))]),Sr(`submit`,v,e=>{e.preventDefault(),u()}),Ti(x,()=>B(c),e=>M(c,e)),W(e,d),Je(),i()}var lu={"Could not close the local session. Check the terminal before trying again.":`The local session could not be confirmed closed. The result is retained. Check the terminal before trying again.`,"The local setup session is unavailable.":`The local setup session is unavailable. Check the terminal; you may need to restart setup.`,"Connection lost. The CLI may have stopped. Check the terminal before trying again.":`Connection lost. The CLI may have stopped. Check the terminal before trying again.`,"Could not join this local session.":`Could not join this local session. Check the terminal and pair again.`,"Could not connect to the local setup session. Check the terminal and pair again.":`Could not connect to the local setup session. Check the terminal and pair again.`,"Pairing was rejected.":`Pairing was rejected. Check the code in the launching terminal.`,"Invalid local pairing response.":`The local pairing response was invalid. Restart setup from the terminal.`,"Could not pair this browser.":`Could not pair this browser. Check the terminal and try again.`,"The request was rejected.":`The local request was rejected. Refresh the page and check the terminal.`,"Could not submit this answer.":`Could not submit this answer. Refresh the page and try again.`,"Cancellation failed.":`Cancellation failed. Check whether setup has already started applying before closing.`,"Takeover failed.":`Could not take control. Re-enter the pairing code from the launching terminal.`,"Invalid local host or request context.":`The local request context was rejected. Open the exact URL printed in the terminal.`,"Invalid request origin.":`The request came from another origin. Open the exact local URL printed in the terminal.`,"JSON required.":`The local request format was invalid. Refresh the page and try again.`,"Too many pairing attempts. Restart setup.":`Too many incorrect pairing attempts. Restart setup from the terminal.`,"Too many pairing attempts. Wait 30 seconds and retry.":`Too many incorrect pairing attempts. Wait 30 seconds and try the code again; terminal setup remains available.`,"Incorrect pairing code. Check the terminal.":`Incorrect pairing code. Check the launching terminal.`,"Incorrect pairing code. Check the launching output.":`Incorrect pairing code. Check the launching output.`,"Pair this browser using the code printed by the CLI.":`Pair this browser using the code printed by the CLI.`,"This tab is read-only.":`This tab is read-only. Enter the pairing code again to take control.`,"Invalid answer.":`The answer was invalid. Review the current question and try again.`,"Control moved to another tab.":`Control moved to another tab. This tab is now read-only.`,"This question changed. Refresh the current state.":`This question changed. Refresh the page before answering again.`,"This setup has already started applying or ended.":`Setup has already started applying or ended. Inspect the current result before retrying.`,"Only the controller can close a finished session.":`Only the controlling tab can close this finished session.`,"Method not allowed.":`This local request is not allowed. Refresh the page.`,"Not found.":`The requested local page was not found. Open the URL printed in the terminal.`,"Invalid local request.":`The local request was invalid. Refresh the page and try again.`,"Body too large.":`The submitted answer is too large. Shorten it and try again.`,"JSON object required.":`The local request format was invalid. Refresh the page and try again.`,"Could not retry discovery.":`Could not refresh the GitHub suggestions. Retry or use verified manual entry.`,"Could not return to the previous question.":`Could not return to the previous question. Refresh the page and try again.`,"Invalid question revision.":`The question changed. Refresh the page before going back.`,"No earlier question is available here.":`There is no earlier question in this stage. Continue or return to the plan review.`,"Read-only verification failed.":`Read-only verification failed. Check the terminal and retry once.`,"Read-only verification failed. Check the terminal.":`Read-only verification failed. Check the terminal and retry once.`,"Read-only verification is unavailable or already running.":`Read-only verification is unavailable or already running. Check the current result before retrying.`},uu={en:lu,es:{"Could not close the local session. Check the terminal before trying again.":`No se ha podido confirmar el cierre de la sesión local. El resultado se conserva. Consulta la terminal antes de volver a intentarlo.`,"The local setup session is unavailable.":`La sesión local no está disponible. Revisa la terminal; quizá debas reiniciar la configuración.`,"Connection lost. The CLI may have stopped. Check the terminal before trying again.":`Se perdió la conexión. Es posible que el CLI se haya detenido. Revisa la terminal antes de reintentar.`,"Could not join this local session.":`No se pudo acceder a esta sesión local. Revisa la terminal y vuelve a vincular el navegador.`,"Could not connect to the local setup session. Check the terminal and pair again.":`No se pudo conectar con la sesión local. Revisa la terminal y vuelve a vincular el navegador.`,"Pairing was rejected.":`Se rechazó la vinculación. Comprueba el código en la terminal que inició el proceso.`,"Invalid local pairing response.":`La respuesta de vinculación local no es válida. Reinicia la configuración desde la terminal.`,"Could not pair this browser.":`No se pudo vincular este navegador. Revisa la terminal y vuelve a intentarlo.`,"The request was rejected.":`Se rechazó la petición local. Actualiza la página y revisa la terminal.`,"Could not submit this answer.":`No se pudo enviar la respuesta. Actualiza la página y vuelve a intentarlo.`,"Cancellation failed.":`No se pudo cancelar. Comprueba si ya se han empezado a aplicar cambios antes de cerrar.`,"Takeover failed.":`No se pudo tomar el control. Vuelve a introducir el código de la terminal inicial.`,"Invalid local host or request context.":`Se rechazó el contexto de la petición local. Abre la URL exacta que aparece en la terminal.`,"Invalid request origin.":`La petición llegó desde otro origen. Abre la URL local exacta de la terminal.`,"JSON required.":`El formato de la petición local no es válido. Actualiza la página y reinténtalo.`,"Too many pairing attempts. Restart setup.":`Demasiados intentos de vinculación fallidos. Reinicia la configuración desde la terminal.`,"Too many pairing attempts. Wait 30 seconds and retry.":`Demasiados intentos de vinculación fallidos. Espera 30 segundos y vuelve a probar el código; puedes seguir con el setup en la terminal.`,"Incorrect pairing code. Check the terminal.":`Código de vinculación incorrecto. Comprueba la terminal inicial.`,"Incorrect pairing code. Check the launching output.":`Código de vinculación incorrecto. Comprueba la salida de inicio.`,"Pair this browser using the code printed by the CLI.":`Vincula este navegador con el código mostrado por el CLI.`,"This tab is read-only.":`Esta pestaña es de solo lectura. Introduce otra vez el código para tomar el control.`,"Invalid answer.":`La respuesta no es válida. Revisa la pregunta actual e inténtalo de nuevo.`,"Control moved to another tab.":`El control pasó a otra pestaña. Esta ahora es de solo lectura.`,"This question changed. Refresh the current state.":`La pregunta cambió. Actualiza la página antes de volver a responder.`,"This setup has already started applying or ended.":`La configuración ya empezó a aplicarse o terminó. Revisa el resultado antes de reintentar.`,"Only the controller can close a finished session.":`Solo la pestaña que tiene el control puede cerrar esta sesión finalizada.`,"Method not allowed.":`Esta petición local no está permitida. Actualiza la página.`,"Not found.":`No se encontró la página local solicitada. Abre la URL de la terminal.`,"Invalid local request.":`La petición local no es válida. Actualiza la página y reinténtalo.`,"Body too large.":`La respuesta enviada es demasiado larga. Acórtala y reinténtalo.`,"JSON object required.":`El formato de la petición local no es válido. Actualiza la página y reinténtalo.`,"Could not retry discovery.":`No se pudieron actualizar las sugerencias de GitHub. Reinténtalo o introduce datos verificados manualmente.`,"Could not return to the previous question.":`No se pudo volver a la pregunta anterior. Actualiza la página y reinténtalo.`,"Invalid question revision.":`La pregunta cambió. Actualiza la página antes de volver atrás.`,"No earlier question is available here.":`No hay una pregunta anterior en esta etapa. Continúa o vuelve a revisar el plan.`,"Read-only verification failed.":`Falló la comprobación de solo lectura. Revisa la terminal y vuelve a intentarlo una vez.`,"Read-only verification failed. Check the terminal.":`Falló la comprobación de solo lectura. Revisa la terminal y vuelve a intentarlo una vez.`,"Read-only verification is unavailable or already running.":`La comprobación de solo lectura no está disponible o ya se está ejecutando. Revisa el resultado antes de reintentar.`},fr:{"Could not close the local session. Check the terminal before trying again.":`La fermeture de la session locale n’a pas pu être confirmée. Le résultat est conservé. Consultez le terminal avant de réessayer.`,"The local setup session is unavailable.":`La session locale est indisponible. Vérifiez le terminal ; vous devrez peut-être relancer la configuration.`,"Connection lost. The CLI may have stopped. Check the terminal before trying again.":`Connexion perdue. Le CLI s’est peut-être arrêté. Vérifiez le terminal avant de réessayer.`,"Could not join this local session.":`Impossible de rejoindre cette session locale. Vérifiez le terminal et associez de nouveau le navigateur.`,"Could not connect to the local setup session. Check the terminal and pair again.":`Impossible de se connecter à la session locale. Vérifiez le terminal et associez de nouveau le navigateur.`,"Pairing was rejected.":`L’association a été refusée. Vérifiez le code dans le terminal de lancement.`,"Invalid local pairing response.":`La réponse d’association locale est invalide. Relancez la configuration depuis le terminal.`,"Could not pair this browser.":`Impossible d’associer ce navigateur. Vérifiez le terminal et réessayez.`,"The request was rejected.":`La demande locale a été refusée. Actualisez la page et vérifiez le terminal.`,"Could not submit this answer.":`Impossible d’envoyer cette réponse. Actualisez la page et réessayez.`,"Cancellation failed.":`Annulation impossible. Vérifiez si des changements ont déjà commencé avant de fermer.`,"Takeover failed.":`Impossible de prendre le contrôle. Ressaisissez le code du terminal de lancement.`,"Invalid local host or request context.":`Le contexte de la demande locale a été refusé. Ouvrez l’URL exacte affichée dans le terminal.`,"Invalid request origin.":`La demande vient d’une autre origine. Ouvrez l’URL locale exacte du terminal.`,"JSON required.":`Le format de la demande locale est invalide. Actualisez la page et réessayez.`,"Too many pairing attempts. Restart setup.":`Trop de tentatives d’association incorrectes. Relancez la configuration depuis le terminal.`,"Too many pairing attempts. Wait 30 seconds and retry.":`Trop de tentatives d’association incorrectes. Attendez 30 secondes puis ressaisissez le code ; la configuration par terminal reste disponible.`,"Incorrect pairing code. Check the terminal.":`Code d’association incorrect. Vérifiez le terminal de lancement.`,"Incorrect pairing code. Check the launching output.":`Code d’association incorrect. Vérifiez la sortie de lancement.`,"Pair this browser using the code printed by the CLI.":`Associez ce navigateur avec le code affiché par le CLI.`,"This tab is read-only.":`Cet onglet est en lecture seule. Ressaisissez le code pour prendre le contrôle.`,"Invalid answer.":`La réponse est invalide. Revoyez la question actuelle et réessayez.`,"Control moved to another tab.":`Le contrôle est passé à un autre onglet. Celui-ci est maintenant en lecture seule.`,"This question changed. Refresh the current state.":`La question a changé. Actualisez la page avant de répondre de nouveau.`,"This setup has already started applying or ended.":`La configuration est déjà en cours d’application ou terminée. Inspectez le résultat avant de réessayer.`,"Only the controller can close a finished session.":`Seul l’onglet qui détient le contrôle peut fermer cette session terminée.`,"Method not allowed.":`Cette demande locale n’est pas autorisée. Actualisez la page.`,"Not found.":`La page locale demandée est introuvable. Ouvrez l’URL affichée dans le terminal.`,"Invalid local request.":`La demande locale est invalide. Actualisez la page et réessayez.`,"Body too large.":`La réponse envoyée est trop longue. Raccourcissez-la et réessayez.`,"JSON object required.":`Le format de la demande locale est invalide. Actualisez la page et réessayez.`,"Could not retry discovery.":`Impossible d’actualiser les suggestions GitHub. Réessayez ou saisissez des données vérifiées manuellement.`,"Could not return to the previous question.":`Impossible de revenir à la question précédente. Actualisez la page et réessayez.`,"Invalid question revision.":`La question a changé. Actualisez la page avant de revenir en arrière.`,"No earlier question is available here.":`Il n’y a pas de question précédente à cette étape. Continuez ou revenez à la révision du plan.`,"Read-only verification failed.":`La vérification en lecture seule a échoué. Consultez le terminal et réessayez une fois.`,"Read-only verification failed. Check the terminal.":`La vérification en lecture seule a échoué. Consultez le terminal et réessayez une fois.`,"Read-only verification is unavailable or already running.":`La vérification en lecture seule est indisponible ou déjà en cours. Consultez le résultat avant de réessayer.`},pt:{"Could not close the local session. Check the terminal before trying again.":`Não foi possível confirmar o encerramento da sessão local. O resultado foi preservado. Consulte o terminal antes de tentar novamente.`,"The local setup session is unavailable.":`A sessão local não está disponível. Verifique o terminal; poderá ter de reiniciar a configuração.`,"Connection lost. The CLI may have stopped. Check the terminal before trying again.":`Ligação perdida. O CLI pode ter parado. Verifique o terminal antes de tentar novamente.`,"Could not join this local session.":`Não foi possível entrar nesta sessão local. Verifique o terminal e volte a emparelhar o navegador.`,"Could not connect to the local setup session. Check the terminal and pair again.":`Não foi possível ligar à sessão local. Verifique o terminal e volte a emparelhar o navegador.`,"Pairing was rejected.":`O emparelhamento foi recusado. Confirme o código no terminal de lançamento.`,"Invalid local pairing response.":`A resposta de emparelhamento local é inválida. Reinicie a configuração a partir do terminal.`,"Could not pair this browser.":`Não foi possível emparelhar este navegador. Verifique o terminal e tente novamente.`,"The request was rejected.":`O pedido local foi recusado. Atualize a página e verifique o terminal.`,"Could not submit this answer.":`Não foi possível enviar a resposta. Atualize a página e tente novamente.`,"Cancellation failed.":`Não foi possível cancelar. Confirme se a aplicação das alterações já começou antes de fechar.`,"Takeover failed.":`Não foi possível assumir o controlo. Volte a introduzir o código do terminal de lançamento.`,"Invalid local host or request context.":`O contexto do pedido local foi recusado. Abra o URL exato apresentado no terminal.`,"Invalid request origin.":`O pedido veio de outra origem. Abra o URL local exato do terminal.`,"JSON required.":`O formato do pedido local é inválido. Atualize a página e tente novamente.`,"Too many pairing attempts. Restart setup.":`Demasiadas tentativas incorretas de emparelhamento. Reinicie a configuração no terminal.`,"Too many pairing attempts. Wait 30 seconds and retry.":`Demasiadas tentativas incorretas de emparelhamento. Aguarde 30 segundos e volte a introduzir o código; a configuração no terminal continua disponível.`,"Incorrect pairing code. Check the terminal.":`Código de emparelhamento incorreto. Verifique o terminal de lançamento.`,"Incorrect pairing code. Check the launching output.":`Código de emparelhamento incorreto. Verifique a saída de lançamento.`,"Pair this browser using the code printed by the CLI.":`Emparelhe este navegador com o código apresentado pelo CLI.`,"This tab is read-only.":`Este separador é apenas de leitura. Reintroduza o código para assumir o controlo.`,"Invalid answer.":`A resposta é inválida. Reveja a pergunta atual e tente novamente.`,"Control moved to another tab.":`O controlo passou para outro separador. Este é agora apenas de leitura.`,"This question changed. Refresh the current state.":`A pergunta mudou. Atualize a página antes de voltar a responder.`,"This setup has already started applying or ended.":`A configuração já começou a ser aplicada ou terminou. Inspecione o resultado antes de tentar novamente.`,"Only the controller can close a finished session.":`Só o separador que detém o controlo pode fechar esta sessão terminada.`,"Method not allowed.":`Este pedido local não é permitido. Atualize a página.`,"Not found.":`A página local pedida não foi encontrada. Abra o URL apresentado no terminal.`,"Invalid local request.":`O pedido local é inválido. Atualize a página e tente novamente.`,"Body too large.":`A resposta enviada é demasiado longa. Encurte-a e tente novamente.`,"JSON object required.":`O formato do pedido local é inválido. Atualize a página e tente novamente.`,"Could not retry discovery.":`Não foi possível atualizar as sugestões do GitHub. Tente novamente ou introduza dados verificados manualmente.`,"Could not return to the previous question.":`Não foi possível voltar à pergunta anterior. Atualize a página e tente novamente.`,"Invalid question revision.":`A pergunta mudou. Atualize a página antes de voltar atrás.`,"No earlier question is available here.":`Não há uma pergunta anterior nesta etapa. Continue ou volte à revisão do plano.`,"Read-only verification failed.":`A verificação só de leitura falhou. Consulte o terminal e tente mais uma vez.`,"Read-only verification failed. Check the terminal.":`A verificação só de leitura falhou. Consulte o terminal e tente mais uma vez.`,"Read-only verification is unavailable or already running.":`A verificação só de leitura não está disponível ou já está em curso. Consulte o resultado antes de tentar novamente.`}};function du(e,t){let n=uu[t]??lu;return Object.prototype.hasOwnProperty.call(n,e)?n[e]:Z(`unknownLocalError`,t)}var fu=U(`
                                                        `),pu=U(`
                                                        `),mu=U(` `,1),hu=U(``),gu=U(`
                                                        `,1),_u=U(`
                                                        `);function vu(e,t){O(t,!1);let n=()=>Ri(o,`$session`,i),r=()=>Ri(Q,`$setupLocale`,i),[i,a]=zi(),o=Hi();Gr(()=>{let e=Q.subscribe(e=>{document.documentElement.lang=e,document.documentElement.dir=`ltr`,document.title=`Copilot · ${Z(`studio`,e)}`}),t=window.setInterval(()=>{n().paired&&!n().closed&&!n().view?.outcome&&o.poll()},900);return()=>{window.clearInterval(t),e()}});async function s(){window.confirm(Z(n().view?.batch?.phase===`applying`?`batchStopConfirm`:`cancelConfirm`,r()))&&await o.cancel()}async function c(e){let t=n().view?.promptRevision;t!==void 0&&await o.submit(t,e)}async function l(){let e=n().view?.promptRevision;e!==void 0&&await o.retryDiscovery(e)}async function u(){let e=n().view?.promptRevision;e!==void 0&&await o.back(e)}Ai();var d=_u(),f=N(d);{let e=k(()=>n().view?.journey),t=k(()=>n().view?.surface===`management`);la(f,{get journey(){return B(e)},get management(){return B(t)}})}var p=I(f,2),m=N(p);{let e=k(()=>n().view?.repository),t=k(()=>n().closed===!0);_a(m,{get repository(){return B(e)},get closed(){return B(t)}})}var h=I(m,2),g=N(h),_=e=>{{let t=k(()=>Z(`translationPreviewTitle`,r())),n=k(()=>Z(`translationPreviewBody`,r()));Xa(e,{tone:`warning`,get title(){return B(t)},get message(){return B(n)}})}};K(g,e=>{r()!==`en`&&e(_)});var v=I(g,2),y=e=>{za(e,{get view(){return n().view}})};K(v,e=>{n().paired&&n().view?.surface!==`management`&&e(y)});var b=I(v,2),x=e=>{var t=fu(),i=I(N(t));D(t),R(e=>G(i,` ${e??``}`),[()=>Z(`reviewPass`,r(),{pass:String(n().view.journey.choiceReviewPass)})]),W(e,t)};K(b,e=>{n().view?.journey?.choiceReviewPass&&n().view.journey.choiceReviewPass>1&&!n().view.outcome&&e(x)});var S=I(b,2),C=e=>{var t=pu(),n=N(t);{let e=k(()=>Z(`sessionClosed`,r())),t=k(()=>Z(`sessionClosedBody`,r()));Xa(n,{tone:`success`,get title(){return B(e)},get message(){return B(t)}})}D(t),ri(t,(e,t)=>ol?.(e,t),()=>1),R(e=>Y(t,`aria-label`,e),[()=>Z(`sessionClosed`,r())]),W(e,t)};K(S,e=>{n().closed&&e(C)});var w=I(S,2),ee=e=>{var t=mu(),i=P(t);{let e=k(()=>Z(`readOnly`,r())),t=k(()=>Z(`readOnlyBody`,r()));Xa(i,{tone:`warning`,get title(){return B(e)},get message(){return B(t)}})}cu(I(i,2),{mode:`takeover`,get busy(){return n().busy},get onPair(){return o.takeOver}}),W(e,t)};K(w,e=>{!n().closed&&!n().controller&&n().view&&e(ee)});var te=I(w,2),ne=e=>{{let t=k(()=>Z(`attention`,r())),i=k(()=>du(n().error,r()));Xa(e,{tone:`error`,get title(){return B(t)},get message(){return B(i)}})}};K(te,e=>{n().error&&e(ne)});var re=I(te,2),ie=e=>{{let t=k(()=>Z(n().view.message.tone===`success`?`checked`:n().view.message.tone===`warning`?`pleaseNote`:n().view.message.tone===`error`?`attention`:`progressUpdate`,r())),i=k(()=>Na(n().view.message,r()));Xa(e,{get tone(){return n().view.message.tone},get title(){return B(t)},get message(){return B(i)},get link(){return n().view.message.link}})}};K(re,e=>{n().view?.message&&!n().view.outcome&&e(ie)});var ae=I(re,2),oe=e=>{{let t=k(()=>n().view.permissions?.report);Ol(e,{get report(){return B(t)}})}};K(ae,e=>{n().view?.batch&&e(oe)});var se=I(ae,2),ce=e=>{cu(e,{get busy(){return n().busy},get onPair(){return o.pair}})},le=e=>{var t=mu(),r=P(t),i=e=>{Kc(e,{get batch(){return n().view.batch},mode:`closed`,get controller(){return n().controller},get busy(){return n().busy}})};K(r,e=>{n().view.batch&&e(i)});var a=I(r,2);{let e=k(()=>!!n().view.batch),t=k(()=>n().view.surface===`management`),r=k(()=>n().view.permissions?.report);ql(a,{get batch(){return B(e)},get management(){return B(t)},get outcome(){return n().view.outcome},get detail(){return n().view.resultDetail},get permissionReport(){return B(r)},get setupPatCorrection(){return n().view.setupPatCorrection},get doctor(){return n().view.doctor},get controller(){return n().controller},get onDoctor(){return o.runDoctor},get onClose(){return o.close}})}W(e,t)},ue=e=>{var t=gu(),i=P(t),a=N(i);ul(a,{get prompt(){return n().view.prompt},get revision(){return n().view.revision},get promptRevision(){return n().view.promptRevision},get controller(){return n().controller},get busy(){return n().busy},onSubmit:c,onRetryDiscovery:l,onBack:u}),Dl(I(a,2),{get view(){return n().view}}),D(i);var o=I(i,2),d=e=>{var t=hu(),i=F(t,!0);R(e=>{t.disabled=n().busy,G(i,e)},[()=>Z(`cancelSetup`,r())]),Cr(`click`,t,s),W(e,t)};K(o,e=>{n().controller&&n().view.journey?.current!==`Apply`&&e(d)}),W(e,t)},de=e=>{var t=mu(),r=P(t);Kc(r,{get batch(){return n().view.batch},mode:`progress`,get controller(){return n().controller},get busy(){return n().busy},onStop:s});var i=I(r,2),a=e=>{au(e,{get permissions(){return n().view.permissions}})};K(i,e=>{n().view.permissions?.progress?.length&&!n().view.permissions.report&&e(a)}),W(e,t)},fe=e=>{au(e,{get permissions(){return n().view.permissions}})},pe=e=>{{let t=k(()=>n().view?.resultDetail?.effects);Yl(e,{get effects(){return B(t)}})}};K(se,e=>{n().paired?n().view?.outcome?e(le,1):n().view?.prompt?e(ue,2):n().view?.batch?e(de,3):n().view?.permissions?.progress?.length&&!n().view.permissions.report?e(fe,4):e(pe,-1):e(ce)});var me=I(se,2),he=N(me),ge=I(he,2),_e=I(ge,2);D(me),D(h),D(p),D(d),R((e,t,n)=>{G(he,`${e??``} `),G(ge,` ${t??``} `),G(_e,` ${n??``}`)},[()=>Z(`footerLocal`,r()),()=>Z(`footerCloud`,r()),()=>Z(`footerGithub`,r())]),W(e,d),Je(),a()}wr([`click`]),Br(vu,{target:document.getElementById(`app`)}); \ No newline at end of file diff --git a/build/web/assets/index-CfyclPC5.css b/build/web/assets/index-CfyclPC5.css new file mode 100644 index 000000000..02b052ce0 --- /dev/null +++ b/build/web/assets/index-CfyclPC5.css @@ -0,0 +1 @@ +.setup-help.svelte-1fzpnf1{margin-bottom:1.5rem}.help-links.svelte-1fzpnf1{flex-wrap:wrap;gap:.5rem 1.25rem;display:flex}a.svelte-1fzpnf1{text-underline-offset:.2em;font-size:.875rem}p.svelte-1fzpnf1{margin:.4rem 0 0;font-size:.8rem}code.svelte-1spw6vv,bdi.svelte-1spw6vv{overflow-wrap:anywhere}.runner-details.svelte-1spw6vv{margin-block:1rem}.installation-review.svelte-44ckab{min-width:0;margin-block:1.25rem}.routes.svelte-44ckab{padding-inline-start:1.25rem}.routes.svelte-44ckab li:where(.svelte-44ckab){padding-block:.5rem}code.svelte-44ckab,pre.svelte-44ckab,bdi.svelte-44ckab{white-space:pre-wrap;overflow-wrap:anywhere}pre.svelte-44ckab{max-height:28rem;padding:.75rem;font-size:.8rem;overflow:auto}details.svelte-44ckab{margin-block:.75rem}.batch-targets.svelte-17t72gm{gap:1rem;margin-block:1rem;display:grid}.batch-target.svelte-17t72gm{border:1px solid var(--line);border-radius:.8rem;min-width:0;padding:1rem}h3.svelte-17t72gm{overflow-wrap:anywhere;margin-top:0}.target-status.svelte-17t72gm{font-weight:600}pre.svelte-17t72gm{max-height:24rem;padding:.75rem;font-size:.78rem;overflow:auto}code.svelte-17t72gm{overflow-wrap:anywhere}details.svelte-17t72gm{margin-block:.75rem}.batch-buttons.svelte-17t72gm{flex-wrap:wrap;gap:.75rem;display:flex}.batch-technical.svelte-17t72gm{margin-top:1.25rem}fieldset.svelte-1qngno{border:0;min-width:0;margin:1rem 0;padding:0}legend.svelte-1qngno{margin-bottom:.5rem;font-weight:600}.repository-list.svelte-1qngno{gap:.5rem;display:grid}.repository-row.svelte-1qngno{border:1px solid var(--line);border-radius:.75rem;align-items:start;gap:.75rem;padding:.75rem;display:flex}.repository-row.svelte-1qngno input:where(.svelte-1qngno){flex:none;width:auto;margin-top:.25rem}.repository-row.svelte-1qngno span:where(.svelte-1qngno){overflow-wrap:anywhere;min-width:0}.repository-row.svelte-1qngno small:where(.svelte-1qngno){margin-top:.25rem;display:block}.batch-actions.svelte-1qngno{flex-wrap:wrap;align-items:center;gap:.5rem;margin:.75rem 0;display:flex}details.svelte-1qngno{margin:1rem 0}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--page:#f6f8f7;--side:#102423;--side-line:#31504b;--side-text:#e8f5f0;--surface:#fff;--surface-soft:#f3f7f5;--line:#d7e3df;--control-line:#748b82;--text:#18312c;--muted:#58736b;--accent:#176e5e;--accent-strong:#075743;--accent-tint:#dff4e9;--focus:#966000;--warn:#76510d;--warn-bg:#fff6df;--error:#a73434;--error-bg:#fff0ec;--shadow:0 18px 50px #1e403414;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--page:#0d1716;--side:#10201d;--side-line:#294a41;--side-text:#eaf7f1;--surface:#182722;--surface-soft:#20342d;--line:#355247;--control-line:#688f7f;--text:#eaf5ee;--muted:#adccbc;--accent:#7ed6ac;--accent-strong:#a4edc2;--accent-tint:#234b38;--focus:#ffca6a;--warn:#ffdd8a;--warn-bg:#463b21;--error:#ffc0b7;--error-bg:#4a2b2a;--shadow:0 18px 50px #00000024}}:root[data-theme=dark]{--page:#0d1716;--side:#10201d;--side-line:#294a41;--side-text:#eaf7f1;--surface:#182722;--surface-soft:#20342d;--line:#355247;--control-line:#688f7f;--text:#eaf5ee;--muted:#adccbc;--accent:#7ed6ac;--accent-strong:#a4edc2;--accent-tint:#234b38;--focus:#ffca6a;--warn:#ffdd8a;--warn-bg:#463b21;--error:#ffc0b7;--error-bg:#4a2b2a;--shadow:0 18px 50px #00000024}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--page);color:var(--text);margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}a{color:var(--accent-strong);text-underline-offset:3px}.card,.context-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:15px}.primary{border:1px solid var(--accent-strong);background:var(--accent-strong);color:var(--side);border-radius:8px;min-height:43px;padding:12px 18px;font-size:12px;font-weight:800}:root[data-theme=light] .primary,:root:not([data-theme=dark]) .primary{color:#fff}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .primary{color:#0d2419}}.primary span{margin-left:18px}.primary:hover:not(:disabled){filter:brightness(1.1)}.secondary{border:1px solid var(--control-line);color:var(--text);background:var(--surface-soft);border-radius:8px;padding:11px 16px;font-size:12px;font-weight:700}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.shell{grid-template-columns:minmax(250px,288px) minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--side);color:var(--side-text);flex-direction:column;min-height:100vh;padding:34px 28px;display:flex;position:sticky;top:0}.brand{letter-spacing:-.035em;align-items:center;gap:13px;display:flex}.brand-mark{color:#0c3021;background:#75d9a0;border-radius:11px;place-items:center;width:37px;height:37px;font-size:26px;line-height:1;display:grid}.brand strong{font-size:23px;line-height:1;display:block}.brand small{letter-spacing:.23em;color:#aac8bd;margin-top:5px;font-size:9px;font-weight:800;display:block}.rail-caption{color:#9dbab0;letter-spacing:.18em;margin-block:78px 22px;margin-inline-start:7px;font-size:10px;font-weight:800}.sidebar .description{color:#afcabe}.steps{margin:0;padding:0;list-style:none;position:relative}.steps:before{content:"";top:22px;bottom:22px;background:var(--side-line);width:1px;position:absolute;inset-inline-start:19px}.steps li{color:#a6c2b7;border-radius:10px;align-items:center;gap:16px;min-height:55px;padding-block:8px;padding-inline:1px 12px;font-size:13px;font-weight:600;display:flex;position:relative}.steps li.current{color:#fff;background:#25443b}.steps li.completed{color:#dbf2e4}.step-index{border:1px solid var(--side-line);background:var(--side);letter-spacing:.04em;border-radius:50%;flex:0 0 37px;place-items:center;height:37px;font-size:11px;font-weight:800;display:grid}.steps .current .step-index{color:#102b1d;background:#80dba8;border-color:#80dba8}.steps .completed .step-index{color:#b9f8c9;background:#204c37;border-color:#45966b;font-size:15px}.sidebar-note{border:1px solid var(--side-line);background:#ffffff09;border-radius:13px;gap:13px;margin-top:auto;padding:19px 16px;display:flex}.sidebar-note>span{color:#8fe1ae;font-size:20px}.sidebar-note strong{font-size:12px}.sidebar-note p{color:#afcabe;margin:6px 0 0;font-size:11px;line-height:1.6}.main{min-width:0}.topbar{border-bottom:1px solid var(--line);background:var(--surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;min-height:80px;padding:20px clamp(24px,4vw,70px);display:flex}.breadcrumb{flex:240px;align-items:center;gap:12px;min-width:0;font-size:12px;display:flex}.breadcrumb span:first-child{color:var(--muted);letter-spacing:.14em;font-size:10px;font-weight:800}.breadcrumb span:nth-child(2){color:var(--muted)}.breadcrumb strong{white-space:normal;overflow-wrap:anywhere;min-width:0;line-height:1.5}.top-actions{flex-shrink:0;align-items:center;gap:18px;display:flex}.local-pill{color:var(--accent-strong);background:var(--accent-tint);letter-spacing:.08em;white-space:nowrap;border-radius:6px;padding:8px 11px;font-size:10px;font-weight:800}.pulse-dot{background:currentColor;border-radius:50%;width:6px;height:6px;margin-right:5px;display:inline-block}.theme-switch{border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;padding:3px;display:flex}.theme-switch button{color:var(--muted);background:0 0;border:0;border-radius:5px;min-width:31px;height:27px;font-size:11px}.theme-switch button.active{background:var(--surface);color:var(--text);font-weight:800;box-shadow:0 1px 4px #0000001f}.content{max-width:1320px;margin:0 auto;padding:52px clamp(24px,4vw,70px) 35px}.eyebrow{color:var(--accent-strong);letter-spacing:.18em;align-items:center;gap:10px;font-size:10px;font-weight:900;display:flex}.eyebrow-line{background:var(--accent);width:21px;height:2px}.eyebrow-count{color:var(--muted);letter-spacing:.09em;margin-inline-start:8px}h1{letter-spacing:-.045em;max-width:860px;margin:15px 0 13px;font-size:clamp(30px,3vw,45px);line-height:1.15}.lede{color:var(--muted);max-width:700px;margin:0 0 30px;font-size:14px;line-height:1.65}.workspace-grid{grid-template-columns:minmax(0,1.65fr) minmax(230px,.8fr);align-items:start;gap:19px;display:grid}.workspace-grid:has(.plan-review){grid-template-columns:1fr}.workspace-grid:has(.plan-review) .context-column{grid-template-columns:repeat(2,minmax(0,1fr))}.context-column{gap:17px;display:grid}.context-card{box-shadow:none;padding:25px}.context-icon{background:var(--accent-tint);width:32px;height:32px;color:var(--accent-strong);border-radius:8px;place-items:center;font-size:19px;display:grid}.context-card h2{letter-spacing:-.015em;margin:17px 0 7px;font-size:14px}.context-card p,.context-card>small{color:var(--muted);margin:0 0 12px;font-size:12px;line-height:1.65;display:block}.context-card code{background:var(--surface-soft);overflow-wrap:anywhere;border-radius:6px;padding:10px;font-size:11px;display:block}.permissions ul{margin:8px 0 13px;padding:0;list-style:none}.permissions li{border-bottom:1px solid var(--line);justify-content:space-between;gap:10px;padding:9px 0;font-size:11px;display:flex}.permissions li small{color:var(--muted);margin-top:3px;display:block}.permissions li strong{color:var(--accent-strong);text-transform:uppercase;font-size:9px}.permission-progress{padding:clamp(20px,4vw,38px)}.permission-progress h2{margin:0 0 8px}.permission-progress p{color:var(--muted);line-height:1.5}.permission-progress ol{margin:20px 0 0;padding:0;list-style:none}.permission-progress li{border-top:1px solid var(--line);align-items:center;gap:14px;padding:12px 0;display:flex}.permission-progress li>span:nth-child(2){flex:1;min-width:0}.permission-progress li small{color:var(--muted);overflow-wrap:anywhere;display:block}.permission-progress-symbol{background:var(--surface-soft);border-radius:50%;flex:none;place-items:center;width:30px;height:30px;display:grid}.permission-progress-done .permission-progress-symbol{color:var(--accent-strong)}.permission-progress-failed .permission-progress-symbol{color:var(--danger,#a33)}.permission-progress-state{text-align:right;max-width:35%;font-size:.8rem;font-weight:600}@media (width<=600px){.permission-progress li{flex-wrap:wrap;align-items:flex-start}.permission-progress-state{text-align:left;max-width:none;margin-left:44px}}footer{color:var(--muted);opacity:.85;letter-spacing:.11em;margin-top:40px;font-size:9px;font-weight:700}footer span{margin:0 8px}[dir=rtl] .context-card code,[dir=rtl] .result-links code,[dir=rtl] .producer-option strong,[dir=rtl] .producer-option small,[dir=rtl] input[type=password]{direction:ltr;unicode-bidi:isolate}.decision-card{min-height:360px;padding:clamp(25px,3vw,40px)}.card-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:29px;display:flex}.card-kicker{color:var(--accent-strong);letter-spacing:.17em;font-size:10px;font-weight:900}.revision{color:var(--muted);letter-spacing:.08em;font-size:10px}.description{white-space:pre-line;color:var(--muted);margin-top:0;font-size:13px;line-height:1.65}.question-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:15px;display:flex}.question-heading h2,.decision-card>label{margin:0 0 10px;font-size:15px;font-weight:700;line-height:1.4;display:block}.phase-tag{color:var(--accent-strong);background:var(--accent-tint);letter-spacing:.07em;border-radius:5px;padding:6px 8px;font-size:9px;font-weight:900}input[type=text],input[type=password],input[type=number],select{border:1px solid var(--control-line);background:var(--surface-soft);width:100%;min-height:46px;color:var(--text);border-radius:8px;padding:10px 13px}textarea{resize:vertical;border:1px solid var(--control-line);background:var(--surface-soft);width:100%;min-height:120px;color:var(--text);font:inherit;border-radius:8px;padding:12px 13px;line-height:1.5}.language-switch{color:var(--muted);white-space:nowrap;align-items:center;gap:7px;font-size:11px;font-weight:700;display:flex}.language-switch select{width:auto;max-width:140px;min-height:32px;padding:5px 8px;font-size:11px}.question-details{border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;margin-bottom:20px;padding:13px 15px;font-size:12px}.question-details summary{cursor:pointer;color:var(--accent-strong);font-weight:800}.question-details dl{grid-template-columns:minmax(90px,130px) minmax(0,1fr);gap:10px 14px;margin:14px 0 0;line-height:1.55;display:grid}.question-details dt{color:var(--text);font-weight:750}.question-details dd{color:var(--muted);margin:0}.question-help-link{margin:-12px 0 18px;font-size:12px;font-weight:700}.discovery-actions{flex-wrap:wrap;align-items:center;gap:8px 14px;margin:4px 0 16px;display:flex}.discovery-actions .field-help{margin:0}.secondary-button{border:1px solid var(--control-line);background:var(--surface-soft);color:var(--accent-strong);font:inherit;border-radius:8px;padding:9px 13px;font-size:12px;font-weight:750}.secondary-button:hover:not(:disabled),.secondary-button:focus-visible{border-color:var(--accent);background:var(--accent-tint)}.secondary-button:disabled{opacity:.55;cursor:not-allowed}.status-review-list{color:var(--muted);margin:6px 0 18px;padding-inline-start:20px;font-size:12px;line-height:1.7}.status-review-list strong{color:var(--text)}.producer-grid{margin-bottom:20px;padding:6px}.check-option.producer-option{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:16px;padding:14px 16px;display:grid}.producer-option>label{cursor:pointer;align-items:flex-start;gap:12px;min-width:0;display:flex}.producer-option>label>input{flex:0 0 17px;margin:3px 0 0}.producer-option>label>span{overflow-wrap:anywhere;gap:5px;min-width:0;display:grid}.producer-option small{color:var(--muted);font-size:10px;line-height:1.5}.producer-option a{font-size:11px;line-height:1.5}.producer-option>a{max-width:140px}.producer-links{gap:8px;max-width:140px;display:grid}.producer-manual-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.producer-manual-fields>label,.project-manual-field{gap:8px;font-size:12px;font-weight:700;line-height:1.5;display:grid}.producer-manual-fields>label:last-child{grid-column:1/-1}.producer-add{margin-top:16px}.project-manual-field{margin-top:20px}input[type=checkbox]{accent-color:var(--accent);width:17px;height:17px}.field-help{color:var(--muted);margin:14px 0 24px;font-size:12px;line-height:1.6}.segmented{gap:9px;display:flex}.segmented button{border:1px solid var(--control-line);color:var(--text);background:var(--surface-soft);border-radius:8px;flex:1;padding:13px;font-weight:700}.segmented button.selected{border-color:var(--accent);background:var(--accent-tint);color:var(--accent-strong)}.check-grid{gap:10px;display:grid}.check-option{background:var(--surface-soft);border:1px solid var(--control-line);border-radius:7px;align-items:center;gap:10px;padding:10px 13px;font-size:12px;display:flex}.choice-list{gap:9px;display:grid}.choice-card{text-align:left;background:var(--surface-soft);width:100%;min-height:52px;color:var(--text);border:1px solid var(--control-line);border-radius:8px;justify-content:space-between;align-items:center;padding:13px 15px;font-size:13px;font-weight:650;display:flex}.choice-card:hover:not(:disabled){border-color:var(--accent);background:var(--accent-tint)}.github-link{background:var(--accent-tint);border:1px solid var(--accent);border-radius:8px;margin:0 0 12px;padding:14px;font-size:13px;font-weight:800;text-decoration:none;display:block}.github-link span{float:right}.plan-review{gap:24px;font-size:12px;line-height:1.65;display:grid}.plan-review>.description,.plan-review .field-help{margin:0}.plan-sections{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;display:grid}.plan-decisions,.plan-inventory,.plan-warnings{background:var(--surface-soft);border:1px solid var(--line);border-radius:8px;min-width:0;padding:20px}.plan-decisions h3,.plan-warnings h3{margin:0 0 14px;font-size:13px;line-height:1.5}.plan-decisions p{margin:0 0 16px}.plan-decisions>:last-child{margin-bottom:0}.plan-decisions dl{gap:0;margin:0;display:grid}.plan-decisions dl>div{border-bottom:1px solid var(--line);grid-template-columns:minmax(130px,35%) minmax(0,1fr);gap:20px;padding:12px 0;display:grid}.plan-decisions dl>div:first-child{padding-top:0}.plan-decisions dl>div:last-child{border-bottom:0;padding-bottom:0}.plan-decisions dt{color:var(--muted)}.plan-decisions dd{overflow-wrap:anywhere;min-width:0;margin:0}.plan-decisions .field-help{margin-top:20px}.plan-decisions ul,.plan-inventory ul,.plan-warnings ul{overflow-wrap:anywhere;margin:0;padding-inline-start:20px;font-size:12px;line-height:1.7}.plan-decisions li+li,.plan-inventory li+li,.plan-warnings li+li{margin-top:6px}.plan-inventory summary{cursor:pointer;font-size:13px;font-weight:750}.plan-inventory summary span:last-child{float:right;color:var(--accent-strong);margin-inline-start:12px}.plan-inventory[open] summary{margin-bottom:16px}.plan-warnings{color:var(--warn);background:var(--warn-bg)}.plan-edit{border-top:1px solid var(--line);padding-top:24px}.plan-edit h3{margin:0 0 4px;font-size:14px}.plan-edit-actions{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.button-row{flex-wrap:wrap;align-items:center;gap:12px;margin-top:24px;display:flex}.button-row>.primary{margin-left:auto}.plan-review>.button-row{border-top:1px solid var(--line);margin-top:0;padding-top:24px}.review-pass,.banner{white-space:pre-line;border-radius:8px;margin:0 0 20px;padding:14px 18px;font-size:12px;line-height:1.5}.review-pass{color:var(--accent-strong);background:var(--accent-tint);border:1px solid var(--accent)}.review-pass span{margin-inline-end:8px;font-weight:800}.banner{background:var(--surface-soft);border:1px solid var(--line)}.banner p{margin:5px 0 0}.banner.warning{color:var(--warn);background:var(--warn-bg);border-color:var(--warn)}.banner.error{color:var(--error);background:var(--error-bg);border-color:var(--error)}.banner.success{color:var(--accent-strong);background:var(--accent-tint);border-color:var(--accent)}.banner button{margin-top:12px}.cancel-link{color:var(--muted);background:0 0;border:0;margin-top:18px;padding:5px 0;font-size:12px;text-decoration:underline}.result-card,.waiting-card{max-width:750px;padding:36px}.result-icon{background:var(--accent-tint);width:43px;height:43px;color:var(--accent-strong);border-radius:50%;place-items:center;font-size:22px;display:grid}.result-card h2,.waiting-card h2{margin:18px 0 10px;font-size:21px}.result-card p,.waiting-card p{color:var(--muted);font-size:13px;line-height:1.6}.result-facts{border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;margin:24px 0;padding:20px}.result-facts p{margin:8px 0}.result-facts strong{color:var(--text)}.result-effects{border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;margin:20px 0;padding:14px 17px}.result-effects h3{color:var(--text);margin:0 0 10px;font-size:13px}.result-effects ul{margin:0;padding-left:20px}.result-effects li{overflow-wrap:anywhere;padding:3px 0;font-size:12px}.result-links{flex-wrap:wrap;align-items:center;gap:20px;margin:22px 0;font-size:12px;display:flex}.result-links code{background:var(--surface-soft);border-radius:5px;padding:8px}.spinner{border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:25px;height:25px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.result-facts h3{margin:0 0 16px;font-size:15px;line-height:1.5}.result-permissions{margin:20px 0 0;padding-inline-start:20px;font-size:13px;line-height:1.65}.result-permissions li+li{margin-top:16px}.result-permissions p{margin:6px 0 0}@media (width<=1100px){.workspace-grid{grid-template-columns:1fr}.context-column{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=780px){.shell{display:block}.sidebar{min-height:0;padding:16px 20px;position:static}.rail-caption,.sidebar-note{display:none}.steps{flex-wrap:wrap;gap:4px;margin-top:18px;display:flex}.steps:before{display:none}.steps li{flex:none;gap:6px;min-height:37px;padding:4px 7px;font-size:11px}.step-index{flex-basis:26px;width:26px;height:26px}.topbar{flex-wrap:wrap;height:auto;min-height:65px;padding:12px 20px}.content{padding:28px 20px}}@media (width<=540px){.context-column,.plan-sections{grid-template-columns:1fr}.workspace-grid:has(.plan-review) .context-column{grid-template-columns:1fr}.top-actions{flex-wrap:wrap;justify-content:space-between;gap:12px;width:100%;min-width:0}.decision-card{padding:22px}.breadcrumb{max-width:100%}h1{font-size:29px}.plan-decisions dl>div{grid-template-columns:1fr;gap:2px}.question-details dl{grid-template-columns:1fr;gap:3px}.question-details dd{margin-bottom:9px}.language-switch{margin-inline-start:auto}}@media (width<=640px){.check-option.producer-option{grid-template-columns:minmax(0,1fr);gap:12px}.producer-option>a,.producer-links{max-width:none;margin-inline-start:29px}.producer-manual-fields{grid-template-columns:minmax(0,1fr)}}.management-status{color:var(--accent-strong);font-weight:750}.management-actions{flex-wrap:wrap;gap:12px;margin-block:24px 32px;display:flex}.management-section{border-top:1px solid var(--line);padding-block:26px}.management-section h2{margin-top:0}.management-section summary{cursor:pointer;color:var(--accent-strong);font-weight:700}.management-settings{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.management-setting{border:1px solid var(--line);background:var(--surface-soft);border-radius:10px;justify-content:space-between;align-items:center;gap:16px;padding:18px;display:flex}.management-setting h3{margin:0 0 8px;font-size:14px}.management-setting p{color:var(--muted);overflow-wrap:anywhere;margin:0}.management-setting .button{flex-shrink:0}.management-values{gap:8px;display:grid}.management-values dt{overflow-wrap:anywhere;margin-top:12px;font-weight:650}.management-values dd{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--muted);margin:0;line-height:1.6}.management-workflow{padding-block:16px}:is(.workspace-grid:has(.management-settings),.workspace-grid:has(.management-status)){grid-template-columns:1fr}.workspace-grid:has(.management-status) .context-column{display:none}@media (width<=800px){.management-settings{grid-template-columns:1fr}}@media (width<=420px){.management-setting{flex-direction:column;align-items:stretch}.management-setting .button{align-self:flex-end}} diff --git a/build/web/assets/index-CsboG2sG.js b/build/web/assets/index-CsboG2sG.js new file mode 100644 index 000000000..edfe3da26 --- /dev/null +++ b/build/web/assets/index-CsboG2sG.js @@ -0,0 +1,3 @@ +(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})(),typeof window<`u`&&((window.__svelte??={}).v??=new Set).add(`5`);var e=!1;function t(){e=!0}t();var n={},r=Symbol(`uninitialized`),i=`http://www.w3.org/1999/xhtml`,a=Array.isArray,o=Array.prototype.indexOf,s=Array.prototype.includes,c=Array.from,l=Object.defineProperty,u=Object.getOwnPropertyDescriptor,d=Object.getOwnPropertyDescriptors,f=Object.prototype,p=Array.prototype,m=Object.getPrototypeOf,h=Object.isExtensible,g=()=>{};function _(e){return e()}function v(e){for(var t=0;t{e=n,t=r}),resolve:e,reject:t}}function b(e,t){if(Array.isArray(e))return e;if(t===void 0||!(Symbol.iterator in e))return Array.from(e);let n=[];for(let r of e)if(n.push(r),n.length===t)break;return n}var x=1024,S=2048,C=4096,w=8192,ee=16384,te=32768,ne=1<<25,re=65536,ie=1<<19,ae=1<<20,oe=1<<25,se=1<<21,ce=1<<22,le=1<<23,ue=Symbol(`$state`),de=Symbol(`component`),fe=Symbol(`legacy props`),pe=Symbol(``),me=Symbol(`attributes`),he=Symbol(`class`),ge=Symbol(`style`),_e=Symbol(`text`),ve=Symbol(`form reset`),ye=new class extends Error{name=`StaleReactionError`;message="The reaction that called `getAbortSignal()` was re-run or destroyed"},be=!!globalThis.document?.contentType&&globalThis.document.contentType.includes(`xml`);function xe(){console.warn(`https://svelte.dev/e/derived_inert`)}function Se(e){console.warn(`https://svelte.dev/e/hydration_mismatch`)}function Ce(){console.warn(`https://svelte.dev/e/select_multiple_invalid_value`)}function we(){console.warn(`https://svelte.dev/e/svelte_boundary_reset_noop`)}var T=!1;function Te(e){T=e}var E;function Ee(e){if(e===null)throw Se(),n;return E=e}function De(){return Ee(cn(E))}function D(e){if(T){if(cn(E)!==null)throw Se(),n;E=e}}function Oe(e=1){if(T){for(var t=e,n=E;t--;)n=cn(n);E=n}}function ke(e=!0){for(var t=0,n=E;;){if(n.nodeType===8){var r=n.data;if(r===`]`){if(t===0)return n;--t}else(r===`[`||r===`[!`||r[0]===`[`&&!isNaN(Number(r.slice(1))))&&(t+=1)}var i=cn(n);e&&n.remove(),n=i}}function Ae(e){if(!e||e.nodeType!==8)throw Se(),n;return e.data}function je(e){return e===this.v}function Me(e,t){return e==e?e!==t||typeof e==`object`&&!!e||typeof e==`function`:t==t}function Ne(e){return!Me(e,this.v)}function Pe(e){throw Error(`https://svelte.dev/e/lifecycle_outside_component`)}function Fe(){throw Error(`https://svelte.dev/e/async_derived_orphan`)}function Ie(e,t,n){throw Error(`https://svelte.dev/e/each_key_duplicate`)}function Le(e){throw Error(`https://svelte.dev/e/effect_in_teardown`)}function Re(){throw Error(`https://svelte.dev/e/effect_in_unowned_derived`)}function ze(e){throw Error(`https://svelte.dev/e/effect_orphan`)}function Be(){throw Error(`https://svelte.dev/e/effect_update_depth_exceeded`)}function Ve(e){throw Error(`https://svelte.dev/e/props_invalid_value`)}function He(){throw Error(`https://svelte.dev/e/state_descriptors_fixed`)}function Ue(){throw Error(`https://svelte.dev/e/state_prototype_fixed`)}function We(){throw Error(`https://svelte.dev/e/state_unsafe_mutation`)}function Ge(){throw Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`)}var Ke=null;function qe(e){Ke=e}function O(t,n=!1,r){Ke={p:Ke,i:!1,c:null,e:null,s:t,x:null,r:Yn,l:e&&!n?{s:null,u:null,$:[]}:null}}function k(e){var t=Ke,n=t.e;if(n!==null){t.e=null;for(var r of n)xn(r)}return e!==void 0&&(t.x=e),t.i=!0,Ke=t.p,Je(e)}function Je(e={}){return l(e,de,{value:!0}),e}function Ye(){return!e||Ke!==null&&Ke.l===null}var Xe=[];function Ze(){var e=Xe;Xe=[],v(e)}function Qe(e){if(Xe.length===0&&!Et){var t=Xe;queueMicrotask(()=>{t===Xe&&Ze()})}Xe.push(e)}function $e(){for(;Xe.length>0;)Ze()}var et=~(S|C|x);function tt(e,t){e.f=e.f&et|t}function nt(e){e.f&512||e.deps===null?tt(e,x):tt(e,C)}function rt(e,t,n){e.f&2048?t.add(e):e.f&4096&&n.add(e),tt(e,x)}function it(e){T&&sn(e)!==null&&ln(e)}var at=!1;function ot(){at||(at=!0,document.addEventListener(`reset`,e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(let t of e.target.elements)t[ve]?.()})},{capture:!0}))}function st(e){var t=Kn,n=Yn;Jn(null),Xn(null);try{return e()}finally{Jn(t),Xn(n)}}function ct(e,t,n,r=n){e.addEventListener(t,()=>st(n));let i=e[ve];e[ve]=i?()=>{i(),r(!0)}:()=>r(!0),ot()}function lt(e,t,n,r){let i=Ye()?pt:A;var a=e.filter(e=>!e.settled),o=t.map(i);if(n.length===0&&a.length===0){r(o);return}var s=Yn,c=ut(),l=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(e=>e.promise)):null;function u(e){if(!(s.f&16384)){c();try{r([...o,...e])}catch(e){mn(e,s)}dt()}}var d=ft();if(n.length===0){l.then(()=>u([])).finally(d);return}function f(){Promise.all(n.map(e=>ht(e))).then(u).catch(e=>mn(e,s)).finally(d)}l?l.then(()=>{c(),f(),dt()}):f()}function ut(){var e=Yn,t=Kn,n=Ke,r=j;return function(i=!0){Xn(e),Jn(t),qe(n),i&&!(e.f&16384)&&(r?.activate(),r?.apply())}}function dt(e=!0){Xn(null),Jn(null),qe(null),e&&j?.deactivate()}function ft(){var e=Yn,t=e.b,n=j,r=!!t?.is_rendered();return t?.update_pending_count(1,n),n.increment(r,e),()=>{t?.update_pending_count(-1,n),n.decrement(r,e)}}function pt(e){var t=2|S;return Yn!==null&&(Yn.f|=ie),{ctx:Ke,deps:null,effects:null,equals:je,f:t,fn:e,reactions:null,rv:0,v:r,wv:0,parent:Yn,ac:null}}var mt=Symbol(`obsolete`);function ht(e,t,n){let i=Yn;i===null&&Fe();var a=void 0,o=Ut(r),s=!Kn,c=new Set;return Dn(()=>{var t=Yn,n=y();a=n.promise;try{Promise.resolve(e()).then(n.resolve,e=>{e!==ye&&n.reject(e)}).finally(dt)}catch(e){n.reject(e),dt()}var r=j;if(s){if(t.f&32768)var l=ft();if(i.b?.is_rendered())r.async_deriveds.get(t)?.reject(mt);else for(let e of c.values())e.reject(mt);c.add(n),r.async_deriveds.set(t,n)}let u=(e,t=void 0)=>{l?.(),c.delete(n),t!==mt&&(r.activate(),t?(o.f|=le,qt(o,t)):(o.f&8388608&&(o.f^=le),qt(o,e)),r.deactivate())};n.promise.then(u,e=>u(null,e||`unknown`))}),yn(()=>{for(let e of c)e.reject(mt)}),new Promise(e=>{function t(n){function r(){n===a?e(o):t(a)}n.then(r,r)}t(a)})}function gt(e){let t=pt(e);return Qn(t),t}function A(e){let t=pt(e);return t.equals=Ne,t}function _t(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n{t.ac.abort(ye),t.ac=null}),t.fn!==null&&(t.teardown=g),pr(t,0),Mn(t))}function xt(e){if(e.effects!==null)for(let t of e.effects)t.teardown&&t.fn!==null&&mr(t)}var St=null,j=null,Ct=null,wt=null,Tt=null,Et=!1,Dt=!1,Ot=null,kt=null,At=0,jt=1,Mt=class e{id=jt++;#e=!1;linked=!0;#t=null;#n=null;async_deriveds=new Map;current=new Map;previous=new Map;#r=new Set;#i=new Set;#a=0;#o=new Map;#s=null;#c=[];#l=[];#u=new Set;#d=new Set;#f=new Map;#p=new Set;is_fork=!1;#m=!1;constructor(){St===null?St=this:(St.#n=this,this.#t=St),St=this}#h(){if(this.is_fork)return!0;for(let n of this.#o.keys()){for(var e=n,t=!1;e.parent!==null;){if(this.#f.has(e)){t=!0;break}e=e.parent}if(!t)return!0}return!1}skip_effect(e){this.#f.has(e)||this.#f.set(e,{d:[],m:[]}),this.#p.delete(e)}unskip_effect(e,t=e=>this.schedule(e)){var n=this.#f.get(e);if(n){this.#f.delete(e);for(var r of n.d)tt(r,S),t(r);for(r of n.m)tt(r,C),t(r)}this.#p.add(e)}#g(){var e=[];for(let i of this.#c)if(!(i.f&16384||!(i.f&6144))){for(var t=i,n=!1;t.parent!==null;){t=t.parent;var r=t.f;if(r&96){if(!(r&1024)){n=!0;break}t.f^=x}}n||e.push(t)}return this.#c=[],e}#_(){this.#e=!0;for(let e of this.#u)this.#d.delete(e),tt(e,S),this.schedule(e);for(let e of this.#d)tt(e,C),this.schedule(e);this.apply();for(var t=Ot=[],n=[],r=kt=[];this.#c.length>0;){At++>1e3&&(this.#S(),Pt());for(let e of this.#g())try{this.#v(e,t,n)}catch(t){throw zt(e),this.#h()||this.discard(),t}}if(j=null,r.length>0){var i=e.ensure();for(let e of r)i.schedule(e)}if(Ot=null,kt=null,this.#h()){this.#x(n),this.#x(t);for(let[e,t]of this.#f)Rt(e,t);r.length>0&&j.#_();return}let a=this.#y();if(a){this.#x(n),this.#x(t),a.#b(this);return}this.#u.clear(),this.#d.clear();for(let e of this.#r)e(this);this.#r.clear(),Ct=this,It(n),It(t),Ct=null,this.#s?.resolve();var o=j;if(this.#a===0&&(this.#c.length===0||o!==null)&&this.#S(),this.#c.length>0){if(o!==null){for(let e of this.#c)o.#c.push(e);this.#c=[]}else o=this}o!==null&&(Vt.clear(),o.#_())}#v(e,t,n){e.f^=x;for(var r=e.first;r!==null;){var i=r.f,a=!!(i&96);if(!(a&&i&1024||i&8192||this.#f.has(r))&&r.fn!==null){a?r.f^=x:i&4?t.push(r):cr(r)&&(i&16&&this.#d.add(r),mr(r));var o=r.first;if(o!==null){r=o;continue}}for(;r!==null;){var s=r.next;if(s!==null){r=s;break}r=r.parent}}}#y(){for(var e=this.#t;e!==null;){if(!e.is_fork){for(let[t,[,n]]of this.current)if(e.current.has(t)&&!n)return e}e=e.#t}return null}#b(e){for(let[t,n]of e.current)!this.previous.has(t)&&e.previous.has(t)&&this.previous.set(t,e.previous.get(t)),this.current.set(t,n);for(let[t,n]of e.async_deriveds){let e=this.async_deriveds.get(t);e&&n.promise.then(e.resolve).catch(e.reject)}e.async_deriveds.clear(),this.transfer_effects(e.#u,e.#d);let t=e=>{var n=e.reactions;if(n!==null&&!(e.f&2&&!(e.f&6144)))for(let e of n){var r=e.f;if(r&2)t(e);else{var i=e;r&4194320&&!this.async_deriveds.has(i)&&(this.#d.delete(i),tt(i,S),this.schedule(i))}}};for(let e of this.current.keys())t(e);this.oncommit(()=>e.discard()),e.#S(),j=this,this.#_()}#x(e){for(var t=0;t{this.#m=!1,this.linked&&this.flush()}))}transfer_effects(e,t){for(let t of e)this.#u.add(t);for(let e of t)this.#d.add(e);e.clear(),t.clear()}oncommit(e){this.#r.add(e)}ondiscard(e){this.#i.add(e)}settled(){return(this.#s??=y()).promise}static ensure(){if(j===null){let t=j=new e;!Dt&&!Et&&Qe(()=>{t.#e||t.flush()})}return j}apply(){wt=null}schedule(e){if(Tt=e,e.b?.is_pending&&e.f&16777228&&!(e.f&32768)){e.b.defer_effect(e);return}this.#c.push(e)}#S(){if(this.linked){var e=this.#t,t=this.#n;e===null||(e.#n=t),t===null?St=e:t.#t=e,this.linked=!1}}};function Nt(e){var t=Et;Et=!0;try{var n;for(e&&(j!==null&&!j.is_fork&&j.flush(),n=e());;){if($e(),j===null)return n;j.flush()}}finally{Et=t}}function Pt(){try{Be()}catch(e){mn(e,Tt)}}var Ft=null;function It(e){var t=e.length;if(t!==0){for(var n=0;n0)){Vt.clear();for(let e of Ft){if(e.f&24576)continue;let t=[e],n=e.parent;for(;n!==null;)Ft.has(n)&&(Ft.delete(n),t.push(n)),n=n.parent;for(let e=t.length-1;e>=0;e--){let n=t[e];n.f&24576||mr(n)}}Ft.clear()}}Ft=null}}function Lt(e){j.schedule(e)}function Rt(e,t){if(!(e.f&32&&e.f&1024)){e.f&2048?t.d.push(e):e.f&4096&&t.m.push(e),tt(e,x);for(var n=e.first;n!==null;)Rt(n,t),n=n.next}}function zt(e){tt(e,x);for(var t=e.first;t!==null;)zt(t),t=t.next}var Bt=new Set,Vt=new Map,Ht=!1;function Ut(e,t){return{f:0,v:e,reactions:null,equals:je,rv:0,wv:0}}function Wt(e,t){let n=Ut(e,t);return Qn(n),n}function M(t,n=!1,r=!0){let i=Ut(t);return n||(i.equals=Ne),e&&r&&Ke!==null&&Ke.l!==null&&(Ke.l.s??=[]).push(i),i}function N(e,t,n=!1){return Kn!==null&&(!qn||Kn.f&131072)&&Ye()&&Kn.f&4325394&&(Zn===null||!Zn.has(e))&&We(),qt(e,n?Zt(t):t,kt)}var Gt=null,Kt=0;function qt(e,t,n=null){if(!e.equals(t)){Wn?Vt.set(e,t):Vt.has(e)||Vt.set(e,e.v);var r=Mt.ensure();if(r.capture(e,t),e.f&2){let t=e;e.f&2048&&vt(t),wt===null&&nt(t)}e.wv=sr(),Gt=null,Kt=0,Xt(e,S,n),Gt=null,Ye()&&Yn!==null&&Yn.f&1024&&!(Yn.f&96)&&(tr===null?nr([e]):tr.push(e)),!r.is_fork&&Bt.size>0&&!Ht&&Jt()}return t}function Jt(){Ht=!1;for(let e of Bt){e.f&1024&&tt(e,C);let t;try{t=cr(e)}catch{t=!0}t&&mr(e)}Bt.clear()}function Yt(e){N(e,e.v+1)}function Xt(e,t,n){var r=e.reactions;if(r!==null){var i=Ye(),a=r.length;if(Kt+=a,Kt>1e5&&Gt===null&&(Gt=new Set),Gt!==null){if(Gt.has(e))return;Gt.add(e)}for(var o=0;o{if(ar===c)return e();var t=Kn,n=ar;Jn(null),or(c);var r=e();return Jn(t),or(n),r};return i&&n.set(`length`,Wt(e.length,s)),new Proxy(e,{defineProperty(e,t,r){(!(`value`in r)||r.configurable===!1||r.enumerable===!1||r.writable===!1)&&He();var i=n.get(t);return i===void 0?l(()=>{var e=Wt(r.value,s);return n.set(t,e),e}):N(i,r.value,!0),!0},deleteProperty(e,t){var i=n.get(t);if(i===void 0){if(t in e){let e=l(()=>Wt(r,s));n.set(t,e),Yt(o)}}else N(i,r),Yt(o);return!0},get(t,i,a){if(i===ue)return e;var o=n.get(i),c=i in t;if(o===void 0&&(!c||u(t,i)?.writable)&&(o=l(()=>Wt(Zt(c?t[i]:r),s)),n.set(i,o)),o!==void 0){var d=z(o);return d===r?void 0:d}return Reflect.get(t,i,a)},getOwnPropertyDescriptor(e,t){this.has?.(e,t);var i=Reflect.getOwnPropertyDescriptor(e,t),a=n.get(t);if(a!==void 0){var o=z(a);if(o===r)return;if(i&&`value`in i)i.value=o;else return{enumerable:!0,configurable:!0,value:o,writable:!0}}return i},has(e,t){if(t===ue)return!0;var i=n.get(t),a=i!==void 0&&i.v!==r||Reflect.has(e,t);return(i!==void 0||Yn!==null&&(!a||u(e,t)?.writable))&&(i===void 0&&(i=l(()=>Wt(a?Zt(e[t]):r,s)),n.set(t,i)),z(i)===r)?!1:a},set(e,t,a,c){var d=n.get(t),f=t in e;if(i&&t===`length`)for(var p=a;pWt(r,s)),n.set(p+``,m)):N(m,r)}if(d===void 0)(!f||u(e,t)?.writable)&&(d=l(()=>Wt(void 0,s)),N(d,Zt(a)),n.set(t,d));else{f=d.v!==r;var h=l(()=>Zt(a));N(d,h)}var g=Reflect.getOwnPropertyDescriptor(e,t);if(g?.set&&g.set.call(c,a),!f){if(i&&typeof t==`string`){var _=n.get(`length`),v=Number(t);Number.isInteger(v)&&v>=_.v&&N(_,v+1)}Yt(o)}return!0},ownKeys(e){z(o);var t=Reflect.ownKeys(e).filter(e=>{var t=n.get(e);return t===void 0||t.v!==r});for(var[i,a]of n)a.v!==r&&!(i in e)&&t.push(i);return t},setPrototypeOf(){Ue()}})}function Qt(e){try{if(typeof e==`object`&&e&&ue in e)return e[ue]}catch{}return e}function $t(e,t){return Object.is(Qt(e),Qt(t))}var en,tn,nn,rn;function an(){if(en===void 0){en=window,tn=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;nn=u(t,`firstChild`).get,rn=u(t,`nextSibling`).get,h(e)&&(e[he]=void 0,e[me]=null,e[ge]=void 0,e.__e=void 0),h(n)&&(n[_e]=void 0)}}function on(e=``){return document.createTextNode(e)}function sn(e){return nn.call(e)}function cn(e){return rn.call(e)}function P(e,t){if(!T)return sn(e);var n=sn(E);if(n===null)n=E.appendChild(on());else if(t&&n.nodeType!==3){var r=on();return n?.before(r),Ee(r),r}return t&&fn(n),Ee(n),n}function F(e,t=!1){if(!T){var n=sn(e);return n instanceof Comment&&n.data===``?cn(n):n}if(t){if(E?.nodeType!==3){var r=on();return E?.before(r),Ee(r),r}fn(E)}return E}function I(e,t=!1){if(!T)return sn(e);var n=P(e,t);return D(e),n}function L(e,t=1,n=!1){let r=T?E:e;for(var i;t--;)i=r,r=cn(r);if(!T)return r;if(n){if(r?.nodeType!==3){var a=on();return r===null?i?.after(a):r.before(a),Ee(a),a}fn(r)}return Ee(r),r}function ln(e){e.textContent=``}function un(){return!1}function dn(e,t,n){return t==null||t===`http://www.w3.org/1999/xhtml`?n?document.createElement(e,{is:n}):document.createElement(e):n?document.createElementNS(t,e,{is:n}):document.createElementNS(t,e)}function fn(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===3;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function pn(e){var t=Yn;if(t===null)return Kn.f|=le,e;if(!(t.f&32768)&&!(t.f&4))throw e;mn(e,t)}function mn(e,t){if(!(t!==null&&t.f&16384)){for(;t!==null;){if(t.f&128&&!(t.f&33570816)){if(!(t.f&32768))throw e;try{t.b.error(e);return}catch(t){e=t}}t=t.parent}throw e}}function hn(e){Yn===null&&(Kn===null&&ze(e),Re()),Wn&&Le(e)}function gn(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function _n(e,t){var n=Yn;n!==null&&n.f&8192&&(e|=w);var r={ctx:Ke,deps:null,nodes:null,f:e|S|512,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};j?.register_created_effect(r);var i=r;if(e&4)Ot===null?Mt.ensure().schedule(r):Ot.push(r);else if(t!==null){try{mr(r)}catch(e){throw Pn(r),e}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&!(i.f&524288)&&(i=i.first,e&16&&e&65536&&i!==null&&(i.f|=re))}if(i!==null&&(i.parent=n,n!==null&&gn(i,n),Kn!==null&&Kn.f&2&&!(e&64))){var a=Kn;(a.effects??=[]).push(i)}return r}function vn(){return Kn!==null&&!qn}function yn(e){let t=_n(8,null);return tt(t,x),t.teardown=e,t}function bn(e){hn(`$effect`);var t=Yn.f;if(!Kn&&t&32&&Ke!==null&&!Ke.i){var n=Ke;(n.e??=[]).push(e)}else return xn(e)}function xn(e){return _n(4|ae,e)}function Sn(e){return hn(`$effect.pre`),_n(8|ae,e)}function Cn(e){Mt.ensure();let t=_n(64|ie,e);return(e={})=>new Promise(n=>{e.outro?Ln(t,()=>{Pn(t),n(void 0)}):(Pn(t),n(void 0))})}function wn(e){return _n(4,e)}function Tn(e,t){var n=Ke,r={effect:null,ran:!1,deps:e};n.l.$.push(r),r.effect=On(()=>{if(e(),!r.ran){r.ran=!0;var n=Yn;try{Xn(n.parent),B(t)}finally{Xn(n)}}})}function En(){var e=Ke;On(()=>{for(var t of e.l.$){t.deps();var n=t.effect;n.f&1024&&n.deps!==null&&tt(n,C),cr(n)&&mr(n),t.ran=!1}})}function Dn(e){return _n(ce|ie,e)}function On(e,t=0){return _n(8|t,e)}function R(e,t=[],n=[],r=[]){lt(r,t,n,t=>{_n(8,()=>{e(...t.map(z))})})}function kn(e,t=0){return _n(16|t,e)}function An(e){return _n(32|ie,e)}function jn(e){var t=e.teardown;if(t!==null){let n=Wn,r=Kn;Gn(!0),Jn(null);try{t.call(null)}catch(t){mn(t,e.parent)}finally{Gn(n),Jn(r)}}}function Mn(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){let e=n.ac;e!==null&&st(()=>{e.abort(ye)});var r=n.next;n.f&64?n.parent=null:Pn(n,t),n=r}}function Nn(e){for(var t=e.first;t!==null;){var n=t.next;t.f&32||Pn(t),t=n}}function Pn(e,t=!0){var n=!1;(t||e.f&262144)&&e.nodes!==null&&e.nodes.end!==null&&(Fn(e.nodes.start,e.nodes.end),n=!0),e.f|=ne,Mn(e,t&&!n),pr(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)e.stop();jn(e),e.f^=ne,e.f|=ee;var i=e.parent;i!==null&&i.first!==null&&In(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Fn(e,t){for(;e!==null;){var n=e===t?null:cn(e);e.remove(),e=n}}function In(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function Ln(e,t,n=!0){var r=[];e.f|=256,Rn(e,r,!0);var i=()=>{n&&Pn(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||i();for(var s of r)s.out(o)}else i()}function Rn(e,t,n){if(!(e.f&8192)){e.f^=w;var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)(e.is_global||n)&&t.push(e);for(var i=e.first;i!==null;){var a=i.next;if(!(i.f&64)){var o=!!(i.f&65536)||!!(i.f&32)&&!!(e.f&16);Rn(i,t,o?n:!1)}i=a}}}function zn(e){e.f&=-257,Bn(e,!0)}function Bn(e,t){if(!(e.f&256)&&e.f&8192){e.f^=w,e.f&1024||(tt(e,S),Mt.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,i=!!(n.f&65536)||!!(n.f&32);Bn(n,i?t:!1),n=r}var a=e.nodes&&e.nodes.t;if(a!==null)for(let e of a)(e.is_global||t)&&e.in()}}function Vn(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var i=n===r?null:cn(n);t.append(n),n=i}}var Hn=null,Un=!1,Wn=!1;function Gn(e){Wn=e}var Kn=null,qn=!1;function Jn(e){Kn=e}var Yn=null;function Xn(e){Yn=e}var Zn=null;function Qn(e){Kn!==null&&(Kn.f&2097152||Kn.f&2)&&(Zn??=new Set).add(e)}var $n=null,er=0,tr=null;function nr(e){tr=e}var rr=1,ir=0,ar=ir;function or(e){ar=e}function sr(){return++rr}function cr(e){var t=e.f;if(t&2048)return!0;if(t&4096){for(var n=e.deps,r=n.length,i=0;ie.wv)return!0}t&512&&wt===null&&tt(e,x)}return!1}function lr(e,t,n=!0){var r=e.reactions;if(r!==null&&!(Zn!==null&&Zn.has(e)))for(var i=0;i{e.ac.abort(ye)}),e.ac=null);try{e.f|=se;var u=e.fn,d=u();e.f|=te;var f=dr(e);if(Ye()&&tr!==null&&!qn&&f!==null&&!(e.f&6146))for(var p=0;p0)for(t.length=er+$n.length,r=0;r<$n.length;r++)t[er+r]=$n[r];else e.deps=t=$n;if(vn()&&e.f&512)for(r=er;r{c.ac.abort(ye),c.ac=null,tt(c,S)}),bt(c),pr(c,0)}}function pr(e,t){var n=e.deps;if(n!==null)for(var r=t;rn?.call(this,e))}return e.startsWith(`pointer`)||e.startsWith(`touch`)||e===`wheel`?(i.__removed=!1,Qe(()=>{i.__removed||t.addEventListener(e,i,r)})):t.addEventListener(e,i,r),i}function Cr(e,t,n,r,i){var a={capture:r,passive:i},o=Sr(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&yn(()=>{o.__removed=!0,t.removeEventListener(e,o,a)})}function wr(e,t,n){(t[yr]??={})[e]=n}function Tr(e){for(var t=0;t{Dr=!1,Er=null}));var o=0,s=Er===e&&e[yr];if(s){var c=i.indexOf(s);if(c!==-1&&(t===document||t===window)){e[yr]=t;return}var u=i.indexOf(t);if(u===-1)return;c<=u&&(o=c)}if(a=i[o]||e.target,a!==t){l(e,`currentTarget`,{configurable:!0,get(){return a||n}});var d=Kn,f=Yn;Jn(null),Xn(null);try{for(var p,m=[];a!==null&&a!==t;){try{var h=a[yr]?.[r];h!=null&&(!a.disabled||e.target===a)&&h.call(a,e)}catch(e){p?m.push(e):p=e}if(e.cancelBubble)break;o++,a=o{throw e});throw p}}finally{e[yr]=t,delete e.currentTarget,Jn(d),Xn(f)}}}var kr=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy(`svelte-trusted-html`,{createHTML:e=>e});function Ar(e){return kr?.createHTML(e)??e}function jr(e){var t=dn(`template`);return t.innerHTML=Ar(e.replaceAll(``,``)),t.content}function Mr(e,t){var n=Yn;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function H(e,t){var n=!!(t&1),r=!!(t&2),i,a=!e.startsWith(``);return()=>{if(T)return Mr(E,null),E;i===void 0&&(i=jr(a?e:``+e),n||(i=sn(i)));var t=r||tn?document.importNode(i,!0):i.cloneNode(!0);if(n){var o=sn(t),s=t.lastChild;Mr(o,s)}else Mr(t,t);return t}}function Nr(e=``){if(!T){var t=on(e+``);return Mr(t,t),t}var n=E;return n.nodeType===3?fn(n):(n.before(n=on()),Ee(n)),Mr(n,n),n}function Pr(){if(T)return Mr(E,null),E;var e=document.createDocumentFragment(),t=document.createComment(``),n=on();return e.append(t,n),Mr(t,n),e}function U(e,t){if(T){var n=Yn;(!(n.f&32768)||n.nodes.end===null)&&(n.nodes.end=E),De();return}e!==null&&e.before(t)}[...`allowfullscreen.async.autofocus.autoplay.checked.controls.default.disabled.formnovalidate.indeterminate.inert.ismap.loop.multiple.muted.nomodule.novalidate.open.playsinline.readonly.required.reversed.seamless.selected.webkitdirectory.defer.disablepictureinpicture.disableremoteplayback`.split(`.`)];var Fr=[`touchstart`,`touchmove`];function Ir(e){return Fr.includes(e)}function Lr(e){let t=0,n=Ut(0),r;return()=>{vn()&&(z(n),On(()=>(t===0&&(r=B(()=>e(()=>Yt(n)))),t+=1,()=>{Qe(()=>{--t,t===0&&(r?.(),r=void 0,Yt(n))})})))}}var Rr=re|ie;function zr(e,t,n,r){new Br(e,t,n,r)}var Br=class{parent;is_pending=!1;transform_error;#e;#t=T?E:null;#n;#r;#i;#a=null;#o=null;#s=null;#c=null;#l=0;#u=0;#d=!1;#f=new Set;#p=new Set;#m=null;#h=Lr(()=>(this.#m=Ut(this.#l),()=>{this.#m=null}));constructor(e,t,n,r){this.#e=e,this.#n=t,this.#r=e=>{var t=Yn;t.b=this,t.f|=128,n(e)},this.parent=Yn.b,this.transform_error=r??this.parent?.transform_error??(e=>e),this.#i=kn(()=>{if(T){let e=this.#t;De();let t=e.data===`[!`;if(e.data.startsWith(`[?`)){let t=JSON.parse(e.data.slice(2));this.#_(t)}else t?this.#y():this.#g()}else this.#b()},Rr),T&&(this.#e=E)}#g(){try{this.#a=An(()=>this.#r(this.#e))}catch(e){this.error(e)}}#_(e){let t=this.#n.failed,{reset:n,invoke_onerror:r}=this.#v(e);Qe(r),t&&(this.#s=An(()=>{t(this.#e,()=>e,()=>n)}))}#v(e){var t=!1,n=!1;let r=()=>{if(t){we();return}t=!0,n&&Ge(),this.#s!==null&&Ln(this.#s,()=>{this.#s=null}),this.#S(()=>{this.#b()})};return{reset:r,invoke_onerror:()=>{try{n=!0,this.#n.onerror?.(e,r),n=!1}catch(e){mn(e,this.#i&&this.#i.parent)}}}}#y(){let e=this.#n.pending;e&&(this.is_pending=!0,this.#o=An(()=>e(this.#e)),Qe(()=>{var e=this.#c=document.createDocumentFragment(),t=on(),n=!1;if(e.append(t),this.#a=this.#S(()=>{try{return An(()=>this.#r(t))}catch(e){try{this.error(e),n=!0}catch(e){mn(e,this.#i.parent)}return null}}),this.#a===null){this.#c=null,n&&this.#x(j);return}this.#u===0&&(this.#e.before(e),this.#c=null,Ln(this.#o,()=>{this.#o=null}),this.#x(j))}))}#b(){try{if(this.is_pending=this.has_pending_snippet(),this.#u=0,this.#l=0,this.#a=An(()=>{this.#r(this.#e)}),this.#u>0){var e=this.#c=document.createDocumentFragment();Vn(this.#a,e);let t=this.#n.pending;this.#o=An(()=>t(this.#e))}else this.#x(j)}catch(e){this.error(e)}}#x(e){this.is_pending=!1,e.transfer_effects(this.#f,this.#p)}defer_effect(e){rt(e,this.#f,this.#p)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#n.pending}#S(e){var t=Yn,n=Kn,r=Ke;Xn(this.#i),Jn(this.#i),qe(this.#i.ctx);try{return Mt.ensure(),e()}finally{Xn(t),Jn(n),qe(r)}}#C(e,t){if(!this.has_pending_snippet()){this.parent&&this.parent.#C(e,t);return}this.#u+=e,this.#u===0&&(this.#x(t),this.#o&&Ln(this.#o,()=>{this.#o=null}),this.#c&&=(this.#e.before(this.#c),null))}update_pending_count(e,t){this.#C(e,t),this.#l+=e,!(!this.#m||this.#d)&&(this.#d=!0,Qe(()=>{this.#d=!1,this.#m&&qt(this.#m,this.#l)}))}get_effect_pending(){return this.#h(),z(this.#m)}error(e){if(!this.#n.onerror&&!this.#n.failed)throw e;j?.is_fork?(this.#a&&j.skip_effect(this.#a),this.#o&&j.skip_effect(this.#o),this.#s&&j.skip_effect(this.#s),j.oncommit(()=>{this.#w(e)})):this.#w(e)}#w(e){this.#a&&=(Pn(this.#a),null),this.#o&&=(Pn(this.#o),null),this.#s&&=(Pn(this.#s),null),T&&(Ee(this.#t),Oe(),Ee(ke()));let t=this.#n.failed,n=e=>{let{reset:n,invoke_onerror:r}=this.#v(e);r(),t&&(this.#s=this.#S(()=>{try{return An(()=>{var r=Yn;r.b=this,r.f|=128,t(this.#e,()=>e,()=>n)})}catch(e){return mn(e,this.#i.parent),null}}))};Qe(()=>{var t;try{t=this.transform_error(e)}catch(e){mn(e,this.#i&&this.#i.parent);return}typeof t==`object`&&t&&typeof t.then==`function`?t.then(n,e=>mn(e,this.#i&&this.#i.parent)):n(t)})}};function W(e,t){var n=t==null?``:typeof t==`object`?`${t}`:t;n!==(e[_e]??=e.nodeValue)&&(e[_e]=n,e.nodeValue=`${n}`)}function Vr(e,t){return Ur(e,t)}var Hr=new Map;function Ur(e,{target:t,anchor:r,props:i={},events:a,context:o,intro:s=!0,transformError:l}){an();var u=void 0,d=Cn(()=>{var s=r??t.appendChild(on());zr(s,{pending:()=>{}},t=>{O({});var r=Ke;if(o&&(r.c=o),a&&(i.$$events=a),T&&Mr(t,null),u=e(t,i)||Je(),T&&(Yn.nodes.end=E,E===null||E.nodeType!==8||E.data!==`]`))throw Se(),n;k()},l);var d=new Set,f=e=>{for(var n=0;n{for(var e of d)for(let r of[t,document]){var n=Hr.get(r),i=n.get(e);--i==0?(r.removeEventListener(e,Or),n.delete(e),n.size===0&&Hr.delete(r)):n.set(e,i)}xr.delete(f),s!==r&&s.parentNode?.removeChild(s)}});return Wr.set(u,d),u}var Wr=new WeakMap,Gr=class{anchor;#e=new Map;#t=new Map;#n=new Map;#r=new Set;#i=!0;constructor(e,t=!0){this.anchor=e,this.#i=t}#a=e=>{if(this.#e.has(e)){var t=this.#e.get(e),n=this.#t.get(t);if(n)zn(n),this.#r.delete(t);else{var r=this.#n.get(t);r&&(zn(r.effect),this.#t.set(t,r.effect),this.#n.delete(t),r.fragment.lastChild.remove(),this.anchor.before(r.fragment),n=r.effect)}for(let[t,n]of this.#e){if(this.#e.delete(t),t===e)break;let r=this.#n.get(n);r&&(Pn(r.effect),this.#n.delete(n))}for(let[e,r]of this.#t){if(e===t||this.#r.has(e))continue;let i=()=>{if(Array.from(this.#e.values()).includes(e)){var t=document.createDocumentFragment();Vn(r,t),t.append(on()),this.#n.set(e,{effect:r,fragment:t})}else Pn(r);this.#r.delete(e),this.#t.delete(e)};this.#i||!n?(this.#r.add(e),Ln(r,i,!1)):i()}}};#o=e=>{this.#e.delete(e);let t=Array.from(this.#e.values());for(let[e,n]of this.#n)t.includes(e)||(Pn(n.effect),this.#n.delete(e))};ensure(e,t){var n=j,r=un();if(t&&!this.#t.has(e)&&!this.#n.has(e)){if(r){var i=document.createDocumentFragment(),a=on();i.append(a),this.#n.set(e,{effect:An(()=>t(a)),fragment:i})}else this.#t.set(e,An(()=>t(this.anchor)))}if(this.#e.set(n,e),r){for(let[t,r]of this.#t)t===e?n.unskip_effect(r):n.skip_effect(r);for(let[t,r]of this.#n)t===e?n.unskip_effect(r.effect):n.skip_effect(r.effect);n.oncommit(this.#a),n.ondiscard(this.#o)}else T&&(this.anchor=E),this.#a(n)}};function Kr(t){Ke===null&&Pe(`onMount`),e&&Ke.l!==null?qr(Ke).m.push(t):bn(()=>{let e=B(t);if(typeof e==`function`)return e})}function qr(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}function G(e,t,n=!1){var r;T&&(r=E,De());var i=new Gr(e),a=n?re:0;function o(e,t){if(T){var n=Ae(r);if(e!==parseInt(n.substring(1))){var a=ke();Ee(a),i.anchor=a,Te(!1),i.ensure(e,t),Te(!0);return}}i.ensure(e,t)}kn(()=>{var e=!1;t((t,n=0)=>{e=!0,o(n,t)}),e||o(-1,null)},a)}var Jr=Symbol(`NaN`);function Yr(e,t,n){T&&De();var r=new Gr(e),i=!Ye();kn(()=>{var e=t();e!==e&&(e=Jr),i&&typeof e==`object`&&e&&(e={}),r.ensure(e,n)})}function K(e,t){return t}function Xr(e,t,n){for(var r=[],i=t.length,a,o=t.length,s=0;s{if(a){if(a.pending.delete(n),a.done.add(n),a.pending.size===0){var t=e.outrogroups;Zr(e,c(a.done)),t.delete(a),t.size===0&&(e.outrogroups=null)}}else--o},!1)}if(o===0){var l=r.length===0&&n!==null&&e.pending.size===0;if(l){var u=n,d=u.parentNode;ln(d),d.append(u),e.items.clear()}Zr(e,t,!l)}else a={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(a)}function Zr(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(let t of e.pending.values())for(let n of t)r.add(e.items.get(n).e)}for(var i=0;i{var e=n();return a(e)?e:e==null?[]:c(e)}),p,m=new Map,h=!0;function g(e){v.effect.f&16384||(v.pending.delete(e),v.fallback=d,ei(v,p,s,t,r),d!==null&&(p.length===0?d.f&33554432?(d.f^=oe,ni(d,null,s)):zn(d):Ln(d,()=>{d=null})))}function _(e){v.pending.delete(e)}var v={effect:kn(()=>{p=z(f);var e=p.length;let a=!1;T&&Ae(s)===`[!`!=(e===0)&&(s=ke(),Ee(s),Te(!1),a=!0);for(var c=new Set,u=j,v=un(),y=0;yo(s)):(d=An(()=>o(Qr??=on())),d.f|=oe)),e>c.size&&Ie(``,``,``),T&&e>0&&Ee(ke()),!h){if(m.set(u,c),v){for(let[e,t]of l)c.has(e)||u.skip_effect(t.e);u.oncommit(g),u.ondiscard(_)}else g(u)}a&&Te(!0),z(f)}),flags:t,items:l,pending:m,outrogroups:null,fallback:d};h=!1,T&&(s=E)}function $r(e){for(;e!==null&&!(e.f&32);)e=e.next;return e}function ei(e,t,n,r,i){var a=!!(r&8),o=t.length,s=e.items,l=$r(e.effect.first),u,d=null,f,p=[],m=[],h,g,_,v;if(a)for(v=0;v0){var te=r&4&&o===0?n:null;if(a){for(v=0;v{if(f!==void 0)for(_ of f)_.nodes?.a?.apply()})}function ti(e,t,n,r,i,a,o,s){var c=o&1?o&16?Ut(n):M(n,!1,!1):null,l=o&2?Ut(i):null;return{v:c,i:l,e:An(()=>(a(t,c??n,l??i,s),()=>{e.delete(r)}))}}function ni(e,t,n){if(e.nodes)for(var r=e.nodes.start,i=e.nodes.end,a=t&&!(t.f&33554432)?t.nodes.start:n;r!==null;){var o=cn(r);if(a.before(r),r===i)return;r=o}}function ri(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function ii(e,t,n){wn(()=>{var r=B(()=>t(e,n?.())||{});if(n&&r?.update){var i=!1,a={};On(()=>{var e=n();V(e),i&&Me(a,e)&&(a=e,r.update(e))}),i=!0}if(r?.destroy)return()=>r.destroy()})}function ai(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`){if(Array.isArray(e)){var i=e.length;for(t=0;t=0;){var s=o+a;(o===0||ci.includes(r[o-1]))&&(s===r.length||ci.includes(r[s]))?r=(o===0?``:r.substring(0,o))+r.substring(s+1):o=s}}return r===``?null:r}function ui(e,t,n,r,i,a){var o=e[he];if(T||o!==n||o===void 0){var s=li(n,r,a);(!T||s!==e.getAttribute(`class`))&&(s==null?e.removeAttribute(`class`):t?e.className=s:e.setAttribute(`class`,s)),e[he]=n}else if(a&&i!==a)for(var c in a){var l=!!a[c];(i==null||l!==!!i[c])&&e.classList.toggle(c,l)}return a}function di(e,t){t?e.hasAttribute(`selected`)||e.setAttribute(`selected`,``):e.removeAttribute(`selected`)}function fi(e,t){var n=e.__defaultValue,r=e.multiple,i=r?n??[]:null;if(!r||a(i)){var o=e.selectedIndex,s=t&&r?new Set(e.selectedOptions):null;for(var c of e.options){var l=gi(c);di(c,r?i.includes(l):$t(l,n))}if(t){if(s!==null)for(c of e.options){var u=s.has(c);c.selected!==u&&(c.selected=u)}else e.selectedIndex!==o&&(e.selectedIndex=o)}}}function pi(e,t,n=!1){if(e.multiple){if(t==null)return;if(!a(t))return Ce();for(var r of e.options)r.selected=t.includes(gi(r));return}for(r of e.options)if($t(gi(r),t)){r.selected=!0;return}(!n||t!==void 0)&&(e.selectedIndex=-1)}function mi(e){var t=new MutationObserver(t=>{t.every(_i)||(`__defaultValue`in e&&fi(e,!1),`__value`in e&&pi(e,e.__value))});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`value`]}),yn(()=>{t.disconnect()})}function hi(e,t,n=t){var r=new WeakSet,i=!0;ct(e,`change`,t=>{var i=t?`[selected]`:`:checked`,a;if(e.multiple)a=[].map.call(e.querySelectorAll(i),gi);else{var o=e.querySelector(i)??e.querySelector(`option:not([disabled])`);a=o&&gi(o)}n(a),e.__value=a,j!==null&&r.add(j)}),wn(()=>{var a=t();if(e===document.activeElement){var o=j;if(r.has(o))return}if(pi(e,a,i),i&&a===void 0){var s=e.querySelector(`:checked`);s!==null&&(a=gi(s),n(a))}e.__value=a,i=!1})}function gi(e){return`__value`in e?e.__value:e.value}function _i(e){if(e.target.closest(`selectedcontent`)!==null)return!0;if(e.type===`childList`){var t=[...e.addedNodes,...e.removedNodes];return t.length>0&&t.every(e=>e.nodeName===`SELECTEDCONTENT`)}return!1}var vi=Symbol(`is custom element`),yi=Symbol(`is html`),bi=be?`link`:`LINK`;function xi(e){if(T){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute(`value`)){var n=e.value;J(e,`value`,null),e.value=n}if(e.hasAttribute(`checked`)){var r=e.checked;J(e,`checked`,null),e.checked=r}}};e[ve]=n,Qe(n),ot()}}function Si(e,t){var n=Ci(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function J(e,t,n,r){var i=Ci(e);T&&(i[t]=e.getAttribute(t),t===`src`||t===`srcset`||t===`href`&&e.nodeName===bi)||i[t]!==(i[t]=n)&&(t===`loading`&&(e[pe]=n),n==null?e.removeAttribute(t):typeof n!=`string`&&Ti(e).has(t)?e[t]=n:e.setAttribute(t,n))}function Ci(e){return e[me]??={[vi]:e.nodeName.includes(`-`),[yi]:e.namespaceURI===i}}var wi=new Map;function Ti(e){var t=e.getAttribute(`is`)||e.nodeName,n=wi.get(t);if(n)return n;wi.set(t,n=new Set);for(var r,i=e,a=Element.prototype;a!==i;){for(var o in r=d(i),r)r[o].set&&o!==`innerHTML`&&o!==`textContent`&&o!==`innerText`&&n.add(o);i=m(i)}return n}function Ei(e,t,n=t){var r=new WeakSet;ct(e,`input`,async i=>{var a=i?e.defaultValue:e.value;if(a=Di(e)?Oi(a):a,n(a),j!==null&&r.add(j),await hr(),a!==(a=t())){var o=e.selectionStart,s=e.selectionEnd,c=e.value.length;if(e.value=a??``,s!==null){var l=e.value.length;o===s&&s===c&&l>c?(e.selectionStart=l,e.selectionEnd=l):(e.selectionStart=o,e.selectionEnd=Math.min(s,l))}}}),(T&&e.defaultValue!==e.value||B(t)==null&&e.value)&&(n(Di(e)?Oi(e.value):e.value),j!==null&&r.add(j)),On(()=>{var n=t();if(e===document.activeElement){var i=j;if(r.has(i))return}Di(e)&&n===Oi(e.value)||(e.type!==`date`||n||e.value)&&n!==e.value&&(e.value=n??``)})}function Di(e){var t=e.type;return t===`number`||t===`range`}function Oi(e){return e===``?null:+e}function ki(e,t){return e===t||e?.[ue]===t}function Ai(e=Je(),t,n,r){var i=Ke.r,a=Yn;return wn(()=>{var o,s;return On(()=>{o=s,s=r?.()||[],B(()=>{ki(n(...s),e)||(t(e,...s),o&&ki(n(...o),e)&&t(null,...o))})}),()=>{let r=a;for(;r!==i&&r.parent!==null&&r.parent.f&33554432;)r=r.parent;let o=()=>{s&&ki(n(...s),e)&&t(null,...s)},c=r.teardown;r.teardown=()=>{o(),c?.()}}}),e}function ji(e=!1){let t=Ke,n=t.l.u;if(!n)return;let r=()=>V(t.s);if(e){let e=0,n={},i=pt(()=>{let r=!1,i=t.s;for(let e in i)i[e]!==n[e]&&(n[e]=i[e],r=!0);return r&&e++,e});r=()=>z(i)}n.b.length&&Sn(()=>{Mi(t,r),v(n.b)}),bn(()=>{let e=B(()=>n.m.map(_));return()=>{for(let t of e)typeof t==`function`&&t()}}),n.a.length&&bn(()=>{Mi(t,r),v(n.a)})}function Mi(e,t){if(e.l.s)for(let t of e.l.s)z(t);t()}function Ni(e,t,n){if(e==null)return t(void 0),n&&n(void 0),g;let r=B(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}var Pi=[];function Fi(e,t=g){let n=null,r=new Set;function i(t){if(Me(e,t)&&(e=t,n)){let t=!Pi.length;for(let t of r)t[1](),Pi.push(t,e);if(t){for(let e=0;e{r.delete(c),r.size===0&&n&&(n(),n=null)}}return{set:i,update:a,subscribe:o}}function Ii(e){let t;return Ni(e,e=>t=e)(),t}var Li=!1,Ri=Symbol(`unmounted`);function Y(e,t,n){let r=n[t]??={store:null,source:M(void 0),unsubscribe:g};if(r.store!==e&&!(Ri in n)){if(r.unsubscribe(),r.store=e??null,e==null)r.source.v=void 0,r.unsubscribe=g;else{var i=!0;r.unsubscribe=Ni(e,e=>{i?r.source.v=e:N(r.source,e)}),i=!1}}return e&&Ri in n?Ii(e):z(r.source)}function zi(){let e={};function t(){yn(()=>{for(var t in e)e[t].unsubscribe();l(e,Ri,{enumerable:!1,value:!0})})}return[e,t]}function Bi(e){var t=Li;try{return Li=!1,[e(),Li]}finally{Li=t}}function X(t,n,r,i){var a=!e||!!(r&2),o=!!(r&8),s=!!(r&16),c=i,l=!0,d=void 0,f=()=>s&&a?(d??=pt(i),z(d)):(l&&(l=!1,c=s?B(i):i),c);let p;if(o){var m=ue in t||fe in t;p=u(t,n)?.set??(m&&n in t?e=>t[n]=e:void 0)}var h,g=!1;o?[h,g]=Bi(()=>t[n]):h=t[n],h===void 0&&i!==void 0&&(h=f(),p&&(a&&Ve(n),p(h)));var _=a?()=>{var e=t[n];return e===void 0?f():(l=!0,e)}:()=>{var e=t[n];return e!==void 0&&(c=void 0),e===void 0?c:e};if(a&&!(r&4))return _;if(p){var v=t.$$legacy;return(function(e,t){return arguments.length>0?((!a||!t||v||g)&&p(t?_():e),e):_()})}var y=!1,b=(r&1?pt:A)(()=>(y=!1,_()));o&&z(b);var x=Yn;return(function(e,t){if(arguments.length>0){let n=t?z(b):a&&o?Zt(e):e;return N(b,n),y=!0,c!==void 0&&(c=n),e}return Wn&&y||x.f&16384?b.v:z(b)})}async function Vi(e,t,n){let r=await fetch(e,{method:`POST`,cache:`no-store`,headers:{"Content-Type":`application/json`,"X-Setup-Session-Key":n.sessionKey,...n.capability?{"X-Setup-Capability":n.capability}:{}},body:JSON.stringify(t)}),i=await r.json();if(!r.ok)throw Error(String(i.error??`The request was rejected.`));return i}function Hi(e){let t=Fi({paired:!!e,controller:!1,busy:!1,error:``}),n=e,r,i={paired:!!e,controller:!1,busy:!1,error:``},a=!1;function o(e){i={...i,...e},t.set(i)}async function s(e=!1){if(!(a||!n||i.closed)){a=!0;try{let t=await fetch(`/api/state`,{cache:`no-store`,headers:{"X-Setup-Session-Key":n}});if(!t.ok)throw Error(`The local setup session is unavailable.`);let r=await t.json();i.closed||o({view:r,...e?{}:{error:``}})}catch{i.closed||o({view:void 0,error:`Connection lost. The CLI may have stopped. Check the terminal before trying again.`})}finally{a=!1}}}let c=()=>s(!0);async function l(){if(n&&!i.closed)try{let e=await fetch(`/api/bootstrap`,{cache:`no-store`,headers:{"X-Setup-Session-Key":n}});if(!e.ok)throw Error(`Could not join this local session.`);let t=await e.json();r=t.capability,o({controller:t.controller,error:``}),await s()}catch{n=void 0,r=void 0,o({view:void 0,paired:!1,controller:!1,error:`Could not connect to the local setup session. Check the terminal and pair again.`})}}async function u(e){if(!(i.busy||i.paired)){o({busy:!0,error:``});try{let t=await fetch(`/api/pair`,{method:`POST`,cache:`no-store`,headers:{"Content-Type":`application/json`},body:JSON.stringify({code:e.trim().toLowerCase()})}),r=await t.json();if(!t.ok)throw Error(String(r.error??`Pairing was rejected.`));if(typeof r.sessionKey!=`string`||!/^[a-f0-9]{64}$/.test(r.sessionKey))throw Error(`Invalid local pairing response.`);n=r.sessionKey,o({paired:!0,error:``}),await l()}catch(e){o({error:e instanceof Error?e.message:`Could not pair this browser.`})}finally{o({busy:!1})}}}let d=(e,t,i=!0)=>Vi(e,t,{sessionKey:n,capability:i?r:void 0});async function f(e,t){let n=e instanceof Error?e.message:t;o({error:n}),/read-only|Control moved/.test(n)?await l():await s(!0)}async function p(e,t){if(!i.busy&&i.controller&&i.view?.promptRevision===e){o({busy:!0,error:``});try{await d(`/api/answer`,{revision:e,value:t}),await s()}catch(e){await f(e,`Could not submit this answer.`)}finally{o({busy:!1})}}}async function m(e){if(!i.busy&&i.controller&&i.view?.promptRevision===e){o({busy:!0,error:``});try{await d(`/api/retry-discovery`,{revision:e}),await s()}catch(e){await f(e,`Could not retry discovery.`)}finally{o({busy:!1})}}}async function h(e){if(!i.busy&&i.controller&&i.view?.promptRevision===e){o({busy:!0,error:``});try{await d(`/api/back`,{revision:e}),await s()}catch(e){await f(e,`Could not return to the previous question.`)}finally{o({busy:!1})}}}async function g(){if(i.controller&&!i.busy){o({busy:!0,error:``});try{await d(`/api/cancel`,{}),await s()}catch(e){let t=e instanceof Error?e.message:`Cancellation failed.`;o({error:t}),/read-only|Control moved/.test(t)&&await l()}finally{o({busy:!1})}}}async function _(e){if(!(i.busy||i.closed||!i.paired||i.controller)){o({busy:!0,error:``});try{let t=await d(`/api/takeover`,{code:e.trim().toLowerCase()},!1);r=String(t.capability),o({controller:!0,error:``}),await s()}catch(e){o({error:e instanceof Error?e.message:`Takeover failed.`}),await s(!0)}finally{o({busy:!1})}}}async function v(){if(!i.busy&&!i.closed&&i.controller&&i.view?.outcome){o({busy:!0,error:``});try{if((await d(`/api/close`,{})).closed!==!0)throw Error(`Could not close the local session. Check the terminal before trying again.`);n=void 0,r=void 0,o({closed:!0,controller:!1,error:``})}catch{o({error:`Could not close the local session. Check the terminal before trying again.`})}finally{o({busy:!1})}}}async function y(){if(!(i.busy||i.closed||!i.controller||i.view?.outcome!==`complete`)){o({busy:!0,error:``,view:{...i.view,doctor:{status:`running`}}});try{await d(`/api/doctor`,{})}catch(e){o({error:e instanceof Error?e.message:`Read-only verification failed.`})}finally{await s(!0),o({busy:!1})}}}return{subscribe:t.subscribe,pair:u,connect:l,refresh:s,poll:c,submit:p,retryDiscovery:m,back:h,cancel:g,takeOver:_,close:v,runDoctor:y}}var Ui={setupHelp:`Setup help`,setupTutorial:`Setup tutorial`,firstWorkflowGuide:`First issue-to-PR workflow`,setupRecovery:`Troubleshooting`,setupHelpHint:`Documentation opens in a new tab. Your setup answers stay here.`,setupNextWorkflow:`Install the reviewed files, then verify the Action in GitHub. A metadata check alone does not prove runtime success.`,batchNextActions:`Next steps`,batchStatusReady:`Ready for review`,batchStatusBlocked:`Needs action`,batchStatusApplying:`Applying reviewed plan`,batchStatusPartial:`Partially applied; inspect before retry`,batchStatusWaiting:`PR created · waiting for human merge`,batchStatusPending:`Configuration applied · verification pending`,batchStatusUnchanged:`Already matches · unchanged`,batchStatusCancelled:`Pending work stopped; completed effects retained`,batchConfigurationPreview:`Configuration preview. This adds the configuration to your batch review. No permission probe or installation runs before you approve the complete batch.`,batchUseConfiguration:`Use this configuration`,planReuseBody:`Approve the listed temporary permission checks, then apply the reviewed setup. Existing Secret values are retained and will not be requested or replaced. Runtime capability verification can remain pending.`,organizationReuseTitle:`Reusing existing configuration`,organizationReuseBody:`{imported} compatible settings imported. Retain {shared} organization Variables and {overrides} repository overrides; write {writes} repository Variables. Shared values and existing Secret values stay unchanged.`,batchBranchReview:`Installation branch and reviewed base`,batchFocusTitle:`Selected repositories`,batchFocusBody:`{count} explicitly selected repositories in this organization. Review each target independently.`,batchReviewTitle:`Review setup plans`,batchProgressTitle:`Applying repository plans`,batchResultTitle:`Repository setup results`,batchProgressBody:`Applying the approved plans sequentially. Stop pauses pending work after the current request; completed changes and PRs remain.`,batchReviewBody:`Approve only the ready plans below. Setup proceeds sequentially, adds reviewed access without replacing shared values, and creates a PR for each changed repository. It does not merge, tag, release or deploy.`,batchResultBody:`A setup PR still needs human review and merge. Credential and runtime capability verification can remain pending. Completed PRs and access changes are kept if another target stops.`,batchStopping:`Stopping pending work after the current request. Completed changes will be retained.`,batchReasonDrift:`The reviewed base or ownership changed. Inspect the repository and review a fresh plan.`,batchReasonProvider:`GitHub did not confirm the last step. Retry inspects existing effects before continuing.`,batchCleanupPending:`Permission-check cleanup could not be confirmed. Pending work is stopped. Inspect GitHub history and the local recovery journal; resolve cleanup before starting a fresh setup. This operation cannot resume writes.`,batchReasonCancelled:`Pending work stopped. Completed changes were retained.`,batchReasonPreflight:`Review repository access, required bindings and target-specific settings before continuing.`,batchOpenPull:`Open setup PR`,batchFilesCount:`{count} changed files`,batchVariablesCount:`{count} repository Variable changes`,batchGrantsCount:`{count} additive repository access grants`,batchRetainedSecrets:`Existing Secret bindings retained`,batchResourcesExplanation:`Labels and enabled Issue Types are ensured separately for this target. Existing shared Secret values and other repositories’ access stay unchanged.`,batchReviewFiles:`Inspect proposed files`,batchDeleteFile:`This setup-managed file will be removed from the installation tree; inspect its retained backup.`,batchRepositoryOverrides:`Review repository Variable names`,batchReviewedAccess:`Review additive access`,batchApplyPlans:`Apply ready plans`,batchLeavePreview:`Leave without applying`,batchStopPending:`Stop pending work`,batchStopConfirm:`Stop pending setup work after the current request? Completed PRs, access and other changes will be kept.`,batchRetryPending:`Inspect and retry unfinished work`,batchFinish:`Finish this operation`,batchCleanup:`Delete temporary setup PATs in GitHub after this operation. Keep the bot PAT while repositories still consume its Secret.`,batchTechnical:`Operation details`,batchLookupUnavailable:`GitHub could not confirm that repository. Check its exact name and PAT access.`,batchSelectionInvalid:`Review the selection: choose 1–25 available repositories from this organization.`,batchAccessUnavailable:`Access is unconfirmed. Review the temporary PAT or remove this repository from the selection.`,batchSelectionBody:`Choose 1–25 repositories in {organization}. Only the repositories you select will be configured.`,batchDiscoveryUnavailable:`GitHub could not list repositories. The current repository remains available; find another by its exact name or review PAT access.`,batchDiscoveryTruncated:`This view reached its 1,000-repository limit. Search an exact repository name to add a missing target.`,batchFilter:`Filter visible repositories`,batchSelectedCount:`{count} selected · maximum 25`,batchRepositories:`Repositories`,batchPrivate:`Private`,batchPublic:`Public`,batchCurrent:`Current repository`,batchArchived:`Archived`,batchDisabled:`Disabled`,batchReadOnly:`Write access unavailable`,batchNoMatches:`No visible repositories match this filter.`,batchPrevious:`Previous`,batchNext:`Next`,batchMissingRepository:`Cannot find a repository?`,batchAccessExplanation:`Discovery shows only repositories this PAT can see. An exact-name lookup does not grant access or select the repository automatically. If you replace the temporary PAT, limit it to the repositories you intend to configure.`,batchExactName:`Exact repository name in this organization`,batchFindRepository:`Find repository`,batchChangeAccess:`Change temporary PAT access`,batchReviewSelection:`Review selected repositories`,patStorageRetain:`Keep the existing PAT Secret binding in {destination}. Its value is not requested, copied or replaced. A missing binding requires separate provisioning. Runtime identity and capability verification remain pending.`,patStorageTitle:`Bot PAT storage`,patRepositoryReplace:`Secret PAT already exists in repository {destination}. It will be replaced even when other existing Secrets are preserved.`,patOrganizationReplace:`Secret PAT already exists in organization {destination}. It will be replaced even when other existing Secrets are preserved.`,patRepositoryCreate:`The bot PAT will be stored as Secret PAT in repository {destination}.`,patOrganizationCreate:`The bot PAT will be stored as Secret PAT in organization {destination}.`,patReplacementChecks:`The supplied bot PAT must pass identity, repository access and required permission checks before this Secret is written.`,patOrganizationImpact:`Replacing this organization Secret can affect other repositories that use it. Checks for this repository do not verify their requirements.`,repositorySecretSettings:`Open repository Actions Secrets`,botAccountWarning:`You must open this link with the selected bot account: @{account}.`,botAccountHelp:`Check the GitHub account before generating the PAT. Use a private window or switch accounts if your browser is signed in as the setup operator.`,botGithubForm:`Create bot PAT as @{account}`,language:`Language`,english:`English`,spanish:`Español`,setup:`SETUP`,connecting:`Connecting…`,localSession:`LOCAL SESSION`,progress:`Setup progress`,studio:`SETUP STUDIO`,journey:`YOUR SETUP JOURNEY`,repository:`Repository`,choices:`Setup choices`,setupPat:`Setup PAT`,plan:`Plan`,botPat:`Bot PAT & credentials`,apply:`Apply`,localDesign:`Local by design`,localDesignBody:`This page runs on your computer. GitHub creates both PATs in its own browser tabs.`,preparing:`Preparing your setup…`,completeTitle:`Setup complete.`,previewTitle:`Preview complete.`,cancelledTitle:`Setup cancelled.`,blockedTitle:`Setup needs attention.`,gettingReady:`GETTING READY`,activeLede:`One decision at a time. Your choices shape the permissions, plan and credentials needed for this repository.`,resultLede:`Review the result and next action below. The terminal has additional technical detail.`,readOnly:`Read-only tab`,readOnlyBody:`Another tab controls this session. You can review progress here or explicitly take over.`,takeOver:`Take control in this tab`,attention:`Needs attention`,checked:`Checked`,pleaseNote:`Please note`,progressUpdate:`Progress update`,reviewPass:`Reviewing saved choices — pass {pass}. This is the same setup run, not a restart.`,cancelSetup:`Cancel setup`,cancelConfirm:`Cancel this local setup session? PATs already created in GitHub will still exist.`,footerLocal:`LOCALHOST ONLY`,footerCloud:`NO CLOUD SETUP ACCOUNT`,footerGithub:`GITHUB OWNS PAT ISSUANCE`,currentDecision:`CURRENT DECISION`,session:`SESSION`,continue:`Continue`,previousQuestion:`Previous question`,questionProgress:`Question {current} of {total} in this group · {overall} of {all} overall`,yes:`Yes`,no:`No`,permissionPreview:`PERMISSION PREVIEW`,changeAnswersTitle:`Change your answers`,changeAnswersHelp:`Return to a section without losing other answers. The plan and required PAT grants will be checked again.`,changeSection:`Change {section}`,editCapabilities:`Capabilities`,editRuntimes:`Agent runtimes`,editModels:`Agent models`,editRoleModels:`Per-role models`,editRepository:`Repository behavior`,editDeployment:`Release and hotfix`,editBugbot:`Bugbot`,editApproval:`PR approval`,editProjects:`Projects`,editProvisioning:`Provisioning`,editStorage:`Secrets and Variables`,suggested:`Suggested answer: {answer}. You can review choices again before creating your setup PAT.`,none:`none`,sourceGithub:`Observed from authenticated GitHub repository metadata.`,sourceConfig:`Provided by your configuration; GitHub has not replaced it.`,sourceDefault:`Product default; not verified against this repository.`,sourceLocal:`Observed in this local checkout; confirm this branch exists on GitHub before applying.`,whyMatters:`Why this matters`,whenApplies:`When it applies`,whereConfigured:`Where it is configured`,howToChoose:`How to choose`,whyRecommendation:`Why this matters`,example:`Example`,effect:`What changes`,verify:`How to check`,learnMore:`Read documentation about this setting`,resultApplied:`Your configuration was applied`,resultNoChanges:`No changes were made`,resultStopped:`No setup changes started`,resultPartial:`Check partial changes before retrying`,resultCompleteBody:`The temporary setup PAT is not revoked automatically. Delete it in GitHub after confirming your setup. Keep the bot PAT until you rotate the installed Secret.`,resultPartialBody:`A bot Secret write or another change may have succeeded. Inspect GitHub and run copilot doctor --read-only before replacing or deleting its PAT.`,resultNoChangesBody:`Copilot did not begin applying setup changes. Temporary permission checks may have run; GitHub can retain Actions, Issue or PR history after cleanup. PATs you created still exist until you delete them in GitHub.`,whatHappened:`What happened`,alreadyChanged:`Already changed`,noChanges:`No repository or GitHub setup changes were started in this session.`,nextAction:`Next action`,reasonPermissions:`The setup PAT lacked or could not confirm required permissions.`,nextPermissions:`Check the displayed grants, correct the PAT in GitHub, then start a fresh setup run.`,reasonWorkflowPermissions:`The bot PAT did not complete every required permission check. Check the failed grant and any preparation or cleanup prerequisite below.`,permissionReportTitle:`PAT permission evidence`,permissionReportLead:`Any required grants that could not be confirmed are listed below. Unverifiable does not mean missing.`,updatedSetupPatTitle:`Correct the setup PAT`,updatedSetupPatBody:`This GitHub link includes the required permissions for this setup run. Select this repository before creating the PAT. Close this local session, then start a fresh setup run with the corrected PAT.`,updatedSetupPatGrants:`Additional permissions discovered after inspection`,updatedSetupPatLink:`Create corrected setup PAT`,permissionProbeCleanupPending:`A temporary permission-test resource may still exist. Setup has stopped; do not assume cleanup succeeded.`,permissionProbeCleanupAction:`Retry with a PAT that can remove this resource. The local recovery journal is checked before any new permission tests.`,permissionSecretCollision:`GitHub reported that a Secret at the random test name was updated. A concurrent Secret value may have changed. Setup stopped without deleting it.`,permissionSecretCollisionAction:`Inspect the GitHub Secret audit trail and restore any affected value before retrying. This collision cannot be repaired from the local recovery journal.`,permissionIdentity:`GitHub identity and repository access`,permissionIdentityValid:`Verified`,permissionIdentityInvalid:`Rejected`,permissionIdentityUnknown:`Could not be confirmed`,permissionGrantNotChecked:`Not checked`,permissionReportNoFailedGrant:`No required grant failed this check. Review the intended PAT account and the terminal error before retrying.`,reasonStorage:`The selected GitHub Actions storage could not be used safely.`,nextStorage:`Inspect the Variables/Secrets scope and existing resources, then retry.`,reasonConfiguration:`The chosen configuration could not be validated.`,nextConfiguration:`Review the terminal validation details, correct the choices, and retry.`,reasonExpired:`The local setup session expired.`,nextExpired:`Start a new setup session; the old approval cannot be replayed.`,reasonCancelled:`This setup was cancelled.`,nextCancelled:`Start a new run if you still want to configure this repository.`,reasonUnknown:`Setup stopped. The browser could not determine the exact cause. Review the resource receipt when available and inspect the terminal.`,nextUnknown:`Check the final terminal error before retrying; do not assume a PAT was revoked.`,reasonProvider:`GitHub or another provider did not complete the requested operation.`,nextProvider:`Use the diagnostic reference to inspect the terminal result, check provider availability and access, then retry only after reviewing possible partial changes.`,reasonRateLimit:`GitHub temporarily limited the requests needed for setup.`,nextRateLimit:`Wait for the limit to reset. Inspect any completed changes before starting another setup run.`,diagnosticReference:`Diagnostic reference`,resourceReceipt:`Setup operation receipt`,effectCompleted:`Reported completed`,effectSkipped:`Reported skipped`,effectInspect:`Outcome needs inspection`,effectNotStarted:`Not started`,effectInProgress:`In progress; outcome not yet confirmed`,scopeLocal:`Local checkout`,scopeMixed:`Repository and organization`,receiptFiles:`Setup files`,receiptSecrets:`GitHub Actions Secrets`,receiptLabels:`Issue labels`,receiptIssueTypes:`Issue types`,receiptVariables:`GitHub Actions Variables`,receiptInitialTag:`Initial version tag`,inspectPartial:`Some setup changes may already be active. Inspect GitHub and the terminal result before retrying.`,patSettings:`Open GitHub PAT settings ↗`,closeSession:`Close local session`,sessionClosed:`Local session closed`,sessionClosedBody:`The local server accepted the close request. This page has stopped contacting it and retains the result. Closing the session does not revoke any PAT created in GitHub.`,doctorHelp:`After success, you can verify installed resources here without dispatching Actions. Or run copilot doctor --read-only from the repository root with the temporary setup PAT and the same non-secret --config file, if used.`,doctorRun:`Verify installed setup (read-only)`,doctorRunning:`Checking installed resources without dispatching Actions…`,doctorPassed:`Read-only verification found no failing checks.`,doctorWarnings:`Read-only verification needs attention.`,doctorFailed:`Read-only verification did not finish. Check the terminal or run the command below.`,doctorCounts:`{pass} passed · {warn} warnings · {fail} failed · {skipped} skipped.`,doctorSecretLimit:`Secret values cannot be verified in this mode.`,botRenewal:`The bot PAT stays in the selected GitHub Actions Secret for future runs. Its actual expiry is not verified here; record it in GitHub and rotate the Secret before expiry.`,working:`Working on the next step`,workingBody:`The local process is checking your answers and preparing the next decision. Keep this page open.`,repoFocus:`Repository in focus`,repoFocusBody:`This setup configures the repository below. Organization Secrets and Variables may be shared with other repositories.`,access:`access`,readOnlyCheck:`Capability check`,provisionalGrants:`Provisional least-privilege grants`,conditionalGrants:`Conditional grants depend on the choices and GitHub facts. A final audit runs before setup changes.`,permissionEvidenceVerified:`A GitHub read confirmed this access.`,permissionEvidenceVerifiedWrite:`A temporary resource was created, read, and removed.`,permissionEvidencePrivateProject:`A non-public organization Project confirmed Projects read access.`,permissionEvidenceMissing:`GitHub rejected the required access. Check the PAT settings.`,permissionEvidenceWrite:`The temporary write check did not finish successfully. Review the failed phase and retry.`,permissionEvidencePublic:`The read succeeded, but this public resource does not independently prove the PAT grant.`,permissionEvidencePublicProjects:`The Projects read succeeded, including an empty result. Private Project access is checked when a Project is selected.`,permissionEvidenceUnknownRead:`The read check was inconclusive. Review the terminal detail and retry if needed.`,permissionUnknown:`This permission needs review. Check its exact grant and technical explanation in the terminal before continuing.`,permissionsFollow:`Permissions follow your choices`,permissionsFollowBody:`We’ll show the exact grants before you create each PAT. Nothing is created just by opening this page.`,files:`Files`,workflows:`Workflows`,variables:`Variables`,secretNames:`Secret names`,planBody:`Review exactly what this run may change. Approval first runs temporary PAT write checks, then collects the bot PAT and other credentials. GitHub may retain workflow runs, Issue or PR history, or notifications from those checks.`,planPermissionProbeTitle:`Temporary permission checks after approval`,planPermissionProbeBody:`Each listed permission creates, reads and removes its own temporary resource. The Issues check creates a visible Issue; if GitHub denies deletion, setup closes it, reports its number and stops. Actions, Issues and Pull requests may leave history or notifications.`,planActionsProbePrerequisites:`The Actions check needs Contents Write to create its isolated branch. If the exact packaged health workflow is unavailable on the default branch, it also needs Workflows Write to prepare a disabled-job override. For the bot check, the setup PAT prepares and cleans the fixture; the bot PAT dispatches and reads its run. A blocked prerequisite does not prove Actions is missing.`,planSecretProbeLimit:`GitHub only offers an upsert for Secrets. The check uses a private random name and confirms it is absent first, but GitHub cannot guarantee atomic create-only behavior. If it reports an update, setup stops and asks you to inspect the Secret audit trail.`,planChoices:`Your key decisions`,planEnabledCapabilities:`Enabled capabilities`,planBranchRoles:`Production / development branch`,planApprovalMode:`Pull-request approval`,planVariableScope:`Variables scope`,planSecretScope:`Secrets scope`,planInitialTag:`Create initial tag`,planAgentRouting:`Agent and model for each task`,planIssueWorkflows:`Issue workflows`,planTrustedChecks:`Trusted CI producers`,planCoverage:`Coverage evidence`,planProjectStatuses:`Project Status transitions`,planIssueResources:`Issue labels and issue types`,planIssueResourcesValue:`Checked or provisioned during Apply`,planProducerAttested:`CI identity and enforcing step verified by you`,planCoverageThreshold:`Minimum changed-line coverage`,planCoverageReporter:`Artifact-publishing workflow`,planReporterAttested:`Coverage reporter verified by you`,planAdvancedDefaults:`The plan also includes defaults for settings you did not change. Use Change below to inspect any section before approving.`,planUnknownWarning:`An additional plan warning could not be displayed here. Read the terminal warning before approving.`,planBasicDefaultsIntro:`Basic setup retained these advanced defaults. Open a section below to review or change them:`,scopeRepository:`Repository`,scopeOrganization:`Organization`,scopeDisabled:`Not provisioned`,approvalOff:`Off`,approvalRecommend:`Recommendation only`,approvalGuarded:`Guarded approval`,beforeContinue:`Before you continue`,stopHere:`Stop here`,approvePlan:`Approve this plan`,githubLink:`Open GitHub link ↗`,githubForm:`Open the official GitHub PAT form`,githubFormHelp:`Check the signed-in account, select Only select repositories, then select this repository. GitHub handles 2FA and creates the PAT.`,pasteHere:`Paste the value here`,yourAnswer:`Your answer`,hiddenAfter:`Hidden after submission`,typeAnswer:`Type your answer`,secretHelp:`Sent only to this local process. It will not be shown again or saved in browser storage.`,pairTitle:`Pair this browser`,pairLabel:`Pairing code from terminal`,pairPlaceholder:`16 hexadecimal characters`,pairBody:`Find the 16-character pairing code in the terminal that started copilot setup --web. Enter it here to view or control this setup. The code is never placed in the browser URL or stored after this page closes.`,pairHelp:`Keep the code private. After refreshing this page, enter it again to reconnect.`,pairButton:`Connect to local setup`,privateSession:`PRIVATE LOCAL SESSION`,theme:`Color theme`,themeAuto:`Auto`,themeSystem:`Follow system theme`,themeLight:`Light theme`,themeDark:`Dark theme`,selectOne:`Select one`,ciRun:`Open CI run on GitHub ↗`,manualCheck:`Check not listed? Enter exact name|App ID|workflow, separated by semicolons.`,checksObserved:`Recent CI jobs were found. Open each run and verify the exact job, App and enforcing coverage step before trusting it.`,checksNoRecent:`No recent pull-request workflow runs were found. Run your normal CI on a real pull request, or enter an exact producer manually.`,checksNoVerifiable:`Recent runs exist, but no job could be linked to an exact Check Run and App identity. Inspect GitHub or enter an exact producer manually.`,checksDenied:`GitHub did not allow CI discovery. Give the setup PAT Actions: read and Checks: read, or enter an exact producer manually.`,checksUnavailable:`GitHub CI discovery could not complete. This is not evidence that the repository has no checks. Retry setup or enter an exact producer manually.`,projectsObserved:`These existing Projects belong to the repository owner. Select only Projects this automation should update.`,projectsEmpty:`This bounded GitHub query returned no open, accessible organization Projects; it does not prove none exist. Check access or enter a verified Project number.`,projectsDenied:`GitHub did not allow Project discovery. Check organization Projects: read on the setup PAT, or enter Project numbers manually.`,projectsUnavailable:`GitHub Project discovery could not complete. This is not evidence that no Projects exist. Enter a verified Project number manually or retry.`,projectsUnsupported:`GitHub does not support listing personal Projects with a fine-grained PAT through this endpoint. Enter an existing Project number from its URL.`,discoveryTruncated:`Only a bounded sample of accessible Projects or recent checks was inspected. Use manual entry for an item not shown.`,checksDiscoveryScope:`Search scope: select up to 20 PR runs from the latest 1,000 workflow runs (up to 10 pages) within 90 days; at most 15 runs and 100 checks per commit are inspected.`,projectsDiscoveryScope:`Search scope: at most 30 open, accessible organization Projects from two pages; up to 100 fields are inspected per Project. Closed Projects are excluded.`,retryDiscovery:`Retry GitHub discovery`,retryRemaining:`{count} read-only retries left. Your answers stay here.`,retryExhausted:`No discovery retries remain. Inspect GitHub and use the manual option if the item is missing.`,observationTimeUnknown:`observation time unavailable`,branchRequirementUnknown:`Required by branch rule: not checked`,branchRequirementObserved:`Required on {branch} by an active ruleset for this exact check and App.`,ciRule:`Open required-check ruleset ↗`,projectSharedStatus:`All selected Projects must share each chosen Status value. This setup cannot assign a different Status vocabulary per Project.`,fixedWorkflowEnabled:`Your configuration fixes features.{kind}=true. Keep {kind} selected; edit --config or flags to change this.`,fixedWorkflowDisabled:`Your configuration fixes features.{kind}=false. Leave {kind} unselected; edit --config or flags to change this.`,fixedIssuesRequired:`Your configuration explicitly enables release or hotfix automation. Keep Issues enabled, or change --config or flags first.`,projectSelectionNotObserved:`Previously selected Project numbers are retained, but no longer appear in this GitHub result. Verify each in GitHub or remove it.`,removeSelection:`Remove selection`,projectTransitionIssueCreated:`New issue`,projectTransitionPullRequestCreated:`New pull request`,projectTransitionIssueInProgress:`Issue in progress`,projectTransitionPullRequestInProgress:`Pull request in progress`,projectUrl:`Open Project on GitHub ↗`,projectManual:`Project not listed? Enter its positive number or exact GitHub URL. PVT_ IDs are not accepted.`,projectStatusUnavailable:`Status options could not be verified for every selected Project. Enter the exact existing Status value after checking each Project in GitHub.`,projectStatusIncompatible:`Selected Projects have no shared Status values. Choose compatible Projects before continuing.`,producerName:`Check/job name`,producerAppId:`Source GitHub App ID`,producerWorkflow:`Workflow name`,producerAdd:`Add exact check`,producerRemove:`Remove check`,producerManualHelp:`Use the exact identity shown on GitHub. Adding it does not attest that it enforces coverage.`,producerManualInvalid:`Enter a check name, positive numeric App ID and workflow name. Do not use | or ; in names. Commas are allowed.`,translationPreviewTitle:`Translation review in progress`,translationPreviewBody:`First-party setup questions are translated. Some dynamic GitHub or provider diagnostics may still appear in English while localization review finishes. Changing language does not change your answers.`,unknownLocalError:`An unexpected local setup error occurred. Check the terminal for details, then refresh or restart setup.`},Wi={setupHelp:`Ayuda de configuración`,setupTutorial:`Tutorial de configuración`,firstWorkflowGuide:`Primer flujo de issue a PR`,setupRecovery:`Resolver problemas`,setupHelpHint:`La documentación se abre en otra pestaña. Tus respuestas se conservan aquí.`,setupNextWorkflow:`Instala los archivos revisados y comprueba la Action en GitHub. Una inspección de metadatos no demuestra que funcione en ejecución.`,batchNextActions:`Siguientes pasos`,batchStatusReady:`Listo para revisar`,batchStatusBlocked:`Requiere una acción`,batchStatusApplying:`Aplicando el plan revisado`,batchStatusPartial:`Aplicado parcialmente; revisa antes de reintentar`,batchStatusWaiting:`PR creada · pendiente de merge por un mantenedor`,batchStatusPending:`Configuración aplicada · verificación pendiente`,batchStatusUnchanged:`Ya coincide · sin cambios`,batchStatusCancelled:`Trabajo pendiente detenido; se conservan los cambios completados`,batchConfigurationPreview:`Vista previa de la configuración. Se añadirá a la revisión del lote. Las pruebas de permisos y la instalación esperan a que apruebes el lote completo.`,batchUseConfiguration:`Usar esta configuración`,planReuseBody:`Aprueba las pruebas temporales de permisos indicadas y después se aplicará el setup revisado. Los valores de los Secrets existentes se conservan y no se solicitan ni se sustituyen. La verificación de permisos en ejecución puede quedar pendiente.`,organizationReuseTitle:`Reutilización de la configuración existente`,organizationReuseBody:`{imported} ajustes compatibles importados. Se conservan {shared} Variables de organización y {overrides} del repositorio; se escriben {writes} Variables en el repositorio. Los valores compartidos y los Secrets existentes se conservan.`,batchBranchReview:`Rama de instalación y base revisada`,batchFocusTitle:`Repositorios seleccionados`,batchFocusBody:`{count} repositorios seleccionados explícitamente en esta organización. Revisa cada destino por separado.`,batchReviewTitle:`Revisa los planes de setup`,batchProgressTitle:`Aplicando los planes por repositorio`,batchResultTitle:`Resultados del setup por repositorio`,batchProgressBody:`Se aplican los planes aprobados por orden. Detener pausa el trabajo pendiente después de la petición actual; los cambios y las PRs completadas se conservan.`,batchReviewBody:`Aprueba solo los planes listos que aparecen abajo. El setup avanza por orden, añade el acceso revisado sin sustituir valores compartidos y crea una PR por cada repositorio con cambios. No hace merge, crea tags, publica versiones ni despliega.`,batchResultBody:`Una PR de setup todavía necesita revisión y merge por un mantenedor. La verificación de credenciales y permisos en ejecución puede quedar pendiente. Las PRs y los accesos completados se conservan si otro destino se detiene.`,batchStopping:`Deteniendo el trabajo pendiente tras la petición actual. Los cambios completados se conservarán.`,batchReasonDrift:`La base revisada o su titularidad han cambiado. Inspecciona el repositorio y revisa un plan nuevo.`,batchReasonProvider:`GitHub no ha confirmado el último paso. El reintento inspecciona lo existente antes de continuar.`,batchCleanupPending:`No se pudo confirmar la limpieza de la comprobación de permisos. El trabajo pendiente está detenido. Revisa el historial de GitHub y el registro local de recuperación; resuelve la limpieza antes de iniciar un setup nuevo. Esta operación no puede reanudar escrituras.`,batchReasonCancelled:`El trabajo pendiente se detuvo. Se conservaron los cambios completados.`,batchReasonPreflight:`Revisa el acceso, los secretos requeridos y los ajustes específicos del repositorio antes de continuar.`,batchOpenPull:`Abrir PR de setup`,batchFilesCount:`{count} archivos con cambios`,batchVariablesCount:`{count} cambios en Variables del repositorio`,batchGrantsCount:`{count} accesos que se añadirán para este repositorio`,batchRetainedSecrets:`Secrets existentes que se conservan`,batchResourcesExplanation:`Los labels y los Issue Types habilitados se preparan por separado para este destino. Se conservan los valores de los Secrets compartidos y el acceso de los demás repositorios.`,batchReviewFiles:`Inspeccionar archivos propuestos`,batchDeleteFile:`Este archivo gestionado por el setup se retirará del árbol de instalación; inspecciona la copia conservada.`,batchRepositoryOverrides:`Revisar nombres de Variables del repositorio`,batchReviewedAccess:`Revisar accesos que se añadirán`,batchApplyPlans:`Aplicar planes listos`,batchLeavePreview:`Salir sin aplicar`,batchStopPending:`Detener trabajo pendiente`,batchStopConfirm:`¿Detener el trabajo pendiente tras la petición actual? Se conservarán las PRs, los accesos y los cambios completados.`,batchRetryPending:`Inspeccionar y reintentar lo pendiente`,batchFinish:`Finalizar esta operación`,batchCleanup:`Elimina los PATs temporales de setup en GitHub al terminar. Conserva el PAT del bot mientras los repositorios consuman su Secret.`,batchTechnical:`Detalles de la operación`,batchLookupUnavailable:`GitHub no ha podido confirmar ese repositorio. Revisa el nombre exacto y el acceso del PAT.`,batchSelectionInvalid:`Revisa la selección: elige entre 1 y 25 repositorios disponibles de esta organización.`,batchAccessUnavailable:`El acceso no está confirmado. Revisa el PAT temporal o quita este repositorio de la selección.`,batchSelectionBody:`Elige entre 1 y 25 repositorios de {organization}. Solo se configurarán los que selecciones.`,batchDiscoveryUnavailable:`GitHub no ha podido listar los repositorios. Puedes seleccionar el actual, buscar otro por su nombre exacto o revisar el acceso del PAT.`,batchDiscoveryTruncated:`Esta vista ha alcanzado el límite de 1.000 repositorios. Busca por nombre exacto para añadir uno que falte.`,batchFilter:`Filtrar repositorios visibles`,batchSelectedCount:`{count} seleccionados · máximo 25`,batchRepositories:`Repositorios`,batchPrivate:`Privado`,batchPublic:`Público`,batchCurrent:`Repositorio actual`,batchArchived:`Archivado`,batchDisabled:`Deshabilitado`,batchReadOnly:`Sin acceso de escritura`,batchNoMatches:`Ningún repositorio visible coincide con el filtro.`,batchPrevious:`Anterior`,batchNext:`Siguiente`,batchMissingRepository:`¿No encuentras un repositorio?`,batchAccessExplanation:`La lista solo muestra los repositorios visibles para este PAT. Buscar por nombre exacto no concede acceso ni selecciona el repositorio automáticamente. Si sustituyes el PAT temporal, limítalo a los repositorios que quieras configurar.`,batchExactName:`Nombre exacto del repositorio en esta organización`,batchFindRepository:`Buscar repositorio`,batchChangeAccess:`Cambiar acceso del PAT temporal`,batchReviewSelection:`Revisar repositorios seleccionados`,patStorageRetain:`Se conserva el Secret PAT existente en {destination}. No se pide, copia ni sustituye su valor. Si falta, debe crearse por separado. La verificación de la identidad y los permisos en ejecución queda pendiente.`,patStorageTitle:`Almacenamiento del PAT del bot`,patRepositoryReplace:`El Secret PAT ya existe en el repositorio {destination}. Se sustituirá aunque hayas elegido preservar los demás Secrets existentes.`,patOrganizationReplace:`El Secret PAT ya existe en la organización {destination}. Se sustituirá aunque hayas elegido preservar los demás Secrets existentes.`,patRepositoryCreate:`El PAT del bot se guardará como Secret PAT en el repositorio {destination}.`,patOrganizationCreate:`El PAT del bot se guardará como Secret PAT en la organización {destination}.`,patReplacementChecks:`El PAT del bot que introduzcas debe superar las comprobaciones de identidad, acceso al repositorio y permisos necesarios antes de escribir este Secret.`,patOrganizationImpact:`Sustituir este Secret de organización puede afectar a otros repositorios que lo utilizan. Las comprobaciones para este repositorio no verifican los requisitos de los demás.`,repositorySecretSettings:`Abrir los Secrets de Actions del repositorio`,botAccountWarning:`Debes abrir este enlace con la cuenta de bot seleccionada: @{account}.`,botAccountHelp:`Comprueba la cuenta de GitHub antes de generar el PAT. Usa una ventana privada o cambia de cuenta si el navegador tiene la sesión del operador del setup.`,botGithubForm:`Crear PAT del bot como @{account}`,language:`Idioma`,english:`English`,spanish:`Español`,setup:`CONFIGURACIÓN`,connecting:`Conectando…`,localSession:`SESIÓN LOCAL`,progress:`Progreso de la configuración`,studio:`ASISTENTE DE CONFIGURACIÓN`,journey:`TU RECORRIDO`,repository:`Repositorio`,choices:`Opciones de configuración`,setupPat:`PAT de configuración`,plan:`Plan`,botPat:`PAT del bot y credenciales`,apply:`Aplicar`,localDesign:`Local por diseño`,localDesignBody:`Esta página se ejecuta en tu ordenador. GitHub crea ambos PAT en sus propias pestañas.`,preparing:`Preparando la configuración…`,completeTitle:`Configuración completada.`,previewTitle:`Vista previa completada.`,cancelledTitle:`Configuración cancelada.`,blockedTitle:`La configuración necesita atención.`,gettingReady:`PREPARANDO`,activeLede:`Una decisión cada vez. Tus elecciones determinan los permisos, el plan y las credenciales que necesita este repositorio.`,resultLede:`Revisa abajo el resultado y el siguiente paso. La terminal contiene más detalles técnicos.`,readOnly:`Pestaña de solo lectura`,readOnlyBody:`Otra pestaña controla esta sesión. Puedes ver el progreso aquí o tomar el control explícitamente.`,takeOver:`Tomar el control en esta pestaña`,attention:`Necesita atención`,checked:`Comprobado`,pleaseNote:`Ten en cuenta`,progressUpdate:`Actualización de progreso`,reviewPass:`Revisando las opciones guardadas — pasada {pass}. Es la misma ejecución, no un reinicio.`,cancelSetup:`Cancelar configuración`,cancelConfirm:`¿Cancelar esta sesión local? Los PAT ya creados en GitHub seguirán existiendo.`,footerLocal:`SOLO LOCALHOST`,footerCloud:`SIN CUENTA DE CONFIGURACIÓN EN LA NUBE`,footerGithub:`GITHUB EMITE LOS PAT`,currentDecision:`DECISIÓN ACTUAL`,session:`SESIÓN`,continue:`Continuar`,previousQuestion:`Pregunta anterior`,questionProgress:`Pregunta {current} de {total} en este grupo · {overall} de {all} en total`,yes:`Sí`,no:`No`,permissionPreview:`VISTA PREVIA DE PERMISOS`,changeAnswersTitle:`Cambiar respuestas`,changeAnswersHelp:`Vuelve a una sección sin perder las demás respuestas. Se comprobarán de nuevo el plan y los permisos necesarios del PAT.`,changeSection:`Cambiar {section}`,editCapabilities:`Funciones`,editRuntimes:`Agentes`,editModels:`Modelos de agentes`,editRoleModels:`Modelos por tarea`,editRepository:`Comportamiento del repositorio`,editDeployment:`Releases y hotfixes`,editBugbot:`Bugbot`,editApproval:`Aprobación de PR`,editProjects:`Projects`,editProvisioning:`Aprovisionamiento`,editStorage:`Secrets y Variables`,suggested:`Respuesta sugerida: {answer}. Podrás revisar las opciones antes de crear el PAT de configuración.`,none:`ninguna`,sourceGithub:`Consultado en los metadatos autenticados de este repositorio en GitHub.`,sourceConfig:`Valor de tu configuración; GitHub no lo ha sustituido.`,sourceDefault:`Valor predeterminado del producto; no verificado en este repositorio.`,sourceLocal:`Observado en este checkout local; confirma que la rama existe en GitHub antes de aplicar cambios.`,whyMatters:`Por qué importa`,whenApplies:`Cuándo se aplica`,whereConfigured:`Dónde se configura`,howToChoose:`Cómo elegir`,whyRecommendation:`Por qué importa`,example:`Ejemplo`,effect:`Qué cambia`,verify:`Cómo comprobarlo`,learnMore:`Leer documentación de esta opción`,resultApplied:`Tu configuración se ha aplicado`,resultNoChanges:`No se hicieron cambios`,resultStopped:`No se empezó a aplicar la configuración`,resultPartial:`Revisa los cambios parciales antes de reintentar`,resultCompleteBody:`El PAT temporal de configuración no se revoca automáticamente. Elimínalo en GitHub tras comprobar el resultado. Conserva el PAT del bot hasta que rotes el Secret instalado.`,resultPartialBody:`Puede haberse escrito el Secret del bot u otro recurso. Revisa GitHub y ejecuta copilot doctor --read-only antes de reemplazar o eliminar ese PAT.`,resultNoChangesBody:`Copilot no empezó a aplicar cambios de configuración. Puede haber ejecutado pruebas temporales de permisos; GitHub puede conservar historial de Actions, Issues o PR después de limpiarlas. Los PAT creados siguen allí hasta que los elimines.`,whatHappened:`Qué ha pasado`,alreadyChanged:`Qué ha cambiado`,noChanges:`No se iniciaron cambios de configuración en el repositorio ni en GitHub durante esta sesión.`,nextAction:`Siguiente paso`,reasonPermissions:`Faltan permisos del PAT de configuración o no pudieron confirmarse.`,nextPermissions:`Comprueba los permisos mostrados, corrige el PAT en GitHub e inicia una nueva sesión.`,reasonWorkflowPermissions:`El PAT del bot no completó todas las comprobaciones de permisos. Revisa el permiso fallido y los requisitos de preparación o limpieza indicados abajo.`,permissionReportTitle:`Comprobación de permisos del PAT`,permissionReportLead:`Se muestran los permisos obligatorios que no pudieron confirmarse. «No verificable» no significa «ausente».`,updatedSetupPatTitle:`Corrige el PAT de configuración`,updatedSetupPatBody:`Este enlace de GitHub incluye los permisos necesarios para esta configuración. Selecciona este repositorio antes de crear el PAT. Cierra esta sesión local e inicia una nueva configuración con el PAT corregido.`,updatedSetupPatGrants:`Permisos adicionales detectados tras la inspección`,updatedSetupPatLink:`Crear PAT de configuración corregido`,permissionProbeCleanupPending:`Puede quedar un recurso temporal de comprobación de permisos. El setup se ha detenido; no supongas que se eliminó.`,permissionProbeCleanupAction:`Reintenta con un PAT capaz de eliminarlo. Se revisa el registro local de recuperación antes de nuevas pruebas.`,permissionSecretCollision:`GitHub indicó que se actualizó un Secret con el nombre aleatorio de prueba. Es posible que haya cambiado un valor creado a la vez. El setup se detuvo sin eliminarlo.`,permissionSecretCollisionAction:`Revisa el historial de Secrets de GitHub y restaura cualquier valor afectado antes de reintentar. El registro local de recuperación no puede reparar esta colisión.`,permissionIdentity:`Identidad de GitHub y acceso al repositorio`,permissionIdentityValid:`Verificados`,permissionIdentityInvalid:`Rechazados`,permissionIdentityUnknown:`No se pudieron confirmar`,permissionGrantNotChecked:`Sin comprobar`,permissionReportNoFailedGrant:`La comprobación no detectó un permiso obligatorio fallido. Revisa la cuenta prevista para el PAT y el error de la terminal antes de reintentarlo.`,reasonStorage:`No se pudo usar de forma segura el almacenamiento elegido de GitHub Actions.`,nextStorage:`Revisa el ámbito de Variables/Secrets y los recursos existentes; después, reinténtalo.`,reasonConfiguration:`No se pudo validar la configuración elegida.`,nextConfiguration:`Revisa el detalle de validación en la terminal, corrige las opciones y reinténtalo.`,reasonExpired:`La sesión local caducó.`,nextExpired:`Inicia una sesión nueva; la aprobación anterior no puede reutilizarse.`,reasonCancelled:`La sesión se canceló.`,nextCancelled:`Inicia una nueva ejecución si todavía quieres configurar este repositorio.`,reasonUnknown:`La configuración se detuvo. El navegador no pudo determinar la causa exacta. Revisa el recibo de recursos, si está disponible, y consulta la terminal.`,nextUnknown:`Consulta el último error de la terminal antes de reintentar; no supongas que se revocó ningún PAT.`,reasonProvider:`GitHub u otro proveedor no completó la operación solicitada.`,nextProvider:`Usa la referencia de diagnóstico para consultar la terminal, comprueba la disponibilidad y el acceso al proveedor y revisa posibles cambios parciales antes de reintentar.`,reasonRateLimit:`GitHub ha limitado temporalmente las solicitudes necesarias para la configuración.`,nextRateLimit:`Espera a que se restablezca el límite. Inspecciona los cambios completados antes de iniciar otra configuración.`,diagnosticReference:`Referencia de diagnóstico`,resourceReceipt:`Registro de operaciones de configuración`,effectCompleted:`Marcada como completada`,effectSkipped:`Marcada como omitida`,effectInspect:`Resultado pendiente de inspección`,effectNotStarted:`No iniciada`,effectInProgress:`En curso; resultado aún sin confirmar`,scopeLocal:`Checkout local`,scopeMixed:`Repositorio y organización`,receiptFiles:`Archivos de configuración`,receiptSecrets:`Secrets de GitHub Actions`,receiptLabels:`Etiquetas de issues`,receiptIssueTypes:`Tipos de issue`,receiptVariables:`Variables de GitHub Actions`,receiptInitialTag:`Etiqueta de versión inicial`,inspectPartial:`Algunos cambios podrían estar activos. Revisa GitHub y el resultado de la terminal antes de reintentar.`,patSettings:`Abrir ajustes de PAT en GitHub ↗`,closeSession:`Cerrar sesión local`,sessionClosed:`Sesión local cerrada`,sessionClosedBody:`El servidor local aceptó la solicitud de cierre. Esta página deja de consultarlo y conserva el resultado. Cerrar la sesión no revoca ningún PAT creado en GitHub.`,doctorHelp:`Tras completar el setup, puedes comprobar aquí los recursos instalados sin lanzar Actions. También puedes ejecutar copilot doctor --read-only desde la raíz del repositorio con el PAT temporal y el mismo archivo --config no secreto, si lo usaste.`,doctorRun:`Comprobar instalación (solo lectura)`,doctorRunning:`Comprobando los recursos instalados sin lanzar Actions…`,doctorPassed:`La comprobación de solo lectura no encontró fallos.`,doctorWarnings:`La comprobación de solo lectura requiere atención.`,doctorFailed:`La comprobación de solo lectura no terminó. Revisa la terminal o ejecuta el comando indicado abajo.`,doctorCounts:`{pass} correctas · {warn} avisos · {fail} fallos · {skipped} omitidas.`,doctorSecretLimit:`Este modo no puede verificar los valores de Secrets.`,botRenewal:`El PAT del bot permanece en el Secret de GitHub Actions seleccionado para futuras ejecuciones. Su fecha real de caducidad no se verifica aquí; anótala en GitHub y rota el Secret antes de que venza.`,working:`Preparando el siguiente paso`,workingBody:`El proceso local comprueba tus respuestas y prepara la siguiente decisión. Mantén esta página abierta.`,repoFocus:`Repositorio seleccionado`,repoFocusBody:`Este setup configura el repositorio indicado. Los Secrets y Variables de organización pueden compartirse con otros repositorios.`,access:`acceso`,readOnlyCheck:`Comprobación de capacidades`,provisionalGrants:`Permisos provisionales de mínimo privilegio`,conditionalGrants:`Los permisos condicionales dependen de tus elecciones y de GitHub. Se hará una auditoría final antes de cualquier cambio.`,permissionEvidenceVerified:`Una lectura de GitHub confirmó este acceso.`,permissionEvidenceVerifiedWrite:`Se creó, leyó y eliminó un recurso temporal.`,permissionEvidencePrivateProject:`Un Project no público de la organización confirmó el acceso de lectura a Projects.`,permissionEvidenceMissing:`GitHub rechazó el acceso necesario. Comprueba los ajustes del PAT.`,permissionEvidenceWrite:`La comprobación temporal de escritura no terminó correctamente. Revisa la fase fallida y vuelve a intentarlo.`,permissionEvidencePublic:`La lectura funcionó, pero este recurso público no demuestra por sí solo el permiso del PAT.`,permissionEvidencePublicProjects:`La lectura de Projects funcionó, incluso si devolvió una lista vacía. El acceso a Projects privados se comprueba al seleccionarlos.`,permissionEvidenceUnknownRead:`La consulta de lectura no fue concluyente. Revisa el detalle en la terminal y reintenta si hace falta.`,permissionUnknown:`Este permiso requiere revisión. Comprueba en la terminal el permiso exacto y su explicación técnica antes de continuar.`,permissionsFollow:`Los permisos dependen de tus elecciones`,permissionsFollowBody:`Mostraremos los permisos exactos antes de crear cada PAT. Abrir esta página no crea nada.`,files:`Archivos`,workflows:`Workflows`,variables:`Variables`,secretNames:`Nombres de Secrets`,planBody:`Revisa exactamente lo que podría cambiar. Al aprobar, se prueban los permisos de escritura del PAT con recursos temporales; después se pedirán el PAT del bot y otras credenciales. GitHub puede conservar ejecuciones, historial de Issues o PR y notificaciones de esas pruebas.`,planPermissionProbeTitle:`Pruebas temporales de permisos tras aprobar`,planPermissionProbeBody:`Cada permiso indicado crea, lee y elimina su propio recurso temporal. La prueba de Issues crea un Issue visible; si GitHub impide borrarlo, el setup lo cierra, informa de su número y se detiene. Actions, Issues y Pull requests pueden dejar historial o notificaciones.`,planActionsProbePrerequisites:`La prueba de Actions necesita Contents Write para crear su rama aislada. Si el workflow de salud empaquetado exacto no está disponible en la rama predeterminada, también necesita Workflows Write para preparar una versión con los jobs desactivados. Al comprobar el bot, el PAT de setup prepara y limpia el recurso; el PAT del bot lanza y lee su ejecución. Un requisito bloqueado no demuestra que falte Actions.`,planSecretProbeLimit:`GitHub solo permite crear o actualizar Secrets con la misma operación. La prueba usa un nombre aleatorio privado y comprueba antes que no exista, pero GitHub no garantiza una creación atómica. Si informa de una actualización, el setup se detiene y te pide revisar el historial del Secret.`,planChoices:`Tus decisiones principales`,planEnabledCapabilities:`Funciones activadas`,planBranchRoles:`Rama de producción / desarrollo`,planApprovalMode:`Aprobación de pull requests`,planVariableScope:`Ámbito de Variables`,planSecretScope:`Ámbito de Secrets`,planInitialTag:`Crear etiqueta inicial`,planAgentRouting:`Agente y modelo por tarea`,planIssueWorkflows:`Flujos de issues`,planTrustedChecks:`Productores de CI fiables`,planCoverage:`Prueba de cobertura`,planProjectStatuses:`Transiciones de Status en Projects`,planIssueResources:`Etiquetas y tipos de issue`,planIssueResourcesValue:`Se comprobarán o crearán al aplicar`,planProducerAttested:`Identidad de CI y paso obligatorio comprobados por ti`,planCoverageThreshold:`Cobertura mínima de líneas modificadas`,planCoverageReporter:`Workflow que publica el artefacto`,planReporterAttested:`Generador de cobertura comprobado por ti`,planAdvancedDefaults:`El plan también incluye valores predeterminados de ajustes que no cambiaste. Usa Cambiar más abajo para revisar cualquier sección antes de aprobar.`,planUnknownWarning:`Hay un aviso adicional del plan que no se puede mostrar aquí. Léelo en la terminal antes de aprobar.`,planBasicDefaultsIntro:`El modo básico conservó estos ajustes avanzados. Abre una sección más abajo para revisarlos o cambiarlos:`,scopeRepository:`Repositorio`,scopeOrganization:`Organización`,scopeDisabled:`Sin aprovisionar`,approvalOff:`Desactivada`,approvalRecommend:`Solo recomendaciones`,approvalGuarded:`Aprobación protegida`,beforeContinue:`Antes de continuar`,stopHere:`Detener aquí`,approvePlan:`Aprobar este plan`,githubLink:`Abrir enlace de GitHub ↗`,githubForm:`Abrir el formulario oficial de PAT de GitHub`,githubFormHelp:`Comprueba la cuenta activa, elige Only select repositories y selecciona este repositorio. GitHub gestiona el 2FA y crea el PAT.`,pasteHere:`Pega aquí el valor`,yourAnswer:`Tu respuesta`,hiddenAfter:`Oculto tras enviarlo`,typeAnswer:`Escribe tu respuesta`,secretHelp:`Se envía solo a este proceso local. No volverá a mostrarse ni se guardará en el almacenamiento del navegador.`,pairTitle:`Vincula este navegador`,pairLabel:`Código de vinculación de la terminal`,pairPlaceholder:`16 caracteres hexadecimales`,pairBody:`Busca el código de 16 caracteres en la terminal donde ejecutaste copilot setup --web. Introdúcelo para ver o controlar la sesión. No aparece en la URL ni se almacena al cerrar la página.`,pairHelp:`Mantén el código en privado. Tras actualizar la página, introdúcelo de nuevo para reconectar.`,pairButton:`Conectar a la configuración local`,privateSession:`SESIÓN LOCAL PRIVADA`,theme:`Tema de color`,themeAuto:`Sistema`,themeSystem:`Seguir tema del sistema`,themeLight:`Tema claro`,themeDark:`Tema oscuro`,selectOne:`Selecciona una opción`,ciRun:`Abrir ejecución de CI en GitHub ↗`,manualCheck:`¿No aparece el check? Introduce nombre|ID de App|workflow exactos, separados por punto y coma.`,checksObserved:`Se encontraron jobs recientes de CI. Abre cada ejecución y comprueba el job, la App y el paso obligatorio de cobertura antes de confiar en él.`,checksNoRecent:`No hay ejecuciones recientes de workflows de pull request. Ejecuta tu CI habitual en un PR real o introduce manualmente un productor exacto.`,checksNoVerifiable:`Hay ejecuciones recientes, pero ningún job pudo vincularse a un Check Run y una App concretos. Revisa GitHub o introduce el productor manualmente.`,checksDenied:`GitHub no permitió consultar los checks. Concede Actions: read y Checks: read al PAT de configuración, o introduce el productor manualmente.`,checksUnavailable:`No se pudo completar la consulta de CI. Esto no significa que el repositorio no tenga checks. Reintenta o introduce el productor manualmente.`,projectsObserved:`Estos Projects existentes pertenecen al dueño del repositorio. Selecciona solo los que deba actualizar la automatización.`,projectsEmpty:`Esta consulta limitada no devolvió Projects abiertos y accesibles; eso no demuestra que no existan. Comprueba el acceso o introduce un número verificado.`,projectsDenied:`GitHub no permitió consultar Projects. Comprueba Projects: read de la organización en el PAT o introduce los números manualmente.`,projectsUnavailable:`No se pudo consultar Projects. Eso no demuestra que no existan. Introduce un número verificado o reintenta.`,projectsUnsupported:`GitHub no permite listar Projects personales con un PAT de permisos precisos mediante esta API. Introduce el número de la URL de un Project existente.`,discoveryTruncated:`Solo se inspeccionó una muestra limitada de Projects accesibles o checks recientes. Usa la entrada manual si falta uno.`,checksDiscoveryScope:`Alcance: hasta 20 ejecuciones de PR entre las últimas 1.000 ejecuciones de workflows (hasta 10 páginas) de los últimos 90 días; se inspeccionan como máximo 15 ejecuciones y 100 checks por commit.`,projectsDiscoveryScope:`Alcance: hasta 30 Projects abiertos y accesibles de la organización en dos páginas; se inspeccionan hasta 100 campos por Project. Se excluyen los Projects cerrados.`,retryDiscovery:`Reintentar búsqueda en GitHub`,retryRemaining:`Quedan {count} reintentos de solo lectura. Tus respuestas se conservan.`,retryExhausted:`No quedan reintentos. Consulta GitHub e introduce manualmente lo que falte.`,observationTimeUnknown:`fecha de observación no disponible`,branchRequirementUnknown:`Obligatorio según la regla de rama: no comprobado`,branchRequirementObserved:`Obligatorio en {branch} por un ruleset activo para este check y esta App exactos.`,ciRule:`Abrir ruleset del check obligatorio ↗`,projectSharedStatus:`Todos los Projects elegidos deben compartir cada valor Status. Este setup no asigna valores diferentes por Project.`,fixedWorkflowEnabled:`Tu configuración fija features.{kind}=true. Mantén {kind} seleccionado; cambia --config o los flags si quieres modificarlo.`,fixedWorkflowDisabled:`Tu configuración fija features.{kind}=false. Deja {kind} sin seleccionar; cambia --config o los flags si quieres modificarlo.`,fixedIssuesRequired:`Tu configuración activa expresamente release o hotfix. Mantén Issues activado o cambia antes --config o los flags.`,projectSelectionNotObserved:`Se conservan los números de Project elegidos antes, aunque ya no figuren en esta consulta. Compruébalos en GitHub o quítalos.`,removeSelection:`Quitar selección`,projectTransitionIssueCreated:`Issue nuevo`,projectTransitionPullRequestCreated:`Pull request nuevo`,projectTransitionIssueInProgress:`Issue en curso`,projectTransitionPullRequestInProgress:`Pull request en curso`,projectUrl:`Abrir Project en GitHub ↗`,projectManual:`¿Falta un Project? Introduce su número positivo o URL exacta de GitHub. No se aceptan IDs PVT_.`,projectStatusUnavailable:`No se pudieron verificar las opciones Status de todos los Projects elegidos. Comprueba cada Project en GitHub e introduce el valor exacto.`,projectStatusIncompatible:`Los Projects elegidos no comparten valores Status. Elige Projects compatibles antes de continuar.`,producerName:`Nombre del check/job`,producerAppId:`ID de la App de GitHub`,producerWorkflow:`Nombre del workflow`,producerAdd:`Añadir check exacto`,producerRemove:`Quitar check`,producerManualHelp:`Usa la identidad exacta de GitHub. Añadirla no acredita que exija la cobertura.`,producerManualInvalid:`Indica nombre, ID numérico positivo de App y workflow. No uses | ni ; en los nombres. Se permiten comas.`,translationPreviewTitle:`Revisión de la traducción en curso`,translationPreviewBody:`Las preguntas propias de la configuración ya están traducidas. Algunos diagnósticos dinámicos de GitHub o del proveedor aún pueden aparecer en inglés mientras termina la revisión. Cambiar de idioma no modifica tus respuestas.`,unknownLocalError:`Se ha producido un error inesperado en la configuración local. Consulta la terminal y actualiza la página o reinicia la configuración.`},Gi={setupHelp:`Aide à la configuration`,setupTutorial:`Tutoriel de configuration`,firstWorkflowGuide:`Premier parcours issue vers PR`,setupRecovery:`Dépannage`,setupHelpHint:`La documentation s’ouvre dans un nouvel onglet. Vos réponses restent ici.`,setupNextWorkflow:`Installez les fichiers vérifiés, puis testez l’Action dans GitHub. Une vérification des métadonnées ne prouve pas son fonctionnement.`,batchNextActions:`Prochaines étapes`,batchStatusReady:`Prêt à examiner`,batchStatusBlocked:`Action requise`,batchStatusApplying:`Application du plan validé`,batchStatusPartial:`Partiellement appliqué ; vérifier avant de réessayer`,batchStatusWaiting:`PR créée · en attente de fusion par un mainteneur`,batchStatusPending:`Configuration appliquée · vérification en attente`,batchStatusUnchanged:`Déjà conforme · inchangé`,batchStatusCancelled:`Travail en attente arrêté ; effets réalisés conservés`,batchConfigurationPreview:`Aperçu de la configuration, ajouté à la revue du lot. Les tests de permissions et l’installation attendent votre approbation du lot complet.`,batchUseConfiguration:`Utiliser cette configuration`,planReuseBody:`Approuvez les tests temporaires de permissions indiqués, puis la configuration revue sera appliquée. Les valeurs des Secrets existants sont conservées, sans être demandées ni remplacées. La vérification des capacités d’exécution peut rester en attente.`,organizationReuseTitle:`Réutilisation de la configuration existante`,organizationReuseBody:`{imported} paramètres compatibles importés. Conservation de {shared} Variables d’organisation et de {overrides} surcharges du dépôt ; écriture de {writes} Variables du dépôt. Les valeurs partagées et les Secrets existants restent inchangés.`,batchBranchReview:`Branche d’installation et base revue`,batchFocusTitle:`Dépôts sélectionnés`,batchFocusBody:`{count} dépôts sélectionnés explicitement dans cette organisation. Vérifiez chaque cible séparément.`,batchReviewTitle:`Examinez les plans de configuration`,batchProgressTitle:`Application des plans par dépôt`,batchResultTitle:`Résultats de configuration par dépôt`,batchProgressBody:`Application séquentielle des plans approuvés. Arrêter suspend le travail restant après la requête en cours ; les modifications et PR terminées sont conservées.`,batchReviewBody:`Approuvez uniquement les plans prêts ci-dessous. La configuration avance dans l’ordre, ajoute les accès validés sans remplacer les valeurs partagées et crée une PR par dépôt modifié. Elle ne fusionne pas, ne crée pas de tag, ne publie pas et ne déploie pas.`,batchResultBody:`Une PR de configuration nécessite encore une revue et une fusion par un mainteneur. La vérification des identifiants et capacités à l’exécution peut rester en attente. Les PR et accès réalisés sont conservés si un autre dépôt s’arrête.`,batchStopping:`Arrêt du travail en attente après la requête actuelle. Les changements réalisés seront conservés.`,batchReasonDrift:`La base validée ou sa propriété a changé. Inspectez le dépôt et examinez un nouveau plan.`,batchReasonProvider:`GitHub n’a pas confirmé la dernière étape. Une nouvelle tentative inspecte les effets existants avant de continuer.`,batchCleanupPending:`Le nettoyage du contrôle des permissions n’a pas pu être confirmé. Le travail restant est arrêté. Vérifiez l’historique GitHub et le journal local de récupération ; résolvez le nettoyage avant de démarrer une nouvelle configuration. Cette opération ne peut pas reprendre les écritures.`,batchReasonCancelled:`Le travail en attente s’est arrêté. Les changements réalisés ont été conservés.`,batchReasonPreflight:`Vérifiez l’accès, les identifiants requis et les réglages propres au dépôt avant de continuer.`,batchOpenPull:`Ouvrir la PR de configuration`,batchFilesCount:`{count} fichiers modifiés`,batchVariablesCount:`{count} changements de Variables du dépôt`,batchGrantsCount:`{count} ajouts d’accès pour ce dépôt`,batchRetainedSecrets:`Secrets existants conservés`,batchResourcesExplanation:`Les labels et Issue Types activés sont préparés séparément pour ce dépôt. Les valeurs des Secrets partagés et les accès des autres dépôts sont conservés.`,batchReviewFiles:`Inspecter les fichiers proposés`,batchDeleteFile:`Ce fichier géré par la configuration sera retiré de l’arbre d’installation ; inspectez sa sauvegarde conservée.`,batchRepositoryOverrides:`Examiner les noms des Variables du dépôt`,batchReviewedAccess:`Examiner les ajouts d’accès`,batchApplyPlans:`Appliquer les plans prêts`,batchLeavePreview:`Quitter sans appliquer`,batchStopPending:`Arrêter le travail en attente`,batchStopConfirm:`Arrêter le travail en attente après la requête actuelle ? Les PR, accès et changements réalisés seront conservés.`,batchRetryPending:`Inspecter et réessayer le travail inachevé`,batchFinish:`Terminer cette opération`,batchCleanup:`Supprimez les PAT temporaires de configuration dans GitHub après cette opération. Conservez le PAT du bot tant que les dépôts utilisent son Secret.`,batchTechnical:`Détails de l’opération`,batchLookupUnavailable:`GitHub n’a pas pu confirmer ce dépôt. Vérifiez son nom exact et l’accès du PAT.`,batchSelectionInvalid:`Vérifiez la sélection : choisissez 1 à 25 dépôts disponibles de cette organisation.`,batchAccessUnavailable:`L’accès n’est pas confirmé. Vérifiez le PAT temporaire ou retirez ce dépôt de la sélection.`,batchSelectionBody:`Choisissez 1 à 25 dépôts de {organization}. Seuls les dépôts sélectionnés seront configurés.`,batchDiscoveryUnavailable:`GitHub n’a pas pu lister les dépôts. Le dépôt actuel reste disponible ; cherchez un autre par son nom exact ou vérifiez l’accès du PAT.`,batchDiscoveryTruncated:`Cette vue a atteint la limite de 1 000 dépôts. Recherchez un nom exact pour ajouter un dépôt absent.`,batchFilter:`Filtrer les dépôts visibles`,batchSelectedCount:`{count} sélectionnés · maximum 25`,batchRepositories:`Dépôts`,batchPrivate:`Privé`,batchPublic:`Public`,batchCurrent:`Dépôt actuel`,batchArchived:`Archivé`,batchDisabled:`Désactivé`,batchReadOnly:`Accès en écriture indisponible`,batchNoMatches:`Aucun dépôt visible ne correspond au filtre.`,batchPrevious:`Précédent`,batchNext:`Suivant`,batchMissingRepository:`Un dépôt manque ?`,batchAccessExplanation:`La liste montre uniquement les dépôts visibles avec ce PAT. Une recherche par nom exact n’accorde aucun accès et ne sélectionne pas automatiquement le dépôt. Si vous remplacez le PAT temporaire, limitez-le aux dépôts à configurer.`,batchExactName:`Nom exact du dépôt dans cette organisation`,batchFindRepository:`Trouver le dépôt`,batchChangeAccess:`Changer l’accès du PAT temporaire`,batchReviewSelection:`Examiner les dépôts sélectionnés`,patStorageRetain:`Conservez le Secret PAT existant dans {destination}. Sa valeur n’est ni demandée, ni copiée, ni remplacée. S’il manque, créez-le séparément. La vérification de l’identité et des autorisations à l’exécution reste en attente.`,patStorageTitle:`Stockage du PAT du bot`,patRepositoryReplace:`Le Secret PAT existe déjà dans le dépôt {destination}. Il sera remplacé même si vous avez choisi de conserver les autres Secrets existants.`,patOrganizationReplace:`Le Secret PAT existe déjà dans l’organisation {destination}. Il sera remplacé même si vous avez choisi de conserver les autres Secrets existants.`,patRepositoryCreate:`Le PAT du bot sera enregistré comme Secret PAT dans le dépôt {destination}.`,patOrganizationCreate:`Le PAT du bot sera enregistré comme Secret PAT dans l’organisation {destination}.`,patReplacementChecks:`Le PAT du bot fourni doit réussir les vérifications d’identité, d’accès au dépôt et des autorisations requises avant l’écriture de ce Secret.`,patOrganizationImpact:`Remplacer ce Secret d’organisation peut affecter les autres dépôts qui l’utilisent. Les vérifications pour ce dépôt ne valident pas leurs exigences.`,repositorySecretSettings:`Ouvrir les Secrets Actions du dépôt`,botAccountWarning:`Vous devez ouvrir ce lien avec le compte bot sélectionné : @{account}.`,botAccountHelp:`Vérifiez le compte GitHub avant de générer le PAT. Utilisez une fenêtre privée ou changez de compte si le navigateur utilise le compte de l’opérateur de configuration.`,botGithubForm:`Créer le PAT du bot en tant que @{account}`,language:`Langue`,english:`Anglais`,spanish:`Espagnol`,setup:`CONFIGURATION`,connecting:`Connexion…`,localSession:`SESSION LOCALE`,progress:`Progression`,studio:`ASSISTANT DE CONFIGURATION`,journey:`VOTRE PARCOURS`,repository:`Dépôt`,choices:`Choix`,setupPat:`PAT de configuration`,plan:`Plan`,botPat:`PAT du bot et identifiants`,apply:`Appliquer`,localDesign:`Local par conception`,localDesignBody:`Cette page fonctionne sur votre ordinateur. GitHub crée les deux PAT dans ses propres onglets.`,preparing:`Préparation…`,completeTitle:`Configuration terminée.`,previewTitle:`Aperçu terminé.`,cancelledTitle:`Configuration annulée.`,blockedTitle:`Une intervention est nécessaire.`,gettingReady:`PRÉPARATION`,activeLede:`Une décision à la fois. Vos choix déterminent les droits, le plan et les identifiants nécessaires.`,resultLede:`Consultez le résultat et la prochaine étape ci-dessous. Le terminal fournit les détails techniques.`,readOnly:`Onglet en lecture seule`,readOnlyBody:`Un autre onglet contrôle cette session. Vous pouvez suivre la progression ou prendre le contrôle.`,takeOver:`Prendre le contrôle`,attention:`Action nécessaire`,checked:`Vérifié`,pleaseNote:`À noter`,progressUpdate:`Mise à jour`,reviewPass:`Révision des choix enregistrés — passage {pass}. C’est la même session, pas un redémarrage.`,cancelSetup:`Annuler`,cancelConfirm:`Annuler cette session locale ? Les PAT créés sur GitHub continueront d’exister.`,footerLocal:`LOCALHOST UNIQUEMENT`,footerCloud:`AUCUN COMPTE CLOUD`,footerGithub:`GITHUB ÉMET LES PAT`,currentDecision:`DÉCISION ACTUELLE`,session:`SESSION`,continue:`Continuer`,previousQuestion:`Question précédente`,questionProgress:`Question {current} sur {total} dans ce groupe · {overall} sur {all} au total`,yes:`Oui`,no:`Non`,permissionPreview:`APERÇU DES DROITS`,changeAnswersTitle:`Modifier vos réponses`,changeAnswersHelp:`Revenez à une section sans perdre les autres réponses. Le plan et les droits PAT requis seront vérifiés à nouveau.`,changeSection:`Modifier {section}`,editCapabilities:`Fonctionnalités`,editRuntimes:`Agents`,editModels:`Modèles des agents`,editRoleModels:`Modèles par tâche`,editRepository:`Comportement du dépôt`,editDeployment:`Releases et correctifs`,editBugbot:`Bugbot`,editApproval:`Approbation des PR`,editProjects:`Projects`,editProvisioning:`Provisionnement`,editStorage:`Secrets et Variables`,suggested:`Réponse suggérée : {answer}. Vous pourrez revoir vos choix avant de créer le PAT.`,none:`aucune`,sourceGithub:`Observé dans les métadonnées authentifiées de ce dépôt GitHub.`,sourceConfig:`Fourni par votre configuration ; GitHub ne l’a pas remplacé.`,sourceDefault:`Valeur par défaut du produit ; non vérifiée dans ce dépôt.`,sourceLocal:`Observé dans ce dossier local ; vérifiez que cette branche existe sur GitHub avant d’appliquer les changements.`,whyMatters:`Pourquoi c’est important`,whenApplies:`Quand cela s’applique`,whereConfigured:`Où se fait le réglage`,howToChoose:`Comment choisir`,whyRecommendation:`Pourquoi c’est important`,example:`Exemple`,effect:`Ce qui change`,verify:`Comment vérifier`,learnMore:`Lire la documentation de ce réglage`,resultApplied:`Configuration appliquée`,resultNoChanges:`Aucun changement effectué`,resultStopped:`Aucun changement commencé`,resultPartial:`Vérifiez les changements partiels`,resultCompleteBody:`Le PAT temporaire n’est pas révoqué automatiquement. Supprimez-le sur GitHub après vérification. Gardez le PAT du bot jusqu’à rotation du Secret.`,resultPartialBody:`Un Secret ou une autre ressource a peut-être été modifié. Vérifiez GitHub et exécutez copilot doctor --read-only avant de remplacer ou supprimer un PAT.`,resultNoChangesBody:`Copilot n’a pas commencé à appliquer la configuration. Des tests temporaires de permissions ont pu s’exécuter ; GitHub peut conserver l’historique Actions, Issues ou PR après leur nettoyage. Les PAT créés restent actifs jusqu’à leur suppression.`,whatHappened:`Ce qui s’est passé`,alreadyChanged:`Déjà modifié`,noChanges:`Aucun changement du dépôt ou de GitHub n’a commencé pendant cette session.`,nextAction:`Prochaine étape`,reasonPermissions:`Les droits nécessaires du PAT de configuration manquent ou n’ont pas pu être confirmés.`,nextPermissions:`Vérifiez les droits affichés, corrigez le PAT sur GitHub, puis recommencez.`,reasonWorkflowPermissions:`Le PAT du bot n’a pas terminé toutes les vérifications de droits. Consultez le droit concerné et les prérequis de préparation ou de nettoyage ci-dessous.`,permissionReportTitle:`Vérification des droits du PAT`,permissionReportLead:`Les droits requis qui n’ont pas pu être confirmés sont indiqués ci-dessous. « Non vérifiable » ne signifie pas « absent ».`,updatedSetupPatTitle:`Corrigez le PAT de configuration`,updatedSetupPatBody:`Ce lien GitHub inclut les droits requis pour cette configuration. Sélectionnez ce dépôt avant de créer le PAT. Fermez cette session locale, puis recommencez la configuration avec le PAT corrigé.`,updatedSetupPatGrants:`Droits supplémentaires détectés après inspection`,updatedSetupPatLink:`Créer un PAT de configuration corrigé`,permissionProbeCleanupPending:`Une ressource temporaire de vérification peut encore exister. La configuration est arrêtée ; ne supposez pas que le nettoyage a réussi.`,permissionProbeCleanupAction:`Réessayez avec un PAT capable de la supprimer. Le journal local de récupération est consulté avant tout nouveau test.`,permissionSecretCollision:`GitHub a indiqué qu’un Secret portant le nom de test aléatoire a été mis à jour. Une valeur créée simultanément peut avoir changé. La configuration s’est arrêtée sans le supprimer.`,permissionSecretCollisionAction:`Consultez l’historique des Secrets GitHub et restaurez toute valeur concernée avant de réessayer. Le journal local ne peut pas corriger cette collision.`,permissionIdentity:`Identité GitHub et accès au dépôt`,permissionIdentityValid:`Vérifiés`,permissionIdentityInvalid:`Refusés`,permissionIdentityUnknown:`Non confirmés`,permissionGrantNotChecked:`Non vérifié`,permissionReportNoFailedGrant:`Cette vérification n’a trouvé aucun droit requis en échec. Vérifiez le compte prévu pour le PAT et l’erreur du terminal avant de réessayer.`,reasonStorage:`Le stockage GitHub Actions choisi ne peut pas être utilisé en sécurité.`,nextStorage:`Vérifiez la portée des Variables/Secrets et les ressources existantes, puis réessayez.`,reasonConfiguration:`La configuration choisie n’a pas pu être validée.`,nextConfiguration:`Lisez les détails du terminal, corrigez les choix et réessayez.`,reasonExpired:`La session locale a expiré.`,nextExpired:`Démarrez une nouvelle session ; l’ancienne approbation ne peut pas être réutilisée.`,reasonCancelled:`La configuration a été annulée.`,nextCancelled:`Démarrez une nouvelle session si vous souhaitez encore configurer ce dépôt.`,reasonUnknown:`La configuration s’est arrêtée. Le navigateur n’a pas pu déterminer la cause exacte. Consultez le reçu des ressources, s’il est disponible, et le terminal.`,nextUnknown:`Consultez la dernière erreur du terminal avant de réessayer. Ne supposez pas qu’un PAT a été révoqué.`,reasonProvider:`GitHub ou un autre fournisseur n’a pas terminé l’opération demandée.`,nextProvider:`Utilisez la référence de diagnostic pour consulter le terminal, vérifiez la disponibilité et les accès, puis examinez tout changement partiel avant de réessayer.`,reasonRateLimit:`GitHub a temporairement limité les requêtes nécessaires à la configuration.`,nextRateLimit:`Attendez la réinitialisation de la limite. Examinez les changements effectués avant de recommencer.`,diagnosticReference:`Référence de diagnostic`,resourceReceipt:`Reçu des opérations de configuration`,effectCompleted:`Signalée comme terminée`,effectSkipped:`Signalée comme ignorée`,effectInspect:`Résultat à vérifier`,effectNotStarted:`Non commencée`,effectInProgress:`En cours ; résultat non encore confirmé`,scopeLocal:`Dossier local`,scopeMixed:`Dépôt et organisation`,receiptFiles:`Fichiers de configuration`,receiptSecrets:`Secrets GitHub Actions`,receiptLabels:`Étiquettes des tickets`,receiptIssueTypes:`Types de ticket`,receiptVariables:`Variables GitHub Actions`,receiptInitialTag:`Première étiquette de version`,inspectPartial:`Des changements peuvent déjà être actifs. Vérifiez GitHub et le terminal avant de réessayer.`,patSettings:`Ouvrir les paramètres PAT GitHub ↗`,closeSession:`Fermer la session locale`,sessionClosed:`Session locale fermée`,sessionClosedBody:`Le serveur local a accepté la demande de fermeture. Cette page ne le contacte plus et conserve le résultat. Fermer la session ne révoque aucun PAT créé dans GitHub.`,doctorHelp:`Après la configuration, vérifiez ici les ressources installées sans déclencher d’Actions. Vous pouvez aussi exécuter copilot doctor --read-only à la racine du dépôt avec le PAT temporaire et le même fichier --config non secret, le cas échéant.`,doctorRun:`Vérifier l’installation (lecture seule)`,doctorRunning:`Vérification des ressources installées sans déclencher d’Actions…`,doctorPassed:`La vérification en lecture seule n’a trouvé aucun échec.`,doctorWarnings:`La vérification en lecture seule demande une attention particulière.`,doctorFailed:`La vérification en lecture seule ne s’est pas terminée. Consultez le terminal ou exécutez la commande ci-dessous.`,doctorCounts:`{pass} réussis · {warn} avertissements · {fail} échecs · {skipped} ignorés.`,doctorSecretLimit:`Ce mode ne peut pas vérifier les valeurs des Secrets.`,botRenewal:`Le PAT du bot reste dans le secret GitHub Actions choisi pour les futures exécutions. Sa date d’expiration réelle n’est pas vérifiée ici ; notez-la sur GitHub et remplacez le secret avant cette date.`,working:`Préparation de l’étape suivante`,workingBody:`Le processus local vérifie vos réponses. Gardez cette page ouverte.`,repoFocus:`Dépôt concerné`,repoFocusBody:`Cette configuration concerne le dépôt indiqué. Les Secrets et Variables d’organisation peuvent être partagés avec d’autres dépôts.`,access:`accès`,readOnlyCheck:`Vérification des capacités`,provisionalGrants:`Droits provisoires minimaux`,conditionalGrants:`Les droits conditionnels dépendent de vos choix et de GitHub. Un contrôle final précède toute modification.`,permissionEvidenceVerified:`Une lecture GitHub a confirmé cet accès.`,permissionEvidenceVerifiedWrite:`Une ressource temporaire a été créée, lue et supprimée.`,permissionEvidencePrivateProject:`Un Project non public de l’organisation a confirmé l’accès Projects en lecture.`,permissionEvidenceMissing:`GitHub a refusé l’accès requis. Vérifiez les paramètres du PAT.`,permissionEvidenceWrite:`La vérification temporaire en écriture n’a pas abouti. Examinez l’étape échouée puis réessayez.`,permissionEvidencePublic:`La lecture a réussi, mais cette ressource publique ne prouve pas à elle seule le droit du PAT.`,permissionEvidencePublicProjects:`La lecture des Projects a réussi, même avec une liste vide. L’accès aux Projects privés est vérifié lors de leur sélection.`,permissionEvidenceUnknownRead:`Le contrôle en lecture n’est pas concluant. Consultez le détail dans le terminal et réessayez si nécessaire.`,permissionUnknown:`Ce droit exige une vérification. Consultez le droit exact et son explication technique dans le terminal avant de continuer.`,permissionsFollow:`Les droits suivent vos choix`,permissionsFollowBody:`Les droits exacts sont affichés avant chaque PAT. Ouvrir cette page ne crée rien.`,files:`Fichiers`,workflows:`Workflows`,variables:`Variables`,secretNames:`Noms des Secrets`,planBody:`Vérifiez précisément ce qui pourrait changer. Après approbation, des ressources temporaires testent les droits d’écriture du PAT, puis le PAT du bot et les autres identifiants sont demandés. GitHub peut conserver des exécutions, l’historique des Issues ou PR et des notifications.`,planPermissionProbeTitle:`Tests temporaires des permissions après approbation`,planPermissionProbeBody:`Chaque permission indiquée crée, lit puis supprime sa propre ressource temporaire. Le test Issues crée une Issue visible ; si GitHub refuse sa suppression, la configuration la ferme, indique son numéro et s’arrête. Actions, Issues et Pull requests peuvent laisser un historique ou des notifications.`,planActionsProbePrerequisites:`Le test Actions nécessite Contents Write pour créer sa branche isolée. Si le workflow de santé empaqueté exact est indisponible sur la branche par défaut, il nécessite aussi Workflows Write pour préparer une version dont les jobs sont désactivés. Pour le bot, le PAT de configuration prépare et nettoie la ressource ; le PAT du bot déclenche et lit son exécution. Un prérequis bloqué ne prouve pas qu’Actions manque.`,planSecretProbeLimit:`GitHub ne propose qu’une opération de création ou mise à jour pour les Secrets. Le contrôle utilise un nom aléatoire privé et vérifie d’abord son absence, mais GitHub ne garantit pas une création atomique. S’il signale une mise à jour, la configuration s’arrête et vous demande de consulter l’historique du Secret.`,planChoices:`Vos décisions principales`,planEnabledCapabilities:`Fonctionnalités activées`,planBranchRoles:`Branche de production / développement`,planApprovalMode:`Approbation des pull requests`,planVariableScope:`Portée des variables`,planSecretScope:`Portée des secrets`,planInitialTag:`Créer la première étiquette`,planAgentRouting:`Agent et modèle par tâche`,planIssueWorkflows:`Workflows de tickets`,planTrustedChecks:`Producteurs CI de confiance`,planCoverage:`Preuve de couverture`,planProjectStatuses:`Transitions Status des Projects`,planIssueResources:`Étiquettes et types de ticket`,planIssueResourcesValue:`Vérifiés ou créés lors de l’application`,planProducerAttested:`Identité CI et étape obligatoire vérifiées par vous`,planCoverageThreshold:`Couverture minimale des lignes modifiées`,planCoverageReporter:`Workflow publiant l’artefact`,planReporterAttested:`Producteur du rapport de couverture vérifié par vous`,planAdvancedDefaults:`Le plan comprend aussi les valeurs par défaut des réglages non modifiés. Utilisez Modifier ci-dessous pour examiner une section avant de valider.`,planUnknownWarning:`Un avertissement supplémentaire du plan ne peut pas être affiché ici. Lisez-le dans le terminal avant de valider.`,planBasicDefaultsIntro:`Le parcours de base a conservé ces réglages avancés. Ouvrez une section ci-dessous pour les vérifier ou les modifier :`,scopeRepository:`Dépôt`,scopeOrganization:`Organisation`,scopeDisabled:`Non provisionné`,approvalOff:`Désactivée`,approvalRecommend:`Recommandation uniquement`,approvalGuarded:`Approbation protégée`,beforeContinue:`Avant de continuer`,stopHere:`Arrêter ici`,approvePlan:`Approuver ce plan`,githubLink:`Ouvrir le lien GitHub ↗`,githubForm:`Ouvrir le formulaire PAT officiel de GitHub`,githubFormHelp:`Vérifiez le compte connecté, choisissez Only select repositories et ce dépôt. GitHub gère la 2FA et crée le PAT.`,pasteHere:`Collez la valeur ici`,yourAnswer:`Votre réponse`,hiddenAfter:`Masquée après envoi`,typeAnswer:`Saisissez votre réponse`,secretHelp:`Envoyé uniquement au processus local. Ni réaffiché ni enregistré dans le navigateur.`,pairTitle:`Associer ce navigateur`,pairLabel:`Code du terminal`,pairPlaceholder:`16 caractères hexadécimaux`,pairBody:`Trouvez le code à 16 caractères dans le terminal qui a lancé copilot setup --web. Il ne figure pas dans l’URL et n’est pas conservé après fermeture.`,pairHelp:`Gardez ce code secret. Après actualisation, saisissez-le de nouveau.`,pairButton:`Se connecter à la configuration locale`,privateSession:`SESSION LOCALE PRIVÉE`,theme:`Thème`,themeAuto:`Auto`,themeSystem:`Suivre le système`,themeLight:`Thème clair`,themeDark:`Thème sombre`,selectOne:`Choisissez une option`,ciRun:`Voir l’exécution CI sur GitHub ↗`,manualCheck:`Check absent ? Saisissez nom|ID App|workflow exacts, séparés par des points-virgules.`,checksObserved:`Des jobs CI récents ont été trouvés. Ouvrez chaque exécution et vérifiez le job, l’App et l’étape obligatoire de couverture avant de lui faire confiance.`,checksNoRecent:`Aucune exécution récente de workflow de pull request. Lancez le CI habituel sur une vraie PR ou saisissez un producteur exact.`,checksNoVerifiable:`Des exécutions récentes existent, mais aucun job ne correspond à une identité exacte de Check Run et d’App. Vérifiez GitHub ou saisissez-la.`,checksDenied:`GitHub a refusé la découverte CI. Accordez Actions: read et Checks: read au PAT de configuration, ou saisissez un producteur exact.`,checksUnavailable:`La découverte CI a échoué. Cela ne prouve pas l’absence de checks. Réessayez ou saisissez un producteur exact.`,projectsObserved:`Ces Projects existants appartiennent au propriétaire du dépôt. Ne choisissez que ceux que l’automatisation doit modifier.`,projectsEmpty:`Cette requête GitHub limitée n’a renvoyé aucun Project ouvert et accessible ; elle ne prouve pas leur absence. Vérifiez l’accès ou saisissez un numéro vérifié.`,projectsDenied:`GitHub a refusé la découverte des Projects. Vérifiez Projects: read au niveau organisation sur le PAT, ou saisissez les numéros.`,projectsUnavailable:`La découverte des Projects a échoué. Cela ne prouve pas leur absence. Saisissez un numéro vérifié ou réessayez.`,projectsUnsupported:`Cette API GitHub ne liste pas les Projects personnels avec un PAT à permissions fines. Saisissez le numéro figurant dans l’URL.`,discoveryTruncated:`Seul un échantillon limité de Projects accessibles ou checks récents a été inspecté. Saisissez manuellement un élément absent.`,checksDiscoveryScope:`Périmètre : jusqu’à 20 exécutions de PR parmi les 1 000 dernières exécutions de workflows (jusqu’à 10 pages) des 90 derniers jours ; au plus 15 exécutions et 100 checks par commit sont inspectés.`,projectsDiscoveryScope:`Périmètre : au plus 30 Projects ouverts et accessibles de l’organisation sur deux pages ; jusqu’à 100 champs sont inspectés par Project. Les Projects fermés sont exclus.`,retryDiscovery:`Relancer la recherche GitHub`,retryRemaining:`Il reste {count} essais en lecture seule. Vos réponses sont conservées.`,retryExhausted:`Plus aucun essai disponible. Vérifiez GitHub et saisissez manuellement tout élément manquant.`,observationTimeUnknown:`date d’observation indisponible`,branchRequirementUnknown:`Exigé par la règle de branche : non vérifié`,branchRequirementObserved:`Exigé sur {branch} par un ruleset actif pour ce contrôle et cette application précis.`,ciRule:`Ouvrir le ruleset du contrôle obligatoire ↗`,projectSharedStatus:`Tous les Projects choisis doivent partager chaque valeur Status. Cette configuration ne définit pas de valeurs différentes par Project.`,fixedWorkflowEnabled:`Votre configuration fixe features.{kind}=true. Gardez {kind} sélectionné ; modifiez --config ou les options pour changer ce choix.`,fixedWorkflowDisabled:`Votre configuration fixe features.{kind}=false. Ne sélectionnez pas {kind} ; modifiez --config ou les options pour changer ce choix.`,fixedIssuesRequired:`Votre configuration active explicitement release ou hotfix. Gardez Issues activé ou modifiez d’abord --config ou les options.`,projectSelectionNotObserved:`Les numéros de Projects choisis auparavant sont conservés, mais n’apparaissent plus dans ce résultat GitHub. Vérifiez-les sur GitHub ou retirez-les.`,removeSelection:`Retirer la sélection`,projectTransitionIssueCreated:`Nouveau ticket`,projectTransitionPullRequestCreated:`Nouvelle pull request`,projectTransitionIssueInProgress:`Ticket en cours`,projectTransitionPullRequestInProgress:`Pull request en cours`,projectUrl:`Ouvrir le Project sur GitHub ↗`,projectManual:`Project absent ? Saisissez son numéro positif ou son URL GitHub exacte. Les ID PVT_ sont refusés.`,projectStatusUnavailable:`Les options Status n’ont pas pu être vérifiées pour tous les Projects. Vérifiez-les sur GitHub et saisissez la valeur exacte.`,projectStatusIncompatible:`Les Projects choisis ne partagent aucun Status. Choisissez des Projects compatibles avant de continuer.`,producerName:`Nom du check/job`,producerAppId:`ID de l’App GitHub source`,producerWorkflow:`Nom du workflow`,producerAdd:`Ajouter le check exact`,producerRemove:`Retirer le check`,producerManualHelp:`Utilisez l’identité exacte affichée sur GitHub. L’ajouter ne prouve pas que la couverture est imposée.`,producerManualInvalid:`Indiquez le nom, un ID numérique positif d’App et le workflow. N’utilisez ni | ni ; dans les noms. Les virgules sont autorisées.`,translationPreviewTitle:`Révision de la traduction en cours`,translationPreviewBody:`Les questions propres à la configuration sont traduites. Certains diagnostics dynamiques de GitHub ou du fournisseur peuvent encore apparaître en anglais pendant la révision. Changer de langue ne modifie pas vos réponses.`,unknownLocalError:`Une erreur inattendue est survenue pendant la configuration locale. Consultez le terminal, puis actualisez la page ou relancez la configuration.`},Ki={setupHelp:`Ajuda de configuração`,setupTutorial:`Tutorial de configuração`,firstWorkflowGuide:`Primeiro fluxo de issue para PR`,setupRecovery:`Resolver problemas`,setupHelpHint:`A documentação abre num novo separador. As suas respostas ficam aqui.`,setupNextWorkflow:`Instale os ficheiros revistos e verifique a Action no GitHub. Uma inspeção de metadados não comprova o funcionamento em execução.`,batchNextActions:`Próximos passos`,batchStatusReady:`Pronto para revisão`,batchStatusBlocked:`Requer uma ação`,batchStatusApplying:`A aplicar o plano revisto`,batchStatusPartial:`Aplicado parcialmente; reveja antes de tentar novamente`,batchStatusWaiting:`PR criada · aguarda integração por um responsável`,batchStatusPending:`Configuração aplicada · verificação pendente`,batchStatusUnchanged:`Já corresponde · sem alterações`,batchStatusCancelled:`Trabalho pendente interrompido; alterações concluídas mantidas`,batchConfigurationPreview:`Prévia da configuração, adicionada à revisão do lote. Os testes de permissões e a instalação aguardam a aprovação do lote completo.`,batchUseConfiguration:`Usar esta configuração`,planReuseBody:`Aprove os testes temporários de permissões indicados; em seguida, aplica-se o setup revisto. Os valores dos Secrets existentes são preservados, sem serem pedidos ou substituídos. A verificação de permissões em execução pode ficar pendente.`,organizationReuseTitle:`Reutilizar a configuração existente`,organizationReuseBody:`{imported} definições compatíveis importadas. Preservam-se {shared} Variables da organização e {overrides} substituições do repositório; escrevem-se {writes} Variables no repositório. Os valores partilhados e os Secrets existentes são preservados.`,batchBranchReview:`Ramo de instalação e base revista`,batchFocusTitle:`Repositórios selecionados`,batchFocusBody:`{count} repositórios selecionados explicitamente nesta organização. Reveja cada destino separadamente.`,batchReviewTitle:`Reveja os planos de configuração`,batchProgressTitle:`A aplicar os planos por repositório`,batchResultTitle:`Resultados da configuração por repositório`,batchProgressBody:`Aplicam-se os planos aprovados por ordem. Parar suspende o trabalho pendente após o pedido atual; as alterações e PRs concluídas são preservadas.`,batchReviewBody:`Aprove apenas os planos prontos abaixo. A configuração avança por ordem, adiciona o acesso revisto sem substituir valores partilhados e cria uma PR por repositório alterado. Não integra, cria tags, publica versões nem implementa.`,batchResultBody:`Uma PR de configuração ainda precisa de revisão e integração por um responsável. A verificação de credenciais e permissões em execução pode ficar pendente. As PRs e os acessos concluídos mantêm-se se outro destino parar.`,batchStopping:`A interromper o trabalho pendente após o pedido atual. As alterações concluídas serão mantidas.`,batchReasonDrift:`A base revista ou a sua titularidade mudou. Inspecione o repositório e reveja um novo plano.`,batchReasonProvider:`O GitHub não confirmou o último passo. Uma nova tentativa inspeciona os efeitos existentes antes de continuar.`,batchCleanupPending:`Não foi possível confirmar a limpeza da verificação de permissões. O trabalho pendente foi interrompido. Verifique o histórico do GitHub e o registro local de recuperação; resolva a limpeza antes de iniciar uma nova configuração. Esta operação não pode retomar gravações.`,batchReasonCancelled:`O trabalho pendente parou. As alterações concluídas foram mantidas.`,batchReasonPreflight:`Reveja o acesso, as credenciais necessárias e os ajustes específicos do repositório antes de continuar.`,batchOpenPull:`Abrir PR de configuração`,batchFilesCount:`{count} ficheiros alterados`,batchVariablesCount:`{count} alterações de Variables do repositório`,batchGrantsCount:`{count} acessos a adicionar para este repositório`,batchRetainedSecrets:`Secrets existentes mantidos`,batchResourcesExplanation:`Os labels e Issue Types ativados são preparados separadamente para este destino. Os valores dos Secrets partilhados e os acessos dos outros repositórios são mantidos.`,batchReviewFiles:`Inspecionar ficheiros propostos`,batchDeleteFile:`Este ficheiro gerido pela configuração será removido da árvore de instalação; inspecione a cópia mantida.`,batchRepositoryOverrides:`Rever os nomes das Variables do repositório`,batchReviewedAccess:`Rever os acessos a adicionar`,batchApplyPlans:`Aplicar planos prontos`,batchLeavePreview:`Sair sem aplicar`,batchStopPending:`Interromper trabalho pendente`,batchStopConfirm:`Interromper o trabalho pendente após o pedido atual? As PRs, os acessos e as alterações concluídas serão mantidos.`,batchRetryPending:`Inspecionar e repetir o trabalho pendente`,batchFinish:`Concluir esta operação`,batchCleanup:`Elimine os PATs temporários de configuração no GitHub após esta operação. Mantenha o PAT do bot enquanto os repositórios consumirem o seu Secret.`,batchTechnical:`Detalhes da operação`,batchLookupUnavailable:`O GitHub não conseguiu confirmar esse repositório. Verifique o nome exato e o acesso do PAT.`,batchSelectionInvalid:`Reveja a seleção: escolha entre 1 e 25 repositórios disponíveis desta organização.`,batchAccessUnavailable:`O acesso não está confirmado. Reveja o PAT temporário ou remova este repositório da seleção.`,batchSelectionBody:`Escolha entre 1 e 25 repositórios de {organization}. Apenas os selecionados serão configurados.`,batchDiscoveryUnavailable:`O GitHub não conseguiu listar os repositórios. O atual continua disponível; procure outro pelo nome exato ou reveja o acesso do PAT.`,batchDiscoveryTruncated:`Esta vista atingiu o limite de 1.000 repositórios. Procure pelo nome exato para adicionar um destino em falta.`,batchFilter:`Filtrar repositórios visíveis`,batchSelectedCount:`{count} selecionados · máximo 25`,batchRepositories:`Repositórios`,batchPrivate:`Privado`,batchPublic:`Público`,batchCurrent:`Repositório atual`,batchArchived:`Arquivado`,batchDisabled:`Desativado`,batchReadOnly:`Sem acesso de escrita`,batchNoMatches:`Nenhum repositório visível corresponde ao filtro.`,batchPrevious:`Anterior`,batchNext:`Seguinte`,batchMissingRepository:`Não encontra um repositório?`,batchAccessExplanation:`A lista mostra apenas os repositórios visíveis para este PAT. A pesquisa por nome exato não concede acesso nem seleciona o repositório automaticamente. Se substituir o PAT temporário, limite-o aos repositórios que pretende configurar.`,batchExactName:`Nome exato do repositório nesta organização`,batchFindRepository:`Procurar repositório`,batchChangeAccess:`Alterar o acesso do PAT temporário`,batchReviewSelection:`Rever repositórios selecionados`,patStorageRetain:`Mantém-se o Secret PAT existente em {destination}. O seu valor não é pedido, copiado nem substituído. Se faltar, deve ser criado em separado. A verificação da identidade e das permissões em execução fica pendente.`,patStorageTitle:`Armazenamento do PAT do bot`,patRepositoryReplace:`O Secret PAT já existe no repositório {destination}. Será substituído mesmo que tenha escolhido preservar os outros Secrets existentes.`,patOrganizationReplace:`O Secret PAT já existe na organização {destination}. Será substituído mesmo que tenha escolhido preservar os outros Secrets existentes.`,patRepositoryCreate:`O PAT do bot será guardado como Secret PAT no repositório {destination}.`,patOrganizationCreate:`O PAT do bot será guardado como Secret PAT na organização {destination}.`,patReplacementChecks:`O PAT do bot fornecido tem de passar as verificações de identidade, acesso ao repositório e permissões necessárias antes de escrever este Secret.`,patOrganizationImpact:`Substituir este Secret da organização pode afetar outros repositórios que o utilizam. As verificações deste repositório não validam os requisitos dos restantes.`,repositorySecretSettings:`Abrir os Secrets Actions do repositório`,botAccountWarning:`Deve abrir este link com a conta de bot selecionada: @{account}.`,botAccountHelp:`Confirme a conta do GitHub antes de gerar o PAT. Use uma janela privada ou mude de conta se o navegador tiver a sessão do operador da configuração.`,botGithubForm:`Criar PAT do bot como @{account}`,language:`Idioma`,english:`Inglês`,spanish:`Espanhol`,setup:`CONFIGURAÇÃO`,connecting:`A ligar…`,localSession:`SESSÃO LOCAL`,progress:`Progresso`,studio:`ASSISTENTE DE CONFIGURAÇÃO`,journey:`O SEU PERCURSO`,repository:`Repositório`,choices:`Opções`,setupPat:`PAT de configuração`,plan:`Plano`,botPat:`PAT do bot e credenciais`,apply:`Aplicar`,localDesign:`Local por conceção`,localDesignBody:`Esta página funciona no seu computador. O GitHub cria ambos os PAT nos seus próprios separadores.`,preparing:`A preparar a configuração…`,completeTitle:`Configuração concluída.`,previewTitle:`Pré-visualização concluída.`,cancelledTitle:`Configuração cancelada.`,blockedTitle:`A configuração requer atenção.`,gettingReady:`A PREPARAR`,activeLede:`Uma decisão de cada vez. As suas escolhas determinam permissões, plano e credenciais.`,resultLede:`Consulte abaixo o resultado e o próximo passo. O terminal contém mais detalhes técnicos.`,readOnly:`Separador só de leitura`,readOnlyBody:`Outro separador controla esta sessão. Pode acompanhar o progresso ou assumir o controlo.`,takeOver:`Assumir o controlo`,attention:`Requer atenção`,checked:`Verificado`,pleaseNote:`Atenção`,progressUpdate:`Atualização de progresso`,reviewPass:`A rever as escolhas guardadas — passagem {pass}. É a mesma execução, não um reinício.`,cancelSetup:`Cancelar configuração`,cancelConfirm:`Cancelar esta sessão local? Os PAT já criados no GitHub continuarão a existir.`,footerLocal:`APENAS LOCALHOST`,footerCloud:`SEM CONTA DE CONFIGURAÇÃO NA NUVEM`,footerGithub:`O GITHUB EMITE OS PAT`,currentDecision:`DECISÃO ATUAL`,session:`SESSÃO`,continue:`Continuar`,previousQuestion:`Pergunta anterior`,questionProgress:`Pergunta {current} de {total} neste grupo · {overall} de {all} no total`,yes:`Sim`,no:`Não`,permissionPreview:`PRÉ-VISUALIZAÇÃO DAS PERMISSÕES`,changeAnswersTitle:`Alterar respostas`,changeAnswersHelp:`Volte a uma secção sem perder as outras respostas. O plano e as permissões PAT necessárias serão verificados de novo.`,changeSection:`Alterar {section}`,editCapabilities:`Funcionalidades`,editRuntimes:`Agentes`,editModels:`Modelos dos agentes`,editRoleModels:`Modelos por tarefa`,editRepository:`Comportamento do repositório`,editDeployment:`Releases e correções`,editBugbot:`Bugbot`,editApproval:`Aprovação de PR`,editProjects:`Projects`,editProvisioning:`Provisionamento`,editStorage:`Secrets e Variables`,suggested:`Resposta sugerida: {answer}. Pode rever as opções antes de criar o PAT.`,none:`nenhuma`,sourceGithub:`Observado nos metadados autenticados deste repositório no GitHub.`,sourceConfig:`Fornecido pela sua configuração; o GitHub não o substituiu.`,sourceDefault:`Valor predefinido do produto; não verificado neste repositório.`,sourceLocal:`Observado neste checkout local; confirme que o ramo existe no GitHub antes de aplicar alterações.`,whyMatters:`Porque importa`,whenApplies:`Quando se aplica`,whereConfigured:`Onde se configura`,howToChoose:`Como escolher`,whyRecommendation:`Porque importa`,example:`Exemplo`,effect:`O que muda`,verify:`Como verificar`,learnMore:`Ler a documentação desta opção`,resultApplied:`A configuração foi aplicada`,resultNoChanges:`Nenhuma alteração efetuada`,resultStopped:`Nenhuma alteração iniciada`,resultPartial:`Verifique as alterações parciais`,resultCompleteBody:`O PAT temporário não é revogado automaticamente. Elimine-o no GitHub após verificar. Guarde o PAT do bot até rodar o Secret.`,resultPartialBody:`Um Secret ou outro recurso pode ter sido alterado. Verifique o GitHub e execute copilot doctor --read-only antes de substituir ou eliminar o PAT.`,resultNoChangesBody:`O Copilot não começou a aplicar alterações. Podem ter ocorrido testes temporários de permissões; o GitHub pode conservar o histórico de Actions, Issues ou PR após a limpeza. Os PAT criados permanecem até serem eliminados.`,whatHappened:`O que aconteceu`,alreadyChanged:`O que mudou`,noChanges:`Não foram iniciadas alterações no repositório nem no GitHub nesta sessão.`,nextAction:`Próximo passo`,reasonPermissions:`Faltam permissões do PAT de configuração ou não foi possível confirmá-las.`,nextPermissions:`Verifique as permissões, corrija o PAT no GitHub e inicie uma nova sessão.`,reasonWorkflowPermissions:`O PAT do bot não concluiu todas as verificações de permissões. Verifique a permissão que falhou e os requisitos de preparação ou limpeza abaixo.`,permissionReportTitle:`Verificação das permissões do PAT`,permissionReportLead:`As permissões obrigatórias que não puderam ser confirmadas aparecem abaixo. «Não verificável» não significa «ausente».`,updatedSetupPatTitle:`Corrija o PAT de configuração`,updatedSetupPatBody:`Esta ligação do GitHub inclui as permissões necessárias para esta configuração. Selecione este repositório antes de criar o PAT. Feche esta sessão local e inicie uma nova configuração com o PAT corrigido.`,updatedSetupPatGrants:`Permissões adicionais detetadas após a inspeção`,updatedSetupPatLink:`Criar PAT de configuração corrigido`,permissionProbeCleanupPending:`Pode ainda existir um recurso temporário de verificação de permissões. O setup parou; não presuma que foi removido.`,permissionProbeCleanupAction:`Tente novamente com um PAT que o possa remover. O registo local de recuperação é verificado antes de novos testes.`,permissionSecretCollision:`O GitHub indicou que um Secret com o nome aleatório de teste foi atualizado. Um valor criado em simultâneo pode ter mudado. A configuração parou sem o eliminar.`,permissionSecretCollisionAction:`Consulte o histórico de Secrets do GitHub e reponha qualquer valor afetado antes de tentar novamente. O registo local não pode corrigir esta colisão.`,permissionIdentity:`Identidade GitHub e acesso ao repositório`,permissionIdentityValid:`Verificados`,permissionIdentityInvalid:`Recusados`,permissionIdentityUnknown:`Não confirmados`,permissionGrantNotChecked:`Não verificada`,permissionReportNoFailedGrant:`Esta verificação não encontrou uma permissão obrigatória em falta. Confirme a conta prevista para o PAT e o erro no terminal antes de tentar novamente.`,reasonStorage:`O armazenamento GitHub Actions escolhido não pôde ser usado com segurança.`,nextStorage:`Verifique o âmbito das Variables/Secrets e os recursos existentes; depois tente novamente.`,reasonConfiguration:`Não foi possível validar a configuração escolhida.`,nextConfiguration:`Leia os detalhes no terminal, corrija as opções e tente novamente.`,reasonExpired:`A sessão local expirou.`,nextExpired:`Inicie uma nova sessão; a aprovação anterior não pode ser reutilizada.`,reasonCancelled:`A configuração foi cancelada.`,nextCancelled:`Inicie outra execução se ainda quiser configurar o repositório.`,reasonUnknown:`A configuração parou. O navegador não conseguiu determinar a causa exata. Consulte o recibo de recursos, se estiver disponível, e o terminal.`,nextUnknown:`Leia o último erro no terminal antes de tentar novamente. Não presuma que um PAT foi revogado.`,reasonProvider:`O GitHub ou outro fornecedor não concluiu a operação solicitada.`,nextProvider:`Use a referência de diagnóstico para consultar o terminal, verifique a disponibilidade e o acesso e reveja possíveis alterações parciais antes de tentar novamente.`,reasonRateLimit:`O GitHub limitou temporariamente os pedidos necessários para a configuração.`,nextRateLimit:`Aguarde a reposição do limite. Inspecione as alterações concluídas antes de iniciar outra configuração.`,diagnosticReference:`Referência de diagnóstico`,resourceReceipt:`Registo das operações de configuração`,effectCompleted:`Indicada como concluída`,effectSkipped:`Indicada como ignorada`,effectInspect:`Resultado por inspecionar`,effectNotStarted:`Não iniciada`,effectInProgress:`Em curso; resultado ainda por confirmar`,scopeLocal:`Checkout local`,scopeMixed:`Repositório e organização`,receiptFiles:`Ficheiros de configuração`,receiptSecrets:`Secrets do GitHub Actions`,receiptLabels:`Etiquetas das questões`,receiptIssueTypes:`Tipos de questão`,receiptVariables:`Variables do GitHub Actions`,receiptInitialTag:`Etiqueta de versão inicial`,inspectPartial:`Algumas alterações podem estar ativas. Verifique o GitHub e o terminal antes de tentar novamente.`,patSettings:`Abrir definições de PAT no GitHub ↗`,closeSession:`Fechar sessão local`,sessionClosed:`Sessão local encerrada`,sessionClosedBody:`O servidor local aceitou o pedido de encerramento. Esta página deixa de o contactar e preserva o resultado. Encerrar a sessão não revoga nenhum PAT criado no GitHub.`,doctorHelp:`Depois de concluir a configuração, pode verificar aqui os recursos instalados sem iniciar Actions. Também pode executar copilot doctor --read-only na raiz do repositório com o PAT temporário e o mesmo ficheiro --config não secreto, caso o tenha usado.`,doctorRun:`Verificar instalação (só de leitura)`,doctorRunning:`A verificar os recursos instalados sem iniciar Actions…`,doctorPassed:`A verificação só de leitura não encontrou falhas.`,doctorWarnings:`A verificação só de leitura requer atenção.`,doctorFailed:`A verificação só de leitura não terminou. Consulte o terminal ou execute o comando abaixo.`,doctorCounts:`{pass} aprovados · {warn} avisos · {fail} falhas · {skipped} ignorados.`,doctorSecretLimit:`Este modo não consegue verificar os valores dos Secrets.`,botRenewal:`O PAT do bot permanece no Secret do GitHub Actions escolhido para execuções futuras. A data de validade real não é verificada aqui; registe-a no GitHub e substitua o Secret antes de expirar.`,working:`A preparar o próximo passo`,workingBody:`O processo local está a verificar as respostas. Mantenha esta página aberta.`,repoFocus:`Repositório em foco`,repoFocusBody:`Esta configuração destina-se ao repositório indicado. Secrets e Variables da organização podem ser partilhados com outros repositórios.`,access:`acesso`,readOnlyCheck:`Verificação de capacidades`,provisionalGrants:`Permissões provisórias mínimas`,conditionalGrants:`As permissões condicionais dependem das escolhas e do GitHub. Haverá uma auditoria final antes das alterações.`,permissionEvidenceVerified:`Uma leitura no GitHub confirmou este acesso.`,permissionEvidenceVerifiedWrite:`Foi criado, lido e removido um recurso temporário.`,permissionEvidencePrivateProject:`Um Project não público da organização confirmou o acesso de leitura a Projects.`,permissionEvidenceMissing:`O GitHub recusou o acesso necessário. Verifique as definições do PAT.`,permissionEvidenceWrite:`A verificação temporária de escrita não terminou com sucesso. Reveja a etapa que falhou e tente novamente.`,permissionEvidencePublic:`A leitura foi bem-sucedida, mas este recurso público não comprova por si só a permissão do PAT.`,permissionEvidencePublicProjects:`A leitura dos Projects foi bem-sucedida, mesmo com uma lista vazia. O acesso a Projects privados é verificado quando são selecionados.`,permissionEvidenceUnknownRead:`A consulta de leitura foi inconclusiva. Consulte o detalhe no terminal e tente de novo se necessário.`,permissionUnknown:`Esta permissão exige revisão. Consulte a permissão exata e a explicação técnica no terminal antes de continuar.`,permissionsFollow:`As permissões seguem as suas escolhas`,permissionsFollowBody:`Mostramos as permissões exatas antes de criar cada PAT. Abrir esta página não cria nada.`,files:`Ficheiros`,workflows:`Workflows`,variables:`Variables`,secretNames:`Nomes dos Secrets`,planBody:`Reveja exatamente o que pode mudar. Após a aprovação, recursos temporários testam as permissões de escrita do PAT; depois são pedidos o PAT do bot e outras credenciais. O GitHub pode conservar execuções, histórico de Issues ou PR e notificações.`,planPermissionProbeTitle:`Testes temporários de permissões após aprovação`,planPermissionProbeBody:`Cada permissão indicada cria, lê e remove o seu recurso temporário. O teste de Issues cria uma Issue visível; se o GitHub impedir a eliminação, a configuração fecha-a, indica o número e para. Actions, Issues e Pull requests podem deixar histórico ou notificações.`,planActionsProbePrerequisites:`O teste de Actions precisa de Contents Write para criar a branch isolada. Se o workflow de saúde empacotado exato não estiver disponível na branch predefinida, também precisa de Workflows Write para preparar uma versão com os jobs desativados. Para verificar o bot, o PAT de configuração prepara e limpa o recurso; o PAT do bot inicia e lê a execução. Um pré-requisito bloqueado não prova que falte Actions.`,planSecretProbeLimit:`O GitHub só oferece uma operação de criação ou atualização para Secrets. A verificação usa um nome aleatório privado e confirma primeiro que não existe, mas o GitHub não garante uma criação atómica. Se indicar uma atualização, a configuração para e pede a revisão do histórico do Secret.`,planChoices:`As suas decisões principais`,planEnabledCapabilities:`Funcionalidades ativadas`,planBranchRoles:`Ramo de produção / desenvolvimento`,planApprovalMode:`Aprovação de pull requests`,planVariableScope:`Âmbito das Variables`,planSecretScope:`Âmbito dos Secrets`,planInitialTag:`Criar etiqueta inicial`,planAgentRouting:`Agente e modelo por tarefa`,planIssueWorkflows:`Fluxos de questões`,planTrustedChecks:`Produtores CI de confiança`,planCoverage:`Evidência de cobertura`,planProjectStatuses:`Transições Status dos Projects`,planIssueResources:`Etiquetas e tipos de questão`,planIssueResourcesValue:`Verificados ou criados ao aplicar`,planProducerAttested:`Identidade CI e passo obrigatório verificados por si`,planCoverageThreshold:`Cobertura mínima das linhas alteradas`,planCoverageReporter:`Workflow que publica o artefacto`,planReporterAttested:`Produtor do relatório de cobertura verificado por si`,planAdvancedDefaults:`O plano também inclui valores predefinidos para definições que não alterou. Use Alterar abaixo para rever qualquer secção antes de aprovar.`,planUnknownWarning:`Um aviso adicional do plano não pode ser apresentado aqui. Leia-o no terminal antes de aprovar.`,planBasicDefaultsIntro:`O percurso básico manteve estas definições avançadas. Abra uma secção abaixo para as rever ou alterar:`,scopeRepository:`Repositório`,scopeOrganization:`Organização`,scopeDisabled:`Sem aprovisionamento`,approvalOff:`Desativada`,approvalRecommend:`Apenas recomendações`,approvalGuarded:`Aprovação protegida`,beforeContinue:`Antes de continuar`,stopHere:`Parar aqui`,approvePlan:`Aprovar este plano`,githubLink:`Abrir ligação do GitHub ↗`,githubForm:`Abrir formulário oficial de PAT no GitHub`,githubFormHelp:`Confirme a conta ligada, escolha Only select repositories e este repositório. O GitHub gere 2FA e cria o PAT.`,pasteHere:`Cole o valor aqui`,yourAnswer:`A sua resposta`,hiddenAfter:`Oculto após envio`,typeAnswer:`Escreva a sua resposta`,secretHelp:`Enviado apenas ao processo local. Não será mostrado de novo nem guardado no navegador.`,pairTitle:`Emparelhar este navegador`,pairLabel:`Código do terminal`,pairPlaceholder:`16 caracteres hexadecimais`,pairBody:`Encontre o código de 16 caracteres no terminal onde iniciou copilot setup --web. Não aparece no URL nem fica guardado após fechar a página.`,pairHelp:`Mantenha o código privado. Após atualizar a página, introduza-o novamente.`,pairButton:`Ligar à configuração local`,privateSession:`SESSÃO LOCAL PRIVADA`,theme:`Tema`,themeAuto:`Automático`,themeSystem:`Seguir sistema`,themeLight:`Tema claro`,themeDark:`Tema escuro`,selectOne:`Selecione uma opção`,ciRun:`Abrir execução de CI no GitHub ↗`,manualCheck:`Check não listado? Indique nome|ID da App|workflow exatos, separados por ponto e vírgula.`,checksObserved:`Foram encontrados jobs recentes de CI. Abra cada execução e confirme o job, a App e o passo obrigatório de cobertura antes de confiar nele.`,checksNoRecent:`Não há execuções recentes de workflows de pull request. Execute o CI habitual numa PR real ou introduza um produtor exato.`,checksNoVerifiable:`Há execuções recentes, mas nenhum job foi ligado a um Check Run e App exatos. Consulte o GitHub ou introduza o produtor manualmente.`,checksDenied:`O GitHub recusou a consulta do CI. Conceda Actions: read e Checks: read ao PAT de configuração ou introduza um produtor exato.`,checksUnavailable:`A consulta do CI falhou. Isto não prova que o repositório não tenha checks. Tente novamente ou introduza um produtor exato.`,projectsObserved:`Estes Projects existentes pertencem ao proprietário do repositório. Selecione só os que a automatização deve atualizar.`,projectsEmpty:`Esta consulta limitada ao GitHub não devolveu Projects abertos e acessíveis; isso não prova que não existam. Verifique o acesso ou introduza um número confirmado.`,projectsDenied:`O GitHub recusou a consulta de Projects. Verifique Projects: read da organização no PAT ou introduza os números.`,projectsUnavailable:`Não foi possível consultar Projects. Isto não prova que não existam. Introduza um número verificado ou tente novamente.`,projectsUnsupported:`Esta API do GitHub não lista Projects pessoais com um PAT de permissões precisas. Introduza o número do URL de um Project existente.`,discoveryTruncated:`Só foi inspecionada uma amostra limitada de Projects acessíveis ou checks recentes. Introduza manualmente um elemento em falta.`,checksDiscoveryScope:`Âmbito: até 20 execuções de PR entre as últimas 1.000 execuções de workflows (até 10 páginas) dos últimos 90 dias; são inspecionadas no máximo 15 execuções e 100 checks por commit.`,projectsDiscoveryScope:`Âmbito: no máximo 30 Projects abertos e acessíveis da organização em duas páginas; são inspecionados até 100 campos por Project. Os Projects fechados são excluídos.`,retryDiscovery:`Repetir pesquisa no GitHub`,retryRemaining:`Restam {count} tentativas só de leitura. As suas respostas são mantidas.`,retryExhausted:`Não restam tentativas. Verifique o GitHub e introduza manualmente os itens em falta.`,observationTimeUnknown:`data de observação indisponível`,branchRequirementUnknown:`Exigido pela regra do ramo: não verificado`,branchRequirementObserved:`Exigido em {branch} por um ruleset ativo para esta verificação e esta App específicas.`,ciRule:`Abrir ruleset da verificação obrigatória ↗`,projectSharedStatus:`Todos os Projects escolhidos devem partilhar cada valor Status. Esta configuração não atribui valores diferentes por Project.`,fixedWorkflowEnabled:`A sua configuração fixa features.{kind}=true. Mantenha {kind} selecionado; altere --config ou as opções para mudar esta escolha.`,fixedWorkflowDisabled:`A sua configuração fixa features.{kind}=false. Não selecione {kind}; altere --config ou as opções para mudar esta escolha.`,fixedIssuesRequired:`A sua configuração ativa explicitamente release ou hotfix. Mantenha Issues ativo ou altere primeiro --config ou as opções.`,projectSelectionNotObserved:`Os números de Projects escolhidos anteriormente são mantidos, mas já não aparecem neste resultado do GitHub. Confirme-os no GitHub ou remova-os.`,removeSelection:`Remover seleção`,projectTransitionIssueCreated:`Nova questão`,projectTransitionPullRequestCreated:`Novo pull request`,projectTransitionIssueInProgress:`Questão em curso`,projectTransitionPullRequestInProgress:`Pull request em curso`,projectUrl:`Abrir Project no GitHub ↗`,projectManual:`Project em falta? Introduza o número positivo ou o URL exato do GitHub. IDs PVT_ não são aceites.`,projectStatusUnavailable:`Não foi possível verificar as opções Status de todos os Projects. Consulte cada um no GitHub e introduza o valor exato.`,projectStatusIncompatible:`Os Projects escolhidos não partilham valores Status. Selecione Projects compatíveis antes de continuar.`,producerName:`Nome do check/job`,producerAppId:`ID da App GitHub de origem`,producerWorkflow:`Nome do workflow`,producerAdd:`Adicionar check exato`,producerRemove:`Remover check`,producerManualHelp:`Use a identidade exata apresentada no GitHub. Adicioná-la não prova que exige cobertura.`,producerManualInvalid:`Indique nome, ID numérico positivo da App e workflow. Não use | ou ; nos nomes. São permitidas vírgulas.`,translationPreviewTitle:`Revisão da tradução em curso`,translationPreviewBody:`As perguntas próprias da configuração já estão traduzidas. Alguns diagnósticos dinâmicos do GitHub ou do fornecedor ainda podem aparecer em inglês durante a revisão. Mudar de idioma não altera as suas respostas.`,unknownLocalError:`Ocorreu um erro inesperado na configuração local. Consulte o terminal e atualize a página ou reinicie a configuração.`},qi=[`en`,`es`,`fr`,`pt`],Ji={en:`English`,es:`Español`,fr:`Français`,pt:`Português`},Yi={en:Ui,es:Wi,fr:Gi,pt:Ki};function Z(e,t,n={}){return(Yi[t]??Yi.en)[e].replace(/\{(\w+)\}/gu,(e,t)=>n[t]??``)}var Xi={Repository:`repository`,"Setup choices":`choices`,"Setup PAT":`setupPat`,Plan:`plan`,"Bot PAT & credentials":`botPat`,Apply:`apply`,Preparation:`gettingReady`};function Zi(e,t){return Z(Qi(e),t)}function Qi(e){return Xi[e??``]??`gettingReady`}var Q=Fi(`en`),$i={en:{checking:`Checking permission for this adjustment. The temporary Variable will be removed before the reviewed setting is written.`,finish:`Finish`,finished:`Configuration updated`,inspectionFinished:`Configuration inspection finished`,inspectionStopped:`Configuration inspection stopped`,inspectAdjustment:`Check this adjustment before retrying`,finishedBody:`Your adjustments were verified by reading GitHub again. Delete the temporary setup PAT when you finish.`,inspectionBody:`No adjustment was applied. Your configuration is preserved. Any PAT created on GitHub remains until you delete it.`,title:`Your Copilot configuration`,unconfigured:`Copilot is not configured in this checkout`,detected:`Configuration detected in this checkout`,incomplete:`Some configuration could not be inspected`,intro:`Review what this checkout configures, make a small adjustment, or run the complete assistant again.`,startHelp:`Start the guided assistant to choose workflows, agents and GitHub settings for this repository. You will review the plan before any setup changes are applied.`,local:`Local files are shown below. Connect to GitHub to read the current repository and organization settings. No changes happen when you open this panel.`,limits:`This panel describes the current checkout. It does not certify the default branch, runner authentication, branch rules, or environment-specific overrides.`,connect:`Read configuration from GitHub`,refresh:`Refresh configuration`,wizard:`Run the complete assistant`,start:`Start setup`,close:`Close local session`,unknown:`Not verified`,repository:`Repository`,organization:`Organization`,workflow:`Workflow value`,source:`Where this value comes from`,quick:`Quick adjustments`,quickHelp:`Only independent settings can be changed here. Use the complete assistant for workflows, agents, Projects, permissions or credentials.`,edit:`Change`,details:`All workflow settings`,credentials:`Credentials`,secretHelp:`Secret names only. GitHub cannot return their values, owners or permissions; presence is not proof of validity.`,variables:`GitHub settings used by these workflows`,shadowed:`Overridden by the repository value`,empty:`No entries detected`,githubIncomplete:`Some GitHub inventories are unavailable. Unknown values stay unknown; quick changes are disabled until both Variable scopes can be read.`,current:`Current value`,next:`New value`,review:`Review this adjustment`,back:`Back to configuration`,preview:`Review change`,apply:`Apply this adjustment`,effect:`Only this setting is written. Workflows and Secrets are preserved. Before writing, Copilot tests Variables Write using one temporary Variable and removes it.`,orgImpact:`This changes a shared organization setting and can affect every repository with access to it. Its visibility and repository access are preserved.`,repoImpact:`This changes the setting for this repository only.`,connected:`GitHub configuration read. Review the current values below.`,invalid:`Choose a supported value. Nothing was changed.`,unchanged:`That value is already in effect. Nothing was changed.`,stale:`The configuration changed while you reviewed it. Review the refreshed value and try again; nothing was written.`,blocked:`Access could not be confirmed. You can reconnect with a corrected setup PAT; your configuration is preserved.`,updated:`Adjustment applied and read back from GitHub. You can make another adjustment or close the session.`,partial:`The write could not be confirmed. Inspect GitHub before retrying; the previous value was not restored automatically.`},es:{checking:`Comprobando el permiso para este ajuste. La Variable temporal se eliminará antes de escribir el parámetro aprobado.`,finish:`Terminar`,finished:`Configuración actualizada`,inspectionFinished:`Inspección de configuración finalizada`,inspectionStopped:`Inspección de configuración interrumpida`,inspectAdjustment:`Revisa este ajuste antes de reintentar`,finishedBody:`Los ajustes se confirmaron mediante una nueva lectura de GitHub. Elimina el PAT temporal de setup cuando termines.`,inspectionBody:`No se ha aplicado ningún ajuste. Tu configuración se conserva. Los PAT creados en GitHub existen hasta que los elimines.`,title:`Tu configuración de Copilot`,unconfigured:`Copilot no está configurado en este checkout`,detected:`Configuración detectada en este checkout`,incomplete:`No se pudo inspeccionar parte de la configuración`,intro:`Revisa la configuración de este checkout, haz un ajuste puntual o vuelve a ejecutar el asistente completo.`,startHelp:`Inicia el asistente guiado para elegir workflows, agentes y parámetros de GitHub para este repositorio. Revisarás el plan antes de aplicar cambios de configuración.`,local:`Estos son los archivos locales. Conecta con GitHub para leer los valores actuales del repositorio y la organización. Abrir el panel no realiza cambios.`,limits:`El panel describe este checkout. No certifica la rama por defecto, la autenticación del runner, las reglas de ramas ni las excepciones de entornos.`,connect:`Leer configuración de GitHub`,refresh:`Actualizar información`,wizard:`Ejecutar el asistente completo`,start:`Iniciar configuración`,close:`Cerrar sesión local`,unknown:`Sin verificar`,repository:`Repositorio`,organization:`Organización`,workflow:`Valor del workflow`,source:`Procedencia del valor`,quick:`Ajustes rápidos`,quickHelp:`Aquí puedes cambiar parámetros independientes. Para workflows, agentes, Projects, permisos o credenciales, usa el asistente completo.`,edit:`Cambiar`,details:`Todos los parámetros de los workflows`,credentials:`Credenciales`,secretHelp:`Solo se muestran nombres. GitHub no devuelve valores, propietarios ni permisos de los Secrets; su presencia no demuestra su validez.`,variables:`Parámetros de GitHub usados por estos workflows`,shadowed:`El valor del repositorio tiene prioridad`,empty:`No se han detectado entradas`,githubIncomplete:`Parte de la información de GitHub no está disponible. Los valores desconocidos siguen sin verificar; los ajustes requieren leer ambos scopes de Variables.`,current:`Valor actual`,next:`Nuevo valor`,review:`Revisar este ajuste`,back:`Volver a la configuración`,preview:`Revisar cambio`,apply:`Aplicar este ajuste`,effect:`Solo se escribe este parámetro. Se conservan workflows y Secrets. Antes de escribir, Copilot prueba Variables Write con una Variable temporal y la elimina.`,orgImpact:`Cambiarás un parámetro compartido de la organización: puede afectar a todos los repositorios con acceso. Se conservarán su visibilidad y sus accesos.`,repoImpact:`El cambio afecta únicamente a este repositorio.`,connected:`Configuración de GitHub leída. Revisa los valores actuales.`,invalid:`Elige un valor permitido. No se ha cambiado nada.`,unchanged:`Ese valor ya está en uso. No se ha cambiado nada.`,stale:`La configuración cambió durante la revisión. Revisa el valor actualizado y vuelve a intentarlo; no se ha escrito nada.`,blocked:`No se pudo confirmar el acceso. Puedes conectar con un PAT de setup corregido; tu configuración se conserva.`,updated:`Ajuste aplicado y confirmado mediante una nueva lectura de GitHub. Puedes hacer otro ajuste o cerrar la sesión.`,partial:`No se pudo confirmar la escritura. Revisa GitHub antes de reintentar; el valor anterior no se restauró automáticamente.`},fr:{checking:`Vérification de la permission pour cet ajustement. La Variable temporaire sera supprimée avant l’écriture du paramètre approuvé.`,finish:`Terminer`,finished:`Configuration mise à jour`,inspectionFinished:`Inspection de la configuration terminée`,inspectionStopped:`Inspection de la configuration interrompue`,inspectAdjustment:`Vérifiez cet ajustement avant de réessayer`,finishedBody:`Les ajustements ont été confirmés par une nouvelle lecture de GitHub. Supprimez le PAT temporaire à la fin.`,inspectionBody:`Aucun ajustement appliqué. La configuration est conservée. Tout PAT créé sur GitHub existe jusqu’à sa suppression.`,title:`Votre configuration Copilot`,unconfigured:`Copilot n’est pas configuré dans ce checkout`,detected:`Configuration détectée dans ce checkout`,incomplete:`Une partie de la configuration n’a pas pu être inspectée`,intro:`Consultez la configuration, ajustez un paramètre ou relancez l’assistant complet.`,local:`Voici les fichiers locaux. Connectez GitHub pour lire les valeurs actuelles du dépôt et de l’organisation. Ouvrir ce panneau ne modifie rien.`,startHelp:`Lancez l’assistant guidé pour choisir les workflows, agents et paramètres GitHub de ce dépôt. Vous examinerez le plan avant toute modification de configuration.`,limits:`Ce panneau décrit le checkout actuel. Il ne certifie pas la branche par défaut, l’authentification du runner, les règles de branches ni les exceptions des environnements.`,connect:`Lire la configuration GitHub`,refresh:`Actualiser`,wizard:`Relancer l’assistant complet`,start:`Configurer Copilot`,close:`Fermer la session locale`,unknown:`Non vérifié`,repository:`Dépôt`,organization:`Organisation`,workflow:`Valeur du workflow`,source:`Origine de cette valeur`,quick:`Ajustements rapides`,quickHelp:`Seuls les paramètres indépendants sont modifiables ici. Utilisez l’assistant complet pour les workflows, agents, Projects, permissions ou identifiants.`,edit:`Modifier`,details:`Tous les paramètres des workflows`,credentials:`Identifiants`,secretHelp:`Noms des Secrets uniquement. GitHub ne retourne ni valeurs, ni propriétaires, ni permissions ; leur présence ne prouve pas leur validité.`,variables:`Paramètres GitHub utilisés par ces workflows`,shadowed:`Remplacé par la valeur du dépôt`,empty:`Aucune entrée détectée`,githubIncomplete:`Certaines données GitHub sont indisponibles. Les valeurs inconnues restent non vérifiées ; les deux scopes de Variables doivent être lisibles.`,current:`Valeur actuelle`,next:`Nouvelle valeur`,review:`Vérifier cet ajustement`,back:`Retour à la configuration`,preview:`Vérifier le changement`,apply:`Appliquer cet ajustement`,effect:`Seul ce paramètre est écrit. Workflows et Secrets sont conservés. Copilot teste Variables Write avec une Variable temporaire, puis la supprime.`,orgImpact:`Ce paramètre partagé peut affecter tous les dépôts autorisés. Sa visibilité et ses accès restent identiques.`,repoImpact:`Ce changement affecte seulement ce dépôt.`,connected:`Configuration GitHub lue. Consultez les valeurs actuelles.`,invalid:`Choisissez une valeur autorisée. Aucun changement.`,unchanged:`Cette valeur est déjà appliquée. Aucun changement.`,stale:`La configuration a changé pendant votre examen. Vérifiez la nouvelle valeur et réessayez ; aucune écriture.`,blocked:`L’accès n’a pas été confirmé. Reconnectez un PAT de configuration corrigé ; la configuration est conservée.`,updated:`Ajustement appliqué et relu depuis GitHub. Vous pouvez continuer ou fermer la session.`,partial:`L’écriture n’a pas été confirmée. Vérifiez GitHub avant de réessayer ; la valeur précédente n’a pas été restaurée automatiquement.`},pt:{checking:`A verificar a permissão para este ajuste. A Variable temporária será eliminada antes de escrever o parâmetro aprovado.`,finish:`Terminar`,finished:`Configuração atualizada`,inspectionFinished:`Inspeção da configuração concluída`,inspectionStopped:`Inspeção da configuração interrompida`,inspectAdjustment:`Verifique este ajuste antes de tentar novamente`,finishedBody:`Os ajustes foram confirmados por uma nova leitura do GitHub. Elimine o PAT temporário de setup ao terminar.`,inspectionBody:`Nenhum ajuste aplicado. A configuração é preservada. Os PAT criados no GitHub existem até os eliminar.`,title:`A sua configuração Copilot`,unconfigured:`Copilot não está configurado neste checkout`,detected:`Configuração detetada neste checkout`,incomplete:`Parte da configuração não pôde ser inspecionada`,intro:`Veja a configuração, ajuste um parâmetro ou execute o assistente completo novamente.`,local:`Estes são os ficheiros locais. Ligue ao GitHub para ler os valores atuais do repositório e da organização. Abrir este painel não altera nada.`,startHelp:`Inicie o assistente guiado para escolher workflows, agentes e parâmetros GitHub para este repositório. Irá rever o plano antes de aplicar alterações de configuração.`,limits:`Este painel descreve o checkout atual. Não certifica o branch predefinido, a autenticação do runner, as regras de branches nem exceções dos ambientes.`,connect:`Ler configuração do GitHub`,refresh:`Atualizar informação`,wizard:`Executar o assistente completo`,start:`Configurar Copilot`,close:`Fechar sessão local`,unknown:`Não verificado`,repository:`Repositório`,organization:`Organização`,workflow:`Valor do workflow`,source:`Origem do valor`,quick:`Ajustes rápidos`,quickHelp:`Aqui pode alterar parâmetros independentes. Use o assistente completo para workflows, agentes, Projects, permissões ou credenciais.`,edit:`Alterar`,details:`Todos os parâmetros dos workflows`,credentials:`Credenciais`,secretHelp:`Apenas nomes dos Secrets. GitHub não devolve valores, contas ou permissões; a presença não comprova a validade.`,variables:`Parâmetros GitHub usados por estes workflows`,shadowed:`Substituído pelo valor do repositório`,empty:`Nenhuma entrada detetada`,githubIncomplete:`Alguns dados GitHub estão indisponíveis. Os valores desconhecidos continuam não verificados; os dois scopes de Variables devem poder ser lidos.`,current:`Valor atual`,next:`Novo valor`,review:`Rever este ajuste`,back:`Voltar à configuração`,preview:`Rever alteração`,apply:`Aplicar este ajuste`,effect:`Só este parâmetro é escrito. Workflows e Secrets são preservados. Copilot testa Variables Write com uma Variable temporária e depois elimina-a.`,orgImpact:`Este parâmetro partilhado pode afetar todos os repositórios autorizados. A visibilidade e os acessos são preservados.`,repoImpact:`Esta alteração afeta apenas este repositório.`,connected:`Configuração GitHub lida. Reveja os valores atuais.`,invalid:`Escolha um valor permitido. Nada foi alterado.`,unchanged:`Este valor já está aplicado. Nada foi alterado.`,stale:`A configuração mudou durante a revisão. Reveja o valor atualizado e tente novamente; nada foi escrito.`,blocked:`O acesso não foi confirmado. Ligue um PAT de setup corrigido; a configuração é preservada.`,updated:`Ajuste aplicado e confirmado por uma nova leitura do GitHub. Pode continuar ou fechar a sessão.`,partial:`A escrita não foi confirmada. Verifique GitHub antes de tentar novamente; o valor anterior não foi restaurado automaticamente.`}},ea={assignees:[`Issue assignees`,`Responsables de issues`,`Responsables des issues`,`Responsáveis pelas issues`],reviewers:[`PR reviewers`,`Revisores de PRs`,`Relecteurs des PRs`,`Revisores de PRs`],inactivity:[`Close waiting issues after (hours)`,`Cerrar issues en espera tras (horas)`,`Fermer les issues en attente après (heures)`,`Fechar issues em espera após (horas)`],reopen:[`Reopen issues after a push`,`Reabrir issues tras un push`,`Rouvrir les issues après un push`,`Reabrir issues após um push`],description:[`PR description updates`,`Actualizaciones de la descripción de PRs`,`Mise à jour des descriptions de PRs`,`Atualizações da descrição de PRs`],members:[`Limit AI interactions to members`,`Limitar interacciones de IA a miembros`,`Limiter l’IA aux membres`,`Limitar interações de IA a membros`],reasoning:[`Include AI reasoning`,`Incluir razonamiento de IA`,`Inclure le raisonnement de l’IA`,`Incluir raciocínio da IA`],severity:[`Minimum finding severity`,`Severidad mínima de findings`,`Gravité minimale des findings`,`Gravidade mínima dos findings`],commentLimit:[`Maximum review comments`,`Máximo de comentarios por revisión`,`Maximum de commentaires par analyse`,`Máximo de comentários por revisão`],dryRun:[`Preview findings without publishing`,`Analizar findings sin publicarlos`,`Analyser sans publier les findings`,`Analisar findings sem publicar`],effort:[`Review depth`,`Profundidad de revisión`,`Profondeur de l’analyse`,`Profundidade da revisão`],drafts:[`Review draft PRs`,`Revisar PRs en borrador`,`Analyser les PRs en brouillon`,`Rever PRs em rascunho`],suggestions:[`Publish suggested code changes`,`Publicar cambios de código sugeridos`,`Publier des suggestions de code`,`Publicar sugestões de código`],telemetry:[`Include review metrics`,`Incluir métricas de revisión`,`Inclure les métriques d’analyse`,`Incluir métricas de revisão`]},ta=e=>$i[e],na=(e,t)=>ea[e]?.[[`en`,`es`,`fr`,`pt`].indexOf(t)]??e,ra={true:[`On`,`Activado`,`Activé`,`Ativado`],false:[`Off`,`Desactivado`,`Désactivé`,`Desativado`],replace:[`Replace the description`,`Sustituir la descripción`,`Remplacer la description`,`Substituir a descrição`],append:[`Add to the description`,`Añadir a la descripción`,`Compléter la description`,`Acrescentar à descrição`],preserve:[`Keep the description`,`Conservar la descripción`,`Conserver la description`,`Preservar a descrição`],disabled:[`Disabled`,`Desactivado`,`Désactivé`,`Desativado`],info:[`Informational`,`Informativo`,`Information`,`Informativo`],low:[`Low`,`Bajo`,`Faible`,`Baixo`],medium:[`Medium`,`Medio`,`Moyen`,`Médio`],high:[`High`,`Alto`,`Élevé`,`Alto`],smart:[`Automatic`,`Automático`,`Automatique`,`Automático`],default:[`Standard`,`Estándar`,`Standard`,`Padrão`]},ia=(e,t)=>ra[e]?.[[`en`,`es`,`fr`,`pt`].indexOf(t)]??e,aa=H(`

                                                        `,1),oa=H(`
                                                      1. `),sa=H(`
                                                          `,1),ca=H(``);function la(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=M(),o=X(t,`management`,8,!1),s=X(t,`journey`,8),c=[`repository`,`choices`,`setupPat`,`plan`,`botPat`,`apply`];Tn(()=>(V(s()),Qi),()=>{N(a,s()?.complete?.map(Qi)??[])}),En(),ji();var l=ca(),u=P(l),d=L(P(u)),f=I(L(P(d)),!0);D(d),D(u);var p=L(u,2),m=e=>{var t=aa(),r=F(t),i=I(r,!0),a=I(L(r,2),!0);R((e,t)=>{W(i,e),W(a,t)},[()=>(V(ta),n(),B(()=>ta(n()).title)),()=>(V(ta),n(),B(()=>ta(n()).quickHelp))]),U(e,t)},h=e=>{var t=sa(),r=F(t),i=I(r,!0),o=L(r,2);q(o,5,()=>c,K,(e,t,r)=>{var i=oa();let o;var c=P(i),l=I(c,!0),u=I(L(c,2),!0);D(i),R((e,t,n,r,a)=>{J(i,`aria-current`,e),o=ui(i,1,``,null,o,{current:t,completed:n}),W(l,r),W(u,a)},[()=>(V(s()),z(a),z(t),B(()=>s()?.position===r+1&&!z(a).includes(z(t))?`step`:void 0)),()=>s()?.position===r+1&&!z(a).includes(z(t)),()=>z(a).includes(z(t)),()=>(z(a),z(t),B(()=>z(a).includes(z(t))?`✓`:String(r+1).padStart(2,`0`))),()=>(V(Z),z(t),n(),B(()=>Z(z(t),n())))]),U(e,i)}),D(o),R(e=>W(i,e),[()=>(V(Z),n(),B(()=>Z(`journey`,n())))]),U(e,t)};G(p,e=>{o()?e(m):e(h,-1)});var g=L(p,2),_=L(P(g)),v=P(_),y=I(v,!0),b=I(L(v),!0);D(_),D(g),D(l),R((e,t,n,r)=>{J(l,`aria-label`,e),W(f,t),W(y,n),W(b,r)},[()=>(V(Z),n(),B(()=>Z(`progress`,n()))),()=>(V(Z),n(),B(()=>Z(`studio`,n()))),()=>(V(Z),n(),B(()=>Z(`localDesign`,n()))),()=>(V(Z),n(),B(()=>Z(`localDesignBody`,n())))]),U(e,l),k(),i()}var ua=H(`
                                                          `);function da(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=M(`system`);Tn(()=>z(a),()=>{document.documentElement.dataset.theme=z(a)}),En(),ji();var o=ua(),s=P(o);let c;var l=I(s,!0),u=L(s,2);let d;var f=L(u,2);let p;D(o),R((e,t,n,r,i,m,h,g)=>{J(o,`aria-label`,e),J(s,`aria-pressed`,z(a)===`system`),J(s,`aria-label`,t),J(s,`title`,n),c=ui(s,1,``,null,c,{active:z(a)===`system`}),W(l,r),J(u,`aria-pressed`,z(a)===`light`),J(u,`aria-label`,i),J(u,`title`,m),d=ui(u,1,``,null,d,{active:z(a)===`light`}),J(f,`aria-pressed`,z(a)===`dark`),J(f,`aria-label`,h),J(f,`title`,g),p=ui(f,1,``,null,p,{active:z(a)===`dark`})},[()=>(V(Z),n(),B(()=>Z(`theme`,n()))),()=>(V(Z),n(),B(()=>Z(`themeSystem`,n()))),()=>(V(Z),n(),B(()=>Z(`themeSystem`,n()))),()=>(V(Z),n(),B(()=>Z(`themeAuto`,n()))),()=>(V(Z),n(),B(()=>Z(`themeLight`,n()))),()=>(V(Z),n(),B(()=>Z(`themeLight`,n()))),()=>(V(Z),n(),B(()=>Z(`themeDark`,n()))),()=>(V(Z),n(),B(()=>Z(`themeDark`,n())))]),wr(`click`,s,()=>N(a,`system`)),wr(`click`,u,()=>N(a,`light`)),wr(`click`,f,()=>N(a,`dark`)),U(e,o),k(),i()}Tr([`click`]);var fa=H(``),pa=H(` `,1);function ma(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi();function a(e){let t=e.currentTarget.value;qi.includes(t)&&Q.set(t)}ji();var o=pa(),s=F(o),c=P(s),l=L(c);q(l,5,()=>qi,K,(e,t)=>{var n=fa(),r=I(n,!0),i={};R(()=>{W(r,Ji[z(t)]),i!==(i=z(t))&&(n.value=(n.__value=i)??``)}),U(e,n)}),D(l);var u;mi(l),D(s);var d=I(L(s,2),!0);R((e,t)=>{W(c,`${e??``} `),J(l,`aria-label`,t),u!==(u=n())&&(l.value=(l.__value=u)??``,pi(l,u)),W(d,Ji[n()])},[()=>Z(`language`,n()),()=>Z(`language`,n())]),wr(`change`,l,a),U(e,o),k(),i()}Tr([`change`]);var ha=H(``),ga=H(`
                                                          `);function _a(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=X(t,`repository`,8),o=X(t,`closed`,8,!1);ji();var s=ga(),c=P(s),l=P(c),u=I(l,!0),d=L(l,2),f=I(P(d),!0);D(d),D(c);var p=L(c,2),m=P(p),h=P(m),g=e=>{U(e,ha())};G(h,e=>{o()||e(g)});var _=L(h);D(m);var v=L(m);ma(v,{}),da(L(v),{}),D(p),D(s),R((e,t,n)=>{W(u,e),W(f,t),W(_,` ${n??``}`)},[()=>(V(Z),n(),B(()=>Z(`setup`,n()))),()=>(V(a()),V(Z),n(),B(()=>a()??Z(`connecting`,n()))),()=>(V(Z),V(o()),n(),B(()=>Z(o()?`sessionClosed`:`localSession`,n())))]),U(e,s),k(),i()}var va={"setup.scope":{title:`Choose setup scope`,description:`This repository keeps the local preview and Apply flow. Several repositories lets you explicitly select 1–25 targets in the same organization and create reviewed setup PRs. Batch setup does not merge, create tags, release or deploy.`,choices:[`This repository`,`Several repositories in this organization`]},"setup.batchSource":{title:`Where should configuration come from?`,description:`Reuse compatible organization settings to skip completed questions, or customize repository settings. Batch setup keeps existing Secret bindings in both paths. Provision missing credentials separately, then inspect again; shared values are never replaced.`,choices:[`Reuse organization configuration`,`Customize settings; keep existing Secrets`]},"batch.token":{title:`Temporary PAT for selected repositories`,description:`Create a temporary setup PAT limited to these repositories: {repositories}. The GitHub link proposes grants; select only the intended repositories yourself. Leave blank to keep the current PAT. The final plan rechecks exact permissions. Delete temporary setup PATs afterwards.`},"setup.source":{title:`Where should configuration come from?`,description:`Reuse compatible organization Variables and existing Secret bindings, keeping repository overrides. Only missing, invalid or repository-specific settings are asked again. Shared values are preserved; reviewed differences become repository overrides. Choose Customize to provision or replace credentials.`,choices:[`Reuse organization configuration`,`Customize configuration`]},"setup.reusePatReview":{title:`Review organization reuse access`,description:`These provisional grants inspect existing organization configuration and allow repository setup. Shared Secret values are never requested or replaced. The final plan rechecks exact permissions; authentication evidence can remain pending. Select only the intended repositories in GitHub and delete the temporary PAT afterwards.`,choices:[`Continue to GitHub`,`Enter a PAT manually`]},"botPat.scopeConflict":{title:`Resolve the bot PAT scope conflict`,description:`Repository Secret PAT in {repository} overrides the selected organization PAT. Delete the repository Secret in GitHub, then ask Copilot to check again, or change the PAT scope to this repository. Your setup answers are retained. Copilot will not delete any Secret.`,choices:[`I have deleted the repository PAT — check again`,`Store PAT in the repository instead`,`Stop setup`]},"botPat.scopeConflictUnavailable":{title:`Resolve the bot PAT scope conflict`,description:`GitHub could not confirm whether the repository PAT was removed. The conflict remains unresolved. Your setup answers are retained. Check access and try again, change the PAT scope to this repository, or stop setup.`,choices:[`I have deleted the repository PAT — check again`,`Store PAT in the repository instead`,`Stop setup`]},"repository.confirm":{title:`Confirm this repository`,description:`This checkout points to {repository} on branch {branch}. Confirm the target before configuring PAT access or files.`,choices:[`Yes, this is my repository`,`Stop and choose another checkout`]},"setup.depth":{title:`Choose how much detail to review`,description:`Basic still asks about permissions, security, branch roles, Projects, approval and storage. Selected advanced agent, branch-prefix and Bugbot settings keep their defaults; inspect and edit them in the final plan. Custom asks every applicable question. Neither path applies changes now.`,choices:[`Basic guided setup (recommended)`,`Customize every setting`]},"setup.environmentPat":{title:`An environment setup PAT is available`,description:`The value stays in the CLI process. Continuing starts identity checks and isolated temporary create/read/delete tests before planning. Installation requires final approval. Exiting Copilot cannot unset your parent shell variable.`,choices:[`Use the environment PAT`,`Create or enter a different PAT`]},"plan.review":{title:`Review your setup plan`,description:`Inspect the affected files, workflows, Variables and Secret names before approving. No setup changes start by opening this plan.`},"workflow.update":{title:`Update existing workflows?`,description:`These existing workflow files differ from the setup plan: {files}. Keeping them may leave some new settings inactive.`,choices:[`Keep existing`,`Update setup-managed workflows`]},"setupPat.method":{title:`How will you provide your setup PAT?`,description:`This temporary PAT authorizes this one setup run. GitHub creates it under your operator account; Copilot cannot revoke it for you.`,choices:[`Guided GitHub link`,`Manual PAT`]},"setupPat.ownerKind":{title:`Who owns this repository on GitHub?`,description:`The owner determines which organization permissions may be needed. Check the repository header on GitHub if unsure.`,choices:[`Organization`,`Personal account`,`Not sure`]},"setupPat.review":{title:`Review provisional setup PAT permissions`,description:`These grants follow your choices. When managing Secrets, the link prefills Actions, Contents and Workflows write for possible health checks. Those checks run only if the approved plan requires them. GitHub inspection may reveal other requirements.`,choices:[`Continue to GitHub`,`Review setup choices again`,`View full permission table`,`Enter a PAT manually`]},"setupPat.entry":{title:`Temporary setup PAT`,description:`Open GitHub as your operator account, complete 2FA, choose “Only select repositories”, select this repository and copy the generated PAT here. This PAT is for this run only; delete it on GitHub afterwards.`},"setupPat.confirmAccount":{title:`GitHub authenticated the setup PAT as @{account}`,description:`Is this the operator account that should configure this repository? A wrong account must stop before any setup change.`,choices:[`Yes, continue`,`No, stop`]},"setupPat.confirmUnverifiedAccess":{title:`Check the PAT grants marked Unverifiable`,description:`Verified rows already passed. Compare each required Unverifiable row with the scope and access level in your GitHub PAT settings. Read-only checks cannot prove Write; Unverifiable does not mean missing. Check Projects: read only if that row is Unverifiable. Continue only after checking every such grant.`,choices:[`No, stop`,`Yes, I checked them`]},"botPat.method":{title:`How will you provide the bot PAT?`,description:`The bot PAT is separate from the setup PAT. It belongs to the account that will run future GitHub Actions and is stored as a Secret after approval.`,choices:[`Guided GitHub link`,`Manual PAT`]},"botPat.login":{title:`Expected GitHub bot login`,description:`Enter the bot account login without @. Copilot resolves its numeric GitHub ID and compares it with the PAT owner.`},"botPat.entry.guided":{title:`{name} — bot account PAT`,description:`Open GitHub as @{account} (account ID {accountId}), not as the setup operator. Select only this repository, review all grants and paste the PAT here. Suggested expiry: 90 days. An existing Secret value cannot be read back.`},"botPat.entry.manual":{title:`{name} — bot account PAT`,description:`Use the bot account, select only the intended repository and review all grants before pasting its PAT. Suggested expiry: 90 days. An existing Secret value cannot be read back.`},"botPat.identityMismatch":{title:`This PAT belongs to a different GitHub account`,description:`The PAT belongs to @{actual}; the selected bot is @{expected}. No bot Secret was written. Your answers and approved plan are retained. Delete the unused PAT in GitHub, switch to @{expected}, then choose whether to enter another PAT or stop setup.`,choices:[`Enter another bot PAT`,`Stop setup`]},"credential.apiKey":{title:`{name} — {provider} API key`,description:`Paste the API key for {provider}. It is sent only to this local setup process and, if approved, installed as a GitHub Actions Secret. Existing Secret values cannot be read back.`},"credential.existing":{title:`Existing {name}: {status}`,description:`GitHub cannot reveal the current Secret value. Keep it only if you deliberately accept that its health cannot be verified here; replace or skip it otherwise.`,choices:[`Keep existing`,`Replace it`,`Skip this credential`]},"apply.confirm":{title:`Apply this setup now?`,description:`This is the final approval. Local files and selected GitHub resources may change. A partial result may require inspection before retrying.`,choices:[`Apply setup`,`Stop without applying`]},"management.token":{title:`Temporary setup PAT`,description:`Read configuration from GitHub with a setup PAT. Read access is enough for inspection; changes require Variables Write and a separate approval. Secrets are shown by name only. Leave blank to return to the panel.`},"management.tokenWrite":{title:`Setup PAT for this adjustment`,description:`Use Variables Write in the reviewed scope. After approval, verification creates and removes one temporary Variable. Leave blank to return to the panel.`}},ya={"setup.scope":{title:`Elige el alcance del setup`,description:`Este repositorio conserva la vista previa y la aplicación local. Varios repositorios permite seleccionar entre 1 y 25 destinos de la misma organización y crear PRs de setup para revisarlas. El lote no hace merge, crea tags, publica versiones ni despliega.`,choices:[`Este repositorio`,`Varios repositorios de esta organización`]},"setup.batchSource":{title:`¿De dónde debe venir la configuración?`,description:`Reutiliza los ajustes compatibles de la organización para saltar preguntas ya resueltas, o personaliza los ajustes del repositorio. En ambos casos, el lote conserva los Secrets existentes. Crea por separado las credenciales que falten y vuelve a inspeccionar; los valores compartidos no se sustituyen.`,choices:[`Reutilizar configuración de la organización`,`Personalizar ajustes; conservar Secrets`]},"batch.token":{title:`PAT temporal para los repositorios seleccionados`,description:`Crea un PAT temporal de setup limitado a estos repositorios: {repositories}. El enlace propone permisos; selecciona tú solo los repositorios previstos en GitHub. Déjalo vacío para conservar el PAT actual. El plan final vuelve a comprobar los permisos exactos. Elimina después los PATs temporales de setup.`},"setup.source":{title:`¿De dónde debe venir la configuración?`,description:`Reutiliza las Variables compatibles y los Secrets existentes de la organización, conservando los ajustes del repositorio. Solo se preguntan los ajustes que falten, sean inválidos o dependan del repositorio. Los valores compartidos se conservan; las diferencias revisadas se guardan en el repositorio. Elige Personalizar para crear o sustituir credenciales.`,choices:[`Reutilizar configuración de la organización`,`Personalizar configuración`]},"setup.reusePatReview":{title:`Revisa el acceso para reutilizar configuración`,description:`Estos permisos provisionales permiten inspeccionar la configuración existente y configurar el repositorio. No se piden ni sustituyen los valores de los Secrets compartidos. El plan final comprueba los permisos exactos; la verificación de las credenciales puede quedar pendiente. Selecciona solo los repositorios previstos en GitHub y elimina después el PAT temporal.`,choices:[`Continuar a GitHub`,`Introducir un PAT manualmente`]},"botPat.scopeConflict":{title:`Resuelve el conflicto de scope del PAT del bot`,description:`El Secret PAT del repositorio {repository} tiene prioridad sobre el PAT de organización seleccionado. Elimina el Secret del repositorio en GitHub y pide a Copilot que lo compruebe de nuevo, o cambia el scope del PAT a este repositorio. Tus respuestas se conservan. Copilot no eliminará ningún Secret.`,choices:[`Ya he eliminado el PAT del repositorio — comprobar de nuevo`,`Guardar PAT en el repositorio`,`Detener setup`]},"botPat.scopeConflictUnavailable":{title:`Resuelve el conflicto de scope del PAT del bot`,description:`GitHub no ha permitido confirmar si se eliminó el PAT del repositorio. El conflicto sigue sin resolverse. Tus respuestas se conservan. Comprueba el acceso y vuelve a intentarlo, cambia el scope del PAT a este repositorio o detén el setup.`,choices:[`Ya he eliminado el PAT del repositorio — comprobar de nuevo`,`Guardar PAT en el repositorio`,`Detener setup`]},"botPat.identityMismatch":{title:`Este PAT pertenece a otra cuenta de GitHub`,description:`El PAT pertenece a @{actual}; el bot seleccionado es @{expected}. No se ha escrito el Secret del bot. Conservamos tus respuestas y el plan aprobado. Elimina el PAT sin usar en GitHub, cambia a @{expected} y elige si quieres introducir otro PAT o detener el setup.`,choices:[`Introducir otro PAT del bot`,`Detener setup`]},"repository.confirm":{title:`Confirma el repositorio`,description:`Este checkout apunta a {repository} en la rama {branch}. Comprueba el destino antes de configurar permisos del PAT o archivos.`,choices:[`Sí, es mi repositorio`,`Detener y elegir otro checkout`]},"setup.depth":{title:`Elige cuánto detalle quieres revisar`,description:`El modo básico sigue preguntando por permisos, seguridad, ramas, Projects, aprobación y almacenamiento. Algunos ajustes avanzados de agentes, prefijos de rama y Bugbot conservan sus valores predeterminados; podrás revisarlos y editarlos en el plan final. El modo personalizado pregunta por todos los ajustes aplicables. Ninguno aplica cambios todavía.`,choices:[`Configuración básica guiada (recomendada)`,`Personalizar todos los ajustes`]},"setup.environmentPat":{title:`Hay un PAT de configuración en el entorno`,description:`El valor permanece en el proceso CLI. Al continuar se comprueba la identidad y se crean, leen y eliminan recursos temporales antes de preparar el plan. La instalación requiere aprobación final. Cerrar Copilot no elimina la variable de la terminal original.`,choices:[`Usar el PAT del entorno`,`Crear o introducir otro PAT`]},"plan.review":{title:`Revisa el plan de configuración`,description:`Comprueba los archivos, workflows, Variables y nombres de Secrets antes de aprobar. Abrir el plan no inicia ningún cambio.`},"workflow.update":{title:`¿Actualizar los workflows existentes?`,description:`Estos archivos difieren del plan: {files}. Si los conservas, algunos ajustes nuevos podrían no activarse.`,choices:[`Conservar los existentes`,`Actualizar los workflows gestionados`]},"setupPat.method":{title:`¿Cómo proporcionarás el PAT de configuración?`,description:`Este PAT temporal autoriza una sola ejecución. GitHub lo crea con tu cuenta de operador; Copilot no puede revocarlo por ti.`,choices:[`Enlace guiado de GitHub`,`Introducir PAT manualmente`]},"setupPat.ownerKind":{title:`¿Quién es propietario de este repositorio en GitHub?`,description:`El propietario determina qué permisos de organización pueden hacer falta. Consulta la cabecera del repositorio en GitHub si dudas.`,choices:[`Organización`,`Cuenta personal`,`No lo sé`]},"setupPat.review":{title:`Revisa los permisos provisionales del PAT de configuración`,description:`Estos permisos dependen de tus elecciones. Si gestionas Secrets, el enlace preselecciona Actions, Contents y Workflows en escritura para posibles comprobaciones de credenciales. Esas comprobaciones solo se ejecutan si el plan aprobado las necesita. La inspección de GitHub puede revelar otros requisitos.`,choices:[`Continuar en GitHub`,`Revisar de nuevo las opciones`,`Ver la tabla completa de permisos`,`Introducir un PAT manualmente`]},"setupPat.entry":{title:`PAT temporal de configuración`,description:`Abre GitHub con tu cuenta de operador, completa el 2FA, elige «Only select repositories», selecciona este repositorio y pega aquí el PAT generado. Es solo para esta ejecución; elimínalo en GitHub después.`},"setupPat.confirmAccount":{title:`GitHub autenticó el PAT de configuración como @{account}`,description:`¿Es la cuenta de operador que debe configurar este repositorio? Una cuenta incorrecta debe detener el proceso antes de cualquier cambio.`,choices:[`Sí, continuar`,`No, detener`]},"setupPat.confirmUnverifiedAccess":{title:`Comprueba los permisos del PAT marcados como No verificable`,description:`Los permisos Verificados ya pasaron la comprobación. Compara cada permiso obligatorio No verificable con su ámbito y nivel de acceso en los ajustes del PAT en GitHub. Una consulta de solo lectura no demuestra Escritura; No verificable no significa ausente. Comprueba Projects: lectura solo si esa fila aparece como No verificable. Continúa únicamente tras comprobar todos esos permisos.`,choices:[`No, detener`,`Sí, los he comprobado`]},"botPat.method":{title:`¿Cómo proporcionarás el PAT del bot?`,description:`Es distinto del PAT de configuración. Pertenece a la cuenta que ejecutará las futuras GitHub Actions y se instalará como Secret tras la aprobación.`,choices:[`Enlace guiado de GitHub`,`Introducir PAT manualmente`]},"botPat.login":{title:`Usuario previsto del bot en GitHub`,description:`Introduce el nombre de usuario del bot sin @. Copilot consultará su ID numérico de GitHub y lo comparará con el propietario del PAT.`},"botPat.entry.guided":{title:`{name} — PAT de la cuenta bot`,description:`Abre GitHub como @{account} (ID {accountId}), no como operador de setup. Selecciona solo este repositorio, revisa todos los permisos y pega aquí el PAT. Caducidad sugerida: 90 días. El valor de un Secret existente no puede leerse.`},"botPat.entry.manual":{title:`{name} — PAT de la cuenta bot`,description:`Usa la cuenta bot, selecciona solo el repositorio previsto y revisa todos los permisos antes de pegar el PAT. Caducidad sugerida: 90 días. El valor de un Secret existente no puede leerse.`},"credential.apiKey":{title:`{name} — clave API de {provider}`,description:`Pega la clave API de {provider}. Solo se envía a este proceso local y, si apruebas el plan, se instala como Secret de GitHub Actions. Los valores existentes no pueden leerse.`},"credential.existing":{title:`{name} existente: {status}`,description:`GitHub no muestra el valor actual del Secret. Consérvalo solo si aceptas expresamente que aquí no se puede comprobar su estado; de lo contrario, sustitúyelo u omítelo.`,choices:[`Conservar`,`Sustituir`,`Omitir esta credencial`]},"apply.confirm":{title:`¿Aplicar la configuración ahora?`,description:`Esta es la aprobación final. Pueden cambiar archivos locales y recursos de GitHub seleccionados. Si el resultado es parcial, revísalo antes de reintentar.`,choices:[`Aplicar configuración`,`Detener sin aplicar`]},"management.token":{title:`PAT temporal de setup`,description:`Lee la configuración de GitHub con un PAT de setup. Leer basta para inspeccionar; los cambios requieren Variables Write y aprobación independiente. Solo se muestran nombres de Secrets. Deja el campo vacío para volver al panel.`},"management.tokenWrite":{title:`PAT de setup para este ajuste`,description:`Usa Variables Write en el ámbito revisado. Tras aprobar, la verificación crea y elimina una Variable temporal. Deja el campo vacío para volver al panel.`}},ba={"setup.scope":{title:`Choisissez la portée de la configuration`,description:`Ce dépôt conserve l’aperçu et l’application locale. Plusieurs dépôts permet de sélectionner explicitement 1 à 25 destinations de la même organisation et de créer des PR à examiner. Le lot ne fusionne pas, ne crée pas de tag, ne publie pas et ne déploie pas.`,choices:[`Ce dépôt`,`Plusieurs dépôts de cette organisation`]},"setup.batchSource":{title:`D’où doit venir la configuration ?`,description:`Réutilisez les réglages compatibles de l’organisation pour passer les questions déjà résolues, ou personnalisez les réglages du dépôt. Dans les deux cas, le lot conserve les Secrets existants. Créez séparément les identifiants manquants puis inspectez à nouveau ; les valeurs partagées ne sont jamais remplacées.`,choices:[`Réutiliser la configuration de l’organisation`,`Personnaliser les réglages ; conserver les Secrets`]},"batch.token":{title:`PAT temporaire pour les dépôts sélectionnés`,description:`Créez un PAT temporaire limité à ces dépôts : {repositories}. Le lien propose des autorisations ; sélectionnez vous-même uniquement les dépôts prévus dans GitHub. Laissez vide pour conserver le PAT actuel. Le plan final vérifie à nouveau les autorisations exactes. Supprimez ensuite les PAT temporaires de configuration.`},"setup.source":{title:`D’où doit venir la configuration ?`,description:`Réutilisez les Variables compatibles et les Secrets existants de l’organisation en conservant les réglages du dépôt. Seuls les réglages manquants, invalides ou propres au dépôt seront demandés. Les valeurs partagées sont conservées ; les différences validées sont enregistrées dans le dépôt. Choisissez Personnaliser pour créer ou remplacer des identifiants.`,choices:[`Réutiliser la configuration de l’organisation`,`Personnaliser la configuration`]},"setup.reusePatReview":{title:`Vérifiez l’accès pour réutiliser la configuration`,description:`Ces autorisations provisoires permettent de lire la configuration existante et de configurer le dépôt. Les valeurs des Secrets partagés ne sont jamais demandées ni remplacées. Le plan final vérifie les autorisations exactes ; la vérification des identifiants peut rester en attente. Sélectionnez uniquement les dépôts prévus dans GitHub puis supprimez le PAT temporaire.`,choices:[`Continuer vers GitHub`,`Saisir un PAT manuellement`]},"botPat.scopeConflict":{title:`Résoudre le conflit de périmètre du PAT du bot`,description:`Le Secret PAT du dépôt {repository} est prioritaire sur le PAT d’organisation sélectionné. Supprimez le Secret du dépôt dans GitHub, puis demandez à Copilot de vérifier à nouveau, ou choisissez le périmètre du dépôt pour le PAT. Vos réponses sont conservées. Copilot ne supprimera aucun Secret.`,choices:[`J’ai supprimé le PAT du dépôt — vérifier à nouveau`,`Enregistrer le PAT dans le dépôt`,`Arrêter la configuration`]},"botPat.scopeConflictUnavailable":{title:`Résoudre le conflit de périmètre du PAT du bot`,description:`GitHub n’a pas permis de confirmer la suppression du PAT du dépôt. Le conflit reste non résolu. Vos réponses sont conservées. Vérifiez l’accès et réessayez, choisissez le périmètre du dépôt pour le PAT ou arrêtez la configuration.`,choices:[`J’ai supprimé le PAT du dépôt — vérifier à nouveau`,`Enregistrer le PAT dans le dépôt`,`Arrêter la configuration`]},"botPat.identityMismatch":{title:`Ce PAT appartient à un autre compte GitHub`,description:`Le PAT appartient à @{actual} ; le bot sélectionné est @{expected}. Aucun Secret du bot n’a été écrit. Vos réponses et le plan approuvé sont conservés. Supprimez le PAT inutilisé dans GitHub, passez à @{expected}, puis choisissez de saisir un autre PAT ou d’arrêter la configuration.`,choices:[`Saisir un autre PAT du bot`,`Arrêter la configuration`]},"repository.confirm":{title:`Confirmez ce dépôt`,description:`Ce dossier pointe vers {repository}, branche {branch}. Vérifiez la cible avant de configurer les accès PAT ou les fichiers.`,choices:[`Oui, c’est mon dépôt`,`Arrêter et choisir un autre dossier`]},"setup.depth":{title:`Choisissez le niveau de détail`,description:`Le parcours de base demande toujours les autorisations, la sécurité, les branches, Projects, l’approbation et le stockage. Certains réglages avancés des agents, préfixes de branche et Bugbot conservent leurs valeurs par défaut ; vous pourrez les examiner et les modifier dans le plan final. Le parcours personnalisé pose toutes les questions applicables. Aucun changement n’est appliqué à ce stade.`,choices:[`Configuration de base guidée (recommandée)`,`Personnaliser tous les réglages`]},"setup.environmentPat":{title:`Un PAT de configuration est disponible dans l’environnement`,description:`La valeur reste dans le processus CLI. Continuer lance la vérification de l’identité puis des tests temporaires isolés de création, lecture et suppression avant le plan. L’installation exige une approbation finale. Quitter Copilot ne supprime pas la variable du shell parent.`,choices:[`Utiliser le PAT de l’environnement`,`Créer ou saisir un autre PAT`]},"plan.review":{title:`Examinez le plan de configuration`,description:`Vérifiez les fichiers, workflows, Variables et noms de Secrets avant d’approuver. Ouvrir le plan ne lance aucun changement.`},"workflow.update":{title:`Mettre à jour les workflows existants ?`,description:`Ces fichiers diffèrent du plan : {files}. Les conserver peut laisser certains nouveaux réglages inactifs.`,choices:[`Conserver les fichiers existants`,`Mettre à jour les workflows gérés`]},"setupPat.method":{title:`Comment fournirez-vous le PAT de configuration ?`,description:`Ce PAT temporaire autorise une seule exécution. GitHub le crée avec votre compte opérateur ; Copilot ne peut pas le révoquer à votre place.`,choices:[`Lien GitHub guidé`,`Saisir un PAT manuellement`]},"setupPat.ownerKind":{title:`À qui appartient ce dépôt sur GitHub ?`,description:`Le propriétaire détermine les éventuelles autorisations d’organisation. Consultez l’en-tête du dépôt sur GitHub en cas de doute.`,choices:[`Organisation`,`Compte personnel`,`Je ne sais pas`]},"setupPat.review":{title:`Examinez les autorisations provisoires du PAT de configuration`,description:`Ces droits suivent vos choix. Si vous gérez des Secrets, le lien présélectionne Actions, Contents et Workflows en écriture pour les éventuelles vérifications des identifiants. Ces vérifications ne démarrent que si le plan approuvé les exige. L’inspection de GitHub peut révéler d’autres besoins.`,choices:[`Continuer sur GitHub`,`Revoir les choix de configuration`,`Voir toutes les autorisations`,`Saisir un PAT manuellement`]},"setupPat.entry":{title:`PAT temporaire de configuration`,description:`Ouvrez GitHub avec votre compte opérateur, effectuez la 2FA, choisissez « Only select repositories », sélectionnez ce dépôt puis collez ici le PAT généré. Il ne sert qu’à cette exécution ; supprimez-le sur GitHub ensuite.`},"setupPat.confirmAccount":{title:`GitHub a authentifié le PAT de configuration comme @{account}`,description:`Est-ce bien le compte opérateur autorisé à configurer ce dépôt ? Un autre compte doit arrêter le processus avant tout changement.`,choices:[`Oui, continuer`,`Non, arrêter`]},"setupPat.confirmUnverifiedAccess":{title:`Vérifiez les droits du PAT marqués Non vérifiable`,description:`Les lignes Vérifiées ont déjà passé le contrôle. Comparez chaque droit requis Non vérifiable avec sa portée et son niveau d’accès dans les paramètres du PAT GitHub. Une lecture seule ne prouve pas le niveau Écriture ; Non vérifiable ne signifie pas absent. Vérifiez Projects : lecture seulement si cette ligne est Non vérifiable. Continuez uniquement après avoir vérifié tous ces droits.`,choices:[`Non, arrêter`,`Oui, je les ai vérifiés`]},"botPat.method":{title:`Comment fournirez-vous le PAT du bot ?`,description:`Il est distinct du PAT de configuration. Il appartient au compte qui exécutera les futures GitHub Actions et sera installé comme Secret après approbation.`,choices:[`Lien GitHub guidé`,`Saisir un PAT manuellement`]},"botPat.login":{title:`Identifiant GitHub attendu pour le bot`,description:`Saisissez l’identifiant du bot sans @. Copilot récupère son ID numérique GitHub et le compare au propriétaire du PAT.`},"botPat.entry.guided":{title:`{name} — PAT du compte bot`,description:`Ouvrez GitHub en tant que @{account} (ID {accountId}), pas en tant qu’opérateur. Sélectionnez uniquement ce dépôt, vérifiez tous les droits et collez le PAT ici. Expiration suggérée : 90 jours. La valeur d’un Secret existant ne peut pas être relue.`},"botPat.entry.manual":{title:`{name} — PAT du compte bot`,description:`Utilisez le compte bot, sélectionnez uniquement le dépôt voulu et vérifiez tous les droits avant de coller le PAT. Expiration suggérée : 90 jours. La valeur d’un Secret existant ne peut pas être relue.`},"credential.apiKey":{title:`{name} — clé API de {provider}`,description:`Collez la clé API de {provider}. Elle est envoyée uniquement au processus local puis, si vous approuvez le plan, installée comme Secret GitHub Actions. Les valeurs existantes ne peuvent pas être relues.`},"credential.existing":{title:`{name} existant : {status}`,description:`GitHub ne révèle pas la valeur actuelle du Secret. Ne la conservez que si vous acceptez explicitement de ne pas pouvoir vérifier son état ici ; sinon, remplacez-la ou ignorez-la.`,choices:[`Conserver`,`Remplacer`,`Ignorer cet identifiant`]},"apply.confirm":{title:`Appliquer la configuration maintenant ?`,description:`C’est l’approbation finale. Des fichiers locaux et ressources GitHub choisis peuvent changer. Un résultat partiel doit être inspecté avant une nouvelle tentative.`,choices:[`Appliquer la configuration`,`Arrêter sans appliquer`]},"management.token":{title:`PAT temporaire de configuration`,description:`Lisez la configuration GitHub avec un PAT. La lecture suffit pour inspecter ; les changements nécessitent Variables Write et une approbation distincte. Noms des Secrets uniquement. Laissez vide pour revenir au panneau.`},"management.tokenWrite":{title:`PAT de configuration pour cet ajustement`,description:`Utilisez Variables Write dans le scope examiné. Après approbation, la vérification crée et supprime une Variable temporaire. Laissez vide pour revenir au panneau.`}},xa={"setup.scope":{title:`Escolha o âmbito da configuração`,description:`Este repositório mantém a pré-visualização e a aplicação local. Vários repositórios permite selecionar explicitamente entre 1 e 25 destinos da mesma organização e criar PRs para revisão. O lote não integra, cria tags, publica versões nem implementa.`,choices:[`Este repositório`,`Vários repositórios desta organização`]},"setup.batchSource":{title:`De onde deve vir a configuração?`,description:`Reutilize os ajustes compatíveis da organização para saltar perguntas já resolvidas, ou personalize os ajustes do repositório. Em ambos os casos, o lote mantém os Secrets existentes. Crie separadamente as credenciais em falta e volte a inspecionar; os valores partilhados nunca são substituídos.`,choices:[`Reutilizar a configuração da organização`,`Personalizar ajustes; manter os Secrets`]},"batch.token":{title:`PAT temporário para os repositórios selecionados`,description:`Crie um PAT temporário limitado a estes repositórios: {repositories}. O link propõe permissões; selecione pessoalmente apenas os repositórios previstos no GitHub. Deixe vazio para manter o PAT atual. O plano final volta a verificar as permissões exatas. Elimine depois os PATs temporários de configuração.`},"setup.source":{title:`De onde deve vir a configuração?`,description:`Reutilize as Variables compatíveis e os Secrets existentes da organização, mantendo os ajustes do repositório. Só serão pedidos os ajustes em falta, inválidos ou específicos do repositório. Os valores partilhados são mantidos; as diferenças revistas ficam no repositório. Escolha Personalizar para criar ou substituir credenciais.`,choices:[`Reutilizar a configuração da organização`,`Personalizar a configuração`]},"setup.reusePatReview":{title:`Reveja o acesso para reutilizar a configuração`,description:`Estas permissões provisórias permitem consultar a configuração existente e configurar o repositório. Os valores dos Secrets partilhados nunca são pedidos nem substituídos. O plano final verifica as permissões exatas; a verificação das credenciais pode ficar pendente. Selecione apenas os repositórios previstos no GitHub e elimine depois o PAT temporário.`,choices:[`Continuar para o GitHub`,`Introduzir um PAT manualmente`]},"botPat.scopeConflict":{title:`Resolver o conflito de âmbito do PAT do bot`,description:`O Secret PAT do repositório {repository} tem prioridade sobre o PAT da organização selecionado. Elimine o Secret do repositório no GitHub e peça ao Copilot para verificar novamente, ou altere o âmbito do PAT para este repositório. As suas respostas são preservadas. O Copilot não eliminará nenhum Secret.`,choices:[`Já eliminei o PAT do repositório — verificar novamente`,`Guardar o PAT no repositório`,`Parar a configuração`]},"botPat.scopeConflictUnavailable":{title:`Resolver o conflito de âmbito do PAT do bot`,description:`O GitHub não permitiu confirmar se o PAT do repositório foi eliminado. O conflito continua por resolver. As suas respostas são preservadas. Verifique o acesso e tente novamente, altere o âmbito do PAT para este repositório ou pare a configuração.`,choices:[`Já eliminei o PAT do repositório — verificar novamente`,`Guardar o PAT no repositório`,`Parar a configuração`]},"botPat.identityMismatch":{title:`Este PAT pertence a outra conta do GitHub`,description:`O PAT pertence a @{actual}; o bot selecionado é @{expected}. Nenhum Secret do bot foi gravado. As suas respostas e o plano aprovado são mantidos. Elimine o PAT não utilizado no GitHub, mude para @{expected} e escolha entre introduzir outro PAT ou parar a configuração.`,choices:[`Introduzir outro PAT do bot`,`Parar a configuração`]},"repository.confirm":{title:`Confirme este repositório`,description:`Esta pasta aponta para {repository}, no ramo {branch}. Confirme o destino antes de configurar acessos PAT ou ficheiros.`,choices:[`Sim, é o meu repositório`,`Parar e escolher outra pasta`]},"setup.depth":{title:`Escolha o nível de detalhe`,description:`O percurso básico continua a perguntar sobre permissões, segurança, ramos, Projects, aprovação e armazenamento. Algumas definições avançadas de agentes, prefixos de ramos e Bugbot mantêm os valores predefinidos; poderá revê-las e editá-las no plano final. O percurso personalizado pergunta por todas as definições aplicáveis. Nenhum dos percursos aplica alterações nesta fase.`,choices:[`Configuração básica guiada (recomendada)`,`Personalizar todas as definições`]},"setup.environmentPat":{title:`Existe um PAT de configuração no ambiente`,description:`O valor permanece no processo CLI. Continuar inicia a verificação de identidade e testes temporários isolados de criação, leitura e eliminação antes do plano. A instalação exige aprovação final. Sair do Copilot não remove a variável da shell original.`,choices:[`Usar o PAT do ambiente`,`Criar ou introduzir outro PAT`]},"plan.review":{title:`Reveja o plano de configuração`,description:`Confirme ficheiros, fluxos, Variables e nomes de Secrets antes de aprovar. Abrir o plano não inicia alterações.`,choices:void 0},"workflow.update":{title:`Atualizar os fluxos existentes?`,description:`Estes ficheiros diferem do plano: {files}. Conservá-los pode deixar algumas definições novas inativas.`,choices:[`Conservar os existentes`,`Atualizar os fluxos geridos`]},"setupPat.method":{title:`Como irá fornecer o PAT de configuração?`,description:`Este PAT temporário autoriza uma única execução. O GitHub cria-o na sua conta de operador; o Copilot não pode revogá-lo por si.`,choices:[`Ligação guiada do GitHub`,`Introduzir PAT manualmente`]},"setupPat.ownerKind":{title:`Quem é o proprietário deste repositório no GitHub?`,description:`O proprietário determina as permissões de organização necessárias. Consulte o cabeçalho do repositório no GitHub se tiver dúvidas.`,choices:[`Organização`,`Conta pessoal`,`Não tenho a certeza`]},"setupPat.review":{title:`Reveja as permissões provisórias do PAT de configuração`,description:`Estas permissões seguem as suas escolhas. Ao gerir Secrets, a ligação pré-seleciona Actions, Contents e Workflows em escrita para possíveis verificações de credenciais. Estas verificações só decorrem se o plano aprovado as exigir. A inspeção do GitHub pode revelar outros requisitos.`,choices:[`Continuar no GitHub`,`Rever as escolhas`,`Ver a tabela completa de permissões`,`Introduzir um PAT manualmente`]},"setupPat.entry":{title:`PAT temporário de configuração`,description:`Abra o GitHub com a sua conta de operador, conclua a 2FA, escolha «Only select repositories», selecione este repositório e cole aqui o PAT gerado. É apenas para esta execução; elimine-o no GitHub depois.`},"setupPat.confirmAccount":{title:`O GitHub autenticou o PAT de configuração como @{account}`,description:`É esta a conta de operador que deve configurar o repositório? Uma conta errada tem de parar o processo antes de qualquer alteração.`,choices:[`Sim, continuar`,`Não, parar`]},"setupPat.confirmUnverifiedAccess":{title:`Verifique as permissões do PAT marcadas Não verificável`,description:`As linhas Verificadas já passaram na verificação. Compare cada permissão necessária Não verificável com o âmbito e o nível de acesso nas definições do PAT no GitHub. Uma consulta só de leitura não prova Escrita; Não verificável não significa ausente. Verifique Projects: leitura apenas se essa linha estiver Não verificável. Continue só depois de verificar todas essas permissões.`,choices:[`Não, parar`,`Sim, já as verifiquei`]},"botPat.method":{title:`Como irá fornecer o PAT do bot?`,description:`É diferente do PAT de configuração. Pertence à conta que executará as futuras GitHub Actions e será instalado como Secret após aprovação.`,choices:[`Ligação guiada do GitHub`,`Introduzir PAT manualmente`]},"botPat.login":{title:`Utilizador GitHub esperado para o bot`,description:`Introduza o nome de utilizador do bot sem @. O Copilot consulta o ID numérico do GitHub e compara-o com o proprietário do PAT.`},"botPat.entry.guided":{title:`{name} — PAT da conta bot`,description:`Abra o GitHub como @{account} (ID {accountId}), não como operador. Selecione apenas este repositório, reveja todas as permissões e cole aqui o PAT. Validade sugerida: 90 dias. Não é possível voltar a ler o valor de um Secret existente.`},"botPat.entry.manual":{title:`{name} — PAT da conta bot`,description:`Use a conta bot, selecione apenas o repositório pretendido e reveja todas as permissões antes de colar o PAT. Validade sugerida: 90 dias. Não é possível voltar a ler o valor de um Secret existente.`},"credential.apiKey":{title:`{name} — chave API de {provider}`,description:`Cole a chave API de {provider}. Só é enviada para este processo local e, se aprovar o plano, instalada como Secret do GitHub Actions. Os valores existentes não podem voltar a ser lidos.`},"credential.existing":{title:`{name} existente: {status}`,description:`O GitHub não revela o valor atual do Secret. Conserve-o apenas se aceitar expressamente que aqui não se pode verificar o seu estado; caso contrário, substitua-o ou ignore-o.`,choices:[`Conservar`,`Substituir`,`Ignorar esta credencial`]},"apply.confirm":{title:`Aplicar a configuração agora?`,description:`Esta é a aprovação final. Ficheiros locais e recursos GitHub selecionados podem mudar. Um resultado parcial exige inspeção antes de tentar novamente.`,choices:[`Aplicar configuração`,`Parar sem aplicar`]},"management.token":{title:`PAT temporário de setup`,description:`Leia a configuração GitHub com um PAT. A leitura basta para inspecionar; alterações exigem Variables Write e aprovação separada. Apenas nomes dos Secrets. Deixe vazio para voltar ao painel.`},"management.tokenWrite":{title:`PAT de setup para este ajuste`,description:`Use Variables Write no scope revisto. Após aprovação, a verificação cria e elimina uma Variable temporária. Deixe vazio para voltar ao painel.`}},Sa={"session.controlMoved":`Control moved to this tab. The previous tab is now read-only.`,"session.cancelled":`Cancellation requested. Temporary permission checks already started will finish cleanup before the process exits. PATs created on GitHub remain until you delete them there.`,"plan.ready":`Plan ready: {files} files, {variables} Variables and {secrets} Secret names. Review it before continuing.`,"permission.preview":`Permission preview: issue workflows {issues}; PR approval {approval}; Secrets {secrets}; Variables {variables}; Projects {projects}. Review the exact grants before creating the setup PAT.`,"setupPat.corrected.bootstrap":`The setup PAT could not access the repository. Installation has not started. Resolve failed permission tests and any pending cleanup before retrying. Required grants: {grants}. Create a corrected PAT using the updated GitHub link.`,"setupPat.corrected.final":`Required setup PAT permissions changed after inspection. Installation has not started. Resolve failed permission tests and any pending cleanup before retrying. New grants: {grants}. Create a corrected PAT using the updated GitHub link.`,"setupPat.cleanup":`Delete the temporary setup PAT in GitHub Settings after this run. Closing Copilot does not revoke it.`,"botPat.separation":`The bot PAT is separate from your setup PAT. These credentials become GitHub Actions Secrets: {names}. Existing Secret values cannot be read back. Re-enter an existing bot PAT so its grants can be checked. No credential-health workflow runs before Apply.`,"credential.checks":`Credential checks finished for {count} items. Each result is shown below. The terminal has technical details; an existing Secret value cannot be read back.`,"credential.status.valid":`Valid`,"credential.status.invalid":`Invalid`,"credential.status.missing":`Missing`,"credential.status.unverifiable":`Cannot be verified without a new value`,"credential.status.not_required":`Not required`,"validation.producers":`Select 1–8 observed checks or enter exact name|App ID|workflow tuples.`,"validation.duplicateNames":`Two trusted producers use the same check name. Coverage stores only the name: choose one producer or rename the CI jobs.`,"validation.projectStatusVerified":`Open every selected Project in GitHub and confirm that all four exact Status values exist. Answer Yes after checking, or No to choose Projects again.`,"validation.projectStatusRedo":`Status values were not confirmed. Choose compatible Projects, then review their Status options again.`,"validation.number":`Enter a non-negative whole number.`,"validation.boolean":`Enter yes or no.`,"validation.choice":`Select one of the listed options.`,"validation.unknownResource":`Unknown inherited resource names: {names}. Choose only names shown in the inherited list.`,"validation.unknownWorkflow":`Unknown issue workflows: {names}. Choose only the listed workflow types.`,"validation.firstQuestion":`This is the first question in this pass. Review it or cancel setup.`,"validation.duplicateProducer":`This trusted check was selected twice. Remove the duplicate selection.`,"validation.savedStatus":`The saved Status value is not available in every selected Project. Choose a listed option.`,"validation.projectIncompatible":`The selected Projects have no common Status option. Choose compatible Projects or configure them separately.`,"validation.projectLimit":`Choose at most 10 Projects; separate their numbers or URLs with commas.`,"validation.projectOwnerNeeded":`A Project URL needs a known repository owner; enter its positive number instead.`,"validation.projectOwnerMismatch":`Use a GitHub Project URL belonging to {owner}, without query parameters.`,"validation.projectUrl":`Enter a valid GitHub Project URL or positive Project number.`,"validation.projectNumber":`Enter the positive Project number from its GitHub URL, not a PVT_ GraphQL ID.`,"validation.projectNumberRange":`Project numbers must be positive integers at most 2147483647.`,"validation.projectDuplicate":`Project {number} was selected more than once.`,"validation.fixedIssues":`Your configuration explicitly enables release or hotfix automation. Keep Issues enabled or edit that configuration first.`,"validation.fixedWorkflowEnabled":`Your configuration enables {kind}. Keep that workflow selected or edit the configuration first.`,"validation.fixedWorkflowDisabled":`Your configuration disables {kind}. Deselect that workflow or edit the configuration first.`,"validation.unknown":`This answer could not be accepted. Review the question and its help; the terminal has the technical detail.`},Ca={"session.controlMoved":`El control ha pasado a esta pestaña. La anterior ahora es de solo lectura.`,"session.cancelled":`Cancelación solicitada. Las pruebas temporales ya iniciadas terminarán su limpieza antes de que salga el proceso. Los PAT creados en GitHub seguirán allí hasta que los elimines.`,"plan.ready":`Plan listo: {files} archivos, {variables} Variables y {secrets} nombres de Secrets. Revísalo antes de continuar.`,"permission.preview":`Vista previa de permisos: flujos de incidencias {issues}; aprobación de PR {approval}; Secrets {secrets}; Variables {variables}; Projects {projects}. Revisa los permisos exactos antes de crear el PAT de configuración.`,"setupPat.corrected.bootstrap":`El PAT de configuración no pudo acceder al repositorio. La instalación no ha empezado. Resuelve las pruebas fallidas y cualquier limpieza pendiente antes de reintentar. Permisos necesarios: {grants}. Crea un PAT corregido desde el enlace actualizado de GitHub.`,"setupPat.corrected.final":`Los permisos necesarios del PAT cambiaron tras la inspección. La instalación no ha empezado. Resuelve las pruebas fallidas y cualquier limpieza pendiente antes de reintentar. Permisos nuevos: {grants}. Crea un PAT corregido desde el enlace actualizado.`,"setupPat.cleanup":`Elimina el PAT temporal de configuración en los ajustes de GitHub después de esta ejecución. Cerrar Copilot no lo revoca.`,"botPat.separation":`El PAT del bot es distinto del de configuración. Estas credenciales se instalarán como Secrets de GitHub Actions: {names}. Los valores existentes no pueden leerse. Vuelve a introducir un PAT del bot para comprobar sus permisos. Antes de Aplicar no se ejecuta ningún workflow de comprobación.`,"credential.checks":`Se han comprobado {count} credenciales. Abajo aparece el resultado de cada una. La terminal contiene los detalles técnicos; el valor de un Secret existente no puede leerse.`,"credential.status.valid":`Válida`,"credential.status.invalid":`No válida`,"credential.status.missing":`Falta`,"credential.status.unverifiable":`No verificable sin un valor nuevo`,"credential.status.not_required":`No necesaria`,"validation.producers":`Selecciona entre 1 y 8 checks observados o introduce las tuplas exactas nombre|ID de App|workflow.`,"validation.duplicateNames":`Dos productores fiables tienen el mismo nombre de check. La cobertura solo guarda el nombre: elige uno o cambia el nombre de los jobs de CI.`,"validation.projectStatusVerified":`Abre cada Project elegido en GitHub y confirma los cuatro valores Status exactos. Responde Sí tras comprobarlo, o No para elegir Projects de nuevo.`,"validation.projectStatusRedo":`No se confirmaron los valores Status. Elige Projects compatibles y vuelve a revisar sus opciones Status.`,"validation.number":`Introduce un número entero no negativo.`,"validation.boolean":`Elige Sí o No.`,"validation.choice":`Elige una de las opciones mostradas.`,"validation.unknownResource":`Nombres de recursos heredados desconocidos: {names}. Elige solo nombres de la lista heredada.`,"validation.unknownWorkflow":`Flujos de issues desconocidos: {names}. Elige solo los tipos indicados.`,"validation.firstQuestion":`Esta es la primera pregunta de esta pasada. Revísala o cancela la configuración.`,"validation.duplicateProducer":`Has seleccionado dos veces el mismo check fiable. Quita la selección duplicada.`,"validation.savedStatus":`El valor Status guardado no existe en todos los Projects seleccionados. Elige una opción de la lista.`,"validation.projectIncompatible":`Los Projects elegidos no comparten ningún valor Status. Elige Projects compatibles o configúralos por separado.`,"validation.projectLimit":`Elige como máximo 10 Projects; separa sus números o URL con comas.`,"validation.projectOwnerNeeded":`Para usar la URL de un Project hay que conocer el propietario del repositorio; introduce su número positivo.`,"validation.projectOwnerMismatch":`Usa la URL de un Project de GitHub que pertenezca a {owner}, sin parámetros.`,"validation.projectUrl":`Introduce una URL válida de un Project de GitHub o su número positivo.`,"validation.projectNumber":`Introduce el número positivo del Project que aparece en su URL, no un ID GraphQL PVT_.`,"validation.projectNumberRange":`El número del Project debe ser un entero positivo no mayor de 2147483647.`,"validation.projectDuplicate":`Has seleccionado el Project {number} más de una vez.`,"validation.fixedIssues":`Tu configuración activa expresamente release o hotfix. Mantén Issues activado o cambia antes la configuración.`,"validation.fixedWorkflowEnabled":`Tu configuración activa {kind}. Mantén ese flujo seleccionado o cambia antes la configuración.`,"validation.fixedWorkflowDisabled":`Tu configuración desactiva {kind}. Desmarca ese flujo o cambia antes la configuración.`,"validation.unknown":`No se pudo aceptar esta respuesta. Revisa la pregunta y su ayuda; la terminal contiene el detalle técnico.`},wa={"session.controlMoved":`Le contrôle est passé à cet onglet. L’onglet précédent est maintenant en lecture seule.`,"session.cancelled":`Annulation demandée. Les tests temporaires déjà lancés termineront leur nettoyage avant la fin du processus. Les PAT créés sur GitHub restent actifs jusqu’à leur suppression.`,"plan.ready":`Plan prêt : {files} fichiers, {variables} Variables et {secrets} noms de Secrets. Examinez-le avant de continuer.`,"permission.preview":`Aperçu des droits : flux de tickets {issues} ; approbation des PR {approval} ; Secrets {secrets} ; Variables {variables} ; Projects {projects}. Vérifiez les droits exacts avant de créer le PAT de configuration.`,"setupPat.corrected.bootstrap":`Le PAT de configuration n’a pas pu accéder au dépôt. L’installation n’a pas commencé. Résolvez les tests échoués et tout nettoyage incomplet avant de réessayer. Droits requis : {grants}. Créez un PAT corrigé avec le lien GitHub mis à jour.`,"setupPat.corrected.final":`Les droits requis du PAT ont changé après inspection. L’installation n’a pas commencé. Résolvez les tests échoués et tout nettoyage incomplet avant de réessayer. Nouveaux droits : {grants}. Créez un PAT corrigé avec le lien mis à jour.`,"setupPat.cleanup":`Supprimez le PAT temporaire de configuration dans les paramètres GitHub après cette exécution. Fermer Copilot ne le révoque pas.`,"botPat.separation":`Le PAT du bot est distinct du PAT de configuration. Ces identifiants deviendront des Secrets GitHub Actions : {names}. Les valeurs existantes ne peuvent pas être relues. Saisissez à nouveau un PAT du bot pour vérifier ses droits. Aucun workflow de vérification ne démarre avant Appliquer.`,"credential.checks":`Vérification terminée pour {count} identifiants. Le résultat de chacun figure ci-dessous. Le terminal contient les détails techniques ; la valeur d’un Secret existant ne peut pas être relue.`,"credential.status.valid":`Valide`,"credential.status.invalid":`Invalide`,"credential.status.missing":`Manquant`,"credential.status.unverifiable":`Invérifiable sans nouvelle valeur`,"credential.status.not_required":`Non requis`,"validation.producers":`Choisissez 1 à 8 vérifications observées ou saisissez les triplets exacts nom|ID d’App|workflow.`,"validation.duplicateNames":`Deux producteurs fiables portent le même nom de vérification. La couverture ne stocke que ce nom : choisissez-en un ou renommez les jobs CI.`,"validation.projectStatusVerified":`Ouvrez chaque Project choisi sur GitHub et confirmez les quatre valeurs Status exactes. Répondez Oui après vérification, ou Non pour choisir à nouveau les Projects.`,"validation.projectStatusRedo":`Les valeurs Status n’ont pas été confirmées. Choisissez des Projects compatibles, puis revérifiez leurs options Status.`,"validation.number":`Saisissez un entier positif ou nul.`,"validation.boolean":`Choisissez Oui ou Non.`,"validation.choice":`Choisissez une des options affichées.`,"validation.unknownResource":`Noms de ressources héritées inconnus : {names}. Choisissez seulement les noms de la liste héritée.`,"validation.unknownWorkflow":`Workflows de ticket inconnus : {names}. Choisissez seulement les types proposés.`,"validation.firstQuestion":`C’est la première question de cette passe. Vérifiez-la ou annulez la configuration.`,"validation.duplicateProducer":`Cette vérification fiable a été choisie deux fois. Retirez le doublon.`,"validation.savedStatus":`La valeur Status enregistrée n’existe pas dans tous les Projects choisis. Sélectionnez une option proposée.`,"validation.projectIncompatible":`Les Projects choisis ne partagent aucune valeur Status. Choisissez des Projects compatibles ou configurez-les séparément.`,"validation.projectLimit":`Choisissez au plus 10 Projects ; séparez leurs numéros ou URL par des virgules.`,"validation.projectOwnerNeeded":`Une URL de Project exige de connaître le propriétaire du dépôt ; saisissez plutôt son numéro positif.`,"validation.projectOwnerMismatch":`Utilisez une URL de Project GitHub appartenant à {owner}, sans paramètres.`,"validation.projectUrl":`Saisissez une URL valide de Project GitHub ou son numéro positif.`,"validation.projectNumber":`Saisissez le numéro positif figurant dans l’URL du Project, pas un ID GraphQL PVT_.`,"validation.projectNumberRange":`Le numéro du Project doit être un entier positif inférieur ou égal à 2147483647.`,"validation.projectDuplicate":`Le Project {number} a été choisi plusieurs fois.`,"validation.fixedIssues":`Votre configuration active explicitement release ou hotfix. Gardez Issues activé ou modifiez d’abord la configuration.`,"validation.fixedWorkflowEnabled":`Votre configuration active {kind}. Gardez ce flux sélectionné ou modifiez d’abord la configuration.`,"validation.fixedWorkflowDisabled":`Votre configuration désactive {kind}. Désélectionnez ce flux ou modifiez d’abord la configuration.`,"validation.unknown":`Cette réponse n’a pas été acceptée. Vérifiez la question et son aide ; le terminal contient le détail technique.`},Ta={"session.controlMoved":`O controlo passou para este separador. O separador anterior é agora apenas de leitura.`,"session.cancelled":`Cancelamento solicitado. Os testes temporários já iniciados concluirão a limpeza antes de o processo terminar. Os PAT criados no GitHub permanecem até serem eliminados.`,"plan.ready":`Plano pronto: {files} ficheiros, {variables} Variables e {secrets} nomes de Secrets. Reveja-o antes de continuar.`,"permission.preview":`Pré-visualização das permissões: fluxos de issues {issues}; aprovação de PR {approval}; Secrets {secrets}; Variables {variables}; Projects {projects}. Reveja as permissões exatas antes de criar o PAT de configuração.`,"setupPat.corrected.bootstrap":`O PAT de configuração não conseguiu aceder ao repositório. A instalação não começou. Resolva os testes falhados e qualquer limpeza pendente antes de repetir. Permissões necessárias: {grants}. Crie um PAT corrigido com a ligação GitHub atualizada.`,"setupPat.corrected.final":`As permissões necessárias do PAT mudaram após inspeção. A instalação não começou. Resolva os testes falhados e qualquer limpeza pendente antes de repetir. Novas permissões: {grants}. Crie um PAT corrigido com a ligação atualizada.`,"setupPat.cleanup":`Elimine o PAT temporário de configuração nas definições do GitHub após esta execução. Fechar o Copilot não o revoga.`,"botPat.separation":`O PAT do bot é distinto do PAT de configuração. Estas credenciais serão Secrets do GitHub Actions: {names}. Os valores existentes não podem voltar a ser lidos. Reintroduza um PAT do bot para verificar as permissões. Nenhum fluxo de verificação é executado antes de Aplicar.`,"credential.checks":`Verificação concluída para {count} credenciais. O resultado de cada uma aparece abaixo. O terminal contém os detalhes técnicos; o valor de um Secret existente não pode voltar a ser lido.`,"credential.status.valid":`Válida`,"credential.status.invalid":`Inválida`,"credential.status.missing":`Em falta`,"credential.status.unverifiable":`Não verificável sem um novo valor`,"credential.status.not_required":`Não necessária`,"validation.producers":`Selecione 1 a 8 verificações observadas ou introduza os triplos exatos nome|ID da App|workflow.`,"validation.duplicateNames":`Dois produtores fiáveis têm o mesmo nome de check. A cobertura guarda apenas o nome: escolha um ou altere o nome dos jobs de CI.`,"validation.projectStatusVerified":`Abra cada Project escolhido no GitHub e confirme os quatro valores Status exatos. Responda Sim após verificar, ou Não para voltar a escolher Projects.`,"validation.projectStatusRedo":`Os valores Status não foram confirmados. Escolha Projects compatíveis e volte a verificar as opções Status.`,"validation.number":`Introduza um número inteiro não negativo.`,"validation.boolean":`Escolha Sim ou Não.`,"validation.choice":`Escolha uma das opções apresentadas.`,"validation.unknownResource":`Nomes de recursos herdados desconhecidos: {names}. Escolha apenas nomes da lista herdada.`,"validation.unknownWorkflow":`Fluxos de questões desconhecidos: {names}. Escolha apenas os tipos indicados.`,"validation.firstQuestion":`Esta é a primeira pergunta desta ronda. Reveja-a ou cancele a configuração.`,"validation.duplicateProducer":`Esta verificação de confiança foi selecionada duas vezes. Remova a seleção duplicada.`,"validation.savedStatus":`O valor Status guardado não existe em todos os Projects escolhidos. Selecione uma opção da lista.`,"validation.projectIncompatible":`Os Projects escolhidos não partilham qualquer valor Status. Escolha Projects compatíveis ou configure-os separadamente.`,"validation.projectLimit":`Escolha no máximo 10 Projects; separe os números ou URL por vírgulas.`,"validation.projectOwnerNeeded":`Uma URL de Project exige que se conheça o proprietário do repositório; introduza antes o número positivo.`,"validation.projectOwnerMismatch":`Use uma URL de Project do GitHub pertencente a {owner}, sem parâmetros.`,"validation.projectUrl":`Introduza uma URL válida de Project do GitHub ou o respetivo número positivo.`,"validation.projectNumber":`Introduza o número positivo apresentado na URL do Project, não um ID GraphQL PVT_.`,"validation.projectNumberRange":`O número do Project tem de ser um inteiro positivo até 2147483647.`,"validation.projectDuplicate":`O Project {number} foi selecionado mais do que uma vez.`,"validation.fixedIssues":`A sua configuração ativa explicitamente release ou hotfix. Mantenha Issues ativo ou altere primeiro a configuração.`,"validation.fixedWorkflowEnabled":`A sua configuração ativa {kind}. Mantenha esse fluxo selecionado ou altere primeiro a configuração.`,"validation.fixedWorkflowDisabled":`A sua configuração desativa {kind}. Desmarque esse fluxo ou altere primeiro a configuração.`,"validation.unknown":`Esta resposta não foi aceite. Reveja a pergunta e a ajuda; o terminal contém o detalhe técnico.`},Ea={en:{title:`Runners and installation parity`,help:`Access and capacity are observations. Verify runner authentication separately. Busy/offline waits for capacity; unknown access needs administrator verification. The chosen route never changes automatically.`,assets:`Asset inventory`,changes:`Complete changes (recognized credential formats masked)`,redactionNotice:`Masking covers recognized credential formats. Other hardcoded values can remain visible in these local workflow files; inspect them before sharing the review.`,before:`Before`,after:`After`,absent:`Absent`,disabled:`Disabled`,retained:`Retained`,blockers:`Needs attention`,registry:`Profile registry`,inventory:`Runner discovery`,profiles:`Reusable profiles`,observed:`Observed groups and labels`,limited:`Showing the first 10 runners. Manual entry remains available.`,available:`Available`,incomplete:`Incomplete`,missing:`Missing`,invalid:`Invalid: repair the registry or enter a manual profile`,unavailable:`Unavailable`,confirmed:`Repository access confirmed`,unknown:`Access unverified`,ready:`Available capacity observed`,hosted:`GitHub-hosted`,"pending-capacity":`Capacity pending: busy or offline`,"access-unknown":`Access unverified`,shared:`Shared/generated`,"source-only":`Source extension: retained`,customized:`Customized: review`,incompatible:`Incompatible generator: inspect before replacing`,agent:`Agent jobs`,"credential-health":`Credential verification`,validation:`Ordinary validation`,observer:`Trusted approval observer`,publication:`Publication`,isolated:`Isolated merge-group check`,retain:`Keep installed routing (recommended)`,"organization-profile":`Reuse an existing shared profile`,"manual-self-hosted":`Choose an existing self-hosted runner`,"validation-agent":`Use the selected agent runner`,"validation-hosted":`Use GitHub-hosted runners (recommended)`},es:{title:`Runners y paridad de la instalación`,help:`Acceso y capacidad son observaciones. Verifica la autenticación del runner por separado. Ocupado/desconectado espera capacidad; acceso desconocido requiere verificación del administrador. La ruta elegida nunca cambia automáticamente.`,assets:`Inventario de archivos`,changes:`Cambios completos (formatos de credenciales reconocidos ocultos)`,redactionNotice:`Se ocultan los formatos de credenciales reconocidos. Otros valores escritos en los workflows pueden seguir visibles en esta vista local; revísalos antes de compartirla.`,before:`Antes`,after:`Después`,absent:`Ausente`,disabled:`Desactivado`,retained:`Conservado`,blockers:`Requiere atención`,registry:`Registro de perfiles`,inventory:`Descubrimiento de runners`,profiles:`Perfiles reutilizables`,observed:`Grupos y etiquetas observados`,limited:`Se muestran los primeros 10 runners. Sigue disponible la entrada manual.`,available:`Disponible`,incomplete:`Incompleto`,missing:`Ausente`,invalid:`Inválido: corrige el registro o introduce un perfil manual`,unavailable:`No disponible`,confirmed:`Acceso del repositorio confirmado`,unknown:`Acceso sin verificar`,ready:`Capacidad disponible observada`,hosted:`Runners de GitHub`,"pending-capacity":`Capacidad pendiente: ocupado o desconectado`,"access-unknown":`Acceso sin verificar`,shared:`Compartido/generado`,"source-only":`Extensión propia: conservada`,customized:`Personalizado: revisar`,incompatible:`Generador incompatible: revisar antes de sustituir`,agent:`Jobs del agente`,"credential-health":`Verificación de credenciales`,validation:`Validación ordinaria`,observer:`Observador de aprobación fiable`,publication:`Publicación`,isolated:`Check aislado de la cola de fusión`,retain:`Conservar rutas instaladas (recomendado)`,"organization-profile":`Reutilizar un perfil compartido existente`,"manual-self-hosted":`Elegir un runner self-hosted existente`,"validation-agent":`Usar el runner del agente elegido`,"validation-hosted":`Usar runners de GitHub (recomendado)`},fr:{title:`Runners et parité de l’installation`,help:`Accès et capacité sont des observations. Vérifiez séparément l’authentification. Occupé/hors ligne attend la capacité ; l’accès inconnu exige une vérification administrateur. La route ne change jamais automatiquement.`,assets:`Inventaire des fichiers`,redactionNotice:`Le masquage couvre les formats de secrets reconnus. D’autres valeurs littérales peuvent rester visibles dans cette vue locale ; vérifiez-les avant de la partager.`,changes:`Modifications complètes (formats d’identifiants reconnus masqués)`,before:`Avant`,after:`Après`,absent:`Absent`,disabled:`Désactivé`,retained:`Conservé`,blockers:`Attention requise`,registry:`Registre des profils`,inventory:`Découverte des runners`,profiles:`Profils réutilisables`,observed:`Groupes et étiquettes observés`,limited:`Les 10 premiers runners sont affichés. La saisie manuelle reste disponible.`,available:`Disponible`,incomplete:`Incomplet`,missing:`Absent`,invalid:`Invalide : corrigez le registre ou saisissez un profil manuel`,unavailable:`Indisponible`,confirmed:`Accès du dépôt confirmé`,unknown:`Accès non vérifié`,ready:`Capacité disponible observée`,hosted:`Runners GitHub`,"pending-capacity":`Capacité en attente : occupé ou hors ligne`,"access-unknown":`Accès non vérifié`,shared:`Partagé/généré`,"source-only":`Extension source conservée`,customized:`Personnalisé : à vérifier`,incompatible:`Générateur incompatible : vérifiez avant remplacement`,agent:`Jobs de l’agent`,"credential-health":`Vérification des identifiants`,validation:`Validation ordinaire`,observer:`Observateur d’approbation fiable`,publication:`Publication`,isolated:`Vérification isolée de la file de fusion`,retain:`Conserver les routes installées (recommandé)`,"organization-profile":`Réutiliser un profil partagé existant`,"manual-self-hosted":`Choisir un runner auto-hébergé existant`,"validation-agent":`Utiliser le runner de l’agent sélectionné`,"validation-hosted":`Utiliser GitHub (recommandé)`},pt:{title:`Runners e paridade da instalação`,help:`Acesso e capacidade são observações. Verifique a autenticação separadamente. Ocupado/offline aguarda capacidade; acesso desconhecido exige verificação do administrador. A rota nunca muda automaticamente.`,assets:`Inventário de ficheiros`,redactionNotice:`São ocultados os formatos de credenciais reconhecidos. Outros valores escritos nos workflows podem continuar visíveis nesta vista local; reveja-os antes de a partilhar.`,changes:`Alterações completas (formatos de credenciais reconhecidos ocultos)`,before:`Antes`,after:`Depois`,absent:`Ausente`,disabled:`Desativado`,retained:`Mantido`,blockers:`Requer atenção`,registry:`Registo de perfis`,inventory:`Descoberta de runners`,profiles:`Perfis reutilizáveis`,observed:`Grupos e etiquetas observados`,limited:`São apresentados os primeiros 10 runners. A entrada manual continua disponível.`,available:`Disponível`,incomplete:`Incompleto`,missing:`Ausente`,invalid:`Inválido: corrija o registo ou introduza um perfil manual`,unavailable:`Indisponível`,confirmed:`Acesso do repositório confirmado`,unknown:`Acesso não verificado`,ready:`Capacidade disponível observada`,hosted:`Runners GitHub`,"pending-capacity":`Capacidade pendente: ocupado ou offline`,"access-unknown":`Acesso não verificado`,shared:`Partilhado/gerado`,"source-only":`Extensão própria mantida`,customized:`Personalizado: rever`,incompatible:`Gerador incompatível: reveja antes de substituir`,agent:`Jobs do agente`,"credential-health":`Verificação de credenciais`,validation:`Validação normal`,observer:`Observador de aprovação fiável`,publication:`Publicação`,isolated:`Verificação isolada da fila de fusão`,retain:`Manter rotas instaladas (recomendado)`,"organization-profile":`Reutilizar um perfil partilhado existente`,"manual-self-hosted":`Escolher um runner self-hosted existente`,"validation-agent":`Usar o runner do agente selecionado`,"validation-hosted":`Usar GitHub (recomendado)`}},Da={en:`This plan cannot be applied. Retain the existing asset or restore it with a compatible generator, then review again. No installation change has been applied. Open the details to identify the affected file.`,es:`Este plan no se puede aplicar. Conserva el archivo existente o restáuralo con un generador compatible y vuelve a revisar. No se ha aplicado ningún cambio de instalación. Abre los detalles para identificar el archivo afectado.`,fr:`Ce plan ne peut pas être appliqué. Conservez le fichier existant ou restaurez-le avec un générateur compatible, puis révisez le plan. Aucune modification d’installation n’a été appliquée. Ouvrez les détails pour identifier le fichier concerné.`,pt:`Este plano não pode ser aplicado. Mantenha o ficheiro existente ou restaure-o com um gerador compatível e reveja o plano. Nenhuma alteração de instalação foi aplicada. Abra os detalhes para identificar o ficheiro afetado.`};function $(e,t){return e===`blockedAction`?Da[t]:Ea[t][e]??Ea.en[e]??e}var Oa={es:{All:`Todos`,prompt:`Preguntar antes de crear el enlace`,"create-if-missing":`Crear el enlace si falta`,disabled:`Desactivado`,replace:`Sustituir`,append:`Añadir`,preserve:`Conservar`,info:`Informativa`,low:`Baja`,medium:`Media`,high:`Alta`,smart:`Adaptativa`,default:`Predeterminado`,auto:`Automático`,always:`Reinstalar siempre`,recommend:`Recomendar aprobación`,guarded:`Aprobar solo con garantías`,off:`Desactivado`,check:`Check de CI que exige la cobertura`,numeric:`Informe numérico verificable`,repository:`Repositorio`,organization:`Organización`,selected:`Repositorios seleccionados`,private:`Repositorios privados`,all:`Todos los repositorios`,"production-lineage":`Conservar el linaje de producción`,"canonical-gitflow":`Git-Flow canónico`,manual:`Manual`,"auto-merge":`Fusionar automáticamente`,"merge-queue":`Cola de integración`,"create-only":`Solo crear PR`,direct:`Integración directa`,"sync-branch":`Mediante rama de sincronización`,"prefer-release":`Priorizar la release`,development:`Desarrollo`,both:`Ambos destinos`,"source-only":`Solo rama de origen`,"sync-only":`Solo rama de sincronización`,none:`Ninguna`,close:`Cerrar el issue`,"keep-open":`Mantener abierto`,guided:`Guiado`,compact:`Compacto`,quiet:`Mínimo`,update:`Actualizar el comentario`,milestones:`Publicar en hitos`,feature:`Funcionalidad`,bugfix:`Corrección`,documentation:`Documentación`,chore:`Mantenimiento`,help:`Ayuda o pregunta`,hotfix:`Arreglo urgente`,release:`Release`},fr:{All:`Tous`,prompt:`Demander avant de créer le renvoi`,"create-if-missing":`Créer le renvoi s’il manque`,disabled:`Désactivé`,replace:`Remplacer`,append:`Ajouter`,preserve:`Conserver`,info:`Information`,low:`Faible`,medium:`Moyenne`,high:`Élevée`,smart:`Adaptatif`,default:`Par défaut`,auto:`Automatique`,always:`Toujours réinstaller`,recommend:`Recommander une approbation`,guarded:`Approuver sous garde`,off:`Désactivé`,check:`Vérification CI imposant la couverture`,numeric:`Rapport numérique vérifiable`,repository:`Dépôt`,organization:`Organisation`,selected:`Dépôts sélectionnés`,private:`Dépôts privés`,all:`Tous les dépôts`,"production-lineage":`Préserver la filiation de production`,"canonical-gitflow":`Git-Flow canonique`,manual:`Manuel`,"auto-merge":`Fusionner automatiquement`,"merge-queue":`File de fusion`,"create-only":`Créer la PR uniquement`,direct:`Fusion directe`,"sync-branch":`Par branche de synchronisation`,"prefer-release":`Privilégier la version`,development:`Développement`,both:`Les deux destinations`,"source-only":`Branche source seulement`,"sync-only":`Branche de synchronisation seulement`,none:`Aucune`,close:`Fermer le ticket`,"keep-open":`Garder ouvert`,guided:`Guidé`,compact:`Compact`,quiet:`Minimal`,update:`Mettre le commentaire à jour`,milestones:`Publier aux étapes clés`,feature:`Fonctionnalité`,bugfix:`Correction`,documentation:`Documentation`,chore:`Maintenance`,help:`Aide ou question`,hotfix:`Correctif urgent`,release:`Version`},pt:{All:`Todos`,prompt:`Perguntar antes de criar o apontador`,"create-if-missing":`Criar o apontador se faltar`,disabled:`Desativado`,replace:`Substituir`,append:`Acrescentar`,preserve:`Conservar`,info:`Informação`,low:`Baixa`,medium:`Média`,high:`Alta`,smart:`Adaptativo`,default:`Predefinido`,auto:`Automático`,always:`Reinstalar sempre`,recommend:`Recomendar aprovação`,guarded:`Aprovar sob condições`,off:`Desativado`,check:`Verificação CI que exige cobertura`,numeric:`Relatório numérico verificável`,repository:`Repositório`,organization:`Organização`,selected:`Repositórios selecionados`,private:`Repositórios privados`,all:`Todos os repositórios`,"production-lineage":`Preservar a linhagem de produção`,"canonical-gitflow":`Git-Flow canónico`,manual:`Manual`,"auto-merge":`Integrar automaticamente`,"merge-queue":`Fila de integração`,"create-only":`Criar apenas a PR`,direct:`Integração direta`,"sync-branch":`Através de ramo de sincronização`,"prefer-release":`Priorizar a release`,development:`Desenvolvimento`,both:`Ambos os destinos`,"source-only":`Apenas ramo de origem`,"sync-only":`Apenas ramo de sincronização`,none:`Nenhum`,close:`Fechar a questão`,"keep-open":`Manter aberta`,guided:`Guiado`,compact:`Compacto`,quiet:`Mínimo`,update:`Atualizar o comentário`,milestones:`Publicar nos marcos`,feature:`Funcionalidade`,bugfix:`Correção`,documentation:`Documentação`,chore:`Manutenção`,help:`Ajuda ou pergunta`,hotfix:`Hotfix`,release:`Release`}},ka=new Set([`codex`,`opencode`,`cursor`,`openai`,`anthropic`,`google`,`openrouter`,`local`]);function Aa(e,t,n){if(e===`runners.mode`)return $(t,n);if(e===`runners.validation`)return $(`validation-${t}`,n);if(n===`en`||ka.has(t))return t;let r=Oa[n];if(e===`issueWorkflows.enabled`&&t.includes(` — `)){let e=t.split(` — `,1)[0];if(r[e])return`${e} — ${r[e]}`}return e===`repository.reconciliationCleanup`&&t===`all`?{es:`Todas las ramas temporales`,fr:`Toutes les branches temporaires`,pt:`Todos os ramos temporários`}[n]:r[t]??t}function ja(e,t){return typeof e.defaultValue==`boolean`?Z(e.defaultValue?`yes`:`no`,t):e.defaultValue===void 0||e.defaultValue===``?Z(`none`,t):e.kind===`choice`||e.kind===`multi-select`?Aa(e.id,String(e.defaultValue),t):String(e.defaultValue)}var Ma={en:Sa,es:Ca,fr:wa,pt:Ta};function Na(e,t){if(e.managementState)return ta(t)[e.managementState];if(!e.copyId)return t===`en`?e.text:Z(`unknownLocalError`,t);let n=Ma[t][e.copyId],r=e.copyValues??{},i=e.copyId===`permission.preview`?{...r,issues:(r.issues??``).split(`|`).map(e=>Aa(`issueWorkflows.enabled`,e,t)).join(`, `),approval:Aa(`pullRequestApproval.mode`,r.approval??``,t),secrets:Aa(`storage.secrets.defaultScope`,r.secrets??``,t),variables:Aa(`storage.variables.defaultScope`,r.variables??``,t),projects:Aa(`projects.ids`,r.projects??``,t)}:r,a=n.replace(/\{([a-zA-Z]\w*)\}/gu,(e,t)=>i[t]??``);return e.copyId!==`credential.checks`||!e.credentialChecks?.length?a:`${a}\n${e.credentialChecks.map(e=>{let n=`credential.status.${e.status}`;return`${e.name}: ${Ma[t][n]}`}).join(` +`)}`}var Pa={en:va,es:ya,fr:ba,pt:xa};function Fa(e,t){return e.replace(/\{([a-zA-Z]\w*)\}/gu,(e,n)=>t[n]??``)}function Ia(e,t){if(!e.copyId)return;let n=Pa[t][e.copyId],r={...e.copyValues??{}};if(e.copyId===`credential.existing`&&r.status&&[`valid`,`invalid`,`missing`,`unverifiable`,`not_required`].includes(r.status)){let e=`credential.status.${r.status}`;r.status=Ma[t][e]}return{title:Fa(n.title,r),description:Fa(n.description,r),...n.choices?{choices:n.choices}:{}}}function La(e,t,n){return Ia(e,t)?.choices?.[n]??e.choices[n]}var Ra=H(`

                                                          `,1);function za(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=M(),o=X(t,`view`,8);Tn(()=>(V(o()),n(),Ia),()=>{N(a,o()?.batch?Z(o().batch.phase===`review`?`batchReviewTitle`:o().batch.phase===`applying`?`batchProgressTitle`:`batchResultTitle`,n()):o()?.outcome===`complete`?Z(`completeTitle`,n()):o()?.outcome===`dry-run`?Z(`previewTitle`,n()):o()?.outcome===`cancelled`?Z(`cancelledTitle`,n()):o()?.outcome?Z(`blockedTitle`,n()):o()?.prompt?.kind===`repositories`?Z(`batchReviewSelection`,n()):o()?.prompt?.kind===`question`?Z(`choices`,n()):o()?.prompt?.kind===`plan`?Z(`plan`,n()):o()?.prompt?Ia(o().prompt,n())?.title??o().prompt.title:Z(`preparing`,n()))}),En(),ji();var s=Ra(),c=F(s),l=L(P(c)),u=I(L(l));D(c);var d=L(c,2),f=I(d,!0),p=I(L(d,2),!0);R((e,t,n)=>{W(l,` ${e??``} `),W(u,`${t??``} / 06`),W(f,z(a)),W(p,n)},[()=>(V(Zi),V(o()),n(),B(()=>Zi(o()?.journey?.current,n()).toUpperCase())),()=>(V(o()),B(()=>String(o()?.journey?.position??1).padStart(2,`0`))),()=>(V(o()),V(Z),n(),B(()=>o()?.outcome?Z(`resultLede`,n()):Z(`activeLede`,n())))]),U(e,s),k(),i()}var Ba={tutorial:`https://docs.page/vypdev/copilot/setup-web`,firstWorkflow:`https://docs.page/vypdev/copilot/first-workflow`,recovery:`https://docs.page/vypdev/copilot/security-operations/operations/troubleshooting`},Va=H(``);function Ha(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi();ji();var a=Va(),o=P(a),s=P(o),c=I(s),l=L(s,2),u=I(l),d=L(l,2),f=I(d);D(o);var p=I(L(o,2),!0);D(a),R((e,t,n,r,i)=>{J(a,`aria-label`,e),J(s,`href`,Ba.tutorial),W(c,`${t??``} ↗`),J(l,`href`,Ba.firstWorkflow),W(u,`${n??``} ↗`),J(d,`href`,Ba.recovery),W(f,`${r??``} ↗`),W(p,i)},[()=>Z(`setupHelp`,n()),()=>Z(`setupTutorial`,n()),()=>Z(`firstWorkflowGuide`,n()),()=>Z(`setupRecovery`,n()),()=>Z(`setupHelpHint`,n())]),U(e,a),k(),i()}function Ua(e){try{let t=new URL(e??``);return t.protocol===`https:`&&t.hostname===`github.com`&&(t.pathname===`/settings/personal-access-tokens`||t.pathname.startsWith(`/settings/personal-access-tokens/`))?t.toString():void 0}catch{return}}function Wa(e){return e&&/^[A-Za-z0-9-]{1,39}\/(?!\.{1,2}$)[A-Za-z0-9._-]{1,100}$/u.test(e)?`https://github.com/${e}/settings/secrets/actions`:void 0}function Ga(e){try{let t=new URL(e??``);return t.protocol===`https:`&&t.hostname===`github.com`&&!t.username&&!t.password&&!t.search&&!t.hash&&/^\/[A-Za-z0-9-]{1,39}\/[A-Za-z0-9._-]{1,100}\/actions\/runs\/[1-9][0-9]*$/u.test(t.pathname)?t.toString():void 0}catch{return}}function Ka(e){try{let t=new URL(e??``);return t.protocol===`https:`&&t.hostname===`github.com`&&!t.username&&!t.password&&!t.search&&!t.hash&&/^\/[A-Za-z0-9-]{1,39}\/[A-Za-z0-9._-]{1,100}\/rules\/[1-9][0-9]*$/u.test(t.pathname)?t.toString():void 0}catch{return}}function qa(e){try{let t=new URL(e??``);return t.protocol===`https:`&&t.hostname===`github.com`&&!t.username&&!t.password&&!t.search&&!t.hash&&/^\/(?:orgs|users)\/[A-Za-z0-9-]{1,39}\/projects\/[1-9][0-9]*$/u.test(t.pathname)?t.toString():void 0}catch{return}}var Ja=H(``),Ya=H(``);function Xa(e,t){let n=X(t,`label`,8),r=X(t,`variant`,8,`primary`),i=X(t,`disabled`,8,!1),a=X(t,`arrow`,8,!1),o=X(t,`onClick`,8);var s=Ya(),c=P(s,!0),l=L(c),u=e=>{U(e,Ja())};G(l,e=>{a()&&e(u)}),D(s),R(()=>{ui(s,1,si(r())),s.disabled=i(),W(c,n())}),wr(`click`,s,function(...e){o()?.apply(this,e)}),U(e,s)}Tr([`click`]);var Za=H(` `),Qa=H(`

                                                          `);function $a(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=M(),o=X(t,`tone`,8,`info`),s=X(t,`title`,8),c=X(t,`message`,8),l=X(t,`link`,8,void 0),u=X(t,`actionLabel`,8,void 0),d=X(t,`onAction`,8,void 0);Tn(()=>V(l()),()=>{N(a,Ua(l()))}),En(),ji();var f=Qa(),p=P(f),m=I(p,!0),h=L(p),g=I(h,!0),_=L(h,2),v=e=>{var t=Za(),r=I(t,!0);R(e=>{J(t,`href`,z(a)),W(r,e)},[()=>(V(Z),n(),B(()=>Z(`githubLink`,n())))]),U(e,t)};G(_,e=>{z(a)&&e(v)});var y=L(_,2),b=e=>{Xa(e,{get label(){return u()},variant:`secondary`,get onClick(){return d()}})};G(y,e=>{u()&&d()&&e(b)}),D(f),R(()=>{ui(f,1,`banner ${o()??``}`),J(f,`role`,o()===`error`?`alert`:`status`),W(m,s()),W(g,c())}),U(e,f),k(),i()}var eo=H(`
                                                        1. :
                                                        2. `),to=H(`
                                                            `),no=H(`
                                                          • `),ro=H(`
                                                          • `),io=H(`

                                                            `),ao=H(`
                                                                `),oo=H(`

                                                                `);function so(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=X(t,`question`,8);ji();var o=Pr(),s=F(o),c=e=>{var t=oo(),r=P(t),i=I(r,!0),o=L(r,2),s=P(o),c=L(s),l=e=>{var t=Nr();R(e=>W(t,`(${e??``})`),[()=>(V(Z),V(a()),n(),B(()=>Z(a().runnerRegistryScope===`repository`?`scopeRepository`:`scopeOrganization`,n())))]),U(e,t)};G(c,e=>{V(a()),B(()=>a().runnerRegistryScope)&&e(l)});var u=L(c);D(o);var d=L(o,2),f=e=>{var t=to(),r=P(t),i=I(r,!0),o=L(r,2);q(o,5,()=>(V(a()),B(()=>a().runnerProfiles)),K,(e,t)=>{var n=eo(),r=P(n),i=I(r,!0),a=I(L(r,2));D(n),R(e=>{W(i,(z(t),B(()=>z(t).id))),W(a,`${z(t),B(()=>z(t).group||`—`)??``} · ${e??``}`)},[()=>(z(t),B(()=>z(t).labels.join(`, `)))]),U(e,n)}),D(o),D(t),R(e=>W(i,e),[()=>(V($),n(),B(()=>$(`profiles`,n())))]),U(e,t)};G(d,e=>{V(a()),B(()=>a().runnerProfiles?.length)&&e(f)});var p=L(d,2),m=e=>{var t=ao(),r=P(t),i=I(r,!0),o=L(r,2);q(o,5,()=>(V(a()),B(()=>a().runnerInventory.groups)),K,(e,t)=>{var r=no(),i=P(r),a=I(i,!0),o=L(i);D(r),R(e=>{W(a,(z(t),B(()=>z(t).name))),W(o,`: ${e??``}`)},[()=>(V($),z(t),n(),B(()=>$(z(t).access,n())))]),U(e,r)}),D(o);var s=L(o,2);q(s,5,()=>(V(a()),B(()=>a().runnerInventory.candidates.slice(0,10))),K,(e,t)=>{var n=ro(),r=I(P(n),!0);D(n),R(e=>W(r,e),[()=>(z(t),B(()=>z(t).labels.join(`, `)))]),U(e,n)}),D(s);var c=L(s,2),l=e=>{var t=io(),r=I(t,!0);R(e=>W(r,e),[()=>(V($),n(),B(()=>$(`limited`,n())))]),U(e,t)};G(c,e=>{V(a()),B(()=>a().runnerInventory.candidates.length>10)&&e(l)}),D(t),R(e=>W(i,e),[()=>(V($),n(),B(()=>$(`observed`,n())))]),U(e,t)};G(p,e=>{V(a()),B(()=>a().runnerInventory)&&e(m)}),D(t),R((e,t,n,r,a)=>{W(i,e),W(s,`${t??``}: ${n??``}`),W(u,` · ${r??``}: ${a??``}`)},[()=>(V($),n(),B(()=>$(`help`,n()))),()=>(V($),n(),B(()=>$(`registry`,n()))),()=>(V($),V(a()),n(),B(()=>$(a().runnerRegistryStatus??`unavailable`,n()))),()=>(V($),n(),B(()=>$(`inventory`,n()))),()=>(V($),V(a()),n(),B(()=>$(a().runnerInventory?.status??`unavailable`,n())))]),U(e,t)},l=gt(()=>(V(a()),B(()=>a().id.startsWith(`runners.`)&&a().id!==`runners.discover`)));G(s,e=>{z(l)&&e(c)}),U(e,o),k(),i()}function co(e){let t=String(e.question.defaultValue),n=t.split(`,`).map(e=>e.trim()).filter(Boolean),r=e.question.kind===`multi-select`?n.includes(`All`)&&e.question.choices?.includes(`All`)?[`All`]:(e.question.choices??[]).filter(e=>e!==`All`&&n.includes(e.split(` — `)[0])):e.question.kind===`scope-overrides`?n:e.question.kind===`producer-select`?t.split(`;`).map(e=>e.trim()).filter(Boolean):e.question.kind===`project-select`?n.filter(t=>e.question.projectCandidates?.some(e=>String(e.number)===t)):[],i=e.question.kind===`project-select`?n.filter(e=>!r.includes(e)).join(`,`):t;return{value:e.question.kind===`producer-select`?``:i,selected:r}}function lo(e,t){return t===`All`?e.includes(`All`)?[]:[`All`]:e.includes(t)?e.filter(e=>e!==t):[...e.filter(e=>e!==`All`),t]}function uo(e,t,n){return e.question.kind===`scope-overrides`||e.question.kind===`multi-select`?n.length?n.join(`,`):`none`:e.question.kind===`producer-select`?[...n,...t.split(`;`).map(e=>e.trim()).filter(Boolean)].join(`;`):e.question.kind===`project-select`?[...n,...t.split(`,`).map(e=>e.trim()).filter(Boolean)].join(`,`)||`none`:t}var fo={issueCreated:`projectTransitionIssueCreated`,pullRequestCreated:`projectTransitionPullRequestCreated`,issueInProgress:`projectTransitionIssueInProgress`,pullRequestInProgress:`projectTransitionPullRequestInProgress`};function po(e){if(e)try{let t=new URL(e);if(t.protocol!==`https:`||t.username||t.password||t.search)return;if(t.hostname===`docs.page`&&t.port===``&&t.pathname.startsWith(`/vypdev/copilot/`)||t.hostname===`docs.github.com`&&t.port===``&&t.pathname.startsWith(`/en/`))return t.href}catch{return}}var mo=H(`

                                                                `),ho=H(`

                                                                `),go=H(` `,1);function _o(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=M(),o=X(t,`kind`,8),s=X(t,`status`,8),c=X(t,`truncated`,8,!1),l={observed:`checksObserved`,"no-recent-runs":`checksNoRecent`,"no-verifiable-checks":`checksNoVerifiable`,"permission-denied":`checksDenied`,unavailable:`checksUnavailable`},u={observed:`projectsObserved`,empty:`projectsEmpty`,"permission-denied":`projectsDenied`,unavailable:`projectsUnavailable`,unsupported:`projectsUnsupported`};Tn(()=>(V(s()),V(o())),()=>{N(a,s()?o()===`checks`?l[s()]:u[s()]:void 0)}),En(),ji();var d=go(),f=F(d),p=e=>{var t=mo(),r=I(t,!0);R(e=>W(r,e),[()=>(V(Z),z(a),n(),B(()=>Z(z(a),n())))]),U(e,t)};G(f,e=>{z(a)&&e(p)});var m=L(f,2),h=e=>{var t=ho(),r=I(t,!0);R(e=>W(r,e),[()=>(V(Z),V(o()),n(),B(()=>Z(o()===`checks`?`checksDiscoveryScope`:`projectsDiscoveryScope`,n())))]),U(e,t)};G(m,e=>{(s()===`observed`||s()===`empty`||s()===`no-recent-runs`||s()===`no-verifiable-checks`)&&e(h)});var g=L(m,2),_=e=>{var t=ho(),r=I(t,!0);R(e=>W(r,e),[()=>(V(Z),n(),B(()=>Z(`discoveryTruncated`,n())))]),U(e,t)};G(g,e=>{c()&&e(_)}),U(e,d),k(),i()}var vo={en:{success:`Passed`,failure:`Failed`,cancelled:`Cancelled`,neutral:`Neutral`,skipped:`Skipped`,timed_out:`Timed out`,action_required:`Action required`,stale:`Stale`,startup_failure:`Failed to start`,unknown:`Unknown outcome`},es:{success:`Correcto`,failure:`Falló`,cancelled:`Cancelado`,neutral:`Neutral`,skipped:`Omitido`,timed_out:`Agotó el tiempo`,action_required:`Requiere intervención`,stale:`Obsoleto`,startup_failure:`Falló al iniciar`,unknown:`Resultado desconocido`},fr:{success:`Réussi`,failure:`Échoué`,cancelled:`Annulé`,neutral:`Neutre`,skipped:`Ignoré`,timed_out:`Délai dépassé`,action_required:`Action nécessaire`,stale:`Obsolète`,startup_failure:`Échec au démarrage`,unknown:`Résultat inconnu`},pt:{success:`Concluído`,failure:`Falhou`,cancelled:`Cancelado`,neutral:`Neutro`,skipped:`Ignorado`,timed_out:`Tempo esgotado`,action_required:`Ação necessária`,stale:`Obsoleto`,startup_failure:`Falha ao iniciar`,unknown:`Resultado desconhecido`}};function yo(e,t){return vo[t][e]??vo[t].unknown}function bo(e,t,n){let r=e.trim(),i=n.trim(),a=String(t??``).trim(),o=Number(a);if(!(!r||!i||r.length>100||i.length>100||/[|;\r\n]/u.test(r+i)||!/^[1-9]\d*$/u.test(a)||!Number.isSafeInteger(o)))return`${r}|${o}|${i}`}var xo=H(` `),So=H(`
                                                                `),Co=H(`
                                                              • `),wo=H(`
                                                                  `),To=H(``),Eo=H(`

                                                                  `,1);function Do(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=M(),o=M(),s=X(t,`candidates`,8),c=X(t,`selected`,12),l=X(t,`controller`,8),u=M(``),d=M(``),f=M(``),p=M(!1);function m(){let e=bo(z(u),z(d),z(f));if(!e||c().length>=8){N(p,!0);return}N(p,!1),c().includes(e)||c([...c(),e]),N(u,``),N(d,``),N(f,``)}Tn(()=>V(s()),()=>{N(a,new Set(s().map(e=>`${e.name}|${e.sourceAppId}|${e.workflowName}`)))}),Tn(()=>(V(c()),z(a)),()=>{N(o,c().filter(e=>!z(a).has(e)))}),En(),ji();var h=Eo(),g=F(h);q(g,5,s,K,(e,t)=>{let r=A(()=>(z(t),B(()=>`${z(t).name}|${z(t).sourceAppId}|${z(t).workflowName}`)));var i=So(),a=P(i),o=P(a);xi(o);var s=L(o,2),u=P(s),d=I(P(u),!0);D(u);var f=L(u),p=I(P(f));D(f);var m=I(L(f),!0);D(s),D(a);var h=L(a,2),g=P(h),_=e=>{var r=xo(),i=I(r,!0);R((e,t)=>{J(r,`href`,e),W(i,t)},[()=>(V(Ga),z(t),B(()=>Ga(z(t).runUrl))),()=>(V(Z),n(),B(()=>Z(`ciRun`,n())))]),U(e,r)},v=gt(()=>(V(Ga),z(t),B(()=>Ga(z(t).runUrl))));G(g,e=>{z(v)&&e(_)});var y=L(g,2),b=e=>{var r=xo(),i=I(r,!0);R((e,t)=>{J(r,`href`,e),W(i,t)},[()=>(V(Ka),z(t),B(()=>Ka(z(t).requiredByRuleset?.sourceUrl))),()=>(V(Z),n(),B(()=>Z(`ciRule`,n())))]),U(e,r)},x=gt(()=>(V(Ka),z(t),B(()=>Ka(z(t).requiredByRuleset?.sourceUrl))));G(y,e=>{z(x)&&e(b)}),D(h),D(i),R((e,n,r,i,a,s)=>{Si(o,e),o.disabled=n,W(d,(z(t),B(()=>z(t).name))),W(p,`${z(t),B(()=>z(t).workflowName)??``} · ${z(t),B(()=>z(t).sourceAppName??`GitHub App`)??``} ${z(t),B(()=>z(t).sourceAppId)??``} · ${r??``} · ${i??``} · ${a??``}`),W(m,s)},[()=>(V(c()),V(z(r)),B(()=>c().includes(z(r)))),()=>(V(l()),V(c()),V(z(r)),B(()=>!l()||c().length>=8&&!c().includes(z(r)))),()=>(V(yo),z(t),n(),B(()=>yo(z(t).conclusion,n()))),()=>(z(t),B(()=>z(t).headSha.slice(0,7))),()=>(z(t),V(Z),n(),B(()=>z(t).observedAt??Z(`observationTimeUnknown`,n()))),()=>(z(t),V(Z),n(),B(()=>z(t).requiredByRuleset?Z(`branchRequirementObserved`,n(),{branch:z(t).requiredByRuleset.branch}):Z(`branchRequirementUnknown`,n())))]),wr(`change`,o,()=>c(lo(c(),z(r)))),U(e,i)}),D(g);var _=L(g,2),v=e=>{var t=wo();q(t,5,()=>z(o),K,(e,t)=>{var r=Co(),i=P(r),a=I(i,!0),o=L(i,2),s=I(o,!0);D(r),R(e=>{W(a,z(t)),o.disabled=!l(),W(s,e)},[()=>(V(Z),n(),B(()=>Z(`producerRemove`,n())))]),wr(`click`,o,()=>c(lo(c(),z(t)))),U(e,r)}),D(t),U(e,t)};G(_,e=>{z(o),B(()=>z(o).length)&&e(v)});var y=L(_,2),b=I(y,!0),x=L(y,2),S=P(x),C=P(S,!0),w=L(C);xi(w),D(S);var ee=L(S,2),te=P(ee,!0),ne=L(te);xi(ne),D(ee);var re=L(ee,2),ie=P(re,!0),ae=L(ie);xi(ae),D(re),D(x);var oe=L(x,2),se=I(oe,!0),ce=L(oe,2),le=e=>{var t=To(),r=I(t,!0);R(e=>W(r,e),[()=>(V(Z),n(),B(()=>Z(`producerManualInvalid`,n())))]),U(e,t)};G(ce,e=>{z(p)&&e(le)}),R((e,t,n,r,i,a)=>{J(g,`aria-label`,e),W(b,t),W(C,n),w.disabled=!l(),W(te,r),ne.disabled=!l(),W(ie,i),ae.disabled=!l(),oe.disabled=!l(),W(se,a)},[()=>(V(Z),n(),B(()=>Z(`checksObserved`,n()))),()=>(V(Z),n(),B(()=>Z(`producerManualHelp`,n()))),()=>(V(Z),n(),B(()=>Z(`producerName`,n()))),()=>(V(Z),n(),B(()=>Z(`producerAppId`,n()))),()=>(V(Z),n(),B(()=>Z(`producerWorkflow`,n()))),()=>(V(Z),n(),B(()=>Z(`producerAdd`,n())))]),Ei(w,()=>z(u),e=>N(u,e)),Ei(ne,()=>z(d),e=>N(d,e)),Ei(ae,()=>z(f),e=>N(f,e)),wr(`click`,oe,m),U(e,h),k(),i()}Tr([`change`,`click`]);var Oo=H(` `),ko=H(`
                                                                  `),Ao=H(`
                                                                • `),jo=H(`

                                                                    `,1),Mo=H(`
                                                                    `,1);function No(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=M(),o=M(),s=X(t,`candidates`,8),c=X(t,`selected`,12),l=X(t,`value`,12),u=X(t,`controller`,8);Tn(()=>V(s()),()=>{N(a,new Set(s().map(e=>String(e.number))))}),Tn(()=>(V(c()),z(a)),()=>{N(o,c().filter(e=>!z(a).has(e)))}),En(),ji();var d=Mo(),f=F(d);q(f,5,s,K,(e,t)=>{var r=ko(),i=P(r),a=P(i);xi(a);var o=L(a,2),s=P(o),l=I(P(s),!0);D(s);var d=L(s),f=I(P(d));D(d),D(o),D(i);var p=L(i,2),m=e=>{var r=Oo(),i=I(r,!0);R((e,t)=>{J(r,`href`,e),W(i,t)},[()=>(V(qa),z(t),B(()=>qa(z(t).url))),()=>(V(Z),n(),B(()=>Z(`projectUrl`,n())))]),U(e,r)},h=gt(()=>(V(qa),z(t),B(()=>qa(z(t).url))));G(p,e=>{z(h)&&e(m)}),D(r),R((e,n)=>{Si(a,e),a.disabled=n,W(l,(z(t),B(()=>z(t).title))),W(f,`${z(t),B(()=>z(t).owner)??``} · #${z(t),B(()=>z(t).number)??``}`)},[()=>(V(c()),z(t),B(()=>c().includes(String(z(t).number)))),()=>(V(u()),V(c()),z(t),B(()=>!u()||c().length>=10&&!c().includes(String(z(t).number))))]),wr(`change`,a,()=>c(lo(c(),String(z(t).number)))),U(e,r)}),D(f);var p=L(f,2),m=e=>{var t=jo(),r=F(t),i=I(r,!0),a=L(r,2);q(a,5,()=>z(o),K,(e,t)=>{var r=Ao(),i=P(r),a=I(i),o=L(i,2),s=I(o,!0);D(r),R(e=>{W(a,`#${z(t)??``}`),o.disabled=!u(),W(s,e)},[()=>(V(Z),n(),B(()=>Z(`removeSelection`,n())))]),wr(`click`,o,()=>c(lo(c(),z(t)))),U(e,r)}),D(a),R(e=>W(i,e),[()=>(V(Z),n(),B(()=>Z(`projectSelectionNotObserved`,n())))]),U(e,t)};G(p,e=>{z(o),B(()=>z(o).length)&&e(m)});var h=L(p,2),g=P(h),_=I(g,!0),v=L(g,2);xi(v),D(h),R((e,t)=>{J(f,`aria-label`,e),W(_,t),v.disabled=!u()},[()=>(V(Z),n(),B(()=>Z(`projectsObserved`,n()))),()=>(V(Z),n(),B(()=>Z(`projectManual`,n())))]),Ei(v,l),U(e,d),k(),i()}Tr([`change`,`click`]);var Po=H(``),Fo=H(`
                                                                    `),Io=H(` `,1);function Lo(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=X(t,`explanation`,8),o=X(t,`helpUrl`,8);ji();var s=Io(),c=F(s),l=e=>{var t=Po(),r=P(t),i=I(r);D(t),R(e=>{J(r,`href`,o()),W(i,`${e??``} ↗`)},[()=>(V(Z),n(),B(()=>Z(`learnMore`,n())))]),U(e,t)};G(c,e=>{o()&&e(l)});var u=L(c,2),d=e=>{var t=Fo(),r=P(t),i=I(r,!0),o=L(r),s=P(o),c=I(s,!0),l=L(s),u=I(l,!0),d=L(l,2),f=I(d,!0),p=L(d),m=I(p,!0),h=L(p,2),g=I(h,!0),_=L(h),v=I(_,!0),y=L(_,2),b=I(y,!0),x=L(y),S=I(x,!0),C=L(x,2),w=I(C,!0),ee=L(C),te=I(ee,!0),ne=L(ee,2),re=I(ne,!0),ie=L(ne),ae=I(ie,!0),oe=L(ie,2),se=I(oe,!0),ce=I(L(oe),!0);D(o),D(t),R((e,t,n,r,o,s,l,d)=>{W(i,e),W(c,t),W(u,(V(a()),B(()=>a().when))),W(f,n),W(m,(V(a()),B(()=>a().where))),W(g,r),W(v,(V(a()),B(()=>a().how))),W(b,o),W(S,(V(a()),B(()=>a().why))),W(w,s),W(te,(V(a()),B(()=>a().example))),W(re,l),W(ae,(V(a()),B(()=>a().effect))),W(se,d),W(ce,(V(a()),B(()=>a().verify)))},[()=>(V(Z),n(),B(()=>Z(`whyMatters`,n()))),()=>(V(Z),n(),B(()=>Z(`whenApplies`,n()))),()=>(V(Z),n(),B(()=>Z(`whereConfigured`,n()))),()=>(V(Z),n(),B(()=>Z(`howToChoose`,n()))),()=>(V(Z),n(),B(()=>Z(`whyRecommendation`,n()))),()=>(V(Z),n(),B(()=>Z(`example`,n()))),()=>(V(Z),n(),B(()=>Z(`effect`,n()))),()=>(V(Z),n(),B(()=>Z(`verify`,n())))]),U(e,t)};G(u,e=>{a()&&e(d)}),U(e,s),k(),i()}var Ro=H(`· `,1),zo=H(`

                                                                    `,1);function Bo(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=X(t,`candidate`,8);ji();var o=zo(),s=F(o),c=P(s),l=I(c),u=L(c,2),d=e=>{var t=Ro(),r=L(F(t)),i=I(r,!0);R((e,t)=>{J(r,`href`,e),W(i,t)},[()=>(V(Ga),V(a()),B(()=>Ga(a().runUrl))),()=>(V(Z),n(),B(()=>Z(`ciRun`,n())))]),U(e,t)},f=gt(()=>(V(Ga),V(a()),B(()=>Ga(a().runUrl))));G(u,e=>{z(f)&&e(d)}),D(s);var p=L(s,2),m=P(p),h=I(m),g=L(m),_=L(g),v=e=>{var t=Ro(),r=L(F(t)),i=I(r,!0);R((e,t)=>{J(r,`href`,e),W(i,t)},[()=>(V(Ka),V(a()),B(()=>Ka(a().requiredByRuleset?.sourceUrl))),()=>(V(Z),n(),B(()=>Z(`ciRule`,n())))]),U(e,t)},y=gt(()=>(V(Ka),V(a()),B(()=>Ka(a().requiredByRuleset?.sourceUrl))));G(_,e=>{z(y)&&e(v)}),D(p),R((e,t,n,r)=>{W(l,`${V(a()),B(()=>a().workflowName)??``} · GitHub App ${V(a()),B(()=>a().sourceAppId)??``}`),W(h,`${e??``} · ${t??``} · ${n??``}`),W(g,` · ${r??``} `)},[()=>(V(yo),V(a()),n(),B(()=>yo(a().conclusion,n()))),()=>(V(a()),B(()=>a().headSha.slice(0,7))),()=>(V(a()),V(Z),n(),B(()=>a().observedAt??Z(`observationTimeUnknown`,n()))),()=>(V(a()),V(Z),n(),B(()=>a().requiredByRuleset?Z(`branchRequirementObserved`,n(),{branch:a().requiredByRuleset.branch}):Z(`branchRequirementUnknown`,n())))]),U(e,o),k(),i()}var Vo=H(`

                                                                    `);function Ho(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=X(t,`question`,8);ji();var o=Pr(),s=F(o),c=e=>{var t=Vo(),r=I(t,!0);R(e=>W(r,e),[()=>(V(Z),n(),B(()=>Z(`fixedIssuesRequired`,n())))]),U(e,t)},l=e=>{var t=Pr();q(F(t),1,()=>(V(a()),B(()=>Object.entries(a().fixedWorkflowFeatures).filter(([,e])=>e!==void 0))),K,(e,t)=>{var r=gt(()=>b(z(t),2));let i=()=>z(r)[0],a=()=>z(r)[1];var o=Vo(),s=I(o,!0);R(e=>W(s,e),[()=>(V(Z),a(),n(),i(),B(()=>Z(a()?`fixedWorkflowEnabled`:`fixedWorkflowDisabled`,n(),{kind:i()})))]),U(e,o)}),U(e,t)};G(s,e=>{V(a()),B(()=>a().id===`features.issues`&&(a().fixedWorkflowFeatures?.release||a().fixedWorkflowFeatures?.hotfix))?e(c):(V(a()),B(()=>a().fixedWorkflowFeatures)&&e(l,1))}),U(e,o),k(),i()}var Uo=H(` `),Wo=H(`

                                                                    `),Go=H(`

                                                                    `),Ko=H(` `,1),qo=H(`

                                                                    `),Jo=H(`
                                                                    `),Yo=H(`

                                                                    `),Xo=H(``),Zo=H(`
                                                                  • `),Qo=H(`
                                                                      `),$o=H(`
                                                                      `),es=H(``),ts=H(``),ns=H(` `,1),rs=H(``),is=H(`
                                                                      `),as=H(``),os=H(``),ss=H(`

                                                                      `,1);function cs(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=M(),o=M(),s=M(),c=X(t,`prompt`,8),l=X(t,`controller`,8),u=X(t,`busy`,8),d=X(t,`onSubmit`,8),f=X(t,`onRetryDiscovery`,8),p=X(t,`onBack`,8),m=co(c()),h=M(m.value),g=M(m.selected);Tn(()=>(V(c()),n()),()=>{N(a,c().presentation?.[n()])}),Tn(()=>z(a),()=>{N(o,po(z(a)?.documentation?.url))}),Tn(()=>(V(c()),n()),()=>{N(s,ja(c().question,n()))}),En(),ji();var _=ss(),v=F(_),y=P(v),b=I(y,!0),x=L(y),S=e=>{var t=Uo(),r=I(t,!0);R(e=>W(r,e),[()=>(V(Z),n(),B(()=>Z(`permissionPreview`,n())))]),U(e,t)};G(x,e=>{V(c()),B(()=>c().phase===`permission-intent`)&&e(S)}),D(v);var C=L(v,2),w=e=>{var t=Wo(),r=I(t,!0);R(e=>W(r,e),[()=>(V(Z),n(),V(c()),B(()=>Z(`questionProgress`,n(),{current:String(c().progress.groupPosition),total:String(c().progress.groupTotal),overall:String(c().progress.position),all:String(c().progress.total)})))]),U(e,t)};G(C,e=>{V(c()),B(()=>c().progress)&&e(w)});var ee=L(C,2),te=e=>{var t=Go(),n=I(t,!0);R(()=>W(n,(z(a),B(()=>z(a).summary)))),U(e,t)};G(ee,e=>{z(a)&&e(te)});var ne=L(ee,2),re=e=>{_o(e,{kind:`checks`,get status(){return V(c()),B(()=>c().question.discoveryStatus)},get truncated(){return V(c()),B(()=>c().question.discoveryTruncated)}})};G(ne,e=>{V(c()),B(()=>c().question.id===`pullRequestApproval.testChecks`)&&e(re)});var ie=L(ne,2),ae=e=>{_o(e,{kind:`projects`,get status(){return V(c()),B(()=>c().question.discoveryStatus)},get truncated(){return V(c()),B(()=>c().question.discoveryTruncated)}})};G(ie,e=>{V(c()),B(()=>c().question.id===`projects.ids`)&&e(ae)});var oe=L(ie,2),se=e=>{var t=Jo(),r=P(t),i=e=>{var t=Ko(),r=F(t),i=I(r,!0),a=I(L(r,2),!0);R((e,t)=>{r.disabled=!l()||u(),W(i,e),W(a,t)},[()=>(V(Z),n(),B(()=>Z(`retryDiscovery`,n()))),()=>(V(Z),n(),V(c()),B(()=>Z(`retryRemaining`,n(),{count:String(c().question.discoveryRetryRemaining)})))]),wr(`click`,r,function(...e){f()?.apply(this,e)}),U(e,t)},a=e=>{var t=qo(),r=I(t,!0);R(e=>W(r,e),[()=>(V(Z),n(),B(()=>Z(`retryExhausted`,n())))]),U(e,t)};G(r,e=>{V(c()),B(()=>c().question.discoveryRetryRemaining>0)?e(i):e(a,-1)}),D(t),U(e,t)};G(oe,e=>{V(c()),B(()=>c().question.discoveryRetryRemaining!==void 0)&&e(se)});var ce=L(oe,2),le=e=>{var t=Yo(),r=I(t,!0);R(e=>W(r,e),[()=>(V(Z),n(),B(()=>Z(`projectStatusUnavailable`,n())))]),U(e,t)};G(ce,e=>{V(c()),B(()=>c().question.statusOptionState===`unavailable`)&&e(le)});var ue=L(ce,2),de=e=>{var t=Xo(),r=I(t,!0);R(e=>W(r,e),[()=>(V(Z),n(),B(()=>Z(`projectStatusIncompatible`,n())))]),U(e,t)};G(ue,e=>{V(c()),B(()=>c().question.statusOptionState===`incompatible`)&&e(de)});var fe=L(ue,2),pe=e=>{var t=qo(),r=I(t,!0);R(e=>W(r,e),[()=>(V(Z),n(),B(()=>Z(`projectSharedStatus`,n())))]),U(e,t)};G(fe,e=>{V(c()),B(()=>c().question.id===`projects.ids`)&&e(pe)});var me=L(fe,2);Ho(me,{get question(){return V(c()),B(()=>c().question)}});var he=L(me,2),ge=e=>{var t=Qo();q(t,5,()=>(V(c()),B(()=>c().question.projectStatusValues)),K,(e,t)=>{var r=Zo(),i=P(r),a=L(i),o=I(P(a),!0);D(a),D(r),R(e=>{W(i,`${e??``}: `),W(o,(z(t),B(()=>z(t).value)))},[()=>(V(Z),V(fo),z(t),n(),B(()=>Z(fo[z(t).transition],n())))]),U(e,r)}),D(t),U(e,t)};G(he,e=>{V(c()),B(()=>c().question.projectStatusValues)&&e(ge)});var _e=L(he,2),ve=e=>{var t=$o(),r=P(t);let i;var o=I(r,!0),s=L(r);let u;var d=I(s,!0);D(t),R((e,n)=>{J(t,`aria-label`,(z(a),V(c()),B(()=>z(a)?.label??c().question.label))),J(r,`aria-pressed`,z(h)===`yes`||z(h)===`true`),r.disabled=!l(),i=ui(r,1,``,null,i,{selected:z(h)===`yes`||z(h)===`true`}),W(o,e),J(s,`aria-pressed`,z(h)===`no`||z(h)===`false`),s.disabled=!l(),u=ui(s,1,``,null,u,{selected:z(h)===`no`||z(h)===`false`}),W(d,n)},[()=>(V(Z),n(),B(()=>Z(`yes`,n()))),()=>(V(Z),n(),B(()=>Z(`no`,n())))]),wr(`click`,r,()=>N(h,`yes`)),wr(`click`,s,()=>N(h,`no`)),U(e,t)},ye=e=>{var t=ns(),r=F(t),i=P(r),o=e=>{var t=es(),r=I(t,!0);t.value=t.__value=``,R(e=>W(r,e),[()=>(V(Z),n(),B(()=>Z(`selectOne`,n())))]),U(e,t)};G(i,e=>{V(c()),B(()=>!c().question.defaultValue)&&e(o)}),q(L(i),1,()=>(V(c()),B(()=>c().question.choices??[])),K,(e,t)=>{let r=A(()=>(V(c()),z(t),B(()=>c().question.id===`pullRequestApproval.coverage.checkName`?c().question.trustedProducers?.find(e=>e.name===z(t)):void 0)));var i=ts(),a=I(i,!0),o={};R(e=>{W(a,e),o!==(o=z(t))&&(i.value=(i.__value=o)??``)},[()=>(V(z(r)),z(t),V(Aa),V(c()),n(),B(()=>z(r)?`${z(t)} — ${z(r).workflowName} · App ${z(r).sourceAppId}`:Aa(c().question.id,z(t),n())))]),U(e,i)}),D(r),mi(r);var s=L(r,2),u=e=>{var t=Pr();q(F(t),1,()=>(V(c()),z(h),B(()=>(c().question.producerCandidates??[]).filter(e=>e.name===z(h)))),K,(e,t)=>{Bo(e,{get candidate(){return z(t)}})}),U(e,t)};G(s,e=>{V(c()),B(()=>c().question.id===`pullRequestApproval.coverage.checkName`)&&e(u)}),R(()=>{J(r,`aria-label`,(z(a),V(c()),B(()=>z(a)?.label??c().question.label))),r.disabled=!l()}),hi(r,()=>z(h),e=>N(h,e)),U(e,t)},be=e=>{{let t=A(()=>(V(c()),B(()=>c().question.producerCandidates??[])));Do(e,{get candidates(){return z(t)},get controller(){return l()},get selected(){return z(g)},set selected(e){N(g,e)},$$legacy:!0})}},xe=e=>{{let t=A(()=>(V(c()),B(()=>c().question.projectCandidates??[])));No(e,{get candidates(){return z(t)},get controller(){return l()},get selected(){return z(g)},set selected(e){N(g,e)},get value(){return z(h)},set value(e){N(h,e)},$$legacy:!0})}},Se=e=>{var t=is();q(t,5,()=>(V(c()),B(()=>c().question.kind===`multi-select`?c().question.choices??[]:c().question.allowedNames??[])),K,(e,t)=>{var r=rs(),i=P(r);xi(i);var a=I(L(i),!0);D(r),R((e,t)=>{Si(i,e),i.disabled=!l(),W(a,t)},[()=>(z(g),z(t),B(()=>z(g).includes(z(t)))),()=>(V(c()),V(Aa),z(t),n(),B(()=>c().question.kind===`multi-select`?Aa(c().question.id,z(t),n()):z(t)))]),wr(`change`,i,()=>N(g,lo(z(g),z(t)))),U(e,r)}),D(t),R(()=>J(t,`aria-label`,(z(a),V(c()),B(()=>z(a)?.label??c().question.label)))),U(e,t)},Ce=e=>{var t=Pr(),n=F(t),r=e=>{var t=as();it(t),R(()=>{J(t,`aria-label`,(z(a),V(c()),B(()=>z(a)?.label??c().question.label))),t.disabled=!l()}),Ei(t,()=>z(h),e=>N(h,e)),U(e,t)},i=e=>{var t=os();xi(t),R(()=>{J(t,`aria-label`,(z(a),V(c()),B(()=>z(a)?.label??c().question.label))),J(t,`type`,(V(c()),B(()=>c().question.kind===`number`?`number`:`text`))),J(t,`min`,(V(c()),B(()=>c().question.kind===`number`?0:void 0))),t.disabled=!l()}),Ei(t,()=>z(h),e=>N(h,e)),U(e,t)};G(n,e=>{V(c()),B(()=>c().question.id===`ai.bugbotOrganizationRules`)?e(r):e(i,-1)}),U(e,t)};G(_e,e=>{V(c()),B(()=>c().question.kind===`boolean`)?e(ve):(V(c()),B(()=>c().question.kind===`choice`)?e(ye,1):(V(c()),B(()=>c().question.kind===`producer-select`)?e(be,2):(V(c()),B(()=>c().question.kind===`project-select`)?e(xe,3):(V(c()),B(()=>c().question.kind===`multi-select`||c().question.kind===`scope-overrides`)?e(Se,4):e(Ce,-1)))))});var we=L(_e,2),T=I(we,!0),Te=L(we,2),E=e=>{var t=Wo(),r=I(t,!0);R(e=>W(r,e),[()=>(V(Z),V(c()),n(),B(()=>Z(c().question.suggestionSource===`github`?`sourceGithub`:c().question.suggestionSource===`local`?`sourceLocal`:c().question.suggestionSource===`configuration`?`sourceConfig`:`sourceDefault`,n())))]),U(e,t)};G(Te,e=>{V(c()),B(()=>c().question.suggestionSource)&&e(E)});var Ee=L(Te,2);so(Ee,{get question(){return V(c()),B(()=>c().question)}});var De=L(Ee,2);Lo(De,{get explanation(){return z(a)},get helpUrl(){return z(o)}});var Oe=L(De,2),ke=P(Oe),Ae=e=>{{let t=A(()=>(V(Z),n(),B(()=>Z(`previousQuestion`,n())))),r=A(()=>!l()||u());Xa(e,{get label(){return z(t)},variant:`secondary`,get onClick(){return p()},get disabled(){return z(r)}})}};G(ke,e=>{V(c()),B(()=>c().canGoBack)&&e(Ae)});var je=L(ke,2);{let e=A(()=>(V(Z),n(),B(()=>Z(`continue`,n())))),t=A(()=>!l()||u());Xa(je,{get label(){return z(e)},arrow:!0,onClick:()=>d()(uo(c(),z(h),z(g))),get disabled(){return z(t)}})}D(Oe),R((e,t)=>{W(b,e),W(T,t)},[()=>(z(a),V(c()),B(()=>z(a)?.label??c().question.label.replace(` (Space toggles, Enter confirms)`,``))),()=>(V(Z),n(),z(s),B(()=>Z(`suggested`,n(),{answer:z(s)})))]),U(e,_),k(),i()}Tr([`click`,`change`]);var ls=H(` `),us=H(``),ds=H(`
                                                                      `,1);function fs(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=M(),o=X(t,`prompt`,8),s=X(t,`controller`,8),c=X(t,`busy`,8),l=X(t,`onSubmit`,8);Tn(()=>(V(o()),Wa),()=>{N(a,o().copyId===`botPat.scopeConflict`||o().copyId===`botPat.scopeConflictUnavailable`?Wa(o().copyValues?.repository):void 0)}),En(),ji();var u=ds(),d=F(u),f=e=>{var t=ls(),r=P(t);Oe(),D(t),R(e=>{J(t,`href`,z(a)),W(r,`${e??``} `)},[()=>(V(Z),n(),B(()=>Z(`repositorySecretSettings`,n())))]),U(e,t)};G(d,e=>{z(a)&&e(f)});var p=L(d,2);q(p,5,()=>(V(o()),B(()=>o().choices)),K,(e,t,r)=>{var i=us(),a=I(P(i),!0);Oe(),D(i),R(e=>{i.disabled=!s()||c(),W(a,e)},[()=>(V(La),V(o()),n(),B(()=>La(o(),n(),r)))]),wr(`click`,i,()=>l()(z(t))),U(e,i)}),D(p),U(e,u),k(),i()}Tr([`click`]);var ps=H(`

                                                                      `),ms=H(`

                                                                      `,1),hs=H(``);function gs(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=X(t,`storage`,8);ji();var o=hs(),s=P(o),c=I(s,!0),l=L(s,2),u=I(l,!0),d=L(l,2),f=e=>{var t=ms(),r=F(t),i=I(r,!0),o=L(r,2),s=e=>{var t=ps(),r=I(t,!0);R(e=>W(r,e),[()=>(V(Z),n(),B(()=>Z(`patOrganizationImpact`,n())))]),U(e,t)};G(o,e=>{V(a()),B(()=>a().scope===`organization`&&a().replacesExisting)&&e(s)}),R(e=>W(i,e),[()=>(V(Z),n(),B(()=>Z(`patReplacementChecks`,n())))]),U(e,t)};G(d,e=>{V(a()),B(()=>a().operation!==`retain`)&&e(f)}),D(o),R((e,t)=>{W(c,e),W(u,t)},[()=>(V(Z),n(),B(()=>Z(`patStorageTitle`,n()))),()=>(V(Z),V(a()),n(),B(()=>Z(a().operation===`retain`?`patStorageRetain`:a().replacesExisting?a().scope===`repository`?`patRepositoryReplace`:`patOrganizationReplace`:a().scope===`repository`?`patRepositoryCreate`:`patOrganizationCreate`,n(),{destination:a().destination})))]),U(e,o),k(),i()}var _s=H(``),vs=H(`

                                                                      `,1),ys=H(`

                                                                      `),bs=H(`
                                                                      `,1);function xs(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=M(),o=M(),s=M(),c=M(),l=X(t,`prompt`,8),u=X(t,`controller`,8),d=X(t,`busy`,8),f=X(t,`onSubmit`,8),p=M(``);function m(){let e=z(p);l().kind===`secret`&&N(p,``),f()(e)}Tn(()=>V(l()),()=>{N(a,Ua(l().link))}),Tn(()=>V(l()),()=>{N(o,l().copyId===`botPat.entry.guided`?l().copyValues?.account:void 0)}),Tn(()=>V(l()),()=>{N(s,l().copyId===`botPat.entry.guided`||l().copyId===`botPat.entry.manual`)}),Tn(()=>(z(s),V(l())),()=>{N(c,z(s)?l().copyValues?.storageScope:void 0)}),En(),ji();var h=bs(),g=F(h),_=e=>{var t=vs(),r=F(t),i=e=>{var t=_s(),r=P(t),i=I(r,!0),a=I(L(r,2),!0);D(t),R((e,t)=>{W(i,e),W(a,t)},[()=>(V(Z),n(),z(o),B(()=>Z(`botAccountWarning`,n(),{account:z(o)}))),()=>(V(Z),n(),B(()=>Z(`botAccountHelp`,n())))]),U(e,t)};G(r,e=>{z(o)&&e(i)});var s=L(r,2),c=P(s);Oe(),D(s);var l=I(L(s,2),!0);R((e,t)=>{J(s,`href`,z(a)),J(s,`aria-describedby`,z(o)?`bot-account-warning`:void 0),W(c,`${e??``} `),W(l,t)},[()=>(z(o),V(Z),n(),B(()=>z(o)?Z(`botGithubForm`,n(),{account:z(o)}):Z(`githubForm`,n()))),()=>(V(Z),n(),B(()=>Z(`githubFormHelp`,n())))]),U(e,t)};G(g,e=>{z(a)&&e(_)});var v=L(g,2),y=e=>{{let t=A(()=>(z(c),V(l()),B(()=>({scope:z(c),destination:l().copyValues.storageDestination,replacesExisting:l().copyValues.storageReplacesExisting===`true`}))));gs(e,{get storage(){return z(t)}})}};G(v,e=>{z(c),V(l()),B(()=>(z(c)===`repository`||z(c)===`organization`)&&l().copyValues?.storageDestination)&&e(y)});var b=L(v,2),x=I(b,!0),S=L(b,2);xi(S);var C=L(S,2),w=e=>{var t=ys(),r=I(t,!0);R(e=>W(r,e),[()=>(V(Z),n(),B(()=>Z(`secretHelp`,n())))]),U(e,t)};G(C,e=>{V(l()),B(()=>l().kind===`secret`)&&e(w)});var ee=L(C,2),te=P(ee);{let e=A(()=>(V(Z),n(),B(()=>Z(`continue`,n())))),t=A(()=>(V(u()),V(d()),V(l()),z(p),B(()=>!u()||d()||!l().optional&&!z(p).trim())));Xa(te,{get label(){return z(e)},arrow:!0,onClick:m,get disabled(){return z(t)}})}D(ee),R((e,t)=>{W(x,e),J(S,`type`,(V(l()),B(()=>l().kind===`secret`?`password`:`text`))),S.disabled=!u(),J(S,`placeholder`,t)},[()=>(V(Z),V(l()),n(),B(()=>Z(l().kind===`secret`?`pasteHere`:`yourAnswer`,n()))),()=>(V(Z),V(l()),n(),B(()=>Z(l().kind===`secret`?`hiddenAfter`:`typeAnswer`,n())))]),Ei(S,()=>z(p),e=>N(p,e)),U(e,h),k(),i()}var Ss={"No issue workflow kind is enabled; issue events will remain unmanaged until a supported Issue Form and profile entry are enabled.":`No issue workflow kind is enabled; issue events will remain unmanaged until a supported Issue Form and profile entry are enabled.`,"Help / question issues remain branchless even when issue-managed-branches is enabled.":`Help / question issues remain branchless even when issue-managed-branches is enabled.`,"Release automation is installed, but release issue events are disabled by the selected issue workflow profile.":`Release automation is installed, but release issue events are disabled by the selected issue workflow profile.`,"Hotfix automation is installed, but hotfix issue events are disabled by the selected issue workflow profile.":`Hotfix automation is installed, but hotfix issue events are disabled by the selected issue workflow profile.`,"Repository agent guidance generation is disabled; collaborators will not receive the generated profile or workflow skill.":`Repository agent guidance generation is disabled; collaborators will not receive the generated profile or workflow skill.`,"Release and hotfix workflows require the workflow PAT Secret and a writable token.":`Release and hotfix workflows require the workflow PAT Secret and a writable token.`,"Merge queue mode fails closed unless every required producer is verified automatically or covered by an exact reviewed attestation.":`Merge queue mode fails closed unless every required producer is verified automatically or covered by an exact reviewed attestation.`,"Inactive issue closure is enabled; waiting issues are closed after the configured inactivity threshold and can be reopened with a new comment.":`Inactive issue closure is enabled; waiting issues are closed after the configured inactivity threshold and can be reopened with a new comment.`,"Selected Project numbers must be accessible to the bot PAT, and all four configured Status values must exist in every selected Project.":`Selected Project numbers must be accessible to the bot PAT, and all four configured Status values must exist in every selected Project.`,"Cursor is an experimental runtime in Copilot and requires a compatible CLI plus CURSOR_API_KEY; the Action installs the official CLI when the default executable is absent.":`Cursor is an experimental runtime in Copilot and requires a compatible CLI plus CURSOR_API_KEY; the Action installs the official CLI when the default executable is absent.`,"Organization-level Secrets and Variables require organization permissions; selected access is the safest default and repository values take precedence.":`Organization-level Secrets and Variables require organization permissions; selected access is the safest default and repository values take precedence.`},Cs={en:Ss,es:{"No issue workflow kind is enabled; issue events will remain unmanaged until a supported Issue Form and profile entry are enabled.":`No has activado ningún tipo de flujo de incidencias. Sus eventos no se gestionarán hasta que actives un formulario de incidencia y su entrada en el perfil.`,"Help / question issues remain branchless even when issue-managed-branches is enabled.":`Las incidencias de ayuda y consulta no crean ramas, aunque actives las ramas gestionadas por incidencias.`,"Release automation is installed, but release issue events are disabled by the selected issue workflow profile.":`La automatización de versiones ya está instalada, pero el perfil elegido desactiva los eventos de incidencias de versiones.`,"Hotfix automation is installed, but hotfix issue events are disabled by the selected issue workflow profile.":`La automatización de correcciones urgentes ya está instalada, pero el perfil elegido desactiva los eventos de sus incidencias.`,"Repository agent guidance generation is disabled; collaborators will not receive the generated profile or workflow skill.":`Has desactivado la generación de instrucciones para agentes del repositorio. Los colaboradores no recibirán el perfil ni la guía del flujo de trabajo generados.`,"Release and hotfix workflows require the workflow PAT Secret and a writable token.":`Los flujos de versiones y correcciones urgentes requieren el Secret con el PAT de la Action y un token con permisos de escritura.`,"Merge queue mode fails closed unless every required producer is verified automatically or covered by an exact reviewed attestation.":`La cola de merge bloqueará la operación si cada productor obligatorio no se verifica automáticamente o no dispone de una certificación exacta revisada.`,"Inactive issue closure is enabled; waiting issues are closed after the configured inactivity threshold and can be reopened with a new comment.":`Está activado el cierre de incidencias inactivas. Las que estén en espera se cerrarán tras el plazo configurado y podrán reabrirse con un comentario.`,"Selected Project numbers must be accessible to the bot PAT, and all four configured Status values must exist in every selected Project.":`El PAT del bot debe tener acceso a los Projects seleccionados, y los cuatro valores de Status configurados deben existir en cada uno de ellos.`,"Cursor is an experimental runtime in Copilot and requires a compatible CLI plus CURSOR_API_KEY; the Action installs the official CLI when the default executable is absent.":`Cursor es un entorno experimental en Copilot y requiere un CLI compatible y CURSOR_API_KEY; la Action instala el CLI oficial si falta el ejecutable predeterminado.`,"Organization-level Secrets and Variables require organization permissions; selected access is the safest default and repository values take precedence.":`Los Secrets y Variables de organización requieren permisos en ella. Limitar el acceso a los repositorios elegidos es la opción más segura; los valores del repositorio tienen prioridad.`},fr:{"No issue workflow kind is enabled; issue events will remain unmanaged until a supported Issue Form and profile entry are enabled.":`Aucun type de flux de travail pour les tickets n’est activé. Leurs événements ne seront pas gérés tant qu’un formulaire de ticket pris en charge et son entrée de profil ne seront pas activés.`,"Help / question issues remain branchless even when issue-managed-branches is enabled.":`Les tickets d’aide ou de question ne créent pas de branche, même lorsque les branches gérées par les tickets sont activées.`,"Release automation is installed, but release issue events are disabled by the selected issue workflow profile.":`L’automatisation des versions est déjà installée, mais le profil choisi désactive les événements des tickets de version.`,"Hotfix automation is installed, but hotfix issue events are disabled by the selected issue workflow profile.":`L’automatisation des correctifs urgents est déjà installée, mais le profil choisi désactive les événements des tickets correspondants.`,"Repository agent guidance generation is disabled; collaborators will not receive the generated profile or workflow skill.":`La génération des consignes pour les agents du dépôt est désactivée. Les collaborateurs ne recevront ni le profil ni le guide de flux de travail générés.`,"Release and hotfix workflows require the workflow PAT Secret and a writable token.":`Les flux de version et de correctif urgent nécessitent le Secret contenant le PAT de l’Action et un jeton autorisé à écrire.`,"Merge queue mode fails closed unless every required producer is verified automatically or covered by an exact reviewed attestation.":`La file de fusion bloque l’opération si chaque producteur requis n’est pas vérifié automatiquement ou couvert par une attestation exacte et examinée.`,"Inactive issue closure is enabled; waiting issues are closed after the configured inactivity threshold and can be reopened with a new comment.":`La fermeture des tickets inactifs est activée. Les tickets en attente seront fermés après le délai configuré et pourront être rouverts par un nouveau commentaire.`,"Selected Project numbers must be accessible to the bot PAT, and all four configured Status values must exist in every selected Project.":`Le PAT du bot doit avoir accès aux Projects sélectionnés, et les quatre valeurs Status configurées doivent exister dans chacun de ces Projects.`,"Cursor is an experimental runtime in Copilot and requires a compatible CLI plus CURSOR_API_KEY; the Action installs the official CLI when the default executable is absent.":`Cursor est un environnement expérimental dans Copilot et nécessite un CLI compatible ainsi que CURSOR_API_KEY ; l’Action installe le CLI officiel si l’exécutable par défaut est absent.`,"Organization-level Secrets and Variables require organization permissions; selected access is the safest default and repository values take precedence.":`Les Secrets et Variables d’organisation nécessitent des droits sur celle-ci. Limiter l’accès aux dépôts sélectionnés est le choix le plus sûr ; les valeurs du dépôt prévalent.`},pt:{"No issue workflow kind is enabled; issue events will remain unmanaged until a supported Issue Form and profile entry are enabled.":`Não está ativo nenhum tipo de fluxo de trabalho para issues. Os respetivos eventos não serão geridos até ativar um formulário de issue suportado e a entrada correspondente no perfil.`,"Help / question issues remain branchless even when issue-managed-branches is enabled.":`As issues de ajuda ou perguntas não criam ramos, mesmo com os ramos geridos por issues ativados.`,"Release automation is installed, but release issue events are disabled by the selected issue workflow profile.":`A automação de versões já está instalada, mas o perfil escolhido desativa os eventos das issues de versão.`,"Hotfix automation is installed, but hotfix issue events are disabled by the selected issue workflow profile.":`A automação de correções urgentes já está instalada, mas o perfil escolhido desativa os eventos das respetivas issues.`,"Repository agent guidance generation is disabled; collaborators will not receive the generated profile or workflow skill.":`A criação de orientações para agentes do repositório está desativada. Os colaboradores não receberão o perfil nem o guia do fluxo de trabalho gerados.`,"Release and hotfix workflows require the workflow PAT Secret and a writable token.":`Os fluxos de versão e correção urgente exigem o Secret com o PAT da Action e um token com permissão de escrita.`,"Merge queue mode fails closed unless every required producer is verified automatically or covered by an exact reviewed attestation.":`A fila de integração bloqueia a operação se cada produtor obrigatório não for verificado automaticamente ou coberto por uma declaração exata e revista.`,"Inactive issue closure is enabled; waiting issues are closed after the configured inactivity threshold and can be reopened with a new comment.":`O fecho de issues inativas está ativado. As que aguardam resposta serão fechadas após o prazo configurado e poderão ser reabertas com um novo comentário.`,"Selected Project numbers must be accessible to the bot PAT, and all four configured Status values must exist in every selected Project.":`O PAT do bot tem de ter acesso aos Projects selecionados, e os quatro valores de Status configurados têm de existir em cada Project.`,"Cursor is an experimental runtime in Copilot and requires a compatible CLI plus CURSOR_API_KEY; the Action installs the official CLI when the default executable is absent.":`O Cursor é um ambiente experimental no Copilot e requer um CLI compatível e CURSOR_API_KEY; a Action instala o CLI oficial se o executável padrão não estiver disponível.`,"Organization-level Secrets and Variables require organization permissions; selected access is the safest default and repository values take precedence.":`Os Secrets e Variables da organização exigem permissões nessa organização. Restringir o acesso aos repositórios selecionados é a opção mais segura; os valores do repositório prevalecem.`}};function ws(e,t){let n=Cs[t]??Ss;return Object.prototype.hasOwnProperty.call(n,e)?n[e]:t===`en`?e:Z(`planUnknownWarning`,t)}var Ts={en:{issues:`Issues`,pullRequests:`Pull requests`,commits:`Commits`,issueComments:`Issue comments`,pullRequestComments:`Pull-request comments`,release:`Releases`,hotfix:`Hotfixes`,agentProvisioning:`Agent provisioning`,credentialHealth:`Credential health`,inactiveIssueClosure:`Inactive issue closure`,issueTemplates:`Issue templates`,pullRequestTemplate:`Pull-request template`},es:{issues:`Issues`,pullRequests:`Pull requests`,commits:`Commits`,issueComments:`Comentarios en issues`,pullRequestComments:`Comentarios en pull requests`,release:`Releases`,hotfix:`Correcciones urgentes`,agentProvisioning:`Instalación de agentes`,credentialHealth:`Estado de credenciales`,inactiveIssueClosure:`Cierre de issues inactivos`,issueTemplates:`Plantillas de issues`,pullRequestTemplate:`Plantilla de pull requests`},fr:{issues:`Tickets`,pullRequests:`Pull requests`,commits:`Commits`,issueComments:`Commentaires des tickets`,pullRequestComments:`Commentaires des pull requests`,release:`Versions`,hotfix:`Correctifs urgents`,agentProvisioning:`Installation des agents`,credentialHealth:`État des identifiants`,inactiveIssueClosure:`Fermeture des tickets inactifs`,issueTemplates:`Modèles de tickets`,pullRequestTemplate:`Modèle de pull request`},pt:{issues:`Questões`,pullRequests:`Pull requests`,commits:`Commits`,issueComments:`Comentários nas questões`,pullRequestComments:`Comentários nas pull requests`,release:`Versões`,hotfix:`Correções urgentes`,agentProvisioning:`Instalação de agentes`,credentialHealth:`Estado das credenciais`,inactiveIssueClosure:`Fecho de questões inativas`,issueTemplates:`Modelos de questões`,pullRequestTemplate:`Modelo de pull request`}};function Es(e,t){return Ts[t][e]??e}var Ds={en:{planner:`Planner`,findings:`Findings analyst`,reviewer:`Reviewer`,fixer:`Fixer`,tester:`Tester`},es:{planner:`Planificador`,findings:`Analista de hallazgos`,reviewer:`Revisor`,fixer:`Corrector`,tester:`Probador`},fr:{planner:`Planificateur`,findings:`Analyste des problèmes`,reviewer:`Réviseur`,fixer:`Correcteur`,tester:`Testeur`},pt:{planner:`Planeador`,findings:`Analista de problemas`,reviewer:`Revisor`,fixer:`Corretor`,tester:`Testador`}};function Os(e,t){return Ds[t][e]??e}var ks=H(`
                                                                    • `),As=H(`
                                                                    • `),js=H(`
                                                                        `),Ms=H(`· `,1),Ns=H(`
                                                                        `,1),Ps=H(`
                                                                        `,1),Fs=H(`
                                                                          `),Is=H(`

                                                                            /

                                                                            `);function Ls(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=X(t,`decisions`,8);function o(e){return Z(e===`repository`?`scopeRepository`:e===`organization`?`scopeOrganization`:`scopeDisabled`,n())}function s(e){return Z(e===`guarded`?`approvalGuarded`:e===`recommend`?`approvalRecommend`:`approvalOff`,n())}ji();var c=Is(),l=P(c),u=I(l,!0),d=L(l,2),f=P(d),p=P(f),m=I(p,!0),h=I(L(p),!0);D(f);var g=L(f,2),_=P(g),v=I(_,!0),y=I(L(_),!0);D(g);var b=L(g,2),x=P(b),S=I(x,!0),C=L(x),w=P(C);q(w,5,()=>(V(a()),B(()=>a().agentRouting)),K,(e,t)=>{var r=ks(),i=P(r),a=I(L(i));D(r),R(e=>{W(i,`${e??``}: `),W(a,`${z(t),B(()=>z(t).provider)??``} · ${z(t),B(()=>z(t).modelProvider)??``}/${z(t),B(()=>z(t).model)??``}`)},[()=>(V(Os),z(t),n(),B(()=>Os(z(t).role,n())))]),U(e,r)}),D(w),D(C),D(b);var ee=L(b,2),te=P(ee),ne=I(te,!0),re=L(te),ie=P(re),ae=I(ie,!0),oe=I(L(ie,2),!0);D(re),D(ee);var se=L(ee,2),ce=P(se),le=I(ce,!0),ue=I(L(ce),!0);D(se);var de=L(se,2),fe=e=>{var t=Ps(),r=F(t),i=P(r),o=I(i,!0),s=L(i),c=P(s),l=e=>{var t=js();q(t,5,()=>(V(a()),B(()=>a().trustedChecks)),K,(e,t)=>{var r=As(),i=P(r),a=I(i,!0),o=L(i),s=I(L(o),!0);D(r),R(e=>{W(a,(z(t),B(()=>z(t).name))),W(o,` · ${e??``} ${z(t),B(()=>z(t).sourceAppId)??``} · `),W(s,(z(t),B(()=>z(t).workflowName)))},[()=>(V(Z),n(),B(()=>Z(`producerAppId`,n())))]),U(e,r)}),D(t),U(e,t)},u=e=>{var t=Nr();R(e=>W(t,e),[()=>(V(Z),n(),B(()=>Z(`none`,n())))]),U(e,t)};G(c,e=>{V(a()),B(()=>a().trustedChecks.length)?e(l):e(u,-1)}),D(s),D(r);var d=L(r,2),f=P(d),p=I(f,!0),m=I(L(f),!0);D(d);var h=L(d,2),g=P(h),_=I(g,!0),v=L(g),y=P(v,!0),b=L(y),x=e=>{var t=Ms(),n=I(L(F(t)),!0);R(()=>W(n,(V(a()),B(()=>a().coverageCheck)))),U(e,t)};G(b,e=>{V(a()),B(()=>a().coverageCheck)&&e(x)}),D(v),D(h);var S=L(h,2),C=e=>{var t=Ns(),r=F(t),i=P(r),o=I(i,!0),s=I(L(i),!0);D(r);var c=L(r,2),l=P(c),u=I(l,!0),d=L(l),f=I(P(d),!0);D(d),D(c);var p=L(c,2),m=P(p),h=I(m,!0),g=I(L(m),!0);D(p),R((e,t,n,r,i,a)=>{W(o,e),W(s,t),W(u,n),W(f,r),W(h,i),W(g,a)},[()=>(V(Z),n(),B(()=>Z(`planCoverageThreshold`,n()))),()=>(V(a()),V(Z),n(),B(()=>a().coverageMinimum===void 0?Z(`none`,n()):`${a().coverageMinimum}%`)),()=>(V(Z),n(),B(()=>Z(`planCoverageReporter`,n()))),()=>(V(a()),V(Z),n(),B(()=>a().coverageArtifactWorkflow||Z(`none`,n()))),()=>(V(Z),n(),B(()=>Z(`planReporterAttested`,n()))),()=>(V(Z),V(a()),n(),B(()=>Z(a().coverageReporterAttested?`yes`:`no`,n())))]),U(e,t)};G(S,e=>{V(a()),B(()=>a().coverageMode===`numeric`)&&e(C)}),R((e,t,n,r,i)=>{W(o,e),W(p,t),W(m,n),W(_,r),W(y,i)},[()=>(V(Z),n(),B(()=>Z(`planTrustedChecks`,n()))),()=>(V(Z),n(),B(()=>Z(`planProducerAttested`,n()))),()=>(V(Z),V(a()),n(),B(()=>Z(a().producerAttested?`yes`:`no`,n()))),()=>(V(Z),n(),B(()=>Z(`planCoverage`,n()))),()=>(V(Aa),V(a()),n(),B(()=>Aa(`pullRequestApproval.coverage.mode`,a().coverageMode,n())))]),U(e,t)};G(de,e=>{V(a()),B(()=>a().approvalMode!==`off`)&&e(fe)});var pe=L(de,2),me=P(pe),he=I(me,!0),ge=I(L(me),!0);D(pe);var _e=L(pe,2),ve=e=>{var t=Fs(),r=P(t),i=I(r,!0),o=L(r),s=P(o);q(s,5,()=>(V(a()),B(()=>a().projectStatuses)),K,(e,t)=>{var r=ks(),i=P(r),a=I(L(i),!0);D(r),R(e=>{W(i,`${e??``}: `),W(a,(z(t),B(()=>z(t).value)))},[()=>(V(Z),V(fo),z(t),n(),B(()=>Z(fo[z(t).transition],n())))]),U(e,r)}),D(s),D(o),D(t),R(e=>W(i,e),[()=>(V(Z),n(),B(()=>Z(`planProjectStatuses`,n())))]),U(e,t)};G(_e,e=>{V(a()),B(()=>a().projectNumbers.length)&&e(ve)});var ye=L(_e,2),be=P(ye),xe=I(be,!0),Se=I(L(be),!0);D(ye);var Ce=L(ye,2),we=P(Ce),T=I(we,!0),Te=I(L(we),!0);D(Ce);var E=L(Ce,2),Ee=P(E),De=I(Ee,!0),Oe=I(L(Ee),!0);D(E);var ke=L(E,2),Ae=P(ke),je=I(Ae,!0),Me=I(L(Ae),!0);D(ke),D(d);var Ne=I(L(d,2),!0);D(c),R((e,t,n,r,i,o,s,c,l,d,f,p,g,_,b,x,C,w,ee,te)=>{W(u,e),W(m,t),W(h,n),W(v,r),W(y,i),W(S,o),W(ne,s),W(ae,(V(a()),B(()=>a().productionBranch))),W(oe,(V(a()),B(()=>a().developmentBranch))),W(le,c),W(ue,l),W(he,d),W(ge,f),W(xe,p),W(Se,g),W(T,_),W(Te,b),W(De,x),W(Oe,C),W(je,w),W(Me,ee),W(Ne,te)},[()=>(V(Z),n(),B(()=>Z(`planChoices`,n()))),()=>(V(Z),n(),B(()=>Z(`planEnabledCapabilities`,n()))),()=>(V(a()),V(Es),n(),V(Z),B(()=>a().enabledCapabilities.length?a().enabledCapabilities.map(e=>Es(e,n())).join(`, `):Z(`none`,n()))),()=>(V(Z),n(),B(()=>Z(`planIssueWorkflows`,n()))),()=>(V(a()),V(Aa),n(),V(Z),B(()=>a().issueWorkflows.length?a().issueWorkflows.map(e=>Aa(`issueWorkflows.enabled`,e,n())).join(`, `):Z(`none`,n()))),()=>(V(Z),n(),B(()=>Z(`planAgentRouting`,n()))),()=>(V(Z),n(),B(()=>Z(`planBranchRoles`,n()))),()=>(V(Z),n(),B(()=>Z(`planApprovalMode`,n()))),()=>(V(a()),B(()=>s(a().approvalMode))),()=>(V(Z),n(),B(()=>Z(`editProjects`,n()))),()=>(V(a()),V(Z),n(),B(()=>a().projectNumbers.length?a().projectNumbers.map(e=>`#${e}`).join(`, `):Z(`none`,n()))),()=>(V(Z),n(),B(()=>Z(`planVariableScope`,n()))),()=>(V(a()),B(()=>o(a().variableScope))),()=>(V(Z),n(),B(()=>Z(`planSecretScope`,n()))),()=>(V(a()),B(()=>o(a().secretScope))),()=>(V(Z),n(),B(()=>Z(`planIssueResources`,n()))),()=>(V(Z),n(),B(()=>Z(`planIssueResourcesValue`,n()))),()=>(V(Z),n(),B(()=>Z(`planInitialTag`,n()))),()=>(V(Z),V(a()),n(),B(()=>Z(a().initialTag?`yes`:`no`,n()))),()=>(V(Z),n(),B(()=>Z(`planAdvancedDefaults`,n())))]),U(e,c),k(),i()}var Rs=H(`
                                                                          • `),zs=H(`

                                                                              `,1),Bs=H(`
                                                                            • ·

                                                                            • `),Vs=H(`
                                                                            • `),Hs=H(`

                                                                               

                                                                               
                                                                              `),Us=H(`

                                                                                  `);function Ws(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=X(t,`review`,8);ji();var o=Us(),s=P(o),c=I(s,!0),l=L(s,2),u=I(l,!0),d=L(l,2),f=e=>{var t=zs(),r=F(t),i=I(r,!0),o=L(r),s=P(o),c=I(s,!0),l=L(s);q(l,5,()=>(V(a()),B(()=>a().blockers)),K,(e,t)=>{var n=Rs(),r=I(n,!0);R(()=>W(r,z(t))),U(e,n)}),D(l),D(o),R((e,t)=>{W(i,e),W(c,t)},[()=>(V($),n(),B(()=>$(`blockedAction`,n()))),()=>(V($),n(),B(()=>$(`blockers`,n())))]),U(e,t)};G(d,e=>{V(a()),B(()=>a().blockers.length)&&e(f)});var p=L(d,2);q(p,5,()=>(V(a()),B(()=>a().jobs)),K,(e,t)=>{var r=Bs(),i=P(r),a=I(i,!0),o=L(i,2),s=I(o,!0),c=L(o,2),l=e=>{var t=Nr();R(e=>W(t,`· ${e??``}`),[()=>(V($),n(),B(()=>$(`retained`,n())))]),U(e,t)};G(c,e=>{z(t),B(()=>z(t).retained)&&e(l)});var u=L(c,2),d=I(P(u));D(u);var f=I(L(u));D(r),R((e,n,r)=>{W(a,e),W(s,n),W(d,`${z(t),B(()=>z(t).file)??``} / ${z(t),B(()=>z(t).job)??``}`),W(f,`runs-on: ${r??``}`)},[()=>(V($),z(t),n(),B(()=>$(z(t).role,n()))),()=>(V($),z(t),n(),B(()=>$(z(t).status,n()))),()=>(z(t),B(()=>JSON.stringify(z(t).runsOn)))]),U(e,r)}),D(p);var m=L(p,2),h=P(m),g=I(h),_=L(h,2);q(_,5,()=>(V(a()),B(()=>a().assets)),K,(e,t)=>{var r=Vs(),i=P(r),a=I(i,!0),o=L(i),s=L(o),c=e=>{var t=Nr();R(e=>W(t,`· ${e??``}`),[()=>(V($),n(),B(()=>$(`disabled`,n())))]),U(e,t)};G(s,e=>{z(t),B(()=>!z(t).enabled)&&e(c)}),D(r),R(e=>{W(a,(z(t),B(()=>z(t).path))),W(o,`: ${e??``}`)},[()=>(V($),z(t),n(),B(()=>$(z(t).status,n())))]),U(e,r)}),D(_),D(m);var v=L(m,2),y=P(v),b=I(y),x=L(y,2),S=I(x,!0);q(L(x,2),1,()=>(V(a()),B(()=>a().changes)),K,(e,t)=>{var r=Hs(),i=P(r),a=I(P(i),!0);D(i);var o=L(i,2),s=I(o,!0),c=L(o),l=I(c,!0),u=L(c,2),d=I(u,!0),f=I(L(u),!0);D(r),R((e,n,r,i)=>{W(a,(z(t),B(()=>z(t).path))),W(s,e),W(l,n),W(d,r),W(f,i)},[()=>(V($),n(),B(()=>$(`before`,n()))),()=>(z(t),V($),n(),B(()=>z(t).before??$(`absent`,n()))),()=>(V($),n(),B(()=>$(`after`,n()))),()=>(z(t),V($),n(),B(()=>z(t).after??$(`absent`,n())))]),U(e,r)}),D(v),D(o),R((e,t,n,r,i)=>{W(c,e),W(u,t),W(g,`${n??``} (${V(a()),B(()=>a().assets.length)??``})`),W(b,`${r??``} (${V(a()),B(()=>a().changes.length)??``})`),W(S,i)},[()=>(V($),n(),B(()=>$(`title`,n()))),()=>(V($),n(),B(()=>$(`help`,n()))),()=>(V($),n(),B(()=>$(`assets`,n()))),()=>(V($),n(),B(()=>$(`changes`,n()))),()=>(V($),n(),B(()=>$(`redactionNotice`,n())))]),U(e,o),k(),i()}var Gs={"Self-hosted runners":`Self-hosted runners`,Metadata:`Metadata`,Contents:`Contents`,Secrets:`Secrets`,Variables:`Variables`,Issues:`Issues`,Actions:`Actions`,Checks:`Checks`,Administration:`Administration`,Workflows:`Workflows`,"Issue Types":`Issue Types`,Projects:`Projects`,"Pull requests":`Pull requests`,Members:`Members`},Ks={repository:`repository`,organization:`organization`,read:`Read`,write:`Write`,required:`Required`,conditional:`Conditional`,verified:`Verified`,available:`Read available`,missing:`Missing`,unverifiable:`Unverifiable`},qs={"Self-hosted runners":`Runners autohospedados`,Metadata:`Metadatos`,Contents:`Contenido`,Secrets:`Secretos`,Variables:`Variables`,Issues:`Incidencias`,Actions:`Acciones`,Checks:`Comprobaciones`,Administration:`Administración`,Workflows:`Flujos de trabajo`,"Issue Types":`Tipos de incidencia`,Projects:`Proyectos`,"Pull requests":`Solicitudes de cambio`,Members:`Miembros`},Js={repository:`repositorio`,organization:`organización`,read:`Lectura`,write:`Escritura`,required:`Obligatorio`,conditional:`Condicional`,verified:`Verificado`,available:`Lectura disponible`,missing:`Faltante`,unverifiable:`No verificable`},Ys={"Self-hosted runners":`Runners auto-hébergés`,Metadata:`Métadonnées`,Contents:`Contenu`,Secrets:`Secrets`,Variables:`Variables`,Issues:`Tickets`,Actions:`Actions`,Checks:`Vérifications`,Administration:`Administration`,Workflows:`Flux de travail`,"Issue Types":`Types de ticket`,Projects:`Projets`,"Pull requests":`Demandes de tirage`,Members:`Membres`},Xs={repository:`dépôt`,organization:`organisation`,read:`Lecture`,write:`Écriture`,required:`Obligatoire`,conditional:`Conditionnel`,verified:`Vérifié`,available:`Lecture disponible`,missing:`Manquant`,unverifiable:`Non vérifiable`},Zs={"Self-hosted runners":`Runners autoalojados`,Metadata:`Metadados`,Contents:`Conteúdo`,Secrets:`Segredos`,Variables:`Variáveis`,Issues:`Questões`,Actions:`Ações`,Checks:`Verificações`,Administration:`Administração`,Workflows:`Fluxos de trabalho`,"Issue Types":`Tipos de questão`,Projects:`Projetos`,"Pull requests":`Pedidos de alteração`,Members:`Membros`},Qs={repository:`repositório`,organization:`organização`,read:`Leitura`,write:`Escrita`,required:`Obrigatório`,conditional:`Condicional`,verified:`Verificado`,available:`Leitura disponível`,missing:`Em falta`,unverifiable:`Não verificável`},$s={en:Gs,es:qs,fr:Ys,pt:Zs},ec={en:Ks,es:Js,fr:Xs,pt:Qs};function tc(e,t){return ec[e][t]}function nc(e,t){return Object.prototype.hasOwnProperty.call($s[e],t)?$s[e][t]:t}function rc(e,t){if(t===`verified`||t===`available`||t===`missing`||t===`unverifiable`)return ec[e][t]}var ic=H(`

                                                                                  `),ac=H(`
                                                                                • `),oc=H(`

                                                                                  `),sc=H(`

                                                                                    `),cc=H(`
                                                                                  • `),lc=H(`
                                                                                      `),uc=H(`

                                                                                        `),dc=H(``),fc=H(`

                                                                                        `),pc=H(`

                                                                                          `);function mc(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=M(),o=X(t,`prompt`,8),s=X(t,`controller`,8),c=X(t,`busy`,8),l=X(t,`onSubmit`,8),u={capabilities:`editCapabilities`,"agent-runtime":`editRuntimes`,"agent-model-defaults":`editModels`,"agent-role-overrides":`editRoleModels`,repository:`editRepository`,deployment:`editDeployment`,bugbot:`editBugbot`,"pull-request-approval":`editApproval`,projects:`editProjects`,provisioning:`editProvisioning`,storage:`editStorage`};Tn(()=>(n(),V(o())),()=>{N(a,[{title:Z(`files`,n()),items:o().plan.files},{title:Z(`workflows`,n()),items:o().plan.workflows},{title:Z(`variables`,n()),items:o().plan.variables},{title:Z(`secretNames`,n()),items:o().plan.secrets}])}),En(),ji();var d=pc(),f=P(d),p=I(f,!0),m=L(f,2),h=P(m),g=I(h,!0),_=L(h,2),v=I(_,!0),y=L(_,2),b=e=>{var t=ic(),r=I(t,!0);R(e=>W(r,e),[()=>(V(Z),n(),B(()=>Z(`planActionsProbePrerequisites`,n())))]),U(e,t)},x=gt(()=>(V(o()),B(()=>o().plan.permissionProbes?.some(e=>e.permission===`Actions`))));G(y,e=>{z(x)&&e(b)});var S=L(y,2),C=e=>{var t=ic(),r=I(t,!0);R(e=>W(r,e),[()=>(V(Z),n(),B(()=>Z(`planSecretProbeLimit`,n())))]),U(e,t)},w=gt(()=>(V(o()),B(()=>o().plan.permissionProbes?.some(e=>e.permission===`Secrets`))));G(S,e=>{z(w)&&e(C)});var ee=L(S,2);q(ee,5,()=>(V(o()),B(()=>o().plan.permissionProbes)),K,(e,t)=>{var r=ac(),i=I(r);R((e,t)=>W(i,`${e??``}: ${t??``}`),[()=>(V(tc),n(),z(t),B(()=>tc(n(),z(t).scope))),()=>(V(nc),n(),z(t),B(()=>nc(n(),z(t).permission)))]),U(e,r)},e=>{var t=ac(),r=I(t,!0);R(e=>W(r,e),[()=>(V(Z),n(),B(()=>Z(`none`,n())))]),U(e,t)}),D(ee),D(m);var te=L(m,2),ne=e=>{var t=oc(),r=P(t),i=I(r,!0),a=L(r,2),s=I(a,!0),c=L(a,2),l=P(c),u=I(l,!0),d=I(L(l),!0);D(c),D(t),R((e,t,n,r)=>{W(i,e),W(s,t),W(u,n),W(d,r)},[()=>(V(Z),n(),B(()=>Z(`organizationReuseTitle`,n()))),()=>(V(Z),n(),V(o()),B(()=>Z(`organizationReuseBody`,n(),{imported:String(o().plan.organizationReuse.imported),shared:String(o().plan.organizationReuse.organizationVariables.length),overrides:String(o().plan.organizationReuse.repositoryVariables.length),writes:String(o().plan.organizationReuse.repositoryWrites.length)}))),()=>(V(Z),n(),B(()=>Z(`batchRepositoryOverrides`,n()))),()=>(V(o()),V(Z),n(),B(()=>o().plan.organizationReuse.repositoryWrites.join(`, `)||Z(`none`,n())))]),U(e,t)};G(te,e=>{V(o()),B(()=>o().plan.organizationReuse)&&e(ne)});var re=L(te,2);Ls(re,{get decisions(){return V(o()),B(()=>o().plan.decisions)}});var ie=L(re,2),ae=e=>{Ws(e,{get review(){return V(o()),B(()=>o().plan.installationReview)}})};G(ie,e=>{V(o()),B(()=>o().plan.installationReview)&&e(ae)});var oe=L(ie,2),se=e=>{gs(e,{get storage(){return V(o()),B(()=>o().plan.workflowPatStorage)}})};G(oe,e=>{V(o()),B(()=>o().plan.workflowPatStorage)&&e(se)});var ce=L(oe,2),le=e=>{var t=sc(),r=P(t),i=I(r,!0),a=L(r,2);q(a,5,()=>(V(o()),B(()=>o().plan.presentationDefaults)),K,(e,t)=>{var r=ac(),i=I(r);R(e=>W(i,`${e??``}: ${z(t),B(()=>z(t).count)??``}`),[()=>(z(t),V(Z),n(),B(()=>u[z(t).group]?Z(u[z(t).group],n()):z(t).group))]),U(e,r)}),D(a),D(t),R(e=>W(i,e),[()=>(V(Z),n(),B(()=>Z(`planBasicDefaultsIntro`,n())))]),U(e,t)};G(ce,e=>{V(o()),B(()=>o().plan.presentationDefaults.length)&&e(le)});var ue=L(ce,2);q(ue,5,()=>z(a),K,(e,t)=>{var r=lc(),i=P(r),a=P(i),o=I(a,!0),s=I(L(a),!0);D(i);var c=L(i);q(c,5,()=>(z(t),B(()=>z(t).items)),K,(e,t)=>{var n=cc(),r=I(P(n),!0);D(n),R(()=>W(r,z(t))),U(e,n)},e=>{var t=ac(),r=I(t,!0);R(e=>W(r,e),[()=>(V(Z),n(),B(()=>Z(`none`,n())))]),U(e,t)}),D(c),D(r),R(()=>{W(o,(z(t),B(()=>z(t).title))),W(s,(z(t),B(()=>z(t).items.length)))}),U(e,r)}),D(ue);var de=L(ue,2),fe=e=>{var t=uc(),r=P(t),i=I(r,!0),a=L(r);q(a,5,()=>(V(o()),B(()=>o().plan.warnings)),K,(e,t)=>{var r=ac(),i=I(r,!0);R(e=>W(i,e),[()=>(V(ws),z(t),n(),B(()=>ws(z(t),n())))]),U(e,r)}),D(a),D(t),R(e=>W(i,e),[()=>(V(Z),n(),B(()=>Z(`beforeContinue`,n())))]),U(e,t)};G(de,e=>{V(o()),B(()=>o().plan.warnings.length)&&e(fe)});var pe=L(de,2),me=e=>{var t=fc(),r=P(t),i=I(r,!0),a=L(r),d=I(a,!0),f=L(a,2);q(f,5,()=>(V(o()),B(()=>o().editGroups)),K,(e,t)=>{var r=dc(),i=I(r,!0);R(e=>{r.disabled=!s()||c(),W(i,e)},[()=>(V(Z),n(),z(t),B(()=>Z(`changeSection`,n(),{section:Z(u[z(t)],n())})))]),wr(`click`,r,()=>l()(`revise:${z(t)}`)),U(e,r)}),D(f),D(t),R((e,t)=>{W(i,e),W(d,t)},[()=>(V(Z),n(),B(()=>Z(`changeAnswersTitle`,n()))),()=>(V(Z),n(),B(()=>Z(`changeAnswersHelp`,n())))]),U(e,t)};G(pe,e=>{V(o()),B(()=>o().editGroups?.length)&&e(me)});var he=L(pe,2),ge=P(he);{let e=A(()=>(V(Z),n(),B(()=>Z(`stopHere`,n())))),t=A(()=>!s()||c());Xa(ge,{get label(){return z(e)},variant:`secondary`,onClick:()=>l()(`decline`),get disabled(){return z(t)}})}var _e=L(ge);{let e=A(()=>(V(Z),V(o()),n(),B(()=>Z(o().plan.deliveryMode===`pull-request`?`batchUseConfiguration`:`approvePlan`,n())))),t=A(()=>(V(s()),V(c()),V(o()),B(()=>!s()||c()||!!o().plan.installationReview?.blockers.length)));Xa(_e,{get label(){return z(e)},arrow:!0,onClick:()=>l()(`approve`),get disabled(){return z(t)}})}D(he),D(d),R((e,t,n,r)=>{W(p,e),J(m,`aria-label`,t),W(g,n),W(v,r)},[()=>(V(Z),V(o()),n(),B(()=>Z(o().plan.deliveryMode===`pull-request`?`batchConfigurationPreview`:o().plan.organizationReuse?`planReuseBody`:`planBody`,n()))),()=>(V(Z),n(),B(()=>Z(`planPermissionProbeTitle`,n()))),()=>(V(Z),n(),B(()=>Z(`planPermissionProbeTitle`,n()))),()=>(V(Z),n(),B(()=>Z(`planPermissionProbeBody`,n())))]),U(e,d),k(),i()}Tr([`click`]);var hc=H(`

                                                                                          `),gc=H(`
                                                                                        • `),_c=H(`
                                                                                          `,1),vc=H(`
                                                                                          `,1),yc=H(`

                                                                                          `),bc=H(`

                                                                                            `,1);function xc(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=M(),o=X(t,`view`,8);Tn(()=>n(),()=>{N(a,ta(n()))}),En(),ji();var s=bc(),c=F(s),l=P(c),u=I(l,!0),d=L(l),f=I(d,!0),p=L(d,2),m=e=>{var t=hc(),n=I(t,!0);R(()=>W(n,(z(a),B(()=>z(a).unknown)))),U(e,t)};G(p,e=>{V(o()),B(()=>o().secretInventory!==`available`)&&e(m)});var h=L(p,2);q(h,5,()=>(V(o()),B(()=>o().secrets)),K,(e,t)=>{var n=gc(),r=P(n),i=I(r,!0),o=L(r),s=L(o),c=e=>{var t=Nr();R(()=>W(t,`· ${z(a),B(()=>z(a).shadowed)??``}`)),U(e,t)};G(s,e=>{z(t),B(()=>z(t).shadowed)&&e(c)}),D(n),R(()=>{W(i,(z(t),B(()=>z(t).name))),W(o,` · ${z(a),z(t),B(()=>z(a)[z(t).scope])??``} `)}),U(e,n)}),D(h),D(c);var g=L(c,2),_=P(g),v=I(_),y=L(_,2),b=e=>{var t=hc(),n=I(t,!0);R(()=>W(n,(z(a),B(()=>z(a).empty)))),U(e,t)};G(y,e=>{V(o()),B(()=>!o().variables.length)&&e(b)});var x=L(y,2);q(x,5,()=>(V(o()),B(()=>o().variables)),K,(e,t)=>{var n=_c(),r=F(n),i=P(r),o=L(i),s=e=>{var t=Nr();R(()=>W(t,`· ${z(a),B(()=>z(a).shadowed)??``}`)),U(e,t)};G(o,e=>{z(t),B(()=>z(t).shadowed)&&e(s)}),D(r);var c=I(L(r),!0);R(()=>{W(i,`${z(t),B(()=>z(t).name)??``} · ${z(a),z(t),B(()=>z(a)[z(t).scope])??``} `),W(c,(z(t),B(()=>z(t).value)))}),U(e,n)}),D(x),D(g);var S=L(g,2),C=P(S),w=I(C);q(L(C,2),1,()=>(V(o()),B(()=>o().workflows)),K,(e,t)=>{var n=yc(),r=P(n),i=I(r,!0),o=L(r,2),s=I(o,!0),c=L(o,2);q(c,5,()=>(z(t),B(()=>z(t).inputs)),K,(e,t)=>{var n=vc(),r=F(n),i=I(r,!0),o=L(r),s=P(o,!0),c=L(s),l=e=>{var n=Nr();R(()=>W(n,`· ${z(a),B(()=>z(a).workflow)??``}: ${z(t),B(()=>z(t).fallback)??``}`)),U(e,n)};G(c,e=>{z(t),B(()=>z(t).fallback!==void 0)&&e(l)}),D(o),R(()=>{W(i,(z(t),B(()=>z(t).name))),W(s,(z(t),z(a),B(()=>z(t).unsupported?z(a).unknown:z(t).variable?`vars.${z(t).variable}`:z(t).literal)))}),U(e,n)}),D(c),D(n),R(()=>{W(i,(z(t),B(()=>z(t).file))),W(s,(z(t),B(()=>z(t).action)))}),U(e,n)}),D(S),R(()=>{W(u,(z(a),B(()=>z(a).credentials))),W(f,(z(a),B(()=>z(a).secretHelp))),W(v,`${z(a),B(()=>z(a).variables)??``} (${V(o()),B(()=>o().variables.length)??``})`),W(w,`${z(a),B(()=>z(a).details)??``} (${V(o()),B(()=>o().workflows.length)??``})`)}),U(e,s),k(),i()}var Sc=H(`

                                                                                            `),Cc=H(``),wc=H(``),Tc=H(`

                                                                                            `),Ec=H(`

                                                                                            `,1),Dc=H(`

                                                                                            `,1);function Oc(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=M(),o=X(t,`view`,8),s=X(t,`controller`,8),c=X(t,`busy`,8),l=X(t,`onSubmit`,8);Tn(()=>n(),()=>{N(a,ta(n()))}),En(),ji();var u=Dc(),d=F(u),f=I(d,!0),p=L(d,2),m=I(p,!0),h=L(p,2),g=I(h,!0),_=L(h,2),v=e=>{var t=Sc(),n=I(t,!0);R(()=>W(n,(z(a),B(()=>z(a).local)))),U(e,t)};G(_,e=>{V(o()),B(()=>o().github===`not-connected`&&o().status!==`unconfigured`)&&e(v)});var y=L(_,2),b=e=>{var t=Cc(),n=I(t,!0);R(()=>W(n,(z(a),B(()=>z(a).githubIncomplete)))),U(e,t)};G(y,e=>{V(o()),B(()=>o().github===`incomplete`)&&e(b)});var x=L(y,2),S=P(x),C=e=>{var t=wc(),n=I(t,!0);R(()=>{t.disabled=!s()||c(),W(n,(V(o()),z(a),B(()=>o().github===`not-connected`?z(a).connect:z(a).refresh)))}),wr(`click`,t,()=>l()(o().github===`not-connected`?`connect`:`refresh`)),U(e,t)};G(S,e=>{V(o()),B(()=>o().status!==`unconfigured`)&&e(C)});var w=L(S,2);let ee;var te=I(w,!0);D(x);var ne=L(x,2),re=e=>{var t=Ec(),r=F(t),i=P(r),u=I(i,!0),d=L(i),f=I(d,!0),p=L(d,2);q(p,5,()=>(V(o()),B(()=>o().settings)),K,(e,t)=>{var r=Tc(),i=P(r),o=P(i),u=I(o,!0),d=L(o),f=P(d,!0),p=L(f),m=e=>{var n=Nr();R(()=>W(n,` · ${z(a),z(t),B(()=>z(a)[z(t).source])??``}`)),U(e,n)};G(p,e=>{z(t),B(()=>z(t).source!==`unknown`)&&e(m)}),D(d),D(i);var h=L(i,2),g=I(h,!0);D(r),R((e,n,r)=>{W(u,e),W(f,n),J(h,`aria-label`,r),h.disabled=(V(s()),V(c()),z(t),B(()=>!s()||c()||!z(t).editable)),W(g,(z(a),B(()=>z(a).edit)))},[()=>(V(na),z(t),n(),B(()=>na(z(t).id,n()))),()=>(z(t),z(a),V(ia),n(),B(()=>z(t).value===void 0?z(a).unknown:ia(z(t).value,n()))),()=>(z(a),V(na),z(t),n(),B(()=>`${z(a).edit}: ${na(z(t).id,n())}`))]),wr(`click`,h,()=>l()(`edit:${z(t).id}`)),U(e,r)}),D(p),D(r),xc(L(r,2),{get view(){return o()}}),R(()=>{W(u,(z(a),B(()=>z(a).quick))),W(f,(z(a),B(()=>z(a).quickHelp)))}),U(e,t)};G(ne,e=>{V(o()),B(()=>o().status!==`unconfigured`)&&e(re)});var ie=L(ne,2),ae=I(ie,!0),oe=L(ie,2),se=P(oe),ce=I(se,!0);D(oe),R(()=>{W(f,(z(a),B(()=>z(a).title))),W(m,(z(a),V(o()),B(()=>z(a)[o().status]))),W(g,(V(o()),z(a),B(()=>o().status===`unconfigured`?z(a).startHelp:z(a).intro))),ee=ui(w,1,`button`,null,ee,{primary:o().status===`unconfigured`,secondary:o().status!==`unconfigured`}),w.disabled=!s()||c(),W(te,(V(o()),z(a),B(()=>o().status===`unconfigured`?z(a).start:z(a).wizard))),W(ae,(z(a),B(()=>z(a).limits))),se.disabled=!s()||c(),W(ce,(z(a),B(()=>z(a).finish)))}),wr(`click`,w,()=>l()(`wizard`)),wr(`click`,se,()=>l()(`close`)),U(e,u),k(),i()}Tr([`click`]);var kc=H(``),Ac=H(``),jc=H(`
                                                                                          • `),Mc=H(`
                                                                                              `),Nc=H(`

                                                                                              `),Pc=H(` `),Fc=H(`

                                                                                                `),Ic=H(`
                                                                                                 
                                                                                                `),Lc=H(`
                                                                                                `),Rc=H(`
                                                                                                `),zc=H(`

                                                                                                `),Bc=H(`
                                                                                              • `),Vc=H(`
                                                                                                  `),Hc=H(`

                                                                                                  `,1),Uc=H(`

                                                                                                  →

                                                                                                  `),Wc=H(`
                                                                                                  `),Gc=H(``),Kc=H(``),qc=H(`
                                                                                                  `),Jc=H(`

                                                                                                  `);function Yc(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=M(),o=X(t,`batch`,8),s=X(t,`controller`,8),c=X(t,`busy`,8),l=X(t,`mode`,8,`progress`),u=X(t,`onSubmit`,8,async()=>void 0),d=X(t,`onStop`,8,async()=>void 0),f={ready:`batchStatusReady`,blocked:`batchStatusBlocked`,applying:`batchStatusApplying`,partial:`batchStatusPartial`,"waiting-for-merge":`batchStatusWaiting`,"verification-pending":`batchStatusPending`,unchanged:`batchStatusUnchanged`,cancelled:`batchStatusCancelled`};function p(e){return e&&/^https:\/\/github\.com\/[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+\/pull\/[1-9][0-9]*$/.test(e)?e:void 0}Tn(()=>V(o()),()=>{N(a,o().targets.some(e=>e.cleanupPending)?[]:o().targets.filter(e=>[`ready`,`partial`,`cancelled`,`applying`].includes(e.status)))}),En(),ji();var m=Jc(),h=P(m),g=I(h,!0),_=L(h,2),v=I(_,!0),y=L(_,2),b=e=>{var t=kc(),r=I(t,!0);R(e=>W(r,e),[()=>(V(Z),n(),B(()=>Z(`batchStopping`,n())))]),U(e,t)};G(y,e=>{V(o()),B(()=>o().stopRequested)&&e(b)});var x=L(y,2);q(x,5,()=>(V(o()),B(()=>o().targets)),e=>e.repositoryId,(e,t)=>{var r=Uc(),i=P(r),a=I(i,!0),o=L(i,2),s=e=>{Ws(e,{get review(){return z(t),B(()=>z(t).installationReview)}})};G(o,e=>{z(t),B(()=>z(t).installationReview)&&e(s)});var c=L(o,2),l=I(c,!0),u=L(c,2),d=e=>{var t=Ac(),r=I(t,!0);R(e=>W(r,e),[()=>(V(Z),n(),B(()=>Z(`batchCleanupPending`,n())))]),U(e,t)};G(u,e=>{z(t),B(()=>z(t).cleanupPending)&&e(d)});var m=L(u,2),h=e=>{var n=Mc();q(n,5,()=>(z(t),B(()=>z(t).blockers)),K,(e,t)=>{var n=jc(),r=I(n,!0);R(()=>W(r,z(t))),U(e,n)}),D(n),U(e,n)};G(m,e=>{z(t),B(()=>z(t).blockers?.length)&&e(h)});var g=L(m,2),_=e=>{var r=Nc(),i=I(r,!0);R(e=>W(i,e),[()=>(V(Z),z(t),n(),B(()=>Z(z(t).reason===`drift`||z(t).reason===`ownership`?`batchReasonDrift`:z(t).reason===`provider`?`batchReasonProvider`:z(t).reason===`cancelled`?`batchReasonCancelled`:`batchReasonPreflight`,n())))]),U(e,r)};G(g,e=>{z(t),B(()=>z(t).reason&&!z(t).cleanupPending)&&e(_)});var v=L(g,2),y=P(v),b=I(y,!0),x=L(y),S=P(x),C=I(S,!0),w=I(L(S,2),!0);D(x);var ee=I(L(x),!0);D(v);var te=L(v,2),ne=e=>{var r=Pc(),i=I(r);R((e,t)=>{J(r,`href`,e),W(i,`${t??``} ↗`)},[()=>(z(t),B(()=>p(z(t).pullRequestUrl))),()=>(V(Z),n(),B(()=>Z(`batchOpenPull`,n())))]),U(e,r)},re=gt(()=>(z(t),B(()=>p(z(t).pullRequestUrl))));G(te,e=>{z(re)&&e(ne)});var ie=L(te,2),ae=e=>{var r=Hc(),i=F(r),a=P(i),o=I(a,!0),s=L(a,2),c=I(s,!0),l=I(L(s,2),!0);D(i);var u=L(i,2),d=e=>{var r=Nc(),i=I(r);R((e,t)=>W(i,`${e??``}: ${t??``}.`),[()=>(V(Z),n(),B(()=>Z(`batchRetainedSecrets`,n()))),()=>(z(t),B(()=>z(t).retainedSecrets.join(`, `)))]),U(e,r)};G(u,e=>{z(t),B(()=>z(t).retainedSecrets.length)&&e(d)});var f=L(u,2),p=I(f,!0),m=L(f,2),h=e=>{var r=Fc(),i=P(r),a=I(i,!0),o=L(i,2),s=I(o,!0),c=L(o,2);q(c,5,()=>(z(t),B(()=>z(t).permissionProbes)),K,(e,t)=>{var r=jc(),i=I(r);R((e,t)=>W(i,`${e??``}: ${t??``}`),[()=>(V(tc),n(),z(t),B(()=>tc(n(),z(t).scope))),()=>(V(nc),n(),z(t),B(()=>nc(n(),z(t).permission)))]),U(e,r)}),D(c);var l=L(c,2),u=e=>{var t=Nc(),r=I(t,!0);R(e=>W(r,e),[()=>(V(Z),n(),B(()=>Z(`planSecretProbeLimit`,n())))]),U(e,t)},d=gt(()=>(z(t),B(()=>z(t).permissionProbes.some(e=>e.permission===`Secrets`))));G(l,e=>{z(d)&&e(u)}),D(r),R((e,t)=>{W(a,e),W(s,t)},[()=>(V(Z),n(),B(()=>Z(`planPermissionProbeTitle`,n()))),()=>(V(Z),n(),B(()=>Z(`planPermissionProbeBody`,n())))]),U(e,r)};G(m,e=>{z(t),B(()=>z(t).permissionProbes?.length)&&e(h)});var g=L(m,2),_=e=>{var r=Rc(),i=P(r),a=I(i,!0);q(L(i,2),1,()=>(z(t),B(()=>z(t).files)),K,(e,t)=>{var r=Lc(),i=P(r),a=I(P(i),!0);D(i);var o=L(i,2),s=e=>{var t=Nc(),r=I(t,!0);R(e=>W(r,e),[()=>(V(Z),n(),B(()=>Z(`batchDeleteFile`,n())))]),U(e,t)},c=e=>{var n=Ic(),r=I(n,!0);R(()=>W(r,(z(t),B(()=>z(t).content)))),U(e,n)};G(o,e=>{z(t),B(()=>z(t).content===null)?e(s):e(c,-1)}),D(r),R(()=>W(a,(z(t),B(()=>z(t).path)))),U(e,r)}),D(r),R(e=>W(a,e),[()=>(V(Z),n(),B(()=>Z(`batchReviewFiles`,n())))]),U(e,r)};G(g,e=>{z(t),B(()=>z(t).files.length)&&e(_)});var v=L(g,2),y=e=>{var r=zc(),i=P(r),a=I(i,!0),o=I(L(i),!0);D(r),R((e,t)=>{W(a,e),W(o,t)},[()=>(V(Z),n(),B(()=>Z(`batchRepositoryOverrides`,n()))),()=>(z(t),B(()=>z(t).repositoryVariables.join(`, `)))]),U(e,r)};G(v,e=>{z(t),B(()=>z(t).repositoryVariables.length)&&e(y)});var b=L(v,2),x=e=>{var r=Vc(),i=P(r),a=I(i,!0),o=L(i);q(o,5,()=>(z(t),B(()=>z(t).grants)),K,(e,t)=>{var n=Bc(),r=P(n),i=I(L(r),!0);D(n),R(()=>{W(r,`${z(t),B(()=>z(t).kind===`secret`?`Secret`:`Variable`)??``} `),W(i,(z(t),B(()=>z(t).name)))}),U(e,n)}),D(o),D(r),R(e=>W(a,e),[()=>(V(Z),n(),B(()=>Z(`batchReviewedAccess`,n())))]),U(e,r)};G(b,e=>{z(t),B(()=>z(t).grants.length)&&e(x)}),R((e,t,n,r)=>{W(o,e),W(c,t),W(l,n),W(p,r)},[()=>(V(Z),n(),z(t),B(()=>Z(`batchFilesCount`,n(),{count:String(z(t).files.length)}))),()=>(V(Z),n(),z(t),B(()=>Z(`batchVariablesCount`,n(),{count:String(z(t).repositoryVariables.length)}))),()=>(V(Z),n(),z(t),B(()=>Z(`batchGrantsCount`,n(),{count:String(z(t).grants.length)}))),()=>(V(Z),n(),B(()=>Z(`batchResourcesExplanation`,n())))]),U(e,r)},oe=gt(()=>(z(t),B(()=>![`waiting-for-merge`,`verification-pending`,`unchanged`].includes(z(t).status))));G(ie,e=>{z(oe)&&e(ae)}),D(r),R((e,n)=>{W(a,(z(t),B(()=>z(t).repository))),W(l,e),W(b,n),W(C,(z(t),B(()=>z(t).installationBranch))),W(w,(z(t),B(()=>z(t).baseBranch))),W(ee,(z(t),B(()=>z(t).baseSha)))},[()=>(V(Z),z(t),n(),B(()=>Z(f[z(t).status],n()))),()=>(V(Z),n(),B(()=>Z(`batchBranchReview`,n())))]),U(e,r)}),D(x);var S=L(x,2),C=e=>{var t=Wc(),r=P(t),i=I(r,!0),o=L(r,2),l=I(o,!0);D(t),R((e,t)=>{r.disabled=(V(s()),V(c()),z(a),B(()=>!s()||c()||!z(a).length)),W(i,e),o.disabled=!s()||c(),W(l,t)},[()=>(V(Z),n(),B(()=>Z(`batchApplyPlans`,n()))),()=>(V(Z),n(),B(()=>Z(`batchLeavePreview`,n())))]),wr(`click`,r,()=>u()(`approve`)),wr(`click`,o,()=>u()(`decline`)),U(e,t)},w=e=>{var t=Gc(),r=I(t,!0);R(e=>{t.disabled=(V(s()),V(c()),V(o()),B(()=>!s()||c()||o().stopRequested)),W(r,e)},[()=>(V(Z),n(),B(()=>Z(`batchStopPending`,n())))]),wr(`click`,t,function(...e){d()?.apply(this,e)}),U(e,t)},ee=e=>{var t=qc(),r=P(t),i=e=>{var t=Kc(),r=I(t,!0);R(e=>{t.disabled=!s()||c(),W(r,e)},[()=>(V(Z),n(),B(()=>Z(`batchRetryPending`,n())))]),wr(`click`,t,()=>u()(`retry`)),U(e,t)};G(r,e=>{z(a),V(o()),B(()=>z(a).length&&o().retryRemaining>0)&&e(i)});var l=L(r,2),d=I(l,!0);D(t),R(e=>{l.disabled=!s()||c(),W(d,e)},[()=>(V(Z),n(),B(()=>Z(`batchFinish`,n())))]),wr(`click`,l,()=>u()(`finish`)),U(e,t)};G(S,e=>{l()===`review`?e(C):l()===`progress`?e(w,1):l()===`result`&&e(ee,2)});var te=L(S,2),ne=P(te),re=I(ne,!0),ie=I(L(ne),!0);D(te),D(m),R((e,t,n)=>{W(g,e),W(v,t),W(re,n),W(ie,(V(o()),B(()=>o().operationId)))},[()=>(V(Z),V(l()),n(),B(()=>Z(l()===`review`?`batchReviewTitle`:l()===`progress`?`batchProgressTitle`:`batchResultTitle`,n()))),()=>(V(Z),V(l()),n(),B(()=>Z(l()===`review`?`batchReviewBody`:l()===`progress`?`batchProgressBody`:`batchResultBody`,n()))),()=>(V(Z),n(),B(()=>Z(`batchTechnical`,n())))]),U(e,m),k(),i()}Tr([`click`]);var Xc=H(``),Zc=H(``),Qc=H(`

                                                                                                  `),$c=H(`
                                                                                                  `),el=H(`

                                                                                                  `,1);function tl(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=M(),o=M(),s=M(),c=X(t,`selection`,8),l=X(t,`controller`,8),u=X(t,`busy`,8),d=X(t,`onSubmit`,8),f=M([...c().selectedIds]),p=M(``),m=M(``),h=M(0);function g(e){N(f,z(f).includes(e)?z(f).filter(t=>t!==e):[...z(f),e])}function _(e){d()(JSON.stringify({action:e,selectedIds:z(f),...e===`resolve`?{name:z(m).trim()}:{}}))}Tn(()=>(V(c()),z(p)),()=>{N(a,c().candidates.filter(e=>e.name.toLowerCase().includes(z(p).toLowerCase())))}),Tn(()=>(z(h),z(a)),()=>{z(h)>0&&z(h)*25>=z(a).length&&N(h,0)}),Tn(()=>(z(a),z(h)),()=>{N(o,z(a).slice(z(h)*25,(z(h)+1)*25))}),Tn(()=>(z(f),V(c())),()=>{N(s,z(f).some(e=>!c().candidates.some(t=>t.id===e&&!t.unavailable)))}),En(),ji();var v=el(),y=F(v),b=I(y,!0),x=L(y,2),S=e=>{var t=Xc(),r=I(t,!0);R(e=>W(r,e),[()=>(V(Z),n(),B(()=>Z(`batchDiscoveryUnavailable`,n())))]),U(e,t)};G(x,e=>{V(c()),B(()=>c().discoveryStatus===`unavailable`)&&e(S)});var C=L(x,2),w=e=>{var t=Xc(),r=I(t,!0);R(e=>W(r,e),[()=>(V(Z),V(c()),n(),B(()=>Z(c().message===`lookup-unavailable`?`batchLookupUnavailable`:c().message===`selection-invalid`?`batchSelectionInvalid`:`batchAccessUnavailable`,n())))]),U(e,t)};G(C,e=>{V(c()),B(()=>c().message)&&e(w)});var ee=L(C,2),te=e=>{var t=Xc(),r=I(t,!0);R(e=>W(r,e),[()=>(V(Z),n(),B(()=>Z(`batchDiscoveryTruncated`,n())))]),U(e,t)};G(ee,e=>{V(c()),B(()=>c().truncated)&&e(te)});var ne=L(ee,2),re=I(ne,!0),ie=L(ne,2);xi(ie);var ae=L(ie,2),oe=I(ae,!0),se=L(ae,2),ce=P(se),le=I(ce,!0),ue=L(ce,2);q(ue,5,()=>z(o),e=>e.id,(e,t)=>{var r=Zc(),i=P(r);xi(i);var a=L(i,2),o=P(a),s=I(o,!0),l=L(o),u=P(l),d=L(u),p=e=>{var t=Nr();R(e=>W(t,`· ${e??``}`),[()=>(V(Z),n(),B(()=>Z(`batchCurrent`,n())))]),U(e,t)};G(d,e=>{z(t),V(c()),B(()=>z(t).id===c().currentRepositoryId)&&e(p)});var m=L(d,2),h=e=>{var r=Nr();R(e=>W(r,`· ${e??``}`),[()=>(V(Z),z(t),n(),B(()=>Z(z(t).unavailable===`archived`?`batchArchived`:z(t).unavailable===`disabled`?`batchDisabled`:z(t).unavailable===`access-unavailable`?`batchAccessUnavailable`:`batchReadOnly`,n())))]),U(e,r)};G(m,e=>{z(t),B(()=>z(t).unavailable)&&e(h)}),D(l),D(a),D(r),R((e,n,r)=>{Si(i,e),i.disabled=n,W(s,(z(t),B(()=>z(t).name))),W(u,`${r??``} `)},[()=>(z(f),z(t),B(()=>z(f).includes(z(t).id))),()=>(z(f),z(t),B(()=>!z(f).includes(z(t).id)&&(!!z(t).unavailable||z(f).length>=25))),()=>(V(Z),z(t),n(),B(()=>Z(z(t).private?`batchPrivate`:`batchPublic`,n())))]),wr(`change`,i,()=>g(z(t).id)),U(e,r)}),D(ue),D(se);var de=L(se,2),fe=e=>{var t=Qc(),r=I(t,!0);R(e=>W(r,e),[()=>(V(Z),n(),B(()=>Z(`batchNoMatches`,n())))]),U(e,t)};G(de,e=>{z(a),B(()=>!z(a).length)&&e(fe)});var pe=L(de,2),me=e=>{var t=$c(),r=P(t),i=I(r,!0),o=L(r,2),s=I(o),c=L(o,2),d=I(c,!0);D(t),R((e,t,n)=>{r.disabled=z(h)===0||!l()||u(),W(i,e),W(s,`${z(h)+1} / ${t??``}`),c.disabled=(z(h),z(a),V(l()),V(u()),B(()=>(z(h)+1)*25>=z(a).length||!l()||u())),W(d,n)},[()=>(V(Z),n(),B(()=>Z(`batchPrevious`,n()))),()=>(z(a),B(()=>Math.ceil(z(a).length/25))),()=>(V(Z),n(),B(()=>Z(`batchNext`,n())))]),wr(`click`,r,()=>N(h,z(h)-1)),wr(`click`,c,()=>N(h,z(h)+1)),U(e,t)};G(pe,e=>{z(a),B(()=>z(a).length>25)&&e(me)});var he=L(pe,2),ge=P(he),_e=I(ge,!0),ve=L(ge,2),ye=I(ve,!0),be=L(ve,2),xe=I(be,!0),Se=L(be,2);xi(Se);var Ce=L(Se,2),we=P(Ce),T=I(we,!0),Te=L(we,2),E=I(Te,!0);D(Ce),D(he);var Ee=L(he,2),De=I(Ee,!0);R((e,t,n,r,i,a,o,c,d,p,m)=>{W(b,e),W(re,t),ie.disabled=!l()||u(),W(oe,n),se.disabled=!l()||u(),W(le,r),W(_e,i),W(ye,a),W(xe,o),Se.disabled=!l()||u(),we.disabled=c,W(T,d),Te.disabled=!l()||u(),W(E,p),Ee.disabled=(V(l()),V(u()),z(s),z(f),B(()=>!l()||u()||z(s)||z(f).length<1||z(f).length>25)),W(De,m)},[()=>(V(Z),n(),V(c()),B(()=>Z(`batchSelectionBody`,n(),{organization:c().organization}))),()=>(V(Z),n(),B(()=>Z(`batchFilter`,n()))),()=>(V(Z),n(),z(f),B(()=>Z(`batchSelectedCount`,n(),{count:String(z(f).length)}))),()=>(V(Z),n(),B(()=>Z(`batchRepositories`,n()))),()=>(V(Z),n(),B(()=>Z(`batchMissingRepository`,n()))),()=>(V(Z),n(),B(()=>Z(`batchAccessExplanation`,n()))),()=>(V(Z),n(),B(()=>Z(`batchExactName`,n()))),()=>(V(l()),V(u()),z(m),B(()=>!l()||u()||!/^[A-Za-z0-9][A-Za-z0-9_.-]{0,99}$/.test(z(m).trim()))),()=>(V(Z),n(),B(()=>Z(`batchFindRepository`,n()))),()=>(V(Z),n(),B(()=>Z(`batchChangeAccess`,n()))),()=>(V(Z),n(),B(()=>Z(`batchReviewSelection`,n())))]),wr(`input`,ie,()=>N(h,0)),Ei(ie,()=>z(p),e=>N(p,e)),Ei(Se,()=>z(m),e=>N(m,e)),wr(`click`,we,()=>_(`resolve`)),wr(`click`,Te,()=>_(`access`)),wr(`click`,Ee,()=>_(`select`)),U(e,v),k(),i()}Tr([`input`,`change`,`click`]);var nl=H(`

                                                                                                  `,1),rl=H(``),il=H(``),al=H(``),ol=H(`

                                                                                                  `,1),sl=H(`

                                                                                                  `,1);function cl(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=M(),o=X(t,`prompt`,8),s=X(t,`controller`,8),c=X(t,`busy`,8),l=X(t,`onSubmit`,8),u=M(o().kind===`quick-edit`?o().current:``);Tn(()=>n(),()=>{N(a,ta(n()))}),En(),ji();var d=Pr(),f=F(d),p=e=>{var t=ol(),r=F(t),i=I(r,!0),d=L(r,2),f=e=>{var t=nl(),r=F(t),i=I(r,!0),a=L(r,2);{let e=A(()=>(V(po),V(o()),n(),B(()=>po(o().presentation[n()].documentation.url))));Lo(a,{get explanation(){return V(o()),n(),B(()=>o().presentation[n()])},get helpUrl(){return z(e)}})}R(()=>W(i,(V(o()),n(),B(()=>o().presentation[n()].summary)))),U(e,t)};G(d,e=>{V(o()),B(()=>o().presentation)&&e(f)});var p=L(d,2),m=I(p),h=L(p,2),g=P(h),_=I(g,!0),v=L(g,2),y=e=>{var t=il();q(t,5,()=>(V(o()),B(()=>o().choices)),K,(e,t)=>{var r=rl(),i=I(r,!0),a={};R(e=>{W(i,e),a!==(a=z(t))&&(r.value=(r.__value=a)??``)},[()=>(V(ia),z(t),n(),B(()=>ia(z(t),n())))]),U(e,r)}),D(t),mi(t),R(()=>t.disabled=!s()||c()),hi(t,()=>z(u),e=>N(u,e)),U(e,t)},b=e=>{var t=al();xi(t),R(()=>{J(t,`min`,(V(o()),B(()=>o().min))),J(t,`max`,(V(o()),B(()=>o().max))),t.disabled=!s()||c()}),Ei(t,()=>z(u),e=>N(u,e)),U(e,t)};G(v,e=>{V(o()),B(()=>o().choices)?e(y):e(b,-1)});var x=L(v,2),S=P(x),C=I(S,!0),w=L(S),ee=I(w,!0);D(x),D(h),R((e,t)=>{W(i,e),W(m,`${z(a),B(()=>z(a).current)??``}: ${t??``}`),W(_,(z(a),B(()=>z(a).next))),S.disabled=!s()||c(),W(C,(z(a),B(()=>z(a).back))),w.disabled=!s()||c(),W(ee,(z(a),B(()=>z(a).preview)))},[()=>(V(na),V(o()),n(),B(()=>na(o().id,n()))),()=>(V(ia),V(o()),n(),B(()=>ia(o().current,n())))]),Cr(`submit`,h,e=>{e.preventDefault(),l()(String(z(u)??``))}),wr(`click`,S,()=>l()(`cancel`)),U(e,t)},m=e=>{var t=sl(),r=F(t),i=I(r,!0),u=L(r),d=I(u,!0),f=L(u,2),p=P(f),m=I(p,!0),h=L(p),g=I(h,!0),_=L(h),v=I(_,!0),y=L(_),b=I(y,!0),x=L(y),S=I(x,!0),C=I(L(x),!0);D(f);var w=L(f,2);let ee;var te=I(w,!0),ne=L(w,2),re=I(ne,!0),ie=L(ne,2),ae=P(ie),oe=I(ae,!0),se=L(ae),ce=I(se,!0);D(ie),R((e,t,n)=>{W(i,(z(a),B(()=>z(a).review))),W(d,e),W(m,(z(a),B(()=>z(a).current))),W(g,t),W(v,(z(a),B(()=>z(a).next))),W(b,n),W(S,(z(a),B(()=>z(a).source))),W(C,(z(a),V(o()),B(()=>z(a)[o().change.scope]))),ee=ui(w,1,`banner`,null,ee,{warning:o().change.scope===`organization`}),W(te,(V(o()),z(a),B(()=>o().change.scope===`organization`?z(a).orgImpact:z(a).repoImpact))),W(re,(z(a),B(()=>z(a).effect))),ae.disabled=!s()||c(),W(oe,(z(a),B(()=>z(a).back))),se.disabled=!s()||c(),W(ce,(z(a),B(()=>z(a).apply)))},[()=>(V(na),V(o()),n(),B(()=>na(o().change.id,n()))),()=>(V(ia),V(o()),n(),B(()=>ia(o().change.before,n()))),()=>(V(ia),V(o()),n(),B(()=>ia(o().change.after,n())))]),wr(`click`,ae,()=>l()(`cancel`)),wr(`click`,se,()=>l()(`approve`)),U(e,t)};G(f,e=>{V(o()),B(()=>o().kind===`quick-edit`)?e(p):e(m,-1)}),U(e,d),k(),i()}Tr([`click`]);function ll(e,t){let n=t,r=!0,i=()=>queueMicrotask(()=>{if(!r||!e.isConnected)return;let t=e.querySelector?.(`h2`);t?.isConnected?(t.setAttribute(`tabindex`,`-1`),t.focus({preventScroll:!1})):e.focus({preventScroll:!1})});return i(),{update(e){e!==n&&(n=e,i())},destroy(){r=!1}}}var ul=H(`

                                                                                                  `),dl=H(`

                                                                                                  `),fl=H(`
                                                                                                  `);function pl(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=M(),o=X(t,`prompt`,8),s=X(t,`revision`,8),c=X(t,`promptRevision`,8),l=X(t,`controller`,8),u=X(t,`busy`,8),d=X(t,`onSubmit`,8),f=X(t,`onRetryDiscovery`,8),p=X(t,`onBack`,8);Tn(()=>(V(o()),n()),()=>{N(a,Ia(o(),n()))}),En(),ji();var m=fl(),h=P(m),g=P(h),_=I(g,!0),v=I(L(g));D(h);var y=L(h,2),b=e=>{var t=ul(),r=I(t,!0);R(e=>W(r,e),[()=>(V(o()),V(Z),n(),z(a),B(()=>o().kind===`repositories`?Z(`batchReviewSelection`,n()):z(a)?.title??o().title))]),U(e,t)},x=gt(()=>(V(o()),B(()=>![`question`,`management`,`quick-edit`,`quick-review`,`batch-plan`,`batch-result`].includes(o().kind))));G(y,e=>{z(x)&&e(b)});var S=L(y,2),C=e=>{var t=dl(),n=I(t,!0);R(()=>W(n,(z(a),V(o()),B(()=>z(a)?.description??(`description`in o()?o().description:``))))),U(e,t)};G(S,e=>{z(a),V(o()),B(()=>z(a)?.description||`description`in o()&&o().description)&&e(C)}),Yr(L(S,2),c,e=>{var t=Pr(),n=F(t),r=e=>{{let t=A(()=>(V(o()),B(()=>o().kind===`batch-plan`?`review`:`result`)));Yc(e,{get batch(){return V(o()),B(()=>o().batch)},get mode(){return z(t)},get controller(){return l()},get busy(){return u()},get onSubmit(){return d()}})}},i=e=>{tl(e,{get selection(){return V(o()),B(()=>o().selection)},get controller(){return l()},get busy(){return u()},get onSubmit(){return d()}})},a=e=>{cs(e,{get prompt(){return o()},get controller(){return l()},get busy(){return u()},get onSubmit(){return d()},get onRetryDiscovery(){return f()},get onBack(){return p()}})},s=e=>{fs(e,{get prompt(){return o()},get controller(){return l()},get busy(){return u()},get onSubmit(){return d()}})},c=e=>{xs(e,{get prompt(){return o()},get controller(){return l()},get busy(){return u()},get onSubmit(){return d()}})},m=e=>{mc(e,{get prompt(){return o()},get controller(){return l()},get busy(){return u()},get onSubmit(){return d()}})},h=e=>{Oc(e,{get view(){return V(o()),B(()=>o().management)},get controller(){return l()},get busy(){return u()},get onSubmit(){return d()}})},g=e=>{cl(e,{get prompt(){return o()},get controller(){return l()},get busy(){return u()},get onSubmit(){return d()}})};G(n,e=>{V(o()),B(()=>o().kind===`batch-plan`||o().kind===`batch-result`)?e(r):(V(o()),B(()=>o().kind===`repositories`)?e(i,1):(V(o()),B(()=>o().kind===`question`)?e(a,2):(V(o()),B(()=>o().kind===`choice`||o().kind===`confirm`)?e(s,3):(V(o()),B(()=>o().kind===`text`||o().kind===`secret`)?e(c,4):(V(o()),B(()=>o().kind===`plan`)?e(m,5):(V(o()),B(()=>o().kind===`management`)?e(h,6):(V(o()),B(()=>o().kind===`quick-edit`||o().kind===`quick-review`)&&e(g,7))))))))}),U(e,t)}),D(m),ii(m,(e,t)=>ll?.(e,t),c),R((e,t,n)=>{J(m,`aria-label`,e),W(_,t),W(v,`${n??``} ${s()??``}`)},[()=>(V(Z),n(),B(()=>Z(`currentDecision`,n()))),()=>(V(Z),n(),B(()=>Z(`currentDecision`,n()))),()=>(V(Z),n(),B(()=>Z(`session`,n())))]),U(e,m),k(),i()}var ml=`Optional runner discovery selected(Optional organization runner discovery selected(List existing repository self-hosted runners without changing access.(List existing eligible runner groups and their runners; manual routing remains available without this grant.(Create the reviewed installation commit and installer-owned branch.(Include reviewed workflow files in the installation PR.(Create the reviewed installation PR without merging it.(Add only the reviewed repository access to an existing selected resource.(Inspect reusable organization configuration without changing its values.(Inspect effective repository overrides.(Inspect existing Secret names without reading their values.(Inspect inherited Secret access without replacing existing bindings.(Inspect existing trusted credential-health evidence.(Resolve repository identity and visibility.(Inspect installed workflows and repository files.(Inspect and provision selected GitHub Actions Secrets.(Inspect and provision selected GitHub Actions Variables.(Provision labels and issue resources.(Inspect and dispatch credential-health workflows.(Inspect CI workflow runs and jobs for exact producer identities.(Discover exact CI check and producer identities for guarded approval.(Inspect branch protection and rulesets.(Bootstrap a missing credential-health workflow.(Inspect and provision organization Actions Secrets.(Inspect and provision organization Actions Variables.(Provision and assign configured issue types.(Inspect selected Projects and their Status options; setup does not edit Project items.(Create the initial repository tag when no version tag exists.(Create an isolated branch for the Actions permission check.(Create the initial tag and an isolated branch for the Actions permission check.(Create the initial tag or an isolated branch for the Actions permission check.(Inspect and provision selected repository Actions Secrets.(Inspect and provision selected repository Actions Variables.(Provision labels for the selected issue workflows.(Dispatch credential-health checks for existing Secrets.(Prepare and clean isolated Actions checks for the bot PAT and any existing credentials.(Prepare a verified no-job workflow for the bot Actions check.(Inspect CI workflow runs and jobs for approval evidence.(Temporarily install credential health when its workflow is not confirmed installed.(Inspect branch protection and effective rulesets.(Inspect and provision selected organization Actions Secrets.(Inspect and provision selected organization Actions Variables.(Provision native issue types for the selected workflows.(Resolve repository and collaborator metadata.(Read repository branches, commits, and files for enabled runtime routes.(Dispatch selected release or hotfix workflows and check previous runs.(Check previous workflow runs before executing an enabled route.(Create managed branches, edit files, or merge selected release/hotfix changes.(Manage selected issue lifecycles, comments, and progress.(Manage selected pull request workflows, reviews, or autofix.(Verify current-head required checks and producer identities.(Load the PR approval assessment policy.(Select or authorize organization members for enabled workflows.(Assign configured organization issue types.(Update selected organization Projects.(Load the organization-scoped approval policy.(Secret provisioning enabled(Variable provisioning enabled(Issue workflows enabled(Credential health enabled(Initial tag or credential-health check enabled(Pull-request approval enabled(Guarded pull-request approval enabled(Release, hotfix, or guarded approval enabled(Temporary health workflow required(Organization Secret storage selected(Organization Variable storage selected(Issue type automation enabled(Organization Projects selected`.split(`(`),hl={"Optional runner discovery selected":`Consulta opcional de runners seleccionada`,"Optional organization runner discovery selected":`Consulta opcional de runners de organización seleccionada`,"List existing repository self-hosted runners without changing access.":`Consultar los runners self-hosted existentes del repositorio sin cambiar su acceso.`,"List existing eligible runner groups and their runners; manual routing remains available without this grant.":`Consultar los grupos de runners accesibles y sus runners; la configuración manual sigue disponible sin este permiso.`,"Create the reviewed installation commit and installer-owned branch.":`Crear el commit de instalación revisado y la rama del instalador.`,"Include reviewed workflow files in the installation PR.":`Incluir los workflows revisados en la PR de instalación.`,"Create the reviewed installation PR without merging it.":`Crear la PR de instalación revisada sin fusionarla.`,"Add only the reviewed repository access to an existing selected resource.":`Añadir solo el acceso del repositorio revisado a un recurso existente de visibilidad seleccionada.`,"Inspect reusable organization configuration without changing its values.":`Inspeccionar la configuración reutilizable de la organización sin cambiar sus valores.`,"Inspect effective repository overrides.":`Inspeccionar los ajustes efectivos del repositorio.`,"Inspect existing Secret names without reading their values.":`Inspeccionar los nombres de los Secrets existentes sin leer sus valores.`,"Inspect inherited Secret access without replacing existing bindings.":`Inspeccionar el acceso a los Secrets heredados sin sustituir los existentes.`,"Inspect existing trusted credential-health evidence.":`Inspeccionar la evidencia fiable existente sobre las credenciales.`,"Resolve repository identity and visibility.":`Comprobar la identidad y visibilidad del repositorio.`,"Inspect installed workflows and repository files.":`Examinar los workflows instalados y los archivos del repositorio.`,"Inspect and provision selected GitHub Actions Secrets.":`Examinar y configurar los Secrets de GitHub Actions seleccionados.`,"Inspect and provision selected GitHub Actions Variables.":`Examinar y configurar las Variables de GitHub Actions seleccionadas.`,"Provision labels and issue resources.":`Crear etiquetas y recursos de issues.`,"Inspect and dispatch credential-health workflows.":`Examinar y ejecutar los workflows de comprobación de credenciales.`,"Inspect CI workflow runs and jobs for exact producer identities.":`Examinar ejecuciones y jobs de CI para identificar sus productores exactos.`,"Discover exact CI check and producer identities for guarded approval.":`Identificar los checks de CI y sus productores exactos para la aprobación protegida.`,"Inspect branch protection and rulesets.":`Examinar la protección de ramas y sus reglas.`,"Bootstrap a missing credential-health workflow.":`Instalar provisionalmente el workflow de comprobación de credenciales que falta.`,"Inspect and provision organization Actions Secrets.":`Examinar y configurar Secrets de Actions en la organización.`,"Inspect and provision organization Actions Variables.":`Examinar y configurar Variables de Actions en la organización.`,"Provision and assign configured issue types.":`Crear y asignar los tipos de issue configurados.`,"Inspect selected Projects and their Status options; setup does not edit Project items.":`Consultar los Projects seleccionados y sus opciones de Status; el setup no modifica los elementos de los Projects.`,"Create the initial repository tag when no version tag exists.":`Crear el tag inicial si el repositorio aún no tiene ninguno de versión.`,"Create an isolated branch for the Actions permission check.":`Crear una rama aislada para comprobar el permiso de Actions.`,"Create the initial tag and an isolated branch for the Actions permission check.":`Crear el tag inicial y una rama aislada para comprobar el permiso de Actions.`,"Create the initial tag or an isolated branch for the Actions permission check.":`Crear el tag inicial o una rama aislada para comprobar el permiso de Actions.`,"Inspect and provision selected repository Actions Secrets.":`Examinar y configurar los Secrets de Actions seleccionados en el repositorio.`,"Inspect and provision selected repository Actions Variables.":`Examinar y configurar las Variables de Actions seleccionadas en el repositorio.`,"Provision labels for the selected issue workflows.":`Crear las etiquetas de los flujos de issues seleccionados.`,"Dispatch credential-health checks for existing Secrets.":`Ejecutar comprobaciones de credenciales para los Secrets existentes.`,"Prepare and clean isolated Actions checks for the bot PAT and any existing credentials.":`Preparar y limpiar las pruebas aisladas de Actions para el PAT del bot y las credenciales existentes.`,"Prepare a verified no-job workflow for the bot Actions check.":`Preparar un workflow verificado con los jobs desactivados para comprobar Actions con el PAT del bot.`,"Inspect CI workflow runs and jobs for approval evidence.":`Examinar ejecuciones y jobs de CI como prueba para la aprobación.`,"Temporarily install credential health when its workflow is not confirmed installed.":`Instalar temporalmente la comprobación de credenciales si su workflow no está confirmado.`,"Inspect branch protection and effective rulesets.":`Examinar la protección de ramas y las reglas efectivas.`,"Inspect and provision selected organization Actions Secrets.":`Examinar y configurar los Secrets de Actions seleccionados en la organización.`,"Inspect and provision selected organization Actions Variables.":`Examinar y configurar las Variables de Actions seleccionadas en la organización.`,"Provision native issue types for the selected workflows.":`Crear tipos de issue nativos para los flujos seleccionados.`,"Resolve repository and collaborator metadata.":`Consultar los metadatos del repositorio y sus colaboradores.`,"Read repository branches, commits, and files for enabled runtime routes.":`Leer ramas, commits y archivos del repositorio para las rutas de ejecución habilitadas.`,"Dispatch selected release or hotfix workflows and check previous runs.":`Ejecutar los flujos de release o hotfix seleccionados y comprobar ejecuciones anteriores.`,"Check previous workflow runs before executing an enabled route.":`Comprobar ejecuciones anteriores antes de iniciar un flujo habilitado.`,"Create managed branches, edit files, or merge selected release/hotfix changes.":`Crear ramas gestionadas, editar archivos o integrar cambios de release y hotfix.`,"Manage selected issue lifecycles, comments, and progress.":`Gestionar el ciclo de vida, los comentarios y el progreso de los issues seleccionados.`,"Manage selected pull request workflows, reviews, or autofix.":`Gestionar flujos de pull requests, revisiones o correcciones automáticas.`,"Verify current-head required checks and producer identities.":`Verificar los checks obligatorios y productores del commit actual.`,"Load the PR approval assessment policy.":`Leer la política de evaluación de aprobación de PRs.`,"Select or authorize organization members for enabled workflows.":`Seleccionar o autorizar miembros de la organización para los flujos activos.`,"Assign configured organization issue types.":`Asignar los tipos de issue configurados en la organización.`,"Update selected organization Projects.":`Actualizar los Projects seleccionados de la organización.`,"Load the organization-scoped approval policy.":`Leer la política de aprobación guardada en la organización.`,"Secret provisioning enabled":`Configuración de Secrets activada`,"Variable provisioning enabled":`Configuración de Variables activada`,"Issue workflows enabled":`Flujos de issues activados`,"Credential health enabled":`Comprobación de credenciales activada`,"Initial tag or credential-health check enabled":`Tag inicial o comprobación de credenciales activados`,"Pull-request approval enabled":`Aprobación de pull requests activada`,"Guarded pull-request approval enabled":`Aprobación protegida de pull requests activada`,"Release, hotfix, or guarded approval enabled":`Release, hotfix o aprobación protegida activados`,"Temporary health workflow required":`Hace falta un workflow temporal de comprobación`,"Organization Secret storage selected":`Se eligió guardar Secrets en la organización`,"Organization Variable storage selected":`Se eligió guardar Variables en la organización`,"Issue type automation enabled":`Automatización de tipos de issue activada`,"Organization Projects selected":`Se seleccionaron Projects de la organización`},gl={"Optional runner discovery selected":`Consultation facultative des runners sélectionnée`,"Optional organization runner discovery selected":`Consultation facultative des runners de l’organisation sélectionnée`,"List existing repository self-hosted runners without changing access.":`Consulter les runners auto-hébergés existants du dépôt sans modifier leurs accès.`,"List existing eligible runner groups and their runners; manual routing remains available without this grant.":`Consulter les groupes accessibles et leurs runners ; la configuration manuelle reste possible sans ce droit.`,"Create the reviewed installation commit and installer-owned branch.":`Créer le commit d’installation validé et la branche de l’installateur.`,"Include reviewed workflow files in the installation PR.":`Inclure les workflows validés dans la PR d’installation.`,"Create the reviewed installation PR without merging it.":`Créer la PR d’installation validée sans la fusionner.`,"Add only the reviewed repository access to an existing selected resource.":`Ajouter uniquement l’accès validé du dépôt à une ressource existante de visibilité sélectionnée.`,"Inspect reusable organization configuration without changing its values.":`Lire la configuration réutilisable de l’organisation sans modifier ses valeurs.`,"Inspect effective repository overrides.":`Lire les réglages effectifs du dépôt.`,"Inspect existing Secret names without reading their values.":`Lire les noms des Secrets existants sans accéder à leurs valeurs.`,"Inspect inherited Secret access without replacing existing bindings.":`Vérifier l’accès aux Secrets hérités sans remplacer les liaisons existantes.`,"Inspect existing trusted credential-health evidence.":`Lire les preuves fiables existantes de vérification des identifiants.`,"Resolve repository identity and visibility.":`Vérifier l’identité et la visibilité du dépôt.`,"Inspect installed workflows and repository files.":`Examiner les workflows installés et les fichiers du dépôt.`,"Inspect and provision selected GitHub Actions Secrets.":`Examiner et configurer les Secrets GitHub Actions choisis.`,"Inspect and provision selected GitHub Actions Variables.":`Examiner et configurer les Variables GitHub Actions choisies.`,"Provision labels and issue resources.":`Créer des étiquettes et des ressources pour les tickets.`,"Inspect and dispatch credential-health workflows.":`Examiner et lancer les workflows de vérification des identifiants.`,"Inspect CI workflow runs and jobs for exact producer identities.":`Examiner les exécutions et jobs CI pour identifier exactement leurs producteurs.`,"Discover exact CI check and producer identities for guarded approval.":`Identifier précisément les vérifications CI et leurs producteurs pour l’approbation encadrée.`,"Inspect branch protection and rulesets.":`Examiner la protection des branches et les ensembles de règles.`,"Bootstrap a missing credential-health workflow.":`Installer provisoirement le workflow de vérification des identifiants manquant.`,"Inspect and provision organization Actions Secrets.":`Examiner et configurer les Secrets Actions de l’organisation.`,"Inspect and provision organization Actions Variables.":`Examiner et configurer les Variables Actions de l’organisation.`,"Provision and assign configured issue types.":`Créer et attribuer les types de ticket configurés.`,"Inspect selected Projects and their Status options; setup does not edit Project items.":`Consulter les Projects sélectionnés et leurs options Status ; la configuration ne modifie aucun élément de Project.`,"Create the initial repository tag when no version tag exists.":`Créer le tag initial si le dépôt ne possède encore aucun tag de version.`,"Create an isolated branch for the Actions permission check.":`Créer une branche isolée pour vérifier l’autorisation Actions.`,"Create the initial tag and an isolated branch for the Actions permission check.":`Créer le tag initial et une branche isolée pour vérifier l’autorisation Actions.`,"Create the initial tag or an isolated branch for the Actions permission check.":`Créer le tag initial ou une branche isolée pour vérifier l’autorisation Actions.`,"Inspect and provision selected repository Actions Secrets.":`Examiner et configurer les Secrets Actions choisis dans le dépôt.`,"Inspect and provision selected repository Actions Variables.":`Examiner et configurer les Variables Actions choisies dans le dépôt.`,"Provision labels for the selected issue workflows.":`Créer les étiquettes des workflows de ticket choisis.`,"Dispatch credential-health checks for existing Secrets.":`Lancer des vérifications d’identifiants pour les Secrets existants.`,"Prepare and clean isolated Actions checks for the bot PAT and any existing credentials.":`Préparer et nettoyer les tests Actions isolés du PAT du bot et des identifiants existants.`,"Prepare a verified no-job workflow for the bot Actions check.":`Préparer un workflow vérifié aux jobs désactivés pour tester Actions avec le PAT du bot.`,"Inspect CI workflow runs and jobs for approval evidence.":`Examiner les exécutions et jobs CI comme preuve pour l’approbation.`,"Temporarily install credential health when its workflow is not confirmed installed.":`Installer provisoirement la vérification des identifiants si son workflow n’est pas confirmé.`,"Inspect branch protection and effective rulesets.":`Examiner la protection des branches et les règles applicables.`,"Inspect and provision selected organization Actions Secrets.":`Examiner et configurer les Secrets Actions choisis dans l’organisation.`,"Inspect and provision selected organization Actions Variables.":`Examiner et configurer les Variables Actions choisies dans l’organisation.`,"Provision native issue types for the selected workflows.":`Créer des types de ticket natifs pour les workflows choisis.`,"Resolve repository and collaborator metadata.":`Consulter les métadonnées du dépôt et de ses collaborateurs.`,"Read repository branches, commits, and files for enabled runtime routes.":`Lire les branches, commits et fichiers du dépôt pour les parcours d’exécution activés.`,"Dispatch selected release or hotfix workflows and check previous runs.":`Lancer les workflows de version ou correctif urgent choisis et vérifier les exécutions précédentes.`,"Check previous workflow runs before executing an enabled route.":`Vérifier les exécutions précédentes avant de lancer un parcours activé.`,"Create managed branches, edit files, or merge selected release/hotfix changes.":`Créer des branches gérées, modifier des fichiers ou fusionner les changements de version et correctif.`,"Manage selected issue lifecycles, comments, and progress.":`Gérer le cycle de vie, les commentaires et la progression des tickets choisis.`,"Manage selected pull request workflows, reviews, or autofix.":`Gérer les workflows de pull request, les revues ou les corrections automatiques.`,"Verify current-head required checks and producer identities.":`Vérifier les contrôles requis et leurs producteurs pour le commit courant.`,"Load the PR approval assessment policy.":`Lire la politique d’évaluation de l’approbation des PR.`,"Select or authorize organization members for enabled workflows.":`Sélectionner ou autoriser des membres de l’organisation pour les workflows activés.`,"Assign configured organization issue types.":`Attribuer les types de ticket configurés dans l’organisation.`,"Update selected organization Projects.":`Mettre à jour les projets de l’organisation choisis.`,"Load the organization-scoped approval policy.":`Lire la politique d’approbation stockée dans l’organisation.`,"Secret provisioning enabled":`Configuration des Secrets activée`,"Variable provisioning enabled":`Configuration des Variables activée`,"Issue workflows enabled":`Workflows de ticket activés`,"Credential health enabled":`Vérification des identifiants activée`,"Initial tag or credential-health check enabled":`Tag initial ou vérification des identifiants activés`,"Pull-request approval enabled":`Approbation des pull requests activée`,"Guarded pull-request approval enabled":`Approbation encadrée des pull requests activée`,"Release, hotfix, or guarded approval enabled":`Version, correctif urgent ou approbation encadrée activés`,"Temporary health workflow required":`Workflow temporaire de vérification requis`,"Organization Secret storage selected":`Stockage des Secrets dans l’organisation choisi`,"Organization Variable storage selected":`Stockage des Variables dans l’organisation choisi`,"Issue type automation enabled":`Automatisation des types de ticket activée`,"Organization Projects selected":`Projets de l’organisation choisis`},_l={"Optional runner discovery selected":`Consulta opcional de runners selecionada`,"Optional organization runner discovery selected":`Consulta opcional de runners da organização selecionada`,"List existing repository self-hosted runners without changing access.":`Consultar os runners self-hosted existentes do repositório sem alterar o acesso.`,"List existing eligible runner groups and their runners; manual routing remains available without this grant.":`Consultar os grupos acessíveis e os seus runners; a configuração manual continua disponível sem esta permissão.`,"Create the reviewed installation commit and installer-owned branch.":`Criar o commit de instalação revisto e o ramo do instalador.`,"Include reviewed workflow files in the installation PR.":`Incluir os workflows revistos na PR de instalação.`,"Create the reviewed installation PR without merging it.":`Criar a PR de instalação revista sem a integrar.`,"Add only the reviewed repository access to an existing selected resource.":`Adicionar apenas o acesso revisto do repositório a um recurso existente de visibilidade selecionada.`,"Inspect reusable organization configuration without changing its values.":`Consultar a configuração reutilizável da organização sem alterar os seus valores.`,"Inspect effective repository overrides.":`Consultar os ajustes efetivos do repositório.`,"Inspect existing Secret names without reading their values.":`Consultar os nomes dos Secrets existentes sem ler os seus valores.`,"Inspect inherited Secret access without replacing existing bindings.":`Consultar o acesso aos Secrets herdados sem substituir as ligações existentes.`,"Inspect existing trusted credential-health evidence.":`Consultar as provas fiáveis existentes da verificação das credenciais.`,"Resolve repository identity and visibility.":`Verificar a identidade e visibilidade do repositório.`,"Inspect installed workflows and repository files.":`Inspecionar os fluxos instalados e os ficheiros do repositório.`,"Inspect and provision selected GitHub Actions Secrets.":`Inspecionar e configurar os Secrets do GitHub Actions selecionados.`,"Inspect and provision selected GitHub Actions Variables.":`Inspecionar e configurar as Variables do GitHub Actions selecionadas.`,"Provision labels and issue resources.":`Criar etiquetas e recursos para questões.`,"Inspect and dispatch credential-health workflows.":`Inspecionar e executar os fluxos de verificação de credenciais.`,"Inspect CI workflow runs and jobs for exact producer identities.":`Inspecionar execuções e jobs CI para identificar exatamente os seus produtores.`,"Discover exact CI check and producer identities for guarded approval.":`Identificar as verificações CI e os seus produtores exatos para a aprovação protegida.`,"Inspect branch protection and rulesets.":`Inspecionar a proteção de ramos e os conjuntos de regras.`,"Bootstrap a missing credential-health workflow.":`Instalar temporariamente o fluxo de verificação de credenciais em falta.`,"Inspect and provision organization Actions Secrets.":`Inspecionar e configurar os Secrets de Actions da organização.`,"Inspect and provision organization Actions Variables.":`Inspecionar e configurar as Variables de Actions da organização.`,"Provision and assign configured issue types.":`Criar e atribuir os tipos de questão configurados.`,"Inspect selected Projects and their Status options; setup does not edit Project items.":`Consultar os Projects selecionados e as suas opções de Status; a configuração não altera os itens dos Projects.`,"Create the initial repository tag when no version tag exists.":`Criar a etiqueta inicial se o repositório ainda não tiver etiquetas de versão.`,"Create an isolated branch for the Actions permission check.":`Criar um ramo isolado para verificar a permissão de Actions.`,"Create the initial tag and an isolated branch for the Actions permission check.":`Criar a etiqueta inicial e um ramo isolado para verificar a permissão de Actions.`,"Create the initial tag or an isolated branch for the Actions permission check.":`Criar a etiqueta inicial ou um ramo isolado para verificar a permissão de Actions.`,"Inspect and provision selected repository Actions Secrets.":`Inspecionar e configurar os Secrets de Actions selecionados no repositório.`,"Inspect and provision selected repository Actions Variables.":`Inspecionar e configurar as Variables de Actions selecionadas no repositório.`,"Provision labels for the selected issue workflows.":`Criar etiquetas para os fluxos de questões selecionados.`,"Dispatch credential-health checks for existing Secrets.":`Executar verificações de credenciais para os Secrets existentes.`,"Prepare and clean isolated Actions checks for the bot PAT and any existing credentials.":`Preparar e limpar os testes isolados de Actions para o PAT do bot e as credenciais existentes.`,"Prepare a verified no-job workflow for the bot Actions check.":`Preparar um workflow verificado com os jobs desativados para testar Actions com o PAT do bot.`,"Inspect CI workflow runs and jobs for approval evidence.":`Inspecionar execuções e jobs CI como prova para aprovação.`,"Temporarily install credential health when its workflow is not confirmed installed.":`Instalar temporariamente a verificação de credenciais se o fluxo não estiver confirmado.`,"Inspect branch protection and effective rulesets.":`Inspecionar a proteção de ramos e as regras aplicáveis.`,"Inspect and provision selected organization Actions Secrets.":`Inspecionar e configurar os Secrets de Actions selecionados na organização.`,"Inspect and provision selected organization Actions Variables.":`Inspecionar e configurar as Variables de Actions selecionadas na organização.`,"Provision native issue types for the selected workflows.":`Criar tipos de questão nativos para os fluxos selecionados.`,"Resolve repository and collaborator metadata.":`Consultar os metadados do repositório e dos colaboradores.`,"Read repository branches, commits, and files for enabled runtime routes.":`Ler branches, commits e arquivos do repositório para os fluxos de execução habilitados.`,"Dispatch selected release or hotfix workflows and check previous runs.":`Executar os fluxos de release ou hotfix selecionados e verificar execuções anteriores.`,"Check previous workflow runs before executing an enabled route.":`Verificar execuções anteriores antes de iniciar um percurso ativo.`,"Create managed branches, edit files, or merge selected release/hotfix changes.":`Criar ramos geridos, editar ficheiros ou integrar alterações de release e hotfix.`,"Manage selected issue lifecycles, comments, and progress.":`Gerir o ciclo de vida, os comentários e o progresso das questões selecionadas.`,"Manage selected pull request workflows, reviews, or autofix.":`Gerir fluxos de pull requests, revisões ou correções automáticas.`,"Verify current-head required checks and producer identities.":`Verificar as verificações obrigatórias e os produtores do commit atual.`,"Load the PR approval assessment policy.":`Ler a política de avaliação de aprovação de PRs.`,"Select or authorize organization members for enabled workflows.":`Selecionar ou autorizar membros da organização para os fluxos ativos.`,"Assign configured organization issue types.":`Atribuir os tipos de questão configurados na organização.`,"Update selected organization Projects.":`Atualizar os Projetos selecionados da organização.`,"Load the organization-scoped approval policy.":`Ler a política de aprovação guardada na organização.`,"Secret provisioning enabled":`Configuração de Secrets ativa`,"Variable provisioning enabled":`Configuração de Variables ativa`,"Issue workflows enabled":`Fluxos de questões ativos`,"Credential health enabled":`Verificação de credenciais ativa`,"Initial tag or credential-health check enabled":`Etiqueta inicial ou verificação de credenciais ativas`,"Pull-request approval enabled":`Aprovação de pull requests ativa`,"Guarded pull-request approval enabled":`Aprovação protegida de pull requests ativa`,"Release, hotfix, or guarded approval enabled":`Release, hotfix ou aprovação protegida ativos`,"Temporary health workflow required":`É necessário um fluxo temporário de verificação`,"Organization Secret storage selected":`Armazenamento dos Secrets na organização selecionado`,"Organization Variable storage selected":`Armazenamento das Variables na organização selecionado`,"Issue type automation enabled":`Automatização de tipos de questão ativa`,"Organization Projects selected":`Projetos da organização selecionados`},vl=new Set(ml),yl={es:hl,fr:gl,pt:_l};function bl(e,t){return e===`en`?t:vl.has(t)?yl[e][t]:Z(`permissionUnknown`,e)}var xl={en:{"contents-write":`Actions was not tested because its temporary branch could not be created. Check repository Contents Write, repository selection and organization authorization.`,"contents-workflows-write":`Actions was not tested because its temporary workflow could not be written. Check repository Contents and Workflows Write, repository selection and organization authorization. Unverifiable does not mean Actions is missing.`,"dispatch-workflow":`Actions was not tested because no active workflow_dispatch workflow was found on the default branch. Install an eligible workflow before retrying.`},es:{"contents-write":`No se comprobó Actions porque no se pudo crear su rama temporal. Revisa Contents Write del repositorio, la selección del repositorio y la autorización de la organización.`,"contents-workflows-write":`No se comprobó Actions porque no se pudo escribir su workflow temporal. Revisa Contents y Workflows Write del repositorio, la selección del repositorio y la autorización de la organización. No verificable no significa que falte Actions.`,"dispatch-workflow":`No se comprobó Actions porque no se encontró un workflow activo con workflow_dispatch en la rama predeterminada. Instala uno antes de reintentar.`},fr:{"contents-write":`Actions n’a pas été testé car sa branche temporaire n’a pas pu être créée. Vérifiez Contents Write du dépôt, la sélection du dépôt et l’autorisation de l’organisation.`,"contents-workflows-write":`Actions n’a pas été testé car son workflow temporaire n’a pas pu être écrit. Vérifiez Contents et Workflows Write du dépôt, la sélection du dépôt et l’autorisation de l’organisation. Non vérifiable ne signifie pas qu’Actions manque.`,"dispatch-workflow":`Actions n’a pas été testé car aucun workflow actif avec workflow_dispatch n’a été trouvé sur la branche par défaut. Installez-en un avant de réessayer.`},pt:{"contents-write":`Actions não foi testado porque não foi possível criar a sua branch temporária. Verifique Contents Write do repositório, a seleção do repositório e a autorização da organização.`,"contents-workflows-write":`Actions não foi testado porque não foi possível escrever o seu workflow temporário. Verifique Contents e Workflows Write do repositório, a seleção do repositório e a autorização da organização. Não verificável não significa que falte Actions.`,"dispatch-workflow":`Actions não foi testado porque não foi encontrado um workflow ativo com workflow_dispatch na branch predefinida. Instale um antes de tentar novamente.`}};function Sl(e,t){if(e===`contents-write`||e===`contents-workflows-write`||e===`dispatch-workflow`)return xl[t][e]}function Cl(e,t){if(e.status===`unverifiable`&&e.permission===`Actions`&&e.level===`write`){let n=Sl(e.prerequisite,t);if(n)return n}return e.status===`verified`?Z(e.level===`write`?`permissionEvidenceVerifiedWrite`:e.scope===`organization`&&e.permission===`Projects`&&e.level===`read`?`permissionEvidencePrivateProject`:`permissionEvidenceVerified`,t):e.status===`missing`?Z(`permissionEvidenceMissing`,t):e.status===`available`?Z(e.publicReadEvidence===`public-organization-projects`?`permissionEvidencePublicProjects`:`permissionEvidencePublic`,t):e.level===`write`?Z(`permissionEvidenceWrite`,t):e.publicReadEvidence===`public-organization-projects`?Z(`permissionEvidencePublicProjects`,t):e.publicReadEvidence===`public-repository`?Z(`permissionEvidencePublic`,t):Z(`permissionEvidenceUnknownRead`,t)}var wl=H(` `),Tl=H(` `),El=H(`
                                                                                                • `),Dl=H(`

                                                                                                    `),Ol=H(`

                                                                                                    `),kl=H(``);function Al(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=X(t,`view`,8);ji();var o=kl(),s=P(o),c=L(P(s)),l=I(c,!0),u=L(c),d=I(u,!0),f=L(u),p=I(P(f),!0);D(f),D(s);var m=L(s,2),h=e=>{var t=Dl(),r=L(P(t)),i=I(r),o=L(r),s=I(o,!0),c=L(o,2);q(c,5,()=>(V(a()),B(()=>a().permissions.report?.checks??a().permissions.requirements??[])),K,(e,t)=>{var r=El(),i=P(r),a=P(i,!0),o=L(a),s=e=>{var n=wl(),r=I(P(n));D(n),R(()=>W(r,`GitHub · ${z(t),B(()=>z(t).permission)??``}`)),U(e,n)},c=gt(()=>(n(),V(nc),z(t),B(()=>n()!==`en`&&nc(n(),z(t).permission)!==z(t).permission)));G(o,e=>{z(c)&&e(s)});var l=L(o),u=I(l),d=L(l),f=I(d,!0),p=L(d),m=e=>{var r=Tl(),i=I(r,!0);R(e=>W(i,e),[()=>(V(bl),n(),z(t),B(()=>bl(n(),z(t).condition)))]),U(e,r)};G(p,e=>{z(t),B(()=>z(t).condition)&&e(m)});var h=L(p),g=e=>{var r=Tl(),i=I(r,!0);R(e=>W(i,e),[()=>(V(Cl),z(t),n(),B(()=>Cl(z(t),n())))]),U(e,r)};G(h,e=>{`status`in z(t)&&e(g)}),D(i);var _=L(i),v=P(_,!0),y=L(v),b=e=>{var r=Tl(),i=I(r,!0);R(e=>W(i,e),[()=>(V(rc),n(),z(t),B(()=>rc(n(),z(t).status)))]),U(e,r)},x=gt(()=>(z(t),V(rc),n(),B(()=>`status`in z(t)&&rc(n(),z(t).status))));G(y,e=>{z(x)&&e(b)}),D(_),D(r),R((e,t,n,r,i)=>{W(a,e),W(u,`${t??``} · ${n??``}`),W(f,r),W(v,i)},[()=>(V(nc),n(),z(t),B(()=>nc(n(),z(t).permission))),()=>(V(tc),n(),z(t),B(()=>tc(n(),z(t).scope))),()=>(V(tc),n(),z(t),B(()=>tc(n(),z(t).applicability))),()=>(V(bl),n(),z(t),B(()=>bl(n(),z(t).reason))),()=>(V(tc),n(),z(t),B(()=>tc(n(),z(t).level)))]),U(e,r)}),D(c);var l=I(L(c,2),!0);D(t),R((e,t,n,r)=>{W(i,`${e??``} ${t??``}`),W(s,n),W(l,r)},[()=>(V(a()),V(Z),n(),B(()=>a().permissions.role===`setup`?Z(`setupPat`,n()):Z(`botPat`,n()))),()=>(V(Z),n(),B(()=>Z(`access`,n()))),()=>(V(a()),V(Z),n(),B(()=>a().permissions.report?Z(`readOnlyCheck`,n()):Z(`provisionalGrants`,n()))),()=>(V(Z),n(),B(()=>Z(`conditionalGrants`,n())))]),U(e,t)},g=e=>{var t=Ol(),r=L(P(t)),i=I(r,!0),a=I(L(r),!0);D(t),R((e,t)=>{W(i,e),W(a,t)},[()=>(V(Z),n(),B(()=>Z(`permissionsFollow`,n()))),()=>(V(Z),n(),B(()=>Z(`permissionsFollowBody`,n())))]),U(e,t)};G(m,e=>{V(a()),B(()=>a().permissions)?e(h):e(g,-1)}),D(o),R((e,t,n)=>{J(o,`aria-label`,e),W(l,t),W(d,n),W(p,(V(a()),B(()=>a().batch?.organization??a().repository)))},[()=>(V(Z),n(),B(()=>Z(`setup`,n()))),()=>(V(Z),V(a()),n(),B(()=>Z(a().batch?`batchFocusTitle`:`repoFocus`,n()))),()=>(V(a()),V(Z),n(),B(()=>a().batch?Z(`batchFocusBody`,n(),{count:String(a().batch.targets.length)}):Z(`repoFocusBody`,n())))]),U(e,o),k(),i()}function jl(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=X(t,`report`,8,void 0);ji();var o=Pr(),s=F(o),c=e=>{{let t=A(()=>(V(Z),n(),B(()=>Z(`permissionSecretCollision`,n())))),r=A(()=>(V(Z),n(),B(()=>Z(`permissionSecretCollisionAction`,n()))));$a(e,{tone:`warning`,get title(){return z(t)},get message(){return z(r)}})}},l=gt(()=>(V(a()),B(()=>a()?.checks.some(e=>e.incident===`secret-collision`)))),u=e=>{{let t=A(()=>(V(Z),n(),B(()=>Z(`permissionProbeCleanupPending`,n())))),r=A(()=>(V(Z),n(),B(()=>Z(`permissionProbeCleanupAction`,n()))));$a(e,{tone:`warning`,get title(){return z(t)},get message(){return z(r)}})}},d=gt(()=>(V(a()),B(()=>a()?.checks.some(e=>e.cleanupPending))));G(s,e=>{z(l)?e(c):z(d)&&e(u,1)}),U(e,o),k(),i()}var Ml=H(`
                                                                                                  • `),Nl=H(`

                                                                                                      `);function Pl(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=X(t,`effects`,8),o={files:`receiptFiles`,secrets:`receiptSecrets`,labels:`receiptLabels`,"issue-types":`receiptIssueTypes`,variables:`receiptVariables`,"initial-tag":`receiptInitialTag`},s={completed:`effectCompleted`,skipped:`effectSkipped`,"needs-inspection":`effectInspect`,"not-started":`effectNotStarted`,"in-progress":`effectInProgress`},c={local:`scopeLocal`,repository:`scopeRepository`,organization:`scopeOrganization`,mixed:`scopeMixed`};ji();var l=Nl(),u=P(l),d=I(u,!0),f=L(u,2);q(f,5,a,e=>e.id,(e,t)=>{var r=Ml(),i=P(r),a=I(i,!0),l=L(i),u=L(l),d=e=>{var r=Nr();R(e=>W(r,`· ${e??``}`),[()=>(V(Z),z(t),n(),B(()=>Z(c[z(t).scope],n())))]),U(e,r)};G(u,e=>{z(t),B(()=>z(t).scope)&&e(d)}),D(r),R((e,t)=>{W(a,e),W(l,` — ${t??``}`)},[()=>(z(t),V(Z),n(),B(()=>o[z(t).id]?Z(o[z(t).id],n()):z(t).id)),()=>(V(Z),z(t),n(),B(()=>Z(s[z(t).state],n())))]),U(e,r)}),D(f),D(l),R(e=>W(d,e),[()=>(V(Z),n(),B(()=>Z(`resourceReceipt`,n())))]),U(e,l),k(),i()}var Fl=H(`
                                                                                                    • `),Il=H(`

                                                                                                        `,1),Ll=H(`

                                                                                                        `);function Rl(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=X(t,`correction`,8);ji();var o=Ll(),s=P(o),c=I(s,!0),l=L(s,2),u=I(l,!0),d=L(l,2),f=e=>{var t=Il(),r=F(t),i=I(P(r));D(r);var o=L(r,2);q(o,5,()=>(V(a()),B(()=>a().addedGrants)),K,(e,t)=>{var n=Fl(),r=I(P(n),!0);D(n),R(()=>W(r,z(t))),U(e,n)}),D(o),R(e=>W(i,`${e??``}:`),[()=>(V(Z),n(),B(()=>Z(`updatedSetupPatGrants`,n())))]),U(e,t)};G(d,e=>{V(a()),B(()=>a().stage===`final`&&a().addedGrants.length)&&e(f)});var p=L(d,2),m=I(p);D(o),R((e,t,n,r)=>{J(o,`aria-label`,e),W(c,t),W(u,n),J(p,`href`,(V(a()),B(()=>a().url))),W(m,`${r??``} ↗`)},[()=>(V(Z),n(),B(()=>Z(`updatedSetupPatTitle`,n()))),()=>(V(Z),n(),B(()=>Z(`updatedSetupPatTitle`,n()))),()=>(V(Z),n(),B(()=>Z(`updatedSetupPatBody`,n()))),()=>(V(Z),n(),B(()=>Z(`updatedSetupPatLink`,n())))]),U(e,o),k(),i()}var zl=H(`

                                                                                                        `,1);function Bl(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi();ji();var a=zl(),o=F(a),s=I(o,!0),c=L(o,2),l=P(c),u=L(l),d=I(u);D(c),R((e,t,n)=>{W(s,e),W(l,`${t??``} `),J(u,`href`,Ba.firstWorkflow),W(d,`${n??``} ↗`)},[()=>Z(`botRenewal`,n()),()=>Z(`setupNextWorkflow`,n()),()=>Z(`firstWorkflowGuide`,n())]),U(e,a),k(),i()}var Vl=H(`

                                                                                                        `),Hl=H(`

                                                                                                        `),Ul=H(`

                                                                                                        `),Wl=H(` `),Gl=H(`

                                                                                                        `),Kl=H(`
                                                                                                      • `),ql=H(`
                                                                                                          `),Jl=H(`

                                                                                                          `),Yl=H(`
                                                                                                          `),Xl=H(`copilot doctor --read-only`),Zl=H(`

                                                                                                          `);function Ql(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=M(),o=M(),s=M(),c=M(),l=M(),u=M(),d=M(),f=M(),p=M(),m=X(t,`management`,8,!1),h=X(t,`batch`,8,!1),g=X(t,`outcome`,8),_=X(t,`controller`,8),v=X(t,`onClose`,8),y=X(t,`onDoctor`,8,async()=>void 0),b=X(t,`doctor`,8,void 0),x=X(t,`detail`,8,void 0),S=X(t,`permissionReport`,8,void 0),C=X(t,`setupPatCorrection`,8,void 0),w={permissions:[`reasonPermissions`,`nextPermissions`],storage:[`reasonStorage`,`nextStorage`],configuration:[`reasonConfiguration`,`nextConfiguration`],"session-expired":[`reasonExpired`,`nextExpired`],cancelled:[`reasonCancelled`,`nextCancelled`],provider:[`reasonProvider`,`nextProvider`],"rate-limit":[`reasonRateLimit`,`nextRateLimit`],unknown:[`reasonUnknown`,`nextUnknown`]};Tn(()=>V(x()),()=>{N(a,x()?.effects?.some(e=>e.state===`completed`)===!0)}),Tn(()=>(V(h()),n(),V(m()),V(g()),z(a)),()=>{N(o,h()?Z(`batchNextActions`,n()):m()?ta(n())[g()===`complete`&&z(a)?`finished`:g()===`partial`?`inspectAdjustment`:g()===`complete`?`inspectionFinished`:`inspectionStopped`]:g()===`complete`?Z(`resultApplied`,n()):g()===`dry-run`?Z(`resultNoChanges`,n()):g()===`cancelled`||g()===`blocked`?Z(`resultStopped`,n()):Z(`resultPartial`,n()))}),Tn(()=>(V(h()),n(),V(m()),V(g()),z(a)),()=>{N(s,h()?Z(`batchResultBody`,n()):m()?ta(n())[g()===`complete`&&z(a)?`finishedBody`:g()===`partial`?`partial`:`inspectionBody`]:g()===`complete`?Z(`resultCompleteBody`,n()):g()===`partial`?Z(`resultPartialBody`,n()):Z(`resultNoChangesBody`,n()))}),Tn(()=>(V(g()),V(x()),V(S())),()=>{N(c,(g()===`blocked`||g()===`partial`)&&x()?.reasonCode===`permissions`?S():void 0)}),Tn(()=>z(c),()=>{N(l,z(c)?.checks.some(e=>e.cleanupPending===!0)===!0)}),Tn(()=>z(c),()=>{N(u,z(c)?.checks.some(e=>e.incident===`secret-collision`)===!0)}),Tn(()=>(z(c),V(x())),()=>{N(d,z(c)?.role===`workflow`?`reasonWorkflowPermissions`:w[x()?.reasonCode??`unknown`][0])}),Tn(()=>(V(g()),V(h()),V(x()),z(l),z(u),V(C())),()=>{N(f,(g()===`blocked`||h()&&g()===`partial`)&&x()?.reasonCode===`permissions`&&(h()||x().mutationStarted===!1)&&!z(l)&&!z(u)&&C())}),Tn(()=>z(c),()=>{N(p,z(c)?z(c).checks.filter(e=>e.applicability===`required`&&e.status!==`verified`&&e.status!==`available`):[])}),En(),ji();var ee=Zl(),te=P(ee),ne=I(te,!0),re=L(te),ie=I(re,!0),ae=L(re,2),oe=e=>{var t=Ul(),r=P(t),i=P(r),a=I(i),o=L(i);D(r);var s=L(r,2),c=e=>{var t=Vl(),r=P(t),i=I(r),a=L(r);D(t),R((e,t)=>{W(i,`${e??``}:`),W(a,` ${t??``}`)},[()=>(V(Z),n(),B(()=>Z(`progress`,n()))),()=>(V(Zi),V(x()),n(),B(()=>Zi(x().stoppedStage,n())))]),U(e,t)};G(s,e=>{V(x()),B(()=>x()?.stoppedStage)&&e(c)});var f=L(s,2),p=P(f),m=I(p),h=L(p);D(f);var _=L(f,2),v=P(_),y=I(v),b=L(v);D(_);var S=L(_,2),C=e=>{var t=Hl(),r=P(t),i=I(r),a=I(L(r,2),!0);D(t),R(e=>{W(i,`${e??``}:`),W(a,(V(x()),B(()=>x().diagnosticRef)))},[()=>(V(Z),n(),B(()=>Z(`diagnosticReference`,n())))]),U(e,t)};G(S,e=>{V(x()),B(()=>x()?.diagnosticRef)&&e(C)}),D(t),R((e,t,n,r,i,s)=>{W(a,`${e??``}:`),W(o,` ${t??``}`),W(m,`${n??``}:`),W(h,` ${r??``}`),W(y,`${i??``}:`),W(b,` ${s??``}`)},[()=>(V(Z),n(),B(()=>Z(`whatHappened`,n()))),()=>(V(Z),z(d),n(),B(()=>Z(z(d),n()))),()=>(V(Z),n(),B(()=>Z(`alreadyChanged`,n()))),()=>(z(u),V(Z),n(),z(l),V(x()),V(g()),B(()=>z(u)?Z(`permissionSecretCollision`,n()):z(l)?Z(`permissionProbeCleanupPending`,n()):x()?.mutationStarted||g()===`partial`?Z(`inspectPartial`,n()):Z(`noChanges`,n()))),()=>(V(Z),n(),B(()=>Z(`nextAction`,n()))),()=>(z(u),V(Z),n(),z(l),V(g()),V(x()),B(()=>z(u)?Z(`permissionSecretCollisionAction`,n()):z(l)?Z(`permissionProbeCleanupAction`,n()):g()===`partial`?`${Z(`inspectPartial`,n())} ${Z(w[x()?.reasonCode??`unknown`][1],n())}`:Z(w[x()?.reasonCode??`unknown`][1],n())))]),U(e,t)};G(ae,e=>{(g()===`blocked`||g()===`cancelled`||g()===`partial`)&&e(oe)});var se=L(ae,2),ce=e=>{var t=Jl(),r=P(t),i=I(r,!0),a=L(r,2),o=I(a,!0),s=L(a,2),l=P(s),u=I(l),d=L(l);D(s);var f=L(s,2),m=e=>{var t=ql();q(t,5,()=>z(p),K,(e,t)=>{var r=Kl(),i=P(r),a=I(i,!0),o=L(i),s=e=>{var n=Wl(),r=I(P(n));D(n),R(()=>W(r,`GitHub · ${z(t),B(()=>z(t).permission)??``}`)),U(e,n)},l=gt(()=>(n(),V(nc),z(t),B(()=>n()!==`en`&&nc(n(),z(t).permission)!==z(t).permission)));G(o,e=>{z(l)&&e(s)});var u=L(o),d=L(u),f=I(d,!0),p=L(d),m=e=>{var r=Gl(),i=I(r,!0);R(e=>W(i,e),[()=>(V(Cl),z(t),n(),B(()=>Cl(z(t),n())))]),U(e,r)};G(p,e=>{z(c),B(()=>z(c).identityStatus===`valid`)&&e(m)}),D(r),R((e,t,n,r)=>{W(a,e),W(u,` — ${t??``} · ${n??``} · `),W(f,r)},[()=>(V(nc),n(),z(t),B(()=>nc(n(),z(t).permission))),()=>(V(tc),n(),z(t),B(()=>tc(n(),z(t).scope))),()=>(V(tc),n(),z(t),B(()=>tc(n(),z(t).level))),()=>(z(c),V(tc),n(),z(t),V(Z),B(()=>z(c).identityStatus===`valid`?tc(n(),z(t).status):Z(`permissionGrantNotChecked`,n())))]),U(e,r)}),D(t),U(e,t)},h=e=>{var t=Gl(),r=I(t,!0);R(e=>W(r,e),[()=>(V(Z),n(),B(()=>Z(`permissionReportNoFailedGrant`,n())))]),U(e,t)};G(f,e=>{z(p),B(()=>z(p).length)?e(m):(z(c),B(()=>z(c).identityStatus===`valid`)&&e(h,1))}),D(t),R((e,n,r,a,s)=>{J(t,`aria-label`,e),W(i,n),W(o,r),W(u,`${a??``}:`),W(d,` ${s??``}`)},[()=>(V(Z),n(),B(()=>Z(`permissionReportTitle`,n()))),()=>(V(Z),n(),B(()=>Z(`permissionReportTitle`,n()))),()=>(V(Z),n(),B(()=>Z(`permissionReportLead`,n()))),()=>(V(Z),n(),B(()=>Z(`permissionIdentity`,n()))),()=>(V(Z),z(c),n(),B(()=>Z(z(c).identityStatus===`valid`?`permissionIdentityValid`:z(c).identityStatus===`invalid`?`permissionIdentityInvalid`:`permissionIdentityUnknown`,n())))]),U(e,t)};G(se,e=>{z(c)&&e(ce)});var le=L(se,2),ue=e=>{Pl(e,{get effects(){return V(x()),B(()=>x().effects)}})};G(le,e=>{V(x()),B(()=>x()?.effects?.length)&&e(ue)});var de=L(le,2),fe=e=>{Rl(e,{get correction(){return C()}})};G(de,e=>{z(f)&&C()&&e(fe)});var pe=L(de,2),me=I(pe,!0),he=L(pe,2),ge=e=>{var t=Gl(),r=I(t,!0);R(e=>W(r,e),[()=>(V(Z),n(),B(()=>Z(`batchCleanup`,n())))]),U(e,t)};G(he,e=>{h()&&e(ge)});var _e=L(he,2),ve=e=>{Bl(e,{})};G(_e,e=>{g()===`complete`&&!m()&&!h()&&e(ve)});var ye=L(_e,2),be=e=>{var t=Gl(),r=I(t,!0);R(e=>W(r,e),[()=>(V(Z),n(),B(()=>Z(`doctorHelp`,n())))]),U(e,t)};G(ye,e=>{!m()&&!h()&&e(be)});var xe=L(ye,2),Se=e=>{var t=Yl(),r=P(t),i=e=>{var t=Gl(),r=I(t,!0);R(e=>W(r,e),[()=>(V(Z),n(),B(()=>Z(`doctorRunning`,n())))]),U(e,t)},a=e=>{var t=Gl(),r=I(t);R((e,t,n)=>W(r,`${e??``} ${t??``} ${n??``}`),[()=>(V(Z),V(b()),n(),B(()=>Z(b().healthy?`doctorPassed`:`doctorWarnings`,n()))),()=>(V(Z),n(),V(b()),B(()=>Z(`doctorCounts`,n(),{pass:String(b().pass??0),warn:String(b().warn??0),fail:String(b().fail??0),skipped:String(b().skipped??0)}))),()=>(V(Z),n(),B(()=>Z(`doctorSecretLimit`,n())))]),U(e,t)},o=e=>{var t=Gl(),r=I(t,!0);R(e=>W(r,e),[()=>(V(Z),n(),B(()=>Z(`doctorFailed`,n())))]),U(e,t)};G(r,e=>{V(b()),B(()=>b()?.status===`running`)?e(i):(V(b()),B(()=>b()?.status===`complete`)?e(a,1):(V(b()),B(()=>b()?.status===`failed`)&&e(o,2)))});var s=L(r,2),c=e=>{{let t=A(()=>(V(Z),n(),B(()=>Z(`doctorRun`,n()))));Xa(e,{get label(){return z(t)},variant:`secondary`,get onClick(){return y()}})}};G(s,e=>{V(_()),V(b()),B(()=>_()&&b()?.status!==`running`&&b()?.status!==`complete`)&&e(c)}),D(t),U(e,t)};G(xe,e=>{g()===`complete`&&!m()&&!h()&&e(Se)});var Ce=L(xe,2),we=P(Ce),T=I(we,!0),Te=L(we),E=e=>{U(e,Xl())};G(Te,e=>{h()||e(E)}),D(Ce);var Ee=L(Ce),De=e=>{{let t=A(()=>(V(Z),n(),B(()=>Z(`closeSession`,n()))));Xa(e,{get label(){return z(t)},get onClick(){return v()}})}};G(Ee,e=>{_()&&e(De)}),D(ee),ii(ee,(e,t)=>ll?.(e,t),()=>1),R((e,t)=>{W(ne,g()===`complete`?`✓`:`!`),W(ie,z(o)),W(me,e),W(T,t)},[()=>(z(u),V(Z),n(),z(l),z(s),B(()=>z(u)?Z(`permissionSecretCollision`,n()):z(l)?Z(`permissionProbeCleanupPending`,n()):z(s))),()=>(V(Z),n(),B(()=>Z(`patSettings`,n())))]),U(e,ee),k(),i()}var $l=H(`

                                                                                                          `);function eu(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=X(t,`effects`,8,void 0);ji();var o=$l(),s=L(P(o)),c=I(s,!0),l=L(s),u=I(l,!0),d=L(l),f=e=>{Pl(e,{get effects(){return a()}})};G(d,e=>{V(a()),B(()=>a()?.length)&&e(f)}),D(o),R((e,t)=>{W(c,e),W(u,t)},[()=>(V(Z),n(),B(()=>Z(`working`,n()))),()=>(V(Z),n(),B(()=>Z(`workingBody`,n())))]),U(e,o),k(),i()}var tu={en:{title:`Checking PAT access`,lead:`Each permission is checked separately. Temporary test resources are removed after verification.`,pending:`Waiting`,checking:`Checking read access`,creating:`Creating temporary resource`,reading:`Reading temporary resource`,deleting:`Removing temporary resource`,verified:`Verified`,failed:`Needs attention`,skipped:`Checked after plan approval if required`},es:{title:`Comprobando el acceso del PAT`,lead:`Cada permiso se comprueba por separado. Los recursos temporales se eliminan tras verificarlos.`,pending:`Pendiente`,checking:`Comprobando lectura`,creating:`Creando recurso temporal`,reading:`Leyendo recurso temporal`,deleting:`Eliminando recurso temporal`,verified:`Verificado`,failed:`Requiere atención`,skipped:`Se comprobará tras aprobar el plan si es necesario`},fr:{title:`Vérification des accès du PAT`,lead:`Chaque permission est vérifiée séparément. Les ressources temporaires sont supprimées après vérification.`,pending:`En attente`,checking:`Vérification de la lecture`,creating:`Création d’une ressource temporaire`,reading:`Lecture de la ressource temporaire`,deleting:`Suppression de la ressource temporaire`,verified:`Vérifié`,failed:`Intervention nécessaire`,skipped:`Vérifiée après approbation du plan si nécessaire`},pt:{title:`A verificar o acesso do PAT`,lead:`Cada permissão é verificada separadamente. Os recursos temporários são removidos após a verificação.`,pending:`Pendente`,checking:`A verificar a leitura`,creating:`A criar recurso temporário`,reading:`A ler recurso temporário`,deleting:`A remover recurso temporário`,verified:`Verificado`,failed:`Requer atenção`,skipped:`Verificada após a aprovação do plano se necessário`}};function nu(e,t){return tu[e][t]}var ru={en:{unavailable:`The check did not complete. Review the terminal result.`,"cleanup-pending":`Cleanup is unresolved; recovery is required before retrying.`,"secret-collision":`GitHub reported an existing Secret at the random test name. Setup stopped; inspect the GitHub Secret audit trail.`,unsupported:`No isolated probe exists for this permission yet.`},es:{unavailable:`La comprobación no terminó. Revisa el resultado en el terminal.`,"cleanup-pending":`La limpieza está pendiente; hay que recuperarla antes de reintentar.`,"secret-collision":`GitHub encontró un Secret existente con el nombre aleatorio de prueba. El setup se detuvo; revisa el historial del Secret.`,unsupported:`Aún no hay una prueba aislada para este permiso.`},fr:{unavailable:`La vérification n’a pas abouti. Consultez le résultat dans le terminal.`,"cleanup-pending":`Le nettoyage reste à terminer avant de réessayer.`,"secret-collision":`GitHub a trouvé un Secret existant sous le nom de test aléatoire. La configuration s’est arrêtée ; consultez l’historique du Secret.`,unsupported:`Aucun test isolé n’existe encore pour cette permission.`},pt:{unavailable:`A verificação não terminou. Consulte o resultado no terminal.`,"cleanup-pending":`A limpeza está pendente; é necessária recuperação antes de tentar novamente.`,"secret-collision":`O GitHub encontrou um Secret existente com o nome aleatório de teste. A configuração parou; consulte o histórico do Secret.`,unsupported:`Ainda não existe um teste isolado para esta permissão.`}},iu={en:{closed:e=>`Temporary Issue #${e} was closed but could not be deleted. Remove it in GitHub before retrying.`,unresolved:e=>`Temporary Issue #${e} could not be deleted or confirmed closed. Inspect it in GitHub before retrying.`},es:{closed:e=>`El Issue temporal #${e} se cerró, pero no se pudo borrar. Elimínalo en GitHub antes de reintentar.`,unresolved:e=>`No se pudo borrar ni confirmar el cierre del Issue temporal #${e}. Revísalo en GitHub antes de reintentar.`},fr:{closed:e=>`L’Issue temporaire n° ${e} a été fermée mais n’a pas pu être supprimée. Supprimez-la dans GitHub avant de réessayer.`,unresolved:e=>`La suppression et la fermeture de l’Issue temporaire n° ${e} n’ont pas pu être confirmées. Vérifiez-la dans GitHub avant de réessayer.`},pt:{closed:e=>`A Issue temporária n.º ${e} foi fechada, mas não pôde ser eliminada. Elimine-a no GitHub antes de tentar novamente.`,unresolved:e=>`Não foi possível eliminar nem confirmar o fecho da Issue temporária n.º ${e}. Verifique-a no GitHub antes de tentar novamente.`}},au={en:e=>`GitHub HTTP ${e}`,es:e=>`Error HTTP ${e} de GitHub`,fr:e=>`Erreur HTTP ${e} de GitHub`,pt:e=>`Erro HTTP ${e} do GitHub`};function ou(e,t){let n=Sl(t,e);if(n)return n;let r=/^issue-(closed|unresolved)-([1-9][0-9]*)$/u.exec(t);return r?iu[e][r[1]](r[2]):/^http-[1-5][0-9]{2}$/u.test(t)?au[e](t.slice(5)):t===`unavailable`||t===`cleanup-pending`||t===`secret-collision`||t===`unsupported`?ru[e][t]:ru[e].unavailable}var su=H(` `),cu=H(`
                                                                                                        • `),lu=H(`

                                                                                                            `);function uu(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=M(),o=X(t,`permissions`,8);function s(e){return o().progress?.filter(t=>t.requirementId===e).at(-1)}Tn(()=>V(o()),()=>{N(a,o().progress?.at(-1))}),En(),ji();var c=lu(),l=P(c),u=I(l,!0),d=L(l,2),f=I(d,!0),p=L(d,2),m=P(p),h=e=>{var t=Nr();R((e,n)=>W(t,`${e??``}: ${n??``}`),[()=>(V(nc),n(),V(o()),z(a),B(()=>nc(n(),o().requirements?.find(e=>e.id===z(a).requirementId)?.permission??z(a).requirementId))),()=>(V(nu),n(),z(a),B(()=>nu(n(),z(a).phase)))]),U(e,t)};G(m,e=>{z(a)&&e(h)}),D(p);var g=L(p,2);q(g,5,()=>(V(o()),B(()=>o().requirements??[])),e=>e.id,(e,t)=>{let r=A(()=>(z(t),B(()=>s(z(t).id))));var i=cu();let a;var o=P(i),c=I(o,!0),l=L(o,2),u=P(l),d=I(u,!0),f=L(u),p=I(f),m=L(f),h=e=>{var t=su(),i=I(t,!0);R(e=>W(i,e),[()=>(V(ou),n(),V(z(r)),B(()=>ou(n(),z(r).detail)))]),U(e,t)};G(m,e=>{V(z(r)),B(()=>z(r)?.phase===`failed`&&z(r).detail)&&e(h)}),D(l);var g=I(L(l,2),!0);D(i),R((e,t,n,o)=>{a=ui(i,1,``,null,a,{"permission-progress-done":z(r)?.phase===`verified`,"permission-progress-failed":z(r)?.phase===`failed`}),W(c,(V(z(r)),B(()=>z(r)?.phase===`verified`?`✓`:z(r)?.phase===`failed`?`!`:z(r)?`◌`:`·`))),W(d,e),W(p,`${t??``} · ${n??``}`),W(g,o)},[()=>(V(nc),n(),z(t),B(()=>nc(n(),z(t).permission))),()=>(V(tc),n(),z(t),B(()=>tc(n(),z(t).scope))),()=>(V(tc),n(),z(t),B(()=>tc(n(),z(t).level))),()=>(V(nu),n(),V(z(r)),B(()=>nu(n(),z(r)?.phase??`pending`)))]),U(e,i)}),D(g),D(c),R((e,t)=>{W(u,e),W(f,t)},[()=>(V(nu),n(),B(()=>nu(n(),`title`))),()=>(V(nu),n(),B(()=>nu(n(),`lead`)))]),U(e,c),k(),i()}function du(e,t){return!t&&/^[A-Fa-f0-9]{16}$/u.test(e.trim())}var fu=H(`

                                                                                                            `);function pu(e,t){O(t,!1);let n=()=>Y(Q,`$setupLocale`,r),[r,i]=zi(),a=X(t,`busy`,8),o=X(t,`onPair`,8),s=X(t,`mode`,8,`pair`),c=M(``),l=M();async function u(){if(!du(z(c),a()))return;let e=z(c).trim();N(c,``),await o()(e),await hr(),z(l)?.isConnected&&!z(l).disabled&&z(l).focus()}ji();var d=fu(),f=P(d),p=I(P(f),!0);D(f);var m=L(f,2),h=I(P(m),!0);D(m);var g=L(m,2),_=I(g,!0),v=L(g,2),y=P(v),b=I(y,!0),x=L(y,2);xi(x),Ai(x,e=>N(l,e),()=>z(l));var S=L(x,2),C=I(S,!0),w=L(S,2),ee=P(w);{let e=A(()=>(V(Z),V(s()),n(),B(()=>Z(s()===`pair`?`pairButton`:`takeOver`,n())))),t=A(()=>(V(du),z(c),V(a()),B(()=>!du(z(c),a()))));Xa(ee,{get label(){return z(e)},arrow:!0,onClick:u,get disabled(){return z(t)}})}D(w),D(v),D(d),R((e,t,n,r,i,o,s)=>{J(d,`aria-label`,e),W(p,t),W(h,n),W(_,r),W(b,i),x.disabled=a(),J(x,`placeholder`,o),W(C,s)},[()=>(V(Z),V(s()),n(),B(()=>Z(s()===`pair`?`pairTitle`:`takeOver`,n()))),()=>(V(Z),n(),B(()=>Z(`privateSession`,n()))),()=>(V(Z),V(s()),n(),B(()=>Z(s()===`pair`?`pairTitle`:`takeOver`,n()))),()=>(V(Z),V(s()),n(),B(()=>Z(s()===`pair`?`pairBody`:`readOnlyBody`,n()))),()=>(V(Z),n(),B(()=>Z(`pairLabel`,n()))),()=>(V(Z),n(),B(()=>Z(`pairPlaceholder`,n()))),()=>(V(Z),n(),B(()=>Z(`pairHelp`,n())))]),Cr(`submit`,v,e=>{e.preventDefault(),u()}),Ei(x,()=>z(c),e=>N(c,e)),U(e,d),k(),i()}var mu={"Could not close the local session. Check the terminal before trying again.":`The local session could not be confirmed closed. The result is retained. Check the terminal before trying again.`,"The local setup session is unavailable.":`The local setup session is unavailable. Check the terminal; you may need to restart setup.`,"Connection lost. The CLI may have stopped. Check the terminal before trying again.":`Connection lost. The CLI may have stopped. Check the terminal before trying again.`,"Could not join this local session.":`Could not join this local session. Check the terminal and pair again.`,"Could not connect to the local setup session. Check the terminal and pair again.":`Could not connect to the local setup session. Check the terminal and pair again.`,"Pairing was rejected.":`Pairing was rejected. Check the code in the launching terminal.`,"Invalid local pairing response.":`The local pairing response was invalid. Restart setup from the terminal.`,"Could not pair this browser.":`Could not pair this browser. Check the terminal and try again.`,"The request was rejected.":`The local request was rejected. Refresh the page and check the terminal.`,"Could not submit this answer.":`Could not submit this answer. Refresh the page and try again.`,"Cancellation failed.":`Cancellation failed. Check whether setup has already started applying before closing.`,"Takeover failed.":`Could not take control. Re-enter the pairing code from the launching terminal.`,"Invalid local host or request context.":`The local request context was rejected. Open the exact URL printed in the terminal.`,"Invalid request origin.":`The request came from another origin. Open the exact local URL printed in the terminal.`,"JSON required.":`The local request format was invalid. Refresh the page and try again.`,"Too many pairing attempts. Restart setup.":`Too many incorrect pairing attempts. Restart setup from the terminal.`,"Too many pairing attempts. Wait 30 seconds and retry.":`Too many incorrect pairing attempts. Wait 30 seconds and try the code again; terminal setup remains available.`,"Incorrect pairing code. Check the terminal.":`Incorrect pairing code. Check the launching terminal.`,"Incorrect pairing code. Check the launching output.":`Incorrect pairing code. Check the launching output.`,"Pair this browser using the code printed by the CLI.":`Pair this browser using the code printed by the CLI.`,"This tab is read-only.":`This tab is read-only. Enter the pairing code again to take control.`,"Invalid answer.":`The answer was invalid. Review the current question and try again.`,"Control moved to another tab.":`Control moved to another tab. This tab is now read-only.`,"This question changed. Refresh the current state.":`This question changed. Refresh the page before answering again.`,"This setup has already started applying or ended.":`Setup has already started applying or ended. Inspect the current result before retrying.`,"Only the controller can close a finished session.":`Only the controlling tab can close this finished session.`,"Method not allowed.":`This local request is not allowed. Refresh the page.`,"Not found.":`The requested local page was not found. Open the URL printed in the terminal.`,"Invalid local request.":`The local request was invalid. Refresh the page and try again.`,"Body too large.":`The submitted answer is too large. Shorten it and try again.`,"JSON object required.":`The local request format was invalid. Refresh the page and try again.`,"Could not retry discovery.":`Could not refresh the GitHub suggestions. Retry or use verified manual entry.`,"Could not return to the previous question.":`Could not return to the previous question. Refresh the page and try again.`,"Invalid question revision.":`The question changed. Refresh the page before going back.`,"No earlier question is available here.":`There is no earlier question in this stage. Continue or return to the plan review.`,"Read-only verification failed.":`Read-only verification failed. Check the terminal and retry once.`,"Read-only verification failed. Check the terminal.":`Read-only verification failed. Check the terminal and retry once.`,"Read-only verification is unavailable or already running.":`Read-only verification is unavailable or already running. Check the current result before retrying.`},hu={en:mu,es:{"Could not close the local session. Check the terminal before trying again.":`No se ha podido confirmar el cierre de la sesión local. El resultado se conserva. Consulta la terminal antes de volver a intentarlo.`,"The local setup session is unavailable.":`La sesión local no está disponible. Revisa la terminal; quizá debas reiniciar la configuración.`,"Connection lost. The CLI may have stopped. Check the terminal before trying again.":`Se perdió la conexión. Es posible que el CLI se haya detenido. Revisa la terminal antes de reintentar.`,"Could not join this local session.":`No se pudo acceder a esta sesión local. Revisa la terminal y vuelve a vincular el navegador.`,"Could not connect to the local setup session. Check the terminal and pair again.":`No se pudo conectar con la sesión local. Revisa la terminal y vuelve a vincular el navegador.`,"Pairing was rejected.":`Se rechazó la vinculación. Comprueba el código en la terminal que inició el proceso.`,"Invalid local pairing response.":`La respuesta de vinculación local no es válida. Reinicia la configuración desde la terminal.`,"Could not pair this browser.":`No se pudo vincular este navegador. Revisa la terminal y vuelve a intentarlo.`,"The request was rejected.":`Se rechazó la petición local. Actualiza la página y revisa la terminal.`,"Could not submit this answer.":`No se pudo enviar la respuesta. Actualiza la página y vuelve a intentarlo.`,"Cancellation failed.":`No se pudo cancelar. Comprueba si ya se han empezado a aplicar cambios antes de cerrar.`,"Takeover failed.":`No se pudo tomar el control. Vuelve a introducir el código de la terminal inicial.`,"Invalid local host or request context.":`Se rechazó el contexto de la petición local. Abre la URL exacta que aparece en la terminal.`,"Invalid request origin.":`La petición llegó desde otro origen. Abre la URL local exacta de la terminal.`,"JSON required.":`El formato de la petición local no es válido. Actualiza la página y reinténtalo.`,"Too many pairing attempts. Restart setup.":`Demasiados intentos de vinculación fallidos. Reinicia la configuración desde la terminal.`,"Too many pairing attempts. Wait 30 seconds and retry.":`Demasiados intentos de vinculación fallidos. Espera 30 segundos y vuelve a probar el código; puedes seguir con el setup en la terminal.`,"Incorrect pairing code. Check the terminal.":`Código de vinculación incorrecto. Comprueba la terminal inicial.`,"Incorrect pairing code. Check the launching output.":`Código de vinculación incorrecto. Comprueba la salida de inicio.`,"Pair this browser using the code printed by the CLI.":`Vincula este navegador con el código mostrado por el CLI.`,"This tab is read-only.":`Esta pestaña es de solo lectura. Introduce otra vez el código para tomar el control.`,"Invalid answer.":`La respuesta no es válida. Revisa la pregunta actual e inténtalo de nuevo.`,"Control moved to another tab.":`El control pasó a otra pestaña. Esta ahora es de solo lectura.`,"This question changed. Refresh the current state.":`La pregunta cambió. Actualiza la página antes de volver a responder.`,"This setup has already started applying or ended.":`La configuración ya empezó a aplicarse o terminó. Revisa el resultado antes de reintentar.`,"Only the controller can close a finished session.":`Solo la pestaña que tiene el control puede cerrar esta sesión finalizada.`,"Method not allowed.":`Esta petición local no está permitida. Actualiza la página.`,"Not found.":`No se encontró la página local solicitada. Abre la URL de la terminal.`,"Invalid local request.":`La petición local no es válida. Actualiza la página y reinténtalo.`,"Body too large.":`La respuesta enviada es demasiado larga. Acórtala y reinténtalo.`,"JSON object required.":`El formato de la petición local no es válido. Actualiza la página y reinténtalo.`,"Could not retry discovery.":`No se pudieron actualizar las sugerencias de GitHub. Reinténtalo o introduce datos verificados manualmente.`,"Could not return to the previous question.":`No se pudo volver a la pregunta anterior. Actualiza la página y reinténtalo.`,"Invalid question revision.":`La pregunta cambió. Actualiza la página antes de volver atrás.`,"No earlier question is available here.":`No hay una pregunta anterior en esta etapa. Continúa o vuelve a revisar el plan.`,"Read-only verification failed.":`Falló la comprobación de solo lectura. Revisa la terminal y vuelve a intentarlo una vez.`,"Read-only verification failed. Check the terminal.":`Falló la comprobación de solo lectura. Revisa la terminal y vuelve a intentarlo una vez.`,"Read-only verification is unavailable or already running.":`La comprobación de solo lectura no está disponible o ya se está ejecutando. Revisa el resultado antes de reintentar.`},fr:{"Could not close the local session. Check the terminal before trying again.":`La fermeture de la session locale n’a pas pu être confirmée. Le résultat est conservé. Consultez le terminal avant de réessayer.`,"The local setup session is unavailable.":`La session locale est indisponible. Vérifiez le terminal ; vous devrez peut-être relancer la configuration.`,"Connection lost. The CLI may have stopped. Check the terminal before trying again.":`Connexion perdue. Le CLI s’est peut-être arrêté. Vérifiez le terminal avant de réessayer.`,"Could not join this local session.":`Impossible de rejoindre cette session locale. Vérifiez le terminal et associez de nouveau le navigateur.`,"Could not connect to the local setup session. Check the terminal and pair again.":`Impossible de se connecter à la session locale. Vérifiez le terminal et associez de nouveau le navigateur.`,"Pairing was rejected.":`L’association a été refusée. Vérifiez le code dans le terminal de lancement.`,"Invalid local pairing response.":`La réponse d’association locale est invalide. Relancez la configuration depuis le terminal.`,"Could not pair this browser.":`Impossible d’associer ce navigateur. Vérifiez le terminal et réessayez.`,"The request was rejected.":`La demande locale a été refusée. Actualisez la page et vérifiez le terminal.`,"Could not submit this answer.":`Impossible d’envoyer cette réponse. Actualisez la page et réessayez.`,"Cancellation failed.":`Annulation impossible. Vérifiez si des changements ont déjà commencé avant de fermer.`,"Takeover failed.":`Impossible de prendre le contrôle. Ressaisissez le code du terminal de lancement.`,"Invalid local host or request context.":`Le contexte de la demande locale a été refusé. Ouvrez l’URL exacte affichée dans le terminal.`,"Invalid request origin.":`La demande vient d’une autre origine. Ouvrez l’URL locale exacte du terminal.`,"JSON required.":`Le format de la demande locale est invalide. Actualisez la page et réessayez.`,"Too many pairing attempts. Restart setup.":`Trop de tentatives d’association incorrectes. Relancez la configuration depuis le terminal.`,"Too many pairing attempts. Wait 30 seconds and retry.":`Trop de tentatives d’association incorrectes. Attendez 30 secondes puis ressaisissez le code ; la configuration par terminal reste disponible.`,"Incorrect pairing code. Check the terminal.":`Code d’association incorrect. Vérifiez le terminal de lancement.`,"Incorrect pairing code. Check the launching output.":`Code d’association incorrect. Vérifiez la sortie de lancement.`,"Pair this browser using the code printed by the CLI.":`Associez ce navigateur avec le code affiché par le CLI.`,"This tab is read-only.":`Cet onglet est en lecture seule. Ressaisissez le code pour prendre le contrôle.`,"Invalid answer.":`La réponse est invalide. Revoyez la question actuelle et réessayez.`,"Control moved to another tab.":`Le contrôle est passé à un autre onglet. Celui-ci est maintenant en lecture seule.`,"This question changed. Refresh the current state.":`La question a changé. Actualisez la page avant de répondre de nouveau.`,"This setup has already started applying or ended.":`La configuration est déjà en cours d’application ou terminée. Inspectez le résultat avant de réessayer.`,"Only the controller can close a finished session.":`Seul l’onglet qui détient le contrôle peut fermer cette session terminée.`,"Method not allowed.":`Cette demande locale n’est pas autorisée. Actualisez la page.`,"Not found.":`La page locale demandée est introuvable. Ouvrez l’URL affichée dans le terminal.`,"Invalid local request.":`La demande locale est invalide. Actualisez la page et réessayez.`,"Body too large.":`La réponse envoyée est trop longue. Raccourcissez-la et réessayez.`,"JSON object required.":`Le format de la demande locale est invalide. Actualisez la page et réessayez.`,"Could not retry discovery.":`Impossible d’actualiser les suggestions GitHub. Réessayez ou saisissez des données vérifiées manuellement.`,"Could not return to the previous question.":`Impossible de revenir à la question précédente. Actualisez la page et réessayez.`,"Invalid question revision.":`La question a changé. Actualisez la page avant de revenir en arrière.`,"No earlier question is available here.":`Il n’y a pas de question précédente à cette étape. Continuez ou revenez à la révision du plan.`,"Read-only verification failed.":`La vérification en lecture seule a échoué. Consultez le terminal et réessayez une fois.`,"Read-only verification failed. Check the terminal.":`La vérification en lecture seule a échoué. Consultez le terminal et réessayez une fois.`,"Read-only verification is unavailable or already running.":`La vérification en lecture seule est indisponible ou déjà en cours. Consultez le résultat avant de réessayer.`},pt:{"Could not close the local session. Check the terminal before trying again.":`Não foi possível confirmar o encerramento da sessão local. O resultado foi preservado. Consulte o terminal antes de tentar novamente.`,"The local setup session is unavailable.":`A sessão local não está disponível. Verifique o terminal; poderá ter de reiniciar a configuração.`,"Connection lost. The CLI may have stopped. Check the terminal before trying again.":`Ligação perdida. O CLI pode ter parado. Verifique o terminal antes de tentar novamente.`,"Could not join this local session.":`Não foi possível entrar nesta sessão local. Verifique o terminal e volte a emparelhar o navegador.`,"Could not connect to the local setup session. Check the terminal and pair again.":`Não foi possível ligar à sessão local. Verifique o terminal e volte a emparelhar o navegador.`,"Pairing was rejected.":`O emparelhamento foi recusado. Confirme o código no terminal de lançamento.`,"Invalid local pairing response.":`A resposta de emparelhamento local é inválida. Reinicie a configuração a partir do terminal.`,"Could not pair this browser.":`Não foi possível emparelhar este navegador. Verifique o terminal e tente novamente.`,"The request was rejected.":`O pedido local foi recusado. Atualize a página e verifique o terminal.`,"Could not submit this answer.":`Não foi possível enviar a resposta. Atualize a página e tente novamente.`,"Cancellation failed.":`Não foi possível cancelar. Confirme se a aplicação das alterações já começou antes de fechar.`,"Takeover failed.":`Não foi possível assumir o controlo. Volte a introduzir o código do terminal de lançamento.`,"Invalid local host or request context.":`O contexto do pedido local foi recusado. Abra o URL exato apresentado no terminal.`,"Invalid request origin.":`O pedido veio de outra origem. Abra o URL local exato do terminal.`,"JSON required.":`O formato do pedido local é inválido. Atualize a página e tente novamente.`,"Too many pairing attempts. Restart setup.":`Demasiadas tentativas incorretas de emparelhamento. Reinicie a configuração no terminal.`,"Too many pairing attempts. Wait 30 seconds and retry.":`Demasiadas tentativas incorretas de emparelhamento. Aguarde 30 segundos e volte a introduzir o código; a configuração no terminal continua disponível.`,"Incorrect pairing code. Check the terminal.":`Código de emparelhamento incorreto. Verifique o terminal de lançamento.`,"Incorrect pairing code. Check the launching output.":`Código de emparelhamento incorreto. Verifique a saída de lançamento.`,"Pair this browser using the code printed by the CLI.":`Emparelhe este navegador com o código apresentado pelo CLI.`,"This tab is read-only.":`Este separador é apenas de leitura. Reintroduza o código para assumir o controlo.`,"Invalid answer.":`A resposta é inválida. Reveja a pergunta atual e tente novamente.`,"Control moved to another tab.":`O controlo passou para outro separador. Este é agora apenas de leitura.`,"This question changed. Refresh the current state.":`A pergunta mudou. Atualize a página antes de voltar a responder.`,"This setup has already started applying or ended.":`A configuração já começou a ser aplicada ou terminou. Inspecione o resultado antes de tentar novamente.`,"Only the controller can close a finished session.":`Só o separador que detém o controlo pode fechar esta sessão terminada.`,"Method not allowed.":`Este pedido local não é permitido. Atualize a página.`,"Not found.":`A página local pedida não foi encontrada. Abra o URL apresentado no terminal.`,"Invalid local request.":`O pedido local é inválido. Atualize a página e tente novamente.`,"Body too large.":`A resposta enviada é demasiado longa. Encurte-a e tente novamente.`,"JSON object required.":`O formato do pedido local é inválido. Atualize a página e tente novamente.`,"Could not retry discovery.":`Não foi possível atualizar as sugestões do GitHub. Tente novamente ou introduza dados verificados manualmente.`,"Could not return to the previous question.":`Não foi possível voltar à pergunta anterior. Atualize a página e tente novamente.`,"Invalid question revision.":`A pergunta mudou. Atualize a página antes de voltar atrás.`,"No earlier question is available here.":`Não há uma pergunta anterior nesta etapa. Continue ou volte à revisão do plano.`,"Read-only verification failed.":`A verificação só de leitura falhou. Consulte o terminal e tente mais uma vez.`,"Read-only verification failed. Check the terminal.":`A verificação só de leitura falhou. Consulte o terminal e tente mais uma vez.`,"Read-only verification is unavailable or already running.":`A verificação só de leitura não está disponível ou já está em curso. Consulte o resultado antes de tentar novamente.`}};function gu(e,t){let n=hu[t]??mu;return Object.prototype.hasOwnProperty.call(n,e)?n[e]:Z(`unknownLocalError`,t)}var _u=H(`
                                                                                                            `),vu=H(`
                                                                                                            `),yu=H(` `,1),bu=H(``),xu=H(`
                                                                                                            `,1),Su=H(`
                                                                                                            `);function Cu(e,t){O(t,!1);let n=()=>Y(o,`$session`,i),r=()=>Y(Q,`$setupLocale`,i),[i,a]=zi(),o=Hi();Kr(()=>{let e=Q.subscribe(e=>{document.documentElement.lang=e,document.documentElement.dir=`ltr`,document.title=`Copilot · ${Z(`studio`,e)}`}),t=window.setInterval(()=>{n().paired&&!n().closed&&!n().view?.outcome&&o.poll()},900);return()=>{window.clearInterval(t),e()}});async function s(){window.confirm(Z(n().view?.batch?.phase===`applying`?`batchStopConfirm`:`cancelConfirm`,r()))&&await o.cancel()}async function c(e){let t=n().view?.promptRevision;t!==void 0&&await o.submit(t,e)}async function l(){let e=n().view?.promptRevision;e!==void 0&&await o.retryDiscovery(e)}async function u(){let e=n().view?.promptRevision;e!==void 0&&await o.back(e)}ji();var d=Su(),f=P(d);{let e=A(()=>n().view?.journey),t=A(()=>n().view?.surface===`management`);la(f,{get journey(){return z(e)},get management(){return z(t)}})}var p=L(f,2),m=P(p);{let e=A(()=>n().view?.repository),t=A(()=>n().closed===!0);_a(m,{get repository(){return z(e)},get closed(){return z(t)}})}var h=L(m,2),g=P(h);Ha(g,{});var _=L(g,2),v=e=>{{let t=A(()=>Z(`translationPreviewTitle`,r())),n=A(()=>Z(`translationPreviewBody`,r()));$a(e,{tone:`warning`,get title(){return z(t)},get message(){return z(n)}})}};G(_,e=>{r()!==`en`&&e(v)});var y=L(_,2),b=e=>{za(e,{get view(){return n().view}})};G(y,e=>{n().paired&&n().view?.surface!==`management`&&e(b)});var x=L(y,2),S=e=>{var t=_u(),i=L(P(t));D(t),R(e=>W(i,` ${e??``}`),[()=>Z(`reviewPass`,r(),{pass:String(n().view.journey.choiceReviewPass)})]),U(e,t)};G(x,e=>{n().view?.journey?.choiceReviewPass&&n().view.journey.choiceReviewPass>1&&!n().view.outcome&&e(S)});var C=L(x,2),w=e=>{var t=vu(),n=P(t);{let e=A(()=>Z(`sessionClosed`,r())),t=A(()=>Z(`sessionClosedBody`,r()));$a(n,{tone:`success`,get title(){return z(e)},get message(){return z(t)}})}D(t),ii(t,(e,t)=>ll?.(e,t),()=>1),R(e=>J(t,`aria-label`,e),[()=>Z(`sessionClosed`,r())]),U(e,t)};G(C,e=>{n().closed&&e(w)});var ee=L(C,2),te=e=>{var t=yu(),i=F(t);{let e=A(()=>Z(`readOnly`,r())),t=A(()=>Z(`readOnlyBody`,r()));$a(i,{tone:`warning`,get title(){return z(e)},get message(){return z(t)}})}pu(L(i,2),{mode:`takeover`,get busy(){return n().busy},get onPair(){return o.takeOver}}),U(e,t)};G(ee,e=>{!n().closed&&!n().controller&&n().view&&e(te)});var ne=L(ee,2),re=e=>{{let t=A(()=>Z(`attention`,r())),i=A(()=>gu(n().error,r()));$a(e,{tone:`error`,get title(){return z(t)},get message(){return z(i)}})}};G(ne,e=>{n().error&&e(re)});var ie=L(ne,2),ae=e=>{{let t=A(()=>Z(n().view.message.tone===`success`?`checked`:n().view.message.tone===`warning`?`pleaseNote`:n().view.message.tone===`error`?`attention`:`progressUpdate`,r())),i=A(()=>Na(n().view.message,r()));$a(e,{get tone(){return n().view.message.tone},get title(){return z(t)},get message(){return z(i)},get link(){return n().view.message.link}})}};G(ie,e=>{n().view?.message&&!n().view.outcome&&e(ae)});var oe=L(ie,2),se=e=>{{let t=A(()=>n().view.permissions?.report);jl(e,{get report(){return z(t)}})}};G(oe,e=>{n().view?.batch&&e(se)});var ce=L(oe,2),le=e=>{pu(e,{get busy(){return n().busy},get onPair(){return o.pair}})},ue=e=>{var t=yu(),r=F(t),i=e=>{Yc(e,{get batch(){return n().view.batch},mode:`closed`,get controller(){return n().controller},get busy(){return n().busy}})};G(r,e=>{n().view.batch&&e(i)});var a=L(r,2);{let e=A(()=>!!n().view.batch),t=A(()=>n().view.surface===`management`),r=A(()=>n().view.permissions?.report);Ql(a,{get batch(){return z(e)},get management(){return z(t)},get outcome(){return n().view.outcome},get detail(){return n().view.resultDetail},get permissionReport(){return z(r)},get setupPatCorrection(){return n().view.setupPatCorrection},get doctor(){return n().view.doctor},get controller(){return n().controller},get onDoctor(){return o.runDoctor},get onClose(){return o.close}})}U(e,t)},de=e=>{var t=xu(),i=F(t),a=P(i);pl(a,{get prompt(){return n().view.prompt},get revision(){return n().view.revision},get promptRevision(){return n().view.promptRevision},get controller(){return n().controller},get busy(){return n().busy},onSubmit:c,onRetryDiscovery:l,onBack:u}),Al(L(a,2),{get view(){return n().view}}),D(i);var o=L(i,2),d=e=>{var t=bu(),i=I(t,!0);R(e=>{t.disabled=n().busy,W(i,e)},[()=>Z(`cancelSetup`,r())]),wr(`click`,t,s),U(e,t)};G(o,e=>{n().controller&&n().view.journey?.current!==`Apply`&&e(d)}),U(e,t)},fe=e=>{var t=yu(),r=F(t);Yc(r,{get batch(){return n().view.batch},mode:`progress`,get controller(){return n().controller},get busy(){return n().busy},onStop:s});var i=L(r,2),a=e=>{uu(e,{get permissions(){return n().view.permissions}})};G(i,e=>{n().view.permissions?.progress?.length&&!n().view.permissions.report&&e(a)}),U(e,t)},pe=e=>{uu(e,{get permissions(){return n().view.permissions}})},me=e=>{{let t=A(()=>n().view?.resultDetail?.effects);eu(e,{get effects(){return z(t)}})}};G(ce,e=>{n().paired?n().view?.outcome?e(ue,1):n().view?.prompt?e(de,2):n().view?.batch?e(fe,3):n().view?.permissions?.progress?.length&&!n().view.permissions.report?e(pe,4):e(me,-1):e(le)});var he=L(ce,2),ge=P(he),_e=L(ge,2),ve=L(_e,2);D(he),D(h),D(p),D(d),R((e,t,n)=>{W(ge,`${e??``} `),W(_e,` ${t??``} `),W(ve,` ${n??``}`)},[()=>Z(`footerLocal`,r()),()=>Z(`footerCloud`,r()),()=>Z(`footerGithub`,r())]),U(e,d),k(),a()}Tr([`click`]),Vr(Cu,{target:document.getElementById(`app`)}); \ No newline at end of file diff --git a/build/web/assets/index-ERZ4A62w.css b/build/web/assets/index-ERZ4A62w.css deleted file mode 100644 index e093f445e..000000000 --- a/build/web/assets/index-ERZ4A62w.css +++ /dev/null @@ -1 +0,0 @@ -code.svelte-1spw6vv,bdi.svelte-1spw6vv{overflow-wrap:anywhere}.runner-details.svelte-1spw6vv{margin-block:1rem}.installation-review.svelte-44ckab{min-width:0;margin-block:1.25rem}.routes.svelte-44ckab{padding-inline-start:1.25rem}.routes.svelte-44ckab li:where(.svelte-44ckab){padding-block:.5rem}code.svelte-44ckab,pre.svelte-44ckab,bdi.svelte-44ckab{white-space:pre-wrap;overflow-wrap:anywhere}pre.svelte-44ckab{max-height:28rem;padding:.75rem;font-size:.8rem;overflow:auto}details.svelte-44ckab{margin-block:.75rem}.batch-targets.svelte-17t72gm{gap:1rem;margin-block:1rem;display:grid}.batch-target.svelte-17t72gm{border:1px solid var(--line);border-radius:.8rem;min-width:0;padding:1rem}h3.svelte-17t72gm{overflow-wrap:anywhere;margin-top:0}.target-status.svelte-17t72gm{font-weight:600}pre.svelte-17t72gm{max-height:24rem;padding:.75rem;font-size:.78rem;overflow:auto}code.svelte-17t72gm{overflow-wrap:anywhere}details.svelte-17t72gm{margin-block:.75rem}.batch-buttons.svelte-17t72gm{flex-wrap:wrap;gap:.75rem;display:flex}.batch-technical.svelte-17t72gm{margin-top:1.25rem}fieldset.svelte-1qngno{border:0;min-width:0;margin:1rem 0;padding:0}legend.svelte-1qngno{margin-bottom:.5rem;font-weight:600}.repository-list.svelte-1qngno{gap:.5rem;display:grid}.repository-row.svelte-1qngno{border:1px solid var(--line);border-radius:.75rem;align-items:start;gap:.75rem;padding:.75rem;display:flex}.repository-row.svelte-1qngno input:where(.svelte-1qngno){flex:none;width:auto;margin-top:.25rem}.repository-row.svelte-1qngno span:where(.svelte-1qngno){overflow-wrap:anywhere;min-width:0}.repository-row.svelte-1qngno small:where(.svelte-1qngno){margin-top:.25rem;display:block}.batch-actions.svelte-1qngno{flex-wrap:wrap;align-items:center;gap:.5rem;margin:.75rem 0;display:flex}details.svelte-1qngno{margin:1rem 0}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--page:#f6f8f7;--side:#102423;--side-line:#31504b;--side-text:#e8f5f0;--surface:#fff;--surface-soft:#f3f7f5;--line:#d7e3df;--control-line:#748b82;--text:#18312c;--muted:#58736b;--accent:#176e5e;--accent-strong:#075743;--accent-tint:#dff4e9;--focus:#966000;--warn:#76510d;--warn-bg:#fff6df;--error:#a73434;--error-bg:#fff0ec;--shadow:0 18px 50px #1e403414;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--page:#0d1716;--side:#10201d;--side-line:#294a41;--side-text:#eaf7f1;--surface:#182722;--surface-soft:#20342d;--line:#355247;--control-line:#688f7f;--text:#eaf5ee;--muted:#adccbc;--accent:#7ed6ac;--accent-strong:#a4edc2;--accent-tint:#234b38;--focus:#ffca6a;--warn:#ffdd8a;--warn-bg:#463b21;--error:#ffc0b7;--error-bg:#4a2b2a;--shadow:0 18px 50px #00000024}}:root[data-theme=dark]{--page:#0d1716;--side:#10201d;--side-line:#294a41;--side-text:#eaf7f1;--surface:#182722;--surface-soft:#20342d;--line:#355247;--control-line:#688f7f;--text:#eaf5ee;--muted:#adccbc;--accent:#7ed6ac;--accent-strong:#a4edc2;--accent-tint:#234b38;--focus:#ffca6a;--warn:#ffdd8a;--warn-bg:#463b21;--error:#ffc0b7;--error-bg:#4a2b2a;--shadow:0 18px 50px #00000024}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--page);color:var(--text);margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}a{color:var(--accent-strong);text-underline-offset:3px}.card,.context-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:15px}.primary{border:1px solid var(--accent-strong);background:var(--accent-strong);color:var(--side);border-radius:8px;min-height:43px;padding:12px 18px;font-size:12px;font-weight:800}:root[data-theme=light] .primary,:root:not([data-theme=dark]) .primary{color:#fff}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .primary{color:#0d2419}}.primary span{margin-left:18px}.primary:hover:not(:disabled){filter:brightness(1.1)}.secondary{border:1px solid var(--control-line);color:var(--text);background:var(--surface-soft);border-radius:8px;padding:11px 16px;font-size:12px;font-weight:700}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.shell{grid-template-columns:minmax(250px,288px) minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--side);color:var(--side-text);flex-direction:column;min-height:100vh;padding:34px 28px;display:flex;position:sticky;top:0}.brand{letter-spacing:-.035em;align-items:center;gap:13px;display:flex}.brand-mark{color:#0c3021;background:#75d9a0;border-radius:11px;place-items:center;width:37px;height:37px;font-size:26px;line-height:1;display:grid}.brand strong{font-size:23px;line-height:1;display:block}.brand small{letter-spacing:.23em;color:#aac8bd;margin-top:5px;font-size:9px;font-weight:800;display:block}.rail-caption{color:#9dbab0;letter-spacing:.18em;margin-block:78px 22px;margin-inline-start:7px;font-size:10px;font-weight:800}.sidebar .description{color:#afcabe}.steps{margin:0;padding:0;list-style:none;position:relative}.steps:before{content:"";top:22px;bottom:22px;background:var(--side-line);width:1px;position:absolute;inset-inline-start:19px}.steps li{color:#a6c2b7;border-radius:10px;align-items:center;gap:16px;min-height:55px;padding-block:8px;padding-inline:1px 12px;font-size:13px;font-weight:600;display:flex;position:relative}.steps li.current{color:#fff;background:#25443b}.steps li.completed{color:#dbf2e4}.step-index{border:1px solid var(--side-line);background:var(--side);letter-spacing:.04em;border-radius:50%;flex:0 0 37px;place-items:center;height:37px;font-size:11px;font-weight:800;display:grid}.steps .current .step-index{color:#102b1d;background:#80dba8;border-color:#80dba8}.steps .completed .step-index{color:#b9f8c9;background:#204c37;border-color:#45966b;font-size:15px}.sidebar-note{border:1px solid var(--side-line);background:#ffffff09;border-radius:13px;gap:13px;margin-top:auto;padding:19px 16px;display:flex}.sidebar-note>span{color:#8fe1ae;font-size:20px}.sidebar-note strong{font-size:12px}.sidebar-note p{color:#afcabe;margin:6px 0 0;font-size:11px;line-height:1.6}.main{min-width:0}.topbar{border-bottom:1px solid var(--line);background:var(--surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;min-height:80px;padding:20px clamp(24px,4vw,70px);display:flex}.breadcrumb{flex:240px;align-items:center;gap:12px;min-width:0;font-size:12px;display:flex}.breadcrumb span:first-child{color:var(--muted);letter-spacing:.14em;font-size:10px;font-weight:800}.breadcrumb span:nth-child(2){color:var(--muted)}.breadcrumb strong{white-space:normal;overflow-wrap:anywhere;min-width:0;line-height:1.5}.top-actions{flex-shrink:0;align-items:center;gap:18px;display:flex}.local-pill{color:var(--accent-strong);background:var(--accent-tint);letter-spacing:.08em;white-space:nowrap;border-radius:6px;padding:8px 11px;font-size:10px;font-weight:800}.pulse-dot{background:currentColor;border-radius:50%;width:6px;height:6px;margin-right:5px;display:inline-block}.theme-switch{border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;padding:3px;display:flex}.theme-switch button{color:var(--muted);background:0 0;border:0;border-radius:5px;min-width:31px;height:27px;font-size:11px}.theme-switch button.active{background:var(--surface);color:var(--text);font-weight:800;box-shadow:0 1px 4px #0000001f}.content{max-width:1320px;margin:0 auto;padding:52px clamp(24px,4vw,70px) 35px}.eyebrow{color:var(--accent-strong);letter-spacing:.18em;align-items:center;gap:10px;font-size:10px;font-weight:900;display:flex}.eyebrow-line{background:var(--accent);width:21px;height:2px}.eyebrow-count{color:var(--muted);letter-spacing:.09em;margin-inline-start:8px}h1{letter-spacing:-.045em;max-width:860px;margin:15px 0 13px;font-size:clamp(30px,3vw,45px);line-height:1.15}.lede{color:var(--muted);max-width:700px;margin:0 0 30px;font-size:14px;line-height:1.65}.workspace-grid{grid-template-columns:minmax(0,1.65fr) minmax(230px,.8fr);align-items:start;gap:19px;display:grid}.workspace-grid:has(.plan-review){grid-template-columns:1fr}.workspace-grid:has(.plan-review) .context-column{grid-template-columns:repeat(2,minmax(0,1fr))}.context-column{gap:17px;display:grid}.context-card{box-shadow:none;padding:25px}.context-icon{background:var(--accent-tint);width:32px;height:32px;color:var(--accent-strong);border-radius:8px;place-items:center;font-size:19px;display:grid}.context-card h2{letter-spacing:-.015em;margin:17px 0 7px;font-size:14px}.context-card p,.context-card>small{color:var(--muted);margin:0 0 12px;font-size:12px;line-height:1.65;display:block}.context-card code{background:var(--surface-soft);overflow-wrap:anywhere;border-radius:6px;padding:10px;font-size:11px;display:block}.permissions ul{margin:8px 0 13px;padding:0;list-style:none}.permissions li{border-bottom:1px solid var(--line);justify-content:space-between;gap:10px;padding:9px 0;font-size:11px;display:flex}.permissions li small{color:var(--muted);margin-top:3px;display:block}.permissions li strong{color:var(--accent-strong);text-transform:uppercase;font-size:9px}.permission-progress{padding:clamp(20px,4vw,38px)}.permission-progress h2{margin:0 0 8px}.permission-progress p{color:var(--muted);line-height:1.5}.permission-progress ol{margin:20px 0 0;padding:0;list-style:none}.permission-progress li{border-top:1px solid var(--line);align-items:center;gap:14px;padding:12px 0;display:flex}.permission-progress li>span:nth-child(2){flex:1;min-width:0}.permission-progress li small{color:var(--muted);overflow-wrap:anywhere;display:block}.permission-progress-symbol{background:var(--surface-soft);border-radius:50%;flex:none;place-items:center;width:30px;height:30px;display:grid}.permission-progress-done .permission-progress-symbol{color:var(--accent-strong)}.permission-progress-failed .permission-progress-symbol{color:var(--danger,#a33)}.permission-progress-state{text-align:right;max-width:35%;font-size:.8rem;font-weight:600}@media (width<=600px){.permission-progress li{flex-wrap:wrap;align-items:flex-start}.permission-progress-state{text-align:left;max-width:none;margin-left:44px}}footer{color:var(--muted);opacity:.85;letter-spacing:.11em;margin-top:40px;font-size:9px;font-weight:700}footer span{margin:0 8px}[dir=rtl] .context-card code,[dir=rtl] .result-links code,[dir=rtl] .producer-option strong,[dir=rtl] .producer-option small,[dir=rtl] input[type=password]{direction:ltr;unicode-bidi:isolate}.decision-card{min-height:360px;padding:clamp(25px,3vw,40px)}.card-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:29px;display:flex}.card-kicker{color:var(--accent-strong);letter-spacing:.17em;font-size:10px;font-weight:900}.revision{color:var(--muted);letter-spacing:.08em;font-size:10px}.description{white-space:pre-line;color:var(--muted);margin-top:0;font-size:13px;line-height:1.65}.question-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:15px;display:flex}.question-heading h2,.decision-card>label{margin:0 0 10px;font-size:15px;font-weight:700;line-height:1.4;display:block}.phase-tag{color:var(--accent-strong);background:var(--accent-tint);letter-spacing:.07em;border-radius:5px;padding:6px 8px;font-size:9px;font-weight:900}input[type=text],input[type=password],input[type=number],select{border:1px solid var(--control-line);background:var(--surface-soft);width:100%;min-height:46px;color:var(--text);border-radius:8px;padding:10px 13px}textarea{resize:vertical;border:1px solid var(--control-line);background:var(--surface-soft);width:100%;min-height:120px;color:var(--text);font:inherit;border-radius:8px;padding:12px 13px;line-height:1.5}.language-switch{color:var(--muted);white-space:nowrap;align-items:center;gap:7px;font-size:11px;font-weight:700;display:flex}.language-switch select{width:auto;max-width:140px;min-height:32px;padding:5px 8px;font-size:11px}.question-details{border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;margin-bottom:20px;padding:13px 15px;font-size:12px}.question-details summary{cursor:pointer;color:var(--accent-strong);font-weight:800}.question-details dl{grid-template-columns:minmax(90px,130px) minmax(0,1fr);gap:10px 14px;margin:14px 0 0;line-height:1.55;display:grid}.question-details dt{color:var(--text);font-weight:750}.question-details dd{color:var(--muted);margin:0}.question-help-link{margin:-12px 0 18px;font-size:12px;font-weight:700}.discovery-actions{flex-wrap:wrap;align-items:center;gap:8px 14px;margin:4px 0 16px;display:flex}.discovery-actions .field-help{margin:0}.secondary-button{border:1px solid var(--control-line);background:var(--surface-soft);color:var(--accent-strong);font:inherit;border-radius:8px;padding:9px 13px;font-size:12px;font-weight:750}.secondary-button:hover:not(:disabled),.secondary-button:focus-visible{border-color:var(--accent);background:var(--accent-tint)}.secondary-button:disabled{opacity:.55;cursor:not-allowed}.status-review-list{color:var(--muted);margin:6px 0 18px;padding-inline-start:20px;font-size:12px;line-height:1.7}.status-review-list strong{color:var(--text)}.producer-grid{margin-bottom:20px;padding:6px}.check-option.producer-option{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:16px;padding:14px 16px;display:grid}.producer-option>label{cursor:pointer;align-items:flex-start;gap:12px;min-width:0;display:flex}.producer-option>label>input{flex:0 0 17px;margin:3px 0 0}.producer-option>label>span{overflow-wrap:anywhere;gap:5px;min-width:0;display:grid}.producer-option small{color:var(--muted);font-size:10px;line-height:1.5}.producer-option a{font-size:11px;line-height:1.5}.producer-option>a{max-width:140px}.producer-links{gap:8px;max-width:140px;display:grid}.producer-manual-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.producer-manual-fields>label,.project-manual-field{gap:8px;font-size:12px;font-weight:700;line-height:1.5;display:grid}.producer-manual-fields>label:last-child{grid-column:1/-1}.producer-add{margin-top:16px}.project-manual-field{margin-top:20px}input[type=checkbox]{accent-color:var(--accent);width:17px;height:17px}.field-help{color:var(--muted);margin:14px 0 24px;font-size:12px;line-height:1.6}.segmented{gap:9px;display:flex}.segmented button{border:1px solid var(--control-line);color:var(--text);background:var(--surface-soft);border-radius:8px;flex:1;padding:13px;font-weight:700}.segmented button.selected{border-color:var(--accent);background:var(--accent-tint);color:var(--accent-strong)}.check-grid{gap:10px;display:grid}.check-option{background:var(--surface-soft);border:1px solid var(--control-line);border-radius:7px;align-items:center;gap:10px;padding:10px 13px;font-size:12px;display:flex}.choice-list{gap:9px;display:grid}.choice-card{text-align:left;background:var(--surface-soft);width:100%;min-height:52px;color:var(--text);border:1px solid var(--control-line);border-radius:8px;justify-content:space-between;align-items:center;padding:13px 15px;font-size:13px;font-weight:650;display:flex}.choice-card:hover:not(:disabled){border-color:var(--accent);background:var(--accent-tint)}.github-link{background:var(--accent-tint);border:1px solid var(--accent);border-radius:8px;margin:0 0 12px;padding:14px;font-size:13px;font-weight:800;text-decoration:none;display:block}.github-link span{float:right}.plan-review{gap:24px;font-size:12px;line-height:1.65;display:grid}.plan-review>.description,.plan-review .field-help{margin:0}.plan-sections{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;display:grid}.plan-decisions,.plan-inventory,.plan-warnings{background:var(--surface-soft);border:1px solid var(--line);border-radius:8px;min-width:0;padding:20px}.plan-decisions h3,.plan-warnings h3{margin:0 0 14px;font-size:13px;line-height:1.5}.plan-decisions p{margin:0 0 16px}.plan-decisions>:last-child{margin-bottom:0}.plan-decisions dl{gap:0;margin:0;display:grid}.plan-decisions dl>div{border-bottom:1px solid var(--line);grid-template-columns:minmax(130px,35%) minmax(0,1fr);gap:20px;padding:12px 0;display:grid}.plan-decisions dl>div:first-child{padding-top:0}.plan-decisions dl>div:last-child{border-bottom:0;padding-bottom:0}.plan-decisions dt{color:var(--muted)}.plan-decisions dd{overflow-wrap:anywhere;min-width:0;margin:0}.plan-decisions .field-help{margin-top:20px}.plan-decisions ul,.plan-inventory ul,.plan-warnings ul{overflow-wrap:anywhere;margin:0;padding-inline-start:20px;font-size:12px;line-height:1.7}.plan-decisions li+li,.plan-inventory li+li,.plan-warnings li+li{margin-top:6px}.plan-inventory summary{cursor:pointer;font-size:13px;font-weight:750}.plan-inventory summary span:last-child{float:right;color:var(--accent-strong);margin-inline-start:12px}.plan-inventory[open] summary{margin-bottom:16px}.plan-warnings{color:var(--warn);background:var(--warn-bg)}.plan-edit{border-top:1px solid var(--line);padding-top:24px}.plan-edit h3{margin:0 0 4px;font-size:14px}.plan-edit-actions{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.button-row{flex-wrap:wrap;align-items:center;gap:12px;margin-top:24px;display:flex}.button-row>.primary{margin-left:auto}.plan-review>.button-row{border-top:1px solid var(--line);margin-top:0;padding-top:24px}.review-pass,.banner{white-space:pre-line;border-radius:8px;margin:0 0 20px;padding:14px 18px;font-size:12px;line-height:1.5}.review-pass{color:var(--accent-strong);background:var(--accent-tint);border:1px solid var(--accent)}.review-pass span{margin-inline-end:8px;font-weight:800}.banner{background:var(--surface-soft);border:1px solid var(--line)}.banner p{margin:5px 0 0}.banner.warning{color:var(--warn);background:var(--warn-bg);border-color:var(--warn)}.banner.error{color:var(--error);background:var(--error-bg);border-color:var(--error)}.banner.success{color:var(--accent-strong);background:var(--accent-tint);border-color:var(--accent)}.banner button{margin-top:12px}.cancel-link{color:var(--muted);background:0 0;border:0;margin-top:18px;padding:5px 0;font-size:12px;text-decoration:underline}.result-card,.waiting-card{max-width:750px;padding:36px}.result-icon{background:var(--accent-tint);width:43px;height:43px;color:var(--accent-strong);border-radius:50%;place-items:center;font-size:22px;display:grid}.result-card h2,.waiting-card h2{margin:18px 0 10px;font-size:21px}.result-card p,.waiting-card p{color:var(--muted);font-size:13px;line-height:1.6}.result-facts{border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;margin:24px 0;padding:20px}.result-facts p{margin:8px 0}.result-facts strong{color:var(--text)}.result-effects{border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;margin:20px 0;padding:14px 17px}.result-effects h3{color:var(--text);margin:0 0 10px;font-size:13px}.result-effects ul{margin:0;padding-left:20px}.result-effects li{overflow-wrap:anywhere;padding:3px 0;font-size:12px}.result-links{flex-wrap:wrap;align-items:center;gap:20px;margin:22px 0;font-size:12px;display:flex}.result-links code{background:var(--surface-soft);border-radius:5px;padding:8px}.spinner{border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:25px;height:25px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.result-facts h3{margin:0 0 16px;font-size:15px;line-height:1.5}.result-permissions{margin:20px 0 0;padding-inline-start:20px;font-size:13px;line-height:1.65}.result-permissions li+li{margin-top:16px}.result-permissions p{margin:6px 0 0}@media (width<=1100px){.workspace-grid{grid-template-columns:1fr}.context-column{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=780px){.shell{display:block}.sidebar{min-height:0;padding:16px 20px;position:static}.rail-caption,.sidebar-note{display:none}.steps{flex-wrap:wrap;gap:4px;margin-top:18px;display:flex}.steps:before{display:none}.steps li{flex:none;gap:6px;min-height:37px;padding:4px 7px;font-size:11px}.step-index{flex-basis:26px;width:26px;height:26px}.topbar{flex-wrap:wrap;height:auto;min-height:65px;padding:12px 20px}.content{padding:28px 20px}}@media (width<=540px){.context-column,.plan-sections{grid-template-columns:1fr}.workspace-grid:has(.plan-review) .context-column{grid-template-columns:1fr}.top-actions{flex-wrap:wrap;justify-content:space-between;gap:12px;width:100%;min-width:0}.decision-card{padding:22px}.breadcrumb{max-width:100%}h1{font-size:29px}.plan-decisions dl>div{grid-template-columns:1fr;gap:2px}.question-details dl{grid-template-columns:1fr;gap:3px}.question-details dd{margin-bottom:9px}.language-switch{margin-inline-start:auto}}@media (width<=640px){.check-option.producer-option{grid-template-columns:minmax(0,1fr);gap:12px}.producer-option>a,.producer-links{max-width:none;margin-inline-start:29px}.producer-manual-fields{grid-template-columns:minmax(0,1fr)}}.management-status{color:var(--accent-strong);font-weight:750}.management-actions{flex-wrap:wrap;gap:12px;margin-block:24px 32px;display:flex}.management-section{border-top:1px solid var(--line);padding-block:26px}.management-section h2{margin-top:0}.management-section summary{cursor:pointer;color:var(--accent-strong);font-weight:700}.management-settings{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.management-setting{border:1px solid var(--line);background:var(--surface-soft);border-radius:10px;justify-content:space-between;align-items:center;gap:16px;padding:18px;display:flex}.management-setting h3{margin:0 0 8px;font-size:14px}.management-setting p{color:var(--muted);overflow-wrap:anywhere;margin:0}.management-setting .button{flex-shrink:0}.management-values{gap:8px;display:grid}.management-values dt{overflow-wrap:anywhere;margin-top:12px;font-weight:650}.management-values dd{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--muted);margin:0;line-height:1.6}.management-workflow{padding-block:16px}:is(.workspace-grid:has(.management-settings),.workspace-grid:has(.management-status)){grid-template-columns:1fr}.workspace-grid:has(.management-status) .context-column{display:none}@media (width<=800px){.management-settings{grid-template-columns:1fr}}@media (width<=420px){.management-setting{flex-direction:column;align-items:stretch}.management-setting .button{align-self:flex-end}} diff --git a/build/web/index.html b/build/web/index.html index 9f2585f5b..7d5c8d4cc 100644 --- a/build/web/index.html +++ b/build/web/index.html @@ -5,8 +5,8 @@ Copilot · Setup studio - - + +
                                                                                                            diff --git a/docs.json b/docs.json index 7187d8296..d853525b9 100644 --- a/docs.json +++ b/docs.json @@ -134,6 +134,11 @@ "title": "Configuration checklist", "href": "/configuration-checklist", "icon": "square-check" + }, + { + "title": "Use the documentation", + "href": "/using-the-docs", + "icon": "book" } ] }, diff --git a/docs/agents/cursor.mdx b/docs/agents/cursor.mdx index 6931da262..566d8e014 100644 --- a/docs/agents/cursor.mdx +++ b/docs/agents/cursor.mdx @@ -5,6 +5,9 @@ description: Configure and validate Cursor as a hardened agent runtime. # Cursor runtime +> Source checkout only: this repository-maintainer script is not included in the installed CLI package. For a consumer installation, use `copilot doctor --read-only`, the installed CLI-provisioning workflow, and the [first workflow](/first-workflow) to inspect metadata and verify actual execution. + + Copilot supports Cursor at the command, provisioning, authentication, sandbox, timeout, cancellation, output-limit, and terminal-failure boundaries. Production readiness is deployment-specific: run a real authenticated smoke test for the selected account, model, and runner image before enabling it in a protected workflow. ## Runtime contract diff --git a/docs/agents/opencode.mdx b/docs/agents/opencode.mdx index 5283bc1ff..85803f5e2 100644 --- a/docs/agents/opencode.mdx +++ b/docs/agents/opencode.mdx @@ -5,6 +5,9 @@ description: Configure OpenCode as the headless CLI runtime for Copilot AI featu # OpenCode integration +> Source checkout only: this repository-maintainer script is not included in the installed CLI package. For a consumer installation, use `copilot doctor --read-only`, the installed CLI-provisioning workflow, and the [first workflow](/first-workflow) to inspect metadata and verify actual execution. + + Copilot invokes OpenCode as an external, headless CLI. The Action does not start an OpenCode HTTP server, manage a server URL, embed the OpenCode SDK, or choose an implicit model. ## Recommended configuration diff --git a/docs/assets/README.md b/docs/assets/README.md index 6a4c8f74b..cf0a6b4ba 100644 --- a/docs/assets/README.md +++ b/docs/assets/README.md @@ -1,7 +1,8 @@ # Web setup screenshots `setup-web-pairing.png` and `setup-web-plan.png` show the committed browser UI -with the read-only fixture served by `node scripts/serve-web-setup-review.cjs plan`. +with the read-only `plan` and `question` fixtures served by +`node scripts/serve-web-setup-review.cjs `. They contain public fixture identities and no real PAT, provider credential or installation result. The pairing screenshot is taken before entering the public fixture code; the plan screenshot shows its example decision summary. diff --git a/docs/assets/setup-web-pairing.png b/docs/assets/setup-web-pairing.png index 6badcb05f90306334aef0d73fb1cf9c0da776d8e..ad839a8d808b8bee7337c9167b6a72e1f20c63ac 100644 GIT binary patch literal 60421 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 literal 52458 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 Source checkout only: this repository-maintainer script is not included in the installed CLI package. For a consumer installation, use `copilot doctor --read-only`, the installed CLI-provisioning workflow, and the [first workflow](/first-workflow) to inspect metadata and verify actual execution. + + The Action first checks authentication for every active agent role. A required missing credential stops the job before any CLI installer runs. If its default executable is already available, the Action checks its version against the provider's current official release. When a newer stable release is confirmed, it installs that release into a private directory and uses it for this job. If the release cannot be checked, it uses the installed CLI. If the default command is absent, it installs only that provider's official CLI privately. A custom `agent-executable` must already exist and is always used as selected. No runner installation or persistent PATH is modified. A successful private install prepends its directory to the current Action process's PATH so subsequent agent resolution selects that verified CLI; failed installs restore the previous PATH. The runner service, user profile and later jobs keep their original PATH. Every selected CLI must report a non-empty version and pass the guarded executable and command checks before an agent task runs. | Runtime | Default command | Official source when missing | diff --git a/docs/security-operations/operations/cli-runners.mdx b/docs/security-operations/operations/cli-runners.mdx index 861e0dc98..a3f764765 100644 --- a/docs/security-operations/operations/cli-runners.mdx +++ b/docs/security-operations/operations/cli-runners.mdx @@ -5,6 +5,9 @@ description: Run and verify the provider-specific headless CLIs used by Bugbot. # Agent CLI runners +> Source checkout only: this repository-maintainer script is not included in the installed CLI package. For a consumer installation, use `copilot doctor --read-only`, the installed CLI-provisioning workflow, and the [first workflow](/first-workflow) to inspect metadata and verify actual execution. + + Copilot uses one provider-specific, headless CLI per run. The provider adapter selects the documented prompt transport: Codex receives the prompt through standard input, while OpenCode and Cursor receive it as one positional argument. The response is read from standard output. | Runtime | Headless command | Credential reference | diff --git a/docs/security-operations/operations/verification.mdx b/docs/security-operations/operations/verification.mdx index f5174881a..177123fe7 100644 --- a/docs/security-operations/operations/verification.mdx +++ b/docs/security-operations/operations/verification.mdx @@ -4,6 +4,9 @@ description: Read-only checks that prove the selected CLI is available and contr --- # Verification +> Source checkout only: this repository-maintainer script is not included in the installed CLI package. For a consumer installation, use `copilot doctor --read-only`, the installed CLI-provisioning workflow, and the [first workflow](/first-workflow) to inspect metadata and verify actual execution. + + Run the verifier from the repository root: ```bash diff --git a/docs/setup-web.mdx b/docs/setup-web.mdx index 4013de5c3..93868a691 100644 --- a/docs/setup-web.mdx +++ b/docs/setup-web.mdx @@ -5,11 +5,13 @@ description: Install Copilot with the local browser assistant, then verify a rea This is the recommended interactive installation path. The assistant runs on your computer and prepares the selected workflows and GitHub resources. You review the plan before permission checks or installation changes begin. +The assistant keeps tutorial, first-workflow and troubleshooting links available throughout the session. They open in another tab and retain your answers. Each question also links to its own reference and has a **Why this matters** explanation. See [Use the documentation](/using-the-docs) for version selection and offline help. + ## Before you start | You need | Why | |---|---| -| Node.js 24 or newer and `pnpm` | Run the published CLI and local browser assistant | +| [Node.js 24 or newer](https://nodejs.org/en/download) and [pnpm](https://pnpm.io/installation) | Run the published CLI and local browser assistant; use the official installation guides if either command is missing | | A working checkout at its root, on an attached Git branch | Inspect and prepare files for the intended repository; bare repositories and detached HEAD are rejected | | The intended production and development branches | Setup asks for their names; the selected development branch must already exist | | Permission to configure the selected repository resources | Workflows, labels, Variables and Secrets need different grants; setup derives the exact list from your choices | diff --git a/docs/support.mdx b/docs/support.mdx index c881a1aa6..63f2e0962 100644 --- a/docs/support.mdx +++ b/docs/support.mdx @@ -1,103 +1,56 @@ --- title: Support -description: Getting help and contributing to Copilot +description: Find the right guide, collect safe evidence, and report a Copilot problem. --- -# Support +## Start with the result you need -Learn how to get help with Copilot and contribute to its development. +- Installing: [web setup](/setup-web) and [first issue-to-PR workflow](/first-workflow). +- Choosing or enabling a capability: [guides by goal](/guides). +- Finding the correct version or interpreting checks: [use the documentation](/using-the-docs). +- A blocked setup, command or Action: its receipt/reply and [Troubleshooting](/security-operations/operations/troubleshooting). -## Getting Help +## Ask a question or report a problem -### Documentation -- Review the [documentation](https://docs.page/vypdev/copilot) -- Check the [configuration guide](/configuration) and [Features & Capabilities](/features) +Search [existing issues](https://github.com/vypdev/copilot/issues) first. If the +problem is with Copilot itself, use the appropriate installed form under +[New issue](https://github.com/vypdev/copilot/issues/new/choose): Help for a +question, Bug Report for a reproducible failure, or Documentation Update for +missing or unclear instructions. Complete all required fields. -### Issue Reporting +Include: -When reporting issues, follow these steps: +| Evidence | What to provide | +|---|---| +| Versions | `copilot --version` and the Action ref in the affected workflow | +| Environment | OS, Node version, runner route, and web or terminal mode | +| Reproduction | Exact non-secret command or GitHub event, steps, expected result and actual result | +| Revision | A safe issue/PR/run link and the exact relevant commit, if shareable | +| Diagnosis | Stable error code, diagnostic reference and sanitized doctor/Job Summary output | +| Partial work | Which files/resources completed, were retained or need inspection | - - - Check [existing issues](https://github.com/vypdev/copilot/issues) to avoid duplicates. - - - - Detailed description - - Steps to reproduce - - Expected vs actual behavior - - Relevant logs and configurations - - Environment details - - +Never include PATs, API keys, authentication files, pairing codes or a captured +credential field. Inspect logs and screenshots before sharing; private repository +names and configuration can also require redaction. Preserve uncertain resources +until you have inspected them rather than rerunning Apply blindly. -### Community Support -- Use GitHub Discussions for questions -- Check Stack Overflow with tag `copilot` -- Join our community channels +For a repository-specific task, use that repository's installed Issue Form and +bot commands. A branchless Help issue can answer questions; implementation needs +an admitted branch-bearing issue and its Action-verified ref. -## Contributing +## Security reports -### Code Contributions +Do not publish sensitive vulnerabilities or credentials in an issue. Contact the +maintainer privately at [efraespada@vyp.dev](mailto:efraespada@vyp.dev) with a +redacted description before arranging any sensitive evidence exchange. -1. Fork the repository -2. Create a feature branch -3. Make your changes -4. Add tests if applicable -5. Submit a pull request +## Contribute or follow changes -### Development Setup +Use [CONTRIBUTING.md](https://github.com/vypdev/copilot/blob/master/CONTRIBUTING.md) +for development prerequisites and checks, and [repository collaboration](/agents/repository-collaboration) +for this project's Action-managed issue/branch flow. Submit documentation changes +with the same route and verification expectations. -```bash -# Clone the repository -git clone https://github.com/vypdev/copilot.git - -# Install dependencies -pnpm install - -# Run tests -pnpm test - -# Build the project -pnpm run build -``` - -### Pull Request Guidelines - -- Follow the existing code style -- Include tests for new features -- Update documentation as needed -- Keep changes focused and atomic -- Add meaningful commit messages - -## Feature Requests - -When requesting new features: - -1. Check existing issues and requests -2. Provide clear use cases -3. Explain the expected behavior -4. Describe the benefit to users -5. Consider implementation details - -## Security Reports - -For security issues: - -1. **DO NOT** open public issues -2. Email security concerns directly -3. Include detailed information -4. Await response before disclosure - -## Stay Updated - -- Watch the [GitHub repository](https://github.com/vypdev/copilot) -- Follow release announcements -- Join our mailing list -- Check our blog for updates - -## Contact - -- GitHub Issues: [Report a bug](https://github.com/vypdev/copilot/issues) -- Email: efraespada@vyp.dev - -We aim to respond to all inquiries within 48 hours during business days. +Follow [GitHub Releases](https://github.com/vypdev/copilot/releases) for published +changes. This page does not promise a response deadline or require an external +community account to obtain support. diff --git a/docs/using-the-docs.mdx b/docs/using-the-docs.mdx new file mode 100644 index 000000000..6699683ba --- /dev/null +++ b/docs/using-the-docs.mdx @@ -0,0 +1,78 @@ +--- +title: Use the documentation +description: Choose the right version, find contextual setup help, and understand what verification proves. +--- + +## Find the shortest path + +| You are… | Read | +|---|---| +| Evaluating what to enable | [Choose a goal](/guides) and [Overview](/overview) | +| Installing for the first time | [Web setup](/setup-web), then [First workflow](/first-workflow) | +| Answering a setup question | Its documentation link and expandable explanation; in the terminal, type `?` | +| Updating an existing installation | [Setup and maintenance](/how-to-use#inspect-configuration-and-make-a-small-adjustment) | +| Diagnosing a stopped run | Its reply/receipt and [Troubleshooting](/security-operations/operations/troubleshooting) | +| Looking up one input | [Configuration](/configuration), then its feature-specific reference | + +## Match the documentation to your version + +Run `copilot --version` to identify the local CLI. Separately inspect the Action +reference in your repository's workflows: the CLI package and the installed +Action can have different versions. `vypdev/copilot@v3` follows the compatible +major tag; it does not pin one patch release. + +The normal docs.page URL reads this repository's default branch. To inspect an +exact published version or development revision, use a Git-ref preview: + +```text +https://docs.page/vypdev/copilot~v3.9.1 +https://docs.page/vypdev/copilot~develop +``` + +`v3.9.1` is an example existing release tag; substitute the version you are using. +You can append a page path, such as `/authentication`. A PR preview uses the PR +number after `~`. Read the ref badge before following an unreleased example. +New pages may be available on a PR or `develop` before they reach the default +branch; a page absent from an older release is not evidence that it existed then. +See [docs.page Git-ref previews](https://use.docs.page/authoring/publish#share-branch-previews). + +These instructions concern this project's `@vypdev/copilot` package and +`vypdev/copilot` GitHub Action. Use their exact names when searching for help. + +## Get help without losing setup answers + +The web assistant keeps **Setup tutorial**, **First issue-to-PR workflow** and +**Troubleshooting** links available alongside the setup. They open public +documentation in a separate tab and do not submit a setup answer. Question-level +links explain the setting in context; **Why this matters** expands its local +explanation. Changing the displayed language does not change repository locale. + +In the terminal, `copilot setup --help` lists flags and the same guides without +starting setup. During questions, type `?` for detailed local help. Use `:back` +to revisit text/choice answers or `B` in a multi-selector. Links open only when +you choose to follow them. No credentials or answers are attached to documentation URLs. + +If the documentation site is unavailable, `--help` and the question explanations +remain local. You can also read `docs/` in the Git checkout of the matching +release. Local documentation access does not remove the GitHub/network +requirements of installation or agent-backed features. + +## Read verification results accurately + +| Evidence | What it proves | What it does not prove | +|---|---|---| +| Setup receipt | Reported resource/file effects, including uncertain or partial work | That the generated workflows were merged and ran successfully | +| `copilot doctor --read-only` | Accessible files and GitHub configuration metadata | Secret values, write grants or a real model request | +| Plain `copilot doctor` | Additional checks, including installed credential-health dispatch when available | Every capability, runner, model or external publisher | +| First issue-to-PR workflow | The installed routes and exact revisions actually exercised | A release, another runtime or another Project you did not test | +| Current Bugbot status | Review coverage and finding state for the stated revision | Independent CI/coverage evidence or authorization to merge | +| Published artifact and completed reconciliation | The release facts you checked together | Success inferred from only a closed issue or created tag | + +A neutral check can still report actionable findings. A progress percentage is +an assessment, not a test result. Binary screenshots can make the progress +comparison incomplete because GitHub supplies no text patch; inspect them +manually and retain actual CI/review evidence rather than inventing a percentage. + +For a support request, include the relevant version, exact revision, safe error +code and diagnostic reference. Use the [support checklist](/support) and redact +credentials, pairing codes and private configuration before sharing. diff --git a/scripts/validate-docs-page-assets.cjs b/scripts/validate-docs-page-assets.cjs index d814c8b09..5a3fe1cc8 100644 --- a/scripts/validate-docs-page-assets.cjs +++ b/scripts/validate-docs-page-assets.cjs @@ -33,6 +33,12 @@ visit(navigation, 'docs.json'); for (const file of files) { const source = fs.readFileSync(file, 'utf8'); const relative = path.relative(root, file); + for (const match of source.matchAll(/]*\bsrc=["'](\/[^"']+)["']/g)) { + const asset = path.resolve(docsRoot, `.${match[1]}`); + if (!asset.startsWith(`${docsRoot}${path.sep}`) || !fs.existsSync(asset) || !fs.statSync(asset).isFile()) { + errors.push(`${relative}: missing or invalid local image "${match[1]}"`); + } + } for (const match of source.matchAll(/^\s*<([A-Z][A-Za-z0-9]*)\b/gm)) { if (!allowedComponents.has(match[1])) errors.push(`${relative}: unsupported component <${match[1]}>`); } diff --git a/scripts/validate-documentation-contract.cjs b/scripts/validate-documentation-contract.cjs index 4a19b2886..7108c7d75 100644 --- a/scripts/validate-documentation-contract.cjs +++ b/scripts/validate-documentation-contract.cjs @@ -117,6 +117,14 @@ function assertRoute(route, source) { if (!routes.has(normalized)) errors.push(`${source}: local documentation link targets an unregistered route ${normalized}`); } +for (const file of ['src/application/contracts/setup_documentation.ts', 'src/application/policies/setup_question_documentation_policy.ts']) { + const source = readText(path.join(root, file)); + for (const match of source.matchAll(/https:\/\/docs\.page\/vypdev\/copilot(\/[^'"\s]+)/g)) { + assertRoute(match[1], file); + assertAnchor(match[1], file); + } +} + for (const [index, source] of docsContent.entries()) { const file = docsFiles[index]; for (const match of source.matchAll(/\]\((\/[^)\s]+)(?:\s+[^)]*)?\)/g)) { diff --git a/specs/CATALOG.md b/specs/CATALOG.md index 879929f98..4f51dd3b2 100644 --- a/specs/CATALOG.md +++ b/specs/CATALOG.md @@ -16,8 +16,8 @@ debt or convert unknown historic intent into a design decision. | `bugbot-review-state-reconciliation` | Implemented | Reconcile review snapshots, findings, threads, comments, and check conclusions | [Bugbot review-state reconciliation](./bugbot-review-state-reconciliation.md) | 59 paths · 2026-10-11 | | `execution-lifecycle` | Implemented | Shared GitHub Action lifecycle from event admission through durable user-facing results | [Execution admission, queueing, routing, and result publication](./execution-admission-queue-and-publication.md) + 3 companion | 97 paths · 2026-10-14 | | `architecture-quality-hardening` | Implemented | Close verified concurrency, error-contract, context-coupling, fan-out, setup/doctor, and provider-policy risks in dependency order | [Architecture quality and scalability hardening](./architecture-quality-and-scalability-hardening.md) + 1 companion | 72 paths · 2026-10-13 | -| `setup-and-doctor` | Implemented | Plan, validate, provision, and audit a repository installation without exposing credentials | [Setup, configuration, credentials, and doctor](./setup-configuration-credentials-and-doctor.md) + 5 companion | 294 paths · 2026-10-19 | -| `local-web-setup-assistant` | Proposed | Offer a packaged, loopback-only Svelte setup interface over the existing engine with four-language guidance, English CLI help, basic/custom first-run paths, editable question and plan review, source-labelled GitHub facts, assisted CI and Project evidence, role-separated PATs, and truthful itemized outcomes; inspect existing configuration and apply independent, scope-aware runtime adjustments with permission, drift and read-back verification | [Local web setup assistant](./local-web-setup-assistant.md) + 1 companion | 225 paths · 2026-10-14 | +| `setup-and-doctor` | Implemented | Plan, validate, provision, and audit a repository installation without exposing credentials | [Setup, configuration, credentials, and doctor](./setup-configuration-credentials-and-doctor.md) + 5 companion | 308 paths · 2026-10-20 | +| `local-web-setup-assistant` | Proposed | Offer a packaged, loopback-only Svelte setup interface over the existing engine with four-language guidance, English CLI help, basic/custom first-run paths, editable question and plan review, source-labelled GitHub facts, assisted CI and Project evidence, role-separated PATs, and truthful itemized outcomes; inspect existing configuration and apply independent, scope-aware runtime adjustments with permission, drift and read-back verification | [Local web setup assistant](./local-web-setup-assistant.md) + 1 companion | 238 paths · 2026-10-20 | | `guided-bot-pat-onboarding` | Proposed | Guide creation of the persistent workflow PAT, verify bot identity and grants, recover explicitly from wrong-account input within the session, and install the approved Actions Secret | [Guided bot PAT onboarding](./guided-bot-pat-onboarding.md) | 39 paths · 2026-10-07 | | `temporary-setup-operator-authorization` | Proposed | Guide creation of the one-run operator PAT through GitHub's official form, verify final setup access, and report user-owned deletion accurately | [Assisted setup PAT creation](./temporary-setup-operator-authorization.md) | 36 paths · 2026-10-18 | | `issue-start-and-sdd-readiness` | Implemented | Start every admitted issue with one explicit signal and publish a validated SDD before eligible Action-managed branch work; inspect verified SDD status and bounded structural publication comparisons | [Uniform issue start and pre-branch SDD readiness](./issue-start-and-branch-readiness.md) + 3 companion | 116 paths · 2026-10-19 | @@ -103,24 +103,24 @@ debt or convert unknown historic intent into a design decision. ### `setup-and-doctor` — Setup, configuration, credentials, and doctor - Owner: Copilot maintainers -- Last verified: 2026-10-19 +- Last verified: 2026-10-20 - Specifications: [`specs/setup-configuration-credentials-and-doctor.md`](./setup-configuration-credentials-and-doctor.md) · [`specs/setup-doctor-architecture-hardening.md`](./setup-doctor-architecture-hardening.md) · [`specs/setup-pat-permission-guidance-and-verification.md`](./setup-pat-permission-guidance-and-verification.md) · [`specs/github-runtime-doctor-command.md`](./github-runtime-doctor-command.md) · [`specs/organization-configuration-reuse-and-batch-setup.md`](./organization-configuration-reuse-and-batch-setup.md) · [`specs/setup-runner-profiles-and-installation-parity.md`](./setup-runner-profiles-and-installation-parity.md) - Workflows: [`setup/workflows/agent-cli-provisioning.yml`](../setup/workflows/agent-cli-provisioning.yml) · [`setup/workflows/copilot_credential_health.yml`](../setup/workflows/copilot_credential_health.yml) · [`.github/workflows/copilot_issue_comment.yml`](../.github/workflows/copilot_issue_comment.yml) · [`.github/workflows/copilot_pull_request_comment.yml`](../.github/workflows/copilot_pull_request_comment.yml) · [`.github/workflows/agent-cli-provisioning.yml`](../.github/workflows/agent-cli-provisioning.yml) · [`.github/workflows/copilot_credential_health.yml`](../.github/workflows/copilot_credential_health.yml) · [`.github/workflows/copilot_commit.yml`](../.github/workflows/copilot_commit.yml) · [`.github/workflows/copilot_branch_sync.yml`](../.github/workflows/copilot_branch_sync.yml) · [`setup/workflows/copilot_commit.yml`](../setup/workflows/copilot_commit.yml) · [`setup/workflows/copilot_branch_sync.yml`](../setup/workflows/copilot_branch_sync.yml) - Entrypoints: [`src/cli/commands/setup.ts`](../src/cli/commands/setup.ts) · [`src/cli/commands/doctor.ts`](../src/cli/commands/doctor.ts) · [`src/application/usecases/issue_comment_use_case.ts`](../src/application/usecases/issue_comment_use_case.ts) · [`src/application/usecases/pull_request_review_comment_use_case.ts`](../src/application/usecases/pull_request_review_comment_use_case.ts) -- Core code: [`src/domain/setup.ts`](../src/domain/setup.ts) · [`src/domain/setup_questionnaire.ts`](../src/domain/setup_questionnaire.ts) · [`src/domain/setup_token_permissions.ts`](../src/domain/setup_token_permissions.ts) · [`src/application/ports/setup_terminal_ports.ts`](../src/application/ports/setup_terminal_ports.ts) · [`src/application/ports/setup_wizard_ports.ts`](../src/application/ports/setup_wizard_ports.ts) · [`src/application/ports/branch_tag_ports.ts`](../src/application/ports/branch_tag_ports.ts) · [`src/application/policies/setup_issue_workflow_policy.ts`](../src/application/policies/setup_issue_workflow_policy.ts) · [`src/data/repository/release/repository_version_tags_query_repository.ts`](../src/data/repository/release/repository_version_tags_query_repository.ts) · [`src/application/ports/setup_token_permission_ports.ts`](../src/application/ports/setup_token_permission_ports.ts) · [`src/application/policies/setup_token_permission_evidence_policy.ts`](../src/application/policies/setup_token_permission_evidence_policy.ts) · [`src/application/policies/setup_token_permission_policy.ts`](../src/application/policies/setup_token_permission_policy.ts) · [`src/application/policies/setup_questionnaire_policy.ts`](../src/application/policies/setup_questionnaire_policy.ts) · [`src/application/policies/setup_configuration_plan.ts`](../src/application/policies/setup_configuration_plan.ts) · [`src/application/policies/merge_setup_overrides_policy.ts`](../src/application/policies/merge_setup_overrides_policy.ts) · [`src/application/policies/setup_configuration_storage_policy.ts`](../src/application/policies/setup_configuration_storage_policy.ts) · [`src/application/policies/setup_doctor_message_catalog.ts`](../src/application/policies/setup_doctor_message_catalog.ts) · [`src/application/policies/setup_doctor_report_policy.ts`](../src/application/policies/setup_doctor_report_policy.ts) · [`src/application/policies/setup_journey_policy.ts`](../src/application/policies/setup_journey_policy.ts) · [`src/application/policies/setup_permission_summary_policy.ts`](../src/application/policies/setup_permission_summary_policy.ts) · [`src/application/usecases/setup/setup_wizard_use_case.ts`](../src/application/usecases/setup/setup_wizard_use_case.ts) · [`src/application/usecases/setup/setup_journey_use_case.ts`](../src/application/usecases/setup/setup_journey_use_case.ts) · [`src/application/usecases/setup/setup_session_coordinator.ts`](../src/application/usecases/setup/setup_session_coordinator.ts) · [`src/application/usecases/setup/setup_questionnaire_controller.ts`](../src/application/usecases/setup/setup_questionnaire_controller.ts) · [`src/application/usecases/setup/setup_credentials_use_case.ts`](../src/application/usecases/setup/setup_credentials_use_case.ts) · [`src/application/usecases/setup/setup_token_permissions_use_case.ts`](../src/application/usecases/setup/setup_token_permissions_use_case.ts) · [`src/application/usecases/setup/doctor_use_case.ts`](../src/application/usecases/setup/doctor_use_case.ts) · [`src/application/usecases/setup/merge_queue_readiness_use_case.ts`](../src/application/usecases/setup/merge_queue_readiness_use_case.ts) · [`src/application/usecases/actions/initial_setup_workflow.ts`](../src/application/usecases/actions/initial_setup_workflow.ts) · [`src/application/usecases/actions/setup_resource_provisioning.ts`](../src/application/usecases/actions/setup_resource_provisioning.ts) · [`src/application/ports/message_catalog_ports.ts`](../src/application/ports/message_catalog_ports.ts) · [`src/application/usecases/localization/resolve_message_catalog_use_case.ts`](../src/application/usecases/localization/resolve_message_catalog_use_case.ts) · [`src/application/policies/setup_configuration_validation.ts`](../src/application/policies/setup_configuration_validation.ts) · [`src/infrastructure/setup_workspace_adapter.ts`](../src/infrastructure/setup_workspace_adapter.ts) · [`src/data/repository/repository_variables_repository.ts`](../src/data/repository/repository_variables_repository.ts) · [`src/infrastructure/github/ports/github_repository_variables_protocol.ts`](../src/infrastructure/github/ports/github_repository_variables_protocol.ts) · [`src/infrastructure/setup_remote_credential_health_adapter.ts`](../src/infrastructure/setup_remote_credential_health_adapter.ts) · [`src/infrastructure/setup_credential_validation_adapter.ts`](../src/infrastructure/setup_credential_validation_adapter.ts) · [`src/infrastructure/setup_token_permission_query_adapter.ts`](../src/infrastructure/setup_token_permission_query_adapter.ts) · [`src/infrastructure/setup_permission_actions_probe.ts`](../src/infrastructure/setup_permission_actions_probe.ts) · [`src/infrastructure/setup_permission_issue_probe.ts`](../src/infrastructure/setup_permission_issue_probe.ts) · [`src/infrastructure/setup_permission_issue_cleanup.ts`](../src/infrastructure/setup_permission_issue_cleanup.ts) · [`src/infrastructure/setup_permission_probe_journal.ts`](../src/infrastructure/setup_permission_probe_journal.ts) · [`src/infrastructure/setup_permission_probe_transaction.ts`](../src/infrastructure/setup_permission_probe_transaction.ts) · [`src/infrastructure/setup_permission_resource_probes.ts`](../src/infrastructure/setup_permission_resource_probes.ts) · [`src/infrastructure/setup_projects_probe_page_policy.ts`](../src/infrastructure/setup_projects_probe_page_policy.ts) · [`src/cli/setup_terminal_driver.ts`](../src/cli/setup_terminal_driver.ts) · [`src/cli/setup_question_renderer.ts`](../src/cli/setup_question_renderer.ts) · [`src/cli/setup_journey_presenter.ts`](../src/cli/setup_journey_presenter.ts) · [`src/cli/setup_plan_presenter.ts`](../src/cli/setup_plan_presenter.ts) · [`src/cli/setup_doctor_presenter.ts`](../src/cli/setup_doctor_presenter.ts) · [`src/cli/setup_prompt_rendering.ts`](../src/cli/setup_prompt_rendering.ts) · [`src/cli/setup_credential_prompt_adapter.ts`](../src/cli/setup_credential_prompt_adapter.ts) · [`src/cli/setup_credential_collection.ts`](../src/cli/setup_credential_collection.ts) · [`src/cli/commands/setup_execution.ts`](../src/cli/commands/setup_execution.ts) · [`src/cli/setup_token_permission_presenter.ts`](../src/cli/setup_token_permission_presenter.ts) · [`src/infrastructure/composition/setup_credentials_composition_root.ts`](../src/infrastructure/composition/setup_credentials_composition_root.ts) · [`src/infrastructure/composition/setup_token_permissions_composition_root.ts`](../src/infrastructure/composition/setup_token_permissions_composition_root.ts) · [`src/infrastructure/composition/setup_doctor_composition_root.ts`](../src/infrastructure/composition/setup_doctor_composition_root.ts) · [`scripts/coverage-budgets.json`](../scripts/coverage-budgets.json) · [`scripts/documentation_pat_exception_policy.cjs`](../scripts/documentation_pat_exception_policy.cjs) · [`scripts/validate-documentation-contract.cjs`](../scripts/validate-documentation-contract.cjs) · [`src/infrastructure/http_deadline.ts`](../src/infrastructure/http_deadline.ts) · [`src/infrastructure/setup_permission_denial.ts`](../src/infrastructure/setup_permission_denial.ts) · [`src/infrastructure/setup_permission_read_probe.ts`](../src/infrastructure/setup_permission_read_probe.ts) · [`src/infrastructure/setup_permission_read_evidence.ts`](../src/infrastructure/setup_permission_read_evidence.ts) · [`src/infrastructure/setup_permission_read_shape.ts`](../src/infrastructure/setup_permission_read_shape.ts) · [`src/infrastructure/setup_permission_projects_read.ts`](../src/infrastructure/setup_permission_projects_read.ts) · [`src/infrastructure/setup_permission_projects_access.ts`](../src/infrastructure/setup_permission_projects_access.ts) · [`src/infrastructure/setup_permission_workflow_cleanup.ts`](../src/infrastructure/setup_permission_workflow_cleanup.ts) · [`src/infrastructure/setup_permission_project_cleanup.ts`](../src/infrastructure/setup_permission_project_cleanup.ts) · [`src/infrastructure/setup_permission_probe_http.ts`](../src/infrastructure/setup_permission_probe_http.ts) · [`src/infrastructure/setup_permission_pull_request_probe.ts`](../src/infrastructure/setup_permission_pull_request_probe.ts) · [`src/infrastructure/git_authentication_environment.ts`](../src/infrastructure/git_authentication_environment.ts) · [`src/actions/github_action_input.ts`](../src/actions/github_action_input.ts) · [`src/infrastructure/setup_github_identity_query_adapter.ts`](../src/infrastructure/setup_github_identity_query_adapter.ts) · [`src/infrastructure/github_secret_encryption.ts`](../src/infrastructure/github_secret_encryption.ts) · [`src/infrastructure/setup_permission_organization_owner.ts`](../src/infrastructure/setup_permission_organization_owner.ts) · [`src/data/repository/github/github_actions_resource_inspector.ts`](../src/data/repository/github/github_actions_resource_inspector.ts) · [`src/data/repository/github/github_actions_resource_commands.ts`](../src/data/repository/github/github_actions_resource_commands.ts) · [`src/data/repository/github/github_actions_resource_collection.ts`](../src/data/repository/github/github_actions_resource_collection.ts) · [`src/application/usecases/setup/resolve_setup_workflow_pat_conflict_use_case.ts`](../src/application/usecases/setup/resolve_setup_workflow_pat_conflict_use_case.ts) · [`src/cli/setup_workflow_pat_storage_copy.ts`](../src/cli/setup_workflow_pat_storage_copy.ts) · [`src/cli/commands/setup_policy.ts`](../src/cli/commands/setup_policy.ts) · [`src/application/usecases/execution/execution_issue_number_policy.ts`](../src/application/usecases/execution/execution_issue_number_policy.ts) · [`src/application/usecases/execution/setup_execution_workflow.ts`](../src/application/usecases/execution/setup_execution_workflow.ts) · [`src/domain/github_runtime_doctor.ts`](../src/domain/github_runtime_doctor.ts) · [`src/domain/copilot_command.ts`](../src/domain/copilot_command.ts) · [`src/application/usecases/comment_automation_command_workflow.ts`](../src/application/usecases/comment_automation_command_workflow.ts) · [`src/application/policies/copilot_interaction_policy.ts`](../src/application/policies/copilot_interaction_policy.ts) · [`src/application/policies/publication_message_catalog.ts`](../src/application/policies/publication_message_catalog.ts) · [`src/application/ports/github_runtime_doctor_ports.ts`](../src/application/ports/github_runtime_doctor_ports.ts) · [`src/application/policies/github_runtime_doctor_policy.ts`](../src/application/policies/github_runtime_doctor_policy.ts) · [`src/application/policies/doctor_workflow_condition_policy.ts`](../src/application/policies/doctor_workflow_condition_policy.ts) · [`src/application/policies/github_runtime_doctor_presentation_policy.ts`](../src/application/policies/github_runtime_doctor_presentation_policy.ts) · [`src/application/usecases/read_copilot_doctor_workflow.ts`](../src/application/usecases/read_copilot_doctor_workflow.ts) · [`src/data/repository/github/runtime_doctor_repository.ts`](../src/data/repository/github/runtime_doctor_repository.ts) · [`src/infrastructure/composition/github_runtime_doctor_composition_root.ts`](../src/infrastructure/composition/github_runtime_doctor_composition_root.ts) · [`src/application/policies/agent_activity_policy.ts`](../src/application/policies/agent_activity_policy.ts) · [`src/application/policies/doctor_workflow_matrix_policy.ts`](../src/application/policies/doctor_workflow_matrix_policy.ts) · [`src/application/contracts/setup_batch_view.ts`](../src/application/contracts/setup_batch_view.ts) · [`src/application/policies/issue_resource_input_policy.ts`](../src/application/policies/issue_resource_input_policy.ts) · [`src/application/policies/setup_batch_access_policy.ts`](../src/application/policies/setup_batch_access_policy.ts) · [`src/application/policies/setup_batch_policy.ts`](../src/application/policies/setup_batch_policy.ts) · [`src/application/policies/setup_batch_retry_policy.ts`](../src/application/policies/setup_batch_retry_policy.ts) · [`src/application/policies/setup_batch_selection_policy.ts`](../src/application/policies/setup_batch_selection_policy.ts) · [`src/application/policies/setup_batch_view_policy.ts`](../src/application/policies/setup_batch_view_policy.ts) · [`src/application/policies/setup_credential_binding_policy.ts`](../src/application/policies/setup_credential_binding_policy.ts) · [`src/application/policies/setup_organization_import_policy.ts`](../src/application/policies/setup_organization_import_policy.ts) · [`src/application/policies/setup_organization_variable_bindings.ts`](../src/application/policies/setup_organization_variable_bindings.ts) · [`src/application/policies/setup_organization_variable_reuse_policy.ts`](../src/application/policies/setup_organization_variable_reuse_policy.ts) · [`src/application/ports/setup_batch_ports.ts`](../src/application/ports/setup_batch_ports.ts) · [`src/application/usecases/setup/apply_setup_batch_use_case.ts`](../src/application/usecases/setup/apply_setup_batch_use_case.ts) · [`src/application/usecases/setup/configure_setup_batch_target_use_case.ts`](../src/application/usecases/setup/configure_setup_batch_target_use_case.ts) · [`src/application/usecases/setup/prepare_setup_batch_use_case.ts`](../src/application/usecases/setup/prepare_setup_batch_use_case.ts) · [`src/application/usecases/setup/select_setup_batch_targets_use_case.ts`](../src/application/usecases/setup/select_setup_batch_targets_use_case.ts) · [`src/application/usecases/setup/setup_batch_session_use_case.ts`](../src/application/usecases/setup/setup_batch_session_use_case.ts) · [`src/cli/setup_batch_adapter.ts`](../src/cli/setup_batch_adapter.ts) · [`src/cli/setup_source_adapter.ts`](../src/cli/setup_source_adapter.ts) · [`src/domain/setup_batch.ts`](../src/domain/setup_batch.ts) · [`src/domain/setup_credential_health.ts`](../src/domain/setup_credential_health.ts) · [`src/domain/setup_organization_reuse.ts`](../src/domain/setup_organization_reuse.ts) · [`src/infrastructure/composition/setup_batch_composition_root.ts`](../src/infrastructure/composition/setup_batch_composition_root.ts) · [`src/infrastructure/github/ports/github_setup_batch_protocol.ts`](../src/infrastructure/github/ports/github_setup_batch_protocol.ts) · [`src/infrastructure/github/ports/github_trusted_credential_health_protocol.ts`](../src/infrastructure/github/ports/github_trusted_credential_health_protocol.ts) · [`src/infrastructure/setup_batch_github_apply_adapter.ts`](../src/infrastructure/setup_batch_github_apply_adapter.ts) · [`src/infrastructure/setup_batch_github_read_adapter.ts`](../src/infrastructure/setup_batch_github_read_adapter.ts) · [`src/infrastructure/setup_batch_journal_adapter.ts`](../src/infrastructure/setup_batch_journal_adapter.ts) · [`src/infrastructure/setup_batch_workspace_adapter.ts`](../src/infrastructure/setup_batch_workspace_adapter.ts) · [`src/infrastructure/setup_trusted_credential_health_adapter.ts`](../src/infrastructure/setup_trusted_credential_health_adapter.ts) · [`src/application/policies/setup_remote_facts_policy.ts`](../src/application/policies/setup_remote_facts_policy.ts) · [`src/cli/setup_confirmation_adapter.ts`](../src/cli/setup_confirmation_adapter.ts) · [`src/cli/web_setup_adapters.ts`](../src/cli/web_setup_adapters.ts) · [`scripts/validate-agent-documentation.cjs`](../scripts/validate-agent-documentation.cjs) · [`src/utils/setup_workflow_upgrade.ts`](../src/utils/setup_workflow_upgrade.ts) · [`src/domain/setup_runner.ts`](../src/domain/setup_runner.ts) · [`src/application/policies/setup_runner_policy.ts`](../src/application/policies/setup_runner_policy.ts) · [`src/application/policies/setup_runner_question_policy.ts`](../src/application/policies/setup_runner_question_policy.ts) · [`src/application/policies/setup_runner_guidance_policy.ts`](../src/application/policies/setup_runner_guidance_policy.ts) · [`src/application/ports/setup_runner_ports.ts`](../src/application/ports/setup_runner_ports.ts) · [`src/infrastructure/setup_runner_discovery_adapter.ts`](../src/infrastructure/setup_runner_discovery_adapter.ts) · [`src/infrastructure/composition/setup_runner_composition_root.ts`](../src/infrastructure/composition/setup_runner_composition_root.ts) · [`src/utils/setup_installation_review.ts`](../src/utils/setup_installation_review.ts) · [`src/cli/setup_installation_review_presenter.ts`](../src/cli/setup_installation_review_presenter.ts) · [`src/application/policies/setup_runner_installation_summary_policy.ts`](../src/application/policies/setup_runner_installation_summary_policy.ts) · [`src/utils/setup_files.ts`](../src/utils/setup_files.ts) · [`src/domain/specification_catalog_path_policy.cjs`](../src/domain/specification_catalog_path_policy.cjs) · [`src/domain/sdd_prerequisite_policy.cjs`](../src/domain/sdd_prerequisite_policy.cjs) -- Tests: [`src/data/repository/__tests__/repository_version_tags_query_repository.test.ts`](../src/data/repository/__tests__/repository_version_tags_query_repository.test.ts) · [`src/cli/__tests__/setup_command_options.test.ts`](../src/cli/__tests__/setup_command_options.test.ts) · [`src/data/repository/__tests__/setup_variable_write_failures.test.ts`](../src/data/repository/__tests__/setup_variable_write_failures.test.ts) · [`src/infrastructure/composition/__tests__/initial_setup_composition_root.test.ts`](../src/infrastructure/composition/__tests__/initial_setup_composition_root.test.ts) · [`src/application/policies/__tests__/setup_questionnaire_policy.test.ts`](../src/application/policies/__tests__/setup_questionnaire_policy.test.ts) · [`src/application/policies/__tests__/setup_configuration_policy.test.ts`](../src/application/policies/__tests__/setup_configuration_policy.test.ts) · [`src/application/policies/__tests__/setup_token_permission_policy.test.ts`](../src/application/policies/__tests__/setup_token_permission_policy.test.ts) · [`src/application/policies/__tests__/setup_remote_facts_policy.test.ts`](../src/application/policies/__tests__/setup_remote_facts_policy.test.ts) · [`src/application/policies/__tests__/setup_doctor_message_catalog.test.ts`](../src/application/policies/__tests__/setup_doctor_message_catalog.test.ts) · [`src/application/policies/__tests__/setup_doctor_report_policy.test.ts`](../src/application/policies/__tests__/setup_doctor_report_policy.test.ts) · [`src/application/usecases/setup/__tests__/setup_questionnaire_controller.test.ts`](../src/application/usecases/setup/__tests__/setup_questionnaire_controller.test.ts) · [`src/application/usecases/setup/__tests__/setup_wizard_use_case.test.ts`](../src/application/usecases/setup/__tests__/setup_wizard_use_case.test.ts) · [`src/application/usecases/setup/__tests__/setup_journey_use_case.test.ts`](../src/application/usecases/setup/__tests__/setup_journey_use_case.test.ts) · [`src/application/usecases/setup/__tests__/setup_session_coordinator.test.ts`](../src/application/usecases/setup/__tests__/setup_session_coordinator.test.ts) · [`src/application/usecases/setup/__tests__/setup_credentials_use_case.test.ts`](../src/application/usecases/setup/__tests__/setup_credentials_use_case.test.ts) · [`src/application/usecases/setup/__tests__/setup_token_permissions_use_case.test.ts`](../src/application/usecases/setup/__tests__/setup_token_permissions_use_case.test.ts) · [`src/application/usecases/setup/__tests__/doctor_use_case.test.ts`](../src/application/usecases/setup/__tests__/doctor_use_case.test.ts) · [`src/application/usecases/setup/__tests__/merge_queue_readiness_use_case.test.ts`](../src/application/usecases/setup/__tests__/merge_queue_readiness_use_case.test.ts) · [`src/application/usecases/actions/__tests__/initial_setup_use_case.test.ts`](../src/application/usecases/actions/__tests__/initial_setup_use_case.test.ts) · [`src/application/usecases/actions/__tests__/setup_resource_provisioning.test.ts`](../src/application/usecases/actions/__tests__/setup_resource_provisioning.test.ts) · [`src/infrastructure/__tests__/setup_workspace_adapter.test.ts`](../src/infrastructure/__tests__/setup_workspace_adapter.test.ts) · [`src/infrastructure/__tests__/setup_remote_credential_health_adapter.test.ts`](../src/infrastructure/__tests__/setup_remote_credential_health_adapter.test.ts) · [`src/infrastructure/__tests__/setup_token_permission_query_adapter.test.ts`](../src/infrastructure/__tests__/setup_token_permission_query_adapter.test.ts) · [`src/infrastructure/__tests__/setup_permission_resource_probes.test.ts`](../src/infrastructure/__tests__/setup_permission_resource_probes.test.ts) · [`src/infrastructure/__tests__/setup_projects_probe_page_policy.test.ts`](../src/infrastructure/__tests__/setup_projects_probe_page_policy.test.ts) · [`src/infrastructure/composition/__tests__/setup_token_permissions_composition_root.test.ts`](../src/infrastructure/composition/__tests__/setup_token_permissions_composition_root.test.ts) · [`src/data/repository/__tests__/repository_variables_repository.test.ts`](../src/data/repository/__tests__/repository_variables_repository.test.ts) · [`src/cli/__tests__/setup_presenters.test.ts`](../src/cli/__tests__/setup_presenters.test.ts) · [`src/cli/__tests__/setup_journey_presenter.test.ts`](../src/cli/__tests__/setup_journey_presenter.test.ts) · [`src/cli/__tests__/setup_prompt_rendering.test.ts`](../src/cli/__tests__/setup_prompt_rendering.test.ts) · [`src/cli/__tests__/setup_token_permission_presenter.test.ts`](../src/cli/__tests__/setup_token_permission_presenter.test.ts) · [`src/__tests__/cli.test.ts`](../src/__tests__/cli.test.ts) · [`src/cli/__tests__/setup_terminal_driver.test.ts`](../src/cli/__tests__/setup_terminal_driver.test.ts) · [`src/architecture/__tests__/setup_doctor_boundaries.test.ts`](../src/architecture/__tests__/setup_doctor_boundaries.test.ts) · [`src/tooling/__tests__/documentation_pat_exception_policy.test.ts`](../src/tooling/__tests__/documentation_pat_exception_policy.test.ts) · [`src/infrastructure/__tests__/setup_pat_audit.test.ts`](../src/infrastructure/__tests__/setup_pat_audit.test.ts) · [`src/infrastructure/__tests__/setup_permission_projects_access.test.ts`](../src/infrastructure/__tests__/setup_permission_projects_access.test.ts) · [`src/infrastructure/__tests__/setup_credential_validation_adapter.test.ts`](../src/infrastructure/__tests__/setup_credential_validation_adapter.test.ts) · [`src/infrastructure/__tests__/setup_github_identity_query_adapter.test.ts`](../src/infrastructure/__tests__/setup_github_identity_query_adapter.test.ts) · [`src/infrastructure/__tests__/git_commit_adapter.test.ts`](../src/infrastructure/__tests__/git_commit_adapter.test.ts) · [`src/actions/__tests__/github_action_input.test.ts`](../src/actions/__tests__/github_action_input.test.ts) · [`src/infrastructure/__tests__/setup_permission_cleanup_contract.test.ts`](../src/infrastructure/__tests__/setup_permission_cleanup_contract.test.ts) · [`src/infrastructure/__tests__/setup_permission_actions_cleanup_timing.test.ts`](../src/infrastructure/__tests__/setup_permission_actions_cleanup_timing.test.ts) · [`src/infrastructure/__tests__/setup_permission_operator_actions.test.ts`](../src/infrastructure/__tests__/setup_permission_operator_actions.test.ts) · [`src/infrastructure/__tests__/setup_permission_journal_contract.test.ts`](../src/infrastructure/__tests__/setup_permission_journal_contract.test.ts) · [`src/infrastructure/__tests__/setup_permission_audit_transactions.test.ts`](../src/infrastructure/__tests__/setup_permission_audit_transactions.test.ts) · [`src/infrastructure/__tests__/setup_permission_write_failures.test.ts`](../src/infrastructure/__tests__/setup_permission_write_failures.test.ts) · [`src/infrastructure/__tests__/setup_permission_resource_failures.test.ts`](../src/infrastructure/__tests__/setup_permission_resource_failures.test.ts) · [`src/infrastructure/__tests__/setup_permission_boundary_failures.test.ts`](../src/infrastructure/__tests__/setup_permission_boundary_failures.test.ts) · [`src/infrastructure/__tests__/github_secret_encryption.test.ts`](../src/infrastructure/__tests__/github_secret_encryption.test.ts) · [`src/infrastructure/__tests__/setup_permission_organization_owner.test.ts`](../src/infrastructure/__tests__/setup_permission_organization_owner.test.ts) · [`src/infrastructure/__tests__/setup_pat_bootstrap_transactions.test.ts`](../src/infrastructure/__tests__/setup_pat_bootstrap_transactions.test.ts) · [`src/data/repository/__tests__/repository_actions_sdk_contract.integration.test.ts`](../src/data/repository/__tests__/repository_actions_sdk_contract.integration.test.ts) · [`src/data/repository/__tests__/repository_actions_resource_edge_cases.test.ts`](../src/data/repository/__tests__/repository_actions_resource_edge_cases.test.ts) · [`src/data/repository/__tests__/repository_selected_resource_grants.test.ts`](../src/data/repository/__tests__/repository_selected_resource_grants.test.ts) · [`src/infrastructure/__tests__/setup_permission_read_contract.test.ts`](../src/infrastructure/__tests__/setup_permission_read_contract.test.ts) · [`src/application/usecases/setup/__tests__/setup_workflow_pat_conflict.test.ts`](../src/application/usecases/setup/__tests__/setup_workflow_pat_conflict.test.ts) · [`src/application/usecases/setup/__tests__/setup_workflow_pat_credential_rotation.test.ts`](../src/application/usecases/setup/__tests__/setup_workflow_pat_credential_rotation.test.ts) · [`src/data/repository/__tests__/setup_organization_pat_inventory.test.ts`](../src/data/repository/__tests__/setup_organization_pat_inventory.test.ts) · [`src/cli/__tests__/web_setup_bot_pat_scope_conflict.test.ts`](../src/cli/__tests__/web_setup_bot_pat_scope_conflict.test.ts) · [`src/actions/__tests__/local_setup_apply_contract.test.ts`](../src/actions/__tests__/local_setup_apply_contract.test.ts) · [`src/cli/commands/__tests__/setup_policy.test.ts`](../src/cli/commands/__tests__/setup_policy.test.ts) · [`src/application/usecases/execution/__tests__/execution_issue_number_policy.test.ts`](../src/application/usecases/execution/__tests__/execution_issue_number_policy.test.ts) · [`src/application/usecases/execution/__tests__/setup_execution_workflow.test.ts`](../src/application/usecases/execution/__tests__/setup_execution_workflow.test.ts) · [`src/domain/__tests__/github_runtime_doctor.test.ts`](../src/domain/__tests__/github_runtime_doctor.test.ts) · [`src/domain/__tests__/copilot_command.test.ts`](../src/domain/__tests__/copilot_command.test.ts) · [`src/application/usecases/__tests__/comment_automation_use_case.test.ts`](../src/application/usecases/__tests__/comment_automation_use_case.test.ts) · [`src/application/policies/__tests__/github_runtime_doctor_policy.test.ts`](../src/application/policies/__tests__/github_runtime_doctor_policy.test.ts) · [`src/application/policies/__tests__/doctor_workflow_condition_policy.test.ts`](../src/application/policies/__tests__/doctor_workflow_condition_policy.test.ts) · [`src/application/policies/__tests__/github_runtime_doctor_presentation_policy.test.ts`](../src/application/policies/__tests__/github_runtime_doctor_presentation_policy.test.ts) · [`src/application/usecases/__tests__/read_copilot_doctor_workflow.test.ts`](../src/application/usecases/__tests__/read_copilot_doctor_workflow.test.ts) · [`src/application/usecases/__tests__/runtime_doctor_security_integration.test.ts`](../src/application/usecases/__tests__/runtime_doctor_security_integration.test.ts) · [`src/data/repository/github/__tests__/runtime_doctor_repository.test.ts`](../src/data/repository/github/__tests__/runtime_doctor_repository.test.ts) · [`src/infrastructure/composition/__tests__/github_runtime_doctor_composition_root.test.ts`](../src/infrastructure/composition/__tests__/github_runtime_doctor_composition_root.test.ts) · [`src/application/policies/__tests__/runtime_doctor_agent_activity.test.ts`](../src/application/policies/__tests__/runtime_doctor_agent_activity.test.ts) · [`src/application/policies/__tests__/doctor_workflow_matrix_policy.test.ts`](../src/application/policies/__tests__/doctor_workflow_matrix_policy.test.ts) · [`src/application/policies/__tests__/setup_approval_operator_permissions.test.ts`](../src/application/policies/__tests__/setup_approval_operator_permissions.test.ts) · [`src/application/usecases/setup/__tests__/audit_configured_setup_pat_use_case.test.ts`](../src/application/usecases/setup/__tests__/audit_configured_setup_pat_use_case.test.ts) · [`src/application/policies/__tests__/setup_batch_permission_policy.test.ts`](../src/application/policies/__tests__/setup_batch_permission_policy.test.ts) · [`src/application/policies/__tests__/setup_batch_policy.test.ts`](../src/application/policies/__tests__/setup_batch_policy.test.ts) · [`src/application/policies/__tests__/setup_batch_retry_policy.test.ts`](../src/application/policies/__tests__/setup_batch_retry_policy.test.ts) · [`src/application/policies/__tests__/setup_batch_selection_policy.test.ts`](../src/application/policies/__tests__/setup_batch_selection_policy.test.ts) · [`src/application/policies/__tests__/setup_organization_approval_draft.test.ts`](../src/application/policies/__tests__/setup_organization_approval_draft.test.ts) · [`src/application/policies/__tests__/setup_organization_import_policy.test.ts`](../src/application/policies/__tests__/setup_organization_import_policy.test.ts) · [`src/application/policies/__tests__/setup_organization_import_safety.test.ts`](../src/application/policies/__tests__/setup_organization_import_safety.test.ts) · [`src/application/policies/__tests__/setup_organization_variable_reuse_policy.test.ts`](../src/application/policies/__tests__/setup_organization_variable_reuse_policy.test.ts) · [`src/application/usecases/actions/__tests__/setup_organization_reuse_provisioning.test.ts`](../src/application/usecases/actions/__tests__/setup_organization_reuse_provisioning.test.ts) · [`src/application/usecases/setup/__tests__/apply_setup_batch_use_case.test.ts`](../src/application/usecases/setup/__tests__/apply_setup_batch_use_case.test.ts) · [`src/application/usecases/setup/__tests__/select_setup_batch_targets_use_case.test.ts`](../src/application/usecases/setup/__tests__/select_setup_batch_targets_use_case.test.ts) · [`src/application/usecases/setup/__tests__/setup_batch_flow.test.ts`](../src/application/usecases/setup/__tests__/setup_batch_flow.test.ts) · [`src/application/usecases/setup/__tests__/setup_organization_import_wizard.test.ts`](../src/application/usecases/setup/__tests__/setup_organization_import_wizard.test.ts) · [`src/application/usecases/setup/__tests__/setup_organization_secret_reuse.test.ts`](../src/application/usecases/setup/__tests__/setup_organization_secret_reuse.test.ts) · [`src/cli/__tests__/setup_source_adapter.test.ts`](../src/cli/__tests__/setup_source_adapter.test.ts) · [`src/cli/__tests__/web_setup_batch_components.test.ts`](../src/cli/__tests__/web_setup_batch_components.test.ts) · [`src/cli/__tests__/web_setup_batch_selection.test.ts`](../src/cli/__tests__/web_setup_batch_selection.test.ts) · [`src/infrastructure/__tests__/setup_batch_github_apply_adapter.test.ts`](../src/infrastructure/__tests__/setup_batch_github_apply_adapter.test.ts) · [`src/infrastructure/__tests__/setup_batch_github_read_adapter.test.ts`](../src/infrastructure/__tests__/setup_batch_github_read_adapter.test.ts) · [`src/infrastructure/__tests__/setup_batch_local_adapters.test.ts`](../src/infrastructure/__tests__/setup_batch_local_adapters.test.ts) · [`src/infrastructure/__tests__/setup_reuse_empty_collections.integration.test.ts`](../src/infrastructure/__tests__/setup_reuse_empty_collections.integration.test.ts) · [`src/infrastructure/__tests__/setup_trusted_credential_health_adapter.test.ts`](../src/infrastructure/__tests__/setup_trusted_credential_health_adapter.test.ts) · [`src/infrastructure/__tests__/setup_trusted_health_sdk_contract.integration.test.ts`](../src/infrastructure/__tests__/setup_trusted_health_sdk_contract.integration.test.ts) · [`src/application/policies/__tests__/setup_batch_access_and_view.test.ts`](../src/application/policies/__tests__/setup_batch_access_and_view.test.ts) · [`src/cli/__tests__/setup_batch_adapter.test.ts`](../src/cli/__tests__/setup_batch_adapter.test.ts) · [`src/infrastructure/__tests__/setup_batch_composition.test.ts`](../src/infrastructure/__tests__/setup_batch_composition.test.ts) · [`src/infrastructure/__tests__/setup_batch_guidance_compatibility.test.ts`](../src/infrastructure/__tests__/setup_batch_guidance_compatibility.test.ts) · [`src/utils/__tests__/setup_workflow_upgrade.test.ts`](../src/utils/__tests__/setup_workflow_upgrade.test.ts) · [`src/cli/__tests__/setup_pat_intent_adapter.test.ts`](../src/cli/__tests__/setup_pat_intent_adapter.test.ts) · [`src/application/usecases/__tests__/push_single_action_contexts.test.ts`](../src/application/usecases/__tests__/push_single_action_contexts.test.ts) · [`src/application/policies/__tests__/setup_runner_policy.test.ts`](../src/application/policies/__tests__/setup_runner_policy.test.ts) · [`src/application/policies/__tests__/setup_runner_question_policy.test.ts`](../src/application/policies/__tests__/setup_runner_question_policy.test.ts) · [`src/infrastructure/__tests__/setup_runner_discovery_adapter.test.ts`](../src/infrastructure/__tests__/setup_runner_discovery_adapter.test.ts) · [`src/utils/__tests__/setup_runner_installation.test.ts`](../src/utils/__tests__/setup_runner_installation.test.ts) · [`src/cli/__tests__/web_setup_runner_components.test.ts`](../src/cli/__tests__/web_setup_runner_components.test.ts) · [`src/application/policies/__tests__/setup_runner_installation_summary_policy.test.ts`](../src/application/policies/__tests__/setup_runner_installation_summary_policy.test.ts) · [`src/application/usecases/setup/__tests__/setup_runner_planning.test.ts`](../src/application/usecases/setup/__tests__/setup_runner_planning.test.ts) · [`src/cli/__tests__/setup_runner_config_file.test.ts`](../src/cli/__tests__/setup_runner_config_file.test.ts) · [`src/infrastructure/__tests__/setup_runner_composition.test.ts`](../src/infrastructure/__tests__/setup_runner_composition.test.ts) · [`src/tooling/__tests__/setup_provisioning_workflow.test.ts`](../src/tooling/__tests__/setup_provisioning_workflow.test.ts) · [`src/infrastructure/__tests__/setup_sdd_prerequisites.test.ts`](../src/infrastructure/__tests__/setup_sdd_prerequisites.test.ts) -- User documentation: [`README.md`](../README.md) · [`docs/how-to-use.mdx`](../docs/how-to-use.mdx) · [`docs/configuration.mdx`](../docs/configuration.mdx) · [`docs/configuration-checklist.mdx`](../docs/configuration-checklist.mdx) · [`docs/authentication.mdx`](../docs/authentication.mdx) · [`docs/development/architecture.mdx`](../docs/development/architecture.mdx) · [`docs/security-operations/operations/provisioning.mdx`](../docs/security-operations/operations/provisioning.mdx) · [`docs/security-operations/operations/troubleshooting.mdx`](../docs/security-operations/operations/troubleshooting.mdx) · [`docs/security-operations/security/credentials.mdx`](../docs/security-operations/security/credentials.mdx) · [`docs/single-actions/workflow-and-cli.mdx`](../docs/single-actions/workflow-and-cli.mdx) · [`docs/security-operations/operations/verification.mdx`](../docs/security-operations/operations/verification.mdx) · [`docs/development/setup-pat-provider-audit-2026-10-06.md`](../docs/development/setup-pat-provider-audit-2026-10-06.md) · [`docs/issues/comment-commands.mdx`](../docs/issues/comment-commands.mdx) · [`docs/issues/branch-synchronization.mdx`](../docs/issues/branch-synchronization.mdx) +- Core code: [`src/domain/setup.ts`](../src/domain/setup.ts) · [`src/domain/setup_questionnaire.ts`](../src/domain/setup_questionnaire.ts) · [`src/domain/setup_token_permissions.ts`](../src/domain/setup_token_permissions.ts) · [`src/application/ports/setup_terminal_ports.ts`](../src/application/ports/setup_terminal_ports.ts) · [`src/application/ports/setup_wizard_ports.ts`](../src/application/ports/setup_wizard_ports.ts) · [`src/application/ports/branch_tag_ports.ts`](../src/application/ports/branch_tag_ports.ts) · [`src/application/policies/setup_issue_workflow_policy.ts`](../src/application/policies/setup_issue_workflow_policy.ts) · [`src/data/repository/release/repository_version_tags_query_repository.ts`](../src/data/repository/release/repository_version_tags_query_repository.ts) · [`src/application/ports/setup_token_permission_ports.ts`](../src/application/ports/setup_token_permission_ports.ts) · [`src/application/policies/setup_token_permission_evidence_policy.ts`](../src/application/policies/setup_token_permission_evidence_policy.ts) · [`src/application/policies/setup_token_permission_policy.ts`](../src/application/policies/setup_token_permission_policy.ts) · [`src/application/policies/setup_questionnaire_policy.ts`](../src/application/policies/setup_questionnaire_policy.ts) · [`src/application/policies/setup_configuration_plan.ts`](../src/application/policies/setup_configuration_plan.ts) · [`src/application/policies/merge_setup_overrides_policy.ts`](../src/application/policies/merge_setup_overrides_policy.ts) · [`src/application/policies/setup_configuration_storage_policy.ts`](../src/application/policies/setup_configuration_storage_policy.ts) · [`src/application/policies/setup_doctor_message_catalog.ts`](../src/application/policies/setup_doctor_message_catalog.ts) · [`src/application/policies/setup_doctor_report_policy.ts`](../src/application/policies/setup_doctor_report_policy.ts) · [`src/application/policies/setup_journey_policy.ts`](../src/application/policies/setup_journey_policy.ts) · [`src/application/policies/setup_permission_summary_policy.ts`](../src/application/policies/setup_permission_summary_policy.ts) · [`src/application/usecases/setup/setup_wizard_use_case.ts`](../src/application/usecases/setup/setup_wizard_use_case.ts) · [`src/application/usecases/setup/setup_journey_use_case.ts`](../src/application/usecases/setup/setup_journey_use_case.ts) · [`src/application/usecases/setup/setup_session_coordinator.ts`](../src/application/usecases/setup/setup_session_coordinator.ts) · [`src/application/usecases/setup/setup_questionnaire_controller.ts`](../src/application/usecases/setup/setup_questionnaire_controller.ts) · [`src/application/usecases/setup/setup_credentials_use_case.ts`](../src/application/usecases/setup/setup_credentials_use_case.ts) · [`src/application/usecases/setup/setup_token_permissions_use_case.ts`](../src/application/usecases/setup/setup_token_permissions_use_case.ts) · [`src/application/usecases/setup/doctor_use_case.ts`](../src/application/usecases/setup/doctor_use_case.ts) · [`src/application/usecases/setup/merge_queue_readiness_use_case.ts`](../src/application/usecases/setup/merge_queue_readiness_use_case.ts) · [`src/application/usecases/actions/initial_setup_workflow.ts`](../src/application/usecases/actions/initial_setup_workflow.ts) · [`src/application/usecases/actions/setup_resource_provisioning.ts`](../src/application/usecases/actions/setup_resource_provisioning.ts) · [`src/application/ports/message_catalog_ports.ts`](../src/application/ports/message_catalog_ports.ts) · [`src/application/usecases/localization/resolve_message_catalog_use_case.ts`](../src/application/usecases/localization/resolve_message_catalog_use_case.ts) · [`src/application/policies/setup_configuration_validation.ts`](../src/application/policies/setup_configuration_validation.ts) · [`src/infrastructure/setup_workspace_adapter.ts`](../src/infrastructure/setup_workspace_adapter.ts) · [`src/data/repository/repository_variables_repository.ts`](../src/data/repository/repository_variables_repository.ts) · [`src/infrastructure/github/ports/github_repository_variables_protocol.ts`](../src/infrastructure/github/ports/github_repository_variables_protocol.ts) · [`src/infrastructure/setup_remote_credential_health_adapter.ts`](../src/infrastructure/setup_remote_credential_health_adapter.ts) · [`src/infrastructure/setup_credential_validation_adapter.ts`](../src/infrastructure/setup_credential_validation_adapter.ts) · [`src/infrastructure/setup_token_permission_query_adapter.ts`](../src/infrastructure/setup_token_permission_query_adapter.ts) · [`src/infrastructure/setup_permission_actions_probe.ts`](../src/infrastructure/setup_permission_actions_probe.ts) · [`src/infrastructure/setup_permission_issue_probe.ts`](../src/infrastructure/setup_permission_issue_probe.ts) · [`src/infrastructure/setup_permission_issue_cleanup.ts`](../src/infrastructure/setup_permission_issue_cleanup.ts) · [`src/infrastructure/setup_permission_probe_journal.ts`](../src/infrastructure/setup_permission_probe_journal.ts) · [`src/infrastructure/setup_permission_probe_transaction.ts`](../src/infrastructure/setup_permission_probe_transaction.ts) · [`src/infrastructure/setup_permission_resource_probes.ts`](../src/infrastructure/setup_permission_resource_probes.ts) · [`src/infrastructure/setup_projects_probe_page_policy.ts`](../src/infrastructure/setup_projects_probe_page_policy.ts) · [`src/cli/setup_terminal_driver.ts`](../src/cli/setup_terminal_driver.ts) · [`src/cli/setup_question_renderer.ts`](../src/cli/setup_question_renderer.ts) · [`src/cli/setup_journey_presenter.ts`](../src/cli/setup_journey_presenter.ts) · [`src/cli/setup_plan_presenter.ts`](../src/cli/setup_plan_presenter.ts) · [`src/cli/setup_doctor_presenter.ts`](../src/cli/setup_doctor_presenter.ts) · [`src/cli/setup_prompt_rendering.ts`](../src/cli/setup_prompt_rendering.ts) · [`src/cli/setup_credential_prompt_adapter.ts`](../src/cli/setup_credential_prompt_adapter.ts) · [`src/cli/setup_credential_collection.ts`](../src/cli/setup_credential_collection.ts) · [`src/cli/commands/setup_execution.ts`](../src/cli/commands/setup_execution.ts) · [`src/cli/setup_token_permission_presenter.ts`](../src/cli/setup_token_permission_presenter.ts) · [`src/infrastructure/composition/setup_credentials_composition_root.ts`](../src/infrastructure/composition/setup_credentials_composition_root.ts) · [`src/infrastructure/composition/setup_token_permissions_composition_root.ts`](../src/infrastructure/composition/setup_token_permissions_composition_root.ts) · [`src/infrastructure/composition/setup_doctor_composition_root.ts`](../src/infrastructure/composition/setup_doctor_composition_root.ts) · [`scripts/coverage-budgets.json`](../scripts/coverage-budgets.json) · [`scripts/documentation_pat_exception_policy.cjs`](../scripts/documentation_pat_exception_policy.cjs) · [`scripts/validate-documentation-contract.cjs`](../scripts/validate-documentation-contract.cjs) · [`src/infrastructure/http_deadline.ts`](../src/infrastructure/http_deadline.ts) · [`src/infrastructure/setup_permission_denial.ts`](../src/infrastructure/setup_permission_denial.ts) · [`src/infrastructure/setup_permission_read_probe.ts`](../src/infrastructure/setup_permission_read_probe.ts) · [`src/infrastructure/setup_permission_read_evidence.ts`](../src/infrastructure/setup_permission_read_evidence.ts) · [`src/infrastructure/setup_permission_read_shape.ts`](../src/infrastructure/setup_permission_read_shape.ts) · [`src/infrastructure/setup_permission_projects_read.ts`](../src/infrastructure/setup_permission_projects_read.ts) · [`src/infrastructure/setup_permission_projects_access.ts`](../src/infrastructure/setup_permission_projects_access.ts) · [`src/infrastructure/setup_permission_workflow_cleanup.ts`](../src/infrastructure/setup_permission_workflow_cleanup.ts) · [`src/infrastructure/setup_permission_project_cleanup.ts`](../src/infrastructure/setup_permission_project_cleanup.ts) · [`src/infrastructure/setup_permission_probe_http.ts`](../src/infrastructure/setup_permission_probe_http.ts) · [`src/infrastructure/setup_permission_pull_request_probe.ts`](../src/infrastructure/setup_permission_pull_request_probe.ts) · [`src/infrastructure/git_authentication_environment.ts`](../src/infrastructure/git_authentication_environment.ts) · [`src/actions/github_action_input.ts`](../src/actions/github_action_input.ts) · [`src/infrastructure/setup_github_identity_query_adapter.ts`](../src/infrastructure/setup_github_identity_query_adapter.ts) · [`src/infrastructure/github_secret_encryption.ts`](../src/infrastructure/github_secret_encryption.ts) · [`src/infrastructure/setup_permission_organization_owner.ts`](../src/infrastructure/setup_permission_organization_owner.ts) · [`src/data/repository/github/github_actions_resource_inspector.ts`](../src/data/repository/github/github_actions_resource_inspector.ts) · [`src/data/repository/github/github_actions_resource_commands.ts`](../src/data/repository/github/github_actions_resource_commands.ts) · [`src/data/repository/github/github_actions_resource_collection.ts`](../src/data/repository/github/github_actions_resource_collection.ts) · [`src/application/usecases/setup/resolve_setup_workflow_pat_conflict_use_case.ts`](../src/application/usecases/setup/resolve_setup_workflow_pat_conflict_use_case.ts) · [`src/cli/setup_workflow_pat_storage_copy.ts`](../src/cli/setup_workflow_pat_storage_copy.ts) · [`src/cli/commands/setup_policy.ts`](../src/cli/commands/setup_policy.ts) · [`src/application/usecases/execution/execution_issue_number_policy.ts`](../src/application/usecases/execution/execution_issue_number_policy.ts) · [`src/application/usecases/execution/setup_execution_workflow.ts`](../src/application/usecases/execution/setup_execution_workflow.ts) · [`src/domain/github_runtime_doctor.ts`](../src/domain/github_runtime_doctor.ts) · [`src/domain/copilot_command.ts`](../src/domain/copilot_command.ts) · [`src/application/usecases/comment_automation_command_workflow.ts`](../src/application/usecases/comment_automation_command_workflow.ts) · [`src/application/policies/copilot_interaction_policy.ts`](../src/application/policies/copilot_interaction_policy.ts) · [`src/application/policies/publication_message_catalog.ts`](../src/application/policies/publication_message_catalog.ts) · [`src/application/ports/github_runtime_doctor_ports.ts`](../src/application/ports/github_runtime_doctor_ports.ts) · [`src/application/policies/github_runtime_doctor_policy.ts`](../src/application/policies/github_runtime_doctor_policy.ts) · [`src/application/policies/doctor_workflow_condition_policy.ts`](../src/application/policies/doctor_workflow_condition_policy.ts) · [`src/application/policies/github_runtime_doctor_presentation_policy.ts`](../src/application/policies/github_runtime_doctor_presentation_policy.ts) · [`src/application/usecases/read_copilot_doctor_workflow.ts`](../src/application/usecases/read_copilot_doctor_workflow.ts) · [`src/data/repository/github/runtime_doctor_repository.ts`](../src/data/repository/github/runtime_doctor_repository.ts) · [`src/infrastructure/composition/github_runtime_doctor_composition_root.ts`](../src/infrastructure/composition/github_runtime_doctor_composition_root.ts) · [`src/application/policies/agent_activity_policy.ts`](../src/application/policies/agent_activity_policy.ts) · [`src/application/policies/doctor_workflow_matrix_policy.ts`](../src/application/policies/doctor_workflow_matrix_policy.ts) · [`src/application/contracts/setup_batch_view.ts`](../src/application/contracts/setup_batch_view.ts) · [`src/application/policies/issue_resource_input_policy.ts`](../src/application/policies/issue_resource_input_policy.ts) · [`src/application/policies/setup_batch_access_policy.ts`](../src/application/policies/setup_batch_access_policy.ts) · [`src/application/policies/setup_batch_policy.ts`](../src/application/policies/setup_batch_policy.ts) · [`src/application/policies/setup_batch_retry_policy.ts`](../src/application/policies/setup_batch_retry_policy.ts) · [`src/application/policies/setup_batch_selection_policy.ts`](../src/application/policies/setup_batch_selection_policy.ts) · [`src/application/policies/setup_batch_view_policy.ts`](../src/application/policies/setup_batch_view_policy.ts) · [`src/application/policies/setup_credential_binding_policy.ts`](../src/application/policies/setup_credential_binding_policy.ts) · [`src/application/policies/setup_organization_import_policy.ts`](../src/application/policies/setup_organization_import_policy.ts) · [`src/application/policies/setup_organization_variable_bindings.ts`](../src/application/policies/setup_organization_variable_bindings.ts) · [`src/application/policies/setup_organization_variable_reuse_policy.ts`](../src/application/policies/setup_organization_variable_reuse_policy.ts) · [`src/application/ports/setup_batch_ports.ts`](../src/application/ports/setup_batch_ports.ts) · [`src/application/usecases/setup/apply_setup_batch_use_case.ts`](../src/application/usecases/setup/apply_setup_batch_use_case.ts) · [`src/application/usecases/setup/configure_setup_batch_target_use_case.ts`](../src/application/usecases/setup/configure_setup_batch_target_use_case.ts) · [`src/application/usecases/setup/prepare_setup_batch_use_case.ts`](../src/application/usecases/setup/prepare_setup_batch_use_case.ts) · [`src/application/usecases/setup/select_setup_batch_targets_use_case.ts`](../src/application/usecases/setup/select_setup_batch_targets_use_case.ts) · [`src/application/usecases/setup/setup_batch_session_use_case.ts`](../src/application/usecases/setup/setup_batch_session_use_case.ts) · [`src/cli/setup_batch_adapter.ts`](../src/cli/setup_batch_adapter.ts) · [`src/cli/setup_source_adapter.ts`](../src/cli/setup_source_adapter.ts) · [`src/domain/setup_batch.ts`](../src/domain/setup_batch.ts) · [`src/domain/setup_credential_health.ts`](../src/domain/setup_credential_health.ts) · [`src/domain/setup_organization_reuse.ts`](../src/domain/setup_organization_reuse.ts) · [`src/infrastructure/composition/setup_batch_composition_root.ts`](../src/infrastructure/composition/setup_batch_composition_root.ts) · [`src/infrastructure/github/ports/github_setup_batch_protocol.ts`](../src/infrastructure/github/ports/github_setup_batch_protocol.ts) · [`src/infrastructure/github/ports/github_trusted_credential_health_protocol.ts`](../src/infrastructure/github/ports/github_trusted_credential_health_protocol.ts) · [`src/infrastructure/setup_batch_github_apply_adapter.ts`](../src/infrastructure/setup_batch_github_apply_adapter.ts) · [`src/infrastructure/setup_batch_github_read_adapter.ts`](../src/infrastructure/setup_batch_github_read_adapter.ts) · [`src/infrastructure/setup_batch_journal_adapter.ts`](../src/infrastructure/setup_batch_journal_adapter.ts) · [`src/infrastructure/setup_batch_workspace_adapter.ts`](../src/infrastructure/setup_batch_workspace_adapter.ts) · [`src/infrastructure/setup_trusted_credential_health_adapter.ts`](../src/infrastructure/setup_trusted_credential_health_adapter.ts) · [`src/application/policies/setup_remote_facts_policy.ts`](../src/application/policies/setup_remote_facts_policy.ts) · [`src/cli/setup_confirmation_adapter.ts`](../src/cli/setup_confirmation_adapter.ts) · [`src/cli/web_setup_adapters.ts`](../src/cli/web_setup_adapters.ts) · [`scripts/validate-agent-documentation.cjs`](../scripts/validate-agent-documentation.cjs) · [`src/utils/setup_workflow_upgrade.ts`](../src/utils/setup_workflow_upgrade.ts) · [`src/domain/setup_runner.ts`](../src/domain/setup_runner.ts) · [`src/application/policies/setup_runner_policy.ts`](../src/application/policies/setup_runner_policy.ts) · [`src/application/policies/setup_runner_question_policy.ts`](../src/application/policies/setup_runner_question_policy.ts) · [`src/application/policies/setup_runner_guidance_policy.ts`](../src/application/policies/setup_runner_guidance_policy.ts) · [`src/application/ports/setup_runner_ports.ts`](../src/application/ports/setup_runner_ports.ts) · [`src/infrastructure/setup_runner_discovery_adapter.ts`](../src/infrastructure/setup_runner_discovery_adapter.ts) · [`src/infrastructure/composition/setup_runner_composition_root.ts`](../src/infrastructure/composition/setup_runner_composition_root.ts) · [`src/utils/setup_installation_review.ts`](../src/utils/setup_installation_review.ts) · [`src/cli/setup_installation_review_presenter.ts`](../src/cli/setup_installation_review_presenter.ts) · [`src/application/policies/setup_runner_installation_summary_policy.ts`](../src/application/policies/setup_runner_installation_summary_policy.ts) · [`src/utils/setup_files.ts`](../src/utils/setup_files.ts) · [`src/domain/specification_catalog_path_policy.cjs`](../src/domain/specification_catalog_path_policy.cjs) · [`src/domain/sdd_prerequisite_policy.cjs`](../src/domain/sdd_prerequisite_policy.cjs) · [`src/application/contracts/setup_documentation.ts`](../src/application/contracts/setup_documentation.ts) · [`src/application/policies/setup_question_documentation_policy.ts`](../src/application/policies/setup_question_documentation_policy.ts) · [`web/src/components/SetupHelp.svelte`](../web/src/components/SetupHelp.svelte) · [`web/src/components/CompletedSetupHelp.svelte`](../web/src/components/CompletedSetupHelp.svelte) +- Tests: [`src/data/repository/__tests__/repository_version_tags_query_repository.test.ts`](../src/data/repository/__tests__/repository_version_tags_query_repository.test.ts) · [`src/cli/__tests__/setup_command_options.test.ts`](../src/cli/__tests__/setup_command_options.test.ts) · [`src/data/repository/__tests__/setup_variable_write_failures.test.ts`](../src/data/repository/__tests__/setup_variable_write_failures.test.ts) · [`src/infrastructure/composition/__tests__/initial_setup_composition_root.test.ts`](../src/infrastructure/composition/__tests__/initial_setup_composition_root.test.ts) · [`src/application/policies/__tests__/setup_questionnaire_policy.test.ts`](../src/application/policies/__tests__/setup_questionnaire_policy.test.ts) · [`src/application/policies/__tests__/setup_configuration_policy.test.ts`](../src/application/policies/__tests__/setup_configuration_policy.test.ts) · [`src/application/policies/__tests__/setup_token_permission_policy.test.ts`](../src/application/policies/__tests__/setup_token_permission_policy.test.ts) · [`src/application/policies/__tests__/setup_remote_facts_policy.test.ts`](../src/application/policies/__tests__/setup_remote_facts_policy.test.ts) · [`src/application/policies/__tests__/setup_doctor_message_catalog.test.ts`](../src/application/policies/__tests__/setup_doctor_message_catalog.test.ts) · [`src/application/policies/__tests__/setup_doctor_report_policy.test.ts`](../src/application/policies/__tests__/setup_doctor_report_policy.test.ts) · [`src/application/usecases/setup/__tests__/setup_questionnaire_controller.test.ts`](../src/application/usecases/setup/__tests__/setup_questionnaire_controller.test.ts) · [`src/application/usecases/setup/__tests__/setup_wizard_use_case.test.ts`](../src/application/usecases/setup/__tests__/setup_wizard_use_case.test.ts) · [`src/application/usecases/setup/__tests__/setup_journey_use_case.test.ts`](../src/application/usecases/setup/__tests__/setup_journey_use_case.test.ts) · [`src/application/usecases/setup/__tests__/setup_session_coordinator.test.ts`](../src/application/usecases/setup/__tests__/setup_session_coordinator.test.ts) · [`src/application/usecases/setup/__tests__/setup_credentials_use_case.test.ts`](../src/application/usecases/setup/__tests__/setup_credentials_use_case.test.ts) · [`src/application/usecases/setup/__tests__/setup_token_permissions_use_case.test.ts`](../src/application/usecases/setup/__tests__/setup_token_permissions_use_case.test.ts) · [`src/application/usecases/setup/__tests__/doctor_use_case.test.ts`](../src/application/usecases/setup/__tests__/doctor_use_case.test.ts) · [`src/application/usecases/setup/__tests__/merge_queue_readiness_use_case.test.ts`](../src/application/usecases/setup/__tests__/merge_queue_readiness_use_case.test.ts) · [`src/application/usecases/actions/__tests__/initial_setup_use_case.test.ts`](../src/application/usecases/actions/__tests__/initial_setup_use_case.test.ts) · [`src/application/usecases/actions/__tests__/setup_resource_provisioning.test.ts`](../src/application/usecases/actions/__tests__/setup_resource_provisioning.test.ts) · [`src/infrastructure/__tests__/setup_workspace_adapter.test.ts`](../src/infrastructure/__tests__/setup_workspace_adapter.test.ts) · [`src/infrastructure/__tests__/setup_remote_credential_health_adapter.test.ts`](../src/infrastructure/__tests__/setup_remote_credential_health_adapter.test.ts) · [`src/infrastructure/__tests__/setup_token_permission_query_adapter.test.ts`](../src/infrastructure/__tests__/setup_token_permission_query_adapter.test.ts) · [`src/infrastructure/__tests__/setup_permission_resource_probes.test.ts`](../src/infrastructure/__tests__/setup_permission_resource_probes.test.ts) · [`src/infrastructure/__tests__/setup_projects_probe_page_policy.test.ts`](../src/infrastructure/__tests__/setup_projects_probe_page_policy.test.ts) · [`src/infrastructure/composition/__tests__/setup_token_permissions_composition_root.test.ts`](../src/infrastructure/composition/__tests__/setup_token_permissions_composition_root.test.ts) · [`src/data/repository/__tests__/repository_variables_repository.test.ts`](../src/data/repository/__tests__/repository_variables_repository.test.ts) · [`src/cli/__tests__/setup_presenters.test.ts`](../src/cli/__tests__/setup_presenters.test.ts) · [`src/cli/__tests__/setup_journey_presenter.test.ts`](../src/cli/__tests__/setup_journey_presenter.test.ts) · [`src/cli/__tests__/setup_prompt_rendering.test.ts`](../src/cli/__tests__/setup_prompt_rendering.test.ts) · [`src/cli/__tests__/setup_token_permission_presenter.test.ts`](../src/cli/__tests__/setup_token_permission_presenter.test.ts) · [`src/__tests__/cli.test.ts`](../src/__tests__/cli.test.ts) · [`src/cli/__tests__/setup_terminal_driver.test.ts`](../src/cli/__tests__/setup_terminal_driver.test.ts) · [`src/architecture/__tests__/setup_doctor_boundaries.test.ts`](../src/architecture/__tests__/setup_doctor_boundaries.test.ts) · [`src/tooling/__tests__/documentation_pat_exception_policy.test.ts`](../src/tooling/__tests__/documentation_pat_exception_policy.test.ts) · [`src/infrastructure/__tests__/setup_pat_audit.test.ts`](../src/infrastructure/__tests__/setup_pat_audit.test.ts) · [`src/infrastructure/__tests__/setup_permission_projects_access.test.ts`](../src/infrastructure/__tests__/setup_permission_projects_access.test.ts) · [`src/infrastructure/__tests__/setup_credential_validation_adapter.test.ts`](../src/infrastructure/__tests__/setup_credential_validation_adapter.test.ts) · [`src/infrastructure/__tests__/setup_github_identity_query_adapter.test.ts`](../src/infrastructure/__tests__/setup_github_identity_query_adapter.test.ts) · [`src/infrastructure/__tests__/git_commit_adapter.test.ts`](../src/infrastructure/__tests__/git_commit_adapter.test.ts) · [`src/actions/__tests__/github_action_input.test.ts`](../src/actions/__tests__/github_action_input.test.ts) · [`src/infrastructure/__tests__/setup_permission_cleanup_contract.test.ts`](../src/infrastructure/__tests__/setup_permission_cleanup_contract.test.ts) · [`src/infrastructure/__tests__/setup_permission_actions_cleanup_timing.test.ts`](../src/infrastructure/__tests__/setup_permission_actions_cleanup_timing.test.ts) · [`src/infrastructure/__tests__/setup_permission_operator_actions.test.ts`](../src/infrastructure/__tests__/setup_permission_operator_actions.test.ts) · [`src/infrastructure/__tests__/setup_permission_journal_contract.test.ts`](../src/infrastructure/__tests__/setup_permission_journal_contract.test.ts) · [`src/infrastructure/__tests__/setup_permission_audit_transactions.test.ts`](../src/infrastructure/__tests__/setup_permission_audit_transactions.test.ts) · [`src/infrastructure/__tests__/setup_permission_write_failures.test.ts`](../src/infrastructure/__tests__/setup_permission_write_failures.test.ts) · [`src/infrastructure/__tests__/setup_permission_resource_failures.test.ts`](../src/infrastructure/__tests__/setup_permission_resource_failures.test.ts) · [`src/infrastructure/__tests__/setup_permission_boundary_failures.test.ts`](../src/infrastructure/__tests__/setup_permission_boundary_failures.test.ts) · [`src/infrastructure/__tests__/github_secret_encryption.test.ts`](../src/infrastructure/__tests__/github_secret_encryption.test.ts) · [`src/infrastructure/__tests__/setup_permission_organization_owner.test.ts`](../src/infrastructure/__tests__/setup_permission_organization_owner.test.ts) · [`src/infrastructure/__tests__/setup_pat_bootstrap_transactions.test.ts`](../src/infrastructure/__tests__/setup_pat_bootstrap_transactions.test.ts) · [`src/data/repository/__tests__/repository_actions_sdk_contract.integration.test.ts`](../src/data/repository/__tests__/repository_actions_sdk_contract.integration.test.ts) · [`src/data/repository/__tests__/repository_actions_resource_edge_cases.test.ts`](../src/data/repository/__tests__/repository_actions_resource_edge_cases.test.ts) · [`src/data/repository/__tests__/repository_selected_resource_grants.test.ts`](../src/data/repository/__tests__/repository_selected_resource_grants.test.ts) · [`src/infrastructure/__tests__/setup_permission_read_contract.test.ts`](../src/infrastructure/__tests__/setup_permission_read_contract.test.ts) · [`src/application/usecases/setup/__tests__/setup_workflow_pat_conflict.test.ts`](../src/application/usecases/setup/__tests__/setup_workflow_pat_conflict.test.ts) · [`src/application/usecases/setup/__tests__/setup_workflow_pat_credential_rotation.test.ts`](../src/application/usecases/setup/__tests__/setup_workflow_pat_credential_rotation.test.ts) · [`src/data/repository/__tests__/setup_organization_pat_inventory.test.ts`](../src/data/repository/__tests__/setup_organization_pat_inventory.test.ts) · [`src/cli/__tests__/web_setup_bot_pat_scope_conflict.test.ts`](../src/cli/__tests__/web_setup_bot_pat_scope_conflict.test.ts) · [`src/actions/__tests__/local_setup_apply_contract.test.ts`](../src/actions/__tests__/local_setup_apply_contract.test.ts) · [`src/cli/commands/__tests__/setup_policy.test.ts`](../src/cli/commands/__tests__/setup_policy.test.ts) · [`src/application/usecases/execution/__tests__/execution_issue_number_policy.test.ts`](../src/application/usecases/execution/__tests__/execution_issue_number_policy.test.ts) · [`src/application/usecases/execution/__tests__/setup_execution_workflow.test.ts`](../src/application/usecases/execution/__tests__/setup_execution_workflow.test.ts) · [`src/domain/__tests__/github_runtime_doctor.test.ts`](../src/domain/__tests__/github_runtime_doctor.test.ts) · [`src/domain/__tests__/copilot_command.test.ts`](../src/domain/__tests__/copilot_command.test.ts) · [`src/application/usecases/__tests__/comment_automation_use_case.test.ts`](../src/application/usecases/__tests__/comment_automation_use_case.test.ts) · [`src/application/policies/__tests__/github_runtime_doctor_policy.test.ts`](../src/application/policies/__tests__/github_runtime_doctor_policy.test.ts) · [`src/application/policies/__tests__/doctor_workflow_condition_policy.test.ts`](../src/application/policies/__tests__/doctor_workflow_condition_policy.test.ts) · [`src/application/policies/__tests__/github_runtime_doctor_presentation_policy.test.ts`](../src/application/policies/__tests__/github_runtime_doctor_presentation_policy.test.ts) · [`src/application/usecases/__tests__/read_copilot_doctor_workflow.test.ts`](../src/application/usecases/__tests__/read_copilot_doctor_workflow.test.ts) · [`src/application/usecases/__tests__/runtime_doctor_security_integration.test.ts`](../src/application/usecases/__tests__/runtime_doctor_security_integration.test.ts) · [`src/data/repository/github/__tests__/runtime_doctor_repository.test.ts`](../src/data/repository/github/__tests__/runtime_doctor_repository.test.ts) · [`src/infrastructure/composition/__tests__/github_runtime_doctor_composition_root.test.ts`](../src/infrastructure/composition/__tests__/github_runtime_doctor_composition_root.test.ts) · [`src/application/policies/__tests__/runtime_doctor_agent_activity.test.ts`](../src/application/policies/__tests__/runtime_doctor_agent_activity.test.ts) · [`src/application/policies/__tests__/doctor_workflow_matrix_policy.test.ts`](../src/application/policies/__tests__/doctor_workflow_matrix_policy.test.ts) · [`src/application/policies/__tests__/setup_approval_operator_permissions.test.ts`](../src/application/policies/__tests__/setup_approval_operator_permissions.test.ts) · [`src/application/usecases/setup/__tests__/audit_configured_setup_pat_use_case.test.ts`](../src/application/usecases/setup/__tests__/audit_configured_setup_pat_use_case.test.ts) · [`src/application/policies/__tests__/setup_batch_permission_policy.test.ts`](../src/application/policies/__tests__/setup_batch_permission_policy.test.ts) · [`src/application/policies/__tests__/setup_batch_policy.test.ts`](../src/application/policies/__tests__/setup_batch_policy.test.ts) · [`src/application/policies/__tests__/setup_batch_retry_policy.test.ts`](../src/application/policies/__tests__/setup_batch_retry_policy.test.ts) · [`src/application/policies/__tests__/setup_batch_selection_policy.test.ts`](../src/application/policies/__tests__/setup_batch_selection_policy.test.ts) · [`src/application/policies/__tests__/setup_organization_approval_draft.test.ts`](../src/application/policies/__tests__/setup_organization_approval_draft.test.ts) · [`src/application/policies/__tests__/setup_organization_import_policy.test.ts`](../src/application/policies/__tests__/setup_organization_import_policy.test.ts) · [`src/application/policies/__tests__/setup_organization_import_safety.test.ts`](../src/application/policies/__tests__/setup_organization_import_safety.test.ts) · [`src/application/policies/__tests__/setup_organization_variable_reuse_policy.test.ts`](../src/application/policies/__tests__/setup_organization_variable_reuse_policy.test.ts) · [`src/application/usecases/actions/__tests__/setup_organization_reuse_provisioning.test.ts`](../src/application/usecases/actions/__tests__/setup_organization_reuse_provisioning.test.ts) · [`src/application/usecases/setup/__tests__/apply_setup_batch_use_case.test.ts`](../src/application/usecases/setup/__tests__/apply_setup_batch_use_case.test.ts) · [`src/application/usecases/setup/__tests__/select_setup_batch_targets_use_case.test.ts`](../src/application/usecases/setup/__tests__/select_setup_batch_targets_use_case.test.ts) · [`src/application/usecases/setup/__tests__/setup_batch_flow.test.ts`](../src/application/usecases/setup/__tests__/setup_batch_flow.test.ts) · [`src/application/usecases/setup/__tests__/setup_organization_import_wizard.test.ts`](../src/application/usecases/setup/__tests__/setup_organization_import_wizard.test.ts) · [`src/application/usecases/setup/__tests__/setup_organization_secret_reuse.test.ts`](../src/application/usecases/setup/__tests__/setup_organization_secret_reuse.test.ts) · [`src/cli/__tests__/setup_source_adapter.test.ts`](../src/cli/__tests__/setup_source_adapter.test.ts) · [`src/cli/__tests__/web_setup_batch_components.test.ts`](../src/cli/__tests__/web_setup_batch_components.test.ts) · [`src/cli/__tests__/web_setup_batch_selection.test.ts`](../src/cli/__tests__/web_setup_batch_selection.test.ts) · [`src/infrastructure/__tests__/setup_batch_github_apply_adapter.test.ts`](../src/infrastructure/__tests__/setup_batch_github_apply_adapter.test.ts) · [`src/infrastructure/__tests__/setup_batch_github_read_adapter.test.ts`](../src/infrastructure/__tests__/setup_batch_github_read_adapter.test.ts) · [`src/infrastructure/__tests__/setup_batch_local_adapters.test.ts`](../src/infrastructure/__tests__/setup_batch_local_adapters.test.ts) · [`src/infrastructure/__tests__/setup_reuse_empty_collections.integration.test.ts`](../src/infrastructure/__tests__/setup_reuse_empty_collections.integration.test.ts) · [`src/infrastructure/__tests__/setup_trusted_credential_health_adapter.test.ts`](../src/infrastructure/__tests__/setup_trusted_credential_health_adapter.test.ts) · [`src/infrastructure/__tests__/setup_trusted_health_sdk_contract.integration.test.ts`](../src/infrastructure/__tests__/setup_trusted_health_sdk_contract.integration.test.ts) · [`src/application/policies/__tests__/setup_batch_access_and_view.test.ts`](../src/application/policies/__tests__/setup_batch_access_and_view.test.ts) · [`src/cli/__tests__/setup_batch_adapter.test.ts`](../src/cli/__tests__/setup_batch_adapter.test.ts) · [`src/infrastructure/__tests__/setup_batch_composition.test.ts`](../src/infrastructure/__tests__/setup_batch_composition.test.ts) · [`src/infrastructure/__tests__/setup_batch_guidance_compatibility.test.ts`](../src/infrastructure/__tests__/setup_batch_guidance_compatibility.test.ts) · [`src/utils/__tests__/setup_workflow_upgrade.test.ts`](../src/utils/__tests__/setup_workflow_upgrade.test.ts) · [`src/cli/__tests__/setup_pat_intent_adapter.test.ts`](../src/cli/__tests__/setup_pat_intent_adapter.test.ts) · [`src/application/usecases/__tests__/push_single_action_contexts.test.ts`](../src/application/usecases/__tests__/push_single_action_contexts.test.ts) · [`src/application/policies/__tests__/setup_runner_policy.test.ts`](../src/application/policies/__tests__/setup_runner_policy.test.ts) · [`src/application/policies/__tests__/setup_runner_question_policy.test.ts`](../src/application/policies/__tests__/setup_runner_question_policy.test.ts) · [`src/infrastructure/__tests__/setup_runner_discovery_adapter.test.ts`](../src/infrastructure/__tests__/setup_runner_discovery_adapter.test.ts) · [`src/utils/__tests__/setup_runner_installation.test.ts`](../src/utils/__tests__/setup_runner_installation.test.ts) · [`src/cli/__tests__/web_setup_runner_components.test.ts`](../src/cli/__tests__/web_setup_runner_components.test.ts) · [`src/application/policies/__tests__/setup_runner_installation_summary_policy.test.ts`](../src/application/policies/__tests__/setup_runner_installation_summary_policy.test.ts) · [`src/application/usecases/setup/__tests__/setup_runner_planning.test.ts`](../src/application/usecases/setup/__tests__/setup_runner_planning.test.ts) · [`src/cli/__tests__/setup_runner_config_file.test.ts`](../src/cli/__tests__/setup_runner_config_file.test.ts) · [`src/infrastructure/__tests__/setup_runner_composition.test.ts`](../src/infrastructure/__tests__/setup_runner_composition.test.ts) · [`src/tooling/__tests__/setup_provisioning_workflow.test.ts`](../src/tooling/__tests__/setup_provisioning_workflow.test.ts) · [`src/infrastructure/__tests__/setup_sdd_prerequisites.test.ts`](../src/infrastructure/__tests__/setup_sdd_prerequisites.test.ts) · [`src/cli/__tests__/setup_documentation_navigation.test.ts`](../src/cli/__tests__/setup_documentation_navigation.test.ts) · [`src/application/policies/__tests__/setup_question_documentation_policy.test.ts`](../src/application/policies/__tests__/setup_question_documentation_policy.test.ts) +- User documentation: [`README.md`](../README.md) · [`docs/how-to-use.mdx`](../docs/how-to-use.mdx) · [`docs/configuration.mdx`](../docs/configuration.mdx) · [`docs/configuration-checklist.mdx`](../docs/configuration-checklist.mdx) · [`docs/authentication.mdx`](../docs/authentication.mdx) · [`docs/development/architecture.mdx`](../docs/development/architecture.mdx) · [`docs/security-operations/operations/provisioning.mdx`](../docs/security-operations/operations/provisioning.mdx) · [`docs/security-operations/operations/troubleshooting.mdx`](../docs/security-operations/operations/troubleshooting.mdx) · [`docs/security-operations/security/credentials.mdx`](../docs/security-operations/security/credentials.mdx) · [`docs/single-actions/workflow-and-cli.mdx`](../docs/single-actions/workflow-and-cli.mdx) · [`docs/security-operations/operations/verification.mdx`](../docs/security-operations/operations/verification.mdx) · [`docs/development/setup-pat-provider-audit-2026-10-06.md`](../docs/development/setup-pat-provider-audit-2026-10-06.md) · [`docs/issues/comment-commands.mdx`](../docs/issues/comment-commands.mdx) · [`docs/issues/branch-synchronization.mdx`](../docs/issues/branch-synchronization.mdx) · [`docs/setup-web.mdx`](../docs/setup-web.mdx) · [`docs/first-workflow.mdx`](../docs/first-workflow.mdx) · [`docs/using-the-docs.mdx`](../docs/using-the-docs.mdx) · [`docs/guides/index.mdx`](../docs/guides/index.mdx) · [`docs/guides/issues-and-branches.mdx`](../docs/guides/issues-and-branches.mdx) · [`docs/guides/review-pull-requests.mdx`](../docs/guides/review-pull-requests.mdx) · [`docs/guides/work-with-the-bot.mdx`](../docs/guides/work-with-the-bot.mdx) · [`docs/guides/releases-and-hotfixes.mdx`](../docs/guides/releases-and-hotfixes.mdx) ### `local-web-setup-assistant` — Local web setup assistant - Owner: Copilot maintainers -- Last verified: 2026-10-14 +- Last verified: 2026-10-20 - Specifications: [`specs/local-web-setup-assistant.md`](./local-web-setup-assistant.md) · [`specs/setup-configuration-management.md`](./setup-configuration-management.md) - Workflows: [`.github/workflows/ci_check.yml`](../.github/workflows/ci_check.yml) · [`.github/workflows/repowise.yml`](../.github/workflows/repowise.yml) · [`.github/workflows/setup_platform_smoke.yml`](../.github/workflows/setup_platform_smoke.yml) · [`.github/workflows/copilot_pull_request_approval.yml`](../.github/workflows/copilot_pull_request_approval.yml) - Entrypoints: [`src/cli/commands/setup.ts`](../src/cli/commands/setup.ts) · [`package.json`](../package.json) · [`web/src/main.ts`](../web/src/main.ts) -- Core code: [`web/src/App.svelte`](../web/src/App.svelte) · [`web/src/session/setupSession.ts`](../web/src/session/setupSession.ts) · [`web/src/components/ActionButton.svelte`](../web/src/components/ActionButton.svelte) · [`web/src/components/PairingPanel.svelte`](../web/src/components/PairingPanel.svelte) · [`web/src/lib/pairingCode.ts`](../web/src/lib/pairingCode.ts) · [`web/src/components/ContextPanel.svelte`](../web/src/components/ContextPanel.svelte) · [`web/src/i18n/permissionEvidence.ts`](../web/src/i18n/permissionEvidence.ts) · [`web/src/i18n/permissionProgress.ts`](../web/src/i18n/permissionProgress.ts) · [`web/src/components/PermissionProgressPanel.svelte`](../web/src/components/PermissionProgressPanel.svelte) · [`web/src/components/PromptCard.svelte`](../web/src/components/PromptCard.svelte) · [`web/src/components/ResultPanel.svelte`](../web/src/components/ResultPanel.svelte) · [`web/src/components/SetupPatCorrectionPanel.svelte`](../web/src/components/SetupPatCorrectionPanel.svelte) · [`web/src/components/ResourceProgress.svelte`](../web/src/components/ResourceProgress.svelte) · [`web/src/components/PlanPrompt.svelte`](../web/src/components/PlanPrompt.svelte) · [`web/src/components/PlanDecisionSummary.svelte`](../web/src/components/PlanDecisionSummary.svelte) · [`web/src/components/QuestionPrompt.svelte`](../web/src/components/QuestionPrompt.svelte) · [`web/src/components/FixedWorkflowNotice.svelte`](../web/src/components/FixedWorkflowNotice.svelte) · [`web/src/components/QuestionGuidance.svelte`](../web/src/components/QuestionGuidance.svelte) · [`web/src/components/DiscoveryNotice.svelte`](../web/src/components/DiscoveryNotice.svelte) · [`web/src/components/ProducerSelector.svelte`](../web/src/components/ProducerSelector.svelte) · [`web/src/lib/manualProducerIdentity.ts`](../web/src/lib/manualProducerIdentity.ts) · [`web/src/components/CoverageCheckEvidence.svelte`](../web/src/components/CoverageCheckEvidence.svelte) · [`web/src/components/ProjectSelector.svelte`](../web/src/components/ProjectSelector.svelte) · [`web/src/i18n/catalog.ts`](../web/src/i18n/catalog.ts) · [`web/src/i18n/projectTransitions.ts`](../web/src/i18n/projectTransitions.ts) · [`web/src/i18n/permissionTerms.ts`](../web/src/i18n/permissionTerms.ts) · [`web/src/components/StatusBanner.svelte`](../web/src/components/StatusBanner.svelte) · [`web/src/lib/questionAnswer.ts`](../web/src/lib/questionAnswer.ts) · [`web/src/lib/githubLink.ts`](../web/src/lib/githubLink.ts) · [`web/src/lib/focusOnRevision.ts`](../web/src/lib/focusOnRevision.ts) · [`web/src/i18n/featureNames.ts`](../web/src/i18n/featureNames.ts) · [`web/src/i18n/agentRoleNames.ts`](../web/src/i18n/agentRoleNames.ts) · [`web/src/i18n/checkEvidence.ts`](../web/src/i18n/checkEvidence.ts) · [`web/src/styles/controls.css`](../web/src/styles/controls.css) · [`web/src/styles/tokens.css`](../web/src/styles/tokens.css) · [`web/src/style.css`](../web/src/style.css) · [`src/application/contracts/web_setup_view.ts`](../src/application/contracts/web_setup_view.ts) · [`src/application/ports/setup_terminal_ports.ts`](../src/application/ports/setup_terminal_ports.ts) · [`src/application/errors/setup_interaction_cancelled_error.ts`](../src/application/errors/setup_interaction_cancelled_error.ts) · [`src/application/policies/merge_setup_overrides_policy.ts`](../src/application/policies/merge_setup_overrides_policy.ts) · [`src/application/policies/setup_remote_facts_policy.ts`](../src/application/policies/setup_remote_facts_policy.ts) · [`src/application/usecases/setup/prepare_setup_pat_intent_use_case.ts`](../src/application/usecases/setup/prepare_setup_pat_intent_use_case.ts) · [`src/application/usecases/setup/audit_configured_setup_pat_use_case.ts`](../src/application/usecases/setup/audit_configured_setup_pat_use_case.ts) · [`src/infrastructure/setup_permission_actions_probe.ts`](../src/infrastructure/setup_permission_actions_probe.ts) · [`src/infrastructure/setup_permission_issue_probe.ts`](../src/infrastructure/setup_permission_issue_probe.ts) · [`src/infrastructure/setup_permission_issue_cleanup.ts`](../src/infrastructure/setup_permission_issue_cleanup.ts) · [`src/infrastructure/setup_permission_probe_journal.ts`](../src/infrastructure/setup_permission_probe_journal.ts) · [`src/infrastructure/setup_permission_probe_transaction.ts`](../src/infrastructure/setup_permission_probe_transaction.ts) · [`src/infrastructure/setup_permission_resource_probes.ts`](../src/infrastructure/setup_permission_resource_probes.ts) · [`src/application/usecases/setup/verify_web_setup_apply_use_case.ts`](../src/application/usecases/setup/verify_web_setup_apply_use_case.ts) · [`src/application/usecases/setup/setup_session_coordinator.ts`](../src/application/usecases/setup/setup_session_coordinator.ts) · [`src/application/usecases/setup/verify_setup_pat_bootstrap_use_case.ts`](../src/application/usecases/setup/verify_setup_pat_bootstrap_use_case.ts) · [`src/cli_context.ts`](../src/cli_context.ts) · [`src/cli/setup_command_options.ts`](../src/cli/setup_command_options.ts) · [`src/cli/commands/setup_execution.ts`](../src/cli/commands/setup_execution.ts) · [`src/cli/setup_credential_collection.ts`](../src/cli/setup_credential_collection.ts) · [`src/cli/setup_pat_intent_adapter.ts`](../src/cli/setup_pat_intent_adapter.ts) · [`src/cli/setup_apply_authorization.ts`](../src/cli/setup_apply_authorization.ts) · [`src/cli/setup_outcome_adapter.ts`](../src/cli/setup_outcome_adapter.ts) · [`src/cli/web_setup_bridge.ts`](../src/cli/web_setup_bridge.ts) · [`src/cli/web_setup_adapters.ts`](../src/cli/web_setup_adapters.ts) · [`src/cli/web_setup_server.ts`](../src/cli/web_setup_server.ts) · [`src/cli/setup_apply_snapshot.ts`](../src/cli/setup_apply_snapshot.ts) · [`src/cli/setup_result_receipt.ts`](../src/cli/setup_result_receipt.ts) · [`src/application/usecases/actions/initial_setup_workflow.ts`](../src/application/usecases/actions/initial_setup_workflow.ts) · [`src/actions/local_action.ts`](../src/actions/local_action.ts) · [`src/cli/setup_session_guard.ts`](../src/cli/setup_session_guard.ts) · [`src/application/usecases/setup/setup_wizard_use_case.ts`](../src/application/usecases/setup/setup_wizard_use_case.ts) · [`src/application/usecases/setup/setup_questionnaire_controller.ts`](../src/application/usecases/setup/setup_questionnaire_controller.ts) · [`src/application/policies/setup_terminal_choice_policy.ts`](../src/application/policies/setup_terminal_choice_policy.ts) · [`src/cli/setup_terminal_driver.ts`](../src/cli/setup_terminal_driver.ts) · [`src/cli/setup_question_renderer.ts`](../src/cli/setup_question_renderer.ts) · [`src/application/usecases/setup/setup_journey_use_case.ts`](../src/application/usecases/setup/setup_journey_use_case.ts) · [`src/application/usecases/setup/setup_credentials_use_case.ts`](../src/application/usecases/setup/setup_credentials_use_case.ts) · [`src/application/policies/setup_questionnaire_policy.ts`](../src/application/policies/setup_questionnaire_policy.ts) · [`src/application/policies/setup_project_selection_policy.ts`](../src/application/policies/setup_project_selection_policy.ts) · [`src/application/ports/setup_project_discovery_port.ts`](../src/application/ports/setup_project_discovery_port.ts) · [`src/application/ports/setup_approval_check_discovery_port.ts`](../src/application/ports/setup_approval_check_discovery_port.ts) · [`src/infrastructure/github_setup_project_discovery_adapter.ts`](../src/infrastructure/github_setup_project_discovery_adapter.ts) · [`src/infrastructure/github_setup_approval_check_discovery_adapter.ts`](../src/infrastructure/github_setup_approval_check_discovery_adapter.ts) · [`src/application/policies/setup_question_documentation_policy.ts`](../src/application/policies/setup_question_documentation_policy.ts) · [`src/application/policies/setup_question_guidance_policy.ts`](../src/application/policies/setup_question_guidance_policy.ts) · [`src/application/policies/setup_question_purpose_policy.ts`](../src/application/policies/setup_question_purpose_policy.ts) · [`src/application/policies/setup_token_permission_policy.ts`](../src/application/policies/setup_token_permission_policy.ts) · [`src/application/policies/setup_configuration_plan.ts`](../src/application/policies/setup_configuration_plan.ts) · [`src/application/policies/setup_pat_creation_url_policy.ts`](../src/application/policies/setup_pat_creation_url_policy.ts) · [`src/infrastructure/composition/setup_credentials_composition_root.ts`](../src/infrastructure/composition/setup_credentials_composition_root.ts) · [`scripts/validate-npm-package.cjs`](../scripts/validate-npm-package.cjs) · [`scripts/smoke-test-npm-package.cjs`](../scripts/smoke-test-npm-package.cjs) · [`scripts/smoke-packaged-web-session.cjs`](../scripts/smoke-packaged-web-session.cjs) · [`scripts/validate-setup-assistant-acceptance.cjs`](../scripts/validate-setup-assistant-acceptance.cjs) · [`scripts/serve-web-setup-review.cjs`](../scripts/serve-web-setup-review.cjs) · [`scripts/validate-workflow-contract.cjs`](../scripts/validate-workflow-contract.cjs) · [`scripts/documentation_checkout_text.cjs`](../scripts/documentation_checkout_text.cjs) · [`scripts/set-cli-executable.cjs`](../scripts/set-cli-executable.cjs) · [`scripts/render-web-setup-component.cjs`](../scripts/render-web-setup-component.cjs) · [`web/src/i18n/permissionPrerequisite.ts`](../web/src/i18n/permissionPrerequisite.ts) · [`scripts/web-setup-review-views.cjs`](../scripts/web-setup-review-views.cjs) · [`src/application/usecases/setup/resolve_setup_workflow_pat_conflict_use_case.ts`](../src/application/usecases/setup/resolve_setup_workflow_pat_conflict_use_case.ts) · [`src/cli/setup_workflow_pat_storage_copy.ts`](../src/cli/setup_workflow_pat_storage_copy.ts) · [`web/src/components/WorkflowPatStorageNotice.svelte`](../web/src/components/WorkflowPatStorageNotice.svelte) · [`src/cli/commands/setup_policy.ts`](../src/cli/commands/setup_policy.ts) · [`src/application/usecases/execution/execution_issue_number_policy.ts`](../src/application/usecases/execution/execution_issue_number_policy.ts) · [`src/application/usecases/execution/setup_execution_workflow.ts`](../src/application/usecases/execution/setup_execution_workflow.ts) · [`src/domain/setup_management.ts`](../src/domain/setup_management.ts) · [`src/application/contracts/setup_management_view.ts`](../src/application/contracts/setup_management_view.ts) · [`src/application/ports/setup_management_ports.ts`](../src/application/ports/setup_management_ports.ts) · [`src/application/policies/setup_quick_settings_policy.ts`](../src/application/policies/setup_quick_settings_policy.ts) · [`src/application/policies/setup_management_policy.ts`](../src/application/policies/setup_management_policy.ts) · [`src/application/policies/setup_management_permissions_policy.ts`](../src/application/policies/setup_management_permissions_policy.ts) · [`src/application/usecases/setup/manage_setup_use_case.ts`](../src/application/usecases/setup/manage_setup_use_case.ts) · [`src/infrastructure/setup_management_workspace_adapter.ts`](../src/infrastructure/setup_management_workspace_adapter.ts) · [`src/cli/setup_management_adapter.ts`](../src/cli/setup_management_adapter.ts) · [`web/src/components/SetupManagementPanel.svelte`](../web/src/components/SetupManagementPanel.svelte) · [`web/src/components/ManagementInventory.svelte`](../web/src/components/ManagementInventory.svelte) · [`web/src/components/QuickSettingPrompt.svelte`](../web/src/components/QuickSettingPrompt.svelte) · [`web/src/i18n/managementCopy.ts`](../web/src/i18n/managementCopy.ts) · [`web/src/styles/management.css`](../web/src/styles/management.css) · [`scripts/coverage-budgets.json`](../scripts/coverage-budgets.json) · [`web/src/session/setupCommandTransport.ts`](../web/src/session/setupCommandTransport.ts) · [`scripts/serve-web-setup-journey.cjs`](../scripts/serve-web-setup-journey.cjs) · [`web/src/components/SetupHeader.svelte`](../web/src/components/SetupHeader.svelte) · [`web/src/components/WaitingPanel.svelte`](../web/src/components/WaitingPanel.svelte) · [`web/src/styles/layout.css`](../web/src/styles/layout.css) · [`web/src/i18n/en.ts`](../web/src/i18n/en.ts) · [`web/src/i18n/es.ts`](../web/src/i18n/es.ts) · [`web/src/i18n/fr.ts`](../web/src/i18n/fr.ts) · [`web/src/i18n/pt.ts`](../web/src/i18n/pt.ts) · [`web/src/i18n/sessionErrors.ts`](../web/src/i18n/sessionErrors.ts) · [`web/src/i18n/errors/en.ts`](../web/src/i18n/errors/en.ts) · [`web/src/i18n/errors/es.ts`](../web/src/i18n/errors/es.ts) · [`web/src/i18n/errors/fr.ts`](../web/src/i18n/errors/fr.ts) · [`web/src/i18n/errors/pt.ts`](../web/src/i18n/errors/pt.ts) · [`web/src/components/SetupSidebar.svelte`](../web/src/components/SetupSidebar.svelte) · [`web/src/components/RepositorySelector.svelte`](../web/src/components/RepositorySelector.svelte) · [`web/src/components/BatchSetupPanel.svelte`](../web/src/components/BatchSetupPanel.svelte) · [`web/src/components/BatchSafetyBanner.svelte`](../web/src/components/BatchSafetyBanner.svelte) · [`web/src/components/InstallationReview.svelte`](../web/src/components/InstallationReview.svelte) · [`web/src/components/RunnerQuestionDetails.svelte`](../web/src/components/RunnerQuestionDetails.svelte) · [`web/src/i18n/runnerCopy.ts`](../web/src/i18n/runnerCopy.ts) · [`scripts/web-setup-runner-review-fixtures.cjs`](../scripts/web-setup-runner-review-fixtures.cjs) -- Tests: [`src/__tests__/cli.test.ts`](../src/__tests__/cli.test.ts) · [`src/__tests__/cli_context_branch.test.ts`](../src/__tests__/cli_context_branch.test.ts) · [`src/__tests__/cli_context_root.test.ts`](../src/__tests__/cli_context_root.test.ts) · [`src/cli/__tests__/web_setup_bridge.test.ts`](../src/cli/__tests__/web_setup_bridge.test.ts) · [`src/cli/__tests__/web_setup_adapters.test.ts`](../src/cli/__tests__/web_setup_adapters.test.ts) · [`src/cli/__tests__/web_setup_palette.test.ts`](../src/cli/__tests__/web_setup_palette.test.ts) · [`src/cli/__tests__/web_setup_ui_helpers.test.ts`](../src/cli/__tests__/web_setup_ui_helpers.test.ts) · [`src/cli/__tests__/web_setup_browser_session.test.ts`](../src/cli/__tests__/web_setup_browser_session.test.ts) · [`src/cli/__tests__/web_setup_server.test.ts`](../src/cli/__tests__/web_setup_server.test.ts) · [`src/cli/__tests__/web_setup_browser_open.test.ts`](../src/cli/__tests__/web_setup_browser_open.test.ts) · [`src/cli/__tests__/setup_apply_snapshot.test.ts`](../src/cli/__tests__/setup_apply_snapshot.test.ts) · [`src/cli/__tests__/setup_result_receipt.test.ts`](../src/cli/__tests__/setup_result_receipt.test.ts) · [`src/cli/__tests__/setup_session_guard.test.ts`](../src/cli/__tests__/setup_session_guard.test.ts) · [`src/cli/__tests__/setup_command_options.test.ts`](../src/cli/__tests__/setup_command_options.test.ts) · [`src/cli/__tests__/web_setup_components.test.ts`](../src/cli/__tests__/web_setup_components.test.ts) · [`src/cli/__tests__/setup_terminal_driver.test.ts`](../src/cli/__tests__/setup_terminal_driver.test.ts) · [`src/cli/__tests__/setup_terminal_driver_stream_integration.test.ts`](../src/cli/__tests__/setup_terminal_driver_stream_integration.test.ts) · [`src/cli/__tests__/setup_presenters.test.ts`](../src/cli/__tests__/setup_presenters.test.ts) · [`src/cli/__tests__/web_setup_catalog.test.ts`](../src/cli/__tests__/web_setup_catalog.test.ts) · [`src/architecture/__tests__/web_setup_boundaries.test.ts`](../src/architecture/__tests__/web_setup_boundaries.test.ts) · [`src/application/usecases/setup/__tests__/prepare_setup_pat_intent_use_case.test.ts`](../src/application/usecases/setup/__tests__/prepare_setup_pat_intent_use_case.test.ts) · [`src/application/usecases/setup/__tests__/audit_configured_setup_pat_use_case.test.ts`](../src/application/usecases/setup/__tests__/audit_configured_setup_pat_use_case.test.ts) · [`src/infrastructure/__tests__/setup_permission_resource_probes.test.ts`](../src/infrastructure/__tests__/setup_permission_resource_probes.test.ts) · [`src/application/usecases/setup/__tests__/verify_web_setup_apply_use_case.test.ts`](../src/application/usecases/setup/__tests__/verify_web_setup_apply_use_case.test.ts) · [`src/application/usecases/setup/__tests__/setup_session_coordinator.test.ts`](../src/application/usecases/setup/__tests__/setup_session_coordinator.test.ts) · [`src/application/usecases/actions/__tests__/initial_setup_use_case.test.ts`](../src/application/usecases/actions/__tests__/initial_setup_use_case.test.ts) · [`src/actions/__tests__/local_action.test.ts`](../src/actions/__tests__/local_action.test.ts) · [`src/tooling/__tests__/validate_workflow_contract.test.ts`](../src/tooling/__tests__/validate_workflow_contract.test.ts) · [`src/domain/__tests__/setup_approval_workflow.test.ts`](../src/domain/__tests__/setup_approval_workflow.test.ts) · [`src/tooling/__tests__/documentation_checkout_text.test.ts`](../src/tooling/__tests__/documentation_checkout_text.test.ts) · [`src/application/policies/__tests__/setup_remote_facts_policy.test.ts`](../src/application/policies/__tests__/setup_remote_facts_policy.test.ts) · [`src/application/usecases/setup/__tests__/verify_setup_pat_bootstrap_use_case.test.ts`](../src/application/usecases/setup/__tests__/verify_setup_pat_bootstrap_use_case.test.ts) · [`src/application/usecases/setup/__tests__/setup_wizard_use_case.test.ts`](../src/application/usecases/setup/__tests__/setup_wizard_use_case.test.ts) · [`src/application/usecases/setup/__tests__/setup_questionnaire_controller.test.ts`](../src/application/usecases/setup/__tests__/setup_questionnaire_controller.test.ts) · [`src/application/usecases/setup/__tests__/setup_journey_use_case.test.ts`](../src/application/usecases/setup/__tests__/setup_journey_use_case.test.ts) · [`src/application/usecases/setup/__tests__/setup_credentials_use_case.test.ts`](../src/application/usecases/setup/__tests__/setup_credentials_use_case.test.ts) · [`src/application/policies/__tests__/setup_questionnaire_policy.test.ts`](../src/application/policies/__tests__/setup_questionnaire_policy.test.ts) · [`src/application/policies/__tests__/setup_project_selection_policy.test.ts`](../src/application/policies/__tests__/setup_project_selection_policy.test.ts) · [`src/infrastructure/__tests__/github_setup_project_discovery_adapter.test.ts`](../src/infrastructure/__tests__/github_setup_project_discovery_adapter.test.ts) · [`src/infrastructure/__tests__/github_setup_approval_check_discovery_adapter.test.ts`](../src/infrastructure/__tests__/github_setup_approval_check_discovery_adapter.test.ts) · [`src/infrastructure/__tests__/setup_check_discovery_sdk_contract.integration.test.ts`](../src/infrastructure/__tests__/setup_check_discovery_sdk_contract.integration.test.ts) · [`src/application/policies/__tests__/setup_question_documentation_policy.test.ts`](../src/application/policies/__tests__/setup_question_documentation_policy.test.ts) · [`src/application/policies/__tests__/setup_question_purpose_policy.test.ts`](../src/application/policies/__tests__/setup_question_purpose_policy.test.ts) · [`src/application/policies/__tests__/setup_token_permission_policy.test.ts`](../src/application/policies/__tests__/setup_token_permission_policy.test.ts) · [`src/architecture/__tests__/setup_doctor_boundaries.test.ts`](../src/architecture/__tests__/setup_doctor_boundaries.test.ts) · [`src/infrastructure/__tests__/setup_pat_audit.test.ts`](../src/infrastructure/__tests__/setup_pat_audit.test.ts) · [`src/infrastructure/__tests__/setup_permission_projects_access.test.ts`](../src/infrastructure/__tests__/setup_permission_projects_access.test.ts) · [`src/application/usecases/setup/__tests__/setup_workflow_pat_recovery.test.ts`](../src/application/usecases/setup/__tests__/setup_workflow_pat_recovery.test.ts) · [`src/cli/__tests__/web_setup_bot_pat_recovery.test.ts`](../src/cli/__tests__/web_setup_bot_pat_recovery.test.ts) · [`src/application/usecases/setup/__tests__/setup_workflow_pat_conflict.test.ts`](../src/application/usecases/setup/__tests__/setup_workflow_pat_conflict.test.ts) · [`src/application/usecases/setup/__tests__/setup_workflow_pat_credential_rotation.test.ts`](../src/application/usecases/setup/__tests__/setup_workflow_pat_credential_rotation.test.ts) · [`src/data/repository/__tests__/setup_organization_pat_inventory.test.ts`](../src/data/repository/__tests__/setup_organization_pat_inventory.test.ts) · [`src/cli/__tests__/web_setup_bot_pat_scope_conflict.test.ts`](../src/cli/__tests__/web_setup_bot_pat_scope_conflict.test.ts) · [`src/actions/__tests__/local_setup_apply_contract.test.ts`](../src/actions/__tests__/local_setup_apply_contract.test.ts) · [`src/cli/commands/__tests__/setup_policy.test.ts`](../src/cli/commands/__tests__/setup_policy.test.ts) · [`src/application/usecases/execution/__tests__/execution_issue_number_policy.test.ts`](../src/application/usecases/execution/__tests__/execution_issue_number_policy.test.ts) · [`src/application/usecases/execution/__tests__/setup_execution_workflow.test.ts`](../src/application/usecases/execution/__tests__/setup_execution_workflow.test.ts) · [`src/application/policies/__tests__/setup_management_policy.test.ts`](../src/application/policies/__tests__/setup_management_policy.test.ts) · [`src/application/usecases/setup/__tests__/manage_setup_use_case.test.ts`](../src/application/usecases/setup/__tests__/manage_setup_use_case.test.ts) · [`src/infrastructure/__tests__/setup_management_workspace_adapter.test.ts`](../src/infrastructure/__tests__/setup_management_workspace_adapter.test.ts) · [`src/cli/__tests__/setup_management_adapter.test.ts`](../src/cli/__tests__/setup_management_adapter.test.ts) · [`src/cli/__tests__/web_setup_management_components.test.ts`](../src/cli/__tests__/web_setup_management_components.test.ts) · [`src/cli/__tests__/web_setup_runner_components.test.ts`](../src/cli/__tests__/web_setup_runner_components.test.ts) -- User documentation: [`README.md`](../README.md) · [`docs/how-to-use.mdx`](../docs/how-to-use.mdx) · [`docs/authentication.mdx`](../docs/authentication.mdx) · [`docs/issues/assignees-and-projects.mdx`](../docs/issues/assignees-and-projects.mdx) · [`docs/pull-requests/guarded-approval.mdx`](../docs/pull-requests/guarded-approval.mdx) · [`docs/configuration.mdx`](../docs/configuration.mdx) · [`docs/configuration-checklist.mdx`](../docs/configuration-checklist.mdx) · [`docs/development/architecture.mdx`](../docs/development/architecture.mdx) · [`docs/development/setup-assistant-review.mdx`](../docs/development/setup-assistant-review.mdx) · [`docs/development/testing.mdx`](../docs/development/testing.mdx) · [`docs/dependency-rules.md`](../docs/dependency-rules.md) · [`docs/security-operations/security/self-hosted-runners.mdx`](../docs/security-operations/security/self-hosted-runners.mdx) · [`docs/security-operations/operations/troubleshooting.mdx`](../docs/security-operations/operations/troubleshooting.mdx) · [`docs/security-operations/operations/provisioning.mdx`](../docs/security-operations/operations/provisioning.mdx) +- Core code: [`web/src/App.svelte`](../web/src/App.svelte) · [`web/src/session/setupSession.ts`](../web/src/session/setupSession.ts) · [`web/src/components/ActionButton.svelte`](../web/src/components/ActionButton.svelte) · [`web/src/components/PairingPanel.svelte`](../web/src/components/PairingPanel.svelte) · [`web/src/lib/pairingCode.ts`](../web/src/lib/pairingCode.ts) · [`web/src/components/ContextPanel.svelte`](../web/src/components/ContextPanel.svelte) · [`web/src/i18n/permissionEvidence.ts`](../web/src/i18n/permissionEvidence.ts) · [`web/src/i18n/permissionProgress.ts`](../web/src/i18n/permissionProgress.ts) · [`web/src/components/PermissionProgressPanel.svelte`](../web/src/components/PermissionProgressPanel.svelte) · [`web/src/components/PromptCard.svelte`](../web/src/components/PromptCard.svelte) · [`web/src/components/ResultPanel.svelte`](../web/src/components/ResultPanel.svelte) · [`web/src/components/SetupPatCorrectionPanel.svelte`](../web/src/components/SetupPatCorrectionPanel.svelte) · [`web/src/components/ResourceProgress.svelte`](../web/src/components/ResourceProgress.svelte) · [`web/src/components/PlanPrompt.svelte`](../web/src/components/PlanPrompt.svelte) · [`web/src/components/PlanDecisionSummary.svelte`](../web/src/components/PlanDecisionSummary.svelte) · [`web/src/components/QuestionPrompt.svelte`](../web/src/components/QuestionPrompt.svelte) · [`web/src/components/FixedWorkflowNotice.svelte`](../web/src/components/FixedWorkflowNotice.svelte) · [`web/src/components/QuestionGuidance.svelte`](../web/src/components/QuestionGuidance.svelte) · [`web/src/components/DiscoveryNotice.svelte`](../web/src/components/DiscoveryNotice.svelte) · [`web/src/components/ProducerSelector.svelte`](../web/src/components/ProducerSelector.svelte) · [`web/src/lib/manualProducerIdentity.ts`](../web/src/lib/manualProducerIdentity.ts) · [`web/src/components/CoverageCheckEvidence.svelte`](../web/src/components/CoverageCheckEvidence.svelte) · [`web/src/components/ProjectSelector.svelte`](../web/src/components/ProjectSelector.svelte) · [`web/src/i18n/catalog.ts`](../web/src/i18n/catalog.ts) · [`web/src/i18n/projectTransitions.ts`](../web/src/i18n/projectTransitions.ts) · [`web/src/i18n/permissionTerms.ts`](../web/src/i18n/permissionTerms.ts) · [`web/src/components/StatusBanner.svelte`](../web/src/components/StatusBanner.svelte) · [`web/src/lib/questionAnswer.ts`](../web/src/lib/questionAnswer.ts) · [`web/src/lib/githubLink.ts`](../web/src/lib/githubLink.ts) · [`web/src/lib/focusOnRevision.ts`](../web/src/lib/focusOnRevision.ts) · [`web/src/i18n/featureNames.ts`](../web/src/i18n/featureNames.ts) · [`web/src/i18n/agentRoleNames.ts`](../web/src/i18n/agentRoleNames.ts) · [`web/src/i18n/checkEvidence.ts`](../web/src/i18n/checkEvidence.ts) · [`web/src/styles/controls.css`](../web/src/styles/controls.css) · [`web/src/styles/tokens.css`](../web/src/styles/tokens.css) · [`web/src/style.css`](../web/src/style.css) · [`src/application/contracts/web_setup_view.ts`](../src/application/contracts/web_setup_view.ts) · [`src/application/ports/setup_terminal_ports.ts`](../src/application/ports/setup_terminal_ports.ts) · [`src/application/errors/setup_interaction_cancelled_error.ts`](../src/application/errors/setup_interaction_cancelled_error.ts) · [`src/application/policies/merge_setup_overrides_policy.ts`](../src/application/policies/merge_setup_overrides_policy.ts) · [`src/application/policies/setup_remote_facts_policy.ts`](../src/application/policies/setup_remote_facts_policy.ts) · [`src/application/usecases/setup/prepare_setup_pat_intent_use_case.ts`](../src/application/usecases/setup/prepare_setup_pat_intent_use_case.ts) · [`src/application/usecases/setup/audit_configured_setup_pat_use_case.ts`](../src/application/usecases/setup/audit_configured_setup_pat_use_case.ts) · [`src/infrastructure/setup_permission_actions_probe.ts`](../src/infrastructure/setup_permission_actions_probe.ts) · [`src/infrastructure/setup_permission_issue_probe.ts`](../src/infrastructure/setup_permission_issue_probe.ts) · [`src/infrastructure/setup_permission_issue_cleanup.ts`](../src/infrastructure/setup_permission_issue_cleanup.ts) · [`src/infrastructure/setup_permission_probe_journal.ts`](../src/infrastructure/setup_permission_probe_journal.ts) · [`src/infrastructure/setup_permission_probe_transaction.ts`](../src/infrastructure/setup_permission_probe_transaction.ts) · [`src/infrastructure/setup_permission_resource_probes.ts`](../src/infrastructure/setup_permission_resource_probes.ts) · [`src/application/usecases/setup/verify_web_setup_apply_use_case.ts`](../src/application/usecases/setup/verify_web_setup_apply_use_case.ts) · [`src/application/usecases/setup/setup_session_coordinator.ts`](../src/application/usecases/setup/setup_session_coordinator.ts) · [`src/application/usecases/setup/verify_setup_pat_bootstrap_use_case.ts`](../src/application/usecases/setup/verify_setup_pat_bootstrap_use_case.ts) · [`src/cli_context.ts`](../src/cli_context.ts) · [`src/cli/setup_command_options.ts`](../src/cli/setup_command_options.ts) · [`src/cli/commands/setup_execution.ts`](../src/cli/commands/setup_execution.ts) · [`src/cli/setup_credential_collection.ts`](../src/cli/setup_credential_collection.ts) · [`src/cli/setup_pat_intent_adapter.ts`](../src/cli/setup_pat_intent_adapter.ts) · [`src/cli/setup_apply_authorization.ts`](../src/cli/setup_apply_authorization.ts) · [`src/cli/setup_outcome_adapter.ts`](../src/cli/setup_outcome_adapter.ts) · [`src/cli/web_setup_bridge.ts`](../src/cli/web_setup_bridge.ts) · [`src/cli/web_setup_adapters.ts`](../src/cli/web_setup_adapters.ts) · [`src/cli/web_setup_server.ts`](../src/cli/web_setup_server.ts) · [`src/cli/setup_apply_snapshot.ts`](../src/cli/setup_apply_snapshot.ts) · [`src/cli/setup_result_receipt.ts`](../src/cli/setup_result_receipt.ts) · [`src/application/usecases/actions/initial_setup_workflow.ts`](../src/application/usecases/actions/initial_setup_workflow.ts) · [`src/actions/local_action.ts`](../src/actions/local_action.ts) · [`src/cli/setup_session_guard.ts`](../src/cli/setup_session_guard.ts) · [`src/application/usecases/setup/setup_wizard_use_case.ts`](../src/application/usecases/setup/setup_wizard_use_case.ts) · [`src/application/usecases/setup/setup_questionnaire_controller.ts`](../src/application/usecases/setup/setup_questionnaire_controller.ts) · [`src/application/policies/setup_terminal_choice_policy.ts`](../src/application/policies/setup_terminal_choice_policy.ts) · [`src/cli/setup_terminal_driver.ts`](../src/cli/setup_terminal_driver.ts) · [`src/cli/setup_question_renderer.ts`](../src/cli/setup_question_renderer.ts) · [`src/application/usecases/setup/setup_journey_use_case.ts`](../src/application/usecases/setup/setup_journey_use_case.ts) · [`src/application/usecases/setup/setup_credentials_use_case.ts`](../src/application/usecases/setup/setup_credentials_use_case.ts) · [`src/application/policies/setup_questionnaire_policy.ts`](../src/application/policies/setup_questionnaire_policy.ts) · [`src/application/policies/setup_project_selection_policy.ts`](../src/application/policies/setup_project_selection_policy.ts) · [`src/application/ports/setup_project_discovery_port.ts`](../src/application/ports/setup_project_discovery_port.ts) · [`src/application/ports/setup_approval_check_discovery_port.ts`](../src/application/ports/setup_approval_check_discovery_port.ts) · [`src/infrastructure/github_setup_project_discovery_adapter.ts`](../src/infrastructure/github_setup_project_discovery_adapter.ts) · [`src/infrastructure/github_setup_approval_check_discovery_adapter.ts`](../src/infrastructure/github_setup_approval_check_discovery_adapter.ts) · [`src/application/policies/setup_question_documentation_policy.ts`](../src/application/policies/setup_question_documentation_policy.ts) · [`src/application/policies/setup_question_guidance_policy.ts`](../src/application/policies/setup_question_guidance_policy.ts) · [`src/application/policies/setup_question_purpose_policy.ts`](../src/application/policies/setup_question_purpose_policy.ts) · [`src/application/policies/setup_token_permission_policy.ts`](../src/application/policies/setup_token_permission_policy.ts) · [`src/application/policies/setup_configuration_plan.ts`](../src/application/policies/setup_configuration_plan.ts) · [`src/application/policies/setup_pat_creation_url_policy.ts`](../src/application/policies/setup_pat_creation_url_policy.ts) · [`src/infrastructure/composition/setup_credentials_composition_root.ts`](../src/infrastructure/composition/setup_credentials_composition_root.ts) · [`scripts/validate-npm-package.cjs`](../scripts/validate-npm-package.cjs) · [`scripts/smoke-test-npm-package.cjs`](../scripts/smoke-test-npm-package.cjs) · [`scripts/smoke-packaged-web-session.cjs`](../scripts/smoke-packaged-web-session.cjs) · [`scripts/validate-setup-assistant-acceptance.cjs`](../scripts/validate-setup-assistant-acceptance.cjs) · [`scripts/serve-web-setup-review.cjs`](../scripts/serve-web-setup-review.cjs) · [`scripts/validate-workflow-contract.cjs`](../scripts/validate-workflow-contract.cjs) · [`scripts/documentation_checkout_text.cjs`](../scripts/documentation_checkout_text.cjs) · [`scripts/set-cli-executable.cjs`](../scripts/set-cli-executable.cjs) · [`scripts/render-web-setup-component.cjs`](../scripts/render-web-setup-component.cjs) · [`web/src/i18n/permissionPrerequisite.ts`](../web/src/i18n/permissionPrerequisite.ts) · [`scripts/web-setup-review-views.cjs`](../scripts/web-setup-review-views.cjs) · [`src/application/usecases/setup/resolve_setup_workflow_pat_conflict_use_case.ts`](../src/application/usecases/setup/resolve_setup_workflow_pat_conflict_use_case.ts) · [`src/cli/setup_workflow_pat_storage_copy.ts`](../src/cli/setup_workflow_pat_storage_copy.ts) · [`web/src/components/WorkflowPatStorageNotice.svelte`](../web/src/components/WorkflowPatStorageNotice.svelte) · [`src/cli/commands/setup_policy.ts`](../src/cli/commands/setup_policy.ts) · [`src/application/usecases/execution/execution_issue_number_policy.ts`](../src/application/usecases/execution/execution_issue_number_policy.ts) · [`src/application/usecases/execution/setup_execution_workflow.ts`](../src/application/usecases/execution/setup_execution_workflow.ts) · [`src/domain/setup_management.ts`](../src/domain/setup_management.ts) · [`src/application/contracts/setup_management_view.ts`](../src/application/contracts/setup_management_view.ts) · [`src/application/ports/setup_management_ports.ts`](../src/application/ports/setup_management_ports.ts) · [`src/application/policies/setup_quick_settings_policy.ts`](../src/application/policies/setup_quick_settings_policy.ts) · [`src/application/policies/setup_management_policy.ts`](../src/application/policies/setup_management_policy.ts) · [`src/application/policies/setup_management_permissions_policy.ts`](../src/application/policies/setup_management_permissions_policy.ts) · [`src/application/usecases/setup/manage_setup_use_case.ts`](../src/application/usecases/setup/manage_setup_use_case.ts) · [`src/infrastructure/setup_management_workspace_adapter.ts`](../src/infrastructure/setup_management_workspace_adapter.ts) · [`src/cli/setup_management_adapter.ts`](../src/cli/setup_management_adapter.ts) · [`web/src/components/SetupManagementPanel.svelte`](../web/src/components/SetupManagementPanel.svelte) · [`web/src/components/ManagementInventory.svelte`](../web/src/components/ManagementInventory.svelte) · [`web/src/components/QuickSettingPrompt.svelte`](../web/src/components/QuickSettingPrompt.svelte) · [`web/src/i18n/managementCopy.ts`](../web/src/i18n/managementCopy.ts) · [`web/src/styles/management.css`](../web/src/styles/management.css) · [`scripts/coverage-budgets.json`](../scripts/coverage-budgets.json) · [`web/src/session/setupCommandTransport.ts`](../web/src/session/setupCommandTransport.ts) · [`scripts/serve-web-setup-journey.cjs`](../scripts/serve-web-setup-journey.cjs) · [`web/src/components/SetupHeader.svelte`](../web/src/components/SetupHeader.svelte) · [`web/src/components/WaitingPanel.svelte`](../web/src/components/WaitingPanel.svelte) · [`web/src/styles/layout.css`](../web/src/styles/layout.css) · [`web/src/i18n/en.ts`](../web/src/i18n/en.ts) · [`web/src/i18n/es.ts`](../web/src/i18n/es.ts) · [`web/src/i18n/fr.ts`](../web/src/i18n/fr.ts) · [`web/src/i18n/pt.ts`](../web/src/i18n/pt.ts) · [`web/src/i18n/sessionErrors.ts`](../web/src/i18n/sessionErrors.ts) · [`web/src/i18n/errors/en.ts`](../web/src/i18n/errors/en.ts) · [`web/src/i18n/errors/es.ts`](../web/src/i18n/errors/es.ts) · [`web/src/i18n/errors/fr.ts`](../web/src/i18n/errors/fr.ts) · [`web/src/i18n/errors/pt.ts`](../web/src/i18n/errors/pt.ts) · [`web/src/components/SetupSidebar.svelte`](../web/src/components/SetupSidebar.svelte) · [`web/src/components/RepositorySelector.svelte`](../web/src/components/RepositorySelector.svelte) · [`web/src/components/BatchSetupPanel.svelte`](../web/src/components/BatchSetupPanel.svelte) · [`web/src/components/BatchSafetyBanner.svelte`](../web/src/components/BatchSafetyBanner.svelte) · [`web/src/components/InstallationReview.svelte`](../web/src/components/InstallationReview.svelte) · [`web/src/components/RunnerQuestionDetails.svelte`](../web/src/components/RunnerQuestionDetails.svelte) · [`web/src/i18n/runnerCopy.ts`](../web/src/i18n/runnerCopy.ts) · [`scripts/web-setup-runner-review-fixtures.cjs`](../scripts/web-setup-runner-review-fixtures.cjs) · [`src/application/contracts/setup_documentation.ts`](../src/application/contracts/setup_documentation.ts) · [`src/cli/setup_journey_presenter.ts`](../src/cli/setup_journey_presenter.ts) · [`web/src/components/SetupHelp.svelte`](../web/src/components/SetupHelp.svelte) · [`web/src/components/CompletedSetupHelp.svelte`](../web/src/components/CompletedSetupHelp.svelte) +- Tests: [`src/__tests__/cli.test.ts`](../src/__tests__/cli.test.ts) · [`src/__tests__/cli_context_branch.test.ts`](../src/__tests__/cli_context_branch.test.ts) · [`src/__tests__/cli_context_root.test.ts`](../src/__tests__/cli_context_root.test.ts) · [`src/cli/__tests__/web_setup_bridge.test.ts`](../src/cli/__tests__/web_setup_bridge.test.ts) · [`src/cli/__tests__/web_setup_adapters.test.ts`](../src/cli/__tests__/web_setup_adapters.test.ts) · [`src/cli/__tests__/web_setup_palette.test.ts`](../src/cli/__tests__/web_setup_palette.test.ts) · [`src/cli/__tests__/web_setup_ui_helpers.test.ts`](../src/cli/__tests__/web_setup_ui_helpers.test.ts) · [`src/cli/__tests__/web_setup_browser_session.test.ts`](../src/cli/__tests__/web_setup_browser_session.test.ts) · [`src/cli/__tests__/web_setup_server.test.ts`](../src/cli/__tests__/web_setup_server.test.ts) · [`src/cli/__tests__/web_setup_browser_open.test.ts`](../src/cli/__tests__/web_setup_browser_open.test.ts) · [`src/cli/__tests__/setup_apply_snapshot.test.ts`](../src/cli/__tests__/setup_apply_snapshot.test.ts) · [`src/cli/__tests__/setup_result_receipt.test.ts`](../src/cli/__tests__/setup_result_receipt.test.ts) · [`src/cli/__tests__/setup_session_guard.test.ts`](../src/cli/__tests__/setup_session_guard.test.ts) · [`src/cli/__tests__/setup_command_options.test.ts`](../src/cli/__tests__/setup_command_options.test.ts) · [`src/cli/__tests__/web_setup_components.test.ts`](../src/cli/__tests__/web_setup_components.test.ts) · [`src/cli/__tests__/setup_terminal_driver.test.ts`](../src/cli/__tests__/setup_terminal_driver.test.ts) · [`src/cli/__tests__/setup_terminal_driver_stream_integration.test.ts`](../src/cli/__tests__/setup_terminal_driver_stream_integration.test.ts) · [`src/cli/__tests__/setup_presenters.test.ts`](../src/cli/__tests__/setup_presenters.test.ts) · [`src/cli/__tests__/web_setup_catalog.test.ts`](../src/cli/__tests__/web_setup_catalog.test.ts) · [`src/architecture/__tests__/web_setup_boundaries.test.ts`](../src/architecture/__tests__/web_setup_boundaries.test.ts) · [`src/application/usecases/setup/__tests__/prepare_setup_pat_intent_use_case.test.ts`](../src/application/usecases/setup/__tests__/prepare_setup_pat_intent_use_case.test.ts) · [`src/application/usecases/setup/__tests__/audit_configured_setup_pat_use_case.test.ts`](../src/application/usecases/setup/__tests__/audit_configured_setup_pat_use_case.test.ts) · [`src/infrastructure/__tests__/setup_permission_resource_probes.test.ts`](../src/infrastructure/__tests__/setup_permission_resource_probes.test.ts) · [`src/application/usecases/setup/__tests__/verify_web_setup_apply_use_case.test.ts`](../src/application/usecases/setup/__tests__/verify_web_setup_apply_use_case.test.ts) · [`src/application/usecases/setup/__tests__/setup_session_coordinator.test.ts`](../src/application/usecases/setup/__tests__/setup_session_coordinator.test.ts) · [`src/application/usecases/actions/__tests__/initial_setup_use_case.test.ts`](../src/application/usecases/actions/__tests__/initial_setup_use_case.test.ts) · [`src/actions/__tests__/local_action.test.ts`](../src/actions/__tests__/local_action.test.ts) · [`src/tooling/__tests__/validate_workflow_contract.test.ts`](../src/tooling/__tests__/validate_workflow_contract.test.ts) · [`src/domain/__tests__/setup_approval_workflow.test.ts`](../src/domain/__tests__/setup_approval_workflow.test.ts) · [`src/tooling/__tests__/documentation_checkout_text.test.ts`](../src/tooling/__tests__/documentation_checkout_text.test.ts) · [`src/application/policies/__tests__/setup_remote_facts_policy.test.ts`](../src/application/policies/__tests__/setup_remote_facts_policy.test.ts) · [`src/application/usecases/setup/__tests__/verify_setup_pat_bootstrap_use_case.test.ts`](../src/application/usecases/setup/__tests__/verify_setup_pat_bootstrap_use_case.test.ts) · [`src/application/usecases/setup/__tests__/setup_wizard_use_case.test.ts`](../src/application/usecases/setup/__tests__/setup_wizard_use_case.test.ts) · [`src/application/usecases/setup/__tests__/setup_questionnaire_controller.test.ts`](../src/application/usecases/setup/__tests__/setup_questionnaire_controller.test.ts) · [`src/application/usecases/setup/__tests__/setup_journey_use_case.test.ts`](../src/application/usecases/setup/__tests__/setup_journey_use_case.test.ts) · [`src/application/usecases/setup/__tests__/setup_credentials_use_case.test.ts`](../src/application/usecases/setup/__tests__/setup_credentials_use_case.test.ts) · [`src/application/policies/__tests__/setup_questionnaire_policy.test.ts`](../src/application/policies/__tests__/setup_questionnaire_policy.test.ts) · [`src/application/policies/__tests__/setup_project_selection_policy.test.ts`](../src/application/policies/__tests__/setup_project_selection_policy.test.ts) · [`src/infrastructure/__tests__/github_setup_project_discovery_adapter.test.ts`](../src/infrastructure/__tests__/github_setup_project_discovery_adapter.test.ts) · [`src/infrastructure/__tests__/github_setup_approval_check_discovery_adapter.test.ts`](../src/infrastructure/__tests__/github_setup_approval_check_discovery_adapter.test.ts) · [`src/infrastructure/__tests__/setup_check_discovery_sdk_contract.integration.test.ts`](../src/infrastructure/__tests__/setup_check_discovery_sdk_contract.integration.test.ts) · [`src/application/policies/__tests__/setup_question_documentation_policy.test.ts`](../src/application/policies/__tests__/setup_question_documentation_policy.test.ts) · [`src/application/policies/__tests__/setup_question_purpose_policy.test.ts`](../src/application/policies/__tests__/setup_question_purpose_policy.test.ts) · [`src/application/policies/__tests__/setup_token_permission_policy.test.ts`](../src/application/policies/__tests__/setup_token_permission_policy.test.ts) · [`src/architecture/__tests__/setup_doctor_boundaries.test.ts`](../src/architecture/__tests__/setup_doctor_boundaries.test.ts) · [`src/infrastructure/__tests__/setup_pat_audit.test.ts`](../src/infrastructure/__tests__/setup_pat_audit.test.ts) · [`src/infrastructure/__tests__/setup_permission_projects_access.test.ts`](../src/infrastructure/__tests__/setup_permission_projects_access.test.ts) · [`src/application/usecases/setup/__tests__/setup_workflow_pat_recovery.test.ts`](../src/application/usecases/setup/__tests__/setup_workflow_pat_recovery.test.ts) · [`src/cli/__tests__/web_setup_bot_pat_recovery.test.ts`](../src/cli/__tests__/web_setup_bot_pat_recovery.test.ts) · [`src/application/usecases/setup/__tests__/setup_workflow_pat_conflict.test.ts`](../src/application/usecases/setup/__tests__/setup_workflow_pat_conflict.test.ts) · [`src/application/usecases/setup/__tests__/setup_workflow_pat_credential_rotation.test.ts`](../src/application/usecases/setup/__tests__/setup_workflow_pat_credential_rotation.test.ts) · [`src/data/repository/__tests__/setup_organization_pat_inventory.test.ts`](../src/data/repository/__tests__/setup_organization_pat_inventory.test.ts) · [`src/cli/__tests__/web_setup_bot_pat_scope_conflict.test.ts`](../src/cli/__tests__/web_setup_bot_pat_scope_conflict.test.ts) · [`src/actions/__tests__/local_setup_apply_contract.test.ts`](../src/actions/__tests__/local_setup_apply_contract.test.ts) · [`src/cli/commands/__tests__/setup_policy.test.ts`](../src/cli/commands/__tests__/setup_policy.test.ts) · [`src/application/usecases/execution/__tests__/execution_issue_number_policy.test.ts`](../src/application/usecases/execution/__tests__/execution_issue_number_policy.test.ts) · [`src/application/usecases/execution/__tests__/setup_execution_workflow.test.ts`](../src/application/usecases/execution/__tests__/setup_execution_workflow.test.ts) · [`src/application/policies/__tests__/setup_management_policy.test.ts`](../src/application/policies/__tests__/setup_management_policy.test.ts) · [`src/application/usecases/setup/__tests__/manage_setup_use_case.test.ts`](../src/application/usecases/setup/__tests__/manage_setup_use_case.test.ts) · [`src/infrastructure/__tests__/setup_management_workspace_adapter.test.ts`](../src/infrastructure/__tests__/setup_management_workspace_adapter.test.ts) · [`src/cli/__tests__/setup_management_adapter.test.ts`](../src/cli/__tests__/setup_management_adapter.test.ts) · [`src/cli/__tests__/web_setup_management_components.test.ts`](../src/cli/__tests__/web_setup_management_components.test.ts) · [`src/cli/__tests__/web_setup_runner_components.test.ts`](../src/cli/__tests__/web_setup_runner_components.test.ts) · [`src/cli/__tests__/setup_documentation_navigation.test.ts`](../src/cli/__tests__/setup_documentation_navigation.test.ts) +- User documentation: [`README.md`](../README.md) · [`docs/how-to-use.mdx`](../docs/how-to-use.mdx) · [`docs/authentication.mdx`](../docs/authentication.mdx) · [`docs/issues/assignees-and-projects.mdx`](../docs/issues/assignees-and-projects.mdx) · [`docs/pull-requests/guarded-approval.mdx`](../docs/pull-requests/guarded-approval.mdx) · [`docs/configuration.mdx`](../docs/configuration.mdx) · [`docs/configuration-checklist.mdx`](../docs/configuration-checklist.mdx) · [`docs/development/architecture.mdx`](../docs/development/architecture.mdx) · [`docs/development/setup-assistant-review.mdx`](../docs/development/setup-assistant-review.mdx) · [`docs/development/testing.mdx`](../docs/development/testing.mdx) · [`docs/dependency-rules.md`](../docs/dependency-rules.md) · [`docs/security-operations/security/self-hosted-runners.mdx`](../docs/security-operations/security/self-hosted-runners.mdx) · [`docs/security-operations/operations/troubleshooting.mdx`](../docs/security-operations/operations/troubleshooting.mdx) · [`docs/security-operations/operations/provisioning.mdx`](../docs/security-operations/operations/provisioning.mdx) · [`docs/setup-web.mdx`](../docs/setup-web.mdx) · [`docs/first-workflow.mdx`](../docs/first-workflow.mdx) · [`docs/using-the-docs.mdx`](../docs/using-the-docs.mdx) · [`docs/guides/index.mdx`](../docs/guides/index.mdx) · [`docs/guides/issues-and-branches.mdx`](../docs/guides/issues-and-branches.mdx) · [`docs/guides/review-pull-requests.mdx`](../docs/guides/review-pull-requests.mdx) · [`docs/guides/work-with-the-bot.mdx`](../docs/guides/work-with-the-bot.mdx) · [`docs/guides/releases-and-hotfixes.mdx`](../docs/guides/releases-and-hotfixes.mdx) ### `guided-bot-pat-onboarding` — Guided bot PAT onboarding diff --git a/specs/catalog.json b/specs/catalog.json index ffa5749c8..7b931d584 100644 --- a/specs/catalog.json +++ b/specs/catalog.json @@ -719,7 +719,7 @@ "status": "implemented", "scope": "Plan, validate, provision, and audit a repository installation without exposing credentials", "owner": "Copilot maintainers", - "lastVerified": "2026-10-19", + "lastVerified": "2026-10-20", "specs": [ "specs/setup-configuration-credentials-and-doctor.md", "specs/setup-doctor-architecture-hardening.md", @@ -893,7 +893,11 @@ "src/application/policies/setup_runner_installation_summary_policy.ts", "src/utils/setup_files.ts", "src/domain/specification_catalog_path_policy.cjs", - "src/domain/sdd_prerequisite_policy.cjs" + "src/domain/sdd_prerequisite_policy.cjs", + "src/application/contracts/setup_documentation.ts", + "src/application/policies/setup_question_documentation_policy.ts", + "web/src/components/SetupHelp.svelte", + "web/src/components/CompletedSetupHelp.svelte" ], "tests": [ "src/data/repository/__tests__/repository_version_tags_query_repository.test.ts", @@ -1014,7 +1018,9 @@ "src/cli/__tests__/setup_runner_config_file.test.ts", "src/infrastructure/__tests__/setup_runner_composition.test.ts", "src/tooling/__tests__/setup_provisioning_workflow.test.ts", - "src/infrastructure/__tests__/setup_sdd_prerequisites.test.ts" + "src/infrastructure/__tests__/setup_sdd_prerequisites.test.ts", + "src/cli/__tests__/setup_documentation_navigation.test.ts", + "src/application/policies/__tests__/setup_question_documentation_policy.test.ts" ], "documentation": [ "README.md", @@ -1030,7 +1036,15 @@ "docs/security-operations/operations/verification.mdx", "docs/development/setup-pat-provider-audit-2026-10-06.md", "docs/issues/comment-commands.mdx", - "docs/issues/branch-synchronization.mdx" + "docs/issues/branch-synchronization.mdx", + "docs/setup-web.mdx", + "docs/first-workflow.mdx", + "docs/using-the-docs.mdx", + "docs/guides/index.mdx", + "docs/guides/issues-and-branches.mdx", + "docs/guides/review-pull-requests.mdx", + "docs/guides/work-with-the-bot.mdx", + "docs/guides/releases-and-hotfixes.mdx" ] }, { @@ -1039,7 +1053,7 @@ "status": "proposed", "scope": "Offer a packaged, loopback-only Svelte setup interface over the existing engine with four-language guidance, English CLI help, basic/custom first-run paths, editable question and plan review, source-labelled GitHub facts, assisted CI and Project evidence, role-separated PATs, and truthful itemized outcomes; inspect existing configuration and apply independent, scope-aware runtime adjustments with permission, drift and read-back verification", "owner": "Copilot maintainers", - "lastVerified": "2026-10-14", + "lastVerified": "2026-10-20", "specs": [ "specs/local-web-setup-assistant.md", "specs/setup-configuration-management.md" @@ -1196,7 +1210,11 @@ "web/src/components/InstallationReview.svelte", "web/src/components/RunnerQuestionDetails.svelte", "web/src/i18n/runnerCopy.ts", - "scripts/web-setup-runner-review-fixtures.cjs" + "scripts/web-setup-runner-review-fixtures.cjs", + "src/application/contracts/setup_documentation.ts", + "src/cli/setup_journey_presenter.ts", + "web/src/components/SetupHelp.svelte", + "web/src/components/CompletedSetupHelp.svelte" ], "tests": [ "src/__tests__/cli.test.ts", @@ -1261,7 +1279,8 @@ "src/infrastructure/__tests__/setup_management_workspace_adapter.test.ts", "src/cli/__tests__/setup_management_adapter.test.ts", "src/cli/__tests__/web_setup_management_components.test.ts", - "src/cli/__tests__/web_setup_runner_components.test.ts" + "src/cli/__tests__/web_setup_runner_components.test.ts", + "src/cli/__tests__/setup_documentation_navigation.test.ts" ], "documentation": [ "README.md", @@ -1277,7 +1296,15 @@ "docs/dependency-rules.md", "docs/security-operations/security/self-hosted-runners.mdx", "docs/security-operations/operations/troubleshooting.mdx", - "docs/security-operations/operations/provisioning.mdx" + "docs/security-operations/operations/provisioning.mdx", + "docs/setup-web.mdx", + "docs/first-workflow.mdx", + "docs/using-the-docs.mdx", + "docs/guides/index.mdx", + "docs/guides/issues-and-branches.mdx", + "docs/guides/review-pull-requests.mdx", + "docs/guides/work-with-the-bot.mdx", + "docs/guides/releases-and-hotfixes.mdx" ] }, { diff --git a/specs/local-web-setup-assistant.md b/specs/local-web-setup-assistant.md index b0294e27b..959ca1c09 100644 --- a/specs/local-web-setup-assistant.md +++ b/specs/local-web-setup-assistant.md @@ -2797,3 +2797,139 @@ Evidence: `setup_organization_import_wizard.test.ts`, `setup_trusted_health_sdk_contract.integration.test.ts`, and `web_setup_batch_components.test.ts`. Owning test budget, migration, UX and operational acceptance are in the companion; existing quality gates remain. + +## Documentation navigation amendment — issue #617 (2026-10-20) + +### Evidence, scope and product journey + +Observed behavior: question explanations already carry source-controlled URLs +through `setup_question_documentation_policy.ts` to both presenters. CLI `?` +expands local guidance and web questions expose a documentation link. Before +this amendment, pairing/waiting/result screens lacked a persistent tutorial +route; CLI command help lacked the onboarding journey. Some capability links +led directly to manual workflow wiring before explaining the selected outcome. + +The intentional contract adds help navigation, not a second setup engine. +Operators MUST retain their in-memory answers while reading help in a new tab. +No link changes grants, answers, approval, readiness or installed state. +Normal, preview, blocked, partial and complete operation facts remain governed +by the existing session coordinator. Historic motivation for missing links is +unknown. No deployment, PAT, network or runner behavior changes here. + +```text +CLI --help / web pairing -> tutorial -> current question and local help + -> reviewed Apply -> install files -> first workflow +blocked or partial result -> inspect retained resources -> recovery reference +``` + +Text equivalent: an operator can discover the setup guide before entering a +credential, consult setting-specific explanations during the same run, and +reach runtime verification after a completed Apply or recovery after a stop. + +### Architecture, configuration and security + +`src/application/contracts/setup_documentation.ts` owns three immutable public +URLs: setup tutorial, first workflow and troubleshooting. The browser +architecture permits this exact inert registry in addition +to its existing type-only view contract. Its architecture check rejects extra +statements, imports, functions, computed values or non-literal destinations; +the navigation test validates each URL and its registered local page. No other +application runtime import is permitted by this exception. CLI entrypoint +help, the journey presenter and browser presentation consume this contract; +application use cases and provider adapters acquire no UI dependency. Question +selection remains a pure application policy; feature choices link to goal +guides and issue-kind selection to the installed-profile reference. Niche +provider/concept questions retain their exact reference links. + +There are no new inputs, flags, remote calls, durable fields, permissions, +feature flags or user-controlled URLs. The safe default is static HTTPS links +with no query, identity, session, repository-answer or credential interpolation. +The existing terminal alternative and all setup/default policies remain. +Browser links MUST open only on explicit user interaction, in another tab with +`noopener noreferrer`. CLI displays copyable links and never opens them itself. +This applies to read-only/controller, pairing, pending, cancelled and closed +views as well; documentation is public and grants no setup control. + +### Primary presentation and outcome meanings + +The browser presents a secondary, wrapping navigation landmark before setup +content, localized in English, Spanish, French and Portuguese: + +```text +Setup tutorial ↗ First issue-to-PR workflow ↗ Troubleshooting ↗ +Documentation opens in a new tab. Your setup answers stay here. +``` + +Existing primary action, status, receipt and error hierarchy stay ahead of +technical evidence. This help is navigation, never a new Apply/Retry control. + +| State | Help and retained meaning | +|---|---| +| Pending / pairing | Global help is available before credentials; local terminal supplies the pairing code | +| Action required | Question-specific explanation/URL plus the same global navigation; answers unchanged | +| Blocked / failed | Existing cause and next action remain; CLI points to troubleshooting, with no success claim | +| Partial | Inspect retained resources before retry; help cannot roll back or complete writes | +| Complete | Install reviewed files and follow the first workflow; metadata inspection does not prove runtime success | +| Dry run | Show tutorial/preview facts; do not claim the Action was installed or verified | + +The complete-result follow-up applies only to current-repository Apply, not a +management inspection or batch PR receipt. Browser navigation remains keyboard +reachable, uses descriptive localized text, wraps at narrow widths and works +with both themes. Actual screen-reader/native platform/language acceptance +still requires its existing recorded human evidence. + +### Failures, operations, migration and documentation + +An unavailable documentation site affects only optional external reading. +Local `--help` and question explanations remain available; answers and +completed effects are retained. Links must not retry setup, collect credentials +or imply token cleanup. Public previews may lag the default branch; the +consumption guide distinguishes default, tag, development and PR docs as well +as CLI package versus installed Action versions. + +There is no state/schema migration; a new installed CLI gains the presentation +when upgraded. Existing in-flight processes keep their loaded code. Rolling +back the package removes only the extra links. No new telemetry, GitHub +comments, persistent logs, rate-limit policy or cleanup action is introduced. + +Deliverables: README and setup/first-workflow/goal guides, `/using-the-docs`, +support with real reporting routes and no invented response/community promises, +and a clear distinction between installed-package diagnosis and source-only +maintainer verification scripts. + +### Numeric verification budget and acceptance + +The **15-case incremental automated budget** is separate from the unchanged +350-case historical setup ledger and cannot close its manual-review rows: + +| Area | Minimum cases | Risk covered | +|---|---:|---| +| Web navigation | 4 | Four locales, descriptive landmark, fixed destinations, safe new-tab attributes, no mutation button | +| Result routing | 4 | Complete follow-up versus dry-run, partial and blocked non-success states | +| CLI journey | 5 | Entry, completed Apply, partial, blocked and no-change preview guide selection | +| CLI command help | 1 | Discover tutorials/verification before executing setup or collecting credentials | +| Shared destination contract | 1 | Every clean public URL maps to an actual registered local page | +| **Total** | **15** | No model, live PAT or GitHub mutation | + +Evidence is `src/cli/__tests__/setup_documentation_navigation.test.ts` and the +updated question-documentation mapping tests. The documentation validator MUST +check runtime help routes/anchors; the component/asset validator MUST reject +missing local Image sources. Existing strict coverage, type, lint, build, +package and workflow gates remain. Boundary and localization tests use the real +Svelte SSR fixture, not mocked HTML. AST graph and compiled shipped bundles +must be regenerated after source changes. + +Acceptance/traceability: an unpaired reader finds the tutorial (web navigation +cases); a CLI operator reads guides before setup execution (help case); a +completed Apply points to installation and runtime proof without claiming it +already occurred (complete-result and journey cases); blocked/partial/preview +states preserve their semantics (other result/journey rows); every shared link +is public and locally resolvable (destination case and validators). + +Definition of Done: all fifteen cases and relevant existing tests pass; public +MDX/links/images and source architecture checks pass; shipped bundles and the +catalog evidence are current; a real browser fixture inspection records the +help and retained question, and public Git-ref documentation renders correctly. +That inspection is agent evidence, not a substitute for the outstanding human +accessibility or cross-platform acceptance reviews. No open product decision +blocks this bounded amendment. Related work: issues #617 and PR #618. diff --git a/specs/setup-configuration-credentials-and-doctor.md b/specs/setup-configuration-credentials-and-doctor.md index d0d54471a..abd51b16b 100644 --- a/specs/setup-configuration-credentials-and-doctor.md +++ b/specs/setup-configuration-credentials-and-doctor.md @@ -729,3 +729,12 @@ Evidence: `setup_organization_import_wizard.test.ts`, `setup_trusted_health_sdk_contract.integration.test.ts`, and `web_setup_batch_components.test.ts`. Owning test budget, migration, UX and operational acceptance are in the companion; existing quality gates remain. + +## Documentation navigation companion — issue #617 (2026-10-20) + +The bounded web/CLI documentation-navigation contract and its shared 15-case +incremental test budget are owned by the [web assistant amendment](./local-web-setup-assistant.md#documentation-navigation-amendment--issue-617-2026-10-20). +It adds public tutorial, first-workflow and recovery links to command help and +presentations, with no setup decision, credential, configuration, durable-state +or permission changes. The 15 cases are shared evidence, not counted again +here; existing quality gates and human UX limitations remain. diff --git a/src/application/contracts/setup_documentation.ts b/src/application/contracts/setup_documentation.ts new file mode 100644 index 000000000..c5a082a43 --- /dev/null +++ b/src/application/contracts/setup_documentation.ts @@ -0,0 +1,6 @@ +/** Public, source-controlled navigation. Never attach session, repository or credential data. */ +export const SETUP_DOCUMENTATION = { + tutorial: 'https://docs.page/vypdev/copilot/setup-web', + firstWorkflow: 'https://docs.page/vypdev/copilot/first-workflow', + recovery: 'https://docs.page/vypdev/copilot/security-operations/operations/troubleshooting', +} as const; diff --git a/src/application/policies/__tests__/setup_question_documentation_policy.test.ts b/src/application/policies/__tests__/setup_question_documentation_policy.test.ts index 4141424cb..46710d2a7 100644 --- a/src/application/policies/__tests__/setup_question_documentation_policy.test.ts +++ b/src/application/policies/__tests__/setup_question_documentation_policy.test.ts @@ -10,9 +10,9 @@ describe('setup question documentation', () => { expect(existsSync(resolve(__dirname, '../../../../docs/configuration.mdx'))).toBe(true); }); test.each([ - ['features.issues', 'capabilities', '/issues/workflow-setup'], - ['features.pullRequests', 'capabilities', '/pull-requests/workflow-setup'], - ['issueWorkflows.enabled', 'capabilities', '/issues/workflow-setup'], + ['features.issues', 'capabilities', '/guides/issues-and-branches'], + ['features.pullRequests', 'capabilities', '/guides/review-pull-requests'], + ['issueWorkflows.enabled', 'capabilities', '/issues/configurable-workflows'], ['repositoryAgentGuidance.enabled', 'capabilities', '/agents/repository-collaboration'], ['agents.planner.provider', 'agent-runtime', '/agents/runtime-selection'], ['agents.findings.executable', 'agent-model-defaults', '/agents/cli-configuration'], @@ -28,7 +28,7 @@ describe('setup question documentation', () => { ['ai.pullRequestDescriptionMode', 'bugbot', '/pull-requests/ai-description'], ['ai.provisioningMode', 'provisioning', '/agents/cli-configuration'], ['projects.enabled', 'projects', '/issues/assignees-and-projects'], - ['manageRepositorySecrets', 'provisioning', '/how-to-use'], + ['manageRepositorySecrets', 'provisioning', '/setup-web'], ])('%s has a related, locally documented destination', (id, stateId, path) => { const reference = setupQuestionDocumentation({ id, stateId: stateId as SetupQuestion['stateId'] }); expect(reference.title.trim()).not.toBe(''); diff --git a/src/application/policies/setup_question_documentation_policy.ts b/src/application/policies/setup_question_documentation_policy.ts index 73ddbc5de..9581bb463 100644 --- a/src/application/policies/setup_question_documentation_policy.ts +++ b/src/application/policies/setup_question_documentation_policy.ts @@ -6,13 +6,16 @@ export interface SetupQuestionDocumentation { } const docs = { - features: { title: 'Copilot features and workflow triggers', url: 'https://docs.page/vypdev/copilot/features' }, - issueWorkflows: { title: 'Copilot issue workflow setup', url: 'https://docs.page/vypdev/copilot/issues/workflow-setup' }, + features: { title: 'Choose a Copilot goal', url: 'https://docs.page/vypdev/copilot/guides' }, + issueWorkflows: { title: 'Select issue kinds and forms', url: 'https://docs.page/vypdev/copilot/issues/configurable-workflows' }, + issuesGuide: { title: 'Manage issues and branches', url: 'https://docs.page/vypdev/copilot/guides/issues-and-branches' }, + reviewGuide: { title: 'Review PRs and resolve findings', url: 'https://docs.page/vypdev/copilot/guides/review-pull-requests' }, + botGuide: { title: 'Work with the bot', url: 'https://docs.page/vypdev/copilot/guides/work-with-the-bot' }, + releaseGuide: { title: 'Release and hotfix guide', url: 'https://docs.page/vypdev/copilot/guides/releases-and-hotfixes' }, branchManagement: { title: 'Issue branch management', url: 'https://docs.page/vypdev/copilot/issues/branch-management' }, preBranchSdd: { title: 'Pre-branch design documents', url: 'https://docs.page/vypdev/copilot/issues/pre-branch-sdds' }, issueLifecycle: { title: 'Issue notifications and automatic closure', url: 'https://docs.page/vypdev/copilot/issues/notifications-and-auto-close' }, assignments: { title: 'Assignees and GitHub Projects', url: 'https://docs.page/vypdev/copilot/issues/assignees-and-projects' }, - pullRequestWorkflows: { title: 'Pull-request workflow setup', url: 'https://docs.page/vypdev/copilot/pull-requests/workflow-setup' }, pullRequestDescription: { title: 'AI pull-request descriptions', url: 'https://docs.page/vypdev/copilot/pull-requests/ai-description' }, repositoryGuidance: { title: 'Repository guidance for agents', url: 'https://docs.page/vypdev/copilot/agents/repository-collaboration' }, runtime: { title: 'Agent runtime selection', url: 'https://docs.page/vypdev/copilot/agents/runtime-selection' }, @@ -27,7 +30,7 @@ const docs = { projects: { title: 'Assignees and GitHub Projects', url: 'https://docs.page/vypdev/copilot/issues/assignees-and-projects' }, githubProjects: { title: 'GitHub: About Projects', url: 'https://docs.github.com/en/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects' }, githubStatus: { title: 'GitHub: About single-select fields', url: 'https://docs.github.com/en/issues/planning-and-tracking-with-projects/understanding-fields/about-single-select-fields' }, - provisioning: { title: 'Copilot setup and provisioning', url: 'https://docs.page/vypdev/copilot/how-to-use' }, + provisioning: { title: 'Set up with the web assistant', url: 'https://docs.page/vypdev/copilot/setup-web' }, storage: { title: 'GitHub Actions Secrets and Variables', url: 'https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/use-secrets' }, } as const satisfies Record; @@ -36,8 +39,10 @@ export function setupQuestionDocumentation(question: Pick { { specifier: './type-import', typeOnly: true }, ]); }); - test('browser imports only redacted application contracts, as types, across the actual dependency graph', () => { + test('browser imports only redacted view types or inert documentation constants across the actual dependency graph', () => { const browser = join(root, 'web', 'src'); const contract = join(root, 'src', 'application', 'contracts', 'web_setup_view'); + const documentation = join(root, 'src', 'application', 'contracts', 'setup_documentation'); + const registry = ts.createSourceFile(`${documentation}.ts`, readFileSync(`${documentation}.ts`, 'utf8'), ts.ScriptTarget.Latest, true); + expect(registry.statements).toHaveLength(1); + const statement = registry.statements[0]; + expect(ts.isVariableStatement(statement)).toBe(true); + if (!ts.isVariableStatement(statement)) throw new Error('Documentation must be static constants'); + expect(statement.declarationList.flags & ts.NodeFlags.Const).toBeTruthy(); + expect(statement.declarationList.declarations).toHaveLength(1); + const initializer = statement.declarationList.declarations[0].initializer!; + expect(ts.isAsExpression(initializer) && ts.isObjectLiteralExpression(initializer.expression)).toBe(true); + if (!ts.isAsExpression(initializer) || !ts.isObjectLiteralExpression(initializer.expression)) throw new Error('Documentation must be literal URLs'); + for (const property of initializer.expression.properties) { + expect(ts.isPropertyAssignment(property) && ts.isIdentifier(property.name) && ts.isStringLiteral(property.initializer)).toBe(true); + } for (const path of browserSources(browser)) { for (const imported of moduleImports(path)) { const target = imported.specifier.startsWith('.') ? resolve(dirname(path), imported.specifier) : ''; if (target.startsWith(`${join(root, 'src')}${sep}`)) { - expect(imported.typeOnly).toBe(true); - expect(target).toBe(contract); + if (target === documentation) expect(imported.typeOnly).toBe(false); + else { + expect(imported.typeOnly).toBe(true); + expect(target).toBe(contract); + } } if (path.includes(`${sep}components${sep}`) || path.includes(`${sep}lib${sep}`)) { expect(target).not.toContain(`${sep}session${sep}`); diff --git a/src/cli/__tests__/setup_documentation_navigation.test.ts b/src/cli/__tests__/setup_documentation_navigation.test.ts new file mode 100644 index 000000000..0e8258de5 --- /dev/null +++ b/src/cli/__tests__/setup_documentation_navigation.test.ts @@ -0,0 +1,81 @@ +import { readFileSync, existsSync } from 'node:fs'; +import { resolve } from 'node:path'; +import { Command } from 'commander'; +import { SETUP_DOCUMENTATION } from '../../application/contracts/setup_documentation'; +import { buildSetupJourneyView } from '../../application/policies/setup_journey_policy'; +import { ConsoleSetupJourneyPresenter } from '../setup_journey_presenter'; +import { registerSetupCommand } from '../commands/setup'; +import { executeSetupCommand } from '../commands/setup_execution'; +import { useWebSetupRenderer } from '../../../test-support/web-setup-renderer'; + +jest.mock('../commands/setup_execution', () => ({ executeSetupCommand: jest.fn() })); + +const markup = useWebSetupRenderer(); + +describe('setup documentation navigation', () => { + test.each([ + ['en', 'Setup tutorial', 'new tab'], + ['es', 'Tutorial de configuración', 'otra pestaña'], + ['fr', 'Tutoriel de configuration', 'nouvel onglet'], + ['pt', 'Tutorial de configuração', 'novo separador'], + ])('%s provides non-mutating, localized help navigation before pairing', async (locale, title, hint) => { + const html = await markup('SetupHelp', {}, locale); + expect(html).toContain(' { + const html = await markup('ResultPanel', { outcome, controller: false }); + expect(html.includes(`href="${SETUP_DOCUMENTATION.firstWorkflow}"`)).toBe(outcome === 'complete'); + expect(html.includes('Install the reviewed files')).toBe(outcome === 'complete'); + }, + ); + + test.each([ + ['repository', undefined, SETUP_DOCUMENTATION.tutorial], + ['apply', 'complete', SETUP_DOCUMENTATION.firstWorkflow], + ['apply', 'partial', SETUP_DOCUMENTATION.recovery], + ['setup-pat', 'blocked', SETUP_DOCUMENTATION.recovery], + ['plan', 'dry-run', SETUP_DOCUMENTATION.tutorial], + ] as const)('CLI %s / %s offers the appropriate next guide', (stage, outcome, url) => { + const log = jest.spyOn(console, 'log').mockImplementation(); + try { + new ConsoleSetupJourneyPresenter().present(buildSetupJourneyView('owner/repo', stage, outcome === 'complete' || outcome === 'partial', outcome)); + const output = log.mock.calls.flat().join('\n'); + expect(output).toContain(url); + if (outcome !== 'complete') expect(output).not.toContain(SETUP_DOCUMENTATION.firstWorkflow); + } finally { log.mockRestore(); } + }); + + test('setup --help exposes the tutorial and verification path without executing setup', () => { + let output = ''; + const program = new Command(); + registerSetupCommand(program); + const setup = program.commands.find(command => command.name() === 'setup')!; + setup.configureOutput({ writeOut: value => { output += value; } }); + setup.outputHelp(); + expect(output).toContain('--web'); + expect(output).toContain('type ?'); + for (const url of Object.values(SETUP_DOCUMENTATION)) expect(output).toContain(url); + expect(executeSetupCommand).not.toHaveBeenCalled(); + }); + + test('every shared guide is a registered local page with a clean public URL', () => { + const root = resolve(__dirname, '../../..'); + const navigation = readFileSync(resolve(root, 'docs.json'), 'utf8'); + for (const destination of Object.values(SETUP_DOCUMENTATION)) { + const url = new URL(destination); + expect(url.origin).toBe('https://docs.page'); + expect(url.search + url.username + url.password).toBe(''); + const route = url.pathname.replace('/vypdev/copilot', ''); + expect(navigation).toContain(`"${route}"`); + expect(existsSync(resolve(root, 'docs', `${route.slice(1)}.mdx`))).toBe(true); + } + }); +}); diff --git a/src/cli/commands/setup.ts b/src/cli/commands/setup.ts index 96a17f914..b7fda9e73 100644 --- a/src/cli/commands/setup.ts +++ b/src/cli/commands/setup.ts @@ -2,6 +2,7 @@ import { Command } from 'commander'; import { TITLE } from '../../application/contracts/product_identity'; import { collectApprovalCheck, collectScope, collectSecret } from '../setup_command_options'; import { executeSetupCommand } from './setup_execution'; +import { SETUP_DOCUMENTATION } from '../../application/contracts/setup_documentation'; export function registerSetupCommand(program: Command): void { program @@ -36,5 +37,6 @@ export function registerSetupCommand(program: Command): void { .option('--update-workflows', 'Allow setup-managed workflows already in the repository to be updated', false) .option('--workflow-pat ', 'Workflow PAT for the bot account (prefer the hidden interactive prompt)') .option('--secret ', 'Secret value for non-interactive setup; repeat for each API key', collectSecret, {}) + .addHelpText('after', `\nGuides (open only when you choose):\n Web setup tutorial: ${SETUP_DOCUMENTATION.tutorial}\n First issue-to-PR workflow: ${SETUP_DOCUMENTATION.firstWorkflow}\n Troubleshooting: ${SETUP_DOCUMENTATION.recovery}\n\nDuring interactive setup, type ? for question help and :back to revisit an answer.\n`) .action(executeSetupCommand); } diff --git a/src/cli/setup_journey_presenter.ts b/src/cli/setup_journey_presenter.ts index 83e09476f..16e60d13f 100644 --- a/src/cli/setup_journey_presenter.ts +++ b/src/cli/setup_journey_presenter.ts @@ -1,10 +1,18 @@ import type { SetupJourneyPresenterPort } from '../application/usecases/setup/setup_journey_use_case'; import type { SetupJourneyView } from '../application/policies/setup_journey_policy'; import { renderBox } from './setup_prompt_rendering'; +import { SETUP_DOCUMENTATION } from '../application/contracts/setup_documentation'; export class ConsoleSetupJourneyPresenter implements SetupJourneyPresenterPort { present(view: SetupJourneyView): void { console.log(renderSetupJourney(view)); + if (view.outcome === 'complete') { + console.log(`Next: install the reviewed files, then verify your first workflow: ${SETUP_DOCUMENTATION.firstWorkflow}`); + } else if (view.outcome === 'blocked' || view.outcome === 'partial') { + console.log(`Inspect the result before retrying. Troubleshooting: ${SETUP_DOCUMENTATION.recovery}`); + } else if (view.current === 'Repository' || view.outcome === 'dry-run') { + console.log(`Setup tutorial (opens only when you choose): ${SETUP_DOCUMENTATION.tutorial}`); + } } } diff --git a/web/src/App.svelte b/web/src/App.svelte index 3325f6fa1..d805f747e 100644 --- a/web/src/App.svelte +++ b/web/src/App.svelte @@ -4,6 +4,7 @@ import SetupSidebar from './components/SetupSidebar.svelte'; import SetupHeader from './components/SetupHeader.svelte'; import SetupIntro from './components/SetupIntro.svelte'; + import SetupHelp from './components/SetupHelp.svelte'; import StatusBanner from './components/StatusBanner.svelte'; import PromptCard from './components/PromptCard.svelte'; import ContextPanel from './components/ContextPanel.svelte'; @@ -32,12 +33,10 @@ async function cancel(): Promise { if (window.confirm(tr($session.view?.batch?.phase === 'applying' ? 'batchStopConfirm' : 'cancelConfirm', $setupLocale))) await session.cancel(); } - async function submit(value: string): Promise { const revision = $session.view?.promptRevision; if (revision !== undefined) await session.submit(revision, value); } - async function retryDiscovery(): Promise { const revision = $session.view?.promptRevision; if (revision !== undefined) await session.retryDiscovery(revision); @@ -53,6 +52,7 @@
                                                                                                            + {#if $setupLocale !== 'en'} {/if} diff --git a/web/src/components/CompletedSetupHelp.svelte b/web/src/components/CompletedSetupHelp.svelte new file mode 100644 index 000000000..fd9b14f75 --- /dev/null +++ b/web/src/components/CompletedSetupHelp.svelte @@ -0,0 +1,8 @@ + + +

                                                                                                            {tr('botRenewal', $setupLocale)}

                                                                                                            +

                                                                                                            {tr('setupNextWorkflow', $setupLocale)} {tr('firstWorkflowGuide', $setupLocale)} ↗

                                                                                                            diff --git a/web/src/components/ResultPanel.svelte b/web/src/components/ResultPanel.svelte index 4873035e7..d35430efe 100644 --- a/web/src/components/ResultPanel.svelte +++ b/web/src/components/ResultPanel.svelte @@ -9,6 +9,7 @@ import { focusOnRevision } from '../lib/focusOnRevision'; import { permissionName, permissionTerm } from '../i18n/permissionTerms'; import { permissionEvidence } from '../i18n/permissionEvidence'; + import CompletedSetupHelp from './CompletedSetupHelp.svelte'; export let management = false; export let batch = false; export let outcome: NonNullable; @@ -68,15 +69,13 @@ {/if} {/if} - {#if detail?.effects?.length} - - {/if} + {#if detail?.effects?.length}{/if} {#if showPatCorrection && setupPatCorrection} {/if}

                                                                                                            {secretCollision ? tr('permissionSecretCollision', $setupLocale) : pendingProbeCleanup ? tr('permissionProbeCleanupPending', $setupLocale) : explanation}

                                                                                                            {#if batch}

                                                                                                            {tr('batchCleanup', $setupLocale)}

                                                                                                            {/if} - {#if outcome === 'complete' && !management && !batch}

                                                                                                            {tr('botRenewal', $setupLocale)}

                                                                                                            {/if} + {#if outcome === 'complete' && !management && !batch}{/if} {#if !management && !batch}

                                                                                                            {tr('doctorHelp', $setupLocale)}

                                                                                                            {/if} {#if outcome === 'complete' && !management && !batch}
                                                                                                            diff --git a/web/src/components/SetupHelp.svelte b/web/src/components/SetupHelp.svelte new file mode 100644 index 000000000..b7c4bf399 --- /dev/null +++ b/web/src/components/SetupHelp.svelte @@ -0,0 +1,21 @@ + + + + + diff --git a/web/src/i18n/en.ts b/web/src/i18n/en.ts index 8ddb72f0c..858782066 100644 --- a/web/src/i18n/en.ts +++ b/web/src/i18n/en.ts @@ -1,4 +1,8 @@ export const en = { + setupHelp: 'Setup help', setupTutorial: 'Setup tutorial', firstWorkflowGuide: 'First issue-to-PR workflow', setupRecovery: 'Troubleshooting', + setupHelpHint: 'Documentation opens in a new tab. Your setup answers stay here.', + setupNextWorkflow: 'Install the reviewed files, then verify the Action in GitHub. A metadata check alone does not prove runtime success.', + batchNextActions: "Next steps", batchStatusReady: "Ready for review", batchStatusBlocked: "Needs action", diff --git a/web/src/i18n/es.ts b/web/src/i18n/es.ts index 07af0700d..f58bc3da3 100644 --- a/web/src/i18n/es.ts +++ b/web/src/i18n/es.ts @@ -1,6 +1,9 @@ import type { en } from './en'; export const es: Record = { + setupHelp: 'Ayuda de configuración', setupTutorial: 'Tutorial de configuración', firstWorkflowGuide: 'Primer flujo de issue a PR', setupRecovery: 'Resolver problemas', + setupHelpHint: 'La documentación se abre en otra pestaña. Tus respuestas se conservan aquí.', + setupNextWorkflow: 'Instala los archivos revisados y comprueba la Action en GitHub. Una inspección de metadatos no demuestra que funcione en ejecución.', batchNextActions: "Siguientes pasos", batchStatusReady: "Listo para revisar", batchStatusBlocked: "Requiere una acción", diff --git a/web/src/i18n/fr.ts b/web/src/i18n/fr.ts index a2ba333ec..b0de850d0 100644 --- a/web/src/i18n/fr.ts +++ b/web/src/i18n/fr.ts @@ -1,6 +1,9 @@ import type { SetupMessageKey } from './catalog'; export const fr: Record = { + setupHelp: 'Aide à la configuration', setupTutorial: 'Tutoriel de configuration', firstWorkflowGuide: 'Premier parcours issue vers PR', setupRecovery: 'Dépannage', + setupHelpHint: 'La documentation s’ouvre dans un nouvel onglet. Vos réponses restent ici.', + setupNextWorkflow: 'Installez les fichiers vérifiés, puis testez l’Action dans GitHub. Une vérification des métadonnées ne prouve pas son fonctionnement.', batchNextActions: "Prochaines étapes", batchStatusReady: "Prêt à examiner", batchStatusBlocked: "Action requise", diff --git a/web/src/i18n/pt.ts b/web/src/i18n/pt.ts index 1e40034a7..ac0a26dab 100644 --- a/web/src/i18n/pt.ts +++ b/web/src/i18n/pt.ts @@ -1,6 +1,9 @@ import type { SetupMessageKey } from './catalog'; export const pt: Record = { + setupHelp: 'Ajuda de configuração', setupTutorial: 'Tutorial de configuração', firstWorkflowGuide: 'Primeiro fluxo de issue para PR', setupRecovery: 'Resolver problemas', + setupHelpHint: 'A documentação abre num novo separador. As suas respostas ficam aqui.', + setupNextWorkflow: 'Instale os ficheiros revistos e verifique a Action no GitHub. Uma inspeção de metadados não comprova o funcionamento em execução.', batchNextActions: "Próximos passos", batchStatusReady: "Pronto para revisão", batchStatusBlocked: "Requer uma ação", From 87d41864c0fa34824a6be24dd3ddf627e8de687f Mon Sep 17 00:00:00 2001 From: Efra Espada Date: Tue, 20 Oct 2026 15:14:38 +0200 Subject: [PATCH 4/4] docs-617-make-onboarding-web-first-with-a-verifiable-first-workflow-and-goal-based-documentation: bind acceptance ledger to strengthened architecture check --- specs/local-web-setup-assistant-acceptance.json | 2 +- specs/local-web-setup-assistant.md | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/specs/local-web-setup-assistant-acceptance.json b/specs/local-web-setup-assistant-acceptance.json index 7a6b3035a..861d47b90 100644 --- a/specs/local-web-setup-assistant-acceptance.json +++ b/specs/local-web-setup-assistant-acceptance.json @@ -171,7 +171,7 @@ {"id":"C025","assertion":"The packaged CLI starts without Vite or source TypeScript files.","status":"pass","evidence":{"kind":"command","command":"pnpm run smoke:npm-package","observation":"Extracted CLI started a fixture-only web session, paired, cancelled and closed with the checkout unchanged.","date":"2026-10-03"}}, {"id":"C026","assertion":"A separate TypeScript consumer resolves the typed Bugbot API.","status":"pass","evidence":{"kind":"command","command":"pnpm run smoke:npm-package","observation":"Isolated tarball smoke test passed: CLI version/help and typed Bugbot API consumer.","date":"2026-09-30"}}, {"id":"C027","assertion":"The POSIX CLI launcher has executable mode after the production build.","status":"pass","evidence":{"kind":"command","command":"pnpm run build","observation":"Production build completed; CLI launcher executable mode set.","date":"2026-09-30"}}, - {"id":"C028","assertion":"local web setup architecture browser imports only redacted application contracts, as types, across the actual dependency graph","status":"pass","evidence":{"kind":"jest","file":"src/architecture/__tests__/web_setup_boundaries.test.ts","test":"local web setup architecture browser imports only redacted application contracts, as types, across the actual dependency graph"}}, + {"id":"C028","assertion":"local web setup architecture browser imports only redacted view types or inert documentation constants across the actual dependency graph","status":"pass","evidence":{"kind":"jest","file":"src/architecture/__tests__/web_setup_boundaries.test.ts","test":"local web setup architecture browser imports only redacted view types or inert documentation constants across the actual dependency graph"}}, {"id":"C029","assertion":"local web setup architecture browser presenters cannot acquire transport, provider, or persistent-secret responsibilities","status":"pass","evidence":{"kind":"jest","file":"src/architecture/__tests__/web_setup_boundaries.test.ts","test":"local web setup architecture browser presenters cannot acquire transport, provider, or persistent-secret responsibilities"}}, {"id":"C030","assertion":"local web setup architecture dependency reader includes re-exports, require, dynamic import and type-only forms","status":"pass","evidence":{"kind":"jest","file":"src/architecture/__tests__/web_setup_boundaries.test.ts","test":"local web setup architecture dependency reader includes re-exports, require, dynamic import and type-only forms"}}, {"id":"C031","assertion":"local web setup architecture domain and application never import browser, HTTP server, or terminal adapters","status":"pass","evidence":{"kind":"jest","file":"src/architecture/__tests__/web_setup_boundaries.test.ts","test":"local web setup architecture domain and application never import browser, HTTP server, or terminal adapters"}}, diff --git a/specs/local-web-setup-assistant.md b/specs/local-web-setup-assistant.md index 959ca1c09..ef167c155 100644 --- a/specs/local-web-setup-assistant.md +++ b/specs/local-web-setup-assistant.md @@ -2899,8 +2899,10 @@ maintainer verification scripts. ### Numeric verification budget and acceptance -The **15-case incremental automated budget** is separate from the unchanged -350-case historical setup ledger and cannot close its manual-review rows: +The **15-case incremental automated budget** is separate from the 350-case +historical setup budget and cannot close its manual-review rows. C028 tracks +the strengthened static-contract boundary under its updated assertion name; +its identity, status and the ledger's case count remain unchanged: | Area | Minimum cases | Risk covered | |---|---:|---|