decision_agent 0.1.4 → 0.1.7

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 (87) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +83 -232
  3. data/bin/decision_agent +1 -1
  4. data/lib/decision_agent/ab_testing/ab_testing_agent.rb +46 -10
  5. data/lib/decision_agent/agent.rb +5 -3
  6. data/lib/decision_agent/auth/access_audit_logger.rb +122 -0
  7. data/lib/decision_agent/auth/authenticator.rb +127 -0
  8. data/lib/decision_agent/auth/password_reset_manager.rb +57 -0
  9. data/lib/decision_agent/auth/password_reset_token.rb +33 -0
  10. data/lib/decision_agent/auth/permission.rb +29 -0
  11. data/lib/decision_agent/auth/permission_checker.rb +43 -0
  12. data/lib/decision_agent/auth/rbac_adapter.rb +278 -0
  13. data/lib/decision_agent/auth/rbac_config.rb +51 -0
  14. data/lib/decision_agent/auth/role.rb +56 -0
  15. data/lib/decision_agent/auth/session.rb +33 -0
  16. data/lib/decision_agent/auth/session_manager.rb +57 -0
  17. data/lib/decision_agent/auth/user.rb +70 -0
  18. data/lib/decision_agent/context.rb +24 -4
  19. data/lib/decision_agent/decision.rb +10 -3
  20. data/lib/decision_agent/dsl/condition_evaluator.rb +378 -1
  21. data/lib/decision_agent/dsl/schema_validator.rb +8 -1
  22. data/lib/decision_agent/errors.rb +38 -0
  23. data/lib/decision_agent/evaluation.rb +10 -3
  24. data/lib/decision_agent/evaluation_validator.rb +8 -13
  25. data/lib/decision_agent/monitoring/dashboard_server.rb +1 -0
  26. data/lib/decision_agent/monitoring/metrics_collector.rb +17 -5
  27. data/lib/decision_agent/testing/batch_test_importer.rb +373 -0
  28. data/lib/decision_agent/testing/batch_test_runner.rb +244 -0
  29. data/lib/decision_agent/testing/test_coverage_analyzer.rb +191 -0
  30. data/lib/decision_agent/testing/test_result_comparator.rb +235 -0
  31. data/lib/decision_agent/testing/test_scenario.rb +42 -0
  32. data/lib/decision_agent/version.rb +10 -1
  33. data/lib/decision_agent/versioning/activerecord_adapter.rb +1 -1
  34. data/lib/decision_agent/versioning/file_storage_adapter.rb +96 -28
  35. data/lib/decision_agent/web/middleware/auth_middleware.rb +45 -0
  36. data/lib/decision_agent/web/middleware/permission_middleware.rb +94 -0
  37. data/lib/decision_agent/web/public/app.js +184 -29
  38. data/lib/decision_agent/web/public/batch_testing.html +640 -0
  39. data/lib/decision_agent/web/public/index.html +38 -10
  40. data/lib/decision_agent/web/public/login.html +298 -0
  41. data/lib/decision_agent/web/public/users.html +679 -0
  42. data/lib/decision_agent/web/server.rb +873 -7
  43. data/lib/decision_agent.rb +52 -0
  44. data/lib/generators/decision_agent/install/templates/README +1 -1
  45. data/lib/generators/decision_agent/install/templates/rule_version.rb +1 -1
  46. data/spec/ab_testing/ab_test_assignment_spec.rb +253 -0
  47. data/spec/ab_testing/ab_test_manager_spec.rb +282 -0
  48. data/spec/ab_testing/ab_testing_agent_spec.rb +481 -0
  49. data/spec/ab_testing/storage/adapter_spec.rb +64 -0
  50. data/spec/ab_testing/storage/memory_adapter_spec.rb +485 -0
  51. data/spec/advanced_operators_spec.rb +1003 -0
  52. data/spec/agent_spec.rb +40 -0
  53. data/spec/audit_adapters_spec.rb +18 -0
  54. data/spec/auth/access_audit_logger_spec.rb +394 -0
  55. data/spec/auth/authenticator_spec.rb +112 -0
  56. data/spec/auth/password_reset_spec.rb +294 -0
  57. data/spec/auth/permission_checker_spec.rb +207 -0
  58. data/spec/auth/permission_spec.rb +73 -0
  59. data/spec/auth/rbac_adapter_spec.rb +550 -0
  60. data/spec/auth/rbac_config_spec.rb +82 -0
  61. data/spec/auth/role_spec.rb +51 -0
  62. data/spec/auth/session_manager_spec.rb +172 -0
  63. data/spec/auth/session_spec.rb +112 -0
  64. data/spec/auth/user_spec.rb +130 -0
  65. data/spec/context_spec.rb +43 -0
  66. data/spec/decision_agent_spec.rb +96 -0
  67. data/spec/decision_spec.rb +423 -0
  68. data/spec/dsl/condition_evaluator_spec.rb +774 -0
  69. data/spec/evaluation_spec.rb +364 -0
  70. data/spec/evaluation_validator_spec.rb +165 -0
  71. data/spec/monitoring/metrics_collector_spec.rb +220 -2
  72. data/spec/monitoring/storage/activerecord_adapter_spec.rb +153 -1
  73. data/spec/monitoring/storage/base_adapter_spec.rb +61 -0
  74. data/spec/performance_optimizations_spec.rb +486 -0
  75. data/spec/spec_helper.rb +23 -0
  76. data/spec/testing/batch_test_importer_spec.rb +693 -0
  77. data/spec/testing/batch_test_runner_spec.rb +307 -0
  78. data/spec/testing/test_coverage_analyzer_spec.rb +292 -0
  79. data/spec/testing/test_result_comparator_spec.rb +392 -0
  80. data/spec/testing/test_scenario_spec.rb +113 -0
  81. data/spec/versioning/adapter_spec.rb +156 -0
  82. data/spec/versioning_spec.rb +253 -0
  83. data/spec/web/middleware/auth_middleware_spec.rb +133 -0
  84. data/spec/web/middleware/permission_middleware_spec.rb +247 -0
  85. data/spec/web_ui_rack_spec.rb +1705 -0
  86. metadata +103 -11
  87. data/spec/examples.txt +0 -612
metadata CHANGED
@@ -1,15 +1,28 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decision_agent
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Aswin
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2025-12-25 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: bcrypt
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '3.1'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '3.1'
13
26
  - !ruby/object:Gem::Dependency
14
27
  name: json-canonicalization
15
28
  requirement: !ruby/object:Gem::Requirement
@@ -24,6 +37,34 @@ dependencies:
24
37
  - - "~>"
25
38
  - !ruby/object:Gem::Version
26
39
  version: '1.0'
40
+ - !ruby/object:Gem::Dependency
41
+ name: roo
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '2.10'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '2.10'
54
+ - !ruby/object:Gem::Dependency
55
+ name: rubyzip
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "<"
59
+ - !ruby/object:Gem::Version
60
+ version: 3.0.0
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "<"
66
+ - !ruby/object:Gem::Version
67
+ version: 3.0.0
27
68
  - !ruby/object:Gem::Dependency
28
69
  name: sinatra
29
70
  requirement: !ruby/object:Gem::Requirement
@@ -119,6 +160,18 @@ files:
119
160
  - lib/decision_agent/audit/adapter.rb
120
161
  - lib/decision_agent/audit/logger_adapter.rb
121
162
  - lib/decision_agent/audit/null_adapter.rb
163
+ - lib/decision_agent/auth/access_audit_logger.rb
164
+ - lib/decision_agent/auth/authenticator.rb
165
+ - lib/decision_agent/auth/password_reset_manager.rb
166
+ - lib/decision_agent/auth/password_reset_token.rb
167
+ - lib/decision_agent/auth/permission.rb
168
+ - lib/decision_agent/auth/permission_checker.rb
169
+ - lib/decision_agent/auth/rbac_adapter.rb
170
+ - lib/decision_agent/auth/rbac_config.rb
171
+ - lib/decision_agent/auth/role.rb
172
+ - lib/decision_agent/auth/session.rb
173
+ - lib/decision_agent/auth/session_manager.rb
174
+ - lib/decision_agent/auth/user.rb
122
175
  - lib/decision_agent/context.rb
123
176
  - lib/decision_agent/decision.rb
124
177
  - lib/decision_agent/dsl/condition_evaluator.rb
@@ -147,14 +200,24 @@ files:
147
200
  - lib/decision_agent/scoring/max_weight.rb
148
201
  - lib/decision_agent/scoring/threshold.rb
149
202
  - lib/decision_agent/scoring/weighted_average.rb
203
+ - lib/decision_agent/testing/batch_test_importer.rb
204
+ - lib/decision_agent/testing/batch_test_runner.rb
205
+ - lib/decision_agent/testing/test_coverage_analyzer.rb
206
+ - lib/decision_agent/testing/test_result_comparator.rb
207
+ - lib/decision_agent/testing/test_scenario.rb
150
208
  - lib/decision_agent/version.rb
151
209
  - lib/decision_agent/versioning/activerecord_adapter.rb
152
210
  - lib/decision_agent/versioning/adapter.rb
153
211
  - lib/decision_agent/versioning/file_storage_adapter.rb
154
212
  - lib/decision_agent/versioning/version_manager.rb
213
+ - lib/decision_agent/web/middleware/auth_middleware.rb
214
+ - lib/decision_agent/web/middleware/permission_middleware.rb
155
215
  - lib/decision_agent/web/public/app.js
216
+ - lib/decision_agent/web/public/batch_testing.html
156
217
  - lib/decision_agent/web/public/index.html
218
+ - lib/decision_agent/web/public/login.html
157
219
  - lib/decision_agent/web/public/styles.css
220
+ - lib/decision_agent/web/public/users.html
158
221
  - lib/decision_agent/web/server.rb
159
222
  - lib/generators/decision_agent/install/install_generator.rb
160
223
  - lib/generators/decision_agent/install/templates/README
@@ -171,17 +234,37 @@ files:
171
234
  - lib/generators/decision_agent/install/templates/performance_metric.rb
172
235
  - lib/generators/decision_agent/install/templates/rule.rb
173
236
  - lib/generators/decision_agent/install/templates/rule_version.rb
237
+ - spec/ab_testing/ab_test_assignment_spec.rb
174
238
  - spec/ab_testing/ab_test_manager_spec.rb
175
239
  - spec/ab_testing/ab_test_spec.rb
240
+ - spec/ab_testing/ab_testing_agent_spec.rb
241
+ - spec/ab_testing/storage/adapter_spec.rb
242
+ - spec/ab_testing/storage/memory_adapter_spec.rb
176
243
  - spec/activerecord_thread_safety_spec.rb
244
+ - spec/advanced_operators_spec.rb
177
245
  - spec/agent_spec.rb
178
246
  - spec/api_contract_spec.rb
179
247
  - spec/audit_adapters_spec.rb
248
+ - spec/auth/access_audit_logger_spec.rb
249
+ - spec/auth/authenticator_spec.rb
250
+ - spec/auth/password_reset_spec.rb
251
+ - spec/auth/permission_checker_spec.rb
252
+ - spec/auth/permission_spec.rb
253
+ - spec/auth/rbac_adapter_spec.rb
254
+ - spec/auth/rbac_config_spec.rb
255
+ - spec/auth/role_spec.rb
256
+ - spec/auth/session_manager_spec.rb
257
+ - spec/auth/session_spec.rb
258
+ - spec/auth/user_spec.rb
180
259
  - spec/comprehensive_edge_cases_spec.rb
181
260
  - spec/context_spec.rb
261
+ - spec/decision_agent_spec.rb
262
+ - spec/decision_spec.rb
263
+ - spec/dsl/condition_evaluator_spec.rb
182
264
  - spec/dsl_validation_spec.rb
183
265
  - spec/edge_cases_spec.rb
184
- - spec/examples.txt
266
+ - spec/evaluation_spec.rb
267
+ - spec/evaluation_validator_spec.rb
185
268
  - spec/examples/feedback_aware_evaluator_spec.rb
186
269
  - spec/issue_verification_spec.rb
187
270
  - spec/json_rule_evaluator_spec.rb
@@ -190,25 +273,35 @@ files:
190
273
  - spec/monitoring/monitored_agent_spec.rb
191
274
  - spec/monitoring/prometheus_exporter_spec.rb
192
275
  - spec/monitoring/storage/activerecord_adapter_spec.rb
276
+ - spec/monitoring/storage/base_adapter_spec.rb
193
277
  - spec/monitoring/storage/memory_adapter_spec.rb
278
+ - spec/performance_optimizations_spec.rb
194
279
  - spec/replay_edge_cases_spec.rb
195
280
  - spec/replay_spec.rb
196
281
  - spec/rfc8785_canonicalization_spec.rb
197
282
  - spec/scoring_spec.rb
198
283
  - spec/spec_helper.rb
284
+ - spec/testing/batch_test_importer_spec.rb
285
+ - spec/testing/batch_test_runner_spec.rb
286
+ - spec/testing/test_coverage_analyzer_spec.rb
287
+ - spec/testing/test_result_comparator_spec.rb
288
+ - spec/testing/test_scenario_spec.rb
199
289
  - spec/thread_safety_spec.rb
200
290
  - spec/thread_safety_spec.rb.broken
291
+ - spec/versioning/adapter_spec.rb
201
292
  - spec/versioning_spec.rb
293
+ - spec/web/middleware/auth_middleware_spec.rb
294
+ - spec/web/middleware/permission_middleware_spec.rb
202
295
  - spec/web_ui_rack_spec.rb
203
- homepage: https://github.com/samaswin87/decision_agent
296
+ homepage: https://github.com/samaswin/decision_agent
204
297
  licenses:
205
298
  - MIT
206
299
  metadata:
207
- homepage_uri: https://github.com/samaswin87/decision_agent
208
- source_code_uri: https://github.com/samaswin87/decision_agent
209
- changelog_uri: https://github.com/samaswin87/decision_agent/blob/main/CHANGELOG.md
300
+ homepage_uri: https://github.com/samaswin/decision_agent
301
+ source_code_uri: https://github.com/samaswin/decision_agent
302
+ changelog_uri: https://github.com/samaswin/decision_agent/blob/main/CHANGELOG.md
303
+ github_repo: https://github.com/samaswin/decision_agent
210
304
  rubygems_mfa_required: 'true'
211
- post_install_message:
212
305
  rdoc_options: []
213
306
  require_paths:
214
307
  - lib
@@ -223,8 +316,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
223
316
  - !ruby/object:Gem::Version
224
317
  version: '0'
225
318
  requirements: []
226
- rubygems_version: 3.5.22
227
- signing_key:
319
+ rubygems_version: 4.0.3
228
320
  specification_version: 4
229
321
  summary: Deterministic, explainable, auditable decision engine for Ruby
230
322
  test_files: []