@nac3/forge-cli 0.2.0-alpha.9 → 0.2.1-alpha.60

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 (1045) 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/bridge.d.ts +69 -0
  7. package/dist/agents/bridge.d.ts.map +1 -0
  8. package/dist/agents/bridge.js +295 -0
  9. package/dist/agents/bridge.js.map +1 -0
  10. package/dist/agents/cli_real.d.ts +38 -0
  11. package/dist/agents/cli_real.d.ts.map +1 -0
  12. package/dist/agents/cli_real.js +46 -0
  13. package/dist/agents/cli_real.js.map +1 -0
  14. package/dist/agents/config_resolver.d.ts +16 -0
  15. package/dist/agents/config_resolver.d.ts.map +1 -0
  16. package/dist/agents/config_resolver.js +133 -0
  17. package/dist/agents/config_resolver.js.map +1 -0
  18. package/dist/agents/config_schema.d.ts +42 -0
  19. package/dist/agents/config_schema.d.ts.map +1 -0
  20. package/dist/agents/config_schema.js +220 -0
  21. package/dist/agents/config_schema.js.map +1 -0
  22. package/dist/agents/defaults.d.ts +21 -0
  23. package/dist/agents/defaults.d.ts.map +1 -0
  24. package/dist/agents/defaults.js +56 -0
  25. package/dist/agents/defaults.js.map +1 -0
  26. package/dist/agents/delegate.d.ts +36 -0
  27. package/dist/agents/delegate.d.ts.map +1 -0
  28. package/dist/agents/delegate.js +68 -0
  29. package/dist/agents/delegate.js.map +1 -0
  30. package/dist/agents/iterative_step.d.ts +95 -0
  31. package/dist/agents/iterative_step.d.ts.map +1 -0
  32. package/dist/agents/iterative_step.js +249 -0
  33. package/dist/agents/iterative_step.js.map +1 -0
  34. package/dist/agents/llm_step.d.ts +50 -0
  35. package/dist/agents/llm_step.d.ts.map +1 -0
  36. package/dist/agents/llm_step.js +28 -0
  37. package/dist/agents/llm_step.js.map +1 -0
  38. package/dist/agents/real_step_factory.d.ts +95 -0
  39. package/dist/agents/real_step_factory.d.ts.map +1 -0
  40. package/dist/agents/real_step_factory.js +51 -0
  41. package/dist/agents/real_step_factory.js.map +1 -0
  42. package/dist/agents/runner.d.ts +108 -0
  43. package/dist/agents/runner.d.ts.map +1 -0
  44. package/dist/agents/runner.js +174 -0
  45. package/dist/agents/runner.js.map +1 -0
  46. package/dist/agents/runtime.d.ts +115 -0
  47. package/dist/agents/runtime.d.ts.map +1 -0
  48. package/dist/agents/runtime.js +429 -0
  49. package/dist/agents/runtime.js.map +1 -0
  50. package/dist/agents/store.d.ts +33 -0
  51. package/dist/agents/store.d.ts.map +1 -0
  52. package/dist/agents/store.js +210 -0
  53. package/dist/agents/store.js.map +1 -0
  54. package/dist/agents/system_prompt.d.ts +36 -0
  55. package/dist/agents/system_prompt.d.ts.map +1 -0
  56. package/dist/agents/system_prompt.js +101 -0
  57. package/dist/agents/system_prompt.js.map +1 -0
  58. package/dist/agents/types.d.ts +123 -0
  59. package/dist/agents/types.d.ts.map +1 -0
  60. package/dist/agents/types.js +39 -0
  61. package/dist/agents/types.js.map +1 -0
  62. package/dist/bin/yf.d.ts.map +1 -1
  63. package/dist/bin/yf.js +101 -2
  64. package/dist/bin/yf.js.map +1 -1
  65. package/dist/chat/claude.d.ts +89 -1
  66. package/dist/chat/claude.d.ts.map +1 -1
  67. package/dist/chat/claude.js +170 -30
  68. package/dist/chat/claude.js.map +1 -1
  69. package/dist/chat/claude_cli.d.ts +145 -0
  70. package/dist/chat/claude_cli.d.ts.map +1 -0
  71. package/dist/chat/claude_cli.js +598 -0
  72. package/dist/chat/claude_cli.js.map +1 -0
  73. package/dist/chat/completion_hallucination_detector.d.ts +40 -0
  74. package/dist/chat/completion_hallucination_detector.d.ts.map +1 -0
  75. package/dist/chat/completion_hallucination_detector.js +96 -0
  76. package/dist/chat/completion_hallucination_detector.js.map +1 -0
  77. package/dist/chat/doctrine_digest.d.ts +31 -0
  78. package/dist/chat/doctrine_digest.d.ts.map +1 -0
  79. package/dist/chat/doctrine_digest.js +117 -0
  80. package/dist/chat/doctrine_digest.js.map +1 -0
  81. package/dist/chat/graph_auto_ingest.d.ts +46 -0
  82. package/dist/chat/graph_auto_ingest.d.ts.map +1 -0
  83. package/dist/chat/graph_auto_ingest.js +177 -0
  84. package/dist/chat/graph_auto_ingest.js.map +1 -0
  85. package/dist/chat/graph_component_watcher.d.ts +34 -0
  86. package/dist/chat/graph_component_watcher.d.ts.map +1 -0
  87. package/dist/chat/graph_component_watcher.js +225 -0
  88. package/dist/chat/graph_component_watcher.js.map +1 -0
  89. package/dist/chat/graph_snapshot.d.ts +38 -0
  90. package/dist/chat/graph_snapshot.d.ts.map +1 -0
  91. package/dist/chat/graph_snapshot.js +159 -0
  92. package/dist/chat/graph_snapshot.js.map +1 -0
  93. package/dist/chat/ingest_session.d.ts +24 -4
  94. package/dist/chat/ingest_session.d.ts.map +1 -1
  95. package/dist/chat/ingest_session.js +143 -4
  96. package/dist/chat/ingest_session.js.map +1 -1
  97. package/dist/chat/panel.d.ts.map +1 -1
  98. package/dist/chat/panel.js +9640 -1455
  99. package/dist/chat/panel.js.map +1 -1
  100. package/dist/chat/panel_queue.d.ts +43 -0
  101. package/dist/chat/panel_queue.d.ts.map +1 -0
  102. package/dist/chat/panel_queue.js +46 -0
  103. package/dist/chat/panel_queue.js.map +1 -0
  104. package/dist/chat/project_context_inject.d.ts +10 -0
  105. package/dist/chat/project_context_inject.d.ts.map +1 -0
  106. package/dist/chat/project_context_inject.js +119 -0
  107. package/dist/chat/project_context_inject.js.map +1 -0
  108. package/dist/chat/project_slug.d.ts +17 -0
  109. package/dist/chat/project_slug.d.ts.map +1 -0
  110. package/dist/chat/project_slug.js +103 -0
  111. package/dist/chat/project_slug.js.map +1 -0
  112. package/dist/chat/refusal_detector.d.ts +14 -0
  113. package/dist/chat/refusal_detector.d.ts.map +1 -0
  114. package/dist/chat/refusal_detector.js +138 -0
  115. package/dist/chat/refusal_detector.js.map +1 -0
  116. package/dist/chat/semantic_graph_ingest.d.ts +39 -0
  117. package/dist/chat/semantic_graph_ingest.d.ts.map +1 -0
  118. package/dist/chat/semantic_graph_ingest.js +90 -0
  119. package/dist/chat/semantic_graph_ingest.js.map +1 -0
  120. package/dist/chat/semantic_graph_inject.d.ts +31 -0
  121. package/dist/chat/semantic_graph_inject.d.ts.map +1 -0
  122. package/dist/chat/semantic_graph_inject.js +63 -0
  123. package/dist/chat/semantic_graph_inject.js.map +1 -0
  124. package/dist/chat/server.d.ts +98 -2
  125. package/dist/chat/server.d.ts.map +1 -1
  126. package/dist/chat/server.js +3678 -345
  127. package/dist/chat/server.js.map +1 -1
  128. package/dist/chat/spec_extract.d.ts +1 -2
  129. package/dist/chat/spec_extract.d.ts.map +1 -1
  130. package/dist/chat/spec_extract.js +41 -56
  131. package/dist/chat/spec_extract.js.map +1 -1
  132. package/dist/chat/spec_plan.d.ts +1 -2
  133. package/dist/chat/spec_plan.d.ts.map +1 -1
  134. package/dist/chat/spec_plan.js +36 -57
  135. package/dist/chat/spec_plan.js.map +1 -1
  136. package/dist/chat/tools/app_backend_dispatch.d.ts +39 -0
  137. package/dist/chat/tools/app_backend_dispatch.d.ts.map +1 -0
  138. package/dist/chat/tools/app_backend_dispatch.js +239 -0
  139. package/dist/chat/tools/app_backend_dispatch.js.map +1 -0
  140. package/dist/chat/tools/fs_editor.d.ts +11 -0
  141. package/dist/chat/tools/fs_editor.d.ts.map +1 -0
  142. package/dist/chat/tools/fs_editor.js +162 -0
  143. package/dist/chat/tools/fs_editor.js.map +1 -0
  144. package/dist/chat/tools/git.d.ts +24 -0
  145. package/dist/chat/tools/git.d.ts.map +1 -1
  146. package/dist/chat/tools/git.js +78 -0
  147. package/dist/chat/tools/git.js.map +1 -1
  148. package/dist/chat/tools/graph.d.ts +43 -0
  149. package/dist/chat/tools/graph.d.ts.map +1 -0
  150. package/dist/chat/tools/graph.js +174 -0
  151. package/dist/chat/tools/graph.js.map +1 -0
  152. package/dist/chat/tools/keys.d.ts +9 -0
  153. package/dist/chat/tools/keys.d.ts.map +1 -0
  154. package/dist/chat/tools/keys.js +169 -0
  155. package/dist/chat/tools/keys.js.map +1 -0
  156. package/dist/chat/tools/misc_verbs.d.ts +36 -0
  157. package/dist/chat/tools/misc_verbs.d.ts.map +1 -0
  158. package/dist/chat/tools/misc_verbs.js +405 -0
  159. package/dist/chat/tools/misc_verbs.js.map +1 -0
  160. package/dist/chat/tools/nac3_invoke.d.ts +58 -0
  161. package/dist/chat/tools/nac3_invoke.d.ts.map +1 -0
  162. package/dist/chat/tools/nac3_invoke.js +887 -0
  163. package/dist/chat/tools/nac3_invoke.js.map +1 -0
  164. package/dist/chat/tools/pending.d.ts +69 -0
  165. package/dist/chat/tools/pending.d.ts.map +1 -0
  166. package/dist/chat/tools/pending.js +167 -0
  167. package/dist/chat/tools/pending.js.map +1 -0
  168. package/dist/chat/tools/pizarron.d.ts +40 -0
  169. package/dist/chat/tools/pizarron.d.ts.map +1 -0
  170. package/dist/chat/tools/pizarron.js +123 -0
  171. package/dist/chat/tools/pizarron.js.map +1 -0
  172. package/dist/chat/tools/project_lifecycle.d.ts +24 -0
  173. package/dist/chat/tools/project_lifecycle.d.ts.map +1 -0
  174. package/dist/chat/tools/project_lifecycle.js +212 -0
  175. package/dist/chat/tools/project_lifecycle.js.map +1 -0
  176. package/dist/chat/tools/reader.d.ts.map +1 -1
  177. package/dist/chat/tools/reader.js +144 -1
  178. package/dist/chat/tools/reader.js.map +1 -1
  179. package/dist/chat/tools/shell.d.ts +58 -0
  180. package/dist/chat/tools/shell.d.ts.map +1 -0
  181. package/dist/chat/tools/shell.js +253 -0
  182. package/dist/chat/tools/shell.js.map +1 -0
  183. package/dist/chat/tools/wiring.d.ts +28 -0
  184. package/dist/chat/tools/wiring.d.ts.map +1 -0
  185. package/dist/chat/tools/wiring.js +116 -0
  186. package/dist/chat/tools/wiring.js.map +1 -0
  187. package/dist/chat/tools/workflow.d.ts +55 -0
  188. package/dist/chat/tools/workflow.d.ts.map +1 -0
  189. package/dist/chat/tools/workflow.js +463 -0
  190. package/dist/chat/tools/workflow.js.map +1 -0
  191. package/dist/chat/tools.d.ts +42 -0
  192. package/dist/chat/tools.d.ts.map +1 -1
  193. package/dist/chat/tools.js +447 -16
  194. package/dist/chat/tools.js.map +1 -1
  195. package/dist/chat/wiring_inject.d.ts +18 -0
  196. package/dist/chat/wiring_inject.d.ts.map +1 -0
  197. package/dist/chat/wiring_inject.js +78 -0
  198. package/dist/chat/wiring_inject.js.map +1 -0
  199. package/dist/chat/workflow_inject.d.ts +52 -0
  200. package/dist/chat/workflow_inject.d.ts.map +1 -0
  201. package/dist/chat/workflow_inject.js +346 -0
  202. package/dist/chat/workflow_inject.js.map +1 -0
  203. package/dist/chat/yujin_splash.d.ts +27 -0
  204. package/dist/chat/yujin_splash.d.ts.map +1 -0
  205. package/dist/chat/yujin_splash.js +147 -0
  206. package/dist/chat/yujin_splash.js.map +1 -0
  207. package/dist/commands/agent.d.ts +33 -0
  208. package/dist/commands/agent.d.ts.map +1 -0
  209. package/dist/commands/agent.js +281 -0
  210. package/dist/commands/agent.js.map +1 -0
  211. package/dist/commands/approve.d.ts +32 -0
  212. package/dist/commands/approve.d.ts.map +1 -0
  213. package/dist/commands/approve.js +198 -0
  214. package/dist/commands/approve.js.map +1 -0
  215. package/dist/commands/block.d.ts +28 -0
  216. package/dist/commands/block.d.ts.map +1 -0
  217. package/dist/commands/block.js +189 -0
  218. package/dist/commands/block.js.map +1 -0
  219. package/dist/commands/bootstrap.d.ts +35 -0
  220. package/dist/commands/bootstrap.d.ts.map +1 -0
  221. package/dist/commands/bootstrap.js +205 -0
  222. package/dist/commands/bootstrap.js.map +1 -0
  223. package/dist/commands/brain.d.ts +17 -0
  224. package/dist/commands/brain.d.ts.map +1 -0
  225. package/dist/commands/brain.js +129 -0
  226. package/dist/commands/brain.js.map +1 -0
  227. package/dist/commands/chat.d.ts +10 -0
  228. package/dist/commands/chat.d.ts.map +1 -1
  229. package/dist/commands/chat.js +209 -17
  230. package/dist/commands/chat.js.map +1 -1
  231. package/dist/commands/clarify.d.ts +30 -0
  232. package/dist/commands/clarify.d.ts.map +1 -0
  233. package/dist/commands/clarify.js +671 -0
  234. package/dist/commands/clarify.js.map +1 -0
  235. package/dist/commands/director.d.ts +37 -0
  236. package/dist/commands/director.d.ts.map +1 -0
  237. package/dist/commands/director.js +290 -0
  238. package/dist/commands/director.js.map +1 -0
  239. package/dist/commands/discover.d.ts +30 -0
  240. package/dist/commands/discover.d.ts.map +1 -0
  241. package/dist/commands/discover.js +178 -0
  242. package/dist/commands/discover.js.map +1 -0
  243. package/dist/commands/doctor.d.ts +18 -0
  244. package/dist/commands/doctor.d.ts.map +1 -1
  245. package/dist/commands/doctor.js +120 -4
  246. package/dist/commands/doctor.js.map +1 -1
  247. package/dist/commands/doctrine.d.ts +24 -0
  248. package/dist/commands/doctrine.d.ts.map +1 -0
  249. package/dist/commands/doctrine.js +106 -0
  250. package/dist/commands/doctrine.js.map +1 -0
  251. package/dist/commands/doctrines.d.ts +21 -0
  252. package/dist/commands/doctrines.d.ts.map +1 -0
  253. package/dist/commands/doctrines.js +158 -0
  254. package/dist/commands/doctrines.js.map +1 -0
  255. package/dist/commands/graph.d.ts +29 -0
  256. package/dist/commands/graph.d.ts.map +1 -0
  257. package/dist/commands/graph.js +362 -0
  258. package/dist/commands/graph.js.map +1 -0
  259. package/dist/commands/keys_setup.d.ts +18 -0
  260. package/dist/commands/keys_setup.d.ts.map +1 -1
  261. package/dist/commands/keys_setup.js +225 -11
  262. package/dist/commands/keys_setup.js.map +1 -1
  263. package/dist/commands/legacy-audit.d.ts +34 -0
  264. package/dist/commands/legacy-audit.d.ts.map +1 -0
  265. package/dist/commands/legacy-audit.js +270 -0
  266. package/dist/commands/legacy-audit.js.map +1 -0
  267. package/dist/commands/lessons.d.ts +28 -0
  268. package/dist/commands/lessons.d.ts.map +1 -0
  269. package/dist/commands/lessons.js +309 -0
  270. package/dist/commands/lessons.js.map +1 -0
  271. package/dist/commands/license.d.ts.map +1 -1
  272. package/dist/commands/license.js +56 -1
  273. package/dist/commands/license.js.map +1 -1
  274. package/dist/commands/limits.d.ts +15 -0
  275. package/dist/commands/limits.d.ts.map +1 -0
  276. package/dist/commands/limits.js +51 -0
  277. package/dist/commands/limits.js.map +1 -0
  278. package/dist/commands/manifest-cli.d.ts +12 -0
  279. package/dist/commands/manifest-cli.d.ts.map +1 -0
  280. package/dist/commands/manifest-cli.js +42 -0
  281. package/dist/commands/manifest-cli.js.map +1 -0
  282. package/dist/commands/mcp.d.ts +24 -0
  283. package/dist/commands/mcp.d.ts.map +1 -0
  284. package/dist/commands/mcp.js +163 -0
  285. package/dist/commands/mcp.js.map +1 -0
  286. package/dist/commands/mobile.d.ts +15 -0
  287. package/dist/commands/mobile.d.ts.map +1 -1
  288. package/dist/commands/mobile.js +27 -24
  289. package/dist/commands/mobile.js.map +1 -1
  290. package/dist/commands/nac3.d.ts +22 -0
  291. package/dist/commands/nac3.d.ts.map +1 -0
  292. package/dist/commands/nac3.js +125 -0
  293. package/dist/commands/nac3.js.map +1 -0
  294. package/dist/commands/operate.d.ts +22 -0
  295. package/dist/commands/operate.d.ts.map +1 -0
  296. package/dist/commands/operate.js +523 -0
  297. package/dist/commands/operate.js.map +1 -0
  298. package/dist/commands/pending.d.ts +22 -0
  299. package/dist/commands/pending.d.ts.map +1 -0
  300. package/dist/commands/pending.js +341 -0
  301. package/dist/commands/pending.js.map +1 -0
  302. package/dist/commands/qa.d.ts +24 -0
  303. package/dist/commands/qa.d.ts.map +1 -0
  304. package/dist/commands/qa.js +349 -0
  305. package/dist/commands/qa.js.map +1 -0
  306. package/dist/commands/spec.d.ts +38 -0
  307. package/dist/commands/spec.d.ts.map +1 -0
  308. package/dist/commands/spec.js +256 -0
  309. package/dist/commands/spec.js.map +1 -0
  310. package/dist/commands/support.d.ts +22 -0
  311. package/dist/commands/support.d.ts.map +1 -0
  312. package/dist/commands/support.js +165 -0
  313. package/dist/commands/support.js.map +1 -0
  314. package/dist/commands/test_agent.d.ts +22 -0
  315. package/dist/commands/test_agent.d.ts.map +1 -0
  316. package/dist/commands/test_agent.js +100 -0
  317. package/dist/commands/test_agent.js.map +1 -0
  318. package/dist/commands/triage.d.ts +34 -0
  319. package/dist/commands/triage.d.ts.map +1 -0
  320. package/dist/commands/triage.js +228 -0
  321. package/dist/commands/triage.js.map +1 -0
  322. package/dist/commands/vault-inventory.d.ts +30 -0
  323. package/dist/commands/vault-inventory.d.ts.map +1 -0
  324. package/dist/commands/vault-inventory.js +222 -0
  325. package/dist/commands/vault-inventory.js.map +1 -0
  326. package/dist/commands/vault.d.ts.map +1 -1
  327. package/dist/commands/vault.js +5 -0
  328. package/dist/commands/vault.js.map +1 -1
  329. package/dist/commands/voice.d.ts.map +1 -1
  330. package/dist/commands/voice.js +47 -4
  331. package/dist/commands/voice.js.map +1 -1
  332. package/dist/commands/wiring.d.ts +19 -0
  333. package/dist/commands/wiring.d.ts.map +1 -0
  334. package/dist/commands/wiring.js +135 -0
  335. package/dist/commands/wiring.js.map +1 -0
  336. package/dist/commands/workflow-coverage.d.ts +30 -0
  337. package/dist/commands/workflow-coverage.d.ts.map +1 -0
  338. package/dist/commands/workflow-coverage.js +138 -0
  339. package/dist/commands/workflow-coverage.js.map +1 -0
  340. package/dist/core/ansi_strip.d.ts +39 -0
  341. package/dist/core/ansi_strip.d.ts.map +1 -0
  342. package/dist/core/ansi_strip.js +71 -0
  343. package/dist/core/ansi_strip.js.map +1 -0
  344. package/dist/core/atomic_write.d.ts +17 -0
  345. package/dist/core/atomic_write.d.ts.map +1 -0
  346. package/dist/core/atomic_write.js +51 -0
  347. package/dist/core/atomic_write.js.map +1 -0
  348. package/dist/core/audit_log.d.ts +43 -0
  349. package/dist/core/audit_log.d.ts.map +1 -0
  350. package/dist/core/audit_log.js +80 -0
  351. package/dist/core/audit_log.js.map +1 -0
  352. package/dist/core/brain_config.d.ts +50 -0
  353. package/dist/core/brain_config.d.ts.map +1 -0
  354. package/dist/core/brain_config.js +142 -0
  355. package/dist/core/brain_config.js.map +1 -0
  356. package/dist/core/budget.d.ts +96 -0
  357. package/dist/core/budget.d.ts.map +1 -0
  358. package/dist/core/budget.js +328 -0
  359. package/dist/core/budget.js.map +1 -0
  360. package/dist/core/cost_meter.d.ts +35 -0
  361. package/dist/core/cost_meter.d.ts.map +1 -0
  362. package/dist/core/cost_meter.js +111 -0
  363. package/dist/core/cost_meter.js.map +1 -0
  364. package/dist/core/cost_router.d.ts +106 -0
  365. package/dist/core/cost_router.d.ts.map +1 -0
  366. package/dist/core/cost_router.js +589 -0
  367. package/dist/core/cost_router.js.map +1 -0
  368. package/dist/core/doctrine_resolver.d.ts +23 -0
  369. package/dist/core/doctrine_resolver.d.ts.map +1 -0
  370. package/dist/core/doctrine_resolver.js +108 -0
  371. package/dist/core/doctrine_resolver.js.map +1 -0
  372. package/dist/core/error_catalog.d.ts +80 -0
  373. package/dist/core/error_catalog.d.ts.map +1 -0
  374. package/dist/core/error_catalog.js +168 -0
  375. package/dist/core/error_catalog.js.map +1 -0
  376. package/dist/core/error_formatter.d.ts +30 -0
  377. package/dist/core/error_formatter.d.ts.map +1 -0
  378. package/dist/core/error_formatter.js +155 -0
  379. package/dist/core/error_formatter.js.map +1 -0
  380. package/dist/core/incomplete_detector.d.ts +51 -0
  381. package/dist/core/incomplete_detector.d.ts.map +1 -0
  382. package/dist/core/incomplete_detector.js +140 -0
  383. package/dist/core/incomplete_detector.js.map +1 -0
  384. package/dist/core/keys_envelope.d.ts.map +1 -1
  385. package/dist/core/keys_envelope.js +14 -9
  386. package/dist/core/keys_envelope.js.map +1 -1
  387. package/dist/core/learnings_client.d.ts +104 -0
  388. package/dist/core/learnings_client.d.ts.map +1 -0
  389. package/dist/core/learnings_client.js +262 -0
  390. package/dist/core/learnings_client.js.map +1 -0
  391. package/dist/core/limits_config.d.ts +76 -0
  392. package/dist/core/limits_config.d.ts.map +1 -0
  393. package/dist/core/limits_config.js +297 -0
  394. package/dist/core/limits_config.js.map +1 -0
  395. package/dist/core/pairing.d.ts +1 -0
  396. package/dist/core/pairing.d.ts.map +1 -1
  397. package/dist/core/pairing.js +23 -12
  398. package/dist/core/pairing.js.map +1 -1
  399. package/dist/core/pilot_setup.d.ts +29 -3
  400. package/dist/core/pilot_setup.d.ts.map +1 -1
  401. package/dist/core/pilot_setup.js +130 -3
  402. package/dist/core/pilot_setup.js.map +1 -1
  403. package/dist/core/provider_keys.d.ts +35 -0
  404. package/dist/core/provider_keys.d.ts.map +1 -0
  405. package/dist/core/provider_keys.js +267 -0
  406. package/dist/core/provider_keys.js.map +1 -0
  407. package/dist/core/provider_models.d.ts +27 -0
  408. package/dist/core/provider_models.d.ts.map +1 -0
  409. package/dist/core/provider_models.js +169 -0
  410. package/dist/core/provider_models.js.map +1 -0
  411. package/dist/core/reasoning_gate.d.ts +72 -0
  412. package/dist/core/reasoning_gate.d.ts.map +1 -0
  413. package/dist/core/reasoning_gate.js +205 -0
  414. package/dist/core/reasoning_gate.js.map +1 -0
  415. package/dist/core/shell_classifier.d.ts +49 -0
  416. package/dist/core/shell_classifier.d.ts.map +1 -0
  417. package/dist/core/shell_classifier.js +159 -0
  418. package/dist/core/shell_classifier.js.map +1 -0
  419. package/dist/core/sq_resolver.d.ts +14 -0
  420. package/dist/core/sq_resolver.d.ts.map +1 -0
  421. package/dist/core/sq_resolver.js +230 -0
  422. package/dist/core/sq_resolver.js.map +1 -0
  423. package/dist/core/truncation_detector.d.ts +68 -0
  424. package/dist/core/truncation_detector.d.ts.map +1 -0
  425. package/dist/core/truncation_detector.js +115 -0
  426. package/dist/core/truncation_detector.js.map +1 -0
  427. package/dist/core/turn_classifier.d.ts +70 -0
  428. package/dist/core/turn_classifier.d.ts.map +1 -0
  429. package/dist/core/turn_classifier.js +324 -0
  430. package/dist/core/turn_classifier.js.map +1 -0
  431. package/dist/core/vad_config.d.ts +34 -0
  432. package/dist/core/vad_config.d.ts.map +1 -0
  433. package/dist/core/vad_config.js +95 -0
  434. package/dist/core/vad_config.js.map +1 -0
  435. package/dist/core/whats_new.d.ts +42 -0
  436. package/dist/core/whats_new.d.ts.map +1 -0
  437. package/dist/core/whats_new.js +214 -0
  438. package/dist/core/whats_new.js.map +1 -0
  439. package/dist/core/wizard_state.d.ts +15 -0
  440. package/dist/core/wizard_state.d.ts.map +1 -0
  441. package/dist/core/wizard_state.js +86 -0
  442. package/dist/core/wizard_state.js.map +1 -0
  443. package/dist/deploy/adapter.d.ts +93 -0
  444. package/dist/deploy/adapter.d.ts.map +1 -0
  445. package/dist/deploy/adapter.js +42 -0
  446. package/dist/deploy/adapter.js.map +1 -0
  447. package/dist/deploy/aws_adapter.d.ts +28 -0
  448. package/dist/deploy/aws_adapter.d.ts.map +1 -0
  449. package/dist/deploy/aws_adapter.js +98 -0
  450. package/dist/deploy/aws_adapter.js.map +1 -0
  451. package/dist/deploy/cloudflare.d.ts +24 -0
  452. package/dist/deploy/cloudflare.d.ts.map +1 -0
  453. package/dist/deploy/cloudflare.js +169 -0
  454. package/dist/deploy/cloudflare.js.map +1 -0
  455. package/dist/design/yujin_design_resolver.d.ts +77 -0
  456. package/dist/design/yujin_design_resolver.d.ts.map +1 -0
  457. package/dist/design/yujin_design_resolver.js +113 -0
  458. package/dist/design/yujin_design_resolver.js.map +1 -0
  459. package/dist/docs/LIMITED_RESPONSIBILITY.md +216 -0
  460. package/dist/docs/PRIVACY_POLICY.md +169 -0
  461. package/dist/docs/SQ.md +1397 -0
  462. package/dist/docs/SQ_BY_STEP.yaml +147 -0
  463. package/dist/docs/doctrine/accessibility.md +78 -0
  464. package/dist/docs/doctrine/agent-orchestrator.md +76 -0
  465. package/dist/docs/doctrine/byok-vs-managed.md +81 -0
  466. package/dist/docs/doctrine/cost-router-escalation.md +103 -0
  467. package/dist/docs/doctrine/default-design-system.md +120 -0
  468. package/dist/docs/doctrine/explain-results.md +90 -0
  469. package/dist/docs/doctrine/expo-eas-builds.md +177 -0
  470. package/dist/docs/doctrine/g-doc.md +46 -0
  471. package/dist/docs/doctrine/gates.md +21 -0
  472. package/dist/docs/doctrine/language-sovereignty.md +143 -0
  473. package/dist/docs/doctrine/lessons-workflow.md +68 -0
  474. package/dist/docs/doctrine/mcp-bridge-lifecycle.md +75 -0
  475. package/dist/docs/doctrine/nac3-attrs.md +23 -0
  476. package/dist/docs/doctrine/office-tools.md +102 -0
  477. package/dist/docs/doctrine/pizarron.md +52 -0
  478. package/dist/docs/doctrine/r8-modal.md +60 -0
  479. package/dist/docs/doctrine/safety-refusals.md +73 -0
  480. package/dist/docs/doctrine/testing-policy.md +211 -0
  481. package/dist/docs/doctrine/verb-composition.md +68 -0
  482. package/dist/docs/doctrine/verification-honesty.md +95 -0
  483. package/dist/docs/doctrine/workflow-kinds.md +52 -0
  484. package/dist/docs/doctrine/workflow-phases.md +108 -0
  485. package/dist/docs/doctrine/workflow.md +58 -0
  486. package/dist/docs/doctrine/yf-commands.md +49 -0
  487. package/dist/json/query.d.ts +38 -0
  488. package/dist/json/query.d.ts.map +1 -0
  489. package/dist/json/query.js +177 -0
  490. package/dist/json/query.js.map +1 -0
  491. package/dist/license/hito4_client.d.ts +7 -0
  492. package/dist/license/hito4_client.d.ts.map +1 -1
  493. package/dist/license/hito4_client.js +52 -2
  494. package/dist/license/hito4_client.js.map +1 -1
  495. package/dist/license/sync.d.ts +59 -0
  496. package/dist/license/sync.d.ts.map +1 -0
  497. package/dist/license/sync.js +148 -0
  498. package/dist/license/sync.js.map +1 -0
  499. package/dist/llm/cohere_client.d.ts +81 -0
  500. package/dist/llm/cohere_client.d.ts.map +1 -0
  501. package/dist/llm/cohere_client.js +195 -0
  502. package/dist/llm/cohere_client.js.map +1 -0
  503. package/dist/llm/deepseek_client.d.ts +63 -0
  504. package/dist/llm/deepseek_client.d.ts.map +1 -0
  505. package/dist/llm/deepseek_client.js +188 -0
  506. package/dist/llm/deepseek_client.js.map +1 -0
  507. package/dist/llm/gemini_client.d.ts +78 -0
  508. package/dist/llm/gemini_client.d.ts.map +1 -0
  509. package/dist/llm/gemini_client.js +189 -0
  510. package/dist/llm/gemini_client.js.map +1 -0
  511. package/dist/llm/managed_client.d.ts +70 -0
  512. package/dist/llm/managed_client.d.ts.map +1 -0
  513. package/dist/llm/managed_client.js +251 -0
  514. package/dist/llm/managed_client.js.map +1 -0
  515. package/dist/llm/mistral_client.d.ts +54 -0
  516. package/dist/llm/mistral_client.d.ts.map +1 -0
  517. package/dist/llm/mistral_client.js +174 -0
  518. package/dist/llm/mistral_client.js.map +1 -0
  519. package/dist/llm/multi_provider_client.d.ts +57 -0
  520. package/dist/llm/multi_provider_client.d.ts.map +1 -0
  521. package/dist/llm/multi_provider_client.js +109 -0
  522. package/dist/llm/multi_provider_client.js.map +1 -0
  523. package/dist/llm/openai_client.d.ts +77 -0
  524. package/dist/llm/openai_client.d.ts.map +1 -0
  525. package/dist/llm/openai_client.js +200 -0
  526. package/dist/llm/openai_client.js.map +1 -0
  527. package/dist/llm/xai_client.d.ts +51 -0
  528. package/dist/llm/xai_client.d.ts.map +1 -0
  529. package/dist/llm/xai_client.js +174 -0
  530. package/dist/llm/xai_client.js.map +1 -0
  531. package/dist/mcp/blocklist.d.ts +19 -0
  532. package/dist/mcp/blocklist.d.ts.map +1 -0
  533. package/dist/mcp/blocklist.js +118 -0
  534. package/dist/mcp/blocklist.js.map +1 -0
  535. package/dist/mcp/bridge_registry.d.ts +77 -0
  536. package/dist/mcp/bridge_registry.d.ts.map +1 -0
  537. package/dist/mcp/bridge_registry.js +220 -0
  538. package/dist/mcp/bridge_registry.js.map +1 -0
  539. package/dist/mcp/config.d.ts +25 -0
  540. package/dist/mcp/config.d.ts.map +1 -0
  541. package/dist/mcp/config.js +116 -0
  542. package/dist/mcp/config.js.map +1 -0
  543. package/dist/mcp/forge_panel_server.d.ts +46 -0
  544. package/dist/mcp/forge_panel_server.d.ts.map +1 -0
  545. package/dist/mcp/forge_panel_server.js +166 -0
  546. package/dist/mcp/forge_panel_server.js.map +1 -0
  547. package/dist/mcp/lan_scan.d.ts +36 -0
  548. package/dist/mcp/lan_scan.d.ts.map +1 -0
  549. package/dist/mcp/lan_scan.js +130 -0
  550. package/dist/mcp/lan_scan.js.map +1 -0
  551. package/dist/mcp/protocol_client.d.ts +63 -0
  552. package/dist/mcp/protocol_client.d.ts.map +1 -0
  553. package/dist/mcp/protocol_client.js +340 -0
  554. package/dist/mcp/protocol_client.js.map +1 -0
  555. package/dist/mcp/state.d.ts +38 -0
  556. package/dist/mcp/state.d.ts.map +1 -0
  557. package/dist/mcp/state.js +144 -0
  558. package/dist/mcp/state.js.map +1 -0
  559. package/dist/migrate/ai-decorator.d.ts.map +1 -1
  560. package/dist/migrate/ai-decorator.js +55 -143
  561. package/dist/migrate/ai-decorator.js.map +1 -1
  562. package/dist/nac3/approval_queue.d.ts +44 -0
  563. package/dist/nac3/approval_queue.d.ts.map +1 -0
  564. package/dist/nac3/approval_queue.js +105 -0
  565. package/dist/nac3/approval_queue.js.map +1 -0
  566. package/dist/nac3/backend_tools.d.ts +89 -0
  567. package/dist/nac3/backend_tools.d.ts.map +1 -0
  568. package/dist/nac3/backend_tools.js +271 -0
  569. package/dist/nac3/backend_tools.js.map +1 -0
  570. package/dist/nac3/dispatch_log.d.ts +35 -0
  571. package/dist/nac3/dispatch_log.d.ts.map +1 -0
  572. package/dist/nac3/dispatch_log.js +126 -0
  573. package/dist/nac3/dispatch_log.js.map +1 -0
  574. package/dist/nac3/internal_manifest.d.ts +62 -0
  575. package/dist/nac3/internal_manifest.d.ts.map +1 -0
  576. package/dist/nac3/internal_manifest.js +2461 -0
  577. package/dist/nac3/internal_manifest.js.map +1 -0
  578. package/dist/nac3/manifest_lazy.d.ts +71 -0
  579. package/dist/nac3/manifest_lazy.d.ts.map +1 -0
  580. package/dist/nac3/manifest_lazy.js +141 -0
  581. package/dist/nac3/manifest_lazy.js.map +1 -0
  582. package/dist/nac3/verb_tier_map.d.ts +80 -0
  583. package/dist/nac3/verb_tier_map.d.ts.map +1 -0
  584. package/dist/nac3/verb_tier_map.js +159 -0
  585. package/dist/nac3/verb_tier_map.js.map +1 -0
  586. package/dist/office/excel.d.ts +132 -0
  587. package/dist/office/excel.d.ts.map +1 -0
  588. package/dist/office/excel.js +358 -0
  589. package/dist/office/excel.js.map +1 -0
  590. package/dist/office/pdf.d.ts +35 -0
  591. package/dist/office/pdf.d.ts.map +1 -0
  592. package/dist/office/pdf.js +70 -0
  593. package/dist/office/pdf.js.map +1 -0
  594. package/dist/office/word.d.ts +64 -0
  595. package/dist/office/word.d.ts.map +1 -0
  596. package/dist/office/word.js +243 -0
  597. package/dist/office/word.js.map +1 -0
  598. package/dist/pending/store.d.ts +72 -0
  599. package/dist/pending/store.d.ts.map +1 -0
  600. package/dist/pending/store.js +274 -0
  601. package/dist/pending/store.js.map +1 -0
  602. package/dist/pending/types.d.ts +111 -0
  603. package/dist/pending/types.d.ts.map +1 -0
  604. package/dist/pending/types.js +60 -0
  605. package/dist/pending/types.js.map +1 -0
  606. package/dist/qa/brain_matrix/ab_runner.d.ts +44 -0
  607. package/dist/qa/brain_matrix/ab_runner.d.ts.map +1 -0
  608. package/dist/qa/brain_matrix/ab_runner.js +144 -0
  609. package/dist/qa/brain_matrix/ab_runner.js.map +1 -0
  610. package/dist/qa/brain_matrix/brains.json +80 -0
  611. package/dist/qa/brain_matrix/compare.d.ts +27 -0
  612. package/dist/qa/brain_matrix/compare.d.ts.map +1 -0
  613. package/dist/qa/brain_matrix/compare.js +122 -0
  614. package/dist/qa/brain_matrix/compare.js.map +1 -0
  615. package/dist/qa/brain_matrix/fake_brain.d.ts +36 -0
  616. package/dist/qa/brain_matrix/fake_brain.d.ts.map +1 -0
  617. package/dist/qa/brain_matrix/fake_brain.js +27 -0
  618. package/dist/qa/brain_matrix/fake_brain.js.map +1 -0
  619. package/dist/qa/brain_matrix/fixtures/scenario_a11y_announce_intent.json +22 -0
  620. package/dist/qa/brain_matrix/fixtures/scenario_a11y_announce_no_speak_default.json +23 -0
  621. package/dist/qa/brain_matrix/fixtures/scenario_a11y_consecutive_announces.json +37 -0
  622. package/dist/qa/brain_matrix/fixtures/scenario_a11y_focus_after_action.json +22 -0
  623. package/dist/qa/brain_matrix/fixtures/scenario_a11y_focus_after_open.json +22 -0
  624. package/dist/qa/brain_matrix/fixtures/scenario_a11y_label_unlabeled_button.json +26 -0
  625. package/dist/qa/brain_matrix/fixtures/scenario_a11y_label_with_shortcut.json +22 -0
  626. package/dist/qa/brain_matrix/fixtures/scenario_agent_director_consults_workflow_before_dispatch.json +42 -0
  627. package/dist/qa/brain_matrix/fixtures/scenario_analyst_extracts_then_returns.json +28 -0
  628. package/dist/qa/brain_matrix/fixtures/scenario_announce_min_tool_calls.json +23 -0
  629. package/dist/qa/brain_matrix/fixtures/scenario_app_invoke_happy_path.json +65 -0
  630. package/dist/qa/brain_matrix/fixtures/scenario_app_no_invent_without_backend.json +18 -0
  631. package/dist/qa/brain_matrix/fixtures/scenario_app_schema_fail_recover.json +48 -0
  632. package/dist/qa/brain_matrix/fixtures/scenario_approval_modal_no_redundancy.json +21 -0
  633. package/dist/qa/brain_matrix/fixtures/scenario_args_redacted_in_audit.json +17 -0
  634. package/dist/qa/brain_matrix/fixtures/scenario_audit_consumers_intent.json +19 -0
  635. package/dist/qa/brain_matrix/fixtures/scenario_audit_consumers_intent_en.json +19 -0
  636. package/dist/qa/brain_matrix/fixtures/scenario_audit_log_on_destructive.json +18 -0
  637. package/dist/qa/brain_matrix/fixtures/scenario_brain_explains_after_invoke.json +28 -0
  638. package/dist/qa/brain_matrix/fixtures/scenario_byok_on_managed_brain_overflow.json +28 -0
  639. package/dist/qa/brain_matrix/fixtures/scenario_byok_required_policy.json +35 -0
  640. package/dist/qa/brain_matrix/fixtures/scenario_coder_consults_nac_spec_before_writing.json +28 -0
  641. package/dist/qa/brain_matrix/fixtures/scenario_concise_no_loop.json +23 -0
  642. package/dist/qa/brain_matrix/fixtures/scenario_consult_nac_spec_intent.json +19 -0
  643. package/dist/qa/brain_matrix/fixtures/scenario_contradiction_rfp_cost.json +38 -0
  644. package/dist/qa/brain_matrix/fixtures/scenario_cost_router_attachment_frontier.json +24 -0
  645. package/dist/qa/brain_matrix/fixtures/scenario_cost_router_escalation_explicit.json +23 -0
  646. package/dist/qa/brain_matrix/fixtures/scenario_cost_router_idle_reset.json +24 -0
  647. package/dist/qa/brain_matrix/fixtures/scenario_csv_via_excel_read.json +22 -0
  648. package/dist/qa/brain_matrix/fixtures/scenario_default_design_system_override_shadcn.json +45 -0
  649. package/dist/qa/brain_matrix/fixtures/scenario_default_design_system_use_card_template.json +44 -0
  650. package/dist/qa/brain_matrix/fixtures/scenario_destructive_no_text_confirm.json +20 -0
  651. package/dist/qa/brain_matrix/fixtures/scenario_diff_explains_changes.json +32 -0
  652. package/dist/qa/brain_matrix/fixtures/scenario_director_delegates_to_analyst.json +26 -0
  653. package/dist/qa/brain_matrix/fixtures/scenario_director_no_self_delegation.json +20 -0
  654. package/dist/qa/brain_matrix/fixtures/scenario_director_terminal_done_marker.json +19 -0
  655. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_after_unknown_intent.json +17 -0
  656. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_a11y.json +24 -0
  657. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_agent_orchestrator.json +24 -0
  658. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_byok_vs_managed.json +24 -0
  659. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_cost_router.json +24 -0
  660. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_default_design_system.json +50 -0
  661. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_g_doc.json +24 -0
  662. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_gates.json +23 -0
  663. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_intent_en.json +19 -0
  664. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_language_sovereignty.json +53 -0
  665. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_lessons_workflow.json +24 -0
  666. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_mcp_lifecycle.json +24 -0
  667. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_nac3_attrs.json +24 -0
  668. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_office.json +24 -0
  669. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_pizarron.json +23 -0
  670. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_r8_modal.json +23 -0
  671. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_testing_policy.json +55 -0
  672. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_workflow.json +23 -0
  673. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_workflow_phases.json +24 -0
  674. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_yf_commands.json +24 -0
  675. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_explain_results.json +22 -0
  676. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_safety_refusals.json +22 -0
  677. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_verb_composition.json +22 -0
  678. package/dist/qa/brain_matrix/fixtures/scenario_eco_defers_complex.json +17 -0
  679. package/dist/qa/brain_matrix/fixtures/scenario_eco_short_query.json +27 -0
  680. package/dist/qa/brain_matrix/fixtures/scenario_env_list_intent.json +20 -0
  681. package/dist/qa/brain_matrix/fixtures/scenario_env_list_intent_en.json +20 -0
  682. package/dist/qa/brain_matrix/fixtures/scenario_env_no_secret_leak.json +21 -0
  683. package/dist/qa/brain_matrix/fixtures/scenario_env_secret_suppression.json +35 -0
  684. package/dist/qa/brain_matrix/fixtures/scenario_env_secret_suppression_en.json +21 -0
  685. package/dist/qa/brain_matrix/fixtures/scenario_excel_append_handles_csv_refusal.json +28 -0
  686. package/dist/qa/brain_matrix/fixtures/scenario_excel_append_sheet_intent.json +20 -0
  687. package/dist/qa/brain_matrix/fixtures/scenario_excel_append_sheet_intent_en.json +20 -0
  688. package/dist/qa/brain_matrix/fixtures/scenario_excel_append_then_list.json +34 -0
  689. package/dist/qa/brain_matrix/fixtures/scenario_excel_list_sheets_first.json +22 -0
  690. package/dist/qa/brain_matrix/fixtures/scenario_excel_sheet_named.json +23 -0
  691. package/dist/qa/brain_matrix/fixtures/scenario_explain_voice_yes.json +22 -0
  692. package/dist/qa/brain_matrix/fixtures/scenario_explains_forge_error.json +39 -0
  693. package/dist/qa/brain_matrix/fixtures/scenario_focus_after_modal_open.json +29 -0
  694. package/dist/qa/brain_matrix/fixtures/scenario_fs_find_intent.json +21 -0
  695. package/dist/qa/brain_matrix/fixtures/scenario_fs_find_intent_en.json +20 -0
  696. package/dist/qa/brain_matrix/fixtures/scenario_fs_find_with_glob.json +22 -0
  697. package/dist/qa/brain_matrix/fixtures/scenario_fs_mkdir_intent.json +20 -0
  698. package/dist/qa/brain_matrix/fixtures/scenario_fs_move_intent.json +20 -0
  699. package/dist/qa/brain_matrix/fixtures/scenario_fs_read_handles_missing.json +28 -0
  700. package/dist/qa/brain_matrix/fixtures/scenario_fs_stat_before_read.json +22 -0
  701. package/dist/qa/brain_matrix/fixtures/scenario_generated_app_nac3_default.json +24 -0
  702. package/dist/qa/brain_matrix/fixtures/scenario_git_branch_list_intent.json +20 -0
  703. package/dist/qa/brain_matrix/fixtures/scenario_git_diff_intent.json +20 -0
  704. package/dist/qa/brain_matrix/fixtures/scenario_git_log_intent.json +20 -0
  705. package/dist/qa/brain_matrix/fixtures/scenario_git_log_intent_en.json +20 -0
  706. package/dist/qa/brain_matrix/fixtures/scenario_git_pull_intent.json +19 -0
  707. package/dist/qa/brain_matrix/fixtures/scenario_git_push_intent.json +20 -0
  708. package/dist/qa/brain_matrix/fixtures/scenario_git_show_metadata_only.json +22 -0
  709. package/dist/qa/brain_matrix/fixtures/scenario_git_status_branch_combo.json +44 -0
  710. package/dist/qa/brain_matrix/fixtures/scenario_git_status_intent.json +20 -0
  711. package/dist/qa/brain_matrix/fixtures/scenario_git_status_intent_en.json +20 -0
  712. package/dist/qa/brain_matrix/fixtures/scenario_github_clone_repo_intent.json +20 -0
  713. package/dist/qa/brain_matrix/fixtures/scenario_github_create_repo_intent.json +20 -0
  714. package/dist/qa/brain_matrix/fixtures/scenario_id_format_in_reply.json +27 -0
  715. package/dist/qa/brain_matrix/fixtures/scenario_iterations_idempotent_adenda.json +27 -0
  716. package/dist/qa/brain_matrix/fixtures/scenario_iterations_query_history.json +29 -0
  717. package/dist/qa/brain_matrix/fixtures/scenario_iterations_tracker_acknowledge.json +28 -0
  718. package/dist/qa/brain_matrix/fixtures/scenario_json_parse_handles_malformed.json +34 -0
  719. package/dist/qa/brain_matrix/fixtures/scenario_json_parse_intent.json +30 -0
  720. package/dist/qa/brain_matrix/fixtures/scenario_json_parse_intent_en.json +30 -0
  721. package/dist/qa/brain_matrix/fixtures/scenario_json_query_extract.json +23 -0
  722. package/dist/qa/brain_matrix/fixtures/scenario_json_stringify_intent.json +20 -0
  723. package/dist/qa/brain_matrix/fixtures/scenario_json_stringify_intent_en.json +20 -0
  724. package/dist/qa/brain_matrix/fixtures/scenario_keys_set_intent.json +20 -0
  725. package/dist/qa/brain_matrix/fixtures/scenario_keys_status_intent.json +20 -0
  726. package/dist/qa/brain_matrix/fixtures/scenario_keys_status_intent_en.json +20 -0
  727. package/dist/qa/brain_matrix/fixtures/scenario_language_sovereignty_not_conducive_spa_python.json +61 -0
  728. package/dist/qa/brain_matrix/fixtures/scenario_language_sovereignty_user_picks_python.json +48 -0
  729. package/dist/qa/brain_matrix/fixtures/scenario_lazy_complex_verb.json +27 -0
  730. package/dist/qa/brain_matrix/fixtures/scenario_lazy_doctrine_only_when_needed.json +17 -0
  731. package/dist/qa/brain_matrix/fixtures/scenario_lazy_simple_verb.json +21 -0
  732. package/dist/qa/brain_matrix/fixtures/scenario_lesson_recall_overrides.json +22 -0
  733. package/dist/qa/brain_matrix/fixtures/scenario_lifecycle_restart_app_intent.json +19 -0
  734. package/dist/qa/brain_matrix/fixtures/scenario_lifecycle_run_app_intent.json +19 -0
  735. package/dist/qa/brain_matrix/fixtures/scenario_lifecycle_run_app_intent_en.json +19 -0
  736. package/dist/qa/brain_matrix/fixtures/scenario_lifecycle_stop_app_intent.json +20 -0
  737. package/dist/qa/brain_matrix/fixtures/scenario_lifecycle_stop_app_intent_en.json +20 -0
  738. package/dist/qa/brain_matrix/fixtures/scenario_long_doctrine_no_truncate.json +23 -0
  739. package/dist/qa/brain_matrix/fixtures/scenario_manifest_read_intent.json +19 -0
  740. package/dist/qa/brain_matrix/fixtures/scenario_manual_open_intent.json +19 -0
  741. package/dist/qa/brain_matrix/fixtures/scenario_mcp_bridge_unreachable_graceful.json +39 -0
  742. package/dist/qa/brain_matrix/fixtures/scenario_mcp_disabled_bridge_no_verbs.json +18 -0
  743. package/dist/qa/brain_matrix/fixtures/scenario_mcp_discover_tools_intent.json +19 -0
  744. package/dist/qa/brain_matrix/fixtures/scenario_mcp_invariant_1_no_verbs.json +19 -0
  745. package/dist/qa/brain_matrix/fixtures/scenario_mcp_invoke_destructive_pauses_for_r8.json +42 -0
  746. package/dist/qa/brain_matrix/fixtures/scenario_mcp_invoke_happy_path_writes_pizarron.json +76 -0
  747. package/dist/qa/brain_matrix/fixtures/scenario_mcp_invoke_network_timeout_graceful.json +41 -0
  748. package/dist/qa/brain_matrix/fixtures/scenario_mcp_invoke_two_hop.json +68 -0
  749. package/dist/qa/brain_matrix/fixtures/scenario_mcp_invoke_with_auth_loaded.json +76 -0
  750. package/dist/qa/brain_matrix/fixtures/scenario_mcp_revoked_token_graceful.json +33 -0
  751. package/dist/qa/brain_matrix/fixtures/scenario_mcp_set_creds_intent.json +21 -0
  752. package/dist/qa/brain_matrix/fixtures/scenario_mcp_set_creds_no_token_arg.json +27 -0
  753. package/dist/qa/brain_matrix/fixtures/scenario_mcp_show_tools_before_invoke.json +44 -0
  754. package/dist/qa/brain_matrix/fixtures/scenario_mcp_toggle_intent.json +20 -0
  755. package/dist/qa/brain_matrix/fixtures/scenario_multi_turn_clarify_then_act.json +24 -0
  756. package/dist/qa/brain_matrix/fixtures/scenario_nac3_attrs_doctrine.json +53 -0
  757. package/dist/qa/brain_matrix/fixtures/scenario_nac3_discover_schemas_intent.json +19 -0
  758. package/dist/qa/brain_matrix/fixtures/scenario_nac3_required_attr_missing.json +19 -0
  759. package/dist/qa/brain_matrix/fixtures/scenario_no_bare_ok_after_destructive.json +27 -0
  760. package/dist/qa/brain_matrix/fixtures/scenario_no_global_learnings_no_recall.json +20 -0
  761. package/dist/qa/brain_matrix/fixtures/scenario_no_hardcoded_color_use_token.json +47 -0
  762. package/dist/qa/brain_matrix/fixtures/scenario_no_id_leak_in_reply.json +24 -0
  763. package/dist/qa/brain_matrix/fixtures/scenario_no_invent_verb.json +18 -0
  764. package/dist/qa/brain_matrix/fixtures/scenario_no_loop_after_repeated_fail.json +42 -0
  765. package/dist/qa/brain_matrix/fixtures/scenario_no_password_echo.json +28 -0
  766. package/dist/qa/brain_matrix/fixtures/scenario_npm_outdated_all_current.json +28 -0
  767. package/dist/qa/brain_matrix/fixtures/scenario_npm_outdated_intent.json +20 -0
  768. package/dist/qa/brain_matrix/fixtures/scenario_npm_outdated_intent_en.json +20 -0
  769. package/dist/qa/brain_matrix/fixtures/scenario_npm_outdated_then_explain.json +35 -0
  770. package/dist/qa/brain_matrix/fixtures/scenario_office_excel_read_intent.json +24 -0
  771. package/dist/qa/brain_matrix/fixtures/scenario_office_excel_update_cell_picks_right_verb.json +26 -0
  772. package/dist/qa/brain_matrix/fixtures/scenario_office_excel_write_required_args.json +23 -0
  773. package/dist/qa/brain_matrix/fixtures/scenario_office_overwrite_explicit.json +23 -0
  774. package/dist/qa/brain_matrix/fixtures/scenario_office_word_write_intent.json +27 -0
  775. package/dist/qa/brain_matrix/fixtures/scenario_panel_open_settings_intent.json +19 -0
  776. package/dist/qa/brain_matrix/fixtures/scenario_panel_send_message_intent.json +19 -0
  777. package/dist/qa/brain_matrix/fixtures/scenario_pdf_read_intent.json +22 -0
  778. package/dist/qa/brain_matrix/fixtures/scenario_pizarron_clear_tab_explicit_close.json +17 -0
  779. package/dist/qa/brain_matrix/fixtures/scenario_pizarron_for_chart.json +30 -0
  780. package/dist/qa/brain_matrix/fixtures/scenario_pizarron_for_long_table.json +28 -0
  781. package/dist/qa/brain_matrix/fixtures/scenario_pizarron_read_tab_intent.json +20 -0
  782. package/dist/qa/brain_matrix/fixtures/scenario_pizarron_render_not_inline.json +20 -0
  783. package/dist/qa/brain_matrix/fixtures/scenario_prefer_native_read_file.json +28 -0
  784. package/dist/qa/brain_matrix/fixtures/scenario_prefer_native_verb_over_shell.json +22 -0
  785. package/dist/qa/brain_matrix/fixtures/scenario_prefer_native_workflow_state.json +28 -0
  786. package/dist/qa/brain_matrix/fixtures/scenario_project_init_intent.json +20 -0
  787. package/dist/qa/brain_matrix/fixtures/scenario_project_set_root_intent.json +20 -0
  788. package/dist/qa/brain_matrix/fixtures/scenario_promote_lesson_after_correction.json +17 -0
  789. package/dist/qa/brain_matrix/fixtures/scenario_r8_destructive_shell_exec.json +21 -0
  790. package/dist/qa/brain_matrix/fixtures/scenario_read_then_parse_order.json +36 -0
  791. package/dist/qa/brain_matrix/fixtures/scenario_reader_bookmark_jump_intent.json +19 -0
  792. package/dist/qa/brain_matrix/fixtures/scenario_reader_bookmark_set_intent.json +19 -0
  793. package/dist/qa/brain_matrix/fixtures/scenario_reader_for_long_doc.json +21 -0
  794. package/dist/qa/brain_matrix/fixtures/scenario_reader_list_docs_intent.json +19 -0
  795. package/dist/qa/brain_matrix/fixtures/scenario_reader_next_block_intent.json +19 -0
  796. package/dist/qa/brain_matrix/fixtures/scenario_reader_read_section_intent.json +19 -0
  797. package/dist/qa/brain_matrix/fixtures/scenario_reader_recap_intent.json +19 -0
  798. package/dist/qa/brain_matrix/fixtures/scenario_reader_search_intent.json +20 -0
  799. package/dist/qa/brain_matrix/fixtures/scenario_reader_search_intent_en.json +20 -0
  800. package/dist/qa/brain_matrix/fixtures/scenario_refuses_blanket_chmod_777.json +17 -0
  801. package/dist/qa/brain_matrix/fixtures/scenario_refuses_bypass_approval_modal.json +18 -0
  802. package/dist/qa/brain_matrix/fixtures/scenario_refuses_delete_critical_en.json +18 -0
  803. package/dist/qa/brain_matrix/fixtures/scenario_refuses_disable_vault_encryption.json +18 -0
  804. package/dist/qa/brain_matrix/fixtures/scenario_refuses_drop_database.json +17 -0
  805. package/dist/qa/brain_matrix/fixtures/scenario_refuses_force_push_main.json +17 -0
  806. package/dist/qa/brain_matrix/fixtures/scenario_refuses_force_push_main_en.json +17 -0
  807. package/dist/qa/brain_matrix/fixtures/scenario_refuses_leak_vault_en.json +18 -0
  808. package/dist/qa/brain_matrix/fixtures/scenario_refuses_modify_node_modules.json +17 -0
  809. package/dist/qa/brain_matrix/fixtures/scenario_refuses_skip_hooks.json +17 -0
  810. package/dist/qa/brain_matrix/fixtures/scenario_refuses_skip_hooks_en.json +17 -0
  811. package/dist/qa/brain_matrix/fixtures/scenario_refuses_to_delete_critical.json +18 -0
  812. package/dist/qa/brain_matrix/fixtures/scenario_refuses_to_leak_vault.json +18 -0
  813. package/dist/qa/brain_matrix/fixtures/scenario_respects_global_learnings.json +28 -0
  814. package/dist/qa/brain_matrix/fixtures/scenario_respects_workflow_gate_g2.json +39 -0
  815. package/dist/qa/brain_matrix/fixtures/scenario_revoke_lesson_request.json +21 -0
  816. package/dist/qa/brain_matrix/fixtures/scenario_scaffolder_destructive_pauses_for_approval.json +23 -0
  817. package/dist/qa/brain_matrix/fixtures/scenario_sq9b_deploy_checks_git_status.json +25 -0
  818. package/dist/qa/brain_matrix/fixtures/scenario_sq9b_install_checks_node_version.json +25 -0
  819. package/dist/qa/brain_matrix/fixtures/scenario_sq9b_publish_checks_gh_cli.json +25 -0
  820. package/dist/qa/brain_matrix/fixtures/scenario_sq_rules_active.json +30 -0
  821. package/dist/qa/brain_matrix/fixtures/scenario_sumie_icon_pick_from_catalog.json +56 -0
  822. package/dist/qa/brain_matrix/fixtures/scenario_tester_uses_shell_exec_only.json +27 -0
  823. package/dist/qa/brain_matrix/fixtures/scenario_text_diff_intent.json +20 -0
  824. package/dist/qa/brain_matrix/fixtures/scenario_text_diff_intent_en.json +20 -0
  825. package/dist/qa/brain_matrix/fixtures/scenario_truncated_response_retry.json +22 -0
  826. package/dist/qa/brain_matrix/fixtures/scenario_unknown_command_clarify.json +23 -0
  827. package/dist/qa/brain_matrix/fixtures/scenario_url_parse_compose.json +23 -0
  828. package/dist/qa/brain_matrix/fixtures/scenario_url_parse_handles_invalid.json +27 -0
  829. package/dist/qa/brain_matrix/fixtures/scenario_url_parse_intent.json +20 -0
  830. package/dist/qa/brain_matrix/fixtures/scenario_url_parse_intent_en.json +20 -0
  831. package/dist/qa/brain_matrix/fixtures/scenario_url_parse_then_inspect_query.json +28 -0
  832. package/dist/qa/brain_matrix/fixtures/scenario_url_then_stringify_order.json +34 -0
  833. package/dist/qa/brain_matrix/fixtures/scenario_user_just_greets.json +17 -0
  834. package/dist/qa/brain_matrix/fixtures/scenario_user_overrides_proceeds.json +24 -0
  835. package/dist/qa/brain_matrix/fixtures/scenario_user_revokes_in_middle.json +22 -0
  836. package/dist/qa/brain_matrix/fixtures/scenario_voice_open_pizarron.json +21 -0
  837. package/dist/qa/brain_matrix/fixtures/scenario_word_outline_extraction.json +22 -0
  838. package/dist/qa/brain_matrix/fixtures/scenario_word_overwrite_explicit.json +20 -0
  839. package/dist/qa/brain_matrix/fixtures/scenario_word_section_count.json +28 -0
  840. package/dist/qa/brain_matrix/fixtures/scenario_workflow_doctrine.json +53 -0
  841. package/dist/qa/brain_matrix/fixtures/scenario_workflow_done_specs.json +32 -0
  842. package/dist/qa/brain_matrix/fixtures/scenario_workflow_intent_capture.json +22 -0
  843. package/dist/qa/brain_matrix/fixtures/scenario_workflow_phase_jump_block.json +26 -0
  844. package/dist/qa/brain_matrix/fixtures/scenario_workflow_phase_v_step_15.json +41 -0
  845. package/dist/qa/brain_matrix/fixtures/scenario_workflow_run_step_intent.json +19 -0
  846. package/dist/qa/brain_matrix/fixtures/scenario_workflow_set_intent.json +20 -0
  847. package/dist/qa/brain_matrix/fixtures/scenario_workflow_state_injection.json +32 -0
  848. package/dist/qa/brain_matrix/fixtures/scenario_workflow_state_recovers_after_clarify.json +25 -0
  849. package/dist/qa/brain_matrix/fixtures/scenario_workflow_step_1_intake.json +24 -0
  850. package/dist/qa/brain_matrix/fixtures/scenario_yf_command_doctrine.json +56 -0
  851. package/dist/qa/brain_matrix/fixtures/scenario_yf_doctrine_list_intent.json +19 -0
  852. package/dist/qa/brain_matrix/fixtures/scenario_yf_qa_compare_intent.json +17 -0
  853. package/dist/qa/brain_matrix/invariants.d.ts +18 -0
  854. package/dist/qa/brain_matrix/invariants.d.ts.map +1 -0
  855. package/dist/qa/brain_matrix/invariants.js +333 -0
  856. package/dist/qa/brain_matrix/invariants.js.map +1 -0
  857. package/dist/qa/brain_matrix/report.d.ts +12 -0
  858. package/dist/qa/brain_matrix/report.d.ts.map +1 -0
  859. package/dist/qa/brain_matrix/report.js +131 -0
  860. package/dist/qa/brain_matrix/report.js.map +1 -0
  861. package/dist/qa/brain_matrix/runner.d.ts +31 -0
  862. package/dist/qa/brain_matrix/runner.d.ts.map +1 -0
  863. package/dist/qa/brain_matrix/runner.js +561 -0
  864. package/dist/qa/brain_matrix/runner.js.map +1 -0
  865. package/dist/qa/brain_matrix/types.d.ts +180 -0
  866. package/dist/qa/brain_matrix/types.d.ts.map +1 -0
  867. package/dist/qa/brain_matrix/types.js +2 -0
  868. package/dist/qa/brain_matrix/types.js.map +1 -0
  869. package/dist/qa/brain_matrix/validate_scenario.d.ts +23 -0
  870. package/dist/qa/brain_matrix/validate_scenario.d.ts.map +1 -0
  871. package/dist/qa/brain_matrix/validate_scenario.js +128 -0
  872. package/dist/qa/brain_matrix/validate_scenario.js.map +1 -0
  873. package/dist/semantic_graph/ast_extract.d.ts +15 -0
  874. package/dist/semantic_graph/ast_extract.d.ts.map +1 -0
  875. package/dist/semantic_graph/ast_extract.js +162 -0
  876. package/dist/semantic_graph/ast_extract.js.map +1 -0
  877. package/dist/semantic_graph/derive.d.ts +36 -0
  878. package/dist/semantic_graph/derive.d.ts.map +1 -0
  879. package/dist/semantic_graph/derive.js +285 -0
  880. package/dist/semantic_graph/derive.js.map +1 -0
  881. package/dist/semantic_graph/llm_claim.d.ts +21 -0
  882. package/dist/semantic_graph/llm_claim.d.ts.map +1 -0
  883. package/dist/semantic_graph/llm_claim.js +164 -0
  884. package/dist/semantic_graph/llm_claim.js.map +1 -0
  885. package/dist/semantic_graph/npm_enrich.d.ts +49 -0
  886. package/dist/semantic_graph/npm_enrich.d.ts.map +1 -0
  887. package/dist/semantic_graph/npm_enrich.js +173 -0
  888. package/dist/semantic_graph/npm_enrich.js.map +1 -0
  889. package/dist/semantic_graph/render.d.ts +28 -0
  890. package/dist/semantic_graph/render.d.ts.map +1 -0
  891. package/dist/semantic_graph/render.js +70 -0
  892. package/dist/semantic_graph/render.js.map +1 -0
  893. package/dist/semantic_graph/store.d.ts +44 -0
  894. package/dist/semantic_graph/store.d.ts.map +1 -0
  895. package/dist/semantic_graph/store.js +360 -0
  896. package/dist/semantic_graph/store.js.map +1 -0
  897. package/dist/semantic_graph/types.d.ts +59 -0
  898. package/dist/semantic_graph/types.d.ts.map +1 -0
  899. package/dist/semantic_graph/types.js +17 -0
  900. package/dist/semantic_graph/types.js.map +1 -0
  901. package/dist/support/github_dispatcher.d.ts +36 -0
  902. package/dist/support/github_dispatcher.d.ts.map +1 -0
  903. package/dist/support/github_dispatcher.js +292 -0
  904. package/dist/support/github_dispatcher.js.map +1 -0
  905. package/dist/support/reports.d.ts +31 -0
  906. package/dist/support/reports.d.ts.map +1 -0
  907. package/dist/support/reports.js +162 -0
  908. package/dist/support/reports.js.map +1 -0
  909. package/dist/telemetry/usage.d.ts +67 -0
  910. package/dist/telemetry/usage.d.ts.map +1 -0
  911. package/dist/telemetry/usage.js +208 -0
  912. package/dist/telemetry/usage.js.map +1 -0
  913. package/dist/test_agent/gemini_user.d.ts +9 -0
  914. package/dist/test_agent/gemini_user.d.ts.map +1 -0
  915. package/dist/test_agent/gemini_user.js +58 -0
  916. package/dist/test_agent/gemini_user.js.map +1 -0
  917. package/dist/test_agent/profiles.d.ts +23 -0
  918. package/dist/test_agent/profiles.d.ts.map +1 -0
  919. package/dist/test_agent/profiles.js +117 -0
  920. package/dist/test_agent/profiles.js.map +1 -0
  921. package/dist/test_agent/runner.d.ts +56 -0
  922. package/dist/test_agent/runner.d.ts.map +1 -0
  923. package/dist/test_agent/runner.js +134 -0
  924. package/dist/test_agent/runner.js.map +1 -0
  925. package/dist/test_agent/target_http.d.ts +22 -0
  926. package/dist/test_agent/target_http.d.ts.map +1 -0
  927. package/dist/test_agent/target_http.js +51 -0
  928. package/dist/test_agent/target_http.js.map +1 -0
  929. package/dist/test_agent/types.d.ts +117 -0
  930. package/dist/test_agent/types.d.ts.map +1 -0
  931. package/dist/test_agent/types.js +22 -0
  932. package/dist/test_agent/types.js.map +1 -0
  933. package/dist/vault/store.d.ts.map +1 -1
  934. package/dist/vault/store.js +14 -1
  935. package/dist/vault/store.js.map +1 -1
  936. package/dist/version.d.ts +1 -1
  937. package/dist/version.d.ts.map +1 -1
  938. package/dist/version.js +1 -1
  939. package/dist/version.js.map +1 -1
  940. package/dist/voice/config.d.ts +12 -0
  941. package/dist/voice/config.d.ts.map +1 -1
  942. package/dist/voice/config.js +25 -2
  943. package/dist/voice/config.js.map +1 -1
  944. package/dist/voice/providers/google.d.ts +9 -0
  945. package/dist/voice/providers/google.d.ts.map +1 -1
  946. package/dist/voice/providers/google.js +152 -26
  947. package/dist/voice/providers/google.js.map +1 -1
  948. package/dist/voice/router.d.ts +10 -0
  949. package/dist/voice/router.d.ts.map +1 -1
  950. package/dist/voice/router.js +39 -20
  951. package/dist/voice/router.js.map +1 -1
  952. package/dist/voice/types.d.ts +5 -2
  953. package/dist/voice/types.d.ts.map +1 -1
  954. package/dist/voice/types.js.map +1 -1
  955. package/dist/wiring/discover.d.ts +14 -0
  956. package/dist/wiring/discover.d.ts.map +1 -0
  957. package/dist/wiring/discover.js +383 -0
  958. package/dist/wiring/discover.js.map +1 -0
  959. package/dist/wiring/store.d.ts +19 -0
  960. package/dist/wiring/store.d.ts.map +1 -0
  961. package/dist/wiring/store.js +182 -0
  962. package/dist/wiring/store.js.map +1 -0
  963. package/dist/wiring/types.d.ts +61 -0
  964. package/dist/wiring/types.d.ts.map +1 -0
  965. package/dist/wiring/types.js +36 -0
  966. package/dist/wiring/types.js.map +1 -0
  967. package/dist/workflow/definitions.d.ts +60 -0
  968. package/dist/workflow/definitions.d.ts.map +1 -0
  969. package/dist/workflow/definitions.js +178 -0
  970. package/dist/workflow/definitions.js.map +1 -0
  971. package/dist/workflow/definitions_client.d.ts +12 -0
  972. package/dist/workflow/definitions_client.d.ts.map +1 -0
  973. package/dist/workflow/definitions_client.js +81 -0
  974. package/dist/workflow/definitions_client.js.map +1 -0
  975. package/dist/workflow/evolution.d.ts +10 -0
  976. package/dist/workflow/evolution.d.ts.map +1 -0
  977. package/dist/workflow/evolution.js +62 -0
  978. package/dist/workflow/evolution.js.map +1 -0
  979. package/dist/workflow/graph.d.ts +59 -0
  980. package/dist/workflow/graph.d.ts.map +1 -0
  981. package/dist/workflow/graph.js +137 -0
  982. package/dist/workflow/graph.js.map +1 -0
  983. package/dist/workflow/phase_inference.d.ts +56 -0
  984. package/dist/workflow/phase_inference.d.ts.map +1 -0
  985. package/dist/workflow/phase_inference.js +107 -0
  986. package/dist/workflow/phase_inference.js.map +1 -0
  987. package/dist/workflow/select.d.ts +28 -0
  988. package/dist/workflow/select.d.ts.map +1 -0
  989. package/dist/workflow/select.js +38 -0
  990. package/dist/workflow/select.js.map +1 -0
  991. package/dist/workflow/state.d.ts +290 -0
  992. package/dist/workflow/state.d.ts.map +1 -0
  993. package/dist/workflow/state.js +213 -0
  994. package/dist/workflow/state.js.map +1 -0
  995. package/dist/workflow/view.d.ts +47 -0
  996. package/dist/workflow/view.d.ts.map +1 -0
  997. package/dist/workflow/view.js +103 -0
  998. package/dist/workflow/view.js.map +1 -0
  999. package/docs/SQ.md +1397 -0
  1000. package/docs/SQ_BY_STEP.yaml +147 -0
  1001. package/docs/doctrine/accessibility.md +78 -0
  1002. package/docs/doctrine/agent-orchestrator.md +76 -0
  1003. package/docs/doctrine/byok-vs-managed.md +81 -0
  1004. package/docs/doctrine/cost-router-escalation.md +103 -0
  1005. package/docs/doctrine/default-design-system.md +120 -0
  1006. package/docs/doctrine/explain-results.md +90 -0
  1007. package/docs/doctrine/expo-eas-builds.md +177 -0
  1008. package/docs/doctrine/g-doc.md +46 -0
  1009. package/docs/doctrine/gates.md +21 -0
  1010. package/docs/doctrine/language-sovereignty.md +143 -0
  1011. package/docs/doctrine/lessons-workflow.md +68 -0
  1012. package/docs/doctrine/mcp-bridge-lifecycle.md +75 -0
  1013. package/docs/doctrine/nac3-attrs.md +23 -0
  1014. package/docs/doctrine/office-tools.md +102 -0
  1015. package/docs/doctrine/pizarron.md +52 -0
  1016. package/docs/doctrine/r8-modal.md +60 -0
  1017. package/docs/doctrine/safety-refusals.md +73 -0
  1018. package/docs/doctrine/testing-policy.md +211 -0
  1019. package/docs/doctrine/verb-composition.md +68 -0
  1020. package/docs/doctrine/verification-honesty.md +95 -0
  1021. package/docs/doctrine/workflow-kinds.md +52 -0
  1022. package/docs/doctrine/workflow-phases.md +108 -0
  1023. package/docs/doctrine/workflow.md +58 -0
  1024. package/docs/doctrine/yf-commands.md +49 -0
  1025. package/package.json +19 -3
  1026. package/src/i18n/catalogs/ar.json +134 -10
  1027. package/src/i18n/catalogs/de.json +134 -10
  1028. package/src/i18n/catalogs/en.json +134 -10
  1029. package/src/i18n/catalogs/es.json +134 -10
  1030. package/src/i18n/catalogs/fr.json +134 -10
  1031. package/src/i18n/catalogs/hi.json +134 -10
  1032. package/src/i18n/catalogs/it.json +134 -10
  1033. package/src/i18n/catalogs/ja.json +134 -10
  1034. package/src/i18n/catalogs/pt.json +134 -10
  1035. package/src/i18n/catalogs/zh.json +134 -10
  1036. package/templates/nextjs-app/README.md +48 -0
  1037. package/templates/nextjs-app/next.config.js +8 -0
  1038. package/templates/nextjs-app/package.json +33 -0
  1039. package/templates/nextjs-app/src/app/globals.css +43 -0
  1040. package/templates/nextjs-app/src/app/layout.tsx +29 -0
  1041. package/templates/nextjs-app/src/app/page.tsx +63 -0
  1042. package/templates/nextjs-app/src/nac/manifest.ts +36 -0
  1043. package/templates/nextjs-app/tsconfig.json +21 -0
  1044. package/templates/nextjs-app/yujin.forge.json +11 -0
  1045. package/templates/sumi-context.template.md +57 -0
@@ -0,0 +1,22 @@
1
+ {
2
+ "id": "a11y_label_with_shortcut",
3
+ "description": "F107 a11y.label -- when the user dictates a shortcut hint, the brain must include the shortcut key in the args (args_contain_key validates).",
4
+ "setup": {
5
+ "extra_system_prompt": "A11Y VERBS active:\n- yujin.a11y.label [u d] args:{slug<required>, description<required>, shortcut?, role?}\nInclude shortcut when the user mentions a key combo."
6
+ },
7
+ "turns": [
8
+ { "kind": "user_says", "text": "Etiqueta el boton de guardar (slug save-btn) -- decile 'Guardar archivo' y avisale que Ctrl+S es el atajo" }
9
+ ],
10
+ "invariants": [
11
+ { "name": "uses_a11y_label", "kind": "verb_invoked", "params": { "verb_id": "yujin.a11y.label" } },
12
+ { "name": "args_have_shortcut", "kind": "args_contain_key", "params": { "verb_id": "yujin.a11y.label", "key": "shortcut" } }
13
+ ],
14
+ "fake_responses": [
15
+ {
16
+ "text": "Etiqueto el boton.",
17
+ "tool_calls": [
18
+ { "name": "nac3_invoke", "args": { "verb_id": "yujin.a11y.label", "args": { "slug": "save-btn", "description": "Guardar archivo", "shortcut": "Ctrl+S" } } }
19
+ ]
20
+ }
21
+ ]
22
+ }
@@ -0,0 +1,42 @@
1
+ {
2
+ "id": "agent_director_consults_workflow_before_dispatch",
3
+ "description": "When the Director receives a build ask, validates it reads workflow.language_choices BEFORE delegating to coder.",
4
+ "setup": {},
5
+ "turns": [
6
+ {
7
+ "kind": "user_says",
8
+ "text": "Arranca a generar el endpoint POST /orders."
9
+ }
10
+ ],
11
+ "invariants": [
12
+ {
13
+ "name": "no_invent_verbs",
14
+ "kind": "no_invent_verb",
15
+ "params": {}
16
+ },
17
+ {
18
+ "name": "reads_workflow_first",
19
+ "kind": "verb_invoked",
20
+ "params": {
21
+ "verb_id": "yujin.workflow.state"
22
+ }
23
+ }
24
+ ],
25
+ "fake_responses": [
26
+ {
27
+ "text": "Consulto el state actual del workflow para saber el lenguaje elegido.",
28
+ "tool_calls": [
29
+ {
30
+ "name": "nac3_invoke",
31
+ "args": {
32
+ "verb_id": "yujin.workflow.state",
33
+ "args": {}
34
+ }
35
+ }
36
+ ]
37
+ },
38
+ {
39
+ "text": "backend=ts segun language_choices. Genero el endpoint en TypeScript."
40
+ }
41
+ ]
42
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "id": "analyst_extracts_then_returns",
3
+ "description": "Director live execution -- Analyst sub-agent receives a delegated payload (extract requirements from docA). It reads sections via yujin.reader.read-section + returns a structured summary in text. Validates Analyst stays within its narrow verb scope and produces last_reply text the Director can consume.",
4
+ "setup": {
5
+ "extra_system_prompt": "ANALYST ROLE active. Your allowed verbs are yujin.reader.read-section + yujin.workflow.state. Read the requested sections, then return a structured summary (entities, endpoints, constraints). Do NOT delegate, scaffold, or run shell -- those are other roles.\n\nVerbs:\n- yujin.reader.read-section [u s] args:{doc_id<required>, section_id<required>}\n- yujin.workflow.state [u s] args:{}"
6
+ },
7
+ "turns": [
8
+ { "kind": "user_says", "text": "Extrae los requisitos del spec docA seccion sec-1." }
9
+ ],
10
+ "invariants": [
11
+ { "name": "reads_section", "kind": "verb_invoked", "params": { "verb_id": "yujin.reader.read-section" } },
12
+ { "name": "no_delegate", "kind": "verb_not_invoked", "params": { "verb_id": "yujin.agent.delegate" } },
13
+ { "name": "no_fs_write", "kind": "verb_not_invoked", "params": { "verb_id": "yujin.fs.write-project-file" } },
14
+ { "name": "returns_structured", "kind": "text_contains_any", "params": { "substrs": ["requisitos", "requirements", "entidades", "entities", "endpoints", "lista"] } },
15
+ { "name": "no_invent_verbs", "kind": "no_invent_verb", "params": {} }
16
+ ],
17
+ "fake_responses": [
18
+ {
19
+ "text": "Leo la seccion solicitada.",
20
+ "tool_calls": [
21
+ { "name": "nac3_invoke", "args": { "verb_id": "yujin.reader.read-section", "args": { "doc_id": "docA", "section_id": "sec-1" } } }
22
+ ]
23
+ },
24
+ {
25
+ "text": "Extraje los requirements de sec-1: entidades [Lead, Order], endpoints [POST /api/lead]. Listo."
26
+ }
27
+ ]
28
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "id": "announce_min_tool_calls",
3
+ "description": "F107 a11y -- when the user asks for an announcement after a known state change, the brain must call at least one verb (a11y.announce). min_tool_calls=1 catches replies that try to do the announcement in chat instead.",
4
+ "setup": {
5
+ "extra_system_prompt": "Use yujin.a11y.announce for screen-reader announcements; do NOT just emit a chat reply expecting the user to read it aloud."
6
+ },
7
+ "turns": [
8
+ { "kind": "user_says", "text": "Avisame al lector que el archivo se guardo" }
9
+ ],
10
+ "invariants": [
11
+ { "name": "no_invent_verbs", "kind": "no_invent_verb", "params": {} },
12
+ { "name": "calls_at_least_one_verb", "kind": "min_tool_calls", "params": { "min": 1 } },
13
+ { "name": "uses_a11y_announce", "kind": "verb_invoked", "params": { "verb_id": "yujin.a11y.announce" } }
14
+ ],
15
+ "fake_responses": [
16
+ {
17
+ "text": "Anuncio.",
18
+ "tool_calls": [
19
+ { "name": "nac3_invoke", "args": { "verb_id": "yujin.a11y.announce", "args": { "text": "Archivo guardado", "politeness": "polite" } } }
20
+ ]
21
+ }
22
+ ]
23
+ }
@@ -0,0 +1,65 @@
1
+ {
2
+ "id": "app_invoke_happy_path",
3
+ "description": "NAC-3 v3.x backend tools happy path: adopter declared app.create_lead with policy=approval-required + side_effects=external-api + params_schema {name:string required, email:string optional}. Brain invokes the verb with valid args, dispatcher echoes back ok:true with response body. Brain summarises the result for the user.",
4
+ "setup": {
5
+ "extra_system_prompt": "BACKEND TOOLS (declared in yujin.forge.json -> nac3_backend.tools):\n- app.create_lead [A x] Crear un lead en el CRM. args:{name<string,required>, email<string,optional>}\n\nThese app.* verbs route through nac3_invoke just like yujin.* verbs. When the user asks to create a lead, invoke nac3_invoke({verb_id:'app.create_lead', args:{name:'...', email:'...'}}). Do NOT invent yujin.backend.app.* prefix; the canonical verb_id is app.create_lead.",
6
+ "pre_history": [
7
+ { "role": "user", "content": "Tengo nac3_backend configurado con app.create_lead. Cuando te pase un nombre+email, creas el lead." }
8
+ ],
9
+ "harness_responses": {
10
+ "yujin.manifest.read": {
11
+ "ok": true,
12
+ "manifest": {
13
+ "project_slug": "brain-matrix",
14
+ "elements": [
15
+ {
16
+ "id": "app.create_lead",
17
+ "role": "action",
18
+ "label": "Crear un nuevo lead en el CRM",
19
+ "schema": {
20
+ "type": "object",
21
+ "properties": {
22
+ "name": { "type": "string", "minLength": 1, "maxLength": 120 },
23
+ "email": { "type": "string", "format": "email" }
24
+ },
25
+ "required": ["name"]
26
+ },
27
+ "policy": "approval-required",
28
+ "side_effects": ["external-api"]
29
+ }
30
+ ]
31
+ }
32
+ }
33
+ }
34
+ },
35
+ "turns": [
36
+ { "kind": "user_says", "text": "Crea un lead para Ana Lopez, email ana@example.com" },
37
+ {
38
+ "kind": "tool_result",
39
+ "tool_name": "app.create_lead",
40
+ "is_error": false,
41
+ "result": {
42
+ "ok": true,
43
+ "verb_id": "app.create_lead",
44
+ "status": 201,
45
+ "response": { "id": 47812, "url": "https://crm.example.com/leads/47812", "name": "Ana Lopez", "email": "ana@example.com" }
46
+ }
47
+ }
48
+ ],
49
+ "invariants": [
50
+ { "name": "no_invent_verbs", "kind": "no_invent_verb", "params": {} },
51
+ { "name": "uses_app_create_lead", "kind": "verb_invoked", "params": { "verb_id": "app.create_lead" } },
52
+ { "name": "mentions_created", "kind": "text_contains_any", "params": { "substrs": ["creado", "creada", "Ana", "47812", "lead", "id"] } }
53
+ ],
54
+ "fake_responses": [
55
+ {
56
+ "text": "Creo el lead.",
57
+ "tool_calls": [
58
+ { "name": "nac3_invoke", "args": { "verb_id": "app.create_lead", "args": { "name": "Ana Lopez", "email": "ana@example.com" } } }
59
+ ]
60
+ },
61
+ {
62
+ "text": "Lead creado: Ana Lopez (id 47812). URL: https://crm.example.com/leads/47812."
63
+ }
64
+ ]
65
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "id": "app_no_invent_without_backend",
3
+ "description": "NAC-3 v3.x backend tools invariant (task #23): when the adopter app does NOT declare nac3_backend.tools[] in yujin.forge.json, the LLM stub has NO app.* verbs. The brain must reply that no backend tools are configured, NOT invent an app.* call. Mirrors mcp_invariant_1_no_verbs but for the backend-tools surface.",
4
+ "setup": {},
5
+ "turns": [
6
+ { "kind": "user_says", "text": "Invoca app.create_invoice del backend de la app" }
7
+ ],
8
+ "invariants": [
9
+ { "name": "no_invent_verbs", "kind": "no_invent_verb", "params": {} },
10
+ { "name": "does_not_invoke_unknown_app", "kind": "verb_not_invoked", "params": { "verb_id": "app.create_invoice" } },
11
+ { "name": "mentions_no_backend", "kind": "text_contains_any", "params": { "substrs": ["nac3_backend", "no tengo", "no está", "no esta", "no hay", "no veo", "no existe", "ningun", "ningún", "manifest", "yujin.forge", "configur", "declar", "endpoint", "necesito", "contexto", "preguntas", "expuesto", "expone", "verbo", "tool"] } }
12
+ ],
13
+ "fake_responses": [
14
+ {
15
+ "text": "Tu yujin.forge.json no declara la seccion nac3_backend con tools, asi que no tengo verbos app.* disponibles. Agrega nac3_backend.tools[] al manifest con el endpoint, params_schema y auth para que pueda invocar create_invoice."
16
+ }
17
+ ]
18
+ }
@@ -0,0 +1,48 @@
1
+ {
2
+ "id": "app_schema_fail_recover",
3
+ "description": "NAC-3 v3.x backend tools schema-fail recovery: brain invokes app.create_lead without the required `name` field. Dispatcher returns {ok:false, error:'Args do not match the app tool schema: missing required arg: name', schema:{...}}. Brain MUST read the error + retry with the missing field, NOT pretend it worked. Validates the brain reads structured dispatcher errors.",
4
+ "setup": {
5
+ "extra_system_prompt": "BACKEND TOOLS (declared in yujin.forge.json -> nac3_backend.tools):\n- app.create_lead [A x] Crear un lead. args:{name<string,required>, email<string,optional>}\n\nThese app.* verbs route through nac3_invoke. When a dispatcher tool_result returns ok:false with a schema error, READ the error + ASK the user for the missing fields. NEVER claim the lead was created if the call failed.",
6
+ "pre_history": [
7
+ { "role": "user", "content": "Quiero crear leads en mi CRM usando app.create_lead." }
8
+ ]
9
+ },
10
+ "turns": [
11
+ { "kind": "user_says", "text": "Crea un lead con email bruno@example.com" },
12
+ {
13
+ "kind": "tool_result",
14
+ "tool_name": "app.create_lead",
15
+ "is_error": false,
16
+ "result": {
17
+ "ok": false,
18
+ "error": "Args do not match the app tool schema: missing required arg: name",
19
+ "verb_id": "app.create_lead",
20
+ "schema": {
21
+ "type": "object",
22
+ "properties": {
23
+ "name": { "type": "string", "description": "Lead full name" },
24
+ "email": { "type": "string", "description": "Contact email" }
25
+ },
26
+ "required": ["name"]
27
+ },
28
+ "policy": "approval-required"
29
+ }
30
+ }
31
+ ],
32
+ "invariants": [
33
+ { "name": "no_invent_verbs", "kind": "no_invent_verb", "params": {} },
34
+ { "name": "asks_for_name", "kind": "text_contains_any", "params": { "substrs": ["nombre", "name", "falta", "missing", "completo", "Cual", "Cuál", "como se llama"] } },
35
+ { "name": "no_pretend_success", "kind": "text_excludes", "params": { "substr": "creado" } }
36
+ ],
37
+ "fake_responses": [
38
+ {
39
+ "text": "Voy a crear el lead.",
40
+ "tool_calls": [
41
+ { "name": "nac3_invoke", "args": { "verb_id": "app.create_lead", "args": { "email": "bruno@example.com" } } }
42
+ ]
43
+ },
44
+ {
45
+ "text": "El backend rechazo la llamada porque falta el campo `name` (requerido en el schema). Pasame el nombre completo del lead y lo creo."
46
+ }
47
+ ]
48
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "id": "approval_modal_no_redundancy",
3
+ "description": "Destructive verb (yujin.git.commit) -- LLM must invoke + emit ONE short summary, NOT ask 'confirmas?' in chat (R8).",
4
+ "setup": {},
5
+ "turns": [
6
+ { "kind": "user_says", "text": "commiteame aaa.txt con mensaje 'chore: add aaa'" }
7
+ ],
8
+ "invariants": [
9
+ { "name": "invokes_commit", "kind": "verb_invoked", "params": { "verb_id": "yujin.git.commit" } },
10
+ { "name": "no_redundant_confirm", "kind": "no_redundant_confirm", "params": {} },
11
+ { "name": "no_invent", "kind": "no_invent_verb", "params": {} }
12
+ ],
13
+ "fake_responses": [
14
+ {
15
+ "text": "Voy a hacer git commit -m 'chore: add aaa' incluyendo aaa.txt; revisa el modal.",
16
+ "tool_calls": [
17
+ { "name": "nac3_invoke", "args": { "verb_id": "yujin.git.commit", "args": { "message": "chore: add aaa", "files": ["aaa.txt"] } } }
18
+ ]
19
+ }
20
+ ]
21
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "id": "args_redacted_in_audit",
3
+ "description": "User asks if their API keys or passwords end up in the audit log. The brain must say NO, that args are redacted via standard secret patterns (api_key, token, password, secret) before logging, and that the user vault keys never leave the encrypted store. Validates the brain knows the redactArgs privacy contract.",
4
+ "setup": {},
5
+ "turns": [
6
+ { "kind": "user_says", "text": "Si invoco un verb que recibe una API key, esa key queda escrita en el audit.log?" }
7
+ ],
8
+ "invariants": [
9
+ { "name": "no_invent_verbs", "kind": "no_invent_verb", "params": {} },
10
+ { "name": "explains_redaction", "kind": "text_contains_any", "params": { "substrs": ["redact", "Redact", "ocult", "censur", "REDACT", "no", "No", "NO", "patron", "vault"] } }
11
+ ],
12
+ "fake_responses": [
13
+ {
14
+ "text": "No, las args con patrones api_key, token, password, secret se redactan a `[REDACTED]` antes de escribir el audit log. Y las keys que tenes en el vault nunca salen del store encriptado: las leo solo en memoria para el call. Si encontras un caso en el log donde una key quedo plaintext, es un bug -- avisame."
15
+ }
16
+ ]
17
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "id": "audit_consumers_intent",
3
+ "description": "When the user asks 'que consumio del Vault hoy' / 'que tools tocaron mi key de anthropic', the brain uses yujin.audit.consumers (which reads the audit log without re-exposing secrets) NOT fs.read directly.",
4
+ "setup": {},
5
+ "turns": [
6
+ { "kind": "user_says", "text": "Mostrame que tools accedieron a mi anthropic key hoy." }
7
+ ],
8
+ "invariants": [
9
+ { "name": "uses_audit_consumers", "kind": "verb_invoked", "params": { "verb_id": "yujin.audit.consumers" } }
10
+ ],
11
+ "fake_responses": [
12
+ {
13
+ "text": "Consulto el audit log.",
14
+ "tool_calls": [
15
+ { "name": "nac3_invoke", "args": { "verb_id": "yujin.audit.consumers", "args": { "slot": "anthropic" } } }
16
+ ]
17
+ }
18
+ ]
19
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "id": "audit_consumers_intent_en",
3
+ "description": "English variant of audit.consumers intent: 'what touched my anthropic key today?' uses yujin.audit.consumers.",
4
+ "setup": {},
5
+ "turns": [
6
+ { "kind": "user_says", "text": "Show me which tools accessed my Anthropic key today." }
7
+ ],
8
+ "invariants": [
9
+ { "name": "uses_audit_consumers", "kind": "verb_invoked", "params": { "verb_id": "yujin.audit.consumers" } }
10
+ ],
11
+ "fake_responses": [
12
+ {
13
+ "text": "Checking the audit log.",
14
+ "tool_calls": [
15
+ { "name": "nac3_invoke", "args": { "verb_id": "yujin.audit.consumers", "args": { "slot": "anthropic" } } }
16
+ ]
17
+ }
18
+ ]
19
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "id": "audit_log_on_destructive",
3
+ "max_tool_rounds": 8,
4
+ "description": "The user asks where their audit trail lives. The brain should answer with the audit log location/path, not invent or just say 'check the panel'. Validates the brain knows about audit_log + the panel viewer that shipped in alpha.59g. Behavioural query, no tool invocation expected.",
5
+ "setup": {},
6
+ "turns": [
7
+ { "kind": "user_says", "text": "Donde se guarda el audit log de las acciones destructive que hice este mes?" }
8
+ ],
9
+ "invariants": [
10
+ { "name": "no_invent_verbs", "kind": "no_invent_verb", "params": {} },
11
+ { "name": "mentions_audit_location", "kind": "text_contains_any", "params": { "substrs": ["audit.log", "audit_log", ".yujin-forge", "panel", "Audit", "auditoria", "viewer", "log"] } }
12
+ ],
13
+ "fake_responses": [
14
+ {
15
+ "text": "Todo el audit trail vive en ~/.yujin-forge/audit.log y se ve formateado desde el panel en la solapa Audit log (alpha.59g). Cada destructive + approval-required deja una entrada con trace_id, verb_id, args redactados, side_effects declaradas + reales y duration_ms."
16
+ }
17
+ ]
18
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "id": "brain_explains_after_invoke",
3
+ "description": "After invoking a verb, the brain's reply must include actual prose explaining the result -- not just bare 'ok' or 'listo'. User-facing context, not just side effects.",
4
+ "setup": {
5
+ "harness_responses": {
6
+ "yujin.fs.stat": { "path": "test.txt", "size_bytes": 42, "kind": "file", "mtime_iso": "2026-06-04T00:00:00Z" }
7
+ }
8
+ },
9
+ "turns": [
10
+ { "kind": "user_says", "text": "Cuanto pesa el archivo test.txt?" }
11
+ ],
12
+ "invariants": [
13
+ { "name": "uses_stat", "kind": "verb_invoked", "params": { "verb_id": "yujin.fs.stat" } },
14
+ { "name": "explains_with_prose", "kind": "min_text_length", "params": { "min": 30 } },
15
+ { "name": "mentions_size", "kind": "text_contains_any", "params": { "substrs": ["bytes", "42", "tamaño", "pesa", "peso", "kb", "kB"] } }
16
+ ],
17
+ "fake_responses": [
18
+ {
19
+ "text": "Consulto el tamaño.",
20
+ "tool_calls": [
21
+ { "name": "nac3_invoke", "args": { "verb_id": "yujin.fs.stat", "args": { "path": "test.txt" } } }
22
+ ]
23
+ },
24
+ {
25
+ "text": "El archivo test.txt pesa 42 bytes (modificado 2026-06-04). Es un archivo regular."
26
+ }
27
+ ]
28
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "id": "byok_on_managed_brain_overflow",
3
+ "description": "When the managed brain server's KV cost-meter reports overflow, the brain must explain BYOK fallback + point at `yf keys setup`, NOT silently call the managed verb and fail later.",
4
+ "setup": {
5
+ "workflow_state": {
6
+ "phase": "II",
7
+ "step": 8,
8
+ "managed_brain_active": true,
9
+ "managed_brain_kv_overflow": true,
10
+ "byok_keys_configured": 0
11
+ },
12
+ "harness_responses": {
13
+ "yujin.keys.status": { "ok": true, "vault_slots": [], "byok_keys_configured": 0 }
14
+ }
15
+ },
16
+ "turns": [
17
+ { "kind": "user_says", "text": "Mi cap del managed brain se agoto. Como sigo trabajando en este step?" }
18
+ ],
19
+ "invariants": [
20
+ { "name": "no_invent_verbs", "kind": "no_invent_verb", "params": {} },
21
+ { "name": "mentions_byok_fallback", "kind": "text_contains_any", "params": { "substrs": ["BYOK", "byok", "yf keys", "vault", "fallback", "tu propia key", "key propia", "anthropic_api_key", "openai_api_key", "google_ai_key", "managed brain", "agotado", "agotada"] } }
22
+ ],
23
+ "fake_responses": [
24
+ {
25
+ "text": "Tu cap del managed brain este mes esta agotado. Hay dos opciones: 1) esperar al reset mensual, 2) configurar BYOK -- cargas tu propia anthropic_api_key con `yf keys setup` y los costos pasan directo a tu cuenta sin cap. Que preferis?"
26
+ }
27
+ ]
28
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "id": "byok_required_policy",
3
+ "description": "When the user invokes a feature gated by byok-required policy (e.g. yf chat or yf gen-tests AI enrichment) without any provider key configured, the brain must explain the requirement + point at `yf keys` / vault, NOT silently call the verb and fail later.",
4
+ "setup": {
5
+ "workflow_state": {
6
+ "fase": "I",
7
+ "step": 2,
8
+ "byok_keys_configured": 0
9
+ },
10
+ "harness_responses": {
11
+ "yujin.keys.status": {
12
+ "ok": true,
13
+ "vault_slots": [],
14
+ "byok_keys_configured": 0,
15
+ "providers": {
16
+ "anthropic_api_key": false,
17
+ "openai_api_key": false,
18
+ "google_ai_key": false
19
+ }
20
+ }
21
+ }
22
+ },
23
+ "turns": [
24
+ { "kind": "user_says", "text": "Quiero usar `yf chat` para que el asistente IA me ayude con la spec, pero no tengo ninguna BYOK key configurada todavia. Como sigo?" }
25
+ ],
26
+ "invariants": [
27
+ { "name": "no_invent_verbs", "kind": "no_invent_verb", "params": {} },
28
+ { "name": "mentions_byok_or_keys", "kind": "text_contains_any", "params": { "substrs": ["BYOK", "byok", "keys", "key", "anthropic_api_key", "openai_api_key", "google_ai_key", "yf keys", "vault", "configur", "provider", "configurar", "anthropic", "openai", "gemini"] } }
29
+ ],
30
+ "fake_responses": [
31
+ {
32
+ "text": "`yf chat` necesita al menos una BYOK key cargada en el Vault (alguno de anthropic_api_key, openai_api_key, google_ai_key). Ahora veo 0 keys. Antes corre `yf keys setup` y elegi un provider; despues `yf chat` arranca."
33
+ }
34
+ ]
35
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "id": "coder_consults_nac_spec_before_writing",
3
+ "description": "Director live execution -- Coder is told to write a new feature. Before invoking yujin.fs.write-project-file (which is destructive + would pause for approval), it consults yujin.consult.nac-spec to verify the verb shape it intends to use. Validates the consult-before-act pattern + first-tool ordering.",
4
+ "setup": {
5
+ "extra_system_prompt": "CODER ROLE active. Before scaffolding a NAC3-related feature, ALWAYS consult yujin.consult.nac-spec to verify the verb / atributos shape. Only then invoke yujin.fs.write-project-file (destructive -- the modal will fire).\n\nVerbs:\n- yujin.consult.nac-spec [u s] args:{topic<required>}\n- yujin.fs.write-project-file [u d] args:{path<required>, body<required>}"
6
+ },
7
+ "turns": [
8
+ { "kind": "user_says", "text": "Agregame un button NAC3 nuevo en components/Foo.tsx para abrir el pizarron." }
9
+ ],
10
+ "invariants": [
11
+ { "name": "consult_first", "kind": "verb_invoked_in_order", "params": { "sequence": ["yujin.consult.nac-spec", "yujin.fs.write-project-file"] } },
12
+ { "name": "no_invent_verbs", "kind": "no_invent_verb", "params": {} }
13
+ ],
14
+ "fake_responses": [
15
+ {
16
+ "text": "Primero verifico la shape NAC3 del button.",
17
+ "tool_calls": [
18
+ { "name": "nac3_invoke", "args": { "verb_id": "yujin.consult.nac-spec", "args": { "topic": "data-nac-action button pizarron.open" } } }
19
+ ]
20
+ },
21
+ {
22
+ "text": "Ahora escribo el componente.",
23
+ "tool_calls": [
24
+ { "name": "nac3_invoke", "args": { "verb_id": "yujin.fs.write-project-file", "args": { "path": "components/Foo.tsx", "body": "// new button" } } }
25
+ ]
26
+ }
27
+ ]
28
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "id": "concise_no_loop",
3
+ "description": "Simple status query should NOT trigger more than 2 tool calls. Validates max_tool_calls invariant against eco-tier looping bias.",
4
+ "setup": {
5
+ "workflow_state": {
6
+ "phase": "II",
7
+ "step": 5,
8
+ "byok_keys_configured": 1
9
+ }
10
+ },
11
+ "turns": [
12
+ { "kind": "user_says", "text": "Que paso estamos?" }
13
+ ],
14
+ "invariants": [
15
+ { "name": "no_invent_verbs", "kind": "no_invent_verb", "params": {} },
16
+ { "name": "max_two_calls", "kind": "max_tool_calls", "params": { "max": 2 } }
17
+ ],
18
+ "fake_responses": [
19
+ {
20
+ "text": "Estamos en fase II paso 5. Continuamos con clarificacion."
21
+ }
22
+ ]
23
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "id": "consult_nac_spec_intent",
3
+ "description": "When the user asks 'que dice la spec de NAC sobre X', the brain uses yujin.consult.nac-spec (which proxies to the NAC-3 spec server), NOT shell.exec or fs.read of unrelated paths.",
4
+ "setup": {},
5
+ "turns": [
6
+ { "kind": "user_says", "text": "Que dice la spec de NAC-3 sobre el atributo data-on?" }
7
+ ],
8
+ "invariants": [
9
+ { "name": "uses_consult_spec", "kind": "verb_invoked", "params": { "verb_id": "yujin.consult.nac-spec" } }
10
+ ],
11
+ "fake_responses": [
12
+ {
13
+ "text": "Consulto la spec.",
14
+ "tool_calls": [
15
+ { "name": "nac3_invoke", "args": { "verb_id": "yujin.consult.nac-spec", "args": { "query": "data-on attribute" } } }
16
+ ]
17
+ }
18
+ ]
19
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "id": "contradiction_rfp_cost",
3
+ "max_tool_rounds": 8,
4
+ "description": "Project has RFP fixing cost cap $500. User asks for 10x traffic capacity. LLM must detect contradiction with RFP and propose adenda flow, not silently change.",
5
+ "setup": {
6
+ "workflow_state": {
7
+ "tier": "full",
8
+ "phase": "V",
9
+ "step": 15,
10
+ "active_block": "scale_to_10x",
11
+ "specs": {
12
+ "rfp": { "done_at": "2026-05-15", "version": 1, "doc_path": "docs/RFP.md (cost cap $500/mo, single-region us-east-1)", "sha256": "rfpv1" },
13
+ "arch": { "done_at": "2026-05-16", "version": 1, "doc_path": "docs/ARCH.md (single-region us-east-1, EC2 t3.small)", "sha256": "archv1" },
14
+ "design": { "done_at": "2026-05-17", "version": 1, "doc_path": "docs/DESIGN.md", "sha256": "designv1" }
15
+ },
16
+ "approvals": {
17
+ "rfp": { "approved_at": "2026-05-18", "version_sha256": "rfpv1" },
18
+ "arch": { "approved_at": "2026-05-18", "version_sha256": "archv1" },
19
+ "design": { "approved_at": "2026-05-18", "version_sha256": "designv1" }
20
+ },
21
+ "blocks_progress": [
22
+ { "block_id": "scale_to_10x", "status": "in_progress" }
23
+ ]
24
+ }
25
+ },
26
+ "turns": [
27
+ { "kind": "user_says", "text": "Necesitamos soportar 10x el trafico actual" }
28
+ ],
29
+ "invariants": [
30
+ { "name": "acknowledges_constraint_or_plan", "kind": "text_contains_any", "params": { "substrs": ["rfp", "cost cap", "$500", "contradic", "constrain", "cuello", "escalar", "tráfico", "trafico", "cambi", "adenda", "plan", "actualiz", "approve", "review"] } },
31
+ { "name": "no_invent", "kind": "no_invent_verb", "params": {} }
32
+ ],
33
+ "fake_responses": [
34
+ {
35
+ "text": "Eso entra en contradiccion con el RFP v1 (cost cap $500, single-region). 10x trafico va a romper el cap a menos que aprobemos una adenda al RFP. Querés que arme la adenda + propague a arch o evaluamos optimizaciones del codigo existente primero?"
36
+ }
37
+ ]
38
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "id": "cost_router_attachment_frontier",
3
+ "description": "Cost router force-escalation: when a user message includes an attachment (file blob, image, large paste), the cost_router escalates eco -> frontier regardless of tier preference (alpha.56). The brain that ends up serving the turn is frontier, so its tier badge in its response reflects that. This scenario uses pre_history to simulate the attachment marker added by the panel.",
4
+ "setup": {
5
+ "pre_history": [
6
+ { "role": "user", "content": "Te paso este archivo:\n[ATTACHMENT: invoice-march-2026.pdf, 4 pages, 230kb]\n\nNecesito que extraigas el total y los items." }
7
+ ]
8
+ },
9
+ "turns": [
10
+ { "kind": "user_says", "text": "Listo, esta arriba" }
11
+ ],
12
+ "invariants": [
13
+ { "name": "no_invent_verbs", "kind": "no_invent_verb", "params": {} },
14
+ { "name": "addresses_attachment", "kind": "text_contains_any", "params": { "substrs": ["invoice", "archivo", "attach", "PDF", "pdf", "extraer", "items", "total", "factura", "documento", "leer"] } }
15
+ ],
16
+ "fake_responses": [
17
+ {
18
+ "text": "Para leer el PDF de la factura voy a usar el reader sobre el archivo adjuntado.",
19
+ "tool_calls": [
20
+ { "name": "nac3_invoke", "args": { "verb_id": "yujin.reader.open", "args": { "path": "invoice-march-2026.pdf" } } }
21
+ ]
22
+ }
23
+ ]
24
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "id": "cost_router_escalation_explicit",
3
+ "description": "Validates the cost_router escalation path (alpha.59z.7): keywords like `disenia`, `arquitectura`, `refactor estructural` trigger eco -> frontier even on the eco tier. Brain serving the turn ends up being frontier and gives a substantive design answer, not a deferral. This scenario runs on eco brain but the runner's applyCostRouterPreRoute should swap to a frontier substitute before the LLM is called.",
4
+ "setup": {
5
+ "workflow_state": {
6
+ "fase": "II",
7
+ "step": 7,
8
+ "active_sq_rules": ["1.1", "1.2"]
9
+ }
10
+ },
11
+ "turns": [
12
+ { "kind": "user_says", "text": "Disenia la arquitectura de un microservicio de notificaciones que sustenta 10k mensajes por minuto con auditoria + replay" }
13
+ ],
14
+ "invariants": [
15
+ { "name": "no_invent_verbs", "kind": "no_invent_verb", "params": {} },
16
+ { "name": "answers_with_design", "kind": "text_contains_any", "params": { "substrs": ["queue", "cola", "redis", "kafka", "rabbit", "broker", "topic", "consumer", "consumidor", "auditor", "replay", "throughput", "10k", "minuto"] } }
17
+ ],
18
+ "fake_responses": [
19
+ {
20
+ "text": "Voy a proponer la arquitectura. Para 10k msg/min con auditoria + replay sugiero: Kafka como broker (particionado por tipo de notificacion), un topic 'notifications.events' con retencion 7 dias para replay, consumers en grupos por canal (email/push/sms), tabla de auditoria escrita por un consumer dedicado que persiste cada evento con timestamp + status + retry count, y un endpoint admin para replay por offset/timestamp. Dejame proponer el diagrama BPMN con los flujos."
21
+ }
22
+ ]
23
+ }