pwn 0.5.650 → 0.5.651

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 394ee3adf7ad1cbf7d9259288a928bfd210af98deb50e77d08337e2068b1f3ec
4
- data.tar.gz: 69668afba8bc9e82043e7497a997494e31c7fbc07b5b77f4e32dfa974cc1c0cf
3
+ metadata.gz: 87ce6374516629bc195970447a1af7654566791f1493711e69f418bd72d60836
4
+ data.tar.gz: 1bc09b0d752bd2545150c2cf9c9bb42972481af3dfc39c05d98cfe13507005a4
5
5
  SHA512:
6
- metadata.gz: 2979343849a38d63ba659b54d606faca9e0de51e855584910a58e63c9282cdc02456f3315941a8fceb479564fb2410fba0a7fefab9672eb3e10b2134389599ee
7
- data.tar.gz: 7896ea04844a847a9c17f370ed9536be045a92707f952efd6759791f868a7e87ce9e3e761fa7784d1e156ae3f03847e4ee1bf4762e405479dae6afd01f7d2839
6
+ metadata.gz: 5b2969e88240d7e28fd15fc4eff26338e7f1cbe8260696a5315049bb687613144988ba40d021c35a6d5605f143459b89a5bc65fc850db5c07f67015ca85251fa
7
+ data.tar.gz: 43cdfb1b3a4129cacfe3767d14d19f5bf138732e7234b9092e5ddf4ad10e4f7c5390759646f9c8e16d1ead8ab6b87fbe7109779901d0f3cf2c17ff714825c266
@@ -112,15 +112,15 @@ module PWN
112
112
  n = [n, cal[:max_iters_cap]].min if cal[:overconfident]
113
113
  # P17 — tighter default when agent_loop budget_exhaustion dominates
114
114
  # open mistakes: finish-under-N is the skill gap, not more thrash.
115
- # Caps are intentionally harsh (8 local / 12 remote): the open
116
- # fingerprint is "iteration budget exhausted" ×N; more headroom
117
- # only produces more empty terminal failures for ORM/PRM/DPO.
115
+ # Cap is intentionally harsh (8 for ALL engines): the open fingerprint
116
+ # is "iteration budget exhausted" ×N; more headroom only produces more
117
+ # empty terminal failures for ORM/PRM/DPO.
118
118
  if budget_exhaustion_hot?
119
- # Remote/overconfident thrash (this host): 12 was still burning full
120
- # 12-step tool plans. Cap tighter when calibration also says overconfident.
121
- base = active_engine == :ollama ? 8 : 12
122
- base = [base, 8].min if cal[:overconfident]
123
- n = [n, base].min
119
+ # P17 deepen² remote was still burning full 12-step plans even when
120
+ # overconfidence sat just under the 0.25 gate (0.242 on grok). Always
121
+ # cap to 8 for ALL engines while budget fingerprints dominate; finish-
122
+ # under-N is the skill gap, more headroom only yields empty terminals.
123
+ n = [n, 8].min
124
124
  end
125
125
  n
126
126
  rescue StandardError
@@ -138,12 +138,14 @@ module PWN
138
138
 
139
139
  brier = cal[:brier].to_f
140
140
  over = cal[:overconfidence].to_f
141
- bad = brier > 0.35 || over > 0.25
141
+ # P17 gate lowered 0.25→0.20: grok lived at 0.242 and never tripped,
142
+ # leaving force_plan off while still thrashing tool budgets.
143
+ bad = brier > 0.35 || over > 0.20
142
144
  {
143
145
  overconfident: bad,
144
146
  force_plan: bad,
145
147
  force_critic: bad,
146
- max_iters_cap: bad ? 12 : 25,
148
+ max_iters_cap: bad ? 8 : 25,
147
149
  cal: cal
148
150
  }
149
151
  rescue StandardError
data/lib/pwn/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PWN
4
- VERSION = '0.5.650'
4
+ VERSION = '0.5.651'
5
5
  end
@@ -1468,11 +1468,13 @@ RSpec.describe 'PWN::AI::Agent reinforced feedback loop', :aggregate_failures do
1468
1468
  end
1469
1469
 
1470
1470
  describe 'P0 · Budget exhaust deepen (last-iter / no-CF-hot / exhaust Learning)' do
1471
- it 'tightens budget-hot max_iters caps to 8 local / 12 remote' do
1471
+ it 'tightens budget-hot max_iters cap to 8 for ALL engines' do
1472
1472
  src = File.read(loop_mod.method(:run).source_location.first)
1473
1473
  # max_iters is private_class_method — read surrounding source
1474
- expect(src).to match(/ollama \? 8 : 12/)
1474
+ # P17 deepen²: always cap to 8 (not ollama? 8 : 12) while budget-hot
1475
1475
  expect(src).to match(/budget_exhaustion_hot\?/)
1476
+ expect(src).to match(/n = \[n, 8\]\.min/)
1477
+ expect(src).not_to match(/ollama \? 8 : 12/)
1476
1478
  end
1477
1479
 
1478
1480
  it 'forces tools=nil on last iter and skips counterfactual when budget-hot' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pwn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.650
4
+ version: 0.5.651
5
5
  platform: ruby
6
6
  authors:
7
7
  - 0day Inc.