pwn 0.5.785 → 0.5.787
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 +4 -4
- data/build_gem.sh +1 -1
- data/documentation/Backup-Retention.md +8 -9
- data/documentation/Harness-Evaluation.md +1 -1
- data/documentation/Installation.md +1 -1
- data/documentation/Operability.md +1 -0
- data/documentation/Plugin-Degradation.md +5 -3
- data/documentation/Plugins.md +1 -1
- data/documentation/Policy-Benchmark.md +32 -33
- data/documentation/YubiKey-Vaults.md +13 -11
- data/documentation/YubiKey.md +149 -270
- data/documentation/diagrams/dot/pwn-ai-feedback-learning-loop.dot +1 -1
- data/documentation/diagrams/dot/reinforcement-learning.dot +2 -2
- data/documentation/diagrams/pwn-ai-feedback-learning-loop.svg +1 -1
- data/documentation/diagrams/reinforcement-learning.svg +89 -89
- data/lib/pwn/ai/agent/policy_evaluation.rb +326 -28
- data/lib/pwn/backups.rb +3 -1
- data/lib/pwn/plugins/repl/mesh.rb +11 -3
- data/lib/pwn/plugins/repl.rb +8 -0
- data/lib/pwn/version.rb +1 -1
- data/spec/lib/pwn/ai/agent/policy_evaluation_spec.rb +10 -23
- data/spec/lib/pwn/ai/cli_spec.rb +2 -7
- data/spec/lib/pwn/backups_spec.rb +15 -0
- data/spec/lib/pwn/plugins/repl_mesh_layout_spec.rb +2 -0
- data/third_party/pwn_rdoc.jsonl +16 -0
- metadata +1 -4
- data/scripts/benchmark_policy.rb +0 -376
- data/scripts/build_gate.rb +0 -58
- data/spec/integration/build_gate_spec.rb +0 -73
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
<!-- Generated by graphviz version 14.1.2 (0)
|
|
5
5
|
-->
|
|
6
6
|
<!-- Title: PWN_Reinforcement_Learning Pages: 1 -->
|
|
7
|
-
<svg width="
|
|
8
|
-
viewBox="0.00 0.00
|
|
7
|
+
<svg width="1020pt" height="901pt"
|
|
8
|
+
viewBox="0.00 0.00 1020.00 901.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
9
9
|
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(28.8 872.29)">
|
|
10
10
|
<title>PWN_Reinforcement_Learning</title>
|
|
11
|
-
<polygon fill="#0f172a" stroke="none" points="-28.8,28.8 -28.8,-872.29
|
|
12
|
-
<text xml:space="preserve" text-anchor="start" x="
|
|
13
|
-
<text xml:space="preserve" text-anchor="start" x="
|
|
11
|
+
<polygon fill="#0f172a" stroke="none" points="-28.8,28.8 -28.8,-872.29 990.8,-872.29 990.8,28.8 -28.8,28.8"/>
|
|
12
|
+
<text xml:space="preserve" text-anchor="start" x="199" y="-821.49" font-family="sans-Serif" font-weight="bold" font-size="20.00" fill="#e2e8f0">PWN::AI::Agent - Reward + Curriculum Reinforcement Loop</text>
|
|
13
|
+
<text xml:space="preserve" text-anchor="start" x="293.5" y="-810.04" font-family="sans-Serif" font-size="11.00" fill="#94a3b8">live accounting · optional curriculum / weights · explicit routing-policy evaluation</text>
|
|
14
14
|
<g id="clust1" class="cluster">
|
|
15
15
|
<title>cluster_live</title>
|
|
16
16
|
<path fill="#1e293b" stroke="#334155" d="M20,-8C20,-8 286,-8 286,-8 292,-8 298,-14 298,-20 298,-20 298,-777.74 298,-777.74 298,-783.74 292,-789.74 286,-789.74 286,-789.74 20,-789.74 20,-789.74 14,-789.74 8,-783.74 8,-777.74 8,-777.74 8,-20 8,-20 8,-14 14,-8 20,-8"/>
|
|
@@ -18,13 +18,13 @@
|
|
|
18
18
|
</g>
|
|
19
19
|
<g id="clust2" class="cluster">
|
|
20
20
|
<title>cluster_curriculum</title>
|
|
21
|
-
<path fill="#1e293b" stroke="#94a3b8" stroke-dasharray="5,2" d="
|
|
22
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
21
|
+
<path fill="#1e293b" stroke="#94a3b8" stroke-dasharray="5,2" d="M326,-8C326,-8 636,-8 636,-8 642,-8 648,-14 648,-20 648,-20 648,-784.49 648,-784.49 648,-790.49 642,-796.49 636,-796.49 636,-796.49 326,-796.49 326,-796.49 320,-796.49 314,-790.49 314,-784.49 314,-784.49 314,-20 314,-20 314,-14 320,-8 326,-8"/>
|
|
22
|
+
<text xml:space="preserve" text-anchor="middle" x="481" y="-781.09" font-family="sans-Serif" font-size="12.00" fill="#e2e8f0">OPTIONAL CURRICULUM  ·  independent invocation</text>
|
|
23
23
|
</g>
|
|
24
24
|
<g id="clust3" class="cluster">
|
|
25
25
|
<title>cluster_policy</title>
|
|
26
|
-
<path fill="#1e293b" stroke="#94a3b8" stroke-dasharray="5,2" d="
|
|
27
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
26
|
+
<path fill="#1e293b" stroke="#94a3b8" stroke-dasharray="5,2" d="M676,-142.29C676,-142.29 942,-142.29 942,-142.29 948,-142.29 954,-148.29 954,-154.29 954,-154.29 954,-777.74 954,-777.74 954,-783.74 948,-789.74 942,-789.74 942,-789.74 676,-789.74 676,-789.74 670,-789.74 664,-783.74 664,-777.74 664,-777.74 664,-154.29 664,-154.29 664,-148.29 670,-142.29 676,-142.29"/>
|
|
27
|
+
<text xml:space="preserve" text-anchor="middle" x="809" y="-774.34" font-family="sans-Serif" font-size="12.00" fill="#e2e8f0">FROZEN POLICY  ·  explicit operator workflow</text>
|
|
28
28
|
</g>
|
|
29
29
|
<!-- Run -->
|
|
30
30
|
<g id="node1" class="node">
|
|
@@ -117,158 +117,158 @@
|
|
|
117
117
|
<!-- Schedule -->
|
|
118
118
|
<g id="node7" class="node">
|
|
119
119
|
<title>Schedule</title>
|
|
120
|
-
<path fill="#7dd3fc" stroke="#334155" stroke-width="1.3" d="
|
|
121
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
122
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
123
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
124
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
125
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
120
|
+
<path fill="#7dd3fc" stroke="#334155" stroke-width="1.3" d="M628.15,-766.24C628.15,-766.24 333.85,-766.24 333.85,-766.24 327.85,-766.24 321.85,-760.24 321.85,-754.24 321.85,-754.24 321.85,-687.7 321.85,-687.7 321.85,-681.7 327.85,-675.7 333.85,-675.7 333.85,-675.7 628.15,-675.7 628.15,-675.7 634.15,-675.7 640.15,-681.7 640.15,-687.7 640.15,-687.7 640.15,-754.24 640.15,-754.24 640.15,-760.24 634.15,-766.24 628.15,-766.24"/>
|
|
121
|
+
<text xml:space="preserve" text-anchor="middle" x="481" y="-744.27" font-family="sans-Serif" font-size="11.00" fill="#0f172a">A  OPT IN / INVOKE EXPLICITLY</text>
|
|
122
|
+
<text xml:space="preserve" text-anchor="middle" x="481" y="-730.77" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Curriculum jobs are not seeded</text>
|
|
123
|
+
<text xml:space="preserve" text-anchor="middle" x="481" y="-717.27" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Create a CURRICULUM_JOBS template only when wanted</text>
|
|
124
|
+
<text xml:space="preserve" text-anchor="middle" x="481" y="-703.77" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Templates stay disabled until explicitly enabled</text>
|
|
125
|
+
<text xml:space="preserve" text-anchor="middle" x="481" y="-690.27" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Seeding does not install system crontab</text>
|
|
126
126
|
</g>
|
|
127
127
|
<!-- Practice -->
|
|
128
128
|
<g id="node8" class="node">
|
|
129
129
|
<title>Practice</title>
|
|
130
|
-
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="
|
|
131
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
132
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
133
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
134
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
135
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
130
|
+
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M605.8,-627.7C605.8,-627.7 356.2,-627.7 356.2,-627.7 350.2,-627.7 344.2,-621.7 344.2,-615.7 344.2,-615.7 344.2,-549.16 344.2,-549.16 344.2,-543.16 350.2,-537.16 356.2,-537.16 356.2,-537.16 605.8,-537.16 605.8,-537.16 611.8,-537.16 617.8,-543.16 617.8,-549.16 617.8,-549.16 617.8,-615.7 617.8,-615.7 617.8,-621.7 611.8,-627.7 605.8,-627.7"/>
|
|
131
|
+
<text xml:space="preserve" text-anchor="middle" x="481" y="-605.73" font-family="sans-Serif" font-size="11.00" fill="#0f172a">B  PRACTICE / OFFLINE JUDGING</text>
|
|
132
|
+
<text xml:space="preserve" text-anchor="middle" x="481" y="-592.23" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Practice: budget-first; real tools may run</text>
|
|
133
|
+
<text xml:space="preserve" text-anchor="middle" x="481" y="-578.73" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Judge-qualified resolution + winning traces</text>
|
|
134
|
+
<text xml:space="preserve" text-anchor="middle" x="481" y="-565.23" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Offline judge: backfill, calibrate, warm sentinel</text>
|
|
135
|
+
<text xml:space="preserve" text-anchor="middle" x="481" y="-551.73" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Records: curriculum/ + mistakes / preferences</text>
|
|
136
136
|
</g>
|
|
137
137
|
<!-- Schedule->Practice -->
|
|
138
138
|
<g id="edge6" class="edge">
|
|
139
139
|
<title>Schedule->Practice</title>
|
|
140
|
-
<path fill="none" stroke="#94a3b8" stroke-width="1.3" stroke-dasharray="5,2" d="
|
|
141
|
-
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="
|
|
142
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
140
|
+
<path fill="none" stroke="#94a3b8" stroke-width="1.3" stroke-dasharray="5,2" d="M481,-675.26C481,-663.36 481,-650.36 481,-637.99"/>
|
|
141
|
+
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="483.8,-638.21 481,-630.21 478.2,-638.21 483.8,-638.21"/>
|
|
142
|
+
<text xml:space="preserve" text-anchor="middle" x="552.62" y="-648.2" font-family="sans-Serif" font-size="10.00" fill="#cbd5e1">independent jobs; not a job chain</text>
|
|
143
143
|
</g>
|
|
144
144
|
<!-- Export -->
|
|
145
145
|
<g id="node9" class="node">
|
|
146
146
|
<title>Export</title>
|
|
147
|
-
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="
|
|
148
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
149
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
150
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
151
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
152
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
147
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M605.8,-489.16C605.8,-489.16 356.2,-489.16 356.2,-489.16 350.2,-489.16 344.2,-483.16 344.2,-477.16 344.2,-477.16 344.2,-410.62 344.2,-410.62 344.2,-404.62 350.2,-398.62 356.2,-398.62 356.2,-398.62 605.8,-398.62 605.8,-398.62 611.8,-398.62 617.8,-404.62 617.8,-410.62 617.8,-410.62 617.8,-477.16 617.8,-477.16 617.8,-483.16 611.8,-489.16 605.8,-489.16"/>
|
|
148
|
+
<text xml:space="preserve" text-anchor="middle" x="481" y="-467.19" font-family="sans-Serif" font-size="11.00" fill="#0f172a">C  EXPORT TRAINING DATA</text>
|
|
149
|
+
<text xml:space="preserve" text-anchor="middle" x="481" y="-453.69" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Learning.export_finetune + Reward.export_dpo</text>
|
|
150
|
+
<text xml:space="preserve" text-anchor="middle" x="481" y="-440.19" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Eligible sessions / outcomes + preference pairs</text>
|
|
151
|
+
<text xml:space="preserve" text-anchor="middle" x="481" y="-426.69" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Scrub, geometry and source-balance filters</text>
|
|
152
|
+
<text xml:space="preserve" text-anchor="middle" x="481" y="-413.19" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Output: finetune/*.jsonl + evaluation set</text>
|
|
153
153
|
</g>
|
|
154
154
|
<!-- Practice->Export -->
|
|
155
155
|
<g id="edge7" class="edge">
|
|
156
156
|
<title>Practice->Export</title>
|
|
157
|
-
<path fill="none" stroke="#94a3b8" stroke-width="1.3" stroke-dasharray="5,2" d="
|
|
158
|
-
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="
|
|
159
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
157
|
+
<path fill="none" stroke="#94a3b8" stroke-width="1.3" stroke-dasharray="5,2" d="M481,-536.72C481,-524.82 481,-511.82 481,-499.45"/>
|
|
158
|
+
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="483.8,-499.67 481,-491.67 478.2,-499.67 483.8,-499.67"/>
|
|
159
|
+
<text xml:space="preserve" text-anchor="middle" x="525.62" y="-509.66" font-family="sans-Serif" font-size="10.00" fill="#cbd5e1">eligible retained data</text>
|
|
160
160
|
</g>
|
|
161
161
|
<!-- Train -->
|
|
162
162
|
<g id="node10" class="node">
|
|
163
163
|
<title>Train</title>
|
|
164
|
-
<path fill="#fda4af" stroke="#334155" stroke-width="1.3" d="
|
|
165
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
166
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
167
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
168
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
169
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
164
|
+
<path fill="#fda4af" stroke="#334155" stroke-width="1.3" d="M605.8,-361.62C605.8,-361.62 356.2,-361.62 356.2,-361.62 350.2,-361.62 344.2,-355.62 344.2,-349.62 344.2,-349.62 344.2,-283.08 344.2,-283.08 344.2,-277.08 350.2,-271.08 356.2,-271.08 356.2,-271.08 605.8,-271.08 605.8,-271.08 611.8,-271.08 617.8,-277.08 617.8,-283.08 617.8,-283.08 617.8,-349.62 617.8,-349.62 617.8,-355.62 611.8,-361.62 605.8,-361.62"/>
|
|
165
|
+
<text xml:space="preserve" text-anchor="middle" x="481" y="-339.65" font-family="sans-Serif" font-size="11.00" fill="#0f172a">D  train_and_gate</text>
|
|
166
|
+
<text xml:space="preserve" text-anchor="middle" x="481" y="-326.15" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Dry run or no trainer → export_ready only</text>
|
|
167
|
+
<text xml:space="preserve" text-anchor="middle" x="481" y="-312.65" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Otherwise: configured trainer → LoRA adapter</text>
|
|
168
|
+
<text xml:space="preserve" text-anchor="middle" x="481" y="-299.15" font-family="sans-Serif" font-size="11.00" fill="#0f172a">ollama create → candidate vs baseline gate</text>
|
|
169
|
+
<text xml:space="preserve" text-anchor="middle" x="481" y="-285.65" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Preference-diet gate also required</text>
|
|
170
170
|
</g>
|
|
171
171
|
<!-- Export->Train -->
|
|
172
172
|
<g id="edge8" class="edge">
|
|
173
173
|
<title>Export->Train</title>
|
|
174
|
-
<path fill="none" stroke="#94a3b8" stroke-width="1.3" d="
|
|
175
|
-
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="
|
|
174
|
+
<path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M481,-398.28C481,-389.78 481,-380.79 481,-372.02"/>
|
|
175
|
+
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="483.8,-372.21 481,-364.21 478.2,-372.21 483.8,-372.21"/>
|
|
176
176
|
</g>
|
|
177
177
|
<!-- Model -->
|
|
178
178
|
<g id="node11" class="node">
|
|
179
179
|
<title>Model</title>
|
|
180
|
-
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="
|
|
181
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
182
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
183
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
184
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
180
|
+
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M605.8,-227.33C605.8,-227.33 356.2,-227.33 356.2,-227.33 350.2,-227.33 344.2,-221.33 344.2,-215.33 344.2,-215.33 344.2,-162.29 344.2,-162.29 344.2,-156.29 350.2,-150.29 356.2,-150.29 356.2,-150.29 605.8,-150.29 605.8,-150.29 611.8,-150.29 617.8,-156.29 617.8,-162.29 617.8,-162.29 617.8,-215.33 617.8,-215.33 617.8,-221.33 611.8,-227.33 605.8,-227.33"/>
|
|
181
|
+
<text xml:space="preserve" text-anchor="middle" x="481" y="-205.36" font-family="sans-Serif" font-size="11.00" fill="#0f172a">E  RETAIN GATED ADAPTER VERSION</text>
|
|
182
|
+
<text xml:space="preserve" text-anchor="middle" x="481" y="-191.86" font-family="sans-Serif" font-size="11.00" fill="#0f172a">On passing gates: update curriculum model state</text>
|
|
183
|
+
<text xml:space="preserve" text-anchor="middle" x="481" y="-178.36" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Optional local weight path, not routing policy</text>
|
|
184
|
+
<text xml:space="preserve" text-anchor="middle" x="481" y="-164.86" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Export alone is not training or improvement</text>
|
|
185
185
|
</g>
|
|
186
186
|
<!-- Train->Model -->
|
|
187
187
|
<g id="edge9" class="edge">
|
|
188
188
|
<title>Train->Model</title>
|
|
189
|
-
<path fill="none" stroke="#94a3b8" stroke-width="1.3" d="
|
|
190
|
-
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="
|
|
189
|
+
<path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M481,-270.74C481,-259.94 481,-248.37 481,-237.44"/>
|
|
190
|
+
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="483.8,-237.6 481,-229.6 478.2,-237.6 483.8,-237.6"/>
|
|
191
191
|
</g>
|
|
192
192
|
<!-- Hygiene -->
|
|
193
193
|
<g id="node12" class="node">
|
|
194
194
|
<title>Hygiene</title>
|
|
195
|
-
<path fill="#1e293b" stroke="#334155" stroke-width="1.3" stroke-dasharray="5,2" d="
|
|
196
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
197
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
198
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
199
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
200
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
195
|
+
<path fill="#1e293b" stroke="#334155" stroke-width="1.3" stroke-dasharray="5,2" d="M605.8,-106.54C605.8,-106.54 356.2,-106.54 356.2,-106.54 350.2,-106.54 344.2,-100.54 344.2,-94.54 344.2,-94.54 344.2,-28 344.2,-28 344.2,-22 350.2,-16 356.2,-16 356.2,-16 605.8,-16 605.8,-16 611.8,-16 617.8,-22 617.8,-28 617.8,-28 617.8,-94.54 617.8,-94.54 617.8,-100.54 611.8,-106.54 605.8,-106.54"/>
|
|
196
|
+
<text xml:space="preserve" text-anchor="middle" x="481" y="-84.57" font-family="sans-Serif" font-size="11.00" fill="#cbd5e1">SEPARATE ENABLED HYGIENE SEED</text>
|
|
197
|
+
<text xml:space="preserve" text-anchor="middle" x="481" y="-71.07" font-family="sans-Serif" font-size="11.00" fill="#cbd5e1">session_cleanup at 03:45 daily</text>
|
|
198
|
+
<text xml:space="preserve" text-anchor="middle" x="481" y="-57.57" font-family="sans-Serif" font-size="11.00" fill="#cbd5e1">Includes memory consolidation; not model training</text>
|
|
199
|
+
<text xml:space="preserve" text-anchor="middle" x="481" y="-44.07" font-family="sans-Serif" font-size="11.00" fill="#cbd5e1">ESR = verified_exploit_tools / vulnerable_tools</text>
|
|
200
|
+
<text xml:space="preserve" text-anchor="middle" x="481" y="-30.57" font-family="sans-Serif" font-size="11.00" fill="#cbd5e1">ASR = successful_attacks / total_attack_attempts</text>
|
|
201
201
|
</g>
|
|
202
202
|
<!-- Select -->
|
|
203
203
|
<g id="node13" class="node">
|
|
204
204
|
<title>Select</title>
|
|
205
|
-
<path fill="#c4b5fd" stroke="#334155" stroke-width="1.3" d="
|
|
206
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
207
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
208
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
209
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
205
|
+
<path fill="#c4b5fd" stroke="#334155" stroke-width="1.3" d="M933.8,-759.49C933.8,-759.49 684.2,-759.49 684.2,-759.49 678.2,-759.49 672.2,-753.49 672.2,-747.49 672.2,-747.49 672.2,-694.45 672.2,-694.45 672.2,-688.45 678.2,-682.45 684.2,-682.45 684.2,-682.45 933.8,-682.45 933.8,-682.45 939.8,-682.45 945.8,-688.45 945.8,-694.45 945.8,-694.45 945.8,-747.49 945.8,-747.49 945.8,-753.49 939.8,-759.49 933.8,-759.49"/>
|
|
206
|
+
<text xml:space="preserve" text-anchor="middle" x="809" y="-737.52" font-family="sans-Serif" font-size="11.00" fill="#0f172a">I  SELECT SNAPSHOTS</text>
|
|
207
|
+
<text xml:space="preserve" text-anchor="middle" x="809" y="-724.02" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Explicit baseline + candidate policy bytes</text>
|
|
208
|
+
<text xml:space="preserve" text-anchor="middle" x="809" y="-710.52" font-family="sans-Serif" font-size="11.00" fill="#0f172a">PolicyEvaluation; not live online writers</text>
|
|
209
|
+
<text xml:space="preserve" text-anchor="middle" x="809" y="-697.02" font-family="sans-Serif" font-size="11.00" fill="#0f172a">No automatic handoff from RSI or training</text>
|
|
210
210
|
</g>
|
|
211
211
|
<!-- Eval -->
|
|
212
212
|
<g id="node14" class="node">
|
|
213
213
|
<title>Eval</title>
|
|
214
|
-
<path fill="#c4b5fd" stroke="#334155" stroke-width="1.3" d="
|
|
215
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
216
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
217
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
218
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
219
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
214
|
+
<path fill="#c4b5fd" stroke="#334155" stroke-width="1.3" d="M933.8,-627.7C933.8,-627.7 684.2,-627.7 684.2,-627.7 678.2,-627.7 672.2,-621.7 672.2,-615.7 672.2,-615.7 672.2,-549.16 672.2,-549.16 672.2,-543.16 678.2,-537.16 684.2,-537.16 684.2,-537.16 933.8,-537.16 933.8,-537.16 939.8,-537.16 945.8,-543.16 945.8,-549.16 945.8,-549.16 945.8,-615.7 945.8,-615.7 945.8,-621.7 939.8,-627.7 933.8,-627.7"/>
|
|
215
|
+
<text xml:space="preserve" text-anchor="middle" x="809" y="-605.73" font-family="sans-Serif" font-size="11.00" fill="#0f172a">II  EVALUATE LOCALLY</text>
|
|
216
|
+
<text xml:space="preserve" text-anchor="middle" x="809" y="-592.23" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Public fixed held-out tasks</text>
|
|
217
|
+
<text xml:space="preserve" text-anchor="middle" x="809" y="-578.73" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Off / baseline / candidate comparisons</text>
|
|
218
|
+
<text xml:space="preserve" text-anchor="middle" x="809" y="-565.23" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Two disposable filesystem environments</text>
|
|
219
|
+
<text xml:space="preserve" text-anchor="middle" x="809" y="-551.73" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Regression replay is a separate split</text>
|
|
220
220
|
</g>
|
|
221
221
|
<!-- Select->Eval -->
|
|
222
222
|
<g id="edge10" class="edge">
|
|
223
223
|
<title>Select->Eval</title>
|
|
224
|
-
<path fill="none" stroke="#94a3b8" stroke-width="1.3" d="
|
|
225
|
-
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="
|
|
224
|
+
<path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M809,-681.94C809,-668.21 809,-652.45 809,-637.61"/>
|
|
225
|
+
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="811.8,-637.99 809,-629.99 806.2,-637.99 811.8,-637.99"/>
|
|
226
226
|
</g>
|
|
227
227
|
<!-- Gate -->
|
|
228
228
|
<g id="node15" class="node">
|
|
229
229
|
<title>Gate</title>
|
|
230
|
-
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="
|
|
231
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
232
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
233
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
234
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
235
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
230
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M933.8,-489.16C933.8,-489.16 684.2,-489.16 684.2,-489.16 678.2,-489.16 672.2,-483.16 672.2,-477.16 672.2,-477.16 672.2,-410.62 672.2,-410.62 672.2,-404.62 678.2,-398.62 684.2,-398.62 684.2,-398.62 933.8,-398.62 933.8,-398.62 939.8,-398.62 945.8,-404.62 945.8,-410.62 945.8,-410.62 945.8,-477.16 945.8,-477.16 945.8,-483.16 939.8,-489.16 933.8,-489.16"/>
|
|
231
|
+
<text xml:space="preserve" text-anchor="middle" x="809" y="-467.19" font-family="sans-Serif" font-size="11.00" fill="#0f172a">III  REPLAY ACCEPTANCE</text>
|
|
232
|
+
<text xml:space="preserve" text-anchor="middle" x="809" y="-453.69" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Fresh replay + aggregate nonregression</text>
|
|
233
|
+
<text xml:space="preserve" text-anchor="middle" x="809" y="-440.19" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Per-task nonregression + held-out gain</text>
|
|
234
|
+
<text xml:space="preserve" text-anchor="middle" x="809" y="-426.69" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Local controller evidence only</text>
|
|
235
|
+
<text xml:space="preserve" text-anchor="middle" x="809" y="-413.19" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Not proof of general live LLM gains</text>
|
|
236
236
|
</g>
|
|
237
237
|
<!-- Eval->Gate -->
|
|
238
238
|
<g id="edge11" class="edge">
|
|
239
239
|
<title>Eval->Gate</title>
|
|
240
|
-
<path fill="none" stroke="#94a3b8" stroke-width="1.3" d="
|
|
241
|
-
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="
|
|
240
|
+
<path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M809,-536.72C809,-524.82 809,-511.82 809,-499.45"/>
|
|
241
|
+
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="811.8,-499.67 809,-491.67 806.2,-499.67 811.8,-499.67"/>
|
|
242
242
|
</g>
|
|
243
243
|
<!-- Approve -->
|
|
244
244
|
<g id="node16" class="node">
|
|
245
245
|
<title>Approve</title>
|
|
246
|
-
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="
|
|
247
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
248
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
249
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
250
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
246
|
+
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M933.8,-354.87C933.8,-354.87 684.2,-354.87 684.2,-354.87 678.2,-354.87 672.2,-348.87 672.2,-342.87 672.2,-342.87 672.2,-289.83 672.2,-289.83 672.2,-283.83 678.2,-277.83 684.2,-277.83 684.2,-277.83 933.8,-277.83 933.8,-277.83 939.8,-277.83 945.8,-283.83 945.8,-289.83 945.8,-289.83 945.8,-342.87 945.8,-342.87 945.8,-348.87 939.8,-354.87 933.8,-354.87"/>
|
|
247
|
+
<text xml:space="preserve" text-anchor="middle" x="809" y="-332.9" font-family="sans-Serif" font-size="11.00" fill="#0f172a">IV  OPERATOR APPROVAL</text>
|
|
248
|
+
<text xml:space="preserve" text-anchor="middle" x="809" y="-319.4" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Explicit live policy target</text>
|
|
249
|
+
<text xml:space="preserve" text-anchor="middle" x="809" y="-305.9" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Approval + stopped writers required</text>
|
|
250
|
+
<text xml:space="preserve" text-anchor="middle" x="809" y="-292.4" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Replace routing policy, not model weights</text>
|
|
251
251
|
</g>
|
|
252
252
|
<!-- Gate->Approve -->
|
|
253
253
|
<g id="edge12" class="edge">
|
|
254
254
|
<title>Gate->Approve</title>
|
|
255
|
-
<path fill="none" stroke="#94a3b8" stroke-width="1.3" d="
|
|
256
|
-
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="
|
|
255
|
+
<path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M809,-398.28C809,-387.48 809,-375.91 809,-364.98"/>
|
|
256
|
+
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="811.8,-365.14 809,-357.14 806.2,-365.14 811.8,-365.14"/>
|
|
257
257
|
</g>
|
|
258
258
|
<!-- Receipt -->
|
|
259
259
|
<g id="node17" class="node">
|
|
260
260
|
<title>Receipt</title>
|
|
261
|
-
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="
|
|
262
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
263
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
264
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
265
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
261
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M933.8,-227.33C933.8,-227.33 684.2,-227.33 684.2,-227.33 678.2,-227.33 672.2,-221.33 672.2,-215.33 672.2,-215.33 672.2,-162.29 672.2,-162.29 672.2,-156.29 678.2,-150.29 684.2,-150.29 684.2,-150.29 933.8,-150.29 933.8,-150.29 939.8,-150.29 945.8,-156.29 945.8,-162.29 945.8,-162.29 945.8,-215.33 945.8,-215.33 945.8,-221.33 939.8,-227.33 933.8,-227.33"/>
|
|
262
|
+
<text xml:space="preserve" text-anchor="middle" x="809" y="-205.36" font-family="sans-Serif" font-size="11.00" fill="#0f172a">V  RETAIN RECEIPT / ROLLBACK</text>
|
|
263
|
+
<text xml:space="preserve" text-anchor="middle" x="809" y="-191.86" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Versioned receipt v1 + byte digests</text>
|
|
264
|
+
<text xml:space="preserve" text-anchor="middle" x="809" y="-178.36" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Rollback refuses intervening live writes</text>
|
|
265
|
+
<text xml:space="preserve" text-anchor="middle" x="809" y="-164.86" font-family="sans-Serif" font-size="11.00" fill="#0f172a">No silent overwrite of newer policy state</text>
|
|
266
266
|
</g>
|
|
267
267
|
<!-- Approve->Receipt -->
|
|
268
268
|
<g id="edge13" class="edge">
|
|
269
269
|
<title>Approve->Receipt</title>
|
|
270
|
-
<path fill="none" stroke="#94a3b8" stroke-width="1.3" d="
|
|
271
|
-
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="
|
|
270
|
+
<path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M809,-277.34C809,-264.81 809,-250.7 809,-237.53"/>
|
|
271
|
+
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="811.8,-237.66 809,-229.66 806.2,-237.66 811.8,-237.66"/>
|
|
272
272
|
</g>
|
|
273
273
|
</g>
|
|
274
274
|
</svg>
|