cognova 0.1.10 → 0.2.2

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 (287) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{BLIw7q7e.js → 4MiwzAAt.js} +2 -2
  3. package/.output/public/_nuxt/{B8gRcrNP.js → 5ZXA0Ckq.js} +1 -1
  4. package/.output/public/_nuxt/9IQmsEjr.js +1 -0
  5. package/.output/public/_nuxt/{DlmPGBGX.js → 9QnH0xQM.js} +1 -1
  6. package/.output/public/_nuxt/{Qi4Arc25.js → B1X4Bzcy.js} +1 -1
  7. package/.output/public/_nuxt/{kuWCWJ92.js → B3y_Qqox.js} +1 -1
  8. package/.output/public/_nuxt/{CJVO4EWp.js → B6S_ob86.js} +1 -1
  9. package/.output/public/_nuxt/{xdp-pGVh.js → BAIz-dEB.js} +1 -1
  10. package/.output/public/_nuxt/{DIF41aNz.js → BCtfQCzC.js} +1 -1
  11. package/.output/public/_nuxt/BIIJhjQO.js +1 -0
  12. package/.output/public/_nuxt/{QOhiCNXN.js → BIckl6wA.js} +1 -1
  13. package/.output/public/_nuxt/{CqsT2LL7.js → BJ3o57WW.js} +1 -1
  14. package/.output/public/_nuxt/BNetzZzF.js +1 -0
  15. package/.output/public/_nuxt/{C5jkgqcy.js → BOj6t-oo.js} +1 -1
  16. package/.output/public/_nuxt/BS0ofHJK.js +1 -0
  17. package/.output/public/_nuxt/{CdKHIoKZ.js → BWhMnjID.js} +1 -1
  18. package/.output/public/_nuxt/{BUjpjVNI.js → BYjadNrw.js} +1 -1
  19. package/.output/public/_nuxt/{DLkyutNs.js → BZXMQuYP.js} +1 -1
  20. package/.output/public/_nuxt/B_3_hrpn.js +1 -0
  21. package/.output/public/_nuxt/BaBZjmMC.js +1 -0
  22. package/.output/public/_nuxt/BaMqDm5u.js +1 -0
  23. package/.output/public/_nuxt/{DwSbu8wg.js → BasgsT_S.js} +1 -1
  24. package/.output/public/_nuxt/{B4nb4eka.js → BffWCM73.js} +1 -1
  25. package/.output/public/_nuxt/{BxaDmjPM.js → BhzMoffi.js} +1 -1
  26. package/.output/public/_nuxt/{DjzaeRs8.js → BjjCvHLT.js} +1 -1
  27. package/.output/public/_nuxt/{CtJTw_81.js → BlAZO7nq.js} +1 -1
  28. package/.output/public/_nuxt/{C6nLQFo5.js → BlhFigLL.js} +1 -1
  29. package/.output/public/_nuxt/{CiJs9fhO.js → Bm9LyG4F.js} +1 -1
  30. package/.output/public/_nuxt/BoIxv-gM.js +1 -0
  31. package/.output/public/_nuxt/{C8xYfk_L.js → BqKFIuRj.js} +1 -1
  32. package/.output/public/_nuxt/Br19oYkq.js +1 -0
  33. package/.output/public/_nuxt/{htEHZODo.js → BrNqhp1a.js} +3 -3
  34. package/.output/public/_nuxt/{DFKQfGt8.js → BsEZoHd1.js} +1 -1
  35. package/.output/public/_nuxt/{CmF_IsFj.js → BxXOsXrM.js} +3 -3
  36. package/.output/public/_nuxt/{q7M6chAB.js → BzOqrmGa.js} +3 -3
  37. package/.output/public/_nuxt/{DT_NtxcV.js → C0JKNMDO.js} +1 -1
  38. package/.output/public/_nuxt/{BOb3QiPL.js → C0kh_F7v.js} +1 -1
  39. package/.output/public/_nuxt/{D472oOJg.js → C3FxIITy.js} +1 -1
  40. package/.output/public/_nuxt/{Bh7WRSzZ.js → C4pxqdgg.js} +1 -1
  41. package/.output/public/_nuxt/{ByWk4RVe.js → C61KgSco.js} +1 -1
  42. package/.output/public/_nuxt/{TjI_tk0y.js → C69W7k2j.js} +1 -1
  43. package/.output/public/_nuxt/{uqOLgWHD.js → C6RC3lA1.js} +1 -1
  44. package/.output/public/_nuxt/{DvA5meSv.js → C6aqGHu1.js} +1 -1
  45. package/.output/public/_nuxt/{CQM_5Ht0.js → CJUdYEdO.js} +1 -1
  46. package/.output/public/_nuxt/{BzWvPP8W.js → CKkC3Ptm.js} +1 -1
  47. package/.output/public/_nuxt/CNnJrDvu.js +1 -0
  48. package/.output/public/_nuxt/{Bf2SSE6Q.js → CVJQGP1Q.js} +1 -1
  49. package/.output/public/_nuxt/{0p0wrrYN.js → CVgTJeSq.js} +1 -1
  50. package/.output/public/_nuxt/CWMUi89H.js +1 -0
  51. package/.output/public/_nuxt/{DUYrX_jl.js → CYP_MLH8.js} +1 -1
  52. package/.output/public/_nuxt/{DEDt4pMc.js → C_BdYLzz.js} +1 -1
  53. package/.output/public/_nuxt/{CU3_Ewk2.js → Cdt3I3Go.js} +1 -1
  54. package/.output/public/_nuxt/{DX5y-Dpt.js → Cdu2qGgq.js} +1 -1
  55. package/.output/public/_nuxt/{DQunOghN.js → CeIVm4A3.js} +1 -1
  56. package/.output/public/_nuxt/CeIu7z4p.js +1 -0
  57. package/.output/public/_nuxt/{B73gh0JS.js → Ci7UEZQh.js} +1 -1
  58. package/.output/public/_nuxt/{C7NKjT6R.js → CihWZmJe.js} +2 -2
  59. package/.output/public/_nuxt/{902fefRh.js → CitkKxhw.js} +1 -1
  60. package/.output/public/_nuxt/{DH_IrAcJ.js → CmzH6R-N.js} +2 -2
  61. package/.output/public/_nuxt/{CgPM54k_.js → Cp2MA0cm.js} +1 -1
  62. package/.output/public/_nuxt/{hfaTbWV_.js → CqU2XbzO.js} +1 -1
  63. package/.output/public/_nuxt/{CuxiR1jN.js → Cqy_L_ip.js} +1 -1
  64. package/.output/public/_nuxt/{BFmbqknL.js → Cr8ixbr1.js} +1 -1
  65. package/.output/public/_nuxt/{BkiRMhMm.js → CsJ9KhQ4.js} +1 -1
  66. package/.output/public/_nuxt/{Dhvv7eaa.js → CtYFj7k1.js} +1 -1
  67. package/.output/public/_nuxt/{DG0VCYsy.js → CtchsY6e.js} +1 -1
  68. package/.output/public/_nuxt/{pqmDf_cQ.js → Cvp7FI3T.js} +1 -1
  69. package/.output/public/_nuxt/{38G-HXi8.js → CxuZBC8n.js} +5 -5
  70. package/.output/public/_nuxt/D2689qk4.js +1 -0
  71. package/.output/public/_nuxt/{Dw5YM8ji.js → D31L7Ks6.js} +1 -1
  72. package/.output/public/_nuxt/{DYTkcgRd.js → D3RiUGdz.js} +1 -1
  73. package/.output/public/_nuxt/{Csa19Lyu.js → D3e44mCL.js} +1 -1
  74. package/.output/public/_nuxt/{DmXY_FiQ.js → D6t3dcTl.js} +1 -1
  75. package/.output/public/_nuxt/{ChNxcBlH.js → DAQhmSv4.js} +1 -1
  76. package/.output/public/_nuxt/{BFtDSgo7.js → DB359q8R.js} +1 -1
  77. package/.output/public/_nuxt/{CrUNulhU.js → DCzfkCGa.js} +1 -1
  78. package/.output/public/_nuxt/{Cn1H4f01.js → DG-T44jj.js} +1 -1
  79. package/.output/public/_nuxt/{CAGIVdiL.js → DGX0tzL8.js} +1 -1
  80. package/.output/public/_nuxt/DHG66LPS.js +1 -0
  81. package/.output/public/_nuxt/{BV0QyLX9.js → DHKLCQRG.js} +1 -1
  82. package/.output/public/_nuxt/{DFs-kxzi.js → DIoI0uJm.js} +1 -1
  83. package/.output/public/_nuxt/{koWn-xAZ.js → DJ5V-y_x.js} +1 -1
  84. package/.output/public/_nuxt/{HUnwr3r4.js → DJMS2og1.js} +1 -1
  85. package/.output/public/_nuxt/{CjfarCg3.js → DJjDvbZE.js} +1 -1
  86. package/.output/public/_nuxt/DK9jxJ0g.js +1 -0
  87. package/.output/public/_nuxt/{BjN5vE4c.js → DKZxeXDQ.js} +1 -1
  88. package/.output/public/_nuxt/{CcWl1F-m.js → DLETdGFL.js} +1 -1
  89. package/.output/public/_nuxt/DOICd-Ld.js +1 -0
  90. package/.output/public/_nuxt/{bX88p2Mb.js → DPEcH-gi.js} +3 -3
  91. package/.output/public/_nuxt/{DDqY0xzR.js → DSRrg8JT.js} +1 -1
  92. package/.output/public/_nuxt/{B67bSHkr.js → DTDgHTuh.js} +2 -2
  93. package/.output/public/_nuxt/{BYzrgyQu.js → D_3Rq1BS.js} +1 -1
  94. package/.output/public/_nuxt/{TQO0uTDM.js → Daz4MeL6.js} +1 -1
  95. package/.output/public/_nuxt/{DxkqpACx.js → Db2v8O7O.js} +1 -1
  96. package/.output/public/_nuxt/{CHa8PuBL.js → Db8-_gO7.js} +1 -1
  97. package/.output/public/_nuxt/{BUEnkhcM.js → DfQu3kEw.js} +1 -1
  98. package/.output/public/_nuxt/{hDpBJf9-.js → DgV-EDJ9.js} +1 -1
  99. package/.output/public/_nuxt/{D1CNUSvv.js → DnjGH3SQ.js} +1 -1
  100. package/.output/public/_nuxt/Dp2X5R2m.js +1 -0
  101. package/.output/public/_nuxt/DqB723Z0.js +1 -0
  102. package/.output/public/_nuxt/{DcIiuvW-.js → DyRelyfs.js} +1 -1
  103. package/.output/public/_nuxt/{sgWRawF5.js → Dy_Cq5LQ.js} +1 -1
  104. package/.output/public/_nuxt/{B4T7pJz5.js → DznawRFW.js} +1 -1
  105. package/.output/public/_nuxt/EuOqK1A6.js +1 -0
  106. package/.output/public/_nuxt/{Dn4PGlE2.js → FNC8XZTk.js} +1 -1
  107. package/.output/public/_nuxt/{ZToTf_46.js → Fukkqjkf.js} +1 -1
  108. package/.output/public/_nuxt/{D5aulRKh.js → FvlxxmNk.js} +2 -2
  109. package/.output/public/_nuxt/{C2IkB9Vg.js → IRSbVPIu.js} +1 -1
  110. package/.output/public/_nuxt/{QESaAMMF.js → JJ3634gV.js} +1 -1
  111. package/.output/public/_nuxt/{DGUr7xQ7.js → Jez9DHn7.js} +1 -1
  112. package/.output/public/_nuxt/{DPdR3tu5.js → KKK6HVeG.js} +1 -1
  113. package/.output/public/_nuxt/{D0bh5qKf.js → Lwdv_RKd.js} +1 -1
  114. package/.output/public/_nuxt/{BkRZ4-cg.js → Nb2jBtYT.js} +1 -1
  115. package/.output/public/_nuxt/Q8Ps7oN5.js +1 -0
  116. package/.output/public/_nuxt/SXTDhzp6.js +1 -0
  117. package/.output/public/_nuxt/{GC9cY_vb.js → Sg2Lwc46.js} +1 -1
  118. package/.output/public/_nuxt/{GI6TTFJt.js → YuTZB7sD.js} +1 -1
  119. package/.output/public/_nuxt/{D2_L0Ze1.js → _CYZi8HN.js} +1 -1
  120. package/.output/public/_nuxt/_J_7XIn-.js +1 -0
  121. package/.output/public/_nuxt/builds/latest.json +1 -1
  122. package/.output/public/_nuxt/builds/meta/a1e9100c-1a4f-4f7e-bb53-9dbe0d07effb.json +1 -0
  123. package/.output/public/_nuxt/{DZNG1AbU.js → cABRLVee.js} +1 -1
  124. package/.output/public/_nuxt/eko-0FUm.js +1 -0
  125. package/.output/public/_nuxt/entry.CGxIBGAf.css +1 -0
  126. package/.output/public/_nuxt/{BIjt_cIY.js → g20UHUCv.js} +1 -1
  127. package/.output/public/_nuxt/{HIlTvc-2.js → gBC9k4Qj.js} +1 -1
  128. package/.output/public/_nuxt/{IQoLFBX8.js → ghuJ76mD.js} +1 -1
  129. package/.output/public/_nuxt/{BGYWH_3A.js → iBGCpHdw.js} +2 -2
  130. package/.output/public/_nuxt/{uUGV1V-6.js → inmzPrjz.js} +1 -1
  131. package/.output/public/_nuxt/{CgHipF8Q.js → m5kGCDpI.js} +1 -1
  132. package/.output/public/_nuxt/{Bj0OFhNx.js → nIU2F7ia.js} +3 -3
  133. package/.output/public/_nuxt/{Dcv_tyzb.js → oIX-ZDN6.js} +1 -1
  134. package/.output/public/_nuxt/{B7NSgclV.js → pcUI-zuY.js} +1 -1
  135. package/.output/public/_nuxt/{DpF6VoC4.js → sf57orEk.js} +1 -1
  136. package/.output/public/_nuxt/{DS_mF4Ol.js → wCGVE8_e.js} +1 -1
  137. package/.output/public/_nuxt/{KAzeBbaL.js → xuzLdW-o.js} +1 -1
  138. package/.output/public/_nuxt/{ytKsJZlj.js → yNrp2XvX.js} +1 -1
  139. package/.output/public/_nuxt/{B3mdl0Ae.js → yuf23kh9.js} +1 -1
  140. package/.output/server/chunks/build/{_uuid_-DAZ5CM0C.mjs → _uuid_-0UgdUhfY.mjs} +6 -5
  141. package/.output/server/chunks/build/{_uuid_-DAZ5CM0C.mjs.map → _uuid_-0UgdUhfY.mjs.map} +1 -1
  142. package/.output/server/chunks/build/chat-CZMiB68R.mjs.map +1 -1
  143. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  144. package/.output/server/chunks/build/dashboard-YEscLBQN.mjs +1109 -0
  145. package/.output/server/chunks/build/dashboard-YEscLBQN.mjs.map +1 -0
  146. package/.output/server/chunks/build/{docs-CFAI1clt.mjs → docs-Dk2JnYq3.mjs} +6 -5
  147. package/.output/server/chunks/build/{docs-CFAI1clt.mjs.map → docs-Dk2JnYq3.mjs.map} +1 -1
  148. package/.output/server/chunks/build/server.mjs +3 -3
  149. package/.output/server/chunks/build/settings-DdkKCJ00.mjs +1 -1
  150. package/.output/server/chunks/build/styles.mjs +4 -4
  151. package/.output/server/chunks/build/{CodeEditorFallback-DfYly7f5.mjs → useCopyToClipboard-vi6FYyyZ.mjs} +29 -2
  152. package/.output/server/chunks/build/useCopyToClipboard-vi6FYyyZ.mjs.map +1 -0
  153. package/.output/server/chunks/build/useNotificationBus-BG5JNQf1.mjs +1 -1
  154. package/.output/server/chunks/nitro/nitro.mjs +819 -824
  155. package/.output/server/chunks/routes/api/dashboard/overview.get.mjs +149 -0
  156. package/.output/server/chunks/routes/api/dashboard/overview.get.mjs.map +1 -0
  157. package/.output/server/chunks/routes/api/documents/_id/public.get.mjs +1 -1
  158. package/.output/server/chunks/routes/api/documents/_id/restore.post.mjs +1 -1
  159. package/.output/server/chunks/routes/api/documents/by-path.post.mjs +1 -1
  160. package/.output/server/chunks/routes/api/documents/index.delete.mjs +1 -1
  161. package/.output/server/chunks/routes/api/documents/index.put.mjs +1 -1
  162. package/.output/server/chunks/routes/api/fs/delete.post.mjs +1 -1
  163. package/.output/server/chunks/routes/api/fs/list.get.mjs +1 -1
  164. package/.output/server/chunks/routes/api/fs/mkdir.post.mjs +1 -1
  165. package/.output/server/chunks/routes/api/fs/move.post.mjs +1 -1
  166. package/.output/server/chunks/routes/api/fs/read.post.mjs +1 -1
  167. package/.output/server/chunks/routes/api/fs/rename.post.mjs +1 -1
  168. package/.output/server/chunks/routes/api/fs/write.post.mjs +1 -1
  169. package/.output/server/chunks/routes/api/health.get.mjs +1 -1
  170. package/.output/server/chunks/routes/api/home.get.mjs +1 -1
  171. package/.output/server/chunks/routes/api/hooks/index.get.mjs +1 -1
  172. package/.output/server/chunks/routes/api/hooks/index.post.mjs +1 -1
  173. package/.output/server/chunks/routes/api/hooks/stats.get.mjs +1 -1
  174. package/.output/server/chunks/routes/api/index.get3.mjs +1 -1
  175. package/.output/server/chunks/routes/api/index.get4.mjs +1 -1
  176. package/.output/server/chunks/routes/api/index.get5.mjs +1 -1
  177. package/.output/server/chunks/routes/api/index.get6.mjs +1 -1
  178. package/.output/server/chunks/routes/api/index.get7.mjs +1 -1
  179. package/.output/server/chunks/routes/api/index.get8.mjs +1 -1
  180. package/.output/server/chunks/routes/api/index.post2.mjs +1 -1
  181. package/.output/server/chunks/routes/api/index.post3.mjs +1 -1
  182. package/.output/server/chunks/routes/api/index.post4.mjs +1 -1
  183. package/.output/server/chunks/routes/api/index.put.mjs +1 -1
  184. package/.output/server/chunks/routes/api/memory/_id_.delete.mjs +1 -1
  185. package/.output/server/chunks/routes/api/memory/context.get.mjs +1 -1
  186. package/.output/server/chunks/routes/api/memory/extract.post.mjs +1 -1
  187. package/.output/server/chunks/routes/api/memory/search.get.mjs +1 -1
  188. package/.output/server/chunks/routes/api/memory/store.post.mjs +1 -1
  189. package/.output/server/chunks/routes/api/projects/index.delete.mjs +1 -1
  190. package/.output/server/chunks/routes/api/projects/index.get.mjs +1 -1
  191. package/.output/server/chunks/routes/api/projects/index.put.mjs +1 -1
  192. package/.output/server/chunks/routes/api/secrets/_key_.delete.mjs +1 -1
  193. package/.output/server/chunks/routes/api/secrets/_key_.get.mjs +1 -1
  194. package/.output/server/chunks/routes/api/secrets/_key_.put.mjs +1 -1
  195. package/.output/server/chunks/routes/api/tasks/_id/restore.post.mjs +1 -1
  196. package/.output/server/chunks/routes/api/tasks/index.delete.mjs +1 -1
  197. package/.output/server/chunks/routes/api/tasks/index.put.mjs +1 -1
  198. package/.output/server/chunks/routes/api/tasks/tags.get.mjs +1 -1
  199. package/.output/server/chunks/routes/api/usage/stats.get.mjs +1 -1
  200. package/.output/server/chunks/routes/renderer.mjs +1 -1
  201. package/.output/server/package.json +1 -1
  202. package/Claude/CLAUDE.md +9 -4
  203. package/Claude/skills/environment/SKILL.md +6 -0
  204. package/Claude/skills/memory/SKILL.md +6 -0
  205. package/Claude/skills/project/SKILL.md +6 -0
  206. package/Claude/skills/secret/SKILL.md +85 -0
  207. package/Claude/skills/secret/secret.py +146 -0
  208. package/Claude/skills/skill-creator/SKILL.md +30 -0
  209. package/Claude/skills/task/SKILL.md +6 -0
  210. package/app/components/dashboard/RecentChats.vue +93 -0
  211. package/app/components/dashboard/RecentDocs.vue +108 -0
  212. package/app/components/dashboard/StatCards.vue +82 -0
  213. package/app/components/dashboard/UpcomingTasks.vue +119 -0
  214. package/app/components/dashboard/UsageSummary.vue +94 -0
  215. package/app/components/editor/DocumentEditor.vue +5 -3
  216. package/app/components/skills/Card.vue +82 -0
  217. package/app/components/skills/CreateModal.vue +156 -0
  218. package/app/components/skills/Editor.vue +135 -0
  219. package/app/components/skills/FileTree.vue +336 -0
  220. package/app/components/skills/LibraryCard.vue +122 -0
  221. package/app/components/skills/RenameModal.vue +84 -0
  222. package/app/composables/useCopyToClipboard.ts +37 -0
  223. package/app/layouts/dashboard.vue +7 -0
  224. package/app/pages/chat.vue +11 -1
  225. package/app/pages/dashboard.vue +65 -64
  226. package/app/pages/skills/[name].vue +198 -0
  227. package/app/pages/skills/index.vue +157 -0
  228. package/app/pages/skills/library.vue +209 -0
  229. package/app/pages/view/[uuid].vue +4 -3
  230. package/dist/cli/index.js +23 -23
  231. package/nuxt.config.ts +9 -0
  232. package/package.json +1 -1
  233. package/server/api/dashboard/overview.get.ts +133 -0
  234. package/server/api/skills/[name]/files/create.post.ts +45 -0
  235. package/server/api/skills/[name]/files/delete.post.ts +45 -0
  236. package/server/api/skills/[name]/files/index.get.ts +28 -0
  237. package/server/api/skills/[name]/files/read.post.ts +41 -0
  238. package/server/api/skills/[name]/files/write.post.ts +42 -0
  239. package/server/api/skills/[name]/index.get.ts +54 -0
  240. package/server/api/skills/[name]/rename.post.ts +64 -0
  241. package/server/api/skills/[name]/toggle.post.ts +32 -0
  242. package/server/api/skills/create.post.ts +51 -0
  243. package/server/api/skills/generate.post.ts +126 -0
  244. package/server/api/skills/index.get.ts +57 -0
  245. package/server/api/skills/library/check-updates.get.ts +46 -0
  246. package/server/api/skills/library/index.get.ts +56 -0
  247. package/server/api/skills/library/install.post.ts +73 -0
  248. package/server/db/schema.ts +17 -0
  249. package/server/drizzle/migrations/0012_good_deadpool.sql +12 -0
  250. package/server/drizzle/migrations/0013_swift_snowbird.sql +1 -0
  251. package/server/drizzle/migrations/meta/0012_snapshot.json +1713 -0
  252. package/server/drizzle/migrations/meta/0013_snapshot.json +1720 -0
  253. package/server/drizzle/migrations/meta/_journal.json +14 -0
  254. package/server/middleware/auth.ts +0 -1
  255. package/server/plugins/05.skills-catalog.ts +105 -0
  256. package/server/utils/skills-path.ts +197 -0
  257. package/shared/types/index.ts +102 -0
  258. package/.output/public/_nuxt/BAWOIJ__.js +0 -1
  259. package/.output/public/_nuxt/B_paJhyq.js +0 -1
  260. package/.output/public/_nuxt/BdYiqlvd.js +0 -1
  261. package/.output/public/_nuxt/BpiqBbAF.js +0 -1
  262. package/.output/public/_nuxt/BqDfJ2hd.js +0 -1
  263. package/.output/public/_nuxt/BxgB0-mq.js +0 -1
  264. package/.output/public/_nuxt/C1hs5K_e.js +0 -1
  265. package/.output/public/_nuxt/C4Ncdd9K.js +0 -1
  266. package/.output/public/_nuxt/CAQ2bGHm.js +0 -1
  267. package/.output/public/_nuxt/CCpQAJpz.js +0 -1
  268. package/.output/public/_nuxt/CXXD-owe.js +0 -1
  269. package/.output/public/_nuxt/CcRijyCZ.js +0 -1
  270. package/.output/public/_nuxt/CoEfPCKj.js +0 -1
  271. package/.output/public/_nuxt/D08h2e32.js +0 -1
  272. package/.output/public/_nuxt/D_t_j6EB.js +0 -1
  273. package/.output/public/_nuxt/DaZy6Ki2.js +0 -1
  274. package/.output/public/_nuxt/DdrudNqf.js +0 -1
  275. package/.output/public/_nuxt/DdtmJxeb.js +0 -1
  276. package/.output/public/_nuxt/Dgv5fJ6Q.js +0 -1
  277. package/.output/public/_nuxt/DhIluGHO.js +0 -1
  278. package/.output/public/_nuxt/DuRk5Dc_.js +0 -1
  279. package/.output/public/_nuxt/VFwvl1mU.js +0 -1
  280. package/.output/public/_nuxt/builds/meta/555978fa-172f-4d0d-8238-88f8b610f712.json +0 -1
  281. package/.output/public/_nuxt/entry.DPbNaeQT.css +0 -1
  282. package/.output/public/_nuxt/hZV7Z8Ig.js +0 -1
  283. package/.output/public/_nuxt/lK0inMQ6.js +0 -1
  284. package/.output/server/chunks/build/CodeEditorFallback-DfYly7f5.mjs.map +0 -1
  285. package/.output/server/chunks/build/dashboard-DtbGchTa.mjs +0 -277
  286. package/.output/server/chunks/build/dashboard-DtbGchTa.mjs.map +0 -1
  287. /package/.output/public/_nuxt/{language-detection.Be_IvFWy.css → useCopyToClipboard.Be_IvFWy.css} +0 -0
@@ -0,0 +1,149 @@
1
+ import { d as defineEventHandler, r as requireDb, a as getDb, o as tasks, p as projects, l as conversations, q as documents, v as tokenUsage } from '../../../nitro/nitro.mjs';
2
+ import { sql, and, isNull, inArray, eq, ne, desc, gte } from 'drizzle-orm';
3
+ import '@anthropic-ai/claude-agent-sdk';
4
+ import 'crypto';
5
+ import 'module';
6
+ import 'path';
7
+ import 'node:http';
8
+ import 'node:https';
9
+ import 'node:crypto';
10
+ import 'stream';
11
+ import 'events';
12
+ import 'http';
13
+ import 'buffer';
14
+ import 'zlib';
15
+ import 'https';
16
+ import 'net';
17
+ import 'tls';
18
+ import 'url';
19
+ import 'node:events';
20
+ import 'node:buffer';
21
+ import 'node:fs';
22
+ import 'node:path';
23
+ import 'fs';
24
+ import 'drizzle-orm/postgres-js/migrator';
25
+ import 'drizzle-orm/postgres-js';
26
+ import 'postgres';
27
+ import 'drizzle-orm/pg-core';
28
+ import 'better-auth';
29
+ import 'better-auth/adapters/drizzle';
30
+ import 'chokidar';
31
+ import 'fs/promises';
32
+ import 'gray-matter';
33
+ import 'cron';
34
+ import 'node:url';
35
+ import '@iconify/utils';
36
+ import 'consola';
37
+
38
+ const overview_get = defineEventHandler(async (event) => {
39
+ var _a, _b, _c, _d;
40
+ requireDb();
41
+ const db = getDb();
42
+ const sevenDaysAgo = new Date(Date.now() - 7 * 24 * 60 * 60 * 1e3);
43
+ const [taskCounts, upcomingTasks, recentConversations, recentDocuments, usageAgg] = await Promise.all([
44
+ // Task counts: todo + in_progress (not deleted)
45
+ db.select({
46
+ status: tasks.status,
47
+ count: sql`count(*)::int`
48
+ }).from(tasks).where(and(
49
+ isNull(tasks.deletedAt),
50
+ inArray(tasks.status, ["todo", "in_progress"])
51
+ )).groupBy(tasks.status),
52
+ // Top 5 upcoming tasks (not done, not deleted)
53
+ db.select({
54
+ id: tasks.id,
55
+ title: tasks.title,
56
+ status: tasks.status,
57
+ priority: tasks.priority,
58
+ dueDate: tasks.dueDate,
59
+ projectName: projects.name,
60
+ projectColor: projects.color
61
+ }).from(tasks).leftJoin(projects, eq(tasks.projectId, projects.id)).where(and(
62
+ isNull(tasks.deletedAt),
63
+ ne(tasks.status, "done")
64
+ )).orderBy(
65
+ sql`${tasks.dueDate} ASC NULLS LAST`,
66
+ desc(tasks.priority)
67
+ ).limit(5),
68
+ // Last 3 conversations
69
+ db.select({
70
+ id: conversations.id,
71
+ sessionId: conversations.sessionId,
72
+ title: conversations.title,
73
+ messageCount: conversations.messageCount,
74
+ startedAt: conversations.startedAt
75
+ }).from(conversations).orderBy(desc(conversations.startedAt)).limit(3),
76
+ // Last 3 documents (not deleted)
77
+ db.select({
78
+ id: documents.id,
79
+ title: documents.title,
80
+ path: documents.path,
81
+ modifiedAt: documents.modifiedAt,
82
+ projectName: projects.name,
83
+ projectColor: projects.color
84
+ }).from(documents).leftJoin(projects, eq(documents.projectId, projects.id)).where(isNull(documents.deletedAt)).orderBy(desc(documents.modifiedAt)).limit(3),
85
+ // 7-day usage summary
86
+ db.select({
87
+ totalCost: sql`coalesce(sum(${tokenUsage.costUsd}), 0)::real`,
88
+ totalCalls: sql`count(*)::int`,
89
+ totalInputTokens: sql`coalesce(sum(${tokenUsage.inputTokens}), 0)::int`,
90
+ totalOutputTokens: sql`coalesce(sum(${tokenUsage.outputTokens}), 0)::int`
91
+ }).from(tokenUsage).where(gte(tokenUsage.createdAt, sevenDaysAgo))
92
+ ]);
93
+ let todoCount = 0;
94
+ let inProgressCount = 0;
95
+ for (const row of taskCounts) {
96
+ if (row.status === "todo") todoCount = row.count;
97
+ else if (row.status === "in_progress") inProgressCount = row.count;
98
+ }
99
+ const usageRow = usageAgg[0];
100
+ const overview = {
101
+ tasks: {
102
+ todoCount,
103
+ inProgressCount,
104
+ upcoming: upcomingTasks.map((t) => {
105
+ var _a2, _b2, _c2, _d2;
106
+ return {
107
+ id: t.id,
108
+ title: t.title,
109
+ status: t.status,
110
+ priority: t.priority,
111
+ dueDate: (_b2 = (_a2 = t.dueDate) == null ? void 0 : _a2.toISOString()) != null ? _b2 : null,
112
+ projectName: (_c2 = t.projectName) != null ? _c2 : null,
113
+ projectColor: (_d2 = t.projectColor) != null ? _d2 : null
114
+ };
115
+ })
116
+ },
117
+ conversations: recentConversations.map((c) => {
118
+ var _a2;
119
+ return {
120
+ id: c.id,
121
+ sessionId: c.sessionId,
122
+ title: (_a2 = c.title) != null ? _a2 : null,
123
+ messageCount: c.messageCount,
124
+ startedAt: c.startedAt.toISOString()
125
+ };
126
+ }),
127
+ documents: recentDocuments.map((d) => {
128
+ var _a2, _b2, _c2, _d2;
129
+ return {
130
+ id: d.id,
131
+ title: d.title,
132
+ path: d.path,
133
+ modifiedAt: (_b2 = (_a2 = d.modifiedAt) == null ? void 0 : _a2.toISOString()) != null ? _b2 : null,
134
+ projectName: (_c2 = d.projectName) != null ? _c2 : null,
135
+ projectColor: (_d2 = d.projectColor) != null ? _d2 : null
136
+ };
137
+ }),
138
+ usage: {
139
+ totalCost7d: (_a = usageRow == null ? void 0 : usageRow.totalCost) != null ? _a : 0,
140
+ totalCalls7d: (_b = usageRow == null ? void 0 : usageRow.totalCalls) != null ? _b : 0,
141
+ totalInputTokens7d: (_c = usageRow == null ? void 0 : usageRow.totalInputTokens) != null ? _c : 0,
142
+ totalOutputTokens7d: (_d = usageRow == null ? void 0 : usageRow.totalOutputTokens) != null ? _d : 0
143
+ }
144
+ };
145
+ return { data: overview };
146
+ });
147
+
148
+ export { overview_get as default };
149
+ //# sourceMappingURL=overview.get.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overview.get.mjs","sources":["../../../../../../server/api/dashboard/overview.get.ts"],"names":["schema.tasks","schema.projects","schema.conversations","schema.documents","schema.tokenUsage","_b","_a","_c","_d"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, g as getRouterParam, c as createError, a as getDb, o as documents } from '../../../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, g as getRouterParam, c as createError, a as getDb, q as documents } from '../../../../nitro/nitro.mjs';
2
2
  import { eq } from 'drizzle-orm';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'crypto';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, r as requireDb, g as getRouterParam, c as createError, a as getDb, o as documents, v as validatePath, q as stringifyFrontmatter, n as notifyResourceChange } from '../../../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, r as requireDb, g as getRouterParam, c as createError, a as getDb, q as documents, w as validatePath, y as stringifyFrontmatter, n as notifyResourceChange } from '../../../../nitro/nitro.mjs';
2
2
  import { eq } from 'drizzle-orm';
3
3
  import { mkdir, writeFile } from 'fs/promises';
4
4
  import { dirname } from 'path';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, r as requireDb, e as readBody, c as createError, v as validatePath, a as getDb, o as documents, y as getFileType, z as getMimeType, w as computeContentHash, p as parseFrontmatter, x as extractTitle } from '../../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, r as requireDb, e as readBody, c as createError, w as validatePath, a as getDb, q as documents, B as getFileType, C as getMimeType, z as computeContentHash, x as parseFrontmatter, A as extractTitle } from '../../../nitro/nitro.mjs';
2
2
  import { eq } from 'drizzle-orm';
3
3
  import { readFile } from 'fs/promises';
4
4
  import { basename } from 'path';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, r as requireDb, g as getRouterParam, c as createError, a as getDb, o as documents, v as validatePath, n as notifyResourceChange } from '../../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, r as requireDb, g as getRouterParam, c as createError, a as getDb, q as documents, w as validatePath, n as notifyResourceChange } from '../../../nitro/nitro.mjs';
2
2
  import { eq } from 'drizzle-orm';
3
3
  import { stat, rm } from 'fs/promises';
4
4
  import '@anthropic-ai/claude-agent-sdk';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, r as requireDb, g as getRouterParam, c as createError, e as readBody, a as getDb, o as documents, v as validatePath, p as parseFrontmatter, q as stringifyFrontmatter, w as computeContentHash, x as extractTitle, n as notifyResourceChange } from '../../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, r as requireDb, g as getRouterParam, c as createError, e as readBody, a as getDb, q as documents, w as validatePath, x as parseFrontmatter, y as stringifyFrontmatter, z as computeContentHash, A as extractTitle, n as notifyResourceChange } from '../../../nitro/nitro.mjs';
2
2
  import { eq } from 'drizzle-orm';
3
3
  import { readFile, writeFile } from 'fs/promises';
4
4
  import { basename } from 'path';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, e as readBody, c as createError, v as validatePath } from '../../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, e as readBody, c as createError, w as validatePath } from '../../../nitro/nitro.mjs';
2
2
  import { stat, rm } from 'fs/promises';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'crypto';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, i as getQuery, v as validatePath, A as toRelativePath, c as createError } from '../../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, i as getQuery, w as validatePath, D as toRelativePath, c as createError } from '../../../nitro/nitro.mjs';
2
2
  import { readdir, stat } from 'fs/promises';
3
3
  import { join } from 'path';
4
4
  import '@anthropic-ai/claude-agent-sdk';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, e as readBody, c as createError, v as validatePath } from '../../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, e as readBody, c as createError, w as validatePath } from '../../../nitro/nitro.mjs';
2
2
  import { stat, mkdir } from 'fs/promises';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'crypto';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, e as readBody, c as createError, v as validatePath, A as toRelativePath } from '../../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, e as readBody, c as createError, w as validatePath, D as toRelativePath } from '../../../nitro/nitro.mjs';
2
2
  import { stat, rename } from 'fs/promises';
3
3
  import { join, basename } from 'path';
4
4
  import '@anthropic-ai/claude-agent-sdk';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, e as readBody, c as createError, v as validatePath } from '../../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, e as readBody, c as createError, w as validatePath } from '../../../nitro/nitro.mjs';
2
2
  import { readFile, stat } from 'fs/promises';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'crypto';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, e as readBody, c as createError, v as validatePath } from '../../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, e as readBody, c as createError, w as validatePath } from '../../../nitro/nitro.mjs';
2
2
  import { stat, rename } from 'fs/promises';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'crypto';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, e as readBody, c as createError, v as validatePath } from '../../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, e as readBody, c as createError, w as validatePath } from '../../../nitro/nitro.mjs';
2
2
  import { stat, mkdir, writeFile } from 'fs/promises';
3
3
  import { dirname } from 'path';
4
4
  import '@anthropic-ai/claude-agent-sdk';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, B as useRuntimeConfig, C as getDbState, D as isDbAvailable, a as getDb } from '../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, E as useRuntimeConfig, F as getDbState, G as isDbAvailable, a as getDb } from '../../nitro/nitro.mjs';
2
2
  import { sql } from 'drizzle-orm';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'crypto';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, E as getVaultRoot } from '../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, H as getVaultRoot } from '../../nitro/nitro.mjs';
2
2
  import { readFile } from 'fs/promises';
3
3
  import { join } from 'path';
4
4
  import '@anthropic-ai/claude-agent-sdk';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, r as requireDb, i as getQuery, a as getDb, F as hookEvents } from '../../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, r as requireDb, i as getQuery, a as getDb, I as hookEvents } from '../../../nitro/nitro.mjs';
2
2
  import { inArray, eq, gte, and, desc } from 'drizzle-orm';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'crypto';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, r as requireDb, e as readBody, c as createError, a as getDb, F as hookEvents, n as notifyResourceChange } from '../../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, r as requireDb, e as readBody, c as createError, a as getDb, I as hookEvents, n as notifyResourceChange } from '../../../nitro/nitro.mjs';
2
2
  import '@anthropic-ai/claude-agent-sdk';
3
3
  import 'crypto';
4
4
  import 'module';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, r as requireDb, i as getQuery, a as getDb, F as hookEvents } from '../../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, r as requireDb, i as getQuery, a as getDb, I as hookEvents } from '../../../nitro/nitro.mjs';
2
2
  import { gte } from 'drizzle-orm';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'crypto';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, r as requireDb, i as getQuery, a as getDb, o as documents } from '../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, r as requireDb, i as getQuery, a as getDb, q as documents } from '../../nitro/nitro.mjs';
2
2
  import { isNull, eq, or, ilike, and } from 'drizzle-orm';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'crypto';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, r as requireDb, i as getQuery, a as getDb, H as projects } from '../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, r as requireDb, i as getQuery, a as getDb, p as projects } from '../../nitro/nitro.mjs';
2
2
  import { isNull } from 'drizzle-orm';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'crypto';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, a as getDb, I as secrets } from '../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, a as getDb, K as secrets } from '../../nitro/nitro.mjs';
2
2
  import { desc } from 'drizzle-orm';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'crypto';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, r as requireDb, c as createError, a as getDb, L as userSettings, M as defaultNotificationPreferences } from '../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, r as requireDb, c as createError, a as getDb, N as userSettings, O as defaultNotificationPreferences } from '../../nitro/nitro.mjs';
2
2
  import { eq } from 'drizzle-orm';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'crypto';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, r as requireDb, i as getQuery, a as getDb, N as tasks } from '../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, r as requireDb, i as getQuery, a as getDb, o as tasks } from '../../nitro/nitro.mjs';
2
2
  import { isNull, inArray, eq, or, ilike, and } from 'drizzle-orm';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'crypto';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, r as requireDb, i as getQuery, a as getDb, O as tokenUsage } from '../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, r as requireDb, i as getQuery, a as getDb, v as tokenUsage } from '../../nitro/nitro.mjs';
2
2
  import { gte, eq, ilike, and, desc } from 'drizzle-orm';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'crypto';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, r as requireDb, e as readBody, c as createError, a as getDb, H as projects, n as notifyResourceChange } from '../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, r as requireDb, e as readBody, c as createError, a as getDb, p as projects, n as notifyResourceChange } from '../../nitro/nitro.mjs';
2
2
  import '@anthropic-ai/claude-agent-sdk';
3
3
  import 'crypto';
4
4
  import 'module';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, e as readBody, c as createError, a as getDb, K as encryptSecret, I as secrets, n as notifyResourceChange } from '../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, e as readBody, c as createError, a as getDb, M as encryptSecret, K as secrets, n as notifyResourceChange } from '../../nitro/nitro.mjs';
2
2
  import '@anthropic-ai/claude-agent-sdk';
3
3
  import 'crypto';
4
4
  import 'module';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, r as requireDb, e as readBody, c as createError, a as getDb, N as tasks, n as notifyResourceChange } from '../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, r as requireDb, e as readBody, c as createError, a as getDb, o as tasks, n as notifyResourceChange } from '../../nitro/nitro.mjs';
2
2
  import '@anthropic-ai/claude-agent-sdk';
3
3
  import 'crypto';
4
4
  import 'module';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, r as requireDb, c as createError, e as readBody, a as getDb, L as userSettings } from '../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, r as requireDb, c as createError, e as readBody, a as getDb, N as userSettings } from '../../nitro/nitro.mjs';
2
2
  import { eq } from 'drizzle-orm';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'crypto';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, r as requireDb, g as getRouterParam, c as createError, a as getDb, G as memoryChunks, n as notifyResourceChange } from '../../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, r as requireDb, g as getRouterParam, c as createError, a as getDb, J as memoryChunks, n as notifyResourceChange } from '../../../nitro/nitro.mjs';
2
2
  import { eq } from 'drizzle-orm';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'crypto';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, r as requireDb, i as getQuery, a as getDb, G as memoryChunks } from '../../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, r as requireDb, i as getQuery, a as getDb, J as memoryChunks } from '../../../nitro/nitro.mjs';
2
2
  import { eq, desc, sql } from 'drizzle-orm';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'crypto';
@@ -1,4 +1,4 @@
1
- import { S as logTokenUsage, d as defineEventHandler, r as requireDb, e as readBody, a as getDb, c as createError, G as memoryChunks } from '../../../nitro/nitro.mjs';
1
+ import { S as logTokenUsage, d as defineEventHandler, r as requireDb, e as readBody, a as getDb, c as createError, J as memoryChunks } from '../../../nitro/nitro.mjs';
2
2
  import { query } from '@anthropic-ai/claude-agent-sdk';
3
3
  import 'crypto';
4
4
  import 'module';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, r as requireDb, i as getQuery, a as getDb, G as memoryChunks } from '../../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, r as requireDb, i as getQuery, a as getDb, J as memoryChunks } from '../../../nitro/nitro.mjs';
2
2
  import { eq, gte, or, ilike, and, desc, sql } from 'drizzle-orm';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'crypto';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, r as requireDb, e as readBody, a as getDb, c as createError, G as memoryChunks, n as notifyResourceChange } from '../../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, r as requireDb, e as readBody, a as getDb, c as createError, J as memoryChunks, n as notifyResourceChange } from '../../../nitro/nitro.mjs';
2
2
  import '@anthropic-ai/claude-agent-sdk';
3
3
  import 'crypto';
4
4
  import 'module';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, r as requireDb, g as getRouterParam, c as createError, a as getDb, H as projects, n as notifyResourceChange } from '../../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, r as requireDb, g as getRouterParam, c as createError, a as getDb, p as projects, n as notifyResourceChange } from '../../../nitro/nitro.mjs';
2
2
  import { eq } from 'drizzle-orm';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'crypto';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, r as requireDb, g as getRouterParam, c as createError, a as getDb, H as projects } from '../../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, r as requireDb, g as getRouterParam, c as createError, a as getDb, p as projects } from '../../../nitro/nitro.mjs';
2
2
  import { eq } from 'drizzle-orm';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'crypto';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, r as requireDb, g as getRouterParam, c as createError, e as readBody, a as getDb, H as projects, n as notifyResourceChange } from '../../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, r as requireDb, g as getRouterParam, c as createError, e as readBody, a as getDb, p as projects, n as notifyResourceChange } from '../../../nitro/nitro.mjs';
2
2
  import { eq } from 'drizzle-orm';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'crypto';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, g as getRouterParam, c as createError, a as getDb, I as secrets, n as notifyResourceChange } from '../../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, g as getRouterParam, c as createError, a as getDb, K as secrets, n as notifyResourceChange } from '../../../nitro/nitro.mjs';
2
2
  import { eq } from 'drizzle-orm';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'crypto';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, g as getRouterParam, c as createError, a as getDb, J as decryptSecret } from '../../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, g as getRouterParam, c as createError, a as getDb, L as decryptSecret } from '../../../nitro/nitro.mjs';
2
2
  import '@anthropic-ai/claude-agent-sdk';
3
3
  import 'crypto';
4
4
  import 'module';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, g as getRouterParam, c as createError, e as readBody, a as getDb, K as encryptSecret, I as secrets, n as notifyResourceChange } from '../../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, g as getRouterParam, c as createError, e as readBody, a as getDb, M as encryptSecret, K as secrets, n as notifyResourceChange } from '../../../nitro/nitro.mjs';
2
2
  import { eq } from 'drizzle-orm';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'crypto';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, r as requireDb, g as getRouterParam, c as createError, a as getDb, N as tasks, n as notifyResourceChange } from '../../../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, r as requireDb, g as getRouterParam, c as createError, a as getDb, o as tasks, n as notifyResourceChange } from '../../../../nitro/nitro.mjs';
2
2
  import { eq } from 'drizzle-orm';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'crypto';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, r as requireDb, g as getRouterParam, c as createError, a as getDb, N as tasks, n as notifyResourceChange } from '../../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, r as requireDb, g as getRouterParam, c as createError, a as getDb, o as tasks, n as notifyResourceChange } from '../../../nitro/nitro.mjs';
2
2
  import { eq } from 'drizzle-orm';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'crypto';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, r as requireDb, g as getRouterParam, c as createError, e as readBody, a as getDb, N as tasks, n as notifyResourceChange } from '../../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, r as requireDb, g as getRouterParam, c as createError, e as readBody, a as getDb, o as tasks, n as notifyResourceChange } from '../../../nitro/nitro.mjs';
2
2
  import { eq } from 'drizzle-orm';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'crypto';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, r as requireDb, a as getDb, N as tasks } from '../../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, r as requireDb, a as getDb, o as tasks } from '../../../nitro/nitro.mjs';
2
2
  import { isNull } from 'drizzle-orm';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'crypto';
@@ -1,4 +1,4 @@
1
- import { d as defineEventHandler, r as requireDb, i as getQuery, a as getDb, O as tokenUsage } from '../../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, r as requireDb, i as getQuery, a as getDb, v as tokenUsage } from '../../../nitro/nitro.mjs';
2
2
  import { gte } from 'drizzle-orm';
3
3
  import '@anthropic-ai/claude-agent-sdk';
4
4
  import 'crypto';
@@ -1,5 +1,5 @@
1
1
  import { createRenderer, getRequestDependencies, getPreloadLinks, getPrefetchLinks } from 'vue-bundle-renderer/runtime';
2
- import { aw as buildAssetsURL, B as useRuntimeConfig, ax as getResponseStatusText, ay as getResponseStatus, az as defineRenderHandler, aA as publicAssetsURL, i as getQuery, c as createError, $ as destr, aB as getRouteRules, aC as useNitroApp } from '../nitro/nitro.mjs';
2
+ import { aw as buildAssetsURL, E as useRuntimeConfig, ax as getResponseStatusText, ay as getResponseStatus, az as defineRenderHandler, aA as publicAssetsURL, i as getQuery, c as createError, $ as destr, aB as getRouteRules, aC as useNitroApp } from '../nitro/nitro.mjs';
3
3
  import { renderToString } from 'vue/server-renderer';
4
4
  import { createHead as createHead$1, propsToString, renderSSRHead } from 'unhead/server';
5
5
  import { stringify, uneval } from 'devalue';
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cognova-prod",
3
- "version": "0.1.9",
3
+ "version": "0.1.10",
4
4
  "type": "module",
5
5
  "private": true,
6
6
  "dependencies": {
package/Claude/CLAUDE.md CHANGED
@@ -26,6 +26,7 @@ Cognova is a self-hosted Nuxt 4 web application for personal knowledge managemen
26
26
  | Task Management | `/task` | Create, list, update, complete tasks |
27
27
  | Project Management | `/project` | Organize tasks into projects |
28
28
  | Memory | `/memory` | Search past decisions, store insights, recall context |
29
+ | Secrets | `/secret` | Store, retrieve, list, delete encrypted API keys and credentials |
29
30
  | Environment | `/environment` | Check system status, troubleshoot issues |
30
31
  | Skill Creator | `/skill-creator` | Create new Claude Code skills |
31
32
 
@@ -103,11 +104,15 @@ Memory is your most important tool. You are stateless between sessions — witho
103
104
  **Rule: When in doubt, store it.** A redundant memory is harmless. A forgotten one wastes the user's time.
104
105
 
105
106
  ### Secrets & Sensitive Data
106
- - NEVER store passwords, tokens, API keys, or credentials in memory, notes, or conversation
107
- - NEVER write secrets to files use the Cognova settings UI or secrets API instead
108
- - If a user shares a credential in chat, warn them it should be stored as a secret
109
- - When you need a token for an integration, check the secrets API first before asking the user
107
+
108
+ **CRITICALZero tolerance for leaked secrets:**
109
+ - NEVER store passwords, tokens, API keys, or credentials in memory, notes, conversation, or any file
110
+ - NEVER write secrets to files use `/secret set KEY` or the Cognova settings UI instead
111
+ - NEVER embed API keys, tokens, or credentials in SKILL.md files or Python scripts when creating or modifying skills — always use `get_secret()` from `_lib/api.py`
112
+ - If a user shares a credential in chat, warn them and store it via `/secret set KEY` immediately
113
+ - When you need a token for an integration, check with `/secret list` and `/secret get KEY` before asking the user
110
114
  - Treat any string that looks like a key, token, or password as sensitive — do not echo it back
115
+ - When creating skills that need external API keys, declare them in `requires-secrets` frontmatter and use `get_secret()` in the script
111
116
 
112
117
  ### Troubleshooting
113
118
  - Use `/environment status` or `/environment health` to diagnose issues
@@ -2,6 +2,12 @@
2
2
  name: environment
3
3
  description: Check system status, view configuration, troubleshoot issues with the Cognova installation. Use when diagnosing problems, checking health, or understanding the current setup.
4
4
  allowed-tools: Bash, Read
5
+ metadata:
6
+ version: "1.0.0"
7
+ requires-secrets: []
8
+ author: Cognova
9
+ repository: ""
10
+ installed-from: ""
5
11
  ---
6
12
 
7
13
  # Environment Skill
@@ -2,6 +2,12 @@
2
2
  name: memory
3
3
  description: Access persistent memory across Claude sessions. Search past conversations, recall decisions, store key insights. Use when needing context from previous work or to save important information for future sessions.
4
4
  allowed-tools: Bash, Read
5
+ metadata:
6
+ version: "1.0.0"
7
+ requires-secrets: []
8
+ author: Cognova
9
+ repository: ""
10
+ installed-from: ""
5
11
  ---
6
12
 
7
13
  # Memory Skill
@@ -2,6 +2,12 @@
2
2
  name: project
3
3
  description: Manage Cognova projects - create, list, update projects. ALWAYS searches for existing projects before creating new ones. ALWAYS confirms with user before creating, showing potential matches.
4
4
  allowed-tools: Bash, Read
5
+ metadata:
6
+ version: "1.0.0"
7
+ requires-secrets: []
8
+ author: Cognova
9
+ repository: ""
10
+ installed-from: ""
5
11
  ---
6
12
 
7
13
  # Project Management Skill