orquesta-cli 0.1.12 → 0.1.14

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 (540) hide show
  1. package/README.md +30 -4
  2. package/dist/cli.js +65 -4
  3. package/dist/constants.js +1 -1
  4. package/dist/core/config/config-manager.d.ts +13 -1
  5. package/dist/core/config/config-manager.js +83 -0
  6. package/dist/core/slash-command-handler.d.ts +1 -0
  7. package/dist/core/slash-command-handler.js +129 -0
  8. package/dist/orquesta/config-sync.d.ts +73 -0
  9. package/dist/orquesta/config-sync.js +230 -0
  10. package/dist/orquesta/prompt-reporter.d.ts +16 -0
  11. package/dist/orquesta/prompt-reporter.js +85 -0
  12. package/dist/setup/first-run-setup.d.ts +15 -0
  13. package/dist/setup/first-run-setup.js +238 -0
  14. package/dist/types/index.d.ts +11 -2
  15. package/dist/ui/TodoPanel.d.ts +1 -0
  16. package/dist/ui/TodoPanel.js +6 -1
  17. package/dist/ui/components/LLMSetupWizard.js +373 -7
  18. package/dist/ui/components/Logo.d.ts +2 -0
  19. package/dist/ui/components/Logo.js +10 -3
  20. package/dist/ui/components/OpenRouterModelBrowser.d.ts +13 -0
  21. package/dist/ui/components/OpenRouterModelBrowser.js +221 -0
  22. package/dist/ui/components/PlanExecuteApp.js +30 -4
  23. package/dist/ui/components/ProjectSelector.d.ts +8 -0
  24. package/dist/ui/components/ProjectSelector.js +119 -0
  25. package/dist/ui/components/StatusBar.d.ts +2 -0
  26. package/dist/ui/components/StatusBar.js +6 -1
  27. package/dist/ui/hooks/slashCommandProcessor.js +8 -4
  28. package/package.json +11 -5
  29. package/.eslintrc.json +0 -26
  30. package/.prettierrc.json +0 -10
  31. package/CLAUDE.md +0 -199
  32. package/SECURITY.md +0 -290
  33. package/TEST_LOCAL.md +0 -245
  34. package/dist/agents/base/base-agent.d.ts.map +0 -1
  35. package/dist/agents/base/base-agent.js.map +0 -1
  36. package/dist/agents/docs-search/index.d.ts.map +0 -1
  37. package/dist/agents/docs-search/index.js.map +0 -1
  38. package/dist/agents/index.d.ts.map +0 -1
  39. package/dist/agents/index.js.map +0 -1
  40. package/dist/agents/planner/index.d.ts.map +0 -1
  41. package/dist/agents/planner/index.js.map +0 -1
  42. package/dist/cli.d.ts.map +0 -1
  43. package/dist/cli.js.map +0 -1
  44. package/dist/constants.d.ts.map +0 -1
  45. package/dist/constants.js.map +0 -1
  46. package/dist/core/compact/compact-manager.d.ts.map +0 -1
  47. package/dist/core/compact/compact-manager.js.map +0 -1
  48. package/dist/core/compact/compact-prompts.d.ts.map +0 -1
  49. package/dist/core/compact/compact-prompts.js.map +0 -1
  50. package/dist/core/compact/context-tracker.d.ts.map +0 -1
  51. package/dist/core/compact/context-tracker.js.map +0 -1
  52. package/dist/core/compact/index.d.ts.map +0 -1
  53. package/dist/core/compact/index.js.map +0 -1
  54. package/dist/core/config/config-manager.d.ts.map +0 -1
  55. package/dist/core/config/config-manager.js.map +0 -1
  56. package/dist/core/config/index.d.ts.map +0 -1
  57. package/dist/core/config/index.js.map +0 -1
  58. package/dist/core/docs-manager.d.ts.map +0 -1
  59. package/dist/core/docs-manager.js.map +0 -1
  60. package/dist/core/git-auto-updater.d.ts.map +0 -1
  61. package/dist/core/git-auto-updater.js.map +0 -1
  62. package/dist/core/llm/index.d.ts.map +0 -1
  63. package/dist/core/llm/index.js.map +0 -1
  64. package/dist/core/llm/llm-client.d.ts.map +0 -1
  65. package/dist/core/llm/llm-client.js.map +0 -1
  66. package/dist/core/session/index.d.ts.map +0 -1
  67. package/dist/core/session/index.js.map +0 -1
  68. package/dist/core/session/session-manager.d.ts.map +0 -1
  69. package/dist/core/session/session-manager.js.map +0 -1
  70. package/dist/core/slash-command-handler.d.ts.map +0 -1
  71. package/dist/core/slash-command-handler.js.map +0 -1
  72. package/dist/core/usage-tracker.d.ts.map +0 -1
  73. package/dist/core/usage-tracker.js.map +0 -1
  74. package/dist/errors/base.d.ts.map +0 -1
  75. package/dist/errors/base.js.map +0 -1
  76. package/dist/errors/file.d.ts.map +0 -1
  77. package/dist/errors/file.js.map +0 -1
  78. package/dist/errors/index.d.ts.map +0 -1
  79. package/dist/errors/index.js.map +0 -1
  80. package/dist/errors/llm.d.ts.map +0 -1
  81. package/dist/errors/llm.js.map +0 -1
  82. package/dist/errors/network.d.ts.map +0 -1
  83. package/dist/errors/network.js.map +0 -1
  84. package/dist/errors/validation.d.ts.map +0 -1
  85. package/dist/errors/validation.js.map +0 -1
  86. package/dist/eval/eval-runner.d.ts.map +0 -1
  87. package/dist/eval/eval-runner.js.map +0 -1
  88. package/dist/eval/index.d.ts.map +0 -1
  89. package/dist/eval/index.js.map +0 -1
  90. package/dist/eval/types.d.ts.map +0 -1
  91. package/dist/eval/types.js.map +0 -1
  92. package/dist/index.d.ts.map +0 -1
  93. package/dist/index.js.map +0 -1
  94. package/dist/orchestration/index.d.ts.map +0 -1
  95. package/dist/orchestration/index.js.map +0 -1
  96. package/dist/orchestration/plan-executor.d.ts.map +0 -1
  97. package/dist/orchestration/plan-executor.js.map +0 -1
  98. package/dist/orchestration/types.d.ts.map +0 -1
  99. package/dist/orchestration/types.js.map +0 -1
  100. package/dist/orchestration/utils.d.ts.map +0 -1
  101. package/dist/orchestration/utils.js.map +0 -1
  102. package/dist/orquesta/connection.d.ts.map +0 -1
  103. package/dist/orquesta/connection.js.map +0 -1
  104. package/dist/prompts/agents/docs-search-decision.d.ts.map +0 -1
  105. package/dist/prompts/agents/docs-search-decision.js.map +0 -1
  106. package/dist/prompts/agents/docs-search.d.ts.map +0 -1
  107. package/dist/prompts/agents/docs-search.js.map +0 -1
  108. package/dist/prompts/agents/planning.d.ts.map +0 -1
  109. package/dist/prompts/agents/planning.js.map +0 -1
  110. package/dist/prompts/index.d.ts.map +0 -1
  111. package/dist/prompts/index.js.map +0 -1
  112. package/dist/prompts/shared/codebase-rules.d.ts.map +0 -1
  113. package/dist/prompts/shared/codebase-rules.js.map +0 -1
  114. package/dist/prompts/shared/git-rules.d.ts.map +0 -1
  115. package/dist/prompts/shared/git-rules.js.map +0 -1
  116. package/dist/prompts/shared/language-rules.d.ts.map +0 -1
  117. package/dist/prompts/shared/language-rules.js.map +0 -1
  118. package/dist/prompts/shared/tool-usage.d.ts.map +0 -1
  119. package/dist/prompts/shared/tool-usage.js.map +0 -1
  120. package/dist/prompts/system/compact.d.ts.map +0 -1
  121. package/dist/prompts/system/compact.js.map +0 -1
  122. package/dist/prompts/system/plan-execute.d.ts.map +0 -1
  123. package/dist/prompts/system/plan-execute.js.map +0 -1
  124. package/dist/tools/browser/browser-client.d.ts.map +0 -1
  125. package/dist/tools/browser/browser-client.js.map +0 -1
  126. package/dist/tools/browser/browser-tools.d.ts.map +0 -1
  127. package/dist/tools/browser/browser-tools.js.map +0 -1
  128. package/dist/tools/browser/index.d.ts.map +0 -1
  129. package/dist/tools/browser/index.js.map +0 -1
  130. package/dist/tools/index.d.ts.map +0 -1
  131. package/dist/tools/index.js.map +0 -1
  132. package/dist/tools/llm/agents/docs-search-tools.d.ts.map +0 -1
  133. package/dist/tools/llm/agents/docs-search-tools.js.map +0 -1
  134. package/dist/tools/llm/agents/index.d.ts.map +0 -1
  135. package/dist/tools/llm/agents/index.js.map +0 -1
  136. package/dist/tools/llm/index.d.ts.map +0 -1
  137. package/dist/tools/llm/index.js.map +0 -1
  138. package/dist/tools/llm/simple/ask-user-tool.d.ts.map +0 -1
  139. package/dist/tools/llm/simple/ask-user-tool.js.map +0 -1
  140. package/dist/tools/llm/simple/background-bash-tool.d.ts.map +0 -1
  141. package/dist/tools/llm/simple/background-bash-tool.js.map +0 -1
  142. package/dist/tools/llm/simple/background-powershell-tool.d.ts.map +0 -1
  143. package/dist/tools/llm/simple/background-powershell-tool.js.map +0 -1
  144. package/dist/tools/llm/simple/bash-tool.d.ts.map +0 -1
  145. package/dist/tools/llm/simple/bash-tool.js.map +0 -1
  146. package/dist/tools/llm/simple/docs-search-agent-tool.d.ts.map +0 -1
  147. package/dist/tools/llm/simple/docs-search-agent-tool.js.map +0 -1
  148. package/dist/tools/llm/simple/file-tools.d.ts.map +0 -1
  149. package/dist/tools/llm/simple/file-tools.js.map +0 -1
  150. package/dist/tools/llm/simple/final-response-tool.d.ts.map +0 -1
  151. package/dist/tools/llm/simple/final-response-tool.js.map +0 -1
  152. package/dist/tools/llm/simple/index.d.ts.map +0 -1
  153. package/dist/tools/llm/simple/index.js.map +0 -1
  154. package/dist/tools/llm/simple/planning-tools.d.ts.map +0 -1
  155. package/dist/tools/llm/simple/planning-tools.js.map +0 -1
  156. package/dist/tools/llm/simple/powershell-tool.d.ts.map +0 -1
  157. package/dist/tools/llm/simple/powershell-tool.js.map +0 -1
  158. package/dist/tools/llm/simple/simple-tool-executor.d.ts.map +0 -1
  159. package/dist/tools/llm/simple/simple-tool-executor.js.map +0 -1
  160. package/dist/tools/llm/simple/todo-tools.d.ts.map +0 -1
  161. package/dist/tools/llm/simple/todo-tools.js.map +0 -1
  162. package/dist/tools/llm/simple/user-interaction-tools.d.ts.map +0 -1
  163. package/dist/tools/llm/simple/user-interaction-tools.js.map +0 -1
  164. package/dist/tools/office/common/constants.d.ts.map +0 -1
  165. package/dist/tools/office/common/constants.js.map +0 -1
  166. package/dist/tools/office/common/index.d.ts.map +0 -1
  167. package/dist/tools/office/common/index.js.map +0 -1
  168. package/dist/tools/office/common/types.d.ts.map +0 -1
  169. package/dist/tools/office/common/types.js.map +0 -1
  170. package/dist/tools/office/common/utils.d.ts.map +0 -1
  171. package/dist/tools/office/common/utils.js.map +0 -1
  172. package/dist/tools/office/excel-client.d.ts.map +0 -1
  173. package/dist/tools/office/excel-client.js.map +0 -1
  174. package/dist/tools/office/excel-tools/cells.d.ts.map +0 -1
  175. package/dist/tools/office/excel-tools/cells.js.map +0 -1
  176. package/dist/tools/office/excel-tools/charts.d.ts.map +0 -1
  177. package/dist/tools/office/excel-tools/charts.js.map +0 -1
  178. package/dist/tools/office/excel-tools/comments.d.ts.map +0 -1
  179. package/dist/tools/office/excel-tools/comments.js.map +0 -1
  180. package/dist/tools/office/excel-tools/data-ops.d.ts.map +0 -1
  181. package/dist/tools/office/excel-tools/data-ops.js.map +0 -1
  182. package/dist/tools/office/excel-tools/export.d.ts.map +0 -1
  183. package/dist/tools/office/excel-tools/export.js.map +0 -1
  184. package/dist/tools/office/excel-tools/formatting.d.ts.map +0 -1
  185. package/dist/tools/office/excel-tools/formatting.js.map +0 -1
  186. package/dist/tools/office/excel-tools/index.d.ts.map +0 -1
  187. package/dist/tools/office/excel-tools/index.js.map +0 -1
  188. package/dist/tools/office/excel-tools/launch.d.ts.map +0 -1
  189. package/dist/tools/office/excel-tools/launch.js.map +0 -1
  190. package/dist/tools/office/excel-tools/media.d.ts.map +0 -1
  191. package/dist/tools/office/excel-tools/media.js.map +0 -1
  192. package/dist/tools/office/excel-tools/named-ranges.d.ts.map +0 -1
  193. package/dist/tools/office/excel-tools/named-ranges.js.map +0 -1
  194. package/dist/tools/office/excel-tools/protection.d.ts.map +0 -1
  195. package/dist/tools/office/excel-tools/protection.js.map +0 -1
  196. package/dist/tools/office/excel-tools/rows-columns.d.ts.map +0 -1
  197. package/dist/tools/office/excel-tools/rows-columns.js.map +0 -1
  198. package/dist/tools/office/excel-tools/sheets.d.ts.map +0 -1
  199. package/dist/tools/office/excel-tools/sheets.js.map +0 -1
  200. package/dist/tools/office/excel-tools/validation.d.ts.map +0 -1
  201. package/dist/tools/office/excel-tools/validation.js.map +0 -1
  202. package/dist/tools/office/excel-tools.d.ts.map +0 -1
  203. package/dist/tools/office/excel-tools.js.map +0 -1
  204. package/dist/tools/office/index.d.ts.map +0 -1
  205. package/dist/tools/office/index.js.map +0 -1
  206. package/dist/tools/office/office-client-base.d.ts.map +0 -1
  207. package/dist/tools/office/office-client-base.js.map +0 -1
  208. package/dist/tools/office/office-client.d.ts.map +0 -1
  209. package/dist/tools/office/office-client.js.map +0 -1
  210. package/dist/tools/office/powerpoint-client.d.ts.map +0 -1
  211. package/dist/tools/office/powerpoint-client.js.map +0 -1
  212. package/dist/tools/office/powerpoint-tools/effects.d.ts.map +0 -1
  213. package/dist/tools/office/powerpoint-tools/effects.js.map +0 -1
  214. package/dist/tools/office/powerpoint-tools/export.d.ts.map +0 -1
  215. package/dist/tools/office/powerpoint-tools/export.js.map +0 -1
  216. package/dist/tools/office/powerpoint-tools/index.d.ts.map +0 -1
  217. package/dist/tools/office/powerpoint-tools/index.js.map +0 -1
  218. package/dist/tools/office/powerpoint-tools/launch.d.ts.map +0 -1
  219. package/dist/tools/office/powerpoint-tools/launch.js.map +0 -1
  220. package/dist/tools/office/powerpoint-tools/media.d.ts.map +0 -1
  221. package/dist/tools/office/powerpoint-tools/media.js.map +0 -1
  222. package/dist/tools/office/powerpoint-tools/notes.d.ts.map +0 -1
  223. package/dist/tools/office/powerpoint-tools/notes.js.map +0 -1
  224. package/dist/tools/office/powerpoint-tools/sections.d.ts.map +0 -1
  225. package/dist/tools/office/powerpoint-tools/sections.js.map +0 -1
  226. package/dist/tools/office/powerpoint-tools/shapes.d.ts.map +0 -1
  227. package/dist/tools/office/powerpoint-tools/shapes.js.map +0 -1
  228. package/dist/tools/office/powerpoint-tools/slides.d.ts.map +0 -1
  229. package/dist/tools/office/powerpoint-tools/slides.js.map +0 -1
  230. package/dist/tools/office/powerpoint-tools/tables.d.ts.map +0 -1
  231. package/dist/tools/office/powerpoint-tools/tables.js.map +0 -1
  232. package/dist/tools/office/powerpoint-tools/text.d.ts.map +0 -1
  233. package/dist/tools/office/powerpoint-tools/text.js.map +0 -1
  234. package/dist/tools/office/powerpoint-tools.d.ts.map +0 -1
  235. package/dist/tools/office/powerpoint-tools.js.map +0 -1
  236. package/dist/tools/office/word-client.d.ts.map +0 -1
  237. package/dist/tools/office/word-client.js.map +0 -1
  238. package/dist/tools/office/word-tools/bookmarks.d.ts.map +0 -1
  239. package/dist/tools/office/word-tools/bookmarks.js.map +0 -1
  240. package/dist/tools/office/word-tools/comments.d.ts.map +0 -1
  241. package/dist/tools/office/word-tools/comments.js.map +0 -1
  242. package/dist/tools/office/word-tools/content.d.ts.map +0 -1
  243. package/dist/tools/office/word-tools/content.js.map +0 -1
  244. package/dist/tools/office/word-tools/export.d.ts.map +0 -1
  245. package/dist/tools/office/word-tools/export.js.map +0 -1
  246. package/dist/tools/office/word-tools/formatting.d.ts.map +0 -1
  247. package/dist/tools/office/word-tools/formatting.js.map +0 -1
  248. package/dist/tools/office/word-tools/headers-footers.d.ts.map +0 -1
  249. package/dist/tools/office/word-tools/headers-footers.js.map +0 -1
  250. package/dist/tools/office/word-tools/index.d.ts.map +0 -1
  251. package/dist/tools/office/word-tools/index.js.map +0 -1
  252. package/dist/tools/office/word-tools/launch.d.ts.map +0 -1
  253. package/dist/tools/office/word-tools/launch.js.map +0 -1
  254. package/dist/tools/office/word-tools/lists.d.ts.map +0 -1
  255. package/dist/tools/office/word-tools/lists.js.map +0 -1
  256. package/dist/tools/office/word-tools/navigation.d.ts.map +0 -1
  257. package/dist/tools/office/word-tools/navigation.js.map +0 -1
  258. package/dist/tools/office/word-tools/page-setup.d.ts.map +0 -1
  259. package/dist/tools/office/word-tools/page-setup.js.map +0 -1
  260. package/dist/tools/office/word-tools/tables.d.ts.map +0 -1
  261. package/dist/tools/office/word-tools/tables.js.map +0 -1
  262. package/dist/tools/office/word-tools/text.d.ts.map +0 -1
  263. package/dist/tools/office/word-tools/text.js.map +0 -1
  264. package/dist/tools/office/word-tools/undo-redo.d.ts.map +0 -1
  265. package/dist/tools/office/word-tools/undo-redo.js.map +0 -1
  266. package/dist/tools/office/word-tools/watermarks.d.ts.map +0 -1
  267. package/dist/tools/office/word-tools/watermarks.js.map +0 -1
  268. package/dist/tools/office/word-tools.d.ts.map +0 -1
  269. package/dist/tools/office/word-tools.js.map +0 -1
  270. package/dist/tools/registry.d.ts.map +0 -1
  271. package/dist/tools/registry.js.map +0 -1
  272. package/dist/tools/types.d.ts.map +0 -1
  273. package/dist/tools/types.js.map +0 -1
  274. package/dist/types/index.d.ts.map +0 -1
  275. package/dist/types/index.js.map +0 -1
  276. package/dist/ui/PlanExecuteView.d.ts.map +0 -1
  277. package/dist/ui/PlanExecuteView.js.map +0 -1
  278. package/dist/ui/TodoPanel.d.ts.map +0 -1
  279. package/dist/ui/TodoPanel.js.map +0 -1
  280. package/dist/ui/UpdateNotification.d.ts.map +0 -1
  281. package/dist/ui/UpdateNotification.js.map +0 -1
  282. package/dist/ui/components/ActivityIndicator.d.ts.map +0 -1
  283. package/dist/ui/components/ActivityIndicator.js.map +0 -1
  284. package/dist/ui/components/CommandBrowser.d.ts.map +0 -1
  285. package/dist/ui/components/CommandBrowser.js.map +0 -1
  286. package/dist/ui/components/CustomTextInput.d.ts.map +0 -1
  287. package/dist/ui/components/CustomTextInput.js.map +0 -1
  288. package/dist/ui/components/DocsSearchProgress.d.ts.map +0 -1
  289. package/dist/ui/components/DocsSearchProgress.js.map +0 -1
  290. package/dist/ui/components/FileBrowser.d.ts.map +0 -1
  291. package/dist/ui/components/FileBrowser.js.map +0 -1
  292. package/dist/ui/components/LLMSetupWizard.d.ts.map +0 -1
  293. package/dist/ui/components/LLMSetupWizard.js.map +0 -1
  294. package/dist/ui/components/Logo.d.ts.map +0 -1
  295. package/dist/ui/components/Logo.js.map +0 -1
  296. package/dist/ui/components/MarkdownRenderer.d.ts.map +0 -1
  297. package/dist/ui/components/MarkdownRenderer.js.map +0 -1
  298. package/dist/ui/components/ModelSelector.d.ts.map +0 -1
  299. package/dist/ui/components/ModelSelector.js.map +0 -1
  300. package/dist/ui/components/PlanExecuteApp.d.ts.map +0 -1
  301. package/dist/ui/components/PlanExecuteApp.js.map +0 -1
  302. package/dist/ui/components/ProgressBar.d.ts.map +0 -1
  303. package/dist/ui/components/ProgressBar.js.map +0 -1
  304. package/dist/ui/components/StatusBar.d.ts.map +0 -1
  305. package/dist/ui/components/StatusBar.js.map +0 -1
  306. package/dist/ui/components/ThinkingIndicator.d.ts.map +0 -1
  307. package/dist/ui/components/ThinkingIndicator.js.map +0 -1
  308. package/dist/ui/components/TodoListView.d.ts.map +0 -1
  309. package/dist/ui/components/TodoListView.js.map +0 -1
  310. package/dist/ui/components/ToolSelector.d.ts.map +0 -1
  311. package/dist/ui/components/ToolSelector.js.map +0 -1
  312. package/dist/ui/components/dialogs/ApprovalDialog.d.ts.map +0 -1
  313. package/dist/ui/components/dialogs/ApprovalDialog.js.map +0 -1
  314. package/dist/ui/components/dialogs/AskUserDialog.d.ts.map +0 -1
  315. package/dist/ui/components/dialogs/AskUserDialog.js.map +0 -1
  316. package/dist/ui/components/dialogs/DocsBrowser.d.ts.map +0 -1
  317. package/dist/ui/components/dialogs/DocsBrowser.js.map +0 -1
  318. package/dist/ui/components/dialogs/SettingsDialog.d.ts.map +0 -1
  319. package/dist/ui/components/dialogs/SettingsDialog.js.map +0 -1
  320. package/dist/ui/components/dialogs/index.d.ts.map +0 -1
  321. package/dist/ui/components/dialogs/index.js.map +0 -1
  322. package/dist/ui/components/index.d.ts.map +0 -1
  323. package/dist/ui/components/index.js.map +0 -1
  324. package/dist/ui/components/panels/LogPanel.d.ts.map +0 -1
  325. package/dist/ui/components/panels/LogPanel.js.map +0 -1
  326. package/dist/ui/components/panels/SessionPanel.d.ts.map +0 -1
  327. package/dist/ui/components/panels/SessionPanel.js.map +0 -1
  328. package/dist/ui/components/panels/index.d.ts.map +0 -1
  329. package/dist/ui/components/panels/index.js.map +0 -1
  330. package/dist/ui/components/views/ChatView.d.ts.map +0 -1
  331. package/dist/ui/components/views/ChatView.js.map +0 -1
  332. package/dist/ui/components/views/index.d.ts.map +0 -1
  333. package/dist/ui/components/views/index.js.map +0 -1
  334. package/dist/ui/contexts/TokenContext.d.ts.map +0 -1
  335. package/dist/ui/contexts/TokenContext.js.map +0 -1
  336. package/dist/ui/hooks/atFileProcessor.d.ts.map +0 -1
  337. package/dist/ui/hooks/atFileProcessor.js.map +0 -1
  338. package/dist/ui/hooks/index.d.ts.map +0 -1
  339. package/dist/ui/hooks/index.js.map +0 -1
  340. package/dist/ui/hooks/slashCommandProcessor.d.ts.map +0 -1
  341. package/dist/ui/hooks/slashCommandProcessor.js.map +0 -1
  342. package/dist/ui/hooks/useCommandBrowserState.d.ts.map +0 -1
  343. package/dist/ui/hooks/useCommandBrowserState.js.map +0 -1
  344. package/dist/ui/hooks/useFileBrowserState.d.ts.map +0 -1
  345. package/dist/ui/hooks/useFileBrowserState.js.map +0 -1
  346. package/dist/ui/hooks/useFileList.d.ts.map +0 -1
  347. package/dist/ui/hooks/useFileList.js.map +0 -1
  348. package/dist/ui/hooks/useInputHistory.d.ts.map +0 -1
  349. package/dist/ui/hooks/useInputHistory.js.map +0 -1
  350. package/dist/ui/hooks/usePlanExecution.d.ts.map +0 -1
  351. package/dist/ui/hooks/usePlanExecution.js.map +0 -1
  352. package/dist/ui/index.d.ts.map +0 -1
  353. package/dist/ui/index.js.map +0 -1
  354. package/dist/ui/ink-entry.d.ts.map +0 -1
  355. package/dist/ui/ink-entry.js.map +0 -1
  356. package/dist/utils/env-filter.d.ts.map +0 -1
  357. package/dist/utils/env-filter.js.map +0 -1
  358. package/dist/utils/file-system.d.ts.map +0 -1
  359. package/dist/utils/file-system.js.map +0 -1
  360. package/dist/utils/git-utils.d.ts.map +0 -1
  361. package/dist/utils/git-utils.js.map +0 -1
  362. package/dist/utils/json-stream-logger.d.ts.map +0 -1
  363. package/dist/utils/json-stream-logger.js.map +0 -1
  364. package/dist/utils/logger.d.ts.map +0 -1
  365. package/dist/utils/logger.js.map +0 -1
  366. package/dist/utils/platform-utils.d.ts.map +0 -1
  367. package/dist/utils/platform-utils.js.map +0 -1
  368. package/dist/utils/wsl-utils.d.ts.map +0 -1
  369. package/dist/utils/wsl-utils.js.map +0 -1
  370. package/electron.vite.config.ts +0 -63
  371. package/google374b9eba0c52b043.html +0 -1
  372. package/src/agents/base/base-agent.ts +0 -159
  373. package/src/agents/docs-search/index.ts +0 -365
  374. package/src/agents/index.ts +0 -34
  375. package/src/agents/planner/index.ts +0 -544
  376. package/src/cli.ts +0 -201
  377. package/src/constants.ts +0 -47
  378. package/src/core/compact/compact-manager.ts +0 -160
  379. package/src/core/compact/compact-prompts.ts +0 -150
  380. package/src/core/compact/context-tracker.ts +0 -164
  381. package/src/core/compact/index.ts +0 -25
  382. package/src/core/config/config-manager.ts +0 -460
  383. package/src/core/config/index.ts +0 -5
  384. package/src/core/docs-manager.ts +0 -678
  385. package/src/core/llm/index.ts +0 -7
  386. package/src/core/llm/llm-client.ts +0 -1550
  387. package/src/core/session/index.ts +0 -5
  388. package/src/core/session/session-manager.ts +0 -464
  389. package/src/core/slash-command-handler.ts +0 -410
  390. package/src/core/usage-tracker.ts +0 -438
  391. package/src/errors/base.ts +0 -81
  392. package/src/errors/file.ts +0 -183
  393. package/src/errors/index.ts +0 -95
  394. package/src/errors/llm.ts +0 -151
  395. package/src/errors/network.ts +0 -124
  396. package/src/errors/validation.ts +0 -111
  397. package/src/eval/eval-runner.ts +0 -456
  398. package/src/eval/index.ts +0 -8
  399. package/src/eval/types.ts +0 -139
  400. package/src/index.ts +0 -22
  401. package/src/orchestration/index.ts +0 -30
  402. package/src/orchestration/plan-executor.ts +0 -652
  403. package/src/orchestration/types.ts +0 -127
  404. package/src/orchestration/utils.ts +0 -119
  405. package/src/orquesta/connection.ts +0 -291
  406. package/src/prompts/agents/docs-search-decision.ts +0 -74
  407. package/src/prompts/agents/docs-search.ts +0 -84
  408. package/src/prompts/agents/planning.ts +0 -143
  409. package/src/prompts/index.ts +0 -31
  410. package/src/prompts/shared/codebase-rules.ts +0 -29
  411. package/src/prompts/shared/git-rules.ts +0 -94
  412. package/src/prompts/shared/language-rules.ts +0 -36
  413. package/src/prompts/shared/tool-usage.ts +0 -72
  414. package/src/prompts/system/compact.ts +0 -80
  415. package/src/prompts/system/plan-execute.ts +0 -89
  416. package/src/tools/browser/browser-client.ts +0 -1363
  417. package/src/tools/browser/browser-tools.ts +0 -1139
  418. package/src/tools/browser/index.ts +0 -65
  419. package/src/tools/index.ts +0 -23
  420. package/src/tools/llm/agents/docs-search-tools.ts +0 -368
  421. package/src/tools/llm/agents/index.ts +0 -22
  422. package/src/tools/llm/index.ts +0 -11
  423. package/src/tools/llm/simple/ask-user-tool.ts +0 -25
  424. package/src/tools/llm/simple/background-bash-tool.ts +0 -443
  425. package/src/tools/llm/simple/background-powershell-tool.ts +0 -421
  426. package/src/tools/llm/simple/bash-tool.ts +0 -238
  427. package/src/tools/llm/simple/docs-search-agent-tool.ts +0 -146
  428. package/src/tools/llm/simple/file-tools.ts +0 -1051
  429. package/src/tools/llm/simple/final-response-tool.ts +0 -180
  430. package/src/tools/llm/simple/index.ts +0 -42
  431. package/src/tools/llm/simple/planning-tools.ts +0 -143
  432. package/src/tools/llm/simple/powershell-tool.ts +0 -241
  433. package/src/tools/llm/simple/simple-tool-executor.ts +0 -279
  434. package/src/tools/llm/simple/todo-tools.ts +0 -207
  435. package/src/tools/llm/simple/user-interaction-tools.ts +0 -277
  436. package/src/tools/office/common/constants.ts +0 -335
  437. package/src/tools/office/common/index.ts +0 -133
  438. package/src/tools/office/common/types.ts +0 -286
  439. package/src/tools/office/common/utils.ts +0 -116
  440. package/src/tools/office/excel-client.ts +0 -1336
  441. package/src/tools/office/excel-tools/cells.ts +0 -359
  442. package/src/tools/office/excel-tools/charts.ts +0 -166
  443. package/src/tools/office/excel-tools/comments.ts +0 -155
  444. package/src/tools/office/excel-tools/data-ops.ts +0 -349
  445. package/src/tools/office/excel-tools/export.ts +0 -105
  446. package/src/tools/office/excel-tools/formatting.ts +0 -357
  447. package/src/tools/office/excel-tools/index.ts +0 -55
  448. package/src/tools/office/excel-tools/launch.ts +0 -303
  449. package/src/tools/office/excel-tools/media.ts +0 -117
  450. package/src/tools/office/excel-tools/named-ranges.ts +0 -148
  451. package/src/tools/office/excel-tools/protection.ts +0 -105
  452. package/src/tools/office/excel-tools/rows-columns.ts +0 -386
  453. package/src/tools/office/excel-tools/sheets.ts +0 -228
  454. package/src/tools/office/excel-tools/validation.ts +0 -226
  455. package/src/tools/office/excel-tools.ts +0 -9
  456. package/src/tools/office/index.ts +0 -259
  457. package/src/tools/office/office-client-base.ts +0 -242
  458. package/src/tools/office/office-client.ts +0 -377
  459. package/src/tools/office/powerpoint-client.ts +0 -1498
  460. package/src/tools/office/powerpoint-tools/effects.ts +0 -315
  461. package/src/tools/office/powerpoint-tools/export.ts +0 -138
  462. package/src/tools/office/powerpoint-tools/index.ts +0 -45
  463. package/src/tools/office/powerpoint-tools/launch.ts +0 -263
  464. package/src/tools/office/powerpoint-tools/media.ts +0 -291
  465. package/src/tools/office/powerpoint-tools/notes.ts +0 -220
  466. package/src/tools/office/powerpoint-tools/sections.ts +0 -140
  467. package/src/tools/office/powerpoint-tools/shapes.ts +0 -870
  468. package/src/tools/office/powerpoint-tools/slides.ts +0 -350
  469. package/src/tools/office/powerpoint-tools/tables.ts +0 -182
  470. package/src/tools/office/powerpoint-tools/text.ts +0 -473
  471. package/src/tools/office/powerpoint-tools.ts +0 -9
  472. package/src/tools/office/word-client.ts +0 -1697
  473. package/src/tools/office/word-tools/bookmarks.ts +0 -186
  474. package/src/tools/office/word-tools/comments.ts +0 -185
  475. package/src/tools/office/word-tools/content.ts +0 -229
  476. package/src/tools/office/word-tools/export.ts +0 -97
  477. package/src/tools/office/word-tools/formatting.ts +0 -161
  478. package/src/tools/office/word-tools/headers-footers.ts +0 -155
  479. package/src/tools/office/word-tools/index.ts +0 -57
  480. package/src/tools/office/word-tools/launch.ts +0 -312
  481. package/src/tools/office/word-tools/lists.ts +0 -97
  482. package/src/tools/office/word-tools/navigation.ts +0 -114
  483. package/src/tools/office/word-tools/page-setup.ts +0 -195
  484. package/src/tools/office/word-tools/tables.ts +0 -262
  485. package/src/tools/office/word-tools/text.ts +0 -294
  486. package/src/tools/office/word-tools/undo-redo.ts +0 -97
  487. package/src/tools/office/word-tools/watermarks.ts +0 -105
  488. package/src/tools/office/word-tools.ts +0 -9
  489. package/src/tools/registry.ts +0 -527
  490. package/src/tools/types.ts +0 -231
  491. package/src/types/index.ts +0 -181
  492. package/src/ui/PlanExecuteView.tsx +0 -119
  493. package/src/ui/TodoPanel.tsx +0 -240
  494. package/src/ui/UpdateNotification.tsx +0 -105
  495. package/src/ui/components/ActivityIndicator.tsx +0 -234
  496. package/src/ui/components/CommandBrowser.tsx +0 -114
  497. package/src/ui/components/CustomTextInput.tsx +0 -389
  498. package/src/ui/components/DocsSearchProgress.tsx +0 -85
  499. package/src/ui/components/FileBrowser.tsx +0 -93
  500. package/src/ui/components/LLMSetupWizard.tsx +0 -333
  501. package/src/ui/components/Logo.tsx +0 -125
  502. package/src/ui/components/MarkdownRenderer.tsx +0 -358
  503. package/src/ui/components/ModelSelector.tsx +0 -203
  504. package/src/ui/components/PlanExecuteApp.tsx +0 -2007
  505. package/src/ui/components/ProgressBar.tsx +0 -51
  506. package/src/ui/components/StatusBar.tsx +0 -302
  507. package/src/ui/components/ThinkingIndicator.tsx +0 -120
  508. package/src/ui/components/TodoListView.tsx +0 -140
  509. package/src/ui/components/ToolSelector.tsx +0 -215
  510. package/src/ui/components/dialogs/ApprovalDialog.tsx +0 -259
  511. package/src/ui/components/dialogs/AskUserDialog.tsx +0 -159
  512. package/src/ui/components/dialogs/DocsBrowser.tsx +0 -222
  513. package/src/ui/components/dialogs/SettingsDialog.tsx +0 -939
  514. package/src/ui/components/dialogs/index.ts +0 -13
  515. package/src/ui/components/index.ts +0 -27
  516. package/src/ui/components/panels/LogPanel.tsx +0 -385
  517. package/src/ui/components/panels/SessionPanel.tsx +0 -146
  518. package/src/ui/components/panels/index.ts +0 -13
  519. package/src/ui/components/views/ChatView.tsx +0 -447
  520. package/src/ui/components/views/index.ts +0 -5
  521. package/src/ui/contexts/TokenContext.tsx +0 -139
  522. package/src/ui/hooks/atFileProcessor.ts +0 -167
  523. package/src/ui/hooks/index.ts +0 -11
  524. package/src/ui/hooks/slashCommandProcessor.ts +0 -174
  525. package/src/ui/hooks/useCommandBrowserState.ts +0 -97
  526. package/src/ui/hooks/useFileBrowserState.ts +0 -116
  527. package/src/ui/hooks/useFileList.ts +0 -132
  528. package/src/ui/hooks/useInputHistory.ts +0 -89
  529. package/src/ui/hooks/usePlanExecution.ts +0 -339
  530. package/src/ui/index.ts +0 -10
  531. package/src/ui/ink-entry.tsx +0 -36
  532. package/src/utils/env-filter.ts +0 -164
  533. package/src/utils/file-system.ts +0 -133
  534. package/src/utils/git-utils.ts +0 -30
  535. package/src/utils/json-stream-logger.ts +0 -1259
  536. package/src/utils/logger.ts +0 -2767
  537. package/src/utils/platform-utils.ts +0 -256
  538. package/src/utils/wsl-utils.ts +0 -113
  539. package/tsconfig.electron.json +0 -39
  540. 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/