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