mons-web 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-web.d.ts CHANGED
@@ -10,30 +10,12 @@
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 SquareModelKind {
14
- Regular = 0,
15
- ConsumableBase = 1,
16
- SupermanaBase = 2,
17
- ManaBase = 3,
18
- ManaPool = 4,
19
- MonBase = 5,
20
- }
21
- /**
22
- */
23
13
  export enum ManaKind {
24
14
  Regular = 0,
25
15
  Supermana = 1,
26
16
  }
27
17
  /**
28
18
  */
29
- export enum AvailableMoveKind {
30
- MonMove = 0,
31
- ManaMove = 1,
32
- Action = 2,
33
- Potion = 3,
34
- }
35
- /**
36
- */
37
19
  export enum EventModelKind {
38
20
  MonMove = 0,
39
21
  ManaMove = 1,
@@ -58,6 +40,13 @@ export enum EventModelKind {
58
40
  }
59
41
  /**
60
42
  */
43
+ export enum Consumable {
44
+ Potion = 0,
45
+ Bomb = 1,
46
+ BombOrPotion = 2,
47
+ }
48
+ /**
49
+ */
61
50
  export enum ItemModelKind {
62
51
  Mon = 0,
63
52
  Mana = 1,
@@ -67,10 +56,23 @@ export enum ItemModelKind {
67
56
  }
68
57
  /**
69
58
  */
70
- export enum Consumable {
71
- Potion = 0,
72
- Bomb = 1,
73
- BombOrPotion = 2,
59
+ export enum GameVariant {
60
+ Classic = 0,
61
+ SwappedManaRows = 1,
62
+ }
63
+ /**
64
+ */
65
+ export enum AvailableMoveKind {
66
+ MonMove = 0,
67
+ ManaMove = 1,
68
+ Action = 2,
69
+ Potion = 3,
70
+ }
71
+ /**
72
+ */
73
+ export enum Color {
74
+ White = 0,
75
+ Black = 1,
74
76
  }
75
77
  /**
76
78
  */
@@ -90,6 +92,16 @@ export enum MonKind {
90
92
  }
91
93
  /**
92
94
  */
95
+ export enum SquareModelKind {
96
+ Regular = 0,
97
+ ConsumableBase = 1,
98
+ SupermanaBase = 2,
99
+ ManaBase = 3,
100
+ ManaPool = 4,
101
+ MonBase = 5,
102
+ }
103
+ /**
104
+ */
93
105
  export enum NextInputKind {
94
106
  MonMove = 0,
95
107
  ManaMove = 1,
@@ -111,12 +123,6 @@ export enum OutputModelKind {
111
123
  }
112
124
  /**
113
125
  */
114
- export enum Color {
115
- White = 0,
116
- Black = 1,
117
- }
118
- /**
119
- */
120
126
  export class EventModel {
121
127
  free(): void;
122
128
  /**
@@ -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}
@@ -495,8 +503,8 @@ export interface InitOutput {
495
503
  readonly monsgamemodel_is_moves_verified: (a: number) => number;
496
504
  readonly monsgamemodel_item: (a: number, b: number) => number;
497
505
  readonly monsgamemodel_locations_with_content: (a: number, b: number) => void;
498
- readonly monsgamemodel_new: () => number;
499
- readonly monsgamemodel_newForSimulation: () => number;
506
+ readonly monsgamemodel_new: (a: number) => number;
507
+ readonly monsgamemodel_newForSimulation: (a: number) => number;
500
508
  readonly monsgamemodel_process_input: (a: number, b: number, c: number, d: number) => number;
501
509
  readonly monsgamemodel_process_input_fen: (a: number, b: number, c: number) => number;
502
510
  readonly monsgamemodel_remove_item: (a: number, b: number) => void;
@@ -522,6 +530,7 @@ export interface InitOutput {
522
530
  readonly __wbg_set_nextinputmodel_location: (a: number, b: number) => void;
523
531
  readonly __wbg_get_nextinputmodel_location: (a: number) => number;
524
532
  readonly __wbg_squaremodel_free: (a: number) => void;
533
+ readonly winner: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => void;
525
534
  readonly __wbg_get_location_i: (a: number) => number;
526
535
  readonly __wbg_get_location_j: (a: number) => number;
527
536
  readonly __wbg_get_mon_color: (a: number) => number;
@@ -532,14 +541,13 @@ export interface InitOutput {
532
541
  readonly __wbg_set_location_j: (a: number, b: number) => void;
533
542
  readonly __wbg_set_mon_color: (a: number, b: number) => void;
534
543
  readonly __wbg_set_mon_kind: (a: number, b: number) => void;
535
- readonly location_new: (a: number, b: number) => number;
536
544
  readonly mon_decrease_cooldown: (a: number) => void;
537
545
  readonly mon_faint: (a: number) => void;
538
546
  readonly mon_is_fainted: (a: number) => number;
539
547
  readonly mon_new: (a: number, b: number, c: number) => number;
548
+ readonly location_new: (a: number, b: number) => number;
540
549
  readonly __wbg_set_mon_cooldown: (a: number, b: number) => void;
541
550
  readonly __wbg_get_mon_cooldown: (a: number) => number;
542
- readonly winner: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => void;
543
551
  readonly __wbindgen_malloc: (a: number, b: number) => number;
544
552
  readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
545
553
  readonly __wbindgen_add_to_stack_pointer: (a: number) => number;
package/mons-web.js CHANGED
@@ -198,22 +198,25 @@ function handleError(f, args) {
198
198
  }
199
199
  /**
200
200
  */
201
- export const 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", });
202
- /**
203
- */
204
201
  export const ManaKind = Object.freeze({ Regular:0,"0":"Regular",Supermana:1,"1":"Supermana", });
205
202
  /**
206
203
  */
207
- export const AvailableMoveKind = Object.freeze({ MonMove:0,"0":"MonMove",ManaMove:1,"1":"ManaMove",Action:2,"2":"Action",Potion:3,"3":"Potion", });
204
+ export const 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", });
208
205
  /**
209
206
  */
210
- export const 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", });
207
+ export const Consumable = Object.freeze({ Potion:0,"0":"Potion",Bomb:1,"1":"Bomb",BombOrPotion:2,"2":"BombOrPotion", });
211
208
  /**
212
209
  */
213
210
  export const ItemModelKind = Object.freeze({ Mon:0,"0":"Mon",Mana:1,"1":"Mana",MonWithMana:2,"2":"MonWithMana",MonWithConsumable:3,"3":"MonWithConsumable",Consumable:4,"4":"Consumable", });
214
211
  /**
215
212
  */
216
- export const Consumable = Object.freeze({ Potion:0,"0":"Potion",Bomb:1,"1":"Bomb",BombOrPotion:2,"2":"BombOrPotion", });
213
+ export const GameVariant = Object.freeze({ Classic:0,"0":"Classic",SwappedManaRows:1,"1":"SwappedManaRows", });
214
+ /**
215
+ */
216
+ export const AvailableMoveKind = Object.freeze({ MonMove:0,"0":"MonMove",ManaMove:1,"1":"ManaMove",Action:2,"2":"Action",Potion:3,"3":"Potion", });
217
+ /**
218
+ */
219
+ export const Color = Object.freeze({ White:0,"0":"White",Black:1,"1":"Black", });
217
220
  /**
218
221
  */
219
222
  export const Modifier = Object.freeze({ SelectPotion:0,"0":"SelectPotion",SelectBomb:1,"1":"SelectBomb",Cancel:2,"2":"Cancel", });
@@ -222,13 +225,13 @@ export const Modifier = Object.freeze({ SelectPotion:0,"0":"SelectPotion",Select
222
225
  export const MonKind = Object.freeze({ Demon:0,"0":"Demon",Drainer:1,"1":"Drainer",Angel:2,"2":"Angel",Spirit:3,"3":"Spirit",Mystic:4,"4":"Mystic", });
223
226
  /**
224
227
  */
225
- export const 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", });
228
+ export const 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", });
226
229
  /**
227
230
  */
228
- export const OutputModelKind = Object.freeze({ InvalidInput:0,"0":"InvalidInput",LocationsToStartFrom:1,"1":"LocationsToStartFrom",NextInputOptions:2,"2":"NextInputOptions",Events:3,"3":"Events", });
231
+ export const 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", });
229
232
  /**
230
233
  */
231
- export const Color = Object.freeze({ White:0,"0":"White",Black:1,"1":"Black", });
234
+ export const OutputModelKind = Object.freeze({ InvalidInput:0,"0":"InvalidInput",LocationsToStartFrom:1,"1":"LocationsToStartFrom",NextInputOptions:2,"2":"NextInputOptions",Events:3,"3":"Events", });
232
235
 
233
236
  const EventModelFinalization = (typeof FinalizationRegistry === 'undefined')
234
237
  ? { register: () => {}, unregister: () => {} }
@@ -863,10 +866,11 @@ export class MonsGameModel {
863
866
  return ret === 0 ? undefined : MonsGameModel.__wrap(ret);
864
867
  }
865
868
  /**
869
+ * @param {GameVariant} variant
866
870
  * @returns {MonsGameModel}
867
871
  */
868
- static newForSimulation() {
869
- const ret = wasm.monsgamemodel_newForSimulation();
872
+ static newForSimulation(variant) {
873
+ const ret = wasm.monsgamemodel_newForSimulation(variant);
870
874
  return MonsGameModel.__wrap(ret);
871
875
  }
872
876
  /**
@@ -969,10 +973,11 @@ export class MonsGameModel {
969
973
  }
970
974
  }
971
975
  /**
976
+ * @param {GameVariant} variant
972
977
  * @returns {MonsGameModel}
973
978
  */
974
- static new() {
975
- const ret = wasm.monsgamemodel_new();
979
+ static new(variant) {
980
+ const ret = wasm.monsgamemodel_new(variant);
976
981
  return MonsGameModel.__wrap(ret);
977
982
  }
978
983
  /**
@@ -1416,10 +1421,6 @@ function __wbg_get_imports() {
1416
1421
  const ret = getStringFromWasm0(arg0, arg1);
1417
1422
  return addHeapObject(ret);
1418
1423
  };
1419
- imports.wbg.__wbg_nextinputmodel_new = function(arg0) {
1420
- const ret = NextInputModel.__wrap(arg0);
1421
- return addHeapObject(ret);
1422
- };
1423
1424
  imports.wbg.__wbg_location_new = function(arg0) {
1424
1425
  const ret = Location.__wrap(arg0);
1425
1426
  return addHeapObject(ret);
@@ -1428,6 +1429,10 @@ function __wbg_get_imports() {
1428
1429
  const ret = EventModel.__wrap(arg0);
1429
1430
  return addHeapObject(ret);
1430
1431
  };
1432
+ imports.wbg.__wbg_nextinputmodel_new = function(arg0) {
1433
+ const ret = NextInputModel.__wrap(arg0);
1434
+ return addHeapObject(ret);
1435
+ };
1431
1436
  imports.wbg.__wbg_location_unwrap = function(arg0) {
1432
1437
  const ret = Location.__unwrap(takeObject(arg0));
1433
1438
  return ret;
package/mons-web_bg.wasm CHANGED
Binary file
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "mons-web",
3
3
  "type": "module",
4
4
  "description": "super metal mons",
5
- "version": "0.1.125",
5
+ "version": "0.1.128",
6
6
  "license": "CC0-1.0",
7
7
  "repository": {
8
8
  "type": "git",