@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.
Files changed (82) hide show
  1. package/dist/index.d.ts +12 -0
  2. package/dist/index.js +12 -0
  3. package/dist/index.js.map +1 -1
  4. package/dist/scenario/compile.d.ts +25 -0
  5. package/dist/scenario/compile.js +60 -0
  6. package/dist/scenario/compile.js.map +1 -1
  7. package/dist/scenario/scenarioContract.d.ts +152 -0
  8. package/dist/scenario/scenarioContract.js +2815 -0
  9. package/dist/scenario/scenarioContract.js.map +1 -0
  10. package/dist/sim/analysis/analyzers.d.ts +245 -0
  11. package/dist/sim/analysis/analyzers.js +1076 -0
  12. package/dist/sim/analysis/analyzers.js.map +1 -0
  13. package/dist/sim/analysis/contracts.d.ts +147 -0
  14. package/dist/sim/analysis/contracts.js +1230 -0
  15. package/dist/sim/analysis/contracts.js.map +1 -0
  16. package/dist/sim/analysis/distribution.d.ts +199 -0
  17. package/dist/sim/analysis/distribution.js +1246 -0
  18. package/dist/sim/analysis/distribution.js.map +1 -0
  19. package/dist/sim/analysis/eta.d.ts +118 -0
  20. package/dist/sim/analysis/eta.js +968 -70
  21. package/dist/sim/analysis/eta.js.map +1 -1
  22. package/dist/sim/analysis/experiment.d.ts +300 -0
  23. package/dist/sim/analysis/experiment.js +2206 -0
  24. package/dist/sim/analysis/experiment.js.map +1 -0
  25. package/dist/sim/analysis/growth.d.ts +2 -0
  26. package/dist/sim/analysis/growth.js +5 -1
  27. package/dist/sim/analysis/growth.js.map +1 -1
  28. package/dist/sim/analysis/growthFit.d.ts +183 -0
  29. package/dist/sim/analysis/growthFit.js +1798 -0
  30. package/dist/sim/analysis/growthFit.js.map +1 -0
  31. package/dist/sim/analysis/inspect.d.ts +236 -0
  32. package/dist/sim/analysis/inspect.js +388 -0
  33. package/dist/sim/analysis/inspect.js.map +1 -0
  34. package/dist/sim/analysis/metrics.d.ts +91 -0
  35. package/dist/sim/analysis/metrics.js +266 -0
  36. package/dist/sim/analysis/metrics.js.map +1 -0
  37. package/dist/sim/analysis/prestigeCycle.d.ts +6 -0
  38. package/dist/sim/analysis/prestigeCycle.js +10 -1
  39. package/dist/sim/analysis/prestigeCycle.js.map +1 -1
  40. package/dist/sim/analysis/registry.d.ts +41 -0
  41. package/dist/sim/analysis/registry.js +54 -0
  42. package/dist/sim/analysis/registry.js.map +1 -0
  43. package/dist/sim/analysis/resetActions.d.ts +7 -0
  44. package/dist/sim/analysis/resetActions.js +45 -0
  45. package/dist/sim/analysis/resetActions.js.map +1 -0
  46. package/dist/sim/analysis/resetCycle.d.ts +175 -0
  47. package/dist/sim/analysis/resetCycle.js +1009 -0
  48. package/dist/sim/analysis/resetCycle.js.map +1 -0
  49. package/dist/sim/analysis/resetOptimization.d.ts +198 -0
  50. package/dist/sim/analysis/resetOptimization.js +2187 -0
  51. package/dist/sim/analysis/resetOptimization.js.map +1 -0
  52. package/dist/sim/analysis/sensitivity.d.ts +73 -0
  53. package/dist/sim/analysis/sensitivity.js +160 -0
  54. package/dist/sim/analysis/sensitivity.js.map +1 -0
  55. package/dist/sim/monteCarlo.d.ts +12 -0
  56. package/dist/sim/monteCarlo.js +33 -4
  57. package/dist/sim/monteCarlo.js.map +1 -1
  58. package/dist/sim/observation.d.ts +22 -0
  59. package/dist/sim/observation.js +33 -0
  60. package/dist/sim/observation.js.map +1 -1
  61. package/dist/sim/offline.js +9 -2
  62. package/dist/sim/offline.js.map +1 -1
  63. package/dist/sim/random.d.ts +15 -0
  64. package/dist/sim/random.js +28 -0
  65. package/dist/sim/random.js.map +1 -1
  66. package/dist/sim/session.d.ts +7 -0
  67. package/dist/sim/session.js +13 -0
  68. package/dist/sim/session.js.map +1 -1
  69. package/dist/sim/simulator.js +7 -1
  70. package/dist/sim/simulator.js.map +1 -1
  71. package/dist/sim/step.d.ts +67 -1
  72. package/dist/sim/step.js +100 -18
  73. package/dist/sim/step.js.map +1 -1
  74. package/dist/sim/strategy/opt/freshRun.d.ts +3 -0
  75. package/dist/sim/strategy/opt/freshRun.js +6 -0
  76. package/dist/sim/strategy/opt/freshRun.js.map +1 -0
  77. package/dist/sim/strategy/opt/runner.js +2 -2
  78. package/dist/sim/strategy/opt/runner.js.map +1 -1
  79. package/dist/sim/strategy/planner.d.ts +26 -0
  80. package/dist/sim/strategy/planner.js +30 -0
  81. package/dist/sim/strategy/planner.js.map +1 -1
  82. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resetOptimization.js","sourceRoot":"","sources":["../../../src/sim/analysis/resetOptimization.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ import type { ParamSpace } from "../strategy/opt/tuneSpec";
2
+ /**
3
+ * Local one-at-a-time sensitivity.
4
+ * This is not a global sensitivity index and not a Sobol index.
5
+ */
6
+ export type ElasticityDirection = "higher" | "lower" | "flat" | "unavailable";
7
+ export type LocalElasticity = Readonly<{
8
+ status: "observed" | "unavailable";
9
+ elasticity: string | null;
10
+ absoluteChange: string | null;
11
+ direction: ElasticityDirection;
12
+ globalSensitivity: false;
13
+ sobol: false;
14
+ }>;
15
+ export type ParetoSense = "lower" | "higher";
16
+ export type ParetoObjective = Readonly<{
17
+ id: string;
18
+ sense: ParetoSense;
19
+ value: number | null;
20
+ }>;
21
+ export type ParetoPoint = Readonly<{
22
+ id: string;
23
+ objectives: readonly ParetoObjective[];
24
+ }>;
25
+ export type ParetoFront = Readonly<{
26
+ sense: "per-metric";
27
+ nonDominated: readonly string[];
28
+ uncompared: readonly string[];
29
+ }>;
30
+ export declare function assignmentFitsParamSpace(space: ParamSpace, value: string | number | boolean | null): boolean;
31
+ /**
32
+ * Relative elasticity only when baseline p and y are finite and greater than zero and p changes.
33
+ * A missing y is not replaced with the horizon.
34
+ */
35
+ export declare function localElasticity(args: Readonly<{
36
+ baselineP: number;
37
+ probeP: number;
38
+ baselineY: number | null;
39
+ probeY: number | null;
40
+ }>): LocalElasticity;
41
+ /**
42
+ * `(probeP - baselineP) / baselineP`. When the difference of two finite parameters overflows, the ratio
43
+ * `probeP / baselineP - 1` gives the same relative change without leaving the double range.
44
+ */
45
+ export declare function relativeParameterChange(baselineP: number, probeP: number): number;
46
+ /**
47
+ * Relative elasticity from a change measured in the metric's own arithmetic, such as an engine amount.
48
+ * `relativeChange` is `(probeY - baselineY) / baselineY`, or null when baseline y is not greater than zero.
49
+ * The elasticity is reported only when baseline p is finite and greater than zero and p changes.
50
+ */
51
+ export declare function elasticityFromChange(args: Readonly<{
52
+ baselineP: number;
53
+ probeP: number;
54
+ absoluteChange: string | null;
55
+ direction: Exclude<ElasticityDirection, "unavailable">;
56
+ relativeChange: number | null;
57
+ }>): LocalElasticity;
58
+ /**
59
+ * Pareto front under a caller order, such as an engine comparison. Every pair is compared directly,
60
+ * so an order with a tolerance is not chained through a third point. A null objective is uncompared.
61
+ */
62
+ export declare function paretoFrontBy<T>(points: readonly Readonly<{
63
+ id: string;
64
+ objectives: readonly Readonly<{
65
+ sense: ParetoSense;
66
+ value: T | null;
67
+ }>[];
68
+ }>[], compare: (left: T, right: T) => number): ParetoFront;
69
+ /**
70
+ * Fully observed points only. A null objective cannot dominate and is not dominated into a win.
71
+ * Objectives are matched by id, so two points may list them in different orders. Points must share one id set.
72
+ */
73
+ export declare function paretoFront(points: readonly ParetoPoint[]): ParetoFront;
@@ -0,0 +1,160 @@
1
+ const UNAVAILABLE = {
2
+ status: "unavailable",
3
+ elasticity: null,
4
+ absoluteChange: null,
5
+ direction: "unavailable",
6
+ globalSensitivity: false,
7
+ sobol: false,
8
+ };
9
+ export function assignmentFitsParamSpace(space, value) {
10
+ // Canonical JSON, task text, and probe ids write -0 as 0, so -0 would share every descriptor with 0.
11
+ if (Object.is(value, -0))
12
+ return false;
13
+ if (space.kind === "bool")
14
+ return typeof value === "boolean";
15
+ if (space.kind === "int") {
16
+ return typeof value === "number" && Number.isInteger(value) && value >= space.min && value <= space.max;
17
+ }
18
+ if (space.kind === "number") {
19
+ return typeof value === "number" && Number.isFinite(value) && value >= space.min && value <= space.max;
20
+ }
21
+ // A JSON literal such as 1e400 parses to Infinity, and canonical JSON would write it as null.
22
+ if (typeof value === "number" && !Number.isFinite(value))
23
+ return false;
24
+ return space.values.some((entry) => entry === value);
25
+ }
26
+ /**
27
+ * Relative elasticity only when baseline p and y are finite and greater than zero and p changes.
28
+ * A missing y is not replaced with the horizon.
29
+ */
30
+ export function localElasticity(args) {
31
+ const { baselineP, probeP, baselineY, probeY } = args;
32
+ if (baselineY === null || probeY === null || !Number.isFinite(baselineY) || !Number.isFinite(probeY)) {
33
+ return UNAVAILABLE;
34
+ }
35
+ // Two finite values of opposite sign near the double limit have a difference outside it. The ratio stays finite.
36
+ const delta = probeY - baselineY;
37
+ const finiteDelta = Number.isFinite(delta);
38
+ return elasticityFromChange({
39
+ baselineP,
40
+ probeP,
41
+ absoluteChange: finiteDelta ? String(delta) : null,
42
+ direction: probeY > baselineY ? "higher" : probeY < baselineY ? "lower" : "flat",
43
+ relativeChange: baselineY > 0 ? (finiteDelta ? delta / baselineY : probeY / baselineY - 1) : null,
44
+ });
45
+ }
46
+ /**
47
+ * `(probeP - baselineP) / baselineP`. When the difference of two finite parameters overflows, the ratio
48
+ * `probeP / baselineP - 1` gives the same relative change without leaving the double range.
49
+ */
50
+ export function relativeParameterChange(baselineP, probeP) {
51
+ const delta = probeP - baselineP;
52
+ return Number.isFinite(delta) ? delta / baselineP : probeP / baselineP - 1;
53
+ }
54
+ /**
55
+ * Relative elasticity from a change measured in the metric's own arithmetic, such as an engine amount.
56
+ * `relativeChange` is `(probeY - baselineY) / baselineY`, or null when baseline y is not greater than zero.
57
+ * The elasticity is reported only when baseline p is finite and greater than zero and p changes.
58
+ */
59
+ export function elasticityFromChange(args) {
60
+ const { baselineP, probeP, absoluteChange, direction, relativeChange } = args;
61
+ const unavailable = {
62
+ status: "unavailable",
63
+ elasticity: null,
64
+ absoluteChange,
65
+ direction,
66
+ globalSensitivity: false,
67
+ sobol: false,
68
+ };
69
+ const pChanged = Number.isFinite(baselineP) && Number.isFinite(probeP) && probeP !== baselineP;
70
+ if (relativeChange === null || !Number.isFinite(relativeChange) || !(baselineP > 0) || !pChanged)
71
+ return unavailable;
72
+ // A tiny positive baseline can make the parameter change overflow. Dividing by it would report a false 0.
73
+ const parameterChange = relativeParameterChange(baselineP, probeP);
74
+ if (!Number.isFinite(parameterChange) || parameterChange === 0)
75
+ return unavailable;
76
+ const elasticity = relativeChange / parameterChange;
77
+ if (!Number.isFinite(elasticity))
78
+ return unavailable;
79
+ return {
80
+ status: "observed",
81
+ elasticity: String(elasticity),
82
+ absoluteChange,
83
+ direction,
84
+ globalSensitivity: false,
85
+ sobol: false,
86
+ };
87
+ }
88
+ function dominates(left, right, compare) {
89
+ let better = false;
90
+ for (let index = 0; index < left.values.length; index += 1) {
91
+ const order = compare(left.values[index], right.values[index]);
92
+ const ahead = left.senses[index] === "lower" ? order < 0 : order > 0;
93
+ const behind = left.senses[index] === "lower" ? order > 0 : order < 0;
94
+ if (behind)
95
+ return false;
96
+ if (ahead)
97
+ better = true;
98
+ }
99
+ return better;
100
+ }
101
+ /**
102
+ * Pareto front under a caller order, such as an engine comparison. Every pair is compared directly,
103
+ * so an order with a tolerance is not chained through a third point. A null objective is uncompared.
104
+ */
105
+ export function paretoFrontBy(points, compare) {
106
+ // The front lists ids, so two points with one id would be ambiguous and would never compare against each other.
107
+ if (new Set(points.map((point) => point.id)).size !== points.length)
108
+ throw new Error("Pareto point ids must be unique");
109
+ // Dominance reads each position with one sense, so every point must list the same objective count and senses.
110
+ const shape = points[0]?.objectives.map((item) => item.sense) ?? [];
111
+ for (const point of points) {
112
+ if (point.objectives.length !== shape.length || point.objectives.some((item, index) => item.sense !== shape[index])) {
113
+ throw new Error(`Pareto point ${point.id} does not share the objective count and senses of the other points`);
114
+ }
115
+ }
116
+ const comparable = [];
117
+ const uncompared = [];
118
+ for (const point of points) {
119
+ if (point.objectives.length === 0 || point.objectives.some((item) => item.value === null)) {
120
+ uncompared.push(point.id);
121
+ continue;
122
+ }
123
+ comparable.push({
124
+ id: point.id,
125
+ values: point.objectives.map((item) => item.value),
126
+ senses: point.objectives.map((item) => item.sense),
127
+ });
128
+ }
129
+ const nonDominated = comparable
130
+ .filter((candidate) => !comparable.some((other) => other.id !== candidate.id && dominates(other, candidate, compare)))
131
+ .map((candidate) => candidate.id)
132
+ .sort((left, right) => (left < right ? -1 : left > right ? 1 : 0));
133
+ uncompared.sort((left, right) => (left < right ? -1 : left > right ? 1 : 0));
134
+ return { sense: "per-metric", nonDominated, uncompared };
135
+ }
136
+ /**
137
+ * Fully observed points only. A null objective cannot dominate and is not dominated into a win.
138
+ * Objectives are matched by id, so two points may list them in different orders. Points must share one id set.
139
+ */
140
+ export function paretoFront(points) {
141
+ const first = points[0]?.objectives ?? [];
142
+ const ids = first.map((item) => item.id).sort();
143
+ const senses = new Map(first.map((item) => [item.id, item.sense]));
144
+ return paretoFrontBy(points.map((point) => {
145
+ const byId = new Map(point.objectives.map((item) => [item.id, item]));
146
+ if (byId.size !== point.objectives.length || byId.size !== ids.length || ids.some((id) => !byId.has(id))) {
147
+ throw new Error(`Pareto point ${point.id} does not list the same objective ids as the other points`);
148
+ }
149
+ return {
150
+ id: point.id,
151
+ objectives: ids.map((id) => {
152
+ const item = byId.get(id);
153
+ if (item.sense !== senses.get(id))
154
+ throw new Error(`Pareto point ${point.id} gives objective ${id} another sense`);
155
+ return { sense: item.sense, value: item.value === null || !Number.isFinite(item.value) ? null : item.value };
156
+ }),
157
+ };
158
+ }), (left, right) => (left < right ? -1 : left > right ? 1 : 0));
159
+ }
160
+ //# sourceMappingURL=sensitivity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sensitivity.js","sourceRoot":"","sources":["../../../src/sim/analysis/sensitivity.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,16 @@
1
1
  import { type SessionPatternSpec, type SessionRunResult } from "./session";
2
2
  import { type RunBindOptions, type RunFactoryDeps } from "./runFactory";
3
3
  import type { CompiledScenario, RunResult } from "./types";
4
+ /**
5
+ * @evidence docs/requirements/active/simulation-distribution.md#req-pr13-logical-draws Draws and the base seed are finite. The loop bound is that integer.
6
+ * @evidenceReview docs/requirements/active/simulation-distribution.md#req-pr13-logical-draws #6e3688a Re-read the section: NaN and Infinity do not become an empty result or an open loop, and draw index 2 keeps its seed when the calls are reversed.
7
+ */
8
+ export declare const monteCarloDrawBudget: "finite-integer-draws";
9
+ export declare class MonteCarloRejected extends Error {
10
+ constructor(message: string);
11
+ }
12
+ /** Rejects a request that would clamp NaN into an empty run or loop forever. */
13
+ export declare function assertMonteCarloDrawRequest(draws: number, seed: number, budget?: number): number;
4
14
  export type MonteCarloMetricEvaluator<N, U extends string, Vars, T> = (args: {
5
15
  scenario: CompiledScenario<N, U, Vars>;
6
16
  run: RunResult<N, U, Vars>;
@@ -14,6 +24,8 @@ export type MonteCarloOptions<N, U extends string, Vars, T> = Readonly<{
14
24
  seed: number;
15
25
  sessionPattern?: SessionPatternSpec;
16
26
  metrics: MonteCarloMetricEvaluator<N, U, Vars, T>;
27
+ /** Upper bound on the floored draw count. Non-finite values throw. */
28
+ budget?: number;
17
29
  /** Registries used to construct a new model or strategy for each draw. */
18
30
  registries?: RunFactoryDeps;
19
31
  /**
@@ -1,16 +1,45 @@
1
1
  import { simulateSessionPattern } from "./session";
2
2
  import { runScenario } from "./simulator";
3
3
  import { createRunFactory } from "./runFactory";
4
- import { deriveDrawSeed } from "./random";
4
+ import { logicalDrawId, logicalDrawSeed } from "./random";
5
+ /**
6
+ * @evidence docs/requirements/active/simulation-distribution.md#req-pr13-logical-draws Draws and the base seed are finite. The loop bound is that integer.
7
+ * @evidenceReview docs/requirements/active/simulation-distribution.md#req-pr13-logical-draws #6e3688a Re-read the section: NaN and Infinity do not become an empty result or an open loop, and draw index 2 keeps its seed when the calls are reversed.
8
+ */
9
+ export const monteCarloDrawBudget = "finite-integer-draws";
10
+ export class MonteCarloRejected extends Error {
11
+ constructor(message) {
12
+ super(message);
13
+ this.name = "MonteCarloRejected";
14
+ }
15
+ }
16
+ /** Rejects a request that would clamp NaN into an empty run or loop forever. */
17
+ export function assertMonteCarloDrawRequest(draws, seed, budget) {
18
+ if (typeof draws !== "number" || !Number.isFinite(draws) || draws < 1) {
19
+ throw new MonteCarloRejected("monte carlo draws must be a finite number >= 1");
20
+ }
21
+ const count = Math.floor(draws);
22
+ if (count < 1)
23
+ throw new MonteCarloRejected("monte carlo draws must be a finite number >= 1");
24
+ if (typeof seed !== "number" || !Number.isFinite(seed)) {
25
+ throw new MonteCarloRejected("monte carlo seed must be finite");
26
+ }
27
+ if (budget !== undefined) {
28
+ if (typeof budget !== "number" || !Number.isFinite(budget) || budget < count) {
29
+ throw new MonteCarloRejected("monte carlo budget must be a finite number >= draws");
30
+ }
31
+ }
32
+ return count;
33
+ }
5
34
  export function simulateMonteCarlo(args) {
6
- const draws = Math.max(1, Math.floor(args.draws));
35
+ const draws = assertMonteCarloDrawRequest(args.draws, args.seed, args.budget);
7
36
  const results = [];
8
37
  const binding = createRunFactory(args.registries).bind(args.scenario, args.isolation);
9
38
  let failed = false;
10
39
  try {
11
40
  for (let drawIndex = 0; drawIndex < draws; drawIndex += 1) {
12
- const seed = deriveDrawSeed(args.seed, drawIndex);
13
- const scenario = binding.fresh({ trialId: String(drawIndex), seed }).scenario;
41
+ const seed = logicalDrawSeed(args.seed, drawIndex);
42
+ const scenario = binding.fresh({ trialId: logicalDrawId(drawIndex), seed }).scenario;
14
43
  if (args.sessionPattern) {
15
44
  const session = simulateSessionPattern({
16
45
  scenario,
@@ -1 +1 @@
1
- {"version":3,"file":"monteCarlo.js","sourceRoot":"","sources":["../../src/sim/monteCarlo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAkD,MAAM,WAAW,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAA4C,MAAM,cAAc,CAAC;AAE1F,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAoC1C,MAAM,UAAU,kBAAkB,CAChC,IAAsC;IAEtC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAClD,MAAM,OAAO,GAA2D,EAAE,CAAC;IAC3E,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAEtF,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,CAAC;QACH,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,EAAE,SAAS,IAAI,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC;YAE9E,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,MAAM,OAAO,GAAG,sBAAsB,CAAC;oBACrC,QAAQ;oBACR,OAAO,EAAE,IAAI,CAAC,cAAc;oBAC5B,IAAI;iBACL,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC;oBACX,SAAS;oBACT,IAAI;oBACJ,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;wBACpB,QAAQ;wBACR,GAAG,EAAE,OAAO,CAAC,GAAG;wBAChB,OAAO;wBACP,SAAS;wBACT,IAAI;qBACL,CAAC;iBACH,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC;gBACX,SAAS;gBACT,IAAI;gBACJ,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;oBACpB,QAAQ;oBACR,GAAG;oBACH,SAAS;oBACT,IAAI;iBACL,CAAC;aACH,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,GAAG,IAAI,CAAC;QACd,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,iFAAiF;QACjF,IAAI,CAAC;YACH,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM;gBAAE,MAAM,OAAO,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO;KACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"monteCarlo.js","sourceRoot":"","sources":["../../src/sim/monteCarlo.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { type ObservationLedger } from "./goalRead";
2
2
  import { type MetricStatus, type SimStats } from "./analysis/ux";
3
+ import type { CommittedResetFact } from "./step";
3
4
  import type { SimEvent, SimState } from "./types";
4
5
  /**
5
6
  * Resolved observation contract. TC-05 has not registered this DTO.
@@ -84,7 +85,28 @@ export type RunObserver = Readonly<{
84
85
  t: number;
85
86
  goalId: string;
86
87
  }>) => void;
88
+ /**
89
+ * A committed reset action. A `prestige.count` change is not this fact.
90
+ * `wallT` is the session wall clock when the model declared one. It is not an OS clock.
91
+ */
92
+ onReset?: (fact: CommittedResetFact) => void;
87
93
  }>;
94
+ /**
95
+ * Tell the observer about reset actions that actually committed.
96
+ * Callers pass the action receipt. This function does not read `prestige.count`.
97
+ *
98
+ * @evidence docs/requirements/active/reset-cycle-execution.md#req-pr10-committed-reset Reset facts come from the committed action, not from a prestige count change.
99
+ * @evidenceReview docs/requirements/active/reset-cycle-execution.md#req-pr10-committed-reset #22d7a8a Re-read the section: onReset is the action receipt, and a count change alone is not a reset.
100
+ */
101
+ export declare function emitCommittedResets(observer: RunObserver | undefined, resets: readonly CommittedResetFact[]): void;
102
+ /**
103
+ * Tell the observer about actions decided outside a runner step, such as a reset committed at a cycle boundary.
104
+ * The facts are the ones the runner's recorder forwards for an action decided inside a step.
105
+ *
106
+ * @evidence docs/requirements/active/reset-cycle-execution.md#req-pr10-committed-reset A boundary reset reaches onAction like an action decided in a step.
107
+ * @evidenceReview docs/requirements/active/reset-cycle-execution.md#req-pr10-committed-reset #22d7a8a Re-read the section: the boundary action is committed through the action payment path, so its applied or skipped fact is an action fact.
108
+ */
109
+ export declare function emitActionFacts<N>(observer: RunObserver | undefined, t: number, events: readonly SimEvent<N>[]): void;
88
110
  export type RunGoal<N, U extends string, Vars> = Readonly<{
89
111
  id: string;
90
112
  met: (state: SimState<N, U, Vars>) => boolean;
@@ -8,6 +8,39 @@ import { simStatsFromCounters } from "./analysis/ux";
8
8
  * @evidenceReview docs/requirements/active/observation-retention.md#req-pr05-observation-retention #d4a8252 Re-read explicit collectMoneyEvents precedence and the compact facts clause: omitted events still supply exact reward amounts and the same counters without altering the wallet. Re-read the section: retention does not change these counters, a disabled mode is missing rather than zero, a sample cap does not hide a fact from the observer, including an action-derived milestone key, the shared session cap sentence is about the recorder's ledger and simulateSessionPattern, not this name, the start-goal sentence is about the recorder's start hook, not this name, and the tuning sentence is about runCandidateAndScore and pacingBalancedLog10, which read these missing counters.
9
9
  */
10
10
  export const observationContract = "idlekit.run-observation";
11
+ /**
12
+ * Tell the observer about reset actions that actually committed.
13
+ * Callers pass the action receipt. This function does not read `prestige.count`.
14
+ *
15
+ * @evidence docs/requirements/active/reset-cycle-execution.md#req-pr10-committed-reset Reset facts come from the committed action, not from a prestige count change.
16
+ * @evidenceReview docs/requirements/active/reset-cycle-execution.md#req-pr10-committed-reset #22d7a8a Re-read the section: onReset is the action receipt, and a count change alone is not a reset.
17
+ */
18
+ export function emitCommittedResets(observer, resets) {
19
+ if (!observer?.onReset || resets.length === 0)
20
+ return;
21
+ for (const fact of resets) {
22
+ notify(() => observer.onReset?.(fact));
23
+ }
24
+ }
25
+ /**
26
+ * Tell the observer about actions decided outside a runner step, such as a reset committed at a cycle boundary.
27
+ * The facts are the ones the runner's recorder forwards for an action decided inside a step.
28
+ *
29
+ * @evidence docs/requirements/active/reset-cycle-execution.md#req-pr10-committed-reset A boundary reset reaches onAction like an action decided in a step.
30
+ * @evidenceReview docs/requirements/active/reset-cycle-execution.md#req-pr10-committed-reset #22d7a8a Re-read the section: the boundary action is committed through the action payment path, so its applied or skipped fact is an action fact.
31
+ */
32
+ export function emitActionFacts(observer, t, events) {
33
+ if (!observer?.onAction)
34
+ return;
35
+ for (const event of events) {
36
+ if (event.type === "action.applied") {
37
+ notify(() => observer.onAction?.({ t, actionId: event.actionId, outcome: "applied" }));
38
+ }
39
+ else if (event.type === "action.skipped") {
40
+ notify(() => observer.onAction?.({ t, actionId: event.actionId, outcome: "skipped", reason: event.reason }));
41
+ }
42
+ }
43
+ }
11
44
  export class ObservationError extends Error {
12
45
  constructor(message, cause) {
13
46
  super(message, { cause });
@@ -1 +1 @@
1
- {"version":3,"file":"observation.js","sourceRoot":"","sources":["../../src/sim/observation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observation.js","sourceRoot":"","sources":["../../src/sim/observation.ts"],"names":[],"mappings":"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"}