mons-rust 0.1.123 → 0.1.124

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -7,35 +7,36 @@ or
7
7
 
8
8
  ## automove
9
9
 
10
- The active automove workflow lives here:
10
+ Canonical automove workflow:
11
11
 
12
- - canonical workflow: `HOW_TO_ITERATE_ON_AUTOMOVE.md`
13
- - ideas backlog: `AUTOMOVE_IDEAS.md`
14
- - compatibility entrypoint: `docs/automove-experiments.md`
12
+ - runbook: `HOW_TO_ITERATE_ON_AUTOMOVE.md`
13
+ - active backlog: `AUTOMOVE_IDEAS.md`
15
14
  - durable lessons: `docs/automove-knowledge.md`
16
- - retired profile archive: `docs/automove-archive.md`
15
+ - archive: `docs/automove-archive.md`
16
+ - compatibility pointer: `docs/automove-experiments.md`
17
17
 
18
- Useful scripts:
18
+ Session-start commands:
19
19
 
20
20
  - `./scripts/run-automove-experiment.sh guardrails <candidate>`
21
- - `./scripts/run-automove-experiment.sh runtime-preflight <candidate>`
22
- - `./scripts/run-automove-experiment.sh triage-calibrate [reply_risk|opponent_mana|supermana|all]`
23
- - `./scripts/run-automove-experiment.sh preflight <candidate>`
24
21
  - `SMART_TRIAGE_SURFACE=<surface> ./scripts/run-automove-experiment.sh triage <candidate>`
25
- - `SMART_PROMOTION_TARGET_MODE=<fast|normal> ./scripts/run-automove-experiment.sh audit-screen <candidate>`
26
- - `SMART_PROMOTION_TARGET_MODE=<fast|normal> ./scripts/run-automove-experiment.sh fast-screen <candidate>`
27
- - `SMART_PROMOTION_TARGET_MODE=<fast|normal> ./scripts/run-automove-experiment.sh progressive <candidate>`
28
- - `SMART_PROMOTION_TARGET_MODE=<fast|normal> ./scripts/run-automove-experiment.sh ladder <candidate>`
29
22
  - `SMART_TRIAGE_SURFACE=<opening_reply|primary_pro> ./scripts/run-automove-experiment.sh pro-triage <candidate>`
30
- - `./scripts/run-automove-experiment.sh pro-audit-screen <candidate>`
23
+ - `./scripts/run-automove-experiment.sh runtime-preflight <candidate>`
24
+ - `SMART_PROMOTION_TARGET_MODE=<fast|normal> ./scripts/run-automove-experiment.sh fast-screen <candidate>`
31
25
  - `./scripts/run-automove-experiment.sh pro-fast-screen <candidate>`
32
- - `./scripts/run-automove-experiment.sh pro-progressive <candidate>`
33
- - `./scripts/run-automove-experiment.sh pro-ladder <candidate>`
34
- - `./scripts/run-automove-experiment.sh pre-screen <candidate>`
35
- - `./scripts/run-automove-experiment.sh pro-pre-screen <candidate>`
36
- - `./scripts/clean-experiment-artifacts.sh`
26
+ - `./scripts/clean-experiment-artifacts.sh --dry-run`
37
27
 
38
- Run `triage-calibrate` before candidate work on `reply_risk`, `opponent_mana`, or `supermana`. Then use `guardrails -> triage -> runtime-preflight` so weak ideas die before the expensive CPU gate. `preflight` still exists as the old all-in-one wrapper. Most candidates should die at `triage`, `pro-triage`, or the first earned duel stage. For mode-specific `fast` or `normal` ideas, run duel stages with `SMART_PROMOTION_TARGET_MODE=<fast|normal>` so the target mode is the improvement bar and the other client mode is only a non-regression check. Use `audit-screen` or `pro-audit-screen` only as occasional spot checks for clean triage rejects. `pre-screen` and `pro-pre-screen` remain available only as legacy noise diagnostics. Unless documented otherwise, new candidates should be deltas on `runtime_current`.
28
+ Default artifact layout:
29
+
30
+ - logs: `target/experiment-runs/<candidate>/`
31
+ - workflow-only logs: `target/experiment-runs/misc/`
32
+ - runtime-preflight stamps: `target/experiment-stamps/`
33
+
34
+ Compatibility notes:
35
+
36
+ - `preflight`, `pre-screen`, and `pro-pre-screen` still exist, but they are legacy diagnostics.
37
+ - `audit-screen` and `pro-audit-screen` are spot checks for clean triage rejects, not promotion evidence.
38
+ - Unless a note says otherwise, new candidates should branch from `runtime_current`.
39
+ - Shipping runtime note: the package release ships `runtime_current`; `runtime_pro_turn_engine_v30` is the retained Pro frontier for offline experiments, and `runtime_pro_turn_engine_v1` remains reference-only history.
39
40
 
40
41
  ## rules-tests runner
41
42
 
@@ -67,6 +68,38 @@ Pack a directory back into chunks:
67
68
 
68
69
  `./scripts/pack-rules-tests.sh --dir /tmp/rules-tests-work --chunks-dir ./rules-tests-chunks --chunk-size 100000`
69
70
 
71
+ ## repo cleanup
72
+
73
+ `./repo-clean.sh`
74
+
75
+ - switches back to a kept branch (`main`, `master`, or `keep/*`) before deleting disposable branches
76
+ - removes non-primary worktrees, clears stashes, deletes non-kept local branches, and prunes non-kept remote branches
77
+ - use `./repo-clean.sh --local-only` to skip remote branch deletion
78
+ - use `keep/<name>` for any branch you want to protect from cleanup
79
+
70
80
  ## publishing to npm
71
81
 
72
82
  `./publish.sh`
83
+
84
+ Release checklist:
85
+
86
+ - Review `git status` before publish and confirm only intentional committed changes are present.
87
+ - Confirm `runtime_current` is still the shipping automove path.
88
+ - Confirm retained Pro experiment frontiers (`runtime_pro_turn_engine_v30` and newer candidate-only follow-ups) remain fenced off from production.
89
+ - Run `cargo test`.
90
+ - Run `cargo test --release --lib smart_automove_release_opening_black_reply_speed_gate -- --ignored --nocapture`.
91
+ - Run `cargo test --release --lib smart_automove_release_mixed_runtime_speed_gate -- --ignored --nocapture`.
92
+ - Commit valuable changes before version bump / publish.
93
+ - Clean disposable experiment artifacts after validation with `./scripts/clean-experiment-artifacts.sh`.
94
+
95
+ Production blockers:
96
+
97
+ - build/test failures
98
+ - release speed gate failures
99
+ - any regression that enables turn-engine in shipping `runtime_current`
100
+
101
+ Non-blocking retained experiment state:
102
+
103
+ - retained Pro frontier profiles (`runtime_pro_turn_engine_v30`, candidate-only follow-ups, and `runtime_pro_turn_engine_v1` as reference history) plus ignored probes
104
+ - experiment workflow/logging helpers
105
+ - compressed automove backlog / knowledge / archive docs
package/mons-rust.d.ts CHANGED
@@ -10,16 +10,20 @@
10
10
  export function winner(fen_w: string, fen_b: string, flat_moves_string_w: string, flat_moves_string_b: string): string;
11
11
  /**
12
12
  */
13
- export enum Color {
14
- White = 0,
15
- Black = 1,
13
+ export enum ItemModelKind {
14
+ Mon = 0,
15
+ Mana = 1,
16
+ MonWithMana = 2,
17
+ MonWithConsumable = 3,
18
+ Consumable = 4,
16
19
  }
17
20
  /**
18
21
  */
19
- export enum Modifier {
20
- SelectPotion = 0,
21
- SelectBomb = 1,
22
- Cancel = 2,
22
+ export enum AvailableMoveKind {
23
+ MonMove = 0,
24
+ ManaMove = 1,
25
+ Action = 2,
26
+ Potion = 3,
23
27
  }
24
28
  /**
25
29
  */
@@ -32,21 +36,16 @@ export enum MonKind {
32
36
  }
33
37
  /**
34
38
  */
35
- export enum AvailableMoveKind {
36
- MonMove = 0,
37
- ManaMove = 1,
38
- Action = 2,
39
- Potion = 3,
39
+ export enum Color {
40
+ White = 0,
41
+ Black = 1,
40
42
  }
41
43
  /**
42
44
  */
43
- export enum SquareModelKind {
44
- Regular = 0,
45
- ConsumableBase = 1,
46
- SupermanaBase = 2,
47
- ManaBase = 3,
48
- ManaPool = 4,
49
- MonBase = 5,
45
+ export enum Consumable {
46
+ Potion = 0,
47
+ Bomb = 1,
48
+ BombOrPotion = 2,
50
49
  }
51
50
  /**
52
51
  */
@@ -64,19 +63,6 @@ export enum ManaKind {
64
63
  }
65
64
  /**
66
65
  */
67
- export enum NextInputKind {
68
- MonMove = 0,
69
- ManaMove = 1,
70
- MysticAction = 2,
71
- DemonAction = 3,
72
- DemonAdditionalStep = 4,
73
- SpiritTargetCapture = 5,
74
- SpiritTargetMove = 6,
75
- SelectConsumable = 7,
76
- BombAttack = 8,
77
- }
78
- /**
79
- */
80
66
  export enum EventModelKind {
81
67
  MonMove = 0,
82
68
  ManaMove = 1,
@@ -101,19 +87,33 @@ export enum EventModelKind {
101
87
  }
102
88
  /**
103
89
  */
104
- export enum ItemModelKind {
105
- Mon = 0,
106
- Mana = 1,
107
- MonWithMana = 2,
108
- MonWithConsumable = 3,
109
- Consumable = 4,
90
+ export enum SquareModelKind {
91
+ Regular = 0,
92
+ ConsumableBase = 1,
93
+ SupermanaBase = 2,
94
+ ManaBase = 3,
95
+ ManaPool = 4,
96
+ MonBase = 5,
110
97
  }
111
98
  /**
112
99
  */
113
- export enum Consumable {
114
- Potion = 0,
115
- Bomb = 1,
116
- BombOrPotion = 2,
100
+ export enum Modifier {
101
+ SelectPotion = 0,
102
+ SelectBomb = 1,
103
+ Cancel = 2,
104
+ }
105
+ /**
106
+ */
107
+ export enum NextInputKind {
108
+ MonMove = 0,
109
+ ManaMove = 1,
110
+ MysticAction = 2,
111
+ DemonAction = 3,
112
+ DemonAdditionalStep = 4,
113
+ SpiritTargetCapture = 5,
114
+ SpiritTargetMove = 6,
115
+ SelectConsumable = 7,
116
+ BombAttack = 8,
117
117
  }
118
118
  /**
119
119
  */
package/mons-rust.js CHANGED
@@ -201,19 +201,19 @@ function handleError(f, args) {
201
201
  }
202
202
  /**
203
203
  */
204
- module.exports.Color = Object.freeze({ White:0,"0":"White",Black:1,"1":"Black", });
204
+ module.exports.ItemModelKind = Object.freeze({ Mon:0,"0":"Mon",Mana:1,"1":"Mana",MonWithMana:2,"2":"MonWithMana",MonWithConsumable:3,"3":"MonWithConsumable",Consumable:4,"4":"Consumable", });
205
205
  /**
206
206
  */
207
- module.exports.Modifier = Object.freeze({ SelectPotion:0,"0":"SelectPotion",SelectBomb:1,"1":"SelectBomb",Cancel:2,"2":"Cancel", });
207
+ module.exports.AvailableMoveKind = Object.freeze({ MonMove:0,"0":"MonMove",ManaMove:1,"1":"ManaMove",Action:2,"2":"Action",Potion:3,"3":"Potion", });
208
208
  /**
209
209
  */
210
210
  module.exports.MonKind = Object.freeze({ Demon:0,"0":"Demon",Drainer:1,"1":"Drainer",Angel:2,"2":"Angel",Spirit:3,"3":"Spirit",Mystic:4,"4":"Mystic", });
211
211
  /**
212
212
  */
213
- module.exports.AvailableMoveKind = Object.freeze({ MonMove:0,"0":"MonMove",ManaMove:1,"1":"ManaMove",Action:2,"2":"Action",Potion:3,"3":"Potion", });
213
+ module.exports.Color = Object.freeze({ White:0,"0":"White",Black:1,"1":"Black", });
214
214
  /**
215
215
  */
216
- module.exports.SquareModelKind = Object.freeze({ Regular:0,"0":"Regular",ConsumableBase:1,"1":"ConsumableBase",SupermanaBase:2,"2":"SupermanaBase",ManaBase:3,"3":"ManaBase",ManaPool:4,"4":"ManaPool",MonBase:5,"5":"MonBase", });
216
+ module.exports.Consumable = Object.freeze({ Potion:0,"0":"Potion",Bomb:1,"1":"Bomb",BombOrPotion:2,"2":"BombOrPotion", });
217
217
  /**
218
218
  */
219
219
  module.exports.OutputModelKind = Object.freeze({ InvalidInput:0,"0":"InvalidInput",LocationsToStartFrom:1,"1":"LocationsToStartFrom",NextInputOptions:2,"2":"NextInputOptions",Events:3,"3":"Events", });
@@ -222,16 +222,16 @@ module.exports.OutputModelKind = Object.freeze({ InvalidInput:0,"0":"InvalidInpu
222
222
  module.exports.ManaKind = Object.freeze({ Regular:0,"0":"Regular",Supermana:1,"1":"Supermana", });
223
223
  /**
224
224
  */
225
- module.exports.NextInputKind = Object.freeze({ MonMove:0,"0":"MonMove",ManaMove:1,"1":"ManaMove",MysticAction:2,"2":"MysticAction",DemonAction:3,"3":"DemonAction",DemonAdditionalStep:4,"4":"DemonAdditionalStep",SpiritTargetCapture:5,"5":"SpiritTargetCapture",SpiritTargetMove:6,"6":"SpiritTargetMove",SelectConsumable:7,"7":"SelectConsumable",BombAttack:8,"8":"BombAttack", });
225
+ module.exports.EventModelKind = Object.freeze({ MonMove:0,"0":"MonMove",ManaMove:1,"1":"ManaMove",ManaScored:2,"2":"ManaScored",MysticAction:3,"3":"MysticAction",DemonAction:4,"4":"DemonAction",DemonAdditionalStep:5,"5":"DemonAdditionalStep",SpiritTargetMove:6,"6":"SpiritTargetMove",PickupBomb:7,"7":"PickupBomb",PickupPotion:8,"8":"PickupPotion",PickupMana:9,"9":"PickupMana",MonFainted:10,"10":"MonFainted",ManaDropped:11,"11":"ManaDropped",SupermanaBackToBase:12,"12":"SupermanaBackToBase",BombAttack:13,"13":"BombAttack",MonAwake:14,"14":"MonAwake",BombExplosion:15,"15":"BombExplosion",NextTurn:16,"16":"NextTurn",GameOver:17,"17":"GameOver",Takeback:18,"18":"Takeback",UsePotion:19,"19":"UsePotion", });
226
226
  /**
227
227
  */
228
- module.exports.EventModelKind = Object.freeze({ MonMove:0,"0":"MonMove",ManaMove:1,"1":"ManaMove",ManaScored:2,"2":"ManaScored",MysticAction:3,"3":"MysticAction",DemonAction:4,"4":"DemonAction",DemonAdditionalStep:5,"5":"DemonAdditionalStep",SpiritTargetMove:6,"6":"SpiritTargetMove",PickupBomb:7,"7":"PickupBomb",PickupPotion:8,"8":"PickupPotion",PickupMana:9,"9":"PickupMana",MonFainted:10,"10":"MonFainted",ManaDropped:11,"11":"ManaDropped",SupermanaBackToBase:12,"12":"SupermanaBackToBase",BombAttack:13,"13":"BombAttack",MonAwake:14,"14":"MonAwake",BombExplosion:15,"15":"BombExplosion",NextTurn:16,"16":"NextTurn",GameOver:17,"17":"GameOver",Takeback:18,"18":"Takeback",UsePotion:19,"19":"UsePotion", });
228
+ module.exports.SquareModelKind = Object.freeze({ Regular:0,"0":"Regular",ConsumableBase:1,"1":"ConsumableBase",SupermanaBase:2,"2":"SupermanaBase",ManaBase:3,"3":"ManaBase",ManaPool:4,"4":"ManaPool",MonBase:5,"5":"MonBase", });
229
229
  /**
230
230
  */
231
- module.exports.ItemModelKind = Object.freeze({ Mon:0,"0":"Mon",Mana:1,"1":"Mana",MonWithMana:2,"2":"MonWithMana",MonWithConsumable:3,"3":"MonWithConsumable",Consumable:4,"4":"Consumable", });
231
+ module.exports.Modifier = Object.freeze({ SelectPotion:0,"0":"SelectPotion",SelectBomb:1,"1":"SelectBomb",Cancel:2,"2":"Cancel", });
232
232
  /**
233
233
  */
234
- module.exports.Consumable = Object.freeze({ Potion:0,"0":"Potion",Bomb:1,"1":"Bomb",BombOrPotion:2,"2":"BombOrPotion", });
234
+ module.exports.NextInputKind = Object.freeze({ MonMove:0,"0":"MonMove",ManaMove:1,"1":"ManaMove",MysticAction:2,"2":"MysticAction",DemonAction:3,"3":"DemonAction",DemonAdditionalStep:4,"4":"DemonAdditionalStep",SpiritTargetCapture:5,"5":"SpiritTargetCapture",SpiritTargetMove:6,"6":"SpiritTargetMove",SelectConsumable:7,"7":"SelectConsumable",BombAttack:8,"8":"BombAttack", });
235
235
 
236
236
  const EventModelFinalization = (typeof FinalizationRegistry === 'undefined')
237
237
  ? { register: () => {}, unregister: () => {} }
@@ -1397,8 +1397,8 @@ module.exports.__wbindgen_string_new = function(arg0, arg1) {
1397
1397
  return addHeapObject(ret);
1398
1398
  };
1399
1399
 
1400
- module.exports.__wbg_eventmodel_new = function(arg0) {
1401
- const ret = EventModel.__wrap(arg0);
1400
+ module.exports.__wbg_location_new = function(arg0) {
1401
+ const ret = Location.__wrap(arg0);
1402
1402
  return addHeapObject(ret);
1403
1403
  };
1404
1404
 
@@ -1407,21 +1407,21 @@ module.exports.__wbg_nextinputmodel_new = function(arg0) {
1407
1407
  return addHeapObject(ret);
1408
1408
  };
1409
1409
 
1410
- module.exports.__wbg_location_new = function(arg0) {
1411
- const ret = Location.__wrap(arg0);
1410
+ module.exports.__wbg_eventmodel_new = function(arg0) {
1411
+ const ret = EventModel.__wrap(arg0);
1412
1412
  return addHeapObject(ret);
1413
1413
  };
1414
1414
 
1415
- module.exports.__wbg_location_unwrap = function(arg0) {
1416
- const ret = Location.__unwrap(takeObject(arg0));
1417
- return ret;
1418
- };
1419
-
1420
1415
  module.exports.__wbg_verbosetrackingentitymodel_new = function(arg0) {
1421
1416
  const ret = VerboseTrackingEntityModel.__wrap(arg0);
1422
1417
  return addHeapObject(ret);
1423
1418
  };
1424
1419
 
1420
+ module.exports.__wbg_location_unwrap = function(arg0) {
1421
+ const ret = Location.__unwrap(takeObject(arg0));
1422
+ return ret;
1423
+ };
1424
+
1425
1425
  module.exports.__wbg_crypto_1d1f22824a6a080c = function(arg0) {
1426
1426
  const ret = getObject(arg0).crypto;
1427
1427
  return addHeapObject(ret);
package/mons-rust_bg.wasm CHANGED
Binary file
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mons-rust",
3
3
  "description": "super metal mons",
4
- "version": "0.1.123",
4
+ "version": "0.1.124",
5
5
  "license": "CC0-1.0",
6
6
  "repository": {
7
7
  "type": "git",