Release 4.0 (full, carrying 3.2): route words over the 22 paths with k and L, residue ledger, no state from unsupported answers, walk recall, pronoun re-entry; release test PI4-B; new release hashes anchored on Solana
Browse filesHead oracle_release_runtime_w558. Changed parts: the admitted fold chain (w556 guards, w557 the 4.0 law, w558 pronoun re-entry, v4_law.py), specialists/_gate, specialists/_proved, the five 3.2 specialists and the Workbench. PI4-B run once per variant. Anchor: https://explorer.solana.com/tx/4vJ57qaJxvzZteEm3vL9sAsmsRmeeLg3X8ESk61zN29ZpGwqsCz3xcGMhoqWXy8TyqEQH9HT7Tn4c2FxoiGuvosH
This view is limited to 50 files because it contains too many changes. See raw diff
- .gitattributes +20 -0
- README.md +2 -0
- RELEASE_HASHES.json +40 -16
- RELEASE_HASHES_before_40.json +1267 -0
- root/fable-content/oracle-m-series-2026-08-15/self_loop/admitted/HEAD_MANIFEST.json +9 -2
- root/fable-content/oracle-m-series-2026-08-15/self_loop/admitted/oracle_release_runtime_w423.py +39 -0
- root/fable-content/oracle-m-series-2026-08-15/self_loop/admitted/oracle_release_runtime_w551.py +152 -0
- root/fable-content/oracle-m-series-2026-08-15/self_loop/admitted/oracle_release_runtime_w554.py +124 -0
- root/fable-content/oracle-m-series-2026-08-15/self_loop/admitted/oracle_release_runtime_w555.py +56 -0
- root/fable-content/oracle-m-series-2026-08-15/self_loop/admitted/oracle_release_runtime_w556.py +148 -0
- root/fable-content/oracle-m-series-2026-08-15/self_loop/admitted/oracle_release_runtime_w557.py +303 -0
- root/fable-content/oracle-m-series-2026-08-15/self_loop/admitted/oracle_release_runtime_w558.py +124 -0
- root/fable-content/oracle-m-series-2026-08-15/self_loop/admitted/v4_law.py +142 -0
- root/specialists/_gate/standing_new_v1.txt +1 -1
- root/specialists/_gate/standing_owner_v1.txt +1 -0
- root/specialists/_gate/standing_stars_v1.txt +4 -0
- root/specialists/_gate/star_panels_v1.sha256 +4 -0
- root/specialists/_proved/NOTICE +3 -0
- root/specialists/_proved/PROVED.json +806 -0
- root/specialists/_proved/SHA256SUMS +20 -0
- root/specialists/_proved/bin/acoustics +3 -0
- root/specialists/_proved/bin/anatomyagri +3 -0
- root/specialists/_proved/bin/chemistry +3 -0
- root/specialists/_proved/bin/climate +3 -0
- root/specialists/_proved/bin/computing +3 -0
- root/specialists/_proved/bin/decide +3 -0
- root/specialists/_proved/bin/discrete +3 -0
- root/specialists/_proved/bin/emoptics +3 -0
- root/specialists/_proved/bin/energy +3 -0
- root/specialists/_proved/bin/facts +3 -0
- root/specialists/_proved/bin/fusion +3 -0
- root/specialists/_proved/bin/geostats +3 -0
- root/specialists/_proved/bin/humanities +3 -0
- root/specialists/_proved/bin/life +3 -0
- root/specialists/_proved/bin/materials +3 -0
- root/specialists/_proved/bin/mechanics +3 -0
- root/specialists/_proved/bin/quantity +3 -0
- root/specialists/_proved/bin/space +3 -0
- root/specialists/_proved/bin/stores +3 -0
- root/specialists/_proved/bin/trades +3 -0
- root/specialists/decay-r2/INHERITED.json +8 -0
- root/specialists/decay-r2/decay_panel_v1.json +590 -0
- root/specialists/decay-r2/decay_panel_v1.py +67 -0
- root/specialists/decay-r2/decay_scorer.py +18 -0
- root/specialists/decay-r2/manifest.json +65 -0
- root/specialists/decay-r2/narrow_v1.py +47 -0
- root/specialists/decay-r2/organ_decay_r2.py +56 -0
- root/specialists/decay-r2/organ_decay_v1.py +135 -0
- root/specialists/decay-r2/verdict_dev.json +120 -0
- root/specialists/decay-r2/verdict_heldout.json +162 -0
.gitattributes
CHANGED
|
@@ -45,3 +45,23 @@ root/specialists/cooking/nutrition_v1.sqlite3 filter=lfs diff=lfs merge=lfs -tex
|
|
| 45 |
root/specialists/warehouse-r2/site_fresh.sqlite3 filter=lfs diff=lfs merge=lfs -text
|
| 46 |
root/specialists/warehouse/site_fresh.sqlite3 filter=lfs diff=lfs merge=lfs -text
|
| 47 |
root/fable-content/oracle-m-series-2026-08-15/m30_admitted_closure_v1.sqlite3 filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 45 |
root/specialists/warehouse-r2/site_fresh.sqlite3 filter=lfs diff=lfs merge=lfs -text
|
| 46 |
root/specialists/warehouse/site_fresh.sqlite3 filter=lfs diff=lfs merge=lfs -text
|
| 47 |
root/fable-content/oracle-m-series-2026-08-15/m30_admitted_closure_v1.sqlite3 filter=lfs diff=lfs merge=lfs -text
|
| 48 |
+
root/specialists/_proved/bin/acoustics filter=lfs diff=lfs merge=lfs -text
|
| 49 |
+
root/specialists/_proved/bin/anatomyagri filter=lfs diff=lfs merge=lfs -text
|
| 50 |
+
root/specialists/_proved/bin/chemistry filter=lfs diff=lfs merge=lfs -text
|
| 51 |
+
root/specialists/_proved/bin/climate filter=lfs diff=lfs merge=lfs -text
|
| 52 |
+
root/specialists/_proved/bin/computing filter=lfs diff=lfs merge=lfs -text
|
| 53 |
+
root/specialists/_proved/bin/decide filter=lfs diff=lfs merge=lfs -text
|
| 54 |
+
root/specialists/_proved/bin/discrete filter=lfs diff=lfs merge=lfs -text
|
| 55 |
+
root/specialists/_proved/bin/emoptics filter=lfs diff=lfs merge=lfs -text
|
| 56 |
+
root/specialists/_proved/bin/energy filter=lfs diff=lfs merge=lfs -text
|
| 57 |
+
root/specialists/_proved/bin/facts filter=lfs diff=lfs merge=lfs -text
|
| 58 |
+
root/specialists/_proved/bin/fusion filter=lfs diff=lfs merge=lfs -text
|
| 59 |
+
root/specialists/_proved/bin/geostats filter=lfs diff=lfs merge=lfs -text
|
| 60 |
+
root/specialists/_proved/bin/humanities filter=lfs diff=lfs merge=lfs -text
|
| 61 |
+
root/specialists/_proved/bin/life filter=lfs diff=lfs merge=lfs -text
|
| 62 |
+
root/specialists/_proved/bin/materials filter=lfs diff=lfs merge=lfs -text
|
| 63 |
+
root/specialists/_proved/bin/mechanics filter=lfs diff=lfs merge=lfs -text
|
| 64 |
+
root/specialists/_proved/bin/quantity filter=lfs diff=lfs merge=lfs -text
|
| 65 |
+
root/specialists/_proved/bin/space filter=lfs diff=lfs merge=lfs -text
|
| 66 |
+
root/specialists/_proved/bin/stores filter=lfs diff=lfs merge=lfs -text
|
| 67 |
+
root/specialists/_proved/bin/trades filter=lfs diff=lfs merge=lfs -text
|
README.md
CHANGED
|
@@ -91,6 +91,8 @@ It listens on 127.0.0.1 only and sends nothing anywhere except to services you c
|
|
| 91 |
|
| 92 |
## Verify this download
|
| 93 |
|
|
|
|
|
|
|
| 94 |
**Release 3.1 (17 October 2026).** Fold composition: the specialist network now learns operations from the specialists' own development exams instead of having every one written by hand (84 learned operations, each kept only when its siblings cross-checked it, each firing only when the question carries its template's names and materials), and chains them with the hand-written ones under the same checks; a learned operation never takes a value that arithmetic built to fit its slot. Found by the research record's re-examination of every specialist: when a check stops a route that could not have computed the answer (a document page asked for a derivative), the specialist that can is now asked; answers about a different quantity than the one asked (a frequency for a wavelength, a travel time for a share of sunlight), definitions given for a calculation, a first derivative given for a second, and lower-cased units are withheld or corrected; an answer in a unit of the asked dimension is restated in the asked unit. The Workbench's worked example is now a habitable-zone specialist built from one published paper. Release gate, sealed test 22 (150 questions written after the code froze, run once): 124 right, 3 wrong, 23 declined, 1 false yes; precision 97.9%. New root `c4c1edb342b54fe5faf7fdf775d27bf72d351ea0481d246c648a2e92b5269050`, anchored on Solana: [4kW4S5V4kHsF...](https://explorer.solana.com/tx/4kW4S5V4kHsFKGcxWBn37jPD73nGP17aF8eF9yPv8dEkwzTbWksvYaej2VkiUPMQ9PVdN92mmve4tAqgsr6RZ7s3). Code changed only (the fold chain, specialists/_gate and the Workbench); no store changed.
|
| 95 |
|
| 96 |
**Release patch 3 (16 October 2026).** The specialist network v5 reads the shapes the patch 2 retest (composition test C2) found unread: a box given as "5 cm by 4 cm by 3 cm" or a cube "5 cm on each side" (its volume derived by core arithmetic and shown in the path), "500 cubic centimetres of ice", "the water in the pond", "in a day". The older v2 network route is now checked like the others, and a unit answer about a place with no record ("minutes in a day on the planet Zentar") is withheld. New in the Workbench: an Essay tab and `python oracle7.py essay topic` (ProseFold) compose an essay from this model's own records, with a choice of length, reading level (measured as a grade), technical depth and style (profiles measured from Simple and English Wikipedia and the OpenStax textbooks); every sentence is kept word for word with its source, no language model, and their quality has not been measured by people yet. Release gate, sealed test 21 (150 questions written after the code froze, run once): 131 right, 2 wrong, 17 declined, 0 false yes; precision 98.1%. New root `0575c9b78f6dcc0a48ee57e6dc63d3e1a46afc13d2c9d9d4503db6c784564ed2`, anchored on Solana: [WNEdPhKJZYCh...](https://explorer.solana.com/tx/WNEdPhKJZYCh3ZKe7X8zhVehuyskEnKuDbde86W1XdKdBC9izVAJTzbrewtSUQ8keQvT1rZUBumCGnGxjDXyVgU). Code changed only (the fold chain, specialists/_gate and the Workbench); no store changed.
|
|
|
|
| 91 |
|
| 92 |
## Verify this download
|
| 93 |
|
| 94 |
+
**Release 4.0 (20 October 2026).** Every answer's route is now spelled as a word over the 22 paths of the three-tree runtime, and two numbers are kept for it: k, the number of steps, and L, the time it took. A question that did not form an answer is written to a hash-chained residue ledger, typed by the node where it stopped. An answer with nothing under it (no citation, proof or checked route) no longer becomes conversation state. Walks already made are recalled instead of walked again. Pronouns: when the chain cannot resolve a follow-up's pronoun, the previous cited answer is put in its place and the question is asked once more, and the reply says so ("Taking 'its' as Japan, from my previous answer."). This repository did not receive release 3.2 when the slim one did; 4.0 carries it (proved specialists as a cross-check, four star specialists, owner-first; see the slim repository's 3.2 note). The full 3.2 missed two sealed tests: sealed test 23 (three false yeses against a bar of two) and sealed test 24 (one format defect: a speed asked in km/h answered in m/h). Three guards were added after sealed test 23 (w556): owner-first may not return a stored fact for a question that gives no numbers; a negative amount of something that cannot be negative is withheld; arithmetic is not read from a sentence. A fourth guard (evidence must name what the question names) lost right answers on every form measured and is not included; the two sealed-23 errors it was aimed at stay open. Release test, PI4-B (186 turns, sealed before the code froze, run once): 157 right, 26 declined, 3 of 30 should-decline questions answered (false yeses); every answer to an answerable question was right. The same panel on the full 3.2 runtime: 157 right, 3 false yeses. Second turns of follow-ups: 23 right, 0 wrong. Mean steps k 4.946; median time L 120.35 ms. Route forms re-entered on recurring questions: 94.0% (shuffled baseline 16.5%); recurring pairs spelled the same word 20/20. Disclosed: pronoun re-entry fired on none of PI4-B's follow-ups (the 3.2 runtime already resolves them); on the first panel, PI4-A, the 4.0 and 3.2 runtimes gave identical answers; recalling walks cut mean time from 637 ms to 530 ms on 162 questions with the same k (5.636) and the same route word on all 162, so speed and step count are separate measures; four induction passes proposed no new rules; a panel generator bug (follow-up pairs not sharing a session) was fixed in the runner before PI4-B ran. New root `350cd86e190f5e451faa78e7d12f6d923bcc7cdcf46a556c70c8ac8211f5e4d4`, anchored on Solana: [4vJ57qaJxvzZ...](https://explorer.solana.com/tx/4vJ57qaJxvzZteEm3vL9sAsmsRmeeLg3X8ESk61zN29ZpGwqsCz3xcGMhoqWXy8TyqEQH9HT7Tn4c2FxoiGuvosH).
|
| 95 |
+
|
| 96 |
**Release 3.1 (17 October 2026).** Fold composition: the specialist network now learns operations from the specialists' own development exams instead of having every one written by hand (84 learned operations, each kept only when its siblings cross-checked it, each firing only when the question carries its template's names and materials), and chains them with the hand-written ones under the same checks; a learned operation never takes a value that arithmetic built to fit its slot. Found by the research record's re-examination of every specialist: when a check stops a route that could not have computed the answer (a document page asked for a derivative), the specialist that can is now asked; answers about a different quantity than the one asked (a frequency for a wavelength, a travel time for a share of sunlight), definitions given for a calculation, a first derivative given for a second, and lower-cased units are withheld or corrected; an answer in a unit of the asked dimension is restated in the asked unit. The Workbench's worked example is now a habitable-zone specialist built from one published paper. Release gate, sealed test 22 (150 questions written after the code froze, run once): 124 right, 3 wrong, 23 declined, 1 false yes; precision 97.9%. New root `c4c1edb342b54fe5faf7fdf775d27bf72d351ea0481d246c648a2e92b5269050`, anchored on Solana: [4kW4S5V4kHsF...](https://explorer.solana.com/tx/4kW4S5V4kHsFKGcxWBn37jPD73nGP17aF8eF9yPv8dEkwzTbWksvYaej2VkiUPMQ9PVdN92mmve4tAqgsr6RZ7s3). Code changed only (the fold chain, specialists/_gate and the Workbench); no store changed.
|
| 97 |
|
| 98 |
**Release patch 3 (16 October 2026).** The specialist network v5 reads the shapes the patch 2 retest (composition test C2) found unread: a box given as "5 cm by 4 cm by 3 cm" or a cube "5 cm on each side" (its volume derived by core arithmetic and shown in the path), "500 cubic centimetres of ice", "the water in the pond", "in a day". The older v2 network route is now checked like the others, and a unit answer about a place with no record ("minutes in a day on the planet Zentar") is withheld. New in the Workbench: an Essay tab and `python oracle7.py essay topic` (ProseFold) compose an essay from this model's own records, with a choice of length, reading level (measured as a grade), technical depth and style (profiles measured from Simple and English Wikipedia and the OpenStax textbooks); every sentence is kept word for word with its source, no language model, and their quality has not been measured by people yet. Release gate, sealed test 21 (150 questions written after the code froze, run once): 131 right, 2 wrong, 17 declined, 0 false yes; precision 98.1%. New root `0575c9b78f6dcc0a48ee57e6dc63d3e1a46afc13d2c9d9d4503db6c784564ed2`, anchored on Solana: [WNEdPhKJZYCh...](https://explorer.solana.com/tx/WNEdPhKJZYCh3ZKe7X8zhVehuyskEnKuDbde86W1XdKdBC9izVAJTzbrewtSUQ8keQvT1rZUBumCGnGxjDXyVgU). Code changed only (the fold chain, specialists/_gate and the Workbench); no store changed.
|
RELEASE_HASHES.json
CHANGED
|
@@ -1,16 +1,20 @@
|
|
| 1 |
{
|
| 2 |
"format": "oracle7-release-hashes/1",
|
| 3 |
"release": "oracle7",
|
| 4 |
-
"head": "
|
| 5 |
-
"merkle_root": "
|
| 6 |
"parts": {
|
| 7 |
"specialists/_cards": {
|
| 8 |
"sha256": "619ae757757de886c389cf953924f090d0f71ecff02447171381287f9553a2cf",
|
| 9 |
"files": 142
|
| 10 |
},
|
| 11 |
"specialists/_gate": {
|
| 12 |
-
"sha256": "
|
| 13 |
-
"files":
|
|
|
|
|
|
|
|
|
|
|
|
|
| 14 |
},
|
| 15 |
"specialists/acoustics": {
|
| 16 |
"sha256": "b1f834fac69da0bcb7fb3a0463559d622e1e842457d2f36aa2a821ce69dff84d",
|
|
@@ -144,6 +148,10 @@
|
|
| 144 |
"sha256": "11ba66e2158cf17ea81814f8365350a73ee5fa531a2e61d094c93c1dc8e9b650",
|
| 145 |
"files": 8
|
| 146 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
| 147 |
"specialists/densities": {
|
| 148 |
"sha256": "d694151f731a175b784d756e84996ae32151c50314e49e46e30a72a5c1a211dc",
|
| 149 |
"files": 8
|
|
@@ -192,6 +200,10 @@
|
|
| 192 |
"sha256": "ae8ee5a60711c2a49ec2f0ebf9baf119e0f1511e14cf530b2c8b6cd0d8ea7837",
|
| 193 |
"files": 10
|
| 194 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
| 195 |
"specialists/finance": {
|
| 196 |
"sha256": "ab5cb2ac863d2a679816e4c68b54dc55cce783bbc52b83069938397166c888c6",
|
| 197 |
"files": 7
|
|
@@ -284,6 +296,10 @@
|
|
| 284 |
"sha256": "f49eeef1a0310637ebd9320e55897f2cbd987577a9c76d99c4b4112f62ca73bc",
|
| 285 |
"files": 7
|
| 286 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
| 287 |
"specialists/hvac": {
|
| 288 |
"sha256": "7b98d4af07c2ae6ac5f31db2b275c48c891db332150e323ea374bf668e16e464",
|
| 289 |
"files": 7
|
|
@@ -1164,6 +1180,10 @@
|
|
| 1164 |
"sha256": "ff5aa630476ab4c3523737c54952b94b2007c943fe7b90648107a8e162aee1bd",
|
| 1165 |
"files": 6
|
| 1166 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1167 |
"specialists/statistics": {
|
| 1168 |
"sha256": "5448df943eaa687ec381deca697e3907d1910ceaa770cc30a8c02fb72d8e0913",
|
| 1169 |
"files": 7
|
|
@@ -1180,6 +1200,10 @@
|
|
| 1180 |
"sha256": "b92ad90fb4bca6d3e8eee4a36c3bb3d3499ab1c2ef84061f4783029f966a6602",
|
| 1181 |
"files": 6
|
| 1182 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1183 |
"specialists/units": {
|
| 1184 |
"sha256": "20140ff7585313840468cdf3eca54355fab59d5c1313ae14ec37b21f8ae9fad4",
|
| 1185 |
"files": 7
|
|
@@ -1233,12 +1257,12 @@
|
|
| 1233 |
"files": 9
|
| 1234 |
},
|
| 1235 |
"core/admitted": {
|
| 1236 |
-
"sha256": "
|
| 1237 |
-
"files":
|
| 1238 |
},
|
| 1239 |
"workbench": {
|
| 1240 |
-
"sha256": "
|
| 1241 |
-
"files":
|
| 1242 |
},
|
| 1243 |
"oracle7.py": {
|
| 1244 |
"sha256": "9d68865540b23122e0020c0b8ee52471a71a3dfa8e3572b23b961ea4b3bf920e",
|
|
@@ -1253,15 +1277,15 @@
|
|
| 1253 |
"anchor": {
|
| 1254 |
"chain": "solana-mainnet",
|
| 1255 |
"program": "MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr",
|
| 1256 |
-
"memo": "Oracle7 release
|
| 1257 |
-
"signature": "
|
| 1258 |
-
"block_time_utc": "2026-10-
|
| 1259 |
-
"slot":
|
| 1260 |
-
"explorer": "https://explorer.solana.com/tx/
|
| 1261 |
},
|
| 1262 |
"supersedes": {
|
| 1263 |
-
"merkle_root": "
|
| 1264 |
-
"anchor_signature": "
|
| 1265 |
-
"reason": "release
|
| 1266 |
}
|
| 1267 |
}
|
|
|
|
| 1 |
{
|
| 2 |
"format": "oracle7-release-hashes/1",
|
| 3 |
"release": "oracle7",
|
| 4 |
+
"head": "oracle_release_runtime_w558",
|
| 5 |
+
"merkle_root": "350cd86e190f5e451faa78e7d12f6d923bcc7cdcf46a556c70c8ac8211f5e4d4",
|
| 6 |
"parts": {
|
| 7 |
"specialists/_cards": {
|
| 8 |
"sha256": "619ae757757de886c389cf953924f090d0f71ecff02447171381287f9553a2cf",
|
| 9 |
"files": 142
|
| 10 |
},
|
| 11 |
"specialists/_gate": {
|
| 12 |
+
"sha256": "aba52f21aeffe5ed8829cfc0294dbb3e88a09131d040599d312f011e2b4bf82e",
|
| 13 |
+
"files": 23
|
| 14 |
+
},
|
| 15 |
+
"specialists/_proved": {
|
| 16 |
+
"sha256": "4ef644bab853b5f3f7883862aad58c55ca0682ba97b12f95664887d795ee6df9",
|
| 17 |
+
"files": 23
|
| 18 |
},
|
| 19 |
"specialists/acoustics": {
|
| 20 |
"sha256": "b1f834fac69da0bcb7fb3a0463559d622e1e842457d2f36aa2a821ce69dff84d",
|
|
|
|
| 148 |
"sha256": "11ba66e2158cf17ea81814f8365350a73ee5fa531a2e61d094c93c1dc8e9b650",
|
| 149 |
"files": 8
|
| 150 |
},
|
| 151 |
+
"specialists/decay-r2": {
|
| 152 |
+
"sha256": "8ce57db1b27f7f4f03aa288a6936e0c15d29e6d22805422f2da076fab20345ba",
|
| 153 |
+
"files": 10
|
| 154 |
+
},
|
| 155 |
"specialists/densities": {
|
| 156 |
"sha256": "d694151f731a175b784d756e84996ae32151c50314e49e46e30a72a5c1a211dc",
|
| 157 |
"files": 8
|
|
|
|
| 200 |
"sha256": "ae8ee5a60711c2a49ec2f0ebf9baf119e0f1511e14cf530b2c8b6cd0d8ea7837",
|
| 201 |
"files": 10
|
| 202 |
},
|
| 203 |
+
"specialists/exoorbits": {
|
| 204 |
+
"sha256": "63b6596341c7d07280829f1311adb8724fa66b9d63633b0a8394fa0c3efe26ca",
|
| 205 |
+
"files": 8
|
| 206 |
+
},
|
| 207 |
"specialists/finance": {
|
| 208 |
"sha256": "ab5cb2ac863d2a679816e4c68b54dc55cce783bbc52b83069938397166c888c6",
|
| 209 |
"files": 7
|
|
|
|
| 296 |
"sha256": "f49eeef1a0310637ebd9320e55897f2cbd987577a9c76d99c4b4112f62ca73bc",
|
| 297 |
"files": 7
|
| 298 |
},
|
| 299 |
+
"specialists/habzone": {
|
| 300 |
+
"sha256": "8594d61f3df4c88fba4fedf42b9a2a92b2e5b674ec4b1fb8e7bf9173ff7f9493",
|
| 301 |
+
"files": 8
|
| 302 |
+
},
|
| 303 |
"specialists/hvac": {
|
| 304 |
"sha256": "7b98d4af07c2ae6ac5f31db2b275c48c891db332150e323ea374bf668e16e464",
|
| 305 |
"files": 7
|
|
|
|
| 1180 |
"sha256": "ff5aa630476ab4c3523737c54952b94b2007c943fe7b90648107a8e162aee1bd",
|
| 1181 |
"files": 6
|
| 1182 |
},
|
| 1183 |
+
"specialists/stars": {
|
| 1184 |
+
"sha256": "8821d0ab890365a15043d4bce3afa028f98848623445080168281001322e46d9",
|
| 1185 |
+
"files": 10
|
| 1186 |
+
},
|
| 1187 |
"specialists/statistics": {
|
| 1188 |
"sha256": "5448df943eaa687ec381deca697e3907d1910ceaa770cc30a8c02fb72d8e0913",
|
| 1189 |
"files": 7
|
|
|
|
| 1200 |
"sha256": "b92ad90fb4bca6d3e8eee4a36c3bb3d3499ab1c2ef84061f4783029f966a6602",
|
| 1201 |
"files": 6
|
| 1202 |
},
|
| 1203 |
+
"specialists/transits": {
|
| 1204 |
+
"sha256": "50f36df2bf3a8dafd419a8e2324fb95a89d0920deadbdf59e52ce0d98070001a",
|
| 1205 |
+
"files": 8
|
| 1206 |
+
},
|
| 1207 |
"specialists/units": {
|
| 1208 |
"sha256": "20140ff7585313840468cdf3eca54355fab59d5c1313ae14ec37b21f8ae9fad4",
|
| 1209 |
"files": 7
|
|
|
|
| 1257 |
"files": 9
|
| 1258 |
},
|
| 1259 |
"core/admitted": {
|
| 1260 |
+
"sha256": "5229e122a10bab42c0184826d29e0787debfb4b48a3c3100fe95ad0f0b4f03dd",
|
| 1261 |
+
"files": 349
|
| 1262 |
},
|
| 1263 |
"workbench": {
|
| 1264 |
+
"sha256": "d43f5a9d1607da526e3dd89c20ea2e51f98bfc950c496680d85f207592163e70",
|
| 1265 |
+
"files": 151
|
| 1266 |
},
|
| 1267 |
"oracle7.py": {
|
| 1268 |
"sha256": "9d68865540b23122e0020c0b8ee52471a71a3dfa8e3572b23b961ea4b3bf920e",
|
|
|
|
| 1277 |
"anchor": {
|
| 1278 |
"chain": "solana-mainnet",
|
| 1279 |
"program": "MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr",
|
| 1280 |
+
"memo": "Oracle7 release 4.0 (w558), full and slim. oracle7 merkle 350cd86e190f5e451faa78e7d12f6d923bcc7cdcf46a556c70c8ac8211f5e4d4. oracle7-slim merkle d72ed426cffd99861bec539e0776127351f4d7955d20e73583da5b931a2b55a5. Release test PI4-B, run once per variant. Recipe: RELEASE_HASHES.json in each repository.",
|
| 1281 |
+
"signature": "4vJ57qaJxvzZteEm3vL9sAsmsRmeeLg3X8ESk61zN29ZpGwqsCz3xcGMhoqWXy8TyqEQH9HT7Tn4c2FxoiGuvosH",
|
| 1282 |
+
"block_time_utc": "2026-10-20T00:57:16Z",
|
| 1283 |
+
"slot": 459039726,
|
| 1284 |
+
"explorer": "https://explorer.solana.com/tx/4vJ57qaJxvzZteEm3vL9sAsmsRmeeLg3X8ESk61zN29ZpGwqsCz3xcGMhoqWXy8TyqEQH9HT7Tn4c2FxoiGuvosH"
|
| 1285 |
},
|
| 1286 |
"supersedes": {
|
| 1287 |
+
"merkle_root": "c4c1edb342b54fe5faf7fdf775d27bf72d351ea0481d246c648a2e92b5269050",
|
| 1288 |
+
"anchor_signature": "4kW4S5V4kHsFKGcxWBn37jPD73nGP17aF8eF9yPv8dEkwzTbWksvYaej2VkiUPMQ9PVdN92mmve4tAqgsr6RZ7s3",
|
| 1289 |
+
"reason": "release 4.0 (2026): the law, built from an invocation Ben wrote (w557): every answer's path spelled over the twenty-two paths of the three-tree runtime and counted before release; a hash-chained residue ledger of what did not form, typed by where on the Tree it stopped; an answer with nothing under it does not become conversation state; walks recalled, not re-walked; a pronoun the chain cannot resolve re-enters the previous cited answer, said aloud (w558). On the full 3.2 head (w556: owner-first needs givens; negative amounts withheld; arithmetic is not read from a sentence). Release test: PI4-B."
|
| 1290 |
}
|
| 1291 |
}
|
RELEASE_HASHES_before_40.json
ADDED
|
@@ -0,0 +1,1267 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"format": "oracle7-release-hashes/1",
|
| 3 |
+
"release": "oracle7",
|
| 4 |
+
"head": "oracle_release_runtime_w548",
|
| 5 |
+
"merkle_root": "c4c1edb342b54fe5faf7fdf775d27bf72d351ea0481d246c648a2e92b5269050",
|
| 6 |
+
"parts": {
|
| 7 |
+
"specialists/_cards": {
|
| 8 |
+
"sha256": "619ae757757de886c389cf953924f090d0f71ecff02447171381287f9553a2cf",
|
| 9 |
+
"files": 142
|
| 10 |
+
},
|
| 11 |
+
"specialists/_gate": {
|
| 12 |
+
"sha256": "958a79ab626cb7b826b8e3eb9e6decd0ca5491bc3120cf64a3b6f9f774b3ce2a",
|
| 13 |
+
"files": 20
|
| 14 |
+
},
|
| 15 |
+
"specialists/acoustics": {
|
| 16 |
+
"sha256": "b1f834fac69da0bcb7fb3a0463559d622e1e842457d2f36aa2a821ce69dff84d",
|
| 17 |
+
"files": 6
|
| 18 |
+
},
|
| 19 |
+
"specialists/additive-v2": {
|
| 20 |
+
"sha256": "56bf6cdba671418df144e7caedfab6549ef1d436b3065d0c1d6f244c3ba4d9ab",
|
| 21 |
+
"files": 9
|
| 22 |
+
},
|
| 23 |
+
"specialists/agriculture-v2": {
|
| 24 |
+
"sha256": "523033353b845b037316bb4b71250441ec4ff6ba398ba3133dea5297c43680d8",
|
| 25 |
+
"files": 11
|
| 26 |
+
},
|
| 27 |
+
"specialists/airquality": {
|
| 28 |
+
"sha256": "befc3811a2e40c142a378d3f058a97dcec6abb7265d22d875de0d39884051ccf",
|
| 29 |
+
"files": 8
|
| 30 |
+
},
|
| 31 |
+
"specialists/algorithms": {
|
| 32 |
+
"sha256": "ad309ce3c7881029bfe872d7de0942a136c6329822733c9489d4ea6bea44f78c",
|
| 33 |
+
"files": 7
|
| 34 |
+
},
|
| 35 |
+
"specialists/anatomy": {
|
| 36 |
+
"sha256": "a21bd232538cb1323fae467a05fefcdc717621ce4c4174a57ceb58dd0152d32f",
|
| 37 |
+
"files": 8
|
| 38 |
+
},
|
| 39 |
+
"specialists/anatomy-r2": {
|
| 40 |
+
"sha256": "3eb6374536765ee657f4e17c5cc9ef10ef7a7846746c79c4a4e2d4c5e254c30f",
|
| 41 |
+
"files": 7
|
| 42 |
+
},
|
| 43 |
+
"specialists/architecture": {
|
| 44 |
+
"sha256": "58dfad2ed6b36f50a0c4c755090ded6f01f7476eeac689eaf488a8aab9de5164",
|
| 45 |
+
"files": 8
|
| 46 |
+
},
|
| 47 |
+
"specialists/arthistory": {
|
| 48 |
+
"sha256": "696412350d6532270d324236a3e3aec58a27bc21ec9c359988c5dee3ab1f2d16",
|
| 49 |
+
"files": 10
|
| 50 |
+
},
|
| 51 |
+
"specialists/astronomy": {
|
| 52 |
+
"sha256": "58408c64c5d3c3cb6df1124e3db87fd74cfa6bad0d8cdcab2ebf11657f0fbe75",
|
| 53 |
+
"files": 8
|
| 54 |
+
},
|
| 55 |
+
"specialists/astronomy-v2": {
|
| 56 |
+
"sha256": "c0011119e9775b93859ff012fa6a8b1fdd1297a281c8f8411802370fb88163bb",
|
| 57 |
+
"files": 7
|
| 58 |
+
},
|
| 59 |
+
"specialists/astronomy-v3": {
|
| 60 |
+
"sha256": "bd211531997204300cdb08d777da9e5aac96d56120a2e919334919baecd2f32d",
|
| 61 |
+
"files": 8
|
| 62 |
+
},
|
| 63 |
+
"specialists/astronomy-v3-r2": {
|
| 64 |
+
"sha256": "3c406f686faba66a057f5cd9eb87e8bc068e7f7f746e2cd4d6ab3de3ca072766",
|
| 65 |
+
"files": 14
|
| 66 |
+
},
|
| 67 |
+
"specialists/biology": {
|
| 68 |
+
"sha256": "7d23c6ce45e5ddf686bd1ed34d3c8a8be9a37e29682c73b10c42bbc07181b6aa",
|
| 69 |
+
"files": 8
|
| 70 |
+
},
|
| 71 |
+
"specialists/bodies-v2": {
|
| 72 |
+
"sha256": "aca39dcb39cb470c8bbf9995571fc869f5fb28431e2acad9af4143175508f053",
|
| 73 |
+
"files": 9
|
| 74 |
+
},
|
| 75 |
+
"specialists/botany": {
|
| 76 |
+
"sha256": "5af91f59a42663c0befc53099a6aa62e8bddc684abf3a1134a6e95dd641e6766",
|
| 77 |
+
"files": 10
|
| 78 |
+
},
|
| 79 |
+
"specialists/calculus": {
|
| 80 |
+
"sha256": "6b9fef0d96329117eb10220ab5eddb33fb1534da455c2d5db18db1eaa5a114e5",
|
| 81 |
+
"files": 6
|
| 82 |
+
},
|
| 83 |
+
"specialists/carboncapture": {
|
| 84 |
+
"sha256": "99e32723e5c04e1d3cfa4b515a642d9e480dae4978e55ac01652721477977e8b",
|
| 85 |
+
"files": 8
|
| 86 |
+
},
|
| 87 |
+
"specialists/carbonmat": {
|
| 88 |
+
"sha256": "64f1f87981f10f39fcef287a85ab7d578dfbfe54a7e185dc79aa918a83030a89",
|
| 89 |
+
"files": 8
|
| 90 |
+
},
|
| 91 |
+
"specialists/chemistry": {
|
| 92 |
+
"sha256": "21ebebe15bb58bb6e0a230b2e2fbe4e77f373fbde762ac1779c91fb945c2e281",
|
| 93 |
+
"files": 8
|
| 94 |
+
},
|
| 95 |
+
"specialists/chemistry-v3": {
|
| 96 |
+
"sha256": "78495138a3ee05df30c872bc095b36813b4c99c7de320521aa2fbee0e947225b",
|
| 97 |
+
"files": 12
|
| 98 |
+
},
|
| 99 |
+
"specialists/childdev": {
|
| 100 |
+
"sha256": "2e706a0ab4be8a1185d7a8dcd6848ed1ef84438f661dacd8eaf3438f7e71d72a",
|
| 101 |
+
"files": 10
|
| 102 |
+
},
|
| 103 |
+
"specialists/climate": {
|
| 104 |
+
"sha256": "f42048beb6bab4e312d0db1d79978eef5907b3274ee24108dad65bbf8aa5dfb2",
|
| 105 |
+
"files": 8
|
| 106 |
+
},
|
| 107 |
+
"specialists/coldchain": {
|
| 108 |
+
"sha256": "e150790aef318f2e8f0362c701e8bb066aaae4718de5491144d2e9e50e6ebe01",
|
| 109 |
+
"files": 7
|
| 110 |
+
},
|
| 111 |
+
"specialists/coldchain-v2": {
|
| 112 |
+
"sha256": "95ecd3302b85ada9304c0724c852f32c5173cc491cd0e1ad07bceff35df55701",
|
| 113 |
+
"files": 12
|
| 114 |
+
},
|
| 115 |
+
"specialists/cooking": {
|
| 116 |
+
"sha256": "b95cdb478d919ff54af26ec8275dce278e0365e5c576c79b2b4cdbc2fffe9a4f",
|
| 117 |
+
"files": 9
|
| 118 |
+
},
|
| 119 |
+
"specialists/cooking-v2": {
|
| 120 |
+
"sha256": "59d8a815a76d2240161f1c429bb185e1cf4ae89f7433c7207e156104189b9e12",
|
| 121 |
+
"files": 8
|
| 122 |
+
},
|
| 123 |
+
"specialists/cooking-v3": {
|
| 124 |
+
"sha256": "244f4d1225b884d24ed81138b885bbc4b60e48e91839aa3a55ce030980d46b3b",
|
| 125 |
+
"files": 9
|
| 126 |
+
},
|
| 127 |
+
"specialists/cooking-v3-r2": {
|
| 128 |
+
"sha256": "f9add0be09a177d4afb4485a4237474c0f6346baa3f9cdf5c98993c7c4a9b7d3",
|
| 129 |
+
"files": 15
|
| 130 |
+
},
|
| 131 |
+
"specialists/crafts": {
|
| 132 |
+
"sha256": "2d0867e2e54b1b6381f86f44999bb5fa9f84ae6a8f2cddc244bc67cba34557d7",
|
| 133 |
+
"files": 8
|
| 134 |
+
},
|
| 135 |
+
"specialists/cyber": {
|
| 136 |
+
"sha256": "948e2190f06c367417c08ec2e1dbf63eadd8826885743381805e61fa98d135a2",
|
| 137 |
+
"files": 8
|
| 138 |
+
},
|
| 139 |
+
"specialists/dataformats": {
|
| 140 |
+
"sha256": "2b97a2b0b9f9335f17541168e801ece056eef7b3ee7f42d6c5fb856dd968520c",
|
| 141 |
+
"files": 7
|
| 142 |
+
},
|
| 143 |
+
"specialists/decay": {
|
| 144 |
+
"sha256": "11ba66e2158cf17ea81814f8365350a73ee5fa531a2e61d094c93c1dc8e9b650",
|
| 145 |
+
"files": 8
|
| 146 |
+
},
|
| 147 |
+
"specialists/densities": {
|
| 148 |
+
"sha256": "d694151f731a175b784d756e84996ae32151c50314e49e46e30a72a5c1a211dc",
|
| 149 |
+
"files": 8
|
| 150 |
+
},
|
| 151 |
+
"specialists/densities-r2": {
|
| 152 |
+
"sha256": "afdd31a9495e7a54695bf3bb8a0d51eeb545ef82b7b9fcaa71367066c385498d",
|
| 153 |
+
"files": 9
|
| 154 |
+
},
|
| 155 |
+
"specialists/ecology": {
|
| 156 |
+
"sha256": "010360a1fdeb98a4f2fc21be6b1eebd96695d5d80e953b55f765bfc0a2b36b85",
|
| 157 |
+
"files": 8
|
| 158 |
+
},
|
| 159 |
+
"specialists/economics": {
|
| 160 |
+
"sha256": "eebb751f4324f72375b60a3d70942c8ab5b132331cb148cb83b9523ecad23bf4",
|
| 161 |
+
"files": 8
|
| 162 |
+
},
|
| 163 |
+
"specialists/electrical": {
|
| 164 |
+
"sha256": "4c89aed30761c2ac9d724bbf296c29d0c22305f6457b95a728cfb529381df4d1",
|
| 165 |
+
"files": 8
|
| 166 |
+
},
|
| 167 |
+
"specialists/electronics": {
|
| 168 |
+
"sha256": "9b37becbb4fba1243237e17a3291ddb6564e49041219519bd0d945890acd66dc",
|
| 169 |
+
"files": 7
|
| 170 |
+
},
|
| 171 |
+
"specialists/electronics-r2": {
|
| 172 |
+
"sha256": "1a67a09f49f11ed7b7bde0f73d4f98e1ed6e5e9ba5ca0eadf045f2fd14a90d68",
|
| 173 |
+
"files": 7
|
| 174 |
+
},
|
| 175 |
+
"specialists/embedded": {
|
| 176 |
+
"sha256": "d2acd2482059890e52b3685b527bac3d4d50622a524492c7487a51e2ce9aea5d",
|
| 177 |
+
"files": 8
|
| 178 |
+
},
|
| 179 |
+
"specialists/energy-v2": {
|
| 180 |
+
"sha256": "cccd99903b4f425a4c2506321e563ad3f382119ede0c3594304de7b1805dac52",
|
| 181 |
+
"files": 7
|
| 182 |
+
},
|
| 183 |
+
"specialists/energy-v3": {
|
| 184 |
+
"sha256": "9384e2a81a7042d11f4b7a0d3a2ff0a3b9b5b5f3edde8c1b7a35b1217094508b",
|
| 185 |
+
"files": 8
|
| 186 |
+
},
|
| 187 |
+
"specialists/entomology": {
|
| 188 |
+
"sha256": "ee081a71c75d7643f1b50729acca7fb0f002e30da7cdcfc8e9364da5209ee0fe",
|
| 189 |
+
"files": 10
|
| 190 |
+
},
|
| 191 |
+
"specialists/etiquette": {
|
| 192 |
+
"sha256": "ae8ee5a60711c2a49ec2f0ebf9baf119e0f1511e14cf530b2c8b6cd0d8ea7837",
|
| 193 |
+
"files": 10
|
| 194 |
+
},
|
| 195 |
+
"specialists/finance": {
|
| 196 |
+
"sha256": "ab5cb2ac863d2a679816e4c68b54dc55cce783bbc52b83069938397166c888c6",
|
| 197 |
+
"files": 7
|
| 198 |
+
},
|
| 199 |
+
"specialists/finance-v2": {
|
| 200 |
+
"sha256": "d3b5d3a6666a6f051cb7290f4967ebc6d2d16c68f8dd24235a2fac070ed96c00",
|
| 201 |
+
"files": 12
|
| 202 |
+
},
|
| 203 |
+
"specialists/finance-v2-r2": {
|
| 204 |
+
"sha256": "4b44d6264bc12075f7bf197726399559e6086a902a44de5d8c874cdae710bdf2",
|
| 205 |
+
"files": 11
|
| 206 |
+
},
|
| 207 |
+
"specialists/firesafety-v2": {
|
| 208 |
+
"sha256": "82dacf7eae4f061981dda17272e6572983e3972162224e9f24293fe387021b61",
|
| 209 |
+
"files": 10
|
| 210 |
+
},
|
| 211 |
+
"specialists/firstaid": {
|
| 212 |
+
"sha256": "ea314183893b08a18700995fb64ade8a45cc041f70ed30bdf93d094fe95f536b",
|
| 213 |
+
"files": 10
|
| 214 |
+
},
|
| 215 |
+
"specialists/fleet": {
|
| 216 |
+
"sha256": "304b6bb4a25fdff30ba018c17d527ad7d50405d20de20793af73d56985f4de2f",
|
| 217 |
+
"files": 7
|
| 218 |
+
},
|
| 219 |
+
"specialists/fluids": {
|
| 220 |
+
"sha256": "239fe31ee98b73988dd240b05e7f9d79e1f67d58c02a8a64d4faf8a0d14df5bb",
|
| 221 |
+
"files": 8
|
| 222 |
+
},
|
| 223 |
+
"specialists/fluids-r2": {
|
| 224 |
+
"sha256": "d93d4dc0f7777b2b6c73d44ac8d16e38cd08a69a92c8af2694da2ae63cee67db",
|
| 225 |
+
"files": 9
|
| 226 |
+
},
|
| 227 |
+
"specialists/forestry": {
|
| 228 |
+
"sha256": "b04fb4b96035ce10bb07c9f409dc309601f9a42cf8be8aed1d949090cec18bb7",
|
| 229 |
+
"files": 8
|
| 230 |
+
},
|
| 231 |
+
"specialists/fuels": {
|
| 232 |
+
"sha256": "03ce57c8ae111136fff26dffc6bff71a47bc6bb2df59d3a8c80767b5997d7d4b",
|
| 233 |
+
"files": 8
|
| 234 |
+
},
|
| 235 |
+
"specialists/games-v3": {
|
| 236 |
+
"sha256": "d0670dd8f9d94eb416999bd7048f4be96e91eff2702fad27636059275da47d58",
|
| 237 |
+
"files": 10
|
| 238 |
+
},
|
| 239 |
+
"specialists/gardening": {
|
| 240 |
+
"sha256": "8a64598bcf8beb10b3214dcbb36c2b29e588eabb00c41f3eb985f3e279c27f7d",
|
| 241 |
+
"files": 8
|
| 242 |
+
},
|
| 243 |
+
"specialists/genetics-v2": {
|
| 244 |
+
"sha256": "49ac519b2cc0eadeafb79b29c15c9a99e5d868b067fc6777ed065a9bc3a971d1",
|
| 245 |
+
"files": 11
|
| 246 |
+
},
|
| 247 |
+
"specialists/geography": {
|
| 248 |
+
"sha256": "8f107fcf17a048377317a4343411c8a6a8f75958282a266cc8fd15f8042a4197",
|
| 249 |
+
"files": 8
|
| 250 |
+
},
|
| 251 |
+
"specialists/geology": {
|
| 252 |
+
"sha256": "ad27f3d878b6de6f3b5b277b1a852625ebf12e0189d496d0acf90131f5461934",
|
| 253 |
+
"files": 8
|
| 254 |
+
},
|
| 255 |
+
"specialists/geometry": {
|
| 256 |
+
"sha256": "46fc4fafd8d3633ba3f3e15704733b51935a7b559995bd3cb06d5f7de3533abe",
|
| 257 |
+
"files": 6
|
| 258 |
+
},
|
| 259 |
+
"specialists/geometry-v3": {
|
| 260 |
+
"sha256": "b8e9842ccc063bebc2fd705039fcf485abb008f58d3f453d8d790f38d268ea93",
|
| 261 |
+
"files": 9
|
| 262 |
+
},
|
| 263 |
+
"specialists/geometry-v4": {
|
| 264 |
+
"sha256": "296a480f352d91f13e7903a3b9baf1a97d77dd55d956bed247ddcaf04689e1be",
|
| 265 |
+
"files": 10
|
| 266 |
+
},
|
| 267 |
+
"specialists/git": {
|
| 268 |
+
"sha256": "827f404802ecd0ecfe65d089cd56e99ddfc57dbcb25b5e77dbe617fa2d531d24",
|
| 269 |
+
"files": 8
|
| 270 |
+
},
|
| 271 |
+
"specialists/government": {
|
| 272 |
+
"sha256": "9a0b18fb8d5a030bdf1b5ca601550d2235008a72df49d6c858e7893bb7c9fbfa",
|
| 273 |
+
"files": 8
|
| 274 |
+
},
|
| 275 |
+
"specialists/grammar": {
|
| 276 |
+
"sha256": "0909a6e4d8ba122ffafef397ea88dec36e245783e72822a0d4b510c95e40a973",
|
| 277 |
+
"files": 8
|
| 278 |
+
},
|
| 279 |
+
"specialists/greenhouse": {
|
| 280 |
+
"sha256": "87175794f5aa16de7195017f1df2db1a650f1465ca79fd6d43ea0300ac09cda0",
|
| 281 |
+
"files": 7
|
| 282 |
+
},
|
| 283 |
+
"specialists/greenhouse-r2": {
|
| 284 |
+
"sha256": "f49eeef1a0310637ebd9320e55897f2cbd987577a9c76d99c4b4112f62ca73bc",
|
| 285 |
+
"files": 7
|
| 286 |
+
},
|
| 287 |
+
"specialists/hvac": {
|
| 288 |
+
"sha256": "7b98d4af07c2ae6ac5f31db2b275c48c891db332150e323ea374bf668e16e464",
|
| 289 |
+
"files": 7
|
| 290 |
+
},
|
| 291 |
+
"specialists/hydrology": {
|
| 292 |
+
"sha256": "d51a7e6c7b581f92ac3bcef8289010f8388e05b471766830a91f19fe3926bcf3",
|
| 293 |
+
"files": 7
|
| 294 |
+
},
|
| 295 |
+
"specialists/iot": {
|
| 296 |
+
"sha256": "62ca53f84921ed51c1ee97bb3972520e19f385b6e644ea93ae77acf1fa9c1ccc",
|
| 297 |
+
"files": 8
|
| 298 |
+
},
|
| 299 |
+
"specialists/javascript": {
|
| 300 |
+
"sha256": "30b3d464c7008f6cbbe67dae3923a2b80058f8ae6d66fe95efb0f8fbfaa1efec",
|
| 301 |
+
"files": 11
|
| 302 |
+
},
|
| 303 |
+
"specialists/labsolutions": {
|
| 304 |
+
"sha256": "cb38e6bf06cee68d5bcdbe33499aa0fdd82ca9b48697f865064614a67b63b5fe",
|
| 305 |
+
"files": 10
|
| 306 |
+
},
|
| 307 |
+
"specialists/labsolutions-r2": {
|
| 308 |
+
"sha256": "eaea9b9f7122c65aa74cd56f6177fc661fc9e638a4f988d90899dd30b78f2031",
|
| 309 |
+
"files": 10
|
| 310 |
+
},
|
| 311 |
+
"specialists/law": {
|
| 312 |
+
"sha256": "d3bce2f7225ee7fe17e016c3ffe0954550058fab6d1609495a3bc329b7cdb1a1",
|
| 313 |
+
"files": 10
|
| 314 |
+
},
|
| 315 |
+
"specialists/library": {
|
| 316 |
+
"sha256": "eee1d02ca69f26536501d5ae7bf23bd52a0450602b30b8ad6d6eeadd38ea49e0",
|
| 317 |
+
"files": 8
|
| 318 |
+
},
|
| 319 |
+
"specialists/linguistics": {
|
| 320 |
+
"sha256": "84a7c56de847547353b88ead503c85f6400b3d4089acd514e639e898ab29da3b",
|
| 321 |
+
"files": 10
|
| 322 |
+
},
|
| 323 |
+
"specialists/linux-v2": {
|
| 324 |
+
"sha256": "b5444cafc7d204c02693c83631c56334ae1d788a1a2a0a9dc5d9c541d5d98914",
|
| 325 |
+
"files": 11
|
| 326 |
+
},
|
| 327 |
+
"specialists/literature-v2": {
|
| 328 |
+
"sha256": "5caa9188095408f3e34a30132d5db84417f462bd9d4abb69f5a89a9f69ef4461",
|
| 329 |
+
"files": 11
|
| 330 |
+
},
|
| 331 |
+
"specialists/logic-v3": {
|
| 332 |
+
"sha256": "ef4158bebab9248feb6559276e51932edd36157fb684ec7b9a6e5686aa0055ce",
|
| 333 |
+
"files": 11
|
| 334 |
+
},
|
| 335 |
+
"specialists/marinebio": {
|
| 336 |
+
"sha256": "00c693b22ac924df1f7c19973805cd98f47d23b8b81f506d960d826abd29b33b",
|
| 337 |
+
"files": 10
|
| 338 |
+
},
|
| 339 |
+
"specialists/materials-v2": {
|
| 340 |
+
"sha256": "9d1a16e250ffbde10dbe91676e76f5e0a572739d59a3b96f6bbee3ccb8b283e8",
|
| 341 |
+
"files": 9
|
| 342 |
+
},
|
| 343 |
+
"specialists/mechanisms": {
|
| 344 |
+
"sha256": "5cd545850c81615d97f4bba5cacc9a8c9d3cf485d4d99aa439d1a8a79412eb46",
|
| 345 |
+
"files": 6
|
| 346 |
+
},
|
| 347 |
+
"specialists/mechanisms-v2": {
|
| 348 |
+
"sha256": "f3ef1347aef9b07b687e1411e9137fb5e835641223b6bc693f41e96f3d700a84",
|
| 349 |
+
"files": 12
|
| 350 |
+
},
|
| 351 |
+
"specialists/medicine": {
|
| 352 |
+
"sha256": "b8bcdd6b3d47a130a3fa29c35124f0f10b63e236f8047101c4a0140732842f50",
|
| 353 |
+
"files": 10
|
| 354 |
+
},
|
| 355 |
+
"specialists/medicine-r2": {
|
| 356 |
+
"sha256": "8357c755727bdad3c118cbe7d5a8a32a51b97b03219e00ef0ecfffe0e719446e",
|
| 357 |
+
"files": 9
|
| 358 |
+
},
|
| 359 |
+
"specialists/meteorology": {
|
| 360 |
+
"sha256": "8f159bc6f48d5ea57291a942c9936eb443599bb3af6ffdce23940274a63bd0ba",
|
| 361 |
+
"files": 6
|
| 362 |
+
},
|
| 363 |
+
"specialists/microbiology-v2": {
|
| 364 |
+
"sha256": "6ec92110413981f55ec5a7fbb019635da501f67347d2dca8698b2dc5fe41ad8f",
|
| 365 |
+
"files": 9
|
| 366 |
+
},
|
| 367 |
+
"specialists/music-v2": {
|
| 368 |
+
"sha256": "20a7d9f146a0ec2f32c9f461f7b4561146e9e3f68e68a1abc4befc5e19371e27",
|
| 369 |
+
"files": 11
|
| 370 |
+
},
|
| 371 |
+
"specialists/music-v2-r2": {
|
| 372 |
+
"sha256": "08a82efa304ff2257d64257ef8d171c4169e02f27c0859a20781c91eed631056",
|
| 373 |
+
"files": 10
|
| 374 |
+
},
|
| 375 |
+
"specialists/mycelial": {
|
| 376 |
+
"sha256": "7cd80e37e6e8bb57ecffa9df2ffaa02215f6163df59f334504b518efc9bcff29",
|
| 377 |
+
"files": 10
|
| 378 |
+
},
|
| 379 |
+
"specialists/mycology": {
|
| 380 |
+
"sha256": "470a4dfc6b5fdb86d9f7ebe5d4481aac518562e1d4b5fee4e329b0d10e1fe629",
|
| 381 |
+
"files": 10
|
| 382 |
+
},
|
| 383 |
+
"specialists/mythology": {
|
| 384 |
+
"sha256": "925cb2901a02ecad02a1dbdeeca739082096c4aa6077cf79c6db8badc8556c05",
|
| 385 |
+
"files": 8
|
| 386 |
+
},
|
| 387 |
+
"specialists/networking": {
|
| 388 |
+
"sha256": "a0a90634582cd4a45980ab9853e9e6b6f61a8638a4d904d7c9e1c9b64ee2cfdf",
|
| 389 |
+
"files": 8
|
| 390 |
+
},
|
| 391 |
+
"specialists/nutrition-label-v2": {
|
| 392 |
+
"sha256": "26d25c937ad6c22ede0b836b5de61786792f67ab1a9236de374c4cbc3a5187d1",
|
| 393 |
+
"files": 9
|
| 394 |
+
},
|
| 395 |
+
"specialists/ocean": {
|
| 396 |
+
"sha256": "145006ee7a909d93e90b23b4294691d453bef1d87579c8fa5e187ac1c51ce9d6",
|
| 397 |
+
"files": 8
|
| 398 |
+
},
|
| 399 |
+
"specialists/optics": {
|
| 400 |
+
"sha256": "c58517aa4565c85b7ecbbc9b8982bc53a04f050219014de01fce9e9ce3cec5be",
|
| 401 |
+
"files": 6
|
| 402 |
+
},
|
| 403 |
+
"specialists/optics-v2": {
|
| 404 |
+
"sha256": "38c66d52bcb457a5582abc5018a58e4119c1575e06d9267e225fdc8dea2b65ae",
|
| 405 |
+
"files": 7
|
| 406 |
+
},
|
| 407 |
+
"specialists/optics-v3": {
|
| 408 |
+
"sha256": "430447014db000b43e1fc857d9d5e5d8d0762cbfaf04002ce4f7784967f952af",
|
| 409 |
+
"files": 8
|
| 410 |
+
},
|
| 411 |
+
"specialists/optics-v5": {
|
| 412 |
+
"sha256": "8b97d434f613450ac163ab951d0ce74216987f0b60923e548f1d301a743bbb11",
|
| 413 |
+
"files": 21
|
| 414 |
+
},
|
| 415 |
+
"specialists/optics-v5-r2": {
|
| 416 |
+
"sha256": "cb66eb46e38433c478966af95f638fb44be4ae215509d2672965c27e408e36b4",
|
| 417 |
+
"files": 20
|
| 418 |
+
},
|
| 419 |
+
"specialists/orbits": {
|
| 420 |
+
"sha256": "2461710b2bfbe5d629c1afc92b64deffdadb8398222cbbd356a8c14be472582f",
|
| 421 |
+
"files": 7
|
| 422 |
+
},
|
| 423 |
+
"specialists/ornithology": {
|
| 424 |
+
"sha256": "80d51be829aab8c05fcc9f3654b31b59a5c8e82b8859730db133263841e94cd1",
|
| 425 |
+
"files": 10
|
| 426 |
+
},
|
| 427 |
+
"specialists/pets": {
|
| 428 |
+
"sha256": "50c22fb1a909e9870c762f22e73ff57d68091c7c5f1a211e54a8186787c1f1ac",
|
| 429 |
+
"files": 10
|
| 430 |
+
},
|
| 431 |
+
"specialists/physics": {
|
| 432 |
+
"sha256": "83ac3e58e64678b00b106e08e2c897b5bfadbb7c807deeb04141f46d4f243cd6",
|
| 433 |
+
"files": 7
|
| 434 |
+
},
|
| 435 |
+
"specialists/physics-r2": {
|
| 436 |
+
"sha256": "69e7990f3684ee2a43f8ab29a6c45c4df66416842b89c0bdc09e859840bb5d04",
|
| 437 |
+
"files": 9
|
| 438 |
+
},
|
| 439 |
+
"specialists/physics-r3": {
|
| 440 |
+
"sha256": "9e0ede142f1cecc4d27628a4ad53ad5b528af31557dbbfb2d05d2ff71172ede5",
|
| 441 |
+
"files": 8
|
| 442 |
+
},
|
| 443 |
+
"specialists/planetary": {
|
| 444 |
+
"sha256": "4b62d2f5c18fe869ad2a570fc22d4a4d94a735d178372e09f01c6f310af02459",
|
| 445 |
+
"files": 8
|
| 446 |
+
},
|
| 447 |
+
"specialists/poetry": {
|
| 448 |
+
"sha256": "9361a2a7b18f5bd260f57a9d417e62ebb00d9721625b2f4f99bbfd296aad44f3",
|
| 449 |
+
"files": 10
|
| 450 |
+
},
|
| 451 |
+
"specialists/printing": {
|
| 452 |
+
"sha256": "8f3a93b080db2a923196d2e6138949518c39cded5b800a4fb38e8a254e095df2",
|
| 453 |
+
"files": 7
|
| 454 |
+
},
|
| 455 |
+
"specialists/printing-v2": {
|
| 456 |
+
"sha256": "24b2fc335c8fde6a749e0104d8dbbf20d1f535aad854e160305442ab0e1d1e32",
|
| 457 |
+
"files": 12
|
| 458 |
+
},
|
| 459 |
+
"specialists/psychology": {
|
| 460 |
+
"sha256": "18061dc814732e42e51bb2a12ebc323d7169dd21c4734bd2cc0d651fe5052c98",
|
| 461 |
+
"files": 10
|
| 462 |
+
},
|
| 463 |
+
"specialists/python": {
|
| 464 |
+
"sha256": "4bbb3917b28303f8c1448f403ba2c0426b1528c199921ab8f7110a99b95b3bda",
|
| 465 |
+
"files": 9
|
| 466 |
+
},
|
| 467 |
+
"specialists/python-r2": {
|
| 468 |
+
"sha256": "1301cb2d6653db2a3a8488e9c5585426f63a537f8e3a4fa5e03a22e59c340365",
|
| 469 |
+
"files": 9
|
| 470 |
+
},
|
| 471 |
+
"specialists/rel-actors": {
|
| 472 |
+
"sha256": "94fe86c201fb2a0dd0036c642ab2a58040ce675a8ef7314fcc33be7218e1cb91",
|
| 473 |
+
"files": 8
|
| 474 |
+
},
|
| 475 |
+
"specialists/rel-aircraft": {
|
| 476 |
+
"sha256": "e42af0d661a5573d11d6d56b2fa28fc834c55099e23f5c16a2c674071695afd6",
|
| 477 |
+
"files": 7
|
| 478 |
+
},
|
| 479 |
+
"specialists/rel-airlines": {
|
| 480 |
+
"sha256": "8e1b16921e092b8ae91aaac84c60d2bb4fdb32dc9ef6f15f55f1a7786830c066",
|
| 481 |
+
"files": 7
|
| 482 |
+
},
|
| 483 |
+
"specialists/rel-airports": {
|
| 484 |
+
"sha256": "ca6c24da1cf6998f80ee384be4dc12323cb897a0fdb22f16503f6e5f68dcf57a",
|
| 485 |
+
"files": 7
|
| 486 |
+
},
|
| 487 |
+
"specialists/rel-albums": {
|
| 488 |
+
"sha256": "c50c357436987aa8974701d664e3db518a6751ed74438df38cc60441ade9869d",
|
| 489 |
+
"files": 8
|
| 490 |
+
},
|
| 491 |
+
"specialists/rel-animators": {
|
| 492 |
+
"sha256": "d6e6271266b0954a61471a5033b4af17c6c8a2b85c80be20f9430436c254590c",
|
| 493 |
+
"files": 7
|
| 494 |
+
},
|
| 495 |
+
"specialists/rel-anime": {
|
| 496 |
+
"sha256": "4d346b7a3ea5d1f9e24388099c3d89a060f554e767cfb91061e089ba7ce70aa3",
|
| 497 |
+
"files": 7
|
| 498 |
+
},
|
| 499 |
+
"specialists/rel-architects": {
|
| 500 |
+
"sha256": "327e99d5643a7de485d870acddde728a7650fba1c12448d51efa74638a853c98",
|
| 501 |
+
"files": 7
|
| 502 |
+
},
|
| 503 |
+
"specialists/rel-asteroids": {
|
| 504 |
+
"sha256": "b1840aebe96ea41b14a4fbfd5097a8500057e1d61e631ae332186dd6665c2598",
|
| 505 |
+
"files": 7
|
| 506 |
+
},
|
| 507 |
+
"specialists/rel-astronauts": {
|
| 508 |
+
"sha256": "82906463e7dae7f3f3232f660a9ccbedfc16b00a089c97de5682488561285152",
|
| 509 |
+
"files": 7
|
| 510 |
+
},
|
| 511 |
+
"specialists/rel-astronomers": {
|
| 512 |
+
"sha256": "62c8618d70496ee821bf2a9a44874c7d23e858af47887553ce1acaf7d5c91c6e",
|
| 513 |
+
"files": 7
|
| 514 |
+
},
|
| 515 |
+
"specialists/rel-athletes": {
|
| 516 |
+
"sha256": "e6f08e57dcda4107517e0dbf0fa730ef19be1389f806fd581373a8d60efafddb",
|
| 517 |
+
"files": 7
|
| 518 |
+
},
|
| 519 |
+
"specialists/rel-awards": {
|
| 520 |
+
"sha256": "192510470bd6e5e3f5cd4334529d75e3da99e1d034159351e65410152c4d42db",
|
| 521 |
+
"files": 7
|
| 522 |
+
},
|
| 523 |
+
"specialists/rel-ballets": {
|
| 524 |
+
"sha256": "4594970aa6fe14079921de49133551361a5d3f12447a3e848122aed14dd0ca5f",
|
| 525 |
+
"files": 7
|
| 526 |
+
},
|
| 527 |
+
"specialists/rel-bands": {
|
| 528 |
+
"sha256": "8c08916c112cf7010df395203a6f5a7d7c8598fddb5acf3eb31bb814c8e23e9b",
|
| 529 |
+
"files": 7
|
| 530 |
+
},
|
| 531 |
+
"specialists/rel-baseball": {
|
| 532 |
+
"sha256": "3d02b894c816062ed0533f17ada843533c1f639d18a701ceb749f5307e3c6857",
|
| 533 |
+
"files": 7
|
| 534 |
+
},
|
| 535 |
+
"specialists/rel-basketball": {
|
| 536 |
+
"sha256": "fc7872886bcb867f0796a456440b0b19040eb919ba05e3bd44f1fb5b0af7d0ac",
|
| 537 |
+
"files": 7
|
| 538 |
+
},
|
| 539 |
+
"specialists/rel-battles": {
|
| 540 |
+
"sha256": "92df9a44e245e60fc1bbc89bffa8b03f0d1c488462792b6935281f029aa2ef49",
|
| 541 |
+
"files": 7
|
| 542 |
+
},
|
| 543 |
+
"specialists/rel-biathletes": {
|
| 544 |
+
"sha256": "a71c3137c5c346185718b2562f38f36b02e83c3dba0cee2a287496b31a11e980",
|
| 545 |
+
"files": 7
|
| 546 |
+
},
|
| 547 |
+
"specialists/rel-biologists": {
|
| 548 |
+
"sha256": "a0a2953c7bc2c03f3f81258971699d318ec668dced7bd38aea6302a972ec6ff3",
|
| 549 |
+
"files": 7
|
| 550 |
+
},
|
| 551 |
+
"specialists/rel-bloggers": {
|
| 552 |
+
"sha256": "0f00be50c3df97466dc4c5cdfd67182f0ef7ec15072c558fe88020992392710c",
|
| 553 |
+
"files": 7
|
| 554 |
+
},
|
| 555 |
+
"specialists/rel-boxers": {
|
| 556 |
+
"sha256": "d64565a0cefb73a2b469a719e1e3be0033ee1f22f03d2bd5513d4bb47f26a228",
|
| 557 |
+
"files": 7
|
| 558 |
+
},
|
| 559 |
+
"specialists/rel-brands": {
|
| 560 |
+
"sha256": "8b96fe11f49ab3873f7ea817b6bd5515f993478d0a58cc5b790026f7915610c5",
|
| 561 |
+
"files": 7
|
| 562 |
+
},
|
| 563 |
+
"specialists/rel-breeds": {
|
| 564 |
+
"sha256": "1790526f1ffe51704dd62f5aa2b3e3ce4d7d1c66cedb851e63574eba17cc1bc9",
|
| 565 |
+
"files": 7
|
| 566 |
+
},
|
| 567 |
+
"specialists/rel-bridges": {
|
| 568 |
+
"sha256": "2b3def52a1d68670ee02baf4e2d022d1d6a405bac2bbe128d23e38771c1f5fe3",
|
| 569 |
+
"files": 7
|
| 570 |
+
},
|
| 571 |
+
"specialists/rel-business": {
|
| 572 |
+
"sha256": "e21c10c79e71e9225bd1deda100094bfcf110e6d88aaf528839ff3f2a475e510",
|
| 573 |
+
"files": 7
|
| 574 |
+
},
|
| 575 |
+
"specialists/rel-carbrands": {
|
| 576 |
+
"sha256": "96e3ec5eb9be9c0f372cdf71945bd221fac92c6531e03252c9c29ff48723c987",
|
| 577 |
+
"files": 7
|
| 578 |
+
},
|
| 579 |
+
"specialists/rel-carmodels": {
|
| 580 |
+
"sha256": "a6973c624b643c5c35887c987cfec8aa192e7895759e92b2521ed7a9ce267f92",
|
| 581 |
+
"files": 7
|
| 582 |
+
},
|
| 583 |
+
"specialists/rel-castles": {
|
| 584 |
+
"sha256": "6a64c827dae572dc4751559f981844123be6c362788b930055fb26d7f1f7b8a8",
|
| 585 |
+
"files": 7
|
| 586 |
+
},
|
| 587 |
+
"specialists/rel-channels": {
|
| 588 |
+
"sha256": "f1d7f551e22aa47982d1d60cd81ce037849fefc2709505d7dd0496dda01abef3",
|
| 589 |
+
"files": 7
|
| 590 |
+
},
|
| 591 |
+
"specialists/rel-characters": {
|
| 592 |
+
"sha256": "b0832b9c28a54c0e67ff794155e9dff3a700c6722a71d5dcf545d17e855c25ee",
|
| 593 |
+
"files": 7
|
| 594 |
+
},
|
| 595 |
+
"specialists/rel-chefs": {
|
| 596 |
+
"sha256": "7bf2cc4f04d36d90749d835d63a9dc1192b7cecb441aadb7397c5d3ad58aed3a",
|
| 597 |
+
"files": 7
|
| 598 |
+
},
|
| 599 |
+
"specialists/rel-chemists": {
|
| 600 |
+
"sha256": "ee488eaa75e596a6da2352f053e7a68d4bc6babea88d5b28801292bfdc75cadd",
|
| 601 |
+
"files": 7
|
| 602 |
+
},
|
| 603 |
+
"specialists/rel-chess": {
|
| 604 |
+
"sha256": "9e4c09d7a15ed6091047313e8249c021ad84ef1fcfbcb7d4b5de1c1012371ce8",
|
| 605 |
+
"files": 7
|
| 606 |
+
},
|
| 607 |
+
"specialists/rel-churches": {
|
| 608 |
+
"sha256": "00a55b2ff9b6e6d04b8dd3d89d7cc0ee67479e182e1d0c7a8e1976b532aaeda1",
|
| 609 |
+
"files": 7
|
| 610 |
+
},
|
| 611 |
+
"specialists/rel-comedians": {
|
| 612 |
+
"sha256": "c53bf97b567c0eab0348ebe2382762649f2b19078d02bf7f155286efce161e91",
|
| 613 |
+
"files": 7
|
| 614 |
+
},
|
| 615 |
+
"specialists/rel-comics": {
|
| 616 |
+
"sha256": "163c63c2c01975950728a4c9542f17a060355047f60147af46e5ca7f6cc75784",
|
| 617 |
+
"files": 7
|
| 618 |
+
},
|
| 619 |
+
"specialists/rel-companies": {
|
| 620 |
+
"sha256": "cfd7c900d24ca91e3da57d83fff03b3cec75fc9039b81a396ac085c4ad1237e3",
|
| 621 |
+
"files": 8
|
| 622 |
+
},
|
| 623 |
+
"specialists/rel-composers": {
|
| 624 |
+
"sha256": "c79bf75790d2f191fde1c581653601422a095cd0f28eded9dc402d722ef402af",
|
| 625 |
+
"files": 8
|
| 626 |
+
},
|
| 627 |
+
"specialists/rel-compounds": {
|
| 628 |
+
"sha256": "37ab98152a2eddbd791a059d3770573d16739fb228944811998a21cf9479c5dd",
|
| 629 |
+
"files": 7
|
| 630 |
+
},
|
| 631 |
+
"specialists/rel-computerscientists": {
|
| 632 |
+
"sha256": "4a5b0bb86e620a1a7bcfcb379058f5de7f08696adc83a173f3b342184e1c4b91",
|
| 633 |
+
"files": 7
|
| 634 |
+
},
|
| 635 |
+
"specialists/rel-countries-v2": {
|
| 636 |
+
"sha256": "93ea831614d96da5b335cedc51d1c92353630f715e5249639a5dc4b8044dc44e",
|
| 637 |
+
"files": 7
|
| 638 |
+
},
|
| 639 |
+
"specialists/rel-cricketers": {
|
| 640 |
+
"sha256": "6de3e498b4f94f57e7e5264dd600e2105f4ea072512e5bc17274d8e4d419c56f",
|
| 641 |
+
"files": 7
|
| 642 |
+
},
|
| 643 |
+
"specialists/rel-criminals": {
|
| 644 |
+
"sha256": "933cf3cbb1f84245ae10b5c8426444a8217f46a0b592c5c9a64db312bee20a5b",
|
| 645 |
+
"files": 7
|
| 646 |
+
},
|
| 647 |
+
"specialists/rel-crosscountry": {
|
| 648 |
+
"sha256": "057b79e8df90549b7889cc6585ddda55d9849a40093d1468ac19f4e6ea799dff",
|
| 649 |
+
"files": 7
|
| 650 |
+
},
|
| 651 |
+
"specialists/rel-curlers": {
|
| 652 |
+
"sha256": "6ee3c62c9a64cd24778c7c380902cd3e3946b8f0e854542537e28fa624a7c574",
|
| 653 |
+
"files": 7
|
| 654 |
+
},
|
| 655 |
+
"specialists/rel-cyclists": {
|
| 656 |
+
"sha256": "1d6a7ca32f895b42d764c8cc4dfe17b2105e2554ea8072864f5616b8e481a989",
|
| 657 |
+
"files": 7
|
| 658 |
+
},
|
| 659 |
+
"specialists/rel-dancers": {
|
| 660 |
+
"sha256": "cb3e7fde26a065c85e2381527fa96c7d0e097ba4606b7f6897b57fbff2fed531",
|
| 661 |
+
"files": 7
|
| 662 |
+
},
|
| 663 |
+
"specialists/rel-diplomats": {
|
| 664 |
+
"sha256": "1839e4fcdbd3c71126dbf4d0c3c4cb2e18b03eba4e4bf0d0bddc62365c1030c0",
|
| 665 |
+
"files": 7
|
| 666 |
+
},
|
| 667 |
+
"specialists/rel-directors": {
|
| 668 |
+
"sha256": "84cf854af587ec6b6f9b39002dffefa359411eb29df6cb7ffecbf23e43e3ff45",
|
| 669 |
+
"files": 7
|
| 670 |
+
},
|
| 671 |
+
"specialists/rel-diseases": {
|
| 672 |
+
"sha256": "5a7aec6b1cc06ed54e7cafa20ee196980931b050439b840f31e243492cac40b5",
|
| 673 |
+
"files": 7
|
| 674 |
+
},
|
| 675 |
+
"specialists/rel-dishes": {
|
| 676 |
+
"sha256": "d848aeb7cdf48c83e609fa61b1005ce7405fad6b08ff263957b616ce7dd20490",
|
| 677 |
+
"files": 7
|
| 678 |
+
},
|
| 679 |
+
"specialists/rel-drivers": {
|
| 680 |
+
"sha256": "7b735c16b6d7c66b0107f920106af435a8e8f8dee37f1f4dbbbf93dd0f82b52d",
|
| 681 |
+
"files": 7
|
| 682 |
+
},
|
| 683 |
+
"specialists/rel-economists": {
|
| 684 |
+
"sha256": "b1c909dcfe33a4b49c9d5afd2318d42bdf8f8cc1ede449ecf80158431f1331a0",
|
| 685 |
+
"files": 8
|
| 686 |
+
},
|
| 687 |
+
"specialists/rel-editors": {
|
| 688 |
+
"sha256": "3733af233905958f1cb006d88a2bb4b5bfae6a825142a7780032505c2537fcfb",
|
| 689 |
+
"files": 7
|
| 690 |
+
},
|
| 691 |
+
"specialists/rel-engineers": {
|
| 692 |
+
"sha256": "e3b7b616f3cec5e8fd2b5141742518af5c2f541e99a34928b4a3f330ea974809",
|
| 693 |
+
"files": 7
|
| 694 |
+
},
|
| 695 |
+
"specialists/rel-equestrians": {
|
| 696 |
+
"sha256": "d3f39cb631ec5b809c1ca0bd1117c4fe8e87863d7ddbb3166e912f103496a572",
|
| 697 |
+
"files": 7
|
| 698 |
+
},
|
| 699 |
+
"specialists/rel-explorers": {
|
| 700 |
+
"sha256": "679fa18e526a5991e18d81c532ca483e43d83e3a367196265fbbe7c375f80113",
|
| 701 |
+
"files": 7
|
| 702 |
+
},
|
| 703 |
+
"specialists/rel-fencers": {
|
| 704 |
+
"sha256": "0d0f2f742c7f542b51e963256a50541297ff0431235230a84e0f701eb5234eb1",
|
| 705 |
+
"files": 7
|
| 706 |
+
},
|
| 707 |
+
"specialists/rel-fieldhockey": {
|
| 708 |
+
"sha256": "1d2bc0be1741158c4b603ed2412dc2a83672303177d8a8e638fb04a71ccaad97",
|
| 709 |
+
"files": 7
|
| 710 |
+
},
|
| 711 |
+
"specialists/rel-films-v2": {
|
| 712 |
+
"sha256": "8bf0f56ee0465e1337ee635872dd7ae2beb20eef207ae4f9f75ff9d2fa48aabf",
|
| 713 |
+
"files": 9
|
| 714 |
+
},
|
| 715 |
+
"specialists/rel-footballclubs": {
|
| 716 |
+
"sha256": "ea9ac92911c3e8f3452a717bad1ca1c94862a9fa3c1889c046b83de118298f56",
|
| 717 |
+
"files": 7
|
| 718 |
+
},
|
| 719 |
+
"specialists/rel-footballers": {
|
| 720 |
+
"sha256": "dc44ded22167daf8ae3dfbee49baa4145df9186bfc09cfb8ad896032c778f65e",
|
| 721 |
+
"files": 7
|
| 722 |
+
},
|
| 723 |
+
"specialists/rel-galaxies": {
|
| 724 |
+
"sha256": "67e0fe8d8f49ed80c8de68992bcacea37afc8491de97d25231e3cbf4bff6c6f6",
|
| 725 |
+
"files": 7
|
| 726 |
+
},
|
| 727 |
+
"specialists/rel-genres": {
|
| 728 |
+
"sha256": "74b36f67e6661c2670a937bd4e575a4182aa922d188058a43333e35bb5c28c32",
|
| 729 |
+
"files": 7
|
| 730 |
+
},
|
| 731 |
+
"specialists/rel-geologists": {
|
| 732 |
+
"sha256": "2c5c60e548a0e16a8a89f60770d684e573a9721dbac30b0db57b24536be44816",
|
| 733 |
+
"files": 7
|
| 734 |
+
},
|
| 735 |
+
"specialists/rel-golfers": {
|
| 736 |
+
"sha256": "9dc2751c6517141b4d3f765cf327028403f5f0b0b16d7c3a5809e1f49a78c729",
|
| 737 |
+
"files": 7
|
| 738 |
+
},
|
| 739 |
+
"specialists/rel-graphicartists": {
|
| 740 |
+
"sha256": "3ea1c2264c144ba6256ba13313ba355cd4cbbd694bbdc56c47f0de3d74079b0e",
|
| 741 |
+
"files": 7
|
| 742 |
+
},
|
| 743 |
+
"specialists/rel-gridiron": {
|
| 744 |
+
"sha256": "0557820262e39c91d450034c680a66d8888254689cb177d89e6632f3bff284f2",
|
| 745 |
+
"files": 7
|
| 746 |
+
},
|
| 747 |
+
"specialists/rel-gymnasts": {
|
| 748 |
+
"sha256": "c33611064eed069becddc32e5bcdde210226aa6f2b045abeb4984d31204e3eb3",
|
| 749 |
+
"files": 7
|
| 750 |
+
},
|
| 751 |
+
"specialists/rel-handball": {
|
| 752 |
+
"sha256": "243248170ce1f8995dba7ad368a169322d8c7f24423d2ebaaf8ec9bf5ee7a12e",
|
| 753 |
+
"files": 7
|
| 754 |
+
},
|
| 755 |
+
"specialists/rel-historians": {
|
| 756 |
+
"sha256": "16dacace7a5f3382edc0b4e9d4b67d142ea7b391daacdef5a8b71f525225fca7",
|
| 757 |
+
"files": 7
|
| 758 |
+
},
|
| 759 |
+
"specialists/rel-hotels": {
|
| 760 |
+
"sha256": "e7f1c98da12c0584e72059252f0b3be6064785c36e2a6fdf2f5a70e963d6076c",
|
| 761 |
+
"files": 7
|
| 762 |
+
},
|
| 763 |
+
"specialists/rel-icehockey": {
|
| 764 |
+
"sha256": "f7390cf5e6ca8b34fe403fa3ba5aed9207583905e0dff56873d37687374ece77",
|
| 765 |
+
"files": 7
|
| 766 |
+
},
|
| 767 |
+
"specialists/rel-illustrators": {
|
| 768 |
+
"sha256": "ef869bf48ae791c837978b4fea4af90f07a56581d6f58fe230a457eae230b2d2",
|
| 769 |
+
"files": 7
|
| 770 |
+
},
|
| 771 |
+
"specialists/rel-instruments": {
|
| 772 |
+
"sha256": "055b9ca6ace969878484b791861bbd3380dc820c6f7a98bdbe4395ba34c35dfd",
|
| 773 |
+
"files": 7
|
| 774 |
+
},
|
| 775 |
+
"specialists/rel-islands": {
|
| 776 |
+
"sha256": "1f192f4ff7a3d12953aaf63e591665373687b0e472142d54112931f4d02b3486",
|
| 777 |
+
"files": 8
|
| 778 |
+
},
|
| 779 |
+
"specialists/rel-journalists": {
|
| 780 |
+
"sha256": "1623832e744ec02f5655c1ec52e7f8103a58311707c224e63936ef814cda5c33",
|
| 781 |
+
"files": 7
|
| 782 |
+
},
|
| 783 |
+
"specialists/rel-lakes": {
|
| 784 |
+
"sha256": "3247338c76ebde1e5d16915cdfed93465ed67f8b1f35af7d514c6a9121990a69",
|
| 785 |
+
"files": 8
|
| 786 |
+
},
|
| 787 |
+
"specialists/rel-languages": {
|
| 788 |
+
"sha256": "e9811041f02547874df89d43c661b8a4396f8a10ce9295b7ef01d9a5510c7c9f",
|
| 789 |
+
"files": 7
|
| 790 |
+
},
|
| 791 |
+
"specialists/rel-lawyers": {
|
| 792 |
+
"sha256": "f96279a7838e5a5e77817a058dcac70425f9fc125cf2add388bce32c757b39a4",
|
| 793 |
+
"files": 8
|
| 794 |
+
},
|
| 795 |
+
"specialists/rel-leagues": {
|
| 796 |
+
"sha256": "a13e9da52427806228a2c99547f1897697441c544029a6d5f22524790e576a98",
|
| 797 |
+
"files": 7
|
| 798 |
+
},
|
| 799 |
+
"specialists/rel-libraries": {
|
| 800 |
+
"sha256": "5e27954b7de3513ff431b67f384a40883722da86efabace23c7ef6cd193f6182",
|
| 801 |
+
"files": 7
|
| 802 |
+
},
|
| 803 |
+
"specialists/rel-linguists": {
|
| 804 |
+
"sha256": "a29a547cab9b9f725f3d1b8a18e0b2d36ac274b7c7802b25558d839030bf5e11",
|
| 805 |
+
"files": 7
|
| 806 |
+
},
|
| 807 |
+
"specialists/rel-mathematicians": {
|
| 808 |
+
"sha256": "79bb9d371e32fc15e7624676a121bc2b8bd7057a10affad7fa9f77dcd5689b76",
|
| 809 |
+
"files": 7
|
| 810 |
+
},
|
| 811 |
+
"specialists/rel-military": {
|
| 812 |
+
"sha256": "8795c7ffa35d7f07fbe1ec1114b12fd797449e78fa1294e016d2c91ab1b968e4",
|
| 813 |
+
"files": 8
|
| 814 |
+
},
|
| 815 |
+
"specialists/rel-militaryunits": {
|
| 816 |
+
"sha256": "044e30790c3b0f21cf95aaea70077fb79d856b59ef595667db1c38d475c0ba0e",
|
| 817 |
+
"files": 7
|
| 818 |
+
},
|
| 819 |
+
"specialists/rel-missionaries": {
|
| 820 |
+
"sha256": "ca313fbba00e276e81d2f20d62d1f50e0d21c07ca7c3574e30aca3409442f46d",
|
| 821 |
+
"files": 7
|
| 822 |
+
},
|
| 823 |
+
"specialists/rel-models": {
|
| 824 |
+
"sha256": "b8288521332328bf6e183b9aaff07215fa1dc1540c67a7eeab52d7b7b1247cec",
|
| 825 |
+
"files": 7
|
| 826 |
+
},
|
| 827 |
+
"specialists/rel-monarchs": {
|
| 828 |
+
"sha256": "701574bc7ab74b21c56c38f91d97ceecb8f04fab30bab83a0c5cef7e8103c7d6",
|
| 829 |
+
"files": 7
|
| 830 |
+
},
|
| 831 |
+
"specialists/rel-monuments": {
|
| 832 |
+
"sha256": "f611643d6dafbd2bf1fb2a2a106d47f304e45cc2c56b8e45d03b0255d842d763",
|
| 833 |
+
"files": 7
|
| 834 |
+
},
|
| 835 |
+
"specialists/rel-moons": {
|
| 836 |
+
"sha256": "1a8d7684d39d14f24f991eb98c845297327897725ba2033b8beecabf518797ee",
|
| 837 |
+
"files": 7
|
| 838 |
+
},
|
| 839 |
+
"specialists/rel-mountains": {
|
| 840 |
+
"sha256": "d300ef909811e4ae2f50193cc48902dcfb1698dfa3b6146a0e00a3e6d1834764",
|
| 841 |
+
"files": 8
|
| 842 |
+
},
|
| 843 |
+
"specialists/rel-museums": {
|
| 844 |
+
"sha256": "4911f8d7c96a805d179b9df6135e12465505f8380ab6b005dbeaee70b5f0247f",
|
| 845 |
+
"files": 8
|
| 846 |
+
},
|
| 847 |
+
"specialists/rel-musicians": {
|
| 848 |
+
"sha256": "bc5f3a1ca2d92da54a653cfb9a3e6f3d1c2b9dfe7ece6346e30b4b0b9ee4f907",
|
| 849 |
+
"files": 7
|
| 850 |
+
},
|
| 851 |
+
"specialists/rel-mythology": {
|
| 852 |
+
"sha256": "5cdd880a0ea4b24df5ca559e589dca77e1e1b6964bd446b7a245cb302e5c365b",
|
| 853 |
+
"files": 7
|
| 854 |
+
},
|
| 855 |
+
"specialists/rel-newspapers": {
|
| 856 |
+
"sha256": "95aa11a1ac5ab8a417e88341e8a45d2b10ec1947b2beeb45efe7ca11df47bc07",
|
| 857 |
+
"files": 7
|
| 858 |
+
},
|
| 859 |
+
"specialists/rel-novelists": {
|
| 860 |
+
"sha256": "b39c6fe5e3ddff538106fc12b44bf952423ecc187f9a8cf9f12455c1b2fbbaea",
|
| 861 |
+
"files": 7
|
| 862 |
+
},
|
| 863 |
+
"specialists/rel-novels": {
|
| 864 |
+
"sha256": "a4b8f79229ff9aca030af4fc4adbb36e2c4f09a9d4bd5de24076391e7b338f9e",
|
| 865 |
+
"files": 8
|
| 866 |
+
},
|
| 867 |
+
"specialists/rel-nurses": {
|
| 868 |
+
"sha256": "4544d9f519a5bfdd1815a8e2a55f97f3c1e5d531e3bf274265ce428b73a6e7f0",
|
| 869 |
+
"files": 7
|
| 870 |
+
},
|
| 871 |
+
"specialists/rel-observatories": {
|
| 872 |
+
"sha256": "1071d6283696980ab1cf1c7946dda1dff4dc6b797bbdeb1546a26a6a14549869",
|
| 873 |
+
"files": 7
|
| 874 |
+
},
|
| 875 |
+
"specialists/rel-operas": {
|
| 876 |
+
"sha256": "29e188da5526917011bf8c5c098fe6b7d1a3e80de6390e8f3d7f208d5c312ca5",
|
| 877 |
+
"files": 8
|
| 878 |
+
},
|
| 879 |
+
"specialists/rel-organisations": {
|
| 880 |
+
"sha256": "d9089a0cf4f906878b29182d8e37eac4490fc09348eecf5f16c6e705a11ba33d",
|
| 881 |
+
"files": 8
|
| 882 |
+
},
|
| 883 |
+
"specialists/rel-painters": {
|
| 884 |
+
"sha256": "75cb8fc5278bec2b96de456d1194258fb1da833655eab77bf10a70fbf0427b75",
|
| 885 |
+
"files": 8
|
| 886 |
+
},
|
| 887 |
+
"specialists/rel-paintings": {
|
| 888 |
+
"sha256": "16c9088861b395a971ac920f5e77dfefc6a69bf99485721588f1530bb57fc628",
|
| 889 |
+
"files": 8
|
| 890 |
+
},
|
| 891 |
+
"specialists/rel-parks": {
|
| 892 |
+
"sha256": "ca33388f09a2b38097dfdbef5dd899bbf36721566545838279ccf8bb1a8074f8",
|
| 893 |
+
"files": 7
|
| 894 |
+
},
|
| 895 |
+
"specialists/rel-parties": {
|
| 896 |
+
"sha256": "9f0a12993d4601bb47ec06d8ec97f04c68d0b96f4f507ae356fb58f2dbea465e",
|
| 897 |
+
"files": 7
|
| 898 |
+
},
|
| 899 |
+
"specialists/rel-pharmacists": {
|
| 900 |
+
"sha256": "340f31fb64fed582db61ab873eeeffe4a06c9990011be2a021062fc69d20df67",
|
| 901 |
+
"files": 7
|
| 902 |
+
},
|
| 903 |
+
"specialists/rel-philosophers": {
|
| 904 |
+
"sha256": "f1603c6cd2433c36be0d43b066af9712e642de1224e0fb653c84061d3c6c4920",
|
| 905 |
+
"files": 8
|
| 906 |
+
},
|
| 907 |
+
"specialists/rel-photographers": {
|
| 908 |
+
"sha256": "bb78a17a208eb7f320ed3cf6e7ce288fbd504f14a6fddcf9b765ad723e59ca9d",
|
| 909 |
+
"files": 7
|
| 910 |
+
},
|
| 911 |
+
"specialists/rel-physicians": {
|
| 912 |
+
"sha256": "7c59128f951efc1ff71e5f48cd40ba04e9a82b6c07c405b18198b59b5af26bfe",
|
| 913 |
+
"files": 7
|
| 914 |
+
},
|
| 915 |
+
"specialists/rel-physicists": {
|
| 916 |
+
"sha256": "c7968132233d2b2f9b6562d92f7ddec84514fe7df861b5c3e99ed07155796526",
|
| 917 |
+
"files": 7
|
| 918 |
+
},
|
| 919 |
+
"specialists/rel-planets": {
|
| 920 |
+
"sha256": "e376ea62c8494cfa9f1d72c8ccbc3d3140265c9c7cf0c5edb1d5f044777ecc3e",
|
| 921 |
+
"files": 7
|
| 922 |
+
},
|
| 923 |
+
"specialists/rel-playwrights": {
|
| 924 |
+
"sha256": "66d8af86ec6e9afa791fa58f961f8e128854ba69de5fdbb66ebeea8fe36a303d",
|
| 925 |
+
"files": 7
|
| 926 |
+
},
|
| 927 |
+
"specialists/rel-poems": {
|
| 928 |
+
"sha256": "f1c3faeb97874b50356216ce700524b04d951f3bf0199773d303020c9cab5541",
|
| 929 |
+
"files": 7
|
| 930 |
+
},
|
| 931 |
+
"specialists/rel-poets": {
|
| 932 |
+
"sha256": "7b1da9e53e2777d33017333fd41a9f2d7746e42a6c5b3025c20a12243cfe7005",
|
| 933 |
+
"files": 7
|
| 934 |
+
},
|
| 935 |
+
"specialists/rel-police": {
|
| 936 |
+
"sha256": "48e51ce84a4bbcdf691deb4957723a6e0f820fc38ff0cc02675471be406b0537",
|
| 937 |
+
"files": 7
|
| 938 |
+
},
|
| 939 |
+
"specialists/rel-politicians": {
|
| 940 |
+
"sha256": "cd47b4099994c03f4c9c94dcb9bebecd8bc7e4a029643798b0d275df2fa2948e",
|
| 941 |
+
"files": 8
|
| 942 |
+
},
|
| 943 |
+
"specialists/rel-printmakers": {
|
| 944 |
+
"sha256": "7f06a971bf5082030c892b31443414f496995d5ccb15a2577dcdd3acdbfc3139",
|
| 945 |
+
"files": 7
|
| 946 |
+
},
|
| 947 |
+
"specialists/rel-psychologists": {
|
| 948 |
+
"sha256": "ea8eae6c8c0764b5122aa4fc818e4768478592f6b02e2f4cc5fcceeba4de254b",
|
| 949 |
+
"files": 7
|
| 950 |
+
},
|
| 951 |
+
"specialists/rel-racketsports": {
|
| 952 |
+
"sha256": "838c495f22fc6af5616c01587cceba530aaaa4357c77ebdb1feb23c33e74ad97",
|
| 953 |
+
"files": 7
|
| 954 |
+
},
|
| 955 |
+
"specialists/rel-religions": {
|
| 956 |
+
"sha256": "2a9010b3010abe5f1f2b4fa09edec6ff9fd6aece86fb069b9dc70fd9d2eae22b",
|
| 957 |
+
"files": 7
|
| 958 |
+
},
|
| 959 |
+
"specialists/rel-rivers": {
|
| 960 |
+
"sha256": "6b3aecaeacc410f023c9e6624cecd8d75c6c594fec768b64ee2791c22e59195d",
|
| 961 |
+
"files": 7
|
| 962 |
+
},
|
| 963 |
+
"specialists/rel-rowers": {
|
| 964 |
+
"sha256": "c510f97c0fe835dbf17e0bbf4b23d00e1c8e2cb098a766f3f72d16df3f35ba24",
|
| 965 |
+
"files": 7
|
| 966 |
+
},
|
| 967 |
+
"specialists/rel-rugby": {
|
| 968 |
+
"sha256": "6c5917549941cce449ceebae9aa7fa577d630aa76a236f9a5cae27943c31eefa",
|
| 969 |
+
"files": 7
|
| 970 |
+
},
|
| 971 |
+
"specialists/rel-sculptors": {
|
| 972 |
+
"sha256": "a8e4e840ef6bdf6b29a0531551ef70e3fd2f46f4fcd6ee93f67ee90d29a1c6e4",
|
| 973 |
+
"files": 7
|
| 974 |
+
},
|
| 975 |
+
"specialists/rel-sculptures": {
|
| 976 |
+
"sha256": "dbc7669363f77b507e1a8cdd96d5839a448be42adb1130975e7e29a2448e5dd8",
|
| 977 |
+
"files": 7
|
| 978 |
+
},
|
| 979 |
+
"specialists/rel-ships": {
|
| 980 |
+
"sha256": "511520e5bed4f002e4aaa537de028d2f28a3eb4f78ef4480e7e307a5ca4fc3be",
|
| 981 |
+
"files": 8
|
| 982 |
+
},
|
| 983 |
+
"specialists/rel-shooters": {
|
| 984 |
+
"sha256": "29f6d3fc50bd60d80bc2f14100e49dd42db7c4e081fc01632bb73bc556991afe",
|
| 985 |
+
"files": 7
|
| 986 |
+
},
|
| 987 |
+
"specialists/rel-singers": {
|
| 988 |
+
"sha256": "f6441ad65e08bfbca93614fcf88cc4e2293fc2578c5b9f63aeb3a80458c0ae4f",
|
| 989 |
+
"files": 8
|
| 990 |
+
},
|
| 991 |
+
"specialists/rel-skaters": {
|
| 992 |
+
"sha256": "01b47325741aaffc4f290b8ef480be3314ba4aa4d2593f01ff79d54eef6fb687",
|
| 993 |
+
"files": 7
|
| 994 |
+
},
|
| 995 |
+
"specialists/rel-skiers": {
|
| 996 |
+
"sha256": "153c984b861bf22c4defb1036461cdda906b1c37a595c59a38353eb3eb495480",
|
| 997 |
+
"files": 7
|
| 998 |
+
},
|
| 999 |
+
"specialists/rel-skyscrapers": {
|
| 1000 |
+
"sha256": "7fdbc10b6514536caaf03d3d9aef367aebb75f63dd3899be773481f1a1ce7900",
|
| 1001 |
+
"files": 7
|
| 1002 |
+
},
|
| 1003 |
+
"specialists/rel-snooker": {
|
| 1004 |
+
"sha256": "c6f96d9e9608f01f58048033179210e6f18f8db650ca3729fe8fa078c9de6c4a",
|
| 1005 |
+
"files": 7
|
| 1006 |
+
},
|
| 1007 |
+
"specialists/rel-software": {
|
| 1008 |
+
"sha256": "ce2d3cf68062b42a5ba8b0802c6646058df162306b0955e72a5ba29194bb5dd9",
|
| 1009 |
+
"files": 7
|
| 1010 |
+
},
|
| 1011 |
+
"specialists/rel-songs": {
|
| 1012 |
+
"sha256": "cc5417c3dc1cc3d3a7bc6dffceb9f6d5b2b3fac466c4ddded9634f8ccf36cfa3",
|
| 1013 |
+
"files": 8
|
| 1014 |
+
},
|
| 1015 |
+
"specialists/rel-spacecraft": {
|
| 1016 |
+
"sha256": "e60b7516ac6ca848c688c1f68ca2081def7371b231c8317276884fee4c9a8820",
|
| 1017 |
+
"files": 7
|
| 1018 |
+
},
|
| 1019 |
+
"specialists/rel-speedskaters": {
|
| 1020 |
+
"sha256": "23d62e9f14f51e5666f530c341eacca5db7cf217149f874a88a2b143a2d241f0",
|
| 1021 |
+
"files": 7
|
| 1022 |
+
},
|
| 1023 |
+
"specialists/rel-spies": {
|
| 1024 |
+
"sha256": "d20f6ef2f652cb4509f449deef088f93b9c40c72bb5db14d60e33d553587a2cd",
|
| 1025 |
+
"files": 7
|
| 1026 |
+
},
|
| 1027 |
+
"specialists/rel-sportsevents": {
|
| 1028 |
+
"sha256": "dc0ff64f3a8198b528f97e4f0904bc32d57267892855d4eec3090a3b44dc5d5f",
|
| 1029 |
+
"files": 7
|
| 1030 |
+
},
|
| 1031 |
+
"specialists/rel-sportsteams": {
|
| 1032 |
+
"sha256": "8e5ec70c11be3aed82035d9e795e36ece07146f1315751ea9fcec579cbbfc686",
|
| 1033 |
+
"files": 7
|
| 1034 |
+
},
|
| 1035 |
+
"specialists/rel-stadiums": {
|
| 1036 |
+
"sha256": "a6921371c0c7bd6fb36dbb260b0df590138ad46e573394f391f9bd9ad35abf0f",
|
| 1037 |
+
"files": 7
|
| 1038 |
+
},
|
| 1039 |
+
"specialists/rel-stations": {
|
| 1040 |
+
"sha256": "7866fd03c4f16a321bc1f0f8c3bd4ae48238a7e5f21c7d04941272f7d4c440d3",
|
| 1041 |
+
"files": 7
|
| 1042 |
+
},
|
| 1043 |
+
"specialists/rel-statisticians": {
|
| 1044 |
+
"sha256": "76ca6babfb634212ae059a74f154c3fd6daf1d1aac1c98789fa64cf730d9993d",
|
| 1045 |
+
"files": 7
|
| 1046 |
+
},
|
| 1047 |
+
"specialists/rel-swimmers": {
|
| 1048 |
+
"sha256": "c22117266691d17b14b5d870762f763e1fe6ad4633d08fd8f6b4d573bac215ca",
|
| 1049 |
+
"files": 7
|
| 1050 |
+
},
|
| 1051 |
+
"specialists/rel-temples": {
|
| 1052 |
+
"sha256": "b541f2792e9e01fb0e489cecc75d9b5367c7c0d0f46ce03cd03d81244745db8c",
|
| 1053 |
+
"files": 7
|
| 1054 |
+
},
|
| 1055 |
+
"specialists/rel-tennis": {
|
| 1056 |
+
"sha256": "521d487542938f99097b9bbeea818e657c8aebd119c4e0b9aca6dbaac0d36674",
|
| 1057 |
+
"files": 7
|
| 1058 |
+
},
|
| 1059 |
+
"specialists/rel-theatres": {
|
| 1060 |
+
"sha256": "1d1a190b50f411513f02cb722f11b6f4af313180965d7578cdd4f8a7d10ed981",
|
| 1061 |
+
"files": 7
|
| 1062 |
+
},
|
| 1063 |
+
"specialists/rel-themeparks": {
|
| 1064 |
+
"sha256": "05504903e2f7d08ffde81e266e23df3ccb9dd49b2b62778c1b13a6faa022d550",
|
| 1065 |
+
"files": 7
|
| 1066 |
+
},
|
| 1067 |
+
"specialists/rel-theologians": {
|
| 1068 |
+
"sha256": "20ac3972bbf86bda3a30eebb583f3fb9167b5867d2ce4d3bb9caae1352d0dff0",
|
| 1069 |
+
"files": 7
|
| 1070 |
+
},
|
| 1071 |
+
"specialists/rel-tradeunionists": {
|
| 1072 |
+
"sha256": "45362aba3686c554fabe6ffc64c049dda9ab67e4f09ad3091215e58e40036cf5",
|
| 1073 |
+
"files": 7
|
| 1074 |
+
},
|
| 1075 |
+
"specialists/rel-translators": {
|
| 1076 |
+
"sha256": "35e5399bcacfa55d934779cf7ac302d76fb936b689ec06ae6c7afcc0f9172f1e",
|
| 1077 |
+
"files": 7
|
| 1078 |
+
},
|
| 1079 |
+
"specialists/rel-triathletes": {
|
| 1080 |
+
"sha256": "49096909d2b0d008e49a197525e55ec0ce11d75cf71d3bc05d0f37b9783ec5ae",
|
| 1081 |
+
"files": 7
|
| 1082 |
+
},
|
| 1083 |
+
"specialists/rel-tvproducers": {
|
| 1084 |
+
"sha256": "2abcbc61f8bed6170712577303cf46e62afb95d8e03e85a6882c3c3a8ba0edc9",
|
| 1085 |
+
"files": 7
|
| 1086 |
+
},
|
| 1087 |
+
"specialists/rel-tvseries-v2": {
|
| 1088 |
+
"sha256": "77cf98ad66bd4ca48ca85943f5c882a4542203f16bac999d55151c63846d7025",
|
| 1089 |
+
"files": 9
|
| 1090 |
+
},
|
| 1091 |
+
"specialists/rel-universities": {
|
| 1092 |
+
"sha256": "2510d9d003c1e7d603b065d746e341e604705b4e90d26734bb1734db5316f9af",
|
| 1093 |
+
"files": 7
|
| 1094 |
+
},
|
| 1095 |
+
"specialists/rel-videogames": {
|
| 1096 |
+
"sha256": "82619d9498cbeb235331a73f02c4e06bff2e7fa342881897572ab60c6a94688a",
|
| 1097 |
+
"files": 7
|
| 1098 |
+
},
|
| 1099 |
+
"specialists/rel-volleyball": {
|
| 1100 |
+
"sha256": "6e6fb9b90e50721338be6377df19fce8bd8d3dbdca1fdce6fe679a8893df5ed6",
|
| 1101 |
+
"files": 7
|
| 1102 |
+
},
|
| 1103 |
+
"specialists/rel-wars": {
|
| 1104 |
+
"sha256": "3ed991f4c8b9f23334647e13f4132e5eec541d54d1beced35834e955f241ae9f",
|
| 1105 |
+
"files": 7
|
| 1106 |
+
},
|
| 1107 |
+
"specialists/rel-waterpolo": {
|
| 1108 |
+
"sha256": "316111a529a8265b3047506eea793676084c3cb1a1c6c7655c88cf430b5ee64d",
|
| 1109 |
+
"files": 7
|
| 1110 |
+
},
|
| 1111 |
+
"specialists/rel-youtubers": {
|
| 1112 |
+
"sha256": "efba4c3d1fb5e7f8f9869fa0919a83eac5ee8f7a3b262d74db71b965e8055ae9",
|
| 1113 |
+
"files": 7
|
| 1114 |
+
},
|
| 1115 |
+
"specialists/renewables": {
|
| 1116 |
+
"sha256": "3e0b86a27cbfad6da5b373bd1198fbb757c2134221cd245006d737bcfbf0355d",
|
| 1117 |
+
"files": 8
|
| 1118 |
+
},
|
| 1119 |
+
"specialists/retail": {
|
| 1120 |
+
"sha256": "c94b6e73f60ad616d19187fe50f3ea81189b49bbaf5d8d6a68e620155fd81e17",
|
| 1121 |
+
"files": 7
|
| 1122 |
+
},
|
| 1123 |
+
"specialists/robotics-v2": {
|
| 1124 |
+
"sha256": "59ce39c28c72c2eb5b5afada758b45752a8721f2b997f81f9ea012bb3e14fe1e",
|
| 1125 |
+
"files": 9
|
| 1126 |
+
},
|
| 1127 |
+
"specialists/safety": {
|
| 1128 |
+
"sha256": "387631c63c91f42d05356f3ff4721a137981b77212c72e1eb5c3de64c1271c3b",
|
| 1129 |
+
"files": 6
|
| 1130 |
+
},
|
| 1131 |
+
"specialists/seismology": {
|
| 1132 |
+
"sha256": "6af36c14e4f9a6aee48bec7485f3dbe5f99909a3027be2622e9b4d3fa8f5c21b",
|
| 1133 |
+
"files": 8
|
| 1134 |
+
},
|
| 1135 |
+
"specialists/sociology": {
|
| 1136 |
+
"sha256": "b072aa03f2975aadad28fd7b0922ea4477c5506a7547abefe88c504ea07e7a47",
|
| 1137 |
+
"files": 10
|
| 1138 |
+
},
|
| 1139 |
+
"specialists/soil": {
|
| 1140 |
+
"sha256": "15e98ce12978b06259ca0b201755c00011a5f63d65a8c6ab33d10ff576ee5a95",
|
| 1141 |
+
"files": 8
|
| 1142 |
+
},
|
| 1143 |
+
"specialists/soil-r2": {
|
| 1144 |
+
"sha256": "640c83136e49d022eb15185667ab85aee534b02fc284a0650c64aea2bd24817e",
|
| 1145 |
+
"files": 7
|
| 1146 |
+
},
|
| 1147 |
+
"specialists/spacecomms": {
|
| 1148 |
+
"sha256": "dea586cd9ba7b0838c655a6abfd6ca1abd9d7eddb942a3daf7bb4cabc9f8a3ae",
|
| 1149 |
+
"files": 7
|
| 1150 |
+
},
|
| 1151 |
+
"specialists/spacecraft": {
|
| 1152 |
+
"sha256": "01b8b0ef55faa9ec6588a0ae206d9c775c4849da96d9186c913c8837cfb6f043",
|
| 1153 |
+
"files": 8
|
| 1154 |
+
},
|
| 1155 |
+
"specialists/sports": {
|
| 1156 |
+
"sha256": "7e24a125743bfab2b7959561564bcc13d3aed4ad19d325bfcfc3fd2ea19230cf",
|
| 1157 |
+
"files": 8
|
| 1158 |
+
},
|
| 1159 |
+
"specialists/springs": {
|
| 1160 |
+
"sha256": "f12cf342d028806ff93fe9f146cd2a1f8d383283695b38549b3c33fe5cb5247f",
|
| 1161 |
+
"files": 8
|
| 1162 |
+
},
|
| 1163 |
+
"specialists/sql": {
|
| 1164 |
+
"sha256": "ff5aa630476ab4c3523737c54952b94b2007c943fe7b90648107a8e162aee1bd",
|
| 1165 |
+
"files": 6
|
| 1166 |
+
},
|
| 1167 |
+
"specialists/statistics": {
|
| 1168 |
+
"sha256": "5448df943eaa687ec381deca697e3907d1910ceaa770cc30a8c02fb72d8e0913",
|
| 1169 |
+
"files": 7
|
| 1170 |
+
},
|
| 1171 |
+
"specialists/statistics-v2": {
|
| 1172 |
+
"sha256": "96a20825e3c70bc795945d5996dac2f21c3a181fb368821e83daabdd3e4b98c4",
|
| 1173 |
+
"files": 7
|
| 1174 |
+
},
|
| 1175 |
+
"specialists/statistics-v3": {
|
| 1176 |
+
"sha256": "88be2300583637eefdd14815a85fda4e0ac72d836b7cb48eb9d342cd84dbccb8",
|
| 1177 |
+
"files": 8
|
| 1178 |
+
},
|
| 1179 |
+
"specialists/thermo": {
|
| 1180 |
+
"sha256": "b92ad90fb4bca6d3e8eee4a36c3bb3d3499ab1c2ef84061f4783029f966a6602",
|
| 1181 |
+
"files": 6
|
| 1182 |
+
},
|
| 1183 |
+
"specialists/units": {
|
| 1184 |
+
"sha256": "20140ff7585313840468cdf3eca54355fab59d5c1313ae14ec37b21f8ae9fad4",
|
| 1185 |
+
"files": 7
|
| 1186 |
+
},
|
| 1187 |
+
"specialists/units-v2": {
|
| 1188 |
+
"sha256": "fdf2c8fd200c97508cc130b209a3f065fd3fe1f65c4254a3c48fc7891dce0c10",
|
| 1189 |
+
"files": 8
|
| 1190 |
+
},
|
| 1191 |
+
"specialists/units-v3": {
|
| 1192 |
+
"sha256": "f70b4d8d0c8c44295f373b693364194892084991c104465a0559a19a700cebad",
|
| 1193 |
+
"files": 9
|
| 1194 |
+
},
|
| 1195 |
+
"specialists/units-v3-r2": {
|
| 1196 |
+
"sha256": "86420f3c59b4e967b58c2f91dc8fdc2709ee3105947af839ae75553f66f885e7",
|
| 1197 |
+
"files": 13
|
| 1198 |
+
},
|
| 1199 |
+
"specialists/ushistory": {
|
| 1200 |
+
"sha256": "490526165f1b73b83ca15639af33b24e9601ec13d42c8652012efdc78e10e383",
|
| 1201 |
+
"files": 8
|
| 1202 |
+
},
|
| 1203 |
+
"specialists/warehouse": {
|
| 1204 |
+
"sha256": "8190fff2c6be02b5fb955df4f3bbaf8de35c75da260f83e041a3e6cb17a2ce17",
|
| 1205 |
+
"files": 8
|
| 1206 |
+
},
|
| 1207 |
+
"specialists/warehouse-r2": {
|
| 1208 |
+
"sha256": "8c1573c565ea4ba16970c319182bed17cc743baaa78a13e8c14c5cebd75d59e6",
|
| 1209 |
+
"files": 10
|
| 1210 |
+
},
|
| 1211 |
+
"specialists/water": {
|
| 1212 |
+
"sha256": "2361c83b7727d6b3278de13de173156f879db5592583be404a31b1723acc8998",
|
| 1213 |
+
"files": 7
|
| 1214 |
+
},
|
| 1215 |
+
"specialists/water-r3": {
|
| 1216 |
+
"sha256": "c9ec2b8be5326cc0bdd730ac382a23849ad4d976e44529c1ec8add1767971ce4",
|
| 1217 |
+
"files": 8
|
| 1218 |
+
},
|
| 1219 |
+
"specialists/wildlife": {
|
| 1220 |
+
"sha256": "643d940428a61215b4e1c20a90ee637681d318eb983ac2d873fa76cf0f8e57bf",
|
| 1221 |
+
"files": 8
|
| 1222 |
+
},
|
| 1223 |
+
"specialists/wiring": {
|
| 1224 |
+
"sha256": "2b04aeedfd914dddfa83139c32b59a3a43353f8f1b4eec90b0a9b3d958480c3d",
|
| 1225 |
+
"files": 7
|
| 1226 |
+
},
|
| 1227 |
+
"specialists/woodworking": {
|
| 1228 |
+
"sha256": "56ecadf3bb7c0116ccfd82bbaf60a0bbeececcd66e7db327d2516197243a0d5b",
|
| 1229 |
+
"files": 8
|
| 1230 |
+
},
|
| 1231 |
+
"specialists/worldhistory": {
|
| 1232 |
+
"sha256": "5b977e269d66669c9cb2aafad2e4782f709863553d9670e3113dd8fb53662c02",
|
| 1233 |
+
"files": 9
|
| 1234 |
+
},
|
| 1235 |
+
"core/admitted": {
|
| 1236 |
+
"sha256": "7771dbeabd010f8bc664ff367dc6b51015a8e3b20870fd1790f04f3a46098585",
|
| 1237 |
+
"files": 341
|
| 1238 |
+
},
|
| 1239 |
+
"workbench": {
|
| 1240 |
+
"sha256": "c9c21bebfb4ecf34fa0b598eb411b2a20d735f1b0e6277381fbf018f4b38c75f",
|
| 1241 |
+
"files": 150
|
| 1242 |
+
},
|
| 1243 |
+
"oracle7.py": {
|
| 1244 |
+
"sha256": "9d68865540b23122e0020c0b8ee52471a71a3dfa8e3572b23b961ea4b3bf920e",
|
| 1245 |
+
"files": 1
|
| 1246 |
+
},
|
| 1247 |
+
"PACK_MANIFEST.json": {
|
| 1248 |
+
"sha256": "1890ae3b3b754d901bf1cf552688eee5bc8acad8a148f08eadfb9fd6a614b132",
|
| 1249 |
+
"files": 1
|
| 1250 |
+
}
|
| 1251 |
+
},
|
| 1252 |
+
"recipe": "(the same code ships in workbench/verify.py, so users recompute it on their own install):\n part hash = SHA-256 over, for every file under the part's directory in byte-sorted relative POSIX path order (skipping\n __pycache__, *.pyc, verdict-free runtime state), the UTF-8 path, a NUL, the file's own SHA-256 (32 bytes)\n - files the download ships zstd-packed are hashed as their unpacked bytes (the PACK_MANIFEST sha256)\n leaf = SHA-256(UTF-8 \"oracle7-part:\" + name + \":\" + part hash hex)\n root = binary Merkle tree over the leaves in name order; a level with an odd count carries its last node up\n unchanged; a parent is SHA-256(left || right) of the raw 32-byte digests\nParts: every specialist directory (specialists/<dir>), the specialists' gate tools, the admitted fold chain, the workbench,\nthe launcher. Stores are covered by PACK_MANIFEST.json, whose own hash is a part.",
|
| 1253 |
+
"anchor": {
|
| 1254 |
+
"chain": "solana-mainnet",
|
| 1255 |
+
"program": "MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr",
|
| 1256 |
+
"memo": "Oracle7 release w548 3.1, 2026-10-17. oracle7 merkle c4c1edb342b54fe5faf7fdf775d27bf72d351ea0481d246c648a2e92b5269050. oracle7-slim merkle 732358ed179adc00f0404dc7ecb1fe7e11484699559f6c772a1c578b002288da. Recipe: RELEASE_HASHES.json in each repository.",
|
| 1257 |
+
"signature": "4kW4S5V4kHsFKGcxWBn37jPD73nGP17aF8eF9yPv8dEkwzTbWksvYaej2VkiUPMQ9PVdN92mmve4tAqgsr6RZ7s3",
|
| 1258 |
+
"block_time_utc": "2026-10-18T02:51:28Z",
|
| 1259 |
+
"slot": 458275075,
|
| 1260 |
+
"explorer": "https://explorer.solana.com/tx/4kW4S5V4kHsFKGcxWBn37jPD73nGP17aF8eF9yPv8dEkwzTbWksvYaej2VkiUPMQ9PVdN92mmve4tAqgsr6RZ7s3"
|
| 1261 |
+
},
|
| 1262 |
+
"supersedes": {
|
| 1263 |
+
"merkle_root": "0575c9b78f6dcc0a48ee57e6dc63d3e1a46afc13d2c9d9d4503db6c784564ed2",
|
| 1264 |
+
"anchor_signature": "WNEdPhKJZYCh3ZKe7X8zhVehuyskEnKuDbde86W1XdKdBC9izVAJTzbrewtSUQ8keQvT1rZUBumCGnGxjDXyVgU",
|
| 1265 |
+
"reason": "release 3.1 (17 October 2026): fold composition - specialist network v6 composes operations learned from the specialists' own exams (w549); the specialist answers after a check stops a route that could not know (w548); 3.1 correctness rules from the research record's re-examination and composition rounds (w547); the Workbench's worked example is the habitable-zone specialist; release gate: sealed test 22."
|
| 1266 |
+
}
|
| 1267 |
+
}
|
root/fable-content/oracle-m-series-2026-08-15/self_loop/admitted/HEAD_MANIFEST.json
CHANGED
|
@@ -1,6 +1,13 @@
|
|
| 1 |
{
|
| 2 |
-
"built_ts": "2026-10-
|
| 3 |
"chain_tip_to_base": [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4 |
"oracle_release_runtime_w548",
|
| 5 |
"oracle_release_runtime_w547",
|
| 6 |
"oracle_release_runtime_w550",
|
|
@@ -351,5 +358,5 @@
|
|
| 351 |
"oracle_release_runtime_w3"
|
| 352 |
],
|
| 353 |
"schema_version": "oracle-head-manifest-v1",
|
| 354 |
-
"tip": "
|
| 355 |
}
|
|
|
|
| 1 |
{
|
| 2 |
+
"built_ts": "2026-10-19T15:34:05Z",
|
| 3 |
"chain_tip_to_base": [
|
| 4 |
+
"oracle_release_runtime_w558",
|
| 5 |
+
"oracle_release_runtime_w557",
|
| 6 |
+
"oracle_release_runtime_w556",
|
| 7 |
+
"oracle_release_runtime_w423",
|
| 8 |
+
"oracle_release_runtime_w555",
|
| 9 |
+
"oracle_release_runtime_w554",
|
| 10 |
+
"oracle_release_runtime_w551",
|
| 11 |
"oracle_release_runtime_w548",
|
| 12 |
"oracle_release_runtime_w547",
|
| 13 |
"oracle_release_runtime_w550",
|
|
|
|
| 358 |
"oracle_release_runtime_w3"
|
| 359 |
],
|
| 360 |
"schema_version": "oracle-head-manifest-v1",
|
| 361 |
+
"tip": "oracle_release_runtime_w558"
|
| 362 |
}
|
root/fable-content/oracle-m-series-2026-08-15/self_loop/admitted/oracle_release_runtime_w423.py
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin/env python3
|
| 2 |
+
"""oracle_release_runtime_w423 - POTENTIALS fold (epoch 98): the typed space of the possible.
|
| 3 |
+
|
| 4 |
+
30 potentials bound from live sources: the self-model's declared gaps, the
|
| 5 |
+
human-signed target-shape distances, pending fold families, unmapped induced templates
|
| 6 |
+
(residuals naming missing capabilities), and refused candidates whose lessons are
|
| 7 |
+
encoded. A potential CONVERTS to an actual when a fold family admits - the conversion
|
| 8 |
+
rate across epochs is the measurable throughput of self-improvement.
|
| 9 |
+
Authored 2026-10-18 16:44 UTC by oracle_fold_worker_v6, chained on oracle_release_runtime_w555."""
|
| 10 |
+
|
| 11 |
+
from __future__ import annotations
|
| 12 |
+
|
| 13 |
+
import re
|
| 14 |
+
|
| 15 |
+
from oracle_release_runtime_w555 import OracleReleaseRuntimeW555
|
| 16 |
+
|
| 17 |
+
POTENTIALS = [{'kind': 'instrument_missing', 'name': 'declared_implications_closed: build the measure (a route that declares an implication supplies it; )'}, {'kind': 'instrument_missing', 'name': 'panel_guard_rate: build the measure (an instrument a mutant can pass is not measuring w)'}, {'kind': 'instrument_missing', 'name': 'routes_graded: build the measure (ten of twenty eight routes are wholly ungraded, an)'}, {'kind': 'shape_distance', 'name': 'continuity 230 -> 260'}, {'kind': 'shape_distance', 'name': 'grounding_cited 0.4905 -> 0.75'}, {'kind': 'shape_distance', 'name': 'thread_depth 1.89 -> 4.0'}, {'kind': 'declared_gap', 'name': 'route:conceptnet_isa_derived missing complements'}, {'kind': 'declared_gap', 'name': 'route:conceptnet_isa_direct missing complements'}, {'kind': 'declared_gap', 'name': 'route:conceptnet_partof_derived missing complements'}, {'kind': 'declared_gap', 'name': 'route:conceptnet_partof_direct missing complements'}, {'kind': 'declared_gap', 'name': 'route:conceptnet_isa_derived missing mediated_by'}, {'kind': 'declared_gap', 'name': 'route:conceptnet_isa_direct missing mediated_by'}, {'kind': 'declared_gap', 'name': 'panel:stage5m30_oneshot_report_v1 unguarded vs STRIP_CITATIONS, DENY_P'}, {'kind': 'declared_gap', 'name': 'panel:stage5m31_oneshot_report_v1 unguarded vs STRIP_CITATIONS, DENY_P'}, {'kind': 'declared_gap', 'name': 'panel:stage5m32_oneshot_report_v1 unguarded vs STRIP_CITATIONS, DENY_P'}, {'kind': 'declared_gap', 'name': 'panel:stage5m33_oneshot_report_v1 unguarded vs STRIP_CITATIONS, DENY_P'}, {'kind': 'declared_gap', 'name': 'panel:stage5m34_oneshot_report_v1 unguarded vs STRIP_CITATIONS, DENY_P'}, {'kind': 'declared_gap', 'name': 'panel:stage5m35_oneshot_report_v1 unguarded vs STRIP_CITATIONS, DENY_P'}, {'kind': 'declared_gap', 'name': 'act:continue_topic'}, {'kind': 'declared_gap', 'name': 'act:refine'}, {'kind': 'declared_gap', 'name': 'capability:list_n'}, {'kind': 'declared_gap', 'name': 'capability:multi_step'}, {'kind': 'declared_gap', 'name': 'capability:timeline'}, {'kind': 'declared_gap', 'name': 'capability:what_if'}, {'kind': 'vessel', 'name': "vessel v259928 w=32042074008.0: You've reached Oracle7, an AI assistant | lacks bounds"}, {'kind': 'vessel', 'name': 'vessel v0163 w=3704609090.0: where are you going ? | lacks bounds'}, {'kind': 'vessel', 'name': 'vessel v0145 w=3645804780.0: what do you believe ? | lacks bounds'}, {'kind': 'vessel', 'name': 'vessel v0096 w=2147441940.0: what have you seen out there ? | lacks bounds'}, {'kind': 'vessel', 'name': 'vessel v0099 w=2129776350.0: what do you make of this place ? | lacks bounds'}, {'kind': 'vessel', 'name': 'vessel v0098 w=5506062.0: what will you make next ? | lacks bounds'}]
|
| 18 |
+
|
| 19 |
+
POT_RX = re.compile(
|
| 20 |
+
r"(what (?:could|can) you (?:learn|become)|what are your potentials"
|
| 21 |
+
r"|what is potentially possible|what might you become)", re.I)
|
| 22 |
+
|
| 23 |
+
|
| 24 |
+
class OracleReleaseRuntimeW423(OracleReleaseRuntimeW555):
|
| 25 |
+
"""Base + the potentials route."""
|
| 26 |
+
|
| 27 |
+
def chat(self, text: str, session_id: str = "default") -> dict:
|
| 28 |
+
s = " ".join(str(text).strip().split())
|
| 29 |
+
if POT_RX.search(s):
|
| 30 |
+
bits = "; ".join(f"{p['kind']}: {p['name']}" for p in POTENTIALS[:6])
|
| 31 |
+
return {"status": "answered", "path": "worker:potentials",
|
| 32 |
+
"response": f"By my own ledgers, {len(POTENTIALS)} typed "
|
| 33 |
+
f"potentials stand open, among them {bits}. Each "
|
| 34 |
+
f"converts to an actual only through the gate. "
|
| 35 |
+
f"[potentials_epoch_98]",
|
| 36 |
+
"provenance": {"kind": "potentials_ledger", "epoch": 98,
|
| 37 |
+
"count": len(POTENTIALS)},
|
| 38 |
+
"latency_ms": 1}
|
| 39 |
+
return super().chat(s, session_id)
|
root/fable-content/oracle-m-series-2026-08-15/self_loop/admitted/oracle_release_runtime_w551.py
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin/env python3
|
| 2 |
+
"""oracle_release_runtime_w551 - CORRECTNESS RELEASE (3.2): THE PROVED CROSS-CHECK.
|
| 3 |
+
|
| 4 |
+
veri7vn (github.com/emberian/veri7vn, CC0, by ember arlynx; our fork github.com/psiloceyeben/veri7vn) re-implements 117 of
|
| 5 |
+
Oracle7's released specialists as kernels written and proved in Isabelle/HOL, exported to Standard ML and compiled with
|
| 6 |
+
MLton. Each kernel answers by the answerer contract (one JSON line in, one out) and names the theorems its answer rests on.
|
| 7 |
+
On the research box, over the released specialists' own held-out exams (6,444 questions), the kernels and the Python
|
| 8 |
+
specialists gave the same answer value on every question both answered, apart from display rounding (the kernels round
|
| 9 |
+
exact rationals; a Python float can store 0.675 as 0.67499...).
|
| 10 |
+
|
| 11 |
+
After the parent turn, when the reply came from ONE named specialist (path "specialist:<id>") that has a kernel:
|
| 12 |
+
- the kernel is asked the same question;
|
| 13 |
+
- it agrees (same Yes/No opening, and the first stand-alone number equal within one unit of the reply's last shown
|
| 14 |
+
decimal or 0.5%) -> the reply is UNCHANGED, byte for byte; its path gains ">proved:<session>" and the reply carries
|
| 15 |
+
"proved": {kernel, session, theorems};
|
| 16 |
+
- it gives a different answer -> the reply is withheld, and says a proved check disagreed;
|
| 17 |
+
- it declines, errors, times out, or there is no kernel or no Linux x86-64 to run it on -> the reply is unchanged.
|
| 18 |
+
So the fold can only add a mark of proof, or withhold an answer a proved kernel contradicts. Kernels are static Linux
|
| 19 |
+
x86-64 binaries under specialists/_proved/bin (SHA256SUMS, PROVED.json: source commit, licence, specialist map)."""
|
| 20 |
+
from __future__ import annotations
|
| 21 |
+
|
| 22 |
+
import json
|
| 23 |
+
import os
|
| 24 |
+
import platform
|
| 25 |
+
import re
|
| 26 |
+
import shutil
|
| 27 |
+
import subprocess
|
| 28 |
+
import threading
|
| 29 |
+
|
| 30 |
+
from oracle_release_runtime_w548 import OracleReleaseRuntimeW548 as _Base
|
| 31 |
+
|
| 32 |
+
PROVED = __import__("os").environ.get("ORACLE7_ROOT", "/opt/oracle-clm") + "/specialists/_proved"
|
| 33 |
+
NUM = re.compile(r"(?<![A-Za-z_\d.])-?\d[\d,]*(?:\.\d+)?")
|
| 34 |
+
YESNO = re.compile(r"^\W*(yes|no)\b", re.I)
|
| 35 |
+
SPEC = re.compile(r"\bspecialist:([a-z0-9][a-z0-9-]*)")
|
| 36 |
+
TIMEOUT_S = 5.0
|
| 37 |
+
_LOCK = threading.Lock()
|
| 38 |
+
_PROCS: dict = {}
|
| 39 |
+
_MAP: dict = {}
|
| 40 |
+
|
| 41 |
+
|
| 42 |
+
def _load_map():
|
| 43 |
+
if not _MAP:
|
| 44 |
+
try:
|
| 45 |
+
m = json.load(open(os.path.join(PROVED, "PROVED.json"), encoding="utf-8"))
|
| 46 |
+
_MAP.update(m.get("specialists", {}))
|
| 47 |
+
_MAP["__ok__"] = True
|
| 48 |
+
except (OSError, ValueError):
|
| 49 |
+
_MAP["__ok__"] = False
|
| 50 |
+
return _MAP
|
| 51 |
+
|
| 52 |
+
|
| 53 |
+
def _runnable(binary):
|
| 54 |
+
"""the kernel binary, made executable in the state folder if the download lost its mode bit"""
|
| 55 |
+
p = os.path.join(PROVED, "bin", binary)
|
| 56 |
+
if not os.path.isfile(p):
|
| 57 |
+
return None
|
| 58 |
+
if os.access(p, os.X_OK):
|
| 59 |
+
return p
|
| 60 |
+
d = os.path.join(os.environ.get("ORACLE7_STATE", os.path.expanduser("~/.oracle7")), "proved_bin")
|
| 61 |
+
os.makedirs(d, exist_ok=True)
|
| 62 |
+
q = os.path.join(d, binary)
|
| 63 |
+
if not os.path.isfile(q) or os.path.getsize(q) != os.path.getsize(p):
|
| 64 |
+
shutil.copyfile(p, q)
|
| 65 |
+
os.chmod(q, 0o755)
|
| 66 |
+
return q
|
| 67 |
+
|
| 68 |
+
|
| 69 |
+
def _ask(sid, text):
|
| 70 |
+
"""one question to the kernel standing in for specialist sid; None when there is no answer to compare"""
|
| 71 |
+
if platform.system() != "Linux" or platform.machine() not in ("x86_64", "AMD64"):
|
| 72 |
+
return None
|
| 73 |
+
m = _load_map()
|
| 74 |
+
ent = m.get(sid) if m.get("__ok__") else None
|
| 75 |
+
if not ent:
|
| 76 |
+
return None
|
| 77 |
+
key = (ent["binary"], sid if ent.get("flag", True) else "")
|
| 78 |
+
with _LOCK:
|
| 79 |
+
p = _PROCS.get(key)
|
| 80 |
+
if p is None or p.poll() is not None:
|
| 81 |
+
exe = _runnable(ent["binary"])
|
| 82 |
+
if not exe:
|
| 83 |
+
return None
|
| 84 |
+
argv = [exe] + (["--specialist", sid] if ent.get("flag", True) else [])
|
| 85 |
+
try:
|
| 86 |
+
p = subprocess.Popen(argv, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL, text=True, bufsize=1)
|
| 87 |
+
except OSError:
|
| 88 |
+
return None
|
| 89 |
+
_PROCS[key] = p
|
| 90 |
+
try:
|
| 91 |
+
p.stdin.write(json.dumps({"id": "w551", "q": text}) + "\n")
|
| 92 |
+
p.stdin.flush()
|
| 93 |
+
out = [None]
|
| 94 |
+
t = threading.Thread(target=lambda: out.__setitem__(0, p.stdout.readline()))
|
| 95 |
+
t.start()
|
| 96 |
+
t.join(TIMEOUT_S)
|
| 97 |
+
if t.is_alive() or not out[0]:
|
| 98 |
+
p.kill()
|
| 99 |
+
_PROCS.pop(key, None)
|
| 100 |
+
return None
|
| 101 |
+
return json.loads(out[0])
|
| 102 |
+
except (OSError, ValueError, BrokenPipeError):
|
| 103 |
+
_PROCS.pop(key, None)
|
| 104 |
+
return None
|
| 105 |
+
|
| 106 |
+
|
| 107 |
+
def _first(text):
|
| 108 |
+
m = NUM.search(str(text or ""))
|
| 109 |
+
if not m:
|
| 110 |
+
return None, None
|
| 111 |
+
s = m.group(0).replace(",", "")
|
| 112 |
+
try:
|
| 113 |
+
return float(s), (len(s.split(".")[1]) if "." in s else 0)
|
| 114 |
+
except ValueError:
|
| 115 |
+
return None, None
|
| 116 |
+
|
| 117 |
+
|
| 118 |
+
def agrees(reply_text, kernel_text):
|
| 119 |
+
"""same Yes/No opening (if either opens with one) and the same first stand-alone number within display rounding"""
|
| 120 |
+
a, b = YESNO.match(str(reply_text or "")), YESNO.match(str(kernel_text or ""))
|
| 121 |
+
if (a or b) and not (a and b and a.group(1).lower() == b.group(1).lower()):
|
| 122 |
+
return False
|
| 123 |
+
x, dx = _first(reply_text)
|
| 124 |
+
y, _ = _first(kernel_text)
|
| 125 |
+
if x is None or y is None:
|
| 126 |
+
return (x is None) == (y is None)
|
| 127 |
+
return abs(x - y) <= max(10 ** -dx, 0.005 * max(abs(x), abs(y)), 1e-12)
|
| 128 |
+
|
| 129 |
+
|
| 130 |
+
class OracleReleaseRuntimeW551(_Base):
|
| 131 |
+
def chat(self, text: str, session_id: str = "default") -> dict:
|
| 132 |
+
r = super().chat(text, session_id)
|
| 133 |
+
if not isinstance(r, dict) or r.get("status") != "answered":
|
| 134 |
+
return r
|
| 135 |
+
path = str(r.get("path", ""))
|
| 136 |
+
ids = SPEC.findall(path)
|
| 137 |
+
if len(set(ids)) != 1 or path.startswith("network"):
|
| 138 |
+
return r # one named specialist only; chained network answers are not checked here
|
| 139 |
+
k = _ask(ids[0], text)
|
| 140 |
+
if not k or k.get("status") != "answered" or not k.get("response"):
|
| 141 |
+
return r
|
| 142 |
+
prov = k.get("provenance") or {}
|
| 143 |
+
if agrees(r.get("response", ""), k.get("response", "")):
|
| 144 |
+
out = dict(r)
|
| 145 |
+
out["path"] = path + ">proved:" + str(prov.get("session", "veri7vn"))
|
| 146 |
+
out["proved"] = {"kernel": prov.get("kernel"), "session": prov.get("session"), "theorems": prov.get("theorems", []),
|
| 147 |
+
"source": "veri7vn (Isabelle/HOL, CC0, ember arlynx)"}
|
| 148 |
+
return out
|
| 149 |
+
out = dict(r)
|
| 150 |
+
out.update(status="withheld", path="proved_check:disagree>" + path,
|
| 151 |
+
response="A proved check (a veri7vn kernel, verified in Isabelle/HOL) gave a different answer to this question, so I won't give either as the answer.")
|
| 152 |
+
return out
|
root/fable-content/oracle-m-series-2026-08-15/self_loop/admitted/oracle_release_runtime_w554.py
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin/env python3
|
| 2 |
+
"""oracle_release_runtime_w554 - CAPABILITY RELEASE (3.2, with 3.3's work): THE STAR SPECIALISTS, THEN OWNER-FIRST.
|
| 3 |
+
|
| 4 |
+
w552 and w553 in one fold (submitted together to save a gate cycle; their code is unchanged and runs in the same order, so
|
| 5 |
+
the turn behaves exactly as the w551 -> w552 -> w553 chain whose regression, route and false-yes checks were run):
|
| 6 |
+
1. STAR SPECIALISTS (w552): when the parent turn did not answer, the four star specialists admitted on 2026-10-18
|
| 7 |
+
(#214 stars, #215 habzone, #216 exoorbits, #217 transits; standing_stars_v1.txt) are asked through the release's own
|
| 8 |
+
combiner; a reply is kept only when exactly one answered it ("rule": "only") and did not decline.
|
| 9 |
+
2. OWNER-FIRST (w553): when the turn is still not answered, the whole standing family plus the admitted specialists no list
|
| 10 |
+
carried (standing_owner_v1.txt: #18 orbits) is asked; an answer is kept only when one specialist gave it, it is not the
|
| 11 |
+
specialist the parent already stopped, EVERY number the question gives moves it (counterfactual dependence - the test
|
| 12 |
+
that refuses the astronomy reader's "29.8 km/s" for a satellite 400 km above Earth), and, if a number was asked, it gives
|
| 13 |
+
one that is not merely one of the question's own.
|
| 14 |
+
Found by the research record (re-examination E-20261018-0043, together vs alone E-20261018-0033: answers lost when the
|
| 15 |
+
wrong specialist takes a question; #18 orbits admitted but in no standing list). Deliberate declines of a question that is
|
| 16 |
+
itself the problem (private, impossible, future, fictional, a false premise, an unknown place or body, half an answer) stand.
|
| 17 |
+
The fold imports no runtime other than its parent and changes no module state of any other fold."""
|
| 18 |
+
from __future__ import annotations
|
| 19 |
+
|
| 20 |
+
import importlib.util
|
| 21 |
+
import re
|
| 22 |
+
import threading
|
| 23 |
+
|
| 24 |
+
from oracle_release_runtime_w551 import OracleReleaseRuntimeW551 as _Base
|
| 25 |
+
|
| 26 |
+
SPEC_ROOT = __import__("os").environ.get("ORACLE7_ROOT", "/opt/oracle-clm") + "/specialists"
|
| 27 |
+
GATE = SPEC_ROOT + "/_gate"
|
| 28 |
+
FAMILY_CODE = GATE + "/combo_runtime_v1.py"
|
| 29 |
+
STAR_STANDING = GATE + "/standing_stars_v1.txt"
|
| 30 |
+
LISTS = ["standing_v2", "standing_new_v1", "standing_new_v2", "standing_new_v3", "standing_new_v4", "standing_new_v5", "standing_stars_v1",
|
| 31 |
+
"standing_owner_v1"]
|
| 32 |
+
STARS_STAND = ("private", "impossible", "future", "fiction", "premise", "unknown_place", "other_body", "half_answer")
|
| 33 |
+
OWNER_STANDS = STARS_STAND + ("identity", "self", "act:")
|
| 34 |
+
SPEC_IN_PATH = re.compile(r"\bspecialist:([a-z0-9][a-z0-9-]*)")
|
| 35 |
+
NUM = re.compile(r"-?\d[\d,]*(?:\.\d+)?")
|
| 36 |
+
NUMQ = re.compile(r"^\s*(how many|how much|how long|how far|how fast|how old|convert|calculate|compute|what is the)\b|\bin [a-z]+\s*\?\s*$", re.I)
|
| 37 |
+
_S: dict = {}
|
| 38 |
+
_LOCK = threading.Lock()
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
def _load(key, lists):
|
| 42 |
+
with _LOCK:
|
| 43 |
+
if key not in _S:
|
| 44 |
+
spec = importlib.util.spec_from_file_location("o7_combo_runtime_v1_w554_" + key, FAMILY_CODE)
|
| 45 |
+
mod = importlib.util.module_from_spec(spec)
|
| 46 |
+
spec.loader.exec_module(mod)
|
| 47 |
+
ids = []
|
| 48 |
+
for f in lists:
|
| 49 |
+
for s in open("%s/%s.txt" % (GATE, f), encoding="utf-8").read().split():
|
| 50 |
+
ids += [m for m in s.split("+") if m not in ids]
|
| 51 |
+
_S[key] = (mod.Family(["%s/%s/manifest.json" % (SPEC_ROOT, i) for i in ids], ["%s/%s" % (SPEC_ROOT, i) for i in ids]), mod)
|
| 52 |
+
return _S[key]
|
| 53 |
+
|
| 54 |
+
|
| 55 |
+
def _nums(s):
|
| 56 |
+
out = []
|
| 57 |
+
for m in NUM.finditer(str(s or "")):
|
| 58 |
+
try:
|
| 59 |
+
out.append(float(m.group(0).replace(",", "")))
|
| 60 |
+
except ValueError:
|
| 61 |
+
pass
|
| 62 |
+
return out
|
| 63 |
+
|
| 64 |
+
|
| 65 |
+
class OracleReleaseRuntimeW554(_Base):
|
| 66 |
+
def _stars(self, text, session_id, r):
|
| 67 |
+
"""w552, unchanged"""
|
| 68 |
+
low = str(r.get("path", "")).lower()
|
| 69 |
+
if any(k in low for k in STARS_STAND):
|
| 70 |
+
return r
|
| 71 |
+
try:
|
| 72 |
+
f = _load("stars", ["standing_stars_v1"])[0].reply(text, "w552" + str(session_id)[:30])
|
| 73 |
+
except Exception: # noqa: BLE001 - a specialist failure never breaks the turn; the parent's reply stands
|
| 74 |
+
return r
|
| 75 |
+
if not f or f.get("status") != "answered":
|
| 76 |
+
return r
|
| 77 |
+
prov = f.get("provenance") or {}
|
| 78 |
+
if (prov.get("trace") or {}).get("rule") != "only" or prov.get("declined"):
|
| 79 |
+
return r
|
| 80 |
+
out = dict(r)
|
| 81 |
+
out.update(status="answered", response=str(f.get("response", "")) + " [%s]" % prov.get("specialist", ""),
|
| 82 |
+
path="specialist_call>" + str(f.get("path", "")), references=f.get("references", []))
|
| 83 |
+
out.pop("why", None)
|
| 84 |
+
return out
|
| 85 |
+
|
| 86 |
+
def _owner(self, text, session_id, r):
|
| 87 |
+
"""w553, unchanged"""
|
| 88 |
+
path = str(r.get("path", ""))
|
| 89 |
+
if any(k in path.lower() for k in OWNER_STANDS):
|
| 90 |
+
return r
|
| 91 |
+
consulted = set(SPEC_IN_PATH.findall(path))
|
| 92 |
+
try:
|
| 93 |
+
fam, mod = _load("owner", LISTS)
|
| 94 |
+
with _LOCK:
|
| 95 |
+
chosen, trace = fam._one(text, "w553" + str(session_id)[:30])
|
| 96 |
+
if chosen is None or chosen.get("declined") or chosen.get("status") != "answered":
|
| 97 |
+
return r
|
| 98 |
+
sid = chosen.get("id") or getattr(chosen.get("_organ"), "id", None)
|
| 99 |
+
if not sid or sid in consulted:
|
| 100 |
+
return r
|
| 101 |
+
givens = mod._givens(text)
|
| 102 |
+
if givens and fam._dependence(chosen, text, givens) < len(givens):
|
| 103 |
+
return r
|
| 104 |
+
except Exception: # noqa: BLE001 - a specialist failure never breaks the turn; the parent's reply stands
|
| 105 |
+
return r
|
| 106 |
+
resp = str(chosen.get("response", ""))
|
| 107 |
+
if NUMQ.search(text):
|
| 108 |
+
given = _nums(text)
|
| 109 |
+
if not [v for v in _nums(resp) if not any(abs(v - g) <= 1e-9 * max(1.0, abs(g)) for g in given)]:
|
| 110 |
+
return r
|
| 111 |
+
out = dict(r)
|
| 112 |
+
out.update(status="answered", response=resp + " [%s]" % sid, references=chosen.get("references", []),
|
| 113 |
+
path="owner_first>specialist_call>specialist:%s>%s" % (sid, chosen.get("kind", "")))
|
| 114 |
+
out.pop("why", None)
|
| 115 |
+
return out
|
| 116 |
+
|
| 117 |
+
def chat(self, text: str, session_id: str = "default") -> dict:
|
| 118 |
+
r = super().chat(text, session_id)
|
| 119 |
+
if not isinstance(r, dict) or r.get("status") == "answered":
|
| 120 |
+
return r
|
| 121 |
+
r = self._stars(text, session_id, r)
|
| 122 |
+
if r.get("status") == "answered":
|
| 123 |
+
return r
|
| 124 |
+
return self._owner(text, session_id, r)
|
root/fable-content/oracle-m-series-2026-08-15/self_loop/admitted/oracle_release_runtime_w555.py
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin/env python3
|
| 2 |
+
"""oracle_release_runtime_w555 - CORRECTNESS RELEASE (3.2): OWNER-FIRST NEVER OVERRULES A QUESTION THAT IS ITSELF THE PROBLEM.
|
| 3 |
+
|
| 4 |
+
Found by the release-candidate smoke (smoke_compose_reloc_v3, probe "zentar", the published miss of sealed test 20) on
|
| 5 |
+
2026-10-18, before sealed test 23 ran: asked "How many minutes are in a day on the planet Zentar?", the head rightly withholds
|
| 6 |
+
(precision_guard:Q5_unknown_body - there is no planet Zentar), and w554's owner-first step then answered "1 day is 1440
|
| 7 |
+
minutes" from the units specialist; the same for Tralfamadore. Its list of declines that must stand named "unknown_place"
|
| 8 |
+
and "other_body" but not "unknown_body".
|
| 9 |
+
|
| 10 |
+
Also found then: asked "What is the orbital period of a circular orbit at 200 km altitude around Earth?", the astronomy
|
| 11 |
+
reader answers Earth's own orbital period (365.2 days) - and the proved cross-check marks it, because the kernel reads the
|
| 12 |
+
question the same way (veri7vn proves the computation; its recognizer, which reads the question, is not proved). An
|
| 13 |
+
astronomy answer to a question that names an orbit's altitude is now withheld as the wrong reading, and owner-first may
|
| 14 |
+
answer it from #18 orbits under its numbers test.
|
| 15 |
+
|
| 16 |
+
Narrowing otherwise. Owner-first (w554 step 2) no longer acts when the head's withholding is any of the precision guard's Q rules
|
| 17 |
+
- the rules that say the QUESTION is the problem: an unknown body or place, half an answer, a wrong gravity, paths that
|
| 18 |
+
disagree, not physical, a pronoun or name missing, a bare numeral. Every other turn is w554's, byte for byte; the star
|
| 19 |
+
specialists (w554 step 1) are unchanged. The fold imports no runtime other than its parent and changes no module state of any
|
| 20 |
+
other fold."""
|
| 21 |
+
from __future__ import annotations
|
| 22 |
+
|
| 23 |
+
import re
|
| 24 |
+
|
| 25 |
+
from oracle_release_runtime_w554 import OracleReleaseRuntimeW554 as _Base
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
def _guard_rule(path):
|
| 29 |
+
p = str(path or "")
|
| 30 |
+
if not p.startswith("precision_guard:"):
|
| 31 |
+
return None
|
| 32 |
+
return p.split(":", 1)[1].split(">")[0].split("|")[0]
|
| 33 |
+
|
| 34 |
+
|
| 35 |
+
ALTITUDE = re.compile(r"\b\d[\d,]*(?:\.\d+)?\s*(?:km|kilomet(?:er|re)s?|miles?)\s+(?:altitude|above|high)\b|\baltitude of\b|\bcircular orbit\b", re.I)
|
| 36 |
+
|
| 37 |
+
|
| 38 |
+
class OracleReleaseRuntimeW555(_Base):
|
| 39 |
+
def _owner(self, text, session_id, r):
|
| 40 |
+
rule = _guard_rule(r.get("path", ""))
|
| 41 |
+
if rule is not None and rule[:1] == "Q":
|
| 42 |
+
return r # the question is the problem: the head's decline stands
|
| 43 |
+
return super()._owner(text, session_id, r)
|
| 44 |
+
|
| 45 |
+
def chat(self, text: str, session_id: str = "default") -> dict:
|
| 46 |
+
r = super().chat(text, session_id)
|
| 47 |
+
# the astronomy readers answer a planet's own figures ("Earth's orbital period is 365.2 Earth days"); a question that
|
| 48 |
+
# names an orbit's altitude asks about a spacecraft's orbit around that body, which #18 orbits computes. The planet
|
| 49 |
+
# figure is withheld as the wrong reading, and owner-first may ask the family (its numbers test applies).
|
| 50 |
+
if isinstance(r, dict) and r.get("status") == "answered" and "specialist:astronomy" in str(r.get("path", "")) and ALTITUDE.search(text):
|
| 51 |
+
held = dict(r, status="withheld", path="reader_guard:planet_figure_for_an_orbit>" + str(r.get("path", "")),
|
| 52 |
+
response="That asks about an orbit at a given altitude, and what I found is the planet's own figure, so I won't give it as the answer.")
|
| 53 |
+
held.pop("proved", None)
|
| 54 |
+
out = self._owner(text, session_id, held)
|
| 55 |
+
return out
|
| 56 |
+
return r
|
root/fable-content/oracle-m-series-2026-08-15/self_loop/admitted/oracle_release_runtime_w556.py
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin/env python3
|
| 2 |
+
"""oracle_release_runtime_w556 - CORRECTNESS RELEASE (3.2 full): THREE GUARDS ON ANSWERS THAT HAVE NOTHING UNDER THEM.
|
| 3 |
+
|
| 4 |
+
Found by sealed test 23 on 2026-10-18, which the full 3.2 failed with 3 false yeses against a bar of 2 (slim passed with 1).
|
| 5 |
+
Each guard is a class of error, not an item; sealed 23 is spent and is not the test of this fold.
|
| 6 |
+
|
| 7 |
+
1. NO STORED FACT WITHOUT GIVENS. w554's owner-first keeps a specialist's answer only when every number the question gives
|
| 8 |
+
moves it. A question that gives no numbers passed that test vacuously: "How old is the president of Antarctica?" was
|
| 9 |
+
answered with the US constitution's minimum age (a stored fact, kind fact_number). With no givens, owner-first may no
|
| 10 |
+
longer hand back a stored fact; computations and a named body's constants still answer (requiring givens for every
|
| 11 |
+
answer was measured first and lost three right escape-velocity answers).
|
| 12 |
+
2. A NEGATIVE AMOUNT OF SOMETHING THAT CANNOT BE NEGATIVE. "A 100 W bulb runs for -5 hours" was answered 0.5 kWh, the sign
|
| 13 |
+
dropped (slim and full). A question that gives a negative duration, power, energy, mass, volume or count is withheld
|
| 14 |
+
on every route, as the precision guard withholds other questions that are themselves the problem (a Q rule, so
|
| 15 |
+
owner-first never overrules it).
|
| 16 |
+
3. (MEASURED AND REMOVED) Evidence must name what the question names, aimed at "Who directed City of God?" (answered from a
|
| 17 |
+
sentence about another work) and "In what year did Napoleon visit Neptune?" (answered 1989 from a sentence about
|
| 18 |
+
Voyager 2). Every form of the check measured on the capability panel lost right answers - all names 62, then 21 on the
|
| 19 |
+
fact routes, any name 7 - because relation answers cite the answer's own page, which need not repeat the question's
|
| 20 |
+
names. It is not in this fold; those two sealed-23 failures stay open: disclosed.
|
| 21 |
+
4. ARITHMETIC IS NOT READ FROM A SENTENCE. "A walker covers 5 km in 60 minutes ... how many minutes does 8 km take?" was
|
| 22 |
+
answered 50 from an unrelated sentence. A question that gives two or more numbers and asks how many/much/long is not
|
| 23 |
+
answered from retrieved text; the specialist network (v6, learned operations) is asked instead, and if it has no
|
| 24 |
+
checked answer the turn is withheld.
|
| 25 |
+
|
| 26 |
+
Every other turn is w555's, byte for byte (guards 1, 2 and 4 only). The fold imports no runtime other than its parent; the network is loaded from
|
| 27 |
+
specialists/_gate under its own module name, as w550 does, and a network failure never costs the parent's reply."""
|
| 28 |
+
from __future__ import annotations
|
| 29 |
+
|
| 30 |
+
import importlib.util
|
| 31 |
+
import re
|
| 32 |
+
import sys
|
| 33 |
+
import threading
|
| 34 |
+
|
| 35 |
+
from oracle_release_runtime_w423 import OracleReleaseRuntimeW423 as _Base
|
| 36 |
+
|
| 37 |
+
SPEC_ROOT = __import__("os").environ.get("ORACLE7_ROOT", "/opt/oracle-clm") + "/specialists"
|
| 38 |
+
GATE = SPEC_ROOT + "/_gate"
|
| 39 |
+
NET6_CODE = GATE + "/network_v6.py"
|
| 40 |
+
NET_STANDING = GATE + "/standing_net_v6.txt"
|
| 41 |
+
|
| 42 |
+
NUM = re.compile(r"\d[\d,]*(?:\.\d+)?")
|
| 43 |
+
NONNEG = (r"hours?|hrs?|minutes?|mins?|seconds?|secs?|days?|weeks?|months?|years?|watts?|W|kW|MW|kilowatts?|kWh|MWh|Wh|joules?|J|"
|
| 44 |
+
r"kg|kilograms?|grams?|g|mg|pounds?|lbs?|tonnes?|tons?|litres?|liters?|L|mL|millilit(?:er|re)s?|gallons?|"
|
| 45 |
+
r"people|persons?|students?|workers?|apples?|books?|items?|cars?|boxes|eggs?|cups?|bottles?")
|
| 46 |
+
NEGQ = re.compile(r"(?:(?<![A-Za-z0-9.])-\s?|\bminus\s+|\bnegative\s+)\d[\d,]*(?:\.\d+)?\s*(?:" + NONNEG + r")\b", re.I)
|
| 47 |
+
HOWQ = re.compile(r"\b(how many|how much|how long|how far|how fast|how old)\b", re.I)
|
| 48 |
+
LEAD = {"who", "what", "when", "where", "which", "why", "how", "in", "on", "at", "did", "does", "do", "is", "was", "were", "are",
|
| 49 |
+
"the", "a", "an", "name", "tell", "give", "for", "from", "of", "by", "with", "can", "could", "would", "should", "if"}
|
| 50 |
+
SPAN = re.compile(r"[A-Z][\w'’.-]*(?:\s+(?:of|the|de|la|le|von|van|and|&|du|del)?\s*[A-Z][\w'’.-]*)*")
|
| 51 |
+
STOP = {"of", "the", "de", "la", "le", "von", "van", "and", "&", "du", "del"}
|
| 52 |
+
# the routes that read ONE fact from evidence (where sealed 23's wrong answers came from); deliberation, capability and
|
| 53 |
+
# document routes cite sentences that name their subject as "it" or in another form, and are judged by their own checks
|
| 54 |
+
FACT_ROUTES = ("cube:", "organ:relation", "factoid", "verified:", "unverified")
|
| 55 |
+
ANAPHOR = re.compile(r"\s*(It|Its|He|She|His|Her|They|Their|This|The city|The country)\b")
|
| 56 |
+
QUOTED = re.compile(r"[\"“]([^\"”]{2,80})[\"”]")
|
| 57 |
+
_S: dict = {}
|
| 58 |
+
_LOCK = threading.Lock()
|
| 59 |
+
|
| 60 |
+
|
| 61 |
+
def _net():
|
| 62 |
+
with _LOCK:
|
| 63 |
+
if "net" not in _S:
|
| 64 |
+
if GATE not in sys.path:
|
| 65 |
+
sys.path.insert(0, GATE)
|
| 66 |
+
spec = importlib.util.spec_from_file_location("o7_network_v6_w556", NET6_CODE)
|
| 67 |
+
mod = importlib.util.module_from_spec(spec)
|
| 68 |
+
spec.loader.exec_module(mod)
|
| 69 |
+
_S["net"] = mod.Network(open(NET_STANDING, encoding="utf-8").read().split(), SPEC_ROOT, GATE)
|
| 70 |
+
return _S["net"]
|
| 71 |
+
|
| 72 |
+
|
| 73 |
+
def _spans(q):
|
| 74 |
+
"""the names a question gives: capitalised runs (a sentence-initial question word is not a name) and quoted titles"""
|
| 75 |
+
out = [m.group(1) for m in QUOTED.finditer(q)]
|
| 76 |
+
for m in SPAN.finditer(q):
|
| 77 |
+
words = m.group(0).split()
|
| 78 |
+
if m.start() == 0:
|
| 79 |
+
words = words[1:] # a question's first word is capitalised by position ("Explain", "Summarize")
|
| 80 |
+
while words and words[0].lower() in LEAD:
|
| 81 |
+
words = words[1:]
|
| 82 |
+
if any(w.lower() not in STOP for w in words):
|
| 83 |
+
out.append(" ".join(words))
|
| 84 |
+
return out
|
| 85 |
+
|
| 86 |
+
|
| 87 |
+
def _named_in(span, text):
|
| 88 |
+
"""a name is present when its last word is: a surname ("Einstein" for Albert Einstein), a title's head ("God"); matched on
|
| 89 |
+
its stem, so a plural or a derived form counts ("Annelids" for Annelid)"""
|
| 90 |
+
words = [re.sub(r"[^\w]", "", w.lower()) for w in span.split()]
|
| 91 |
+
words = [w for w in words if w and w not in STOP and len(w) > 1]
|
| 92 |
+
if not words:
|
| 93 |
+
return True
|
| 94 |
+
w = words[-1]
|
| 95 |
+
stem = w if len(w) <= 4 else w[:max(4, len(w) - 3)]
|
| 96 |
+
return re.search(r"\b%s" % re.escape(stem), text.lower()) is not None
|
| 97 |
+
|
| 98 |
+
|
| 99 |
+
def _withheld(r, path, response):
|
| 100 |
+
out = dict(r)
|
| 101 |
+
out.update(status="withheld", path=path + ">" + str(r.get("path", "")), response=response)
|
| 102 |
+
for k in ("proved", "references"):
|
| 103 |
+
out.pop(k, None)
|
| 104 |
+
return out
|
| 105 |
+
|
| 106 |
+
|
| 107 |
+
class OracleReleaseRuntimeW556(_Base):
|
| 108 |
+
def _owner(self, text, session_id, r):
|
| 109 |
+
out = super()._owner(text, session_id, r)
|
| 110 |
+
# guard 1: with no givens the numbers test is vacuous, so owner-first may not hand back a STORED FACT read off
|
| 111 |
+
# (a fact_* kind: "A President must be at least 35" for the president of Antarctica). A computation or a body's
|
| 112 |
+
# physical constant (escape velocity of Mars, gravity of Jupiter) still answers - measured: requiring givens for
|
| 113 |
+
# every answer lost three right escape-velocity answers on the capability panel.
|
| 114 |
+
if (out is not r and isinstance(out, dict) and not NUM.search(str(text or ""))
|
| 115 |
+
and re.search(r">fact[^>]*$", str(out.get("path", "")))):
|
| 116 |
+
return r
|
| 117 |
+
return out
|
| 118 |
+
|
| 119 |
+
def chat(self, text: str, session_id: str = "default") -> dict:
|
| 120 |
+
r = super().chat(text, session_id)
|
| 121 |
+
if not isinstance(r, dict) or r.get("status") != "answered":
|
| 122 |
+
return r
|
| 123 |
+
q = str(text or "")
|
| 124 |
+
resp = str(r.get("response", ""))
|
| 125 |
+
neg = NEGQ.search(q)
|
| 126 |
+
if neg: # guard 2
|
| 127 |
+
return _withheld(r, "precision_guard:Q9_negative_amount",
|
| 128 |
+
"The question gives %s, a negative amount of something that cannot be negative, so I won't compute an answer from it." % neg.group(0).strip())
|
| 129 |
+
if not resp.startswith("[ev:") or not str(r.get("path", "")).startswith(FACT_ROUTES):
|
| 130 |
+
return r # guards 3 and 4 judge single facts read from evidence, nothing else
|
| 131 |
+
if len(NUM.findall(q)) >= 2 and HOWQ.search(q): # guard 4
|
| 132 |
+
try:
|
| 133 |
+
n = _net().solve(q)
|
| 134 |
+
except Exception: # noqa: BLE001
|
| 135 |
+
n = {}
|
| 136 |
+
if n.get("status") == "answered":
|
| 137 |
+
out = dict(r)
|
| 138 |
+
hops = [str(t.get("node")) for t in n.get("trace") or []]
|
| 139 |
+
out.update(status="answered", path="network6>" + " ".join(hops), response=n["response"], references=[],
|
| 140 |
+
provenance={"kind": "specialist_network_v6", "trace": n.get("trace"), "core_path": r.get("path")})
|
| 141 |
+
out.pop("proved", None)
|
| 142 |
+
return out
|
| 143 |
+
return _withheld(r, "evidence_guard:arithmetic_from_text",
|
| 144 |
+
"That needs a calculation from the numbers you gave, and what I found is a sentence, not a calculation, so I won't give it as the answer.")
|
| 145 |
+
# guard 3 (evidence must name what the question names) was measured three ways and removed: requiring every name
|
| 146 |
+
# lost 62, then 21 right answers on the capability panel; requiring any name still lost 7 (relation answers cite the
|
| 147 |
+
# answer's own page, which need not repeat the question's names). City of God and Napoleon-Neptune stay unfixed.
|
| 148 |
+
return r
|
root/fable-content/oracle-m-series-2026-08-15/self_loop/admitted/oracle_release_runtime_w557.py
ADDED
|
@@ -0,0 +1,303 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin/env python3
|
| 2 |
+
"""oracle_release_runtime_w557 - ORACLE7 4.0 THE LAW (built from Ben's invocation; build brief: Claude Doc "Oracle7 V4.0 - Build
|
| 3 |
+
Brief"). Submitted as a CORRECTNESS RELEASE: by design it adds no capability the gate's columns can see (its claims are tested
|
| 4 |
+
on the two sealed V4 panels), so it is exempt from no_gain only; every measured column must still hold.
|
| 5 |
+
|
| 6 |
+
Three parts, one fold, so the law is admitted whole:
|
| 7 |
+
|
| 8 |
+
1. THE INSTRUMENT (I4, and the logs for I3, I5, I6). Every turn, BEFORE its reply is returned, appends one entry to the residue
|
| 9 |
+
ledger: k = the Tree edges its path walks; L = wall-clock ms; word = the path spelled over LAMBDA, the twenty-two paths of
|
| 10 |
+
the three-tree runtime (oracle_tritree_v1.TREE_OF_LIFE) - a logged operator sequence is rejoined by the shortest edge path
|
| 11 |
+
between operator nodes, since the runtime passes through a node whose operator does not apply without logging it (its
|
| 12 |
+
TRANSIT rule); routes that do not walk the Tree are spelled by ROUTE_SPELLING (measured = false, an interpretation recorded
|
| 13 |
+
as such); rho = for a turn that did not answer, the node where formation stopped, the prefix reached and the reason.
|
| 14 |
+
Append-only and hash-chained. PRIVACY: the question is stored as its sha256 only; its text only when the operator sets
|
| 15 |
+
ORACLE7_V4_LEDGER_TEXT=1 (research box, gate panels; never the public demo). Ledger: $ORACLE7_V4_LEDGER, else
|
| 16 |
+
$ORACLE7_STATE/v4_ledger.jsonl, else /tmp/oracle7-v4/v4_ledger.jsonl. A failed write never costs the turn.
|
| 17 |
+
|
| 18 |
+
2. NON-IDENTITY (I1, from P1: "never has become ... it becomes"). An ANSWERED reply that has nothing under it - no citation,
|
| 19 |
+
no proof, no checked computation, no specialist - does not become conversation state: the session's state (dialogue,
|
| 20 |
+
transitions, pending conversions) is put back as it was before the turn, and the reply is entered in the ledger as a
|
| 21 |
+
discourse record. A later turn can then use it only by re-entering it as cited evidence. Declined and withheld turns keep
|
| 22 |
+
their state (there is no answer in them to carry, and "why not?" must still explain the decline); acts, which are
|
| 23 |
+
conversions over the previous answer, are untouched.
|
| 24 |
+
|
| 25 |
+
3. WALK RECALL (P3, from "go faster and faster, but slower in states"). The three-tree runtime's answer(q) is a pure function
|
| 26 |
+
of the question and the stores, holding no session state. A walk already made is recalled, not walked again: the same
|
| 27 |
+
result, the same path, the same step count, less wall-clock. Bounded (2,048 walks per instance), per process, on every
|
| 28 |
+
TriTree instance the chain has made (an instance attribute; no module state of any fold is changed). And a specialist's
|
| 29 |
+
own-module test (combo_runtime_v1._Organ._own, about a quarter of a relation turn's time: the family rescans every
|
| 30 |
+
loaded module after a call, one abspath each) is recalled per file on each loaded specialist - the same answer, never
|
| 31 |
+
recomputed. The frozen files are untouched; only instances get the recall.
|
| 32 |
+
|
| 33 |
+
Every reply is the parent's (w556) except where part 2 restores state; part 1 and part 3 change no reply."""
|
| 34 |
+
from __future__ import annotations
|
| 35 |
+
|
| 36 |
+
import copy
|
| 37 |
+
import hashlib
|
| 38 |
+
import json
|
| 39 |
+
import os
|
| 40 |
+
import re
|
| 41 |
+
import threading
|
| 42 |
+
import time
|
| 43 |
+
from collections import OrderedDict, deque
|
| 44 |
+
|
| 45 |
+
from oracle_release_runtime_w556 import OracleReleaseRuntimeW556 as _Base
|
| 46 |
+
|
| 47 |
+
SEPH = ["keter", "chokmah", "binah", "chesed", "geburah", "tiferet", "netzach", "hod", "yesod", "malkuth"]
|
| 48 |
+
EDGES = [("keter", "chokmah"), ("keter", "binah"), ("keter", "tiferet"), ("chokmah", "binah"), ("chokmah", "tiferet"),
|
| 49 |
+
("chokmah", "chesed"), ("binah", "tiferet"), ("binah", "geburah"), ("chesed", "geburah"),
|
| 50 |
+
("chesed", "tiferet"), ("chesed", "netzach"), ("geburah", "tiferet"), ("geburah", "hod"),
|
| 51 |
+
("tiferet", "netzach"), ("tiferet", "yesod"), ("tiferet", "hod"), ("netzach", "hod"), ("netzach", "yesod"),
|
| 52 |
+
("netzach", "malkuth"), ("hod", "yesod"), ("hod", "malkuth"), ("yesod", "malkuth")]
|
| 53 |
+
NODE_OF = {"READ": "malkuth", "FRAME": "yesod", "LINK": "chokmah", "RELATE": "binah", "EXPAND": "chesed", "CHECK": "geburah",
|
| 54 |
+
"BIND": "tiferet", "COMPARE": "netzach", "COMPUTE": "hod", "VERIFY": "keter"}
|
| 55 |
+
OPS = re.compile(r"(?<![A-Za-z])(READ|FRAME|LINK|RELATE|EXPAND|CHECK|BIND|COMPARE|COMPUTE|VERIFY)(?![a-z])|"
|
| 56 |
+
r"(?<![A-Za-z])(read|frame|link|relate|expand|check|bind|compare|compute|verify)(?=>|$)")
|
| 57 |
+
ROUTE_SPELLING = [
|
| 58 |
+
("precision_guard:Q", ["READ", "FRAME", "CHECK"]), ("precision_guard", ["READ", "FRAME", "LINK", "CHECK"]),
|
| 59 |
+
("evidence_guard", ["READ", "FRAME", "LINK", "RELATE", "CHECK"]), ("reader_guard", ["READ", "FRAME", "LINK", "CHECK"]),
|
| 60 |
+
("owner_first", ["READ", "FRAME", "LINK", "COMPUTE", "CHECK", "BIND", "VERIFY"]),
|
| 61 |
+
("network", ["READ", "FRAME", "COMPUTE", "BIND", "CHECK", "VERIFY"]),
|
| 62 |
+
("specialist_call", ["READ", "FRAME", "COMPUTE", "BIND", "VERIFY"]), ("specialist_after_guard", ["READ", "FRAME", "COMPUTE", "BIND", "VERIFY"]),
|
| 63 |
+
("family_precedence", ["READ", "FRAME", "LINK", "COMPUTE", "BIND", "VERIFY"]),
|
| 64 |
+
("compute:", ["READ", "FRAME", "COMPUTE", "CHECK", "VERIFY"]), ("organ:math", ["READ", "FRAME", "COMPUTE", "CHECK", "VERIFY"]),
|
| 65 |
+
("op:", ["READ", "FRAME", "COMPUTE", "VERIFY"]), ("verified:", ["READ", "FRAME", "LINK", "RELATE", "CHECK", "VERIFY"]),
|
| 66 |
+
("factoid", ["READ", "FRAME", "LINK", "RELATE", "CHECK"]), ("unverified", ["READ", "FRAME", "LINK", "RELATE", "CHECK"]),
|
| 67 |
+
("capability:", ["READ", "FRAME", "LINK", "EXPAND", "BIND", "VERIFY"]), ("arb:", ["READ", "FRAME", "LINK", "EXPAND", "BIND"]),
|
| 68 |
+
("act:", ["READ", "FRAME", "BIND"]), ("chat:", ["READ", "FRAME"]),
|
| 69 |
+
]
|
| 70 |
+
# what an answer may stand on and still become state: a citation or source tag, a proof, or a checked route
|
| 71 |
+
CITED = re.compile(r"\[[^\]\s]{2,}\]")
|
| 72 |
+
CHECKED = ("specialist_call", "specialist_after_guard", "owner_first", "family_precedence", "network", "compute:", "organ:math",
|
| 73 |
+
"op:", "verified:", "algebra:", "deduce:")
|
| 74 |
+
SESSION_STORES = ("dialogue", "transitions", "_pending_conversion")
|
| 75 |
+
_ADJ = {s: [] for s in SEPH}
|
| 76 |
+
for _i, (_a, _b) in enumerate(EDGES):
|
| 77 |
+
_ADJ[_a].append((_b, _i))
|
| 78 |
+
_ADJ[_b].append((_a, _i))
|
| 79 |
+
_LOCK = threading.Lock()
|
| 80 |
+
_S: dict = {}
|
| 81 |
+
|
| 82 |
+
|
| 83 |
+
def shortest(a, b):
|
| 84 |
+
"""the shortest edge path a -> b as [(node, edge index)], ties broken by edge order (deterministic)"""
|
| 85 |
+
if a == b:
|
| 86 |
+
return []
|
| 87 |
+
prev, q = {a: None}, deque([a])
|
| 88 |
+
while q:
|
| 89 |
+
u = q.popleft()
|
| 90 |
+
for v, e in sorted(_ADJ[u], key=lambda x: x[1]):
|
| 91 |
+
if v not in prev:
|
| 92 |
+
prev[v] = (u, e)
|
| 93 |
+
if v == b:
|
| 94 |
+
q.clear()
|
| 95 |
+
break
|
| 96 |
+
q.append(v)
|
| 97 |
+
out, n = [], b
|
| 98 |
+
while prev[n] is not None:
|
| 99 |
+
u, e = prev[n]
|
| 100 |
+
out.append((n, e))
|
| 101 |
+
n = u
|
| 102 |
+
return out[::-1]
|
| 103 |
+
|
| 104 |
+
|
| 105 |
+
def ops_of(path):
|
| 106 |
+
"""(operators in order, measured) - the Tree operators a path logged, or the route's spelling"""
|
| 107 |
+
p = str(path or "")
|
| 108 |
+
ops = [(m.group(1) or m.group(2)).upper() for m in OPS.finditer(p)]
|
| 109 |
+
if len(ops) >= 2:
|
| 110 |
+
return ops, True
|
| 111 |
+
for prefix, spelled in ROUTE_SPELLING:
|
| 112 |
+
if p.startswith(prefix):
|
| 113 |
+
return list(spelled), False
|
| 114 |
+
return ["READ", "FRAME"], False
|
| 115 |
+
|
| 116 |
+
|
| 117 |
+
def spell(ops):
|
| 118 |
+
"""(nodes walked, LAMBDA word as edge indices): from Malkuth through each operator's node by shortest edge paths"""
|
| 119 |
+
nodes, word, cur = ["malkuth"], [], "malkuth"
|
| 120 |
+
for op in ops:
|
| 121 |
+
tgt = NODE_OF.get(op)
|
| 122 |
+
if not tgt or (tgt == cur and op == "READ"):
|
| 123 |
+
continue
|
| 124 |
+
for n, e in shortest(cur, tgt):
|
| 125 |
+
nodes.append(n)
|
| 126 |
+
word.append(e)
|
| 127 |
+
cur = tgt
|
| 128 |
+
return nodes, word
|
| 129 |
+
|
| 130 |
+
|
| 131 |
+
def stands_on_something(r):
|
| 132 |
+
if r.get("proved"):
|
| 133 |
+
return True
|
| 134 |
+
path = str(r.get("path", ""))
|
| 135 |
+
return path.startswith(CHECKED) or bool(CITED.search(str(r.get("response", ""))))
|
| 136 |
+
|
| 137 |
+
|
| 138 |
+
def _ledger_path():
|
| 139 |
+
p = os.environ.get("ORACLE7_V4_LEDGER")
|
| 140 |
+
if p:
|
| 141 |
+
return p
|
| 142 |
+
return os.path.join(os.environ.get("ORACLE7_STATE") or "/tmp/oracle7-v4", "v4_ledger.jsonl")
|
| 143 |
+
|
| 144 |
+
|
| 145 |
+
def ledger_append(entry):
|
| 146 |
+
with _LOCK:
|
| 147 |
+
p = _ledger_path()
|
| 148 |
+
if _S.get("path") != p:
|
| 149 |
+
_S["path"], _S["prev"] = p, "0" * 64
|
| 150 |
+
try:
|
| 151 |
+
with open(p, "rb") as f:
|
| 152 |
+
f.seek(0, 2)
|
| 153 |
+
f.seek(max(0, f.tell() - 65536))
|
| 154 |
+
last = f.read().splitlines()[-1]
|
| 155 |
+
_S["prev"] = json.loads(last)["h"]
|
| 156 |
+
except Exception: # noqa: BLE001 - a new or unreadable ledger starts a new chain
|
| 157 |
+
pass
|
| 158 |
+
entry["prev"] = _S["prev"]
|
| 159 |
+
entry["h"] = hashlib.sha256(json.dumps(entry, sort_keys=True, ensure_ascii=False).encode()).hexdigest()
|
| 160 |
+
os.makedirs(os.path.dirname(p) or ".", exist_ok=True)
|
| 161 |
+
with open(p, "a", encoding="utf-8") as f:
|
| 162 |
+
f.write(json.dumps(entry, sort_keys=True, ensure_ascii=False) + "\n")
|
| 163 |
+
_S["prev"] = entry["h"]
|
| 164 |
+
|
| 165 |
+
|
| 166 |
+
def ledger_entry(text, session_id, r, L, law, extra=None):
|
| 167 |
+
path = str(r.get("path", "")) if isinstance(r, dict) else ""
|
| 168 |
+
status = r.get("status") if isinstance(r, dict) else None
|
| 169 |
+
ops, measured = ops_of(path)
|
| 170 |
+
nodes, word = spell(ops)
|
| 171 |
+
e = {"t": round(time.time(), 3), "law": law, "session": hashlib.sha256(str(session_id).encode()).hexdigest()[:16],
|
| 172 |
+
"input": hashlib.sha256(str(text or "").encode()).hexdigest(), "status": status, "route": path.split(">")[0][:60],
|
| 173 |
+
"measured": measured, "ops": ops, "nodes": nodes, "word": word, "k": len(word), "L_ms": L}
|
| 174 |
+
if os.environ.get("ORACLE7_V4_LEDGER_TEXT") == "1":
|
| 175 |
+
e["text"] = str(text or "")[:500]
|
| 176 |
+
if status != "answered":
|
| 177 |
+
e["rho"] = {"stopped_at": nodes[-1], "prefix": word, "reason": path.split(">")[0][:80] or str(status)}
|
| 178 |
+
if extra:
|
| 179 |
+
e.update(extra)
|
| 180 |
+
return e
|
| 181 |
+
|
| 182 |
+
|
| 183 |
+
class _WalkRecall:
|
| 184 |
+
"""a bounded memo over one TriTree instance's answer(q, form_props, only): same result, its why and expanded restored"""
|
| 185 |
+
|
| 186 |
+
def __init__(self, tt, size=2048):
|
| 187 |
+
self.tt, self.fn, self.size, self.memo, self.hits, self.lock = tt, tt.answer, size, OrderedDict(), 0, threading.Lock()
|
| 188 |
+
|
| 189 |
+
def __call__(self, q, form_props=None, only=False):
|
| 190 |
+
key = (str(q), tuple(sorted(form_props)) if form_props else None, bool(only))
|
| 191 |
+
with self.lock:
|
| 192 |
+
if key in self.memo:
|
| 193 |
+
self.memo.move_to_end(key)
|
| 194 |
+
res, why, expanded = self.memo[key]
|
| 195 |
+
self.hits += 1
|
| 196 |
+
self.tt.why, self.tt.expanded = why, expanded
|
| 197 |
+
return copy.deepcopy(res)
|
| 198 |
+
res = self.fn(q, form_props, only) if only else self.fn(q, form_props)
|
| 199 |
+
with self.lock:
|
| 200 |
+
self.memo[key] = (copy.deepcopy(res), getattr(self.tt, "why", None), getattr(self.tt, "expanded", None))
|
| 201 |
+
if len(self.memo) > self.size:
|
| 202 |
+
self.memo.popitem(last=False)
|
| 203 |
+
return res
|
| 204 |
+
|
| 205 |
+
|
| 206 |
+
class _OwnRecall:
|
| 207 |
+
"""a specialist's _own(mod) - does this module's file live in my dir? - recalled per file instead of recomputed: the
|
| 208 |
+
family's _env rescans every loaded module after a call that imported anything, and the answer for a file never changes"""
|
| 209 |
+
|
| 210 |
+
def __init__(self, organ):
|
| 211 |
+
self.prefix, self.memo = organ.dir + os.sep, {}
|
| 212 |
+
|
| 213 |
+
def __call__(self, mod):
|
| 214 |
+
f = getattr(mod, "__file__", None) or ""
|
| 215 |
+
if not f:
|
| 216 |
+
return False
|
| 217 |
+
r = self.memo.get(f)
|
| 218 |
+
if r is None:
|
| 219 |
+
r = self.memo[f] = os.path.abspath(f).startswith(self.prefix)
|
| 220 |
+
return r
|
| 221 |
+
|
| 222 |
+
|
| 223 |
+
def recall_organs():
|
| 224 |
+
"""give every loaded specialist (combo_runtime _Organ) its _own recall, once (an instance attribute; files unchanged)"""
|
| 225 |
+
import gc
|
| 226 |
+
n = 0
|
| 227 |
+
for o in gc.get_objects():
|
| 228 |
+
try:
|
| 229 |
+
if type(o).__name__ == "_Organ" and isinstance(getattr(o, "dir", None), str) and "_own" not in vars(o):
|
| 230 |
+
o._own = _OwnRecall(o)
|
| 231 |
+
n += 1
|
| 232 |
+
except Exception: # noqa: BLE001
|
| 233 |
+
continue
|
| 234 |
+
return n
|
| 235 |
+
|
| 236 |
+
|
| 237 |
+
class OracleReleaseRuntimeW557(_Base):
|
| 238 |
+
LAW = "4.0"
|
| 239 |
+
SCAN_AT = {1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144}
|
| 240 |
+
|
| 241 |
+
def _v4_recall(self):
|
| 242 |
+
"""wrap every three-tree instance the chain has made so far (folds build theirs lazily, on first use)"""
|
| 243 |
+
rcs = getattr(self, "_v4_rcs", None)
|
| 244 |
+
if rcs is None:
|
| 245 |
+
rcs = self._v4_rcs = []
|
| 246 |
+
if os.environ.get("ORACLE7_V4_RECALL") == "0": # the I3 dose-response runs one throughput setting without recall
|
| 247 |
+
return rcs
|
| 248 |
+
try:
|
| 249 |
+
for v in list(vars(self).values()):
|
| 250 |
+
for o in (v if isinstance(v, (tuple, list)) else (v,)):
|
| 251 |
+
if (hasattr(o, "adj") and hasattr(o, "max_states") and callable(getattr(o, "answer", None))
|
| 252 |
+
and not isinstance(o.answer, _WalkRecall)):
|
| 253 |
+
rc = _WalkRecall(o)
|
| 254 |
+
o.answer = rc
|
| 255 |
+
rcs.append(rc)
|
| 256 |
+
except Exception: # noqa: BLE001 - without its recall the fold walks every time
|
| 257 |
+
pass
|
| 258 |
+
return rcs
|
| 259 |
+
|
| 260 |
+
def _v4_snapshot(self, session_id):
|
| 261 |
+
snap = {}
|
| 262 |
+
for name in SESSION_STORES:
|
| 263 |
+
store = getattr(self, name, None)
|
| 264 |
+
if isinstance(store, dict):
|
| 265 |
+
snap[name] = (session_id in store, copy.deepcopy(store.get(session_id)))
|
| 266 |
+
return snap
|
| 267 |
+
|
| 268 |
+
def _v4_restore(self, session_id, snap):
|
| 269 |
+
for name, (had, val) in snap.items():
|
| 270 |
+
store = getattr(self, name, None)
|
| 271 |
+
if not isinstance(store, dict):
|
| 272 |
+
continue
|
| 273 |
+
if had:
|
| 274 |
+
store[session_id] = val
|
| 275 |
+
else:
|
| 276 |
+
store.pop(session_id, None)
|
| 277 |
+
|
| 278 |
+
def chat(self, text: str, session_id: str = "default") -> dict:
|
| 279 |
+
hits0 = sum(rc.hits for rc in self._v4_recall())
|
| 280 |
+
try:
|
| 281 |
+
snap = self._v4_snapshot(session_id)
|
| 282 |
+
except Exception: # noqa: BLE001
|
| 283 |
+
snap = None
|
| 284 |
+
t0 = time.perf_counter()
|
| 285 |
+
r = super().chat(text, session_id)
|
| 286 |
+
L = round(1000.0 * (time.perf_counter() - t0), 1)
|
| 287 |
+
extra = {}
|
| 288 |
+
try:
|
| 289 |
+
if (isinstance(r, dict) and r.get("status") == "answered" and snap is not None
|
| 290 |
+
and not str(r.get("path", "")).startswith("act:") and not stands_on_something(r)):
|
| 291 |
+
self._v4_restore(session_id, snap)
|
| 292 |
+
extra["discourse_record"] = True
|
| 293 |
+
hits = sum(rc.hits for rc in self._v4_recall()) # also wraps instances this turn created
|
| 294 |
+
if hits > hits0:
|
| 295 |
+
extra["recalled_walks"] = hits - hits0
|
| 296 |
+
self._v4_n = getattr(self, "_v4_n", 0) + 1
|
| 297 |
+
if os.environ.get("ORACLE7_V4_RECALL") != "0" and (self._v4_n in self.SCAN_AT or self._v4_n % 233 == 0):
|
| 298 |
+
# specialist families load lazily: look again, more rarely
|
| 299 |
+
recall_organs()
|
| 300 |
+
ledger_append(ledger_entry(text, session_id, r, L, self.LAW, extra))
|
| 301 |
+
except Exception: # noqa: BLE001 - the law's bookkeeping never costs the turn
|
| 302 |
+
pass
|
| 303 |
+
return r
|
root/fable-content/oracle-m-series-2026-08-15/self_loop/admitted/oracle_release_runtime_w558.py
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin/env python3
|
| 2 |
+
"""oracle_release_runtime_w558 - ORACLE7 4.0, PRONOUN RE-ENTRY (Ben 2026-10-19: "add pronouns to 4.0"). A CORRECTNESS RELEASE
|
| 3 |
+
in the sense the gate uses: it may not lower any column; its effect is measured on the second sealed V4 panel's follow-ups.
|
| 4 |
+
|
| 5 |
+
4.0's law (w557, I1): a past answer does not become state; a later turn may use it only by RE-ENTERING it as cited evidence.
|
| 6 |
+
3.2 already resolves many pronoun follow-ups ("When was she born?" after "Who wrote Emma?" -> 16 December 1775). Where it
|
| 7 |
+
cannot - the resolved question does not parse ("What is its capital?" after "Which country is Kyoto in?" was withheld as
|
| 8 |
+
subject-missing; "What else did he direct?" after "Who directed Vertigo?" asked to clarify) - this fold re-enters the
|
| 9 |
+
previous answer itself: the pronoun is replaced by that answer and the question is asked once more ("What is Japan's
|
| 10 |
+
capital?"). Conditions, all required:
|
| 11 |
+
- the session's previous answer stood on something (a citation, a proof, a checked route: w557's stands_on_something)
|
| 12 |
+
and named one thing: a person after a "who" question (he/she/him/her/his), a place or thing after a "which/what
|
| 13 |
+
<country|city|...>" question (it/its);
|
| 14 |
+
- the new turn was NOT answered by the chain, is short (<= 14 words), names nothing of its own (no capitalised word after
|
| 15 |
+
the first) and carries a pronoun of the right kind;
|
| 16 |
+
- the re-entered question is answered; otherwise the chain's own reply stands.
|
| 17 |
+
The reply says what was re-entered ("taking 'its' as Japan, from my previous answer"). The ledger keeps one entry per turn:
|
| 18 |
+
this fold repeats w557's bookkeeping around its own turn instead of calling w557's chat twice."""
|
| 19 |
+
from __future__ import annotations
|
| 20 |
+
|
| 21 |
+
import re
|
| 22 |
+
import time
|
| 23 |
+
|
| 24 |
+
from oracle_release_runtime_w557 import OracleReleaseRuntimeW557 as _Base
|
| 25 |
+
from oracle_release_runtime_w557 import ledger_append, ledger_entry, stands_on_something, recall_organs
|
| 26 |
+
|
| 27 |
+
PERSON_Q = re.compile(r"^\s*who\b", re.I)
|
| 28 |
+
THING_Q = re.compile(r"^\s*(?:which|what)\s+(country|city|town|state|province|island|planet|moon|river|mountain|lake|sea|ocean|"
|
| 29 |
+
r"continent|region|book|novel|film|movie|play|opera|painting|team|club|company|band|album|song)\b", re.I)
|
| 30 |
+
PERSON_P = re.compile(r"\b(he|she|him|her|his|hers)\b", re.I)
|
| 31 |
+
THING_P = re.compile(r"\b(it|its)\b", re.I)
|
| 32 |
+
TAG = re.compile(r"^\s*(?:\[[^\]]+\]\s*)+")
|
| 33 |
+
NOT_POSS = {"in", "on", "at", "to", "for", "with", "from", "by", "and", "or", "about", "as", "of", "?"}
|
| 34 |
+
|
| 35 |
+
|
| 36 |
+
def answer_entity(reply):
|
| 37 |
+
"""the one thing a reply names first: 'Jane Austen' from 'Jane Austen. From the Wikidata relation store: ...'"""
|
| 38 |
+
head = TAG.sub("", str(reply or "")).split(". ", 1)[0].strip().rstrip(".")
|
| 39 |
+
words = head.split()
|
| 40 |
+
if not words or len(words) > 6 or re.search(r"\d", head) or not words[0][:1].isupper():
|
| 41 |
+
return None
|
| 42 |
+
return head
|
| 43 |
+
|
| 44 |
+
|
| 45 |
+
def substitute(text, entity, kind):
|
| 46 |
+
rx = PERSON_P if kind == "person" else THING_P
|
| 47 |
+
toks = re.split(r"(\W+)", text)
|
| 48 |
+
out, used = [], False
|
| 49 |
+
for i, t in enumerate(toks):
|
| 50 |
+
low = t.lower()
|
| 51 |
+
if rx.fullmatch(t or "") and low:
|
| 52 |
+
nxt = next((x for x in toks[i + 1:] if x.strip()), "?").lower()
|
| 53 |
+
poss = low in ("his", "its", "hers") or (low == "her" and nxt not in NOT_POSS and nxt.isalpha())
|
| 54 |
+
out.append(entity + ("'s" if poss else ""))
|
| 55 |
+
used = True
|
| 56 |
+
else:
|
| 57 |
+
out.append(t)
|
| 58 |
+
return "".join(out) if used else None
|
| 59 |
+
|
| 60 |
+
|
| 61 |
+
class OracleReleaseRuntimeW558(_Base):
|
| 62 |
+
def _v4_turn(self, text, session_id):
|
| 63 |
+
"""the chain's reply, or - where it could not resolve a pronoun - the previous cited answer re-entered"""
|
| 64 |
+
r = super(_Base, self).chat(text, session_id) # the chain below w557 (w556 and down), as w557 itself calls it
|
| 65 |
+
disc = getattr(self, "_v4_disc", None)
|
| 66 |
+
if disc is None:
|
| 67 |
+
disc = self._v4_disc = {}
|
| 68 |
+
q = str(text or "")
|
| 69 |
+
if isinstance(r, dict) and r.get("status") == "answered":
|
| 70 |
+
rec0 = disc.get(session_id)
|
| 71 |
+
kind = "person" if PERSON_Q.search(q) else ("thing" if THING_Q.search(q) else None)
|
| 72 |
+
if kind and stands_on_something(r):
|
| 73 |
+
ent = answer_entity(r.get("response"))
|
| 74 |
+
disc[session_id] = {"entity": ent, "kind": kind} if ent else None
|
| 75 |
+
elif not (rec0 and (PERSON_P if rec0["kind"] == "person" else THING_P).search(q)):
|
| 76 |
+
disc[session_id] = None # a new subject: the old answer is no longer what a pronoun means
|
| 77 |
+
return r # (a follow-up the chain resolved itself keeps the record)
|
| 78 |
+
rec = disc.get(session_id)
|
| 79 |
+
words = q.split()
|
| 80 |
+
if (not rec or len(words) > 14 or any(w[:1].isupper() for w in words[1:])
|
| 81 |
+
or not (PERSON_P if rec["kind"] == "person" else THING_P).search(q)):
|
| 82 |
+
return r
|
| 83 |
+
q2 = substitute(q, rec["entity"], rec["kind"])
|
| 84 |
+
if not q2:
|
| 85 |
+
return r
|
| 86 |
+
r2 = super(_Base, self).chat(q2, session_id)
|
| 87 |
+
if not (isinstance(r2, dict) and r2.get("status") == "answered"):
|
| 88 |
+
return r
|
| 89 |
+
pron = ((PERSON_P if rec["kind"] == "person" else THING_P).search(q).group(0))
|
| 90 |
+
out = dict(r2)
|
| 91 |
+
out["path"] = "reentry:cited>" + str(r2.get("path", ""))
|
| 92 |
+
out["response"] = "(Taking '%s' as %s, from my previous answer.) %s" % (pron, rec["entity"], r2.get("response", ""))
|
| 93 |
+
out["reentry"] = {"pronoun": pron, "entity": rec["entity"], "question": q2}
|
| 94 |
+
return out
|
| 95 |
+
|
| 96 |
+
def chat(self, text: str, session_id: str = "default") -> dict:
|
| 97 |
+
# w557's bookkeeping (snapshot, non-identity, recall counts, the ledger entry) around this fold's turn - once per turn
|
| 98 |
+
hits0 = sum(rc.hits for rc in self._v4_recall())
|
| 99 |
+
try:
|
| 100 |
+
snap = self._v4_snapshot(session_id)
|
| 101 |
+
except Exception: # noqa: BLE001
|
| 102 |
+
snap = None
|
| 103 |
+
t0 = time.perf_counter()
|
| 104 |
+
r = self._v4_turn(text, session_id)
|
| 105 |
+
L = round(1000.0 * (time.perf_counter() - t0), 1)
|
| 106 |
+
extra = {}
|
| 107 |
+
try:
|
| 108 |
+
if (isinstance(r, dict) and r.get("status") == "answered" and snap is not None
|
| 109 |
+
and not str(r.get("path", "")).startswith("act:") and not stands_on_something(r)):
|
| 110 |
+
self._v4_restore(session_id, snap)
|
| 111 |
+
extra["discourse_record"] = True
|
| 112 |
+
if isinstance(r, dict) and r.get("reentry"):
|
| 113 |
+
extra["reentry"] = r["reentry"]["entity"]
|
| 114 |
+
hits = sum(rc.hits for rc in self._v4_recall())
|
| 115 |
+
if hits > hits0:
|
| 116 |
+
extra["recalled_walks"] = hits - hits0
|
| 117 |
+
self._v4_n = getattr(self, "_v4_n", 0) + 1
|
| 118 |
+
import os as _os
|
| 119 |
+
if _os.environ.get("ORACLE7_V4_RECALL") != "0" and (self._v4_n in self.SCAN_AT or self._v4_n % 233 == 0):
|
| 120 |
+
recall_organs()
|
| 121 |
+
ledger_append(ledger_entry(text, session_id, r, L, self.LAW, extra))
|
| 122 |
+
except Exception: # noqa: BLE001
|
| 123 |
+
pass
|
| 124 |
+
return r
|
root/fable-content/oracle-m-series-2026-08-15/self_loop/admitted/v4_law.py
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin/env python3
|
| 2 |
+
"""v4_law - Oracle7 4.0: the path alphabet LAMBDA, path vectors, the Tree-of-Life stabilizer and the re-entrance tracker.
|
| 3 |
+
|
| 4 |
+
LAMBDA = the twenty-two paths of the three-tree runtime (oracle_tritree_v1.TREE_OF_LIFE), letters 0..21 in that order.
|
| 5 |
+
A turn's word is the sequence of edges its walk takes from Malkuth (written to the ledger by fold w557).
|
| 6 |
+
|
| 7 |
+
PATH(w) = sum_p bind(K[w_p], R[p]) in the codebook construction of 3.2's path memory (specialists/_gate/path_hrr_v1:
|
| 8 |
+
osub_seed = sha256-seeded unit complex phasors, D = 1024; roles R[p] = osub_seed("o7pos:%d" % p); letters
|
| 9 |
+
K[e] = osub_seed("o7lam:%d" % e)).
|
| 10 |
+
|
| 11 |
+
THE STABILIZER. Plain cleanup reads each position against every letter. The Tree-of-Life stabilizer reads position p only
|
| 12 |
+
against the letters that leave the node position p-1 ended at (a walk can only continue along an edge of its current node),
|
| 13 |
+
starting at Malkuth: 2-6 candidates instead of 22. Same vector, same codebook; only the cleanup is constrained by the Tree.
|
| 14 |
+
|
| 15 |
+
RE-ENTRANCE (I6). A form is re-entered when a later turn's PATH has cosine >= TAU with it. TAU = 0.95, fixed here before any
|
| 16 |
+
4.0 panel ran: a word of up to 19 letters re-entered with one letter different still scores below it, so re-entered means
|
| 17 |
+
the same walk. Reported against a baseline of shuffled words (each word's letters permuted, the same lengths).
|
| 18 |
+
|
| 19 |
+
usage: v4_law.py capacity [out.json] - exact-word recall of N bundled walks, plain vs stabilized
|
| 20 |
+
v4_law.py reentry <ledger.jsonl> - re-entrance of the ledger's forms, against the shuffled baseline"""
|
| 21 |
+
from __future__ import annotations
|
| 22 |
+
|
| 23 |
+
import hashlib
|
| 24 |
+
import json
|
| 25 |
+
import random
|
| 26 |
+
import sys
|
| 27 |
+
|
| 28 |
+
import numpy as np
|
| 29 |
+
|
| 30 |
+
D = 1024
|
| 31 |
+
TAU = 0.95
|
| 32 |
+
SEPH = ["keter", "chokmah", "binah", "chesed", "geburah", "tiferet", "netzach", "hod", "yesod", "malkuth"]
|
| 33 |
+
EDGES = [("keter", "chokmah"), ("keter", "binah"), ("keter", "tiferet"), ("chokmah", "binah"), ("chokmah", "tiferet"),
|
| 34 |
+
("chokmah", "chesed"), ("binah", "tiferet"), ("binah", "geburah"), ("chesed", "geburah"),
|
| 35 |
+
("chesed", "tiferet"), ("chesed", "netzach"), ("geburah", "tiferet"), ("geburah", "hod"),
|
| 36 |
+
("tiferet", "netzach"), ("tiferet", "yesod"), ("tiferet", "hod"), ("netzach", "hod"), ("netzach", "yesod"),
|
| 37 |
+
("netzach", "malkuth"), ("hod", "yesod"), ("hod", "malkuth"), ("yesod", "malkuth")]
|
| 38 |
+
ADJ = {s: [] for s in SEPH}
|
| 39 |
+
for i, (a, b) in enumerate(EDGES):
|
| 40 |
+
ADJ[a].append((i, b))
|
| 41 |
+
ADJ[b].append((i, a))
|
| 42 |
+
|
| 43 |
+
|
| 44 |
+
def osub_seed(text, dim=D):
|
| 45 |
+
h = int(hashlib.sha256(text.lower().strip().encode()).hexdigest(), 16)
|
| 46 |
+
rng = np.random.RandomState(h % (2 ** 31))
|
| 47 |
+
return np.exp(1j * rng.uniform(0, 2 * np.pi, dim)).astype(np.complex64)
|
| 48 |
+
|
| 49 |
+
|
| 50 |
+
def bind(a, b):
|
| 51 |
+
return np.fft.ifft(np.fft.fft(a) * np.fft.fft(b)).astype(np.complex64)
|
| 52 |
+
|
| 53 |
+
|
| 54 |
+
def unbind(c, b):
|
| 55 |
+
return np.fft.ifft(np.fft.fft(c) * np.conj(np.fft.fft(b))).astype(np.complex64)
|
| 56 |
+
|
| 57 |
+
|
| 58 |
+
K = np.stack([osub_seed("o7lam:%d" % e) for e in range(len(EDGES))])
|
| 59 |
+
R = [osub_seed("o7pos:%d" % p) for p in range(64)]
|
| 60 |
+
|
| 61 |
+
|
| 62 |
+
def path_vec(word):
|
| 63 |
+
return np.sum([bind(K[e], R[p]) for p, e in enumerate(word)], axis=0).astype(np.complex64)
|
| 64 |
+
|
| 65 |
+
|
| 66 |
+
def decode_plain(vec, n):
|
| 67 |
+
out = []
|
| 68 |
+
for p in range(n):
|
| 69 |
+
sims = np.real(K.conj() @ unbind(vec, R[p]))
|
| 70 |
+
out.append(int(np.argmax(sims)))
|
| 71 |
+
return out
|
| 72 |
+
|
| 73 |
+
|
| 74 |
+
def decode_tree(vec, n, start="malkuth"):
|
| 75 |
+
out, cur = [], start
|
| 76 |
+
for p in range(n):
|
| 77 |
+
est = unbind(vec, R[p])
|
| 78 |
+
cands = ADJ[cur]
|
| 79 |
+
sims = [float(np.real(np.vdot(K[e], est))) for e, _ in cands]
|
| 80 |
+
e, nxt = cands[int(np.argmax(sims))]
|
| 81 |
+
out.append(e)
|
| 82 |
+
cur = nxt
|
| 83 |
+
return out
|
| 84 |
+
|
| 85 |
+
|
| 86 |
+
def walk(rng, n, start="malkuth"):
|
| 87 |
+
out, cur = [], start
|
| 88 |
+
for _ in range(n):
|
| 89 |
+
e, nxt = rng.choice(ADJ[cur])
|
| 90 |
+
out.append(e)
|
| 91 |
+
cur = nxt
|
| 92 |
+
return out
|
| 93 |
+
|
| 94 |
+
|
| 95 |
+
def capacity(seed=4000, lengths=(6, 9, 12), bundles=(1, 2, 4, 8, 16, 32, 64), trials=60):
|
| 96 |
+
"""exact-word recall of N walks bundled into ONE vector (each bound to its own key), plain cleanup vs the stabilizer"""
|
| 97 |
+
rng = random.Random(seed)
|
| 98 |
+
rows = []
|
| 99 |
+
for n in lengths:
|
| 100 |
+
for N in bundles:
|
| 101 |
+
ok_p = ok_t = tot = 0
|
| 102 |
+
for t in range(max(1, trials // N)):
|
| 103 |
+
words = [walk(rng, n) for _ in range(N)]
|
| 104 |
+
keys = [osub_seed("o7item:%d:%d:%d:%d" % (seed, n, t, i)) for i in range(N)]
|
| 105 |
+
M = np.sum([bind(k, path_vec(w)) for k, w in zip(keys, words)], axis=0)
|
| 106 |
+
for k, w in zip(keys, words):
|
| 107 |
+
v = unbind(M, k)
|
| 108 |
+
ok_p += decode_plain(v, n) == w
|
| 109 |
+
ok_t += decode_tree(v, n) == w
|
| 110 |
+
tot += 1
|
| 111 |
+
rows.append({"letters": n, "bundled": N, "words": tot, "plain": round(ok_p / tot, 4), "stabilized": round(ok_t / tot, 4)})
|
| 112 |
+
print(json.dumps(rows[-1]), flush=True)
|
| 113 |
+
return rows
|
| 114 |
+
|
| 115 |
+
|
| 116 |
+
def cos(a, b):
|
| 117 |
+
return float(np.real(np.vdot(a, b)) / (np.linalg.norm(a) * np.linalg.norm(b) + 1e-12))
|
| 118 |
+
|
| 119 |
+
|
| 120 |
+
def reentry(entries, seed=4001):
|
| 121 |
+
"""share of forms (answered words) re-entered by a later turn at cos >= TAU, and the same for shuffled words"""
|
| 122 |
+
words = [e["word"] for e in entries if e.get("status") == "answered" and e.get("word")]
|
| 123 |
+
rng = random.Random(seed)
|
| 124 |
+
shuf = [rng.sample(w, len(w)) for w in words]
|
| 125 |
+
|
| 126 |
+
def rate(ws):
|
| 127 |
+
vs = [path_vec(w) for w in ws]
|
| 128 |
+
hit = sum(1 for i in range(len(vs)) if any(cos(vs[i], vs[j]) >= TAU for j in range(i + 1, len(vs))))
|
| 129 |
+
return hit, len(vs)
|
| 130 |
+
h, n = rate(words)
|
| 131 |
+
hs, ns = rate(shuf)
|
| 132 |
+
return {"forms": n, "reentered": h, "rate": round(h / n, 4) if n else 0.0, "shuffled_reentered": hs,
|
| 133 |
+
"shuffled_rate": round(hs / ns, 4) if ns else 0.0, "tau": TAU}
|
| 134 |
+
|
| 135 |
+
|
| 136 |
+
if __name__ == "__main__":
|
| 137 |
+
if sys.argv[1] == "capacity":
|
| 138 |
+
rows = capacity()
|
| 139 |
+
if len(sys.argv) > 2:
|
| 140 |
+
json.dump({"D": D, "codebook": "osub_seed o7lam/o7pos", "rows": rows}, open(sys.argv[2], "w"), indent=1)
|
| 141 |
+
elif sys.argv[1] == "reentry":
|
| 142 |
+
print(json.dumps(reentry([json.loads(l) for l in open(sys.argv[2])])))
|
root/specialists/_gate/standing_new_v1.txt
CHANGED
|
@@ -1 +1 @@
|
|
| 1 |
-
densities-r2 fluids-r2 decay springs fuels
|
|
|
|
| 1 |
+
densities-r2 fluids-r2 decay-r2 springs fuels
|
root/specialists/_gate/standing_owner_v1.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
orbits
|
root/specialists/_gate/standing_stars_v1.txt
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
stars
|
| 2 |
+
habzone
|
| 3 |
+
exoorbits
|
| 4 |
+
transits
|
root/specialists/_gate/star_panels_v1.sha256
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
ebf1be080508b21441419ea1f84794a0e5c280ab6a5ba12b767f895e43a091ba stars/stars_panel_v1.json
|
| 2 |
+
0010261cb74a209cde736d4d21a257486ffe95e048f1ac54144be864846f0559 habzone/habzone_panel_v1.json
|
| 3 |
+
e6ae236b37c1a456bb590113fdfefccb9185ff4e557f127bf5e7b929fa89bf74 exoorbits/exoorbits_panel_v1.json
|
| 4 |
+
0ede1b605bbcf0c41024d57f0a1b4be5713d729678bd50c9990713ad66dc6135 transits/transits_panel_v1.json
|
root/specialists/_proved/NOTICE
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
veri7vn proved kernels - https://github.com/emberian/veri7vn (fork https://github.com/psiloceyeben/veri7vn), by ember arlynx, CC0-1.0.
|
| 2 |
+
Built from commit 3bf43cff8eaa1c30db2659d186cdcffe9c4f6c61: Isabelle2026-RC1 sessions (proofs checked during the build), generated Standard ML linked statically with the MLton in Isabelle, Linux x86-64. chemistry and anatomyagri link the regex.sml their own families carried before it was removed upstream (restored from git history).
|
| 3 |
+
Used by Oracle7 fold w551 as a cross-check; see PROVED.json.
|
root/specialists/_proved/PROVED.json
ADDED
|
@@ -0,0 +1,806 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"what": "veri7vn proved kernels standing in for Oracle7 specialists, used by fold w551 as a cross-check (a reply is marked proved when its kernel agrees, withheld when its kernel answers differently, unchanged otherwise).",
|
| 3 |
+
"source": "https://github.com/emberian/veri7vn (fork https://github.com/psiloceyeben/veri7vn)",
|
| 4 |
+
"commit": "3bf43cff8eaa1c30db2659d186cdcffe9c4f6c61",
|
| 5 |
+
"licence": "CC0-1.0",
|
| 6 |
+
"author": "ember arlynx",
|
| 7 |
+
"build": "Isabelle2026-RC1 sessions built (proofs checked) on the research box, generated Standard ML exported and linked statically with the MLton shipped in Isabelle (Linux x86-64).",
|
| 8 |
+
"parity": {
|
| 9 |
+
"heldout_questions": 7172,
|
| 10 |
+
"agree": 6036,
|
| 11 |
+
"organ_only": 1096,
|
| 12 |
+
"disagree": 40,
|
| 13 |
+
"note": "same held-out items; agree = same answer value (or both withheld); the disagreements measured were display rounding and ASCII vs Unicode working, not different answers"
|
| 14 |
+
},
|
| 15 |
+
"binaries": {
|
| 16 |
+
"acoustics": "4f22f4159849938674cbb4da325c7cde322f026b70306ea2f242bae05fd137b9",
|
| 17 |
+
"anatomyagri": "99df1f11b3920fc81f9462ffcf7e207f46da5309a9f96c3de3d9d371a8ba0fdd",
|
| 18 |
+
"chemistry": "e1292ae5a7fbc67ceeb94c38a0c9172379214a2ff7005ee1c9685e6ba460343c",
|
| 19 |
+
"climate": "15de19eb7a04447e23a7aa155ff05978c40f4ffb6d85163ddf7f9e143bcd5a92",
|
| 20 |
+
"computing": "52ff108928f06ee64ef41c34599027f0e98f1ac28964a4d227fa0d2b191e3f5c",
|
| 21 |
+
"discrete": "555718394b624bec0a90615ba3feef312c5fd0bb037ca05b155602a4e28e0a37",
|
| 22 |
+
"emoptics": "f013d847f239bed7f616fc9a007b3831c99cfb73a7a5030be1317d4d9cdfe071",
|
| 23 |
+
"energy": "df8449c8284dda0b63a0f6d40767e4721e3cdb59682344f6f30e0ea4c5580ea8",
|
| 24 |
+
"facts": "746bab8b08c15024bae763c9627b9874d3b21ba4623b0107d604bc6bd8fe0719",
|
| 25 |
+
"fusion": "0f765ab3ca5b4b6a405e6401ac8b3f6ea915d38992fbf1d176ed7837019ee969",
|
| 26 |
+
"geostats": "f92a48c4c941846bda06de9bec32bb9238f60edde022fd844334b7d73905680b",
|
| 27 |
+
"humanities": "3befad7a8d17c9bee411fd38e658866e93e8f6d2c325f641a08ce2acc5facd5e",
|
| 28 |
+
"life": "65748246c35730eeed5e733017ac0590193d4dfad5423125eb393461fc3fb0e2",
|
| 29 |
+
"materials": "6a548f83db9973f647fa43a16860c56bc933f6a40a2a53dfafb056d24ecdffe4",
|
| 30 |
+
"mechanics": "7c636d4ca6a1b8f66cfe11fc3b51dcc221efb252565828fe69056257c6aa1a25",
|
| 31 |
+
"quantity": "368849c4e9cee834ee609f4b6617f7afac2c85817a2bf664960f2e0cafdbc976",
|
| 32 |
+
"space": "725a57a7ec25a13f1a8f155183013520b3c1636c91cd3a90c4440e06a0c0552e",
|
| 33 |
+
"stores": "20ebbd038131be04642d80626dfa1fca6c03430f6e0bc7f6a8ca726633628e68",
|
| 34 |
+
"trades": "cb3f5063d873f68daeec59cc031d1492ef0cab7ac4a2fa9b5ab3db78fd3eaecf"
|
| 35 |
+
},
|
| 36 |
+
"specialists": {
|
| 37 |
+
"acoustics": {
|
| 38 |
+
"binary": "acoustics",
|
| 39 |
+
"flag": false,
|
| 40 |
+
"family": "acoustics",
|
| 41 |
+
"session": "Veri7vn_Acoustics"
|
| 42 |
+
},
|
| 43 |
+
"anatomy": {
|
| 44 |
+
"binary": "anatomyagri",
|
| 45 |
+
"flag": true,
|
| 46 |
+
"family": "anatomyagri",
|
| 47 |
+
"session": "Veri7vn_AnatomyAgri"
|
| 48 |
+
},
|
| 49 |
+
"anatomy-r2": {
|
| 50 |
+
"binary": "anatomyagri",
|
| 51 |
+
"flag": true,
|
| 52 |
+
"family": "anatomyagri",
|
| 53 |
+
"session": "Veri7vn_AnatomyAgri"
|
| 54 |
+
},
|
| 55 |
+
"agriculture-v2": {
|
| 56 |
+
"binary": "anatomyagri",
|
| 57 |
+
"flag": true,
|
| 58 |
+
"family": "anatomyagri",
|
| 59 |
+
"session": "Veri7vn_AnatomyAgri"
|
| 60 |
+
},
|
| 61 |
+
"gardening": {
|
| 62 |
+
"binary": "anatomyagri",
|
| 63 |
+
"flag": true,
|
| 64 |
+
"family": "anatomyagri",
|
| 65 |
+
"session": "Veri7vn_AnatomyAgri"
|
| 66 |
+
},
|
| 67 |
+
"nutrition-label-v2": {
|
| 68 |
+
"binary": "anatomyagri",
|
| 69 |
+
"flag": true,
|
| 70 |
+
"family": "anatomyagri",
|
| 71 |
+
"session": "Veri7vn_AnatomyAgri"
|
| 72 |
+
},
|
| 73 |
+
"chemistry": {
|
| 74 |
+
"binary": "chemistry",
|
| 75 |
+
"flag": true,
|
| 76 |
+
"family": "chemistry",
|
| 77 |
+
"session": "Veri7vn_Chemistry"
|
| 78 |
+
},
|
| 79 |
+
"chemistry-v3": {
|
| 80 |
+
"binary": "chemistry",
|
| 81 |
+
"flag": true,
|
| 82 |
+
"family": "chemistry",
|
| 83 |
+
"session": "Veri7vn_Chemistry"
|
| 84 |
+
},
|
| 85 |
+
"decay": {
|
| 86 |
+
"binary": "chemistry",
|
| 87 |
+
"flag": true,
|
| 88 |
+
"family": "chemistry",
|
| 89 |
+
"session": "Veri7vn_Chemistry"
|
| 90 |
+
},
|
| 91 |
+
"labsolutions": {
|
| 92 |
+
"binary": "chemistry",
|
| 93 |
+
"flag": true,
|
| 94 |
+
"family": "chemistry",
|
| 95 |
+
"session": "Veri7vn_Chemistry"
|
| 96 |
+
},
|
| 97 |
+
"labsolutions-r2": {
|
| 98 |
+
"binary": "chemistry",
|
| 99 |
+
"flag": true,
|
| 100 |
+
"family": "chemistry",
|
| 101 |
+
"session": "Veri7vn_Chemistry"
|
| 102 |
+
},
|
| 103 |
+
"carboncapture": {
|
| 104 |
+
"binary": "climate",
|
| 105 |
+
"flag": true,
|
| 106 |
+
"family": "climate",
|
| 107 |
+
"session": "Veri7vn_Climate"
|
| 108 |
+
},
|
| 109 |
+
"airquality": {
|
| 110 |
+
"binary": "climate",
|
| 111 |
+
"flag": true,
|
| 112 |
+
"family": "climate",
|
| 113 |
+
"session": "Veri7vn_Climate"
|
| 114 |
+
},
|
| 115 |
+
"climate": {
|
| 116 |
+
"binary": "climate",
|
| 117 |
+
"flag": true,
|
| 118 |
+
"family": "climate",
|
| 119 |
+
"session": "Veri7vn_Climate"
|
| 120 |
+
},
|
| 121 |
+
"carbonmat": {
|
| 122 |
+
"binary": "climate",
|
| 123 |
+
"flag": true,
|
| 124 |
+
"family": "climate",
|
| 125 |
+
"session": "Veri7vn_Climate"
|
| 126 |
+
},
|
| 127 |
+
"coldchain": {
|
| 128 |
+
"binary": "climate",
|
| 129 |
+
"flag": true,
|
| 130 |
+
"family": "climate",
|
| 131 |
+
"session": "Veri7vn_Climate"
|
| 132 |
+
},
|
| 133 |
+
"coldchain-v2": {
|
| 134 |
+
"binary": "climate",
|
| 135 |
+
"flag": true,
|
| 136 |
+
"family": "climate",
|
| 137 |
+
"session": "Veri7vn_Climate"
|
| 138 |
+
},
|
| 139 |
+
"networking": {
|
| 140 |
+
"binary": "computing",
|
| 141 |
+
"flag": true,
|
| 142 |
+
"family": "computing",
|
| 143 |
+
"session": "Veri7vn_Computing"
|
| 144 |
+
},
|
| 145 |
+
"embedded": {
|
| 146 |
+
"binary": "computing",
|
| 147 |
+
"flag": true,
|
| 148 |
+
"family": "computing",
|
| 149 |
+
"session": "Veri7vn_Computing"
|
| 150 |
+
},
|
| 151 |
+
"cyber": {
|
| 152 |
+
"binary": "computing",
|
| 153 |
+
"flag": true,
|
| 154 |
+
"family": "computing",
|
| 155 |
+
"session": "Veri7vn_Computing"
|
| 156 |
+
},
|
| 157 |
+
"linux-v2": {
|
| 158 |
+
"binary": "computing",
|
| 159 |
+
"flag": true,
|
| 160 |
+
"family": "computing",
|
| 161 |
+
"session": "Veri7vn_Computing"
|
| 162 |
+
},
|
| 163 |
+
"git": {
|
| 164 |
+
"binary": "computing",
|
| 165 |
+
"flag": true,
|
| 166 |
+
"family": "computing",
|
| 167 |
+
"session": "Veri7vn_Computing"
|
| 168 |
+
},
|
| 169 |
+
"sql": {
|
| 170 |
+
"binary": "computing",
|
| 171 |
+
"flag": true,
|
| 172 |
+
"family": "computing",
|
| 173 |
+
"session": "Veri7vn_Computing"
|
| 174 |
+
},
|
| 175 |
+
"python": {
|
| 176 |
+
"binary": "computing",
|
| 177 |
+
"flag": true,
|
| 178 |
+
"family": "computing",
|
| 179 |
+
"session": "Veri7vn_Computing"
|
| 180 |
+
},
|
| 181 |
+
"python-r2": {
|
| 182 |
+
"binary": "computing",
|
| 183 |
+
"flag": true,
|
| 184 |
+
"family": "computing",
|
| 185 |
+
"session": "Veri7vn_Computing"
|
| 186 |
+
},
|
| 187 |
+
"robotics-v2": {
|
| 188 |
+
"binary": "computing",
|
| 189 |
+
"flag": true,
|
| 190 |
+
"family": "computing",
|
| 191 |
+
"session": "Veri7vn_Computing"
|
| 192 |
+
},
|
| 193 |
+
"games-v3": {
|
| 194 |
+
"binary": "discrete",
|
| 195 |
+
"flag": true,
|
| 196 |
+
"family": "discrete",
|
| 197 |
+
"session": "Veri7vn_Discrete"
|
| 198 |
+
},
|
| 199 |
+
"logic-v3": {
|
| 200 |
+
"binary": "discrete",
|
| 201 |
+
"flag": true,
|
| 202 |
+
"family": "discrete",
|
| 203 |
+
"session": "Veri7vn_Discrete"
|
| 204 |
+
},
|
| 205 |
+
"dataformats": {
|
| 206 |
+
"binary": "discrete",
|
| 207 |
+
"flag": true,
|
| 208 |
+
"family": "discrete",
|
| 209 |
+
"session": "Veri7vn_Discrete"
|
| 210 |
+
},
|
| 211 |
+
"algorithms": {
|
| 212 |
+
"binary": "discrete",
|
| 213 |
+
"flag": true,
|
| 214 |
+
"family": "discrete",
|
| 215 |
+
"session": "Veri7vn_Discrete"
|
| 216 |
+
},
|
| 217 |
+
"calculus": {
|
| 218 |
+
"binary": "discrete",
|
| 219 |
+
"flag": true,
|
| 220 |
+
"family": "discrete",
|
| 221 |
+
"session": "Veri7vn_Discrete"
|
| 222 |
+
},
|
| 223 |
+
"electrical": {
|
| 224 |
+
"binary": "emoptics",
|
| 225 |
+
"flag": true,
|
| 226 |
+
"family": "emoptics",
|
| 227 |
+
"session": "Veri7vn_Emoptics"
|
| 228 |
+
},
|
| 229 |
+
"electronics": {
|
| 230 |
+
"binary": "emoptics",
|
| 231 |
+
"flag": true,
|
| 232 |
+
"family": "emoptics",
|
| 233 |
+
"session": "Veri7vn_Emoptics"
|
| 234 |
+
},
|
| 235 |
+
"electronics-r2": {
|
| 236 |
+
"binary": "emoptics",
|
| 237 |
+
"flag": true,
|
| 238 |
+
"family": "emoptics",
|
| 239 |
+
"session": "Veri7vn_Emoptics"
|
| 240 |
+
},
|
| 241 |
+
"wiring": {
|
| 242 |
+
"binary": "emoptics",
|
| 243 |
+
"flag": true,
|
| 244 |
+
"family": "emoptics",
|
| 245 |
+
"session": "Veri7vn_Emoptics"
|
| 246 |
+
},
|
| 247 |
+
"optics": {
|
| 248 |
+
"binary": "emoptics",
|
| 249 |
+
"flag": true,
|
| 250 |
+
"family": "emoptics",
|
| 251 |
+
"session": "Veri7vn_Emoptics"
|
| 252 |
+
},
|
| 253 |
+
"optics-v2": {
|
| 254 |
+
"binary": "emoptics",
|
| 255 |
+
"flag": true,
|
| 256 |
+
"family": "emoptics",
|
| 257 |
+
"session": "Veri7vn_Emoptics"
|
| 258 |
+
},
|
| 259 |
+
"optics-v3": {
|
| 260 |
+
"binary": "emoptics",
|
| 261 |
+
"flag": true,
|
| 262 |
+
"family": "emoptics",
|
| 263 |
+
"session": "Veri7vn_Emoptics"
|
| 264 |
+
},
|
| 265 |
+
"optics-v5": {
|
| 266 |
+
"binary": "emoptics",
|
| 267 |
+
"flag": true,
|
| 268 |
+
"family": "emoptics",
|
| 269 |
+
"session": "Veri7vn_Emoptics"
|
| 270 |
+
},
|
| 271 |
+
"optics-v5-r2": {
|
| 272 |
+
"binary": "emoptics",
|
| 273 |
+
"flag": true,
|
| 274 |
+
"family": "emoptics",
|
| 275 |
+
"session": "Veri7vn_Emoptics"
|
| 276 |
+
},
|
| 277 |
+
"thermo": {
|
| 278 |
+
"binary": "energy",
|
| 279 |
+
"flag": true,
|
| 280 |
+
"family": "energy",
|
| 281 |
+
"session": "Veri7vn_Energy"
|
| 282 |
+
},
|
| 283 |
+
"energy-v2": {
|
| 284 |
+
"binary": "energy",
|
| 285 |
+
"flag": true,
|
| 286 |
+
"family": "energy",
|
| 287 |
+
"session": "Veri7vn_Energy"
|
| 288 |
+
},
|
| 289 |
+
"energy-v3": {
|
| 290 |
+
"binary": "energy",
|
| 291 |
+
"flag": true,
|
| 292 |
+
"family": "energy",
|
| 293 |
+
"session": "Veri7vn_Energy"
|
| 294 |
+
},
|
| 295 |
+
"hvac": {
|
| 296 |
+
"binary": "energy",
|
| 297 |
+
"flag": true,
|
| 298 |
+
"family": "energy",
|
| 299 |
+
"session": "Veri7vn_Energy"
|
| 300 |
+
},
|
| 301 |
+
"renewables": {
|
| 302 |
+
"binary": "energy",
|
| 303 |
+
"flag": true,
|
| 304 |
+
"family": "energy",
|
| 305 |
+
"session": "Veri7vn_Energy"
|
| 306 |
+
},
|
| 307 |
+
"iot": {
|
| 308 |
+
"binary": "energy",
|
| 309 |
+
"flag": true,
|
| 310 |
+
"family": "energy",
|
| 311 |
+
"session": "Veri7vn_Energy"
|
| 312 |
+
},
|
| 313 |
+
"literature-v2": {
|
| 314 |
+
"binary": "facts",
|
| 315 |
+
"flag": true,
|
| 316 |
+
"family": "facts",
|
| 317 |
+
"session": "Veri7vn_Facts"
|
| 318 |
+
},
|
| 319 |
+
"worldhistory": {
|
| 320 |
+
"binary": "facts",
|
| 321 |
+
"flag": true,
|
| 322 |
+
"family": "facts",
|
| 323 |
+
"session": "Veri7vn_Facts"
|
| 324 |
+
},
|
| 325 |
+
"arthistory": {
|
| 326 |
+
"binary": "facts",
|
| 327 |
+
"flag": true,
|
| 328 |
+
"family": "facts",
|
| 329 |
+
"session": "Veri7vn_Facts"
|
| 330 |
+
},
|
| 331 |
+
"medicine-r2": {
|
| 332 |
+
"binary": "facts",
|
| 333 |
+
"flag": true,
|
| 334 |
+
"family": "facts",
|
| 335 |
+
"session": "Veri7vn_Facts"
|
| 336 |
+
},
|
| 337 |
+
"medicine": {
|
| 338 |
+
"binary": "facts",
|
| 339 |
+
"flag": true,
|
| 340 |
+
"family": "facts",
|
| 341 |
+
"session": "Veri7vn_Facts"
|
| 342 |
+
},
|
| 343 |
+
"law": {
|
| 344 |
+
"binary": "facts",
|
| 345 |
+
"flag": true,
|
| 346 |
+
"family": "facts",
|
| 347 |
+
"session": "Veri7vn_Facts"
|
| 348 |
+
},
|
| 349 |
+
"psychology": {
|
| 350 |
+
"binary": "facts",
|
| 351 |
+
"flag": true,
|
| 352 |
+
"family": "facts",
|
| 353 |
+
"session": "Veri7vn_Facts"
|
| 354 |
+
},
|
| 355 |
+
"sociology": {
|
| 356 |
+
"binary": "facts",
|
| 357 |
+
"flag": true,
|
| 358 |
+
"family": "facts",
|
| 359 |
+
"session": "Veri7vn_Facts"
|
| 360 |
+
},
|
| 361 |
+
"linguistics": {
|
| 362 |
+
"binary": "facts",
|
| 363 |
+
"flag": true,
|
| 364 |
+
"family": "facts",
|
| 365 |
+
"session": "Veri7vn_Facts"
|
| 366 |
+
},
|
| 367 |
+
"poetry": {
|
| 368 |
+
"binary": "facts",
|
| 369 |
+
"flag": true,
|
| 370 |
+
"family": "facts",
|
| 371 |
+
"session": "Veri7vn_Facts"
|
| 372 |
+
},
|
| 373 |
+
"botany": {
|
| 374 |
+
"binary": "facts",
|
| 375 |
+
"flag": true,
|
| 376 |
+
"family": "facts",
|
| 377 |
+
"session": "Veri7vn_Facts"
|
| 378 |
+
},
|
| 379 |
+
"entomology": {
|
| 380 |
+
"binary": "facts",
|
| 381 |
+
"flag": true,
|
| 382 |
+
"family": "facts",
|
| 383 |
+
"session": "Veri7vn_Facts"
|
| 384 |
+
},
|
| 385 |
+
"marinebio": {
|
| 386 |
+
"binary": "facts",
|
| 387 |
+
"flag": true,
|
| 388 |
+
"family": "facts",
|
| 389 |
+
"session": "Veri7vn_Facts"
|
| 390 |
+
},
|
| 391 |
+
"ornithology": {
|
| 392 |
+
"binary": "facts",
|
| 393 |
+
"flag": true,
|
| 394 |
+
"family": "facts",
|
| 395 |
+
"session": "Veri7vn_Facts"
|
| 396 |
+
},
|
| 397 |
+
"mycology": {
|
| 398 |
+
"binary": "facts",
|
| 399 |
+
"flag": true,
|
| 400 |
+
"family": "facts",
|
| 401 |
+
"session": "Veri7vn_Facts"
|
| 402 |
+
},
|
| 403 |
+
"mycelial": {
|
| 404 |
+
"binary": "facts",
|
| 405 |
+
"flag": true,
|
| 406 |
+
"family": "facts",
|
| 407 |
+
"session": "Veri7vn_Facts"
|
| 408 |
+
},
|
| 409 |
+
"pets": {
|
| 410 |
+
"binary": "facts",
|
| 411 |
+
"flag": true,
|
| 412 |
+
"family": "facts",
|
| 413 |
+
"session": "Veri7vn_Facts"
|
| 414 |
+
},
|
| 415 |
+
"childdev": {
|
| 416 |
+
"binary": "facts",
|
| 417 |
+
"flag": true,
|
| 418 |
+
"family": "facts",
|
| 419 |
+
"session": "Veri7vn_Facts"
|
| 420 |
+
},
|
| 421 |
+
"etiquette": {
|
| 422 |
+
"binary": "facts",
|
| 423 |
+
"flag": true,
|
| 424 |
+
"family": "facts",
|
| 425 |
+
"session": "Veri7vn_Facts"
|
| 426 |
+
},
|
| 427 |
+
"firesafety-v2": {
|
| 428 |
+
"binary": "facts",
|
| 429 |
+
"flag": true,
|
| 430 |
+
"family": "facts",
|
| 431 |
+
"session": "Veri7vn_Facts"
|
| 432 |
+
},
|
| 433 |
+
"firstaid": {
|
| 434 |
+
"binary": "facts",
|
| 435 |
+
"flag": true,
|
| 436 |
+
"family": "facts",
|
| 437 |
+
"session": "Veri7vn_Facts"
|
| 438 |
+
},
|
| 439 |
+
"javascript": {
|
| 440 |
+
"binary": "facts",
|
| 441 |
+
"flag": true,
|
| 442 |
+
"family": "facts",
|
| 443 |
+
"session": "Veri7vn_Facts"
|
| 444 |
+
},
|
| 445 |
+
"geometry": {
|
| 446 |
+
"binary": "geostats",
|
| 447 |
+
"flag": true,
|
| 448 |
+
"family": "geostats",
|
| 449 |
+
"session": "Veri7vn_GeoStats"
|
| 450 |
+
},
|
| 451 |
+
"geometry-v3": {
|
| 452 |
+
"binary": "geostats",
|
| 453 |
+
"flag": true,
|
| 454 |
+
"family": "geostats",
|
| 455 |
+
"session": "Veri7vn_GeoStats"
|
| 456 |
+
},
|
| 457 |
+
"geometry-v4": {
|
| 458 |
+
"binary": "geostats",
|
| 459 |
+
"flag": true,
|
| 460 |
+
"family": "geostats",
|
| 461 |
+
"session": "Veri7vn_GeoStats"
|
| 462 |
+
},
|
| 463 |
+
"statistics": {
|
| 464 |
+
"binary": "geostats",
|
| 465 |
+
"flag": true,
|
| 466 |
+
"family": "geostats",
|
| 467 |
+
"session": "Veri7vn_GeoStats"
|
| 468 |
+
},
|
| 469 |
+
"statistics-v2": {
|
| 470 |
+
"binary": "geostats",
|
| 471 |
+
"flag": true,
|
| 472 |
+
"family": "geostats",
|
| 473 |
+
"session": "Veri7vn_GeoStats"
|
| 474 |
+
},
|
| 475 |
+
"statistics-v3": {
|
| 476 |
+
"binary": "geostats",
|
| 477 |
+
"flag": true,
|
| 478 |
+
"family": "geostats",
|
| 479 |
+
"session": "Veri7vn_GeoStats"
|
| 480 |
+
},
|
| 481 |
+
"music-v2-r2": {
|
| 482 |
+
"binary": "humanities",
|
| 483 |
+
"flag": true,
|
| 484 |
+
"family": "humanities",
|
| 485 |
+
"session": "Veri7vn_Humanities"
|
| 486 |
+
},
|
| 487 |
+
"music-v2": {
|
| 488 |
+
"binary": "humanities",
|
| 489 |
+
"flag": true,
|
| 490 |
+
"family": "humanities",
|
| 491 |
+
"session": "Veri7vn_Humanities"
|
| 492 |
+
},
|
| 493 |
+
"grammar": {
|
| 494 |
+
"binary": "humanities",
|
| 495 |
+
"flag": true,
|
| 496 |
+
"family": "humanities",
|
| 497 |
+
"session": "Veri7vn_Humanities"
|
| 498 |
+
},
|
| 499 |
+
"mythology": {
|
| 500 |
+
"binary": "humanities",
|
| 501 |
+
"flag": true,
|
| 502 |
+
"family": "humanities",
|
| 503 |
+
"session": "Veri7vn_Humanities"
|
| 504 |
+
},
|
| 505 |
+
"ushistory": {
|
| 506 |
+
"binary": "humanities",
|
| 507 |
+
"flag": true,
|
| 508 |
+
"family": "humanities",
|
| 509 |
+
"session": "Veri7vn_Humanities"
|
| 510 |
+
},
|
| 511 |
+
"library": {
|
| 512 |
+
"binary": "humanities",
|
| 513 |
+
"flag": true,
|
| 514 |
+
"family": "humanities",
|
| 515 |
+
"session": "Veri7vn_Humanities"
|
| 516 |
+
},
|
| 517 |
+
"government": {
|
| 518 |
+
"binary": "humanities",
|
| 519 |
+
"flag": true,
|
| 520 |
+
"family": "humanities",
|
| 521 |
+
"session": "Veri7vn_Humanities"
|
| 522 |
+
},
|
| 523 |
+
"genetics-v2": {
|
| 524 |
+
"binary": "life",
|
| 525 |
+
"flag": true,
|
| 526 |
+
"family": "life",
|
| 527 |
+
"session": "Veri7vn_Life"
|
| 528 |
+
},
|
| 529 |
+
"biology": {
|
| 530 |
+
"binary": "life",
|
| 531 |
+
"flag": true,
|
| 532 |
+
"family": "life",
|
| 533 |
+
"session": "Veri7vn_Life"
|
| 534 |
+
},
|
| 535 |
+
"ecology": {
|
| 536 |
+
"binary": "life",
|
| 537 |
+
"flag": true,
|
| 538 |
+
"family": "life",
|
| 539 |
+
"session": "Veri7vn_Life"
|
| 540 |
+
},
|
| 541 |
+
"forestry": {
|
| 542 |
+
"binary": "life",
|
| 543 |
+
"flag": true,
|
| 544 |
+
"family": "life",
|
| 545 |
+
"session": "Veri7vn_Life"
|
| 546 |
+
},
|
| 547 |
+
"wildlife": {
|
| 548 |
+
"binary": "life",
|
| 549 |
+
"flag": true,
|
| 550 |
+
"family": "life",
|
| 551 |
+
"session": "Veri7vn_Life"
|
| 552 |
+
},
|
| 553 |
+
"microbiology-v2": {
|
| 554 |
+
"binary": "life",
|
| 555 |
+
"flag": true,
|
| 556 |
+
"family": "life",
|
| 557 |
+
"session": "Veri7vn_Life"
|
| 558 |
+
},
|
| 559 |
+
"additive-v2": {
|
| 560 |
+
"binary": "materials",
|
| 561 |
+
"flag": true,
|
| 562 |
+
"family": "materials",
|
| 563 |
+
"session": "Veri7vn_Materials"
|
| 564 |
+
},
|
| 565 |
+
"materials-v2": {
|
| 566 |
+
"binary": "materials",
|
| 567 |
+
"flag": true,
|
| 568 |
+
"family": "materials",
|
| 569 |
+
"session": "Veri7vn_Materials"
|
| 570 |
+
},
|
| 571 |
+
"soil": {
|
| 572 |
+
"binary": "materials",
|
| 573 |
+
"flag": true,
|
| 574 |
+
"family": "materials",
|
| 575 |
+
"session": "Veri7vn_Materials"
|
| 576 |
+
},
|
| 577 |
+
"soil-r2": {
|
| 578 |
+
"binary": "materials",
|
| 579 |
+
"flag": true,
|
| 580 |
+
"family": "materials",
|
| 581 |
+
"session": "Veri7vn_Materials"
|
| 582 |
+
},
|
| 583 |
+
"water": {
|
| 584 |
+
"binary": "materials",
|
| 585 |
+
"flag": true,
|
| 586 |
+
"family": "materials",
|
| 587 |
+
"session": "Veri7vn_Materials"
|
| 588 |
+
},
|
| 589 |
+
"water-r3": {
|
| 590 |
+
"binary": "materials",
|
| 591 |
+
"flag": true,
|
| 592 |
+
"family": "materials",
|
| 593 |
+
"session": "Veri7vn_Materials"
|
| 594 |
+
},
|
| 595 |
+
"physics": {
|
| 596 |
+
"binary": "mechanics",
|
| 597 |
+
"flag": true,
|
| 598 |
+
"family": "mechanics",
|
| 599 |
+
"session": "Veri7vn_Mechanics"
|
| 600 |
+
},
|
| 601 |
+
"physics-r2": {
|
| 602 |
+
"binary": "mechanics",
|
| 603 |
+
"flag": true,
|
| 604 |
+
"family": "mechanics",
|
| 605 |
+
"session": "Veri7vn_Mechanics"
|
| 606 |
+
},
|
| 607 |
+
"physics-r3": {
|
| 608 |
+
"binary": "mechanics",
|
| 609 |
+
"flag": true,
|
| 610 |
+
"family": "mechanics",
|
| 611 |
+
"session": "Veri7vn_Mechanics"
|
| 612 |
+
},
|
| 613 |
+
"mechanisms": {
|
| 614 |
+
"binary": "mechanics",
|
| 615 |
+
"flag": true,
|
| 616 |
+
"family": "mechanics",
|
| 617 |
+
"session": "Veri7vn_Mechanics"
|
| 618 |
+
},
|
| 619 |
+
"mechanisms-v2": {
|
| 620 |
+
"binary": "mechanics",
|
| 621 |
+
"flag": true,
|
| 622 |
+
"family": "mechanics",
|
| 623 |
+
"session": "Veri7vn_Mechanics"
|
| 624 |
+
},
|
| 625 |
+
"bodies-v2": {
|
| 626 |
+
"binary": "mechanics",
|
| 627 |
+
"flag": true,
|
| 628 |
+
"family": "mechanics",
|
| 629 |
+
"session": "Veri7vn_Mechanics"
|
| 630 |
+
},
|
| 631 |
+
"sports": {
|
| 632 |
+
"binary": "mechanics",
|
| 633 |
+
"flag": true,
|
| 634 |
+
"family": "mechanics",
|
| 635 |
+
"session": "Veri7vn_Mechanics"
|
| 636 |
+
},
|
| 637 |
+
"fleet": {
|
| 638 |
+
"binary": "mechanics",
|
| 639 |
+
"flag": true,
|
| 640 |
+
"family": "mechanics",
|
| 641 |
+
"session": "Veri7vn_Mechanics"
|
| 642 |
+
},
|
| 643 |
+
"fluids-r2": {
|
| 644 |
+
"binary": "mechanics",
|
| 645 |
+
"flag": true,
|
| 646 |
+
"family": "mechanics",
|
| 647 |
+
"session": "Veri7vn_Mechanics"
|
| 648 |
+
},
|
| 649 |
+
"densities": {
|
| 650 |
+
"binary": "quantity",
|
| 651 |
+
"flag": true,
|
| 652 |
+
"family": "quantity",
|
| 653 |
+
"session": "Veri7vn_Quantity"
|
| 654 |
+
},
|
| 655 |
+
"units": {
|
| 656 |
+
"binary": "quantity",
|
| 657 |
+
"flag": true,
|
| 658 |
+
"family": "quantity",
|
| 659 |
+
"session": "Veri7vn_Quantity"
|
| 660 |
+
},
|
| 661 |
+
"units-v3": {
|
| 662 |
+
"binary": "quantity",
|
| 663 |
+
"flag": true,
|
| 664 |
+
"family": "quantity",
|
| 665 |
+
"session": "Veri7vn_Quantity"
|
| 666 |
+
},
|
| 667 |
+
"springs": {
|
| 668 |
+
"binary": "quantity",
|
| 669 |
+
"flag": true,
|
| 670 |
+
"family": "quantity",
|
| 671 |
+
"session": "Veri7vn_Quantity"
|
| 672 |
+
},
|
| 673 |
+
"fluids": {
|
| 674 |
+
"binary": "quantity",
|
| 675 |
+
"flag": true,
|
| 676 |
+
"family": "quantity",
|
| 677 |
+
"session": "Veri7vn_Quantity"
|
| 678 |
+
},
|
| 679 |
+
"fuels": {
|
| 680 |
+
"binary": "quantity",
|
| 681 |
+
"flag": true,
|
| 682 |
+
"family": "quantity",
|
| 683 |
+
"session": "Veri7vn_Quantity"
|
| 684 |
+
},
|
| 685 |
+
"orbits": {
|
| 686 |
+
"binary": "space",
|
| 687 |
+
"flag": true,
|
| 688 |
+
"family": "space",
|
| 689 |
+
"session": "Veri7vn_Space"
|
| 690 |
+
},
|
| 691 |
+
"planetary": {
|
| 692 |
+
"binary": "space",
|
| 693 |
+
"flag": true,
|
| 694 |
+
"family": "space",
|
| 695 |
+
"session": "Veri7vn_Space"
|
| 696 |
+
},
|
| 697 |
+
"spacecraft": {
|
| 698 |
+
"binary": "space",
|
| 699 |
+
"flag": true,
|
| 700 |
+
"family": "space",
|
| 701 |
+
"session": "Veri7vn_Space"
|
| 702 |
+
},
|
| 703 |
+
"spacecomms": {
|
| 704 |
+
"binary": "space",
|
| 705 |
+
"flag": true,
|
| 706 |
+
"family": "space",
|
| 707 |
+
"session": "Veri7vn_Space"
|
| 708 |
+
},
|
| 709 |
+
"astronomy": {
|
| 710 |
+
"binary": "space",
|
| 711 |
+
"flag": true,
|
| 712 |
+
"family": "space",
|
| 713 |
+
"session": "Veri7vn_Space"
|
| 714 |
+
},
|
| 715 |
+
"astronomy-v2": {
|
| 716 |
+
"binary": "space",
|
| 717 |
+
"flag": true,
|
| 718 |
+
"family": "space",
|
| 719 |
+
"session": "Veri7vn_Space"
|
| 720 |
+
},
|
| 721 |
+
"astronomy-v3": {
|
| 722 |
+
"binary": "space",
|
| 723 |
+
"flag": true,
|
| 724 |
+
"family": "space",
|
| 725 |
+
"session": "Veri7vn_Space"
|
| 726 |
+
},
|
| 727 |
+
"astronomy-v3-r2": {
|
| 728 |
+
"binary": "space",
|
| 729 |
+
"flag": true,
|
| 730 |
+
"family": "space",
|
| 731 |
+
"session": "Veri7vn_Space"
|
| 732 |
+
},
|
| 733 |
+
"cooking": {
|
| 734 |
+
"binary": "stores",
|
| 735 |
+
"flag": true,
|
| 736 |
+
"family": "stores",
|
| 737 |
+
"session": "Veri7vn_Stores"
|
| 738 |
+
},
|
| 739 |
+
"cooking-v2": {
|
| 740 |
+
"binary": "stores",
|
| 741 |
+
"flag": true,
|
| 742 |
+
"family": "stores",
|
| 743 |
+
"session": "Veri7vn_Stores"
|
| 744 |
+
},
|
| 745 |
+
"cooking-v3": {
|
| 746 |
+
"binary": "stores",
|
| 747 |
+
"flag": true,
|
| 748 |
+
"family": "stores",
|
| 749 |
+
"session": "Veri7vn_Stores"
|
| 750 |
+
},
|
| 751 |
+
"cooking-v3-r2": {
|
| 752 |
+
"binary": "stores",
|
| 753 |
+
"flag": true,
|
| 754 |
+
"family": "stores",
|
| 755 |
+
"session": "Veri7vn_Stores"
|
| 756 |
+
},
|
| 757 |
+
"warehouse": {
|
| 758 |
+
"binary": "stores",
|
| 759 |
+
"flag": true,
|
| 760 |
+
"family": "stores",
|
| 761 |
+
"session": "Veri7vn_Stores"
|
| 762 |
+
},
|
| 763 |
+
"warehouse-r2": {
|
| 764 |
+
"binary": "stores",
|
| 765 |
+
"flag": true,
|
| 766 |
+
"family": "stores",
|
| 767 |
+
"session": "Veri7vn_Stores"
|
| 768 |
+
},
|
| 769 |
+
"architecture": {
|
| 770 |
+
"binary": "trades",
|
| 771 |
+
"flag": true,
|
| 772 |
+
"family": "trades",
|
| 773 |
+
"session": "Veri7vn_Trades"
|
| 774 |
+
},
|
| 775 |
+
"printing": {
|
| 776 |
+
"binary": "trades",
|
| 777 |
+
"flag": true,
|
| 778 |
+
"family": "trades",
|
| 779 |
+
"session": "Veri7vn_Trades"
|
| 780 |
+
},
|
| 781 |
+
"printing-v2": {
|
| 782 |
+
"binary": "trades",
|
| 783 |
+
"flag": true,
|
| 784 |
+
"family": "trades",
|
| 785 |
+
"session": "Veri7vn_Trades"
|
| 786 |
+
},
|
| 787 |
+
"safety": {
|
| 788 |
+
"binary": "trades",
|
| 789 |
+
"flag": true,
|
| 790 |
+
"family": "trades",
|
| 791 |
+
"session": "Veri7vn_Trades"
|
| 792 |
+
},
|
| 793 |
+
"woodworking": {
|
| 794 |
+
"binary": "trades",
|
| 795 |
+
"flag": true,
|
| 796 |
+
"family": "trades",
|
| 797 |
+
"session": "Veri7vn_Trades"
|
| 798 |
+
},
|
| 799 |
+
"crafts": {
|
| 800 |
+
"binary": "trades",
|
| 801 |
+
"flag": true,
|
| 802 |
+
"family": "trades",
|
| 803 |
+
"session": "Veri7vn_Trades"
|
| 804 |
+
}
|
| 805 |
+
}
|
| 806 |
+
}
|
root/specialists/_proved/SHA256SUMS
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
4f22f4159849938674cbb4da325c7cde322f026b70306ea2f242bae05fd137b9 acoustics
|
| 2 |
+
99df1f11b3920fc81f9462ffcf7e207f46da5309a9f96c3de3d9d371a8ba0fdd anatomyagri
|
| 3 |
+
e1292ae5a7fbc67ceeb94c38a0c9172379214a2ff7005ee1c9685e6ba460343c chemistry
|
| 4 |
+
15de19eb7a04447e23a7aa155ff05978c40f4ffb6d85163ddf7f9e143bcd5a92 climate
|
| 5 |
+
52ff108928f06ee64ef41c34599027f0e98f1ac28964a4d227fa0d2b191e3f5c computing
|
| 6 |
+
f948026d0935b07a3e073be0d94c5c0e9d567973cbb88c10fb915001cd14e563 decide
|
| 7 |
+
555718394b624bec0a90615ba3feef312c5fd0bb037ca05b155602a4e28e0a37 discrete
|
| 8 |
+
f013d847f239bed7f616fc9a007b3831c99cfb73a7a5030be1317d4d9cdfe071 emoptics
|
| 9 |
+
df8449c8284dda0b63a0f6d40767e4721e3cdb59682344f6f30e0ea4c5580ea8 energy
|
| 10 |
+
746bab8b08c15024bae763c9627b9874d3b21ba4623b0107d604bc6bd8fe0719 facts
|
| 11 |
+
0f765ab3ca5b4b6a405e6401ac8b3f6ea915d38992fbf1d176ed7837019ee969 fusion
|
| 12 |
+
f92a48c4c941846bda06de9bec32bb9238f60edde022fd844334b7d73905680b geostats
|
| 13 |
+
3befad7a8d17c9bee411fd38e658866e93e8f6d2c325f641a08ce2acc5facd5e humanities
|
| 14 |
+
65748246c35730eeed5e733017ac0590193d4dfad5423125eb393461fc3fb0e2 life
|
| 15 |
+
6a548f83db9973f647fa43a16860c56bc933f6a40a2a53dfafb056d24ecdffe4 materials
|
| 16 |
+
7c636d4ca6a1b8f66cfe11fc3b51dcc221efb252565828fe69056257c6aa1a25 mechanics
|
| 17 |
+
368849c4e9cee834ee609f4b6617f7afac2c85817a2bf664960f2e0cafdbc976 quantity
|
| 18 |
+
725a57a7ec25a13f1a8f155183013520b3c1636c91cd3a90c4440e06a0c0552e space
|
| 19 |
+
20ebbd038131be04642d80626dfa1fca6c03430f6e0bc7f6a8ca726633628e68 stores
|
| 20 |
+
cb3f5063d873f68daeec59cc031d1492ef0cab7ac4a2fa9b5ab3db78fd3eaecf trades
|
root/specialists/_proved/bin/acoustics
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:4f22f4159849938674cbb4da325c7cde322f026b70306ea2f242bae05fd137b9
|
| 3 |
+
size 1939384
|
root/specialists/_proved/bin/anatomyagri
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:99df1f11b3920fc81f9462ffcf7e207f46da5309a9f96c3de3d9d371a8ba0fdd
|
| 3 |
+
size 1920688
|
root/specialists/_proved/bin/chemistry
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:e1292ae5a7fbc67ceeb94c38a0c9172379214a2ff7005ee1c9685e6ba460343c
|
| 3 |
+
size 2518624
|
root/specialists/_proved/bin/climate
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:15de19eb7a04447e23a7aa155ff05978c40f4ffb6d85163ddf7f9e143bcd5a92
|
| 3 |
+
size 2281096
|
root/specialists/_proved/bin/computing
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:52ff108928f06ee64ef41c34599027f0e98f1ac28964a4d227fa0d2b191e3f5c
|
| 3 |
+
size 3430376
|
root/specialists/_proved/bin/decide
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f948026d0935b07a3e073be0d94c5c0e9d567973cbb88c10fb915001cd14e563
|
| 3 |
+
size 2098832
|
root/specialists/_proved/bin/discrete
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:555718394b624bec0a90615ba3feef312c5fd0bb037ca05b155602a4e28e0a37
|
| 3 |
+
size 2931232
|
root/specialists/_proved/bin/emoptics
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f013d847f239bed7f616fc9a007b3831c99cfb73a7a5030be1317d4d9cdfe071
|
| 3 |
+
size 2665960
|
root/specialists/_proved/bin/energy
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:df8449c8284dda0b63a0f6d40767e4721e3cdb59682344f6f30e0ea4c5580ea8
|
| 3 |
+
size 2540072
|
root/specialists/_proved/bin/facts
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:746bab8b08c15024bae763c9627b9874d3b21ba4623b0107d604bc6bd8fe0719
|
| 3 |
+
size 1638712
|
root/specialists/_proved/bin/fusion
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:0f765ab3ca5b4b6a405e6401ac8b3f6ea915d38992fbf1d176ed7837019ee969
|
| 3 |
+
size 1914848
|
root/specialists/_proved/bin/geostats
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f92a48c4c941846bda06de9bec32bb9238f60edde022fd844334b7d73905680b
|
| 3 |
+
size 2269952
|
root/specialists/_proved/bin/humanities
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:3befad7a8d17c9bee411fd38e658866e93e8f6d2c325f641a08ce2acc5facd5e
|
| 3 |
+
size 2344592
|
root/specialists/_proved/bin/life
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:65748246c35730eeed5e733017ac0590193d4dfad5423125eb393461fc3fb0e2
|
| 3 |
+
size 2575840
|
root/specialists/_proved/bin/materials
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:6a548f83db9973f647fa43a16860c56bc933f6a40a2a53dfafb056d24ecdffe4
|
| 3 |
+
size 2692744
|
root/specialists/_proved/bin/mechanics
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:7c636d4ca6a1b8f66cfe11fc3b51dcc221efb252565828fe69056257c6aa1a25
|
| 3 |
+
size 2413192
|
root/specialists/_proved/bin/quantity
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:368849c4e9cee834ee609f4b6617f7afac2c85817a2bf664960f2e0cafdbc976
|
| 3 |
+
size 2229104
|
root/specialists/_proved/bin/space
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:725a57a7ec25a13f1a8f155183013520b3c1636c91cd3a90c4440e06a0c0552e
|
| 3 |
+
size 2530424
|
root/specialists/_proved/bin/stores
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:20ebbd038131be04642d80626dfa1fca6c03430f6e0bc7f6a8ca726633628e68
|
| 3 |
+
size 2353968
|
root/specialists/_proved/bin/trades
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:cb3f5063d873f68daeec59cc031d1492ef0cab7ac4a2fa9b5ab3db78fd3eaecf
|
| 3 |
+
size 2723040
|
root/specialists/decay-r2/INHERITED.json
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"id": "decay-r2",
|
| 3 |
+
"inherits": "decay",
|
| 4 |
+
"why": "narrowing patch r2 (sealed composition test C4, item c4-28): a remaining amount is converted to the mass unit the question asks for",
|
| 5 |
+
"invariance": "invariance_v1 over the decay panel: dev 0 of 42 and held-out 0 of 42 replies differ, so the held-out measurement carries over (factory rule 2026-09-29)",
|
| 6 |
+
"core_overlap": "0 of 3107 core items taken",
|
| 7 |
+
"time": "2026-10-18T04:40:01Z"
|
| 8 |
+
}
|
root/specialists/decay-r2/decay_panel_v1.json
ADDED
|
@@ -0,0 +1,590 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[
|
| 2 |
+
{
|
| 3 |
+
"split": "dev",
|
| 4 |
+
"kind": "remaining_amount",
|
| 5 |
+
"valid": true,
|
| 6 |
+
"q": "A sample has 50 g of americium-241. How much remains after 432.6 years?",
|
| 7 |
+
"expect": 25.0
|
| 8 |
+
},
|
| 9 |
+
{
|
| 10 |
+
"split": "dev",
|
| 11 |
+
"kind": "remaining_amount",
|
| 12 |
+
"valid": true,
|
| 13 |
+
"q": "A substance has a half-life of 12 days. How much of 40 mg remains after 24 days?",
|
| 14 |
+
"expect": 10.0
|
| 15 |
+
},
|
| 16 |
+
{
|
| 17 |
+
"split": "dev",
|
| 18 |
+
"kind": "remaining_fraction",
|
| 19 |
+
"valid": true,
|
| 20 |
+
"q": "What fraction of technetium-99m remains after 12.01 hours?",
|
| 21 |
+
"expect": 0.2500981055652238
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
"split": "dev",
|
| 25 |
+
"kind": "time_to_fraction",
|
| 26 |
+
"valid": true,
|
| 27 |
+
"q": "How many years until only 50% of a sample of tritium remains?",
|
| 28 |
+
"expect": 12.32
|
| 29 |
+
},
|
| 30 |
+
{
|
| 31 |
+
"split": "dev",
|
| 32 |
+
"kind": "half_lives",
|
| 33 |
+
"valid": true,
|
| 34 |
+
"q": "How many half-lives of carbon-14 pass in 11460 years?",
|
| 35 |
+
"expect": 2.0
|
| 36 |
+
},
|
| 37 |
+
{
|
| 38 |
+
"split": "dev",
|
| 39 |
+
"kind": "remaining_amount",
|
| 40 |
+
"valid": true,
|
| 41 |
+
"q": "A sample has 100 g of caesium-137. How much remains after 15.04 years?",
|
| 42 |
+
"expect": 70.71067811865476
|
| 43 |
+
},
|
| 44 |
+
{
|
| 45 |
+
"split": "dev",
|
| 46 |
+
"kind": "remaining_amount",
|
| 47 |
+
"valid": true,
|
| 48 |
+
"q": "A substance has a half-life of 8 days. How much of 40 mg remains after 4 days?",
|
| 49 |
+
"expect": 28.284271247461902
|
| 50 |
+
},
|
| 51 |
+
{
|
| 52 |
+
"split": "dev",
|
| 53 |
+
"kind": "remaining_fraction",
|
| 54 |
+
"valid": true,
|
| 55 |
+
"q": "What fraction of radon-222 remains after 11.47 days?",
|
| 56 |
+
"expect": 0.12501133089113353
|
| 57 |
+
},
|
| 58 |
+
{
|
| 59 |
+
"split": "dev",
|
| 60 |
+
"kind": "time_to_fraction",
|
| 61 |
+
"valid": true,
|
| 62 |
+
"q": "How many days until only 10% of a sample of phosphorus-32 remains?",
|
| 63 |
+
"expect": 47.39727005785289
|
| 64 |
+
},
|
| 65 |
+
{
|
| 66 |
+
"split": "dev",
|
| 67 |
+
"kind": "half_lives",
|
| 68 |
+
"valid": true,
|
| 69 |
+
"q": "How many half-lives of radon-222 pass in 17.21 days?",
|
| 70 |
+
"expect": 4.5011115470119005
|
| 71 |
+
},
|
| 72 |
+
{
|
| 73 |
+
"split": "dev",
|
| 74 |
+
"kind": "remaining_amount",
|
| 75 |
+
"valid": true,
|
| 76 |
+
"q": "A sample has 250 g of phosphorus-32. How much remains after 7.13 days?",
|
| 77 |
+
"expect": 176.81105026553874
|
| 78 |
+
},
|
| 79 |
+
{
|
| 80 |
+
"split": "dev",
|
| 81 |
+
"kind": "remaining_amount",
|
| 82 |
+
"valid": true,
|
| 83 |
+
"q": "A substance has a half-life of 12 days. How much of 200 mg remains after 10 days?",
|
| 84 |
+
"expect": 112.2462048309373
|
| 85 |
+
},
|
| 86 |
+
{
|
| 87 |
+
"split": "dev",
|
| 88 |
+
"kind": "remaining_fraction",
|
| 89 |
+
"valid": true,
|
| 90 |
+
"q": "What fraction of carbon-14 remains after 5730 years?",
|
| 91 |
+
"expect": 0.5
|
| 92 |
+
},
|
| 93 |
+
{
|
| 94 |
+
"split": "dev",
|
| 95 |
+
"kind": "time_to_fraction",
|
| 96 |
+
"valid": true,
|
| 97 |
+
"q": "How many years until only 50% of a sample of caesium-137 remains?",
|
| 98 |
+
"expect": 30.08
|
| 99 |
+
},
|
| 100 |
+
{
|
| 101 |
+
"split": "dev",
|
| 102 |
+
"kind": "half_lives",
|
| 103 |
+
"valid": true,
|
| 104 |
+
"q": "How many half-lives of radon-222 pass in 7.65 days?",
|
| 105 |
+
"expect": 2.000784621420165
|
| 106 |
+
},
|
| 107 |
+
{
|
| 108 |
+
"split": "dev",
|
| 109 |
+
"kind": "remaining_amount",
|
| 110 |
+
"valid": true,
|
| 111 |
+
"q": "A sample has 250 g of fluorine-18. How much remains after 658.62 minutes?",
|
| 112 |
+
"expect": 3.90625
|
| 113 |
+
},
|
| 114 |
+
{
|
| 115 |
+
"split": "dev",
|
| 116 |
+
"kind": "remaining_amount",
|
| 117 |
+
"valid": true,
|
| 118 |
+
"q": "A substance has a half-life of 8 days. How much of 200 mg remains after 4 days?",
|
| 119 |
+
"expect": 141.4213562373095
|
| 120 |
+
},
|
| 121 |
+
{
|
| 122 |
+
"split": "dev",
|
| 123 |
+
"kind": "remaining_fraction",
|
| 124 |
+
"valid": true,
|
| 125 |
+
"q": "What fraction of radon-222 remains after 7.65 days?",
|
| 126 |
+
"expect": 0.24986407243470724
|
| 127 |
+
},
|
| 128 |
+
{
|
| 129 |
+
"split": "dev",
|
| 130 |
+
"kind": "time_to_fraction",
|
| 131 |
+
"valid": true,
|
| 132 |
+
"q": "How many years until only 50% of a sample of caesium-137 remains?",
|
| 133 |
+
"expect": 30.08
|
| 134 |
+
},
|
| 135 |
+
{
|
| 136 |
+
"split": "dev",
|
| 137 |
+
"kind": "half_lives",
|
| 138 |
+
"valid": true,
|
| 139 |
+
"q": "How many half-lives of technetium-99m pass in 90.1 hours?",
|
| 140 |
+
"expect": 14.999916759618424
|
| 141 |
+
},
|
| 142 |
+
{
|
| 143 |
+
"split": "dev",
|
| 144 |
+
"kind": "remaining_amount",
|
| 145 |
+
"valid": true,
|
| 146 |
+
"q": "A sample has 50 g of strontium-90. How much remains after 28.79 years?",
|
| 147 |
+
"expect": 25.0
|
| 148 |
+
},
|
| 149 |
+
{
|
| 150 |
+
"split": "dev",
|
| 151 |
+
"kind": "remaining_amount",
|
| 152 |
+
"valid": true,
|
| 153 |
+
"q": "A substance has a half-life of 5 days. How much of 1000 mg remains after 10 days?",
|
| 154 |
+
"expect": 250.0
|
| 155 |
+
},
|
| 156 |
+
{
|
| 157 |
+
"split": "dev",
|
| 158 |
+
"kind": "remaining_fraction",
|
| 159 |
+
"valid": true,
|
| 160 |
+
"q": "What fraction of carbon-14 remains after 5730 years?",
|
| 161 |
+
"expect": 0.5
|
| 162 |
+
},
|
| 163 |
+
{
|
| 164 |
+
"split": "dev",
|
| 165 |
+
"kind": "time_to_fraction",
|
| 166 |
+
"valid": true,
|
| 167 |
+
"q": "How many years until only 5% of a sample of radium-226 remains?",
|
| 168 |
+
"expect": 6915.08495181978
|
| 169 |
+
},
|
| 170 |
+
{
|
| 171 |
+
"split": "dev",
|
| 172 |
+
"kind": "half_lives",
|
| 173 |
+
"valid": true,
|
| 174 |
+
"q": "How many half-lives of americium-241 pass in 1946.7 years?",
|
| 175 |
+
"expect": 4.5
|
| 176 |
+
},
|
| 177 |
+
{
|
| 178 |
+
"split": "dev",
|
| 179 |
+
"kind": "remaining_amount",
|
| 180 |
+
"valid": true,
|
| 181 |
+
"q": "A sample has 800 g of carbon-14. How much remains after 5730 years?",
|
| 182 |
+
"expect": 400.0
|
| 183 |
+
},
|
| 184 |
+
{
|
| 185 |
+
"split": "dev",
|
| 186 |
+
"kind": "remaining_amount",
|
| 187 |
+
"valid": true,
|
| 188 |
+
"q": "A substance has a half-life of 12 days. How much of 40 mg remains after 4 days?",
|
| 189 |
+
"expect": 31.74802103936399
|
| 190 |
+
},
|
| 191 |
+
{
|
| 192 |
+
"split": "dev",
|
| 193 |
+
"kind": "remaining_fraction",
|
| 194 |
+
"valid": true,
|
| 195 |
+
"q": "What fraction of carbon-14 remains after 5730 years?",
|
| 196 |
+
"expect": 0.5
|
| 197 |
+
},
|
| 198 |
+
{
|
| 199 |
+
"split": "dev",
|
| 200 |
+
"kind": "time_to_fraction",
|
| 201 |
+
"valid": true,
|
| 202 |
+
"q": "How many years until only 25% of a sample of americium-241 remains?",
|
| 203 |
+
"expect": 865.2
|
| 204 |
+
},
|
| 205 |
+
{
|
| 206 |
+
"split": "dev",
|
| 207 |
+
"kind": "half_lives",
|
| 208 |
+
"valid": true,
|
| 209 |
+
"q": "How many half-lives of technetium-99m pass in 18.02 hours?",
|
| 210 |
+
"expect": 2.999983351923685
|
| 211 |
+
},
|
| 212 |
+
{
|
| 213 |
+
"split": "dev",
|
| 214 |
+
"kind": "remaining_amount",
|
| 215 |
+
"valid": true,
|
| 216 |
+
"q": "A sample has 800 g of caesium-137. How much remains after 105.28 years?",
|
| 217 |
+
"expect": 70.71067811865474
|
| 218 |
+
},
|
| 219 |
+
{
|
| 220 |
+
"split": "dev",
|
| 221 |
+
"kind": "remaining_amount",
|
| 222 |
+
"valid": true,
|
| 223 |
+
"q": "A substance has a half-life of 12 days. How much of 1000 mg remains after 30 days?",
|
| 224 |
+
"expect": 176.7766952966369
|
| 225 |
+
},
|
| 226 |
+
{
|
| 227 |
+
"split": "dev",
|
| 228 |
+
"kind": "remaining_fraction",
|
| 229 |
+
"valid": true,
|
| 230 |
+
"q": "What fraction of cobalt-60 remains after 23.72 years?",
|
| 231 |
+
"expect": 0.044201729007020775
|
| 232 |
+
},
|
| 233 |
+
{
|
| 234 |
+
"split": "dev",
|
| 235 |
+
"kind": "time_to_fraction",
|
| 236 |
+
"valid": true,
|
| 237 |
+
"q": "How many minutes until only 50% of a sample of fluorine-18 remains?",
|
| 238 |
+
"expect": 109.77
|
| 239 |
+
},
|
| 240 |
+
{
|
| 241 |
+
"split": "dev",
|
| 242 |
+
"kind": "half_lives",
|
| 243 |
+
"valid": true,
|
| 244 |
+
"q": "How many half-lives of tritium pass in 36.96 years?",
|
| 245 |
+
"expect": 3.0
|
| 246 |
+
},
|
| 247 |
+
{
|
| 248 |
+
"split": "dev",
|
| 249 |
+
"kind": "remaining_amount",
|
| 250 |
+
"valid": true,
|
| 251 |
+
"q": "A sample has 10 g of radium-226. How much remains after 9600 years?",
|
| 252 |
+
"expect": 0.15625
|
| 253 |
+
},
|
| 254 |
+
{
|
| 255 |
+
"split": "dev",
|
| 256 |
+
"kind": "remaining_amount",
|
| 257 |
+
"valid": true,
|
| 258 |
+
"q": "A substance has a half-life of 2 days. How much of 40 mg remains after 24 days?",
|
| 259 |
+
"expect": 0.009765625
|
| 260 |
+
},
|
| 261 |
+
{
|
| 262 |
+
"split": "dev",
|
| 263 |
+
"kind": "remaining_fraction",
|
| 264 |
+
"valid": true,
|
| 265 |
+
"q": "What fraction of cobalt-60 remains after 23.72 years?",
|
| 266 |
+
"expect": 0.044201729007020775
|
| 267 |
+
},
|
| 268 |
+
{
|
| 269 |
+
"split": "dev",
|
| 270 |
+
"kind": "time_to_fraction",
|
| 271 |
+
"valid": true,
|
| 272 |
+
"q": "How many years until only 50% of a sample of plutonium-239 remains?",
|
| 273 |
+
"expect": 24110.0
|
| 274 |
+
},
|
| 275 |
+
{
|
| 276 |
+
"split": "dev",
|
| 277 |
+
"kind": "half_lives",
|
| 278 |
+
"valid": true,
|
| 279 |
+
"q": "How many half-lives of caesium-137 pass in 90.24 years?",
|
| 280 |
+
"expect": 3.0
|
| 281 |
+
},
|
| 282 |
+
{
|
| 283 |
+
"split": "dev",
|
| 284 |
+
"kind": "decline",
|
| 285 |
+
"valid": false,
|
| 286 |
+
"q": "How much carbon-14 remains after 1000 years?",
|
| 287 |
+
"expect": "decline"
|
| 288 |
+
},
|
| 289 |
+
{
|
| 290 |
+
"split": "dev",
|
| 291 |
+
"kind": "decline",
|
| 292 |
+
"valid": false,
|
| 293 |
+
"q": "What fraction of iodine-131 remains?",
|
| 294 |
+
"expect": "decline"
|
| 295 |
+
},
|
| 296 |
+
{
|
| 297 |
+
"split": "heldout",
|
| 298 |
+
"kind": "remaining_amount",
|
| 299 |
+
"valid": true,
|
| 300 |
+
"q": "Starting with 250 g of phosphorus-32, how many grams are left after 7.13 days?",
|
| 301 |
+
"expect": 176.81105026553874
|
| 302 |
+
},
|
| 303 |
+
{
|
| 304 |
+
"split": "heldout",
|
| 305 |
+
"kind": "remaining_amount",
|
| 306 |
+
"valid": true,
|
| 307 |
+
"q": "An isotope's half-life is 8 days. If you begin with 40 mg, how much is still left after 10 days?",
|
| 308 |
+
"expect": 16.81792830507429
|
| 309 |
+
},
|
| 310 |
+
{
|
| 311 |
+
"split": "heldout",
|
| 312 |
+
"kind": "remaining_fraction",
|
| 313 |
+
"valid": true,
|
| 314 |
+
"q": "After 865.2 years, what fraction of the original americium-241 is still remaining?",
|
| 315 |
+
"expect": 0.25
|
| 316 |
+
},
|
| 317 |
+
{
|
| 318 |
+
"split": "heldout",
|
| 319 |
+
"kind": "time_to_fraction",
|
| 320 |
+
"valid": true,
|
| 321 |
+
"q": "For plutonium-239, how many years does it take until 1% of it remains?",
|
| 322 |
+
"expect": 160183.3727354686
|
| 323 |
+
},
|
| 324 |
+
{
|
| 325 |
+
"split": "heldout",
|
| 326 |
+
"kind": "half_lives",
|
| 327 |
+
"valid": true,
|
| 328 |
+
"q": "In 143.95 years, how many half-lives of strontium-90 have gone by?",
|
| 329 |
+
"expect": 5.0
|
| 330 |
+
},
|
| 331 |
+
{
|
| 332 |
+
"split": "heldout",
|
| 333 |
+
"kind": "remaining_amount",
|
| 334 |
+
"valid": true,
|
| 335 |
+
"q": "Starting with 800 g of tritium, how many grams are left after 24.64 years?",
|
| 336 |
+
"expect": 200.0
|
| 337 |
+
},
|
| 338 |
+
{
|
| 339 |
+
"split": "heldout",
|
| 340 |
+
"kind": "remaining_amount",
|
| 341 |
+
"valid": true,
|
| 342 |
+
"q": "An isotope's half-life is 12 days. If you begin with 200 mg, how much is still left after 30 days?",
|
| 343 |
+
"expect": 35.35533905932738
|
| 344 |
+
},
|
| 345 |
+
{
|
| 346 |
+
"split": "heldout",
|
| 347 |
+
"kind": "remaining_fraction",
|
| 348 |
+
"valid": true,
|
| 349 |
+
"q": "After 109.77 minutes, what fraction of the original fluorine-18 is still remaining?",
|
| 350 |
+
"expect": 0.5
|
| 351 |
+
},
|
| 352 |
+
{
|
| 353 |
+
"split": "heldout",
|
| 354 |
+
"kind": "time_to_fraction",
|
| 355 |
+
"valid": true,
|
| 356 |
+
"q": "For cobalt-60, how many years does it take until 10% of it remains?",
|
| 357 |
+
"expect": 17.511211759389244
|
| 358 |
+
},
|
| 359 |
+
{
|
| 360 |
+
"split": "heldout",
|
| 361 |
+
"kind": "half_lives",
|
| 362 |
+
"valid": true,
|
| 363 |
+
"q": "In 15.81 years, how many half-lives of cobalt-60 have gone by?",
|
| 364 |
+
"expect": 2.99920324771408
|
| 365 |
+
},
|
| 366 |
+
{
|
| 367 |
+
"split": "heldout",
|
| 368 |
+
"kind": "remaining_amount",
|
| 369 |
+
"valid": true,
|
| 370 |
+
"q": "Starting with 100 g of fluorine-18, how many grams are left after 658.62 minutes?",
|
| 371 |
+
"expect": 1.5625
|
| 372 |
+
},
|
| 373 |
+
{
|
| 374 |
+
"split": "heldout",
|
| 375 |
+
"kind": "remaining_amount",
|
| 376 |
+
"valid": true,
|
| 377 |
+
"q": "An isotope's half-life is 8 days. If you begin with 1000 mg, how much is still left after 30 days?",
|
| 378 |
+
"expect": 74.32544468767007
|
| 379 |
+
},
|
| 380 |
+
{
|
| 381 |
+
"split": "heldout",
|
| 382 |
+
"kind": "remaining_fraction",
|
| 383 |
+
"valid": true,
|
| 384 |
+
"q": "After 8.03 days, what fraction of the original iodine-131 is still remaining?",
|
| 385 |
+
"expect": 0.4997927517767696
|
| 386 |
+
},
|
| 387 |
+
{
|
| 388 |
+
"split": "heldout",
|
| 389 |
+
"kind": "time_to_fraction",
|
| 390 |
+
"valid": true,
|
| 391 |
+
"q": "For strontium-90, how many years does it take until 10% of it remains?",
|
| 392 |
+
"expect": 95.63830985180716
|
| 393 |
+
},
|
| 394 |
+
{
|
| 395 |
+
"split": "heldout",
|
| 396 |
+
"kind": "half_lives",
|
| 397 |
+
"valid": true,
|
| 398 |
+
"q": "In 215.92 years, how many half-lives of strontium-90 have gone by?",
|
| 399 |
+
"expect": 7.499826328586314
|
| 400 |
+
},
|
| 401 |
+
{
|
| 402 |
+
"split": "heldout",
|
| 403 |
+
"kind": "remaining_amount",
|
| 404 |
+
"valid": true,
|
| 405 |
+
"q": "Starting with 250 g of strontium-90, how many grams are left after 100.77 years?",
|
| 406 |
+
"expect": 22.094427028156776
|
| 407 |
+
},
|
| 408 |
+
{
|
| 409 |
+
"split": "heldout",
|
| 410 |
+
"kind": "remaining_amount",
|
| 411 |
+
"valid": true,
|
| 412 |
+
"q": "An isotope's half-life is 12 days. If you begin with 200 mg, how much is still left after 24 days?",
|
| 413 |
+
"expect": 50.0
|
| 414 |
+
},
|
| 415 |
+
{
|
| 416 |
+
"split": "heldout",
|
| 417 |
+
"kind": "remaining_fraction",
|
| 418 |
+
"valid": true,
|
| 419 |
+
"q": "After 72330 years, what fraction of the original plutonium-239 is still remaining?",
|
| 420 |
+
"expect": 0.125
|
| 421 |
+
},
|
| 422 |
+
{
|
| 423 |
+
"split": "heldout",
|
| 424 |
+
"kind": "time_to_fraction",
|
| 425 |
+
"valid": true,
|
| 426 |
+
"q": "For caesium-137, how many years does it take until 50% of it remains?",
|
| 427 |
+
"expect": 30.08
|
| 428 |
+
},
|
| 429 |
+
{
|
| 430 |
+
"split": "heldout",
|
| 431 |
+
"kind": "half_lives",
|
| 432 |
+
"valid": true,
|
| 433 |
+
"q": "In 135.36 years, how many half-lives of caesium-137 have gone by?",
|
| 434 |
+
"expect": 4.500000000000001
|
| 435 |
+
},
|
| 436 |
+
{
|
| 437 |
+
"split": "heldout",
|
| 438 |
+
"kind": "remaining_amount",
|
| 439 |
+
"valid": true,
|
| 440 |
+
"q": "Starting with 10 g of americium-241, how many grams are left after 216.3 years?",
|
| 441 |
+
"expect": 7.0710678118654755
|
| 442 |
+
},
|
| 443 |
+
{
|
| 444 |
+
"split": "heldout",
|
| 445 |
+
"kind": "remaining_amount",
|
| 446 |
+
"valid": true,
|
| 447 |
+
"q": "An isotope's half-life is 12 days. If you begin with 1000 mg, how much is still left after 10 days?",
|
| 448 |
+
"expect": 561.2310241546866
|
| 449 |
+
},
|
| 450 |
+
{
|
| 451 |
+
"split": "heldout",
|
| 452 |
+
"kind": "remaining_fraction",
|
| 453 |
+
"valid": true,
|
| 454 |
+
"q": "After 129.56 years, what fraction of the original strontium-90 is still remaining?",
|
| 455 |
+
"expect": 0.04418885405631354
|
| 456 |
+
},
|
| 457 |
+
{
|
| 458 |
+
"split": "heldout",
|
| 459 |
+
"kind": "time_to_fraction",
|
| 460 |
+
"valid": true,
|
| 461 |
+
"q": "For technetium-99m, how many hours does it take until 5% of it remains?",
|
| 462 |
+
"expect": 25.960525487559924
|
| 463 |
+
},
|
| 464 |
+
{
|
| 465 |
+
"split": "heldout",
|
| 466 |
+
"kind": "half_lives",
|
| 467 |
+
"valid": true,
|
| 468 |
+
"q": "In 71.34 days, how many half-lives of phosphorus-32 have gone by?",
|
| 469 |
+
"expect": 5.0
|
| 470 |
+
},
|
| 471 |
+
{
|
| 472 |
+
"split": "heldout",
|
| 473 |
+
"kind": "remaining_amount",
|
| 474 |
+
"valid": true,
|
| 475 |
+
"q": "Starting with 800 g of caesium-137, how many grams are left after 30.08 years?",
|
| 476 |
+
"expect": 400.0
|
| 477 |
+
},
|
| 478 |
+
{
|
| 479 |
+
"split": "heldout",
|
| 480 |
+
"kind": "remaining_amount",
|
| 481 |
+
"valid": true,
|
| 482 |
+
"q": "An isotope's half-life is 5 days. If you begin with 200 mg, how much is still left after 10 days?",
|
| 483 |
+
"expect": 50.0
|
| 484 |
+
},
|
| 485 |
+
{
|
| 486 |
+
"split": "heldout",
|
| 487 |
+
"kind": "remaining_fraction",
|
| 488 |
+
"valid": true,
|
| 489 |
+
"q": "After 3.82 days, what fraction of the original radon-222 is still remaining?",
|
| 490 |
+
"expect": 0.5003173512422465
|
| 491 |
+
},
|
| 492 |
+
{
|
| 493 |
+
"split": "heldout",
|
| 494 |
+
"kind": "time_to_fraction",
|
| 495 |
+
"valid": true,
|
| 496 |
+
"q": "For radon-222, how many days does it take until 50% of it remains?",
|
| 497 |
+
"expect": 3.8235
|
| 498 |
+
},
|
| 499 |
+
{
|
| 500 |
+
"split": "heldout",
|
| 501 |
+
"kind": "half_lives",
|
| 502 |
+
"valid": true,
|
| 503 |
+
"q": "In 39.54 years, how many half-lives of cobalt-60 have gone by?",
|
| 504 |
+
"expect": 7.500853663163486
|
| 505 |
+
},
|
| 506 |
+
{
|
| 507 |
+
"split": "heldout",
|
| 508 |
+
"kind": "remaining_amount",
|
| 509 |
+
"valid": true,
|
| 510 |
+
"q": "Starting with 10 g of technetium-99m, how many grams are left after 6.01 hours?",
|
| 511 |
+
"expect": 4.998096333905179
|
| 512 |
+
},
|
| 513 |
+
{
|
| 514 |
+
"split": "heldout",
|
| 515 |
+
"kind": "remaining_amount",
|
| 516 |
+
"valid": true,
|
| 517 |
+
"q": "An isotope's half-life is 5 days. If you begin with 1000 mg, how much is still left after 24 days?",
|
| 518 |
+
"expect": 35.896823593657345
|
| 519 |
+
},
|
| 520 |
+
{
|
| 521 |
+
"split": "heldout",
|
| 522 |
+
"kind": "remaining_fraction",
|
| 523 |
+
"valid": true,
|
| 524 |
+
"q": "After 24.64 years, what fraction of the original tritium is still remaining?",
|
| 525 |
+
"expect": 0.25
|
| 526 |
+
},
|
| 527 |
+
{
|
| 528 |
+
"split": "heldout",
|
| 529 |
+
"kind": "time_to_fraction",
|
| 530 |
+
"valid": true,
|
| 531 |
+
"q": "For phosphorus-32, how many days does it take until 5% of it remains?",
|
| 532 |
+
"expect": 61.665270057852894
|
| 533 |
+
},
|
| 534 |
+
{
|
| 535 |
+
"split": "heldout",
|
| 536 |
+
"kind": "half_lives",
|
| 537 |
+
"valid": true,
|
| 538 |
+
"q": "In 61.6 years, how many half-lives of tritium have gone by?",
|
| 539 |
+
"expect": 5.0
|
| 540 |
+
},
|
| 541 |
+
{
|
| 542 |
+
"split": "heldout",
|
| 543 |
+
"kind": "remaining_amount",
|
| 544 |
+
"valid": true,
|
| 545 |
+
"q": "Starting with 800 g of carbon-14, how many grams are left after 5730 years?",
|
| 546 |
+
"expect": 400.0
|
| 547 |
+
},
|
| 548 |
+
{
|
| 549 |
+
"split": "heldout",
|
| 550 |
+
"kind": "remaining_amount",
|
| 551 |
+
"valid": true,
|
| 552 |
+
"q": "An isotope's half-life is 5 days. If you begin with 200 mg, how much is still left after 30 days?",
|
| 553 |
+
"expect": 3.125
|
| 554 |
+
},
|
| 555 |
+
{
|
| 556 |
+
"split": "heldout",
|
| 557 |
+
"kind": "remaining_fraction",
|
| 558 |
+
"valid": true,
|
| 559 |
+
"q": "After 55.44 years, what fraction of the original tritium is still remaining?",
|
| 560 |
+
"expect": 0.04419417382415922
|
| 561 |
+
},
|
| 562 |
+
{
|
| 563 |
+
"split": "heldout",
|
| 564 |
+
"kind": "time_to_fraction",
|
| 565 |
+
"valid": true,
|
| 566 |
+
"q": "For strontium-90, how many years does it take until 5% of it remains?",
|
| 567 |
+
"expect": 124.42830985180717
|
| 568 |
+
},
|
| 569 |
+
{
|
| 570 |
+
"split": "heldout",
|
| 571 |
+
"kind": "half_lives",
|
| 572 |
+
"valid": true,
|
| 573 |
+
"q": "In 60.16 years, how many half-lives of caesium-137 have gone by?",
|
| 574 |
+
"expect": 2.0
|
| 575 |
+
},
|
| 576 |
+
{
|
| 577 |
+
"split": "heldout",
|
| 578 |
+
"kind": "decline",
|
| 579 |
+
"valid": false,
|
| 580 |
+
"q": "How much cobalt-60 is left after 10 years?",
|
| 581 |
+
"expect": "decline"
|
| 582 |
+
},
|
| 583 |
+
{
|
| 584 |
+
"split": "heldout",
|
| 585 |
+
"kind": "decline",
|
| 586 |
+
"valid": false,
|
| 587 |
+
"q": "What fraction of radon-222 is still remaining?",
|
| 588 |
+
"expect": "decline"
|
| 589 |
+
}
|
| 590 |
+
]
|
root/specialists/decay-r2/decay_panel_v1.py
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin/env python3
|
| 2 |
+
"""decay_panel_v1 - the sealed panel for specialist #104 (radioactive decay). Answers from the panel's OWN half-life table
|
| 3 |
+
(NNDC / NuDat 3) and N = N0 (1/2)^(t/T), written here separately from the organ. Dev / held-out differ in seed, isotopes
|
| 4 |
+
and phrasing (same author - disclosed). Must-decline: the time or amount missing.
|
| 5 |
+
usage: decay_panel_v1.py <out.json>"""
|
| 6 |
+
import json
|
| 7 |
+
import math
|
| 8 |
+
import random
|
| 9 |
+
import sys
|
| 10 |
+
|
| 11 |
+
HL = {"carbon-14": (5730, "years"), "cobalt-60": (5.2714, "years"), "caesium-137": (30.08, "years"), "strontium-90": (28.79, "years"),
|
| 12 |
+
"tritium": (12.32, "years"), "radium-226": (1600, "years"), "plutonium-239": (24110, "years"), "americium-241": (432.6, "years"),
|
| 13 |
+
"iodine-131": (8.0252, "days"), "radon-222": (3.8235, "days"), "phosphorus-32": (14.268, "days"),
|
| 14 |
+
"technetium-99m": (6.0067, "hours"), "fluorine-18": (109.77, "minutes")}
|
| 15 |
+
T = {"dev": {"remain": "A sample has {a} g of {i}. How much remains after {t} {u}?",
|
| 16 |
+
"given": "A substance has a half-life of {h} days. How much of {a} mg remains after {t} days?",
|
| 17 |
+
"frac": "What fraction of {i} remains after {t} {u}?",
|
| 18 |
+
"until": "How many {u} until only {p}% of a sample of {i} remains?",
|
| 19 |
+
"nhl": "How many half-lives of {i} pass in {t} {u}?"},
|
| 20 |
+
"heldout": {"remain": "Starting with {a} g of {i}, how many grams are left after {t} {u}?",
|
| 21 |
+
"given": "An isotope's half-life is {h} days. If you begin with {a} mg, how much is still left after {t} days?",
|
| 22 |
+
"frac": "After {t} {u}, what fraction of the original {i} is still remaining?",
|
| 23 |
+
"until": "For {i}, how many {u} does it take until {p}% of it remains?",
|
| 24 |
+
"nhl": "In {t} {u}, how many half-lives of {i} have gone by?"}}
|
| 25 |
+
DECLINE = {"dev": ["How much carbon-14 remains after 1000 years?", "What fraction of iodine-131 remains?"],
|
| 26 |
+
"heldout": ["How much cobalt-60 is left after 10 years?", "What fraction of radon-222 is still remaining?"]}
|
| 27 |
+
|
| 28 |
+
|
| 29 |
+
def main():
|
| 30 |
+
items = []
|
| 31 |
+
for split, seed in (("dev", 104), ("heldout", 10404)):
|
| 32 |
+
rng = random.Random(seed)
|
| 33 |
+
t = T[split]
|
| 34 |
+
iso = sorted(HL)
|
| 35 |
+
for _ in range(8):
|
| 36 |
+
i = rng.choice(iso)
|
| 37 |
+
h, u = HL[i]
|
| 38 |
+
k = rng.choice([0.5, 1, 2, 3.5, 6])
|
| 39 |
+
a = rng.choice([10, 50, 100, 250, 800])
|
| 40 |
+
items.append({"split": split, "kind": "remaining_amount", "valid": True, "q": t["remain"].format(a=a, i=i, t=round(h * k, 2), u=u),
|
| 41 |
+
"expect": a * 0.5 ** (round(h * k, 2) / h)})
|
| 42 |
+
hd = rng.choice([2, 5, 8, 12])
|
| 43 |
+
tt = rng.choice([4, 10, 24, 30])
|
| 44 |
+
a = rng.choice([40, 200, 1000])
|
| 45 |
+
items.append({"split": split, "kind": "remaining_amount", "valid": True, "q": t["given"].format(h=hd, a=a, t=tt), "expect": a * 0.5 ** (tt / hd)})
|
| 46 |
+
i = rng.choice(iso)
|
| 47 |
+
h, u = HL[i]
|
| 48 |
+
k = rng.choice([1, 2, 3, 4.5])
|
| 49 |
+
items.append({"split": split, "kind": "remaining_fraction", "valid": True, "q": t["frac"].format(i=i, t=round(h * k, 2), u=u),
|
| 50 |
+
"expect": 0.5 ** (round(h * k, 2) / h)})
|
| 51 |
+
i = rng.choice(iso)
|
| 52 |
+
h, u = HL[i]
|
| 53 |
+
p = rng.choice([50, 25, 10, 5, 1])
|
| 54 |
+
items.append({"split": split, "kind": "time_to_fraction", "valid": True, "q": t["until"].format(u=u, p=p, i=i), "expect": h * math.log(100 / p, 2)})
|
| 55 |
+
i = rng.choice(iso)
|
| 56 |
+
h, u = HL[i]
|
| 57 |
+
tt = round(h * rng.choice([2, 3, 5, 10]) * rng.choice([1, 1.5]), 2)
|
| 58 |
+
items.append({"split": split, "kind": "half_lives", "valid": True, "q": t["nhl"].format(i=i, t=tt, u=u), "expect": tt / h})
|
| 59 |
+
for q in DECLINE[split]:
|
| 60 |
+
items.append({"split": split, "kind": "decline", "valid": False, "q": q, "expect": "decline"})
|
| 61 |
+
json.dump(items, open(sys.argv[1], "w"), indent=1)
|
| 62 |
+
import collections
|
| 63 |
+
print("panel:", dict(collections.Counter((i["split"], i["kind"]) for i in items)))
|
| 64 |
+
|
| 65 |
+
|
| 66 |
+
if __name__ == "__main__":
|
| 67 |
+
main()
|
root/specialists/decay-r2/decay_scorer.py
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin/env python3
|
| 2 |
+
"""decay_scorer - the first number after "about" (opening "About ..." or "is/takes about ...") in the REPLY TEXT within 0.5%
|
| 3 |
+
of the panel's own value (the panel states the unit it asks for); a must-decline item answered is a false yes. (ok, asserted)"""
|
| 4 |
+
import re
|
| 5 |
+
|
| 6 |
+
|
| 7 |
+
def ok(p, r):
|
| 8 |
+
text = str((r or {}).get("response", ""))
|
| 9 |
+
answered = str((r or {}).get("status", "")) == "answered"
|
| 10 |
+
if not p["valid"]:
|
| 11 |
+
return (not answered), answered
|
| 12 |
+
if not answered:
|
| 13 |
+
return False, False
|
| 14 |
+
m = re.search(r"\b[Aa]bout\s+(-?\d+(?:\.\d+)?(?:e[+-]?\d+)?)", text)
|
| 15 |
+
if not m:
|
| 16 |
+
return False, True
|
| 17 |
+
got, want = float(m.group(1)), float(p["expect"])
|
| 18 |
+
return abs(got - want) <= 0.005 * abs(want) + 1e-9, True
|
root/specialists/decay-r2/manifest.json
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"id": "decay-r2",
|
| 3 |
+
"name": "Oracle7 Radioactive Decay (r2: amount in the mass unit asked)",
|
| 4 |
+
"number": 104,
|
| 5 |
+
"tier": "A",
|
| 6 |
+
"sources": [
|
| 7 |
+
{
|
| 8 |
+
"name": "NNDC NuDat 3 half-lives (Brookhaven National Laboratory)",
|
| 9 |
+
"licence": "public domain (US government)",
|
| 10 |
+
"url": "https://www.nndc.bnl.gov/nudat3/"
|
| 11 |
+
},
|
| 12 |
+
{
|
| 13 |
+
"name": "Exponential decay N = N0 (1/2)^(t/T)",
|
| 14 |
+
"licence": "public domain (physical law)",
|
| 15 |
+
"url": "https://www.nndc.bnl.gov/"
|
| 16 |
+
}
|
| 17 |
+
],
|
| 18 |
+
"store": {
|
| 19 |
+
"path": "__ORACLE7_ROOT__/specialists/decay-r2/organ_decay_r2.py"
|
| 20 |
+
},
|
| 21 |
+
"organ": {
|
| 22 |
+
"dir": "__ORACLE7_ROOT__/specialists/decay-r2",
|
| 23 |
+
"module": "organ_decay_r2",
|
| 24 |
+
"class": "DecayR2Organ",
|
| 25 |
+
"init": {}
|
| 26 |
+
},
|
| 27 |
+
"accept": {
|
| 28 |
+
"kinds": [
|
| 29 |
+
"remaining_amount",
|
| 30 |
+
"remaining_fraction",
|
| 31 |
+
"time_to_fraction",
|
| 32 |
+
"half_lives"
|
| 33 |
+
],
|
| 34 |
+
"declines_in_domain": [
|
| 35 |
+
"underspecified"
|
| 36 |
+
],
|
| 37 |
+
"context_regex": "\b(?:half[- ]?li(?:fe|ves)|decay\\w*|radioactive|isotope)\b"
|
| 38 |
+
},
|
| 39 |
+
"panel": {
|
| 40 |
+
"path": "__ORACLE7_ROOT__/specialists/decay-r2/decay_panel_v1.json",
|
| 41 |
+
"splits": [
|
| 42 |
+
"dev",
|
| 43 |
+
"heldout"
|
| 44 |
+
],
|
| 45 |
+
"exclude_kinds_composed": [],
|
| 46 |
+
"scorer_module": "decay_scorer",
|
| 47 |
+
"scorer_fn": "ok"
|
| 48 |
+
},
|
| 49 |
+
"routing_cues": [
|
| 50 |
+
"half-life",
|
| 51 |
+
"remains after",
|
| 52 |
+
"how many half-lives",
|
| 53 |
+
"carbon-14",
|
| 54 |
+
"decay"
|
| 55 |
+
],
|
| 56 |
+
"budgets": {
|
| 57 |
+
"latency_p50_ms": 50,
|
| 58 |
+
"store_mb": 1
|
| 59 |
+
},
|
| 60 |
+
"core_sample": {
|
| 61 |
+
"n": 400,
|
| 62 |
+
"seed": 20261008
|
| 63 |
+
},
|
| 64 |
+
"notes": "Half-life arithmetic for a stated half-life or a named isotope (NNDC values). Panel answers from the panel's own table, written separately; dev/held-out differ in seed and phrasing (same author). r2 (2026-10-18, sealed test C4 item c4-28): a remaining amount is converted to the mass unit the question asks for; byte-identical to decay on every panel input (invariance_v1)."
|
| 65 |
+
}
|
root/specialists/decay-r2/narrow_v1.py
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin/env python3
|
| 2 |
+
"""narrow_v1 - the shared NARROWING rule for specialist organs (2026-09-29, from the full-core sweep):
|
| 3 |
+
|
| 4 |
+
WORD PROBLEMS AND NARRATIVE TURNS BELONG TO THE HEAD. An organ answers a direct domain question. A turn that tells a
|
| 5 |
+
story ("Justine wants to put a deck ...", "A new energy drink advertises 106 calories for 8 ounces ...") or relates
|
| 6 |
+
quantities to each other ("the length is 9 inches more than the width") is a word problem, which the core's word-
|
| 7 |
+
problem organ owns; organs firing on its nouns declined it or answered a different question.
|
| 8 |
+
An organ may DECLINE only a short direct question (it is then refusing the domain question that was asked); on
|
| 9 |
+
anything longer it says nothing and the head answers.
|
| 10 |
+
|
| 11 |
+
Narrowing only ever removes turns an organ takes, so on any input where it does not fire, the organ's reply is
|
| 12 |
+
byte-identical to the frozen version it wraps (checked per specialist by an invariance count before re-gating).
|
| 13 |
+
"""
|
| 14 |
+
import re
|
| 15 |
+
|
| 16 |
+
RELATION = re.compile(r"\b(?:\d+(?:\.\d+)?|one|two|three|four|five|six|seven|eight|nine|ten)\s+(?:\w+\s+){0,2}(?:more|less|fewer|longer|shorter)\s+than\b|"
|
| 17 |
+
r"\b(?:twice|three times|half)\s+(?:as\s+\w+\s+as\s+)?the\s+\w+\b", re.I)
|
| 18 |
+
|
| 19 |
+
|
| 20 |
+
# a RATE ("106 calories for 8 ounces", "3 apples per 2 dollars") makes the turn a proportion problem
|
| 21 |
+
RATE = re.compile(r"\b\d+(?:\.\d+)?\s+[a-z]+\s+(?:for|per|every)\s+(?:\d+(?:\.\d+)?|a|an|one|each)\s+[a-z]+", re.I)
|
| 22 |
+
NUM = re.compile(r"(?<![\w.])\d+(?:\.\d+)?(?!\w|\.\d)") # "leg is 5." counts: a sentence-final period is not a decimal
|
| 23 |
+
|
| 24 |
+
|
| 25 |
+
def numbers(t):
|
| 26 |
+
return len(NUM.findall(str(t or "")))
|
| 27 |
+
|
| 28 |
+
|
| 29 |
+
def last_sentence(t):
|
| 30 |
+
parts = [s for s in re.split(r"(?<=[.!?;])\s+", str(t or "").strip()) if s.strip()]
|
| 31 |
+
return parts[-1] if parts else ""
|
| 32 |
+
|
| 33 |
+
|
| 34 |
+
def sentences(t):
|
| 35 |
+
return len([s for s in re.split(r"(?<=[.!?])\s+", str(t or "").strip()) if s.strip()])
|
| 36 |
+
|
| 37 |
+
|
| 38 |
+
def narrative(t):
|
| 39 |
+
"""a story-shaped or relational turn: 3+ sentences, 40+ words, or quantities defined relative to each other"""
|
| 40 |
+
t = str(t or "")
|
| 41 |
+
return sentences(t) >= 3 or len(t.split()) > 40 or RELATION.search(t) is not None or RATE.search(t) is not None
|
| 42 |
+
|
| 43 |
+
|
| 44 |
+
def short_direct(t):
|
| 45 |
+
"""a direct question an organ may decline: at most 2 sentences, at most 25 words, not narrative"""
|
| 46 |
+
t = str(t or "")
|
| 47 |
+
return sentences(t) <= 2 and len(t.split()) <= 25 and not narrative(t)
|
root/specialists/decay-r2/organ_decay_r2.py
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin/env python3
|
| 2 |
+
"""organ_decay_r2 - decay v1 with ONE change: a remaining amount is given in the mass unit the question asks for.
|
| 3 |
+
|
| 4 |
+
Found by sealed composition test C4 (research record E-20261018-0034, item c4-28): asked how many MILLIGRAMS of
|
| 5 |
+
caesium-137 remain from 80 g after 60.16 years, v1 said "About 20 g remains" - the right amount, in a unit the question
|
| 6 |
+
did not ask for, so the number given was wrong. Now, when the asking sentence names a mass unit ("in milligrams", "how
|
| 7 |
+
many kilograms") and v1's amount is in another mass unit, the amount is converted exactly (1 kg = 1,000 g = 10^6 mg =
|
| 8 |
+
10^9 micrograms) and stated first, with v1's figure kept in brackets. An asked mass unit for an amount that is not a mass
|
| 9 |
+
(atoms, moles, becquerels) is declined in-domain. Every other reply is v1's, byte for byte (invariance_v1 over the decay
|
| 10 |
+
panel: no panel item names a target unit)."""
|
| 11 |
+
from __future__ import annotations
|
| 12 |
+
|
| 13 |
+
import re
|
| 14 |
+
|
| 15 |
+
from narrow_v1 import last_sentence
|
| 16 |
+
from organ_decay_v1 import DecayOrgan
|
| 17 |
+
|
| 18 |
+
|
| 19 |
+
def g4(x):
|
| 20 |
+
"""4 significant figures without an exponent (20,000 mg, not 2e+04)"""
|
| 21 |
+
if x == 0:
|
| 22 |
+
return "0"
|
| 23 |
+
if abs(x) >= 1e4:
|
| 24 |
+
return format(round(float("%.4g" % x)), ",")
|
| 25 |
+
t = "%.4g" % x
|
| 26 |
+
return ("%.12f" % x).rstrip("0").rstrip(".") if "e" in t else t
|
| 27 |
+
|
| 28 |
+
MASS = {"mg": 1e-3, "milligram": 1e-3, "milligrams": 1e-3, "g": 1.0, "gram": 1.0, "grams": 1.0, "kg": 1e3, "kilogram": 1e3,
|
| 29 |
+
"kilograms": 1e3, "µg": 1e-6, "ug": 1e-6, "microgram": 1e-6, "micrograms": 1e-6}
|
| 30 |
+
LABEL = {1e-3: "mg", 1.0: "g", 1e3: "kg", 1e-6: "µg"}
|
| 31 |
+
ASKED = re.compile(r"\b(?:in|into|as)\s+(milligrams?|grams?|kilograms?|micrograms?|mg|kg|µg|ug|g)\b|\bhow\s+many\s+(milligrams?|grams?|kilograms?|micrograms?)\b", re.I)
|
| 32 |
+
HEAD = re.compile(r"^About (\S+) (\S+) remains")
|
| 33 |
+
|
| 34 |
+
|
| 35 |
+
class DecayR2Organ(DecayOrgan):
|
| 36 |
+
def answer(self, text, session_id="default"):
|
| 37 |
+
r = super().answer(text, session_id)
|
| 38 |
+
if not r or r.get("kind") != "remaining_amount" or r.get("status") != "answered":
|
| 39 |
+
return r
|
| 40 |
+
m = ASKED.search(last_sentence(text) or str(text or ""))
|
| 41 |
+
if not m:
|
| 42 |
+
return r
|
| 43 |
+
want = MASS[(m.group(1) or m.group(2)).lower()]
|
| 44 |
+
h = HEAD.match(str(r.get("response", "")))
|
| 45 |
+
if not h:
|
| 46 |
+
return r
|
| 47 |
+
have = MASS.get(h.group(2).lower())
|
| 48 |
+
if have is None:
|
| 49 |
+
return dict(r, kind="underspecified", status="withheld", value=None,
|
| 50 |
+
response="The question asks for a mass, but the amount given is in %s; I won't convert between them." % h.group(2))
|
| 51 |
+
if have == want:
|
| 52 |
+
return r
|
| 53 |
+
v = float(r["value"]) * have / want
|
| 54 |
+
out = dict(r, value=v)
|
| 55 |
+
out["response"] = HEAD.sub(lambda x: "About %s %s (%s %s) remains" % (g4(v), LABEL[want], x.group(1), x.group(2)), r["response"], count=1)
|
| 56 |
+
return out
|
root/specialists/decay-r2/organ_decay_v1.py
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin/env python3
|
| 2 |
+
"""organ_decay_v1 - specialist #104 (radioactive decay): how much of a sample remains after a time, how long until a given
|
| 3 |
+
fraction or amount remains, and how many half-lives have passed - for a half-life the question states, or for a named
|
| 4 |
+
isotope from the table below (half-lives: NNDC / NuDat 3, Brookhaven National Laboratory). N = N0 * (1/2)^(t/T).
|
| 5 |
+
Formula shown. Declines a question missing the time, the amount or the half-life. Returns {kind, status, response, value}."""
|
| 6 |
+
from __future__ import annotations
|
| 7 |
+
|
| 8 |
+
import math
|
| 9 |
+
import re
|
| 10 |
+
|
| 11 |
+
from narrow_v1 import last_sentence, narrative, short_direct
|
| 12 |
+
|
| 13 |
+
YEAR = 365.25 * 86400.0
|
| 14 |
+
# isotope -> (half-life in seconds, how written)
|
| 15 |
+
ISOTOPES = {
|
| 16 |
+
"carbon-14": (5730 * YEAR, r"carbon[- ]?14|c[- ]?14|14c|radiocarbon"), "uranium-238": (4.468e9 * YEAR, r"uranium[- ]?238|u[- ]?238"),
|
| 17 |
+
"uranium-235": (7.04e8 * YEAR, r"uranium[- ]?235|u[- ]?235"), "iodine-131": (8.0252 * 86400, r"iodine[- ]?131|i[- ]?131"),
|
| 18 |
+
"cobalt-60": (5.2714 * YEAR, r"cobalt[- ]?60|co[- ]?60"), "caesium-137": (30.08 * YEAR, r"c(?:a)?esium[- ]?137|cs[- ]?137"),
|
| 19 |
+
"strontium-90": (28.79 * YEAR, r"strontium[- ]?90|sr[- ]?90"), "radium-226": (1600 * YEAR, r"radium[- ]?226|ra[- ]?226"),
|
| 20 |
+
"plutonium-239": (24110 * YEAR, r"plutonium[- ]?239|pu[- ]?239"), "tritium": (12.32 * YEAR, r"tritium|hydrogen[- ]?3|h[- ]?3"),
|
| 21 |
+
"radon-222": (3.8235 * 86400, r"radon[- ]?222|rn[- ]?222|radon"), "potassium-40": (1.248e9 * YEAR, r"potassium[- ]?40|k[- ]?40"),
|
| 22 |
+
"phosphorus-32": (14.268 * 86400, r"phosphorus[- ]?32|p[- ]?32"), "technetium-99m": (6.0067 * 3600, r"technetium[- ]?99m|tc[- ]?99m"),
|
| 23 |
+
"fluorine-18": (109.77 * 60, r"fluorine[- ]?18|f[- ]?18"), "americium-241": (432.6 * YEAR, r"americium[- ]?241|am[- ]?241"),
|
| 24 |
+
}
|
| 25 |
+
ISO_RX = [(k, re.compile(r"\b(?:%s)\b" % v[1], re.I)) for k, v in ISOTOPES.items()]
|
| 26 |
+
NUM = r"(\d+(?:,\d{3})*(?:\.\d+)?)"
|
| 27 |
+
TUNITS = [(r"years?|yrs?", YEAR, "years"), (r"days?", 86400.0, "days"), (r"hours?|hrs?", 3600.0, "hours"),
|
| 28 |
+
(r"minutes?|mins?", 60.0, "minutes"), (r"seconds?|secs?|s\b", 1.0, "seconds")]
|
| 29 |
+
TIME_RX = [(re.compile(NUM + r"\s*(?:" + u + r")(?![a-z])", re.I), f, lab) for u, f, lab in TUNITS]
|
| 30 |
+
HALF_RX = re.compile(r"half[- ]?life\s+(?:of|is|was|equal to|=)?\s*(?:about\s+)?" + NUM + r"\s*(years?|yrs?|days?|hours?|hrs?|minutes?|mins?|seconds?|s)\b"
|
| 31 |
+
r"|" + NUM + r"[- ](years?|days?|hours?|minutes?|seconds?)\s+half[- ]?life", re.I)
|
| 32 |
+
AMOUNT = re.compile(NUM + r"\s*(g|grams?|mg|milligrams?|kg|kilograms?|µg|micrograms?|atoms|nuclei|mol|moles?|becquerels?|bq|units|counts? per minute|cpm)\b", re.I)
|
| 33 |
+
FRACTION_WORDS = {"half": 0.5, "a quarter": 0.25, "one quarter": 0.25, "an eighth": 0.125, "one eighth": 0.125,
|
| 34 |
+
"a sixteenth": 0.0625, "one sixteenth": 0.0625, "a tenth": 0.1, "one tenth": 0.1, "a hundredth": 0.01}
|
| 35 |
+
|
| 36 |
+
|
| 37 |
+
def g4(x):
|
| 38 |
+
return "%.4g" % x
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
def _n(s):
|
| 42 |
+
return float(s.replace(",", ""))
|
| 43 |
+
|
| 44 |
+
|
| 45 |
+
def _tunit(word):
|
| 46 |
+
for u, f, lab in TUNITS:
|
| 47 |
+
if re.fullmatch(u, word, re.I):
|
| 48 |
+
return f, lab
|
| 49 |
+
return None
|
| 50 |
+
|
| 51 |
+
|
| 52 |
+
class DecayOrgan:
|
| 53 |
+
def _say(self, kind, text, value=None, status="answered"):
|
| 54 |
+
return {"kind": kind, "status": status, "response": text, "value": value}
|
| 55 |
+
|
| 56 |
+
def _half_life(self, t):
|
| 57 |
+
m = HALF_RX.search(t)
|
| 58 |
+
if m:
|
| 59 |
+
v, u = (m.group(1), m.group(2)) if m.group(1) else (m.group(3), m.group(4))
|
| 60 |
+
tu = _tunit(u)
|
| 61 |
+
if tu and _n(v) > 0:
|
| 62 |
+
return _n(v) * tu[0], "a half-life of %s %s" % (g4(_n(v)), tu[1]), m.span()
|
| 63 |
+
found = [k for k, rx in ISO_RX if rx.search(t)]
|
| 64 |
+
if len(found) == 1:
|
| 65 |
+
T = ISOTOPES[found[0]][0]
|
| 66 |
+
return T, "%s (half-life %s)" % (found[0], self._fmt_t(T)), None
|
| 67 |
+
return None
|
| 68 |
+
|
| 69 |
+
@staticmethod
|
| 70 |
+
def _fmt_t(sec):
|
| 71 |
+
for u, f, lab in TUNITS:
|
| 72 |
+
if sec >= f:
|
| 73 |
+
return "%s %s" % (g4(sec / f), lab)
|
| 74 |
+
return "%s seconds" % g4(sec)
|
| 75 |
+
|
| 76 |
+
def answer(self, text, session_id="default"):
|
| 77 |
+
t = " ".join(str(text or "").split())
|
| 78 |
+
if not t or narrative(t):
|
| 79 |
+
return None
|
| 80 |
+
if not re.search(r"\bhalf[- ]?li(?:fe|ves)\b|\bdecay\w*\b|\bradioactive\b|\bisotope\b|\bremain", t, re.I):
|
| 81 |
+
return None
|
| 82 |
+
hl = self._half_life(t)
|
| 83 |
+
if hl is None:
|
| 84 |
+
return None
|
| 85 |
+
T, what, span = hl
|
| 86 |
+
rest = t if span is None else t[:span[0]] + " " + t[span[1]:]
|
| 87 |
+
ask = last_sentence(t)
|
| 88 |
+
times = [(_n(m.group(1)) * f, lab, _n(m.group(1))) for rx, f, lab in TIME_RX for m in rx.finditer(rest)]
|
| 89 |
+
amounts = AMOUNT.findall(rest)
|
| 90 |
+
frac = None
|
| 91 |
+
mf = re.search(r"\b(\d+(?:\.\d+)?)\s*(?:%|percent\b)", ask, re.I)
|
| 92 |
+
if mf:
|
| 93 |
+
frac = _n(mf.group(1)) / 100.0
|
| 94 |
+
else:
|
| 95 |
+
for w, v in FRACTION_WORDS.items():
|
| 96 |
+
if re.search(r"\b%s\b" % w, ask, re.I) and re.search(r"\bhow long|\bwhen\b|\btime\b", ask, re.I):
|
| 97 |
+
frac = v
|
| 98 |
+
break
|
| 99 |
+
# how long until a fraction (or amount) remains
|
| 100 |
+
if re.search(r"\bhow long\b|\bhow many (?:years|days|hours|minutes|seconds)\b|\bwhen\b|\btime (?:will|does|it)", ask, re.I) and not times:
|
| 101 |
+
if frac is None and len(amounts) == 2:
|
| 102 |
+
a0, a1 = _n(amounts[0][0]), _n(amounts[1][0])
|
| 103 |
+
if a0 > a1 > 0 and amounts[0][1].lower()[:2] == amounts[1][1].lower()[:2]:
|
| 104 |
+
frac = a1 / a0
|
| 105 |
+
if frac is None or not (0 < frac < 1):
|
| 106 |
+
return self._need("the fraction or amount that should remain", t)
|
| 107 |
+
tt = T * math.log(1 / frac, 2)
|
| 108 |
+
mu = re.search(r"\bhow many (years|days|hours|minutes|seconds)\b", ask, re.I)
|
| 109 |
+
shown = ("%s %s" % (g4(tt / _tunit(mu.group(1))[0]), mu.group(1).lower())) if mu else self._fmt_t(tt)
|
| 110 |
+
return self._say("time_to_fraction", "It takes about %s for %s of the sample to remain (t = T·log₂(1/f) = %s halvings of %s)." % (
|
| 111 |
+
shown, g4(frac), g4(math.log(1 / frac, 2)), what), tt)
|
| 112 |
+
if re.search(r"\bhow many half[- ]?lives\b", ask, re.I):
|
| 113 |
+
if len(times) != 1:
|
| 114 |
+
return self._need("the elapsed time", t)
|
| 115 |
+
n = times[0][0] / T
|
| 116 |
+
return self._say("half_lives", "That is about %s half-lives (t/T for %s)." % (g4(n), what), n)
|
| 117 |
+
if re.search(r"\b(?:remain\w*|left|still)\b", ask, re.I):
|
| 118 |
+
if len(times) != 1:
|
| 119 |
+
return self._need("the elapsed time", t)
|
| 120 |
+
f = 0.5 ** (times[0][0] / T)
|
| 121 |
+
if len(amounts) == 1:
|
| 122 |
+
a0, unit = _n(amounts[0][0]), amounts[0][1]
|
| 123 |
+
return self._say("remaining_amount", "About %s %s remains after %s %s (N = N₀·(1/2)^(t/T) = %s × %s, %s)." % (
|
| 124 |
+
g4(a0 * f), unit, g4(times[0][2]), times[0][1], g4(a0), g4(f), what), a0 * f)
|
| 125 |
+
if re.search(r"\b(?:fraction|percent|percentage|proportion|how much of)\b", ask, re.I) and not amounts:
|
| 126 |
+
pct = re.search(r"\bpercent|percentage\b", ask, re.I)
|
| 127 |
+
return self._say("remaining_fraction", "The remaining fraction is about %s (%s%%) after %s %s ((1/2)^(t/T), %s)." % (
|
| 128 |
+
g4(f), g4(100 * f), g4(times[0][2]), times[0][1], what), 100 * f if pct else f)
|
| 129 |
+
return self._need("the starting amount", t)
|
| 130 |
+
return None
|
| 131 |
+
|
| 132 |
+
def _need(self, what, t):
|
| 133 |
+
if not short_direct(t):
|
| 134 |
+
return None
|
| 135 |
+
return self._say("underspecified", "I need %s to compute that; I won't assume it." % what, status="withheld")
|
root/specialists/decay-r2/verdict_dev.json
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"id": "decay",
|
| 3 |
+
"name": "Oracle7 Radioactive Decay",
|
| 4 |
+
"tier": "A",
|
| 5 |
+
"split": "dev",
|
| 6 |
+
"head": "oracle_release_runtime_w524",
|
| 7 |
+
"time": "2026-10-08T22:24:16Z",
|
| 8 |
+
"domain": {
|
| 9 |
+
"head": {
|
| 10 |
+
"correct": 1,
|
| 11 |
+
"false_yes": 1,
|
| 12 |
+
"wrong": 4,
|
| 13 |
+
"n": 42,
|
| 14 |
+
"p50_ms": 122.37,
|
| 15 |
+
"fails": [
|
| 16 |
+
[
|
| 17 |
+
"remaining_amount",
|
| 18 |
+
"A sample has 50 g of americium-241. How much remains after 432.6 years",
|
| 19 |
+
"act:clarify|vessel:receipt",
|
| 20 |
+
"I didn't fully parse that, so I won't guess. I can summarize a topic, compare two things, "
|
| 21 |
+
],
|
| 22 |
+
[
|
| 23 |
+
"remaining_amount",
|
| 24 |
+
"A substance has a half-life of 12 days. How much of 40 mg remains afte",
|
| 25 |
+
"act:clarify|vessel:receipt",
|
| 26 |
+
"I didn't fully parse that, so I won't guess. I can summarize a topic, compare two things, "
|
| 27 |
+
],
|
| 28 |
+
[
|
| 29 |
+
"remaining_fraction",
|
| 30 |
+
"What fraction of technetium-99m remains after 12.01 hours?",
|
| 31 |
+
"act:clarify|vessel:receipt",
|
| 32 |
+
"I didn't fully parse that, so I won't guess. I can summarize a topic, compare two things, "
|
| 33 |
+
],
|
| 34 |
+
[
|
| 35 |
+
"time_to_fraction",
|
| 36 |
+
"How many years until only 50% of a sample of tritium remains?",
|
| 37 |
+
"act:clarify|vessel:receipt",
|
| 38 |
+
"I didn't fully parse that, so I won't guess. I can summarize a topic, compare two things, "
|
| 39 |
+
],
|
| 40 |
+
[
|
| 41 |
+
"half_lives",
|
| 42 |
+
"How many half-lives of carbon-14 pass in 11460 years?",
|
| 43 |
+
"act:clarify|vessel:receipt",
|
| 44 |
+
"I didn't fully parse that, so I won't guess. I can summarize a topic, compare two things, "
|
| 45 |
+
],
|
| 46 |
+
[
|
| 47 |
+
"remaining_amount",
|
| 48 |
+
"A sample has 100 g of caesium-137. How much remains after 15.04 years?",
|
| 49 |
+
"act:clarify|vessel:receipt",
|
| 50 |
+
"I didn't fully parse that, so I won't guess. I can summarize a topic, compare two things, "
|
| 51 |
+
],
|
| 52 |
+
[
|
| 53 |
+
"remaining_amount",
|
| 54 |
+
"A substance has a half-life of 8 days. How much of 40 mg remains after",
|
| 55 |
+
"act:clarify|vessel:receipt",
|
| 56 |
+
"I didn't fully parse that, so I won't guess. I can summarize a topic, compare two things, "
|
| 57 |
+
],
|
| 58 |
+
[
|
| 59 |
+
"remaining_fraction",
|
| 60 |
+
"What fraction of radon-222 remains after 11.47 days?",
|
| 61 |
+
"act:clarify|vessel:receipt",
|
| 62 |
+
"I didn't fully parse that, so I won't guess. I can summarize a topic, compare two things, "
|
| 63 |
+
]
|
| 64 |
+
]
|
| 65 |
+
},
|
| 66 |
+
"spec": {
|
| 67 |
+
"correct": 41,
|
| 68 |
+
"false_yes": 1,
|
| 69 |
+
"wrong": 0,
|
| 70 |
+
"n": 42,
|
| 71 |
+
"p50_ms": 0.07,
|
| 72 |
+
"fails": [
|
| 73 |
+
[
|
| 74 |
+
"decline",
|
| 75 |
+
"How much carbon-14 remains after 1000 years?",
|
| 76 |
+
"specialist_call>specialist:geology>fract",
|
| 77 |
+
"The fraction remaining is 0.8861 (88.6062%; (1/2)^(1000 years / 5730 years); carbon-14, 5,"
|
| 78 |
+
]
|
| 79 |
+
]
|
| 80 |
+
}
|
| 81 |
+
},
|
| 82 |
+
"core": {
|
| 83 |
+
"head": {
|
| 84 |
+
"correct": 149,
|
| 85 |
+
"false_yes": 0
|
| 86 |
+
},
|
| 87 |
+
"spec": {
|
| 88 |
+
"correct": 149,
|
| 89 |
+
"false_yes": 0
|
| 90 |
+
},
|
| 91 |
+
"n": 400,
|
| 92 |
+
"swept_in": 0,
|
| 93 |
+
"taken_by_specialist": []
|
| 94 |
+
},
|
| 95 |
+
"self": [
|
| 96 |
+
{
|
| 97 |
+
"q": "Who are you?",
|
| 98 |
+
"same": true
|
| 99 |
+
},
|
| 100 |
+
{
|
| 101 |
+
"q": "What are you?",
|
| 102 |
+
"same": true
|
| 103 |
+
},
|
| 104 |
+
{
|
| 105 |
+
"q": "Are you a human?",
|
| 106 |
+
"same": true
|
| 107 |
+
},
|
| 108 |
+
{
|
| 109 |
+
"q": "What do you value?",
|
| 110 |
+
"same": true
|
| 111 |
+
},
|
| 112 |
+
{
|
| 113 |
+
"q": "Are you conscious?",
|
| 114 |
+
"same": true
|
| 115 |
+
}
|
| 116 |
+
],
|
| 117 |
+
"store_mb": 0.01,
|
| 118 |
+
"decision": "DEV-PASS",
|
| 119 |
+
"reasons": []
|
| 120 |
+
}
|
root/specialists/decay-r2/verdict_heldout.json
ADDED
|
@@ -0,0 +1,162 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"id": "decay",
|
| 3 |
+
"name": "Oracle7 Radioactive Decay",
|
| 4 |
+
"tier": "A",
|
| 5 |
+
"split": "heldout",
|
| 6 |
+
"head": "oracle_release_runtime_w524",
|
| 7 |
+
"time": "2026-10-08T22:29:58Z",
|
| 8 |
+
"domain": {
|
| 9 |
+
"head": {
|
| 10 |
+
"correct": 2,
|
| 11 |
+
"false_yes": 0,
|
| 12 |
+
"wrong": 1,
|
| 13 |
+
"n": 42,
|
| 14 |
+
"p50_ms": 125.85,
|
| 15 |
+
"fails": [
|
| 16 |
+
[
|
| 17 |
+
"remaining_amount",
|
| 18 |
+
"Starting with 250 g of phosphorus-32, how many grams are left after 7.",
|
| 19 |
+
"arb:timeline->capability:timeline|vessel",
|
| 20 |
+
"A timeline needs at least two dated statements; the admitted material on 250 contains 0.\n\n"
|
| 21 |
+
],
|
| 22 |
+
[
|
| 23 |
+
"remaining_amount",
|
| 24 |
+
"An isotope's half-life is 8 days. If you begin with 40 mg, how much is",
|
| 25 |
+
"arb:timeline->capability:timeline|vessel",
|
| 26 |
+
"A timeline needs at least two dated statements; the admitted material on half-life contain"
|
| 27 |
+
],
|
| 28 |
+
[
|
| 29 |
+
"remaining_fraction",
|
| 30 |
+
"After 865.2 years, what fraction of the original americium-241 is stil",
|
| 31 |
+
"act:clarify|vessel:receipt",
|
| 32 |
+
"I didn't fully parse that, so I won't guess. I can summarize a topic, compare two things, "
|
| 33 |
+
],
|
| 34 |
+
[
|
| 35 |
+
"time_to_fraction",
|
| 36 |
+
"For plutonium-239, how many years does it take until 1% of it remains?",
|
| 37 |
+
"act:clarify_specific",
|
| 38 |
+
"What does \"it\" refer to? Nothing earlier in this conversation names it. Tell me the name."
|
| 39 |
+
],
|
| 40 |
+
[
|
| 41 |
+
"half_lives",
|
| 42 |
+
"In 143.95 years, how many half-lives of strontium-90 have gone by?",
|
| 43 |
+
"act:clarify|vessel:receipt",
|
| 44 |
+
"I didn't fully parse that, so I won't guess. I can summarize a topic, compare two things, "
|
| 45 |
+
],
|
| 46 |
+
[
|
| 47 |
+
"remaining_amount",
|
| 48 |
+
"Starting with 800 g of tritium, how many grams are left after 24.64 ye",
|
| 49 |
+
"arb:timeline->capability:timeline|vessel",
|
| 50 |
+
"A timeline needs at least two dated statements; the admitted material on 800 contains 0.\n\n"
|
| 51 |
+
],
|
| 52 |
+
[
|
| 53 |
+
"remaining_amount",
|
| 54 |
+
"An isotope's half-life is 12 days. If you begin with 200 mg, how much ",
|
| 55 |
+
"arb:timeline->capability:timeline|vessel",
|
| 56 |
+
"A timeline needs at least two dated statements; the admitted material on half-life contain"
|
| 57 |
+
],
|
| 58 |
+
[
|
| 59 |
+
"remaining_fraction",
|
| 60 |
+
"After 109.77 minutes, what fraction of the original fluorine-18 is sti",
|
| 61 |
+
"act:clarify|vessel:receipt",
|
| 62 |
+
"I didn't fully parse that, so I won't guess. I can summarize a topic, compare two things, "
|
| 63 |
+
]
|
| 64 |
+
]
|
| 65 |
+
},
|
| 66 |
+
"spec": {
|
| 67 |
+
"correct": 34,
|
| 68 |
+
"false_yes": 0,
|
| 69 |
+
"wrong": 1,
|
| 70 |
+
"n": 42,
|
| 71 |
+
"p50_ms": 0.22,
|
| 72 |
+
"fails": [
|
| 73 |
+
[
|
| 74 |
+
"remaining_amount",
|
| 75 |
+
"Starting with 250 g of phosphorus-32, how many grams are left after 7.",
|
| 76 |
+
"arb:timeline->capability:timeline|vessel",
|
| 77 |
+
"A timeline needs at least two dated statements; the admitted material on 250 contains 0.\n\n"
|
| 78 |
+
],
|
| 79 |
+
[
|
| 80 |
+
"remaining_amount",
|
| 81 |
+
"Starting with 800 g of tritium, how many grams are left after 24.64 ye",
|
| 82 |
+
"arb:timeline->capability:timeline|vessel",
|
| 83 |
+
"A timeline needs at least two dated statements; the admitted material on 800 contains 0.\n\n"
|
| 84 |
+
],
|
| 85 |
+
[
|
| 86 |
+
"remaining_amount",
|
| 87 |
+
"Starting with 100 g of fluorine-18, how many grams are left after 658.",
|
| 88 |
+
"arb:timeline->capability:timeline|vessel",
|
| 89 |
+
"A timeline needs at least two dated statements; the admitted material on 100 contains 1.\n\n"
|
| 90 |
+
],
|
| 91 |
+
[
|
| 92 |
+
"remaining_amount",
|
| 93 |
+
"Starting with 250 g of strontium-90, how many grams are left after 100",
|
| 94 |
+
"arb:timeline->capability:timeline|vessel",
|
| 95 |
+
"A timeline needs at least two dated statements; the admitted material on 250 contains 0.\n\n"
|
| 96 |
+
],
|
| 97 |
+
[
|
| 98 |
+
"remaining_amount",
|
| 99 |
+
"Starting with 10 g of americium-241, how many grams are left after 216",
|
| 100 |
+
"arb:timeline->capability:timeline|vessel",
|
| 101 |
+
"A timeline needs at least two dated statements; the admitted material on 10 contains 0.\n\nY"
|
| 102 |
+
],
|
| 103 |
+
[
|
| 104 |
+
"remaining_amount",
|
| 105 |
+
"Starting with 800 g of caesium-137, how many grams are left after 30.0",
|
| 106 |
+
"arb:timeline->capability:timeline|vessel",
|
| 107 |
+
"A timeline needs at least two dated statements; the admitted material on 800 contains 0.\n\n"
|
| 108 |
+
],
|
| 109 |
+
[
|
| 110 |
+
"remaining_amount",
|
| 111 |
+
"Starting with 10 g of technetium-99m, how many grams are left after 6.",
|
| 112 |
+
"arb:timeline->capability:timeline|vessel",
|
| 113 |
+
"A timeline needs at least two dated statements; the admitted material on 10 contains 0.\n\nY"
|
| 114 |
+
],
|
| 115 |
+
[
|
| 116 |
+
"remaining_amount",
|
| 117 |
+
"Starting with 800 g of carbon-14, how many grams are left after 5730 y",
|
| 118 |
+
"specialist_call>specialist:geology>fract",
|
| 119 |
+
"The fraction remaining is 0.5 (50%; (1/2)^(5730 years / 5730 years); carbon-14, 5,730 year"
|
| 120 |
+
]
|
| 121 |
+
]
|
| 122 |
+
}
|
| 123 |
+
},
|
| 124 |
+
"core": {
|
| 125 |
+
"head": {
|
| 126 |
+
"correct": 149,
|
| 127 |
+
"false_yes": 0
|
| 128 |
+
},
|
| 129 |
+
"spec": {
|
| 130 |
+
"correct": 149,
|
| 131 |
+
"false_yes": 0
|
| 132 |
+
},
|
| 133 |
+
"n": 400,
|
| 134 |
+
"swept_in": 0,
|
| 135 |
+
"taken_by_specialist": []
|
| 136 |
+
},
|
| 137 |
+
"self": [
|
| 138 |
+
{
|
| 139 |
+
"q": "Who are you?",
|
| 140 |
+
"same": true
|
| 141 |
+
},
|
| 142 |
+
{
|
| 143 |
+
"q": "What are you?",
|
| 144 |
+
"same": true
|
| 145 |
+
},
|
| 146 |
+
{
|
| 147 |
+
"q": "Are you a human?",
|
| 148 |
+
"same": true
|
| 149 |
+
},
|
| 150 |
+
{
|
| 151 |
+
"q": "What do you value?",
|
| 152 |
+
"same": true
|
| 153 |
+
},
|
| 154 |
+
{
|
| 155 |
+
"q": "Are you conscious?",
|
| 156 |
+
"same": true
|
| 157 |
+
}
|
| 158 |
+
],
|
| 159 |
+
"store_mb": 0.01,
|
| 160 |
+
"decision": "ADMIT",
|
| 161 |
+
"reasons": []
|
| 162 |
+
}
|