balatrobot 0.6.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 (90) hide show
  1. balatrobot-0.6.0/.claude/commands/commit-msg.md +43 -0
  2. balatrobot-0.6.0/.claude/commands/commit.md +53 -0
  3. balatrobot-0.6.0/.claude/commands/test.md +3 -0
  4. balatrobot-0.6.0/.claude/settings.json +36 -0
  5. balatrobot-0.6.0/.cursor/rules/docs-formatting.mdc +51 -0
  6. balatrobot-0.6.0/.cursor/rules/python-development.mdc +602 -0
  7. balatrobot-0.6.0/.editorconfig +20 -0
  8. balatrobot-0.6.0/.envrc.example +9 -0
  9. balatrobot-0.6.0/.gitattributes +2 -0
  10. balatrobot-0.6.0/.github/workflows/code_quality.yml +66 -0
  11. balatrobot-0.6.0/.github/workflows/deploy_docs.yml +45 -0
  12. balatrobot-0.6.0/.github/workflows/release-pypi.yml +29 -0
  13. balatrobot-0.6.0/.github/workflows/release_please.yml +65 -0
  14. balatrobot-0.6.0/.gitignore +12 -0
  15. balatrobot-0.6.0/.gitmodules +0 -0
  16. balatrobot-0.6.0/.mdformat.toml +11 -0
  17. balatrobot-0.6.0/.python-version +1 -0
  18. balatrobot-0.6.0/.vscode/extensions.json +11 -0
  19. balatrobot-0.6.0/.vscode/settings.json +6 -0
  20. balatrobot-0.6.0/CHANGELOG.md +410 -0
  21. balatrobot-0.6.0/CLAUDE.md +111 -0
  22. balatrobot-0.6.0/LICENSE +21 -0
  23. balatrobot-0.6.0/Makefile +155 -0
  24. balatrobot-0.6.0/PKG-INFO +52 -0
  25. balatrobot-0.6.0/README.md +31 -0
  26. balatrobot-0.6.0/balatro.sh +462 -0
  27. balatrobot-0.6.0/balatrobot.json +21 -0
  28. balatrobot-0.6.0/balatrobot.lua +17 -0
  29. balatrobot-0.6.0/bots/example.py +45 -0
  30. balatrobot-0.6.0/bots/replay.py +170 -0
  31. balatrobot-0.6.0/docs/assets/balatrobot.svg +68 -0
  32. balatrobot-0.6.0/docs/balatrobot-api.md +141 -0
  33. balatrobot-0.6.0/docs/contributing.md +276 -0
  34. balatrobot-0.6.0/docs/developing-bots.md +147 -0
  35. balatrobot-0.6.0/docs/index.md +44 -0
  36. balatrobot-0.6.0/docs/installation.md +262 -0
  37. balatrobot-0.6.0/docs/logging-systems.md +119 -0
  38. balatrobot-0.6.0/docs/protocol-api.md +230 -0
  39. balatrobot-0.6.0/mkdocs.yml +89 -0
  40. balatrobot-0.6.0/pyproject.toml +56 -0
  41. balatrobot-0.6.0/runs/.gitkeep +0 -0
  42. balatrobot-0.6.0/src/balatrobot/__init__.py +21 -0
  43. balatrobot-0.6.0/src/balatrobot/client.py +483 -0
  44. balatrobot-0.6.0/src/balatrobot/enums.py +478 -0
  45. balatrobot-0.6.0/src/balatrobot/exceptions.py +166 -0
  46. balatrobot-0.6.0/src/balatrobot/models.py +402 -0
  47. balatrobot-0.6.0/src/balatrobot/py.typed +0 -0
  48. balatrobot-0.6.0/src/lua/api.lua +1535 -0
  49. balatrobot-0.6.0/src/lua/log.lua +526 -0
  50. balatrobot-0.6.0/src/lua/settings.lua +247 -0
  51. balatrobot-0.6.0/src/lua/types.lua +373 -0
  52. balatrobot-0.6.0/src/lua/utils.lua +1086 -0
  53. balatrobot-0.6.0/tests/balatrobot/conftest.py +21 -0
  54. balatrobot-0.6.0/tests/balatrobot/test_client.py +484 -0
  55. balatrobot-0.6.0/tests/balatrobot/test_exceptions.py +90 -0
  56. balatrobot-0.6.0/tests/balatrobot/test_models.py +30 -0
  57. balatrobot-0.6.0/tests/conftest.py +41 -0
  58. balatrobot-0.6.0/tests/lua/__init__.py +0 -0
  59. balatrobot-0.6.0/tests/lua/conftest.py +165 -0
  60. balatrobot-0.6.0/tests/lua/endpoints/__init__.py +0 -0
  61. balatrobot-0.6.0/tests/lua/endpoints/checkpoints/basic_shop_setup.jkr +3 -0
  62. balatrobot-0.6.0/tests/lua/endpoints/checkpoints/buy_cant_use.jkr +3 -0
  63. balatrobot-0.6.0/tests/lua/endpoints/checkpoints/plasma_deck.jkr +3 -0
  64. balatrobot-0.6.0/tests/lua/endpoints/test_cash_out.py +65 -0
  65. balatrobot-0.6.0/tests/lua/endpoints/test_get_gamestate.py +56 -0
  66. balatrobot-0.6.0/tests/lua/endpoints/test_get_save_info.py +68 -0
  67. balatrobot-0.6.0/tests/lua/endpoints/test_go_to_menu.py +33 -0
  68. balatrobot-0.6.0/tests/lua/endpoints/test_load_save.py +58 -0
  69. balatrobot-0.6.0/tests/lua/endpoints/test_play_hand_or_discard.py +277 -0
  70. balatrobot-0.6.0/tests/lua/endpoints/test_rearrange_consumables.py +257 -0
  71. balatrobot-0.6.0/tests/lua/endpoints/test_rearrange_hand.py +154 -0
  72. balatrobot-0.6.0/tests/lua/endpoints/test_rearrange_jokers.py +195 -0
  73. balatrobot-0.6.0/tests/lua/endpoints/test_sell_consumable.py +238 -0
  74. balatrobot-0.6.0/tests/lua/endpoints/test_sell_joker.py +277 -0
  75. balatrobot-0.6.0/tests/lua/endpoints/test_shop.py +582 -0
  76. balatrobot-0.6.0/tests/lua/endpoints/test_skip_or_select_blind.py +230 -0
  77. balatrobot-0.6.0/tests/lua/endpoints/test_start_run.py +100 -0
  78. balatrobot-0.6.0/tests/lua/endpoints/test_use_consumable.py +411 -0
  79. balatrobot-0.6.0/tests/lua/test_connection.py +119 -0
  80. balatrobot-0.6.0/tests/lua/test_log.py +207 -0
  81. balatrobot-0.6.0/tests/lua/test_protocol_errors.py +182 -0
  82. balatrobot-0.6.0/tests/runs/buy_joker.jsonl +3 -0
  83. balatrobot-0.6.0/tests/runs/no_shop.jsonl +3 -0
  84. balatrobot-0.6.0/tests/runs/rearrange_consumables.jsonl +3 -0
  85. balatrobot-0.6.0/tests/runs/rearrange_jokers.jsonl +3 -0
  86. balatrobot-0.6.0/tests/runs/sell_consumables.jsonl +3 -0
  87. balatrobot-0.6.0/tests/runs/sell_jokers.jsonl +3 -0
  88. balatrobot-0.6.0/tests/runs/shop_reroll.jsonl +3 -0
  89. balatrobot-0.6.0/tests/runs/use_consumable.planet.jsonl +3 -0
  90. balatrobot-0.6.0/uv.lock +918 -0
@@ -0,0 +1,43 @@
1
+ Generate a conventional commit message for the current staged changes.
2
+
3
+ Analyze the git diff of staged files and create a commit message following conventional commits specification:
4
+
5
+ **Format:** `<type>(<scope>): <description>`
6
+
7
+ **Types:**
8
+
9
+ - feat: new feature
10
+ - fix: bug fix
11
+ - docs: documentation
12
+ - style: formatting, missing semicolons, etc.
13
+ - refactor: code change that neither fixes a bug nor adds a feature
14
+ - test: adding or correcting tests
15
+ - chore: maintenance tasks
16
+ - ci: continuous integration changes
17
+ - revert: reverts a previous commit
18
+
19
+ **Scopes:**
20
+
21
+ - api: Lua API and Python API communication
22
+ - log: Logging and Replay functionality
23
+ - bot: Python bot framework and base classes
24
+ - examples: Example bots and usage samples
25
+ - dev: Development tools and environment
26
+
27
+ **Workflow:**
28
+
29
+ 1. Run `git status` to see overall repository state. If there are are no staged changes, exit.
30
+ 2. Run `git diff --staged` to analyze the actual changes
31
+ 3. Run `git diff --stat --staged` for summary of changed files
32
+ 4. Run `git log --oneline -10` to review recent commit patterns
33
+ 5. Choose appropriate type and scope based on changes
34
+ 6. Write concise description (50 chars max for first line)
35
+ 7. Include body if changes are complex
36
+ 8. Return the generated commit message enclosed in triple backticks
37
+
38
+ **Notes**
39
+
40
+ - Do not include emojis in the commit message.
41
+ - Do not include `🤖 Generated with [Claude Code](https://claude.ai/code)` in the commit message.
42
+ - If the list is empty, do not add any co-authors
43
+ - Include in the body of the commit message the following line as last line: `# Co-Authored-By: Claude <noreply@anthropic.com>`
@@ -0,0 +1,53 @@
1
+ Generate a conventional commit message for the current staged changes.
2
+
3
+ Analyze the git diff of staged files and create a commit message following conventional commits specification:
4
+
5
+ **Format:** `<type>(<scope>): <description>`
6
+
7
+ **Types:**
8
+
9
+ - feat: new feature
10
+ - fix: bug fix
11
+ - docs: documentation
12
+ - style: formatting, missing semicolons, etc.
13
+ - refactor: code change that neither fixes a bug nor adds a feature
14
+ - test: adding or correcting tests
15
+ - chore: maintenance tasks
16
+ - ci: continuous integration changes
17
+ - revert: reverts a previous commit
18
+
19
+ **Scopes:**
20
+
21
+ - api: Lua API and Python API communication
22
+ - log: Logging and Replay functionality
23
+ - bot: Python bot framework and base classes
24
+ - examples: Example bots and usage samples
25
+ - dev: Development tools and environment
26
+
27
+ **Workflow:**
28
+
29
+ 1. Run `git status` to see overall repository state. If there are are no staged changes, exit.
30
+ 2. Run `git diff --staged` to analyze the actual changes
31
+ 3. Run `git diff --stat --staged` for summary of changed files
32
+ 4. Run `git log --oneline -10` to review recent commit patterns
33
+ 5. Choose appropriate type and scope based on changes
34
+ 6. Write concise description (50 chars max for first line)
35
+ 7. Include body if changes are complex
36
+ 8. Commit the staged changes with the generated message
37
+
38
+ **Co-authors**
39
+ Here is the collection of all previous co-authors of the repo as reference (names and emails):
40
+
41
+ - claude: `Co-Authored-By: Claude <noreply@anthropic.com>`
42
+
43
+ Here is a list of the co-authors which contributed to this commit:
44
+
45
+ ```
46
+ $ARGUMENTS
47
+ ```
48
+
49
+ **Notes**
50
+
51
+ - Do not include emojis in the commit message.
52
+ - Do not include `🤖 Generated with [Claude Code](https://claude.ai/code)` in the commit message.
53
+ - If the list is empty, do not add any co-authors
@@ -0,0 +1,3 @@
1
+ Run tests following the testing guidelines in CLAUDE.md.
2
+
3
+ See the Testing section in CLAUDE.md for complete instructions on prerequisites, workflow, and troubleshooting.
@@ -0,0 +1,36 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(pytest:*)",
5
+ "Bash(ruff check:*)",
6
+ "Bash(ruff format:*)",
7
+ "Bash(basedpyright:*)"
8
+ ],
9
+ "deny": [
10
+ "Edit(CHANGELOG.md)",
11
+ "MultiEdit(CHANGELOG.md)",
12
+ "Write(CHANGELOG.md)"
13
+ ]
14
+ },
15
+ "hooks": {
16
+ "PostToolUse": [
17
+ {
18
+ "matcher": "Write|Edit|MultiEdit",
19
+ "hooks": [
20
+ {
21
+ "type": "command",
22
+ "command": "stylua src/lua"
23
+ },
24
+ {
25
+ "type": "command",
26
+ "command": "ruff check --select I --fix . && ruff format -s ."
27
+ },
28
+ {
29
+ "type": "command",
30
+ "command": "mdformat ."
31
+ }
32
+ ]
33
+ }
34
+ ]
35
+ }
36
+ }
@@ -0,0 +1,51 @@
1
+ ---
2
+ globs: docs/**/*.md
3
+ alwaysApply: false
4
+ description: Documentation formatting guidelines for files in the docs directory
5
+ ---
6
+
7
+ # Documentation Formatting Guidelines
8
+
9
+ When writing documentation files in the docs directory:
10
+
11
+ ## Header Structure
12
+
13
+ - Use minimal header nesting - prefer level 1 (`#`) and level 2 (`##`) headers
14
+ - Level 3 headers (`###`) are allowed when they significantly improve readability and document structure
15
+ - **Method names, function signatures, and similar structured content** should use level 3 headers (`###`) for better navigation and clarity
16
+ - For other sub-sections that would normally be level 3 or deeper, consider using **bold text** or other formatting instead
17
+ - Preserve logical hierarchy and importance in your header structure
18
+
19
+ ## Spacing Requirements
20
+
21
+ - Always leave a blank line after any title/header
22
+ - Always leave a blank line before any list (bulleted or numbered)
23
+ - This ensures proper visual separation and readability
24
+
25
+ ## Examples
26
+
27
+ Good formatting:
28
+ ```markdown
29
+ # Main Title
30
+
31
+ Content here...
32
+
33
+ ## Section Title
34
+
35
+ More content...
36
+
37
+ ### Method Name or Structured Content
38
+
39
+ Detailed information...
40
+
41
+ - List item 1
42
+ - List item 2
43
+ ```
44
+
45
+ Avoid:
46
+ ```markdown
47
+ # Main Title
48
+ Content immediately after title...
49
+ #### Excessive nesting
50
+ - List without spacing above
51
+ ```