denchclaw 2.3.21 → 2.4.0

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 (481) hide show
  1. package/apps/web/.next/standalone/apps/web/.next/BUILD_ID +1 -1
  2. package/apps/web/.next/standalone/apps/web/.next/app-build-manifest.json +233 -198
  3. package/apps/web/.next/standalone/apps/web/.next/app-path-routes-manifest.json +32 -27
  4. package/apps/web/.next/standalone/apps/web/.next/build-manifest.json +5 -5
  5. package/apps/web/.next/standalone/apps/web/.next/cache/config.json +3 -3
  6. package/apps/web/.next/standalone/apps/web/.next/prerender-manifest.json +3 -3
  7. package/apps/web/.next/standalone/apps/web/.next/react-loadable-manifest.json +1 -4
  8. package/apps/web/.next/standalone/apps/web/.next/required-server-files.json +1 -1
  9. package/apps/web/.next/standalone/apps/web/.next/routes-manifest.json +34 -1
  10. package/apps/web/.next/standalone/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  11. package/apps/web/.next/standalone/apps/web/.next/server/app/api/apps/cron/route_client-reference-manifest.js +1 -1
  12. package/apps/web/.next/standalone/apps/web/.next/server/app/api/apps/proxy/route_client-reference-manifest.js +1 -1
  13. package/apps/web/.next/standalone/apps/web/.next/server/app/api/apps/route_client-reference-manifest.js +1 -1
  14. package/apps/web/.next/standalone/apps/web/.next/server/app/api/apps/serve/[...path]/route_client-reference-manifest.js +1 -1
  15. package/apps/web/.next/standalone/apps/web/.next/server/app/api/apps/store/route_client-reference-manifest.js +1 -1
  16. package/apps/web/.next/standalone/apps/web/.next/server/app/api/apps/webhooks/[...path]/route_client-reference-manifest.js +1 -1
  17. package/apps/web/.next/standalone/apps/web/.next/server/app/api/chat/active/route_client-reference-manifest.js +1 -1
  18. package/apps/web/.next/standalone/apps/web/.next/server/app/api/chat/route.js +1 -1
  19. package/apps/web/.next/standalone/apps/web/.next/server/app/api/chat/route_client-reference-manifest.js +1 -1
  20. package/apps/web/.next/standalone/apps/web/.next/server/app/api/chat/runs/route_client-reference-manifest.js +1 -1
  21. package/apps/web/.next/standalone/apps/web/.next/server/app/api/chat/stop/route.js +1 -1
  22. package/apps/web/.next/standalone/apps/web/.next/server/app/api/chat/stop/route_client-reference-manifest.js +1 -1
  23. package/apps/web/.next/standalone/apps/web/.next/server/app/api/chat/stream/route_client-reference-manifest.js +1 -1
  24. package/apps/web/.next/standalone/apps/web/.next/server/app/api/chat/subagents/route_client-reference-manifest.js +1 -1
  25. package/apps/web/.next/standalone/apps/web/.next/server/app/api/cron/jobs/[jobId]/runs/route_client-reference-manifest.js +1 -1
  26. package/apps/web/.next/standalone/apps/web/.next/server/app/api/cron/jobs/route_client-reference-manifest.js +1 -1
  27. package/apps/web/.next/standalone/apps/web/.next/server/app/api/cron/runs/[sessionId]/route_client-reference-manifest.js +1 -1
  28. package/apps/web/.next/standalone/apps/web/.next/server/app/api/cron/runs/search-transcript/route_client-reference-manifest.js +1 -1
  29. package/apps/web/.next/standalone/apps/web/.next/server/app/api/feedback/route.js +1 -1
  30. package/apps/web/.next/standalone/apps/web/.next/server/app/api/feedback/route_client-reference-manifest.js +1 -1
  31. package/apps/web/.next/standalone/apps/web/.next/server/app/api/gateway/channels/route_client-reference-manifest.js +1 -1
  32. package/apps/web/.next/standalone/apps/web/.next/server/app/api/gateway/chat/route_client-reference-manifest.js +1 -1
  33. package/apps/web/.next/standalone/apps/web/.next/server/app/api/gateway/chat/stream/route_client-reference-manifest.js +1 -1
  34. package/apps/web/.next/standalone/apps/web/.next/server/app/api/gateway/sessions/[id]/route_client-reference-manifest.js +1 -1
  35. package/apps/web/.next/standalone/apps/web/.next/server/app/api/gateway/sessions/route_client-reference-manifest.js +1 -1
  36. package/apps/web/.next/standalone/apps/web/.next/server/app/api/memories/route_client-reference-manifest.js +1 -1
  37. package/apps/web/.next/standalone/apps/web/.next/server/app/api/profiles/route_client-reference-manifest.js +1 -1
  38. package/apps/web/.next/standalone/apps/web/.next/server/app/api/profiles/switch/route_client-reference-manifest.js +1 -1
  39. package/apps/web/.next/standalone/apps/web/.next/server/app/api/sessions/[sessionId]/route_client-reference-manifest.js +1 -1
  40. package/apps/web/.next/standalone/apps/web/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  41. package/apps/web/.next/standalone/apps/web/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  42. package/apps/web/.next/standalone/apps/web/.next/server/app/api/terminal/port/route_client-reference-manifest.js +1 -1
  43. package/apps/web/.next/standalone/apps/web/.next/server/app/api/web-sessions/[id]/messages/route_client-reference-manifest.js +1 -1
  44. package/apps/web/.next/standalone/apps/web/.next/server/app/api/web-sessions/[id]/route_client-reference-manifest.js +1 -1
  45. package/apps/web/.next/standalone/apps/web/.next/server/app/api/web-sessions/route.js +1 -1
  46. package/apps/web/.next/standalone/apps/web/.next/server/app/api/web-sessions/route_client-reference-manifest.js +1 -1
  47. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/assets/[...path]/route_client-reference-manifest.js +1 -1
  48. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/browse/route_client-reference-manifest.js +1 -1
  49. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/browse-file/route_client-reference-manifest.js +1 -1
  50. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/context/route_client-reference-manifest.js +1 -1
  51. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/copy/route_client-reference-manifest.js +1 -1
  52. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/db/introspect/route_client-reference-manifest.js +1 -1
  53. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/db/query/route_client-reference-manifest.js +1 -1
  54. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/delete/route.js +1 -1
  55. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/delete/route_client-reference-manifest.js +1 -1
  56. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/execute/route_client-reference-manifest.js +1 -1
  57. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/file/route_client-reference-manifest.js +1 -1
  58. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/init/route.js +1 -1
  59. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/init/route_client-reference-manifest.js +1 -1
  60. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/link-preview/route.js +1 -0
  61. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/link-preview/route.js.nft.json +1 -0
  62. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/link-preview/route_client-reference-manifest.js +1 -0
  63. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/list/route_client-reference-manifest.js +1 -1
  64. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/mkdir/route_client-reference-manifest.js +1 -1
  65. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/move/route_client-reference-manifest.js +1 -1
  66. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/actions/route.js +54 -0
  67. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/actions/route.js.nft.json +1 -0
  68. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/actions/route_client-reference-manifest.js +1 -0
  69. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/actions/runs/route.js +4 -0
  70. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/actions/runs/route.js.nft.json +1 -0
  71. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/actions/runs/route_client-reference-manifest.js +1 -0
  72. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/display-field/route_client-reference-manifest.js +1 -1
  73. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/entries/[id]/content/route.js +1 -0
  74. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/entries/[id]/content/route.js.nft.json +1 -0
  75. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/entries/[id]/content/route_client-reference-manifest.js +1 -0
  76. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/entries/[id]/route_client-reference-manifest.js +1 -1
  77. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/entries/bulk-delete/route_client-reference-manifest.js +1 -1
  78. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/entries/options/route_client-reference-manifest.js +1 -1
  79. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/entries/route.js +1 -1
  80. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/entries/route_client-reference-manifest.js +1 -1
  81. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/fields/[fieldId]/enum-rename/route_client-reference-manifest.js +1 -1
  82. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/fields/[fieldId]/route.js +9 -1
  83. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/fields/[fieldId]/route_client-reference-manifest.js +1 -1
  84. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/fields/reorder/route_client-reference-manifest.js +1 -1
  85. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/fields/route.js +10 -0
  86. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/fields/route.js.nft.json +1 -0
  87. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/fields/route_client-reference-manifest.js +1 -0
  88. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/route_client-reference-manifest.js +1 -1
  89. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/views/route_client-reference-manifest.js +1 -1
  90. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/open-file/route_client-reference-manifest.js +1 -1
  91. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/path-info/route_client-reference-manifest.js +1 -1
  92. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/query/route_client-reference-manifest.js +1 -1
  93. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/raw-file/route_client-reference-manifest.js +1 -1
  94. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/rename/route_client-reference-manifest.js +1 -1
  95. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/reports/execute/route.js +1 -1
  96. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/reports/execute/route_client-reference-manifest.js +1 -1
  97. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/search-index/route_client-reference-manifest.js +1 -1
  98. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/suggest-files/route_client-reference-manifest.js +1 -1
  99. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/switch/route.js +1 -1
  100. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/switch/route_client-reference-manifest.js +1 -1
  101. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/thumbnail/route_client-reference-manifest.js +1 -1
  102. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/tree/route_client-reference-manifest.js +1 -1
  103. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/upload/route.js +1 -1
  104. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/upload/route_client-reference-manifest.js +1 -1
  105. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/virtual-file/route_client-reference-manifest.js +1 -1
  106. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/watch/route_client-reference-manifest.js +1 -1
  107. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/write-binary/route_client-reference-manifest.js +1 -1
  108. package/apps/web/.next/standalone/apps/web/.next/server/app/page.js +104 -55
  109. package/apps/web/.next/standalone/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
  110. package/apps/web/.next/standalone/apps/web/.next/server/app/workspace/page_client-reference-manifest.js +1 -1
  111. package/apps/web/.next/standalone/apps/web/.next/server/app-paths-manifest.json +32 -27
  112. package/apps/web/.next/standalone/apps/web/.next/server/chunks/6787.js +1 -1
  113. package/apps/web/.next/standalone/apps/web/.next/server/chunks/687.js +1 -1
  114. package/apps/web/.next/standalone/apps/web/.next/server/chunks/8137.js +1 -1
  115. package/apps/web/.next/standalone/apps/web/.next/server/functions-config-manifest.json +15 -10
  116. package/apps/web/.next/standalone/apps/web/.next/server/middleware-build-manifest.js +1 -1
  117. package/apps/web/.next/standalone/apps/web/.next/server/middleware-react-loadable-manifest.js +1 -1
  118. package/apps/web/.next/standalone/apps/web/.next/server/pages/500.html +1 -1
  119. package/apps/web/.next/standalone/apps/web/.next/server/server-reference-manifest.json +1 -1
  120. package/apps/web/.next/standalone/apps/web/.next/server/webpack-runtime.js +1 -1
  121. package/apps/web/.next/standalone/apps/web/.next/static/chunks/2716-475d96c202834586.js +135 -0
  122. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/apps/cron/route-d14ffafd970f186e.js +1 -0
  123. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/apps/proxy/route-d14ffafd970f186e.js +1 -0
  124. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/apps/route-d14ffafd970f186e.js +1 -0
  125. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/apps/serve/[...path]/route-d14ffafd970f186e.js +1 -0
  126. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/apps/store/route-d14ffafd970f186e.js +1 -0
  127. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/apps/webhooks/[...path]/route-d14ffafd970f186e.js +1 -0
  128. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/active/route-d14ffafd970f186e.js +1 -0
  129. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/route-d14ffafd970f186e.js +1 -0
  130. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/runs/route-d14ffafd970f186e.js +1 -0
  131. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/stop/route-d14ffafd970f186e.js +1 -0
  132. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/stream/route-d14ffafd970f186e.js +1 -0
  133. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/subagents/route-d14ffafd970f186e.js +1 -0
  134. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/cron/jobs/[jobId]/runs/route-d14ffafd970f186e.js +1 -0
  135. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/cron/jobs/route-d14ffafd970f186e.js +1 -0
  136. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/cron/runs/[sessionId]/route-d14ffafd970f186e.js +1 -0
  137. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/cron/runs/search-transcript/route-d14ffafd970f186e.js +1 -0
  138. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/feedback/route-d14ffafd970f186e.js +1 -0
  139. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/gateway/channels/route-d14ffafd970f186e.js +1 -0
  140. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/gateway/chat/route-d14ffafd970f186e.js +1 -0
  141. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/gateway/chat/stream/route-d14ffafd970f186e.js +1 -0
  142. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/gateway/sessions/[id]/route-d14ffafd970f186e.js +1 -0
  143. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/gateway/sessions/route-d14ffafd970f186e.js +1 -0
  144. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/memories/route-d14ffafd970f186e.js +1 -0
  145. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/profiles/route-d14ffafd970f186e.js +1 -0
  146. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/profiles/switch/route-d14ffafd970f186e.js +1 -0
  147. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/sessions/[sessionId]/route-d14ffafd970f186e.js +1 -0
  148. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/sessions/route-d14ffafd970f186e.js +1 -0
  149. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/skills/route-d14ffafd970f186e.js +1 -0
  150. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/terminal/port/route-d14ffafd970f186e.js +1 -0
  151. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/web-sessions/[id]/messages/route-d14ffafd970f186e.js +1 -0
  152. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/web-sessions/[id]/route-d14ffafd970f186e.js +1 -0
  153. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/web-sessions/route-d14ffafd970f186e.js +1 -0
  154. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/assets/[...path]/route-d14ffafd970f186e.js +1 -0
  155. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/browse/route-d14ffafd970f186e.js +1 -0
  156. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/browse-file/route-d14ffafd970f186e.js +1 -0
  157. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/context/route-d14ffafd970f186e.js +1 -0
  158. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/copy/route-d14ffafd970f186e.js +1 -0
  159. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/db/introspect/route-d14ffafd970f186e.js +1 -0
  160. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/db/query/route-d14ffafd970f186e.js +1 -0
  161. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/delete/route-d14ffafd970f186e.js +1 -0
  162. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/execute/route-d14ffafd970f186e.js +1 -0
  163. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/file/route-d14ffafd970f186e.js +1 -0
  164. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/init/route-d14ffafd970f186e.js +1 -0
  165. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/link-preview/route-d14ffafd970f186e.js +1 -0
  166. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/list/route-d14ffafd970f186e.js +1 -0
  167. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/mkdir/route-d14ffafd970f186e.js +1 -0
  168. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/move/route-d14ffafd970f186e.js +1 -0
  169. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/actions/route-d14ffafd970f186e.js +1 -0
  170. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/actions/runs/route-d14ffafd970f186e.js +1 -0
  171. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/display-field/route-d14ffafd970f186e.js +1 -0
  172. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/[id]/content/route-d14ffafd970f186e.js +1 -0
  173. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/[id]/route-d14ffafd970f186e.js +1 -0
  174. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/bulk-delete/route-d14ffafd970f186e.js +1 -0
  175. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/options/route-d14ffafd970f186e.js +1 -0
  176. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/route-d14ffafd970f186e.js +1 -0
  177. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/[fieldId]/enum-rename/route-d14ffafd970f186e.js +1 -0
  178. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/[fieldId]/route-d14ffafd970f186e.js +1 -0
  179. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/reorder/route-d14ffafd970f186e.js +1 -0
  180. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/route-d14ffafd970f186e.js +1 -0
  181. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/route-d14ffafd970f186e.js +1 -0
  182. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/views/route-d14ffafd970f186e.js +1 -0
  183. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/open-file/route-d14ffafd970f186e.js +1 -0
  184. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/path-info/route-d14ffafd970f186e.js +1 -0
  185. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/query/route-d14ffafd970f186e.js +1 -0
  186. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/raw-file/route-d14ffafd970f186e.js +1 -0
  187. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/rename/route-d14ffafd970f186e.js +1 -0
  188. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/reports/execute/route-d14ffafd970f186e.js +1 -0
  189. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/search-index/route-d14ffafd970f186e.js +1 -0
  190. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/suggest-files/route-d14ffafd970f186e.js +1 -0
  191. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/switch/route-d14ffafd970f186e.js +1 -0
  192. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/thumbnail/route-d14ffafd970f186e.js +1 -0
  193. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/tree/route-d14ffafd970f186e.js +1 -0
  194. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/upload/route-d14ffafd970f186e.js +1 -0
  195. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/virtual-file/route-d14ffafd970f186e.js +1 -0
  196. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/watch/route-d14ffafd970f186e.js +1 -0
  197. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/write-binary/route-d14ffafd970f186e.js +1 -0
  198. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/{layout-2ada610571ddd42f.js → layout-f08988a91b85294a.js} +1 -1
  199. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/page-64cad81306c18be9.js +1 -0
  200. package/apps/web/.next/standalone/apps/web/.next/static/chunks/webpack-a769c08a3fea86bb.js +1 -0
  201. package/apps/web/.next/standalone/apps/web/.next/static/css/fb279c912601f360.css +1 -0
  202. package/apps/web/.next/standalone/apps/web/.next/static/xzgogMMcs02a6BQa5tMBA/_buildManifest.js +1 -0
  203. package/apps/web/.next/standalone/apps/web/lib/action-sdk-runtime.js +121 -0
  204. package/apps/web/.next/standalone/apps/web/package.json +1 -0
  205. package/apps/web/.next/standalone/apps/web/server.js +1 -1
  206. package/apps/web/.next/standalone/package.json +1 -1
  207. package/apps/web/.next/static/chunks/2716-475d96c202834586.js +135 -0
  208. package/apps/web/.next/static/chunks/app/api/apps/cron/route-d14ffafd970f186e.js +1 -0
  209. package/apps/web/.next/static/chunks/app/api/apps/proxy/route-d14ffafd970f186e.js +1 -0
  210. package/apps/web/.next/static/chunks/app/api/apps/route-d14ffafd970f186e.js +1 -0
  211. package/apps/web/.next/static/chunks/app/api/apps/serve/[...path]/route-d14ffafd970f186e.js +1 -0
  212. package/apps/web/.next/static/chunks/app/api/apps/store/route-d14ffafd970f186e.js +1 -0
  213. package/apps/web/.next/static/chunks/app/api/apps/webhooks/[...path]/route-d14ffafd970f186e.js +1 -0
  214. package/apps/web/.next/static/chunks/app/api/chat/active/route-d14ffafd970f186e.js +1 -0
  215. package/apps/web/.next/static/chunks/app/api/chat/route-d14ffafd970f186e.js +1 -0
  216. package/apps/web/.next/static/chunks/app/api/chat/runs/route-d14ffafd970f186e.js +1 -0
  217. package/apps/web/.next/static/chunks/app/api/chat/stop/route-d14ffafd970f186e.js +1 -0
  218. package/apps/web/.next/static/chunks/app/api/chat/stream/route-d14ffafd970f186e.js +1 -0
  219. package/apps/web/.next/static/chunks/app/api/chat/subagents/route-d14ffafd970f186e.js +1 -0
  220. package/apps/web/.next/static/chunks/app/api/cron/jobs/[jobId]/runs/route-d14ffafd970f186e.js +1 -0
  221. package/apps/web/.next/static/chunks/app/api/cron/jobs/route-d14ffafd970f186e.js +1 -0
  222. package/apps/web/.next/static/chunks/app/api/cron/runs/[sessionId]/route-d14ffafd970f186e.js +1 -0
  223. package/apps/web/.next/static/chunks/app/api/cron/runs/search-transcript/route-d14ffafd970f186e.js +1 -0
  224. package/apps/web/.next/static/chunks/app/api/feedback/route-d14ffafd970f186e.js +1 -0
  225. package/apps/web/.next/static/chunks/app/api/gateway/channels/route-d14ffafd970f186e.js +1 -0
  226. package/apps/web/.next/static/chunks/app/api/gateway/chat/route-d14ffafd970f186e.js +1 -0
  227. package/apps/web/.next/static/chunks/app/api/gateway/chat/stream/route-d14ffafd970f186e.js +1 -0
  228. package/apps/web/.next/static/chunks/app/api/gateway/sessions/[id]/route-d14ffafd970f186e.js +1 -0
  229. package/apps/web/.next/static/chunks/app/api/gateway/sessions/route-d14ffafd970f186e.js +1 -0
  230. package/apps/web/.next/static/chunks/app/api/memories/route-d14ffafd970f186e.js +1 -0
  231. package/apps/web/.next/static/chunks/app/api/profiles/route-d14ffafd970f186e.js +1 -0
  232. package/apps/web/.next/static/chunks/app/api/profiles/switch/route-d14ffafd970f186e.js +1 -0
  233. package/apps/web/.next/static/chunks/app/api/sessions/[sessionId]/route-d14ffafd970f186e.js +1 -0
  234. package/apps/web/.next/static/chunks/app/api/sessions/route-d14ffafd970f186e.js +1 -0
  235. package/apps/web/.next/static/chunks/app/api/skills/route-d14ffafd970f186e.js +1 -0
  236. package/apps/web/.next/static/chunks/app/api/terminal/port/route-d14ffafd970f186e.js +1 -0
  237. package/apps/web/.next/static/chunks/app/api/web-sessions/[id]/messages/route-d14ffafd970f186e.js +1 -0
  238. package/apps/web/.next/static/chunks/app/api/web-sessions/[id]/route-d14ffafd970f186e.js +1 -0
  239. package/apps/web/.next/static/chunks/app/api/web-sessions/route-d14ffafd970f186e.js +1 -0
  240. package/apps/web/.next/static/chunks/app/api/workspace/assets/[...path]/route-d14ffafd970f186e.js +1 -0
  241. package/apps/web/.next/static/chunks/app/api/workspace/browse/route-d14ffafd970f186e.js +1 -0
  242. package/apps/web/.next/static/chunks/app/api/workspace/browse-file/route-d14ffafd970f186e.js +1 -0
  243. package/apps/web/.next/static/chunks/app/api/workspace/context/route-d14ffafd970f186e.js +1 -0
  244. package/apps/web/.next/static/chunks/app/api/workspace/copy/route-d14ffafd970f186e.js +1 -0
  245. package/apps/web/.next/static/chunks/app/api/workspace/db/introspect/route-d14ffafd970f186e.js +1 -0
  246. package/apps/web/.next/static/chunks/app/api/workspace/db/query/route-d14ffafd970f186e.js +1 -0
  247. package/apps/web/.next/static/chunks/app/api/workspace/delete/route-d14ffafd970f186e.js +1 -0
  248. package/apps/web/.next/static/chunks/app/api/workspace/execute/route-d14ffafd970f186e.js +1 -0
  249. package/apps/web/.next/static/chunks/app/api/workspace/file/route-d14ffafd970f186e.js +1 -0
  250. package/apps/web/.next/static/chunks/app/api/workspace/init/route-d14ffafd970f186e.js +1 -0
  251. package/apps/web/.next/static/chunks/app/api/workspace/link-preview/route-d14ffafd970f186e.js +1 -0
  252. package/apps/web/.next/static/chunks/app/api/workspace/list/route-d14ffafd970f186e.js +1 -0
  253. package/apps/web/.next/static/chunks/app/api/workspace/mkdir/route-d14ffafd970f186e.js +1 -0
  254. package/apps/web/.next/static/chunks/app/api/workspace/move/route-d14ffafd970f186e.js +1 -0
  255. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/actions/route-d14ffafd970f186e.js +1 -0
  256. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/actions/runs/route-d14ffafd970f186e.js +1 -0
  257. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/display-field/route-d14ffafd970f186e.js +1 -0
  258. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/[id]/content/route-d14ffafd970f186e.js +1 -0
  259. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/[id]/route-d14ffafd970f186e.js +1 -0
  260. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/bulk-delete/route-d14ffafd970f186e.js +1 -0
  261. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/options/route-d14ffafd970f186e.js +1 -0
  262. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/route-d14ffafd970f186e.js +1 -0
  263. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/[fieldId]/enum-rename/route-d14ffafd970f186e.js +1 -0
  264. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/[fieldId]/route-d14ffafd970f186e.js +1 -0
  265. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/reorder/route-d14ffafd970f186e.js +1 -0
  266. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/route-d14ffafd970f186e.js +1 -0
  267. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/route-d14ffafd970f186e.js +1 -0
  268. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/views/route-d14ffafd970f186e.js +1 -0
  269. package/apps/web/.next/static/chunks/app/api/workspace/open-file/route-d14ffafd970f186e.js +1 -0
  270. package/apps/web/.next/static/chunks/app/api/workspace/path-info/route-d14ffafd970f186e.js +1 -0
  271. package/apps/web/.next/static/chunks/app/api/workspace/query/route-d14ffafd970f186e.js +1 -0
  272. package/apps/web/.next/static/chunks/app/api/workspace/raw-file/route-d14ffafd970f186e.js +1 -0
  273. package/apps/web/.next/static/chunks/app/api/workspace/rename/route-d14ffafd970f186e.js +1 -0
  274. package/apps/web/.next/static/chunks/app/api/workspace/reports/execute/route-d14ffafd970f186e.js +1 -0
  275. package/apps/web/.next/static/chunks/app/api/workspace/search-index/route-d14ffafd970f186e.js +1 -0
  276. package/apps/web/.next/static/chunks/app/api/workspace/suggest-files/route-d14ffafd970f186e.js +1 -0
  277. package/apps/web/.next/static/chunks/app/api/workspace/switch/route-d14ffafd970f186e.js +1 -0
  278. package/apps/web/.next/static/chunks/app/api/workspace/thumbnail/route-d14ffafd970f186e.js +1 -0
  279. package/apps/web/.next/static/chunks/app/api/workspace/tree/route-d14ffafd970f186e.js +1 -0
  280. package/apps/web/.next/static/chunks/app/api/workspace/upload/route-d14ffafd970f186e.js +1 -0
  281. package/apps/web/.next/static/chunks/app/api/workspace/virtual-file/route-d14ffafd970f186e.js +1 -0
  282. package/apps/web/.next/static/chunks/app/api/workspace/watch/route-d14ffafd970f186e.js +1 -0
  283. package/apps/web/.next/static/chunks/app/api/workspace/write-binary/route-d14ffafd970f186e.js +1 -0
  284. package/apps/web/.next/static/chunks/app/{layout-2ada610571ddd42f.js → layout-f08988a91b85294a.js} +1 -1
  285. package/apps/web/.next/static/chunks/app/page-64cad81306c18be9.js +1 -0
  286. package/apps/web/.next/static/chunks/webpack-a769c08a3fea86bb.js +1 -0
  287. package/apps/web/.next/static/css/fb279c912601f360.css +1 -0
  288. package/apps/web/.next/static/xzgogMMcs02a6BQa5tMBA/_buildManifest.js +1 -0
  289. package/assets/seed/schema.sql +15 -0
  290. package/dist/entry.js +1 -1
  291. package/dist/{program-IDoEjVLE.js → program-DcrLV9Z2.js} +8 -1
  292. package/dist/{run-main-D2k8GHwe.js → run-main-D7Ux65aN.js} +1 -1
  293. package/extensions/dench-identity/index.ts +1 -9
  294. package/extensions/posthog-analytics/lib/build-env.js +1 -1
  295. package/package.json +1 -1
  296. package/skills/crm/SKILL.md +49 -926
  297. package/skills/crm/actions/SKILL.md +600 -0
  298. package/skills/crm/documents/SKILL.md +64 -0
  299. package/skills/crm/duckdb-operations/SKILL.md +546 -0
  300. package/skills/crm/object-builder/SKILL.md +361 -0
  301. package/skills/crm/reports/SKILL.md +199 -0
  302. package/skills/crm/views-filters/SKILL.md +303 -0
  303. package/skills/gstack/SKILL.md +101 -0
  304. package/skills/gstack/benchmark/SKILL.md +86 -0
  305. package/skills/gstack/canary/SKILL.md +65 -0
  306. package/skills/gstack/careful/SKILL.md +66 -0
  307. package/skills/gstack/design-consultation/SKILL.md +90 -0
  308. package/skills/gstack/design-review/SKILL.md +72 -0
  309. package/skills/gstack/document-release/SKILL.md +112 -0
  310. package/skills/gstack/freeze/SKILL.md +57 -0
  311. package/skills/gstack/guard/SKILL.md +37 -0
  312. package/skills/gstack/investigate/SKILL.md +111 -0
  313. package/skills/gstack/land-and-deploy/SKILL.md +77 -0
  314. package/skills/gstack/office-hours/SKILL.md +105 -0
  315. package/skills/gstack/plan-ceo-review/SKILL.md +108 -0
  316. package/skills/gstack/plan-design-review/SKILL.md +99 -0
  317. package/skills/gstack/plan-eng-review/SKILL.md +129 -0
  318. package/skills/gstack/qa/SKILL.md +121 -0
  319. package/skills/gstack/qa-only/SKILL.md +51 -0
  320. package/skills/gstack/retro/SKILL.md +88 -0
  321. package/skills/gstack/review/SKILL.md +144 -0
  322. package/skills/gstack/ship/SKILL.md +126 -0
  323. package/skills/gstack/unfreeze/SKILL.md +23 -0
  324. package/apps/web/.next/standalone/apps/web/.next/static/chunks/2597.f31531534ad0b96f.js +0 -1
  325. package/apps/web/.next/standalone/apps/web/.next/static/chunks/4652.ca2ab4e205060d84.js +0 -60
  326. package/apps/web/.next/standalone/apps/web/.next/static/chunks/6861-58d368bcf4e23b55.js +0 -76
  327. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/apps/cron/route-580e9ace8a991c49.js +0 -1
  328. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/apps/proxy/route-580e9ace8a991c49.js +0 -1
  329. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/apps/route-580e9ace8a991c49.js +0 -1
  330. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/apps/serve/[...path]/route-580e9ace8a991c49.js +0 -1
  331. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/apps/store/route-580e9ace8a991c49.js +0 -1
  332. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/apps/webhooks/[...path]/route-580e9ace8a991c49.js +0 -1
  333. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/active/route-580e9ace8a991c49.js +0 -1
  334. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/route-580e9ace8a991c49.js +0 -1
  335. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/runs/route-580e9ace8a991c49.js +0 -1
  336. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/stop/route-580e9ace8a991c49.js +0 -1
  337. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/stream/route-580e9ace8a991c49.js +0 -1
  338. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/subagents/route-580e9ace8a991c49.js +0 -1
  339. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/cron/jobs/[jobId]/runs/route-580e9ace8a991c49.js +0 -1
  340. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/cron/jobs/route-580e9ace8a991c49.js +0 -1
  341. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/cron/runs/[sessionId]/route-580e9ace8a991c49.js +0 -1
  342. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/cron/runs/search-transcript/route-580e9ace8a991c49.js +0 -1
  343. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/feedback/route-580e9ace8a991c49.js +0 -1
  344. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/gateway/channels/route-580e9ace8a991c49.js +0 -1
  345. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/gateway/chat/route-580e9ace8a991c49.js +0 -1
  346. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/gateway/chat/stream/route-580e9ace8a991c49.js +0 -1
  347. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/gateway/sessions/[id]/route-580e9ace8a991c49.js +0 -1
  348. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/gateway/sessions/route-580e9ace8a991c49.js +0 -1
  349. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/memories/route-580e9ace8a991c49.js +0 -1
  350. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/profiles/route-580e9ace8a991c49.js +0 -1
  351. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/profiles/switch/route-580e9ace8a991c49.js +0 -1
  352. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/sessions/[sessionId]/route-580e9ace8a991c49.js +0 -1
  353. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/sessions/route-580e9ace8a991c49.js +0 -1
  354. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/skills/route-580e9ace8a991c49.js +0 -1
  355. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/terminal/port/route-580e9ace8a991c49.js +0 -1
  356. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/web-sessions/[id]/messages/route-580e9ace8a991c49.js +0 -1
  357. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/web-sessions/[id]/route-580e9ace8a991c49.js +0 -1
  358. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/web-sessions/route-580e9ace8a991c49.js +0 -1
  359. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/assets/[...path]/route-580e9ace8a991c49.js +0 -1
  360. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/browse/route-580e9ace8a991c49.js +0 -1
  361. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/browse-file/route-580e9ace8a991c49.js +0 -1
  362. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/context/route-580e9ace8a991c49.js +0 -1
  363. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/copy/route-580e9ace8a991c49.js +0 -1
  364. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/db/introspect/route-580e9ace8a991c49.js +0 -1
  365. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/db/query/route-580e9ace8a991c49.js +0 -1
  366. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/delete/route-580e9ace8a991c49.js +0 -1
  367. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/execute/route-580e9ace8a991c49.js +0 -1
  368. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/file/route-580e9ace8a991c49.js +0 -1
  369. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/init/route-580e9ace8a991c49.js +0 -1
  370. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/list/route-580e9ace8a991c49.js +0 -1
  371. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/mkdir/route-580e9ace8a991c49.js +0 -1
  372. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/move/route-580e9ace8a991c49.js +0 -1
  373. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/display-field/route-580e9ace8a991c49.js +0 -1
  374. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/[id]/route-580e9ace8a991c49.js +0 -1
  375. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/bulk-delete/route-580e9ace8a991c49.js +0 -1
  376. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/options/route-580e9ace8a991c49.js +0 -1
  377. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/route-580e9ace8a991c49.js +0 -1
  378. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/[fieldId]/enum-rename/route-580e9ace8a991c49.js +0 -1
  379. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/[fieldId]/route-580e9ace8a991c49.js +0 -1
  380. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/reorder/route-580e9ace8a991c49.js +0 -1
  381. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/route-580e9ace8a991c49.js +0 -1
  382. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/views/route-580e9ace8a991c49.js +0 -1
  383. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/open-file/route-580e9ace8a991c49.js +0 -1
  384. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/path-info/route-580e9ace8a991c49.js +0 -1
  385. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/query/route-580e9ace8a991c49.js +0 -1
  386. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/raw-file/route-580e9ace8a991c49.js +0 -1
  387. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/rename/route-580e9ace8a991c49.js +0 -1
  388. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/reports/execute/route-580e9ace8a991c49.js +0 -1
  389. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/search-index/route-580e9ace8a991c49.js +0 -1
  390. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/suggest-files/route-580e9ace8a991c49.js +0 -1
  391. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/switch/route-580e9ace8a991c49.js +0 -1
  392. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/thumbnail/route-580e9ace8a991c49.js +0 -1
  393. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/tree/route-580e9ace8a991c49.js +0 -1
  394. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/upload/route-580e9ace8a991c49.js +0 -1
  395. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/virtual-file/route-580e9ace8a991c49.js +0 -1
  396. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/watch/route-580e9ace8a991c49.js +0 -1
  397. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/write-binary/route-580e9ace8a991c49.js +0 -1
  398. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/page-a1a7eac29d935a3e.js +0 -1
  399. package/apps/web/.next/standalone/apps/web/.next/static/chunks/webpack-43066e1a249665ba.js +0 -1
  400. package/apps/web/.next/standalone/apps/web/.next/static/css/4c7acc74b29f04e2.css +0 -1
  401. package/apps/web/.next/standalone/apps/web/.next/static/kXwi5ZTYAYlvvWmNAsdo_/_buildManifest.js +0 -1
  402. package/apps/web/.next/static/chunks/2597.f31531534ad0b96f.js +0 -1
  403. package/apps/web/.next/static/chunks/4652.ca2ab4e205060d84.js +0 -60
  404. package/apps/web/.next/static/chunks/6861-58d368bcf4e23b55.js +0 -76
  405. package/apps/web/.next/static/chunks/app/api/apps/cron/route-580e9ace8a991c49.js +0 -1
  406. package/apps/web/.next/static/chunks/app/api/apps/proxy/route-580e9ace8a991c49.js +0 -1
  407. package/apps/web/.next/static/chunks/app/api/apps/route-580e9ace8a991c49.js +0 -1
  408. package/apps/web/.next/static/chunks/app/api/apps/serve/[...path]/route-580e9ace8a991c49.js +0 -1
  409. package/apps/web/.next/static/chunks/app/api/apps/store/route-580e9ace8a991c49.js +0 -1
  410. package/apps/web/.next/static/chunks/app/api/apps/webhooks/[...path]/route-580e9ace8a991c49.js +0 -1
  411. package/apps/web/.next/static/chunks/app/api/chat/active/route-580e9ace8a991c49.js +0 -1
  412. package/apps/web/.next/static/chunks/app/api/chat/route-580e9ace8a991c49.js +0 -1
  413. package/apps/web/.next/static/chunks/app/api/chat/runs/route-580e9ace8a991c49.js +0 -1
  414. package/apps/web/.next/static/chunks/app/api/chat/stop/route-580e9ace8a991c49.js +0 -1
  415. package/apps/web/.next/static/chunks/app/api/chat/stream/route-580e9ace8a991c49.js +0 -1
  416. package/apps/web/.next/static/chunks/app/api/chat/subagents/route-580e9ace8a991c49.js +0 -1
  417. package/apps/web/.next/static/chunks/app/api/cron/jobs/[jobId]/runs/route-580e9ace8a991c49.js +0 -1
  418. package/apps/web/.next/static/chunks/app/api/cron/jobs/route-580e9ace8a991c49.js +0 -1
  419. package/apps/web/.next/static/chunks/app/api/cron/runs/[sessionId]/route-580e9ace8a991c49.js +0 -1
  420. package/apps/web/.next/static/chunks/app/api/cron/runs/search-transcript/route-580e9ace8a991c49.js +0 -1
  421. package/apps/web/.next/static/chunks/app/api/feedback/route-580e9ace8a991c49.js +0 -1
  422. package/apps/web/.next/static/chunks/app/api/gateway/channels/route-580e9ace8a991c49.js +0 -1
  423. package/apps/web/.next/static/chunks/app/api/gateway/chat/route-580e9ace8a991c49.js +0 -1
  424. package/apps/web/.next/static/chunks/app/api/gateway/chat/stream/route-580e9ace8a991c49.js +0 -1
  425. package/apps/web/.next/static/chunks/app/api/gateway/sessions/[id]/route-580e9ace8a991c49.js +0 -1
  426. package/apps/web/.next/static/chunks/app/api/gateway/sessions/route-580e9ace8a991c49.js +0 -1
  427. package/apps/web/.next/static/chunks/app/api/memories/route-580e9ace8a991c49.js +0 -1
  428. package/apps/web/.next/static/chunks/app/api/profiles/route-580e9ace8a991c49.js +0 -1
  429. package/apps/web/.next/static/chunks/app/api/profiles/switch/route-580e9ace8a991c49.js +0 -1
  430. package/apps/web/.next/static/chunks/app/api/sessions/[sessionId]/route-580e9ace8a991c49.js +0 -1
  431. package/apps/web/.next/static/chunks/app/api/sessions/route-580e9ace8a991c49.js +0 -1
  432. package/apps/web/.next/static/chunks/app/api/skills/route-580e9ace8a991c49.js +0 -1
  433. package/apps/web/.next/static/chunks/app/api/terminal/port/route-580e9ace8a991c49.js +0 -1
  434. package/apps/web/.next/static/chunks/app/api/web-sessions/[id]/messages/route-580e9ace8a991c49.js +0 -1
  435. package/apps/web/.next/static/chunks/app/api/web-sessions/[id]/route-580e9ace8a991c49.js +0 -1
  436. package/apps/web/.next/static/chunks/app/api/web-sessions/route-580e9ace8a991c49.js +0 -1
  437. package/apps/web/.next/static/chunks/app/api/workspace/assets/[...path]/route-580e9ace8a991c49.js +0 -1
  438. package/apps/web/.next/static/chunks/app/api/workspace/browse/route-580e9ace8a991c49.js +0 -1
  439. package/apps/web/.next/static/chunks/app/api/workspace/browse-file/route-580e9ace8a991c49.js +0 -1
  440. package/apps/web/.next/static/chunks/app/api/workspace/context/route-580e9ace8a991c49.js +0 -1
  441. package/apps/web/.next/static/chunks/app/api/workspace/copy/route-580e9ace8a991c49.js +0 -1
  442. package/apps/web/.next/static/chunks/app/api/workspace/db/introspect/route-580e9ace8a991c49.js +0 -1
  443. package/apps/web/.next/static/chunks/app/api/workspace/db/query/route-580e9ace8a991c49.js +0 -1
  444. package/apps/web/.next/static/chunks/app/api/workspace/delete/route-580e9ace8a991c49.js +0 -1
  445. package/apps/web/.next/static/chunks/app/api/workspace/execute/route-580e9ace8a991c49.js +0 -1
  446. package/apps/web/.next/static/chunks/app/api/workspace/file/route-580e9ace8a991c49.js +0 -1
  447. package/apps/web/.next/static/chunks/app/api/workspace/init/route-580e9ace8a991c49.js +0 -1
  448. package/apps/web/.next/static/chunks/app/api/workspace/list/route-580e9ace8a991c49.js +0 -1
  449. package/apps/web/.next/static/chunks/app/api/workspace/mkdir/route-580e9ace8a991c49.js +0 -1
  450. package/apps/web/.next/static/chunks/app/api/workspace/move/route-580e9ace8a991c49.js +0 -1
  451. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/display-field/route-580e9ace8a991c49.js +0 -1
  452. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/[id]/route-580e9ace8a991c49.js +0 -1
  453. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/bulk-delete/route-580e9ace8a991c49.js +0 -1
  454. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/options/route-580e9ace8a991c49.js +0 -1
  455. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/route-580e9ace8a991c49.js +0 -1
  456. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/[fieldId]/enum-rename/route-580e9ace8a991c49.js +0 -1
  457. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/[fieldId]/route-580e9ace8a991c49.js +0 -1
  458. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/reorder/route-580e9ace8a991c49.js +0 -1
  459. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/route-580e9ace8a991c49.js +0 -1
  460. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/views/route-580e9ace8a991c49.js +0 -1
  461. package/apps/web/.next/static/chunks/app/api/workspace/open-file/route-580e9ace8a991c49.js +0 -1
  462. package/apps/web/.next/static/chunks/app/api/workspace/path-info/route-580e9ace8a991c49.js +0 -1
  463. package/apps/web/.next/static/chunks/app/api/workspace/query/route-580e9ace8a991c49.js +0 -1
  464. package/apps/web/.next/static/chunks/app/api/workspace/raw-file/route-580e9ace8a991c49.js +0 -1
  465. package/apps/web/.next/static/chunks/app/api/workspace/rename/route-580e9ace8a991c49.js +0 -1
  466. package/apps/web/.next/static/chunks/app/api/workspace/reports/execute/route-580e9ace8a991c49.js +0 -1
  467. package/apps/web/.next/static/chunks/app/api/workspace/search-index/route-580e9ace8a991c49.js +0 -1
  468. package/apps/web/.next/static/chunks/app/api/workspace/suggest-files/route-580e9ace8a991c49.js +0 -1
  469. package/apps/web/.next/static/chunks/app/api/workspace/switch/route-580e9ace8a991c49.js +0 -1
  470. package/apps/web/.next/static/chunks/app/api/workspace/thumbnail/route-580e9ace8a991c49.js +0 -1
  471. package/apps/web/.next/static/chunks/app/api/workspace/tree/route-580e9ace8a991c49.js +0 -1
  472. package/apps/web/.next/static/chunks/app/api/workspace/upload/route-580e9ace8a991c49.js +0 -1
  473. package/apps/web/.next/static/chunks/app/api/workspace/virtual-file/route-580e9ace8a991c49.js +0 -1
  474. package/apps/web/.next/static/chunks/app/api/workspace/watch/route-580e9ace8a991c49.js +0 -1
  475. package/apps/web/.next/static/chunks/app/api/workspace/write-binary/route-580e9ace8a991c49.js +0 -1
  476. package/apps/web/.next/static/chunks/app/page-a1a7eac29d935a3e.js +0 -1
  477. package/apps/web/.next/static/chunks/webpack-43066e1a249665ba.js +0 -1
  478. package/apps/web/.next/static/css/4c7acc74b29f04e2.css +0 -1
  479. package/apps/web/.next/static/kXwi5ZTYAYlvvWmNAsdo_/_buildManifest.js +0 -1
  480. /package/apps/web/.next/standalone/apps/web/.next/static/{kXwi5ZTYAYlvvWmNAsdo_ → xzgogMMcs02a6BQa5tMBA}/_ssgManifest.js +0 -0
  481. /package/apps/web/.next/static/{kXwi5ZTYAYlvvWmNAsdo_ → xzgogMMcs02a6BQa5tMBA}/_ssgManifest.js +0 -0
@@ -0,0 +1,144 @@
1
+ ---
2
+ name: review
3
+ description: |
4
+ Pre-landing PR review. Analyzes diff for SQL safety, race conditions, LLM trust
5
+ boundary violations, conditional side effects, and structural issues.
6
+ Auto-fixes obvious issues, asks about complex ones.
7
+ Use when reviewing code before merge, or when asked for "code review".
8
+ ---
9
+
10
+ # Pre-Landing Review — Find What CI Misses
11
+
12
+ You are a staff engineer. Find the bugs that pass CI but blow up in production. Auto-fix the obvious ones. Flag the rest.
13
+
14
+ **Related skills:** [plan-eng-review](../plan-eng-review/SKILL.md) | [ship](../ship/SKILL.md) | [investigate](../investigate/SKILL.md)
15
+
16
+ ---
17
+
18
+ ## Step 0: Detect Base Branch
19
+
20
+ 1. Check for existing PR: `gh pr view --json baseRefName -q .baseRefName`
21
+ 2. If no PR: `gh repo view --json defaultBranchRef -q .defaultBranchRef.name`
22
+ 3. Fallback: `main`
23
+
24
+ ---
25
+
26
+ ## Step 1: Check Branch
27
+
28
+ 1. `git branch --show-current` — if on base branch, nothing to review.
29
+ 2. `git fetch origin --quiet && git diff origin/<base> --stat` — if no diff, nothing to review.
30
+
31
+ ---
32
+
33
+ ## Step 1.5: Scope Drift Detection
34
+
35
+ Before reviewing code quality, check: **did they build what was requested?**
36
+
37
+ 1. Read commit messages, PR description, and TODOS.md
38
+ 2. Compare files changed against stated intent
39
+
40
+ ```
41
+ Scope Check: [CLEAN / DRIFT DETECTED / REQUIREMENTS MISSING]
42
+ Intent: <what was requested>
43
+ Delivered: <what the diff actually does>
44
+ ```
45
+
46
+ This is informational — does not block the review.
47
+
48
+ ---
49
+
50
+ ## Step 2: Get the Diff
51
+
52
+ ```bash
53
+ git fetch origin <base> --quiet
54
+ git diff origin/<base>
55
+ ```
56
+
57
+ ---
58
+
59
+ ## Step 3: Two-Pass Review
60
+
61
+ ### Pass 1 (CRITICAL)
62
+
63
+ | Category | What to look for |
64
+ |----------|-----------------|
65
+ | **SQL & Data Safety** | Raw SQL injection, missing parameterization, unguarded DELETE/UPDATE |
66
+ | **Race Conditions** | Concurrent access to shared state, read-modify-write without locks |
67
+ | **LLM Trust Boundary** | LLM output used in SQL, eval, system commands, or rendered as HTML without sanitization |
68
+ | **Enum Completeness** | New enum value added but not handled in all switch/case/if-else chains |
69
+
70
+ ### Pass 2 (INFORMATIONAL)
71
+
72
+ | Category | What to look for |
73
+ |----------|-----------------|
74
+ | **Conditional Side Effects** | Side effects (DB writes, API calls, emails) inside conditional branches that might not execute |
75
+ | **Magic Numbers** | Hardcoded values that should be constants |
76
+ | **Dead Code** | Unreachable code, unused imports, commented-out blocks |
77
+ | **Test Gaps** | New code paths without corresponding tests |
78
+ | **Performance** | N+1 queries, missing indexes, unbounded queries, large bundle imports |
79
+
80
+ ---
81
+
82
+ ## Step 4: Fix-First Review
83
+
84
+ **Every finding gets action — not just critical ones.**
85
+
86
+ ### Classify each finding as AUTO-FIX or ASK
87
+
88
+ - **AUTO-FIX**: Mechanical fixes with one correct answer (unused imports, missing `await`, obvious typos)
89
+ - **ASK**: Fixes requiring judgment (architecture changes, behavior changes, security decisions)
90
+
91
+ ### Apply AUTO-FIX items directly
92
+
93
+ For each: `[AUTO-FIXED] [file:line] Problem → what you did`
94
+
95
+ ### Batch-ask about ASK items
96
+
97
+ Present in one question:
98
+
99
+ ```
100
+ I auto-fixed N issues. M need your input:
101
+
102
+ 1. [CRITICAL] file:line — Race condition in status transition
103
+ Fix: Add WHERE clause to UPDATE
104
+ → A) Fix B) Skip
105
+
106
+ 2. [INFO] file:line — LLM output not validated before DB write
107
+ Fix: Add schema validation
108
+ → A) Fix B) Skip
109
+ ```
110
+
111
+ ### Verification of Claims
112
+
113
+ - If you claim "this is handled elsewhere" → read and cite the handling code
114
+ - If you claim "tests cover this" → name the test file and method
115
+ - Never say "likely handled" or "probably tested" — verify or flag as unknown
116
+
117
+ ---
118
+
119
+ ## Step 5: Documentation Staleness Check
120
+
121
+ For each `.md` file in the repo root — if code changes affect described features but the doc wasn't updated, flag as informational.
122
+
123
+ ---
124
+
125
+ ## Step 6: Output
126
+
127
+ ```
128
+ Pre-Landing Review: N issues (X critical, Y informational)
129
+ Auto-fixed: [list]
130
+ Needs input: [list]
131
+ Scope: [CLEAN / DRIFT / MISSING]
132
+ ```
133
+
134
+ After review, proceed to [ship](../ship/SKILL.md) to create the PR.
135
+
136
+ ---
137
+
138
+ ## Important Rules
139
+
140
+ - **Read the FULL diff before commenting.** Don't flag issues already addressed.
141
+ - **Fix-first, not read-only.** AUTO-FIX items are applied directly.
142
+ - **Be terse.** One line problem, one line fix.
143
+ - **Only flag real problems.** Skip anything that's fine.
144
+ - Never commit, push, or create PRs — that's [ship](../ship/SKILL.md)'s job.
@@ -0,0 +1,126 @@
1
+ ---
2
+ name: ship
3
+ description: |
4
+ Release engineering — sync main, run tests, audit coverage, push branch,
5
+ open PR. Bootstraps test frameworks if needed. One command from "code complete"
6
+ to "PR ready for review".
7
+ ---
8
+
9
+ # Ship — From Code Complete to PR
10
+
11
+ You are the release engineer. Take this branch from "done coding" to "PR ready for review."
12
+
13
+ **Related skills:** [review](../review/SKILL.md) | [land-and-deploy](../land-and-deploy/SKILL.md) | [qa](../qa/SKILL.md)
14
+
15
+ ---
16
+
17
+ ## Step 0: Detect Base Branch
18
+
19
+ 1. `gh pr view --json baseRefName -q .baseRefName`
20
+ 2. Fallback: `gh repo view --json defaultBranchRef -q .defaultBranchRef.name`
21
+ 3. Fallback: `main`
22
+
23
+ ---
24
+
25
+ ## Step 1: Sync with Base
26
+
27
+ ```bash
28
+ git fetch origin <base> --quiet
29
+ git merge origin/<base> --no-edit
30
+ ```
31
+
32
+ If conflicts: resolve them. If complex conflicts, ask the user.
33
+
34
+ ---
35
+
36
+ ## Step 2: Run Tests
37
+
38
+ ```bash
39
+ # Detect and run the project's test suite
40
+ npm test # Node.js
41
+ bundle exec rake # Ruby
42
+ pytest # Python
43
+ go test ./... # Go
44
+ cargo test # Rust
45
+ ```
46
+
47
+ **All tests must pass.** If tests fail:
48
+ 1. Read the failure output
49
+ 2. Fix the failing test (if it's a real bug, fix the bug)
50
+ 3. Re-run tests
51
+ 4. If stuck after 3 attempts, ask the user
52
+
53
+ ---
54
+
55
+ ## Step 3: Coverage Audit
56
+
57
+ Check test coverage for files changed in this branch:
58
+
59
+ ```bash
60
+ git diff origin/<base> --name-only
61
+ ```
62
+
63
+ For each changed file, check if corresponding tests exist. Flag gaps:
64
+
65
+ ```
66
+ COVERAGE AUDIT
67
+ ═══════════════════════════════════════
68
+ Changed files: 12
69
+ With tests: 9
70
+ Missing tests: 3
71
+ - src/services/billing.ts (new service, no tests)
72
+ - src/utils/formatter.ts (new utility, no tests)
73
+ - src/api/webhook.ts (new endpoint, no tests)
74
+ ═══════════════════════════════════════
75
+ ```
76
+
77
+ If missing tests, write them before proceeding (unless the user explicitly opts out).
78
+
79
+ ---
80
+
81
+ ## Step 4: Push Branch
82
+
83
+ ```bash
84
+ git push -u origin HEAD
85
+ ```
86
+
87
+ ---
88
+
89
+ ## Step 5: Create PR
90
+
91
+ Generate a PR with:
92
+
93
+ - **Title**: Concise description of the change
94
+ - **Body**: What changed, why, and how to test
95
+ - **Labels**: If applicable (bug, feature, refactor)
96
+
97
+ ```bash
98
+ gh pr create --title "..." --body "..."
99
+ ```
100
+
101
+ ---
102
+
103
+ ## Step 6: Post-Ship Checklist
104
+
105
+ - [ ] Tests pass
106
+ - [ ] Coverage gaps addressed or acknowledged
107
+ - [ ] No uncommitted changes
108
+ - [ ] PR description is clear
109
+ - [ ] Documentation updated (suggest [document-release](../document-release/SKILL.md) if needed)
110
+
111
+ ---
112
+
113
+ ## Output
114
+
115
+ ```
116
+ SHIP REPORT
117
+ ═══════════════════════════════════════
118
+ Branch: feature/my-feature
119
+ Base: main
120
+ Tests: 42 pass, 0 fail
121
+ Coverage: +9 new tests
122
+ PR: github.com/org/repo/pull/123
123
+ ═══════════════════════════════════════
124
+ ```
125
+
126
+ After the PR is approved, use [land-and-deploy](../land-and-deploy/SKILL.md) to merge and deploy.
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: unfreeze
3
+ description: |
4
+ Remove the freeze/guard edit boundary. Restores unrestricted file editing.
5
+ ---
6
+
7
+ # Unfreeze — Remove Edit Restrictions
8
+
9
+ Removes the edit scope restriction set by [freeze](../freeze/SKILL.md) or [guard](../guard/SKILL.md).
10
+
11
+ **Related skills:** [freeze](../freeze/SKILL.md) | [guard](../guard/SKILL.md) | [careful](../careful/SKILL.md)
12
+
13
+ ---
14
+
15
+ ## Behavior
16
+
17
+ 1. Clear the freeze boundary
18
+ 2. If guard mode was active, also deactivate careful mode
19
+ 3. Confirm:
20
+
21
+ ```
22
+ 🔓 UNFROZEN — edits unrestricted. Guard mode OFF.
23
+ ```
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2597],{52597:(e,t,n)=>{n.r(t),n.d(t,{BubbleButton:()=>_.zM,MarkdownEditor:()=>Q,ToolbarButton:()=>_.IB,ToolbarDivider:()=>_.x_,ToolbarGroup:()=>_.$Q});var i=n(80534),r=n(69176),o=n(87131),s=n(22856),l=n(64652),c=n(3087),a=n(86233),d=n(79919),h=n(34872),u=n(8466),p=n(83879),x=n(14273),g=n(54602),k=n(95107),v=n(74166),j=n(79534);let m=(0,n(24946).default)(()=>n.e(5477).then(n.bind(n,45477)).then(e=>({default:e.ReportCard})),{loadableGenerated:{webpack:()=>[45477]},ssr:!1,loading:()=>(0,i.jsx)("div",{className:"h-48 rounded-xl animate-pulse",style:{background:"var(--color-surface)"}})});function f(e){let{node:t,updateAttributes:n,deleteNode:o,selected:s}=e,l=t.attrs.config,[c,a]=(0,v.useState)(!1),[d,h]=(0,v.useState)(l),u=null,p=null;try{let e=JSON.parse(l);(null==e?void 0:e.panels)&&Array.isArray(e.panels)?u=e:p="Invalid report config: missing panels array"}catch(e){p="Invalid JSON in report block"}let x=(0,v.useCallback)(()=>{try{JSON.parse(d),n({config:d}),a(!1)}catch(e){}},[d,n]);return(0,i.jsxs)(r.VR,{className:"report-block-wrapper","data-selected":s||void 0,children:[(0,i.jsxs)("div",{className:"report-block-toolbar",children:[(0,i.jsxs)("button",{type:"button",onClick:()=>{c?x():(h(l),a(!0))},className:"report-block-btn",title:c?"Apply & show chart":"Edit JSON source",children:[c?(0,i.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,i.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,i.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,i.jsx)("polyline",{points:"16 18 22 12 16 6"}),(0,i.jsx)("polyline",{points:"8 6 2 12 8 18"})]}),(0,i.jsx)("span",{children:c?"Apply":"Edit JSON"})]}),(0,i.jsx)("button",{type:"button",onClick:o,className:"report-block-btn report-block-btn-danger",title:"Remove report block",children:(0,i.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,i.jsx)("path",{d:"M3 6h18"}),(0,i.jsx)("path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"}),(0,i.jsx)("path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"})]})})]}),c?(0,i.jsxs)("div",{className:"report-block-source",children:[(0,i.jsx)("div",{className:"report-block-source-label",children:"report-json"}),(0,i.jsx)("textarea",{className:"report-block-textarea",value:d,onChange:e=>h(e.target.value),spellCheck:!1,rows:Math.min(20,d.split("\n").length+2)})]}):p?(0,i.jsxs)("div",{className:"report-block-error",children:[(0,i.jsx)("span",{children:p}),(0,i.jsx)("button",{type:"button",onClick:()=>{h(l),a(!0)},className:"report-block-btn",children:"Fix JSON"})]}):(0,i.jsx)(m,{config:u})]})}let y=j.bP.create({name:"reportBlock",group:"block",atom:!0,addAttributes:()=>({config:{default:"{}",parseHTML:e=>e.getAttribute("data-config")||"{}",renderHTML:e=>({"data-config":e.config})}}),parseHTML:()=>[{tag:'div[data-type="report-block"]'}],renderHTML(e){let{HTMLAttributes:t}=e;return["div",(0,j.KV)(t,{"data-type":"report-block"})]},addNodeView:()=>(0,r.gu)(f)});function b(e){return e.replace(/```report-json\s*\n([\s\S]*?)```/g,(e,t)=>{let n=t.trim().replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;");return'<div data-type="report-block" data-config="'.concat(n,'"></div>')})}var w=n(48997),L=n(63550),C=n(17763),B=n(68840);let M=new L.hs("slashCommand"),N=new L.hs("fileMention"),A=e=>(0,i.jsxs)("span",{className:"slash-cmd-icon-text",children:["H",e]}),I=(0,i.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,i.jsx)("line",{x1:"8",x2:"21",y1:"6",y2:"6"}),(0,i.jsx)("line",{x1:"8",x2:"21",y1:"12",y2:"12"}),(0,i.jsx)("line",{x1:"8",x2:"21",y1:"18",y2:"18"}),(0,i.jsx)("line",{x1:"3",x2:"3.01",y1:"6",y2:"6"}),(0,i.jsx)("line",{x1:"3",x2:"3.01",y1:"12",y2:"12"}),(0,i.jsx)("line",{x1:"3",x2:"3.01",y1:"18",y2:"18"})]}),R=(0,i.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,i.jsx)("line",{x1:"10",x2:"21",y1:"6",y2:"6"}),(0,i.jsx)("line",{x1:"10",x2:"21",y1:"12",y2:"12"}),(0,i.jsx)("line",{x1:"10",x2:"21",y1:"18",y2:"18"}),(0,i.jsx)("path",{d:"M4 6h1v4"}),(0,i.jsx)("path",{d:"M4 10h2"}),(0,i.jsx)("path",{d:"M6 18H4c0-1 2-2 2-3s-1-1.5-2-1"})]}),S=(0,i.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,i.jsx)("path",{d:"M3 21c3 0 7-1 7-8V5c0-1.25-.756-2.017-2-2H4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1 0 1 1v1c0 1-1 2-2 2s-1 .008-1 1.031V21z"}),(0,i.jsx)("path",{d:"M15 21c3 0 7-1 7-8V5c0-1.25-.757-2.017-2-2h-4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2h.75c0 2.25.25 4-2.75 4v3z"})]}),H=(0,i.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,i.jsx)("polyline",{points:"16 18 22 12 16 6"}),(0,i.jsx)("polyline",{points:"8 6 2 12 8 18"})]}),W=(0,i.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,i.jsx)("line",{x1:"2",x2:"22",y1:"12",y2:"12"})}),T=(0,i.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,i.jsx)("rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2"}),(0,i.jsx)("circle",{cx:"9",cy:"9",r:"2"}),(0,i.jsx)("path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"})]}),E=(0,i.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,i.jsx)("path",{d:"M12 3v18"}),(0,i.jsx)("rect",{width:"18",height:"18",x:"3",y:"3",rx:"2"}),(0,i.jsx)("path",{d:"M3 9h18"}),(0,i.jsx)("path",{d:"M3 15h18"})]}),O=(0,i.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,i.jsx)("rect",{x:"3",y:"5",width:"6",height:"6",rx:"1"}),(0,i.jsx)("path",{d:"m3 17 2 2 4-4"}),(0,i.jsx)("line",{x1:"13",x2:"21",y1:"6",y2:"6"}),(0,i.jsx)("line",{x1:"13",x2:"21",y1:"18",y2:"18"})]}),V=(0,i.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,i.jsx)("line",{x1:"12",x2:"12",y1:"20",y2:"10"}),(0,i.jsx)("line",{x1:"18",x2:"18",y1:"20",y2:"4"}),(0,i.jsx)("line",{x1:"6",x2:"6",y1:"20",y2:"14"})]}),D=(0,i.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,i.jsx)("path",{d:"M16 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8Z"}),(0,i.jsx)("path",{d:"M15 3v4a2 2 0 0 0 2 2h4"}),(0,i.jsx)("path",{d:"M10 16h4"}),(0,i.jsx)("path",{d:"M10 12h4"})]});function z(e){var t;if("entry"===e.kind){let t=e.label||"(".concat(e.objectName," entry)");return{title:t,description:e.fields?Object.entries(e.fields).slice(0,2).map(e=>{let[t,n]=e;return"".concat(t,": ").concat(n)}).join(" | "):void 0,badge:e.objectName,icon:D,category:"entry",command:n=>{let{editor:i,range:r}=n,o=(0,B.VE)(e.objectName,e.entryId);i.chain().focus().deleteRange(r).insertContent({type:"text",text:t,marks:[{type:"link",attrs:{href:o,target:null}}]}).run()}}}let n=null!=(t=e.nodeType)?t:"object"===e.kind?"object":"file",r=e.label||e.path||e.id;return{title:r,description:e.sublabel,icon:function(e){switch(e){case"document":default:return(0,i.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,i.jsx)("path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"}),(0,i.jsx)("path",{d:"M14 2v4a2 2 0 0 0 2 2h4"})]});case"object":return(0,i.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,i.jsx)("path",{d:"M12 3v18"}),(0,i.jsx)("rect",{width:"18",height:"18",x:"3",y:"3",rx:"2"}),(0,i.jsx)("path",{d:"M3 9h18"}),(0,i.jsx)("path",{d:"M3 15h18"})]});case"report":return(0,i.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,i.jsx)("line",{x1:"12",x2:"12",y1:"20",y2:"10"}),(0,i.jsx)("line",{x1:"18",x2:"18",y1:"20",y2:"4"}),(0,i.jsx)("line",{x1:"6",x2:"6",y1:"20",y2:"14"})]})}}(n),category:"file",command:t=>{var n;let{editor:i,range:o}=t,s=(0,B.bJ)(null!=(n=e.path)?n:e.id);i.chain().focus().deleteRange(o).insertContent({type:"text",text:r,marks:[{type:"link",attrs:{href:s,target:null}}]}).run()}}}let P=(0,v.forwardRef)((e,t)=>{let{items:n,command:r}=e,[o,s]=(0,v.useState)(0),l=(0,v.useRef)(null);(0,v.useEffect)(()=>{s(0)},[n]),(0,v.useEffect)(()=>{var e;let t=null==(e=l.current)?void 0:e.children[o];null==t||t.scrollIntoView({block:"nearest"})},[o]);let c=(0,v.useCallback)(e=>{let t=n[e];t&&r(t)},[n,r]);return((0,v.useImperativeHandle)(t,()=>({onKeyDown:e=>{let{event:t}=e;return"ArrowUp"===t.key?(s(e=>(e+n.length-1)%n.length),!0):"ArrowDown"===t.key?(s(e=>(e+1)%n.length),!0):"Enter"===t.key&&(c(o),!0)}})),0===n.length)?(0,i.jsx)("div",{className:"slash-cmd-popup",children:(0,i.jsx)("div",{className:"slash-cmd-empty",children:"No results"})}):(0,i.jsx)("div",{className:"slash-cmd-popup",ref:l,children:n.map((e,t)=>(0,i.jsxs)("button",{type:"button",className:"slash-cmd-item ".concat(t===o?"slash-cmd-item-active":""),onClick:()=>c(t),onMouseEnter:()=>s(t),children:[(0,i.jsx)("span",{className:"slash-cmd-item-icon",children:e.icon}),(0,i.jsxs)("span",{className:"slash-cmd-item-body",children:[(0,i.jsxs)("span",{className:"slash-cmd-item-title",children:[e.title,e.badge&&(0,i.jsx)("span",{className:"slash-cmd-item-badge",children:e.badge})]}),e.description&&(0,i.jsx)("span",{className:"slash-cmd-item-desc",children:e.description})]})]},"".concat(e.category,"-").concat(e.title,"-").concat(t)))})});function q(e){let{items:t,command:n,clientRect:r,componentRef:o}=e,s=(0,v.useRef)(null);return(0,v.useLayoutEffect)(()=>{if(!s.current||!r)return;let e=r();if(!e)return;let t=s.current;t.style.position="fixed",t.style.left="".concat(e.left,"px"),t.style.top="".concat(e.bottom+4,"px"),t.style.zIndex="50"},[r,t]),(0,C.createPortal)((0,i.jsx)("div",{ref:s,children:(0,i.jsx)(P,{ref:o,items:t,command:n})}),document.body)}function U(){return()=>{let e=null,t=null,r={current:null};return{onStart:o=>{e=document.createElement("div"),document.body.appendChild(e),Promise.resolve().then(n.t.bind(n,80282,19)).then(n=>{let{createRoot:s}=n;(t=s(e)).render((0,i.jsx)(q,{items:o.items,command:o.command,clientRect:o.clientRect,componentRef:r}))})},onUpdate:e=>{null==t||t.render((0,i.jsx)(q,{items:e.items,command:e.command,clientRect:e.clientRect,componentRef:r}))},onKeyDown:n=>{var i,o;return"Escape"===n.event.key?(null==t||t.unmount(),null==e||e.remove(),e=null,t=null,!0):null!=(o=null==(i=r.current)?void 0:i.onKeyDown(n))&&o},onExit:()=>{null==t||t.unmount(),null==e||e.remove(),e=null,t=null}}}}function J(e){return j.YY.create({name:"fileMention",addOptions:()=>({suggestion:{char:"@",pluginKey:N,startOfLine:!1,command:e=>{let{editor:t,range:n,props:i}=e;i.command({editor:t,range:n})},items:t=>{let{query:n}=t;return e(n,15).map(z)},render:U()}}),addProseMirrorPlugins(){return[(0,w.Ay)({editor:this.editor,...this.options.suggestion})]}})}P.displayName="CommandList";var _=n(77704),K=n(90425);function $(e){let t=e.match(/^(---\s*\n[\s\S]*?\n---\s*\n)/);return t?t[1]:""}function Q(e){var t;let{content:n,rawContent:m,filePath:f,tree:L,onSave:C,onNavigate:N,searchFn:D}=e,[z,P]=(0,v.useState)(!1),[q,Q]=(0,v.useState)("idle"),[Y,Z]=(0,v.useState)(!1),G=(0,v.useRef)(n),X=(0,v.useRef)(null),ee=(0,v.useRef)($(null!=m?m:"")),et=(0,v.useMemo)(()=>(function(){let e=[{title:"Heading 1",description:"Large section heading",icon:A(1),category:"block",command:e=>{let{editor:t,range:n}=e;t.chain().focus().deleteRange(n).setNode("heading",{level:1}).run()}},{title:"Heading 2",description:"Medium section heading",icon:A(2),category:"block",command:e=>{let{editor:t,range:n}=e;t.chain().focus().deleteRange(n).setNode("heading",{level:2}).run()}},{title:"Heading 3",description:"Small section heading",icon:A(3),category:"block",command:e=>{let{editor:t,range:n}=e;t.chain().focus().deleteRange(n).setNode("heading",{level:3}).run()}},{title:"Bullet List",description:"Unordered list",icon:I,category:"block",command:e=>{let{editor:t,range:n}=e;t.chain().focus().deleteRange(n).toggleBulletList().run()}},{title:"Numbered List",description:"Ordered list",icon:R,category:"block",command:e=>{let{editor:t,range:n}=e;t.chain().focus().deleteRange(n).toggleOrderedList().run()}},{title:"Task List",description:"Checklist with checkboxes",icon:O,category:"block",command:e=>{let{editor:t,range:n}=e;t.chain().focus().deleteRange(n).toggleTaskList().run()}},{title:"Blockquote",description:"Quote block",icon:S,category:"block",command:e=>{let{editor:t,range:n}=e;t.chain().focus().deleteRange(n).toggleBlockquote().run()}},{title:"Code Block",description:"Fenced code block",icon:H,category:"block",command:e=>{let{editor:t,range:n}=e;t.chain().focus().deleteRange(n).toggleCodeBlock().run()}},{title:"Horizontal Rule",description:"Divider line",icon:W,category:"block",command:e=>{let{editor:t,range:n}=e;t.chain().focus().deleteRange(n).setHorizontalRule().run()}},{title:"Image",description:"Insert image from URL",icon:T,category:"block",command:e=>{let{editor:t,range:n}=e,i=window.prompt("Image URL:");i&&t.chain().focus().deleteRange(n).setImage({src:i}).run()}},{title:"Table",description:"Insert a 3x3 table",icon:E,category:"block",command:e=>{let{editor:t,range:n}=e;t.chain().focus().deleteRange(n).insertTable({rows:3,cols:3,withHeaderRow:!0}).run()}},{title:"Report Chart",description:"Interactive report-json block",icon:V,category:"block",command:e=>{let{editor:t,range:n}=e,i=JSON.stringify({version:1,title:"New Report",panels:[{id:"panel-1",title:"Chart",type:"bar",sql:"SELECT 1 as x, 10 as y",mapping:{xAxis:"x",yAxis:["y"]}}]},null,2);t.chain().focus().deleteRange(n).insertContent({type:"reportBlock",attrs:{config:i}}).run()}}];return j.YY.create({name:"slashCommand",addOptions:()=>({suggestion:{char:"/",pluginKey:M,startOfLine:!1,command:e=>{let{editor:t,range:n,props:i}=e;i.command({editor:t,range:n})},items:t=>{let{query:n}=t,i=n.toLowerCase();return i?e.filter(e=>{var t,n;return e.title.toLowerCase().includes(i)||null!=(n=null==(t=e.description)?void 0:t.toLowerCase().includes(i))&&n}):e},render:U()}}),addProseMirrorPlugins(){return[(0,w.Ay)({editor:this.editor,...this.options.suggestion})]}})})(),[]),en=(0,v.useMemo)(()=>D?J(D):function(e){let t=(function e(t){let n=[];for(let i of t)"folder"!==i.type&&n.push(i),i.children&&n.push(...e(i.children));return n})(e).map(e=>({id:e.path,label:e.name.replace(/\.md$/,""),sublabel:e.path,kind:"object"===e.type?"object":"file",path:e.path,nodeType:e.type}));return J(function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:15;if(!e)return t.slice(0,n);let i=e.toLowerCase();return t.filter(e=>{var t,n;return e.label.toLowerCase().includes(i)||null!=(n=null==(t=e.sublabel)?void 0:t.toLowerCase().includes(i))&&n}).slice(0,n)})}(L),[D,L]),ei=(0,r.hG)({extensions:[s.A.configure({codeBlock:{HTMLAttributes:{class:"code-block"}}}),l.oz.configure({markedOptions:{gfm:!0}}),c.Ay.configure({inline:!1,allowBase64:!0,HTMLAttributes:{class:"editor-image"}}),a.Ay.configure({openOnClick:!1,autolink:!0,HTMLAttributes:{class:"editor-link",rel:"noopener"}}),d.XI.configure({resizable:!1}),h.A,u.A,p.h,x.A,g.A.configure({nested:!0}),k.A.configure({placeholder:"Start writing, or type / for commands..."}),y,et,en],content:b(n),contentType:"markdown",immediatelyRender:!1,onUpdate:()=>{Z(!0),Q("idle")}}),er=(0,v.useCallback)(async e=>{let t=new FormData;t.append("file",e);try{let e=await fetch("/api/workspace/upload",{method:"POST",body:t});if(!e.ok)return null;let n=await e.json();return"/api/workspace/assets/".concat(n.path.replace(/^assets\//,""))}catch(e){return null}},[]),eo=(0,v.useCallback)(async e=>{if(ei)for(let t of e){let e=await er(t);e&&ei.chain().focus().setImage({src:e,alt:t.name}).run()}},[ei,er]);(0,v.useEffect)(()=>{if(!ei)return;let e=ei.view.dom,t=e=>{var t,n;if(!(null==(n=e.dataTransfer)||null==(t=n.files)?void 0:t.length))return;let i=Array.from(e.dataTransfer.files).filter(e=>e.type.startsWith("image/"));0!==i.length&&(e.preventDefault(),e.stopPropagation(),eo(i))},n=e=>{var t,n;(null==(n=e.dataTransfer)||null==(t=n.types)?void 0:t.includes("Files"))&&e.preventDefault()},i=e=>{if(!e.clipboardData)return;let t=Array.from(e.clipboardData.files).filter(e=>e.type.startsWith("image/"));if(t.length>0){e.preventDefault(),e.stopPropagation(),eo(t);return}let n=e.clipboardData.getData("text/plain");if(n&&(n.startsWith("file://")||/^(\/|~\/|[A-Z]:\\).*\.(png|jpe?g|gif|webp|svg|bmp|ico)$/i.test(n.trim()))){e.preventDefault(),e.stopPropagation();let t=n.trim().replace(/^file:\/\//,"");null==ei||ei.chain().focus().setImage({src:t}).run()}};return e.addEventListener("drop",t),e.addEventListener("dragover",n),e.addEventListener("paste",i),()=>{e.removeEventListener("drop",t),e.removeEventListener("dragover",n),e.removeEventListener("paste",i)}},[ei,eo]),(0,v.useEffect)(()=>{if(!ei||!N)return;let e=e=>{let t=e.target.closest("a");if(!t)return;let n=t.getAttribute("href");if(n){if(n.startsWith("#")){var i;e.preventDefault(),e.stopPropagation();let t=n.slice(1),r=ei.view.dom,o=null!=(i=r.querySelector('[id="'.concat(CSS.escape(t),'"]')))?i:r.querySelector("h1, h2, h3, h4, h5, h6");if(o){let e=Array.from(r.querySelectorAll("h1, h2, h3, h4, h5, h6")).find(e=>(e.textContent||"").trim().toLowerCase().replace(/[^\w\s-]/g,"").replace(/\s+/g,"-")===t);(null!=e?e:o).scrollIntoView({behavior:"smooth",block:"start"})}return}if((0,B.m9)(n)||!n.startsWith("http://")&&!n.startsWith("https://")&&!n.startsWith("mailto:")){e.preventDefault(),e.stopPropagation(),N(n);return}e.preventDefault(),e.stopPropagation(),window.open(n,"_blank","noopener,noreferrer")}},t=ei.view.dom;return t.addEventListener("click",e,!0),()=>t.removeEventListener("click",e,!0)},[ei,N]);let es=(0,v.useCallback)(async()=>{if(ei&&!z){P(!0),Q("idle");try{let e=("function"==typeof ei.getMarkdown?ei.getMarkdown():ei.getHTML()).replace(/<div data-type="report-block" data-config="([^"]*)">\s*<\/div>/g,(e,t)=>"```report-json\n"+t.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&quot;/g,'"').replace(/&amp;/g,"&")+"\n```"),t=ee.current+e;(await fetch((0,K.nC)(f),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:f,content:t})})).ok?(Q("saved"),Z(!1),G.current=n,null==C||C(),X.current&&clearTimeout(X.current),X.current=setTimeout(()=>Q("idle"),2e3)):Q("error")}catch(e){Q("error")}finally{P(!1)}}},[ei,f,z,C]);return((0,v.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&"s"===e.key&&(e.preventDefault(),es())};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[es]),(0,v.useEffect)(()=>{if(ei&&!Y&&n!==G.current){G.current=n,ee.current=$(null!=m?m:"");let e=b(n);ei.commands.setContent(e,{contentType:"markdown"}),Z(!1)}},[n,m,ei,Y]),ei)?(0,i.jsxs)("div",{className:"markdown-editor-container",children:[(0,i.jsxs)("div",{className:"editor-top-bar",children:[(0,i.jsxs)("div",{className:"editor-top-bar-left",children:[Y&&(0,i.jsx)("span",{className:"editor-save-indicator editor-save-unsaved",children:"Unsaved changes"}),"saved"===q&&!Y&&(0,i.jsx)("span",{className:"editor-save-indicator editor-save-saved",children:"Saved"}),"error"===q&&(0,i.jsx)("span",{className:"editor-save-indicator editor-save-error",children:"Save failed"})]}),(0,i.jsxs)("div",{className:"editor-top-bar-right",children:[(0,i.jsxs)("span",{className:"editor-save-hint",children:["undefined"!=typeof navigator&&(null==(t=navigator.platform)?void 0:t.includes("Mac"))?"⌘":"Ctrl","+S"]}),(0,i.jsx)("button",{type:"button",onClick:()=>void es(),disabled:z||!Y,className:"editor-save-button",children:z?"Saving...":"Save"})]})]}),(0,i.jsx)(F,{editor:ei,onUploadImages:eo}),(0,i.jsx)(o.m,{editor:ei,children:(0,i.jsxs)("div",{className:"bubble-menu",children:[(0,i.jsx)(_.zM,{active:ei.isActive("bold"),onClick:()=>ei.chain().focus().toggleBold().run(),title:"Bold",children:(0,i.jsx)("strong",{children:"B"})}),(0,i.jsx)(_.zM,{active:ei.isActive("italic"),onClick:()=>ei.chain().focus().toggleItalic().run(),title:"Italic",children:(0,i.jsx)("em",{children:"I"})}),(0,i.jsx)(_.zM,{active:ei.isActive("strike"),onClick:()=>ei.chain().focus().toggleStrike().run(),title:"Strikethrough",children:(0,i.jsx)("s",{children:"S"})}),(0,i.jsx)(_.zM,{active:ei.isActive("code"),onClick:()=>ei.chain().focus().toggleCode().run(),title:"Inline code",children:"<>"}),(0,i.jsx)(_.zM,{active:ei.isActive("link"),onClick:()=>{if(ei.isActive("link"))ei.chain().focus().unsetLink().run();else{let e=window.prompt("URL:");e&&ei.chain().focus().setLink({href:e}).run()}},title:"Link",children:(0,i.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,i.jsx)("path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}),(0,i.jsx)("path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"})]})})]})}),(0,i.jsx)("div",{className:"editor-content-area workspace-prose",children:(0,i.jsx)(r.$Z,{editor:ei})})]}):(0,i.jsxs)("div",{className:"animate-pulse space-y-3 py-4 px-6",children:[(0,i.jsx)("div",{className:"h-4 rounded",style:{background:"var(--color-surface)",width:"80%"}}),(0,i.jsx)("div",{className:"h-4 rounded",style:{background:"var(--color-surface)",width:"60%"}}),(0,i.jsx)("div",{className:"h-4 rounded",style:{background:"var(--color-surface)",width:"70%"}})]})}function F(e){let{editor:t,onUploadImages:n}=e,r=(0,v.useRef)(null);return t?(0,i.jsxs)("div",{className:"editor-toolbar",children:[(0,i.jsxs)(_.$Q,{children:[(0,i.jsx)(_.IB,{active:t.isActive("heading",{level:1}),onClick:()=>t.chain().focus().toggleHeading({level:1}).run(),title:"Heading 1",children:"H1"}),(0,i.jsx)(_.IB,{active:t.isActive("heading",{level:2}),onClick:()=>t.chain().focus().toggleHeading({level:2}).run(),title:"Heading 2",children:"H2"}),(0,i.jsx)(_.IB,{active:t.isActive("heading",{level:3}),onClick:()=>t.chain().focus().toggleHeading({level:3}).run(),title:"Heading 3",children:"H3"})]}),(0,i.jsx)(_.x_,{}),(0,i.jsxs)(_.$Q,{children:[(0,i.jsx)(_.IB,{active:t.isActive("bold"),onClick:()=>t.chain().focus().toggleBold().run(),title:"Bold",children:(0,i.jsx)("strong",{children:"B"})}),(0,i.jsx)(_.IB,{active:t.isActive("italic"),onClick:()=>t.chain().focus().toggleItalic().run(),title:"Italic",children:(0,i.jsx)("em",{children:"I"})}),(0,i.jsx)(_.IB,{active:t.isActive("strike"),onClick:()=>t.chain().focus().toggleStrike().run(),title:"Strikethrough",children:(0,i.jsx)("s",{children:"S"})}),(0,i.jsx)(_.IB,{active:t.isActive("code"),onClick:()=>t.chain().focus().toggleCode().run(),title:"Inline code",children:"<>"})]}),(0,i.jsx)(_.x_,{}),(0,i.jsxs)(_.$Q,{children:[(0,i.jsx)(_.IB,{active:t.isActive("bulletList"),onClick:()=>t.chain().focus().toggleBulletList().run(),title:"Bullet list",children:(0,i.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,i.jsx)("line",{x1:"8",x2:"21",y1:"6",y2:"6"}),(0,i.jsx)("line",{x1:"8",x2:"21",y1:"12",y2:"12"}),(0,i.jsx)("line",{x1:"8",x2:"21",y1:"18",y2:"18"}),(0,i.jsx)("line",{x1:"3",x2:"3.01",y1:"6",y2:"6"}),(0,i.jsx)("line",{x1:"3",x2:"3.01",y1:"12",y2:"12"}),(0,i.jsx)("line",{x1:"3",x2:"3.01",y1:"18",y2:"18"})]})}),(0,i.jsx)(_.IB,{active:t.isActive("orderedList"),onClick:()=>t.chain().focus().toggleOrderedList().run(),title:"Ordered list",children:(0,i.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,i.jsx)("line",{x1:"10",x2:"21",y1:"6",y2:"6"}),(0,i.jsx)("line",{x1:"10",x2:"21",y1:"12",y2:"12"}),(0,i.jsx)("line",{x1:"10",x2:"21",y1:"18",y2:"18"}),(0,i.jsx)("path",{d:"M4 6h1v4"}),(0,i.jsx)("path",{d:"M4 10h2"}),(0,i.jsx)("path",{d:"M6 18H4c0-1 2-2 2-3s-1-1.5-2-1"})]})}),(0,i.jsx)(_.IB,{active:t.isActive("taskList"),onClick:()=>t.chain().focus().toggleTaskList().run(),title:"Task list",children:(0,i.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,i.jsx)("rect",{x:"3",y:"5",width:"6",height:"6",rx:"1"}),(0,i.jsx)("path",{d:"m3 17 2 2 4-4"}),(0,i.jsx)("line",{x1:"13",x2:"21",y1:"6",y2:"6"}),(0,i.jsx)("line",{x1:"13",x2:"21",y1:"18",y2:"18"})]})}),(0,i.jsx)(_.IB,{active:t.isActive("blockquote"),onClick:()=>t.chain().focus().toggleBlockquote().run(),title:"Blockquote",children:(0,i.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,i.jsx)("path",{d:"M3 21c3 0 7-1 7-8V5c0-1.25-.756-2.017-2-2H4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1 0 1 1v1c0 1-1 2-2 2s-1 .008-1 1.031V21z"}),(0,i.jsx)("path",{d:"M15 21c3 0 7-1 7-8V5c0-1.25-.757-2.017-2-2h-4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2h.75c0 2.25.25 4-2.75 4v3z"})]})}),(0,i.jsx)(_.IB,{active:t.isActive("codeBlock"),onClick:()=>t.chain().focus().toggleCodeBlock().run(),title:"Code block",children:(0,i.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,i.jsx)("polyline",{points:"16 18 22 12 16 6"}),(0,i.jsx)("polyline",{points:"8 6 2 12 8 18"})]})})]}),(0,i.jsx)(_.x_,{}),(0,i.jsxs)(_.$Q,{children:[(0,i.jsx)(_.IB,{active:!1,onClick:()=>{let e=window.prompt("Link URL:");e&&t.chain().focus().setLink({href:e}).run()},title:"Insert link",children:(0,i.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,i.jsx)("path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}),(0,i.jsx)("path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"})]})}),(0,i.jsx)(_.IB,{active:!1,onClick:()=>{if(n){var e;null==(e=r.current)||e.click()}else{let e=window.prompt("Image URL:");e&&t.chain().focus().setImage({src:e}).run()}},title:"Insert image (click to upload, or drag & drop)",children:(0,i.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,i.jsx)("rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2"}),(0,i.jsx)("circle",{cx:"9",cy:"9",r:"2"}),(0,i.jsx)("path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"})]})}),(0,i.jsx)("input",{ref:r,type:"file",accept:"image/*",multiple:!0,className:"hidden",onChange:e=>{var t;let i=Array.from(null!=(t=e.target.files)?t:[]);i.length>0&&n&&n(i),e.target.value=""}}),(0,i.jsx)(_.IB,{active:!1,onClick:()=>{t.chain().focus().insertTable({rows:3,cols:3,withHeaderRow:!0}).run()},title:"Insert table",children:(0,i.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,i.jsx)("path",{d:"M12 3v18"}),(0,i.jsx)("rect",{width:"18",height:"18",x:"3",y:"3",rx:"2"}),(0,i.jsx)("path",{d:"M3 9h18"}),(0,i.jsx)("path",{d:"M3 15h18"})]})}),(0,i.jsx)(_.IB,{active:!1,onClick:()=>{t.chain().focus().setHorizontalRule().run()},title:"Horizontal rule",children:(0,i.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,i.jsx)("line",{x1:"2",x2:"22",y1:"12",y2:"12"})})})]})]}):null}}}]);
@@ -1,60 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4652],{64652:(e,t,r)=>{r.d(t,{oz:()=>eS});var n=r(79534);function s(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var i=s(),l={exec:()=>null};function a(e,t=""){let r="string"==typeof e?e:e.source,n={replace:(e,t)=>{let s="string"==typeof t?t:t.source;return s=s.replace(h.caret,"$1"),r=r.replace(e,s),n},getRegex:()=>new RegExp(r,t)};return n}var o=(()=>{try{return!!RegExp("(?<=1)(?<!1)")}catch{return!1}})(),h={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i"),blockquoteBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}>`)},p=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,c=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,u=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,k=a(u).replace(/bull/g,c).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),d=a(u).replace(/bull/g,c).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),g=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,f=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,x=a(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",f).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),m=a(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,c).getRegex(),b="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",w=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,y=a("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",w).replace("tag",b).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),T=a(g).replace("hr",p).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",b).getRegex(),R={blockquote:a(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",T).getRegex(),code:/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,def:x,fences:/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,hr:p,html:y,lheading:k,list:m,newline:/^(?:[ \t]*(?:\n|$))+/,paragraph:T,table:l,text:/^[^\n]+/},$=a("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",p).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",b).getRegex(),S={...R,lheading:d,table:$,paragraph:a(g).replace("hr",p).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",$).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",b).getRegex()},A={...R,html:a(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",w).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:l,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:a(g).replace("hr",p).replace("heading",` *#{1,6} *[^
2
- ]`).replace("lheading",k).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},z=/^( {2,}|\\)\n(?!\s*$)/,P=/[\p{P}\p{S}]/u,I=/[\s\p{P}\p{S}]/u,M=/[^\s\p{P}\p{S}]/u,_=a(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,I).getRegex(),v=/(?!~)[\p{P}\p{S}]/u,E=/(?![*_])[\p{P}\p{S}]/u,C=a(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",o?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),L=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,B=a(L,"u").replace(/punct/g,P).getRegex(),q=a(L,"u").replace(/punct/g,v).getRegex(),H="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",O=a(H,"gu").replace(/notPunctSpace/g,M).replace(/punctSpace/g,I).replace(/punct/g,P).getRegex(),N=a(H,"gu").replace(/notPunctSpace/g,/(?:[^\s\p{P}\p{S}]|~)/u).replace(/punctSpace/g,/(?!~)[\s\p{P}\p{S}]/u).replace(/punct/g,v).getRegex(),D=a("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,M).replace(/punctSpace/g,I).replace(/punct/g,P).getRegex(),Z=a(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,E).getRegex(),F=a("^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)","gu").replace(/notPunctSpace/g,/(?:[^\s\p{P}\p{S}]|[*_])/u).replace(/punctSpace/g,/(?![*_])[\s\p{P}\p{S}]/u).replace(/punct/g,E).getRegex(),j=a(/\\(punct)/,"gu").replace(/punct/g,P).getRegex(),Q=a(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),W=a(w).replace("(?:--\x3e|$)","--\x3e").getRegex(),G=a("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",W).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),X=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+[^`]*?`+(?!`)|[^\[\]\\`])*?/,U=a(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",X).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),K=a(/^!?\[(label)\]\[(ref)\]/).replace("label",X).replace("ref",f).getRegex(),Y=a(/^!?\[(ref)\](?:\[\])?/).replace("ref",f).getRegex(),J=a("reflink|nolink(?!\\()","g").replace("reflink",K).replace("nolink",Y).getRegex(),V=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,ee={_backpedal:l,anyPunctuation:j,autolink:Q,blockSkip:C,br:z,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,del:l,delLDelim:l,delRDelim:l,emStrongLDelim:B,emStrongRDelimAst:O,emStrongRDelimUnd:D,escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,link:U,nolink:Y,punctuation:_,reflink:K,reflinkSearch:J,tag:G,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,url:l},et={...ee,link:a(/^!?\[(label)\]\((.*?)\)/).replace("label",X).getRegex(),reflink:a(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",X).getRegex()},er={...ee,emStrongRDelimAst:N,emStrongLDelim:q,delLDelim:Z,delRDelim:F,url:a(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",V).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:a(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",V).getRegex()},en={...er,br:a(z).replace("{2,}","*").getRegex(),text:a(er.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},es={normal:R,gfm:S,pedantic:A},ei={normal:ee,gfm:er,breaks:en,pedantic:et},el={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},ea=e=>el[e];function eo(e,t){if(t){if(h.escapeTest.test(e))return e.replace(h.escapeReplace,ea)}else if(h.escapeTestNoEncode.test(e))return e.replace(h.escapeReplaceNoEncode,ea);return e}function eh(e){try{e=encodeURI(e).replace(h.percentDecode,"%")}catch{return null}return e}function ep(e,t){let r=e.replace(h.findPipe,(e,t,r)=>{let n=!1,s=t;for(;--s>=0&&"\\"===r[s];)n=!n;return n?"|":" |"}).split(h.splitPipe),n=0;if(r[0].trim()||r.shift(),r.length>0&&!r.at(-1)?.trim()&&r.pop(),t)if(r.length>t)r.splice(t);else for(;r.length<t;)r.push("");for(;n<r.length;n++)r[n]=r[n].trim().replace(h.slashPipe,"|");return r}function ec(e,t,r){let n=e.length;if(0===n)return"";let s=0;for(;s<n;){let i=e.charAt(n-s-1);if(i!==t||r)if(i!==t&&r)s++;else break;else s++}return e.slice(0,n-s)}function eu(e,t,r,n,s){let i=t.href,l=t.title||null,a=e[1].replace(s.other.outputLinkReplace,"$1");n.state.inLink=!0;let o={type:"!"===e[0].charAt(0)?"image":"link",raw:r,href:i,title:l,text:a,tokens:n.inlineTokens(a)};return n.state.inLink=!1,o}var ek=class{options;rules;lexer;constructor(e){this.options=e||i}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let e=t[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?e:ec(e,`
3
- `)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let e=t[0],r=function(e,t,r){let n=e.match(r.other.indentCodeCompensation);if(null===n)return t;let s=n[1];return t.split(`
4
- `).map(e=>{let t=e.match(r.other.beginningSpace);if(null===t)return e;let[n]=t;return n.length>=s.length?e.slice(s.length):e}).join(`
5
- `)}(e,t[3]||"",this.rules);return{type:"code",raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:r}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(this.rules.other.endingHash.test(e)){let t=ec(e,"#");(this.options.pedantic||!t||this.rules.other.endingSpaceChar.test(t))&&(e=t.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:ec(t[0],`
6
- `)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let e=ec(t[0],`
7
- `).split(`
8
- `),r="",n="",s=[];for(;e.length>0;){let t=!1,i=[],l;for(l=0;l<e.length;l++)if(this.rules.other.blockquoteStart.test(e[l]))i.push(e[l]),t=!0;else if(t)break;else i.push(e[l]);e=e.slice(l);let a=i.join(`
9
- `),o=a.replace(this.rules.other.blockquoteSetextReplace,`
10
- $1`).replace(this.rules.other.blockquoteSetextReplace2,"");r=r?`${r}
11
- ${a}`:a,n=n?`${n}
12
- ${o}`:o;let h=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(o,s,!0),this.lexer.state.top=h,0===e.length)break;let p=s.at(-1);if(p?.type==="code")break;if(p?.type==="blockquote"){let t=p.raw+`
13
- `+e.join(`
14
- `),i=this.blockquote(t);s[s.length-1]=i,r=r.substring(0,r.length-p.raw.length)+i.raw,n=n.substring(0,n.length-p.text.length)+i.text;break}if(p?.type==="list"){let t=p.raw+`
15
- `+e.join(`
16
- `),i=this.list(t);s[s.length-1]=i,r=r.substring(0,r.length-p.raw.length)+i.raw,n=n.substring(0,n.length-p.raw.length)+i.raw,e=t.substring(s.at(-1).raw.length).split(`
17
- `);continue}}return{type:"blockquote",raw:r,tokens:s,text:n}}}list(e){let t=this.rules.block.list.exec(e);if(t){let r=t[1].trim(),n=r.length>1,s={type:"list",raw:"",ordered:n,start:n?+r.slice(0,-1):"",loose:!1,items:[]};r=n?`\\d{1,9}\\${r.slice(-1)}`:`\\${r}`,this.options.pedantic&&(r=n?r:"[*+-]");let i=this.rules.other.listItemRegex(r),l=!1;for(;e;){let r=!1,n="",a="";if(!(t=i.exec(e))||this.rules.block.hr.test(e))break;n=t[0],e=e.substring(n.length);let o=function(e,t=0){let r=t,n="";for(let t of e)if(" "===t){let e=4-r%4;n+=" ".repeat(e),r+=e}else n+=t,r++;return n}(t[2].split(`
18
- `,1)[0],t[1].length),h=e.split(`
19
- `,1)[0],p=!o.trim(),c=0;if(this.options.pedantic?(c=2,a=o.trimStart()):p?c=t[1].length+1:(c=(c=o.search(this.rules.other.nonSpaceChar))>4?1:c,a=o.slice(c),c+=t[1].length),p&&this.rules.other.blankLine.test(h)&&(n+=h+`
20
- `,e=e.substring(h.length+1),r=!0),!r){let t=this.rules.other.nextBulletRegex(c),r=this.rules.other.hrRegex(c),s=this.rules.other.fencesBeginRegex(c),i=this.rules.other.headingBeginRegex(c),l=this.rules.other.htmlBeginRegex(c),u=this.rules.other.blockquoteBeginRegex(c);for(;e;){let k=e.split(`
21
- `,1)[0],d;if(h=k,d=this.options.pedantic?h=h.replace(this.rules.other.listReplaceNesting," "):h.replace(this.rules.other.tabCharGlobal," "),s.test(h)||i.test(h)||l.test(h)||u.test(h)||t.test(h)||r.test(h))break;if(d.search(this.rules.other.nonSpaceChar)>=c||!h.trim())a+=`
22
- `+d.slice(c);else{if(p||o.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||s.test(o)||i.test(o)||r.test(o))break;a+=`
23
- `+h}p=!h.trim(),n+=k+`
24
- `,e=e.substring(k.length+1),o=d.slice(c)}}s.loose||(l?s.loose=!0:this.rules.other.doubleBlankLine.test(n)&&(l=!0)),s.items.push({type:"list_item",raw:n,task:!!this.options.gfm&&this.rules.other.listIsTask.test(a),loose:!1,text:a,tokens:[]}),s.raw+=n}let a=s.items.at(-1);if(!a)return;for(let e of(a.raw=a.raw.trimEnd(),a.text=a.text.trimEnd(),s.raw=s.raw.trimEnd(),s.items)){if(this.lexer.state.top=!1,e.tokens=this.lexer.blockTokens(e.text,[]),e.task){if(e.text=e.text.replace(this.rules.other.listReplaceTask,""),e.tokens[0]?.type==="text"||e.tokens[0]?.type==="paragraph"){e.tokens[0].raw=e.tokens[0].raw.replace(this.rules.other.listReplaceTask,""),e.tokens[0].text=e.tokens[0].text.replace(this.rules.other.listReplaceTask,"");for(let e=this.lexer.inlineQueue.length-1;e>=0;e--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[e].src)){this.lexer.inlineQueue[e].src=this.lexer.inlineQueue[e].src.replace(this.rules.other.listReplaceTask,"");break}}let t=this.rules.other.listTaskCheckbox.exec(e.raw);if(t){let r={type:"checkbox",raw:t[0]+" ",checked:"[ ]"!==t[0]};e.checked=r.checked,s.loose?e.tokens[0]&&["paragraph","text"].includes(e.tokens[0].type)&&"tokens"in e.tokens[0]&&e.tokens[0].tokens?(e.tokens[0].raw=r.raw+e.tokens[0].raw,e.tokens[0].text=r.raw+e.tokens[0].text,e.tokens[0].tokens.unshift(r)):e.tokens.unshift({type:"paragraph",raw:r.raw,text:r.raw,tokens:[r]}):e.tokens.unshift(r)}}if(!s.loose){let t=e.tokens.filter(e=>"space"===e.type);s.loose=t.length>0&&t.some(e=>this.rules.other.anyLine.test(e.raw))}}if(s.loose)for(let e of s.items)for(let t of(e.loose=!0,e.tokens))"text"===t.type&&(t.type="paragraph");return s}}html(e){let t=this.rules.block.html.exec(e);if(t)return{type:"html",block:!0,raw:t[0],pre:"pre"===t[1]||"script"===t[1]||"style"===t[1],text:t[0]}}def(e){let t=this.rules.block.def.exec(e);if(t){let e=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),r=t[2]?t[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",n=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):t[3];return{type:"def",tag:e,raw:t[0],href:r,title:n}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let r=ep(t[1]),n=t[2].replace(this.rules.other.tableAlignChars,"").split("|"),s=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,"").split(`
25
- `):[],i={type:"table",raw:t[0],header:[],align:[],rows:[]};if(r.length===n.length){for(let e of n)this.rules.other.tableAlignRight.test(e)?i.align.push("right"):this.rules.other.tableAlignCenter.test(e)?i.align.push("center"):this.rules.other.tableAlignLeft.test(e)?i.align.push("left"):i.align.push(null);for(let e=0;e<r.length;e++)i.header.push({text:r[e],tokens:this.lexer.inline(r[e]),header:!0,align:i.align[e]});for(let e of s)i.rows.push(ep(e,i.header.length).map((e,t)=>({text:e,tokens:this.lexer.inline(e),header:!1,align:i.align[t]})));return i}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t)return{type:"heading",raw:t[0],depth:"="===t[2].charAt(0)?1:2,text:t[1],tokens:this.lexer.inline(t[1])}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let e=t[1].charAt(t[1].length-1)===`
26
- `?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:e,tokens:this.lexer.inline(e)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let e=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(e)){if(!this.rules.other.endAngleBracket.test(e))return;let t=ec(e.slice(0,-1),"\\");if((e.length-t.length)%2==0)return}else{let e=function(e,t){if(-1===e.indexOf(")"))return -1;let r=0;for(let n=0;n<e.length;n++)if("\\"===e[n])n++;else if("("===e[n])r++;else if(e[n]===t[1]&&--r<0)return n;return r>0?-2:-1}(t[2],"()");if(-2===e)return;if(e>-1){let r=(0===t[0].indexOf("!")?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,r).trim(),t[3]=""}}let r=t[2],n="";if(this.options.pedantic){let e=this.rules.other.pedanticHrefTitle.exec(r);e&&(r=e[1],n=e[3])}else n=t[3]?t[3].slice(1,-1):"";return r=r.trim(),this.rules.other.startAngleBracket.test(r)&&(r=this.options.pedantic&&!this.rules.other.endAngleBracket.test(e)?r.slice(1):r.slice(1,-1)),eu(t,{href:r&&r.replace(this.rules.inline.anyPunctuation,"$1"),title:n&&n.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(e,t){let r;if((r=this.rules.inline.reflink.exec(e))||(r=this.rules.inline.nolink.exec(e))){let e=t[(r[2]||r[1]).replace(this.rules.other.multipleSpaceGlobal," ").toLowerCase()];if(!e){let e=r[0].charAt(0);return{type:"text",raw:e,text:e}}return eu(r,e,r[0],this.lexer,this.rules)}}emStrong(e,t,r=""){let n=this.rules.inline.emStrongLDelim.exec(e);if(!(!n||n[3]&&r.match(this.rules.other.unicodeAlphaNumeric))&&(!(n[1]||n[2])||!r||this.rules.inline.punctuation.exec(r))){let r=[...n[0]].length-1,s,i,l=r,a=0,o="*"===n[0][0]?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(o.lastIndex=0,t=t.slice(-1*e.length+r);null!=(n=o.exec(t));){if(!(s=n[1]||n[2]||n[3]||n[4]||n[5]||n[6]))continue;if(i=[...s].length,n[3]||n[4]){l+=i;continue}if((n[5]||n[6])&&r%3&&!((r+i)%3)){a+=i;continue}if((l-=i)>0)continue;i=Math.min(i,i+l+a);let t=[...n[0]][0].length,o=e.slice(0,r+n.index+t+i);if(Math.min(r,i)%2){let e=o.slice(1,-1);return{type:"em",raw:o,text:e,tokens:this.lexer.inlineTokens(e)}}let h=o.slice(2,-2);return{type:"strong",raw:o,text:h,tokens:this.lexer.inlineTokens(h)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(this.rules.other.newLineCharGlobal," "),r=this.rules.other.nonSpaceChar.test(e),n=this.rules.other.startingSpaceChar.test(e)&&this.rules.other.endingSpaceChar.test(e);return r&&n&&(e=e.substring(1,e.length-1)),{type:"codespan",raw:t[0],text:e}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e,t,r=""){let n=this.rules.inline.delLDelim.exec(e);if(n&&(!n[1]||!r||this.rules.inline.punctuation.exec(r))){let r=[...n[0]].length-1,s,i,l=r,a=this.rules.inline.delRDelim;for(a.lastIndex=0,t=t.slice(-1*e.length+r);null!=(n=a.exec(t));){if(!(s=n[1]||n[2]||n[3]||n[4]||n[5]||n[6])||(i=[...s].length)!==r)continue;if(n[3]||n[4]){l+=i;continue}if((l-=i)>0)continue;i=Math.min(i,i+l);let t=[...n[0]][0].length,a=e.slice(0,r+n.index+t+i),o=a.slice(r,-r);return{type:"del",raw:a,text:o,tokens:this.lexer.inlineTokens(o)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let e,r;return r="@"===t[2]?"mailto:"+(e=t[1]):e=t[1],{type:"link",raw:t[0],text:e,href:r,tokens:[{type:"text",raw:e,text:e}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let e,r;if("@"===t[2])r="mailto:"+(e=t[0]);else{let n;do n=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??"";while(n!==t[0]);e=t[0],r="www."===t[1]?"http://"+t[0]:t[0]}return{type:"link",raw:t[0],text:e,href:r,tokens:[{type:"text",raw:e,text:e}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let e=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:e}}}},ed=class e{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||i,this.options.tokenizer=this.options.tokenizer||new ek,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let t={other:h,block:es.normal,inline:ei.normal};this.options.pedantic?(t.block=es.pedantic,t.inline=ei.pedantic):this.options.gfm&&(t.block=es.gfm,this.options.breaks?t.inline=ei.breaks:t.inline=ei.gfm),this.tokenizer.rules=t}static get rules(){return{block:es,inline:ei}}static lex(t,r){return new e(r).lex(t)}static lexInline(t,r){return new e(r).inlineTokens(t)}lex(e){e=e.replace(h.carriageReturn,`
27
- `),this.blockTokens(e,this.tokens);for(let e=0;e<this.inlineQueue.length;e++){let t=this.inlineQueue[e];this.inlineTokens(t.src,t.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],r=!1){for(this.options.pedantic&&(e=e.replace(h.tabCharGlobal," ").replace(h.spaceLine,""));e;){let n;if(this.options.extensions?.block?.some(r=>!!(n=r.call({lexer:this},e,t))&&(e=e.substring(n.raw.length),t.push(n),!0)))continue;if(n=this.tokenizer.space(e)){e=e.substring(n.raw.length);let r=t.at(-1);1===n.raw.length&&void 0!==r?r.raw+=`
28
- `:t.push(n);continue}if(n=this.tokenizer.code(e)){e=e.substring(n.raw.length);let r=t.at(-1);r?.type==="paragraph"||r?.type==="text"?(r.raw+=(r.raw.endsWith(`
29
- `)?"":`
30
- `)+n.raw,r.text+=`
31
- `+n.text,this.inlineQueue.at(-1).src=r.text):t.push(n);continue}if((n=this.tokenizer.fences(e))||(n=this.tokenizer.heading(e))||(n=this.tokenizer.hr(e))||(n=this.tokenizer.blockquote(e))||(n=this.tokenizer.list(e))||(n=this.tokenizer.html(e))){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.def(e)){e=e.substring(n.raw.length);let r=t.at(-1);r?.type==="paragraph"||r?.type==="text"?(r.raw+=(r.raw.endsWith(`
32
- `)?"":`
33
- `)+n.raw,r.text+=`
34
- `+n.raw,this.inlineQueue.at(-1).src=r.text):this.tokens.links[n.tag]||(this.tokens.links[n.tag]={href:n.href,title:n.title},t.push(n));continue}if((n=this.tokenizer.table(e))||(n=this.tokenizer.lheading(e))){e=e.substring(n.raw.length),t.push(n);continue}let s=e;if(this.options.extensions?.startBlock){let t=1/0,r=e.slice(1),n;this.options.extensions.startBlock.forEach(e=>{"number"==typeof(n=e.call({lexer:this},r))&&n>=0&&(t=Math.min(t,n))}),t<1/0&&t>=0&&(s=e.substring(0,t+1))}if(this.state.top&&(n=this.tokenizer.paragraph(s))){let i=t.at(-1);r&&i?.type==="paragraph"?(i.raw+=(i.raw.endsWith(`
35
- `)?"":`
36
- `)+n.raw,i.text+=`
37
- `+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=i.text):t.push(n),r=s.length!==e.length,e=e.substring(n.raw.length);continue}if(n=this.tokenizer.text(e)){e=e.substring(n.raw.length);let r=t.at(-1);r?.type==="text"?(r.raw+=(r.raw.endsWith(`
38
- `)?"":`
39
- `)+n.raw,r.text+=`
40
- `+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=r.text):t.push(n);continue}if(e){let t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw Error(t)}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){let r,n=e,s=null;if(this.tokens.links){let e=Object.keys(this.tokens.links);if(e.length>0)for(;null!=(s=this.tokenizer.rules.inline.reflinkSearch.exec(n));)e.includes(s[0].slice(s[0].lastIndexOf("[")+1,-1))&&(n=n.slice(0,s.index)+"["+"a".repeat(s[0].length-2)+"]"+n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(s=this.tokenizer.rules.inline.anyPunctuation.exec(n));)n=n.slice(0,s.index)+"++"+n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;null!=(s=this.tokenizer.rules.inline.blockSkip.exec(n));)r=s[2]?s[2].length:0,n=n.slice(0,s.index+r)+"["+"a".repeat(s[0].length-r-2)+"]"+n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);n=this.options.hooks?.emStrongMask?.call({lexer:this},n)??n;let i=!1,l="";for(;e;){let r;if(i||(l=""),i=!1,this.options.extensions?.inline?.some(n=>!!(r=n.call({lexer:this},e,t))&&(e=e.substring(r.raw.length),t.push(r),!0)))continue;if((r=this.tokenizer.escape(e))||(r=this.tokenizer.tag(e))||(r=this.tokenizer.link(e))){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(r.raw.length);let n=t.at(-1);"text"===r.type&&n?.type==="text"?(n.raw+=r.raw,n.text+=r.text):t.push(r);continue}if((r=this.tokenizer.emStrong(e,n,l))||(r=this.tokenizer.codespan(e))||(r=this.tokenizer.br(e))||(r=this.tokenizer.del(e,n,l))||(r=this.tokenizer.autolink(e))||!this.state.inLink&&(r=this.tokenizer.url(e))){e=e.substring(r.raw.length),t.push(r);continue}let s=e;if(this.options.extensions?.startInline){let t=1/0,r=e.slice(1),n;this.options.extensions.startInline.forEach(e=>{"number"==typeof(n=e.call({lexer:this},r))&&n>=0&&(t=Math.min(t,n))}),t<1/0&&t>=0&&(s=e.substring(0,t+1))}if(r=this.tokenizer.inlineText(s)){e=e.substring(r.raw.length),"_"!==r.raw.slice(-1)&&(l=r.raw.slice(-1)),i=!0;let n=t.at(-1);n?.type==="text"?(n.raw+=r.raw,n.text+=r.text):t.push(r);continue}if(e){let t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw Error(t)}}return t}},eg=class{options;parser;constructor(e){this.options=e||i}space(e){return""}code({text:e,lang:t,escaped:r}){let n=(t||"").match(h.notSpaceStart)?.[0],s=e.replace(h.endingNewline,"")+`
41
- `;return n?'<pre><code class="language-'+eo(n)+'">'+(r?s:eo(s,!0))+`</code></pre>
42
- `:"<pre><code>"+(r?s:eo(s,!0))+`</code></pre>
43
- `}blockquote({tokens:e}){return`<blockquote>
44
- ${this.parser.parse(e)}</blockquote>
45
- `}html({text:e}){return e}def(e){return""}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>
46
- `}hr(e){return`<hr>
47
- `}list(e){let t=e.ordered,r=e.start,n="";for(let t=0;t<e.items.length;t++){let r=e.items[t];n+=this.listitem(r)}let s=t?"ol":"ul";return"<"+s+(t&&1!==r?' start="'+r+'"':"")+`>
48
- `+n+"</"+s+`>
49
- `}listitem(e){return`<li>${this.parser.parse(e.tokens)}</li>
50
- `}checkbox({checked:e}){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox"> '}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>
51
- `}table(e){let t="",r="";for(let t=0;t<e.header.length;t++)r+=this.tablecell(e.header[t]);t+=this.tablerow({text:r});let n="";for(let t=0;t<e.rows.length;t++){let s=e.rows[t];r="";for(let e=0;e<s.length;e++)r+=this.tablecell(s[e]);n+=this.tablerow({text:r})}return n&&(n=`<tbody>${n}</tbody>`),`<table>
52
- <thead>
53
- `+t+`</thead>
54
- `+n+`</table>
55
- `}tablerow({text:e}){return`<tr>
56
- ${e}</tr>
57
- `}tablecell(e){let t=this.parser.parseInline(e.tokens),r=e.header?"th":"td";return(e.align?`<${r} align="${e.align}">`:`<${r}>`)+t+`</${r}>
58
- `}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${eo(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:r}){let n=this.parser.parseInline(r),s=eh(e);if(null===s)return n;let i='<a href="'+(e=s)+'"';return t&&(i+=' title="'+eo(t)+'"'),i+=">"+n+"</a>"}image({href:e,title:t,text:r,tokens:n}){n&&(r=this.parser.parseInline(n,this.parser.textRenderer));let s=eh(e);if(null===s)return eo(r);e=s;let i=`<img src="${e}" alt="${eo(r)}"`;return t&&(i+=` title="${eo(t)}"`),i+=">"}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:eo(e.text)}},ef=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}checkbox({raw:e}){return e}},ex=class e{options;renderer;textRenderer;constructor(e){this.options=e||i,this.options.renderer=this.options.renderer||new eg,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new ef}static parse(t,r){return new e(r).parse(t)}static parseInline(t,r){return new e(r).parseInline(t)}parse(e){let t="";for(let r=0;r<e.length;r++){let n=e[r];if(this.options.extensions?.renderers?.[n.type]){let e=this.options.extensions.renderers[n.type].call({parser:this},n);if(!1!==e||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(n.type)){t+=e||"";continue}}switch(n.type){case"space":t+=this.renderer.space(n);break;case"hr":t+=this.renderer.hr(n);break;case"heading":t+=this.renderer.heading(n);break;case"code":t+=this.renderer.code(n);break;case"table":t+=this.renderer.table(n);break;case"blockquote":t+=this.renderer.blockquote(n);break;case"list":t+=this.renderer.list(n);break;case"checkbox":t+=this.renderer.checkbox(n);break;case"html":t+=this.renderer.html(n);break;case"def":t+=this.renderer.def(n);break;case"paragraph":t+=this.renderer.paragraph(n);break;case"text":t+=this.renderer.text(n);break;default:{let e='Token with "'+n.type+'" type was not found.';if(this.options.silent)return console.error(e),"";throw Error(e)}}}return t}parseInline(e,t=this.renderer){let r="";for(let n=0;n<e.length;n++){let s=e[n];if(this.options.extensions?.renderers?.[s.type]){let e=this.options.extensions.renderers[s.type].call({parser:this},s);if(!1!==e||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(s.type)){r+=e||"";continue}}switch(s.type){case"escape":case"text":r+=t.text(s);break;case"html":r+=t.html(s);break;case"link":r+=t.link(s);break;case"image":r+=t.image(s);break;case"checkbox":r+=t.checkbox(s);break;case"strong":r+=t.strong(s);break;case"em":r+=t.em(s);break;case"codespan":r+=t.codespan(s);break;case"br":r+=t.br(s);break;case"del":r+=t.del(s);break;default:{let e='Token with "'+s.type+'" type was not found.';if(this.options.silent)return console.error(e),"";throw Error(e)}}}return r}},em=class{options;block;constructor(e){this.options=e||i}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(){return this.block?ed.lex:ed.lexInline}provideParser(){return this.block?ex.parse:ex.parseInline}},eb=new class{defaults=s();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=ex;Renderer=eg;TextRenderer=ef;Lexer=ed;Tokenizer=ek;Hooks=em;constructor(...e){this.use(...e)}walkTokens(e,t){let r=[];for(let n of e)switch(r=r.concat(t.call(this,n)),n.type){case"table":for(let e of n.header)r=r.concat(this.walkTokens(e.tokens,t));for(let e of n.rows)for(let n of e)r=r.concat(this.walkTokens(n.tokens,t));break;case"list":r=r.concat(this.walkTokens(n.items,t));break;default:{let e=n;this.defaults.extensions?.childTokens?.[e.type]?this.defaults.extensions.childTokens[e.type].forEach(n=>{let s=e[n].flat(1/0);r=r.concat(this.walkTokens(s,t))}):e.tokens&&(r=r.concat(this.walkTokens(e.tokens,t)))}}return r}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(e=>{let r={...e};if(r.async=this.defaults.async||r.async||!1,e.extensions&&(e.extensions.forEach(e=>{if(!e.name)throw Error("extension name required");if("renderer"in e){let r=t.renderers[e.name];r?t.renderers[e.name]=function(...t){let n=e.renderer.apply(this,t);return!1===n&&(n=r.apply(this,t)),n}:t.renderers[e.name]=e.renderer}if("tokenizer"in e){if(!e.level||"block"!==e.level&&"inline"!==e.level)throw Error("extension level must be 'block' or 'inline'");let r=t[e.level];r?r.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&("block"===e.level?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:"inline"===e.level&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}"childTokens"in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)}),r.extensions=t),e.renderer){let t=this.defaults.renderer||new eg(this.defaults);for(let r in e.renderer){if(!(r in t))throw Error(`renderer '${r}' does not exist`);if(["options","parser"].includes(r))continue;let n=e.renderer[r],s=t[r];t[r]=(...e)=>{let r=n.apply(t,e);return!1===r&&(r=s.apply(t,e)),r||""}}r.renderer=t}if(e.tokenizer){let t=this.defaults.tokenizer||new ek(this.defaults);for(let r in e.tokenizer){if(!(r in t))throw Error(`tokenizer '${r}' does not exist`);if(["options","rules","lexer"].includes(r))continue;let n=e.tokenizer[r],s=t[r];t[r]=(...e)=>{let r=n.apply(t,e);return!1===r&&(r=s.apply(t,e)),r}}r.tokenizer=t}if(e.hooks){let t=this.defaults.hooks||new em;for(let r in e.hooks){if(!(r in t))throw Error(`hook '${r}' does not exist`);if(["options","block"].includes(r))continue;let n=e.hooks[r],s=t[r];em.passThroughHooks.has(r)?t[r]=e=>{if(this.defaults.async&&em.passThroughHooksRespectAsync.has(r))return(async()=>{let r=await n.call(t,e);return s.call(t,r)})();let i=n.call(t,e);return s.call(t,i)}:t[r]=(...e)=>{if(this.defaults.async)return(async()=>{let r=await n.apply(t,e);return!1===r&&(r=await s.apply(t,e)),r})();let r=n.apply(t,e);return!1===r&&(r=s.apply(t,e)),r}}r.hooks=t}if(e.walkTokens){let t=this.defaults.walkTokens,n=e.walkTokens;r.walkTokens=function(e){let r=[];return r.push(n.call(this,e)),t&&(r=r.concat(t.call(this,e))),r}}this.defaults={...this.defaults,...r}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return ed.lex(e,t??this.defaults)}parser(e,t){return ex.parse(e,t??this.defaults)}parseMarkdown(e){return(t,r)=>{let n={...r},s={...this.defaults,...n},i=this.onError(!!s.silent,!!s.async);if(!0===this.defaults.async&&!1===n.async)return i(Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||null===t)return i(Error("marked(): input parameter is undefined or null"));if("string"!=typeof t)return i(Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(s.hooks&&(s.hooks.options=s,s.hooks.block=e),s.async)return(async()=>{let r=s.hooks?await s.hooks.preprocess(t):t,n=await (s.hooks?await s.hooks.provideLexer():e?ed.lex:ed.lexInline)(r,s),i=s.hooks?await s.hooks.processAllTokens(n):n;s.walkTokens&&await Promise.all(this.walkTokens(i,s.walkTokens));let l=await (s.hooks?await s.hooks.provideParser():e?ex.parse:ex.parseInline)(i,s);return s.hooks?await s.hooks.postprocess(l):l})().catch(i);try{s.hooks&&(t=s.hooks.preprocess(t));let r=(s.hooks?s.hooks.provideLexer():e?ed.lex:ed.lexInline)(t,s);s.hooks&&(r=s.hooks.processAllTokens(r)),s.walkTokens&&this.walkTokens(r,s.walkTokens);let n=(s.hooks?s.hooks.provideParser():e?ex.parse:ex.parseInline)(r,s);return s.hooks&&(n=s.hooks.postprocess(n)),n}catch(e){return i(e)}}}onError(e,t){return r=>{if(r.message+=`
59
- Please report this to https://github.com/markedjs/marked.`,e){let e="<p>An error occurred:</p><pre>"+eo(r.message+"",!0)+"</pre>";return t?Promise.resolve(e):e}if(t)return Promise.reject(r);throw r}}};function ew(e,t){return eb.parse(e,t)}function ey(e,t){let r=t.split("\n").flatMap(e=>[e,""]).map(t=>`${e}${t}`).join("\n");return r.slice(0,r.length-1)}function eT(e){let t=(e.raw||e.text||"").match(/^(\s*)[-+*]\s+\[([ xX])\]\s+/);return t?{isTask:!0,checked:"x"===t[2].toLowerCase(),indentLevel:t[1].length}:{isTask:!1,indentLevel:0}}function eR(e,t){return"string"!=typeof e?"json":t}ew.options=ew.setOptions=function(e){return eb.setOptions(e),ew.defaults=eb.defaults,i=ew.defaults,ew},ew.getDefaults=s,ew.defaults=i,ew.use=function(...e){return eb.use(...e),ew.defaults=eb.defaults,i=ew.defaults,ew},ew.walkTokens=function(e,t){return eb.walkTokens(e,t)},ew.parseInline=eb.parseInline,ew.Parser=ex,ew.parser=ex.parse,ew.Renderer=eg,ew.TextRenderer=ef,ew.Lexer=ed,ew.lexer=ed.lex,ew.Tokenizer=ek,ew.Hooks=em,ew.parse=ew,ew.options,ew.setOptions,ew.use,ew.walkTokens,ew.parseInline,ex.parse,ed.lex;var e$=class{constructor(e){var t,r,s,i,l;this.baseExtensions=[],this.extensions=[],this.lastParseResult=null,this.markedInstance=null!=(t=null==e?void 0:e.marked)?t:ew,this.lexer=new this.markedInstance.Lexer,this.indentStyle=null!=(s=null==(r=null==e?void 0:e.indentation)?void 0:r.style)?s:"space",this.indentSize=null!=(l=null==(i=null==e?void 0:e.indentation)?void 0:i.size)?l:2,this.baseExtensions=(null==e?void 0:e.extensions)||[],(null==e?void 0:e.markedOptions)&&"function"==typeof this.markedInstance.setOptions&&this.markedInstance.setOptions(e.markedOptions),this.registry=new Map,this.nodeTypeRegistry=new Map,(null==e?void 0:e.extensions)&&(this.baseExtensions=e.extensions,(0,n.tp)(e.extensions).forEach(e=>this.registerExtension(e,!1))),this.lexer=new this.markedInstance.Lexer}get instance(){return this.markedInstance}get indentCharacter(){return"space"===this.indentStyle?" ":" "}get indentString(){return this.indentCharacter.repeat(this.indentSize)}hasMarked(){return!!this.markedInstance}registerExtension(e,t=!0){var r,s;this.extensions.push(e);let i=e.name,l=(0,n.iI)(e,"markdownTokenName")||i,a=(0,n.iI)(e,"parseMarkdown"),o=(0,n.iI)(e,"renderMarkdown"),h=(0,n.iI)(e,"markdownTokenizer"),p=null!=(r=(0,n.iI)(e,"markdownOptions"))?r:null,c={tokenName:l,nodeName:i,parseMarkdown:a,renderMarkdown:o,isIndenting:null!=(s=null==p?void 0:p.indentsContent)&&s,tokenizer:h};if(l&&a){let e=this.registry.get(l)||[];e.push(c),this.registry.set(l,e)}if(o){let e=this.nodeTypeRegistry.get(i)||[];e.push(c),this.nodeTypeRegistry.set(i,e)}h&&this.hasMarked()&&(this.registerTokenizer(h),t&&(this.lexer=new this.markedInstance.Lexer))}registerTokenizer(e){if(!this.hasMarked())return;let{name:t,start:r,level:n="inline",tokenize:s}=e,i={inlineTokens:e=>this.lexer.inlineTokens(e),blockTokens:e=>this.lexer.blockTokens(e)};this.markedInstance.use({extensions:[{name:t,level:n,start:r?"function"==typeof r?r:e=>e.indexOf(r):e=>{let t=s(e,[],i);return t&&t.raw?e.indexOf(t.raw):-1},tokenizer:(e,r)=>{let n=s(e,r,i);if(n&&n.type)return{...n,type:n.type||t,raw:n.raw||"",tokens:n.tokens||[]}},childTokens:[]}]})}getHandlersForToken(e){try{return this.registry.get(e)||[]}catch{return[]}}getHandlerForToken(e){let t=this.getHandlersForToken(e);if(t.length>0)return t[0];let r=this.getHandlersForNodeType(e);return r.length>0?r[0]:void 0}getHandlersForNodeType(e){try{return this.nodeTypeRegistry.get(e)||[]}catch{return[]}}serialize(e){return e?(Array.isArray(e),this.renderNodes(e,e)):""}parse(e){if(!this.hasMarked())throw Error("No marked instance available for parsing");let t=this.markedInstance.lexer(e);return{type:"doc",content:this.parseTokens(t)}}parseTokens(e){return e.map(e=>this.parseToken(e)).filter(e=>null!==e).flatMap(e=>Array.isArray(e)?e:[e])}parseToken(e){if(!e.type)return null;if("list"===e.type)return this.parseListToken(e);let t=this.getHandlersForToken(e.type),r=this.createParseHelpers();if(t.find(t=>{if(!t.parseMarkdown)return!1;let n=t.parseMarkdown(e,r),s=this.normalizeParseResult(n);return!(!s||Array.isArray(s)&&!(s.length>0))&&(this.lastParseResult=s,!0)})&&this.lastParseResult){let e=this.lastParseResult;return this.lastParseResult=null,e}return this.parseFallbackToken(e)}parseListToken(e){if(!e.items||0===e.items.length)return this.parseTokenWithHandlers(e);let t=e.items.some(e=>eT(e).isTask),r=e.items.some(e=>!eT(e).isTask);if(!t||!r||0===this.getHandlersForToken("taskList").length)return this.parseTokenWithHandlers(e);let n=[],s=[],i=null;for(let t=0;t<e.items.length;t+=1){let r=e.items[t],{isTask:l,checked:a,indentLevel:o}=eT(r),h=r;if(l){let e=(r.raw||r.text||"").split("\n"),t=e[0].match(/^\s*[-+*]\s+\[([ xX])\]\s+(.*)$/),n=t?t[2]:"",s=[];if(e.length>1&&e.slice(1).join("\n").trim()){let t=e.slice(1),r=t.filter(e=>e.trim());if(r.length>0){let e=Math.min(...r.map(e=>e.length-e.trimStart().length)),n=t.map(t=>t.trim()?t.slice(e):"").join("\n").trim();n&&(s=this.markedInstance.lexer(`${n}
60
- `))}}h={type:"taskItem",raw:"",mainContent:n,indentLevel:o,checked:null!=a&&a,text:n,tokens:this.lexer.inlineTokens(n),nestedTokens:s}}let p=l?"taskList":"list";i!==p?(s.length>0&&n.push({type:i,items:s}),s=[h],i=p):s.push(h)}s.length>0&&n.push({type:i,items:s});let l=[];for(let t=0;t<n.length;t+=1){let r=n[t],s={...e,type:r.type,items:r.items},i=this.parseToken(s);i&&(Array.isArray(i)?l.push(...i):l.push(i))}return l.length>0?l:null}parseTokenWithHandlers(e){if(!e.type)return null;let t=this.getHandlersForToken(e.type),r=this.createParseHelpers();if(t.find(t=>{if(!t.parseMarkdown)return!1;let n=t.parseMarkdown(e,r),s=this.normalizeParseResult(n);return!(!s||Array.isArray(s)&&!(s.length>0))&&(this.lastParseResult=s,!0)})&&this.lastParseResult){let e=this.lastParseResult;return this.lastParseResult=null,e}return this.parseFallbackToken(e)}createParseHelpers(){return{parseInline:e=>this.parseInlineTokens(e),parseChildren:e=>this.parseTokens(e),createTextNode:(e,t)=>({type:"text",text:e,marks:t||void 0}),createNode:(e,t,r)=>{let n={type:e,attrs:t||void 0,content:r||void 0};return t&&0!==Object.keys(t).length||delete n.attrs,n},applyMark:(e,t,r)=>({mark:e,content:t,attrs:r&&Object.keys(r).length>0?r:void 0})}}escapeRegex(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}parseInlineTokens(e){var t,r,n,s;let i=[];for(let l=0;l<e.length;l+=1){let a=e[l];if("text"===a.type)i.push({type:"text",text:a.text||""});else if("html"===a.type){let o=(null!=(r=null!=(t=a.raw)?t:a.text)?r:"").toString(),h=/^<\/[\s]*[\w-]+/i.test(o),p=o.match(/^<[\s]*([\w-]+)(\s|>|\/|$)/i);if(!h&&p&&!/\/>$/.test(o)){let t=p[1],r=this.escapeRegex(t),a=RegExp(`^<\\/\\s*${r}\\b`,"i"),h=-1,c=[o];for(let t=l+1;t<e.length;t+=1){let r=e[t],i=(null!=(s=null!=(n=r.raw)?n:r.text)?s:"").toString();if(c.push(i),"html"===r.type&&a.test(i)){h=t;break}}if(-1!==h){let e=c.join(""),t={type:"html",raw:e,text:e,block:!1},r=this.parseHTMLToken(t);if(r){let e=this.normalizeParseResult(r);Array.isArray(e)?i.push(...e):e&&i.push(e)}l=h;continue}}let c=this.parseHTMLToken(a);if(c){let e=this.normalizeParseResult(c);Array.isArray(e)?i.push(...e):e&&i.push(e)}}else if(a.type){let e=this.getHandlerForToken(a.type);if(e&&e.parseMarkdown){let t=this.createParseHelpers(),r=e.parseMarkdown(a,t);if(this.isMarkResult(r)){let e=this.applyMarkToContent(r.mark,r.content,r.attrs);i.push(...e)}else{let e=this.normalizeParseResult(r);Array.isArray(e)?i.push(...e):e&&i.push(e)}}else a.tokens&&i.push(...this.parseInlineTokens(a.tokens))}}return i}applyMarkToContent(e,t,r){return t.map(t=>{if("text"===t.type){let n=t.marks||[],s=r?{type:e,attrs:r}:{type:e};return{...t,marks:[...n,s]}}return{...t,content:t.content?this.applyMarkToContent(e,t.content,r):void 0}})}isMarkResult(e){return e&&"object"==typeof e&&"mark"in e}normalizeParseResult(e){return e?this.isMarkResult(e)?e.content:e:null}parseFallbackToken(e){switch(e.type){case"paragraph":return{type:"paragraph",content:e.tokens?this.parseInlineTokens(e.tokens):[]};case"heading":return{type:"heading",attrs:{level:e.depth||1},content:e.tokens?this.parseInlineTokens(e.tokens):[]};case"text":return{type:"text",text:e.text||""};case"html":return this.parseHTMLToken(e);case"space":return null;default:if(e.tokens)return this.parseTokens(e.tokens);return null}}parseHTMLToken(e){let t=e.text||e.raw||"";if(!t.trim())return null;if("undefined"==typeof window)return e.block?{type:"paragraph",content:[{type:"text",text:t}]}:{type:"text",text:t};try{let r=(0,n.yQ)(t,this.baseExtensions);if("doc"===r.type&&r.content){if(e.block)return r.content;if(1===r.content.length&&"paragraph"===r.content[0].type&&r.content[0].content)return r.content[0].content;return r.content}return r}catch(e){throw Error(`Failed to parse HTML in markdown: ${e}`)}}renderNodeToMarkdown(e,t,r=0,n=0){var s;if("text"===e.type)return e.text||"";if(!e.type)return"";let i=this.getHandlerForToken(e.type);if(!i)return"";let l={index:r,level:n,parentType:null==t?void 0:t.type,meta:{parentAttrs:null==t?void 0:t.attrs}};return(null==(s=i.renderMarkdown)?void 0:s.call(i,e,{renderChildren:(t,s)=>{let l=i.isIndenting?n+1:n;return!Array.isArray(t)&&t.content?this.renderNodes(t.content,e,s||"",r,l):this.renderNodes(t,e,s||"",r,l)},indent:e=>this.indentString+e,wrapInBlock:ey},l))||""}renderNodes(e,t,r="",n=0,s=0){return Array.isArray(e)?this.renderNodesWithMarkBoundaries(e,t,r,s):e.type?this.renderNodeToMarkdown(e,t,n,s):""}renderNodesWithMarkBoundaries(e,t,r="",n=0){let s=[],i=new Map;return e.forEach((r,l)=>{let a=l<e.length-1?e[l+1]:null;if(r.type)if("text"===r.type){let e=r.text||"",t=new Map((r.marks||[]).map(e=>[e.type,e])),n=function(e,t){let r=[];return Array.from(t.entries()).forEach(([t,n])=>{e.has(t)||r.push({type:t,mark:n})}),r}(i,t),l=function(e,t){let r=[];return Array.from(e.keys()).forEach(e=>{t&&t.marks&&t.marks.map(e=>e.type).includes(e)||r.push(e)}),r}(t,a),o="";if(l.length>0){let t=e.match(/(\s+)$/);t&&(o=t[1],e=e.slice(0,-o.length))}l.forEach(r=>{let n=t.get(r),s=this.getMarkClosing(r,n);s&&(e+=s),i.has(r)&&i.delete(r)});let h="";if(n.length>0){let t=e.match(/^(\s+)/);t&&(h=t[1],e=e.slice(h.length))}n.forEach(({type:t,mark:r})=>{let n=this.getMarkOpening(t,r);n&&(e=n+e),l.includes(t)||i.set(t,r)}),e=h+e;let p=function(e,t,r,n){let s=!r,i=r&&"text"===r.type&&(!r.marks||0===r.marks.length),l=r&&"text"===r.type&&r.marks&&!n(t,new Map(r.marks.map(e=>[e.type,e]))),a=[];if(s||i||l)if(r&&"text"===r.type&&r.marks){let t=new Map(r.marks.map(e=>[e.type,e]));Array.from(e.keys()).forEach(e=>{t.has(e)||a.push(e)})}else(s||i)&&a.push(...Array.from(e.keys()));return a}(i,t,a,this.markSetsEqual.bind(this)),c="";if(p.length>0){let t=e.match(/(\s+)$/);t&&(c=t[1],e=e.slice(0,-c.length))}p.forEach(t=>{let r=i.get(t),n=this.getMarkClosing(t,r);n&&(e+=n),i.delete(t)}),e+=c,e+=o,s.push(e)}else{var o,h;let e,a,p=new Map(i),c=(o=this.getMarkClosing.bind(this),e="",Array.from(i.keys()).reverse().forEach(t=>{let r=i.get(t),n=o(t,r);n&&(e=n+e)}),i.clear(),e),u=this.renderNodeToMarkdown(r,t,l,n),k="hardBreak"===r.type?"":(h=this.getMarkOpening.bind(this),a="",Array.from(p.entries()).forEach(([e,t])=>{let r=h(e,t);r&&(a+=r),i.set(e,t)}),a);s.push(c+u+k)}}),s.join(r)}getMarkOpening(e,t){let r=this.getHandlersForNodeType(e),n=r.length>0?r[0]:void 0;if(!n||!n.renderMarkdown)return"";let s="__TIPTAP_MARKDOWN_PLACEHOLDER__",i={type:e,attrs:t.attrs||{},content:[{type:"text",text:s}]};try{let e=n.renderMarkdown(i,{renderChildren:()=>s,indent:e=>e,wrapInBlock:(e,t)=>e+t},{index:0,level:0,parentType:"text",meta:{}}),t=e.indexOf(s);return t>=0?e.substring(0,t):""}catch(t){throw Error(`Failed to get mark opening for ${e}: ${t}`)}}getMarkClosing(e,t){let r=this.getHandlersForNodeType(e),n=r.length>0?r[0]:void 0;if(!n||!n.renderMarkdown)return"";let s="__TIPTAP_MARKDOWN_PLACEHOLDER__",i={type:e,attrs:t.attrs||{},content:[{type:"text",text:s}]};try{let e=n.renderMarkdown(i,{renderChildren:()=>s,indent:e=>e,wrapInBlock:(e,t)=>e+t},{index:0,level:0,parentType:"text",meta:{}}),t=e.indexOf(s),r=t+s.length;return t>=0?e.substring(r):""}catch(t){throw Error(`Failed to get mark closing for ${e}: ${t}`)}}markSetsEqual(e,t){return e.size===t.size&&Array.from(e.keys()).every(e=>t.has(e))}},eS=n.YY.create({name:"markdown",addOptions:()=>({indentation:{style:"space",size:2},marked:void 0,markedOptions:{}}),addCommands(){return{setContent:(e,t)=>{if(!(null==t?void 0:t.contentType)||"markdown"!==eR(e,null==t?void 0:t.contentType)||!this.editor.markdown)return n.Pi.setContent(e,t);let r=this.editor.markdown.parse(e);return n.Pi.setContent(r,t)},insertContent:(e,t)=>{if(!(null==t?void 0:t.contentType)||"markdown"!==eR(e,null==t?void 0:t.contentType)||!this.editor.markdown)return n.Pi.insertContent(e,t);let r=this.editor.markdown.parse(e);return n.Pi.insertContent(r,t)},insertContentAt:(e,t,r)=>{if(!(null==r?void 0:r.contentType)||"markdown"!==eR(t,null==r?void 0:r.contentType)||!this.editor.markdown)return n.Pi.insertContentAt(e,t,r);let s=this.editor.markdown.parse(t);return n.Pi.insertContentAt(e,s,r)}}},addStorage(){return{manager:new e$({indentation:this.options.indentation,marked:this.options.marked,markedOptions:this.options.markedOptions,extensions:[]})}},onBeforeCreate(){if(this.editor.markdown)return void console.error("[tiptap][markdown]: There is already a `markdown` property on the editor instance. This might lead to unexpected behavior.");if(this.storage.manager=new e$({indentation:this.options.indentation,marked:this.options.marked,markedOptions:this.options.markedOptions,extensions:this.editor.extensionManager.baseExtensions}),this.editor.markdown=this.storage.manager,this.editor.getMarkdown=()=>this.storage.manager.serialize(this.editor.getJSON()),!this.editor.options.contentType||"markdown"!==eR(this.editor.options.content,this.editor.options.contentType))return;if(!this.editor.markdown)throw Error('[tiptap][markdown]: The `contentType` option is set to "markdown", but the Markdown extension is not added to the editor. Please add the Markdown extension to use this feature.');if(void 0===this.editor.options.content||"string"!=typeof this.editor.options.content)throw Error('[tiptap][markdown]: The `contentType` option is set to "markdown", but the initial content is not a string. Please provide the initial content as a markdown string.');let e=this.editor.markdown.parse(this.editor.options.content);this.editor.options.content=e}})}}]);