tarsk 0.3.43 → 0.4.4

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 (414) hide show
  1. package/README.md +1 -1
  2. package/dist/agent/agent.error-utils.d.ts +14 -0
  3. package/dist/agent/agent.error-utils.js +52 -0
  4. package/dist/agent/agent.event-transformer.d.ts +55 -0
  5. package/dist/agent/agent.event-transformer.js +175 -0
  6. package/dist/agent/agent.executor.d.ts +26 -0
  7. package/dist/agent/agent.executor.js +286 -0
  8. package/dist/agent/agent.model-resolver.d.ts +22 -0
  9. package/dist/agent/agent.model-resolver.js +67 -0
  10. package/dist/agent/agent.process-manager.d.ts +57 -0
  11. package/dist/agent/agent.process-manager.js +262 -0
  12. package/dist/agent/agent.processing-state-manager.d.ts +74 -0
  13. package/dist/agent/agent.processing-state-manager.js +87 -0
  14. package/dist/agent/agent.prompt-loader.d.ts +16 -0
  15. package/dist/agent/agent.prompt-loader.js +227 -0
  16. package/dist/agent/agent.subagent-executor.d.ts +35 -0
  17. package/dist/agent/agent.subagent-executor.js +135 -0
  18. package/dist/bun/index.d.ts +2 -0
  19. package/dist/bun/index.js +165 -0
  20. package/dist/cli.d.ts +3 -0
  21. package/dist/cli.js +22 -0
  22. package/dist/core/crypto.d.ts +29 -0
  23. package/dist/core/crypto.js +166 -0
  24. package/dist/core/dev-server-cache.d.ts +46 -0
  25. package/dist/core/dev-server-cache.js +59 -0
  26. package/dist/core/env-manager.d.ts +3 -0
  27. package/dist/core/env-manager.js +60 -0
  28. package/dist/core/error-responses.d.ts +61 -0
  29. package/dist/core/error-responses.js +64 -0
  30. package/dist/core/logger.d.ts +10 -0
  31. package/dist/core/logger.js +47 -0
  32. package/dist/core/paths.d.ts +22 -0
  33. package/dist/core/paths.js +26 -0
  34. package/dist/core/random-words.d.ts +18 -0
  35. package/dist/core/random-words.js +135 -0
  36. package/dist/core/response-builder.d.ts +50 -0
  37. package/dist/core/response-builder.js +56 -0
  38. package/dist/core/route-helpers.d.ts +47 -0
  39. package/dist/core/route-helpers.js +54 -0
  40. package/dist/core/run-command-detector.d.ts +26 -0
  41. package/dist/core/run-command-detector.js +98 -0
  42. package/dist/core/stream-helper.d.ts +44 -0
  43. package/dist/core/stream-helper.js +50 -0
  44. package/dist/core/utils.d.ts +43 -0
  45. package/dist/core/utils.js +113 -0
  46. package/dist/core/validation.d.ts +10 -0
  47. package/dist/core/validation.js +20 -0
  48. package/dist/database/database.d.ts +40 -0
  49. package/dist/database/database.encryption.d.ts +33 -0
  50. package/dist/database/database.encryption.js +62 -0
  51. package/dist/database/database.js +480 -0
  52. package/dist/database/database.state.d.ts +52 -0
  53. package/dist/database/database.state.js +119 -0
  54. package/dist/database/database.test-utils.d.ts +22 -0
  55. package/dist/database/database.test-utils.js +39 -0
  56. package/dist/database/database.types.d.ts +3 -0
  57. package/dist/database/database.types.js +2 -0
  58. package/dist/features/agents/agents.manager.d.ts +24 -0
  59. package/dist/features/agents/agents.manager.js +200 -0
  60. package/dist/features/ask-user/ask-user.routes.d.ts +9 -0
  61. package/dist/features/ask-user/ask-user.routes.js +35 -0
  62. package/dist/features/chat/chat-delete.route.d.ts +15 -0
  63. package/dist/features/chat/chat-delete.route.js +36 -0
  64. package/dist/features/chat/chat-post.route.d.ts +11 -0
  65. package/dist/features/chat/chat-post.route.js +270 -0
  66. package/dist/features/chat/chat-stop.route.d.ts +21 -0
  67. package/dist/features/chat/chat-stop.route.js +22 -0
  68. package/dist/features/chat/chat-subscribe.route.d.ts +9 -0
  69. package/dist/features/chat/chat-subscribe.route.js +71 -0
  70. package/dist/features/chat/chat.routes.d.ts +22 -0
  71. package/dist/features/chat/chat.routes.js +29 -0
  72. package/dist/features/conversations/conversations-delete.route.d.ts +16 -0
  73. package/dist/features/conversations/conversations-delete.route.js +34 -0
  74. package/dist/features/conversations/conversations-get-all.route.d.ts +16 -0
  75. package/dist/features/conversations/conversations-get-all.route.js +39 -0
  76. package/dist/features/conversations/conversations-get-by-id.route.d.ts +16 -0
  77. package/dist/features/conversations/conversations-get-by-id.route.js +38 -0
  78. package/dist/features/conversations/conversations-get-deleted.route.d.ts +15 -0
  79. package/dist/features/conversations/conversations-get-deleted.route.js +34 -0
  80. package/dist/features/conversations/conversations-get-messages.route.d.ts +16 -0
  81. package/dist/features/conversations/conversations-get-messages.route.js +49 -0
  82. package/dist/features/conversations/conversations.content.d.ts +28 -0
  83. package/dist/features/conversations/conversations.content.js +142 -0
  84. package/dist/features/conversations/conversations.database.d.ts +108 -0
  85. package/dist/features/conversations/conversations.database.js +373 -0
  86. package/dist/features/conversations/conversations.manager.d.ts +130 -0
  87. package/dist/features/conversations/conversations.manager.js +162 -0
  88. package/dist/features/conversations/conversations.routes.d.ts +21 -0
  89. package/dist/features/conversations/conversations.routes.js +38 -0
  90. package/dist/features/conversations/token-usage.route.d.ts +41 -0
  91. package/dist/features/conversations/token-usage.route.js +419 -0
  92. package/dist/features/git/git-commit.route.d.ts +12 -0
  93. package/dist/features/git/git-commit.route.js +39 -0
  94. package/dist/features/git/git-create-branch.route.d.ts +28 -0
  95. package/dist/features/git/git-create-branch.route.js +119 -0
  96. package/dist/features/git/git-create-pr.route.d.ts +13 -0
  97. package/dist/features/git/git-create-pr.route.js +50 -0
  98. package/dist/features/git/git-create-repo.route.d.ts +14 -0
  99. package/dist/features/git/git-create-repo.route.js +108 -0
  100. package/dist/features/git/git-diff.route.d.ts +30 -0
  101. package/dist/features/git/git-diff.route.js +189 -0
  102. package/dist/features/git/git-fetch.route.d.ts +12 -0
  103. package/dist/features/git/git-fetch.route.js +31 -0
  104. package/dist/features/git/git-generate-commit-message.route.d.ts +12 -0
  105. package/dist/features/git/git-generate-commit-message.route.js +76 -0
  106. package/dist/features/git/git-generate-pr-info.route.d.ts +13 -0
  107. package/dist/features/git/git-generate-pr-info.route.js +147 -0
  108. package/dist/features/git/git-github-status.route.d.ts +16 -0
  109. package/dist/features/git/git-github-status.route.js +68 -0
  110. package/dist/features/git/git-log.route.d.ts +17 -0
  111. package/dist/features/git/git-log.route.js +33 -0
  112. package/dist/features/git/git-pr-status.route.d.ts +15 -0
  113. package/dist/features/git/git-pr-status.route.js +33 -0
  114. package/dist/features/git/git-pull.route.d.ts +12 -0
  115. package/dist/features/git/git-pull.route.js +35 -0
  116. package/dist/features/git/git-push.route.d.ts +12 -0
  117. package/dist/features/git/git-push.route.js +46 -0
  118. package/dist/features/git/git-status-cache.database.d.ts +7 -0
  119. package/dist/features/git/git-status-cache.database.js +53 -0
  120. package/dist/features/git/git-status.route.d.ts +15 -0
  121. package/dist/features/git/git-status.route.js +62 -0
  122. package/dist/features/git/git-sync-branch.route.d.ts +4 -0
  123. package/dist/features/git/git-sync-branch.route.js +208 -0
  124. package/dist/features/git/git-unified-status.route.d.ts +30 -0
  125. package/dist/features/git/git-unified-status.route.js +165 -0
  126. package/dist/features/git/git-username.route.d.ts +3 -0
  127. package/dist/features/git/git-username.route.js +24 -0
  128. package/dist/features/git/git.manager.d.ts +139 -0
  129. package/dist/features/git/git.manager.js +352 -0
  130. package/dist/features/git/git.routes.d.ts +4 -0
  131. package/dist/features/git/git.routes.js +116 -0
  132. package/dist/features/git/git.utils.d.ts +82 -0
  133. package/dist/features/git/git.utils.js +1040 -0
  134. package/dist/features/mcp/mcp.config.d.ts +27 -0
  135. package/dist/features/mcp/mcp.config.js +148 -0
  136. package/dist/features/mcp/mcp.manager.d.ts +61 -0
  137. package/dist/features/mcp/mcp.manager.js +254 -0
  138. package/dist/features/mcp/mcp.popular.json +103 -0
  139. package/dist/features/mcp/mcp.routes.d.ts +13 -0
  140. package/dist/features/mcp/mcp.routes.js +159 -0
  141. package/dist/features/mcp/mcp.types.d.ts +80 -0
  142. package/dist/features/mcp/mcp.types.js +8 -0
  143. package/dist/features/metadata/metadata.manager.d.ts +126 -0
  144. package/dist/features/metadata/metadata.manager.js +423 -0
  145. package/dist/features/models/model-info-aihubmix.d.ts +25 -0
  146. package/dist/features/models/model-info-aihubmix.js +117 -0
  147. package/dist/features/models/model-info-openrouter.d.ts +25 -0
  148. package/dist/features/models/model-info-openrouter.js +104 -0
  149. package/dist/features/models/model-info.d.ts +37 -0
  150. package/dist/features/models/model-info.js +39 -0
  151. package/dist/features/models/models-catalog.d.ts +49 -0
  152. package/dist/features/models/models-catalog.js +80 -0
  153. package/dist/features/models/models-catalog.route.d.ts +43 -0
  154. package/dist/features/models/models-catalog.route.js +15 -0
  155. package/dist/features/models/models-get-available.route.d.ts +36 -0
  156. package/dist/features/models/models-get-available.route.js +66 -0
  157. package/dist/features/models/models-get-enabled.route.d.ts +33 -0
  158. package/dist/features/models/models-get-enabled.route.js +45 -0
  159. package/dist/features/models/models-get-model-info.route.d.ts +31 -0
  160. package/dist/features/models/models-get-model-info.route.js +84 -0
  161. package/dist/features/models/models-model-disable.route.d.ts +15 -0
  162. package/dist/features/models/models-model-disable.route.js +20 -0
  163. package/dist/features/models/models-model-enable.route.d.ts +13 -0
  164. package/dist/features/models/models-model-enable.route.js +20 -0
  165. package/dist/features/models/models-provider-refresh.route.d.ts +17 -0
  166. package/dist/features/models/models-provider-refresh.route.js +20 -0
  167. package/dist/features/models/models.manager.d.ts +58 -0
  168. package/dist/features/models/models.manager.js +138 -0
  169. package/dist/features/models/models.routes.d.ts +18 -0
  170. package/dist/features/models/models.routes.js +83 -0
  171. package/dist/features/models/open-router-models.d.ts +38 -0
  172. package/dist/features/models/open-router-models.js +73 -0
  173. package/dist/features/models/openai-models.d.ts +63 -0
  174. package/dist/features/models/openai-models.js +150 -0
  175. package/dist/features/onboarding/onboarding-get-git-check.route.d.ts +11 -0
  176. package/dist/features/onboarding/onboarding-get-git-check.route.js +28 -0
  177. package/dist/features/onboarding/onboarding-get-status.route.d.ts +12 -0
  178. package/dist/features/onboarding/onboarding-get-status.route.js +15 -0
  179. package/dist/features/onboarding/onboarding-post-complete.route.d.ts +12 -0
  180. package/dist/features/onboarding/onboarding-post-complete.route.js +15 -0
  181. package/dist/features/onboarding/onboarding-post-reset.route.d.ts +12 -0
  182. package/dist/features/onboarding/onboarding-post-reset.route.js +15 -0
  183. package/dist/features/onboarding/onboarding.routes.d.ts +18 -0
  184. package/dist/features/onboarding/onboarding.routes.js +28 -0
  185. package/dist/features/project-todos/project-todos.database.d.ts +38 -0
  186. package/dist/features/project-todos/project-todos.database.js +91 -0
  187. package/dist/features/project-todos/project-todos.routes.d.ts +4 -0
  188. package/dist/features/project-todos/project-todos.routes.js +94 -0
  189. package/dist/features/projects/projects-ai-files.route.d.ts +148 -0
  190. package/dist/features/projects/projects-ai-files.route.js +425 -0
  191. package/dist/features/projects/projects-commands.route.d.ts +27 -0
  192. package/dist/features/projects/projects-commands.route.js +39 -0
  193. package/dist/features/projects/projects-create.route.d.ts +19 -0
  194. package/dist/features/projects/projects-create.route.js +37 -0
  195. package/dist/features/projects/projects-delete.route.d.ts +24 -0
  196. package/dist/features/projects/projects-delete.route.js +34 -0
  197. package/dist/features/projects/projects-get.route.d.ts +47 -0
  198. package/dist/features/projects/projects-get.route.js +36 -0
  199. package/dist/features/projects/projects-list.route.d.ts +58 -0
  200. package/dist/features/projects/projects-list.route.js +59 -0
  201. package/dist/features/projects/projects-open-folder.route.d.ts +10 -0
  202. package/dist/features/projects/projects-open-folder.route.js +11 -0
  203. package/dist/features/projects/projects-open.route.d.ts +26 -0
  204. package/dist/features/projects/projects-open.route.js +49 -0
  205. package/dist/features/projects/projects-package-scripts.route.d.ts +15 -0
  206. package/dist/features/projects/projects-package-scripts.route.js +96 -0
  207. package/dist/features/projects/projects-run-command.route.d.ts +8 -0
  208. package/dist/features/projects/projects-run-command.route.js +21 -0
  209. package/dist/features/projects/projects-run.route.d.ts +51 -0
  210. package/dist/features/projects/projects-run.route.js +74 -0
  211. package/dist/features/projects/projects-update.route.d.ts +24 -0
  212. package/dist/features/projects/projects-update.route.js +81 -0
  213. package/dist/features/projects/projects.creator.d.ts +33 -0
  214. package/dist/features/projects/projects.creator.js +555 -0
  215. package/dist/features/projects/projects.database.d.ts +61 -0
  216. package/dist/features/projects/projects.database.js +212 -0
  217. package/dist/features/projects/projects.manager.d.ts +291 -0
  218. package/dist/features/projects/projects.manager.js +426 -0
  219. package/dist/features/projects/projects.open-with.d.ts +27 -0
  220. package/dist/features/projects/projects.open-with.js +156 -0
  221. package/dist/features/projects/projects.routes.d.ts +20 -0
  222. package/dist/features/projects/projects.routes.js +255 -0
  223. package/dist/features/projects/terminal-session-manager.d.ts +55 -0
  224. package/dist/features/projects/terminal-session-manager.js +90 -0
  225. package/dist/features/providers/provider-resolver.d.ts +13 -0
  226. package/dist/features/providers/provider-resolver.js +22 -0
  227. package/dist/features/providers/providers-get-credits.route.d.ts +15 -0
  228. package/dist/features/providers/providers-get-credits.route.js +51 -0
  229. package/dist/features/providers/providers-get.route.d.ts +16 -0
  230. package/dist/features/providers/providers-get.route.js +32 -0
  231. package/dist/features/providers/providers-open-external.route.d.ts +15 -0
  232. package/dist/features/providers/providers-open-external.route.js +49 -0
  233. package/dist/features/providers/providers-post-bulk-keys.route.d.ts +14 -0
  234. package/dist/features/providers/providers-post-bulk-keys.route.js +31 -0
  235. package/dist/features/providers/providers-post-keys.route.d.ts +14 -0
  236. package/dist/features/providers/providers-post-keys.route.js +25 -0
  237. package/dist/features/providers/providers.routes.d.ts +19 -0
  238. package/dist/features/providers/providers.routes.js +31 -0
  239. package/dist/features/rules/rules-post.route.d.ts +43 -0
  240. package/dist/features/rules/rules-post.route.js +89 -0
  241. package/dist/features/rules/rules.manager.d.ts +36 -0
  242. package/dist/features/rules/rules.manager.js +203 -0
  243. package/dist/features/rules/rules.routes.d.ts +12 -0
  244. package/dist/features/rules/rules.routes.js +13 -0
  245. package/dist/features/run/run-get-running.route.d.ts +15 -0
  246. package/dist/features/run/run-get-running.route.js +21 -0
  247. package/dist/features/run/run-post-start.route.d.ts +8 -0
  248. package/dist/features/run/run-post-start.route.js +21 -0
  249. package/dist/features/run/run-post-stop.route.d.ts +15 -0
  250. package/dist/features/run/run-post-stop.route.js +24 -0
  251. package/dist/features/run/run-post-suggest.route.d.ts +15 -0
  252. package/dist/features/run/run-post-suggest.route.js +21 -0
  253. package/dist/features/run/run-put-command.route.d.ts +15 -0
  254. package/dist/features/run/run-put-command.route.js +24 -0
  255. package/dist/features/run/run.routes.d.ts +19 -0
  256. package/dist/features/run/run.routes.js +31 -0
  257. package/dist/features/scaffold/index.d.ts +7 -0
  258. package/dist/features/scaffold/index.js +5 -0
  259. package/dist/features/scaffold/scaffold-get-templates.route.d.ts +27 -0
  260. package/dist/features/scaffold/scaffold-get-templates.route.js +17 -0
  261. package/dist/features/scaffold/scaffold-post.route.d.ts +8 -0
  262. package/dist/features/scaffold/scaffold-post.route.js +30 -0
  263. package/dist/features/scaffold/scaffold.routes.d.ts +10 -0
  264. package/dist/features/scaffold/scaffold.routes.js +16 -0
  265. package/dist/features/scaffold/scaffold.runner.d.ts +48 -0
  266. package/dist/features/scaffold/scaffold.runner.js +475 -0
  267. package/dist/features/scaffold/scaffold.types.d.ts +26 -0
  268. package/dist/features/scaffold/scaffold.types.js +5 -0
  269. package/dist/features/skills/skills.activation.d.ts +31 -0
  270. package/dist/features/skills/skills.activation.js +155 -0
  271. package/dist/features/skills/skills.manager.d.ts +35 -0
  272. package/dist/features/skills/skills.manager.js +251 -0
  273. package/dist/features/slash-commands/slash-commands-delete.route.d.ts +23 -0
  274. package/dist/features/slash-commands/slash-commands-delete.route.js +36 -0
  275. package/dist/features/slash-commands/slash-commands-get.route.d.ts +53 -0
  276. package/dist/features/slash-commands/slash-commands-get.route.js +54 -0
  277. package/dist/features/slash-commands/slash-commands-post.route.d.ts +39 -0
  278. package/dist/features/slash-commands/slash-commands-post.route.js +70 -0
  279. package/dist/features/slash-commands/slash-commands-put.route.d.ts +23 -0
  280. package/dist/features/slash-commands/slash-commands-put.route.js +36 -0
  281. package/dist/features/slash-commands/slash-commands.manager.d.ts +46 -0
  282. package/dist/features/slash-commands/slash-commands.manager.js +265 -0
  283. package/dist/features/slash-commands/slash-commands.routes.d.ts +13 -0
  284. package/dist/features/slash-commands/slash-commands.routes.js +20 -0
  285. package/dist/features/threads/threads-ai-files.route.d.ts +153 -0
  286. package/dist/features/threads/threads-ai-files.route.js +287 -0
  287. package/dist/features/threads/threads-conversation-folder-path.route.d.ts +14 -0
  288. package/dist/features/threads/threads-conversation-folder-path.route.js +23 -0
  289. package/dist/features/threads/threads-create.route.d.ts +22 -0
  290. package/dist/features/threads/threads-create.route.js +60 -0
  291. package/dist/features/threads/threads-delete.route.d.ts +25 -0
  292. package/dist/features/threads/threads-delete.route.js +35 -0
  293. package/dist/features/threads/threads-files.route.d.ts +15 -0
  294. package/dist/features/threads/threads-files.route.js +20 -0
  295. package/dist/features/threads/threads-fix-comments.route.d.ts +26 -0
  296. package/dist/features/threads/threads-fix-comments.route.js +45 -0
  297. package/dist/features/threads/threads-get.route.d.ts +30 -0
  298. package/dist/features/threads/threads-get.route.js +38 -0
  299. package/dist/features/threads/threads-list.route.d.ts +56 -0
  300. package/dist/features/threads/threads-list.route.js +58 -0
  301. package/dist/features/threads/threads-messages.route.d.ts +28 -0
  302. package/dist/features/threads/threads-messages.route.js +110 -0
  303. package/dist/features/threads/threads-open.route.d.ts +26 -0
  304. package/dist/features/threads/threads-open.route.js +62 -0
  305. package/dist/features/threads/threads-select.route.d.ts +25 -0
  306. package/dist/features/threads/threads-select.route.js +35 -0
  307. package/dist/features/threads/threads-update.route.d.ts +15 -0
  308. package/dist/features/threads/threads-update.route.js +30 -0
  309. package/dist/features/threads/threads.database.d.ts +68 -0
  310. package/dist/features/threads/threads.database.js +215 -0
  311. package/dist/features/threads/threads.manager.d.ts +204 -0
  312. package/dist/features/threads/threads.manager.js +505 -0
  313. package/dist/features/threads/threads.routes.d.ts +20 -0
  314. package/dist/features/threads/threads.routes.js +230 -0
  315. package/dist/features/todos/todos.database.d.ts +14 -0
  316. package/dist/features/todos/todos.database.js +31 -0
  317. package/dist/features/updates/updates.routes.d.ts +13 -0
  318. package/dist/features/updates/updates.routes.js +40 -0
  319. package/dist/index.d.ts +3 -0
  320. package/dist/index.js +37 -10022
  321. package/dist/project-analyzer.d.ts +26 -0
  322. package/dist/project-analyzer.js +307 -0
  323. package/dist/public/assets/add-agent-view-B9IQjAwU.js +1 -0
  324. package/dist/public/assets/add-rule-view-BdZHurB3.js +7 -0
  325. package/dist/public/assets/add-skill-view-Cuu6Z0fr.js +1 -0
  326. package/dist/public/assets/add-slash-command-view-uW75Jvbh.js +1 -0
  327. package/dist/public/assets/conversation-history-view-D0OBxJMC.js +1 -0
  328. package/dist/public/assets/dialogs-config-DiFQjCeA.js +46 -0
  329. package/dist/public/assets/diff-view-B5XBM5UZ.js +3 -0
  330. package/dist/public/assets/file-tree-sidebar-DMX7fHi7.js +1 -0
  331. package/dist/public/assets/files-view-CUZn7G0o.js +1 -0
  332. package/dist/public/assets/history-view-B8HM78Wa.js +1 -0
  333. package/dist/public/assets/index-C-p81QYw.js +17 -0
  334. package/dist/public/assets/index-DhVMb7D6.css +1 -0
  335. package/dist/public/assets/mcp-manager-CEm1L3dn.js +1 -0
  336. package/dist/public/assets/mcp-server-edit-view-BAwMNOAH.js +5 -0
  337. package/dist/public/assets/mcp-servers-sidebar-Ncxq9Oj5.js +1 -0
  338. package/dist/public/assets/mcp-view-Cz7nelGQ.js +1 -0
  339. package/dist/public/assets/monaco-DvsnxTfD.js +11 -0
  340. package/dist/public/assets/onboarding-CvpvkF3X.js +1 -0
  341. package/dist/public/assets/onboarding-dialog-CKJw0ULj.js +1 -0
  342. package/dist/public/assets/project-settings-view-DJ1uvrTL.js +1 -0
  343. package/dist/public/assets/provider-details-view-CkS6WbnK.js +1 -0
  344. package/dist/public/assets/providers-sidebar-C4MF6i9d.js +1 -0
  345. package/dist/public/assets/radio-group-BItFbSTw.js +1 -0
  346. package/dist/public/assets/react-vendor-DkKo9QGO.js +17 -0
  347. package/dist/public/assets/rolldown-runtime-Dw2cE7zH.js +1 -0
  348. package/dist/public/assets/settings-view-C45kmAGH.js +2 -0
  349. package/dist/public/assets/store-BVVGurzl.js +2 -0
  350. package/dist/public/assets/use-toast-DEJkXPN4.js +1 -0
  351. package/dist/public/assets/utils-DY_quHB8.js +1 -0
  352. package/dist/public/fonts/google-sans.ttf +0 -0
  353. package/dist/public/fonts/zalando.ttf +0 -0
  354. package/dist/public/ide/android-studio.svg +1 -0
  355. package/dist/public/ide/cursor.svg +12 -0
  356. package/dist/public/ide/kiro.svg +11 -0
  357. package/dist/public/ide/terminal.svg +7 -0
  358. package/dist/public/ide/vscode.svg +2 -0
  359. package/dist/public/ide/windsurf.svg +3 -0
  360. package/dist/public/ide/xcode.svg +2 -0
  361. package/dist/public/index.html +13 -9
  362. package/dist/scaffold-templates.json +3 -12
  363. package/dist/server.d.ts +12 -0
  364. package/dist/server.js +142 -0
  365. package/dist/tools/agent-tool.d.ts +49 -0
  366. package/dist/tools/agent-tool.js +131 -0
  367. package/dist/tools/ask-user.d.ts +25 -0
  368. package/dist/tools/ask-user.js +74 -0
  369. package/dist/tools/ast-grep.d.ts +28 -0
  370. package/dist/tools/ast-grep.js +273 -0
  371. package/dist/tools/bash.d.ts +33 -0
  372. package/dist/tools/bash.js +186 -0
  373. package/dist/tools/edit-diff.d.ts +24 -0
  374. package/dist/tools/edit-diff.js +136 -0
  375. package/dist/tools/edit.d.ts +28 -0
  376. package/dist/tools/edit.js +78 -0
  377. package/dist/tools/find.d.ts +31 -0
  378. package/dist/tools/find.js +117 -0
  379. package/dist/tools/grep.d.ts +37 -0
  380. package/dist/tools/grep.js +231 -0
  381. package/dist/tools/index.d.ts +93 -0
  382. package/dist/tools/index.js +110 -0
  383. package/dist/tools/ls.d.ts +31 -0
  384. package/dist/tools/ls.js +108 -0
  385. package/dist/tools/mcp-tools.d.ts +31 -0
  386. package/dist/tools/mcp-tools.js +59 -0
  387. package/dist/tools/path-utils.d.ts +14 -0
  388. package/dist/tools/path-utils.js +87 -0
  389. package/dist/tools/read.d.ts +27 -0
  390. package/dist/tools/read.js +86 -0
  391. package/dist/tools/resolve-bin.d.ts +5 -0
  392. package/dist/tools/resolve-bin.js +28 -0
  393. package/dist/tools/shell.d.ts +7 -0
  394. package/dist/tools/shell.js +143 -0
  395. package/dist/tools/skill-reference-tool.d.ts +30 -0
  396. package/dist/tools/skill-reference-tool.js +171 -0
  397. package/dist/tools/skill-tool.d.ts +33 -0
  398. package/dist/tools/skill-tool.js +213 -0
  399. package/dist/tools/todo.d.ts +20 -0
  400. package/dist/tools/todo.js +168 -0
  401. package/dist/tools/tool-helpers.d.ts +78 -0
  402. package/dist/tools/tool-helpers.js +109 -0
  403. package/dist/tools/truncate.d.ts +31 -0
  404. package/dist/tools/truncate.js +164 -0
  405. package/dist/tools/write.d.ts +21 -0
  406. package/dist/tools/write.js +65 -0
  407. package/package.json +33 -27
  408. package/dist/public/assets/index-6jySngUQ.css +0 -1
  409. package/dist/public/assets/index-BjFpLTSj.js +0 -18
  410. package/dist/public/assets/monaco-w6PwaWGP.js +0 -11
  411. package/dist/public/assets/radix-ui-e1yigncZ.js +0 -1
  412. package/dist/public/assets/react-vendor-B6JfXZmN.js +0 -59
  413. package/dist/public/assets/ui-styling-CyCIFleB.js +0 -1
  414. package/dist/public/assets/utils-Dd_itR7L.js +0 -1
@@ -0,0 +1,12 @@
1
+ /**
2
+ * GET /api/onboarding/status
3
+ * Check if onboarding has been completed
4
+ */
5
+ import type { Context } from "hono";
6
+ import type { MetadataManager } from "../metadata/metadata.manager.js";
7
+ export declare function getOnboardingStatus(c: Context, metadataManager: MetadataManager): Promise<(Response & import("hono").TypedResponse<{
8
+ onboardingCompleted: boolean;
9
+ }, import("hono/utils/http-status").ContentfulStatusCode, "json">) | (Response & import("hono").TypedResponse<{
10
+ error: string;
11
+ }, 500, "json">)>;
12
+ //# sourceMappingURL=onboarding-get-status.route.d.ts.map
@@ -0,0 +1,15 @@
1
+ /**
2
+ * GET /api/onboarding/status
3
+ * Check if onboarding has been completed
4
+ */
5
+ export async function getOnboardingStatus(c, metadataManager) {
6
+ try {
7
+ const onboardingCompleted = await metadataManager.getOnboardingCompleted();
8
+ return c.json({ onboardingCompleted });
9
+ }
10
+ catch (error) {
11
+ const message = error instanceof Error ? error.message : "Failed to check onboarding status";
12
+ return c.json({ error: message }, 500);
13
+ }
14
+ }
15
+ //# sourceMappingURL=onboarding-get-status.route.js.map
@@ -0,0 +1,12 @@
1
+ /**
2
+ * POST /api/onboarding/complete
3
+ * Mark onboarding as complete
4
+ */
5
+ import type { Context } from "hono";
6
+ import type { MetadataManager } from "../metadata/metadata.manager.js";
7
+ export declare function postOnboardingComplete(c: Context, metadataManager: MetadataManager): Promise<(Response & import("hono").TypedResponse<{
8
+ success: true;
9
+ }, import("hono/utils/http-status").ContentfulStatusCode, "json">) | (Response & import("hono").TypedResponse<{
10
+ error: string;
11
+ }, 500, "json">)>;
12
+ //# sourceMappingURL=onboarding-post-complete.route.d.ts.map
@@ -0,0 +1,15 @@
1
+ /**
2
+ * POST /api/onboarding/complete
3
+ * Mark onboarding as complete
4
+ */
5
+ export async function postOnboardingComplete(c, metadataManager) {
6
+ try {
7
+ await metadataManager.setOnboardingCompleted(true);
8
+ return c.json({ success: true });
9
+ }
10
+ catch (error) {
11
+ const message = error instanceof Error ? error.message : "Failed to complete onboarding";
12
+ return c.json({ error: message }, 500);
13
+ }
14
+ }
15
+ //# sourceMappingURL=onboarding-post-complete.route.js.map
@@ -0,0 +1,12 @@
1
+ /**
2
+ * POST /api/onboarding/reset
3
+ * Reset onboarding so the flow can be run again (hidden feature)
4
+ */
5
+ import type { Context } from "hono";
6
+ import type { MetadataManager } from "../metadata/metadata.manager.js";
7
+ export declare function postOnboardingReset(c: Context, metadataManager: MetadataManager): Promise<(Response & import("hono").TypedResponse<{
8
+ success: true;
9
+ }, import("hono/utils/http-status").ContentfulStatusCode, "json">) | (Response & import("hono").TypedResponse<{
10
+ error: string;
11
+ }, 500, "json">)>;
12
+ //# sourceMappingURL=onboarding-post-reset.route.d.ts.map
@@ -0,0 +1,15 @@
1
+ /**
2
+ * POST /api/onboarding/reset
3
+ * Reset onboarding so the flow can be run again (hidden feature)
4
+ */
5
+ export async function postOnboardingReset(c, metadataManager) {
6
+ try {
7
+ await metadataManager.setOnboardingCompleted(false);
8
+ return c.json({ success: true });
9
+ }
10
+ catch (error) {
11
+ const message = error instanceof Error ? error.message : "Failed to reset onboarding";
12
+ return c.json({ error: message }, 500);
13
+ }
14
+ }
15
+ //# sourceMappingURL=onboarding-post-reset.route.js.map
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Onboarding routes for the REST API
3
+ *
4
+ * Handles onboarding flow for first-time users:
5
+ * - GET /api/onboarding/status - Check if onboarding is complete
6
+ * - GET /api/onboarding/git-check - Check if git is installed
7
+ * - POST /api/onboarding/complete - Mark onboarding as complete
8
+ * - POST /api/onboarding/reset - Reset onboarding (hidden feature)
9
+ */
10
+ import { Hono } from "hono";
11
+ import type { MetadataManager } from "../metadata/metadata.manager.js";
12
+ /**
13
+ * Creates onboarding routes
14
+ * @param metadataManager - Manager for metadata persistence
15
+ * @returns Hono router with onboarding routes
16
+ */
17
+ export declare function createOnboardingRoutes(metadataManager: MetadataManager): Hono;
18
+ //# sourceMappingURL=onboarding.routes.d.ts.map
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Onboarding routes for the REST API
3
+ *
4
+ * Handles onboarding flow for first-time users:
5
+ * - GET /api/onboarding/status - Check if onboarding is complete
6
+ * - GET /api/onboarding/git-check - Check if git is installed
7
+ * - POST /api/onboarding/complete - Mark onboarding as complete
8
+ * - POST /api/onboarding/reset - Reset onboarding (hidden feature)
9
+ */
10
+ import { Hono } from "hono";
11
+ import { getOnboardingStatus } from "./onboarding-get-status.route.js";
12
+ import { getGitCheck } from "./onboarding-get-git-check.route.js";
13
+ import { postOnboardingComplete } from "./onboarding-post-complete.route.js";
14
+ import { postOnboardingReset } from "./onboarding-post-reset.route.js";
15
+ /**
16
+ * Creates onboarding routes
17
+ * @param metadataManager - Manager for metadata persistence
18
+ * @returns Hono router with onboarding routes
19
+ */
20
+ export function createOnboardingRoutes(metadataManager) {
21
+ const router = new Hono();
22
+ router.get("/status", (c) => getOnboardingStatus(c, metadataManager));
23
+ router.get("/git-check", (c) => getGitCheck(c));
24
+ router.post("/complete", (c) => postOnboardingComplete(c, metadataManager));
25
+ router.post("/reset", (c) => postOnboardingReset(c, metadataManager));
26
+ return router;
27
+ }
28
+ //# sourceMappingURL=onboarding.routes.js.map
@@ -0,0 +1,38 @@
1
+ import type { Database } from "../../database/database.types.js";
2
+ import type { ProjectTodoStatus } from "@tarsk/shared";
3
+ export interface ProjectTodoRecord {
4
+ id: string;
5
+ projectId: string;
6
+ title: string;
7
+ description: string;
8
+ status: string;
9
+ working: number;
10
+ threadId: string | null;
11
+ createdAt: string;
12
+ updatedAt: string;
13
+ }
14
+ export declare function serializeTodo(row: ProjectTodoRecord): {
15
+ working: boolean;
16
+ id: string;
17
+ projectId: string;
18
+ title: string;
19
+ description: string;
20
+ status: string;
21
+ threadId: string | null;
22
+ createdAt: string;
23
+ updatedAt: string;
24
+ };
25
+ export declare function getTodosByProject(db: Database, projectId: string): Promise<ProjectTodoRecord[]>;
26
+ export declare function getTodoById(db: Database, todoId: string): Promise<ProjectTodoRecord | null>;
27
+ export declare function insertTodo(projectId: string, title: string, description: string): Promise<ProjectTodoRecord>;
28
+ export declare function updateTodo(db: Database, todoId: string, updates: {
29
+ title?: string;
30
+ description?: string;
31
+ status?: ProjectTodoStatus;
32
+ working?: boolean;
33
+ threadId?: string | null;
34
+ }): Promise<ProjectTodoRecord | null>;
35
+ export declare function deleteTodoById(db: Database, todoId: string): Promise<void>;
36
+ export declare function getTodoByThreadId(db: Database, threadId: string): Promise<ProjectTodoRecord | null>;
37
+ export declare function clearWorkingByThreadId(db: Database, threadId: string): Promise<void>;
38
+ //# sourceMappingURL=project-todos.database.d.ts.map
@@ -0,0 +1,91 @@
1
+ import { randomUUID } from "crypto";
2
+ import { getDatabase } from "../../database/database.js";
3
+ export function serializeTodo(row) {
4
+ return {
5
+ ...row,
6
+ working: row.working === 1,
7
+ };
8
+ }
9
+ export async function getTodosByProject(db, projectId) {
10
+ const result = await db.execute({
11
+ sql: `SELECT id, projectId, title, description, status, working, threadId, createdAt, updatedAt
12
+ FROM project_todos WHERE projectId = ? ORDER BY createdAt ASC`,
13
+ args: [projectId],
14
+ });
15
+ return result.rows;
16
+ }
17
+ export async function getTodoById(db, todoId) {
18
+ const result = await db.execute({
19
+ sql: `SELECT id, projectId, title, description, status, working, threadId, createdAt, updatedAt
20
+ FROM project_todos WHERE id = ?`,
21
+ args: [todoId],
22
+ });
23
+ return result.rows[0] ?? null;
24
+ }
25
+ export async function insertTodo(projectId, title, description) {
26
+ const db = await getDatabase();
27
+ const id = randomUUID();
28
+ const now = new Date().toISOString();
29
+ await db.execute({
30
+ sql: `INSERT INTO project_todos (id, projectId, title, description, status, working, createdAt, updatedAt)
31
+ VALUES (?, ?, ?, ?, 'Ready', 0, ?, ?)`,
32
+ args: [id, projectId, title, description, now, now],
33
+ });
34
+ return (await getTodoById(db, id));
35
+ }
36
+ export async function updateTodo(db, todoId, updates) {
37
+ const fields = [];
38
+ const values = [];
39
+ if (updates.title !== undefined) {
40
+ fields.push("title = ?");
41
+ values.push(updates.title);
42
+ }
43
+ if (updates.description !== undefined) {
44
+ fields.push("description = ?");
45
+ values.push(updates.description);
46
+ }
47
+ if (updates.status !== undefined) {
48
+ fields.push("status = ?");
49
+ values.push(updates.status);
50
+ }
51
+ if (updates.working !== undefined) {
52
+ fields.push("working = ?");
53
+ values.push(updates.working ? 1 : 0);
54
+ }
55
+ if (updates.threadId !== undefined) {
56
+ fields.push("threadId = ?");
57
+ values.push(updates.threadId);
58
+ }
59
+ if (fields.length === 0) {
60
+ return getTodoById(db, todoId);
61
+ }
62
+ fields.push("updatedAt = ?");
63
+ const now = new Date().toISOString();
64
+ values.push(now, todoId);
65
+ await db.execute({
66
+ sql: `UPDATE project_todos SET ${fields.join(", ")} WHERE id = ?`,
67
+ args: values,
68
+ });
69
+ return getTodoById(db, todoId);
70
+ }
71
+ export async function deleteTodoById(db, todoId) {
72
+ await db.execute({
73
+ sql: "DELETE FROM project_todos WHERE id = ?",
74
+ args: [todoId],
75
+ });
76
+ }
77
+ export async function getTodoByThreadId(db, threadId) {
78
+ const result = await db.execute({
79
+ sql: `SELECT id, projectId, title, description, status, working, threadId, createdAt, updatedAt
80
+ FROM project_todos WHERE threadId = ? LIMIT 1`,
81
+ args: [threadId],
82
+ });
83
+ return result.rows[0] ?? null;
84
+ }
85
+ export async function clearWorkingByThreadId(db, threadId) {
86
+ await db.execute({
87
+ sql: `UPDATE project_todos SET working = 0, updatedAt = ? WHERE threadId = ?`,
88
+ args: [new Date().toISOString(), threadId],
89
+ });
90
+ }
91
+ //# sourceMappingURL=project-todos.database.js.map
@@ -0,0 +1,4 @@
1
+ import { Hono } from "hono";
2
+ import type { MetadataManager } from "../metadata/metadata.manager.js";
3
+ export declare function createProjectTodosRoutes(metadataManager: MetadataManager): Hono;
4
+ //# sourceMappingURL=project-todos.routes.d.ts.map
@@ -0,0 +1,94 @@
1
+ import { Hono } from "hono";
2
+ import { getDatabase } from "../../database/database.js";
3
+ import { getTodosByProject, insertTodo, updateTodo, deleteTodoById, serializeTodo, } from "./project-todos.database.js";
4
+ import { resolveProviderAndKey, resolveModelForGit, DEFAULT_MODEL_MAP } from "../git/git.utils.js";
5
+ import { completeSimple } from "@mariozechner/pi-ai";
6
+ const VALID_STATUSES = ["Ready", "Plan", "Build", "Test", "Review", "Done"];
7
+ async function generateTodoTitle(description, metadataManager) {
8
+ const prompt = `Generate a concise 5-8 word title for this todo item.
9
+ Return ONLY the title text, nothing else.
10
+
11
+ Todo description: ${description}`;
12
+ try {
13
+ const providerKeys = await metadataManager.getProviderKeys();
14
+ const resolved = await resolveProviderAndKey(providerKeys);
15
+ if (!resolved?.provider.api)
16
+ return description.slice(0, 60);
17
+ const selectedModel = DEFAULT_MODEL_MAP[resolved.provider.name] || "default";
18
+ const resolvedModel = resolveModelForGit(resolved.provider.name, selectedModel, resolved.provider.api);
19
+ const response = await completeSimple(resolvedModel, {
20
+ messages: [{ role: "user", content: prompt, timestamp: Date.now() }],
21
+ }, { apiKey: resolved.apiKey });
22
+ const title = response.content
23
+ .filter((b) => b.type === "text")
24
+ .map((b) => b.text)
25
+ .join("")
26
+ .trim()
27
+ .replace(/^["']|["']$/g, "");
28
+ return title || description.slice(0, 60);
29
+ }
30
+ catch {
31
+ return description.slice(0, 60);
32
+ }
33
+ }
34
+ export function createProjectTodosRoutes(metadataManager) {
35
+ const router = new Hono();
36
+ // GET /api/projects/:projectId/todos
37
+ router.get("/:projectId/todos", async (c) => {
38
+ const projectId = c.req.param("projectId");
39
+ const db = await getDatabase();
40
+ const rows = await getTodosByProject(db, projectId);
41
+ return c.json(rows.map(serializeTodo));
42
+ });
43
+ // POST /api/projects/:projectId/todos
44
+ // Body: { description: string }
45
+ router.post("/:projectId/todos", async (c) => {
46
+ const projectId = c.req.param("projectId");
47
+ const body = await c.req.json();
48
+ if (!body.description?.trim()) {
49
+ return c.json({ error: "description is required" }, 400);
50
+ }
51
+ const title = await generateTodoTitle(body.description.trim(), metadataManager);
52
+ const todo = await insertTodo(projectId, title, body.description.trim());
53
+ return c.json(serializeTodo(todo), 201);
54
+ });
55
+ // PATCH /api/projects/:projectId/todos/:todoId
56
+ // Body: { description?, status?, working? }
57
+ router.patch("/:projectId/todos/:todoId", async (c) => {
58
+ const todoId = c.req.param("todoId");
59
+ const body = await c.req.json();
60
+ const updates = {};
61
+ if (body.description !== undefined) {
62
+ updates.description = body.description.trim();
63
+ updates.working = false; // editing description always resets working
64
+ }
65
+ if (body.status !== undefined) {
66
+ if (!VALID_STATUSES.includes(body.status)) {
67
+ return c.json({ error: `Invalid status: ${body.status}` }, 400);
68
+ }
69
+ updates.status = body.status;
70
+ updates.working = body.working === true;
71
+ }
72
+ else if (body.working !== undefined && body.description === undefined) {
73
+ updates.working = body.working;
74
+ }
75
+ if (body.threadId !== undefined) {
76
+ updates.threadId = body.threadId;
77
+ }
78
+ const db = await getDatabase();
79
+ const updated = await updateTodo(db, todoId, updates);
80
+ if (!updated) {
81
+ return c.json({ error: "Todo not found" }, 404);
82
+ }
83
+ return c.json(serializeTodo(updated));
84
+ });
85
+ // DELETE /api/projects/:projectId/todos/:todoId
86
+ router.delete("/:projectId/todos/:todoId", async (c) => {
87
+ const todoId = c.req.param("todoId");
88
+ const db = await getDatabase();
89
+ await deleteTodoById(db, todoId);
90
+ return c.json({ success: true });
91
+ });
92
+ return router;
93
+ }
94
+ //# sourceMappingURL=project-todos.routes.js.map
@@ -0,0 +1,148 @@
1
+ /**
2
+ * AI Files routes for the REST API
3
+ *
4
+ * Handles listing and editing AI-related files in a project:
5
+ * - GET /api/projects/:id/ai-files - List AI file tree (skills, rules, commands, markdown files)
6
+ * - GET /api/projects/:id/ai-file?path=... - Read file content
7
+ * - PUT /api/projects/:id/ai-file - Write file content
8
+ * - DELETE /api/projects/:id/ai-file?path=... - Delete file or folder
9
+ * - POST /api/projects/:id/ai-files/skill - Create a new skill
10
+ */
11
+ import { type Context } from "hono";
12
+ import { ProjectManager } from "../projects/projects.manager.js";
13
+ export interface AIFileNode {
14
+ id: string;
15
+ name: string;
16
+ type: "file" | "folder";
17
+ path: string;
18
+ children?: AIFileNode[];
19
+ virtual?: boolean;
20
+ }
21
+ /**
22
+ * Build the full AI file tree for a project or thread.
23
+ * - Always shows .agents/skills, .agents/rules, .agents/commands (virtual if missing)
24
+ * - Shows markdown files at root level
25
+ * - Shows folders that contain markdown files
26
+ */
27
+ export declare function buildAIFileTree(projectPath: string): Promise<AIFileNode[]>;
28
+ /**
29
+ * Validate that a file path is safe (no path traversal, within project or thread)
30
+ */
31
+ export declare function validateFilePath(projectPath: string, filePath: string): string | null;
32
+ /**
33
+ * GET /api/projects/:id/ai-files
34
+ */
35
+ export declare function handleGetAIFiles(c: Context, projectManager: ProjectManager): Promise<(Response & import("hono").TypedResponse<{
36
+ error: {
37
+ code: string;
38
+ message: string;
39
+ details?: import("hono/utils/types").JSONValue | undefined;
40
+ timestamp: string;
41
+ };
42
+ }, any, "json">) | (Response & import("hono").TypedResponse<{
43
+ nodes: {
44
+ id: string;
45
+ name: string;
46
+ type: "file" | "folder";
47
+ path: string;
48
+ children?: /*elided*/ any[] | undefined;
49
+ virtual?: boolean | undefined;
50
+ }[];
51
+ }, import("hono/utils/http-status").ContentfulStatusCode, "json">)>;
52
+ /**
53
+ * GET /api/projects/:id/ai-file?path=...
54
+ */
55
+ export declare function handleGetAIFile(c: Context, projectManager: ProjectManager): Promise<(Response & import("hono").TypedResponse<{
56
+ error: {
57
+ code: string;
58
+ message: string;
59
+ details?: import("hono/utils/types").JSONValue | undefined;
60
+ timestamp: string;
61
+ };
62
+ }, any, "json">) | (Response & import("hono").TypedResponse<{
63
+ error: {
64
+ code: string;
65
+ message: string;
66
+ };
67
+ }, 400, "json">) | (Response & import("hono").TypedResponse<{
68
+ content: string;
69
+ path: string;
70
+ }, import("hono/utils/http-status").ContentfulStatusCode, "json">) | (Response & import("hono").TypedResponse<{
71
+ error: {
72
+ code: string;
73
+ message: string;
74
+ };
75
+ }, 404, "json">)>;
76
+ /**
77
+ * PUT /api/projects/:id/ai-file
78
+ * Body: { path: string, content: string }
79
+ */
80
+ export declare function handleSaveAIFile(c: Context, projectManager: ProjectManager): Promise<(Response & import("hono").TypedResponse<{
81
+ error: {
82
+ code: string;
83
+ message: string;
84
+ details?: import("hono/utils/types").JSONValue | undefined;
85
+ timestamp: string;
86
+ };
87
+ }, any, "json">) | (Response & import("hono").TypedResponse<{
88
+ error: {
89
+ code: string;
90
+ message: string;
91
+ };
92
+ }, 400, "json">) | (Response & import("hono").TypedResponse<{
93
+ success: true;
94
+ path: string;
95
+ }, import("hono/utils/http-status").ContentfulStatusCode, "json">)>;
96
+ /**
97
+ * DELETE /api/projects/:id/ai-file?path=...
98
+ * Deletes a file or folder at the specified path
99
+ */
100
+ export declare function handleDeleteAIFile(c: Context, projectManager: ProjectManager): Promise<(Response & import("hono").TypedResponse<{
101
+ error: {
102
+ code: string;
103
+ message: string;
104
+ details?: import("hono/utils/types").JSONValue | undefined;
105
+ timestamp: string;
106
+ };
107
+ }, any, "json">) | (Response & import("hono").TypedResponse<{
108
+ error: {
109
+ code: string;
110
+ message: string;
111
+ };
112
+ }, 400, "json">) | (Response & import("hono").TypedResponse<{
113
+ error: {
114
+ code: string;
115
+ message: string;
116
+ };
117
+ }, 404, "json">) | (Response & import("hono").TypedResponse<{
118
+ success: true;
119
+ path: string;
120
+ }, import("hono/utils/http-status").ContentfulStatusCode, "json">)>;
121
+ /**
122
+ * POST /api/projects/:id/ai-files/skill
123
+ * Body: { name: string, description: string, isGlobal?: boolean }
124
+ * Creates .agents/skills/{name}/SKILL.md
125
+ */
126
+ export declare function handleCreateSkill(c: Context, projectManager: ProjectManager): Promise<(Response & import("hono").TypedResponse<{
127
+ error: {
128
+ code: string;
129
+ message: string;
130
+ details?: import("hono/utils/types").JSONValue | undefined;
131
+ timestamp: string;
132
+ };
133
+ }, any, "json">) | (Response & import("hono").TypedResponse<{
134
+ error: {
135
+ code: string;
136
+ message: string;
137
+ };
138
+ }, 400, "json">) | (Response & import("hono").TypedResponse<{
139
+ error: {
140
+ code: string;
141
+ message: string;
142
+ };
143
+ }, 409, "json">) | (Response & import("hono").TypedResponse<{
144
+ success: true;
145
+ path: string;
146
+ content: string;
147
+ }, import("hono/utils/http-status").ContentfulStatusCode, "json">)>;
148
+ //# sourceMappingURL=projects-ai-files.route.d.ts.map