@jaimevalasek/aioson 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (288) hide show
  1. package/CHANGELOG.md +456 -0
  2. package/CODE_OF_CONDUCT.md +12 -0
  3. package/CONTRIBUTING.md +13 -0
  4. package/LICENSE +21 -0
  5. package/README.md +254 -0
  6. package/bin/aioson.js +4 -0
  7. package/docs/en/cli-reference.md +398 -0
  8. package/docs/en/i18n.md +52 -0
  9. package/docs/en/json-schemas.md +41 -0
  10. package/docs/en/mcp.md +56 -0
  11. package/docs/en/parallel.md +82 -0
  12. package/docs/en/qa-browser.md +339 -0
  13. package/docs/en/release-flow.md +22 -0
  14. package/docs/en/release-notes-template.md +41 -0
  15. package/docs/en/release.md +28 -0
  16. package/docs/en/schemas/agent-prompt.schema.json +17 -0
  17. package/docs/en/schemas/agents.schema.json +32 -0
  18. package/docs/en/schemas/context-validate.schema.json +36 -0
  19. package/docs/en/schemas/doctor.schema.json +89 -0
  20. package/docs/en/schemas/error.schema.json +24 -0
  21. package/docs/en/schemas/i18n-add.schema.json +15 -0
  22. package/docs/en/schemas/index.json +116 -0
  23. package/docs/en/schemas/info.schema.json +39 -0
  24. package/docs/en/schemas/init.schema.json +48 -0
  25. package/docs/en/schemas/install.schema.json +60 -0
  26. package/docs/en/schemas/locale-apply.schema.json +30 -0
  27. package/docs/en/schemas/mcp-doctor.schema.json +95 -0
  28. package/docs/en/schemas/mcp-init.schema.json +122 -0
  29. package/docs/en/schemas/package-test.schema.json +24 -0
  30. package/docs/en/schemas/parallel-assign.schema.json +57 -0
  31. package/docs/en/schemas/parallel-doctor.schema.json +86 -0
  32. package/docs/en/schemas/parallel-init.schema.json +53 -0
  33. package/docs/en/schemas/parallel-status.schema.json +94 -0
  34. package/docs/en/schemas/setup-context.schema.json +39 -0
  35. package/docs/en/schemas/smoke.schema.json +23 -0
  36. package/docs/en/schemas/update.schema.json +48 -0
  37. package/docs/en/schemas/workflow-plan.schema.json +30 -0
  38. package/docs/en/web3.md +54 -0
  39. package/docs/pt/README.md +46 -0
  40. package/docs/pt/advisor-spec.md +335 -0
  41. package/docs/pt/agentes.md +453 -0
  42. package/docs/pt/cenarios.md +1230 -0
  43. package/docs/pt/clientes-ai.md +224 -0
  44. package/docs/pt/comandos-cli.md +511 -0
  45. package/docs/pt/genome-3.0-spec.md +296 -0
  46. package/docs/pt/guia-engineer.md +226 -0
  47. package/docs/pt/inicio-rapido.md +138 -0
  48. package/docs/pt/profiler-system.md +214 -0
  49. package/docs/pt/runtime-observability.md +72 -0
  50. package/docs/pt/squad-genoma.md +777 -0
  51. package/docs/pt/web3.md +797 -0
  52. package/docs/testing/genome-2.0-manual-regression.md +23 -0
  53. package/docs/testing/genome-2.0-matrix.md +36 -0
  54. package/docs/testing/genome-2.0-rollout.md +184 -0
  55. package/package.json +50 -0
  56. package/src/agents.js +56 -0
  57. package/src/cli.js +497 -0
  58. package/src/commands/agents.js +142 -0
  59. package/src/commands/cloud.js +1767 -0
  60. package/src/commands/config.js +90 -0
  61. package/src/commands/context-validate.js +91 -0
  62. package/src/commands/doctor.js +123 -0
  63. package/src/commands/genome-doctor.js +41 -0
  64. package/src/commands/genome-migrate.js +49 -0
  65. package/src/commands/i18n-add.js +56 -0
  66. package/src/commands/info.js +41 -0
  67. package/src/commands/init.js +75 -0
  68. package/src/commands/install.js +68 -0
  69. package/src/commands/locale-apply.js +51 -0
  70. package/src/commands/locale-diff.js +126 -0
  71. package/src/commands/mcp-doctor.js +406 -0
  72. package/src/commands/mcp-init.js +379 -0
  73. package/src/commands/package-e2e.js +273 -0
  74. package/src/commands/parallel-assign.js +403 -0
  75. package/src/commands/parallel-doctor.js +437 -0
  76. package/src/commands/parallel-init.js +249 -0
  77. package/src/commands/parallel-status.js +290 -0
  78. package/src/commands/qa-doctor.js +185 -0
  79. package/src/commands/qa-init.js +161 -0
  80. package/src/commands/qa-report.js +58 -0
  81. package/src/commands/qa-run.js +873 -0
  82. package/src/commands/qa-scan.js +337 -0
  83. package/src/commands/runtime.js +948 -0
  84. package/src/commands/scan-project.js +1107 -0
  85. package/src/commands/setup-context.js +650 -0
  86. package/src/commands/smoke.js +426 -0
  87. package/src/commands/squad-doctor.js +358 -0
  88. package/src/commands/squad-export.js +46 -0
  89. package/src/commands/squad-pipeline.js +97 -0
  90. package/src/commands/squad-repair-genomes.js +39 -0
  91. package/src/commands/squad-status.js +424 -0
  92. package/src/commands/squad-validate.js +230 -0
  93. package/src/commands/test-agents.js +194 -0
  94. package/src/commands/update.js +55 -0
  95. package/src/commands/workflow-next.js +594 -0
  96. package/src/commands/workflow-plan.js +108 -0
  97. package/src/constants.js +314 -0
  98. package/src/context-parse-reason.js +22 -0
  99. package/src/context-writer.js +150 -0
  100. package/src/context.js +217 -0
  101. package/src/detector.js +261 -0
  102. package/src/doctor.js +289 -0
  103. package/src/execution-gateway.js +461 -0
  104. package/src/genome-files.js +198 -0
  105. package/src/genome-format.js +442 -0
  106. package/src/genome-schema.js +215 -0
  107. package/src/genomes/bindings.js +281 -0
  108. package/src/genomes.js +467 -0
  109. package/src/i18n/index.js +103 -0
  110. package/src/i18n/messages/en.js +784 -0
  111. package/src/i18n/messages/es.js +718 -0
  112. package/src/i18n/messages/fr.js +725 -0
  113. package/src/i18n/messages/pt-BR.js +818 -0
  114. package/src/i18n/scaffold.js +64 -0
  115. package/src/installer.js +232 -0
  116. package/src/lib/genomes/compat.js +206 -0
  117. package/src/lib/genomes/migrate.js +90 -0
  118. package/src/lib/squads/genome-repair.js +49 -0
  119. package/src/locales.js +84 -0
  120. package/src/onboarding.js +305 -0
  121. package/src/parser.js +53 -0
  122. package/src/prompt-tool.js +20 -0
  123. package/src/qa-html-report.js +472 -0
  124. package/src/runtime-store.js +1527 -0
  125. package/src/squads/apply-genome.js +21 -0
  126. package/src/squads/genome-binding-service.js +154 -0
  127. package/src/updater.js +32 -0
  128. package/src/utils.js +46 -0
  129. package/src/version.js +50 -0
  130. package/template/.aioson/advisors/.gitkeep +1 -0
  131. package/template/.aioson/agents/analyst.md +225 -0
  132. package/template/.aioson/agents/architect.md +221 -0
  133. package/template/.aioson/agents/dev.md +201 -0
  134. package/template/.aioson/agents/discovery-design-doc.md +196 -0
  135. package/template/.aioson/agents/genoma.md +300 -0
  136. package/template/.aioson/agents/orchestrator.md +107 -0
  137. package/template/.aioson/agents/pm.md +89 -0
  138. package/template/.aioson/agents/product.md +361 -0
  139. package/template/.aioson/agents/profiler-enricher.md +266 -0
  140. package/template/.aioson/agents/profiler-forge.md +188 -0
  141. package/template/.aioson/agents/profiler-researcher.md +245 -0
  142. package/template/.aioson/agents/qa.md +344 -0
  143. package/template/.aioson/agents/setup.md +381 -0
  144. package/template/.aioson/agents/squad.md +837 -0
  145. package/template/.aioson/agents/ux-ui.md +416 -0
  146. package/template/.aioson/config.md +56 -0
  147. package/template/.aioson/context/.gitkeep +0 -0
  148. package/template/.aioson/context/parallel/.gitkeep +0 -0
  149. package/template/.aioson/context/spec.md.template +37 -0
  150. package/template/.aioson/genomas/.gitkeep +0 -0
  151. package/template/.aioson/locales/en/agents/analyst.md +214 -0
  152. package/template/.aioson/locales/en/agents/architect.md +210 -0
  153. package/template/.aioson/locales/en/agents/dev.md +187 -0
  154. package/template/.aioson/locales/en/agents/discovery-design-doc.md +27 -0
  155. package/template/.aioson/locales/en/agents/genoma.md +212 -0
  156. package/template/.aioson/locales/en/agents/orchestrator.md +105 -0
  157. package/template/.aioson/locales/en/agents/pm.md +77 -0
  158. package/template/.aioson/locales/en/agents/product.md +310 -0
  159. package/template/.aioson/locales/en/agents/profiler-enricher.md +5 -0
  160. package/template/.aioson/locales/en/agents/profiler-forge.md +5 -0
  161. package/template/.aioson/locales/en/agents/profiler-researcher.md +5 -0
  162. package/template/.aioson/locales/en/agents/qa.md +214 -0
  163. package/template/.aioson/locales/en/agents/setup.md +342 -0
  164. package/template/.aioson/locales/en/agents/squad.md +247 -0
  165. package/template/.aioson/locales/en/agents/ux-ui.md +320 -0
  166. package/template/.aioson/locales/es/agents/analyst.md +203 -0
  167. package/template/.aioson/locales/es/agents/architect.md +208 -0
  168. package/template/.aioson/locales/es/agents/dev.md +183 -0
  169. package/template/.aioson/locales/es/agents/discovery-design-doc.md +19 -0
  170. package/template/.aioson/locales/es/agents/genoma.md +102 -0
  171. package/template/.aioson/locales/es/agents/orchestrator.md +108 -0
  172. package/template/.aioson/locales/es/agents/pm.md +81 -0
  173. package/template/.aioson/locales/es/agents/product.md +310 -0
  174. package/template/.aioson/locales/es/agents/profiler-enricher.md +5 -0
  175. package/template/.aioson/locales/es/agents/profiler-forge.md +5 -0
  176. package/template/.aioson/locales/es/agents/profiler-researcher.md +5 -0
  177. package/template/.aioson/locales/es/agents/qa.md +163 -0
  178. package/template/.aioson/locales/es/agents/setup.md +347 -0
  179. package/template/.aioson/locales/es/agents/squad.md +247 -0
  180. package/template/.aioson/locales/es/agents/ux-ui.md +201 -0
  181. package/template/.aioson/locales/fr/agents/analyst.md +203 -0
  182. package/template/.aioson/locales/fr/agents/architect.md +208 -0
  183. package/template/.aioson/locales/fr/agents/dev.md +183 -0
  184. package/template/.aioson/locales/fr/agents/discovery-design-doc.md +19 -0
  185. package/template/.aioson/locales/fr/agents/genoma.md +102 -0
  186. package/template/.aioson/locales/fr/agents/orchestrator.md +108 -0
  187. package/template/.aioson/locales/fr/agents/pm.md +81 -0
  188. package/template/.aioson/locales/fr/agents/product.md +310 -0
  189. package/template/.aioson/locales/fr/agents/profiler-enricher.md +5 -0
  190. package/template/.aioson/locales/fr/agents/profiler-forge.md +5 -0
  191. package/template/.aioson/locales/fr/agents/profiler-researcher.md +5 -0
  192. package/template/.aioson/locales/fr/agents/qa.md +163 -0
  193. package/template/.aioson/locales/fr/agents/setup.md +347 -0
  194. package/template/.aioson/locales/fr/agents/squad.md +247 -0
  195. package/template/.aioson/locales/fr/agents/ux-ui.md +201 -0
  196. package/template/.aioson/locales/pt-BR/agents/analyst.md +217 -0
  197. package/template/.aioson/locales/pt-BR/agents/architect.md +213 -0
  198. package/template/.aioson/locales/pt-BR/agents/dev.md +198 -0
  199. package/template/.aioson/locales/pt-BR/agents/discovery-design-doc.md +198 -0
  200. package/template/.aioson/locales/pt-BR/agents/genoma.md +297 -0
  201. package/template/.aioson/locales/pt-BR/agents/orchestrator.md +108 -0
  202. package/template/.aioson/locales/pt-BR/agents/pm.md +81 -0
  203. package/template/.aioson/locales/pt-BR/agents/product.md +316 -0
  204. package/template/.aioson/locales/pt-BR/agents/profiler-enricher.md +5 -0
  205. package/template/.aioson/locales/pt-BR/agents/profiler-forge.md +5 -0
  206. package/template/.aioson/locales/pt-BR/agents/profiler-researcher.md +5 -0
  207. package/template/.aioson/locales/pt-BR/agents/qa.md +217 -0
  208. package/template/.aioson/locales/pt-BR/agents/setup.md +371 -0
  209. package/template/.aioson/locales/pt-BR/agents/squad.md +772 -0
  210. package/template/.aioson/locales/pt-BR/agents/ux-ui.md +322 -0
  211. package/template/.aioson/mcp/servers.md +24 -0
  212. package/template/.aioson/profiler-reports/.gitkeep +1 -0
  213. package/template/.aioson/schemas/content-blueprint.schema.json +30 -0
  214. package/template/.aioson/schemas/genome-meta.schema.json +150 -0
  215. package/template/.aioson/schemas/genome.schema.json +115 -0
  216. package/template/.aioson/schemas/readiness.schema.json +27 -0
  217. package/template/.aioson/schemas/squad-blueprint.schema.json +172 -0
  218. package/template/.aioson/schemas/squad-manifest.schema.json +276 -0
  219. package/template/.aioson/skills/dynamic/README.md +30 -0
  220. package/template/.aioson/skills/dynamic/cardano-docs.md +16 -0
  221. package/template/.aioson/skills/dynamic/ethereum-docs.md +17 -0
  222. package/template/.aioson/skills/dynamic/flux-ui-docs.md +13 -0
  223. package/template/.aioson/skills/dynamic/laravel-docs.md +41 -0
  224. package/template/.aioson/skills/dynamic/npm-packages.md +16 -0
  225. package/template/.aioson/skills/dynamic/solana-docs.md +16 -0
  226. package/template/.aioson/skills/references/premium-command-center-ui/master-application-prompt.md +79 -0
  227. package/template/.aioson/skills/references/premium-command-center-ui/operational-ux-playbook.md +253 -0
  228. package/template/.aioson/skills/references/premium-command-center-ui/quality-validation-checklist.md +82 -0
  229. package/template/.aioson/skills/references/premium-command-center-ui/visual-system-and-component-patterns.md +270 -0
  230. package/template/.aioson/skills/static/django-patterns.md +342 -0
  231. package/template/.aioson/skills/static/fastapi-patterns.md +344 -0
  232. package/template/.aioson/skills/static/filament-patterns.md +267 -0
  233. package/template/.aioson/skills/static/flux-ui-components.md +262 -0
  234. package/template/.aioson/skills/static/git-conventions.md +227 -0
  235. package/template/.aioson/skills/static/interface-design.md +372 -0
  236. package/template/.aioson/skills/static/jetstream-setup.md +200 -0
  237. package/template/.aioson/skills/static/laravel-conventions.md +491 -0
  238. package/template/.aioson/skills/static/nextjs-patterns.md +321 -0
  239. package/template/.aioson/skills/static/node-express-patterns.md +317 -0
  240. package/template/.aioson/skills/static/node-typescript-patterns.md +282 -0
  241. package/template/.aioson/skills/static/premium-command-center-ui.md +190 -0
  242. package/template/.aioson/skills/static/rails-conventions.md +307 -0
  243. package/template/.aioson/skills/static/react-motion-patterns.md +577 -0
  244. package/template/.aioson/skills/static/static-html-patterns.md +1935 -0
  245. package/template/.aioson/skills/static/tall-stack-patterns.md +286 -0
  246. package/template/.aioson/skills/static/ui-ux-modern.md +75 -0
  247. package/template/.aioson/skills/static/web3-cardano-patterns.md +337 -0
  248. package/template/.aioson/skills/static/web3-ethereum-patterns.md +310 -0
  249. package/template/.aioson/skills/static/web3-security-checklist.md +284 -0
  250. package/template/.aioson/skills/static/web3-solana-patterns.md +324 -0
  251. package/template/.aioson/squads/.artisan/.gitkeep +0 -0
  252. package/template/.aioson/squads/.gitkeep +0 -0
  253. package/template/.aioson/squads/memory.md +5 -0
  254. package/template/.aioson/tasks/squad-analyze.md +83 -0
  255. package/template/.aioson/tasks/squad-create.md +99 -0
  256. package/template/.aioson/tasks/squad-design.md +100 -0
  257. package/template/.aioson/tasks/squad-export.md +20 -0
  258. package/template/.aioson/tasks/squad-extend.md +68 -0
  259. package/template/.aioson/tasks/squad-pipeline.md +122 -0
  260. package/template/.aioson/tasks/squad-repair.md +85 -0
  261. package/template/.aioson/tasks/squad-validate.md +58 -0
  262. package/template/.aioson/templates/squads/content-basic/template.json +21 -0
  263. package/template/.aioson/templates/squads/media-channel/template.json +24 -0
  264. package/template/.aioson/templates/squads/research-analysis/template.json +22 -0
  265. package/template/.aioson/templates/squads/software-delivery/template.json +21 -0
  266. package/template/.claude/commands/aioson/analyst.md +5 -0
  267. package/template/.claude/commands/aioson/architect.md +5 -0
  268. package/template/.claude/commands/aioson/dev.md +5 -0
  269. package/template/.claude/commands/aioson/orchestrator.md +5 -0
  270. package/template/.claude/commands/aioson/pm.md +5 -0
  271. package/template/.claude/commands/aioson/qa.md +5 -0
  272. package/template/.claude/commands/aioson/setup.md +5 -0
  273. package/template/.claude/commands/aioson/ux-ui.md +5 -0
  274. package/template/.gemini/GEMINI.md +10 -0
  275. package/template/.gemini/commands/aios-analyst.toml +4 -0
  276. package/template/.gemini/commands/aios-architect.toml +7 -0
  277. package/template/.gemini/commands/aios-dev.toml +8 -0
  278. package/template/.gemini/commands/aios-discovery-design-doc.toml +4 -0
  279. package/template/.gemini/commands/aios-orchestrator.toml +8 -0
  280. package/template/.gemini/commands/aios-pm.toml +8 -0
  281. package/template/.gemini/commands/aios-product.toml +4 -0
  282. package/template/.gemini/commands/aios-qa.toml +6 -0
  283. package/template/.gemini/commands/aios-setup.toml +3 -0
  284. package/template/.gemini/commands/aios-ux-ui.toml +8 -0
  285. package/template/AGENTS.md +67 -0
  286. package/template/CLAUDE.md +31 -0
  287. package/template/OPENCODE.md +24 -0
  288. package/template/aioson-models.json +40 -0
@@ -0,0 +1,725 @@
1
+ 'use strict';
2
+
3
+ module.exports = {
4
+ cli: {
5
+ title: 'AIOSON CLI',
6
+ title_line: '{title}\n',
7
+ usage: 'Utilisation :',
8
+ help_item_line: ' {text}',
9
+ help_init:
10
+ 'aioson init <project-name> [--force] [--dry-run] [--lang=en|pt-BR|es|fr] [--tool=codex|claude|gemini|opencode] [--locale=fr]',
11
+ help_install:
12
+ 'aioson install [path] [--force] [--dry-run] [--lang=en|pt-BR|es|fr] [--tool=codex|claude|gemini|opencode] [--locale=fr]',
13
+ help_update:
14
+ 'aioson update [path] [--dry-run] [--lang=en|pt-BR|es|fr] [--locale=fr]',
15
+ help_info: 'aioson info [path] [--json] [--locale=fr]',
16
+ help_doctor: 'aioson doctor [path] [--fix] [--dry-run] [--json] [--locale=fr]',
17
+ help_i18n_add: 'aioson i18n:add <locale> [--force] [--dry-run] [--locale=fr]',
18
+ help_agents: 'aioson agents [path] [--lang=en|pt-BR|es|fr] [--locale=fr]',
19
+ help_agent_prompt:
20
+ 'aioson agent:prompt <agent> [path] [--tool=codex|claude|gemini|opencode] [--lang=en|pt-BR|es|fr] [--locale=fr]',
21
+ help_context_validate: 'aioson context:validate [path] [--json] [--locale=fr]',
22
+ help_setup_context:
23
+ 'aioson setup:context [path] [--defaults] [--project-type=web_app|api|site|script|dapp] [--framework=<name>] [--backend=<name>] [--frontend=<name>] [--database=<name>] [--auth=<name>] [--uiux=<name>] [--language=fr] [--web3-enabled=true|false] [--locale=fr]',
24
+ help_locale_apply: 'aioson locale:apply [path] [--lang=en|pt-BR|es|fr] [--dry-run] [--locale=fr]',
25
+ help_locale_diff: 'aioson locale:diff [agent] [--lang=en|pt-BR|es|fr] [--json] [--locale=en]',
26
+ help_test_agents: 'aioson test:agents [--json] [--locale=en]',
27
+ help_test_smoke:
28
+ 'aioson test:smoke [workspace-path] [--lang=en|pt-BR|es|fr] [--web3=ethereum|solana|cardano] [--profile=standard|mixed|parallel] [--keep] [--json] [--locale=fr]',
29
+ help_test_package:
30
+ 'aioson test:package [source-path] [--keep] [--dry-run] [--json] [--locale=fr]',
31
+ help_workflow_plan:
32
+ 'aioson workflow:plan [path] [--classification=MICRO|SMALL|MEDIUM] [--json] [--locale=fr]',
33
+ help_parallel_init:
34
+ 'aioson parallel:init [path] [--workers=2..6] [--force] [--dry-run] [--json] [--locale=fr]',
35
+ help_parallel_doctor:
36
+ 'aioson parallel:doctor [path] [--workers=2..6] [--fix] [--force] [--dry-run] [--json] [--locale=fr]',
37
+ help_parallel_assign:
38
+ 'aioson parallel:assign [path] [--source=auto|prd|architecture|discovery|<file>] [--workers=2..6] [--force] [--dry-run] [--json] [--locale=fr]',
39
+ help_parallel_status:
40
+ 'aioson parallel:status [path] [--json] [--locale=fr]',
41
+ help_mcp_init:
42
+ 'aioson mcp:init [path] [--tool=claude|codex|gemini|opencode] [--dry-run] [--json] [--locale=fr]',
43
+ help_mcp_doctor:
44
+ 'aioson mcp:doctor [path] [--strict-env] [--json] [--locale=fr]',
45
+ help_qa_doctor:
46
+ 'aioson qa:doctor [path] [--json] [--locale=fr]',
47
+ help_qa_init:
48
+ 'aioson qa:init [path] [--url=<app-url>] [--dry-run] [--json] [--locale=fr]',
49
+ help_qa_run:
50
+ 'aioson qa:run [path] [--url=<app-url>] [--persona=naive|hacker|power|mobile] [--headed] [--html] [--json] [--locale=fr]',
51
+ help_qa_scan:
52
+ 'aioson qa:scan [path] [--url=<app-url>] [--depth=3] [--max-pages=50] [--headed] [--html] [--json] [--locale=fr]',
53
+ help_qa_report:
54
+ 'aioson qa:report [path] [--html] [--json] [--locale=fr]',
55
+ help_scan_project:
56
+ 'aioson scan:project [path] --folder=<chemin[,chemin2]> [--summary-mode=titles|summaries|raw] [--with-llm] [--provider=<name>] [--llm-model=<name>] [--dry-run] [--json] [--locale=fr]',
57
+ help_config:
58
+ 'aioson config <set KEY=value|show|get KEY> [--json] [--locale=fr]',
59
+ help_genome_doctor:
60
+ 'aioson genome:doctor <fichier> [--json] [--locale=fr]',
61
+ help_genome_migrate:
62
+ 'aioson genome:migrate <fichier-ou-dossier> [--write] [--no-backup] [--json] [--locale=fr]',
63
+ help_squad_status:
64
+ 'aioson squad:status [path] [--json] [--locale=fr]',
65
+ help_squad_repair_genomes:
66
+ 'aioson squad:repair-genomes <manifest.json> [--write] [--no-backup] [--json] [--locale=fr]',
67
+ help_squad_validate:
68
+ 'aioson squad:validate [path] --squad=<slug> [--locale=fr]',
69
+ help_squad_export:
70
+ 'aioson squad:export [path] --squad=<slug> [--locale=fr]',
71
+ help_squad_pipeline:
72
+ 'aioson squad:pipeline [path] [--sub=list|show|status] [--pipeline=<slug>] [--locale=fr]',
73
+ dashboard_moved:
74
+ 'Le flux `{command}` a été supprimé du CLI. Le dashboard AIOSON est désormais installé séparément. Ouvrez l application dashboard sur votre ordinateur, créez ou ajoutez un projet, puis sélectionnez le dossier qui contient déjà `.aioson/`.',
75
+ dashboard_moved_line: '{message}\n',
76
+ unknown_command: 'Commande inconnue : {command}',
77
+ unknown_command_line: '{message}\n',
78
+ error_prefix: 'Erreur : {message}'
79
+ },
80
+ init: {
81
+ usage_error:
82
+ 'Utilisation : aioson init <project-name> [--force] [--dry-run] [--lang=en|pt-BR|es|fr] [--tool=codex|claude|gemini|opencode] [--locale=fr]',
83
+ non_empty_dir: 'Le repertoire n est pas vide : {targetDir}. Utilisez --force pour continuer.',
84
+ created_at: 'Projet cree dans : {targetDir}',
85
+ files_copied: 'Fichiers copies : {count}',
86
+ files_skipped: 'Fichiers ignores : {count}',
87
+ next_steps: 'Etapes suivantes :',
88
+ step_cd: '1. cd {projectName}',
89
+ step_setup: '2. Ouvrez dans votre AI CLI et executez @setup',
90
+ step_agents: '3. Si aucun selecteur visuel n apparait, lancez : aioson agents',
91
+ step_agent_prompt:
92
+ '4. Generez le prompt setup pour votre outil : aioson agent:prompt setup --tool={tool}'
93
+ },
94
+ install: {
95
+ framework_detected: 'Framework detecte : {framework} ({evidence})',
96
+ framework_not_detected: 'Aucun framework detecte. Installation en mode generique.',
97
+ done_at: 'Installation terminee dans : {targetDir}',
98
+ files_copied: 'Fichiers copies : {count}',
99
+ files_skipped: 'Fichiers ignores : {count}',
100
+ next_steps: 'Etapes suivantes :',
101
+ step_setup_context: '1. Generez/mettez a jour le contexte projet : aioson setup:context --defaults',
102
+ step_agents: '2. Si aucun selecteur visuel n apparait, lancez : aioson agents',
103
+ step_agent_prompt:
104
+ '3. Generez le prompt setup pour votre outil : aioson agent:prompt setup --tool={tool}',
105
+ existing_project_detected:
106
+ '⚠ Projet existant detecte ({count} fichiers). Lancez le scanner avant de commencer :',
107
+ existing_project_scan_hint:
108
+ ' aioson scan:project --folder=src (genere scan-index.md localement ; ajoutez --with-llm pour discovery.md)'
109
+ },
110
+ update: {
111
+ not_installed: 'Aucune installation AIOSON trouvee dans {targetDir}.',
112
+ done_at: 'Mise a jour terminee dans : {targetDir}',
113
+ files_updated: 'Fichiers mis a jour : {count}',
114
+ backups_created: 'Sauvegardes creees : {count}'
115
+ },
116
+ info: {
117
+ cli_version: 'AIOSON CLI : v{version}',
118
+ directory: 'Repertoire : {targetDir}',
119
+ installed_here: 'Installe dans ce repertoire : {value}',
120
+ framework_detected: 'Framework detecte : {framework}',
121
+ evidence: 'Preuve : {evidence}',
122
+ yes: 'oui',
123
+ no: 'non',
124
+ none: 'aucun'
125
+ },
126
+ doctor: {
127
+ ok: 'OK',
128
+ fail: 'ECHEC',
129
+ diagnosis_ok: 'Diagnostic : installation saine.',
130
+ diagnosis_fail: 'Diagnostic : {count} probleme(s) detecte(s).',
131
+ hint_prefix: '-> {hint}',
132
+ check_line: '[{icon}] {message}',
133
+ hint_line: ' Astuce : {hint}',
134
+ fix_action_line: '- Action : {action}',
135
+ detail_line: ' Detail : {text}',
136
+ required_file: 'Fichier requis : {rel}',
137
+ context_generated: 'Contexte principal genere',
138
+ context_hint: 'Executez @setup pour generer .aioson/context/project.context.md',
139
+ context_frontmatter_valid: 'Le frontmatter du contexte est valide',
140
+ context_frontmatter_valid_hint:
141
+ 'Assurez-vous que project.context.md commence par un frontmatter YAML delimite par ---',
142
+ context_frontmatter_invalid: 'Le frontmatter du contexte est invalide ({reason})',
143
+ context_frontmatter_invalid_hint:
144
+ 'Reecrivez project.context.md avec le format de sortie de @setup.',
145
+ context_required_field: 'Champ de contexte requis manquant : {field}',
146
+ context_required_field_hint:
147
+ 'Relancez @setup et confirmez que tous les champs requis sont presents.',
148
+ context_framework_installed_type: '`framework_installed` doit etre booleen (true/false)',
149
+ context_framework_installed_type_hint:
150
+ 'Definissez framework_installed a true ou false sans guillemets.',
151
+ context_classification_value: '`classification` doit etre une des valeurs {expected}',
152
+ context_classification_value_hint: 'Utilisez MICRO, SMALL ou MEDIUM exactement.',
153
+ context_project_type_value: '`project_type` doit etre une des valeurs {expected}',
154
+ context_project_type_value_hint: 'Utilisez web_app, api, site, script ou dapp exactement.',
155
+ context_profile_value: '`profile` doit etre une des valeurs {expected}',
156
+ context_profile_value_hint: 'Utilisez developer, beginner ou team exactement.',
157
+ context_conversation_language_format: '`conversation_language` n est pas une balise BCP-47 valide',
158
+ context_conversation_language_format_hint: 'Utilisez des valeurs comme en, en-US, pt-BR.',
159
+ node_version: 'Node.js >= 18 (actuel : {version})',
160
+ gateway_claude_pointer: 'La passerelle CLAUDE reference les fichiers partages AIOSON',
161
+ gateway_claude_pointer_hint:
162
+ 'Assurez-vous que CLAUDE.md reference .aioson/config.md et .aioson/agents/setup.md.',
163
+ gateway_codex_pointer: 'La passerelle Codex reference les fichiers partages AIOSON',
164
+ gateway_codex_pointer_hint:
165
+ 'Assurez-vous que AGENTS.md reference .aioson/config.md et .aioson/agents/.',
166
+ gateway_gemini_pointer: 'La passerelle Gemini reference les chemins partages commandes et agents',
167
+ gateway_gemini_pointer_hint:
168
+ 'Assurez-vous que .gemini/GEMINI.md reference .gemini/commands/ et .aioson/agents/.',
169
+ gateway_gemini_command_pointer:
170
+ 'Le fichier de commande Gemini pointe vers l agent partage : {file}',
171
+ gateway_gemini_command_pointer_hint:
172
+ 'Assurez-vous que {file} inclut instruction_file = ".aioson/agents/{agent}.md".',
173
+ gateway_opencode_pointer: 'La passerelle OpenCode reference les fichiers partages AIOSON',
174
+ gateway_opencode_pointer_hint:
175
+ 'Assurez-vous que OPENCODE.md reference .aioson/config.md et .aioson/agents/.',
176
+ fix_start: 'Mode de correction sure active.',
177
+ fix_start_dry_run: 'Mode de correction sure active (dry-run).',
178
+ fix_action_required_files: 'Restaurer les fichiers geres manquants depuis le template',
179
+ fix_action_gateway_contracts:
180
+ 'Restaurer les fichiers de contrat de passerelle casses depuis le template',
181
+ fix_action_locale_sync: 'Synchroniser les prompts actifs des agents avec la langue du contexte',
182
+ fix_not_applicable: 'Non applicable pour l etat actuel.',
183
+ fix_target_count: 'Cibles identifiees : {count}',
184
+ fix_applied_count: 'Modifications appliquees : {count}',
185
+ fix_planned_count: 'Modifications planifiees : {count}',
186
+ fix_locale: 'Locale resolu : {locale}',
187
+ fix_summary: 'Modifications de correction sure appliquees : {count}',
188
+ fix_summary_dry_run: '[dry-run] Modifications de correction sure planifiees : {count}'
189
+ },
190
+ i18n_add: {
191
+ usage_error: 'Utilisation : aioson i18n:add <locale> [--force] [--dry-run] [--locale=fr]',
192
+ invalid_locale: 'Code locale invalide : {locale}. Formats attendus comme en, fr, pt-br.',
193
+ base_locale: 'Le locale "en" est le dictionnaire de base et ne peut pas etre genere.',
194
+ locale_exists: 'Le fichier locale existe deja : {path}. Utilisez --force pour ecraser.',
195
+ dry_run_created: '[dry-run] Le scaffold locale serait cree : {locale}',
196
+ dry_run_overwritten: '[dry-run] Le scaffold locale serait ecrase : {locale}',
197
+ created: 'Scaffold locale cree : {locale}',
198
+ overwritten: 'Scaffold locale ecrase : {locale}',
199
+ file_path: 'Fichier locale : {path}',
200
+ next_steps: 'Etapes suivantes :',
201
+ step_translate: '1. Remplacez les chaines anglaises par du texte traduit dans ce fichier.',
202
+ step_try: '2. Lancez la CLI avec --locale={locale} pour valider le nouveau dictionnaire.'
203
+ },
204
+ agents: {
205
+ list_title: 'Agents disponibles (locale resolu : {locale}) :',
206
+ path: 'Chemin',
207
+ active_path: 'Chemin actif',
208
+ depends: 'Depend de',
209
+ output: 'Sortie',
210
+ agent_line: '- Agent : {command} ({id})',
211
+ path_line: ' Chemin : {path}',
212
+ active_path_line: ' Chemin actif : {path}',
213
+ depends_line: ' Depend de : {value}',
214
+ output_line: ' Sortie : {value}',
215
+ none: 'aucun',
216
+ prompt_usage_error:
217
+ 'Utilisation : aioson agent:prompt <agent> [path] [--tool=codex|claude|gemini|opencode] [--lang=en|pt-BR|es|fr] [--locale=fr]',
218
+ prompt_unknown_agent: 'Agent inconnu : {agent}',
219
+ prompt_title: 'Prompt pour l agent "{agent}" sur l outil "{tool}" (locale : {locale}) :'
220
+ },
221
+ context_validate: {
222
+ missing_file: 'Fichier de contexte introuvable : {path}',
223
+ hint_setup: 'Executez @setup pour generer le fichier.',
224
+ invalid_frontmatter: 'Le fichier de contexte contient un frontmatter YAML invalide.',
225
+ file_path: 'Fichier de contexte : {path}',
226
+ parse_reason_unknown: 'inconnu',
227
+ parse_reason_missing_frontmatter: 'delimiteur de frontmatter initial manquant',
228
+ parse_reason_unclosed_frontmatter: 'bloc de frontmatter non ferme',
229
+ parse_reason_invalid_frontmatter_line: 'syntaxe invalide sur une ligne de frontmatter',
230
+ parse_reason: 'Raison du parse : {reason}',
231
+ hint_fix_frontmatter: 'Utilisez @setup pour regenerer un fichier de contexte valide.',
232
+ invalid_fields: 'Le fichier de contexte est parse mais comporte des problemes de validation :',
233
+ issue_line: '- {issue}',
234
+ valid: 'Le fichier de contexte est valide.'
235
+ },
236
+ setup_context: {
237
+ detected: 'Framework detecte : {framework} (installed={installed})',
238
+ q_project_name: 'Nom du projet',
239
+ q_project_type: 'Type de projet (web_app|api|site|script|dapp)',
240
+ q_profile: 'Profil : [1] developer [2] beginner [3] team',
241
+ q_use_detected_framework: 'Utiliser le framework detecte ? (true/false)',
242
+ q_framework: 'Framework',
243
+ q_framework_installed: 'Framework installe ? (true/false)',
244
+ q_language: 'Langue de conversation (par exemple en ou pt-BR)',
245
+ q_backend_menu:
246
+ 'Backend: [1] Laravel [2] Rails [3] Django [4] Node/Express [5] Next.js [6] Nuxt [7] Hardhat [8] Foundry [9] Truffle [10] Anchor [11] Solana Web3 [12] Cardano [13] Other',
247
+ q_backend_text: 'Backend (texte libre)',
248
+ q_laravel_version: 'Version Laravel (par exemple 11, 10)',
249
+ q_frontend_menu:
250
+ 'Frontend: [1] TALL Stack [2] VILT Stack [3] Blade [4] Next.js [5] Nuxt [6] React [7] Vue [8] Other',
251
+ q_frontend_text: 'Frontend (texte libre)',
252
+ q_auth_menu:
253
+ 'Auth (Laravel): [1] Breeze [2] Jetstream + Livewire [3] Filament Shield [4] Custom',
254
+ q_web3_enabled: 'Web3 active ? (true/false)',
255
+ q_web3_networks: 'Reseaux Web3 (par exemple ethereum, solana, cardano)',
256
+ q_contract_framework: 'Framework de contrats (par exemple Hardhat, Foundry, Anchor, Aiken)',
257
+ q_wallet_provider: 'Fournisseur wallet (par exemple wagmi, RainbowKit, Phantom, Lace)',
258
+ q_indexer: 'Indexer (par exemple The Graph, Helius, Blockfrost)',
259
+ q_rpc_provider: 'Fournisseur RPC (par exemple Alchemy, Infura, QuickNode)',
260
+ q_jetstream_teams: 'Jetstream teams active ? (true/false)',
261
+ q_jetstream_existing_action:
262
+ 'Projet Laravel existant sans Jetstream detecte. Action : [1] continuer sans Jetstream [2] recreer avec Jetstream (recommande) [3] installation manuelle (risque)',
263
+ q_auth_text: 'Approche d authentification (texte libre)',
264
+ q_uiux_menu: 'UI/UX: [1] Tailwind [2] Flux UI [3] shadcn/ui [4] Filament',
265
+ q_uiux_text: 'Approche UI/UX (texte libre)',
266
+ q_database_menu:
267
+ 'Base de donnees: [1] MySQL [2] PostgreSQL [3] SQLite [4] MongoDB [5] Supabase [6] PlanetScale',
268
+ q_database_text: 'Base de donnees (texte libre)',
269
+ q_services_list:
270
+ 'Services additionnels (liste separee par virgules) : queues, storage, websockets, payments, email, cache, search',
271
+ q_rails_options:
272
+ 'Options utilisees dans Rails (liste separee par virgules, ex. --database=postgresql,--css=tailwind,--api)',
273
+ q_next_options:
274
+ 'Options create-next-app (liste separee par virgules, ex. TypeScript,ESLint,Tailwind CSS,App Router,src/ directory)',
275
+ q_beginner_summary: 'Decrivez votre projet en une phrase',
276
+ q_beginner_users:
277
+ 'Utilisateurs attendus : [1] personnel/petit jusqu a 10 [2] petite equipe jusqu a 100 [3] clients externes',
278
+ q_beginner_mobile: 'Besoin mobile : [1] app mobile [2] web responsive [3] desktop uniquement',
279
+ q_beginner_hosting: 'Preference d hebergement : [1] gere simple [2] VPS [3] cloud provider',
280
+ q_beginner_accept_recommendation: 'Accepter la recommandation initiale ? (true/false)',
281
+ beginner_recommendation:
282
+ 'Recommandation initiale -> framework: {framework}, frontend: {frontend}, database: {database}, auth: {auth}',
283
+ q_user_types: 'Combien de types d utilisateurs ?',
284
+ q_integrations: 'Combien d integrations externes ?',
285
+ q_rules_complexity: 'Complexite des regles (none|some|complex)',
286
+ note_status_enabled: 'active',
287
+ note_status_disabled: 'desactive',
288
+ note_jetstream_teams: 'Jetstream teams : {status}',
289
+ note_selected_services: 'Services selectionnes : {services}',
290
+ note_rails_setup_flags: 'Flags de setup Rails : {flags}',
291
+ note_next_setup_flags: 'Flags de setup Next.js : {flags}',
292
+ note_next_create_flags: 'Flags create-next-app : {flags}',
293
+ note_jetstream_existing_action:
294
+ 'Action pour projet existant avec Jetstream : {action}',
295
+ note_mobile_first:
296
+ 'Besoin mobile-first detecte ; envisagez React Native/Expo en etape suivante.',
297
+ note_vps_preference:
298
+ 'Preference VPS detectee ; gardez des scripts de deploiement simples et reproductibles.',
299
+ note_cloud_profile:
300
+ 'Profil cloud detecte ; utilisez base geree et object storage des le depart.',
301
+ note_web3_terms:
302
+ 'Termes Web3 detectes ; recommandation initiale dApp appliquee.',
303
+ note_starter_profile:
304
+ 'Cette recommandation est un profil de depart ; ajustez-la quand les besoins seront plus clairs.',
305
+ note_team_profile:
306
+ 'Profil equipe selectionne ; preservez des conventions d equipe explicites et des regles CI.',
307
+ note_beginner_declined:
308
+ 'Recommandation initiale refusee ; utilisation d une stack personnalisee issue de l onboarding.',
309
+ note_monorepo:
310
+ 'Monorepo detecte : framework Web3 et framework applicatif coexistent. Confirmer le framework principal avec l utilisateur et documenter la structure dans Notes.',
311
+ written: 'Fichier contexte ecrit : {path}',
312
+ classification_result: 'Classification : {classification} (score={score}/6)',
313
+ locale_applied: 'Pack d agents localise applique : {locale} ({count} fichiers)'
314
+ },
315
+ locale_apply: {
316
+ applied: 'Pack locale applique : {locale}',
317
+ dry_run_applied: '[dry-run] Le pack locale serait applique : {locale}',
318
+ copied_count: 'Fichiers copies : {count}',
319
+ missing_count: 'Fichiers locale manquants : {count}',
320
+ copy_line: ' Fichier : {source} -> {target}'
321
+ },
322
+ smoke: {
323
+ start: 'Execution du smoke test dans : {projectDir}',
324
+ using_web3_profile: 'Utilisation du profil smoke Web3 : {target}',
325
+ using_mixed_profile: 'Utilisation du profil monorepo mixte Web2+Web3.',
326
+ using_parallel_profile: 'Utilisation du profil smoke d orchestration parallele.',
327
+ seeded_web3_workspace: 'Workspace initialise pour la cible Web3 : {target}',
328
+ seeded_mixed_workspace: 'Workspace initialise pour le profil mixte Web2+Web3.',
329
+ seeded_parallel_context: 'Contexte discovery/architecture/prd initialise pour le profil parallele.',
330
+ step_ok: 'OK : {step}',
331
+ web3_detected: 'Framework Web3 detecte : {framework} ({network})',
332
+ web3_context_verified: 'Contexte Web3 verifie pour le reseau : {network}',
333
+ mixed_context_verified: 'Contexte du profil mixte verifie (framework : {framework}).',
334
+ parallel_status_verified: 'Statut parallele verifie pour les lanes : {count}',
335
+ invalid_web3_target: 'Valeur --web3 invalide : {target}. Utilisez ethereum, solana ou cardano.',
336
+ invalid_profile:
337
+ 'Valeur --profile invalide : {profile}. Utilisez standard, mixed ou parallel.',
338
+ profile_conflict: 'Ne combinez pas --profile=mixed avec --web3. Choisissez un seul mode.',
339
+ assert_install_files: 'install a copie zero fichier',
340
+ assert_web3_framework: 'detection inattendue du framework web3 : {framework}',
341
+ assert_setup_written: 'setup:context n a pas ecrit le fichier de contexte',
342
+ assert_setup_project_type_dapp: 'setup n a pas infere project_type=dapp',
343
+ assert_setup_web3_network: 'setup n a pas infere le reseau web3 attendu',
344
+ assert_setup_web3_framework: 'setup n a pas conserve le framework web3 attendu',
345
+ assert_mixed_project_type_dapp: 'le profil mixed n a pas infere project_type=dapp',
346
+ assert_mixed_web3_enabled: 'le profil mixed n a pas infere web3_enabled=true',
347
+ assert_mixed_framework: 'le profil mixed n a pas privilegie le framework web3 attendu',
348
+ assert_locale_apply_files: 'locale:apply a copie zero fichier',
349
+ assert_agents_count: 'la commande agents a retourne un nombre inattendu',
350
+ assert_prompt_path: 'agent:prompt n a pas inclus le chemin attendu',
351
+ assert_context_validate: 'context:validate a echoue',
352
+ assert_web3_context_valid: 'echec du parse du contexte web3',
353
+ assert_web3_context_project_type: 'project_type du contexte n est pas dapp',
354
+ assert_web3_context_enabled: 'web3_enabled du contexte n est pas true',
355
+ assert_web3_context_network:
356
+ 'web3_networks du contexte n inclut pas la cible attendue',
357
+ assert_doctor_ok: 'la verification doctor a echoue',
358
+ assert_parallel_init_ok: 'parallel:init a echoue',
359
+ assert_parallel_init_workers: 'les workers de parallel:init ne correspondent pas',
360
+ assert_parallel_assign_ok: 'parallel:assign a echoue',
361
+ assert_parallel_assign_scope: 'parallel:assign n a produit aucun scope',
362
+ assert_parallel_status_ok: 'parallel:status a echoue',
363
+ assert_parallel_status_lanes: 'le nombre de lanes dans parallel:status ne correspond pas',
364
+ assert_parallel_doctor_ok: 'parallel:doctor a echoue',
365
+ assert_parallel_doctor_summary: 'parallel:doctor a signale des echecs',
366
+ completed: 'Smoke test termine avec succes.',
367
+ steps_count: 'Etapes validees : {count}',
368
+ workspace_kept: 'Workspace conserve : {path}',
369
+ workspace_removed: 'Workspace supprime : {path}'
370
+ },
371
+ package_test: {
372
+ start: 'Execution du test package depuis la source : {sourceDir}',
373
+ pack_done: 'Tarball package cree : {tarball}',
374
+ completed: 'Test package termine avec {count} etapes validees.',
375
+ workspace: 'Workspace du test package : {path}',
376
+ error_unknown_detail: 'erreur inconnue',
377
+ error_npm_pack: 'npm pack a echoue : {detail}',
378
+ error_tarball_missing: 'npm pack n a pas retourne le nom du tarball',
379
+ error_npx_init: 'npx init a echoue : {detail}',
380
+ error_npx_setup_context: 'npx setup:context a echoue : {detail}',
381
+ error_npx_doctor: 'npx doctor a echoue : {detail}',
382
+ error_doctor_not_ok: 'doctor a retourne ok=false pendant le test package',
383
+ error_npx_mcp_init: 'npx mcp:init a echoue : {detail}',
384
+ error_mcp_not_ok: 'mcp:init a retourne ok=false pendant le test package'
385
+ },
386
+ workflow_plan: {
387
+ context_missing:
388
+ 'Fichier contexte introuvable. Utilisation du workflow de secours selon la classification fournie/par defaut.',
389
+ title: 'Workflow recommande pour la classification {classification} :',
390
+ notes: 'Notes :',
391
+ command_line: ' Commande : {command}',
392
+ note_line: ' Note : {note}',
393
+ note_framework_not_installed:
394
+ 'Le framework n est pas encore installe ; terminez l installation du stack avant @dev.',
395
+ note_dapp_context:
396
+ 'Contexte dApp detecte ; incluez les skills Web3 pendant @architect et @dev.',
397
+ note_micro_scope:
398
+ 'Gardez un scope d implementation minimal et evitez les agents optionnels.',
399
+ note_product_optional:
400
+ '@product est optionnel pour MICRO — passez directement a @dev si l idee est deja claire.',
401
+ note_feature_flow:
402
+ 'Flux nouvelle feature (apres configuration initiale) : @product → @analyst → @dev → @qa. Pas de @setup.'
403
+ },
404
+ parallel_init: {
405
+ context_missing:
406
+ 'Fichier de contexte introuvable : {path}. Executez setup:context avant.',
407
+ context_invalid: 'Fichier de contexte invalide ou non parseable : {path}.',
408
+ classification_unknown: 'inconnue',
409
+ requires_medium:
410
+ 'L initialisation parallele est prise en charge uniquement pour la classification MEDIUM (actuelle : {classification}). Utilisez --force pour forcer.',
411
+ invalid_workers:
412
+ 'Valeur --workers invalide. Utilisez un entier entre {min} et {max}.',
413
+ already_exists:
414
+ 'Les fichiers de contexte parallele existent deja ({count}). Utilisez --force pour ecraser.',
415
+ prepared: 'Workspace parallele initialise dans : {path}',
416
+ dry_run_prepared: '[dry-run] Le workspace parallele serait initialise dans : {path}',
417
+ workers_count: 'Workers : {count}',
418
+ files_count: 'Fichiers prepares : {count}',
419
+ missing_prereq_count: 'Fichiers de contexte prerequis manquants : {count}',
420
+ file_line: ' Fichier : {file}'
421
+ },
422
+ parallel_doctor: {
423
+ prefix_ok: 'OK',
424
+ prefix_warn: 'AVERT',
425
+ prefix_fail: 'ECHEC',
426
+ check_line: '[{prefix}] {id} - {message}',
427
+ hint_line: ' Astuce : {hint}',
428
+ invalid_workers:
429
+ 'Valeur --workers invalide. Utilisez un entier entre {min} et {max}.',
430
+ classification_unknown: 'inconnue',
431
+ requires_medium:
432
+ 'Le mode fix de parallel doctor exige la classification MEDIUM (actuelle : {classification}). Utilisez --force pour forcer.',
433
+ report_title: 'Rapport parallel doctor : {path}',
434
+ summary: 'Resume : {passed} valides, {failed} echecs, {warnings} avertissements.',
435
+ fix_summary: 'Corrections paralleles appliquees : {count}',
436
+ fix_summary_dry_run: '[dry-run] Corrections paralleles planifiees : {count}',
437
+ check_context_exists_ok: 'project.context.md existe.',
438
+ check_context_exists_missing: 'project.context.md est manquant.',
439
+ check_context_exists_hint: 'Executez setup:context avant parallel doctor.',
440
+ check_context_parsed_ok: 'project.context.md est parseable.',
441
+ check_context_parsed_invalid: 'project.context.md est invalide.',
442
+ check_context_parsed_hint:
443
+ 'Corrigez le frontmatter du contexte avant d executer parallel doctor.',
444
+ check_context_classification_ok:
445
+ 'Mode parallele autorise pour la classification {classification}.',
446
+ check_context_classification_invalid:
447
+ 'Mode parallele exige la classification MEDIUM (actuelle : {classification}).',
448
+ check_context_classification_hint:
449
+ 'Utilisez --force pour outrepasser la regle de classification.',
450
+ check_parallel_dir_ok: 'Le repertoire .aioson/context/parallel existe.',
451
+ check_parallel_dir_missing: 'Le repertoire .aioson/context/parallel est manquant.',
452
+ check_parallel_dir_hint: 'Executez parallel:init ou parallel:doctor --fix.',
453
+ check_parallel_shared_ok: 'shared-decisions.md est present.',
454
+ check_parallel_shared_missing: 'shared-decisions.md est manquant.',
455
+ check_parallel_shared_hint:
456
+ 'Executez parallel:doctor --fix pour restaurer les fichiers de base.',
457
+ check_lanes_present_ok: '{count} fichier(s) de lane detecte(s).',
458
+ check_lanes_present_missing: 'Aucun fichier de statut de lane n a ete trouve.',
459
+ check_lanes_present_hint: 'Executez parallel:init ou parallel:doctor --fix.',
460
+ check_lanes_sequence_ok: 'La sequence de lanes est continue (1..{workers}).',
461
+ check_lanes_sequence_missing: 'Fichiers de lane manquants dans la sequence : {lanes}',
462
+ check_lanes_sequence_hint:
463
+ 'Executez parallel:doctor --fix pour restaurer les lanes manquantes.',
464
+ check_workers_option: 'Option workers demandee : {workers}.',
465
+ check_prereq_ok: 'Tous les fichiers de contexte prerequis sont presents.',
466
+ check_prereq_missing: '{count} fichier(s) de contexte prerequis manquant(s).',
467
+ check_prereq_hint:
468
+ 'Creez les fichiers discovery/architecture/prd avant l orchestration.'
469
+ },
470
+ parallel_assign: {
471
+ invalid_workers:
472
+ 'Valeur --workers invalide. Utilisez un entier entre {min} et {max}.',
473
+ context_missing: 'Fichier de contexte introuvable : {path}.',
474
+ context_invalid: 'Fichier de contexte invalide ou non parseable : {path}.',
475
+ classification_unknown: 'inconnue',
476
+ requires_medium:
477
+ 'L attribution parallele exige la classification MEDIUM (actuelle : {classification}). Utilisez --force pour forcer.',
478
+ parallel_missing:
479
+ 'Repertoire parallele introuvable : {path}. Executez parallel:init avant.',
480
+ no_lanes: 'Aucun fichier de lane trouve dans .aioson/context/parallel.',
481
+ missing_lanes: 'Fichiers de lane manquants pour les workers demandes : {lanes}.',
482
+ source_missing: 'Impossible de resoudre le document source avec --source={source}.',
483
+ applied: 'Attribution de scope parallele appliquee ({count} element(s) de scope).',
484
+ dry_run_applied:
485
+ '[dry-run] Attribution de scope parallele planifiee ({count} element(s) de scope).',
486
+ source_info: 'Document source : {source}',
487
+ workers_count: 'Workers : {count}',
488
+ files_count: 'Fichiers mis a jour : {count}',
489
+ lane_scope_line: '- lane {lane} : {count} element(s) de scope'
490
+ },
491
+ parallel_status: {
492
+ parallel_missing:
493
+ 'Repertoire parallele introuvable : {path}. Executez parallel:init avant.',
494
+ no_lanes: 'Aucun fichier de lane trouve dans .aioson/context/parallel.',
495
+ title: 'Rapport de statut parallele : {path}',
496
+ lanes_count: 'Lanes : {count}',
497
+ statuses_title: 'Statuts :',
498
+ status_line: '- {status} : {count}',
499
+ status_pending: 'en_attente',
500
+ status_in_progress: 'en_cours',
501
+ status_completed: 'termine',
502
+ status_blocked: 'bloque',
503
+ status_other: 'autre',
504
+ scopes_count: 'Total des elements de scope : {count}',
505
+ deliverables_progress: 'Livrables : {completed}/{total} termines',
506
+ blockers_count: 'Blocages ouverts : {count}',
507
+ shared_decisions: 'Entrees du journal de decisions partagees : {count}',
508
+ lane_line: '- lane {lane} : status={status}, scope={scope}, blocages={blockers}'
509
+ },
510
+ mcp_init: {
511
+ context_missing:
512
+ 'Fichier contexte introuvable. Generation d un plan MCP de base avec hypotheses generiques.',
513
+ invalid_tool: 'Valeur --tool invalide : {tool}. Utilisez une de ces valeurs : {expected}.',
514
+ reason_filesystem: 'Acces local obligatoire au workspace.',
515
+ reason_context7:
516
+ 'Utilisez une documentation officielle a jour au moment de l implementation.',
517
+ reason_database_none: 'Aucun stack de base de donnees detecte pour le moment.',
518
+ reason_database_enabled:
519
+ 'Le contexte indique des fonctionnalites avec base de donnees (endpoint MCP distant recommande).',
520
+ reason_web_search:
521
+ 'Utile pour evaluer les packages et verifier les notes de version.',
522
+ reason_chain_rpc_disabled: 'Web3 est desactive pour ce projet.',
523
+ reason_chain_rpc_enabled: 'Contexte dApp detecte ; acces RPC de chain requis.',
524
+ reason_makopy: 'Integration optionnelle de pipeline de contenu.',
525
+ note_workspace_local: 'Ceci est un preset local de workspace genere par AIOSON.',
526
+ note_replace_placeholders:
527
+ 'Remplacez les commandes placeholder par les serveurs MCP que vous utilisez.',
528
+ note_keep_secrets_env:
529
+ 'Gardez les secrets dans des variables d environnement, jamais inline tokens.',
530
+ generated: 'Plan MCP ecrit : {path}',
531
+ dry_run_generated: '[dry-run] Le plan MCP serait ecrit : {path}',
532
+ server_count: 'Serveurs MCP dans le plan : {count}',
533
+ preset_count: 'Presets outils generes : {count}',
534
+ preset_written: 'Preset ecrit ({tool}) : {path}',
535
+ preset_dry_run: '[dry-run] Le preset serait ecrit ({tool}) : {path}'
536
+ },
537
+ mcp_doctor: {
538
+ prefix_ok: 'OK',
539
+ prefix_warn: 'AVERT',
540
+ prefix_fail: 'ECHEC',
541
+ check_line: '[{prefix}] {id} - {message}',
542
+ hint_line: ' Astuce : {hint}',
543
+ context_missing: 'project.context.md introuvable.',
544
+ context_missing_hint: 'Executez setup d abord pour une validation MCP basee sur le contexte.',
545
+ context_parse_invalid: 'project.context.md n a pas pu etre parse ({reason}).',
546
+ context_parse_invalid_hint:
547
+ 'Corrigez le format du contexte pour activer la validation MCP selon le stack.',
548
+ context_ok: 'project.context.md est disponible et parseable.',
549
+ plan_missing: 'Fichier de plan MCP introuvable (.aioson/mcp/servers.local.json).',
550
+ plan_missing_hint: 'Executez : aioson mcp:init',
551
+ plan_invalid: 'JSON du plan MCP invalide : {error}',
552
+ plan_invalid_hint: 'Regenerez le plan avec : aioson mcp:init',
553
+ plan_ok: 'Le fichier de plan MCP est present et JSON valide.',
554
+ plan_servers_ok: 'Le plan MCP declare {count} definition(s) de serveur.',
555
+ plan_servers_missing: 'Le plan MCP ne contient aucune definition de serveur.',
556
+ plan_servers_hint: 'Regenerez avec : aioson mcp:init',
557
+ core_enabled: 'Le serveur MCP core "{server}" est active.',
558
+ core_missing: 'Le serveur MCP core "{server}" est absent ou desactive.',
559
+ core_missing_hint: 'Regenerez et gardez les serveurs core de base actives.',
560
+ presets_any_ok: '{count} fichier(s) de preset MCP trouve(s).',
561
+ presets_any_missing: 'Aucun fichier de preset MCP trouve.',
562
+ presets_any_hint: 'Executez : aioson mcp:init',
563
+ presets_coverage_partial:
564
+ 'Seulement {existing}/{total} presets outils sont presents.',
565
+ presets_coverage_partial_hint:
566
+ 'Executez : aioson mcp:init (sans --tool) pour generer tous les presets.',
567
+ presets_coverage_full:
568
+ 'Tous les presets outils sont presents (claude, codex, gemini, opencode).',
569
+ env_none_required:
570
+ 'Aucune variable d environnement requise dans les serveurs MCP actives.',
571
+ env_missing:
572
+ '{missing}/{total} variable(s) d environnement requise(s) manquante(s) : {vars}',
573
+ env_missing_hint_strict: 'Definissez les variables manquantes avant execution.',
574
+ env_missing_hint_relaxed:
575
+ 'Definissez les variables pour une disponibilite runtime complete. Utilisez --strict-env pour echouer sur ce controle.',
576
+ env_all_present: 'Toutes les variables requises sont disponibles ({count}).',
577
+ compat_database_ok:
578
+ 'Database MCP correspond au moteur de stack du contexte ({engine}).',
579
+ compat_database_mismatch:
580
+ 'Database MCP ne correspond pas completement au stack du contexte ({engine}).',
581
+ compat_database_hint:
582
+ 'Regenerez avec : aioson mcp:init, ou ajustez manuellement le serveur database.',
583
+ compat_web3_ok: 'MCP chain-rpc est active pour le contexte Web3.',
584
+ compat_web3_missing:
585
+ 'Contexte Web3 detecte, mais chain-rpc MCP est absent ou desactive.',
586
+ compat_web3_missing_hint: 'Regenerez avec : aioson mcp:init',
587
+ compat_web3_unneeded: 'chain-rpc MCP est active, mais le contexte n est pas Web3.',
588
+ compat_web3_unneeded_hint: 'Desactivez chain-rpc si non necessaire.',
589
+ report_title: 'Rapport MCP doctor : {path}',
590
+ summary: 'Resume : {passed} valides, {failed} echecs, {warnings} avertissements.'
591
+ },
592
+ qa_doctor: {
593
+ prefix_ok: 'OK',
594
+ prefix_warn: 'AVERT',
595
+ prefix_fail: 'ECHEC',
596
+ check_line: '[{prefix}] {id} - {message}',
597
+ hint_line: ' Conseil : {hint}',
598
+ report_title: 'Rapport QA doctor : {path}',
599
+ summary: 'Resume : {passed} valides, {failed} echecs, {warnings} avertissements.',
600
+ playwright_ok: 'Playwright est installe.',
601
+ playwright_missing: 'Package Playwright introuvable.',
602
+ playwright_missing_hint: 'Executez : npm install -g playwright && npx playwright install chromium',
603
+ chromium_ok: 'Binaire Chromium trouve.',
604
+ chromium_missing: 'Binaire Chromium introuvable.',
605
+ chromium_missing_hint: 'Executez : npx playwright install chromium',
606
+ config_ok: 'aios-qa.config.json trouve et valide.',
607
+ config_missing: 'aios-qa.config.json introuvable.',
608
+ config_missing_hint: 'Executez : aioson qa:init --url=<url-de-votre-app>',
609
+ config_invalid: 'aios-qa.config.json n est pas un JSON valide : {error}',
610
+ url_ok: 'URL cible accessible ({url}).',
611
+ url_missing: 'Aucune URL configuree dans aios-qa.config.json.',
612
+ url_missing_hint: 'Executez : aioson qa:init --url=<url-de-votre-app>',
613
+ url_unreachable: 'URL cible inaccessible ({url}) : {error}',
614
+ url_unreachable_hint: 'Demarrez votre application avant d executer qa:run ou qa:scan.',
615
+ context_ok: 'project.context.md trouve — les tests seront enrichis avec le contexte du projet.',
616
+ context_missing: 'project.context.md introuvable — execution en mode generique.',
617
+ prd_ok: 'prd.md trouve — {count} criteres d acceptance mappes en scenarios de test.',
618
+ prd_missing: 'prd.md introuvable — le mappage de couverture AC sera ignore.'
619
+ },
620
+ qa_init: {
621
+ context_found: 'Contexte trouve : projet={name}, url={url}',
622
+ prd_found: 'prd.md trouve — {count} criteres d acceptance extraits en scenarios de test.',
623
+ prd_missing: 'prd.md introuvable — aucun scenario AC genere.',
624
+ generated: 'Configuration QA ecrite : {path}',
625
+ dry_run_generated: '[dry-run] La configuration QA serait ecrite : {path}',
626
+ scenarios_count: 'Scenarios de test issus du prd.md : {count}',
627
+ personas_count: 'Personas activees : {count} (naive, hacker, power, mobile)',
628
+ probes_count: 'Sondes de securite activees : {count}',
629
+ next_steps: 'Prochaines etapes :',
630
+ step_doctor: '1. Verifier les prerequis : aioson qa:doctor',
631
+ step_run: '2. Lancer les tests navigateur : aioson qa:run'
632
+ },
633
+ qa_run: {
634
+ playwright_missing: 'Playwright non installe. Executez : npm install -g playwright && npx playwright install chromium',
635
+ config_missing: 'aios-qa.config.json introuvable. Executez : aioson qa:init --url=<url-de-votre-app>',
636
+ url_missing: 'Aucune URL configuree. Ajoutez url dans aios-qa.config.json ou utilisez --url=<app-url>.',
637
+ starting: 'Demarrage de la session QA navigateur : {url}',
638
+ persona_start: 'Execution de la persona : {persona}',
639
+ persona_done: 'Persona "{persona}" terminee — {count} finding(s)',
640
+ accessibility: 'Audit d accessibilite en cours...',
641
+ performance: 'Capture des metriques de performance...',
642
+ ac_scenarios: 'Documentation de la couverture AC...',
643
+ done: 'Session QA terminee.',
644
+ report_written: 'Rapport ecrit : {path}',
645
+ json_written: 'Rapport JSON ecrit : {path}',
646
+ screenshots_dir: 'Captures sauvegardees dans : {path}',
647
+ findings_summary: 'Findings : {critical} critique(s), {high} eleve(s), {medium} moyen(s), {low} faible(s)',
648
+ html_report_written: 'Rapport HTML ecrit : {path}'
649
+ },
650
+ qa_scan: {
651
+ playwright_missing: 'Playwright non installe. Executez : npm install -g playwright && npx playwright install chromium',
652
+ config_missing: 'aios-qa.config.json introuvable. Executez : aioson qa:init --url=<url-de-votre-app>',
653
+ url_missing: 'Aucune URL configuree. Ajoutez url dans aios-qa.config.json ou utilisez --url=<app-url>.',
654
+ starting: 'Demarrage du scan autonome : {url}',
655
+ crawling: 'Exploration des routes (profondeur max {depth}, max {pages} pages)...',
656
+ routes_found: 'Routes decouvertes : {count}',
657
+ scanning_route: 'Scan en cours : {route}',
658
+ done: 'Scan autonome termine.',
659
+ report_written: 'Rapport ecrit : {path}',
660
+ findings_summary: 'Findings : {critical} critique(s), {high} eleve(s), {medium} moyen(s), {low} faible(s)',
661
+ html_report_written: 'Rapport HTML ecrit : {path}'
662
+ },
663
+ qa_report: {
664
+ not_found: 'Aucun rapport QA trouve. Executez : aioson qa:run ou aioson qa:scan',
665
+ html_report_written: 'Rapport HTML ecrit : {path}'
666
+ },
667
+ config: {
668
+ usage_error:
669
+ 'Utilisation : aioson config <set KEY=value|show|get KEY> [--json] [--locale=fr]',
670
+ set_ok: 'Cle configuree : {key} (sauvegardee dans {path})',
671
+ show_header: 'Config globale : {path}',
672
+ show_empty: ' (aucune cle configuree)',
673
+ show_line: ' {key} = {value}',
674
+ get_line: '{key} = {value}',
675
+ key_not_found: 'Cle introuvable : {key}'
676
+ },
677
+ squad_status: {
678
+ no_squad: 'Aucun squad trouve.',
679
+ hint: 'Utilisez @squad dans votre session IA pour constituer un squad.',
680
+ squads_found: '{count} squad(s) trouves :',
681
+ most_recent: '(plus recent)',
682
+ squad_item: ' [{file}]{marker}',
683
+ name: ' Squad : {value}',
684
+ mode: ' Mode : {value}',
685
+ goal: ' Objectif : {value}',
686
+ agents: ' Agents : {specialists} specialistes / {total} total ({path})',
687
+ sessions: ' Sessions : {count} ({path})',
688
+ latest_html: ' Latest HTML : {value}',
689
+ logs: ' Logs : {count} ({path})',
690
+ genomes: ' Genomes : {count} niveau squad / {agent_count} liens agent'
691
+ },
692
+ scan_project: {
693
+ scanning: 'aioson scan:project — analyse de {dir}',
694
+ folder_required:
695
+ 'Passez --folder=<chemin[,chemin2]> pour generer des scans complets de dossiers precis. Exemple : --folder=src ou --folder=app.',
696
+ folder_not_found: 'Le dossier "{folder}" est introuvable dans ce projet. Dossiers de premier niveau detectes : {available}',
697
+ config_missing: '{file} introuvable. Pour utiliser le mode LLM, copiez aioson-models.json et renseignez vos cles API.',
698
+ config_invalid: 'JSON invalide dans aioson-models.json : {error}',
699
+ provider_missing: 'Provider LLM "{provider}" introuvable dans aioson-models.json. Disponibles : {available}',
700
+ provider_info: ' Provider : {provider}',
701
+ model_info: ' Modele : {model}',
702
+ context_found: ' Contexte : project.context.md trouve',
703
+ context_missing: ' Contexte : project.context.md introuvable (executez aioson setup:context d\'abord)',
704
+ spec_found: ' Spec : spec.md trouve — memoire de developpement incluse',
705
+ local_only: ' LLM : desactivee par defaut — scan local uniquement (utilisez --with-llm pour generer discovery.md + skeleton-system.md)',
706
+ walking: ' Analyse de la structure du projet...',
707
+ walk_done: ' Fichiers : {files} entrees cartographiees | Fichiers cles : {keys} lus',
708
+ index_written: ' Index : scan local ecrit dans {path} (mode: {mode})',
709
+ folders_written: ' Dossiers : carte des dossiers ecrite dans {path}',
710
+ folder_written: ' Dossier : carte complete de {folder} ecrite dans {path}',
711
+ forge_written: ' AIOS : carte utile de .aioson ecrite dans {path}',
712
+ dry_run_done: '[dry-run] Analyserait {treeCount} entrees et {keyCount} fichiers cles — aucun appel LLM.',
713
+ local_done: ' Resultat : scan local termine — index, carte des dossiers, scans demandes et .aioson prets.',
714
+ calling_llm: ' Appel de {provider} ({model})...',
715
+ llm_missing_api_key:
716
+ 'La cle API du provider "{provider}" n est pas encore configuree dans {file}. Renseignez providers.{provider}.api_key ou choisissez un autre provider avec --provider=...',
717
+ llm_error: 'Appel LLM echoue : {error}',
718
+ discovery_written: 'discovery.md ecrit : {path} ({chars} chars)',
719
+ skeleton_written: 'skeleton-system.md ecrit : {path} ({chars} chars)',
720
+ skeleton_missing: 'Delimiteur skeleton absent de la reponse LLM — skeleton-system.md non ecrit.',
721
+ next_steps: '\n Etapes suivantes :',
722
+ step_analyst: ' 1. Ouvrez votre session IA et lancez @analyst — lit discovery.md + skeleton-system.md automatiquement',
723
+ step_dev: ' 2. Lancez @dev — lit skeleton-system.md d\'abord, puis discovery.md + spec.md'
724
+ }
725
+ };