@staticn0va/wigolo 0.1.0 → 0.1.1

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 (982) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +195 -73
  3. package/SKILL.md +382 -0
  4. package/assets/blocks/claude-code/CLAUDE.md.block +20 -0
  5. package/assets/blocks/claude-code/wigolo-command.md +40 -0
  6. package/assets/blocks/cursor/wigolo.mdc +46 -0
  7. package/assets/blocks/gemini-cli/GEMINI.md.block +18 -0
  8. package/assets/blocks/vscode/copilot-instructions.md.block +18 -0
  9. package/assets/skills/wigolo/SKILL.md +50 -0
  10. package/assets/skills/wigolo/rules/cache-first.md +30 -0
  11. package/assets/skills/wigolo/rules/synthesis.md +43 -0
  12. package/assets/skills/wigolo-agent/SKILL.md +73 -0
  13. package/assets/skills/wigolo-crawl/SKILL.md +60 -0
  14. package/assets/skills/wigolo-extract/SKILL.md +59 -0
  15. package/assets/skills/wigolo-fetch/SKILL.md +65 -0
  16. package/assets/skills/wigolo-find-similar/SKILL.md +72 -0
  17. package/assets/skills/wigolo-research/SKILL.md +77 -0
  18. package/assets/skills/wigolo-search/SKILL.md +78 -0
  19. package/dist/agent/executor.d.ts +33 -0
  20. package/dist/agent/executor.d.ts.map +1 -0
  21. package/dist/agent/executor.js +233 -0
  22. package/dist/agent/executor.js.map +1 -0
  23. package/dist/agent/pipeline.d.ts +5 -0
  24. package/dist/agent/pipeline.d.ts.map +1 -0
  25. package/dist/agent/pipeline.js +208 -0
  26. package/dist/agent/pipeline.js.map +1 -0
  27. package/dist/agent/planner.d.ts +13 -0
  28. package/dist/agent/planner.d.ts.map +1 -0
  29. package/dist/agent/planner.js +271 -0
  30. package/dist/agent/planner.js.map +1 -0
  31. package/dist/agent/relevance.d.ts +15 -0
  32. package/dist/agent/relevance.d.ts.map +1 -0
  33. package/dist/agent/relevance.js +60 -0
  34. package/dist/agent/relevance.js.map +1 -0
  35. package/dist/cache/backfill-embeddings.d.ts +23 -0
  36. package/dist/cache/backfill-embeddings.d.ts.map +1 -0
  37. package/dist/cache/backfill-embeddings.js +105 -0
  38. package/dist/cache/backfill-embeddings.js.map +1 -0
  39. package/dist/cache/change-detector.d.ts +7 -0
  40. package/dist/cache/change-detector.d.ts.map +1 -0
  41. package/dist/cache/change-detector.js +43 -0
  42. package/dist/cache/change-detector.js.map +1 -0
  43. package/dist/cache/db.d.ts +1 -0
  44. package/dist/cache/db.d.ts.map +1 -1
  45. package/dist/cache/db.js +94 -22
  46. package/dist/cache/db.js.map +1 -1
  47. package/dist/cache/diff-summary.d.ts +2 -0
  48. package/dist/cache/diff-summary.d.ts.map +1 -0
  49. package/dist/cache/diff-summary.js +82 -0
  50. package/dist/cache/diff-summary.js.map +1 -0
  51. package/dist/cache/migrations/runner.d.ts +29 -0
  52. package/dist/cache/migrations/runner.d.ts.map +1 -0
  53. package/dist/cache/migrations/runner.js +147 -0
  54. package/dist/cache/migrations/runner.js.map +1 -0
  55. package/dist/cache/sqlite-vec-store.d.ts +42 -0
  56. package/dist/cache/sqlite-vec-store.d.ts.map +1 -0
  57. package/dist/cache/sqlite-vec-store.js +176 -0
  58. package/dist/cache/sqlite-vec-store.js.map +1 -0
  59. package/dist/cache/store.d.ts +46 -1
  60. package/dist/cache/store.d.ts.map +1 -1
  61. package/dist/cache/store.js +362 -168
  62. package/dist/cache/store.js.map +1 -1
  63. package/dist/cli/agents/antigravity.d.ts +20 -0
  64. package/dist/cli/agents/antigravity.d.ts.map +1 -0
  65. package/dist/cli/agents/antigravity.js +49 -0
  66. package/dist/cli/agents/antigravity.js.map +1 -0
  67. package/dist/cli/agents/claude-code.d.ts +25 -0
  68. package/dist/cli/agents/claude-code.d.ts.map +1 -0
  69. package/dist/cli/agents/claude-code.js +111 -0
  70. package/dist/cli/agents/claude-code.js.map +1 -0
  71. package/dist/cli/agents/cursor.d.ts +21 -0
  72. package/dist/cli/agents/cursor.d.ts.map +1 -0
  73. package/dist/cli/agents/cursor.js +58 -0
  74. package/dist/cli/agents/cursor.js.map +1 -0
  75. package/dist/cli/agents/gemini-cli.d.ts +21 -0
  76. package/dist/cli/agents/gemini-cli.d.ts.map +1 -0
  77. package/dist/cli/agents/gemini-cli.js +55 -0
  78. package/dist/cli/agents/gemini-cli.js.map +1 -0
  79. package/dist/cli/agents/registry.d.ts +21 -0
  80. package/dist/cli/agents/registry.d.ts.map +1 -0
  81. package/dist/cli/agents/registry.js +27 -0
  82. package/dist/cli/agents/registry.js.map +1 -0
  83. package/dist/cli/agents/utils.d.ts +26 -0
  84. package/dist/cli/agents/utils.d.ts.map +1 -0
  85. package/dist/cli/agents/utils.js +136 -0
  86. package/dist/cli/agents/utils.js.map +1 -0
  87. package/dist/cli/agents/vscode.d.ts +21 -0
  88. package/dist/cli/agents/vscode.d.ts.map +1 -0
  89. package/dist/cli/agents/vscode.js +62 -0
  90. package/dist/cli/agents/vscode.js.map +1 -0
  91. package/dist/cli/auth.d.ts +2 -0
  92. package/dist/cli/auth.d.ts.map +1 -0
  93. package/dist/cli/auth.js +94 -0
  94. package/dist/cli/auth.js.map +1 -0
  95. package/dist/cli/backfill.d.ts +2 -0
  96. package/dist/cli/backfill.d.ts.map +1 -0
  97. package/dist/cli/backfill.js +58 -0
  98. package/dist/cli/backfill.js.map +1 -0
  99. package/dist/cli/daemon.d.ts +6 -1
  100. package/dist/cli/daemon.d.ts.map +1 -1
  101. package/dist/cli/daemon.js +61 -3
  102. package/dist/cli/daemon.js.map +1 -1
  103. package/dist/cli/doctor.d.ts +8 -0
  104. package/dist/cli/doctor.d.ts.map +1 -0
  105. package/dist/cli/doctor.js +318 -0
  106. package/dist/cli/doctor.js.map +1 -0
  107. package/dist/cli/health.d.ts +1 -1
  108. package/dist/cli/health.d.ts.map +1 -1
  109. package/dist/cli/health.js +42 -3
  110. package/dist/cli/health.js.map +1 -1
  111. package/dist/cli/help.d.ts +6 -0
  112. package/dist/cli/help.d.ts.map +1 -0
  113. package/dist/cli/help.js +63 -0
  114. package/dist/cli/help.js.map +1 -0
  115. package/dist/cli/index.d.ts +1 -1
  116. package/dist/cli/index.d.ts.map +1 -1
  117. package/dist/cli/index.js +35 -7
  118. package/dist/cli/index.js.map +1 -1
  119. package/dist/cli/init.d.ts +2 -0
  120. package/dist/cli/init.d.ts.map +1 -0
  121. package/dist/cli/init.js +201 -0
  122. package/dist/cli/init.js.map +1 -0
  123. package/dist/cli/plugin.d.ts +5 -0
  124. package/dist/cli/plugin.d.ts.map +1 -0
  125. package/dist/cli/plugin.js +185 -0
  126. package/dist/cli/plugin.js.map +1 -0
  127. package/dist/cli/setup-mcp.d.ts +2 -0
  128. package/dist/cli/setup-mcp.d.ts.map +1 -0
  129. package/dist/cli/setup-mcp.js +114 -0
  130. package/dist/cli/setup-mcp.js.map +1 -0
  131. package/dist/cli/shell.d.ts +2 -0
  132. package/dist/cli/shell.d.ts.map +1 -0
  133. package/dist/cli/shell.js +86 -0
  134. package/dist/cli/shell.js.map +1 -0
  135. package/dist/cli/status.d.ts +2 -0
  136. package/dist/cli/status.d.ts.map +1 -0
  137. package/dist/cli/status.js +31 -0
  138. package/dist/cli/status.js.map +1 -0
  139. package/dist/cli/telemetry.d.ts +10 -0
  140. package/dist/cli/telemetry.d.ts.map +1 -0
  141. package/dist/cli/telemetry.js +56 -0
  142. package/dist/cli/telemetry.js.map +1 -0
  143. package/dist/cli/tui/agents-types.d.ts +28 -0
  144. package/dist/cli/tui/agents-types.d.ts.map +1 -0
  145. package/dist/cli/tui/agents-types.js +1 -0
  146. package/dist/cli/tui/agents-types.js.map +1 -0
  147. package/dist/cli/tui/agents.d.ts +11 -0
  148. package/dist/cli/tui/agents.d.ts.map +1 -0
  149. package/dist/cli/tui/agents.js +93 -0
  150. package/dist/cli/tui/agents.js.map +1 -0
  151. package/dist/cli/tui/banner.d.ts +3 -0
  152. package/dist/cli/tui/banner.d.ts.map +1 -0
  153. package/dist/cli/tui/banner.js +30 -0
  154. package/dist/cli/tui/banner.js.map +1 -0
  155. package/dist/cli/tui/components/AgentSelect.d.ts +13 -0
  156. package/dist/cli/tui/components/AgentSelect.d.ts.map +1 -0
  157. package/dist/cli/tui/components/AgentSelect.js +116 -0
  158. package/dist/cli/tui/components/AgentSelect.js.map +1 -0
  159. package/dist/cli/tui/components/Banner.d.ts +6 -0
  160. package/dist/cli/tui/components/Banner.d.ts.map +1 -0
  161. package/dist/cli/tui/components/Banner.js +25 -0
  162. package/dist/cli/tui/components/Banner.js.map +1 -0
  163. package/dist/cli/tui/components/BrowserSelect.d.ts +7 -0
  164. package/dist/cli/tui/components/BrowserSelect.d.ts.map +1 -0
  165. package/dist/cli/tui/components/BrowserSelect.js +19 -0
  166. package/dist/cli/tui/components/BrowserSelect.js.map +1 -0
  167. package/dist/cli/tui/components/InstallProgress.d.ts +9 -0
  168. package/dist/cli/tui/components/InstallProgress.d.ts.map +1 -0
  169. package/dist/cli/tui/components/InstallProgress.js +67 -0
  170. package/dist/cli/tui/components/InstallProgress.js.map +1 -0
  171. package/dist/cli/tui/components/SkillInstall.d.ts +14 -0
  172. package/dist/cli/tui/components/SkillInstall.d.ts.map +1 -0
  173. package/dist/cli/tui/components/SkillInstall.js +94 -0
  174. package/dist/cli/tui/components/SkillInstall.js.map +1 -0
  175. package/dist/cli/tui/components/Summary.d.ts +22 -0
  176. package/dist/cli/tui/components/Summary.d.ts.map +1 -0
  177. package/dist/cli/tui/components/Summary.js +135 -0
  178. package/dist/cli/tui/components/Summary.js.map +1 -0
  179. package/dist/cli/tui/components/SystemCheck.d.ts +8 -0
  180. package/dist/cli/tui/components/SystemCheck.d.ts.map +1 -0
  181. package/dist/cli/tui/components/SystemCheck.js +71 -0
  182. package/dist/cli/tui/components/SystemCheck.js.map +1 -0
  183. package/dist/cli/tui/components/Verification.d.ts +8 -0
  184. package/dist/cli/tui/components/Verification.d.ts.map +1 -0
  185. package/dist/cli/tui/components/Verification.js +63 -0
  186. package/dist/cli/tui/components/Verification.js.map +1 -0
  187. package/dist/cli/tui/config-writer-cli.d.ts +12 -0
  188. package/dist/cli/tui/config-writer-cli.d.ts.map +1 -0
  189. package/dist/cli/tui/config-writer-cli.js +39 -0
  190. package/dist/cli/tui/config-writer-cli.js.map +1 -0
  191. package/dist/cli/tui/config-writer-json.d.ts +16 -0
  192. package/dist/cli/tui/config-writer-json.d.ts.map +1 -0
  193. package/dist/cli/tui/config-writer-json.js +86 -0
  194. package/dist/cli/tui/config-writer-json.js.map +1 -0
  195. package/dist/cli/tui/config-writer-toml.d.ts +16 -0
  196. package/dist/cli/tui/config-writer-toml.d.ts.map +1 -0
  197. package/dist/cli/tui/config-writer-toml.js +83 -0
  198. package/dist/cli/tui/config-writer-toml.js.map +1 -0
  199. package/dist/cli/tui/config-writer.d.ts +25 -0
  200. package/dist/cli/tui/config-writer.d.ts.map +1 -0
  201. package/dist/cli/tui/config-writer.js +101 -0
  202. package/dist/cli/tui/config-writer.js.map +1 -0
  203. package/dist/cli/tui/detect-helpers.d.ts +6 -0
  204. package/dist/cli/tui/detect-helpers.d.ts.map +1 -0
  205. package/dist/cli/tui/detect-helpers.js +45 -0
  206. package/dist/cli/tui/detect-helpers.js.map +1 -0
  207. package/dist/cli/tui/extras-prompt.d.ts +7 -0
  208. package/dist/cli/tui/extras-prompt.d.ts.map +1 -0
  209. package/dist/cli/tui/extras-prompt.js +42 -0
  210. package/dist/cli/tui/extras-prompt.js.map +1 -0
  211. package/dist/cli/tui/flags-types.d.ts +19 -0
  212. package/dist/cli/tui/flags-types.d.ts.map +1 -0
  213. package/dist/cli/tui/flags-types.js +23 -0
  214. package/dist/cli/tui/flags-types.js.map +1 -0
  215. package/dist/cli/tui/flags.d.ts +5 -0
  216. package/dist/cli/tui/flags.d.ts.map +1 -0
  217. package/dist/cli/tui/flags.js +132 -0
  218. package/dist/cli/tui/flags.js.map +1 -0
  219. package/dist/cli/tui/format.d.ts +14 -0
  220. package/dist/cli/tui/format.d.ts.map +1 -0
  221. package/dist/cli/tui/format.js +37 -0
  222. package/dist/cli/tui/format.js.map +1 -0
  223. package/dist/cli/tui/hooks/useAgentDetect.d.ts +6 -0
  224. package/dist/cli/tui/hooks/useAgentDetect.d.ts.map +1 -0
  225. package/dist/cli/tui/hooks/useAgentDetect.js +19 -0
  226. package/dist/cli/tui/hooks/useAgentDetect.js.map +1 -0
  227. package/dist/cli/tui/hooks/useInstall.d.ts +14 -0
  228. package/dist/cli/tui/hooks/useInstall.d.ts.map +1 -0
  229. package/dist/cli/tui/hooks/useInstall.js +90 -0
  230. package/dist/cli/tui/hooks/useInstall.js.map +1 -0
  231. package/dist/cli/tui/hooks/useSystemCheck.d.ts +13 -0
  232. package/dist/cli/tui/hooks/useSystemCheck.d.ts.map +1 -0
  233. package/dist/cli/tui/hooks/useSystemCheck.js +95 -0
  234. package/dist/cli/tui/hooks/useSystemCheck.js.map +1 -0
  235. package/dist/cli/tui/hooks/useVerify.d.ts +14 -0
  236. package/dist/cli/tui/hooks/useVerify.d.ts.map +1 -0
  237. package/dist/cli/tui/hooks/useVerify.js +71 -0
  238. package/dist/cli/tui/hooks/useVerify.js.map +1 -0
  239. package/dist/cli/tui/ink-init.d.ts +2 -0
  240. package/dist/cli/tui/ink-init.d.ts.map +1 -0
  241. package/dist/cli/tui/ink-init.js +198 -0
  242. package/dist/cli/tui/ink-init.js.map +1 -0
  243. package/dist/cli/tui/reporter-auto.d.ts +7 -0
  244. package/dist/cli/tui/reporter-auto.d.ts.map +1 -0
  245. package/dist/cli/tui/reporter-auto.js +15 -0
  246. package/dist/cli/tui/reporter-auto.js.map +1 -0
  247. package/dist/cli/tui/reporter.d.ts +26 -0
  248. package/dist/cli/tui/reporter.d.ts.map +1 -0
  249. package/dist/cli/tui/reporter.js +32 -0
  250. package/dist/cli/tui/reporter.js.map +1 -0
  251. package/dist/cli/tui/run-command.d.ts +14 -0
  252. package/dist/cli/tui/run-command.d.ts.map +1 -0
  253. package/dist/cli/tui/run-command.js +72 -0
  254. package/dist/cli/tui/run-command.js.map +1 -0
  255. package/dist/cli/tui/select-agents.d.ts +6 -0
  256. package/dist/cli/tui/select-agents.d.ts.map +1 -0
  257. package/dist/cli/tui/select-agents.js +32 -0
  258. package/dist/cli/tui/select-agents.js.map +1 -0
  259. package/dist/cli/tui/status-agents.d.ts +11 -0
  260. package/dist/cli/tui/status-agents.d.ts.map +1 -0
  261. package/dist/cli/tui/status-agents.js +53 -0
  262. package/dist/cli/tui/status-agents.js.map +1 -0
  263. package/dist/cli/tui/status-cache.d.ts +6 -0
  264. package/dist/cli/tui/status-cache.d.ts.map +1 -0
  265. package/dist/cli/tui/status-cache.js +39 -0
  266. package/dist/cli/tui/status-cache.js.map +1 -0
  267. package/dist/cli/tui/status-format.d.ts +14 -0
  268. package/dist/cli/tui/status-format.d.ts.map +1 -0
  269. package/dist/cli/tui/status-format.js +41 -0
  270. package/dist/cli/tui/status-format.js.map +1 -0
  271. package/dist/cli/tui/status-python.d.ts +6 -0
  272. package/dist/cli/tui/status-python.d.ts.map +1 -0
  273. package/dist/cli/tui/status-python.js +30 -0
  274. package/dist/cli/tui/status-python.js.map +1 -0
  275. package/dist/cli/tui/system-check.d.ts +24 -0
  276. package/dist/cli/tui/system-check.d.ts.map +1 -0
  277. package/dist/cli/tui/system-check.js +103 -0
  278. package/dist/cli/tui/system-check.js.map +1 -0
  279. package/dist/cli/tui/tui-reporter.d.ts +19 -0
  280. package/dist/cli/tui/tui-reporter.d.ts.map +1 -0
  281. package/dist/cli/tui/tui-reporter.js +95 -0
  282. package/dist/cli/tui/tui-reporter.js.map +1 -0
  283. package/dist/cli/tui/utils/config-writer.d.ts +3 -0
  284. package/dist/cli/tui/utils/config-writer.d.ts.map +1 -0
  285. package/dist/cli/tui/utils/config-writer.js +22 -0
  286. package/dist/cli/tui/utils/config-writer.js.map +1 -0
  287. package/dist/cli/tui/utils/suppress-logs.d.ts +3 -0
  288. package/dist/cli/tui/utils/suppress-logs.d.ts.map +1 -0
  289. package/dist/cli/tui/utils/suppress-logs.js +11 -0
  290. package/dist/cli/tui/utils/suppress-logs.js.map +1 -0
  291. package/dist/cli/tui/verify-suggestions.d.ts +5 -0
  292. package/dist/cli/tui/verify-suggestions.d.ts.map +1 -0
  293. package/dist/cli/tui/verify-suggestions.js +20 -0
  294. package/dist/cli/tui/verify-suggestions.js.map +1 -0
  295. package/dist/cli/tui/verify.d.ts +14 -0
  296. package/dist/cli/tui/verify.d.ts.map +1 -0
  297. package/dist/cli/tui/verify.js +101 -0
  298. package/dist/cli/tui/verify.js.map +1 -0
  299. package/dist/cli/tui/version.d.ts +2 -0
  300. package/dist/cli/tui/version.d.ts.map +1 -0
  301. package/dist/cli/tui/version.js +14 -0
  302. package/dist/cli/tui/version.js.map +1 -0
  303. package/dist/cli/uninstall.d.ts +2 -0
  304. package/dist/cli/uninstall.d.ts.map +1 -0
  305. package/dist/cli/uninstall.js +57 -0
  306. package/dist/cli/uninstall.js.map +1 -0
  307. package/dist/cli/warmup.d.ts +10 -2
  308. package/dist/cli/warmup.d.ts.map +1 -1
  309. package/dist/cli/warmup.js +226 -93
  310. package/dist/cli/warmup.js.map +1 -1
  311. package/dist/config.d.ts +28 -2
  312. package/dist/config.d.ts.map +1 -1
  313. package/dist/config.js +106 -56
  314. package/dist/config.js.map +1 -1
  315. package/dist/crawl/crawler.d.ts +6 -0
  316. package/dist/crawl/crawler.d.ts.map +1 -1
  317. package/dist/crawl/crawler.js +210 -209
  318. package/dist/crawl/crawler.js.map +1 -1
  319. package/dist/crawl/dedup.d.ts +1 -0
  320. package/dist/crawl/dedup.d.ts.map +1 -1
  321. package/dist/crawl/dedup.js +124 -81
  322. package/dist/crawl/dedup.js.map +1 -1
  323. package/dist/crawl/etag-incremental.d.ts +43 -0
  324. package/dist/crawl/etag-incremental.d.ts.map +1 -0
  325. package/dist/crawl/etag-incremental.js +94 -0
  326. package/dist/crawl/etag-incremental.js.map +1 -0
  327. package/dist/crawl/index-to-vec.d.ts +10 -0
  328. package/dist/crawl/index-to-vec.d.ts.map +1 -0
  329. package/dist/crawl/index-to-vec.js +44 -0
  330. package/dist/crawl/index-to-vec.js.map +1 -0
  331. package/dist/crawl/mapper.js +136 -164
  332. package/dist/crawl/mapper.js.map +1 -1
  333. package/dist/crawl/rate-limiter.js +63 -66
  334. package/dist/crawl/rate-limiter.js.map +1 -1
  335. package/dist/crawl/robots.js +58 -57
  336. package/dist/crawl/robots.js.map +1 -1
  337. package/dist/crawl/sitemap-first.d.ts +12 -0
  338. package/dist/crawl/sitemap-first.d.ts.map +1 -0
  339. package/dist/crawl/sitemap-first.js +47 -0
  340. package/dist/crawl/sitemap-first.js.map +1 -0
  341. package/dist/crawl/sitemap.js +33 -32
  342. package/dist/crawl/sitemap.js.map +1 -1
  343. package/dist/crawl/url-utils.d.ts +1 -0
  344. package/dist/crawl/url-utils.d.ts.map +1 -1
  345. package/dist/crawl/url-utils.js +49 -37
  346. package/dist/crawl/url-utils.js.map +1 -1
  347. package/dist/daemon/health-check.d.ts +16 -0
  348. package/dist/daemon/health-check.d.ts.map +1 -0
  349. package/dist/daemon/health-check.js +33 -0
  350. package/dist/daemon/health-check.js.map +1 -0
  351. package/dist/daemon/http-server.d.ts +26 -0
  352. package/dist/daemon/http-server.d.ts.map +1 -0
  353. package/dist/daemon/http-server.js +275 -0
  354. package/dist/daemon/http-server.js.map +1 -0
  355. package/dist/daemon/proxy.d.ts +10 -0
  356. package/dist/daemon/proxy.d.ts.map +1 -0
  357. package/dist/daemon/proxy.js +93 -0
  358. package/dist/daemon/proxy.js.map +1 -0
  359. package/dist/embedding/embed.d.ts +59 -0
  360. package/dist/embedding/embed.d.ts.map +1 -0
  361. package/dist/embedding/embed.js +233 -0
  362. package/dist/embedding/embed.js.map +1 -0
  363. package/dist/embedding/fastembed-provider.d.ts +19 -0
  364. package/dist/embedding/fastembed-provider.d.ts.map +1 -0
  365. package/dist/embedding/fastembed-provider.js +51 -0
  366. package/dist/embedding/fastembed-provider.js.map +1 -0
  367. package/dist/embedding/key-terms.d.ts +12 -0
  368. package/dist/embedding/key-terms.d.ts.map +1 -0
  369. package/dist/embedding/key-terms.js +234 -0
  370. package/dist/embedding/key-terms.js.map +1 -0
  371. package/dist/extraction/boilerplate.d.ts +15 -0
  372. package/dist/extraction/boilerplate.d.ts.map +1 -0
  373. package/dist/extraction/boilerplate.js +52 -0
  374. package/dist/extraction/boilerplate.js.map +1 -0
  375. package/dist/extraction/defuddle.d.ts.map +1 -1
  376. package/dist/extraction/defuddle.js +27 -23
  377. package/dist/extraction/defuddle.js.map +1 -1
  378. package/dist/extraction/extract.d.ts.map +1 -1
  379. package/dist/extraction/extract.js +76 -76
  380. package/dist/extraction/extract.js.map +1 -1
  381. package/dist/extraction/jsonld.js +50 -54
  382. package/dist/extraction/jsonld.js.map +1 -1
  383. package/dist/extraction/lang-hints.d.ts +2 -0
  384. package/dist/extraction/lang-hints.d.ts.map +1 -0
  385. package/dist/extraction/lang-hints.js +30 -0
  386. package/dist/extraction/lang-hints.js.map +1 -0
  387. package/dist/extraction/llm-fallback.d.ts +17 -0
  388. package/dist/extraction/llm-fallback.d.ts.map +1 -0
  389. package/dist/extraction/llm-fallback.js +130 -0
  390. package/dist/extraction/llm-fallback.js.map +1 -0
  391. package/dist/extraction/markdown-sanitize.d.ts +2 -0
  392. package/dist/extraction/markdown-sanitize.d.ts.map +1 -0
  393. package/dist/extraction/markdown-sanitize.js +151 -0
  394. package/dist/extraction/markdown-sanitize.js.map +1 -0
  395. package/dist/extraction/markdown.d.ts +11 -0
  396. package/dist/extraction/markdown.d.ts.map +1 -1
  397. package/dist/extraction/markdown.js +195 -91
  398. package/dist/extraction/markdown.js.map +1 -1
  399. package/dist/extraction/pipeline.d.ts +8 -0
  400. package/dist/extraction/pipeline.d.ts.map +1 -1
  401. package/dist/extraction/pipeline.js +57 -91
  402. package/dist/extraction/pipeline.js.map +1 -1
  403. package/dist/extraction/readability.d.ts +1 -1
  404. package/dist/extraction/readability.d.ts.map +1 -1
  405. package/dist/extraction/readability.js +28 -29
  406. package/dist/extraction/readability.js.map +1 -1
  407. package/dist/extraction/schema.d.ts +12 -0
  408. package/dist/extraction/schema.d.ts.map +1 -1
  409. package/dist/extraction/schema.js +135 -72
  410. package/dist/extraction/schema.js.map +1 -1
  411. package/dist/extraction/site-extractors/docs-generic.d.ts.map +1 -1
  412. package/dist/extraction/site-extractors/docs-generic.js +81 -91
  413. package/dist/extraction/site-extractors/docs-generic.js.map +1 -1
  414. package/dist/extraction/site-extractors/github.d.ts.map +1 -1
  415. package/dist/extraction/site-extractors/github.js +87 -95
  416. package/dist/extraction/site-extractors/github.js.map +1 -1
  417. package/dist/extraction/site-extractors/mdn.d.ts.map +1 -1
  418. package/dist/extraction/site-extractors/mdn.js +46 -54
  419. package/dist/extraction/site-extractors/mdn.js.map +1 -1
  420. package/dist/extraction/site-extractors/stackoverflow.d.ts.map +1 -1
  421. package/dist/extraction/site-extractors/stackoverflow.js +71 -80
  422. package/dist/extraction/site-extractors/stackoverflow.js.map +1 -1
  423. package/dist/extraction/structured-data.d.ts +4 -0
  424. package/dist/extraction/structured-data.d.ts.map +1 -0
  425. package/dist/extraction/structured-data.js +173 -0
  426. package/dist/extraction/structured-data.js.map +1 -0
  427. package/dist/extraction/structured.d.ts +4 -0
  428. package/dist/extraction/structured.d.ts.map +1 -0
  429. package/dist/extraction/structured.js +163 -0
  430. package/dist/extraction/structured.js.map +1 -0
  431. package/dist/extraction/v1/classifier.d.ts +3 -0
  432. package/dist/extraction/v1/classifier.d.ts.map +1 -0
  433. package/dist/extraction/v1/classifier.js +110 -0
  434. package/dist/extraction/v1/classifier.js.map +1 -0
  435. package/dist/extraction/v1/extract-provider.d.ts +16 -0
  436. package/dist/extraction/v1/extract-provider.d.ts.map +1 -0
  437. package/dist/extraction/v1/extract-provider.js +43 -0
  438. package/dist/extraction/v1/extract-provider.js.map +1 -0
  439. package/dist/extraction/v1/local-llm.d.ts +8 -0
  440. package/dist/extraction/v1/local-llm.d.ts.map +1 -0
  441. package/dist/extraction/v1/local-llm.js +58 -0
  442. package/dist/extraction/v1/local-llm.js.map +1 -0
  443. package/dist/extraction/v1/news.d.ts +3 -0
  444. package/dist/extraction/v1/news.d.ts.map +1 -0
  445. package/dist/extraction/v1/news.js +61 -0
  446. package/dist/extraction/v1/news.js.map +1 -0
  447. package/dist/extraction/v1/product.d.ts +3 -0
  448. package/dist/extraction/v1/product.d.ts.map +1 -0
  449. package/dist/extraction/v1/product.js +166 -0
  450. package/dist/extraction/v1/product.js.map +1 -0
  451. package/dist/extraction/v1/recipe.d.ts +3 -0
  452. package/dist/extraction/v1/recipe.d.ts.map +1 -0
  453. package/dist/extraction/v1/recipe.js +136 -0
  454. package/dist/extraction/v1/recipe.js.map +1 -0
  455. package/dist/extraction/v1/routed.d.ts +17 -0
  456. package/dist/extraction/v1/routed.d.ts.map +1 -0
  457. package/dist/extraction/v1/routed.js +68 -0
  458. package/dist/extraction/v1/routed.js.map +1 -0
  459. package/dist/extraction/v1/schemas/Article.d.ts +11 -0
  460. package/dist/extraction/v1/schemas/Article.d.ts.map +1 -0
  461. package/dist/extraction/v1/schemas/Article.js +23 -0
  462. package/dist/extraction/v1/schemas/Article.js.map +1 -0
  463. package/dist/extraction/v1/schemas/CodeSnippet.d.ts +9 -0
  464. package/dist/extraction/v1/schemas/CodeSnippet.d.ts.map +1 -0
  465. package/dist/extraction/v1/schemas/CodeSnippet.js +90 -0
  466. package/dist/extraction/v1/schemas/CodeSnippet.js.map +1 -0
  467. package/dist/extraction/v1/schemas/EventListing.d.ts +10 -0
  468. package/dist/extraction/v1/schemas/EventListing.d.ts.map +1 -0
  469. package/dist/extraction/v1/schemas/EventListing.js +122 -0
  470. package/dist/extraction/v1/schemas/EventListing.js.map +1 -0
  471. package/dist/extraction/v1/schemas/Paper.d.ts +10 -0
  472. package/dist/extraction/v1/schemas/Paper.d.ts.map +1 -0
  473. package/dist/extraction/v1/schemas/Paper.js +156 -0
  474. package/dist/extraction/v1/schemas/Paper.js.map +1 -0
  475. package/dist/extraction/v1/schemas/Product.d.ts +17 -0
  476. package/dist/extraction/v1/schemas/Product.d.ts.map +1 -0
  477. package/dist/extraction/v1/schemas/Product.js +149 -0
  478. package/dist/extraction/v1/schemas/Product.js.map +1 -0
  479. package/dist/extraction/v1/schemas/Recipe.d.ts +14 -0
  480. package/dist/extraction/v1/schemas/Recipe.d.ts.map +1 -0
  481. package/dist/extraction/v1/schemas/Recipe.js +160 -0
  482. package/dist/extraction/v1/schemas/Recipe.js.map +1 -0
  483. package/dist/extraction/v1/schemas/index.d.ts +13 -0
  484. package/dist/extraction/v1/schemas/index.d.ts.map +1 -0
  485. package/dist/extraction/v1/schemas/index.js +44 -0
  486. package/dist/extraction/v1/schemas/index.js.map +1 -0
  487. package/dist/extraction/v1/site-extractors.d.ts +5 -0
  488. package/dist/extraction/v1/site-extractors.d.ts.map +1 -0
  489. package/dist/extraction/v1/site-extractors.js +31 -0
  490. package/dist/extraction/v1/site-extractors.js.map +1 -0
  491. package/dist/fetch/action-executor.d.ts +28 -0
  492. package/dist/fetch/action-executor.d.ts.map +1 -0
  493. package/dist/fetch/action-executor.js +88 -0
  494. package/dist/fetch/action-executor.js.map +1 -0
  495. package/dist/fetch/auth.d.ts +2 -1
  496. package/dist/fetch/auth.d.ts.map +1 -1
  497. package/dist/fetch/auth.js +56 -26
  498. package/dist/fetch/auth.js.map +1 -1
  499. package/dist/fetch/browser-pool.d.ts +30 -11
  500. package/dist/fetch/browser-pool.d.ts.map +1 -1
  501. package/dist/fetch/browser-pool.js +303 -127
  502. package/dist/fetch/browser-pool.js.map +1 -1
  503. package/dist/fetch/browser-selector.d.ts +17 -0
  504. package/dist/fetch/browser-selector.d.ts.map +1 -0
  505. package/dist/fetch/browser-selector.js +72 -0
  506. package/dist/fetch/browser-selector.js.map +1 -0
  507. package/dist/fetch/browser-types.d.ts +3 -0
  508. package/dist/fetch/browser-types.d.ts.map +1 -0
  509. package/dist/fetch/browser-types.js +45 -0
  510. package/dist/fetch/browser-types.js.map +1 -0
  511. package/dist/fetch/cdp-client.d.ts +9 -0
  512. package/dist/fetch/cdp-client.d.ts.map +1 -0
  513. package/dist/fetch/cdp-client.js +89 -0
  514. package/dist/fetch/cdp-client.js.map +1 -0
  515. package/dist/fetch/content-check.js +39 -46
  516. package/dist/fetch/content-check.js.map +1 -1
  517. package/dist/fetch/http-client.d.ts +4 -0
  518. package/dist/fetch/http-client.d.ts.map +1 -1
  519. package/dist/fetch/http-client.js +147 -128
  520. package/dist/fetch/http-client.js.map +1 -1
  521. package/dist/fetch/lightpanda.d.ts +28 -0
  522. package/dist/fetch/lightpanda.d.ts.map +1 -0
  523. package/dist/fetch/lightpanda.js +174 -0
  524. package/dist/fetch/lightpanda.js.map +1 -0
  525. package/dist/fetch/playwright-tier.d.ts +19 -0
  526. package/dist/fetch/playwright-tier.d.ts.map +1 -0
  527. package/dist/fetch/playwright-tier.js +76 -0
  528. package/dist/fetch/playwright-tier.js.map +1 -0
  529. package/dist/fetch/router.d.ts +49 -3
  530. package/dist/fetch/router.d.ts.map +1 -1
  531. package/dist/fetch/router.js +185 -81
  532. package/dist/fetch/router.js.map +1 -1
  533. package/dist/index.js +97 -17
  534. package/dist/index.js.map +1 -1
  535. package/dist/instructions.d.ts +31 -0
  536. package/dist/instructions.d.ts.map +1 -0
  537. package/dist/instructions.js +245 -0
  538. package/dist/instructions.js.map +1 -0
  539. package/dist/integrations/cloud/llm/anthropic.d.ts +3 -0
  540. package/dist/integrations/cloud/llm/anthropic.d.ts.map +1 -0
  541. package/dist/integrations/cloud/llm/anthropic.js +41 -0
  542. package/dist/integrations/cloud/llm/anthropic.js.map +1 -0
  543. package/dist/integrations/cloud/llm/cache.d.ts +5 -0
  544. package/dist/integrations/cloud/llm/cache.d.ts.map +1 -0
  545. package/dist/integrations/cloud/llm/cache.js +49 -0
  546. package/dist/integrations/cloud/llm/cache.js.map +1 -0
  547. package/dist/integrations/cloud/llm/gemini.d.ts +3 -0
  548. package/dist/integrations/cloud/llm/gemini.d.ts.map +1 -0
  549. package/dist/integrations/cloud/llm/gemini.js +37 -0
  550. package/dist/integrations/cloud/llm/gemini.js.map +1 -0
  551. package/dist/integrations/cloud/llm/groq.d.ts +3 -0
  552. package/dist/integrations/cloud/llm/groq.d.ts.map +1 -0
  553. package/dist/integrations/cloud/llm/groq.js +74 -0
  554. package/dist/integrations/cloud/llm/groq.js.map +1 -0
  555. package/dist/integrations/cloud/llm/hash.d.ts +3 -0
  556. package/dist/integrations/cloud/llm/hash.d.ts.map +1 -0
  557. package/dist/integrations/cloud/llm/hash.js +26 -0
  558. package/dist/integrations/cloud/llm/hash.js.map +1 -0
  559. package/dist/integrations/cloud/llm/openai.d.ts +3 -0
  560. package/dist/integrations/cloud/llm/openai.d.ts.map +1 -0
  561. package/dist/integrations/cloud/llm/openai.js +43 -0
  562. package/dist/integrations/cloud/llm/openai.js.map +1 -0
  563. package/dist/integrations/cloud/llm/select.d.ts +5 -0
  564. package/dist/integrations/cloud/llm/select.d.ts.map +1 -0
  565. package/dist/integrations/cloud/llm/select.js +30 -0
  566. package/dist/integrations/cloud/llm/select.js.map +1 -0
  567. package/dist/integrations/cloud/llm/types.d.ts +24 -0
  568. package/dist/integrations/cloud/llm/types.d.ts.map +1 -0
  569. package/dist/integrations/cloud/llm/types.js +1 -0
  570. package/dist/integrations/cloud/llm/types.js.map +1 -0
  571. package/dist/integrations/cloud/llm/validate.d.ts +6 -0
  572. package/dist/integrations/cloud/llm/validate.d.ts.map +1 -0
  573. package/dist/integrations/cloud/llm/validate.js +63 -0
  574. package/dist/integrations/cloud/llm/validate.js.map +1 -0
  575. package/dist/logger.d.ts +4 -1
  576. package/dist/logger.d.ts.map +1 -1
  577. package/dist/logger.js +71 -30
  578. package/dist/logger.js.map +1 -1
  579. package/dist/pdf-parse.d.js +1 -0
  580. package/dist/pdf-parse.d.js.map +1 -0
  581. package/dist/plugins/loader.d.ts +20 -0
  582. package/dist/plugins/loader.d.ts.map +1 -0
  583. package/dist/plugins/loader.js +157 -0
  584. package/dist/plugins/loader.js.map +1 -0
  585. package/dist/plugins/registry.d.ts +26 -0
  586. package/dist/plugins/registry.d.ts.map +1 -0
  587. package/dist/plugins/registry.js +71 -0
  588. package/dist/plugins/registry.js.map +1 -0
  589. package/dist/plugins/validate.d.ts +9 -0
  590. package/dist/plugins/validate.d.ts.map +1 -0
  591. package/dist/plugins/validate.js +79 -0
  592. package/dist/plugins/validate.js.map +1 -0
  593. package/dist/providers/embed-provider.d.ts +11 -0
  594. package/dist/providers/embed-provider.d.ts.map +1 -0
  595. package/dist/providers/embed-provider.js +24 -0
  596. package/dist/providers/embed-provider.js.map +1 -0
  597. package/dist/providers/extract-provider.d.ts +23 -0
  598. package/dist/providers/extract-provider.d.ts.map +1 -0
  599. package/dist/providers/extract-provider.js +25 -0
  600. package/dist/providers/extract-provider.js.map +1 -0
  601. package/dist/providers/rerank-provider.d.ts +16 -0
  602. package/dist/providers/rerank-provider.d.ts.map +1 -0
  603. package/dist/providers/rerank-provider.js +28 -0
  604. package/dist/providers/rerank-provider.js.map +1 -0
  605. package/dist/providers/search-provider.d.ts +25 -0
  606. package/dist/providers/search-provider.d.ts.map +1 -0
  607. package/dist/providers/search-provider.js +44 -0
  608. package/dist/providers/search-provider.js.map +1 -0
  609. package/dist/providers/vector-store.d.ts +27 -0
  610. package/dist/providers/vector-store.d.ts.map +1 -0
  611. package/dist/providers/vector-store.js +27 -0
  612. package/dist/providers/vector-store.js.map +1 -0
  613. package/dist/python-env.d.ts +9 -0
  614. package/dist/python-env.d.ts.map +1 -0
  615. package/dist/python-env.js +13 -0
  616. package/dist/python-env.js.map +1 -0
  617. package/dist/repl/commands/agent.d.ts +5 -0
  618. package/dist/repl/commands/agent.d.ts.map +1 -0
  619. package/dist/repl/commands/agent.js +62 -0
  620. package/dist/repl/commands/agent.js.map +1 -0
  621. package/dist/repl/commands/cache.d.ts +4 -0
  622. package/dist/repl/commands/cache.d.ts.map +1 -0
  623. package/dist/repl/commands/cache.js +43 -0
  624. package/dist/repl/commands/cache.js.map +1 -0
  625. package/dist/repl/commands/crawl.d.ts +7 -0
  626. package/dist/repl/commands/crawl.d.ts.map +1 -0
  627. package/dist/repl/commands/crawl.js +44 -0
  628. package/dist/repl/commands/crawl.js.map +1 -0
  629. package/dist/repl/commands/extract.d.ts +5 -0
  630. package/dist/repl/commands/extract.d.ts.map +1 -0
  631. package/dist/repl/commands/extract.js +47 -0
  632. package/dist/repl/commands/extract.js.map +1 -0
  633. package/dist/repl/commands/fetch.d.ts +5 -0
  634. package/dist/repl/commands/fetch.d.ts.map +1 -0
  635. package/dist/repl/commands/fetch.js +67 -0
  636. package/dist/repl/commands/fetch.js.map +1 -0
  637. package/dist/repl/commands/find-similar.d.ts +5 -0
  638. package/dist/repl/commands/find-similar.d.ts.map +1 -0
  639. package/dist/repl/commands/find-similar.js +74 -0
  640. package/dist/repl/commands/find-similar.js.map +1 -0
  641. package/dist/repl/commands/research.d.ts +5 -0
  642. package/dist/repl/commands/research.d.ts.map +1 -0
  643. package/dist/repl/commands/research.js +65 -0
  644. package/dist/repl/commands/research.js.map +1 -0
  645. package/dist/repl/commands/search.d.ts +5 -0
  646. package/dist/repl/commands/search.d.ts.map +1 -0
  647. package/dist/repl/commands/search.js +74 -0
  648. package/dist/repl/commands/search.js.map +1 -0
  649. package/dist/repl/commands/types.d.ts +9 -0
  650. package/dist/repl/commands/types.d.ts.map +1 -0
  651. package/dist/repl/commands/types.js +1 -0
  652. package/dist/repl/commands/types.js.map +1 -0
  653. package/dist/repl/formatters.d.ts +13 -0
  654. package/dist/repl/formatters.d.ts.map +1 -0
  655. package/dist/repl/formatters.js +283 -0
  656. package/dist/repl/formatters.js.map +1 -0
  657. package/dist/repl/parser.d.ts +9 -0
  658. package/dist/repl/parser.d.ts.map +1 -0
  659. package/dist/repl/parser.js +86 -0
  660. package/dist/repl/parser.js.map +1 -0
  661. package/dist/repl/shell.d.ts +8 -0
  662. package/dist/repl/shell.d.ts.map +1 -0
  663. package/dist/repl/shell.js +184 -0
  664. package/dist/repl/shell.js.map +1 -0
  665. package/dist/research/branch-exploration.d.ts +14 -0
  666. package/dist/research/branch-exploration.d.ts.map +1 -0
  667. package/dist/research/branch-exploration.js +100 -0
  668. package/dist/research/branch-exploration.js.map +1 -0
  669. package/dist/research/brief.d.ts +5 -0
  670. package/dist/research/brief.d.ts.map +1 -0
  671. package/dist/research/brief.js +242 -0
  672. package/dist/research/brief.js.map +1 -0
  673. package/dist/research/citation-graph.d.ts +9 -0
  674. package/dist/research/citation-graph.d.ts.map +1 -0
  675. package/dist/research/citation-graph.js +114 -0
  676. package/dist/research/citation-graph.js.map +1 -0
  677. package/dist/research/decompose.d.ts +14 -0
  678. package/dist/research/decompose.d.ts.map +1 -0
  679. package/dist/research/decompose.js +439 -0
  680. package/dist/research/decompose.js.map +1 -0
  681. package/dist/research/pipeline.d.ts +5 -0
  682. package/dist/research/pipeline.d.ts.map +1 -0
  683. package/dist/research/pipeline.js +269 -0
  684. package/dist/research/pipeline.js.map +1 -0
  685. package/dist/research/synthesis-local.d.ts +16 -0
  686. package/dist/research/synthesis-local.d.ts.map +1 -0
  687. package/dist/research/synthesis-local.js +73 -0
  688. package/dist/research/synthesis-local.js.map +1 -0
  689. package/dist/research/synthesize.d.ts +10 -0
  690. package/dist/research/synthesize.d.ts.map +1 -0
  691. package/dist/research/synthesize.js +137 -0
  692. package/dist/research/synthesize.js.map +1 -0
  693. package/dist/search/answer-synthesis.d.ts +33 -0
  694. package/dist/search/answer-synthesis.d.ts.map +1 -0
  695. package/dist/search/answer-synthesis.js +244 -0
  696. package/dist/search/answer-synthesis.js.map +1 -0
  697. package/dist/search/context-formatter.d.ts +3 -0
  698. package/dist/search/context-formatter.d.ts.map +1 -0
  699. package/dist/search/context-formatter.js +56 -0
  700. package/dist/search/context-formatter.js.map +1 -0
  701. package/dist/search/dedup.d.ts +1 -0
  702. package/dist/search/dedup.d.ts.map +1 -1
  703. package/dist/search/dedup.js +40 -32
  704. package/dist/search/dedup.js.map +1 -1
  705. package/dist/search/engines/arxiv.d.ts +7 -0
  706. package/dist/search/engines/arxiv.d.ts.map +1 -0
  707. package/dist/search/engines/arxiv.js +70 -0
  708. package/dist/search/engines/arxiv.js.map +1 -0
  709. package/dist/search/engines/bing-news.d.ts +7 -0
  710. package/dist/search/engines/bing-news.d.ts.map +1 -0
  711. package/dist/search/engines/bing-news.js +97 -0
  712. package/dist/search/engines/bing-news.js.map +1 -0
  713. package/dist/search/engines/bing.d.ts +1 -0
  714. package/dist/search/engines/bing.d.ts.map +1 -1
  715. package/dist/search/engines/bing.js +100 -44
  716. package/dist/search/engines/bing.js.map +1 -1
  717. package/dist/search/engines/devdocs.d.ts +6 -0
  718. package/dist/search/engines/devdocs.d.ts.map +1 -0
  719. package/dist/search/engines/devdocs.js +56 -0
  720. package/dist/search/engines/devdocs.js.map +1 -0
  721. package/dist/search/engines/duckduckgo.d.ts.map +1 -1
  722. package/dist/search/engines/duckduckgo.js +56 -44
  723. package/dist/search/engines/duckduckgo.js.map +1 -1
  724. package/dist/search/engines/github-code.d.ts +7 -0
  725. package/dist/search/engines/github-code.d.ts.map +1 -0
  726. package/dist/search/engines/github-code.js +55 -0
  727. package/dist/search/engines/github-code.js.map +1 -0
  728. package/dist/search/engines/hn-algolia.d.ts +7 -0
  729. package/dist/search/engines/hn-algolia.d.ts.map +1 -0
  730. package/dist/search/engines/hn-algolia.js +76 -0
  731. package/dist/search/engines/hn-algolia.js.map +1 -0
  732. package/dist/search/engines/lobsters.d.ts +7 -0
  733. package/dist/search/engines/lobsters.d.ts.map +1 -0
  734. package/dist/search/engines/lobsters.js +83 -0
  735. package/dist/search/engines/lobsters.js.map +1 -0
  736. package/dist/search/engines/mdn.d.ts +7 -0
  737. package/dist/search/engines/mdn.d.ts.map +1 -0
  738. package/dist/search/engines/mdn.js +48 -0
  739. package/dist/search/engines/mdn.js.map +1 -0
  740. package/dist/search/engines/semantic-scholar.d.ts +7 -0
  741. package/dist/search/engines/semantic-scholar.d.ts.map +1 -0
  742. package/dist/search/engines/semantic-scholar.js +69 -0
  743. package/dist/search/engines/semantic-scholar.js.map +1 -0
  744. package/dist/search/engines/stackoverflow.d.ts +7 -0
  745. package/dist/search/engines/stackoverflow.d.ts.map +1 -0
  746. package/dist/search/engines/stackoverflow.js +73 -0
  747. package/dist/search/engines/stackoverflow.js.map +1 -0
  748. package/dist/search/engines/startpage.d.ts.map +1 -1
  749. package/dist/search/engines/startpage.js +65 -46
  750. package/dist/search/engines/startpage.js.map +1 -1
  751. package/dist/search/evidence.d.ts +25 -0
  752. package/dist/search/evidence.d.ts.map +1 -0
  753. package/dist/search/evidence.js +220 -0
  754. package/dist/search/evidence.js.map +1 -0
  755. package/dist/search/filters.js +49 -55
  756. package/dist/search/filters.js.map +1 -1
  757. package/dist/search/find-similar/crawl-rank.d.ts +9 -0
  758. package/dist/search/find-similar/crawl-rank.d.ts.map +1 -0
  759. package/dist/search/find-similar/crawl-rank.js +272 -0
  760. package/dist/search/find-similar/crawl-rank.js.map +1 -0
  761. package/dist/search/find-similar/mode.d.ts +4 -0
  762. package/dist/search/find-similar/mode.d.ts.map +1 -0
  763. package/dist/search/find-similar/mode.js +12 -0
  764. package/dist/search/find-similar/mode.js.map +1 -0
  765. package/dist/search/find-similar.d.ts +5 -0
  766. package/dist/search/find-similar.d.ts.map +1 -0
  767. package/dist/search/find-similar.js +509 -0
  768. package/dist/search/find-similar.js.map +1 -0
  769. package/dist/search/highlights.d.ts +19 -0
  770. package/dist/search/highlights.d.ts.map +1 -0
  771. package/dist/search/highlights.js +167 -0
  772. package/dist/search/highlights.js.map +1 -0
  773. package/dist/search/language-filter.d.ts +29 -0
  774. package/dist/search/language-filter.d.ts.map +1 -0
  775. package/dist/search/language-filter.js +126 -0
  776. package/dist/search/language-filter.js.map +1 -0
  777. package/dist/search/legacy/searxng-orchestrator.d.ts +4 -0
  778. package/dist/search/legacy/searxng-orchestrator.d.ts.map +1 -0
  779. package/dist/search/legacy/searxng-orchestrator.js +501 -0
  780. package/dist/search/legacy/searxng-orchestrator.js.map +1 -0
  781. package/dist/search/legacy/searxng-provider.d.ts +7 -0
  782. package/dist/search/legacy/searxng-provider.d.ts.map +1 -0
  783. package/dist/search/legacy/searxng-provider.js +11 -0
  784. package/dist/search/legacy/searxng-provider.js.map +1 -0
  785. package/dist/search/multi-query.d.ts +25 -0
  786. package/dist/search/multi-query.d.ts.map +1 -0
  787. package/dist/search/multi-query.js +228 -0
  788. package/dist/search/multi-query.js.map +1 -0
  789. package/dist/search/query.js +32 -34
  790. package/dist/search/query.js.map +1 -1
  791. package/dist/search/rerank.d.ts +3 -1
  792. package/dist/search/rerank.d.ts.map +1 -1
  793. package/dist/search/rerank.js +44 -35
  794. package/dist/search/rerank.js.map +1 -1
  795. package/dist/search/reranker/authority-boost.d.ts +3 -0
  796. package/dist/search/reranker/authority-boost.d.ts.map +1 -0
  797. package/dist/search/reranker/authority-boost.js +179 -0
  798. package/dist/search/reranker/authority-boost.js.map +1 -0
  799. package/dist/search/reranker/consensus-boost.d.ts +3 -0
  800. package/dist/search/reranker/consensus-boost.d.ts.map +1 -0
  801. package/dist/search/reranker/consensus-boost.js +27 -0
  802. package/dist/search/reranker/consensus-boost.js.map +1 -0
  803. package/dist/search/reranker/recency-boost.d.ts +3 -0
  804. package/dist/search/reranker/recency-boost.d.ts.map +1 -0
  805. package/dist/search/reranker/recency-boost.js +13 -0
  806. package/dist/search/reranker/recency-boost.js.map +1 -0
  807. package/dist/search/reranker/recency.d.ts +3 -0
  808. package/dist/search/reranker/recency.d.ts.map +1 -0
  809. package/dist/search/reranker/recency.js +23 -0
  810. package/dist/search/reranker/recency.js.map +1 -0
  811. package/dist/search/reranker/transformers-rerank-provider.d.ts +12 -0
  812. package/dist/search/reranker/transformers-rerank-provider.d.ts.map +1 -0
  813. package/dist/search/reranker/transformers-rerank-provider.js +78 -0
  814. package/dist/search/reranker/transformers-rerank-provider.js.map +1 -0
  815. package/dist/search/rrf.d.ts +17 -0
  816. package/dist/search/rrf.d.ts.map +1 -0
  817. package/dist/search/rrf.js +39 -0
  818. package/dist/search/rrf.js.map +1 -0
  819. package/dist/search/sampling.d.ts +25 -0
  820. package/dist/search/sampling.d.ts.map +1 -0
  821. package/dist/search/sampling.js +52 -0
  822. package/dist/search/sampling.js.map +1 -0
  823. package/dist/search/searxng.d.ts.map +1 -1
  824. package/dist/search/searxng.js +69 -79
  825. package/dist/search/searxng.js.map +1 -1
  826. package/dist/search/tokens.d.ts +3 -0
  827. package/dist/search/tokens.d.ts.map +1 -0
  828. package/dist/search/tokens.js +39 -0
  829. package/dist/search/tokens.js.map +1 -0
  830. package/dist/search/truncate.d.ts +6 -0
  831. package/dist/search/truncate.d.ts.map +1 -0
  832. package/dist/search/truncate.js +26 -0
  833. package/dist/search/truncate.js.map +1 -0
  834. package/dist/search/url-unwrap.d.ts +3 -0
  835. package/dist/search/url-unwrap.d.ts.map +1 -0
  836. package/dist/search/url-unwrap.js +43 -0
  837. package/dist/search/url-unwrap.js.map +1 -0
  838. package/dist/search/v1/context-rank.d.ts +13 -0
  839. package/dist/search/v1/context-rank.d.ts.map +1 -0
  840. package/dist/search/v1/context-rank.js +74 -0
  841. package/dist/search/v1/context-rank.js.map +1 -0
  842. package/dist/search/v1/engine-base.d.ts +27 -0
  843. package/dist/search/v1/engine-base.d.ts.map +1 -0
  844. package/dist/search/v1/engine-base.js +110 -0
  845. package/dist/search/v1/engine-base.js.map +1 -0
  846. package/dist/search/v1/intent-router.d.ts +22 -0
  847. package/dist/search/v1/intent-router.d.ts.map +1 -0
  848. package/dist/search/v1/intent-router.js +138 -0
  849. package/dist/search/v1/intent-router.js.map +1 -0
  850. package/dist/search/v1/orchestrator.d.ts +24 -0
  851. package/dist/search/v1/orchestrator.d.ts.map +1 -0
  852. package/dist/search/v1/orchestrator.js +163 -0
  853. package/dist/search/v1/orchestrator.js.map +1 -0
  854. package/dist/search/v1/recency-boost.d.ts +9 -0
  855. package/dist/search/v1/recency-boost.d.ts.map +1 -0
  856. package/dist/search/v1/recency-boost.js +37 -0
  857. package/dist/search/v1/recency-boost.js.map +1 -0
  858. package/dist/search/v1/recent-cache-dedup.d.ts +6 -0
  859. package/dist/search/v1/recent-cache-dedup.d.ts.map +1 -0
  860. package/dist/search/v1/recent-cache-dedup.js +85 -0
  861. package/dist/search/v1/recent-cache-dedup.js.map +1 -0
  862. package/dist/search/v1/rss/feed-config.d.ts +21 -0
  863. package/dist/search/v1/rss/feed-config.d.ts.map +1 -0
  864. package/dist/search/v1/rss/feed-config.js +90 -0
  865. package/dist/search/v1/rss/feed-config.js.map +1 -0
  866. package/dist/search/v1/rss/feed-parser.d.ts +14 -0
  867. package/dist/search/v1/rss/feed-parser.d.ts.map +1 -0
  868. package/dist/search/v1/rss/feed-parser.js +104 -0
  869. package/dist/search/v1/rss/feed-parser.js.map +1 -0
  870. package/dist/search/v1/rss/feed-poller.d.ts +22 -0
  871. package/dist/search/v1/rss/feed-poller.d.ts.map +1 -0
  872. package/dist/search/v1/rss/feed-poller.js +102 -0
  873. package/dist/search/v1/rss/feed-poller.js.map +1 -0
  874. package/dist/search/v1/rss/feed-store.d.ts +30 -0
  875. package/dist/search/v1/rss/feed-store.d.ts.map +1 -0
  876. package/dist/search/v1/rss/feed-store.js +134 -0
  877. package/dist/search/v1/rss/feed-store.js.map +1 -0
  878. package/dist/search/v1/rss/rss-engine.d.ts +6 -0
  879. package/dist/search/v1/rss/rss-engine.d.ts.map +1 -0
  880. package/dist/search/v1/rss/rss-engine.js +28 -0
  881. package/dist/search/v1/rss/rss-engine.js.map +1 -0
  882. package/dist/search/v1/v1-provider.d.ts +7 -0
  883. package/dist/search/v1/v1-provider.d.ts.map +1 -0
  884. package/dist/search/v1/v1-provider.js +68 -0
  885. package/dist/search/v1/v1-provider.js.map +1 -0
  886. package/dist/search/v1/verticals/code.d.ts +4 -0
  887. package/dist/search/v1/verticals/code.d.ts.map +1 -0
  888. package/dist/search/v1/verticals/code.js +20 -0
  889. package/dist/search/v1/verticals/code.js.map +1 -0
  890. package/dist/search/v1/verticals/docs.d.ts +4 -0
  891. package/dist/search/v1/verticals/docs.d.ts.map +1 -0
  892. package/dist/search/v1/verticals/docs.js +20 -0
  893. package/dist/search/v1/verticals/docs.js.map +1 -0
  894. package/dist/search/v1/verticals/general.d.ts +4 -0
  895. package/dist/search/v1/verticals/general.d.ts.map +1 -0
  896. package/dist/search/v1/verticals/general.js +22 -0
  897. package/dist/search/v1/verticals/general.js.map +1 -0
  898. package/dist/search/v1/verticals/news.d.ts +10 -0
  899. package/dist/search/v1/verticals/news.d.ts.map +1 -0
  900. package/dist/search/v1/verticals/news.js +52 -0
  901. package/dist/search/v1/verticals/news.js.map +1 -0
  902. package/dist/search/v1/verticals/papers.d.ts +4 -0
  903. package/dist/search/v1/verticals/papers.d.ts.map +1 -0
  904. package/dist/search/v1/verticals/papers.js +23 -0
  905. package/dist/search/v1/verticals/papers.js.map +1 -0
  906. package/dist/search/validator.js +31 -31
  907. package/dist/search/validator.js.map +1 -1
  908. package/dist/searxng/bootstrap.d.ts +30 -0
  909. package/dist/searxng/bootstrap.d.ts.map +1 -1
  910. package/dist/searxng/bootstrap.js +223 -85
  911. package/dist/searxng/bootstrap.js.map +1 -1
  912. package/dist/searxng/docker.d.ts.map +1 -1
  913. package/dist/searxng/docker.js +69 -60
  914. package/dist/searxng/docker.js.map +1 -1
  915. package/dist/searxng/process.d.ts +13 -1
  916. package/dist/searxng/process.d.ts.map +1 -1
  917. package/dist/searxng/process.js +231 -164
  918. package/dist/searxng/process.js.map +1 -1
  919. package/dist/server/backend-status.d.ts +13 -0
  920. package/dist/server/backend-status.d.ts.map +1 -0
  921. package/dist/server/backend-status.js +40 -0
  922. package/dist/server/backend-status.js.map +1 -0
  923. package/dist/server/tool-schemas.d.ts +549 -0
  924. package/dist/server/tool-schemas.d.ts.map +1 -0
  925. package/dist/server/tool-schemas.js +464 -0
  926. package/dist/server/tool-schemas.js.map +1 -0
  927. package/dist/server/warmup-on-start.d.ts +9 -0
  928. package/dist/server/warmup-on-start.d.ts.map +1 -0
  929. package/dist/server/warmup-on-start.js +55 -0
  930. package/dist/server/warmup-on-start.js.map +1 -0
  931. package/dist/server.d.ts +17 -0
  932. package/dist/server.d.ts.map +1 -1
  933. package/dist/server.js +454 -297
  934. package/dist/server.js.map +1 -1
  935. package/dist/tools/agent.d.ts +5 -0
  936. package/dist/tools/agent.d.ts.map +1 -0
  937. package/dist/tools/agent.js +128 -0
  938. package/dist/tools/agent.js.map +1 -0
  939. package/dist/tools/cache.d.ts +2 -1
  940. package/dist/tools/cache.d.ts.map +1 -1
  941. package/dist/tools/cache.js +175 -44
  942. package/dist/tools/cache.js.map +1 -1
  943. package/dist/tools/crawl.d.ts.map +1 -1
  944. package/dist/tools/crawl.js +171 -88
  945. package/dist/tools/crawl.js.map +1 -1
  946. package/dist/tools/extract.d.ts +2 -2
  947. package/dist/tools/extract.d.ts.map +1 -1
  948. package/dist/tools/extract.js +175 -59
  949. package/dist/tools/extract.js.map +1 -1
  950. package/dist/tools/fetch.d.ts +2 -2
  951. package/dist/tools/fetch.d.ts.map +1 -1
  952. package/dist/tools/fetch.js +161 -68
  953. package/dist/tools/fetch.js.map +1 -1
  954. package/dist/tools/find-similar.d.ts +5 -0
  955. package/dist/tools/find-similar.d.ts.map +1 -0
  956. package/dist/tools/find-similar.js +127 -0
  957. package/dist/tools/find-similar.js.map +1 -0
  958. package/dist/tools/research.d.ts +5 -0
  959. package/dist/tools/research.d.ts.map +1 -0
  960. package/dist/tools/research.js +107 -0
  961. package/dist/tools/research.js.map +1 -0
  962. package/dist/tools/search.d.ts +10 -2
  963. package/dist/tools/search.d.ts.map +1 -1
  964. package/dist/tools/search.js +13 -158
  965. package/dist/tools/search.js.map +1 -1
  966. package/dist/types.d.ts +350 -7
  967. package/dist/types.d.ts.map +1 -1
  968. package/dist/types.js +6 -1
  969. package/dist/types.js.map +1 -1
  970. package/dist/util/mode.d.ts +4 -0
  971. package/dist/util/mode.d.ts.map +1 -0
  972. package/dist/util/mode.js +34 -0
  973. package/dist/util/mode.js.map +1 -0
  974. package/package.json +78 -8
  975. package/dist/extraction/trafilatura.d.ts +0 -6
  976. package/dist/extraction/trafilatura.d.ts.map +0 -1
  977. package/dist/extraction/trafilatura.js +0 -105
  978. package/dist/extraction/trafilatura.js.map +0 -1
  979. package/dist/search/flashrank.d.ts +0 -12
  980. package/dist/search/flashrank.d.ts.map +0 -1
  981. package/dist/search/flashrank.js +0 -63
  982. package/dist/search/flashrank.js.map +0 -1
@@ -0,0 +1,198 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useState, useCallback } from "react";
3
+ import { render, useApp, Box, Text, Static } from "ink";
4
+ import { enableTuiMode } from "./utils/suppress-logs.js";
5
+ import { Banner } from "./components/Banner.js";
6
+ import { SystemCheck } from "./components/SystemCheck.js";
7
+ import { BrowserSelect } from "./components/BrowserSelect.js";
8
+ import { InstallProgress } from "./components/InstallProgress.js";
9
+ import { Verification } from "./components/Verification.js";
10
+ import { AgentSelect } from "./components/AgentSelect.js";
11
+ import { SkillInstall } from "./components/SkillInstall.js";
12
+ import { Summary } from "./components/Summary.js";
13
+ import { saveInitConfig } from "./utils/config-writer.js";
14
+ import { getConfig } from "../../config.js";
15
+ function CompactSysCheck({ checks }) {
16
+ const passed = checks.filter((c) => c.status === "pass").length;
17
+ const failed = checks.filter((c) => c.status === "fail").length;
18
+ return /* @__PURE__ */ jsx(Box, { paddingX: 2, children: /* @__PURE__ */ jsxs(Text, { children: [
19
+ /* @__PURE__ */ jsx(Text, { color: "green", bold: true, children: "\u2713" }),
20
+ /* @__PURE__ */ jsx(Text, { bold: true, children: " System " }),
21
+ /* @__PURE__ */ jsxs(Text, { dimColor: true, children: [
22
+ passed,
23
+ " passed",
24
+ failed > 0 ? `, ${failed} failed` : "",
25
+ " \u2014 ",
26
+ checks.filter((c) => c.status === "pass" || c.status === "optional").map((c) => `${c.label} ${c.detail}`).join(", ")
27
+ ] })
28
+ ] }) });
29
+ }
30
+ function CompactBrowser({ browser }) {
31
+ const names = { lightpanda: "Lightpanda", chromium: "Chromium", firefox: "Firefox" };
32
+ return /* @__PURE__ */ jsx(Box, { paddingX: 2, children: /* @__PURE__ */ jsxs(Text, { children: [
33
+ /* @__PURE__ */ jsx(Text, { color: "green", bold: true, children: "\u2713" }),
34
+ /* @__PURE__ */ jsx(Text, { bold: true, children: " Browser " }),
35
+ /* @__PURE__ */ jsxs(Text, { dimColor: true, children: [
36
+ names[browser],
37
+ " selected"
38
+ ] })
39
+ ] }) });
40
+ }
41
+ function CompactInstall({ items }) {
42
+ const ok = items.filter((i) => i.status === "done").length;
43
+ const fail = items.filter((i) => i.status === "failed").length;
44
+ const totalTime = items.reduce((sum, i) => sum + (i.timeMs ?? 0), 0);
45
+ return /* @__PURE__ */ jsx(Box, { paddingX: 2, children: /* @__PURE__ */ jsxs(Text, { children: [
46
+ /* @__PURE__ */ jsx(Text, { color: fail > 0 ? "yellow" : "green", bold: true, children: fail > 0 ? "!" : "\u2713" }),
47
+ /* @__PURE__ */ jsx(Text, { bold: true, children: " Install " }),
48
+ /* @__PURE__ */ jsxs(Text, { dimColor: true, children: [
49
+ ok,
50
+ " installed",
51
+ fail > 0 ? `, ${fail} failed` : "",
52
+ " \u2014 ",
53
+ (totalTime / 1e3).toFixed(1),
54
+ "s total"
55
+ ] })
56
+ ] }) });
57
+ }
58
+ function CompactVerify({ items }) {
59
+ const ok = items.filter((i) => i.status === "pass").length;
60
+ const fail = items.filter((i) => i.status === "fail").length;
61
+ return /* @__PURE__ */ jsx(Box, { paddingX: 2, children: /* @__PURE__ */ jsxs(Text, { children: [
62
+ /* @__PURE__ */ jsx(Text, { color: fail > 0 ? "yellow" : "green", bold: true, children: fail > 0 ? "!" : "\u2713" }),
63
+ /* @__PURE__ */ jsx(Text, { bold: true, children: " Verify " }),
64
+ /* @__PURE__ */ jsxs(Text, { dimColor: true, children: [
65
+ ok,
66
+ " passed",
67
+ fail > 0 ? `, ${fail} warnings` : "",
68
+ " \u2014",
69
+ " ",
70
+ items.filter((i) => i.status === "pass").map((i) => i.detail).filter(Boolean).join(", ")
71
+ ] })
72
+ ] }) });
73
+ }
74
+ function CompactAgents({ results }) {
75
+ if (results.length === 0) {
76
+ return /* @__PURE__ */ jsx(Box, { paddingX: 2, children: /* @__PURE__ */ jsxs(Text, { children: [
77
+ /* @__PURE__ */ jsx(Text, { dimColor: true, bold: true, children: "\u2013" }),
78
+ /* @__PURE__ */ jsx(Text, { bold: true, children: " Agents " }),
79
+ /* @__PURE__ */ jsx(Text, { dimColor: true, children: "none selected" })
80
+ ] }) });
81
+ }
82
+ const ok = results.filter((r) => r.ok);
83
+ const fail = results.filter((r) => !r.ok);
84
+ return /* @__PURE__ */ jsx(Box, { paddingX: 2, children: /* @__PURE__ */ jsxs(Text, { children: [
85
+ /* @__PURE__ */ jsx(Text, { color: fail.length > 0 ? "yellow" : "green", bold: true, children: fail.length > 0 ? "!" : "\u2713" }),
86
+ /* @__PURE__ */ jsx(Text, { bold: true, children: " MCP " }),
87
+ /* @__PURE__ */ jsxs(Text, { dimColor: true, children: [
88
+ ok.map((r) => r.displayName).join(", "),
89
+ fail.length > 0 ? ` (${fail.length} failed)` : "",
90
+ " \u2014 config written"
91
+ ] })
92
+ ] }) });
93
+ }
94
+ function CompactSkills({ results }) {
95
+ if (results.length === 0) return null;
96
+ const installed = results.filter((r) => r.status === "installed");
97
+ const skipped = results.filter((r) => r.status === "not_supported");
98
+ return /* @__PURE__ */ jsx(Box, { paddingX: 2, children: /* @__PURE__ */ jsxs(Text, { children: [
99
+ /* @__PURE__ */ jsx(Text, { color: "green", bold: true, children: "\u2713" }),
100
+ /* @__PURE__ */ jsx(Text, { bold: true, children: " Skills " }),
101
+ /* @__PURE__ */ jsxs(Text, { dimColor: true, children: [
102
+ installed.length > 0 ? installed.map((r) => r.name).join(", ") : "none applicable",
103
+ skipped.length > 0 ? ` (${skipped.length} use MCP instructions)` : ""
104
+ ] })
105
+ ] }) });
106
+ }
107
+ function WigoloInit() {
108
+ const [phase, setPhase] = useState("banner");
109
+ const [completed, setCompleted] = useState([]);
110
+ const [browser, setBrowser] = useState("lightpanda");
111
+ const [agents, setAgents] = useState([]);
112
+ const [sysChecks, setSysChecks] = useState([]);
113
+ const [installItems, setInstallItems] = useState([]);
114
+ const [verifyItems, setVerifyItems] = useState([]);
115
+ const [agentResults, setAgentResults] = useState([]);
116
+ const [skillResults, setSkillResults] = useState([]);
117
+ const config = getConfig();
118
+ const { exit } = useApp();
119
+ const addCompleted = useCallback((id, node) => {
120
+ setCompleted((prev) => [...prev, { id, node }]);
121
+ }, []);
122
+ const handleBannerDone = useCallback(() => {
123
+ setPhase("syscheck");
124
+ }, []);
125
+ const handleSysCheckDone = useCallback((checks) => {
126
+ setSysChecks(checks);
127
+ addCompleted("syscheck", /* @__PURE__ */ jsx(CompactSysCheck, { checks }));
128
+ setPhase("browser");
129
+ }, [addCompleted]);
130
+ const handleSysFail = useCallback((checks) => {
131
+ setSysChecks(checks);
132
+ addCompleted("syscheck", /* @__PURE__ */ jsx(CompactSysCheck, { checks }));
133
+ setTimeout(() => exit(new Error("System check failed")), 1500);
134
+ }, [addCompleted, exit]);
135
+ const handleBrowserDone = useCallback((b) => {
136
+ setBrowser(b);
137
+ saveInitConfig(config.dataDir, { defaultBrowser: b });
138
+ addCompleted("browser", /* @__PURE__ */ jsx(CompactBrowser, { browser: b }));
139
+ setPhase("install");
140
+ }, [config.dataDir, addCompleted]);
141
+ const handleInstallDone = useCallback((items) => {
142
+ setInstallItems(items);
143
+ addCompleted("install", /* @__PURE__ */ jsx(CompactInstall, { items }));
144
+ setPhase("verify");
145
+ }, [addCompleted]);
146
+ const handleVerifyDone = useCallback((items) => {
147
+ setVerifyItems(items);
148
+ addCompleted("verify", /* @__PURE__ */ jsx(CompactVerify, { items }));
149
+ setPhase("agents");
150
+ }, [addCompleted]);
151
+ const handleAgentsDone = useCallback((selectedIds, results) => {
152
+ setAgents(selectedIds);
153
+ setAgentResults(results);
154
+ saveInitConfig(config.dataDir, {
155
+ configuredAgents: selectedIds,
156
+ lastInit: (/* @__PURE__ */ new Date()).toISOString()
157
+ });
158
+ addCompleted("agents", /* @__PURE__ */ jsx(CompactAgents, { results }));
159
+ setPhase("skills");
160
+ }, [config.dataDir, addCompleted]);
161
+ const handleSkillsDone = useCallback((results) => {
162
+ setSkillResults(results);
163
+ if (results.length > 0) {
164
+ addCompleted("skills", /* @__PURE__ */ jsx(CompactSkills, { results }));
165
+ }
166
+ setPhase("done");
167
+ }, [addCompleted]);
168
+ return /* @__PURE__ */ jsxs(Box, { flexDirection: "column", children: [
169
+ phase === "banner" ? /* @__PURE__ */ jsx(Banner, { onComplete: handleBannerDone }) : /* @__PURE__ */ jsx(Banner, { onComplete: () => {
170
+ } }),
171
+ /* @__PURE__ */ jsx(Static, { items: completed, children: (item) => /* @__PURE__ */ jsx(Box, { children: item.node }, item.id) }),
172
+ phase !== "banner" && phase !== "done" && /* @__PURE__ */ jsx(Text, { children: " " }),
173
+ phase === "syscheck" && /* @__PURE__ */ jsx(SystemCheck, { onComplete: handleSysCheckDone, onFail: handleSysFail }),
174
+ phase === "browser" && /* @__PURE__ */ jsx(BrowserSelect, { onComplete: handleBrowserDone }),
175
+ phase === "install" && /* @__PURE__ */ jsx(InstallProgress, { browser, onComplete: handleInstallDone }),
176
+ phase === "verify" && /* @__PURE__ */ jsx(Verification, { dataDir: config.dataDir, onComplete: handleVerifyDone }),
177
+ phase === "agents" && /* @__PURE__ */ jsx(AgentSelect, { onComplete: handleAgentsDone }),
178
+ phase === "skills" && /* @__PURE__ */ jsx(SkillInstall, { agents, onComplete: handleSkillsDone }),
179
+ phase === "done" && /* @__PURE__ */ jsx(
180
+ Summary,
181
+ {
182
+ agentResults,
183
+ skillResults,
184
+ installItems,
185
+ verifyItems
186
+ }
187
+ )
188
+ ] });
189
+ }
190
+ async function runInkInit() {
191
+ enableTuiMode();
192
+ const { waitUntilExit } = render(/* @__PURE__ */ jsx(WigoloInit, {}));
193
+ await waitUntilExit();
194
+ }
195
+ export {
196
+ runInkInit
197
+ };
198
+ //# sourceMappingURL=ink-init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/cli/tui/ink-init.tsx"],"sourcesContent":["import React, { useState, useCallback } from 'react';\nimport { render, useApp, Box, Text, Static } from 'ink';\nimport { enableTuiMode } from './utils/suppress-logs.js';\nimport { Banner } from './components/Banner.js';\nimport { SystemCheck } from './components/SystemCheck.js';\nimport { BrowserSelect, type BrowserChoice } from './components/BrowserSelect.js';\nimport { InstallProgress } from './components/InstallProgress.js';\nimport { Verification } from './components/Verification.js';\nimport { AgentSelect, type AgentResult } from './components/AgentSelect.js';\nimport { SkillInstall, type SkillResultInfo } from './components/SkillInstall.js';\nimport { Summary } from './components/Summary.js';\nimport { saveInitConfig } from './utils/config-writer.js';\nimport { getConfig } from '../../config.js';\nimport type { AgentId } from './agents.js';\nimport type { CheckItem } from './hooks/useSystemCheck.js';\nimport type { InstallItem } from './hooks/useInstall.js';\nimport type { VerifyItem } from './hooks/useVerify.js';\n\ntype Phase = 'banner' | 'syscheck' | 'browser' | 'install' | 'verify' | 'agents' | 'skills' | 'done';\n\n// --- Compact summaries for completed phases ---\n\nfunction CompactSysCheck({ checks }: { checks: CheckItem[] }) {\n const passed = checks.filter((c) => c.status === 'pass').length;\n const failed = checks.filter((c) => c.status === 'fail').length;\n return (\n <Box paddingX={2}>\n <Text>\n <Text color=\"green\" bold>{'✓'}</Text>\n <Text bold> System </Text>\n <Text dimColor>\n {passed} passed{failed > 0 ? `, ${failed} failed` : ''}\n {' — '}\n {checks.filter((c) => c.status === 'pass' || c.status === 'optional')\n .map((c) => `${c.label} ${c.detail}`)\n .join(', ')}\n </Text>\n </Text>\n </Box>\n );\n}\n\nfunction CompactBrowser({ browser }: { browser: BrowserChoice }) {\n const names: Record<BrowserChoice, string> = { lightpanda: 'Lightpanda', chromium: 'Chromium', firefox: 'Firefox' };\n return (\n <Box paddingX={2}>\n <Text>\n <Text color=\"green\" bold>{'✓'}</Text>\n <Text bold> Browser </Text>\n <Text dimColor>{names[browser]} selected</Text>\n </Text>\n </Box>\n );\n}\n\nfunction CompactInstall({ items }: { items: InstallItem[] }) {\n const ok = items.filter((i) => i.status === 'done').length;\n const fail = items.filter((i) => i.status === 'failed').length;\n const totalTime = items.reduce((sum, i) => sum + (i.timeMs ?? 0), 0);\n return (\n <Box paddingX={2}>\n <Text>\n <Text color={fail > 0 ? 'yellow' : 'green'} bold>{fail > 0 ? '!' : '✓'}</Text>\n <Text bold> Install </Text>\n <Text dimColor>\n {ok} installed{fail > 0 ? `, ${fail} failed` : ''}\n {' — '}{(totalTime / 1000).toFixed(1)}s total\n </Text>\n </Text>\n </Box>\n );\n}\n\nfunction CompactVerify({ items }: { items: VerifyItem[] }) {\n const ok = items.filter((i) => i.status === 'pass').length;\n const fail = items.filter((i) => i.status === 'fail').length;\n return (\n <Box paddingX={2}>\n <Text>\n <Text color={fail > 0 ? 'yellow' : 'green'} bold>{fail > 0 ? '!' : '✓'}</Text>\n <Text bold> Verify </Text>\n <Text dimColor>\n {ok} passed{fail > 0 ? `, ${fail} warnings` : ''} —{' '}\n {items.filter((i) => i.status === 'pass').map((i) => i.detail).filter(Boolean).join(', ')}\n </Text>\n </Text>\n </Box>\n );\n}\n\n\nfunction CompactAgents({ results }: { results: AgentResult[] }) {\n if (results.length === 0) {\n return (\n <Box paddingX={2}>\n <Text>\n <Text dimColor bold>{'–'}</Text>\n <Text bold> Agents </Text>\n <Text dimColor>none selected</Text>\n </Text>\n </Box>\n );\n }\n const ok = results.filter((r) => r.ok);\n const fail = results.filter((r) => !r.ok);\n return (\n <Box paddingX={2}>\n <Text>\n <Text color={fail.length > 0 ? 'yellow' : 'green'} bold>{fail.length > 0 ? '!' : '✓'}</Text>\n <Text bold> MCP </Text>\n <Text dimColor>\n {ok.map((r) => r.displayName).join(', ')}\n {fail.length > 0 ? ` (${fail.length} failed)` : ''}\n {' — config written'}\n </Text>\n </Text>\n </Box>\n );\n}\n\n\nfunction CompactSkills({ results }: { results: SkillResultInfo[] }) {\n if (results.length === 0) return null;\n const installed = results.filter((r) => r.status === 'installed');\n const skipped = results.filter((r) => r.status === 'not_supported');\n return (\n <Box paddingX={2}>\n <Text>\n <Text color=\"green\" bold>{'✓'}</Text>\n <Text bold> Skills </Text>\n <Text dimColor>\n {installed.length > 0\n ? installed.map((r) => r.name).join(', ')\n : 'none applicable'}\n {skipped.length > 0 ? ` (${skipped.length} use MCP instructions)` : ''}\n </Text>\n </Text>\n </Box>\n );\n}\n\n// --- Main app ---\n\ninterface CompletedItem {\n id: string;\n node: React.ReactNode;\n}\n\nfunction WigoloInit() {\n const [phase, setPhase] = useState<Phase>('banner');\n const [completed, setCompleted] = useState<CompletedItem[]>([]);\n const [browser, setBrowser] = useState<BrowserChoice>('lightpanda');\n const [agents, setAgents] = useState<AgentId[]>([]);\n\n // Results that components report back\n const [sysChecks, setSysChecks] = useState<CheckItem[]>([]);\n const [installItems, setInstallItems] = useState<InstallItem[]>([]);\n const [verifyItems, setVerifyItems] = useState<VerifyItem[]>([]);\n const [agentResults, setAgentResults] = useState<AgentResult[]>([]);\n const [skillResults, setSkillResults] = useState<SkillResultInfo[]>([]);\n\n const config = getConfig();\n const { exit } = useApp();\n\n const addCompleted = useCallback((id: string, node: React.ReactNode) => {\n setCompleted((prev) => [...prev, { id, node }]);\n }, []);\n\n // --- Phase transitions ---\n\n const handleBannerDone = useCallback(() => {\n setPhase('syscheck');\n }, []);\n\n const handleSysCheckDone = useCallback((checks: CheckItem[]) => {\n setSysChecks(checks);\n addCompleted('syscheck', <CompactSysCheck checks={checks} />);\n setPhase('browser');\n }, [addCompleted]);\n\n const handleSysFail = useCallback((checks: CheckItem[]) => {\n setSysChecks(checks);\n addCompleted('syscheck', <CompactSysCheck checks={checks} />);\n setTimeout(() => exit(new Error('System check failed')), 1500);\n }, [addCompleted, exit]);\n\n const handleBrowserDone = useCallback((b: BrowserChoice) => {\n setBrowser(b);\n saveInitConfig(config.dataDir, { defaultBrowser: b });\n addCompleted('browser', <CompactBrowser browser={b} />);\n setPhase('install');\n }, [config.dataDir, addCompleted]);\n\n const handleInstallDone = useCallback((items: InstallItem[]) => {\n setInstallItems(items);\n addCompleted('install', <CompactInstall items={items} />);\n setPhase('verify');\n }, [addCompleted]);\n\n const handleVerifyDone = useCallback((items: VerifyItem[]) => {\n setVerifyItems(items);\n addCompleted('verify', <CompactVerify items={items} />);\n setPhase('agents');\n }, [addCompleted]);\n\n const handleAgentsDone = useCallback((selectedIds: AgentId[], results: AgentResult[]) => {\n setAgents(selectedIds);\n setAgentResults(results);\n saveInitConfig(config.dataDir, {\n configuredAgents: selectedIds,\n lastInit: new Date().toISOString(),\n });\n addCompleted('agents', <CompactAgents results={results} />);\n setPhase('skills');\n }, [config.dataDir, addCompleted]);\n\n const handleSkillsDone = useCallback((results: SkillResultInfo[]) => {\n setSkillResults(results);\n if (results.length > 0) {\n addCompleted('skills', <CompactSkills results={results} />);\n }\n setPhase('done');\n }, [addCompleted]);\n\n return (\n <Box flexDirection=\"column\">\n {/* Banner always at top */}\n {phase === 'banner' ? (\n <Banner onComplete={handleBannerDone} />\n ) : (\n <Banner onComplete={() => {}} />\n )}\n\n {/* Completed phases shown as compact summaries */}\n <Static items={completed}>\n {(item) => (\n <Box key={item.id}>{item.node}</Box>\n )}\n </Static>\n\n {/* Spacer between completed and active */}\n {phase !== 'banner' && phase !== 'done' && <Text> </Text>}\n\n {/* Active phase */}\n {phase === 'syscheck' && (\n <SystemCheck onComplete={handleSysCheckDone} onFail={handleSysFail} />\n )}\n {phase === 'browser' && (\n <BrowserSelect onComplete={handleBrowserDone} />\n )}\n {phase === 'install' && (\n <InstallProgress browser={browser} onComplete={handleInstallDone} />\n )}\n {phase === 'verify' && (\n <Verification dataDir={config.dataDir} onComplete={handleVerifyDone} />\n )}\n {phase === 'agents' && (\n <AgentSelect onComplete={handleAgentsDone} />\n )}\n {phase === 'skills' && (\n <SkillInstall agents={agents} onComplete={handleSkillsDone} />\n )}\n {phase === 'done' && (\n <Summary\n agentResults={agentResults}\n skillResults={skillResults}\n installItems={installItems}\n verifyItems={verifyItems}\n />\n )}\n </Box>\n );\n}\n\nexport async function runInkInit(): Promise<void> {\n enableTuiMode();\n const { waitUntilExit } = render(<WigoloInit />);\n await waitUntilExit();\n}\n"],"mappings":"AA4BQ,cAEA,YAFA;AA5BR,SAAgB,UAAU,mBAAmB;AAC7C,SAAS,QAAQ,QAAQ,KAAK,MAAM,cAAc;AAClD,SAAS,qBAAqB;AAC9B,SAAS,cAAc;AACvB,SAAS,mBAAmB;AAC5B,SAAS,qBAAyC;AAClD,SAAS,uBAAuB;AAChC,SAAS,oBAAoB;AAC7B,SAAS,mBAAqC;AAC9C,SAAS,oBAA0C;AACnD,SAAS,eAAe;AACxB,SAAS,sBAAsB;AAC/B,SAAS,iBAAiB;AAU1B,SAAS,gBAAgB,EAAE,OAAO,GAA4B;AAC5D,QAAM,SAAS,OAAO,OAAO,CAAC,MAAM,EAAE,WAAW,MAAM,EAAE;AACzD,QAAM,SAAS,OAAO,OAAO,CAAC,MAAM,EAAE,WAAW,MAAM,EAAE;AACzD,SACE,oBAAC,OAAI,UAAU,GACb,+BAAC,QACC;AAAA,wBAAC,QAAK,OAAM,SAAQ,MAAI,MAAE,oBAAI;AAAA,IAC9B,oBAAC,QAAK,MAAI,MAAC,sBAAQ;AAAA,IACnB,qBAAC,QAAK,UAAQ,MACX;AAAA;AAAA,MAAO;AAAA,MAAQ,SAAS,IAAI,KAAK,MAAM,YAAY;AAAA,MACnD;AAAA,MACA,OAAO,OAAO,CAAC,MAAM,EAAE,WAAW,UAAU,EAAE,WAAW,UAAU,EACjE,IAAI,CAAC,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,MAAM,EAAE,EACnC,KAAK,IAAI;AAAA,OACd;AAAA,KACF,GACF;AAEJ;AAEA,SAAS,eAAe,EAAE,QAAQ,GAA+B;AAC/D,QAAM,QAAuC,EAAE,YAAY,cAAc,UAAU,YAAY,SAAS,UAAU;AAClH,SACE,oBAAC,OAAI,UAAU,GACb,+BAAC,QACC;AAAA,wBAAC,QAAK,OAAM,SAAQ,MAAI,MAAE,oBAAI;AAAA,IAC9B,oBAAC,QAAK,MAAI,MAAC,uBAAS;AAAA,IACpB,qBAAC,QAAK,UAAQ,MAAE;AAAA,YAAM,OAAO;AAAA,MAAE;AAAA,OAAS;AAAA,KAC1C,GACF;AAEJ;AAEA,SAAS,eAAe,EAAE,MAAM,GAA6B;AAC3D,QAAM,KAAK,MAAM,OAAO,CAAC,MAAM,EAAE,WAAW,MAAM,EAAE;AACpD,QAAM,OAAO,MAAM,OAAO,CAAC,MAAM,EAAE,WAAW,QAAQ,EAAE;AACxD,QAAM,YAAY,MAAM,OAAO,CAAC,KAAK,MAAM,OAAO,EAAE,UAAU,IAAI,CAAC;AACnE,SACE,oBAAC,OAAI,UAAU,GACb,+BAAC,QACC;AAAA,wBAAC,QAAK,OAAO,OAAO,IAAI,WAAW,SAAS,MAAI,MAAE,iBAAO,IAAI,MAAM,UAAI;AAAA,IACvE,oBAAC,QAAK,MAAI,MAAC,uBAAS;AAAA,IACpB,qBAAC,QAAK,UAAQ,MACX;AAAA;AAAA,MAAG;AAAA,MAAW,OAAO,IAAI,KAAK,IAAI,YAAY;AAAA,MAC9C;AAAA,OAAQ,YAAY,KAAM,QAAQ,CAAC;AAAA,MAAE;AAAA,OACxC;AAAA,KACF,GACF;AAEJ;AAEA,SAAS,cAAc,EAAE,MAAM,GAA4B;AACzD,QAAM,KAAK,MAAM,OAAO,CAAC,MAAM,EAAE,WAAW,MAAM,EAAE;AACpD,QAAM,OAAO,MAAM,OAAO,CAAC,MAAM,EAAE,WAAW,MAAM,EAAE;AACtD,SACE,oBAAC,OAAI,UAAU,GACb,+BAAC,QACC;AAAA,wBAAC,QAAK,OAAO,OAAO,IAAI,WAAW,SAAS,MAAI,MAAE,iBAAO,IAAI,MAAM,UAAI;AAAA,IACvE,oBAAC,QAAK,MAAI,MAAC,sBAAQ;AAAA,IACnB,qBAAC,QAAK,UAAQ,MACX;AAAA;AAAA,MAAG;AAAA,MAAQ,OAAO,IAAI,KAAK,IAAI,cAAc;AAAA,MAAG;AAAA,MAAG;AAAA,MACnD,MAAM,OAAO,CAAC,MAAM,EAAE,WAAW,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,OAAO,EAAE,KAAK,IAAI;AAAA,OAC1F;AAAA,KACF,GACF;AAEJ;AAGA,SAAS,cAAc,EAAE,QAAQ,GAA+B;AAC9D,MAAI,QAAQ,WAAW,GAAG;AACxB,WACE,oBAAC,OAAI,UAAU,GACb,+BAAC,QACC;AAAA,0BAAC,QAAK,UAAQ,MAAC,MAAI,MAAE,oBAAI;AAAA,MACzB,oBAAC,QAAK,MAAI,MAAC,sBAAQ;AAAA,MACnB,oBAAC,QAAK,UAAQ,MAAC,2BAAa;AAAA,OAC9B,GACF;AAAA,EAEJ;AACA,QAAM,KAAK,QAAQ,OAAO,CAAC,MAAM,EAAE,EAAE;AACrC,QAAM,OAAO,QAAQ,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE;AACxC,SACE,oBAAC,OAAI,UAAU,GACb,+BAAC,QACC;AAAA,wBAAC,QAAK,OAAO,KAAK,SAAS,IAAI,WAAW,SAAS,MAAI,MAAE,eAAK,SAAS,IAAI,MAAM,UAAI;AAAA,IACrF,oBAAC,QAAK,MAAI,MAAC,mBAAK;AAAA,IAChB,qBAAC,QAAK,UAAQ,MACX;AAAA,SAAG,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,IAAI;AAAA,MACtC,KAAK,SAAS,IAAI,KAAK,KAAK,MAAM,aAAa;AAAA,MAC/C;AAAA,OACH;AAAA,KACF,GACF;AAEJ;AAGA,SAAS,cAAc,EAAE,QAAQ,GAAmC;AAClE,MAAI,QAAQ,WAAW,EAAG,QAAO;AACjC,QAAM,YAAY,QAAQ,OAAO,CAAC,MAAM,EAAE,WAAW,WAAW;AAChE,QAAM,UAAU,QAAQ,OAAO,CAAC,MAAM,EAAE,WAAW,eAAe;AAClE,SACE,oBAAC,OAAI,UAAU,GACb,+BAAC,QACC;AAAA,wBAAC,QAAK,OAAM,SAAQ,MAAI,MAAE,oBAAI;AAAA,IAC9B,oBAAC,QAAK,MAAI,MAAC,sBAAQ;AAAA,IACnB,qBAAC,QAAK,UAAQ,MACX;AAAA,gBAAU,SAAS,IAChB,UAAU,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,IAAI,IACtC;AAAA,MACH,QAAQ,SAAS,IAAI,KAAK,QAAQ,MAAM,2BAA2B;AAAA,OACtE;AAAA,KACF,GACF;AAEJ;AASA,SAAS,aAAa;AACpB,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAgB,QAAQ;AAClD,QAAM,CAAC,WAAW,YAAY,IAAI,SAA0B,CAAC,CAAC;AAC9D,QAAM,CAAC,SAAS,UAAU,IAAI,SAAwB,YAAY;AAClE,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAoB,CAAC,CAAC;AAGlD,QAAM,CAAC,WAAW,YAAY,IAAI,SAAsB,CAAC,CAAC;AAC1D,QAAM,CAAC,cAAc,eAAe,IAAI,SAAwB,CAAC,CAAC;AAClE,QAAM,CAAC,aAAa,cAAc,IAAI,SAAuB,CAAC,CAAC;AAC/D,QAAM,CAAC,cAAc,eAAe,IAAI,SAAwB,CAAC,CAAC;AAClE,QAAM,CAAC,cAAc,eAAe,IAAI,SAA4B,CAAC,CAAC;AAEtE,QAAM,SAAS,UAAU;AACzB,QAAM,EAAE,KAAK,IAAI,OAAO;AAExB,QAAM,eAAe,YAAY,CAAC,IAAY,SAA0B;AACtE,iBAAa,CAAC,SAAS,CAAC,GAAG,MAAM,EAAE,IAAI,KAAK,CAAC,CAAC;AAAA,EAChD,GAAG,CAAC,CAAC;AAIL,QAAM,mBAAmB,YAAY,MAAM;AACzC,aAAS,UAAU;AAAA,EACrB,GAAG,CAAC,CAAC;AAEL,QAAM,qBAAqB,YAAY,CAAC,WAAwB;AAC9D,iBAAa,MAAM;AACnB,iBAAa,YAAY,oBAAC,mBAAgB,QAAgB,CAAE;AAC5D,aAAS,SAAS;AAAA,EACpB,GAAG,CAAC,YAAY,CAAC;AAEjB,QAAM,gBAAgB,YAAY,CAAC,WAAwB;AACzD,iBAAa,MAAM;AACnB,iBAAa,YAAY,oBAAC,mBAAgB,QAAgB,CAAE;AAC5D,eAAW,MAAM,KAAK,IAAI,MAAM,qBAAqB,CAAC,GAAG,IAAI;AAAA,EAC/D,GAAG,CAAC,cAAc,IAAI,CAAC;AAEvB,QAAM,oBAAoB,YAAY,CAAC,MAAqB;AAC1D,eAAW,CAAC;AACZ,mBAAe,OAAO,SAAS,EAAE,gBAAgB,EAAE,CAAC;AACpD,iBAAa,WAAW,oBAAC,kBAAe,SAAS,GAAG,CAAE;AACtD,aAAS,SAAS;AAAA,EACpB,GAAG,CAAC,OAAO,SAAS,YAAY,CAAC;AAEjC,QAAM,oBAAoB,YAAY,CAAC,UAAyB;AAC9D,oBAAgB,KAAK;AACrB,iBAAa,WAAW,oBAAC,kBAAe,OAAc,CAAE;AACxD,aAAS,QAAQ;AAAA,EACnB,GAAG,CAAC,YAAY,CAAC;AAEjB,QAAM,mBAAmB,YAAY,CAAC,UAAwB;AAC5D,mBAAe,KAAK;AACpB,iBAAa,UAAU,oBAAC,iBAAc,OAAc,CAAE;AACtD,aAAS,QAAQ;AAAA,EACnB,GAAG,CAAC,YAAY,CAAC;AAEjB,QAAM,mBAAmB,YAAY,CAAC,aAAwB,YAA2B;AACvF,cAAU,WAAW;AACrB,oBAAgB,OAAO;AACvB,mBAAe,OAAO,SAAS;AAAA,MAC7B,kBAAkB;AAAA,MAClB,WAAU,oBAAI,KAAK,GAAE,YAAY;AAAA,IACnC,CAAC;AACD,iBAAa,UAAU,oBAAC,iBAAc,SAAkB,CAAE;AAC1D,aAAS,QAAQ;AAAA,EACnB,GAAG,CAAC,OAAO,SAAS,YAAY,CAAC;AAEjC,QAAM,mBAAmB,YAAY,CAAC,YAA+B;AACnE,oBAAgB,OAAO;AACvB,QAAI,QAAQ,SAAS,GAAG;AACtB,mBAAa,UAAU,oBAAC,iBAAc,SAAkB,CAAE;AAAA,IAC5D;AACA,aAAS,MAAM;AAAA,EACjB,GAAG,CAAC,YAAY,CAAC;AAEjB,SACE,qBAAC,OAAI,eAAc,UAEhB;AAAA,cAAU,WACT,oBAAC,UAAO,YAAY,kBAAkB,IAEtC,oBAAC,UAAO,YAAY,MAAM;AAAA,IAAC,GAAG;AAAA,IAIhC,oBAAC,UAAO,OAAO,WACZ,WAAC,SACA,oBAAC,OAAmB,eAAK,QAAf,KAAK,EAAe,GAElC;AAAA,IAGC,UAAU,YAAY,UAAU,UAAU,oBAAC,QAAK,eAAC;AAAA,IAGjD,UAAU,cACT,oBAAC,eAAY,YAAY,oBAAoB,QAAQ,eAAe;AAAA,IAErE,UAAU,aACT,oBAAC,iBAAc,YAAY,mBAAmB;AAAA,IAE/C,UAAU,aACT,oBAAC,mBAAgB,SAAkB,YAAY,mBAAmB;AAAA,IAEnE,UAAU,YACT,oBAAC,gBAAa,SAAS,OAAO,SAAS,YAAY,kBAAkB;AAAA,IAEtE,UAAU,YACT,oBAAC,eAAY,YAAY,kBAAkB;AAAA,IAE5C,UAAU,YACT,oBAAC,gBAAa,QAAgB,YAAY,kBAAkB;AAAA,IAE7D,UAAU,UACT;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF;AAAA,KAEJ;AAEJ;AAEA,eAAsB,aAA4B;AAChD,gBAAc;AACd,QAAM,EAAE,cAAc,IAAI,OAAO,oBAAC,cAAW,CAAE;AAC/C,QAAM,cAAc;AACtB;","names":[]}
@@ -0,0 +1,7 @@
1
+ import type { WarmupReporter } from './reporter.js';
2
+ export interface AutoReporterOptions {
3
+ plain?: boolean;
4
+ command?: string;
5
+ }
6
+ export declare function autoReporter(opts?: AutoReporterOptions): WarmupReporter;
7
+ //# sourceMappingURL=reporter-auto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reporter-auto.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/reporter-auto.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAIpD,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,YAAY,CAAC,IAAI,GAAE,mBAAwB,GAAG,cAAc,CAa3E"}
@@ -0,0 +1,15 @@
1
+ import { PlainReporter } from "./reporter.js";
2
+ import { TuiReporter } from "./tui-reporter.js";
3
+ function autoReporter(opts = {}) {
4
+ const plain = opts.plain ?? false;
5
+ const isTTY = Boolean(process.stdout.isTTY);
6
+ const isCI = process.env.CI === "true" || process.env.CI === "1" || process.env.GITHUB_ACTIONS === "true" || process.env.BUILDKITE === "true";
7
+ if (plain || !isTTY || isCI) {
8
+ return new PlainReporter(opts.command ?? "warmup");
9
+ }
10
+ return new TuiReporter();
11
+ }
12
+ export {
13
+ autoReporter
14
+ };
15
+ //# sourceMappingURL=reporter-auto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/cli/tui/reporter-auto.ts"],"sourcesContent":["import type { WarmupReporter } from './reporter.js';\nimport { PlainReporter } from './reporter.js';\nimport { TuiReporter } from './tui-reporter.js';\n\nexport interface AutoReporterOptions {\n plain?: boolean;\n command?: string;\n}\n\nexport function autoReporter(opts: AutoReporterOptions = {}): WarmupReporter {\n const plain = opts.plain ?? false;\n const isTTY = Boolean(process.stdout.isTTY);\n const isCI =\n process.env.CI === 'true' ||\n process.env.CI === '1' ||\n process.env.GITHUB_ACTIONS === 'true' ||\n process.env.BUILDKITE === 'true';\n\n if (plain || !isTTY || isCI) {\n return new PlainReporter(opts.command ?? 'warmup');\n }\n return new TuiReporter();\n}\n"],"mappings":"AACA,SAAS,qBAAqB;AAC9B,SAAS,mBAAmB;AAOrB,SAAS,aAAa,OAA4B,CAAC,GAAmB;AAC3E,QAAM,QAAQ,KAAK,SAAS;AAC5B,QAAM,QAAQ,QAAQ,QAAQ,OAAO,KAAK;AAC1C,QAAM,OACJ,QAAQ,IAAI,OAAO,UACnB,QAAQ,IAAI,OAAO,OACnB,QAAQ,IAAI,mBAAmB,UAC/B,QAAQ,IAAI,cAAc;AAE5B,MAAI,SAAS,CAAC,SAAS,MAAM;AAC3B,WAAO,IAAI,cAAc,KAAK,WAAW,QAAQ;AAAA,EACnD;AACA,SAAO,IAAI,YAAY;AACzB;","names":[]}
@@ -0,0 +1,26 @@
1
+ export interface WarmupReporter {
2
+ start(id: string, label: string, opts?: {
3
+ totalBytes?: number;
4
+ }): void;
5
+ update(id: string, text: string): void;
6
+ progress(id: string, fraction: number): void;
7
+ success(id: string, detail?: string): void;
8
+ fail(id: string, error: string): void;
9
+ note(text: string): void;
10
+ finish(): void;
11
+ }
12
+ export declare class PlainReporter implements WarmupReporter {
13
+ private readonly prefix;
14
+ constructor(command?: string);
15
+ private write;
16
+ start(_id: string, label: string, _opts?: {
17
+ totalBytes?: number;
18
+ }): void;
19
+ update(_id: string, _text: string): void;
20
+ progress(_id: string, _fraction: number): void;
21
+ success(id: string, detail?: string): void;
22
+ fail(id: string, error: string): void;
23
+ note(text: string): void;
24
+ finish(): void;
25
+ }
26
+ //# sourceMappingURL=reporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/reporter.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACvE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,qBAAa,aAAc,YAAW,cAAc;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,OAAO,SAAW;IAI9B,OAAO,CAAC,KAAK;IAIb,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAIxE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIxC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAI9C,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAI1C,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIrC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIxB,MAAM,IAAI,IAAI;CAGf"}
@@ -0,0 +1,32 @@
1
+ class PlainReporter {
2
+ prefix;
3
+ constructor(command = "warmup") {
4
+ this.prefix = `[wigolo ${command}]`;
5
+ }
6
+ write(line) {
7
+ process.stderr.write(`${this.prefix} ${line}
8
+ `);
9
+ }
10
+ start(_id, label, _opts) {
11
+ this.write(`${label}...`);
12
+ }
13
+ update(_id, _text) {
14
+ }
15
+ progress(_id, _fraction) {
16
+ }
17
+ success(id, detail) {
18
+ this.write(`${id} ${detail ?? "ok"}`);
19
+ }
20
+ fail(id, error) {
21
+ this.write(`${id} failed: ${error}`);
22
+ }
23
+ note(text) {
24
+ this.write(text);
25
+ }
26
+ finish() {
27
+ }
28
+ }
29
+ export {
30
+ PlainReporter
31
+ };
32
+ //# sourceMappingURL=reporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/cli/tui/reporter.ts"],"sourcesContent":["export interface WarmupReporter {\n start(id: string, label: string, opts?: { totalBytes?: number }): void;\n update(id: string, text: string): void;\n progress(id: string, fraction: number): void;\n success(id: string, detail?: string): void;\n fail(id: string, error: string): void;\n note(text: string): void;\n finish(): void;\n}\n\nexport class PlainReporter implements WarmupReporter {\n private readonly prefix: string;\n\n constructor(command = 'warmup') {\n this.prefix = `[wigolo ${command}]`;\n }\n\n private write(line: string): void {\n process.stderr.write(`${this.prefix} ${line}\\n`);\n }\n\n start(_id: string, label: string, _opts?: { totalBytes?: number }): void {\n this.write(`${label}...`);\n }\n\n update(_id: string, _text: string): void {\n // no-op in plain mode\n }\n\n progress(_id: string, _fraction: number): void {\n // no-op in plain mode\n }\n\n success(id: string, detail?: string): void {\n this.write(`${id} ${detail ?? 'ok'}`);\n }\n\n fail(id: string, error: string): void {\n this.write(`${id} failed: ${error}`);\n }\n\n note(text: string): void {\n this.write(text);\n }\n\n finish(): void {\n // no-op\n }\n}\n"],"mappings":"AAUO,MAAM,cAAwC;AAAA,EAClC;AAAA,EAEjB,YAAY,UAAU,UAAU;AAC9B,SAAK,SAAS,WAAW,OAAO;AAAA,EAClC;AAAA,EAEQ,MAAM,MAAoB;AAChC,YAAQ,OAAO,MAAM,GAAG,KAAK,MAAM,IAAI,IAAI;AAAA,CAAI;AAAA,EACjD;AAAA,EAEA,MAAM,KAAa,OAAe,OAAuC;AACvE,SAAK,MAAM,GAAG,KAAK,KAAK;AAAA,EAC1B;AAAA,EAEA,OAAO,KAAa,OAAqB;AAAA,EAEzC;AAAA,EAEA,SAAS,KAAa,WAAyB;AAAA,EAE/C;AAAA,EAEA,QAAQ,IAAY,QAAuB;AACzC,SAAK,MAAM,GAAG,EAAE,IAAI,UAAU,IAAI,EAAE;AAAA,EACtC;AAAA,EAEA,KAAK,IAAY,OAAqB;AACpC,SAAK,MAAM,GAAG,EAAE,YAAY,KAAK,EAAE;AAAA,EACrC;AAAA,EAEA,KAAK,MAAoB;AACvB,SAAK,MAAM,IAAI;AAAA,EACjB;AAAA,EAEA,SAAe;AAAA,EAEf;AACF;","names":[]}
@@ -0,0 +1,14 @@
1
+ export interface RunCommandOptions {
2
+ cwd?: string;
3
+ env?: NodeJS.ProcessEnv;
4
+ timeout?: number;
5
+ onLine?: (line: string, stream: 'stdout' | 'stderr') => void;
6
+ }
7
+ export interface RunCommandResult {
8
+ code: number;
9
+ stdout: string;
10
+ stderr: string;
11
+ timedOut: boolean;
12
+ }
13
+ export declare function runCommand(cmd: string, args: string[], opts?: RunCommandOptions): Promise<RunCommandResult>;
14
+ //# sourceMappingURL=run-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-command.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/run-command.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC;CAC9D;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,UAAU,CAC9B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CAoE3B"}
@@ -0,0 +1,72 @@
1
+ import { spawn } from "node:child_process";
2
+ async function runCommand(cmd, args, opts = {}) {
3
+ return new Promise((resolve, reject) => {
4
+ const spawnOpts = {
5
+ cwd: opts.cwd,
6
+ env: opts.env ?? process.env,
7
+ stdio: ["ignore", "pipe", "pipe"]
8
+ };
9
+ let child;
10
+ try {
11
+ child = spawn(cmd, args, spawnOpts);
12
+ } catch (err) {
13
+ reject(err);
14
+ return;
15
+ }
16
+ let stdout = "";
17
+ let stderr = "";
18
+ let stdoutBuf = "";
19
+ let stderrBuf = "";
20
+ let timedOut = false;
21
+ const flushLines = (buf, stream) => {
22
+ const parts = buf.split("\n");
23
+ const tail = parts.pop() ?? "";
24
+ for (const line of parts) {
25
+ if (opts.onLine) opts.onLine(line, stream);
26
+ }
27
+ return tail;
28
+ };
29
+ child.stdout?.setEncoding("utf-8");
30
+ child.stdout?.on("data", (chunk) => {
31
+ stdout += chunk;
32
+ stdoutBuf = flushLines(stdoutBuf + chunk, "stdout");
33
+ });
34
+ child.stderr?.setEncoding("utf-8");
35
+ child.stderr?.on("data", (chunk) => {
36
+ stderr += chunk;
37
+ stderrBuf = flushLines(stderrBuf + chunk, "stderr");
38
+ });
39
+ let timer = null;
40
+ if (opts.timeout && opts.timeout > 0) {
41
+ timer = setTimeout(() => {
42
+ timedOut = true;
43
+ child.kill("SIGTERM");
44
+ setTimeout(() => {
45
+ try {
46
+ child.kill("SIGKILL");
47
+ } catch {
48
+ }
49
+ }, 2e3).unref();
50
+ }, opts.timeout);
51
+ }
52
+ child.on("error", (err) => {
53
+ if (timer) clearTimeout(timer);
54
+ reject(err);
55
+ });
56
+ child.on("close", (code) => {
57
+ if (timer) clearTimeout(timer);
58
+ if (stdoutBuf && opts.onLine) opts.onLine(stdoutBuf, "stdout");
59
+ if (stderrBuf && opts.onLine) opts.onLine(stderrBuf, "stderr");
60
+ resolve({
61
+ code: code ?? (timedOut ? -1 : 1),
62
+ stdout,
63
+ stderr,
64
+ timedOut
65
+ });
66
+ });
67
+ });
68
+ }
69
+ export {
70
+ runCommand
71
+ };
72
+ //# sourceMappingURL=run-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/cli/tui/run-command.ts"],"sourcesContent":["import { spawn, type SpawnOptions } from 'node:child_process';\n\nexport interface RunCommandOptions {\n cwd?: string;\n env?: NodeJS.ProcessEnv;\n timeout?: number;\n onLine?: (line: string, stream: 'stdout' | 'stderr') => void;\n}\n\nexport interface RunCommandResult {\n code: number;\n stdout: string;\n stderr: string;\n timedOut: boolean;\n}\n\nexport async function runCommand(\n cmd: string,\n args: string[],\n opts: RunCommandOptions = {},\n): Promise<RunCommandResult> {\n return new Promise((resolve, reject) => {\n const spawnOpts: SpawnOptions = {\n cwd: opts.cwd,\n env: opts.env ?? process.env,\n stdio: ['ignore', 'pipe', 'pipe'],\n };\n\n let child;\n try {\n child = spawn(cmd, args, spawnOpts);\n } catch (err) {\n reject(err);\n return;\n }\n\n let stdout = '';\n let stderr = '';\n let stdoutBuf = '';\n let stderrBuf = '';\n let timedOut = false;\n\n const flushLines = (buf: string, stream: 'stdout' | 'stderr'): string => {\n const parts = buf.split('\\n');\n const tail = parts.pop() ?? '';\n for (const line of parts) {\n if (opts.onLine) opts.onLine(line, stream);\n }\n return tail;\n };\n\n child.stdout?.setEncoding('utf-8');\n child.stdout?.on('data', (chunk: string) => {\n stdout += chunk;\n stdoutBuf = flushLines(stdoutBuf + chunk, 'stdout');\n });\n child.stderr?.setEncoding('utf-8');\n child.stderr?.on('data', (chunk: string) => {\n stderr += chunk;\n stderrBuf = flushLines(stderrBuf + chunk, 'stderr');\n });\n\n let timer: NodeJS.Timeout | null = null;\n if (opts.timeout && opts.timeout > 0) {\n timer = setTimeout(() => {\n timedOut = true;\n child.kill('SIGTERM');\n setTimeout(() => { try { child.kill('SIGKILL'); } catch {} }, 2000).unref();\n }, opts.timeout);\n }\n\n child.on('error', (err) => {\n if (timer) clearTimeout(timer);\n reject(err);\n });\n\n child.on('close', (code) => {\n if (timer) clearTimeout(timer);\n if (stdoutBuf && opts.onLine) opts.onLine(stdoutBuf, 'stdout');\n if (stderrBuf && opts.onLine) opts.onLine(stderrBuf, 'stderr');\n resolve({\n code: code ?? (timedOut ? -1 : 1),\n stdout,\n stderr,\n timedOut,\n });\n });\n });\n}\n"],"mappings":"AAAA,SAAS,aAAgC;AAgBzC,eAAsB,WACpB,KACA,MACA,OAA0B,CAAC,GACA;AAC3B,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,UAAM,YAA0B;AAAA,MAC9B,KAAK,KAAK;AAAA,MACV,KAAK,KAAK,OAAO,QAAQ;AAAA,MACzB,OAAO,CAAC,UAAU,QAAQ,MAAM;AAAA,IAClC;AAEA,QAAI;AACJ,QAAI;AACF,cAAQ,MAAM,KAAK,MAAM,SAAS;AAAA,IACpC,SAAS,KAAK;AACZ,aAAO,GAAG;AACV;AAAA,IACF;AAEA,QAAI,SAAS;AACb,QAAI,SAAS;AACb,QAAI,YAAY;AAChB,QAAI,YAAY;AAChB,QAAI,WAAW;AAEf,UAAM,aAAa,CAAC,KAAa,WAAwC;AACvE,YAAM,QAAQ,IAAI,MAAM,IAAI;AAC5B,YAAM,OAAO,MAAM,IAAI,KAAK;AAC5B,iBAAW,QAAQ,OAAO;AACxB,YAAI,KAAK,OAAQ,MAAK,OAAO,MAAM,MAAM;AAAA,MAC3C;AACA,aAAO;AAAA,IACT;AAEA,UAAM,QAAQ,YAAY,OAAO;AACjC,UAAM,QAAQ,GAAG,QAAQ,CAAC,UAAkB;AAC1C,gBAAU;AACV,kBAAY,WAAW,YAAY,OAAO,QAAQ;AAAA,IACpD,CAAC;AACD,UAAM,QAAQ,YAAY,OAAO;AACjC,UAAM,QAAQ,GAAG,QAAQ,CAAC,UAAkB;AAC1C,gBAAU;AACV,kBAAY,WAAW,YAAY,OAAO,QAAQ;AAAA,IACpD,CAAC;AAED,QAAI,QAA+B;AACnC,QAAI,KAAK,WAAW,KAAK,UAAU,GAAG;AACpC,cAAQ,WAAW,MAAM;AACvB,mBAAW;AACX,cAAM,KAAK,SAAS;AACpB,mBAAW,MAAM;AAAE,cAAI;AAAE,kBAAM,KAAK,SAAS;AAAA,UAAG,QAAQ;AAAA,UAAC;AAAA,QAAE,GAAG,GAAI,EAAE,MAAM;AAAA,MAC5E,GAAG,KAAK,OAAO;AAAA,IACjB;AAEA,UAAM,GAAG,SAAS,CAAC,QAAQ;AACzB,UAAI,MAAO,cAAa,KAAK;AAC7B,aAAO,GAAG;AAAA,IACZ,CAAC;AAED,UAAM,GAAG,SAAS,CAAC,SAAS;AAC1B,UAAI,MAAO,cAAa,KAAK;AAC7B,UAAI,aAAa,KAAK,OAAQ,MAAK,OAAO,WAAW,QAAQ;AAC7D,UAAI,aAAa,KAAK,OAAQ,MAAK,OAAO,WAAW,QAAQ;AAC7D,cAAQ;AAAA,QACN,MAAM,SAAS,WAAW,KAAK;AAAA,QAC/B;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,EACH,CAAC;AACH;","names":[]}
@@ -0,0 +1,6 @@
1
+ import type { AgentId, DetectedAgent } from './agents.js';
2
+ export declare class NotTtyError extends Error {
3
+ constructor();
4
+ }
5
+ export declare function selectAgents(detected: DetectedAgent[]): Promise<AgentId[]>;
6
+ //# sourceMappingURL=select-agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-agents.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/select-agents.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE1D,qBAAa,WAAY,SAAQ,KAAK;;CAKrC;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAsBhF"}
@@ -0,0 +1,32 @@
1
+ import { checkbox } from "@inquirer/prompts";
2
+ class NotTtyError extends Error {
3
+ constructor() {
4
+ super("Cannot prompt for agent selection: stdout is not a TTY. Use --agents flag in non-interactive mode.");
5
+ this.name = "NotTtyError";
6
+ }
7
+ }
8
+ async function selectAgents(detected) {
9
+ if (!process.stdout.isTTY) {
10
+ throw new NotTtyError();
11
+ }
12
+ if (detected.length === 0) {
13
+ return [];
14
+ }
15
+ const choices = detected.map((a) => ({
16
+ name: a.displayName,
17
+ value: a.id,
18
+ checked: a.detected,
19
+ disabled: a.detected ? false : "(not installed)"
20
+ }));
21
+ const selected = await checkbox({
22
+ message: "Select agents to configure (space to toggle, enter to confirm)",
23
+ choices,
24
+ loop: false
25
+ });
26
+ return selected;
27
+ }
28
+ export {
29
+ NotTtyError,
30
+ selectAgents
31
+ };
32
+ //# sourceMappingURL=select-agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/cli/tui/select-agents.ts"],"sourcesContent":["import { checkbox } from '@inquirer/prompts';\nimport type { AgentId, DetectedAgent } from './agents.js';\n\nexport class NotTtyError extends Error {\n constructor() {\n super('Cannot prompt for agent selection: stdout is not a TTY. Use --agents flag in non-interactive mode.');\n this.name = 'NotTtyError';\n }\n}\n\nexport async function selectAgents(detected: DetectedAgent[]): Promise<AgentId[]> {\n if (!process.stdout.isTTY) {\n throw new NotTtyError();\n }\n if (detected.length === 0) {\n return [];\n }\n\n const choices = detected.map((a) => ({\n name: a.displayName,\n value: a.id,\n checked: a.detected,\n disabled: a.detected ? (false as const) : ('(not installed)' as const),\n }));\n\n const selected = await checkbox<AgentId>({\n message: 'Select agents to configure (space to toggle, enter to confirm)',\n choices,\n loop: false,\n });\n\n return selected;\n}\n"],"mappings":"AAAA,SAAS,gBAAgB;AAGlB,MAAM,oBAAoB,MAAM;AAAA,EACrC,cAAc;AACZ,UAAM,oGAAoG;AAC1G,SAAK,OAAO;AAAA,EACd;AACF;AAEA,eAAsB,aAAa,UAA+C;AAChF,MAAI,CAAC,QAAQ,OAAO,OAAO;AACzB,UAAM,IAAI,YAAY;AAAA,EACxB;AACA,MAAI,SAAS,WAAW,GAAG;AACzB,WAAO,CAAC;AAAA,EACV;AAEA,QAAM,UAAU,SAAS,IAAI,CAAC,OAAO;AAAA,IACnC,MAAM,EAAE;AAAA,IACR,OAAO,EAAE;AAAA,IACT,SAAS,EAAE;AAAA,IACX,UAAU,EAAE,WAAY,QAAmB;AAAA,EAC7C,EAAE;AAEF,QAAM,WAAW,MAAM,SAAkB;AAAA,IACvC,SAAS;AAAA,IACT;AAAA,IACA,MAAM;AAAA,EACR,CAAC;AAED,SAAO;AACT;","names":[]}
@@ -0,0 +1,11 @@
1
+ export interface ConnectedAgent {
2
+ id: string;
3
+ displayName: string;
4
+ configured: boolean;
5
+ path: string;
6
+ }
7
+ export interface ReadConnectedAgentsOptions {
8
+ home?: string;
9
+ }
10
+ export declare function readConnectedAgents(opts?: ReadConnectedAgentsOptions): ConnectedAgent[];
11
+ //# sourceMappingURL=status-agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-agents.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/status-agents.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAqBD,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,mBAAmB,CAAC,IAAI,GAAE,0BAA+B,GAAG,cAAc,EAAE,CA8B3F"}
@@ -0,0 +1,53 @@
1
+ import { existsSync, readFileSync } from "node:fs";
2
+ import { homedir } from "node:os";
3
+ import { join } from "node:path";
4
+ import TOML from "@iarna/toml";
5
+ const SPECS = [
6
+ { id: "claude-code", displayName: "Claude Code", format: "cli", relPath: "", keyPath: [] },
7
+ { id: "cursor", displayName: "Cursor", format: "json", relPath: ".cursor/mcp.json", keyPath: ["mcpServers", "wigolo"] },
8
+ { id: "vscode", displayName: "VS Code", format: "json", relPath: ".vscode/mcp.json", keyPath: ["servers", "wigolo"] },
9
+ { id: "zed", displayName: "Zed", format: "json", relPath: ".config/zed/settings.json", keyPath: ["context_servers", "wigolo"] },
10
+ { id: "gemini-cli", displayName: "Gemini CLI", format: "json", relPath: ".gemini/settings.json", keyPath: ["mcpServers", "wigolo"] },
11
+ { id: "windsurf", displayName: "Windsurf", format: "json", relPath: ".codeium/windsurf/mcp_config.json", keyPath: ["mcpServers", "wigolo"] },
12
+ { id: "opencode", displayName: "OpenCode", format: "json", relPath: ".config/opencode/config.json", keyPath: ["mcp", "wigolo"] },
13
+ { id: "codex", displayName: "Codex", format: "toml", relPath: ".codex/config.toml", keyPath: ["mcp_servers", "wigolo"] }
14
+ ];
15
+ function readConnectedAgents(opts = {}) {
16
+ const home = opts.home ?? homedir();
17
+ const out = [];
18
+ for (const spec of SPECS) {
19
+ if (spec.format === "cli") {
20
+ out.push({ id: spec.id, displayName: spec.displayName, configured: false, path: "(use `claude mcp list`)" });
21
+ continue;
22
+ }
23
+ const abs = join(home, spec.relPath);
24
+ if (!existsSync(abs)) {
25
+ out.push({ id: spec.id, displayName: spec.displayName, configured: false, path: abs });
26
+ continue;
27
+ }
28
+ let parsed;
29
+ try {
30
+ const raw = readFileSync(abs, "utf-8");
31
+ parsed = spec.format === "toml" ? TOML.parse(raw) : JSON.parse(raw);
32
+ } catch {
33
+ out.push({ id: spec.id, displayName: spec.displayName, configured: false, path: abs });
34
+ continue;
35
+ }
36
+ const configured = hasKeyPath(parsed, spec.keyPath);
37
+ out.push({ id: spec.id, displayName: spec.displayName, configured, path: abs });
38
+ }
39
+ return out;
40
+ }
41
+ function hasKeyPath(node, keyPath) {
42
+ let cursor = node;
43
+ for (const key of keyPath) {
44
+ if (typeof cursor !== "object" || cursor === null) return false;
45
+ if (!(key in cursor)) return false;
46
+ cursor = cursor[key];
47
+ }
48
+ return cursor !== void 0 && cursor !== null;
49
+ }
50
+ export {
51
+ readConnectedAgents
52
+ };
53
+ //# sourceMappingURL=status-agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/cli/tui/status-agents.ts"],"sourcesContent":["import { existsSync, readFileSync } from 'node:fs';\nimport { homedir } from 'node:os';\nimport { join } from 'node:path';\nimport TOML from '@iarna/toml';\n\nexport interface ConnectedAgent {\n id: string;\n displayName: string;\n configured: boolean;\n path: string;\n}\n\ninterface AgentSpec {\n id: string;\n displayName: string;\n format: 'json' | 'toml' | 'cli';\n relPath: string;\n keyPath: readonly string[];\n}\n\nconst SPECS: readonly AgentSpec[] = [\n { id: 'claude-code', displayName: 'Claude Code', format: 'cli', relPath: '', keyPath: [] },\n { id: 'cursor', displayName: 'Cursor', format: 'json', relPath: '.cursor/mcp.json', keyPath: ['mcpServers', 'wigolo'] },\n { id: 'vscode', displayName: 'VS Code', format: 'json', relPath: '.vscode/mcp.json', keyPath: ['servers', 'wigolo'] },\n { id: 'zed', displayName: 'Zed', format: 'json', relPath: '.config/zed/settings.json', keyPath: ['context_servers', 'wigolo'] },\n { id: 'gemini-cli', displayName: 'Gemini CLI', format: 'json', relPath: '.gemini/settings.json', keyPath: ['mcpServers', 'wigolo'] },\n { id: 'windsurf', displayName: 'Windsurf', format: 'json', relPath: '.codeium/windsurf/mcp_config.json', keyPath: ['mcpServers', 'wigolo'] },\n { id: 'opencode', displayName: 'OpenCode', format: 'json', relPath: '.config/opencode/config.json', keyPath: ['mcp', 'wigolo'] },\n { id: 'codex', displayName: 'Codex', format: 'toml', relPath: '.codex/config.toml', keyPath: ['mcp_servers', 'wigolo'] },\n];\n\nexport interface ReadConnectedAgentsOptions {\n home?: string;\n}\n\nexport function readConnectedAgents(opts: ReadConnectedAgentsOptions = {}): ConnectedAgent[] {\n const home = opts.home ?? homedir();\n const out: ConnectedAgent[] = [];\n\n for (const spec of SPECS) {\n if (spec.format === 'cli') {\n out.push({ id: spec.id, displayName: spec.displayName, configured: false, path: '(use `claude mcp list`)' });\n continue;\n }\n\n const abs = join(home, spec.relPath);\n if (!existsSync(abs)) {\n out.push({ id: spec.id, displayName: spec.displayName, configured: false, path: abs });\n continue;\n }\n\n let parsed: unknown;\n try {\n const raw = readFileSync(abs, 'utf-8');\n parsed = spec.format === 'toml' ? TOML.parse(raw) : JSON.parse(raw);\n } catch {\n out.push({ id: spec.id, displayName: spec.displayName, configured: false, path: abs });\n continue;\n }\n\n const configured = hasKeyPath(parsed, spec.keyPath);\n out.push({ id: spec.id, displayName: spec.displayName, configured, path: abs });\n }\n\n return out;\n}\n\nfunction hasKeyPath(node: unknown, keyPath: readonly string[]): boolean {\n let cursor: unknown = node;\n for (const key of keyPath) {\n if (typeof cursor !== 'object' || cursor === null) return false;\n if (!(key in (cursor as Record<string, unknown>))) return false;\n cursor = (cursor as Record<string, unknown>)[key];\n }\n return cursor !== undefined && cursor !== null;\n}\n"],"mappings":"AAAA,SAAS,YAAY,oBAAoB;AACzC,SAAS,eAAe;AACxB,SAAS,YAAY;AACrB,OAAO,UAAU;AAiBjB,MAAM,QAA8B;AAAA,EAClC,EAAE,IAAI,eAAe,aAAa,eAAkB,QAAQ,OAAQ,SAAS,IAAqC,SAAS,CAAC,EAAE;AAAA,EAC9H,EAAE,IAAI,UAAe,aAAa,UAAkB,QAAQ,QAAQ,SAAS,oBAAqC,SAAS,CAAC,cAAc,QAAQ,EAAE;AAAA,EACpJ,EAAE,IAAI,UAAe,aAAa,WAAkB,QAAQ,QAAQ,SAAS,oBAAqC,SAAS,CAAC,WAAW,QAAQ,EAAE;AAAA,EACjJ,EAAE,IAAI,OAAe,aAAa,OAAkB,QAAQ,QAAQ,SAAS,6BAAqC,SAAS,CAAC,mBAAmB,QAAQ,EAAE;AAAA,EACzJ,EAAE,IAAI,cAAe,aAAa,cAAkB,QAAQ,QAAQ,SAAS,yBAAqC,SAAS,CAAC,cAAc,QAAQ,EAAE;AAAA,EACpJ,EAAE,IAAI,YAAe,aAAa,YAAkB,QAAQ,QAAQ,SAAS,qCAAqC,SAAS,CAAC,cAAc,QAAQ,EAAE;AAAA,EACpJ,EAAE,IAAI,YAAe,aAAa,YAAkB,QAAQ,QAAQ,SAAS,gCAAqC,SAAS,CAAC,OAAO,QAAQ,EAAE;AAAA,EAC7I,EAAE,IAAI,SAAe,aAAa,SAAkB,QAAQ,QAAQ,SAAS,sBAAqC,SAAS,CAAC,eAAe,QAAQ,EAAE;AACvJ;AAMO,SAAS,oBAAoB,OAAmC,CAAC,GAAqB;AAC3F,QAAM,OAAO,KAAK,QAAQ,QAAQ;AAClC,QAAM,MAAwB,CAAC;AAE/B,aAAW,QAAQ,OAAO;AACxB,QAAI,KAAK,WAAW,OAAO;AACzB,UAAI,KAAK,EAAE,IAAI,KAAK,IAAI,aAAa,KAAK,aAAa,YAAY,OAAO,MAAM,0BAA0B,CAAC;AAC3G;AAAA,IACF;AAEA,UAAM,MAAM,KAAK,MAAM,KAAK,OAAO;AACnC,QAAI,CAAC,WAAW,GAAG,GAAG;AACpB,UAAI,KAAK,EAAE,IAAI,KAAK,IAAI,aAAa,KAAK,aAAa,YAAY,OAAO,MAAM,IAAI,CAAC;AACrF;AAAA,IACF;AAEA,QAAI;AACJ,QAAI;AACF,YAAM,MAAM,aAAa,KAAK,OAAO;AACrC,eAAS,KAAK,WAAW,SAAS,KAAK,MAAM,GAAG,IAAI,KAAK,MAAM,GAAG;AAAA,IACpE,QAAQ;AACN,UAAI,KAAK,EAAE,IAAI,KAAK,IAAI,aAAa,KAAK,aAAa,YAAY,OAAO,MAAM,IAAI,CAAC;AACrF;AAAA,IACF;AAEA,UAAM,aAAa,WAAW,QAAQ,KAAK,OAAO;AAClD,QAAI,KAAK,EAAE,IAAI,KAAK,IAAI,aAAa,KAAK,aAAa,YAAY,MAAM,IAAI,CAAC;AAAA,EAChF;AAEA,SAAO;AACT;AAEA,SAAS,WAAW,MAAe,SAAqC;AACtE,MAAI,SAAkB;AACtB,aAAW,OAAO,SAAS;AACzB,QAAI,OAAO,WAAW,YAAY,WAAW,KAAM,QAAO;AAC1D,QAAI,EAAE,OAAQ,QAAqC,QAAO;AAC1D,aAAU,OAAmC,GAAG;AAAA,EAClD;AACA,SAAO,WAAW,UAAa,WAAW;AAC5C;","names":[]}
@@ -0,0 +1,6 @@
1
+ export interface CacheStats {
2
+ pages: number;
3
+ bytes: number;
4
+ }
5
+ export declare function readCacheStats(dataDir: string): CacheStats;
6
+ //# sourceMappingURL=status-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-cache.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/status-cache.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CA+B1D"}
@@ -0,0 +1,39 @@
1
+ import { existsSync, statSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import Database from "better-sqlite3";
4
+ function readCacheStats(dataDir) {
5
+ const dbPath = join(dataDir, "cache.db");
6
+ if (!existsSync(dbPath)) return { pages: 0, bytes: 0 };
7
+ let bytes = 0;
8
+ try {
9
+ const stat = statSync(dbPath);
10
+ if (!stat.isFile()) return { pages: 0, bytes: 0 };
11
+ bytes = stat.size;
12
+ } catch {
13
+ return { pages: 0, bytes: 0 };
14
+ }
15
+ let pages = 0;
16
+ let db = null;
17
+ try {
18
+ db = new Database(dbPath, { readonly: true, fileMustExist: true });
19
+ const row = db.prepare(
20
+ "SELECT count(*) AS c FROM sqlite_master WHERE type='table' AND name='url_cache'"
21
+ ).get();
22
+ if (row.c > 0) {
23
+ const count = db.prepare("SELECT count(*) AS c FROM url_cache").get();
24
+ pages = count.c;
25
+ }
26
+ } catch {
27
+ pages = 0;
28
+ } finally {
29
+ try {
30
+ db?.close();
31
+ } catch {
32
+ }
33
+ }
34
+ return { pages, bytes };
35
+ }
36
+ export {
37
+ readCacheStats
38
+ };
39
+ //# sourceMappingURL=status-cache.js.map