plai_testr 0.1.1

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 (77) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +16 -0
  3. data/LICENSE.txt +21 -0
  4. data/README.md +176 -0
  5. data/bin/plai_testr +5 -0
  6. data/docs/frame_queue.md +123 -0
  7. data/docs/referee.md +59 -0
  8. data/lib/plai_testr/agents/ollama_client.rb +177 -0
  9. data/lib/plai_testr/agents/player_agent.rb +216 -0
  10. data/lib/plai_testr/agents/referee_agent.rb +56 -0
  11. data/lib/plai_testr/botrun.rb +60 -0
  12. data/lib/plai_testr/cli.rb +190 -0
  13. data/lib/plai_testr/config.rb +39 -0
  14. data/lib/plai_testr/deck.rb +11 -0
  15. data/lib/plai_testr/errors.rb +9 -0
  16. data/lib/plai_testr/event_log.rb +24 -0
  17. data/lib/plai_testr/game.rb +50 -0
  18. data/lib/plai_testr/generator.rb +50 -0
  19. data/lib/plai_testr/model_settings.rb +25 -0
  20. data/lib/plai_testr/names.rb +7 -0
  21. data/lib/plai_testr/personas.rb +97 -0
  22. data/lib/plai_testr/preflight.rb +70 -0
  23. data/lib/plai_testr/reporter/botrun_report.rb +141 -0
  24. data/lib/plai_testr/reporter/model_comparison.rb +104 -0
  25. data/lib/plai_testr/reporter/report_builder.rb +154 -0
  26. data/lib/plai_testr/reporter/think_log.rb +32 -0
  27. data/lib/plai_testr/rules_loader.rb +40 -0
  28. data/lib/plai_testr/session/frame_queue.rb +47 -0
  29. data/lib/plai_testr/session/manager.rb +77 -0
  30. data/lib/plai_testr/session/runner.rb +555 -0
  31. data/lib/plai_testr/state/base.rb +13 -0
  32. data/lib/plai_testr/state/game_state.rb +102 -0
  33. data/lib/plai_testr/state/player_state.rb +61 -0
  34. data/lib/plai_testr/version.rb +3 -0
  35. data/lib/plai_testr.rb +61 -0
  36. data/templates/app/.gitignore +3 -0
  37. data/templates/app/.rspec +3 -0
  38. data/templates/app/AGENTS.md +158 -0
  39. data/templates/app/CLAUDE.md +1 -0
  40. data/templates/app/Gemfile.erb +7 -0
  41. data/templates/app/README.md.erb +91 -0
  42. data/templates/app/config/plai_testr.rb +15 -0
  43. data/templates/app/spec/spec_helper.rb +25 -0
  44. data/templates/examples/gin_rummy/NOTES.md +12 -0
  45. data/templates/examples/gin_rummy/data/bots.yml +18 -0
  46. data/templates/examples/gin_rummy/data/personas.yml +26 -0
  47. data/templates/examples/gin_rummy/data/rules.json +76 -0
  48. data/templates/examples/gin_rummy/data/rules.md +44 -0
  49. data/templates/examples/gin_rummy/lib/gin_rummy/bot.rb +34 -0
  50. data/templates/examples/gin_rummy/lib/gin_rummy/game.rb +8 -0
  51. data/templates/examples/gin_rummy/lib/gin_rummy/melds.rb +51 -0
  52. data/templates/examples/gin_rummy/lib/gin_rummy/session/runner.rb +197 -0
  53. data/templates/examples/gin_rummy/lib/gin_rummy/state/game_state.rb +19 -0
  54. data/templates/examples/gin_rummy/lib/gin_rummy.rb +9 -0
  55. data/templates/examples/gin_rummy/spec/melds_spec.rb +26 -0
  56. data/templates/examples/gin_rummy/spec/session/runner_spec.rb +105 -0
  57. data/templates/examples/hearts/data/bots.yml +22 -0
  58. data/templates/examples/hearts/data/personas.yml +27 -0
  59. data/templates/examples/hearts/data/rules.json +73 -0
  60. data/templates/examples/hearts/data/rules.md +30 -0
  61. data/templates/examples/hearts/lib/hearts/bot.rb +53 -0
  62. data/templates/examples/hearts/lib/hearts/game.rb +16 -0
  63. data/templates/examples/hearts/lib/hearts/reporter/botrun_report.rb +29 -0
  64. data/templates/examples/hearts/lib/hearts/session/runner.rb +255 -0
  65. data/templates/examples/hearts/lib/hearts/state/game_state.rb +19 -0
  66. data/templates/examples/hearts/lib/hearts.rb +11 -0
  67. data/templates/examples/hearts/spec/session/runner_spec.rb +122 -0
  68. data/templates/game/data/bots.yml +13 -0
  69. data/templates/game/data/personas.yml +16 -0
  70. data/templates/game/data/rules.json.erb +16 -0
  71. data/templates/game/data/rules.md.erb +11 -0
  72. data/templates/game/lib/__name__/bot.rb.erb +7 -0
  73. data/templates/game/lib/__name__/session/runner.rb.erb +36 -0
  74. data/templates/game/lib/__name__/state/game_state.rb.erb +11 -0
  75. data/templates/game/lib/__name__.rb.erb +10 -0
  76. data/templates/game/spec/session/runner_spec.rb.erb +29 -0
  77. metadata +153 -0
metadata ADDED
@@ -0,0 +1,153 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: plai_testr
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Aaron H
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: rake
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '13'
19
+ type: :development
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '13'
26
+ - !ruby/object:Gem::Dependency
27
+ name: rspec
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '3'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '3'
40
+ description: |-
41
+ PlAI Testr mediates sessions of tabletop games between LLM agents running locally
42
+ via Ollama. The game lists every legal move as a numbered menu and the model picks
43
+ one. It records turn-by-turn transcripts with reasoning, checkpoints for resuming,
44
+ and generates playtest reports to help game designers assess balance and gameplay issues.
45
+ email:
46
+ - armahillo@gmail.com
47
+ executables:
48
+ - plai_testr
49
+ extensions: []
50
+ extra_rdoc_files: []
51
+ files:
52
+ - CHANGELOG.md
53
+ - LICENSE.txt
54
+ - README.md
55
+ - bin/plai_testr
56
+ - docs/frame_queue.md
57
+ - docs/referee.md
58
+ - lib/plai_testr.rb
59
+ - lib/plai_testr/agents/ollama_client.rb
60
+ - lib/plai_testr/agents/player_agent.rb
61
+ - lib/plai_testr/agents/referee_agent.rb
62
+ - lib/plai_testr/botrun.rb
63
+ - lib/plai_testr/cli.rb
64
+ - lib/plai_testr/config.rb
65
+ - lib/plai_testr/deck.rb
66
+ - lib/plai_testr/errors.rb
67
+ - lib/plai_testr/event_log.rb
68
+ - lib/plai_testr/game.rb
69
+ - lib/plai_testr/generator.rb
70
+ - lib/plai_testr/model_settings.rb
71
+ - lib/plai_testr/names.rb
72
+ - lib/plai_testr/personas.rb
73
+ - lib/plai_testr/preflight.rb
74
+ - lib/plai_testr/reporter/botrun_report.rb
75
+ - lib/plai_testr/reporter/model_comparison.rb
76
+ - lib/plai_testr/reporter/report_builder.rb
77
+ - lib/plai_testr/reporter/think_log.rb
78
+ - lib/plai_testr/rules_loader.rb
79
+ - lib/plai_testr/session/frame_queue.rb
80
+ - lib/plai_testr/session/manager.rb
81
+ - lib/plai_testr/session/runner.rb
82
+ - lib/plai_testr/state/base.rb
83
+ - lib/plai_testr/state/game_state.rb
84
+ - lib/plai_testr/state/player_state.rb
85
+ - lib/plai_testr/version.rb
86
+ - templates/app/.gitignore
87
+ - templates/app/.rspec
88
+ - templates/app/AGENTS.md
89
+ - templates/app/CLAUDE.md
90
+ - templates/app/Gemfile.erb
91
+ - templates/app/README.md.erb
92
+ - templates/app/config/plai_testr.rb
93
+ - templates/app/spec/spec_helper.rb
94
+ - templates/examples/gin_rummy/NOTES.md
95
+ - templates/examples/gin_rummy/data/bots.yml
96
+ - templates/examples/gin_rummy/data/personas.yml
97
+ - templates/examples/gin_rummy/data/rules.json
98
+ - templates/examples/gin_rummy/data/rules.md
99
+ - templates/examples/gin_rummy/lib/gin_rummy.rb
100
+ - templates/examples/gin_rummy/lib/gin_rummy/bot.rb
101
+ - templates/examples/gin_rummy/lib/gin_rummy/game.rb
102
+ - templates/examples/gin_rummy/lib/gin_rummy/melds.rb
103
+ - templates/examples/gin_rummy/lib/gin_rummy/session/runner.rb
104
+ - templates/examples/gin_rummy/lib/gin_rummy/state/game_state.rb
105
+ - templates/examples/gin_rummy/spec/melds_spec.rb
106
+ - templates/examples/gin_rummy/spec/session/runner_spec.rb
107
+ - templates/examples/hearts/data/bots.yml
108
+ - templates/examples/hearts/data/personas.yml
109
+ - templates/examples/hearts/data/rules.json
110
+ - templates/examples/hearts/data/rules.md
111
+ - templates/examples/hearts/lib/hearts.rb
112
+ - templates/examples/hearts/lib/hearts/bot.rb
113
+ - templates/examples/hearts/lib/hearts/game.rb
114
+ - templates/examples/hearts/lib/hearts/reporter/botrun_report.rb
115
+ - templates/examples/hearts/lib/hearts/session/runner.rb
116
+ - templates/examples/hearts/lib/hearts/state/game_state.rb
117
+ - templates/examples/hearts/spec/session/runner_spec.rb
118
+ - templates/game/data/bots.yml
119
+ - templates/game/data/personas.yml
120
+ - templates/game/data/rules.json.erb
121
+ - templates/game/data/rules.md.erb
122
+ - templates/game/lib/__name__.rb.erb
123
+ - templates/game/lib/__name__/bot.rb.erb
124
+ - templates/game/lib/__name__/session/runner.rb.erb
125
+ - templates/game/lib/__name__/state/game_state.rb.erb
126
+ - templates/game/spec/session/runner_spec.rb.erb
127
+ homepage: https://aaronh.games/tools/plai_testr/
128
+ licenses:
129
+ - MIT
130
+ metadata:
131
+ homepage_uri: https://aaronh.games/tools/plai_testr/
132
+ source_code_uri: https://github.com/armahillo/plai_testr
133
+ changelog_uri: https://github.com/armahillo/plai_testr/blob/main/CHANGELOG.md
134
+ bug_tracker_uri: https://github.com/armahillo/plai_testr/issues
135
+ rubygems_mfa_required: 'true'
136
+ rdoc_options: []
137
+ require_paths:
138
+ - lib
139
+ required_ruby_version: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - ">="
142
+ - !ruby/object:Gem::Version
143
+ version: '3.4'
144
+ required_rubygems_version: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ version: '0'
149
+ requirements: []
150
+ rubygems_version: 4.0.10
151
+ specification_version: 4
152
+ summary: Automated tabletop game playtesting using local LLM agents
153
+ test_files: []