micro-models-agent 0.6.4 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (472) hide show
  1. package/README.md +286 -436
  2. package/dist/main.js +11706 -0
  3. package/dist/skills/builtin/git.md +36 -0
  4. package/dist/skills/builtin/typescript.md +35 -0
  5. package/package.json +41 -47
  6. package/dist/agent/context.d.ts +0 -73
  7. package/dist/agent/context.d.ts.map +0 -1
  8. package/dist/agent/context.js +0 -262
  9. package/dist/agent/context.js.map +0 -1
  10. package/dist/agent/error-escalation.d.ts +0 -19
  11. package/dist/agent/error-escalation.d.ts.map +0 -1
  12. package/dist/agent/error-escalation.js +0 -168
  13. package/dist/agent/error-escalation.js.map +0 -1
  14. package/dist/agent/loop.d.ts +0 -46
  15. package/dist/agent/loop.d.ts.map +0 -1
  16. package/dist/agent/loop.js +0 -1043
  17. package/dist/agent/loop.js.map +0 -1
  18. package/dist/agent/memory.d.ts +0 -40
  19. package/dist/agent/memory.d.ts.map +0 -1
  20. package/dist/agent/memory.js +0 -231
  21. package/dist/agent/memory.js.map +0 -1
  22. package/dist/agent/modes/applier.d.ts +0 -43
  23. package/dist/agent/modes/applier.d.ts.map +0 -1
  24. package/dist/agent/modes/applier.js +0 -30
  25. package/dist/agent/modes/applier.js.map +0 -1
  26. package/dist/agent/modes/registry.d.ts +0 -35
  27. package/dist/agent/modes/registry.d.ts.map +0 -1
  28. package/dist/agent/modes/registry.js +0 -169
  29. package/dist/agent/modes/registry.js.map +0 -1
  30. package/dist/agent/modes/types.d.ts +0 -61
  31. package/dist/agent/modes/types.d.ts.map +0 -1
  32. package/dist/agent/modes/types.js +0 -13
  33. package/dist/agent/modes/types.js.map +0 -1
  34. package/dist/agent/react-loop.d.ts +0 -65
  35. package/dist/agent/react-loop.d.ts.map +0 -1
  36. package/dist/agent/react-loop.js +0 -101
  37. package/dist/agent/react-loop.js.map +0 -1
  38. package/dist/agent/system-prompt.d.ts +0 -26
  39. package/dist/agent/system-prompt.d.ts.map +0 -1
  40. package/dist/agent/system-prompt.js +0 -478
  41. package/dist/agent/system-prompt.js.map +0 -1
  42. package/dist/agent/tool-executor.d.ts +0 -36
  43. package/dist/agent/tool-executor.d.ts.map +0 -1
  44. package/dist/agent/tool-executor.js +0 -346
  45. package/dist/agent/tool-executor.js.map +0 -1
  46. package/dist/agent/user-profile.d.ts +0 -26
  47. package/dist/agent/user-profile.d.ts.map +0 -1
  48. package/dist/agent/user-profile.js +0 -169
  49. package/dist/agent/user-profile.js.map +0 -1
  50. package/dist/agent/write-enforcer.d.ts +0 -7
  51. package/dist/agent/write-enforcer.d.ts.map +0 -1
  52. package/dist/agent/write-enforcer.js +0 -8
  53. package/dist/agent/write-enforcer.js.map +0 -1
  54. package/dist/cli/config.d.ts +0 -13
  55. package/dist/cli/config.d.ts.map +0 -1
  56. package/dist/cli/config.js +0 -82
  57. package/dist/cli/config.js.map +0 -1
  58. package/dist/cli/model.d.ts +0 -13
  59. package/dist/cli/model.d.ts.map +0 -1
  60. package/dist/cli/model.js +0 -170
  61. package/dist/cli/model.js.map +0 -1
  62. package/dist/cli/provider.d.ts +0 -12
  63. package/dist/cli/provider.d.ts.map +0 -1
  64. package/dist/cli/provider.js +0 -90
  65. package/dist/cli/provider.js.map +0 -1
  66. package/dist/cli/update.d.ts +0 -12
  67. package/dist/cli/update.d.ts.map +0 -1
  68. package/dist/cli/update.js +0 -69
  69. package/dist/cli/update.js.map +0 -1
  70. package/dist/cli.d.ts +0 -3
  71. package/dist/cli.d.ts.map +0 -1
  72. package/dist/cli.js +0 -310
  73. package/dist/cli.js.map +0 -1
  74. package/dist/config/config.d.ts +0 -59
  75. package/dist/config/config.d.ts.map +0 -1
  76. package/dist/config/config.js +0 -232
  77. package/dist/config/config.js.map +0 -1
  78. package/dist/config/types.d.ts +0 -122
  79. package/dist/config/types.d.ts.map +0 -1
  80. package/dist/config/types.js +0 -13
  81. package/dist/config/types.js.map +0 -1
  82. package/dist/file-loader.d.ts +0 -20
  83. package/dist/file-loader.d.ts.map +0 -1
  84. package/dist/file-loader.js +0 -121
  85. package/dist/file-loader.js.map +0 -1
  86. package/dist/index.d.ts +0 -9
  87. package/dist/index.d.ts.map +0 -1
  88. package/dist/index.js +0 -11
  89. package/dist/index.js.map +0 -1
  90. package/dist/indexer/cache.d.ts +0 -34
  91. package/dist/indexer/cache.d.ts.map +0 -1
  92. package/dist/indexer/cache.js +0 -221
  93. package/dist/indexer/cache.js.map +0 -1
  94. package/dist/indexer/code-index.d.ts +0 -27
  95. package/dist/indexer/code-index.d.ts.map +0 -1
  96. package/dist/indexer/code-index.js +0 -219
  97. package/dist/indexer/code-index.js.map +0 -1
  98. package/dist/indexer/project-map.d.ts +0 -23
  99. package/dist/indexer/project-map.d.ts.map +0 -1
  100. package/dist/indexer/project-map.js +0 -264
  101. package/dist/indexer/project-map.js.map +0 -1
  102. package/dist/llm/lmstudio-native.d.ts +0 -10
  103. package/dist/llm/lmstudio-native.d.ts.map +0 -1
  104. package/dist/llm/lmstudio-native.js +0 -179
  105. package/dist/llm/lmstudio-native.js.map +0 -1
  106. package/dist/llm/openai-compat.d.ts +0 -11
  107. package/dist/llm/openai-compat.d.ts.map +0 -1
  108. package/dist/llm/openai-compat.js +0 -161
  109. package/dist/llm/openai-compat.js.map +0 -1
  110. package/dist/llm/provider.d.ts +0 -46
  111. package/dist/llm/provider.d.ts.map +0 -1
  112. package/dist/llm/provider.js +0 -13
  113. package/dist/llm/provider.js.map +0 -1
  114. package/dist/llm/token-counter.d.ts +0 -15
  115. package/dist/llm/token-counter.d.ts.map +0 -1
  116. package/dist/llm/token-counter.js +0 -51
  117. package/dist/llm/token-counter.js.map +0 -1
  118. package/dist/logger.d.ts +0 -24
  119. package/dist/logger.d.ts.map +0 -1
  120. package/dist/logger.js +0 -156
  121. package/dist/logger.js.map +0 -1
  122. package/dist/plugins/adapters/hooks-adapter.d.ts +0 -12
  123. package/dist/plugins/adapters/hooks-adapter.d.ts.map +0 -1
  124. package/dist/plugins/adapters/hooks-adapter.js +0 -23
  125. package/dist/plugins/adapters/hooks-adapter.js.map +0 -1
  126. package/dist/plugins/builtin/lint-on-write/index.d.ts +0 -12
  127. package/dist/plugins/builtin/lint-on-write/index.d.ts.map +0 -1
  128. package/dist/plugins/builtin/lint-on-write/index.js +0 -98
  129. package/dist/plugins/builtin/lint-on-write/index.js.map +0 -1
  130. package/dist/plugins/builtin/lint-on-write/index.ts +0 -97
  131. package/dist/plugins/builtin/lint-on-write/manifest.json +0 -13
  132. package/dist/plugins/builtin/notify/index.d.ts +0 -11
  133. package/dist/plugins/builtin/notify/index.d.ts.map +0 -1
  134. package/dist/plugins/builtin/notify/index.js +0 -102
  135. package/dist/plugins/builtin/notify/index.js.map +0 -1
  136. package/dist/plugins/builtin/notify/index.ts +0 -105
  137. package/dist/plugins/builtin/notify/manifest.json +0 -16
  138. package/dist/plugins/loader.d.ts +0 -18
  139. package/dist/plugins/loader.d.ts.map +0 -1
  140. package/dist/plugins/loader.js +0 -182
  141. package/dist/plugins/loader.js.map +0 -1
  142. package/dist/plugins/manager.d.ts +0 -55
  143. package/dist/plugins/manager.d.ts.map +0 -1
  144. package/dist/plugins/manager.js +0 -190
  145. package/dist/plugins/manager.js.map +0 -1
  146. package/dist/plugins/types.d.ts +0 -76
  147. package/dist/plugins/types.d.ts.map +0 -1
  148. package/dist/plugins/types.js +0 -8
  149. package/dist/plugins/types.js.map +0 -1
  150. package/dist/repl/commands.d.ts +0 -63
  151. package/dist/repl/commands.d.ts.map +0 -1
  152. package/dist/repl/commands.js +0 -1070
  153. package/dist/repl/commands.js.map +0 -1
  154. package/dist/repl/history.d.ts +0 -32
  155. package/dist/repl/history.d.ts.map +0 -1
  156. package/dist/repl/history.js +0 -40
  157. package/dist/repl/history.js.map +0 -1
  158. package/dist/repl/index.d.ts +0 -14
  159. package/dist/repl/index.d.ts.map +0 -1
  160. package/dist/repl/index.js +0 -235
  161. package/dist/repl/index.js.map +0 -1
  162. package/dist/session/store.d.ts +0 -46
  163. package/dist/session/store.d.ts.map +0 -1
  164. package/dist/session/store.js +0 -154
  165. package/dist/session/store.js.map +0 -1
  166. package/dist/setup-wizard.d.ts +0 -3
  167. package/dist/setup-wizard.d.ts.map +0 -1
  168. package/dist/setup-wizard.js +0 -410
  169. package/dist/setup-wizard.js.map +0 -1
  170. package/dist/skills/builtin/agent-test/SKILL.md +0 -68
  171. package/dist/skills/builtin/cli-expert/SKILL.md +0 -848
  172. package/dist/skills/builtin/code-review/SKILL.md +0 -424
  173. package/dist/skills/builtin/git-expert/SKILL.md +0 -522
  174. package/dist/skills/builtin/grill-me/SKILL.md +0 -46
  175. package/dist/skills/builtin/jest-testing-expert/SKILL.md +0 -957
  176. package/dist/skills/builtin/nodejs-expert/SKILL.md +0 -192
  177. package/dist/skills/builtin/systematic-debugging/SKILL.md +0 -296
  178. package/dist/skills/builtin/test-driven-development/SKILL.md +0 -371
  179. package/dist/skills/builtin/typescript-expert/SKILL.md +0 -429
  180. package/dist/skills/builtin/web-scraping/SKILL.md +0 -422
  181. package/dist/skills/loader.d.ts +0 -49
  182. package/dist/skills/loader.d.ts.map +0 -1
  183. package/dist/skills/loader.js +0 -401
  184. package/dist/skills/loader.js.map +0 -1
  185. package/dist/styling/engine.d.ts +0 -39
  186. package/dist/styling/engine.d.ts.map +0 -1
  187. package/dist/styling/engine.js +0 -122
  188. package/dist/styling/engine.js.map +0 -1
  189. package/dist/styling/index.d.ts +0 -15
  190. package/dist/styling/index.d.ts.map +0 -1
  191. package/dist/styling/index.js +0 -40
  192. package/dist/styling/index.js.map +0 -1
  193. package/dist/styling/loader.d.ts +0 -9
  194. package/dist/styling/loader.d.ts.map +0 -1
  195. package/dist/styling/loader.js +0 -169
  196. package/dist/styling/loader.js.map +0 -1
  197. package/dist/styling/types.d.ts +0 -64
  198. package/dist/styling/types.d.ts.map +0 -1
  199. package/dist/styling/types.js +0 -12
  200. package/dist/styling/types.js.map +0 -1
  201. package/dist/subagent/chat.d.ts +0 -19
  202. package/dist/subagent/chat.d.ts.map +0 -1
  203. package/dist/subagent/chat.js +0 -279
  204. package/dist/subagent/chat.js.map +0 -1
  205. package/dist/subagent/context.d.ts +0 -9
  206. package/dist/subagent/context.d.ts.map +0 -1
  207. package/dist/subagent/context.js +0 -75
  208. package/dist/subagent/context.js.map +0 -1
  209. package/dist/subagent/definition.d.ts +0 -7
  210. package/dist/subagent/definition.d.ts.map +0 -1
  211. package/dist/subagent/definition.js +0 -26
  212. package/dist/subagent/definition.js.map +0 -1
  213. package/dist/subagent/errors.d.ts +0 -24
  214. package/dist/subagent/errors.d.ts.map +0 -1
  215. package/dist/subagent/errors.js +0 -85
  216. package/dist/subagent/errors.js.map +0 -1
  217. package/dist/subagent/validation.d.ts +0 -17
  218. package/dist/subagent/validation.d.ts.map +0 -1
  219. package/dist/subagent/validation.js +0 -83
  220. package/dist/subagent/validation.js.map +0 -1
  221. package/dist/tools/adapters/bash-to-fs.d.ts +0 -20
  222. package/dist/tools/adapters/bash-to-fs.d.ts.map +0 -1
  223. package/dist/tools/adapters/bash-to-fs.js +0 -74
  224. package/dist/tools/adapters/bash-to-fs.js.map +0 -1
  225. package/dist/tools/adapters/content-sanitizer.d.ts +0 -13
  226. package/dist/tools/adapters/content-sanitizer.d.ts.map +0 -1
  227. package/dist/tools/adapters/content-sanitizer.js +0 -73
  228. package/dist/tools/adapters/content-sanitizer.js.map +0 -1
  229. package/dist/tools/adapters/grounding-fixer.d.ts +0 -15
  230. package/dist/tools/adapters/grounding-fixer.d.ts.map +0 -1
  231. package/dist/tools/adapters/grounding-fixer.js +0 -57
  232. package/dist/tools/adapters/grounding-fixer.js.map +0 -1
  233. package/dist/tools/adapters/index.d.ts +0 -6
  234. package/dist/tools/adapters/index.d.ts.map +0 -1
  235. package/dist/tools/adapters/index.js +0 -5
  236. package/dist/tools/adapters/index.js.map +0 -1
  237. package/dist/tools/adapters/pipeline.d.ts +0 -34
  238. package/dist/tools/adapters/pipeline.d.ts.map +0 -1
  239. package/dist/tools/adapters/pipeline.js +0 -58
  240. package/dist/tools/adapters/pipeline.js.map +0 -1
  241. package/dist/tools/adapters/types.d.ts +0 -46
  242. package/dist/tools/adapters/types.d.ts.map +0 -1
  243. package/dist/tools/adapters/types.js +0 -2
  244. package/dist/tools/adapters/types.js.map +0 -1
  245. package/dist/tools/approve.d.ts +0 -27
  246. package/dist/tools/approve.d.ts.map +0 -1
  247. package/dist/tools/approve.js +0 -45
  248. package/dist/tools/approve.js.map +0 -1
  249. package/dist/tools/bash.d.ts +0 -25
  250. package/dist/tools/bash.d.ts.map +0 -1
  251. package/dist/tools/bash.js +0 -292
  252. package/dist/tools/bash.js.map +0 -1
  253. package/dist/tools/fs/copy-file.d.ts +0 -13
  254. package/dist/tools/fs/copy-file.d.ts.map +0 -1
  255. package/dist/tools/fs/copy-file.js +0 -54
  256. package/dist/tools/fs/copy-file.js.map +0 -1
  257. package/dist/tools/fs/create-dir.d.ts +0 -13
  258. package/dist/tools/fs/create-dir.d.ts.map +0 -1
  259. package/dist/tools/fs/create-dir.js +0 -44
  260. package/dist/tools/fs/create-dir.js.map +0 -1
  261. package/dist/tools/fs/delete-file.d.ts +0 -13
  262. package/dist/tools/fs/delete-file.d.ts.map +0 -1
  263. package/dist/tools/fs/delete-file.js +0 -52
  264. package/dist/tools/fs/delete-file.js.map +0 -1
  265. package/dist/tools/fs/edit-file.d.ts +0 -15
  266. package/dist/tools/fs/edit-file.d.ts.map +0 -1
  267. package/dist/tools/fs/edit-file.js +0 -95
  268. package/dist/tools/fs/edit-file.js.map +0 -1
  269. package/dist/tools/fs/file-info.d.ts +0 -13
  270. package/dist/tools/fs/file-info.d.ts.map +0 -1
  271. package/dist/tools/fs/file-info.js +0 -50
  272. package/dist/tools/fs/file-info.js.map +0 -1
  273. package/dist/tools/fs/glob-search.d.ts +0 -13
  274. package/dist/tools/fs/glob-search.d.ts.map +0 -1
  275. package/dist/tools/fs/glob-search.js +0 -112
  276. package/dist/tools/fs/glob-search.js.map +0 -1
  277. package/dist/tools/fs/grep-search.d.ts +0 -14
  278. package/dist/tools/fs/grep-search.d.ts.map +0 -1
  279. package/dist/tools/fs/grep-search.js +0 -135
  280. package/dist/tools/fs/grep-search.js.map +0 -1
  281. package/dist/tools/fs/list-dir.d.ts +0 -13
  282. package/dist/tools/fs/list-dir.d.ts.map +0 -1
  283. package/dist/tools/fs/list-dir.js +0 -74
  284. package/dist/tools/fs/list-dir.js.map +0 -1
  285. package/dist/tools/fs/move-file.d.ts +0 -13
  286. package/dist/tools/fs/move-file.d.ts.map +0 -1
  287. package/dist/tools/fs/move-file.js +0 -54
  288. package/dist/tools/fs/move-file.js.map +0 -1
  289. package/dist/tools/fs/path-utils.d.ts +0 -51
  290. package/dist/tools/fs/path-utils.d.ts.map +0 -1
  291. package/dist/tools/fs/path-utils.js +0 -103
  292. package/dist/tools/fs/path-utils.js.map +0 -1
  293. package/dist/tools/fs/read-file.d.ts +0 -13
  294. package/dist/tools/fs/read-file.d.ts.map +0 -1
  295. package/dist/tools/fs/read-file.js +0 -64
  296. package/dist/tools/fs/read-file.js.map +0 -1
  297. package/dist/tools/fs/tree.d.ts +0 -13
  298. package/dist/tools/fs/tree.d.ts.map +0 -1
  299. package/dist/tools/fs/tree.js +0 -89
  300. package/dist/tools/fs/tree.js.map +0 -1
  301. package/dist/tools/fs/types.d.ts +0 -14
  302. package/dist/tools/fs/types.d.ts.map +0 -1
  303. package/dist/tools/fs/types.js +0 -11
  304. package/dist/tools/fs/types.js.map +0 -1
  305. package/dist/tools/fs/write-file.d.ts +0 -14
  306. package/dist/tools/fs/write-file.d.ts.map +0 -1
  307. package/dist/tools/fs/write-file.js +0 -83
  308. package/dist/tools/fs/write-file.js.map +0 -1
  309. package/dist/tools/hooks.d.ts +0 -44
  310. package/dist/tools/hooks.d.ts.map +0 -1
  311. package/dist/tools/hooks.js +0 -217
  312. package/dist/tools/hooks.js.map +0 -1
  313. package/dist/tools/id-gen.d.ts +0 -4
  314. package/dist/tools/id-gen.d.ts.map +0 -1
  315. package/dist/tools/id-gen.js +0 -12
  316. package/dist/tools/id-gen.js.map +0 -1
  317. package/dist/tools/mcp.d.ts +0 -36
  318. package/dist/tools/mcp.d.ts.map +0 -1
  319. package/dist/tools/mcp.js +0 -93
  320. package/dist/tools/mcp.js.map +0 -1
  321. package/dist/tools/native/approve.d.ts +0 -11
  322. package/dist/tools/native/approve.d.ts.map +0 -1
  323. package/dist/tools/native/approve.js +0 -39
  324. package/dist/tools/native/approve.js.map +0 -1
  325. package/dist/tools/native/plan.d.ts +0 -10
  326. package/dist/tools/native/plan.d.ts.map +0 -1
  327. package/dist/tools/native/plan.js +0 -115
  328. package/dist/tools/native/plan.js.map +0 -1
  329. package/dist/tools/native/project-map.d.ts +0 -15
  330. package/dist/tools/native/project-map.d.ts.map +0 -1
  331. package/dist/tools/native/project-map.js +0 -203
  332. package/dist/tools/native/project-map.js.map +0 -1
  333. package/dist/tools/native/question.d.ts +0 -11
  334. package/dist/tools/native/question.d.ts.map +0 -1
  335. package/dist/tools/native/question.js +0 -41
  336. package/dist/tools/native/question.js.map +0 -1
  337. package/dist/tools/native/scaffold.d.ts +0 -5
  338. package/dist/tools/native/scaffold.d.ts.map +0 -1
  339. package/dist/tools/native/scaffold.js +0 -246
  340. package/dist/tools/native/scaffold.js.map +0 -1
  341. package/dist/tools/native/theme.d.ts +0 -10
  342. package/dist/tools/native/theme.d.ts.map +0 -1
  343. package/dist/tools/native/theme.js +0 -101
  344. package/dist/tools/native/theme.js.map +0 -1
  345. package/dist/tools/native/todo.d.ts +0 -10
  346. package/dist/tools/native/todo.d.ts.map +0 -1
  347. package/dist/tools/native/todo.js +0 -58
  348. package/dist/tools/native/todo.js.map +0 -1
  349. package/dist/tools/native/user-profile.d.ts +0 -10
  350. package/dist/tools/native/user-profile.d.ts.map +0 -1
  351. package/dist/tools/native/user-profile.js +0 -58
  352. package/dist/tools/native/user-profile.js.map +0 -1
  353. package/dist/tools/parse-tool-call.d.ts +0 -11
  354. package/dist/tools/parse-tool-call.d.ts.map +0 -1
  355. package/dist/tools/parse-tool-call.js +0 -87
  356. package/dist/tools/parse-tool-call.js.map +0 -1
  357. package/dist/tools/plan.d.ts +0 -40
  358. package/dist/tools/plan.d.ts.map +0 -1
  359. package/dist/tools/plan.js +0 -143
  360. package/dist/tools/plan.js.map +0 -1
  361. package/dist/tools/question.d.ts +0 -33
  362. package/dist/tools/question.d.ts.map +0 -1
  363. package/dist/tools/question.js +0 -62
  364. package/dist/tools/question.js.map +0 -1
  365. package/dist/tools/registry.d.ts +0 -37
  366. package/dist/tools/registry.d.ts.map +0 -1
  367. package/dist/tools/registry.js +0 -97
  368. package/dist/tools/registry.js.map +0 -1
  369. package/dist/tools/sanitizer.d.ts +0 -30
  370. package/dist/tools/sanitizer.d.ts.map +0 -1
  371. package/dist/tools/sanitizer.js +0 -77
  372. package/dist/tools/sanitizer.js.map +0 -1
  373. package/dist/tools/subagent.d.ts +0 -39
  374. package/dist/tools/subagent.d.ts.map +0 -1
  375. package/dist/tools/subagent.js +0 -225
  376. package/dist/tools/subagent.js.map +0 -1
  377. package/dist/tools/syntax-check.d.ts +0 -32
  378. package/dist/tools/syntax-check.d.ts.map +0 -1
  379. package/dist/tools/syntax-check.js +0 -272
  380. package/dist/tools/syntax-check.js.map +0 -1
  381. package/dist/tools/todo.d.ts +0 -28
  382. package/dist/tools/todo.d.ts.map +0 -1
  383. package/dist/tools/todo.js +0 -125
  384. package/dist/tools/todo.js.map +0 -1
  385. package/dist/tools/types.d.ts +0 -51
  386. package/dist/tools/types.d.ts.map +0 -1
  387. package/dist/tools/types.js +0 -2
  388. package/dist/tools/types.js.map +0 -1
  389. package/dist/tools/web-browse.d.ts +0 -5
  390. package/dist/tools/web-browse.d.ts.map +0 -1
  391. package/dist/tools/web-browse.js +0 -757
  392. package/dist/tools/web-browse.js.map +0 -1
  393. package/dist/tools/web-fetch.d.ts +0 -19
  394. package/dist/tools/web-fetch.d.ts.map +0 -1
  395. package/dist/tools/web-fetch.js +0 -90
  396. package/dist/tools/web-fetch.js.map +0 -1
  397. package/dist/tools/web-search.d.ts +0 -19
  398. package/dist/tools/web-search.d.ts.map +0 -1
  399. package/dist/tools/web-search.js +0 -97
  400. package/dist/tools/web-search.js.map +0 -1
  401. package/dist/ui/components/status-bar.d.ts +0 -11
  402. package/dist/ui/components/status-bar.d.ts.map +0 -1
  403. package/dist/ui/components/status-bar.js +0 -20
  404. package/dist/ui/components/status-bar.js.map +0 -1
  405. package/dist/ui/index.d.ts +0 -8
  406. package/dist/ui/index.d.ts.map +0 -1
  407. package/dist/ui/index.js +0 -9
  408. package/dist/ui/index.js.map +0 -1
  409. package/dist/ui/ink/components/App.d.ts +0 -98
  410. package/dist/ui/ink/components/App.d.ts.map +0 -1
  411. package/dist/ui/ink/components/App.js +0 -212
  412. package/dist/ui/ink/components/App.js.map +0 -1
  413. package/dist/ui/ink/components/Conversation.d.ts +0 -20
  414. package/dist/ui/ink/components/Conversation.d.ts.map +0 -1
  415. package/dist/ui/ink/components/Conversation.js +0 -15
  416. package/dist/ui/ink/components/Conversation.js.map +0 -1
  417. package/dist/ui/ink/components/MessageBlock.d.ts +0 -27
  418. package/dist/ui/ink/components/MessageBlock.d.ts.map +0 -1
  419. package/dist/ui/ink/components/MessageBlock.js +0 -41
  420. package/dist/ui/ink/components/MessageBlock.js.map +0 -1
  421. package/dist/ui/ink/components/PromptInput.d.ts +0 -25
  422. package/dist/ui/ink/components/PromptInput.d.ts.map +0 -1
  423. package/dist/ui/ink/components/PromptInput.js +0 -167
  424. package/dist/ui/ink/components/PromptInput.js.map +0 -1
  425. package/dist/ui/ink/components/SelectInput.d.ts +0 -9
  426. package/dist/ui/ink/components/SelectInput.d.ts.map +0 -1
  427. package/dist/ui/ink/components/SelectInput.js +0 -30
  428. package/dist/ui/ink/components/SelectInput.js.map +0 -1
  429. package/dist/ui/ink/components/StatusBar.d.ts +0 -14
  430. package/dist/ui/ink/components/StatusBar.d.ts.map +0 -1
  431. package/dist/ui/ink/components/StatusBar.js +0 -20
  432. package/dist/ui/ink/components/StatusBar.js.map +0 -1
  433. package/dist/ui/ink/components/StreamBlock.d.ts +0 -8
  434. package/dist/ui/ink/components/StreamBlock.d.ts.map +0 -1
  435. package/dist/ui/ink/components/StreamBlock.js +0 -15
  436. package/dist/ui/ink/components/StreamBlock.js.map +0 -1
  437. package/dist/ui/ink/components/Tags.d.ts +0 -26
  438. package/dist/ui/ink/components/Tags.d.ts.map +0 -1
  439. package/dist/ui/ink/components/Tags.js +0 -37
  440. package/dist/ui/ink/components/Tags.js.map +0 -1
  441. package/dist/ui/ink/components/ToolCallBlock.d.ts +0 -31
  442. package/dist/ui/ink/components/ToolCallBlock.d.ts.map +0 -1
  443. package/dist/ui/ink/components/ToolCallBlock.js +0 -17
  444. package/dist/ui/ink/components/ToolCallBlock.js.map +0 -1
  445. package/dist/ui/ink/renderer.d.ts +0 -69
  446. package/dist/ui/ink/renderer.d.ts.map +0 -1
  447. package/dist/ui/ink/renderer.js +0 -142
  448. package/dist/ui/ink/renderer.js.map +0 -1
  449. package/dist/ui/ink/theme.d.ts +0 -28
  450. package/dist/ui/ink/theme.d.ts.map +0 -1
  451. package/dist/ui/ink/theme.js +0 -45
  452. package/dist/ui/ink/theme.js.map +0 -1
  453. package/dist/ui/md-formatter.d.ts +0 -16
  454. package/dist/ui/md-formatter.d.ts.map +0 -1
  455. package/dist/ui/md-formatter.js +0 -448
  456. package/dist/ui/md-formatter.js.map +0 -1
  457. package/dist/ui/readline-renderer.d.ts +0 -45
  458. package/dist/ui/readline-renderer.d.ts.map +0 -1
  459. package/dist/ui/readline-renderer.js +0 -181
  460. package/dist/ui/readline-renderer.js.map +0 -1
  461. package/dist/ui/renderer.d.ts +0 -66
  462. package/dist/ui/renderer.d.ts.map +0 -1
  463. package/dist/ui/renderer.js +0 -16
  464. package/dist/ui/renderer.js.map +0 -1
  465. package/dist/ui/subagent-renderer.d.ts +0 -58
  466. package/dist/ui/subagent-renderer.d.ts.map +0 -1
  467. package/dist/ui/subagent-renderer.js +0 -100
  468. package/dist/ui/subagent-renderer.js.map +0 -1
  469. package/dist/updater.d.ts +0 -15
  470. package/dist/updater.d.ts.map +0 -1
  471. package/dist/updater.js +0 -166
  472. package/dist/updater.js.map +0 -1
@@ -1,179 +0,0 @@
1
- import { getLLMConfig } from '../config/config.js';
2
- /** Models that support reasoning/thinking */
3
- const REASONING_MODEL_PATTERNS = [
4
- /qwen.*3\.5/i,
5
- /qwen.*3.*thinking/i,
6
- /deepseek.*r1/i,
7
- /deepseek.*reason/i,
8
- ];
9
- function isReasoningModel(model) {
10
- return REASONING_MODEL_PATTERNS.some(p => p.test(model));
11
- }
12
- export class LMStudioNative {
13
- model;
14
- contextWindow;
15
- baseUrl;
16
- constructor(baseUrl, model, contextWindow) {
17
- // Native API is at /api/v1/chat, not /v1/chat/completions
18
- // Strip /v1 suffix if present since native API uses /api/v1
19
- this.baseUrl = baseUrl.replace(/\/+$/, '').replace(/\/v1$/, '');
20
- this.model = model;
21
- this.contextWindow = contextWindow;
22
- }
23
- async *chat(messages, options) {
24
- const reasoning = isReasoningModel(this.model);
25
- const llmCfg = getLLMConfig();
26
- const defaultMaxTokens = reasoning ? llmCfg.maxTokensReasoning : llmCfg.maxTokensDefault;
27
- // Convert messages to a single text block for native API
28
- // Native API doesn't support role-based messages, so we format as:
29
- // [System] content\n[User] content\n[Assistant] content\n...
30
- // This preserves conversation history while using reasoning: "off"
31
- const inputLines = [];
32
- for (const m of messages) {
33
- if (m.role === 'system') {
34
- inputLines.push(`[System] ${m.content}`);
35
- }
36
- else if (m.role === 'user') {
37
- inputLines.push(`[User] ${m.content}`);
38
- }
39
- else if (m.role === 'assistant') {
40
- inputLines.push(`[Assistant] ${m.content}`);
41
- }
42
- else if (m.role === 'tool') {
43
- inputLines.push(`[Tool result] ${m.content}`);
44
- }
45
- }
46
- const input = inputLines.join('\n');
47
- // Determine reasoning setting
48
- // When enableThinking is explicitly set, use it; otherwise use "off" for reasoning models
49
- // to prevent empty response issues
50
- let reasoningSetting = 'off';
51
- if (options?.enableThinking) {
52
- reasoningSetting = 'on';
53
- }
54
- const body = {
55
- model: this.model,
56
- input,
57
- stream: true,
58
- temperature: options?.temperature ?? 0.3,
59
- max_output_tokens: options?.max_tokens ?? defaultMaxTokens,
60
- reasoning: reasoningSetting,
61
- };
62
- if (options?.top_p !== undefined)
63
- body.top_p = options.top_p;
64
- if (options?.stop !== undefined)
65
- body.stop = options.stop;
66
- const headers = { 'Content-Type': 'application/json' };
67
- const response = await fetch(`${this.baseUrl}/api/v1/chat`, {
68
- method: 'POST',
69
- headers,
70
- body: JSON.stringify(body),
71
- signal: options?.signal,
72
- });
73
- if (!response.ok) {
74
- const err = await response.json().catch(() => ({}));
75
- throw new Error(`LM Studio API ${response.status}: ${err.error?.message ?? response.statusText}`);
76
- }
77
- const reader = response.body.getReader();
78
- const decoder = new TextDecoder();
79
- let buffer = '';
80
- // Track tool calls being accumulated
81
- const pendingToolCalls = new Map();
82
- while (true) {
83
- const { done, value } = await reader.read();
84
- if (done)
85
- break;
86
- buffer += decoder.decode(value, { stream: true });
87
- // Parse SSE events: "event: <type>\ndata: <json>\n\n"
88
- const eventBlocks = buffer.split('\n\n');
89
- buffer = eventBlocks.pop() ?? '';
90
- for (const block of eventBlocks) {
91
- if (!block.trim())
92
- continue;
93
- const lines = block.split('\n');
94
- let eventType = '';
95
- let jsonData = '';
96
- for (const line of lines) {
97
- if (line.startsWith('event: ')) {
98
- eventType = line.slice(7).trim();
99
- }
100
- else if (line.startsWith('data: ')) {
101
- jsonData = line.slice(6);
102
- }
103
- }
104
- if (!eventType || !jsonData)
105
- continue;
106
- try {
107
- const event = JSON.parse(jsonData);
108
- switch (eventType) {
109
- case 'reasoning.delta':
110
- // Reasoning content — yield as reasoning chunk
111
- if (event.content) {
112
- yield { content: '', reasoning: event.content, finish_reason: null };
113
- }
114
- break;
115
- case 'message.delta':
116
- // Message content — yield as content chunk
117
- if (event.content) {
118
- yield { content: event.content, reasoning: undefined, finish_reason: null };
119
- }
120
- break;
121
- case 'tool_call.start':
122
- // New tool call starting
123
- if (event.tool) {
124
- pendingToolCalls.set(event.tool, { name: event.tool, arguments: '' });
125
- }
126
- break;
127
- case 'tool_call.arguments':
128
- // Tool call arguments arriving
129
- if (event.tool && event.arguments) {
130
- const existing = pendingToolCalls.get(event.tool);
131
- if (existing) {
132
- existing.arguments = JSON.stringify(event.arguments);
133
- }
134
- }
135
- break;
136
- case 'tool_call.success':
137
- // Tool call completed — convert to <tool_call> text format
138
- if (event.tool) {
139
- const tc = pendingToolCalls.get(event.tool) ?? { name: event.tool, arguments: '{}' };
140
- const toolCallText = `<tool_call>{"name":"${tc.name}","arguments":${tc.arguments || '{}'}}</tool_call>`;
141
- yield { content: toolCallText, reasoning: undefined, finish_reason: 'tool_calls' };
142
- pendingToolCalls.delete(event.tool);
143
- }
144
- break;
145
- case 'chat.end':
146
- // Final event — check if there were tool calls in the result
147
- if (event.result?.output) {
148
- for (const item of event.result.output) {
149
- if (item.type === 'tool_call' && item.tool) {
150
- const argsStr = item.arguments ? JSON.stringify(item.arguments) : '{}';
151
- const toolCallText = `<tool_call>{"name":"${item.tool}","arguments":${argsStr}}</tool_call>`;
152
- yield { content: toolCallText, reasoning: undefined, finish_reason: 'tool_calls' };
153
- }
154
- }
155
- }
156
- // Yield final finish_reason
157
- yield { content: '', reasoning: undefined, finish_reason: 'stop' };
158
- break;
159
- case 'error':
160
- if (event.error) {
161
- throw new Error(`LM Studio error: ${event.error.message}`);
162
- }
163
- break;
164
- }
165
- }
166
- catch (e) {
167
- if (e.message?.startsWith('LM Studio error:'))
168
- throw e;
169
- // Skip malformed events
170
- }
171
- }
172
- }
173
- }
174
- async countTokens(text) {
175
- const mod = await import('./token-counter.js');
176
- return mod.countTokens(text);
177
- }
178
- }
179
- //# sourceMappingURL=lmstudio-native.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lmstudio-native.js","sourceRoot":"","sources":["../../src/llm/lmstudio-native.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import type { LLMProvider, ChatMessage, ChatOptions, Chunk } from './provider.js';
2
- export declare class OpenAICompat implements LLMProvider {
3
- readonly model: string;
4
- contextWindow: number;
5
- private baseUrl;
6
- private apiKey;
7
- constructor(baseUrl: string, model: string, contextWindow: number, apiKey?: string | null);
8
- chat(messages: ChatMessage[], options?: ChatOptions): AsyncIterable<Chunk>;
9
- countTokens(text: string): Promise<number>;
10
- }
11
- //# sourceMappingURL=openai-compat.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai-compat.d.ts","sourceRoot":"","sources":["../../src/llm/openai-compat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAyClF,qBAAa,YAAa,YAAW,WAAW;IAC9C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAgB;gBAElB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,GAAG,IAAW;IAOxF,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC;IA6H3E,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAIjD"}
@@ -1,161 +0,0 @@
1
- import { getLLMConfig } from '../config/config.js';
2
- /** Паттерны моделей, поддерживающих reasoning/thinking */
3
- const REASONING_MODEL_PATTERNS = [
4
- /qwen.*3\.5/i,
5
- /qwen.*3.*thinking/i,
6
- /deepseek.*r1/i,
7
- /deepseek.*reason/i,
8
- /\br1\b.*7b/i,
9
- /\br1\b.*14b/i,
10
- /\br1\b.*32b/i,
11
- /\br1\b.*70b/i,
12
- ];
13
- /**
14
- * Проверяет, является ли модель reasoning-моделью.
15
- * Reasoning-модели отправляют reasoning_content перед content,
16
- * и нуждаются в большем max_tokens и enable_thinking.
17
- */
18
- function isReasoningModel(model) {
19
- return REASONING_MODEL_PATTERNS.some(p => p.test(model));
20
- }
21
- export class OpenAICompat {
22
- model;
23
- contextWindow;
24
- baseUrl;
25
- apiKey;
26
- constructor(baseUrl, model, contextWindow, apiKey = null) {
27
- this.baseUrl = baseUrl.replace(/\/+$/, '');
28
- this.model = model;
29
- this.contextWindow = contextWindow;
30
- this.apiKey = apiKey;
31
- }
32
- async *chat(messages, options) {
33
- const reasoning = isReasoningModel(this.model);
34
- const llmCfg = getLLMConfig();
35
- // Reasoning-модели требуют больший budget — reasoning токены потребляют часть max_tokens
36
- const defaultMaxTokens = reasoning ? llmCfg.maxTokensReasoning : llmCfg.maxTokensDefault;
37
- const body = {
38
- model: this.model,
39
- messages: messages.map(m => {
40
- const msg = { role: m.role, content: m.content };
41
- // Tool messages требуют tool_call_id для OpenAI API
42
- if (m.role === 'tool' && m.tool_call_id) {
43
- msg.tool_call_id = m.tool_call_id;
44
- if (m.name)
45
- msg.name = m.name;
46
- }
47
- return msg;
48
- }),
49
- stream: true,
50
- temperature: options?.temperature ?? 0.3,
51
- max_tokens: options?.max_tokens ?? defaultMaxTokens,
52
- };
53
- if (options?.top_p !== undefined)
54
- body.top_p = options.top_p;
55
- if (options?.stop !== undefined)
56
- body.stop = options.stop;
57
- // Reasoning-модели: включаем thinking если поддерживается
58
- if (options?.enableThinking && reasoning) {
59
- // Qwen3.5 (LM Studio / vLLM): chat_template_kwargs с enable_thinking=true
60
- body.chat_template_kwargs = { enable_thinking: true };
61
- }
62
- const headers = { 'Content-Type': 'application/json' };
63
- if (this.apiKey)
64
- headers['Authorization'] = `Bearer ${this.apiKey}`;
65
- const response = await fetch(`${this.baseUrl}/chat/completions`, {
66
- method: 'POST',
67
- headers,
68
- body: JSON.stringify(body),
69
- signal: options?.signal,
70
- });
71
- if (!response.ok) {
72
- const err = await response.json().catch(() => ({}));
73
- throw new Error(`API ${response.status}: ${err.error?.message ?? response.statusText}`);
74
- }
75
- const reader = response.body.getReader();
76
- const decoder = new TextDecoder();
77
- let buffer = '';
78
- // Накапливаем нативные tool_calls из delta для конвертации в текстовый формат
79
- const nativeToolCalls = new Map();
80
- let hasContent = false;
81
- while (true) {
82
- const { done, value } = await reader.read();
83
- if (done)
84
- break;
85
- buffer += decoder.decode(value, { stream: true });
86
- const lines = buffer.split('\n');
87
- buffer = lines.pop() ?? '';
88
- for (const line of lines) {
89
- const trimmed = line.trim();
90
- if (!trimmed || !trimmed.startsWith('data: '))
91
- continue;
92
- const data = trimmed.slice(6);
93
- if (data === '[DONE]')
94
- return;
95
- try {
96
- const parsed = JSON.parse(data);
97
- const delta = parsed.choices?.[0]?.delta;
98
- // Нативные tool_calls: накапливаем и конвертируем в <tool_call> текст
99
- if (delta?.tool_calls) {
100
- for (const tc of delta.tool_calls) {
101
- const idx = tc.index ?? 0;
102
- if (!nativeToolCalls.has(idx)) {
103
- nativeToolCalls.set(idx, { id: tc.id, name: tc.function?.name, arguments: '' });
104
- }
105
- const existing = nativeToolCalls.get(idx);
106
- if (tc.id)
107
- existing.id = tc.id;
108
- if (tc.function?.name)
109
- existing.name = tc.function.name;
110
- if (tc.function?.arguments)
111
- existing.arguments += tc.function.arguments;
112
- }
113
- }
114
- if (delta?.content) {
115
- hasContent = true;
116
- yield { content: delta.content, finish_reason: null };
117
- }
118
- else if (delta?.reasoning_content) {
119
- yield { content: '', reasoning: delta.reasoning_content, finish_reason: null };
120
- }
121
- const finish = parsed.choices?.[0]?.finish_reason;
122
- if (finish) {
123
- // Если finish_reason=tool_calls но контента не было — конвертируем нативные tool_calls в текст
124
- if (finish === 'tool_calls' && !hasContent && nativeToolCalls.size > 0) {
125
- const toolCallTexts = [];
126
- for (const [, tc] of nativeToolCalls) {
127
- if (tc.name) {
128
- let argsStr = tc.arguments;
129
- // Парсим arguments если это JSON — оборачиваем в валидный JSON
130
- try {
131
- JSON.parse(argsStr);
132
- }
133
- catch {
134
- // Если arguments не валидный JSON, оборачиваем как строку
135
- argsStr = JSON.stringify(argsStr);
136
- }
137
- toolCallTexts.push(`<tool_call>{"name":"${tc.name}","arguments":${argsStr}}</tool_call>`);
138
- }
139
- }
140
- if (toolCallTexts.length > 0) {
141
- yield { content: toolCallTexts.join('\n'), finish_reason: finish };
142
- }
143
- else {
144
- yield { content: '', finish_reason: finish };
145
- }
146
- }
147
- else {
148
- yield { content: '', finish_reason: finish };
149
- }
150
- }
151
- }
152
- catch { /* skip malformed chunk */ }
153
- }
154
- }
155
- }
156
- async countTokens(text) {
157
- const mod = await import('./token-counter.js');
158
- return mod.countTokens(text);
159
- }
160
- }
161
- //# sourceMappingURL=openai-compat.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai-compat.js","sourceRoot":"","sources":["../../src/llm/openai-compat.ts"],"names":[],"mappings":"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"}
@@ -1,46 +0,0 @@
1
- /**
2
- * Интерфейсы для LLM-провайдеров.
3
- *
4
- * Определяет контракт для всех провайдеров:
5
- * - chat() — streaming-запрос к модели
6
- * - countTokens() — подсчёт токенов
7
- * - model — имя модели
8
- * - contextWindow — размер контекстного окна
9
- *
10
- * @module llm/provider
11
- */
12
- /** Интерфейс LLM-провайдера (OpenAI-совместимый) */
13
- export interface LLMProvider {
14
- chat(messages: ChatMessage[], options?: ChatOptions): AsyncIterable<Chunk>;
15
- countTokens(text: string): Promise<number>;
16
- model: string;
17
- contextWindow: number;
18
- }
19
- /** Сообщение в диалоге с LLM */
20
- export interface ChatMessage {
21
- role: 'system' | 'user' | 'assistant' | 'tool';
22
- content: string;
23
- tool_call_id?: string;
24
- name?: string;
25
- }
26
- /** Опции для запроса к LLM */
27
- export interface ChatOptions {
28
- temperature?: number;
29
- top_p?: number;
30
- max_tokens?: number;
31
- stop?: string[];
32
- frequency_penalty?: number;
33
- presence_penalty?: number;
34
- seed?: number;
35
- signal?: AbortSignal;
36
- showThinking?: boolean;
37
- /** Включить thinking/reasoning у reasoning-моделей (Qwen3.5, DeepSeek-R1 и др.) */
38
- enableThinking?: boolean;
39
- }
40
- /** Streaming-чанк ответа LLM */
41
- export interface Chunk {
42
- content: string;
43
- reasoning?: string;
44
- finish_reason?: 'stop' | 'length' | 'tool_calls' | null;
45
- }
46
- //# sourceMappingURL=provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/llm/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,oDAAoD;AACpD,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3E,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,gCAAgC;AAChC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,8BAA8B;AAC9B,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mFAAmF;IACnF,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,gCAAgC;AAChC,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,YAAY,GAAG,IAAI,CAAC;CACzD"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Интерфейсы для LLM-провайдеров.
3
- *
4
- * Определяет контракт для всех провайдеров:
5
- * - chat() — streaming-запрос к модели
6
- * - countTokens() — подсчёт токенов
7
- * - model — имя модели
8
- * - contextWindow — размер контекстного окна
9
- *
10
- * @module llm/provider
11
- */
12
- export {};
13
- //# sourceMappingURL=provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/llm/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
@@ -1,15 +0,0 @@
1
- /**
2
- * Подсчёт токенов.
3
- *
4
- * Использует js-tiktoken (если доступен) для точного подсчёта.
5
- * Fallback: ~4 символа на токен.
6
- *
7
- * Encoding кэшируется как синглтон — создаётся один раз, переиспользуется.
8
- * Это критично для производительности: на 240 сообщениях разница ~32с vs <1с.
9
- *
10
- * @module llm/token-counter
11
- */
12
- export declare function countTokens(text: string): Promise<number>;
13
- /** Сброс кэша encoding (при смене модели или ошибке) */
14
- export declare function resetTokenCache(): void;
15
- //# sourceMappingURL=token-counter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"token-counter.d.ts","sourceRoot":"","sources":["../../src/llm/token-counter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAyBH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAS/D;AAED,wDAAwD;AACxD,wBAAgB,eAAe,IAAI,IAAI,CAEtC"}
@@ -1,51 +0,0 @@
1
- /**
2
- * Подсчёт токенов.
3
- *
4
- * Использует js-tiktoken (если доступен) для точного подсчёта.
5
- * Fallback: ~4 символа на токен.
6
- *
7
- * Encoding кэшируется как синглтон — создаётся один раз, переиспользуется.
8
- * Это критично для производительности: на 240 сообщениях разница ~32с vs <1с.
9
- *
10
- * @module llm/token-counter
11
- */
12
- let tiktoken = null;
13
- let cachedEncoding = null;
14
- async function loadTiktoken() {
15
- if (tiktoken)
16
- return;
17
- try {
18
- const mod = await import('js-tiktoken');
19
- tiktoken = mod;
20
- }
21
- catch {
22
- tiktoken = null;
23
- }
24
- }
25
- function getEncoding() {
26
- if (cachedEncoding)
27
- return cachedEncoding;
28
- if (tiktoken?.encodingForModel) {
29
- try {
30
- cachedEncoding = tiktoken.encodingForModel('gpt-4');
31
- }
32
- catch { /* fall through */ }
33
- }
34
- return cachedEncoding;
35
- }
36
- export async function countTokens(text) {
37
- await loadTiktoken();
38
- const enc = getEncoding();
39
- if (enc) {
40
- try {
41
- return enc.encode(text).length;
42
- }
43
- catch { /* fall through */ }
44
- }
45
- return Math.ceil(text.length / 4);
46
- }
47
- /** Сброс кэша encoding (при смене модели или ошибке) */
48
- export function resetTokenCache() {
49
- cachedEncoding = null;
50
- }
51
- //# sourceMappingURL=token-counter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"token-counter.js","sourceRoot":"","sources":["../../src/llm/token-counter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,IAAI,QAAQ,GAAQ,IAAI,CAAC;AACzB,IAAI,cAAc,GAAQ,IAAI,CAAC;AAE/B,KAAK,UAAU,YAAY;IACzB,IAAI,QAAQ;QAAE,OAAO;IACrB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACxC,QAAQ,GAAG,GAAG,CAAC;IACjB,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,WAAW;IAClB,IAAI,cAAc;QAAE,OAAO,cAAc,CAAC;IAC1C,IAAI,QAAQ,EAAE,gBAAgB,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,cAAc,GAAG,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAY;IAC5C,MAAM,YAAY,EAAE,CAAC;IACrB,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC;IAC1B,IAAI,GAAG,EAAE,CAAC;QACR,IAAI,CAAC;YACH,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,eAAe;IAC7B,cAAc,GAAG,IAAI,CAAC;AACxB,CAAC"}
package/dist/logger.d.ts DELETED
@@ -1,24 +0,0 @@
1
- export declare function setStatusWriter(writer: ((msg: string) => void) | null): void;
2
- export declare function setLogRenderer(renderer: ((level: string, tag: string, message: string) => void) | null): void;
3
- export declare function writeStatus(msg: string): void;
4
- export declare function initSessionLog(sessionId: string): void;
5
- export declare function getLogPath(): string;
6
- export declare function closeSessionLog(): void;
7
- export declare function log(level: "INFO" | "WARN" | "ERROR" | "DEBUG", tag: string, message: string): void;
8
- export declare function logInfo(tag: string, message: string): void;
9
- export declare function logWarn(tag: string, message: string): void;
10
- export declare function logError(tag: string, message: string): void;
11
- export declare function logDebug(tag: string, message: string): void;
12
- export declare function logLLMRequest(model: string, messagesCount: number, promptPreview: string, caller?: string): void;
13
- export declare function logLLMResponse(model: string, responseLength: number, genTimeMs: number, error?: string, caller?: string): void;
14
- export declare function logToolCall(tool: string, preview: string, result?: string): void;
15
- /** Запись полного вывода тула в лог (уровень DEBUG) */
16
- export declare function logToolOutput(tool: string, output: string, exitCode: number): void;
17
- export declare function logREPL(tag: "user" | "assistant" | "system", content: string): void;
18
- /**
19
- * Очистка старых логов.
20
- * - Удаляет файлы старше maxDays
21
- * - Оставляет не более maxFiles самых свежих .log файлов
22
- */
23
- export declare function cleanupOldLogs(maxDays?: number, maxFiles?: number): void;
24
- //# sourceMappingURL=logger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAuBA,wBAAgB,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAE5E;AAED,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,GACvE,IAAI,CAEN;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE7C;AAMD,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAItD;AAED,wBAAgB,UAAU,IAAI,MAAM,CAMnC;AAED,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAiBD,wBAAgB,GAAG,CACjB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,EAC1C,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,IAAI,CAON;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1D;AACD,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1D;AACD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAE3D;AACD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAE3D;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,MAAM,GACd,IAAI,CAMN;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,GACd,IAAI,CAUN;AAED,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,GACd,IAAI,CAUN;AAED,uDAAuD;AACvD,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,IAAI,CAON;AAED,wBAAgB,OAAO,CACrB,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,EACpC,OAAO,EAAE,MAAM,GACd,IAAI,CAIN;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,OAAO,SAAmB,EAC1B,QAAQ,SAAgB,GACvB,IAAI,CAyCN"}