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
@@ -26,13 +26,13 @@ let _kittyProtocolActive = false;
26
26
  * Called by ProcessTerminal after detecting protocol support.
27
27
  */
28
28
  export function setKittyProtocolActive(active) {
29
- _kittyProtocolActive = active;
29
+ _kittyProtocolActive = active;
30
30
  }
31
31
  /**
32
32
  * Query whether Kitty keyboard protocol is currently active.
33
33
  */
34
34
  export function isKittyProtocolActive() {
35
- return _kittyProtocolActive;
35
+ return _kittyProtocolActive;
36
36
  }
37
37
  /**
38
38
  * Helper object for creating typed key identifiers with autocomplete.
@@ -44,421 +44,420 @@ export function isKittyProtocolActive() {
44
44
  * - Key.ctrlShift("p"), Key.ctrlAlt("x") for combined modifiers
45
45
  */
46
46
  export const Key = {
47
- // Special keys
48
- escape: "escape",
49
- esc: "esc",
50
- enter: "enter",
51
- return: "return",
52
- tab: "tab",
53
- space: "space",
54
- backspace: "backspace",
55
- delete: "delete",
56
- insert: "insert",
57
- clear: "clear",
58
- home: "home",
59
- end: "end",
60
- pageUp: "pageUp",
61
- pageDown: "pageDown",
62
- up: "up",
63
- down: "down",
64
- left: "left",
65
- right: "right",
66
- f1: "f1",
67
- f2: "f2",
68
- f3: "f3",
69
- f4: "f4",
70
- f5: "f5",
71
- f6: "f6",
72
- f7: "f7",
73
- f8: "f8",
74
- f9: "f9",
75
- f10: "f10",
76
- f11: "f11",
77
- f12: "f12",
78
- // Symbol keys
79
- backtick: "`",
80
- hyphen: "-",
81
- equals: "=",
82
- leftbracket: "[",
83
- rightbracket: "]",
84
- backslash: "\\",
85
- semicolon: ";",
86
- quote: "'",
87
- comma: ",",
88
- period: ".",
89
- slash: "/",
90
- exclamation: "!",
91
- at: "@",
92
- hash: "#",
93
- dollar: "$",
94
- percent: "%",
95
- caret: "^",
96
- ampersand: "&",
97
- asterisk: "*",
98
- leftparen: "(",
99
- rightparen: ")",
100
- underscore: "_",
101
- plus: "+",
102
- pipe: "|",
103
- tilde: "~",
104
- leftbrace: "{",
105
- rightbrace: "}",
106
- colon: ":",
107
- lessthan: "<",
108
- greaterthan: ">",
109
- question: "?",
110
- // Single modifiers
111
- ctrl: (key) => `ctrl+${key}`,
112
- shift: (key) => `shift+${key}`,
113
- alt: (key) => `alt+${key}`,
114
- // Combined modifiers
115
- ctrlShift: (key) => `ctrl+shift+${key}`,
116
- shiftCtrl: (key) => `shift+ctrl+${key}`,
117
- ctrlAlt: (key) => `ctrl+alt+${key}`,
118
- altCtrl: (key) => `alt+ctrl+${key}`,
119
- shiftAlt: (key) => `shift+alt+${key}`,
120
- altShift: (key) => `alt+shift+${key}`,
121
- // Triple modifiers
122
- ctrlShiftAlt: (key) => `ctrl+shift+alt+${key}`,
47
+ // Special keys
48
+ escape: 'escape',
49
+ esc: 'esc',
50
+ enter: 'enter',
51
+ return: 'return',
52
+ tab: 'tab',
53
+ space: 'space',
54
+ backspace: 'backspace',
55
+ delete: 'delete',
56
+ insert: 'insert',
57
+ clear: 'clear',
58
+ home: 'home',
59
+ end: 'end',
60
+ pageUp: 'pageUp',
61
+ pageDown: 'pageDown',
62
+ up: 'up',
63
+ down: 'down',
64
+ left: 'left',
65
+ right: 'right',
66
+ f1: 'f1',
67
+ f2: 'f2',
68
+ f3: 'f3',
69
+ f4: 'f4',
70
+ f5: 'f5',
71
+ f6: 'f6',
72
+ f7: 'f7',
73
+ f8: 'f8',
74
+ f9: 'f9',
75
+ f10: 'f10',
76
+ f11: 'f11',
77
+ f12: 'f12',
78
+ // Symbol keys
79
+ backtick: '`',
80
+ hyphen: '-',
81
+ equals: '=',
82
+ leftbracket: '[',
83
+ rightbracket: ']',
84
+ backslash: '\\',
85
+ semicolon: ';',
86
+ quote: "'",
87
+ comma: ',',
88
+ period: '.',
89
+ slash: '/',
90
+ exclamation: '!',
91
+ at: '@',
92
+ hash: '#',
93
+ dollar: '$',
94
+ percent: '%',
95
+ caret: '^',
96
+ ampersand: '&',
97
+ asterisk: '*',
98
+ leftparen: '(',
99
+ rightparen: ')',
100
+ underscore: '_',
101
+ plus: '+',
102
+ pipe: '|',
103
+ tilde: '~',
104
+ leftbrace: '{',
105
+ rightbrace: '}',
106
+ colon: ':',
107
+ lessthan: '<',
108
+ greaterthan: '>',
109
+ question: '?',
110
+ // Single modifiers
111
+ ctrl: (key) => `ctrl+${key}`,
112
+ shift: (key) => `shift+${key}`,
113
+ alt: (key) => `alt+${key}`,
114
+ // Combined modifiers
115
+ ctrlShift: (key) => `ctrl+shift+${key}`,
116
+ shiftCtrl: (key) => `shift+ctrl+${key}`,
117
+ ctrlAlt: (key) => `ctrl+alt+${key}`,
118
+ altCtrl: (key) => `alt+ctrl+${key}`,
119
+ shiftAlt: (key) => `shift+alt+${key}`,
120
+ altShift: (key) => `alt+shift+${key}`,
121
+ // Triple modifiers
122
+ ctrlShiftAlt: (key) => `ctrl+shift+alt+${key}`
123
123
  };
124
124
  // =============================================================================
125
125
  // Constants
126
126
  // =============================================================================
127
127
  const SYMBOL_KEYS = new Set([
128
- "`",
129
- "-",
130
- "=",
131
- "[",
132
- "]",
133
- "\\",
134
- ";",
135
- "'",
136
- ",",
137
- ".",
138
- "/",
139
- "!",
140
- "@",
141
- "#",
142
- "$",
143
- "%",
144
- "^",
145
- "&",
146
- "*",
147
- "(",
148
- ")",
149
- "_",
150
- "+",
151
- "|",
152
- "~",
153
- "{",
154
- "}",
155
- ":",
156
- "<",
157
- ">",
158
- "?",
128
+ '`',
129
+ '-',
130
+ '=',
131
+ '[',
132
+ ']',
133
+ '\\',
134
+ ';',
135
+ "'",
136
+ ',',
137
+ '.',
138
+ '/',
139
+ '!',
140
+ '@',
141
+ '#',
142
+ '$',
143
+ '%',
144
+ '^',
145
+ '&',
146
+ '*',
147
+ '(',
148
+ ')',
149
+ '_',
150
+ '+',
151
+ '|',
152
+ '~',
153
+ '{',
154
+ '}',
155
+ ':',
156
+ '<',
157
+ '>',
158
+ '?'
159
159
  ]);
160
160
  const MODIFIERS = {
161
- shift: 1,
162
- alt: 2,
163
- ctrl: 4,
161
+ shift: 1,
162
+ alt: 2,
163
+ ctrl: 4
164
164
  };
165
165
  const LOCK_MASK = 64 + 128; // Caps Lock + Num Lock
166
166
  const CODEPOINTS = {
167
- escape: 27,
168
- tab: 9,
169
- enter: 13,
170
- space: 32,
171
- backspace: 127,
172
- kpEnter: 57414, // Numpad Enter (Kitty protocol)
167
+ escape: 27,
168
+ tab: 9,
169
+ enter: 13,
170
+ space: 32,
171
+ backspace: 127,
172
+ kpEnter: 57414 // Numpad Enter (Kitty protocol)
173
173
  };
174
174
  const ARROW_CODEPOINTS = {
175
- up: -1,
176
- down: -2,
177
- right: -3,
178
- left: -4,
175
+ up: -1,
176
+ down: -2,
177
+ right: -3,
178
+ left: -4
179
179
  };
180
180
  const FUNCTIONAL_CODEPOINTS = {
181
- delete: -10,
182
- insert: -11,
183
- pageUp: -12,
184
- pageDown: -13,
185
- home: -14,
186
- end: -15,
181
+ delete: -10,
182
+ insert: -11,
183
+ pageUp: -12,
184
+ pageDown: -13,
185
+ home: -14,
186
+ end: -15
187
187
  };
188
188
  const LEGACY_KEY_SEQUENCES = {
189
- up: ["\x1b[A", "\x1bOA"],
190
- down: ["\x1b[B", "\x1bOB"],
191
- right: ["\x1b[C", "\x1bOC"],
192
- left: ["\x1b[D", "\x1bOD"],
193
- home: ["\x1b[H", "\x1bOH", "\x1b[1~", "\x1b[7~"],
194
- end: ["\x1b[F", "\x1bOF", "\x1b[4~", "\x1b[8~"],
195
- insert: ["\x1b[2~"],
196
- delete: ["\x1b[3~"],
197
- pageUp: ["\x1b[5~", "\x1b[[5~"],
198
- pageDown: ["\x1b[6~", "\x1b[[6~"],
199
- clear: ["\x1b[E", "\x1bOE"],
200
- f1: ["\x1bOP", "\x1b[11~", "\x1b[[A"],
201
- f2: ["\x1bOQ", "\x1b[12~", "\x1b[[B"],
202
- f3: ["\x1bOR", "\x1b[13~", "\x1b[[C"],
203
- f4: ["\x1bOS", "\x1b[14~", "\x1b[[D"],
204
- f5: ["\x1b[15~", "\x1b[[E"],
205
- f6: ["\x1b[17~"],
206
- f7: ["\x1b[18~"],
207
- f8: ["\x1b[19~"],
208
- f9: ["\x1b[20~"],
209
- f10: ["\x1b[21~"],
210
- f11: ["\x1b[23~"],
211
- f12: ["\x1b[24~"],
189
+ up: ['\x1b[A', '\x1bOA'],
190
+ down: ['\x1b[B', '\x1bOB'],
191
+ right: ['\x1b[C', '\x1bOC'],
192
+ left: ['\x1b[D', '\x1bOD'],
193
+ home: ['\x1b[H', '\x1bOH', '\x1b[1~', '\x1b[7~'],
194
+ end: ['\x1b[F', '\x1bOF', '\x1b[4~', '\x1b[8~'],
195
+ insert: ['\x1b[2~'],
196
+ delete: ['\x1b[3~'],
197
+ pageUp: ['\x1b[5~', '\x1b[[5~'],
198
+ pageDown: ['\x1b[6~', '\x1b[[6~'],
199
+ clear: ['\x1b[E', '\x1bOE'],
200
+ f1: ['\x1bOP', '\x1b[11~', '\x1b[[A'],
201
+ f2: ['\x1bOQ', '\x1b[12~', '\x1b[[B'],
202
+ f3: ['\x1bOR', '\x1b[13~', '\x1b[[C'],
203
+ f4: ['\x1bOS', '\x1b[14~', '\x1b[[D'],
204
+ f5: ['\x1b[15~', '\x1b[[E'],
205
+ f6: ['\x1b[17~'],
206
+ f7: ['\x1b[18~'],
207
+ f8: ['\x1b[19~'],
208
+ f9: ['\x1b[20~'],
209
+ f10: ['\x1b[21~'],
210
+ f11: ['\x1b[23~'],
211
+ f12: ['\x1b[24~']
212
212
  };
213
213
  const LEGACY_SHIFT_SEQUENCES = {
214
- up: ["\x1b[a"],
215
- down: ["\x1b[b"],
216
- right: ["\x1b[c"],
217
- left: ["\x1b[d"],
218
- clear: ["\x1b[e"],
219
- insert: ["\x1b[2$"],
220
- delete: ["\x1b[3$"],
221
- pageUp: ["\x1b[5$"],
222
- pageDown: ["\x1b[6$"],
223
- home: ["\x1b[7$"],
224
- end: ["\x1b[8$"],
214
+ up: ['\x1b[a'],
215
+ down: ['\x1b[b'],
216
+ right: ['\x1b[c'],
217
+ left: ['\x1b[d'],
218
+ clear: ['\x1b[e'],
219
+ insert: ['\x1b[2$'],
220
+ delete: ['\x1b[3$'],
221
+ pageUp: ['\x1b[5$'],
222
+ pageDown: ['\x1b[6$'],
223
+ home: ['\x1b[7$'],
224
+ end: ['\x1b[8$']
225
225
  };
226
226
  const LEGACY_CTRL_SEQUENCES = {
227
- up: ["\x1bOa"],
228
- down: ["\x1bOb"],
229
- right: ["\x1bOc"],
230
- left: ["\x1bOd"],
231
- clear: ["\x1bOe"],
232
- insert: ["\x1b[2^"],
233
- delete: ["\x1b[3^"],
234
- pageUp: ["\x1b[5^"],
235
- pageDown: ["\x1b[6^"],
236
- home: ["\x1b[7^"],
237
- end: ["\x1b[8^"],
227
+ up: ['\x1bOa'],
228
+ down: ['\x1bOb'],
229
+ right: ['\x1bOc'],
230
+ left: ['\x1bOd'],
231
+ clear: ['\x1bOe'],
232
+ insert: ['\x1b[2^'],
233
+ delete: ['\x1b[3^'],
234
+ pageUp: ['\x1b[5^'],
235
+ pageDown: ['\x1b[6^'],
236
+ home: ['\x1b[7^'],
237
+ end: ['\x1b[8^']
238
238
  };
239
239
  const LEGACY_SEQUENCE_KEY_IDS = {
240
- "\x1bOA": "up",
241
- "\x1bOB": "down",
242
- "\x1bOC": "right",
243
- "\x1bOD": "left",
244
- "\x1bOH": "home",
245
- "\x1bOF": "end",
246
- "\x1b[E": "clear",
247
- "\x1bOE": "clear",
248
- "\x1bOe": "ctrl+clear",
249
- "\x1b[e": "shift+clear",
250
- "\x1b[2~": "insert",
251
- "\x1b[2$": "shift+insert",
252
- "\x1b[2^": "ctrl+insert",
253
- "\x1b[3$": "shift+delete",
254
- "\x1b[3^": "ctrl+delete",
255
- "\x1b[[5~": "pageUp",
256
- "\x1b[[6~": "pageDown",
257
- "\x1b[a": "shift+up",
258
- "\x1b[b": "shift+down",
259
- "\x1b[c": "shift+right",
260
- "\x1b[d": "shift+left",
261
- "\x1bOa": "ctrl+up",
262
- "\x1bOb": "ctrl+down",
263
- "\x1bOc": "ctrl+right",
264
- "\x1bOd": "ctrl+left",
265
- "\x1b[5$": "shift+pageUp",
266
- "\x1b[6$": "shift+pageDown",
267
- "\x1b[7$": "shift+home",
268
- "\x1b[8$": "shift+end",
269
- "\x1b[5^": "ctrl+pageUp",
270
- "\x1b[6^": "ctrl+pageDown",
271
- "\x1b[7^": "ctrl+home",
272
- "\x1b[8^": "ctrl+end",
273
- "\x1bOP": "f1",
274
- "\x1bOQ": "f2",
275
- "\x1bOR": "f3",
276
- "\x1bOS": "f4",
277
- "\x1b[11~": "f1",
278
- "\x1b[12~": "f2",
279
- "\x1b[13~": "f3",
280
- "\x1b[14~": "f4",
281
- "\x1b[[A": "f1",
282
- "\x1b[[B": "f2",
283
- "\x1b[[C": "f3",
284
- "\x1b[[D": "f4",
285
- "\x1b[[E": "f5",
286
- "\x1b[15~": "f5",
287
- "\x1b[17~": "f6",
288
- "\x1b[18~": "f7",
289
- "\x1b[19~": "f8",
290
- "\x1b[20~": "f9",
291
- "\x1b[21~": "f10",
292
- "\x1b[23~": "f11",
293
- "\x1b[24~": "f12",
294
- "\x1bb": "alt+left",
295
- "\x1bf": "alt+right",
296
- "\x1bp": "alt+up",
297
- "\x1bn": "alt+down",
240
+ '\x1bOA': 'up',
241
+ '\x1bOB': 'down',
242
+ '\x1bOC': 'right',
243
+ '\x1bOD': 'left',
244
+ '\x1bOH': 'home',
245
+ '\x1bOF': 'end',
246
+ '\x1b[E': 'clear',
247
+ '\x1bOE': 'clear',
248
+ '\x1bOe': 'ctrl+clear',
249
+ '\x1b[e': 'shift+clear',
250
+ '\x1b[2~': 'insert',
251
+ '\x1b[2$': 'shift+insert',
252
+ '\x1b[2^': 'ctrl+insert',
253
+ '\x1b[3$': 'shift+delete',
254
+ '\x1b[3^': 'ctrl+delete',
255
+ '\x1b[[5~': 'pageUp',
256
+ '\x1b[[6~': 'pageDown',
257
+ '\x1b[a': 'shift+up',
258
+ '\x1b[b': 'shift+down',
259
+ '\x1b[c': 'shift+right',
260
+ '\x1b[d': 'shift+left',
261
+ '\x1bOa': 'ctrl+up',
262
+ '\x1bOb': 'ctrl+down',
263
+ '\x1bOc': 'ctrl+right',
264
+ '\x1bOd': 'ctrl+left',
265
+ '\x1b[5$': 'shift+pageUp',
266
+ '\x1b[6$': 'shift+pageDown',
267
+ '\x1b[7$': 'shift+home',
268
+ '\x1b[8$': 'shift+end',
269
+ '\x1b[5^': 'ctrl+pageUp',
270
+ '\x1b[6^': 'ctrl+pageDown',
271
+ '\x1b[7^': 'ctrl+home',
272
+ '\x1b[8^': 'ctrl+end',
273
+ '\x1bOP': 'f1',
274
+ '\x1bOQ': 'f2',
275
+ '\x1bOR': 'f3',
276
+ '\x1bOS': 'f4',
277
+ '\x1b[11~': 'f1',
278
+ '\x1b[12~': 'f2',
279
+ '\x1b[13~': 'f3',
280
+ '\x1b[14~': 'f4',
281
+ '\x1b[[A': 'f1',
282
+ '\x1b[[B': 'f2',
283
+ '\x1b[[C': 'f3',
284
+ '\x1b[[D': 'f4',
285
+ '\x1b[[E': 'f5',
286
+ '\x1b[15~': 'f5',
287
+ '\x1b[17~': 'f6',
288
+ '\x1b[18~': 'f7',
289
+ '\x1b[19~': 'f8',
290
+ '\x1b[20~': 'f9',
291
+ '\x1b[21~': 'f10',
292
+ '\x1b[23~': 'f11',
293
+ '\x1b[24~': 'f12',
294
+ '\x1bb': 'alt+left',
295
+ '\x1bf': 'alt+right',
296
+ '\x1bp': 'alt+up',
297
+ '\x1bn': 'alt+down'
298
298
  };
299
299
  const matchesLegacySequence = (data, sequences) => sequences.includes(data);
300
300
  const matchesLegacyModifierSequence = (data, key, modifier) => {
301
- if (modifier === MODIFIERS.shift) {
302
- return matchesLegacySequence(data, LEGACY_SHIFT_SEQUENCES[key]);
303
- }
304
- if (modifier === MODIFIERS.ctrl) {
305
- return matchesLegacySequence(data, LEGACY_CTRL_SEQUENCES[key]);
306
- }
307
- return false;
301
+ if (modifier === MODIFIERS.shift) {
302
+ return matchesLegacySequence(data, LEGACY_SHIFT_SEQUENCES[key]);
303
+ }
304
+ if (modifier === MODIFIERS.ctrl) {
305
+ return matchesLegacySequence(data, LEGACY_CTRL_SEQUENCES[key]);
306
+ }
307
+ return false;
308
308
  };
309
309
  // Store the last parsed event type for isKeyRelease() to query
310
- let _lastEventType = "press";
310
+ let _lastEventType = 'press';
311
311
  /**
312
312
  * Check if the last parsed key event was a key release.
313
313
  * Only meaningful when Kitty keyboard protocol with flag 2 is active.
314
314
  */
315
315
  export function isKeyRelease(data) {
316
- // Don't treat bracketed paste content as key release, even if it contains
317
- // patterns like ":3F" (e.g., bluetooth MAC addresses like "90:62:3F:A5").
318
- // Terminal.ts re-wraps paste content with bracketed paste markers before
319
- // passing to TUI, so pasted data will always contain \x1b[200~.
320
- if (data.includes("\x1b[200~")) {
321
- return false;
322
- }
323
- // Quick check: release events with flag 2 contain ":3"
324
- // Format: \x1b[<codepoint>;<modifier>:3u
325
- if (data.includes(":3u") ||
326
- data.includes(":3~") ||
327
- data.includes(":3A") ||
328
- data.includes(":3B") ||
329
- data.includes(":3C") ||
330
- data.includes(":3D") ||
331
- data.includes(":3H") ||
332
- data.includes(":3F")) {
333
- return true;
334
- }
316
+ // Don't treat bracketed paste content as key release, even if it contains
317
+ // patterns like ":3F" (e.g., bluetooth MAC addresses like "90:62:3F:A5").
318
+ // Terminal.ts re-wraps paste content with bracketed paste markers before
319
+ // passing to TUI, so pasted data will always contain \x1b[200~.
320
+ if (data.includes('\x1b[200~')) {
335
321
  return false;
322
+ }
323
+ // Quick check: release events with flag 2 contain ":3"
324
+ // Format: \x1b[<codepoint>;<modifier>:3u
325
+ if (
326
+ data.includes(':3u') ||
327
+ data.includes(':3~') ||
328
+ data.includes(':3A') ||
329
+ data.includes(':3B') ||
330
+ data.includes(':3C') ||
331
+ data.includes(':3D') ||
332
+ data.includes(':3H') ||
333
+ data.includes(':3F')
334
+ ) {
335
+ return true;
336
+ }
337
+ return false;
336
338
  }
337
339
  /**
338
340
  * Check if the last parsed key event was a key repeat.
339
341
  * Only meaningful when Kitty keyboard protocol with flag 2 is active.
340
342
  */
341
343
  export function isKeyRepeat(data) {
342
- // Don't treat bracketed paste content as key repeat, even if it contains
343
- // patterns like ":2F". See isKeyRelease() for details.
344
- if (data.includes("\x1b[200~")) {
345
- return false;
346
- }
347
- if (data.includes(":2u") ||
348
- data.includes(":2~") ||
349
- data.includes(":2A") ||
350
- data.includes(":2B") ||
351
- data.includes(":2C") ||
352
- data.includes(":2D") ||
353
- data.includes(":2H") ||
354
- data.includes(":2F")) {
355
- return true;
356
- }
344
+ // Don't treat bracketed paste content as key repeat, even if it contains
345
+ // patterns like ":2F". See isKeyRelease() for details.
346
+ if (data.includes('\x1b[200~')) {
357
347
  return false;
348
+ }
349
+ if (
350
+ data.includes(':2u') ||
351
+ data.includes(':2~') ||
352
+ data.includes(':2A') ||
353
+ data.includes(':2B') ||
354
+ data.includes(':2C') ||
355
+ data.includes(':2D') ||
356
+ data.includes(':2H') ||
357
+ data.includes(':2F')
358
+ ) {
359
+ return true;
360
+ }
361
+ return false;
358
362
  }
359
363
  function parseEventType(eventTypeStr) {
360
- if (!eventTypeStr)
361
- return "press";
362
- const eventType = parseInt(eventTypeStr, 10);
363
- if (eventType === 2)
364
- return "repeat";
365
- if (eventType === 3)
366
- return "release";
367
- return "press";
364
+ if (!eventTypeStr) return 'press';
365
+ const eventType = parseInt(eventTypeStr, 10);
366
+ if (eventType === 2) return 'repeat';
367
+ if (eventType === 3) return 'release';
368
+ return 'press';
368
369
  }
369
370
  function parseKittySequence(data) {
370
- // CSI u format with alternate keys (flag 4):
371
- // \x1b[<codepoint>u
372
- // \x1b[<codepoint>;<mod>u
373
- // \x1b[<codepoint>;<mod>:<event>u
374
- // \x1b[<codepoint>:<shifted>;<mod>u
375
- // \x1b[<codepoint>:<shifted>:<base>;<mod>u
376
- // \x1b[<codepoint>::<base>;<mod>u (no shifted key, only base)
377
- //
378
- // With flag 2, event type is appended after modifier colon: 1=press, 2=repeat, 3=release
379
- // With flag 4, alternate keys are appended after codepoint with colons
380
- const csiUMatch = data.match(/^\x1b\[(\d+)(?::(\d*))?(?::(\d+))?(?:;(\d+))?(?::(\d+))?u$/);
381
- if (csiUMatch) {
382
- const codepoint = parseInt(csiUMatch[1], 10);
383
- const shiftedKey = csiUMatch[2] && csiUMatch[2].length > 0 ? parseInt(csiUMatch[2], 10) : undefined;
384
- const baseLayoutKey = csiUMatch[3] ? parseInt(csiUMatch[3], 10) : undefined;
385
- const modValue = csiUMatch[4] ? parseInt(csiUMatch[4], 10) : 1;
386
- const eventType = parseEventType(csiUMatch[5]);
387
- _lastEventType = eventType;
388
- return { codepoint, shiftedKey, baseLayoutKey, modifier: modValue - 1, eventType };
389
- }
390
- // Arrow keys with modifier: \x1b[1;<mod>A/B/C/D or \x1b[1;<mod>:<event>A/B/C/D
391
- const arrowMatch = data.match(/^\x1b\[1;(\d+)(?::(\d+))?([ABCD])$/);
392
- if (arrowMatch) {
393
- const modValue = parseInt(arrowMatch[1], 10);
394
- const eventType = parseEventType(arrowMatch[2]);
395
- const arrowCodes = { A: -1, B: -2, C: -3, D: -4 };
396
- _lastEventType = eventType;
397
- return { codepoint: arrowCodes[arrowMatch[3]], modifier: modValue - 1, eventType };
398
- }
399
- // Functional keys: \x1b[<num>~ or \x1b[<num>;<mod>~ or \x1b[<num>;<mod>:<event>~
400
- const funcMatch = data.match(/^\x1b\[(\d+)(?:;(\d+))?(?::(\d+))?~$/);
401
- if (funcMatch) {
402
- const keyNum = parseInt(funcMatch[1], 10);
403
- const modValue = funcMatch[2] ? parseInt(funcMatch[2], 10) : 1;
404
- const eventType = parseEventType(funcMatch[3]);
405
- const funcCodes = {
406
- 2: FUNCTIONAL_CODEPOINTS.insert,
407
- 3: FUNCTIONAL_CODEPOINTS.delete,
408
- 5: FUNCTIONAL_CODEPOINTS.pageUp,
409
- 6: FUNCTIONAL_CODEPOINTS.pageDown,
410
- 7: FUNCTIONAL_CODEPOINTS.home,
411
- 8: FUNCTIONAL_CODEPOINTS.end,
412
- };
413
- const codepoint = funcCodes[keyNum];
414
- if (codepoint !== undefined) {
415
- _lastEventType = eventType;
416
- return { codepoint, modifier: modValue - 1, eventType };
417
- }
418
- }
419
- // Home/End with modifier: \x1b[1;<mod>H/F or \x1b[1;<mod>:<event>H/F
420
- const homeEndMatch = data.match(/^\x1b\[1;(\d+)(?::(\d+))?([HF])$/);
421
- if (homeEndMatch) {
422
- const modValue = parseInt(homeEndMatch[1], 10);
423
- const eventType = parseEventType(homeEndMatch[2]);
424
- const codepoint = homeEndMatch[3] === "H" ? FUNCTIONAL_CODEPOINTS.home : FUNCTIONAL_CODEPOINTS.end;
425
- _lastEventType = eventType;
426
- return { codepoint, modifier: modValue - 1, eventType };
371
+ // CSI u format with alternate keys (flag 4):
372
+ // \x1b[<codepoint>u
373
+ // \x1b[<codepoint>;<mod>u
374
+ // \x1b[<codepoint>;<mod>:<event>u
375
+ // \x1b[<codepoint>:<shifted>;<mod>u
376
+ // \x1b[<codepoint>:<shifted>:<base>;<mod>u
377
+ // \x1b[<codepoint>::<base>;<mod>u (no shifted key, only base)
378
+ //
379
+ // With flag 2, event type is appended after modifier colon: 1=press, 2=repeat, 3=release
380
+ // With flag 4, alternate keys are appended after codepoint with colons
381
+ const csiUMatch = data.match(/^\x1b\[(\d+)(?::(\d*))?(?::(\d+))?(?:;(\d+))?(?::(\d+))?u$/);
382
+ if (csiUMatch) {
383
+ const codepoint = parseInt(csiUMatch[1], 10);
384
+ const shiftedKey =
385
+ csiUMatch[2] && csiUMatch[2].length > 0 ? parseInt(csiUMatch[2], 10) : undefined;
386
+ const baseLayoutKey = csiUMatch[3] ? parseInt(csiUMatch[3], 10) : undefined;
387
+ const modValue = csiUMatch[4] ? parseInt(csiUMatch[4], 10) : 1;
388
+ const eventType = parseEventType(csiUMatch[5]);
389
+ _lastEventType = eventType;
390
+ return { codepoint, shiftedKey, baseLayoutKey, modifier: modValue - 1, eventType };
391
+ }
392
+ // Arrow keys with modifier: \x1b[1;<mod>A/B/C/D or \x1b[1;<mod>:<event>A/B/C/D
393
+ const arrowMatch = data.match(/^\x1b\[1;(\d+)(?::(\d+))?([ABCD])$/);
394
+ if (arrowMatch) {
395
+ const modValue = parseInt(arrowMatch[1], 10);
396
+ const eventType = parseEventType(arrowMatch[2]);
397
+ const arrowCodes = { A: -1, B: -2, C: -3, D: -4 };
398
+ _lastEventType = eventType;
399
+ return { codepoint: arrowCodes[arrowMatch[3]], modifier: modValue - 1, eventType };
400
+ }
401
+ // Functional keys: \x1b[<num>~ or \x1b[<num>;<mod>~ or \x1b[<num>;<mod>:<event>~
402
+ const funcMatch = data.match(/^\x1b\[(\d+)(?:;(\d+))?(?::(\d+))?~$/);
403
+ if (funcMatch) {
404
+ const keyNum = parseInt(funcMatch[1], 10);
405
+ const modValue = funcMatch[2] ? parseInt(funcMatch[2], 10) : 1;
406
+ const eventType = parseEventType(funcMatch[3]);
407
+ const funcCodes = {
408
+ 2: FUNCTIONAL_CODEPOINTS.insert,
409
+ 3: FUNCTIONAL_CODEPOINTS.delete,
410
+ 5: FUNCTIONAL_CODEPOINTS.pageUp,
411
+ 6: FUNCTIONAL_CODEPOINTS.pageDown,
412
+ 7: FUNCTIONAL_CODEPOINTS.home,
413
+ 8: FUNCTIONAL_CODEPOINTS.end
414
+ };
415
+ const codepoint = funcCodes[keyNum];
416
+ if (codepoint !== undefined) {
417
+ _lastEventType = eventType;
418
+ return { codepoint, modifier: modValue - 1, eventType };
427
419
  }
428
- return null;
420
+ }
421
+ // Home/End with modifier: \x1b[1;<mod>H/F or \x1b[1;<mod>:<event>H/F
422
+ const homeEndMatch = data.match(/^\x1b\[1;(\d+)(?::(\d+))?([HF])$/);
423
+ if (homeEndMatch) {
424
+ const modValue = parseInt(homeEndMatch[1], 10);
425
+ const eventType = parseEventType(homeEndMatch[2]);
426
+ const codepoint =
427
+ homeEndMatch[3] === 'H' ? FUNCTIONAL_CODEPOINTS.home : FUNCTIONAL_CODEPOINTS.end;
428
+ _lastEventType = eventType;
429
+ return { codepoint, modifier: modValue - 1, eventType };
430
+ }
431
+ return null;
429
432
  }
430
433
  function matchesKittySequence(data, expectedCodepoint, expectedModifier) {
431
- const parsed = parseKittySequence(data);
432
- if (!parsed)
433
- return false;
434
- const actualMod = parsed.modifier & ~LOCK_MASK;
435
- const expectedMod = expectedModifier & ~LOCK_MASK;
436
- // Check if modifiers match
437
- if (actualMod !== expectedMod)
438
- return false;
439
- // Primary match: codepoint matches directly
440
- if (parsed.codepoint === expectedCodepoint)
441
- return true;
442
- // Alternate match: use base layout key for non-Latin keyboard layouts.
443
- // This allows Ctrl+С (Cyrillic) to match Ctrl+c (Latin) when terminal reports
444
- // the base layout key (the key in standard PC-101 layout).
445
- //
446
- // Only fall back to base layout key when the codepoint is NOT already a
447
- // recognized Latin letter (a-z) or symbol (e.g., /, -, [, ;, etc.).
448
- // When the codepoint is a recognized key, it is authoritative regardless
449
- // of physical key position. This prevents remapped layouts (Dvorak, Colemak,
450
- // xremap, etc.) from causing false matches: both letters and symbols move
451
- // to different physical positions, so Ctrl+K could falsely match Ctrl+V
452
- // (letter remapping) and Ctrl+/ could falsely match Ctrl+[ (symbol remapping)
453
- // if the base layout key were always considered.
454
- if (parsed.baseLayoutKey !== undefined && parsed.baseLayoutKey === expectedCodepoint) {
455
- const cp = parsed.codepoint;
456
- const isLatinLetter = cp >= 97 && cp <= 122; // a-z
457
- const isKnownSymbol = SYMBOL_KEYS.has(String.fromCharCode(cp));
458
- if (!isLatinLetter && !isKnownSymbol)
459
- return true;
460
- }
461
- return false;
434
+ const parsed = parseKittySequence(data);
435
+ if (!parsed) return false;
436
+ const actualMod = parsed.modifier & ~LOCK_MASK;
437
+ const expectedMod = expectedModifier & ~LOCK_MASK;
438
+ // Check if modifiers match
439
+ if (actualMod !== expectedMod) return false;
440
+ // Primary match: codepoint matches directly
441
+ if (parsed.codepoint === expectedCodepoint) return true;
442
+ // Alternate match: use base layout key for non-Latin keyboard layouts.
443
+ // This allows Ctrl+С (Cyrillic) to match Ctrl+c (Latin) when terminal reports
444
+ // the base layout key (the key in standard PC-101 layout).
445
+ //
446
+ // Only fall back to base layout key when the codepoint is NOT already a
447
+ // recognized Latin letter (a-z) or symbol (e.g., /, -, [, ;, etc.).
448
+ // When the codepoint is a recognized key, it is authoritative regardless
449
+ // of physical key position. This prevents remapped layouts (Dvorak, Colemak,
450
+ // xremap, etc.) from causing false matches: both letters and symbols move
451
+ // to different physical positions, so Ctrl+K could falsely match Ctrl+V
452
+ // (letter remapping) and Ctrl+/ could falsely match Ctrl+[ (symbol remapping)
453
+ // if the base layout key were always considered.
454
+ if (parsed.baseLayoutKey !== undefined && parsed.baseLayoutKey === expectedCodepoint) {
455
+ const cp = parsed.codepoint;
456
+ const isLatinLetter = cp >= 97 && cp <= 122; // a-z
457
+ const isKnownSymbol = SYMBOL_KEYS.has(String.fromCharCode(cp));
458
+ if (!isLatinLetter && !isKnownSymbol) return true;
459
+ }
460
+ return false;
462
461
  }
463
462
  /**
464
463
  * Match xterm modifyOtherKeys format: CSI 27 ; modifiers ; keycode ~
@@ -466,14 +465,13 @@ function matchesKittySequence(data, expectedCodepoint, expectedModifier) {
466
465
  * Modifier values are 1-indexed: 2=shift, 3=alt, 5=ctrl, etc.
467
466
  */
468
467
  function matchesModifyOtherKeys(data, expectedKeycode, expectedModifier) {
469
- const match = data.match(/^\x1b\[27;(\d+);(\d+)~$/);
470
- if (!match)
471
- return false;
472
- const modValue = parseInt(match[1], 10);
473
- const keycode = parseInt(match[2], 10);
474
- // Convert from 1-indexed xterm format to our 0-indexed format
475
- const actualMod = modValue - 1;
476
- return keycode === expectedKeycode && actualMod === expectedModifier;
468
+ const match = data.match(/^\x1b\[27;(\d+);(\d+)~$/);
469
+ if (!match) return false;
470
+ const modValue = parseInt(match[1], 10);
471
+ const keycode = parseInt(match[2], 10);
472
+ // Convert from 1-indexed xterm format to our 0-indexed format
473
+ const actualMod = modValue - 1;
474
+ return keycode === expectedKeycode && actualMod === expectedModifier;
477
475
  }
478
476
  // =============================================================================
479
477
  // Generic Key Matching
@@ -488,28 +486,33 @@ function matchesModifyOtherKeys(data, expectedKeycode, expectedModifier) {
488
486
  * - Also maps - to same as _ (same physical key on US keyboards)
489
487
  */
490
488
  function rawCtrlChar(key) {
491
- const char = key.toLowerCase();
492
- const code = char.charCodeAt(0);
493
- if ((code >= 97 && code <= 122) || char === "[" || char === "\\" || char === "]" || char === "_") {
494
- return String.fromCharCode(code & 0x1f);
495
- }
496
- // Handle - as _ (same physical key on US keyboards)
497
- if (char === "-") {
498
- return String.fromCharCode(31); // Same as Ctrl+_
499
- }
500
- return null;
489
+ const char = key.toLowerCase();
490
+ const code = char.charCodeAt(0);
491
+ if (
492
+ (code >= 97 && code <= 122) ||
493
+ char === '[' ||
494
+ char === '\\' ||
495
+ char === ']' ||
496
+ char === '_'
497
+ ) {
498
+ return String.fromCharCode(code & 0x1f);
499
+ }
500
+ // Handle - as _ (same physical key on US keyboards)
501
+ if (char === '-') {
502
+ return String.fromCharCode(31); // Same as Ctrl+_
503
+ }
504
+ return null;
501
505
  }
502
506
  function parseKeyId(keyId) {
503
- const parts = keyId.toLowerCase().split("+");
504
- const key = parts[parts.length - 1];
505
- if (!key)
506
- return null;
507
- return {
508
- key,
509
- ctrl: parts.includes("ctrl"),
510
- shift: parts.includes("shift"),
511
- alt: parts.includes("alt"),
512
- };
507
+ const parts = keyId.toLowerCase().split('+');
508
+ const key = parts[parts.length - 1];
509
+ if (!key) return null;
510
+ return {
511
+ key,
512
+ ctrl: parts.includes('ctrl'),
513
+ shift: parts.includes('shift'),
514
+ alt: parts.includes('alt')
515
+ };
513
516
  }
514
517
  /**
515
518
  * Match input data against a key identifier string.
@@ -528,278 +531,308 @@ function parseKeyId(keyId) {
528
531
  * @param keyId - Key identifier (e.g., "ctrl+c", "escape", Key.ctrl("c"))
529
532
  */
530
533
  export function matchesKey(data, keyId) {
531
- const parsed = parseKeyId(keyId);
532
- if (!parsed)
533
- return false;
534
- const { key, ctrl, shift, alt } = parsed;
535
- let modifier = 0;
536
- if (shift)
537
- modifier |= MODIFIERS.shift;
538
- if (alt)
539
- modifier |= MODIFIERS.alt;
540
- if (ctrl)
541
- modifier |= MODIFIERS.ctrl;
542
- switch (key) {
543
- case "escape":
544
- case "esc":
545
- if (modifier !== 0)
546
- return false;
547
- return data === "\x1b" || matchesKittySequence(data, CODEPOINTS.escape, 0);
548
- case "space":
549
- if (!_kittyProtocolActive) {
550
- if (ctrl && !alt && !shift && data === "\x00") {
551
- return true;
552
- }
553
- if (alt && !ctrl && !shift && data === "\x1b ") {
554
- return true;
555
- }
556
- }
557
- if (modifier === 0) {
558
- return data === " " || matchesKittySequence(data, CODEPOINTS.space, 0);
559
- }
560
- return matchesKittySequence(data, CODEPOINTS.space, modifier);
561
- case "tab":
562
- if (shift && !ctrl && !alt) {
563
- return data === "\x1b[Z" || matchesKittySequence(data, CODEPOINTS.tab, MODIFIERS.shift);
564
- }
565
- if (modifier === 0) {
566
- return data === "\t" || matchesKittySequence(data, CODEPOINTS.tab, 0);
567
- }
568
- return matchesKittySequence(data, CODEPOINTS.tab, modifier);
569
- case "enter":
570
- case "return":
571
- if (shift && !ctrl && !alt) {
572
- // CSI u sequences (standard Kitty protocol)
573
- if (matchesKittySequence(data, CODEPOINTS.enter, MODIFIERS.shift) ||
574
- matchesKittySequence(data, CODEPOINTS.kpEnter, MODIFIERS.shift)) {
575
- return true;
576
- }
577
- // xterm modifyOtherKeys format (fallback when Kitty protocol not enabled)
578
- if (matchesModifyOtherKeys(data, CODEPOINTS.enter, MODIFIERS.shift)) {
579
- return true;
580
- }
581
- // When Kitty protocol is active, legacy sequences are custom terminal mappings
582
- // \x1b\r = Kitty's "map shift+enter send_text all \e\r"
583
- // \n = Ghostty's "keybind = shift+enter=text:\n"
584
- if (_kittyProtocolActive) {
585
- return data === "\x1b\r" || data === "\n";
586
- }
587
- return false;
588
- }
589
- if (alt && !ctrl && !shift) {
590
- // CSI u sequences (standard Kitty protocol)
591
- if (matchesKittySequence(data, CODEPOINTS.enter, MODIFIERS.alt) ||
592
- matchesKittySequence(data, CODEPOINTS.kpEnter, MODIFIERS.alt)) {
593
- return true;
594
- }
595
- // xterm modifyOtherKeys format (fallback when Kitty protocol not enabled)
596
- if (matchesModifyOtherKeys(data, CODEPOINTS.enter, MODIFIERS.alt)) {
597
- return true;
598
- }
599
- // \x1b\r is alt+enter only in legacy mode (no Kitty protocol)
600
- // When Kitty protocol is active, alt+enter comes as CSI u sequence
601
- if (!_kittyProtocolActive) {
602
- return data === "\x1b\r";
603
- }
604
- return false;
605
- }
606
- if (modifier === 0) {
607
- return (data === "\r" ||
608
- (!_kittyProtocolActive && data === "\n") ||
609
- data === "\x1bOM" || // SS3 M (numpad enter in some terminals)
610
- matchesKittySequence(data, CODEPOINTS.enter, 0) ||
611
- matchesKittySequence(data, CODEPOINTS.kpEnter, 0));
612
- }
613
- return (matchesKittySequence(data, CODEPOINTS.enter, modifier) ||
614
- matchesKittySequence(data, CODEPOINTS.kpEnter, modifier));
615
- case "backspace":
616
- if (alt && !ctrl && !shift) {
617
- if (data === "\x1b\x7f" || data === "\x1b\b") {
618
- return true;
619
- }
620
- return matchesKittySequence(data, CODEPOINTS.backspace, MODIFIERS.alt);
621
- }
622
- if (modifier === 0) {
623
- return data === "\x7f" || data === "\x08" || matchesKittySequence(data, CODEPOINTS.backspace, 0);
624
- }
625
- return matchesKittySequence(data, CODEPOINTS.backspace, modifier);
626
- case "insert":
627
- if (modifier === 0) {
628
- return (matchesLegacySequence(data, LEGACY_KEY_SEQUENCES.insert) ||
629
- matchesKittySequence(data, FUNCTIONAL_CODEPOINTS.insert, 0));
630
- }
631
- if (matchesLegacyModifierSequence(data, "insert", modifier)) {
632
- return true;
633
- }
634
- return matchesKittySequence(data, FUNCTIONAL_CODEPOINTS.insert, modifier);
635
- case "delete":
636
- if (modifier === 0) {
637
- return (matchesLegacySequence(data, LEGACY_KEY_SEQUENCES.delete) ||
638
- matchesKittySequence(data, FUNCTIONAL_CODEPOINTS.delete, 0));
639
- }
640
- if (matchesLegacyModifierSequence(data, "delete", modifier)) {
641
- return true;
642
- }
643
- return matchesKittySequence(data, FUNCTIONAL_CODEPOINTS.delete, modifier);
644
- case "clear":
645
- if (modifier === 0) {
646
- return matchesLegacySequence(data, LEGACY_KEY_SEQUENCES.clear);
647
- }
648
- return matchesLegacyModifierSequence(data, "clear", modifier);
649
- case "home":
650
- if (modifier === 0) {
651
- return (matchesLegacySequence(data, LEGACY_KEY_SEQUENCES.home) ||
652
- matchesKittySequence(data, FUNCTIONAL_CODEPOINTS.home, 0));
653
- }
654
- if (matchesLegacyModifierSequence(data, "home", modifier)) {
655
- return true;
656
- }
657
- return matchesKittySequence(data, FUNCTIONAL_CODEPOINTS.home, modifier);
658
- case "end":
659
- if (modifier === 0) {
660
- return (matchesLegacySequence(data, LEGACY_KEY_SEQUENCES.end) ||
661
- matchesKittySequence(data, FUNCTIONAL_CODEPOINTS.end, 0));
662
- }
663
- if (matchesLegacyModifierSequence(data, "end", modifier)) {
664
- return true;
665
- }
666
- return matchesKittySequence(data, FUNCTIONAL_CODEPOINTS.end, modifier);
667
- case "pageup":
668
- if (modifier === 0) {
669
- return (matchesLegacySequence(data, LEGACY_KEY_SEQUENCES.pageUp) ||
670
- matchesKittySequence(data, FUNCTIONAL_CODEPOINTS.pageUp, 0));
671
- }
672
- if (matchesLegacyModifierSequence(data, "pageUp", modifier)) {
673
- return true;
674
- }
675
- return matchesKittySequence(data, FUNCTIONAL_CODEPOINTS.pageUp, modifier);
676
- case "pagedown":
677
- if (modifier === 0) {
678
- return (matchesLegacySequence(data, LEGACY_KEY_SEQUENCES.pageDown) ||
679
- matchesKittySequence(data, FUNCTIONAL_CODEPOINTS.pageDown, 0));
680
- }
681
- if (matchesLegacyModifierSequence(data, "pageDown", modifier)) {
682
- return true;
683
- }
684
- return matchesKittySequence(data, FUNCTIONAL_CODEPOINTS.pageDown, modifier);
685
- case "up":
686
- if (alt && !ctrl && !shift) {
687
- return data === "\x1bp" || matchesKittySequence(data, ARROW_CODEPOINTS.up, MODIFIERS.alt);
688
- }
689
- if (modifier === 0) {
690
- return (matchesLegacySequence(data, LEGACY_KEY_SEQUENCES.up) ||
691
- matchesKittySequence(data, ARROW_CODEPOINTS.up, 0));
692
- }
693
- if (matchesLegacyModifierSequence(data, "up", modifier)) {
694
- return true;
695
- }
696
- return matchesKittySequence(data, ARROW_CODEPOINTS.up, modifier);
697
- case "down":
698
- if (alt && !ctrl && !shift) {
699
- return data === "\x1bn" || matchesKittySequence(data, ARROW_CODEPOINTS.down, MODIFIERS.alt);
700
- }
701
- if (modifier === 0) {
702
- return (matchesLegacySequence(data, LEGACY_KEY_SEQUENCES.down) ||
703
- matchesKittySequence(data, ARROW_CODEPOINTS.down, 0));
704
- }
705
- if (matchesLegacyModifierSequence(data, "down", modifier)) {
706
- return true;
707
- }
708
- return matchesKittySequence(data, ARROW_CODEPOINTS.down, modifier);
709
- case "left":
710
- if (alt && !ctrl && !shift) {
711
- return (data === "\x1b[1;3D" ||
712
- (!_kittyProtocolActive && data === "\x1bB") ||
713
- data === "\x1bb" ||
714
- matchesKittySequence(data, ARROW_CODEPOINTS.left, MODIFIERS.alt));
715
- }
716
- if (ctrl && !alt && !shift) {
717
- return (data === "\x1b[1;5D" ||
718
- matchesLegacyModifierSequence(data, "left", MODIFIERS.ctrl) ||
719
- matchesKittySequence(data, ARROW_CODEPOINTS.left, MODIFIERS.ctrl));
720
- }
721
- if (modifier === 0) {
722
- return (matchesLegacySequence(data, LEGACY_KEY_SEQUENCES.left) ||
723
- matchesKittySequence(data, ARROW_CODEPOINTS.left, 0));
724
- }
725
- if (matchesLegacyModifierSequence(data, "left", modifier)) {
726
- return true;
727
- }
728
- return matchesKittySequence(data, ARROW_CODEPOINTS.left, modifier);
729
- case "right":
730
- if (alt && !ctrl && !shift) {
731
- return (data === "\x1b[1;3C" ||
732
- (!_kittyProtocolActive && data === "\x1bF") ||
733
- data === "\x1bf" ||
734
- matchesKittySequence(data, ARROW_CODEPOINTS.right, MODIFIERS.alt));
735
- }
736
- if (ctrl && !alt && !shift) {
737
- return (data === "\x1b[1;5C" ||
738
- matchesLegacyModifierSequence(data, "right", MODIFIERS.ctrl) ||
739
- matchesKittySequence(data, ARROW_CODEPOINTS.right, MODIFIERS.ctrl));
740
- }
741
- if (modifier === 0) {
742
- return (matchesLegacySequence(data, LEGACY_KEY_SEQUENCES.right) ||
743
- matchesKittySequence(data, ARROW_CODEPOINTS.right, 0));
744
- }
745
- if (matchesLegacyModifierSequence(data, "right", modifier)) {
746
- return true;
747
- }
748
- return matchesKittySequence(data, ARROW_CODEPOINTS.right, modifier);
749
- case "f1":
750
- case "f2":
751
- case "f3":
752
- case "f4":
753
- case "f5":
754
- case "f6":
755
- case "f7":
756
- case "f8":
757
- case "f9":
758
- case "f10":
759
- case "f11":
760
- case "f12": {
761
- if (modifier !== 0) {
762
- return false;
763
- }
764
- const functionKey = key;
765
- return matchesLegacySequence(data, LEGACY_KEY_SEQUENCES[functionKey]);
534
+ const parsed = parseKeyId(keyId);
535
+ if (!parsed) return false;
536
+ const { key, ctrl, shift, alt } = parsed;
537
+ let modifier = 0;
538
+ if (shift) modifier |= MODIFIERS.shift;
539
+ if (alt) modifier |= MODIFIERS.alt;
540
+ if (ctrl) modifier |= MODIFIERS.ctrl;
541
+ switch (key) {
542
+ case 'escape':
543
+ case 'esc':
544
+ if (modifier !== 0) return false;
545
+ return data === '\x1b' || matchesKittySequence(data, CODEPOINTS.escape, 0);
546
+ case 'space':
547
+ if (!_kittyProtocolActive) {
548
+ if (ctrl && !alt && !shift && data === '\x00') {
549
+ return true;
766
550
  }
767
- }
768
- // Handle single letter keys (a-z) and some symbols
769
- if (key.length === 1 && ((key >= "a" && key <= "z") || SYMBOL_KEYS.has(key))) {
770
- const codepoint = key.charCodeAt(0);
771
- const rawCtrl = rawCtrlChar(key);
772
- if (ctrl && alt && !shift && !_kittyProtocolActive && rawCtrl) {
773
- // Legacy: ctrl+alt+key is ESC followed by the control character
774
- return data === `\x1b${rawCtrl}`;
551
+ if (alt && !ctrl && !shift && data === '\x1b ') {
552
+ return true;
775
553
  }
776
- if (alt && !ctrl && !shift && !_kittyProtocolActive && key >= "a" && key <= "z") {
777
- // Legacy: alt+letter is ESC followed by the letter
778
- if (data === `\x1b${key}`)
779
- return true;
554
+ }
555
+ if (modifier === 0) {
556
+ return data === ' ' || matchesKittySequence(data, CODEPOINTS.space, 0);
557
+ }
558
+ return matchesKittySequence(data, CODEPOINTS.space, modifier);
559
+ case 'tab':
560
+ if (shift && !ctrl && !alt) {
561
+ return data === '\x1b[Z' || matchesKittySequence(data, CODEPOINTS.tab, MODIFIERS.shift);
562
+ }
563
+ if (modifier === 0) {
564
+ return data === '\t' || matchesKittySequence(data, CODEPOINTS.tab, 0);
565
+ }
566
+ return matchesKittySequence(data, CODEPOINTS.tab, modifier);
567
+ case 'enter':
568
+ case 'return':
569
+ if (shift && !ctrl && !alt) {
570
+ // CSI u sequences (standard Kitty protocol)
571
+ if (
572
+ matchesKittySequence(data, CODEPOINTS.enter, MODIFIERS.shift) ||
573
+ matchesKittySequence(data, CODEPOINTS.kpEnter, MODIFIERS.shift)
574
+ ) {
575
+ return true;
780
576
  }
781
- if (ctrl && !shift && !alt) {
782
- // Legacy: ctrl+key sends the control character
783
- if (rawCtrl && data === rawCtrl)
784
- return true;
785
- return matchesKittySequence(data, codepoint, MODIFIERS.ctrl);
577
+ // xterm modifyOtherKeys format (fallback when Kitty protocol not enabled)
578
+ if (matchesModifyOtherKeys(data, CODEPOINTS.enter, MODIFIERS.shift)) {
579
+ return true;
786
580
  }
787
- if (ctrl && shift && !alt) {
788
- return matchesKittySequence(data, codepoint, MODIFIERS.shift + MODIFIERS.ctrl);
581
+ // When Kitty protocol is active, legacy sequences are custom terminal mappings
582
+ // \x1b\r = Kitty's "map shift+enter send_text all \e\r"
583
+ // \n = Ghostty's "keybind = shift+enter=text:\n"
584
+ if (_kittyProtocolActive) {
585
+ return data === '\x1b\r' || data === '\n';
789
586
  }
790
- if (shift && !ctrl && !alt) {
791
- // Legacy: shift+letter produces uppercase
792
- if (data === key.toUpperCase())
793
- return true;
794
- return matchesKittySequence(data, codepoint, MODIFIERS.shift);
587
+ return false;
588
+ }
589
+ if (alt && !ctrl && !shift) {
590
+ // CSI u sequences (standard Kitty protocol)
591
+ if (
592
+ matchesKittySequence(data, CODEPOINTS.enter, MODIFIERS.alt) ||
593
+ matchesKittySequence(data, CODEPOINTS.kpEnter, MODIFIERS.alt)
594
+ ) {
595
+ return true;
795
596
  }
796
- if (modifier !== 0) {
797
- return matchesKittySequence(data, codepoint, modifier);
597
+ // xterm modifyOtherKeys format (fallback when Kitty protocol not enabled)
598
+ if (matchesModifyOtherKeys(data, CODEPOINTS.enter, MODIFIERS.alt)) {
599
+ return true;
798
600
  }
799
- // Check both raw char and Kitty sequence (needed for release events)
800
- return data === key || matchesKittySequence(data, codepoint, 0);
601
+ // \x1b\r is alt+enter only in legacy mode (no Kitty protocol)
602
+ // When Kitty protocol is active, alt+enter comes as CSI u sequence
603
+ if (!_kittyProtocolActive) {
604
+ return data === '\x1b\r';
605
+ }
606
+ return false;
607
+ }
608
+ if (modifier === 0) {
609
+ return (
610
+ data === '\r' ||
611
+ (!_kittyProtocolActive && data === '\n') ||
612
+ data === '\x1bOM' || // SS3 M (numpad enter in some terminals)
613
+ matchesKittySequence(data, CODEPOINTS.enter, 0) ||
614
+ matchesKittySequence(data, CODEPOINTS.kpEnter, 0)
615
+ );
616
+ }
617
+ return (
618
+ matchesKittySequence(data, CODEPOINTS.enter, modifier) ||
619
+ matchesKittySequence(data, CODEPOINTS.kpEnter, modifier)
620
+ );
621
+ case 'backspace':
622
+ if (alt && !ctrl && !shift) {
623
+ if (data === '\x1b\x7f' || data === '\x1b\b') {
624
+ return true;
625
+ }
626
+ return matchesKittySequence(data, CODEPOINTS.backspace, MODIFIERS.alt);
627
+ }
628
+ if (modifier === 0) {
629
+ return (
630
+ data === '\x7f' || data === '\x08' || matchesKittySequence(data, CODEPOINTS.backspace, 0)
631
+ );
632
+ }
633
+ return matchesKittySequence(data, CODEPOINTS.backspace, modifier);
634
+ case 'insert':
635
+ if (modifier === 0) {
636
+ return (
637
+ matchesLegacySequence(data, LEGACY_KEY_SEQUENCES.insert) ||
638
+ matchesKittySequence(data, FUNCTIONAL_CODEPOINTS.insert, 0)
639
+ );
640
+ }
641
+ if (matchesLegacyModifierSequence(data, 'insert', modifier)) {
642
+ return true;
643
+ }
644
+ return matchesKittySequence(data, FUNCTIONAL_CODEPOINTS.insert, modifier);
645
+ case 'delete':
646
+ if (modifier === 0) {
647
+ return (
648
+ matchesLegacySequence(data, LEGACY_KEY_SEQUENCES.delete) ||
649
+ matchesKittySequence(data, FUNCTIONAL_CODEPOINTS.delete, 0)
650
+ );
651
+ }
652
+ if (matchesLegacyModifierSequence(data, 'delete', modifier)) {
653
+ return true;
654
+ }
655
+ return matchesKittySequence(data, FUNCTIONAL_CODEPOINTS.delete, modifier);
656
+ case 'clear':
657
+ if (modifier === 0) {
658
+ return matchesLegacySequence(data, LEGACY_KEY_SEQUENCES.clear);
659
+ }
660
+ return matchesLegacyModifierSequence(data, 'clear', modifier);
661
+ case 'home':
662
+ if (modifier === 0) {
663
+ return (
664
+ matchesLegacySequence(data, LEGACY_KEY_SEQUENCES.home) ||
665
+ matchesKittySequence(data, FUNCTIONAL_CODEPOINTS.home, 0)
666
+ );
667
+ }
668
+ if (matchesLegacyModifierSequence(data, 'home', modifier)) {
669
+ return true;
670
+ }
671
+ return matchesKittySequence(data, FUNCTIONAL_CODEPOINTS.home, modifier);
672
+ case 'end':
673
+ if (modifier === 0) {
674
+ return (
675
+ matchesLegacySequence(data, LEGACY_KEY_SEQUENCES.end) ||
676
+ matchesKittySequence(data, FUNCTIONAL_CODEPOINTS.end, 0)
677
+ );
678
+ }
679
+ if (matchesLegacyModifierSequence(data, 'end', modifier)) {
680
+ return true;
681
+ }
682
+ return matchesKittySequence(data, FUNCTIONAL_CODEPOINTS.end, modifier);
683
+ case 'pageup':
684
+ if (modifier === 0) {
685
+ return (
686
+ matchesLegacySequence(data, LEGACY_KEY_SEQUENCES.pageUp) ||
687
+ matchesKittySequence(data, FUNCTIONAL_CODEPOINTS.pageUp, 0)
688
+ );
689
+ }
690
+ if (matchesLegacyModifierSequence(data, 'pageUp', modifier)) {
691
+ return true;
692
+ }
693
+ return matchesKittySequence(data, FUNCTIONAL_CODEPOINTS.pageUp, modifier);
694
+ case 'pagedown':
695
+ if (modifier === 0) {
696
+ return (
697
+ matchesLegacySequence(data, LEGACY_KEY_SEQUENCES.pageDown) ||
698
+ matchesKittySequence(data, FUNCTIONAL_CODEPOINTS.pageDown, 0)
699
+ );
700
+ }
701
+ if (matchesLegacyModifierSequence(data, 'pageDown', modifier)) {
702
+ return true;
703
+ }
704
+ return matchesKittySequence(data, FUNCTIONAL_CODEPOINTS.pageDown, modifier);
705
+ case 'up':
706
+ if (alt && !ctrl && !shift) {
707
+ return data === '\x1bp' || matchesKittySequence(data, ARROW_CODEPOINTS.up, MODIFIERS.alt);
708
+ }
709
+ if (modifier === 0) {
710
+ return (
711
+ matchesLegacySequence(data, LEGACY_KEY_SEQUENCES.up) ||
712
+ matchesKittySequence(data, ARROW_CODEPOINTS.up, 0)
713
+ );
714
+ }
715
+ if (matchesLegacyModifierSequence(data, 'up', modifier)) {
716
+ return true;
717
+ }
718
+ return matchesKittySequence(data, ARROW_CODEPOINTS.up, modifier);
719
+ case 'down':
720
+ if (alt && !ctrl && !shift) {
721
+ return data === '\x1bn' || matchesKittySequence(data, ARROW_CODEPOINTS.down, MODIFIERS.alt);
722
+ }
723
+ if (modifier === 0) {
724
+ return (
725
+ matchesLegacySequence(data, LEGACY_KEY_SEQUENCES.down) ||
726
+ matchesKittySequence(data, ARROW_CODEPOINTS.down, 0)
727
+ );
728
+ }
729
+ if (matchesLegacyModifierSequence(data, 'down', modifier)) {
730
+ return true;
731
+ }
732
+ return matchesKittySequence(data, ARROW_CODEPOINTS.down, modifier);
733
+ case 'left':
734
+ if (alt && !ctrl && !shift) {
735
+ return (
736
+ data === '\x1b[1;3D' ||
737
+ (!_kittyProtocolActive && data === '\x1bB') ||
738
+ data === '\x1bb' ||
739
+ matchesKittySequence(data, ARROW_CODEPOINTS.left, MODIFIERS.alt)
740
+ );
741
+ }
742
+ if (ctrl && !alt && !shift) {
743
+ return (
744
+ data === '\x1b[1;5D' ||
745
+ matchesLegacyModifierSequence(data, 'left', MODIFIERS.ctrl) ||
746
+ matchesKittySequence(data, ARROW_CODEPOINTS.left, MODIFIERS.ctrl)
747
+ );
748
+ }
749
+ if (modifier === 0) {
750
+ return (
751
+ matchesLegacySequence(data, LEGACY_KEY_SEQUENCES.left) ||
752
+ matchesKittySequence(data, ARROW_CODEPOINTS.left, 0)
753
+ );
754
+ }
755
+ if (matchesLegacyModifierSequence(data, 'left', modifier)) {
756
+ return true;
757
+ }
758
+ return matchesKittySequence(data, ARROW_CODEPOINTS.left, modifier);
759
+ case 'right':
760
+ if (alt && !ctrl && !shift) {
761
+ return (
762
+ data === '\x1b[1;3C' ||
763
+ (!_kittyProtocolActive && data === '\x1bF') ||
764
+ data === '\x1bf' ||
765
+ matchesKittySequence(data, ARROW_CODEPOINTS.right, MODIFIERS.alt)
766
+ );
767
+ }
768
+ if (ctrl && !alt && !shift) {
769
+ return (
770
+ data === '\x1b[1;5C' ||
771
+ matchesLegacyModifierSequence(data, 'right', MODIFIERS.ctrl) ||
772
+ matchesKittySequence(data, ARROW_CODEPOINTS.right, MODIFIERS.ctrl)
773
+ );
774
+ }
775
+ if (modifier === 0) {
776
+ return (
777
+ matchesLegacySequence(data, LEGACY_KEY_SEQUENCES.right) ||
778
+ matchesKittySequence(data, ARROW_CODEPOINTS.right, 0)
779
+ );
780
+ }
781
+ if (matchesLegacyModifierSequence(data, 'right', modifier)) {
782
+ return true;
783
+ }
784
+ return matchesKittySequence(data, ARROW_CODEPOINTS.right, modifier);
785
+ case 'f1':
786
+ case 'f2':
787
+ case 'f3':
788
+ case 'f4':
789
+ case 'f5':
790
+ case 'f6':
791
+ case 'f7':
792
+ case 'f8':
793
+ case 'f9':
794
+ case 'f10':
795
+ case 'f11':
796
+ case 'f12': {
797
+ if (modifier !== 0) {
798
+ return false;
799
+ }
800
+ const functionKey = key;
801
+ return matchesLegacySequence(data, LEGACY_KEY_SEQUENCES[functionKey]);
801
802
  }
802
- return false;
803
+ }
804
+ // Handle single letter keys (a-z) and some symbols
805
+ if (key.length === 1 && ((key >= 'a' && key <= 'z') || SYMBOL_KEYS.has(key))) {
806
+ const codepoint = key.charCodeAt(0);
807
+ const rawCtrl = rawCtrlChar(key);
808
+ if (ctrl && alt && !shift && !_kittyProtocolActive && rawCtrl) {
809
+ // Legacy: ctrl+alt+key is ESC followed by the control character
810
+ return data === `\x1b${rawCtrl}`;
811
+ }
812
+ if (alt && !ctrl && !shift && !_kittyProtocolActive && key >= 'a' && key <= 'z') {
813
+ // Legacy: alt+letter is ESC followed by the letter
814
+ if (data === `\x1b${key}`) return true;
815
+ }
816
+ if (ctrl && !shift && !alt) {
817
+ // Legacy: ctrl+key sends the control character
818
+ if (rawCtrl && data === rawCtrl) return true;
819
+ return matchesKittySequence(data, codepoint, MODIFIERS.ctrl);
820
+ }
821
+ if (ctrl && shift && !alt) {
822
+ return matchesKittySequence(data, codepoint, MODIFIERS.shift + MODIFIERS.ctrl);
823
+ }
824
+ if (shift && !ctrl && !alt) {
825
+ // Legacy: shift+letter produces uppercase
826
+ if (data === key.toUpperCase()) return true;
827
+ return matchesKittySequence(data, codepoint, MODIFIERS.shift);
828
+ }
829
+ if (modifier !== 0) {
830
+ return matchesKittySequence(data, codepoint, modifier);
831
+ }
832
+ // Check both raw char and Kitty sequence (needed for release events)
833
+ return data === key || matchesKittySequence(data, codepoint, 0);
834
+ }
835
+ return false;
803
836
  }
804
837
  /**
805
838
  * Parse input data and return the key identifier if recognized.
@@ -808,152 +841,107 @@ export function matchesKey(data, keyId) {
808
841
  * @returns Key identifier string (e.g., "ctrl+c") or undefined
809
842
  */
810
843
  export function parseKey(data) {
811
- const kitty = parseKittySequence(data);
812
- if (kitty) {
813
- const { codepoint, baseLayoutKey, modifier } = kitty;
814
- const mods = [];
815
- const effectiveMod = modifier & ~LOCK_MASK;
816
- if (effectiveMod & MODIFIERS.shift)
817
- mods.push("shift");
818
- if (effectiveMod & MODIFIERS.ctrl)
819
- mods.push("ctrl");
820
- if (effectiveMod & MODIFIERS.alt)
821
- mods.push("alt");
822
- // Use base layout key only when codepoint is not a recognized Latin
823
- // letter (a-z) or symbol (/, -, [, ;, etc.). For those, the codepoint
824
- // is authoritative regardless of physical key position. This prevents
825
- // remapped layouts (Dvorak, Colemak, xremap, etc.) from reporting the
826
- // wrong key name based on the QWERTY physical position.
827
- const isLatinLetter = codepoint >= 97 && codepoint <= 122; // a-z
828
- const isKnownSymbol = SYMBOL_KEYS.has(String.fromCharCode(codepoint));
829
- const effectiveCodepoint = isLatinLetter || isKnownSymbol ? codepoint : (baseLayoutKey ?? codepoint);
830
- let keyName;
831
- if (effectiveCodepoint === CODEPOINTS.escape)
832
- keyName = "escape";
833
- else if (effectiveCodepoint === CODEPOINTS.tab)
834
- keyName = "tab";
835
- else if (effectiveCodepoint === CODEPOINTS.enter || effectiveCodepoint === CODEPOINTS.kpEnter)
836
- keyName = "enter";
837
- else if (effectiveCodepoint === CODEPOINTS.space)
838
- keyName = "space";
839
- else if (effectiveCodepoint === CODEPOINTS.backspace)
840
- keyName = "backspace";
841
- else if (effectiveCodepoint === FUNCTIONAL_CODEPOINTS.delete)
842
- keyName = "delete";
843
- else if (effectiveCodepoint === FUNCTIONAL_CODEPOINTS.insert)
844
- keyName = "insert";
845
- else if (effectiveCodepoint === FUNCTIONAL_CODEPOINTS.home)
846
- keyName = "home";
847
- else if (effectiveCodepoint === FUNCTIONAL_CODEPOINTS.end)
848
- keyName = "end";
849
- else if (effectiveCodepoint === FUNCTIONAL_CODEPOINTS.pageUp)
850
- keyName = "pageUp";
851
- else if (effectiveCodepoint === FUNCTIONAL_CODEPOINTS.pageDown)
852
- keyName = "pageDown";
853
- else if (effectiveCodepoint === ARROW_CODEPOINTS.up)
854
- keyName = "up";
855
- else if (effectiveCodepoint === ARROW_CODEPOINTS.down)
856
- keyName = "down";
857
- else if (effectiveCodepoint === ARROW_CODEPOINTS.left)
858
- keyName = "left";
859
- else if (effectiveCodepoint === ARROW_CODEPOINTS.right)
860
- keyName = "right";
861
- else if (effectiveCodepoint >= 97 && effectiveCodepoint <= 122)
862
- keyName = String.fromCharCode(effectiveCodepoint);
863
- else if (SYMBOL_KEYS.has(String.fromCharCode(effectiveCodepoint)))
864
- keyName = String.fromCharCode(effectiveCodepoint);
865
- if (keyName) {
866
- return mods.length > 0 ? `${mods.join("+")}+${keyName}` : keyName;
867
- }
844
+ const kitty = parseKittySequence(data);
845
+ if (kitty) {
846
+ const { codepoint, baseLayoutKey, modifier } = kitty;
847
+ const mods = [];
848
+ const effectiveMod = modifier & ~LOCK_MASK;
849
+ if (effectiveMod & MODIFIERS.shift) mods.push('shift');
850
+ if (effectiveMod & MODIFIERS.ctrl) mods.push('ctrl');
851
+ if (effectiveMod & MODIFIERS.alt) mods.push('alt');
852
+ // Use base layout key only when codepoint is not a recognized Latin
853
+ // letter (a-z) or symbol (/, -, [, ;, etc.). For those, the codepoint
854
+ // is authoritative regardless of physical key position. This prevents
855
+ // remapped layouts (Dvorak, Colemak, xremap, etc.) from reporting the
856
+ // wrong key name based on the QWERTY physical position.
857
+ const isLatinLetter = codepoint >= 97 && codepoint <= 122; // a-z
858
+ const isKnownSymbol = SYMBOL_KEYS.has(String.fromCharCode(codepoint));
859
+ const effectiveCodepoint =
860
+ isLatinLetter || isKnownSymbol ? codepoint : (baseLayoutKey ?? codepoint);
861
+ let keyName;
862
+ if (effectiveCodepoint === CODEPOINTS.escape) keyName = 'escape';
863
+ else if (effectiveCodepoint === CODEPOINTS.tab) keyName = 'tab';
864
+ else if (effectiveCodepoint === CODEPOINTS.enter || effectiveCodepoint === CODEPOINTS.kpEnter)
865
+ keyName = 'enter';
866
+ else if (effectiveCodepoint === CODEPOINTS.space) keyName = 'space';
867
+ else if (effectiveCodepoint === CODEPOINTS.backspace) keyName = 'backspace';
868
+ else if (effectiveCodepoint === FUNCTIONAL_CODEPOINTS.delete) keyName = 'delete';
869
+ else if (effectiveCodepoint === FUNCTIONAL_CODEPOINTS.insert) keyName = 'insert';
870
+ else if (effectiveCodepoint === FUNCTIONAL_CODEPOINTS.home) keyName = 'home';
871
+ else if (effectiveCodepoint === FUNCTIONAL_CODEPOINTS.end) keyName = 'end';
872
+ else if (effectiveCodepoint === FUNCTIONAL_CODEPOINTS.pageUp) keyName = 'pageUp';
873
+ else if (effectiveCodepoint === FUNCTIONAL_CODEPOINTS.pageDown) keyName = 'pageDown';
874
+ else if (effectiveCodepoint === ARROW_CODEPOINTS.up) keyName = 'up';
875
+ else if (effectiveCodepoint === ARROW_CODEPOINTS.down) keyName = 'down';
876
+ else if (effectiveCodepoint === ARROW_CODEPOINTS.left) keyName = 'left';
877
+ else if (effectiveCodepoint === ARROW_CODEPOINTS.right) keyName = 'right';
878
+ else if (effectiveCodepoint >= 97 && effectiveCodepoint <= 122)
879
+ keyName = String.fromCharCode(effectiveCodepoint);
880
+ else if (SYMBOL_KEYS.has(String.fromCharCode(effectiveCodepoint)))
881
+ keyName = String.fromCharCode(effectiveCodepoint);
882
+ if (keyName) {
883
+ return mods.length > 0 ? `${mods.join('+')}+${keyName}` : keyName;
868
884
  }
869
- // Mode-aware legacy sequences
870
- // When Kitty protocol is active, ambiguous sequences are interpreted as custom terminal mappings:
871
- // - \x1b\r = shift+enter (Kitty mapping), not alt+enter
872
- // - \n = shift+enter (Ghostty mapping)
873
- if (_kittyProtocolActive) {
874
- if (data === "\x1b\r" || data === "\n")
875
- return "shift+enter";
885
+ }
886
+ // Mode-aware legacy sequences
887
+ // When Kitty protocol is active, ambiguous sequences are interpreted as custom terminal mappings:
888
+ // - \x1b\r = shift+enter (Kitty mapping), not alt+enter
889
+ // - \n = shift+enter (Ghostty mapping)
890
+ if (_kittyProtocolActive) {
891
+ if (data === '\x1b\r' || data === '\n') return 'shift+enter';
892
+ }
893
+ const legacySequenceKeyId = LEGACY_SEQUENCE_KEY_IDS[data];
894
+ if (legacySequenceKeyId) return legacySequenceKeyId;
895
+ // Legacy sequences (used when Kitty protocol is not active, or for unambiguous sequences)
896
+ if (data === '\x1b') return 'escape';
897
+ if (data === '\x1c') return 'ctrl+\\';
898
+ if (data === '\x1d') return 'ctrl+]';
899
+ if (data === '\x1f') return 'ctrl+-';
900
+ if (data === '\x1b\x1b') return 'ctrl+alt+[';
901
+ if (data === '\x1b\x1c') return 'ctrl+alt+\\';
902
+ if (data === '\x1b\x1d') return 'ctrl+alt+]';
903
+ if (data === '\x1b\x1f') return 'ctrl+alt+-';
904
+ if (data === '\t') return 'tab';
905
+ if (data === '\r' || (!_kittyProtocolActive && data === '\n') || data === '\x1bOM')
906
+ return 'enter';
907
+ if (data === '\x00') return 'ctrl+space';
908
+ if (data === ' ') return 'space';
909
+ if (data === '\x7f' || data === '\x08') return 'backspace';
910
+ if (data === '\x1b[Z') return 'shift+tab';
911
+ if (!_kittyProtocolActive && data === '\x1b\r') return 'alt+enter';
912
+ if (!_kittyProtocolActive && data === '\x1b ') return 'alt+space';
913
+ if (data === '\x1b\x7f' || data === '\x1b\b') return 'alt+backspace';
914
+ if (!_kittyProtocolActive && data === '\x1bB') return 'alt+left';
915
+ if (!_kittyProtocolActive && data === '\x1bF') return 'alt+right';
916
+ if (!_kittyProtocolActive && data.length === 2 && data[0] === '\x1b') {
917
+ const code = data.charCodeAt(1);
918
+ if (code >= 1 && code <= 26) {
919
+ return `ctrl+alt+${String.fromCharCode(code + 96)}`;
876
920
  }
877
- const legacySequenceKeyId = LEGACY_SEQUENCE_KEY_IDS[data];
878
- if (legacySequenceKeyId)
879
- return legacySequenceKeyId;
880
- // Legacy sequences (used when Kitty protocol is not active, or for unambiguous sequences)
881
- if (data === "\x1b")
882
- return "escape";
883
- if (data === "\x1c")
884
- return "ctrl+\\";
885
- if (data === "\x1d")
886
- return "ctrl+]";
887
- if (data === "\x1f")
888
- return "ctrl+-";
889
- if (data === "\x1b\x1b")
890
- return "ctrl+alt+[";
891
- if (data === "\x1b\x1c")
892
- return "ctrl+alt+\\";
893
- if (data === "\x1b\x1d")
894
- return "ctrl+alt+]";
895
- if (data === "\x1b\x1f")
896
- return "ctrl+alt+-";
897
- if (data === "\t")
898
- return "tab";
899
- if (data === "\r" || (!_kittyProtocolActive && data === "\n") || data === "\x1bOM")
900
- return "enter";
901
- if (data === "\x00")
902
- return "ctrl+space";
903
- if (data === " ")
904
- return "space";
905
- if (data === "\x7f" || data === "\x08")
906
- return "backspace";
907
- if (data === "\x1b[Z")
908
- return "shift+tab";
909
- if (!_kittyProtocolActive && data === "\x1b\r")
910
- return "alt+enter";
911
- if (!_kittyProtocolActive && data === "\x1b ")
912
- return "alt+space";
913
- if (data === "\x1b\x7f" || data === "\x1b\b")
914
- return "alt+backspace";
915
- if (!_kittyProtocolActive && data === "\x1bB")
916
- return "alt+left";
917
- if (!_kittyProtocolActive && data === "\x1bF")
918
- return "alt+right";
919
- if (!_kittyProtocolActive && data.length === 2 && data[0] === "\x1b") {
920
- const code = data.charCodeAt(1);
921
- if (code >= 1 && code <= 26) {
922
- return `ctrl+alt+${String.fromCharCode(code + 96)}`;
923
- }
924
- // Legacy alt+letter (ESC followed by letter a-z)
925
- if (code >= 97 && code <= 122) {
926
- return `alt+${String.fromCharCode(code)}`;
927
- }
921
+ // Legacy alt+letter (ESC followed by letter a-z)
922
+ if (code >= 97 && code <= 122) {
923
+ return `alt+${String.fromCharCode(code)}`;
928
924
  }
929
- if (data === "\x1b[A")
930
- return "up";
931
- if (data === "\x1b[B")
932
- return "down";
933
- if (data === "\x1b[C")
934
- return "right";
935
- if (data === "\x1b[D")
936
- return "left";
937
- if (data === "\x1b[H" || data === "\x1bOH")
938
- return "home";
939
- if (data === "\x1b[F" || data === "\x1bOF")
940
- return "end";
941
- if (data === "\x1b[3~")
942
- return "delete";
943
- if (data === "\x1b[5~")
944
- return "pageUp";
945
- if (data === "\x1b[6~")
946
- return "pageDown";
947
- // Raw Ctrl+letter
948
- if (data.length === 1) {
949
- const code = data.charCodeAt(0);
950
- if (code >= 1 && code <= 26) {
951
- return `ctrl+${String.fromCharCode(code + 96)}`;
952
- }
953
- if (code >= 32 && code <= 126) {
954
- return data;
955
- }
925
+ }
926
+ if (data === '\x1b[A') return 'up';
927
+ if (data === '\x1b[B') return 'down';
928
+ if (data === '\x1b[C') return 'right';
929
+ if (data === '\x1b[D') return 'left';
930
+ if (data === '\x1b[H' || data === '\x1bOH') return 'home';
931
+ if (data === '\x1b[F' || data === '\x1bOF') return 'end';
932
+ if (data === '\x1b[3~') return 'delete';
933
+ if (data === '\x1b[5~') return 'pageUp';
934
+ if (data === '\x1b[6~') return 'pageDown';
935
+ // Raw Ctrl+letter
936
+ if (data.length === 1) {
937
+ const code = data.charCodeAt(0);
938
+ if (code >= 1 && code <= 26) {
939
+ return `ctrl+${String.fromCharCode(code + 96)}`;
940
+ }
941
+ if (code >= 32 && code <= 126) {
942
+ return data;
956
943
  }
957
- return undefined;
944
+ }
945
+ return undefined;
958
946
  }
959
- //# sourceMappingURL=keys.js.map
947
+ //# sourceMappingURL=keys.js.map