@vue-skuilder/db 0.2.7 → 0.2.9

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 (40) hide show
  1. package/dist/{contentSource-Cplhv3bJ.d.ts → contentSource-C-0t0y0V.d.ts} +7 -0
  2. package/dist/{contentSource-kI9_jwTu.d.cts → contentSource-jSkcOt2s.d.cts} +7 -0
  3. package/dist/core/index.d.cts +67 -4
  4. package/dist/core/index.d.ts +67 -4
  5. package/dist/core/index.js +201 -39
  6. package/dist/core/index.js.map +1 -1
  7. package/dist/core/index.mjs +198 -39
  8. package/dist/core/index.mjs.map +1 -1
  9. package/dist/{dataLayerProvider-DrBqOUa3.d.ts → dataLayerProvider-BB0oi9T0.d.ts} +1 -1
  10. package/dist/{dataLayerProvider-CiA2Rr0v.d.cts → dataLayerProvider-BDClIrFC.d.cts} +1 -1
  11. package/dist/impl/couch/index.d.cts +2 -2
  12. package/dist/impl/couch/index.d.ts +2 -2
  13. package/dist/impl/couch/index.js +195 -39
  14. package/dist/impl/couch/index.js.map +1 -1
  15. package/dist/impl/couch/index.mjs +195 -39
  16. package/dist/impl/couch/index.mjs.map +1 -1
  17. package/dist/impl/static/index.d.cts +2 -2
  18. package/dist/impl/static/index.d.ts +2 -2
  19. package/dist/impl/static/index.js +195 -39
  20. package/dist/impl/static/index.js.map +1 -1
  21. package/dist/impl/static/index.mjs +195 -39
  22. package/dist/impl/static/index.mjs.map +1 -1
  23. package/dist/index.d.cts +115 -81
  24. package/dist/index.d.ts +115 -81
  25. package/dist/index.js +440 -251
  26. package/dist/index.js.map +1 -1
  27. package/dist/index.mjs +437 -251
  28. package/dist/index.mjs.map +1 -1
  29. package/docs/navigators-architecture.md +29 -13
  30. package/package.json +3 -3
  31. package/src/core/interfaces/contentSource.ts +7 -0
  32. package/src/core/navigators/Pipeline.ts +93 -1
  33. package/src/core/navigators/PipelineDebugger.ts +11 -1
  34. package/src/core/navigators/SrsDebugger.ts +53 -0
  35. package/src/core/navigators/generators/prescribed.ts +76 -9
  36. package/src/core/navigators/generators/srs.ts +81 -37
  37. package/src/core/navigators/index.ts +9 -0
  38. package/src/study/SessionController.ts +260 -249
  39. package/src/study/SessionDebugger.ts +15 -25
  40. package/src/study/SessionOverlay.ts +108 -13
@@ -1192,6 +1192,13 @@ interface StudySessionItem {
1192
1192
  cardID: string;
1193
1193
  courseID: string;
1194
1194
  elo?: number;
1195
+ /**
1196
+ * Pipeline suitability score at queue-build time, carried for observability
1197
+ * (the debug overlay renders the now-load-bearing supply ranking). `+INF`
1198
+ * marks a mandatory required card. Not used for any draw decision — the
1199
+ * supplyQ is already ordered, so the controller draws front-to-back.
1200
+ */
1201
+ score?: number;
1195
1202
  }
1196
1203
  interface ContentSourceID {
1197
1204
  type: 'course' | 'classroom';
@@ -1192,6 +1192,13 @@ interface StudySessionItem {
1192
1192
  cardID: string;
1193
1193
  courseID: string;
1194
1194
  elo?: number;
1195
+ /**
1196
+ * Pipeline suitability score at queue-build time, carried for observability
1197
+ * (the debug overlay renders the now-load-bearing supply ranking). `+INF`
1198
+ * marks a mandatory required card. Not used for any draw decision — the
1199
+ * supplyQ is already ordered, so the controller draws front-to-back.
1200
+ */
1201
+ score?: number;
1195
1202
  }
1196
1203
  interface ContentSourceID {
1197
1204
  type: 'course' | 'classroom';
@@ -1,6 +1,6 @@
1
- import { a7 as LearnableWeight, M as UserOutcomeRecord, a8 as OrchestrationContext, W as WeightedCard, U as UserDBInterface, C as CourseDBInterface, R as ReplanHints, Z as StrategyContribution } from '../contentSource-kI9_jwTu.cjs';
2
- export { K as ActivityRecord, A as AdminDBInterface, v as AssignedCard, g as AssignedContent, u as AssignedCourse, t as AssignedTag, a4 as CardGenerator, a6 as CardGeneratorFactory, c as ClassroomDBInterface, F as ClassroomRegistration, E as ClassroomRegistrationDesignation, H as ClassroomRegistrationDoc, e as ContentNavigationStrategyData, f as ContentNavigator, q as ContentSourceID, d as CourseInfo, L as CourseRegistration, s as CourseRegistrationDoc, b as CoursesDBInterface, a5 as GeneratorContext, G as GeneratorResult, N as NavigatorConstructor, a0 as NavigatorRole, a1 as NavigatorRoles, $ as Navigators, j as ScheduledCard, I as SessionTrackingData, i as StudentClassroomDBInterface, h as StudyContentSource, k as StudySessionFailedItem, l as StudySessionFailedNewItem, m as StudySessionFailedReviewItem, S as StudySessionItem, n as StudySessionNewItem, o as StudySessionReviewItem, T as TeacherClassroomDBInterface, J as UserConfig, z as UserCourseSetting, y as UserCourseSettings, x as UserDBAuthenticator, a as UserDBReader, w as UserDBWriter, B as UsrCrsDataInterface, a9 as computeDeviation, ab as computeEffectiveWeight, aa as computeSpread, ac as createOrchestrationContext, _ as getCardOrigin, P as getRegisteredNavigator, X as getRegisteredNavigatorNames, V as getRegisteredNavigatorRole, r as getStudySource, Q as hasRegisteredNavigator, Y as initializeNavigatorRegistry, a3 as isFilter, a2 as isGenerator, p as isReview, O as registerNavigator } from '../contentSource-kI9_jwTu.cjs';
3
- export { D as DataLayerProvider } from '../dataLayerProvider-CiA2Rr0v.cjs';
1
+ import { a7 as LearnableWeight, M as UserOutcomeRecord, a8 as OrchestrationContext, W as WeightedCard, U as UserDBInterface, C as CourseDBInterface, R as ReplanHints, Z as StrategyContribution } from '../contentSource-jSkcOt2s.cjs';
2
+ export { K as ActivityRecord, A as AdminDBInterface, v as AssignedCard, g as AssignedContent, u as AssignedCourse, t as AssignedTag, a4 as CardGenerator, a6 as CardGeneratorFactory, c as ClassroomDBInterface, F as ClassroomRegistration, E as ClassroomRegistrationDesignation, H as ClassroomRegistrationDoc, e as ContentNavigationStrategyData, f as ContentNavigator, q as ContentSourceID, d as CourseInfo, L as CourseRegistration, s as CourseRegistrationDoc, b as CoursesDBInterface, a5 as GeneratorContext, G as GeneratorResult, N as NavigatorConstructor, a0 as NavigatorRole, a1 as NavigatorRoles, $ as Navigators, j as ScheduledCard, I as SessionTrackingData, i as StudentClassroomDBInterface, h as StudyContentSource, k as StudySessionFailedItem, l as StudySessionFailedNewItem, m as StudySessionFailedReviewItem, S as StudySessionItem, n as StudySessionNewItem, o as StudySessionReviewItem, T as TeacherClassroomDBInterface, J as UserConfig, z as UserCourseSetting, y as UserCourseSettings, x as UserDBAuthenticator, a as UserDBReader, w as UserDBWriter, B as UsrCrsDataInterface, a9 as computeDeviation, ab as computeEffectiveWeight, aa as computeSpread, ac as createOrchestrationContext, _ as getCardOrigin, P as getRegisteredNavigator, X as getRegisteredNavigatorNames, V as getRegisteredNavigatorRole, r as getStudySource, Q as hasRegisteredNavigator, Y as initializeNavigatorRegistry, a3 as isFilter, a2 as isGenerator, p as isReview, O as registerNavigator } from '../contentSource-jSkcOt2s.cjs';
3
+ export { D as DataLayerProvider } from '../dataLayerProvider-BDClIrFC.cjs';
4
4
  import { D as DocType, d as QuestionRecord, b as DocTypePrefixes, C as CardHistory, c as CardRecord } from '../types-legacy-4tlwHnXo.cjs';
5
5
  export { e as CardData, f as CourseListData, h as DataShapeData, g as DisplayableData, F as Field, G as GuestUsername, Q as QualifiedCardID, i as QuestionData, S as SkuilderCourseData, a as Tag, T as TagStub, l as log } from '../types-legacy-4tlwHnXo.cjs';
6
6
  import { DataShape, ParsedCard } from '@vue-skuilder/common';
@@ -12,6 +12,31 @@ declare abstract class Loggable {
12
12
  protected error(...args: unknown[]): void;
13
13
  }
14
14
 
15
+ /** Per-course snapshot of SRS backlog state, captured on each SRS generator run. */
16
+ interface SrsBacklogDebug {
17
+ courseId: string;
18
+ /** Total reviews scheduled for this course (due + not-yet-due). */
19
+ scheduledTotal: number;
20
+ /** Reviews eligible (due) right now. */
21
+ dueNow: number;
22
+ /** Healthy backlog threshold; multiplier is ×1.0 at or below this. */
23
+ healthyBacklog: number;
24
+ /** Global multiplier applied to every due review's urgency this run (1.0 → max). */
25
+ backlogMultiplier: number;
26
+ /** Max achievable backlog multiplier (the cap), for headroom context. */
27
+ maxBacklogMultiplier: number;
28
+ /** Highest review score produced this run (post-multiplier; can exceed 1.0); null if none due. */
29
+ topReviewScore: number | null;
30
+ /** Human-readable time until the next review comes due, or null if some are due now. */
31
+ nextDueIn: string | null;
32
+ /** Epoch ms of capture. */
33
+ timestamp: number;
34
+ }
35
+ /** Current backlog snapshot for every course seen, newest-first. */
36
+ declare function getSrsBacklogDebug(): SrsBacklogDebug[];
37
+ /** Drop all captured snapshots (called on session start, alongside pipeline history). */
38
+ declare function clearSrsBacklogDebug(): void;
39
+
15
40
  /**
16
41
  * Snapshot of the learning state for a strategy.
17
42
  *
@@ -340,6 +365,37 @@ declare const DIVERSITY_FLOOR = 0.3;
340
365
  */
341
366
  declare function diversityRerank(cards: WeightedCard[], opts?: DiversityRerankOptions): WeightedCard[];
342
367
 
368
+ /**
369
+ * A navigation pipeline that runs a generator and applies filters sequentially.
370
+ *
371
+ * Implements StudyContentSource for backward compatibility with SessionController.
372
+ *
373
+ * ## Usage
374
+ *
375
+ * ```typescript
376
+ * const pipeline = new Pipeline(
377
+ * compositeGenerator, // or single generator
378
+ * [eloDistanceFilter, interferenceFilter],
379
+ * user,
380
+ * course
381
+ * );
382
+ *
383
+ * const cards = await pipeline.getWeightedCards(20);
384
+ * ```
385
+ */
386
+ /**
387
+ * Narrow capability surface for out-of-band, commit-free reads against a live
388
+ * pipeline (see {@link getActivePipeline}). Kept minimal on purpose — consumers
389
+ * get the forecast capability, not the whole `Pipeline` class.
390
+ */
391
+ interface PipelineForecaster {
392
+ forecast(opts?: {
393
+ hints?: ReplanHints;
394
+ unseenOnly?: boolean;
395
+ threshold?: number;
396
+ limit?: number;
397
+ }): Promise<WeightedCard[]>;
398
+ }
343
399
  /**
344
400
  * Diagnosis of the full card space for the current user.
345
401
  */
@@ -361,6 +417,13 @@ interface CardSpaceDiagnosis {
361
417
  elapsedMs: number;
362
418
  }
363
419
 
420
+ /**
421
+ * The most recently constructed pipeline for the current session, or null if
422
+ * none has been built yet. This is the supported, non-debug accessor for
423
+ * out-of-band reads against the live pipeline (e.g. a commit-free
424
+ * `forecast()`), replacing reach-ins through `window.skuilder.pipeline`.
425
+ */
426
+ declare function getActivePipeline(): PipelineForecaster | null;
364
427
  /**
365
428
  * Summary of a single generator's contribution.
366
429
  */
@@ -742,4 +805,4 @@ declare const userDBDebugAPI: {
742
805
  */
743
806
  declare function mountUserDBDebugger(): void;
744
807
 
745
- export { type BulkCardProcessorConfig, type CardFilter, type CardFilterFactory, CardHistory, CardRecord, CourseDBInterface, DIVERSITY_FLOOR, DIVERSITY_STRENGTH, type DiversityRerankOptions, DocType, DocTypePrefixes, type FilterContext, type FilterImpact, type GeneratorSummary, type GradientObservation, type GradientResult, type ImportResult, LearnableWeight, Loggable, OrchestrationContext, type PeriodUpdateInput, type PeriodUpdateResult, type PipelineRunReport, QuestionRecord, ReplanHints, type SignalConfig, StrategyContribution, type StrategyLearningState, type StrategyStateDoc, type StrategyStateId, UserDBInterface, UserOutcomeRecord, WeightedCard, aggregateOutcomesForGradient, areQuestionRecords, buildStrategyStateId, computeOutcomeSignal, computeStrategyGradient, diversityRerank, docIsDeleted, getCardHistoryID, getDefaultLearnableWeight, importParsedCards, isQuestionRecord, mountPipelineDebugger, mountUserDBDebugger, parseCardHistoryID, pipelineDebugAPI, recordUserOutcome, runPeriodUpdate, scoreAccuracyInZone, updateLearningState, updateStrategyWeight, userDBDebugAPI, validateProcessorConfig };
808
+ export { type BulkCardProcessorConfig, type CardFilter, type CardFilterFactory, CardHistory, CardRecord, CourseDBInterface, DIVERSITY_FLOOR, DIVERSITY_STRENGTH, type DiversityRerankOptions, DocType, DocTypePrefixes, type FilterContext, type FilterImpact, type GeneratorSummary, type GradientObservation, type GradientResult, type ImportResult, LearnableWeight, Loggable, OrchestrationContext, type PeriodUpdateInput, type PeriodUpdateResult, type PipelineForecaster, type PipelineRunReport, QuestionRecord, ReplanHints, type SignalConfig, type SrsBacklogDebug, StrategyContribution, type StrategyLearningState, type StrategyStateDoc, type StrategyStateId, UserDBInterface, UserOutcomeRecord, WeightedCard, aggregateOutcomesForGradient, areQuestionRecords, buildStrategyStateId, clearSrsBacklogDebug, computeOutcomeSignal, computeStrategyGradient, diversityRerank, docIsDeleted, getActivePipeline, getCardHistoryID, getDefaultLearnableWeight, getSrsBacklogDebug, importParsedCards, isQuestionRecord, mountPipelineDebugger, mountUserDBDebugger, parseCardHistoryID, pipelineDebugAPI, recordUserOutcome, runPeriodUpdate, scoreAccuracyInZone, updateLearningState, updateStrategyWeight, userDBDebugAPI, validateProcessorConfig };
@@ -1,6 +1,6 @@
1
- import { a7 as LearnableWeight, M as UserOutcomeRecord, a8 as OrchestrationContext, W as WeightedCard, U as UserDBInterface, C as CourseDBInterface, R as ReplanHints, Z as StrategyContribution } from '../contentSource-Cplhv3bJ.js';
2
- export { K as ActivityRecord, A as AdminDBInterface, v as AssignedCard, g as AssignedContent, u as AssignedCourse, t as AssignedTag, a4 as CardGenerator, a6 as CardGeneratorFactory, c as ClassroomDBInterface, F as ClassroomRegistration, E as ClassroomRegistrationDesignation, H as ClassroomRegistrationDoc, e as ContentNavigationStrategyData, f as ContentNavigator, q as ContentSourceID, d as CourseInfo, L as CourseRegistration, s as CourseRegistrationDoc, b as CoursesDBInterface, a5 as GeneratorContext, G as GeneratorResult, N as NavigatorConstructor, a0 as NavigatorRole, a1 as NavigatorRoles, $ as Navigators, j as ScheduledCard, I as SessionTrackingData, i as StudentClassroomDBInterface, h as StudyContentSource, k as StudySessionFailedItem, l as StudySessionFailedNewItem, m as StudySessionFailedReviewItem, S as StudySessionItem, n as StudySessionNewItem, o as StudySessionReviewItem, T as TeacherClassroomDBInterface, J as UserConfig, z as UserCourseSetting, y as UserCourseSettings, x as UserDBAuthenticator, a as UserDBReader, w as UserDBWriter, B as UsrCrsDataInterface, a9 as computeDeviation, ab as computeEffectiveWeight, aa as computeSpread, ac as createOrchestrationContext, _ as getCardOrigin, P as getRegisteredNavigator, X as getRegisteredNavigatorNames, V as getRegisteredNavigatorRole, r as getStudySource, Q as hasRegisteredNavigator, Y as initializeNavigatorRegistry, a3 as isFilter, a2 as isGenerator, p as isReview, O as registerNavigator } from '../contentSource-Cplhv3bJ.js';
3
- export { D as DataLayerProvider } from '../dataLayerProvider-DrBqOUa3.js';
1
+ import { a7 as LearnableWeight, M as UserOutcomeRecord, a8 as OrchestrationContext, W as WeightedCard, U as UserDBInterface, C as CourseDBInterface, R as ReplanHints, Z as StrategyContribution } from '../contentSource-C-0t0y0V.js';
2
+ export { K as ActivityRecord, A as AdminDBInterface, v as AssignedCard, g as AssignedContent, u as AssignedCourse, t as AssignedTag, a4 as CardGenerator, a6 as CardGeneratorFactory, c as ClassroomDBInterface, F as ClassroomRegistration, E as ClassroomRegistrationDesignation, H as ClassroomRegistrationDoc, e as ContentNavigationStrategyData, f as ContentNavigator, q as ContentSourceID, d as CourseInfo, L as CourseRegistration, s as CourseRegistrationDoc, b as CoursesDBInterface, a5 as GeneratorContext, G as GeneratorResult, N as NavigatorConstructor, a0 as NavigatorRole, a1 as NavigatorRoles, $ as Navigators, j as ScheduledCard, I as SessionTrackingData, i as StudentClassroomDBInterface, h as StudyContentSource, k as StudySessionFailedItem, l as StudySessionFailedNewItem, m as StudySessionFailedReviewItem, S as StudySessionItem, n as StudySessionNewItem, o as StudySessionReviewItem, T as TeacherClassroomDBInterface, J as UserConfig, z as UserCourseSetting, y as UserCourseSettings, x as UserDBAuthenticator, a as UserDBReader, w as UserDBWriter, B as UsrCrsDataInterface, a9 as computeDeviation, ab as computeEffectiveWeight, aa as computeSpread, ac as createOrchestrationContext, _ as getCardOrigin, P as getRegisteredNavigator, X as getRegisteredNavigatorNames, V as getRegisteredNavigatorRole, r as getStudySource, Q as hasRegisteredNavigator, Y as initializeNavigatorRegistry, a3 as isFilter, a2 as isGenerator, p as isReview, O as registerNavigator } from '../contentSource-C-0t0y0V.js';
3
+ export { D as DataLayerProvider } from '../dataLayerProvider-BB0oi9T0.js';
4
4
  import { D as DocType, d as QuestionRecord, b as DocTypePrefixes, C as CardHistory, c as CardRecord } from '../types-legacy-4tlwHnXo.js';
5
5
  export { e as CardData, f as CourseListData, h as DataShapeData, g as DisplayableData, F as Field, G as GuestUsername, Q as QualifiedCardID, i as QuestionData, S as SkuilderCourseData, a as Tag, T as TagStub, l as log } from '../types-legacy-4tlwHnXo.js';
6
6
  import { DataShape, ParsedCard } from '@vue-skuilder/common';
@@ -12,6 +12,31 @@ declare abstract class Loggable {
12
12
  protected error(...args: unknown[]): void;
13
13
  }
14
14
 
15
+ /** Per-course snapshot of SRS backlog state, captured on each SRS generator run. */
16
+ interface SrsBacklogDebug {
17
+ courseId: string;
18
+ /** Total reviews scheduled for this course (due + not-yet-due). */
19
+ scheduledTotal: number;
20
+ /** Reviews eligible (due) right now. */
21
+ dueNow: number;
22
+ /** Healthy backlog threshold; multiplier is ×1.0 at or below this. */
23
+ healthyBacklog: number;
24
+ /** Global multiplier applied to every due review's urgency this run (1.0 → max). */
25
+ backlogMultiplier: number;
26
+ /** Max achievable backlog multiplier (the cap), for headroom context. */
27
+ maxBacklogMultiplier: number;
28
+ /** Highest review score produced this run (post-multiplier; can exceed 1.0); null if none due. */
29
+ topReviewScore: number | null;
30
+ /** Human-readable time until the next review comes due, or null if some are due now. */
31
+ nextDueIn: string | null;
32
+ /** Epoch ms of capture. */
33
+ timestamp: number;
34
+ }
35
+ /** Current backlog snapshot for every course seen, newest-first. */
36
+ declare function getSrsBacklogDebug(): SrsBacklogDebug[];
37
+ /** Drop all captured snapshots (called on session start, alongside pipeline history). */
38
+ declare function clearSrsBacklogDebug(): void;
39
+
15
40
  /**
16
41
  * Snapshot of the learning state for a strategy.
17
42
  *
@@ -340,6 +365,37 @@ declare const DIVERSITY_FLOOR = 0.3;
340
365
  */
341
366
  declare function diversityRerank(cards: WeightedCard[], opts?: DiversityRerankOptions): WeightedCard[];
342
367
 
368
+ /**
369
+ * A navigation pipeline that runs a generator and applies filters sequentially.
370
+ *
371
+ * Implements StudyContentSource for backward compatibility with SessionController.
372
+ *
373
+ * ## Usage
374
+ *
375
+ * ```typescript
376
+ * const pipeline = new Pipeline(
377
+ * compositeGenerator, // or single generator
378
+ * [eloDistanceFilter, interferenceFilter],
379
+ * user,
380
+ * course
381
+ * );
382
+ *
383
+ * const cards = await pipeline.getWeightedCards(20);
384
+ * ```
385
+ */
386
+ /**
387
+ * Narrow capability surface for out-of-band, commit-free reads against a live
388
+ * pipeline (see {@link getActivePipeline}). Kept minimal on purpose — consumers
389
+ * get the forecast capability, not the whole `Pipeline` class.
390
+ */
391
+ interface PipelineForecaster {
392
+ forecast(opts?: {
393
+ hints?: ReplanHints;
394
+ unseenOnly?: boolean;
395
+ threshold?: number;
396
+ limit?: number;
397
+ }): Promise<WeightedCard[]>;
398
+ }
343
399
  /**
344
400
  * Diagnosis of the full card space for the current user.
345
401
  */
@@ -361,6 +417,13 @@ interface CardSpaceDiagnosis {
361
417
  elapsedMs: number;
362
418
  }
363
419
 
420
+ /**
421
+ * The most recently constructed pipeline for the current session, or null if
422
+ * none has been built yet. This is the supported, non-debug accessor for
423
+ * out-of-band reads against the live pipeline (e.g. a commit-free
424
+ * `forecast()`), replacing reach-ins through `window.skuilder.pipeline`.
425
+ */
426
+ declare function getActivePipeline(): PipelineForecaster | null;
364
427
  /**
365
428
  * Summary of a single generator's contribution.
366
429
  */
@@ -742,4 +805,4 @@ declare const userDBDebugAPI: {
742
805
  */
743
806
  declare function mountUserDBDebugger(): void;
744
807
 
745
- export { type BulkCardProcessorConfig, type CardFilter, type CardFilterFactory, CardHistory, CardRecord, CourseDBInterface, DIVERSITY_FLOOR, DIVERSITY_STRENGTH, type DiversityRerankOptions, DocType, DocTypePrefixes, type FilterContext, type FilterImpact, type GeneratorSummary, type GradientObservation, type GradientResult, type ImportResult, LearnableWeight, Loggable, OrchestrationContext, type PeriodUpdateInput, type PeriodUpdateResult, type PipelineRunReport, QuestionRecord, ReplanHints, type SignalConfig, StrategyContribution, type StrategyLearningState, type StrategyStateDoc, type StrategyStateId, UserDBInterface, UserOutcomeRecord, WeightedCard, aggregateOutcomesForGradient, areQuestionRecords, buildStrategyStateId, computeOutcomeSignal, computeStrategyGradient, diversityRerank, docIsDeleted, getCardHistoryID, getDefaultLearnableWeight, importParsedCards, isQuestionRecord, mountPipelineDebugger, mountUserDBDebugger, parseCardHistoryID, pipelineDebugAPI, recordUserOutcome, runPeriodUpdate, scoreAccuracyInZone, updateLearningState, updateStrategyWeight, userDBDebugAPI, validateProcessorConfig };
808
+ export { type BulkCardProcessorConfig, type CardFilter, type CardFilterFactory, CardHistory, CardRecord, CourseDBInterface, DIVERSITY_FLOOR, DIVERSITY_STRENGTH, type DiversityRerankOptions, DocType, DocTypePrefixes, type FilterContext, type FilterImpact, type GeneratorSummary, type GradientObservation, type GradientResult, type ImportResult, LearnableWeight, Loggable, OrchestrationContext, type PeriodUpdateInput, type PeriodUpdateResult, type PipelineForecaster, type PipelineRunReport, QuestionRecord, ReplanHints, type SignalConfig, type SrsBacklogDebug, StrategyContribution, type StrategyLearningState, type StrategyStateDoc, type StrategyStateId, UserDBInterface, UserOutcomeRecord, WeightedCard, aggregateOutcomesForGradient, areQuestionRecords, buildStrategyStateId, clearSrsBacklogDebug, computeOutcomeSignal, computeStrategyGradient, diversityRerank, docIsDeleted, getActivePipeline, getCardHistoryID, getDefaultLearnableWeight, getSrsBacklogDebug, importParsedCards, isQuestionRecord, mountPipelineDebugger, mountUserDBDebugger, parseCardHistoryID, pipelineDebugAPI, recordUserOutcome, runPeriodUpdate, scoreAccuracyInZone, updateLearningState, updateStrategyWeight, userDBDebugAPI, validateProcessorConfig };