agentplugged 0.0.1 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE-METHOD +21 -0
- package/README.md +240 -16
- package/dist/agent-commands.js +46540 -0
- package/dist/bin.js +13 -0
- package/dist/cli.js +44 -0
- package/dist/esm.js +920 -0
- package/dist/forge-follow.js +231 -0
- package/dist/helpers.js +18526 -0
- package/dist/helpers2.js +1 -0
- package/dist/launcher-env.js +13 -0
- package/dist/launcher.js +308 -0
- package/dist/libsodium-wrappers.js +4384 -0
- package/dist/libsodium-wrappers2.js +4384 -0
- package/dist/main.js +17776 -0
- package/dist/method/LICENSE +21 -0
- package/dist/method/agents/alex/SKILL.md +87 -0
- package/dist/method/agents/alex/agent.yaml +94 -0
- package/dist/method/agents/chloe/SKILL.md +97 -0
- package/dist/method/agents/chloe/agent.yaml +87 -0
- package/dist/method/agents/ethan/SKILL.md +55 -0
- package/dist/method/agents/ethan/agent.yaml +94 -0
- package/dist/method/agents/hugo/SKILL.md +52 -0
- package/dist/method/agents/hugo/agent.yaml +93 -0
- package/dist/method/agents/iris/SKILL.md +69 -0
- package/dist/method/agents/iris/agent.yaml +86 -0
- package/dist/method/agents/izzy/SKILL.md +137 -0
- package/dist/method/agents/izzy/agent.yaml +104 -0
- package/dist/method/agents/jade/SKILL.md +54 -0
- package/dist/method/agents/jade/agent.yaml +94 -0
- package/dist/method/agents/julien/SKILL.md +96 -0
- package/dist/method/agents/julien/agent.yaml +95 -0
- package/dist/method/agents/lina/SKILL.md +54 -0
- package/dist/method/agents/lina/agent.yaml +94 -0
- package/dist/method/agents/lou/SKILL.md +67 -0
- package/dist/method/agents/lou/agent.yaml +84 -0
- package/dist/method/agents/maya/SKILL.md +82 -0
- package/dist/method/agents/maya/agent.yaml +98 -0
- package/dist/method/agents/milo/SKILL.md +79 -0
- package/dist/method/agents/milo/agent.yaml +80 -0
- package/dist/method/agents/noah/SKILL.md +80 -0
- package/dist/method/agents/noah/agent.yaml +73 -0
- package/dist/method/agents/noah/references/conduct.md +98 -0
- package/dist/method/agents/noah/references/decisions.md +122 -0
- package/dist/method/agents/noah/references/environment.md +72 -0
- package/dist/method/agents/noah/references/facts.md +13 -0
- package/dist/method/agents/noah/references/journey.md +80 -0
- package/dist/method/agents/noah/references/team.md +195 -0
- package/dist/method/agents/omar/SKILL.md +92 -0
- package/dist/method/agents/omar/agent.yaml +86 -0
- package/dist/method/agents/quentin/SKILL.md +78 -0
- package/dist/method/agents/quentin/agent.yaml +82 -0
- package/dist/method/agents/sam/SKILL.md +54 -0
- package/dist/method/agents/sam/agent.yaml +94 -0
- package/dist/method/agents/stella/SKILL.md +80 -0
- package/dist/method/agents/stella/agent.yaml +89 -0
- package/dist/method/agents/tess/SKILL.md +64 -0
- package/dist/method/agents/tess/agent.yaml +94 -0
- package/dist/method/agents/zoe/SKILL.md +85 -0
- package/dist/method/agents/zoe/agent.yaml +91 -0
- package/dist/method/doctor.yaml +1029 -0
- package/dist/method/models.yaml +73 -0
- package/dist/method/skills/.gitkeep +0 -0
- package/dist/method/skills/acceptance-qa/SKILL.md +40 -0
- package/dist/method/skills/acceptance-qa/references/run.md +54 -0
- package/dist/method/skills/acceptance-qa/references/scenarios.md +32 -0
- package/dist/method/skills/acceptance-qa/references/verdicts.md +43 -0
- package/dist/method/skills/api-e2e-tests/SKILL.md +61 -0
- package/dist/method/skills/api-e2e-tests/references/ci.md +33 -0
- package/dist/method/skills/api-e2e-tests/references/frameworks.md +58 -0
- package/dist/method/skills/api-e2e-tests/references/generate.md +67 -0
- package/dist/method/skills/audit-pillars/SKILL.md +28 -0
- package/dist/method/skills/audit-pillars/references/accessibility.md +13 -0
- package/dist/method/skills/audit-pillars/references/architecture.md +13 -0
- package/dist/method/skills/audit-pillars/references/dependencies.md +13 -0
- package/dist/method/skills/audit-pillars/references/format.md +20 -0
- package/dist/method/skills/audit-pillars/references/interface.md +13 -0
- package/dist/method/skills/audit-pillars/references/method.md +33 -0
- package/dist/method/skills/audit-pillars/references/performance.md +17 -0
- package/dist/method/skills/audit-pillars/references/quality.md +11 -0
- package/dist/method/skills/audit-pillars/references/security.md +13 -0
- package/dist/method/skills/audit-pillars/references/tests.md +17 -0
- package/dist/method/skills/chain-stories/SKILL.md +30 -0
- package/dist/method/skills/chain-stories/references/attempts.md +19 -0
- package/dist/method/skills/chain-stories/references/stops.md +27 -0
- package/dist/method/skills/check-readiness/SKILL.md +34 -0
- package/dist/method/skills/check-readiness/references/judge.md +21 -0
- package/dist/method/skills/check-readiness/references/settle.md +17 -0
- package/dist/method/skills/check-requirements/SKILL.md +97 -0
- package/dist/method/skills/check-requirements/references/engine-proofs.md +43 -0
- package/dist/method/skills/check-requirements/references/proofs-and-gaps.md +45 -0
- package/dist/method/skills/correct-course/SKILL.md +15 -0
- package/dist/method/skills/correct-course/references/gestures.md +20 -0
- package/dist/method/skills/correct-course/references/starts.md +18 -0
- package/dist/method/skills/correct-course/references/steps.md +14 -0
- package/dist/method/skills/critique-deliverable/SKILL.md +25 -0
- package/dist/method/skills/critique-deliverable/references/assumption-audit.md +11 -0
- package/dist/method/skills/critique-deliverable/references/choose.md +27 -0
- package/dist/method/skills/critique-deliverable/references/compare-existing.md +13 -0
- package/dist/method/skills/critique-deliverable/references/devils-advocate.md +13 -0
- package/dist/method/skills/critique-deliverable/references/divergence.md +15 -0
- package/dist/method/skills/critique-deliverable/references/domain-expert.md +14 -0
- package/dist/method/skills/critique-deliverable/references/extreme-user.md +13 -0
- package/dist/method/skills/critique-deliverable/references/failure-modes.md +13 -0
- package/dist/method/skills/critique-deliverable/references/first-principles.md +12 -0
- package/dist/method/skills/critique-deliverable/references/format.md +25 -0
- package/dist/method/skills/critique-deliverable/references/gestures.md +24 -0
- package/dist/method/skills/critique-deliverable/references/inversion.md +13 -0
- package/dist/method/skills/critique-deliverable/references/judgment.md +14 -0
- package/dist/method/skills/critique-deliverable/references/pre-mortem.md +12 -0
- package/dist/method/skills/critique-deliverable/references/reconcile.md +15 -0
- package/dist/method/skills/critique-deliverable/references/red-team.md +12 -0
- package/dist/method/skills/critique-deliverable/references/reframe.md +12 -0
- package/dist/method/skills/critique-deliverable/references/second-order.md +12 -0
- package/dist/method/skills/critique-deliverable/references/socratic.md +15 -0
- package/dist/method/skills/critique-deliverable/references/steelman.md +13 -0
- package/dist/method/skills/critique-deliverable/references/subtraction.md +12 -0
- package/dist/method/skills/deep-research/SKILL.md +43 -0
- package/dist/method/skills/deep-research/assets/page-template.md +37 -0
- package/dist/method/skills/deep-research/references/candidates.md +29 -0
- package/dist/method/skills/deep-research/references/external.md +37 -0
- package/dist/method/skills/deep-research/references/page-format.md +51 -0
- package/dist/method/skills/deep-research/references/types.md +31 -0
- package/dist/method/skills/develop-story/SKILL.md +211 -0
- package/dist/method/skills/develop-story/evals/cases.yaml +45 -0
- package/dist/method/skills/develop-story/references/acceptance-tests.md +73 -0
- package/dist/method/skills/develop-story/references/self-check.md +46 -0
- package/dist/method/skills/diagnose-bug/SKILL.md +73 -0
- package/dist/method/skills/diagnose-bug/references/hypotheses.md +45 -0
- package/dist/method/skills/diagnose-bug/references/probes.md +40 -0
- package/dist/method/skills/generate-knowledge-base/SKILL.md +251 -0
- package/dist/method/skills/generate-knowledge-base/assets/guide-template.md +49 -0
- package/dist/method/skills/generate-knowledge-base/assets/index-template.md +58 -0
- package/dist/method/skills/generate-knowledge-base/assets/page-template.md +61 -0
- package/dist/method/skills/generate-knowledge-base/assets/release-notes-template.md +38 -0
- package/dist/method/skills/generate-knowledge-base/references/kb-checklist.md +49 -0
- package/dist/method/skills/generate-knowledge-base/references/living-docs.md +81 -0
- package/dist/method/skills/generate-knowledge-base/references/repository-scan.md +48 -0
- package/dist/method/skills/generate-knowledge-base/references/reuse-map.md +21 -0
- package/dist/method/skills/ideation/SKILL.md +44 -0
- package/dist/method/skills/ideation/assets/session-template.md +46 -0
- package/dist/method/skills/ideation/references/choose.md +21 -0
- package/dist/method/skills/ideation/references/close.md +17 -0
- package/dist/method/skills/ideation/references/converge.md +24 -0
- package/dist/method/skills/ideation/references/gestures.md +15 -0
- package/dist/method/skills/ideation/references/stances.md +21 -0
- package/dist/method/skills/ideation/references/techniques-borrowed.md +8 -0
- package/dist/method/skills/ideation/references/techniques-deep.md +12 -0
- package/dist/method/skills/ideation/references/techniques-frames.md +12 -0
- package/dist/method/skills/ideation/references/techniques-futures.md +8 -0
- package/dist/method/skills/ideation/references/techniques-limits.md +9 -0
- package/dist/method/skills/ideation/references/techniques-people.md +7 -0
- package/dist/method/skills/ideation/references/techniques-sparks.md +10 -0
- package/dist/method/skills/ideation/references/techniques-together.md +11 -0
- package/dist/method/skills/improve-code/SKILL.md +74 -0
- package/dist/method/skills/improve-code/references/axes.md +45 -0
- package/dist/method/skills/improve-session/SKILL.md +47 -0
- package/dist/method/skills/order-merges/SKILL.md +71 -0
- package/dist/method/skills/pitch/SKILL.md +40 -0
- package/dist/method/skills/pitch/assets/deck-template.md +31 -0
- package/dist/method/skills/pitch/assets/design-template.md +45 -0
- package/dist/method/skills/pitch/assets/narrative-template.md +40 -0
- package/dist/method/skills/pitch/references/deck-types.md +17 -0
- package/dist/method/skills/pitch/references/deck.md +24 -0
- package/dist/method/skills/pitch/references/design-implementation.md +25 -0
- package/dist/method/skills/pitch/references/design-methods.md +45 -0
- package/dist/method/skills/pitch/references/design-thinking.md +28 -0
- package/dist/method/skills/pitch/references/story-frameworks.md +39 -0
- package/dist/method/skills/pitch/references/story.md +22 -0
- package/dist/method/skills/plan-sprint/SKILL.md +162 -0
- package/dist/method/skills/quick-lane/SKILL.md +143 -0
- package/dist/method/skills/resolve-merge-conflict/SKILL.md +83 -0
- package/dist/method/skills/review-story/SKILL.md +96 -0
- package/dist/method/skills/review-story/evals/cases.yaml +59 -0
- package/dist/method/skills/review-story/references/amend-story.md +16 -0
- package/dist/method/skills/review-story/references/export.md +20 -0
- package/dist/method/skills/review-story/references/format.md +33 -0
- package/dist/method/skills/review-story/references/free-review.md +22 -0
- package/dist/method/skills/review-story/references/judge.md +44 -0
- package/dist/method/skills/review-story/references/lens-adversarial.md +15 -0
- package/dist/method/skills/review-story/references/lens-edge-cases.md +24 -0
- package/dist/method/skills/review-story/references/lens-prose.md +11 -0
- package/dist/method/skills/review-story/references/lens-relevance.md +13 -0
- package/dist/method/skills/review-story/references/lens-security.md +10 -0
- package/dist/method/skills/review-story/references/lens-structure.md +16 -0
- package/dist/method/skills/review-story/references/lens-verification-gaps.md +13 -0
- package/dist/method/skills/review-story/references/pass-assertions.md +17 -0
- package/dist/method/skills/review-story/references/pass-removals.md +13 -0
- package/dist/method/skills/review-tests/SKILL.md +32 -0
- package/dist/method/skills/review-tests/references/check.md +25 -0
- package/dist/method/skills/review-tests/references/grid.md +27 -0
- package/dist/method/skills/round-table/SKILL.md +31 -0
- package/dist/method/skills/round-table/evals/cases.yaml +27 -0
- package/dist/method/skills/round-table/references/cast.md +14 -0
- package/dist/method/skills/round-table/references/gestures.md +24 -0
- package/dist/method/skills/round-table/references/guests.md +17 -0
- package/dist/method/skills/round-table/references/independence.md +21 -0
- package/dist/method/skills/round-table/references/rooms.md +29 -0
- package/dist/method/skills/round-table/references/three-views.md +17 -0
- package/dist/method/skills/round-table/references/turns.md +19 -0
- package/dist/method/skills/run-retrospective/SKILL.md +201 -0
- package/dist/method/skills/security-review-architecture/SKILL.md +129 -0
- package/dist/method/skills/security-review-architecture/assets/architecture-review-template.md +47 -0
- package/dist/method/skills/security-review-architecture/references/spec-review.md +48 -0
- package/dist/method/skills/setup-ci/SKILL.md +121 -0
- package/dist/method/skills/setup-ci/assets/github-actions.yml +52 -0
- package/dist/method/skills/setup-ci/assets/gitlab-ci.yml +34 -0
- package/dist/method/skills/split-into-stories/SKILL.md +205 -0
- package/dist/method/skills/split-into-stories/assets/epic.md.tmpl +31 -0
- package/dist/method/skills/split-into-stories/assets/story.md.tmpl +36 -0
- package/dist/method/skills/strategy/SKILL.md +44 -0
- package/dist/method/skills/strategy/assets/innovation-template.md +60 -0
- package/dist/method/skills/strategy/assets/problem-template.md +54 -0
- package/dist/method/skills/strategy/references/costs.md +28 -0
- package/dist/method/skills/strategy/references/gestures.md +24 -0
- package/dist/method/skills/strategy/references/innovate-frameworks.md +48 -0
- package/dist/method/skills/strategy/references/innovate.md +40 -0
- package/dist/method/skills/strategy/references/solve-methods.md +45 -0
- package/dist/method/skills/strategy/references/solve.md +35 -0
- package/dist/method/skills/test-idea/SKILL.md +29 -0
- package/dist/method/skills/test-idea/assets/forge-template.md +27 -0
- package/dist/method/skills/test-idea/assets/prfaq-template.md +33 -0
- package/dist/method/skills/test-idea/references/bets.md +14 -0
- package/dist/method/skills/test-idea/references/concept.md +24 -0
- package/dist/method/skills/test-idea/references/faq.md +34 -0
- package/dist/method/skills/test-idea/references/forge.md +36 -0
- package/dist/method/skills/test-idea/references/personas.md +23 -0
- package/dist/method/skills/test-idea/references/prfaq.md +33 -0
- package/dist/method/skills/test-idea/references/verdict.md +26 -0
- package/dist/method/skills/workshop/SKILL.md +40 -0
- package/dist/method/skills/workshop/references/analyze.md +36 -0
- package/dist/method/skills/workshop/references/create.md +45 -0
- package/dist/method/skills/workshop/references/customize.md +45 -0
- package/dist/method/skills/workshop/references/evaluate.md +44 -0
- package/dist/method/skills/workshop/references/rules.md +35 -0
- package/dist/method/skills/write-architecture/SKILL.md +233 -0
- package/dist/method/skills/write-architecture/assets/architecture-template.md +110 -0
- package/dist/method/skills/write-architecture/references/guard.md +40 -0
- package/dist/method/skills/write-architecture/references/self-check.md +47 -0
- package/dist/method/skills/write-brand/SKILL.md +36 -0
- package/dist/method/skills/write-brand/assets/brand-template.md +59 -0
- package/dist/method/skills/write-brand/assets/identity-page.html +141 -0
- package/dist/method/skills/write-brand/assets/identity-template.md +132 -0
- package/dist/method/skills/write-brand/references/identity.md +38 -0
- package/dist/method/skills/write-brand/references/platform.md +29 -0
- package/dist/method/skills/write-brand/references/rules.md +43 -0
- package/dist/method/skills/write-brief/SKILL.md +171 -0
- package/dist/method/skills/write-brief/assets/brief-template.md +87 -0
- package/dist/method/skills/write-brief/assets/research-note-template.md +43 -0
- package/dist/method/skills/write-brief/references/brief-checklist.md +37 -0
- package/dist/method/skills/write-content/SKILL.md +233 -0
- package/dist/method/skills/write-content/assets/campaign-template.md +94 -0
- package/dist/method/skills/write-content/assets/content-template.md +76 -0
- package/dist/method/skills/write-content/references/content-checklist.md +67 -0
- package/dist/method/skills/write-positioning/SKILL.md +218 -0
- package/dist/method/skills/write-positioning/assets/page-template.md +85 -0
- package/dist/method/skills/write-positioning/assets/positioning-template.md +79 -0
- package/dist/method/skills/write-positioning/references/positioning-checklist.md +44 -0
- package/dist/method/skills/write-positioning/references/seo-checklist.md +62 -0
- package/dist/method/skills/write-prd/SKILL.md +204 -0
- package/dist/method/skills/write-prd/assets/prd-template.md +121 -0
- package/dist/method/skills/write-prd/evals/cases.yaml +46 -0
- package/dist/method/skills/write-prd/references/prd-checklist.md +68 -0
- package/dist/method/skills/write-sales/SKILL.md +236 -0
- package/dist/method/skills/write-sales/assets/offer-template.md +93 -0
- package/dist/method/skills/write-sales/assets/sequence-template.md +110 -0
- package/dist/method/skills/write-sales/references/before-you-send.md +54 -0
- package/dist/method/skills/write-sales/references/sales-checklist.md +71 -0
- package/dist/method/skills/write-spec/SKILL.md +25 -0
- package/dist/method/skills/write-spec/assets/spec-template.md +59 -0
- package/dist/method/skills/write-spec/references/spec-guide.md +47 -0
- package/dist/method/skills/write-ux-spec/SKILL.md +191 -0
- package/dist/method/skills/write-ux-spec/assets/mockup-page.html +36 -0
- package/dist/method/skills/write-ux-spec/assets/ux-template.md +206 -0
- package/dist/method/skills/write-ux-spec/references/accessibility-check.md +74 -0
- package/dist/method/skills/write-ux-spec/references/mockups.md +71 -0
- package/dist/method/skills/write-ux-spec/references/tokens-and-sketches.md +83 -0
- package/dist/method/skills/write-ux-spec/references/ux-checklist.md +74 -0
- package/dist/product-root.js +21527 -0
- package/dist/rolldown-runtime.js +38 -0
- package/dist/webauthn-verify.js +1 -0
- package/dist/webauthn-verify2.js +107 -0
- package/dist/webauthn.js +9798 -0
- package/package.json +56 -14
- package/bin.mjs +0 -228
|
@@ -0,0 +1,1029 @@
|
|
|
1
|
+
# The checks of `npx agentplugged doctor` and of the first step of `init`.
|
|
2
|
+
#
|
|
3
|
+
# Everything the engine looks at on the machine is written here, as data. To add a check, add an
|
|
4
|
+
# entry: no code changes. Each check has
|
|
5
|
+
# - `detect`: what it looks for, among a closed set of detectors (node, command, forge-cli,
|
|
6
|
+
# forge-login, git-repo, git-config, ai-tool, keychain, presence, port, memory);
|
|
7
|
+
# - `level`: `fail` (blocking) or `warn` (to improve) when it is not ok. A program found outside
|
|
8
|
+
# the PATH is always a `warn`: the engine uses it;
|
|
9
|
+
# - `say`: one sentence per outcome, in English and French. {placeholders} are the facts the
|
|
10
|
+
# detector found (version, path, dir, name, min, cli, host, forge, port, memory, needed…);
|
|
11
|
+
# - `fix`: how to repair it, by outcome. `options` are commands as arrays of arguments (never a
|
|
12
|
+
# shell line), the first whose `when` holds on this machine (platform, a package manager really
|
|
13
|
+
# present, the forge) is shown and, after the creator says yes, run. `ask` lists what the creator
|
|
14
|
+
# types first. `interactive` marks what needs the terminal or a browser (never run from the chat).
|
|
15
|
+
# `steps` are what to do by hand, in order, when no option fits. A value found on the machine goes
|
|
16
|
+
# into a command only when it holds nothing a shell or a script would read; a value typed by the
|
|
17
|
+
# creator must only be used as an argument of its own, never inside a script.
|
|
18
|
+
# The traps of a machine and the failures that reveal them:
|
|
19
|
+
# - `weak: true` marks a check whose finding is a lead, never the cause by itself (little memory
|
|
20
|
+
# does not prove a program was killed for lack of it): the diagnosis then says « a lead ».
|
|
21
|
+
# - `routine: false` leaves a check out of the usual report (administrator rights, line endings,
|
|
22
|
+
# proxy are facts, not problems, until something fails); a failure that points to it reads it.
|
|
23
|
+
# - `signatures` say what a failure looks like (an error code of the engine, an exit code, a piece
|
|
24
|
+
# of the message, matched whole and case-insensitively) and which checks to read on the machine
|
|
25
|
+
# to explain it. `extract` takes a program's name or a port out of the message and looks at it
|
|
26
|
+
# with the templates `seen_tool` and `seen_port`. `say` is what the failure shows by itself;
|
|
27
|
+
# `assumed` is what is only supposed, and is said so. A sentence never states a cause the
|
|
28
|
+
# machine did not show.
|
|
29
|
+
# The checks that come from the stack (tools, ports, memory in the `prerequisites` of the
|
|
30
|
+
# architecture) use the `templates` below and are never repaired by the engine: steps only.
|
|
31
|
+
|
|
32
|
+
format: 1
|
|
33
|
+
|
|
34
|
+
groups:
|
|
35
|
+
- id: machine
|
|
36
|
+
title: { en: "Your machine", fr: "Ta machine" }
|
|
37
|
+
- id: git
|
|
38
|
+
title: { en: "Git", fr: "Git" }
|
|
39
|
+
- id: forge
|
|
40
|
+
title: { en: "Forge (GitHub or GitLab)", fr: "Forge (GitHub ou GitLab)" }
|
|
41
|
+
- id: tools
|
|
42
|
+
title: { en: "AI tools", fr: "Outils IA" }
|
|
43
|
+
- id: keys
|
|
44
|
+
title: { en: "Keys and presence", fr: "Clés et présence" }
|
|
45
|
+
- id: prerequisites
|
|
46
|
+
title: { en: "What your stack asks for", fr: "Ce que demande ta stack" }
|
|
47
|
+
|
|
48
|
+
checks:
|
|
49
|
+
- id: node
|
|
50
|
+
group: machine
|
|
51
|
+
level: fail
|
|
52
|
+
detect: { kind: node, min: "24.0.0" }
|
|
53
|
+
say:
|
|
54
|
+
ok:
|
|
55
|
+
en: "Node.js {version}"
|
|
56
|
+
fr: "Node.js {version}"
|
|
57
|
+
old:
|
|
58
|
+
en: "Node.js {version} is too old: AgentPlugged needs {min} or later"
|
|
59
|
+
fr: "Node.js {version} est trop ancien : AgentPlugged demande {min} ou plus récent"
|
|
60
|
+
fix:
|
|
61
|
+
- steps:
|
|
62
|
+
en:
|
|
63
|
+
- "Install Node.js {min} or later (https://nodejs.org, or your package manager)."
|
|
64
|
+
- "Open a new terminal and run: npx agentplugged doctor"
|
|
65
|
+
fr:
|
|
66
|
+
- "Installe Node.js {min} ou plus récent (https://nodejs.org, ou ton gestionnaire de paquets)."
|
|
67
|
+
- "Ouvre un nouveau terminal et lance : npx agentplugged doctor"
|
|
68
|
+
|
|
69
|
+
- id: git.installed
|
|
70
|
+
group: git
|
|
71
|
+
level: fail
|
|
72
|
+
detect:
|
|
73
|
+
kind: command
|
|
74
|
+
names: [git]
|
|
75
|
+
min: "2.25.0"
|
|
76
|
+
also_in: &git_dirs
|
|
77
|
+
- { env: ProgramFiles, path: [Git, cmd] }
|
|
78
|
+
- { env: "ProgramFiles(x86)", path: [Git, cmd] }
|
|
79
|
+
- { env: LOCALAPPDATA, path: [Programs, Git, cmd] }
|
|
80
|
+
- { root: true, path: [opt, homebrew, bin] }
|
|
81
|
+
- { root: true, path: [usr, local, bin] }
|
|
82
|
+
say:
|
|
83
|
+
ok:
|
|
84
|
+
en: "Git {version}"
|
|
85
|
+
fr: "Git {version}"
|
|
86
|
+
missing:
|
|
87
|
+
en: "Git was not found (not in your PATH, nor in its usual folders): the journal and the stories need it"
|
|
88
|
+
fr: "Git est introuvable (ni dans ton PATH, ni dans ses dossiers habituels) : le journal et les stories en ont besoin"
|
|
89
|
+
old:
|
|
90
|
+
en: "Git {version} is too old (2.25 or later is needed)"
|
|
91
|
+
fr: "Git {version} est trop ancien (2.25 ou plus récent est nécessaire)"
|
|
92
|
+
unreadable:
|
|
93
|
+
en: "Git is installed ({path}) but its version cannot be read"
|
|
94
|
+
fr: "Git est installé ({path}) mais sa version ne peut pas être lue"
|
|
95
|
+
off_path:
|
|
96
|
+
en: "Git {version} found in {dir}, which is not on your PATH: the engine may not find it"
|
|
97
|
+
fr: "Git {version} trouvé dans {dir}, qui n'est pas dans ton PATH : le moteur risque de ne pas le trouver"
|
|
98
|
+
stale:
|
|
99
|
+
en: "Git {version} is installed in {dir} and your system knows that folder, but this program was opened before: it does not see it yet"
|
|
100
|
+
fr: "Git {version} est installé dans {dir} et ton système connaît ce dossier, mais ce programme a été ouvert avant : il ne le voit pas encore"
|
|
101
|
+
fix:
|
|
102
|
+
- outcomes: [missing, old]
|
|
103
|
+
recommended: true
|
|
104
|
+
options:
|
|
105
|
+
- when: { platform: win32, manager: winget }
|
|
106
|
+
commands:
|
|
107
|
+
- [winget, install, --id, Git.Git, -e, --source, winget, --accept-source-agreements, --accept-package-agreements]
|
|
108
|
+
- when: { platform: darwin, manager: brew }
|
|
109
|
+
commands:
|
|
110
|
+
- [brew, install, git]
|
|
111
|
+
- when: { platform: darwin }
|
|
112
|
+
interactive: true
|
|
113
|
+
commands:
|
|
114
|
+
- [xcode-select, --install]
|
|
115
|
+
- when: { platform: linux, manager: apt-get }
|
|
116
|
+
interactive: true
|
|
117
|
+
commands:
|
|
118
|
+
- [sudo, apt-get, install, -y, git]
|
|
119
|
+
- when: { platform: linux, manager: dnf }
|
|
120
|
+
interactive: true
|
|
121
|
+
commands:
|
|
122
|
+
- [sudo, dnf, install, -y, git]
|
|
123
|
+
- when: { platform: linux, manager: pacman }
|
|
124
|
+
interactive: true
|
|
125
|
+
commands:
|
|
126
|
+
- [sudo, pacman, -S, --noconfirm, git]
|
|
127
|
+
steps:
|
|
128
|
+
en:
|
|
129
|
+
- "Install Git from https://git-scm.com/downloads."
|
|
130
|
+
- "Open a new terminal and run: npx agentplugged doctor"
|
|
131
|
+
fr:
|
|
132
|
+
- "Installe Git depuis https://git-scm.com/downloads."
|
|
133
|
+
- "Ouvre un nouveau terminal et lance : npx agentplugged doctor"
|
|
134
|
+
- outcomes: [off_path, unreadable]
|
|
135
|
+
steps:
|
|
136
|
+
en:
|
|
137
|
+
- "Add {dir} to your PATH, or close and reopen your editor and your terminal."
|
|
138
|
+
fr:
|
|
139
|
+
- "Ajoute {dir} à ton PATH, ou ferme puis rouvre ton éditeur et ton terminal."
|
|
140
|
+
- outcomes: [stale]
|
|
141
|
+
steps:
|
|
142
|
+
en:
|
|
143
|
+
- "Close and reopen your editor and your terminal: they then receive the PATH your system already has."
|
|
144
|
+
fr:
|
|
145
|
+
- "Ferme puis rouvre ton éditeur et ton terminal : ils recevront alors le PATH que ton système a déjà."
|
|
146
|
+
|
|
147
|
+
- id: git.repo
|
|
148
|
+
group: git
|
|
149
|
+
level: warn
|
|
150
|
+
detect: { kind: git-repo }
|
|
151
|
+
say:
|
|
152
|
+
ok:
|
|
153
|
+
en: "This folder is a Git repository"
|
|
154
|
+
fr: "Ce dossier est un dépôt Git"
|
|
155
|
+
missing:
|
|
156
|
+
en: "This folder is not a Git repository yet: the journal and the stories need one"
|
|
157
|
+
fr: "Ce dossier n'est pas encore un dépôt Git : le journal et les stories en ont besoin"
|
|
158
|
+
fix:
|
|
159
|
+
- recommended: true
|
|
160
|
+
unattended: true
|
|
161
|
+
options:
|
|
162
|
+
- commands:
|
|
163
|
+
- [git, init]
|
|
164
|
+
steps:
|
|
165
|
+
en:
|
|
166
|
+
- "In this folder, run: git init"
|
|
167
|
+
fr:
|
|
168
|
+
- "Dans ce dossier, lance : git init"
|
|
169
|
+
|
|
170
|
+
- id: git.identity
|
|
171
|
+
group: git
|
|
172
|
+
level: warn
|
|
173
|
+
detect: { kind: git-config, keys: [user.name, user.email] }
|
|
174
|
+
say:
|
|
175
|
+
ok:
|
|
176
|
+
en: "Git signs your commits as {git_name} <{git_email}>"
|
|
177
|
+
fr: "Git signe tes commits « {git_name} <{git_email}> »"
|
|
178
|
+
unset:
|
|
179
|
+
en: "Git does not know your name and e-mail yet ({missing}): your first commit would be refused"
|
|
180
|
+
fr: "Git ne connaît pas encore ton nom et ton e-mail ({missing}) : ton premier commit serait refusé"
|
|
181
|
+
fix:
|
|
182
|
+
- recommended: true
|
|
183
|
+
options:
|
|
184
|
+
- ask:
|
|
185
|
+
- name: user_name
|
|
186
|
+
default: "{git_name}"
|
|
187
|
+
say: { en: "Your name, as it will sign your commits", fr: "Ton nom, tel qu'il signera tes commits" }
|
|
188
|
+
- name: user_email
|
|
189
|
+
type: email
|
|
190
|
+
default: "{git_email}"
|
|
191
|
+
say: { en: "Your e-mail", fr: "Ton e-mail" }
|
|
192
|
+
commands:
|
|
193
|
+
- [git, config, --global, user.name, "{user_name}"]
|
|
194
|
+
- [git, config, --global, user.email, "{user_email}"]
|
|
195
|
+
steps:
|
|
196
|
+
en:
|
|
197
|
+
- "Run: git config --global user.name \"Your Name\""
|
|
198
|
+
- "Run: git config --global user.email you@example.com"
|
|
199
|
+
fr:
|
|
200
|
+
- "Lance : git config --global user.name \"Ton Nom\""
|
|
201
|
+
- "Lance : git config --global user.email toi@exemple.com"
|
|
202
|
+
|
|
203
|
+
- id: forge.cli
|
|
204
|
+
group: forge
|
|
205
|
+
level: warn
|
|
206
|
+
detect:
|
|
207
|
+
kind: forge-cli
|
|
208
|
+
also_in: &forge_dirs
|
|
209
|
+
- { for: gh, env: ProgramFiles, path: [GitHub CLI] }
|
|
210
|
+
- { for: gh, env: "ProgramFiles(x86)", path: [GitHub CLI] }
|
|
211
|
+
- { for: gh, env: LOCALAPPDATA, path: [Programs, GitHub CLI] }
|
|
212
|
+
- { for: gh, env: LOCALAPPDATA, path: [Microsoft, WinGet, Links] }
|
|
213
|
+
- { for: glab, env: ProgramFiles, path: [glab] }
|
|
214
|
+
- { for: glab, env: LOCALAPPDATA, path: [Programs, glab] }
|
|
215
|
+
- { for: glab, env: LOCALAPPDATA, path: [Microsoft, WinGet, Links] }
|
|
216
|
+
- { root: true, path: [opt, homebrew, bin] }
|
|
217
|
+
- { root: true, path: [usr, local, bin] }
|
|
218
|
+
say:
|
|
219
|
+
ok:
|
|
220
|
+
en: "{cli} {version}, the {forge_name} command-line tool"
|
|
221
|
+
fr: "{cli} {version}, l'outil en ligne de commande de {forge_name}"
|
|
222
|
+
missing:
|
|
223
|
+
en: "{cli} was not found (not in your PATH, nor in its usual folders): pull requests on {forge_name} need it (not before your first delivery)"
|
|
224
|
+
fr: "{cli} est introuvable (ni dans ton PATH, ni dans ses dossiers habituels) : les pull requests sur {forge_name} en ont besoin (pas avant ta première livraison)"
|
|
225
|
+
off_path:
|
|
226
|
+
en: "{cli} {version} is installed in {dir}, which is not on your PATH: the engine finds it, but an editor opened before its installation may not"
|
|
227
|
+
fr: "{cli} {version} est installé dans {dir}, qui n'est pas dans ton PATH : le moteur le trouve, mais un éditeur ouvert avant son installation peut ne pas le voir"
|
|
228
|
+
stale:
|
|
229
|
+
en: "{cli} {version} is installed in {dir} and your system knows that folder, but this program was opened before: it does not see it yet"
|
|
230
|
+
fr: "{cli} {version} est installé dans {dir} et ton système connaît ce dossier, mais ce programme a été ouvert avant : il ne le voit pas encore"
|
|
231
|
+
unreadable:
|
|
232
|
+
en: "{cli} is installed ({path}) but its version cannot be read"
|
|
233
|
+
fr: "{cli} est installé ({path}) mais sa version ne peut pas être lue"
|
|
234
|
+
fix:
|
|
235
|
+
- outcomes: [stale]
|
|
236
|
+
steps:
|
|
237
|
+
en:
|
|
238
|
+
- "Close and reopen your editor and your terminal: they then receive the PATH your system already has, and see {cli}."
|
|
239
|
+
fr:
|
|
240
|
+
- "Ferme puis rouvre ton éditeur et ton terminal : ils recevront le PATH que ton système a déjà, et verront {cli}."
|
|
241
|
+
- outcomes: [missing]
|
|
242
|
+
options:
|
|
243
|
+
- when: { platform: win32, manager: winget, forge: github }
|
|
244
|
+
commands:
|
|
245
|
+
- [winget, install, --id, GitHub.cli, -e, --source, winget, --accept-source-agreements, --accept-package-agreements]
|
|
246
|
+
- when: { platform: win32, manager: winget, forge: gitlab }
|
|
247
|
+
commands:
|
|
248
|
+
- [winget, install, --id, GLab.GLab, -e, --source, winget, --accept-source-agreements, --accept-package-agreements]
|
|
249
|
+
- when: { platform: darwin, manager: brew, forge: github }
|
|
250
|
+
commands:
|
|
251
|
+
- [brew, install, gh]
|
|
252
|
+
- when: { platform: darwin, manager: brew, forge: gitlab }
|
|
253
|
+
commands:
|
|
254
|
+
- [brew, install, glab]
|
|
255
|
+
- when: { platform: linux, manager: apt-get, forge: github }
|
|
256
|
+
interactive: true
|
|
257
|
+
commands:
|
|
258
|
+
- [sudo, apt-get, install, -y, gh]
|
|
259
|
+
- when: { platform: linux, manager: dnf, forge: github }
|
|
260
|
+
interactive: true
|
|
261
|
+
commands:
|
|
262
|
+
- [sudo, dnf, install, -y, gh]
|
|
263
|
+
- when: { platform: linux, manager: pacman, forge: github }
|
|
264
|
+
interactive: true
|
|
265
|
+
commands:
|
|
266
|
+
- [sudo, pacman, -S, --noconfirm, github-cli]
|
|
267
|
+
- when: { platform: linux, manager: pacman, forge: gitlab }
|
|
268
|
+
interactive: true
|
|
269
|
+
commands:
|
|
270
|
+
- [sudo, pacman, -S, --noconfirm, glab]
|
|
271
|
+
steps:
|
|
272
|
+
en:
|
|
273
|
+
- "Install {cli} from its official page (https://cli.github.com for gh, https://gitlab.com/gitlab-org/cli for glab)."
|
|
274
|
+
- "Open a new terminal and run: npx agentplugged doctor"
|
|
275
|
+
fr:
|
|
276
|
+
- "Installe {cli} depuis sa page officielle (https://cli.github.com pour gh, https://gitlab.com/gitlab-org/cli pour glab)."
|
|
277
|
+
- "Ouvre un nouveau terminal et lance : npx agentplugged doctor"
|
|
278
|
+
- outcomes: [off_path, unreadable]
|
|
279
|
+
recommended: true
|
|
280
|
+
options:
|
|
281
|
+
- when: { platform: win32 }
|
|
282
|
+
commands:
|
|
283
|
+
- - powershell
|
|
284
|
+
- -NoProfile
|
|
285
|
+
- -Command
|
|
286
|
+
- "$p = [Environment]::GetEnvironmentVariable('Path','User'); if (($p -split ';') -notcontains '{dir}') { [Environment]::SetEnvironmentVariable('Path', ($p.TrimEnd(';') + ';{dir}'), 'User') }"
|
|
287
|
+
done:
|
|
288
|
+
en: "Done: {dir} is on the PATH of your account. Windows already open do not see it yet: close and reopen your editor and your terminal."
|
|
289
|
+
fr: "C'est fait : {dir} est dans le PATH de ton compte. Les fenêtres déjà ouvertes ne le voient pas encore : ferme puis rouvre ton éditeur et ton terminal."
|
|
290
|
+
steps:
|
|
291
|
+
en:
|
|
292
|
+
- "Close and reopen your editor and your terminal: they then see {cli}."
|
|
293
|
+
- "If they still do not, add {dir} to your PATH."
|
|
294
|
+
fr:
|
|
295
|
+
- "Ferme puis rouvre ton éditeur et ton terminal : ils verront alors {cli}."
|
|
296
|
+
- "S'ils ne le voient toujours pas, ajoute {dir} à ton PATH."
|
|
297
|
+
|
|
298
|
+
- id: forge.login
|
|
299
|
+
group: forge
|
|
300
|
+
level: warn
|
|
301
|
+
detect:
|
|
302
|
+
kind: forge-login
|
|
303
|
+
also_in: *forge_dirs
|
|
304
|
+
say:
|
|
305
|
+
ok:
|
|
306
|
+
en: "{cli} is connected to {host}"
|
|
307
|
+
fr: "{cli} est connecté à {host}"
|
|
308
|
+
unreadable:
|
|
309
|
+
en: "Cannot tell whether {cli} is connected to {host} (no network?)"
|
|
310
|
+
fr: "Impossible de savoir si {cli} est connecté à {host} (pas de réseau ?)"
|
|
311
|
+
logged_out:
|
|
312
|
+
en: "{cli} is installed but not connected to {host}: pull requests need it (not before your first delivery)"
|
|
313
|
+
fr: "{cli} est installé mais pas connecté à {host} : les pull requests en ont besoin (pas avant ta première livraison)"
|
|
314
|
+
fix:
|
|
315
|
+
- outcomes: [logged_out]
|
|
316
|
+
options:
|
|
317
|
+
- interactive: true
|
|
318
|
+
commands:
|
|
319
|
+
- ["{cli}", auth, login, --hostname, "{host}", --web]
|
|
320
|
+
steps:
|
|
321
|
+
en:
|
|
322
|
+
- "Run: {cli} auth login --hostname {host}"
|
|
323
|
+
- "Choose to log in with a web browser and follow the page that opens. AgentPlugged never sees your token."
|
|
324
|
+
fr:
|
|
325
|
+
- "Lance : {cli} auth login --hostname {host}"
|
|
326
|
+
- "Choisis de te connecter avec un navigateur web et suis la page qui s'ouvre. AgentPlugged ne voit jamais ton jeton."
|
|
327
|
+
|
|
328
|
+
- id: tools.any
|
|
329
|
+
group: tools
|
|
330
|
+
level: warn
|
|
331
|
+
detect: { kind: ai-tool, tool: any }
|
|
332
|
+
say:
|
|
333
|
+
ok:
|
|
334
|
+
en: "AI tools found: {names}"
|
|
335
|
+
fr: "Outils IA trouvés : {names}"
|
|
336
|
+
missing:
|
|
337
|
+
en: "No AI tool found (Claude Code, Codex, Antigravity CLI or Cursor): AgentPlugged installs anyway, but you need one to talk to the team"
|
|
338
|
+
fr: "Aucun outil IA trouvé (Claude Code, Codex, Antigravity CLI ou Cursor) : AgentPlugged s'installe quand même, mais il t'en faut un pour parler à l'équipe"
|
|
339
|
+
fix:
|
|
340
|
+
- steps:
|
|
341
|
+
en:
|
|
342
|
+
- "Install the AI tool you prefer from its official site (Claude Code, Codex, Antigravity CLI or Cursor)."
|
|
343
|
+
- "Then run: npx agentplugged sync"
|
|
344
|
+
fr:
|
|
345
|
+
- "Installe l'outil IA de ton choix depuis son site officiel (Claude Code, Codex, Antigravity CLI ou Cursor)."
|
|
346
|
+
- "Puis lance : npx agentplugged sync"
|
|
347
|
+
|
|
348
|
+
- id: tools.claude-code
|
|
349
|
+
group: tools
|
|
350
|
+
level: warn
|
|
351
|
+
detect: { kind: ai-tool, tool: claude-code }
|
|
352
|
+
say:
|
|
353
|
+
ok:
|
|
354
|
+
en: "{name} {version}"
|
|
355
|
+
fr: "{name} {version}"
|
|
356
|
+
missing:
|
|
357
|
+
en: "{name} is targeted by this product but was not found on this machine"
|
|
358
|
+
fr: "{name} est ciblé par ce produit mais il est introuvable sur cette machine"
|
|
359
|
+
off_path:
|
|
360
|
+
en: "{name} {version} found in {dir}, which is not on your PATH: the engine finds it, an editor opened earlier may not"
|
|
361
|
+
fr: "{name} {version} trouvé dans {dir}, qui n'est pas dans ton PATH : le moteur le trouve, un éditeur ouvert avant peut ne pas le voir"
|
|
362
|
+
stale:
|
|
363
|
+
en: "{name} {version} is in {dir}, a folder your system knows but this program does not have yet: it was opened before"
|
|
364
|
+
fr: "{name} {version} est dans {dir}, un dossier que ton système connaît mais que ce programme n'a pas encore : il a été ouvert avant"
|
|
365
|
+
fix: &tool_fix
|
|
366
|
+
- outcomes: [missing]
|
|
367
|
+
steps:
|
|
368
|
+
en:
|
|
369
|
+
- "Install it from its official site, or take it off the list: the `tools` of .agentplugged/method.yaml."
|
|
370
|
+
fr:
|
|
371
|
+
- "Installe-le depuis son site officiel, ou retire-le de la liste : le `tools` de .agentplugged/method.yaml."
|
|
372
|
+
- outcomes: [off_path]
|
|
373
|
+
steps:
|
|
374
|
+
en:
|
|
375
|
+
- "Close and reopen your editor and your terminal, or add {dir} to your PATH."
|
|
376
|
+
fr:
|
|
377
|
+
- "Ferme puis rouvre ton éditeur et ton terminal, ou ajoute {dir} à ton PATH."
|
|
378
|
+
- outcomes: [stale]
|
|
379
|
+
steps:
|
|
380
|
+
en:
|
|
381
|
+
- "Close and reopen your editor and your terminal: they then receive the PATH your system already has."
|
|
382
|
+
fr:
|
|
383
|
+
- "Ferme puis rouvre ton éditeur et ton terminal : ils recevront le PATH que ton système a déjà."
|
|
384
|
+
|
|
385
|
+
- id: tools.codex
|
|
386
|
+
group: tools
|
|
387
|
+
level: warn
|
|
388
|
+
detect: { kind: ai-tool, tool: codex }
|
|
389
|
+
say:
|
|
390
|
+
ok:
|
|
391
|
+
en: "{name} {version}"
|
|
392
|
+
fr: "{name} {version}"
|
|
393
|
+
missing:
|
|
394
|
+
en: "{name} is targeted by this product but was not found on this machine"
|
|
395
|
+
fr: "{name} est ciblé par ce produit mais il est introuvable sur cette machine"
|
|
396
|
+
off_path:
|
|
397
|
+
en: "{name} {version} found in {dir}, which is not on your PATH: the engine finds it, an editor opened earlier may not"
|
|
398
|
+
fr: "{name} {version} trouvé dans {dir}, qui n'est pas dans ton PATH : le moteur le trouve, un éditeur ouvert avant peut ne pas le voir"
|
|
399
|
+
stale:
|
|
400
|
+
en: "{name} {version} is in {dir}, a folder your system knows but this program does not have yet: it was opened before"
|
|
401
|
+
fr: "{name} {version} est dans {dir}, un dossier que ton système connaît mais que ce programme n'a pas encore : il a été ouvert avant"
|
|
402
|
+
fix: *tool_fix
|
|
403
|
+
|
|
404
|
+
- id: tools.antigravity
|
|
405
|
+
group: tools
|
|
406
|
+
level: warn
|
|
407
|
+
detect: { kind: ai-tool, tool: antigravity }
|
|
408
|
+
say:
|
|
409
|
+
ok:
|
|
410
|
+
en: "{name} {version}"
|
|
411
|
+
fr: "{name} {version}"
|
|
412
|
+
missing:
|
|
413
|
+
en: "{name} is targeted by this product but was not found on this machine"
|
|
414
|
+
fr: "{name} est ciblé par ce produit mais il est introuvable sur cette machine"
|
|
415
|
+
off_path:
|
|
416
|
+
en: "{name} {version} found in {dir}, which is not on your PATH: the engine finds it, an editor opened earlier may not"
|
|
417
|
+
fr: "{name} {version} trouvé dans {dir}, qui n'est pas dans ton PATH : le moteur le trouve, un éditeur ouvert avant peut ne pas le voir"
|
|
418
|
+
stale:
|
|
419
|
+
en: "{name} {version} is in {dir}, a folder your system knows but this program does not have yet: it was opened before"
|
|
420
|
+
fr: "{name} {version} est dans {dir}, un dossier que ton système connaît mais que ce programme n'a pas encore : il a été ouvert avant"
|
|
421
|
+
fix: *tool_fix
|
|
422
|
+
|
|
423
|
+
- id: tools.cursor
|
|
424
|
+
group: tools
|
|
425
|
+
level: warn
|
|
426
|
+
detect: { kind: ai-tool, tool: cursor }
|
|
427
|
+
say:
|
|
428
|
+
ok:
|
|
429
|
+
en: "{name} {version}"
|
|
430
|
+
fr: "{name} {version}"
|
|
431
|
+
missing:
|
|
432
|
+
en: "{name} is targeted by this product but was not found on this machine"
|
|
433
|
+
fr: "{name} est ciblé par ce produit mais il est introuvable sur cette machine"
|
|
434
|
+
off_path:
|
|
435
|
+
en: "{name} {version} found in {dir}, which is not on your PATH: the engine finds it, an editor opened earlier may not"
|
|
436
|
+
fr: "{name} {version} trouvé dans {dir}, qui n'est pas dans ton PATH : le moteur le trouve, un éditeur ouvert avant peut ne pas le voir"
|
|
437
|
+
stale:
|
|
438
|
+
en: "{name} {version} is in {dir}, a folder your system knows but this program does not have yet: it was opened before"
|
|
439
|
+
fr: "{name} {version} est dans {dir}, un dossier que ton système connaît mais que ce programme n'a pas encore : il a été ouvert avant"
|
|
440
|
+
fix: *tool_fix
|
|
441
|
+
|
|
442
|
+
- id: keychain
|
|
443
|
+
group: keys
|
|
444
|
+
level: warn
|
|
445
|
+
detect: { kind: keychain }
|
|
446
|
+
say:
|
|
447
|
+
ok:
|
|
448
|
+
en: "System keychain available"
|
|
449
|
+
fr: "Trousseau du système disponible"
|
|
450
|
+
unavailable:
|
|
451
|
+
en: "The system keychain does not answer: your keys cannot be stored on this machine"
|
|
452
|
+
fr: "Le trousseau du système ne répond pas : tes clés ne peuvent pas être gardées sur cette machine"
|
|
453
|
+
fix:
|
|
454
|
+
- steps:
|
|
455
|
+
en:
|
|
456
|
+
- "On Linux, install and unlock a secret service (GNOME Keyring or KWallet), then run: npx agentplugged doctor"
|
|
457
|
+
- "On Windows or macOS, the system keychain is part of the system: restart the session and try again."
|
|
458
|
+
fr:
|
|
459
|
+
- "Sous Linux, installe et déverrouille un service de secrets (GNOME Keyring ou KWallet), puis lance : npx agentplugged doctor"
|
|
460
|
+
- "Sous Windows ou macOS, le trousseau fait partie du système : redémarre la session et réessaie."
|
|
461
|
+
|
|
462
|
+
- id: presence
|
|
463
|
+
group: keys
|
|
464
|
+
level: warn
|
|
465
|
+
platforms: [win32]
|
|
466
|
+
detect: { kind: presence }
|
|
467
|
+
say:
|
|
468
|
+
ok:
|
|
469
|
+
en: "Windows Hello is available"
|
|
470
|
+
fr: "Windows Hello est disponible"
|
|
471
|
+
unavailable:
|
|
472
|
+
en: "Windows Hello is not available (optional: your validations keep the \"locale\" assurance)"
|
|
473
|
+
fr: "Windows Hello n'est pas disponible (facultatif : tes validations gardent l'assurance « locale »)"
|
|
474
|
+
|
|
475
|
+
- id: path.stale
|
|
476
|
+
group: machine
|
|
477
|
+
level: warn
|
|
478
|
+
detect: { kind: path-stale }
|
|
479
|
+
say:
|
|
480
|
+
ok:
|
|
481
|
+
en: "This program sees the same PATH as your system"
|
|
482
|
+
fr: "Ce programme voit le même PATH que ton système"
|
|
483
|
+
stale:
|
|
484
|
+
en: "Your system has {count} folder(s) in its PATH that this program does not have yet (for example {first}): it was opened before they were added"
|
|
485
|
+
fr: "Ton système a {count} dossier(s) dans son PATH que ce programme n'a pas encore (par exemple {first}) : il a été ouvert avant leur ajout"
|
|
486
|
+
fix:
|
|
487
|
+
- steps:
|
|
488
|
+
en:
|
|
489
|
+
- "Close and reopen your editor and your terminal: they then receive the PATH your system already has."
|
|
490
|
+
fr:
|
|
491
|
+
- "Ferme puis rouvre ton éditeur et ton terminal : ils recevront le PATH que ton système a déjà."
|
|
492
|
+
|
|
493
|
+
- id: docker.daemon
|
|
494
|
+
group: machine
|
|
495
|
+
level: warn
|
|
496
|
+
routine: false
|
|
497
|
+
with_tool: docker
|
|
498
|
+
detect:
|
|
499
|
+
kind: docker-daemon
|
|
500
|
+
also_in: &docker_dirs
|
|
501
|
+
- { env: ProgramFiles, path: [Docker, Docker, resources, bin] }
|
|
502
|
+
- { home: true, path: [.docker, bin] }
|
|
503
|
+
- { root: true, path: [opt, homebrew, bin] }
|
|
504
|
+
- { root: true, path: [usr, local, bin] }
|
|
505
|
+
say:
|
|
506
|
+
ok:
|
|
507
|
+
en: "Docker {version} answers"
|
|
508
|
+
fr: "Docker {version} répond"
|
|
509
|
+
stopped:
|
|
510
|
+
en: "Docker is installed ({path}) but its engine does not answer (docker info fails)"
|
|
511
|
+
fr: "Docker est installé ({path}) mais son moteur ne répond pas (docker info échoue)"
|
|
512
|
+
denied:
|
|
513
|
+
en: "Docker is installed ({path}) but refuses access to this account"
|
|
514
|
+
fr: "Docker est installé ({path}) mais refuse l'accès à ce compte"
|
|
515
|
+
unreadable:
|
|
516
|
+
en: "Docker is installed ({path}) but did not answer in time"
|
|
517
|
+
fr: "Docker est installé ({path}) mais n'a pas répondu à temps"
|
|
518
|
+
fix:
|
|
519
|
+
- outcomes: [stopped, unreadable]
|
|
520
|
+
steps:
|
|
521
|
+
en:
|
|
522
|
+
- "Open Docker Desktop (or start the Docker service) and wait until it says it is running."
|
|
523
|
+
- "Then run: npx agentplugged doctor"
|
|
524
|
+
fr:
|
|
525
|
+
- "Ouvre Docker Desktop (ou démarre le service Docker) et attends qu'il dise qu'il tourne."
|
|
526
|
+
- "Puis lance : npx agentplugged doctor"
|
|
527
|
+
- outcomes: [denied]
|
|
528
|
+
steps:
|
|
529
|
+
en:
|
|
530
|
+
- "On Linux, add your account to the docker group (sudo usermod -aG docker $USER), then log out and in."
|
|
531
|
+
fr:
|
|
532
|
+
- "Sous Linux, ajoute ton compte au groupe docker (sudo usermod -aG docker $USER), puis déconnecte-toi et reconnecte-toi."
|
|
533
|
+
|
|
534
|
+
# Generic: a heavy start (a build, a database) often wants a few gigabytes; the number is a rule of thumb.
|
|
535
|
+
- id: docker.memory
|
|
536
|
+
group: machine
|
|
537
|
+
level: warn
|
|
538
|
+
weak: true
|
|
539
|
+
routine: false
|
|
540
|
+
with_tool: docker
|
|
541
|
+
detect: { kind: docker-memory, min_gb: 4, also_in: *docker_dirs }
|
|
542
|
+
say:
|
|
543
|
+
ok:
|
|
544
|
+
en: "Docker has {memory} GB of memory"
|
|
545
|
+
fr: "Docker a {memory} Go de mémoire"
|
|
546
|
+
low:
|
|
547
|
+
en: "Docker only has {memory} GB of memory, under the {needed} GB that heavy starts often want"
|
|
548
|
+
fr: "Docker n'a que {memory} Go de mémoire, sous les {needed} Go que les démarrages lourds demandent souvent"
|
|
549
|
+
unreadable:
|
|
550
|
+
en: "Docker answers but the memory it was given cannot be read"
|
|
551
|
+
fr: "Docker répond mais la mémoire qu'on lui a donnée ne peut pas être lue"
|
|
552
|
+
fix:
|
|
553
|
+
- outcomes: [low]
|
|
554
|
+
steps:
|
|
555
|
+
en:
|
|
556
|
+
- "In Docker Desktop, open Settings > Resources and give it more memory (with WSL 2: memory= in the .wslconfig file of your account), then restart Docker."
|
|
557
|
+
fr:
|
|
558
|
+
- "Dans Docker Desktop, ouvre Settings > Resources et donne-lui plus de mémoire (avec WSL 2 : memory= dans le fichier .wslconfig de ton compte), puis redémarre Docker."
|
|
559
|
+
|
|
560
|
+
- id: machine.memory
|
|
561
|
+
group: machine
|
|
562
|
+
routine: false
|
|
563
|
+
level: warn
|
|
564
|
+
weak: true
|
|
565
|
+
detect: { kind: memory, min_gb: 4 }
|
|
566
|
+
say:
|
|
567
|
+
ok:
|
|
568
|
+
en: "{memory} GB of memory on this machine"
|
|
569
|
+
fr: "{memory} Go de mémoire sur cette machine"
|
|
570
|
+
low:
|
|
571
|
+
en: "Only {memory} GB of memory on this machine"
|
|
572
|
+
fr: "Seulement {memory} Go de mémoire sur cette machine"
|
|
573
|
+
fix:
|
|
574
|
+
- steps:
|
|
575
|
+
en:
|
|
576
|
+
- "Close other programs before you start the product, or use a machine with more memory."
|
|
577
|
+
fr:
|
|
578
|
+
- "Ferme d'autres programmes avant de lancer le produit, ou utilise une machine avec plus de mémoire."
|
|
579
|
+
|
|
580
|
+
- id: disk.space
|
|
581
|
+
group: machine
|
|
582
|
+
level: warn
|
|
583
|
+
detect: { kind: disk, min_gb: 2 }
|
|
584
|
+
say:
|
|
585
|
+
ok:
|
|
586
|
+
en: "{free} GB free on the disk of your product"
|
|
587
|
+
fr: "{free} Go libres sur le disque de ton produit"
|
|
588
|
+
full:
|
|
589
|
+
en: "Only {free} GB free on the disk of your product (under {needed} GB): writes and installs will fail"
|
|
590
|
+
fr: "Seulement {free} Go libres sur le disque de ton produit (sous {needed} Go) : les écritures et les installations échoueront"
|
|
591
|
+
unreadable:
|
|
592
|
+
en: "The free room on the disk of your product cannot be read"
|
|
593
|
+
fr: "La place libre sur le disque de ton produit ne peut pas être lue"
|
|
594
|
+
fix:
|
|
595
|
+
- outcomes: [full]
|
|
596
|
+
steps:
|
|
597
|
+
en:
|
|
598
|
+
- "Free some room on that disk (downloads, the recycle bin, old project folders)."
|
|
599
|
+
- "Then run: npx agentplugged doctor"
|
|
600
|
+
fr:
|
|
601
|
+
- "Libère de la place sur ce disque (téléchargements, corbeille, anciens dossiers de projets)."
|
|
602
|
+
- "Puis lance : npx agentplugged doctor"
|
|
603
|
+
|
|
604
|
+
- id: path.length
|
|
605
|
+
group: machine
|
|
606
|
+
level: warn
|
|
607
|
+
platforms: [win32]
|
|
608
|
+
detect: { kind: path-length, max: 100 }
|
|
609
|
+
say:
|
|
610
|
+
ok:
|
|
611
|
+
en: "The folder of your product has a short enough path"
|
|
612
|
+
fr: "Le dossier de ton produit a un chemin assez court"
|
|
613
|
+
long:
|
|
614
|
+
en: "The folder of your product is {length} characters long ({folder}); Windows stops at 260 for a whole path and tools add their own folders below (long paths enabled in Windows: {windows_long})"
|
|
615
|
+
fr: "Le dossier de ton produit fait {length} caractères ({folder}) ; Windows s'arrête à 260 pour un chemin entier et les outils ajoutent leurs dossiers en dessous (chemins longs activés dans Windows : {windows_long})"
|
|
616
|
+
fix:
|
|
617
|
+
- steps:
|
|
618
|
+
en:
|
|
619
|
+
- "Move the product to a shorter folder, close to the root of a disk."
|
|
620
|
+
- "Or turn on long paths: the LongPathsEnabled value of Windows (needs administrator rights), and in Git: git config --global core.longpaths true"
|
|
621
|
+
fr:
|
|
622
|
+
- "Déplace le produit dans un dossier plus court, près de la racine d'un disque."
|
|
623
|
+
- "Ou active les chemins longs : la valeur LongPathsEnabled de Windows (demande les droits d'administrateur), et dans Git : git config --global core.longpaths true"
|
|
624
|
+
|
|
625
|
+
- id: git.line-endings
|
|
626
|
+
group: git
|
|
627
|
+
routine: false
|
|
628
|
+
level: warn
|
|
629
|
+
weak: true
|
|
630
|
+
detect: { kind: line-endings }
|
|
631
|
+
say:
|
|
632
|
+
ok:
|
|
633
|
+
en: "Line endings are settled for this repository"
|
|
634
|
+
fr: "Les fins de ligne sont réglées pour ce dépôt"
|
|
635
|
+
risky:
|
|
636
|
+
en: "Git's core.autocrlf is {autocrlf} here and this repository has no rule for line endings (.gitattributes: {attributes}): scripts can be checked out with Windows line endings (CRLF)"
|
|
637
|
+
fr: "core.autocrlf de Git vaut {autocrlf} ici et ce dépôt n'a pas de règle pour les fins de ligne (.gitattributes : {attributes}) : des scripts peuvent arriver avec des fins de ligne Windows (CRLF)"
|
|
638
|
+
fix:
|
|
639
|
+
- steps:
|
|
640
|
+
en:
|
|
641
|
+
- "Add a .gitattributes file at the root of the repository with this line: * text=auto eol=lf"
|
|
642
|
+
- "Then run: git add --renormalize ."
|
|
643
|
+
fr:
|
|
644
|
+
- "Ajoute un fichier .gitattributes à la racine du dépôt avec cette ligne : * text=auto eol=lf"
|
|
645
|
+
- "Puis lance : git add --renormalize ."
|
|
646
|
+
|
|
647
|
+
- id: admin.rights
|
|
648
|
+
group: machine
|
|
649
|
+
routine: false
|
|
650
|
+
level: warn
|
|
651
|
+
weak: true
|
|
652
|
+
detect: { kind: administrator }
|
|
653
|
+
say:
|
|
654
|
+
ok:
|
|
655
|
+
en: "This program has administrator rights"
|
|
656
|
+
fr: "Ce programme a les droits d'administrateur"
|
|
657
|
+
denied:
|
|
658
|
+
en: "This program does not have administrator rights (the usual state for daily work)"
|
|
659
|
+
fr: "Ce programme n'a pas les droits d'administrateur (l'état habituel du travail quotidien)"
|
|
660
|
+
unreadable:
|
|
661
|
+
en: "Cannot tell whether this program has administrator rights"
|
|
662
|
+
fr: "Impossible de savoir si ce programme a les droits d'administrateur"
|
|
663
|
+
fix:
|
|
664
|
+
- outcomes: [denied]
|
|
665
|
+
steps:
|
|
666
|
+
en:
|
|
667
|
+
- "Only if the failing step really needs them: run it again from a terminal opened as administrator (Windows: right-click, Run as administrator; elsewhere: sudo)."
|
|
668
|
+
fr:
|
|
669
|
+
- "Seulement si l'étape qui échoue en a vraiment besoin : relance-la depuis un terminal ouvert en administrateur (Windows : clic droit, Exécuter en tant qu'administrateur ; ailleurs : sudo)."
|
|
670
|
+
|
|
671
|
+
- id: network.proxy
|
|
672
|
+
group: machine
|
|
673
|
+
routine: false
|
|
674
|
+
level: warn
|
|
675
|
+
weak: true
|
|
676
|
+
detect: { kind: proxy }
|
|
677
|
+
say:
|
|
678
|
+
ok:
|
|
679
|
+
en: "No proxy and no particular package registry found from here (variables, Git, npm)"
|
|
680
|
+
fr: "Aucun proxy ni registre de paquets particulier trouvé d'ici (variables, Git, npm)"
|
|
681
|
+
proxy:
|
|
682
|
+
en: "A proxy or a company registry is set here: {via}"
|
|
683
|
+
fr: "Un proxy ou un registre d'entreprise est réglé ici : {via}"
|
|
684
|
+
fix:
|
|
685
|
+
- outcomes: [proxy]
|
|
686
|
+
steps:
|
|
687
|
+
en:
|
|
688
|
+
- "If downloads or installs fail, check with whoever manages your network: the proxy address, its certificate and your access to the registry."
|
|
689
|
+
fr:
|
|
690
|
+
- "Si des téléchargements ou des installations échouent, vérifie avec la personne qui gère ton réseau : l'adresse du proxy, son certificat et ton accès au registre."
|
|
691
|
+
|
|
692
|
+
templates:
|
|
693
|
+
tool:
|
|
694
|
+
level: warn
|
|
695
|
+
say:
|
|
696
|
+
ok:
|
|
697
|
+
en: "{name} {version}"
|
|
698
|
+
fr: "{name} {version}"
|
|
699
|
+
missing:
|
|
700
|
+
en: "Your stack needs {name} {needed} and it was not found (not in your PATH, nor in its usual folders). {why}"
|
|
701
|
+
fr: "Ta stack demande {name} {needed} et il est introuvable (ni dans ton PATH, ni dans ses dossiers habituels). {why}"
|
|
702
|
+
old:
|
|
703
|
+
en: "Your stack needs {name} {needed} or later; {version} is installed. {why}"
|
|
704
|
+
fr: "Ta stack demande {name} {needed} ou plus récent ; {version} est installé. {why}"
|
|
705
|
+
off_path:
|
|
706
|
+
en: "{name} {version} is in {dir}, which is not on your PATH"
|
|
707
|
+
fr: "{name} {version} est dans {dir}, qui n'est pas dans ton PATH"
|
|
708
|
+
stale:
|
|
709
|
+
en: "{name} {version} is in {dir}, a folder your system knows but this program does not have yet: it was opened before"
|
|
710
|
+
fr: "{name} {version} est dans {dir}, un dossier que ton système connaît mais que ce programme n'a pas encore : il a été ouvert avant"
|
|
711
|
+
unreadable:
|
|
712
|
+
en: "{name} is installed ({path}) but its version cannot be read"
|
|
713
|
+
fr: "{name} est installé ({path}) mais sa version ne peut pas être lue"
|
|
714
|
+
fix:
|
|
715
|
+
- outcomes: [missing, old]
|
|
716
|
+
steps:
|
|
717
|
+
en:
|
|
718
|
+
- "Install {name} {needed} or later, from its official site."
|
|
719
|
+
- "Open a new terminal and run: npx agentplugged doctor"
|
|
720
|
+
fr:
|
|
721
|
+
- "Installe {name} {needed} ou plus récent, depuis son site officiel."
|
|
722
|
+
- "Ouvre un nouveau terminal et lance : npx agentplugged doctor"
|
|
723
|
+
- outcomes: [off_path, unreadable]
|
|
724
|
+
steps:
|
|
725
|
+
en:
|
|
726
|
+
- "Close and reopen your editor and your terminal, or add {dir} to your PATH."
|
|
727
|
+
fr:
|
|
728
|
+
- "Ferme puis rouvre ton éditeur et ton terminal, ou ajoute {dir} à ton PATH."
|
|
729
|
+
- outcomes: [stale]
|
|
730
|
+
steps:
|
|
731
|
+
en:
|
|
732
|
+
- "Close and reopen your editor and your terminal: they then receive the PATH your system already has."
|
|
733
|
+
fr:
|
|
734
|
+
- "Ferme puis rouvre ton éditeur et ton terminal : ils recevront le PATH que ton système a déjà."
|
|
735
|
+
port:
|
|
736
|
+
level: warn
|
|
737
|
+
say:
|
|
738
|
+
ok:
|
|
739
|
+
en: "Port {port} is free"
|
|
740
|
+
fr: "Le port {port} est libre"
|
|
741
|
+
busy:
|
|
742
|
+
en: "Port {port} is already used by another program: your stack needs it free"
|
|
743
|
+
fr: "Le port {port} est déjà utilisé par un autre programme : ta stack le veut libre"
|
|
744
|
+
reserved:
|
|
745
|
+
en: "Port {port} is inside {from}-{to}, a range the system keeps for itself: nothing can listen there, and your stack needs it"
|
|
746
|
+
fr: "Le port {port} est dans la plage {from}-{to}, que le système garde pour lui : rien ne peut y écouter, et ta stack en a besoin"
|
|
747
|
+
refused:
|
|
748
|
+
en: "Port {port} is refused by the system, and no reserved range explains it (the cause is not established): your stack needs it"
|
|
749
|
+
fr: "Le port {port} est refusé par le système, et aucune plage réservée ne l'explique (la cause n'est pas établie) : ta stack en a besoin"
|
|
750
|
+
fix:
|
|
751
|
+
- outcomes: [reserved]
|
|
752
|
+
steps:
|
|
753
|
+
en:
|
|
754
|
+
- "Choose a port outside {from}-{to} for this service (the full list: netsh interface ipv4 show excludedportrange protocol=tcp)."
|
|
755
|
+
fr:
|
|
756
|
+
- "Choisis pour ce service un port en dehors de {from}-{to} (la liste complète : netsh interface ipv4 show excludedportrange protocol=tcp)."
|
|
757
|
+
- outcomes: [busy]
|
|
758
|
+
steps:
|
|
759
|
+
en:
|
|
760
|
+
- "Find the program that uses port {port} (Windows: netstat -ano | findstr :{port} ; elsewhere: lsof -i :{port}) and stop it, or change the port of your product."
|
|
761
|
+
fr:
|
|
762
|
+
- "Trouve le programme qui utilise le port {port} (Windows : netstat -ano | findstr :{port} ; ailleurs : lsof -i :{port}) et arrête-le, ou change le port de ton produit."
|
|
763
|
+
- outcomes: [refused]
|
|
764
|
+
steps:
|
|
765
|
+
en:
|
|
766
|
+
- "Try another port. On macOS and Linux a port below 1024 needs administrator rights; on Windows, see the ranges the system keeps with: netsh interface ipv4 show excludedportrange protocol=tcp"
|
|
767
|
+
fr:
|
|
768
|
+
- "Essaie un autre port. Sous macOS et Linux, un port sous 1024 demande les droits d'administrateur ; sous Windows, vois les plages que le système garde avec : netsh interface ipv4 show excludedportrange protocol=tcp"
|
|
769
|
+
memory:
|
|
770
|
+
level: warn
|
|
771
|
+
say:
|
|
772
|
+
ok:
|
|
773
|
+
en: "{memory} GB of memory (your stack needs {needed} GB)"
|
|
774
|
+
fr: "{memory} Go de mémoire (ta stack en demande {needed})"
|
|
775
|
+
low:
|
|
776
|
+
en: "Only {memory} GB of memory; your stack needs {needed} GB"
|
|
777
|
+
fr: "Seulement {memory} Go de mémoire ; ta stack en demande {needed}"
|
|
778
|
+
fix:
|
|
779
|
+
- steps:
|
|
780
|
+
en:
|
|
781
|
+
- "Close other programs before you start the product, or run it on a machine with more memory."
|
|
782
|
+
fr:
|
|
783
|
+
- "Ferme d'autres programmes avant de lancer le produit, ou lance-le sur une machine avec plus de mémoire."
|
|
784
|
+
|
|
785
|
+
# What a failure names: looked at without accusing anyone. Steps only.
|
|
786
|
+
seen_tool:
|
|
787
|
+
level: warn
|
|
788
|
+
say:
|
|
789
|
+
ok:
|
|
790
|
+
en: "{name} is on this machine ({path})"
|
|
791
|
+
fr: "{name} est sur cette machine ({path})"
|
|
792
|
+
missing:
|
|
793
|
+
en: "{name} was not found: not in your PATH, nor in its usual folders, nor in your system's PATH"
|
|
794
|
+
fr: "{name} est introuvable : ni dans ton PATH, ni dans ses dossiers habituels, ni dans le PATH de ton système"
|
|
795
|
+
off_path:
|
|
796
|
+
en: "{name} is in {dir}, which is not on your PATH"
|
|
797
|
+
fr: "{name} est dans {dir}, qui n'est pas dans ton PATH"
|
|
798
|
+
stale:
|
|
799
|
+
en: "{name} is in {dir}, a folder your system knows but this program does not have yet: it was opened before"
|
|
800
|
+
fr: "{name} est dans {dir}, un dossier que ton système connaît mais que ce programme n'a pas encore : il a été ouvert avant"
|
|
801
|
+
fix:
|
|
802
|
+
- outcomes: [missing]
|
|
803
|
+
steps:
|
|
804
|
+
en:
|
|
805
|
+
- "If you never installed {name}, install it from its official site; if you did, find its folder and add it to your PATH."
|
|
806
|
+
- "Then open a new terminal and run: npx agentplugged doctor"
|
|
807
|
+
fr:
|
|
808
|
+
- "Si tu n'as jamais installé {name}, installe-le depuis son site officiel ; si tu l'as fait, retrouve son dossier et ajoute-le à ton PATH."
|
|
809
|
+
- "Puis ouvre un nouveau terminal et lance : npx agentplugged doctor"
|
|
810
|
+
- outcomes: [off_path]
|
|
811
|
+
steps:
|
|
812
|
+
en:
|
|
813
|
+
- "Close and reopen your editor and your terminal, or add {dir} to your PATH."
|
|
814
|
+
fr:
|
|
815
|
+
- "Ferme puis rouvre ton éditeur et ton terminal, ou ajoute {dir} à ton PATH."
|
|
816
|
+
- outcomes: [stale]
|
|
817
|
+
steps:
|
|
818
|
+
en:
|
|
819
|
+
- "Close and reopen your editor and your terminal: they then receive the PATH your system already has."
|
|
820
|
+
fr:
|
|
821
|
+
- "Ferme puis rouvre ton éditeur et ton terminal : ils recevront le PATH que ton système a déjà."
|
|
822
|
+
seen_port:
|
|
823
|
+
level: warn
|
|
824
|
+
say:
|
|
825
|
+
ok:
|
|
826
|
+
en: "Port {port} is free right now"
|
|
827
|
+
fr: "Le port {port} est libre à l'instant"
|
|
828
|
+
busy:
|
|
829
|
+
en: "Port {port} is used by another program right now"
|
|
830
|
+
fr: "Le port {port} est utilisé par un autre programme à l'instant"
|
|
831
|
+
reserved:
|
|
832
|
+
en: "Port {port} is inside {from}-{to}, a range the system keeps for itself: nothing can listen there"
|
|
833
|
+
fr: "Le port {port} est dans la plage {from}-{to}, que le système garde pour lui : rien ne peut y écouter"
|
|
834
|
+
refused:
|
|
835
|
+
en: "Port {port} is refused by the system, and no reserved range explains it (the cause is not established)"
|
|
836
|
+
fr: "Le port {port} est refusé par le système, et aucune plage réservée ne l'explique (la cause n'est pas établie)"
|
|
837
|
+
fix:
|
|
838
|
+
- outcomes: [busy]
|
|
839
|
+
steps:
|
|
840
|
+
en:
|
|
841
|
+
- "Find the program that uses port {port} (Windows: netstat -ano | findstr :{port} ; elsewhere: lsof -i :{port}) and stop it, or use another port."
|
|
842
|
+
fr:
|
|
843
|
+
- "Trouve le programme qui utilise le port {port} (Windows : netstat -ano | findstr :{port} ; ailleurs : lsof -i :{port}) et arrête-le, ou utilise un autre port."
|
|
844
|
+
- outcomes: [reserved]
|
|
845
|
+
steps:
|
|
846
|
+
en:
|
|
847
|
+
- "Choose a port outside {from}-{to} for this service (the full list: netsh interface ipv4 show excludedportrange protocol=tcp)."
|
|
848
|
+
fr:
|
|
849
|
+
- "Choisis pour ce service un port en dehors de {from}-{to} (la liste complète : netsh interface ipv4 show excludedportrange protocol=tcp)."
|
|
850
|
+
- outcomes: [refused]
|
|
851
|
+
steps:
|
|
852
|
+
en:
|
|
853
|
+
- "Try another port. On macOS and Linux a port below 1024 needs administrator rights."
|
|
854
|
+
fr:
|
|
855
|
+
- "Essaie un autre port. Sous macOS et Linux, un port sous 1024 demande les droits d'administrateur."
|
|
856
|
+
|
|
857
|
+
diagnosis:
|
|
858
|
+
found:
|
|
859
|
+
en: "Cause found on your machine: {text}"
|
|
860
|
+
fr: "Cause constatée sur ta machine : {text}"
|
|
861
|
+
suspected:
|
|
862
|
+
en: "A lead on your machine, which proves nothing by itself: {text}"
|
|
863
|
+
fr: "Une piste sur ta machine, qui ne prouve rien à elle seule : {text}"
|
|
864
|
+
not_found:
|
|
865
|
+
en: "I read {count} point(s) on your machine and none explains this failure: the cause is not established"
|
|
866
|
+
fr: "J'ai relu {count} point(s) de ta machine et aucun n'explique cet échec : la cause n'est pas établie"
|
|
867
|
+
nothing:
|
|
868
|
+
en: "I recognise this failure, but there is nothing on your machine I can read about it: the cause is not established"
|
|
869
|
+
fr: "Je reconnais cet échec, mais il n'y a rien sur ta machine que je puisse relire à son sujet : la cause n'est pas établie"
|
|
870
|
+
unknown:
|
|
871
|
+
en: "I do not recognise this failure, so I blame nothing; the usual checks are in `doctor`"
|
|
872
|
+
fr: "Je ne reconnais pas cet échec, donc je n'accuse rien ; les vérifications habituelles sont dans `doctor`"
|
|
873
|
+
doctor:
|
|
874
|
+
en: "To see everything: npx agentplugged doctor"
|
|
875
|
+
fr: "Pour tout voir : npx agentplugged doctor"
|
|
876
|
+
|
|
877
|
+
signatures:
|
|
878
|
+
- id: forge-not-linked
|
|
879
|
+
when: { code: [FORGE_NOT_LINKED] }
|
|
880
|
+
say:
|
|
881
|
+
en: "The engine could not use the forge's tool (FORGE_NOT_LINKED)"
|
|
882
|
+
fr: "Le moteur n'a pas pu utiliser l'outil de la forge (FORGE_NOT_LINKED)"
|
|
883
|
+
read: [forge.cli, forge.login]
|
|
884
|
+
lead: [path.stale]
|
|
885
|
+
- id: command-not-found
|
|
886
|
+
when:
|
|
887
|
+
exit_code: [127]
|
|
888
|
+
output:
|
|
889
|
+
- "is not recognized as an internal or external command"
|
|
890
|
+
- "is not recognized as the name of a cmdlet"
|
|
891
|
+
- "command not found"
|
|
892
|
+
- ": not found"
|
|
893
|
+
- "enoent"
|
|
894
|
+
say:
|
|
895
|
+
en: "A program or a file was not found by the command that failed"
|
|
896
|
+
fr: "Un programme ou un fichier est introuvable pour la commande qui a échoué"
|
|
897
|
+
read: []
|
|
898
|
+
lead: [path.stale]
|
|
899
|
+
extract: [command]
|
|
900
|
+
- id: killed
|
|
901
|
+
when:
|
|
902
|
+
exit_code: [137]
|
|
903
|
+
output: ["killed", "sigkill", "exit code 137", "exited with code 137"]
|
|
904
|
+
say:
|
|
905
|
+
en: "The program was stopped by force (exit code 137, signal 9)"
|
|
906
|
+
fr: "Le programme a été arrêté de force (code de sortie 137, signal 9)"
|
|
907
|
+
read: []
|
|
908
|
+
lead: [docker.daemon, docker.memory, machine.memory]
|
|
909
|
+
assumed:
|
|
910
|
+
en: "Running out of memory is a frequent reason for a program to be stopped this way, but not the only one (someone stopped it, a time limit): what I read above does not prove it"
|
|
911
|
+
fr: "Manquer de mémoire est une raison fréquente d'un tel arrêt, mais pas la seule (quelqu'un l'a arrêté, un délai) : ce que j'ai relu plus haut ne le prouve pas"
|
|
912
|
+
- id: node-heap
|
|
913
|
+
when: { output: ["javascript heap out of memory", "heap out of memory"] }
|
|
914
|
+
say:
|
|
915
|
+
en: "Node.js stopped at its own memory limit (the JavaScript heap)"
|
|
916
|
+
fr: "Node.js s'est arrêté à sa propre limite de mémoire (le tas JavaScript)"
|
|
917
|
+
read: [machine.memory]
|
|
918
|
+
assumed:
|
|
919
|
+
en: "This is Node.js's own limit, not necessarily the machine's memory: raising it (NODE_OPTIONS=--max-old-space-size=4096) is the usual remedy if the machine has room"
|
|
920
|
+
fr: "C'est la limite propre de Node.js, pas forcément la mémoire de la machine : la relever (NODE_OPTIONS=--max-old-space-size=4096) est le remède habituel si la machine a de la place"
|
|
921
|
+
- id: port
|
|
922
|
+
when:
|
|
923
|
+
output:
|
|
924
|
+
- "eaddrinuse"
|
|
925
|
+
- "address already in use"
|
|
926
|
+
- "port is already allocated"
|
|
927
|
+
- "ports are not available"
|
|
928
|
+
- "only one usage of each socket address"
|
|
929
|
+
- "forbidden by its access permissions"
|
|
930
|
+
say:
|
|
931
|
+
en: "A program could not listen on a port"
|
|
932
|
+
fr: "Un programme n'a pas pu écouter sur un port"
|
|
933
|
+
read: []
|
|
934
|
+
extract: [port]
|
|
935
|
+
- id: docker-engine
|
|
936
|
+
when:
|
|
937
|
+
output:
|
|
938
|
+
- "cannot connect to the docker daemon"
|
|
939
|
+
- "error during connect"
|
|
940
|
+
- "docker daemon is not running"
|
|
941
|
+
- "failed to connect to the docker api"
|
|
942
|
+
- "dockerdesktoplinuxengine"
|
|
943
|
+
- "is the docker daemon running"
|
|
944
|
+
say:
|
|
945
|
+
en: "The Docker command could not reach Docker's engine"
|
|
946
|
+
fr: "La commande Docker n'a pas pu joindre le moteur de Docker"
|
|
947
|
+
read: [docker.daemon]
|
|
948
|
+
lead: [docker.memory]
|
|
949
|
+
- id: git-identity
|
|
950
|
+
when:
|
|
951
|
+
output:
|
|
952
|
+
- "author identity unknown"
|
|
953
|
+
- "please tell me who you are"
|
|
954
|
+
- "unable to auto-detect email address"
|
|
955
|
+
- "empty ident name"
|
|
956
|
+
say:
|
|
957
|
+
en: "Git refused to commit because it does not know who you are"
|
|
958
|
+
fr: "Git a refusé de valider parce qu'il ne sait pas qui tu es"
|
|
959
|
+
read: [git.identity]
|
|
960
|
+
- id: line-endings
|
|
961
|
+
when:
|
|
962
|
+
output:
|
|
963
|
+
- "bad interpreter"
|
|
964
|
+
- "$'\\r'"
|
|
965
|
+
- "lf will be replaced by crlf"
|
|
966
|
+
- "crlf will be replaced by lf"
|
|
967
|
+
say:
|
|
968
|
+
en: "The message talks about line endings (CRLF or LF)"
|
|
969
|
+
fr: "Le message parle de fins de ligne (CRLF ou LF)"
|
|
970
|
+
read: [git.line-endings]
|
|
971
|
+
assumed:
|
|
972
|
+
en: "A script saved with Windows line endings (CRLF) breaks on Linux, macOS and in containers: I suppose it is the case here, but only the files themselves can tell"
|
|
973
|
+
fr: "Un script enregistré avec des fins de ligne Windows (CRLF) casse sous Linux, macOS et dans les conteneurs : je suppose que c'est le cas ici, mais seuls les fichiers eux-mêmes peuvent le dire"
|
|
974
|
+
- id: rights
|
|
975
|
+
when:
|
|
976
|
+
exit_code: [126]
|
|
977
|
+
output: ["eacces", "eperm", "access is denied", "permission denied", "operation not permitted", "access denied"]
|
|
978
|
+
say:
|
|
979
|
+
en: "A program was refused access (a right is missing)"
|
|
980
|
+
fr: "Un programme s'est vu refuser l'accès (un droit manque)"
|
|
981
|
+
read: [admin.rights]
|
|
982
|
+
assumed:
|
|
983
|
+
en: "The missing right is not always administrator rights: it can be a folder's rights, a file used by another program, or an antivirus; I only checked the administrator rights"
|
|
984
|
+
fr: "Le droit qui manque n'est pas toujours celui d'administrateur : ce peut être les droits d'un dossier, un fichier utilisé par un autre programme ou un antivirus ; je n'ai vérifié que les droits d'administrateur"
|
|
985
|
+
- id: path-too-long
|
|
986
|
+
when:
|
|
987
|
+
output:
|
|
988
|
+
- "enametoolong"
|
|
989
|
+
- "filename too long"
|
|
990
|
+
- "file name too long"
|
|
991
|
+
- "path too long"
|
|
992
|
+
- "path is too long"
|
|
993
|
+
- "path, file name, or both are too long"
|
|
994
|
+
- "max_path"
|
|
995
|
+
say:
|
|
996
|
+
en: "A path is too long for the system"
|
|
997
|
+
fr: "Un chemin est trop long pour le système"
|
|
998
|
+
read: [path.length]
|
|
999
|
+
- id: network
|
|
1000
|
+
when:
|
|
1001
|
+
output:
|
|
1002
|
+
- "etimedout"
|
|
1003
|
+
- "econnreset"
|
|
1004
|
+
- "econnrefused"
|
|
1005
|
+
- "enotfound"
|
|
1006
|
+
- "eai_again"
|
|
1007
|
+
- "getaddrinfo"
|
|
1008
|
+
- "unable_to_verify_leaf_signature"
|
|
1009
|
+
- "self signed certificate"
|
|
1010
|
+
- "self-signed certificate"
|
|
1011
|
+
- "ssl certificate problem"
|
|
1012
|
+
- "unable to get local issuer certificate"
|
|
1013
|
+
- "proxy authentication required"
|
|
1014
|
+
- "could not resolve host"
|
|
1015
|
+
- "tls handshake"
|
|
1016
|
+
say:
|
|
1017
|
+
en: "The network could not be reached, or refused the connection"
|
|
1018
|
+
fr: "Le réseau n'a pas pu être joint, ou a refusé la connexion"
|
|
1019
|
+
read: [network.proxy]
|
|
1020
|
+
assumed:
|
|
1021
|
+
en: "The network may be down, filtered, or inspected by a company proxy that re-signs certificates; I only looked at what is set on this machine, not at the network itself"
|
|
1022
|
+
fr: "Le réseau peut être coupé, filtré, ou inspecté par un proxy d'entreprise qui re-signe les certificats ; je n'ai regardé que ce qui est réglé sur cette machine, pas le réseau lui-même"
|
|
1023
|
+
- id: disk-full
|
|
1024
|
+
when:
|
|
1025
|
+
output: ["enospc", "no space left on device", "not enough space on the disk", "there is not enough space"]
|
|
1026
|
+
say:
|
|
1027
|
+
en: "A write failed for lack of room"
|
|
1028
|
+
fr: "Une écriture a échoué faute de place"
|
|
1029
|
+
read: [disk.space]
|