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,143 +0,0 @@
1
- import { execSync } from "node:child_process";
2
- import { existsSync } from "node:fs";
3
- import { spawnProcess } from "../core/utils.js";
4
- import { spawnSyncProcess } from "../core/utils.js";
5
- let cachedShellConfig = null;
6
- let cachedLoginShellEnv = null;
7
- function findBashOnPath() {
8
- if (process.platform === "win32") {
9
- try {
10
- const syncResult = spawnSyncProcess("where", ["bash.exe"], {
11
- encoding: "utf-8",
12
- timeout: 5000,
13
- });
14
- if (syncResult.status === 0 && typeof syncResult.stdout === "string") {
15
- const firstMatch = syncResult.stdout.trim().split(/\r?\n/)[0];
16
- if (firstMatch && existsSync(firstMatch)) {
17
- return firstMatch;
18
- }
19
- }
20
- }
21
- catch {
22
- // ignore
23
- }
24
- return null;
25
- }
26
- try {
27
- const syncResult = spawnSyncProcess("which", ["bash"], {
28
- encoding: "utf-8",
29
- timeout: 5000,
30
- });
31
- if (syncResult.status === 0 && typeof syncResult.stdout === "string") {
32
- const firstMatch = syncResult.stdout.trim().split(/\r?\n/)[0];
33
- if (firstMatch)
34
- return firstMatch;
35
- }
36
- }
37
- catch {
38
- // ignore
39
- }
40
- return null;
41
- }
42
- export function getShellConfig() {
43
- if (cachedShellConfig) {
44
- return cachedShellConfig;
45
- }
46
- if (process.platform === "win32") {
47
- const paths = [];
48
- if (process.env.ProgramFiles) {
49
- paths.push(`${process.env.ProgramFiles}\\Git\\bin\\bash.exe`);
50
- }
51
- if (process.env["ProgramFiles(x86)"]) {
52
- paths.push(`${process.env["ProgramFiles(x86)"]}\\Git\\bin\\bash.exe`);
53
- }
54
- for (const p of paths) {
55
- if (existsSync(p)) {
56
- cachedShellConfig = { shell: p, args: ["-c"] };
57
- return cachedShellConfig;
58
- }
59
- }
60
- const bashOnPath = findBashOnPath();
61
- if (bashOnPath) {
62
- cachedShellConfig = { shell: bashOnPath, args: ["-c"] };
63
- return cachedShellConfig;
64
- }
65
- throw new Error("No bash shell found. Install Git for Windows or add bash to PATH.");
66
- }
67
- if (existsSync("/bin/bash")) {
68
- cachedShellConfig = { shell: "/bin/bash", args: ["-c"] };
69
- return cachedShellConfig;
70
- }
71
- const bashOnPath = findBashOnPath();
72
- if (bashOnPath) {
73
- cachedShellConfig = { shell: bashOnPath, args: ["-c"] };
74
- return cachedShellConfig;
75
- }
76
- cachedShellConfig = { shell: "sh", args: ["-c"] };
77
- return cachedShellConfig;
78
- }
79
- function getLoginShellEnv() {
80
- if (cachedLoginShellEnv) {
81
- return cachedLoginShellEnv;
82
- }
83
- const shell = process.env.SHELL ?? (process.platform === "win32" ? undefined : "/bin/zsh");
84
- if (!shell) {
85
- cachedLoginShellEnv = { ...process.env };
86
- return cachedLoginShellEnv;
87
- }
88
- try {
89
- const quotedShell = shell.replace(/'/g, "'\\''");
90
- const output = execSync(`'${quotedShell}' -ilc 'env'`, {
91
- encoding: "utf-8",
92
- timeout: 5000,
93
- stdio: ["ignore", "pipe", "ignore"],
94
- env: { ...process.env },
95
- });
96
- const loginEnv = { ...process.env };
97
- for (const line of output.split(/\r?\n/)) {
98
- const separatorIndex = line.indexOf("=");
99
- if (separatorIndex <= 0) {
100
- continue;
101
- }
102
- const key = line.slice(0, separatorIndex);
103
- const value = line.slice(separatorIndex + 1);
104
- loginEnv[key] = value;
105
- }
106
- cachedLoginShellEnv = loginEnv;
107
- return cachedLoginShellEnv;
108
- }
109
- catch {
110
- cachedLoginShellEnv = { ...process.env };
111
- return cachedLoginShellEnv;
112
- }
113
- }
114
- export function getShellEnv() {
115
- return { ...getLoginShellEnv() };
116
- }
117
- export function killProcessTree(pid) {
118
- if (process.platform === "win32") {
119
- try {
120
- spawnProcess("taskkill", ["/F", "/T", "/PID", String(pid)], {
121
- stdio: "ignore",
122
- detached: true,
123
- });
124
- }
125
- catch {
126
- // ignore
127
- }
128
- }
129
- else {
130
- try {
131
- process.kill(-pid, "SIGKILL");
132
- }
133
- catch {
134
- try {
135
- process.kill(pid, "SIGKILL");
136
- }
137
- catch {
138
- // already dead
139
- }
140
- }
141
- }
142
- }
143
- //# sourceMappingURL=shell.js.map
@@ -1,30 +0,0 @@
1
- /**
2
- * Skill Reference Tool
3
- *
4
- * Loads reference files from activated skills' references/ directories on-demand.
5
- * This implements progressive disclosure - reference files are only loaded when needed.
6
- */
7
- import type { AgentTool } from "@mariozechner/pi-agent-core";
8
- import { type Static } from "@sinclair/typebox";
9
- import type { Skill } from "@tarsk/shared";
10
- /**
11
- * Schema for skill reference tool input
12
- */
13
- declare const skillReferenceSchema: import("@sinclair/typebox").TObject<{
14
- skillName: import("@sinclair/typebox").TString;
15
- referencePath: import("@sinclair/typebox").TString;
16
- }>;
17
- export type SkillReferenceToolInput = Static<typeof skillReferenceSchema>;
18
- /**
19
- * Create a skill reference reader tool
20
- */
21
- export declare function createSkillReferenceTool(skills: Skill[]): AgentTool<typeof skillReferenceSchema>;
22
- /**
23
- * List all available skill references (utility function)
24
- */
25
- export declare function listSkillReferences(skills: Skill[]): Promise<Array<{
26
- skillName: string;
27
- referencePath: string;
28
- }>>;
29
- export {};
30
- //# sourceMappingURL=skill-reference-tool.d.ts.map
@@ -1,171 +0,0 @@
1
- /**
2
- * Skill Reference Tool
3
- *
4
- * Loads reference files from activated skills' references/ directories on-demand.
5
- * This implements progressive disclosure - reference files are only loaded when needed.
6
- */
7
- import { readFile, readdir } from "fs/promises";
8
- import { join, normalize, relative } from "path";
9
- import { existsSync } from "fs";
10
- import { Type } from "@sinclair/typebox";
11
- /**
12
- * Validate that a reference path is safe (no path traversal attacks)
13
- */
14
- function isPathSafe(basePath, requestedPath) {
15
- const normalized = normalize(requestedPath);
16
- const fullPath = join(basePath, normalized);
17
- const relativePath = relative(basePath, fullPath);
18
- // Check if the relative path tries to escape the base directory
19
- return !relativePath.startsWith("..") && !relativePath.startsWith("/");
20
- }
21
- /**
22
- * Schema for skill reference tool input
23
- */
24
- const skillReferenceSchema = Type.Object({
25
- skillName: Type.String({ description: "Name of the skill" }),
26
- referencePath: Type.String({
27
- description: 'Path to the reference file relative to the skill\'s references/ directory (e.g., "api-reference.md" or "guides/setup.md")',
28
- }),
29
- });
30
- /**
31
- * Create a skill reference reader tool
32
- */
33
- export function createSkillReferenceTool(skills) {
34
- return {
35
- name: "read_skill_reference",
36
- label: "read_skill_reference",
37
- description: "Read a reference file from an activated skill. Skills provide additional documentation in their references/ directory.",
38
- parameters: skillReferenceSchema,
39
- execute: async (_toolCallId, { skillName, referencePath }) => {
40
- // Find the skill
41
- const skill = skills.find((s) => s.name === skillName);
42
- if (!skill) {
43
- return {
44
- content: [
45
- {
46
- type: "text",
47
- text: `Skill not found: ${skillName}. Available skills: ${skills.map((s) => s.name).join(", ")}`,
48
- },
49
- ],
50
- details: undefined,
51
- };
52
- }
53
- // Check if references directory exists
54
- const referencesDir = join(skill.skillPath, "references");
55
- if (!existsSync(referencesDir)) {
56
- return {
57
- content: [
58
- { type: "text", text: `Skill '${skillName}' has no references directory` },
59
- ],
60
- details: undefined,
61
- };
62
- }
63
- // Validate path safety (prevent path traversal)
64
- if (!isPathSafe(referencesDir, referencePath)) {
65
- return {
66
- content: [
67
- {
68
- type: "text",
69
- text: `Invalid reference path: ${referencePath}. Path must be within the skill's references directory.`,
70
- },
71
- ],
72
- details: undefined,
73
- };
74
- }
75
- // Read the reference file
76
- const fullPath = join(referencesDir, referencePath);
77
- if (!existsSync(fullPath)) {
78
- // List available references for better error message
79
- try {
80
- const availableRefs = await listReferencesRecursive(referencesDir);
81
- return {
82
- content: [
83
- {
84
- type: "text",
85
- text: `Reference file '${referencePath}' not found in skill '${skillName}'. Available references:\n${availableRefs.join("\n")}`,
86
- },
87
- ],
88
- details: undefined,
89
- };
90
- }
91
- catch {
92
- return {
93
- content: [
94
- {
95
- type: "text",
96
- text: `Reference file '${referencePath}' not found in skill '${skillName}'`,
97
- },
98
- ],
99
- details: undefined,
100
- };
101
- }
102
- }
103
- try {
104
- const content = await readFile(fullPath, "utf-8");
105
- return {
106
- content: [{ type: "text", text: content }],
107
- details: undefined,
108
- };
109
- }
110
- catch (error) {
111
- return {
112
- content: [
113
- {
114
- type: "text",
115
- text: `Failed to read reference file: ${error instanceof Error ? error.message : String(error)}`,
116
- },
117
- ],
118
- details: undefined,
119
- };
120
- }
121
- },
122
- };
123
- }
124
- /**
125
- * Recursively list all reference files in a directory
126
- */
127
- async function listReferencesRecursive(dir, prefix = "") {
128
- const files = [];
129
- try {
130
- const entries = await readdir(dir, { withFileTypes: true });
131
- for (const entry of entries) {
132
- const relativePath = prefix ? join(prefix, entry.name) : entry.name;
133
- if (entry.isDirectory()) {
134
- const subFiles = await listReferencesRecursive(join(dir, entry.name), relativePath);
135
- files.push(...subFiles);
136
- }
137
- else {
138
- files.push(relativePath);
139
- }
140
- }
141
- }
142
- catch (error) {
143
- console.error(`Failed to list references in ${dir}:`, error);
144
- }
145
- return files;
146
- }
147
- /**
148
- * List all available skill references (utility function)
149
- */
150
- export async function listSkillReferences(skills) {
151
- const references = [];
152
- for (const skill of skills) {
153
- const referencesDir = join(skill.skillPath, "references");
154
- if (!existsSync(referencesDir))
155
- continue;
156
- try {
157
- const files = await listReferencesRecursive(referencesDir);
158
- for (const file of files) {
159
- references.push({
160
- skillName: skill.name,
161
- referencePath: file,
162
- });
163
- }
164
- }
165
- catch (error) {
166
- console.error(`Failed to list references for skill ${skill.name}:`, error);
167
- }
168
- }
169
- return references;
170
- }
171
- //# sourceMappingURL=skill-reference-tool.js.map
@@ -1,33 +0,0 @@
1
- /**
2
- * Skill Script Tool
3
- *
4
- * Executes scripts from activated skills' scripts/ directories.
5
- * Scripts can be written in any supported language (.sh, .py, .js, etc.)
6
- */
7
- import type { AgentTool } from "@mariozechner/pi-agent-core";
8
- import { type Static } from "@sinclair/typebox";
9
- import type { Skill } from "@tarsk/shared";
10
- /**
11
- * Schema for skill script tool input
12
- */
13
- declare const skillScriptSchema: import("@sinclair/typebox").TObject<{
14
- skillName: import("@sinclair/typebox").TString;
15
- scriptName: import("@sinclair/typebox").TString;
16
- args: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
17
- timeout: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
18
- }>;
19
- export type SkillScriptToolInput = Static<typeof skillScriptSchema>;
20
- /**
21
- * Create a skill script executor tool
22
- */
23
- export declare function createSkillScriptTool(skills: Skill[], cwd: string): AgentTool<typeof skillScriptSchema>;
24
- /**
25
- * List all available skill scripts
26
- */
27
- export declare function listSkillScripts(skills: Skill[]): Promise<Array<{
28
- skillName: string;
29
- scriptName: string;
30
- path: string;
31
- }>>;
32
- export {};
33
- //# sourceMappingURL=skill-tool.d.ts.map
@@ -1,213 +0,0 @@
1
- /**
2
- * Skill Script Tool
3
- *
4
- * Executes scripts from activated skills' scripts/ directories.
5
- * Scripts can be written in any supported language (.sh, .py, .js, etc.)
6
- */
7
- import { readdir } from "fs/promises";
8
- import { join, extname } from "path";
9
- import { existsSync, statSync } from "fs";
10
- import { Type } from "@sinclair/typebox";
11
- import { spawnProcess } from "../core/utils.js";
12
- /**
13
- * Get the interpreter for a script based on its extension
14
- */
15
- function getInterpreter(scriptPath) {
16
- const ext = extname(scriptPath);
17
- switch (ext) {
18
- case ".sh":
19
- case ".bash":
20
- return { command: "bash", args: [scriptPath] };
21
- case ".py":
22
- return { command: "python3", args: [scriptPath] };
23
- case ".js":
24
- return { command: "node", args: [scriptPath] };
25
- case ".ts":
26
- // Use bun to run TypeScript directly
27
- return { command: "bun", args: ["run", scriptPath] };
28
- default:
29
- // Try to execute directly if it's executable
30
- try {
31
- const stats = statSync(scriptPath);
32
- if (stats.mode & 0o111) {
33
- // File is executable
34
- return { command: scriptPath, args: [] };
35
- }
36
- }
37
- catch {
38
- // Ignore stat errors
39
- }
40
- return null;
41
- }
42
- }
43
- /**
44
- * Execute a skill script
45
- */
46
- async function executeScript(scriptPath, args, cwd, timeout = 30) {
47
- const interpreter = getInterpreter(scriptPath);
48
- if (!interpreter) {
49
- throw new Error(`Unsupported script type: ${scriptPath}`);
50
- }
51
- return new Promise((resolve, reject) => {
52
- const child = spawnProcess(interpreter.command, [...interpreter.args, ...args], {
53
- cwd,
54
- timeout: timeout * 1000,
55
- });
56
- let stdout = "";
57
- let stderr = "";
58
- let timedOut = false;
59
- if (child.stdout) {
60
- child.stdout.on("data", (data) => {
61
- stdout += data.toString();
62
- });
63
- }
64
- if (child.stderr) {
65
- child.stderr.on("data", (data) => {
66
- stderr += data.toString();
67
- });
68
- }
69
- const timeoutHandle = setTimeout(() => {
70
- timedOut = true;
71
- child.kill("SIGTERM");
72
- }, timeout * 1000);
73
- child.on("error", (err) => {
74
- clearTimeout(timeoutHandle);
75
- reject(err);
76
- });
77
- child.on("close", (code) => {
78
- clearTimeout(timeoutHandle);
79
- if (timedOut) {
80
- reject(new Error(`Script execution timed out after ${timeout}s`));
81
- return;
82
- }
83
- resolve({ stdout, stderr, exitCode: code });
84
- });
85
- });
86
- }
87
- /**
88
- * Schema for skill script tool input
89
- */
90
- const skillScriptSchema = Type.Object({
91
- skillName: Type.String({ description: "Name of the skill" }),
92
- scriptName: Type.String({ description: "Name of the script to execute (without path)" }),
93
- args: Type.Optional(Type.Array(Type.String(), { description: "Arguments to pass to the script" })),
94
- timeout: Type.Optional(Type.Number({ description: "Timeout in seconds (default: 30)" })),
95
- });
96
- /**
97
- * Create a skill script executor tool
98
- */
99
- export function createSkillScriptTool(skills, cwd) {
100
- return {
101
- name: "execute_skill_script",
102
- label: "execute_skill_script",
103
- description: "Execute a script from an activated skill. Skills provide executable scripts in their scripts/ directory.",
104
- parameters: skillScriptSchema,
105
- execute: async (_toolCallId, { skillName, scriptName, args = [], timeout = 30 }) => {
106
- // Find the skill
107
- const skill = skills.find((s) => s.name === skillName);
108
- if (!skill) {
109
- return {
110
- content: [
111
- {
112
- type: "text",
113
- text: `Skill not found: ${skillName}. Available skills: ${skills.map((s) => s.name).join(", ")}`,
114
- },
115
- ],
116
- details: undefined,
117
- };
118
- }
119
- // Check if scripts directory exists
120
- const scriptsDir = join(skill.skillPath, "scripts");
121
- if (!existsSync(scriptsDir)) {
122
- return {
123
- content: [
124
- { type: "text", text: `Skill '${skillName}' has no scripts directory` },
125
- ],
126
- details: undefined,
127
- };
128
- }
129
- // Find the script
130
- const scriptPath = join(scriptsDir, scriptName);
131
- if (!existsSync(scriptPath)) {
132
- // List available scripts for better error message
133
- try {
134
- const availableScripts = await readdir(scriptsDir);
135
- return {
136
- content: [
137
- {
138
- type: "text",
139
- text: `Script '${scriptName}' not found in skill '${skillName}'. Available scripts: ${availableScripts.join(", ")}`,
140
- },
141
- ],
142
- details: undefined,
143
- };
144
- }
145
- catch {
146
- return {
147
- content: [
148
- {
149
- type: "text",
150
- text: `Script '${scriptName}' not found in skill '${skillName}'`,
151
- },
152
- ],
153
- details: undefined,
154
- };
155
- }
156
- }
157
- try {
158
- const result = await executeScript(scriptPath, args, cwd, timeout);
159
- // Format output
160
- let output = "";
161
- if (result.stdout) {
162
- output += `STDOUT:\n${result.stdout}\n`;
163
- }
164
- if (result.stderr) {
165
- output += `STDERR:\n${result.stderr}\n`;
166
- }
167
- output += `Exit code: ${result.exitCode}\n`;
168
- return {
169
- content: [{ type: "text", text: output }],
170
- details: undefined,
171
- };
172
- }
173
- catch (error) {
174
- return {
175
- content: [
176
- {
177
- type: "text",
178
- text: `Failed to execute script: ${error instanceof Error ? error.message : String(error)}`,
179
- },
180
- ],
181
- details: undefined,
182
- };
183
- }
184
- },
185
- };
186
- }
187
- /**
188
- * List all available skill scripts
189
- */
190
- export async function listSkillScripts(skills) {
191
- const scripts = [];
192
- for (const skill of skills) {
193
- const scriptsDir = join(skill.skillPath, "scripts");
194
- if (!existsSync(scriptsDir))
195
- continue;
196
- try {
197
- const files = await readdir(scriptsDir);
198
- for (const file of files) {
199
- const fullPath = join(scriptsDir, file);
200
- scripts.push({
201
- skillName: skill.name,
202
- scriptName: file,
203
- path: fullPath,
204
- });
205
- }
206
- }
207
- catch (error) {
208
- console.error(`Failed to list scripts for skill ${skill.name}:`, error);
209
- }
210
- }
211
- return scripts;
212
- }
213
- //# sourceMappingURL=skill-tool.js.map
@@ -1,20 +0,0 @@
1
- import type { AgentTool } from "@mariozechner/pi-agent-core";
2
- import { type Static } from "@sinclair/typebox";
3
- declare const todoSchema: import("@sinclair/typebox").TObject<{
4
- action: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"add">, import("@sinclair/typebox").TLiteral<"update">, import("@sinclair/typebox").TLiteral<"list">, import("@sinclair/typebox").TLiteral<"delete">]>;
5
- descriptions: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
6
- ids: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
7
- status: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"pending">, import("@sinclair/typebox").TLiteral<"working">, import("@sinclair/typebox").TLiteral<"done">]>>;
8
- assignedTo: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
9
- }>;
10
- export type TodoToolInput = Static<typeof todoSchema>;
11
- export declare function createTodoTool(threadId: string): AgentTool<typeof todoSchema>;
12
- export declare const todoTool: AgentTool<import("@sinclair/typebox").TObject<{
13
- action: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"add">, import("@sinclair/typebox").TLiteral<"update">, import("@sinclair/typebox").TLiteral<"list">, import("@sinclair/typebox").TLiteral<"delete">]>;
14
- descriptions: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
15
- ids: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
16
- status: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"pending">, import("@sinclair/typebox").TLiteral<"working">, import("@sinclair/typebox").TLiteral<"done">]>>;
17
- assignedTo: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
18
- }>, any>;
19
- export {};
20
- //# sourceMappingURL=todo.d.ts.map