mons-web 0.1.131 → 0.1.132

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
@@ -12,26 +12,31 @@ Docs:
12
12
 
13
13
  - runbook: `HOW_TO_ITERATE_ON_AUTOMOVE.md`
14
14
  - live board: `AUTOMOVE_IDEAS.md`
15
+ - structural review: `docs/automove-structural-review.md`
15
16
  - durable rules: `docs/automove-knowledge.md`
16
17
  - archive: `docs/automove-archive.md`
17
18
 
18
19
  Live surface:
19
20
 
20
- - retained profiles: `shipping_pro_search`, `frontier_pro_v2_guarded`
21
+ - retained profiles: `shipping_pro_search`, previous-production `frontier_pro_v2_guarded`, promoted `frontier_pro_v10_bounded_tactical`
21
22
  - canonical stages: `guardrails`, `pro-triage`, `runtime-preflight`, `pro-reliability`, `pro-reliability-confirm`
22
23
 
23
24
  Quickstart:
24
25
 
25
- - `./scripts/run-automove-canonical-loop.sh frontier_pro_v2_guarded`
26
- - `./scripts/run-automove-canonical-loop.sh --confirm frontier_pro_v2_guarded`
27
- - `./scripts/run-automove-experiment.sh <stage> frontier_pro_v2_guarded`
26
+ - `./scripts/run-automove-canonical-loop.sh frontier_pro_v10_bounded_tactical`
27
+ - `./scripts/run-automove-canonical-loop.sh --confirm frontier_pro_v10_bounded_tactical`
28
+ - `./scripts/run-automove-experiment.sh <stage> frontier_pro_v10_bounded_tactical`
29
+ - `./scripts/run-automove-experiment.sh pro-profile-sweep frontier_pro_v2_raw`
30
+ - `./scripts/check-automove-hygiene.sh`
28
31
  - `./scripts/clean-experiment-artifacts.sh --dry-run`
32
+ - `./scripts/clean-experiment-artifacts.sh --dry-run --all-target`
29
33
 
30
34
  Artifacts:
31
35
 
32
36
  - selected-profile logs: `target/experiment-runs/<profile>/`
33
37
  - workflow-only logs: `target/experiment-runs/misc/`
34
38
  - runtime-preflight stamps: `target/experiment-stamps/`
39
+ - full local build/artifact cache: `target/` via `--all-target`
35
40
 
36
41
  ## Rules Tests
37
42
 
@@ -56,10 +61,14 @@ Use `keep/<name>` for any branch that should survive repo cleanup.
56
61
 
57
62
  ## Publishing
58
63
 
64
+ - Set the release version in `Cargo.toml` and `Cargo.lock`, then commit the complete release change set. `publish.sh` refuses a dirty worktree and no longer mutates the version after validation.
59
65
  - `./publish.sh`
60
- - Confirm public Pro still routes through `frontier_pro_v2_guarded`.
61
- - Confirm `shipping_pro_search` remains available as the retained baseline.
66
+ - Confirm public Pro routes through `frontier_pro_v10_bounded_tactical`.
67
+ - Confirm `frontier_pro_v2_guarded` and `shipping_pro_search` remain available as the previous-production comparator and search-only baseline.
62
68
  - Run `cargo test`.
63
- - Run `cargo test --release --lib smart_automove_release_opening_black_reply_speed_gate -- --ignored --nocapture`.
64
- - Run `cargo test --release --lib smart_automove_release_mixed_runtime_speed_gate -- --ignored --nocapture`.
69
+ - Run `cargo test --release --lib smart_automove_pro_matches_frontier_bounded_tactical_selector_on_release_fixture`.
70
+ - Run `cargo test --release --lib automove_runtime_black_turn_eight_deadline_tail_probe -- --ignored --nocapture` to enforce the whole-call `700ms` ceiling.
71
+ - Run `./scripts/check-automove-hygiene.sh`.
72
+ - Run `./scripts/assert-release-package-surface.sh pkg/web pkg/node` after the Wasm packages are built.
73
+ - Run `node ./scripts/assert-release-automove-route.cjs pkg/node/mons-rust.js` to verify the generated package routes public Pro through bounded tactical v10 on a fixture that differs from both retained v2 and shipping search.
65
74
  - Clean disposable experiment artifacts after validation with `./scripts/clean-experiment-artifacts.sh`.
package/mons-web.d.ts CHANGED
@@ -10,6 +10,14 @@
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 AvailableMoveKind {
14
+ MonMove = 0,
15
+ ManaMove = 1,
16
+ Action = 2,
17
+ Potion = 3,
18
+ }
19
+ /**
20
+ */
13
21
  export enum Modifier {
14
22
  SelectPotion = 0,
15
23
  SelectBomb = 1,
@@ -17,52 +25,27 @@ export enum Modifier {
17
25
  }
18
26
  /**
19
27
  */
20
- export enum OutputModelKind {
21
- InvalidInput = 0,
22
- LocationsToStartFrom = 1,
23
- NextInputOptions = 2,
24
- Events = 3,
25
- }
26
- /**
27
- */
28
- export enum SquareModelKind {
29
- Regular = 0,
30
- ConsumableBase = 1,
31
- SupermanaBase = 2,
32
- ManaBase = 3,
33
- ManaPool = 4,
34
- MonBase = 5,
35
- }
36
- /**
37
- */
38
- export enum GameVariant {
39
- Classic = 0,
40
- SwappedManaRows = 1,
41
- OffsetArcManaRows = 2,
42
- CenterSpokeManaRows = 3,
43
- AlternatingManaRows = 4,
44
- InnerWedgeManaRows = 5,
45
- OuterWedgeManaRows = 6,
46
- BentCenterManaRows = 7,
47
- OuterEdgeManaRows = 8,
48
- SplitFlankManaRows = 9,
49
- ForwardBridgeManaRows = 10,
50
- CornerChainManaRows = 11,
28
+ export enum Color {
29
+ White = 0,
30
+ Black = 1,
51
31
  }
52
32
  /**
53
33
  */
54
- export enum AvailableMoveKind {
55
- MonMove = 0,
56
- ManaMove = 1,
57
- Action = 2,
58
- Potion = 3,
34
+ export enum MonKind {
35
+ Demon = 0,
36
+ Drainer = 1,
37
+ Angel = 2,
38
+ Spirit = 3,
39
+ Mystic = 4,
59
40
  }
60
41
  /**
61
42
  */
62
- export enum Consumable {
63
- Potion = 0,
64
- Bomb = 1,
65
- BombOrPotion = 2,
43
+ export enum ItemModelKind {
44
+ Mon = 0,
45
+ Mana = 1,
46
+ MonWithMana = 2,
47
+ MonWithConsumable = 3,
48
+ Consumable = 4,
66
49
  }
67
50
  /**
68
51
  */
@@ -90,12 +73,37 @@ export enum EventModelKind {
90
73
  }
91
74
  /**
92
75
  */
93
- export enum MonKind {
94
- Demon = 0,
95
- Drainer = 1,
96
- Angel = 2,
97
- Spirit = 3,
98
- Mystic = 4,
76
+ export enum OutputModelKind {
77
+ InvalidInput = 0,
78
+ LocationsToStartFrom = 1,
79
+ NextInputOptions = 2,
80
+ Events = 3,
81
+ }
82
+ /**
83
+ */
84
+ export enum SquareModelKind {
85
+ Regular = 0,
86
+ ConsumableBase = 1,
87
+ SupermanaBase = 2,
88
+ ManaBase = 3,
89
+ ManaPool = 4,
90
+ MonBase = 5,
91
+ }
92
+ /**
93
+ */
94
+ export enum GameVariant {
95
+ Classic = 0,
96
+ SwappedManaRows = 1,
97
+ OffsetArcManaRows = 2,
98
+ CenterSpokeManaRows = 3,
99
+ AlternatingManaRows = 4,
100
+ InnerWedgeManaRows = 5,
101
+ OuterWedgeManaRows = 6,
102
+ BentCenterManaRows = 7,
103
+ OuterEdgeManaRows = 8,
104
+ SplitFlankManaRows = 9,
105
+ ForwardBridgeManaRows = 10,
106
+ CornerChainManaRows = 11,
99
107
  }
100
108
  /**
101
109
  */
@@ -118,18 +126,10 @@ export enum ManaKind {
118
126
  }
119
127
  /**
120
128
  */
121
- export enum ItemModelKind {
122
- Mon = 0,
123
- Mana = 1,
124
- MonWithMana = 2,
125
- MonWithConsumable = 3,
126
- Consumable = 4,
127
- }
128
- /**
129
- */
130
- export enum Color {
131
- White = 0,
132
- Black = 1,
129
+ export enum Consumable {
130
+ Potion = 0,
131
+ Bomb = 1,
132
+ BombOrPotion = 2,
133
133
  }
134
134
  /**
135
135
  */
package/mons-web.js CHANGED
@@ -1,3 +1,5 @@
1
+ import * as __wbg_star0 from './snippets/mons-rust-2106594ecd9a3eb2/inline0.js';
2
+
1
3
  let wasm;
2
4
 
3
5
  const heap = new Array(128).fill(undefined);
@@ -198,28 +200,31 @@ function handleError(f, args) {
198
200
  }
199
201
  /**
200
202
  */
203
+ export const AvailableMoveKind = Object.freeze({ MonMove:0,"0":"MonMove",ManaMove:1,"1":"ManaMove",Action:2,"2":"Action",Potion:3,"3":"Potion", });
204
+ /**
205
+ */
201
206
  export const Modifier = Object.freeze({ SelectPotion:0,"0":"SelectPotion",SelectBomb:1,"1":"SelectBomb",Cancel:2,"2":"Cancel", });
202
207
  /**
203
208
  */
204
- export const OutputModelKind = Object.freeze({ InvalidInput:0,"0":"InvalidInput",LocationsToStartFrom:1,"1":"LocationsToStartFrom",NextInputOptions:2,"2":"NextInputOptions",Events:3,"3":"Events", });
209
+ export const Color = Object.freeze({ White:0,"0":"White",Black:1,"1":"Black", });
205
210
  /**
206
211
  */
207
- 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", });
212
+ 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", });
208
213
  /**
209
214
  */
210
- export const GameVariant = Object.freeze({ Classic:0,"0":"Classic",SwappedManaRows:1,"1":"SwappedManaRows",OffsetArcManaRows:2,"2":"OffsetArcManaRows",CenterSpokeManaRows:3,"3":"CenterSpokeManaRows",AlternatingManaRows:4,"4":"AlternatingManaRows",InnerWedgeManaRows:5,"5":"InnerWedgeManaRows",OuterWedgeManaRows:6,"6":"OuterWedgeManaRows",BentCenterManaRows:7,"7":"BentCenterManaRows",OuterEdgeManaRows:8,"8":"OuterEdgeManaRows",SplitFlankManaRows:9,"9":"SplitFlankManaRows",ForwardBridgeManaRows:10,"10":"ForwardBridgeManaRows",CornerChainManaRows:11,"11":"CornerChainManaRows", });
215
+ 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", });
211
216
  /**
212
217
  */
213
- export const AvailableMoveKind = Object.freeze({ MonMove:0,"0":"MonMove",ManaMove:1,"1":"ManaMove",Action:2,"2":"Action",Potion:3,"3":"Potion", });
218
+ 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", });
214
219
  /**
215
220
  */
216
- export const Consumable = Object.freeze({ Potion:0,"0":"Potion",Bomb:1,"1":"Bomb",BombOrPotion:2,"2":"BombOrPotion", });
221
+ export const OutputModelKind = Object.freeze({ InvalidInput:0,"0":"InvalidInput",LocationsToStartFrom:1,"1":"LocationsToStartFrom",NextInputOptions:2,"2":"NextInputOptions",Events:3,"3":"Events", });
217
222
  /**
218
223
  */
219
- 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", });
224
+ 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", });
220
225
  /**
221
226
  */
222
- 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", });
227
+ export const GameVariant = Object.freeze({ Classic:0,"0":"Classic",SwappedManaRows:1,"1":"SwappedManaRows",OffsetArcManaRows:2,"2":"OffsetArcManaRows",CenterSpokeManaRows:3,"3":"CenterSpokeManaRows",AlternatingManaRows:4,"4":"AlternatingManaRows",InnerWedgeManaRows:5,"5":"InnerWedgeManaRows",OuterWedgeManaRows:6,"6":"OuterWedgeManaRows",BentCenterManaRows:7,"7":"BentCenterManaRows",OuterEdgeManaRows:8,"8":"OuterEdgeManaRows",SplitFlankManaRows:9,"9":"SplitFlankManaRows",ForwardBridgeManaRows:10,"10":"ForwardBridgeManaRows",CornerChainManaRows:11,"11":"CornerChainManaRows", });
223
228
  /**
224
229
  */
225
230
  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,10 +233,7 @@ export const NextInputKind = Object.freeze({ MonMove:0,"0":"MonMove",ManaMove:1,
228
233
  export const ManaKind = Object.freeze({ Regular:0,"0":"Regular",Supermana:1,"1":"Supermana", });
229
234
  /**
230
235
  */
231
- 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", });
232
- /**
233
- */
234
- export const Color = Object.freeze({ White:0,"0":"White",Black:1,"1":"Black", });
236
+ export const Consumable = Object.freeze({ Potion:0,"0":"Potion",Bomb:1,"1":"Bomb",BombOrPotion:2,"2":"BombOrPotion", });
235
237
 
236
238
  const EventModelFinalization = (typeof FinalizationRegistry === 'undefined')
237
239
  ? { register: () => {}, unregister: () => {} }
@@ -1421,26 +1423,26 @@ function __wbg_get_imports() {
1421
1423
  const ret = getStringFromWasm0(arg0, arg1);
1422
1424
  return addHeapObject(ret);
1423
1425
  };
1424
- imports.wbg.__wbg_location_new = function(arg0) {
1425
- const ret = Location.__wrap(arg0);
1426
- return addHeapObject(ret);
1427
- };
1428
1426
  imports.wbg.__wbg_eventmodel_new = function(arg0) {
1429
1427
  const ret = EventModel.__wrap(arg0);
1430
1428
  return addHeapObject(ret);
1431
1429
  };
1430
+ imports.wbg.__wbg_location_new = function(arg0) {
1431
+ const ret = Location.__wrap(arg0);
1432
+ return addHeapObject(ret);
1433
+ };
1432
1434
  imports.wbg.__wbg_nextinputmodel_new = function(arg0) {
1433
1435
  const ret = NextInputModel.__wrap(arg0);
1434
1436
  return addHeapObject(ret);
1435
1437
  };
1436
- imports.wbg.__wbg_location_unwrap = function(arg0) {
1437
- const ret = Location.__unwrap(takeObject(arg0));
1438
- return ret;
1439
- };
1440
1438
  imports.wbg.__wbg_verbosetrackingentitymodel_new = function(arg0) {
1441
1439
  const ret = VerboseTrackingEntityModel.__wrap(arg0);
1442
1440
  return addHeapObject(ret);
1443
1441
  };
1442
+ imports.wbg.__wbg_location_unwrap = function(arg0) {
1443
+ const ret = Location.__unwrap(takeObject(arg0));
1444
+ return ret;
1445
+ };
1444
1446
  imports.wbg.__wbg_crypto_1d1f22824a6a080c = function(arg0) {
1445
1447
  const ret = getObject(arg0).crypto;
1446
1448
  return addHeapObject(ret);
@@ -1558,6 +1560,7 @@ function __wbg_get_imports() {
1558
1560
  imports.wbg.__wbindgen_throw = function(arg0, arg1) {
1559
1561
  throw new Error(getStringFromWasm0(arg0, arg1));
1560
1562
  };
1563
+ imports['./snippets/mons-rust-2106594ecd9a3eb2/inline0.js'] = __wbg_star0;
1561
1564
 
1562
1565
  return imports;
1563
1566
  }
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.131",
5
+ "version": "0.1.132",
6
6
  "license": "CC0-1.0",
7
7
  "repository": {
8
8
  "type": "git",