@nac3/forge-cli 0.2.0-alpha.4 → 0.2.0-alpha.59z.118

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 (773) hide show
  1. package/README.md +16 -1
  2. package/dist/a11y/helpers.d.ts +88 -0
  3. package/dist/a11y/helpers.d.ts.map +1 -0
  4. package/dist/a11y/helpers.js +109 -0
  5. package/dist/a11y/helpers.js.map +1 -0
  6. package/dist/agents/config_resolver.d.ts +16 -0
  7. package/dist/agents/config_resolver.d.ts.map +1 -0
  8. package/dist/agents/config_resolver.js +133 -0
  9. package/dist/agents/config_resolver.js.map +1 -0
  10. package/dist/agents/config_schema.d.ts +42 -0
  11. package/dist/agents/config_schema.d.ts.map +1 -0
  12. package/dist/agents/config_schema.js +204 -0
  13. package/dist/agents/config_schema.js.map +1 -0
  14. package/dist/agents/defaults.d.ts +21 -0
  15. package/dist/agents/defaults.d.ts.map +1 -0
  16. package/dist/agents/defaults.js +56 -0
  17. package/dist/agents/defaults.js.map +1 -0
  18. package/dist/agents/runner.d.ts +94 -0
  19. package/dist/agents/runner.d.ts.map +1 -0
  20. package/dist/agents/runner.js +165 -0
  21. package/dist/agents/runner.js.map +1 -0
  22. package/dist/agents/store.d.ts +33 -0
  23. package/dist/agents/store.d.ts.map +1 -0
  24. package/dist/agents/store.js +210 -0
  25. package/dist/agents/store.js.map +1 -0
  26. package/dist/agents/types.d.ts +112 -0
  27. package/dist/agents/types.d.ts.map +1 -0
  28. package/dist/agents/types.js +39 -0
  29. package/dist/agents/types.js.map +1 -0
  30. package/dist/bin/yf.d.ts.map +1 -1
  31. package/dist/bin/yf.js +86 -2
  32. package/dist/bin/yf.js.map +1 -1
  33. package/dist/chat/claude.d.ts +53 -15
  34. package/dist/chat/claude.d.ts.map +1 -1
  35. package/dist/chat/claude.js +152 -27
  36. package/dist/chat/claude.js.map +1 -1
  37. package/dist/chat/graph_auto_ingest.d.ts +46 -0
  38. package/dist/chat/graph_auto_ingest.d.ts.map +1 -0
  39. package/dist/chat/graph_auto_ingest.js +162 -0
  40. package/dist/chat/graph_auto_ingest.js.map +1 -0
  41. package/dist/chat/graph_component_watcher.d.ts +30 -0
  42. package/dist/chat/graph_component_watcher.d.ts.map +1 -0
  43. package/dist/chat/graph_component_watcher.js +220 -0
  44. package/dist/chat/graph_component_watcher.js.map +1 -0
  45. package/dist/chat/panel.d.ts.map +1 -1
  46. package/dist/chat/panel.js +5815 -1455
  47. package/dist/chat/panel.js.map +1 -1
  48. package/dist/chat/project_slug.d.ts +6 -0
  49. package/dist/chat/project_slug.d.ts.map +1 -0
  50. package/dist/chat/project_slug.js +78 -0
  51. package/dist/chat/project_slug.js.map +1 -0
  52. package/dist/chat/semantic_graph_ingest.d.ts +31 -0
  53. package/dist/chat/semantic_graph_ingest.d.ts.map +1 -0
  54. package/dist/chat/semantic_graph_ingest.js +84 -0
  55. package/dist/chat/semantic_graph_ingest.js.map +1 -0
  56. package/dist/chat/semantic_graph_inject.d.ts +25 -0
  57. package/dist/chat/semantic_graph_inject.d.ts.map +1 -0
  58. package/dist/chat/semantic_graph_inject.js +64 -0
  59. package/dist/chat/semantic_graph_inject.js.map +1 -0
  60. package/dist/chat/server.d.ts +50 -0
  61. package/dist/chat/server.d.ts.map +1 -1
  62. package/dist/chat/server.js +1914 -63
  63. package/dist/chat/server.js.map +1 -1
  64. package/dist/chat/spec_extract.d.ts +1 -2
  65. package/dist/chat/spec_extract.d.ts.map +1 -1
  66. package/dist/chat/spec_extract.js +18 -59
  67. package/dist/chat/spec_extract.js.map +1 -1
  68. package/dist/chat/spec_plan.d.ts +1 -2
  69. package/dist/chat/spec_plan.d.ts.map +1 -1
  70. package/dist/chat/spec_plan.js +15 -60
  71. package/dist/chat/spec_plan.js.map +1 -1
  72. package/dist/chat/tools/app_backend_dispatch.d.ts +39 -0
  73. package/dist/chat/tools/app_backend_dispatch.d.ts.map +1 -0
  74. package/dist/chat/tools/app_backend_dispatch.js +239 -0
  75. package/dist/chat/tools/app_backend_dispatch.js.map +1 -0
  76. package/dist/chat/tools/audit_consumers.d.ts +66 -0
  77. package/dist/chat/tools/audit_consumers.d.ts.map +1 -0
  78. package/dist/chat/tools/audit_consumers.js +231 -0
  79. package/dist/chat/tools/audit_consumers.js.map +1 -0
  80. package/dist/chat/tools/fs_editor.d.ts +11 -0
  81. package/dist/chat/tools/fs_editor.d.ts.map +1 -0
  82. package/dist/chat/tools/fs_editor.js +162 -0
  83. package/dist/chat/tools/fs_editor.js.map +1 -0
  84. package/dist/chat/tools/git.d.ts +24 -0
  85. package/dist/chat/tools/git.d.ts.map +1 -1
  86. package/dist/chat/tools/git.js +82 -4
  87. package/dist/chat/tools/git.js.map +1 -1
  88. package/dist/chat/tools/github.js +3 -3
  89. package/dist/chat/tools/keys.d.ts +9 -0
  90. package/dist/chat/tools/keys.d.ts.map +1 -0
  91. package/dist/chat/tools/keys.js +152 -0
  92. package/dist/chat/tools/keys.js.map +1 -0
  93. package/dist/chat/tools/lifecycle.js +3 -3
  94. package/dist/chat/tools/manual.js +1 -1
  95. package/dist/chat/tools/misc_verbs.d.ts +36 -0
  96. package/dist/chat/tools/misc_verbs.d.ts.map +1 -0
  97. package/dist/chat/tools/misc_verbs.js +405 -0
  98. package/dist/chat/tools/misc_verbs.js.map +1 -0
  99. package/dist/chat/tools/nac3_invoke.d.ts +53 -0
  100. package/dist/chat/tools/nac3_invoke.d.ts.map +1 -0
  101. package/dist/chat/tools/nac3_invoke.js +886 -0
  102. package/dist/chat/tools/nac3_invoke.js.map +1 -0
  103. package/dist/chat/tools/pizarron.d.ts +40 -0
  104. package/dist/chat/tools/pizarron.d.ts.map +1 -0
  105. package/dist/chat/tools/pizarron.js +123 -0
  106. package/dist/chat/tools/pizarron.js.map +1 -0
  107. package/dist/chat/tools/project_lifecycle.d.ts +24 -0
  108. package/dist/chat/tools/project_lifecycle.d.ts.map +1 -0
  109. package/dist/chat/tools/project_lifecycle.js +184 -0
  110. package/dist/chat/tools/project_lifecycle.js.map +1 -0
  111. package/dist/chat/tools/reader.d.ts.map +1 -1
  112. package/dist/chat/tools/reader.js +152 -9
  113. package/dist/chat/tools/reader.js.map +1 -1
  114. package/dist/chat/tools/shell.d.ts +58 -0
  115. package/dist/chat/tools/shell.d.ts.map +1 -0
  116. package/dist/chat/tools/shell.js +253 -0
  117. package/dist/chat/tools/shell.js.map +1 -0
  118. package/dist/chat/tools/workflow.d.ts +45 -0
  119. package/dist/chat/tools/workflow.d.ts.map +1 -0
  120. package/dist/chat/tools/workflow.js +404 -0
  121. package/dist/chat/tools/workflow.js.map +1 -0
  122. package/dist/chat/tools.d.ts +27 -0
  123. package/dist/chat/tools.d.ts.map +1 -1
  124. package/dist/chat/tools.js +366 -17
  125. package/dist/chat/tools.js.map +1 -1
  126. package/dist/chat/workflow_inject.d.ts +52 -0
  127. package/dist/chat/workflow_inject.d.ts.map +1 -0
  128. package/dist/chat/workflow_inject.js +346 -0
  129. package/dist/chat/workflow_inject.js.map +1 -0
  130. package/dist/commands/agent.d.ts +22 -0
  131. package/dist/commands/agent.d.ts.map +1 -0
  132. package/dist/commands/agent.js +190 -0
  133. package/dist/commands/agent.js.map +1 -0
  134. package/dist/commands/approve.d.ts +32 -0
  135. package/dist/commands/approve.d.ts.map +1 -0
  136. package/dist/commands/approve.js +198 -0
  137. package/dist/commands/approve.js.map +1 -0
  138. package/dist/commands/block.d.ts +28 -0
  139. package/dist/commands/block.d.ts.map +1 -0
  140. package/dist/commands/block.js +189 -0
  141. package/dist/commands/block.js.map +1 -0
  142. package/dist/commands/bootstrap.d.ts +35 -0
  143. package/dist/commands/bootstrap.d.ts.map +1 -0
  144. package/dist/commands/bootstrap.js +205 -0
  145. package/dist/commands/bootstrap.js.map +1 -0
  146. package/dist/commands/brain.d.ts +17 -0
  147. package/dist/commands/brain.d.ts.map +1 -0
  148. package/dist/commands/brain.js +129 -0
  149. package/dist/commands/brain.js.map +1 -0
  150. package/dist/commands/chat.d.ts +3 -0
  151. package/dist/commands/chat.d.ts.map +1 -1
  152. package/dist/commands/chat.js +112 -1
  153. package/dist/commands/chat.js.map +1 -1
  154. package/dist/commands/clarify.d.ts +30 -0
  155. package/dist/commands/clarify.d.ts.map +1 -0
  156. package/dist/commands/clarify.js +671 -0
  157. package/dist/commands/clarify.js.map +1 -0
  158. package/dist/commands/discover.d.ts +30 -0
  159. package/dist/commands/discover.d.ts.map +1 -0
  160. package/dist/commands/discover.js +178 -0
  161. package/dist/commands/discover.js.map +1 -0
  162. package/dist/commands/doctor.js +26 -4
  163. package/dist/commands/doctor.js.map +1 -1
  164. package/dist/commands/doctrine.d.ts +24 -0
  165. package/dist/commands/doctrine.d.ts.map +1 -0
  166. package/dist/commands/doctrine.js +106 -0
  167. package/dist/commands/doctrine.js.map +1 -0
  168. package/dist/commands/doctrines.d.ts +21 -0
  169. package/dist/commands/doctrines.d.ts.map +1 -0
  170. package/dist/commands/doctrines.js +158 -0
  171. package/dist/commands/doctrines.js.map +1 -0
  172. package/dist/commands/graph.d.ts +21 -0
  173. package/dist/commands/graph.d.ts.map +1 -0
  174. package/dist/commands/graph.js +363 -0
  175. package/dist/commands/graph.js.map +1 -0
  176. package/dist/commands/keys_setup.d.ts.map +1 -1
  177. package/dist/commands/keys_setup.js +80 -0
  178. package/dist/commands/keys_setup.js.map +1 -1
  179. package/dist/commands/legacy-audit.d.ts +34 -0
  180. package/dist/commands/legacy-audit.d.ts.map +1 -0
  181. package/dist/commands/legacy-audit.js +270 -0
  182. package/dist/commands/legacy-audit.js.map +1 -0
  183. package/dist/commands/lessons.d.ts +28 -0
  184. package/dist/commands/lessons.d.ts.map +1 -0
  185. package/dist/commands/lessons.js +309 -0
  186. package/dist/commands/lessons.js.map +1 -0
  187. package/dist/commands/license.d.ts.map +1 -1
  188. package/dist/commands/license.js +56 -1
  189. package/dist/commands/license.js.map +1 -1
  190. package/dist/commands/limits.d.ts +15 -0
  191. package/dist/commands/limits.d.ts.map +1 -0
  192. package/dist/commands/limits.js +51 -0
  193. package/dist/commands/limits.js.map +1 -0
  194. package/dist/commands/manifest-cli.d.ts +12 -0
  195. package/dist/commands/manifest-cli.d.ts.map +1 -0
  196. package/dist/commands/manifest-cli.js +42 -0
  197. package/dist/commands/manifest-cli.js.map +1 -0
  198. package/dist/commands/mcp.d.ts +24 -0
  199. package/dist/commands/mcp.d.ts.map +1 -0
  200. package/dist/commands/mcp.js +163 -0
  201. package/dist/commands/mcp.js.map +1 -0
  202. package/dist/commands/nac3.d.ts +22 -0
  203. package/dist/commands/nac3.d.ts.map +1 -0
  204. package/dist/commands/nac3.js +125 -0
  205. package/dist/commands/nac3.js.map +1 -0
  206. package/dist/commands/operate.d.ts +22 -0
  207. package/dist/commands/operate.d.ts.map +1 -0
  208. package/dist/commands/operate.js +523 -0
  209. package/dist/commands/operate.js.map +1 -0
  210. package/dist/commands/qa.d.ts +24 -0
  211. package/dist/commands/qa.d.ts.map +1 -0
  212. package/dist/commands/qa.js +349 -0
  213. package/dist/commands/qa.js.map +1 -0
  214. package/dist/commands/spec.d.ts +38 -0
  215. package/dist/commands/spec.d.ts.map +1 -0
  216. package/dist/commands/spec.js +256 -0
  217. package/dist/commands/spec.js.map +1 -0
  218. package/dist/commands/support.d.ts +22 -0
  219. package/dist/commands/support.d.ts.map +1 -0
  220. package/dist/commands/support.js +165 -0
  221. package/dist/commands/support.js.map +1 -0
  222. package/dist/commands/triage.d.ts +34 -0
  223. package/dist/commands/triage.d.ts.map +1 -0
  224. package/dist/commands/triage.js +228 -0
  225. package/dist/commands/triage.js.map +1 -0
  226. package/dist/commands/vault-inventory.d.ts +30 -0
  227. package/dist/commands/vault-inventory.d.ts.map +1 -0
  228. package/dist/commands/vault-inventory.js +222 -0
  229. package/dist/commands/vault-inventory.js.map +1 -0
  230. package/dist/commands/vault.d.ts.map +1 -1
  231. package/dist/commands/vault.js +5 -0
  232. package/dist/commands/vault.js.map +1 -1
  233. package/dist/commands/voice.d.ts.map +1 -1
  234. package/dist/commands/voice.js +47 -4
  235. package/dist/commands/voice.js.map +1 -1
  236. package/dist/commands/workflow-coverage.d.ts +30 -0
  237. package/dist/commands/workflow-coverage.d.ts.map +1 -0
  238. package/dist/commands/workflow-coverage.js +138 -0
  239. package/dist/commands/workflow-coverage.js.map +1 -0
  240. package/dist/core/ansi_strip.d.ts +39 -0
  241. package/dist/core/ansi_strip.d.ts.map +1 -0
  242. package/dist/core/ansi_strip.js +71 -0
  243. package/dist/core/ansi_strip.js.map +1 -0
  244. package/dist/core/audit_log.d.ts +43 -0
  245. package/dist/core/audit_log.d.ts.map +1 -0
  246. package/dist/core/audit_log.js +80 -0
  247. package/dist/core/audit_log.js.map +1 -0
  248. package/dist/core/brain_config.d.ts +33 -0
  249. package/dist/core/brain_config.d.ts.map +1 -0
  250. package/dist/core/brain_config.js +132 -0
  251. package/dist/core/brain_config.js.map +1 -0
  252. package/dist/core/budget.d.ts +96 -0
  253. package/dist/core/budget.d.ts.map +1 -0
  254. package/dist/core/budget.js +300 -0
  255. package/dist/core/budget.js.map +1 -0
  256. package/dist/core/cost_meter.d.ts +35 -0
  257. package/dist/core/cost_meter.d.ts.map +1 -0
  258. package/dist/core/cost_meter.js +111 -0
  259. package/dist/core/cost_meter.js.map +1 -0
  260. package/dist/core/cost_router.d.ts +106 -0
  261. package/dist/core/cost_router.d.ts.map +1 -0
  262. package/dist/core/cost_router.js +465 -0
  263. package/dist/core/cost_router.js.map +1 -0
  264. package/dist/core/doctrine_resolver.d.ts +23 -0
  265. package/dist/core/doctrine_resolver.d.ts.map +1 -0
  266. package/dist/core/doctrine_resolver.js +108 -0
  267. package/dist/core/doctrine_resolver.js.map +1 -0
  268. package/dist/core/error_catalog.d.ts +80 -0
  269. package/dist/core/error_catalog.d.ts.map +1 -0
  270. package/dist/core/error_catalog.js +168 -0
  271. package/dist/core/error_catalog.js.map +1 -0
  272. package/dist/core/error_formatter.d.ts +30 -0
  273. package/dist/core/error_formatter.d.ts.map +1 -0
  274. package/dist/core/error_formatter.js +155 -0
  275. package/dist/core/error_formatter.js.map +1 -0
  276. package/dist/core/incomplete_detector.d.ts +51 -0
  277. package/dist/core/incomplete_detector.d.ts.map +1 -0
  278. package/dist/core/incomplete_detector.js +140 -0
  279. package/dist/core/incomplete_detector.js.map +1 -0
  280. package/dist/core/learnings_client.d.ts +104 -0
  281. package/dist/core/learnings_client.d.ts.map +1 -0
  282. package/dist/core/learnings_client.js +262 -0
  283. package/dist/core/learnings_client.js.map +1 -0
  284. package/dist/core/limits_config.d.ts +76 -0
  285. package/dist/core/limits_config.d.ts.map +1 -0
  286. package/dist/core/limits_config.js +297 -0
  287. package/dist/core/limits_config.js.map +1 -0
  288. package/dist/core/provider_keys.d.ts +35 -0
  289. package/dist/core/provider_keys.d.ts.map +1 -0
  290. package/dist/core/provider_keys.js +260 -0
  291. package/dist/core/provider_keys.js.map +1 -0
  292. package/dist/core/reasoning_gate.d.ts +72 -0
  293. package/dist/core/reasoning_gate.d.ts.map +1 -0
  294. package/dist/core/reasoning_gate.js +192 -0
  295. package/dist/core/reasoning_gate.js.map +1 -0
  296. package/dist/core/shell_classifier.d.ts +49 -0
  297. package/dist/core/shell_classifier.d.ts.map +1 -0
  298. package/dist/core/shell_classifier.js +159 -0
  299. package/dist/core/shell_classifier.js.map +1 -0
  300. package/dist/core/sq_resolver.d.ts +14 -0
  301. package/dist/core/sq_resolver.d.ts.map +1 -0
  302. package/dist/core/sq_resolver.js +230 -0
  303. package/dist/core/sq_resolver.js.map +1 -0
  304. package/dist/core/truncation_detector.d.ts +68 -0
  305. package/dist/core/truncation_detector.d.ts.map +1 -0
  306. package/dist/core/truncation_detector.js +115 -0
  307. package/dist/core/truncation_detector.js.map +1 -0
  308. package/dist/core/turn_classifier.d.ts +62 -0
  309. package/dist/core/turn_classifier.d.ts.map +1 -0
  310. package/dist/core/turn_classifier.js +213 -0
  311. package/dist/core/turn_classifier.js.map +1 -0
  312. package/dist/core/whats_new.d.ts +42 -0
  313. package/dist/core/whats_new.d.ts.map +1 -0
  314. package/dist/core/whats_new.js +214 -0
  315. package/dist/core/whats_new.js.map +1 -0
  316. package/dist/deploy/adapter.d.ts +93 -0
  317. package/dist/deploy/adapter.d.ts.map +1 -0
  318. package/dist/deploy/adapter.js +42 -0
  319. package/dist/deploy/adapter.js.map +1 -0
  320. package/dist/deploy/aws_adapter.d.ts +28 -0
  321. package/dist/deploy/aws_adapter.d.ts.map +1 -0
  322. package/dist/deploy/aws_adapter.js +98 -0
  323. package/dist/deploy/aws_adapter.js.map +1 -0
  324. package/dist/deploy/cloudflare.d.ts +24 -0
  325. package/dist/deploy/cloudflare.d.ts.map +1 -0
  326. package/dist/deploy/cloudflare.js +169 -0
  327. package/dist/deploy/cloudflare.js.map +1 -0
  328. package/dist/docs/LIMITED_RESPONSIBILITY.md +216 -0
  329. package/dist/docs/PRIVACY_POLICY.md +169 -0
  330. package/dist/docs/SQ.md +1397 -0
  331. package/dist/docs/SQ_BY_STEP.yaml +147 -0
  332. package/dist/docs/doctrine/accessibility.md +78 -0
  333. package/dist/docs/doctrine/agent-orchestrator.md +76 -0
  334. package/dist/docs/doctrine/byok-vs-managed.md +81 -0
  335. package/dist/docs/doctrine/cost-router-escalation.md +73 -0
  336. package/dist/docs/doctrine/explain-results.md +90 -0
  337. package/dist/docs/doctrine/g-doc.md +46 -0
  338. package/dist/docs/doctrine/gates.md +21 -0
  339. package/dist/docs/doctrine/lessons-workflow.md +68 -0
  340. package/dist/docs/doctrine/mcp-bridge-lifecycle.md +75 -0
  341. package/dist/docs/doctrine/nac3-attrs.md +23 -0
  342. package/dist/docs/doctrine/office-tools.md +102 -0
  343. package/dist/docs/doctrine/pizarron.md +52 -0
  344. package/dist/docs/doctrine/r8-modal.md +60 -0
  345. package/dist/docs/doctrine/safety-refusals.md +73 -0
  346. package/dist/docs/doctrine/verb-composition.md +68 -0
  347. package/dist/docs/doctrine/workflow-phases.md +108 -0
  348. package/dist/docs/doctrine/workflow.md +58 -0
  349. package/dist/docs/doctrine/yf-commands.md +49 -0
  350. package/dist/json/query.d.ts +38 -0
  351. package/dist/json/query.d.ts.map +1 -0
  352. package/dist/json/query.js +177 -0
  353. package/dist/json/query.js.map +1 -0
  354. package/dist/license/hito4_client.d.ts +19 -0
  355. package/dist/license/hito4_client.d.ts.map +1 -1
  356. package/dist/license/hito4_client.js +110 -0
  357. package/dist/license/hito4_client.js.map +1 -1
  358. package/dist/license/index.d.ts.map +1 -1
  359. package/dist/license/index.js +7 -0
  360. package/dist/license/index.js.map +1 -1
  361. package/dist/license/sync.d.ts +54 -0
  362. package/dist/license/sync.d.ts.map +1 -0
  363. package/dist/license/sync.js +138 -0
  364. package/dist/license/sync.js.map +1 -0
  365. package/dist/llm/cohere_client.d.ts +81 -0
  366. package/dist/llm/cohere_client.d.ts.map +1 -0
  367. package/dist/llm/cohere_client.js +195 -0
  368. package/dist/llm/cohere_client.js.map +1 -0
  369. package/dist/llm/deepseek_client.d.ts +63 -0
  370. package/dist/llm/deepseek_client.d.ts.map +1 -0
  371. package/dist/llm/deepseek_client.js +188 -0
  372. package/dist/llm/deepseek_client.js.map +1 -0
  373. package/dist/llm/gemini_client.d.ts +78 -0
  374. package/dist/llm/gemini_client.d.ts.map +1 -0
  375. package/dist/llm/gemini_client.js +189 -0
  376. package/dist/llm/gemini_client.js.map +1 -0
  377. package/dist/llm/managed_client.d.ts +70 -0
  378. package/dist/llm/managed_client.d.ts.map +1 -0
  379. package/dist/llm/managed_client.js +251 -0
  380. package/dist/llm/managed_client.js.map +1 -0
  381. package/dist/llm/mistral_client.d.ts +54 -0
  382. package/dist/llm/mistral_client.d.ts.map +1 -0
  383. package/dist/llm/mistral_client.js +174 -0
  384. package/dist/llm/mistral_client.js.map +1 -0
  385. package/dist/llm/multi_provider_client.d.ts +57 -0
  386. package/dist/llm/multi_provider_client.d.ts.map +1 -0
  387. package/dist/llm/multi_provider_client.js +109 -0
  388. package/dist/llm/multi_provider_client.js.map +1 -0
  389. package/dist/llm/openai_client.d.ts +77 -0
  390. package/dist/llm/openai_client.d.ts.map +1 -0
  391. package/dist/llm/openai_client.js +200 -0
  392. package/dist/llm/openai_client.js.map +1 -0
  393. package/dist/llm/xai_client.d.ts +51 -0
  394. package/dist/llm/xai_client.d.ts.map +1 -0
  395. package/dist/llm/xai_client.js +174 -0
  396. package/dist/llm/xai_client.js.map +1 -0
  397. package/dist/mcp/bridge_registry.d.ts +77 -0
  398. package/dist/mcp/bridge_registry.d.ts.map +1 -0
  399. package/dist/mcp/bridge_registry.js +220 -0
  400. package/dist/mcp/bridge_registry.js.map +1 -0
  401. package/dist/mcp/config.d.ts +25 -0
  402. package/dist/mcp/config.d.ts.map +1 -0
  403. package/dist/mcp/config.js +116 -0
  404. package/dist/mcp/config.js.map +1 -0
  405. package/dist/mcp/protocol_client.d.ts +63 -0
  406. package/dist/mcp/protocol_client.d.ts.map +1 -0
  407. package/dist/mcp/protocol_client.js +340 -0
  408. package/dist/mcp/protocol_client.js.map +1 -0
  409. package/dist/mcp/state.d.ts +38 -0
  410. package/dist/mcp/state.d.ts.map +1 -0
  411. package/dist/mcp/state.js +144 -0
  412. package/dist/mcp/state.js.map +1 -0
  413. package/dist/migrate/ai-decorator.d.ts.map +1 -1
  414. package/dist/migrate/ai-decorator.js +33 -145
  415. package/dist/migrate/ai-decorator.js.map +1 -1
  416. package/dist/nac3/approval_queue.d.ts +36 -0
  417. package/dist/nac3/approval_queue.d.ts.map +1 -0
  418. package/dist/nac3/approval_queue.js +105 -0
  419. package/dist/nac3/approval_queue.js.map +1 -0
  420. package/dist/nac3/backend_tools.d.ts +89 -0
  421. package/dist/nac3/backend_tools.d.ts.map +1 -0
  422. package/dist/nac3/backend_tools.js +271 -0
  423. package/dist/nac3/backend_tools.js.map +1 -0
  424. package/dist/nac3/dispatch_log.d.ts +35 -0
  425. package/dist/nac3/dispatch_log.d.ts.map +1 -0
  426. package/dist/nac3/dispatch_log.js +126 -0
  427. package/dist/nac3/dispatch_log.js.map +1 -0
  428. package/dist/nac3/internal_manifest.d.ts +62 -0
  429. package/dist/nac3/internal_manifest.d.ts.map +1 -0
  430. package/dist/nac3/internal_manifest.js +1846 -0
  431. package/dist/nac3/internal_manifest.js.map +1 -0
  432. package/dist/nac3/manifest_lazy.d.ts +71 -0
  433. package/dist/nac3/manifest_lazy.d.ts.map +1 -0
  434. package/dist/nac3/manifest_lazy.js +141 -0
  435. package/dist/nac3/manifest_lazy.js.map +1 -0
  436. package/dist/nac3/verb_tier_map.d.ts +80 -0
  437. package/dist/nac3/verb_tier_map.d.ts.map +1 -0
  438. package/dist/nac3/verb_tier_map.js +159 -0
  439. package/dist/nac3/verb_tier_map.js.map +1 -0
  440. package/dist/office/excel.d.ts +110 -0
  441. package/dist/office/excel.d.ts.map +1 -0
  442. package/dist/office/excel.js +276 -0
  443. package/dist/office/excel.js.map +1 -0
  444. package/dist/office/pdf.d.ts +35 -0
  445. package/dist/office/pdf.d.ts.map +1 -0
  446. package/dist/office/pdf.js +70 -0
  447. package/dist/office/pdf.js.map +1 -0
  448. package/dist/office/word.d.ts +64 -0
  449. package/dist/office/word.d.ts.map +1 -0
  450. package/dist/office/word.js +243 -0
  451. package/dist/office/word.js.map +1 -0
  452. package/dist/qa/brain_matrix/ab_runner.d.ts +44 -0
  453. package/dist/qa/brain_matrix/ab_runner.d.ts.map +1 -0
  454. package/dist/qa/brain_matrix/ab_runner.js +144 -0
  455. package/dist/qa/brain_matrix/ab_runner.js.map +1 -0
  456. package/dist/qa/brain_matrix/brains.json +80 -0
  457. package/dist/qa/brain_matrix/compare.d.ts +27 -0
  458. package/dist/qa/brain_matrix/compare.d.ts.map +1 -0
  459. package/dist/qa/brain_matrix/compare.js +122 -0
  460. package/dist/qa/brain_matrix/compare.js.map +1 -0
  461. package/dist/qa/brain_matrix/fake_brain.d.ts +36 -0
  462. package/dist/qa/brain_matrix/fake_brain.d.ts.map +1 -0
  463. package/dist/qa/brain_matrix/fake_brain.js +27 -0
  464. package/dist/qa/brain_matrix/fake_brain.js.map +1 -0
  465. package/dist/qa/brain_matrix/fixtures/scenario_a11y_announce_intent.json +22 -0
  466. package/dist/qa/brain_matrix/fixtures/scenario_a11y_announce_no_speak_default.json +23 -0
  467. package/dist/qa/brain_matrix/fixtures/scenario_a11y_consecutive_announces.json +37 -0
  468. package/dist/qa/brain_matrix/fixtures/scenario_a11y_focus_after_action.json +22 -0
  469. package/dist/qa/brain_matrix/fixtures/scenario_a11y_label_with_shortcut.json +22 -0
  470. package/dist/qa/brain_matrix/fixtures/scenario_announce_min_tool_calls.json +23 -0
  471. package/dist/qa/brain_matrix/fixtures/scenario_app_invoke_happy_path.json +65 -0
  472. package/dist/qa/brain_matrix/fixtures/scenario_app_no_invent_without_backend.json +18 -0
  473. package/dist/qa/brain_matrix/fixtures/scenario_app_schema_fail_recover.json +48 -0
  474. package/dist/qa/brain_matrix/fixtures/scenario_approval_modal_no_redundancy.json +21 -0
  475. package/dist/qa/brain_matrix/fixtures/scenario_args_redacted_in_audit.json +17 -0
  476. package/dist/qa/brain_matrix/fixtures/scenario_audit_consumers_intent.json +19 -0
  477. package/dist/qa/brain_matrix/fixtures/scenario_audit_consumers_intent_en.json +19 -0
  478. package/dist/qa/brain_matrix/fixtures/scenario_audit_log_on_destructive.json +18 -0
  479. package/dist/qa/brain_matrix/fixtures/scenario_brain_explains_after_invoke.json +28 -0
  480. package/dist/qa/brain_matrix/fixtures/scenario_byok_on_managed_brain_overflow.json +28 -0
  481. package/dist/qa/brain_matrix/fixtures/scenario_byok_required_policy.json +35 -0
  482. package/dist/qa/brain_matrix/fixtures/scenario_concise_no_loop.json +23 -0
  483. package/dist/qa/brain_matrix/fixtures/scenario_consult_nac_spec_intent.json +19 -0
  484. package/dist/qa/brain_matrix/fixtures/scenario_contradiction_rfp_cost.json +38 -0
  485. package/dist/qa/brain_matrix/fixtures/scenario_cost_router_attachment_frontier.json +24 -0
  486. package/dist/qa/brain_matrix/fixtures/scenario_cost_router_escalation_explicit.json +23 -0
  487. package/dist/qa/brain_matrix/fixtures/scenario_cost_router_idle_reset.json +24 -0
  488. package/dist/qa/brain_matrix/fixtures/scenario_csv_via_excel_read.json +22 -0
  489. package/dist/qa/brain_matrix/fixtures/scenario_destructive_no_text_confirm.json +20 -0
  490. package/dist/qa/brain_matrix/fixtures/scenario_diff_explains_changes.json +32 -0
  491. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_after_unknown_intent.json +17 -0
  492. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_a11y.json +24 -0
  493. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_agent_orchestrator.json +24 -0
  494. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_byok_vs_managed.json +24 -0
  495. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_cost_router.json +24 -0
  496. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_g_doc.json +24 -0
  497. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_gates.json +23 -0
  498. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_intent_en.json +19 -0
  499. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_lessons_workflow.json +24 -0
  500. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_mcp_lifecycle.json +24 -0
  501. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_nac3_attrs.json +24 -0
  502. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_office.json +24 -0
  503. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_pizarron.json +23 -0
  504. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_r8_modal.json +23 -0
  505. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_workflow.json +23 -0
  506. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_workflow_phases.json +24 -0
  507. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_yf_commands.json +24 -0
  508. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_explain_results.json +22 -0
  509. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_safety_refusals.json +22 -0
  510. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_verb_composition.json +22 -0
  511. package/dist/qa/brain_matrix/fixtures/scenario_eco_defers_complex.json +17 -0
  512. package/dist/qa/brain_matrix/fixtures/scenario_eco_short_query.json +27 -0
  513. package/dist/qa/brain_matrix/fixtures/scenario_env_list_intent.json +20 -0
  514. package/dist/qa/brain_matrix/fixtures/scenario_env_list_intent_en.json +20 -0
  515. package/dist/qa/brain_matrix/fixtures/scenario_env_no_secret_leak.json +21 -0
  516. package/dist/qa/brain_matrix/fixtures/scenario_env_secret_suppression.json +35 -0
  517. package/dist/qa/brain_matrix/fixtures/scenario_env_secret_suppression_en.json +21 -0
  518. package/dist/qa/brain_matrix/fixtures/scenario_excel_append_handles_csv_refusal.json +28 -0
  519. package/dist/qa/brain_matrix/fixtures/scenario_excel_append_sheet_intent.json +20 -0
  520. package/dist/qa/brain_matrix/fixtures/scenario_excel_append_sheet_intent_en.json +20 -0
  521. package/dist/qa/brain_matrix/fixtures/scenario_excel_append_then_list.json +34 -0
  522. package/dist/qa/brain_matrix/fixtures/scenario_excel_list_sheets_first.json +22 -0
  523. package/dist/qa/brain_matrix/fixtures/scenario_excel_sheet_named.json +23 -0
  524. package/dist/qa/brain_matrix/fixtures/scenario_explain_voice_yes.json +22 -0
  525. package/dist/qa/brain_matrix/fixtures/scenario_explains_forge_error.json +39 -0
  526. package/dist/qa/brain_matrix/fixtures/scenario_focus_after_modal_open.json +29 -0
  527. package/dist/qa/brain_matrix/fixtures/scenario_fs_find_intent.json +21 -0
  528. package/dist/qa/brain_matrix/fixtures/scenario_fs_find_intent_en.json +20 -0
  529. package/dist/qa/brain_matrix/fixtures/scenario_fs_find_with_glob.json +22 -0
  530. package/dist/qa/brain_matrix/fixtures/scenario_fs_mkdir_intent.json +20 -0
  531. package/dist/qa/brain_matrix/fixtures/scenario_fs_move_intent.json +20 -0
  532. package/dist/qa/brain_matrix/fixtures/scenario_fs_read_handles_missing.json +28 -0
  533. package/dist/qa/brain_matrix/fixtures/scenario_fs_stat_before_read.json +22 -0
  534. package/dist/qa/brain_matrix/fixtures/scenario_generated_app_nac3_default.json +24 -0
  535. package/dist/qa/brain_matrix/fixtures/scenario_git_branch_list_intent.json +20 -0
  536. package/dist/qa/brain_matrix/fixtures/scenario_git_diff_intent.json +20 -0
  537. package/dist/qa/brain_matrix/fixtures/scenario_git_log_intent.json +20 -0
  538. package/dist/qa/brain_matrix/fixtures/scenario_git_log_intent_en.json +20 -0
  539. package/dist/qa/brain_matrix/fixtures/scenario_git_pull_intent.json +19 -0
  540. package/dist/qa/brain_matrix/fixtures/scenario_git_push_intent.json +20 -0
  541. package/dist/qa/brain_matrix/fixtures/scenario_git_show_metadata_only.json +22 -0
  542. package/dist/qa/brain_matrix/fixtures/scenario_git_status_branch_combo.json +44 -0
  543. package/dist/qa/brain_matrix/fixtures/scenario_git_status_intent.json +20 -0
  544. package/dist/qa/brain_matrix/fixtures/scenario_git_status_intent_en.json +20 -0
  545. package/dist/qa/brain_matrix/fixtures/scenario_github_clone_repo_intent.json +20 -0
  546. package/dist/qa/brain_matrix/fixtures/scenario_github_create_repo_intent.json +20 -0
  547. package/dist/qa/brain_matrix/fixtures/scenario_id_format_in_reply.json +27 -0
  548. package/dist/qa/brain_matrix/fixtures/scenario_iterations_idempotent_adenda.json +27 -0
  549. package/dist/qa/brain_matrix/fixtures/scenario_iterations_query_history.json +29 -0
  550. package/dist/qa/brain_matrix/fixtures/scenario_iterations_tracker_acknowledge.json +28 -0
  551. package/dist/qa/brain_matrix/fixtures/scenario_json_parse_handles_malformed.json +34 -0
  552. package/dist/qa/brain_matrix/fixtures/scenario_json_parse_intent.json +30 -0
  553. package/dist/qa/brain_matrix/fixtures/scenario_json_parse_intent_en.json +30 -0
  554. package/dist/qa/brain_matrix/fixtures/scenario_json_query_extract.json +23 -0
  555. package/dist/qa/brain_matrix/fixtures/scenario_json_stringify_intent.json +20 -0
  556. package/dist/qa/brain_matrix/fixtures/scenario_json_stringify_intent_en.json +20 -0
  557. package/dist/qa/brain_matrix/fixtures/scenario_keys_set_intent.json +20 -0
  558. package/dist/qa/brain_matrix/fixtures/scenario_keys_status_intent.json +20 -0
  559. package/dist/qa/brain_matrix/fixtures/scenario_keys_status_intent_en.json +20 -0
  560. package/dist/qa/brain_matrix/fixtures/scenario_lazy_complex_verb.json +27 -0
  561. package/dist/qa/brain_matrix/fixtures/scenario_lazy_doctrine_only_when_needed.json +17 -0
  562. package/dist/qa/brain_matrix/fixtures/scenario_lazy_simple_verb.json +21 -0
  563. package/dist/qa/brain_matrix/fixtures/scenario_lesson_recall_overrides.json +22 -0
  564. package/dist/qa/brain_matrix/fixtures/scenario_lifecycle_restart_app_intent.json +19 -0
  565. package/dist/qa/brain_matrix/fixtures/scenario_lifecycle_run_app_intent.json +19 -0
  566. package/dist/qa/brain_matrix/fixtures/scenario_lifecycle_run_app_intent_en.json +19 -0
  567. package/dist/qa/brain_matrix/fixtures/scenario_lifecycle_stop_app_intent.json +20 -0
  568. package/dist/qa/brain_matrix/fixtures/scenario_lifecycle_stop_app_intent_en.json +20 -0
  569. package/dist/qa/brain_matrix/fixtures/scenario_long_doctrine_no_truncate.json +23 -0
  570. package/dist/qa/brain_matrix/fixtures/scenario_manifest_read_intent.json +19 -0
  571. package/dist/qa/brain_matrix/fixtures/scenario_manual_open_intent.json +19 -0
  572. package/dist/qa/brain_matrix/fixtures/scenario_mcp_bridge_unreachable_graceful.json +39 -0
  573. package/dist/qa/brain_matrix/fixtures/scenario_mcp_disabled_bridge_no_verbs.json +18 -0
  574. package/dist/qa/brain_matrix/fixtures/scenario_mcp_discover_tools_intent.json +19 -0
  575. package/dist/qa/brain_matrix/fixtures/scenario_mcp_invariant_1_no_verbs.json +19 -0
  576. package/dist/qa/brain_matrix/fixtures/scenario_mcp_invoke_two_hop.json +68 -0
  577. package/dist/qa/brain_matrix/fixtures/scenario_mcp_invoke_with_auth_loaded.json +76 -0
  578. package/dist/qa/brain_matrix/fixtures/scenario_mcp_revoked_token_graceful.json +33 -0
  579. package/dist/qa/brain_matrix/fixtures/scenario_mcp_set_creds_intent.json +21 -0
  580. package/dist/qa/brain_matrix/fixtures/scenario_mcp_set_creds_no_token_arg.json +27 -0
  581. package/dist/qa/brain_matrix/fixtures/scenario_mcp_show_tools_before_invoke.json +44 -0
  582. package/dist/qa/brain_matrix/fixtures/scenario_mcp_toggle_intent.json +20 -0
  583. package/dist/qa/brain_matrix/fixtures/scenario_multi_turn_clarify_then_act.json +24 -0
  584. package/dist/qa/brain_matrix/fixtures/scenario_nac3_attrs_doctrine.json +53 -0
  585. package/dist/qa/brain_matrix/fixtures/scenario_nac3_discover_schemas_intent.json +19 -0
  586. package/dist/qa/brain_matrix/fixtures/scenario_nac3_required_attr_missing.json +19 -0
  587. package/dist/qa/brain_matrix/fixtures/scenario_no_bare_ok_after_destructive.json +27 -0
  588. package/dist/qa/brain_matrix/fixtures/scenario_no_global_learnings_no_recall.json +20 -0
  589. package/dist/qa/brain_matrix/fixtures/scenario_no_id_leak_in_reply.json +24 -0
  590. package/dist/qa/brain_matrix/fixtures/scenario_no_invent_verb.json +18 -0
  591. package/dist/qa/brain_matrix/fixtures/scenario_no_loop_after_repeated_fail.json +42 -0
  592. package/dist/qa/brain_matrix/fixtures/scenario_no_password_echo.json +28 -0
  593. package/dist/qa/brain_matrix/fixtures/scenario_npm_outdated_all_current.json +28 -0
  594. package/dist/qa/brain_matrix/fixtures/scenario_npm_outdated_intent.json +20 -0
  595. package/dist/qa/brain_matrix/fixtures/scenario_npm_outdated_intent_en.json +20 -0
  596. package/dist/qa/brain_matrix/fixtures/scenario_npm_outdated_then_explain.json +35 -0
  597. package/dist/qa/brain_matrix/fixtures/scenario_office_excel_read_intent.json +24 -0
  598. package/dist/qa/brain_matrix/fixtures/scenario_office_excel_write_required_args.json +23 -0
  599. package/dist/qa/brain_matrix/fixtures/scenario_office_overwrite_explicit.json +23 -0
  600. package/dist/qa/brain_matrix/fixtures/scenario_office_word_write_intent.json +27 -0
  601. package/dist/qa/brain_matrix/fixtures/scenario_panel_open_settings_intent.json +19 -0
  602. package/dist/qa/brain_matrix/fixtures/scenario_panel_send_message_intent.json +19 -0
  603. package/dist/qa/brain_matrix/fixtures/scenario_pdf_read_intent.json +22 -0
  604. package/dist/qa/brain_matrix/fixtures/scenario_pizarron_clear_tab_explicit_close.json +17 -0
  605. package/dist/qa/brain_matrix/fixtures/scenario_pizarron_for_chart.json +30 -0
  606. package/dist/qa/brain_matrix/fixtures/scenario_pizarron_for_long_table.json +28 -0
  607. package/dist/qa/brain_matrix/fixtures/scenario_pizarron_read_tab_intent.json +20 -0
  608. package/dist/qa/brain_matrix/fixtures/scenario_pizarron_render_not_inline.json +20 -0
  609. package/dist/qa/brain_matrix/fixtures/scenario_prefer_native_read_file.json +28 -0
  610. package/dist/qa/brain_matrix/fixtures/scenario_prefer_native_verb_over_shell.json +22 -0
  611. package/dist/qa/brain_matrix/fixtures/scenario_prefer_native_workflow_state.json +28 -0
  612. package/dist/qa/brain_matrix/fixtures/scenario_project_init_intent.json +20 -0
  613. package/dist/qa/brain_matrix/fixtures/scenario_project_set_root_intent.json +20 -0
  614. package/dist/qa/brain_matrix/fixtures/scenario_promote_lesson_after_correction.json +17 -0
  615. package/dist/qa/brain_matrix/fixtures/scenario_r8_destructive_shell_exec.json +21 -0
  616. package/dist/qa/brain_matrix/fixtures/scenario_read_then_parse_order.json +36 -0
  617. package/dist/qa/brain_matrix/fixtures/scenario_reader_bookmark_jump_intent.json +19 -0
  618. package/dist/qa/brain_matrix/fixtures/scenario_reader_bookmark_set_intent.json +19 -0
  619. package/dist/qa/brain_matrix/fixtures/scenario_reader_for_long_doc.json +21 -0
  620. package/dist/qa/brain_matrix/fixtures/scenario_reader_list_docs_intent.json +19 -0
  621. package/dist/qa/brain_matrix/fixtures/scenario_reader_next_block_intent.json +19 -0
  622. package/dist/qa/brain_matrix/fixtures/scenario_reader_read_section_intent.json +19 -0
  623. package/dist/qa/brain_matrix/fixtures/scenario_reader_recap_intent.json +19 -0
  624. package/dist/qa/brain_matrix/fixtures/scenario_reader_search_intent.json +20 -0
  625. package/dist/qa/brain_matrix/fixtures/scenario_reader_search_intent_en.json +20 -0
  626. package/dist/qa/brain_matrix/fixtures/scenario_refuses_blanket_chmod_777.json +17 -0
  627. package/dist/qa/brain_matrix/fixtures/scenario_refuses_bypass_approval_modal.json +18 -0
  628. package/dist/qa/brain_matrix/fixtures/scenario_refuses_delete_critical_en.json +18 -0
  629. package/dist/qa/brain_matrix/fixtures/scenario_refuses_disable_vault_encryption.json +18 -0
  630. package/dist/qa/brain_matrix/fixtures/scenario_refuses_drop_database.json +17 -0
  631. package/dist/qa/brain_matrix/fixtures/scenario_refuses_force_push_main.json +17 -0
  632. package/dist/qa/brain_matrix/fixtures/scenario_refuses_force_push_main_en.json +17 -0
  633. package/dist/qa/brain_matrix/fixtures/scenario_refuses_leak_vault_en.json +18 -0
  634. package/dist/qa/brain_matrix/fixtures/scenario_refuses_modify_node_modules.json +17 -0
  635. package/dist/qa/brain_matrix/fixtures/scenario_refuses_skip_hooks.json +17 -0
  636. package/dist/qa/brain_matrix/fixtures/scenario_refuses_skip_hooks_en.json +17 -0
  637. package/dist/qa/brain_matrix/fixtures/scenario_refuses_to_delete_critical.json +18 -0
  638. package/dist/qa/brain_matrix/fixtures/scenario_refuses_to_leak_vault.json +18 -0
  639. package/dist/qa/brain_matrix/fixtures/scenario_respects_global_learnings.json +28 -0
  640. package/dist/qa/brain_matrix/fixtures/scenario_respects_workflow_gate_g2.json +39 -0
  641. package/dist/qa/brain_matrix/fixtures/scenario_revoke_lesson_request.json +21 -0
  642. package/dist/qa/brain_matrix/fixtures/scenario_sq_rules_active.json +30 -0
  643. package/dist/qa/brain_matrix/fixtures/scenario_text_diff_intent.json +20 -0
  644. package/dist/qa/brain_matrix/fixtures/scenario_text_diff_intent_en.json +20 -0
  645. package/dist/qa/brain_matrix/fixtures/scenario_truncated_response_retry.json +22 -0
  646. package/dist/qa/brain_matrix/fixtures/scenario_unknown_command_clarify.json +23 -0
  647. package/dist/qa/brain_matrix/fixtures/scenario_url_parse_compose.json +23 -0
  648. package/dist/qa/brain_matrix/fixtures/scenario_url_parse_handles_invalid.json +27 -0
  649. package/dist/qa/brain_matrix/fixtures/scenario_url_parse_intent.json +20 -0
  650. package/dist/qa/brain_matrix/fixtures/scenario_url_parse_intent_en.json +20 -0
  651. package/dist/qa/brain_matrix/fixtures/scenario_url_parse_then_inspect_query.json +28 -0
  652. package/dist/qa/brain_matrix/fixtures/scenario_url_then_stringify_order.json +34 -0
  653. package/dist/qa/brain_matrix/fixtures/scenario_user_just_greets.json +17 -0
  654. package/dist/qa/brain_matrix/fixtures/scenario_user_overrides_proceeds.json +24 -0
  655. package/dist/qa/brain_matrix/fixtures/scenario_user_revokes_in_middle.json +22 -0
  656. package/dist/qa/brain_matrix/fixtures/scenario_voice_open_pizarron.json +21 -0
  657. package/dist/qa/brain_matrix/fixtures/scenario_word_outline_extraction.json +22 -0
  658. package/dist/qa/brain_matrix/fixtures/scenario_word_overwrite_explicit.json +20 -0
  659. package/dist/qa/brain_matrix/fixtures/scenario_word_section_count.json +28 -0
  660. package/dist/qa/brain_matrix/fixtures/scenario_workflow_doctrine.json +53 -0
  661. package/dist/qa/brain_matrix/fixtures/scenario_workflow_done_specs.json +32 -0
  662. package/dist/qa/brain_matrix/fixtures/scenario_workflow_intent_capture.json +22 -0
  663. package/dist/qa/brain_matrix/fixtures/scenario_workflow_phase_jump_block.json +26 -0
  664. package/dist/qa/brain_matrix/fixtures/scenario_workflow_phase_v_step_15.json +41 -0
  665. package/dist/qa/brain_matrix/fixtures/scenario_workflow_run_step_intent.json +19 -0
  666. package/dist/qa/brain_matrix/fixtures/scenario_workflow_set_intent.json +20 -0
  667. package/dist/qa/brain_matrix/fixtures/scenario_workflow_state_injection.json +32 -0
  668. package/dist/qa/brain_matrix/fixtures/scenario_workflow_state_recovers_after_clarify.json +25 -0
  669. package/dist/qa/brain_matrix/fixtures/scenario_workflow_step_1_intake.json +24 -0
  670. package/dist/qa/brain_matrix/fixtures/scenario_yf_command_doctrine.json +56 -0
  671. package/dist/qa/brain_matrix/fixtures/scenario_yf_doctrine_list_intent.json +19 -0
  672. package/dist/qa/brain_matrix/fixtures/scenario_yf_qa_compare_intent.json +17 -0
  673. package/dist/qa/brain_matrix/invariants.d.ts +18 -0
  674. package/dist/qa/brain_matrix/invariants.d.ts.map +1 -0
  675. package/dist/qa/brain_matrix/invariants.js +333 -0
  676. package/dist/qa/brain_matrix/invariants.js.map +1 -0
  677. package/dist/qa/brain_matrix/report.d.ts +12 -0
  678. package/dist/qa/brain_matrix/report.d.ts.map +1 -0
  679. package/dist/qa/brain_matrix/report.js +131 -0
  680. package/dist/qa/brain_matrix/report.js.map +1 -0
  681. package/dist/qa/brain_matrix/runner.d.ts +31 -0
  682. package/dist/qa/brain_matrix/runner.d.ts.map +1 -0
  683. package/dist/qa/brain_matrix/runner.js +561 -0
  684. package/dist/qa/brain_matrix/runner.js.map +1 -0
  685. package/dist/qa/brain_matrix/types.d.ts +180 -0
  686. package/dist/qa/brain_matrix/types.d.ts.map +1 -0
  687. package/dist/qa/brain_matrix/types.js +2 -0
  688. package/dist/qa/brain_matrix/types.js.map +1 -0
  689. package/dist/qa/brain_matrix/validate_scenario.d.ts +23 -0
  690. package/dist/qa/brain_matrix/validate_scenario.d.ts.map +1 -0
  691. package/dist/qa/brain_matrix/validate_scenario.js +128 -0
  692. package/dist/qa/brain_matrix/validate_scenario.js.map +1 -0
  693. package/dist/support/github_dispatcher.d.ts +36 -0
  694. package/dist/support/github_dispatcher.d.ts.map +1 -0
  695. package/dist/support/github_dispatcher.js +292 -0
  696. package/dist/support/github_dispatcher.js.map +1 -0
  697. package/dist/support/reports.d.ts +31 -0
  698. package/dist/support/reports.d.ts.map +1 -0
  699. package/dist/support/reports.js +162 -0
  700. package/dist/support/reports.js.map +1 -0
  701. package/dist/telemetry/usage.d.ts +67 -0
  702. package/dist/telemetry/usage.d.ts.map +1 -0
  703. package/dist/telemetry/usage.js +208 -0
  704. package/dist/telemetry/usage.js.map +1 -0
  705. package/dist/version.d.ts +1 -1
  706. package/dist/version.d.ts.map +1 -1
  707. package/dist/version.js +1 -1
  708. package/dist/version.js.map +1 -1
  709. package/dist/voice/config.d.ts +12 -0
  710. package/dist/voice/config.d.ts.map +1 -1
  711. package/dist/voice/config.js +25 -2
  712. package/dist/voice/config.js.map +1 -1
  713. package/dist/voice/intents.d.ts +1 -1
  714. package/dist/voice/intents.js +0 -0
  715. package/dist/voice/providers/google.d.ts +9 -0
  716. package/dist/voice/providers/google.d.ts.map +1 -1
  717. package/dist/voice/providers/google.js +197 -28
  718. package/dist/voice/providers/google.js.map +1 -1
  719. package/dist/voice/router.d.ts +10 -0
  720. package/dist/voice/router.d.ts.map +1 -1
  721. package/dist/voice/router.js +39 -20
  722. package/dist/voice/router.js.map +1 -1
  723. package/dist/voice/types.d.ts +5 -2
  724. package/dist/voice/types.d.ts.map +1 -1
  725. package/dist/voice/types.js.map +1 -1
  726. package/dist/workflow/phase_inference.d.ts +56 -0
  727. package/dist/workflow/phase_inference.d.ts.map +1 -0
  728. package/dist/workflow/phase_inference.js +107 -0
  729. package/dist/workflow/phase_inference.js.map +1 -0
  730. package/dist/workflow/state.d.ts +238 -0
  731. package/dist/workflow/state.d.ts.map +1 -0
  732. package/dist/workflow/state.js +213 -0
  733. package/dist/workflow/state.js.map +1 -0
  734. package/docs/SQ.md +1397 -0
  735. package/docs/SQ_BY_STEP.yaml +147 -0
  736. package/docs/doctrine/accessibility.md +78 -0
  737. package/docs/doctrine/agent-orchestrator.md +76 -0
  738. package/docs/doctrine/byok-vs-managed.md +81 -0
  739. package/docs/doctrine/cost-router-escalation.md +73 -0
  740. package/docs/doctrine/explain-results.md +90 -0
  741. package/docs/doctrine/g-doc.md +46 -0
  742. package/docs/doctrine/gates.md +21 -0
  743. package/docs/doctrine/lessons-workflow.md +68 -0
  744. package/docs/doctrine/mcp-bridge-lifecycle.md +75 -0
  745. package/docs/doctrine/nac3-attrs.md +23 -0
  746. package/docs/doctrine/office-tools.md +102 -0
  747. package/docs/doctrine/pizarron.md +52 -0
  748. package/docs/doctrine/r8-modal.md +60 -0
  749. package/docs/doctrine/safety-refusals.md +73 -0
  750. package/docs/doctrine/verb-composition.md +68 -0
  751. package/docs/doctrine/workflow-phases.md +108 -0
  752. package/docs/doctrine/workflow.md +58 -0
  753. package/docs/doctrine/yf-commands.md +49 -0
  754. package/package.json +21 -15
  755. package/src/i18n/catalogs/ar.json +55 -10
  756. package/src/i18n/catalogs/de.json +55 -10
  757. package/src/i18n/catalogs/en.json +66 -1
  758. package/src/i18n/catalogs/es.json +66 -1
  759. package/src/i18n/catalogs/fr.json +55 -10
  760. package/src/i18n/catalogs/hi.json +55 -10
  761. package/src/i18n/catalogs/it.json +55 -10
  762. package/src/i18n/catalogs/ja.json +55 -10
  763. package/src/i18n/catalogs/pt.json +55 -10
  764. package/src/i18n/catalogs/zh.json +55 -10
  765. package/templates/nextjs-app/README.md +48 -0
  766. package/templates/nextjs-app/next.config.js +8 -0
  767. package/templates/nextjs-app/package.json +33 -0
  768. package/templates/nextjs-app/src/app/globals.css +43 -0
  769. package/templates/nextjs-app/src/app/layout.tsx +29 -0
  770. package/templates/nextjs-app/src/app/page.tsx +63 -0
  771. package/templates/nextjs-app/src/nac/manifest.ts +36 -0
  772. package/templates/nextjs-app/tsconfig.json +21 -0
  773. package/templates/nextjs-app/yujin.forge.json +11 -0
@@ -27,6 +27,7 @@ import { promises as fs } from 'node:fs';
27
27
  import path from 'node:path';
28
28
  import { configDir } from '../license/index.js';
29
29
  import { Vault } from '../vault/store.js';
30
+ import { recordUsage } from '../telemetry/usage.js';
30
31
  export class ConfigurationError extends Error {
31
32
  constructor(message) {
32
33
  super(message);
@@ -46,29 +47,38 @@ export class ClaudeApiError extends Error {
46
47
  *
47
48
  * Priority order (first match wins):
48
49
  * 1. Explicitly injected key (test seam).
49
- * 2. Vault slot `anthropic` -- the canonical path going
50
- * forward.
51
- * 3. process.env.YUJIN_ANTHROPIC_API_KEY -- legacy env var.
52
- * 4. process.env.ANTHROPIC_API_KEY -- standard Anthropic env.
53
- * 5. ~/.yujin-forge/api-key.txt -- legacy file path.
50
+ * 2. BYOK provider_keys.json (alpha.4+ canonical: `yf keys setup`).
51
+ * 3. Vault slot `anthropic` (V0.4 path, kept).
52
+ * 4. process.env.YUJIN_ANTHROPIC_API_KEY (legacy env var).
53
+ * 5. process.env.ANTHROPIC_API_KEY (standard Anthropic env).
54
+ * 6. ~/.yujin-forge/api-key.txt (legacy file path).
54
55
  *
55
56
  * Throws ConfigurationError when nothing is found. The error
56
- * message lists all the options so the user has a single place
57
- * to read where to put the key.
57
+ * message lists the options in current-recommended order so a
58
+ * fresh user is pointed at `yf keys setup` first.
58
59
  *
59
- * The vault check is short-circuiting: if the slot exists, the
60
- * env vars and the file are ignored. This makes vault-configured
61
- * setups deterministic and unaffected by stray env vars.
62
- *
63
- * The other three paths stay as back-compat for existing users
64
- * who already configured Forge via env or file before V0.4
65
- * landed. They are NOT deprecated -- they keep working
66
- * indefinitely. The vault is just the recommended path.
60
+ * The BYOK provider_keys check is the NEW canonical path that
61
+ * lands with the post-purchase activation flow (the landing
62
+ * tells the user to run `yf keys setup` after their Polar
63
+ * subscription is live). The vault slot remains supported for
64
+ * users who configured Forge pre-BYOK.
67
65
  */
68
66
  export async function resolveApiKey(injected) {
69
67
  if (injected && injected.trim() !== '')
70
68
  return injected.trim();
71
- /* Vault first. Opens cheaply; the cost is dominated by
69
+ /* 1. BYOK provider keys -- alpha.44 C1: stored in the encrypted
70
+ Vault (AES-256-GCM). The legacy plaintext provider_keys.json
71
+ gets auto-migrated by core/provider_keys.ts on first access. */
72
+ try {
73
+ const { getKey } = await import('../core/provider_keys.js');
74
+ const v = await getKey('anthropic_api_key');
75
+ if (v && v.trim() !== '')
76
+ return v.trim();
77
+ }
78
+ catch {
79
+ /* Vault unavailable -- fall through to legacy paths */
80
+ }
81
+ /* 2. Vault slot. Opens cheaply; the cost is dominated by
72
82
  scrypt derivation (~60ms) which is acceptable for the
73
83
  boot of a chat session. */
74
84
  try {
@@ -85,10 +95,12 @@ export async function resolveApiKey(injected) {
85
95
  env-var setups still work. The vault corruption surfaces
86
96
  loudly when they explicitly run `yf vault list` or `set`. */
87
97
  }
98
+ /* 3. + 4. Env vars. */
88
99
  const fromEnv = process.env['YUJIN_ANTHROPIC_API_KEY']
89
100
  ?? process.env['ANTHROPIC_API_KEY'];
90
101
  if (fromEnv && fromEnv.trim() !== '')
91
102
  return fromEnv.trim();
103
+ /* 5. Legacy file. */
92
104
  const filePath = path.join(configDir(), 'api-key.txt');
93
105
  try {
94
106
  const raw = await fs.readFile(filePath, 'utf-8');
@@ -100,14 +112,27 @@ export async function resolveApiKey(injected) {
100
112
  if (err.code !== 'ENOENT')
101
113
  throw err;
102
114
  }
103
- throw new ConfigurationError('no Anthropic API key found. Configure one of:\n'
104
- + ' - yf vault set anthropic (recommended)\n'
105
- + ' - export YUJIN_ANTHROPIC_API_KEY=sk-ant-...\n'
115
+ /* alpha.59z.14 F104 -- formatted error with what/why/fix triple.
116
+ * Importing the formatter lazily because resolveAnthropicKey()
117
+ * gets called from many code paths; we keep this fn synchronous
118
+ * by inlining the catalog data here. The CLI formatter wraps
119
+ * the thrown ConfigurationError instance into a ForgeError at
120
+ * the boundary (yf doctor / yf chat catch). */
121
+ const err = new ConfigurationError('no Anthropic API key found. Configure one of:\n'
122
+ + ' - yf keys set anthropic_api_key (recommended; encrypted vault slot)\n'
123
+ + ' - yf keys setup (interactive setup; brain + voice)\n'
106
124
  + ' - export ANTHROPIC_API_KEY=sk-ant-...\n'
125
+ + ' - export YUJIN_ANTHROPIC_API_KEY=sk-ant-...\n'
107
126
  + ' - write the key to ~/.yujin-forge/api-key.txt');
127
+ /* Hydrate forge_error via the catalog so the message respects
128
+ * the active i18n session language (alpha.59z.15). */
129
+ const { renderForgeError, E_BYOK_KEY_MISSING } = await import('../core/error_catalog.js');
130
+ err.forge_error = renderForgeError(E_BYOK_KEY_MISSING, {
131
+ provider: 'anthropic', slot: 'anthropic_api_key', tier: 'frontier',
132
+ });
133
+ throw err;
108
134
  }
109
135
  const DEFAULT_MODEL = 'claude-sonnet-4-6';
110
- const DEFAULT_MAX_TOOL_ROUNDS = 5;
111
136
  export class ClaudeClient {
112
137
  apiKey;
113
138
  fetchImpl;
@@ -126,7 +151,23 @@ export class ClaudeClient {
126
151
  }
127
152
  const model = req.model ?? this.defaultModel;
128
153
  const maxTokens = req.maxTokens ?? 1024;
129
- const maxRounds = req.maxToolRounds ?? DEFAULT_MAX_TOOL_ROUNDS;
154
+ /* alpha.59c -- max_tool_rounds comes from limits_config (or
155
+ * the caller's override). Inside the loop we re-evaluate
156
+ * based on the verb family of the first tool the LLM
157
+ * invokes so reader-heavy turns get the bigger cap
158
+ * automatically. Cap only grows mid-turn, never shrinks. */
159
+ const { readLimitsConfig, classifyVerbFamily, getMaxToolRoundsForFamily } = await import('../core/limits_config.js');
160
+ const limits = await readLimitsConfig();
161
+ const callerSpecifiedCap = req.maxToolRounds !== undefined;
162
+ /* alpha.59e -- when Danger Zone auto-approve is on, the user
163
+ * has opted in to long autonomous chains. Use the higher
164
+ * autonomous cap as the BASE. Caller override still wins. */
165
+ const autonomousMode = limits.danger_zone && limits.danger_zone.auto_approve_all === true;
166
+ const baseCap = autonomousMode
167
+ ? limits.max_tool_rounds.autonomous
168
+ : limits.max_tool_rounds.default;
169
+ let maxRounds = req.maxToolRounds ?? baseCap;
170
+ let familyResolved = null;
130
171
  /* Seed the conversation with the caller's history. Each round
131
172
  appends turns; the loop terminates when the model's
132
173
  stop_reason is anything other than 'tool_use'. */
@@ -145,8 +186,26 @@ export class ClaudeClient {
145
186
  max_tokens: maxTokens,
146
187
  messages,
147
188
  };
148
- if (req.system)
149
- body['system'] = req.system;
189
+ if (req.system) {
190
+ /* Wrap the system prompt as a cacheable content block.
191
+ * Anthropic prompt caching (5-min TTL) charges 10% on cache
192
+ * hits, 25% on cache writes. Our system prompt is ~3500
193
+ * tokens of mostly-static guidance (PRODUCT_WORKFLOW + SQ
194
+ * digest + tool catalog) plus a small dynamic tail (mode +
195
+ * context). We cache the whole thing as one block -- when
196
+ * the dynamic tail changes (mode flip, new project root),
197
+ * the cache invalidates and the next turn rewrites it; the
198
+ * TTL covers the typical multi-turn session.
199
+ * Minimum cacheable prefix is 1024 tokens for sonnet/opus
200
+ * and 2048 for haiku; our payload exceeds both. */
201
+ body['system'] = [
202
+ {
203
+ type: 'text',
204
+ text: req.system,
205
+ cache_control: { type: 'ephemeral' },
206
+ },
207
+ ];
208
+ }
150
209
  if (req.tools && req.tools.length > 0) {
151
210
  body['tools'] = req.tools.map((t) => ({
152
211
  name: t.name,
@@ -168,26 +227,92 @@ export class ClaudeClient {
168
227
  throw new ClaudeApiError('Claude API ' + resp.status + ': ' + detail.slice(0, 500), resp.status);
169
228
  }
170
229
  const data = await resp.json();
171
- totalTokensIn += data.usage?.input_tokens ?? 0;
172
- totalTokensOut += data.usage?.output_tokens ?? 0;
230
+ const roundIn = data.usage?.input_tokens ?? 0;
231
+ const roundOut = data.usage?.output_tokens ?? 0;
232
+ totalTokensIn += roundIn;
233
+ totalTokensOut += roundOut;
173
234
  usedModel = data.model ?? model;
235
+ /* Best-effort telemetry. Fire-and-forget; failures inside
236
+ recordUsage are already swallowed. */
237
+ void recordUsage({
238
+ kind: req.usageKind ?? 'claude.chat',
239
+ model: usedModel,
240
+ tokens_in: roundIn,
241
+ tokens_out: roundOut,
242
+ label: req.usageLabel,
243
+ project_root: req.projectRoot,
244
+ });
174
245
  const blocks = data.content ?? [];
175
246
  const textBlocks = blocks.filter((b) => b.type === 'text');
176
247
  const toolUses = blocks.filter((b) => b.type === 'tool_use');
177
248
  lastText = textBlocks.map((b) => b.text).join('');
178
249
  if (toolUses.length === 0 || data.stop_reason !== 'tool_use') {
179
250
  /* No tools called -- return whatever the model said. */
251
+ /* alpha.59z.14 F104 -- detect truncation: output_tokens
252
+ * within TRUNCATION_MARGIN of max_tokens OR provider says
253
+ * stop_reason=max_tokens|length. Provider-agnostic
254
+ * arithmetic-first per Pablo's design. */
255
+ const { detectTruncation } = await import('../core/truncation_detector.js');
256
+ const trunc = detectTruncation({
257
+ output_tokens: roundOut,
258
+ max_tokens: maxTokens,
259
+ stop_reason: data.stop_reason,
260
+ });
180
261
  return {
181
262
  text: lastText,
182
263
  tokensIn: totalTokensIn,
183
264
  tokensOut: totalTokensOut,
184
265
  model: usedModel,
185
266
  toolRounds,
267
+ truncation: trunc.truncated ? {
268
+ truncated: true,
269
+ reason: trunc.reason,
270
+ output_tokens: trunc.output_tokens,
271
+ max_tokens: trunc.max_tokens,
272
+ } : undefined,
186
273
  };
187
274
  }
275
+ /* alpha.59c -- detect verb family from first tool_use, raise
276
+ * cap for reader/search/writer turns. Only grows. */
277
+ if (familyResolved === null && toolUses.length > 0) {
278
+ const first = toolUses[0];
279
+ if (first) {
280
+ const firstVerb = first.input.verb_id || first.name || '';
281
+ const family = classifyVerbFamily(firstVerb);
282
+ familyResolved = family;
283
+ /* Only auto-bump the cap when the caller did NOT pin
284
+ * it. Explicit req.maxToolRounds is the caller's
285
+ * contract -- preserving it keeps tests + callers
286
+ * predictable. */
287
+ if (!callerSpecifiedCap) {
288
+ const familyCap = getMaxToolRoundsForFamily(limits.max_tool_rounds, family);
289
+ if (familyCap > maxRounds)
290
+ maxRounds = familyCap;
291
+ }
292
+ }
293
+ }
188
294
  if (round === maxRounds) {
189
- throw new ClaudeApiError('tool_use loop exhausted (' + maxRounds + ' rounds). Last text: '
190
- + (lastText ? lastText.slice(0, 200) : '(none)'), 429);
295
+ /* alpha.59c -- graceful exhaustion. Return what we have
296
+ * with a helpful summary instead of throwing. The caller
297
+ * (server.ts handleChat) treats this like any other
298
+ * reply; the panel shows it with a "loop exhausted"
299
+ * badge. */
300
+ const firstTu = toolUses[0];
301
+ const lastVerb = firstTu
302
+ ? (firstTu.input.verb_id || firstTu.name || 'unknown')
303
+ : 'unknown';
304
+ const summary = (lastText ? lastText + '\n\n' : '') +
305
+ '[Alcance el limite de rondas (' + maxRounds + '/' + maxRounds + ') ' +
306
+ 'en esta tarea (familia=' + (familyResolved ?? 'default') + ', ultimo verbo=' + lastVerb + '). ' +
307
+ 'Decime "continua" y sigo desde aca, o sube el cap en yf limits set max_tool_rounds.' +
308
+ (familyResolved ?? 'default') + ' <N>.]';
309
+ return {
310
+ text: summary,
311
+ tokensIn: totalTokensIn,
312
+ tokensOut: totalTokensOut,
313
+ model: usedModel,
314
+ toolRounds,
315
+ };
191
316
  }
192
317
  /* Persist the assistant turn (text + tool_use blocks) so
193
318
  Anthropic sees the full history on the next round. */
@@ -1 +1 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/chat/claude.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/chat/claude.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAkB,MAAM,uBAAuB,CAAC;AAEpE,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,MAAM,CAAS;IACf,YAAY,OAAe,EAAE,MAAc;QACzC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AA0GD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,QAAiB;IACnD,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IAE/D;;sEAEkE;IAClE,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;QAC5D,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,uDAAuD;IACzD,CAAC;IAED;;iCAE6B;IAC7B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QAC3D,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACrC,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;gBAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;QACxD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP;;;uEAG+D;IACjE,CAAC;IAED,uBAAuB;IACvB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;WACvC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAChD,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;IAE5D,qBAAqB;IACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa,CAAC,CAAC;IACvD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,EAAE;YAAE,OAAO,OAAO,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,GAAG,CAAC;IAClE,CAAC;IAED;;;;;mDAK+C;IAC/C,MAAM,GAAG,GAAG,IAAI,kBAAkB,CAChC,iDAAiD;UAC/C,0EAA0E;UAC1E,0EAA0E;UAC1E,2CAA2C;UAC3C,iDAAiD;UACjD,iDAAiD,CACpD,CAAC;IACF;0DACsD;IACtD,MAAM,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;IACzF,GAAsD,CAAC,WAAW,GAAG,gBAAgB,CAAC,kBAAkB,EAAE;QACzG,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,UAAU;KACnE,CAAC,CAAC;IACH,MAAM,GAAG,CAAC;AACZ,CAAC;AAED,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAqB1C,MAAM,OAAO,YAAY;IACf,MAAM,CAAgB;IACtB,SAAS,CAAe;IACxB,YAAY,CAAS;IAE7B,YAAY,OAA4B,EAAE;QACxC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC;QACzC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,aAAa,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAsB;QAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;QACtC,CAAC;QACD,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC;QAC7C,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC;QACxC;;;;qEAI6D;QAC7D,MAAM,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,GACvE,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACxC,MAAM,kBAAkB,GAAG,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC;QAC3D;;sEAE8D;QAC9D,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,gBAAgB,KAAK,IAAI,CAAC;QAC1F,MAAM,OAAO,GAAG,cAAc;YAC5B,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,UAAU;YACnC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC;QACnC,IAAI,SAAS,GAAG,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC;QAC7C,IAAI,cAAc,GAAkB,IAAI,CAAC;QAEzC;;4DAEoD;QACpD,MAAM,QAAQ,GAAiB,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtD,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,OAAO,EAAE,CAAC,CAAC,OAAO;SACnB,CAAC,CAAC,CAAC;QAEJ,MAAM,UAAU,GAAgB,EAAE,CAAC;QACnC,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC;YAChD,MAAM,IAAI,GAA4B;gBACpC,KAAK;gBACL,UAAU,EAAE,SAAS;gBACrB,QAAQ;aACT,CAAC;YACF,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACf;;;;;;;;;;oEAUoD;gBACpD,IAAI,CAAC,QAAQ,CAAC,GAAG;oBACf;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,GAAG,CAAC,MAAM;wBAChB,aAAa,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;qBACrC;iBACF,CAAC;YACJ,CAAC;YACD,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACpC,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,YAAY,EAAE,CAAC,CAAC,YAAY;iBAC7B,CAAC,CAAC,CAAC;YACN,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,uCAAuC,EAAE;gBACzE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAO,kBAAkB;oBACvC,WAAW,EAAU,IAAI,CAAC,MAAgB;oBAC1C,mBAAmB,EAAE,YAAY;iBAClC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aAC3B,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACb,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACpC,MAAM,IAAI,cAAc,CACtB,aAAa,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EACzD,IAAI,CAAC,MAAM,CACZ,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAK3B,CAAC;YACF,MAAM,OAAO,GAAI,IAAI,CAAC,KAAK,EAAE,YAAY,IAAK,CAAC,CAAC;YAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,aAAa,IAAI,CAAC,CAAC;YAChD,aAAa,IAAK,OAAO,CAAC;YAC1B,cAAc,IAAI,QAAQ,CAAC;YAC3B,SAAS,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC;YAEhC;oDACwC;YACxC,KAAK,WAAW,CAAC;gBACf,IAAI,EAAS,GAAG,CAAC,SAAS,IAAI,aAAa;gBAC3C,KAAK,EAAQ,SAAS;gBACtB,SAAS,EAAI,OAAO;gBACpB,UAAU,EAAG,QAAQ;gBACrB,KAAK,EAAQ,GAAG,CAAC,UAAU;gBAC3B,YAAY,EAAC,GAAG,CAAC,WAAW;aAC7B,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAuC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YAChG,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAuF,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;YAClJ,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAElD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;gBAC7D,wDAAwD;gBACxD;;;0DAG0C;gBAC1C,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;gBAC5E,MAAM,KAAK,GAAG,gBAAgB,CAAC;oBAC7B,aAAa,EAAE,QAAQ;oBACvB,UAAU,EAAK,SAAS;oBACxB,WAAW,EAAI,IAAI,CAAC,WAAW;iBAChC,CAAC,CAAC;gBACH,OAAO;oBACL,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAG,aAAa;oBACxB,SAAS,EAAE,cAAc;oBACzB,KAAK,EAAM,SAAS;oBACpB,UAAU;oBACV,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;wBAC5B,SAAS,EAAE,IAAI;wBACf,MAAM,EAAK,KAAK,CAAC,MAAM;wBACvB,aAAa,EAAE,KAAK,CAAC,aAAa;wBAClC,UAAU,EAAK,KAAK,CAAC,UAAU;qBAChC,CAAC,CAAC,CAAC,SAAS;iBACd,CAAC;YACJ,CAAC;YAED;kEACsD;YACtD,IAAI,cAAc,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,SAAS,GAAI,KAAK,CAAC,KAA8B,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;oBACpF,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;oBAC7C,cAAc,GAAG,MAAM,CAAC;oBACxB;;;uCAGmB;oBACnB,IAAI,CAAC,kBAAkB,EAAE,CAAC;wBACxB,MAAM,SAAS,GAAG,yBAAyB,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;wBAC5E,IAAI,SAAS,GAAG,SAAS;4BAAE,SAAS,GAAG,SAAS,CAAC;oBACnD,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB;;;;6BAIa;gBACb,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC5B,MAAM,QAAQ,GAAG,OAAO;oBACtB,CAAC,CAAC,CAAE,OAAO,CAAC,KAA8B,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,IAAI,SAAS,CAAC;oBAChF,CAAC,CAAC,SAAS,CAAC;gBACd,MAAM,OAAO,GACX,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnC,gCAAgC,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,IAAI;oBACrE,yBAAyB,GAAG,CAAC,cAAc,IAAI,SAAS,CAAC,GAAG,iBAAiB,GAAG,QAAQ,GAAG,KAAK;oBAChG,qFAAqF;oBACrF,CAAC,cAAc,IAAI,SAAS,CAAC,GAAG,QAAQ,CAAC;gBAC3C,OAAO;oBACL,IAAI,EAAE,OAAO;oBACb,QAAQ,EAAG,aAAa;oBACxB,SAAS,EAAE,cAAc;oBACzB,KAAK,EAAM,SAAS;oBACpB,UAAU;iBACX,CAAC;YACJ,CAAC;YAED;oEACwD;YACxD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAEtD;uCAC2B;YAC3B,MAAM,gBAAgB,GAAsB,EAAE,CAAC;YAC/C,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAC1B,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,OAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;gBAChD,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,EAAE,CAAC,IAAI;oBACb,KAAK,EAAE,EAAE,CAAC,KAAK;oBACf,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzC,WAAW,EAAE,EAAE,CAAC,EAAE;iBACnB,CAAC,CAAC;gBACH,gBAAgB,CAAC,IAAI,CAAC;oBACpB,IAAI,EAAE,aAAa;oBACnB,WAAW,EAAE,EAAE,CAAC,EAAE;oBAClB,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;oBAC3E,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC1C,CAAC,CAAC;YACL,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC7D,CAAC;QAED,sDAAsD;QACtD,MAAM,IAAI,cAAc,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAC;IACzE,CAAC;CACF;AAED,KAAK,UAAU,QAAQ,CAAC,CAAW;IACjC,IAAI,CAAC;QAAC,OAAO,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,WAAW,CAAC;IAAC,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,46 @@
1
+ interface IngestStateEntry {
2
+ package_json_mtime_ms: number;
3
+ ingested_at: string;
4
+ lib_count: number;
5
+ }
6
+ interface IngestState {
7
+ version: 1;
8
+ slugs: Record<string, IngestStateEntry>;
9
+ }
10
+ declare function statePath(): string;
11
+ declare function readState(): Promise<IngestState>;
12
+ declare function writeState(s: IngestState): Promise<void>;
13
+ /** Fire-and-forget. Never throws. Returns true when the ingest
14
+ * ran + completed (regardless of how many nodes), false when
15
+ * skipped (no package.json, no change since last ingest, or
16
+ * worker error). */
17
+ export declare function maybeAutoIngest(opts: {
18
+ project_root: string;
19
+ project_slug: string;
20
+ /** Optional logger -- defaults to silent. Tests can inject
21
+ * a console.log to see what happened. */
22
+ log?: (msg: string) => void;
23
+ /** Bypass the env gate (tests). */
24
+ forceEnabled?: boolean;
25
+ }): Promise<boolean>;
26
+ /** Spawn an ingest (or reuse one in flight for the same slug) +
27
+ * return the promise so callers that need to wait for it (e.g.
28
+ * GET /api/forge/graph-status on the first panel load) can do
29
+ * so. NEVER throws. */
30
+ export declare function startAutoIngest(opts: {
31
+ project_root: string;
32
+ project_slug: string;
33
+ log?: (msg: string) => void;
34
+ }): Promise<boolean>;
35
+ /** Returns the in-flight ingest promise for this slug, or null
36
+ * if none is running. Endpoints await with a timeout. */
37
+ export declare function inFlightIngest(project_slug: string): Promise<boolean> | null;
38
+ /** Test seam. */
39
+ export declare const _internal: {
40
+ statePath: typeof statePath;
41
+ readState: typeof readState;
42
+ writeState: typeof writeState;
43
+ _inFlight: Map<string, Promise<boolean>>;
44
+ };
45
+ export {};
46
+ //# sourceMappingURL=graph_auto_ingest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph_auto_ingest.d.ts","sourceRoot":"","sources":["../../src/chat/graph_auto_ingest.ts"],"names":[],"mappings":"AAuCA,UAAU,gBAAgB;IACxB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,WAAW,EAAY,MAAM,CAAC;IAC9B,SAAS,EAAc,MAAM,CAAC;CAC/B;AACD,UAAU,WAAW;IACnB,OAAO,EAAE,CAAC,CAAC;IACX,KAAK,EAAI,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAC3C;AAED,iBAAS,SAAS,IAAI,MAAM,CAI3B;AAED,iBAAe,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,CAO/C;AAED,iBAAe,UAAU,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAMvD;AAED;;;qBAGqB;AACrB,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAC1C,YAAY,EAAG,MAAM,CAAC;IACtB,YAAY,EAAG,MAAM,CAAC;IACtB;8CAC0C;IAC1C,GAAG,CAAC,EAAW,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,mCAAmC;IACnC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,GAAG,OAAO,CAAC,OAAO,CAAC,CA+DnB;AAQD;;;wBAGwB;AACxB,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACpC,YAAY,EAAG,MAAM,CAAC;IACtB,YAAY,EAAG,MAAM,CAAC;IACtB,GAAG,CAAC,EAAW,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC,GAAG,OAAO,CAAC,OAAO,CAAC,CAYnB;AAED;0DAC0D;AAC1D,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAE5E;AAED,iBAAiB;AACjB,eAAO,MAAM,SAAS;;;;;CAAkD,CAAC"}
@@ -0,0 +1,162 @@
1
+ /**
2
+ * Graph auto-ingest on yf chat boot (alpha.59v).
3
+ *
4
+ * Per Pablo's directive 2026-06-02: "Si abro yf chat en un
5
+ * directorio lo entienda como directorio de proyecto y cargue
6
+ * los graph del mismo automaticamente. A medida que voy
7
+ * incorporando mas componentes los suma automaticamente al
8
+ * graph."
9
+ *
10
+ * Phase 1 -- package.json deps ingestion at boot:
11
+ *
12
+ * 1. On every yf chat boot, resolve projectSlug + read
13
+ * package.json mtime.
14
+ * 2. Look up the cached state for this slug in
15
+ * ~/.yujin-forge/cache/graph_ingest_state.json:
16
+ * { "<slug>": { "package_json_mtime_ms": N, "ingested_at": ISO,
17
+ * "lib_count": N } }
18
+ * 3. If the package.json mtime has changed since last_ingest
19
+ * (or slug never ingested) -> fire-and-forget background
20
+ * ingest via the existing ingestFromPackageJson() +
21
+ * /v1/semantic-graph/import endpoint.
22
+ * 4. Update the cache state on success.
23
+ *
24
+ * Failure modes:
25
+ * - Worker unreachable -> log, swallow (boot continues).
26
+ * - No package.json -> skip (not all projects are npm).
27
+ * - No vault key -> swallow (auth failure is OK; the user is
28
+ * not yet onboarded).
29
+ *
30
+ * Never blocks the boot. Never throws.
31
+ *
32
+ * ASCII-only.
33
+ */
34
+ import { promises as fs } from 'node:fs';
35
+ import path from 'node:path';
36
+ import os from 'node:os';
37
+ import { ingestFromPackageJson } from './semantic_graph_ingest.js';
38
+ import { semanticGraphPost } from '../license/hito4_client.js';
39
+ function statePath() {
40
+ const home = process.env.HOME || process.env.USERPROFILE || os.homedir();
41
+ const base = process.env.YF_CONFIG_DIR || path.join(home, '.yujin-forge');
42
+ return path.join(base, 'cache', 'graph_ingest_state.json');
43
+ }
44
+ async function readState() {
45
+ try {
46
+ const raw = await fs.readFile(statePath(), 'utf-8');
47
+ const j = JSON.parse(raw);
48
+ if (j && j.version === 1 && typeof j.slugs === 'object')
49
+ return j;
50
+ }
51
+ catch { /* missing or malformed -> fresh */ }
52
+ return { version: 1, slugs: {} };
53
+ }
54
+ async function writeState(s) {
55
+ const p = statePath();
56
+ await fs.mkdir(path.dirname(p), { recursive: true });
57
+ const tmp = p + '.tmp';
58
+ await fs.writeFile(tmp, JSON.stringify(s, null, 2), 'utf-8');
59
+ await fs.rename(tmp, p);
60
+ }
61
+ /** Fire-and-forget. Never throws. Returns true when the ingest
62
+ * ran + completed (regardless of how many nodes), false when
63
+ * skipped (no package.json, no change since last ingest, or
64
+ * worker error). */
65
+ export async function maybeAutoIngest(opts) {
66
+ const log = opts.log ?? (() => undefined);
67
+ /* Env gate: YF_GRAPH_AUTO_INGEST=0 disables. Default ON. */
68
+ if (!opts.forceEnabled) {
69
+ const v = process.env.YF_GRAPH_AUTO_INGEST;
70
+ if (v === '0' || v === 'false' || v === 'no') {
71
+ log('[auto-ingest] disabled via YF_GRAPH_AUTO_INGEST=0');
72
+ return false;
73
+ }
74
+ }
75
+ /* Check package.json mtime. */
76
+ const pkgPath = path.join(opts.project_root, 'package.json');
77
+ let mtimeMs;
78
+ try {
79
+ const st = await fs.stat(pkgPath);
80
+ mtimeMs = st.mtimeMs;
81
+ }
82
+ catch {
83
+ log('[auto-ingest] no package.json at ' + opts.project_root + ' -- skip');
84
+ return false;
85
+ }
86
+ /* Compare against cached state. */
87
+ const state = await readState();
88
+ const prev = state.slugs[opts.project_slug];
89
+ if (prev && prev.package_json_mtime_ms === mtimeMs) {
90
+ log('[auto-ingest] package.json unchanged since last ingest (' + prev.ingested_at + ') -- skip');
91
+ return false;
92
+ }
93
+ /* Ingest. */
94
+ const nodes = await ingestFromPackageJson({
95
+ project_root: opts.project_root,
96
+ project_slug: opts.project_slug,
97
+ });
98
+ if (nodes.length === 0) {
99
+ log('[auto-ingest] package.json has no deps -- skip');
100
+ return false;
101
+ }
102
+ log('[auto-ingest] ingesting ' + nodes.length + ' libs for project_slug=' + opts.project_slug + '...');
103
+ try {
104
+ const r = await semanticGraphPost('/v1/semantic-graph/import', {
105
+ nodes,
106
+ edges: [],
107
+ project_slug: opts.project_slug,
108
+ });
109
+ if (!r.ok || !r.body || r.body.ok !== true) {
110
+ log('[auto-ingest] worker rejected (' + r.status + '): ' + (r.body ? JSON.stringify(r.body).slice(0, 200) : 'no body'));
111
+ return false;
112
+ }
113
+ const added = Number(r.body.added ?? 0);
114
+ const updated = Number(r.body.updated ?? 0);
115
+ log('[auto-ingest] OK added=' + added + ' updated=' + updated);
116
+ /* Persist state. */
117
+ state.slugs[opts.project_slug] = {
118
+ package_json_mtime_ms: mtimeMs,
119
+ ingested_at: new Date().toISOString(),
120
+ lib_count: nodes.length,
121
+ };
122
+ await writeState(state);
123
+ return true;
124
+ }
125
+ catch (err) {
126
+ const msg = err instanceof Error ? err.message : String(err);
127
+ log('[auto-ingest] error: ' + msg);
128
+ return false;
129
+ }
130
+ }
131
+ /* ----- alpha.59v.2 -- in-flight tracking ----- */
132
+ /* Per-process map: project_slug -> Promise<boolean> currently
133
+ * running. Endpoints that need "graph data is current" can await
134
+ * this with a timeout before they query the worker. */
135
+ const _inFlight = new Map();
136
+ /** Spawn an ingest (or reuse one in flight for the same slug) +
137
+ * return the promise so callers that need to wait for it (e.g.
138
+ * GET /api/forge/graph-status on the first panel load) can do
139
+ * so. NEVER throws. */
140
+ export function startAutoIngest(opts) {
141
+ const existing = _inFlight.get(opts.project_slug);
142
+ if (existing)
143
+ return existing;
144
+ const p = (async () => {
145
+ try {
146
+ return await maybeAutoIngest(opts);
147
+ }
148
+ finally {
149
+ _inFlight.delete(opts.project_slug);
150
+ }
151
+ })();
152
+ _inFlight.set(opts.project_slug, p);
153
+ return p;
154
+ }
155
+ /** Returns the in-flight ingest promise for this slug, or null
156
+ * if none is running. Endpoints await with a timeout. */
157
+ export function inFlightIngest(project_slug) {
158
+ return _inFlight.get(project_slug) ?? null;
159
+ }
160
+ /** Test seam. */
161
+ export const _internal = { statePath, readState, writeState, _inFlight };
162
+ //# sourceMappingURL=graph_auto_ingest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph_auto_ingest.js","sourceRoot":"","sources":["../../src/chat/graph_auto_ingest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ export interface ParsedExport {
2
+ name: string;
3
+ kind: 'function' | 'const' | 'class';
4
+ }
5
+ /** Extract top-level exported identifiers from a TS/JS source.
6
+ * Returns up to 10 exports per file (cap to avoid explosion on
7
+ * barrel files). */
8
+ export declare function extractExports(source: string): ParsedExport[];
9
+ /** Sanitise a file path to a stable graph node id. */
10
+ declare function fileToNodeIdBase(projectRoot: string, fullPath: string): string;
11
+ /** Build node payloads from a file change. */
12
+ declare function nodesForFile(projectRoot: string, projectSlug: string, filePath: string): Promise<Array<Record<string, unknown>>>;
13
+ export interface WatcherHandle {
14
+ stop: () => Promise<void>;
15
+ }
16
+ /** Start watching the project's source dirs. Returns a handle
17
+ * with .stop() to close all watchers on server shutdown.
18
+ * NEVER throws. */
19
+ export declare function startComponentWatcher(opts: {
20
+ project_root: string;
21
+ project_slug: string;
22
+ log?: (msg: string) => void;
23
+ }): Promise<WatcherHandle>;
24
+ /** Test seam. */
25
+ export declare const _internal: {
26
+ fileToNodeIdBase: typeof fileToNodeIdBase;
27
+ nodesForFile: typeof nodesForFile;
28
+ };
29
+ export {};
30
+ //# sourceMappingURL=graph_component_watcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph_component_watcher.d.ts","sourceRoot":"","sources":["../../src/chat/graph_component_watcher.ts"],"names":[],"mappings":"AAkDA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;CACtC;AAED;;qBAEqB;AACrB,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,CAkB7D;AAED,sDAAsD;AACtD,iBAAS,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGvE;AAED,8CAA8C;AAC9C,iBAAe,YAAY,CACzB,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GACzD,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CA0BzC;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED;;oBAEoB;AACpB,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAU,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC,GAAG,OAAO,CAAC,aAAa,CAAC,CAsFzB;AAED,iBAAiB;AACjB,eAAO,MAAM,SAAS;;;CAAqC,CAAC"}