openwork-server 0.18.49 → 0.18.56

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 (695) hide show
  1. package/README.md +31 -1
  2. package/bin/openwork-server.mjs +28 -20
  3. package/bin/platform.mjs +28 -0
  4. package/dist/opencode-plugin-deps-1.18.30.tgz +0 -0
  5. package/dist/opencode-plugins/agent-instruction-compose.js +81 -0
  6. package/dist/opencode-plugins/gmail-attachment-fulfillment.js +199 -0
  7. package/dist/opencode-plugins/managed-policy-client.js +39 -0
  8. package/dist/opencode-plugins/managed-policy-next.js +13894 -0
  9. package/dist/opencode-plugins/managed-policy.js +100 -0
  10. package/dist/opencode-plugins/openwork-anthropic-adaptive-thinking.js +83 -0
  11. package/dist/opencode-plugins/openwork-anthropic-tool-schema.js +154 -0
  12. package/dist/opencode-plugins/openwork-capabilities-knowledge.js +13842 -0
  13. package/dist/opencode-plugins/openwork-chrome-devtools.js +13690 -0
  14. package/dist/opencode-plugins/openwork-context-v2.js +84 -0
  15. package/dist/opencode-plugins/openwork-extensions-preview-steering.js +295 -0
  16. package/dist/opencode-plugins/openwork-extensions-preview.js +16388 -0
  17. package/dist/opencode-plugins/openwork-gateway-quota-v2.js +13816 -0
  18. package/dist/opencode-plugins/openwork-gateway-quota.js +14141 -0
  19. package/dist/opencode-plugins/openwork-mcp-results-v2.js +154 -0
  20. package/dist/opencode-plugins/openwork-office-attachments.js +3013 -0
  21. package/dist/opencode-plugins/openwork-pdf-attachments.js +23811 -0
  22. package/dist/opencode-plugins/openwork-provider-adapters.js +292 -0
  23. package/dist/opencode-plugins/openwork-provider-filters-v2.js +69 -0
  24. package/dist/opencode-plugins/openwork-read-transport.js +2 -0
  25. package/dist/opencode-plugins/openwork-spreadsheets.js +16582 -0
  26. package/dist/opencode-plugins/openwork-title-recovery.js +255 -0
  27. package/dist/opencode-plugins/openwork-ui-bridge.js +81 -0
  28. package/dist/opencode-plugins/pdfium.wasm +0 -0
  29. package/dist/opencode-plugins/session-activity.js +45 -0
  30. package/dist/opencode-plugins/workspace-file-identity.js +162 -0
  31. package/dist/openwork-server.mjs +114735 -0
  32. package/dist/pdfium.wasm +0 -0
  33. package/package.json +7 -1
  34. package/web/apple-touch-icon.png +0 -0
  35. package/web/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  36. package/web/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  37. package/web/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  38. package/web/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  39. package/web/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  40. package/web/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  41. package/web/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  42. package/web/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  43. package/web/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  44. package/web/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  45. package/web/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  46. package/web/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  47. package/web/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  48. package/web/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  49. package/web/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  50. package/web/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  51. package/web/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  52. package/web/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  53. package/web/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  54. package/web/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  55. package/web/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  56. package/web/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  57. package/web/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  58. package/web/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  59. package/web/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  60. package/web/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  61. package/web/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  62. package/web/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  63. package/web/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  64. package/web/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  65. package/web/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  66. package/web/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  67. package/web/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  68. package/web/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  69. package/web/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  70. package/web/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  71. package/web/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  72. package/web/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  73. package/web/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  74. package/web/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  75. package/web/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  76. package/web/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  77. package/web/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  78. package/web/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  79. package/web/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  80. package/web/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  81. package/web/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  82. package/web/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  83. package/web/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  84. package/web/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  85. package/web/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  86. package/web/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  87. package/web/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  88. package/web/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  89. package/web/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  90. package/web/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  91. package/web/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  92. package/web/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  93. package/web/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  94. package/web/assets/abap-BdImnpbu.js +1 -0
  95. package/web/assets/abnfDiagram-VCTEODGH-Dr1YMfll.js +1 -0
  96. package/web/assets/actionscript-3-CoDkCxhg.js +1 -0
  97. package/web/assets/ada-bCR0ucgS.js +1 -0
  98. package/web/assets/andromeeda-C4gqWexZ.js +1 -0
  99. package/web/assets/angular-html-DA-rfuFy.js +1 -0
  100. package/web/assets/angular-ts-BrjP3tb8.js +1 -0
  101. package/web/assets/apache-Pmp26Uib.js +1 -0
  102. package/web/assets/apex-D8_7TLub.js +1 -0
  103. package/web/assets/apl-CORt7UWP.js +1 -0
  104. package/web/assets/app-D9Nvta88.js +2631 -0
  105. package/web/assets/app-DOrYoP_4.css +32 -0
  106. package/web/assets/applescript-Co6uUVPk.js +1 -0
  107. package/web/assets/ara-BRHolxvo.js +1 -0
  108. package/web/assets/arc-7SoIBvT7.js +1 -0
  109. package/web/assets/architectureDiagram-5GKGNRK7-BZwevfH9.js +36 -0
  110. package/web/assets/artifact-code-view-WLwX_I1h.js +1906 -0
  111. package/web/assets/artifact-spreadsheet-editor-BvEnxKsm.js +11 -0
  112. package/web/assets/artifact-text-editor-BHyVrNyR.js +34 -0
  113. package/web/assets/asciidoc-Ve4PFQV2.js +1 -0
  114. package/web/assets/asm-D_Q5rh1f.js +1 -0
  115. package/web/assets/astro-HNnZUWAn.js +1 -0
  116. package/web/assets/aurora-x-D-2ljcwZ.js +1 -0
  117. package/web/assets/awk-DMzUqQB5.js +1 -0
  118. package/web/assets/ayu-dark-DYE7WIF3.js +1 -0
  119. package/web/assets/ayu-light-BA47KaF1.js +1 -0
  120. package/web/assets/ayu-mirage-32ctXXKs.js +1 -0
  121. package/web/assets/ballerina-BFfxhgS-.js +1 -0
  122. package/web/assets/bat-BkioyH1T.js +1 -0
  123. package/web/assets/beancount-k_qm7-4y.js +1 -0
  124. package/web/assets/berry-uYugtg8r.js +1 -0
  125. package/web/assets/bibtex-CHM0blh-.js +1 -0
  126. package/web/assets/bicep-Bmn6On1c.js +1 -0
  127. package/web/assets/bird2-BIv1doCn.js +1 -0
  128. package/web/assets/blade-BjGOyj-B.js +1 -0
  129. package/web/assets/blockDiagram-OSKFZWR5-Cvqr9DPi.js +129 -0
  130. package/web/assets/bsl-BO_Y6i37.js +1 -0
  131. package/web/assets/c-BIGW1oBm.js +1 -0
  132. package/web/assets/c3-eo99z4R2.js +1 -0
  133. package/web/assets/c4Diagram-7LVT6UL2-CWTWC9C1.js +38 -0
  134. package/web/assets/cadence-Bv_4Rxtq.js +1 -0
  135. package/web/assets/cairo-KRGpt6FW.js +1 -0
  136. package/web/assets/catppuccin-frappe-DFWUc33u.js +1 -0
  137. package/web/assets/catppuccin-latte-C9dUb6Cb.js +1 -0
  138. package/web/assets/catppuccin-macchiato-DQyhUUbL.js +1 -0
  139. package/web/assets/catppuccin-mocha-D87Tk5Gz.js +1 -0
  140. package/web/assets/channel-BkgEJbR-.js +1 -0
  141. package/web/assets/chunk-2Q5K7J3B-DpJkzZ5x.js +1 -0
  142. package/web/assets/chunk-5VM5RSS4-BtTBnr9m.js +15 -0
  143. package/web/assets/chunk-F27PBJKO-BbAvFJAg.js +1 -0
  144. package/web/assets/chunk-HLEWEB6X-DX5mKBrj.js +206 -0
  145. package/web/assets/chunk-JWPE2WC7-CugB1e5O.js +1 -0
  146. package/web/assets/chunk-POPQ4Y6H-BQ-bWmmo.js +1 -0
  147. package/web/assets/chunk-SVP7TREG-szCI_Kz9.js +88 -0
  148. package/web/assets/chunk-XXDRQBXY-C5UTO899.js +1 -0
  149. package/web/assets/chunk-ZLD2IHE6-D5v_jiDg.js +231 -0
  150. package/web/assets/clarity-D53aC0YG.js +1 -0
  151. package/web/assets/classDiagram-CYGNFDIV-BHINh3-f.js +1 -0
  152. package/web/assets/classDiagram-v2-TLXNO2FR-BHINh3-f.js +1 -0
  153. package/web/assets/clojure-P80f7IUj.js +1 -0
  154. package/web/assets/cmake-D1j8_8rp.js +1 -0
  155. package/web/assets/cobol-nBiQ_Alo.js +1 -0
  156. package/web/assets/codeowners-Bp6g37R7.js +1 -0
  157. package/web/assets/codeql-DsOJ9woJ.js +1 -0
  158. package/web/assets/coffee-Ch7k5sss.js +1 -0
  159. package/web/assets/common-lisp-Cg-RD9OK.js +1 -0
  160. package/web/assets/coq-DkFqJrB1.js +1 -0
  161. package/web/assets/cose-bilkent-JH36ORCC-BhG_zAfo.js +1 -0
  162. package/web/assets/cpp-CofmeUqb.js +1 -0
  163. package/web/assets/crystal-DNxU26gB.js +1 -0
  164. package/web/assets/csharp-COcwbKMJ.js +1 -0
  165. package/web/assets/css-CLj8gQPS.js +1 -0
  166. package/web/assets/csv-fuZLfV_i.js +1 -0
  167. package/web/assets/cue-D82EKSYY.js +1 -0
  168. package/web/assets/cynefin-OW5HDTMX-DSTjm6jO.js +178 -0
  169. package/web/assets/cynefinDiagram-5FMLGOSQ-Dqkgb6tF.js +62 -0
  170. package/web/assets/cypher-COkxafJQ.js +1 -0
  171. package/web/assets/cytoscape.esm-CNiYdHpY.js +331 -0
  172. package/web/assets/d-85-TOEBH.js +1 -0
  173. package/web/assets/dagre-OS7QT2EB-BZMseQyA.js +4 -0
  174. package/web/assets/dark-plus-C3mMm8J8.js +1 -0
  175. package/web/assets/dart-bE4Kk8sk.js +1 -0
  176. package/web/assets/dax-CEL-wOlO.js +1 -0
  177. package/web/assets/defaultLocale-DX6XiGOO.js +1 -0
  178. package/web/assets/desktop-BmXAJ9_W.js +1 -0
  179. package/web/assets/diagram-S7CK7UJ4-Cs2hsmEJ.js +30 -0
  180. package/web/assets/diagram-UQ7AKVKN-CDnRP_yz.js +41 -0
  181. package/web/assets/diagram-VSXAHHWV-DxKXQXAC.js +3 -0
  182. package/web/assets/diagram-VX7I27RA-BJKoseDf.js +24 -0
  183. package/web/assets/diagram-Z3DM3KII-DDcMvRxo.js +24 -0
  184. package/web/assets/diff-D97Zzqfu.js +1 -0
  185. package/web/assets/docker-BcOcwvcX.js +1 -0
  186. package/web/assets/dotenv-Da5cRb03.js +1 -0
  187. package/web/assets/dracula-BzJJZx-M.js +1 -0
  188. package/web/assets/dracula-soft-BXkSAIEj.js +1 -0
  189. package/web/assets/dream-maker-BtqSS_iP.js +1 -0
  190. package/web/assets/ebnfDiagram-PWID7BFC-C2uUm-CC.js +1 -0
  191. package/web/assets/edge-FbVlp4U3.js +1 -0
  192. package/web/assets/elixir-CkH2-t6x.js +1 -0
  193. package/web/assets/elm-DbKCFpqz.js +1 -0
  194. package/web/assets/emacs-lisp-CXvaQtF9.js +1 -0
  195. package/web/assets/erDiagram-2YWLMYGG-B0Mdv5WO.js +99 -0
  196. package/web/assets/erb-BYCe7drp.js +1 -0
  197. package/web/assets/erlang-DsQrWhSR.js +1 -0
  198. package/web/assets/everforest-dark-BgDCqdQA.js +1 -0
  199. package/web/assets/everforest-light-C8M2exoo.js +1 -0
  200. package/web/assets/fennel-BYunw83y.js +1 -0
  201. package/web/assets/fish-BvzEVeQv.js +1 -0
  202. package/web/assets/flowDiagram-T62WH6J4-CUnt9AMo.js +168 -0
  203. package/web/assets/fluent-C4IJs8-o.js +1 -0
  204. package/web/assets/fortran-fixed-form-CkoXwp7k.js +1 -0
  205. package/web/assets/fortran-free-form-BxgE0vQu.js +1 -0
  206. package/web/assets/fsharp-CXgrBDvD.js +1 -0
  207. package/web/assets/ganttDiagram-EL5Y4UJY-CENsUToC.js +292 -0
  208. package/web/assets/gdresource-BOOCDP_w.js +1 -0
  209. package/web/assets/gdscript-C5YyOfLZ.js +1 -0
  210. package/web/assets/gdshader-DkwncUOv.js +1 -0
  211. package/web/assets/geist-cyrillic-wght-normal-CHSlOQsW.woff2 +0 -0
  212. package/web/assets/geist-latin-ext-wght-normal-DMtmJ5ZE.woff2 +0 -0
  213. package/web/assets/geist-latin-wght-normal-Dm3htQBi.woff2 +0 -0
  214. package/web/assets/genie-D0YGMca9.js +1 -0
  215. package/web/assets/gherkin-DyxjwDmM.js +1 -0
  216. package/web/assets/git-commit-F4YmCXRG.js +1 -0
  217. package/web/assets/git-rebase-r7XF79zn.js +1 -0
  218. package/web/assets/gitGraphDiagram-WWUBYQGX-CrbKh94B.js +106 -0
  219. package/web/assets/github-dark-DHJKELXO.js +1 -0
  220. package/web/assets/github-dark-default-Cuk6v7N8.js +1 -0
  221. package/web/assets/github-dark-dimmed-DH5Ifo-i.js +1 -0
  222. package/web/assets/github-dark-high-contrast-E3gJ1_iC.js +1 -0
  223. package/web/assets/github-light-DAi9KRSo.js +1 -0
  224. package/web/assets/github-light-default-D7oLnXFd.js +1 -0
  225. package/web/assets/github-light-high-contrast-BfjtVDDH.js +1 -0
  226. package/web/assets/gleam-BspZqrRM.js +1 -0
  227. package/web/assets/glimmer-js-ByusRIyA.js +1 -0
  228. package/web/assets/glimmer-ts-BfAWNZQY.js +1 -0
  229. package/web/assets/glsl-DplSGwfg.js +1 -0
  230. package/web/assets/gn-n2N0HUVH.js +1 -0
  231. package/web/assets/gnuplot-DdkO51Og.js +1 -0
  232. package/web/assets/go-C27-OAKa.js +1 -0
  233. package/web/assets/graphql-ChdNCCLP.js +1 -0
  234. package/web/assets/groovy-gcz8RCvz.js +1 -0
  235. package/web/assets/gruvbox-dark-hard-CFHQjOhq.js +1 -0
  236. package/web/assets/gruvbox-dark-medium-GsRaNv29.js +1 -0
  237. package/web/assets/gruvbox-dark-soft-CVdnzihN.js +1 -0
  238. package/web/assets/gruvbox-light-hard-CH1njM8p.js +1 -0
  239. package/web/assets/gruvbox-light-medium-DRw_LuNl.js +1 -0
  240. package/web/assets/gruvbox-light-soft-hJgmCMqR.js +1 -0
  241. package/web/assets/hack-i7_Ulhet.js +1 -0
  242. package/web/assets/haml-D5jkg6IW.js +1 -0
  243. package/web/assets/handlebars-BpdQsYii.js +1 -0
  244. package/web/assets/haskell-Df6bDoY_.js +1 -0
  245. package/web/assets/haxe-CzTSHFRz.js +1 -0
  246. package/web/assets/hcl-BWvSN4gD.js +1 -0
  247. package/web/assets/hjson-D5-asLiD.js +1 -0
  248. package/web/assets/hlsl-D3lLCCz7.js +1 -0
  249. package/web/assets/horizon-BUw7H-hv.js +1 -0
  250. package/web/assets/horizon-bright-CUuTKBJd.js +1 -0
  251. package/web/assets/houston-DnULxvSX.js +1 -0
  252. package/web/assets/html-derivative-DlHx6ybY.js +1 -0
  253. package/web/assets/html-pp8916En.js +1 -0
  254. package/web/assets/http-jrhK8wxY.js +1 -0
  255. package/web/assets/hurl-irOxFIW8.js +1 -0
  256. package/web/assets/hxml-Bvhsp5Yf.js +1 -0
  257. package/web/assets/hy-DFXneXwc.js +1 -0
  258. package/web/assets/ibm-plex-sans-cyrillic-ext-wght-normal-d45eAU9y.woff2 +0 -0
  259. package/web/assets/ibm-plex-sans-cyrillic-wght-normal-BAAhND-U.woff2 +0 -0
  260. package/web/assets/ibm-plex-sans-greek-wght-normal-CmyJS8uq.woff2 +0 -0
  261. package/web/assets/ibm-plex-sans-latin-ext-wght-normal-CIII54If.woff2 +0 -0
  262. package/web/assets/ibm-plex-sans-latin-wght-normal-IvpUvPa2.woff2 +0 -0
  263. package/web/assets/ibm-plex-sans-vietnamese-wght-normal-Dg1JeJN0.woff2 +0 -0
  264. package/web/assets/imba-DGztddWO.js +1 -0
  265. package/web/assets/index-CyyMNIC_.css +1 -0
  266. package/web/assets/index-D6FUvVB1.js +49 -0
  267. package/web/assets/infoDiagram-FKFFQAWI-B-U-x_qU.js +2 -0
  268. package/web/assets/ini-BEwlwnbL.js +1 -0
  269. package/web/assets/init-Gi6I4Gst.js +1 -0
  270. package/web/assets/ishikawaDiagram-5VMMS53U-jNVSJSu1.js +70 -0
  271. package/web/assets/java-CylS5w8V.js +1 -0
  272. package/web/assets/javascript-wDzz0qaB.js +1 -0
  273. package/web/assets/jinja-f2NsQr07.js +1 -0
  274. package/web/assets/jison-wvAkD_A8.js +1 -0
  275. package/web/assets/journeyDiagram-EYS64GPL-De3j0gPh.js +139 -0
  276. package/web/assets/json-Cp-IABpG.js +1 -0
  277. package/web/assets/json5-C9tS-k6U.js +1 -0
  278. package/web/assets/jsonc-Des-eS-w.js +1 -0
  279. package/web/assets/jsonl-DcaNXYhu.js +1 -0
  280. package/web/assets/jsonnet-DFQXde-d.js +1 -0
  281. package/web/assets/jssm-C2t-YnRu.js +1 -0
  282. package/web/assets/jsx-g9-lgVsj.js +1 -0
  283. package/web/assets/julia-CxzCAyBv.js +1 -0
  284. package/web/assets/just-VxiPbLrw.js +1 -0
  285. package/web/assets/kanagawa-dragon-CkXjmgJE.js +1 -0
  286. package/web/assets/kanagawa-lotus-CfQXZHmo.js +1 -0
  287. package/web/assets/kanagawa-wave-DWedfzmr.js +1 -0
  288. package/web/assets/kanban-definition-UXKFOSKX-Bbc8wjhq.js +89 -0
  289. package/web/assets/katex-HP8lGamR.js +257 -0
  290. package/web/assets/kdl-DV7GczEv.js +1 -0
  291. package/web/assets/kotlin-BdnUsdx6.js +1 -0
  292. package/web/assets/kusto-wEQ09or8.js +1 -0
  293. package/web/assets/laserwave-DUszq2jm.js +1 -0
  294. package/web/assets/latex-CWtU0Tv5.js +1 -0
  295. package/web/assets/layout-BIjP2nup.js +1 -0
  296. package/web/assets/lean-BZvkOJ9d.js +1 -0
  297. package/web/assets/less-B1dDrJ26.js +1 -0
  298. package/web/assets/light-plus-B7mTdjB0.js +1 -0
  299. package/web/assets/linear-lvQZOiHM.js +1 -0
  300. package/web/assets/liquid-C0sCDyMI.js +1 -0
  301. package/web/assets/llvm-DjAJT7YJ.js +1 -0
  302. package/web/assets/log-2UxHyX5q.js +1 -0
  303. package/web/assets/logo-BtOb2qkB.js +1 -0
  304. package/web/assets/lua-BaeVxFsk.js +1 -0
  305. package/web/assets/luau-C-HG3fhB.js +1 -0
  306. package/web/assets/make-CHLpvVh8.js +1 -0
  307. package/web/assets/markdown-Cvjx9yec.js +1 -0
  308. package/web/assets/marko-DjSrsDqO.js +1 -0
  309. package/web/assets/material-theme-D5KoaKCx.js +1 -0
  310. package/web/assets/material-theme-darker-BfHTSMKl.js +1 -0
  311. package/web/assets/material-theme-lighter-B0m2ddpp.js +1 -0
  312. package/web/assets/material-theme-ocean-CyktbL80.js +1 -0
  313. package/web/assets/material-theme-palenight-Csfq5Kiy.js +1 -0
  314. package/web/assets/matlab-D7o27uSR.js +1 -0
  315. package/web/assets/mdc-DTYItulj.js +1 -0
  316. package/web/assets/mdx-Cmh6b_Ma.js +1 -0
  317. package/web/assets/mermaid-mWjccvbQ.js +1 -0
  318. package/web/assets/mermaid.core-LJPf4T7o.js +310 -0
  319. package/web/assets/min-dark-CafNBF8u.js +1 -0
  320. package/web/assets/min-light-CTRr51gU.js +1 -0
  321. package/web/assets/mindmap-definition-THT77NOG-DiboHsg8.js +96 -0
  322. package/web/assets/mipsasm-CKIfxQSi.js +1 -0
  323. package/web/assets/mojo-rZm6bMo-.js +1 -0
  324. package/web/assets/monokai-D4h5O-jR.js +1 -0
  325. package/web/assets/moonbit-_H4v1dQx.js +1 -0
  326. package/web/assets/move-IF9eRakj.js +1 -0
  327. package/web/assets/narrat-DRg8JJMk.js +1 -0
  328. package/web/assets/nextflow-C-mBbutL.js +1 -0
  329. package/web/assets/nextflow-groovy-vE_lwT2v.js +1 -0
  330. package/web/assets/nginx-BpAMiNFr.js +1 -0
  331. package/web/assets/night-owl-C39BiMTA.js +1 -0
  332. package/web/assets/night-owl-light-CMTm3GFP.js +1 -0
  333. package/web/assets/nim-BIad80T-.js +1 -0
  334. package/web/assets/nix-CwoSXNpI.js +1 -0
  335. package/web/assets/nord-Ddv68eIx.js +1 -0
  336. package/web/assets/nushell-Cz2AlsmD.js +1 -0
  337. package/web/assets/objective-c-DXmwc3jG.js +1 -0
  338. package/web/assets/objective-cpp-CLxacb5B.js +1 -0
  339. package/web/assets/ocaml-C0hk2d4L.js +1 -0
  340. package/web/assets/odin-BBf5iR-q.js +1 -0
  341. package/web/assets/one-dark-pro-DVMEJ2y_.js +1 -0
  342. package/web/assets/one-light-C3Wv6jpd.js +1 -0
  343. package/web/assets/openscad-C4EeE6gA.js +1 -0
  344. package/web/assets/ordinal-Cboi1Yqb.js +1 -0
  345. package/web/assets/overlay-DA5SOee-.js +1 -0
  346. package/web/assets/pascal-D93ZcfNL.js +1 -0
  347. package/web/assets/pegDiagram-XKGWAZYB-DO_edVtr.js +1 -0
  348. package/web/assets/perl-NvoQZIq0.js +1 -0
  349. package/web/assets/php-R6g_5hLQ.js +1 -0
  350. package/web/assets/pieDiagram-E7YTZNPT-bPvBuBuG.js +39 -0
  351. package/web/assets/pierre-dark-CyvmCCZW.js +1 -0
  352. package/web/assets/pierre-dark-protanopia-deuteranopia-Rgc0TwpF.js +1 -0
  353. package/web/assets/pierre-dark-soft-BHGpRqa4.js +1 -0
  354. package/web/assets/pierre-dark-tritanopia-Beq2gCRQ.js +1 -0
  355. package/web/assets/pierre-dark-vibrant-BWBVywrn.js +1 -0
  356. package/web/assets/pierre-light-480U9XYS.js +1 -0
  357. package/web/assets/pierre-light-protanopia-deuteranopia-CaVOBURG.js +1 -0
  358. package/web/assets/pierre-light-soft-CVdyfjmI.js +1 -0
  359. package/web/assets/pierre-light-tritanopia-B4_gpKOM.js +1 -0
  360. package/web/assets/pierre-light-vibrant-DdTDNdfJ.js +1 -0
  361. package/web/assets/pkl-u5AG7uiY.js +1 -0
  362. package/web/assets/plastic-3e1v2bzS.js +1 -0
  363. package/web/assets/plsql-ChMvpjG-.js +1 -0
  364. package/web/assets/po-BTJTHyun.js +1 -0
  365. package/web/assets/poimandres-CS3Unz2-.js +1 -0
  366. package/web/assets/polar-C0HS_06l.js +1 -0
  367. package/web/assets/postcss-CXtECtnM.js +1 -0
  368. package/web/assets/powerquery-CEu0bR-o.js +1 -0
  369. package/web/assets/powershell-Dpen1YoG.js +1 -0
  370. package/web/assets/prisma-Dd19v3D-.js +1 -0
  371. package/web/assets/prolog-CbFg5uaA.js +1 -0
  372. package/web/assets/proto-C7zT0LnQ.js +1 -0
  373. package/web/assets/pug-DKIMFp6K.js +1 -0
  374. package/web/assets/puppet-BMWR74SV.js +1 -0
  375. package/web/assets/purescript-CklMAg4u.js +1 -0
  376. package/web/assets/python-B6aJPvgy.js +1 -0
  377. package/web/assets/qml-3beO22l8.js +1 -0
  378. package/web/assets/qmldir-C8lEn-DE.js +1 -0
  379. package/web/assets/qss-IeuSbFQv.js +1 -0
  380. package/web/assets/quadrantDiagram-AXDQQJYC-BGyrQhlH.js +7 -0
  381. package/web/assets/r-Dspwwk_N.js +1 -0
  382. package/web/assets/racket-BqYA7rlc.js +1 -0
  383. package/web/assets/railroadDiagram-O6MQD6OU-XhPIuoOE.js +1 -0
  384. package/web/assets/raku-DXvB9xmW.js +1 -0
  385. package/web/assets/razor-BDqjjVU7.js +1 -0
  386. package/web/assets/red-bN70gL4F.js +1 -0
  387. package/web/assets/reg-C-SQnVFl.js +1 -0
  388. package/web/assets/regexp-CDVJQ6XC.js +1 -0
  389. package/web/assets/rel-C3B-1QV4.js +1 -0
  390. package/web/assets/requirementDiagram-IS5BZ75X-atdASt4G.js +84 -0
  391. package/web/assets/riscv-BM1_JUlF.js +1 -0
  392. package/web/assets/ron-D8l8udqQ.js +1 -0
  393. package/web/assets/rose-pine-dawn-DHQR4-dF.js +1 -0
  394. package/web/assets/rose-pine-moon-D4_iv3hh.js +1 -0
  395. package/web/assets/rose-pine-qdsjHGoJ.js +1 -0
  396. package/web/assets/rosmsg-BJDFO7_C.js +1 -0
  397. package/web/assets/rst-CRjBmOyv.js +1 -0
  398. package/web/assets/ruby-Wjq7vjNf.js +1 -0
  399. package/web/assets/rust-B1yitclQ.js +1 -0
  400. package/web/assets/sankeyDiagram-P5KCCOFB-BV9prEKy.js +40 -0
  401. package/web/assets/sas-cz2c8ADy.js +1 -0
  402. package/web/assets/sass-Cj5Yp3dK.js +1 -0
  403. package/web/assets/scala-C151Ov-r.js +1 -0
  404. package/web/assets/scheme-C98Dy4si.js +1 -0
  405. package/web/assets/scss-D5BDwBP9.js +1 -0
  406. package/web/assets/sdbl-DVxCFoDh.js +1 -0
  407. package/web/assets/sequenceDiagram-WJ2MYXX4-Csfm-fZ-.js +162 -0
  408. package/web/assets/shaderlab-Dg9Lc6iA.js +1 -0
  409. package/web/assets/shellscript-Yzrsuije.js +1 -0
  410. package/web/assets/shellsession-BADoaaVG.js +1 -0
  411. package/web/assets/sizeCapture-INFHLROL-CLmH-AjF.js +1 -0
  412. package/web/assets/slack-dark-BthQWCQV.js +1 -0
  413. package/web/assets/slack-ochin-DqwNpetd.js +1 -0
  414. package/web/assets/smalltalk-BERRCDM3.js +1 -0
  415. package/web/assets/snazzy-light-Bw305WKR.js +1 -0
  416. package/web/assets/solarized-dark-DXbdFlpD.js +1 -0
  417. package/web/assets/solarized-light-L9t79GZl.js +1 -0
  418. package/web/assets/solidity-rGO070M0.js +1 -0
  419. package/web/assets/soy-8wufbnw4.js +1 -0
  420. package/web/assets/sparql-rVzFXLq3.js +1 -0
  421. package/web/assets/splunk-BtCnVYZw.js +1 -0
  422. package/web/assets/sql-BLtJtn59.js +1 -0
  423. package/web/assets/ssh-config-_ykCGR6B.js +1 -0
  424. package/web/assets/stata-BH5u7GGu.js +1 -0
  425. package/web/assets/stateDiagram-XQSTLZYL-yiSt2fJK.js +1 -0
  426. package/web/assets/stateDiagram-v2-IH3M54BS-BEhxOujx.js +1 -0
  427. package/web/assets/stylus-BEDo0Tqx.js +1 -0
  428. package/web/assets/surrealql-Bq5Q-fJD.js +1 -0
  429. package/web/assets/svelte-Cy7k_4gC.js +1 -0
  430. package/web/assets/swift-D82vCrfD.js +1 -0
  431. package/web/assets/swimlanes-V6O3JKXN-BpXNggx9.js +1 -0
  432. package/web/assets/swimlanesDiagram-JKAHXJPX-DWqwFv9F.js +8 -0
  433. package/web/assets/synthwave-84-CbfX1IO0.js +1 -0
  434. package/web/assets/system-verilog-CnnmHF94.js +1 -0
  435. package/web/assets/systemd-4A_iFExJ.js +1 -0
  436. package/web/assets/talonscript-CkByrt1z.js +1 -0
  437. package/web/assets/tasl-QIJgUcNo.js +1 -0
  438. package/web/assets/tcl-dwOrl1Do.js +1 -0
  439. package/web/assets/templ-DhtptRzy.js +1 -0
  440. package/web/assets/terraform-BETggiCN.js +1 -0
  441. package/web/assets/tex-idrVyKtj.js +1 -0
  442. package/web/assets/timeline-definition-24CTP7MA-C8X71OnL.js +120 -0
  443. package/web/assets/tokyo-night-hegEt444.js +1 -0
  444. package/web/assets/toml-vGWfd6FD.js +1 -0
  445. package/web/assets/ts-tags-DQrlYJgV.js +1 -0
  446. package/web/assets/tsv-B_m7g4N7.js +1 -0
  447. package/web/assets/tsx-COt5Ahok.js +1 -0
  448. package/web/assets/turtle-BsS91CYL.js +1 -0
  449. package/web/assets/twig-xg9kU7Mw.js +1 -0
  450. package/web/assets/typescript-BPQ3VLAy.js +1 -0
  451. package/web/assets/typespec-CAFt9gP4.js +1 -0
  452. package/web/assets/typst-DHCkPAjA.js +1 -0
  453. package/web/assets/v-BcVCzyr7.js +1 -0
  454. package/web/assets/vala-CsfeWuGM.js +1 -0
  455. package/web/assets/vb-D17OF-Vu.js +1 -0
  456. package/web/assets/vennDiagram-4TSXK5OY-BZo-99ra.js +34 -0
  457. package/web/assets/verilog-BQ8w6xss.js +1 -0
  458. package/web/assets/vesper-DU1UobuO.js +1 -0
  459. package/web/assets/vhdl-CeAyd5Ju.js +1 -0
  460. package/web/assets/viml-CJc9bBzg.js +1 -0
  461. package/web/assets/vitesse-black-Bkuqu6BP.js +1 -0
  462. package/web/assets/vitesse-dark-D0r3Knsf.js +1 -0
  463. package/web/assets/vitesse-light-CVO1_9PV.js +1 -0
  464. package/web/assets/vue-D2xRrEX4.js +1 -0
  465. package/web/assets/vue-html-AaS7Mt5G.js +1 -0
  466. package/web/assets/vue-vine-BoDAl6tE.js +1 -0
  467. package/web/assets/vyper-CDx5xZoG.js +1 -0
  468. package/web/assets/wardleyDiagram-VM6X3IG4-BHwH6ZLg.js +78 -0
  469. package/web/assets/wasm-CG6Dc4jp.js +1 -0
  470. package/web/assets/wasm-MzD3tlZU.js +1 -0
  471. package/web/assets/wenyan-BV7otONQ.js +1 -0
  472. package/web/assets/wgsl-Dx-B1_4e.js +1 -0
  473. package/web/assets/wikitext-BhOHFoWU.js +1 -0
  474. package/web/assets/wit-5i3qLPDT.js +1 -0
  475. package/web/assets/wolfram-lXgVvXCa.js +1 -0
  476. package/web/assets/workspace-file-tree-C8iSfvPt.js +1278 -0
  477. package/web/assets/xml-sdJ4AIDG.js +1 -0
  478. package/web/assets/xsl-CtQFsRM5.js +1 -0
  479. package/web/assets/xychartDiagram-S5SC5T6Z-BieEi319.js +7 -0
  480. package/web/assets/yaml-Buea-lGh.js +1 -0
  481. package/web/assets/zenscript-DVFEvuxE.js +1 -0
  482. package/web/assets/zig-VOosw3JB.js +1 -0
  483. package/web/ext-context7.svg +1 -0
  484. package/web/ext-github.svg +1 -0
  485. package/web/ext-google-workspace.svg +6 -0
  486. package/web/ext-hubspot.svg +1 -0
  487. package/web/ext-linear.svg +1 -0
  488. package/web/ext-notion.svg +1 -0
  489. package/web/ext-ollama.svg +1 -0
  490. package/web/ext-openai.svg +1 -0
  491. package/web/ext-sentry.svg +1 -0
  492. package/web/ext-slack.svg +1 -0
  493. package/web/ext-stripe.svg +1 -0
  494. package/web/favicon-16x16.png +0 -0
  495. package/web/favicon-32x32.png +0 -0
  496. package/web/grain-art/extension/extension-001.png +0 -0
  497. package/web/grain-art/extension/extension-002.png +0 -0
  498. package/web/grain-art/extension/extension-003.png +0 -0
  499. package/web/grain-art/extension/extension-004.png +0 -0
  500. package/web/grain-art/extension/extension-005.png +0 -0
  501. package/web/grain-art/extension/extension-006.png +0 -0
  502. package/web/grain-art/extension/extension-007.png +0 -0
  503. package/web/grain-art/extension/extension-008.png +0 -0
  504. package/web/grain-art/extension/extension-009.png +0 -0
  505. package/web/grain-art/extension/extension-010.png +0 -0
  506. package/web/grain-art/extension/extension-011.png +0 -0
  507. package/web/grain-art/extension/extension-012.png +0 -0
  508. package/web/grain-art/extension/extension-013.png +0 -0
  509. package/web/grain-art/extension/extension-014.png +0 -0
  510. package/web/grain-art/extension/extension-015.png +0 -0
  511. package/web/grain-art/extension/extension-016.png +0 -0
  512. package/web/grain-art/extension/extension-017.png +0 -0
  513. package/web/grain-art/extension/extension-018.png +0 -0
  514. package/web/grain-art/extension/extension-019.png +0 -0
  515. package/web/grain-art/extension/extension-020.png +0 -0
  516. package/web/grain-art/extension/extension-021.png +0 -0
  517. package/web/grain-art/extension/extension-022.png +0 -0
  518. package/web/grain-art/extension/extension-023.png +0 -0
  519. package/web/grain-art/extension/extension-024.png +0 -0
  520. package/web/grain-art/extension/extension-025.png +0 -0
  521. package/web/grain-art/extension/extension-026.png +0 -0
  522. package/web/grain-art/extension/extension-027.png +0 -0
  523. package/web/grain-art/extension/extension-028.png +0 -0
  524. package/web/grain-art/extension/extension-029.png +0 -0
  525. package/web/grain-art/extension/extension-030.png +0 -0
  526. package/web/grain-art/extension/extension-031.png +0 -0
  527. package/web/grain-art/extension/extension-032.png +0 -0
  528. package/web/grain-art/fallback/fallback-001.png +0 -0
  529. package/web/grain-art/fallback/fallback-002.png +0 -0
  530. package/web/grain-art/fallback/fallback-003.png +0 -0
  531. package/web/grain-art/fallback/fallback-004.png +0 -0
  532. package/web/grain-art/fallback/fallback-005.png +0 -0
  533. package/web/grain-art/fallback/fallback-006.png +0 -0
  534. package/web/grain-art/fallback/fallback-007.png +0 -0
  535. package/web/grain-art/fallback/fallback-008.png +0 -0
  536. package/web/grain-art/fallback/fallback-009.png +0 -0
  537. package/web/grain-art/fallback/fallback-010.png +0 -0
  538. package/web/grain-art/fallback/fallback-011.png +0 -0
  539. package/web/grain-art/fallback/fallback-012.png +0 -0
  540. package/web/grain-art/fallback/fallback-013.png +0 -0
  541. package/web/grain-art/fallback/fallback-014.png +0 -0
  542. package/web/grain-art/fallback/fallback-015.png +0 -0
  543. package/web/grain-art/fallback/fallback-016.png +0 -0
  544. package/web/grain-art/fallback/fallback-017.png +0 -0
  545. package/web/grain-art/fallback/fallback-018.png +0 -0
  546. package/web/grain-art/fallback/fallback-019.png +0 -0
  547. package/web/grain-art/fallback/fallback-020.png +0 -0
  548. package/web/grain-art/fallback/fallback-021.png +0 -0
  549. package/web/grain-art/fallback/fallback-022.png +0 -0
  550. package/web/grain-art/fallback/fallback-023.png +0 -0
  551. package/web/grain-art/fallback/fallback-024.png +0 -0
  552. package/web/grain-art/fallback/fallback-025.png +0 -0
  553. package/web/grain-art/fallback/fallback-026.png +0 -0
  554. package/web/grain-art/fallback/fallback-027.png +0 -0
  555. package/web/grain-art/fallback/fallback-028.png +0 -0
  556. package/web/grain-art/fallback/fallback-029.png +0 -0
  557. package/web/grain-art/fallback/fallback-030.png +0 -0
  558. package/web/grain-art/fallback/fallback-031.png +0 -0
  559. package/web/grain-art/fallback/fallback-032.png +0 -0
  560. package/web/grain-art/mcps/mcps-001.png +0 -0
  561. package/web/grain-art/mcps/mcps-002.png +0 -0
  562. package/web/grain-art/mcps/mcps-003.png +0 -0
  563. package/web/grain-art/mcps/mcps-004.png +0 -0
  564. package/web/grain-art/mcps/mcps-005.png +0 -0
  565. package/web/grain-art/mcps/mcps-006.png +0 -0
  566. package/web/grain-art/mcps/mcps-007.png +0 -0
  567. package/web/grain-art/mcps/mcps-008.png +0 -0
  568. package/web/grain-art/mcps/mcps-009.png +0 -0
  569. package/web/grain-art/mcps/mcps-010.png +0 -0
  570. package/web/grain-art/mcps/mcps-011.png +0 -0
  571. package/web/grain-art/mcps/mcps-012.png +0 -0
  572. package/web/grain-art/mcps/mcps-013.png +0 -0
  573. package/web/grain-art/mcps/mcps-014.png +0 -0
  574. package/web/grain-art/mcps/mcps-015.png +0 -0
  575. package/web/grain-art/mcps/mcps-016.png +0 -0
  576. package/web/grain-art/mcps/mcps-017.png +0 -0
  577. package/web/grain-art/mcps/mcps-018.png +0 -0
  578. package/web/grain-art/mcps/mcps-019.png +0 -0
  579. package/web/grain-art/mcps/mcps-020.png +0 -0
  580. package/web/grain-art/mcps/mcps-021.png +0 -0
  581. package/web/grain-art/mcps/mcps-022.png +0 -0
  582. package/web/grain-art/mcps/mcps-023.png +0 -0
  583. package/web/grain-art/mcps/mcps-024.png +0 -0
  584. package/web/grain-art/mcps/mcps-025.png +0 -0
  585. package/web/grain-art/mcps/mcps-026.png +0 -0
  586. package/web/grain-art/mcps/mcps-027.png +0 -0
  587. package/web/grain-art/mcps/mcps-028.png +0 -0
  588. package/web/grain-art/mcps/mcps-029.png +0 -0
  589. package/web/grain-art/mcps/mcps-030.png +0 -0
  590. package/web/grain-art/mcps/mcps-031.png +0 -0
  591. package/web/grain-art/mcps/mcps-032.png +0 -0
  592. package/web/grain-art/plugins/plugins-001.png +0 -0
  593. package/web/grain-art/plugins/plugins-002.png +0 -0
  594. package/web/grain-art/plugins/plugins-003.png +0 -0
  595. package/web/grain-art/plugins/plugins-004.png +0 -0
  596. package/web/grain-art/plugins/plugins-005.png +0 -0
  597. package/web/grain-art/plugins/plugins-006.png +0 -0
  598. package/web/grain-art/plugins/plugins-007.png +0 -0
  599. package/web/grain-art/plugins/plugins-008.png +0 -0
  600. package/web/grain-art/plugins/plugins-009.png +0 -0
  601. package/web/grain-art/plugins/plugins-010.png +0 -0
  602. package/web/grain-art/plugins/plugins-011.png +0 -0
  603. package/web/grain-art/plugins/plugins-012.png +0 -0
  604. package/web/grain-art/plugins/plugins-013.png +0 -0
  605. package/web/grain-art/plugins/plugins-014.png +0 -0
  606. package/web/grain-art/plugins/plugins-015.png +0 -0
  607. package/web/grain-art/plugins/plugins-016.png +0 -0
  608. package/web/grain-art/plugins/plugins-017.png +0 -0
  609. package/web/grain-art/plugins/plugins-018.png +0 -0
  610. package/web/grain-art/plugins/plugins-019.png +0 -0
  611. package/web/grain-art/plugins/plugins-020.png +0 -0
  612. package/web/grain-art/plugins/plugins-021.png +0 -0
  613. package/web/grain-art/plugins/plugins-022.png +0 -0
  614. package/web/grain-art/plugins/plugins-023.png +0 -0
  615. package/web/grain-art/plugins/plugins-024.png +0 -0
  616. package/web/grain-art/plugins/plugins-025.png +0 -0
  617. package/web/grain-art/plugins/plugins-026.png +0 -0
  618. package/web/grain-art/plugins/plugins-027.png +0 -0
  619. package/web/grain-art/plugins/plugins-028.png +0 -0
  620. package/web/grain-art/plugins/plugins-029.png +0 -0
  621. package/web/grain-art/plugins/plugins-030.png +0 -0
  622. package/web/grain-art/plugins/plugins-031.png +0 -0
  623. package/web/grain-art/plugins/plugins-032.png +0 -0
  624. package/web/grain-art/skills/skills-001.png +0 -0
  625. package/web/grain-art/skills/skills-002.png +0 -0
  626. package/web/grain-art/skills/skills-003.png +0 -0
  627. package/web/grain-art/skills/skills-004.png +0 -0
  628. package/web/grain-art/skills/skills-005.png +0 -0
  629. package/web/grain-art/skills/skills-006.png +0 -0
  630. package/web/grain-art/skills/skills-007.png +0 -0
  631. package/web/grain-art/skills/skills-008.png +0 -0
  632. package/web/grain-art/skills/skills-009.png +0 -0
  633. package/web/grain-art/skills/skills-010.png +0 -0
  634. package/web/grain-art/skills/skills-011.png +0 -0
  635. package/web/grain-art/skills/skills-012.png +0 -0
  636. package/web/grain-art/skills/skills-013.png +0 -0
  637. package/web/grain-art/skills/skills-014.png +0 -0
  638. package/web/grain-art/skills/skills-015.png +0 -0
  639. package/web/grain-art/skills/skills-016.png +0 -0
  640. package/web/grain-art/skills/skills-017.png +0 -0
  641. package/web/grain-art/skills/skills-018.png +0 -0
  642. package/web/grain-art/skills/skills-019.png +0 -0
  643. package/web/grain-art/skills/skills-020.png +0 -0
  644. package/web/grain-art/skills/skills-021.png +0 -0
  645. package/web/grain-art/skills/skills-022.png +0 -0
  646. package/web/grain-art/skills/skills-023.png +0 -0
  647. package/web/grain-art/skills/skills-024.png +0 -0
  648. package/web/grain-art/skills/skills-025.png +0 -0
  649. package/web/grain-art/skills/skills-026.png +0 -0
  650. package/web/grain-art/skills/skills-027.png +0 -0
  651. package/web/grain-art/skills/skills-028.png +0 -0
  652. package/web/grain-art/skills/skills-029.png +0 -0
  653. package/web/grain-art/skills/skills-030.png +0 -0
  654. package/web/grain-art/skills/skills-031.png +0 -0
  655. package/web/grain-art/skills/skills-032.png +0 -0
  656. package/web/grain-art/workspaces/workspaces-001.png +0 -0
  657. package/web/grain-art/workspaces/workspaces-002.png +0 -0
  658. package/web/grain-art/workspaces/workspaces-003.png +0 -0
  659. package/web/grain-art/workspaces/workspaces-004.png +0 -0
  660. package/web/grain-art/workspaces/workspaces-005.png +0 -0
  661. package/web/grain-art/workspaces/workspaces-006.png +0 -0
  662. package/web/grain-art/workspaces/workspaces-007.png +0 -0
  663. package/web/grain-art/workspaces/workspaces-008.png +0 -0
  664. package/web/grain-art/workspaces/workspaces-009.png +0 -0
  665. package/web/grain-art/workspaces/workspaces-010.png +0 -0
  666. package/web/grain-art/workspaces/workspaces-011.png +0 -0
  667. package/web/grain-art/workspaces/workspaces-012.png +0 -0
  668. package/web/grain-art/workspaces/workspaces-013.png +0 -0
  669. package/web/grain-art/workspaces/workspaces-014.png +0 -0
  670. package/web/grain-art/workspaces/workspaces-015.png +0 -0
  671. package/web/grain-art/workspaces/workspaces-016.png +0 -0
  672. package/web/grain-art/workspaces/workspaces-017.png +0 -0
  673. package/web/grain-art/workspaces/workspaces-018.png +0 -0
  674. package/web/grain-art/workspaces/workspaces-019.png +0 -0
  675. package/web/grain-art/workspaces/workspaces-020.png +0 -0
  676. package/web/grain-art/workspaces/workspaces-021.png +0 -0
  677. package/web/grain-art/workspaces/workspaces-022.png +0 -0
  678. package/web/grain-art/workspaces/workspaces-023.png +0 -0
  679. package/web/grain-art/workspaces/workspaces-024.png +0 -0
  680. package/web/grain-art/workspaces/workspaces-025.png +0 -0
  681. package/web/grain-art/workspaces/workspaces-026.png +0 -0
  682. package/web/grain-art/workspaces/workspaces-027.png +0 -0
  683. package/web/grain-art/workspaces/workspaces-028.png +0 -0
  684. package/web/grain-art/workspaces/workspaces-029.png +0 -0
  685. package/web/grain-art/workspaces/workspaces-030.png +0 -0
  686. package/web/grain-art/workspaces/workspaces-031.png +0 -0
  687. package/web/grain-art/workspaces/workspaces-032.png +0 -0
  688. package/web/index.html +130 -0
  689. package/web/manifest.webmanifest +22 -0
  690. package/web/openwork-logo-square.svg +2 -0
  691. package/web/openwork-logo.svg +1 -0
  692. package/web/openwork-mark.svg +16 -0
  693. package/web/openwork-sidebar-mark.svg +17 -0
  694. package/web/overlay.html +29 -0
  695. package/dist/bin/openwork-server +0 -4
@@ -0,0 +1,292 @@
1
+ import { openworkModelSelectorSchema, openworkModelsListArgsSchema, } from "@openwork/types/openwork-affordance";
2
+ import { z } from "zod";
3
+ // Epoch milliseconds or an ISO-8601 string; resolve with sessionTimestampMs.
4
+ const sessionTimestampArgSchema = z.union([z.number().int().nonnegative(), z.string().trim().min(1)])
5
+ .refine((value) => typeof value === "number" || Number.isFinite(Date.parse(value)), {
6
+ message: "Expected epoch milliseconds or an ISO-8601 date string.",
7
+ });
8
+ export function sessionTimestampMs(value) {
9
+ return typeof value === "number" ? value : Date.parse(value);
10
+ }
11
+ export const sessionSearchArgsSchema = z.object({
12
+ query: z.string().trim().min(1).describe("Text to search for across OpenWork session titles and message transcripts."),
13
+ workspaceId: z.string().trim().optional().describe("Optional OpenWork workspace id/name to limit the search."),
14
+ limit: z.number().int().positive().max(20).optional().describe("Maximum matching sessions to return. Defaults to 10, max 20."),
15
+ scanLimit: z.number().int().positive().max(500).optional().describe("Maximum newest sessions whose transcripts are scanned across matching workspaces; every root session's title is matched regardless. Defaults to 100, max 500."),
16
+ messageLimit: z.number().int().positive().max(1000).optional().describe("Maximum recent messages to load per scanned session. Defaults to 400, max 1000."),
17
+ match: z.enum(["all", "any", "phrase"]).optional().describe("all (default): every whitespace-separated term must appear; any: one term suffices; phrase: the exact query text must appear."),
18
+ createdAfter: sessionTimestampArgSchema.optional().describe("Only sessions created at or after this time (epoch milliseconds or ISO-8601 string)."),
19
+ createdBefore: sessionTimestampArgSchema.optional().describe("Only sessions created at or before this time (epoch milliseconds or ISO-8601 string)."),
20
+ archived: z.enum(["include", "exclude", "only"]).optional().describe("Archived sessions: include (default), exclude, or only."),
21
+ });
22
+ export const sessionReadArgsSchema = z.object({
23
+ sessionId: z.string().trim().min(1).describe("OpenWork/OpenCode session ID returned by session.search."),
24
+ workspaceId: z.string().trim().optional().describe("Optional OpenWork workspace id/name. Omit to resolve the session across all workspaces."),
25
+ count: z.number().int().positive().max(100).optional().describe("Number of transcript messages to return. Defaults to 30, max 100."),
26
+ from: z.enum(["start", "end"]).optional().describe("end (default): the last `count` messages; start: the first `count` messages."),
27
+ summary: z.boolean().optional().describe("When true, return only the first user message and the last assistant message plus session metadata."),
28
+ });
29
+ export const sessionModelArgSchema = openworkModelSelectorSchema;
30
+ export const sessionCreateArgsSchema = z.object({
31
+ sessions: z.array(z.object({
32
+ title: z.string().trim().min(1).transform((title) => title.length > 120 ? `${title.slice(0, 119)}…` : title).describe("Short title shown in the OpenWork session list."),
33
+ prompt: z.string().trim().min(1).max(100_000).describe("Self-contained task to start in the new session."),
34
+ model: sessionModelArgSchema.optional().describe("Model and reasoning effort for this session. Overrides the top-level model."),
35
+ })).min(1).describe("One entry per new session to create and start."),
36
+ workspaceId: z.string().trim().optional().describe("Optional OpenWork workspace id/name. Defaults to the workspace containing the current session."),
37
+ model: sessionModelArgSchema.optional().describe("Model and reasoning effort for every created session unless an entry overrides it. Omit to use the engine default."),
38
+ });
39
+ export const sessionSendArgsSchema = z.object({
40
+ sessionId: z.string().trim().min(1).describe("Session ID of the existing session to message, from session.search, session.read, or session.list_sessions."),
41
+ text: z.string().trim().min(1).max(100_000).describe("Prompt text appended to that session as a new user message."),
42
+ workspaceId: z.string().trim().optional().describe("Optional OpenWork workspace id/name. Omit to resolve the session across all workspaces."),
43
+ reveal: z.boolean().optional().describe("true to also open that session in the person's focused pane after sending. Defaults to false: nothing on screen changes."),
44
+ });
45
+ /** Argument schemas by affordance id; sessionContribution must advertise exactly these keys. */
46
+ export const sessionAffordanceArgsSchemas = {
47
+ "models.list": openworkModelsListArgsSchema,
48
+ "session.search": sessionSearchArgsSchema,
49
+ "session.read": sessionReadArgsSchema,
50
+ "session.create": sessionCreateArgsSchema,
51
+ "session.send": sessionSendArgsSchema,
52
+ };
53
+ const noEffects = {
54
+ data: "none",
55
+ ui: "none",
56
+ external: false,
57
+ };
58
+ const readEffects = {
59
+ data: "read",
60
+ ui: "none",
61
+ external: false,
62
+ };
63
+ const writeEffects = {
64
+ data: "write",
65
+ ui: "none",
66
+ external: false,
67
+ };
68
+ function argument(name, type, required, description) {
69
+ return { name, type, required, description };
70
+ }
71
+ function affordance(input) {
72
+ return {
73
+ id: input.id,
74
+ kind: input.kind,
75
+ title: input.title,
76
+ description: input.description,
77
+ provider: input.provider,
78
+ arguments: input.arguments ?? [],
79
+ effects: input.effects ?? noEffects,
80
+ confirmation: "never",
81
+ availability: { enabled: true },
82
+ executor: input.tool
83
+ ? { kind: "tool", tool: input.tool }
84
+ : { kind: "openwork" },
85
+ };
86
+ }
87
+ function sessionContribution() {
88
+ const provider = { id: "openwork-server", kind: "builtin" };
89
+ return {
90
+ featureId: "sessions",
91
+ provider,
92
+ affordances: [
93
+ affordance({
94
+ id: "models.list",
95
+ kind: "query",
96
+ title: "List workspace models",
97
+ description: "Return effective available connected picker models with providerId/modelId, displayName, providerName and available:true. Requires an existing renderer host via the UI query bridge, including headless callers; never focuses or navigates. Assigned models not yet engine-connected are omitted.",
98
+ provider,
99
+ arguments: [argument("workspaceId", "string", true, "Workspace id or name whose available models to list.")],
100
+ effects: readEffects,
101
+ }),
102
+ affordance({
103
+ id: "session.search",
104
+ kind: "query",
105
+ title: "Find sessions",
106
+ description: "Search session titles and transcripts without changing the visible workbench. Every root session's title is matched; transcripts are scanned for the `scanLimit` newest sessions only, so when the result's `truncated` is true, retry with a larger `scanLimit` (max 500). Title and phrase matches rank first, then newest `updatedAt`. Each result carries `createdAt`, `archived`, `parentId` and `engine` (v1 or v2, the engine that holds the session).",
107
+ provider,
108
+ arguments: [
109
+ argument("query", "string", true, "Text to find in session titles or messages."),
110
+ argument("workspaceId", "string", false, "Optional workspace id or name."),
111
+ argument("limit", "number", false, "Maximum matching sessions to return. Defaults to 10, max 20."),
112
+ argument("scanLimit", "number", false, "Maximum newest sessions whose transcripts are scanned across matching workspaces; every root session's title is matched regardless. Defaults to 100, max 500."),
113
+ argument("messageLimit", "number", false, "Maximum recent messages to load per scanned session. Defaults to 400, max 1000."),
114
+ argument("match", "string", false, "all (default): every whitespace-separated term must appear; any: one term suffices; phrase: the exact query text must appear."),
115
+ argument("createdAfter", "unknown", false, "Only sessions created at or after this time (epoch milliseconds or ISO-8601 string)."),
116
+ argument("createdBefore", "unknown", false, "Only sessions created at or before this time (epoch milliseconds or ISO-8601 string)."),
117
+ argument("archived", "string", false, "Archived sessions: include (default), exclude, or only."),
118
+ ],
119
+ effects: readEffects,
120
+ }),
121
+ affordance({
122
+ id: "session.read",
123
+ kind: "query",
124
+ title: "Read a session transcript",
125
+ description: "Read messages from a session without opening it. Finds the session on either engine. The result also carries `engine` (v1 or v2), `createdAt`, `archived`, `parentId`, `status` (idle, busy, retry, waiting), `working` (check it before session.archive), and `model` ({ providerId, modelId, variant, displayName?, providerName? } the session is bound to, variant being its reasoning effort; null before a model is bound). Pass `summary: true` to get only the first user message and the last assistant message (what was asked, what was concluded) in one call. Both modes include `lastError` ({ code, message } or null) from the latest assistant info.error before text filtering: end reads inspect only the fetched newest `count` messages; start/summary inspect the whole transcript, even outside displayed text. Null means no assistant error observed in that window; a later assistant without an error clears it. Codes are allowlisted error names (otherwise UnknownError); messages are fixed labels under 160 characters, never arbitrary provider details. Snapshot errors only: event-only failures, including pre-assistant model-not-found, are not observable here.",
126
+ provider,
127
+ arguments: [
128
+ argument("sessionId", "string", true, "Session id returned by session.search."),
129
+ argument("workspaceId", "string", false, "Optional workspace id or name."),
130
+ argument("count", "number", false, "Number of messages to return. Defaults to 30, max 100."),
131
+ argument("from", "string", false, "end (default): the last `count` messages; start: the first `count` messages."),
132
+ argument("summary", "boolean", false, "When true, return only the first user and last assistant messages plus metadata."),
133
+ ],
134
+ effects: readEffects,
135
+ }),
136
+ affordance({
137
+ id: "session.create",
138
+ kind: "command",
139
+ title: "Create sessions",
140
+ description: "Create and start one or more sessions without navigating away. Pass `model` with providerId/modelId or alias/displayName (exact case-insensitive picker name, optional providerId qualifier), plus variant for reasoning effort. models.list discovers available models through an existing renderer host, required for model selection even from headless callers; no focus or navigation. All models resolve before creation; missing host, unavailable or ambiguous models are rejected. Returned bindings round-trip by ids; displayName/providerName are decorations when ids are present, but alias plus modelId is invalid. Results include model ids and optional displayName/providerName, also returned by session.read and session.list_sessions.",
141
+ provider,
142
+ arguments: [
143
+ argument("sessions", "array", true, "Array of { title (≤120 chars, longer is clipped), prompt (≤100000 chars), model? }. Each prompt is self-contained; model is { providerId, modelId, variant? (≤60 chars) } or { alias/displayName, providerId?, variant? (≤60 chars) }."),
144
+ argument("workspaceId", "string", false, "Optional workspace id or name. Defaults to the requesting session's workspace."),
145
+ argument("model", "object", false, "Optional providerId/modelId or alias/displayName (exact case-insensitive name, optional providerId qualifier) and variant (reasoning effort, ≤60 chars) for every created session. Omit to use the engine default."),
146
+ ],
147
+ effects: writeEffects,
148
+ }),
149
+ affordance({
150
+ id: "session.send",
151
+ kind: "command",
152
+ title: "Send a prompt to a session",
153
+ description: "Append a prompt to an existing session by id without opening it. The message is written immediately; a session that is mid-turn handles it at its next step. Nothing on screen changes unless reveal is true. This is the way to talk to another session: composer.set_text and composer.send only reach the composer the person has focused.",
154
+ provider,
155
+ arguments: [
156
+ argument("sessionId", "string", true, "Session id from session.search, session.read, or session.list_sessions."),
157
+ argument("text", "string", true, "Prompt text appended as a new user message (≤100000 chars)."),
158
+ argument("workspaceId", "string", false, "Optional workspace id or name."),
159
+ argument("reveal", "boolean", false, "true to also open that session in the person's focused pane after sending. Defaults to false."),
160
+ ],
161
+ effects: writeEffects,
162
+ }),
163
+ ],
164
+ guidance: [],
165
+ };
166
+ }
167
+ function automationContribution() {
168
+ const provider = { id: "openwork-automations", kind: "builtin" };
169
+ return {
170
+ featureId: "automations",
171
+ provider,
172
+ affordances: [
173
+ affordance({
174
+ id: "automation.propose",
175
+ kind: "command",
176
+ title: "Propose an Automation",
177
+ description: "Offer a scheduled Automation for the person to review and create. This only renders a proposal in the chat; it cannot create, activate, or run anything.",
178
+ provider,
179
+ arguments: [
180
+ argument("name", "string", true, "Short Automation name, at most 120 characters."),
181
+ argument("instructions", "string", true, "Self-contained instructions the Automation runs on its schedule."),
182
+ argument("schedule", "object", true, "once/daily/weekly schedule with an IANA timezone. Intervals are not supported."),
183
+ argument("model", "object", false, "Optional providerId and modelId. Omit to use the person's default."),
184
+ ],
185
+ effects: noEffects,
186
+ }),
187
+ ],
188
+ guidance: [],
189
+ };
190
+ }
191
+ function extensionContribution() {
192
+ const provider = { id: "openwork-extensions", kind: "extension" };
193
+ return {
194
+ featureId: "extensions",
195
+ provider,
196
+ affordances: [
197
+ affordance({
198
+ id: "extension.actions",
199
+ kind: "query",
200
+ title: "List extension actions",
201
+ description: "List actions exposed by enabled local OpenWork extensions.",
202
+ provider,
203
+ arguments: [argument("extensionId", "string", false, "Optional extension id.")],
204
+ effects: readEffects,
205
+ }),
206
+ affordance({
207
+ id: "extension.call",
208
+ kind: "command",
209
+ title: "Call an extension action",
210
+ description: "Execute one action exposed by a local OpenWork extension.",
211
+ provider,
212
+ arguments: [
213
+ argument("extensionId", "string", true, "Extension id."),
214
+ argument("action", "string", true, "Action id returned by extension.actions."),
215
+ argument("args", "object", false, "Extension action arguments."),
216
+ ],
217
+ effects: { data: "write", ui: "none", external: true },
218
+ }),
219
+ ],
220
+ guidance: [],
221
+ };
222
+ }
223
+ function connectContribution(skills, cloudMcp) {
224
+ if (skills.length === 0 && !cloudMcp)
225
+ return null;
226
+ const provider = { id: "openwork-cloud", kind: "connect" };
227
+ const guidance = skills.map((skill) => ({
228
+ ref: skill.capability,
229
+ title: skill.title?.trim() || skill.name,
230
+ description: skill.description,
231
+ provider,
232
+ loading: "catalog",
233
+ }));
234
+ return {
235
+ featureId: "connect",
236
+ provider,
237
+ affordances: [
238
+ affordance({
239
+ id: "connect.capabilities.search",
240
+ kind: "query",
241
+ title: "Search Connect capabilities",
242
+ description: "Discover a remote capability when no exact capability ref is already known.",
243
+ provider,
244
+ arguments: [
245
+ argument("query", "string", true, "Capability keywords."),
246
+ argument("limit", "number", false, "Maximum capabilities to return."),
247
+ argument("type", "string", false, "Optional capability type filter."),
248
+ ],
249
+ effects: { data: "read", ui: "none", external: true },
250
+ tool: "openwork-cloud_search_capabilities",
251
+ }),
252
+ affordance({
253
+ id: "connect.capability.execute",
254
+ kind: "command",
255
+ title: "Execute a Connect capability",
256
+ description: "Execute an exact remote capability ref or load a known remote skill.",
257
+ provider,
258
+ arguments: [
259
+ argument("name", "string", false, "Exact capability ref returned by Connect search or remote skill guidance."),
260
+ argument("schemaDigest", "string", false, "Schema digest returned by Connect search when required."),
261
+ argument("path", "object", false, "Path parameters for the capability."),
262
+ argument("query", "object", false, "Query parameters for the capability."),
263
+ argument("body", "object", false, "Request body for the capability."),
264
+ ],
265
+ effects: { data: "write", ui: "none", external: true },
266
+ tool: "openwork-cloud_execute_capability",
267
+ }),
268
+ ],
269
+ guidance,
270
+ };
271
+ }
272
+ function mcpContribution(mcp) {
273
+ return {
274
+ featureId: `mcp:${mcp.name}`,
275
+ provider: { id: mcp.name, kind: "mcp" },
276
+ affordances: [],
277
+ guidance: [],
278
+ };
279
+ }
280
+ export function buildOpenworkProviderContributions(skills, mcps = []) {
281
+ const cloudMcp = mcps.find((mcp) => mcp.name === "openwork-cloud");
282
+ const connect = connectContribution(skills, cloudMcp);
283
+ return [
284
+ sessionContribution(),
285
+ automationContribution(),
286
+ extensionContribution(),
287
+ ...mcps
288
+ .filter((mcp) => mcp.name !== "openwork-cloud")
289
+ .map(mcpContribution),
290
+ ...(connect ? [connect] : []),
291
+ ];
292
+ }
@@ -0,0 +1,69 @@
1
+ import { createRequire } from "node:module";
2
+ var __create = Object.create;
3
+ var __getProtoOf = Object.getPrototypeOf;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ function __accessProp(key) {
8
+ return this[key];
9
+ }
10
+ var __toESMCache_node;
11
+ var __toESMCache_esm;
12
+ var __toESM = (mod, isNodeMode, target) => {
13
+ var canCache = mod != null && typeof mod === "object";
14
+ if (canCache) {
15
+ var cache = isNodeMode ? __toESMCache_node ??= new WeakMap : __toESMCache_esm ??= new WeakMap;
16
+ var cached = cache.get(mod);
17
+ if (cached)
18
+ return cached;
19
+ }
20
+ target = mod != null ? __create(__getProtoOf(mod)) : {};
21
+ const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
22
+ for (let key of __getOwnPropNames(mod))
23
+ if (!__hasOwnProp.call(to, key))
24
+ __defProp(to, key, {
25
+ get: __accessProp.bind(mod, key),
26
+ enumerable: true
27
+ });
28
+ if (canCache)
29
+ cache.set(mod, to);
30
+ return to;
31
+ };
32
+ var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
33
+ var __returnValue = (v) => v;
34
+ function __exportSetter(name, newValue) {
35
+ this[name] = __returnValue.bind(null, newValue);
36
+ }
37
+ var __export = (target, all) => {
38
+ for (var name in all)
39
+ __defProp(target, name, {
40
+ get: all[name],
41
+ enumerable: true,
42
+ configurable: true,
43
+ set: __exportSetter.bind(all, name)
44
+ });
45
+ };
46
+ var __require = /* @__PURE__ */ createRequire(import.meta.url);
47
+
48
+ // src/opencode-plugins/openwork-provider-filters-v2.ts
49
+ var openwork_provider_filters_v2_default = {
50
+ id: "openwork.provider-filters",
51
+ async setup(context) {
52
+ const registration = await context.catalog.transform((catalog) => {
53
+ for (const { provider, models } of catalog.provider.list()) {
54
+ const rule = context.options.providers?.[provider.id];
55
+ if (!rule)
56
+ continue;
57
+ for (const id of models.keys()) {
58
+ if (rule.whitelist !== undefined && !rule.whitelist.includes(id) || rule.blacklist?.includes(id)) {
59
+ catalog.model.remove(provider.id, id);
60
+ }
61
+ }
62
+ }
63
+ });
64
+ return () => registration.dispose();
65
+ }
66
+ };
67
+ export {
68
+ openwork_provider_filters_v2_default as default
69
+ };
@@ -0,0 +1,2 @@
1
+ import { AsyncLocalStorage } from "node:async_hooks";
2
+ export const openworkReadTransport = new AsyncLocalStorage();