mons-web 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-web.d.ts CHANGED
@@ -19,27 +19,21 @@ export enum ItemModelKind {
19
19
  }
20
20
  /**
21
21
  */
22
- export enum EventModelKind {
22
+ export enum AvailableMoveKind {
23
23
  MonMove = 0,
24
24
  ManaMove = 1,
25
- ManaScored = 2,
26
- MysticAction = 3,
27
- DemonAction = 4,
28
- DemonAdditionalStep = 5,
29
- SpiritTargetMove = 6,
30
- PickupBomb = 7,
31
- PickupPotion = 8,
32
- PickupMana = 9,
33
- MonFainted = 10,
34
- ManaDropped = 11,
35
- SupermanaBackToBase = 12,
36
- BombAttack = 13,
37
- MonAwake = 14,
38
- BombExplosion = 15,
39
- NextTurn = 16,
40
- GameOver = 17,
41
- Takeback = 18,
42
- UsePotion = 19,
25
+ Action = 2,
26
+ Potion = 3,
27
+ }
28
+ /**
29
+ */
30
+ export enum SquareModelKind {
31
+ Regular = 0,
32
+ ConsumableBase = 1,
33
+ SupermanaBase = 2,
34
+ ManaBase = 3,
35
+ ManaPool = 4,
36
+ MonBase = 5,
43
37
  }
44
38
  /**
45
39
  */
@@ -56,16 +50,35 @@ export enum ManaKind {
56
50
  }
57
51
  /**
58
52
  */
59
- export enum NextInputKind {
53
+ export enum OutputModelKind {
54
+ InvalidInput = 0,
55
+ LocationsToStartFrom = 1,
56
+ NextInputOptions = 2,
57
+ Events = 3,
58
+ }
59
+ /**
60
+ */
61
+ export enum EventModelKind {
60
62
  MonMove = 0,
61
63
  ManaMove = 1,
62
- MysticAction = 2,
63
- DemonAction = 3,
64
- DemonAdditionalStep = 4,
65
- SpiritTargetCapture = 5,
64
+ ManaScored = 2,
65
+ MysticAction = 3,
66
+ DemonAction = 4,
67
+ DemonAdditionalStep = 5,
66
68
  SpiritTargetMove = 6,
67
- SelectConsumable = 7,
68
- BombAttack = 8,
69
+ PickupBomb = 7,
70
+ PickupPotion = 8,
71
+ PickupMana = 9,
72
+ MonFainted = 10,
73
+ ManaDropped = 11,
74
+ SupermanaBackToBase = 12,
75
+ BombAttack = 13,
76
+ MonAwake = 14,
77
+ BombExplosion = 15,
78
+ NextTurn = 16,
79
+ GameOver = 17,
80
+ Takeback = 18,
81
+ UsePotion = 19,
69
82
  }
70
83
  /**
71
84
  */
@@ -78,38 +91,12 @@ export enum MonKind {
78
91
  }
79
92
  /**
80
93
  */
81
- export enum AvailableMoveKind {
82
- MonMove = 0,
83
- ManaMove = 1,
84
- Action = 2,
85
- Potion = 3,
86
- }
87
- /**
88
- */
89
94
  export enum Color {
90
95
  White = 0,
91
96
  Black = 1,
92
97
  }
93
98
  /**
94
99
  */
95
- export enum OutputModelKind {
96
- InvalidInput = 0,
97
- LocationsToStartFrom = 1,
98
- NextInputOptions = 2,
99
- Events = 3,
100
- }
101
- /**
102
- */
103
- export enum SquareModelKind {
104
- Regular = 0,
105
- ConsumableBase = 1,
106
- SupermanaBase = 2,
107
- ManaBase = 3,
108
- ManaPool = 4,
109
- MonBase = 5,
110
- }
111
- /**
112
- */
113
100
  export enum Consumable {
114
101
  Potion = 0,
115
102
  Bomb = 1,
@@ -117,6 +104,19 @@ export enum Consumable {
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
  /**
@@ -519,9 +519,9 @@ export interface InitOutput {
519
519
  readonly verbosetrackingentitymodel_events: (a: number, b: number) => void;
520
520
  readonly verbosetrackingentitymodel_events_fen: (a: number, b: number) => void;
521
521
  readonly verbosetrackingentitymodel_fen: (a: number, b: number) => void;
522
+ readonly __wbg_set_nextinputmodel_location: (a: number, b: number) => void;
522
523
  readonly __wbg_get_nextinputmodel_location: (a: number) => number;
523
524
  readonly __wbg_squaremodel_free: (a: number) => void;
524
- readonly __wbg_set_nextinputmodel_location: (a: number, b: number) => void;
525
525
  readonly __wbg_get_mon_color: (a: number) => number;
526
526
  readonly __wbg_get_mon_cooldown: (a: number) => number;
527
527
  readonly __wbg_get_mon_kind: (a: number) => number;
package/mons-web.js CHANGED
@@ -201,7 +201,10 @@ function handleError(f, args) {
201
201
  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", });
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
+ /**
206
+ */
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", });
205
208
  /**
206
209
  */
207
210
  export const Modifier = Object.freeze({ SelectPotion:0,"0":"SelectPotion",SelectBomb:1,"1":"SelectBomb",Cancel:2,"2":"Cancel", });
@@ -210,25 +213,22 @@ export const Modifier = Object.freeze({ SelectPotion:0,"0":"SelectPotion",Select
210
213
  export const ManaKind = Object.freeze({ Regular:0,"0":"Regular",Supermana:1,"1":"Supermana", });
211
214
  /**
212
215
  */
213
- 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", });
216
+ export const OutputModelKind = Object.freeze({ InvalidInput:0,"0":"InvalidInput",LocationsToStartFrom:1,"1":"LocationsToStartFrom",NextInputOptions:2,"2":"NextInputOptions",Events:3,"3":"Events", });
214
217
  /**
215
218
  */
216
- 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", });
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", });
217
220
  /**
218
221
  */
219
- export const AvailableMoveKind = Object.freeze({ MonMove:0,"0":"MonMove",ManaMove:1,"1":"ManaMove",Action:2,"2":"Action",Potion:3,"3":"Potion", });
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", });
220
223
  /**
221
224
  */
222
225
  export const Color = Object.freeze({ White:0,"0":"White",Black:1,"1":"Black", });
223
226
  /**
224
227
  */
225
- export const OutputModelKind = Object.freeze({ InvalidInput:0,"0":"InvalidInput",LocationsToStartFrom:1,"1":"LocationsToStartFrom",NextInputOptions:2,"2":"NextInputOptions",Events:3,"3":"Events", });
226
- /**
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 Consumable = Object.freeze({ Potion:0,"0":"Potion",Bomb:1,"1":"Bomb",BombOrPotion:2,"2":"BombOrPotion", });
229
229
  /**
230
230
  */
231
- export const Consumable = Object.freeze({ Potion:0,"0":"Potion",Bomb:1,"1":"Bomb",BombOrPotion:2,"2":"BombOrPotion", });
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", });
232
232
 
233
233
  const EventModelFinalization = (typeof FinalizationRegistry === 'undefined')
234
234
  ? { register: () => {}, unregister: () => {} }
@@ -1420,14 +1420,14 @@ function __wbg_get_imports() {
1420
1420
  const ret = Location.__wrap(arg0);
1421
1421
  return addHeapObject(ret);
1422
1422
  };
1423
- imports.wbg.__wbg_eventmodel_new = function(arg0) {
1424
- const ret = EventModel.__wrap(arg0);
1425
- return addHeapObject(ret);
1426
- };
1427
1423
  imports.wbg.__wbg_nextinputmodel_new = function(arg0) {
1428
1424
  const ret = NextInputModel.__wrap(arg0);
1429
1425
  return addHeapObject(ret);
1430
1426
  };
1427
+ imports.wbg.__wbg_eventmodel_new = function(arg0) {
1428
+ const ret = EventModel.__wrap(arg0);
1429
+ return addHeapObject(ret);
1430
+ };
1431
1431
  imports.wbg.__wbg_verbosetrackingentitymodel_new = function(arg0) {
1432
1432
  const ret = VerboseTrackingEntityModel.__wrap(arg0);
1433
1433
  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.122",
5
+ "version": "0.1.124",
6
6
  "license": "CC0-1.0",
7
7
  "repository": {
8
8
  "type": "git",