agent-nuvira 3.3.1 → 3.3.4

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 (466) hide show
  1. package/README.md +18 -13
  2. package/dist/agent-sdk/src/agent.d.ts +2 -0
  3. package/dist/agent-sdk/src/agent.d.ts.map +1 -1
  4. package/dist/agent-sdk/src/define.d.ts +64 -0
  5. package/dist/agent-sdk/src/define.d.ts.map +1 -0
  6. package/dist/agent-sdk/src/define.js +76 -0
  7. package/dist/agent-sdk/src/define.js.map +1 -0
  8. package/dist/agent-sdk/src/index.d.ts +9 -0
  9. package/dist/agent-sdk/src/index.d.ts.map +1 -1
  10. package/dist/agent-sdk/src/index.js +9 -0
  11. package/dist/agent-sdk/src/index.js.map +1 -1
  12. package/dist/agent-sdk/src/scaffold.d.ts +11 -0
  13. package/dist/agent-sdk/src/scaffold.d.ts.map +1 -1
  14. package/dist/agent-sdk/src/scaffold.js +16 -6
  15. package/dist/agent-sdk/src/scaffold.js.map +1 -1
  16. package/dist/agents/agents/runner.d.ts +9 -0
  17. package/dist/agents/agents/runner.d.ts.map +1 -1
  18. package/dist/agents/agents/runner.js +34 -12
  19. package/dist/agents/agents/runner.js.map +1 -1
  20. package/dist/agents/agents/writer-tool-calling.d.ts.map +1 -1
  21. package/dist/agents/agents/writer-tool-calling.js +7 -2
  22. package/dist/agents/agents/writer-tool-calling.js.map +1 -1
  23. package/dist/agents/agents/writer.d.ts.map +1 -1
  24. package/dist/agents/agents/writer.js +7 -1
  25. package/dist/agents/agents/writer.js.map +1 -1
  26. package/dist/agents/artifact-verification.d.ts +102 -0
  27. package/dist/agents/artifact-verification.d.ts.map +1 -0
  28. package/dist/agents/artifact-verification.js +216 -0
  29. package/dist/agents/artifact-verification.js.map +1 -0
  30. package/dist/agents/checkpoint-store.d.ts +73 -0
  31. package/dist/agents/checkpoint-store.d.ts.map +1 -1
  32. package/dist/agents/checkpoint-store.js +161 -0
  33. package/dist/agents/checkpoint-store.js.map +1 -1
  34. package/dist/agents/credential-store.d.ts +120 -0
  35. package/dist/agents/credential-store.d.ts.map +1 -1
  36. package/dist/agents/credential-store.js +358 -19
  37. package/dist/agents/credential-store.js.map +1 -1
  38. package/dist/agents/long-form-plan.d.ts.map +1 -1
  39. package/dist/agents/long-form-plan.js +2 -1
  40. package/dist/agents/long-form-plan.js.map +1 -1
  41. package/dist/agents/orchestrator.d.ts +10 -1
  42. package/dist/agents/orchestrator.d.ts.map +1 -1
  43. package/dist/agents/orchestrator.js +239 -79
  44. package/dist/agents/orchestrator.js.map +1 -1
  45. package/dist/agents/phase-engine.d.ts +61 -0
  46. package/dist/agents/phase-engine.d.ts.map +1 -1
  47. package/dist/agents/phase-engine.js +68 -2
  48. package/dist/agents/phase-engine.js.map +1 -1
  49. package/dist/agents/prompt-assembly.d.ts +11 -0
  50. package/dist/agents/prompt-assembly.d.ts.map +1 -1
  51. package/dist/agents/prompt-assembly.js +17 -0
  52. package/dist/agents/prompt-assembly.js.map +1 -1
  53. package/dist/agents/release-preflight.d.ts +121 -0
  54. package/dist/agents/release-preflight.d.ts.map +1 -0
  55. package/dist/agents/release-preflight.js +259 -0
  56. package/dist/agents/release-preflight.js.map +1 -0
  57. package/dist/agents/release-runner.d.ts +157 -0
  58. package/dist/agents/release-runner.d.ts.map +1 -0
  59. package/dist/agents/release-runner.js +719 -0
  60. package/dist/agents/release-runner.js.map +1 -0
  61. package/dist/agents/step-handoff.d.ts +190 -0
  62. package/dist/agents/step-handoff.d.ts.map +1 -0
  63. package/dist/agents/step-handoff.js +443 -0
  64. package/dist/agents/step-handoff.js.map +1 -0
  65. package/dist/cli/agent.d.ts +2 -2
  66. package/dist/cli/agent.js +10 -10
  67. package/dist/cli/benchmark.d.ts.map +1 -1
  68. package/dist/cli/benchmark.js +11 -4
  69. package/dist/cli/benchmark.js.map +1 -1
  70. package/dist/cli/chat.d.ts +94 -0
  71. package/dist/cli/chat.d.ts.map +1 -1
  72. package/dist/cli/chat.js +379 -24
  73. package/dist/cli/chat.js.map +1 -1
  74. package/dist/cli/cli-program.d.ts.map +1 -1
  75. package/dist/cli/cli-program.js +8 -0
  76. package/dist/cli/cli-program.js.map +1 -1
  77. package/dist/cli/config.d.ts.map +1 -1
  78. package/dist/cli/config.js +9 -1
  79. package/dist/cli/config.js.map +1 -1
  80. package/dist/cli/credentials.d.ts +28 -0
  81. package/dist/cli/credentials.d.ts.map +1 -0
  82. package/dist/cli/credentials.js +213 -0
  83. package/dist/cli/credentials.js.map +1 -0
  84. package/dist/cli/doctor.d.ts.map +1 -1
  85. package/dist/cli/doctor.js +3 -2
  86. package/dist/cli/doctor.js.map +1 -1
  87. package/dist/cli/edit.js +2 -2
  88. package/dist/cli/eval.d.ts +17 -0
  89. package/dist/cli/eval.d.ts.map +1 -1
  90. package/dist/cli/eval.js +105 -2
  91. package/dist/cli/eval.js.map +1 -1
  92. package/dist/cli/execute.d.ts +16 -1
  93. package/dist/cli/execute.d.ts.map +1 -1
  94. package/dist/cli/execute.js +192 -22
  95. package/dist/cli/execute.js.map +1 -1
  96. package/dist/cli/failover-runner.d.ts.map +1 -1
  97. package/dist/cli/failover-runner.js +9 -3
  98. package/dist/cli/failover-runner.js.map +1 -1
  99. package/dist/cli/loop-executor.d.ts +55 -0
  100. package/dist/cli/loop-executor.d.ts.map +1 -1
  101. package/dist/cli/loop-executor.js +285 -19
  102. package/dist/cli/loop-executor.js.map +1 -1
  103. package/dist/cli/model.d.ts.map +1 -1
  104. package/dist/cli/model.js +9 -8
  105. package/dist/cli/model.js.map +1 -1
  106. package/dist/cli/models.d.ts +1 -1
  107. package/dist/cli/models.js +4 -4
  108. package/dist/cli/nlu.d.ts.map +1 -1
  109. package/dist/cli/nlu.js +8 -2
  110. package/dist/cli/nlu.js.map +1 -1
  111. package/dist/cli/parity.d.ts +85 -0
  112. package/dist/cli/parity.d.ts.map +1 -0
  113. package/dist/cli/parity.js +506 -0
  114. package/dist/cli/parity.js.map +1 -0
  115. package/dist/cli/plan.d.ts.map +1 -1
  116. package/dist/cli/plan.js +2 -1
  117. package/dist/cli/plan.js.map +1 -1
  118. package/dist/cli/publish.d.ts +22 -0
  119. package/dist/cli/publish.d.ts.map +1 -1
  120. package/dist/cli/publish.js +109 -13
  121. package/dist/cli/publish.js.map +1 -1
  122. package/dist/cli/retrieval.d.ts.map +1 -1
  123. package/dist/cli/retrieval.js +5 -4
  124. package/dist/cli/retrieval.js.map +1 -1
  125. package/dist/cli/sdk.js +4 -4
  126. package/dist/cli/sdk.js.map +1 -1
  127. package/dist/cli/trace.d.ts.map +1 -1
  128. package/dist/cli/trace.js +2 -1
  129. package/dist/cli/trace.js.map +1 -1
  130. package/dist/cli/workflow.js +2 -2
  131. package/dist/cli/workflow.js.map +1 -1
  132. package/dist/config/live-credentials.d.ts +57 -0
  133. package/dist/config/live-credentials.d.ts.map +1 -0
  134. package/dist/config/live-credentials.js +126 -0
  135. package/dist/config/live-credentials.js.map +1 -0
  136. package/dist/config/paths.d.ts +18 -0
  137. package/dist/config/paths.d.ts.map +1 -1
  138. package/dist/config/paths.js +25 -0
  139. package/dist/config/paths.js.map +1 -1
  140. package/dist/config/types.d.ts +44 -0
  141. package/dist/config/types.d.ts.map +1 -1
  142. package/dist/federation/a2a-types.js +1 -1
  143. package/dist/federation/a2a-types.js.map +1 -1
  144. package/dist/findings/verdicts.d.ts +241 -0
  145. package/dist/findings/verdicts.d.ts.map +1 -0
  146. package/dist/findings/verdicts.js +284 -0
  147. package/dist/findings/verdicts.js.map +1 -0
  148. package/dist/gateway/adapters.d.ts +65 -0
  149. package/dist/gateway/adapters.d.ts.map +1 -1
  150. package/dist/gateway/adapters.js +216 -10
  151. package/dist/gateway/adapters.js.map +1 -1
  152. package/dist/gateway/channel-directory.d.ts +31 -0
  153. package/dist/gateway/channel-directory.d.ts.map +1 -1
  154. package/dist/gateway/channel-directory.js +40 -0
  155. package/dist/gateway/channel-directory.js.map +1 -1
  156. package/dist/gateway/gateway-log.d.ts +1 -1
  157. package/dist/gateway/gateway-log.d.ts.map +1 -1
  158. package/dist/gateway/gateway-log.js.map +1 -1
  159. package/dist/gateway/hooks.d.ts +87 -19
  160. package/dist/gateway/hooks.d.ts.map +1 -1
  161. package/dist/gateway/hooks.js +62 -23
  162. package/dist/gateway/hooks.js.map +1 -1
  163. package/dist/gateway/inbound-media.d.ts +147 -0
  164. package/dist/gateway/inbound-media.d.ts.map +1 -0
  165. package/dist/gateway/inbound-media.js +317 -0
  166. package/dist/gateway/inbound-media.js.map +1 -0
  167. package/dist/gateway/inbox.d.ts +8 -1
  168. package/dist/gateway/inbox.d.ts.map +1 -1
  169. package/dist/gateway/inbox.js.map +1 -1
  170. package/dist/gateway/platform-config.d.ts +14 -0
  171. package/dist/gateway/platform-config.d.ts.map +1 -1
  172. package/dist/gateway/platform-config.js +26 -8
  173. package/dist/gateway/platform-config.js.map +1 -1
  174. package/dist/gateway/realtime.d.ts +114 -0
  175. package/dist/gateway/realtime.d.ts.map +1 -0
  176. package/dist/gateway/realtime.js +402 -0
  177. package/dist/gateway/realtime.js.map +1 -0
  178. package/dist/gateway/registry.d.ts +31 -0
  179. package/dist/gateway/registry.d.ts.map +1 -1
  180. package/dist/gateway/registry.js +224 -4
  181. package/dist/gateway/registry.js.map +1 -1
  182. package/dist/gateway/whatsapp/baileys-bridge.d.ts +11 -1
  183. package/dist/gateway/whatsapp/baileys-bridge.d.ts.map +1 -1
  184. package/dist/gateway/whatsapp/baileys-bridge.js +123 -4
  185. package/dist/gateway/whatsapp/baileys-bridge.js.map +1 -1
  186. package/dist/gateway/whatsapp/bridge.d.ts +6 -2
  187. package/dist/gateway/whatsapp/bridge.d.ts.map +1 -1
  188. package/dist/gateway/whatsapp/bridge.js.map +1 -1
  189. package/dist/index.js +8 -0
  190. package/dist/index.js.map +1 -1
  191. package/dist/inference/factory.d.ts +14 -0
  192. package/dist/inference/factory.d.ts.map +1 -1
  193. package/dist/inference/factory.js +17 -0
  194. package/dist/inference/factory.js.map +1 -1
  195. package/dist/inference/groq-adapter.d.ts +2 -0
  196. package/dist/inference/groq-adapter.d.ts.map +1 -1
  197. package/dist/inference/groq-adapter.js +16 -6
  198. package/dist/inference/groq-adapter.js.map +1 -1
  199. package/dist/inference/model-validator.d.ts +6 -1
  200. package/dist/inference/model-validator.d.ts.map +1 -1
  201. package/dist/inference/model-validator.js +7 -2
  202. package/dist/inference/model-validator.js.map +1 -1
  203. package/dist/inference/route-resolver.d.ts +116 -0
  204. package/dist/inference/route-resolver.d.ts.map +1 -0
  205. package/dist/inference/route-resolver.js +159 -0
  206. package/dist/inference/route-resolver.js.map +1 -0
  207. package/dist/inference/tools.d.ts.map +1 -1
  208. package/dist/inference/tools.js +29 -0
  209. package/dist/inference/tools.js.map +1 -1
  210. package/dist/learning/autonomy-policy.d.ts +18 -0
  211. package/dist/learning/autonomy-policy.d.ts.map +1 -1
  212. package/dist/learning/autonomy-policy.js +35 -0
  213. package/dist/learning/autonomy-policy.js.map +1 -1
  214. package/dist/learning/benchmark.d.ts.map +1 -1
  215. package/dist/learning/benchmark.js +3 -2
  216. package/dist/learning/benchmark.js.map +1 -1
  217. package/dist/learning/continuation.d.ts.map +1 -1
  218. package/dist/learning/continuation.js +2 -1
  219. package/dist/learning/continuation.js.map +1 -1
  220. package/dist/learning/cost-tracker.d.ts.map +1 -1
  221. package/dist/learning/cost-tracker.js +2 -1
  222. package/dist/learning/cost-tracker.js.map +1 -1
  223. package/dist/learning/deferred-task.d.ts.map +1 -1
  224. package/dist/learning/deferred-task.js +13 -4
  225. package/dist/learning/deferred-task.js.map +1 -1
  226. package/dist/learning/eval-framework.d.ts.map +1 -1
  227. package/dist/learning/eval-framework.js +2 -1
  228. package/dist/learning/eval-framework.js.map +1 -1
  229. package/dist/learning/long-form.d.ts.map +1 -1
  230. package/dist/learning/long-form.js +2 -1
  231. package/dist/learning/long-form.js.map +1 -1
  232. package/dist/learning/model-registry.d.ts.map +1 -1
  233. package/dist/learning/model-registry.js +2 -1
  234. package/dist/learning/model-registry.js.map +1 -1
  235. package/dist/learning/reasoning-cache.d.ts.map +1 -1
  236. package/dist/learning/reasoning-cache.js +2 -1
  237. package/dist/learning/reasoning-cache.js.map +1 -1
  238. package/dist/learning/reasoning-trace.d.ts +38 -2
  239. package/dist/learning/reasoning-trace.d.ts.map +1 -1
  240. package/dist/learning/reasoning-trace.js +91 -1
  241. package/dist/learning/reasoning-trace.js.map +1 -1
  242. package/dist/learning/resilient-call.d.ts.map +1 -1
  243. package/dist/learning/resilient-call.js +31 -18
  244. package/dist/learning/resilient-call.js.map +1 -1
  245. package/dist/learning/retrieval.d.ts.map +1 -1
  246. package/dist/learning/retrieval.js +2 -1
  247. package/dist/learning/retrieval.js.map +1 -1
  248. package/dist/learning/seeded-benchmark.d.ts +160 -0
  249. package/dist/learning/seeded-benchmark.d.ts.map +1 -0
  250. package/dist/learning/seeded-benchmark.js +321 -0
  251. package/dist/learning/seeded-benchmark.js.map +1 -0
  252. package/dist/learning/seeded-bugs.d.ts +142 -0
  253. package/dist/learning/seeded-bugs.d.ts.map +1 -0
  254. package/dist/learning/seeded-bugs.js +535 -0
  255. package/dist/learning/seeded-bugs.js.map +1 -0
  256. package/dist/learning/skill-store.d.ts.map +1 -1
  257. package/dist/learning/skill-store.js +30 -9
  258. package/dist/learning/skill-store.js.map +1 -1
  259. package/dist/learning/step-checkpoint.d.ts +127 -0
  260. package/dist/learning/step-checkpoint.d.ts.map +1 -0
  261. package/dist/learning/step-checkpoint.js +244 -0
  262. package/dist/learning/step-checkpoint.js.map +1 -0
  263. package/dist/mcp/catalog.js +2 -3
  264. package/dist/mcp/catalog.js.map +1 -1
  265. package/dist/mcp/manager.d.ts.map +1 -1
  266. package/dist/mcp/manager.js +5 -3
  267. package/dist/mcp/manager.js.map +1 -1
  268. package/dist/nlu/intent-confirm.d.ts +23 -1
  269. package/dist/nlu/intent-confirm.d.ts.map +1 -1
  270. package/dist/nlu/intent-confirm.js +85 -2
  271. package/dist/nlu/intent-confirm.js.map +1 -1
  272. package/dist/nlu/learnings.d.ts +7 -0
  273. package/dist/nlu/learnings.d.ts.map +1 -1
  274. package/dist/nlu/learnings.js +7 -0
  275. package/dist/nlu/learnings.js.map +1 -1
  276. package/dist/observability/debug-log.d.ts +250 -0
  277. package/dist/observability/debug-log.d.ts.map +1 -0
  278. package/dist/observability/debug-log.js +500 -0
  279. package/dist/observability/debug-log.js.map +1 -0
  280. package/dist/observability/event-bus.d.ts.map +1 -1
  281. package/dist/observability/event-bus.js +4 -1
  282. package/dist/observability/event-bus.js.map +1 -1
  283. package/dist/observability/otel.d.ts +278 -0
  284. package/dist/observability/otel.d.ts.map +1 -0
  285. package/dist/observability/otel.js +590 -0
  286. package/dist/observability/otel.js.map +1 -0
  287. package/dist/parity/drivers.d.ts +99 -0
  288. package/dist/parity/drivers.d.ts.map +1 -0
  289. package/dist/parity/drivers.js +1362 -0
  290. package/dist/parity/drivers.js.map +1 -0
  291. package/dist/parity/graph.d.ts +73 -0
  292. package/dist/parity/graph.d.ts.map +1 -0
  293. package/dist/parity/graph.js +162 -0
  294. package/dist/parity/graph.js.map +1 -0
  295. package/dist/parity/matrix.d.ts +105 -0
  296. package/dist/parity/matrix.d.ts.map +1 -0
  297. package/dist/parity/matrix.js +352 -0
  298. package/dist/parity/matrix.js.map +1 -0
  299. package/dist/parity/observation.d.ts +444 -0
  300. package/dist/parity/observation.d.ts.map +1 -0
  301. package/dist/parity/observation.js +333 -0
  302. package/dist/parity/observation.js.map +1 -0
  303. package/dist/parity/scenarios.d.ts +229 -0
  304. package/dist/parity/scenarios.d.ts.map +1 -0
  305. package/dist/parity/scenarios.js +175 -0
  306. package/dist/parity/scenarios.js.map +1 -0
  307. package/dist/parity/surfaces.d.ts +122 -0
  308. package/dist/parity/surfaces.d.ts.map +1 -0
  309. package/dist/parity/surfaces.js +190 -0
  310. package/dist/parity/surfaces.js.map +1 -0
  311. package/dist/runtime/fault-injection.d.ts +173 -0
  312. package/dist/runtime/fault-injection.d.ts.map +1 -0
  313. package/dist/runtime/fault-injection.js +281 -0
  314. package/dist/runtime/fault-injection.js.map +1 -0
  315. package/dist/skills/secret-capture.d.ts.map +1 -1
  316. package/dist/skills/secret-capture.js +9 -4
  317. package/dist/skills/secret-capture.js.map +1 -1
  318. package/dist/tools/child-agent-entry.d.ts +23 -0
  319. package/dist/tools/child-agent-entry.d.ts.map +1 -0
  320. package/dist/tools/child-agent-entry.js +129 -0
  321. package/dist/tools/child-agent-entry.js.map +1 -0
  322. package/dist/tools/child-agent-runtime.d.ts +124 -0
  323. package/dist/tools/child-agent-runtime.d.ts.map +1 -0
  324. package/dist/tools/child-agent-runtime.js +704 -0
  325. package/dist/tools/child-agent-runtime.js.map +1 -0
  326. package/dist/tools/coding-tools.d.ts.map +1 -1
  327. package/dist/tools/coding-tools.js +82 -10
  328. package/dist/tools/coding-tools.js.map +1 -1
  329. package/dist/tools/credentials-tool.d.ts +24 -0
  330. package/dist/tools/credentials-tool.d.ts.map +1 -0
  331. package/dist/tools/credentials-tool.js +125 -0
  332. package/dist/tools/credentials-tool.js.map +1 -0
  333. package/dist/tools/delegation-system.d.ts +31 -0
  334. package/dist/tools/delegation-system.d.ts.map +1 -1
  335. package/dist/tools/delegation-system.js +70 -9
  336. package/dist/tools/delegation-system.js.map +1 -1
  337. package/dist/tools/extract/docx.d.ts +27 -0
  338. package/dist/tools/extract/docx.d.ts.map +1 -0
  339. package/dist/tools/extract/docx.js +48 -0
  340. package/dist/tools/extract/docx.js.map +1 -0
  341. package/dist/tools/extract/html-text.d.ts +27 -0
  342. package/dist/tools/extract/html-text.d.ts.map +1 -0
  343. package/dist/tools/extract/html-text.js +86 -0
  344. package/dist/tools/extract/html-text.js.map +1 -0
  345. package/dist/tools/extract/pdf-ocr.d.ts +58 -0
  346. package/dist/tools/extract/pdf-ocr.d.ts.map +1 -0
  347. package/dist/tools/extract/pdf-ocr.js +116 -0
  348. package/dist/tools/extract/pdf-ocr.js.map +1 -0
  349. package/dist/tools/extract/pdf.d.ts +65 -0
  350. package/dist/tools/extract/pdf.d.ts.map +1 -0
  351. package/dist/tools/extract/pdf.js +197 -0
  352. package/dist/tools/extract/pdf.js.map +1 -0
  353. package/dist/tools/extract/pptx.d.ts +32 -0
  354. package/dist/tools/extract/pptx.d.ts.map +1 -0
  355. package/dist/tools/extract/pptx.js +77 -0
  356. package/dist/tools/extract/pptx.js.map +1 -0
  357. package/dist/tools/extract/xlsx.d.ts +47 -0
  358. package/dist/tools/extract/xlsx.d.ts.map +1 -0
  359. package/dist/tools/extract/xlsx.js +111 -0
  360. package/dist/tools/extract/xlsx.js.map +1 -0
  361. package/dist/tools/finding-tool.d.ts +76 -0
  362. package/dist/tools/finding-tool.d.ts.map +1 -0
  363. package/dist/tools/finding-tool.js +125 -0
  364. package/dist/tools/finding-tool.js.map +1 -0
  365. package/dist/tools/git-tool.d.ts +25 -7
  366. package/dist/tools/git-tool.d.ts.map +1 -1
  367. package/dist/tools/git-tool.js +155 -15
  368. package/dist/tools/git-tool.js.map +1 -1
  369. package/dist/tools/loop-project-context.d.ts.map +1 -1
  370. package/dist/tools/loop-project-context.js +16 -0
  371. package/dist/tools/loop-project-context.js.map +1 -1
  372. package/dist/tools/loop-route-feed.d.ts +57 -0
  373. package/dist/tools/loop-route-feed.d.ts.map +1 -0
  374. package/dist/tools/loop-route-feed.js +101 -0
  375. package/dist/tools/loop-route-feed.js.map +1 -0
  376. package/dist/tools/messaging-tools.d.ts +41 -11
  377. package/dist/tools/messaging-tools.d.ts.map +1 -1
  378. package/dist/tools/messaging-tools.js +104 -55
  379. package/dist/tools/messaging-tools.js.map +1 -1
  380. package/dist/tools/neutts-synth.d.ts +27 -3
  381. package/dist/tools/neutts-synth.d.ts.map +1 -1
  382. package/dist/tools/neutts-synth.js +57 -13
  383. package/dist/tools/neutts-synth.js.map +1 -1
  384. package/dist/tools/pipeline-tool.d.ts +43 -1
  385. package/dist/tools/pipeline-tool.d.ts.map +1 -1
  386. package/dist/tools/pipeline-tool.js +21 -4
  387. package/dist/tools/pipeline-tool.js.map +1 -1
  388. package/dist/tools/publish-tool.d.ts.map +1 -1
  389. package/dist/tools/publish-tool.js +76 -10
  390. package/dist/tools/publish-tool.js.map +1 -1
  391. package/dist/tools/read-extract.d.ts +116 -45
  392. package/dist/tools/read-extract.d.ts.map +1 -1
  393. package/dist/tools/read-extract.js +494 -158
  394. package/dist/tools/read-extract.js.map +1 -1
  395. package/dist/tools/registry.d.ts +23 -3
  396. package/dist/tools/registry.d.ts.map +1 -1
  397. package/dist/tools/registry.js +196 -29
  398. package/dist/tools/registry.js.map +1 -1
  399. package/dist/tools/run-terminal.d.ts +9 -0
  400. package/dist/tools/run-terminal.d.ts.map +1 -1
  401. package/dist/tools/run-terminal.js +80 -2
  402. package/dist/tools/run-terminal.js.map +1 -1
  403. package/dist/tools/subagent-refusal.d.ts +15 -0
  404. package/dist/tools/subagent-refusal.d.ts.map +1 -0
  405. package/dist/tools/subagent-refusal.js +18 -0
  406. package/dist/tools/subagent-refusal.js.map +1 -0
  407. package/dist/tools/subagent-spawner.d.ts +122 -0
  408. package/dist/tools/subagent-spawner.d.ts.map +1 -1
  409. package/dist/tools/subagent-spawner.js +249 -28
  410. package/dist/tools/subagent-spawner.js.map +1 -1
  411. package/dist/tools/tool-hooks.d.ts +177 -0
  412. package/dist/tools/tool-hooks.d.ts.map +1 -0
  413. package/dist/tools/tool-hooks.js +427 -0
  414. package/dist/tools/tool-hooks.js.map +1 -0
  415. package/dist/tools/tool-loop.d.ts +94 -5
  416. package/dist/tools/tool-loop.d.ts.map +1 -1
  417. package/dist/tools/tool-loop.js +315 -9
  418. package/dist/tools/tool-loop.js.map +1 -1
  419. package/dist/tools/tool-refusal.d.ts +68 -0
  420. package/dist/tools/tool-refusal.d.ts.map +1 -0
  421. package/dist/tools/tool-refusal.js +78 -0
  422. package/dist/tools/tool-refusal.js.map +1 -0
  423. package/dist/tools/toolsets.d.ts +8 -0
  424. package/dist/tools/toolsets.d.ts.map +1 -1
  425. package/dist/tools/toolsets.js +14 -4
  426. package/dist/tools/toolsets.js.map +1 -1
  427. package/dist/tools/vision-tools.d.ts +88 -83
  428. package/dist/tools/vision-tools.d.ts.map +1 -1
  429. package/dist/tools/vision-tools.js +134 -103
  430. package/dist/tools/vision-tools.js.map +1 -1
  431. package/dist/tools/worktree.d.ts +210 -0
  432. package/dist/tools/worktree.d.ts.map +1 -0
  433. package/dist/tools/worktree.js +374 -0
  434. package/dist/tools/worktree.js.map +1 -0
  435. package/dist/utils/format.d.ts +3 -0
  436. package/dist/utils/format.d.ts.map +1 -0
  437. package/dist/utils/format.js +32 -0
  438. package/dist/utils/format.js.map +1 -0
  439. package/dist/web-dashboard/attachment-extract.d.ts +64 -0
  440. package/dist/web-dashboard/attachment-extract.d.ts.map +1 -0
  441. package/dist/web-dashboard/attachment-extract.js +154 -0
  442. package/dist/web-dashboard/attachment-extract.js.map +1 -0
  443. package/dist/web-dashboard/chat-console.d.ts +108 -1
  444. package/dist/web-dashboard/chat-console.d.ts.map +1 -1
  445. package/dist/web-dashboard/chat-console.js +36 -0
  446. package/dist/web-dashboard/chat-console.js.map +1 -1
  447. package/dist/web-dashboard/hub-data.d.ts +37 -0
  448. package/dist/web-dashboard/hub-data.d.ts.map +1 -1
  449. package/dist/web-dashboard/hub-data.js +61 -1
  450. package/dist/web-dashboard/hub-data.js.map +1 -1
  451. package/dist/web-dashboard/server.d.ts +14 -0
  452. package/dist/web-dashboard/server.d.ts.map +1 -1
  453. package/dist/web-dashboard/server.js +247 -13
  454. package/dist/web-dashboard/server.js.map +1 -1
  455. package/dist/web-dashboard/src/types.d.ts +196 -48
  456. package/dist/web-dashboard/src/types.d.ts.map +1 -1
  457. package/dist/workflow/registry.js +1 -1
  458. package/dist/workflow/registry.js.map +1 -1
  459. package/package.json +22 -6
  460. package/src/web-dashboard/public/assets/{index-Cyd6tIew.css → index-XJjj2cBX.css} +1 -1
  461. package/src/web-dashboard/public/assets/index-YWF9FpwQ.js +207 -0
  462. package/src/web-dashboard/public/assets/index-YWF9FpwQ.js.map +1 -0
  463. package/src/web-dashboard/public/index.html +2 -2
  464. package/dist/tools/child-agent-worker.js +0 -212
  465. package/src/web-dashboard/public/assets/index-CjvoBhlz.js +0 -207
  466. package/src/web-dashboard/public/assets/index-CjvoBhlz.js.map +0 -1
@@ -20,6 +20,7 @@ import { existsSync, readFileSync, writeFileSync, mkdirSync, appendFileSync, rea
20
20
  import { join } from 'node:path';
21
21
  import { EventEmitter } from 'node:events';
22
22
  import { logger } from '../utils/logger.js';
23
+ import { refusalFields } from './tool-refusal.js';
23
24
  // ─── Delegation Manager ───────────────────────────────────────────────────
24
25
  const DELEGATION_DIR = join(resolveNuviraHome(), 'cache', 'delegation');
25
26
  const LIVE_LOG_DIR = join(DELEGATION_DIR, 'live');
@@ -40,6 +41,20 @@ export class DelegationManager extends EventEmitter {
40
41
  config = { ...DEFAULT_CONFIG };
41
42
  activeChildren = new Set();
42
43
  stallTimers = new Map();
44
+ /**
45
+ * The real child-task executor — an LLM-backed child agent that takes a task and
46
+ * returns its result text.
47
+ *
48
+ * Deliberately has NO built-in fallback. `executeTask` used to settle every task
49
+ * as `completed` with `result = 'Task completed: <goal>'` and never call a model,
50
+ * so a parent agent summarised a child's "result" that was only its own
51
+ * instructions echoed back — success reported for work that never ran. Without an
52
+ * executor wired in, delegation now refuses with `not_configured` and names the
53
+ * working path (`delegate`, which requires a resolved LLM in the loop).
54
+ *
55
+ * See TOOL_TRUTHFULNESS_TRACKER.md finding #4.
56
+ */
57
+ executor = null;
43
58
  constructor() {
44
59
  super();
45
60
  this.ensureDirectories();
@@ -47,6 +62,22 @@ export class DelegationManager extends EventEmitter {
47
62
  this.startStallMonitor();
48
63
  this.recoverCompletionQueue();
49
64
  }
65
+ // ─── Executor wiring ────────────────────────────────────────────
66
+ /**
67
+ * Wire a real child executor. Until one is set, every task fails fast with a
68
+ * typed `not_configured` result instead of a fabricated completion.
69
+ */
70
+ setExecutor(fn) {
71
+ this.executor = fn;
72
+ }
73
+ /** Whether a real child executor is wired (surfaced in the tool description). */
74
+ hasExecutor() {
75
+ return this.executor !== null;
76
+ }
77
+ /** Clear the executor — delegation goes back to refusing rather than simulating. */
78
+ clearExecutor() {
79
+ this.executor = null;
80
+ }
50
81
  // ─── Configuration ──────────────────────────────────────────────
51
82
  /** Update delegation configuration. */
52
83
  configure(config) {
@@ -199,12 +230,15 @@ export class DelegationManager extends EventEmitter {
199
230
  }
200
231
  this.delegations.get(delegationId).push(task);
201
232
  this.logEntry(taskId, 'lifecycle', `Task created: ${goal}`);
202
- if (task.mode === 'async') {
203
- // Background execution
204
- this.executeTask(taskId).catch((err) => {
205
- logger.error(`Delegation: Background task ${taskId} failed: ${err}`);
206
- });
207
- }
233
+ // Start execution for EVERY mode. `async` returns immediately (the caller polls
234
+ // or drains); sync/batch callers await the result through waitForCompletion().
235
+ //
236
+ // Only `async` used to start the task, so `delegate_system` action:"delegate"
237
+ // returned a task stuck at `pending` that never ran — an agent reading that JSON
238
+ // saw a delegation that had been accepted, while nothing was ever executed.
239
+ this.executeTask(taskId).catch((err) => {
240
+ logger.error(`Delegation: Task ${taskId} failed: ${err}`);
241
+ });
208
242
  return task;
209
243
  }
210
244
  /**
@@ -423,9 +457,33 @@ export class DelegationManager extends EventEmitter {
423
457
  task.startedAt = Date.now();
424
458
  this.activeChildren.add(taskId);
425
459
  this.logEntry(taskId, 'lifecycle', 'Task started');
460
+ // No executor → refuse before spending the retry budget. A retry cannot fix a
461
+ // missing executor, and reporting `completed` for it is the defect being fixed.
462
+ if (!this.executor) {
463
+ task.status = 'failed';
464
+ task.error =
465
+ 'No child executor is wired into DelegationManager, so this task did NOT run. ' +
466
+ 'Use the `delegate` tool — it spawns a real sub-agent through the resolved LLM in the loop.';
467
+ // Both alternatives RUN; that is the only reason either is named. `subagent`
468
+ // was removed here when P4.1 showed its spawn path could not execute at all
469
+ // (a refusal pointing at a path that performs no work is the defect this
470
+ // whole method exists to report) and is back now that it forks a real
471
+ // process, resolves a real provider and refuses instead of faking output.
472
+ Object.assign(task, refusalFields('not_configured', [
473
+ 'delegate — spawns a real sub-agent (requires a resolved LLM in the tool loop)',
474
+ 'subagent — spawns a real child process that resolves its own provider (requires a configured provider)',
475
+ ]));
476
+ task.completedAt = Date.now();
477
+ task.durationMs = task.completedAt - (task.startedAt || task.createdAt);
478
+ this.activeChildren.delete(taskId);
479
+ this.logEntry(taskId, 'error', `Task refused: ${task.error}`);
480
+ this.emit(`completed:${taskId}`, this.buildResult(task));
481
+ return;
482
+ }
426
483
  try {
427
484
  // Build system prompt
428
485
  const systemPrompt = this.buildSystemPrompt(task);
486
+ void systemPrompt;
429
487
  // Execute with retry
430
488
  let lastError;
431
489
  for (let attempt = 0; attempt <= task.maxRetries; attempt++) {
@@ -440,11 +498,12 @@ export class DelegationManager extends EventEmitter {
440
498
  return;
441
499
  }
442
500
  try {
443
- // Simulate task execution (in real implementation, this would call the LLM)
444
501
  this.logEntry(taskId, 'thinking', `Executing goal: ${task.goal}`);
445
- // For now, mark as completed
502
+ // Real execution: the injected executor owns the LLM call. Its own output
503
+ // is the result — never a string we synthesise from the goal.
504
+ const output = await this.executor(task);
446
505
  task.status = 'completed';
447
- task.result = `Task completed: ${task.goal}`;
506
+ task.result = output;
448
507
  task.completedAt = Date.now();
449
508
  task.durationMs = task.completedAt - (task.startedAt || task.createdAt);
450
509
  this.activeChildren.delete(taskId);
@@ -502,6 +561,8 @@ export class DelegationManager extends EventEmitter {
502
561
  durationMs: task.durationMs || 0,
503
562
  toolCalls: 0,
504
563
  summary: task.result || task.error || 'No result',
564
+ ...(task.code ? { code: task.code } : {}),
565
+ ...(task.alternatives ? { alternatives: task.alternatives } : {}),
505
566
  };
506
567
  }
507
568
  logEntry(taskId, type, content, metadata) {
@@ -1 +1 @@
1
- {"version":3,"file":"delegation-system.js","sourceRoot":"","sources":["../../src/tools/delegation-system.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC1G,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AA8D5C,6EAA6E;AAE7E,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;AACxE,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AAClD,MAAM,oBAAoB,GAAG,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;AAkBjE,MAAM,cAAc,GAAqB;IACvC,qBAAqB,EAAE,CAAC;IACxB,aAAa,EAAE,CAAC;IAChB,cAAc,EAAE,OAAO;IACvB,UAAU,EAAE,KAAK;IACjB,eAAe,EAAE,IAAI;IACrB,kBAAkB,EAAE,IAAI;CACzB,CAAC;AAEF,MAAM,OAAO,iBAAkB,SAAQ,YAAY;IACzC,KAAK,GAAgC,IAAI,GAAG,EAAE,CAAC;IAC/C,WAAW,GAAkC,IAAI,GAAG,EAAE,CAAC;IACvD,eAAe,GAAuB,EAAE,CAAC;IACzC,UAAU,GAAoC,IAAI,GAAG,EAAE,CAAC;IACxD,MAAM,GAAqB,EAAE,GAAG,cAAc,EAAE,CAAC;IACjD,cAAc,GAAgB,IAAI,GAAG,EAAE,CAAC;IACxC,WAAW,GAAgC,IAAI,GAAG,EAAE,CAAC;IAE7D;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAChC,CAAC;IAED,mEAAmE;IAEnE,uCAAuC;IACvC,SAAS,CAAC,MAAiC;QACzC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,qDAAqD,IAAI,CAAC,MAAM,CAAC,qBAAqB,cAAc,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;QAC7I,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,iCAAiC;IACjC,SAAS;QACP,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED,qCAAqC;IACrC,gBAAgB,CAAC,OAAgB;QAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,kCAAkC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;QAClF,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAClC,IAAI,OAAO,EAAE,CAAC;YACZ,2BAA2B;YAC3B,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACpC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBAC9B,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;oBAC1B,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,WAAW,EAAE,0BAA0B,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,iFAAiF;IACjF,QAAQ,CAAC,YAAqB;QAC5B,oBAAoB;QACpB,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC3B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC;QAC9D,CAAC;QACD,oBAAoB;QACpB,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAClE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,4BAA4B,IAAI,CAAC,MAAM,CAAC,qBAAqB,WAAW,EAAE,CAAC;QAC9G,CAAC;QACD,cAAc;QACd,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;YAC/C,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBACvC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,IAAI,CAAC,MAAM,CAAC,aAAa,sBAAsB,KAAK,EAAE,EAAE,CAAC;YAChH,CAAC;QACH,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,wCAAwC;IAChC,aAAa,CAAC,MAAc;QAClC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,GAAG,MAAM,CAAC;QACrB,OAAO,OAAO,EAAE,CAAC;YACf,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY;gBAAE,MAAM;YACvC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;YACpC,KAAK,EAAE,CAAC;QACV,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,+CAA+C;IAC/C,SAAS,CAAC,MAAc;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE,CAAC;YACtE,OAAO,KAAK,CAAC;QACf,CAAC;QACD,0DAA0D;QAC1D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,yDAAyD,CAAC,CAAC;QAC9F,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4CAA4C;IAC5C,aAAa,CAAC,MAAc;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;IAED,oEAAoE;IAE5D,iBAAiB;QACvB,uCAAuC;QACvC,WAAW,CAAC,GAAG,EAAE;YACf,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACpC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;oBAAE,SAAS;gBACxC,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;gBAC1E,IAAI,GAAG,GAAG,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;oBACpD,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;oBACxB,IAAI,CAAC,KAAK,GAAG,eAAe,CAAC,GAAG,GAAG,YAAY,CAAC,GAAG,IAAI,iBAAiB,CAAC;oBACzE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC3C,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAC/B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;QACH,CAAC,EAAE,MAAM,CAAC,CAAC;IACb,CAAC;IAED,yCAAyC;IACzC,mBAAmB;QACjB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;IAClC,CAAC;IAED,4DAA4D;IAC5D,YAAY,CAAC,MAAc;QACzB,MAAM,IAAI,GAAuD,EAAE,CAAC;QACpE,IAAI,OAAO,GAAG,MAAM,CAAC;QACrB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,OAAO,EAAE,CAAC;YACf,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI;gBAAE,MAAM;YACjB,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACtD,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;YAC1C,KAAK,EAAE,CAAC;QACV,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qEAAqE;IAErE;;OAEG;IACH,KAAK,CAAC,QAAQ,CACZ,IAAY,EACZ,UAUI,EAAE;QAEN,4DAA4D;QAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,iBAAiB,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,YAAY,GAAG,UAAU,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAE5B,MAAM,IAAI,GAAmB;YAC3B,EAAE,EAAE,MAAM;YACV,YAAY;YACZ,IAAI;YACJ,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,MAAM;YAC5B,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,SAAS;YACzC,OAAO,EAAE;gBACP,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC;gBACnC,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,EAAE;gBACxC,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE;aACjC;YACD,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC;SACpC,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAE3B,0BAA0B;QAC1B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAE5D,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1B,uBAAuB;YACvB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACrC,MAAM,CAAC,KAAK,CAAC,+BAA+B,MAAM,YAAY,GAAG,EAAE,CAAC,CAAC;YACvE,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CACjB,KAAe,EACf,UAII,EAAE;QAEN,MAAM,KAAK,GAAqB,EAAE,CAAC;QACnC,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC;QAEnD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;gBACrC,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QAED,6CAA6C;QAC7C,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAEjE,oDAAoD;QACpD,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,cAAc,EAAE,CAAC;YAC1D,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAC3E,CAAC;QAED,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,MAAc;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,YAAoB;QACrC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAc;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QAExB,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAE1E,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,MAAc,EAAE,YAAoB,OAAO;QACjE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBACpC,OAAO;YACT,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC5D,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChC,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,IAAI,CAAC,cAAc,CAAC,aAAa,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC;gBACvD,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;YACtD,CAAC,EAAE,SAAS,CAAC,CAAC;YAEd,MAAM,UAAU,GAAG,CAAC,MAAwB,EAAE,EAAE;gBAC9C,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC,CAAC;YAEF,IAAI,CAAC,IAAI,CAAC,aAAa,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,sEAAsE;IAEtE;;OAEG;IACH,UAAU,CAAC,MAAc;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,EAAE,CAAC;QAEpC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC/C,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACtD,IAAI,CAAC;oBACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC1B,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAe,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,MAAc,EAAE,QAAmC;QAChE,MAAM,OAAO,GAAG,CAAC,KAAe,EAAE,EAAE;YAClC,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM;gBAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC,CAAC;QACF,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACxB,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,MAAc;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,CAAC;QACpD,MAAM,OAAO,GAAe,EAAE,CAAC;QAC/B,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,KAAK,SAAS,CAAC,CAAC,SAAS;YACvB,OAAO,IAAI,EAAE,CAAC;gBACZ,OAAO,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;oBAC/B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;oBACzD,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;wBACxB,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;wBAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;wBAClD,OAAO,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;4BACrC,IAAI,CAAC;gCACH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BAClD,CAAC;4BAAC,MAAM,CAAC;gCACP,MAAM;4BACR,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,OAAO,SAAS,EAAE,CAAC;IACrB,CAAC;IAED,sEAAsE;IAEtE;;OAEG;IACH,qBAAqB;QACnB,OAAO,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,MAAc;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QACvE,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAC7B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9C,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,sEAAsE;IAE9D,YAAY,GAAmC,IAAI,GAAG,EAAE,CAAC;IAEjE;;OAEG;IACH,mBAAmB,CAAC,MAAyB;QAC3C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CACnB,QAAgB,EAChB,IAA6B;QAE7B,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,QAAQ,aAAa,EAAE,CAAC;QAC3E,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE;gBAC5C,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACvE;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC1B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC;aACtD,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,QAAQ,CAAC,MAAM,KAAK,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;YACxF,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAChD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,sEAAsE;IAE9D,KAAK,CAAC,WAAW,CAAC,MAAc;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;QAEnD,IAAI,CAAC;YACH,sBAAsB;YACtB,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAElD,qBAAqB;YACrB,IAAI,SAA6B,CAAC;YAClC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;gBAC5D,0CAA0C;gBAC1C,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC/B,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;oBAC1B,IAAI,CAAC,KAAK,GAAG,uBAAuB,CAAC;oBACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAC9B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,4BAA4B,CAAC,CAAC;oBACjE,IAAI,CAAC,IAAI,CAAC,aAAa,MAAM,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;oBACzD,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC;oBACH,4EAA4E;oBAC5E,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,mBAAmB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;oBAElE,6BAA6B;oBAC7B,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;oBAC1B,IAAI,CAAC,MAAM,GAAG,mBAAmB,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC7C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;oBACxE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAEnC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;oBACrD,IAAI,CAAC,IAAI,CAAC,aAAa,MAAM,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;oBAEzD,0BAA0B;oBAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;oBAClD,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAC3B,OAAO;gBACT,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;oBACxB,IAAI,CAAC,UAAU,EAAE,CAAC;oBAClB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,OAAO,GAAG,CAAC,YAAY,SAAS,EAAE,CAAC,CAAC;oBAE9E,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;wBAC9B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC5E,CAAC;gBACH,CAAC;YACH,CAAC;YAED,wBAAwB;YACxB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;YACvB,IAAI,CAAC,KAAK,GAAG,gBAAgB,IAAI,CAAC,UAAU,aAAa,SAAS,EAAE,CAAC;YACrE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC9B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,gBAAgB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,IAAI,CAAC,aAAa,MAAM,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAE3D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;YACvB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC9B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,IAAI,CAAC,aAAa,MAAM,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,IAAoB;QAC5C,MAAM,KAAK,GAAG;YACZ,mCAAmC,IAAI,CAAC,IAAI,EAAE;YAC9C,EAAE;YACF,eAAe,IAAI,CAAC,SAAS,EAAE;YAC/B,aAAa,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC/C,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YACpG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,0BAA0B,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE;SACvF,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAElB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAEO,WAAW,CAAC,IAAoB;QACtC,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,OAAO,EAAE,IAAI,CAAC,MAAM,KAAK,WAAW;YACpC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,CAAC;YAChC,SAAS,EAAE,CAAC;YACZ,OAAO,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,IAAI,WAAW;SAClD,CAAC;IACJ,CAAC;IAEO,QAAQ,CAAC,MAAc,EAAE,IAAkB,EAAE,OAAe,EAAE,QAAkC;QACtG,MAAM,KAAK,GAAa;YACtB,MAAM;YACN,IAAI;YACJ,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,QAAQ;SACT,CAAC;QAEF,oBAAoB;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC;YACH,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAExB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1B,CAAC;IAEO,aAAa,CAAC,MAAc;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;gBAAE,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5E,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;IAEO,iBAAiB;QACvB,KAAK,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,YAAY,EAAE,oBAAoB,CAAC,EAAE,CAAC;YACvE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAEO,gBAAgB;QACtB,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC;gBAAE,OAAO;YAC9C,MAAM,KAAK,GAAG,WAAW,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YACnF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;oBACrE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAqB,CAAC;oBACpD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACpC,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC;YACH,oBAAoB;YACpB,IAAI,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC;gBACrC,MAAM,KAAK,GAAG,WAAW,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;gBACnF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,IAAI,CAAC;wBACH,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC,CAAC;oBAClE,CAAC;oBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;YAED,qBAAqB;YACrB,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,EAAE,GAAG,UAAU,CAAC,MAAM,OAAO,CAAC,CAAC;gBACzE,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;IAEO,sBAAsB;QAC5B,6DAA6D;QAC7D,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;CACF;AAED,6EAA6E;AAE7E,IAAI,SAAS,GAA6B,IAAI,CAAC;AAE/C,MAAM,UAAU,oBAAoB;IAClC,IAAI,CAAC,SAAS;QAAE,SAAS,GAAG,IAAI,iBAAiB,EAAE,CAAC;IACpD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,IAAI,SAAS,EAAE,CAAC;QACd,SAAS,CAAC,kBAAkB,EAAE,CAAC;QAC/B,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"delegation-system.js","sourceRoot":"","sources":["../../src/tools/delegation-system.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * DOCX text extraction via `mammoth`.
3
+ *
4
+ * A `.docx` is a ZIP of XML parts — reading it as UTF-8 and stripping tags
5
+ * (the old implementation) recovers the container, not the words. Mammoth parses
6
+ * the OOXML properly, so it resolves styles, numbering and tables, and reports the
7
+ * parts it could not represent.
8
+ *
9
+ * Mammoth's HTML output is then run through `htmlToText`, which keeps table cells
10
+ * on one line separated by ` | ` — the shape a reader needs to pair a value with
11
+ * its reference range. Mammoth's own markdown output was not used because it does
12
+ * not represent tables.
13
+ */
14
+ export interface DocxExtractResult {
15
+ text: string;
16
+ /** Non-fatal problems mammoth reported (unsupported styles, etc.). */
17
+ warnings: string[];
18
+ truncated: boolean;
19
+ }
20
+ /** Thrown when the bytes are not a readable DOCX. */
21
+ export declare class DocxExtractError extends Error {
22
+ constructor(message: string);
23
+ }
24
+ export declare function extractDocxText(bytes: Buffer, opts: {
25
+ maxChars: number;
26
+ }): Promise<DocxExtractResult>;
27
+ //# sourceMappingURL=docx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docx.d.ts","sourceRoot":"","sources":["../../../src/tools/extract/docx.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,qDAAqD;AACrD,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GACzB,OAAO,CAAC,iBAAiB,CAAC,CAiC5B"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * DOCX text extraction via `mammoth`.
3
+ *
4
+ * A `.docx` is a ZIP of XML parts — reading it as UTF-8 and stripping tags
5
+ * (the old implementation) recovers the container, not the words. Mammoth parses
6
+ * the OOXML properly, so it resolves styles, numbering and tables, and reports the
7
+ * parts it could not represent.
8
+ *
9
+ * Mammoth's HTML output is then run through `htmlToText`, which keeps table cells
10
+ * on one line separated by ` | ` — the shape a reader needs to pair a value with
11
+ * its reference range. Mammoth's own markdown output was not used because it does
12
+ * not represent tables.
13
+ */
14
+ import { htmlToText } from './html-text.js';
15
+ /** Thrown when the bytes are not a readable DOCX. */
16
+ export class DocxExtractError extends Error {
17
+ constructor(message) {
18
+ super(message);
19
+ this.name = 'DocxExtractError';
20
+ }
21
+ }
22
+ export async function extractDocxText(bytes, opts) {
23
+ const mod = await import('mammoth');
24
+ const convertToHtml = mod.default?.convertToHtml
25
+ ?? mod.convertToHtml;
26
+ if (typeof convertToHtml !== 'function') {
27
+ throw new DocxExtractError('The DOCX reader (mammoth) did not load correctly.');
28
+ }
29
+ let value;
30
+ let messages;
31
+ try {
32
+ const result = await convertToHtml({ buffer: bytes });
33
+ value = result.value;
34
+ messages = result.messages ?? [];
35
+ }
36
+ catch (err) {
37
+ const msg = err instanceof Error ? err.message : String(err);
38
+ throw new DocxExtractError(`The DOCX could not be read: ${msg}`);
39
+ }
40
+ const full = htmlToText(value);
41
+ const truncated = full.length > opts.maxChars;
42
+ return {
43
+ text: truncated ? `${full.slice(0, opts.maxChars)}\n…[truncated]` : full,
44
+ warnings: messages.map((m) => (typeof m === 'string' ? m : JSON.stringify(m))).slice(0, 10),
45
+ truncated,
46
+ };
47
+ }
48
+ //# sourceMappingURL=docx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docx.js","sourceRoot":"","sources":["../../../src/tools/extract/docx.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAS5C,qDAAqD;AACrD,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAa,EACb,IAA0B;IAM1B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IACpC,MAAM,aAAa,GAChB,GAAkE,CAAC,OAAO,EAAE,aAAa;WACtF,GAAG,CAAC,aAAsD,CAAC;IAEjE,IAAI,OAAO,aAAa,KAAK,UAAU,EAAE,CAAC;QACxC,MAAM,IAAI,gBAAgB,CAAC,mDAAmD,CAAC,CAAC;IAClF,CAAC;IAED,IAAI,KAAa,CAAC;IAClB,IAAI,QAAmB,CAAC;IACxB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACtD,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACrB,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;IACnC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,IAAI,gBAAgB,CAAC,+BAA+B,GAAG,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;IAE9C,OAAO;QACL,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI;QACxE,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QAC3F,SAAS;KACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Structure-preserving HTML → text, plus the entity decoding the XML formats share.
3
+ *
4
+ * This is deliberately NOT `replace(/<[^>]+>/g, ' ')`. Flattening tags to spaces
5
+ * (what `extractHTML` used to do) throws away the row/column structure — the one
6
+ * thing a table-shaped document is made of. A lab report read that way gives the
7
+ * model every value with no idea which reference range it belongs to, and an
8
+ * agent asked to assess it is left guessing at the pairing.
9
+ *
10
+ * So cells stay on one line separated by ` | `, rows become lines, paragraphs
11
+ * become lines, and entities are decoded. Lossy in layout terms, faithful in
12
+ * value-to-value terms — which is the pairing that matters.
13
+ */
14
+ /**
15
+ * Decode XML/HTML entities: named, decimal (`&#65;`) and hex (`&#x41;`).
16
+ * Exported because the PPTX reader needs the same decoding for `<a:t>` runs.
17
+ */
18
+ export declare function decodeEntities(input: string): string;
19
+ /**
20
+ * Convert an HTML fragment to text, keeping tabular structure.
21
+ *
22
+ * Block-level closes emit a newline; cell closes emit a column separator; `<li>`
23
+ * becomes a bullet. Runs of spaces are collapsed (tags leave gaps behind) and
24
+ * blank lines are collapsed to at most one.
25
+ */
26
+ export declare function htmlToText(html: string): string;
27
+ //# sourceMappingURL=html-text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-text.d.ts","sourceRoot":"","sources":["../../../src/tools/extract/html-text.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAoBH;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAapD;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAkC/C"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Structure-preserving HTML → text, plus the entity decoding the XML formats share.
3
+ *
4
+ * This is deliberately NOT `replace(/<[^>]+>/g, ' ')`. Flattening tags to spaces
5
+ * (what `extractHTML` used to do) throws away the row/column structure — the one
6
+ * thing a table-shaped document is made of. A lab report read that way gives the
7
+ * model every value with no idea which reference range it belongs to, and an
8
+ * agent asked to assess it is left guessing at the pairing.
9
+ *
10
+ * So cells stay on one line separated by ` | `, rows become lines, paragraphs
11
+ * become lines, and entities are decoded. Lossy in layout terms, faithful in
12
+ * value-to-value terms — which is the pairing that matters.
13
+ */
14
+ /** Named entities that actually appear in document XML/HTML. */
15
+ const NAMED_ENTITIES = {
16
+ amp: '&',
17
+ lt: '<',
18
+ gt: '>',
19
+ quot: '"',
20
+ apos: "'",
21
+ nbsp: ' ',
22
+ '#39': "'",
23
+ mdash: '—',
24
+ ndash: '–',
25
+ hellip: '…',
26
+ rsquo: '\u2019',
27
+ lsquo: '\u2018',
28
+ rdquo: '\u201d',
29
+ ldquo: '\u201c',
30
+ };
31
+ /**
32
+ * Decode XML/HTML entities: named, decimal (`&#65;`) and hex (`&#x41;`).
33
+ * Exported because the PPTX reader needs the same decoding for `<a:t>` runs.
34
+ */
35
+ export function decodeEntities(input) {
36
+ return input.replace(/&(#x?[0-9a-fA-F]+|[a-zA-Z]+);/g, (whole, body) => {
37
+ if (body.startsWith('#x') || body.startsWith('#X')) {
38
+ const cp = Number.parseInt(body.slice(2), 16);
39
+ return Number.isFinite(cp) && cp > 0 ? String.fromCodePoint(cp) : whole;
40
+ }
41
+ if (body.startsWith('#')) {
42
+ const cp = Number.parseInt(body.slice(1), 10);
43
+ return Number.isFinite(cp) && cp > 0 ? String.fromCodePoint(cp) : whole;
44
+ }
45
+ const named = NAMED_ENTITIES[body.toLowerCase()];
46
+ return named ?? whole;
47
+ });
48
+ }
49
+ /**
50
+ * Convert an HTML fragment to text, keeping tabular structure.
51
+ *
52
+ * Block-level closes emit a newline; cell closes emit a column separator; `<li>`
53
+ * becomes a bullet. Runs of spaces are collapsed (tags leave gaps behind) and
54
+ * blank lines are collapsed to at most one.
55
+ */
56
+ export function htmlToText(html) {
57
+ let s = html
58
+ .replace(/<script[^>]*>[\s\S]*?<\/script>/gi, '')
59
+ .replace(/<style[^>]*>[\s\S]*?<\/style>/gi, '')
60
+ .replace(/<!--[\s\S]*?-->/g, '');
61
+ // Structural replacements, most specific first.
62
+ s = s
63
+ .replace(/<br\s*\/?>/gi, '\n')
64
+ .replace(/<\/(td|th)\s*>/gi, ' | ')
65
+ .replace(/<li[^>]*>/gi, '\n- ')
66
+ .replace(/<\/(p|div|tr|li|h[1-6]|blockquote|pre|section|article|header|footer|figcaption)\s*>/gi, '\n');
67
+ // Everything else is markup; drop it.
68
+ s = s.replace(/<[^>]+>/g, '');
69
+ // Decode AFTER tag removal so an encoded `&lt;b&gt;` in the document is not
70
+ // mistaken for markup.
71
+ s = decodeEntities(s);
72
+ // A block INSIDE a cell (mammoth emits `<td><p>Glucose</p></td>`) leaves the cell
73
+ // separator on the following line. Pull it back up, so the cell's text and its
74
+ // separator stay on one line — otherwise every table row reads as its cells on
75
+ // separate lines and the value/column pairing is lost.
76
+ s = s
77
+ .replace(/\n[ \t]*\|/g, ' | ') // newline before a separator
78
+ .replace(/\|[ \t]*\n/g, ' |\n'); // separator before a newline (row end)
79
+ return s
80
+ .split('\n')
81
+ .map((line) => line.replace(/[ \t\u00a0]+/g, ' ').replace(/\s*\|\s*$/, '').trim())
82
+ .join('\n')
83
+ .replace(/\n{3,}/g, '\n\n')
84
+ .trim();
85
+ }
86
+ //# sourceMappingURL=html-text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-text.js","sourceRoot":"","sources":["../../../src/tools/extract/html-text.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Scanned-PDF OCR route (P1.4) — text recovery for a PDF with no text layer.
3
+ *
4
+ * Rendering a PDF page to a raster needs a canvas. pdf.js in Node renders to a canvas
5
+ * it does not ship, so the options were a native canvas package (a platform binary on
6
+ * every install, for a path most documents never need) or an external rasteriser.
7
+ * This uses Poppler's `pdftoppm` / `pdftocairo` **when it exists on PATH** — the same
8
+ * `binaryOnPath` probe idiom `modality/browser.ts` uses for Playwright — and refuses
9
+ * with `not_configured` when it does not, naming what to install.
10
+ *
11
+ * It is deliberately OPT-IN (the `ocr` flag on read_extract) rather than automatic:
12
+ * this path costs a vision-model call per page and produces transcribed, not parsed,
13
+ * text. A caller that did not ask for that should not silently pay for it — and the
14
+ * refusal for a scanned PDF says exactly how to ask.
15
+ *
16
+ * The text recovered here is labelled (`metadata.ocr: true` plus a warning), because
17
+ * a transcription is a different kind of evidence from an extraction: it can drop or
18
+ * misread a digit, and the model reading a lab value needs to know that.
19
+ */
20
+ import { type VisionOptions } from '../modality/vision.js';
21
+ /** Bounded so a 40-page scan cannot turn into 40 vision calls on one tool step. */
22
+ export declare const MAX_OCR_PAGES = 8;
23
+ export interface PdfOcrOptions {
24
+ /** Injectable renderer probe (tests pass one; production uses PATH). */
25
+ renderProbe?: (bin: string) => boolean;
26
+ /** Vision backend options (probe is injectable for tests). */
27
+ vision?: VisionOptions;
28
+ /** Max pages to transcribe (default MAX_OCR_PAGES). */
29
+ maxPages?: number;
30
+ /** Raster resolution (default 150 dpi — enough for body text without huge images). */
31
+ dpi?: number;
32
+ }
33
+ /** The rasteriser this machine can use, or null. */
34
+ export declare function findRenderer(probe?: (bin: string) => boolean): string | null;
35
+ /** Whether the OCR route could run here: a rasteriser AND a vision backend. */
36
+ export declare function isPdfOcrAvailable(opts?: PdfOcrOptions): Promise<boolean>;
37
+ export interface PdfOcrResult {
38
+ text: string;
39
+ /** Pages actually transcribed. */
40
+ pagesTranscribed: number;
41
+ /** Pages the document had, when the caller knows it. */
42
+ truncated: boolean;
43
+ /** The renderer used, for provenance. */
44
+ renderer: string;
45
+ }
46
+ export declare class PdfOcrError extends Error {
47
+ readonly code: 'not_configured' | 'unavailable';
48
+ constructor(message: string, code: 'not_configured' | 'unavailable');
49
+ }
50
+ /**
51
+ * Render up to `maxPages` pages of `pdfPath` and transcribe them with the vision
52
+ * backend, returning the concatenated text.
53
+ *
54
+ * Throws `PdfOcrError` with a typed code when a prerequisite is missing, so the
55
+ * caller can turn it into a refusal with alternatives rather than a bare message.
56
+ */
57
+ export declare function ocrScannedPdf(pdfPath: string, totalPages: number, opts?: PdfOcrOptions): Promise<PdfOcrResult>;
58
+ //# sourceMappingURL=pdf-ocr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf-ocr.d.ts","sourceRoot":"","sources":["../../../src/tools/extract/pdf-ocr.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAQH,OAAO,EAAoC,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAe7F,mFAAmF;AACnF,eAAO,MAAM,aAAa,IAAI,CAAC;AAE/B,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,8DAA8D;IAC9D,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sFAAsF;IACtF,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,oDAAoD;AACpD,wBAAgB,YAAY,CAAC,KAAK,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAsB,GAAG,MAAM,GAAG,IAAI,CAK1F;AAED,+EAA+E;AAC/E,wBAAsB,iBAAiB,CAAC,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAIlF;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,gBAAgB,EAAE,MAAM,CAAC;IACzB,wDAAwD;IACxD,SAAS,EAAE,OAAO,CAAC;IACnB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,WAAY,SAAQ,KAAK;IACP,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,aAAa;gBAAhE,OAAO,EAAE,MAAM,EAAW,IAAI,EAAE,gBAAgB,GAAG,aAAa;CAI7E;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC,YAAY,CAAC,CAmEvB"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Scanned-PDF OCR route (P1.4) — text recovery for a PDF with no text layer.
3
+ *
4
+ * Rendering a PDF page to a raster needs a canvas. pdf.js in Node renders to a canvas
5
+ * it does not ship, so the options were a native canvas package (a platform binary on
6
+ * every install, for a path most documents never need) or an external rasteriser.
7
+ * This uses Poppler's `pdftoppm` / `pdftocairo` **when it exists on PATH** — the same
8
+ * `binaryOnPath` probe idiom `modality/browser.ts` uses for Playwright — and refuses
9
+ * with `not_configured` when it does not, naming what to install.
10
+ *
11
+ * It is deliberately OPT-IN (the `ocr` flag on read_extract) rather than automatic:
12
+ * this path costs a vision-model call per page and produces transcribed, not parsed,
13
+ * text. A caller that did not ask for that should not silently pay for it — and the
14
+ * refusal for a scanned PDF says exactly how to ask.
15
+ *
16
+ * The text recovered here is labelled (`metadata.ocr: true` plus a warning), because
17
+ * a transcription is a different kind of evidence from an extraction: it can drop or
18
+ * misread a digit, and the model reading a lab value needs to know that.
19
+ */
20
+ import { execFile } from 'node:child_process';
21
+ import { promisify } from 'node:util';
22
+ import { readdirSync, rmSync } from 'node:fs';
23
+ import { join } from 'node:path';
24
+ import { artifactsDir, binaryOnPath } from '../modality/shared.js';
25
+ import { describeImage, isVisionAvailable } from '../modality/vision.js';
26
+ const execFileAsync = promisify(execFile);
27
+ /** Rasterisers, in preference order. `pdftocairo` gives PNG directly on more builds. */
28
+ const RENDERERS = [
29
+ { bin: 'pdftoppm', args: (r) => ['-r', String(r), '-png'] },
30
+ { bin: 'pdftocairo', args: (r) => ['-png', '-r', String(r)] },
31
+ ];
32
+ /** Prompt for OCR-via-vision-model: the text ONLY, nothing else. */
33
+ const OCR_PAGE_PROMPT = 'Transcribe ALL visible text in this image exactly as it appears, preserving line breaks and table '
34
+ + 'rows/columns. Output only the transcription, with no preamble and no commentary.';
35
+ /** Bounded so a 40-page scan cannot turn into 40 vision calls on one tool step. */
36
+ export const MAX_OCR_PAGES = 8;
37
+ /** The rasteriser this machine can use, or null. */
38
+ export function findRenderer(probe = binaryOnPath) {
39
+ for (const r of RENDERERS) {
40
+ if (probe(r.bin))
41
+ return r.bin;
42
+ }
43
+ return null;
44
+ }
45
+ /** Whether the OCR route could run here: a rasteriser AND a vision backend. */
46
+ export async function isPdfOcrAvailable(opts = {}) {
47
+ const probe = opts.renderProbe ?? binaryOnPath;
48
+ if (findRenderer(probe) === null)
49
+ return false;
50
+ return isVisionAvailable(opts.vision ?? {});
51
+ }
52
+ export class PdfOcrError extends Error {
53
+ code;
54
+ constructor(message, code) {
55
+ super(message);
56
+ this.code = code;
57
+ this.name = 'PdfOcrError';
58
+ }
59
+ }
60
+ /**
61
+ * Render up to `maxPages` pages of `pdfPath` and transcribe them with the vision
62
+ * backend, returning the concatenated text.
63
+ *
64
+ * Throws `PdfOcrError` with a typed code when a prerequisite is missing, so the
65
+ * caller can turn it into a refusal with alternatives rather than a bare message.
66
+ */
67
+ export async function ocrScannedPdf(pdfPath, totalPages, opts = {}) {
68
+ const probe = opts.renderProbe ?? binaryOnPath;
69
+ const renderer = findRenderer(probe);
70
+ if (renderer === null) {
71
+ throw new PdfOcrError('No PDF rasteriser is available, so the pages cannot be turned into images for OCR '
72
+ + '(install Poppler: `pdftoppm` / `pdftocairo`).', 'not_configured');
73
+ }
74
+ if (!(await isVisionAvailable(opts.vision ?? {}))) {
75
+ throw new PdfOcrError('No vision backend is configured (a local Ollama vision model such as llava/llama3.2-vision, '
76
+ + 'or a Gemini API key), so there is nothing to transcribe the rendered pages with.', 'not_configured');
77
+ }
78
+ const dpi = opts.dpi ?? 150;
79
+ const maxPages = opts.maxPages ?? MAX_OCR_PAGES;
80
+ const pages = Math.max(1, Math.min(totalPages || 1, maxPages));
81
+ const dir = artifactsDir('ocr');
82
+ const prefix = join(dir, `scan-${Date.now().toString(36)}`);
83
+ try {
84
+ const spec = RENDERERS.find((r) => r.bin === renderer);
85
+ await execFileAsync(renderer, [...spec.args(dpi), '-f', '1', '-l', String(pages), pdfPath, prefix], { timeout: 120_000, maxBuffer: 8 * 1024 * 1024 });
86
+ const images = readdirSync(dir)
87
+ .filter((f) => f.startsWith(`${prefix.split('/').pop()}`) && /\.(png|jpe?g)$/i.test(f))
88
+ .sort()
89
+ .map((f) => join(dir, f));
90
+ if (images.length === 0) {
91
+ throw new PdfOcrError('The rasteriser produced no images for this PDF.', 'unavailable');
92
+ }
93
+ const parts = [];
94
+ for (let i = 0; i < images.length; i++) {
95
+ const described = await describeImage(images[i], OCR_PAGE_PROMPT, opts.vision ?? {});
96
+ if (!described.ok || !described.description) {
97
+ throw new PdfOcrError(`The vision backend could not read page ${i + 1}: ${described.error ?? 'no output'}`, 'unavailable');
98
+ }
99
+ parts.push(`[Page ${i + 1} — transcribed by OCR]\n${described.description.trim()}`);
100
+ }
101
+ return {
102
+ text: parts.join('\n\n'),
103
+ pagesTranscribed: images.length,
104
+ truncated: (totalPages || images.length) > images.length,
105
+ renderer,
106
+ };
107
+ }
108
+ finally {
109
+ // The rendered pages are intermediates — a scan's images should not accumulate
110
+ // in the artifacts dir after the text has been recovered.
111
+ for (const f of readdirSync(dir).filter((n) => n.startsWith(prefix.split('/').pop()))) {
112
+ rmSync(join(dir, f), { force: true });
113
+ }
114
+ }
115
+ }
116
+ //# sourceMappingURL=pdf-ocr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf-ocr.js","sourceRoot":"","sources":["../../../src/tools/extract/pdf-ocr.ts"],"names":[],"mappings":"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"}