mons-web 0.1.128 → 0.1.130

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
@@ -1,108 +1,65 @@
1
1
  # mons-rust
2
+
2
3
  `cargo add mons-rust`
3
4
 
4
5
  or
5
6
 
6
7
  `npm install mons-rust`
7
8
 
8
- ## automove
9
+ ## Automove
9
10
 
10
11
  Docs:
11
12
 
12
13
  - runbook: `HOW_TO_ITERATE_ON_AUTOMOVE.md`
13
14
  - live board: `AUTOMOVE_IDEAS.md`
14
- - durable lessons: `docs/automove-knowledge.md`
15
+ - durable rules: `docs/automove-knowledge.md`
15
16
  - archive: `docs/automove-archive.md`
16
17
 
17
- Public Pro runtime currently routes through `frontier_pro_v2_guarded`; `shipping_pro_search` remains the retained search-only baseline profile.
18
-
19
- Quickstart:
20
-
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`
25
-
26
- Retained profile surface:
18
+ Live surface:
27
19
 
28
- - `shipping_pro_search`
29
- - `frontier_pro_v2_guarded`
20
+ - retained profiles: `shipping_pro_search`, `frontier_pro_v2_guarded`
21
+ - canonical stages: `guardrails`, `pro-triage`, `runtime-preflight`, `pro-reliability`, `pro-reliability-confirm`
30
22
 
31
- Glossary:
23
+ Quickstart:
32
24
 
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
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`
28
+ - `./scripts/clean-experiment-artifacts.sh --dry-run`
37
29
 
38
- Artifact layout:
30
+ Artifacts:
39
31
 
40
32
  - selected-profile logs: `target/experiment-runs/<profile>/`
41
33
  - workflow-only logs: `target/experiment-runs/misc/`
42
34
  - runtime-preflight stamps: `target/experiment-stamps/`
43
35
 
44
- ## rules-tests runner
45
-
46
- Fixtures are stored as chunk archives in `rules-tests-chunks/` (default: `100000` fixtures per chunk).
47
-
48
- Run all fixtures:
49
-
50
- `./scripts/run-rules-tests.sh`
51
-
52
- Useful options:
53
-
54
- `./scripts/run-rules-tests.sh --limit 100`
36
+ ## Rules Tests
55
37
 
56
- `./scripts/run-rules-tests.sh --log /tmp/rules-tests.log`
38
+ Runner:
57
39
 
58
- `./scripts/run-rules-tests.sh --chunks-dir ./rules-tests-chunks --verbose`
40
+ - `./scripts/run-rules-tests.sh`
41
+ - `./scripts/run-rules-tests.sh --limit 100`
42
+ - `./scripts/run-rules-tests.sh --log /tmp/rules-tests.log`
59
43
 
60
- ## rules-tests generator
44
+ Generator:
61
45
 
62
- Generate new random unique fixtures and repack chunks:
46
+ - `./scripts/generate-rules-tests.sh --target-new 100`
47
+ - `./scripts/generate-rules-tests.sh --dir /tmp/rules-tests-work`
48
+ - `./scripts/pack-rules-tests.sh --dir /tmp/rules-tests-work --chunks-dir ./rules-tests-chunks --chunk-size 100000`
63
49
 
64
- `./scripts/generate-rules-tests.sh --target-new 100`
50
+ ## Repo Cleanup
65
51
 
66
- Generate directly into a directory (continuous mode):
52
+ - `./repo-clean.sh`
53
+ - `./repo-clean.sh --local-only`
67
54
 
68
- `./scripts/generate-rules-tests.sh --dir /tmp/rules-tests-work`
55
+ Use `keep/<name>` for any branch that should survive repo cleanup.
69
56
 
70
- Pack a directory back into chunks:
57
+ ## Publishing
71
58
 
72
- `./scripts/pack-rules-tests.sh --dir /tmp/rules-tests-work --chunks-dir ./rules-tests-chunks --chunk-size 100000`
73
-
74
- ## repo cleanup
75
-
76
- `./repo-clean.sh`
77
-
78
- - switches back to a kept branch (`main`, `master`, or `keep/*`) before deleting disposable branches
79
- - removes non-primary worktrees, clears stashes, deletes non-kept local branches, and prunes non-kept remote branches
80
- - use `./repo-clean.sh --local-only` to skip remote branch deletion
81
- - use `keep/<name>` for any branch you want to protect from cleanup
82
-
83
- ## publishing to npm
84
-
85
- `./publish.sh`
86
-
87
- Release checklist:
88
-
89
- - Review `git status` before publish and confirm only intentional committed changes are present.
59
+ - `./publish.sh`
90
60
  - Confirm public Pro still routes through `frontier_pro_v2_guarded`.
91
- - Confirm `shipping_pro_search` remains available as the retained search-only baseline profile.
61
+ - Confirm `shipping_pro_search` remains available as the retained baseline.
92
62
  - Run `cargo test`.
93
63
  - Run `cargo test --release --lib smart_automove_release_opening_black_reply_speed_gate -- --ignored --nocapture`.
94
64
  - Run `cargo test --release --lib smart_automove_release_mixed_runtime_speed_gate -- --ignored --nocapture`.
95
- - Commit valuable changes before version bump / publish.
96
65
  - Clean disposable experiment artifacts after validation with `./scripts/clean-experiment-artifacts.sh`.
97
-
98
- Production blockers:
99
-
100
- - build/test failures
101
- - release speed gate failures
102
- - any regression in the deployed `frontier_pro_v2_guarded` Pro path
103
-
104
- Non-blocking retained experiment state:
105
-
106
- - the retained `shipping_pro_search` baseline, the retained `frontier_pro_v2_guarded` frontier, and ignored probes
107
- - experiment workflow/logging helpers
108
- - compressed automove backlog / knowledge / archive docs
package/mons-web.d.ts CHANGED
@@ -10,55 +10,10 @@
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 ManaKind {
14
- Regular = 0,
15
- Supermana = 1,
16
- }
17
- /**
18
- */
19
- export enum EventModelKind {
20
- MonMove = 0,
21
- ManaMove = 1,
22
- ManaScored = 2,
23
- MysticAction = 3,
24
- DemonAction = 4,
25
- DemonAdditionalStep = 5,
26
- SpiritTargetMove = 6,
27
- PickupBomb = 7,
28
- PickupPotion = 8,
29
- PickupMana = 9,
30
- MonFainted = 10,
31
- ManaDropped = 11,
32
- SupermanaBackToBase = 12,
33
- BombAttack = 13,
34
- MonAwake = 14,
35
- BombExplosion = 15,
36
- NextTurn = 16,
37
- GameOver = 17,
38
- Takeback = 18,
39
- UsePotion = 19,
40
- }
41
- /**
42
- */
43
- export enum Consumable {
44
- Potion = 0,
45
- Bomb = 1,
46
- BombOrPotion = 2,
47
- }
48
- /**
49
- */
50
- export enum ItemModelKind {
51
- Mon = 0,
52
- Mana = 1,
53
- MonWithMana = 2,
54
- MonWithConsumable = 3,
55
- Consumable = 4,
56
- }
57
- /**
58
- */
59
- export enum GameVariant {
60
- Classic = 0,
61
- SwappedManaRows = 1,
13
+ export enum Modifier {
14
+ SelectPotion = 0,
15
+ SelectBomb = 1,
16
+ Cancel = 2,
62
17
  }
63
18
  /**
64
19
  */
@@ -76,10 +31,11 @@ export enum Color {
76
31
  }
77
32
  /**
78
33
  */
79
- export enum Modifier {
80
- SelectPotion = 0,
81
- SelectBomb = 1,
82
- Cancel = 2,
34
+ export enum OutputModelKind {
35
+ InvalidInput = 0,
36
+ LocationsToStartFrom = 1,
37
+ NextInputOptions = 2,
38
+ Events = 3,
83
39
  }
84
40
  /**
85
41
  */
@@ -92,13 +48,10 @@ export enum MonKind {
92
48
  }
93
49
  /**
94
50
  */
95
- export enum SquareModelKind {
96
- Regular = 0,
97
- ConsumableBase = 1,
98
- SupermanaBase = 2,
99
- ManaBase = 3,
100
- ManaPool = 4,
101
- MonBase = 5,
51
+ export enum Consumable {
52
+ Potion = 0,
53
+ Bomb = 1,
54
+ BombOrPotion = 2,
102
55
  }
103
56
  /**
104
57
  */
@@ -115,11 +68,68 @@ export enum NextInputKind {
115
68
  }
116
69
  /**
117
70
  */
118
- export enum OutputModelKind {
119
- InvalidInput = 0,
120
- LocationsToStartFrom = 1,
121
- NextInputOptions = 2,
122
- Events = 3,
71
+ export enum ItemModelKind {
72
+ Mon = 0,
73
+ Mana = 1,
74
+ MonWithMana = 2,
75
+ MonWithConsumable = 3,
76
+ Consumable = 4,
77
+ }
78
+ /**
79
+ */
80
+ export enum ManaKind {
81
+ Regular = 0,
82
+ Supermana = 1,
83
+ }
84
+ /**
85
+ */
86
+ export enum GameVariant {
87
+ Classic = 0,
88
+ SwappedManaRows = 1,
89
+ OffsetArcManaRows = 2,
90
+ CenterSpokeManaRows = 3,
91
+ AlternatingManaRows = 4,
92
+ InnerWedgeManaRows = 5,
93
+ OuterWedgeManaRows = 6,
94
+ BentCenterManaRows = 7,
95
+ OuterEdgeManaRows = 8,
96
+ SplitFlankManaRows = 9,
97
+ ForwardBridgeManaRows = 10,
98
+ CornerChainManaRows = 11,
99
+ }
100
+ /**
101
+ */
102
+ export enum SquareModelKind {
103
+ Regular = 0,
104
+ ConsumableBase = 1,
105
+ SupermanaBase = 2,
106
+ ManaBase = 3,
107
+ ManaPool = 4,
108
+ MonBase = 5,
109
+ }
110
+ /**
111
+ */
112
+ export enum EventModelKind {
113
+ MonMove = 0,
114
+ ManaMove = 1,
115
+ ManaScored = 2,
116
+ MysticAction = 3,
117
+ DemonAction = 4,
118
+ DemonAdditionalStep = 5,
119
+ SpiritTargetMove = 6,
120
+ PickupBomb = 7,
121
+ PickupPotion = 8,
122
+ PickupMana = 9,
123
+ MonFainted = 10,
124
+ ManaDropped = 11,
125
+ SupermanaBackToBase = 12,
126
+ BombAttack = 13,
127
+ MonAwake = 14,
128
+ BombExplosion = 15,
129
+ NextTurn = 16,
130
+ GameOver = 17,
131
+ Takeback = 18,
132
+ UsePotion = 19,
123
133
  }
124
134
  /**
125
135
  */
@@ -530,7 +540,6 @@ export interface InitOutput {
530
540
  readonly __wbg_set_nextinputmodel_location: (a: number, b: number) => void;
531
541
  readonly __wbg_get_nextinputmodel_location: (a: number) => number;
532
542
  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;
534
543
  readonly __wbg_get_location_i: (a: number) => number;
535
544
  readonly __wbg_get_location_j: (a: number) => number;
536
545
  readonly __wbg_get_mon_color: (a: number) => number;
@@ -548,6 +557,7 @@ export interface InitOutput {
548
557
  readonly location_new: (a: number, b: number) => number;
549
558
  readonly __wbg_set_mon_cooldown: (a: number, b: number) => void;
550
559
  readonly __wbg_get_mon_cooldown: (a: number) => number;
560
+ readonly winner: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => void;
551
561
  readonly __wbindgen_malloc: (a: number, b: number) => number;
552
562
  readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
553
563
  readonly __wbindgen_add_to_stack_pointer: (a: number) => number;
package/mons-web.js CHANGED
@@ -198,40 +198,40 @@ function handleError(f, args) {
198
198
  }
199
199
  /**
200
200
  */
201
- export const ManaKind = Object.freeze({ Regular:0,"0":"Regular",Supermana:1,"1":"Supermana", });
201
+ export const Modifier = Object.freeze({ SelectPotion:0,"0":"SelectPotion",SelectBomb:1,"1":"SelectBomb",Cancel:2,"2":"Cancel", });
202
202
  /**
203
203
  */
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", });
204
+ export const AvailableMoveKind = Object.freeze({ MonMove:0,"0":"MonMove",ManaMove:1,"1":"ManaMove",Action:2,"2":"Action",Potion:3,"3":"Potion", });
205
205
  /**
206
206
  */
207
- export const Consumable = Object.freeze({ Potion:0,"0":"Potion",Bomb:1,"1":"Bomb",BombOrPotion:2,"2":"BombOrPotion", });
207
+ export const Color = Object.freeze({ White:0,"0":"White",Black:1,"1":"Black", });
208
208
  /**
209
209
  */
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", });
210
+ export const OutputModelKind = Object.freeze({ InvalidInput:0,"0":"InvalidInput",LocationsToStartFrom:1,"1":"LocationsToStartFrom",NextInputOptions:2,"2":"NextInputOptions",Events:3,"3":"Events", });
211
211
  /**
212
212
  */
213
- export const GameVariant = Object.freeze({ Classic:0,"0":"Classic",SwappedManaRows:1,"1":"SwappedManaRows", });
213
+ 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", });
214
214
  /**
215
215
  */
216
- export const AvailableMoveKind = Object.freeze({ MonMove:0,"0":"MonMove",ManaMove:1,"1":"ManaMove",Action:2,"2":"Action",Potion:3,"3":"Potion", });
216
+ export const Consumable = Object.freeze({ Potion:0,"0":"Potion",Bomb:1,"1":"Bomb",BombOrPotion:2,"2":"BombOrPotion", });
217
217
  /**
218
218
  */
219
- export const Color = Object.freeze({ White:0,"0":"White",Black:1,"1":"Black", });
219
+ 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", });
220
220
  /**
221
221
  */
222
- export const Modifier = Object.freeze({ SelectPotion:0,"0":"SelectPotion",SelectBomb:1,"1":"SelectBomb",Cancel:2,"2":"Cancel", });
222
+ 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", });
223
223
  /**
224
224
  */
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", });
225
+ export const ManaKind = Object.freeze({ Regular:0,"0":"Regular",Supermana:1,"1":"Supermana", });
226
226
  /**
227
227
  */
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", });
228
+ 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", });
229
229
  /**
230
230
  */
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", });
231
+ 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", });
232
232
  /**
233
233
  */
234
- export const OutputModelKind = Object.freeze({ InvalidInput:0,"0":"InvalidInput",LocationsToStartFrom:1,"1":"LocationsToStartFrom",NextInputOptions:2,"2":"NextInputOptions",Events:3,"3":"Events", });
234
+ 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", });
235
235
 
236
236
  const EventModelFinalization = (typeof FinalizationRegistry === 'undefined')
237
237
  ? { register: () => {}, unregister: () => {} }
@@ -1421,14 +1421,14 @@ function __wbg_get_imports() {
1421
1421
  const ret = getStringFromWasm0(arg0, arg1);
1422
1422
  return addHeapObject(ret);
1423
1423
  };
1424
- imports.wbg.__wbg_location_new = function(arg0) {
1425
- const ret = Location.__wrap(arg0);
1426
- return addHeapObject(ret);
1427
- };
1428
1424
  imports.wbg.__wbg_eventmodel_new = function(arg0) {
1429
1425
  const ret = EventModel.__wrap(arg0);
1430
1426
  return addHeapObject(ret);
1431
1427
  };
1428
+ imports.wbg.__wbg_location_new = function(arg0) {
1429
+ const ret = Location.__wrap(arg0);
1430
+ return addHeapObject(ret);
1431
+ };
1432
1432
  imports.wbg.__wbg_nextinputmodel_new = function(arg0) {
1433
1433
  const ret = NextInputModel.__wrap(arg0);
1434
1434
  return addHeapObject(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.128",
5
+ "version": "0.1.130",
6
6
  "license": "CC0-1.0",
7
7
  "repository": {
8
8
  "type": "git",