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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tarsk",
3
- "version": "0.4.4",
3
+ "version": "0.4.6",
4
4
  "description": "CLI for Tarsk - Project Threads Manager",
5
5
  "keywords": [
6
6
  "cli",
@@ -21,7 +21,7 @@
21
21
  "main": "dist/index.js",
22
22
  "scripts": {
23
23
  "build:app-assets": "cd ../app && bun run build",
24
- "build:server": "rm -rf dist && bunx tsc --project tsconfig.json && cp src/scaffold-templates.json dist/ && tsx scripts/fix-esm-imports.ts",
24
+ "build:server": "rm -rf dist && bun build src/index.ts --outdir=dist --target=node && cp src/scaffold-templates.json dist/",
25
25
  "dev": "bun run build:app-assets && electrobun dev",
26
26
  "dev:watch": "bun run build:app-assets && electrobun dev --watch",
27
27
  "build": "bun run build:app-assets && bun run build:server && electrobun build",
@@ -1,14 +0,0 @@
1
- /**
2
- * Error handling utilities for Pi Agent
3
- * Provides functions for extracting and formatting error information
4
- */
5
- import type { AgentEvent } from "@tarsk/shared";
6
- /**
7
- * Extracts error code from an unknown error object
8
- */
9
- export declare function getErrorCode(error: unknown): string | undefined;
10
- /**
11
- * Formats an error into an AgentEvent
12
- */
13
- export declare function formatErrorEvent(error: unknown): AgentEvent;
14
- //# sourceMappingURL=agent.error-utils.d.ts.map
@@ -1,52 +0,0 @@
1
- /**
2
- * Error handling utilities for Pi Agent
3
- * Provides functions for extracting and formatting error information
4
- */
5
- /**
6
- * Extracts error code from an unknown error object
7
- */
8
- export function getErrorCode(error) {
9
- if (error && typeof error === "object" && "code" in error) {
10
- const code = error.code;
11
- if (typeof code === "string")
12
- return code;
13
- }
14
- return undefined;
15
- }
16
- /**
17
- * Formats an error into an AgentEvent
18
- */
19
- export function formatErrorEvent(error) {
20
- let errCode;
21
- let errMessage;
22
- let errStack;
23
- let errDetails;
24
- if (error instanceof Error) {
25
- errMessage = error.message || "Unknown error";
26
- errStack = error.stack;
27
- errCode = getErrorCode(error);
28
- }
29
- else if (typeof error === "object" && error !== null) {
30
- errMessage = error.message
31
- ? String(error.message)
32
- : JSON.stringify(error);
33
- errCode = getErrorCode(error);
34
- errDetails = error;
35
- }
36
- else if (typeof error === "string") {
37
- errMessage = error;
38
- }
39
- else {
40
- errMessage = String(error);
41
- }
42
- return {
43
- type: "error",
44
- content: errMessage,
45
- error: {
46
- code: errCode ?? "EXECUTION_ERROR",
47
- message: errMessage ?? "An error occurred during execution",
48
- details: { stack: errStack, originalError: errDetails },
49
- },
50
- };
51
- }
52
- //# sourceMappingURL=agent.error-utils.js.map
@@ -1,55 +0,0 @@
1
- /**
2
- * Event transformer for Pi Agent
3
- * Handles transformation of Pi Agent events to AgentEvent format
4
- */
5
- import type { AgentEvent as PiAgentEvent } from "@mariozechner/pi-agent-core";
6
- import type { AssistantMessage } from "@mariozechner/pi-ai";
7
- import type { AgentEvent } from "@tarsk/shared";
8
- /**
9
- * Extracts text content from an assistant message
10
- */
11
- export declare function extractTextFromAssistantMessage(msg: AssistantMessage): string;
12
- /**
13
- * Event queue manager for handling Pi Agent events
14
- */
15
- export declare class EventQueue {
16
- private queue;
17
- private resolver;
18
- finalContent: string;
19
- errorOccurred: boolean;
20
- toolCallCount: number;
21
- /**
22
- * Processes Pi Agent events and transforms them into AgentEvent format
23
- */
24
- handlePiEvent(event: PiAgentEvent): void;
25
- /**
26
- * Adds an event to the queue
27
- */
28
- push(event: AgentEvent): void;
29
- /**
30
- * Removes and returns the next event from the queue
31
- */
32
- shift(): AgentEvent | undefined;
33
- /**
34
- * Returns the number of events in the queue
35
- */
36
- get length(): number;
37
- /**
38
- * Sets a resolver to be called when new events are added
39
- */
40
- setResolver(resolver: () => void): void;
41
- /**
42
- * Clears the current resolver
43
- */
44
- clearResolver(): void;
45
- /**
46
- * Notifies the resolver if one is set
47
- */
48
- private notifyResolver;
49
- /**
50
- * Wakes up any waiting consumer (e.g. when the agent finishes).
51
- * Call this instead of setResolver(() => {}) so the pending Promise resolves.
52
- */
53
- notify(): void;
54
- }
55
- //# sourceMappingURL=agent.event-transformer.d.ts.map
@@ -1,175 +0,0 @@
1
- /**
2
- * Event transformer for Pi Agent
3
- * Handles transformation of Pi Agent events to AgentEvent format
4
- */
5
- /**
6
- * Extracts text content from an assistant message
7
- */
8
- export function extractTextFromAssistantMessage(msg) {
9
- return msg.content
10
- .filter((b) => b.type === "text")
11
- .map((b) => b.text)
12
- .join("");
13
- }
14
- /**
15
- * Event queue manager for handling Pi Agent events
16
- */
17
- export class EventQueue {
18
- queue = [];
19
- resolver = null;
20
- finalContent = "";
21
- errorOccurred = false;
22
- toolCallCount = 0;
23
- /**
24
- * Processes Pi Agent events and transforms them into AgentEvent format
25
- */
26
- handlePiEvent(event) {
27
- if (event.type === "message_update" && event.assistantMessageEvent.type === "thinking_delta") {
28
- // Stream thinking/reasoning content in real-time as the model thinks
29
- const delta = event.assistantMessageEvent.delta;
30
- this.push({
31
- type: "message",
32
- role: "assistant",
33
- content: delta,
34
- isThinking: true,
35
- });
36
- }
37
- else if (event.type === "message_update" &&
38
- event.assistantMessageEvent.type === "text_delta") {
39
- const delta = event.assistantMessageEvent.delta;
40
- this.finalContent += delta;
41
- this.push({
42
- type: "message",
43
- role: "assistant",
44
- content: delta,
45
- });
46
- }
47
- else if (event.type === "message_update" &&
48
- event.assistantMessageEvent.type === "toolcall_delta") {
49
- // Handle tool call delta events for progress indication
50
- const deltaEvent = event.assistantMessageEvent;
51
- this.push({
52
- type: "toolcall_delta",
53
- contentIndex: deltaEvent.contentIndex,
54
- delta: deltaEvent.delta,
55
- partial: deltaEvent.partial,
56
- });
57
- }
58
- else if (event.type === "message_start") {
59
- // Handle message_start events - these contain usage information
60
- this.push({
61
- type: "message",
62
- role: "assistant",
63
- content: "",
64
- message: event.message, // Store the full message object for usage extraction
65
- });
66
- }
67
- else if (event.type === "tool_execution_start") {
68
- this.toolCallCount++;
69
- this.push({
70
- type: "message",
71
- role: "tool",
72
- content: JSON.stringify([
73
- {
74
- type: "tool_use",
75
- name: event.toolName,
76
- id: event.toolCallId,
77
- input: event.args,
78
- },
79
- ]),
80
- });
81
- }
82
- else if (event.type === "tool_execution_end") {
83
- const resultContent = event.result?.content
84
- ?.filter((b) => b.type === "text")
85
- .map((b) => b.text ?? "")
86
- .join("") ?? JSON.stringify(event.result);
87
- this.push({
88
- type: "message",
89
- role: "tool",
90
- content: JSON.stringify([
91
- {
92
- type: "tool-result",
93
- toolCallId: event.toolCallId,
94
- toolName: event.toolName,
95
- content: resultContent,
96
- isError: event.isError,
97
- },
98
- ]),
99
- });
100
- }
101
- else if (event.type === "agent_end") {
102
- const messages = event.messages;
103
- const lastAssistant = [...messages]
104
- .reverse()
105
- .find((m) => "role" in m && m.role === "assistant");
106
- if (lastAssistant) {
107
- const extracted = extractTextFromAssistantMessage(lastAssistant);
108
- if (extracted && extracted !== this.finalContent) {
109
- this.finalContent = extracted;
110
- }
111
- }
112
- const toolCallCount = messages.filter((m) => "role" in m &&
113
- m.role === "assistant" &&
114
- "content" in m &&
115
- Array.isArray(m.content) &&
116
- m.content.some((b) => b.type === "tool_use")).length;
117
- console.log(`[ai] agent_end: ${messages.length} messages, ` +
118
- `finalContent length=${this.finalContent.length}, ` +
119
- `toolCallRounds=${toolCallCount}` +
120
- (this.finalContent.length === 0 ? " ⚠️ no text content produced" : ""));
121
- }
122
- this.notifyResolver();
123
- }
124
- /**
125
- * Adds an event to the queue
126
- */
127
- push(event) {
128
- this.queue.push(event);
129
- }
130
- /**
131
- * Removes and returns the next event from the queue
132
- */
133
- shift() {
134
- return this.queue.shift();
135
- }
136
- /**
137
- * Returns the number of events in the queue
138
- */
139
- get length() {
140
- return this.queue.length;
141
- }
142
- /**
143
- * Sets a resolver to be called when new events are added
144
- */
145
- setResolver(resolver) {
146
- this.resolver = resolver;
147
- }
148
- /**
149
- * Clears the current resolver
150
- */
151
- clearResolver() {
152
- this.resolver = null;
153
- }
154
- /**
155
- * Notifies the resolver if one is set
156
- */
157
- notifyResolver() {
158
- if (this.resolver) {
159
- this.resolver();
160
- this.resolver = null;
161
- }
162
- }
163
- /**
164
- * Wakes up any waiting consumer (e.g. when the agent finishes).
165
- * Call this instead of setResolver(() => {}) so the pending Promise resolves.
166
- */
167
- notify() {
168
- if (this.resolver) {
169
- const resolver = this.resolver;
170
- this.resolver = null;
171
- resolver();
172
- }
173
- }
174
- }
175
- //# sourceMappingURL=agent.event-transformer.js.map
@@ -1,26 +0,0 @@
1
- /**
2
- * PiExecutor handles execution of agent commands via @mariozechner/pi-agent-core
3
- *
4
- * This manager is responsible for:
5
- * - Executing streaming agent sessions using the Pi Agent
6
- * - Streaming result messages back to the caller
7
- * - Handling execution errors
8
- */
9
- import type { ExecutionContext, AgentEvent } from "@tarsk/shared";
10
- import { MetadataManager } from "../features/metadata/metadata.manager.js";
11
- /**
12
- * AgentExecutor interface defines the contract for agent command execution
13
- */
14
- export interface AgentExecutor {
15
- execute(prompt: string, context: ExecutionContext, signal?: AbortSignal): AsyncGenerator<AgentEvent>;
16
- }
17
- /**
18
- * PiExecutorImpl provides the implementation for agent command execution
19
- * using the @mariozechner/pi-agent-core Agent with streaming events.
20
- */
21
- export declare class PiExecutorImpl implements AgentExecutor {
22
- private metadataManager;
23
- constructor(metadataManager: MetadataManager);
24
- execute(userPrompt: string, context: ExecutionContext, signal?: AbortSignal): AsyncGenerator<AgentEvent>;
25
- }
26
- //# sourceMappingURL=agent.executor.d.ts.map
@@ -1,286 +0,0 @@
1
- /**
2
- * PiExecutor handles execution of agent commands via @mariozechner/pi-agent-core
3
- *
4
- * This manager is responsible for:
5
- * - Executing streaming agent sessions using the Pi Agent
6
- * - Streaming result messages back to the caller
7
- * - Handling execution errors
8
- */
9
- import { Agent } from "@mariozechner/pi-agent-core";
10
- import { resolve, isAbsolute } from "path";
11
- import { createCodingTools } from "../tools/index.js";
12
- import { createAgentTool } from "../tools/agent-tool.js";
13
- import { resolveProviderConfig } from "../features/providers/provider-resolver.js";
14
- import { getDataDir } from "../core/paths.js";
15
- import { resolveModel } from "./agent.model-resolver.js";
16
- import { EventQueue } from "./agent.event-transformer.js";
17
- import { loadAgentSystemPrompt } from "./agent.prompt-loader.js";
18
- import { getErrorCode, formatErrorEvent } from "./agent.error-utils.js";
19
- /**
20
- * PiExecutorImpl provides the implementation for agent command execution
21
- * using the @mariozechner/pi-agent-core Agent with streaming events.
22
- */
23
- export class PiExecutorImpl {
24
- metadataManager;
25
- constructor(metadataManager) {
26
- this.metadataManager = metadataManager;
27
- }
28
- async *execute(userPrompt, context, signal) {
29
- try {
30
- const providerName = context.provider;
31
- if (!providerName) {
32
- throw new Error("No provider specified in execution context");
33
- }
34
- let model = context.model?.trim();
35
- if (!model) {
36
- throw new Error("No model specified in execution context");
37
- }
38
- model = model.replace(`${providerName.toLowerCase()}/`, "");
39
- // Ensure threadPath is absolute - if relative, resolve against dataDir
40
- const cwd = isAbsolute(context.threadPath)
41
- ? context.threadPath
42
- : resolve(getDataDir(), context.threadPath);
43
- console.log("[ai] Execution context:", {
44
- model,
45
- cwd,
46
- providerName,
47
- promptLength: userPrompt.length,
48
- });
49
- // Resolve provider config: merges hardcoded PROVIDERS with catalog data (api, keyName, url)
50
- const providerConfig = await resolveProviderConfig(providerName);
51
- if (!providerConfig) {
52
- throw new Error(`Unknown provider: ${providerName}`);
53
- }
54
- let apiKey = providerConfig.env && providerConfig.env.length > 0
55
- ? process.env[providerConfig.env[0]]
56
- : undefined;
57
- let apiKeySource = "environment";
58
- if (!apiKey) {
59
- try {
60
- const providerKeys = await this.metadataManager.getProviderKeys();
61
- apiKey = providerKeys[providerConfig.name];
62
- apiKeySource = "configuration";
63
- }
64
- catch (error) {
65
- console.error(`[ai] Failed to retrieve provider keys from configuration:`, error);
66
- throw new Error(`Failed to retrieve API key for provider ${providerName}: ${error instanceof Error ? error.message : String(error)}`);
67
- }
68
- }
69
- if (!apiKey) {
70
- throw new Error(`No API key found for provider: ${providerName}. ` +
71
- `Set ${providerConfig.env && providerConfig.env.length > 0 ? providerConfig.env[0] : "an API key"} in environment variables or configuration.`);
72
- }
73
- // Verify the API key is not still encrypted (should have been decrypted by metadata manager)
74
- if (apiKey.includes(":") && apiKey.length > 100) {
75
- console.warn(`[ai] ⚠️ API key appears to still be encrypted. This may indicate a decryption failure.`);
76
- }
77
- console.log(`[ai] API key source for ${providerName}: ${apiKeySource}`);
78
- const resolvedModel = resolveModel(providerName, model, providerConfig);
79
- console.log("[ai] Resolved model:", {
80
- id: resolvedModel.id,
81
- api: resolvedModel.api,
82
- provider: resolvedModel.provider,
83
- });
84
- const tools = await createCodingTools(cwd, {
85
- skills: context.skills,
86
- threadId: context.threadId,
87
- });
88
- const systemPrompt = await loadAgentSystemPrompt(cwd, context.skills, context.planMode, context.agents);
89
- console.log("[ai] System prompt loaded from thread path", context.skills && context.skills.length > 0 ? `with ${context.skills.length} skill(s)` : "");
90
- console.log(`[ai] System prompt: ${systemPrompt}`);
91
- const eventQueue = new EventQueue();
92
- // Add agent tool if agents are defined (enables subagent spawning)
93
- const invocableAgents = (context.agents ?? []).filter((a) => !a.disableModelInvocation);
94
- if (invocableAgents.length > 0) {
95
- const agentToolInstance = createAgentTool({
96
- agents: invocableAgents,
97
- baseTools: tools,
98
- metadataManager: this.metadataManager,
99
- parentModel: `${providerName.toLowerCase()}/${model}`,
100
- parentProvider: providerName,
101
- defaultSystemPrompt: systemPrompt,
102
- onEvent: (event) => eventQueue.push(event),
103
- signal,
104
- });
105
- tools.push(agentToolInstance);
106
- }
107
- const agent = new Agent({
108
- initialState: {
109
- systemPrompt,
110
- model: resolvedModel,
111
- tools,
112
- },
113
- getApiKey: async () => apiKey,
114
- });
115
- let done = false;
116
- let aborted = false;
117
- // Handle abort signal from client disconnect
118
- const onAbort = () => {
119
- if (aborted)
120
- return;
121
- aborted = true;
122
- console.log("[ai] Client disconnected, aborting agent execution");
123
- // Immediately abort the agent to stop ongoing LLM API calls.
124
- // Must happen here — not in the finally block — otherwise the agent
125
- // keeps consuming tokens until the current API call completes.
126
- agent.abort();
127
- done = true;
128
- eventQueue.notify();
129
- };
130
- if (signal) {
131
- if (signal.aborted) {
132
- console.log("[ai] Agent execution aborted before start");
133
- return;
134
- }
135
- signal.addEventListener("abort", onAbort, { once: true });
136
- }
137
- console.log(`[ai] Agent prompt request:`, {
138
- promptLength: userPrompt.length,
139
- promptPreview: userPrompt.substring(0, 200) + (userPrompt.length > 200 ? "..." : ""),
140
- });
141
- let count = 0;
142
- let lastLogTime = 0;
143
- const unsubscribe = agent.subscribe((event) => {
144
- // Throttle logging to prevent spam - only log every 2 seconds or every 100 events
145
- const now = Date.now();
146
- const shouldLog = count === 0 || count % 100 === 0 || now - lastLogTime > 2000;
147
- if (shouldLog) {
148
- console.log(`[ai] Agent event.${count++}:`, event.type, event.type === "message_update" &&
149
- event.assistantMessageEvent?.type === "toolcall_delta"
150
- ? `toolcall_delta (delta="${event.assistantMessageEvent.delta}")`
151
- : JSON.stringify(event).substring(0, 255));
152
- lastLogTime = now;
153
- }
154
- else {
155
- count++;
156
- }
157
- eventQueue.handlePiEvent(event);
158
- });
159
- const images = (context.attachments ?? [])
160
- .filter((a) => a.mimeType.startsWith("image/"))
161
- .map((a) => ({ type: "image", data: a.content, mimeType: a.mimeType }));
162
- const textAttachments = (context.attachments ?? []).filter((a) => !a.mimeType.startsWith("image/"));
163
- let finalPrompt = userPrompt;
164
- if (textAttachments.length > 0) {
165
- const attachmentBlocks = textAttachments
166
- .map((a) => {
167
- const decoded = Buffer.from(a.content, "base64").toString("utf-8");
168
- return `<file name="${a.name}">\n${decoded}\n</file>`;
169
- })
170
- .join("\n\n");
171
- finalPrompt = `${attachmentBlocks}\n\n${userPrompt}`;
172
- }
173
- console.log(`[ai] Attachments: ${context.attachments?.length ?? 0} total, ${images.length} image(s), ${textAttachments.length} text file(s)`, (context.attachments ?? []).map((a) => ({
174
- name: a.name,
175
- mimeType: a.mimeType,
176
- contentLength: a.content?.length ?? 0,
177
- })), "images →", images.map((img) => ({ mimeType: img.mimeType, dataLength: img.data?.length ?? 0 })));
178
- const promptDone = agent
179
- .prompt(finalPrompt, images.length > 0 ? images : undefined)
180
- .then(() => {
181
- console.log(`[ai] Agent prompt completed successfully`);
182
- done = true;
183
- // Wake up the waiting loop so it can check the done condition and exit.
184
- // Using notify() instead of setResolver(() => {}) is critical: setResolver
185
- // would orphan any pending Promise resolver, causing an infinite hang.
186
- eventQueue.notify();
187
- })
188
- .catch((err) => {
189
- const errMessage = err instanceof Error ? err.message : String(err);
190
- console.error(`[ai] Agent prompt failed:`, {
191
- error: errMessage,
192
- errorType: err instanceof Error ? err.constructor.name : typeof err,
193
- });
194
- if (!eventQueue.errorOccurred) {
195
- eventQueue.errorOccurred = true;
196
- eventQueue.push({
197
- type: "error",
198
- content: errMessage,
199
- error: {
200
- code: getErrorCode(err) ?? "EXECUTION_ERROR",
201
- message: errMessage,
202
- details: {
203
- stack: err instanceof Error ? err.stack : undefined,
204
- },
205
- },
206
- });
207
- }
208
- done = true;
209
- // Same fix: notify instead of replacing the resolver with a no-op.
210
- eventQueue.notify();
211
- });
212
- try {
213
- while (!done || eventQueue.length > 0) {
214
- if (eventQueue.length > 0) {
215
- yield eventQueue.shift();
216
- }
217
- else {
218
- await new Promise((resolve) => {
219
- eventQueue.setResolver(resolve);
220
- });
221
- }
222
- }
223
- // When aborted, agent.abort() was already called in onAbort — skip waiting
224
- // for the LLM response since it has been cancelled.
225
- if (!aborted) {
226
- await promptDone;
227
- if (!eventQueue.errorOccurred && eventQueue.finalContent) {
228
- console.log(`[ai] Yielding result, content length=${eventQueue.finalContent.length}`);
229
- yield {
230
- type: "result",
231
- content: eventQueue.finalContent,
232
- };
233
- }
234
- else if (!eventQueue.errorOccurred) {
235
- if (eventQueue.toolCallCount > 0) {
236
- console.log(`[ai] ⚠️ Agent ended with no text content after ${eventQueue.toolCallCount} tool call(s). Emitting error event.`);
237
- yield {
238
- type: "error",
239
- content: "The agent used tools but did not produce a response. The model may have run out of context or terminated unexpectedly. Please try again.",
240
- error: {
241
- code: "NO_CONTENT_AFTER_TOOLS",
242
- message: "Agent terminated after tool calls without producing a text response",
243
- details: { toolCallCount: eventQueue.toolCallCount },
244
- },
245
- };
246
- }
247
- else {
248
- console.log("[ai] ⚠️ Agent ended with no text content and no tool calls.");
249
- yield {
250
- type: "error",
251
- content: `The model ${model} from ${providerName} did not provide a response to your prompt. Check your API key and balance and try again.`,
252
- error: {
253
- code: "NO_CONTENT_NO_TOOLS",
254
- message: `The model ${model} from ${providerName} did not provide a response to your prompt.`,
255
- },
256
- };
257
- }
258
- }
259
- else {
260
- console.error("[ai] eventQueue.errorOccurred", eventQueue.errorOccurred);
261
- }
262
- }
263
- else {
264
- console.log("[ai] Agent aborted by user, skipping result emission");
265
- }
266
- }
267
- finally {
268
- // Clean up signal listener
269
- if (signal) {
270
- signal.removeEventListener("abort", onAbort);
271
- }
272
- unsubscribe();
273
- if (signal?.aborted) {
274
- console.warn("[ai] Agent aborted by user");
275
- }
276
- agent.abort();
277
- eventQueue.clearResolver();
278
- }
279
- }
280
- catch (error) {
281
- console.error("[ai] Error during execution:", error);
282
- yield formatErrorEvent(error);
283
- }
284
- }
285
- }
286
- //# sourceMappingURL=agent.executor.js.map
@@ -1,22 +0,0 @@
1
- /**
2
- * Model resolver for Pi Agent
3
- * Handles provider mapping and model resolution for different AI providers
4
- */
5
- import { type Model, type Api, type KnownProvider } from "@mariozechner/pi-ai";
6
- /**
7
- * Maps provider names to Pi AI known provider identifiers
8
- */
9
- export declare const PROVIDER_NAME_TO_PI: Record<string, KnownProvider>;
10
- /**
11
- * Determines the API type based on the provider's API URL
12
- */
13
- export declare function determineApiType(apiUrl: string): "openai-completions" | "anthropic-messages";
14
- /**
15
- * Resolves a model configuration for the Pi Agent
16
- * First attempts to use known providers from pi-ai registry,
17
- * then falls back to creating a custom model configuration
18
- */
19
- export declare function resolveModel(providerName: string, modelId: string, providerConfig: {
20
- api: string | undefined;
21
- }): Model<Api>;
22
- //# sourceMappingURL=agent.model-resolver.d.ts.map