cognova 0.2.25 → 0.2.27

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 (335) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{C4Ii8cYC.js → 2Eo3qwxj.js} +1 -1
  3. package/.output/public/_nuxt/{lfg-J79K.js → 2ixlK8td.js} +1 -1
  4. package/.output/public/_nuxt/{D57E8FC4.js → 2nDmPuey.js} +1 -1
  5. package/.output/public/_nuxt/{rVZcJ6Pz.js → 6f0CtDWh.js} +1 -1
  6. package/.output/public/_nuxt/{46eRQaVv.js → 7VIfpS3K.js} +1 -1
  7. package/.output/public/_nuxt/{BD07a6OS.js → 8T7bItPs.js} +3 -3
  8. package/.output/public/_nuxt/{Dc_VwXJs.js → B2ejvp4F.js} +1 -1
  9. package/.output/public/_nuxt/{bHsFNLQP.js → B3EVQLy0.js} +1 -1
  10. package/.output/public/_nuxt/{D_1GDAlv.js → B3WWnSJo.js} +1 -1
  11. package/.output/public/_nuxt/{CtNN2F57.js → B6kGLfxE.js} +1 -1
  12. package/.output/public/_nuxt/{BHAaeL5L.js → B8E4nRtc.js} +1 -1
  13. package/.output/public/_nuxt/{CIDjuJ7I.js → BF1GoXYw.js} +1 -1
  14. package/.output/public/_nuxt/{DEmzTuCa.js → BFhzL-L6.js} +1 -1
  15. package/.output/public/_nuxt/{CruI_TS3.js → BH_Lonko.js} +1 -1
  16. package/.output/public/_nuxt/{DEBOaUgW.js → BIRrab0B.js} +1 -1
  17. package/.output/public/_nuxt/{swgNRlWy.js → BIRvCR2S.js} +1 -1
  18. package/.output/public/_nuxt/{B8fLdQfp.js → BISpLSKY.js} +1 -1
  19. package/.output/public/_nuxt/{qI8JV5dU.js → BIhmDjJ8.js} +1 -1
  20. package/.output/public/_nuxt/BMsNdiuj.js +1 -0
  21. package/.output/public/_nuxt/{Bxs6RCfp.js → BP60VAOa.js} +1 -1
  22. package/.output/public/_nuxt/{D4wS6gzr.js → BRHBOpyl.js} +1 -1
  23. package/.output/public/_nuxt/{FGRiZ9J1.js → BSHWLnRg.js} +1 -1
  24. package/.output/public/_nuxt/BUa1DKMp.js +1 -0
  25. package/.output/public/_nuxt/{CIMG8oEU.js → BWgA6Icb.js} +1 -1
  26. package/.output/public/_nuxt/{Cwdn7ZtG.js → BY7b-3vi.js} +1 -1
  27. package/.output/public/_nuxt/{VRRYjCaC.js → BYRCVlFB.js} +1 -1
  28. package/.output/public/_nuxt/{C1wI_STa.js → B_IIr5Dj.js} +2 -2
  29. package/.output/public/_nuxt/{DFPu4h4a.js → BcGMY6mI.js} +1 -1
  30. package/.output/public/_nuxt/{CZvTOsiz.js → Bes0SO2V.js} +1 -1
  31. package/.output/public/_nuxt/{DmGbOc_e.js → Bf_52ujb.js} +1 -1
  32. package/.output/public/_nuxt/BgQoNHMg.js +1 -0
  33. package/.output/public/_nuxt/{BVkPh7-9.js → BiDXeTfW.js} +1 -1
  34. package/.output/public/_nuxt/{iTZxBLAr.js → BiIuqBpS.js} +3 -3
  35. package/.output/public/_nuxt/{9vdFTPZC.js → BiQQLbjx.js} +1 -1
  36. package/.output/public/_nuxt/{FmfogFAR.js → BivpMuR_.js} +1 -1
  37. package/.output/public/_nuxt/{CZQeFnOf.js → Bl7M4LXt.js} +1 -1
  38. package/.output/public/_nuxt/{zvDhkxQS.js → Bo6WXrLP.js} +1 -1
  39. package/.output/public/_nuxt/{rY0W1r76.js → BpN402qF.js} +2 -2
  40. package/.output/public/_nuxt/{DM9s28TO.js → BpyMs36w.js} +1 -1
  41. package/.output/public/_nuxt/{Brmj91Ns.js → Bq9rkJSd.js} +1 -1
  42. package/.output/public/_nuxt/{C3dJrgZH.js → BqSmw12h.js} +1 -1
  43. package/.output/public/_nuxt/{Dkpxacka.js → BrN_ntKk.js} +1 -1
  44. package/.output/public/_nuxt/{ChIzYvpz.js → Bx3A9QLd.js} +1 -1
  45. package/.output/public/_nuxt/{D5AjrkGO.js → Bzkzi9GX.js} +1 -1
  46. package/.output/public/_nuxt/{CCmSsj4q.js → C1pt3HyX.js} +1 -1
  47. package/.output/public/_nuxt/{B0_Iu2zi.js → C4XDZQVz.js} +1 -1
  48. package/.output/public/_nuxt/{BZjMzGZM.js → C4zN4OGX.js} +1 -1
  49. package/.output/public/_nuxt/{w3RSHXA6.js → C5IBUVPW.js} +1 -1
  50. package/.output/public/_nuxt/{wSCSxjgr.js → C6IV65Gy.js} +1 -1
  51. package/.output/public/_nuxt/{3AgfIirx.js → C6M-e7pT.js} +1 -1
  52. package/.output/public/_nuxt/{B1ea1Zc2.js → CAANELnI.js} +1 -1
  53. package/.output/public/_nuxt/{C7Wu2u5C.js → CAaAX5yO.js} +1 -1
  54. package/.output/public/_nuxt/{BGV4_re9.js → CAdrgifl.js} +1 -1
  55. package/.output/public/_nuxt/{BTImkTzA.js → CDX3o-x3.js} +1 -1
  56. package/.output/public/_nuxt/{CD6r4z4e.js → CJAiAVnY.js} +1 -1
  57. package/.output/public/_nuxt/{CjkXqgrT.js → CJa5E6Hb.js} +1 -1
  58. package/.output/public/_nuxt/{BHcVB9Fo.js → CKcctj3r.js} +1 -1
  59. package/.output/public/_nuxt/{Co86ycpI.js → CLk-ZoD9.js} +1 -1
  60. package/.output/public/_nuxt/{P3qGksT8.js → CSQciH0m.js} +1 -1
  61. package/.output/public/_nuxt/{BqyI8nU4.js → CSZw5eEq.js} +1 -1
  62. package/.output/public/_nuxt/{CrHLmWKE.js → CSu09NYz.js} +1 -1
  63. package/.output/public/_nuxt/{CZ5B974o.js → CSwU6kaw.js} +1 -1
  64. package/.output/public/_nuxt/{v-LIF5tR.js → CU58Jr3-.js} +1 -1
  65. package/.output/public/_nuxt/{DIMnGgEU.js → CXWZZrP6.js} +1 -1
  66. package/.output/public/_nuxt/{CGgHmnnS.js → CZT64TBr.js} +3 -3
  67. package/.output/public/_nuxt/{CLmiWiqr.js → CZZl10o-.js} +1 -1
  68. package/.output/public/_nuxt/{BwLYFg9w.js → CbLDrSEX.js} +1 -1
  69. package/.output/public/_nuxt/{DfAWgXhg.js → CfTBjUgE.js} +1 -1
  70. package/.output/public/_nuxt/{6k0gxaWW.js → CfiM4f33.js} +1 -1
  71. package/.output/public/_nuxt/{3hFj0Mf_.js → Cj2M_iYP.js} +1 -1
  72. package/.output/public/_nuxt/{BigIAhcT.js → CjPpmwck.js} +1 -1
  73. package/.output/public/_nuxt/{n5X4vNX9.js → CjhuD2Kg.js} +2 -2
  74. package/.output/public/_nuxt/{UQIfAAmf.js → CnLzT6v5.js} +1 -1
  75. package/.output/public/_nuxt/{DwEfItxe.js → CnViW7-O.js} +1 -1
  76. package/.output/public/_nuxt/{NNQizITf.js → Ctt1B8Lg.js} +1 -1
  77. package/.output/public/_nuxt/{m9zGH_2s.js → CuzrMna6.js} +1 -1
  78. package/.output/public/_nuxt/{B02JOKtW.js → Cv0TenvS.js} +1 -1
  79. package/.output/public/_nuxt/{BhtKu4xV.js → CzSXUP4q.js} +1 -1
  80. package/.output/public/_nuxt/{Dfi2mj_-.js → CzYLEcMN.js} +1 -1
  81. package/.output/public/_nuxt/{Cj3gDP-y.js → D-ysM-Cd.js} +1 -1
  82. package/.output/public/_nuxt/{CD_jDSWh.js → D2A5WweU.js} +1 -1
  83. package/.output/public/_nuxt/{Ehiy7Wkv.js → D5dMt776.js} +1 -1
  84. package/.output/public/_nuxt/{lA6pb86B.js → D5ut0FcJ.js} +1 -1
  85. package/.output/public/_nuxt/{CPb6IrVT.js → D7PJ9LEZ.js} +1 -1
  86. package/.output/public/_nuxt/{DmHn_Ae8.js → DA0qOQ-H.js} +1 -1
  87. package/.output/public/_nuxt/{BW0bq0Nu.js → DCKH9QC5.js} +1 -1
  88. package/.output/public/_nuxt/{DMCE1Up6.js → DCj0VKbE.js} +1 -1
  89. package/.output/public/_nuxt/{pFPRVtL-.js → DD864DXc.js} +1 -1
  90. package/.output/public/_nuxt/{CjVBL0o-.js → DEZB2UVM.js} +1 -1
  91. package/.output/public/_nuxt/{B27NM422.js → DGMjiZpH.js} +1 -1
  92. package/.output/public/_nuxt/{BMTKvzsm.js → DH9moCuc.js} +1 -1
  93. package/.output/public/_nuxt/{DuH9QzIG.js → DHmoYAOF.js} +1 -1
  94. package/.output/public/_nuxt/{QmdcFt0E.js → DKFnR3f3.js} +1 -1
  95. package/.output/public/_nuxt/{81-iumfM.js → DM2gKi5N.js} +1 -1
  96. package/.output/public/_nuxt/{d85YwuyC.js → DMar0qcv.js} +1 -1
  97. package/.output/public/_nuxt/{7msxmF5v.js → DNNOQPuJ.js} +1 -1
  98. package/.output/public/_nuxt/{CbLvLXmb.js → DSNEk90K.js} +1 -1
  99. package/.output/public/_nuxt/{B38X0n2w.js → DTb_yOmO.js} +1 -1
  100. package/.output/public/_nuxt/{QNqSZCYh.js → DWJ2tQkX.js} +1 -1
  101. package/.output/public/_nuxt/{uCsI7fpg.js → DbARsMbj.js} +1 -1
  102. package/.output/public/_nuxt/{Irw5CrIe.js → DbpzXcer.js} +1 -1
  103. package/.output/public/_nuxt/{6DKJrPTD.js → DcC8s2L0.js} +1 -1
  104. package/.output/public/_nuxt/{CxNJcty6.js → DcU1vVta.js} +1 -1
  105. package/.output/public/_nuxt/{BTs0cu3F.js → De4iE8YV.js} +1 -1
  106. package/.output/public/_nuxt/{B3TXSB_R.js → De94RhMH.js} +1 -1
  107. package/.output/public/_nuxt/{B8na0pik.js → DfIQdSBL.js} +1 -1
  108. package/.output/public/_nuxt/{pJF5jz72.js → DfLpZE5I.js} +1 -1
  109. package/.output/public/_nuxt/{DOs_ozN6.js → DhGDBmGP.js} +1 -1
  110. package/.output/public/_nuxt/{mLs_Q7_U.js → Dhf7T8TT.js} +1 -1
  111. package/.output/public/_nuxt/{CVTUqEcr.js → DjY2CmhB.js} +1 -1
  112. package/.output/public/_nuxt/{DfP6jcEM.js → Dj__3Bye.js} +1 -1
  113. package/.output/public/_nuxt/{iVfmia7K.js → DlOqPmYc.js} +1 -1
  114. package/.output/public/_nuxt/{Dbv2gAYq.js → Dm4dqn9Q.js} +1 -1
  115. package/.output/public/_nuxt/{BW-7wimi.js → Dn0NJtvh.js} +1 -1
  116. package/.output/public/_nuxt/{CDKJK4wW.js → DuDOxoNd.js} +1 -1
  117. package/.output/public/_nuxt/{CcJ0pNID.js → DwIL_HsX.js} +1 -1
  118. package/.output/public/_nuxt/DwbYPACo.js +1 -0
  119. package/.output/public/_nuxt/{Cfce_cVw.js → Dzjd35Uu.js} +1 -1
  120. package/.output/public/_nuxt/{BGa5KqPj.js → FOQllft2.js} +1 -1
  121. package/.output/public/_nuxt/{DoGLYOlq.js → FZ4DGVUC.js} +1 -1
  122. package/.output/public/_nuxt/{ByXbV9Xa.js → IwZpKn7a.js} +1 -1
  123. package/.output/public/_nuxt/{By5L5Smf.js → J00SROjJ.js} +1 -1
  124. package/.output/public/_nuxt/{1_nO5SO6.js → KEgU3jLl.js} +1 -1
  125. package/.output/public/_nuxt/{eB60bVen.js → KtLDewau.js} +1 -1
  126. package/.output/public/_nuxt/{IIvTjJqa.js → LFbgE4QY.js} +1 -1
  127. package/.output/public/_nuxt/{BtVAOj3K.js → MwLHW_S3.js} +1 -1
  128. package/.output/public/_nuxt/{Bn175bDC.js → SbeB_1mT.js} +1 -1
  129. package/.output/public/_nuxt/{Bk_mzzQ3.js → T9m6PG7Q.js} +1 -1
  130. package/.output/public/_nuxt/{DLfV22bF.js → UPUPLBes.js} +1 -1
  131. package/.output/public/_nuxt/{BaHB7JKe.js → UmRz2svG.js} +1 -1
  132. package/.output/public/_nuxt/{DB0uzc_1.js → UvHHDzTl.js} +1 -1
  133. package/.output/public/_nuxt/{C-tfM08H.js → YJeqx4Ll.js} +1 -1
  134. package/.output/public/_nuxt/{CSyssKl8.js → _fMejg0f.js} +1 -1
  135. package/.output/public/_nuxt/{DOTIy97K.js → aIIZqPga.js} +1 -1
  136. package/.output/public/_nuxt/{DXAD_aZW.js → awkGRsuS.js} +1 -1
  137. package/.output/public/_nuxt/builds/latest.json +1 -1
  138. package/.output/public/_nuxt/builds/meta/61420747-850d-4496-817a-d86f57e0fb7d.json +1 -0
  139. package/.output/public/_nuxt/{AMPsjNHJ.js → dGa7RyJ8.js} +1 -1
  140. package/.output/public/_nuxt/{gTGPvkTX.js → eTB2hbQs.js} +1 -1
  141. package/.output/public/_nuxt/{n_Arasow.js → iGKcFJAp.js} +1 -1
  142. package/.output/public/_nuxt/{D45gWhSU.js → k5H4Okf8.js} +1 -1
  143. package/.output/public/_nuxt/{DN5cHXGS.js → kbSxj5Sa.js} +1 -1
  144. package/.output/public/_nuxt/{CBJQYyqD.js → l0zNTVMN.js} +1 -1
  145. package/.output/public/_nuxt/{C_hl3kCw.js → lheR7PB2.js} +1 -1
  146. package/.output/public/_nuxt/{BVcLiEDk.js → p1xXbtMk.js} +1 -1
  147. package/.output/public/_nuxt/{B5oEzB-M.js → qBDqAV_3.js} +1 -1
  148. package/.output/public/_nuxt/{CJLlvuDm.js → qEwYRBS3.js} +1 -1
  149. package/.output/public/_nuxt/{RIAd5Wd1.js → tHI-osWJ.js} +1 -1
  150. package/.output/public/_nuxt/{DoSrePUc.js → tIRQIyWk.js} +1 -1
  151. package/.output/public/_nuxt/{D5IKvGig.js → uP6kBJyw.js} +1 -1
  152. package/.output/public/_nuxt/{By6urPVf.js → yyeTZy_R.js} +1 -1
  153. package/.output/server/chunks/build/A-BWukSPjS.mjs +1 -1
  154. package/.output/server/chunks/build/Accordion-BaJYea6e.mjs +1 -1
  155. package/.output/server/chunks/build/AccordionItem-DdG2zgcN.mjs +1 -1
  156. package/.output/server/chunks/build/Badge-BrU9UkCv.mjs +1 -1
  157. package/.output/server/chunks/build/Blockquote-DND8wTkU.mjs +1 -1
  158. package/.output/server/chunks/build/Callout-1halpaEg.mjs +1 -1
  159. package/.output/server/chunks/build/Card-BHCSDKDt.mjs +1 -1
  160. package/.output/server/chunks/build/CardGroup-BOuJcNGp.mjs +1 -1
  161. package/.output/server/chunks/build/Caution-BP3y-TcC.mjs +1 -1
  162. package/.output/server/chunks/build/Code-B1xkAS5a.mjs +1 -1
  163. package/.output/server/chunks/build/CodeCollapse-BIhaNa22.mjs +1 -1
  164. package/.output/server/chunks/build/CodeGroup-BviYyCuo.mjs +1 -1
  165. package/.output/server/chunks/build/CodeIcon-CWD5HcV7.mjs +1 -1
  166. package/.output/server/chunks/build/CodePreview-D8PsCQ6m.mjs +1 -1
  167. package/.output/server/chunks/build/CodeTree-BUTLupmL.mjs +1 -1
  168. package/.output/server/chunks/build/Collapsible-BIvXNaSq.mjs +1 -1
  169. package/.output/server/chunks/build/Em-DsIz_BnD.mjs +1 -1
  170. package/.output/server/chunks/build/Field-cwwmSQDT.mjs +1 -1
  171. package/.output/server/chunks/build/FieldGroup-CAIpQv8s.mjs +1 -1
  172. package/.output/server/chunks/build/H1-BbFNsPyP.mjs +1 -1
  173. package/.output/server/chunks/build/H2-vHTl_pWr.mjs +1 -1
  174. package/.output/server/chunks/build/H3-7eTcfO3s.mjs +1 -1
  175. package/.output/server/chunks/build/H4-C89p_PKO.mjs +1 -1
  176. package/.output/server/chunks/build/Hr-Bm8RlL3O.mjs +1 -1
  177. package/.output/server/chunks/build/Icon-Dp9iy0BI.mjs +1 -1
  178. package/.output/server/chunks/build/Img-CWLmvN1t.mjs +1 -1
  179. package/.output/server/chunks/build/Kbd-CQG6I_Ch.mjs +1 -1
  180. package/.output/server/chunks/build/Li-Bw1QUaGv.mjs +1 -1
  181. package/.output/server/chunks/build/Note-CHkjm9jm.mjs +1 -1
  182. package/.output/server/chunks/build/Ol-D-fPnfFM.mjs +1 -1
  183. package/.output/server/chunks/build/P-B5YI1V9y.mjs +1 -1
  184. package/.output/server/chunks/build/Pre-ChiJcf3C.mjs +1 -1
  185. package/.output/server/chunks/build/ProseH5-DahJyv8h.mjs +1 -1
  186. package/.output/server/chunks/build/ProseH6-C4Is5h6c.mjs +1 -1
  187. package/.output/server/chunks/build/Steps-BZpvXfzb.mjs +1 -1
  188. package/.output/server/chunks/build/Strong-DXJqOWL3.mjs +1 -1
  189. package/.output/server/chunks/build/Table-BSrLZ7dt.mjs +1 -1
  190. package/.output/server/chunks/build/Tabs-Dk3nvOFF.mjs +1 -1
  191. package/.output/server/chunks/build/TabsItem-CDhyuBtJ.mjs +1 -1
  192. package/.output/server/chunks/build/Tbody-CjMT5oH-.mjs +1 -1
  193. package/.output/server/chunks/build/Td-ZBVaEjFN.mjs +1 -1
  194. package/.output/server/chunks/build/Th-D317icbd.mjs +1 -1
  195. package/.output/server/chunks/build/Thead-Ca_ZESTK.mjs +1 -1
  196. package/.output/server/chunks/build/Tip-CP3oTARR.mjs +1 -1
  197. package/.output/server/chunks/build/Tr-6jI8j9gD.mjs +1 -1
  198. package/.output/server/chunks/build/Ul-BUGj_CPb.mjs +1 -1
  199. package/.output/server/chunks/build/Warning-BJ8G6cxC.mjs +1 -1
  200. package/.output/server/chunks/build/_id_-CwBeklIM.mjs +1 -1
  201. package/.output/server/chunks/build/_name_-D7MtW4Vu.mjs +1 -1
  202. package/.output/server/chunks/build/_uuid_-lvG92ein.mjs +1 -1
  203. package/.output/server/chunks/build/account-LDZ4TL6x.mjs +1 -1
  204. package/.output/server/chunks/build/app-CGhRZPNT.mjs +1 -1
  205. package/.output/server/chunks/build/auth-CvD7MqKW.mjs +1 -1
  206. package/.output/server/chunks/build/chat-BphuYhvA.mjs +1 -1
  207. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  208. package/.output/server/chunks/build/dashboard-CLk1NlbR.mjs +1 -1
  209. package/.output/server/chunks/build/dashboard-nDujDyOg.mjs +1 -1
  210. package/.output/server/chunks/build/docs-Bwucwp0r.mjs +1 -1
  211. package/.output/server/chunks/build/error-404-BzbcNcdU.mjs +1 -1
  212. package/.output/server/chunks/build/error-500-uCDjGRW8.mjs +1 -1
  213. package/.output/server/chunks/build/hooks-D6PmTth8.mjs +1 -1
  214. package/.output/server/chunks/build/index-Byt-3Yq6.mjs +1 -1
  215. package/.output/server/chunks/build/index-CJkn2jiM.mjs +1 -1
  216. package/.output/server/chunks/build/index-Cz9Y6NwN.mjs +1 -1
  217. package/.output/server/chunks/build/index-DzdvIi8V.mjs +1 -1
  218. package/.output/server/chunks/build/index-hwhuKhuZ.mjs +1 -1
  219. package/.output/server/chunks/build/integrations-Hf4O1jkW.mjs +1 -1
  220. package/.output/server/chunks/build/library-DxRdgP6X.mjs +1 -1
  221. package/.output/server/chunks/build/login-BmER_VoU.mjs +1 -1
  222. package/.output/server/chunks/build/manage-secrets-BWzqc_-f.mjs +1 -1
  223. package/.output/server/chunks/build/memories-BqA719O1.mjs +1 -1
  224. package/.output/server/chunks/build/server.mjs +1 -1
  225. package/.output/server/chunks/build/settings-neokAVE5.mjs +1 -1
  226. package/.output/server/chunks/build/tasks-CnpIQNpS.mjs +1 -1
  227. package/.output/server/chunks/build/usage-BHdQZbfI.mjs +1 -1
  228. package/.output/server/chunks/build/view-mb0ISqfM.mjs +1 -1
  229. package/.output/server/chunks/build/virtual_nuxt__Users_tony_Documents_GitHub_second-brain_node_modules_.cache_nuxt_.nuxt_mdc-imports-PtwWlZ2H.mjs +1 -1
  230. package/.output/server/chunks/nitro/nitro.mjs +924 -897
  231. package/.output/server/chunks/routes/_ws/chat.mjs +1 -1
  232. package/.output/server/chunks/routes/{terminal.mjs → _ws/terminal.mjs} +40 -29
  233. package/.output/server/chunks/routes/_ws/terminal.mjs.map +1 -0
  234. package/.output/server/chunks/routes/api/agents/_id/cancel.post.mjs +1 -1
  235. package/.output/server/chunks/routes/api/agents/_id/run.post.mjs +1 -1
  236. package/.output/server/chunks/routes/api/agents/_id/runs.get.mjs +1 -1
  237. package/.output/server/chunks/routes/api/agents/_id/stats.get.mjs +1 -1
  238. package/.output/server/chunks/routes/api/agents/_id_.delete.mjs +1 -1
  239. package/.output/server/chunks/routes/api/agents/_id_.get.mjs +1 -1
  240. package/.output/server/chunks/routes/api/agents/_id_.patch.mjs +1 -1
  241. package/.output/server/chunks/routes/api/agents/stats.get.mjs +1 -1
  242. package/.output/server/chunks/routes/api/auth/_...all_.mjs +1 -1
  243. package/.output/server/chunks/routes/api/bridges/_id/contacts.get.mjs +1 -1
  244. package/.output/server/chunks/routes/api/bridges/_id/health.get.mjs +1 -1
  245. package/.output/server/chunks/routes/api/bridges/_id/send.post.mjs +1 -1
  246. package/.output/server/chunks/routes/api/bridges/_id_.delete.mjs +1 -1
  247. package/.output/server/chunks/routes/api/bridges/_id_.get.mjs +1 -1
  248. package/.output/server/chunks/routes/api/bridges/_id_.put.mjs +1 -1
  249. package/.output/server/chunks/routes/api/bridges/context.get.mjs +1 -1
  250. package/.output/server/chunks/routes/api/conversations/_id_.delete.mjs +1 -1
  251. package/.output/server/chunks/routes/api/conversations/_id_.get.mjs +1 -1
  252. package/.output/server/chunks/routes/api/dashboard/overview.get.mjs +1 -1
  253. package/.output/server/chunks/routes/api/documents/_id/public.get.mjs +1 -1
  254. package/.output/server/chunks/routes/api/documents/_id/restore.post.mjs +1 -1
  255. package/.output/server/chunks/routes/api/documents/by-path.post.mjs +1 -1
  256. package/.output/server/chunks/routes/api/documents/index.delete.mjs +1 -1
  257. package/.output/server/chunks/routes/api/documents/index.put.mjs +1 -1
  258. package/.output/server/chunks/routes/api/fs/delete.post.mjs +1 -1
  259. package/.output/server/chunks/routes/api/fs/list.get.mjs +1 -1
  260. package/.output/server/chunks/routes/api/fs/mkdir.post.mjs +1 -1
  261. package/.output/server/chunks/routes/api/fs/move.post.mjs +1 -1
  262. package/.output/server/chunks/routes/api/fs/read.post.mjs +1 -1
  263. package/.output/server/chunks/routes/api/fs/rename.post.mjs +1 -1
  264. package/.output/server/chunks/routes/api/fs/write.post.mjs +1 -1
  265. package/.output/server/chunks/routes/api/health.get.mjs +1 -1
  266. package/.output/server/chunks/routes/api/home.get.mjs +1 -1
  267. package/.output/server/chunks/routes/api/hooks/index.get.mjs +1 -1
  268. package/.output/server/chunks/routes/api/hooks/index.post.mjs +1 -1
  269. package/.output/server/chunks/routes/api/hooks/stats.get.mjs +1 -1
  270. package/.output/server/chunks/routes/api/index.get.mjs +1 -1
  271. package/.output/server/chunks/routes/api/index.get10.mjs +1 -1
  272. package/.output/server/chunks/routes/api/index.get2.mjs +1 -1
  273. package/.output/server/chunks/routes/api/index.get3.mjs +1 -1
  274. package/.output/server/chunks/routes/api/index.get4.mjs +1 -1
  275. package/.output/server/chunks/routes/api/index.get5.mjs +1 -1
  276. package/.output/server/chunks/routes/api/index.get6.mjs +1 -1
  277. package/.output/server/chunks/routes/api/index.get7.mjs +1 -1
  278. package/.output/server/chunks/routes/api/index.get8.mjs +1 -1
  279. package/.output/server/chunks/routes/api/index.get9.mjs +1 -1
  280. package/.output/server/chunks/routes/api/index.post.mjs +1 -1
  281. package/.output/server/chunks/routes/api/index.post2.mjs +1 -1
  282. package/.output/server/chunks/routes/api/index.post3.mjs +1 -1
  283. package/.output/server/chunks/routes/api/index.post4.mjs +1 -1
  284. package/.output/server/chunks/routes/api/index.post5.mjs +1 -1
  285. package/.output/server/chunks/routes/api/index.put.mjs +1 -1
  286. package/.output/server/chunks/routes/api/memory/_id_.delete.mjs +1 -1
  287. package/.output/server/chunks/routes/api/memory/context.get.mjs +1 -1
  288. package/.output/server/chunks/routes/api/memory/extract.post.mjs +1 -1
  289. package/.output/server/chunks/routes/api/memory/search.get.mjs +1 -1
  290. package/.output/server/chunks/routes/api/memory/store.post.mjs +1 -1
  291. package/.output/server/chunks/routes/api/projects/index.delete.mjs +1 -1
  292. package/.output/server/chunks/routes/api/projects/index.get.mjs +1 -1
  293. package/.output/server/chunks/routes/api/projects/index.put.mjs +1 -1
  294. package/.output/server/chunks/routes/api/secrets/_key_.delete.mjs +1 -1
  295. package/.output/server/chunks/routes/api/secrets/_key_.get.mjs +1 -1
  296. package/.output/server/chunks/routes/api/secrets/_key_.put.mjs +1 -1
  297. package/.output/server/chunks/routes/api/skills/_name/delete.post.mjs +1 -1
  298. package/.output/server/chunks/routes/api/skills/_name/export.get.mjs +1 -1
  299. package/.output/server/chunks/routes/api/skills/_name/files/create.post.mjs +1 -1
  300. package/.output/server/chunks/routes/api/skills/_name/files/delete.post.mjs +1 -1
  301. package/.output/server/chunks/routes/api/skills/_name/files/read.post.mjs +1 -1
  302. package/.output/server/chunks/routes/api/skills/_name/files/write.post.mjs +1 -1
  303. package/.output/server/chunks/routes/api/skills/_name/index.get.mjs +1 -1
  304. package/.output/server/chunks/routes/api/skills/_name/rename.post.mjs +1 -1
  305. package/.output/server/chunks/routes/api/skills/_name/toggle.post.mjs +1 -1
  306. package/.output/server/chunks/routes/api/skills/create.post.mjs +1 -1
  307. package/.output/server/chunks/routes/api/skills/generate.post.mjs +1 -1
  308. package/.output/server/chunks/routes/api/skills/import.post.mjs +1 -1
  309. package/.output/server/chunks/routes/api/skills/index.get.mjs +1 -1
  310. package/.output/server/chunks/routes/api/skills/index.get2.mjs +1 -1
  311. package/.output/server/chunks/routes/api/skills/library/check-updates.get.mjs +1 -1
  312. package/.output/server/chunks/routes/api/skills/library/install.post.mjs +1 -1
  313. package/.output/server/chunks/routes/api/tasks/_id/restore.post.mjs +1 -1
  314. package/.output/server/chunks/routes/api/tasks/index.delete.mjs +1 -1
  315. package/.output/server/chunks/routes/api/tasks/index.get.mjs +1 -1
  316. package/.output/server/chunks/routes/api/tasks/index.put.mjs +1 -1
  317. package/.output/server/chunks/routes/api/tasks/tags.get.mjs +1 -1
  318. package/.output/server/chunks/routes/api/usage/stats.get.mjs +1 -1
  319. package/.output/server/chunks/routes/api/user/email.patch.mjs +1 -1
  320. package/.output/server/chunks/routes/api/webhooks/bluebubbles.post.mjs +1 -1
  321. package/.output/server/chunks/routes/api/webhooks/telegram.post.mjs +1 -1
  322. package/.output/server/chunks/routes/notifications.mjs +2 -2
  323. package/.output/server/index.mjs +1 -1
  324. package/.output/server/package.json +1 -1
  325. package/app/composables/useTerminal.ts +1 -1
  326. package/package.json +1 -1
  327. package/server/routes/_ws/terminal.ts +111 -0
  328. package/server/utils/pty-manager.ts +45 -9
  329. package/.output/public/_nuxt/CNB4wNeh.js +0 -1
  330. package/.output/public/_nuxt/CnB-ybCZ.js +0 -1
  331. package/.output/public/_nuxt/DAjV9Cip.js +0 -1
  332. package/.output/public/_nuxt/Suor9Vto.js +0 -1
  333. package/.output/public/_nuxt/builds/meta/83bb5bdd-243c-4a32-ac1d-07c4f2cfe4a1.json +0 -1
  334. package/.output/server/chunks/routes/terminal.mjs.map +0 -1
  335. package/server/routes/terminal.ts +0 -98
@@ -3,6 +3,7 @@ import { stat } from 'fs/promises';
3
3
  import { join } from 'path';
4
4
  import '@anthropic-ai/claude-agent-sdk';
5
5
  import 'module';
6
+ import 'fs';
6
7
  import 'os';
7
8
  import 'node:http';
8
9
  import 'node:https';
@@ -21,7 +22,6 @@ import 'node:events';
21
22
  import 'node:buffer';
22
23
  import 'node:fs';
23
24
  import 'node:path';
24
- import 'fs';
25
25
  import 'drizzle-orm/postgres-js/migrator';
26
26
  import 'drizzle-orm';
27
27
  import 'drizzle-orm/postgres-js';
@@ -3,6 +3,7 @@ import { stat, rename, readFile, writeFile } from 'fs/promises';
3
3
  import { join } from 'path';
4
4
  import '@anthropic-ai/claude-agent-sdk';
5
5
  import 'module';
6
+ import 'fs';
6
7
  import 'os';
7
8
  import 'node:http';
8
9
  import 'node:https';
@@ -21,7 +22,6 @@ import 'node:events';
21
22
  import 'node:buffer';
22
23
  import 'node:fs';
23
24
  import 'node:path';
24
- import 'fs';
25
25
  import 'drizzle-orm/postgres-js/migrator';
26
26
  import 'drizzle-orm';
27
27
  import 'drizzle-orm/postgres-js';
@@ -3,6 +3,7 @@ import { stat, mkdir, rename } from 'fs/promises';
3
3
  import { join } from 'path';
4
4
  import '@anthropic-ai/claude-agent-sdk';
5
5
  import 'module';
6
+ import 'fs';
6
7
  import 'os';
7
8
  import 'node:http';
8
9
  import 'node:https';
@@ -21,7 +22,6 @@ import 'node:events';
21
22
  import 'node:buffer';
22
23
  import 'node:fs';
23
24
  import 'node:path';
24
- import 'fs';
25
25
  import 'drizzle-orm/postgres-js/migrator';
26
26
  import 'drizzle-orm';
27
27
  import 'drizzle-orm/postgres-js';
@@ -3,6 +3,7 @@ import { stat, mkdir, writeFile } from 'fs/promises';
3
3
  import { join } from 'path';
4
4
  import '@anthropic-ai/claude-agent-sdk';
5
5
  import 'module';
6
+ import 'fs';
6
7
  import 'os';
7
8
  import 'node:http';
8
9
  import 'node:https';
@@ -21,7 +22,6 @@ import 'node:events';
21
22
  import 'node:buffer';
22
23
  import 'node:fs';
23
24
  import 'node:path';
24
- import 'fs';
25
25
  import 'drizzle-orm/postgres-js/migrator';
26
26
  import 'drizzle-orm';
27
27
  import 'drizzle-orm/postgres-js';
@@ -3,6 +3,7 @@ import { stat, mkdir, rm, readdir } from 'fs/promises';
3
3
  import { join } from 'path';
4
4
  import { query } from '@anthropic-ai/claude-agent-sdk';
5
5
  import 'module';
6
+ import 'fs';
6
7
  import 'os';
7
8
  import 'node:http';
8
9
  import 'node:https';
@@ -21,7 +22,6 @@ import 'node:events';
21
22
  import 'node:buffer';
22
23
  import 'node:fs';
23
24
  import 'node:path';
24
- import 'fs';
25
25
  import 'drizzle-orm/postgres-js/migrator';
26
26
  import 'drizzle-orm';
27
27
  import 'drizzle-orm/postgres-js';
@@ -4,6 +4,7 @@ import { join, normalize } from 'path';
4
4
  import AdmZip from 'adm-zip';
5
5
  import '@anthropic-ai/claude-agent-sdk';
6
6
  import 'module';
7
+ import 'fs';
7
8
  import 'os';
8
9
  import 'node:http';
9
10
  import 'node:https';
@@ -22,7 +23,6 @@ import 'node:events';
22
23
  import 'node:buffer';
23
24
  import 'node:fs';
24
25
  import 'node:path';
25
- import 'fs';
26
26
  import 'drizzle-orm/postgres-js/migrator';
27
27
  import 'drizzle-orm';
28
28
  import 'drizzle-orm/postgres-js';
@@ -3,6 +3,7 @@ import { stat, readFile } from 'fs/promises';
3
3
  import { join } from 'path';
4
4
  import '@anthropic-ai/claude-agent-sdk';
5
5
  import 'module';
6
+ import 'fs';
6
7
  import 'os';
7
8
  import 'node:http';
8
9
  import 'node:https';
@@ -21,7 +22,6 @@ import 'node:events';
21
22
  import 'node:buffer';
22
23
  import 'node:fs';
23
24
  import 'node:path';
24
- import 'fs';
25
25
  import 'drizzle-orm/postgres-js/migrator';
26
26
  import 'drizzle-orm';
27
27
  import 'drizzle-orm/postgres-js';
@@ -3,6 +3,7 @@ import { stat, readFile } from 'fs/promises';
3
3
  import { join } from 'path';
4
4
  import '@anthropic-ai/claude-agent-sdk';
5
5
  import 'module';
6
+ import 'fs';
6
7
  import 'os';
7
8
  import 'node:http';
8
9
  import 'node:https';
@@ -21,7 +22,6 @@ import 'node:events';
21
22
  import 'node:buffer';
22
23
  import 'node:fs';
23
24
  import 'node:path';
24
- import 'fs';
25
25
  import 'drizzle-orm/postgres-js/migrator';
26
26
  import 'drizzle-orm';
27
27
  import 'drizzle-orm/postgres-js';
@@ -3,6 +3,7 @@ import { stat, readdir, readFile } from 'fs/promises';
3
3
  import { join } from 'path';
4
4
  import '@anthropic-ai/claude-agent-sdk';
5
5
  import 'module';
6
+ import 'fs';
6
7
  import 'os';
7
8
  import 'node:http';
8
9
  import 'node:https';
@@ -21,7 +22,6 @@ import 'node:events';
21
22
  import 'node:buffer';
22
23
  import 'node:fs';
23
24
  import 'node:path';
24
- import 'fs';
25
25
  import 'drizzle-orm/postgres-js/migrator';
26
26
  import 'drizzle-orm';
27
27
  import 'drizzle-orm/postgres-js';
@@ -4,6 +4,7 @@ import { join } from 'path';
4
4
  import { eq } from 'drizzle-orm';
5
5
  import '@anthropic-ai/claude-agent-sdk';
6
6
  import 'module';
7
+ import 'fs';
7
8
  import 'os';
8
9
  import 'node:http';
9
10
  import 'node:https';
@@ -22,7 +23,6 @@ import 'node:events';
22
23
  import 'node:buffer';
23
24
  import 'node:fs';
24
25
  import 'node:path';
25
- import 'fs';
26
26
  import 'drizzle-orm/postgres-js/migrator';
27
27
  import 'drizzle-orm/postgres-js';
28
28
  import 'postgres';
@@ -3,6 +3,7 @@ import { eq } from 'drizzle-orm';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'module';
5
5
  import 'path';
6
+ import 'fs';
6
7
  import 'os';
7
8
  import 'node:http';
8
9
  import 'node:https';
@@ -21,7 +22,6 @@ import 'node:events';
21
22
  import 'node:buffer';
22
23
  import 'node:fs';
23
24
  import 'node:path';
24
- import 'fs';
25
25
  import 'drizzle-orm/postgres-js/migrator';
26
26
  import 'drizzle-orm/postgres-js';
27
27
  import 'postgres';
@@ -3,6 +3,7 @@ import { eq } from 'drizzle-orm';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'module';
5
5
  import 'path';
6
+ import 'fs';
6
7
  import 'os';
7
8
  import 'node:http';
8
9
  import 'node:https';
@@ -21,7 +22,6 @@ import 'node:events';
21
22
  import 'node:buffer';
22
23
  import 'node:fs';
23
24
  import 'node:path';
24
- import 'fs';
25
25
  import 'drizzle-orm/postgres-js/migrator';
26
26
  import 'drizzle-orm/postgres-js';
27
27
  import 'postgres';
@@ -2,6 +2,7 @@ import { d as defineEventHandler, r as requireDb, g as getRouterParam, c as crea
2
2
  import '@anthropic-ai/claude-agent-sdk';
3
3
  import 'module';
4
4
  import 'path';
5
+ import 'fs';
5
6
  import 'os';
6
7
  import 'node:http';
7
8
  import 'node:https';
@@ -20,7 +21,6 @@ import 'node:events';
20
21
  import 'node:buffer';
21
22
  import 'node:fs';
22
23
  import 'node:path';
23
- import 'fs';
24
24
  import 'drizzle-orm/postgres-js/migrator';
25
25
  import 'drizzle-orm';
26
26
  import 'drizzle-orm/postgres-js';
@@ -3,6 +3,7 @@ import { eq } from 'drizzle-orm';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'module';
5
5
  import 'path';
6
+ import 'fs';
6
7
  import 'os';
7
8
  import 'node:http';
8
9
  import 'node:https';
@@ -21,7 +22,6 @@ import 'node:events';
21
22
  import 'node:buffer';
22
23
  import 'node:fs';
23
24
  import 'node:path';
24
- import 'fs';
25
25
  import 'drizzle-orm/postgres-js/migrator';
26
26
  import 'drizzle-orm/postgres-js';
27
27
  import 'postgres';
@@ -3,6 +3,7 @@ import { isNull } from 'drizzle-orm';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'module';
5
5
  import 'path';
6
+ import 'fs';
6
7
  import 'os';
7
8
  import 'node:http';
8
9
  import 'node:https';
@@ -21,7 +22,6 @@ import 'node:events';
21
22
  import 'node:buffer';
22
23
  import 'node:fs';
23
24
  import 'node:path';
24
- import 'fs';
25
25
  import 'drizzle-orm/postgres-js/migrator';
26
26
  import 'drizzle-orm/postgres-js';
27
27
  import 'postgres';
@@ -3,6 +3,7 @@ import { gte } from 'drizzle-orm';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'module';
5
5
  import 'path';
6
+ import 'fs';
6
7
  import 'os';
7
8
  import 'node:http';
8
9
  import 'node:https';
@@ -21,7 +22,6 @@ import 'node:events';
21
22
  import 'node:buffer';
22
23
  import 'node:fs';
23
24
  import 'node:path';
24
- import 'fs';
25
25
  import 'drizzle-orm/postgres-js/migrator';
26
26
  import 'drizzle-orm/postgres-js';
27
27
  import 'postgres';
@@ -3,6 +3,7 @@ import { eq } from 'drizzle-orm';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'module';
5
5
  import 'path';
6
+ import 'fs';
6
7
  import 'os';
7
8
  import 'node:http';
8
9
  import 'node:https';
@@ -21,7 +22,6 @@ import 'node:events';
21
22
  import 'node:buffer';
22
23
  import 'node:fs';
23
24
  import 'node:path';
24
- import 'fs';
25
25
  import 'drizzle-orm/postgres-js/migrator';
26
26
  import 'drizzle-orm/postgres-js';
27
27
  import 'postgres';
@@ -2,6 +2,7 @@ import { d as defineEventHandler, a6 as getAdapterByPlatform, c as createError,
2
2
  import '@anthropic-ai/claude-agent-sdk';
3
3
  import 'module';
4
4
  import 'path';
5
+ import 'fs';
5
6
  import 'os';
6
7
  import 'node:http';
7
8
  import 'node:https';
@@ -20,7 +21,6 @@ import 'node:events';
20
21
  import 'node:buffer';
21
22
  import 'node:fs';
22
23
  import 'node:path';
23
- import 'fs';
24
24
  import 'drizzle-orm/postgres-js/migrator';
25
25
  import 'drizzle-orm';
26
26
  import 'drizzle-orm/postgres-js';
@@ -2,6 +2,7 @@ import { d as defineEventHandler, a6 as getAdapterByPlatform, c as createError,
2
2
  import '@anthropic-ai/claude-agent-sdk';
3
3
  import 'module';
4
4
  import 'path';
5
+ import 'fs';
5
6
  import 'os';
6
7
  import 'node:http';
7
8
  import 'node:https';
@@ -20,7 +21,6 @@ import 'node:events';
20
21
  import 'node:buffer';
21
22
  import 'node:fs';
22
23
  import 'node:path';
23
- import 'fs';
24
24
  import 'drizzle-orm/postgres-js/migrator';
25
25
  import 'drizzle-orm';
26
26
  import 'drizzle-orm/postgres-js';
@@ -1,7 +1,8 @@
1
- import { a8 as defineWebSocketHandler, aa as notificationBus } from '../nitro/nitro.mjs';
1
+ import { a8 as defineWebSocketHandler, af as notificationBus } from '../nitro/nitro.mjs';
2
2
  import '@anthropic-ai/claude-agent-sdk';
3
3
  import 'module';
4
4
  import 'path';
5
+ import 'fs';
5
6
  import 'os';
6
7
  import 'node:http';
7
8
  import 'node:https';
@@ -20,7 +21,6 @@ import 'node:events';
20
21
  import 'node:buffer';
21
22
  import 'node:fs';
22
23
  import 'node:path';
23
- import 'fs';
24
24
  import 'drizzle-orm/postgres-js/migrator';
25
25
  import 'drizzle-orm';
26
26
  import 'drizzle-orm/postgres-js';
@@ -4,6 +4,7 @@ export { b3 as default } from './chunks/nitro/nitro.mjs';
4
4
  import '@anthropic-ai/claude-agent-sdk';
5
5
  import 'module';
6
6
  import 'path';
7
+ import 'fs';
7
8
  import 'os';
8
9
  import 'node:crypto';
9
10
  import 'stream';
@@ -20,7 +21,6 @@ import 'node:events';
20
21
  import 'node:buffer';
21
22
  import 'node:fs';
22
23
  import 'node:path';
23
- import 'fs';
24
24
  import 'drizzle-orm/postgres-js/migrator';
25
25
  import 'drizzle-orm';
26
26
  import 'drizzle-orm/postgres-js';
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cognova-prod",
3
- "version": "0.2.25",
3
+ "version": "0.2.27",
4
4
  "type": "module",
5
5
  "private": true,
6
6
  "dependencies": {
@@ -17,7 +17,7 @@ export function useTerminal() {
17
17
 
18
18
  function getWebSocketUrl(): string {
19
19
  const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:'
20
- return `${protocol}//${window.location.host}/terminal`
20
+ return `${protocol}//${window.location.host}/_ws/terminal`
21
21
  }
22
22
 
23
23
  function connect(term: Terminal) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "cognova",
3
3
  "type": "module",
4
- "version": "0.2.25",
4
+ "version": "0.2.27",
5
5
  "description": "Personal knowledge management system with Claude Code integration",
6
6
  "repository": {
7
7
  "type": "git",
@@ -0,0 +1,111 @@
1
+ import {
2
+ getOrCreatePtySession,
3
+ getOutputBuffer,
4
+ resizePty,
5
+ writeToPty,
6
+ getPtySession
7
+ } from '~~/server/utils/pty-manager'
8
+ import { auth } from '~~/server/utils/auth'
9
+
10
+ interface TerminalMessage {
11
+ type: 'input' | 'resize' | 'ping'
12
+ data?: string
13
+ cols?: number
14
+ rows?: number
15
+ }
16
+
17
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
+ function send(peer: any, data: object) {
19
+ try {
20
+ peer.send(JSON.stringify(data))
21
+ } catch {
22
+ // Client disconnected
23
+ }
24
+ }
25
+
26
+ export default defineWebSocketHandler({
27
+ async open(peer) {
28
+ // Validate auth from upgrade request cookies (middleware is bypassed for /_ws)
29
+ const headers = peer.request?.headers
30
+ if (headers) {
31
+ try {
32
+ const session = await auth.api.getSession({ headers })
33
+ if (!session) {
34
+ send(peer, { type: 'error', data: 'Unauthorized\r\n' })
35
+ peer.close(1008, 'Unauthorized')
36
+ return
37
+ }
38
+ } catch (e) {
39
+ console.error('[terminal] Auth check failed:', e)
40
+ send(peer, { type: 'error', data: 'Authentication failed\r\n' })
41
+ peer.close(1008, 'Authentication failed')
42
+ return
43
+ }
44
+ }
45
+
46
+ const sessionId = 'default'
47
+ const cols = 80
48
+ const rows = 24
49
+
50
+ console.log(`[terminal] WebSocket opened: ${peer.id}`)
51
+
52
+ try {
53
+ const { isNew } = getOrCreatePtySession(sessionId, cols, rows)
54
+
55
+ // If reconnecting, replay buffer
56
+ if (!isNew) {
57
+ const buffer = getOutputBuffer(sessionId)
58
+ if (buffer.length > 0) {
59
+ send(peer, { type: 'output', data: buffer.join('') })
60
+ }
61
+ }
62
+
63
+ // Forward PTY output to client
64
+ const session = getPtySession(sessionId)
65
+ if (session) {
66
+ session.pty.onData((data: string) => {
67
+ send(peer, { type: 'output', data })
68
+ })
69
+ }
70
+ } catch (error) {
71
+ const msg = error instanceof Error ? error.message : 'Unknown error'
72
+ const stack = error instanceof Error ? error.stack : ''
73
+ console.error('[terminal] Failed to create PTY session:', msg, stack)
74
+ send(peer, { type: 'error', data: `Failed to start terminal: ${msg}\r\n` })
75
+ }
76
+ },
77
+
78
+ message(peer, message) {
79
+ const sessionId = 'default'
80
+
81
+ try {
82
+ const msg = JSON.parse(message.text()) as TerminalMessage
83
+
84
+ switch (msg.type) {
85
+ case 'input':
86
+ if (msg.data)
87
+ writeToPty(sessionId, msg.data)
88
+ break
89
+
90
+ case 'resize':
91
+ if (msg.cols && msg.rows)
92
+ resizePty(sessionId, msg.cols, msg.rows)
93
+ break
94
+
95
+ case 'ping':
96
+ send(peer, { type: 'pong' })
97
+ break
98
+ }
99
+ } catch (e) {
100
+ console.error('[terminal] Message error:', e)
101
+ }
102
+ },
103
+
104
+ close(peer) {
105
+ console.log(`[terminal] WebSocket closed: ${peer.id}`)
106
+ },
107
+
108
+ error(peer, error) {
109
+ console.error(`[terminal] WebSocket error for ${peer.id}:`, error)
110
+ }
111
+ })
@@ -1,12 +1,48 @@
1
1
  import { createRequire } from 'module'
2
- import { resolve } from 'path'
2
+ import { dirname, resolve } from 'path'
3
+ import { existsSync, mkdirSync } from 'fs'
3
4
  import type { IPty } from 'node-pty'
4
5
  import { getVaultRoot } from './path-validator'
5
6
 
6
7
  // Use createRequire for node-pty to avoid ESM issues with native modules
7
8
  // For bundled builds, we need to resolve from a known location
8
9
  const requireFromCwd = createRequire(resolve(process.cwd(), 'package.json'))
9
- const pty = requireFromCwd('node-pty')
10
+ let pty: typeof import('node-pty')
11
+ try {
12
+ pty = requireFromCwd('node-pty')
13
+ const helperPath = resolve(dirname(requireFromCwd.resolve('node-pty')), '..', 'build', 'Release', 'spawn-helper')
14
+ console.log(`[PTY] node-pty loaded, spawn-helper exists: ${existsSync(helperPath)} (${helperPath})`)
15
+ } catch (e) {
16
+ console.error('[PTY] Failed to load node-pty:', e)
17
+ throw e
18
+ }
19
+
20
+ // Shell candidates in order of preference
21
+ const SHELL_CANDIDATES = [
22
+ process.env.SHELL,
23
+ '/bin/zsh',
24
+ '/bin/bash',
25
+ '/bin/sh'
26
+ ].filter(Boolean) as string[]
27
+
28
+ function findShell(): string {
29
+ for (const sh of SHELL_CANDIDATES)
30
+ if (existsSync(sh)) return sh
31
+ return '/bin/sh'
32
+ }
33
+
34
+ function ptyEnv(): Record<string, string | undefined> {
35
+ const nodeDir = dirname(process.execPath)
36
+ const currentPath = process.env.PATH || ''
37
+ return {
38
+ ...process.env,
39
+ PATH: currentPath.includes(nodeDir)
40
+ ? currentPath
41
+ : `${nodeDir}:${currentPath}`,
42
+ TERM: 'xterm-256color',
43
+ COLORTERM: 'truecolor'
44
+ }
45
+ }
10
46
 
11
47
  interface PtySession {
12
48
  pty: IPty
@@ -20,21 +56,21 @@ const MAX_BUFFER_SIZE = 10000 // Lines to keep in buffer
20
56
  const SESSION_TIMEOUT = 30 * 60 * 1000 // 30 minutes
21
57
 
22
58
  export function createPtySession(sessionId: string, cols = 80, rows = 24): IPty {
23
- const shell = process.env.SHELL || '/bin/bash'
59
+ const shell = findShell()
24
60
  const cwd = getVaultRoot()
25
61
 
26
- console.log(`[PTY] Creating session: shell=${shell}, cwd=${cwd}, cols=${cols}, rows=${rows}`)
62
+ // Ensure cwd exists so posix_spawnp doesn't fail
63
+ if (!existsSync(cwd)) mkdirSync(cwd, { recursive: true })
64
+
65
+ const env = ptyEnv()
66
+ console.log(`[PTY] Creating session: shell=${shell}, cwd=${cwd}, cols=${cols}, rows=${rows}, PATH=${(env.PATH || '').slice(0, 200)}`)
27
67
 
28
68
  const ptyProcess = pty.spawn(shell, [], {
29
69
  name: 'xterm-256color',
30
70
  cols,
31
71
  rows,
32
72
  cwd,
33
- env: {
34
- ...process.env,
35
- TERM: 'xterm-256color',
36
- COLORTERM: 'truecolor'
37
- }
73
+ env
38
74
  }) as IPty
39
75
 
40
76
  const session: PtySession = {
@@ -1 +0,0 @@
1
- import{h as e,j as r,a6 as t}from"./CGgHmnnS.js";function a(o){return e(()=>r(o)?!!t(o)?.closest("form"):!0)}export{a as u};
@@ -1 +0,0 @@
1
- import"./CGgHmnnS.js";const s=globalThis.setInterval;export{s};
@@ -1 +0,0 @@
1
- import{b as a,n as i}from"./CGgHmnnS.js";import{u}from"./B5oEzB-M.js";const r=a(()=>{const{isAuthenticated:e,isPending:t}=u();if(!t.value&&!e.value)return i("/login")});export{r as default};
@@ -1 +0,0 @@
1
- import{S as e}from"./CGgHmnnS.js";function a(r,u="reka"){return r||`${u}-${e?.()}`}export{a as u};
@@ -1 +0,0 @@
1
- {"id":"83bb5bdd-243c-4a32-ac1d-07c4f2cfe4a1","timestamp":1771945779759,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"terminal.mjs","sources":["../../../../server/routes/terminal.ts"],"names":[],"mappings":"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"}