@idlekit/core 0.2.0 → 0.3.0
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/dist/index.d.ts +12 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/scenario/compile.d.ts +25 -0
- package/dist/scenario/compile.js +60 -0
- package/dist/scenario/compile.js.map +1 -1
- package/dist/scenario/scenarioContract.d.ts +152 -0
- package/dist/scenario/scenarioContract.js +2815 -0
- package/dist/scenario/scenarioContract.js.map +1 -0
- package/dist/sim/analysis/analyzers.d.ts +245 -0
- package/dist/sim/analysis/analyzers.js +1076 -0
- package/dist/sim/analysis/analyzers.js.map +1 -0
- package/dist/sim/analysis/contracts.d.ts +147 -0
- package/dist/sim/analysis/contracts.js +1230 -0
- package/dist/sim/analysis/contracts.js.map +1 -0
- package/dist/sim/analysis/distribution.d.ts +199 -0
- package/dist/sim/analysis/distribution.js +1246 -0
- package/dist/sim/analysis/distribution.js.map +1 -0
- package/dist/sim/analysis/eta.d.ts +118 -0
- package/dist/sim/analysis/eta.js +968 -70
- package/dist/sim/analysis/eta.js.map +1 -1
- package/dist/sim/analysis/experiment.d.ts +300 -0
- package/dist/sim/analysis/experiment.js +2206 -0
- package/dist/sim/analysis/experiment.js.map +1 -0
- package/dist/sim/analysis/growth.d.ts +2 -0
- package/dist/sim/analysis/growth.js +5 -1
- package/dist/sim/analysis/growth.js.map +1 -1
- package/dist/sim/analysis/growthFit.d.ts +183 -0
- package/dist/sim/analysis/growthFit.js +1798 -0
- package/dist/sim/analysis/growthFit.js.map +1 -0
- package/dist/sim/analysis/inspect.d.ts +236 -0
- package/dist/sim/analysis/inspect.js +388 -0
- package/dist/sim/analysis/inspect.js.map +1 -0
- package/dist/sim/analysis/metrics.d.ts +91 -0
- package/dist/sim/analysis/metrics.js +266 -0
- package/dist/sim/analysis/metrics.js.map +1 -0
- package/dist/sim/analysis/prestigeCycle.d.ts +6 -0
- package/dist/sim/analysis/prestigeCycle.js +10 -1
- package/dist/sim/analysis/prestigeCycle.js.map +1 -1
- package/dist/sim/analysis/registry.d.ts +41 -0
- package/dist/sim/analysis/registry.js +54 -0
- package/dist/sim/analysis/registry.js.map +1 -0
- package/dist/sim/analysis/resetActions.d.ts +7 -0
- package/dist/sim/analysis/resetActions.js +45 -0
- package/dist/sim/analysis/resetActions.js.map +1 -0
- package/dist/sim/analysis/resetCycle.d.ts +175 -0
- package/dist/sim/analysis/resetCycle.js +1009 -0
- package/dist/sim/analysis/resetCycle.js.map +1 -0
- package/dist/sim/analysis/resetOptimization.d.ts +198 -0
- package/dist/sim/analysis/resetOptimization.js +2187 -0
- package/dist/sim/analysis/resetOptimization.js.map +1 -0
- package/dist/sim/analysis/sensitivity.d.ts +73 -0
- package/dist/sim/analysis/sensitivity.js +160 -0
- package/dist/sim/analysis/sensitivity.js.map +1 -0
- package/dist/sim/monteCarlo.d.ts +12 -0
- package/dist/sim/monteCarlo.js +33 -4
- package/dist/sim/monteCarlo.js.map +1 -1
- package/dist/sim/observation.d.ts +22 -0
- package/dist/sim/observation.js +33 -0
- package/dist/sim/observation.js.map +1 -1
- package/dist/sim/offline.js +9 -2
- package/dist/sim/offline.js.map +1 -1
- package/dist/sim/random.d.ts +15 -0
- package/dist/sim/random.js +28 -0
- package/dist/sim/random.js.map +1 -1
- package/dist/sim/session.d.ts +7 -0
- package/dist/sim/session.js +13 -0
- package/dist/sim/session.js.map +1 -1
- package/dist/sim/simulator.js +7 -1
- package/dist/sim/simulator.js.map +1 -1
- package/dist/sim/step.d.ts +67 -1
- package/dist/sim/step.js +100 -18
- package/dist/sim/step.js.map +1 -1
- package/dist/sim/strategy/opt/freshRun.d.ts +3 -0
- package/dist/sim/strategy/opt/freshRun.js +6 -0
- package/dist/sim/strategy/opt/freshRun.js.map +1 -0
- package/dist/sim/strategy/opt/runner.js +2 -2
- package/dist/sim/strategy/opt/runner.js.map +1 -1
- package/dist/sim/strategy/planner.d.ts +26 -0
- package/dist/sim/strategy/planner.js +30 -0
- package/dist/sim/strategy/planner.js.map +1 -1
- package/package.json +2 -2
package/dist/sim/offline.js
CHANGED
|
@@ -3,8 +3,8 @@ import { analyzeUX } from "./analysis/ux";
|
|
|
3
3
|
import { recordPrestigeReset } from "./constraints";
|
|
4
4
|
import { createBoundedLog, createEventBuffer } from "./eventBuffer";
|
|
5
5
|
import { observationLedger } from "./goalRead";
|
|
6
|
-
import { createObservationRecorder, statsFromObservation } from "./observation";
|
|
7
|
-
import { resolveOfflineSeconds } from "./offlineCredit";
|
|
6
|
+
import { createObservationRecorder, emitCommittedResets, statsFromObservation } from "./observation";
|
|
7
|
+
import { offlineAbsenceForCredit, resolveOfflineSeconds } from "./offlineCredit";
|
|
8
8
|
import { stepOnce } from "./step";
|
|
9
9
|
import { assertSimulationClock, assertTickAdvanced, nextBoundary, stepContext, timeEpsilon, timeStepEvents } from "./timeBoundary";
|
|
10
10
|
export function resolveOfflineActionPolicy(args) {
|
|
@@ -143,6 +143,10 @@ export function applyOfflineSeconds(args) {
|
|
|
143
143
|
admits,
|
|
144
144
|
constraints,
|
|
145
145
|
fast: opts?.fast ?? scenario.run.fast,
|
|
146
|
+
// Away time is the absence that earned the credited seconds so far, after cap and decay.
|
|
147
|
+
...(scenario.ctx.clocks
|
|
148
|
+
? { wallT: scenario.ctx.clocks.wallT + offlineAbsenceForCredit(actionElapsedSec, seconds, capPolicy) }
|
|
149
|
+
: {}),
|
|
146
150
|
});
|
|
147
151
|
assertTickAdvanced("offline", actionStartT, out.next.t, decision.dt, stepSec, start.t);
|
|
148
152
|
// Restore only a batch the policy rejected whole, before or at re-resolution. An empty decide keeps its own state.
|
|
@@ -165,6 +169,9 @@ export function applyOfflineSeconds(args) {
|
|
|
165
169
|
prestigeApplied: out.prestigeResetT !== undefined,
|
|
166
170
|
state,
|
|
167
171
|
});
|
|
172
|
+
// The reset fact follows the action fact the recorder sent, as online and at a reset-cycle boundary.
|
|
173
|
+
if (scenario.run.observation?.enabled !== false)
|
|
174
|
+
emitCommittedResets(scenario.run.observer, out.committedResets ?? []);
|
|
168
175
|
eventBuffer.pushTimed(timeStepEvents(out.events, actionStartT, state.t));
|
|
169
176
|
if (out.actionsApplied?.length) {
|
|
170
177
|
for (const row of out.actionsApplied) {
|
package/dist/sim/offline.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"offline.js","sourceRoot":"","sources":["../../src/sim/offline.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"offline.js","sourceRoot":"","sources":["../../src/sim/offline.ts"],"names":[],"mappings":"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"}
|
package/dist/sim/random.d.ts
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
1
1
|
export type Random = () => number;
|
|
2
2
|
export declare function mulberry32(seed: number): Random;
|
|
3
3
|
export declare function deriveDrawSeed(baseSeed: number, drawIndex: number): number;
|
|
4
|
+
/**
|
|
5
|
+
* Seed for one logical draw.
|
|
6
|
+
* Worker count and call order are not inputs. The same index is the same seed.
|
|
7
|
+
*
|
|
8
|
+
* @evidence docs/requirements/active/simulation-distribution.md#req-pr13-logical-draws The draw seed is a function of the base seed and the logical index only.
|
|
9
|
+
* @evidenceReview docs/requirements/active/simulation-distribution.md#req-pr13-logical-draws #6e3688a Re-read the section: reversed calls keep draw 2's seed, so the seed cannot depend on call order or workers.
|
|
10
|
+
*/
|
|
11
|
+
export declare function logicalDrawSeed(baseSeed: number, drawIndex: number): number;
|
|
12
|
+
/**
|
|
13
|
+
* Stable id for one logical draw. It is the decimal index, not a worker slot.
|
|
14
|
+
*
|
|
15
|
+
* @evidence docs/requirements/active/simulation-distribution.md#req-pr13-logical-draws The draw id is the logical index.
|
|
16
|
+
* @evidenceReview docs/requirements/active/simulation-distribution.md#req-pr13-logical-draws #6e3688a Re-read the section: draw ids are the decimal draw index, not a worker slot.
|
|
17
|
+
*/
|
|
18
|
+
export declare function logicalDrawId(drawIndex: number): string;
|
package/dist/sim/random.js
CHANGED
|
@@ -12,4 +12,32 @@ export function deriveDrawSeed(baseSeed, drawIndex) {
|
|
|
12
12
|
const rng = mulberry32((baseSeed ^ ((drawIndex + 1) * 0x9e3779b9)) >>> 0);
|
|
13
13
|
return Math.floor(rng() * 0xffffffff) >>> 0;
|
|
14
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Seed for one logical draw.
|
|
17
|
+
* Worker count and call order are not inputs. The same index is the same seed.
|
|
18
|
+
*
|
|
19
|
+
* @evidence docs/requirements/active/simulation-distribution.md#req-pr13-logical-draws The draw seed is a function of the base seed and the logical index only.
|
|
20
|
+
* @evidenceReview docs/requirements/active/simulation-distribution.md#req-pr13-logical-draws #6e3688a Re-read the section: reversed calls keep draw 2's seed, so the seed cannot depend on call order or workers.
|
|
21
|
+
*/
|
|
22
|
+
export function logicalDrawSeed(baseSeed, drawIndex) {
|
|
23
|
+
if (typeof baseSeed !== "number" || !Number.isFinite(baseSeed)) {
|
|
24
|
+
throw new Error("logical draw seed base must be finite");
|
|
25
|
+
}
|
|
26
|
+
if (!Number.isInteger(drawIndex) || drawIndex < 0) {
|
|
27
|
+
throw new Error("logical draw index must be an integer >= 0");
|
|
28
|
+
}
|
|
29
|
+
return deriveDrawSeed(baseSeed, drawIndex);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Stable id for one logical draw. It is the decimal index, not a worker slot.
|
|
33
|
+
*
|
|
34
|
+
* @evidence docs/requirements/active/simulation-distribution.md#req-pr13-logical-draws The draw id is the logical index.
|
|
35
|
+
* @evidenceReview docs/requirements/active/simulation-distribution.md#req-pr13-logical-draws #6e3688a Re-read the section: draw ids are the decimal draw index, not a worker slot.
|
|
36
|
+
*/
|
|
37
|
+
export function logicalDrawId(drawIndex) {
|
|
38
|
+
if (!Number.isInteger(drawIndex) || drawIndex < 0) {
|
|
39
|
+
throw new Error("logical draw index must be an integer >= 0");
|
|
40
|
+
}
|
|
41
|
+
return String(drawIndex);
|
|
42
|
+
}
|
|
15
43
|
//# sourceMappingURL=random.js.map
|
package/dist/sim/random.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"random.js","sourceRoot":"","sources":["../../src/sim/random.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC;IACnB,OAAO,GAAG,EAAE;QACV,CAAC,IAAI,CAAC,CAAC;QACP,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/C,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,UAAU,CAAC;IAC/C,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,SAAiB;IAChE,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;AAC9C,CAAC"}
|
|
1
|
+
{"version":3,"file":"random.js","sourceRoot":"","sources":["../../src/sim/random.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC;IACnB,OAAO,GAAG,EAAE;QACV,CAAC,IAAI,CAAC,CAAC;QACP,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/C,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,UAAU,CAAC;IAC/C,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,SAAiB;IAChE,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,SAAiB;IACjE,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,SAAiB;IAC7C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;AAC3B,CAAC"}
|
package/dist/sim/session.d.ts
CHANGED
|
@@ -97,6 +97,13 @@ export type SessionRunResult<N, U extends string, Vars> = Readonly<{
|
|
|
97
97
|
}>;
|
|
98
98
|
/** Throws when an opt-in offset list is empty, negative, overlapping, or outside the horizon. */
|
|
99
99
|
export declare function assertSessionSchedule(pattern: SessionPatternSpec): SessionOffsetBlock[];
|
|
100
|
+
/**
|
|
101
|
+
* Active blocks for a preset or an explicit schedule. Wall time is day * 86400 + offset.
|
|
102
|
+
*
|
|
103
|
+
* @evidence docs/requirements/active/reset-cycle-analysis.md#req-pr11-session-reset Reset policy analysis reads the active wall spans from these blocks.
|
|
104
|
+
* @evidenceReview docs/requirements/active/reset-cycle-analysis.md#req-pr11-session-reset #0ea6f15 Re-read the section: a twice-daily day has active spans [0, 1800) and [43200, 45000), which are these blocks.
|
|
105
|
+
*/
|
|
106
|
+
export declare function sessionActiveBlocks(pattern: SessionPatternSpec): readonly SessionOffsetBlock[];
|
|
100
107
|
/**
|
|
101
108
|
* One continued play. Wall time follows the schedule. `state.t` stays reward time.
|
|
102
109
|
* A later call is fresh only when the caller supplies a new strategy instance.
|
package/dist/sim/session.js
CHANGED
|
@@ -97,6 +97,19 @@ function blocksFor(pattern) {
|
|
|
97
97
|
return assertSessionSchedule(pattern);
|
|
98
98
|
return buildBlocks(pattern);
|
|
99
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* Active blocks for a preset or an explicit schedule. Wall time is day * 86400 + offset.
|
|
102
|
+
*
|
|
103
|
+
* @evidence docs/requirements/active/reset-cycle-analysis.md#req-pr11-session-reset Reset policy analysis reads the active wall spans from these blocks.
|
|
104
|
+
* @evidenceReview docs/requirements/active/reset-cycle-analysis.md#req-pr11-session-reset #0ea6f15 Re-read the section: a twice-daily day has active spans [0, 1800) and [43200, 45000), which are these blocks.
|
|
105
|
+
*/
|
|
106
|
+
export function sessionActiveBlocks(pattern) {
|
|
107
|
+
// A preset has no schedule to validate, so its day count is checked here. Zero days is not an empty session.
|
|
108
|
+
if (!Number.isInteger(pattern.days) || pattern.days <= 0) {
|
|
109
|
+
throw new Error("session days must be a positive integer");
|
|
110
|
+
}
|
|
111
|
+
return blocksFor(pattern);
|
|
112
|
+
}
|
|
100
113
|
function modelReadsClocks(scenario) {
|
|
101
114
|
return (scenario.model.clocks?.respondsTo?.length ?? 0) > 0;
|
|
102
115
|
}
|
package/dist/sim/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/sim/session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/sim/session.ts"],"names":[],"mappings":"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"}
|
package/dist/sim/simulator.js
CHANGED
|
@@ -2,7 +2,7 @@ import { analyzeUX } from "./analysis/ux";
|
|
|
2
2
|
import { recordPrestigeReset } from "./constraints";
|
|
3
3
|
import { createBoundedLog, createEventBuffer } from "./eventBuffer";
|
|
4
4
|
import { observationLedger } from "./goalRead";
|
|
5
|
-
import { createObservationRecorder, statsFromObservation } from "./observation";
|
|
5
|
+
import { createObservationRecorder, emitCommittedResets, statsFromObservation } from "./observation";
|
|
6
6
|
import { stepOnce } from "./step";
|
|
7
7
|
import { assertSimulationClock, assertTickAdvanced, nextBoundary, stepContext, timeStepEvents } from "./timeBoundary";
|
|
8
8
|
function finishTrace(enabled, trace, state) {
|
|
@@ -93,6 +93,8 @@ export function runScenario(sc) {
|
|
|
93
93
|
decisions,
|
|
94
94
|
constraints,
|
|
95
95
|
fast: sc.run.fast,
|
|
96
|
+
// Inside a session segment, wall time advances with the runner's summed tick seconds.
|
|
97
|
+
...(sc.ctx.clocks ? { wallT: sc.ctx.clocks.wallT + elapsedSec } : {}),
|
|
96
98
|
});
|
|
97
99
|
assertTickAdvanced("runScenario", actionStartT, step.next.t, decision.dt, stepSec, start.t);
|
|
98
100
|
constraints = recordPrestigeReset(constraints, step.prestigeResetT, sc.run.onPrestigeReset);
|
|
@@ -106,6 +108,10 @@ export function runScenario(sc) {
|
|
|
106
108
|
prestigeApplied: step.prestigeResetT !== undefined,
|
|
107
109
|
state,
|
|
108
110
|
});
|
|
111
|
+
// The reset fact follows the action fact the recorder sent, as at a reset-cycle boundary. A run with observation
|
|
112
|
+
// off notifies no observer, resets included, as the recorder does for the rest.
|
|
113
|
+
if (sc.run.observation?.enabled !== false)
|
|
114
|
+
emitCommittedResets(sc.run.observer, step.committedResets ?? []);
|
|
109
115
|
eventBuffer.pushTimed(timeStepEvents(step.events, actionStartT, state.t));
|
|
110
116
|
if (sc.run.trace?.keepActionsLog && step.actionsApplied?.length) {
|
|
111
117
|
for (const row of step.actionsApplied) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simulator.js","sourceRoot":"","sources":["../../src/sim/simulator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"simulator.js","sourceRoot":"","sources":["../../src/sim/simulator.ts"],"names":[],"mappings":"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"}
|
package/dist/sim/step.d.ts
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
import type { Money } from "../money/types";
|
|
2
2
|
import type { Action, Model, ScenarioConstraints, SimContext, SimEvent, SimState } from "./types";
|
|
3
|
+
export type ResetSnapshot = Readonly<{
|
|
4
|
+
t: number;
|
|
5
|
+
money: string;
|
|
6
|
+
points: string;
|
|
7
|
+
multiplier: string;
|
|
8
|
+
count: number;
|
|
9
|
+
}>;
|
|
10
|
+
/**
|
|
11
|
+
* One committed reset action.
|
|
12
|
+
* `rewardDelta` is the prestige point change from this action.
|
|
13
|
+
* A cycle adapter may replace it with its own metric before notifying.
|
|
14
|
+
*/
|
|
15
|
+
export type CommittedResetFact = Readonly<{
|
|
16
|
+
actionId: string;
|
|
17
|
+
kind: "prestige" | "custom";
|
|
18
|
+
t: number;
|
|
19
|
+
wallT: number | null;
|
|
20
|
+
cost: Readonly<{
|
|
21
|
+
unit: string;
|
|
22
|
+
decimal: string;
|
|
23
|
+
}> | null;
|
|
24
|
+
rewardDelta: string;
|
|
25
|
+
before: ResetSnapshot;
|
|
26
|
+
after: ResetSnapshot;
|
|
27
|
+
}>;
|
|
3
28
|
export type StepDecision<N, U extends string, Vars> = Readonly<{
|
|
4
29
|
action: Action<N, U, Vars>;
|
|
5
30
|
bulkSize?: number;
|
|
@@ -14,6 +39,8 @@ export type StepInput<N, U extends string, Vars> = Readonly<{
|
|
|
14
39
|
decisions?: readonly StepDecision<N, U, Vars>[];
|
|
15
40
|
/** Checks the action a decision re-resolves to. A rejected one is dropped without an event. */
|
|
16
41
|
admits?: (action: Action<N, U, Vars>) => boolean;
|
|
42
|
+
/** Wall time of this step's decisions, from the runner's elapsed clock. Without it, the segment clock is used. */
|
|
43
|
+
wallT?: number;
|
|
17
44
|
constraints?: ScenarioConstraints;
|
|
18
45
|
fast?: Readonly<{
|
|
19
46
|
enabled: boolean;
|
|
@@ -47,6 +74,11 @@ export type StepOutput<N, U extends string, Vars> = Readonly<{
|
|
|
47
74
|
/** Decision-time `t` of a prestige action that committed on this tick. */
|
|
48
75
|
prestigeResetT?: number;
|
|
49
76
|
walletDelta?: Money<N, U>;
|
|
77
|
+
/**
|
|
78
|
+
* Prestige or custom actions that committed in this call.
|
|
79
|
+
* Absent when none committed. A count change without one of these is not a reset.
|
|
80
|
+
*/
|
|
81
|
+
committedResets?: readonly CommittedResetFact[];
|
|
50
82
|
}>;
|
|
51
83
|
/**
|
|
52
84
|
* Buy size that still pays `Action.cost`.
|
|
@@ -63,12 +95,46 @@ type ExactEngine<N> = {
|
|
|
63
95
|
};
|
|
64
96
|
/** True when the wallet can pay the cost without `cmp` or a rounded `toNumber`. */
|
|
65
97
|
export declare function canSettleCost<N>(engine: ExactEngine<N>, wallet: N, cost: N): boolean;
|
|
98
|
+
/**
|
|
99
|
+
* Pay and apply already chosen actions.
|
|
100
|
+
* This is the payment path inside `stepOnce`. It does not tick income, evolve, or advance `t`.
|
|
101
|
+
* Each decision re-reads `model.actions` for the state so far, so a later buy is quoted after earlier applies.
|
|
102
|
+
*
|
|
103
|
+
* @evidence docs/requirements/active/reset-cycle-execution.md#req-pr10-committed-reset A reset commits through this payment path and does not mint a tick of income.
|
|
104
|
+
* @evidenceReview docs/requirements/active/reset-cycle-execution.md#req-pr10-committed-reset #22d7a8a Re-read the section: the reset call does not tick income or advance t.
|
|
105
|
+
*/
|
|
106
|
+
export declare function applyDecisions<N, U extends string, Vars>(args: {
|
|
107
|
+
ctx: SimContext<N, U, Vars>;
|
|
108
|
+
model: Model<N, U, Vars>;
|
|
109
|
+
state: SimState<N, U, Vars>;
|
|
110
|
+
decisions?: readonly StepDecision<N, U, Vars>[];
|
|
111
|
+
constraints?: ScenarioConstraints;
|
|
112
|
+
admits?: (action: Action<N, U, Vars>) => boolean;
|
|
113
|
+
resetKinds?: ReadonlySet<"prestige" | "custom">;
|
|
114
|
+
/** Wall time of the decisions, from the caller's elapsed clock. Without it, the segment clock is used. */
|
|
115
|
+
wallT?: number;
|
|
116
|
+
/**
|
|
117
|
+
* Default true: re-read `model.actions` and drop a decision the model no longer lists.
|
|
118
|
+
* A reset adapter passes false. Its action was built for this state and may not be a model action.
|
|
119
|
+
*/
|
|
120
|
+
resolveAgainstModel?: boolean;
|
|
121
|
+
}): {
|
|
122
|
+
state: SimState<N, U, Vars>;
|
|
123
|
+
events: SimEvent<N>[];
|
|
124
|
+
actionsApplied: Array<{
|
|
125
|
+
t: number;
|
|
126
|
+
actionId: string;
|
|
127
|
+
label?: string;
|
|
128
|
+
bulkSize?: number;
|
|
129
|
+
}>;
|
|
130
|
+
prestigeResetT?: number;
|
|
131
|
+
committedResets: CommittedResetFact[];
|
|
132
|
+
};
|
|
66
133
|
/**
|
|
67
134
|
* Single source of truth for one tick.
|
|
68
135
|
* An omitted size or `singleBuySize` pays `Action.cost` once, then `apply` once.
|
|
69
136
|
* A larger integer size pays the matching `BulkQuote.cost` once, then `apply` once.
|
|
70
137
|
* `apply` does not pay again. A rejected quote leaves this state unchanged.
|
|
71
|
-
* Each decision re-reads `model.actions` for the state so far, so a later buy is quoted after earlier applies.
|
|
72
138
|
* Plugin callbacks are not a transaction.
|
|
73
139
|
*
|
|
74
140
|
* @evidence docs/requirements/active/bulk-quote-settlement.md#req-pr01-bulk-quote-settlement Pays the current matching BulkQuote once for a quoted bulk size and keeps the single-cost path for size 1.
|
package/dist/sim/step.js
CHANGED
|
@@ -244,33 +244,58 @@ function settleBulk(ctx, action, state, size, events) {
|
|
|
244
244
|
const quote = matched[0];
|
|
245
245
|
if (!quote)
|
|
246
246
|
return undefined;
|
|
247
|
-
|
|
247
|
+
const paid = payQuote(ctx, state, action.id, quote.cost, events);
|
|
248
|
+
if (!paid)
|
|
249
|
+
return undefined;
|
|
250
|
+
return { state: paid, cost: quote.cost };
|
|
251
|
+
}
|
|
252
|
+
function resetSnapshot(ctx, state) {
|
|
253
|
+
return {
|
|
254
|
+
t: state.t,
|
|
255
|
+
money: ctx.E.toString(state.wallet.money.amount),
|
|
256
|
+
points: ctx.E.toString(state.prestige.points),
|
|
257
|
+
multiplier: ctx.E.toString(state.prestige.multiplier),
|
|
258
|
+
count: state.prestige.count,
|
|
259
|
+
};
|
|
248
260
|
}
|
|
249
261
|
/**
|
|
250
|
-
*
|
|
251
|
-
*
|
|
252
|
-
|
|
253
|
-
|
|
262
|
+
* Wall time of a decision at reward time t. The segment clock records where the segment began on both clocks, and
|
|
263
|
+
* wall time advances with reward time inside it, up to the segment's wall end.
|
|
264
|
+
*/
|
|
265
|
+
function wallNow(ctx, t) {
|
|
266
|
+
const clocks = ctx.clocks;
|
|
267
|
+
if (!clocks || typeof clocks.wallT !== "number" || !Number.isFinite(clocks.wallT))
|
|
268
|
+
return null;
|
|
269
|
+
const offset = Number.isFinite(clocks.rewardT) ? Math.max(0, t - clocks.rewardT) : 0;
|
|
270
|
+
const wall = clocks.wallT + offset;
|
|
271
|
+
return Number.isFinite(clocks.wallEndT) ? Math.min(wall, clocks.wallEndT) : wall;
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Pay and apply already chosen actions.
|
|
275
|
+
* This is the payment path inside `stepOnce`. It does not tick income, evolve, or advance `t`.
|
|
254
276
|
* Each decision re-reads `model.actions` for the state so far, so a later buy is quoted after earlier applies.
|
|
255
|
-
* Plugin callbacks are not a transaction.
|
|
256
277
|
*
|
|
257
|
-
* @evidence docs/requirements/active/
|
|
258
|
-
* @evidenceReview docs/requirements/active/
|
|
278
|
+
* @evidence docs/requirements/active/reset-cycle-execution.md#req-pr10-committed-reset A reset commits through this payment path and does not mint a tick of income.
|
|
279
|
+
* @evidenceReview docs/requirements/active/reset-cycle-execution.md#req-pr10-committed-reset #22d7a8a Re-read the section: the reset call does not tick income or advance t.
|
|
259
280
|
*/
|
|
260
|
-
export function
|
|
261
|
-
const { ctx, model,
|
|
262
|
-
const prev = input.state;
|
|
281
|
+
export function applyDecisions(args) {
|
|
282
|
+
const { ctx, model, constraints } = args;
|
|
263
283
|
const { E } = ctx;
|
|
264
|
-
|
|
284
|
+
const resetKinds = args.resetKinds ?? new Set(["prestige"]);
|
|
285
|
+
let next = args.state;
|
|
265
286
|
const events = [];
|
|
266
287
|
const actionsApplied = [];
|
|
267
|
-
const
|
|
268
|
-
const decisions = (input.decisions ?? []).slice(0, Math.max(0, maxActionsPerStep));
|
|
288
|
+
const committedResets = [];
|
|
269
289
|
let baseline;
|
|
270
|
-
const baselineActions = () => (baseline ??= model.actions(ctx,
|
|
290
|
+
const baselineActions = () => (baseline ??= model.actions(ctx, args.state));
|
|
271
291
|
let prestigeResetT;
|
|
292
|
+
const maxActionsPerStep = constraints?.maxActionsPerStep ?? Number.POSITIVE_INFINITY;
|
|
293
|
+
const decisions = (args.decisions ?? []).slice(0, Math.max(0, maxActionsPerStep));
|
|
294
|
+
const resolveAgainstModel = args.resolveAgainstModel ?? true;
|
|
272
295
|
for (const d of decisions) {
|
|
273
|
-
const action =
|
|
296
|
+
const action = resolveAgainstModel
|
|
297
|
+
? currentAction(model, ctx, next, d.action, d.occurrence, baselineActions)
|
|
298
|
+
: d.action;
|
|
274
299
|
if (!action) {
|
|
275
300
|
events.push({
|
|
276
301
|
type: "action.skipped",
|
|
@@ -279,7 +304,7 @@ export function stepOnce(input) {
|
|
|
279
304
|
});
|
|
280
305
|
continue;
|
|
281
306
|
}
|
|
282
|
-
if (
|
|
307
|
+
if (args.admits && !args.admits(action))
|
|
283
308
|
continue;
|
|
284
309
|
if (!action.canApply(ctx, next)) {
|
|
285
310
|
events.push({
|
|
@@ -317,12 +342,17 @@ export function stepOnce(input) {
|
|
|
317
342
|
continue;
|
|
318
343
|
}
|
|
319
344
|
}
|
|
345
|
+
// Only an action that can emit a reset fact needs the before snapshot.
|
|
346
|
+
const resetKind = (action.kind === "prestige" || action.kind === "custom") && resetKinds.has(action.kind);
|
|
347
|
+
const before = resetKind ? resetSnapshot(ctx, next) : undefined;
|
|
320
348
|
let settledSize = d.bulkSize;
|
|
349
|
+
let paid = null;
|
|
321
350
|
if (d.bulkSize !== undefined && d.bulkSize !== singleBuySize) {
|
|
322
351
|
const settled = settleBulk(ctx, action, next, d.bulkSize, events);
|
|
323
352
|
if (!settled)
|
|
324
353
|
continue;
|
|
325
|
-
next = settled;
|
|
354
|
+
next = settled.state;
|
|
355
|
+
paid = settled.cost;
|
|
326
356
|
settledSize = d.bulkSize;
|
|
327
357
|
}
|
|
328
358
|
else {
|
|
@@ -387,9 +417,11 @@ export function stepOnce(input) {
|
|
|
387
417
|
},
|
|
388
418
|
},
|
|
389
419
|
};
|
|
420
|
+
paid = cost;
|
|
390
421
|
}
|
|
391
422
|
}
|
|
392
423
|
const decisionT = next.t;
|
|
424
|
+
const pointsBefore = next.prestige.points;
|
|
393
425
|
next = action.apply(ctx, next, settledSize);
|
|
394
426
|
if (action.kind === "prestige")
|
|
395
427
|
prestigeResetT = decisionT;
|
|
@@ -405,7 +437,56 @@ export function stepOnce(input) {
|
|
|
405
437
|
label: action.label,
|
|
406
438
|
bulkSize: settledSize,
|
|
407
439
|
});
|
|
440
|
+
if ((action.kind === "prestige" || action.kind === "custom") && before !== undefined) {
|
|
441
|
+
committedResets.push({
|
|
442
|
+
actionId: action.id,
|
|
443
|
+
kind: action.kind,
|
|
444
|
+
t: decisionT,
|
|
445
|
+
wallT: args.wallT ?? wallNow(ctx, decisionT),
|
|
446
|
+
cost: paid
|
|
447
|
+
? { unit: paid.unit.code, decimal: E.toString(paid.amount) }
|
|
448
|
+
: null,
|
|
449
|
+
rewardDelta: E.toString(E.sub(next.prestige.points, pointsBefore)),
|
|
450
|
+
before,
|
|
451
|
+
after: resetSnapshot(ctx, next),
|
|
452
|
+
});
|
|
453
|
+
}
|
|
408
454
|
}
|
|
455
|
+
return {
|
|
456
|
+
state: next,
|
|
457
|
+
events,
|
|
458
|
+
actionsApplied,
|
|
459
|
+
...(prestigeResetT !== undefined ? { prestigeResetT } : {}),
|
|
460
|
+
committedResets,
|
|
461
|
+
};
|
|
462
|
+
}
|
|
463
|
+
/**
|
|
464
|
+
* Single source of truth for one tick.
|
|
465
|
+
* An omitted size or `singleBuySize` pays `Action.cost` once, then `apply` once.
|
|
466
|
+
* A larger integer size pays the matching `BulkQuote.cost` once, then `apply` once.
|
|
467
|
+
* `apply` does not pay again. A rejected quote leaves this state unchanged.
|
|
468
|
+
* Plugin callbacks are not a transaction.
|
|
469
|
+
*
|
|
470
|
+
* @evidence docs/requirements/active/bulk-quote-settlement.md#req-pr01-bulk-quote-settlement Pays the current matching BulkQuote once for a quoted bulk size and keeps the single-cost path for size 1.
|
|
471
|
+
* @evidenceReview docs/requirements/active/bulk-quote-settlement.md#req-pr01-bulk-quote-settlement #f2fb3d7 Re-read the section: size 10 pays the quote total, a missing quote does not fall back to the unit cost, and a failed check does not change wallet or vars.
|
|
472
|
+
*/
|
|
473
|
+
export function stepOnce(input) {
|
|
474
|
+
const { ctx, model, dt, constraints, fast } = input;
|
|
475
|
+
const prev = input.state;
|
|
476
|
+
const { E } = ctx;
|
|
477
|
+
const applied = applyDecisions({
|
|
478
|
+
ctx,
|
|
479
|
+
model,
|
|
480
|
+
state: prev,
|
|
481
|
+
decisions: input.decisions,
|
|
482
|
+
constraints,
|
|
483
|
+
...(input.admits ? { admits: input.admits } : {}),
|
|
484
|
+
...(input.wallT !== undefined ? { wallT: input.wallT } : {}),
|
|
485
|
+
});
|
|
486
|
+
let next = applied.state;
|
|
487
|
+
const events = applied.events;
|
|
488
|
+
const actionsApplied = applied.actionsApplied;
|
|
489
|
+
const prestigeResetT = applied.prestigeResetT;
|
|
409
490
|
const income = model.income(ctx, next);
|
|
410
491
|
const scaledIncome = {
|
|
411
492
|
...income,
|
|
@@ -487,6 +568,7 @@ export function stepOnce(input) {
|
|
|
487
568
|
actionsApplied: actionsApplied.length > 0 ? actionsApplied : undefined,
|
|
488
569
|
observedMoney,
|
|
489
570
|
...(prestigeResetT !== undefined ? { prestigeResetT } : {}),
|
|
571
|
+
...(applied.committedResets.length > 0 ? { committedResets: applied.committedResets } : {}),
|
|
490
572
|
walletDelta,
|
|
491
573
|
};
|
|
492
574
|
}
|