taskchef 8.6.2 → 8.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (630) hide show
  1. package/.codex-plugin/plugin.json +1 -1
  2. package/README.md +8 -4
  3. package/assets/README.md +19 -0
  4. package/assets/taskchef-app-rounded.png +0 -0
  5. package/assets/taskchef-avatar-square.png +0 -0
  6. package/assets/taskchef-avatar-square.svg +8 -0
  7. package/assets/taskchef-sidebar-dark.svg +6 -0
  8. package/assets/taskchef-sidebar-light.svg +6 -0
  9. package/assets/taskchef-sidebar.svg +6 -0
  10. package/docs/advanced-guide.md +20 -29
  11. package/docs/dashboard-ui.md +15 -0
  12. package/docs/diagrams/taskchef-next-reply-lookup.drawio +38 -0
  13. package/docs/diagrams/taskchef-next-reply-lookup.drawio.png +0 -0
  14. package/docs/diagrams/taskchef-next-storage.drawio +41 -0
  15. package/docs/diagrams/taskchef-next-storage.drawio.png +0 -0
  16. package/docs/images/taskchef-pr-icon-comparison.jpg +0 -0
  17. package/docs/images/taskchef-unified-status-popup.jpg +0 -0
  18. package/docs/mcp-app.md +278 -6
  19. package/docs/spec.md +24 -69
  20. package/docs/taskchef-next-github.md +206 -0
  21. package/docs/taskchef-next-status-research.md +102 -0
  22. package/docs/taskchef-next-storage.md +167 -0
  23. package/docs/workflows.md +4 -2
  24. package/node_modules/@napi-rs/keyring/LICENSE +21 -0
  25. package/node_modules/@napi-rs/keyring/README.md +45 -0
  26. package/node_modules/@napi-rs/keyring/index.d.ts +232 -0
  27. package/node_modules/@napi-rs/keyring/index.js +706 -0
  28. package/node_modules/@napi-rs/keyring/keytar.d.ts +53 -0
  29. package/node_modules/@napi-rs/keyring/keytar.js +26 -0
  30. package/node_modules/@napi-rs/keyring/package.json +126 -0
  31. package/node_modules/@napi-rs/keyring-darwin-arm64/README.md +3 -0
  32. package/node_modules/@napi-rs/keyring-darwin-arm64/keyring.darwin-arm64.node +0 -0
  33. package/node_modules/@napi-rs/keyring-darwin-arm64/package.json +32 -0
  34. package/node_modules/@napi-rs/keyring-darwin-x64/README.md +3 -0
  35. package/node_modules/@napi-rs/keyring-darwin-x64/keyring.darwin-x64.node +0 -0
  36. package/node_modules/@napi-rs/keyring-darwin-x64/package.json +32 -0
  37. package/node_modules/@napi-rs/keyring-linux-arm64-gnu/README.md +3 -0
  38. package/node_modules/@napi-rs/keyring-linux-arm64-gnu/keyring.linux-arm64-gnu.node +0 -0
  39. package/node_modules/@napi-rs/keyring-linux-arm64-gnu/package.json +35 -0
  40. package/node_modules/@napi-rs/keyring-linux-arm64-musl/README.md +3 -0
  41. package/node_modules/@napi-rs/keyring-linux-arm64-musl/keyring.linux-arm64-musl.node +0 -0
  42. package/node_modules/@napi-rs/keyring-linux-arm64-musl/package.json +35 -0
  43. package/node_modules/@napi-rs/keyring-linux-x64-gnu/README.md +3 -0
  44. package/node_modules/@napi-rs/keyring-linux-x64-gnu/keyring.linux-x64-gnu.node +0 -0
  45. package/node_modules/@napi-rs/keyring-linux-x64-gnu/package.json +35 -0
  46. package/node_modules/@napi-rs/keyring-linux-x64-musl/README.md +3 -0
  47. package/node_modules/@napi-rs/keyring-linux-x64-musl/keyring.linux-x64-musl.node +0 -0
  48. package/node_modules/@napi-rs/keyring-linux-x64-musl/package.json +35 -0
  49. package/node_modules/@napi-rs/keyring-win32-arm64-msvc/README.md +3 -0
  50. package/node_modules/@napi-rs/keyring-win32-arm64-msvc/keyring.win32-arm64-msvc.node +0 -0
  51. package/node_modules/@napi-rs/keyring-win32-arm64-msvc/package.json +32 -0
  52. package/node_modules/@napi-rs/keyring-win32-x64-msvc/README.md +3 -0
  53. package/node_modules/@napi-rs/keyring-win32-x64-msvc/keyring.win32-x64-msvc.node +0 -0
  54. package/node_modules/@napi-rs/keyring-win32-x64-msvc/package.json +32 -0
  55. package/node_modules/@types/debug/LICENSE +21 -0
  56. package/node_modules/@types/debug/README.md +69 -0
  57. package/node_modules/@types/debug/index.d.ts +50 -0
  58. package/node_modules/@types/debug/package.json +58 -0
  59. package/node_modules/@types/mdast/LICENSE +21 -0
  60. package/node_modules/@types/mdast/README.md +15 -0
  61. package/node_modules/@types/mdast/index.d.ts +1123 -0
  62. package/node_modules/@types/mdast/package.json +47 -0
  63. package/node_modules/@types/ms/LICENSE +21 -0
  64. package/node_modules/@types/ms/README.md +82 -0
  65. package/node_modules/@types/ms/index.d.ts +63 -0
  66. package/node_modules/@types/ms/package.json +26 -0
  67. package/node_modules/@types/unist/LICENSE +21 -0
  68. package/node_modules/@types/unist/README.md +15 -0
  69. package/node_modules/@types/unist/index.d.ts +119 -0
  70. package/node_modules/@types/unist/package.json +60 -0
  71. package/node_modules/character-entities/index.d.ts +6 -0
  72. package/node_modules/character-entities/index.js +2132 -0
  73. package/node_modules/character-entities/license +22 -0
  74. package/node_modules/character-entities/package.json +78 -0
  75. package/node_modules/character-entities/readme.md +152 -0
  76. package/node_modules/decode-named-character-reference/index.d.ts +13 -0
  77. package/node_modules/decode-named-character-reference/index.d.ts.map +1 -0
  78. package/node_modules/decode-named-character-reference/index.dom.d.ts +6 -0
  79. package/node_modules/decode-named-character-reference/index.dom.d.ts.map +1 -0
  80. package/node_modules/decode-named-character-reference/index.dom.js +32 -0
  81. package/node_modules/decode-named-character-reference/index.js +19 -0
  82. package/node_modules/decode-named-character-reference/license +22 -0
  83. package/node_modules/decode-named-character-reference/package.json +90 -0
  84. package/node_modules/decode-named-character-reference/readme.md +136 -0
  85. package/node_modules/dequal/dist/index.js +86 -0
  86. package/node_modules/dequal/dist/index.min.js +1 -0
  87. package/node_modules/dequal/dist/index.mjs +84 -0
  88. package/node_modules/dequal/index.d.ts +1 -0
  89. package/node_modules/dequal/license +21 -0
  90. package/node_modules/dequal/lite/index.d.ts +1 -0
  91. package/node_modules/dequal/lite/index.js +31 -0
  92. package/node_modules/dequal/lite/index.min.js +1 -0
  93. package/node_modules/dequal/lite/index.mjs +29 -0
  94. package/node_modules/dequal/package.json +57 -0
  95. package/node_modules/dequal/readme.md +112 -0
  96. package/node_modules/devlop/lib/default.js +9 -0
  97. package/node_modules/devlop/lib/development.d.ts +84 -0
  98. package/node_modules/devlop/lib/development.js +238 -0
  99. package/node_modules/devlop/license +22 -0
  100. package/node_modules/devlop/package.json +80 -0
  101. package/node_modules/devlop/readme.md +360 -0
  102. package/node_modules/mdast-util-from-markdown/dev/index.d.ts +23 -0
  103. package/node_modules/mdast-util-from-markdown/dev/index.js +2 -0
  104. package/node_modules/mdast-util-from-markdown/dev/lib/index.d.ts +53 -0
  105. package/node_modules/mdast-util-from-markdown/dev/lib/index.d.ts.map +1 -0
  106. package/node_modules/mdast-util-from-markdown/dev/lib/index.js +1348 -0
  107. package/node_modules/mdast-util-from-markdown/dev/lib/types.d.ts +295 -0
  108. package/node_modules/mdast-util-from-markdown/dev/lib/types.js +2 -0
  109. package/node_modules/mdast-util-from-markdown/index.d.ts +23 -0
  110. package/node_modules/mdast-util-from-markdown/index.js +2 -0
  111. package/node_modules/mdast-util-from-markdown/lib/index.d.ts +53 -0
  112. package/node_modules/mdast-util-from-markdown/lib/index.js +1177 -0
  113. package/node_modules/mdast-util-from-markdown/lib/types.d.ts +295 -0
  114. package/node_modules/mdast-util-from-markdown/lib/types.js +2 -0
  115. package/node_modules/mdast-util-from-markdown/license +22 -0
  116. package/node_modules/mdast-util-from-markdown/package.json +139 -0
  117. package/node_modules/mdast-util-from-markdown/readme.md +537 -0
  118. package/node_modules/mdast-util-to-string/index.d.ts +2 -0
  119. package/node_modules/mdast-util-to-string/index.js +5 -0
  120. package/node_modules/mdast-util-to-string/lib/index.d.ts +31 -0
  121. package/node_modules/mdast-util-to-string/lib/index.js +108 -0
  122. package/node_modules/mdast-util-to-string/license +22 -0
  123. package/node_modules/mdast-util-to-string/package.json +78 -0
  124. package/node_modules/mdast-util-to-string/readme.md +218 -0
  125. package/node_modules/micromark/dev/index.d.ts +82 -0
  126. package/node_modules/micromark/dev/index.d.ts.map +1 -0
  127. package/node_modules/micromark/dev/index.js +68 -0
  128. package/node_modules/micromark/dev/lib/compile.d.ts +16 -0
  129. package/node_modules/micromark/dev/lib/compile.d.ts.map +1 -0
  130. package/node_modules/micromark/dev/lib/compile.js +1162 -0
  131. package/node_modules/micromark/dev/lib/constructs.d.ts +73 -0
  132. package/node_modules/micromark/dev/lib/constructs.d.ts.map +1 -0
  133. package/node_modules/micromark/dev/lib/constructs.js +101 -0
  134. package/node_modules/micromark/dev/lib/create-tokenizer.d.ts +46 -0
  135. package/node_modules/micromark/dev/lib/create-tokenizer.d.ts.map +1 -0
  136. package/node_modules/micromark/dev/lib/create-tokenizer.js +718 -0
  137. package/node_modules/micromark/dev/lib/initialize/content.d.ts +4 -0
  138. package/node_modules/micromark/dev/lib/initialize/content.d.ts.map +1 -0
  139. package/node_modules/micromark/dev/lib/initialize/content.js +99 -0
  140. package/node_modules/micromark/dev/lib/initialize/document.d.ts +10 -0
  141. package/node_modules/micromark/dev/lib/initialize/document.d.ts.map +1 -0
  142. package/node_modules/micromark/dev/lib/initialize/document.js +449 -0
  143. package/node_modules/micromark/dev/lib/initialize/flow.d.ts +4 -0
  144. package/node_modules/micromark/dev/lib/initialize/flow.d.ts.map +1 -0
  145. package/node_modules/micromark/dev/lib/initialize/flow.js +86 -0
  146. package/node_modules/micromark/dev/lib/initialize/text.d.ts +8 -0
  147. package/node_modules/micromark/dev/lib/initialize/text.d.ts.map +1 -0
  148. package/node_modules/micromark/dev/lib/initialize/text.js +248 -0
  149. package/node_modules/micromark/dev/lib/parse.d.ts +10 -0
  150. package/node_modules/micromark/dev/lib/parse.d.ts.map +1 -0
  151. package/node_modules/micromark/dev/lib/parse.js +58 -0
  152. package/node_modules/micromark/dev/lib/postprocess.d.ts +9 -0
  153. package/node_modules/micromark/dev/lib/postprocess.d.ts.map +1 -0
  154. package/node_modules/micromark/dev/lib/postprocess.js +19 -0
  155. package/node_modules/micromark/dev/lib/preprocess.d.ts +13 -0
  156. package/node_modules/micromark/dev/lib/preprocess.d.ts.map +1 -0
  157. package/node_modules/micromark/dev/lib/preprocess.js +139 -0
  158. package/node_modules/micromark/dev/stream.d.ts +35 -0
  159. package/node_modules/micromark/dev/stream.d.ts.map +1 -0
  160. package/node_modules/micromark/dev/stream.js +270 -0
  161. package/node_modules/micromark/index.d.ts +82 -0
  162. package/node_modules/micromark/index.d.ts.map +1 -0
  163. package/node_modules/micromark/index.js +60 -0
  164. package/node_modules/micromark/lib/compile.d.ts +16 -0
  165. package/node_modules/micromark/lib/compile.d.ts.map +1 -0
  166. package/node_modules/micromark/lib/compile.js +1068 -0
  167. package/node_modules/micromark/lib/constructs.d.ts +73 -0
  168. package/node_modules/micromark/lib/constructs.d.ts.map +1 -0
  169. package/node_modules/micromark/lib/constructs.js +85 -0
  170. package/node_modules/micromark/lib/create-tokenizer.d.ts +46 -0
  171. package/node_modules/micromark/lib/create-tokenizer.d.ts.map +1 -0
  172. package/node_modules/micromark/lib/create-tokenizer.js +613 -0
  173. package/node_modules/micromark/lib/initialize/content.d.ts +4 -0
  174. package/node_modules/micromark/lib/initialize/content.d.ts.map +1 -0
  175. package/node_modules/micromark/lib/initialize/content.js +79 -0
  176. package/node_modules/micromark/lib/initialize/document.d.ts +10 -0
  177. package/node_modules/micromark/lib/initialize/document.d.ts.map +1 -0
  178. package/node_modules/micromark/lib/initialize/document.js +370 -0
  179. package/node_modules/micromark/lib/initialize/flow.d.ts +4 -0
  180. package/node_modules/micromark/lib/initialize/flow.d.ts.map +1 -0
  181. package/node_modules/micromark/lib/initialize/flow.js +58 -0
  182. package/node_modules/micromark/lib/initialize/text.d.ts +8 -0
  183. package/node_modules/micromark/lib/initialize/text.d.ts.map +1 -0
  184. package/node_modules/micromark/lib/initialize/text.js +216 -0
  185. package/node_modules/micromark/lib/parse.d.ts +10 -0
  186. package/node_modules/micromark/lib/parse.d.ts.map +1 -0
  187. package/node_modules/micromark/lib/parse.js +56 -0
  188. package/node_modules/micromark/lib/postprocess.d.ts +9 -0
  189. package/node_modules/micromark/lib/postprocess.d.ts.map +1 -0
  190. package/node_modules/micromark/lib/postprocess.js +18 -0
  191. package/node_modules/micromark/lib/preprocess.d.ts +13 -0
  192. package/node_modules/micromark/lib/preprocess.d.ts.map +1 -0
  193. package/node_modules/micromark/lib/preprocess.js +112 -0
  194. package/node_modules/micromark/license +22 -0
  195. package/node_modules/micromark/package.json +87 -0
  196. package/node_modules/micromark/readme.md +488 -0
  197. package/node_modules/micromark/stream.d.ts +35 -0
  198. package/node_modules/micromark/stream.d.ts.map +1 -0
  199. package/node_modules/micromark/stream.js +256 -0
  200. package/node_modules/micromark-core-commonmark/dev/index.d.ts +23 -0
  201. package/node_modules/micromark-core-commonmark/dev/index.d.ts.map +1 -0
  202. package/node_modules/micromark-core-commonmark/dev/index.js +22 -0
  203. package/node_modules/micromark-core-commonmark/dev/lib/attention.d.ts +4 -0
  204. package/node_modules/micromark-core-commonmark/dev/lib/attention.d.ts.map +1 -0
  205. package/node_modules/micromark-core-commonmark/dev/lib/attention.js +294 -0
  206. package/node_modules/micromark-core-commonmark/dev/lib/autolink.d.ts +4 -0
  207. package/node_modules/micromark-core-commonmark/dev/lib/autolink.d.ts.map +1 -0
  208. package/node_modules/micromark-core-commonmark/dev/lib/autolink.js +269 -0
  209. package/node_modules/micromark-core-commonmark/dev/lib/blank-line.d.ts +4 -0
  210. package/node_modules/micromark-core-commonmark/dev/lib/blank-line.d.ts.map +1 -0
  211. package/node_modules/micromark-core-commonmark/dev/lib/blank-line.js +62 -0
  212. package/node_modules/micromark-core-commonmark/dev/lib/block-quote.d.ts +4 -0
  213. package/node_modules/micromark-core-commonmark/dev/lib/block-quote.d.ts.map +1 -0
  214. package/node_modules/micromark-core-commonmark/dev/lib/block-quote.js +162 -0
  215. package/node_modules/micromark-core-commonmark/dev/lib/character-escape.d.ts +4 -0
  216. package/node_modules/micromark-core-commonmark/dev/lib/character-escape.d.ts.map +1 -0
  217. package/node_modules/micromark-core-commonmark/dev/lib/character-escape.js +69 -0
  218. package/node_modules/micromark-core-commonmark/dev/lib/character-reference.d.ts +4 -0
  219. package/node_modules/micromark-core-commonmark/dev/lib/character-reference.d.ts.map +1 -0
  220. package/node_modules/micromark-core-commonmark/dev/lib/character-reference.js +166 -0
  221. package/node_modules/micromark-core-commonmark/dev/lib/code-fenced.d.ts +4 -0
  222. package/node_modules/micromark-core-commonmark/dev/lib/code-fenced.d.ts.map +1 -0
  223. package/node_modules/micromark-core-commonmark/dev/lib/code-fenced.js +472 -0
  224. package/node_modules/micromark-core-commonmark/dev/lib/code-indented.d.ts +4 -0
  225. package/node_modules/micromark-core-commonmark/dev/lib/code-indented.d.ts.map +1 -0
  226. package/node_modules/micromark-core-commonmark/dev/lib/code-indented.js +178 -0
  227. package/node_modules/micromark-core-commonmark/dev/lib/code-text.d.ts +4 -0
  228. package/node_modules/micromark-core-commonmark/dev/lib/code-text.d.ts.map +1 -0
  229. package/node_modules/micromark-core-commonmark/dev/lib/code-text.js +257 -0
  230. package/node_modules/micromark-core-commonmark/dev/lib/content.d.ts +7 -0
  231. package/node_modules/micromark-core-commonmark/dev/lib/content.d.ts.map +1 -0
  232. package/node_modules/micromark-core-commonmark/dev/lib/content.js +185 -0
  233. package/node_modules/micromark-core-commonmark/dev/lib/definition.d.ts +4 -0
  234. package/node_modules/micromark-core-commonmark/dev/lib/definition.d.ts.map +1 -0
  235. package/node_modules/micromark-core-commonmark/dev/lib/definition.js +295 -0
  236. package/node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.d.ts +4 -0
  237. package/node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.d.ts.map +1 -0
  238. package/node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.js +65 -0
  239. package/node_modules/micromark-core-commonmark/dev/lib/heading-atx.d.ts +4 -0
  240. package/node_modules/micromark-core-commonmark/dev/lib/heading-atx.d.ts.map +1 -0
  241. package/node_modules/micromark-core-commonmark/dev/lib/heading-atx.js +229 -0
  242. package/node_modules/micromark-core-commonmark/dev/lib/html-flow.d.ts +4 -0
  243. package/node_modules/micromark-core-commonmark/dev/lib/html-flow.d.ts.map +1 -0
  244. package/node_modules/micromark-core-commonmark/dev/lib/html-flow.js +938 -0
  245. package/node_modules/micromark-core-commonmark/dev/lib/html-text.d.ts +4 -0
  246. package/node_modules/micromark-core-commonmark/dev/lib/html-text.d.ts.map +1 -0
  247. package/node_modules/micromark-core-commonmark/dev/lib/html-text.js +783 -0
  248. package/node_modules/micromark-core-commonmark/dev/lib/label-end.d.ts +4 -0
  249. package/node_modules/micromark-core-commonmark/dev/lib/label-end.d.ts.map +1 -0
  250. package/node_modules/micromark-core-commonmark/dev/lib/label-end.js +658 -0
  251. package/node_modules/micromark-core-commonmark/dev/lib/label-start-image.d.ts +4 -0
  252. package/node_modules/micromark-core-commonmark/dev/lib/label-start-image.d.ts.map +1 -0
  253. package/node_modules/micromark-core-commonmark/dev/lib/label-start-image.js +119 -0
  254. package/node_modules/micromark-core-commonmark/dev/lib/label-start-link.d.ts +4 -0
  255. package/node_modules/micromark-core-commonmark/dev/lib/label-start-link.d.ts.map +1 -0
  256. package/node_modules/micromark-core-commonmark/dev/lib/label-start-link.js +71 -0
  257. package/node_modules/micromark-core-commonmark/dev/lib/line-ending.d.ts +4 -0
  258. package/node_modules/micromark-core-commonmark/dev/lib/line-ending.d.ts.map +1 -0
  259. package/node_modules/micromark-core-commonmark/dev/lib/line-ending.js +34 -0
  260. package/node_modules/micromark-core-commonmark/dev/lib/list.d.ts +4 -0
  261. package/node_modules/micromark-core-commonmark/dev/lib/list.d.ts.map +1 -0
  262. package/node_modules/micromark-core-commonmark/dev/lib/list.js +306 -0
  263. package/node_modules/micromark-core-commonmark/dev/lib/partial-non-lazy-continuation.d.ts +4 -0
  264. package/node_modules/micromark-core-commonmark/dev/lib/partial-non-lazy-continuation.d.ts.map +1 -0
  265. package/node_modules/micromark-core-commonmark/dev/lib/partial-non-lazy-continuation.js +67 -0
  266. package/node_modules/micromark-core-commonmark/dev/lib/setext-underline.d.ts +4 -0
  267. package/node_modules/micromark-core-commonmark/dev/lib/setext-underline.d.ts.map +1 -0
  268. package/node_modules/micromark-core-commonmark/dev/lib/setext-underline.js +213 -0
  269. package/node_modules/micromark-core-commonmark/dev/lib/thematic-break.d.ts +4 -0
  270. package/node_modules/micromark-core-commonmark/dev/lib/thematic-break.d.ts.map +1 -0
  271. package/node_modules/micromark-core-commonmark/dev/lib/thematic-break.js +120 -0
  272. package/node_modules/micromark-core-commonmark/index.d.ts +23 -0
  273. package/node_modules/micromark-core-commonmark/index.d.ts.map +1 -0
  274. package/node_modules/micromark-core-commonmark/index.js +22 -0
  275. package/node_modules/micromark-core-commonmark/lib/attention.d.ts +4 -0
  276. package/node_modules/micromark-core-commonmark/lib/attention.d.ts.map +1 -0
  277. package/node_modules/micromark-core-commonmark/lib/attention.js +231 -0
  278. package/node_modules/micromark-core-commonmark/lib/autolink.d.ts +4 -0
  279. package/node_modules/micromark-core-commonmark/lib/autolink.d.ts.map +1 -0
  280. package/node_modules/micromark-core-commonmark/lib/autolink.js +233 -0
  281. package/node_modules/micromark-core-commonmark/lib/blank-line.d.ts +4 -0
  282. package/node_modules/micromark-core-commonmark/lib/blank-line.d.ts.map +1 -0
  283. package/node_modules/micromark-core-commonmark/lib/blank-line.js +61 -0
  284. package/node_modules/micromark-core-commonmark/lib/block-quote.d.ts +4 -0
  285. package/node_modules/micromark-core-commonmark/lib/block-quote.d.ts.map +1 -0
  286. package/node_modules/micromark-core-commonmark/lib/block-quote.js +143 -0
  287. package/node_modules/micromark-core-commonmark/lib/character-escape.d.ts +4 -0
  288. package/node_modules/micromark-core-commonmark/lib/character-escape.d.ts.map +1 -0
  289. package/node_modules/micromark-core-commonmark/lib/character-escape.js +64 -0
  290. package/node_modules/micromark-core-commonmark/lib/character-reference.d.ts +4 -0
  291. package/node_modules/micromark-core-commonmark/lib/character-reference.d.ts.map +1 -0
  292. package/node_modules/micromark-core-commonmark/lib/character-reference.js +149 -0
  293. package/node_modules/micromark-core-commonmark/lib/code-fenced.d.ts +4 -0
  294. package/node_modules/micromark-core-commonmark/lib/code-fenced.d.ts.map +1 -0
  295. package/node_modules/micromark-core-commonmark/lib/code-fenced.js +422 -0
  296. package/node_modules/micromark-core-commonmark/lib/code-indented.d.ts +4 -0
  297. package/node_modules/micromark-core-commonmark/lib/code-indented.d.ts.map +1 -0
  298. package/node_modules/micromark-core-commonmark/lib/code-indented.js +159 -0
  299. package/node_modules/micromark-core-commonmark/lib/code-text.d.ts +4 -0
  300. package/node_modules/micromark-core-commonmark/lib/code-text.d.ts.map +1 -0
  301. package/node_modules/micromark-core-commonmark/lib/code-text.js +225 -0
  302. package/node_modules/micromark-core-commonmark/lib/content.d.ts +7 -0
  303. package/node_modules/micromark-core-commonmark/lib/content.d.ts.map +1 -0
  304. package/node_modules/micromark-core-commonmark/lib/content.js +163 -0
  305. package/node_modules/micromark-core-commonmark/lib/definition.d.ts +4 -0
  306. package/node_modules/micromark-core-commonmark/lib/definition.d.ts.map +1 -0
  307. package/node_modules/micromark-core-commonmark/lib/definition.js +254 -0
  308. package/node_modules/micromark-core-commonmark/lib/hard-break-escape.d.ts +4 -0
  309. package/node_modules/micromark-core-commonmark/lib/hard-break-escape.d.ts.map +1 -0
  310. package/node_modules/micromark-core-commonmark/lib/hard-break-escape.js +60 -0
  311. package/node_modules/micromark-core-commonmark/lib/heading-atx.d.ts +4 -0
  312. package/node_modules/micromark-core-commonmark/lib/heading-atx.d.ts.map +1 -0
  313. package/node_modules/micromark-core-commonmark/lib/heading-atx.js +191 -0
  314. package/node_modules/micromark-core-commonmark/lib/html-flow.d.ts +4 -0
  315. package/node_modules/micromark-core-commonmark/lib/html-flow.d.ts.map +1 -0
  316. package/node_modules/micromark-core-commonmark/lib/html-flow.js +827 -0
  317. package/node_modules/micromark-core-commonmark/lib/html-text.d.ts +4 -0
  318. package/node_modules/micromark-core-commonmark/lib/html-text.d.ts.map +1 -0
  319. package/node_modules/micromark-core-commonmark/lib/html-text.js +678 -0
  320. package/node_modules/micromark-core-commonmark/lib/label-end.d.ts +4 -0
  321. package/node_modules/micromark-core-commonmark/lib/label-end.d.ts.map +1 -0
  322. package/node_modules/micromark-core-commonmark/lib/label-end.js +561 -0
  323. package/node_modules/micromark-core-commonmark/lib/label-start-image.d.ts +4 -0
  324. package/node_modules/micromark-core-commonmark/lib/label-start-image.d.ts.map +1 -0
  325. package/node_modules/micromark-core-commonmark/lib/label-start-image.js +110 -0
  326. package/node_modules/micromark-core-commonmark/lib/label-start-link.d.ts +4 -0
  327. package/node_modules/micromark-core-commonmark/lib/label-start-link.d.ts.map +1 -0
  328. package/node_modules/micromark-core-commonmark/lib/label-start-link.js +63 -0
  329. package/node_modules/micromark-core-commonmark/lib/line-ending.d.ts +4 -0
  330. package/node_modules/micromark-core-commonmark/lib/line-ending.d.ts.map +1 -0
  331. package/node_modules/micromark-core-commonmark/lib/line-ending.js +33 -0
  332. package/node_modules/micromark-core-commonmark/lib/list.d.ts +4 -0
  333. package/node_modules/micromark-core-commonmark/lib/list.d.ts.map +1 -0
  334. package/node_modules/micromark-core-commonmark/lib/list.js +213 -0
  335. package/node_modules/micromark-core-commonmark/lib/partial-non-lazy-continuation.d.ts +4 -0
  336. package/node_modules/micromark-core-commonmark/lib/partial-non-lazy-continuation.d.ts.map +1 -0
  337. package/node_modules/micromark-core-commonmark/lib/partial-non-lazy-continuation.js +61 -0
  338. package/node_modules/micromark-core-commonmark/lib/setext-underline.d.ts +4 -0
  339. package/node_modules/micromark-core-commonmark/lib/setext-underline.d.ts.map +1 -0
  340. package/node_modules/micromark-core-commonmark/lib/setext-underline.js +187 -0
  341. package/node_modules/micromark-core-commonmark/lib/thematic-break.d.ts +4 -0
  342. package/node_modules/micromark-core-commonmark/lib/thematic-break.d.ts.map +1 -0
  343. package/node_modules/micromark-core-commonmark/lib/thematic-break.js +102 -0
  344. package/node_modules/micromark-core-commonmark/license +22 -0
  345. package/node_modules/micromark-core-commonmark/package.json +62 -0
  346. package/node_modules/micromark-core-commonmark/readme.md +171 -0
  347. package/node_modules/micromark-factory-destination/dev/index.d.ts +42 -0
  348. package/node_modules/micromark-factory-destination/dev/index.d.ts.map +1 -0
  349. package/node_modules/micromark-factory-destination/dev/index.js +255 -0
  350. package/node_modules/micromark-factory-destination/index.d.ts +42 -0
  351. package/node_modules/micromark-factory-destination/index.d.ts.map +1 -0
  352. package/node_modules/micromark-factory-destination/index.js +206 -0
  353. package/node_modules/micromark-factory-destination/license +22 -0
  354. package/node_modules/micromark-factory-destination/package.json +57 -0
  355. package/node_modules/micromark-factory-destination/readme.md +234 -0
  356. package/node_modules/micromark-factory-label/dev/index.d.ts +37 -0
  357. package/node_modules/micromark-factory-label/dev/index.d.ts.map +1 -0
  358. package/node_modules/micromark-factory-label/dev/index.js +172 -0
  359. package/node_modules/micromark-factory-label/index.d.ts +37 -0
  360. package/node_modules/micromark-factory-label/index.d.ts.map +1 -0
  361. package/node_modules/micromark-factory-label/index.js +148 -0
  362. package/node_modules/micromark-factory-label/license +22 -0
  363. package/node_modules/micromark-factory-label/package.json +60 -0
  364. package/node_modules/micromark-factory-label/readme.md +224 -0
  365. package/node_modules/micromark-factory-space/dev/index.d.ts +60 -0
  366. package/node_modules/micromark-factory-space/dev/index.d.ts.map +1 -0
  367. package/node_modules/micromark-factory-space/dev/index.js +122 -0
  368. package/node_modules/micromark-factory-space/index.d.ts +60 -0
  369. package/node_modules/micromark-factory-space/index.d.ts.map +1 -0
  370. package/node_modules/micromark-factory-space/index.js +116 -0
  371. package/node_modules/micromark-factory-space/license +22 -0
  372. package/node_modules/micromark-factory-space/package.json +46 -0
  373. package/node_modules/micromark-factory-space/readme.md +225 -0
  374. package/node_modules/micromark-factory-title/dev/index.d.ts +36 -0
  375. package/node_modules/micromark-factory-title/dev/index.d.ts.map +1 -0
  376. package/node_modules/micromark-factory-title/dev/index.js +169 -0
  377. package/node_modules/micromark-factory-title/index.d.ts +36 -0
  378. package/node_modules/micromark-factory-title/index.d.ts.map +1 -0
  379. package/node_modules/micromark-factory-title/index.js +158 -0
  380. package/node_modules/micromark-factory-title/license +22 -0
  381. package/node_modules/micromark-factory-title/package.json +58 -0
  382. package/node_modules/micromark-factory-title/readme.md +229 -0
  383. package/node_modules/micromark-factory-whitespace/dev/index.d.ts +22 -0
  384. package/node_modules/micromark-factory-whitespace/dev/index.d.ts.map +1 -0
  385. package/node_modules/micromark-factory-whitespace/dev/index.js +53 -0
  386. package/node_modules/micromark-factory-whitespace/index.d.ts +22 -0
  387. package/node_modules/micromark-factory-whitespace/index.d.ts.map +1 -0
  388. package/node_modules/micromark-factory-whitespace/index.js +44 -0
  389. package/node_modules/micromark-factory-whitespace/license +22 -0
  390. package/node_modules/micromark-factory-whitespace/package.json +57 -0
  391. package/node_modules/micromark-factory-whitespace/readme.md +205 -0
  392. package/node_modules/micromark-util-character/dev/index.d.ts +195 -0
  393. package/node_modules/micromark-util-character/dev/index.d.ts.map +1 -0
  394. package/node_modules/micromark-util-character/dev/index.js +252 -0
  395. package/node_modules/micromark-util-character/index.d.ts +195 -0
  396. package/node_modules/micromark-util-character/index.d.ts.map +1 -0
  397. package/node_modules/micromark-util-character/index.js +246 -0
  398. package/node_modules/micromark-util-character/license +22 -0
  399. package/node_modules/micromark-util-character/package.json +57 -0
  400. package/node_modules/micromark-util-character/readme.md +446 -0
  401. package/node_modules/micromark-util-chunked/dev/index.d.ts +41 -0
  402. package/node_modules/micromark-util-chunked/dev/index.d.ts.map +1 -0
  403. package/node_modules/micromark-util-chunked/dev/index.js +89 -0
  404. package/node_modules/micromark-util-chunked/index.d.ts +41 -0
  405. package/node_modules/micromark-util-chunked/index.d.ts.map +1 -0
  406. package/node_modules/micromark-util-chunked/index.js +81 -0
  407. package/node_modules/micromark-util-chunked/license +22 -0
  408. package/node_modules/micromark-util-chunked/package.json +57 -0
  409. package/node_modules/micromark-util-chunked/readme.md +219 -0
  410. package/node_modules/micromark-util-classify-character/dev/index.d.ts +18 -0
  411. package/node_modules/micromark-util-classify-character/dev/index.d.ts.map +1 -0
  412. package/node_modules/micromark-util-classify-character/dev/index.js +38 -0
  413. package/node_modules/micromark-util-classify-character/index.d.ts +18 -0
  414. package/node_modules/micromark-util-classify-character/index.d.ts.map +1 -0
  415. package/node_modules/micromark-util-classify-character/index.js +27 -0
  416. package/node_modules/micromark-util-classify-character/license +22 -0
  417. package/node_modules/micromark-util-classify-character/package.json +59 -0
  418. package/node_modules/micromark-util-classify-character/readme.md +205 -0
  419. package/node_modules/micromark-util-combine-extensions/index.d.ts +22 -0
  420. package/node_modules/micromark-util-combine-extensions/index.d.ts.map +1 -0
  421. package/node_modules/micromark-util-combine-extensions/index.js +143 -0
  422. package/node_modules/micromark-util-combine-extensions/license +22 -0
  423. package/node_modules/micromark-util-combine-extensions/package.json +52 -0
  424. package/node_modules/micromark-util-combine-extensions/readme.md +201 -0
  425. package/node_modules/micromark-util-decode-numeric-character-reference/dev/index.d.ts +16 -0
  426. package/node_modules/micromark-util-decode-numeric-character-reference/dev/index.d.ts.map +1 -0
  427. package/node_modules/micromark-util-decode-numeric-character-reference/dev/index.js +42 -0
  428. package/node_modules/micromark-util-decode-numeric-character-reference/index.d.ts +16 -0
  429. package/node_modules/micromark-util-decode-numeric-character-reference/index.d.ts.map +1 -0
  430. package/node_modules/micromark-util-decode-numeric-character-reference/index.js +32 -0
  431. package/node_modules/micromark-util-decode-numeric-character-reference/license +22 -0
  432. package/node_modules/micromark-util-decode-numeric-character-reference/package.json +59 -0
  433. package/node_modules/micromark-util-decode-numeric-character-reference/readme.md +184 -0
  434. package/node_modules/micromark-util-decode-string/dev/index.d.ts +14 -0
  435. package/node_modules/micromark-util-decode-string/dev/index.d.ts.map +1 -0
  436. package/node_modules/micromark-util-decode-string/dev/index.js +53 -0
  437. package/node_modules/micromark-util-decode-string/index.d.ts +14 -0
  438. package/node_modules/micromark-util-decode-string/index.d.ts.map +1 -0
  439. package/node_modules/micromark-util-decode-string/index.js +45 -0
  440. package/node_modules/micromark-util-decode-string/license +22 -0
  441. package/node_modules/micromark-util-decode-string/package.json +63 -0
  442. package/node_modules/micromark-util-decode-string/readme.md +179 -0
  443. package/node_modules/micromark-util-edit-map/dev/index.d.ts +78 -0
  444. package/node_modules/micromark-util-edit-map/dev/index.d.ts.map +1 -0
  445. package/node_modules/micromark-util-edit-map/dev/index.js +237 -0
  446. package/node_modules/micromark-util-edit-map/index.d.ts +78 -0
  447. package/node_modules/micromark-util-edit-map/index.d.ts.map +1 -0
  448. package/node_modules/micromark-util-edit-map/index.js +225 -0
  449. package/node_modules/micromark-util-edit-map/license +22 -0
  450. package/node_modules/micromark-util-edit-map/package.json +48 -0
  451. package/node_modules/micromark-util-edit-map/readme.md +234 -0
  452. package/node_modules/micromark-util-encode/index.d.ts +14 -0
  453. package/node_modules/micromark-util-encode/index.d.ts.map +1 -0
  454. package/node_modules/micromark-util-encode/index.js +33 -0
  455. package/node_modules/micromark-util-encode/license +22 -0
  456. package/node_modules/micromark-util-encode/package.json +47 -0
  457. package/node_modules/micromark-util-encode/readme.md +176 -0
  458. package/node_modules/micromark-util-html-tag-name/index.d.ts +30 -0
  459. package/node_modules/micromark-util-html-tag-name/index.d.ts.map +1 -0
  460. package/node_modules/micromark-util-html-tag-name/index.js +93 -0
  461. package/node_modules/micromark-util-html-tag-name/license +22 -0
  462. package/node_modules/micromark-util-html-tag-name/package.json +47 -0
  463. package/node_modules/micromark-util-html-tag-name/readme.md +193 -0
  464. package/node_modules/micromark-util-normalize-identifier/dev/index.d.ts +21 -0
  465. package/node_modules/micromark-util-normalize-identifier/dev/index.d.ts.map +1 -0
  466. package/node_modules/micromark-util-normalize-identifier/dev/index.js +38 -0
  467. package/node_modules/micromark-util-normalize-identifier/index.d.ts +21 -0
  468. package/node_modules/micromark-util-normalize-identifier/index.d.ts.map +1 -0
  469. package/node_modules/micromark-util-normalize-identifier/index.js +33 -0
  470. package/node_modules/micromark-util-normalize-identifier/license +22 -0
  471. package/node_modules/micromark-util-normalize-identifier/package.json +58 -0
  472. package/node_modules/micromark-util-normalize-identifier/readme.md +187 -0
  473. package/node_modules/micromark-util-resolve-all/index.d.ts +22 -0
  474. package/node_modules/micromark-util-resolve-all/index.d.ts.map +1 -0
  475. package/node_modules/micromark-util-resolve-all/index.js +32 -0
  476. package/node_modules/micromark-util-resolve-all/license +22 -0
  477. package/node_modules/micromark-util-resolve-all/package.json +48 -0
  478. package/node_modules/micromark-util-resolve-all/readme.md +238 -0
  479. package/node_modules/micromark-util-sanitize-uri/dev/index.d.ts +36 -0
  480. package/node_modules/micromark-util-sanitize-uri/dev/index.d.ts.map +1 -0
  481. package/node_modules/micromark-util-sanitize-uri/dev/index.js +124 -0
  482. package/node_modules/micromark-util-sanitize-uri/index.d.ts +36 -0
  483. package/node_modules/micromark-util-sanitize-uri/index.d.ts.map +1 -0
  484. package/node_modules/micromark-util-sanitize-uri/index.js +107 -0
  485. package/node_modules/micromark-util-sanitize-uri/license +22 -0
  486. package/node_modules/micromark-util-sanitize-uri/package.json +59 -0
  487. package/node_modules/micromark-util-sanitize-uri/readme.md +214 -0
  488. package/node_modules/micromark-util-subtokenize/dev/index.d.ts +12 -0
  489. package/node_modules/micromark-util-subtokenize/dev/index.d.ts.map +1 -0
  490. package/node_modules/micromark-util-subtokenize/dev/index.js +284 -0
  491. package/node_modules/micromark-util-subtokenize/dev/lib/splice-buffer.d.ts +161 -0
  492. package/node_modules/micromark-util-subtokenize/dev/lib/splice-buffer.d.ts.map +1 -0
  493. package/node_modules/micromark-util-subtokenize/dev/lib/splice-buffer.js +288 -0
  494. package/node_modules/micromark-util-subtokenize/index.d.ts +12 -0
  495. package/node_modules/micromark-util-subtokenize/index.d.ts.map +1 -0
  496. package/node_modules/micromark-util-subtokenize/index.js +228 -0
  497. package/node_modules/micromark-util-subtokenize/lib/splice-buffer.d.ts +161 -0
  498. package/node_modules/micromark-util-subtokenize/lib/splice-buffer.d.ts.map +1 -0
  499. package/node_modules/micromark-util-subtokenize/lib/splice-buffer.js +251 -0
  500. package/node_modules/micromark-util-subtokenize/license +22 -0
  501. package/node_modules/micromark-util-subtokenize/package.json +60 -0
  502. package/node_modules/micromark-util-subtokenize/readme.md +181 -0
  503. package/node_modules/micromark-util-symbol/lib/codes.d.ts +139 -0
  504. package/node_modules/micromark-util-symbol/lib/codes.d.ts.map +1 -0
  505. package/node_modules/micromark-util-symbol/lib/codes.js +158 -0
  506. package/node_modules/micromark-util-symbol/lib/constants.d.ts +37 -0
  507. package/node_modules/micromark-util-symbol/lib/constants.d.ts.map +1 -0
  508. package/node_modules/micromark-util-symbol/lib/constants.js +44 -0
  509. package/node_modules/micromark-util-symbol/lib/default.d.ts +5 -0
  510. package/node_modules/micromark-util-symbol/lib/default.d.ts.map +1 -0
  511. package/node_modules/micromark-util-symbol/lib/default.js +4 -0
  512. package/node_modules/micromark-util-symbol/lib/types.d.ts +106 -0
  513. package/node_modules/micromark-util-symbol/lib/types.d.ts.map +1 -0
  514. package/node_modules/micromark-util-symbol/lib/types.js +453 -0
  515. package/node_modules/micromark-util-symbol/lib/values.d.ts +102 -0
  516. package/node_modules/micromark-util-symbol/lib/values.d.ts.map +1 -0
  517. package/node_modules/micromark-util-symbol/lib/values.js +109 -0
  518. package/node_modules/micromark-util-symbol/license +22 -0
  519. package/node_modules/micromark-util-symbol/package.json +43 -0
  520. package/node_modules/micromark-util-symbol/readme.md +168 -0
  521. package/node_modules/micromark-util-types/index.d.ts +1315 -0
  522. package/node_modules/micromark-util-types/index.js +2 -0
  523. package/node_modules/micromark-util-types/license +22 -0
  524. package/node_modules/micromark-util-types/package.json +37 -0
  525. package/node_modules/micromark-util-types/readme.md +151 -0
  526. package/node_modules/smol-toml/LICENSE +24 -0
  527. package/node_modules/smol-toml/README.md +605 -0
  528. package/node_modules/smol-toml/dist/date.d.ts +41 -0
  529. package/node_modules/smol-toml/dist/date.js +156 -0
  530. package/node_modules/smol-toml/dist/error.d.ts +37 -0
  531. package/node_modules/smol-toml/dist/error.js +67 -0
  532. package/node_modules/smol-toml/dist/extract.js +289 -0
  533. package/node_modules/smol-toml/dist/index.cjs +770 -0
  534. package/node_modules/smol-toml/dist/index.d.ts +44 -0
  535. package/node_modules/smol-toml/dist/index.js +34 -0
  536. package/node_modules/smol-toml/dist/parse.d.ts +73 -0
  537. package/node_modules/smol-toml/dist/parse.js +164 -0
  538. package/node_modules/smol-toml/dist/primitive.js +151 -0
  539. package/node_modules/smol-toml/dist/stringify.d.ts +32 -0
  540. package/node_modules/smol-toml/dist/stringify.js +219 -0
  541. package/node_modules/smol-toml/dist/struct.js +156 -0
  542. package/node_modules/smol-toml/dist/util.d.ts +43 -0
  543. package/node_modules/smol-toml/dist/util.js +57 -0
  544. package/node_modules/smol-toml/package.json +68 -0
  545. package/node_modules/unist-util-stringify-position/index.d.ts +1 -0
  546. package/node_modules/unist-util-stringify-position/index.js +1 -0
  547. package/node_modules/unist-util-stringify-position/lib/index.d.ts +61 -0
  548. package/node_modules/unist-util-stringify-position/lib/index.js +84 -0
  549. package/node_modules/unist-util-stringify-position/license +22 -0
  550. package/node_modules/unist-util-stringify-position/package.json +80 -0
  551. package/node_modules/unist-util-stringify-position/readme.md +206 -0
  552. package/package.json +27 -8
  553. package/scripts/prepare-github-keyring.js +29 -0
  554. package/src/codex-app.js +20 -2
  555. package/src/codex-pricing.js +79 -0
  556. package/src/codex-projects.js +90 -0
  557. package/src/codex-session-scanner.js +748 -0
  558. package/src/codex-session-usage.js +332 -0
  559. package/src/dashboard/app.js +2 -2
  560. package/src/dashboard/dist/app.js +135 -60
  561. package/src/dashboard/dist/app.js.map +1 -1
  562. package/src/dashboard/dist/styles.css +1 -1
  563. package/src/dashboard/react/components/AnimatedUsage.test.tsx +78 -0
  564. package/src/dashboard/react/components/CardStatusIcons.test.tsx +146 -0
  565. package/src/dashboard/react/components/CardStatusIcons.tsx +138 -0
  566. package/src/dashboard/react/components/ImageGallery.tsx +22 -0
  567. package/src/dashboard/react/components/ModelSettings.test.tsx +4 -4
  568. package/src/dashboard/react/components/ModelSettings.tsx +1 -1
  569. package/src/dashboard/react/components/OpenChatButton.test.tsx +19 -0
  570. package/src/dashboard/react/components/OpenChatButton.tsx +2 -1
  571. package/src/dashboard/react/components/PrGlyph.tsx +35 -0
  572. package/src/dashboard/react/components/PullRequestBadges.tsx +18 -0
  573. package/src/dashboard/react/components/QueuedPrompts.test.tsx +42 -0
  574. package/src/dashboard/react/components/QueuedPrompts.tsx +34 -0
  575. package/src/dashboard/react/components/RelativeTime.test.tsx +100 -0
  576. package/src/dashboard/react/components/RelativeTime.tsx +46 -11
  577. package/src/dashboard/react/components/ReplyCover.test.tsx +30 -0
  578. package/src/dashboard/react/components/ReplyCover.tsx +33 -0
  579. package/src/dashboard/react/components/ReplyImagePreview.test.tsx +90 -0
  580. package/src/dashboard/react/components/ReplyImagePreview.tsx +34 -0
  581. package/src/dashboard/react/components/ReplyMarkdown.test.tsx +108 -0
  582. package/src/dashboard/react/components/ReplyMarkdown.tsx +112 -0
  583. package/src/dashboard/react/components/SavedUsageFormat.test.tsx +11 -0
  584. package/src/dashboard/react/components/SavedUsageFormat.tsx +68 -0
  585. package/src/dashboard/react/components/StatusBadge.tsx +2 -2
  586. package/src/dashboard/react/components/TaskBoard.test.tsx +256 -1
  587. package/src/dashboard/react/components/TaskBoard.tsx +136 -28
  588. package/src/dashboard/react/components/TaskCard.tsx +7 -4
  589. package/src/dashboard/react/components/TaskDetail.test.tsx +92 -1
  590. package/src/dashboard/react/components/TaskDetail.tsx +37 -10
  591. package/src/dashboard/react/components/TurnContent.test.tsx +44 -0
  592. package/src/dashboard/react/components/TurnContent.tsx +53 -0
  593. package/src/dashboard/react/components/UsagePanel.tsx +2 -2
  594. package/src/dashboard/react/image-cache.test.ts +23 -0
  595. package/src/dashboard/react/image-cache.ts +33 -0
  596. package/src/dashboard/react/presentation.test.tsx +31 -0
  597. package/src/dashboard/react/styles.css +126 -2
  598. package/src/dashboard/react/types.ts +55 -1
  599. package/src/dashboard/time.js +39 -0
  600. package/src/dashboard.js +4 -3
  601. package/src/data/codex-pricing.json +537 -0
  602. package/src/mcp-app/dist/index.html +216 -112
  603. package/src/mcp-app/react/AppearancePicker.test.tsx +50 -0
  604. package/src/mcp-app/react/AppearancePicker.tsx +56 -0
  605. package/src/mcp-app/react/GitHubConnection.test.tsx +78 -0
  606. package/src/mcp-app/react/GitHubConnection.tsx +78 -0
  607. package/src/mcp-app/react/NextNotificationCenter.test.tsx +121 -0
  608. package/src/mcp-app/react/NextNotificationCenter.tsx +94 -0
  609. package/src/mcp-app/react/NextTaskDetail.test.tsx +124 -0
  610. package/src/mcp-app/react/NextTaskDetail.tsx +147 -0
  611. package/src/mcp-app/react/ProjectPicker.tsx +49 -0
  612. package/src/mcp-app/react/main.test.tsx +499 -49
  613. package/src/mcp-app/react/main.tsx +359 -86
  614. package/src/mcp-app/react/styles.css +186 -9
  615. package/src/mcp-app/react/themes.test.ts +34 -0
  616. package/src/mcp-app/react/themes.ts +112 -0
  617. package/src/mcp-app.js +238 -120
  618. package/src/mcp.js +8 -1
  619. package/src/next-cache.js +16 -0
  620. package/src/next-github.js +273 -0
  621. package/src/next-notifications.js +90 -0
  622. package/src/recorded-usage-tracker.js +92 -0
  623. package/src/reply-image.js +65 -0
  624. package/src/usage-tracker.js +7 -6
  625. package/src/usage.js +7 -355
  626. package/src/user-prompt.js +55 -0
  627. package/src/version.js +2 -1
  628. package/node_modules/proper-lockfile/CHANGELOG.md +0 -108
  629. package/node_modules/which/CHANGELOG.md +0 -166
  630. package/src/resolve-ccusage.js +0 -17
@@ -0,0 +1,1162 @@
1
+ /**
2
+ * While micromark is a lexer/tokenizer, the common case of going from markdown
3
+ * to html is currently built in as this module, even though the parts can be
4
+ * used separately to build ASTs, CSTs, or many other output formats.
5
+ *
6
+ * Having an HTML compiler built in is useful because it allows us to check for
7
+ * compliancy to CommonMark, the de facto norm of markdown, specified in roughly
8
+ * 600 input/output cases.
9
+ *
10
+ * This module has an interface that accepts lists of events instead of the
11
+ * whole at once, however, because markdown can’t be truly streaming, we buffer
12
+ * events before processing and outputting the final result.
13
+ */
14
+
15
+ /**
16
+ * @import {
17
+ * CompileContext,
18
+ * CompileData,
19
+ * CompileOptions,
20
+ * Compile,
21
+ * Definition,
22
+ * Event,
23
+ * Handle,
24
+ * HtmlExtension,
25
+ * LineEnding,
26
+ * NormalizedHtmlExtension,
27
+ * Token
28
+ * } from 'micromark-util-types'
29
+ */
30
+
31
+ /**
32
+ * @typedef Media
33
+ * @property {boolean | undefined} [image]
34
+ * @property {string | undefined} [labelId]
35
+ * @property {string | undefined} [label]
36
+ * @property {string | undefined} [referenceId]
37
+ * @property {string | undefined} [destination]
38
+ * @property {string | undefined} [title]
39
+ */
40
+
41
+ import {decodeNamedCharacterReference} from 'decode-named-character-reference'
42
+ import {ok as assert} from 'devlop'
43
+ import {push} from 'micromark-util-chunked'
44
+ import {combineHtmlExtensions} from 'micromark-util-combine-extensions'
45
+ import {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'
46
+ import {encode as _encode} from 'micromark-util-encode'
47
+ import {normalizeIdentifier} from 'micromark-util-normalize-identifier'
48
+ import {sanitizeUri} from 'micromark-util-sanitize-uri'
49
+ import {codes, constants, types} from 'micromark-util-symbol'
50
+
51
+ const hasOwnProperty = {}.hasOwnProperty
52
+
53
+ /**
54
+ * These two are allowlists of safe protocols for full URLs in respectively the
55
+ * `href` (on `<a>`) and `src` (on `<img>`) attributes.
56
+ * They are based on what is allowed on GitHub,
57
+ * <https://github.com/syntax-tree/hast-util-sanitize/blob/9275b21/lib/github.json#L31>
58
+ */
59
+ const protocolHref = /^(https?|ircs?|mailto|xmpp)$/i
60
+ const protocolSource = /^https?$/i
61
+
62
+ /**
63
+ * @param {CompileOptions | null | undefined} [options]
64
+ * @returns {Compile}
65
+ */
66
+ export function compile(options) {
67
+ const settings = options || {}
68
+
69
+ /**
70
+ * Tags is needed because according to markdown, links and emphasis and
71
+ * whatnot can exist in images, however, as HTML doesn’t allow content in
72
+ * images, the tags are ignored in the `alt` attribute, but the content
73
+ * remains.
74
+ *
75
+ * @type {boolean | undefined}
76
+ */
77
+ let tags = true
78
+
79
+ /**
80
+ * An object to track identifiers to media (URLs and titles) defined with
81
+ * definitions.
82
+ *
83
+ * @type {Record<string, Definition>}
84
+ */
85
+ const definitions = {}
86
+
87
+ /**
88
+ * A lot of the handlers need to capture some of the output data, modify it
89
+ * somehow, and then deal with it.
90
+ * We do that by tracking a stack of buffers, that can be opened (with
91
+ * `buffer`) and closed (with `resume`) to access them.
92
+ *
93
+ * @type {Array<Array<string>>}
94
+ */
95
+ const buffers = [[]]
96
+
97
+ /**
98
+ * As we can have links in images and the other way around, where the deepest
99
+ * ones are closed first, we need to track which one we’re in.
100
+ *
101
+ * @type {Array<Media>}
102
+ */
103
+ const mediaStack = []
104
+
105
+ /**
106
+ * Same as `mediaStack` for tightness, which is specific to lists.
107
+ * We need to track if we’re currently in a tight or loose container.
108
+ *
109
+ * @type {Array<boolean>}
110
+ */
111
+ const tightStack = []
112
+
113
+ /** @type {HtmlExtension} */
114
+ const defaultHandlers = {
115
+ enter: {
116
+ blockQuote: onenterblockquote,
117
+ codeFenced: onentercodefenced,
118
+ codeFencedFenceInfo: buffer,
119
+ codeFencedFenceMeta: buffer,
120
+ codeIndented: onentercodeindented,
121
+ codeText: onentercodetext,
122
+ content: onentercontent,
123
+ definition: onenterdefinition,
124
+ definitionDestinationString: onenterdefinitiondestinationstring,
125
+ definitionLabelString: buffer,
126
+ definitionTitleString: buffer,
127
+ emphasis: onenteremphasis,
128
+ htmlFlow: onenterhtmlflow,
129
+ htmlText: onenterhtml,
130
+ image: onenterimage,
131
+ label: buffer,
132
+ link: onenterlink,
133
+ listItemMarker: onenterlistitemmarker,
134
+ listItemValue: onenterlistitemvalue,
135
+ listOrdered: onenterlistordered,
136
+ listUnordered: onenterlistunordered,
137
+ paragraph: onenterparagraph,
138
+ reference: buffer,
139
+ resource: onenterresource,
140
+ resourceDestinationString: onenterresourcedestinationstring,
141
+ resourceTitleString: buffer,
142
+ setextHeading: onentersetextheading,
143
+ strong: onenterstrong
144
+ },
145
+ exit: {
146
+ atxHeading: onexitatxheading,
147
+ atxHeadingSequence: onexitatxheadingsequence,
148
+ autolinkEmail: onexitautolinkemail,
149
+ autolinkProtocol: onexitautolinkprotocol,
150
+ blockQuote: onexitblockquote,
151
+ characterEscapeValue: onexitdata,
152
+ characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,
153
+ characterReferenceMarkerNumeric: onexitcharacterreferencemarker,
154
+ characterReferenceValue: onexitcharacterreferencevalue,
155
+ codeFenced: onexitflowcode,
156
+ codeFencedFence: onexitcodefencedfence,
157
+ codeFencedFenceInfo: onexitcodefencedfenceinfo,
158
+ codeFencedFenceMeta: onresumedrop,
159
+ codeFlowValue: onexitcodeflowvalue,
160
+ codeIndented: onexitflowcode,
161
+ codeText: onexitcodetext,
162
+ codeTextData: onexitdata,
163
+ data: onexitdata,
164
+ definition: onexitdefinition,
165
+ definitionDestinationString: onexitdefinitiondestinationstring,
166
+ definitionLabelString: onexitdefinitionlabelstring,
167
+ definitionTitleString: onexitdefinitiontitlestring,
168
+ emphasis: onexitemphasis,
169
+ hardBreakEscape: onexithardbreak,
170
+ hardBreakTrailing: onexithardbreak,
171
+ htmlFlow: onexithtml,
172
+ htmlFlowData: onexitdata,
173
+ htmlText: onexithtml,
174
+ htmlTextData: onexitdata,
175
+ image: onexitmedia,
176
+ label: onexitlabel,
177
+ labelText: onexitlabeltext,
178
+ lineEnding: onexitlineending,
179
+ link: onexitmedia,
180
+ listOrdered: onexitlistordered,
181
+ listUnordered: onexitlistunordered,
182
+ paragraph: onexitparagraph,
183
+ reference: onresumedrop,
184
+ referenceString: onexitreferencestring,
185
+ resource: onresumedrop,
186
+ resourceDestinationString: onexitresourcedestinationstring,
187
+ resourceTitleString: onexitresourcetitlestring,
188
+ setextHeading: onexitsetextheading,
189
+ setextHeadingLineSequence: onexitsetextheadinglinesequence,
190
+ setextHeadingText: onexitsetextheadingtext,
191
+ strong: onexitstrong,
192
+ thematicBreak: onexitthematicbreak
193
+ }
194
+ }
195
+
196
+ /**
197
+ * Combine the HTML extensions with the default handlers.
198
+ * An HTML extension is an object whose fields are either `enter` or `exit`
199
+ * (reflecting whether a token is entered or exited).
200
+ * The values at such objects are names of tokens mapping to handlers.
201
+ * Handlers are called, respectively when a token is opener or closed, with
202
+ * that token, and a context as `this`.
203
+ */
204
+ const handlers = /** @type {NormalizedHtmlExtension} */ (
205
+ combineHtmlExtensions([defaultHandlers, ...(settings.htmlExtensions || [])])
206
+ )
207
+
208
+ /**
209
+ * Handlers do often need to keep track of some state.
210
+ * That state is provided here as a key-value store (an object).
211
+ *
212
+ * @type {CompileData}
213
+ */
214
+ const data = {
215
+ definitions,
216
+ tightStack
217
+ }
218
+
219
+ /**
220
+ * The context for handlers references a couple of useful functions.
221
+ * In handlers from extensions, those can be accessed at `this`.
222
+ * For the handlers here, they can be accessed directly.
223
+ *
224
+ * @type {Omit<CompileContext, 'sliceSerialize'>}
225
+ */
226
+ const context = {
227
+ buffer,
228
+ encode,
229
+ getData,
230
+ lineEndingIfNeeded,
231
+ options: settings,
232
+ raw,
233
+ resume,
234
+ setData,
235
+ tag
236
+ }
237
+
238
+ /**
239
+ * Generally, micromark copies line endings (`'\r'`, `'\n'`, `'\r\n'`) in the
240
+ * markdown document over to the compiled HTML.
241
+ * In some cases, such as `> a`, CommonMark requires that extra line endings
242
+ * are added: `<blockquote>\n<p>a</p>\n</blockquote>`.
243
+ * This variable hold the default line ending when given (or `undefined`),
244
+ * and in the latter case will be updated to the first found line ending if
245
+ * there is one.
246
+ */
247
+ let lineEndingStyle = settings.defaultLineEnding
248
+
249
+ // Return the function that handles a slice of events.
250
+ return compile
251
+
252
+ /**
253
+ * Deal w/ a slice of events.
254
+ * Return either the empty string if there’s nothing of note to return, or the
255
+ * result when done.
256
+ *
257
+ * @param {ReadonlyArray<Event>} events
258
+ * @returns {string}
259
+ */
260
+ function compile(events) {
261
+ let index = -1
262
+ let start = 0
263
+ /** @type {Array<number>} */
264
+ const listStack = []
265
+ // As definitions can come after references, we need to figure out the media
266
+ // (urls and titles) defined by them before handling the references.
267
+ // So, we do sort of what HTML does: put metadata at the start (in head), and
268
+ // then put content after (`body`).
269
+ /** @type {Array<Event>} */
270
+ let head = []
271
+ /** @type {Array<Event>} */
272
+ let body = []
273
+
274
+ while (++index < events.length) {
275
+ // Figure out the line ending style used in the document.
276
+ if (
277
+ !lineEndingStyle &&
278
+ (events[index][1].type === types.lineEnding ||
279
+ events[index][1].type === types.lineEndingBlank)
280
+ ) {
281
+ lineEndingStyle = /** @type {LineEnding} */ (
282
+ events[index][2].sliceSerialize(events[index][1])
283
+ )
284
+ }
285
+
286
+ // Preprocess lists to infer whether the list is loose or not.
287
+ if (
288
+ events[index][1].type === types.listOrdered ||
289
+ events[index][1].type === types.listUnordered
290
+ ) {
291
+ if (events[index][0] === 'enter') {
292
+ listStack.push(index)
293
+ } else {
294
+ prepareList(events.slice(listStack.pop(), index))
295
+ }
296
+ }
297
+
298
+ // Move definitions to the front.
299
+ if (events[index][1].type === types.definition) {
300
+ if (events[index][0] === 'enter') {
301
+ body = push(body, events.slice(start, index))
302
+ start = index
303
+ } else {
304
+ head = push(head, events.slice(start, index + 1))
305
+ start = index + 1
306
+ }
307
+ }
308
+ }
309
+
310
+ head = push(head, body)
311
+ head = push(head, events.slice(start))
312
+ index = -1
313
+ const result = head
314
+
315
+ // Handle the start of the document, if defined.
316
+ if (handlers.enter.null) {
317
+ handlers.enter.null.call(context)
318
+ }
319
+
320
+ // Handle all events.
321
+ while (++index < events.length) {
322
+ const handles = handlers[result[index][0]]
323
+ const kind = result[index][1].type
324
+ const handle = handles[kind]
325
+
326
+ if (hasOwnProperty.call(handles, kind) && handle) {
327
+ handle.call(
328
+ {sliceSerialize: result[index][2].sliceSerialize, ...context},
329
+ result[index][1]
330
+ )
331
+ }
332
+ }
333
+
334
+ // Handle the end of the document, if defined.
335
+ if (handlers.exit.null) {
336
+ handlers.exit.null.call(context)
337
+ }
338
+
339
+ return buffers[0].join('')
340
+ }
341
+
342
+ /**
343
+ * Figure out whether lists are loose or not.
344
+ *
345
+ * @param {ReadonlyArray<Event>} slice
346
+ * @returns {undefined}
347
+ */
348
+ function prepareList(slice) {
349
+ const length = slice.length
350
+ let index = 0 // Skip open.
351
+ let containerBalance = 0
352
+ let loose = false
353
+ /** @type {boolean | undefined} */
354
+ let atMarker
355
+
356
+ while (++index < length) {
357
+ const event = slice[index]
358
+
359
+ if (event[1]._container) {
360
+ atMarker = undefined
361
+
362
+ if (event[0] === 'enter') {
363
+ containerBalance++
364
+ } else {
365
+ containerBalance--
366
+ }
367
+ } else {
368
+ switch (event[1].type) {
369
+ case types.listItemPrefix: {
370
+ if (event[0] === 'exit') {
371
+ atMarker = true
372
+ }
373
+
374
+ break
375
+ }
376
+
377
+ case types.linePrefix: {
378
+ // Ignore
379
+
380
+ break
381
+ }
382
+
383
+ case types.lineEndingBlank: {
384
+ if (event[0] === 'enter' && !containerBalance) {
385
+ if (atMarker) {
386
+ atMarker = undefined
387
+ } else {
388
+ loose = true
389
+ }
390
+ }
391
+
392
+ break
393
+ }
394
+
395
+ default: {
396
+ atMarker = undefined
397
+ }
398
+ }
399
+ }
400
+ }
401
+
402
+ slice[0][1]._loose = loose
403
+ }
404
+
405
+ /**
406
+ * @type {CompileContext['setData']}
407
+ */
408
+ function setData(key, value) {
409
+ // @ts-expect-error: assume `value` is omitted (`undefined` is passed) only
410
+ // if allowed.
411
+ data[key] = value
412
+ }
413
+
414
+ /**
415
+ * @type {CompileContext['getData']}
416
+ */
417
+ function getData(key) {
418
+ return data[key]
419
+ }
420
+
421
+ /** @type {CompileContext['buffer']} */
422
+ function buffer() {
423
+ buffers.push([])
424
+ }
425
+
426
+ /** @type {CompileContext['resume']} */
427
+ function resume() {
428
+ const buf = buffers.pop()
429
+ assert(buf !== undefined, 'Cannot resume w/o buffer')
430
+ return buf.join('')
431
+ }
432
+
433
+ /** @type {CompileContext['tag']} */
434
+ function tag(value) {
435
+ if (!tags) {
436
+ return
437
+ }
438
+
439
+ setData('lastWasTag', true)
440
+ buffers[buffers.length - 1].push(value)
441
+ }
442
+
443
+ /** @type {CompileContext['raw']} */
444
+ function raw(value) {
445
+ setData('lastWasTag')
446
+ buffers[buffers.length - 1].push(value)
447
+ }
448
+
449
+ /**
450
+ * Output an extra line ending.
451
+ *
452
+ * @returns {undefined}
453
+ */
454
+ function lineEnding() {
455
+ raw(lineEndingStyle || '\n')
456
+ }
457
+
458
+ /** @type {CompileContext['lineEndingIfNeeded']} */
459
+ function lineEndingIfNeeded() {
460
+ const buffer = buffers[buffers.length - 1]
461
+ const slice = buffer[buffer.length - 1]
462
+ const previous = slice ? slice.charCodeAt(slice.length - 1) : codes.eof
463
+
464
+ if (
465
+ previous === codes.lf ||
466
+ previous === codes.cr ||
467
+ previous === codes.eof
468
+ ) {
469
+ return
470
+ }
471
+
472
+ lineEnding()
473
+ }
474
+
475
+ /** @type {CompileContext['encode']} */
476
+ function encode(value) {
477
+ return getData('ignoreEncode') ? value : _encode(value)
478
+ }
479
+
480
+ //
481
+ // Handlers.
482
+ //
483
+
484
+ /**
485
+ * @returns {undefined}
486
+ */
487
+ function onresumedrop() {
488
+ resume()
489
+ }
490
+
491
+ /**
492
+ * @this {CompileContext}
493
+ * @type {Handle}
494
+ */
495
+ function onenterlistordered(token) {
496
+ tightStack.push(!token._loose)
497
+ lineEndingIfNeeded()
498
+ tag('<ol')
499
+ setData('expectFirstItem', true)
500
+ }
501
+
502
+ /**
503
+ * @this {CompileContext}
504
+ * @type {Handle}
505
+ */
506
+ function onenterlistunordered(token) {
507
+ tightStack.push(!token._loose)
508
+ lineEndingIfNeeded()
509
+ tag('<ul')
510
+ setData('expectFirstItem', true)
511
+ }
512
+
513
+ /**
514
+ * @this {CompileContext}
515
+ * @type {Handle}
516
+ */
517
+ function onenterlistitemvalue(token) {
518
+ if (getData('expectFirstItem')) {
519
+ const value = Number.parseInt(
520
+ this.sliceSerialize(token),
521
+ constants.numericBaseDecimal
522
+ )
523
+
524
+ if (value !== 1) {
525
+ tag(' start="' + encode(String(value)) + '"')
526
+ }
527
+ }
528
+ }
529
+
530
+ /**
531
+ * @returns {undefined}
532
+ */
533
+ function onenterlistitemmarker() {
534
+ if (getData('expectFirstItem')) {
535
+ tag('>')
536
+ } else {
537
+ onexitlistitem()
538
+ }
539
+
540
+ lineEndingIfNeeded()
541
+ tag('<li>')
542
+ setData('expectFirstItem')
543
+ // “Hack” to prevent a line ending from showing up if the item is empty.
544
+ setData('lastWasTag')
545
+ }
546
+
547
+ /**
548
+ * @returns {undefined}
549
+ */
550
+ function onexitlistordered() {
551
+ onexitlistitem()
552
+ tightStack.pop()
553
+ lineEnding()
554
+ tag('</ol>')
555
+ }
556
+
557
+ /**
558
+ * @returns {undefined}
559
+ */
560
+ function onexitlistunordered() {
561
+ onexitlistitem()
562
+ tightStack.pop()
563
+ lineEnding()
564
+ tag('</ul>')
565
+ }
566
+
567
+ /**
568
+ * @returns {undefined}
569
+ */
570
+ function onexitlistitem() {
571
+ if (getData('lastWasTag') && !getData('slurpAllLineEndings')) {
572
+ lineEndingIfNeeded()
573
+ }
574
+
575
+ tag('</li>')
576
+ setData('slurpAllLineEndings')
577
+ }
578
+
579
+ /**
580
+ * @this {CompileContext}
581
+ * @type {Handle}
582
+ */
583
+ function onenterblockquote() {
584
+ tightStack.push(false)
585
+ lineEndingIfNeeded()
586
+ tag('<blockquote>')
587
+ }
588
+
589
+ /**
590
+ * @this {CompileContext}
591
+ * @type {Handle}
592
+ */
593
+ function onexitblockquote() {
594
+ tightStack.pop()
595
+ lineEndingIfNeeded()
596
+ tag('</blockquote>')
597
+ setData('slurpAllLineEndings')
598
+ }
599
+
600
+ /**
601
+ * @this {CompileContext}
602
+ * @type {Handle}
603
+ */
604
+ function onenterparagraph() {
605
+ if (!tightStack[tightStack.length - 1]) {
606
+ lineEndingIfNeeded()
607
+ tag('<p>')
608
+ }
609
+
610
+ setData('slurpAllLineEndings')
611
+ }
612
+
613
+ /**
614
+ * @this {CompileContext}
615
+ * @type {Handle}
616
+ */
617
+ function onexitparagraph() {
618
+ if (tightStack[tightStack.length - 1]) {
619
+ setData('slurpAllLineEndings', true)
620
+ } else {
621
+ tag('</p>')
622
+ }
623
+ }
624
+
625
+ /**
626
+ * @this {CompileContext}
627
+ * @type {Handle}
628
+ */
629
+ function onentercodefenced() {
630
+ lineEndingIfNeeded()
631
+ tag('<pre><code')
632
+ setData('fencesCount', 0)
633
+ }
634
+
635
+ /**
636
+ * @this {CompileContext}
637
+ * @type {Handle}
638
+ */
639
+ function onexitcodefencedfenceinfo() {
640
+ const value = resume()
641
+ tag(' class="language-' + value + '"')
642
+ }
643
+
644
+ /**
645
+ * @this {CompileContext}
646
+ * @type {Handle}
647
+ */
648
+ function onexitcodefencedfence() {
649
+ const count = getData('fencesCount') || 0
650
+
651
+ if (!count) {
652
+ tag('>')
653
+ setData('slurpOneLineEnding', true)
654
+ }
655
+
656
+ setData('fencesCount', count + 1)
657
+ }
658
+
659
+ /**
660
+ * @this {CompileContext}
661
+ * @type {Handle}
662
+ */
663
+ function onentercodeindented() {
664
+ lineEndingIfNeeded()
665
+ tag('<pre><code>')
666
+ }
667
+
668
+ /**
669
+ * @this {CompileContext}
670
+ * @type {Handle}
671
+ */
672
+ function onexitflowcode() {
673
+ const count = getData('fencesCount')
674
+
675
+ // One special case is if we are inside a container, and the fenced code was
676
+ // not closed (meaning it runs to the end).
677
+ // In that case, the following line ending, is considered *outside* the
678
+ // fenced code and block quote by micromark, but CM wants to treat that
679
+ // ending as part of the code.
680
+ if (
681
+ count !== undefined &&
682
+ count < 2 &&
683
+ data.tightStack.length > 0 &&
684
+ !getData('lastWasTag')
685
+ ) {
686
+ lineEnding()
687
+ }
688
+
689
+ // But in most cases, it’s simpler: when we’ve seen some data, emit an extra
690
+ // line ending when needed.
691
+ if (getData('flowCodeSeenData')) {
692
+ lineEndingIfNeeded()
693
+ }
694
+
695
+ tag('</code></pre>')
696
+ if (count !== undefined && count < 2) {
697
+ lineEndingIfNeeded()
698
+ }
699
+
700
+ setData('flowCodeSeenData')
701
+ setData('fencesCount')
702
+ setData('slurpOneLineEnding')
703
+ }
704
+
705
+ /**
706
+ * @this {CompileContext}
707
+ * @type {Handle}
708
+ */
709
+ function onenterimage() {
710
+ mediaStack.push({image: true})
711
+ tags = undefined // Disallow tags.
712
+ }
713
+
714
+ /**
715
+ * @this {CompileContext}
716
+ * @type {Handle}
717
+ */
718
+ function onenterlink() {
719
+ mediaStack.push({})
720
+ }
721
+
722
+ /**
723
+ * @this {CompileContext}
724
+ * @type {Handle}
725
+ */
726
+ function onexitlabeltext(token) {
727
+ mediaStack[mediaStack.length - 1].labelId = this.sliceSerialize(token)
728
+ }
729
+
730
+ /**
731
+ * @this {CompileContext}
732
+ * @type {Handle}
733
+ */
734
+ function onexitlabel() {
735
+ mediaStack[mediaStack.length - 1].label = resume()
736
+ }
737
+
738
+ /**
739
+ * @this {CompileContext}
740
+ * @type {Handle}
741
+ */
742
+ function onexitreferencestring(token) {
743
+ mediaStack[mediaStack.length - 1].referenceId = this.sliceSerialize(token)
744
+ }
745
+
746
+ /**
747
+ * @this {CompileContext}
748
+ * @type {Handle}
749
+ */
750
+ function onenterresource() {
751
+ buffer() // We can have line endings in the resource, ignore them.
752
+ mediaStack[mediaStack.length - 1].destination = ''
753
+ }
754
+
755
+ /**
756
+ * @this {CompileContext}
757
+ * @type {Handle}
758
+ */
759
+ function onenterresourcedestinationstring() {
760
+ buffer()
761
+ // Ignore encoding the result, as we’ll first percent encode the url and
762
+ // encode manually after.
763
+ setData('ignoreEncode', true)
764
+ }
765
+
766
+ /**
767
+ * @this {CompileContext}
768
+ * @type {Handle}
769
+ */
770
+ function onexitresourcedestinationstring() {
771
+ mediaStack[mediaStack.length - 1].destination = resume()
772
+ setData('ignoreEncode')
773
+ }
774
+
775
+ /**
776
+ * @this {CompileContext}
777
+ * @type {Handle}
778
+ */
779
+ function onexitresourcetitlestring() {
780
+ mediaStack[mediaStack.length - 1].title = resume()
781
+ }
782
+
783
+ /**
784
+ * @this {CompileContext}
785
+ * @type {Handle}
786
+ */
787
+ function onexitmedia() {
788
+ let index = mediaStack.length - 1 // Skip current.
789
+ const media = mediaStack[index]
790
+ const id = media.referenceId || media.labelId
791
+ assert(id !== undefined, 'media should have `referenceId` or `labelId`')
792
+ assert(media.label !== undefined, 'media should have `label`')
793
+ const context =
794
+ media.destination === undefined
795
+ ? definitions[normalizeIdentifier(id)]
796
+ : media
797
+
798
+ tags = true
799
+
800
+ while (index--) {
801
+ if (mediaStack[index].image) {
802
+ tags = undefined
803
+ break
804
+ }
805
+ }
806
+
807
+ if (media.image) {
808
+ tag(
809
+ '<img src="' +
810
+ sanitizeUri(
811
+ context.destination,
812
+ settings.allowDangerousProtocol ? undefined : protocolSource
813
+ ) +
814
+ '" alt="'
815
+ )
816
+ raw(media.label)
817
+ tag('"')
818
+ } else {
819
+ tag(
820
+ '<a href="' +
821
+ sanitizeUri(
822
+ context.destination,
823
+ settings.allowDangerousProtocol ? undefined : protocolHref
824
+ ) +
825
+ '"'
826
+ )
827
+ }
828
+
829
+ tag(context.title ? ' title="' + context.title + '"' : '')
830
+
831
+ if (media.image) {
832
+ tag(' />')
833
+ } else {
834
+ tag('>')
835
+ raw(media.label)
836
+ tag('</a>')
837
+ }
838
+
839
+ mediaStack.pop()
840
+ }
841
+
842
+ /**
843
+ * @this {CompileContext}
844
+ * @type {Handle}
845
+ */
846
+ function onenterdefinition() {
847
+ buffer()
848
+ mediaStack.push({})
849
+ }
850
+
851
+ /**
852
+ * @this {CompileContext}
853
+ * @type {Handle}
854
+ */
855
+ function onexitdefinitionlabelstring(token) {
856
+ // Discard label, use the source content instead.
857
+ resume()
858
+ mediaStack[mediaStack.length - 1].labelId = this.sliceSerialize(token)
859
+ }
860
+
861
+ /**
862
+ * @this {CompileContext}
863
+ * @type {Handle}
864
+ */
865
+ function onenterdefinitiondestinationstring() {
866
+ buffer()
867
+ setData('ignoreEncode', true)
868
+ }
869
+
870
+ /**
871
+ * @this {CompileContext}
872
+ * @type {Handle}
873
+ */
874
+ function onexitdefinitiondestinationstring() {
875
+ mediaStack[mediaStack.length - 1].destination = resume()
876
+ setData('ignoreEncode')
877
+ }
878
+
879
+ /**
880
+ * @this {CompileContext}
881
+ * @type {Handle}
882
+ */
883
+ function onexitdefinitiontitlestring() {
884
+ mediaStack[mediaStack.length - 1].title = resume()
885
+ }
886
+
887
+ /**
888
+ * @this {CompileContext}
889
+ * @type {Handle}
890
+ */
891
+ function onexitdefinition() {
892
+ const media = mediaStack[mediaStack.length - 1]
893
+ assert(media.labelId !== undefined, 'media should have `labelId`')
894
+ const id = normalizeIdentifier(media.labelId)
895
+
896
+ resume()
897
+
898
+ if (!hasOwnProperty.call(definitions, id)) {
899
+ definitions[id] = mediaStack[mediaStack.length - 1]
900
+ }
901
+
902
+ mediaStack.pop()
903
+ }
904
+
905
+ /**
906
+ * @this {CompileContext}
907
+ * @type {Handle}
908
+ */
909
+ function onentercontent() {
910
+ setData('slurpAllLineEndings', true)
911
+ }
912
+
913
+ /**
914
+ * @this {CompileContext}
915
+ * @type {Handle}
916
+ */
917
+ function onexitatxheadingsequence(token) {
918
+ // Exit for further sequences.
919
+ if (getData('headingRank')) {
920
+ return
921
+ }
922
+
923
+ setData('headingRank', this.sliceSerialize(token).length)
924
+ lineEndingIfNeeded()
925
+ tag('<h' + getData('headingRank') + '>')
926
+ }
927
+
928
+ /**
929
+ * @this {CompileContext}
930
+ * @type {Handle}
931
+ */
932
+ function onentersetextheading() {
933
+ buffer()
934
+ setData('slurpAllLineEndings')
935
+ }
936
+
937
+ /**
938
+ * @this {CompileContext}
939
+ * @type {Handle}
940
+ */
941
+ function onexitsetextheadingtext() {
942
+ setData('slurpAllLineEndings', true)
943
+ }
944
+
945
+ /**
946
+ * @this {CompileContext}
947
+ * @type {Handle}
948
+ */
949
+ function onexitatxheading() {
950
+ tag('</h' + getData('headingRank') + '>')
951
+ setData('headingRank')
952
+ }
953
+
954
+ /**
955
+ * @this {CompileContext}
956
+ * @type {Handle}
957
+ */
958
+ function onexitsetextheadinglinesequence(token) {
959
+ setData(
960
+ 'headingRank',
961
+ this.sliceSerialize(token).charCodeAt(0) === codes.equalsTo ? 1 : 2
962
+ )
963
+ }
964
+
965
+ /**
966
+ * @this {CompileContext}
967
+ * @type {Handle}
968
+ */
969
+ function onexitsetextheading() {
970
+ const value = resume()
971
+ lineEndingIfNeeded()
972
+ tag('<h' + getData('headingRank') + '>')
973
+ raw(value)
974
+ tag('</h' + getData('headingRank') + '>')
975
+ setData('slurpAllLineEndings')
976
+ setData('headingRank')
977
+ }
978
+
979
+ /**
980
+ * @this {CompileContext}
981
+ * @type {Handle}
982
+ */
983
+ function onexitdata(token) {
984
+ raw(encode(this.sliceSerialize(token)))
985
+ }
986
+
987
+ /**
988
+ * @this {CompileContext}
989
+ * @type {Handle}
990
+ */
991
+ function onexitlineending(token) {
992
+ if (getData('slurpAllLineEndings')) {
993
+ return
994
+ }
995
+
996
+ if (getData('slurpOneLineEnding')) {
997
+ setData('slurpOneLineEnding')
998
+ return
999
+ }
1000
+
1001
+ if (getData('inCodeText')) {
1002
+ raw(' ')
1003
+ return
1004
+ }
1005
+
1006
+ raw(encode(this.sliceSerialize(token)))
1007
+ }
1008
+
1009
+ /**
1010
+ * @this {CompileContext}
1011
+ * @type {Handle}
1012
+ */
1013
+ function onexitcodeflowvalue(token) {
1014
+ raw(encode(this.sliceSerialize(token)))
1015
+ setData('flowCodeSeenData', true)
1016
+ }
1017
+
1018
+ /**
1019
+ * @this {CompileContext}
1020
+ * @type {Handle}
1021
+ */
1022
+ function onexithardbreak() {
1023
+ tag('<br />')
1024
+ }
1025
+
1026
+ /**
1027
+ * @returns {undefined}
1028
+ */
1029
+ function onenterhtmlflow() {
1030
+ lineEndingIfNeeded()
1031
+ onenterhtml()
1032
+ }
1033
+
1034
+ /**
1035
+ * @returns {undefined}
1036
+ */
1037
+ function onexithtml() {
1038
+ setData('ignoreEncode')
1039
+ }
1040
+
1041
+ /**
1042
+ * @returns {undefined}
1043
+ */
1044
+ function onenterhtml() {
1045
+ if (settings.allowDangerousHtml) {
1046
+ setData('ignoreEncode', true)
1047
+ }
1048
+ }
1049
+
1050
+ /**
1051
+ * @returns {undefined}
1052
+ */
1053
+ function onenteremphasis() {
1054
+ tag('<em>')
1055
+ }
1056
+
1057
+ /**
1058
+ * @returns {undefined}
1059
+ */
1060
+ function onenterstrong() {
1061
+ tag('<strong>')
1062
+ }
1063
+
1064
+ /**
1065
+ * @returns {undefined}
1066
+ */
1067
+ function onentercodetext() {
1068
+ setData('inCodeText', true)
1069
+ tag('<code>')
1070
+ }
1071
+
1072
+ /**
1073
+ * @returns {undefined}
1074
+ */
1075
+ function onexitcodetext() {
1076
+ setData('inCodeText')
1077
+ tag('</code>')
1078
+ }
1079
+
1080
+ /**
1081
+ * @returns {undefined}
1082
+ */
1083
+ function onexitemphasis() {
1084
+ tag('</em>')
1085
+ }
1086
+
1087
+ /**
1088
+ * @returns {undefined}
1089
+ */
1090
+ function onexitstrong() {
1091
+ tag('</strong>')
1092
+ }
1093
+
1094
+ /**
1095
+ * @returns {undefined}
1096
+ */
1097
+ function onexitthematicbreak() {
1098
+ lineEndingIfNeeded()
1099
+ tag('<hr />')
1100
+ }
1101
+
1102
+ /**
1103
+ * @this {CompileContext}
1104
+ * @param {Token} token
1105
+ * @returns {undefined}
1106
+ */
1107
+ function onexitcharacterreferencemarker(token) {
1108
+ setData('characterReferenceType', token.type)
1109
+ }
1110
+
1111
+ /**
1112
+ * @this {CompileContext}
1113
+ * @type {Handle}
1114
+ */
1115
+ function onexitcharacterreferencevalue(token) {
1116
+ const value = this.sliceSerialize(token)
1117
+ const decoded = getData('characterReferenceType')
1118
+ ? decodeNumericCharacterReference(
1119
+ value,
1120
+ getData('characterReferenceType') ===
1121
+ types.characterReferenceMarkerNumeric
1122
+ ? constants.numericBaseDecimal
1123
+ : constants.numericBaseHexadecimal
1124
+ )
1125
+ : decodeNamedCharacterReference(value)
1126
+
1127
+ // `decodeNamedCharacterReference` can return `false` for invalid named
1128
+ // character references,
1129
+ // but everything we’ve tokenized is valid.
1130
+ raw(encode(/** @type {string} */ (decoded)))
1131
+ setData('characterReferenceType')
1132
+ }
1133
+
1134
+ /**
1135
+ * @this {CompileContext}
1136
+ * @type {Handle}
1137
+ */
1138
+ function onexitautolinkprotocol(token) {
1139
+ const uri = this.sliceSerialize(token)
1140
+ tag(
1141
+ '<a href="' +
1142
+ sanitizeUri(
1143
+ uri,
1144
+ settings.allowDangerousProtocol ? undefined : protocolHref
1145
+ ) +
1146
+ '">'
1147
+ )
1148
+ raw(encode(uri))
1149
+ tag('</a>')
1150
+ }
1151
+
1152
+ /**
1153
+ * @this {CompileContext}
1154
+ * @type {Handle}
1155
+ */
1156
+ function onexitautolinkemail(token) {
1157
+ const uri = this.sliceSerialize(token)
1158
+ tag('<a href="' + sanitizeUri('mailto:' + uri) + '">')
1159
+ raw(encode(uri))
1160
+ tag('</a>')
1161
+ }
1162
+ }