shortcutxl 0.2.19 → 0.2.21

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 (951) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/agent-docs/api-reference.json +2041 -0
  3. package/agent-docs/examples/extensions/built-in-tool-renderer.ts +2 -13
  4. package/agent-docs/examples/extensions/claude-code.ts +69 -0
  5. package/agent-docs/examples/extensions/custom-provider-gitlab-duo/test.ts +1 -7
  6. package/agent-docs/examples/sdk/04-skills.ts +1 -6
  7. package/dist/cli/config-selector.js +1 -1
  8. package/dist/cli/session-picker.js +1 -1
  9. package/dist/config.js +15 -5
  10. package/dist/core/agent-loop.js +8 -9
  11. package/dist/core/agent-session.js +102 -462
  12. package/dist/core/agent.js +1 -0
  13. package/dist/core/export-html/template.js +14 -2
  14. package/dist/core/extensions/loader.js +4 -4
  15. package/dist/core/keybindings.js +1 -1
  16. package/dist/core/run-agent.js +84 -0
  17. package/dist/core/session/extension-emitter.js +36 -0
  18. package/dist/core/session/model-manager.js +111 -0
  19. package/dist/core/session/persistence-handler.js +104 -0
  20. package/dist/core/session/queue-tracker.js +91 -0
  21. package/dist/core/session/tool-registry.js +231 -0
  22. package/dist/core/settings-manager.js +11 -3
  23. package/dist/core/theme.js +1 -1
  24. package/dist/core/tools/edit.js +1 -1
  25. package/dist/core/tools/find.js +1 -1
  26. package/dist/core/tools/grep.js +1 -1
  27. package/dist/core/tools/ls.js +1 -1
  28. package/dist/core/tools/read.js +1 -1
  29. package/dist/core/tools/write.js +1 -1
  30. package/dist/custom/dev/index.js +16 -1
  31. package/dist/custom/excel-session.js +2 -2
  32. package/dist/custom/exec-mode-command.js +27 -0
  33. package/dist/custom/install-utils.js +1 -4
  34. package/dist/custom/new-sheet/api-guidelines.js +83 -0
  35. package/dist/custom/new-sheet/api-lookup.js +69 -0
  36. package/dist/custom/new-sheet/api-overlay.js +133 -0
  37. package/dist/custom/new-sheet/api-reference-loader.js +29 -0
  38. package/dist/custom/new-sheet/cell-diff/address-utils.js +80 -0
  39. package/dist/custom/new-sheet/cell-diff/cell-categorizer.js +100 -0
  40. package/dist/custom/new-sheet/cell-diff/cell-diff-formatter.js +201 -0
  41. package/dist/custom/new-sheet/cell-diff/index.js +23 -0
  42. package/dist/custom/new-sheet/cell-diff/types.js +33 -0
  43. package/dist/custom/new-sheet/mutation-tracker.js +358 -0
  44. package/dist/custom/new-sheet/sandbox-globals.js +118 -0
  45. package/dist/custom/new-sheet/sdk-types.js +9 -0
  46. package/dist/custom/new-sheet/sheet-engine-poc.js +112 -0
  47. package/dist/custom/new-sheet/sheet-engine.js +146 -0
  48. package/dist/custom/new-sheet/sheet-exec.js +219 -0
  49. package/dist/custom/new-sheet-command.js +24 -0
  50. package/dist/custom/preflight.js +28 -18
  51. package/dist/custom/prompts/action.js +33 -12
  52. package/dist/custom/prompts/shared.js +0 -6
  53. package/dist/custom/providers/llm-usage.js +1 -5
  54. package/dist/custom/providers/shortcut-invoke.js +3 -4
  55. package/dist/custom/providers/shortcut-stream.js +3 -4
  56. package/dist/custom/sandbox/index.js +6 -10
  57. package/dist/custom/sandbox/lib/bwrap.js +93 -0
  58. package/dist/custom/sandbox/lib/index.js +20 -0
  59. package/dist/custom/sandbox/lib/manager.js +87 -0
  60. package/dist/custom/sandbox/lib/network/domain-filter.js +29 -0
  61. package/dist/custom/sandbox/lib/network/http-proxy.js +172 -0
  62. package/dist/custom/sandbox/lib/network/index.js +5 -0
  63. package/dist/custom/sandbox/lib/network/proxy.js +145 -0
  64. package/dist/custom/sandbox/lib/network/socks-proxy.js +269 -0
  65. package/dist/custom/sandbox/{sandbox-paths.js → lib/paths.js} +1 -3
  66. package/dist/custom/sandbox/lib/resolve.js +320 -0
  67. package/dist/custom/sandbox/lib/smoke.js +87 -0
  68. package/dist/custom/sandbox/lib/types.js +9 -0
  69. package/dist/custom/sandbox/lib/wrap-command.js +110 -0
  70. package/dist/custom/sandbox/{wsl-detect.js → lib/wsl-detect.js} +10 -14
  71. package/dist/custom/sandbox/lib/wsl-setup.js +152 -0
  72. package/dist/custom/sandbox/sandbox-bash-tool.js +12 -7
  73. package/dist/custom/sandbox/sandbox-command.js +17 -16
  74. package/dist/custom/sandbox/sandbox-executor.js +13 -38
  75. package/dist/custom/sandbox/sandbox-manager.js +43 -31
  76. package/dist/custom/sandbox/sandbox-prompt.js +2 -2
  77. package/dist/custom/sandbox/tests/test-helpers.js +24 -0
  78. package/dist/custom/sheet-api/api-guidelines.js +83 -0
  79. package/dist/custom/sheet-api/api-lookup.js +69 -0
  80. package/dist/custom/sheet-api/api-overlay.js +133 -0
  81. package/dist/custom/sheet-api/api-reference-loader.js +29 -0
  82. package/dist/custom/sync-xll.js +1 -1
  83. package/dist/custom/tools/approval.js +2 -2
  84. package/dist/custom/tools/excel-exec.js +29 -9
  85. package/dist/custom/tools/llm-analysis.js +54 -29
  86. package/dist/custom/tools/task/task.js +4 -7
  87. package/dist/custom/tools/todo-list.js +5 -1
  88. package/dist/custom/tracing/session-upload.js +4 -1
  89. package/dist/custom/uninstall.js +31 -20
  90. package/dist/main.js +77 -22
  91. package/dist/modes/interactive/components/assistant-message.js +1 -1
  92. package/dist/modes/interactive/components/bash-execution.js +5 -9
  93. package/dist/modes/interactive/components/branch-summary-message.js +1 -1
  94. package/dist/modes/interactive/components/compaction-summary-message.js +1 -1
  95. package/dist/modes/interactive/components/config-selector.js +1 -1
  96. package/dist/modes/interactive/components/custom-editor.js +3 -1
  97. package/dist/modes/interactive/components/custom-message.js +1 -1
  98. package/dist/modes/interactive/components/extension-editor.js +1 -1
  99. package/dist/modes/interactive/components/extension-input.js +1 -1
  100. package/dist/modes/interactive/components/extension-selector.js +1 -1
  101. package/dist/modes/interactive/components/footer.js +3 -2
  102. package/dist/modes/interactive/components/keybinding-hints.js +1 -1
  103. package/dist/modes/interactive/components/layout.js +1 -1
  104. package/dist/modes/interactive/components/login-dialog.js +1 -1
  105. package/dist/modes/interactive/components/model-selector.js +1 -1
  106. package/dist/modes/interactive/components/oauth-selector.js +1 -1
  107. package/dist/modes/interactive/components/session-selector.js +1 -1
  108. package/dist/modes/interactive/components/skill-invocation-message.js +1 -1
  109. package/dist/modes/interactive/components/theme-selector.js +1 -1
  110. package/dist/modes/interactive/components/tool-execution.js +1 -1
  111. package/dist/modes/interactive/components/tool-group.js +1 -1
  112. package/dist/modes/interactive/components/tree-selector.js +1 -1
  113. package/dist/modes/interactive/components/user-message-selector.js +1 -1
  114. package/dist/modes/interactive/components/user-message.js +1 -1
  115. package/dist/modes/interactive/file-attachments.js +4 -9
  116. package/dist/modes/interactive/interactive-mode.js +8 -136
  117. package/dist/modes/print-mode.js +2 -1
  118. package/dist/modes/rpc/rpc-mode.js +3 -4
  119. package/dist/tui/autocomplete.js +543 -555
  120. package/dist/tui/components/box.js +93 -89
  121. package/dist/tui/components/cancellable-loader.js +23 -23
  122. package/dist/tui/components/editor.js +1671 -1642
  123. package/dist/tui/components/image.js +67 -63
  124. package/dist/tui/components/input.js +408 -408
  125. package/dist/tui/components/loader.js +42 -42
  126. package/dist/tui/components/markdown.js +612 -617
  127. package/dist/tui/components/select-list.js +148 -142
  128. package/dist/tui/components/settings-list.js +187 -172
  129. package/dist/tui/components/spacer.js +17 -17
  130. package/dist/tui/components/text.js +83 -80
  131. package/dist/tui/components/truncated-text.js +43 -43
  132. package/dist/tui/editor-component.js +1 -1
  133. package/dist/tui/fuzzy.js +86 -88
  134. package/dist/tui/get-east-asian-width/index.js +13 -17
  135. package/dist/tui/get-east-asian-width/lookup.js +386 -384
  136. package/dist/tui/index.js +54 -22
  137. package/dist/tui/keybindings.js +92 -95
  138. package/dist/tui/keys.js +794 -806
  139. package/dist/tui/kill-ring.js +31 -33
  140. package/dist/tui/stdin-buffer.js +236 -241
  141. package/dist/tui/terminal-image.js +210 -224
  142. package/dist/tui/terminal.js +235 -242
  143. package/dist/tui/tui/autocomplete.js +543 -555
  144. package/dist/tui/tui/components/box.js +91 -89
  145. package/dist/tui/tui/components/cancellable-loader.js +23 -23
  146. package/dist/tui/tui/components/editor.js +1671 -1642
  147. package/dist/tui/tui/components/image.js +67 -63
  148. package/dist/tui/tui/components/input.js +408 -408
  149. package/dist/tui/tui/components/loader.js +42 -42
  150. package/dist/tui/tui/components/markdown.js +612 -617
  151. package/dist/tui/tui/components/select-list.js +148 -142
  152. package/dist/tui/tui/components/settings-list.js +187 -172
  153. package/dist/tui/tui/components/spacer.js +17 -17
  154. package/dist/tui/tui/components/text.js +81 -80
  155. package/dist/tui/tui/components/truncated-text.js +43 -43
  156. package/dist/tui/tui/editor-component.js +1 -1
  157. package/dist/tui/tui/fuzzy.js +86 -88
  158. package/dist/tui/tui/get-east-asian-width/index.js +13 -17
  159. package/dist/tui/tui/get-east-asian-width/lookup.js +386 -384
  160. package/dist/tui/tui/index.js +54 -22
  161. package/dist/tui/tui/keybindings.js +92 -95
  162. package/dist/tui/tui/keys.js +794 -806
  163. package/dist/tui/tui/kill-ring.js +31 -33
  164. package/dist/tui/tui/stdin-buffer.js +236 -241
  165. package/dist/tui/tui/terminal-image.js +210 -224
  166. package/dist/tui/tui/terminal.js +235 -242
  167. package/dist/tui/tui/tui.js +908 -920
  168. package/dist/tui/tui/undo-stack.js +17 -17
  169. package/dist/tui/tui/utils.js +647 -674
  170. package/dist/tui/tui.js +908 -920
  171. package/dist/tui/undo-stack.js +17 -17
  172. package/dist/tui/utils.js +647 -674
  173. package/dist/utils/log.js +51 -0
  174. package/package.json +9 -5
  175. package/skills/{com-advanced-api → advanced-com-api}/SKILL.md +1 -1
  176. package/skills/advanced-com-api/excel-type-library.py +30935 -0
  177. package/skills/advanced-com-api/office-type-library.py +11220 -0
  178. package/skills/sec-edgar/sec_to_pdf.py +26 -28
  179. package/wsl/alpine-minirootfs.tar.gz +0 -0
  180. package/xll/ShortcutXL.xll +0 -0
  181. package/xll/modules/debug_render.py +289 -0
  182. package/xll/modules/shortcut_xl/_com.py +10 -11
  183. package/xll/modules/shortcut_xl/_diff_highlight.py +17 -15
  184. package/xll/modules/shortcut_xl/_exec_entry.py +32 -14
  185. package/xll/modules/shortcut_xl/_log.py +4 -4
  186. package/xll/modules/shortcut_xl/_managed.py +25 -8
  187. package/xll/modules/shortcut_xl/_registry.py +12 -7
  188. package/xll/modules/shortcut_xl/_threading.py +33 -20
  189. package/xll/modules/shortcut_xl/_tracking.py +31 -14
  190. package/xll/modules/shortcut_xl/api/categorize.py +31 -17
  191. package/xll/modules/shortcut_xl/api/format.py +16 -26
  192. package/xll/modules/shortcut_xl/api/named_ranges.py +10 -10
  193. package/xll/modules/shortcut_xl/api/picture.py +6 -6
  194. package/xll/modules/shortcut_xl/api/range_formatter.py +44 -22
  195. package/xll/modules/shortcut_xl/api/style.py +3 -3
  196. package/xll/modules/shortcut_xl/api/utils/helpers.py +16 -26
  197. package/xll/modules/shortcut_xl/api/utils/numerical.py +6 -1
  198. package/xll/modules/shortcut_xl/api/utils/ranges.py +12 -7
  199. package/xll/modules/shortcut_xl/api/workbook.py +14 -28
  200. package/xll/modules/shortcut_xl/api/worksheet.py +33 -49
  201. package/xll/modules/shortcut_xl/api-reference.py +9 -5
  202. package/xll/python/Lib/site-packages/__pycache__/typing_extensions.cpython-312.pyc +0 -0
  203. package/xll/python/Lib/site-packages/anyio/__pycache__/__init__.cpython-312.pyc +0 -0
  204. package/xll/python/Lib/site-packages/anyio/__pycache__/from_thread.cpython-312.pyc +0 -0
  205. package/xll/python/Lib/site-packages/anyio/__pycache__/functools.cpython-312.pyc +0 -0
  206. package/xll/python/Lib/site-packages/anyio/__pycache__/lowlevel.cpython-312.pyc +0 -0
  207. package/xll/python/Lib/site-packages/anyio/__pycache__/pytest_plugin.cpython-312.pyc +0 -0
  208. package/xll/python/Lib/site-packages/anyio/__pycache__/to_interpreter.cpython-312.pyc +0 -0
  209. package/xll/python/Lib/site-packages/anyio/__pycache__/to_process.cpython-312.pyc +0 -0
  210. package/xll/python/Lib/site-packages/anyio/__pycache__/to_thread.cpython-312.pyc +0 -0
  211. package/xll/python/Lib/site-packages/anyio/_backends/__pycache__/__init__.cpython-312.pyc +0 -0
  212. package/xll/python/Lib/site-packages/anyio/_backends/__pycache__/_asyncio.cpython-312.pyc +0 -0
  213. package/xll/python/Lib/site-packages/anyio/_backends/__pycache__/_trio.cpython-312.pyc +0 -0
  214. package/xll/python/Lib/site-packages/anyio/_backends/_asyncio.py +39 -23
  215. package/xll/python/Lib/site-packages/anyio/_backends/_trio.py +2 -5
  216. package/xll/python/Lib/site-packages/anyio/_core/__pycache__/__init__.cpython-312.pyc +0 -0
  217. package/xll/python/Lib/site-packages/anyio/_core/__pycache__/_asyncio_selector_thread.cpython-312.pyc +0 -0
  218. package/xll/python/Lib/site-packages/anyio/_core/__pycache__/_contextmanagers.cpython-312.pyc +0 -0
  219. package/xll/python/Lib/site-packages/anyio/_core/__pycache__/_eventloop.cpython-312.pyc +0 -0
  220. package/xll/python/Lib/site-packages/anyio/_core/__pycache__/_exceptions.cpython-312.pyc +0 -0
  221. package/xll/python/Lib/site-packages/anyio/_core/__pycache__/_fileio.cpython-312.pyc +0 -0
  222. package/xll/python/Lib/site-packages/anyio/_core/__pycache__/_resources.cpython-312.pyc +0 -0
  223. package/xll/python/Lib/site-packages/anyio/_core/__pycache__/_signals.cpython-312.pyc +0 -0
  224. package/xll/python/Lib/site-packages/anyio/_core/__pycache__/_sockets.cpython-312.pyc +0 -0
  225. package/xll/python/Lib/site-packages/anyio/_core/__pycache__/_streams.cpython-312.pyc +0 -0
  226. package/xll/python/Lib/site-packages/anyio/_core/__pycache__/_subprocesses.cpython-312.pyc +0 -0
  227. package/xll/python/Lib/site-packages/anyio/_core/__pycache__/_synchronization.cpython-312.pyc +0 -0
  228. package/xll/python/Lib/site-packages/anyio/_core/__pycache__/_tasks.cpython-312.pyc +0 -0
  229. package/xll/python/Lib/site-packages/anyio/_core/__pycache__/_tempfile.cpython-312.pyc +0 -0
  230. package/xll/python/Lib/site-packages/anyio/_core/__pycache__/_testing.cpython-312.pyc +0 -0
  231. package/xll/python/Lib/site-packages/anyio/_core/__pycache__/_typedattr.cpython-312.pyc +0 -0
  232. package/xll/python/Lib/site-packages/anyio/_core/_fileio.py +12 -10
  233. package/xll/python/Lib/site-packages/anyio/_core/_subprocesses.py +2 -8
  234. package/xll/python/Lib/site-packages/anyio/_core/_synchronization.py +4 -0
  235. package/xll/python/Lib/site-packages/anyio/_core/_tempfile.py +1 -4
  236. package/xll/python/Lib/site-packages/anyio/abc/__pycache__/__init__.cpython-312.pyc +0 -0
  237. package/xll/python/Lib/site-packages/anyio/abc/__pycache__/_eventloop.cpython-312.pyc +0 -0
  238. package/xll/python/Lib/site-packages/anyio/abc/__pycache__/_resources.cpython-312.pyc +0 -0
  239. package/xll/python/Lib/site-packages/anyio/abc/__pycache__/_sockets.cpython-312.pyc +0 -0
  240. package/xll/python/Lib/site-packages/anyio/abc/__pycache__/_streams.cpython-312.pyc +0 -0
  241. package/xll/python/Lib/site-packages/anyio/abc/__pycache__/_subprocesses.cpython-312.pyc +0 -0
  242. package/xll/python/Lib/site-packages/anyio/abc/__pycache__/_tasks.cpython-312.pyc +0 -0
  243. package/xll/python/Lib/site-packages/anyio/abc/__pycache__/_testing.cpython-312.pyc +0 -0
  244. package/xll/python/Lib/site-packages/anyio/abc/_eventloop.py +2 -7
  245. package/xll/python/Lib/site-packages/anyio/abc/_sockets.py +5 -11
  246. package/xll/python/Lib/site-packages/anyio/abc/_streams.py +14 -20
  247. package/xll/python/Lib/site-packages/anyio/functools.py +51 -17
  248. package/xll/python/Lib/site-packages/anyio/pytest_plugin.py +62 -1
  249. package/xll/python/Lib/site-packages/anyio/streams/__pycache__/__init__.cpython-312.pyc +0 -0
  250. package/xll/python/Lib/site-packages/anyio/streams/__pycache__/buffered.cpython-312.pyc +0 -0
  251. package/xll/python/Lib/site-packages/anyio/streams/__pycache__/file.cpython-312.pyc +0 -0
  252. package/xll/python/Lib/site-packages/anyio/streams/__pycache__/memory.cpython-312.pyc +0 -0
  253. package/xll/python/Lib/site-packages/anyio/streams/__pycache__/stapled.cpython-312.pyc +0 -0
  254. package/xll/python/Lib/site-packages/anyio/streams/__pycache__/text.cpython-312.pyc +0 -0
  255. package/xll/python/Lib/site-packages/anyio/streams/__pycache__/tls.cpython-312.pyc +0 -0
  256. package/xll/python/Lib/site-packages/anyio/streams/file.py +5 -5
  257. package/xll/python/Lib/site-packages/anyio/streams/tls.py +6 -9
  258. package/xll/python/Lib/site-packages/anyio/to_thread.py +3 -3
  259. package/xll/python/Lib/site-packages/{anyio-4.12.1.dist-info → anyio-4.13.0.dist-info}/METADATA +14 -5
  260. package/xll/python/Lib/site-packages/{anyio-4.12.1.dist-info → anyio-4.13.0.dist-info}/RECORD +21 -21
  261. package/xll/python/Lib/site-packages/{anyio-4.12.1.dist-info → anyio-4.13.0.dist-info}/WHEEL +1 -1
  262. package/xll/python/Lib/site-packages/certifi/__pycache__/__init__.cpython-312.pyc +0 -0
  263. package/xll/python/Lib/site-packages/certifi/__pycache__/__main__.cpython-312.pyc +0 -0
  264. package/xll/python/Lib/site-packages/certifi/__pycache__/core.cpython-312.pyc +0 -0
  265. package/xll/python/Lib/site-packages/et_xmlfile/__pycache__/__init__.cpython-312.pyc +0 -0
  266. package/xll/python/Lib/site-packages/et_xmlfile/__pycache__/incremental_tree.cpython-312.pyc +0 -0
  267. package/xll/python/Lib/site-packages/et_xmlfile/__pycache__/xmlfile.cpython-312.pyc +0 -0
  268. package/xll/python/Lib/site-packages/h11/__pycache__/__init__.cpython-312.pyc +0 -0
  269. package/xll/python/Lib/site-packages/h11/__pycache__/_abnf.cpython-312.pyc +0 -0
  270. package/xll/python/Lib/site-packages/h11/__pycache__/_connection.cpython-312.pyc +0 -0
  271. package/xll/python/Lib/site-packages/h11/__pycache__/_events.cpython-312.pyc +0 -0
  272. package/xll/python/Lib/site-packages/h11/__pycache__/_headers.cpython-312.pyc +0 -0
  273. package/xll/python/Lib/site-packages/h11/__pycache__/_readers.cpython-312.pyc +0 -0
  274. package/xll/python/Lib/site-packages/h11/__pycache__/_receivebuffer.cpython-312.pyc +0 -0
  275. package/xll/python/Lib/site-packages/h11/__pycache__/_state.cpython-312.pyc +0 -0
  276. package/xll/python/Lib/site-packages/h11/__pycache__/_util.cpython-312.pyc +0 -0
  277. package/xll/python/Lib/site-packages/h11/__pycache__/_version.cpython-312.pyc +0 -0
  278. package/xll/python/Lib/site-packages/h11/__pycache__/_writers.cpython-312.pyc +0 -0
  279. package/xll/python/Lib/site-packages/httpcore/__pycache__/__init__.cpython-312.pyc +0 -0
  280. package/xll/python/Lib/site-packages/httpcore/__pycache__/_api.cpython-312.pyc +0 -0
  281. package/xll/python/Lib/site-packages/httpcore/__pycache__/_exceptions.cpython-312.pyc +0 -0
  282. package/xll/python/Lib/site-packages/httpcore/__pycache__/_models.cpython-312.pyc +0 -0
  283. package/xll/python/Lib/site-packages/httpcore/__pycache__/_ssl.cpython-312.pyc +0 -0
  284. package/xll/python/Lib/site-packages/httpcore/__pycache__/_synchronization.cpython-312.pyc +0 -0
  285. package/xll/python/Lib/site-packages/httpcore/__pycache__/_trace.cpython-312.pyc +0 -0
  286. package/xll/python/Lib/site-packages/httpcore/__pycache__/_utils.cpython-312.pyc +0 -0
  287. package/xll/python/Lib/site-packages/httpcore/_async/__pycache__/__init__.cpython-312.pyc +0 -0
  288. package/xll/python/Lib/site-packages/httpcore/_async/__pycache__/connection.cpython-312.pyc +0 -0
  289. package/xll/python/Lib/site-packages/httpcore/_async/__pycache__/connection_pool.cpython-312.pyc +0 -0
  290. package/xll/python/Lib/site-packages/httpcore/_async/__pycache__/http11.cpython-312.pyc +0 -0
  291. package/xll/python/Lib/site-packages/httpcore/_async/__pycache__/http2.cpython-312.pyc +0 -0
  292. package/xll/python/Lib/site-packages/httpcore/_async/__pycache__/http_proxy.cpython-312.pyc +0 -0
  293. package/xll/python/Lib/site-packages/httpcore/_async/__pycache__/interfaces.cpython-312.pyc +0 -0
  294. package/xll/python/Lib/site-packages/httpcore/_async/__pycache__/socks_proxy.cpython-312.pyc +0 -0
  295. package/xll/python/Lib/site-packages/httpcore/_backends/__pycache__/__init__.cpython-312.pyc +0 -0
  296. package/xll/python/Lib/site-packages/httpcore/_backends/__pycache__/anyio.cpython-312.pyc +0 -0
  297. package/xll/python/Lib/site-packages/httpcore/_backends/__pycache__/auto.cpython-312.pyc +0 -0
  298. package/xll/python/Lib/site-packages/httpcore/_backends/__pycache__/base.cpython-312.pyc +0 -0
  299. package/xll/python/Lib/site-packages/httpcore/_backends/__pycache__/mock.cpython-312.pyc +0 -0
  300. package/xll/python/Lib/site-packages/httpcore/_backends/__pycache__/sync.cpython-312.pyc +0 -0
  301. package/xll/python/Lib/site-packages/httpcore/_backends/__pycache__/trio.cpython-312.pyc +0 -0
  302. package/xll/python/Lib/site-packages/httpcore/_sync/__pycache__/__init__.cpython-312.pyc +0 -0
  303. package/xll/python/Lib/site-packages/httpcore/_sync/__pycache__/connection.cpython-312.pyc +0 -0
  304. package/xll/python/Lib/site-packages/httpcore/_sync/__pycache__/connection_pool.cpython-312.pyc +0 -0
  305. package/xll/python/Lib/site-packages/httpcore/_sync/__pycache__/http11.cpython-312.pyc +0 -0
  306. package/xll/python/Lib/site-packages/httpcore/_sync/__pycache__/http2.cpython-312.pyc +0 -0
  307. package/xll/python/Lib/site-packages/httpcore/_sync/__pycache__/http_proxy.cpython-312.pyc +0 -0
  308. package/xll/python/Lib/site-packages/httpcore/_sync/__pycache__/interfaces.cpython-312.pyc +0 -0
  309. package/xll/python/Lib/site-packages/httpcore/_sync/__pycache__/socks_proxy.cpython-312.pyc +0 -0
  310. package/xll/python/Lib/site-packages/httpx/__pycache__/__init__.cpython-312.pyc +0 -0
  311. package/xll/python/Lib/site-packages/httpx/__pycache__/__version__.cpython-312.pyc +0 -0
  312. package/xll/python/Lib/site-packages/httpx/__pycache__/_api.cpython-312.pyc +0 -0
  313. package/xll/python/Lib/site-packages/httpx/__pycache__/_auth.cpython-312.pyc +0 -0
  314. package/xll/python/Lib/site-packages/httpx/__pycache__/_client.cpython-312.pyc +0 -0
  315. package/xll/python/Lib/site-packages/httpx/__pycache__/_config.cpython-312.pyc +0 -0
  316. package/xll/python/Lib/site-packages/httpx/__pycache__/_content.cpython-312.pyc +0 -0
  317. package/xll/python/Lib/site-packages/httpx/__pycache__/_decoders.cpython-312.pyc +0 -0
  318. package/xll/python/Lib/site-packages/httpx/__pycache__/_exceptions.cpython-312.pyc +0 -0
  319. package/xll/python/Lib/site-packages/httpx/__pycache__/_main.cpython-312.pyc +0 -0
  320. package/xll/python/Lib/site-packages/httpx/__pycache__/_models.cpython-312.pyc +0 -0
  321. package/xll/python/Lib/site-packages/httpx/__pycache__/_multipart.cpython-312.pyc +0 -0
  322. package/xll/python/Lib/site-packages/httpx/__pycache__/_status_codes.cpython-312.pyc +0 -0
  323. package/xll/python/Lib/site-packages/httpx/__pycache__/_types.cpython-312.pyc +0 -0
  324. package/xll/python/Lib/site-packages/httpx/__pycache__/_urlparse.cpython-312.pyc +0 -0
  325. package/xll/python/Lib/site-packages/httpx/__pycache__/_urls.cpython-312.pyc +0 -0
  326. package/xll/python/Lib/site-packages/httpx/__pycache__/_utils.cpython-312.pyc +0 -0
  327. package/xll/python/Lib/site-packages/httpx/_transports/__pycache__/__init__.cpython-312.pyc +0 -0
  328. package/xll/python/Lib/site-packages/httpx/_transports/__pycache__/asgi.cpython-312.pyc +0 -0
  329. package/xll/python/Lib/site-packages/httpx/_transports/__pycache__/base.cpython-312.pyc +0 -0
  330. package/xll/python/Lib/site-packages/httpx/_transports/__pycache__/default.cpython-312.pyc +0 -0
  331. package/xll/python/Lib/site-packages/httpx/_transports/__pycache__/mock.cpython-312.pyc +0 -0
  332. package/xll/python/Lib/site-packages/httpx/_transports/__pycache__/wsgi.cpython-312.pyc +0 -0
  333. package/xll/python/Lib/site-packages/httpx-0.28.1.dist-info/RECORD +1 -1
  334. package/xll/python/Lib/site-packages/idna/__pycache__/__init__.cpython-312.pyc +0 -0
  335. package/xll/python/Lib/site-packages/idna/__pycache__/codec.cpython-312.pyc +0 -0
  336. package/xll/python/Lib/site-packages/idna/__pycache__/compat.cpython-312.pyc +0 -0
  337. package/xll/python/Lib/site-packages/idna/__pycache__/core.cpython-312.pyc +0 -0
  338. package/xll/python/Lib/site-packages/idna/__pycache__/idnadata.cpython-312.pyc +0 -0
  339. package/xll/python/Lib/site-packages/idna/__pycache__/intranges.cpython-312.pyc +0 -0
  340. package/xll/python/Lib/site-packages/idna/__pycache__/package_data.cpython-312.pyc +0 -0
  341. package/xll/python/Lib/site-packages/idna/__pycache__/uts46data.cpython-312.pyc +0 -0
  342. package/xll/python/Lib/site-packages/openpyxl/__pycache__/__init__.cpython-312.pyc +0 -0
  343. package/xll/python/Lib/site-packages/openpyxl/__pycache__/_constants.cpython-312.pyc +0 -0
  344. package/xll/python/Lib/site-packages/openpyxl/cell/__pycache__/__init__.cpython-312.pyc +0 -0
  345. package/xll/python/Lib/site-packages/openpyxl/cell/__pycache__/_writer.cpython-312.pyc +0 -0
  346. package/xll/python/Lib/site-packages/openpyxl/cell/__pycache__/cell.cpython-312.pyc +0 -0
  347. package/xll/python/Lib/site-packages/openpyxl/cell/__pycache__/read_only.cpython-312.pyc +0 -0
  348. package/xll/python/Lib/site-packages/openpyxl/cell/__pycache__/rich_text.cpython-312.pyc +0 -0
  349. package/xll/python/Lib/site-packages/openpyxl/cell/__pycache__/text.cpython-312.pyc +0 -0
  350. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/_3d.cpython-312.pyc +0 -0
  351. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/__init__.cpython-312.pyc +0 -0
  352. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/_chart.cpython-312.pyc +0 -0
  353. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/area_chart.cpython-312.pyc +0 -0
  354. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/axis.cpython-312.pyc +0 -0
  355. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/bar_chart.cpython-312.pyc +0 -0
  356. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/bubble_chart.cpython-312.pyc +0 -0
  357. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/chartspace.cpython-312.pyc +0 -0
  358. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/data_source.cpython-312.pyc +0 -0
  359. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/descriptors.cpython-312.pyc +0 -0
  360. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/error_bar.cpython-312.pyc +0 -0
  361. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/label.cpython-312.pyc +0 -0
  362. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/layout.cpython-312.pyc +0 -0
  363. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/legend.cpython-312.pyc +0 -0
  364. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/line_chart.cpython-312.pyc +0 -0
  365. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/marker.cpython-312.pyc +0 -0
  366. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/picture.cpython-312.pyc +0 -0
  367. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/pie_chart.cpython-312.pyc +0 -0
  368. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/pivot.cpython-312.pyc +0 -0
  369. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/plotarea.cpython-312.pyc +0 -0
  370. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/print_settings.cpython-312.pyc +0 -0
  371. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/radar_chart.cpython-312.pyc +0 -0
  372. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/reader.cpython-312.pyc +0 -0
  373. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/reference.cpython-312.pyc +0 -0
  374. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/scatter_chart.cpython-312.pyc +0 -0
  375. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/series.cpython-312.pyc +0 -0
  376. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/series_factory.cpython-312.pyc +0 -0
  377. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/shapes.cpython-312.pyc +0 -0
  378. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/stock_chart.cpython-312.pyc +0 -0
  379. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/surface_chart.cpython-312.pyc +0 -0
  380. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/text.cpython-312.pyc +0 -0
  381. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/title.cpython-312.pyc +0 -0
  382. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/trendline.cpython-312.pyc +0 -0
  383. package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/updown_bars.cpython-312.pyc +0 -0
  384. package/xll/python/Lib/site-packages/openpyxl/chartsheet/__pycache__/__init__.cpython-312.pyc +0 -0
  385. package/xll/python/Lib/site-packages/openpyxl/chartsheet/__pycache__/chartsheet.cpython-312.pyc +0 -0
  386. package/xll/python/Lib/site-packages/openpyxl/chartsheet/__pycache__/custom.cpython-312.pyc +0 -0
  387. package/xll/python/Lib/site-packages/openpyxl/chartsheet/__pycache__/properties.cpython-312.pyc +0 -0
  388. package/xll/python/Lib/site-packages/openpyxl/chartsheet/__pycache__/protection.cpython-312.pyc +0 -0
  389. package/xll/python/Lib/site-packages/openpyxl/chartsheet/__pycache__/publish.cpython-312.pyc +0 -0
  390. package/xll/python/Lib/site-packages/openpyxl/chartsheet/__pycache__/relation.cpython-312.pyc +0 -0
  391. package/xll/python/Lib/site-packages/openpyxl/chartsheet/__pycache__/views.cpython-312.pyc +0 -0
  392. package/xll/python/Lib/site-packages/openpyxl/comments/__pycache__/__init__.cpython-312.pyc +0 -0
  393. package/xll/python/Lib/site-packages/openpyxl/comments/__pycache__/author.cpython-312.pyc +0 -0
  394. package/xll/python/Lib/site-packages/openpyxl/comments/__pycache__/comment_sheet.cpython-312.pyc +0 -0
  395. package/xll/python/Lib/site-packages/openpyxl/comments/__pycache__/comments.cpython-312.pyc +0 -0
  396. package/xll/python/Lib/site-packages/openpyxl/comments/__pycache__/shape_writer.cpython-312.pyc +0 -0
  397. package/xll/python/Lib/site-packages/openpyxl/compat/__pycache__/__init__.cpython-312.pyc +0 -0
  398. package/xll/python/Lib/site-packages/openpyxl/compat/__pycache__/abc.cpython-312.pyc +0 -0
  399. package/xll/python/Lib/site-packages/openpyxl/compat/__pycache__/numbers.cpython-312.pyc +0 -0
  400. package/xll/python/Lib/site-packages/openpyxl/compat/__pycache__/product.cpython-312.pyc +0 -0
  401. package/xll/python/Lib/site-packages/openpyxl/compat/__pycache__/singleton.cpython-312.pyc +0 -0
  402. package/xll/python/Lib/site-packages/openpyxl/compat/__pycache__/strings.cpython-312.pyc +0 -0
  403. package/xll/python/Lib/site-packages/openpyxl/descriptors/__pycache__/__init__.cpython-312.pyc +0 -0
  404. package/xll/python/Lib/site-packages/openpyxl/descriptors/__pycache__/base.cpython-312.pyc +0 -0
  405. package/xll/python/Lib/site-packages/openpyxl/descriptors/__pycache__/container.cpython-312.pyc +0 -0
  406. package/xll/python/Lib/site-packages/openpyxl/descriptors/__pycache__/excel.cpython-312.pyc +0 -0
  407. package/xll/python/Lib/site-packages/openpyxl/descriptors/__pycache__/namespace.cpython-312.pyc +0 -0
  408. package/xll/python/Lib/site-packages/openpyxl/descriptors/__pycache__/nested.cpython-312.pyc +0 -0
  409. package/xll/python/Lib/site-packages/openpyxl/descriptors/__pycache__/sequence.cpython-312.pyc +0 -0
  410. package/xll/python/Lib/site-packages/openpyxl/descriptors/__pycache__/serialisable.cpython-312.pyc +0 -0
  411. package/xll/python/Lib/site-packages/openpyxl/descriptors/__pycache__/slots.cpython-312.pyc +0 -0
  412. package/xll/python/Lib/site-packages/openpyxl/drawing/__pycache__/__init__.cpython-312.pyc +0 -0
  413. package/xll/python/Lib/site-packages/openpyxl/drawing/__pycache__/colors.cpython-312.pyc +0 -0
  414. package/xll/python/Lib/site-packages/openpyxl/drawing/__pycache__/connector.cpython-312.pyc +0 -0
  415. package/xll/python/Lib/site-packages/openpyxl/drawing/__pycache__/drawing.cpython-312.pyc +0 -0
  416. package/xll/python/Lib/site-packages/openpyxl/drawing/__pycache__/effect.cpython-312.pyc +0 -0
  417. package/xll/python/Lib/site-packages/openpyxl/drawing/__pycache__/fill.cpython-312.pyc +0 -0
  418. package/xll/python/Lib/site-packages/openpyxl/drawing/__pycache__/geometry.cpython-312.pyc +0 -0
  419. package/xll/python/Lib/site-packages/openpyxl/drawing/__pycache__/graphic.cpython-312.pyc +0 -0
  420. package/xll/python/Lib/site-packages/openpyxl/drawing/__pycache__/image.cpython-312.pyc +0 -0
  421. package/xll/python/Lib/site-packages/openpyxl/drawing/__pycache__/line.cpython-312.pyc +0 -0
  422. package/xll/python/Lib/site-packages/openpyxl/drawing/__pycache__/picture.cpython-312.pyc +0 -0
  423. package/xll/python/Lib/site-packages/openpyxl/drawing/__pycache__/properties.cpython-312.pyc +0 -0
  424. package/xll/python/Lib/site-packages/openpyxl/drawing/__pycache__/relation.cpython-312.pyc +0 -0
  425. package/xll/python/Lib/site-packages/openpyxl/drawing/__pycache__/spreadsheet_drawing.cpython-312.pyc +0 -0
  426. package/xll/python/Lib/site-packages/openpyxl/drawing/__pycache__/text.cpython-312.pyc +0 -0
  427. package/xll/python/Lib/site-packages/openpyxl/drawing/__pycache__/xdr.cpython-312.pyc +0 -0
  428. package/xll/python/Lib/site-packages/openpyxl/formatting/__pycache__/__init__.cpython-312.pyc +0 -0
  429. package/xll/python/Lib/site-packages/openpyxl/formatting/__pycache__/formatting.cpython-312.pyc +0 -0
  430. package/xll/python/Lib/site-packages/openpyxl/formatting/__pycache__/rule.cpython-312.pyc +0 -0
  431. package/xll/python/Lib/site-packages/openpyxl/formula/__pycache__/__init__.cpython-312.pyc +0 -0
  432. package/xll/python/Lib/site-packages/openpyxl/formula/__pycache__/tokenizer.cpython-312.pyc +0 -0
  433. package/xll/python/Lib/site-packages/openpyxl/formula/__pycache__/translate.cpython-312.pyc +0 -0
  434. package/xll/python/Lib/site-packages/openpyxl/packaging/__pycache__/__init__.cpython-312.pyc +0 -0
  435. package/xll/python/Lib/site-packages/openpyxl/packaging/__pycache__/core.cpython-312.pyc +0 -0
  436. package/xll/python/Lib/site-packages/openpyxl/packaging/__pycache__/custom.cpython-312.pyc +0 -0
  437. package/xll/python/Lib/site-packages/openpyxl/packaging/__pycache__/extended.cpython-312.pyc +0 -0
  438. package/xll/python/Lib/site-packages/openpyxl/packaging/__pycache__/interface.cpython-312.pyc +0 -0
  439. package/xll/python/Lib/site-packages/openpyxl/packaging/__pycache__/manifest.cpython-312.pyc +0 -0
  440. package/xll/python/Lib/site-packages/openpyxl/packaging/__pycache__/relationship.cpython-312.pyc +0 -0
  441. package/xll/python/Lib/site-packages/openpyxl/packaging/__pycache__/workbook.cpython-312.pyc +0 -0
  442. package/xll/python/Lib/site-packages/openpyxl/pivot/__pycache__/__init__.cpython-312.pyc +0 -0
  443. package/xll/python/Lib/site-packages/openpyxl/pivot/__pycache__/cache.cpython-312.pyc +0 -0
  444. package/xll/python/Lib/site-packages/openpyxl/pivot/__pycache__/fields.cpython-312.pyc +0 -0
  445. package/xll/python/Lib/site-packages/openpyxl/pivot/__pycache__/record.cpython-312.pyc +0 -0
  446. package/xll/python/Lib/site-packages/openpyxl/pivot/__pycache__/table.cpython-312.pyc +0 -0
  447. package/xll/python/Lib/site-packages/openpyxl/reader/__pycache__/__init__.cpython-312.pyc +0 -0
  448. package/xll/python/Lib/site-packages/openpyxl/reader/__pycache__/drawings.cpython-312.pyc +0 -0
  449. package/xll/python/Lib/site-packages/openpyxl/reader/__pycache__/excel.cpython-312.pyc +0 -0
  450. package/xll/python/Lib/site-packages/openpyxl/reader/__pycache__/strings.cpython-312.pyc +0 -0
  451. package/xll/python/Lib/site-packages/openpyxl/reader/__pycache__/workbook.cpython-312.pyc +0 -0
  452. package/xll/python/Lib/site-packages/openpyxl/styles/__pycache__/__init__.cpython-312.pyc +0 -0
  453. package/xll/python/Lib/site-packages/openpyxl/styles/__pycache__/alignment.cpython-312.pyc +0 -0
  454. package/xll/python/Lib/site-packages/openpyxl/styles/__pycache__/borders.cpython-312.pyc +0 -0
  455. package/xll/python/Lib/site-packages/openpyxl/styles/__pycache__/builtins.cpython-312.pyc +0 -0
  456. package/xll/python/Lib/site-packages/openpyxl/styles/__pycache__/cell_style.cpython-312.pyc +0 -0
  457. package/xll/python/Lib/site-packages/openpyxl/styles/__pycache__/colors.cpython-312.pyc +0 -0
  458. package/xll/python/Lib/site-packages/openpyxl/styles/__pycache__/differential.cpython-312.pyc +0 -0
  459. package/xll/python/Lib/site-packages/openpyxl/styles/__pycache__/fills.cpython-312.pyc +0 -0
  460. package/xll/python/Lib/site-packages/openpyxl/styles/__pycache__/fonts.cpython-312.pyc +0 -0
  461. package/xll/python/Lib/site-packages/openpyxl/styles/__pycache__/named_styles.cpython-312.pyc +0 -0
  462. package/xll/python/Lib/site-packages/openpyxl/styles/__pycache__/numbers.cpython-312.pyc +0 -0
  463. package/xll/python/Lib/site-packages/openpyxl/styles/__pycache__/protection.cpython-312.pyc +0 -0
  464. package/xll/python/Lib/site-packages/openpyxl/styles/__pycache__/proxy.cpython-312.pyc +0 -0
  465. package/xll/python/Lib/site-packages/openpyxl/styles/__pycache__/styleable.cpython-312.pyc +0 -0
  466. package/xll/python/Lib/site-packages/openpyxl/styles/__pycache__/stylesheet.cpython-312.pyc +0 -0
  467. package/xll/python/Lib/site-packages/openpyxl/styles/__pycache__/table.cpython-312.pyc +0 -0
  468. package/xll/python/Lib/site-packages/openpyxl/utils/__pycache__/__init__.cpython-312.pyc +0 -0
  469. package/xll/python/Lib/site-packages/openpyxl/utils/__pycache__/bound_dictionary.cpython-312.pyc +0 -0
  470. package/xll/python/Lib/site-packages/openpyxl/utils/__pycache__/cell.cpython-312.pyc +0 -0
  471. package/xll/python/Lib/site-packages/openpyxl/utils/__pycache__/dataframe.cpython-312.pyc +0 -0
  472. package/xll/python/Lib/site-packages/openpyxl/utils/__pycache__/datetime.cpython-312.pyc +0 -0
  473. package/xll/python/Lib/site-packages/openpyxl/utils/__pycache__/escape.cpython-312.pyc +0 -0
  474. package/xll/python/Lib/site-packages/openpyxl/utils/__pycache__/exceptions.cpython-312.pyc +0 -0
  475. package/xll/python/Lib/site-packages/openpyxl/utils/__pycache__/formulas.cpython-312.pyc +0 -0
  476. package/xll/python/Lib/site-packages/openpyxl/utils/__pycache__/indexed_list.cpython-312.pyc +0 -0
  477. package/xll/python/Lib/site-packages/openpyxl/utils/__pycache__/inference.cpython-312.pyc +0 -0
  478. package/xll/python/Lib/site-packages/openpyxl/utils/__pycache__/protection.cpython-312.pyc +0 -0
  479. package/xll/python/Lib/site-packages/openpyxl/utils/__pycache__/units.cpython-312.pyc +0 -0
  480. package/xll/python/Lib/site-packages/openpyxl/workbook/__pycache__/__init__.cpython-312.pyc +0 -0
  481. package/xll/python/Lib/site-packages/openpyxl/workbook/__pycache__/_writer.cpython-312.pyc +0 -0
  482. package/xll/python/Lib/site-packages/openpyxl/workbook/__pycache__/child.cpython-312.pyc +0 -0
  483. package/xll/python/Lib/site-packages/openpyxl/workbook/__pycache__/defined_name.cpython-312.pyc +0 -0
  484. package/xll/python/Lib/site-packages/openpyxl/workbook/__pycache__/external_reference.cpython-312.pyc +0 -0
  485. package/xll/python/Lib/site-packages/openpyxl/workbook/__pycache__/function_group.cpython-312.pyc +0 -0
  486. package/xll/python/Lib/site-packages/openpyxl/workbook/__pycache__/properties.cpython-312.pyc +0 -0
  487. package/xll/python/Lib/site-packages/openpyxl/workbook/__pycache__/protection.cpython-312.pyc +0 -0
  488. package/xll/python/Lib/site-packages/openpyxl/workbook/__pycache__/smart_tags.cpython-312.pyc +0 -0
  489. package/xll/python/Lib/site-packages/openpyxl/workbook/__pycache__/views.cpython-312.pyc +0 -0
  490. package/xll/python/Lib/site-packages/openpyxl/workbook/__pycache__/web.cpython-312.pyc +0 -0
  491. package/xll/python/Lib/site-packages/openpyxl/workbook/__pycache__/workbook.cpython-312.pyc +0 -0
  492. package/xll/python/Lib/site-packages/openpyxl/workbook/external_link/__pycache__/__init__.cpython-312.pyc +0 -0
  493. package/xll/python/Lib/site-packages/openpyxl/workbook/external_link/__pycache__/external.cpython-312.pyc +0 -0
  494. package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/__init__.cpython-312.pyc +0 -0
  495. package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/_read_only.cpython-312.pyc +0 -0
  496. package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/_reader.cpython-312.pyc +0 -0
  497. package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/_write_only.cpython-312.pyc +0 -0
  498. package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/_writer.cpython-312.pyc +0 -0
  499. package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/cell_range.cpython-312.pyc +0 -0
  500. package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/cell_watch.cpython-312.pyc +0 -0
  501. package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/controls.cpython-312.pyc +0 -0
  502. package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/copier.cpython-312.pyc +0 -0
  503. package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/custom.cpython-312.pyc +0 -0
  504. package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/datavalidation.cpython-312.pyc +0 -0
  505. package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/dimensions.cpython-312.pyc +0 -0
  506. package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/drawing.cpython-312.pyc +0 -0
  507. package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/errors.cpython-312.pyc +0 -0
  508. package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/filters.cpython-312.pyc +0 -0
  509. package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/formula.cpython-312.pyc +0 -0
  510. package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/header_footer.cpython-312.pyc +0 -0
  511. package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/hyperlink.cpython-312.pyc +0 -0
  512. package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/merge.cpython-312.pyc +0 -0
  513. package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/ole.cpython-312.pyc +0 -0
  514. package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/page.cpython-312.pyc +0 -0
  515. package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/pagebreak.cpython-312.pyc +0 -0
  516. package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/picture.cpython-312.pyc +0 -0
  517. package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/print_settings.cpython-312.pyc +0 -0
  518. package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/properties.cpython-312.pyc +0 -0
  519. package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/protection.cpython-312.pyc +0 -0
  520. package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/related.cpython-312.pyc +0 -0
  521. package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/scenario.cpython-312.pyc +0 -0
  522. package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/smart_tag.cpython-312.pyc +0 -0
  523. package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/table.cpython-312.pyc +0 -0
  524. package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/views.cpython-312.pyc +0 -0
  525. package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/worksheet.cpython-312.pyc +0 -0
  526. package/xll/python/Lib/site-packages/openpyxl/writer/__pycache__/__init__.cpython-312.pyc +0 -0
  527. package/xll/python/Lib/site-packages/openpyxl/writer/__pycache__/excel.cpython-312.pyc +0 -0
  528. package/xll/python/Lib/site-packages/openpyxl/writer/__pycache__/theme.cpython-312.pyc +0 -0
  529. package/xll/python/Lib/site-packages/openpyxl/xml/__pycache__/__init__.cpython-312.pyc +0 -0
  530. package/xll/python/Lib/site-packages/openpyxl/xml/__pycache__/constants.cpython-312.pyc +0 -0
  531. package/xll/python/Lib/site-packages/openpyxl/xml/__pycache__/functions.cpython-312.pyc +0 -0
  532. package/xll/python/Lib/site-packages/pip/__pycache__/__init__.cpython-312.pyc +0 -0
  533. package/xll/python/Lib/site-packages/pip/__pycache__/__main__.cpython-312.pyc +0 -0
  534. package/xll/python/Lib/site-packages/pip/__pycache__/__pip-runner__.cpython-312.pyc +0 -0
  535. package/xll/python/Lib/site-packages/pip/_internal/__pycache__/__init__.cpython-312.pyc +0 -0
  536. package/xll/python/Lib/site-packages/pip/_internal/__pycache__/build_env.cpython-312.pyc +0 -0
  537. package/xll/python/Lib/site-packages/pip/_internal/__pycache__/cache.cpython-312.pyc +0 -0
  538. package/xll/python/Lib/site-packages/pip/_internal/__pycache__/configuration.cpython-312.pyc +0 -0
  539. package/xll/python/Lib/site-packages/pip/_internal/__pycache__/exceptions.cpython-312.pyc +0 -0
  540. package/xll/python/Lib/site-packages/pip/_internal/__pycache__/main.cpython-312.pyc +0 -0
  541. package/xll/python/Lib/site-packages/pip/_internal/__pycache__/pyproject.cpython-312.pyc +0 -0
  542. package/xll/python/Lib/site-packages/pip/_internal/__pycache__/self_outdated_check.cpython-312.pyc +0 -0
  543. package/xll/python/Lib/site-packages/pip/_internal/__pycache__/wheel_builder.cpython-312.pyc +0 -0
  544. package/xll/python/Lib/site-packages/pip/_internal/cli/__pycache__/__init__.cpython-312.pyc +0 -0
  545. package/xll/python/Lib/site-packages/pip/_internal/cli/__pycache__/autocompletion.cpython-312.pyc +0 -0
  546. package/xll/python/Lib/site-packages/pip/_internal/cli/__pycache__/base_command.cpython-312.pyc +0 -0
  547. package/xll/python/Lib/site-packages/pip/_internal/cli/__pycache__/cmdoptions.cpython-312.pyc +0 -0
  548. package/xll/python/Lib/site-packages/pip/_internal/cli/__pycache__/command_context.cpython-312.pyc +0 -0
  549. package/xll/python/Lib/site-packages/pip/_internal/cli/__pycache__/index_command.cpython-312.pyc +0 -0
  550. package/xll/python/Lib/site-packages/pip/_internal/cli/__pycache__/main.cpython-312.pyc +0 -0
  551. package/xll/python/Lib/site-packages/pip/_internal/cli/__pycache__/main_parser.cpython-312.pyc +0 -0
  552. package/xll/python/Lib/site-packages/pip/_internal/cli/__pycache__/parser.cpython-312.pyc +0 -0
  553. package/xll/python/Lib/site-packages/pip/_internal/cli/__pycache__/progress_bars.cpython-312.pyc +0 -0
  554. package/xll/python/Lib/site-packages/pip/_internal/cli/__pycache__/req_command.cpython-312.pyc +0 -0
  555. package/xll/python/Lib/site-packages/pip/_internal/cli/__pycache__/spinners.cpython-312.pyc +0 -0
  556. package/xll/python/Lib/site-packages/pip/_internal/cli/__pycache__/status_codes.cpython-312.pyc +0 -0
  557. package/xll/python/Lib/site-packages/pip/_internal/commands/__pycache__/__init__.cpython-312.pyc +0 -0
  558. package/xll/python/Lib/site-packages/pip/_internal/commands/__pycache__/cache.cpython-312.pyc +0 -0
  559. package/xll/python/Lib/site-packages/pip/_internal/commands/__pycache__/check.cpython-312.pyc +0 -0
  560. package/xll/python/Lib/site-packages/pip/_internal/commands/__pycache__/completion.cpython-312.pyc +0 -0
  561. package/xll/python/Lib/site-packages/pip/_internal/commands/__pycache__/configuration.cpython-312.pyc +0 -0
  562. package/xll/python/Lib/site-packages/pip/_internal/commands/__pycache__/debug.cpython-312.pyc +0 -0
  563. package/xll/python/Lib/site-packages/pip/_internal/commands/__pycache__/download.cpython-312.pyc +0 -0
  564. package/xll/python/Lib/site-packages/pip/_internal/commands/__pycache__/freeze.cpython-312.pyc +0 -0
  565. package/xll/python/Lib/site-packages/pip/_internal/commands/__pycache__/hash.cpython-312.pyc +0 -0
  566. package/xll/python/Lib/site-packages/pip/_internal/commands/__pycache__/help.cpython-312.pyc +0 -0
  567. package/xll/python/Lib/site-packages/pip/_internal/commands/__pycache__/index.cpython-312.pyc +0 -0
  568. package/xll/python/Lib/site-packages/pip/_internal/commands/__pycache__/inspect.cpython-312.pyc +0 -0
  569. package/xll/python/Lib/site-packages/pip/_internal/commands/__pycache__/install.cpython-312.pyc +0 -0
  570. package/xll/python/Lib/site-packages/pip/_internal/commands/__pycache__/list.cpython-312.pyc +0 -0
  571. package/xll/python/Lib/site-packages/pip/_internal/commands/__pycache__/lock.cpython-312.pyc +0 -0
  572. package/xll/python/Lib/site-packages/pip/_internal/commands/__pycache__/search.cpython-312.pyc +0 -0
  573. package/xll/python/Lib/site-packages/pip/_internal/commands/__pycache__/show.cpython-312.pyc +0 -0
  574. package/xll/python/Lib/site-packages/pip/_internal/commands/__pycache__/uninstall.cpython-312.pyc +0 -0
  575. package/xll/python/Lib/site-packages/pip/_internal/commands/__pycache__/wheel.cpython-312.pyc +0 -0
  576. package/xll/python/Lib/site-packages/pip/_internal/distributions/__pycache__/__init__.cpython-312.pyc +0 -0
  577. package/xll/python/Lib/site-packages/pip/_internal/distributions/__pycache__/base.cpython-312.pyc +0 -0
  578. package/xll/python/Lib/site-packages/pip/_internal/distributions/__pycache__/installed.cpython-312.pyc +0 -0
  579. package/xll/python/Lib/site-packages/pip/_internal/distributions/__pycache__/sdist.cpython-312.pyc +0 -0
  580. package/xll/python/Lib/site-packages/pip/_internal/distributions/__pycache__/wheel.cpython-312.pyc +0 -0
  581. package/xll/python/Lib/site-packages/pip/_internal/index/__pycache__/__init__.cpython-312.pyc +0 -0
  582. package/xll/python/Lib/site-packages/pip/_internal/index/__pycache__/collector.cpython-312.pyc +0 -0
  583. package/xll/python/Lib/site-packages/pip/_internal/index/__pycache__/package_finder.cpython-312.pyc +0 -0
  584. package/xll/python/Lib/site-packages/pip/_internal/index/__pycache__/sources.cpython-312.pyc +0 -0
  585. package/xll/python/Lib/site-packages/pip/_internal/locations/__pycache__/__init__.cpython-312.pyc +0 -0
  586. package/xll/python/Lib/site-packages/pip/_internal/locations/__pycache__/_distutils.cpython-312.pyc +0 -0
  587. package/xll/python/Lib/site-packages/pip/_internal/locations/__pycache__/_sysconfig.cpython-312.pyc +0 -0
  588. package/xll/python/Lib/site-packages/pip/_internal/locations/__pycache__/base.cpython-312.pyc +0 -0
  589. package/xll/python/Lib/site-packages/pip/_internal/metadata/__pycache__/__init__.cpython-312.pyc +0 -0
  590. package/xll/python/Lib/site-packages/pip/_internal/metadata/__pycache__/_json.cpython-312.pyc +0 -0
  591. package/xll/python/Lib/site-packages/pip/_internal/metadata/__pycache__/base.cpython-312.pyc +0 -0
  592. package/xll/python/Lib/site-packages/pip/_internal/metadata/__pycache__/pkg_resources.cpython-312.pyc +0 -0
  593. package/xll/python/Lib/site-packages/pip/_internal/metadata/importlib/__pycache__/__init__.cpython-312.pyc +0 -0
  594. package/xll/python/Lib/site-packages/pip/_internal/metadata/importlib/__pycache__/_compat.cpython-312.pyc +0 -0
  595. package/xll/python/Lib/site-packages/pip/_internal/metadata/importlib/__pycache__/_dists.cpython-312.pyc +0 -0
  596. package/xll/python/Lib/site-packages/pip/_internal/metadata/importlib/__pycache__/_envs.cpython-312.pyc +0 -0
  597. package/xll/python/Lib/site-packages/pip/_internal/models/__pycache__/__init__.cpython-312.pyc +0 -0
  598. package/xll/python/Lib/site-packages/pip/_internal/models/__pycache__/candidate.cpython-312.pyc +0 -0
  599. package/xll/python/Lib/site-packages/pip/_internal/models/__pycache__/direct_url.cpython-312.pyc +0 -0
  600. package/xll/python/Lib/site-packages/pip/_internal/models/__pycache__/format_control.cpython-312.pyc +0 -0
  601. package/xll/python/Lib/site-packages/pip/_internal/models/__pycache__/index.cpython-312.pyc +0 -0
  602. package/xll/python/Lib/site-packages/pip/_internal/models/__pycache__/installation_report.cpython-312.pyc +0 -0
  603. package/xll/python/Lib/site-packages/pip/_internal/models/__pycache__/link.cpython-312.pyc +0 -0
  604. package/xll/python/Lib/site-packages/pip/_internal/models/__pycache__/release_control.cpython-312.pyc +0 -0
  605. package/xll/python/Lib/site-packages/pip/_internal/models/__pycache__/scheme.cpython-312.pyc +0 -0
  606. package/xll/python/Lib/site-packages/pip/_internal/models/__pycache__/search_scope.cpython-312.pyc +0 -0
  607. package/xll/python/Lib/site-packages/pip/_internal/models/__pycache__/selection_prefs.cpython-312.pyc +0 -0
  608. package/xll/python/Lib/site-packages/pip/_internal/models/__pycache__/target_python.cpython-312.pyc +0 -0
  609. package/xll/python/Lib/site-packages/pip/_internal/models/__pycache__/wheel.cpython-312.pyc +0 -0
  610. package/xll/python/Lib/site-packages/pip/_internal/network/__pycache__/__init__.cpython-312.pyc +0 -0
  611. package/xll/python/Lib/site-packages/pip/_internal/network/__pycache__/auth.cpython-312.pyc +0 -0
  612. package/xll/python/Lib/site-packages/pip/_internal/network/__pycache__/cache.cpython-312.pyc +0 -0
  613. package/xll/python/Lib/site-packages/pip/_internal/network/__pycache__/download.cpython-312.pyc +0 -0
  614. package/xll/python/Lib/site-packages/pip/_internal/network/__pycache__/lazy_wheel.cpython-312.pyc +0 -0
  615. package/xll/python/Lib/site-packages/pip/_internal/network/__pycache__/session.cpython-312.pyc +0 -0
  616. package/xll/python/Lib/site-packages/pip/_internal/network/__pycache__/utils.cpython-312.pyc +0 -0
  617. package/xll/python/Lib/site-packages/pip/_internal/network/__pycache__/xmlrpc.cpython-312.pyc +0 -0
  618. package/xll/python/Lib/site-packages/pip/_internal/operations/__pycache__/__init__.cpython-312.pyc +0 -0
  619. package/xll/python/Lib/site-packages/pip/_internal/operations/__pycache__/check.cpython-312.pyc +0 -0
  620. package/xll/python/Lib/site-packages/pip/_internal/operations/__pycache__/freeze.cpython-312.pyc +0 -0
  621. package/xll/python/Lib/site-packages/pip/_internal/operations/__pycache__/prepare.cpython-312.pyc +0 -0
  622. package/xll/python/Lib/site-packages/pip/_internal/operations/build/__pycache__/__init__.cpython-312.pyc +0 -0
  623. package/xll/python/Lib/site-packages/pip/_internal/operations/build/__pycache__/build_tracker.cpython-312.pyc +0 -0
  624. package/xll/python/Lib/site-packages/pip/_internal/operations/build/__pycache__/metadata.cpython-312.pyc +0 -0
  625. package/xll/python/Lib/site-packages/pip/_internal/operations/build/__pycache__/metadata_editable.cpython-312.pyc +0 -0
  626. package/xll/python/Lib/site-packages/pip/_internal/operations/build/__pycache__/wheel.cpython-312.pyc +0 -0
  627. package/xll/python/Lib/site-packages/pip/_internal/operations/build/__pycache__/wheel_editable.cpython-312.pyc +0 -0
  628. package/xll/python/Lib/site-packages/pip/_internal/operations/install/__pycache__/__init__.cpython-312.pyc +0 -0
  629. package/xll/python/Lib/site-packages/pip/_internal/operations/install/__pycache__/wheel.cpython-312.pyc +0 -0
  630. package/xll/python/Lib/site-packages/pip/_internal/req/__pycache__/__init__.cpython-312.pyc +0 -0
  631. package/xll/python/Lib/site-packages/pip/_internal/req/__pycache__/constructors.cpython-312.pyc +0 -0
  632. package/xll/python/Lib/site-packages/pip/_internal/req/__pycache__/pep723.cpython-312.pyc +0 -0
  633. package/xll/python/Lib/site-packages/pip/_internal/req/__pycache__/req_dependency_group.cpython-312.pyc +0 -0
  634. package/xll/python/Lib/site-packages/pip/_internal/req/__pycache__/req_file.cpython-312.pyc +0 -0
  635. package/xll/python/Lib/site-packages/pip/_internal/req/__pycache__/req_install.cpython-312.pyc +0 -0
  636. package/xll/python/Lib/site-packages/pip/_internal/req/__pycache__/req_set.cpython-312.pyc +0 -0
  637. package/xll/python/Lib/site-packages/pip/_internal/req/__pycache__/req_uninstall.cpython-312.pyc +0 -0
  638. package/xll/python/Lib/site-packages/pip/_internal/resolution/__pycache__/__init__.cpython-312.pyc +0 -0
  639. package/xll/python/Lib/site-packages/pip/_internal/resolution/__pycache__/base.cpython-312.pyc +0 -0
  640. package/xll/python/Lib/site-packages/pip/_internal/resolution/legacy/__pycache__/__init__.cpython-312.pyc +0 -0
  641. package/xll/python/Lib/site-packages/pip/_internal/resolution/legacy/__pycache__/resolver.cpython-312.pyc +0 -0
  642. package/xll/python/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/__init__.cpython-312.pyc +0 -0
  643. package/xll/python/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/base.cpython-312.pyc +0 -0
  644. package/xll/python/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/candidates.cpython-312.pyc +0 -0
  645. package/xll/python/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/factory.cpython-312.pyc +0 -0
  646. package/xll/python/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/found_candidates.cpython-312.pyc +0 -0
  647. package/xll/python/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/provider.cpython-312.pyc +0 -0
  648. package/xll/python/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/reporter.cpython-312.pyc +0 -0
  649. package/xll/python/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/requirements.cpython-312.pyc +0 -0
  650. package/xll/python/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/resolver.cpython-312.pyc +0 -0
  651. package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/__init__.cpython-312.pyc +0 -0
  652. package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/_jaraco_text.cpython-312.pyc +0 -0
  653. package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/_log.cpython-312.pyc +0 -0
  654. package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/appdirs.cpython-312.pyc +0 -0
  655. package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/compat.cpython-312.pyc +0 -0
  656. package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/compatibility_tags.cpython-312.pyc +0 -0
  657. package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/datetime.cpython-312.pyc +0 -0
  658. package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/deprecation.cpython-312.pyc +0 -0
  659. package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/direct_url_helpers.cpython-312.pyc +0 -0
  660. package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/egg_link.cpython-312.pyc +0 -0
  661. package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/entrypoints.cpython-312.pyc +0 -0
  662. package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/filesystem.cpython-312.pyc +0 -0
  663. package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/filetypes.cpython-312.pyc +0 -0
  664. package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/glibc.cpython-312.pyc +0 -0
  665. package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/hashes.cpython-312.pyc +0 -0
  666. package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/logging.cpython-312.pyc +0 -0
  667. package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/misc.cpython-312.pyc +0 -0
  668. package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/packaging.cpython-312.pyc +0 -0
  669. package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/pylock.cpython-312.pyc +0 -0
  670. package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/retry.cpython-312.pyc +0 -0
  671. package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/subprocess.cpython-312.pyc +0 -0
  672. package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/temp_dir.cpython-312.pyc +0 -0
  673. package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/unpacking.cpython-312.pyc +0 -0
  674. package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/urls.cpython-312.pyc +0 -0
  675. package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/virtualenv.cpython-312.pyc +0 -0
  676. package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/wheel.cpython-312.pyc +0 -0
  677. package/xll/python/Lib/site-packages/pip/_internal/vcs/__pycache__/__init__.cpython-312.pyc +0 -0
  678. package/xll/python/Lib/site-packages/pip/_internal/vcs/__pycache__/bazaar.cpython-312.pyc +0 -0
  679. package/xll/python/Lib/site-packages/pip/_internal/vcs/__pycache__/git.cpython-312.pyc +0 -0
  680. package/xll/python/Lib/site-packages/pip/_internal/vcs/__pycache__/mercurial.cpython-312.pyc +0 -0
  681. package/xll/python/Lib/site-packages/pip/_internal/vcs/__pycache__/subversion.cpython-312.pyc +0 -0
  682. package/xll/python/Lib/site-packages/pip/_internal/vcs/__pycache__/versioncontrol.cpython-312.pyc +0 -0
  683. package/xll/python/Lib/site-packages/pip/_vendor/__pycache__/__init__.cpython-312.pyc +0 -0
  684. package/xll/python/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/__init__.cpython-312.pyc +0 -0
  685. package/xll/python/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/_cmd.cpython-312.pyc +0 -0
  686. package/xll/python/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/adapter.cpython-312.pyc +0 -0
  687. package/xll/python/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/cache.cpython-312.pyc +0 -0
  688. package/xll/python/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/controller.cpython-312.pyc +0 -0
  689. package/xll/python/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/filewrapper.cpython-312.pyc +0 -0
  690. package/xll/python/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/heuristics.cpython-312.pyc +0 -0
  691. package/xll/python/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/serialize.cpython-312.pyc +0 -0
  692. package/xll/python/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/wrapper.cpython-312.pyc +0 -0
  693. package/xll/python/Lib/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/__init__.cpython-312.pyc +0 -0
  694. package/xll/python/Lib/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/file_cache.cpython-312.pyc +0 -0
  695. package/xll/python/Lib/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/redis_cache.cpython-312.pyc +0 -0
  696. package/xll/python/Lib/site-packages/pip/_vendor/certifi/__pycache__/__init__.cpython-312.pyc +0 -0
  697. package/xll/python/Lib/site-packages/pip/_vendor/certifi/__pycache__/__main__.cpython-312.pyc +0 -0
  698. package/xll/python/Lib/site-packages/pip/_vendor/certifi/__pycache__/core.cpython-312.pyc +0 -0
  699. package/xll/python/Lib/site-packages/pip/_vendor/dependency_groups/__pycache__/__init__.cpython-312.pyc +0 -0
  700. package/xll/python/Lib/site-packages/pip/_vendor/dependency_groups/__pycache__/__main__.cpython-312.pyc +0 -0
  701. package/xll/python/Lib/site-packages/pip/_vendor/dependency_groups/__pycache__/_implementation.cpython-312.pyc +0 -0
  702. package/xll/python/Lib/site-packages/pip/_vendor/dependency_groups/__pycache__/_lint_dependency_groups.cpython-312.pyc +0 -0
  703. package/xll/python/Lib/site-packages/pip/_vendor/dependency_groups/__pycache__/_pip_wrapper.cpython-312.pyc +0 -0
  704. package/xll/python/Lib/site-packages/pip/_vendor/dependency_groups/__pycache__/_toml_compat.cpython-312.pyc +0 -0
  705. package/xll/python/Lib/site-packages/pip/_vendor/distlib/__pycache__/__init__.cpython-312.pyc +0 -0
  706. package/xll/python/Lib/site-packages/pip/_vendor/distlib/__pycache__/compat.cpython-312.pyc +0 -0
  707. package/xll/python/Lib/site-packages/pip/_vendor/distlib/__pycache__/resources.cpython-312.pyc +0 -0
  708. package/xll/python/Lib/site-packages/pip/_vendor/distlib/__pycache__/scripts.cpython-312.pyc +0 -0
  709. package/xll/python/Lib/site-packages/pip/_vendor/distlib/__pycache__/util.cpython-312.pyc +0 -0
  710. package/xll/python/Lib/site-packages/pip/_vendor/distro/__pycache__/__init__.cpython-312.pyc +0 -0
  711. package/xll/python/Lib/site-packages/pip/_vendor/distro/__pycache__/__main__.cpython-312.pyc +0 -0
  712. package/xll/python/Lib/site-packages/pip/_vendor/distro/__pycache__/distro.cpython-312.pyc +0 -0
  713. package/xll/python/Lib/site-packages/pip/_vendor/idna/__pycache__/__init__.cpython-312.pyc +0 -0
  714. package/xll/python/Lib/site-packages/pip/_vendor/idna/__pycache__/codec.cpython-312.pyc +0 -0
  715. package/xll/python/Lib/site-packages/pip/_vendor/idna/__pycache__/compat.cpython-312.pyc +0 -0
  716. package/xll/python/Lib/site-packages/pip/_vendor/idna/__pycache__/core.cpython-312.pyc +0 -0
  717. package/xll/python/Lib/site-packages/pip/_vendor/idna/__pycache__/idnadata.cpython-312.pyc +0 -0
  718. package/xll/python/Lib/site-packages/pip/_vendor/idna/__pycache__/intranges.cpython-312.pyc +0 -0
  719. package/xll/python/Lib/site-packages/pip/_vendor/idna/__pycache__/package_data.cpython-312.pyc +0 -0
  720. package/xll/python/Lib/site-packages/pip/_vendor/idna/__pycache__/uts46data.cpython-312.pyc +0 -0
  721. package/xll/python/Lib/site-packages/pip/_vendor/msgpack/__pycache__/__init__.cpython-312.pyc +0 -0
  722. package/xll/python/Lib/site-packages/pip/_vendor/msgpack/__pycache__/exceptions.cpython-312.pyc +0 -0
  723. package/xll/python/Lib/site-packages/pip/_vendor/msgpack/__pycache__/ext.cpython-312.pyc +0 -0
  724. package/xll/python/Lib/site-packages/pip/_vendor/msgpack/__pycache__/fallback.cpython-312.pyc +0 -0
  725. package/xll/python/Lib/site-packages/pip/_vendor/packaging/__pycache__/__init__.cpython-312.pyc +0 -0
  726. package/xll/python/Lib/site-packages/pip/_vendor/packaging/__pycache__/_elffile.cpython-312.pyc +0 -0
  727. package/xll/python/Lib/site-packages/pip/_vendor/packaging/__pycache__/_manylinux.cpython-312.pyc +0 -0
  728. package/xll/python/Lib/site-packages/pip/_vendor/packaging/__pycache__/_musllinux.cpython-312.pyc +0 -0
  729. package/xll/python/Lib/site-packages/pip/_vendor/packaging/__pycache__/_parser.cpython-312.pyc +0 -0
  730. package/xll/python/Lib/site-packages/pip/_vendor/packaging/__pycache__/_structures.cpython-312.pyc +0 -0
  731. package/xll/python/Lib/site-packages/pip/_vendor/packaging/__pycache__/_tokenizer.cpython-312.pyc +0 -0
  732. package/xll/python/Lib/site-packages/pip/_vendor/packaging/__pycache__/markers.cpython-312.pyc +0 -0
  733. package/xll/python/Lib/site-packages/pip/_vendor/packaging/__pycache__/metadata.cpython-312.pyc +0 -0
  734. package/xll/python/Lib/site-packages/pip/_vendor/packaging/__pycache__/pylock.cpython-312.pyc +0 -0
  735. package/xll/python/Lib/site-packages/pip/_vendor/packaging/__pycache__/requirements.cpython-312.pyc +0 -0
  736. package/xll/python/Lib/site-packages/pip/_vendor/packaging/__pycache__/specifiers.cpython-312.pyc +0 -0
  737. package/xll/python/Lib/site-packages/pip/_vendor/packaging/__pycache__/tags.cpython-312.pyc +0 -0
  738. package/xll/python/Lib/site-packages/pip/_vendor/packaging/__pycache__/utils.cpython-312.pyc +0 -0
  739. package/xll/python/Lib/site-packages/pip/_vendor/packaging/__pycache__/version.cpython-312.pyc +0 -0
  740. package/xll/python/Lib/site-packages/pip/_vendor/packaging/licenses/__pycache__/__init__.cpython-312.pyc +0 -0
  741. package/xll/python/Lib/site-packages/pip/_vendor/packaging/licenses/__pycache__/_spdx.cpython-312.pyc +0 -0
  742. package/xll/python/Lib/site-packages/pip/_vendor/pkg_resources/__pycache__/__init__.cpython-312.pyc +0 -0
  743. package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/__pycache__/__init__.cpython-312.pyc +0 -0
  744. package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/__pycache__/__main__.cpython-312.pyc +0 -0
  745. package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/__pycache__/android.cpython-312.pyc +0 -0
  746. package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/__pycache__/api.cpython-312.pyc +0 -0
  747. package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/__pycache__/macos.cpython-312.pyc +0 -0
  748. package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/__pycache__/unix.cpython-312.pyc +0 -0
  749. package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/__pycache__/version.cpython-312.pyc +0 -0
  750. package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/__pycache__/windows.cpython-312.pyc +0 -0
  751. package/xll/python/Lib/site-packages/pip/_vendor/pygments/__pycache__/__init__.cpython-312.pyc +0 -0
  752. package/xll/python/Lib/site-packages/pip/_vendor/pygments/__pycache__/__main__.cpython-312.pyc +0 -0
  753. package/xll/python/Lib/site-packages/pip/_vendor/pygments/__pycache__/console.cpython-312.pyc +0 -0
  754. package/xll/python/Lib/site-packages/pip/_vendor/pygments/__pycache__/filter.cpython-312.pyc +0 -0
  755. package/xll/python/Lib/site-packages/pip/_vendor/pygments/__pycache__/formatter.cpython-312.pyc +0 -0
  756. package/xll/python/Lib/site-packages/pip/_vendor/pygments/__pycache__/lexer.cpython-312.pyc +0 -0
  757. package/xll/python/Lib/site-packages/pip/_vendor/pygments/__pycache__/modeline.cpython-312.pyc +0 -0
  758. package/xll/python/Lib/site-packages/pip/_vendor/pygments/__pycache__/plugin.cpython-312.pyc +0 -0
  759. package/xll/python/Lib/site-packages/pip/_vendor/pygments/__pycache__/regexopt.cpython-312.pyc +0 -0
  760. package/xll/python/Lib/site-packages/pip/_vendor/pygments/__pycache__/scanner.cpython-312.pyc +0 -0
  761. package/xll/python/Lib/site-packages/pip/_vendor/pygments/__pycache__/sphinxext.cpython-312.pyc +0 -0
  762. package/xll/python/Lib/site-packages/pip/_vendor/pygments/__pycache__/style.cpython-312.pyc +0 -0
  763. package/xll/python/Lib/site-packages/pip/_vendor/pygments/__pycache__/token.cpython-312.pyc +0 -0
  764. package/xll/python/Lib/site-packages/pip/_vendor/pygments/__pycache__/unistring.cpython-312.pyc +0 -0
  765. package/xll/python/Lib/site-packages/pip/_vendor/pygments/__pycache__/util.cpython-312.pyc +0 -0
  766. package/xll/python/Lib/site-packages/pip/_vendor/pygments/filters/__pycache__/__init__.cpython-312.pyc +0 -0
  767. package/xll/python/Lib/site-packages/pip/_vendor/pygments/formatters/__pycache__/__init__.cpython-312.pyc +0 -0
  768. package/xll/python/Lib/site-packages/pip/_vendor/pygments/formatters/__pycache__/_mapping.cpython-312.pyc +0 -0
  769. package/xll/python/Lib/site-packages/pip/_vendor/pygments/lexers/__pycache__/__init__.cpython-312.pyc +0 -0
  770. package/xll/python/Lib/site-packages/pip/_vendor/pygments/lexers/__pycache__/_mapping.cpython-312.pyc +0 -0
  771. package/xll/python/Lib/site-packages/pip/_vendor/pygments/lexers/__pycache__/python.cpython-312.pyc +0 -0
  772. package/xll/python/Lib/site-packages/pip/_vendor/pygments/styles/__pycache__/__init__.cpython-312.pyc +0 -0
  773. package/xll/python/Lib/site-packages/pip/_vendor/pygments/styles/__pycache__/_mapping.cpython-312.pyc +0 -0
  774. package/xll/python/Lib/site-packages/pip/_vendor/pyproject_hooks/__pycache__/__init__.cpython-312.pyc +0 -0
  775. package/xll/python/Lib/site-packages/pip/_vendor/pyproject_hooks/__pycache__/_impl.cpython-312.pyc +0 -0
  776. package/xll/python/Lib/site-packages/pip/_vendor/pyproject_hooks/_in_process/__pycache__/__init__.cpython-312.pyc +0 -0
  777. package/xll/python/Lib/site-packages/pip/_vendor/pyproject_hooks/_in_process/__pycache__/_in_process.cpython-312.pyc +0 -0
  778. package/xll/python/Lib/site-packages/pip/_vendor/requests/__pycache__/__init__.cpython-312.pyc +0 -0
  779. package/xll/python/Lib/site-packages/pip/_vendor/requests/__pycache__/__version__.cpython-312.pyc +0 -0
  780. package/xll/python/Lib/site-packages/pip/_vendor/requests/__pycache__/_internal_utils.cpython-312.pyc +0 -0
  781. package/xll/python/Lib/site-packages/pip/_vendor/requests/__pycache__/adapters.cpython-312.pyc +0 -0
  782. package/xll/python/Lib/site-packages/pip/_vendor/requests/__pycache__/api.cpython-312.pyc +0 -0
  783. package/xll/python/Lib/site-packages/pip/_vendor/requests/__pycache__/auth.cpython-312.pyc +0 -0
  784. package/xll/python/Lib/site-packages/pip/_vendor/requests/__pycache__/certs.cpython-312.pyc +0 -0
  785. package/xll/python/Lib/site-packages/pip/_vendor/requests/__pycache__/compat.cpython-312.pyc +0 -0
  786. package/xll/python/Lib/site-packages/pip/_vendor/requests/__pycache__/cookies.cpython-312.pyc +0 -0
  787. package/xll/python/Lib/site-packages/pip/_vendor/requests/__pycache__/exceptions.cpython-312.pyc +0 -0
  788. package/xll/python/Lib/site-packages/pip/_vendor/requests/__pycache__/help.cpython-312.pyc +0 -0
  789. package/xll/python/Lib/site-packages/pip/_vendor/requests/__pycache__/hooks.cpython-312.pyc +0 -0
  790. package/xll/python/Lib/site-packages/pip/_vendor/requests/__pycache__/models.cpython-312.pyc +0 -0
  791. package/xll/python/Lib/site-packages/pip/_vendor/requests/__pycache__/packages.cpython-312.pyc +0 -0
  792. package/xll/python/Lib/site-packages/pip/_vendor/requests/__pycache__/sessions.cpython-312.pyc +0 -0
  793. package/xll/python/Lib/site-packages/pip/_vendor/requests/__pycache__/status_codes.cpython-312.pyc +0 -0
  794. package/xll/python/Lib/site-packages/pip/_vendor/requests/__pycache__/structures.cpython-312.pyc +0 -0
  795. package/xll/python/Lib/site-packages/pip/_vendor/requests/__pycache__/utils.cpython-312.pyc +0 -0
  796. package/xll/python/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/__init__.cpython-312.pyc +0 -0
  797. package/xll/python/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/providers.cpython-312.pyc +0 -0
  798. package/xll/python/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/reporters.cpython-312.pyc +0 -0
  799. package/xll/python/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/structs.cpython-312.pyc +0 -0
  800. package/xll/python/Lib/site-packages/pip/_vendor/resolvelib/resolvers/__pycache__/__init__.cpython-312.pyc +0 -0
  801. package/xll/python/Lib/site-packages/pip/_vendor/resolvelib/resolvers/__pycache__/abstract.cpython-312.pyc +0 -0
  802. package/xll/python/Lib/site-packages/pip/_vendor/resolvelib/resolvers/__pycache__/criterion.cpython-312.pyc +0 -0
  803. package/xll/python/Lib/site-packages/pip/_vendor/resolvelib/resolvers/__pycache__/exceptions.cpython-312.pyc +0 -0
  804. package/xll/python/Lib/site-packages/pip/_vendor/resolvelib/resolvers/__pycache__/resolution.cpython-312.pyc +0 -0
  805. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/__init__.cpython-312.pyc +0 -0
  806. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/__main__.cpython-312.pyc +0 -0
  807. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_cell_widths.cpython-312.pyc +0 -0
  808. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_emoji_codes.cpython-312.pyc +0 -0
  809. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_emoji_replace.cpython-312.pyc +0 -0
  810. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_export_format.cpython-312.pyc +0 -0
  811. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_extension.cpython-312.pyc +0 -0
  812. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_fileno.cpython-312.pyc +0 -0
  813. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_inspect.cpython-312.pyc +0 -0
  814. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_log_render.cpython-312.pyc +0 -0
  815. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_loop.cpython-312.pyc +0 -0
  816. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_null_file.cpython-312.pyc +0 -0
  817. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_palettes.cpython-312.pyc +0 -0
  818. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_pick.cpython-312.pyc +0 -0
  819. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_ratio.cpython-312.pyc +0 -0
  820. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_spinners.cpython-312.pyc +0 -0
  821. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_stack.cpython-312.pyc +0 -0
  822. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_timer.cpython-312.pyc +0 -0
  823. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_win32_console.cpython-312.pyc +0 -0
  824. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_windows.cpython-312.pyc +0 -0
  825. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_windows_renderer.cpython-312.pyc +0 -0
  826. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_wrap.cpython-312.pyc +0 -0
  827. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/abc.cpython-312.pyc +0 -0
  828. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/align.cpython-312.pyc +0 -0
  829. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/ansi.cpython-312.pyc +0 -0
  830. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/bar.cpython-312.pyc +0 -0
  831. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/box.cpython-312.pyc +0 -0
  832. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/cells.cpython-312.pyc +0 -0
  833. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/color.cpython-312.pyc +0 -0
  834. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/color_triplet.cpython-312.pyc +0 -0
  835. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/columns.cpython-312.pyc +0 -0
  836. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/console.cpython-312.pyc +0 -0
  837. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/constrain.cpython-312.pyc +0 -0
  838. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/containers.cpython-312.pyc +0 -0
  839. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/control.cpython-312.pyc +0 -0
  840. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/default_styles.cpython-312.pyc +0 -0
  841. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/diagnose.cpython-312.pyc +0 -0
  842. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/emoji.cpython-312.pyc +0 -0
  843. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/errors.cpython-312.pyc +0 -0
  844. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/file_proxy.cpython-312.pyc +0 -0
  845. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/filesize.cpython-312.pyc +0 -0
  846. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/highlighter.cpython-312.pyc +0 -0
  847. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/json.cpython-312.pyc +0 -0
  848. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/jupyter.cpython-312.pyc +0 -0
  849. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/layout.cpython-312.pyc +0 -0
  850. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/live.cpython-312.pyc +0 -0
  851. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/live_render.cpython-312.pyc +0 -0
  852. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/logging.cpython-312.pyc +0 -0
  853. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/markup.cpython-312.pyc +0 -0
  854. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/measure.cpython-312.pyc +0 -0
  855. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/padding.cpython-312.pyc +0 -0
  856. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/pager.cpython-312.pyc +0 -0
  857. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/palette.cpython-312.pyc +0 -0
  858. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/panel.cpython-312.pyc +0 -0
  859. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/pretty.cpython-312.pyc +0 -0
  860. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/progress.cpython-312.pyc +0 -0
  861. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/progress_bar.cpython-312.pyc +0 -0
  862. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/prompt.cpython-312.pyc +0 -0
  863. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/protocol.cpython-312.pyc +0 -0
  864. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/region.cpython-312.pyc +0 -0
  865. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/repr.cpython-312.pyc +0 -0
  866. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/rule.cpython-312.pyc +0 -0
  867. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/scope.cpython-312.pyc +0 -0
  868. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/screen.cpython-312.pyc +0 -0
  869. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/segment.cpython-312.pyc +0 -0
  870. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/spinner.cpython-312.pyc +0 -0
  871. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/status.cpython-312.pyc +0 -0
  872. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/style.cpython-312.pyc +0 -0
  873. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/styled.cpython-312.pyc +0 -0
  874. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/syntax.cpython-312.pyc +0 -0
  875. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/table.cpython-312.pyc +0 -0
  876. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/terminal_theme.cpython-312.pyc +0 -0
  877. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/text.cpython-312.pyc +0 -0
  878. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/theme.cpython-312.pyc +0 -0
  879. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/themes.cpython-312.pyc +0 -0
  880. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/traceback.cpython-312.pyc +0 -0
  881. package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/tree.cpython-312.pyc +0 -0
  882. package/xll/python/Lib/site-packages/pip/_vendor/tomli/__pycache__/__init__.cpython-312.pyc +0 -0
  883. package/xll/python/Lib/site-packages/pip/_vendor/tomli/__pycache__/_parser.cpython-312.pyc +0 -0
  884. package/xll/python/Lib/site-packages/pip/_vendor/tomli/__pycache__/_re.cpython-312.pyc +0 -0
  885. package/xll/python/Lib/site-packages/pip/_vendor/tomli/__pycache__/_types.cpython-312.pyc +0 -0
  886. package/xll/python/Lib/site-packages/pip/_vendor/tomli_w/__pycache__/__init__.cpython-312.pyc +0 -0
  887. package/xll/python/Lib/site-packages/pip/_vendor/tomli_w/__pycache__/_writer.cpython-312.pyc +0 -0
  888. package/xll/python/Lib/site-packages/pip/_vendor/truststore/__pycache__/__init__.cpython-312.pyc +0 -0
  889. package/xll/python/Lib/site-packages/pip/_vendor/truststore/__pycache__/_api.cpython-312.pyc +0 -0
  890. package/xll/python/Lib/site-packages/pip/_vendor/truststore/__pycache__/_macos.cpython-312.pyc +0 -0
  891. package/xll/python/Lib/site-packages/pip/_vendor/truststore/__pycache__/_openssl.cpython-312.pyc +0 -0
  892. package/xll/python/Lib/site-packages/pip/_vendor/truststore/__pycache__/_ssl_constants.cpython-312.pyc +0 -0
  893. package/xll/python/Lib/site-packages/pip/_vendor/truststore/__pycache__/_windows.cpython-312.pyc +0 -0
  894. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/__pycache__/__init__.cpython-312.pyc +0 -0
  895. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/__pycache__/_collections.cpython-312.pyc +0 -0
  896. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/__pycache__/_version.cpython-312.pyc +0 -0
  897. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/__pycache__/connection.cpython-312.pyc +0 -0
  898. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/__pycache__/connectionpool.cpython-312.pyc +0 -0
  899. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/__pycache__/exceptions.cpython-312.pyc +0 -0
  900. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/__pycache__/fields.cpython-312.pyc +0 -0
  901. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/__pycache__/filepost.cpython-312.pyc +0 -0
  902. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/__pycache__/poolmanager.cpython-312.pyc +0 -0
  903. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/__pycache__/request.cpython-312.pyc +0 -0
  904. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/__pycache__/response.cpython-312.pyc +0 -0
  905. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/__init__.cpython-312.pyc +0 -0
  906. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/_appengine_environ.cpython-312.pyc +0 -0
  907. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/appengine.cpython-312.pyc +0 -0
  908. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/ntlmpool.cpython-312.pyc +0 -0
  909. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/pyopenssl.cpython-312.pyc +0 -0
  910. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/securetransport.cpython-312.pyc +0 -0
  911. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/socks.cpython-312.pyc +0 -0
  912. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/__init__.cpython-312.pyc +0 -0
  913. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/bindings.cpython-312.pyc +0 -0
  914. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/low_level.cpython-312.pyc +0 -0
  915. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/packages/__pycache__/__init__.cpython-312.pyc +0 -0
  916. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/packages/__pycache__/six.cpython-312.pyc +0 -0
  917. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/__init__.cpython-312.pyc +0 -0
  918. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/makefile.cpython-312.pyc +0 -0
  919. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/weakref_finalize.cpython-312.pyc +0 -0
  920. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/__init__.cpython-312.pyc +0 -0
  921. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/connection.cpython-312.pyc +0 -0
  922. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/proxy.cpython-312.pyc +0 -0
  923. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/queue.cpython-312.pyc +0 -0
  924. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/request.cpython-312.pyc +0 -0
  925. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/response.cpython-312.pyc +0 -0
  926. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/retry.cpython-312.pyc +0 -0
  927. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/ssl_.cpython-312.pyc +0 -0
  928. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/ssl_match_hostname.cpython-312.pyc +0 -0
  929. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/ssltransport.cpython-312.pyc +0 -0
  930. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/timeout.cpython-312.pyc +0 -0
  931. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/url.cpython-312.pyc +0 -0
  932. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/wait.cpython-312.pyc +0 -0
  933. package/xll/python/Lib/site-packages/pip-26.0.1.dist-info/RECORD +3 -3
  934. package/xll/python/Scripts/httpx.exe +0 -0
  935. package/xll/python/Scripts/pip.exe +0 -0
  936. package/xll/python/Scripts/pip3.12.exe +0 -0
  937. package/xll/python/Scripts/pip3.exe +0 -0
  938. package/dist/custom/ensure-excel.js +0 -63
  939. package/dist/custom/sandbox/network/index.js +0 -8
  940. package/dist/custom/sandbox/network/network-proxy.js +0 -136
  941. package/dist/custom/sandbox/network/proxy-worker.py +0 -257
  942. package/dist/custom/sandbox/sandbox-config.js +0 -153
  943. package/dist/custom/sandbox/sandbox-smoke.js +0 -49
  944. package/dist/custom/sandbox/wsl-setup.js +0 -92
  945. package/dist/custom/tools/task/agents.js +0 -6
  946. package/skills/com-advanced-api/excel-type-library.py +0 -27767
  947. package/skills/com-advanced-api/office-type-library.py +0 -10867
  948. /package/xll/python/Lib/site-packages/{anyio-4.12.1.dist-info → anyio-4.13.0.dist-info}/INSTALLER +0 -0
  949. /package/xll/python/Lib/site-packages/{anyio-4.12.1.dist-info → anyio-4.13.0.dist-info}/entry_points.txt +0 -0
  950. /package/xll/python/Lib/site-packages/{anyio-4.12.1.dist-info → anyio-4.13.0.dist-info}/licenses/LICENSE +0 -0
  951. /package/xll/python/Lib/site-packages/{anyio-4.12.1.dist-info → anyio-4.13.0.dist-info}/top_level.txt +0 -0
@@ -1,629 +1,624 @@
1
- import { marked } from "marked";
2
- import { isImageLine } from "../terminal-image.js";
3
- import { applyBackgroundToLine, visibleWidth, wrapTextWithAnsi } from "../utils.js";
1
+ import { marked } from 'marked';
2
+ import { isImageLine } from '../terminal-image.js';
3
+ import { applyBackgroundToLine, visibleWidth, wrapTextWithAnsi } from '../utils.js';
4
4
  export class Markdown {
5
- text;
6
- paddingX; // Left/right padding
7
- paddingY; // Top/bottom padding
8
- defaultTextStyle;
9
- theme;
10
- defaultStylePrefix;
11
- // Cache for rendered output
12
- cachedText;
13
- cachedWidth;
14
- cachedLines;
15
- constructor(text, paddingX, paddingY, theme, defaultTextStyle) {
16
- this.text = text;
17
- this.paddingX = paddingX;
18
- this.paddingY = paddingY;
19
- this.theme = theme;
20
- this.defaultTextStyle = defaultTextStyle;
21
- }
22
- setText(text) {
23
- this.text = text;
24
- this.invalidate();
25
- }
26
- invalidate() {
27
- this.cachedText = undefined;
28
- this.cachedWidth = undefined;
29
- this.cachedLines = undefined;
30
- }
31
- render(width) {
32
- // Check cache
33
- if (this.cachedLines && this.cachedText === this.text && this.cachedWidth === width) {
34
- return this.cachedLines;
35
- }
36
- // Calculate available width for content (subtract horizontal padding)
37
- const contentWidth = Math.max(1, width - this.paddingX * 2);
38
- // Don't render anything if there's no actual text
39
- if (!this.text || this.text.trim() === "") {
40
- const result = [];
41
- // Update cache
42
- this.cachedText = this.text;
43
- this.cachedWidth = width;
44
- this.cachedLines = result;
45
- return result;
46
- }
47
- // Replace tabs with 3 spaces for consistent rendering
48
- const normalizedText = this.text.replace(/\t/g, " ");
49
- // Parse markdown to HTML-like tokens
50
- const tokens = marked.lexer(normalizedText);
51
- // Convert tokens to styled terminal output
52
- const renderedLines = [];
53
- for (let i = 0; i < tokens.length; i++) {
54
- const token = tokens[i];
55
- const nextToken = tokens[i + 1];
56
- const tokenLines = this.renderToken(token, contentWidth, nextToken?.type);
57
- renderedLines.push(...tokenLines);
58
- }
59
- // Wrap lines (NO padding, NO background yet)
60
- const wrappedLines = [];
61
- for (const line of renderedLines) {
62
- if (isImageLine(line)) {
63
- wrappedLines.push(line);
64
- }
65
- else {
66
- wrappedLines.push(...wrapTextWithAnsi(line, contentWidth));
67
- }
68
- }
69
- // Add margins and background to each wrapped line
70
- const leftMargin = " ".repeat(this.paddingX);
71
- const rightMargin = " ".repeat(this.paddingX);
72
- const bgFn = this.defaultTextStyle?.bgColor;
73
- const contentLines = [];
74
- for (const line of wrappedLines) {
75
- if (isImageLine(line)) {
76
- contentLines.push(line);
77
- continue;
78
- }
79
- const lineWithMargins = leftMargin + line + rightMargin;
80
- if (bgFn) {
81
- contentLines.push(applyBackgroundToLine(lineWithMargins, width, bgFn));
82
- }
83
- else {
84
- // No background - just pad to width
85
- const visibleLen = visibleWidth(lineWithMargins);
86
- const paddingNeeded = Math.max(0, width - visibleLen);
87
- contentLines.push(lineWithMargins + " ".repeat(paddingNeeded));
88
- }
89
- }
90
- // Add top/bottom padding (empty lines)
91
- const emptyLine = " ".repeat(width);
92
- const emptyLines = [];
93
- for (let i = 0; i < this.paddingY; i++) {
94
- const line = bgFn ? applyBackgroundToLine(emptyLine, width, bgFn) : emptyLine;
95
- emptyLines.push(line);
96
- }
97
- // Combine top padding, content, and bottom padding
98
- const result = [...emptyLines, ...contentLines, ...emptyLines];
99
- // Update cache
100
- this.cachedText = this.text;
101
- this.cachedWidth = width;
102
- this.cachedLines = result;
103
- return result.length > 0 ? result : [""];
104
- }
105
- /**
106
- * Apply default text style to a string.
107
- * This is the base styling applied to all text content.
108
- * NOTE: Background color is NOT applied here - it's applied at the padding stage
109
- * to ensure it extends to the full line width.
110
- */
111
- applyDefaultStyle(text) {
112
- if (!this.defaultTextStyle) {
113
- return text;
114
- }
115
- let styled = text;
116
- // Apply foreground color (NOT background - that's applied at padding stage)
117
- if (this.defaultTextStyle.color) {
118
- styled = this.defaultTextStyle.color(styled);
119
- }
120
- // Apply text decorations using this.theme
121
- if (this.defaultTextStyle.bold) {
122
- styled = this.theme.bold(styled);
123
- }
124
- if (this.defaultTextStyle.italic) {
125
- styled = this.theme.italic(styled);
126
- }
127
- if (this.defaultTextStyle.strikethrough) {
128
- styled = this.theme.strikethrough(styled);
129
- }
130
- if (this.defaultTextStyle.underline) {
131
- styled = this.theme.underline(styled);
132
- }
133
- return styled;
5
+ text;
6
+ paddingX; // Left/right padding
7
+ paddingY; // Top/bottom padding
8
+ defaultTextStyle;
9
+ theme;
10
+ defaultStylePrefix;
11
+ // Cache for rendered output
12
+ cachedText;
13
+ cachedWidth;
14
+ cachedLines;
15
+ constructor(text, paddingX, paddingY, theme, defaultTextStyle) {
16
+ this.text = text;
17
+ this.paddingX = paddingX;
18
+ this.paddingY = paddingY;
19
+ this.theme = theme;
20
+ this.defaultTextStyle = defaultTextStyle;
21
+ }
22
+ setText(text) {
23
+ this.text = text;
24
+ this.invalidate();
25
+ }
26
+ invalidate() {
27
+ this.cachedText = undefined;
28
+ this.cachedWidth = undefined;
29
+ this.cachedLines = undefined;
30
+ }
31
+ render(width) {
32
+ // Check cache
33
+ if (this.cachedLines && this.cachedText === this.text && this.cachedWidth === width) {
34
+ return this.cachedLines;
134
35
  }
135
- getDefaultStylePrefix() {
136
- if (!this.defaultTextStyle) {
137
- return "";
138
- }
139
- if (this.defaultStylePrefix !== undefined) {
140
- return this.defaultStylePrefix;
141
- }
142
- const sentinel = "\u0000";
143
- let styled = sentinel;
144
- if (this.defaultTextStyle.color) {
145
- styled = this.defaultTextStyle.color(styled);
146
- }
147
- if (this.defaultTextStyle.bold) {
148
- styled = this.theme.bold(styled);
149
- }
150
- if (this.defaultTextStyle.italic) {
151
- styled = this.theme.italic(styled);
152
- }
153
- if (this.defaultTextStyle.strikethrough) {
154
- styled = this.theme.strikethrough(styled);
155
- }
156
- if (this.defaultTextStyle.underline) {
157
- styled = this.theme.underline(styled);
158
- }
159
- const sentinelIndex = styled.indexOf(sentinel);
160
- this.defaultStylePrefix = sentinelIndex >= 0 ? styled.slice(0, sentinelIndex) : "";
161
- return this.defaultStylePrefix;
162
- }
163
- getStylePrefix(styleFn) {
164
- const sentinel = "\u0000";
165
- const styled = styleFn(sentinel);
166
- const sentinelIndex = styled.indexOf(sentinel);
167
- return sentinelIndex >= 0 ? styled.slice(0, sentinelIndex) : "";
168
- }
169
- getDefaultInlineStyleContext() {
170
- return {
171
- applyText: (text) => this.applyDefaultStyle(text),
172
- stylePrefix: this.getDefaultStylePrefix(),
173
- };
36
+ // Calculate available width for content (subtract horizontal padding)
37
+ const contentWidth = Math.max(1, width - this.paddingX * 2);
38
+ // Don't render anything if there's no actual text
39
+ if (!this.text || this.text.trim() === '') {
40
+ const result = [];
41
+ // Update cache
42
+ this.cachedText = this.text;
43
+ this.cachedWidth = width;
44
+ this.cachedLines = result;
45
+ return result;
174
46
  }
175
- renderToken(token, width, nextTokenType) {
176
- const lines = [];
177
- switch (token.type) {
178
- case "heading": {
179
- const headingLevel = token.depth;
180
- const headingPrefix = `${"#".repeat(headingLevel)} `;
181
- const headingText = this.renderInlineTokens(token.tokens || []);
182
- let styledHeading;
183
- if (headingLevel === 1) {
184
- styledHeading = this.theme.heading(this.theme.bold(this.theme.underline(headingText)));
185
- }
186
- else if (headingLevel === 2) {
187
- styledHeading = this.theme.heading(this.theme.bold(headingText));
188
- }
189
- else {
190
- styledHeading = this.theme.heading(this.theme.bold(headingPrefix + headingText));
191
- }
192
- lines.push(styledHeading);
193
- if (nextTokenType !== "space") {
194
- lines.push(""); // Add spacing after headings (unless space token follows)
195
- }
196
- break;
197
- }
198
- case "paragraph": {
199
- const paragraphText = this.renderInlineTokens(token.tokens || []);
200
- lines.push(paragraphText);
201
- // Don't add spacing if next token is space or list
202
- if (nextTokenType && nextTokenType !== "list" && nextTokenType !== "space") {
203
- lines.push("");
204
- }
205
- break;
206
- }
207
- case "code": {
208
- const indent = this.theme.codeBlockIndent ?? " ";
209
- lines.push(this.theme.codeBlockBorder(`\`\`\`${token.lang || ""}`));
210
- if (this.theme.highlightCode) {
211
- const highlightedLines = this.theme.highlightCode(token.text, token.lang);
212
- for (const hlLine of highlightedLines) {
213
- lines.push(`${indent}${hlLine}`);
214
- }
215
- }
216
- else {
217
- // Split code by newlines and style each line
218
- const codeLines = token.text.split("\n");
219
- for (const codeLine of codeLines) {
220
- lines.push(`${indent}${this.theme.codeBlock(codeLine)}`);
221
- }
222
- }
223
- lines.push(this.theme.codeBlockBorder("```"));
224
- if (nextTokenType !== "space") {
225
- lines.push(""); // Add spacing after code blocks (unless space token follows)
226
- }
227
- break;
228
- }
229
- case "list": {
230
- const listLines = this.renderList(token, 0);
231
- lines.push(...listLines);
232
- // Don't add spacing after lists if a space token follows
233
- // (the space token will handle it)
234
- break;
235
- }
236
- case "table": {
237
- const tableLines = this.renderTable(token, width);
238
- lines.push(...tableLines);
239
- break;
240
- }
241
- case "blockquote": {
242
- const quoteStyle = (text) => this.theme.quote(this.theme.italic(text));
243
- const quoteStyleContext = {
244
- applyText: quoteStyle,
245
- stylePrefix: this.getStylePrefix(quoteStyle),
246
- };
247
- const quoteText = this.renderInlineTokens(token.tokens || [], quoteStyleContext);
248
- const quoteLines = quoteText.split("\n");
249
- // Calculate available width for quote content (subtract border "│ " = 2 chars)
250
- const quoteContentWidth = Math.max(1, width - 2);
251
- for (const quoteLine of quoteLines) {
252
- // Wrap the styled line, then add border to each wrapped line
253
- const wrappedLines = wrapTextWithAnsi(quoteLine, quoteContentWidth);
254
- for (const wrappedLine of wrappedLines) {
255
- lines.push(this.theme.quoteBorder("│ ") + wrappedLine);
256
- }
257
- }
258
- if (nextTokenType !== "space") {
259
- lines.push(""); // Add spacing after blockquotes (unless space token follows)
260
- }
261
- break;
262
- }
263
- case "hr":
264
- lines.push(this.theme.hr("─".repeat(Math.min(width, 80))));
265
- if (nextTokenType !== "space") {
266
- lines.push(""); // Add spacing after horizontal rules (unless space token follows)
267
- }
268
- break;
269
- case "html":
270
- // Render HTML as plain text (escaped for terminal)
271
- if ("raw" in token && typeof token.raw === "string") {
272
- lines.push(this.applyDefaultStyle(token.raw.trim()));
273
- }
274
- break;
275
- case "space":
276
- // Space tokens represent blank lines in markdown
277
- lines.push("");
278
- break;
279
- default:
280
- // Handle any other token types as plain text
281
- if ("text" in token && typeof token.text === "string") {
282
- lines.push(token.text);
283
- }
284
- }
285
- return lines;
286
- }
287
- renderInlineTokens(tokens, styleContext) {
288
- let result = "";
289
- const resolvedStyleContext = styleContext ?? this.getDefaultInlineStyleContext();
290
- const { applyText, stylePrefix } = resolvedStyleContext;
291
- const applyTextWithNewlines = (text) => {
292
- const segments = text.split("\n");
293
- return segments.map((segment) => applyText(segment)).join("\n");
47
+ // Replace tabs with 3 spaces for consistent rendering
48
+ const normalizedText = this.text.replace(/\t/g, ' ');
49
+ // Parse markdown to HTML-like tokens
50
+ const tokens = marked.lexer(normalizedText);
51
+ // Convert tokens to styled terminal output
52
+ const renderedLines = [];
53
+ for (let i = 0; i < tokens.length; i++) {
54
+ const token = tokens[i];
55
+ const nextToken = tokens[i + 1];
56
+ const tokenLines = this.renderToken(token, contentWidth, nextToken?.type);
57
+ renderedLines.push(...tokenLines);
58
+ }
59
+ // Wrap lines (NO padding, NO background yet)
60
+ const wrappedLines = [];
61
+ for (const line of renderedLines) {
62
+ if (isImageLine(line)) {
63
+ wrappedLines.push(line);
64
+ } else {
65
+ wrappedLines.push(...wrapTextWithAnsi(line, contentWidth));
66
+ }
67
+ }
68
+ // Add margins and background to each wrapped line
69
+ const leftMargin = ' '.repeat(this.paddingX);
70
+ const rightMargin = ' '.repeat(this.paddingX);
71
+ const bgFn = this.defaultTextStyle?.bgColor;
72
+ const contentLines = [];
73
+ for (const line of wrappedLines) {
74
+ if (isImageLine(line)) {
75
+ contentLines.push(line);
76
+ continue;
77
+ }
78
+ const lineWithMargins = leftMargin + line + rightMargin;
79
+ if (bgFn) {
80
+ contentLines.push(applyBackgroundToLine(lineWithMargins, width, bgFn));
81
+ } else {
82
+ // No background - just pad to width
83
+ const visibleLen = visibleWidth(lineWithMargins);
84
+ const paddingNeeded = Math.max(0, width - visibleLen);
85
+ contentLines.push(lineWithMargins + ' '.repeat(paddingNeeded));
86
+ }
87
+ }
88
+ // Add top/bottom padding (empty lines)
89
+ const emptyLine = ' '.repeat(width);
90
+ const emptyLines = [];
91
+ for (let i = 0; i < this.paddingY; i++) {
92
+ const line = bgFn ? applyBackgroundToLine(emptyLine, width, bgFn) : emptyLine;
93
+ emptyLines.push(line);
94
+ }
95
+ // Combine top padding, content, and bottom padding
96
+ const result = [...emptyLines, ...contentLines, ...emptyLines];
97
+ // Update cache
98
+ this.cachedText = this.text;
99
+ this.cachedWidth = width;
100
+ this.cachedLines = result;
101
+ return result.length > 0 ? result : [''];
102
+ }
103
+ /**
104
+ * Apply default text style to a string.
105
+ * This is the base styling applied to all text content.
106
+ * NOTE: Background color is NOT applied here - it's applied at the padding stage
107
+ * to ensure it extends to the full line width.
108
+ */
109
+ applyDefaultStyle(text) {
110
+ if (!this.defaultTextStyle) {
111
+ return text;
112
+ }
113
+ let styled = text;
114
+ // Apply foreground color (NOT background - that's applied at padding stage)
115
+ if (this.defaultTextStyle.color) {
116
+ styled = this.defaultTextStyle.color(styled);
117
+ }
118
+ // Apply text decorations using this.theme
119
+ if (this.defaultTextStyle.bold) {
120
+ styled = this.theme.bold(styled);
121
+ }
122
+ if (this.defaultTextStyle.italic) {
123
+ styled = this.theme.italic(styled);
124
+ }
125
+ if (this.defaultTextStyle.strikethrough) {
126
+ styled = this.theme.strikethrough(styled);
127
+ }
128
+ if (this.defaultTextStyle.underline) {
129
+ styled = this.theme.underline(styled);
130
+ }
131
+ return styled;
132
+ }
133
+ getDefaultStylePrefix() {
134
+ if (!this.defaultTextStyle) {
135
+ return '';
136
+ }
137
+ if (this.defaultStylePrefix !== undefined) {
138
+ return this.defaultStylePrefix;
139
+ }
140
+ const sentinel = '\u0000';
141
+ let styled = sentinel;
142
+ if (this.defaultTextStyle.color) {
143
+ styled = this.defaultTextStyle.color(styled);
144
+ }
145
+ if (this.defaultTextStyle.bold) {
146
+ styled = this.theme.bold(styled);
147
+ }
148
+ if (this.defaultTextStyle.italic) {
149
+ styled = this.theme.italic(styled);
150
+ }
151
+ if (this.defaultTextStyle.strikethrough) {
152
+ styled = this.theme.strikethrough(styled);
153
+ }
154
+ if (this.defaultTextStyle.underline) {
155
+ styled = this.theme.underline(styled);
156
+ }
157
+ const sentinelIndex = styled.indexOf(sentinel);
158
+ this.defaultStylePrefix = sentinelIndex >= 0 ? styled.slice(0, sentinelIndex) : '';
159
+ return this.defaultStylePrefix;
160
+ }
161
+ getStylePrefix(styleFn) {
162
+ const sentinel = '\u0000';
163
+ const styled = styleFn(sentinel);
164
+ const sentinelIndex = styled.indexOf(sentinel);
165
+ return sentinelIndex >= 0 ? styled.slice(0, sentinelIndex) : '';
166
+ }
167
+ getDefaultInlineStyleContext() {
168
+ return {
169
+ applyText: (text) => this.applyDefaultStyle(text),
170
+ stylePrefix: this.getDefaultStylePrefix()
171
+ };
172
+ }
173
+ renderToken(token, width, nextTokenType) {
174
+ const lines = [];
175
+ switch (token.type) {
176
+ case 'heading': {
177
+ const headingLevel = token.depth;
178
+ const headingPrefix = `${'#'.repeat(headingLevel)} `;
179
+ const headingText = this.renderInlineTokens(token.tokens || []);
180
+ let styledHeading;
181
+ if (headingLevel === 1) {
182
+ styledHeading = this.theme.heading(this.theme.bold(this.theme.underline(headingText)));
183
+ } else if (headingLevel === 2) {
184
+ styledHeading = this.theme.heading(this.theme.bold(headingText));
185
+ } else {
186
+ styledHeading = this.theme.heading(this.theme.bold(headingPrefix + headingText));
187
+ }
188
+ lines.push(styledHeading);
189
+ if (nextTokenType !== 'space') {
190
+ lines.push(''); // Add spacing after headings (unless space token follows)
191
+ }
192
+ break;
193
+ }
194
+ case 'paragraph': {
195
+ const paragraphText = this.renderInlineTokens(token.tokens || []);
196
+ lines.push(paragraphText);
197
+ // Don't add spacing if next token is space or list
198
+ if (nextTokenType && nextTokenType !== 'list' && nextTokenType !== 'space') {
199
+ lines.push('');
200
+ }
201
+ break;
202
+ }
203
+ case 'code': {
204
+ const indent = this.theme.codeBlockIndent ?? ' ';
205
+ lines.push(this.theme.codeBlockBorder(`\`\`\`${token.lang || ''}`));
206
+ if (this.theme.highlightCode) {
207
+ const highlightedLines = this.theme.highlightCode(token.text, token.lang);
208
+ for (const hlLine of highlightedLines) {
209
+ lines.push(`${indent}${hlLine}`);
210
+ }
211
+ } else {
212
+ // Split code by newlines and style each line
213
+ const codeLines = token.text.split('\n');
214
+ for (const codeLine of codeLines) {
215
+ lines.push(`${indent}${this.theme.codeBlock(codeLine)}`);
216
+ }
217
+ }
218
+ lines.push(this.theme.codeBlockBorder('```'));
219
+ if (nextTokenType !== 'space') {
220
+ lines.push(''); // Add spacing after code blocks (unless space token follows)
221
+ }
222
+ break;
223
+ }
224
+ case 'list': {
225
+ const listLines = this.renderList(token, 0);
226
+ lines.push(...listLines);
227
+ // Don't add spacing after lists if a space token follows
228
+ // (the space token will handle it)
229
+ break;
230
+ }
231
+ case 'table': {
232
+ const tableLines = this.renderTable(token, width);
233
+ lines.push(...tableLines);
234
+ break;
235
+ }
236
+ case 'blockquote': {
237
+ const quoteStyle = (text) => this.theme.quote(this.theme.italic(text));
238
+ const quoteStyleContext = {
239
+ applyText: quoteStyle,
240
+ stylePrefix: this.getStylePrefix(quoteStyle)
294
241
  };
295
- for (const token of tokens) {
296
- switch (token.type) {
297
- case "text":
298
- // Text tokens in list items can have nested tokens for inline formatting
299
- if (token.tokens && token.tokens.length > 0) {
300
- result += this.renderInlineTokens(token.tokens, resolvedStyleContext);
301
- }
302
- else {
303
- result += applyTextWithNewlines(token.text);
304
- }
305
- break;
306
- case "paragraph":
307
- // Paragraph tokens contain nested inline tokens
308
- result += this.renderInlineTokens(token.tokens || [], resolvedStyleContext);
309
- break;
310
- case "strong": {
311
- const boldContent = this.renderInlineTokens(token.tokens || [], resolvedStyleContext);
312
- result += this.theme.bold(boldContent) + stylePrefix;
313
- break;
314
- }
315
- case "em": {
316
- const italicContent = this.renderInlineTokens(token.tokens || [], resolvedStyleContext);
317
- result += this.theme.italic(italicContent) + stylePrefix;
318
- break;
319
- }
320
- case "codespan":
321
- result += this.theme.code(token.text) + stylePrefix;
322
- break;
323
- case "link": {
324
- const linkText = this.renderInlineTokens(token.tokens || [], resolvedStyleContext);
325
- // If link text matches href, only show the link once
326
- // Compare raw text (token.text) not styled text (linkText) since linkText has ANSI codes
327
- // For mailto: links, strip the prefix before comparing (autolinked emails have
328
- // text="foo@bar.com" but href="mailto:foo@bar.com")
329
- const hrefForComparison = token.href.startsWith("mailto:") ? token.href.slice(7) : token.href;
330
- if (token.text === token.href || token.text === hrefForComparison) {
331
- result += this.theme.link(this.theme.underline(linkText)) + stylePrefix;
332
- }
333
- else {
334
- result +=
335
- this.theme.link(this.theme.underline(linkText)) +
336
- this.theme.linkUrl(` (${token.href})`) +
337
- stylePrefix;
338
- }
339
- break;
340
- }
341
- case "br":
342
- result += "\n";
343
- break;
344
- case "del": {
345
- const delContent = this.renderInlineTokens(token.tokens || [], resolvedStyleContext);
346
- result += this.theme.strikethrough(delContent) + stylePrefix;
347
- break;
348
- }
349
- case "html":
350
- // Render inline HTML as plain text
351
- if ("raw" in token && typeof token.raw === "string") {
352
- result += applyTextWithNewlines(token.raw);
353
- }
354
- break;
355
- default:
356
- // Handle any other inline token types as plain text
357
- if ("text" in token && typeof token.text === "string") {
358
- result += applyTextWithNewlines(token.text);
359
- }
360
- }
361
- }
362
- return result;
363
- }
364
- /**
365
- * Render a list with proper nesting support
366
- */
367
- renderList(token, depth) {
368
- const lines = [];
369
- const indent = " ".repeat(depth);
370
- // Use the list's start property (defaults to 1 for ordered lists)
371
- const startNumber = token.start ?? 1;
372
- for (let i = 0; i < token.items.length; i++) {
373
- const item = token.items[i];
374
- const bullet = token.ordered ? `${startNumber + i}. ` : "- ";
375
- // Process item tokens to handle nested lists
376
- const itemLines = this.renderListItem(item.tokens || [], depth);
377
- if (itemLines.length > 0) {
378
- // First line - check if it's a nested list
379
- // A nested list will start with indent (spaces) followed by cyan bullet
380
- const firstLine = itemLines[0];
381
- const isNestedList = /^\s+\x1b\[36m[-\d]/.test(firstLine); // starts with spaces + cyan + bullet char
382
- if (isNestedList) {
383
- // This is a nested list, just add it as-is (already has full indent)
384
- lines.push(firstLine);
385
- }
386
- else {
387
- // Regular text content - add indent and bullet
388
- lines.push(indent + this.theme.listBullet(bullet) + firstLine);
389
- }
390
- // Rest of the lines
391
- for (let j = 1; j < itemLines.length; j++) {
392
- const line = itemLines[j];
393
- const isNestedListLine = /^\s+\x1b\[36m[-\d]/.test(line); // starts with spaces + cyan + bullet char
394
- if (isNestedListLine) {
395
- // Nested list line - already has full indent
396
- lines.push(line);
397
- }
398
- else {
399
- // Regular content - add parent indent + 2 spaces for continuation
400
- lines.push(`${indent} ${line}`);
401
- }
402
- }
403
- }
404
- else {
405
- lines.push(indent + this.theme.listBullet(bullet));
406
- }
407
- }
408
- return lines;
409
- }
410
- /**
411
- * Render list item tokens, handling nested lists
412
- * Returns lines WITHOUT the parent indent (renderList will add it)
413
- */
414
- renderListItem(tokens, parentDepth) {
415
- const lines = [];
416
- for (const token of tokens) {
417
- if (token.type === "list") {
418
- // Nested list - render with one additional indent level
419
- // These lines will have their own indent, so we just add them as-is
420
- const nestedLines = this.renderList(token, parentDepth + 1);
421
- lines.push(...nestedLines);
422
- }
423
- else if (token.type === "text") {
424
- // Text content (may have inline tokens)
425
- const text = token.tokens && token.tokens.length > 0 ? this.renderInlineTokens(token.tokens) : token.text || "";
426
- lines.push(text);
427
- }
428
- else if (token.type === "paragraph") {
429
- // Paragraph in list item
430
- const text = this.renderInlineTokens(token.tokens || []);
431
- lines.push(text);
432
- }
433
- else if (token.type === "code") {
434
- // Code block in list item
435
- const indent = this.theme.codeBlockIndent ?? " ";
436
- lines.push(this.theme.codeBlockBorder(`\`\`\`${token.lang || ""}`));
437
- if (this.theme.highlightCode) {
438
- const highlightedLines = this.theme.highlightCode(token.text, token.lang);
439
- for (const hlLine of highlightedLines) {
440
- lines.push(`${indent}${hlLine}`);
441
- }
442
- }
443
- else {
444
- const codeLines = token.text.split("\n");
445
- for (const codeLine of codeLines) {
446
- lines.push(`${indent}${this.theme.codeBlock(codeLine)}`);
447
- }
448
- }
449
- lines.push(this.theme.codeBlockBorder("```"));
450
- }
451
- else {
452
- // Other token types - try to render as inline
453
- const text = this.renderInlineTokens([token]);
454
- if (text) {
455
- lines.push(text);
456
- }
457
- }
242
+ const quoteText = this.renderInlineTokens(token.tokens || [], quoteStyleContext);
243
+ const quoteLines = quoteText.split('\n');
244
+ // Calculate available width for quote content (subtract border "" = 2 chars)
245
+ const quoteContentWidth = Math.max(1, width - 2);
246
+ for (const quoteLine of quoteLines) {
247
+ // Wrap the styled line, then add border to each wrapped line
248
+ const wrappedLines = wrapTextWithAnsi(quoteLine, quoteContentWidth);
249
+ for (const wrappedLine of wrappedLines) {
250
+ lines.push(this.theme.quoteBorder('│ ') + wrappedLine);
251
+ }
252
+ }
253
+ if (nextTokenType !== 'space') {
254
+ lines.push(''); // Add spacing after blockquotes (unless space token follows)
255
+ }
256
+ break;
257
+ }
258
+ case 'hr':
259
+ lines.push(this.theme.hr('─'.repeat(Math.min(width, 80))));
260
+ if (nextTokenType !== 'space') {
261
+ lines.push(''); // Add spacing after horizontal rules (unless space token follows)
262
+ }
263
+ break;
264
+ case 'html':
265
+ // Render HTML as plain text (escaped for terminal)
266
+ if ('raw' in token && typeof token.raw === 'string') {
267
+ lines.push(this.applyDefaultStyle(token.raw.trim()));
268
+ }
269
+ break;
270
+ case 'space':
271
+ // Space tokens represent blank lines in markdown
272
+ lines.push('');
273
+ break;
274
+ default:
275
+ // Handle any other token types as plain text
276
+ if ('text' in token && typeof token.text === 'string') {
277
+ lines.push(token.text);
458
278
  }
459
- return lines;
460
- }
461
- /**
462
- * Get the visible width of the longest word in a string.
463
- */
464
- getLongestWordWidth(text, maxWidth) {
465
- const words = text.split(/\s+/).filter((word) => word.length > 0);
466
- let longest = 0;
467
- for (const word of words) {
468
- longest = Math.max(longest, visibleWidth(word));
469
- }
470
- if (maxWidth === undefined) {
471
- return longest;
472
- }
473
- return Math.min(longest, maxWidth);
474
- }
475
- /**
476
- * Wrap a table cell to fit into a column.
477
- *
478
- * Delegates to wrapTextWithAnsi() so ANSI codes + long tokens are handled
479
- * consistently with the rest of the renderer.
480
- */
481
- wrapCellText(text, maxWidth) {
482
- return wrapTextWithAnsi(text, Math.max(1, maxWidth));
483
- }
484
- /**
485
- * Render a table with width-aware cell wrapping.
486
- * Cells that don't fit are wrapped to multiple lines.
487
- */
488
- renderTable(token, availableWidth) {
489
- const lines = [];
490
- const numCols = token.header.length;
491
- if (numCols === 0) {
492
- return lines;
493
- }
494
- // Calculate border overhead: "│ " + (n-1) * " │ " + " │"
495
- // = 2 + (n-1) * 3 + 2 = 3n + 1
496
- const borderOverhead = 3 * numCols + 1;
497
- const availableForCells = availableWidth - borderOverhead;
498
- if (availableForCells < numCols) {
499
- // Too narrow to render a stable table. Fall back to raw markdown.
500
- const fallbackLines = token.raw ? wrapTextWithAnsi(token.raw, availableWidth) : [];
501
- fallbackLines.push("");
502
- return fallbackLines;
503
- }
504
- const maxUnbrokenWordWidth = 30;
505
- // Calculate natural column widths (what each column needs without constraints)
506
- const naturalWidths = [];
507
- const minWordWidths = [];
279
+ }
280
+ return lines;
281
+ }
282
+ renderInlineTokens(tokens, styleContext) {
283
+ let result = '';
284
+ const resolvedStyleContext = styleContext ?? this.getDefaultInlineStyleContext();
285
+ const { applyText, stylePrefix } = resolvedStyleContext;
286
+ const applyTextWithNewlines = (text) => {
287
+ const segments = text.split('\n');
288
+ return segments.map((segment) => applyText(segment)).join('\n');
289
+ };
290
+ for (const token of tokens) {
291
+ switch (token.type) {
292
+ case 'text':
293
+ // Text tokens in list items can have nested tokens for inline formatting
294
+ if (token.tokens && token.tokens.length > 0) {
295
+ result += this.renderInlineTokens(token.tokens, resolvedStyleContext);
296
+ } else {
297
+ result += applyTextWithNewlines(token.text);
298
+ }
299
+ break;
300
+ case 'paragraph':
301
+ // Paragraph tokens contain nested inline tokens
302
+ result += this.renderInlineTokens(token.tokens || [], resolvedStyleContext);
303
+ break;
304
+ case 'strong': {
305
+ const boldContent = this.renderInlineTokens(token.tokens || [], resolvedStyleContext);
306
+ result += this.theme.bold(boldContent) + stylePrefix;
307
+ break;
308
+ }
309
+ case 'em': {
310
+ const italicContent = this.renderInlineTokens(token.tokens || [], resolvedStyleContext);
311
+ result += this.theme.italic(italicContent) + stylePrefix;
312
+ break;
313
+ }
314
+ case 'codespan':
315
+ result += this.theme.code(token.text) + stylePrefix;
316
+ break;
317
+ case 'link': {
318
+ const linkText = this.renderInlineTokens(token.tokens || [], resolvedStyleContext);
319
+ // If link text matches href, only show the link once
320
+ // Compare raw text (token.text) not styled text (linkText) since linkText has ANSI codes
321
+ // For mailto: links, strip the prefix before comparing (autolinked emails have
322
+ // text="foo@bar.com" but href="mailto:foo@bar.com")
323
+ const hrefForComparison = token.href.startsWith('mailto:')
324
+ ? token.href.slice(7)
325
+ : token.href;
326
+ if (token.text === token.href || token.text === hrefForComparison) {
327
+ result += this.theme.link(this.theme.underline(linkText)) + stylePrefix;
328
+ } else {
329
+ result +=
330
+ this.theme.link(this.theme.underline(linkText)) +
331
+ this.theme.linkUrl(` (${token.href})`) +
332
+ stylePrefix;
333
+ }
334
+ break;
335
+ }
336
+ case 'br':
337
+ result += '\n';
338
+ break;
339
+ case 'del': {
340
+ const delContent = this.renderInlineTokens(token.tokens || [], resolvedStyleContext);
341
+ result += this.theme.strikethrough(delContent) + stylePrefix;
342
+ break;
343
+ }
344
+ case 'html':
345
+ // Render inline HTML as plain text
346
+ if ('raw' in token && typeof token.raw === 'string') {
347
+ result += applyTextWithNewlines(token.raw);
348
+ }
349
+ break;
350
+ default:
351
+ // Handle any other inline token types as plain text
352
+ if ('text' in token && typeof token.text === 'string') {
353
+ result += applyTextWithNewlines(token.text);
354
+ }
355
+ }
356
+ }
357
+ return result;
358
+ }
359
+ /**
360
+ * Render a list with proper nesting support
361
+ */
362
+ renderList(token, depth) {
363
+ const lines = [];
364
+ const indent = ' '.repeat(depth);
365
+ // Use the list's start property (defaults to 1 for ordered lists)
366
+ const startNumber = token.start ?? 1;
367
+ for (let i = 0; i < token.items.length; i++) {
368
+ const item = token.items[i];
369
+ const bullet = token.ordered ? `${startNumber + i}. ` : '- ';
370
+ // Process item tokens to handle nested lists
371
+ const itemLines = this.renderListItem(item.tokens || [], depth);
372
+ if (itemLines.length > 0) {
373
+ // First line - check if it's a nested list
374
+ // A nested list will start with indent (spaces) followed by cyan bullet
375
+ const firstLine = itemLines[0];
376
+ const isNestedList = /^\s+\x1b\[36m[-\d]/.test(firstLine); // starts with spaces + cyan + bullet char
377
+ if (isNestedList) {
378
+ // This is a nested list, just add it as-is (already has full indent)
379
+ lines.push(firstLine);
380
+ } else {
381
+ // Regular text content - add indent and bullet
382
+ lines.push(indent + this.theme.listBullet(bullet) + firstLine);
383
+ }
384
+ // Rest of the lines
385
+ for (let j = 1; j < itemLines.length; j++) {
386
+ const line = itemLines[j];
387
+ const isNestedListLine = /^\s+\x1b\[36m[-\d]/.test(line); // starts with spaces + cyan + bullet char
388
+ if (isNestedListLine) {
389
+ // Nested list line - already has full indent
390
+ lines.push(line);
391
+ } else {
392
+ // Regular content - add parent indent + 2 spaces for continuation
393
+ lines.push(`${indent} ${line}`);
394
+ }
395
+ }
396
+ } else {
397
+ lines.push(indent + this.theme.listBullet(bullet));
398
+ }
399
+ }
400
+ return lines;
401
+ }
402
+ /**
403
+ * Render list item tokens, handling nested lists
404
+ * Returns lines WITHOUT the parent indent (renderList will add it)
405
+ */
406
+ renderListItem(tokens, parentDepth) {
407
+ const lines = [];
408
+ for (const token of tokens) {
409
+ if (token.type === 'list') {
410
+ // Nested list - render with one additional indent level
411
+ // These lines will have their own indent, so we just add them as-is
412
+ const nestedLines = this.renderList(token, parentDepth + 1);
413
+ lines.push(...nestedLines);
414
+ } else if (token.type === 'text') {
415
+ // Text content (may have inline tokens)
416
+ const text =
417
+ token.tokens && token.tokens.length > 0
418
+ ? this.renderInlineTokens(token.tokens)
419
+ : token.text || '';
420
+ lines.push(text);
421
+ } else if (token.type === 'paragraph') {
422
+ // Paragraph in list item
423
+ const text = this.renderInlineTokens(token.tokens || []);
424
+ lines.push(text);
425
+ } else if (token.type === 'code') {
426
+ // Code block in list item
427
+ const indent = this.theme.codeBlockIndent ?? ' ';
428
+ lines.push(this.theme.codeBlockBorder(`\`\`\`${token.lang || ''}`));
429
+ if (this.theme.highlightCode) {
430
+ const highlightedLines = this.theme.highlightCode(token.text, token.lang);
431
+ for (const hlLine of highlightedLines) {
432
+ lines.push(`${indent}${hlLine}`);
433
+ }
434
+ } else {
435
+ const codeLines = token.text.split('\n');
436
+ for (const codeLine of codeLines) {
437
+ lines.push(`${indent}${this.theme.codeBlock(codeLine)}`);
438
+ }
439
+ }
440
+ lines.push(this.theme.codeBlockBorder('```'));
441
+ } else {
442
+ // Other token types - try to render as inline
443
+ const text = this.renderInlineTokens([token]);
444
+ if (text) {
445
+ lines.push(text);
446
+ }
447
+ }
448
+ }
449
+ return lines;
450
+ }
451
+ /**
452
+ * Get the visible width of the longest word in a string.
453
+ */
454
+ getLongestWordWidth(text, maxWidth) {
455
+ const words = text.split(/\s+/).filter((word) => word.length > 0);
456
+ let longest = 0;
457
+ for (const word of words) {
458
+ longest = Math.max(longest, visibleWidth(word));
459
+ }
460
+ if (maxWidth === undefined) {
461
+ return longest;
462
+ }
463
+ return Math.min(longest, maxWidth);
464
+ }
465
+ /**
466
+ * Wrap a table cell to fit into a column.
467
+ *
468
+ * Delegates to wrapTextWithAnsi() so ANSI codes + long tokens are handled
469
+ * consistently with the rest of the renderer.
470
+ */
471
+ wrapCellText(text, maxWidth) {
472
+ return wrapTextWithAnsi(text, Math.max(1, maxWidth));
473
+ }
474
+ /**
475
+ * Render a table with width-aware cell wrapping.
476
+ * Cells that don't fit are wrapped to multiple lines.
477
+ */
478
+ renderTable(token, availableWidth) {
479
+ const lines = [];
480
+ const numCols = token.header.length;
481
+ if (numCols === 0) {
482
+ return lines;
483
+ }
484
+ // Calculate border overhead: "│ " + (n-1) * " │ " + " │"
485
+ // = 2 + (n-1) * 3 + 2 = 3n + 1
486
+ const borderOverhead = 3 * numCols + 1;
487
+ const availableForCells = availableWidth - borderOverhead;
488
+ if (availableForCells < numCols) {
489
+ // Too narrow to render a stable table. Fall back to raw markdown.
490
+ const fallbackLines = token.raw ? wrapTextWithAnsi(token.raw, availableWidth) : [];
491
+ fallbackLines.push('');
492
+ return fallbackLines;
493
+ }
494
+ const maxUnbrokenWordWidth = 30;
495
+ // Calculate natural column widths (what each column needs without constraints)
496
+ const naturalWidths = [];
497
+ const minWordWidths = [];
498
+ for (let i = 0; i < numCols; i++) {
499
+ const headerText = this.renderInlineTokens(token.header[i].tokens || []);
500
+ naturalWidths[i] = visibleWidth(headerText);
501
+ minWordWidths[i] = Math.max(1, this.getLongestWordWidth(headerText, maxUnbrokenWordWidth));
502
+ }
503
+ for (const row of token.rows) {
504
+ for (let i = 0; i < row.length; i++) {
505
+ const cellText = this.renderInlineTokens(row[i].tokens || []);
506
+ naturalWidths[i] = Math.max(naturalWidths[i] || 0, visibleWidth(cellText));
507
+ minWordWidths[i] = Math.max(
508
+ minWordWidths[i] || 1,
509
+ this.getLongestWordWidth(cellText, maxUnbrokenWordWidth)
510
+ );
511
+ }
512
+ }
513
+ let minColumnWidths = minWordWidths;
514
+ let minCellsWidth = minColumnWidths.reduce((a, b) => a + b, 0);
515
+ if (minCellsWidth > availableForCells) {
516
+ minColumnWidths = new Array(numCols).fill(1);
517
+ const remaining = availableForCells - numCols;
518
+ if (remaining > 0) {
519
+ const totalWeight = minWordWidths.reduce(
520
+ (total, width) => total + Math.max(0, width - 1),
521
+ 0
522
+ );
523
+ const growth = minWordWidths.map((width) => {
524
+ const weight = Math.max(0, width - 1);
525
+ return totalWeight > 0 ? Math.floor((weight / totalWeight) * remaining) : 0;
526
+ });
508
527
  for (let i = 0; i < numCols; i++) {
509
- const headerText = this.renderInlineTokens(token.header[i].tokens || []);
510
- naturalWidths[i] = visibleWidth(headerText);
511
- minWordWidths[i] = Math.max(1, this.getLongestWordWidth(headerText, maxUnbrokenWordWidth));
512
- }
513
- for (const row of token.rows) {
514
- for (let i = 0; i < row.length; i++) {
515
- const cellText = this.renderInlineTokens(row[i].tokens || []);
516
- naturalWidths[i] = Math.max(naturalWidths[i] || 0, visibleWidth(cellText));
517
- minWordWidths[i] = Math.max(minWordWidths[i] || 1, this.getLongestWordWidth(cellText, maxUnbrokenWordWidth));
518
- }
528
+ minColumnWidths[i] += growth[i] ?? 0;
519
529
  }
520
- let minColumnWidths = minWordWidths;
521
- let minCellsWidth = minColumnWidths.reduce((a, b) => a + b, 0);
522
- if (minCellsWidth > availableForCells) {
523
- minColumnWidths = new Array(numCols).fill(1);
524
- const remaining = availableForCells - numCols;
525
- if (remaining > 0) {
526
- const totalWeight = minWordWidths.reduce((total, width) => total + Math.max(0, width - 1), 0);
527
- const growth = minWordWidths.map((width) => {
528
- const weight = Math.max(0, width - 1);
529
- return totalWeight > 0 ? Math.floor((weight / totalWeight) * remaining) : 0;
530
- });
531
- for (let i = 0; i < numCols; i++) {
532
- minColumnWidths[i] += growth[i] ?? 0;
533
- }
534
- const allocated = growth.reduce((total, width) => total + width, 0);
535
- let leftover = remaining - allocated;
536
- for (let i = 0; leftover > 0 && i < numCols; i++) {
537
- minColumnWidths[i]++;
538
- leftover--;
539
- }
540
- }
541
- minCellsWidth = minColumnWidths.reduce((a, b) => a + b, 0);
530
+ const allocated = growth.reduce((total, width) => total + width, 0);
531
+ let leftover = remaining - allocated;
532
+ for (let i = 0; leftover > 0 && i < numCols; i++) {
533
+ minColumnWidths[i]++;
534
+ leftover--;
542
535
  }
543
- // Calculate column widths that fit within available width
544
- const totalNaturalWidth = naturalWidths.reduce((a, b) => a + b, 0) + borderOverhead;
545
- let columnWidths;
546
- if (totalNaturalWidth <= availableWidth) {
547
- // Everything fits naturally
548
- columnWidths = naturalWidths.map((width, index) => Math.max(width, minColumnWidths[index]));
549
- }
550
- else {
551
- // Need to shrink columns to fit
552
- const totalGrowPotential = naturalWidths.reduce((total, width, index) => {
553
- return total + Math.max(0, width - minColumnWidths[index]);
554
- }, 0);
555
- const extraWidth = Math.max(0, availableForCells - minCellsWidth);
556
- columnWidths = minColumnWidths.map((minWidth, index) => {
557
- const naturalWidth = naturalWidths[index];
558
- const minWidthDelta = Math.max(0, naturalWidth - minWidth);
559
- let grow = 0;
560
- if (totalGrowPotential > 0) {
561
- grow = Math.floor((minWidthDelta / totalGrowPotential) * extraWidth);
562
- }
563
- return minWidth + grow;
564
- });
565
- // Adjust for rounding errors - distribute remaining space
566
- const allocated = columnWidths.reduce((a, b) => a + b, 0);
567
- let remaining = availableForCells - allocated;
568
- while (remaining > 0) {
569
- let grew = false;
570
- for (let i = 0; i < numCols && remaining > 0; i++) {
571
- if (columnWidths[i] < naturalWidths[i]) {
572
- columnWidths[i]++;
573
- remaining--;
574
- grew = true;
575
- }
576
- }
577
- if (!grew) {
578
- break;
579
- }
580
- }
581
- }
582
- // Render top border
583
- const topBorderCells = columnWidths.map((w) => "─".repeat(w));
584
- lines.push(`┌─${topBorderCells.join("─┬─")}─┐`);
585
- // Render header with wrapping
586
- const headerCellLines = token.header.map((cell, i) => {
587
- const text = this.renderInlineTokens(cell.tokens || []);
588
- return this.wrapCellText(text, columnWidths[i]);
536
+ }
537
+ minCellsWidth = minColumnWidths.reduce((a, b) => a + b, 0);
538
+ }
539
+ // Calculate column widths that fit within available width
540
+ const totalNaturalWidth = naturalWidths.reduce((a, b) => a + b, 0) + borderOverhead;
541
+ let columnWidths;
542
+ if (totalNaturalWidth <= availableWidth) {
543
+ // Everything fits naturally
544
+ columnWidths = naturalWidths.map((width, index) => Math.max(width, minColumnWidths[index]));
545
+ } else {
546
+ // Need to shrink columns to fit
547
+ const totalGrowPotential = naturalWidths.reduce((total, width, index) => {
548
+ return total + Math.max(0, width - minColumnWidths[index]);
549
+ }, 0);
550
+ const extraWidth = Math.max(0, availableForCells - minCellsWidth);
551
+ columnWidths = minColumnWidths.map((minWidth, index) => {
552
+ const naturalWidth = naturalWidths[index];
553
+ const minWidthDelta = Math.max(0, naturalWidth - minWidth);
554
+ let grow = 0;
555
+ if (totalGrowPotential > 0) {
556
+ grow = Math.floor((minWidthDelta / totalGrowPotential) * extraWidth);
557
+ }
558
+ return minWidth + grow;
559
+ });
560
+ // Adjust for rounding errors - distribute remaining space
561
+ const allocated = columnWidths.reduce((a, b) => a + b, 0);
562
+ let remaining = availableForCells - allocated;
563
+ while (remaining > 0) {
564
+ let grew = false;
565
+ for (let i = 0; i < numCols && remaining > 0; i++) {
566
+ if (columnWidths[i] < naturalWidths[i]) {
567
+ columnWidths[i]++;
568
+ remaining--;
569
+ grew = true;
570
+ }
571
+ }
572
+ if (!grew) {
573
+ break;
574
+ }
575
+ }
576
+ }
577
+ // Render top border
578
+ const topBorderCells = columnWidths.map((w) => '─'.repeat(w));
579
+ lines.push(`┌─${topBorderCells.join('─┬─')}─┐`);
580
+ // Render header with wrapping
581
+ const headerCellLines = token.header.map((cell, i) => {
582
+ const text = this.renderInlineTokens(cell.tokens || []);
583
+ return this.wrapCellText(text, columnWidths[i]);
584
+ });
585
+ const headerLineCount = Math.max(...headerCellLines.map((c) => c.length));
586
+ for (let lineIdx = 0; lineIdx < headerLineCount; lineIdx++) {
587
+ const rowParts = headerCellLines.map((cellLines, colIdx) => {
588
+ const text = cellLines[lineIdx] || '';
589
+ const padded = text + ' '.repeat(Math.max(0, columnWidths[colIdx] - visibleWidth(text)));
590
+ return this.theme.bold(padded);
591
+ });
592
+ lines.push(`│ ${rowParts.join(' │ ')} │`);
593
+ }
594
+ // Render separator
595
+ const separatorCells = columnWidths.map((w) => '─'.repeat(w));
596
+ const separatorLine = `├─${separatorCells.join('─┼─')}─┤`;
597
+ lines.push(separatorLine);
598
+ // Render rows with wrapping
599
+ for (let rowIndex = 0; rowIndex < token.rows.length; rowIndex++) {
600
+ const row = token.rows[rowIndex];
601
+ const rowCellLines = row.map((cell, i) => {
602
+ const text = this.renderInlineTokens(cell.tokens || []);
603
+ return this.wrapCellText(text, columnWidths[i]);
604
+ });
605
+ const rowLineCount = Math.max(...rowCellLines.map((c) => c.length));
606
+ for (let lineIdx = 0; lineIdx < rowLineCount; lineIdx++) {
607
+ const rowParts = rowCellLines.map((cellLines, colIdx) => {
608
+ const text = cellLines[lineIdx] || '';
609
+ return text + ' '.repeat(Math.max(0, columnWidths[colIdx] - visibleWidth(text)));
589
610
  });
590
- const headerLineCount = Math.max(...headerCellLines.map((c) => c.length));
591
- for (let lineIdx = 0; lineIdx < headerLineCount; lineIdx++) {
592
- const rowParts = headerCellLines.map((cellLines, colIdx) => {
593
- const text = cellLines[lineIdx] || "";
594
- const padded = text + " ".repeat(Math.max(0, columnWidths[colIdx] - visibleWidth(text)));
595
- return this.theme.bold(padded);
596
- });
597
- lines.push(`│ ${rowParts.join(" │ ")} │`);
598
- }
599
- // Render separator
600
- const separatorCells = columnWidths.map((w) => "─".repeat(w));
601
- const separatorLine = `├─${separatorCells.join("─┼─")}─┤`;
611
+ lines.push(`│ ${rowParts.join(' ')} │`);
612
+ }
613
+ if (rowIndex < token.rows.length - 1) {
602
614
  lines.push(separatorLine);
603
- // Render rows with wrapping
604
- for (let rowIndex = 0; rowIndex < token.rows.length; rowIndex++) {
605
- const row = token.rows[rowIndex];
606
- const rowCellLines = row.map((cell, i) => {
607
- const text = this.renderInlineTokens(cell.tokens || []);
608
- return this.wrapCellText(text, columnWidths[i]);
609
- });
610
- const rowLineCount = Math.max(...rowCellLines.map((c) => c.length));
611
- for (let lineIdx = 0; lineIdx < rowLineCount; lineIdx++) {
612
- const rowParts = rowCellLines.map((cellLines, colIdx) => {
613
- const text = cellLines[lineIdx] || "";
614
- return text + " ".repeat(Math.max(0, columnWidths[colIdx] - visibleWidth(text)));
615
- });
616
- lines.push(`│ ${rowParts.join(" │ ")} │`);
617
- }
618
- if (rowIndex < token.rows.length - 1) {
619
- lines.push(separatorLine);
620
- }
621
- }
622
- // Render bottom border
623
- const bottomBorderCells = columnWidths.map((w) => "─".repeat(w));
624
- lines.push(`└─${bottomBorderCells.join("─┴─")}─┘`);
625
- lines.push(""); // Add spacing after table
626
- return lines;
615
+ }
627
616
  }
617
+ // Render bottom border
618
+ const bottomBorderCells = columnWidths.map((w) => '─'.repeat(w));
619
+ lines.push(`└─${bottomBorderCells.join('─┴─')}─┘`);
620
+ lines.push(''); // Add spacing after table
621
+ return lines;
622
+ }
628
623
  }
629
- //# sourceMappingURL=markdown.js.map
624
+ //# sourceMappingURL=markdown.js.map