tarsk 0.4.4 → 0.4.6

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 (366) hide show
  1. package/dist/index.js +447375 -37
  2. package/package.json +2 -2
  3. package/dist/agent/agent.error-utils.d.ts +0 -14
  4. package/dist/agent/agent.error-utils.js +0 -52
  5. package/dist/agent/agent.event-transformer.d.ts +0 -55
  6. package/dist/agent/agent.event-transformer.js +0 -175
  7. package/dist/agent/agent.executor.d.ts +0 -26
  8. package/dist/agent/agent.executor.js +0 -286
  9. package/dist/agent/agent.model-resolver.d.ts +0 -22
  10. package/dist/agent/agent.model-resolver.js +0 -67
  11. package/dist/agent/agent.process-manager.d.ts +0 -57
  12. package/dist/agent/agent.process-manager.js +0 -262
  13. package/dist/agent/agent.processing-state-manager.d.ts +0 -74
  14. package/dist/agent/agent.processing-state-manager.js +0 -87
  15. package/dist/agent/agent.prompt-loader.d.ts +0 -16
  16. package/dist/agent/agent.prompt-loader.js +0 -227
  17. package/dist/agent/agent.subagent-executor.d.ts +0 -35
  18. package/dist/agent/agent.subagent-executor.js +0 -135
  19. package/dist/bun/index.d.ts +0 -2
  20. package/dist/bun/index.js +0 -165
  21. package/dist/cli.d.ts +0 -3
  22. package/dist/cli.js +0 -22
  23. package/dist/core/crypto.d.ts +0 -29
  24. package/dist/core/crypto.js +0 -166
  25. package/dist/core/dev-server-cache.d.ts +0 -46
  26. package/dist/core/dev-server-cache.js +0 -59
  27. package/dist/core/env-manager.d.ts +0 -3
  28. package/dist/core/env-manager.js +0 -60
  29. package/dist/core/error-responses.d.ts +0 -61
  30. package/dist/core/error-responses.js +0 -64
  31. package/dist/core/logger.d.ts +0 -10
  32. package/dist/core/logger.js +0 -47
  33. package/dist/core/paths.d.ts +0 -22
  34. package/dist/core/paths.js +0 -26
  35. package/dist/core/random-words.d.ts +0 -18
  36. package/dist/core/random-words.js +0 -135
  37. package/dist/core/response-builder.d.ts +0 -50
  38. package/dist/core/response-builder.js +0 -56
  39. package/dist/core/route-helpers.d.ts +0 -47
  40. package/dist/core/route-helpers.js +0 -54
  41. package/dist/core/run-command-detector.d.ts +0 -26
  42. package/dist/core/run-command-detector.js +0 -98
  43. package/dist/core/stream-helper.d.ts +0 -44
  44. package/dist/core/stream-helper.js +0 -50
  45. package/dist/core/utils.d.ts +0 -43
  46. package/dist/core/utils.js +0 -113
  47. package/dist/core/validation.d.ts +0 -10
  48. package/dist/core/validation.js +0 -20
  49. package/dist/database/database.d.ts +0 -40
  50. package/dist/database/database.encryption.d.ts +0 -33
  51. package/dist/database/database.encryption.js +0 -62
  52. package/dist/database/database.js +0 -480
  53. package/dist/database/database.state.d.ts +0 -52
  54. package/dist/database/database.state.js +0 -119
  55. package/dist/database/database.test-utils.d.ts +0 -22
  56. package/dist/database/database.test-utils.js +0 -39
  57. package/dist/database/database.types.d.ts +0 -3
  58. package/dist/database/database.types.js +0 -2
  59. package/dist/features/agents/agents.manager.d.ts +0 -24
  60. package/dist/features/agents/agents.manager.js +0 -200
  61. package/dist/features/ask-user/ask-user.routes.d.ts +0 -9
  62. package/dist/features/ask-user/ask-user.routes.js +0 -35
  63. package/dist/features/chat/chat-delete.route.d.ts +0 -15
  64. package/dist/features/chat/chat-delete.route.js +0 -36
  65. package/dist/features/chat/chat-post.route.d.ts +0 -11
  66. package/dist/features/chat/chat-post.route.js +0 -270
  67. package/dist/features/chat/chat-stop.route.d.ts +0 -21
  68. package/dist/features/chat/chat-stop.route.js +0 -22
  69. package/dist/features/chat/chat-subscribe.route.d.ts +0 -9
  70. package/dist/features/chat/chat-subscribe.route.js +0 -71
  71. package/dist/features/chat/chat.routes.d.ts +0 -22
  72. package/dist/features/chat/chat.routes.js +0 -29
  73. package/dist/features/conversations/conversations-delete.route.d.ts +0 -16
  74. package/dist/features/conversations/conversations-delete.route.js +0 -34
  75. package/dist/features/conversations/conversations-get-all.route.d.ts +0 -16
  76. package/dist/features/conversations/conversations-get-all.route.js +0 -39
  77. package/dist/features/conversations/conversations-get-by-id.route.d.ts +0 -16
  78. package/dist/features/conversations/conversations-get-by-id.route.js +0 -38
  79. package/dist/features/conversations/conversations-get-deleted.route.d.ts +0 -15
  80. package/dist/features/conversations/conversations-get-deleted.route.js +0 -34
  81. package/dist/features/conversations/conversations-get-messages.route.d.ts +0 -16
  82. package/dist/features/conversations/conversations-get-messages.route.js +0 -49
  83. package/dist/features/conversations/conversations.content.d.ts +0 -28
  84. package/dist/features/conversations/conversations.content.js +0 -142
  85. package/dist/features/conversations/conversations.database.d.ts +0 -108
  86. package/dist/features/conversations/conversations.database.js +0 -373
  87. package/dist/features/conversations/conversations.manager.d.ts +0 -130
  88. package/dist/features/conversations/conversations.manager.js +0 -162
  89. package/dist/features/conversations/conversations.routes.d.ts +0 -21
  90. package/dist/features/conversations/conversations.routes.js +0 -38
  91. package/dist/features/conversations/token-usage.route.d.ts +0 -41
  92. package/dist/features/conversations/token-usage.route.js +0 -419
  93. package/dist/features/git/git-commit.route.d.ts +0 -12
  94. package/dist/features/git/git-commit.route.js +0 -39
  95. package/dist/features/git/git-create-branch.route.d.ts +0 -28
  96. package/dist/features/git/git-create-branch.route.js +0 -119
  97. package/dist/features/git/git-create-pr.route.d.ts +0 -13
  98. package/dist/features/git/git-create-pr.route.js +0 -50
  99. package/dist/features/git/git-create-repo.route.d.ts +0 -14
  100. package/dist/features/git/git-create-repo.route.js +0 -108
  101. package/dist/features/git/git-diff.route.d.ts +0 -30
  102. package/dist/features/git/git-diff.route.js +0 -189
  103. package/dist/features/git/git-fetch.route.d.ts +0 -12
  104. package/dist/features/git/git-fetch.route.js +0 -31
  105. package/dist/features/git/git-generate-commit-message.route.d.ts +0 -12
  106. package/dist/features/git/git-generate-commit-message.route.js +0 -76
  107. package/dist/features/git/git-generate-pr-info.route.d.ts +0 -13
  108. package/dist/features/git/git-generate-pr-info.route.js +0 -147
  109. package/dist/features/git/git-github-status.route.d.ts +0 -16
  110. package/dist/features/git/git-github-status.route.js +0 -68
  111. package/dist/features/git/git-log.route.d.ts +0 -17
  112. package/dist/features/git/git-log.route.js +0 -33
  113. package/dist/features/git/git-pr-status.route.d.ts +0 -15
  114. package/dist/features/git/git-pr-status.route.js +0 -33
  115. package/dist/features/git/git-pull.route.d.ts +0 -12
  116. package/dist/features/git/git-pull.route.js +0 -35
  117. package/dist/features/git/git-push.route.d.ts +0 -12
  118. package/dist/features/git/git-push.route.js +0 -46
  119. package/dist/features/git/git-status-cache.database.d.ts +0 -7
  120. package/dist/features/git/git-status-cache.database.js +0 -53
  121. package/dist/features/git/git-status.route.d.ts +0 -15
  122. package/dist/features/git/git-status.route.js +0 -62
  123. package/dist/features/git/git-sync-branch.route.d.ts +0 -4
  124. package/dist/features/git/git-sync-branch.route.js +0 -208
  125. package/dist/features/git/git-unified-status.route.d.ts +0 -30
  126. package/dist/features/git/git-unified-status.route.js +0 -165
  127. package/dist/features/git/git-username.route.d.ts +0 -3
  128. package/dist/features/git/git-username.route.js +0 -24
  129. package/dist/features/git/git.manager.d.ts +0 -139
  130. package/dist/features/git/git.manager.js +0 -352
  131. package/dist/features/git/git.routes.d.ts +0 -4
  132. package/dist/features/git/git.routes.js +0 -116
  133. package/dist/features/git/git.utils.d.ts +0 -82
  134. package/dist/features/git/git.utils.js +0 -1040
  135. package/dist/features/mcp/mcp.config.d.ts +0 -27
  136. package/dist/features/mcp/mcp.config.js +0 -148
  137. package/dist/features/mcp/mcp.manager.d.ts +0 -61
  138. package/dist/features/mcp/mcp.manager.js +0 -254
  139. package/dist/features/mcp/mcp.popular.json +0 -103
  140. package/dist/features/mcp/mcp.routes.d.ts +0 -13
  141. package/dist/features/mcp/mcp.routes.js +0 -159
  142. package/dist/features/mcp/mcp.types.d.ts +0 -80
  143. package/dist/features/mcp/mcp.types.js +0 -8
  144. package/dist/features/metadata/metadata.manager.d.ts +0 -126
  145. package/dist/features/metadata/metadata.manager.js +0 -423
  146. package/dist/features/models/model-info-aihubmix.d.ts +0 -25
  147. package/dist/features/models/model-info-aihubmix.js +0 -117
  148. package/dist/features/models/model-info-openrouter.d.ts +0 -25
  149. package/dist/features/models/model-info-openrouter.js +0 -104
  150. package/dist/features/models/model-info.d.ts +0 -37
  151. package/dist/features/models/model-info.js +0 -39
  152. package/dist/features/models/models-catalog.d.ts +0 -49
  153. package/dist/features/models/models-catalog.js +0 -80
  154. package/dist/features/models/models-catalog.route.d.ts +0 -43
  155. package/dist/features/models/models-catalog.route.js +0 -15
  156. package/dist/features/models/models-get-available.route.d.ts +0 -36
  157. package/dist/features/models/models-get-available.route.js +0 -66
  158. package/dist/features/models/models-get-enabled.route.d.ts +0 -33
  159. package/dist/features/models/models-get-enabled.route.js +0 -45
  160. package/dist/features/models/models-get-model-info.route.d.ts +0 -31
  161. package/dist/features/models/models-get-model-info.route.js +0 -84
  162. package/dist/features/models/models-model-disable.route.d.ts +0 -15
  163. package/dist/features/models/models-model-disable.route.js +0 -20
  164. package/dist/features/models/models-model-enable.route.d.ts +0 -13
  165. package/dist/features/models/models-model-enable.route.js +0 -20
  166. package/dist/features/models/models-provider-refresh.route.d.ts +0 -17
  167. package/dist/features/models/models-provider-refresh.route.js +0 -20
  168. package/dist/features/models/models.manager.d.ts +0 -58
  169. package/dist/features/models/models.manager.js +0 -138
  170. package/dist/features/models/models.routes.d.ts +0 -18
  171. package/dist/features/models/models.routes.js +0 -83
  172. package/dist/features/models/open-router-models.d.ts +0 -38
  173. package/dist/features/models/open-router-models.js +0 -73
  174. package/dist/features/models/openai-models.d.ts +0 -63
  175. package/dist/features/models/openai-models.js +0 -150
  176. package/dist/features/onboarding/onboarding-get-git-check.route.d.ts +0 -11
  177. package/dist/features/onboarding/onboarding-get-git-check.route.js +0 -28
  178. package/dist/features/onboarding/onboarding-get-status.route.d.ts +0 -12
  179. package/dist/features/onboarding/onboarding-get-status.route.js +0 -15
  180. package/dist/features/onboarding/onboarding-post-complete.route.d.ts +0 -12
  181. package/dist/features/onboarding/onboarding-post-complete.route.js +0 -15
  182. package/dist/features/onboarding/onboarding-post-reset.route.d.ts +0 -12
  183. package/dist/features/onboarding/onboarding-post-reset.route.js +0 -15
  184. package/dist/features/onboarding/onboarding.routes.d.ts +0 -18
  185. package/dist/features/onboarding/onboarding.routes.js +0 -28
  186. package/dist/features/project-todos/project-todos.database.d.ts +0 -38
  187. package/dist/features/project-todos/project-todos.database.js +0 -91
  188. package/dist/features/project-todos/project-todos.routes.d.ts +0 -4
  189. package/dist/features/project-todos/project-todos.routes.js +0 -94
  190. package/dist/features/projects/projects-ai-files.route.d.ts +0 -148
  191. package/dist/features/projects/projects-ai-files.route.js +0 -425
  192. package/dist/features/projects/projects-commands.route.d.ts +0 -27
  193. package/dist/features/projects/projects-commands.route.js +0 -39
  194. package/dist/features/projects/projects-create.route.d.ts +0 -19
  195. package/dist/features/projects/projects-create.route.js +0 -37
  196. package/dist/features/projects/projects-delete.route.d.ts +0 -24
  197. package/dist/features/projects/projects-delete.route.js +0 -34
  198. package/dist/features/projects/projects-get.route.d.ts +0 -47
  199. package/dist/features/projects/projects-get.route.js +0 -36
  200. package/dist/features/projects/projects-list.route.d.ts +0 -58
  201. package/dist/features/projects/projects-list.route.js +0 -59
  202. package/dist/features/projects/projects-open-folder.route.d.ts +0 -10
  203. package/dist/features/projects/projects-open-folder.route.js +0 -11
  204. package/dist/features/projects/projects-open.route.d.ts +0 -26
  205. package/dist/features/projects/projects-open.route.js +0 -49
  206. package/dist/features/projects/projects-package-scripts.route.d.ts +0 -15
  207. package/dist/features/projects/projects-package-scripts.route.js +0 -96
  208. package/dist/features/projects/projects-run-command.route.d.ts +0 -8
  209. package/dist/features/projects/projects-run-command.route.js +0 -21
  210. package/dist/features/projects/projects-run.route.d.ts +0 -51
  211. package/dist/features/projects/projects-run.route.js +0 -74
  212. package/dist/features/projects/projects-update.route.d.ts +0 -24
  213. package/dist/features/projects/projects-update.route.js +0 -81
  214. package/dist/features/projects/projects.creator.d.ts +0 -33
  215. package/dist/features/projects/projects.creator.js +0 -555
  216. package/dist/features/projects/projects.database.d.ts +0 -61
  217. package/dist/features/projects/projects.database.js +0 -212
  218. package/dist/features/projects/projects.manager.d.ts +0 -291
  219. package/dist/features/projects/projects.manager.js +0 -426
  220. package/dist/features/projects/projects.open-with.d.ts +0 -27
  221. package/dist/features/projects/projects.open-with.js +0 -156
  222. package/dist/features/projects/projects.routes.d.ts +0 -20
  223. package/dist/features/projects/projects.routes.js +0 -255
  224. package/dist/features/projects/terminal-session-manager.d.ts +0 -55
  225. package/dist/features/projects/terminal-session-manager.js +0 -90
  226. package/dist/features/providers/provider-resolver.d.ts +0 -13
  227. package/dist/features/providers/provider-resolver.js +0 -22
  228. package/dist/features/providers/providers-get-credits.route.d.ts +0 -15
  229. package/dist/features/providers/providers-get-credits.route.js +0 -51
  230. package/dist/features/providers/providers-get.route.d.ts +0 -16
  231. package/dist/features/providers/providers-get.route.js +0 -32
  232. package/dist/features/providers/providers-open-external.route.d.ts +0 -15
  233. package/dist/features/providers/providers-open-external.route.js +0 -49
  234. package/dist/features/providers/providers-post-bulk-keys.route.d.ts +0 -14
  235. package/dist/features/providers/providers-post-bulk-keys.route.js +0 -31
  236. package/dist/features/providers/providers-post-keys.route.d.ts +0 -14
  237. package/dist/features/providers/providers-post-keys.route.js +0 -25
  238. package/dist/features/providers/providers.routes.d.ts +0 -19
  239. package/dist/features/providers/providers.routes.js +0 -31
  240. package/dist/features/rules/rules-post.route.d.ts +0 -43
  241. package/dist/features/rules/rules-post.route.js +0 -89
  242. package/dist/features/rules/rules.manager.d.ts +0 -36
  243. package/dist/features/rules/rules.manager.js +0 -203
  244. package/dist/features/rules/rules.routes.d.ts +0 -12
  245. package/dist/features/rules/rules.routes.js +0 -13
  246. package/dist/features/run/run-get-running.route.d.ts +0 -15
  247. package/dist/features/run/run-get-running.route.js +0 -21
  248. package/dist/features/run/run-post-start.route.d.ts +0 -8
  249. package/dist/features/run/run-post-start.route.js +0 -21
  250. package/dist/features/run/run-post-stop.route.d.ts +0 -15
  251. package/dist/features/run/run-post-stop.route.js +0 -24
  252. package/dist/features/run/run-post-suggest.route.d.ts +0 -15
  253. package/dist/features/run/run-post-suggest.route.js +0 -21
  254. package/dist/features/run/run-put-command.route.d.ts +0 -15
  255. package/dist/features/run/run-put-command.route.js +0 -24
  256. package/dist/features/run/run.routes.d.ts +0 -19
  257. package/dist/features/run/run.routes.js +0 -31
  258. package/dist/features/scaffold/index.d.ts +0 -7
  259. package/dist/features/scaffold/index.js +0 -5
  260. package/dist/features/scaffold/scaffold-get-templates.route.d.ts +0 -27
  261. package/dist/features/scaffold/scaffold-get-templates.route.js +0 -17
  262. package/dist/features/scaffold/scaffold-post.route.d.ts +0 -8
  263. package/dist/features/scaffold/scaffold-post.route.js +0 -30
  264. package/dist/features/scaffold/scaffold.routes.d.ts +0 -10
  265. package/dist/features/scaffold/scaffold.routes.js +0 -16
  266. package/dist/features/scaffold/scaffold.runner.d.ts +0 -48
  267. package/dist/features/scaffold/scaffold.runner.js +0 -475
  268. package/dist/features/scaffold/scaffold.types.d.ts +0 -26
  269. package/dist/features/scaffold/scaffold.types.js +0 -5
  270. package/dist/features/skills/skills.activation.d.ts +0 -31
  271. package/dist/features/skills/skills.activation.js +0 -155
  272. package/dist/features/skills/skills.manager.d.ts +0 -35
  273. package/dist/features/skills/skills.manager.js +0 -251
  274. package/dist/features/slash-commands/slash-commands-delete.route.d.ts +0 -23
  275. package/dist/features/slash-commands/slash-commands-delete.route.js +0 -36
  276. package/dist/features/slash-commands/slash-commands-get.route.d.ts +0 -53
  277. package/dist/features/slash-commands/slash-commands-get.route.js +0 -54
  278. package/dist/features/slash-commands/slash-commands-post.route.d.ts +0 -39
  279. package/dist/features/slash-commands/slash-commands-post.route.js +0 -70
  280. package/dist/features/slash-commands/slash-commands-put.route.d.ts +0 -23
  281. package/dist/features/slash-commands/slash-commands-put.route.js +0 -36
  282. package/dist/features/slash-commands/slash-commands.manager.d.ts +0 -46
  283. package/dist/features/slash-commands/slash-commands.manager.js +0 -265
  284. package/dist/features/slash-commands/slash-commands.routes.d.ts +0 -13
  285. package/dist/features/slash-commands/slash-commands.routes.js +0 -20
  286. package/dist/features/threads/threads-ai-files.route.d.ts +0 -153
  287. package/dist/features/threads/threads-ai-files.route.js +0 -287
  288. package/dist/features/threads/threads-conversation-folder-path.route.d.ts +0 -14
  289. package/dist/features/threads/threads-conversation-folder-path.route.js +0 -23
  290. package/dist/features/threads/threads-create.route.d.ts +0 -22
  291. package/dist/features/threads/threads-create.route.js +0 -60
  292. package/dist/features/threads/threads-delete.route.d.ts +0 -25
  293. package/dist/features/threads/threads-delete.route.js +0 -35
  294. package/dist/features/threads/threads-files.route.d.ts +0 -15
  295. package/dist/features/threads/threads-files.route.js +0 -20
  296. package/dist/features/threads/threads-fix-comments.route.d.ts +0 -26
  297. package/dist/features/threads/threads-fix-comments.route.js +0 -45
  298. package/dist/features/threads/threads-get.route.d.ts +0 -30
  299. package/dist/features/threads/threads-get.route.js +0 -38
  300. package/dist/features/threads/threads-list.route.d.ts +0 -56
  301. package/dist/features/threads/threads-list.route.js +0 -58
  302. package/dist/features/threads/threads-messages.route.d.ts +0 -28
  303. package/dist/features/threads/threads-messages.route.js +0 -110
  304. package/dist/features/threads/threads-open.route.d.ts +0 -26
  305. package/dist/features/threads/threads-open.route.js +0 -62
  306. package/dist/features/threads/threads-select.route.d.ts +0 -25
  307. package/dist/features/threads/threads-select.route.js +0 -35
  308. package/dist/features/threads/threads-update.route.d.ts +0 -15
  309. package/dist/features/threads/threads-update.route.js +0 -30
  310. package/dist/features/threads/threads.database.d.ts +0 -68
  311. package/dist/features/threads/threads.database.js +0 -215
  312. package/dist/features/threads/threads.manager.d.ts +0 -204
  313. package/dist/features/threads/threads.manager.js +0 -505
  314. package/dist/features/threads/threads.routes.d.ts +0 -20
  315. package/dist/features/threads/threads.routes.js +0 -230
  316. package/dist/features/todos/todos.database.d.ts +0 -14
  317. package/dist/features/todos/todos.database.js +0 -31
  318. package/dist/features/updates/updates.routes.d.ts +0 -13
  319. package/dist/features/updates/updates.routes.js +0 -40
  320. package/dist/index.d.ts +0 -3
  321. package/dist/project-analyzer.d.ts +0 -26
  322. package/dist/project-analyzer.js +0 -307
  323. package/dist/server.d.ts +0 -12
  324. package/dist/server.js +0 -142
  325. package/dist/tools/agent-tool.d.ts +0 -49
  326. package/dist/tools/agent-tool.js +0 -131
  327. package/dist/tools/ask-user.d.ts +0 -25
  328. package/dist/tools/ask-user.js +0 -74
  329. package/dist/tools/ast-grep.d.ts +0 -28
  330. package/dist/tools/ast-grep.js +0 -273
  331. package/dist/tools/bash.d.ts +0 -33
  332. package/dist/tools/bash.js +0 -186
  333. package/dist/tools/edit-diff.d.ts +0 -24
  334. package/dist/tools/edit-diff.js +0 -136
  335. package/dist/tools/edit.d.ts +0 -28
  336. package/dist/tools/edit.js +0 -78
  337. package/dist/tools/find.d.ts +0 -31
  338. package/dist/tools/find.js +0 -117
  339. package/dist/tools/grep.d.ts +0 -37
  340. package/dist/tools/grep.js +0 -231
  341. package/dist/tools/index.d.ts +0 -93
  342. package/dist/tools/index.js +0 -110
  343. package/dist/tools/ls.d.ts +0 -31
  344. package/dist/tools/ls.js +0 -108
  345. package/dist/tools/mcp-tools.d.ts +0 -31
  346. package/dist/tools/mcp-tools.js +0 -59
  347. package/dist/tools/path-utils.d.ts +0 -14
  348. package/dist/tools/path-utils.js +0 -87
  349. package/dist/tools/read.d.ts +0 -27
  350. package/dist/tools/read.js +0 -86
  351. package/dist/tools/resolve-bin.d.ts +0 -5
  352. package/dist/tools/resolve-bin.js +0 -28
  353. package/dist/tools/shell.d.ts +0 -7
  354. package/dist/tools/shell.js +0 -143
  355. package/dist/tools/skill-reference-tool.d.ts +0 -30
  356. package/dist/tools/skill-reference-tool.js +0 -171
  357. package/dist/tools/skill-tool.d.ts +0 -33
  358. package/dist/tools/skill-tool.js +0 -213
  359. package/dist/tools/todo.d.ts +0 -20
  360. package/dist/tools/todo.js +0 -168
  361. package/dist/tools/tool-helpers.d.ts +0 -78
  362. package/dist/tools/tool-helpers.js +0 -109
  363. package/dist/tools/truncate.d.ts +0 -31
  364. package/dist/tools/truncate.js +0 -164
  365. package/dist/tools/write.d.ts +0 -21
  366. package/dist/tools/write.js +0 -65
@@ -1,50 +0,0 @@
1
- import { resolveThreadPath, getGitRoot, getCurrentBranch, createPullRequest } from "./git.utils.js";
2
- export async function gitCreatePrHandler(c, metadataManager) {
3
- try {
4
- const threadId = c.req.param("threadId");
5
- const body = await c.req.json();
6
- const { title, description } = body;
7
- console.log(`[git-create-pr] Starting PR creation for thread: ${threadId}`);
8
- console.log(`[git-create-pr] PR title: "${title}"`);
9
- console.log(`[git-create-pr] PR description length: ${description?.length ?? 0} chars`);
10
- const thread = await metadataManager
11
- .loadThreads()
12
- .then((threads) => threads.find((t) => t.id === threadId));
13
- if (!thread) {
14
- console.log(`[git-create-pr] Thread not found: ${threadId}`);
15
- return c.json({ error: "Thread not found" }, 404);
16
- }
17
- console.log(`[git-create-pr] ✓ Thread found: ${thread.title}`);
18
- const repoPath = thread.path;
19
- if (!repoPath) {
20
- console.log(`[git-create-pr] Thread path not found for threadId: ${threadId}`);
21
- return c.json({ error: "Thread path not found" }, 404);
22
- }
23
- const absolutePath = resolveThreadPath(repoPath);
24
- console.log(`[git-create-pr] Resolved path: ${absolutePath}`);
25
- let gitRoot;
26
- try {
27
- gitRoot = await getGitRoot(absolutePath);
28
- console.log(`[git-create-pr] ✓ Git root: ${gitRoot}`);
29
- }
30
- catch {
31
- console.log(`[git-create-pr] ✗ Not a git repository: ${absolutePath}`);
32
- return c.json({ error: `Path is not a git repository: ${absolutePath}` }, 400);
33
- }
34
- // Get current branch
35
- const currentBranch = await getCurrentBranch(gitRoot);
36
- console.log(`[git-create-pr] Current branch: ${currentBranch}`);
37
- // Try to create PR using gh CLI
38
- console.log(`[git-create-pr] Creating PR with GitHub CLI...`);
39
- const prUrl = await createPullRequest(gitRoot, title ?? currentBranch, description ?? "");
40
- console.log(`[git-create-pr] ✓ PR created successfully: ${prUrl}`);
41
- return c.json({ success: true, prUrl });
42
- }
43
- catch (error) {
44
- const message = error instanceof Error ? error.message : "Failed to create PR";
45
- console.log(`[git-create-pr] ✗ PR creation failed: ${message}`);
46
- console.log(`[git-create-pr] Error stack: ${error instanceof Error ? error.stack : "No stack available"}`);
47
- return c.json({ error: message }, 500);
48
- }
49
- }
50
- //# sourceMappingURL=git-create-pr.route.js.map
@@ -1,14 +0,0 @@
1
- import type { Context } from "hono";
2
- import { MetadataManager } from "../metadata/metadata.manager.js";
3
- export declare function gitCreateRepoHandler(c: Context, metadataManager: MetadataManager): Promise<(Response & import("hono").TypedResponse<{
4
- error: string;
5
- }, 404, "json">) | (Response & import("hono").TypedResponse<{
6
- error: string;
7
- }, 400, "json">) | (Response & import("hono").TypedResponse<{
8
- success: true;
9
- repoUrl: string;
10
- branchName: string;
11
- }, import("hono/utils/http-status").ContentfulStatusCode, "json">) | (Response & import("hono").TypedResponse<{
12
- error: string;
13
- }, 500, "json">)>;
14
- //# sourceMappingURL=git-create-repo.route.d.ts.map
@@ -1,108 +0,0 @@
1
- import { resolveThreadPath, getGitRoot, getRemoteOrigin, createGitHubRepo } from "./git.utils.js";
2
- import { spawnProcess } from "../../core/utils.js";
3
- import { generateRandomThreadName } from "../../core/random-words.js";
4
- function sanitizeBranchName(name) {
5
- if (!name || typeof name !== "string") {
6
- return "branch";
7
- }
8
- return (name
9
- .trim()
10
- .toLowerCase()
11
- .replace(/\s+/g, "-")
12
- .replace(/[^a-zA-Z0-9\-_/.]/g, "")
13
- .replace(/^[/.]+|[/.]+$/g, "")
14
- .replace(/-+/g, "-") || "branch");
15
- }
16
- function checkBranchExists(gitRoot, branchName) {
17
- return new Promise((resolve) => {
18
- const proc = spawnProcess("git", ["show-ref", "--verify", "--quiet", `refs/heads/${branchName}`], {
19
- cwd: gitRoot,
20
- });
21
- proc.on("close", (code) => {
22
- resolve(code === 0);
23
- });
24
- proc.on("error", () => {
25
- resolve(false);
26
- });
27
- });
28
- }
29
- function createAndCheckoutBranch(gitRoot, branchName) {
30
- return new Promise((resolve, reject) => {
31
- const proc = spawnProcess("git", ["checkout", "-b", branchName], {
32
- cwd: gitRoot,
33
- });
34
- let err = "";
35
- if (proc.stderr) {
36
- proc.stderr.on("data", (d) => {
37
- err += d.toString();
38
- });
39
- }
40
- proc.on("close", (code) => {
41
- if (code === 0) {
42
- resolve();
43
- }
44
- else {
45
- reject(new Error(err || `Failed to create branch "${branchName}"`));
46
- }
47
- });
48
- proc.on("error", reject);
49
- });
50
- }
51
- export async function gitCreateRepoHandler(c, metadataManager) {
52
- try {
53
- const threadId = c.req.param("threadId");
54
- const body = await c.req.json().catch(() => ({}));
55
- const { repoName, description, isPrivate } = body;
56
- const thread = await metadataManager
57
- .loadThreads()
58
- .then((threads) => threads.find((t) => t.id === threadId));
59
- if (!thread) {
60
- return c.json({ error: "Thread not found" }, 404);
61
- }
62
- const repoPath = thread.path;
63
- if (!repoPath) {
64
- return c.json({ error: "Thread path not found" }, 404);
65
- }
66
- const absolutePath = resolveThreadPath(repoPath);
67
- let gitRoot;
68
- try {
69
- gitRoot = await getGitRoot(absolutePath);
70
- }
71
- catch {
72
- return c.json({ error: `Path is not a git repository: ${absolutePath}` }, 400);
73
- }
74
- // Check if origin remote already exists
75
- const remoteUrl = await getRemoteOrigin(gitRoot);
76
- if (remoteUrl) {
77
- return c.json({ error: "Repository already has a remote origin" }, 400);
78
- }
79
- // Create GitHub repository using gh CLI
80
- const repoUrl = await createGitHubRepo(gitRoot, repoName, description, isPrivate);
81
- // Create a new branch after repo creation
82
- let branchName = sanitizeBranchName(generateRandomThreadName());
83
- // Check if branch exists and find a unique name if needed
84
- let branchExists = await checkBranchExists(gitRoot, branchName);
85
- let counter = 2;
86
- const baseBranchName = branchName;
87
- while (branchExists) {
88
- branchName = `${baseBranchName}-${counter}`;
89
- branchExists = await checkBranchExists(gitRoot, branchName);
90
- counter++;
91
- }
92
- // Create and checkout the new branch
93
- await createAndCheckoutBranch(gitRoot, branchName);
94
- // Update thread's currentBranch in metadata
95
- const threads = await metadataManager.loadThreads();
96
- const threadIndex = threads.findIndex((t) => t.id === threadId);
97
- if (threadIndex !== -1) {
98
- threads[threadIndex].currentBranch = branchName;
99
- await metadataManager.saveThreads(threads);
100
- }
101
- return c.json({ success: true, repoUrl, branchName });
102
- }
103
- catch (error) {
104
- const message = error instanceof Error ? error.message : "Failed to create repository";
105
- return c.json({ error: message }, 500);
106
- }
107
- }
108
- //# sourceMappingURL=git-create-repo.route.js.map
@@ -1,30 +0,0 @@
1
- import type { Context } from "hono";
2
- import { MetadataManager } from "../metadata/metadata.manager.js";
3
- export declare function gitDiffHandler(c: Context, metadataManager: MetadataManager): Promise<(Response & import("hono").TypedResponse<{
4
- error: string;
5
- }, 404, "json">) | (Response & import("hono").TypedResponse<{
6
- error: string;
7
- }, 400, "json">) | (Response & import("hono").TypedResponse<{
8
- files: {
9
- path: string;
10
- status: "added" | "modified" | "deleted" | "renamed" | "untracked";
11
- oldPath?: string | undefined;
12
- oldContent: string;
13
- newContent: string;
14
- hunks: {
15
- oldStart: number;
16
- oldLines: number;
17
- newStart: number;
18
- newLines: number;
19
- changes: {
20
- type: "add" | "delete" | "context";
21
- content: string;
22
- oldLineNumber?: number | undefined;
23
- newLineNumber?: number | undefined;
24
- }[];
25
- }[];
26
- }[];
27
- }, import("hono/utils/http-status").ContentfulStatusCode, "json">) | (Response & import("hono").TypedResponse<{
28
- error: string;
29
- }, 500, "json">)>;
30
- //# sourceMappingURL=git-diff.route.d.ts.map
@@ -1,189 +0,0 @@
1
- import { spawnProcess } from "../../core/utils.js";
2
- import { readFileSync } from "fs";
3
- import { resolve } from "path";
4
- import { resolveThreadPath, getGitRoot, getGitStatus } from "./git.utils.js";
5
- export async function gitDiffHandler(c, metadataManager) {
6
- try {
7
- const threadId = c.req.param("threadId");
8
- const thread = await metadataManager
9
- .loadThreads()
10
- .then((threads) => threads.find((t) => t.id === threadId));
11
- if (!thread) {
12
- return c.json({ error: "Thread not found" }, 404);
13
- }
14
- const repoPath = thread.path;
15
- if (!repoPath) {
16
- return c.json({ error: "Thread path not found" }, 404);
17
- }
18
- const absolutePath = resolveThreadPath(repoPath);
19
- let gitRoot;
20
- try {
21
- gitRoot = await getGitRoot(absolutePath);
22
- }
23
- catch {
24
- return c.json({ error: `Path is not a git repository: ${absolutePath}` }, 400);
25
- }
26
- // Get list of changed files with their status
27
- const statusOutput = await getGitStatus(gitRoot);
28
- const changedFiles = [];
29
- const statusLines = statusOutput
30
- .trim()
31
- .split("\n")
32
- .filter((line) => line.length > 0);
33
- for (const line of statusLines) {
34
- // Git status --porcelain format: XY PATH
35
- // Status codes are before the first space
36
- const trimmedLine = line.trim();
37
- const spaceIndex = trimmedLine.indexOf(" ");
38
- if (spaceIndex === -1)
39
- continue; // No space found
40
- const statusCode = trimmedLine.substring(0, spaceIndex);
41
- let filePath = trimmedLine.substring(spaceIndex + 1).trim();
42
- let oldPath;
43
- // Handle renamed files
44
- if (statusCode.startsWith("R") || statusCode.startsWith("C")) {
45
- const parts = filePath.split(" -> ");
46
- oldPath = parts[0];
47
- filePath = parts[1] || parts[0];
48
- }
49
- let status = "modified";
50
- if (statusCode.includes("A") || statusCode.includes("?")) {
51
- status = "added";
52
- }
53
- else if (statusCode.includes("D")) {
54
- status = "deleted";
55
- }
56
- else if (statusCode.includes("R")) {
57
- status = "renamed";
58
- }
59
- changedFiles.push({ path: filePath, status, oldPath });
60
- }
61
- // Get diff for each file
62
- const filesWithDiff = [];
63
- for (const file of changedFiles) {
64
- let oldContent = "";
65
- let newContent = "";
66
- const hunks = [];
67
- if (file.status === "deleted") {
68
- // Get old content for deleted files
69
- const content = await new Promise((resolve) => {
70
- const proc = spawnProcess("git", ["show", `HEAD:${file.path}`], { cwd: gitRoot });
71
- let out = "";
72
- proc.stdout?.on("data", (d) => {
73
- out += d.toString();
74
- });
75
- proc.on("close", () => resolve(out));
76
- proc.on("error", () => resolve(""));
77
- });
78
- oldContent = content;
79
- }
80
- else if (file.status === "added" && file.path.startsWith("(new)")) {
81
- // Untracked file - get content from filesystem
82
- try {
83
- newContent = readFileSync(resolve(gitRoot, file.path.replace("(new) ", "")), "utf-8");
84
- }
85
- catch {
86
- newContent = "";
87
- }
88
- }
89
- else {
90
- // Get diff for modified/added files
91
- const diffOutput = await new Promise((resolve) => {
92
- const proc = spawnProcess("git", file.status === "added"
93
- ? ["diff", "--cached", "--", file.path]
94
- : ["diff", "HEAD", "--", file.path], { cwd: gitRoot });
95
- let out = "";
96
- proc.stdout?.on("data", (d) => {
97
- out += d.toString();
98
- });
99
- proc.on("close", () => resolve(out));
100
- proc.on("error", () => resolve(""));
101
- });
102
- // Parse the diff output
103
- const lines = diffOutput.split("\n");
104
- let currentHunk = null;
105
- let oldLineNum = 0;
106
- let newLineNum = 0;
107
- // Get old content from HEAD
108
- const oldContentOutput = await new Promise((resolve) => {
109
- const proc = spawnProcess("git", ["show", `HEAD:${file.path}`], { cwd: gitRoot });
110
- let out = "";
111
- proc.stdout?.on("data", (d) => {
112
- out += d.toString();
113
- });
114
- proc.on("close", () => resolve(out));
115
- proc.on("error", () => resolve(""));
116
- });
117
- oldContent = oldContentOutput;
118
- // Get new content from working directory
119
- try {
120
- newContent = readFileSync(resolve(gitRoot, file.path), "utf-8");
121
- }
122
- catch {
123
- newContent = "";
124
- }
125
- for (const line of lines) {
126
- // Parse hunk header
127
- const hunkMatch = line.match(/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/);
128
- if (hunkMatch) {
129
- if (currentHunk) {
130
- hunks.push(currentHunk);
131
- }
132
- currentHunk = {
133
- oldStart: parseInt(hunkMatch[1]),
134
- oldLines: parseInt(hunkMatch[2] || "1"),
135
- newStart: parseInt(hunkMatch[3]),
136
- newLines: parseInt(hunkMatch[4] || "1"),
137
- changes: [],
138
- };
139
- oldLineNum = currentHunk.oldStart;
140
- newLineNum = currentHunk.newStart;
141
- continue;
142
- }
143
- if (currentHunk) {
144
- if (line.startsWith("+") && !line.startsWith("+++")) {
145
- currentHunk.changes.push({
146
- type: "add",
147
- content: line.substring(1),
148
- newLineNumber: newLineNum++,
149
- });
150
- }
151
- else if (line.startsWith("-") && !line.startsWith("---")) {
152
- currentHunk.changes.push({
153
- type: "delete",
154
- content: line.substring(1),
155
- oldLineNumber: oldLineNum++,
156
- });
157
- }
158
- else if (line.startsWith(" ")) {
159
- currentHunk.changes.push({
160
- type: "context",
161
- content: line.substring(1),
162
- oldLineNumber: oldLineNum++,
163
- newLineNumber: newLineNum++,
164
- });
165
- }
166
- else if (line.match(/^\\ No newline/)) {
167
- // Skip this line
168
- }
169
- }
170
- }
171
- if (currentHunk) {
172
- hunks.push(currentHunk);
173
- }
174
- }
175
- filesWithDiff.push({
176
- ...file,
177
- oldContent,
178
- newContent,
179
- hunks,
180
- });
181
- }
182
- return c.json({ files: filesWithDiff });
183
- }
184
- catch (error) {
185
- const message = error instanceof Error ? error.message : "Failed to get git diff";
186
- return c.json({ error: message }, 500);
187
- }
188
- }
189
- //# sourceMappingURL=git-diff.route.js.map
@@ -1,12 +0,0 @@
1
- import type { Context } from "hono";
2
- import { MetadataManager } from "../metadata/metadata.manager.js";
3
- export declare function gitFetchHandler(c: Context, metadataManager: MetadataManager): Promise<(Response & import("hono").TypedResponse<{
4
- error: string;
5
- }, 404, "json">) | (Response & import("hono").TypedResponse<{
6
- error: string;
7
- }, 400, "json">) | (Response & import("hono").TypedResponse<{
8
- success: true;
9
- }, import("hono/utils/http-status").ContentfulStatusCode, "json">) | (Response & import("hono").TypedResponse<{
10
- error: string;
11
- }, 500, "json">)>;
12
- //# sourceMappingURL=git-fetch.route.d.ts.map
@@ -1,31 +0,0 @@
1
- import { resolveThreadPath, getGitRoot, fetchFromOrigin } from "./git.utils.js";
2
- export async function gitFetchHandler(c, metadataManager) {
3
- try {
4
- const threadId = c.req.param("threadId");
5
- const thread = await metadataManager
6
- .loadThreads()
7
- .then((threads) => threads.find((t) => t.id === threadId));
8
- if (!thread) {
9
- return c.json({ error: "Thread not found" }, 404);
10
- }
11
- const repoPath = thread.path;
12
- if (!repoPath) {
13
- return c.json({ error: "Thread path not found" }, 404);
14
- }
15
- const absolutePath = resolveThreadPath(repoPath);
16
- let gitRoot;
17
- try {
18
- gitRoot = await getGitRoot(absolutePath);
19
- }
20
- catch {
21
- return c.json({ error: `Path is not a git repository: ${absolutePath}` }, 400);
22
- }
23
- await fetchFromOrigin(gitRoot);
24
- return c.json({ success: true });
25
- }
26
- catch (error) {
27
- const message = error instanceof Error ? error.message : "Failed to fetch from origin";
28
- return c.json({ error: message }, 500);
29
- }
30
- }
31
- //# sourceMappingURL=git-fetch.route.js.map
@@ -1,12 +0,0 @@
1
- import type { Context } from "hono";
2
- import { MetadataManager } from "../metadata/metadata.manager.js";
3
- export declare function gitGenerateCommitMessageHandler(c: Context, metadataManager: MetadataManager): Promise<(Response & import("hono").TypedResponse<{
4
- error: string;
5
- }, 404, "json">) | (Response & import("hono").TypedResponse<{
6
- error: string;
7
- }, 400, "json">) | (Response & import("hono").TypedResponse<{
8
- message: string;
9
- }, import("hono/utils/http-status").ContentfulStatusCode, "json">) | (Response & import("hono").TypedResponse<{
10
- error: string;
11
- }, 500, "json">)>;
12
- //# sourceMappingURL=git-generate-commit-message.route.d.ts.map
@@ -1,76 +0,0 @@
1
- import { existsSync } from "fs";
2
- import { resolveThreadPath, getGitRoot, getGitDiff, getUntrackedFilesDiff } from "./git.utils.js";
3
- import { generateCommitMessageWithAI } from "./git.utils.js";
4
- export async function gitGenerateCommitMessageHandler(c, metadataManager) {
5
- try {
6
- const threadId = c.req.param("threadId");
7
- process.stdout.write(`[generate-commit-message] threadId=${threadId}\n`);
8
- const thread = await metadataManager
9
- .loadThreads()
10
- .then((threads) => threads.find((t) => t.id === threadId));
11
- if (!thread) {
12
- process.stdout.write("[generate-commit-message] thread not found\n");
13
- return c.json({ error: "Thread not found" }, 404);
14
- }
15
- else {
16
- console.log(thread);
17
- }
18
- // Check path first before provider
19
- const repoPath = thread.path;
20
- if (!repoPath) {
21
- process.stdout.write("[generate-commit-message] thread path missing\n");
22
- return c.json({ error: "Thread path not found" }, 404);
23
- }
24
- // Get provider from thread's modelProvider, with exception handling if missing
25
- const provider = thread.modelProvider;
26
- if (!provider) {
27
- throw new Error("Provider not found in thread metadata and cannot be extracted from model");
28
- }
29
- // Get model from thread
30
- const model = thread.model;
31
- const absolutePath = resolveThreadPath(repoPath);
32
- process.stdout.write(`[generate-commit-message] resolved path: ${absolutePath}\n`);
33
- if (!existsSync(absolutePath)) {
34
- process.stdout.write(`[generate-commit-message] path does not exist: ${absolutePath}\n`);
35
- return c.json({
36
- error: `Thread repo path does not exist: ${absolutePath}. Check that the project folder is present.`,
37
- }, 400);
38
- }
39
- let gitRoot;
40
- try {
41
- gitRoot = await getGitRoot(absolutePath);
42
- process.stdout.write(`[generate-commit-message] git root: ${gitRoot}\n`);
43
- }
44
- catch (e) {
45
- const msg = e instanceof Error ? e.message : String(e);
46
- process.stdout.write(`[generate-commit-message] not a git repo: ${msg}\n`);
47
- return c.json({
48
- error: `Path is not a git repository: ${absolutePath}. ${msg}`,
49
- }, 400);
50
- }
51
- // Get git diff (staged first, then unstaged). If repo has no commits, git diff --cached fails on HEAD; fall back to git diff.
52
- let diff = await getGitDiff(gitRoot);
53
- // If diff is empty, include untracked files (git diff does not show them)
54
- if (!diff.trim()) {
55
- const untrackedDiff = await getUntrackedFilesDiff(gitRoot);
56
- if (untrackedDiff) {
57
- process.stdout.write(`[generate-commit-message] building diff for untracked files\n`);
58
- diff = untrackedDiff;
59
- }
60
- }
61
- if (!diff.trim()) {
62
- process.stdout.write("[generate-commit-message] no changes to generate message for\n");
63
- return c.json({ error: "No changes to generate commit message for" }, 400);
64
- }
65
- process.stdout.write(`[generate-commit-message] diff length=${diff.length} chars, generating message with AI\n`);
66
- // Use AI to generate commit message
67
- const commitMessage = await generateCommitMessageWithAI(diff, metadataManager, model, provider);
68
- process.stdout.write(`[generate-commit-message] generated: ${commitMessage.replace(/\n/g, " ")}\n`);
69
- return c.json({ message: commitMessage });
70
- }
71
- catch (error) {
72
- const message = error instanceof Error ? error.message : "Failed to generate commit message";
73
- return c.json({ error: message }, 500);
74
- }
75
- }
76
- //# sourceMappingURL=git-generate-commit-message.route.js.map
@@ -1,13 +0,0 @@
1
- import type { Context } from "hono";
2
- import { MetadataManager } from "../metadata/metadata.manager.js";
3
- export declare function gitGeneratePrInfoHandler(c: Context, metadataManager: MetadataManager): Promise<(Response & import("hono").TypedResponse<{
4
- error: string;
5
- }, 404, "json">) | (Response & import("hono").TypedResponse<{
6
- error: string;
7
- }, 400, "json">) | (Response & import("hono").TypedResponse<{
8
- title: string;
9
- description: string;
10
- baseBranch: string | null;
11
- currentBranch: string;
12
- }, import("hono/utils/http-status").ContentfulStatusCode, "json">)>;
13
- //# sourceMappingURL=git-generate-pr-info.route.d.ts.map