mcp-gee-sweet 0.9.2.dev319__tar.gz → 0.9.2.dev321__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 (258) hide show
  1. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/PKG-INFO +1 -1
  2. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/roadmap.md +2 -2
  3. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/uv.lock +22 -22
  4. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.claude/commands/cleanup-worktrees.md +0 -0
  5. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.claude/commands/merge-pr.md +0 -0
  6. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.claude/commands/notify-kai.md +0 -0
  7. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.claude/commands/notify-partner.md +0 -0
  8. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.claude/commands/orchestrator.md +0 -0
  9. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.claude/commands/prep-for-pr.md +0 -0
  10. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.claude/commands/qa-kickoff.md +0 -0
  11. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.claude/commands/release.md +0 -0
  12. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.claude/commands/retro.md +0 -0
  13. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.claude/commands/roadmap-status.md +0 -0
  14. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.claude/commands/start-worktree.md +0 -0
  15. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.claude/commands/team-member.md +0 -0
  16. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.claude/commands/verify-pr.md +0 -0
  17. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.claude/settings.json +0 -0
  18. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.claude/team-roles/amy.md +0 -0
  19. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.claude/team-roles/aziz.md +0 -0
  20. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.claude/team-roles/bob.md +0 -0
  21. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.claude/team-roles/dev.md +0 -0
  22. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.claude/team-roles/joy.md +0 -0
  23. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.claude/team-roles/kai.md +0 -0
  24. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.claude/team-roles/qa.md +0 -0
  25. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.dockerignore +0 -0
  26. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  27. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  28. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  29. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.github/dependabot.yml +0 -0
  30. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.github/workflows/ci.yml +0 -0
  31. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.github/workflows/docs.yml +0 -0
  32. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.github/workflows/publish-dev.yml +0 -0
  33. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.github/workflows/release.yml +0 -0
  34. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.gitignore +0 -0
  35. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.pre-commit-config.yaml +0 -0
  36. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/.python-version +0 -0
  37. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/CHANGELOG.md +0 -0
  38. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/CLAUDE.md +0 -0
  39. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/CODE_OF_CONDUCT.md +0 -0
  40. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/CONTRIBUTING.md +0 -0
  41. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/Dockerfile +0 -0
  42. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/LICENSE +0 -0
  43. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/Makefile +0 -0
  44. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/README.md +0 -0
  45. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/SECURITY.md +0 -0
  46. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docker-compose.yml +0 -0
  47. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/assets/logo.png +0 -0
  48. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/auth.md +0 -0
  49. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/client-setup.md +0 -0
  50. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/configuration.md +0 -0
  51. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/decisions/decision-async-tool-execution.md +0 -0
  52. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/decisions/decision-auth-status-limitation-categories.md +0 -0
  53. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/decisions/decision-cache-invalidation.md +0 -0
  54. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/decisions/decision-chart-theming.md +0 -0
  55. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/decisions/decision-comments-first-class.md +0 -0
  56. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/decisions/decision-composite-tools.md +0 -0
  57. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/decisions/decision-condition-type-docstring-generation.md +0 -0
  58. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/decisions/decision-converted-doc-change-detection.md +0 -0
  59. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/decisions/decision-dev-team.md +0 -0
  60. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/decisions/decision-docs-formatting.md +0 -0
  61. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/decisions/decision-fork.md +0 -0
  62. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/decisions/decision-gmail-domain.md +0 -0
  63. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/decisions/decision-grid-data-size-cap.md +0 -0
  64. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/decisions/decision-local-fs-test-harness.md +0 -0
  65. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/decisions/decision-mcp-v2-resource-context-access.md +0 -0
  66. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/decisions/decision-pillow-image-dependency.md +0 -0
  67. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/decisions/decision-prompt-qa-role.md +0 -0
  68. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/decisions/decision-publishing.md +0 -0
  69. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/decisions/decision-release-docs-roles.md +0 -0
  70. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/decisions/decision-repositioning.md +0 -0
  71. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/decisions/decision-response-size-cap-generalization.md +0 -0
  72. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/decisions/decision-response-size-cap-reevaluation-519.md +0 -0
  73. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/decisions/decision-review-finding-ticket-bar.md +0 -0
  74. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/decisions/decision-supports-all-drives-lint-check.md +0 -0
  75. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/decisions/decision-sync-folder-recursion.md +0 -0
  76. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/decisions/decision-testing.md +0 -0
  77. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/decisions/decision-tool-error-visibility.md +0 -0
  78. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/decisions/index.md +0 -0
  79. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/decisions/role-file-history.md +0 -0
  80. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/design/blockquote-representation.md +0 -0
  81. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/design/borderless-table-columns.md +0 -0
  82. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/design/doc-revision-export.md +0 -0
  83. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/design/doc-to-markdown.md +0 -0
  84. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/design/docs-ast-pipeline.md +0 -0
  85. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/design/effectiveformat-spike.md +0 -0
  86. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/design/heading-anchor-resolution.md +0 -0
  87. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/design/image-conversion.md +0 -0
  88. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/design/index.md +0 -0
  89. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/design/local-file-access-policy.md +0 -0
  90. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/design/markdown-support.md +0 -0
  91. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/design/module-history.md +0 -0
  92. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/design/oauth-reauthorize-from-tool-call.md +0 -0
  93. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/design/phase3-theme-system.md +0 -0
  94. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/design/sse-consent-off-event-loop.md +0 -0
  95. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/design.md +0 -0
  96. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/index.md +0 -0
  97. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/known-limitations.md +0 -0
  98. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/notes-read.md +0 -0
  99. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/README.md +0 -0
  100. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/fixtures/qa-fixture-pixel.png +0 -0
  101. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/fixtures/tc-d195-create-doc.md +0 -0
  102. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/fixtures/tc-d196-create-doc.html +0 -0
  103. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/fixtures/tc-d213-dollar-escape.md +0 -0
  104. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/fixtures/tc-d226-heading-table.md +0 -0
  105. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/fixtures/tc-doc102-image-conversion.html +0 -0
  106. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/fixtures/tc-doc103-image-conversion.md +0 -0
  107. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/fixtures/tc-doc104-nested-lists.html +0 -0
  108. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/fixtures/tc-doc105-nested-lists-gfm.md +0 -0
  109. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/fixtures/tc-doc106-nested-lists-4space.md +0 -0
  110. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/fixtures/tc-doc135-paragraph-boundary.md +0 -0
  111. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/fixtures/tc-doc136-interrupted-block-boundary.md +0 -0
  112. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/fixtures/tc-doc137-inline-hr-no-block-ancestor.html +0 -0
  113. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/fixtures/tc-doc138-nbsp-spacer-paragraph.md +0 -0
  114. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/fixtures/tc-doc141-mismatched-list-tags.html +0 -0
  115. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/fixtures/tc-doc142-heading-anchors.md +0 -0
  116. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/fixtures/tc-doc144-anchor-in-table-cell.md +0 -0
  117. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/fixtures/tc-doc145-anchor-on-first-element.md +0 -0
  118. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/fixtures.template.md +0 -0
  119. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/gmail-test-plan.md +0 -0
  120. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/operations.yaml +0 -0
  121. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/playwright_oauth.md +0 -0
  122. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/results/.gitkeep +0 -0
  123. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/results/2026-06-02.md +0 -0
  124. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/results/2026-06-14.md +0 -0
  125. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/results/2026-06-17.md +0 -0
  126. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/results/2026-06-18.md +0 -0
  127. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/results/2026-06-21-drive-discovery.md +0 -0
  128. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/results/2026-06-21-sheets-delete-clear.md +0 -0
  129. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/results/2026-06-28.md +0 -0
  130. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/results/2026-07-04-docs.md +0 -0
  131. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/results/2026-07-04-drive-smoke.md +0 -0
  132. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/results/2026-07-04-infra.md +0 -0
  133. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/results/2026-07-04-sheets_read.md +0 -0
  134. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/results/2026-07-04.md +0 -0
  135. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/results/2026-09-04.md +0 -0
  136. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/retro-v0.8.0.md +0 -0
  137. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/retro-v0.9.0.md +0 -0
  138. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/run.md +0 -0
  139. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/runs/README.md +0 -0
  140. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/runs/v0.8.0.md +0 -0
  141. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/runs/v0.8.1.md +0 -0
  142. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/runs/v0.9.0.md +0 -0
  143. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/setup.md +0 -0
  144. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/tests/calendar.md +0 -0
  145. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/tests/docs_content.md +0 -0
  146. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/tests/docs_layout.md +0 -0
  147. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/tests/docs_style.md +0 -0
  148. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/tests/docs_tables.md +0 -0
  149. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/tests/drive_activity.md +0 -0
  150. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/tests/drive_files.md +0 -0
  151. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/tests/drive_sharing.md +0 -0
  152. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/tests/drive_transfer.md +0 -0
  153. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/tests/gmail.md +0 -0
  154. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/tests/infra.md +0 -0
  155. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/tests/sheets_charts.md +0 -0
  156. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/tests/sheets_mgmt.md +0 -0
  157. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/tests/sheets_read.md +0 -0
  158. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/qa/tests/sheets_write.md +0 -0
  159. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/style-guide.md +0 -0
  160. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/docs/tools.md +0 -0
  161. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/mkdocs.yml +0 -0
  162. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/pyproject.toml +0 -0
  163. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/pyrightconfig.json +0 -0
  164. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/scripts/check_supports_all_drives.py +0 -0
  165. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/scripts/gen_tool_docs.py +0 -0
  166. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/scripts/lane_context_hook.py +0 -0
  167. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/scripts/oauth_setup.py +0 -0
  168. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/scripts/qa_cancel_insert_local_images.py +0 -0
  169. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/scripts/qa_gmail_fixtures.py +0 -0
  170. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/scripts/setup_team.sh +0 -0
  171. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/scripts/write_team_mcp_configs.sh +0 -0
  172. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/server.json +0 -0
  173. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/.env.template +0 -0
  174. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/__init__.py +0 -0
  175. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/auth.py +0 -0
  176. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/cache.py +0 -0
  177. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/http_transport.py +0 -0
  178. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/reauth.py +0 -0
  179. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/server.py +0 -0
  180. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/sse_shutdown.py +0 -0
  181. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/__init__.py +0 -0
  182. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/atomic_write.py +0 -0
  183. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/cache.py +0 -0
  184. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/calendar.py +0 -0
  185. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/concurrency.py +0 -0
  186. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/docs/__init__.py +0 -0
  187. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/docs/anchors.py +0 -0
  188. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/docs/ast.py +0 -0
  189. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/docs/ast_to_markdown.py +0 -0
  190. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/docs/comments.py +0 -0
  191. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/docs/content.py +0 -0
  192. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/docs/doc_to_ast.py +0 -0
  193. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/docs/editing.py +0 -0
  194. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/docs/emitter.py +0 -0
  195. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/docs/html_parser.py +0 -0
  196. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/docs/images.py +0 -0
  197. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/docs/indices.py +0 -0
  198. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/docs/layout.py +0 -0
  199. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/docs/markdown_export.py +0 -0
  200. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/docs/named_ranges.py +0 -0
  201. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/docs/style.py +0 -0
  202. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/docs/tables.py +0 -0
  203. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/drive/__init__.py +0 -0
  204. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/drive/activity.py +0 -0
  205. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/drive/files.py +0 -0
  206. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/drive/sharing.py +0 -0
  207. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/drive/transfer.py +0 -0
  208. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/gmail.py +0 -0
  209. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/pagination.py +0 -0
  210. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/response_limits.py +0 -0
  211. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/sheets/__init__.py +0 -0
  212. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/sheets/data.py +0 -0
  213. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/sheets/helpers.py +0 -0
  214. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/src/mcp_gee_sweet/tools/sheets/structure.py +0 -0
  215. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/__init__.py +0 -0
  216. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/conftest.py +0 -0
  217. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/drive/__init__.py +0 -0
  218. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/drive/test_activity.py +0 -0
  219. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/drive/test_files.py +0 -0
  220. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/drive/test_sharing.py +0 -0
  221. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/drive/test_transfer.py +0 -0
  222. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/fakes.py +0 -0
  223. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/integration/__init__.py +0 -0
  224. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/integration/conftest.py +0 -0
  225. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/integration/test_local_fs_harness.py +0 -0
  226. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/sheets/__init__.py +0 -0
  227. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/sheets/test_data.py +0 -0
  228. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/sheets/test_helpers.py +0 -0
  229. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/sheets/test_structure.py +0 -0
  230. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/test_atomic_write.py +0 -0
  231. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/test_auth.py +0 -0
  232. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/test_cache.py +0 -0
  233. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/test_calendar.py +0 -0
  234. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/test_check_supports_all_drives.py +0 -0
  235. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/test_concurrency.py +0 -0
  236. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/test_docs_anchors.py +0 -0
  237. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/test_docs_comments.py +0 -0
  238. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/test_docs_content.py +0 -0
  239. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/test_docs_core.py +0 -0
  240. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/test_docs_editing.py +0 -0
  241. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/test_docs_images.py +0 -0
  242. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/test_docs_indices.py +0 -0
  243. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/test_docs_layout.py +0 -0
  244. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/test_docs_markdown_export.py +0 -0
  245. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/test_docs_named_ranges.py +0 -0
  246. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/test_docs_revision_export.py +0 -0
  247. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/test_docs_style.py +0 -0
  248. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/test_docs_tables.py +0 -0
  249. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/test_gen_tool_docs.py +0 -0
  250. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/test_gmail.py +0 -0
  251. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/test_lane_context_hook.py +0 -0
  252. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/test_qa_gmail_fixtures.py +0 -0
  253. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/test_reauth.py +0 -0
  254. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/test_response_limits.py +0 -0
  255. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/test_server.py +0 -0
  256. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/test_server_json.py +0 -0
  257. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/test_sse_shutdown.py +0 -0
  258. {mcp_gee_sweet-0.9.2.dev319 → mcp_gee_sweet-0.9.2.dev321}/tests/test_team_mcp_configs.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: mcp-gee-sweet
3
- Version: 0.9.2.dev319
3
+ Version: 0.9.2.dev321
4
4
  Summary: MCP server for Google Workspace — Sheets, Drive, Docs (HTML or Markdown), and Calendar.
5
5
  Project-URL: Homepage, https://github.com/khuisman/mcp-gee-sweet
6
6
  Project-URL: Bug Tracker, https://github.com/khuisman/mcp-gee-sweet/issues
@@ -223,7 +223,7 @@ Same shape as v0.8.1 — stabilize on defects that surfaced since v0.9.0 shipped
223
223
  - [x] `get_doc_as_markdown(local_path=…)` writes the JSON result envelope, not the markdown: `markdown_export.py` routes through the generic JSON-to-disk helper — lane B, after #938 (same read-side area) (PR #982) ([#958](https://github.com/khuisman/mcp-gee-sweet/issues/958))
224
224
  - [x] `add_chart`: a cell-to-row (`B2:5`) or row-only (`1:5`) range silently charts one column — `_per_column_ranges` defaults `endColumnIndex` to start+1. Found reviewing #931 — lane A, after #917 (PR #983) ([#954](https://github.com/khuisman/mcp-gee-sweet/issues/954))
225
225
  - [x] `_parse_a1_notation` hardening: one compiled grammar, index bounds, validate before the sheet-ID fetch. #931 review follow-ups, no behavior change for valid input — lane A, after #954 (same A1 area); its QA also runs #953's live checks for #931 (folded in) (PR #986) ([#955](https://github.com/khuisman/mcp-gee-sweet/issues/955))
226
- - [ ] Write side drops image links: `[![alt](src)](url)` (or `<a href><img></a>`) imports through `create_doc`/`create_doc_from_file`/`write_doc_content` without its URL, so it doesn't round-trip with #951's export. Found in PR #976 — lane A, after #955 ([#977](https://github.com/khuisman/mcp-gee-sweet/issues/977))
226
+ - [x] Write side drops image links: `[![alt](src)](url)` (or `<a href><img></a>`) imports through `create_doc`/`create_doc_from_file`/`write_doc_content` without its URL, so it doesn't round-trip with #951's export. Found in PR #976 — lane A, after #955 (PR #992) ([#977](https://github.com/khuisman/mcp-gee-sweet/issues/977))
227
227
  - [x] Comment quoted text comes back HTML-escaped (`Caf&#233;`) from `add_doc_comment`, `list_doc_comments`, and `get_doc_as_markdown(include_comments=True)`: `comments.py` passes Drive's escaped `quotedFileContent.value` through unchanged. Found reviewing #958 — lane B, after #959 (defect, next pick) (PR #991) ([#984](https://github.com/khuisman/mcp-gee-sweet/issues/984))
228
228
  - [ ] `write_capped_result_to_disk` writes `dir/` as a file when the directory doesn't exist: a trailing separator should mean "directory" (create it, append `default_filename`). Shared by every `local_path` writer. Found in PR #988 — lane B, after #984 (defect) ([#990](https://github.com/khuisman/mcp-gee-sweet/issues/990))
229
229
 
@@ -380,7 +380,7 @@ Follows the design in [`docs/decisions/decision-comments-first-class.md`](decisi
380
380
  - [ ] `sync_folder(export_format=...)`: converted Sheets/Slides probably have #814's `modifiedTime` lag and restamp race too. Suspected, not yet observed ([#818](https://github.com/khuisman/mcp-gee-sweet/issues/818))
381
381
  - [ ] Add a tool to set (and read back) Google Docs table column widths — `tableColumnProperties` isn't reachable through any tool today ([#809](https://github.com/khuisman/mcp-gee-sweet/issues/809))
382
382
  - [ ] `_parse_a1_notation` rejects `A:B5`, which the Sheets values API accepts as `A5:B` — decided 2026-10-11: keep rejecting (a destructive GridRange tool acting on "row 5 onward" is worse than an error); document in the docstring that this is deliberately stricter than Sheets. Found in PR #986 — lane A; moved from v0.9.2 2026-10-11 (docstring only, current behavior is the safe one) ([#987](https://github.com/khuisman/mcp-gee-sweet/issues/987))
383
- - [ ] `html_parser`: the `</a>` of an href-less anchor nested in a linked one pops the outer link, so text or an image after it is written unlinked. Found in PR #992's QA, which sent back the same bug in its new `_bare_link_url` stack; may close with PR #992 — lane A; moved from v0.9.2 2026-10-11 (pre-existing, invalid nested HTML only) ([#994](https://github.com/khuisman/mcp-gee-sweet/issues/994))
383
+ - [x] `html_parser`: the `</a>` of an href-less anchor nested in a linked one pops the outer link, so text or an image after it is written unlinked. Found in PR #992's QA, which sent back the same bug in its new `_bare_link_url` stack; may close with PR #992 — lane A; moved from v0.9.2 2026-10-11 (pre-existing, invalid nested HTML only) (PR #992) ([#994](https://github.com/khuisman/mcp-gee-sweet/issues/994))
384
384
 
385
385
  **Code structure & typing (Joy)** _(slotted into v0.9.2 (now v0.9.3) 2026-09-09 so Joy's architecture initiative carries release deadlines instead of staying open-ended)_
386
386
 
@@ -1,5 +1,5 @@
1
1
  version = 1
2
- revision = 5
2
+ revision = 3
3
3
  requires-python = ">=3.10"
4
4
  resolution-markers = [
5
5
  "python_full_version >= '3.14' and sys_platform == 'win32'",
@@ -1829,27 +1829,27 @@ wheels = [
1829
1829
 
1830
1830
  [[package]]
1831
1831
  name = "ruff"
1832
- version = "0.16.9"
1833
- source = { registry = "https://pypi.org/simple" }
1834
- sdist = { url = "https://files.pythonhosted.org/packages/96/bf/c935ca98e73fe8ce65b87ef08a280c0c1e85295d569228c15e87d8fdfaf1/ruff-0.16.9.tar.gz", hash = "sha256:12b625c6cfba78d285d9f48eda5f053374f1e53cb10ef17342a383750db99161", size = 4948764, upload-time = "2026-09-24T20:37:49.416Z" }
1835
- wheels = [
1836
- { url = "https://files.pythonhosted.org/packages/0d/26/df51322b52ee1ada7eff2d071ea09d11d5c2d1dcc9f02594f5785c4d1635/ruff-0.16.9-py3-none-linux_armv6l.whl", hash = "sha256:95e6f022090368ab3b824c36276839c53b2adf1a3f4c09fefc33dfc400f6da96", size = 10082922, upload-time = "2026-09-24T20:37:13.045Z" },
1837
- { url = "https://files.pythonhosted.org/packages/a5/27/7bf51f5a7aa375e9f339280a303aab44ca75dc1525f1cdc5991761685b0f/ruff-0.16.9-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:a5f27be168556594a86d2f415db0cf43f5291917849318f873c7e2791f7a8c67", size = 10236360, upload-time = "2026-09-24T20:37:16.049Z" },
1838
- { url = "https://files.pythonhosted.org/packages/b6/63/09659283f92f02dff45809da194a70da2f688d87c55d8875c4fae3536072/ruff-0.16.9-py3-none-macosx_11_0_arm64.whl", hash = "sha256:1632eb1d6197f33bd00b1acbc5b71009e89a8895c158e2d2b03a834fac964ab6", size = 9892940, upload-time = "2026-09-24T20:37:17.957Z" },
1839
- { url = "https://files.pythonhosted.org/packages/24/58/98de1b72ec172f5f8f1731236fe21585b3998bf7dfe9fcc44ae9ba626012/ruff-0.16.9-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b3f951b14d865d5952c89d40a5ca07e87abe24fa5453299878411e127748fb1c", size = 10032114, upload-time = "2026-09-24T20:37:19.942Z" },
1840
- { url = "https://files.pythonhosted.org/packages/c8/7d/f1e17c54ab59d4bad1dce8ee3e22a7a1d0ef4745240decacdcf3832b5bb2/ruff-0.16.9-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:447fc07e1573afff7cb02803462b12b6c8ece7cf10e2cd78565fa6d7a1c0bf8d", size = 9910227, upload-time = "2026-09-24T20:37:21.872Z" },
1841
- { url = "https://files.pythonhosted.org/packages/34/19/436f647a65075bbd3bab2668b3bdaa5120559b294694018cdcefabbbf30b/ruff-0.16.9-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8a3e039a6a40ed976c491722b60e0ae4a4aa1a86057f540ee7a37a5d19ae9120", size = 10547484, upload-time = "2026-09-24T20:37:24.229Z" },
1842
- { url = "https://files.pythonhosted.org/packages/03/59/38430a6bc2f6d8095447ac39625cf8b6e9344a47e6c26225c8ba1bff3ffb/ruff-0.16.9-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4684dded7db60aa57cb118fa158630f5feade4af5782903b6053484bdf9bd129", size = 11412367, upload-time = "2026-09-24T20:37:26.307Z" },
1843
- { url = "https://files.pythonhosted.org/packages/c8/bd/bbb6d7fc7f208c8b8c50dd5dc8206e4cfdb1e7a8fb852606a3adf370c880/ruff-0.16.9-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d29c934357e45642fda2f34c0b1f4025b4a6c01e15e4bf0016879d60078a142c", size = 10869787, upload-time = "2026-09-24T20:37:28.35Z" },
1844
- { url = "https://files.pythonhosted.org/packages/bc/b8/9c543074918061abbefc3bd139bee22de35abedb00dde0f2d27288838962/ruff-0.16.9-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a21713e629d3e5bdb2f5c2def1cc7f04f47fa8e1a7eb0571b4a28e1da64bc728", size = 10406494, upload-time = "2026-09-24T20:37:30.624Z" },
1845
- { url = "https://files.pythonhosted.org/packages/35/7a/5a8851bd146e7ccf8fd4b003f6c75c11f8fbdb0e60673b45097986b6bf41/ruff-0.16.9-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:7baa24ef5fc8e77aa93879e1d3f43754a01ae488e869f1ae30cf431afd4d2452", size = 10590083, upload-time = "2026-09-24T20:37:32.439Z" },
1846
- { url = "https://files.pythonhosted.org/packages/87/f0/4c3467188f23f806960b46fa76575a7cd0514c9ba90562650b71efc96980/ruff-0.16.9-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:a41aac6230aadfaa133bdfa1614488531ffa3e0837567ae04c0da2058a9c0f9e", size = 10119151, upload-time = "2026-09-24T20:37:34.581Z" },
1847
- { url = "https://files.pythonhosted.org/packages/15/34/5a4def5adea572ce6aea0bb64f21f928ee317b80e0db747d7979b01d7261/ruff-0.16.9-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:c2529fb5896d49115b0e9aa8f887490b34bbe76baf879ec2264ac59406869ce7", size = 9911544, upload-time = "2026-09-24T20:37:36.796Z" },
1848
- { url = "https://files.pythonhosted.org/packages/62/5d/d15ebea7499eef9373318c0ee6ca127832927c6529731f6d48e18dce7ca9/ruff-0.16.9-py3-none-musllinux_1_2_i686.whl", hash = "sha256:41e3870277694177429b56406d65dfbdb2c2802c52b715edaf6a0b829c69d4ee", size = 10269884, upload-time = "2026-09-24T20:37:38.857Z" },
1849
- { url = "https://files.pythonhosted.org/packages/d1/56/c5d3cd119ded7a3c7aba0e961b69cb3df701c91662c98ad694467d060ce1/ruff-0.16.9-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:8adbe4e58af167f767d7b2ba5e83c42e878350796cf78c2f5e14ab9903a92588", size = 10749366, upload-time = "2026-09-24T20:37:41.042Z" },
1850
- { url = "https://files.pythonhosted.org/packages/ac/fe/734ec7527029ac757ecf821f143c9f3fcf69149c21f53a044a899b430f5a/ruff-0.16.9-py3-none-win32.whl", hash = "sha256:0e1dbc2073624dee6618d41d0098690a7244654af746704b64759e12b6b6b385", size = 10152355, upload-time = "2026-09-24T20:37:43.025Z" },
1851
- { url = "https://files.pythonhosted.org/packages/14/21/26e4643629b3ebb44f0a06f9c9a53058d63d989415f63a9a3c28e2ee7f22/ruff-0.16.9-py3-none-win_amd64.whl", hash = "sha256:6bd40fec8cd4c8a3d4dd589bd8ad4e6320c13c29234159bfd959a40d529d597b", size = 10592965, upload-time = "2026-09-24T20:37:44.944Z" },
1852
- { url = "https://files.pythonhosted.org/packages/51/60/5fb1a39dbb5ae314d5f59bc7348a63c1d5c20f3cd83914c4b5cb0be31d2d/ruff-0.16.9-py3-none-win_arm64.whl", hash = "sha256:ed1a252039200f57a59eebc063b54beabea67bfbaaca0eeaa7f54b5fbcda2284", size = 10458649, upload-time = "2026-09-24T20:37:46.882Z" },
1832
+ version = "0.16.10"
1833
+ source = { registry = "https://pypi.org/simple" }
1834
+ sdist = { url = "https://files.pythonhosted.org/packages/c4/49/23802c45f093eb14bde54b141d2b2f058edfa63a06db7beed047308cc08f/ruff-0.16.10.tar.gz", hash = "sha256:eff4728c4eaae93f0955cd264d24b2ab348e74bf59986ccf282ba6dc16b3b017", size = 4958724, upload-time = "2026-10-01T18:03:21.697Z" }
1835
+ wheels = [
1836
+ { url = "https://files.pythonhosted.org/packages/2f/21/ebce22e1d90cdb2cd691026b9c6e9bec6499f0b396089481755b5d49efff/ruff-0.16.10-py3-none-linux_armv6l.whl", hash = "sha256:488b0fe3f3574210e5cf80d9f59b9e3ab17a127a8155de3f307b392589cfb511", size = 10095557, upload-time = "2026-10-01T18:02:36.072Z" },
1837
+ { url = "https://files.pythonhosted.org/packages/cb/98/a54de85876a8b2612bfa0d84c7b9abfb39c6a3354aee7800b09c1649b9e3/ruff-0.16.10-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:e748ff95c934c4e978783b8e687bc174e7bd84e8ad24e3243e1ecfcda5e0282d", size = 10340577, upload-time = "2026-10-01T18:02:39.258Z" },
1838
+ { url = "https://files.pythonhosted.org/packages/9f/16/1a5a4a2657effe4806110f2b907313802f1367fcdbb29e8122766e407fab/ruff-0.16.10-py3-none-macosx_11_0_arm64.whl", hash = "sha256:3031a4a2e8e7b8a46f70be45f198c35a11ece509a94b80334d8d397a33c67550", size = 9774282, upload-time = "2026-10-01T18:02:41.79Z" },
1839
+ { url = "https://files.pythonhosted.org/packages/6e/fb/470085af734da396e68cd80fb0a3e7c109a459716ae59588c0f6fab8a17d/ruff-0.16.10-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:494401c86df4c4c25f69b9419605d944467ee98c42fb6ad405ef4fa40b8fb67d", size = 9920895, upload-time = "2026-10-01T18:02:44.458Z" },
1840
+ { url = "https://files.pythonhosted.org/packages/57/de/f10cffe4f88a37ea6615ec460f01bf76f0bc1477737a35d9ee61a630a78b/ruff-0.16.10-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d203abc0ff2b773ee33d00ab8df0bb67046fbc7c07b119332f08b9b345cf8221", size = 9902707, upload-time = "2026-10-01T18:02:47.041Z" },
1841
+ { url = "https://files.pythonhosted.org/packages/ff/44/3fdcedf83ae60ef837dd239170e480dce606a9142cfa2db911afdf855fd9/ruff-0.16.10-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd83d1235a5258d318477bc5b576303974cbdef5df0c01a1bff14efcc23bd12a", size = 10619287, upload-time = "2026-10-01T18:02:49.485Z" },
1842
+ { url = "https://files.pythonhosted.org/packages/c1/62/02e76a5574002153618eafbb70e159468addc72a5d2c488e65cbb4639d2d/ruff-0.16.10-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bc2610fb269fa56dd8a68669ae470fa6272902668c0fc2ebc3aa112b2633d5b8", size = 11339942, upload-time = "2026-10-01T18:02:52.008Z" },
1843
+ { url = "https://files.pythonhosted.org/packages/6b/c4/cde27d47ad8d4126c587e608c67c46e7feac11763f606d261a1bc8a489e6/ruff-0.16.10-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3e70175e29cc94c26ea296c80e470180b744b7419026898e58f520c6ab32578e", size = 10934316, upload-time = "2026-10-01T18:02:54.811Z" },
1844
+ { url = "https://files.pythonhosted.org/packages/e4/03/17234145f302a645a123e8c3bb2411ecf4669fbc350de3b0d803230a1729/ruff-0.16.10-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f33f43a864a8483eebd160e713336c8bab02c934feaff0a33cf5ccb41546d09a", size = 10387968, upload-time = "2026-10-01T18:02:57.497Z" },
1845
+ { url = "https://files.pythonhosted.org/packages/71/29/2493af60240ee7644b38a4b821f5f9c3b5a4fa3178770fe1d0c685217395/ruff-0.16.10-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:1dfc6f0088149fb6a362c1c446bcbb3fd2157b3852fe2fa68409276eab9ad9b3", size = 10537906, upload-time = "2026-10-01T18:03:00.006Z" },
1846
+ { url = "https://files.pythonhosted.org/packages/2e/9a/f56b28f3b143bb9e518c34fb89ab191b626bca8b70dbf8af0d2e2d473572/ruff-0.16.10-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:6553498afc35f580f036030795810b9e6bcea31604b0fd9e8d352795473042e3", size = 10012938, upload-time = "2026-10-01T18:03:03.006Z" },
1847
+ { url = "https://files.pythonhosted.org/packages/c2/c4/fca37362848ea4d4d80712df13632e645e7c7cfb1bdedf140699ac7a090b/ruff-0.16.10-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:a3b8471dea115d37f123882be852bed13403746d3a76c11de4a19ec5f9ff5a03", size = 9897945, upload-time = "2026-10-01T18:03:05.818Z" },
1848
+ { url = "https://files.pythonhosted.org/packages/7d/c7/e0bc57664d6e0c61fd22f620af260fe9662d7e1ddb320ea7f160e76ef165/ruff-0.16.10-py3-none-musllinux_1_2_i686.whl", hash = "sha256:92e59a70bcbd9d3a5483656da906ec28edfdacfce00afd99edb8b4e9d15644be", size = 10333134, upload-time = "2026-10-01T18:03:08.25Z" },
1849
+ { url = "https://files.pythonhosted.org/packages/21/aa/5c9f3b68737c0e4a33a1db5dfab44f7b786d96ca91a7233112ddab1e6dc2/ruff-0.16.10-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:7ae7375f803b5520dc9f546bed7e3a0acb70b91812e9bb4b19927de22f25b77d", size = 10741702, upload-time = "2026-10-01T18:03:10.775Z" },
1850
+ { url = "https://files.pythonhosted.org/packages/78/fa/0f9c2020dc316c53d983be011720b8157cc052b97e3f4dfa7db6d0f880a6/ruff-0.16.10-py3-none-win32.whl", hash = "sha256:2a12e01cb9156c10c466f63b46eaae5ecea28dfbd21b5836353ae498e7d1349a", size = 10139176, upload-time = "2026-10-01T18:03:13.267Z" },
1851
+ { url = "https://files.pythonhosted.org/packages/99/29/cfb0df9448d4d4ad48c2de029ada9ebd71baa6da983a6c77ee6c6cd0fe82/ruff-0.16.10-py3-none-win_amd64.whl", hash = "sha256:97f2015c92aa97105b0eab19eb5d224884399281cfc5da86a92db4ab5e7fb2ca", size = 10584734, upload-time = "2026-10-01T18:03:16.006Z" },
1852
+ { url = "https://files.pythonhosted.org/packages/fc/05/c16957eb287c3fc062e032619a25868d93d408a844b725bcf514f7a378ff/ruff-0.16.10-py3-none-win_arm64.whl", hash = "sha256:25a65fe998c4e6861ec079ada5826a2fc605e6cbccbe9dcd7fac1f54e791621b", size = 10366440, upload-time = "2026-10-01T18:03:19.04Z" },
1853
1853
  ]
1854
1854
 
1855
1855
  [[package]]