mons-rust 0.1.122 → 0.1.124

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,36 @@ 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
+ - active backlog: `AUTOMOVE_IDEAS.md`
15
14
  - durable lessons: `docs/automove-knowledge.md`
16
- - retired profile archive: `docs/automove-archive.md`
15
+ - archive: `docs/automove-archive.md`
16
+ - compatibility pointer: `docs/automove-experiments.md`
17
17
 
18
- Useful scripts:
18
+ Session-start commands:
19
19
 
20
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
21
  - `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
22
  - `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>`
23
+ - `./scripts/run-automove-experiment.sh runtime-preflight <candidate>`
24
+ - `SMART_PROMOTION_TARGET_MODE=<fast|normal> ./scripts/run-automove-experiment.sh fast-screen <candidate>`
31
25
  - `./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`
26
+ - `./scripts/clean-experiment-artifacts.sh --dry-run`
37
27
 
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`.
28
+ Default artifact layout:
29
+
30
+ - logs: `target/experiment-runs/<candidate>/`
31
+ - workflow-only logs: `target/experiment-runs/misc/`
32
+ - runtime-preflight stamps: `target/experiment-stamps/`
33
+
34
+ Compatibility notes:
35
+
36
+ - `preflight`, `pre-screen`, and `pro-pre-screen` still exist, but they are legacy diagnostics.
37
+ - `audit-screen` and `pro-audit-screen` are spot checks for clean triage rejects, not promotion evidence.
38
+ - Unless a note says otherwise, new candidates should branch from `runtime_current`.
39
+ - Shipping runtime note: the package release ships `runtime_current`; `runtime_pro_turn_engine_v30` is the retained Pro frontier for offline experiments, and `runtime_pro_turn_engine_v1` remains reference-only history.
39
40
 
40
41
  ## rules-tests runner
41
42
 
@@ -67,6 +68,38 @@ Pack a directory back into chunks:
67
68
 
68
69
  `./scripts/pack-rules-tests.sh --dir /tmp/rules-tests-work --chunks-dir ./rules-tests-chunks --chunk-size 100000`
69
70
 
71
+ ## repo cleanup
72
+
73
+ `./repo-clean.sh`
74
+
75
+ - switches back to a kept branch (`main`, `master`, or `keep/*`) before deleting disposable branches
76
+ - removes non-primary worktrees, clears stashes, deletes non-kept local branches, and prunes non-kept remote branches
77
+ - use `./repo-clean.sh --local-only` to skip remote branch deletion
78
+ - use `keep/<name>` for any branch you want to protect from cleanup
79
+
70
80
  ## publishing to npm
71
81
 
72
82
  `./publish.sh`
83
+
84
+ Release checklist:
85
+
86
+ - Review `git status` before publish and confirm only intentional committed changes are present.
87
+ - Confirm `runtime_current` is still the shipping automove path.
88
+ - Confirm retained Pro experiment frontiers (`runtime_pro_turn_engine_v30` and newer candidate-only follow-ups) remain fenced off from production.
89
+ - Run `cargo test`.
90
+ - Run `cargo test --release --lib smart_automove_release_opening_black_reply_speed_gate -- --ignored --nocapture`.
91
+ - Run `cargo test --release --lib smart_automove_release_mixed_runtime_speed_gate -- --ignored --nocapture`.
92
+ - Commit valuable changes before version bump / publish.
93
+ - Clean disposable experiment artifacts after validation with `./scripts/clean-experiment-artifacts.sh`.
94
+
95
+ Production blockers:
96
+
97
+ - build/test failures
98
+ - release speed gate failures
99
+ - any regression that enables turn-engine in shipping `runtime_current`
100
+
101
+ Non-blocking retained experiment state:
102
+
103
+ - retained Pro frontier profiles (`runtime_pro_turn_engine_v30`, candidate-only follow-ups, and `runtime_pro_turn_engine_v1` as reference history) plus ignored probes
104
+ - experiment workflow/logging helpers
105
+ - compressed automove backlog / knowledge / archive docs
package/mons-rust.d.ts CHANGED
@@ -10,9 +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 ManaKind {
14
- Regular = 0,
15
- Supermana = 1,
13
+ export enum ItemModelKind {
14
+ Mon = 0,
15
+ Mana = 1,
16
+ MonWithMana = 2,
17
+ MonWithConsumable = 3,
18
+ Consumable = 4,
16
19
  }
17
20
  /**
18
21
  */
@@ -24,11 +27,18 @@ export enum AvailableMoveKind {
24
27
  }
25
28
  /**
26
29
  */
27
- export enum OutputModelKind {
28
- InvalidInput = 0,
29
- LocationsToStartFrom = 1,
30
- NextInputOptions = 2,
31
- Events = 3,
30
+ export enum MonKind {
31
+ Demon = 0,
32
+ Drainer = 1,
33
+ Angel = 2,
34
+ Spirit = 3,
35
+ Mystic = 4,
36
+ }
37
+ /**
38
+ */
39
+ export enum Color {
40
+ White = 0,
41
+ Black = 1,
32
42
  }
33
43
  /**
34
44
  */
@@ -39,35 +49,17 @@ export enum Consumable {
39
49
  }
40
50
  /**
41
51
  */
42
- export enum MonKind {
43
- Demon = 0,
44
- Drainer = 1,
45
- Angel = 2,
46
- Spirit = 3,
47
- Mystic = 4,
48
- }
49
- /**
50
- */
51
- export enum NextInputKind {
52
- MonMove = 0,
53
- ManaMove = 1,
54
- MysticAction = 2,
55
- DemonAction = 3,
56
- DemonAdditionalStep = 4,
57
- SpiritTargetCapture = 5,
58
- SpiritTargetMove = 6,
59
- SelectConsumable = 7,
60
- BombAttack = 8,
52
+ export enum OutputModelKind {
53
+ InvalidInput = 0,
54
+ LocationsToStartFrom = 1,
55
+ NextInputOptions = 2,
56
+ Events = 3,
61
57
  }
62
58
  /**
63
59
  */
64
- export enum SquareModelKind {
60
+ export enum ManaKind {
65
61
  Regular = 0,
66
- ConsumableBase = 1,
67
- SupermanaBase = 2,
68
- ManaBase = 3,
69
- ManaPool = 4,
70
- MonBase = 5,
62
+ Supermana = 1,
71
63
  }
72
64
  /**
73
65
  */
@@ -95,18 +87,13 @@ export enum EventModelKind {
95
87
  }
96
88
  /**
97
89
  */
98
- export enum Color {
99
- White = 0,
100
- Black = 1,
101
- }
102
- /**
103
- */
104
- export enum ItemModelKind {
105
- Mon = 0,
106
- Mana = 1,
107
- MonWithMana = 2,
108
- MonWithConsumable = 3,
109
- Consumable = 4,
90
+ export enum SquareModelKind {
91
+ Regular = 0,
92
+ ConsumableBase = 1,
93
+ SupermanaBase = 2,
94
+ ManaBase = 3,
95
+ ManaPool = 4,
96
+ MonBase = 5,
110
97
  }
111
98
  /**
112
99
  */
@@ -117,6 +104,19 @@ export enum Modifier {
117
104
  }
118
105
  /**
119
106
  */
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
+ }
118
+ /**
119
+ */
120
120
  export class EventModel {
121
121
  free(): void;
122
122
  /**
package/mons-rust.js CHANGED
@@ -201,37 +201,37 @@ function handleError(f, args) {
201
201
  }
202
202
  /**
203
203
  */
204
- module.exports.ManaKind = Object.freeze({ Regular:0,"0":"Regular",Supermana:1,"1":"Supermana", });
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
205
  /**
206
206
  */
207
207
  module.exports.AvailableMoveKind = Object.freeze({ MonMove:0,"0":"MonMove",ManaMove:1,"1":"ManaMove",Action:2,"2":"Action",Potion:3,"3":"Potion", });
208
208
  /**
209
209
  */
210
- module.exports.OutputModelKind = Object.freeze({ InvalidInput:0,"0":"InvalidInput",LocationsToStartFrom:1,"1":"LocationsToStartFrom",NextInputOptions:2,"2":"NextInputOptions",Events:3,"3":"Events", });
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", });
211
211
  /**
212
212
  */
213
- module.exports.Consumable = Object.freeze({ Potion:0,"0":"Potion",Bomb:1,"1":"Bomb",BombOrPotion:2,"2":"BombOrPotion", });
213
+ module.exports.Color = Object.freeze({ White:0,"0":"White",Black:1,"1":"Black", });
214
214
  /**
215
215
  */
216
- 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", });
216
+ module.exports.Consumable = Object.freeze({ Potion:0,"0":"Potion",Bomb:1,"1":"Bomb",BombOrPotion:2,"2":"BombOrPotion", });
217
217
  /**
218
218
  */
219
- 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", });
219
+ module.exports.OutputModelKind = Object.freeze({ InvalidInput:0,"0":"InvalidInput",LocationsToStartFrom:1,"1":"LocationsToStartFrom",NextInputOptions:2,"2":"NextInputOptions",Events:3,"3":"Events", });
220
220
  /**
221
221
  */
222
- 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", });
222
+ module.exports.ManaKind = Object.freeze({ Regular:0,"0":"Regular",Supermana:1,"1":"Supermana", });
223
223
  /**
224
224
  */
225
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", });
226
226
  /**
227
227
  */
228
- module.exports.Color = Object.freeze({ White:0,"0":"White",Black:1,"1":"Black", });
228
+ 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", });
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.Modifier = Object.freeze({ SelectPotion:0,"0":"SelectPotion",SelectBomb:1,"1":"SelectBomb",Cancel:2,"2":"Cancel", });
232
232
  /**
233
233
  */
234
- module.exports.Modifier = Object.freeze({ SelectPotion:0,"0":"SelectPotion",SelectBomb:1,"1":"SelectBomb",Cancel:2,"2":"Cancel", });
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: () => {} }
@@ -1402,13 +1402,13 @@ module.exports.__wbg_location_new = function(arg0) {
1402
1402
  return addHeapObject(ret);
1403
1403
  };
1404
1404
 
1405
- module.exports.__wbg_eventmodel_new = function(arg0) {
1406
- const ret = EventModel.__wrap(arg0);
1405
+ module.exports.__wbg_nextinputmodel_new = function(arg0) {
1406
+ const ret = NextInputModel.__wrap(arg0);
1407
1407
  return addHeapObject(ret);
1408
1408
  };
1409
1409
 
1410
- module.exports.__wbg_nextinputmodel_new = function(arg0) {
1411
- const ret = NextInputModel.__wrap(arg0);
1410
+ module.exports.__wbg_eventmodel_new = function(arg0) {
1411
+ const ret = EventModel.__wrap(arg0);
1412
1412
  return addHeapObject(ret);
1413
1413
  };
1414
1414
 
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.122",
4
+ "version": "0.1.124",
5
5
  "license": "CC0-1.0",
6
6
  "repository": {
7
7
  "type": "git",