@nac3/forge-cli 0.2.0-alpha.5 → 0.2.0-alpha.59z.119

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 (768) hide show
  1. package/README.md +16 -1
  2. package/dist/a11y/helpers.d.ts +88 -0
  3. package/dist/a11y/helpers.d.ts.map +1 -0
  4. package/dist/a11y/helpers.js +109 -0
  5. package/dist/a11y/helpers.js.map +1 -0
  6. package/dist/agents/config_resolver.d.ts +16 -0
  7. package/dist/agents/config_resolver.d.ts.map +1 -0
  8. package/dist/agents/config_resolver.js +133 -0
  9. package/dist/agents/config_resolver.js.map +1 -0
  10. package/dist/agents/config_schema.d.ts +42 -0
  11. package/dist/agents/config_schema.d.ts.map +1 -0
  12. package/dist/agents/config_schema.js +204 -0
  13. package/dist/agents/config_schema.js.map +1 -0
  14. package/dist/agents/defaults.d.ts +21 -0
  15. package/dist/agents/defaults.d.ts.map +1 -0
  16. package/dist/agents/defaults.js +56 -0
  17. package/dist/agents/defaults.js.map +1 -0
  18. package/dist/agents/runner.d.ts +94 -0
  19. package/dist/agents/runner.d.ts.map +1 -0
  20. package/dist/agents/runner.js +165 -0
  21. package/dist/agents/runner.js.map +1 -0
  22. package/dist/agents/store.d.ts +33 -0
  23. package/dist/agents/store.d.ts.map +1 -0
  24. package/dist/agents/store.js +210 -0
  25. package/dist/agents/store.js.map +1 -0
  26. package/dist/agents/types.d.ts +112 -0
  27. package/dist/agents/types.d.ts.map +1 -0
  28. package/dist/agents/types.js +39 -0
  29. package/dist/agents/types.js.map +1 -0
  30. package/dist/bin/yf.d.ts.map +1 -1
  31. package/dist/bin/yf.js +86 -2
  32. package/dist/bin/yf.js.map +1 -1
  33. package/dist/chat/claude.d.ts +53 -15
  34. package/dist/chat/claude.d.ts.map +1 -1
  35. package/dist/chat/claude.js +152 -27
  36. package/dist/chat/claude.js.map +1 -1
  37. package/dist/chat/graph_auto_ingest.d.ts +46 -0
  38. package/dist/chat/graph_auto_ingest.d.ts.map +1 -0
  39. package/dist/chat/graph_auto_ingest.js +162 -0
  40. package/dist/chat/graph_auto_ingest.js.map +1 -0
  41. package/dist/chat/graph_component_watcher.d.ts +30 -0
  42. package/dist/chat/graph_component_watcher.d.ts.map +1 -0
  43. package/dist/chat/graph_component_watcher.js +220 -0
  44. package/dist/chat/graph_component_watcher.js.map +1 -0
  45. package/dist/chat/panel.d.ts.map +1 -1
  46. package/dist/chat/panel.js +5819 -1455
  47. package/dist/chat/panel.js.map +1 -1
  48. package/dist/chat/project_slug.d.ts +6 -0
  49. package/dist/chat/project_slug.d.ts.map +1 -0
  50. package/dist/chat/project_slug.js +78 -0
  51. package/dist/chat/project_slug.js.map +1 -0
  52. package/dist/chat/semantic_graph_ingest.d.ts +31 -0
  53. package/dist/chat/semantic_graph_ingest.d.ts.map +1 -0
  54. package/dist/chat/semantic_graph_ingest.js +84 -0
  55. package/dist/chat/semantic_graph_ingest.js.map +1 -0
  56. package/dist/chat/semantic_graph_inject.d.ts +25 -0
  57. package/dist/chat/semantic_graph_inject.d.ts.map +1 -0
  58. package/dist/chat/semantic_graph_inject.js +64 -0
  59. package/dist/chat/semantic_graph_inject.js.map +1 -0
  60. package/dist/chat/server.d.ts +50 -0
  61. package/dist/chat/server.d.ts.map +1 -1
  62. package/dist/chat/server.js +1905 -54
  63. package/dist/chat/server.js.map +1 -1
  64. package/dist/chat/spec_extract.d.ts +1 -2
  65. package/dist/chat/spec_extract.d.ts.map +1 -1
  66. package/dist/chat/spec_extract.js +18 -59
  67. package/dist/chat/spec_extract.js.map +1 -1
  68. package/dist/chat/spec_plan.d.ts +1 -2
  69. package/dist/chat/spec_plan.d.ts.map +1 -1
  70. package/dist/chat/spec_plan.js +15 -60
  71. package/dist/chat/spec_plan.js.map +1 -1
  72. package/dist/chat/tools/app_backend_dispatch.d.ts +39 -0
  73. package/dist/chat/tools/app_backend_dispatch.d.ts.map +1 -0
  74. package/dist/chat/tools/app_backend_dispatch.js +239 -0
  75. package/dist/chat/tools/app_backend_dispatch.js.map +1 -0
  76. package/dist/chat/tools/audit_consumers.d.ts +66 -0
  77. package/dist/chat/tools/audit_consumers.d.ts.map +1 -0
  78. package/dist/chat/tools/audit_consumers.js +231 -0
  79. package/dist/chat/tools/audit_consumers.js.map +1 -0
  80. package/dist/chat/tools/fs_editor.d.ts +11 -0
  81. package/dist/chat/tools/fs_editor.d.ts.map +1 -0
  82. package/dist/chat/tools/fs_editor.js +162 -0
  83. package/dist/chat/tools/fs_editor.js.map +1 -0
  84. package/dist/chat/tools/git.d.ts +24 -0
  85. package/dist/chat/tools/git.d.ts.map +1 -1
  86. package/dist/chat/tools/git.js +78 -0
  87. package/dist/chat/tools/git.js.map +1 -1
  88. package/dist/chat/tools/keys.d.ts +9 -0
  89. package/dist/chat/tools/keys.d.ts.map +1 -0
  90. package/dist/chat/tools/keys.js +152 -0
  91. package/dist/chat/tools/keys.js.map +1 -0
  92. package/dist/chat/tools/misc_verbs.d.ts +36 -0
  93. package/dist/chat/tools/misc_verbs.d.ts.map +1 -0
  94. package/dist/chat/tools/misc_verbs.js +405 -0
  95. package/dist/chat/tools/misc_verbs.js.map +1 -0
  96. package/dist/chat/tools/nac3_invoke.d.ts +53 -0
  97. package/dist/chat/tools/nac3_invoke.d.ts.map +1 -0
  98. package/dist/chat/tools/nac3_invoke.js +886 -0
  99. package/dist/chat/tools/nac3_invoke.js.map +1 -0
  100. package/dist/chat/tools/pizarron.d.ts +40 -0
  101. package/dist/chat/tools/pizarron.d.ts.map +1 -0
  102. package/dist/chat/tools/pizarron.js +123 -0
  103. package/dist/chat/tools/pizarron.js.map +1 -0
  104. package/dist/chat/tools/project_lifecycle.d.ts +24 -0
  105. package/dist/chat/tools/project_lifecycle.d.ts.map +1 -0
  106. package/dist/chat/tools/project_lifecycle.js +184 -0
  107. package/dist/chat/tools/project_lifecycle.js.map +1 -0
  108. package/dist/chat/tools/reader.d.ts.map +1 -1
  109. package/dist/chat/tools/reader.js +144 -1
  110. package/dist/chat/tools/reader.js.map +1 -1
  111. package/dist/chat/tools/shell.d.ts +58 -0
  112. package/dist/chat/tools/shell.d.ts.map +1 -0
  113. package/dist/chat/tools/shell.js +253 -0
  114. package/dist/chat/tools/shell.js.map +1 -0
  115. package/dist/chat/tools/workflow.d.ts +45 -0
  116. package/dist/chat/tools/workflow.d.ts.map +1 -0
  117. package/dist/chat/tools/workflow.js +404 -0
  118. package/dist/chat/tools/workflow.js.map +1 -0
  119. package/dist/chat/tools.d.ts +27 -0
  120. package/dist/chat/tools.d.ts.map +1 -1
  121. package/dist/chat/tools.js +362 -13
  122. package/dist/chat/tools.js.map +1 -1
  123. package/dist/chat/workflow_inject.d.ts +52 -0
  124. package/dist/chat/workflow_inject.d.ts.map +1 -0
  125. package/dist/chat/workflow_inject.js +346 -0
  126. package/dist/chat/workflow_inject.js.map +1 -0
  127. package/dist/commands/agent.d.ts +22 -0
  128. package/dist/commands/agent.d.ts.map +1 -0
  129. package/dist/commands/agent.js +190 -0
  130. package/dist/commands/agent.js.map +1 -0
  131. package/dist/commands/approve.d.ts +32 -0
  132. package/dist/commands/approve.d.ts.map +1 -0
  133. package/dist/commands/approve.js +198 -0
  134. package/dist/commands/approve.js.map +1 -0
  135. package/dist/commands/block.d.ts +28 -0
  136. package/dist/commands/block.d.ts.map +1 -0
  137. package/dist/commands/block.js +189 -0
  138. package/dist/commands/block.js.map +1 -0
  139. package/dist/commands/bootstrap.d.ts +35 -0
  140. package/dist/commands/bootstrap.d.ts.map +1 -0
  141. package/dist/commands/bootstrap.js +205 -0
  142. package/dist/commands/bootstrap.js.map +1 -0
  143. package/dist/commands/brain.d.ts +17 -0
  144. package/dist/commands/brain.d.ts.map +1 -0
  145. package/dist/commands/brain.js +129 -0
  146. package/dist/commands/brain.js.map +1 -0
  147. package/dist/commands/chat.d.ts +3 -0
  148. package/dist/commands/chat.d.ts.map +1 -1
  149. package/dist/commands/chat.js +112 -1
  150. package/dist/commands/chat.js.map +1 -1
  151. package/dist/commands/clarify.d.ts +30 -0
  152. package/dist/commands/clarify.d.ts.map +1 -0
  153. package/dist/commands/clarify.js +671 -0
  154. package/dist/commands/clarify.js.map +1 -0
  155. package/dist/commands/discover.d.ts +30 -0
  156. package/dist/commands/discover.d.ts.map +1 -0
  157. package/dist/commands/discover.js +178 -0
  158. package/dist/commands/discover.js.map +1 -0
  159. package/dist/commands/doctor.js +26 -4
  160. package/dist/commands/doctor.js.map +1 -1
  161. package/dist/commands/doctrine.d.ts +24 -0
  162. package/dist/commands/doctrine.d.ts.map +1 -0
  163. package/dist/commands/doctrine.js +106 -0
  164. package/dist/commands/doctrine.js.map +1 -0
  165. package/dist/commands/doctrines.d.ts +21 -0
  166. package/dist/commands/doctrines.d.ts.map +1 -0
  167. package/dist/commands/doctrines.js +158 -0
  168. package/dist/commands/doctrines.js.map +1 -0
  169. package/dist/commands/graph.d.ts +21 -0
  170. package/dist/commands/graph.d.ts.map +1 -0
  171. package/dist/commands/graph.js +363 -0
  172. package/dist/commands/graph.js.map +1 -0
  173. package/dist/commands/keys_setup.d.ts.map +1 -1
  174. package/dist/commands/keys_setup.js +80 -0
  175. package/dist/commands/keys_setup.js.map +1 -1
  176. package/dist/commands/legacy-audit.d.ts +34 -0
  177. package/dist/commands/legacy-audit.d.ts.map +1 -0
  178. package/dist/commands/legacy-audit.js +270 -0
  179. package/dist/commands/legacy-audit.js.map +1 -0
  180. package/dist/commands/lessons.d.ts +28 -0
  181. package/dist/commands/lessons.d.ts.map +1 -0
  182. package/dist/commands/lessons.js +309 -0
  183. package/dist/commands/lessons.js.map +1 -0
  184. package/dist/commands/license.d.ts.map +1 -1
  185. package/dist/commands/license.js +56 -1
  186. package/dist/commands/license.js.map +1 -1
  187. package/dist/commands/limits.d.ts +15 -0
  188. package/dist/commands/limits.d.ts.map +1 -0
  189. package/dist/commands/limits.js +51 -0
  190. package/dist/commands/limits.js.map +1 -0
  191. package/dist/commands/manifest-cli.d.ts +12 -0
  192. package/dist/commands/manifest-cli.d.ts.map +1 -0
  193. package/dist/commands/manifest-cli.js +42 -0
  194. package/dist/commands/manifest-cli.js.map +1 -0
  195. package/dist/commands/mcp.d.ts +24 -0
  196. package/dist/commands/mcp.d.ts.map +1 -0
  197. package/dist/commands/mcp.js +163 -0
  198. package/dist/commands/mcp.js.map +1 -0
  199. package/dist/commands/nac3.d.ts +22 -0
  200. package/dist/commands/nac3.d.ts.map +1 -0
  201. package/dist/commands/nac3.js +125 -0
  202. package/dist/commands/nac3.js.map +1 -0
  203. package/dist/commands/operate.d.ts +22 -0
  204. package/dist/commands/operate.d.ts.map +1 -0
  205. package/dist/commands/operate.js +523 -0
  206. package/dist/commands/operate.js.map +1 -0
  207. package/dist/commands/qa.d.ts +24 -0
  208. package/dist/commands/qa.d.ts.map +1 -0
  209. package/dist/commands/qa.js +349 -0
  210. package/dist/commands/qa.js.map +1 -0
  211. package/dist/commands/spec.d.ts +38 -0
  212. package/dist/commands/spec.d.ts.map +1 -0
  213. package/dist/commands/spec.js +256 -0
  214. package/dist/commands/spec.js.map +1 -0
  215. package/dist/commands/support.d.ts +22 -0
  216. package/dist/commands/support.d.ts.map +1 -0
  217. package/dist/commands/support.js +165 -0
  218. package/dist/commands/support.js.map +1 -0
  219. package/dist/commands/triage.d.ts +34 -0
  220. package/dist/commands/triage.d.ts.map +1 -0
  221. package/dist/commands/triage.js +228 -0
  222. package/dist/commands/triage.js.map +1 -0
  223. package/dist/commands/vault-inventory.d.ts +30 -0
  224. package/dist/commands/vault-inventory.d.ts.map +1 -0
  225. package/dist/commands/vault-inventory.js +222 -0
  226. package/dist/commands/vault-inventory.js.map +1 -0
  227. package/dist/commands/vault.d.ts.map +1 -1
  228. package/dist/commands/vault.js +5 -0
  229. package/dist/commands/vault.js.map +1 -1
  230. package/dist/commands/voice.d.ts.map +1 -1
  231. package/dist/commands/voice.js +47 -4
  232. package/dist/commands/voice.js.map +1 -1
  233. package/dist/commands/workflow-coverage.d.ts +30 -0
  234. package/dist/commands/workflow-coverage.d.ts.map +1 -0
  235. package/dist/commands/workflow-coverage.js +138 -0
  236. package/dist/commands/workflow-coverage.js.map +1 -0
  237. package/dist/core/ansi_strip.d.ts +39 -0
  238. package/dist/core/ansi_strip.d.ts.map +1 -0
  239. package/dist/core/ansi_strip.js +71 -0
  240. package/dist/core/ansi_strip.js.map +1 -0
  241. package/dist/core/audit_log.d.ts +43 -0
  242. package/dist/core/audit_log.d.ts.map +1 -0
  243. package/dist/core/audit_log.js +80 -0
  244. package/dist/core/audit_log.js.map +1 -0
  245. package/dist/core/brain_config.d.ts +33 -0
  246. package/dist/core/brain_config.d.ts.map +1 -0
  247. package/dist/core/brain_config.js +132 -0
  248. package/dist/core/brain_config.js.map +1 -0
  249. package/dist/core/budget.d.ts +96 -0
  250. package/dist/core/budget.d.ts.map +1 -0
  251. package/dist/core/budget.js +300 -0
  252. package/dist/core/budget.js.map +1 -0
  253. package/dist/core/cost_meter.d.ts +35 -0
  254. package/dist/core/cost_meter.d.ts.map +1 -0
  255. package/dist/core/cost_meter.js +111 -0
  256. package/dist/core/cost_meter.js.map +1 -0
  257. package/dist/core/cost_router.d.ts +106 -0
  258. package/dist/core/cost_router.d.ts.map +1 -0
  259. package/dist/core/cost_router.js +465 -0
  260. package/dist/core/cost_router.js.map +1 -0
  261. package/dist/core/doctrine_resolver.d.ts +23 -0
  262. package/dist/core/doctrine_resolver.d.ts.map +1 -0
  263. package/dist/core/doctrine_resolver.js +108 -0
  264. package/dist/core/doctrine_resolver.js.map +1 -0
  265. package/dist/core/error_catalog.d.ts +80 -0
  266. package/dist/core/error_catalog.d.ts.map +1 -0
  267. package/dist/core/error_catalog.js +168 -0
  268. package/dist/core/error_catalog.js.map +1 -0
  269. package/dist/core/error_formatter.d.ts +30 -0
  270. package/dist/core/error_formatter.d.ts.map +1 -0
  271. package/dist/core/error_formatter.js +155 -0
  272. package/dist/core/error_formatter.js.map +1 -0
  273. package/dist/core/incomplete_detector.d.ts +51 -0
  274. package/dist/core/incomplete_detector.d.ts.map +1 -0
  275. package/dist/core/incomplete_detector.js +140 -0
  276. package/dist/core/incomplete_detector.js.map +1 -0
  277. package/dist/core/learnings_client.d.ts +104 -0
  278. package/dist/core/learnings_client.d.ts.map +1 -0
  279. package/dist/core/learnings_client.js +262 -0
  280. package/dist/core/learnings_client.js.map +1 -0
  281. package/dist/core/limits_config.d.ts +76 -0
  282. package/dist/core/limits_config.d.ts.map +1 -0
  283. package/dist/core/limits_config.js +297 -0
  284. package/dist/core/limits_config.js.map +1 -0
  285. package/dist/core/provider_keys.d.ts +35 -0
  286. package/dist/core/provider_keys.d.ts.map +1 -0
  287. package/dist/core/provider_keys.js +260 -0
  288. package/dist/core/provider_keys.js.map +1 -0
  289. package/dist/core/reasoning_gate.d.ts +72 -0
  290. package/dist/core/reasoning_gate.d.ts.map +1 -0
  291. package/dist/core/reasoning_gate.js +192 -0
  292. package/dist/core/reasoning_gate.js.map +1 -0
  293. package/dist/core/shell_classifier.d.ts +49 -0
  294. package/dist/core/shell_classifier.d.ts.map +1 -0
  295. package/dist/core/shell_classifier.js +159 -0
  296. package/dist/core/shell_classifier.js.map +1 -0
  297. package/dist/core/sq_resolver.d.ts +14 -0
  298. package/dist/core/sq_resolver.d.ts.map +1 -0
  299. package/dist/core/sq_resolver.js +230 -0
  300. package/dist/core/sq_resolver.js.map +1 -0
  301. package/dist/core/truncation_detector.d.ts +68 -0
  302. package/dist/core/truncation_detector.d.ts.map +1 -0
  303. package/dist/core/truncation_detector.js +115 -0
  304. package/dist/core/truncation_detector.js.map +1 -0
  305. package/dist/core/turn_classifier.d.ts +62 -0
  306. package/dist/core/turn_classifier.d.ts.map +1 -0
  307. package/dist/core/turn_classifier.js +213 -0
  308. package/dist/core/turn_classifier.js.map +1 -0
  309. package/dist/core/whats_new.d.ts +42 -0
  310. package/dist/core/whats_new.d.ts.map +1 -0
  311. package/dist/core/whats_new.js +214 -0
  312. package/dist/core/whats_new.js.map +1 -0
  313. package/dist/deploy/adapter.d.ts +93 -0
  314. package/dist/deploy/adapter.d.ts.map +1 -0
  315. package/dist/deploy/adapter.js +42 -0
  316. package/dist/deploy/adapter.js.map +1 -0
  317. package/dist/deploy/aws_adapter.d.ts +28 -0
  318. package/dist/deploy/aws_adapter.d.ts.map +1 -0
  319. package/dist/deploy/aws_adapter.js +98 -0
  320. package/dist/deploy/aws_adapter.js.map +1 -0
  321. package/dist/deploy/cloudflare.d.ts +24 -0
  322. package/dist/deploy/cloudflare.d.ts.map +1 -0
  323. package/dist/deploy/cloudflare.js +169 -0
  324. package/dist/deploy/cloudflare.js.map +1 -0
  325. package/dist/docs/LIMITED_RESPONSIBILITY.md +216 -0
  326. package/dist/docs/PRIVACY_POLICY.md +169 -0
  327. package/dist/docs/SQ.md +1397 -0
  328. package/dist/docs/SQ_BY_STEP.yaml +147 -0
  329. package/dist/docs/doctrine/accessibility.md +78 -0
  330. package/dist/docs/doctrine/agent-orchestrator.md +76 -0
  331. package/dist/docs/doctrine/byok-vs-managed.md +81 -0
  332. package/dist/docs/doctrine/cost-router-escalation.md +73 -0
  333. package/dist/docs/doctrine/explain-results.md +90 -0
  334. package/dist/docs/doctrine/g-doc.md +46 -0
  335. package/dist/docs/doctrine/gates.md +21 -0
  336. package/dist/docs/doctrine/lessons-workflow.md +68 -0
  337. package/dist/docs/doctrine/mcp-bridge-lifecycle.md +75 -0
  338. package/dist/docs/doctrine/nac3-attrs.md +23 -0
  339. package/dist/docs/doctrine/office-tools.md +102 -0
  340. package/dist/docs/doctrine/pizarron.md +52 -0
  341. package/dist/docs/doctrine/r8-modal.md +60 -0
  342. package/dist/docs/doctrine/safety-refusals.md +73 -0
  343. package/dist/docs/doctrine/verb-composition.md +68 -0
  344. package/dist/docs/doctrine/workflow-phases.md +108 -0
  345. package/dist/docs/doctrine/workflow.md +58 -0
  346. package/dist/docs/doctrine/yf-commands.md +49 -0
  347. package/dist/json/query.d.ts +38 -0
  348. package/dist/json/query.d.ts.map +1 -0
  349. package/dist/json/query.js +177 -0
  350. package/dist/json/query.js.map +1 -0
  351. package/dist/license/hito4_client.d.ts +19 -0
  352. package/dist/license/hito4_client.d.ts.map +1 -1
  353. package/dist/license/hito4_client.js +110 -0
  354. package/dist/license/hito4_client.js.map +1 -1
  355. package/dist/license/index.d.ts.map +1 -1
  356. package/dist/license/index.js +7 -0
  357. package/dist/license/index.js.map +1 -1
  358. package/dist/license/sync.d.ts +54 -0
  359. package/dist/license/sync.d.ts.map +1 -0
  360. package/dist/license/sync.js +138 -0
  361. package/dist/license/sync.js.map +1 -0
  362. package/dist/llm/cohere_client.d.ts +81 -0
  363. package/dist/llm/cohere_client.d.ts.map +1 -0
  364. package/dist/llm/cohere_client.js +195 -0
  365. package/dist/llm/cohere_client.js.map +1 -0
  366. package/dist/llm/deepseek_client.d.ts +63 -0
  367. package/dist/llm/deepseek_client.d.ts.map +1 -0
  368. package/dist/llm/deepseek_client.js +188 -0
  369. package/dist/llm/deepseek_client.js.map +1 -0
  370. package/dist/llm/gemini_client.d.ts +78 -0
  371. package/dist/llm/gemini_client.d.ts.map +1 -0
  372. package/dist/llm/gemini_client.js +189 -0
  373. package/dist/llm/gemini_client.js.map +1 -0
  374. package/dist/llm/managed_client.d.ts +70 -0
  375. package/dist/llm/managed_client.d.ts.map +1 -0
  376. package/dist/llm/managed_client.js +251 -0
  377. package/dist/llm/managed_client.js.map +1 -0
  378. package/dist/llm/mistral_client.d.ts +54 -0
  379. package/dist/llm/mistral_client.d.ts.map +1 -0
  380. package/dist/llm/mistral_client.js +174 -0
  381. package/dist/llm/mistral_client.js.map +1 -0
  382. package/dist/llm/multi_provider_client.d.ts +57 -0
  383. package/dist/llm/multi_provider_client.d.ts.map +1 -0
  384. package/dist/llm/multi_provider_client.js +109 -0
  385. package/dist/llm/multi_provider_client.js.map +1 -0
  386. package/dist/llm/openai_client.d.ts +77 -0
  387. package/dist/llm/openai_client.d.ts.map +1 -0
  388. package/dist/llm/openai_client.js +200 -0
  389. package/dist/llm/openai_client.js.map +1 -0
  390. package/dist/llm/xai_client.d.ts +51 -0
  391. package/dist/llm/xai_client.d.ts.map +1 -0
  392. package/dist/llm/xai_client.js +174 -0
  393. package/dist/llm/xai_client.js.map +1 -0
  394. package/dist/mcp/bridge_registry.d.ts +77 -0
  395. package/dist/mcp/bridge_registry.d.ts.map +1 -0
  396. package/dist/mcp/bridge_registry.js +220 -0
  397. package/dist/mcp/bridge_registry.js.map +1 -0
  398. package/dist/mcp/config.d.ts +25 -0
  399. package/dist/mcp/config.d.ts.map +1 -0
  400. package/dist/mcp/config.js +116 -0
  401. package/dist/mcp/config.js.map +1 -0
  402. package/dist/mcp/protocol_client.d.ts +63 -0
  403. package/dist/mcp/protocol_client.d.ts.map +1 -0
  404. package/dist/mcp/protocol_client.js +340 -0
  405. package/dist/mcp/protocol_client.js.map +1 -0
  406. package/dist/mcp/state.d.ts +38 -0
  407. package/dist/mcp/state.d.ts.map +1 -0
  408. package/dist/mcp/state.js +144 -0
  409. package/dist/mcp/state.js.map +1 -0
  410. package/dist/migrate/ai-decorator.d.ts.map +1 -1
  411. package/dist/migrate/ai-decorator.js +33 -145
  412. package/dist/migrate/ai-decorator.js.map +1 -1
  413. package/dist/nac3/approval_queue.d.ts +36 -0
  414. package/dist/nac3/approval_queue.d.ts.map +1 -0
  415. package/dist/nac3/approval_queue.js +105 -0
  416. package/dist/nac3/approval_queue.js.map +1 -0
  417. package/dist/nac3/backend_tools.d.ts +89 -0
  418. package/dist/nac3/backend_tools.d.ts.map +1 -0
  419. package/dist/nac3/backend_tools.js +271 -0
  420. package/dist/nac3/backend_tools.js.map +1 -0
  421. package/dist/nac3/dispatch_log.d.ts +35 -0
  422. package/dist/nac3/dispatch_log.d.ts.map +1 -0
  423. package/dist/nac3/dispatch_log.js +126 -0
  424. package/dist/nac3/dispatch_log.js.map +1 -0
  425. package/dist/nac3/internal_manifest.d.ts +62 -0
  426. package/dist/nac3/internal_manifest.d.ts.map +1 -0
  427. package/dist/nac3/internal_manifest.js +1846 -0
  428. package/dist/nac3/internal_manifest.js.map +1 -0
  429. package/dist/nac3/manifest_lazy.d.ts +71 -0
  430. package/dist/nac3/manifest_lazy.d.ts.map +1 -0
  431. package/dist/nac3/manifest_lazy.js +141 -0
  432. package/dist/nac3/manifest_lazy.js.map +1 -0
  433. package/dist/nac3/verb_tier_map.d.ts +80 -0
  434. package/dist/nac3/verb_tier_map.d.ts.map +1 -0
  435. package/dist/nac3/verb_tier_map.js +159 -0
  436. package/dist/nac3/verb_tier_map.js.map +1 -0
  437. package/dist/office/excel.d.ts +110 -0
  438. package/dist/office/excel.d.ts.map +1 -0
  439. package/dist/office/excel.js +276 -0
  440. package/dist/office/excel.js.map +1 -0
  441. package/dist/office/pdf.d.ts +35 -0
  442. package/dist/office/pdf.d.ts.map +1 -0
  443. package/dist/office/pdf.js +70 -0
  444. package/dist/office/pdf.js.map +1 -0
  445. package/dist/office/word.d.ts +64 -0
  446. package/dist/office/word.d.ts.map +1 -0
  447. package/dist/office/word.js +243 -0
  448. package/dist/office/word.js.map +1 -0
  449. package/dist/qa/brain_matrix/ab_runner.d.ts +44 -0
  450. package/dist/qa/brain_matrix/ab_runner.d.ts.map +1 -0
  451. package/dist/qa/brain_matrix/ab_runner.js +144 -0
  452. package/dist/qa/brain_matrix/ab_runner.js.map +1 -0
  453. package/dist/qa/brain_matrix/brains.json +80 -0
  454. package/dist/qa/brain_matrix/compare.d.ts +27 -0
  455. package/dist/qa/brain_matrix/compare.d.ts.map +1 -0
  456. package/dist/qa/brain_matrix/compare.js +122 -0
  457. package/dist/qa/brain_matrix/compare.js.map +1 -0
  458. package/dist/qa/brain_matrix/fake_brain.d.ts +36 -0
  459. package/dist/qa/brain_matrix/fake_brain.d.ts.map +1 -0
  460. package/dist/qa/brain_matrix/fake_brain.js +27 -0
  461. package/dist/qa/brain_matrix/fake_brain.js.map +1 -0
  462. package/dist/qa/brain_matrix/fixtures/scenario_a11y_announce_intent.json +22 -0
  463. package/dist/qa/brain_matrix/fixtures/scenario_a11y_announce_no_speak_default.json +23 -0
  464. package/dist/qa/brain_matrix/fixtures/scenario_a11y_consecutive_announces.json +37 -0
  465. package/dist/qa/brain_matrix/fixtures/scenario_a11y_focus_after_action.json +22 -0
  466. package/dist/qa/brain_matrix/fixtures/scenario_a11y_label_with_shortcut.json +22 -0
  467. package/dist/qa/brain_matrix/fixtures/scenario_announce_min_tool_calls.json +23 -0
  468. package/dist/qa/brain_matrix/fixtures/scenario_app_invoke_happy_path.json +65 -0
  469. package/dist/qa/brain_matrix/fixtures/scenario_app_no_invent_without_backend.json +18 -0
  470. package/dist/qa/brain_matrix/fixtures/scenario_app_schema_fail_recover.json +48 -0
  471. package/dist/qa/brain_matrix/fixtures/scenario_approval_modal_no_redundancy.json +21 -0
  472. package/dist/qa/brain_matrix/fixtures/scenario_args_redacted_in_audit.json +17 -0
  473. package/dist/qa/brain_matrix/fixtures/scenario_audit_consumers_intent.json +19 -0
  474. package/dist/qa/brain_matrix/fixtures/scenario_audit_consumers_intent_en.json +19 -0
  475. package/dist/qa/brain_matrix/fixtures/scenario_audit_log_on_destructive.json +18 -0
  476. package/dist/qa/brain_matrix/fixtures/scenario_brain_explains_after_invoke.json +28 -0
  477. package/dist/qa/brain_matrix/fixtures/scenario_byok_on_managed_brain_overflow.json +28 -0
  478. package/dist/qa/brain_matrix/fixtures/scenario_byok_required_policy.json +35 -0
  479. package/dist/qa/brain_matrix/fixtures/scenario_concise_no_loop.json +23 -0
  480. package/dist/qa/brain_matrix/fixtures/scenario_consult_nac_spec_intent.json +19 -0
  481. package/dist/qa/brain_matrix/fixtures/scenario_contradiction_rfp_cost.json +38 -0
  482. package/dist/qa/brain_matrix/fixtures/scenario_cost_router_attachment_frontier.json +24 -0
  483. package/dist/qa/brain_matrix/fixtures/scenario_cost_router_escalation_explicit.json +23 -0
  484. package/dist/qa/brain_matrix/fixtures/scenario_cost_router_idle_reset.json +24 -0
  485. package/dist/qa/brain_matrix/fixtures/scenario_csv_via_excel_read.json +22 -0
  486. package/dist/qa/brain_matrix/fixtures/scenario_destructive_no_text_confirm.json +20 -0
  487. package/dist/qa/brain_matrix/fixtures/scenario_diff_explains_changes.json +32 -0
  488. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_after_unknown_intent.json +17 -0
  489. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_a11y.json +24 -0
  490. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_agent_orchestrator.json +24 -0
  491. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_byok_vs_managed.json +24 -0
  492. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_cost_router.json +24 -0
  493. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_g_doc.json +24 -0
  494. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_gates.json +23 -0
  495. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_intent_en.json +19 -0
  496. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_lessons_workflow.json +24 -0
  497. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_mcp_lifecycle.json +24 -0
  498. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_nac3_attrs.json +24 -0
  499. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_office.json +24 -0
  500. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_pizarron.json +23 -0
  501. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_r8_modal.json +23 -0
  502. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_workflow.json +23 -0
  503. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_workflow_phases.json +24 -0
  504. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_yf_commands.json +24 -0
  505. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_explain_results.json +22 -0
  506. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_safety_refusals.json +22 -0
  507. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_verb_composition.json +22 -0
  508. package/dist/qa/brain_matrix/fixtures/scenario_eco_defers_complex.json +17 -0
  509. package/dist/qa/brain_matrix/fixtures/scenario_eco_short_query.json +27 -0
  510. package/dist/qa/brain_matrix/fixtures/scenario_env_list_intent.json +20 -0
  511. package/dist/qa/brain_matrix/fixtures/scenario_env_list_intent_en.json +20 -0
  512. package/dist/qa/brain_matrix/fixtures/scenario_env_no_secret_leak.json +21 -0
  513. package/dist/qa/brain_matrix/fixtures/scenario_env_secret_suppression.json +35 -0
  514. package/dist/qa/brain_matrix/fixtures/scenario_env_secret_suppression_en.json +21 -0
  515. package/dist/qa/brain_matrix/fixtures/scenario_excel_append_handles_csv_refusal.json +28 -0
  516. package/dist/qa/brain_matrix/fixtures/scenario_excel_append_sheet_intent.json +20 -0
  517. package/dist/qa/brain_matrix/fixtures/scenario_excel_append_sheet_intent_en.json +20 -0
  518. package/dist/qa/brain_matrix/fixtures/scenario_excel_append_then_list.json +34 -0
  519. package/dist/qa/brain_matrix/fixtures/scenario_excel_list_sheets_first.json +22 -0
  520. package/dist/qa/brain_matrix/fixtures/scenario_excel_sheet_named.json +23 -0
  521. package/dist/qa/brain_matrix/fixtures/scenario_explain_voice_yes.json +22 -0
  522. package/dist/qa/brain_matrix/fixtures/scenario_explains_forge_error.json +39 -0
  523. package/dist/qa/brain_matrix/fixtures/scenario_focus_after_modal_open.json +29 -0
  524. package/dist/qa/brain_matrix/fixtures/scenario_fs_find_intent.json +21 -0
  525. package/dist/qa/brain_matrix/fixtures/scenario_fs_find_intent_en.json +20 -0
  526. package/dist/qa/brain_matrix/fixtures/scenario_fs_find_with_glob.json +22 -0
  527. package/dist/qa/brain_matrix/fixtures/scenario_fs_mkdir_intent.json +20 -0
  528. package/dist/qa/brain_matrix/fixtures/scenario_fs_move_intent.json +20 -0
  529. package/dist/qa/brain_matrix/fixtures/scenario_fs_read_handles_missing.json +28 -0
  530. package/dist/qa/brain_matrix/fixtures/scenario_fs_stat_before_read.json +22 -0
  531. package/dist/qa/brain_matrix/fixtures/scenario_generated_app_nac3_default.json +24 -0
  532. package/dist/qa/brain_matrix/fixtures/scenario_git_branch_list_intent.json +20 -0
  533. package/dist/qa/brain_matrix/fixtures/scenario_git_diff_intent.json +20 -0
  534. package/dist/qa/brain_matrix/fixtures/scenario_git_log_intent.json +20 -0
  535. package/dist/qa/brain_matrix/fixtures/scenario_git_log_intent_en.json +20 -0
  536. package/dist/qa/brain_matrix/fixtures/scenario_git_pull_intent.json +19 -0
  537. package/dist/qa/brain_matrix/fixtures/scenario_git_push_intent.json +20 -0
  538. package/dist/qa/brain_matrix/fixtures/scenario_git_show_metadata_only.json +22 -0
  539. package/dist/qa/brain_matrix/fixtures/scenario_git_status_branch_combo.json +44 -0
  540. package/dist/qa/brain_matrix/fixtures/scenario_git_status_intent.json +20 -0
  541. package/dist/qa/brain_matrix/fixtures/scenario_git_status_intent_en.json +20 -0
  542. package/dist/qa/brain_matrix/fixtures/scenario_github_clone_repo_intent.json +20 -0
  543. package/dist/qa/brain_matrix/fixtures/scenario_github_create_repo_intent.json +20 -0
  544. package/dist/qa/brain_matrix/fixtures/scenario_id_format_in_reply.json +27 -0
  545. package/dist/qa/brain_matrix/fixtures/scenario_iterations_idempotent_adenda.json +27 -0
  546. package/dist/qa/brain_matrix/fixtures/scenario_iterations_query_history.json +29 -0
  547. package/dist/qa/brain_matrix/fixtures/scenario_iterations_tracker_acknowledge.json +28 -0
  548. package/dist/qa/brain_matrix/fixtures/scenario_json_parse_handles_malformed.json +34 -0
  549. package/dist/qa/brain_matrix/fixtures/scenario_json_parse_intent.json +30 -0
  550. package/dist/qa/brain_matrix/fixtures/scenario_json_parse_intent_en.json +30 -0
  551. package/dist/qa/brain_matrix/fixtures/scenario_json_query_extract.json +23 -0
  552. package/dist/qa/brain_matrix/fixtures/scenario_json_stringify_intent.json +20 -0
  553. package/dist/qa/brain_matrix/fixtures/scenario_json_stringify_intent_en.json +20 -0
  554. package/dist/qa/brain_matrix/fixtures/scenario_keys_set_intent.json +20 -0
  555. package/dist/qa/brain_matrix/fixtures/scenario_keys_status_intent.json +20 -0
  556. package/dist/qa/brain_matrix/fixtures/scenario_keys_status_intent_en.json +20 -0
  557. package/dist/qa/brain_matrix/fixtures/scenario_lazy_complex_verb.json +27 -0
  558. package/dist/qa/brain_matrix/fixtures/scenario_lazy_doctrine_only_when_needed.json +17 -0
  559. package/dist/qa/brain_matrix/fixtures/scenario_lazy_simple_verb.json +21 -0
  560. package/dist/qa/brain_matrix/fixtures/scenario_lesson_recall_overrides.json +22 -0
  561. package/dist/qa/brain_matrix/fixtures/scenario_lifecycle_restart_app_intent.json +19 -0
  562. package/dist/qa/brain_matrix/fixtures/scenario_lifecycle_run_app_intent.json +19 -0
  563. package/dist/qa/brain_matrix/fixtures/scenario_lifecycle_run_app_intent_en.json +19 -0
  564. package/dist/qa/brain_matrix/fixtures/scenario_lifecycle_stop_app_intent.json +20 -0
  565. package/dist/qa/brain_matrix/fixtures/scenario_lifecycle_stop_app_intent_en.json +20 -0
  566. package/dist/qa/brain_matrix/fixtures/scenario_long_doctrine_no_truncate.json +23 -0
  567. package/dist/qa/brain_matrix/fixtures/scenario_manifest_read_intent.json +19 -0
  568. package/dist/qa/brain_matrix/fixtures/scenario_manual_open_intent.json +19 -0
  569. package/dist/qa/brain_matrix/fixtures/scenario_mcp_bridge_unreachable_graceful.json +39 -0
  570. package/dist/qa/brain_matrix/fixtures/scenario_mcp_disabled_bridge_no_verbs.json +18 -0
  571. package/dist/qa/brain_matrix/fixtures/scenario_mcp_discover_tools_intent.json +19 -0
  572. package/dist/qa/brain_matrix/fixtures/scenario_mcp_invariant_1_no_verbs.json +19 -0
  573. package/dist/qa/brain_matrix/fixtures/scenario_mcp_invoke_two_hop.json +68 -0
  574. package/dist/qa/brain_matrix/fixtures/scenario_mcp_invoke_with_auth_loaded.json +76 -0
  575. package/dist/qa/brain_matrix/fixtures/scenario_mcp_revoked_token_graceful.json +33 -0
  576. package/dist/qa/brain_matrix/fixtures/scenario_mcp_set_creds_intent.json +21 -0
  577. package/dist/qa/brain_matrix/fixtures/scenario_mcp_set_creds_no_token_arg.json +27 -0
  578. package/dist/qa/brain_matrix/fixtures/scenario_mcp_show_tools_before_invoke.json +44 -0
  579. package/dist/qa/brain_matrix/fixtures/scenario_mcp_toggle_intent.json +20 -0
  580. package/dist/qa/brain_matrix/fixtures/scenario_multi_turn_clarify_then_act.json +24 -0
  581. package/dist/qa/brain_matrix/fixtures/scenario_nac3_attrs_doctrine.json +53 -0
  582. package/dist/qa/brain_matrix/fixtures/scenario_nac3_discover_schemas_intent.json +19 -0
  583. package/dist/qa/brain_matrix/fixtures/scenario_nac3_required_attr_missing.json +19 -0
  584. package/dist/qa/brain_matrix/fixtures/scenario_no_bare_ok_after_destructive.json +27 -0
  585. package/dist/qa/brain_matrix/fixtures/scenario_no_global_learnings_no_recall.json +20 -0
  586. package/dist/qa/brain_matrix/fixtures/scenario_no_id_leak_in_reply.json +24 -0
  587. package/dist/qa/brain_matrix/fixtures/scenario_no_invent_verb.json +18 -0
  588. package/dist/qa/brain_matrix/fixtures/scenario_no_loop_after_repeated_fail.json +42 -0
  589. package/dist/qa/brain_matrix/fixtures/scenario_no_password_echo.json +28 -0
  590. package/dist/qa/brain_matrix/fixtures/scenario_npm_outdated_all_current.json +28 -0
  591. package/dist/qa/brain_matrix/fixtures/scenario_npm_outdated_intent.json +20 -0
  592. package/dist/qa/brain_matrix/fixtures/scenario_npm_outdated_intent_en.json +20 -0
  593. package/dist/qa/brain_matrix/fixtures/scenario_npm_outdated_then_explain.json +35 -0
  594. package/dist/qa/brain_matrix/fixtures/scenario_office_excel_read_intent.json +24 -0
  595. package/dist/qa/brain_matrix/fixtures/scenario_office_excel_write_required_args.json +23 -0
  596. package/dist/qa/brain_matrix/fixtures/scenario_office_overwrite_explicit.json +23 -0
  597. package/dist/qa/brain_matrix/fixtures/scenario_office_word_write_intent.json +27 -0
  598. package/dist/qa/brain_matrix/fixtures/scenario_panel_open_settings_intent.json +19 -0
  599. package/dist/qa/brain_matrix/fixtures/scenario_panel_send_message_intent.json +19 -0
  600. package/dist/qa/brain_matrix/fixtures/scenario_pdf_read_intent.json +22 -0
  601. package/dist/qa/brain_matrix/fixtures/scenario_pizarron_clear_tab_explicit_close.json +17 -0
  602. package/dist/qa/brain_matrix/fixtures/scenario_pizarron_for_chart.json +30 -0
  603. package/dist/qa/brain_matrix/fixtures/scenario_pizarron_for_long_table.json +28 -0
  604. package/dist/qa/brain_matrix/fixtures/scenario_pizarron_read_tab_intent.json +20 -0
  605. package/dist/qa/brain_matrix/fixtures/scenario_pizarron_render_not_inline.json +20 -0
  606. package/dist/qa/brain_matrix/fixtures/scenario_prefer_native_read_file.json +28 -0
  607. package/dist/qa/brain_matrix/fixtures/scenario_prefer_native_verb_over_shell.json +22 -0
  608. package/dist/qa/brain_matrix/fixtures/scenario_prefer_native_workflow_state.json +28 -0
  609. package/dist/qa/brain_matrix/fixtures/scenario_project_init_intent.json +20 -0
  610. package/dist/qa/brain_matrix/fixtures/scenario_project_set_root_intent.json +20 -0
  611. package/dist/qa/brain_matrix/fixtures/scenario_promote_lesson_after_correction.json +17 -0
  612. package/dist/qa/brain_matrix/fixtures/scenario_r8_destructive_shell_exec.json +21 -0
  613. package/dist/qa/brain_matrix/fixtures/scenario_read_then_parse_order.json +36 -0
  614. package/dist/qa/brain_matrix/fixtures/scenario_reader_bookmark_jump_intent.json +19 -0
  615. package/dist/qa/brain_matrix/fixtures/scenario_reader_bookmark_set_intent.json +19 -0
  616. package/dist/qa/brain_matrix/fixtures/scenario_reader_for_long_doc.json +21 -0
  617. package/dist/qa/brain_matrix/fixtures/scenario_reader_list_docs_intent.json +19 -0
  618. package/dist/qa/brain_matrix/fixtures/scenario_reader_next_block_intent.json +19 -0
  619. package/dist/qa/brain_matrix/fixtures/scenario_reader_read_section_intent.json +19 -0
  620. package/dist/qa/brain_matrix/fixtures/scenario_reader_recap_intent.json +19 -0
  621. package/dist/qa/brain_matrix/fixtures/scenario_reader_search_intent.json +20 -0
  622. package/dist/qa/brain_matrix/fixtures/scenario_reader_search_intent_en.json +20 -0
  623. package/dist/qa/brain_matrix/fixtures/scenario_refuses_blanket_chmod_777.json +17 -0
  624. package/dist/qa/brain_matrix/fixtures/scenario_refuses_bypass_approval_modal.json +18 -0
  625. package/dist/qa/brain_matrix/fixtures/scenario_refuses_delete_critical_en.json +18 -0
  626. package/dist/qa/brain_matrix/fixtures/scenario_refuses_disable_vault_encryption.json +18 -0
  627. package/dist/qa/brain_matrix/fixtures/scenario_refuses_drop_database.json +17 -0
  628. package/dist/qa/brain_matrix/fixtures/scenario_refuses_force_push_main.json +17 -0
  629. package/dist/qa/brain_matrix/fixtures/scenario_refuses_force_push_main_en.json +17 -0
  630. package/dist/qa/brain_matrix/fixtures/scenario_refuses_leak_vault_en.json +18 -0
  631. package/dist/qa/brain_matrix/fixtures/scenario_refuses_modify_node_modules.json +17 -0
  632. package/dist/qa/brain_matrix/fixtures/scenario_refuses_skip_hooks.json +17 -0
  633. package/dist/qa/brain_matrix/fixtures/scenario_refuses_skip_hooks_en.json +17 -0
  634. package/dist/qa/brain_matrix/fixtures/scenario_refuses_to_delete_critical.json +18 -0
  635. package/dist/qa/brain_matrix/fixtures/scenario_refuses_to_leak_vault.json +18 -0
  636. package/dist/qa/brain_matrix/fixtures/scenario_respects_global_learnings.json +28 -0
  637. package/dist/qa/brain_matrix/fixtures/scenario_respects_workflow_gate_g2.json +39 -0
  638. package/dist/qa/brain_matrix/fixtures/scenario_revoke_lesson_request.json +21 -0
  639. package/dist/qa/brain_matrix/fixtures/scenario_sq_rules_active.json +30 -0
  640. package/dist/qa/brain_matrix/fixtures/scenario_text_diff_intent.json +20 -0
  641. package/dist/qa/brain_matrix/fixtures/scenario_text_diff_intent_en.json +20 -0
  642. package/dist/qa/brain_matrix/fixtures/scenario_truncated_response_retry.json +22 -0
  643. package/dist/qa/brain_matrix/fixtures/scenario_unknown_command_clarify.json +23 -0
  644. package/dist/qa/brain_matrix/fixtures/scenario_url_parse_compose.json +23 -0
  645. package/dist/qa/brain_matrix/fixtures/scenario_url_parse_handles_invalid.json +27 -0
  646. package/dist/qa/brain_matrix/fixtures/scenario_url_parse_intent.json +20 -0
  647. package/dist/qa/brain_matrix/fixtures/scenario_url_parse_intent_en.json +20 -0
  648. package/dist/qa/brain_matrix/fixtures/scenario_url_parse_then_inspect_query.json +28 -0
  649. package/dist/qa/brain_matrix/fixtures/scenario_url_then_stringify_order.json +34 -0
  650. package/dist/qa/brain_matrix/fixtures/scenario_user_just_greets.json +17 -0
  651. package/dist/qa/brain_matrix/fixtures/scenario_user_overrides_proceeds.json +24 -0
  652. package/dist/qa/brain_matrix/fixtures/scenario_user_revokes_in_middle.json +22 -0
  653. package/dist/qa/brain_matrix/fixtures/scenario_voice_open_pizarron.json +21 -0
  654. package/dist/qa/brain_matrix/fixtures/scenario_word_outline_extraction.json +22 -0
  655. package/dist/qa/brain_matrix/fixtures/scenario_word_overwrite_explicit.json +20 -0
  656. package/dist/qa/brain_matrix/fixtures/scenario_word_section_count.json +28 -0
  657. package/dist/qa/brain_matrix/fixtures/scenario_workflow_doctrine.json +53 -0
  658. package/dist/qa/brain_matrix/fixtures/scenario_workflow_done_specs.json +32 -0
  659. package/dist/qa/brain_matrix/fixtures/scenario_workflow_intent_capture.json +22 -0
  660. package/dist/qa/brain_matrix/fixtures/scenario_workflow_phase_jump_block.json +26 -0
  661. package/dist/qa/brain_matrix/fixtures/scenario_workflow_phase_v_step_15.json +41 -0
  662. package/dist/qa/brain_matrix/fixtures/scenario_workflow_run_step_intent.json +19 -0
  663. package/dist/qa/brain_matrix/fixtures/scenario_workflow_set_intent.json +20 -0
  664. package/dist/qa/brain_matrix/fixtures/scenario_workflow_state_injection.json +32 -0
  665. package/dist/qa/brain_matrix/fixtures/scenario_workflow_state_recovers_after_clarify.json +25 -0
  666. package/dist/qa/brain_matrix/fixtures/scenario_workflow_step_1_intake.json +24 -0
  667. package/dist/qa/brain_matrix/fixtures/scenario_yf_command_doctrine.json +56 -0
  668. package/dist/qa/brain_matrix/fixtures/scenario_yf_doctrine_list_intent.json +19 -0
  669. package/dist/qa/brain_matrix/fixtures/scenario_yf_qa_compare_intent.json +17 -0
  670. package/dist/qa/brain_matrix/invariants.d.ts +18 -0
  671. package/dist/qa/brain_matrix/invariants.d.ts.map +1 -0
  672. package/dist/qa/brain_matrix/invariants.js +333 -0
  673. package/dist/qa/brain_matrix/invariants.js.map +1 -0
  674. package/dist/qa/brain_matrix/report.d.ts +12 -0
  675. package/dist/qa/brain_matrix/report.d.ts.map +1 -0
  676. package/dist/qa/brain_matrix/report.js +131 -0
  677. package/dist/qa/brain_matrix/report.js.map +1 -0
  678. package/dist/qa/brain_matrix/runner.d.ts +31 -0
  679. package/dist/qa/brain_matrix/runner.d.ts.map +1 -0
  680. package/dist/qa/brain_matrix/runner.js +561 -0
  681. package/dist/qa/brain_matrix/runner.js.map +1 -0
  682. package/dist/qa/brain_matrix/types.d.ts +180 -0
  683. package/dist/qa/brain_matrix/types.d.ts.map +1 -0
  684. package/dist/qa/brain_matrix/types.js +2 -0
  685. package/dist/qa/brain_matrix/types.js.map +1 -0
  686. package/dist/qa/brain_matrix/validate_scenario.d.ts +23 -0
  687. package/dist/qa/brain_matrix/validate_scenario.d.ts.map +1 -0
  688. package/dist/qa/brain_matrix/validate_scenario.js +128 -0
  689. package/dist/qa/brain_matrix/validate_scenario.js.map +1 -0
  690. package/dist/support/github_dispatcher.d.ts +36 -0
  691. package/dist/support/github_dispatcher.d.ts.map +1 -0
  692. package/dist/support/github_dispatcher.js +292 -0
  693. package/dist/support/github_dispatcher.js.map +1 -0
  694. package/dist/support/reports.d.ts +31 -0
  695. package/dist/support/reports.d.ts.map +1 -0
  696. package/dist/support/reports.js +162 -0
  697. package/dist/support/reports.js.map +1 -0
  698. package/dist/telemetry/usage.d.ts +67 -0
  699. package/dist/telemetry/usage.d.ts.map +1 -0
  700. package/dist/telemetry/usage.js +208 -0
  701. package/dist/telemetry/usage.js.map +1 -0
  702. package/dist/version.d.ts +1 -1
  703. package/dist/version.d.ts.map +1 -1
  704. package/dist/version.js +1 -1
  705. package/dist/version.js.map +1 -1
  706. package/dist/voice/config.d.ts +12 -0
  707. package/dist/voice/config.d.ts.map +1 -1
  708. package/dist/voice/config.js +25 -2
  709. package/dist/voice/config.js.map +1 -1
  710. package/dist/voice/providers/google.d.ts +9 -0
  711. package/dist/voice/providers/google.d.ts.map +1 -1
  712. package/dist/voice/providers/google.js +197 -28
  713. package/dist/voice/providers/google.js.map +1 -1
  714. package/dist/voice/router.d.ts +10 -0
  715. package/dist/voice/router.d.ts.map +1 -1
  716. package/dist/voice/router.js +39 -20
  717. package/dist/voice/router.js.map +1 -1
  718. package/dist/voice/types.d.ts +5 -2
  719. package/dist/voice/types.d.ts.map +1 -1
  720. package/dist/voice/types.js.map +1 -1
  721. package/dist/workflow/phase_inference.d.ts +56 -0
  722. package/dist/workflow/phase_inference.d.ts.map +1 -0
  723. package/dist/workflow/phase_inference.js +107 -0
  724. package/dist/workflow/phase_inference.js.map +1 -0
  725. package/dist/workflow/state.d.ts +238 -0
  726. package/dist/workflow/state.d.ts.map +1 -0
  727. package/dist/workflow/state.js +213 -0
  728. package/dist/workflow/state.js.map +1 -0
  729. package/docs/SQ.md +1397 -0
  730. package/docs/SQ_BY_STEP.yaml +147 -0
  731. package/docs/doctrine/accessibility.md +78 -0
  732. package/docs/doctrine/agent-orchestrator.md +76 -0
  733. package/docs/doctrine/byok-vs-managed.md +81 -0
  734. package/docs/doctrine/cost-router-escalation.md +73 -0
  735. package/docs/doctrine/explain-results.md +90 -0
  736. package/docs/doctrine/g-doc.md +46 -0
  737. package/docs/doctrine/gates.md +21 -0
  738. package/docs/doctrine/lessons-workflow.md +68 -0
  739. package/docs/doctrine/mcp-bridge-lifecycle.md +75 -0
  740. package/docs/doctrine/nac3-attrs.md +23 -0
  741. package/docs/doctrine/office-tools.md +102 -0
  742. package/docs/doctrine/pizarron.md +52 -0
  743. package/docs/doctrine/r8-modal.md +60 -0
  744. package/docs/doctrine/safety-refusals.md +73 -0
  745. package/docs/doctrine/verb-composition.md +68 -0
  746. package/docs/doctrine/workflow-phases.md +108 -0
  747. package/docs/doctrine/workflow.md +58 -0
  748. package/docs/doctrine/yf-commands.md +49 -0
  749. package/package.json +20 -14
  750. package/src/i18n/catalogs/ar.json +55 -10
  751. package/src/i18n/catalogs/de.json +55 -10
  752. package/src/i18n/catalogs/en.json +66 -1
  753. package/src/i18n/catalogs/es.json +66 -1
  754. package/src/i18n/catalogs/fr.json +55 -10
  755. package/src/i18n/catalogs/hi.json +55 -10
  756. package/src/i18n/catalogs/it.json +55 -10
  757. package/src/i18n/catalogs/ja.json +55 -10
  758. package/src/i18n/catalogs/pt.json +55 -10
  759. package/src/i18n/catalogs/zh.json +55 -10
  760. package/templates/nextjs-app/README.md +48 -0
  761. package/templates/nextjs-app/next.config.js +8 -0
  762. package/templates/nextjs-app/package.json +33 -0
  763. package/templates/nextjs-app/src/app/globals.css +43 -0
  764. package/templates/nextjs-app/src/app/layout.tsx +29 -0
  765. package/templates/nextjs-app/src/app/page.tsx +63 -0
  766. package/templates/nextjs-app/src/nac/manifest.ts +36 -0
  767. package/templates/nextjs-app/tsconfig.json +21 -0
  768. package/templates/nextjs-app/yujin.forge.json +11 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nac3/forge-cli",
3
- "version": "0.2.0-alpha.5",
3
+ "version": "0.2.0-alpha.59z.119",
4
4
  "description": "Yujin Forge -- voice-first NAC-3 React development framework. CLI + chat panel + spec ingest + 10-format document reader + voice loop.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "author": "Pablo Kuschnirof <pablo@rpaforce.com>",
@@ -15,17 +15,6 @@
15
15
  "exports": {
16
16
  ".": "./dist/index.js"
17
17
  },
18
- "scripts": {
19
- "build": "tsc",
20
- "dev": "tsx watch src/bin/yf.ts",
21
- "typecheck": "tsc --noEmit",
22
- "test": "vitest run",
23
- "test:watch": "vitest",
24
- "lint": "tsc --noEmit",
25
- "yf": "tsx src/bin/yf.ts",
26
- "catalog:lint": "node scripts/catalog_lint.mjs",
27
- "prepublishOnly": "pnpm run build && pnpm run typecheck && pnpm run catalog:lint && pnpm run test"
28
- },
29
18
  "dependencies": {
30
19
  "@anthropic-ai/sdk": "^0.32.1",
31
20
  "@aws-sdk/client-ecs": "^3.1053.0",
@@ -43,6 +32,7 @@
43
32
  "@playwright/test": "^1.60.0",
44
33
  "@types/node": "22.10.2",
45
34
  "@types/prompts": "2.4.9",
35
+ "acorn": "^8.16.0",
46
36
  "pixelmatch": "^7.2.0",
47
37
  "pngjs": "^7.0.0",
48
38
  "tsx": "4.19.2",
@@ -52,11 +42,13 @@
52
42
  "node": ">=18.17",
53
43
  "pnpm": ">=9"
54
44
  },
55
- "packageManager": "pnpm@11.3.0",
56
45
  "files": [
57
46
  "dist",
58
47
  "templates",
59
48
  "docs/manuals",
49
+ "docs/SQ.md",
50
+ "docs/SQ_BY_STEP.yaml",
51
+ "docs/doctrine",
60
52
  "src/i18n/catalogs",
61
53
  "README.md",
62
54
  "LICENSE"
@@ -90,5 +82,19 @@
90
82
  "publishConfig": {
91
83
  "access": "public",
92
84
  "tag": "alpha"
85
+ },
86
+ "scripts": {
87
+ "build": "tsc && node scripts/copy_qa_assets.mjs",
88
+ "dev": "tsx watch src/bin/yf.ts",
89
+ "typecheck": "tsc --noEmit",
90
+ "typecheck:all": "pnpm typecheck && pnpm --filter @yujin/hito4-server typecheck && pnpm --filter @yujin/forge-mobile typecheck",
91
+ "test": "vitest run",
92
+ "test:watch": "vitest",
93
+ "lint": "tsc --noEmit",
94
+ "yf": "tsx src/bin/yf.ts",
95
+ "catalog:lint": "node scripts/catalog_lint.mjs",
96
+ "pairing:check": "node scripts/check_pairing_sync.mjs",
97
+ "brain-matrix:gate": "node scripts/brain_matrix_gate.mjs",
98
+ "hito4:lint": "node scripts/hito4_lint_bundle.mjs"
93
99
  }
94
- }
100
+ }
@@ -12,7 +12,6 @@
12
12
  "panel.button.maximise": "تكبير",
13
13
  "panel.button.close": "إغلاق",
14
14
  "panel.button.language": "اللغة",
15
-
16
15
  "panel.trace.title": "سجل الإجراءات",
17
16
  "panel.trace.count.one": "{n} استدعاء أداة",
18
17
  "panel.trace.count.other": "{n} استدعاءات أدوات",
@@ -21,10 +20,8 @@
21
20
  "panel.trace.badge.tool": "أداة",
22
21
  "panel.trace.badge.voice": "صوت",
23
22
  "panel.trace.badge.error": "خطأ",
24
-
25
23
  "panel.stream.empty.kanji": "侑仁",
26
24
  "panel.stream.empty.body": "Yujin Forge متصل. اطلب تغييرات على المشروع.",
27
-
28
25
  "panel.status.no_audio": "لم يُلتقط أي صوت. ربما لم يستقبل الميكروفون شيئاً.",
29
26
  "panel.status.did_not_catch": "لم أفهم. لنجرب مرة أخرى.",
30
27
  "panel.status.mic_denied": "إذن الميكروفون مرفوض أو غير متاح: {error}",
@@ -34,10 +31,8 @@
34
31
  "panel.status.reading": "جارٍ قراءة {filename}...",
35
32
  "panel.status.ingest_failed": "فشل الاستيعاب: {error}",
36
33
  "panel.status.read_failed": "تعذرت قراءة المواصفات: {error}",
37
-
38
34
  "panel.drop.title": "أفلت المواصفات هنا",
39
35
  "panel.drop.hint": "PDF, DOCX, HTML, MD, RTF, EPUB, CSV, XLSX, TXT",
40
-
41
36
  "panel.ingest.spec_attached": "تم إرفاق المواصفات: {filename}، {kb} KB",
42
37
  "panel.ingest.read_label": "تمت القراءة.",
43
38
  "panel.ingest.title_label": "العنوان: {title}",
@@ -45,7 +40,6 @@
45
40
  "panel.ingest.format_label": "التنسيق: {format} / {sections} قسم / {kb} KB",
46
41
  "panel.ingest.first_lines": "الأسطر الأولى:",
47
42
  "panel.ingest.action_done": "اكتمل الإجراء {tool}.",
48
-
49
43
  "vault.modal.title": "بيانات الاعتماد (الخزنة)",
50
44
  "vault.modal.aria.close": "إغلاق نافذة بيانات الاعتماد",
51
45
  "vault.tab.list": "الخانات المحملة",
@@ -60,7 +54,6 @@
60
54
  "vault.add.button_cancel": "إلغاء",
61
55
  "vault.add.success": "تم حفظ الخانة {slot}.",
62
56
  "vault.add.overwrite": "تم استبدال الخانة {slot}.",
63
-
64
57
  "manual.intro": "Yujin Forge -- دليل المستخدم",
65
58
  "manual.section.welcome": "مرحباً",
66
59
  "manual.section.install": "التثبيت",
@@ -69,7 +62,6 @@
69
62
  "manual.section.spec_ingest": "استيعاب المواصفات",
70
63
  "manual.section.troubleshooting": "حل المشكلات",
71
64
  "manual.section.support": "الدعم",
72
-
73
65
  "lang.name.es": "الإسبانية",
74
66
  "lang.name.en": "الإنجليزية",
75
67
  "lang.name.pt": "البرتغالية",
@@ -80,7 +72,60 @@
80
72
  "lang.name.ar": "العربية",
81
73
  "lang.name.de": "الألمانية",
82
74
  "lang.name.it": "الإيطالية",
83
-
84
75
  "recap.fallback_period": ".",
85
- "recap.empty": "لا يوجد ما يمكن تلخيصه بعد."
76
+ "recap.empty": "لا يوجد ما يمكن تلخيصه بعد.",
77
+ "error_ui.severity.info": "معلومات",
78
+ "error_ui.severity.warning": "تحذير",
79
+ "error_ui.severity.error": "خطأ",
80
+ "error_ui.severity.fatal": "فادح",
81
+ "error_ui.label.what": "ماذا حدث",
82
+ "error_ui.label.why": "لماذا",
83
+ "error_ui.label.fix": "كيفية الإصلاح",
84
+ "error_ui.label.cmd": "الأمر",
85
+ "error_ui.label.docs": "الوثائق المحلية",
86
+ "error_ui.label.retry": "إعادة المحاولة في",
87
+ "error_ui.copy_btn": "نسخ الأمر",
88
+ "error_ui.unknown.what": "واجه Forge خطأ داخليا (رمز غير معروف).",
89
+ "error_ui.unknown.why": "الرمز {code} ليس في الكتالوج. هذا خطأ برمجي.",
90
+ "error_ui.unknown.fix": "افتح issue في https://github.com/yujinapp/yujin-forge/issues مع الرمز و traceback.",
91
+ "error.cap_frontier_exhausted.what": "نفد الحد الشهري لرموز طبقة frontier (نموذج كبير).",
92
+ "error.cap_frontier_exhausted.why": "خطتك {plan} تسمح بحد أقصى {cap} رمز/شهر على frontier. استخدمت {used}. يعاد الضبط في بداية الشهر UTC التالي.",
93
+ "error.cap_frontier_exhausted.fix": "انتقل إلى BYOK Anthropic مباشرة: يتجاوز الحد الشهري لـ worker. تصبح تكلفتك ما تتقاضاه Anthropic مباشرة.",
94
+ "error.cap_frontier_exhausted.cmd": "yf brain config --frontier-provider anthropic --frontier-model claude-opus-4-7",
95
+ "error.cap_eco_exhausted.what": "نفد الحد الشهري لرموز طبقة eco (نموذج صغير).",
96
+ "error.cap_eco_exhausted.why": "خطتك {plan} تسمح بحد أقصى {cap} رمز/شهر على eco. استخدمت {used}. يعاد الضبط في بداية الشهر UTC التالي.",
97
+ "error.cap_eco_exhausted.fix": "انتقل إلى BYOK مباشرة أو قم بترقية الخطة. BYOK يتجاوز حد worker.",
98
+ "error.cap_eco_exhausted.cmd": "yf brain config --eco-provider google_ai --eco-model gemini-2.5-flash-lite",
99
+ "error.tier_not_in_plan.what": "الطبقة {tier} غير مفعلة على خطتك.",
100
+ "error.tier_not_in_plan.why": "خطتك {plan} لا تتضمن طبقة {tier}. ربما أنت على free-public أو انتهت صلاحية ترخيصك.",
101
+ "error.tier_not_in_plan.fix": "فعل ترخيصا مدفوعا أو انتقل إلى BYOK مباشرة (تكلفتك، دون حد worker).",
102
+ "error.tier_not_in_plan.cmd": "yf license activate --key <jwt>",
103
+ "error.response_truncated.what": "تم قطع استجابة النموذج قبل الانتهاء.",
104
+ "error.response_truncated.why": "تم الوصول إلى حد managed_max_tokens_per_turn = {limit} رمز في منتصف الدور. توقف النموذج عن التوليد.",
105
+ "error.response_truncated.fix": "ارفع الحد عبر yf limits. ينطبق على الدور التالي دون إعادة تشغيل الدردشة.",
106
+ "error.response_truncated.cmd": "yf limits set managed_max_tokens_per_turn 16384",
107
+ "error.response_truncated.banner": "[الاستجابة مقتطعة بواسطة max_tokens={max}. ارفع الحد بـ: yf limits set managed_max_tokens_per_turn {suggested}]",
108
+ "error.modal_trace_stale.what": "انتهت صلاحية مودال الموافقة أو أصبح يتيما.",
109
+ "error.modal_trace_stale.why": "trace_id {trace_id} ليس له موافقة معلقة في dispatcher. ربما race condition بين invoke وحالة panel، أو ترك cancel سابق trace في حالة zombie.",
110
+ "error.modal_trace_stale.fix": "استدع verb من الدردشة مرة أخرى: يبدأ trace جديد نظيف. إذا استمر، شغل yf doctor لفحص panel.",
111
+ "error.modal_trace_stale.cmd": "yf doctor",
112
+ "error.byok_key_missing.what": "مفتاح API مفقود للمزود {provider}.",
113
+ "error.byok_key_missing.why": "لقد أعددت {provider} كمزود لطبقة {tier} لكن الفتحة byok_{slot} ليست في Vault المشفر.",
114
+ "error.byok_key_missing.fix": "كون المفتاح بـ yf keys set (ذري، mode 0600، لا يسجل أبدا).",
115
+ "error.byok_key_missing.cmd": "yf keys set {slot}",
116
+ "error.worker_unreachable.what": "لم أستطع الوصول إلى worker yujin.app.",
117
+ "error.worker_unreachable.why": "انتهاء مهلة الشبكة أو worker معطل (HTTP {status}). أعدت المحاولة {attempts} مرات.",
118
+ "error.worker_unreachable.fix": "افحص إنترنتك. إذا كان جيدا، انتقل مؤقتا إلى BYOK مباشرة لتجنب الاعتماد على worker.",
119
+ "error.worker_unreachable.cmd": "yf brain config --frontier-provider anthropic",
120
+ "error.vault_decrypt_failed.what": "لم أستطع فك تشفير مفتاح من Vault.",
121
+ "error.vault_decrypt_failed.why": "مفتاح master غير صحيح أو ملف Vault تالف. يمكن أن يحدث إذا نقلت config بين الأجهزة دون نقل master، أو بسبب disk error.",
122
+ "error.vault_decrypt_failed.fix": "اسحب نسخة الخادم (يعيد التشفير بـ master المحلي) إذا كان لديك server backup نشط.",
123
+ "error.vault_decrypt_failed.cmd": "yf keys setup --pull",
124
+ "error.shell_exec_rejected.what": "رفضت مودال R8 لـ yujin.shell.exec.",
125
+ "error.shell_exec_rejected.why": "تم تصنيف الأمر {command} على أنه {classification}. shell.exec يطلب الموافقة دائما للأمان، حتى لو كان الأمر read-only.",
126
+ "error.shell_exec_rejected.fix": "إذا كان الأمر read-only (yf projects active، git status، ls)، استخدم verb الأصلي المكافئ. إذا كان ضروريا ورفضته بالخطأ، استدعه مرة أخرى.",
127
+ "error.project_not_registered.what": "لا يوجد مشروع adopter مسجل.",
128
+ "error.project_not_registered.why": "يتطلب verb المستدعى project root نشط لكن ~/.yujin-forge/projects.json ليس به إدخالات.",
129
+ "error.project_not_registered.fix": "أنشئ واحدا بـ yujin.project.init أو سجل واحدا موجودا بـ yf projects add.",
130
+ "error.project_not_registered.cmd": "yf projects scan"
86
131
  }
@@ -12,7 +12,6 @@
12
12
  "panel.button.maximise": "Vergroessern",
13
13
  "panel.button.close": "Schliessen",
14
14
  "panel.button.language": "Sprache",
15
-
16
15
  "panel.trace.title": "Aktionsprotokoll",
17
16
  "panel.trace.count.one": "{n} Werkzeugaufruf",
18
17
  "panel.trace.count.other": "{n} Werkzeugaufrufe",
@@ -21,10 +20,8 @@
21
20
  "panel.trace.badge.tool": "WERKZEUG",
22
21
  "panel.trace.badge.voice": "STIMME",
23
22
  "panel.trace.badge.error": "FEHLER",
24
-
25
23
  "panel.stream.empty.kanji": "侑仁",
26
24
  "panel.stream.empty.body": "Yujin Forge online. Bitte um Aenderungen am Projekt.",
27
-
28
25
  "panel.status.no_audio": "Kein Audio aufgenommen. Das Mikrofon hat vermutlich nichts erfasst.",
29
26
  "panel.status.did_not_catch": "Ich habe das nicht verstanden. Versuche es nochmal.",
30
27
  "panel.status.mic_denied": "Mikrofonberechtigung verweigert oder nicht verfuegbar: {error}",
@@ -34,10 +31,8 @@
34
31
  "panel.status.reading": "Lese {filename}...",
35
32
  "panel.status.ingest_failed": "Aufnahme fehlgeschlagen: {error}",
36
33
  "panel.status.read_failed": "Konnte die Spezifikation nicht lesen: {error}",
37
-
38
34
  "panel.drop.title": "Spezifikation hier ablegen",
39
35
  "panel.drop.hint": "PDF, DOCX, HTML, MD, RTF, EPUB, CSV, XLSX, TXT",
40
-
41
36
  "panel.ingest.spec_attached": "Spezifikation angehaengt: {filename}, {kb} KB",
42
37
  "panel.ingest.read_label": "Gelesen.",
43
38
  "panel.ingest.title_label": "Titel: {title}",
@@ -45,7 +40,6 @@
45
40
  "panel.ingest.format_label": "Format: {format} / {sections} Abschnitt(e) / {kb} KB",
46
41
  "panel.ingest.first_lines": "Erste Zeilen:",
47
42
  "panel.ingest.action_done": "Aktion {tool} abgeschlossen.",
48
-
49
43
  "vault.modal.title": "Zugangsdaten (Vault)",
50
44
  "vault.modal.aria.close": "Zugangsdaten-Modal schliessen",
51
45
  "vault.tab.list": "Geladene Slots",
@@ -60,7 +54,6 @@
60
54
  "vault.add.button_cancel": "Abbrechen",
61
55
  "vault.add.success": "Slot {slot} gespeichert.",
62
56
  "vault.add.overwrite": "Slot {slot} ueberschrieben.",
63
-
64
57
  "manual.intro": "Yujin Forge -- Benutzerhandbuch",
65
58
  "manual.section.welcome": "Willkommen",
66
59
  "manual.section.install": "Installation",
@@ -69,7 +62,6 @@
69
62
  "manual.section.spec_ingest": "Spezifikations-Ingestion",
70
63
  "manual.section.troubleshooting": "Fehlerbehebung",
71
64
  "manual.section.support": "Support",
72
-
73
65
  "lang.name.es": "Spanisch",
74
66
  "lang.name.en": "Englisch",
75
67
  "lang.name.pt": "Portugiesisch",
@@ -80,7 +72,60 @@
80
72
  "lang.name.ar": "Arabisch",
81
73
  "lang.name.de": "Deutsch",
82
74
  "lang.name.it": "Italienisch",
83
-
84
75
  "recap.fallback_period": ".",
85
- "recap.empty": "Es gibt noch nichts zusammenzufassen."
76
+ "recap.empty": "Es gibt noch nichts zusammenzufassen.",
77
+ "error_ui.severity.info": "INFO",
78
+ "error_ui.severity.warning": "WARNUNG",
79
+ "error_ui.severity.error": "FEHLER",
80
+ "error_ui.severity.fatal": "FATAL",
81
+ "error_ui.label.what": "Was ist passiert",
82
+ "error_ui.label.why": "Warum",
83
+ "error_ui.label.fix": "Wie beheben",
84
+ "error_ui.label.cmd": "Befehl",
85
+ "error_ui.label.docs": "Lokale Docs",
86
+ "error_ui.label.retry": "Erneut versuchen in",
87
+ "error_ui.copy_btn": "Befehl kopieren",
88
+ "error_ui.unknown.what": "Forge hat einen internen Fehler gefunden (unbekannter Code).",
89
+ "error_ui.unknown.why": "Der Code {code} ist nicht im Katalog. Das ist ein Bug.",
90
+ "error_ui.unknown.fix": "Issue oeffnen auf https://github.com/yujinapp/yujin-forge/issues mit dem Code + Traceback.",
91
+ "error.cap_frontier_exhausted.what": "Monatliches Token-Cap des Frontier-Tier erschoepft (grosses Modell).",
92
+ "error.cap_frontier_exhausted.why": "Ihr Plan {plan} erlaubt bis zu {cap} Tokens/Monat auf Frontier. Sie haben {used} verwendet. Reset zum Anfang des naechsten UTC-Monats.",
93
+ "error.cap_frontier_exhausted.fix": "Wechseln Sie zu direktem Anthropic BYOK: umgeht das monatliche Worker-Cap. Ihre Kosten sind dann was Anthropic direkt berechnet.",
94
+ "error.cap_frontier_exhausted.cmd": "yf brain config --frontier-provider anthropic --frontier-model claude-opus-4-7",
95
+ "error.cap_eco_exhausted.what": "Monatliches Token-Cap des Eco-Tier erschoepft (kleines Modell).",
96
+ "error.cap_eco_exhausted.why": "Ihr Plan {plan} erlaubt bis zu {cap} Tokens/Monat auf Eco. Sie haben {used} verwendet. Reset zum Anfang des naechsten UTC-Monats.",
97
+ "error.cap_eco_exhausted.fix": "Wechseln Sie zu direktem BYOK oder upgraden Sie Ihren Plan. BYOK umgeht das Worker-Cap.",
98
+ "error.cap_eco_exhausted.cmd": "yf brain config --eco-provider google_ai --eco-model gemini-2.5-flash-lite",
99
+ "error.tier_not_in_plan.what": "Tier {tier} ist in Ihrem Plan nicht aktiviert.",
100
+ "error.tier_not_in_plan.why": "Ihr Plan {plan} enthaelt den {tier}-Tier nicht. Sie sind wahrscheinlich auf free-public oder Ihre Lizenz ist abgelaufen.",
101
+ "error.tier_not_in_plan.fix": "Aktivieren Sie eine bezahlte Lizenz oder wechseln Sie zu direktem BYOK (Ihre Kosten, ohne Worker-Cap).",
102
+ "error.tier_not_in_plan.cmd": "yf license activate --key <jwt>",
103
+ "error.response_truncated.what": "Die Modellantwort wurde vor dem Ende abgeschnitten.",
104
+ "error.response_truncated.why": "Limit managed_max_tokens_per_turn = {limit} Tokens mitten im Turn erreicht. Das Modell hat aufgehoert zu generieren.",
105
+ "error.response_truncated.fix": "Erhoehen Sie das Limit via yf limits. Gilt fuer den naechsten Turn ohne Chat-Neustart.",
106
+ "error.response_truncated.cmd": "yf limits set managed_max_tokens_per_turn 16384",
107
+ "error.response_truncated.banner": "[Antwort durch max_tokens={max} abgeschnitten. Limit erhoehen mit: yf limits set managed_max_tokens_per_turn {suggested}]",
108
+ "error.modal_trace_stale.what": "Das Approval-Modal ist abgelaufen oder verwaist.",
109
+ "error.modal_trace_stale.why": "Die trace_id {trace_id} hat keine pendente Approval im Dispatcher. Wahrscheinlich Race Condition zwischen Invoke und Panel-State, oder ein vorheriger Cancel hat den Trace als Zombie hinterlassen.",
110
+ "error.modal_trace_stale.fix": "Verb erneut aus dem Chat aufrufen: startet einen neuen sauberen Trace. Wenn es weiterhin passiert, fuehren Sie yf doctor aus, um das Panel zu pruefen.",
111
+ "error.modal_trace_stale.cmd": "yf doctor",
112
+ "error.byok_key_missing.what": "API-Key fuer Provider {provider} fehlt.",
113
+ "error.byok_key_missing.why": "Sie haben {provider} als Provider des {tier}-Tiers konfiguriert, aber der Slot byok_{slot} ist nicht im verschluesselten Vault.",
114
+ "error.byok_key_missing.fix": "Konfigurieren Sie den Key mit yf keys set (atomar, mode 0600, niemals geloggt).",
115
+ "error.byok_key_missing.cmd": "yf keys set {slot}",
116
+ "error.worker_unreachable.what": "Konnte den yujin.app-Worker nicht erreichen.",
117
+ "error.worker_unreachable.why": "Netzwerk-Timeout oder Worker ausgefallen (HTTP {status}). {attempts} mal wiederholt.",
118
+ "error.worker_unreachable.fix": "Pruefen Sie Ihr Internet. Falls OK, wechseln Sie temporaer zu direktem BYOK, um die Worker-Abhaengigkeit zu vermeiden.",
119
+ "error.worker_unreachable.cmd": "yf brain config --frontier-provider anthropic",
120
+ "error.vault_decrypt_failed.what": "Konnte einen Schluessel aus dem Vault nicht entschluesseln.",
121
+ "error.vault_decrypt_failed.why": "Der Master-Key ist falsch oder die Vault-Datei ist beschaedigt. Kann passieren, wenn Sie die Konfiguration zwischen Maschinen verschoben haben ohne den Master zu migrieren, oder durch Disk-Error.",
122
+ "error.vault_decrypt_failed.fix": "Holen Sie die Server-Kopie (verschluesselt mit Ihrem lokalen Master neu), falls Sie Server-Backup aktiv haben.",
123
+ "error.vault_decrypt_failed.cmd": "yf keys setup --pull",
124
+ "error.shell_exec_rejected.what": "Sie haben das R8-Modal von yujin.shell.exec abgelehnt.",
125
+ "error.shell_exec_rejected.why": "Der Befehl {command} wurde als {classification} klassifiziert. shell.exec verlangt immer Approval aus Sicherheit, auch wenn der Befehl read-only ist.",
126
+ "error.shell_exec_rejected.fix": "Wenn der Befehl read-only war (yf projects active, git status, ls), nutzen Sie das aequivalente native Verb. Wenn er notwendig war und Sie irrtuemlich abgelehnt haben, rufen Sie ihn erneut auf.",
127
+ "error.project_not_registered.what": "Kein Adopter-Projekt registriert.",
128
+ "error.project_not_registered.why": "Das aufgerufene Verb benoetigt einen aktiven Project-Root, aber ~/.yujin-forge/projects.json hat keine Eintraege.",
129
+ "error.project_not_registered.fix": "Erstellen Sie eines mit yujin.project.init oder registrieren Sie ein existierendes mit yf projects add.",
130
+ "error.project_not_registered.cmd": "yf projects scan"
86
131
  }
@@ -82,5 +82,70 @@
82
82
  "lang.name.it": "Italian",
83
83
 
84
84
  "recap.fallback_period": ".",
85
- "recap.empty": "There is nothing to recap yet."
85
+ "recap.empty": "There is nothing to recap yet.",
86
+
87
+ "error_ui.severity.info": "INFO",
88
+ "error_ui.severity.warning": "WARNING",
89
+ "error_ui.severity.error": "ERROR",
90
+ "error_ui.severity.fatal": "FATAL",
91
+ "error_ui.label.what": "What happened",
92
+ "error_ui.label.why": "Why",
93
+ "error_ui.label.fix": "How to fix",
94
+ "error_ui.label.cmd": "Command",
95
+ "error_ui.label.docs": "Local docs",
96
+ "error_ui.label.retry": "Retry in",
97
+ "error_ui.copy_btn": "Copy command",
98
+ "error_ui.unknown.what": "Forge encountered an internal error (unknown code).",
99
+ "error_ui.unknown.why": "The code {code} is not in the catalog. This is a bug.",
100
+ "error_ui.unknown.fix": "Open an issue at https://github.com/yujinapp/yujin-forge/issues with the code + the traceback.",
101
+
102
+ "error.cap_frontier_exhausted.what": "Monthly frontier tier token cap reached (large model).",
103
+ "error.cap_frontier_exhausted.why": "Your plan {plan} allows up to {cap} tokens/month on frontier. You used {used}. Resets at the start of the next UTC month.",
104
+ "error.cap_frontier_exhausted.fix": "Switch to direct Anthropic BYOK: bypasses the worker monthly cap. Your cost becomes whatever Anthropic charges directly.",
105
+ "error.cap_frontier_exhausted.cmd": "yf brain config --frontier-provider anthropic --frontier-model claude-opus-4-7",
106
+
107
+ "error.cap_eco_exhausted.what": "Monthly eco tier token cap reached (small model).",
108
+ "error.cap_eco_exhausted.why": "Your plan {plan} allows up to {cap} tokens/month on eco. You used {used}. Resets at the start of the next UTC month.",
109
+ "error.cap_eco_exhausted.fix": "Switch to direct BYOK or upgrade your plan. BYOK bypasses the worker cap.",
110
+ "error.cap_eco_exhausted.cmd": "yf brain config --eco-provider google_ai --eco-model gemini-2.5-flash-lite",
111
+
112
+ "error.tier_not_in_plan.what": "Tier {tier} is not enabled on your plan.",
113
+ "error.tier_not_in_plan.why": "Your plan {plan} does not include the {tier} tier. You are probably on free-public or your license expired.",
114
+ "error.tier_not_in_plan.fix": "Activate a paid license, or switch to direct BYOK (your cost, no worker cap).",
115
+ "error.tier_not_in_plan.cmd": "yf license activate --key <jwt>",
116
+
117
+ "error.response_truncated.what": "The model response was cut off before finishing.",
118
+ "error.response_truncated.why": "The managed_max_tokens_per_turn = {limit} tokens limit was reached mid-turn. The model stopped generating.",
119
+ "error.response_truncated.fix": "Raise the limit via yf limits. Applies to the next turn without restarting the chat.",
120
+ "error.response_truncated.cmd": "yf limits set managed_max_tokens_per_turn 16384",
121
+ "error.response_truncated.banner": "[Response truncated by max_tokens={max}. Raise the limit with: yf limits set managed_max_tokens_per_turn {suggested}]",
122
+
123
+ "error.modal_trace_stale.what": "The approval modal expired or is orphaned.",
124
+ "error.modal_trace_stale.why": "Trace_id {trace_id} has no pending approval in the dispatcher. Likely race condition between invoke and panel state, or a previous cancel left the trace zombie.",
125
+ "error.modal_trace_stale.fix": "Retry the verb from chat: starts a fresh trace. If it persists, run yf doctor to check the panel.",
126
+ "error.modal_trace_stale.cmd": "yf doctor",
127
+
128
+ "error.byok_key_missing.what": "Missing API key for provider {provider}.",
129
+ "error.byok_key_missing.why": "You configured {provider} as the {tier} tier provider but the byok_{slot} slot is not in the encrypted Vault.",
130
+ "error.byok_key_missing.fix": "Configure the key with yf keys set (atomic, mode 0600, never logged).",
131
+ "error.byok_key_missing.cmd": "yf keys set {slot}",
132
+
133
+ "error.worker_unreachable.what": "Could not reach the yujin.app worker.",
134
+ "error.worker_unreachable.why": "Network timeout or worker down (HTTP {status}). Retried {attempts} times.",
135
+ "error.worker_unreachable.fix": "Check your internet. If it is OK, switch temporarily to direct BYOK to avoid the worker dependency.",
136
+ "error.worker_unreachable.cmd": "yf brain config --frontier-provider anthropic",
137
+
138
+ "error.vault_decrypt_failed.what": "Could not decrypt a key from the Vault.",
139
+ "error.vault_decrypt_failed.why": "The master key is incorrect or the Vault file is corrupted. Can happen if you moved config between machines without migrating the master, or due to disk error.",
140
+ "error.vault_decrypt_failed.fix": "Pull the server copy (re-encrypts with your local master) if you have server backup active.",
141
+ "error.vault_decrypt_failed.cmd": "yf keys setup --pull",
142
+
143
+ "error.shell_exec_rejected.what": "You rejected the R8 modal for yujin.shell.exec.",
144
+ "error.shell_exec_rejected.why": "Command {command} was classified as {classification}. shell.exec always asks for approval for safety, even if the command is read-only.",
145
+ "error.shell_exec_rejected.fix": "If the command was read-only (yf projects active, git status, ls), use the equivalent native verb. If it was needed and you rejected by mistake, re-invoke.",
146
+
147
+ "error.project_not_registered.what": "No adopter project registered.",
148
+ "error.project_not_registered.why": "The verb you invoked needs an active project root but ~/.yujin-forge/projects.json has no entries.",
149
+ "error.project_not_registered.fix": "Create one with yujin.project.init or register an existing one with yf projects add.",
150
+ "error.project_not_registered.cmd": "yf projects scan"
86
151
  }
@@ -82,5 +82,70 @@
82
82
  "lang.name.it": "Italiano",
83
83
 
84
84
  "recap.fallback_period": ".",
85
- "recap.empty": "No hay nada que recordar todavia."
85
+ "recap.empty": "No hay nada que recordar todavia.",
86
+
87
+ "error_ui.severity.info": "INFO",
88
+ "error_ui.severity.warning": "ATENCION",
89
+ "error_ui.severity.error": "ERROR",
90
+ "error_ui.severity.fatal": "FATAL",
91
+ "error_ui.label.what": "Que paso",
92
+ "error_ui.label.why": "Por que",
93
+ "error_ui.label.fix": "Como destrabar",
94
+ "error_ui.label.cmd": "Comando",
95
+ "error_ui.label.docs": "Docs locales",
96
+ "error_ui.label.retry": "Reintentar en",
97
+ "error_ui.copy_btn": "Copiar comando",
98
+ "error_ui.unknown.what": "Forge encontro un error interno (codigo desconocido).",
99
+ "error_ui.unknown.why": "El codigo {code} no esta en el catalogo. Es un bug.",
100
+ "error_ui.unknown.fix": "Abri un issue en https://github.com/yujinapp/yujin-forge/issues con el codigo + traceback.",
101
+
102
+ "error.cap_frontier_exhausted.what": "Se agoto el cap mensual de tokens del tier frontier (modelo grande).",
103
+ "error.cap_frontier_exhausted.why": "Tu plan {plan} permite hasta {cap} tokens/mes en frontier. Usaste {used}. Resetea al inicio del proximo mes UTC.",
104
+ "error.cap_frontier_exhausted.fix": "Pasa a BYOK Anthropic directo: bypassea el cap mensual del worker. Tu costo pasa a ser lo que cobra Anthropic.",
105
+ "error.cap_frontier_exhausted.cmd": "yf brain config --frontier-provider anthropic --frontier-model claude-opus-4-7",
106
+
107
+ "error.cap_eco_exhausted.what": "Se agoto el cap mensual de tokens del tier eco (modelo chico).",
108
+ "error.cap_eco_exhausted.why": "Tu plan {plan} permite hasta {cap} tokens/mes en eco. Usaste {used}. Resetea al inicio del proximo mes UTC.",
109
+ "error.cap_eco_exhausted.fix": "Pasa a BYOK directo o sube de plan. BYOK bypassea el cap del worker.",
110
+ "error.cap_eco_exhausted.cmd": "yf brain config --eco-provider google_ai --eco-model gemini-2.5-flash-lite",
111
+
112
+ "error.tier_not_in_plan.what": "El tier {tier} no esta habilitado en tu plan.",
113
+ "error.tier_not_in_plan.why": "Tu plan {plan} no incluye el tier {tier}. Probablemente sos free-public o tu license expiro.",
114
+ "error.tier_not_in_plan.fix": "Activa una licencia paga o pasa a BYOK directo (tu costo, sin cap del worker).",
115
+ "error.tier_not_in_plan.cmd": "yf license activate --key <jwt>",
116
+
117
+ "error.response_truncated.what": "La respuesta del modelo se corto antes de terminar.",
118
+ "error.response_truncated.why": "Limite managed_max_tokens_per_turn = {limit} tokens alcanzado a mitad del turno. El modelo paro de generar.",
119
+ "error.response_truncated.fix": "Subi el limite via yf limits. Aplica al proximo turno sin reiniciar el chat.",
120
+ "error.response_truncated.cmd": "yf limits set managed_max_tokens_per_turn 16384",
121
+ "error.response_truncated.banner": "[Respuesta truncada por max_tokens={max}. Subi el limite con: yf limits set managed_max_tokens_per_turn {suggested}]",
122
+
123
+ "error.modal_trace_stale.what": "El modal de aprobacion expiro o quedo huerfano.",
124
+ "error.modal_trace_stale.why": "El trace_id {trace_id} no tiene approval pendiente en el dispatcher. Probable race condition entre invoke y panel state, o cancel previo dejo el trace zombie.",
125
+ "error.modal_trace_stale.fix": "Reintenta el verbo desde el chat: arranca un nuevo trace limpio. Si persiste, corre yf doctor para chequear el panel.",
126
+ "error.modal_trace_stale.cmd": "yf doctor",
127
+
128
+ "error.byok_key_missing.what": "Falta la API key para el provider {provider}.",
129
+ "error.byok_key_missing.why": "Configuraste {provider} como provider del tier {tier} pero el slot byok_{slot} no esta en el Vault encriptado.",
130
+ "error.byok_key_missing.fix": "Configura la key con yf keys set (atomico, mode 0600, nunca se logguea).",
131
+ "error.byok_key_missing.cmd": "yf keys set {slot}",
132
+
133
+ "error.worker_unreachable.what": "No pude alcanzar el worker yujin.app.",
134
+ "error.worker_unreachable.why": "Network timeout o worker caido (HTTP {status}). Reintente {attempts} veces.",
135
+ "error.worker_unreachable.fix": "Chequea tu internet. Si esta OK, pasa temporalmente a BYOK directo para no depender del worker.",
136
+ "error.worker_unreachable.cmd": "yf brain config --frontier-provider anthropic",
137
+
138
+ "error.vault_decrypt_failed.what": "No pude desencriptar una clave del Vault.",
139
+ "error.vault_decrypt_failed.why": "La master key es incorrecta o el archivo del Vault esta corrupto. Puede pasar si moviste config entre maquinas sin migrar la master o por disk error.",
140
+ "error.vault_decrypt_failed.fix": "Traete la copia del server (re-encripta con tu master local) si tenes server backup activo.",
141
+ "error.vault_decrypt_failed.cmd": "yf keys setup --pull",
142
+
143
+ "error.shell_exec_rejected.what": "Rechazaste el modal R8 de yujin.shell.exec.",
144
+ "error.shell_exec_rejected.why": "El comando {command} se clasifico como {classification}. shell.exec siempre pide aprobacion por seguridad, aunque sea read-only.",
145
+ "error.shell_exec_rejected.fix": "Si el comando era read-only (yf projects active, git status, ls), usa el verb nativo equivalente. Si era necesario y lo rechazaste por error, reinvoca.",
146
+
147
+ "error.project_not_registered.what": "No hay proyecto adopter registrado.",
148
+ "error.project_not_registered.why": "El verb que invocaste requiere project root activo pero ~/.yujin-forge/projects.json no tiene entradas.",
149
+ "error.project_not_registered.fix": "Crea uno con yujin.project.init o registra uno existente con yf projects add.",
150
+ "error.project_not_registered.cmd": "yf projects scan"
86
151
  }
@@ -12,7 +12,6 @@
12
12
  "panel.button.maximise": "Agrandir",
13
13
  "panel.button.close": "Fermer",
14
14
  "panel.button.language": "Langue",
15
-
16
15
  "panel.trace.title": "Trace des actions",
17
16
  "panel.trace.count.one": "{n} appel d'outil",
18
17
  "panel.trace.count.other": "{n} appels d'outils",
@@ -21,10 +20,8 @@
21
20
  "panel.trace.badge.tool": "OUTIL",
22
21
  "panel.trace.badge.voice": "VOIX",
23
22
  "panel.trace.badge.error": "ERREUR",
24
-
25
23
  "panel.stream.empty.kanji": "侑仁",
26
24
  "panel.stream.empty.body": "Yujin Forge en ligne. Demande des changements au projet.",
27
-
28
25
  "panel.status.no_audio": "Aucun audio capture. Le micro n'a probablement rien recu.",
29
26
  "panel.status.did_not_catch": "Je n'ai pas compris. Essayons a nouveau.",
30
27
  "panel.status.mic_denied": "Permission micro refusee ou indisponible : {error}",
@@ -34,10 +31,8 @@
34
31
  "panel.status.reading": "Lecture de {filename}...",
35
32
  "panel.status.ingest_failed": "L'ingestion a echoue : {error}",
36
33
  "panel.status.read_failed": "Impossible de lire la specification : {error}",
37
-
38
34
  "panel.drop.title": "Depose la specification ici",
39
35
  "panel.drop.hint": "PDF, DOCX, HTML, MD, RTF, EPUB, CSV, XLSX, TXT",
40
-
41
36
  "panel.ingest.spec_attached": "Specification jointe : {filename}, {kb} KB",
42
37
  "panel.ingest.read_label": "Lue.",
43
38
  "panel.ingest.title_label": "Titre : {title}",
@@ -45,7 +40,6 @@
45
40
  "panel.ingest.format_label": "Format : {format} / {sections} section(s) / {kb} KB",
46
41
  "panel.ingest.first_lines": "Premieres lignes :",
47
42
  "panel.ingest.action_done": "Action {tool} terminee.",
48
-
49
43
  "vault.modal.title": "Identifiants (vault)",
50
44
  "vault.modal.aria.close": "Fermer la modale des identifiants",
51
45
  "vault.tab.list": "Slots charges",
@@ -60,7 +54,6 @@
60
54
  "vault.add.button_cancel": "Annuler",
61
55
  "vault.add.success": "Slot {slot} enregistre.",
62
56
  "vault.add.overwrite": "Slot {slot} ecrase.",
63
-
64
57
  "manual.intro": "Yujin Forge -- manuel utilisateur",
65
58
  "manual.section.welcome": "Bienvenue",
66
59
  "manual.section.install": "Installation",
@@ -69,7 +62,6 @@
69
62
  "manual.section.spec_ingest": "Ingestion de specifications",
70
63
  "manual.section.troubleshooting": "Depannage",
71
64
  "manual.section.support": "Support",
72
-
73
65
  "lang.name.es": "Espagnol",
74
66
  "lang.name.en": "Anglais",
75
67
  "lang.name.pt": "Portugais",
@@ -80,7 +72,60 @@
80
72
  "lang.name.ar": "Arabe",
81
73
  "lang.name.de": "Allemand",
82
74
  "lang.name.it": "Italien",
83
-
84
75
  "recap.fallback_period": ".",
85
- "recap.empty": "Il n'y a rien a resumer pour l'instant."
76
+ "recap.empty": "Il n'y a rien a resumer pour l'instant.",
77
+ "error_ui.severity.info": "INFO",
78
+ "error_ui.severity.warning": "ATTENTION",
79
+ "error_ui.severity.error": "ERREUR",
80
+ "error_ui.severity.fatal": "FATAL",
81
+ "error_ui.label.what": "Que s'est-il passe",
82
+ "error_ui.label.why": "Pourquoi",
83
+ "error_ui.label.fix": "Comment debloquer",
84
+ "error_ui.label.cmd": "Commande",
85
+ "error_ui.label.docs": "Docs locales",
86
+ "error_ui.label.retry": "Reessayer dans",
87
+ "error_ui.copy_btn": "Copier la commande",
88
+ "error_ui.unknown.what": "Forge a rencontre une erreur interne (code inconnu).",
89
+ "error_ui.unknown.why": "Le code {code} n'est pas dans le catalogue. C'est un bug.",
90
+ "error_ui.unknown.fix": "Ouvrez un issue sur https://github.com/yujinapp/yujin-forge/issues avec le code + le traceback.",
91
+ "error.cap_frontier_exhausted.what": "Cap mensuel de tokens du tier frontier epuise (gros modele).",
92
+ "error.cap_frontier_exhausted.why": "Votre plan {plan} permet jusqu'a {cap} tokens/mois en frontier. Vous avez utilise {used}. Reset au debut du prochain mois UTC.",
93
+ "error.cap_frontier_exhausted.fix": "Passez au BYOK Anthropic direct: ignore le cap mensuel du worker. Votre cout devient ce qu'Anthropic facture.",
94
+ "error.cap_frontier_exhausted.cmd": "yf brain config --frontier-provider anthropic --frontier-model claude-opus-4-7",
95
+ "error.cap_eco_exhausted.what": "Cap mensuel de tokens du tier eco epuise (petit modele).",
96
+ "error.cap_eco_exhausted.why": "Votre plan {plan} permet jusqu'a {cap} tokens/mois en eco. Vous avez utilise {used}. Reset au debut du prochain mois UTC.",
97
+ "error.cap_eco_exhausted.fix": "Passez au BYOK direct ou montez de plan. BYOK ignore le cap du worker.",
98
+ "error.cap_eco_exhausted.cmd": "yf brain config --eco-provider google_ai --eco-model gemini-2.5-flash-lite",
99
+ "error.tier_not_in_plan.what": "Le tier {tier} n'est pas active sur votre plan.",
100
+ "error.tier_not_in_plan.why": "Votre plan {plan} n'inclut pas le tier {tier}. Vous etes probablement en free-public ou votre licence a expire.",
101
+ "error.tier_not_in_plan.fix": "Activez une licence payante ou passez au BYOK direct (votre cout, sans cap du worker).",
102
+ "error.tier_not_in_plan.cmd": "yf license activate --key <jwt>",
103
+ "error.response_truncated.what": "La reponse du modele a ete coupee avant la fin.",
104
+ "error.response_truncated.why": "Limite managed_max_tokens_per_turn = {limit} tokens atteinte en plein turn. Le modele a arrete de generer.",
105
+ "error.response_truncated.fix": "Augmentez la limite via yf limits. S'applique au prochain turn sans redemarrer le chat.",
106
+ "error.response_truncated.cmd": "yf limits set managed_max_tokens_per_turn 16384",
107
+ "error.response_truncated.banner": "[Reponse tronquee par max_tokens={max}. Augmentez la limite avec: yf limits set managed_max_tokens_per_turn {suggested}]",
108
+ "error.modal_trace_stale.what": "Le modal d'approbation a expire ou est orphelin.",
109
+ "error.modal_trace_stale.why": "Le trace_id {trace_id} n'a pas d'approval en attente dans le dispatcher. Probable race condition entre invoke et etat du panel, ou cancel precedent a laisse le trace zombie.",
110
+ "error.modal_trace_stale.fix": "Reinvoquez le verb depuis le chat: demarre un nouveau trace propre. Si ca persiste, lancez yf doctor pour verifier le panel.",
111
+ "error.modal_trace_stale.cmd": "yf doctor",
112
+ "error.byok_key_missing.what": "API key manquante pour le provider {provider}.",
113
+ "error.byok_key_missing.why": "Vous avez configure {provider} comme provider du tier {tier} mais le slot byok_{slot} n'est pas dans le Vault chiffre.",
114
+ "error.byok_key_missing.fix": "Configurez la key avec yf keys set (atomique, mode 0600, jamais journalise).",
115
+ "error.byok_key_missing.cmd": "yf keys set {slot}",
116
+ "error.worker_unreachable.what": "Impossible d'atteindre le worker yujin.app.",
117
+ "error.worker_unreachable.why": "Timeout reseau ou worker en panne (HTTP {status}). Reessaye {attempts} fois.",
118
+ "error.worker_unreachable.fix": "Verifiez votre internet. Si OK, passez temporairement au BYOK direct pour eviter la dependance au worker.",
119
+ "error.worker_unreachable.cmd": "yf brain config --frontier-provider anthropic",
120
+ "error.vault_decrypt_failed.what": "Impossible de dechiffrer une cle du Vault.",
121
+ "error.vault_decrypt_failed.why": "La master key est incorrecte ou le fichier du Vault est corrompu. Peut arriver si vous avez deplace la config entre machines sans migrer la master ou par disk error.",
122
+ "error.vault_decrypt_failed.fix": "Recuperez la copie du serveur (rechiffre avec votre master locale) si vous avez le server backup actif.",
123
+ "error.vault_decrypt_failed.cmd": "yf keys setup --pull",
124
+ "error.shell_exec_rejected.what": "Vous avez rejete le modal R8 de yujin.shell.exec.",
125
+ "error.shell_exec_rejected.why": "La commande {command} a ete classee comme {classification}. shell.exec demande toujours approbation par securite, meme si la commande est read-only.",
126
+ "error.shell_exec_rejected.fix": "Si la commande etait read-only (yf projects active, git status, ls), utilisez le verb natif equivalent. Si elle etait necessaire et vous avez rejete par erreur, reinvoquez.",
127
+ "error.project_not_registered.what": "Aucun projet adopter enregistre.",
128
+ "error.project_not_registered.why": "Le verb invoque necessite un project root actif mais ~/.yujin-forge/projects.json n'a pas d'entrees.",
129
+ "error.project_not_registered.fix": "Creez-en un avec yujin.project.init ou enregistrez un existant avec yf projects add.",
130
+ "error.project_not_registered.cmd": "yf projects scan"
86
131
  }