@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
@@ -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) {
@@ -1 +1 @@
1
- {"version":3,"file":"offline.js","sourceRoot":"","sources":["../../src/sim/offline.ts"],"names":[],"mappings":"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"}
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,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrG,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAyCnI,MAAM,UAAU,0BAA0B,CAAC,IAI1C;IACC,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK;QAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;IACzF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IACrD,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;IACrF,4EAA4E;IAC5E,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;IAC/E,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC;AAC5E,CAAC;AAED,SAAS,mBAAmB,CAC1B,MAAgE,EAChE,MAA2B;IAE3B,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3D,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC7C,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7C,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mBAAmB,CAA4B,IAI9D;IACC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACnC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;IAE1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,2DAA2D,OAAO,GAAG,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;IACtD,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,CAAC;IAChC,qBAAqB,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IAExD,MAAM,SAAS,GAAG,IAAI,EAAE,MAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;IACvD,MAAM,cAAc,GAAG,0BAA0B,CAAC;QAChD,MAAM,EAAE,IAAI,EAAE,OAAO,IAAI,SAAS,EAAE,OAAO;QAC3C,WAAW,EAAE,IAAI,EAAE,WAAW;QAC9B,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ;KACjC,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,cAAc,CAAC,YAAY,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,EAAE,KAAK,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,EAAE,SAAS,IAAI,QAAQ,CAAC,OAAO,CAAC;IAElD,MAAM,eAAe,GAAG,IAAI,EAAE,QAAQ,EAAE,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,IAAI,IAAI,CAAC;IAC1F,MAAM,SAAS,GAAG,IAAI,EAAE,QAAQ,EAAE,SAAS,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC;IAEhF,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;QAC/E,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC3D,qBAAqB,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7G,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,GAAG,OAAO,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC;IACjE,MAAM,YAAY,GAAG,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1F,MAAM,QAAQ,GAAG,yBAAyB,CAAC;QACzC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,KAAK,KAAK;QACpD,MAAM,EAAE,KAAK,CAAC,CAAC;QACf,aAAa,EAAE,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,aAAa,IAAI,EAAE;QAC5D,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,IAAI,EAAE;QAClD,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;QAC/B,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ;QAC/B,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC;KACpD,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,iBAAiB,CAAI;QACvC,OAAO,EAAE,eAAe;QACxB,SAAS;KACV,CAAC,CAAC;IACH,MAAM,UAAU,GAAkG,EAAE,CAAC;IACrH,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC;IACpD,MAAM,SAAS,GACb,YAAY,KAAK,SAAS;QACxB,CAAC,CAAC,gBAAgB,CAAyF,YAAY,EAAE,sCAAsC,CAAC;QAChK,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,MAAM,iBAAiB,GAAG,QAAQ,CAAC,WAAW,EAAE,iBAAiB,IAAI,QAAQ,CAAC;IAC9E,IAAI,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;IACvC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,IAAyB,CAAC;IAE9B,OAAO,IAAI,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,YAAY,CAAC;YAC5B,UAAU,EAAE,YAAY;YACxB,KAAK;YACL,OAAO;YACP,WAAW,EAAE,QAAQ,CAAC,YAAY;YAClC,QAAQ,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK;YACnC,QAAQ,EAAE,OAAO,KAAK,SAAS;YAC/B,QAAQ;SACT,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,kCAAkC,CAAC,CAAC;QAChG,CAAC;QACD,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC7B,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YACrB,MAAM;QACR,CAAC;QAED,MAAM,OAAO,GAAG,WAAW,CACzB,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAC5D,QAAQ,CAAC,EAAE,CACZ,CAAC;QACF,wEAAwE;QACxE,MAAM,UAAU,GACd,cAAc,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO;YACtC,OAAO,QAAQ,CAAC,QAAQ,EAAE,aAAa,KAAK,UAAU;YACtD,OAAO,QAAQ,CAAC,QAAQ,CAAC,YAAY,KAAK,UAAU,CAAC;QACvD,iFAAiF;QACjF,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,4BAA4B,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1G,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjG,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;QACrC,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACxF,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;QACvD,0FAA0F;QAC1F,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,MAAM,MAAM,GACV,MAAM,CAAC,IAAI,KAAK,OAAO;YACrB,CAAC,CAAC,CAAC,MAA0B,EAAE,EAAE;gBAC7B,IAAI,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACrD,YAAY,IAAI,CAAC,CAAC;gBAClB,OAAO,KAAK,CAAC;YACf,CAAC;YACH,CAAC,CAAC,SAAS,CAAC;QAChB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC;QAC7B,MAAM,gBAAgB,GAAG,YAAY,CAAC;QACtC,MAAM,GAAG,GAAG,QAAQ,CAAC;YACnB,GAAG,EAAE,OAAO;YACZ,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,KAAK;YACL,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,SAAS;YACT,MAAM;YACN,WAAW;YACX,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI;YACrC,yFAAyF;YACzF,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM;gBACrB,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,uBAAuB,CAAC,gBAAgB,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE;gBACtG,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;QACH,kBAAkB,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QACvF,mHAAmH;QACnH,0GAA0G;QAC1G,yGAAyG;QACzG,MAAM,aAAa,GACjB,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,KAAK,SAAS,CAAC,MAAM,CAAC,CAAC;QACvF,IAAI,UAAU,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,EAAE,CAAC;YAClD,QAAQ,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QACD,WAAW,GAAG,mBAAmB,CAAC,WAAW,EAAE,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAEjG,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC;QACjB,YAAY,IAAI,QAAQ,CAAC,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,CAAC;QACX,QAAQ,CAAC,UAAU,CAAC;YAClB,EAAE,EAAE,YAAY;YAChB,EAAE,EAAE,KAAK,CAAC,CAAC;YACX,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,aAAa,EAAE,GAAG,CAAC,aAAa;YAChC,eAAe,EAAE,GAAG,CAAC,cAAc,KAAK,SAAS;YACjD,KAAK;SACN,CAAC,CAAC;QACH,qGAAqG;QACrG,IAAI,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,KAAK,KAAK;YAAE,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;QACvH,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,IAAI,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;YAC/B,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;gBACrC,MAAM,QAAQ,GAAG,EAAE,GAAG,GAAG,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC;gBAC1D,IAAI,SAAS;oBAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;oBACnC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;IACtC,MAAM,KAAK,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;IACxC,MAAM,aAAa,GAAG,SAAS,EAAE,QAAQ,EAAE,CAAC;IAE5C,OAAO;QACL,KAAK;QACL,GAAG,EAAE,KAAK;QACV,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QAChG,WAAW;QACX,GAAG,CAAC,aAAa;YACf,CAAC,CAAC;gBACE,cAAc,EAAE;oBACd,UAAU,EAAE,YAAY;oBACxB,SAAS,EAAE,aAAa,CAAC,SAAS;oBAClC,OAAO,EAAE,aAAa,CAAC,OAAO;oBAC9B,QAAQ,EAAE,aAAa,CAAC,QAAQ;iBACjC;aACF;YACH,CAAC,CAAC,EAAE,CAAC;QACP,KAAK;QACL,OAAO;QACP,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,IAAI;QACJ,OAAO,EAAE;YACP,YAAY,EAAE,OAAO;YACrB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,YAAY;YACZ,OAAO;YACP,SAAS;YACT,YAAY;YACZ,YAAY,EAAE,WAAW;YACzB,YAAY,EAAE,cAAc,CAAC,MAAM,CAAC,IAAI;YACxC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ,CAAC,SAAS;gBACxB,KAAK,EAAE,QAAQ,CAAC,UAAU;aAC3B;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -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;
@@ -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
@@ -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"}
@@ -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.
@@ -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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/sim/session.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,oBAAoB,GAErB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAyB,MAAM,WAAW,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAyE,MAAM,SAAS,CAAC;AAE/G;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,uBAAgC,CAAC;AAsGrE,SAAS,WAAW,CAAC,OAA2B;IAC9C,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAC/C,QAAQ,OAAO,CAAC,EAAE,EAAE,CAAC;YACnB,KAAK,WAAW,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC5D,MAAM;YACR,CAAC;YACD,KAAK,cAAc,EAAE,CAAC;gBACpB,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/B,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC7E,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,aAAa,EAAE,CAAC;gBACnB,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3D,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;gBACnE,MAAM;YACR,CAAC;YACD,KAAK,eAAe,EAAE,CAAC;gBACrB,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC1D,MAAM;YACR,CAAC;YACD,KAAK,kBAAkB,EAAE,CAAC;gBACxB,MAAM,OAAO,GAAG,GAAG,GAAG,CAAC,CAAC;gBACxB,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;oBACjB,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC3D,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrE,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC5D,CAAC;gBACD,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;AACtG,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,qBAAqB,CAAC,OAA2B;IAC/D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC;IACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACpC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;YACvE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC;YACpE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC;QACvD,MAAM,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC;QACtC,IAAI,GAAG,GAAG,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACpF,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;IAClG,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAC9B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,cAAc,CAAC,CAChF,CAAC;IACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC;QAC1E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;QACzD,IAAI,SAAS,GAAG,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,SAAS,CAAC,OAA2B;IAC5C,IAAI,OAAO,CAAC,QAAQ;QAAE,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC5D,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,gBAAgB,CAA4B,QAAsC;IACzF,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,UAAU,CACjB,QAAsC,EACtC,KAAa,EACb,QAAgB,EAChB,OAAe,EACf,OAAe;IAEf,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IACjD,OAAO;QACL,GAAG,QAAQ;QACX,GAAG,EAAE;YACH,GAAG,QAAQ,CAAC,GAAG;YACf,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE;SAC9C;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CAA4B,IAIjE;IACC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;IAC1H,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC;IACzB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC;IAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;IACvB,MAAM,QAAQ,GAAiC,EAAE,CAAC;IAClD,sEAAsE;IACtE,MAAM,WAAW,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC;IAC5C,MAAM,YAAY,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC;IAC9C,MAAM,KAAK,GAAG,gBAAgB,CAAuB,WAAW,EAAE,yBAAyB,CAAC,CAAC;IAC7F,MAAM,UAAU,GAAG,gBAAgB,CAAyF,YAAY,EAAE,0BAA0B,CAAC,CAAC;IACtK,IAAI,UAA8B,CAAC;IACnC,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,IAAI,qBAAqB,GAAG,CAAC,CAAC;IAC9B,MAAM,WAAW,GAAG,iBAAiB,CAAI;QACvC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,IAAI,IAAI;QACzC,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS;KACtC,CAAC,CAAC;IACH,MAAM,mBAAmB,GAAqB,EAAE,CAAC;IACjD,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,UAA8B,CAAC;IACnC,IAAI,KAAK,GAAG,MAAM,CAAC;IACnB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,UAAU,GAAsB,SAAS,CAAC;IAC9C,MAAM,YAAY,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,IAAI,EAAE,YAAqB,EAAE,CAAC;IAChF,MAAM,aAAa,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;IACnC,uFAAuF;IACvF,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACjD,yFAAyF;IACzF,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC;IACrF,oGAAoG;IACpG,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,+FAA+F;IAC/F,uFAAuF;IACvF,MAAM,YAAY,GAAG,IAAI,OAAO,EAAmB,CAAC;IACpD,MAAM,SAAS,GAAG,CAAC,IAA0B,EAAW,EAAE;QACxD,IAAI,aAAa,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAC9C,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACtC,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvE,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC5B,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IACF,MAAM,MAAM,GACV,aAAa,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAC7C,CAAC,CAAC,CAAC,IAA0B,EAAE,EAAE;YAC7B,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gBACxB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;oBAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACxE,CAAC,CAAC,CAAC;YACH,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAC3B,OAAO,QAAQ,IAAI,eAAe,EAAE,CAAC;QACvC,CAAC;QACH,CAAC,CAAC,SAAS,CAAC;IAEhB,4FAA4F;IAC5F,+EAA+E;IAC/E,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,eAAe,GAAG,CAAC,CAAS,EAAE,EAAE;QACpC,UAAU,GAAG,CAAC,CAAC;QACf,EAAE,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC,CAAC;IACF,2EAA2E;IAC3E,iGAAiG;IACjG,MAAM,eAAe,GAAG,CAAC,SAAiB,EAAE,OAAe,EAAgC,EAAE;QAC3F,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,OAAO;YACL,GAAG,IAAI;YACP,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzG,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;SACtH,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,GAA0B,EAAE,EAAE;QAC/C,mBAAmB,CAAC,IAAI,CACtB,GAAG,CAAC,WAAW;YACb,2BAA2B,CAAC;gBAC1B,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;gBACnB,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;gBACf,MAAM,EAAE,GAAG,CAAC,MAAM;aACnB,CAAC,CACL,CAAC;QACF,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,GAAkC,EAAE;QACnD,IAAI,QAAQ;YAAE,OAAO,OAAO,CAAC;QAC7B,IAAI,eAAe,EAAE;YAAE,OAAO,MAAM,CAAC;QACrC,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,OAAe,EAAE,GAAW,EAAE,EAAE;QACrD,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC;YAAE,OAAO;QAC3D,MAAM,SAAS,GAAG,OAAO,GAAG,KAAK,CAAC;QAClC,MAAM,SAAS,GAAG,KAAK,CAAC;QACxB,MAAM,OAAO,GAAG,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,mBAAmB,CAAC;YACrC,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE;gBACP,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,YAAY;gBACrB,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI;gBACjB,QAAQ,EAAE;oBACR,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,IAAI,IAAI;oBACzC,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS;iBACtC;gBACD,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO;gBACtB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrC;SACF,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC;QACjD,uFAAuF;QACvF,sFAAsF;QACtF,uFAAuF;QACvF,MAAM,MAAM,GAAG,QAAQ,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,uBAAuB,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClG,MAAM,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;QACnC,MAAM,SAAS,GACb,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC;QACxH,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC,CAAC;QAC9C,iBAAiB,IAAI,OAAO,CAAC;QAC7B,kBAAkB,IAAI,QAAQ,CAAC;QAC/B,aAAa,IAAI,IAAI,CAAC;QACtB,SAAS,CAAC,UAAU,CAAC,CAAC;QACtB,0FAA0F;QAC1F,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;YAC9C,UAAU,CAAC,IAAI,CAAC;gBACd,GAAG,GAAG;gBACN,UAAU,EAAE,SAAS,GAAG,kBAAkB,GAAG,QAAQ,GAAG,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;aACvG,CAAC,CAAC;QACL,CAAC;QACD,qBAAqB,IAAI,UAAU,CAAC,cAAc,EAAE,OAAO,IAAI,CAAC,CAAC;QACjE,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,SAAS;YACf,GAAG;YACH,MAAM,EAAE,KAAK,CAAC,CAAC;YACf,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;YACtB,WAAW,EAAE,QAAQ;YACrB,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE;gBACL,UAAU,EAAE,OAAO;gBACnB,WAAW,EAAE,QAAQ;gBACrB,SAAS,EAAE,CAAC;gBACZ,aAAa,EAAE,IAAI;aACpB;YACD,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,GAAG,EAAE,UAAU;SAChB,CAAC,CAAC;QACH,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC;QACvB,KAAK,GAAG,MAAM,CAAC;QACf,IAAI,MAAM;YAAE,UAAU,GAAG,MAAM,CAAC;IAClC,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,UAAU,KAAK,SAAS;YAAE,MAAM;QACpC,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC;QACzE,aAAa,CAAC,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,UAAU,KAAK,SAAS;YAAE,MAAM;QAEpC,MAAM,SAAS,GAAG,KAAK,CAAC;QACxB,MAAM,UAAU,GAAG,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC;QACjD,MAAM,OAAO,GAAG,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,WAAW,CAAC;YAC5B,GAAG,OAAO;YACV,OAAO,EAAE,KAAK;YACd,GAAG,EAAE;gBACH,GAAG,OAAO,CAAC,GAAG;gBACd,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE;gBAC/D,QAAQ,EAAE;oBACR,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,IAAI,IAAI;oBACzC,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS;iBACtC;gBACD,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrC;SACF,CAAC,CAAC;QACH,uEAAuE;QACvE,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QAC3C,SAAS,IAAI,SAAS,CAAC;QACvB,YAAY,IAAI,CAAC,CAAC;QAClB,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,KAAK,QAAQ;YAAE,WAAW,IAAI,CAAC,CAAC;QAC1D,SAAS,CAAC,SAAS,CAAC,CAAC;QACrB,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC;QACzB,CAAC;QACD,uFAAuF;QACvF,+CAA+C;QAC/C,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9G,mBAAmB,IAAI,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QACxD,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7B,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;YAC7C,UAAU,CAAC,IAAI,CAAC;gBACd,GAAG,GAAG;gBACN,UAAU,EAAE,SAAS,GAAG,kBAAkB,GAAG,SAAS,GAAG,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;aACvG,CAAC,CAAC;QACL,CAAC;QACD,qBAAqB,IAAI,SAAS,CAAC,cAAc,EAAE,OAAO,IAAI,CAAC,CAAC;QAChE,8EAA8E;QAC9E,8EAA8E;QAC9E,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC;QACzF,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;YACrB,WAAW,EAAE,SAAS;YACtB,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE;gBACL,UAAU,EAAE,OAAO,GAAG,SAAS;gBAC/B,WAAW,EAAE,SAAS;gBACtB,SAAS,EAAE,SAAS;gBACpB,aAAa,EAAE,CAAC;aACjB;YACD,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,GAAG,EAAE,SAAS;SACf,CAAC,CAAC;QACH,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC;QACtB,KAAK,GAAG,OAAO,CAAC;QAChB,MAAM,MAAM,GAAG,QAAQ,EAAE,CAAC;QAC1B,IAAI,MAAM;YAAE,UAAU,GAAG,MAAM,CAAC;IAClC,CAAC;IAED,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,aAAa,CAAC,MAAM,GAAG,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;IACtD,2GAA2G;IAC3G,MAAM,WAAW,GACf,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC;QACjC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE;QAC/F,CAAC,CAAC,MAAM,CAAC;IACb,MAAM,KAAK,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;IACxC,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;IACrC,MAAM,GAAG,GAA0B;QACjC,KAAK;QACL,GAAG,EAAE,KAAK;QACV,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,UAAU,EAAE,MAAM,CAAC,KAAK;QACxB,KAAK;QACL,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC;QACzB,WAAW;QACX,GAAG,CAAC,WAAW,KAAK,SAAS;YAC3B,CAAC,CAAC;gBACE,QAAQ,EAAE;oBACR,SAAS,EAAE,WAAW;oBACtB,SAAS,EAAE,MAAM,CAAC,SAAS,GAAG,mBAAmB;oBACjD,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,mBAAmB;oBAC7C,QAAQ,EAAE,MAAM,CAAC,QAAQ;iBAC1B;aACF;YACH,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,YAAY,KAAK,SAAS;YAC5B,CAAC,CAAC;gBACE,cAAc,EAAE;oBACd,UAAU,EAAE,YAAY;oBACxB,SAAS,EAAE,MAAM,CAAC,SAAS,GAAG,qBAAqB;oBACnD,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,qBAAqB;oBAC/C,QAAQ,EAAE,MAAM,CAAC,QAAQ;iBAC1B;aACF;YACH,CAAC,CAAC,EAAE,CAAC;QACP,QAAQ,EAAE,QAAQ,CAAC,QAAQ;KAC5B,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,KAAK;QACL,GAAG,EAAE,KAAK;QACV,GAAG;QACH,QAAQ;QACR,OAAO,EAAE;YACP,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YACvB,YAAY;YACZ,cAAc,EAAE,SAAS;YACzB,eAAe,EAAE,kBAAkB;YACnC,UAAU,EAAE,KAAK,GAAG,MAAM;YAC1B,UAAU;YACV,SAAS;YACT,iBAAiB;YACjB,kBAAkB;YAClB,aAAa;YACb,SAAS,EAAE,KAAK,CAAC,CAAC,GAAG,MAAM;YAC3B,cAAc,EAAE,YAAY,CAAC,IAAI;YACjC,WAAW;YACX,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;SAC7B;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/sim/session.ts"],"names":[],"mappings":"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"}
@@ -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":"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"}
1
+ {"version":3,"file":"simulator.js","sourceRoot":"","sources":["../../src/sim/simulator.ts"],"names":[],"mappings":"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"}
@@ -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
- return payQuote(ctx, state, action.id, quote.cost, events);
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
- * Single source of truth for one tick.
251
- * An omitted size or `singleBuySize` pays `Action.cost` once, then `apply` once.
252
- * A larger integer size pays the matching `BulkQuote.cost` once, then `apply` once.
253
- * `apply` does not pay again. A rejected quote leaves this state unchanged.
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/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.
258
- * @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.
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 stepOnce(input) {
261
- const { ctx, model, dt, constraints, fast } = input;
262
- const prev = input.state;
281
+ export function applyDecisions(args) {
282
+ const { ctx, model, constraints } = args;
263
283
  const { E } = ctx;
264
- let next = prev;
284
+ const resetKinds = args.resetKinds ?? new Set(["prestige"]);
285
+ let next = args.state;
265
286
  const events = [];
266
287
  const actionsApplied = [];
267
- const maxActionsPerStep = constraints?.maxActionsPerStep ?? Number.POSITIVE_INFINITY;
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, prev));
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 = currentAction(model, ctx, next, d.action, d.occurrence, baselineActions);
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 (input.admits && !input.admits(action))
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
  }