mons-rust 0.1.125 → 0.1.128

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,45 +7,37 @@ or
7
7
 
8
8
  ## automove
9
9
 
10
- Canonical automove workflow:
10
+ Docs:
11
11
 
12
12
  - runbook: `HOW_TO_ITERATE_ON_AUTOMOVE.md`
13
13
  - live board: `AUTOMOVE_IDEAS.md`
14
14
  - durable lessons: `docs/automove-knowledge.md`
15
15
  - archive: `docs/automove-archive.md`
16
16
 
17
- Active experiment stages:
17
+ Public Pro runtime currently routes through `frontier_pro_v2_guarded`; `shipping_pro_search` remains the retained search-only baseline profile.
18
18
 
19
- - `guardrails`
20
- - `pro-triage`
21
- - `runtime-preflight`
22
- - `pro-reliability`
23
- - `pro-reliability-confirm`
19
+ Quickstart:
24
20
 
25
- Canonical commands:
21
+ - canonical Pro loop: `./scripts/run-automove-canonical-loop.sh frontier_pro_v2_guarded`
22
+ - larger confirmation pass: `./scripts/run-automove-canonical-loop.sh --confirm frontier_pro_v2_guarded`
23
+ - single-stage or diagnostic run: `./scripts/run-automove-experiment.sh <stage> frontier_pro_v2_guarded`
24
+ - cleanup preview: `./scripts/clean-experiment-artifacts.sh --dry-run`
26
25
 
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`
26
+ Retained profile surface:
33
27
 
34
- Active retained profile surface:
28
+ - `shipping_pro_search`
29
+ - `frontier_pro_v2_guarded`
35
30
 
36
- - `runtime_current`
37
- - `runtime_pro_turn_engine_v30`
31
+ Glossary:
38
32
 
39
- Notes:
33
+ - `shipping`: the deployed Pro path, currently `frontier_pro_v2_guarded`
34
+ - `baseline`: the retained search-only comparison profile, currently `shipping_pro_search`
35
+ - `frontier`: the guarded ProV2 selector/runtime line, currently `frontier_pro_v2_guarded`
36
+ - `probe`: forced turn-engine diagnostics that inspect search/acceptance behavior without changing shipping
40
37
 
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.
38
+ Artifact layout:
45
39
 
46
- Default artifact layout:
47
-
48
- - logs: `target/experiment-runs/<candidate>/`
40
+ - selected-profile logs: `target/experiment-runs/<profile>/`
49
41
  - workflow-only logs: `target/experiment-runs/misc/`
50
42
  - runtime-preflight stamps: `target/experiment-stamps/`
51
43
 
@@ -95,8 +87,8 @@ Pack a directory back into chunks:
95
87
  Release checklist:
96
88
 
97
89
  - 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.
90
+ - Confirm public Pro still routes through `frontier_pro_v2_guarded`.
91
+ - Confirm `shipping_pro_search` remains available as the retained search-only baseline profile.
100
92
  - Run `cargo test`.
101
93
  - Run `cargo test --release --lib smart_automove_release_opening_black_reply_speed_gate -- --ignored --nocapture`.
102
94
  - Run `cargo test --release --lib smart_automove_release_mixed_runtime_speed_gate -- --ignored --nocapture`.
@@ -107,10 +99,10 @@ Production blockers:
107
99
 
108
100
  - build/test failures
109
101
  - release speed gate failures
110
- - any regression that enables turn-engine in shipping `runtime_current`
102
+ - any regression in the deployed `frontier_pro_v2_guarded` Pro path
111
103
 
112
104
  Non-blocking retained experiment state:
113
105
 
114
- - the retained `runtime_pro_turn_engine_v30` frontier plus ignored probes
106
+ - the retained `shipping_pro_search` baseline, the retained `frontier_pro_v2_guarded` frontier, and ignored probes
115
107
  - experiment workflow/logging helpers
116
108
  - compressed automove backlog / knowledge / archive docs
package/mons-rust.d.ts CHANGED
@@ -10,29 +10,6 @@
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 ItemModelKind {
14
- Mon = 0,
15
- Mana = 1,
16
- MonWithMana = 2,
17
- MonWithConsumable = 3,
18
- Consumable = 4,
19
- }
20
- /**
21
- */
22
- export enum ManaKind {
23
- Regular = 0,
24
- Supermana = 1,
25
- }
26
- /**
27
- */
28
- export enum AvailableMoveKind {
29
- MonMove = 0,
30
- ManaMove = 1,
31
- Action = 2,
32
- Potion = 3,
33
- }
34
- /**
35
- */
36
13
  export enum SquareModelKind {
37
14
  Regular = 0,
38
15
  ConsumableBase = 1,
@@ -43,23 +20,29 @@ export enum SquareModelKind {
43
20
  }
44
21
  /**
45
22
  */
46
- export enum Modifier {
47
- SelectPotion = 0,
48
- SelectBomb = 1,
49
- Cancel = 2,
23
+ export enum OutputModelKind {
24
+ InvalidInput = 0,
25
+ LocationsToStartFrom = 1,
26
+ NextInputOptions = 2,
27
+ Events = 3,
50
28
  }
51
29
  /**
52
30
  */
53
- export enum Color {
54
- White = 0,
55
- Black = 1,
31
+ export enum GameVariant {
32
+ Classic = 0,
33
+ SwappedManaRows = 1,
56
34
  }
57
35
  /**
58
36
  */
59
- export enum Consumable {
60
- Potion = 0,
61
- Bomb = 1,
62
- BombOrPotion = 2,
37
+ export enum ManaKind {
38
+ Regular = 0,
39
+ Supermana = 1,
40
+ }
41
+ /**
42
+ */
43
+ export enum Color {
44
+ White = 0,
45
+ Black = 1,
63
46
  }
64
47
  /**
65
48
  */
@@ -72,6 +55,15 @@ export enum MonKind {
72
55
  }
73
56
  /**
74
57
  */
58
+ export enum ItemModelKind {
59
+ Mon = 0,
60
+ Mana = 1,
61
+ MonWithMana = 2,
62
+ MonWithConsumable = 3,
63
+ Consumable = 4,
64
+ }
65
+ /**
66
+ */
75
67
  export enum EventModelKind {
76
68
  MonMove = 0,
77
69
  ManaMove = 1,
@@ -96,11 +88,25 @@ export enum EventModelKind {
96
88
  }
97
89
  /**
98
90
  */
99
- export enum OutputModelKind {
100
- InvalidInput = 0,
101
- LocationsToStartFrom = 1,
102
- NextInputOptions = 2,
103
- Events = 3,
91
+ export enum AvailableMoveKind {
92
+ MonMove = 0,
93
+ ManaMove = 1,
94
+ Action = 2,
95
+ Potion = 3,
96
+ }
97
+ /**
98
+ */
99
+ export enum Consumable {
100
+ Potion = 0,
101
+ Bomb = 1,
102
+ BombOrPotion = 2,
103
+ }
104
+ /**
105
+ */
106
+ export enum Modifier {
107
+ SelectPotion = 0,
108
+ SelectBomb = 1,
109
+ Cancel = 2,
104
110
  }
105
111
  /**
106
112
  */
@@ -293,9 +299,10 @@ export class MonsGameModel {
293
299
  */
294
300
  without_last_turn(takeback_fens: (string)[]): MonsGameModel | undefined;
295
301
  /**
302
+ * @param {GameVariant} variant
296
303
  * @returns {MonsGameModel}
297
304
  */
298
- static newForSimulation(): MonsGameModel;
305
+ static newForSimulation(variant: GameVariant): MonsGameModel;
299
306
  /**
300
307
  * @returns {Int32Array}
301
308
  */
@@ -326,9 +333,10 @@ export class MonsGameModel {
326
333
  */
327
334
  fen(): string;
328
335
  /**
336
+ * @param {GameVariant} variant
329
337
  * @returns {MonsGameModel}
330
338
  */
331
- static new(): MonsGameModel;
339
+ static new(variant: GameVariant): MonsGameModel;
332
340
  /**
333
341
  * @param {Location} at
334
342
  * @returns {ItemModel | undefined}
package/mons-rust.js CHANGED
@@ -201,34 +201,37 @@ function handleError(f, args) {
201
201
  }
202
202
  /**
203
203
  */
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
- /**
206
- */
207
- module.exports.ManaKind = Object.freeze({ Regular:0,"0":"Regular",Supermana:1,"1":"Supermana", });
204
+ 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", });
208
205
  /**
209
206
  */
210
- module.exports.AvailableMoveKind = Object.freeze({ MonMove:0,"0":"MonMove",ManaMove:1,"1":"ManaMove",Action:2,"2":"Action",Potion:3,"3":"Potion", });
207
+ module.exports.OutputModelKind = Object.freeze({ InvalidInput:0,"0":"InvalidInput",LocationsToStartFrom:1,"1":"LocationsToStartFrom",NextInputOptions:2,"2":"NextInputOptions",Events:3,"3":"Events", });
211
208
  /**
212
209
  */
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", });
210
+ module.exports.GameVariant = Object.freeze({ Classic:0,"0":"Classic",SwappedManaRows:1,"1":"SwappedManaRows", });
214
211
  /**
215
212
  */
216
- module.exports.Modifier = Object.freeze({ SelectPotion:0,"0":"SelectPotion",SelectBomb:1,"1":"SelectBomb",Cancel:2,"2":"Cancel", });
213
+ module.exports.ManaKind = Object.freeze({ Regular:0,"0":"Regular",Supermana:1,"1":"Supermana", });
217
214
  /**
218
215
  */
219
216
  module.exports.Color = Object.freeze({ White:0,"0":"White",Black:1,"1":"Black", });
220
217
  /**
221
218
  */
222
- module.exports.Consumable = Object.freeze({ Potion:0,"0":"Potion",Bomb:1,"1":"Bomb",BombOrPotion:2,"2":"BombOrPotion", });
219
+ 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", });
223
220
  /**
224
221
  */
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", });
222
+ 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", });
226
223
  /**
227
224
  */
228
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", });
229
226
  /**
230
227
  */
231
- module.exports.OutputModelKind = Object.freeze({ InvalidInput:0,"0":"InvalidInput",LocationsToStartFrom:1,"1":"LocationsToStartFrom",NextInputOptions:2,"2":"NextInputOptions",Events:3,"3":"Events", });
228
+ module.exports.AvailableMoveKind = Object.freeze({ MonMove:0,"0":"MonMove",ManaMove:1,"1":"ManaMove",Action:2,"2":"Action",Potion:3,"3":"Potion", });
229
+ /**
230
+ */
231
+ module.exports.Consumable = Object.freeze({ Potion:0,"0":"Potion",Bomb:1,"1":"Bomb",BombOrPotion:2,"2":"BombOrPotion", });
232
+ /**
233
+ */
234
+ module.exports.Modifier = Object.freeze({ SelectPotion:0,"0":"SelectPotion",SelectBomb:1,"1":"SelectBomb",Cancel:2,"2":"Cancel", });
232
235
  /**
233
236
  */
234
237
  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", });
@@ -871,10 +874,11 @@ class MonsGameModel {
871
874
  return ret === 0 ? undefined : MonsGameModel.__wrap(ret);
872
875
  }
873
876
  /**
877
+ * @param {GameVariant} variant
874
878
  * @returns {MonsGameModel}
875
879
  */
876
- static newForSimulation() {
877
- const ret = wasm.monsgamemodel_newForSimulation();
880
+ static newForSimulation(variant) {
881
+ const ret = wasm.monsgamemodel_newForSimulation(variant);
878
882
  return MonsGameModel.__wrap(ret);
879
883
  }
880
884
  /**
@@ -977,10 +981,11 @@ class MonsGameModel {
977
981
  }
978
982
  }
979
983
  /**
984
+ * @param {GameVariant} variant
980
985
  * @returns {MonsGameModel}
981
986
  */
982
- static new() {
983
- const ret = wasm.monsgamemodel_new();
987
+ static new(variant) {
988
+ const ret = wasm.monsgamemodel_new(variant);
984
989
  return MonsGameModel.__wrap(ret);
985
990
  }
986
991
  /**
@@ -1397,11 +1402,6 @@ module.exports.__wbindgen_string_new = function(arg0, arg1) {
1397
1402
  return addHeapObject(ret);
1398
1403
  };
1399
1404
 
1400
- module.exports.__wbg_nextinputmodel_new = function(arg0) {
1401
- const ret = NextInputModel.__wrap(arg0);
1402
- return addHeapObject(ret);
1403
- };
1404
-
1405
1405
  module.exports.__wbg_location_new = function(arg0) {
1406
1406
  const ret = Location.__wrap(arg0);
1407
1407
  return addHeapObject(ret);
@@ -1412,6 +1412,11 @@ module.exports.__wbg_eventmodel_new = function(arg0) {
1412
1412
  return addHeapObject(ret);
1413
1413
  };
1414
1414
 
1415
+ module.exports.__wbg_nextinputmodel_new = function(arg0) {
1416
+ const ret = NextInputModel.__wrap(arg0);
1417
+ return addHeapObject(ret);
1418
+ };
1419
+
1415
1420
  module.exports.__wbg_location_unwrap = function(arg0) {
1416
1421
  const ret = Location.__unwrap(takeObject(arg0));
1417
1422
  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.125",
4
+ "version": "0.1.128",
5
5
  "license": "CC0-1.0",
6
6
  "repository": {
7
7
  "type": "git",