comate-cli 0.4.8__tar.gz → 0.5.0__tar.gz

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 (130) hide show
  1. {comate_cli-0.4.8 → comate_cli-0.5.0}/.gitignore +1 -0
  2. {comate_cli-0.4.8 → comate_cli-0.5.0}/PKG-INFO +1 -1
  3. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/tui.py +31 -4
  4. {comate_cli-0.4.8 → comate_cli-0.5.0}/pyproject.toml +1 -1
  5. {comate_cli-0.4.8 → comate_cli-0.5.0}/uv.lock +25 -2
  6. {comate_cli-0.4.8 → comate_cli-0.5.0}/README.md +0 -0
  7. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/__init__.py +0 -0
  8. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/__main__.py +0 -0
  9. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/main.py +0 -0
  10. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/mcp_cli.py +0 -0
  11. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/__init__.py +0 -0
  12. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/animations.py +0 -0
  13. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/app.py +0 -0
  14. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/assistant_render.py +0 -0
  15. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/codenames.py +0 -0
  16. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/custom_slash_commands.py +0 -0
  17. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/env_utils.py +0 -0
  18. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/error_display.py +0 -0
  19. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/event_renderer.py +0 -0
  20. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/fragment_utils.py +0 -0
  21. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/history_printer.py +0 -0
  22. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/input_geometry.py +0 -0
  23. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/layout_coordinator.py +0 -0
  24. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/logging_adapter.py +0 -0
  25. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/logo.py +0 -0
  26. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/markdown_render.py +0 -0
  27. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/mention_completer.py +0 -0
  28. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/message_style.py +0 -0
  29. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/models.py +0 -0
  30. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/path_context_hint.py +0 -0
  31. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/plugins/__init__.py +0 -0
  32. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/plugins/components/__init__.py +0 -0
  33. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/plugins/components/detail_view.py +0 -0
  34. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/plugins/components/plugin_list.py +0 -0
  35. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/plugins/components/search_box.py +0 -0
  36. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/plugins/components/tab_bar.py +0 -0
  37. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/plugins/marketplace_install_view.py +0 -0
  38. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/plugins/plugin_picker.py +0 -0
  39. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/plugins/tabs/__init__.py +0 -0
  40. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/plugins/tabs/discover_tab.py +0 -0
  41. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/plugins/tabs/errors_tab.py +0 -0
  42. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/plugins/tabs/installed_tab.py +0 -0
  43. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/plugins/tabs/marketplaces_tab.py +0 -0
  44. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/preflight.py +0 -0
  45. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/question_view.py +0 -0
  46. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/resume_selector.py +0 -0
  47. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/rewind_store.py +0 -0
  48. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/rpc_protocol.py +0 -0
  49. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/rpc_stdio.py +0 -0
  50. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/selection_menu.py +0 -0
  51. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/session_view.py +0 -0
  52. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/slash_commands.py +0 -0
  53. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/startup.py +0 -0
  54. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/status_bar.py +0 -0
  55. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/text_effects.py +0 -0
  56. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/tips.py +0 -0
  57. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/tool_view.py +0 -0
  58. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/tui_parts/__init__.py +0 -0
  59. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/tui_parts/commands.py +0 -0
  60. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/tui_parts/history_sync.py +0 -0
  61. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/tui_parts/input_behavior.py +0 -0
  62. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/tui_parts/key_bindings.py +0 -0
  63. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/tui_parts/mcp_connecting_view.py +0 -0
  64. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/tui_parts/render_panels.py +0 -0
  65. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/tui_parts/slash_command_registry.py +0 -0
  66. {comate_cli-0.4.8 → comate_cli-0.5.0}/comate_cli/terminal_agent/tui_parts/ui_mode.py +0 -0
  67. {comate_cli-0.4.8 → comate_cli-0.5.0}/docs/superpowers/plans/2026-04-03-phrase-shuffle.md +0 -0
  68. {comate_cli-0.4.8 → comate_cli-0.5.0}/docs/superpowers/specs/2026-04-01-conditional-diff-subtitle-design.md +0 -0
  69. {comate_cli-0.4.8 → comate_cli-0.5.0}/docs/superpowers/specs/2026-04-03-phrase-shuffle-design.md +0 -0
  70. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/conftest.py +0 -0
  71. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_animator_shuffle.py +0 -0
  72. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_app_mcp_preload.py +0 -0
  73. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_app_preflight_gate.py +0 -0
  74. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_app_print_mode.py +0 -0
  75. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_app_shutdown.py +0 -0
  76. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_app_usage_line.py +0 -0
  77. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_cli_project_root.py +0 -0
  78. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_compact_command_semantics.py +0 -0
  79. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_completion_context_activation.py +0 -0
  80. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_completion_status_panel.py +0 -0
  81. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_context_command.py +0 -0
  82. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_custom_slash_commands.py +0 -0
  83. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_discover_tab.py +0 -0
  84. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_errors_tab.py +0 -0
  85. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_event_renderer.py +0 -0
  86. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_format_error.py +0 -0
  87. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_handle_error.py +0 -0
  88. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_history_printer.py +0 -0
  89. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_history_sync.py +0 -0
  90. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_input_behavior.py +0 -0
  91. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_input_history.py +0 -0
  92. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_installed_tab.py +0 -0
  93. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_interrupt_exit_semantics.py +0 -0
  94. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_layout_coordinator.py +0 -0
  95. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_logging_adapter.py +0 -0
  96. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_logo.py +0 -0
  97. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_main_args.py +0 -0
  98. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_marketplaces_tab.py +0 -0
  99. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_mcp_cli.py +0 -0
  100. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_mcp_slash_command.py +0 -0
  101. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_mention_completer.py +0 -0
  102. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_path_context_hint.py +0 -0
  103. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_plugin_slash_commands.py +0 -0
  104. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_plugin_tui_components.py +0 -0
  105. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_preflight.py +0 -0
  106. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_preflight_copilot.py +0 -0
  107. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_question_key_bindings.py +0 -0
  108. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_question_view.py +0 -0
  109. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_resume_selector.py +0 -0
  110. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_rewind_command_semantics.py +0 -0
  111. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_rewind_store.py +0 -0
  112. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_rpc_protocol.py +0 -0
  113. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_rpc_stdio_bridge.py +0 -0
  114. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_selection_menu.py +0 -0
  115. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_skills_slash_command.py +0 -0
  116. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_slash_argument_hint.py +0 -0
  117. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_slash_completer.py +0 -0
  118. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_slash_registry.py +0 -0
  119. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_status_bar.py +0 -0
  120. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_status_bar_transient.py +0 -0
  121. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_task_panel_format.py +0 -0
  122. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_task_panel_key_bindings.py +0 -0
  123. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_task_panel_rendering.py +0 -0
  124. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_task_poll.py +0 -0
  125. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_tool_view.py +0 -0
  126. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_tui_elapsed_status.py +0 -0
  127. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_tui_mcp_init_gate.py +0 -0
  128. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_tui_paste_placeholder.py +0 -0
  129. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_tui_split_invariance.py +0 -0
  130. {comate_cli-0.4.8 → comate_cli-0.5.0}/tests/test_update_check.py +0 -0
@@ -8,6 +8,7 @@ set_env.sh
8
8
  .worktrees/
9
9
  # C extensions
10
10
  *.so
11
+ codebase_claude/
11
12
  claude_code_codebase/
12
13
  .claude/
13
14
  # Distribution / packaging
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: comate-cli
3
- Version: 0.4.8
3
+ Version: 0.5.0
4
4
  Summary: Comate terminal CLI built on comate-agent-sdk
5
5
  Project-URL: Homepage, https://github.com/AndyLee1024/agent-sdk
6
6
  Project-URL: Repository, https://github.com/AndyLee1024/agent-sdk
@@ -135,6 +135,7 @@ class TerminalAgentTUI(
135
135
  pass
136
136
  self._renderer = renderer
137
137
  self._task_poll_next_at = time.monotonic() + _TASK_POLL_INTERVAL_S
138
+ self._task_poll_last_list_id: str | None = None
138
139
  self._rewind_store = RewindStore(session=self._session, project_root=Path.cwd())
139
140
 
140
141
  # Team inbox 消息直连 scrollback(绕开 session_event_queue,实现实时显示)
@@ -467,6 +468,23 @@ class TerminalAgentTUI(
467
468
  filter=Condition(lambda: self._ui_mode == UIMode.MCP_CONNECTING),
468
469
  )
469
470
 
471
+ # idle 时 todo/diff/queue 全部隐藏,它们之间的分隔空行也应该一并消失,
472
+ # 否则多余的固定高度会导致 prompt_toolkit 非全屏渲染时高度波动 → scrollback 污染。
473
+ _has_todo_or_diff = Condition(
474
+ lambda: self._renderer.has_active_todos()
475
+ or (
476
+ self._diff_panel_visible
477
+ and self._renderer.latest_diff_lines is not None
478
+ )
479
+ )
480
+ _has_diff_or_queue = Condition(
481
+ lambda: (
482
+ self._diff_panel_visible
483
+ and self._renderer.latest_diff_lines is not None
484
+ )
485
+ or self._should_show_queue_panel()
486
+ )
487
+
470
488
  self._main_container = HSplit(
471
489
  [
472
490
  self._loading_container,
@@ -478,10 +496,17 @@ class TerminalAgentTUI(
478
496
  ),
479
497
  ),
480
498
  self._todo_container,
481
- Window(height=1, style="class:loading"),
499
+ ConditionalContainer(
500
+ content=Window(height=1, style="class:loading"),
501
+ filter=_has_todo_or_diff,
502
+ ),
482
503
  self._diff_panel_container,
483
- Window(height=1, style="class:input.separator"),
504
+ ConditionalContainer(
505
+ content=Window(height=1, style="class:input.separator"),
506
+ filter=_has_diff_or_queue,
507
+ ),
484
508
  self._queue_container,
509
+ Window(height=1, style="class:loading"),
485
510
  Window(height=1, char="─", style="class:input.separator"),
486
511
  self._input_container,
487
512
  self._question_container,
@@ -1255,8 +1280,10 @@ class TerminalAgentTUI(
1255
1280
  poll_result = await asyncio.to_thread(self._fetch_tasks_from_store)
1256
1281
  if poll_result is not None:
1257
1282
  task_dicts, list_id = poll_result
1258
- self._renderer._update_tasks(task_dicts, list_id=list_id)
1259
- self._render_dirty = True
1283
+ if list_id != self._task_poll_last_list_id:
1284
+ self._task_poll_last_list_id = list_id
1285
+ self._renderer._update_tasks(task_dicts, list_id=list_id)
1286
+ self._render_dirty = True
1260
1287
 
1261
1288
  await asyncio.sleep(sleep_s)
1262
1289
  except asyncio.CancelledError:
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "comate-cli"
7
- version = "0.4.8"
7
+ version = "0.5.0"
8
8
  description = "Comate terminal CLI built on comate-agent-sdk"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -189,6 +189,15 @@ wheels = [
189
189
  { url = "https://files.pythonhosted.org/packages/1a/39/47f9197bdd44df24d67ac8893641e16f386c984a0619ef2ee4c51fbbc019/beautifulsoup4-4.14.3-py3-none-any.whl", hash = "sha256:0918bfe44902e6ad8d57732ba310582e98da931428d231a5ecb9e7c703a735bb", size = 107721, upload-time = "2025-11-30T15:08:24.087Z" },
190
190
  ]
191
191
 
192
+ [[package]]
193
+ name = "bracex"
194
+ version = "2.6"
195
+ source = { registry = "https://pypi.org/simple" }
196
+ sdist = { url = "https://files.pythonhosted.org/packages/63/9a/fec38644694abfaaeca2798b58e276a8e61de49e2e37494ace423395febc/bracex-2.6.tar.gz", hash = "sha256:98f1347cd77e22ee8d967a30ad4e310b233f7754dbf31ff3fceb76145ba47dc7", size = 26642, upload-time = "2025-06-22T19:12:31.254Z" }
197
+ wheels = [
198
+ { url = "https://files.pythonhosted.org/packages/9d/2a/9186535ce58db529927f6cf5990a849aa9e052eea3e2cfefe20b9e1802da/bracex-2.6-py3-none-any.whl", hash = "sha256:0b0049264e7340b3ec782b5cb99beb325f36c3782a32e36e876452fd49a09952", size = 11508, upload-time = "2025-06-22T19:12:29.781Z" },
199
+ ]
200
+
192
201
  [[package]]
193
202
  name = "certifi"
194
203
  version = "2026.2.25"
@@ -380,7 +389,7 @@ wheels = [
380
389
 
381
390
  [[package]]
382
391
  name = "comate-agent-sdk"
383
- version = "0.4.6"
392
+ version = "0.4.8"
384
393
  source = { editable = "../../" }
385
394
  dependencies = [
386
395
  { name = "aiohttp" },
@@ -402,6 +411,7 @@ dependencies = [
402
411
  { name = "questionary" },
403
412
  { name = "reportlab" },
404
413
  { name = "tiktoken" },
414
+ { name = "wcmatch" },
405
415
  ]
406
416
 
407
417
  [package.metadata]
@@ -430,6 +440,7 @@ requires-dist = [
430
440
  { name = "reportlab", specifier = "==4.4.9" },
431
441
  { name = "tiktoken", specifier = "==0.12.0" },
432
442
  { name = "tiktoken", marker = "extra == 'context'", specifier = "==0.12.0" },
443
+ { name = "wcmatch", specifier = "==10.1" },
433
444
  ]
434
445
  provides-extras = ["anthropic", "openai", "google", "observability", "context"]
435
446
 
@@ -445,7 +456,7 @@ dev = [
445
456
 
446
457
  [[package]]
447
458
  name = "comate-cli"
448
- version = "0.4.7"
459
+ version = "0.4.8"
449
460
  source = { editable = "." }
450
461
  dependencies = [
451
462
  { name = "charset-normalizer" },
@@ -2095,6 +2106,18 @@ wheels = [
2095
2106
  { url = "https://files.pythonhosted.org/packages/83/e4/d04a086285c20886c0daad0e026f250869201013d18f81d9ff5eada73a88/uvicorn-0.41.0-py3-none-any.whl", hash = "sha256:29e35b1d2c36a04b9e180d4007ede3bcb32a85fbdfd6c6aeb3f26839de088187", size = 68783, upload-time = "2026-02-16T23:07:22.357Z" },
2096
2107
  ]
2097
2108
 
2109
+ [[package]]
2110
+ name = "wcmatch"
2111
+ version = "10.1"
2112
+ source = { registry = "https://pypi.org/simple" }
2113
+ dependencies = [
2114
+ { name = "bracex" },
2115
+ ]
2116
+ sdist = { url = "https://files.pythonhosted.org/packages/79/3e/c0bdc27cf06f4e47680bd5803a07cb3dfd17de84cde92dd217dcb9e05253/wcmatch-10.1.tar.gz", hash = "sha256:f11f94208c8c8484a16f4f48638a85d771d9513f4ab3f37595978801cb9465af", size = 117421, upload-time = "2025-06-22T19:14:02.49Z" }
2117
+ wheels = [
2118
+ { url = "https://files.pythonhosted.org/packages/eb/d8/0d1d2e9d3fabcf5d6840362adcf05f8cf3cd06a73358140c3a97189238ae/wcmatch-10.1-py3-none-any.whl", hash = "sha256:5848ace7dbb0476e5e55ab63c6bbd529745089343427caa5537f230cc01beb8a", size = 39854, upload-time = "2025-06-22T19:14:00.978Z" },
2119
+ ]
2120
+
2098
2121
  [[package]]
2099
2122
  name = "wcwidth"
2100
2123
  version = "0.6.0"
File without changes
File without changes