spec-cat 0.1.63 → 0.1.65

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 (271) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/B-bFNWCF.js +43 -0
  3. package/.output/public/_nuxt/{D4LyIv_t.js → BEWSHKZd.js} +1 -1
  4. package/.output/public/_nuxt/{Su-Cl_JF.js → BHhMtuRK.js} +1 -1
  5. package/.output/public/_nuxt/{DwpuOtAP.js → BwRpECPL.js} +1 -1
  6. package/.output/public/_nuxt/{FfyCVKRU.js → CC_9aMCT.js} +1 -1
  7. package/.output/public/_nuxt/CHHbeXzh.js +1 -0
  8. package/.output/public/_nuxt/{DIOhMCOf.js → CzV__9yP.js} +3 -3
  9. package/.output/public/_nuxt/{Bz2rU2zs.js → DWDrIutw.js} +1 -1
  10. package/.output/public/_nuxt/D_4Ow2w2.js +1 -0
  11. package/.output/public/_nuxt/D_T_F7lf.js +1 -0
  12. package/.output/public/_nuxt/{DPOGSCeV.js → DqFq1MXh.js} +1 -1
  13. package/.output/public/_nuxt/YzuyFhrD.js +174 -0
  14. package/.output/public/_nuxt/builds/latest.json +1 -1
  15. package/.output/public/_nuxt/builds/meta/cdc4ded8-9ff7-4e22-abbe-3b8c94caa781.json +1 -0
  16. package/.output/public/_nuxt/default.Cyeq1Er8.css +1 -0
  17. package/.output/public/_nuxt/entry.uBSFaL6A.css +1 -0
  18. package/.output/public/_nuxt/{useTheme.Cny4Z64J.css → useTheme.B4wINCoW.css} +1 -1
  19. package/.output/public/_nuxt/uyJF9wDo.js +58 -0
  20. package/.output/server/chunks/_/aiProviderRegistry.mjs +1 -2
  21. package/.output/server/chunks/_/aiProviderRegistry.mjs.map +1 -1
  22. package/.output/server/chunks/_/aiProviderSelection.mjs +2 -2
  23. package/.output/server/chunks/_/chatGit.mjs +1 -2
  24. package/.output/server/chunks/_/chatGit.mjs.map +1 -1
  25. package/.output/server/chunks/_/claudeProvider.mjs +1 -215
  26. package/.output/server/chunks/_/claudeProvider.mjs.map +1 -1
  27. package/.output/server/chunks/_/claudeService.mjs +50 -54
  28. package/.output/server/chunks/_/claudeService.mjs.map +1 -1
  29. package/.output/server/chunks/_/codexProvider.mjs +47 -812
  30. package/.output/server/chunks/_/codexProvider.mjs.map +1 -1
  31. package/.output/server/chunks/_/git.mjs +1 -2
  32. package/.output/server/chunks/_/git.mjs.map +1 -1
  33. package/.output/server/chunks/_/gitApiHelpers.mjs +1 -1
  34. package/.output/server/chunks/_/gitBranchOperations.mjs +1 -1
  35. package/.output/server/chunks/_/interactiveProviderQuery.mjs +160 -0
  36. package/.output/server/chunks/_/interactiveProviderQuery.mjs.map +1 -0
  37. package/.output/server/chunks/_/jobPersister.mjs +37 -6
  38. package/.output/server/chunks/_/jobPersister.mjs.map +1 -1
  39. package/.output/server/chunks/_/jobQueue.mjs +430 -278
  40. package/.output/server/chunks/_/jobQueue.mjs.map +1 -1
  41. package/.output/server/chunks/_/terminalSessions.mjs +582 -0
  42. package/.output/server/chunks/_/terminalSessions.mjs.map +1 -0
  43. package/.output/server/chunks/_/worktreeSetup.mjs +98 -0
  44. package/.output/server/chunks/_/worktreeSetup.mjs.map +1 -0
  45. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  46. package/.output/server/chunks/build/client.precomputed.mjs.map +1 -1
  47. package/.output/server/chunks/nitro/nitro.mjs +1227 -620
  48. package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
  49. package/.output/server/chunks/routes/_ws.mjs +21 -111
  50. package/.output/server/chunks/routes/_ws.mjs.map +1 -1
  51. package/.output/server/chunks/routes/api/ai/providers.get.mjs +3 -1
  52. package/.output/server/chunks/routes/api/ai/providers.get.mjs.map +1 -1
  53. package/.output/server/chunks/routes/api/chat/compare.get.mjs +4 -5
  54. package/.output/server/chunks/routes/api/chat/compare.get.mjs.map +1 -1
  55. package/.output/server/chunks/routes/api/chat/context.get.mjs +4 -2
  56. package/.output/server/chunks/routes/api/chat/context.get.mjs.map +1 -1
  57. package/.output/server/chunks/routes/api/chat/finalize.post.mjs +11 -7
  58. package/.output/server/chunks/routes/api/chat/finalize.post.mjs.map +1 -1
  59. package/.output/server/chunks/routes/api/chat/generate-commit-message.post.mjs +26 -29
  60. package/.output/server/chunks/routes/api/chat/generate-commit-message.post.mjs.map +1 -1
  61. package/.output/server/chunks/routes/api/chat/preview-sync.post.mjs +4 -5
  62. package/.output/server/chunks/routes/api/chat/preview-sync.post.mjs.map +1 -1
  63. package/.output/server/chunks/routes/api/chat/preview.delete.mjs +4 -5
  64. package/.output/server/chunks/routes/api/chat/preview.delete.mjs.map +1 -1
  65. package/.output/server/chunks/routes/api/chat/preview.post.mjs +4 -6
  66. package/.output/server/chunks/routes/api/chat/preview.post.mjs.map +1 -1
  67. package/.output/server/chunks/routes/api/chat/rebase.post.mjs +4 -7
  68. package/.output/server/chunks/routes/api/chat/rebase.post.mjs.map +1 -1
  69. package/.output/server/chunks/routes/api/chat/worktree-commit.post.mjs +4 -6
  70. package/.output/server/chunks/routes/api/chat/worktree-commit.post.mjs.map +1 -1
  71. package/.output/server/chunks/routes/api/chat/worktree.delete.mjs +11 -4
  72. package/.output/server/chunks/routes/api/chat/worktree.delete.mjs.map +1 -1
  73. package/.output/server/chunks/routes/api/chat/worktree.post.mjs +4 -6
  74. package/.output/server/chunks/routes/api/chat/worktree.post.mjs.map +1 -1
  75. package/.output/server/chunks/routes/api/conversations/_conversationId/archive.post.mjs +10 -9
  76. package/.output/server/chunks/routes/api/conversations/_conversationId/archive.post.mjs.map +1 -1
  77. package/.output/server/chunks/routes/api/conversations/archives/_archiveId/restore.post.mjs +4 -7
  78. package/.output/server/chunks/routes/api/conversations/archives/_archiveId/restore.post.mjs.map +1 -1
  79. package/.output/server/chunks/routes/api/conversations/archives/_archiveId_.delete.mjs +4 -7
  80. package/.output/server/chunks/routes/api/conversations/archives/_archiveId_.delete.mjs.map +1 -1
  81. package/.output/server/chunks/routes/api/conversations/archives.delete.mjs +40 -0
  82. package/.output/server/chunks/routes/api/conversations/archives.delete.mjs.map +1 -0
  83. package/.output/server/chunks/routes/api/conversations/archives.get.mjs +4 -7
  84. package/.output/server/chunks/routes/api/conversations/archives.get.mjs.map +1 -1
  85. package/.output/server/chunks/routes/api/conversations/update.post.mjs +4 -7
  86. package/.output/server/chunks/routes/api/conversations/update.post.mjs.map +1 -1
  87. package/.output/server/chunks/routes/api/conversations.get.mjs +4 -7
  88. package/.output/server/chunks/routes/api/conversations.get.mjs.map +1 -1
  89. package/.output/server/chunks/routes/api/conversations.post.mjs +4 -7
  90. package/.output/server/chunks/routes/api/conversations.post.mjs.map +1 -1
  91. package/.output/server/chunks/routes/api/cwd.get.mjs +4 -2
  92. package/.output/server/chunks/routes/api/cwd.get.mjs.map +1 -1
  93. package/.output/server/chunks/routes/api/git/branch-rename.post.mjs +3 -4
  94. package/.output/server/chunks/routes/api/git/branch-rename.post.mjs.map +1 -1
  95. package/.output/server/chunks/routes/api/git/branch.delete.mjs +4 -5
  96. package/.output/server/chunks/routes/api/git/branch.delete.mjs.map +1 -1
  97. package/.output/server/chunks/routes/api/git/branches.get.mjs +4 -6
  98. package/.output/server/chunks/routes/api/git/branches.get.mjs.map +1 -1
  99. package/.output/server/chunks/routes/api/git/checkout.post.mjs +4 -5
  100. package/.output/server/chunks/routes/api/git/checkout.post.mjs.map +1 -1
  101. package/.output/server/chunks/routes/api/git/cherry-pick.post.mjs +3 -4
  102. package/.output/server/chunks/routes/api/git/cherry-pick.post.mjs.map +1 -1
  103. package/.output/server/chunks/routes/api/git/clean.post.mjs +3 -4
  104. package/.output/server/chunks/routes/api/git/clean.post.mjs.map +1 -1
  105. package/.output/server/chunks/routes/api/git/commit/_id_.get.mjs +3 -4
  106. package/.output/server/chunks/routes/api/git/commit/_id_.get.mjs.map +1 -1
  107. package/.output/server/chunks/routes/api/git/commit.post.mjs +4 -5
  108. package/.output/server/chunks/routes/api/git/commit.post.mjs.map +1 -1
  109. package/.output/server/chunks/routes/api/git/diff.get.mjs +4 -5
  110. package/.output/server/chunks/routes/api/git/diff.get.mjs.map +1 -1
  111. package/.output/server/chunks/routes/api/git/fetch.post.mjs +3 -4
  112. package/.output/server/chunks/routes/api/git/fetch.post.mjs.map +1 -1
  113. package/.output/server/chunks/routes/api/git/file-diff.get.mjs +4 -5
  114. package/.output/server/chunks/routes/api/git/file-diff.get.mjs.map +1 -1
  115. package/.output/server/chunks/routes/api/git/graph.get.mjs +4 -5
  116. package/.output/server/chunks/routes/api/git/graph.get.mjs.map +1 -1
  117. package/.output/server/chunks/routes/api/git/log.get.mjs +4 -5
  118. package/.output/server/chunks/routes/api/git/log.get.mjs.map +1 -1
  119. package/.output/server/chunks/routes/api/git/merge-base.get.mjs +4 -5
  120. package/.output/server/chunks/routes/api/git/merge-base.get.mjs.map +1 -1
  121. package/.output/server/chunks/routes/api/git/merge.post.mjs +3 -4
  122. package/.output/server/chunks/routes/api/git/merge.post.mjs.map +1 -1
  123. package/.output/server/chunks/routes/api/git/pull.post.mjs +3 -4
  124. package/.output/server/chunks/routes/api/git/pull.post.mjs.map +1 -1
  125. package/.output/server/chunks/routes/api/git/push.post.mjs +3 -4
  126. package/.output/server/chunks/routes/api/git/push.post.mjs.map +1 -1
  127. package/.output/server/chunks/routes/api/git/rebase.post.mjs +3 -4
  128. package/.output/server/chunks/routes/api/git/rebase.post.mjs.map +1 -1
  129. package/.output/server/chunks/routes/api/git/remote.delete.mjs +3 -4
  130. package/.output/server/chunks/routes/api/git/remote.delete.mjs.map +1 -1
  131. package/.output/server/chunks/routes/api/git/remote.post.mjs +3 -4
  132. package/.output/server/chunks/routes/api/git/remote.post.mjs.map +1 -1
  133. package/.output/server/chunks/routes/api/git/remote.put.mjs +3 -4
  134. package/.output/server/chunks/routes/api/git/remote.put.mjs.map +1 -1
  135. package/.output/server/chunks/routes/api/git/remotes.get.mjs +3 -4
  136. package/.output/server/chunks/routes/api/git/remotes.get.mjs.map +1 -1
  137. package/.output/server/chunks/routes/api/git/reset.post.mjs +3 -4
  138. package/.output/server/chunks/routes/api/git/reset.post.mjs.map +1 -1
  139. package/.output/server/chunks/routes/api/git/revert.post.mjs +3 -4
  140. package/.output/server/chunks/routes/api/git/revert.post.mjs.map +1 -1
  141. package/.output/server/chunks/routes/api/git/show.get.mjs +4 -5
  142. package/.output/server/chunks/routes/api/git/show.get.mjs.map +1 -1
  143. package/.output/server/chunks/routes/api/git/stage.post.mjs +4 -5
  144. package/.output/server/chunks/routes/api/git/stage.post.mjs.map +1 -1
  145. package/.output/server/chunks/routes/api/git/stash-apply.post.mjs +3 -4
  146. package/.output/server/chunks/routes/api/git/stash-apply.post.mjs.map +1 -1
  147. package/.output/server/chunks/routes/api/git/stash-branch.post.mjs +3 -4
  148. package/.output/server/chunks/routes/api/git/stash-branch.post.mjs.map +1 -1
  149. package/.output/server/chunks/routes/api/git/stash-drop.post.mjs +3 -4
  150. package/.output/server/chunks/routes/api/git/stash-drop.post.mjs.map +1 -1
  151. package/.output/server/chunks/routes/api/git/stash-pop.post.mjs +3 -4
  152. package/.output/server/chunks/routes/api/git/stash-pop.post.mjs.map +1 -1
  153. package/.output/server/chunks/routes/api/git/stash.get.mjs +3 -4
  154. package/.output/server/chunks/routes/api/git/stash.get.mjs.map +1 -1
  155. package/.output/server/chunks/routes/api/git/stash.post.mjs +3 -4
  156. package/.output/server/chunks/routes/api/git/stash.post.mjs.map +1 -1
  157. package/.output/server/chunks/routes/api/git/state.get.mjs +3 -4
  158. package/.output/server/chunks/routes/api/git/state.get.mjs.map +1 -1
  159. package/.output/server/chunks/routes/api/git/status.get.mjs +4 -5
  160. package/.output/server/chunks/routes/api/git/status.get.mjs.map +1 -1
  161. package/.output/server/chunks/routes/api/git/tag/_name_.get.mjs +3 -4
  162. package/.output/server/chunks/routes/api/git/tag/_name_.get.mjs.map +1 -1
  163. package/.output/server/chunks/routes/api/git/tag-push.post.mjs +3 -4
  164. package/.output/server/chunks/routes/api/git/tag-push.post.mjs.map +1 -1
  165. package/.output/server/chunks/routes/api/git/tag.delete.mjs +3 -4
  166. package/.output/server/chunks/routes/api/git/tag.delete.mjs.map +1 -1
  167. package/.output/server/chunks/routes/api/git/tag.post.mjs +3 -4
  168. package/.output/server/chunks/routes/api/git/tag.post.mjs.map +1 -1
  169. package/.output/server/chunks/routes/api/git/unstage.post.mjs +4 -5
  170. package/.output/server/chunks/routes/api/git/unstage.post.mjs.map +1 -1
  171. package/.output/server/chunks/routes/api/index.get.mjs +7 -4
  172. package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
  173. package/.output/server/chunks/routes/api/index.get2.mjs +4 -2
  174. package/.output/server/chunks/routes/api/index.get2.mjs.map +1 -1
  175. package/.output/server/chunks/routes/api/index.get3.mjs +4 -2
  176. package/.output/server/chunks/routes/api/index.get3.mjs.map +1 -1
  177. package/.output/server/chunks/routes/api/index.post.mjs +19 -16
  178. package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
  179. package/.output/server/chunks/routes/api/index.post2.mjs +4 -6
  180. package/.output/server/chunks/routes/api/index.post2.mjs.map +1 -1
  181. package/.output/server/chunks/routes/api/jobs/_id/cancel.post.mjs +6 -3
  182. package/.output/server/chunks/routes/api/jobs/_id/cancel.post.mjs.map +1 -1
  183. package/.output/server/chunks/routes/api/jobs/_id_.get.mjs +7 -4
  184. package/.output/server/chunks/routes/api/jobs/_id_.get.mjs.map +1 -1
  185. package/.output/server/chunks/routes/api/rebase/abort.post.mjs +4 -2
  186. package/.output/server/chunks/routes/api/rebase/abort.post.mjs.map +1 -1
  187. package/.output/server/chunks/routes/api/rebase/ai-resolve.post.mjs +19 -105
  188. package/.output/server/chunks/routes/api/rebase/ai-resolve.post.mjs.map +1 -1
  189. package/.output/server/chunks/routes/api/rebase/conflicts.get.mjs +3 -1
  190. package/.output/server/chunks/routes/api/rebase/conflicts.get.mjs.map +1 -1
  191. package/.output/server/chunks/routes/api/rebase/continue-sync.post.mjs +4 -2
  192. package/.output/server/chunks/routes/api/rebase/continue-sync.post.mjs.map +1 -1
  193. package/.output/server/chunks/routes/api/rebase/continue.post.mjs +71 -73
  194. package/.output/server/chunks/routes/api/rebase/continue.post.mjs.map +1 -1
  195. package/.output/server/chunks/routes/api/rebase/resolve.put.mjs +3 -1
  196. package/.output/server/chunks/routes/api/rebase/resolve.put.mjs.map +1 -1
  197. package/.output/server/chunks/routes/api/repository/status.get.mjs +4 -5
  198. package/.output/server/chunks/routes/api/repository/status.get.mjs.map +1 -1
  199. package/.output/server/chunks/routes/api/settings.get.mjs +6 -5
  200. package/.output/server/chunks/routes/api/settings.get.mjs.map +1 -1
  201. package/.output/server/chunks/routes/api/settings.post.mjs +5 -3
  202. package/.output/server/chunks/routes/api/settings.post.mjs.map +1 -1
  203. package/.output/server/chunks/routes/api/skills/_skillId/prompt.post.mjs +3 -1
  204. package/.output/server/chunks/routes/api/skills/_skillId/prompt.post.mjs.map +1 -1
  205. package/.output/server/chunks/routes/api/specs/_featureId/_...filename_.get.mjs +3 -1
  206. package/.output/server/chunks/routes/api/specs/_featureId/_...filename_.get.mjs.map +1 -1
  207. package/.output/server/chunks/routes/api/specs/_featureId/_...filename_.put.mjs +3 -1
  208. package/.output/server/chunks/routes/api/specs/_featureId/_...filename_.put.mjs.map +1 -1
  209. package/.output/server/chunks/routes/api/specs/features.get.mjs +3 -1
  210. package/.output/server/chunks/routes/api/specs/features.get.mjs.map +1 -1
  211. package/.output/server/chunks/routes/api/specs/reindex.post.mjs +4 -2
  212. package/.output/server/chunks/routes/api/specs/reindex.post.mjs.map +1 -1
  213. package/.output/server/chunks/routes/api/specs/search.get.mjs +4 -2
  214. package/.output/server/chunks/routes/api/specs/search.get.mjs.map +1 -1
  215. package/.output/server/chunks/routes/api/specs/status.get.mjs +4 -2
  216. package/.output/server/chunks/routes/api/specs/status.get.mjs.map +1 -1
  217. package/.output/server/chunks/routes/api/specs/traceability/_featureId_.get.mjs +4 -2
  218. package/.output/server/chunks/routes/api/specs/traceability/_featureId_.get.mjs.map +1 -1
  219. package/.output/server/chunks/routes/api/worktrees/_name/switch.post.mjs +4 -2
  220. package/.output/server/chunks/routes/api/worktrees/_name/switch.post.mjs.map +1 -1
  221. package/.output/server/chunks/routes/api/worktrees/_name_.delete.mjs +3 -1
  222. package/.output/server/chunks/routes/api/worktrees/_name_.delete.mjs.map +1 -1
  223. package/.output/server/chunks/routes/git-watcher-ws.mjs +4 -2
  224. package/.output/server/chunks/routes/git-watcher-ws.mjs.map +1 -1
  225. package/.output/server/chunks/routes/renderer.mjs +4 -2
  226. package/.output/server/chunks/routes/terminal-ws.mjs +230 -0
  227. package/.output/server/chunks/routes/terminal-ws.mjs.map +1 -0
  228. package/.output/server/index.mjs +4 -2
  229. package/.output/server/index.mjs.map +1 -1
  230. package/.output/server/node_modules/node-pty/build/Makefile +369 -0
  231. package/.output/server/node_modules/node-pty/build/Release/pty.node +0 -0
  232. package/.output/server/node_modules/node-pty/build/binding.Makefile +6 -0
  233. package/.output/server/node_modules/node-pty/build/config.gypi +513 -0
  234. package/.output/server/node_modules/node-pty/build/pty.target.mk +168 -0
  235. package/.output/server/node_modules/node-pty/lib/eventEmitter2.js +47 -0
  236. package/.output/server/node_modules/node-pty/lib/index.js +52 -0
  237. package/.output/server/node_modules/node-pty/lib/shared/conout.js +11 -0
  238. package/.output/server/node_modules/node-pty/lib/terminal.js +190 -0
  239. package/.output/server/node_modules/node-pty/lib/unixTerminal.js +346 -0
  240. package/.output/server/node_modules/node-pty/lib/utils.js +39 -0
  241. package/.output/server/node_modules/node-pty/lib/windowsConoutConnection.js +125 -0
  242. package/.output/server/node_modules/node-pty/lib/windowsPtyAgent.js +320 -0
  243. package/.output/server/node_modules/node-pty/lib/windowsTerminal.js +199 -0
  244. package/.output/server/node_modules/node-pty/package.json +64 -0
  245. package/.output/server/package.json +2 -1
  246. package/package.json +6 -1
  247. package/.output/public/_nuxt/2zamijve.js +0 -1
  248. package/.output/public/_nuxt/BEjIzkrM.js +0 -85
  249. package/.output/public/_nuxt/BaSsfm-t.js +0 -36
  250. package/.output/public/_nuxt/BjdLSVUw.js +0 -1
  251. package/.output/public/_nuxt/DeqM2TrP.js +0 -1
  252. package/.output/public/_nuxt/builds/meta/74089fa1-2fbb-4792-94aa-7535d2aec557.json +0 -1
  253. package/.output/public/_nuxt/default.DKSPicGu.css +0 -1
  254. package/.output/public/_nuxt/entry.BUDfUMkE.css +0 -1
  255. package/.output/public/_nuxt/zrVRZSxq.js +0 -64
  256. package/.output/server/chunks/_/baseBranch.mjs +0 -137
  257. package/.output/server/chunks/_/baseBranch.mjs.map +0 -1
  258. package/.output/server/chunks/_/claude.mjs +0 -164
  259. package/.output/server/chunks/_/claude.mjs.map +0 -1
  260. package/.output/server/chunks/_/conversationStore.mjs +0 -257
  261. package/.output/server/chunks/_/conversationStore.mjs.map +0 -1
  262. package/.output/server/chunks/_/geminiProvider.mjs +0 -372
  263. package/.output/server/chunks/_/geminiProvider.mjs.map +0 -1
  264. package/.output/server/chunks/_/gitExec.mjs +0 -48
  265. package/.output/server/chunks/_/gitExec.mjs.map +0 -1
  266. package/.output/server/chunks/_/providerProcessError.mjs +0 -163
  267. package/.output/server/chunks/_/providerProcessError.mjs.map +0 -1
  268. package/.output/server/chunks/_/uiAdapter.mjs +0 -421
  269. package/.output/server/chunks/_/uiAdapter.mjs.map +0 -1
  270. package/.output/server/chunks/routes/api/chat.post.mjs +0 -276
  271. package/.output/server/chunks/routes/api/chat.post.mjs.map +0 -1
@@ -1,421 +0,0 @@
1
- function extractSessionId(message) {
2
- const eventType = typeof message.type === "string" ? message.type.toLowerCase() : "";
3
- const subtype = typeof message.subtype === "string" ? message.subtype.toLowerCase() : "";
4
- const isErrorLike = eventType.includes("error") || eventType.includes("failed") || subtype.startsWith("error");
5
- if (isErrorLike) {
6
- return null;
7
- }
8
- const sessionIdKeys = ["thread_id", "threadId", "session_id", "sessionId", "conversation_id", "conversationId"];
9
- for (const key of sessionIdKeys) {
10
- const value = message[key];
11
- if (typeof value === "string" && value.length > 0) {
12
- return value;
13
- }
14
- }
15
- const response = message.response;
16
- if (response && typeof response === "object" && !Array.isArray(response)) {
17
- const responseObj = response;
18
- for (const key of sessionIdKeys) {
19
- const value = responseObj[key];
20
- if (typeof value === "string" && value.length > 0) {
21
- return value;
22
- }
23
- }
24
- }
25
- return null;
26
- }
27
- function normalizeTurnResultSubtype(value, isError) {
28
- if (isError) return "error";
29
- const raw = typeof value === "string" ? value.toLowerCase() : "";
30
- if (raw === "success") return "success";
31
- if (raw === "max_turns" || raw === "error_max_turns") return "max_turns";
32
- if (raw.startsWith("error")) return "error";
33
- return "success";
34
- }
35
- function stringifyClaudeErrorEntry(entry) {
36
- if (typeof entry === "string") {
37
- return entry.trim();
38
- }
39
- if (!entry || typeof entry !== "object") {
40
- return "";
41
- }
42
- const obj = entry;
43
- if (typeof obj.message === "string" && obj.message.trim()) {
44
- return obj.message.trim();
45
- }
46
- try {
47
- return JSON.stringify(obj);
48
- } catch {
49
- return String(entry);
50
- }
51
- }
52
- function buildClaudeResultErrorMessage(event) {
53
- const errors = event.errors;
54
- if (Array.isArray(errors) && errors.length > 0) {
55
- const lines = [];
56
- for (const entry of errors) {
57
- const text = stringifyClaudeErrorEntry(entry);
58
- if (text) {
59
- lines.push(text);
60
- }
61
- }
62
- if (lines.length > 0) {
63
- const unique = Array.from(new Set(lines.map((line) => line.trim()))).filter(Boolean);
64
- if (unique.length > 0) {
65
- return unique.slice(0, 3).join("\n");
66
- }
67
- }
68
- }
69
- const directError = stringifyClaudeErrorEntry(event.error);
70
- if (directError) {
71
- return directError;
72
- }
73
- const directMessage = stringifyClaudeErrorEntry(event.message);
74
- if (directMessage) {
75
- return directMessage;
76
- }
77
- const nestedResult = event.result;
78
- if (nestedResult && typeof nestedResult === "object" && !Array.isArray(nestedResult)) {
79
- const nested = nestedResult;
80
- const nestedErrors = nested.errors;
81
- if (Array.isArray(nestedErrors) && nestedErrors.length > 0) {
82
- const lines = [];
83
- for (const entry of nestedErrors) {
84
- const text = stringifyClaudeErrorEntry(entry);
85
- if (text) {
86
- lines.push(text);
87
- }
88
- }
89
- if (lines.length > 0) {
90
- const unique = Array.from(new Set(lines.map((line) => line.trim()))).filter(Boolean);
91
- if (unique.length > 0) {
92
- return unique.slice(0, 3).join("\n");
93
- }
94
- }
95
- }
96
- const nestedError = stringifyClaudeErrorEntry(nested.error);
97
- if (nestedError) {
98
- return nestedError;
99
- }
100
- const nestedMessage = stringifyClaudeErrorEntry(nested.message);
101
- if (nestedMessage) {
102
- return nestedMessage;
103
- }
104
- }
105
- return null;
106
- }
107
- function extractClaudeAssistantText(event) {
108
- const message = event.message;
109
- if (!message || typeof message !== "object" || Array.isArray(message)) {
110
- return "";
111
- }
112
- const content = message.content;
113
- if (!Array.isArray(content)) {
114
- return "";
115
- }
116
- const chunks = [];
117
- for (const block of content) {
118
- if (!block || typeof block !== "object") {
119
- continue;
120
- }
121
- const record = block;
122
- if (record.type === "text" && typeof record.text === "string" && record.text.trim()) {
123
- chunks.push(record.text);
124
- }
125
- }
126
- return chunks.join("");
127
- }
128
- function transformClaudeEvent(event) {
129
- var _a;
130
- const canonicalTypes = [
131
- "session_init",
132
- "block_start",
133
- "block_delta",
134
- "block_end",
135
- "tool_result",
136
- "permission_request",
137
- "turn_result",
138
- "error",
139
- "done"
140
- ];
141
- if (canonicalTypes.includes(event.type)) {
142
- return [event];
143
- }
144
- const sessionId = extractSessionId(event) || void 0;
145
- const events = [];
146
- if (event.type === "stream_event" && event.event && typeof event.event === "object") {
147
- const streamEvent = event.event;
148
- if (streamEvent.type === "content_block_start" && streamEvent.content_block && typeof streamEvent.content_block === "object") {
149
- const block = streamEvent.content_block;
150
- const blockType = block.type;
151
- const normalizedBlockType = blockType === "server_tool_use" ? "tool_use" : blockType;
152
- events.push({
153
- type: "block_start",
154
- sessionId,
155
- blockId: block.id || `blk-${Date.now()}-${Math.random().toString(36).substring(2, 6)}`,
156
- blockType: normalizedBlockType,
157
- index: streamEvent.index,
158
- name: block.name,
159
- toolUseId: block.id,
160
- text: block.text,
161
- thinking: block.thinking
162
- });
163
- }
164
- if (streamEvent.type === "content_block_delta" && streamEvent.delta && typeof streamEvent.delta === "object") {
165
- const delta = streamEvent.delta;
166
- events.push({
167
- type: "block_delta",
168
- sessionId,
169
- blockId: "",
170
- // Client matches by index/type if ID is missing in delta
171
- index: streamEvent.index,
172
- text: delta.text,
173
- thinking: delta.thinking,
174
- partialJson: delta.partial_json
175
- });
176
- }
177
- if (streamEvent.type === "content_block_stop") {
178
- events.push({
179
- type: "block_end",
180
- sessionId,
181
- blockId: "",
182
- index: streamEvent.index
183
- });
184
- }
185
- }
186
- if (event.type === "tool_result") {
187
- events.push({
188
- type: "tool_result",
189
- sessionId,
190
- toolUseId: event.tool_use_id,
191
- content: event.content,
192
- isError: !!event.is_error
193
- });
194
- }
195
- if (event.type === "assistant") {
196
- const assistantText = extractClaudeAssistantText(event);
197
- if (assistantText) {
198
- events.push({
199
- type: "block_start",
200
- sessionId,
201
- blockId: `blk-${Date.now()}-${Math.random().toString(36).substring(2, 6)}`,
202
- blockType: "text",
203
- text: assistantText
204
- });
205
- events.push({
206
- type: "block_end",
207
- sessionId,
208
- blockId: ""
209
- });
210
- }
211
- }
212
- if (event.type === "permission_request" && event.permission && typeof event.permission === "object") {
213
- const perm = event.permission;
214
- events.push({
215
- type: "permission_request",
216
- sessionId,
217
- tool: perm.tool || "Permission",
218
- description: perm.description,
219
- input: perm
220
- });
221
- }
222
- if (event.type === "result") {
223
- const usage = event.usage;
224
- const isError = Boolean(event.is_error);
225
- events.push({
226
- type: "turn_result",
227
- sessionId,
228
- subtype: normalizeTurnResultSubtype(event.subtype, isError),
229
- totalCostUsd: event.total_cost_usd,
230
- durationMs: event.duration_ms,
231
- numTurns: event.num_turns,
232
- usage: usage ? {
233
- inputTokens: usage.input_tokens || 0,
234
- outputTokens: usage.output_tokens || 0,
235
- cacheCreationInputTokens: usage.cache_creation_input_tokens || 0,
236
- cacheReadInputTokens: usage.cache_read_input_tokens || 0
237
- } : void 0
238
- });
239
- if (isError) {
240
- const errorMessage = buildClaudeResultErrorMessage(event) || "Provider reported an execution error.";
241
- events.push({
242
- type: "error",
243
- sessionId,
244
- error: errorMessage
245
- });
246
- }
247
- }
248
- if (event.type === "system" && event.subtype === "init") {
249
- events.push({
250
- type: "session_init",
251
- sessionId,
252
- model: event.model,
253
- tools: event.tools || [],
254
- permissionMode: event.permissionMode || "",
255
- cwd: event.cwd || ""
256
- });
257
- }
258
- if (event.type === "user" && (event.message || event.content)) {
259
- const content = ((_a = event.message) == null ? void 0 : _a.content) || event.content;
260
- if (Array.isArray(content)) {
261
- for (const block of content) {
262
- if ((block == null ? void 0 : block.type) === "tool_result" && (block == null ? void 0 : block.is_error) && typeof block.content === "string") {
263
- const errorContent = block.content;
264
- if (errorContent.includes("requested permissions") || errorContent.includes("haven't granted")) {
265
- const tools = parseToolsFromError(errorContent);
266
- events.push({
267
- type: "permission_request",
268
- sessionId,
269
- tool: tools[0] || "Permission",
270
- tools,
271
- description: errorContent
272
- });
273
- }
274
- }
275
- }
276
- }
277
- }
278
- return events;
279
- }
280
- function transformCodexEvent(event) {
281
- const type = event.type;
282
- const canonicalTypes = [
283
- "session_init",
284
- "block_start",
285
- "block_delta",
286
- "block_end",
287
- "tool_result",
288
- "permission_request",
289
- "turn_result",
290
- "error",
291
- "done"
292
- ];
293
- if (canonicalTypes.includes(type)) {
294
- return [event];
295
- }
296
- return transformClaudeEvent(event);
297
- }
298
- function isRenderableEvent(event) {
299
- switch (event.type) {
300
- case "block_start":
301
- return ["text", "thinking", "tool_use"].includes(event.blockType);
302
- case "block_delta":
303
- return !!(event.text || event.thinking || event.partialJson);
304
- case "tool_result":
305
- case "permission_request":
306
- return true;
307
- case "turn_result":
308
- return event.subtype !== "success";
309
- // Errors in result are renderable
310
- default:
311
- return false;
312
- }
313
- }
314
- function checkForPermissionRequest(event, approvedTools, providerId) {
315
- if (event.type === "permission_request") {
316
- return event;
317
- }
318
- if (event.type === "block_start" && event.blockType === "tool_use" && providerId === "codex") {
319
- const normalizedTool = normalizeToolName(event.name || "");
320
- if (normalizedTool && codexToolNeedsAskApproval(normalizedTool) && !approvedTools.has(normalizedTool)) {
321
- return {
322
- type: "permission_request",
323
- sessionId: event.sessionId,
324
- tool: normalizedTool,
325
- tools: [normalizedTool],
326
- description: `Permission required: ${normalizedTool}`
327
- };
328
- }
329
- }
330
- if (event.type === "tool_result" && event.isError) {
331
- if (isPermissionRequestText(event.content)) {
332
- const tools = parseToolsFromError(event.content);
333
- return {
334
- type: "permission_request",
335
- sessionId: event.sessionId,
336
- tool: tools[0] || "Permission",
337
- tools,
338
- description: event.content
339
- };
340
- }
341
- }
342
- return null;
343
- }
344
- function normalizeToolName(tool) {
345
- if (!tool) return "";
346
- const trimmed = tool.trim();
347
- if (!trimmed) return "";
348
- return trimmed.charAt(0).toUpperCase() + trimmed.slice(1);
349
- }
350
- function isPermissionRequestText(text) {
351
- if (!text) return false;
352
- return /permission required|approval required|requires approval|requested permissions|haven't granted|hasn't granted|not approved|approval policy|permission denied|operation not permitted|read-only file system|cannot touch/i.test(text);
353
- }
354
- function parseToolsFromError(errorContent) {
355
- const lowerContent = errorContent.toLowerCase();
356
- const tools = [];
357
- const toolNameMatch = errorContent.match(/(?:use the |Permission Required: )(\w+)(?: tool)?/i);
358
- if (toolNameMatch) {
359
- const toolName = toolNameMatch[1];
360
- const normalized = toolName.charAt(0).toUpperCase() + toolName.slice(1).toLowerCase();
361
- if (["Read", "Write", "Edit", "Bash", "Glob", "Grep", "Webfetch", "Websearch"].includes(normalized)) {
362
- const tool = normalized === "Webfetch" ? "WebFetch" : normalized === "Websearch" ? "WebSearch" : normalized;
363
- return [tool];
364
- }
365
- }
366
- if (lowerContent.includes("write to") || lowerContent.includes("write ")) {
367
- tools.push("Write", "Edit");
368
- }
369
- if (lowerContent.includes("edit ") && !tools.includes("Edit")) {
370
- tools.push("Edit");
371
- }
372
- if (lowerContent.includes("read ")) {
373
- tools.push("Read");
374
- }
375
- if (lowerContent.includes("run ") || lowerContent.includes("execute") || lowerContent.includes("bash")) {
376
- tools.push("Bash");
377
- }
378
- if (lowerContent.includes("glob")) {
379
- tools.push("Glob");
380
- }
381
- if (lowerContent.includes("grep")) {
382
- tools.push("Grep");
383
- }
384
- if (lowerContent.includes("fetch") || lowerContent.includes("webfetch")) {
385
- tools.push("WebFetch");
386
- }
387
- if (lowerContent.includes("websearch")) {
388
- tools.push("WebSearch");
389
- }
390
- return tools.length > 0 ? tools : ["Write", "Edit"];
391
- }
392
- function normalizeTools(tools) {
393
- const seen = /* @__PURE__ */ new Set();
394
- for (const tool of tools) {
395
- const normalized = normalizeToolName(tool);
396
- if (normalized) {
397
- seen.add(normalized);
398
- }
399
- }
400
- return Array.from(seen);
401
- }
402
- function codexToolNeedsAskApproval(tool) {
403
- const normalized = normalizeToolName(tool);
404
- if (!normalized) return false;
405
- if (normalized === "Read" || normalized === "Glob" || normalized === "Grep" || normalized === "WebSearch") {
406
- return false;
407
- }
408
- return true;
409
- }
410
- function extractPermissionRequestFromProcessOutput(nonJsonOutput) {
411
- if (!Array.isArray(nonJsonOutput) || nonJsonOutput.length === 0) return null;
412
- const description = nonJsonOutput.join("\n");
413
- if (!isPermissionRequestText(description)) {
414
- return null;
415
- }
416
- const tools = parseToolsFromError(description);
417
- return { tools, description };
418
- }
419
-
420
- export { normalizeTools as a, transformCodexEvent as b, checkForPermissionRequest as c, extractPermissionRequestFromProcessOutput as e, isRenderableEvent as i, normalizeToolName as n, transformClaudeEvent as t };
421
- //# sourceMappingURL=uiAdapter.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"uiAdapter.mjs","sources":["../../../../server/utils/uiAdapter.ts"],"names":[],"mappings":"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"}