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
package/dist/tui/utils.js CHANGED
@@ -1,11 +1,11 @@
1
- import { eastAsianWidth } from "./get-east-asian-width/index.js";
1
+ import { eastAsianWidth } from './get-east-asian-width/index.js';
2
2
  // Grapheme segmenter (shared instance)
3
- const segmenter = new Intl.Segmenter(undefined, { granularity: "grapheme" });
3
+ const segmenter = new Intl.Segmenter(undefined, { granularity: 'grapheme' });
4
4
  /**
5
5
  * Get the shared grapheme segmenter instance.
6
6
  */
7
7
  export function getSegmenter() {
8
- return segmenter;
8
+ return segmenter;
9
9
  }
10
10
  /**
11
11
  * Check if a grapheme cluster (after segmentation) could possibly be an RGI emoji.
@@ -14,18 +14,21 @@ export function getSegmenter() {
14
14
  * Unicode additions.
15
15
  */
16
16
  function couldBeEmoji(segment) {
17
- const cp = segment.codePointAt(0);
18
- return ((cp >= 0x1f000 && cp <= 0x1fbff) || // Emoji and Pictograph
19
- (cp >= 0x2300 && cp <= 0x23ff) || // Misc technical
20
- (cp >= 0x2600 && cp <= 0x27bf) || // Misc symbols, dingbats
21
- (cp >= 0x2b50 && cp <= 0x2b55) || // Specific stars/circles
22
- segment.includes("\uFE0F") || // Contains VS16 (emoji presentation selector)
23
- segment.length > 2 // Multi-codepoint sequences (ZWJ, skin tones, etc.)
24
- );
17
+ const cp = segment.codePointAt(0);
18
+ return (
19
+ (cp >= 0x1f000 && cp <= 0x1fbff) || // Emoji and Pictograph
20
+ (cp >= 0x2300 && cp <= 0x23ff) || // Misc technical
21
+ (cp >= 0x2600 && cp <= 0x27bf) || // Misc symbols, dingbats
22
+ (cp >= 0x2b50 && cp <= 0x2b55) || // Specific stars/circles
23
+ segment.includes('\uFE0F') || // Contains VS16 (emoji presentation selector)
24
+ segment.length > 2 // Multi-codepoint sequences (ZWJ, skin tones, etc.)
25
+ );
25
26
  }
26
27
  // Regexes for character classification (same as string-width library)
27
- const zeroWidthRegex = /^(?:\p{Default_Ignorable_Code_Point}|\p{Control}|\p{Mark}|\p{Surrogate})+$/v;
28
- const leadingNonPrintingRegex = /^[\p{Default_Ignorable_Code_Point}\p{Control}\p{Format}\p{Mark}\p{Surrogate}]+/v;
28
+ const zeroWidthRegex =
29
+ /^(?:\p{Default_Ignorable_Code_Point}|\p{Control}|\p{Mark}|\p{Surrogate})+$/v;
30
+ const leadingNonPrintingRegex =
31
+ /^[\p{Default_Ignorable_Code_Point}\p{Control}\p{Format}\p{Mark}\p{Surrogate}]+/v;
29
32
  const rgiEmojiRegex = /^\p{RGI_Emoji}$/v;
30
33
  // Cache for non-ASCII strings
31
34
  const WIDTH_CACHE_SIZE = 512;
@@ -36,387 +39,368 @@ const widthCache = new Map();
36
39
  * check to avoid running the RGI_Emoji regex unnecessarily.
37
40
  */
38
41
  function graphemeWidth(segment) {
39
- // Zero-width clusters
40
- if (zeroWidthRegex.test(segment)) {
41
- return 0;
42
- }
43
- // Emoji check with pre-filter
44
- if (couldBeEmoji(segment) && rgiEmojiRegex.test(segment)) {
45
- return 2;
46
- }
47
- // Get base visible codepoint
48
- const base = segment.replace(leadingNonPrintingRegex, "");
49
- const cp = base.codePointAt(0);
50
- if (cp === undefined) {
51
- return 0;
52
- }
53
- let width = eastAsianWidth(cp);
54
- // Trailing halfwidth/fullwidth forms
55
- if (segment.length > 1) {
56
- for (const char of segment.slice(1)) {
57
- const c = char.codePointAt(0);
58
- if (c >= 0xff00 && c <= 0xffef) {
59
- width += eastAsianWidth(c);
60
- }
61
- }
62
- }
63
- return width;
42
+ // Zero-width clusters
43
+ if (zeroWidthRegex.test(segment)) {
44
+ return 0;
45
+ }
46
+ // Emoji check with pre-filter
47
+ if (couldBeEmoji(segment) && rgiEmojiRegex.test(segment)) {
48
+ return 2;
49
+ }
50
+ // Get base visible codepoint
51
+ const base = segment.replace(leadingNonPrintingRegex, '');
52
+ const cp = base.codePointAt(0);
53
+ if (cp === undefined) {
54
+ return 0;
55
+ }
56
+ let width = eastAsianWidth(cp);
57
+ // Trailing halfwidth/fullwidth forms
58
+ if (segment.length > 1) {
59
+ for (const char of segment.slice(1)) {
60
+ const c = char.codePointAt(0);
61
+ if (c >= 0xff00 && c <= 0xffef) {
62
+ width += eastAsianWidth(c);
63
+ }
64
+ }
65
+ }
66
+ return width;
64
67
  }
65
68
  /**
66
69
  * Calculate the visible width of a string in terminal columns.
67
70
  */
68
71
  export function visibleWidth(str) {
69
- if (str.length === 0) {
70
- return 0;
71
- }
72
- // Fast path: pure ASCII printable
73
- let isPureAscii = true;
74
- for (let i = 0; i < str.length; i++) {
75
- const code = str.charCodeAt(i);
76
- if (code < 0x20 || code > 0x7e) {
77
- isPureAscii = false;
78
- break;
79
- }
80
- }
81
- if (isPureAscii) {
82
- return str.length;
83
- }
84
- // Check cache
85
- const cached = widthCache.get(str);
86
- if (cached !== undefined) {
87
- return cached;
88
- }
89
- // Normalize: tabs to 3 spaces, strip ANSI escape codes
90
- let clean = str;
91
- if (str.includes("\t")) {
92
- clean = clean.replace(/\t/g, " ");
93
- }
94
- if (clean.includes("\x1b")) {
95
- // Strip SGR codes (\x1b[...m) and cursor codes (\x1b[...G/K/H/J)
96
- clean = clean.replace(/\x1b\[[0-9;]*[mGKHJ]/g, "");
97
- // Strip OSC 8 hyperlinks: \x1b]8;;URL\x07 and \x1b]8;;\x07
98
- clean = clean.replace(/\x1b\]8;;[^\x07]*\x07/g, "");
99
- // Strip APC sequences: \x1b_...\x07 or \x1b_...\x1b\\ (used for cursor marker)
100
- clean = clean.replace(/\x1b_[^\x07\x1b]*(?:\x07|\x1b\\)/g, "");
101
- }
102
- // Calculate width
103
- let width = 0;
104
- for (const { segment } of segmenter.segment(clean)) {
105
- width += graphemeWidth(segment);
106
- }
107
- // Cache result
108
- if (widthCache.size >= WIDTH_CACHE_SIZE) {
109
- const firstKey = widthCache.keys().next().value;
110
- if (firstKey !== undefined) {
111
- widthCache.delete(firstKey);
112
- }
113
- }
114
- widthCache.set(str, width);
115
- return width;
72
+ if (str.length === 0) {
73
+ return 0;
74
+ }
75
+ // Fast path: pure ASCII printable
76
+ let isPureAscii = true;
77
+ for (let i = 0; i < str.length; i++) {
78
+ const code = str.charCodeAt(i);
79
+ if (code < 0x20 || code > 0x7e) {
80
+ isPureAscii = false;
81
+ break;
82
+ }
83
+ }
84
+ if (isPureAscii) {
85
+ return str.length;
86
+ }
87
+ // Check cache
88
+ const cached = widthCache.get(str);
89
+ if (cached !== undefined) {
90
+ return cached;
91
+ }
92
+ // Normalize: tabs to 3 spaces, strip ANSI escape codes
93
+ let clean = str;
94
+ if (str.includes('\t')) {
95
+ clean = clean.replace(/\t/g, ' ');
96
+ }
97
+ if (clean.includes('\x1b')) {
98
+ // Strip SGR codes (\x1b[...m) and cursor codes (\x1b[...G/K/H/J)
99
+ clean = clean.replace(/\x1b\[[0-9;]*[mGKHJ]/g, '');
100
+ // Strip OSC 8 hyperlinks: \x1b]8;;URL\x07 and \x1b]8;;\x07
101
+ clean = clean.replace(/\x1b\]8;;[^\x07]*\x07/g, '');
102
+ // Strip APC sequences: \x1b_...\x07 or \x1b_...\x1b\\ (used for cursor marker)
103
+ clean = clean.replace(/\x1b_[^\x07\x1b]*(?:\x07|\x1b\\)/g, '');
104
+ }
105
+ // Calculate width
106
+ let width = 0;
107
+ for (const { segment } of segmenter.segment(clean)) {
108
+ width += graphemeWidth(segment);
109
+ }
110
+ // Cache result
111
+ if (widthCache.size >= WIDTH_CACHE_SIZE) {
112
+ const firstKey = widthCache.keys().next().value;
113
+ if (firstKey !== undefined) {
114
+ widthCache.delete(firstKey);
115
+ }
116
+ }
117
+ widthCache.set(str, width);
118
+ return width;
116
119
  }
117
120
  /**
118
121
  * Extract ANSI escape sequences from a string at the given position.
119
122
  */
120
123
  export function extractAnsiCode(str, pos) {
121
- if (pos >= str.length || str[pos] !== "\x1b")
122
- return null;
123
- const next = str[pos + 1];
124
- // CSI sequence: ESC [ ... m/G/K/H/J
125
- if (next === "[") {
126
- let j = pos + 2;
127
- while (j < str.length && !/[mGKHJ]/.test(str[j]))
128
- j++;
129
- if (j < str.length)
130
- return { code: str.substring(pos, j + 1), length: j + 1 - pos };
131
- return null;
132
- }
133
- // OSC sequence: ESC ] ... BEL or ESC ] ... ST (ESC \)
134
- // Used for hyperlinks (OSC 8), window titles, etc.
135
- if (next === "]") {
136
- let j = pos + 2;
137
- while (j < str.length) {
138
- if (str[j] === "\x07")
139
- return { code: str.substring(pos, j + 1), length: j + 1 - pos };
140
- if (str[j] === "\x1b" && str[j + 1] === "\\")
141
- return { code: str.substring(pos, j + 2), length: j + 2 - pos };
142
- j++;
143
- }
144
- return null;
124
+ if (pos >= str.length || str[pos] !== '\x1b') return null;
125
+ const next = str[pos + 1];
126
+ // CSI sequence: ESC [ ... m/G/K/H/J
127
+ if (next === '[') {
128
+ let j = pos + 2;
129
+ while (j < str.length && !/[mGKHJ]/.test(str[j])) j++;
130
+ if (j < str.length) return { code: str.substring(pos, j + 1), length: j + 1 - pos };
131
+ return null;
132
+ }
133
+ // OSC sequence: ESC ] ... BEL or ESC ] ... ST (ESC \)
134
+ // Used for hyperlinks (OSC 8), window titles, etc.
135
+ if (next === ']') {
136
+ let j = pos + 2;
137
+ while (j < str.length) {
138
+ if (str[j] === '\x07') return { code: str.substring(pos, j + 1), length: j + 1 - pos };
139
+ if (str[j] === '\x1b' && str[j + 1] === '\\')
140
+ return { code: str.substring(pos, j + 2), length: j + 2 - pos };
141
+ j++;
145
142
  }
146
- // APC sequence: ESC _ ... BEL or ESC _ ... ST (ESC \)
147
- // Used for cursor marker and application-specific commands
148
- if (next === "_") {
149
- let j = pos + 2;
150
- while (j < str.length) {
151
- if (str[j] === "\x07")
152
- return { code: str.substring(pos, j + 1), length: j + 1 - pos };
153
- if (str[j] === "\x1b" && str[j + 1] === "\\")
154
- return { code: str.substring(pos, j + 2), length: j + 2 - pos };
155
- j++;
156
- }
157
- return null;
143
+ return null;
144
+ }
145
+ // APC sequence: ESC _ ... BEL or ESC _ ... ST (ESC \)
146
+ // Used for cursor marker and application-specific commands
147
+ if (next === '_') {
148
+ let j = pos + 2;
149
+ while (j < str.length) {
150
+ if (str[j] === '\x07') return { code: str.substring(pos, j + 1), length: j + 1 - pos };
151
+ if (str[j] === '\x1b' && str[j + 1] === '\\')
152
+ return { code: str.substring(pos, j + 2), length: j + 2 - pos };
153
+ j++;
158
154
  }
159
155
  return null;
156
+ }
157
+ return null;
160
158
  }
161
159
  /**
162
160
  * Track active ANSI SGR codes to preserve styling across line breaks.
163
161
  */
164
162
  class AnsiCodeTracker {
165
- // Track individual attributes separately so we can reset them specifically
166
- bold = false;
167
- dim = false;
168
- italic = false;
169
- underline = false;
170
- blink = false;
171
- inverse = false;
172
- hidden = false;
173
- strikethrough = false;
174
- fgColor = null; // Stores the full code like "31" or "38;5;240"
175
- bgColor = null; // Stores the full code like "41" or "48;5;240"
176
- process(ansiCode) {
177
- if (!ansiCode.endsWith("m")) {
178
- return;
179
- }
180
- // Extract the parameters between \x1b[ and m
181
- const match = ansiCode.match(/\x1b\[([\d;]*)m/);
182
- if (!match)
183
- return;
184
- const params = match[1];
185
- if (params === "" || params === "0") {
186
- // Full reset
187
- this.reset();
188
- return;
189
- }
190
- // Parse parameters (can be semicolon-separated)
191
- const parts = params.split(";");
192
- let i = 0;
193
- while (i < parts.length) {
194
- const code = Number.parseInt(parts[i], 10);
195
- // Handle 256-color and RGB codes which consume multiple parameters
196
- if (code === 38 || code === 48) {
197
- // 38;5;N (256 color fg) or 38;2;R;G;B (RGB fg)
198
- // 48;5;N (256 color bg) or 48;2;R;G;B (RGB bg)
199
- if (parts[i + 1] === "5" && parts[i + 2] !== undefined) {
200
- // 256 color: 38;5;N or 48;5;N
201
- const colorCode = `${parts[i]};${parts[i + 1]};${parts[i + 2]}`;
202
- if (code === 38) {
203
- this.fgColor = colorCode;
204
- }
205
- else {
206
- this.bgColor = colorCode;
207
- }
208
- i += 3;
209
- continue;
210
- }
211
- else if (parts[i + 1] === "2" && parts[i + 4] !== undefined) {
212
- // RGB color: 38;2;R;G;B or 48;2;R;G;B
213
- const colorCode = `${parts[i]};${parts[i + 1]};${parts[i + 2]};${parts[i + 3]};${parts[i + 4]}`;
214
- if (code === 38) {
215
- this.fgColor = colorCode;
216
- }
217
- else {
218
- this.bgColor = colorCode;
219
- }
220
- i += 5;
221
- continue;
222
- }
223
- }
224
- // Standard SGR codes
225
- switch (code) {
226
- case 0:
227
- this.reset();
228
- break;
229
- case 1:
230
- this.bold = true;
231
- break;
232
- case 2:
233
- this.dim = true;
234
- break;
235
- case 3:
236
- this.italic = true;
237
- break;
238
- case 4:
239
- this.underline = true;
240
- break;
241
- case 5:
242
- this.blink = true;
243
- break;
244
- case 7:
245
- this.inverse = true;
246
- break;
247
- case 8:
248
- this.hidden = true;
249
- break;
250
- case 9:
251
- this.strikethrough = true;
252
- break;
253
- case 21:
254
- this.bold = false;
255
- break; // Some terminals
256
- case 22:
257
- this.bold = false;
258
- this.dim = false;
259
- break;
260
- case 23:
261
- this.italic = false;
262
- break;
263
- case 24:
264
- this.underline = false;
265
- break;
266
- case 25:
267
- this.blink = false;
268
- break;
269
- case 27:
270
- this.inverse = false;
271
- break;
272
- case 28:
273
- this.hidden = false;
274
- break;
275
- case 29:
276
- this.strikethrough = false;
277
- break;
278
- case 39:
279
- this.fgColor = null;
280
- break; // Default fg
281
- case 49:
282
- this.bgColor = null;
283
- break; // Default bg
284
- default:
285
- // Standard foreground colors 30-37, 90-97
286
- if ((code >= 30 && code <= 37) || (code >= 90 && code <= 97)) {
287
- this.fgColor = String(code);
288
- }
289
- // Standard background colors 40-47, 100-107
290
- else if ((code >= 40 && code <= 47) || (code >= 100 && code <= 107)) {
291
- this.bgColor = String(code);
292
- }
293
- break;
294
- }
295
- i++;
296
- }
297
- }
298
- reset() {
299
- this.bold = false;
300
- this.dim = false;
301
- this.italic = false;
302
- this.underline = false;
303
- this.blink = false;
304
- this.inverse = false;
305
- this.hidden = false;
306
- this.strikethrough = false;
307
- this.fgColor = null;
308
- this.bgColor = null;
309
- }
310
- /** Clear all state for reuse. */
311
- clear() {
312
- this.reset();
313
- }
314
- getActiveCodes() {
315
- const codes = [];
316
- if (this.bold)
317
- codes.push("1");
318
- if (this.dim)
319
- codes.push("2");
320
- if (this.italic)
321
- codes.push("3");
322
- if (this.underline)
323
- codes.push("4");
324
- if (this.blink)
325
- codes.push("5");
326
- if (this.inverse)
327
- codes.push("7");
328
- if (this.hidden)
329
- codes.push("8");
330
- if (this.strikethrough)
331
- codes.push("9");
332
- if (this.fgColor)
333
- codes.push(this.fgColor);
334
- if (this.bgColor)
335
- codes.push(this.bgColor);
336
- if (codes.length === 0)
337
- return "";
338
- return `\x1b[${codes.join(";")}m`;
339
- }
340
- hasActiveCodes() {
341
- return (this.bold ||
342
- this.dim ||
343
- this.italic ||
344
- this.underline ||
345
- this.blink ||
346
- this.inverse ||
347
- this.hidden ||
348
- this.strikethrough ||
349
- this.fgColor !== null ||
350
- this.bgColor !== null);
351
- }
352
- /**
353
- * Get reset codes for attributes that need to be turned off at line end,
354
- * specifically underline which bleeds into padding.
355
- * Returns empty string if no problematic attributes are active.
356
- */
357
- getLineEndReset() {
358
- // Only underline causes visual bleeding into padding
359
- // Other attributes like colors don't visually bleed to padding
360
- if (this.underline) {
361
- return "\x1b[24m"; // Underline off only
163
+ // Track individual attributes separately so we can reset them specifically
164
+ bold = false;
165
+ dim = false;
166
+ italic = false;
167
+ underline = false;
168
+ blink = false;
169
+ inverse = false;
170
+ hidden = false;
171
+ strikethrough = false;
172
+ fgColor = null; // Stores the full code like "31" or "38;5;240"
173
+ bgColor = null; // Stores the full code like "41" or "48;5;240"
174
+ process(ansiCode) {
175
+ if (!ansiCode.endsWith('m')) {
176
+ return;
177
+ }
178
+ // Extract the parameters between \x1b[ and m
179
+ const match = ansiCode.match(/\x1b\[([\d;]*)m/);
180
+ if (!match) return;
181
+ const params = match[1];
182
+ if (params === '' || params === '0') {
183
+ // Full reset
184
+ this.reset();
185
+ return;
186
+ }
187
+ // Parse parameters (can be semicolon-separated)
188
+ const parts = params.split(';');
189
+ let i = 0;
190
+ while (i < parts.length) {
191
+ const code = Number.parseInt(parts[i], 10);
192
+ // Handle 256-color and RGB codes which consume multiple parameters
193
+ if (code === 38 || code === 48) {
194
+ // 38;5;N (256 color fg) or 38;2;R;G;B (RGB fg)
195
+ // 48;5;N (256 color bg) or 48;2;R;G;B (RGB bg)
196
+ if (parts[i + 1] === '5' && parts[i + 2] !== undefined) {
197
+ // 256 color: 38;5;N or 48;5;N
198
+ const colorCode = `${parts[i]};${parts[i + 1]};${parts[i + 2]}`;
199
+ if (code === 38) {
200
+ this.fgColor = colorCode;
201
+ } else {
202
+ this.bgColor = colorCode;
203
+ }
204
+ i += 3;
205
+ continue;
206
+ } else if (parts[i + 1] === '2' && parts[i + 4] !== undefined) {
207
+ // RGB color: 38;2;R;G;B or 48;2;R;G;B
208
+ const colorCode = `${parts[i]};${parts[i + 1]};${parts[i + 2]};${parts[i + 3]};${parts[i + 4]}`;
209
+ if (code === 38) {
210
+ this.fgColor = colorCode;
211
+ } else {
212
+ this.bgColor = colorCode;
213
+ }
214
+ i += 5;
215
+ continue;
362
216
  }
363
- return "";
364
- }
217
+ }
218
+ // Standard SGR codes
219
+ switch (code) {
220
+ case 0:
221
+ this.reset();
222
+ break;
223
+ case 1:
224
+ this.bold = true;
225
+ break;
226
+ case 2:
227
+ this.dim = true;
228
+ break;
229
+ case 3:
230
+ this.italic = true;
231
+ break;
232
+ case 4:
233
+ this.underline = true;
234
+ break;
235
+ case 5:
236
+ this.blink = true;
237
+ break;
238
+ case 7:
239
+ this.inverse = true;
240
+ break;
241
+ case 8:
242
+ this.hidden = true;
243
+ break;
244
+ case 9:
245
+ this.strikethrough = true;
246
+ break;
247
+ case 21:
248
+ this.bold = false;
249
+ break; // Some terminals
250
+ case 22:
251
+ this.bold = false;
252
+ this.dim = false;
253
+ break;
254
+ case 23:
255
+ this.italic = false;
256
+ break;
257
+ case 24:
258
+ this.underline = false;
259
+ break;
260
+ case 25:
261
+ this.blink = false;
262
+ break;
263
+ case 27:
264
+ this.inverse = false;
265
+ break;
266
+ case 28:
267
+ this.hidden = false;
268
+ break;
269
+ case 29:
270
+ this.strikethrough = false;
271
+ break;
272
+ case 39:
273
+ this.fgColor = null;
274
+ break; // Default fg
275
+ case 49:
276
+ this.bgColor = null;
277
+ break; // Default bg
278
+ default:
279
+ // Standard foreground colors 30-37, 90-97
280
+ if ((code >= 30 && code <= 37) || (code >= 90 && code <= 97)) {
281
+ this.fgColor = String(code);
282
+ }
283
+ // Standard background colors 40-47, 100-107
284
+ else if ((code >= 40 && code <= 47) || (code >= 100 && code <= 107)) {
285
+ this.bgColor = String(code);
286
+ }
287
+ break;
288
+ }
289
+ i++;
290
+ }
291
+ }
292
+ reset() {
293
+ this.bold = false;
294
+ this.dim = false;
295
+ this.italic = false;
296
+ this.underline = false;
297
+ this.blink = false;
298
+ this.inverse = false;
299
+ this.hidden = false;
300
+ this.strikethrough = false;
301
+ this.fgColor = null;
302
+ this.bgColor = null;
303
+ }
304
+ /** Clear all state for reuse. */
305
+ clear() {
306
+ this.reset();
307
+ }
308
+ getActiveCodes() {
309
+ const codes = [];
310
+ if (this.bold) codes.push('1');
311
+ if (this.dim) codes.push('2');
312
+ if (this.italic) codes.push('3');
313
+ if (this.underline) codes.push('4');
314
+ if (this.blink) codes.push('5');
315
+ if (this.inverse) codes.push('7');
316
+ if (this.hidden) codes.push('8');
317
+ if (this.strikethrough) codes.push('9');
318
+ if (this.fgColor) codes.push(this.fgColor);
319
+ if (this.bgColor) codes.push(this.bgColor);
320
+ if (codes.length === 0) return '';
321
+ return `\x1b[${codes.join(';')}m`;
322
+ }
323
+ hasActiveCodes() {
324
+ return (
325
+ this.bold ||
326
+ this.dim ||
327
+ this.italic ||
328
+ this.underline ||
329
+ this.blink ||
330
+ this.inverse ||
331
+ this.hidden ||
332
+ this.strikethrough ||
333
+ this.fgColor !== null ||
334
+ this.bgColor !== null
335
+ );
336
+ }
337
+ /**
338
+ * Get reset codes for attributes that need to be turned off at line end,
339
+ * specifically underline which bleeds into padding.
340
+ * Returns empty string if no problematic attributes are active.
341
+ */
342
+ getLineEndReset() {
343
+ // Only underline causes visual bleeding into padding
344
+ // Other attributes like colors don't visually bleed to padding
345
+ if (this.underline) {
346
+ return '\x1b[24m'; // Underline off only
347
+ }
348
+ return '';
349
+ }
365
350
  }
366
351
  function updateTrackerFromText(text, tracker) {
367
- let i = 0;
368
- while (i < text.length) {
369
- const ansiResult = extractAnsiCode(text, i);
370
- if (ansiResult) {
371
- tracker.process(ansiResult.code);
372
- i += ansiResult.length;
373
- }
374
- else {
375
- i++;
376
- }
377
- }
352
+ let i = 0;
353
+ while (i < text.length) {
354
+ const ansiResult = extractAnsiCode(text, i);
355
+ if (ansiResult) {
356
+ tracker.process(ansiResult.code);
357
+ i += ansiResult.length;
358
+ } else {
359
+ i++;
360
+ }
361
+ }
378
362
  }
379
363
  /**
380
364
  * Split text into words while keeping ANSI codes attached.
381
365
  */
382
366
  function splitIntoTokensWithAnsi(text) {
383
- const tokens = [];
384
- let current = "";
385
- let pendingAnsi = ""; // ANSI codes waiting to be attached to next visible content
386
- let inWhitespace = false;
387
- let i = 0;
388
- while (i < text.length) {
389
- const ansiResult = extractAnsiCode(text, i);
390
- if (ansiResult) {
391
- // Hold ANSI codes separately - they'll be attached to the next visible char
392
- pendingAnsi += ansiResult.code;
393
- i += ansiResult.length;
394
- continue;
395
- }
396
- const char = text[i];
397
- const charIsSpace = char === " ";
398
- if (charIsSpace !== inWhitespace && current) {
399
- // Switching between whitespace and non-whitespace, push current token
400
- tokens.push(current);
401
- current = "";
402
- }
403
- // Attach any pending ANSI codes to this visible character
404
- if (pendingAnsi) {
405
- current += pendingAnsi;
406
- pendingAnsi = "";
407
- }
408
- inWhitespace = charIsSpace;
409
- current += char;
410
- i++;
411
- }
412
- // Handle any remaining pending ANSI codes (attach to last token)
367
+ const tokens = [];
368
+ let current = '';
369
+ let pendingAnsi = ''; // ANSI codes waiting to be attached to next visible content
370
+ let inWhitespace = false;
371
+ let i = 0;
372
+ while (i < text.length) {
373
+ const ansiResult = extractAnsiCode(text, i);
374
+ if (ansiResult) {
375
+ // Hold ANSI codes separately - they'll be attached to the next visible char
376
+ pendingAnsi += ansiResult.code;
377
+ i += ansiResult.length;
378
+ continue;
379
+ }
380
+ const char = text[i];
381
+ const charIsSpace = char === ' ';
382
+ if (charIsSpace !== inWhitespace && current) {
383
+ // Switching between whitespace and non-whitespace, push current token
384
+ tokens.push(current);
385
+ current = '';
386
+ }
387
+ // Attach any pending ANSI codes to this visible character
413
388
  if (pendingAnsi) {
414
- current += pendingAnsi;
415
- }
416
- if (current) {
417
- tokens.push(current);
418
- }
419
- return tokens;
389
+ current += pendingAnsi;
390
+ pendingAnsi = '';
391
+ }
392
+ inWhitespace = charIsSpace;
393
+ current += char;
394
+ i++;
395
+ }
396
+ // Handle any remaining pending ANSI codes (attach to last token)
397
+ if (pendingAnsi) {
398
+ current += pendingAnsi;
399
+ }
400
+ if (current) {
401
+ tokens.push(current);
402
+ }
403
+ return tokens;
420
404
  }
421
405
  /**
422
406
  * Wrap text with ANSI codes preserved.
@@ -430,166 +414,161 @@ function splitIntoTokensWithAnsi(text) {
430
414
  * @returns Array of wrapped lines (NOT padded to width)
431
415
  */
432
416
  export function wrapTextWithAnsi(text, width) {
433
- if (!text) {
434
- return [""];
435
- }
436
- // Handle newlines by processing each line separately
437
- // Track ANSI state across lines so styles carry over after literal newlines
438
- const inputLines = text.split("\n");
439
- const result = [];
440
- const tracker = new AnsiCodeTracker();
441
- for (const inputLine of inputLines) {
442
- // Prepend active ANSI codes from previous lines (except for first line)
443
- const prefix = result.length > 0 ? tracker.getActiveCodes() : "";
444
- result.push(...wrapSingleLine(prefix + inputLine, width));
445
- // Update tracker with codes from this line for next iteration
446
- updateTrackerFromText(inputLine, tracker);
447
- }
448
- return result.length > 0 ? result : [""];
417
+ if (!text) {
418
+ return [''];
419
+ }
420
+ // Handle newlines by processing each line separately
421
+ // Track ANSI state across lines so styles carry over after literal newlines
422
+ const inputLines = text.split('\n');
423
+ const result = [];
424
+ const tracker = new AnsiCodeTracker();
425
+ for (const inputLine of inputLines) {
426
+ // Prepend active ANSI codes from previous lines (except for first line)
427
+ const prefix = result.length > 0 ? tracker.getActiveCodes() : '';
428
+ result.push(...wrapSingleLine(prefix + inputLine, width));
429
+ // Update tracker with codes from this line for next iteration
430
+ updateTrackerFromText(inputLine, tracker);
431
+ }
432
+ return result.length > 0 ? result : [''];
449
433
  }
450
434
  function wrapSingleLine(line, width) {
451
- if (!line) {
452
- return [""];
453
- }
454
- const visibleLength = visibleWidth(line);
455
- if (visibleLength <= width) {
456
- return [line];
457
- }
458
- const wrapped = [];
459
- const tracker = new AnsiCodeTracker();
460
- const tokens = splitIntoTokensWithAnsi(line);
461
- let currentLine = "";
462
- let currentVisibleLength = 0;
463
- for (const token of tokens) {
464
- const tokenVisibleLength = visibleWidth(token);
465
- const isWhitespace = token.trim() === "";
466
- // Token itself is too long - break it character by character
467
- if (tokenVisibleLength > width && !isWhitespace) {
468
- if (currentLine) {
469
- // Add specific reset for underline only (preserves background)
470
- const lineEndReset = tracker.getLineEndReset();
471
- if (lineEndReset) {
472
- currentLine += lineEndReset;
473
- }
474
- wrapped.push(currentLine);
475
- currentLine = "";
476
- currentVisibleLength = 0;
477
- }
478
- // Break long token - breakLongWord handles its own resets
479
- const broken = breakLongWord(token, width, tracker);
480
- wrapped.push(...broken.slice(0, -1));
481
- currentLine = broken[broken.length - 1];
482
- currentVisibleLength = visibleWidth(currentLine);
483
- continue;
484
- }
485
- // Check if adding this token would exceed width
486
- const totalNeeded = currentVisibleLength + tokenVisibleLength;
487
- if (totalNeeded > width && currentVisibleLength > 0) {
488
- // Trim trailing whitespace, then add underline reset (not full reset, to preserve background)
489
- let lineToWrap = currentLine.trimEnd();
490
- const lineEndReset = tracker.getLineEndReset();
491
- if (lineEndReset) {
492
- lineToWrap += lineEndReset;
493
- }
494
- wrapped.push(lineToWrap);
495
- if (isWhitespace) {
496
- // Don't start new line with whitespace
497
- currentLine = tracker.getActiveCodes();
498
- currentVisibleLength = 0;
499
- }
500
- else {
501
- currentLine = tracker.getActiveCodes() + token;
502
- currentVisibleLength = tokenVisibleLength;
503
- }
504
- }
505
- else {
506
- // Add to current line
507
- currentLine += token;
508
- currentVisibleLength += tokenVisibleLength;
435
+ if (!line) {
436
+ return [''];
437
+ }
438
+ const visibleLength = visibleWidth(line);
439
+ if (visibleLength <= width) {
440
+ return [line];
441
+ }
442
+ const wrapped = [];
443
+ const tracker = new AnsiCodeTracker();
444
+ const tokens = splitIntoTokensWithAnsi(line);
445
+ let currentLine = '';
446
+ let currentVisibleLength = 0;
447
+ for (const token of tokens) {
448
+ const tokenVisibleLength = visibleWidth(token);
449
+ const isWhitespace = token.trim() === '';
450
+ // Token itself is too long - break it character by character
451
+ if (tokenVisibleLength > width && !isWhitespace) {
452
+ if (currentLine) {
453
+ // Add specific reset for underline only (preserves background)
454
+ const lineEndReset = tracker.getLineEndReset();
455
+ if (lineEndReset) {
456
+ currentLine += lineEndReset;
509
457
  }
510
- updateTrackerFromText(token, tracker);
511
- }
512
- if (currentLine) {
513
- // No reset at end of final line - let caller handle it
514
458
  wrapped.push(currentLine);
515
- }
516
- // Trailing whitespace can cause lines to exceed the requested width
517
- return wrapped.length > 0 ? wrapped.map((line) => line.trimEnd()) : [""];
459
+ currentLine = '';
460
+ currentVisibleLength = 0;
461
+ }
462
+ // Break long token - breakLongWord handles its own resets
463
+ const broken = breakLongWord(token, width, tracker);
464
+ wrapped.push(...broken.slice(0, -1));
465
+ currentLine = broken[broken.length - 1];
466
+ currentVisibleLength = visibleWidth(currentLine);
467
+ continue;
468
+ }
469
+ // Check if adding this token would exceed width
470
+ const totalNeeded = currentVisibleLength + tokenVisibleLength;
471
+ if (totalNeeded > width && currentVisibleLength > 0) {
472
+ // Trim trailing whitespace, then add underline reset (not full reset, to preserve background)
473
+ let lineToWrap = currentLine.trimEnd();
474
+ const lineEndReset = tracker.getLineEndReset();
475
+ if (lineEndReset) {
476
+ lineToWrap += lineEndReset;
477
+ }
478
+ wrapped.push(lineToWrap);
479
+ if (isWhitespace) {
480
+ // Don't start new line with whitespace
481
+ currentLine = tracker.getActiveCodes();
482
+ currentVisibleLength = 0;
483
+ } else {
484
+ currentLine = tracker.getActiveCodes() + token;
485
+ currentVisibleLength = tokenVisibleLength;
486
+ }
487
+ } else {
488
+ // Add to current line
489
+ currentLine += token;
490
+ currentVisibleLength += tokenVisibleLength;
491
+ }
492
+ updateTrackerFromText(token, tracker);
493
+ }
494
+ if (currentLine) {
495
+ // No reset at end of final line - let caller handle it
496
+ wrapped.push(currentLine);
497
+ }
498
+ // Trailing whitespace can cause lines to exceed the requested width
499
+ return wrapped.length > 0 ? wrapped.map((line) => line.trimEnd()) : [''];
518
500
  }
519
501
  const PUNCTUATION_REGEX = /[(){}[\]<>.,;:'"!?+\-=*/\\|&%^$#@~`]/;
520
502
  /**
521
503
  * Check if a character is whitespace.
522
504
  */
523
505
  export function isWhitespaceChar(char) {
524
- return /\s/.test(char);
506
+ return /\s/.test(char);
525
507
  }
526
508
  /**
527
509
  * Check if a character is punctuation.
528
510
  */
529
511
  export function isPunctuationChar(char) {
530
- return PUNCTUATION_REGEX.test(char);
512
+ return PUNCTUATION_REGEX.test(char);
531
513
  }
532
514
  function breakLongWord(word, width, tracker) {
533
- const lines = [];
534
- let currentLine = tracker.getActiveCodes();
535
- let currentWidth = 0;
536
- // First, separate ANSI codes from visible content
537
- // We need to handle ANSI codes specially since they're not graphemes
538
- let i = 0;
539
- const segments = [];
540
- while (i < word.length) {
541
- const ansiResult = extractAnsiCode(word, i);
542
- if (ansiResult) {
543
- segments.push({ type: "ansi", value: ansiResult.code });
544
- i += ansiResult.length;
545
- }
546
- else {
547
- // Find the next ANSI code or end of string
548
- let end = i;
549
- while (end < word.length) {
550
- const nextAnsi = extractAnsiCode(word, end);
551
- if (nextAnsi)
552
- break;
553
- end++;
554
- }
555
- // Segment this non-ANSI portion into graphemes
556
- const textPortion = word.slice(i, end);
557
- for (const seg of segmenter.segment(textPortion)) {
558
- segments.push({ type: "grapheme", value: seg.segment });
559
- }
560
- i = end;
561
- }
562
- }
563
- // Now process segments
564
- for (const seg of segments) {
565
- if (seg.type === "ansi") {
566
- currentLine += seg.value;
567
- tracker.process(seg.value);
568
- continue;
569
- }
570
- const grapheme = seg.value;
571
- // Skip empty graphemes to avoid issues with string-width calculation
572
- if (!grapheme)
573
- continue;
574
- const graphemeWidth = visibleWidth(grapheme);
575
- if (currentWidth + graphemeWidth > width) {
576
- // Add specific reset for underline only (preserves background)
577
- const lineEndReset = tracker.getLineEndReset();
578
- if (lineEndReset) {
579
- currentLine += lineEndReset;
580
- }
581
- lines.push(currentLine);
582
- currentLine = tracker.getActiveCodes();
583
- currentWidth = 0;
584
- }
585
- currentLine += grapheme;
586
- currentWidth += graphemeWidth;
587
- }
588
- if (currentLine) {
589
- // No reset at end of final segment - caller handles continuation
590
- lines.push(currentLine);
591
- }
592
- return lines.length > 0 ? lines : [""];
515
+ const lines = [];
516
+ let currentLine = tracker.getActiveCodes();
517
+ let currentWidth = 0;
518
+ // First, separate ANSI codes from visible content
519
+ // We need to handle ANSI codes specially since they're not graphemes
520
+ let i = 0;
521
+ const segments = [];
522
+ while (i < word.length) {
523
+ const ansiResult = extractAnsiCode(word, i);
524
+ if (ansiResult) {
525
+ segments.push({ type: 'ansi', value: ansiResult.code });
526
+ i += ansiResult.length;
527
+ } else {
528
+ // Find the next ANSI code or end of string
529
+ let end = i;
530
+ while (end < word.length) {
531
+ const nextAnsi = extractAnsiCode(word, end);
532
+ if (nextAnsi) break;
533
+ end++;
534
+ }
535
+ // Segment this non-ANSI portion into graphemes
536
+ const textPortion = word.slice(i, end);
537
+ for (const seg of segmenter.segment(textPortion)) {
538
+ segments.push({ type: 'grapheme', value: seg.segment });
539
+ }
540
+ i = end;
541
+ }
542
+ }
543
+ // Now process segments
544
+ for (const seg of segments) {
545
+ if (seg.type === 'ansi') {
546
+ currentLine += seg.value;
547
+ tracker.process(seg.value);
548
+ continue;
549
+ }
550
+ const grapheme = seg.value;
551
+ // Skip empty graphemes to avoid issues with string-width calculation
552
+ if (!grapheme) continue;
553
+ const graphemeWidth = visibleWidth(grapheme);
554
+ if (currentWidth + graphemeWidth > width) {
555
+ // Add specific reset for underline only (preserves background)
556
+ const lineEndReset = tracker.getLineEndReset();
557
+ if (lineEndReset) {
558
+ currentLine += lineEndReset;
559
+ }
560
+ lines.push(currentLine);
561
+ currentLine = tracker.getActiveCodes();
562
+ currentWidth = 0;
563
+ }
564
+ currentLine += grapheme;
565
+ currentWidth += graphemeWidth;
566
+ }
567
+ if (currentLine) {
568
+ // No reset at end of final segment - caller handles continuation
569
+ lines.push(currentLine);
570
+ }
571
+ return lines.length > 0 ? lines : [''];
593
572
  }
594
573
  /**
595
574
  * Apply background color to a line, padding to full width.
@@ -600,13 +579,13 @@ function breakLongWord(word, width, tracker) {
600
579
  * @returns Line with background applied and padded to width
601
580
  */
602
581
  export function applyBackgroundToLine(line, width, bgFn) {
603
- // Calculate padding needed
604
- const visibleLen = visibleWidth(line);
605
- const paddingNeeded = Math.max(0, width - visibleLen);
606
- const padding = " ".repeat(paddingNeeded);
607
- // Apply background to content + padding
608
- const withPadding = line + padding;
609
- return bgFn(withPadding);
582
+ // Calculate padding needed
583
+ const visibleLen = visibleWidth(line);
584
+ const paddingNeeded = Math.max(0, width - visibleLen);
585
+ const padding = ' '.repeat(paddingNeeded);
586
+ // Apply background to content + padding
587
+ const withPadding = line + padding;
588
+ return bgFn(withPadding);
610
589
  }
611
590
  /**
612
591
  * Truncate text to fit within a maximum visible width, adding ellipsis if needed.
@@ -619,116 +598,111 @@ export function applyBackgroundToLine(line, width, bgFn) {
619
598
  * @param pad - If true, pad result with spaces to exactly maxWidth (default: false)
620
599
  * @returns Truncated text, optionally padded to exactly maxWidth
621
600
  */
622
- export function truncateToWidth(text, maxWidth, ellipsis = "...", pad = false) {
623
- const textVisibleWidth = visibleWidth(text);
624
- if (textVisibleWidth <= maxWidth) {
625
- return pad ? text + " ".repeat(maxWidth - textVisibleWidth) : text;
626
- }
627
- const ellipsisWidth = visibleWidth(ellipsis);
628
- const targetWidth = maxWidth - ellipsisWidth;
629
- if (targetWidth <= 0) {
630
- return ellipsis.substring(0, maxWidth);
631
- }
632
- // Separate ANSI codes from visible content using grapheme segmentation
633
- let i = 0;
634
- const segments = [];
635
- while (i < text.length) {
636
- const ansiResult = extractAnsiCode(text, i);
637
- if (ansiResult) {
638
- segments.push({ type: "ansi", value: ansiResult.code });
639
- i += ansiResult.length;
640
- }
641
- else {
642
- // Find the next ANSI code or end of string
643
- let end = i;
644
- while (end < text.length) {
645
- const nextAnsi = extractAnsiCode(text, end);
646
- if (nextAnsi)
647
- break;
648
- end++;
649
- }
650
- // Segment this non-ANSI portion into graphemes
651
- const textPortion = text.slice(i, end);
652
- for (const seg of segmenter.segment(textPortion)) {
653
- segments.push({ type: "grapheme", value: seg.segment });
654
- }
655
- i = end;
656
- }
657
- }
658
- // Build truncated string from segments
659
- let result = "";
660
- let currentWidth = 0;
661
- for (const seg of segments) {
662
- if (seg.type === "ansi") {
663
- result += seg.value;
664
- continue;
665
- }
666
- const grapheme = seg.value;
667
- // Skip empty graphemes to avoid issues with string-width calculation
668
- if (!grapheme)
669
- continue;
670
- const graphemeWidth = visibleWidth(grapheme);
671
- if (currentWidth + graphemeWidth > targetWidth) {
672
- break;
673
- }
674
- result += grapheme;
675
- currentWidth += graphemeWidth;
676
- }
677
- // Add reset code before ellipsis to prevent styling leaking into it
678
- const truncated = `${result}\x1b[0m${ellipsis}`;
679
- if (pad) {
680
- const truncatedWidth = visibleWidth(truncated);
681
- return truncated + " ".repeat(Math.max(0, maxWidth - truncatedWidth));
682
- }
683
- return truncated;
601
+ export function truncateToWidth(text, maxWidth, ellipsis = '...', pad = false) {
602
+ const textVisibleWidth = visibleWidth(text);
603
+ if (textVisibleWidth <= maxWidth) {
604
+ return pad ? text + ' '.repeat(maxWidth - textVisibleWidth) : text;
605
+ }
606
+ const ellipsisWidth = visibleWidth(ellipsis);
607
+ const targetWidth = maxWidth - ellipsisWidth;
608
+ if (targetWidth <= 0) {
609
+ return ellipsis.substring(0, maxWidth);
610
+ }
611
+ // Separate ANSI codes from visible content using grapheme segmentation
612
+ let i = 0;
613
+ const segments = [];
614
+ while (i < text.length) {
615
+ const ansiResult = extractAnsiCode(text, i);
616
+ if (ansiResult) {
617
+ segments.push({ type: 'ansi', value: ansiResult.code });
618
+ i += ansiResult.length;
619
+ } else {
620
+ // Find the next ANSI code or end of string
621
+ let end = i;
622
+ while (end < text.length) {
623
+ const nextAnsi = extractAnsiCode(text, end);
624
+ if (nextAnsi) break;
625
+ end++;
626
+ }
627
+ // Segment this non-ANSI portion into graphemes
628
+ const textPortion = text.slice(i, end);
629
+ for (const seg of segmenter.segment(textPortion)) {
630
+ segments.push({ type: 'grapheme', value: seg.segment });
631
+ }
632
+ i = end;
633
+ }
634
+ }
635
+ // Build truncated string from segments
636
+ let result = '';
637
+ let currentWidth = 0;
638
+ for (const seg of segments) {
639
+ if (seg.type === 'ansi') {
640
+ result += seg.value;
641
+ continue;
642
+ }
643
+ const grapheme = seg.value;
644
+ // Skip empty graphemes to avoid issues with string-width calculation
645
+ if (!grapheme) continue;
646
+ const graphemeWidth = visibleWidth(grapheme);
647
+ if (currentWidth + graphemeWidth > targetWidth) {
648
+ break;
649
+ }
650
+ result += grapheme;
651
+ currentWidth += graphemeWidth;
652
+ }
653
+ // Add reset code before ellipsis to prevent styling leaking into it
654
+ const truncated = `${result}\x1b[0m${ellipsis}`;
655
+ if (pad) {
656
+ const truncatedWidth = visibleWidth(truncated);
657
+ return truncated + ' '.repeat(Math.max(0, maxWidth - truncatedWidth));
658
+ }
659
+ return truncated;
684
660
  }
685
661
  /**
686
662
  * Extract a range of visible columns from a line. Handles ANSI codes and wide chars.
687
663
  * @param strict - If true, exclude wide chars at boundary that would extend past the range
688
664
  */
689
665
  export function sliceByColumn(line, startCol, length, strict = false) {
690
- return sliceWithWidth(line, startCol, length, strict).text;
666
+ return sliceWithWidth(line, startCol, length, strict).text;
691
667
  }
692
668
  /** Like sliceByColumn but also returns the actual visible width of the result. */
693
669
  export function sliceWithWidth(line, startCol, length, strict = false) {
694
- if (length <= 0)
695
- return { text: "", width: 0 };
696
- const endCol = startCol + length;
697
- let result = "", resultWidth = 0, currentCol = 0, i = 0, pendingAnsi = "";
698
- while (i < line.length) {
699
- const ansi = extractAnsiCode(line, i);
700
- if (ansi) {
701
- if (currentCol >= startCol && currentCol < endCol)
702
- result += ansi.code;
703
- else if (currentCol < startCol)
704
- pendingAnsi += ansi.code;
705
- i += ansi.length;
706
- continue;
707
- }
708
- let textEnd = i;
709
- while (textEnd < line.length && !extractAnsiCode(line, textEnd))
710
- textEnd++;
711
- for (const { segment } of segmenter.segment(line.slice(i, textEnd))) {
712
- const w = graphemeWidth(segment);
713
- const inRange = currentCol >= startCol && currentCol < endCol;
714
- const fits = !strict || currentCol + w <= endCol;
715
- if (inRange && fits) {
716
- if (pendingAnsi) {
717
- result += pendingAnsi;
718
- pendingAnsi = "";
719
- }
720
- result += segment;
721
- resultWidth += w;
722
- }
723
- currentCol += w;
724
- if (currentCol >= endCol)
725
- break;
670
+ if (length <= 0) return { text: '', width: 0 };
671
+ const endCol = startCol + length;
672
+ let result = '',
673
+ resultWidth = 0,
674
+ currentCol = 0,
675
+ i = 0,
676
+ pendingAnsi = '';
677
+ while (i < line.length) {
678
+ const ansi = extractAnsiCode(line, i);
679
+ if (ansi) {
680
+ if (currentCol >= startCol && currentCol < endCol) result += ansi.code;
681
+ else if (currentCol < startCol) pendingAnsi += ansi.code;
682
+ i += ansi.length;
683
+ continue;
684
+ }
685
+ let textEnd = i;
686
+ while (textEnd < line.length && !extractAnsiCode(line, textEnd)) textEnd++;
687
+ for (const { segment } of segmenter.segment(line.slice(i, textEnd))) {
688
+ const w = graphemeWidth(segment);
689
+ const inRange = currentCol >= startCol && currentCol < endCol;
690
+ const fits = !strict || currentCol + w <= endCol;
691
+ if (inRange && fits) {
692
+ if (pendingAnsi) {
693
+ result += pendingAnsi;
694
+ pendingAnsi = '';
726
695
  }
727
- i = textEnd;
728
- if (currentCol >= endCol)
729
- break;
730
- }
731
- return { text: result, width: resultWidth };
696
+ result += segment;
697
+ resultWidth += w;
698
+ }
699
+ currentCol += w;
700
+ if (currentCol >= endCol) break;
701
+ }
702
+ i = textEnd;
703
+ if (currentCol >= endCol) break;
704
+ }
705
+ return { text: result, width: resultWidth };
732
706
  }
733
707
  // Pooled tracker instance for extractSegments (avoids allocation per call)
734
708
  const pooledStyleTracker = new AnsiCodeTracker();
@@ -738,63 +712,62 @@ const pooledStyleTracker = new AnsiCodeTracker();
738
712
  * Preserves styling from before the overlay that should affect content after it.
739
713
  */
740
714
  export function extractSegments(line, beforeEnd, afterStart, afterLen, strictAfter = false) {
741
- let before = "", beforeWidth = 0, after = "", afterWidth = 0;
742
- let currentCol = 0, i = 0;
743
- let pendingAnsiBefore = "";
744
- let afterStarted = false;
745
- const afterEnd = afterStart + afterLen;
746
- // Track styling state so "after" inherits styling from before the overlay
747
- pooledStyleTracker.clear();
748
- while (i < line.length) {
749
- const ansi = extractAnsiCode(line, i);
750
- if (ansi) {
751
- // Track all SGR codes to know styling state at afterStart
752
- pooledStyleTracker.process(ansi.code);
753
- // Include ANSI codes in their respective segments
754
- if (currentCol < beforeEnd) {
755
- pendingAnsiBefore += ansi.code;
756
- }
757
- else if (currentCol >= afterStart && currentCol < afterEnd && afterStarted) {
758
- // Only include after we've started "after" (styling already prepended)
759
- after += ansi.code;
760
- }
761
- i += ansi.length;
762
- continue;
715
+ let before = '',
716
+ beforeWidth = 0,
717
+ after = '',
718
+ afterWidth = 0;
719
+ let currentCol = 0,
720
+ i = 0;
721
+ let pendingAnsiBefore = '';
722
+ let afterStarted = false;
723
+ const afterEnd = afterStart + afterLen;
724
+ // Track styling state so "after" inherits styling from before the overlay
725
+ pooledStyleTracker.clear();
726
+ while (i < line.length) {
727
+ const ansi = extractAnsiCode(line, i);
728
+ if (ansi) {
729
+ // Track all SGR codes to know styling state at afterStart
730
+ pooledStyleTracker.process(ansi.code);
731
+ // Include ANSI codes in their respective segments
732
+ if (currentCol < beforeEnd) {
733
+ pendingAnsiBefore += ansi.code;
734
+ } else if (currentCol >= afterStart && currentCol < afterEnd && afterStarted) {
735
+ // Only include after we've started "after" (styling already prepended)
736
+ after += ansi.code;
737
+ }
738
+ i += ansi.length;
739
+ continue;
740
+ }
741
+ let textEnd = i;
742
+ while (textEnd < line.length && !extractAnsiCode(line, textEnd)) textEnd++;
743
+ for (const { segment } of segmenter.segment(line.slice(i, textEnd))) {
744
+ const w = graphemeWidth(segment);
745
+ if (currentCol < beforeEnd) {
746
+ if (pendingAnsiBefore) {
747
+ before += pendingAnsiBefore;
748
+ pendingAnsiBefore = '';
763
749
  }
764
- let textEnd = i;
765
- while (textEnd < line.length && !extractAnsiCode(line, textEnd))
766
- textEnd++;
767
- for (const { segment } of segmenter.segment(line.slice(i, textEnd))) {
768
- const w = graphemeWidth(segment);
769
- if (currentCol < beforeEnd) {
770
- if (pendingAnsiBefore) {
771
- before += pendingAnsiBefore;
772
- pendingAnsiBefore = "";
773
- }
774
- before += segment;
775
- beforeWidth += w;
776
- }
777
- else if (currentCol >= afterStart && currentCol < afterEnd) {
778
- const fits = !strictAfter || currentCol + w <= afterEnd;
779
- if (fits) {
780
- // On first "after" grapheme, prepend inherited styling from before overlay
781
- if (!afterStarted) {
782
- after += pooledStyleTracker.getActiveCodes();
783
- afterStarted = true;
784
- }
785
- after += segment;
786
- afterWidth += w;
787
- }
788
- }
789
- currentCol += w;
790
- // Early exit: done with "before" only, or done with both segments
791
- if (afterLen <= 0 ? currentCol >= beforeEnd : currentCol >= afterEnd)
792
- break;
750
+ before += segment;
751
+ beforeWidth += w;
752
+ } else if (currentCol >= afterStart && currentCol < afterEnd) {
753
+ const fits = !strictAfter || currentCol + w <= afterEnd;
754
+ if (fits) {
755
+ // On first "after" grapheme, prepend inherited styling from before overlay
756
+ if (!afterStarted) {
757
+ after += pooledStyleTracker.getActiveCodes();
758
+ afterStarted = true;
759
+ }
760
+ after += segment;
761
+ afterWidth += w;
793
762
  }
794
- i = textEnd;
795
- if (afterLen <= 0 ? currentCol >= beforeEnd : currentCol >= afterEnd)
796
- break;
797
- }
798
- return { before, beforeWidth, after, afterWidth };
763
+ }
764
+ currentCol += w;
765
+ // Early exit: done with "before" only, or done with both segments
766
+ if (afterLen <= 0 ? currentCol >= beforeEnd : currentCol >= afterEnd) break;
767
+ }
768
+ i = textEnd;
769
+ if (afterLen <= 0 ? currentCol >= beforeEnd : currentCol >= afterEnd) break;
770
+ }
771
+ return { before, beforeWidth, after, afterWidth };
799
772
  }
800
- //# sourceMappingURL=utils.js.map
773
+ //# sourceMappingURL=utils.js.map