@damn-dev/cli 0.9.2-rc.1

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 (336) hide show
  1. package/README.md +77 -0
  2. package/bin/damn-dev.js +4 -0
  3. package/lib/cli.js +47 -0
  4. package/lib/commands/start.js +109 -0
  5. package/lib/commands/stop.js +49 -0
  6. package/lib/commands/version.js +4 -0
  7. package/lib/paths.js +34 -0
  8. package/lib/setup.js +69 -0
  9. package/package.json +57 -0
  10. package/runtime/backend/prisma/schema.prisma +720 -0
  11. package/runtime/backend/resources/skills/obsidian-builtin/SKILL.md +33 -0
  12. package/runtime/backend/server.cjs +29409 -0
  13. package/runtime/frontend/dist/assets/abap-BdImnpbu.js +1 -0
  14. package/runtime/frontend/dist/assets/actionscript-3-CoDkCxhg.js +1 -0
  15. package/runtime/frontend/dist/assets/ada-bCR0ucgS.js +1 -0
  16. package/runtime/frontend/dist/assets/andromeeda-C4gqWexZ.js +1 -0
  17. package/runtime/frontend/dist/assets/angular-html-DA-rfuFy.js +1 -0
  18. package/runtime/frontend/dist/assets/angular-ts-BrjP3tb8.js +1 -0
  19. package/runtime/frontend/dist/assets/apache-Pmp26Uib.js +1 -0
  20. package/runtime/frontend/dist/assets/apex-D8_7TLub.js +1 -0
  21. package/runtime/frontend/dist/assets/apl-CORt7UWP.js +1 -0
  22. package/runtime/frontend/dist/assets/applescript-Co6uUVPk.js +1 -0
  23. package/runtime/frontend/dist/assets/ara-BRHolxvo.js +1 -0
  24. package/runtime/frontend/dist/assets/asciidoc-Ve4PFQV2.js +1 -0
  25. package/runtime/frontend/dist/assets/asm-D_Q5rh1f.js +1 -0
  26. package/runtime/frontend/dist/assets/astro-HNnZUWAn.js +1 -0
  27. package/runtime/frontend/dist/assets/aurora-x-D-2ljcwZ.js +1 -0
  28. package/runtime/frontend/dist/assets/awk-DMzUqQB5.js +1 -0
  29. package/runtime/frontend/dist/assets/ayu-dark-DYE7WIF3.js +1 -0
  30. package/runtime/frontend/dist/assets/ayu-light-BA47KaF1.js +1 -0
  31. package/runtime/frontend/dist/assets/ayu-mirage-32ctXXKs.js +1 -0
  32. package/runtime/frontend/dist/assets/ballerina-BFfxhgS-.js +1 -0
  33. package/runtime/frontend/dist/assets/bat-BkioyH1T.js +1 -0
  34. package/runtime/frontend/dist/assets/beancount-k_qm7-4y.js +1 -0
  35. package/runtime/frontend/dist/assets/berry-uYugtg8r.js +1 -0
  36. package/runtime/frontend/dist/assets/bibtex-CHM0blh-.js +1 -0
  37. package/runtime/frontend/dist/assets/bicep-Bmn6On1c.js +1 -0
  38. package/runtime/frontend/dist/assets/bird2-BIv1doCn.js +1 -0
  39. package/runtime/frontend/dist/assets/blade-BjGOyj-B.js +1 -0
  40. package/runtime/frontend/dist/assets/bsl-BO_Y6i37.js +1 -0
  41. package/runtime/frontend/dist/assets/c-BIGW1oBm.js +1 -0
  42. package/runtime/frontend/dist/assets/c3-eo99z4R2.js +1 -0
  43. package/runtime/frontend/dist/assets/cadence-Bv_4Rxtq.js +1 -0
  44. package/runtime/frontend/dist/assets/cairo-KRGpt6FW.js +1 -0
  45. package/runtime/frontend/dist/assets/catppuccin-frappe-DFWUc33u.js +1 -0
  46. package/runtime/frontend/dist/assets/catppuccin-latte-C9dUb6Cb.js +1 -0
  47. package/runtime/frontend/dist/assets/catppuccin-macchiato-DQyhUUbL.js +1 -0
  48. package/runtime/frontend/dist/assets/catppuccin-mocha-D87Tk5Gz.js +1 -0
  49. package/runtime/frontend/dist/assets/clarity-D53aC0YG.js +1 -0
  50. package/runtime/frontend/dist/assets/clojure-P80f7IUj.js +1 -0
  51. package/runtime/frontend/dist/assets/cmake-D1j8_8rp.js +1 -0
  52. package/runtime/frontend/dist/assets/cobol-nBiQ_Alo.js +1 -0
  53. package/runtime/frontend/dist/assets/codeowners-Bp6g37R7.js +1 -0
  54. package/runtime/frontend/dist/assets/codeql-DsOJ9woJ.js +1 -0
  55. package/runtime/frontend/dist/assets/coffee-Ch7k5sss.js +1 -0
  56. package/runtime/frontend/dist/assets/common-lisp-Cg-RD9OK.js +1 -0
  57. package/runtime/frontend/dist/assets/coq-DkFqJrB1.js +1 -0
  58. package/runtime/frontend/dist/assets/core-Bjnh3KEM.js +1 -0
  59. package/runtime/frontend/dist/assets/cpp-CofmeUqb.js +1 -0
  60. package/runtime/frontend/dist/assets/crystal-DNxU26gB.js +1 -0
  61. package/runtime/frontend/dist/assets/csharp-COcwbKMJ.js +1 -0
  62. package/runtime/frontend/dist/assets/css-CLj8gQPS.js +1 -0
  63. package/runtime/frontend/dist/assets/csv-fuZLfV_i.js +1 -0
  64. package/runtime/frontend/dist/assets/cue-D82EKSYY.js +1 -0
  65. package/runtime/frontend/dist/assets/cypher-COkxafJQ.js +1 -0
  66. package/runtime/frontend/dist/assets/d-85-TOEBH.js +1 -0
  67. package/runtime/frontend/dist/assets/dark-plus-C3mMm8J8.js +1 -0
  68. package/runtime/frontend/dist/assets/dart-bE4Kk8sk.js +1 -0
  69. package/runtime/frontend/dist/assets/dax-CEL-wOlO.js +1 -0
  70. package/runtime/frontend/dist/assets/desktop-BmXAJ9_W.js +1 -0
  71. package/runtime/frontend/dist/assets/diff-D97Zzqfu.js +1 -0
  72. package/runtime/frontend/dist/assets/docker-BcOcwvcX.js +1 -0
  73. package/runtime/frontend/dist/assets/dotenv-Da5cRb03.js +1 -0
  74. package/runtime/frontend/dist/assets/dracula-BzJJZx-M.js +1 -0
  75. package/runtime/frontend/dist/assets/dracula-soft-BXkSAIEj.js +1 -0
  76. package/runtime/frontend/dist/assets/dream-maker-BtqSS_iP.js +1 -0
  77. package/runtime/frontend/dist/assets/edge-FbVlp4U3.js +1 -0
  78. package/runtime/frontend/dist/assets/elixir-CkH2-t6x.js +1 -0
  79. package/runtime/frontend/dist/assets/elm-DbKCFpqz.js +1 -0
  80. package/runtime/frontend/dist/assets/emacs-lisp-CXvaQtF9.js +1 -0
  81. package/runtime/frontend/dist/assets/erb-BYCe7drp.js +1 -0
  82. package/runtime/frontend/dist/assets/erlang-DsQrWhSR.js +1 -0
  83. package/runtime/frontend/dist/assets/everforest-dark-BgDCqdQA.js +1 -0
  84. package/runtime/frontend/dist/assets/everforest-light-C8M2exoo.js +1 -0
  85. package/runtime/frontend/dist/assets/fennel-BYunw83y.js +1 -0
  86. package/runtime/frontend/dist/assets/fish-BvzEVeQv.js +1 -0
  87. package/runtime/frontend/dist/assets/fluent-C4IJs8-o.js +1 -0
  88. package/runtime/frontend/dist/assets/fortran-fixed-form-CkoXwp7k.js +1 -0
  89. package/runtime/frontend/dist/assets/fortran-free-form-BxgE0vQu.js +1 -0
  90. package/runtime/frontend/dist/assets/fsharp-CXgrBDvD.js +1 -0
  91. package/runtime/frontend/dist/assets/gdresource-BOOCDP_w.js +1 -0
  92. package/runtime/frontend/dist/assets/gdscript-C5YyOfLZ.js +1 -0
  93. package/runtime/frontend/dist/assets/gdshader-DkwncUOv.js +1 -0
  94. package/runtime/frontend/dist/assets/genie-D0YGMca9.js +1 -0
  95. package/runtime/frontend/dist/assets/gherkin-DyxjwDmM.js +1 -0
  96. package/runtime/frontend/dist/assets/git-commit-F4YmCXRG.js +1 -0
  97. package/runtime/frontend/dist/assets/git-rebase-r7XF79zn.js +1 -0
  98. package/runtime/frontend/dist/assets/github-dark-DHJKELXO.js +1 -0
  99. package/runtime/frontend/dist/assets/github-dark-default-Cuk6v7N8.js +1 -0
  100. package/runtime/frontend/dist/assets/github-dark-dimmed-DH5Ifo-i.js +1 -0
  101. package/runtime/frontend/dist/assets/github-dark-high-contrast-E3gJ1_iC.js +1 -0
  102. package/runtime/frontend/dist/assets/github-light-DAi9KRSo.js +1 -0
  103. package/runtime/frontend/dist/assets/github-light-default-D7oLnXFd.js +1 -0
  104. package/runtime/frontend/dist/assets/github-light-high-contrast-BfjtVDDH.js +1 -0
  105. package/runtime/frontend/dist/assets/gleam-BspZqrRM.js +1 -0
  106. package/runtime/frontend/dist/assets/glimmer-js-ByusRIyA.js +1 -0
  107. package/runtime/frontend/dist/assets/glimmer-ts-BfAWNZQY.js +1 -0
  108. package/runtime/frontend/dist/assets/glsl-DplSGwfg.js +1 -0
  109. package/runtime/frontend/dist/assets/gn-n2N0HUVH.js +1 -0
  110. package/runtime/frontend/dist/assets/gnuplot-DdkO51Og.js +1 -0
  111. package/runtime/frontend/dist/assets/go-C27-OAKa.js +1 -0
  112. package/runtime/frontend/dist/assets/graphql-ChdNCCLP.js +1 -0
  113. package/runtime/frontend/dist/assets/groovy-gcz8RCvz.js +1 -0
  114. package/runtime/frontend/dist/assets/gruvbox-dark-hard-CFHQjOhq.js +1 -0
  115. package/runtime/frontend/dist/assets/gruvbox-dark-medium-GsRaNv29.js +1 -0
  116. package/runtime/frontend/dist/assets/gruvbox-dark-soft-CVdnzihN.js +1 -0
  117. package/runtime/frontend/dist/assets/gruvbox-light-hard-CH1njM8p.js +1 -0
  118. package/runtime/frontend/dist/assets/gruvbox-light-medium-DRw_LuNl.js +1 -0
  119. package/runtime/frontend/dist/assets/gruvbox-light-soft-hJgmCMqR.js +1 -0
  120. package/runtime/frontend/dist/assets/hack-i7_Ulhet.js +1 -0
  121. package/runtime/frontend/dist/assets/haml-D5jkg6IW.js +1 -0
  122. package/runtime/frontend/dist/assets/handlebars-BpdQsYii.js +1 -0
  123. package/runtime/frontend/dist/assets/haskell-Df6bDoY_.js +1 -0
  124. package/runtime/frontend/dist/assets/haxe-CzTSHFRz.js +1 -0
  125. package/runtime/frontend/dist/assets/hcl-BWvSN4gD.js +1 -0
  126. package/runtime/frontend/dist/assets/hjson-D5-asLiD.js +1 -0
  127. package/runtime/frontend/dist/assets/hlsl-D3lLCCz7.js +1 -0
  128. package/runtime/frontend/dist/assets/horizon-BUw7H-hv.js +1 -0
  129. package/runtime/frontend/dist/assets/horizon-bright-CUuTKBJd.js +1 -0
  130. package/runtime/frontend/dist/assets/houston-DnULxvSX.js +1 -0
  131. package/runtime/frontend/dist/assets/html-derivative-DlHx6ybY.js +1 -0
  132. package/runtime/frontend/dist/assets/html-pp8916En.js +1 -0
  133. package/runtime/frontend/dist/assets/http-jrhK8wxY.js +1 -0
  134. package/runtime/frontend/dist/assets/hurl-irOxFIW8.js +1 -0
  135. package/runtime/frontend/dist/assets/hxml-Bvhsp5Yf.js +1 -0
  136. package/runtime/frontend/dist/assets/hy-DFXneXwc.js +1 -0
  137. package/runtime/frontend/dist/assets/imba-DGztddWO.js +1 -0
  138. package/runtime/frontend/dist/assets/index-BTJegBz4.css +1 -0
  139. package/runtime/frontend/dist/assets/index-CO34o7br.js +1 -0
  140. package/runtime/frontend/dist/assets/index-CdilBaXC.js +1 -0
  141. package/runtime/frontend/dist/assets/index-Cpew6ait.js +1 -0
  142. package/runtime/frontend/dist/assets/index-Cwlc3FMt.js +435 -0
  143. package/runtime/frontend/dist/assets/index-E-6oA41F.js +1 -0
  144. package/runtime/frontend/dist/assets/ini-BEwlwnbL.js +1 -0
  145. package/runtime/frontend/dist/assets/java-CylS5w8V.js +1 -0
  146. package/runtime/frontend/dist/assets/javascript-wDzz0qaB.js +1 -0
  147. package/runtime/frontend/dist/assets/jinja-f2NsQr07.js +1 -0
  148. package/runtime/frontend/dist/assets/jison-wvAkD_A8.js +1 -0
  149. package/runtime/frontend/dist/assets/json-Cp-IABpG.js +1 -0
  150. package/runtime/frontend/dist/assets/json5-C9tS-k6U.js +1 -0
  151. package/runtime/frontend/dist/assets/jsonc-Des-eS-w.js +1 -0
  152. package/runtime/frontend/dist/assets/jsonl-DcaNXYhu.js +1 -0
  153. package/runtime/frontend/dist/assets/jsonnet-DFQXde-d.js +1 -0
  154. package/runtime/frontend/dist/assets/jssm-C2t-YnRu.js +1 -0
  155. package/runtime/frontend/dist/assets/jsx-g9-lgVsj.js +1 -0
  156. package/runtime/frontend/dist/assets/julia-CxzCAyBv.js +1 -0
  157. package/runtime/frontend/dist/assets/just-VxiPbLrw.js +1 -0
  158. package/runtime/frontend/dist/assets/kanagawa-dragon-CkXjmgJE.js +1 -0
  159. package/runtime/frontend/dist/assets/kanagawa-lotus-CfQXZHmo.js +1 -0
  160. package/runtime/frontend/dist/assets/kanagawa-wave-DWedfzmr.js +1 -0
  161. package/runtime/frontend/dist/assets/kdl-DV7GczEv.js +1 -0
  162. package/runtime/frontend/dist/assets/kotlin-BdnUsdx6.js +1 -0
  163. package/runtime/frontend/dist/assets/kusto-wEQ09or8.js +1 -0
  164. package/runtime/frontend/dist/assets/laserwave-DUszq2jm.js +1 -0
  165. package/runtime/frontend/dist/assets/latex-CWtU0Tv5.js +1 -0
  166. package/runtime/frontend/dist/assets/lean-BZvkOJ9d.js +1 -0
  167. package/runtime/frontend/dist/assets/less-B1dDrJ26.js +1 -0
  168. package/runtime/frontend/dist/assets/light-plus-B7mTdjB0.js +1 -0
  169. package/runtime/frontend/dist/assets/liquid-C0sCDyMI.js +1 -0
  170. package/runtime/frontend/dist/assets/llvm-DjAJT7YJ.js +1 -0
  171. package/runtime/frontend/dist/assets/log-2UxHyX5q.js +1 -0
  172. package/runtime/frontend/dist/assets/logo-BtOb2qkB.js +1 -0
  173. package/runtime/frontend/dist/assets/lua-BaeVxFsk.js +1 -0
  174. package/runtime/frontend/dist/assets/luau-C-HG3fhB.js +1 -0
  175. package/runtime/frontend/dist/assets/make-CHLpvVh8.js +1 -0
  176. package/runtime/frontend/dist/assets/markdown-Cvjx9yec.js +1 -0
  177. package/runtime/frontend/dist/assets/marko-DjSrsDqO.js +1 -0
  178. package/runtime/frontend/dist/assets/material-theme-D5KoaKCx.js +1 -0
  179. package/runtime/frontend/dist/assets/material-theme-darker-BfHTSMKl.js +1 -0
  180. package/runtime/frontend/dist/assets/material-theme-lighter-B0m2ddpp.js +1 -0
  181. package/runtime/frontend/dist/assets/material-theme-ocean-CyktbL80.js +1 -0
  182. package/runtime/frontend/dist/assets/material-theme-palenight-Csfq5Kiy.js +1 -0
  183. package/runtime/frontend/dist/assets/matlab-D7o27uSR.js +1 -0
  184. package/runtime/frontend/dist/assets/mdc-DTYItulj.js +1 -0
  185. package/runtime/frontend/dist/assets/mdx-Cmh6b_Ma.js +1 -0
  186. package/runtime/frontend/dist/assets/mermaid-mWjccvbQ.js +1 -0
  187. package/runtime/frontend/dist/assets/min-dark-CafNBF8u.js +1 -0
  188. package/runtime/frontend/dist/assets/min-light-CTRr51gU.js +1 -0
  189. package/runtime/frontend/dist/assets/mipsasm-CKIfxQSi.js +1 -0
  190. package/runtime/frontend/dist/assets/mojo-rZm6bMo-.js +1 -0
  191. package/runtime/frontend/dist/assets/monokai-D4h5O-jR.js +1 -0
  192. package/runtime/frontend/dist/assets/moonbit-_H4v1dQx.js +1 -0
  193. package/runtime/frontend/dist/assets/move-IF9eRakj.js +1 -0
  194. package/runtime/frontend/dist/assets/narrat-DRg8JJMk.js +1 -0
  195. package/runtime/frontend/dist/assets/nextflow-C-mBbutL.js +1 -0
  196. package/runtime/frontend/dist/assets/nextflow-groovy-vE_lwT2v.js +1 -0
  197. package/runtime/frontend/dist/assets/nginx-BpAMiNFr.js +1 -0
  198. package/runtime/frontend/dist/assets/night-owl-C39BiMTA.js +1 -0
  199. package/runtime/frontend/dist/assets/night-owl-light-CMTm3GFP.js +1 -0
  200. package/runtime/frontend/dist/assets/nim-BIad80T-.js +1 -0
  201. package/runtime/frontend/dist/assets/nix-CwoSXNpI.js +1 -0
  202. package/runtime/frontend/dist/assets/nord-Ddv68eIx.js +1 -0
  203. package/runtime/frontend/dist/assets/nushell-Cz2AlsmD.js +1 -0
  204. package/runtime/frontend/dist/assets/objective-c-DXmwc3jG.js +1 -0
  205. package/runtime/frontend/dist/assets/objective-cpp-CLxacb5B.js +1 -0
  206. package/runtime/frontend/dist/assets/ocaml-C0hk2d4L.js +1 -0
  207. package/runtime/frontend/dist/assets/odin-BBf5iR-q.js +1 -0
  208. package/runtime/frontend/dist/assets/one-dark-pro-DVMEJ2y_.js +1 -0
  209. package/runtime/frontend/dist/assets/one-light-C3Wv6jpd.js +1 -0
  210. package/runtime/frontend/dist/assets/openscad-C4EeE6gA.js +1 -0
  211. package/runtime/frontend/dist/assets/pascal-D93ZcfNL.js +1 -0
  212. package/runtime/frontend/dist/assets/perl-NvoQZIq0.js +1 -0
  213. package/runtime/frontend/dist/assets/php-R6g_5hLQ.js +1 -0
  214. package/runtime/frontend/dist/assets/pkl-u5AG7uiY.js +1 -0
  215. package/runtime/frontend/dist/assets/plastic-3e1v2bzS.js +1 -0
  216. package/runtime/frontend/dist/assets/plsql-ChMvpjG-.js +1 -0
  217. package/runtime/frontend/dist/assets/po-BTJTHyun.js +1 -0
  218. package/runtime/frontend/dist/assets/poimandres-CS3Unz2-.js +1 -0
  219. package/runtime/frontend/dist/assets/polar-C0HS_06l.js +1 -0
  220. package/runtime/frontend/dist/assets/postcss-CXtECtnM.js +1 -0
  221. package/runtime/frontend/dist/assets/powerquery-CEu0bR-o.js +1 -0
  222. package/runtime/frontend/dist/assets/powershell-Dpen1YoG.js +1 -0
  223. package/runtime/frontend/dist/assets/prisma-Dd19v3D-.js +1 -0
  224. package/runtime/frontend/dist/assets/prolog-CbFg5uaA.js +1 -0
  225. package/runtime/frontend/dist/assets/proto-C7zT0LnQ.js +1 -0
  226. package/runtime/frontend/dist/assets/pug-DKIMFp6K.js +1 -0
  227. package/runtime/frontend/dist/assets/puppet-BMWR74SV.js +1 -0
  228. package/runtime/frontend/dist/assets/purescript-CklMAg4u.js +1 -0
  229. package/runtime/frontend/dist/assets/python-B6aJPvgy.js +1 -0
  230. package/runtime/frontend/dist/assets/qml-3beO22l8.js +1 -0
  231. package/runtime/frontend/dist/assets/qmldir-C8lEn-DE.js +1 -0
  232. package/runtime/frontend/dist/assets/qss-IeuSbFQv.js +1 -0
  233. package/runtime/frontend/dist/assets/r-Dspwwk_N.js +1 -0
  234. package/runtime/frontend/dist/assets/racket-BqYA7rlc.js +1 -0
  235. package/runtime/frontend/dist/assets/raku-DXvB9xmW.js +1 -0
  236. package/runtime/frontend/dist/assets/razor-BDqjjVU7.js +1 -0
  237. package/runtime/frontend/dist/assets/red-bN70gL4F.js +1 -0
  238. package/runtime/frontend/dist/assets/reg-C-SQnVFl.js +1 -0
  239. package/runtime/frontend/dist/assets/regexp-CDVJQ6XC.js +1 -0
  240. package/runtime/frontend/dist/assets/rel-C3B-1QV4.js +1 -0
  241. package/runtime/frontend/dist/assets/riscv-BM1_JUlF.js +1 -0
  242. package/runtime/frontend/dist/assets/ron-D8l8udqQ.js +1 -0
  243. package/runtime/frontend/dist/assets/rose-pine-dawn-DHQR4-dF.js +1 -0
  244. package/runtime/frontend/dist/assets/rose-pine-moon-D4_iv3hh.js +1 -0
  245. package/runtime/frontend/dist/assets/rose-pine-qdsjHGoJ.js +1 -0
  246. package/runtime/frontend/dist/assets/rosmsg-BJDFO7_C.js +1 -0
  247. package/runtime/frontend/dist/assets/rst-CRjBmOyv.js +1 -0
  248. package/runtime/frontend/dist/assets/ruby-Wjq7vjNf.js +1 -0
  249. package/runtime/frontend/dist/assets/rust-B1yitclQ.js +1 -0
  250. package/runtime/frontend/dist/assets/sas-cz2c8ADy.js +1 -0
  251. package/runtime/frontend/dist/assets/sass-Cj5Yp3dK.js +1 -0
  252. package/runtime/frontend/dist/assets/scala-C151Ov-r.js +1 -0
  253. package/runtime/frontend/dist/assets/scheme-C98Dy4si.js +1 -0
  254. package/runtime/frontend/dist/assets/scss-D5BDwBP9.js +1 -0
  255. package/runtime/frontend/dist/assets/sdbl-DVxCFoDh.js +1 -0
  256. package/runtime/frontend/dist/assets/shaderlab-Dg9Lc6iA.js +1 -0
  257. package/runtime/frontend/dist/assets/shellscript-Yzrsuije.js +1 -0
  258. package/runtime/frontend/dist/assets/shellsession-BADoaaVG.js +1 -0
  259. package/runtime/frontend/dist/assets/slack-dark-BthQWCQV.js +1 -0
  260. package/runtime/frontend/dist/assets/slack-ochin-DqwNpetd.js +1 -0
  261. package/runtime/frontend/dist/assets/smalltalk-BERRCDM3.js +1 -0
  262. package/runtime/frontend/dist/assets/snazzy-light-Bw305WKR.js +1 -0
  263. package/runtime/frontend/dist/assets/solarized-dark-DXbdFlpD.js +1 -0
  264. package/runtime/frontend/dist/assets/solarized-light-L9t79GZl.js +1 -0
  265. package/runtime/frontend/dist/assets/solidity-rGO070M0.js +1 -0
  266. package/runtime/frontend/dist/assets/soy-8wufbnw4.js +1 -0
  267. package/runtime/frontend/dist/assets/sparql-rVzFXLq3.js +1 -0
  268. package/runtime/frontend/dist/assets/splunk-BtCnVYZw.js +1 -0
  269. package/runtime/frontend/dist/assets/sql-BLtJtn59.js +1 -0
  270. package/runtime/frontend/dist/assets/ssh-config-_ykCGR6B.js +1 -0
  271. package/runtime/frontend/dist/assets/stata-BH5u7GGu.js +1 -0
  272. package/runtime/frontend/dist/assets/stylus-BEDo0Tqx.js +1 -0
  273. package/runtime/frontend/dist/assets/surrealql-Bq5Q-fJD.js +1 -0
  274. package/runtime/frontend/dist/assets/svelte-Cy7k_4gC.js +1 -0
  275. package/runtime/frontend/dist/assets/swift-D82vCrfD.js +1 -0
  276. package/runtime/frontend/dist/assets/synthwave-84-CbfX1IO0.js +1 -0
  277. package/runtime/frontend/dist/assets/system-verilog-CnnmHF94.js +1 -0
  278. package/runtime/frontend/dist/assets/systemd-4A_iFExJ.js +1 -0
  279. package/runtime/frontend/dist/assets/talonscript-CkByrt1z.js +1 -0
  280. package/runtime/frontend/dist/assets/tasl-QIJgUcNo.js +1 -0
  281. package/runtime/frontend/dist/assets/tauriTerminal-4k8awVqp.js +1 -0
  282. package/runtime/frontend/dist/assets/tcl-dwOrl1Do.js +1 -0
  283. package/runtime/frontend/dist/assets/templ-DhtptRzy.js +1 -0
  284. package/runtime/frontend/dist/assets/terraform-BETggiCN.js +1 -0
  285. package/runtime/frontend/dist/assets/tex-idrVyKtj.js +1 -0
  286. package/runtime/frontend/dist/assets/tokyo-night-hegEt444.js +1 -0
  287. package/runtime/frontend/dist/assets/toml-vGWfd6FD.js +1 -0
  288. package/runtime/frontend/dist/assets/ts-tags-DQrlYJgV.js +1 -0
  289. package/runtime/frontend/dist/assets/tsv-B_m7g4N7.js +1 -0
  290. package/runtime/frontend/dist/assets/tsx-COt5Ahok.js +1 -0
  291. package/runtime/frontend/dist/assets/turtle-BsS91CYL.js +1 -0
  292. package/runtime/frontend/dist/assets/twig-xg9kU7Mw.js +1 -0
  293. package/runtime/frontend/dist/assets/typescript-BPQ3VLAy.js +1 -0
  294. package/runtime/frontend/dist/assets/typespec-CAFt9gP4.js +1 -0
  295. package/runtime/frontend/dist/assets/typst-DHCkPAjA.js +1 -0
  296. package/runtime/frontend/dist/assets/v-BcVCzyr7.js +1 -0
  297. package/runtime/frontend/dist/assets/vala-CsfeWuGM.js +1 -0
  298. package/runtime/frontend/dist/assets/vb-D17OF-Vu.js +1 -0
  299. package/runtime/frontend/dist/assets/verilog-BQ8w6xss.js +1 -0
  300. package/runtime/frontend/dist/assets/vesper-DU1UobuO.js +1 -0
  301. package/runtime/frontend/dist/assets/vhdl-CeAyd5Ju.js +1 -0
  302. package/runtime/frontend/dist/assets/viml-CJc9bBzg.js +1 -0
  303. package/runtime/frontend/dist/assets/vitesse-black-Bkuqu6BP.js +1 -0
  304. package/runtime/frontend/dist/assets/vitesse-dark-D0r3Knsf.js +1 -0
  305. package/runtime/frontend/dist/assets/vitesse-light-CVO1_9PV.js +1 -0
  306. package/runtime/frontend/dist/assets/vue-D2xRrEX4.js +1 -0
  307. package/runtime/frontend/dist/assets/vue-html-AaS7Mt5G.js +1 -0
  308. package/runtime/frontend/dist/assets/vue-vine-BoDAl6tE.js +1 -0
  309. package/runtime/frontend/dist/assets/vyper-CDx5xZoG.js +1 -0
  310. package/runtime/frontend/dist/assets/wasm-CG6Dc4jp.js +1 -0
  311. package/runtime/frontend/dist/assets/wasm-MzD3tlZU.js +1 -0
  312. package/runtime/frontend/dist/assets/wenyan-BV7otONQ.js +1 -0
  313. package/runtime/frontend/dist/assets/wgsl-Dx-B1_4e.js +1 -0
  314. package/runtime/frontend/dist/assets/wikitext-BhOHFoWU.js +1 -0
  315. package/runtime/frontend/dist/assets/wit-5i3qLPDT.js +1 -0
  316. package/runtime/frontend/dist/assets/wolfram-lXgVvXCa.js +1 -0
  317. package/runtime/frontend/dist/assets/xml-sdJ4AIDG.js +1 -0
  318. package/runtime/frontend/dist/assets/xsl-CtQFsRM5.js +1 -0
  319. package/runtime/frontend/dist/assets/yaml-Buea-lGh.js +1 -0
  320. package/runtime/frontend/dist/assets/zenscript-DVFEvuxE.js +1 -0
  321. package/runtime/frontend/dist/assets/zig-VOosw3JB.js +1 -0
  322. package/runtime/frontend/dist/favicon.ico +0 -0
  323. package/runtime/frontend/dist/icon-192.png +0 -0
  324. package/runtime/frontend/dist/icon-512.png +0 -0
  325. package/runtime/frontend/dist/icon-maskable-512.png +0 -0
  326. package/runtime/frontend/dist/icon-maskable.svg +8 -0
  327. package/runtime/frontend/dist/icon.svg +7 -0
  328. package/runtime/frontend/dist/index.html +21 -0
  329. package/runtime/frontend/dist/manifest.webmanifest +1 -0
  330. package/runtime/frontend/dist/offline.html +54 -0
  331. package/runtime/frontend/dist/registerSW.js +1 -0
  332. package/runtime/frontend/dist/sw.js +2 -0
  333. package/runtime/plugins/damndev/index.js +331 -0
  334. package/runtime/plugins/damndev/openclaw.plugin.json +24 -0
  335. package/runtime/plugins/damndev/package.json +6 -0
  336. package/scripts/postinstall.js +51 -0
@@ -0,0 +1,720 @@
1
+ generator client {
2
+ provider = "prisma-client-js"
3
+ }
4
+
5
+ datasource db {
6
+ provider = "sqlite"
7
+ url = env("DATABASE_URL")
8
+ }
9
+
10
+ model User {
11
+ id String @id
12
+ name String
13
+ email String @unique
14
+ emailVerified Boolean @default(false)
15
+ image String?
16
+ defaultWorkspaceId String?
17
+ createdAt DateTime @default(now())
18
+ updatedAt DateTime @updatedAt
19
+ sessions Session[]
20
+ accounts Account[]
21
+ workspaces Workspace[]
22
+ memberships WorkspaceMember[]
23
+
24
+ @@map("user")
25
+ }
26
+
27
+ model Session {
28
+ id String @id
29
+ expiresAt DateTime
30
+ token String @unique
31
+ createdAt DateTime @default(now())
32
+ updatedAt DateTime @updatedAt
33
+ ipAddress String?
34
+ userAgent String?
35
+ userId String
36
+ user User @relation(fields: [userId], references: [id], onDelete: Cascade)
37
+
38
+ @@map("session")
39
+ }
40
+
41
+ model Account {
42
+ id String @id
43
+ accountId String
44
+ providerId String
45
+ userId String
46
+ user User @relation(fields: [userId], references: [id], onDelete: Cascade)
47
+ accessToken String?
48
+ refreshToken String?
49
+ idToken String?
50
+ accessTokenExpiresAt DateTime?
51
+ refreshTokenExpiresAt DateTime?
52
+ scope String?
53
+ password String?
54
+ createdAt DateTime @default(now())
55
+ updatedAt DateTime @updatedAt
56
+
57
+ @@map("account")
58
+ }
59
+
60
+ model Verification {
61
+ id String @id
62
+ identifier String
63
+ value String
64
+ expiresAt DateTime
65
+ createdAt DateTime @default(now())
66
+ updatedAt DateTime @updatedAt
67
+
68
+ @@map("verification")
69
+ }
70
+
71
+ model Workspace {
72
+ id String @id @default(cuid())
73
+ name String
74
+ ownerId String
75
+ owner User @relation(fields: [ownerId], references: [id])
76
+ createdAt DateTime @default(now())
77
+ agents Agent[]
78
+ channels Channel[]
79
+ skills Skill[]
80
+ tasks Task[]
81
+ missions Mission[]
82
+ members WorkspaceMember[]
83
+ invitations WorkspaceInvitation[]
84
+ }
85
+
86
+ model Agent {
87
+ id String @id
88
+ name String
89
+ emoji String
90
+ role String
91
+ color String
92
+ status String @default("idle")
93
+ soulExcerpt String
94
+ model String
95
+ defaultModel String
96
+ modelRules String?
97
+ customModels String?
98
+ visibility String @default("public")
99
+ autoApprove Boolean @default(false)
100
+ shellAllowlist String?
101
+ heartbeatEnabled Boolean @default(false)
102
+ heartbeatEvery String?
103
+ activeSince DateTime?
104
+ lastAction DateTime?
105
+ createdAt DateTime @default(now())
106
+ updatedAt DateTime @updatedAt
107
+ workspaceId String
108
+ workspace Workspace @relation(fields: [workspaceId], references: [id])
109
+ channels Channel[]
110
+ agentSkills AgentSkill[]
111
+ mounts AgentMount[]
112
+ externalChannels ExternalChannel[]
113
+ canDelegate Boolean @default(true)
114
+ capabilities String?
115
+ canReceiveDelegations Boolean @default(true)
116
+ gatewayId String?
117
+ fallbackModel String?
118
+ }
119
+
120
+ model AgentMount {
121
+ id String @id @default(cuid())
122
+ agentId String
123
+ hostPath String
124
+ agentPath String
125
+ createdAt DateTime @default(now())
126
+ agent Agent @relation(fields: [agentId], references: [id], onDelete: Cascade)
127
+ }
128
+
129
+ model Channel {
130
+ id String @id @default(cuid())
131
+ name String
132
+ type String
133
+ channelType String @default("dm")
134
+ agentId String?
135
+ agent Agent? @relation(fields: [agentId], references: [id])
136
+ description String?
137
+ unreadCount Int @default(0)
138
+ lastMessage String?
139
+ lastMessageAt DateTime?
140
+ sessionKey String?
141
+ maxTurns Int?
142
+ turnCount Int @default(0)
143
+ isActive Boolean @default(true)
144
+ workspaceId String
145
+ workspace Workspace @relation(fields: [workspaceId], references: [id])
146
+ visibility String @default("private")
147
+ responseMode String @default("always")
148
+ crossWorkspaceId String?
149
+ watchingAgentId String?
150
+ sessionTokensIn Int @default(0)
151
+ sessionTokensOut Int @default(0)
152
+ sessionCostUsd Float @default(0)
153
+ parentChannelId String?
154
+ parent Channel? @relation("ChannelTabs", fields: [parentChannelId], references: [id], onDelete: Cascade)
155
+ childTabs Channel[] @relation("ChannelTabs")
156
+ tabOrder Int @default(0)
157
+ tabName String?
158
+ createdAt DateTime @default(now())
159
+ updatedAt DateTime @updatedAt
160
+ messages Message[]
161
+ readReceipts ReadReceipt[]
162
+ participants ChannelParticipant[]
163
+
164
+ @@index([watchingAgentId])
165
+ @@index([parentChannelId])
166
+ }
167
+
168
+ model ChannelParticipant {
169
+ id String @id @default(cuid())
170
+ channelId String
171
+ channel Channel @relation(fields: [channelId], references: [id], onDelete: Cascade)
172
+ participantId String
173
+ participantType String
174
+ hidden Boolean @default(false)
175
+ createdAt DateTime @default(now())
176
+
177
+ @@unique([channelId, participantId])
178
+ }
179
+
180
+ model Message {
181
+ id String @id @default(cuid())
182
+ channelId String
183
+ channel Channel @relation(fields: [channelId], references: [id])
184
+ senderType String
185
+ senderId String
186
+ senderName String
187
+ senderColor String?
188
+ content String
189
+ status String?
190
+ label String?
191
+ threadId String?
192
+ parentMessageId String?
193
+ parentMessage Message? @relation("ThreadReplies", fields: [parentMessageId], references: [id])
194
+ replies Message[] @relation("ThreadReplies")
195
+ editedAt DateTime?
196
+ pinnedAt DateTime?
197
+ pinnedBy String?
198
+ modelUsed String?
199
+ metadata String?
200
+ sourceChannel String?
201
+ externalChatId String?
202
+ summarized Boolean @default(false)
203
+ createdAt DateTime @default(now())
204
+ updatedAt DateTime @updatedAt
205
+ approval Approval?
206
+ reactions Reaction[]
207
+ attachments Attachment[]
208
+ }
209
+
210
+ model Approval {
211
+ id String @id @default(cuid())
212
+ messageId String @unique
213
+ message Message @relation(fields: [messageId], references: [id])
214
+ status String @default("pending")
215
+ type String?
216
+ payload String?
217
+ priority String @default("normal")
218
+ expiresAt DateTime?
219
+ rejectionNote String?
220
+ decidedAt DateTime?
221
+ decidedBy String?
222
+ createdAt DateTime @default(now())
223
+ }
224
+
225
+ model Reaction {
226
+ id String @id @default(cuid())
227
+ messageId String
228
+ message Message @relation(fields: [messageId], references: [id], onDelete: Cascade)
229
+ userId String
230
+ emoji String
231
+ createdAt DateTime @default(now())
232
+
233
+ @@unique([messageId, userId, emoji])
234
+ }
235
+
236
+ model ReadReceipt {
237
+ id String @id @default(cuid())
238
+ userId String
239
+ channelId String
240
+ channel Channel @relation(fields: [channelId], references: [id])
241
+ lastReadMessageId String
242
+ updatedAt DateTime @updatedAt
243
+
244
+ @@unique([userId, channelId])
245
+ }
246
+
247
+ model Attachment {
248
+ id String @id @default(cuid())
249
+ messageId String?
250
+ message Message? @relation(fields: [messageId], references: [id], onDelete: Cascade)
251
+ filename String
252
+ mimeType String
253
+ path String
254
+ size Int
255
+ createdAt DateTime @default(now())
256
+ }
257
+
258
+ model Skill {
259
+ id String @id @default(cuid())
260
+ slug String
261
+ name String
262
+ description String
263
+ provider String
264
+ endpoint String
265
+ requiresApproval Boolean @default(false)
266
+ inputSchema String?
267
+ outputSchema String?
268
+ source String @default("local") // local | custom | clawhub | authored | builtin
269
+ version String @default("1.0.0")
270
+ publisher String?
271
+ installedAt DateTime @default(now())
272
+ workspaceId String
273
+ workspace Workspace @relation(fields: [workspaceId], references: [id])
274
+ agentSkills AgentSkill[]
275
+
276
+ @@unique([workspaceId, slug])
277
+ }
278
+
279
+ model AgentSkill {
280
+ id String @id @default(cuid())
281
+ agentId String
282
+ skillId String
283
+ enabled Boolean @default(false)
284
+ agent Agent @relation(fields: [agentId], references: [id], onDelete: Cascade)
285
+ skill Skill @relation(fields: [skillId], references: [id], onDelete: Cascade)
286
+
287
+ @@unique([agentId, skillId])
288
+ }
289
+
290
+ model OnboardingState {
291
+ id String @id @default("singleton")
292
+ completed Boolean @default(false)
293
+ completedAt DateTime?
294
+ skippedAt DateTime?
295
+ skippedOpenClaw Boolean @default(false)
296
+ cooAgentId String?
297
+ defaultReasoningModel String?
298
+ defaultFastModel String?
299
+ workspaceId String?
300
+ workspaceInstructions String?
301
+ previousInstructions String?
302
+ tailscaleHostname String?
303
+ networkMode String @default("local")
304
+ customHostname String?
305
+ shellExecEnabled Boolean @default(true)
306
+ shellWorkdirAllowlist String @default("[]")
307
+ gatewayType String @default("openclaw")
308
+ gatewayConfig String?
309
+ workspaceContext String?
310
+ // Default policy for newly spawned federated nodes — applied both to UI-triggered
311
+ // and COO-triggered spawns. User-configurable from Settings → Federation.
312
+ // Valid values: 'closed' | 'coo-only' | 'approval-required' | 'open'.
313
+ // The runtime DelegationPolicy type is in lib/federation.ts.
314
+ defaultNodeSpawnPolicy String @default("coo-only")
315
+ // When true, `node-spawn` blocks emitted by the COO auto-execute without requiring
316
+ // explicit user approval. Defaults to false (safer). User opt-in from Settings.
317
+ cooAutoApproveNodeSpawn Boolean @default(false)
318
+ }
319
+
320
+ model WaitlistEntry {
321
+ id String @id @default(cuid())
322
+ email String @unique
323
+ createdAt DateTime @default(now())
324
+ }
325
+
326
+ model AvailableModel {
327
+ id String @id
328
+ name String
329
+ pricing String?
330
+ pricingInputPer1k Float?
331
+ pricingOutputPer1k Float?
332
+ contextWindow Int?
333
+ }
334
+
335
+ model AgentEvent {
336
+ id String @id @default(cuid())
337
+ agentId String
338
+ type String
339
+ channelId String?
340
+ messageId String?
341
+ payload String
342
+ tokenCount Int?
343
+ estimatedCostUsd Float?
344
+ durationMs Int?
345
+ source String @default("gateway")
346
+ ts DateTime @default(now())
347
+
348
+ @@index([agentId, ts])
349
+ @@index([source, ts])
350
+ @@index([agentId, source, ts])
351
+ }
352
+
353
+ model WorkspaceProposal {
354
+ id String @id @default(cuid())
355
+ // Discriminator — lets the same table hold different kinds of COO proposals
356
+ // (agent-team proposals vs federation node-spawn proposals, etc.) without a
357
+ // new table per kind. Defaults to 'workspace' for backward compatibility with
358
+ // the existing `proposal` block flow.
359
+ kind String @default("workspace")
360
+ status String @default("pending")
361
+ proposalJson String
362
+ workspaceId String?
363
+ createdAt DateTime @default(now())
364
+ decidedAt DateTime?
365
+ }
366
+
367
+ model Task {
368
+ id String @id @default(cuid())
369
+ workspaceId String
370
+ workspace Workspace @relation(fields: [workspaceId], references: [id])
371
+ goal String
372
+ status String @default("pending")
373
+ plan String
374
+ createdAt DateTime @default(now())
375
+ updatedAt DateTime @updatedAt
376
+ dispatches Dispatch[]
377
+ }
378
+
379
+ model Dispatch {
380
+ id String @id @default(cuid())
381
+ taskId String
382
+ task Task @relation(fields: [taskId], references: [id], onDelete: Cascade)
383
+ agentId String
384
+ channelId String
385
+ instruction String
386
+ status String @default("sent")
387
+ createdAt DateTime @default(now())
388
+ }
389
+
390
+ model ChannelPreference {
391
+ id String @id @default(cuid())
392
+ userId String
393
+ channelId String
394
+ muted Boolean @default(false)
395
+ notifyOnMention Boolean @default(true)
396
+ createdAt DateTime @default(now())
397
+
398
+ @@unique([userId, channelId])
399
+ }
400
+
401
+ model WorkspaceMember {
402
+ id String @id @default(cuid())
403
+ workspaceId String
404
+ workspace Workspace @relation(fields: [workspaceId], references: [id], onDelete: Cascade)
405
+ userId String
406
+ user User @relation(fields: [userId], references: [id], onDelete: Cascade)
407
+ role String @default("member")
408
+ joinedAt DateTime @default(now())
409
+ onboardedAt DateTime?
410
+
411
+ @@unique([workspaceId, userId])
412
+ }
413
+
414
+ model WorkspaceInvitation {
415
+ id String @id @default(cuid())
416
+ workspaceId String
417
+ workspace Workspace @relation(fields: [workspaceId], references: [id], onDelete: Cascade)
418
+ invitedBy String
419
+ token String @unique
420
+ role String @default("member")
421
+ expiresAt DateTime
422
+ acceptedAt DateTime?
423
+ acceptedBy String?
424
+ status String @default("pending")
425
+ createdAt DateTime @default(now())
426
+ }
427
+
428
+ model FileEditApproval {
429
+ id String @id @default(cuid())
430
+ agentId String
431
+ channelId String
432
+ file String
433
+ action String
434
+ payload String
435
+ status String @default("pending")
436
+ rejectionNote String?
437
+ decidedAt DateTime?
438
+ decidedBy String?
439
+ createdAt DateTime @default(now())
440
+ }
441
+
442
+ model DelegationRule {
443
+ id String @id @default(cuid())
444
+ agentId String
445
+ pattern String
446
+ autoApprove Boolean @default(true)
447
+ createdAt DateTime @default(now())
448
+ }
449
+
450
+ model PushToken {
451
+ id String @id @default(cuid())
452
+ userId String
453
+ token String @unique
454
+ platform String @default("web")
455
+ createdAt DateTime @default(now())
456
+
457
+ @@index([userId])
458
+ }
459
+
460
+ model SessionOverride {
461
+ agentId String @id
462
+ override String
463
+ expiresAt DateTime
464
+ createdAt DateTime @default(now())
465
+ }
466
+
467
+ model ExternalChannel {
468
+ id String @id @default(cuid())
469
+ agentId String
470
+ provider String
471
+ enabled Boolean @default(true)
472
+ status String @default("idle")
473
+ credentials String
474
+ metadata String?
475
+ createdAt DateTime @default(now())
476
+
477
+ agent Agent @relation(fields: [agentId], references: [id], onDelete: Cascade)
478
+ @@unique([agentId, provider])
479
+ }
480
+
481
+ model TelegramPairing {
482
+ id String @id @default(cuid())
483
+ workspaceId String
484
+ userId String
485
+ telegramUserId String
486
+ telegramUsername String?
487
+ telegramFirstName String?
488
+ channelId String
489
+ externalChannelId String
490
+ pairedAt DateTime @default(now())
491
+
492
+ @@unique([externalChannelId, telegramUserId])
493
+ @@unique([externalChannelId, userId])
494
+ @@index([workspaceId])
495
+ }
496
+
497
+ model AgentTask {
498
+ id String @id @default(cuid())
499
+ parentTaskId String?
500
+ fromAgentId String
501
+ toAgentId String
502
+ channelId String
503
+ targetChannelId String?
504
+
505
+ task String
506
+ context String?
507
+ responseFormat String?
508
+
509
+ status String @default("pending")
510
+ result String?
511
+ failureReason String?
512
+
513
+ depth Int @default(0)
514
+ priority String @default("normal")
515
+ timeout Int @default(120)
516
+ crossInstance Boolean @default(false)
517
+
518
+ tokensUsed Int?
519
+ externalChatId String?
520
+ missionTaskId String?
521
+ federationNodeId String?
522
+ remoteAgentTaskId String?
523
+
524
+ createdAt DateTime @default(now())
525
+ startedAt DateTime?
526
+ completedAt DateTime?
527
+
528
+ parentTask AgentTask? @relation("TaskChain", fields: [parentTaskId], references: [id])
529
+ childTasks AgentTask[] @relation("TaskChain")
530
+ missionTask MissionTask? @relation(fields: [missionTaskId], references: [id])
531
+
532
+ @@index([fromAgentId, status])
533
+ @@index([toAgentId, status])
534
+ @@index([status, createdAt])
535
+ @@index([crossInstance, status])
536
+ @@index([missionTaskId])
537
+ @@index([federationNodeId])
538
+ }
539
+
540
+ model FileChange {
541
+ id String @id @default(cuid())
542
+ agentId String
543
+ channelId String
544
+ filePath String
545
+ diff String
546
+ oldContent String
547
+ newContent String
548
+ reverted Boolean @default(false)
549
+ createdAt DateTime @default(now())
550
+
551
+ @@index([channelId])
552
+ @@index([agentId])
553
+ }
554
+
555
+ model GitPullRequest {
556
+ id String @id @default(cuid())
557
+ agentId String
558
+ channelId String
559
+ provider String
560
+ remoteUrl String
561
+ title String
562
+ body String
563
+ branch String
564
+ base String
565
+ prNumber Int?
566
+ prUrl String?
567
+ status String @default("pending")
568
+ approvalId String?
569
+ createdAt DateTime @default(now())
570
+ updatedAt DateTime @updatedAt
571
+ mergedAt DateTime?
572
+ closedAt DateTime?
573
+
574
+ @@index([agentId])
575
+ @@index([channelId])
576
+ @@index([status])
577
+ }
578
+
579
+ model GitWorktree {
580
+ id String @id @default(cuid())
581
+ agentId String
582
+ repoDir String
583
+ worktreeDir String
584
+ branch String
585
+ taskId String?
586
+ status String @default("active")
587
+ createdAt DateTime @default(now())
588
+ removedAt DateTime?
589
+
590
+ @@unique([agentId, branch])
591
+ @@index([agentId, status])
592
+ }
593
+
594
+ model WorkspaceSecret {
595
+ id String @id @default(cuid())
596
+ key String @unique
597
+ valueEnc String
598
+ iv String
599
+ authTag String
600
+ description String?
601
+ createdAt DateTime @default(now())
602
+ updatedAt DateTime @updatedAt
603
+ }
604
+
605
+ model Mission {
606
+ id String @id @default(cuid())
607
+ workspaceId String
608
+ workspace Workspace @relation(fields: [workspaceId], references: [id])
609
+ title String
610
+ description String?
611
+ status String @default("planning")
612
+ priority String @default("normal")
613
+ createdBy String
614
+ assignedAgentId String?
615
+ parentMissionId String?
616
+ parentMission Mission? @relation("MissionTree", fields: [parentMissionId], references: [id])
617
+ childMissions Mission[] @relation("MissionTree")
618
+ dependsOn String?
619
+ tags String?
620
+ metadata String?
621
+ repoDir String?
622
+ worktreeDir String?
623
+ worktreeBranch String?
624
+ sortOrder Int @default(0)
625
+ ephemeralNodeId String? // if set, this mission owns a disposable FederationNode
626
+ startedAt DateTime?
627
+ completedAt DateTime?
628
+ createdAt DateTime @default(now())
629
+ updatedAt DateTime @updatedAt
630
+ tasks MissionTask[]
631
+
632
+ @@index([workspaceId, status])
633
+ @@index([workspaceId, priority])
634
+ @@index([createdBy])
635
+ }
636
+
637
+ model MissionTask {
638
+ id String @id @default(cuid())
639
+ missionId String
640
+ mission Mission @relation(fields: [missionId], references: [id], onDelete: Cascade)
641
+ agentId String?
642
+ title String
643
+ instruction String
644
+ status String @default("pending")
645
+ order Int @default(0)
646
+ dependsOn String?
647
+ createdAt DateTime @default(now())
648
+ updatedAt DateTime @updatedAt
649
+ agentTasks AgentTask[]
650
+
651
+ @@index([missionId, status])
652
+ @@index([missionId, order])
653
+ }
654
+
655
+ model MissionTemplate {
656
+ id String @id @default(cuid())
657
+ workspaceId String
658
+ name String
659
+ description String?
660
+ template String
661
+ createdAt DateTime @default(now())
662
+ updatedAt DateTime @updatedAt
663
+
664
+ @@index([workspaceId])
665
+ }
666
+
667
+ model FederationNode {
668
+ id String @id @default(cuid())
669
+ workspaceId String
670
+ name String
671
+ url String
672
+ authToken String
673
+ status String @default("pending")
674
+ lastHeartbeat DateTime?
675
+ agentCount Int @default(0)
676
+ capabilities String?
677
+ localPort Int?
678
+ localProject String?
679
+ // delegation policy: who on THIS hub is allowed to dispatch tasks INTO this node.
680
+ // 'closed' = no cross-instance dispatch; 'coo-only' = only COO + mission system;
681
+ // 'approval-required' = creates approval row per dispatch; 'open' = unrestricted.
682
+ // Default 'coo-only' for spawned local nodes (set in spawnLocalNode), 'closed' for
683
+ // manually-registered remote nodes (set in registerNode).
684
+ delegationPolicy String @default("closed")
685
+ // JSON string[] of agent ids that bypass the delegationPolicy check (additive grant).
686
+ // A 'coo-only' node with ["axiom"] permits both coo (via policy) and axiom (via allowlist).
687
+ delegationAllowlist String @default("[]")
688
+ // spawn metadata — how this node was created
689
+ spawnType String? // 'local' | 'cloud' | 'manual'
690
+ cloudProvider String? // 'hetzner' | 'digitalocean'
691
+ cloudServerId String? // provider's server ID (for API lifecycle calls)
692
+ cloudRegion String? // e.g. 'nbg1', 'ash', 'sin'
693
+ cloudSize String? // e.g. 'cx22', 'cx32'
694
+ monthlyCost Float? // estimated monthly cost in USD
695
+ ipAddress String? // public IP of cloud VPS
696
+ createdAt DateTime @default(now())
697
+ updatedAt DateTime @updatedAt
698
+ remoteAgents RemoteAgent[]
699
+
700
+ @@unique([workspaceId, url])
701
+ @@index([workspaceId, status])
702
+ }
703
+
704
+ model RemoteAgent {
705
+ id String @id @default(cuid())
706
+ nodeId String
707
+ node FederationNode @relation(fields: [nodeId], references: [id], onDelete: Cascade)
708
+ remoteAgentId String
709
+ name String
710
+ emoji String
711
+ role String
712
+ color String
713
+ capabilities String?
714
+ canReceiveDelegations Boolean @default(true)
715
+ lastSeen DateTime?
716
+ createdAt DateTime @default(now())
717
+
718
+ @@unique([nodeId, remoteAgentId])
719
+ @@index([nodeId])
720
+ }