gitwise-cli 0.34.2__tar.gz → 0.35.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 (209) hide show
  1. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/CHANGELOG.md +10 -0
  2. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/PKG-INFO +1 -1
  3. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/__init__.py +1 -1
  4. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/__main__.py +3 -3
  5. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/_cli_dispatch.py +1 -1
  6. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/_cli_introspection.py +6 -1
  7. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/_cli_parser.py +6 -0
  8. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/_i18n_data.json +4 -0
  9. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/context.py +20 -5
  10. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/pyproject.toml +1 -1
  11. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/input/context.json +6 -0
  12. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/output/context.json +15 -1
  13. gitwise_cli-0.35.0/tests/test_context.py +63 -0
  14. gitwise_cli-0.34.2/tests/test_context.py +0 -29
  15. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/.gitignore +0 -0
  16. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/LICENSE +0 -0
  17. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/README.md +0 -0
  18. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/bin/gitwise +0 -0
  19. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/bin/gw +0 -0
  20. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/_cli_completions.py +0 -0
  21. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/_cli_setup_agents.py +0 -0
  22. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/_paths.py +0 -0
  23. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/_runtime_config.py +0 -0
  24. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/audit.py +0 -0
  25. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/branches.py +0 -0
  26. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/clean.py +0 -0
  27. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/commit.py +0 -0
  28. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/conflicts.py +0 -0
  29. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/design.py +0 -0
  30. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/diff.py +0 -0
  31. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/doctor.py +0 -0
  32. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/git.py +0 -0
  33. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/health.py +0 -0
  34. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/i18n.py +0 -0
  35. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/log.py +0 -0
  36. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/merge.py +0 -0
  37. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/optimize.py +0 -0
  38. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/output.py +0 -0
  39. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/pick.py +0 -0
  40. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/pr.py +0 -0
  41. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/py.typed +0 -0
  42. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/schema.py +0 -0
  43. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/setup.py +0 -0
  44. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/setup_agents/__init__.py +0 -0
  45. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/setup_agents/adapters/__init__.py +0 -0
  46. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/setup_agents/adapters/aider.py +0 -0
  47. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/setup_agents/adapters/base.py +0 -0
  48. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/setup_agents/adapters/codex.py +0 -0
  49. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/setup_agents/adapters/continue_adapter.py +0 -0
  50. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/setup_agents/adapters/cursor.py +0 -0
  51. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/setup_agents/adapters/opencode.py +0 -0
  52. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/setup_agents/adapters/pi.py +0 -0
  53. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/setup_agents/exec.py +0 -0
  54. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/setup_agents/format.py +0 -0
  55. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/setup_agents/plan.py +0 -0
  56. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/setup_agents/plan_gitfiles.py +0 -0
  57. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/setup_agents/plan_skills.py +0 -0
  58. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/setup_agents/providers/__init__.py +0 -0
  59. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/setup_agents/providers/aider.py +0 -0
  60. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/setup_agents/providers/base.py +0 -0
  61. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/setup_agents/providers/claude.py +0 -0
  62. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/setup_agents/providers/codex.py +0 -0
  63. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/setup_agents/providers/continue_adapter.py +0 -0
  64. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/setup_agents/providers/cursor.py +0 -0
  65. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/setup_agents/providers/opencode.py +0 -0
  66. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/setup_agents/providers/pi.py +0 -0
  67. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/setup_agents/state.py +0 -0
  68. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/setup_agents/types.py +0 -0
  69. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/show.py +0 -0
  70. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/snapshot.py +0 -0
  71. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/stash.py +0 -0
  72. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/status.py +0 -0
  73. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/suggest.py +0 -0
  74. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/summarize.py +0 -0
  75. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/sync.py +0 -0
  76. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/tag.py +0 -0
  77. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/undo.py +0 -0
  78. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/update.py +0 -0
  79. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/utils/__init__.py +0 -0
  80. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/utils/git_output.py +0 -0
  81. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/utils/in_progress.py +0 -0
  82. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/utils/json_envelope.py +0 -0
  83. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/utils/parsing.py +0 -0
  84. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/utils/secret_scan.py +0 -0
  85. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/utils/types.py +0 -0
  86. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/gitwise/worktree.py +0 -0
  87. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/install.sh +0 -0
  88. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/agents/skills/git-audit/SKILL.md +0 -0
  89. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/agents/skills/git-clean/SKILL.md +0 -0
  90. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/agents/skills/git-optimize/SKILL.md +0 -0
  91. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/aider/CONVENTIONS.md.template +0 -0
  92. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/aider/aider.conf.yml.template +0 -0
  93. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/claude/CLAUDE.md.template +0 -0
  94. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/claude/rules/gitwise.md +0 -0
  95. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/claude/settings.json.template +0 -0
  96. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/claude/skills/git-audit/SKILL.md +0 -0
  97. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/claude/skills/git-clean/SKILL.md +0 -0
  98. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/claude/skills/git-optimize/SKILL.md +0 -0
  99. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/codex/agents/gitwise.toml.template +0 -0
  100. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/continue/rules/gitwise.md.template +0 -0
  101. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/cursor/rules/gitwise.mdc.template +0 -0
  102. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/git-config-modern.txt +0 -0
  103. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/hooks/commit-msg +0 -0
  104. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/hooks/pre-commit +0 -0
  105. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/opencode/agents/gitwise.md.template +0 -0
  106. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/pi/skills/gitwise.md.template +0 -0
  107. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/input/audit.json +0 -0
  108. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/input/branches.json +0 -0
  109. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/input/clean.json +0 -0
  110. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/input/commands.json +0 -0
  111. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/input/commit.json +0 -0
  112. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/input/completions.json +0 -0
  113. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/input/conflicts.json +0 -0
  114. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/input/diff.json +0 -0
  115. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/input/doctor.json +0 -0
  116. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/input/health.json +0 -0
  117. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/input/log.json +0 -0
  118. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/input/merge.json +0 -0
  119. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/input/optimize.json +0 -0
  120. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/input/pick.json +0 -0
  121. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/input/pr.json +0 -0
  122. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/input/schema.json +0 -0
  123. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/input/setup-agents.json +0 -0
  124. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/input/setup.json +0 -0
  125. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/input/show.json +0 -0
  126. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/input/snapshot.json +0 -0
  127. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/input/stash.json +0 -0
  128. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/input/status.json +0 -0
  129. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/input/suggest.json +0 -0
  130. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/input/summarize.json +0 -0
  131. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/input/sync.json +0 -0
  132. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/input/tag.json +0 -0
  133. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/input/undo.json +0 -0
  134. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/input/update.json +0 -0
  135. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/input/worktree.json +0 -0
  136. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/output/audit.json +0 -0
  137. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/output/branches.json +0 -0
  138. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/output/clean.json +0 -0
  139. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/output/commands.json +0 -0
  140. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/output/commit.json +0 -0
  141. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/output/conflicts.json +0 -0
  142. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/output/diff.json +0 -0
  143. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/output/doctor.json +0 -0
  144. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/output/health.json +0 -0
  145. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/output/log.json +0 -0
  146. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/output/merge.json +0 -0
  147. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/output/optimize.json +0 -0
  148. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/output/pick.json +0 -0
  149. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/output/pr.json +0 -0
  150. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/output/setup-agents.json +0 -0
  151. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/output/setup.json +0 -0
  152. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/output/snapshot.json +0 -0
  153. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/output/stash.json +0 -0
  154. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/output/status.json +0 -0
  155. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/output/suggest.json +0 -0
  156. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/output/summarize.json +0 -0
  157. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/output/sync.json +0 -0
  158. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/output/tag.json +0 -0
  159. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/output/undo.json +0 -0
  160. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/output/update.json +0 -0
  161. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/share/schemas/v1/output/worktree.json +0 -0
  162. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/__init__.py +0 -0
  163. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/conftest.py +0 -0
  164. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_adapters.py +0 -0
  165. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_audit.py +0 -0
  166. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_branches.py +0 -0
  167. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_clean.py +0 -0
  168. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_commands.py +0 -0
  169. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_commit.py +0 -0
  170. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_conflicts.py +0 -0
  171. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_design.py +0 -0
  172. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_diff.py +0 -0
  173. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_doctor.py +0 -0
  174. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_edge_cases.py +0 -0
  175. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_envelope_contract.py +0 -0
  176. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_git.py +0 -0
  177. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_git_output_utils.py +0 -0
  178. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_health.py +0 -0
  179. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_i18n.py +0 -0
  180. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_in_progress.py +0 -0
  181. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_json_envelope_utils.py +0 -0
  182. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_log.py +0 -0
  183. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_main.py +0 -0
  184. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_md_links_script.py +0 -0
  185. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_merge.py +0 -0
  186. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_optimize.py +0 -0
  187. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_output.py +0 -0
  188. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_parsing_utils.py +0 -0
  189. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_pick.py +0 -0
  190. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_pr.py +0 -0
  191. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_roadmap_baseline_script.py +0 -0
  192. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_sa_plan.py +0 -0
  193. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_sa_unit.py +0 -0
  194. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_schema_catalog.py +0 -0
  195. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_secret_scan.py +0 -0
  196. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_setup.py +0 -0
  197. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_setup_agents.py +0 -0
  198. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_show.py +0 -0
  199. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_snapshot.py +0 -0
  200. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_stash.py +0 -0
  201. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_status.py +0 -0
  202. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_suggest.py +0 -0
  203. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_summarize.py +0 -0
  204. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_sync.py +0 -0
  205. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_sync_changelog_es_script.py +0 -0
  206. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_tag.py +0 -0
  207. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_types.py +0 -0
  208. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_undo.py +0 -0
  209. {gitwise_cli-0.34.2 → gitwise_cli-0.35.0}/tests/test_worktree.py +0 -0
@@ -3,6 +3,16 @@
3
3
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
4
4
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
5
5
 
6
+ ## v0.35.0 (2026-07-22)
7
+
8
+ ### Feat
9
+
10
+ - **context**: bound agent output with truncation metadata
11
+
12
+ ### Fix
13
+
14
+ - **cli**: keep JSON Lines free of human timing
15
+
6
16
  ## v0.34.2 (2026-07-22)
7
17
 
8
18
  ### Fix
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gitwise-cli
3
- Version: 0.34.2
3
+ Version: 0.35.0
4
4
  Summary: Python CLI for optimizing git workflows and Claude Code integration
5
5
  Project-URL: Homepage, https://github.com/drzioner/gitwise
6
6
  Project-URL: Repository, https://github.com/drzioner/gitwise
@@ -1,6 +1,6 @@
1
1
  """gitwise -- CLI for optimizing git workflows and coding-agent integration."""
2
2
 
3
- __version__ = "0.34.2"
3
+ __version__ = "0.35.0"
4
4
 
5
5
 
6
6
  def get_version() -> str:
@@ -113,7 +113,8 @@ def main() -> int:
113
113
  reset_runtime_config()
114
114
 
115
115
  set_json_pretty(args.json_pretty)
116
- set_json_mode(args.json)
116
+ machine_output = args.json or getattr(args, "json_lines", False)
117
+ set_json_mode(machine_output)
117
118
 
118
119
  if args.lang:
119
120
  set_locale(args.lang)
@@ -147,8 +148,7 @@ def main() -> int:
147
148
  ret = 1
148
149
 
149
150
  elapsed = time.monotonic() - start
150
- as_json = getattr(args, "json", False)
151
- if not as_json and elapsed > 0.2 and args.command not in ("doctor",):
151
+ if not machine_output and elapsed > 0.2 and args.command not in ("doctor",):
152
152
  print_dim(t("completed_in", elapsed=f"{elapsed:.1f}"))
153
153
 
154
154
  return ret
@@ -328,7 +328,7 @@ def _run_context(args: argparse.Namespace) -> int:
328
328
  """Dispatch to ``context`` subcommand."""
329
329
  from gitwise.context import run_context
330
330
 
331
- return run_context(as_json=args.json)
331
+ return run_context(max_entries=args.max_entries, as_json=args.json)
332
332
 
333
333
 
334
334
  def _run_health(args: argparse.Namespace) -> int:
@@ -233,7 +233,12 @@ def _action_property_schema(action: argparse.Action) -> dict[str, object]:
233
233
 
234
234
  # A "limit"/"max-count" argument is a positive-integer bound; surface that
235
235
  # in the input schema so consumers know 0/negative are invalid.
236
- if value_schema["type"] == "integer" and action.dest in {"limit", "max_count", "maxcount"}:
236
+ if value_schema["type"] == "integer" and action.dest in {
237
+ "limit",
238
+ "max_count",
239
+ "max_entries",
240
+ "maxcount",
241
+ }:
237
242
  value_schema["minimum"] = 1
238
243
 
239
244
  description = "" if action.help is argparse.SUPPRESS else (action.help or "")
@@ -353,6 +353,12 @@ def build_parser() -> argparse.ArgumentParser:
353
353
  p.add_argument("--yes", "-y", action="store_true", help="skip confirmation for --hard")
354
354
 
355
355
  p = sub.add_parser("context", help="enriched repo snapshot for LLMs", parents=[parent])
356
+ p.add_argument(
357
+ "--max-entries",
358
+ type=int,
359
+ default=100,
360
+ help="maximum directory tree entries (default: 100)",
361
+ )
356
362
 
357
363
  p = sub.add_parser("health", help="repo health score (0-100)", parents=[parent])
358
364
 
@@ -395,6 +395,10 @@
395
395
  "es": "## Tipos de archivo",
396
396
  "en": "## File Types"
397
397
  },
398
+ "ctx_invalid_max_entries": {
399
+ "es": "--max-entries debe ser mayor que cero",
400
+ "en": "--max-entries must be greater than zero"
401
+ },
398
402
  "ctx_more_entries": {
399
403
  "es": " ... ({count} entradas más)",
400
404
  "en": " ... ({count} more entries)"
@@ -12,10 +12,13 @@ from gitwise.output import (
12
12
  print_dim,
13
13
  print_header,
14
14
  print_json,
15
+ report_error,
15
16
  status,
16
17
  )
17
18
  from gitwise.utils.json_envelope import ok_envelope
18
19
 
20
+ DEFAULT_MAX_ENTRIES = 100
21
+
19
22
 
20
23
  def _directory_tree(root: Path, max_depth: int = 3) -> list[str]:
21
24
  """Return Unicode box-drawing lines for the directory tree, skipping common noise dirs."""
@@ -118,14 +121,24 @@ def _branch_topology(root: Path) -> dict[str, list[str]]:
118
121
  return {"local": local, "remote": remote}
119
122
 
120
123
 
121
- def run_context(*, as_json: bool = False) -> int:
124
+ def run_context(*, max_entries: int = DEFAULT_MAX_ENTRIES, as_json: bool = False) -> int:
122
125
  """Entry point for the ``gitwise context`` command."""
123
126
  root = require_root(as_json=as_json, command="context")
124
127
  if root is None:
125
128
  return 1
129
+ if max_entries <= 0:
130
+ return report_error(
131
+ "context",
132
+ as_json=as_json,
133
+ msg=t("ctx_invalid_max_entries"),
134
+ code="invalid_max_entries",
135
+ )
126
136
 
127
137
  with status(t("status_context_scan")):
128
- tree = _directory_tree(root)
138
+ full_tree = _directory_tree(root)
139
+ tree = full_tree[:max_entries]
140
+ tree_total = len(full_tree)
141
+ tree_truncated = tree_total > len(tree)
129
142
  contributors = _top_contributors(root)
130
143
  file_types = _file_type_breakdown(root)
131
144
  todo_fixme = _todo_fixme_counts(root)
@@ -140,6 +153,8 @@ def run_context(*, as_json: bool = False) -> int:
140
153
  "context",
141
154
  data={
142
155
  "tree": tree,
156
+ "tree_total": tree_total,
157
+ "tree_truncated": tree_truncated,
143
158
  "contributors": contributors,
144
159
  "file_types": file_types,
145
160
  "todo_fixme": todo_fixme,
@@ -150,10 +165,10 @@ def run_context(*, as_json: bool = False) -> int:
150
165
  )
151
166
  else:
152
167
  print_header(t("ctx_directory_tree"))
153
- for ln in tree[:50]:
168
+ for ln in tree:
154
169
  info(f" {ln}")
155
- if len(tree) > 50:
156
- print_dim(t("ctx_more_entries", count=str(len(tree) - 50)))
170
+ if tree_truncated:
171
+ print_dim(t("ctx_more_entries", count=str(tree_total - len(tree))))
157
172
  print_blank()
158
173
  if contributors:
159
174
  print_bracket(t("ctx_top_contributors"))
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "gitwise-cli"
3
- version = "0.34.2"
3
+ version = "0.35.0"
4
4
  description = "Python CLI for optimizing git workflows and Claude Code integration"
5
5
  readme = "README.md"
6
6
  license = "MIT"
@@ -31,6 +31,12 @@
31
31
  "type": "boolean",
32
32
  "description": "pretty-print JSON output",
33
33
  "default": false
34
+ },
35
+ "max_entries": {
36
+ "type": "integer",
37
+ "minimum": 1,
38
+ "description": "maximum directory tree entries (default: 100)",
39
+ "default": 100
34
40
  }
35
41
  }
36
42
  }
@@ -52,7 +52,21 @@
52
52
  },
53
53
  "data": {
54
54
  "type": "object",
55
- "properties": {}
55
+ "properties": {
56
+ "tree": {
57
+ "type": "array",
58
+ "items": {
59
+ "type": "string"
60
+ }
61
+ },
62
+ "tree_total": {
63
+ "type": "integer",
64
+ "minimum": 0
65
+ },
66
+ "tree_truncated": {
67
+ "type": "boolean"
68
+ }
69
+ }
56
70
  }
57
71
  }
58
72
  }
@@ -0,0 +1,63 @@
1
+ """Tests for gitwise context command."""
2
+
3
+ import json
4
+
5
+ from conftest import run_gitwise
6
+
7
+
8
+ def test_context_json(tmp_git_repo):
9
+ r = run_gitwise("context", "--json", cwd=tmp_git_repo)
10
+ assert r.returncode == 0
11
+ data = json.loads(r.stdout)
12
+ assert data["v"] == 3
13
+ inner = data["data"]
14
+ assert isinstance(inner["tree"], list)
15
+ assert isinstance(inner["contributors"], list)
16
+ assert isinstance(inner["file_types"], dict)
17
+ assert "todo_fixme" in inner
18
+ assert "branches" in inner
19
+
20
+
21
+ def test_context_human(tmp_git_repo):
22
+ r = run_gitwise("context", cwd=tmp_git_repo)
23
+ assert r.returncode == 0
24
+ assert "Directory Tree" in r.stdout
25
+
26
+
27
+ def test_context_json_limits_tree_and_reports_truncation(tmp_git_repo):
28
+ for index in range(5):
29
+ (tmp_git_repo / f"file-{index}.txt").write_text("x")
30
+
31
+ r = run_gitwise("context", "--max-entries", "2", "--json", cwd=tmp_git_repo)
32
+
33
+ assert r.returncode == 0
34
+ data = json.loads(r.stdout)["data"]
35
+ assert len(data["tree"]) == 2
36
+ assert data["tree_total"] >= 5
37
+ assert data["tree_truncated"] is True
38
+
39
+
40
+ def test_context_json_rejects_non_positive_max_entries(tmp_git_repo):
41
+ r = run_gitwise("context", "--max-entries", "0", "--json", cwd=tmp_git_repo)
42
+
43
+ assert r.returncode == 1
44
+ data = json.loads(r.stdout)
45
+ assert data["errors"][0]["code"] == "invalid_max_entries"
46
+
47
+
48
+ def test_context_json_default_limits_tree_to_one_hundred_entries(tmp_git_repo):
49
+ for index in range(105):
50
+ (tmp_git_repo / f"wide-file-{index:03d}.txt").write_text("x")
51
+
52
+ r = run_gitwise("context", "--json", cwd=tmp_git_repo)
53
+
54
+ assert r.returncode == 0
55
+ data = json.loads(r.stdout)["data"]
56
+ assert len(data["tree"]) == 100
57
+ assert data["tree_total"] >= 105
58
+ assert data["tree_truncated"] is True
59
+
60
+
61
+ def test_context_not_git(tmp_path):
62
+ r = run_gitwise("context", cwd=tmp_path)
63
+ assert r.returncode == 1
@@ -1,29 +0,0 @@
1
- """Tests for gitwise context command."""
2
-
3
- import json
4
-
5
- from conftest import run_gitwise
6
-
7
-
8
- def test_context_json(tmp_git_repo):
9
- r = run_gitwise("context", "--json", cwd=tmp_git_repo)
10
- assert r.returncode == 0
11
- data = json.loads(r.stdout)
12
- assert data["v"] == 3
13
- inner = data["data"]
14
- assert isinstance(inner["tree"], list)
15
- assert isinstance(inner["contributors"], list)
16
- assert isinstance(inner["file_types"], dict)
17
- assert "todo_fixme" in inner
18
- assert "branches" in inner
19
-
20
-
21
- def test_context_human(tmp_git_repo):
22
- r = run_gitwise("context", cwd=tmp_git_repo)
23
- assert r.returncode == 0
24
- assert "Directory Tree" in r.stdout
25
-
26
-
27
- def test_context_not_git(tmp_path):
28
- r = run_gitwise("context", cwd=tmp_path)
29
- assert r.returncode == 1
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes