mons-rust 0.1.123 → 0.1.125

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,47 @@ 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
+ - live board: `AUTOMOVE_IDEAS.md`
15
14
  - durable lessons: `docs/automove-knowledge.md`
16
- - retired profile archive: `docs/automove-archive.md`
17
-
18
- Useful scripts:
19
-
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
- - `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
- - `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>`
31
- - `./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`
37
-
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`.
15
+ - archive: `docs/automove-archive.md`
16
+
17
+ Active experiment stages:
18
+
19
+ - `guardrails`
20
+ - `pro-triage`
21
+ - `runtime-preflight`
22
+ - `pro-reliability`
23
+ - `pro-reliability-confirm`
24
+
25
+ Canonical commands:
26
+
27
+ - `./scripts/run-automove-experiment.sh guardrails runtime_pro_turn_engine_v30`
28
+ - `SMART_TRIAGE_SURFACE=primary_pro ./scripts/run-automove-experiment.sh pro-triage runtime_pro_turn_engine_v30`
29
+ - `./scripts/run-automove-experiment.sh runtime-preflight runtime_pro_turn_engine_v30`
30
+ - `./scripts/run-automove-experiment.sh pro-reliability runtime_pro_turn_engine_v30`
31
+ - `./scripts/run-automove-experiment.sh pro-reliability-confirm runtime_pro_turn_engine_v30`
32
+ - `./scripts/clean-experiment-artifacts.sh --dry-run`
33
+
34
+ Active retained profile surface:
35
+
36
+ - `runtime_current`
37
+ - `runtime_pro_turn_engine_v30`
38
+
39
+ Notes:
40
+
41
+ - Shipping runtime is `runtime_current`.
42
+ - `runtime_pro_turn_engine_v30` is the only retained Pro frontier for offline experiments.
43
+ - Archive profiles, including `runtime_pro_turn_engine_v1`, are not valid active experiment targets.
44
+ - Post-promotion maintenance runs may show `pro-triage` `0/0` for `runtime_pro_turn_engine_v30` vs `runtime_current`; that is the expected stable-equivalence result, not a failed challenger attempt.
45
+
46
+ Default artifact layout:
47
+
48
+ - logs: `target/experiment-runs/<candidate>/`
49
+ - workflow-only logs: `target/experiment-runs/misc/`
50
+ - runtime-preflight stamps: `target/experiment-stamps/`
39
51
 
40
52
  ## rules-tests runner
41
53
 
@@ -67,6 +79,38 @@ Pack a directory back into chunks:
67
79
 
68
80
  `./scripts/pack-rules-tests.sh --dir /tmp/rules-tests-work --chunks-dir ./rules-tests-chunks --chunk-size 100000`
69
81
 
82
+ ## repo cleanup
83
+
84
+ `./repo-clean.sh`
85
+
86
+ - switches back to a kept branch (`main`, `master`, or `keep/*`) before deleting disposable branches
87
+ - removes non-primary worktrees, clears stashes, deletes non-kept local branches, and prunes non-kept remote branches
88
+ - use `./repo-clean.sh --local-only` to skip remote branch deletion
89
+ - use `keep/<name>` for any branch you want to protect from cleanup
90
+
70
91
  ## publishing to npm
71
92
 
72
93
  `./publish.sh`
94
+
95
+ Release checklist:
96
+
97
+ - Review `git status` before publish and confirm only intentional committed changes are present.
98
+ - Confirm `runtime_current` is still the shipping automove path.
99
+ - Confirm `runtime_pro_turn_engine_v30` remains fenced off as an offline experiment frontier.
100
+ - Run `cargo test`.
101
+ - Run `cargo test --release --lib smart_automove_release_opening_black_reply_speed_gate -- --ignored --nocapture`.
102
+ - Run `cargo test --release --lib smart_automove_release_mixed_runtime_speed_gate -- --ignored --nocapture`.
103
+ - Commit valuable changes before version bump / publish.
104
+ - Clean disposable experiment artifacts after validation with `./scripts/clean-experiment-artifacts.sh`.
105
+
106
+ Production blockers:
107
+
108
+ - build/test failures
109
+ - release speed gate failures
110
+ - any regression that enables turn-engine in shipping `runtime_current`
111
+
112
+ Non-blocking retained experiment state:
113
+
114
+ - the retained `runtime_pro_turn_engine_v30` frontier plus ignored probes
115
+ - experiment workflow/logging helpers
116
+ - compressed automove backlog / knowledge / archive docs
package/mons-rust.d.ts CHANGED
@@ -10,25 +10,18 @@
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,
16
- }
17
- /**
18
- */
19
- export enum Modifier {
20
- SelectPotion = 0,
21
- SelectBomb = 1,
22
- Cancel = 2,
13
+ export enum ItemModelKind {
14
+ Mon = 0,
15
+ Mana = 1,
16
+ MonWithMana = 2,
17
+ MonWithConsumable = 3,
18
+ Consumable = 4,
23
19
  }
24
20
  /**
25
21
  */
26
- export enum MonKind {
27
- Demon = 0,
28
- Drainer = 1,
29
- Angel = 2,
30
- Spirit = 3,
31
- Mystic = 4,
22
+ export enum ManaKind {
23
+ Regular = 0,
24
+ Supermana = 1,
32
25
  }
33
26
  /**
34
27
  */
@@ -50,30 +43,32 @@ export enum SquareModelKind {
50
43
  }
51
44
  /**
52
45
  */
53
- export enum OutputModelKind {
54
- InvalidInput = 0,
55
- LocationsToStartFrom = 1,
56
- NextInputOptions = 2,
57
- Events = 3,
46
+ export enum Modifier {
47
+ SelectPotion = 0,
48
+ SelectBomb = 1,
49
+ Cancel = 2,
58
50
  }
59
51
  /**
60
52
  */
61
- export enum ManaKind {
62
- Regular = 0,
63
- Supermana = 1,
53
+ export enum Color {
54
+ White = 0,
55
+ Black = 1,
64
56
  }
65
57
  /**
66
58
  */
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,
59
+ export enum Consumable {
60
+ Potion = 0,
61
+ Bomb = 1,
62
+ BombOrPotion = 2,
63
+ }
64
+ /**
65
+ */
66
+ export enum MonKind {
67
+ Demon = 0,
68
+ Drainer = 1,
69
+ Angel = 2,
70
+ Spirit = 3,
71
+ Mystic = 4,
77
72
  }
78
73
  /**
79
74
  */
@@ -101,19 +96,24 @@ export enum EventModelKind {
101
96
  }
102
97
  /**
103
98
  */
104
- export enum ItemModelKind {
105
- Mon = 0,
106
- Mana = 1,
107
- MonWithMana = 2,
108
- MonWithConsumable = 3,
109
- Consumable = 4,
99
+ export enum OutputModelKind {
100
+ InvalidInput = 0,
101
+ LocationsToStartFrom = 1,
102
+ NextInputOptions = 2,
103
+ Events = 3,
110
104
  }
111
105
  /**
112
106
  */
113
- export enum Consumable {
114
- Potion = 0,
115
- Bomb = 1,
116
- BombOrPotion = 2,
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,13 +201,10 @@ function handleError(f, args) {
201
201
  }
202
202
  /**
203
203
  */
204
- module.exports.Color = Object.freeze({ White:0,"0":"White",Black:1,"1":"Black", });
205
- /**
206
- */
207
- module.exports.Modifier = Object.freeze({ SelectPotion:0,"0":"SelectPotion",SelectBomb:1,"1":"SelectBomb",Cancel:2,"2":"Cancel", });
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", });
208
205
  /**
209
206
  */
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", });
207
+ module.exports.ManaKind = Object.freeze({ Regular:0,"0":"Regular",Supermana:1,"1":"Supermana", });
211
208
  /**
212
209
  */
213
210
  module.exports.AvailableMoveKind = Object.freeze({ MonMove:0,"0":"MonMove",ManaMove:1,"1":"ManaMove",Action:2,"2":"Action",Potion:3,"3":"Potion", });
@@ -216,22 +213,25 @@ module.exports.AvailableMoveKind = Object.freeze({ MonMove:0,"0":"MonMove",ManaM
216
213
  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", });
217
214
  /**
218
215
  */
219
- module.exports.OutputModelKind = Object.freeze({ InvalidInput:0,"0":"InvalidInput",LocationsToStartFrom:1,"1":"LocationsToStartFrom",NextInputOptions:2,"2":"NextInputOptions",Events:3,"3":"Events", });
216
+ module.exports.Modifier = Object.freeze({ SelectPotion:0,"0":"SelectPotion",SelectBomb:1,"1":"SelectBomb",Cancel:2,"2":"Cancel", });
220
217
  /**
221
218
  */
222
- module.exports.ManaKind = Object.freeze({ Regular:0,"0":"Regular",Supermana:1,"1":"Supermana", });
219
+ module.exports.Color = Object.freeze({ White:0,"0":"White",Black:1,"1":"Black", });
223
220
  /**
224
221
  */
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", });
222
+ module.exports.Consumable = Object.freeze({ Potion:0,"0":"Potion",Bomb:1,"1":"Bomb",BombOrPotion:2,"2":"BombOrPotion", });
223
+ /**
224
+ */
225
+ 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", });
226
226
  /**
227
227
  */
228
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", });
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.OutputModelKind = Object.freeze({ InvalidInput:0,"0":"InvalidInput",LocationsToStartFrom:1,"1":"LocationsToStartFrom",NextInputOptions:2,"2":"NextInputOptions",Events:3,"3":"Events", });
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: () => {} }
@@ -651,14 +651,14 @@ class Mon {
651
651
  * @returns {number}
652
652
  */
653
653
  get cooldown() {
654
- const ret = wasm.__wbg_get_mon_cooldown(this.__wbg_ptr);
654
+ const ret = wasm.__wbg_get_location_i(this.__wbg_ptr);
655
655
  return ret;
656
656
  }
657
657
  /**
658
658
  * @param {number} arg0
659
659
  */
660
660
  set cooldown(arg0) {
661
- wasm.__wbg_set_mon_cooldown(this.__wbg_ptr, arg0);
661
+ wasm.__wbg_set_location_i(this.__wbg_ptr, arg0);
662
662
  }
663
663
  /**
664
664
  * @returns {boolean}
@@ -1397,11 +1397,6 @@ 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);
1402
- return addHeapObject(ret);
1403
- };
1404
-
1405
1400
  module.exports.__wbg_nextinputmodel_new = function(arg0) {
1406
1401
  const ret = NextInputModel.__wrap(arg0);
1407
1402
  return addHeapObject(ret);
@@ -1412,6 +1407,11 @@ module.exports.__wbg_location_new = function(arg0) {
1412
1407
  return addHeapObject(ret);
1413
1408
  };
1414
1409
 
1410
+ module.exports.__wbg_eventmodel_new = function(arg0) {
1411
+ const ret = EventModel.__wrap(arg0);
1412
+ return addHeapObject(ret);
1413
+ };
1414
+
1415
1415
  module.exports.__wbg_location_unwrap = function(arg0) {
1416
1416
  const ret = Location.__unwrap(takeObject(arg0));
1417
1417
  return 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.125",
5
5
  "license": "CC0-1.0",
6
6
  "repository": {
7
7
  "type": "git",