@vue-skuilder/standalone-ui 0.2.11 → 0.2.12

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.
@@ -24654,6 +24654,7 @@ var init_v4 = __esmMin((() => {
24654
24654
  buildStrategyStateId: () => buildStrategyStateId,
24655
24655
  captureMixerRun: () => captureMixerRun,
24656
24656
  clearSrsBacklogDebug: () => clearSrsBacklogDebug,
24657
+ clearStaleSessionDebugState: () => clearStaleSessionDebugState,
24657
24658
  computeDeviation: () => computeDeviation,
24658
24659
  computeEffectiveWeight: () => computeEffectiveWeight,
24659
24660
  computeOutcomeSignal: () => computeOutcomeSignal,
@@ -26647,8 +26648,8 @@ function hintsHtml(t) {
26647
26648
  }
26648
26649
  function backlogHtml(t) {
26649
26650
  return t.length ? `<div style="margin-bottom:6px"><div style="color:#93c5fd">review backpressure</div>${t.map((t) => {
26650
- let c = t.backlogMultiplier >= t.maxBacklogMultiplier - 1e-9, u = t.backlogMultiplier <= 1 ? "#86efac" : c ? "#fca5a5" : "#fcd34d", d = c ? "maxed — boosts decide order until they relax" : t.backlogMultiplier > 1 ? "climbing as backlog grows" : "healthy — no pressure", m = t.topReviewScore === null ? "—" : t.topReviewScore.toFixed(2), g = t.nextDueIn ? ` <span style="opacity:.6">\xB7 next due ${esc(t.nextDueIn)}</span>` : "";
26651
- return `<div style="margin-left:6px"><span style="opacity:.7">${esc(t.courseId.slice(0, 8))}</span> due ${t.dueNow}/${t.scheduledTotal} <span style="opacity:.6">(healthy ${t.healthyBacklog})</span>${g}<div style="margin-left:6px">pressure <span style="color:${u}">\xD7${t.backlogMultiplier.toFixed(2)}/${t.maxBacklogMultiplier.toFixed(2)}</span> <span style="opacity:.6">${d} \xB7 top review ${m}</span></div></div>`;
26651
+ let c = t.backlogMultiplier >= 3, u = t.backlogMultiplier <= 1 ? "#86efac" : c ? "#fca5a5" : "#fcd34d", d = t.backlogMultiplier > 1 ? `climbing (\xD7${t.backlogGrowthRate.toFixed(2)} per ${t.healthyBacklog}-review excess, unbounded)` : "healthy — no pressure", m = t.topReviewScore === null ? "—" : t.topReviewScore.toFixed(2), g = t.nextDueIn ? ` <span style="opacity:.6">\xB7 next due ${esc(t.nextDueIn)}</span>` : "";
26652
+ return `<div style="margin-left:6px"><span style="opacity:.7">${esc(t.courseId.slice(0, 8))}</span> due ${t.dueNow}/${t.scheduledTotal} <span style="opacity:.6">(healthy ${t.healthyBacklog})</span>${g}<div style="margin-left:6px">pressure <span style="color:${u}">\xD7${t.backlogMultiplier.toFixed(2)}</span> <span style="opacity:.6">${d} \xB7 top review ${m}</span></div></div>`;
26652
26653
  }).join("")}</div>` : "";
26653
26654
  }
26654
26655
  function fmtScore(t) {
@@ -26692,8 +26693,8 @@ function snapshotToText(t) {
26692
26693
  if (u && (u.boostTags && Object.keys(u.boostTags).length && d.push(` boost: ${Object.entries(u.boostTags).map(([t, c]) => `${t}\xD7${c}`).join(", ")}`), u.boostCards && Object.keys(u.boostCards).length && d.push(` boostCards: ${Object.entries(u.boostCards).map(([t, c]) => `${t}\xD7${c}`).join(", ")}`), u.requireCards?.length && d.push(` require: ${u.requireCards.join(", ")}`), u.requireTags?.length && d.push(` requireTags: ${u.requireTags.join(", ")}`), u.excludeTags?.length && d.push(` exclude: ${u.excludeTags.join(", ")}`), u.excludeCards?.length && d.push(` excludeCards: ${u.excludeCards.join(", ")}`)), c.push(d.length ? d.join("\n") : " none"), t.reviewBacklog.length) {
26693
26694
  c.push(""), c.push("review backpressure:");
26694
26695
  for (let u of t.reviewBacklog) {
26695
- let t = u.backlogMultiplier >= u.maxBacklogMultiplier - 1e-9 ? "maxed (boosts decide order)" : u.backlogMultiplier > 1 ? "climbing" : "healthy", d = u.topReviewScore === null ? "—" : u.topReviewScore.toFixed(2), m = u.nextDueIn ? `, next due ${u.nextDueIn}` : "";
26696
- c.push(` ${u.courseId.slice(0, 8)}: due ${u.dueNow}/${u.scheduledTotal} (healthy ${u.healthyBacklog})${m}; pressure \xD7${u.backlogMultiplier.toFixed(2)}/${u.maxBacklogMultiplier.toFixed(2)} ${t}; top review ${d}`);
26696
+ let t = u.backlogMultiplier > 1 ? "climbing" : "healthy", d = u.topReviewScore === null ? "—" : u.topReviewScore.toFixed(2), m = u.nextDueIn ? `, next due ${u.nextDueIn}` : "";
26697
+ c.push(` ${u.courseId.slice(0, 8)}: due ${u.dueNow}/${u.scheduledTotal} (healthy ${u.healthyBacklog})${m}; pressure \xD7${u.backlogMultiplier.toFixed(2)} ${t}; top review ${d}`);
26697
26698
  }
26698
26699
  }
26699
26700
  let queueText = (t, u) => {
@@ -26714,8 +26715,10 @@ function formatTime(t) {
26714
26715
  function esc(t) {
26715
26716
  return t.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
26716
26717
  }
26717
- function startSessionTracking(t, c) {
26718
+ function clearStaleSessionDebugState() {
26718
26719
  clearRunHistory(), clearSrsBacklogDebug();
26720
+ }
26721
+ function startSessionTracking(t, c) {
26719
26722
  let u = `session-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
26720
26723
  activeSession = {
26721
26724
  sessionId: u,
@@ -26821,7 +26824,7 @@ function mountSessionDebugger() {
26821
26824
  let t = window;
26822
26825
  t.skuilder = t.skuilder || {}, t.skuilder.session = sessionDebugAPI;
26823
26826
  }
26824
- var import___vite_browser_external, import___vite_browser_external$1, import___vite_browser_external$2, import_browser_ponyfill, import_browser_ponyfill$1, import_browser, _SessionController2, __defProp, __getOwnPropNames, __glob, __esm, __export, init_adminDB, init_classroomDB, init_SyncStrategy, isDevelopment, logger, init_logger, GuestUsername, log, DocType, DocTypePrefixes, init_types_legacy, init_util, pouchdb_setup_default, init_pouchdb_setup, init_dataDirectory, REVIEW_TIME_FORMAT, log2, init_userDBHelpers, Loggable, init_Loggable, UpdateQueue, init_updateQueue, UsrCrsData, init_user_course_relDB, CLIENT_CACHE, init_clientCache, AlreadyTaggedErr, init_courseAPI, courseLookupDBTitle, CourseLookup, init_courseLookupDB, diversityRerank_exports, DIVERSITY_STRENGTH, DIVERSITY_FLOOR, STRATEGY, STRATEGY_ID, STRATEGY_NAME, init_diversityRerank, PipelineDebugger_exports, _activePipeline, MAX_RUNS, runHistory, DISCARDED_KEEP_TOP, _uiContainer, _selectedRunIndex, _cardSearchQuery, pipelineDebugAPI, init_PipelineDebugger, SrsDebugger_exports, snapshots, init_SrsDebugger, CompositeGenerator_exports, AggregationMode, DEFAULT_AGGREGATION_MODE, FREQUENCY_BOOST_FACTOR, CompositeGenerator, init_CompositeGenerator, elo_exports, ELO_RELEVANCE_SIGMA, ELONavigator, init_elo, generators_exports, init_generators, prescribed_exports, DEFAULT_FRESHNESS_WINDOW, DEFAULT_MAX_DIRECT_PER_RUN, DEFAULT_MAX_SUPPORT_PER_RUN, DEFAULT_HIERARCHY_DEPTH, DEFAULT_MIN_COUNT, DEFAULT_PRACTICE_MIN_COUNT, DEFAULT_MAX_PRACTICE_PER_RUN, BASE_TARGET_SCORE, BASE_SUPPORT_SCORE, DISCOVERED_SUPPORT_SCORE, BASE_PRACTICE_SCORE, PRACTICE_BASE_MULT, MAX_PRACTICE_MULTIPLIER, PRACTICE_STALENESS_BUMP_PER_DAY, MAX_TARGET_MULTIPLIER, MAX_SUPPORT_MULTIPLIER, PRESCRIBED_DEBUG_VERSION, PrescribedCardsGenerator, init_prescribed, srs_exports, DEFAULT_HEALTHY_BACKLOG, MAX_BACKLOG_MULTIPLIER, SRSNavigator, init_srs, types_exports, init_types, globImport_generators, init_, DEFAULT_LEARNABLE_WEIGHT, init_contentNavigationStrategy, WeightedFilter_exports, WeightedFilter, init_WeightedFilter, eloDistance_exports, DEFAULT_HALF_LIFE, DEFAULT_MIN_MULTIPLIER, DEFAULT_MAX_MULTIPLIER, init_eloDistance, hierarchyDefinition_exports, DEFAULT_MIN_COUNT2, HierarchyDefinitionNavigator, init_hierarchyDefinition, userTagPreference_exports, UserTagPreferenceFilter, init_userTagPreference, filters_exports, init_filters, inferredPreferenceStub_exports, INFERRED_PREFERENCE_NAVIGATOR_STUB, init_inferredPreferenceStub, interferenceMitigator_exports, DEFAULT_MIN_COUNT3, DEFAULT_MIN_ELAPSED_DAYS, DEFAULT_INTERFERENCE_DECAY, InterferenceMitigatorNavigator, init_interferenceMitigator, relativePriority_exports, DEFAULT_PRIORITY, DEFAULT_PRIORITY_INFLUENCE, DEFAULT_COMBINE_MODE, RelativePriorityNavigator, init_relativePriority, types_exports2, init_types2, userGoalStub_exports, USER_GOAL_NAVIGATOR_STUB, init_userGoalStub, globImport_filters, init_2, init_gradient, MIN_OBSERVATIONS_FOR_UPDATE, LEARNING_RATE, MAX_WEIGHT_DELTA, MIN_R_SQUARED_FOR_GRADIENT, FLAT_GRADIENT_THRESHOLD, MAX_HISTORY_LENGTH, init_learning, init_signal, init_recording, MIN_SPREAD, MAX_SPREAD, MIN_WEIGHT, MAX_WEIGHT, init_orchestration, Pipeline_exports, VERBOSE_RESULTS, Pipeline, init_Pipeline, defaults_exports, init_defaults, PipelineAssembler_exports, PipelineAssembler, init_PipelineAssembler, globImport, init_3, navigators_exports, navigatorRegistry, Navigators, NavigatorRole, NavigatorRoles, ContentNavigator, init_navigators, CoursesDB, CourseDB, init_courseDB, classroomLookupDBTitle, CLASSROOM_CONFIG, ClassroomDBBase, StudentClassroomDB, TeacherClassroomDB, ClassroomLookupDB, init_classroomDB2, AdminDB, init_adminDB2, CourseSyncService_exports, DEFAULT_REPLICATION, CourseSyncService, init_CourseSyncService, init_auth, CouchDBSyncStrategy_exports, log3, CouchDBSyncStrategy, init_CouchDBSyncStrategy, isBrowser, GUEST_LOCAL_DB, localUserDB, pouchDBincludeCredentialsConfig, REVIEW_TIME_FORMAT2, init_couch, log4, BaseUser, userCoursesDoc, userClassroomsDoc, init_BaseUserDB, init_common, PouchDataLayerProvider_exports, CouchDataLayerProvider, init_PouchDataLayerProvider, pathUtils, nodeFS, StaticDataUnpacker, init_StaticDataUnpacker, StaticCourseDB, init_courseDB2, StaticCoursesDB, init_coursesDB, NoOpSyncStrategy, init_NoOpSyncStrategy, StaticDataLayerProvider_exports, StaticDataLayerProvider, init_StaticDataLayerProvider, NOT_SET, ENV, dataLayerInstance, init_factory, TagFilteredContentSource, init_TagFilteredContentSource, init_contentSource, init_courseDB3, init_dataLayerProvider, init_userDB, init_interfaces, init_user, init_strategyState, init_userOutcome, init_cardProcessor, init_types3, init_bulkImport, userDBDebugAPI, init_UserDBDebugger, init_core, duration, SrsService, EloService, ResponseProcessor, CardHydrationService, ItemQueue, CouchDBToStaticPacker, DEFAULT_MIGRATION_OPTIONS, FileSystemError, nodeFS2, nodeFS3, nodePath, StaticToCouchDBMigrator, QuotaRoundRobinMixer, MAX_RUNS2, runHistory2, mixerDebugAPI, activeController, OVERLAY_ID, POLL_MS, INLINE_THRESHOLD, SPINNER_FRAMES, spinnerFrame, overlayEl, pollHandle, lastSnapshot, copyFlashUntil, minified, expanded, activeSession, sessionHistory, MAX_HISTORY, sessionDebugAPI, SessionController, init_dist = __esmMin((() => {
26827
+ var import___vite_browser_external, import___vite_browser_external$1, import___vite_browser_external$2, import_browser_ponyfill, import_browser_ponyfill$1, import_browser, _SessionController2, __defProp, __getOwnPropNames, __glob, __esm, __export, init_adminDB, init_classroomDB, init_SyncStrategy, isDevelopment, logger, init_logger, GuestUsername, log, DocType, DocTypePrefixes, init_types_legacy, init_util, pouchdb_setup_default, init_pouchdb_setup, init_dataDirectory, REVIEW_TIME_FORMAT, log2, init_userDBHelpers, Loggable, init_Loggable, UpdateQueue, init_updateQueue, UsrCrsData, init_user_course_relDB, CLIENT_CACHE, init_clientCache, AlreadyTaggedErr, init_courseAPI, courseLookupDBTitle, CourseLookup, init_courseLookupDB, diversityRerank_exports, DIVERSITY_STRENGTH, DIVERSITY_FLOOR, STRATEGY, STRATEGY_ID, STRATEGY_NAME, init_diversityRerank, PipelineDebugger_exports, _activePipeline, MAX_RUNS, runHistory, DISCARDED_KEEP_TOP, _uiContainer, _selectedRunIndex, _cardSearchQuery, pipelineDebugAPI, init_PipelineDebugger, SrsDebugger_exports, snapshots, init_SrsDebugger, CompositeGenerator_exports, AggregationMode, DEFAULT_AGGREGATION_MODE, FREQUENCY_BOOST_FACTOR, CompositeGenerator, init_CompositeGenerator, elo_exports, ELO_RELEVANCE_SIGMA, ELONavigator, init_elo, generators_exports, init_generators, prescribed_exports, DEFAULT_FRESHNESS_WINDOW, DEFAULT_MAX_DIRECT_PER_RUN, DEFAULT_MAX_SUPPORT_PER_RUN, DEFAULT_HIERARCHY_DEPTH, DEFAULT_MIN_COUNT, DEFAULT_PRACTICE_MIN_COUNT, DEFAULT_MAX_PRACTICE_PER_RUN, BASE_TARGET_SCORE, BASE_SUPPORT_SCORE, DISCOVERED_SUPPORT_SCORE, BASE_PRACTICE_SCORE, PRACTICE_BASE_MULT, MAX_PRACTICE_MULTIPLIER, PRACTICE_STALENESS_BUMP_PER_DAY, MAX_TARGET_MULTIPLIER, MAX_SUPPORT_MULTIPLIER, PRESCRIBED_DEBUG_VERSION, PrescribedCardsGenerator, init_prescribed, srs_exports, DEFAULT_HEALTHY_BACKLOG, BACKLOG_GROWTH_RATE, SRSNavigator, init_srs, types_exports, init_types, globImport_generators, init_, DEFAULT_LEARNABLE_WEIGHT, init_contentNavigationStrategy, WeightedFilter_exports, WeightedFilter, init_WeightedFilter, eloDistance_exports, DEFAULT_HALF_LIFE, DEFAULT_MIN_MULTIPLIER, DEFAULT_MAX_MULTIPLIER, init_eloDistance, hierarchyDefinition_exports, DEFAULT_MIN_COUNT2, HierarchyDefinitionNavigator, init_hierarchyDefinition, userTagPreference_exports, UserTagPreferenceFilter, init_userTagPreference, filters_exports, init_filters, inferredPreferenceStub_exports, INFERRED_PREFERENCE_NAVIGATOR_STUB, init_inferredPreferenceStub, interferenceMitigator_exports, DEFAULT_MIN_COUNT3, DEFAULT_MIN_ELAPSED_DAYS, DEFAULT_INTERFERENCE_DECAY, InterferenceMitigatorNavigator, init_interferenceMitigator, relativePriority_exports, DEFAULT_PRIORITY, DEFAULT_PRIORITY_INFLUENCE, DEFAULT_COMBINE_MODE, RelativePriorityNavigator, init_relativePriority, types_exports2, init_types2, userGoalStub_exports, USER_GOAL_NAVIGATOR_STUB, init_userGoalStub, globImport_filters, init_2, init_gradient, MIN_OBSERVATIONS_FOR_UPDATE, LEARNING_RATE, MAX_WEIGHT_DELTA, MIN_R_SQUARED_FOR_GRADIENT, FLAT_GRADIENT_THRESHOLD, MAX_HISTORY_LENGTH, init_learning, init_signal, init_recording, MIN_SPREAD, MAX_SPREAD, MIN_WEIGHT, MAX_WEIGHT, init_orchestration, Pipeline_exports, VERBOSE_RESULTS, Pipeline, init_Pipeline, defaults_exports, init_defaults, PipelineAssembler_exports, PipelineAssembler, init_PipelineAssembler, globImport, init_3, navigators_exports, navigatorRegistry, Navigators, NavigatorRole, NavigatorRoles, ContentNavigator, init_navigators, CoursesDB, CourseDB, init_courseDB, classroomLookupDBTitle, CLASSROOM_CONFIG, ClassroomDBBase, StudentClassroomDB, TeacherClassroomDB, ClassroomLookupDB, init_classroomDB2, AdminDB, init_adminDB2, CourseSyncService_exports, DEFAULT_REPLICATION, CourseSyncService, init_CourseSyncService, init_auth, CouchDBSyncStrategy_exports, log3, CouchDBSyncStrategy, init_CouchDBSyncStrategy, isBrowser, GUEST_LOCAL_DB, localUserDB, pouchDBincludeCredentialsConfig, REVIEW_TIME_FORMAT2, init_couch, log4, BaseUser, userCoursesDoc, userClassroomsDoc, init_BaseUserDB, init_common, PouchDataLayerProvider_exports, CouchDataLayerProvider, init_PouchDataLayerProvider, pathUtils, nodeFS, StaticDataUnpacker, init_StaticDataUnpacker, StaticCourseDB, init_courseDB2, StaticCoursesDB, init_coursesDB, NoOpSyncStrategy, init_NoOpSyncStrategy, StaticDataLayerProvider_exports, StaticDataLayerProvider, init_StaticDataLayerProvider, NOT_SET, ENV, dataLayerInstance, init_factory, TagFilteredContentSource, init_TagFilteredContentSource, init_contentSource, init_courseDB3, init_dataLayerProvider, init_userDB, init_interfaces, init_user, init_strategyState, init_userOutcome, init_cardProcessor, init_types3, init_bulkImport, userDBDebugAPI, init_UserDBDebugger, init_core, duration, SrsService, EloService, ResponseProcessor, CardHydrationService, ItemQueue, CouchDBToStaticPacker, DEFAULT_MIGRATION_OPTIONS, FileSystemError, nodeFS2, nodeFS3, nodePath, StaticToCouchDBMigrator, QuotaRoundRobinMixer, MAX_RUNS2, runHistory2, mixerDebugAPI, activeController, OVERLAY_ID, POLL_MS, INLINE_THRESHOLD, SPINNER_FRAMES, spinnerFrame, overlayEl, pollHandle, lastSnapshot, copyFlashUntil, minified, expanded, activeSession, sessionHistory, MAX_HISTORY, sessionDebugAPI, SessionController, init_dist = __esmMin((() => {
26825
26828
  init_defineProperty(), init_index_browser_es$5(), init_index_browser_es(), init_index_es(), import___vite_browser_external = /* @__PURE__ */ __toESM$2(require___vite_browser_external(), 1), import___vite_browser_external$1 = /* @__PURE__ */ __toESM$2(require___vite_browser_external(), 1), import___vite_browser_external$2 = /* @__PURE__ */ __toESM$2(require___vite_browser_external(), 1), init_moment(), init_dist$1(), init_esm_browser(), import_browser_ponyfill = /* @__PURE__ */ __toESM$2(require_browser_ponyfill(), 1), import_browser_ponyfill$1 = /* @__PURE__ */ __toESM$2(require_browser_ponyfill(), 1), import_browser = /* @__PURE__ */ __toESM$2(require_browser(), 1), __defProp = Object.defineProperty, __getOwnPropNames = Object.getOwnPropertyNames, __glob = (t) => (c) => {
26826
26829
  var u = t[c];
26827
26830
  if (u) return u();
@@ -27754,7 +27757,7 @@ var import___vite_browser_external, import___vite_browser_external$1, import___v
27754
27757
  }
27755
27758
  };
27756
27759
  } }), srs_exports = {}, __export(srs_exports, { default: () => SRSNavigator }), init_srs = __esm({ "src/core/navigators/generators/srs.ts"() {
27757
- init_navigators(), init_SrsDebugger(), init_logger(), DEFAULT_HEALTHY_BACKLOG = 20, MAX_BACKLOG_MULTIPLIER = 2, SRSNavigator = class extends ContentNavigator {
27760
+ init_navigators(), init_SrsDebugger(), init_logger(), DEFAULT_HEALTHY_BACKLOG = 20, BACKLOG_GROWTH_RATE = 2, SRSNavigator = class extends ContentNavigator {
27758
27761
  constructor(t, c, u) {
27759
27762
  super(t, c, u), _defineProperty$2(this, "name", void 0), _defineProperty$2(this, "healthyBacklog", void 0), this.name = u?.name || "SRS", this.healthyBacklog = this.parseConfig(u?.serializedData).healthyBacklog ?? DEFAULT_HEALTHY_BACKLOG;
27760
27763
  }
@@ -27811,7 +27814,7 @@ var import___vite_browser_external, import___vite_browser_external$1, import___v
27811
27814
  dueNow: g.length,
27812
27815
  healthyBacklog: this.healthyBacklog,
27813
27816
  backlogMultiplier: b,
27814
- maxBacklogMultiplier: MAX_BACKLOG_MULTIPLIER,
27817
+ backlogGrowthRate: BACKLOG_GROWTH_RATE,
27815
27818
  topReviewScore: w.length > 0 ? w[0].score : null,
27816
27819
  nextDueIn: C,
27817
27820
  timestamp: Date.now()
@@ -27819,8 +27822,8 @@ var import___vite_browser_external, import___vite_browser_external$1, import___v
27819
27822
  }
27820
27823
  computeBacklogMultiplier(t) {
27821
27824
  if (t <= this.healthyBacklog) return 1;
27822
- let c = 1 + (t - this.healthyBacklog) / this.healthyBacklog * ((MAX_BACKLOG_MULTIPLIER - 1) / 2);
27823
- return Math.min(MAX_BACKLOG_MULTIPLIER, c);
27825
+ let c = (t - this.healthyBacklog) / this.healthyBacklog;
27826
+ return BACKLOG_GROWTH_RATE ** +c;
27824
27827
  }
27825
27828
  computeUrgencyScore(t, c, u) {
27826
27829
  let d = hooks.utc(t.scheduledAt), m = hooks.utc(t.reviewTime), g = Math.max(1, m.diff(d, "hours")), b = c.diff(m, "hours"), S = b / g, C = .3 + .7 * Math.exp(-g / 720), w = (.5 + (Math.min(1, Math.max(0, S)) * .5 + C * .5) * .45) * u, T = [
@@ -32140,6 +32143,7 @@ ${c.id}:`), logger.info(JSON.stringify(c.doc, null, 2));
32140
32143
  }
32141
32144
  async prepareSession() {
32142
32145
  if (this.sources.some((t) => typeof t.getWeightedCards != "function")) throw Error("[SessionController] All content sources must implement getWeightedCards().");
32146
+ clearStaleSessionDebugState();
32143
32147
  let t = await this.getWeightedContent();
32144
32148
  this._wellIndicatedRemaining = t, t >= 0 && t < _SessionController.MIN_WELL_INDICATED && this.log(`[Init] Only ${t}/${_SessionController.MIN_WELL_INDICATED} well-indicated cards in initial load`), await this.hydrationService.ensureHydratedCards(), startSessionTracking(this.supplyQ.length, this.failedQ.length), this._intervalHandle = setInterval(() => {
32145
32149
  this.tick();