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,35 +0,0 @@
1
- /**
2
- * Skill Manager
3
- *
4
- * Loads and manages agent skills from SKILL.md files with frontmatter.
5
- * Skills can be stored in:
6
- * - Project-specific: ./.agents/skills/ (relative to thread path)
7
- * - Global: ~/.agents/skills/
8
- *
9
- * Skills follow the Agent Skills format specification:
10
- * https://agentskills.io/
11
- */
12
- import type { Skill } from "@tarsk/shared";
13
- /**
14
- * SkillManager handles loading and validating agent skills
15
- */
16
- export declare class SkillManager {
17
- /**
18
- * Load all available skills for a given thread
19
- * Project skills override global ones with the same name
20
- */
21
- loadSkills(threadPath: string): Promise<Skill[]>;
22
- /**
23
- * Load skills from a specific directory
24
- */
25
- private loadSkillsFromDir;
26
- /**
27
- * Get a specific skill by name
28
- */
29
- getSkill(name: string, threadPath: string): Promise<Skill | null>;
30
- /**
31
- * Validate skill name format (public utility method)
32
- */
33
- validateSkillName(name: string): boolean;
34
- }
35
- //# sourceMappingURL=skills.manager.d.ts.map
@@ -1,251 +0,0 @@
1
- /**
2
- * Skill Manager
3
- *
4
- * Loads and manages agent skills from SKILL.md files with frontmatter.
5
- * Skills can be stored in:
6
- * - Project-specific: ./.agents/skills/ (relative to thread path)
7
- * - Global: ~/.agents/skills/
8
- *
9
- * Skills follow the Agent Skills format specification:
10
- * https://agentskills.io/
11
- */
12
- import { readdir, readFile } from "fs/promises";
13
- import { join } from "path";
14
- import { existsSync } from "fs";
15
- import { homedir } from "os";
16
- /**
17
- * Parse frontmatter from SKILL.md content
18
- * Returns { metadata, content } where content is the body after frontmatter
19
- */
20
- function parseFrontmatter(markdown) {
21
- const lines = markdown.split("\n");
22
- // Check if file starts with ---
23
- if (lines[0]?.trim() !== "---") {
24
- return {
25
- metadata: {},
26
- content: markdown.trim(),
27
- };
28
- }
29
- // Find the closing ---
30
- let endIndex = -1;
31
- for (let i = 1; i < lines.length; i++) {
32
- if (lines[i]?.trim() === "---") {
33
- endIndex = i;
34
- break;
35
- }
36
- }
37
- // No closing --- found
38
- if (endIndex === -1) {
39
- return {
40
- metadata: {},
41
- content: markdown.trim(),
42
- };
43
- }
44
- // Parse frontmatter
45
- const frontmatterLines = lines.slice(1, endIndex);
46
- const metadata = {};
47
- for (const line of frontmatterLines) {
48
- const colonIndex = line.indexOf(":");
49
- if (colonIndex === -1)
50
- continue;
51
- const key = line.slice(0, colonIndex).trim();
52
- const value = line.slice(colonIndex + 1).trim();
53
- // Map YAML keys to TypeScript property names
54
- if (key === "name") {
55
- metadata.name = value;
56
- }
57
- else if (key === "description") {
58
- metadata.description = value;
59
- }
60
- else if (key === "license") {
61
- metadata.license = value;
62
- }
63
- else if (key === "compatibility") {
64
- metadata.compatibility = value;
65
- }
66
- else if (key === "allowed-tools") {
67
- metadata.allowedTools = value;
68
- }
69
- else if (key === "metadata") {
70
- // Parse metadata object (simple key:value pairs)
71
- // For now, we'll skip nested metadata parsing
72
- // This would require a proper YAML parser for full support
73
- }
74
- }
75
- // Content is everything after the closing ---
76
- const content = lines
77
- .slice(endIndex + 1)
78
- .join("\n")
79
- .trim();
80
- return { metadata, content };
81
- }
82
- /**
83
- * Get the global skills directory path
84
- */
85
- function getGlobalSkillsDir() {
86
- return join(homedir(), ".agents", "skills");
87
- }
88
- /**
89
- * Get the project-specific skills directory path
90
- */
91
- function getProjectSkillsDir(threadPath) {
92
- return join(threadPath, ".agents", "skills");
93
- }
94
- /**
95
- * Validate skill name format
96
- * - Must be 1-64 characters
97
- * - Lowercase alphanumeric and hyphens only
98
- * - Must not start or end with hyphen
99
- * - Must not contain consecutive hyphens
100
- */
101
- function validateSkillName(name) {
102
- if (!name || name.length === 0 || name.length > 64) {
103
- return false;
104
- }
105
- // Check for valid characters (lowercase alphanumeric + hyphens)
106
- if (!/^[a-z0-9-]+$/.test(name)) {
107
- return false;
108
- }
109
- // Must not start or end with hyphen
110
- if (name.startsWith("-") || name.endsWith("-")) {
111
- return false;
112
- }
113
- // Must not contain consecutive hyphens
114
- if (name.includes("--")) {
115
- return false;
116
- }
117
- return true;
118
- }
119
- /**
120
- * Validate skill description
121
- * - Must be 1-1024 characters
122
- * - Must be non-empty
123
- */
124
- function validateDescription(description) {
125
- return !!description && description.length > 0 && description.length <= 1024;
126
- }
127
- /**
128
- * SkillManager handles loading and validating agent skills
129
- */
130
- export class SkillManager {
131
- /**
132
- * Load all available skills for a given thread
133
- * Project skills override global ones with the same name
134
- */
135
- async loadSkills(threadPath) {
136
- const skills = new Map();
137
- // Load global skills first
138
- const globalDir = getGlobalSkillsDir();
139
- if (existsSync(globalDir)) {
140
- const globalSkills = await this.loadSkillsFromDir(globalDir, "global");
141
- for (const skill of globalSkills) {
142
- skills.set(skill.name, skill);
143
- }
144
- }
145
- // Load project skills (override global)
146
- const projectDir = getProjectSkillsDir(threadPath);
147
- if (existsSync(projectDir)) {
148
- const projectSkills = await this.loadSkillsFromDir(projectDir, "project");
149
- for (const skill of projectSkills) {
150
- skills.set(skill.name, skill);
151
- }
152
- }
153
- return Array.from(skills.values());
154
- }
155
- /**
156
- * Load skills from a specific directory
157
- */
158
- async loadSkillsFromDir(dir, scope) {
159
- const skills = [];
160
- try {
161
- const entries = await readdir(dir, { withFileTypes: true });
162
- for (const entry of entries) {
163
- // Skills must be directories
164
- if (!entry.isDirectory())
165
- continue;
166
- const skillDirName = entry.name;
167
- const skillPath = join(dir, skillDirName);
168
- const skillFilePath = join(skillPath, "SKILL.md");
169
- // Skip if SKILL.md doesn't exist
170
- if (!existsSync(skillFilePath)) {
171
- console.warn(`Skipping skill directory ${skillDirName}: SKILL.md not found`);
172
- continue;
173
- }
174
- try {
175
- // Read and parse SKILL.md
176
- const fileContent = await readFile(skillFilePath, "utf-8");
177
- const { metadata, content } = parseFrontmatter(fileContent);
178
- // Validate required fields
179
- if (!metadata.name) {
180
- console.warn(`Skipping skill in ${skillDirName}: missing 'name' in frontmatter`);
181
- continue;
182
- }
183
- if (!metadata.description) {
184
- console.warn(`Skipping skill in ${skillDirName}: missing 'description' in frontmatter`);
185
- continue;
186
- }
187
- // Validate name format
188
- if (!validateSkillName(metadata.name)) {
189
- console.warn(`Skipping skill in ${skillDirName}: invalid name format '${metadata.name}'. ` +
190
- `Name must be 1-64 chars, lowercase alphanumeric + hyphens, no leading/trailing/consecutive hyphens.`);
191
- continue;
192
- }
193
- // Validate description length
194
- if (!validateDescription(metadata.description)) {
195
- console.warn(`Skipping skill in ${skillDirName}: description must be 1-1024 characters`);
196
- continue;
197
- }
198
- // Validate that directory name matches frontmatter name
199
- if (metadata.name !== skillDirName) {
200
- console.warn(`Skipping skill in ${skillDirName}: directory name must match frontmatter name '${metadata.name}'`);
201
- continue;
202
- }
203
- // Create skill object
204
- const skill = {
205
- name: metadata.name,
206
- description: metadata.description,
207
- scope,
208
- skillPath,
209
- instructions: content,
210
- };
211
- // Add optional fields if present
212
- if (metadata.license) {
213
- skill.license = metadata.license;
214
- }
215
- if (metadata.compatibility) {
216
- skill.compatibility = metadata.compatibility;
217
- }
218
- if (metadata.metadata) {
219
- skill.metadata = metadata.metadata;
220
- }
221
- if (metadata.allowedTools) {
222
- skill.allowedTools = metadata.allowedTools;
223
- }
224
- skills.push(skill);
225
- }
226
- catch (error) {
227
- console.error(`Failed to load skill from ${skillDirName}:`, error);
228
- }
229
- }
230
- }
231
- catch (error) {
232
- // Directory doesn't exist or can't be read - that's okay
233
- console.error(`Failed to load skills from ${dir}:`, error);
234
- }
235
- return skills;
236
- }
237
- /**
238
- * Get a specific skill by name
239
- */
240
- async getSkill(name, threadPath) {
241
- const skills = await this.loadSkills(threadPath);
242
- return skills.find((skill) => skill.name === name) ?? null;
243
- }
244
- /**
245
- * Validate skill name format (public utility method)
246
- */
247
- validateSkillName(name) {
248
- return validateSkillName(name);
249
- }
250
- }
251
- //# sourceMappingURL=skills.manager.js.map
@@ -1,23 +0,0 @@
1
- /**
2
- * DELETE /api/slash-commands
3
- * Delete a slash command
4
- * Body: { filePath }
5
- */
6
- import type { Context } from "hono";
7
- export declare function deleteSlashCommand(c: Context): Promise<(Response & import("hono").TypedResponse<{
8
- error: {
9
- code: string;
10
- message: string;
11
- timestamp: string;
12
- };
13
- }, 400, "json">) | (Response & import("hono").TypedResponse<{
14
- success: true;
15
- }, import("hono/utils/http-status").ContentfulStatusCode, "json">) | (Response & import("hono").TypedResponse<{
16
- error: {
17
- code: string;
18
- message: string;
19
- details: import("hono/utils/types").JSONValue;
20
- timestamp: string;
21
- };
22
- }, 500, "json">)>;
23
- //# sourceMappingURL=slash-commands-delete.route.d.ts.map
@@ -1,36 +0,0 @@
1
- /**
2
- * DELETE /api/slash-commands
3
- * Delete a slash command
4
- * Body: { filePath }
5
- */
6
- import { SlashCommandManager } from "../slash-commands/slash-commands.manager.js";
7
- const slashCommandManager = new SlashCommandManager();
8
- export async function deleteSlashCommand(c) {
9
- try {
10
- const body = await c.req.json();
11
- const { filePath } = body;
12
- if (!filePath) {
13
- return c.json({
14
- error: {
15
- code: "MISSING_FILE_PATH",
16
- message: "filePath is required",
17
- timestamp: new Date().toISOString(),
18
- },
19
- }, 400);
20
- }
21
- await slashCommandManager.deleteCommand(filePath);
22
- return c.json({ success: true });
23
- }
24
- catch (error) {
25
- console.error("Failed to delete slash command:", error);
26
- return c.json({
27
- error: {
28
- code: "DELETE_FAILED",
29
- message: error instanceof Error ? error.message : "Failed to delete slash command",
30
- details: error,
31
- timestamp: new Date().toISOString(),
32
- },
33
- }, 500);
34
- }
35
- }
36
- //# sourceMappingURL=slash-commands-delete.route.js.map
@@ -1,53 +0,0 @@
1
- /**
2
- * GET /api/slash-commands?threadId=xxx
3
- * List all available slash commands for a thread
4
- */
5
- import type { Context } from "hono";
6
- import type { ThreadManager } from "../threads/threads.manager.js";
7
- export declare function getSlashCommands(c: Context, threadManager: ThreadManager): Promise<(Response & import("hono").TypedResponse<{
8
- error: {
9
- code: string;
10
- message: string;
11
- timestamp: string;
12
- };
13
- }, 400, "json">) | (Response & import("hono").TypedResponse<{
14
- error: {
15
- code: string;
16
- message: string;
17
- timestamp: string;
18
- };
19
- }, 404, "json">) | (Response & import("hono").TypedResponse<{
20
- commands: {
21
- name: string;
22
- content: string;
23
- metadata: {
24
- description?: string | undefined;
25
- argumentHint?: string | undefined;
26
- mode?: string | undefined;
27
- };
28
- scope: "project" | "global";
29
- filePath: string;
30
- isBuiltIn?: boolean | undefined;
31
- }[];
32
- skills?: {
33
- name: string;
34
- description: string;
35
- scope: "project" | "global";
36
- skillPath: string;
37
- license?: string | undefined;
38
- compatibility?: string | undefined;
39
- metadata?: {
40
- [x: string]: string;
41
- } | undefined;
42
- allowedTools?: string | undefined;
43
- instructions: string;
44
- }[] | undefined;
45
- }, import("hono/utils/http-status").ContentfulStatusCode, "json">) | (Response & import("hono").TypedResponse<{
46
- error: {
47
- code: string;
48
- message: string;
49
- details: import("hono/utils/types").JSONValue;
50
- timestamp: string;
51
- };
52
- }, 500, "json">)>;
53
- //# sourceMappingURL=slash-commands-get.route.d.ts.map
@@ -1,54 +0,0 @@
1
- /**
2
- * GET /api/slash-commands?threadId=xxx
3
- * List all available slash commands for a thread
4
- */
5
- import { SlashCommandManager } from "../slash-commands/slash-commands.manager.js";
6
- import { SkillManager } from "../skills/skills.manager.js";
7
- const slashCommandManager = new SlashCommandManager();
8
- const skillManager = new SkillManager();
9
- export async function getSlashCommands(c, threadManager) {
10
- const threadId = c.req.query("threadId");
11
- if (!threadId) {
12
- return c.json({
13
- error: {
14
- code: "MISSING_THREAD_ID",
15
- message: "threadId query parameter is required",
16
- timestamp: new Date().toISOString(),
17
- },
18
- }, 400);
19
- }
20
- try {
21
- // Get thread path from thread manager
22
- const thread = await threadManager.getThread(threadId);
23
- if (!thread) {
24
- return c.json({
25
- error: {
26
- code: "THREAD_NOT_FOUND",
27
- message: `Thread not found: ${threadId}`,
28
- timestamp: new Date().toISOString(),
29
- },
30
- }, 404);
31
- }
32
- // Load commands for this thread
33
- const commands = await slashCommandManager.loadCommands(thread.path);
34
- // Load skills for this thread (for quick reference in command menu)
35
- const skills = await skillManager.loadSkills(thread.path);
36
- const response = {
37
- commands,
38
- skills,
39
- };
40
- return c.json(response);
41
- }
42
- catch (error) {
43
- console.error("Failed to load slash commands:", error);
44
- return c.json({
45
- error: {
46
- code: "LOAD_FAILED",
47
- message: error instanceof Error ? error.message : "Failed to load slash commands",
48
- details: error,
49
- timestamp: new Date().toISOString(),
50
- },
51
- }, 500);
52
- }
53
- }
54
- //# sourceMappingURL=slash-commands-get.route.js.map
@@ -1,39 +0,0 @@
1
- /**
2
- * POST /api/slash-commands
3
- * Create a new slash command
4
- * Body: { name, content?, metadata, scope, threadId? }
5
- */
6
- import type { Context } from "hono";
7
- import type { ThreadManager } from "../threads/threads.manager.js";
8
- export declare function createSlashCommand(c: Context, threadManager: ThreadManager): Promise<(Response & import("hono").TypedResponse<{
9
- error: {
10
- code: string;
11
- message: string;
12
- timestamp: string;
13
- };
14
- }, 400, "json">) | (Response & import("hono").TypedResponse<{
15
- error: {
16
- code: string;
17
- message: string;
18
- timestamp: string;
19
- };
20
- }, 404, "json">) | (Response & import("hono").TypedResponse<{
21
- name: string;
22
- content: string;
23
- metadata: {
24
- description?: string | undefined;
25
- argumentHint?: string | undefined;
26
- mode?: string | undefined;
27
- };
28
- scope: "project" | "global";
29
- filePath: string;
30
- isBuiltIn?: boolean | undefined;
31
- }, 201, "json">) | (Response & import("hono").TypedResponse<{
32
- error: {
33
- code: string;
34
- message: string;
35
- details: import("hono/utils/types").JSONValue;
36
- timestamp: string;
37
- };
38
- }, 500, "json">)>;
39
- //# sourceMappingURL=slash-commands-post.route.d.ts.map
@@ -1,70 +0,0 @@
1
- /**
2
- * POST /api/slash-commands
3
- * Create a new slash command
4
- * Body: { name, content?, metadata, scope, threadId? }
5
- */
6
- import { SlashCommandManager } from "../slash-commands/slash-commands.manager.js";
7
- const slashCommandManager = new SlashCommandManager();
8
- export async function createSlashCommand(c, threadManager) {
9
- try {
10
- const body = await c.req.json();
11
- const { name, content, metadata, scope, threadId } = body;
12
- if (!name) {
13
- return c.json({
14
- error: {
15
- code: "MISSING_FIELDS",
16
- message: "name is required",
17
- timestamp: new Date().toISOString(),
18
- },
19
- }, 400);
20
- }
21
- if (scope !== "global" && scope !== "project") {
22
- return c.json({
23
- error: {
24
- code: "INVALID_SCOPE",
25
- message: 'scope must be either "global" or "project"',
26
- timestamp: new Date().toISOString(),
27
- },
28
- }, 400);
29
- }
30
- // Get thread path if project scope
31
- let threadPath;
32
- if (scope === "project") {
33
- if (!threadId) {
34
- return c.json({
35
- error: {
36
- code: "MISSING_THREAD_ID",
37
- message: "threadId is required for project-scoped commands",
38
- timestamp: new Date().toISOString(),
39
- },
40
- }, 400);
41
- }
42
- const thread = await threadManager.getThread(threadId);
43
- if (!thread) {
44
- return c.json({
45
- error: {
46
- code: "THREAD_NOT_FOUND",
47
- message: `Thread not found: ${threadId}`,
48
- timestamp: new Date().toISOString(),
49
- },
50
- }, 404);
51
- }
52
- threadPath = thread.path;
53
- }
54
- // Create command
55
- const command = await slashCommandManager.createCommand(name, content, metadata ?? {}, scope, threadPath);
56
- return c.json(command, 201);
57
- }
58
- catch (error) {
59
- console.error("Failed to create slash command:", error);
60
- return c.json({
61
- error: {
62
- code: "CREATE_FAILED",
63
- message: error instanceof Error ? error.message : "Failed to create slash command",
64
- details: error,
65
- timestamp: new Date().toISOString(),
66
- },
67
- }, 500);
68
- }
69
- }
70
- //# sourceMappingURL=slash-commands-post.route.js.map
@@ -1,23 +0,0 @@
1
- /**
2
- * PUT /api/slash-commands
3
- * Update an existing slash command
4
- * Body: { filePath, content, metadata }
5
- */
6
- import type { Context } from "hono";
7
- export declare function updateSlashCommand(c: Context): Promise<(Response & import("hono").TypedResponse<{
8
- error: {
9
- code: string;
10
- message: string;
11
- timestamp: string;
12
- };
13
- }, 400, "json">) | (Response & import("hono").TypedResponse<{
14
- success: true;
15
- }, import("hono/utils/http-status").ContentfulStatusCode, "json">) | (Response & import("hono").TypedResponse<{
16
- error: {
17
- code: string;
18
- message: string;
19
- details: import("hono/utils/types").JSONValue;
20
- timestamp: string;
21
- };
22
- }, 500, "json">)>;
23
- //# sourceMappingURL=slash-commands-put.route.d.ts.map
@@ -1,36 +0,0 @@
1
- /**
2
- * PUT /api/slash-commands
3
- * Update an existing slash command
4
- * Body: { filePath, content, metadata }
5
- */
6
- import { SlashCommandManager } from "../slash-commands/slash-commands.manager.js";
7
- const slashCommandManager = new SlashCommandManager();
8
- export async function updateSlashCommand(c) {
9
- try {
10
- const body = await c.req.json();
11
- const { filePath, content, metadata } = body;
12
- if (!filePath || !content) {
13
- return c.json({
14
- error: {
15
- code: "MISSING_FIELDS",
16
- message: "filePath and content are required",
17
- timestamp: new Date().toISOString(),
18
- },
19
- }, 400);
20
- }
21
- await slashCommandManager.updateCommand(filePath, content, metadata ?? {});
22
- return c.json({ success: true });
23
- }
24
- catch (error) {
25
- console.error("Failed to update slash command:", error);
26
- return c.json({
27
- error: {
28
- code: "UPDATE_FAILED",
29
- message: error instanceof Error ? error.message : "Failed to update slash command",
30
- details: error,
31
- timestamp: new Date().toISOString(),
32
- },
33
- }, 500);
34
- }
35
- }
36
- //# sourceMappingURL=slash-commands-put.route.js.map
@@ -1,46 +0,0 @@
1
- /**
2
- * Slash Command Manager
3
- *
4
- * Loads and manages slash commands from markdown files with frontmatter.
5
- * Commands can be stored in:
6
- * - Project-specific: ./.agents/commands/ (relative to thread path)
7
- * - Global: ~/.agents/commands/
8
- */
9
- import type { SlashCommand, SlashCommandMetadata } from "@tarsk/shared";
10
- /**
11
- * SlashCommandManager handles loading, creating, and managing slash commands
12
- */
13
- export declare class SlashCommandManager {
14
- /**
15
- * Built-in commands that cannot be overridden
16
- */
17
- private static BUILT_IN_COMMANDS;
18
- /**
19
- * Load all available commands for a given thread
20
- * Project commands override global ones with the same name
21
- * Built-in commands cannot be overridden
22
- */
23
- loadCommands(threadPath: string): Promise<SlashCommand[]>;
24
- /**
25
- * Load commands from a specific directory
26
- */
27
- private loadCommandsFromDir;
28
- /**
29
- * Create a new command
30
- * Creates the directory if it doesn't exist
31
- */
32
- createCommand(name: string, content: string, metadata: SlashCommandMetadata, scope: "global" | "project", threadPath?: string): Promise<SlashCommand>;
33
- /**
34
- * Update an existing command
35
- */
36
- updateCommand(filePath: string, content: string, metadata: SlashCommandMetadata): Promise<void>;
37
- /**
38
- * Delete a command
39
- */
40
- deleteCommand(filePath: string): Promise<void>;
41
- /**
42
- * Get a specific command by name
43
- */
44
- getCommand(name: string, threadPath: string): Promise<SlashCommand | null>;
45
- }
46
- //# sourceMappingURL=slash-commands.manager.d.ts.map