@dofek/training 0.1.0 → 0.1.1

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.
@@ -0,0 +1,64 @@
1
+ /**
2
+ * User-facing names for training metrics. Plain labels belong in headings and
3
+ * chart series; technical names and calculation descriptions belong in details.
4
+ */
5
+ export const TRAINING_TERMINOLOGY = {
6
+ intensityDistribution: {
7
+ plainLabel: "Heart-rate zone distribution",
8
+ plainDescription: "Shows how recorded heart-rate time is distributed across effort zones.",
9
+ technicalName: "Karvonen five-zone model",
10
+ details: "Heart-rate time is grouped into five intensity zones using heart-rate reserve.",
11
+ },
12
+ workloadRatio: {
13
+ plainLabel: "Recent-to-baseline workload ratio",
14
+ plainDescription: "Compares recent training load with the latest baseline period.",
15
+ technicalName: "Acute-to-chronic workload ratio (ACWR)",
16
+ details: "Compares load from the latest 7 days with an equivalent 7-day baseline from the latest 28 days. This is descriptive context, not a safe range or an injury prediction.",
17
+ },
18
+ normalizedPower: {
19
+ plainLabel: "Effort-adjusted power",
20
+ plainDescription: "Power adjusted to reflect the extra effort of variable cycling.",
21
+ technicalName: "Normalized Power",
22
+ details: "Uses 30-second rolling average power and fourth-power weighting to represent variable cycling effort.",
23
+ },
24
+ criticalPower: {
25
+ plainLabel: "Sustainable cycling power",
26
+ plainDescription: "Shows the cycling power estimated for longer efforts.",
27
+ technicalName: "Critical Power",
28
+ details: "A power-duration model estimates the longer-effort power level and the finite work available above it.",
29
+ },
30
+ anaerobicWorkCapacity: {
31
+ plainLabel: "Short-burst power reserve",
32
+ plainDescription: "Shows the estimated power reserve available for short bursts.",
33
+ technicalName: "W′ (anaerobic work capacity)",
34
+ details: "The model's finite work term represents the estimated power reserve above sustainable power.",
35
+ },
36
+ polarization: {
37
+ plainLabel: "Easy-to-hard training balance",
38
+ plainDescription: "Shows the balance of easy, threshold, and high-intensity cycling.",
39
+ valueLabel: "Easy-to-hard balance",
40
+ technicalName: "Polarization Index (Treff three-zone model)",
41
+ details: "Summarizes the recorded distribution of easy, threshold, and high-intensity cycling.",
42
+ },
43
+ monotony: {
44
+ plainLabel: "Training variety and total load",
45
+ plainDescription: "Shows how varied your weekly training load is.",
46
+ valueLabel: "Training variety",
47
+ strainLabel: "Weekly load strain",
48
+ technicalName: "Training Monotony (Foster method)",
49
+ details: "Describes how evenly cycling training load is distributed across each calendar week.",
50
+ },
51
+ gradeAdjustedPace: {
52
+ plainLabel: "Effort-adjusted pace for grade",
53
+ plainDescription: "Shows walking or hiking pace adjusted for slopes.",
54
+ technicalName: "Grade-adjusted pace (Minetti slope-cost model)",
55
+ details: "Adjusts walking or hiking pace for the estimated energy cost of the recorded slope.",
56
+ },
57
+ estimatedOneRepMax: {
58
+ plainLabel: "Estimated single-rep strength",
59
+ plainDescription: "Shows the estimated maximum weight for one repetition.",
60
+ technicalName: "Estimated 1-Rep Max (e1RM)",
61
+ details: "Uses the Epley formula: estimated max = weight × (1 + repetitions ÷ 30).",
62
+ },
63
+ };
64
+ //# sourceMappingURL=terminology.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminology.js","sourceRoot":"","sources":["../src/terminology.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,qBAAqB,EAAE;QACrB,UAAU,EAAE,8BAA8B;QAC1C,gBAAgB,EAAE,wEAAwE;QAC1F,aAAa,EAAE,0BAA0B;QACzC,OAAO,EAAE,gFAAgF;KAC1F;IACD,aAAa,EAAE;QACb,UAAU,EAAE,mCAAmC;QAC/C,gBAAgB,EAAE,gEAAgE;QAClF,aAAa,EAAE,wCAAwC;QACvD,OAAO,EACL,wKAAwK;KAC3K;IACD,eAAe,EAAE;QACf,UAAU,EAAE,uBAAuB;QACnC,gBAAgB,EAAE,iEAAiE;QACnF,aAAa,EAAE,kBAAkB;QACjC,OAAO,EACL,uGAAuG;KAC1G;IACD,aAAa,EAAE;QACb,UAAU,EAAE,2BAA2B;QACvC,gBAAgB,EAAE,uDAAuD;QACzE,aAAa,EAAE,gBAAgB;QAC/B,OAAO,EACL,wGAAwG;KAC3G;IACD,qBAAqB,EAAE;QACrB,UAAU,EAAE,2BAA2B;QACvC,gBAAgB,EAAE,+DAA+D;QACjF,aAAa,EAAE,8BAA8B;QAC7C,OAAO,EACL,8FAA8F;KACjG;IACD,YAAY,EAAE;QACZ,UAAU,EAAE,+BAA+B;QAC3C,gBAAgB,EAAE,mEAAmE;QACrF,UAAU,EAAE,sBAAsB;QAClC,aAAa,EAAE,6CAA6C;QAC5D,OAAO,EAAE,sFAAsF;KAChG;IACD,QAAQ,EAAE;QACR,UAAU,EAAE,iCAAiC;QAC7C,gBAAgB,EAAE,gDAAgD;QAClE,UAAU,EAAE,kBAAkB;QAC9B,WAAW,EAAE,oBAAoB;QACjC,aAAa,EAAE,mCAAmC;QAClD,OAAO,EAAE,sFAAsF;KAChG;IACD,iBAAiB,EAAE;QACjB,UAAU,EAAE,gCAAgC;QAC5C,gBAAgB,EAAE,mDAAmD;QACrE,aAAa,EAAE,gDAAgD;QAC/D,OAAO,EAAE,qFAAqF;KAC/F;IACD,kBAAkB,EAAE;QAClB,UAAU,EAAE,+BAA+B;QAC3C,gBAAgB,EAAE,wDAAwD;QAC1E,aAAa,EAAE,4BAA4B;QAC3C,OAAO,EAAE,0EAA0E;KACpF;CACmF,CAAC"}
@@ -38,6 +38,7 @@ export interface TreffPolarizationWeek extends TreffPolarizationWeekInput {
38
38
  statusLabel: string;
39
39
  explanation: string;
40
40
  }
41
+ export declare const DEFAULT_POLARIZATION_THRESHOLD = 2;
41
42
  export declare function buildKarvonenIntensityDistribution(weeks: KarvonenZoneWeek[]): IntensityDistribution;
42
43
  export declare function buildTreffPolarizationWeek(input: TreffPolarizationWeekInput): TreffPolarizationWeek;
43
44
  //# sourceMappingURL=training-distribution.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"training-distribution.d.ts","sourceRoot":"","sources":["../src/training-distribution.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,aAAa,EAAE,WAAW,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,yBAAyB,EAAE,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,eAAe,GAAG,mBAAmB,CAAC;AAErF,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,qBAAsB,SAAQ,0BAA0B;IACvE,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE;QACf,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;KACZ,CAAC;IACF,MAAM,EAAE,kBAAkB,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AASD,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,gBAAgB,EAAE,GACxB,qBAAqB,CA0BvB;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,0BAA0B,GAChC,qBAAqB,CAuCvB"}
1
+ {"version":3,"file":"training-distribution.d.ts","sourceRoot":"","sources":["../src/training-distribution.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,aAAa,EAAE,WAAW,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,yBAAyB,EAAE,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,eAAe,GAAG,mBAAmB,CAAC;AAErF,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,qBAAsB,SAAQ,0BAA0B;IACvE,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE;QACf,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;KACZ,CAAC;IACF,MAAM,EAAE,kBAAkB,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAKD,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAMhD,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,gBAAgB,EAAE,GACxB,qBAAqB,CA0BvB;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,0BAA0B,GAChC,qBAAqB,CA4CvB"}
@@ -1,5 +1,6 @@
1
1
  import { HEART_RATE_ZONES } from "@dofek/zones/zones";
2
2
  const INTENSITY_EXPLANATION = "A descriptive view of endurance training time across the Karvonen five-zone heart-rate model. It does not classify training polarization.";
3
+ export const DEFAULT_POLARIZATION_THRESHOLD = 2;
3
4
  function roundedPercent(seconds, totalSeconds) {
4
5
  return totalSeconds > 0 ? Math.round((seconds / totalSeconds) * 1000) / 10 : 0;
5
6
  }
@@ -37,23 +38,26 @@ export function buildTreffPolarizationWeek(input) {
37
38
  z3: roundedPercent(input.z3Seconds, totalSeconds),
38
39
  };
39
40
  if (input.polarizationIndex === null) {
41
+ const explanation = input.z3Seconds > input.z1Seconds
42
+ ? "The index is not calculated because recorded Zone 3 time exceeds Zone 1, which is outside Treff's valid definition."
43
+ : "The index is not calculated because Dofek requires recorded cycling time in all three Treff heart-rate zones.";
40
44
  return {
41
45
  ...input,
42
46
  totalSeconds,
43
47
  zonePercentages,
44
48
  status: "insufficient_data",
45
- statusLabel: "Insufficient data",
46
- explanation: "Polarization needs recorded cycling time in all three Treff heart-rate zones.",
49
+ statusLabel: "Not calculated",
50
+ explanation,
47
51
  };
48
52
  }
49
- if (input.polarizationIndex > 2) {
53
+ if (input.polarizationIndex > DEFAULT_POLARIZATION_THRESHOLD) {
50
54
  return {
51
55
  ...input,
52
56
  totalSeconds,
53
57
  zonePercentages,
54
58
  status: "polarized",
55
- statusLabel: "Polarized",
56
- explanation: "This cycling week is polarized: it has a Treff polarization index above 2.00.",
59
+ statusLabel: "Matches polarized-pattern heuristic",
60
+ explanation: "This week's recorded cycling distribution is above Treff's descriptive 2.00 heuristic. It is not a physiological or medical assessment.",
57
61
  };
58
62
  }
59
63
  return {
@@ -61,8 +65,8 @@ export function buildTreffPolarizationWeek(input) {
61
65
  totalSeconds,
62
66
  zonePercentages,
63
67
  status: "not_polarized",
64
- statusLabel: "Not polarized",
65
- explanation: "This cycling week is not polarized because its Treff polarization index is 2.00 or lower.",
68
+ statusLabel: "Does not match polarized-pattern heuristic",
69
+ explanation: "This week's recorded cycling distribution is at or below Treff's descriptive 2.00 heuristic. It is not a physiological or medical assessment.",
66
70
  };
67
71
  }
68
72
  //# sourceMappingURL=training-distribution.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"training-distribution.js","sourceRoot":"","sources":["../src/training-distribution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAgDtD,MAAM,qBAAqB,GACzB,2IAA2I,CAAC;AAE9I,SAAS,cAAc,CAAC,OAAe,EAAE,YAAoB;IAC3D,OAAO,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,kCAAkC,CAChD,KAAyB;IAEzB,MAAM,WAAW,GAAG;QAClB,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAChD,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAChD,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAChD,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAChD,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAChD,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;KACjD,CAAC;IACF,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC;IAE5E,OAAO;QACL,KAAK,EAAE,oBAAoB;QAC3B,aAAa,EAAE,WAAW;QAC1B,YAAY;QACZ,KAAK,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE;YAC7C,MAAM,OAAO,GAAG,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtD,OAAO;gBACL,IAAI,EAAE,cAAc,CAAC,IAAI;gBACzB,KAAK,EAAE,cAAc,CAAC,KAAK;gBAC3B,OAAO;gBACP,OAAO,EAAE,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC;aAC/C,CAAC;QACJ,CAAC,CAAC;QACF,WAAW,EAAE,qBAAqB;KACnC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,KAAiC;IAEjC,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IACzE,MAAM,eAAe,GAAG;QACtB,EAAE,EAAE,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC;QACjD,EAAE,EAAE,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC;QACjD,EAAE,EAAE,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC;KAClD,CAAC;IAEF,IAAI,KAAK,CAAC,iBAAiB,KAAK,IAAI,EAAE,CAAC;QACrC,OAAO;YACL,GAAG,KAAK;YACR,YAAY;YACZ,eAAe;YACf,MAAM,EAAE,mBAAmB;YAC3B,WAAW,EAAE,mBAAmB;YAChC,WAAW,EAAE,+EAA+E;SAC7F,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO;YACL,GAAG,KAAK;YACR,YAAY;YACZ,eAAe;YACf,MAAM,EAAE,WAAW;YACnB,WAAW,EAAE,WAAW;YACxB,WAAW,EAAE,+EAA+E;SAC7F,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,KAAK;QACR,YAAY;QACZ,eAAe;QACf,MAAM,EAAE,eAAe;QACvB,WAAW,EAAE,eAAe;QAC5B,WAAW,EACT,2FAA2F;KAC9F,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"training-distribution.js","sourceRoot":"","sources":["../src/training-distribution.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,12 @@
1
+ import { type ActivityModality, type LegacyActivityType, type ProviderActivityType } from "./activity-types.ts";
1
2
  export declare const OTHER_ACTIVITY_TYPE = "__other__";
2
- /**
3
- * Superset of all valid internal activity types across all providers.
4
- * Providers map their domain-specific types to one of these canonical values.
5
- */
6
- export declare const CANONICAL_ACTIVITY_TYPES: readonly ["cycling", "road_cycling", "mountain_biking", "gravel_cycling", "indoor_cycling", "virtual_cycling", "e_bike_cycling", "cyclocross", "track_cycling", "bmx", "running", "swimming", "walking", "hiking", "strength", "strength_training", "functional_strength", "yoga", "pilates", "elliptical", "rowing", "skiing", "skating", "climbing", "cardio", "hiit", "cross_training", "trail_running", "stair_climbing", "stairmaster", "stretching", "dance", "martial_arts", "tennis", "basketball", "soccer", "golf", "ice_hockey", "snowboarding", "rock_climbing", "surfing", "kayaking", "functional_fitness", "bootcamp", "boxing", "core", "aqua_fitness", "circuit_training", "group_exercise", "triathlon", "dancing", "american_football", "archery", "australian_football", "badminton", "baseball", "bowling", "cricket", "curling", "equestrian", "fencing", "fishing", "gymnastics", "handball", "hockey", "hunting", "lacrosse", "mind_and_body", "mixed_cardio", "paddle_sports", "play", "preparation_and_recovery", "racquetball", "rugby", "sailing", "snow_sports", "softball", "squash", "table_tennis", "track_and_field", "volleyball", "water_fitness", "water_polo", "water_sports", "wrestling", "barre", "core_training", "flexibility", "jump_rope", "kickboxing", "stairs", "step_training", "wheelchair_walk", "wheelchair_run", "tai_chi", "mixed_metabolic_cardio", "hand_cycling", "disc_sports", "fitness_gaming", "cardio_dance", "social_dance", "paddle_racquet", "cooldown", "transition", "underwater_diving", "cross_country_skiing", "downhill_skiing", "breathwork", "meditation", "paddleboarding", "snowshoeing", "pickleball", "padel", "football", "multisport", "disc_golf", "skydiving", "paragliding", "diving", "snorkeling", "navigation", "geocaching", "paddling", "gym", "open_water_swimming", "other"];
7
- export type CanonicalActivityType = (typeof CANONICAL_ACTIVITY_TYPES)[number];
3
+ export declare const STRENGTH_ACTIVITY_TYPES: readonly ["strength"];
8
4
  /**
9
5
  * All canonical activity types considered "cycling" for consolidated views.
10
6
  * Individual activities show the specific subtype, but aggregated views
11
7
  * (weekly volume, PMC, cycling page) treat them as one sport.
12
8
  */
13
- export declare const CYCLING_ACTIVITY_TYPES: readonly ["cycling", "road_cycling", "mountain_biking", "gravel_cycling", "indoor_cycling", "virtual_cycling", "e_bike_cycling", "cyclocross", "track_cycling", "bmx", "hand_cycling"];
9
+ export declare const CYCLING_ACTIVITY_TYPES: readonly ["cycling"];
14
10
  export type CyclingActivityType = (typeof CYCLING_ACTIVITY_TYPES)[number];
15
11
  /** Check whether an activity type is a cycling variant. */
16
12
  export declare function isCyclingActivity(activityType: string): activityType is CyclingActivityType;
@@ -22,24 +18,24 @@ export declare function cadenceAxisLabel(activityType: string): string;
22
18
  * Creates a mapping function from provider-specific types to canonical types.
23
19
  * Unknown provider types default to "other".
24
20
  */
25
- export declare function createActivityTypeMapper<K extends string | number>(providerMappings: Record<K, CanonicalActivityType>): (providerType: K) => CanonicalActivityType;
21
+ export declare function createActivityTypeMapper<K extends string | number>(providerMappings: Record<K, LegacyActivityType>): (providerType: K) => ProviderActivityType;
26
22
  /** Strava sport_type → canonical activity type */
27
- export declare const STRAVA_ACTIVITY_TYPE_MAP: Record<string, CanonicalActivityType>;
23
+ export declare const STRAVA_ACTIVITY_TYPE_MAP: Record<string, LegacyActivityType>;
28
24
  /** Wahoo workout_type_id (numeric) → canonical activity type */
29
- export declare const WAHOO_WORKOUT_TYPE_MAP: Record<number, CanonicalActivityType>;
25
+ export declare const WAHOO_WORKOUT_TYPE_MAP: Record<number, LegacyActivityType>;
30
26
  /** Polar sport (lowercased) → canonical activity type */
31
- export declare const POLAR_SPORT_MAP: Record<string, CanonicalActivityType>;
27
+ export declare const POLAR_SPORT_MAP: Record<string, LegacyActivityType>;
32
28
  /** Garmin activityType → canonical activity type */
33
- export declare const GARMIN_ACTIVITY_TYPE_MAP: Record<string, CanonicalActivityType>;
29
+ export declare const GARMIN_ACTIVITY_TYPE_MAP: Record<string, LegacyActivityType>;
34
30
  /** Oura activity (lowercased) → canonical activity type */
35
- export declare const OURA_ACTIVITY_TYPE_MAP: Record<string, CanonicalActivityType>;
31
+ export declare const OURA_ACTIVITY_TYPE_MAP: Record<string, LegacyActivityType>;
36
32
  /** RideWithGPS activity_type → canonical activity type */
37
- export declare const RIDE_WITH_GPS_ACTIVITY_TYPE_MAP: Record<string, CanonicalActivityType>;
33
+ export declare const RIDE_WITH_GPS_ACTIVITY_TYPE_MAP: Record<string, LegacyActivityType>;
38
34
  /** Apple Health HKWorkoutActivityType → normalized lowercase name */
39
- export declare const APPLE_HEALTH_WORKOUT_TYPE_MAP: Record<string, CanonicalActivityType>;
35
+ export declare const APPLE_HEALTH_WORKOUT_TYPE_MAP: Record<string, LegacyActivityType>;
40
36
  export interface WeeklyVolumeChartRow {
41
37
  week: string;
42
- activity_type: string;
38
+ canonical_type: string;
43
39
  count: number;
44
40
  hours: number;
45
41
  }
@@ -49,7 +45,7 @@ export interface DailyLoadRow {
49
45
  }
50
46
  export type VerticalAscentActivityTypeGroup = "road_cycling" | "mountain_biking" | "gravel_cycling" | "other_cycling";
51
47
  export declare function formatActivityTypeLabel(activityType: string): string;
52
- export declare function getVerticalAscentActivityTypeGroup(activityType: string): VerticalAscentActivityTypeGroup;
48
+ export declare function getVerticalAscentActivityTypeGroup(modality: ActivityModality | null): VerticalAscentActivityTypeGroup;
53
49
  export declare function formatVerticalAscentActivityTypeGroupLabel(activityTypeGroup: VerticalAscentActivityTypeGroup): string;
54
50
  export declare function collapseWeeklyVolumeActivityTypes(rows: WeeklyVolumeChartRow[], maxLegendItems?: number): WeeklyVolumeChartRow[];
55
51
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"training.d.ts","sourceRoot":"","sources":["../src/training.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAM/C;;;GAGG;AACH,eAAO,MAAM,wBAAwB,swDAiI3B,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAM9E;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,wLAYzB,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E,2DAA2D;AAC3D,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY,IAAI,mBAAmB,CAE3F;AAED,uDAAuD;AACvD,wBAAgB,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,KAAK,GAAG,WAAW,CAErE;AAED,uCAAuC;AACvC,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE7D;AAUD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAChE,gBAAgB,EAAE,MAAM,CAAC,CAAC,EAAE,qBAAqB,CAAC,GACjD,CAAC,YAAY,EAAE,CAAC,KAAK,qBAAqB,CAI5C;AAMD,kDAAkD;AAClD,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CA2B1E,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAexE,CAAC;AAEF,yDAAyD;AACzD,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CA2CjE,CAAC;AAEF,oDAAoD;AACpD,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CA4B1E,CAAC;AAEF,2DAA2D;AAC3D,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAgBxE,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,+BAA+B,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAkBjF,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,6BAA6B,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAoF/E,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAgCD,MAAM,MAAM,+BAA+B,GACvC,cAAc,GACd,iBAAiB,GACjB,gBAAgB,GAChB,eAAe,CAAC;AA8BpB,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAMpE;AAED,wBAAgB,kCAAkC,CAChD,YAAY,EAAE,MAAM,GACnB,+BAA+B,CAMjC;AAED,wBAAgB,0CAA0C,CACxD,iBAAiB,EAAE,+BAA+B,GACjD,MAAM,CAER;AAED,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,oBAAoB,EAAE,EAC5B,cAAc,SAAI,GACjB,oBAAoB,EAAE,CAgDxB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,YAAY,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAGjF"}
1
+ {"version":3,"file":"training.d.ts","sourceRoot":"","sources":["../src/training.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAE1B,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAE/C,eAAO,MAAM,uBAAuB,uBAAwB,CAAC;AAM7D;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,sBAAuB,CAAC;AAE3D,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E,2DAA2D;AAC3D,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY,IAAI,mBAAmB,CAE3F;AAED,uDAAuD;AACvD,wBAAgB,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,KAAK,GAAG,WAAW,CAErE;AAED,uCAAuC;AACvC,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE7D;AAUD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAChE,gBAAgB,EAAE,MAAM,CAAC,CAAC,EAAE,kBAAkB,CAAC,GAC9C,CAAC,YAAY,EAAE,CAAC,KAAK,oBAAoB,CAI3C;AAMD,kDAAkD;AAClD,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CA2BvE,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAerE,CAAC;AAEF,yDAAyD;AACzD,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CA2C9D,CAAC;AAEF,oDAAoD;AACpD,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CA4BvE,CAAC;AAEF,2DAA2D;AAC3D,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAgBrE,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,+BAA+B,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAkB9E,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,6BAA6B,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAoF5E,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAgCD,MAAM,MAAM,+BAA+B,GACvC,cAAc,GACd,iBAAiB,GACjB,gBAAgB,GAChB,eAAe,CAAC;AA8BpB,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAMpE;AAED,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,gBAAgB,GAAG,IAAI,GAChC,+BAA+B,CAKjC;AAED,wBAAgB,0CAA0C,CACxD,iBAAiB,EAAE,+BAA+B,GACjD,MAAM,CAER;AAED,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,oBAAoB,EAAE,EAC5B,cAAc,SAAI,GACjB,oBAAoB,EAAE,CAkDxB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,YAAY,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAGjF"}
package/dist/training.js CHANGED
@@ -1,141 +1,6 @@
1
+ import { resolveProviderActivityType, } from "./activity-types.js";
1
2
  export const OTHER_ACTIVITY_TYPE = "__other__";
2
- // ============================================================
3
- // Canonical activity types
4
- // ============================================================
5
- /**
6
- * Superset of all valid internal activity types across all providers.
7
- * Providers map their domain-specific types to one of these canonical values.
8
- */
9
- export const CANONICAL_ACTIVITY_TYPES = [
10
- "cycling",
11
- "road_cycling",
12
- "mountain_biking",
13
- "gravel_cycling",
14
- "indoor_cycling",
15
- "virtual_cycling",
16
- "e_bike_cycling",
17
- "cyclocross",
18
- "track_cycling",
19
- "bmx",
20
- "running",
21
- "swimming",
22
- "walking",
23
- "hiking",
24
- "strength",
25
- "strength_training",
26
- "functional_strength",
27
- "yoga",
28
- "pilates",
29
- "elliptical",
30
- "rowing",
31
- "skiing",
32
- "skating",
33
- "climbing",
34
- "cardio",
35
- "hiit",
36
- "cross_training",
37
- "trail_running",
38
- "stair_climbing",
39
- "stairmaster",
40
- "stretching",
41
- "dance",
42
- "martial_arts",
43
- "tennis",
44
- "basketball",
45
- "soccer",
46
- "golf",
47
- "ice_hockey",
48
- "snowboarding",
49
- "rock_climbing",
50
- "surfing",
51
- "kayaking",
52
- "functional_fitness",
53
- "bootcamp",
54
- "boxing",
55
- "core",
56
- "aqua_fitness",
57
- "circuit_training",
58
- "group_exercise",
59
- "triathlon",
60
- "dancing",
61
- // Apple Health granular types
62
- "american_football",
63
- "archery",
64
- "australian_football",
65
- "badminton",
66
- "baseball",
67
- "bowling",
68
- "cricket",
69
- "curling",
70
- "equestrian",
71
- "fencing",
72
- "fishing",
73
- "gymnastics",
74
- "handball",
75
- "hockey",
76
- "hunting",
77
- "lacrosse",
78
- "mind_and_body",
79
- "mixed_cardio",
80
- "paddle_sports",
81
- "play",
82
- "preparation_and_recovery",
83
- "racquetball",
84
- "rugby",
85
- "sailing",
86
- "snow_sports",
87
- "softball",
88
- "squash",
89
- "table_tennis",
90
- "track_and_field",
91
- "volleyball",
92
- "water_fitness",
93
- "water_polo",
94
- "water_sports",
95
- "wrestling",
96
- "barre",
97
- "core_training",
98
- "flexibility",
99
- "jump_rope",
100
- "kickboxing",
101
- "stairs",
102
- "step_training",
103
- "wheelchair_walk",
104
- "wheelchair_run",
105
- "tai_chi",
106
- "mixed_metabolic_cardio",
107
- "hand_cycling",
108
- "disc_sports",
109
- "fitness_gaming",
110
- "cardio_dance",
111
- "social_dance",
112
- "paddle_racquet",
113
- "cooldown",
114
- "transition",
115
- "underwater_diving",
116
- "cross_country_skiing",
117
- "downhill_skiing",
118
- // Provider-specific types (Garmin, Peloton, Komoot, Decathlon)
119
- "breathwork",
120
- "meditation",
121
- "paddleboarding",
122
- "snowshoeing",
123
- "pickleball",
124
- "padel",
125
- "football",
126
- "multisport",
127
- "disc_golf",
128
- "skydiving",
129
- "paragliding",
130
- "diving",
131
- "snorkeling",
132
- "navigation",
133
- "geocaching",
134
- "paddling",
135
- "gym",
136
- "open_water_swimming",
137
- "other",
138
- ];
3
+ export const STRENGTH_ACTIVITY_TYPES = ["strength"];
139
4
  // ============================================================
140
5
  // Cycling activity types
141
6
  // ============================================================
@@ -144,19 +9,7 @@ export const CANONICAL_ACTIVITY_TYPES = [
144
9
  * Individual activities show the specific subtype, but aggregated views
145
10
  * (weekly volume, PMC, cycling page) treat them as one sport.
146
11
  */
147
- export const CYCLING_ACTIVITY_TYPES = [
148
- "cycling",
149
- "road_cycling",
150
- "mountain_biking",
151
- "gravel_cycling",
152
- "indoor_cycling",
153
- "virtual_cycling",
154
- "e_bike_cycling",
155
- "cyclocross",
156
- "track_cycling",
157
- "bmx",
158
- "hand_cycling",
159
- ];
12
+ export const CYCLING_ACTIVITY_TYPES = ["cycling"];
160
13
  /** Check whether an activity type is a cycling variant. */
161
14
  export function isCyclingActivity(activityType) {
162
15
  return CYCLING_ACTIVITY_TYPES.some((t) => t === activityType);
@@ -181,7 +34,7 @@ export function cadenceAxisLabel(activityType) {
181
34
  */
182
35
  export function createActivityTypeMapper(providerMappings) {
183
36
  return (providerType) => {
184
- return providerMappings[providerType] ?? "other";
37
+ return resolveProviderActivityType(providerType, providerMappings[providerType] ?? "other");
185
38
  };
186
39
  }
187
40
  // ============================================================
@@ -493,13 +346,12 @@ export function formatActivityTypeLabel(activityType) {
493
346
  }
494
347
  return ACTIVITY_TYPE_LABELS[normalized] ?? toTitleCase(normalized);
495
348
  }
496
- export function getVerticalAscentActivityTypeGroup(activityType) {
497
- const normalized = normalizeActivityType(activityType);
498
- if (normalized === "road_cycling")
349
+ export function getVerticalAscentActivityTypeGroup(modality) {
350
+ if (modality === "road")
499
351
  return "road_cycling";
500
- if (normalized === "mountain_biking")
352
+ if (modality === "mountain")
501
353
  return "mountain_biking";
502
- if (normalized === "gravel_cycling")
354
+ if (modality === "gravel")
503
355
  return "gravel_cycling";
504
356
  return "other_cycling";
505
357
  }
@@ -511,15 +363,15 @@ export function collapseWeeklyVolumeActivityTypes(rows, maxLegendItems = 6) {
511
363
  return rows;
512
364
  // Consolidate all cycling subtypes into generic "cycling" before grouping
513
365
  const normalizedRows = rows.map((row) => {
514
- const normalized = normalizeActivityType(row.activity_type);
366
+ const normalized = normalizeActivityType(row.canonical_type);
515
367
  return {
516
368
  ...row,
517
- activity_type: isCyclingActivity(normalized) ? "cycling" : normalized,
369
+ canonical_type: isCyclingActivity(normalized) ? "cycling" : normalized,
518
370
  };
519
371
  });
520
372
  const totalsByType = new Map();
521
373
  for (const row of normalizedRows) {
522
- totalsByType.set(row.activity_type, (totalsByType.get(row.activity_type) ?? 0) + row.hours);
374
+ totalsByType.set(row.canonical_type, (totalsByType.get(row.canonical_type) ?? 0) + row.hours);
523
375
  }
524
376
  const orderedTypes = [...totalsByType.entries()]
525
377
  .sort((a, b) => b[1] - a[1])
@@ -530,7 +382,9 @@ export function collapseWeeklyVolumeActivityTypes(rows, maxLegendItems = 6) {
530
382
  : new Set(orderedTypes);
531
383
  const aggregated = new Map();
532
384
  for (const row of normalizedRows) {
533
- const groupedType = keepTypes.has(row.activity_type) ? row.activity_type : OTHER_ACTIVITY_TYPE;
385
+ const groupedType = keepTypes.has(row.canonical_type)
386
+ ? row.canonical_type
387
+ : OTHER_ACTIVITY_TYPE;
534
388
  const key = `${row.week}::${groupedType}`;
535
389
  const existing = aggregated.get(key);
536
390
  if (existing) {
@@ -540,7 +394,7 @@ export function collapseWeeklyVolumeActivityTypes(rows, maxLegendItems = 6) {
540
394
  }
541
395
  aggregated.set(key, {
542
396
  week: row.week,
543
- activity_type: groupedType,
397
+ canonical_type: groupedType,
544
398
  count: row.count,
545
399
  hours: row.hours,
546
400
  });
@@ -548,7 +402,7 @@ export function collapseWeeklyVolumeActivityTypes(rows, maxLegendItems = 6) {
548
402
  return [...aggregated.values()].sort((a, b) => {
549
403
  if (a.week !== b.week)
550
404
  return a.week.localeCompare(b.week);
551
- return a.activity_type.localeCompare(b.activity_type);
405
+ return a.canonical_type.localeCompare(b.canonical_type);
552
406
  });
553
407
  }
554
408
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"training.js","sourceRoot":"","sources":["../src/training.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"training.js","sourceRoot":"","sources":["../src/training.ts"],"names":[],"mappings":"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"}
@@ -72,7 +72,6 @@ export interface MuscleGroupFreshness {
72
72
  export interface RecommendationInput {
73
73
  today: string;
74
74
  readinessScore: number | null;
75
- workloadRatio: number | null;
76
75
  trainingStressBalance: number | null;
77
76
  sleepDebtMinutes: number;
78
77
  recentActivities: RecentActivity[];
@@ -1 +1 @@
1
- {"version":3,"file":"workout-recommendation.d.ts","sourceRoot":"","sources":["../src/workout-recommendation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,iBAAiB,GACjB,aAAa,GACb,kBAAkB,GAClB,UAAU,CAAC;AAEf,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,wBAAwB,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACpD;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,aAAa,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACpD;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C,qBAAqB,EAAE,qBAAqB,GAAG,IAAI,CAAC;CACrD;AAID,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,cAAc,EAAE,CAAC;IACnC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C,oBAAoB,EAAE,oBAAoB,EAAE,CAAC;IAC7C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAyCD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD;AA8BD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG,qBAAqB,CA4EtF"}
1
+ {"version":3,"file":"workout-recommendation.d.ts","sourceRoot":"","sources":["../src/workout-recommendation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,iBAAiB,GACjB,aAAa,GACb,kBAAkB,GAClB,UAAU,CAAC;AAEf,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,wBAAwB,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACpD;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,aAAa,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACpD;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C,qBAAqB,EAAE,qBAAqB,GAAG,IAAI,CAAC;CACrD;AAID,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,cAAc,EAAE,CAAC;IACnC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C,oBAAoB,EAAE,oBAAoB,EAAE,CAAC;IAC7C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAyCD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD;AA8BD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG,qBAAqB,CAsEtF"}
@@ -86,19 +86,14 @@ export function recommendNextWorkout(input) {
86
86
  reasoning.push(`Recovery score is ${input.readinessScore}/100 — keep it light today`);
87
87
  return makeActiveRecovery(reasoning);
88
88
  }
89
- // Step 2: Check workload ratio for injury risk
90
- if (input.workloadRatio != null && input.workloadRatio > 1.5) {
91
- reasoning.push(`Workload ratio is ${input.workloadRatio.toFixed(2)} — high injury risk zone`);
92
- return makeActiveRecovery(reasoning);
93
- }
94
- // Step 3: Hard/easy alternation — was yesterday hard?
89
+ // Step 2: Hard/easy alternation — was yesterday hard?
95
90
  const yesterdayWasHard = wasYesterdayHard(input);
96
91
  const isModerateReadiness = input.readinessScore != null && input.readinessScore < READINESS_MODERATE;
97
92
  if (yesterdayWasHard && isModerateReadiness) {
98
93
  reasoning.push("Yesterday was a hard training day and recovery is moderate");
99
94
  return makeCardioEasy(input, reasoning);
100
95
  }
101
- // Step 4: Decide between strength and cardio
96
+ // Step 3: Decide between strength and cardio
102
97
  const daysSinceStrength = daysSinceActivityType(input, "strength");
103
98
  const daysSinceCardio = daysSinceActivityType(input, "cardio");
104
99
  const freshMuscleGroups = getFreshMuscleGroups(input);
@@ -1 +1 @@
1
- {"version":3,"file":"workout-recommendation.js","sourceRoot":"","sources":["../src/workout-recommendation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workout-recommendation.js","sourceRoot":"","sources":["../src/workout-recommendation.ts"],"names":[],"mappings":"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"}