shortcutxl 0.3.76 → 0.3.78

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 (480) hide show
  1. package/BINARY-INVENTORY.json +813 -813
  2. package/CHANGELOG.md +14 -0
  3. package/dist/ai/models.d.ts +10 -6
  4. package/dist/ai/models.generated.d.ts +72 -0
  5. package/dist/ai/models.generated.js +33 -0
  6. package/dist/ai/models.js +36 -13
  7. package/dist/ai/providers/anthropic.d.ts +4 -2
  8. package/dist/ai/providers/anthropic.js +59 -29
  9. package/dist/ai/providers/azure-openai-responses.d.ts +2 -1
  10. package/dist/ai/providers/azure-openai-responses.js +4 -20
  11. package/dist/ai/providers/google-vertex.d.ts +8 -2
  12. package/dist/ai/providers/google-vertex.js +66 -54
  13. package/dist/ai/providers/google.js +15 -48
  14. package/dist/ai/providers/openai-completions.d.ts +4 -1
  15. package/dist/ai/providers/openai-completions.js +26 -10
  16. package/dist/ai/providers/openai-reasoning.d.ts +5 -0
  17. package/dist/ai/providers/openai-reasoning.js +13 -0
  18. package/dist/ai/providers/openai-responses-shared.js +1 -1
  19. package/dist/ai/providers/openai-responses.d.ts +6 -2
  20. package/dist/ai/providers/openai-responses.js +28 -23
  21. package/dist/ai/providers/simple-options.d.ts +2 -3
  22. package/dist/ai/providers/simple-options.js +4 -6
  23. package/dist/ai/types.d.ts +19 -2
  24. package/dist/app/agent-session-runtime-adapter.js +7 -6
  25. package/dist/app/agent-session.d.ts +0 -15
  26. package/dist/app/agent-session.js +0 -37
  27. package/dist/app/approvals/approval-errors.d.ts +15 -0
  28. package/dist/app/approvals/approval-errors.js +14 -0
  29. package/dist/app/approvals/runtime-approval-gates.d.ts +1 -2
  30. package/dist/app/approvals/tool-approval.d.ts +1 -0
  31. package/dist/app/approvals/tool-approval.js +11 -23
  32. package/dist/app/approvals/types.d.ts +0 -14
  33. package/dist/app/approvals/types.js +0 -2
  34. package/dist/app/background/tool-summaries.js +0 -2
  35. package/dist/app/extensions/slash-commands.js +1 -3
  36. package/dist/app/local/tools/execute-code/executor.d.ts +1 -1
  37. package/dist/app/local/tools/execute-code/executor.js +20 -10
  38. package/dist/app/local/tools/execute-code/tool.js +21 -2
  39. package/dist/app/modes/action/agent.js +4 -5
  40. package/dist/app/modes/ask/agent.js +4 -6
  41. package/dist/app/modes/index.js +20 -10
  42. package/dist/app/modes/installation/agent.js +4 -5
  43. package/dist/app/modes/manage/agent.js +3 -4
  44. package/dist/app/modes/manage/prompt.js +1 -2
  45. package/dist/app/modes/metadata.d.ts +31 -0
  46. package/dist/app/modes/metadata.js +35 -0
  47. package/dist/app/modes/plan/agent.js +5 -8
  48. package/dist/app/modes/plan/prompt.js +3 -3
  49. package/dist/app/permissions/runtime-approval-flow.d.ts +1 -5
  50. package/dist/app/permissions/runtime-approval-flow.js +0 -28
  51. package/dist/app/permissions/tool-gates.d.ts +2 -3
  52. package/dist/app/permissions/tool-gates.js +3 -81
  53. package/dist/app/prompts/com-api.js +1 -1
  54. package/dist/app/prompts/shared-guidelines.js +7 -3
  55. package/dist/app/providers/google-vertex-gateway.js +4 -51
  56. package/dist/app/providers/model-registry.d.ts +1 -0
  57. package/dist/app/providers/model-registry.js +39 -0
  58. package/dist/app/providers/model-resolver.js +10 -7
  59. package/dist/app/providers/register-shortcut-provider.js +6 -6
  60. package/dist/app/providers/shortcut-api-v2-transport.js +4 -0
  61. package/dist/app/providers/shortcut-llm-proxy-client.d.ts +2 -2
  62. package/dist/app/providers/shortcut-llm-proxy-client.js +1 -0
  63. package/dist/app/resources/package-manager.js +2 -123
  64. package/dist/app/resources/resource-patterns.d.ts +9 -0
  65. package/dist/app/resources/resource-patterns.js +120 -0
  66. package/dist/app/session/forked-agent.d.ts +2 -2
  67. package/dist/app/session/model-manager.js +3 -2
  68. package/dist/app/session/session-lifecycle.js +3 -2
  69. package/dist/app/session/session-models.d.ts +2 -0
  70. package/dist/app/session/session-models.js +14 -6
  71. package/dist/app/settings-manager.d.ts +3 -3
  72. package/dist/app/shared/tools/execute-code/mog.d.ts +3 -1
  73. package/dist/app/shared/tools/execute-code/mog.js +18 -2
  74. package/dist/app/tools/bash.js +3 -3
  75. package/dist/app/tools/execute-code/index.d.ts +1 -0
  76. package/dist/app/tools/execute-code/index.js +3 -1
  77. package/dist/app/tools/find-ignore-files.d.ts +3 -0
  78. package/dist/app/tools/find-ignore-files.js +33 -0
  79. package/dist/app/tools/find.js +2 -21
  80. package/dist/app/tools/llm-analysis.js +0 -2
  81. package/dist/app/tools/refresh-context.d.ts +1 -1
  82. package/dist/app/tools/session-settings/update-session-settings.js +2 -2
  83. package/dist/app/tools/switch-mode.js +2 -2
  84. package/dist/app/tools/take-screenshot.js +0 -2
  85. package/dist/app/tools/task/runner.js +1 -2
  86. package/dist/app/tools/task/task.d.ts +1 -3
  87. package/dist/app/tools/task/task.js +20 -40
  88. package/dist/app/tools/web-search.js +12 -2
  89. package/dist/autocomplete/core.d.ts +33 -0
  90. package/dist/autocomplete/core.js +113 -0
  91. package/dist/{tui → autocomplete}/fuzzy.d.ts +0 -1
  92. package/dist/{tui → autocomplete}/fuzzy.js +0 -1
  93. package/dist/{tui/autocomplete.d.ts → autocomplete/index.d.ts} +0 -1
  94. package/dist/{tui/autocomplete.js → autocomplete/index.js} +62 -158
  95. package/dist/cli/args.js +1 -1
  96. package/dist/cli/list-models.js +1 -1
  97. package/dist/cli.js +26227 -30480
  98. package/dist/constants.d.ts +0 -2
  99. package/dist/constants.js +0 -3
  100. package/dist/contracts/agent-session-store.d.ts +1 -1
  101. package/dist/contracts/agent-settings.d.ts +1 -0
  102. package/dist/contracts/agent-settings.js +2 -1
  103. package/dist/contracts/model-call.d.ts +1 -2
  104. package/dist/contracts/model-call.js +1 -2
  105. package/dist/contracts/model-stream.d.ts +1 -0
  106. package/dist/contracts/model-stream.js +1 -0
  107. package/dist/contracts/wire.d.ts +10 -7
  108. package/dist/contracts/wire.js +8 -0
  109. package/dist/core/agent-engine.js +1 -1
  110. package/dist/core/core-types.d.ts +1 -21
  111. package/dist/core/defaults.d.ts +1 -1
  112. package/dist/core/defaults.js +9 -1
  113. package/dist/core/prompts/agent-guidelines.d.ts +4 -5
  114. package/dist/core/prompts/agent-guidelines.js +28 -42
  115. package/dist/core/session-schema.d.ts +1 -1
  116. package/dist/embedded-agent/ai-invoke.d.ts +1 -2
  117. package/dist/embedded-agent/ai-invoke.js +2 -70
  118. package/dist/embedded-agent/anthropic-messages-transport.d.ts +4 -20
  119. package/dist/embedded-agent/anthropic-messages-transport.js +23 -786
  120. package/dist/embedded-agent/bootstrap.js +2 -2
  121. package/dist/embedded-agent/compose.js +8 -7
  122. package/dist/embedded-agent/gateway-base-url.d.ts +3 -0
  123. package/dist/embedded-agent/gateway-base-url.js +35 -0
  124. package/dist/embedded-agent/google-vertex-transport.d.ts +2 -11
  125. package/dist/embedded-agent/google-vertex-transport.js +20 -117
  126. package/dist/embedded-agent/host-runtime-options.d.ts +0 -8
  127. package/dist/embedded-agent/host-runtime-options.js +10 -2
  128. package/dist/embedded-agent/host-tools/invoke-llm/contract.d.ts +2 -2
  129. package/dist/embedded-agent/host-tools/invoke-llm/contract.js +4 -2
  130. package/dist/embedded-agent/host-tools/sandbox-llm/contract.d.ts +8 -3
  131. package/dist/embedded-agent/host-tools/sandbox-llm/contract.js +12 -8
  132. package/dist/embedded-agent/host-tools/sandbox-llm/index.d.ts +1 -1
  133. package/dist/embedded-agent/host-tools/sandbox-llm/index.js +1 -1
  134. package/dist/embedded-agent/host-tools/shared/index.d.ts +1 -1
  135. package/dist/embedded-agent/host-tools/shared/index.js +1 -1
  136. package/dist/embedded-agent/host-tools/shared/llm-stream-error.d.ts +7 -0
  137. package/dist/embedded-agent/host-tools/shared/llm-stream-error.js +10 -0
  138. package/dist/embedded-agent/host-tools/take-screenshot/contract.d.ts +0 -2
  139. package/dist/embedded-agent/host-tools/take-screenshot/contract.js +1 -3
  140. package/dist/embedded-agent/host-tools/take-screenshot/index.d.ts +1 -1
  141. package/dist/embedded-agent/host-tools/take-screenshot/index.js +1 -1
  142. package/dist/embedded-agent/host-tools/task/agents/clone.js +1 -2
  143. package/dist/embedded-agent/host-tools/task/contract.js +1 -1
  144. package/dist/embedded-agent/index.d.ts +3 -4
  145. package/dist/embedded-agent/index.js +2 -3
  146. package/dist/embedded-agent/model-selection.d.ts +0 -6
  147. package/dist/embedded-agent/model-selection.js +15 -8
  148. package/dist/embedded-agent/openai-completions-transport.d.ts +2 -11
  149. package/dist/embedded-agent/openai-completions-transport.js +20 -120
  150. package/dist/embedded-agent/openai-responses-transport.d.ts +2 -11
  151. package/dist/embedded-agent/openai-responses-transport.js +15 -170
  152. package/dist/embedded-agent/prompt/build.js +1 -2
  153. package/dist/embedded-agent/prompt/sections.d.ts +1 -1
  154. package/dist/embedded-agent/prompt/sections.js +2 -0
  155. package/dist/embedded-agent/provider-native-request.d.ts +29 -0
  156. package/dist/embedded-agent/provider-native-request.js +65 -0
  157. package/dist/embedded-agent/run-stats.d.ts +1 -1
  158. package/dist/embedded-agent/stream.d.ts +10 -96
  159. package/dist/embedded-agent/stream.js +31 -556
  160. package/dist/embedded-agent/suggestions.d.ts +1 -1
  161. package/dist/embedded-agent/suggestions.js +1 -1
  162. package/dist/embedded-agent/worker-bridge/host-client.d.ts +7 -0
  163. package/dist/embedded-agent/worker-bridge/host-client.js +15 -0
  164. package/dist/embedded-agent/worker-bridge/worker-port.js +17 -1
  165. package/dist/main.js +18 -14
  166. package/dist/rpc/index.d.ts +1 -1
  167. package/dist/rpc/rpc-approval-gates.js +1 -2
  168. package/dist/rpc/rpc-host.d.ts +4 -0
  169. package/dist/rpc/rpc-host.js +13 -24
  170. package/dist/rpc/rpc-types.d.ts +6 -17
  171. package/dist/shared/platform/open.d.ts +4 -1
  172. package/dist/shared/platform/open.js +14 -2
  173. package/dist/shell/approvals/runtime-approval-gates.js +1 -3
  174. package/dist/shell/components/selectors/model-selector.js +2 -1
  175. package/dist/shell/components/selectors/session-selector-search.js +1 -1
  176. package/dist/shell/components/selectors/thinking-selector.js +7 -6
  177. package/dist/shell/index.d.ts +0 -1
  178. package/dist/shell/index.js +0 -1
  179. package/dist/shell/interactive/interactive-mode-options.d.ts +10 -0
  180. package/dist/shell/interactive/interactive-mode.d.ts +6 -12
  181. package/dist/shell/interactive/interactive-mode.js +39 -158
  182. package/dist/shell/interactive/slash-commands.d.ts +0 -34
  183. package/dist/shell/interactive/slash-commands.js +0 -2
  184. package/dist/shell/links/local-file-link-input.d.ts +15 -0
  185. package/dist/shell/links/local-file-link-input.js +38 -0
  186. package/dist/shell/links/local-file-link.d.ts +7 -0
  187. package/dist/shell/links/local-file-link.js +35 -0
  188. package/dist/shell/links/local-file-opener.d.ts +16 -0
  189. package/dist/shell/links/local-file-opener.js +90 -0
  190. package/dist/shell/session-client.d.ts +0 -1
  191. package/dist/shell/session-client.js +0 -6
  192. package/dist/shell/status/update-check-scheduler.d.ts +30 -0
  193. package/dist/shell/status/update-check-scheduler.js +71 -0
  194. package/dist/shell/status/update-reminder-controller.d.ts +22 -0
  195. package/dist/shell/status/update-reminder-controller.js +40 -0
  196. package/dist/shell/status/update-reminder.d.ts +6 -0
  197. package/dist/shell/status/update-reminder.js +4 -0
  198. package/dist/shell/theme/dark.json +1 -2
  199. package/dist/shell/theme/light.json +1 -2
  200. package/dist/shell/theme/runtime.d.ts +2 -3
  201. package/dist/shell/theme/runtime.js +2 -6
  202. package/dist/shell/theme/theme-schema.json +1 -6
  203. package/dist/shortcut-model-catalog.d.ts +7 -2
  204. package/dist/shortcut-model-catalog.js +134 -10
  205. package/dist/startup/update-manager.d.ts +6 -6
  206. package/dist/startup/update-manager.js +23 -38
  207. package/dist/startup/update-prompt.d.ts +1 -0
  208. package/dist/startup/update-prompt.js +2 -2
  209. package/dist/tui/components/editor.d.ts +1 -1
  210. package/dist/tui/components/editor.js +1 -1
  211. package/dist/tui/components/markdown.js +15 -6
  212. package/dist/tui/components/settings-list.js +1 -1
  213. package/dist/tui/editor-component.d.ts +1 -1
  214. package/dist/tui/index.d.ts +7 -8
  215. package/dist/tui/index.js +7 -6
  216. package/dist/tui/tui.d.ts +2 -0
  217. package/dist/tui/tui.js +16 -1
  218. package/dist/tui/utils.d.ts +7 -0
  219. package/dist/tui/utils.js +58 -8
  220. package/native-app/main/index.js +3200 -48
  221. package/native-app/main/{photon_rs-SoVDgheu.js → photon_rs-XkYyYTVA.js} +2 -2
  222. package/native-app/package.json +1 -1
  223. package/native-app/preload/index.cjs +2 -0
  224. package/native-app/renderer/assets/{index-CFc-oZuS.js → index-B4jz6epR.js} +825 -155
  225. package/native-app/renderer/assets/{index-OhGE0UY4.css → index-C__g36ft.css} +412 -162
  226. package/native-app/renderer/assets/shortcutagent-DxFsGSkw.png +0 -0
  227. package/native-app/renderer/index.html +2 -2
  228. package/package.json +17 -3
  229. package/skills/add-custom-model/SKILL.md +52 -0
  230. package/user-docs/dist/index.html +1 -1
  231. package/user-docs/dist/shortcutxl-docs.pdf +0 -0
  232. package/xll/ShortcutXL.xll +0 -0
  233. package/xll/modules/shortcut_xl/_managed.py +26 -7
  234. package/xll/modules/shortcut_xl/_tracking.py +141 -251
  235. package/xll/modules/shortcut_xl/api/__init__.py +60 -0
  236. package/xll/modules/shortcut_xl/api/workbook.py +9 -1
  237. package/xll/modules/shortcut_xl/api/worksheet.py +4 -1
  238. package/xll/python/Lib/site-packages/httpx-0.28.1.dist-info/RECORD +1 -1
  239. package/xll/python/Lib/site-packages/idna-3.18.dist-info/RECORD +1 -1
  240. package/xll/python/Lib/site-packages/pip/__init__.py +1 -1
  241. package/xll/python/Lib/site-packages/pip/_internal/build_env/__init__.py +25 -0
  242. package/xll/python/Lib/site-packages/pip/_internal/build_env/base.py +103 -0
  243. package/xll/python/Lib/site-packages/pip/_internal/build_env/installer.py +333 -0
  244. package/xll/python/Lib/site-packages/pip/_internal/build_env/noop.py +42 -0
  245. package/xll/python/Lib/site-packages/pip/_internal/build_env/venv.py +145 -0
  246. package/xll/python/Lib/site-packages/pip/_internal/build_env/virtual.py +139 -0
  247. package/xll/python/Lib/site-packages/pip/_internal/cache.py +4 -1
  248. package/xll/python/Lib/site-packages/pip/_internal/cli/autocompletion.py +4 -1
  249. package/xll/python/Lib/site-packages/pip/_internal/cli/base_command.py +11 -14
  250. package/xll/python/Lib/site-packages/pip/_internal/cli/cmdoptions.py +133 -22
  251. package/xll/python/Lib/site-packages/pip/_internal/cli/index_command.py +11 -6
  252. package/xll/python/Lib/site-packages/pip/_internal/cli/main.py +2 -1
  253. package/xll/python/Lib/site-packages/pip/_internal/cli/main_parser.py +1 -2
  254. package/xll/python/Lib/site-packages/pip/_internal/cli/parser.py +10 -2
  255. package/xll/python/Lib/site-packages/pip/_internal/cli/progress_bars.py +2 -2
  256. package/xll/python/Lib/site-packages/pip/_internal/cli/req_command.py +57 -25
  257. package/xll/python/Lib/site-packages/pip/_internal/cli/status_codes.py +1 -0
  258. package/xll/python/Lib/site-packages/pip/_internal/commands/cache.py +7 -6
  259. package/xll/python/Lib/site-packages/pip/_internal/commands/configuration.py +2 -1
  260. package/xll/python/Lib/site-packages/pip/_internal/commands/debug.py +4 -5
  261. package/xll/python/Lib/site-packages/pip/_internal/commands/download.py +4 -0
  262. package/xll/python/Lib/site-packages/pip/_internal/commands/freeze.py +1 -1
  263. package/xll/python/Lib/site-packages/pip/_internal/commands/index.py +10 -3
  264. package/xll/python/Lib/site-packages/pip/_internal/commands/inspect.py +1 -1
  265. package/xll/python/Lib/site-packages/pip/_internal/commands/install.py +6 -6
  266. package/xll/python/Lib/site-packages/pip/_internal/commands/list.py +11 -6
  267. package/xll/python/Lib/site-packages/pip/_internal/commands/lock.py +4 -6
  268. package/xll/python/Lib/site-packages/pip/_internal/commands/show.py +14 -8
  269. package/xll/python/Lib/site-packages/pip/_internal/commands/wheel.py +7 -1
  270. package/xll/python/Lib/site-packages/pip/_internal/configuration.py +2 -3
  271. package/xll/python/Lib/site-packages/pip/_internal/distributions/base.py +5 -3
  272. package/xll/python/Lib/site-packages/pip/_internal/distributions/installed.py +3 -2
  273. package/xll/python/Lib/site-packages/pip/_internal/distributions/sdist.py +45 -20
  274. package/xll/python/Lib/site-packages/pip/_internal/distributions/wheel.py +3 -2
  275. package/xll/python/Lib/site-packages/pip/_internal/exceptions.py +174 -0
  276. package/xll/python/Lib/site-packages/pip/_internal/index/collector.py +70 -48
  277. package/xll/python/Lib/site-packages/pip/_internal/index/package_finder.py +46 -7
  278. package/xll/python/Lib/site-packages/pip/_internal/index/sources.py +1 -2
  279. package/xll/python/Lib/site-packages/pip/_internal/locations/_sysconfig.py +1 -1
  280. package/xll/python/Lib/site-packages/pip/_internal/locations/base.py +1 -1
  281. package/xll/python/Lib/site-packages/pip/_internal/metadata/base.py +10 -5
  282. package/xll/python/Lib/site-packages/pip/_internal/metadata/importlib/_dists.py +1 -1
  283. package/xll/python/Lib/site-packages/pip/_internal/metadata/importlib/_envs.py +8 -3
  284. package/xll/python/Lib/site-packages/pip/_internal/models/candidate.py +5 -1
  285. package/xll/python/Lib/site-packages/pip/_internal/models/link.py +53 -13
  286. package/xll/python/Lib/site-packages/pip/_internal/network/auth.py +38 -21
  287. package/xll/python/Lib/site-packages/pip/_internal/network/cache.py +2 -2
  288. package/xll/python/Lib/site-packages/pip/_internal/network/download.py +58 -11
  289. package/xll/python/Lib/site-packages/pip/_internal/network/session.py +35 -40
  290. package/xll/python/Lib/site-packages/pip/_internal/network/utils.py +109 -1
  291. package/xll/python/Lib/site-packages/pip/_internal/operations/check.py +2 -3
  292. package/xll/python/Lib/site-packages/pip/_internal/operations/install/wheel.py +23 -18
  293. package/xll/python/Lib/site-packages/pip/_internal/operations/prepare.py +152 -7
  294. package/xll/python/Lib/site-packages/pip/_internal/req/__init__.py +2 -0
  295. package/xll/python/Lib/site-packages/pip/_internal/req/constructors.py +54 -69
  296. package/xll/python/Lib/site-packages/pip/_internal/req/req_file.py +6 -6
  297. package/xll/python/Lib/site-packages/pip/_internal/req/req_install.py +25 -21
  298. package/xll/python/Lib/site-packages/pip/_internal/req/req_uninstall.py +13 -8
  299. package/xll/python/Lib/site-packages/pip/_internal/resolution/base.py +2 -2
  300. package/xll/python/Lib/site-packages/pip/_internal/resolution/legacy/resolver.py +2 -2
  301. package/xll/python/Lib/site-packages/pip/_internal/resolution/resolvelib/base.py +1 -1
  302. package/xll/python/Lib/site-packages/pip/_internal/resolution/resolvelib/candidates.py +0 -1
  303. package/xll/python/Lib/site-packages/pip/_internal/resolution/resolvelib/factory.py +39 -52
  304. package/xll/python/Lib/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py +3 -3
  305. package/xll/python/Lib/site-packages/pip/_internal/resolution/resolvelib/provider.py +3 -0
  306. package/xll/python/Lib/site-packages/pip/_internal/resolution/resolvelib/resolver.py +9 -0
  307. package/xll/python/Lib/site-packages/pip/_internal/utils/compat.py +15 -9
  308. package/xll/python/Lib/site-packages/pip/_internal/utils/deprecation.py +6 -1
  309. package/xll/python/Lib/site-packages/pip/_internal/utils/filesystem.py +2 -2
  310. package/xll/python/Lib/site-packages/pip/_internal/utils/logging.py +11 -3
  311. package/xll/python/Lib/site-packages/pip/_internal/utils/misc.py +48 -4
  312. package/xll/python/Lib/site-packages/pip/_internal/utils/pylock.py +18 -2
  313. package/xll/python/Lib/site-packages/pip/_internal/utils/retry.py +2 -1
  314. package/xll/python/Lib/site-packages/pip/_internal/utils/subprocess.py +4 -3
  315. package/xll/python/Lib/site-packages/pip/_internal/utils/temp_dir.py +1 -2
  316. package/xll/python/Lib/site-packages/pip/_internal/utils/unpacking.py +30 -4
  317. package/xll/python/Lib/site-packages/pip/_internal/utils/urls.py +5 -2
  318. package/xll/python/Lib/site-packages/pip/_internal/utils/virtualenv.py +2 -36
  319. package/xll/python/Lib/site-packages/pip/_internal/vcs/git.py +8 -5
  320. package/xll/python/Lib/site-packages/pip/_internal/vcs/versioncontrol.py +1 -2
  321. package/xll/python/Lib/site-packages/pip/_internal/wheel_builder.py +5 -1
  322. package/xll/python/Lib/site-packages/pip/_vendor/bom.cdx.json +231 -0
  323. package/xll/python/Lib/site-packages/pip/_vendor/certifi/__init__.py +1 -1
  324. package/xll/python/Lib/site-packages/pip/_vendor/certifi/cacert.pem +0 -631
  325. package/xll/python/Lib/site-packages/pip/_vendor/distlib/__init__.py +1 -1
  326. package/xll/python/Lib/site-packages/pip/_vendor/distlib/compat.py +34 -64
  327. package/xll/python/Lib/site-packages/pip/_vendor/distlib/resources.py +28 -14
  328. package/xll/python/Lib/site-packages/pip/_vendor/distlib/scripts.py +7 -3
  329. package/xll/python/Lib/site-packages/pip/_vendor/distlib/util.py +48 -11
  330. package/xll/python/Lib/site-packages/pip/_vendor/idna/LICENSE.md +1 -1
  331. package/xll/python/Lib/site-packages/pip/_vendor/idna/__main__.py +6 -0
  332. package/xll/python/Lib/site-packages/pip/_vendor/idna/cli.py +128 -0
  333. package/xll/python/Lib/site-packages/pip/_vendor/idna/codec.py +50 -13
  334. package/xll/python/Lib/site-packages/pip/_vendor/idna/compat.py +26 -0
  335. package/xll/python/Lib/site-packages/pip/_vendor/idna/core.py +352 -141
  336. package/xll/python/Lib/site-packages/pip/_vendor/idna/idnadata.py +571 -2983
  337. package/xll/python/Lib/site-packages/pip/_vendor/idna/intranges.py +5 -7
  338. package/xll/python/Lib/site-packages/pip/_vendor/idna/package_data.py +1 -1
  339. package/xll/python/Lib/site-packages/pip/_vendor/idna/uts46data.py +16887 -8832
  340. package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/__init__.py +352 -66
  341. package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/__main__.py +11 -0
  342. package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/_xdg.py +171 -0
  343. package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/android.py +92 -41
  344. package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/api.py +213 -49
  345. package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/macos.py +128 -51
  346. package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/unix.py +176 -127
  347. package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/version.py +8 -18
  348. package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/windows.py +185 -68
  349. package/xll/python/Lib/site-packages/pip/_vendor/pygments/__init__.py +2 -2
  350. package/xll/python/Lib/site-packages/pip/_vendor/pygments/__main__.py +1 -1
  351. package/xll/python/Lib/site-packages/pip/_vendor/pygments/console.py +1 -1
  352. package/xll/python/Lib/site-packages/pip/_vendor/pygments/filter.py +1 -1
  353. package/xll/python/Lib/site-packages/pip/_vendor/pygments/filters/__init__.py +10 -8
  354. package/xll/python/Lib/site-packages/pip/_vendor/pygments/formatter.py +1 -1
  355. package/xll/python/Lib/site-packages/pip/_vendor/pygments/formatters/__init__.py +1 -1
  356. package/xll/python/Lib/site-packages/pip/_vendor/pygments/lexer.py +7 -5
  357. package/xll/python/Lib/site-packages/pip/_vendor/pygments/lexers/__init__.py +1 -1
  358. package/xll/python/Lib/site-packages/pip/_vendor/pygments/lexers/_mapping.py +9 -8
  359. package/xll/python/Lib/site-packages/pip/_vendor/pygments/lexers/python.py +35 -32
  360. package/xll/python/Lib/site-packages/pip/_vendor/pygments/modeline.py +1 -1
  361. package/xll/python/Lib/site-packages/pip/_vendor/pygments/plugin.py +3 -1
  362. package/xll/python/Lib/site-packages/pip/_vendor/pygments/regexopt.py +13 -2
  363. package/xll/python/Lib/site-packages/pip/_vendor/pygments/scanner.py +1 -1
  364. package/xll/python/Lib/site-packages/pip/_vendor/pygments/sphinxext.py +1 -1
  365. package/xll/python/Lib/site-packages/pip/_vendor/pygments/style.py +1 -1
  366. package/xll/python/Lib/site-packages/pip/_vendor/pygments/styles/__init__.py +1 -1
  367. package/xll/python/Lib/site-packages/pip/_vendor/pygments/token.py +1 -1
  368. package/xll/python/Lib/site-packages/pip/_vendor/pygments/unistring.py +1 -1
  369. package/xll/python/Lib/site-packages/pip/_vendor/pygments/util.py +2 -2
  370. package/xll/python/Lib/site-packages/pip/_vendor/requests/__init__.py +52 -16
  371. package/xll/python/Lib/site-packages/pip/_vendor/requests/__version__.py +2 -2
  372. package/xll/python/Lib/site-packages/pip/_vendor/requests/_internal_utils.py +2 -2
  373. package/xll/python/Lib/site-packages/pip/_vendor/requests/_types.py +183 -0
  374. package/xll/python/Lib/site-packages/pip/_vendor/requests/adapters.py +101 -50
  375. package/xll/python/Lib/site-packages/pip/_vendor/requests/api.py +31 -8
  376. package/xll/python/Lib/site-packages/pip/_vendor/requests/auth.py +80 -40
  377. package/xll/python/Lib/site-packages/pip/_vendor/requests/compat.py +9 -3
  378. package/xll/python/Lib/site-packages/pip/_vendor/requests/cookies.py +143 -79
  379. package/xll/python/Lib/site-packages/pip/_vendor/requests/exceptions.py +15 -5
  380. package/xll/python/Lib/site-packages/pip/_vendor/requests/help.py +13 -10
  381. package/xll/python/Lib/site-packages/pip/_vendor/requests/hooks.py +23 -9
  382. package/xll/python/Lib/site-packages/pip/_vendor/requests/models.py +265 -126
  383. package/xll/python/Lib/site-packages/pip/_vendor/requests/py.typed +0 -0
  384. package/xll/python/Lib/site-packages/pip/_vendor/requests/sessions.py +164 -78
  385. package/xll/python/Lib/site-packages/pip/_vendor/requests/status_codes.py +2 -2
  386. package/xll/python/Lib/site-packages/pip/_vendor/requests/structures.py +51 -20
  387. package/xll/python/Lib/site-packages/pip/_vendor/requests/utils.py +161 -89
  388. package/xll/python/Lib/site-packages/pip/_vendor/tomli/__init__.py +1 -1
  389. package/xll/python/Lib/site-packages/pip/_vendor/tomli/_parser.py +9 -4
  390. package/xll/python/Lib/site-packages/pip/_vendor/tomli/_re.py +13 -9
  391. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/_base_connection.py +3 -1
  392. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/_collections.py +0 -1
  393. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/_version.py +8 -18
  394. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/connection.py +4 -4
  395. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/connectionpool.py +23 -10
  396. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/contrib/emscripten/response.py +5 -1
  397. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py +7 -8
  398. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/contrib/socks.py +1 -1
  399. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/exceptions.py +2 -2
  400. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/fields.py +14 -14
  401. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/poolmanager.py +8 -6
  402. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/response.py +35 -22
  403. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/util/retry.py +8 -0
  404. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/util/ssl_.py +11 -61
  405. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py +5 -11
  406. package/xll/python/Lib/site-packages/pip/_vendor/vendor.txt +8 -8
  407. package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/METADATA +3 -2
  408. package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/RECORD +208 -188
  409. package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/AUTHORS.txt +20 -0
  410. package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/idna/LICENSE.md +1 -1
  411. package/xll/python/Lib/site-packages/pywin32-311.dist-info/RECORD +2 -2
  412. package/xll/python/Scripts/httpx.exe +0 -0
  413. package/xll/python/Scripts/idna.exe +0 -0
  414. package/xll/python/Scripts/pip.exe +0 -0
  415. package/xll/python/Scripts/pip3.13.exe +0 -0
  416. package/xll/python/Scripts/pip3.exe +0 -0
  417. package/xll/python/Scripts/pywin32_postinstall.exe +0 -0
  418. package/xll/python/Scripts/pywin32_testall.exe +0 -0
  419. package/dist/app/collab/awareness.d.ts +0 -32
  420. package/dist/app/collab/awareness.js +0 -52
  421. package/dist/app/collab/collab-client.d.ts +0 -37
  422. package/dist/app/collab/collab-client.js +0 -208
  423. package/dist/app/collab/collab-manager.d.ts +0 -91
  424. package/dist/app/collab/collab-manager.js +0 -218
  425. package/dist/app/collab/collab-sync.d.ts +0 -62
  426. package/dist/app/collab/collab-sync.js +0 -215
  427. package/dist/app/collab/index.d.ts +0 -9
  428. package/dist/app/collab/index.js +0 -6
  429. package/dist/app/collab/super-fight.d.ts +0 -90
  430. package/dist/app/collab/super-fight.js +0 -310
  431. package/dist/app/collab/sync-bridge.d.ts +0 -35
  432. package/dist/app/collab/sync-bridge.js +0 -109
  433. package/dist/app/collab/types.d.ts +0 -75
  434. package/dist/app/collab/types.js +0 -5
  435. package/dist/embedded-agent/ai-content.d.ts +0 -52
  436. package/dist/embedded-agent/ai-content.js +0 -101
  437. package/dist/embedded-agent/host-tools/shared/llm-stream.d.ts +0 -31
  438. package/dist/embedded-agent/host-tools/shared/llm-stream.js +0 -136
  439. package/dist/embedded-agent/model-call-orchestrator.d.ts +0 -22
  440. package/dist/embedded-agent/model-call-orchestrator.js +0 -22
  441. package/dist/embedded-agent/stream-errors.d.ts +0 -10
  442. package/dist/embedded-agent/stream-errors.js +0 -73
  443. package/dist/embedded-agent/stream-message-state.d.ts +0 -14
  444. package/dist/embedded-agent/stream-message-state.js +0 -271
  445. package/dist/embedded-agent/stream-sse.d.ts +0 -78
  446. package/dist/embedded-agent/stream-sse.js +0 -73
  447. package/dist/shell/approvals/task-spawn-approval.d.ts +0 -20
  448. package/dist/shell/approvals/task-spawn-approval.js +0 -93
  449. package/dist/shell/interactive/collab-command.d.ts +0 -9
  450. package/dist/shell/interactive/collab-command.js +0 -115
  451. package/dist/shell/interactive/super-fight-ui.d.ts +0 -80
  452. package/dist/shell/interactive/super-fight-ui.js +0 -484
  453. package/dist/shell/status/collab-status.d.ts +0 -18
  454. package/dist/shell/status/collab-status.js +0 -46
  455. package/xll/python/Lib/site-packages/pip/_internal/build_env.py +0 -606
  456. /package/dist/{tui → autocomplete}/skill-autocomplete.js +0 -0
  457. /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/INSTALLER +0 -0
  458. /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/REQUESTED +0 -0
  459. /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/WHEEL +0 -0
  460. /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/entry_points.txt +0 -0
  461. /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/LICENSE.txt +0 -0
  462. /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/cachecontrol/LICENSE.txt +0 -0
  463. /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/certifi/LICENSE +0 -0
  464. /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/distlib/LICENSE.txt +0 -0
  465. /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/distro/LICENSE +0 -0
  466. /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/msgpack/COPYING +0 -0
  467. /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/packaging/LICENSE +0 -0
  468. /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/packaging/LICENSE.APACHE +0 -0
  469. /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/packaging/LICENSE.BSD +0 -0
  470. /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/pkg_resources/LICENSE +0 -0
  471. /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/platformdirs/LICENSE +0 -0
  472. /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/pygments/LICENSE +0 -0
  473. /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/pyproject_hooks/LICENSE +0 -0
  474. /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/requests/LICENSE +0 -0
  475. /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/resolvelib/LICENSE +0 -0
  476. /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/rich/LICENSE +0 -0
  477. /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/tomli/LICENSE +0 -0
  478. /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/tomli_w/LICENSE +0 -0
  479. /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/truststore/LICENSE +0 -0
  480. /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/urllib3/LICENSE.txt +0 -0
@@ -73,8 +73,9 @@ def main(args: list[str] | None = None) -> int:
73
73
  sys.stderr.write(os.linesep)
74
74
  sys.exit(1)
75
75
 
76
- # Needed for locale.getpreferredencoding(False) to work
76
+ # Needed for locale encoding detection to work
77
77
  # in pip._internal.utils.encoding.auto_decode
78
+ # TODO: Re-evaluate whether this is still needed once pip drops Python 3.10.
78
79
  try:
79
80
  locale.setlocale(locale.LC_ALL, "")
80
81
  except locale.Error as e:
@@ -8,12 +8,11 @@ import sys
8
8
 
9
9
  from pip._vendor.rich.markup import escape
10
10
 
11
- from pip._internal.build_env import get_runnable_pip
12
11
  from pip._internal.cli import cmdoptions
13
12
  from pip._internal.cli.parser import ConfigOptionParser, UpdatingDefaultsHelpFormatter
14
13
  from pip._internal.commands import commands_dict, get_similar_commands
15
14
  from pip._internal.exceptions import CommandError
16
- from pip._internal.utils.misc import get_pip_version, get_prog
15
+ from pip._internal.utils.misc import get_pip_version, get_prog, get_runnable_pip
17
16
 
18
17
  __all__ = ["create_main_parser", "parse_command"]
19
18
 
@@ -344,7 +344,7 @@ class ConfigOptionParser(CustomOptionParser):
344
344
  self.print_usage(sys.stderr)
345
345
  self.exit(UNKNOWN_ERROR, f"{msg}\n")
346
346
 
347
- def print_help(self, file: Any = None) -> None:
347
+ def _create_console_for_help(self, file: Any = None) -> PipConsole:
348
348
  # This is unfortunate but necessary since arguments may have not been
349
349
  # parsed yet at this point, so detect --no-color manually.
350
350
  no_color = (
@@ -352,7 +352,15 @@ class ConfigOptionParser(CustomOptionParser):
352
352
  or bool(strtobool(os.environ.get("PIP_NO_COLOR", "no") or "no"))
353
353
  or "NO_COLOR" in os.environ
354
354
  )
355
- console = PipConsole(
355
+ return PipConsole(
356
356
  theme=Theme(PrettyHelpFormatter.styles), no_color=no_color, file=file
357
357
  )
358
+
359
+ def print_usage(self, file: Any = None) -> None:
360
+ if self.usage:
361
+ console = self._create_console_for_help(file)
362
+ console.print(self.get_usage(), highlight=False)
363
+
364
+ def print_help(self, file: Any = None) -> None:
365
+ console = self._create_console_for_help(file)
358
366
  console.print(self.format_help().rstrip(), highlight=False)
@@ -2,8 +2,8 @@ from __future__ import annotations
2
2
 
3
3
  import functools
4
4
  import sys
5
- from collections.abc import Generator, Iterable, Iterator
6
- from typing import TYPE_CHECKING, Callable, Literal, TypeVar
5
+ from collections.abc import Callable, Generator, Iterable, Iterator
6
+ from typing import TYPE_CHECKING, Literal, TypeVar
7
7
 
8
8
  from pip._vendor.rich.progress import (
9
9
  BarColumn,
@@ -9,12 +9,14 @@ from __future__ import annotations
9
9
 
10
10
  import logging
11
11
  import os
12
+ from collections.abc import Callable
12
13
  from functools import partial
13
14
  from optparse import Values
14
- from typing import Any, Callable, TypeVar
15
+ from typing import Any, TypeVar
15
16
 
16
17
  from pip._internal.build_env import (
17
18
  BuildEnvironmentInstaller,
19
+ BuildIsolationMode,
18
20
  InprocessBuildEnvironmentInstaller,
19
21
  SubprocessBuildEnvironmentInstaller,
20
22
  )
@@ -61,11 +63,14 @@ from pip._internal.utils.temp_dir import (
61
63
  logger = logging.getLogger(__name__)
62
64
 
63
65
 
64
- def should_ignore_regular_constraints(options: Values) -> bool:
66
+ def should_ignore_regular_constraints() -> bool:
65
67
  """
66
- Check if regular constraints should be ignored because
67
- we are in a isolated build process and build constraints
68
- feature is enabled but no build constraints were passed.
68
+ Whether this process should ignore the regular constraints it inherits.
69
+
70
+ The parent pip sets ``_PIP_IN_BUILD_IGNORE_CONSTRAINTS`` whenever it starts
71
+ an isolated build in a subprocess, so that regular constraints the build
72
+ inherits (such as via ``PIP_CONSTRAINT`` or config files) do not affect it.
73
+ Only build constraints apply there.
69
74
  """
70
75
 
71
76
  return os.environ.get("_PIP_IN_BUILD_IGNORE_CONSTRAINTS") == "1"
@@ -157,6 +162,8 @@ class RequirementCommand(IndexGroupCommand):
157
162
  build_tracker: BuildTracker,
158
163
  session: PipSession,
159
164
  finder: PackageFinder,
165
+ *,
166
+ allow_editables: bool,
160
167
  use_user_site: bool,
161
168
  download_dir: str | None = None,
162
169
  verbosity: int = 0,
@@ -189,9 +196,6 @@ class RequirementCommand(IndexGroupCommand):
189
196
 
190
197
  # Handle build constraints
191
198
  build_constraints = getattr(options, "build_constraints", [])
192
- build_constraint_feature_enabled = (
193
- "build-constraint" in options.features_enabled
194
- )
195
199
 
196
200
  env_installer: BuildEnvironmentInstaller
197
201
  if "inprocess-build-deps" in options.features_enabled:
@@ -209,14 +213,26 @@ class RequirementCommand(IndexGroupCommand):
209
213
  env_installer = SubprocessBuildEnvironmentInstaller(
210
214
  finder,
211
215
  build_constraints=build_constraints,
212
- build_constraint_feature_enabled=build_constraint_feature_enabled,
213
216
  )
214
217
 
218
+ if not options.build_isolation:
219
+ build_isolation: BuildIsolationMode = "off"
220
+ elif "venv-isolation" in options.features_enabled:
221
+ build_isolation = "venv"
222
+ if "inprocess-build-deps" in options.features_enabled:
223
+ logger.warning(
224
+ "Using --use-feature 'inprocess-build-deps' and 'venv-isolation'"
225
+ " together is currently partially supported. If you encounter"
226
+ " broken behaviour, use only one feature."
227
+ )
228
+ else:
229
+ build_isolation = "virtual"
230
+
215
231
  return RequirementPreparer(
216
232
  build_dir=temp_build_dir_path,
217
233
  src_dir=options.src_dir,
218
234
  download_dir=download_dir,
219
- build_isolation=options.build_isolation,
235
+ build_isolation=build_isolation,
220
236
  build_isolation_installer=env_installer,
221
237
  check_build_deps=options.check_build_deps,
222
238
  build_tracker=build_tracker,
@@ -228,6 +244,7 @@ class RequirementCommand(IndexGroupCommand):
228
244
  lazy_wheel=lazy_wheel,
229
245
  verbosity=verbosity,
230
246
  legacy_resolver=legacy_resolver,
247
+ allow_editables=allow_editables,
231
248
  )
232
249
 
233
250
  @classmethod
@@ -265,6 +282,7 @@ class RequirementCommand(IndexGroupCommand):
265
282
  make_install_req=make_install_req,
266
283
  use_user_site=use_user_site,
267
284
  ignore_dependencies=options.ignore_dependencies,
285
+ only_dependencies=options.only_dependencies,
268
286
  ignore_installed=ignore_installed,
269
287
  ignore_requires_python=ignore_requires_python,
270
288
  force_reinstall=force_reinstall,
@@ -280,6 +298,7 @@ class RequirementCommand(IndexGroupCommand):
280
298
  make_install_req=make_install_req,
281
299
  use_user_site=use_user_site,
282
300
  ignore_dependencies=options.ignore_dependencies,
301
+ only_dependencies=options.only_dependencies,
283
302
  ignore_installed=ignore_installed,
284
303
  ignore_requires_python=ignore_requires_python,
285
304
  force_reinstall=force_reinstall,
@@ -299,11 +318,15 @@ class RequirementCommand(IndexGroupCommand):
299
318
  """
300
319
  requirements: list[InstallRequirement] = []
301
320
 
302
- if not should_ignore_regular_constraints(options):
303
- constraints = parse_constraint_files(
304
- options.constraints, finder, options, session
305
- )
306
- requirements.extend(constraints)
321
+ if should_ignore_regular_constraints():
322
+ # Inside an isolated build subprocess: apply the build constraints
323
+ # (forwarded via --build-constraint) instead of the inherited ones.
324
+ constraint_files = getattr(options, "build_constraints", [])
325
+ else:
326
+ constraint_files = options.constraints
327
+
328
+ constraints = parse_constraint_files(constraint_files, finder, options, session)
329
+ requirements.extend(constraints)
307
330
 
308
331
  for req in args:
309
332
  if not req.strip():
@@ -347,15 +370,15 @@ class RequirementCommand(IndexGroupCommand):
347
370
  for package, package_dist in select_from_pylock_path_or_url(
348
371
  filename, session=session
349
372
  ):
350
- requirements.append(
351
- install_req_from_pylock_package(
352
- package,
353
- package_dist,
354
- filename,
355
- options.format_control,
356
- user_supplied=True,
357
- )
373
+ req_to_add, locked_link = install_req_from_pylock_package(
374
+ package,
375
+ package_dist,
376
+ filename,
377
+ user_supplied=True,
358
378
  )
379
+ requirements.append(req_to_add)
380
+ if locked_link:
381
+ finder.add_locked_link(package.name, locked_link)
359
382
  continue
360
383
  for parsed_req in parse_requirements(
361
384
  filename, finder=finder, options=options, session=session
@@ -404,8 +427,17 @@ class RequirementCommand(IndexGroupCommand):
404
427
  )
405
428
  requirements.append(req_to_add)
406
429
 
407
- # If any requirement has hash options, enable hash checking.
408
- if any(req.has_hash_options for req in requirements):
430
+ if options.require_hashes and options.no_require_hashes:
431
+ raise CommandError(
432
+ "--require-hashes and --no-require-hashes are mutually exclusive"
433
+ )
434
+
435
+ # If any requirement has hash options, enable hash checking for all
436
+ # requirements, unless this mechanism has been explicitly disabled
437
+ # with --no-require-hashes.
438
+ if not options.no_require_hashes and any(
439
+ req.has_hash_options for req in requirements
440
+ ):
409
441
  options.require_hashes = True
410
442
 
411
443
  if not (
@@ -4,3 +4,4 @@ UNKNOWN_ERROR = 2
4
4
  VIRTUALENV_NOT_FOUND = 3
5
5
  PREVIOUS_BUILD_DIR_ERROR = 4
6
6
  NO_MATCHES_FOUND = 23
7
+ BROKEN_STDOUT = 120
@@ -1,7 +1,7 @@
1
1
  import os
2
2
  import textwrap
3
+ from collections.abc import Callable
3
4
  from optparse import Values
4
- from typing import Callable
5
5
 
6
6
  from pip._internal.cli.base_command import Command
7
7
  from pip._internal.cli.status_codes import ERROR, SUCCESS
@@ -107,8 +107,7 @@ class CacheCommand(Command):
107
107
  wheels_cache_size = filesystem.format_directory_size(wheels_cache_location)
108
108
 
109
109
  message = (
110
- textwrap.dedent(
111
- """
110
+ textwrap.dedent("""
112
111
  Package index page cache location (pip v23.3+): {http_cache_location}
113
112
  Package index page cache location (older pips): {old_http_cache_location}
114
113
  Package index page cache size: {http_cache_size}
@@ -116,8 +115,7 @@ class CacheCommand(Command):
116
115
  Locally built wheels location: {wheels_cache_location}
117
116
  Locally built wheels size: {wheels_cache_size}
118
117
  Number of locally built wheels: {package_count}
119
- """ # noqa: E501
120
- )
118
+ """) # noqa: E501
121
119
  .format(
122
120
  http_cache_location=http_cache_location,
123
121
  old_http_cache_location=old_http_cache_location,
@@ -191,10 +189,13 @@ class CacheCommand(Command):
191
189
  logger.verbose("Removed %s", filename)
192
190
 
193
191
  http_dirs = filesystem.subdirs_without_files(self._cache_dir(options, "http"))
192
+ http_v2_dirs = filesystem.subdirs_without_files(
193
+ self._cache_dir(options, "http-v2")
194
+ )
194
195
  wheel_dirs = filesystem.subdirs_without_wheels(
195
196
  self._cache_dir(options, "wheels")
196
197
  )
197
- dirs = [*http_dirs, *wheel_dirs]
198
+ dirs = [*http_dirs, *http_v2_dirs, *wheel_dirs]
198
199
 
199
200
  for subdir in dirs:
200
201
  try:
@@ -3,8 +3,9 @@ from __future__ import annotations
3
3
  import logging
4
4
  import os
5
5
  import subprocess
6
+ from collections.abc import Callable
6
7
  from optparse import Values
7
- from typing import Any, Callable
8
+ from typing import Any
8
9
 
9
10
  from pip._internal.cli.base_command import Command
10
11
  from pip._internal.cli.status_codes import ERROR, SUCCESS
@@ -1,6 +1,5 @@
1
1
  from __future__ import annotations
2
2
 
3
- import locale
4
3
  import logging
5
4
  import os
6
5
  import sys
@@ -18,7 +17,7 @@ from pip._internal.cli.cmdoptions import make_target_python
18
17
  from pip._internal.cli.status_codes import SUCCESS
19
18
  from pip._internal.configuration import Configuration
20
19
  from pip._internal.metadata import get_environment
21
- from pip._internal.utils.compat import open_text_resource
20
+ from pip._internal.utils.compat import get_locale_encoding, open_text_resource
22
21
  from pip._internal.utils.logging import indent_log
23
22
  from pip._internal.utils.misc import get_pip_version
24
23
 
@@ -134,7 +133,7 @@ def show_tags(options: Values) -> None:
134
133
 
135
134
 
136
135
  def ca_bundle_info(config: Configuration) -> str:
137
- levels = {key.split(".", 1)[0] for key, _ in config.items()}
136
+ levels = {key.split(".", 1)[0] for _, options in config.items() for key in options}
138
137
  if not levels:
139
138
  return "Not specified"
140
139
 
@@ -177,8 +176,8 @@ class DebugCommand(Command):
177
176
  show_value("sys.getdefaultencoding", sys.getdefaultencoding())
178
177
  show_value("sys.getfilesystemencoding", sys.getfilesystemencoding())
179
178
  show_value(
180
- "locale.getpreferredencoding",
181
- locale.getpreferredencoding(),
179
+ "locale.getencoding",
180
+ get_locale_encoding(),
182
181
  )
183
182
  show_value("sys.platform", sys.platform)
184
183
  show_sys_implementation()
@@ -39,8 +39,10 @@ class DownloadCommand(RequirementCommand):
39
39
  self.cmd_opts.add_option(cmdoptions.requirements())
40
40
  self.cmd_opts.add_option(cmdoptions.requirements_from_scripts())
41
41
  self.cmd_opts.add_option(cmdoptions.no_deps())
42
+ self.cmd_opts.add_option(cmdoptions.only_deps())
42
43
  self.cmd_opts.add_option(cmdoptions.src())
43
44
  self.cmd_opts.add_option(cmdoptions.require_hashes())
45
+ self.cmd_opts.add_option(cmdoptions.no_require_hashes())
44
46
  self.cmd_opts.add_option(cmdoptions.progress_bar())
45
47
  self.cmd_opts.add_option(cmdoptions.no_build_isolation())
46
48
  self.cmd_opts.add_option(cmdoptions.use_pep517())
@@ -84,6 +86,7 @@ class DownloadCommand(RequirementCommand):
84
86
  cmdoptions.check_dist_restriction(options)
85
87
  cmdoptions.check_build_constraints(options)
86
88
  cmdoptions.check_release_control_exclusive(options)
89
+ cmdoptions.check_only_deps_option_does_not_conflict(options)
87
90
 
88
91
  options.download_dir = normalize_path(options.download_dir)
89
92
  ensure_dir(options.download_dir)
@@ -117,6 +120,7 @@ class DownloadCommand(RequirementCommand):
117
120
  download_dir=options.download_dir,
118
121
  use_user_site=False,
119
122
  verbosity=self.verbosity,
123
+ allow_editables=False,
120
124
  )
121
125
 
122
126
  resolver = self.make_resolver(
@@ -4,8 +4,8 @@ from optparse import Values
4
4
  from pip._internal.cli import cmdoptions
5
5
  from pip._internal.cli.base_command import Command
6
6
  from pip._internal.cli.status_codes import SUCCESS
7
+ from pip._internal.metadata.base import stdlib_pkgs
7
8
  from pip._internal.operations.freeze import freeze
8
- from pip._internal.utils.compat import stdlib_pkgs
9
9
 
10
10
 
11
11
  def _should_suppress_build_backends() -> bool:
@@ -2,9 +2,9 @@ from __future__ import annotations
2
2
 
3
3
  import json
4
4
  import logging
5
- from collections.abc import Iterable
5
+ from collections.abc import Callable, Iterable
6
6
  from optparse import Values
7
- from typing import Any, Callable
7
+ from typing import Any
8
8
 
9
9
  from pip._vendor.packaging.utils import canonicalize_name
10
10
  from pip._vendor.packaging.version import Version
@@ -16,7 +16,12 @@ from pip._internal.commands.search import (
16
16
  get_installed_distribution,
17
17
  print_dist_installation_info,
18
18
  )
19
- from pip._internal.exceptions import CommandError, DistributionNotFound, PipError
19
+ from pip._internal.exceptions import (
20
+ CommandError,
21
+ DiagnosticPipError,
22
+ DistributionNotFound,
23
+ PipError,
24
+ )
20
25
  from pip._internal.index.collector import LinkCollector
21
26
  from pip._internal.index.package_finder import PackageFinder
22
27
  from pip._internal.models.selection_prefs import SelectionPreferences
@@ -80,6 +85,8 @@ class IndexCommand(IndexGroupCommand):
80
85
  # Error handling happens here, not in the action-handlers.
81
86
  try:
82
87
  handler_map[action](options, args[1:])
88
+ except DiagnosticPipError:
89
+ raise
83
90
  except PipError as e:
84
91
  logger.error(e.args[0])
85
92
  return ERROR
@@ -10,7 +10,7 @@ from pip._internal.cli import cmdoptions
10
10
  from pip._internal.cli.base_command import Command
11
11
  from pip._internal.cli.status_codes import SUCCESS
12
12
  from pip._internal.metadata import BaseDistribution, get_environment
13
- from pip._internal.utils.compat import stdlib_pkgs
13
+ from pip._internal.metadata.base import stdlib_pkgs
14
14
  from pip._internal.utils.urls import path_to_url
15
15
 
16
16
  logger = logging.getLogger(__name__)
@@ -76,6 +76,7 @@ _MISSING_MODULES: set[str] = set()
76
76
  # after installation has started. Importing them eagerly keeps the audit
77
77
  # hook from misattributing them to a freshly installed distribution.
78
78
  _EAGER_IMPORTS: tuple[str, ...] = (
79
+ "pip._internal.operations.install.wheel",
79
80
  # Used by rich when emitting output to a legacy Windows console.
80
81
  "pip._vendor.rich._windows_renderer",
81
82
  )
@@ -165,6 +166,7 @@ class InstallCommand(RequirementCommand):
165
166
  self.cmd_opts.add_option(cmdoptions.build_constraints())
166
167
  self.cmd_opts.add_option(cmdoptions.requirements_from_scripts())
167
168
  self.cmd_opts.add_option(cmdoptions.no_deps())
169
+ self.cmd_opts.add_option(cmdoptions.only_deps())
168
170
 
169
171
  self.cmd_opts.add_option(cmdoptions.editable())
170
172
  self.cmd_opts.add_option(
@@ -321,6 +323,7 @@ class InstallCommand(RequirementCommand):
321
323
  help="Do not warn about broken dependencies",
322
324
  )
323
325
  self.cmd_opts.add_option(cmdoptions.require_hashes())
326
+ self.cmd_opts.add_option(cmdoptions.no_require_hashes())
324
327
  self.cmd_opts.add_option(cmdoptions.progress_bar())
325
328
  self.cmd_opts.add_option(cmdoptions.root_user_action())
326
329
 
@@ -391,6 +394,7 @@ class InstallCommand(RequirementCommand):
391
394
  if options.upgrade:
392
395
  upgrade_strategy = options.upgrade_strategy
393
396
 
397
+ cmdoptions.check_only_deps_option_does_not_conflict(options)
394
398
  cmdoptions.check_build_constraints(options)
395
399
  cmdoptions.check_dist_restriction(options, check_target=True)
396
400
  cmdoptions.check_release_control_exclusive(options)
@@ -446,12 +450,6 @@ class InstallCommand(RequirementCommand):
446
450
 
447
451
  wheel_cache = WheelCache(options.cache_dir)
448
452
 
449
- # Only when installing is it permitted to use PEP 660.
450
- # In other circumstances (pip wheel, pip download) we generate
451
- # regular (i.e. non editable) metadata and wheels.
452
- for req in reqs:
453
- req.permit_editable_wheels = True
454
-
455
453
  preparer = self.make_requirement_preparer(
456
454
  temp_build_dir=directory,
457
455
  options=options,
@@ -460,6 +458,7 @@ class InstallCommand(RequirementCommand):
460
458
  finder=finder,
461
459
  use_user_site=options.use_user_site,
462
460
  verbosity=self.verbosity,
461
+ allow_editables=True,
463
462
  )
464
463
  resolver = self.make_resolver(
465
464
  preparer=preparer,
@@ -525,6 +524,7 @@ class InstallCommand(RequirementCommand):
525
524
  reqs_to_build,
526
525
  wheel_cache=wheel_cache,
527
526
  verify=True,
527
+ allow_editables=True,
528
528
  )
529
529
 
530
530
  if build_failures:
@@ -16,8 +16,8 @@ from pip._internal.cli.index_command import IndexGroupCommand
16
16
  from pip._internal.cli.status_codes import SUCCESS
17
17
  from pip._internal.exceptions import CommandError
18
18
  from pip._internal.metadata import BaseDistribution, get_environment
19
+ from pip._internal.metadata.base import stdlib_pkgs
19
20
  from pip._internal.models.selection_prefs import SelectionPreferences
20
- from pip._internal.utils.compat import stdlib_pkgs
21
21
  from pip._internal.utils.misc import tabulate, write_output
22
22
 
23
23
  if TYPE_CHECKING:
@@ -160,11 +160,14 @@ class ListCommand(IndexGroupCommand):
160
160
  selection_prefs = SelectionPreferences(
161
161
  allow_yanked=False,
162
162
  release_control=options.release_control,
163
+ format_control=options.format_control,
164
+ prefer_binary=options.prefer_binary,
163
165
  )
164
166
 
165
167
  return PackageFinder.create(
166
168
  link_collector=link_collector,
167
169
  selection_prefs=selection_prefs,
170
+ uploaded_prior_to=options.uploaded_prior_to,
168
171
  )
169
172
 
170
173
  def run(self, options: Values, args: list[str]) -> int:
@@ -180,10 +183,6 @@ class ListCommand(IndexGroupCommand):
180
183
 
181
184
  cmdoptions.check_list_path_option(options)
182
185
 
183
- skip = set(stdlib_pkgs)
184
- if options.excludes:
185
- skip.update(canonicalize_name(n) for n in options.excludes)
186
-
187
186
  packages: _ProcessedDists = [
188
187
  cast("_DistWithLatestInfo", d)
189
188
  for d in get_environment(options.path).iter_installed_distributions(
@@ -191,7 +190,7 @@ class ListCommand(IndexGroupCommand):
191
190
  user_only=options.user,
192
191
  editables_only=options.editable,
193
192
  include_editables=options.include_editable,
194
- skip=skip,
193
+ skip=set(stdlib_pkgs),
195
194
  )
196
195
  ]
197
196
 
@@ -202,6 +201,12 @@ class ListCommand(IndexGroupCommand):
202
201
  if options.not_required:
203
202
  packages = self.get_not_required(packages, options)
204
203
 
204
+ if options.excludes:
205
+ excluded_names = {canonicalize_name(n) for n in options.excludes}
206
+ packages = [
207
+ dist for dist in packages if dist.canonical_name not in excluded_names
208
+ ]
209
+
205
210
  if options.outdated:
206
211
  packages = self.get_outdated(packages, options)
207
212
  elif options.uptodate:
@@ -62,6 +62,7 @@ class LockCommand(RequirementCommand):
62
62
  self.cmd_opts.add_option(cmdoptions.constraints())
63
63
  self.cmd_opts.add_option(cmdoptions.build_constraints())
64
64
  self.cmd_opts.add_option(cmdoptions.no_deps())
65
+ self.cmd_opts.add_option(cmdoptions.only_deps())
65
66
 
66
67
  self.cmd_opts.add_option(cmdoptions.editable())
67
68
 
@@ -75,6 +76,7 @@ class LockCommand(RequirementCommand):
75
76
  self.cmd_opts.add_option(cmdoptions.config_settings())
76
77
 
77
78
  self.cmd_opts.add_option(cmdoptions.require_hashes())
79
+ self.cmd_opts.add_option(cmdoptions.no_require_hashes())
78
80
  self.cmd_opts.add_option(cmdoptions.progress_bar())
79
81
 
80
82
  index_opts = cmdoptions.make_option_group(
@@ -103,6 +105,7 @@ class LockCommand(RequirementCommand):
103
105
 
104
106
  cmdoptions.check_build_constraints(options)
105
107
  cmdoptions.check_release_control_exclusive(options)
108
+ cmdoptions.check_only_deps_option_does_not_conflict(options)
106
109
 
107
110
  session = self.get_default_session(options)
108
111
 
@@ -123,12 +126,6 @@ class LockCommand(RequirementCommand):
123
126
 
124
127
  wheel_cache = WheelCache(options.cache_dir)
125
128
 
126
- # Only when installing is it permitted to use PEP 660.
127
- # In other circumstances (pip wheel, pip download) we generate
128
- # regular (i.e. non editable) metadata and wheels.
129
- for req in reqs:
130
- req.permit_editable_wheels = True
131
-
132
129
  preparer = self.make_requirement_preparer(
133
130
  temp_build_dir=directory,
134
131
  options=options,
@@ -137,6 +134,7 @@ class LockCommand(RequirementCommand):
137
134
  finder=finder,
138
135
  use_user_site=False,
139
136
  verbosity=self.verbosity,
137
+ allow_editables=True,
140
138
  )
141
139
  resolver = self.make_resolver(
142
140
  preparer=preparer,
@@ -53,7 +53,7 @@ class ShowCommand(Command):
53
53
  return ERROR
54
54
  query = args
55
55
 
56
- results = search_packages_info(query)
56
+ results = search_packages_info(query, include_files=options.files)
57
57
  if not print_results(
58
58
  results, list_files=options.files, verbose=options.verbose
59
59
  ):
@@ -82,7 +82,10 @@ class _PackageInfo(NamedTuple):
82
82
  files: list[str] | None
83
83
 
84
84
 
85
- def search_packages_info(query: list[str]) -> Generator[_PackageInfo, None, None]:
85
+ def search_packages_info(
86
+ query: list[str],
87
+ include_files: bool,
88
+ ) -> Generator[_PackageInfo, None, None]:
86
89
  """
87
90
  Gather details from installed distributions. Print distribution name,
88
91
  version, location, and installed files. Installed files requires a
@@ -133,11 +136,11 @@ def search_packages_info(query: list[str]) -> Generator[_PackageInfo, None, None
133
136
  except FileNotFoundError:
134
137
  entry_points = []
135
138
 
136
- files_iter = dist.iter_declared_entries()
137
- if files_iter is None:
138
- files: list[str] | None = None
139
- else:
140
- files = sorted(files_iter)
139
+ files: list[str] | None = None
140
+ if include_files:
141
+ files_iter = dist.iter_declared_entries()
142
+ if files_iter is not None:
143
+ files = sorted(files_iter)
141
144
 
142
145
  metadata = dist.metadata
143
146
 
@@ -189,7 +192,10 @@ def print_results(
189
192
  if i > 0:
190
193
  write_output("---")
191
194
 
192
- metadata_version_tuple = tuple(map(int, dist.metadata_version.split(".")))
195
+ metadata_version = dist.metadata_version
196
+ metadata_version_tuple = (
197
+ tuple(map(int, metadata_version.split("."))) if metadata_version else ()
198
+ )
193
199
 
194
200
  write_output("Name: %s", dist.name)
195
201
  write_output("Version: %s", dist.version)