orquesta-cli 0.1.13 → 0.1.15

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 (541) hide show
  1. package/README.md +30 -4
  2. package/dist/cli.js +65 -4
  3. package/dist/core/config/config-manager.d.ts +13 -1
  4. package/dist/core/config/config-manager.js +83 -0
  5. package/dist/core/slash-command-handler.d.ts +1 -0
  6. package/dist/core/slash-command-handler.js +129 -0
  7. package/dist/orquesta/config-sync.d.ts +73 -0
  8. package/dist/orquesta/config-sync.js +230 -0
  9. package/dist/orquesta/prompt-reporter.d.ts +16 -0
  10. package/dist/orquesta/prompt-reporter.js +85 -0
  11. package/dist/setup/first-run-setup.d.ts +15 -0
  12. package/dist/setup/first-run-setup.js +238 -0
  13. package/dist/types/index.d.ts +11 -2
  14. package/dist/ui/TodoPanel.d.ts +1 -0
  15. package/dist/ui/TodoPanel.js +6 -1
  16. package/dist/ui/components/LLMSetupWizard.js +381 -7
  17. package/dist/ui/components/Logo.d.ts +2 -0
  18. package/dist/ui/components/Logo.js +10 -3
  19. package/dist/ui/components/OpenRouterModelBrowser.d.ts +13 -0
  20. package/dist/ui/components/OpenRouterModelBrowser.js +221 -0
  21. package/dist/ui/components/PlanExecuteApp.js +30 -4
  22. package/dist/ui/components/ProjectSelector.d.ts +8 -0
  23. package/dist/ui/components/ProjectSelector.js +119 -0
  24. package/dist/ui/components/StatusBar.d.ts +2 -0
  25. package/dist/ui/components/StatusBar.js +6 -1
  26. package/dist/ui/hooks/slashCommandProcessor.js +8 -4
  27. package/package.json +11 -5
  28. package/.eslintrc.json +0 -26
  29. package/.prettierrc.json +0 -10
  30. package/CLAUDE.md +0 -199
  31. package/SECURITY.md +0 -290
  32. package/TEST_LOCAL.md +0 -245
  33. package/dist/agents/base/base-agent.d.ts.map +0 -1
  34. package/dist/agents/base/base-agent.js.map +0 -1
  35. package/dist/agents/docs-search/index.d.ts.map +0 -1
  36. package/dist/agents/docs-search/index.js.map +0 -1
  37. package/dist/agents/index.d.ts.map +0 -1
  38. package/dist/agents/index.js.map +0 -1
  39. package/dist/agents/planner/index.d.ts.map +0 -1
  40. package/dist/agents/planner/index.js.map +0 -1
  41. package/dist/cli.d.ts.map +0 -1
  42. package/dist/cli.js.map +0 -1
  43. package/dist/constants.d.ts.map +0 -1
  44. package/dist/constants.js.map +0 -1
  45. package/dist/core/compact/compact-manager.d.ts.map +0 -1
  46. package/dist/core/compact/compact-manager.js.map +0 -1
  47. package/dist/core/compact/compact-prompts.d.ts.map +0 -1
  48. package/dist/core/compact/compact-prompts.js.map +0 -1
  49. package/dist/core/compact/context-tracker.d.ts.map +0 -1
  50. package/dist/core/compact/context-tracker.js.map +0 -1
  51. package/dist/core/compact/index.d.ts.map +0 -1
  52. package/dist/core/compact/index.js.map +0 -1
  53. package/dist/core/config/config-manager.d.ts.map +0 -1
  54. package/dist/core/config/config-manager.js.map +0 -1
  55. package/dist/core/config/index.d.ts.map +0 -1
  56. package/dist/core/config/index.js.map +0 -1
  57. package/dist/core/docs-manager.d.ts.map +0 -1
  58. package/dist/core/docs-manager.js.map +0 -1
  59. package/dist/core/git-auto-updater.d.ts +0 -58
  60. package/dist/core/git-auto-updater.d.ts.map +0 -1
  61. package/dist/core/git-auto-updater.js +0 -374
  62. package/dist/core/git-auto-updater.js.map +0 -1
  63. package/dist/core/llm/index.d.ts.map +0 -1
  64. package/dist/core/llm/index.js.map +0 -1
  65. package/dist/core/llm/llm-client.d.ts.map +0 -1
  66. package/dist/core/llm/llm-client.js.map +0 -1
  67. package/dist/core/session/index.d.ts.map +0 -1
  68. package/dist/core/session/index.js.map +0 -1
  69. package/dist/core/session/session-manager.d.ts.map +0 -1
  70. package/dist/core/session/session-manager.js.map +0 -1
  71. package/dist/core/slash-command-handler.d.ts.map +0 -1
  72. package/dist/core/slash-command-handler.js.map +0 -1
  73. package/dist/core/usage-tracker.d.ts.map +0 -1
  74. package/dist/core/usage-tracker.js.map +0 -1
  75. package/dist/errors/base.d.ts.map +0 -1
  76. package/dist/errors/base.js.map +0 -1
  77. package/dist/errors/file.d.ts.map +0 -1
  78. package/dist/errors/file.js.map +0 -1
  79. package/dist/errors/index.d.ts.map +0 -1
  80. package/dist/errors/index.js.map +0 -1
  81. package/dist/errors/llm.d.ts.map +0 -1
  82. package/dist/errors/llm.js.map +0 -1
  83. package/dist/errors/network.d.ts.map +0 -1
  84. package/dist/errors/network.js.map +0 -1
  85. package/dist/errors/validation.d.ts.map +0 -1
  86. package/dist/errors/validation.js.map +0 -1
  87. package/dist/eval/eval-runner.d.ts.map +0 -1
  88. package/dist/eval/eval-runner.js.map +0 -1
  89. package/dist/eval/index.d.ts.map +0 -1
  90. package/dist/eval/index.js.map +0 -1
  91. package/dist/eval/types.d.ts.map +0 -1
  92. package/dist/eval/types.js.map +0 -1
  93. package/dist/index.d.ts.map +0 -1
  94. package/dist/index.js.map +0 -1
  95. package/dist/orchestration/index.d.ts.map +0 -1
  96. package/dist/orchestration/index.js.map +0 -1
  97. package/dist/orchestration/plan-executor.d.ts.map +0 -1
  98. package/dist/orchestration/plan-executor.js.map +0 -1
  99. package/dist/orchestration/types.d.ts.map +0 -1
  100. package/dist/orchestration/types.js.map +0 -1
  101. package/dist/orchestration/utils.d.ts.map +0 -1
  102. package/dist/orchestration/utils.js.map +0 -1
  103. package/dist/orquesta/connection.d.ts.map +0 -1
  104. package/dist/orquesta/connection.js.map +0 -1
  105. package/dist/prompts/agents/docs-search-decision.d.ts.map +0 -1
  106. package/dist/prompts/agents/docs-search-decision.js.map +0 -1
  107. package/dist/prompts/agents/docs-search.d.ts.map +0 -1
  108. package/dist/prompts/agents/docs-search.js.map +0 -1
  109. package/dist/prompts/agents/planning.d.ts.map +0 -1
  110. package/dist/prompts/agents/planning.js.map +0 -1
  111. package/dist/prompts/index.d.ts.map +0 -1
  112. package/dist/prompts/index.js.map +0 -1
  113. package/dist/prompts/shared/codebase-rules.d.ts.map +0 -1
  114. package/dist/prompts/shared/codebase-rules.js.map +0 -1
  115. package/dist/prompts/shared/git-rules.d.ts.map +0 -1
  116. package/dist/prompts/shared/git-rules.js.map +0 -1
  117. package/dist/prompts/shared/language-rules.d.ts.map +0 -1
  118. package/dist/prompts/shared/language-rules.js.map +0 -1
  119. package/dist/prompts/shared/tool-usage.d.ts.map +0 -1
  120. package/dist/prompts/shared/tool-usage.js.map +0 -1
  121. package/dist/prompts/system/compact.d.ts.map +0 -1
  122. package/dist/prompts/system/compact.js.map +0 -1
  123. package/dist/prompts/system/plan-execute.d.ts.map +0 -1
  124. package/dist/prompts/system/plan-execute.js.map +0 -1
  125. package/dist/tools/browser/browser-client.d.ts.map +0 -1
  126. package/dist/tools/browser/browser-client.js.map +0 -1
  127. package/dist/tools/browser/browser-tools.d.ts.map +0 -1
  128. package/dist/tools/browser/browser-tools.js.map +0 -1
  129. package/dist/tools/browser/index.d.ts.map +0 -1
  130. package/dist/tools/browser/index.js.map +0 -1
  131. package/dist/tools/index.d.ts.map +0 -1
  132. package/dist/tools/index.js.map +0 -1
  133. package/dist/tools/llm/agents/docs-search-tools.d.ts.map +0 -1
  134. package/dist/tools/llm/agents/docs-search-tools.js.map +0 -1
  135. package/dist/tools/llm/agents/index.d.ts.map +0 -1
  136. package/dist/tools/llm/agents/index.js.map +0 -1
  137. package/dist/tools/llm/index.d.ts.map +0 -1
  138. package/dist/tools/llm/index.js.map +0 -1
  139. package/dist/tools/llm/simple/ask-user-tool.d.ts.map +0 -1
  140. package/dist/tools/llm/simple/ask-user-tool.js.map +0 -1
  141. package/dist/tools/llm/simple/background-bash-tool.d.ts.map +0 -1
  142. package/dist/tools/llm/simple/background-bash-tool.js.map +0 -1
  143. package/dist/tools/llm/simple/background-powershell-tool.d.ts.map +0 -1
  144. package/dist/tools/llm/simple/background-powershell-tool.js.map +0 -1
  145. package/dist/tools/llm/simple/bash-tool.d.ts.map +0 -1
  146. package/dist/tools/llm/simple/bash-tool.js.map +0 -1
  147. package/dist/tools/llm/simple/docs-search-agent-tool.d.ts.map +0 -1
  148. package/dist/tools/llm/simple/docs-search-agent-tool.js.map +0 -1
  149. package/dist/tools/llm/simple/file-tools.d.ts.map +0 -1
  150. package/dist/tools/llm/simple/file-tools.js.map +0 -1
  151. package/dist/tools/llm/simple/final-response-tool.d.ts.map +0 -1
  152. package/dist/tools/llm/simple/final-response-tool.js.map +0 -1
  153. package/dist/tools/llm/simple/index.d.ts.map +0 -1
  154. package/dist/tools/llm/simple/index.js.map +0 -1
  155. package/dist/tools/llm/simple/planning-tools.d.ts.map +0 -1
  156. package/dist/tools/llm/simple/planning-tools.js.map +0 -1
  157. package/dist/tools/llm/simple/powershell-tool.d.ts.map +0 -1
  158. package/dist/tools/llm/simple/powershell-tool.js.map +0 -1
  159. package/dist/tools/llm/simple/simple-tool-executor.d.ts.map +0 -1
  160. package/dist/tools/llm/simple/simple-tool-executor.js.map +0 -1
  161. package/dist/tools/llm/simple/todo-tools.d.ts.map +0 -1
  162. package/dist/tools/llm/simple/todo-tools.js.map +0 -1
  163. package/dist/tools/llm/simple/user-interaction-tools.d.ts.map +0 -1
  164. package/dist/tools/llm/simple/user-interaction-tools.js.map +0 -1
  165. package/dist/tools/office/common/constants.d.ts.map +0 -1
  166. package/dist/tools/office/common/constants.js.map +0 -1
  167. package/dist/tools/office/common/index.d.ts.map +0 -1
  168. package/dist/tools/office/common/index.js.map +0 -1
  169. package/dist/tools/office/common/types.d.ts.map +0 -1
  170. package/dist/tools/office/common/types.js.map +0 -1
  171. package/dist/tools/office/common/utils.d.ts.map +0 -1
  172. package/dist/tools/office/common/utils.js.map +0 -1
  173. package/dist/tools/office/excel-client.d.ts.map +0 -1
  174. package/dist/tools/office/excel-client.js.map +0 -1
  175. package/dist/tools/office/excel-tools/cells.d.ts.map +0 -1
  176. package/dist/tools/office/excel-tools/cells.js.map +0 -1
  177. package/dist/tools/office/excel-tools/charts.d.ts.map +0 -1
  178. package/dist/tools/office/excel-tools/charts.js.map +0 -1
  179. package/dist/tools/office/excel-tools/comments.d.ts.map +0 -1
  180. package/dist/tools/office/excel-tools/comments.js.map +0 -1
  181. package/dist/tools/office/excel-tools/data-ops.d.ts.map +0 -1
  182. package/dist/tools/office/excel-tools/data-ops.js.map +0 -1
  183. package/dist/tools/office/excel-tools/export.d.ts.map +0 -1
  184. package/dist/tools/office/excel-tools/export.js.map +0 -1
  185. package/dist/tools/office/excel-tools/formatting.d.ts.map +0 -1
  186. package/dist/tools/office/excel-tools/formatting.js.map +0 -1
  187. package/dist/tools/office/excel-tools/index.d.ts.map +0 -1
  188. package/dist/tools/office/excel-tools/index.js.map +0 -1
  189. package/dist/tools/office/excel-tools/launch.d.ts.map +0 -1
  190. package/dist/tools/office/excel-tools/launch.js.map +0 -1
  191. package/dist/tools/office/excel-tools/media.d.ts.map +0 -1
  192. package/dist/tools/office/excel-tools/media.js.map +0 -1
  193. package/dist/tools/office/excel-tools/named-ranges.d.ts.map +0 -1
  194. package/dist/tools/office/excel-tools/named-ranges.js.map +0 -1
  195. package/dist/tools/office/excel-tools/protection.d.ts.map +0 -1
  196. package/dist/tools/office/excel-tools/protection.js.map +0 -1
  197. package/dist/tools/office/excel-tools/rows-columns.d.ts.map +0 -1
  198. package/dist/tools/office/excel-tools/rows-columns.js.map +0 -1
  199. package/dist/tools/office/excel-tools/sheets.d.ts.map +0 -1
  200. package/dist/tools/office/excel-tools/sheets.js.map +0 -1
  201. package/dist/tools/office/excel-tools/validation.d.ts.map +0 -1
  202. package/dist/tools/office/excel-tools/validation.js.map +0 -1
  203. package/dist/tools/office/excel-tools.d.ts.map +0 -1
  204. package/dist/tools/office/excel-tools.js.map +0 -1
  205. package/dist/tools/office/index.d.ts.map +0 -1
  206. package/dist/tools/office/index.js.map +0 -1
  207. package/dist/tools/office/office-client-base.d.ts.map +0 -1
  208. package/dist/tools/office/office-client-base.js.map +0 -1
  209. package/dist/tools/office/office-client.d.ts.map +0 -1
  210. package/dist/tools/office/office-client.js.map +0 -1
  211. package/dist/tools/office/powerpoint-client.d.ts.map +0 -1
  212. package/dist/tools/office/powerpoint-client.js.map +0 -1
  213. package/dist/tools/office/powerpoint-tools/effects.d.ts.map +0 -1
  214. package/dist/tools/office/powerpoint-tools/effects.js.map +0 -1
  215. package/dist/tools/office/powerpoint-tools/export.d.ts.map +0 -1
  216. package/dist/tools/office/powerpoint-tools/export.js.map +0 -1
  217. package/dist/tools/office/powerpoint-tools/index.d.ts.map +0 -1
  218. package/dist/tools/office/powerpoint-tools/index.js.map +0 -1
  219. package/dist/tools/office/powerpoint-tools/launch.d.ts.map +0 -1
  220. package/dist/tools/office/powerpoint-tools/launch.js.map +0 -1
  221. package/dist/tools/office/powerpoint-tools/media.d.ts.map +0 -1
  222. package/dist/tools/office/powerpoint-tools/media.js.map +0 -1
  223. package/dist/tools/office/powerpoint-tools/notes.d.ts.map +0 -1
  224. package/dist/tools/office/powerpoint-tools/notes.js.map +0 -1
  225. package/dist/tools/office/powerpoint-tools/sections.d.ts.map +0 -1
  226. package/dist/tools/office/powerpoint-tools/sections.js.map +0 -1
  227. package/dist/tools/office/powerpoint-tools/shapes.d.ts.map +0 -1
  228. package/dist/tools/office/powerpoint-tools/shapes.js.map +0 -1
  229. package/dist/tools/office/powerpoint-tools/slides.d.ts.map +0 -1
  230. package/dist/tools/office/powerpoint-tools/slides.js.map +0 -1
  231. package/dist/tools/office/powerpoint-tools/tables.d.ts.map +0 -1
  232. package/dist/tools/office/powerpoint-tools/tables.js.map +0 -1
  233. package/dist/tools/office/powerpoint-tools/text.d.ts.map +0 -1
  234. package/dist/tools/office/powerpoint-tools/text.js.map +0 -1
  235. package/dist/tools/office/powerpoint-tools.d.ts.map +0 -1
  236. package/dist/tools/office/powerpoint-tools.js.map +0 -1
  237. package/dist/tools/office/word-client.d.ts.map +0 -1
  238. package/dist/tools/office/word-client.js.map +0 -1
  239. package/dist/tools/office/word-tools/bookmarks.d.ts.map +0 -1
  240. package/dist/tools/office/word-tools/bookmarks.js.map +0 -1
  241. package/dist/tools/office/word-tools/comments.d.ts.map +0 -1
  242. package/dist/tools/office/word-tools/comments.js.map +0 -1
  243. package/dist/tools/office/word-tools/content.d.ts.map +0 -1
  244. package/dist/tools/office/word-tools/content.js.map +0 -1
  245. package/dist/tools/office/word-tools/export.d.ts.map +0 -1
  246. package/dist/tools/office/word-tools/export.js.map +0 -1
  247. package/dist/tools/office/word-tools/formatting.d.ts.map +0 -1
  248. package/dist/tools/office/word-tools/formatting.js.map +0 -1
  249. package/dist/tools/office/word-tools/headers-footers.d.ts.map +0 -1
  250. package/dist/tools/office/word-tools/headers-footers.js.map +0 -1
  251. package/dist/tools/office/word-tools/index.d.ts.map +0 -1
  252. package/dist/tools/office/word-tools/index.js.map +0 -1
  253. package/dist/tools/office/word-tools/launch.d.ts.map +0 -1
  254. package/dist/tools/office/word-tools/launch.js.map +0 -1
  255. package/dist/tools/office/word-tools/lists.d.ts.map +0 -1
  256. package/dist/tools/office/word-tools/lists.js.map +0 -1
  257. package/dist/tools/office/word-tools/navigation.d.ts.map +0 -1
  258. package/dist/tools/office/word-tools/navigation.js.map +0 -1
  259. package/dist/tools/office/word-tools/page-setup.d.ts.map +0 -1
  260. package/dist/tools/office/word-tools/page-setup.js.map +0 -1
  261. package/dist/tools/office/word-tools/tables.d.ts.map +0 -1
  262. package/dist/tools/office/word-tools/tables.js.map +0 -1
  263. package/dist/tools/office/word-tools/text.d.ts.map +0 -1
  264. package/dist/tools/office/word-tools/text.js.map +0 -1
  265. package/dist/tools/office/word-tools/undo-redo.d.ts.map +0 -1
  266. package/dist/tools/office/word-tools/undo-redo.js.map +0 -1
  267. package/dist/tools/office/word-tools/watermarks.d.ts.map +0 -1
  268. package/dist/tools/office/word-tools/watermarks.js.map +0 -1
  269. package/dist/tools/office/word-tools.d.ts.map +0 -1
  270. package/dist/tools/office/word-tools.js.map +0 -1
  271. package/dist/tools/registry.d.ts.map +0 -1
  272. package/dist/tools/registry.js.map +0 -1
  273. package/dist/tools/types.d.ts.map +0 -1
  274. package/dist/tools/types.js.map +0 -1
  275. package/dist/types/index.d.ts.map +0 -1
  276. package/dist/types/index.js.map +0 -1
  277. package/dist/ui/PlanExecuteView.d.ts.map +0 -1
  278. package/dist/ui/PlanExecuteView.js.map +0 -1
  279. package/dist/ui/TodoPanel.d.ts.map +0 -1
  280. package/dist/ui/TodoPanel.js.map +0 -1
  281. package/dist/ui/UpdateNotification.d.ts.map +0 -1
  282. package/dist/ui/UpdateNotification.js.map +0 -1
  283. package/dist/ui/components/ActivityIndicator.d.ts.map +0 -1
  284. package/dist/ui/components/ActivityIndicator.js.map +0 -1
  285. package/dist/ui/components/CommandBrowser.d.ts.map +0 -1
  286. package/dist/ui/components/CommandBrowser.js.map +0 -1
  287. package/dist/ui/components/CustomTextInput.d.ts.map +0 -1
  288. package/dist/ui/components/CustomTextInput.js.map +0 -1
  289. package/dist/ui/components/DocsSearchProgress.d.ts.map +0 -1
  290. package/dist/ui/components/DocsSearchProgress.js.map +0 -1
  291. package/dist/ui/components/FileBrowser.d.ts.map +0 -1
  292. package/dist/ui/components/FileBrowser.js.map +0 -1
  293. package/dist/ui/components/LLMSetupWizard.d.ts.map +0 -1
  294. package/dist/ui/components/LLMSetupWizard.js.map +0 -1
  295. package/dist/ui/components/Logo.d.ts.map +0 -1
  296. package/dist/ui/components/Logo.js.map +0 -1
  297. package/dist/ui/components/MarkdownRenderer.d.ts.map +0 -1
  298. package/dist/ui/components/MarkdownRenderer.js.map +0 -1
  299. package/dist/ui/components/ModelSelector.d.ts.map +0 -1
  300. package/dist/ui/components/ModelSelector.js.map +0 -1
  301. package/dist/ui/components/PlanExecuteApp.d.ts.map +0 -1
  302. package/dist/ui/components/PlanExecuteApp.js.map +0 -1
  303. package/dist/ui/components/ProgressBar.d.ts.map +0 -1
  304. package/dist/ui/components/ProgressBar.js.map +0 -1
  305. package/dist/ui/components/StatusBar.d.ts.map +0 -1
  306. package/dist/ui/components/StatusBar.js.map +0 -1
  307. package/dist/ui/components/ThinkingIndicator.d.ts.map +0 -1
  308. package/dist/ui/components/ThinkingIndicator.js.map +0 -1
  309. package/dist/ui/components/TodoListView.d.ts.map +0 -1
  310. package/dist/ui/components/TodoListView.js.map +0 -1
  311. package/dist/ui/components/ToolSelector.d.ts.map +0 -1
  312. package/dist/ui/components/ToolSelector.js.map +0 -1
  313. package/dist/ui/components/dialogs/ApprovalDialog.d.ts.map +0 -1
  314. package/dist/ui/components/dialogs/ApprovalDialog.js.map +0 -1
  315. package/dist/ui/components/dialogs/AskUserDialog.d.ts.map +0 -1
  316. package/dist/ui/components/dialogs/AskUserDialog.js.map +0 -1
  317. package/dist/ui/components/dialogs/DocsBrowser.d.ts.map +0 -1
  318. package/dist/ui/components/dialogs/DocsBrowser.js.map +0 -1
  319. package/dist/ui/components/dialogs/SettingsDialog.d.ts.map +0 -1
  320. package/dist/ui/components/dialogs/SettingsDialog.js.map +0 -1
  321. package/dist/ui/components/dialogs/index.d.ts.map +0 -1
  322. package/dist/ui/components/dialogs/index.js.map +0 -1
  323. package/dist/ui/components/index.d.ts.map +0 -1
  324. package/dist/ui/components/index.js.map +0 -1
  325. package/dist/ui/components/panels/LogPanel.d.ts.map +0 -1
  326. package/dist/ui/components/panels/LogPanel.js.map +0 -1
  327. package/dist/ui/components/panels/SessionPanel.d.ts.map +0 -1
  328. package/dist/ui/components/panels/SessionPanel.js.map +0 -1
  329. package/dist/ui/components/panels/index.d.ts.map +0 -1
  330. package/dist/ui/components/panels/index.js.map +0 -1
  331. package/dist/ui/components/views/ChatView.d.ts.map +0 -1
  332. package/dist/ui/components/views/ChatView.js.map +0 -1
  333. package/dist/ui/components/views/index.d.ts.map +0 -1
  334. package/dist/ui/components/views/index.js.map +0 -1
  335. package/dist/ui/contexts/TokenContext.d.ts.map +0 -1
  336. package/dist/ui/contexts/TokenContext.js.map +0 -1
  337. package/dist/ui/hooks/atFileProcessor.d.ts.map +0 -1
  338. package/dist/ui/hooks/atFileProcessor.js.map +0 -1
  339. package/dist/ui/hooks/index.d.ts.map +0 -1
  340. package/dist/ui/hooks/index.js.map +0 -1
  341. package/dist/ui/hooks/slashCommandProcessor.d.ts.map +0 -1
  342. package/dist/ui/hooks/slashCommandProcessor.js.map +0 -1
  343. package/dist/ui/hooks/useCommandBrowserState.d.ts.map +0 -1
  344. package/dist/ui/hooks/useCommandBrowserState.js.map +0 -1
  345. package/dist/ui/hooks/useFileBrowserState.d.ts.map +0 -1
  346. package/dist/ui/hooks/useFileBrowserState.js.map +0 -1
  347. package/dist/ui/hooks/useFileList.d.ts.map +0 -1
  348. package/dist/ui/hooks/useFileList.js.map +0 -1
  349. package/dist/ui/hooks/useInputHistory.d.ts.map +0 -1
  350. package/dist/ui/hooks/useInputHistory.js.map +0 -1
  351. package/dist/ui/hooks/usePlanExecution.d.ts.map +0 -1
  352. package/dist/ui/hooks/usePlanExecution.js.map +0 -1
  353. package/dist/ui/index.d.ts.map +0 -1
  354. package/dist/ui/index.js.map +0 -1
  355. package/dist/ui/ink-entry.d.ts.map +0 -1
  356. package/dist/ui/ink-entry.js.map +0 -1
  357. package/dist/utils/env-filter.d.ts.map +0 -1
  358. package/dist/utils/env-filter.js.map +0 -1
  359. package/dist/utils/file-system.d.ts.map +0 -1
  360. package/dist/utils/file-system.js.map +0 -1
  361. package/dist/utils/git-utils.d.ts.map +0 -1
  362. package/dist/utils/git-utils.js.map +0 -1
  363. package/dist/utils/json-stream-logger.d.ts.map +0 -1
  364. package/dist/utils/json-stream-logger.js.map +0 -1
  365. package/dist/utils/logger.d.ts.map +0 -1
  366. package/dist/utils/logger.js.map +0 -1
  367. package/dist/utils/platform-utils.d.ts.map +0 -1
  368. package/dist/utils/platform-utils.js.map +0 -1
  369. package/dist/utils/wsl-utils.d.ts.map +0 -1
  370. package/dist/utils/wsl-utils.js.map +0 -1
  371. package/electron.vite.config.ts +0 -63
  372. package/google374b9eba0c52b043.html +0 -1
  373. package/src/agents/base/base-agent.ts +0 -159
  374. package/src/agents/docs-search/index.ts +0 -365
  375. package/src/agents/index.ts +0 -34
  376. package/src/agents/planner/index.ts +0 -544
  377. package/src/cli.ts +0 -201
  378. package/src/constants.ts +0 -47
  379. package/src/core/compact/compact-manager.ts +0 -160
  380. package/src/core/compact/compact-prompts.ts +0 -150
  381. package/src/core/compact/context-tracker.ts +0 -164
  382. package/src/core/compact/index.ts +0 -25
  383. package/src/core/config/config-manager.ts +0 -460
  384. package/src/core/config/index.ts +0 -5
  385. package/src/core/docs-manager.ts +0 -678
  386. package/src/core/llm/index.ts +0 -7
  387. package/src/core/llm/llm-client.ts +0 -1550
  388. package/src/core/session/index.ts +0 -5
  389. package/src/core/session/session-manager.ts +0 -464
  390. package/src/core/slash-command-handler.ts +0 -410
  391. package/src/core/usage-tracker.ts +0 -438
  392. package/src/errors/base.ts +0 -81
  393. package/src/errors/file.ts +0 -183
  394. package/src/errors/index.ts +0 -95
  395. package/src/errors/llm.ts +0 -151
  396. package/src/errors/network.ts +0 -124
  397. package/src/errors/validation.ts +0 -111
  398. package/src/eval/eval-runner.ts +0 -456
  399. package/src/eval/index.ts +0 -8
  400. package/src/eval/types.ts +0 -139
  401. package/src/index.ts +0 -22
  402. package/src/orchestration/index.ts +0 -30
  403. package/src/orchestration/plan-executor.ts +0 -652
  404. package/src/orchestration/types.ts +0 -127
  405. package/src/orchestration/utils.ts +0 -119
  406. package/src/orquesta/connection.ts +0 -291
  407. package/src/prompts/agents/docs-search-decision.ts +0 -74
  408. package/src/prompts/agents/docs-search.ts +0 -84
  409. package/src/prompts/agents/planning.ts +0 -143
  410. package/src/prompts/index.ts +0 -31
  411. package/src/prompts/shared/codebase-rules.ts +0 -29
  412. package/src/prompts/shared/git-rules.ts +0 -94
  413. package/src/prompts/shared/language-rules.ts +0 -36
  414. package/src/prompts/shared/tool-usage.ts +0 -72
  415. package/src/prompts/system/compact.ts +0 -80
  416. package/src/prompts/system/plan-execute.ts +0 -89
  417. package/src/tools/browser/browser-client.ts +0 -1363
  418. package/src/tools/browser/browser-tools.ts +0 -1139
  419. package/src/tools/browser/index.ts +0 -65
  420. package/src/tools/index.ts +0 -23
  421. package/src/tools/llm/agents/docs-search-tools.ts +0 -368
  422. package/src/tools/llm/agents/index.ts +0 -22
  423. package/src/tools/llm/index.ts +0 -11
  424. package/src/tools/llm/simple/ask-user-tool.ts +0 -25
  425. package/src/tools/llm/simple/background-bash-tool.ts +0 -443
  426. package/src/tools/llm/simple/background-powershell-tool.ts +0 -421
  427. package/src/tools/llm/simple/bash-tool.ts +0 -238
  428. package/src/tools/llm/simple/docs-search-agent-tool.ts +0 -146
  429. package/src/tools/llm/simple/file-tools.ts +0 -1051
  430. package/src/tools/llm/simple/final-response-tool.ts +0 -180
  431. package/src/tools/llm/simple/index.ts +0 -42
  432. package/src/tools/llm/simple/planning-tools.ts +0 -143
  433. package/src/tools/llm/simple/powershell-tool.ts +0 -241
  434. package/src/tools/llm/simple/simple-tool-executor.ts +0 -279
  435. package/src/tools/llm/simple/todo-tools.ts +0 -207
  436. package/src/tools/llm/simple/user-interaction-tools.ts +0 -277
  437. package/src/tools/office/common/constants.ts +0 -335
  438. package/src/tools/office/common/index.ts +0 -133
  439. package/src/tools/office/common/types.ts +0 -286
  440. package/src/tools/office/common/utils.ts +0 -116
  441. package/src/tools/office/excel-client.ts +0 -1336
  442. package/src/tools/office/excel-tools/cells.ts +0 -359
  443. package/src/tools/office/excel-tools/charts.ts +0 -166
  444. package/src/tools/office/excel-tools/comments.ts +0 -155
  445. package/src/tools/office/excel-tools/data-ops.ts +0 -349
  446. package/src/tools/office/excel-tools/export.ts +0 -105
  447. package/src/tools/office/excel-tools/formatting.ts +0 -357
  448. package/src/tools/office/excel-tools/index.ts +0 -55
  449. package/src/tools/office/excel-tools/launch.ts +0 -303
  450. package/src/tools/office/excel-tools/media.ts +0 -117
  451. package/src/tools/office/excel-tools/named-ranges.ts +0 -148
  452. package/src/tools/office/excel-tools/protection.ts +0 -105
  453. package/src/tools/office/excel-tools/rows-columns.ts +0 -386
  454. package/src/tools/office/excel-tools/sheets.ts +0 -228
  455. package/src/tools/office/excel-tools/validation.ts +0 -226
  456. package/src/tools/office/excel-tools.ts +0 -9
  457. package/src/tools/office/index.ts +0 -259
  458. package/src/tools/office/office-client-base.ts +0 -242
  459. package/src/tools/office/office-client.ts +0 -377
  460. package/src/tools/office/powerpoint-client.ts +0 -1498
  461. package/src/tools/office/powerpoint-tools/effects.ts +0 -315
  462. package/src/tools/office/powerpoint-tools/export.ts +0 -138
  463. package/src/tools/office/powerpoint-tools/index.ts +0 -45
  464. package/src/tools/office/powerpoint-tools/launch.ts +0 -263
  465. package/src/tools/office/powerpoint-tools/media.ts +0 -291
  466. package/src/tools/office/powerpoint-tools/notes.ts +0 -220
  467. package/src/tools/office/powerpoint-tools/sections.ts +0 -140
  468. package/src/tools/office/powerpoint-tools/shapes.ts +0 -870
  469. package/src/tools/office/powerpoint-tools/slides.ts +0 -350
  470. package/src/tools/office/powerpoint-tools/tables.ts +0 -182
  471. package/src/tools/office/powerpoint-tools/text.ts +0 -473
  472. package/src/tools/office/powerpoint-tools.ts +0 -9
  473. package/src/tools/office/word-client.ts +0 -1697
  474. package/src/tools/office/word-tools/bookmarks.ts +0 -186
  475. package/src/tools/office/word-tools/comments.ts +0 -185
  476. package/src/tools/office/word-tools/content.ts +0 -229
  477. package/src/tools/office/word-tools/export.ts +0 -97
  478. package/src/tools/office/word-tools/formatting.ts +0 -161
  479. package/src/tools/office/word-tools/headers-footers.ts +0 -155
  480. package/src/tools/office/word-tools/index.ts +0 -57
  481. package/src/tools/office/word-tools/launch.ts +0 -312
  482. package/src/tools/office/word-tools/lists.ts +0 -97
  483. package/src/tools/office/word-tools/navigation.ts +0 -114
  484. package/src/tools/office/word-tools/page-setup.ts +0 -195
  485. package/src/tools/office/word-tools/tables.ts +0 -262
  486. package/src/tools/office/word-tools/text.ts +0 -294
  487. package/src/tools/office/word-tools/undo-redo.ts +0 -97
  488. package/src/tools/office/word-tools/watermarks.ts +0 -105
  489. package/src/tools/office/word-tools.ts +0 -9
  490. package/src/tools/registry.ts +0 -527
  491. package/src/tools/types.ts +0 -231
  492. package/src/types/index.ts +0 -181
  493. package/src/ui/PlanExecuteView.tsx +0 -119
  494. package/src/ui/TodoPanel.tsx +0 -240
  495. package/src/ui/UpdateNotification.tsx +0 -105
  496. package/src/ui/components/ActivityIndicator.tsx +0 -234
  497. package/src/ui/components/CommandBrowser.tsx +0 -114
  498. package/src/ui/components/CustomTextInput.tsx +0 -389
  499. package/src/ui/components/DocsSearchProgress.tsx +0 -85
  500. package/src/ui/components/FileBrowser.tsx +0 -93
  501. package/src/ui/components/LLMSetupWizard.tsx +0 -333
  502. package/src/ui/components/Logo.tsx +0 -125
  503. package/src/ui/components/MarkdownRenderer.tsx +0 -358
  504. package/src/ui/components/ModelSelector.tsx +0 -203
  505. package/src/ui/components/PlanExecuteApp.tsx +0 -2007
  506. package/src/ui/components/ProgressBar.tsx +0 -51
  507. package/src/ui/components/StatusBar.tsx +0 -302
  508. package/src/ui/components/ThinkingIndicator.tsx +0 -120
  509. package/src/ui/components/TodoListView.tsx +0 -140
  510. package/src/ui/components/ToolSelector.tsx +0 -215
  511. package/src/ui/components/dialogs/ApprovalDialog.tsx +0 -259
  512. package/src/ui/components/dialogs/AskUserDialog.tsx +0 -159
  513. package/src/ui/components/dialogs/DocsBrowser.tsx +0 -222
  514. package/src/ui/components/dialogs/SettingsDialog.tsx +0 -939
  515. package/src/ui/components/dialogs/index.ts +0 -13
  516. package/src/ui/components/index.ts +0 -27
  517. package/src/ui/components/panels/LogPanel.tsx +0 -385
  518. package/src/ui/components/panels/SessionPanel.tsx +0 -146
  519. package/src/ui/components/panels/index.ts +0 -13
  520. package/src/ui/components/views/ChatView.tsx +0 -447
  521. package/src/ui/components/views/index.ts +0 -5
  522. package/src/ui/contexts/TokenContext.tsx +0 -139
  523. package/src/ui/hooks/atFileProcessor.ts +0 -167
  524. package/src/ui/hooks/index.ts +0 -11
  525. package/src/ui/hooks/slashCommandProcessor.ts +0 -174
  526. package/src/ui/hooks/useCommandBrowserState.ts +0 -97
  527. package/src/ui/hooks/useFileBrowserState.ts +0 -116
  528. package/src/ui/hooks/useFileList.ts +0 -132
  529. package/src/ui/hooks/useInputHistory.ts +0 -89
  530. package/src/ui/hooks/usePlanExecution.ts +0 -339
  531. package/src/ui/index.ts +0 -10
  532. package/src/ui/ink-entry.tsx +0 -36
  533. package/src/utils/env-filter.ts +0 -164
  534. package/src/utils/file-system.ts +0 -133
  535. package/src/utils/git-utils.ts +0 -30
  536. package/src/utils/json-stream-logger.ts +0 -1259
  537. package/src/utils/logger.ts +0 -2767
  538. package/src/utils/platform-utils.ts +0 -256
  539. package/src/utils/wsl-utils.ts +0 -113
  540. package/tsconfig.electron.json +0 -39
  541. package/tsconfig.json +0 -64
@@ -1,678 +0,0 @@
1
- /**
2
- * Docs Manager
3
- *
4
- * llms.txt-based document download and management
5
- * - Parse llms.txt to extract document URLs
6
- * - Auto-categorize by category
7
- * - Parallel download (20 concurrent)
8
- * - Auto-retry (up to 3 times)
9
- */
10
-
11
- import * as fs from 'fs';
12
- import * as fsPromises from 'fs/promises';
13
- import * as path from 'path';
14
- import * as https from 'https';
15
- import * as http from 'http';
16
- import * as os from 'os';
17
- import { logger } from '../utils/logger.js';
18
-
19
- const DOCS_DIR = path.join(os.homedir(), '.local-cli', 'docs');
20
- const CONCURRENT_DOWNLOADS = 20;
21
- const MAX_RETRIES = 3;
22
-
23
- /**
24
- * Document source definition
25
- */
26
- export interface DocsSource {
27
- id: string;
28
- name: string;
29
- description: string;
30
- llmsTxtUrl: string;
31
- baseUrl?: string; // URL prefix (for agno)
32
- targetDir: string;
33
- categoryMapping: Record<string, string>;
34
- urlFilter?: (url: string) => boolean; // URL filtering (for adk)
35
- urlConverter?: (url: string) => string; // URL conversion (for adk raw URL conversion)
36
- filenameGenerator?: (url: string, title: string) => string; // Custom filename generation
37
- }
38
-
39
- /**
40
- * ADK category mapping
41
- */
42
- const ADK_CATEGORY_MAPPING: Record<string, string> = {
43
- 'docs/agents/': 'agents',
44
- 'docs/tools/': 'tools',
45
- 'docs/sessions/': 'sessions',
46
- 'docs/deploy/': 'deploy',
47
- 'docs/streaming/': 'streaming',
48
- 'docs/callbacks/': 'callbacks',
49
- 'docs/mcp/': 'mcp',
50
- 'docs/observability/': 'observability',
51
- 'docs/get-started/': 'get-started',
52
- 'docs/tutorials/': 'tutorials',
53
- 'docs/runtime/': 'runtime',
54
- 'docs/events/': 'events',
55
- 'docs/context/': 'context',
56
- 'docs/artifacts/': 'artifacts',
57
- 'docs/evaluate/': 'evaluate',
58
- 'docs/safety/': 'safety',
59
- 'docs/api-reference/': 'api-reference',
60
- 'docs/community': 'community',
61
- 'docs/contributing': 'community',
62
- };
63
-
64
- /**
65
- * AGNO category mapping
66
- */
67
- const AGNO_CATEGORY_MAPPING: Record<string, string> = {
68
- 'agent-os/': 'agent',
69
- 'concepts/agents/': 'agent',
70
- 'concepts/agents/memory.md': 'memory',
71
- 'agent-os/features/memories.md': 'memory',
72
- 'concepts/agents/sessions.md': 'memory',
73
- 'reference/memory/': 'memory',
74
- 'concepts/agents/knowledge.md': 'rag',
75
- 'agent-os/features/knowledge-management.md': 'rag',
76
- 'reference/knowledge/': 'rag',
77
- 'agent-os/mcp/': 'mcp',
78
- 'concepts/agents/tools.md': 'tools',
79
- 'reference/tools/': 'tools',
80
- 'concepts/db/': 'database',
81
- 'reference/storage/': 'database',
82
- 'reference/vector_db/': 'vector_db',
83
- 'reference/workflows/': 'workflows',
84
- 'concepts/workflows/': 'workflows',
85
- 'reference/models/': 'models',
86
- 'concepts/agents/storage.md': 'storage',
87
- 'reference/teams/': 'teams',
88
- 'concepts/agents/guardrails/': 'guardrails',
89
- 'templates/': 'templates',
90
- 'tutorials/': 'tutorials',
91
- };
92
-
93
- /**
94
- * Convert GitHub URL to raw content URL
95
- */
96
- function convertToRawUrl(url: string): string {
97
- if (url.includes('github.com') && url.includes('/blob/')) {
98
- return url
99
- .replace('github.com', 'raw.githubusercontent.com')
100
- .replace('/blob/', '/');
101
- }
102
- return url;
103
- }
104
-
105
- /**
106
- * Pre-defined document sources by development team
107
- */
108
- export const AVAILABLE_SOURCES: DocsSource[] = [
109
- {
110
- id: 'agno',
111
- name: 'Agno Framework',
112
- description: 'Agno AI Agent Framework Documentation',
113
- llmsTxtUrl: 'https://docs.agno.com/llms.txt',
114
- baseUrl: 'https://docs.agno.com',
115
- targetDir: 'agent_framework/agno',
116
- categoryMapping: AGNO_CATEGORY_MAPPING,
117
- },
118
- {
119
- id: 'adk',
120
- name: 'Google ADK',
121
- description: 'Google Agent Development Kit Documentation',
122
- llmsTxtUrl: 'https://raw.githubusercontent.com/google/adk-python/main/llms.txt',
123
- targetDir: 'agent_framework/adk',
124
- categoryMapping: ADK_CATEGORY_MAPPING,
125
- urlFilter: (url: string) => url.includes('github.com/google/adk-docs') && url.endsWith('.md'),
126
- urlConverter: convertToRawUrl,
127
- },
128
- ];
129
-
130
- /**
131
- * Document directory information
132
- */
133
- export interface DocsInfo {
134
- path: string;
135
- exists: boolean;
136
- totalFiles: number;
137
- totalSize: string;
138
- installedSources: string[];
139
- }
140
-
141
- /**
142
- * Document entry
143
- */
144
- interface DocEntry {
145
- title: string;
146
- url: string;
147
- rawUrl: string;
148
- category: string;
149
- }
150
-
151
- /**
152
- * Download file via HTTP request
153
- */
154
- function downloadFile(url: string): Promise<string> {
155
- return new Promise((resolve, reject) => {
156
- const client = url.startsWith('https') ? https : http;
157
-
158
- client.get(url, (res) => {
159
- if (res.statusCode === 301 || res.statusCode === 302) {
160
- const location = res.headers.location;
161
- if (!location) {
162
- return reject(new Error(`Redirect without Location header: ${url}`));
163
- }
164
- return downloadFile(location).then(resolve).catch(reject);
165
- }
166
-
167
- if (res.statusCode !== 200) {
168
- reject(new Error(`HTTP ${res.statusCode}: ${url}`));
169
- return;
170
- }
171
-
172
- let data = '';
173
- res.on('data', (chunk) => { data += chunk; });
174
- res.on('end', () => { resolve(data); });
175
- }).on('error', reject);
176
- });
177
- }
178
-
179
- /**
180
- * Determine category from URL
181
- */
182
- function getCategory(url: string, categoryMapping: Record<string, string>): string {
183
- const lowerUrl = url.toLowerCase();
184
-
185
- // Path-based category mapping
186
- for (const [pattern, category] of Object.entries(categoryMapping)) {
187
- if (lowerUrl.includes(pattern.toLowerCase())) {
188
- return category;
189
- }
190
- }
191
-
192
- // Keyword-based classification
193
- if (lowerUrl.includes('agent')) return 'agents';
194
- if (lowerUrl.includes('tool')) return 'tools';
195
- if (lowerUrl.includes('memory') || lowerUrl.includes('session')) return 'memory';
196
- if (lowerUrl.includes('deploy')) return 'deploy';
197
- if (lowerUrl.includes('stream')) return 'streaming';
198
- if (lowerUrl.includes('tutorial')) return 'tutorials';
199
- if (lowerUrl.includes('model')) return 'models';
200
-
201
- return 'other';
202
- }
203
-
204
- /**
205
- * Generate filename
206
- */
207
- function getFilename(url: string, _title: string): string {
208
- const parts = url.split('/');
209
- const lastPart = parts[parts.length - 1] || 'index';
210
-
211
- // Extract prefix from path (e.g., workflow-agents)
212
- const docsIndex = parts.findIndex(part => part === 'docs');
213
- if (docsIndex !== -1 && docsIndex < parts.length - 2) {
214
- const subPath = parts.slice(docsIndex + 1, -1);
215
- if (subPath.length > 1) {
216
- const prefix = subPath.slice(1).join('_');
217
- const baseFilename = lastPart.endsWith('.md')
218
- ? lastPart.replace(/\.md$/, '')
219
- : lastPart;
220
-
221
- if (baseFilename === 'index') {
222
- return `${prefix}.md`;
223
- }
224
- return `${prefix}_${baseFilename}.md`;
225
- }
226
- }
227
-
228
- // Handle models/{model_name}/*
229
- const modelsIndex = parts.findIndex(part => part === 'models');
230
- if (modelsIndex !== -1 && modelsIndex < parts.length - 2) {
231
- const modelName = parts[modelsIndex + 1];
232
- if (modelName && modelName !== 'models') {
233
- const baseFilename = lastPart.endsWith('.md')
234
- ? lastPart.replace(/\.md$/, '')
235
- : lastPart;
236
- return `${modelName}_${baseFilename}.md`;
237
- }
238
- }
239
-
240
- if (!lastPart.endsWith('.md')) {
241
- return `${lastPart}.md`;
242
- }
243
-
244
- return lastPart;
245
- }
246
-
247
- /**
248
- * Parse llms.txt
249
- */
250
- async function parseLlmsTxt(content: string, source: DocsSource): Promise<DocEntry[]> {
251
- const entries: DocEntry[] = [];
252
- const lines = content.split('\n');
253
-
254
- for (const line of lines) {
255
- // Markdown link format: - [Title](URL) or [Title](URL)
256
- const match = line.match(/^-?\s*\[([^\]]+)\]\(([^)]+)\)/);
257
- if (match) {
258
- const title = match[1]!;
259
- let url = match[2]!;
260
-
261
- // URL filtering
262
- if (source.urlFilter && !source.urlFilter(url)) {
263
- continue;
264
- }
265
-
266
- // Apply baseUrl
267
- if (source.baseUrl && !url.startsWith('http')) {
268
- url = `${source.baseUrl}/${url.replace(/^\//, '')}`;
269
- }
270
-
271
- // URL conversion (raw URL, etc.)
272
- const rawUrl = source.urlConverter ? source.urlConverter(url) : url;
273
-
274
- // Determine category
275
- const category = getCategory(url, source.categoryMapping);
276
-
277
- entries.push({ title, url, rawUrl, category });
278
- }
279
- }
280
-
281
- return entries;
282
- }
283
-
284
- /**
285
- * Query document directory information
286
- */
287
- export async function getDocsInfo(): Promise<DocsInfo> {
288
- logger.enter('getDocsInfo');
289
-
290
- try {
291
- const exists = fs.existsSync(DOCS_DIR);
292
-
293
- if (!exists) {
294
- logger.exit('getDocsInfo', { exists: false });
295
- return {
296
- path: DOCS_DIR,
297
- exists: false,
298
- totalFiles: 0,
299
- totalSize: '0 B',
300
- installedSources: [],
301
- };
302
- }
303
-
304
- let totalFiles = 0;
305
- let totalBytes = 0;
306
- const installedSources: string[] = [];
307
-
308
- for (const source of AVAILABLE_SOURCES) {
309
- const sourcePath = path.join(DOCS_DIR, source.targetDir);
310
- if (fs.existsSync(sourcePath)) {
311
- installedSources.push(source.id);
312
- }
313
- }
314
-
315
- const scanDirectory = (dir: string) => {
316
- if (!fs.existsSync(dir)) return;
317
- const entries = fs.readdirSync(dir, { withFileTypes: true });
318
- for (const entry of entries) {
319
- const fullPath = path.join(dir, entry.name);
320
- if (entry.isFile()) {
321
- totalFiles++;
322
- totalBytes += fs.statSync(fullPath).size;
323
- } else if (entry.isDirectory()) {
324
- scanDirectory(fullPath);
325
- }
326
- }
327
- };
328
-
329
- scanDirectory(DOCS_DIR);
330
-
331
- const formatSize = (bytes: number): string => {
332
- if (bytes < 1024) return `${bytes} B`;
333
- if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;
334
- return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
335
- };
336
-
337
- const result = {
338
- path: DOCS_DIR,
339
- exists: true,
340
- totalFiles,
341
- totalSize: formatSize(totalBytes),
342
- installedSources,
343
- };
344
-
345
- logger.exit('getDocsInfo', result);
346
- return result;
347
- } catch (error) {
348
- logger.error('Failed to get docs info', error as Error);
349
- return {
350
- path: DOCS_DIR,
351
- exists: false,
352
- totalFiles: 0,
353
- totalSize: '0 B',
354
- installedSources: [],
355
- };
356
- }
357
- }
358
-
359
- /**
360
- * Return list of available document sources
361
- */
362
- export function getAvailableSources(): DocsSource[] {
363
- return AVAILABLE_SOURCES;
364
- }
365
-
366
- /**
367
- * Document download result
368
- */
369
- export interface DownloadResult {
370
- success: boolean;
371
- message: string;
372
- downloadedFiles?: number;
373
- skippedFiles?: number;
374
- failedFiles?: number;
375
- targetPath?: string;
376
- }
377
-
378
- /**
379
- * Progress callback
380
- */
381
- export type ProgressCallback = (progress: {
382
- current: number;
383
- total: number;
384
- status: 'success' | 'fail' | 'skip';
385
- filename: string;
386
- category: string;
387
- }) => void;
388
-
389
- /**
390
- * Download documents from predefined source
391
- */
392
- export async function downloadDocsFromSource(
393
- sourceId: string,
394
- onProgress?: ProgressCallback
395
- ): Promise<DownloadResult> {
396
- logger.enter('downloadDocsFromSource', { sourceId });
397
-
398
- const source = AVAILABLE_SOURCES.find(s => s.id === sourceId);
399
- if (!source) {
400
- const availableIds = AVAILABLE_SOURCES.map(s => s.id).join(', ');
401
- logger.exit('downloadDocsFromSource', { success: false, reason: 'unknown source' });
402
- return {
403
- success: false,
404
- message: `Unknown source: ${sourceId}\nAvailable sources: ${availableIds}`,
405
- };
406
- }
407
-
408
- try {
409
- // 1. Download llms.txt
410
- logger.flow('Downloading llms.txt');
411
- const llmsContent = await downloadFile(source.llmsTxtUrl);
412
-
413
- // 2. Parse document list
414
- logger.flow('Parsing llms.txt');
415
- const entries = await parseLlmsTxt(llmsContent, source);
416
-
417
- if (entries.length === 0) {
418
- return {
419
- success: false,
420
- message: 'No documents found in llms.txt.',
421
- };
422
- }
423
-
424
- // 3. Create directory
425
- const targetPath = path.join(DOCS_DIR, source.targetDir);
426
- const categories = new Set(entries.map(e => e.category));
427
-
428
- for (const category of categories) {
429
- const dir = path.join(targetPath, category);
430
- await fsPromises.mkdir(dir, { recursive: true });
431
- }
432
-
433
- // 4. Parallel download
434
- let successCount = 0;
435
- let failCount = 0;
436
- let skipCount = 0;
437
- let completedCount = 0;
438
-
439
- const activeDownloads = new Set<Promise<void>>();
440
-
441
- const downloadSingleFile = async (entry: DocEntry): Promise<void> => {
442
- const filename = source.filenameGenerator
443
- ? source.filenameGenerator(entry.url, entry.title)
444
- : getFilename(entry.url, entry.title);
445
- const filePath = path.join(targetPath, entry.category, filename);
446
-
447
- try {
448
- // Skip if file already exists
449
- try {
450
- await fsPromises.access(filePath);
451
- skipCount++;
452
- completedCount++;
453
- onProgress?.({
454
- current: completedCount,
455
- total: entries.length,
456
- status: 'skip',
457
- filename,
458
- category: entry.category,
459
- });
460
- return;
461
- } catch {
462
- // Proceed with download if file doesn't exist
463
- }
464
-
465
- // Retry logic
466
- let retries = MAX_RETRIES;
467
- let content: string | null = null;
468
-
469
- while (retries > 0) {
470
- try {
471
- content = await downloadFile(entry.rawUrl);
472
- break;
473
- } catch {
474
- retries--;
475
- if (retries > 0) {
476
- await new Promise(resolve => setTimeout(resolve, 500));
477
- }
478
- }
479
- }
480
-
481
- if (!content) {
482
- throw new Error('Failed after retries');
483
- }
484
-
485
- // Add metadata
486
- const markdownContent = `# ${entry.title}
487
-
488
- > Original: [${entry.title}](${entry.url})
489
- > Category: ${entry.category}
490
- > Downloaded: ${new Date().toISOString()}
491
-
492
- ---
493
-
494
- ${content}`;
495
-
496
- await fsPromises.writeFile(filePath, markdownContent, 'utf-8');
497
- successCount++;
498
- completedCount++;
499
- onProgress?.({
500
- current: completedCount,
501
- total: entries.length,
502
- status: 'success',
503
- filename,
504
- category: entry.category,
505
- });
506
- } catch {
507
- failCount++;
508
- completedCount++;
509
- onProgress?.({
510
- current: completedCount,
511
- total: entries.length,
512
- status: 'fail',
513
- filename,
514
- category: entry.category,
515
- });
516
- }
517
- };
518
-
519
- // Execute parallel download
520
- let currentIndex = 0;
521
-
522
- while (currentIndex < entries.length) {
523
- while (activeDownloads.size < CONCURRENT_DOWNLOADS && currentIndex < entries.length) {
524
- const entry = entries[currentIndex]!;
525
- currentIndex++;
526
-
527
- const downloadPromise = downloadSingleFile(entry).finally(() => {
528
- activeDownloads.delete(downloadPromise);
529
- });
530
-
531
- activeDownloads.add(downloadPromise);
532
- }
533
-
534
- if (activeDownloads.size > 0) {
535
- await Promise.race(activeDownloads);
536
- }
537
- }
538
-
539
- await Promise.all(activeDownloads);
540
-
541
- // 5. Generate README
542
- await generateReadme(targetPath, entries, source, categories);
543
-
544
- const result: DownloadResult = {
545
- success: true,
546
- message: `${source.name} documentation download complete`,
547
- downloadedFiles: successCount,
548
- skippedFiles: skipCount,
549
- failedFiles: failCount,
550
- targetPath,
551
- };
552
-
553
- logger.exit('downloadDocsFromSource', result);
554
- return result;
555
- } catch (error) {
556
- const errorMessage = error instanceof Error ? error.message : 'Unknown error';
557
- logger.error('Download failed', error as Error);
558
- return {
559
- success: false,
560
- message: `Download failed: ${errorMessage}`,
561
- };
562
- }
563
- }
564
-
565
- /**
566
- * Generate README file
567
- */
568
- async function generateReadme(
569
- targetPath: string,
570
- entries: DocEntry[],
571
- source: DocsSource,
572
- categories: Set<string>
573
- ): Promise<void> {
574
- // README per category
575
- for (const category of categories) {
576
- const categoryEntries = entries.filter(e => e.category === category);
577
- const readmePath = path.join(targetPath, category, 'README.md');
578
-
579
- const readmeContent = `# ${category.toUpperCase()} Documentation
580
-
581
- ${source.name} ${category} related documentation.
582
-
583
- ## Document List
584
-
585
- ${categoryEntries.map((e, idx) => `${idx + 1}. [${e.title}](${getFilename(e.url, e.title)})`).join('\n')}
586
-
587
- Total ${categoryEntries.length} documents
588
-
589
- ---
590
- > Auto-generated: ${new Date().toISOString()}
591
- `;
592
-
593
- await fsPromises.writeFile(readmePath, readmeContent, 'utf-8');
594
- }
595
-
596
- // Main README
597
- const mainReadmePath = path.join(targetPath, 'README.md');
598
- const mainReadmeContent = `# ${source.name} Documentation
599
-
600
- ${source.name} documentation organized by category.
601
-
602
- ## Categories
603
-
604
- ${Array.from(categories).sort().map(category => {
605
- const count = entries.filter(e => e.category === category).length;
606
- return `- [${category}/](./${category}/) - ${count} documents`;
607
- }).join('\n')}
608
-
609
- ## Statistics
610
-
611
- - Total documents: ${entries.length}
612
- - Categories: ${categories.size}
613
-
614
- ---
615
- > Auto-generated: ${new Date().toISOString()}
616
- `;
617
-
618
- await fsPromises.writeFile(mainReadmePath, mainReadmeContent, 'utf-8');
619
- }
620
-
621
- /**
622
- * Query directory list (for DocsBrowser)
623
- */
624
- export interface DocsListItem {
625
- name: string;
626
- type: 'file' | 'directory';
627
- size?: string;
628
- }
629
-
630
- export async function listDocsDirectory(subPath?: string): Promise<DocsListItem[]> {
631
- logger.enter('listDocsDirectory', { subPath });
632
-
633
- try {
634
- const targetPath = subPath ? path.join(DOCS_DIR, subPath) : DOCS_DIR;
635
-
636
- if (!fs.existsSync(targetPath)) {
637
- logger.exit('listDocsDirectory', { exists: false });
638
- return [];
639
- }
640
-
641
- const entries = fs.readdirSync(targetPath, { withFileTypes: true });
642
- const items: DocsListItem[] = [];
643
-
644
- for (const entry of entries) {
645
- if (entry.isDirectory()) {
646
- items.push({ name: entry.name, type: 'directory' });
647
- } else {
648
- const fullPath = path.join(targetPath, entry.name);
649
- const stats = fs.statSync(fullPath);
650
-
651
- const formatSize = (bytes: number): string => {
652
- if (bytes < 1024) return `${bytes} B`;
653
- if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;
654
- return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
655
- };
656
-
657
- items.push({
658
- name: entry.name,
659
- type: 'file',
660
- size: formatSize(stats.size),
661
- });
662
- }
663
- }
664
-
665
- logger.exit('listDocsDirectory', { itemCount: items.length });
666
- return items;
667
- } catch (error) {
668
- logger.error('Failed to list docs directory', error as Error);
669
- return [];
670
- }
671
- }
672
-
673
- /**
674
- * Return document path
675
- */
676
- export function getDocsPath(): string {
677
- return DOCS_DIR;
678
- }
@@ -1,7 +0,0 @@
1
- /**
2
- * LLM module barrel export
3
- */
4
-
5
- export * from './llm-client.js';
6
-
7
- // Note: PlanningLLM is in src/agents/planner/