@letpeoplework/lighthouse-client 1.7.0 → 1.8.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.
package/dist/index.cjs CHANGED
@@ -32,6 +32,7 @@ __export(index_exports, {
32
32
  pollCliAuthSession: () => pollCliAuthSession,
33
33
  queryServerAuthMode: () => queryServerAuthMode,
34
34
  startCliAuthSession: () => startCliAuthSession,
35
+ summariseDeliveryMetricsHistory: () => summariseDeliveryMetricsHistory,
35
36
  validateLighthouseConnectivity: () => validateLighthouseConnectivity
36
37
  });
37
38
  module.exports = __toCommonJS(index_exports);
@@ -531,6 +532,15 @@ var getDefaultMetricsDateRange = () => {
531
532
  endDate: toIsoDate(end)
532
533
  };
533
534
  };
535
+ var summariseDeliveryMetricsHistory = (history) => history.points.map((point) => ({
536
+ date: point.date,
537
+ totalWork: point.totalWork,
538
+ doneWork: point.doneWork,
539
+ remainingWork: point.remainingWork,
540
+ epicCount: point.featureBreakdown.length,
541
+ estimatedItemCount: point.estimatedItemCount,
542
+ likelihoodPercentage: point.likelihoodPercentage
543
+ }));
534
544
  var getAuthHeaders = (auth) => {
535
545
  if (auth === void 0 || auth.kind === "none") {
536
546
  return {};
@@ -796,7 +806,10 @@ var FEATURE_REQUIRES_SERVER_NEWER_THAN = {
796
806
  mcpOAuthPassThrough: "v26.6.16.14",
797
807
  blockedCountHistory: "v26.7.3.1",
798
808
  percentilesOverTime: "v26.7.11.4",
799
- processBehaviorOverTime: "v26.7.11.4"
809
+ processBehaviorOverTime: "v26.7.11.4",
810
+ // The endpoint landed in v26.6.7.1. The per-epic size fields came much later and are optional on
811
+ // the wire, so a server between the two answers fine — it just reports no sizes.
812
+ deliveryMetricsHistory: "v26.5.29.5"
800
813
  };
801
814
  var parseServerVersion = (raw) => {
802
815
  const trimmed = raw.trim().replace(/^v/iu, "");
@@ -1444,6 +1457,18 @@ var createLighthouseClient = (configuration, dependencies = {}) => {
1444
1457
  `/v1/deliveries/${deliveryId}`,
1445
1458
  { method: "DELETE" }
1446
1459
  ),
1460
+ getDeliveryMetricsHistory: async (deliveryId) => {
1461
+ const unsupported = await ensureServerSupports("deliveryMetricsHistory");
1462
+ if (unsupported) {
1463
+ return unsupported;
1464
+ }
1465
+ return requestJson(
1466
+ configuration,
1467
+ dependencies,
1468
+ `/v1/deliveries/${deliveryId}/metrics-history`,
1469
+ { method: "GET" }
1470
+ );
1471
+ },
1447
1472
  getRecurringBlackoutRules: async () => {
1448
1473
  const unsupported = await ensureServerSupports("recurringBlackoutRules");
1449
1474
  if (unsupported) {
@@ -1520,5 +1545,6 @@ var createLighthouseClient = (configuration, dependencies = {}) => {
1520
1545
  pollCliAuthSession,
1521
1546
  queryServerAuthMode,
1522
1547
  startCliAuthSession,
1548
+ summariseDeliveryMetricsHistory,
1523
1549
  validateLighthouseConnectivity
1524
1550
  });
package/dist/index.d.cts CHANGED
@@ -233,6 +233,68 @@ type BlockedCountSnapshot = {
233
233
  readonly recordedAt: string;
234
234
  readonly blockedCount: number;
235
235
  };
236
+ /**
237
+ * One epic as it stood on the day a delivery snapshot was taken.
238
+ *
239
+ * `likelihood` is null when the epic cannot be forecast (ADR-112). `totalItems` and
240
+ * `isUsingDefaultSize` are absent from every snapshot recorded before Lighthouse began writing
241
+ * sizes, so both are optional and a missing value means "not recorded", never zero.
242
+ */
243
+ type DeliveryFeatureMetric = {
244
+ readonly referenceId: string;
245
+ readonly name: string;
246
+ readonly completion: number;
247
+ readonly likelihood: number | null;
248
+ readonly totalItems?: number | null;
249
+ readonly isUsingDefaultSize?: boolean | null;
250
+ };
251
+ /** One point on a delivery's forecast distribution: the chance of finishing by a date. */
252
+ type DeliveryWhenDistributionPoint = {
253
+ readonly probability: number;
254
+ readonly expectedDate: string;
255
+ };
256
+ /** A delivery as it stood on one recorded day. Dates are ISO strings. */
257
+ type DeliveryMetricsHistoryPoint = {
258
+ readonly date: string;
259
+ readonly targetDateAtSnapshot: string | null;
260
+ readonly totalWork: number;
261
+ readonly doneWork: number;
262
+ readonly remainingWork: number;
263
+ readonly estimatedItemCount: number | null;
264
+ readonly forecastHowMany: number | null;
265
+ readonly likelihoodPercentage: number | null;
266
+ readonly whenDistribution: readonly DeliveryWhenDistributionPoint[] | null;
267
+ readonly featureBreakdown: readonly DeliveryFeatureMetric[];
268
+ };
269
+ /** The whole recorded trend for one delivery. Forward-only: it starts at the first snapshot. */
270
+ type DeliveryMetricsHistory = {
271
+ readonly deliveryDate: string;
272
+ readonly firstSnapshotDate: string | null;
273
+ readonly points: readonly DeliveryMetricsHistoryPoint[];
274
+ };
275
+ /**
276
+ * One day of a delivery, without the per-epic breakdown or the forecast distribution.
277
+ *
278
+ * A ninety-day window over fifteen epics is well over a thousand breakdown objects plus a
279
+ * distribution per day — more than an assistant should be handed by default (ADR-121), and more
280
+ * than a terminal can show. {@link summariseDeliveryMetricsHistory} projects to this.
281
+ */
282
+ type DeliveryMetricsHistorySummaryRow = {
283
+ readonly date: string;
284
+ readonly totalWork: number;
285
+ readonly doneWork: number;
286
+ readonly remainingWork: number;
287
+ readonly epicCount: number;
288
+ readonly estimatedItemCount: number | null;
289
+ readonly likelihoodPercentage: number | null;
290
+ };
291
+ /**
292
+ * Projects a delivery history to one row per recorded day. Pure.
293
+ *
294
+ * The client itself returns the payload whole: dropping data is the caller's choice, so the CLI and
295
+ * the MCP tool apply this by default and step around it when asked for per-epic detail.
296
+ */
297
+ declare const summariseDeliveryMetricsHistory: (history: DeliveryMetricsHistory) => readonly DeliveryMetricsHistorySummaryRow[];
236
298
  /**
237
299
  * Percentile family recorded by the percentiles-over-time pipeline. Sent as the
238
300
  * `metricType` query parameter, and echoed back on every returned row.
@@ -408,6 +470,7 @@ type LighthouseClient = {
408
470
  readonly createDelivery: (portfolioId: number, payload: LighthouseWritePayload) => Promise<LighthouseApiResult<unknown>>;
409
471
  readonly updateDelivery: (deliveryId: number, payload: LighthouseWritePayload) => Promise<LighthouseApiResult<unknown>>;
410
472
  readonly deleteDelivery: (deliveryId: number) => Promise<LighthouseApiResult<undefined>>;
473
+ readonly getDeliveryMetricsHistory: (deliveryId: number) => Promise<LighthouseApiResult<DeliveryMetricsHistory>>;
411
474
  readonly getRecurringBlackoutRules: () => Promise<LighthouseApiResult<readonly RecurringBlackoutRule[]>>;
412
475
  readonly createRecurringBlackoutRule: (payload: LighthouseWritePayload) => Promise<LighthouseApiResult<RecurringBlackoutRule>>;
413
476
  readonly updateRecurringBlackoutRule: (id: number, payload: LighthouseWritePayload) => Promise<LighthouseApiResult<RecurringBlackoutRule>>;
@@ -434,6 +497,7 @@ declare const FEATURE_REQUIRES_SERVER_NEWER_THAN: {
434
497
  readonly blockedCountHistory: "v26.7.3.1";
435
498
  readonly percentilesOverTime: "v26.7.11.4";
436
499
  readonly processBehaviorOverTime: "v26.7.11.4";
500
+ readonly deliveryMetricsHistory: "v26.5.29.5";
437
501
  };
438
502
  /**
439
503
  * Returns true when `candidate` is strictly newer than `baseline`, false when
@@ -443,4 +507,4 @@ declare const FEATURE_REQUIRES_SERVER_NEWER_THAN: {
443
507
  declare const isServerVersionNewerThan: (candidate: string, baseline: string) => boolean | null;
444
508
  declare const createLighthouseClient: (configuration: LighthouseClientConfiguration, dependencies?: LighthouseClientDependencies) => LighthouseClient;
445
509
 
446
- export { type BacktestInput, type BlockedCountSnapshot, type CliAuthSessionPollResult, type CliAuthSessionStartError, type CliAuthSessionStartOutcome, type CliAuthSessionStartResult, type CliConnection, type CliServerAuthMode, type CliServerConnection, type CliStandaloneConnection, type ClientCapability, type ClientPackageContract, type ConnectivityCategory, type ConnectivityDependencies, type ConnectivityFetchResponse, type ConnectivityValidationResult, type CumulativeStateTimeCandidateRow, type CumulativeStateTimeCandidatesResult, type CumulativeStateTimeItemRow, type CumulativeStateTimeItemsResult, type CumulativeStateTimeResult, type CumulativeStateTimeStateRow, type DailyTotalWorkItemAge, type DailyWorkItemAge, type DayOfWeek, FEATURE_REQUIRES_SERVER_NEWER_THAN, type LighthouseApiError, type LighthouseApiResult, type LighthouseAuthContext, type LighthouseAuthOverrides, type LighthouseAuthStatus, type LighthouseAuthStore, type LighthouseClient, type LighthouseClientAuth, type LighthouseClientConfiguration, type LighthouseClientDependencies, type LighthouseConnectionConfiguration, type LighthouseWritePayload, type ManualForecastInput, type MetricsDateRange, type PercentilesOverTimeMetricType, type PercentilesOverTimeSnapshot, type ProcessBehaviorMetricType, type ProcessBehaviorSnapshot, type RecurringBlackoutRule, type RecurringBlackoutRuleInput, type ResolvedLighthouseEndpoint, type ServerAuthModeResult, type StandaloneDiscoveryContract, type StandaloneDiscoveryContractParseResult, type StoredLighthouseAuth, type ThroughputFilterView, type TotalWorkItemAgeOverTimeResult, type WorkItemAgeEntry, type WorkItemAgeOverTimeResult, createLighthouseAuthContext, createLighthouseClient, getClientPackageContract, getDefaultMetricsDateRange, getStandaloneDiscoveryLockfilePath, isServerVersionNewerThan, loadStandaloneDiscoveryContract, parseStandaloneDiscoveryContract, pollCliAuthSession, queryServerAuthMode, startCliAuthSession, validateLighthouseConnectivity };
510
+ export { type BacktestInput, type BlockedCountSnapshot, type CliAuthSessionPollResult, type CliAuthSessionStartError, type CliAuthSessionStartOutcome, type CliAuthSessionStartResult, type CliConnection, type CliServerAuthMode, type CliServerConnection, type CliStandaloneConnection, type ClientCapability, type ClientPackageContract, type ConnectivityCategory, type ConnectivityDependencies, type ConnectivityFetchResponse, type ConnectivityValidationResult, type CumulativeStateTimeCandidateRow, type CumulativeStateTimeCandidatesResult, type CumulativeStateTimeItemRow, type CumulativeStateTimeItemsResult, type CumulativeStateTimeResult, type CumulativeStateTimeStateRow, type DailyTotalWorkItemAge, type DailyWorkItemAge, type DayOfWeek, type DeliveryFeatureMetric, type DeliveryMetricsHistory, type DeliveryMetricsHistoryPoint, type DeliveryMetricsHistorySummaryRow, type DeliveryWhenDistributionPoint, FEATURE_REQUIRES_SERVER_NEWER_THAN, type LighthouseApiError, type LighthouseApiResult, type LighthouseAuthContext, type LighthouseAuthOverrides, type LighthouseAuthStatus, type LighthouseAuthStore, type LighthouseClient, type LighthouseClientAuth, type LighthouseClientConfiguration, type LighthouseClientDependencies, type LighthouseConnectionConfiguration, type LighthouseWritePayload, type ManualForecastInput, type MetricsDateRange, type PercentilesOverTimeMetricType, type PercentilesOverTimeSnapshot, type ProcessBehaviorMetricType, type ProcessBehaviorSnapshot, type RecurringBlackoutRule, type RecurringBlackoutRuleInput, type ResolvedLighthouseEndpoint, type ServerAuthModeResult, type StandaloneDiscoveryContract, type StandaloneDiscoveryContractParseResult, type StoredLighthouseAuth, type ThroughputFilterView, type TotalWorkItemAgeOverTimeResult, type WorkItemAgeEntry, type WorkItemAgeOverTimeResult, createLighthouseAuthContext, createLighthouseClient, getClientPackageContract, getDefaultMetricsDateRange, getStandaloneDiscoveryLockfilePath, isServerVersionNewerThan, loadStandaloneDiscoveryContract, parseStandaloneDiscoveryContract, pollCliAuthSession, queryServerAuthMode, startCliAuthSession, summariseDeliveryMetricsHistory, validateLighthouseConnectivity };
package/dist/index.d.ts CHANGED
@@ -233,6 +233,68 @@ type BlockedCountSnapshot = {
233
233
  readonly recordedAt: string;
234
234
  readonly blockedCount: number;
235
235
  };
236
+ /**
237
+ * One epic as it stood on the day a delivery snapshot was taken.
238
+ *
239
+ * `likelihood` is null when the epic cannot be forecast (ADR-112). `totalItems` and
240
+ * `isUsingDefaultSize` are absent from every snapshot recorded before Lighthouse began writing
241
+ * sizes, so both are optional and a missing value means "not recorded", never zero.
242
+ */
243
+ type DeliveryFeatureMetric = {
244
+ readonly referenceId: string;
245
+ readonly name: string;
246
+ readonly completion: number;
247
+ readonly likelihood: number | null;
248
+ readonly totalItems?: number | null;
249
+ readonly isUsingDefaultSize?: boolean | null;
250
+ };
251
+ /** One point on a delivery's forecast distribution: the chance of finishing by a date. */
252
+ type DeliveryWhenDistributionPoint = {
253
+ readonly probability: number;
254
+ readonly expectedDate: string;
255
+ };
256
+ /** A delivery as it stood on one recorded day. Dates are ISO strings. */
257
+ type DeliveryMetricsHistoryPoint = {
258
+ readonly date: string;
259
+ readonly targetDateAtSnapshot: string | null;
260
+ readonly totalWork: number;
261
+ readonly doneWork: number;
262
+ readonly remainingWork: number;
263
+ readonly estimatedItemCount: number | null;
264
+ readonly forecastHowMany: number | null;
265
+ readonly likelihoodPercentage: number | null;
266
+ readonly whenDistribution: readonly DeliveryWhenDistributionPoint[] | null;
267
+ readonly featureBreakdown: readonly DeliveryFeatureMetric[];
268
+ };
269
+ /** The whole recorded trend for one delivery. Forward-only: it starts at the first snapshot. */
270
+ type DeliveryMetricsHistory = {
271
+ readonly deliveryDate: string;
272
+ readonly firstSnapshotDate: string | null;
273
+ readonly points: readonly DeliveryMetricsHistoryPoint[];
274
+ };
275
+ /**
276
+ * One day of a delivery, without the per-epic breakdown or the forecast distribution.
277
+ *
278
+ * A ninety-day window over fifteen epics is well over a thousand breakdown objects plus a
279
+ * distribution per day — more than an assistant should be handed by default (ADR-121), and more
280
+ * than a terminal can show. {@link summariseDeliveryMetricsHistory} projects to this.
281
+ */
282
+ type DeliveryMetricsHistorySummaryRow = {
283
+ readonly date: string;
284
+ readonly totalWork: number;
285
+ readonly doneWork: number;
286
+ readonly remainingWork: number;
287
+ readonly epicCount: number;
288
+ readonly estimatedItemCount: number | null;
289
+ readonly likelihoodPercentage: number | null;
290
+ };
291
+ /**
292
+ * Projects a delivery history to one row per recorded day. Pure.
293
+ *
294
+ * The client itself returns the payload whole: dropping data is the caller's choice, so the CLI and
295
+ * the MCP tool apply this by default and step around it when asked for per-epic detail.
296
+ */
297
+ declare const summariseDeliveryMetricsHistory: (history: DeliveryMetricsHistory) => readonly DeliveryMetricsHistorySummaryRow[];
236
298
  /**
237
299
  * Percentile family recorded by the percentiles-over-time pipeline. Sent as the
238
300
  * `metricType` query parameter, and echoed back on every returned row.
@@ -408,6 +470,7 @@ type LighthouseClient = {
408
470
  readonly createDelivery: (portfolioId: number, payload: LighthouseWritePayload) => Promise<LighthouseApiResult<unknown>>;
409
471
  readonly updateDelivery: (deliveryId: number, payload: LighthouseWritePayload) => Promise<LighthouseApiResult<unknown>>;
410
472
  readonly deleteDelivery: (deliveryId: number) => Promise<LighthouseApiResult<undefined>>;
473
+ readonly getDeliveryMetricsHistory: (deliveryId: number) => Promise<LighthouseApiResult<DeliveryMetricsHistory>>;
411
474
  readonly getRecurringBlackoutRules: () => Promise<LighthouseApiResult<readonly RecurringBlackoutRule[]>>;
412
475
  readonly createRecurringBlackoutRule: (payload: LighthouseWritePayload) => Promise<LighthouseApiResult<RecurringBlackoutRule>>;
413
476
  readonly updateRecurringBlackoutRule: (id: number, payload: LighthouseWritePayload) => Promise<LighthouseApiResult<RecurringBlackoutRule>>;
@@ -434,6 +497,7 @@ declare const FEATURE_REQUIRES_SERVER_NEWER_THAN: {
434
497
  readonly blockedCountHistory: "v26.7.3.1";
435
498
  readonly percentilesOverTime: "v26.7.11.4";
436
499
  readonly processBehaviorOverTime: "v26.7.11.4";
500
+ readonly deliveryMetricsHistory: "v26.5.29.5";
437
501
  };
438
502
  /**
439
503
  * Returns true when `candidate` is strictly newer than `baseline`, false when
@@ -443,4 +507,4 @@ declare const FEATURE_REQUIRES_SERVER_NEWER_THAN: {
443
507
  declare const isServerVersionNewerThan: (candidate: string, baseline: string) => boolean | null;
444
508
  declare const createLighthouseClient: (configuration: LighthouseClientConfiguration, dependencies?: LighthouseClientDependencies) => LighthouseClient;
445
509
 
446
- export { type BacktestInput, type BlockedCountSnapshot, type CliAuthSessionPollResult, type CliAuthSessionStartError, type CliAuthSessionStartOutcome, type CliAuthSessionStartResult, type CliConnection, type CliServerAuthMode, type CliServerConnection, type CliStandaloneConnection, type ClientCapability, type ClientPackageContract, type ConnectivityCategory, type ConnectivityDependencies, type ConnectivityFetchResponse, type ConnectivityValidationResult, type CumulativeStateTimeCandidateRow, type CumulativeStateTimeCandidatesResult, type CumulativeStateTimeItemRow, type CumulativeStateTimeItemsResult, type CumulativeStateTimeResult, type CumulativeStateTimeStateRow, type DailyTotalWorkItemAge, type DailyWorkItemAge, type DayOfWeek, FEATURE_REQUIRES_SERVER_NEWER_THAN, type LighthouseApiError, type LighthouseApiResult, type LighthouseAuthContext, type LighthouseAuthOverrides, type LighthouseAuthStatus, type LighthouseAuthStore, type LighthouseClient, type LighthouseClientAuth, type LighthouseClientConfiguration, type LighthouseClientDependencies, type LighthouseConnectionConfiguration, type LighthouseWritePayload, type ManualForecastInput, type MetricsDateRange, type PercentilesOverTimeMetricType, type PercentilesOverTimeSnapshot, type ProcessBehaviorMetricType, type ProcessBehaviorSnapshot, type RecurringBlackoutRule, type RecurringBlackoutRuleInput, type ResolvedLighthouseEndpoint, type ServerAuthModeResult, type StandaloneDiscoveryContract, type StandaloneDiscoveryContractParseResult, type StoredLighthouseAuth, type ThroughputFilterView, type TotalWorkItemAgeOverTimeResult, type WorkItemAgeEntry, type WorkItemAgeOverTimeResult, createLighthouseAuthContext, createLighthouseClient, getClientPackageContract, getDefaultMetricsDateRange, getStandaloneDiscoveryLockfilePath, isServerVersionNewerThan, loadStandaloneDiscoveryContract, parseStandaloneDiscoveryContract, pollCliAuthSession, queryServerAuthMode, startCliAuthSession, validateLighthouseConnectivity };
510
+ export { type BacktestInput, type BlockedCountSnapshot, type CliAuthSessionPollResult, type CliAuthSessionStartError, type CliAuthSessionStartOutcome, type CliAuthSessionStartResult, type CliConnection, type CliServerAuthMode, type CliServerConnection, type CliStandaloneConnection, type ClientCapability, type ClientPackageContract, type ConnectivityCategory, type ConnectivityDependencies, type ConnectivityFetchResponse, type ConnectivityValidationResult, type CumulativeStateTimeCandidateRow, type CumulativeStateTimeCandidatesResult, type CumulativeStateTimeItemRow, type CumulativeStateTimeItemsResult, type CumulativeStateTimeResult, type CumulativeStateTimeStateRow, type DailyTotalWorkItemAge, type DailyWorkItemAge, type DayOfWeek, type DeliveryFeatureMetric, type DeliveryMetricsHistory, type DeliveryMetricsHistoryPoint, type DeliveryMetricsHistorySummaryRow, type DeliveryWhenDistributionPoint, FEATURE_REQUIRES_SERVER_NEWER_THAN, type LighthouseApiError, type LighthouseApiResult, type LighthouseAuthContext, type LighthouseAuthOverrides, type LighthouseAuthStatus, type LighthouseAuthStore, type LighthouseClient, type LighthouseClientAuth, type LighthouseClientConfiguration, type LighthouseClientDependencies, type LighthouseConnectionConfiguration, type LighthouseWritePayload, type ManualForecastInput, type MetricsDateRange, type PercentilesOverTimeMetricType, type PercentilesOverTimeSnapshot, type ProcessBehaviorMetricType, type ProcessBehaviorSnapshot, type RecurringBlackoutRule, type RecurringBlackoutRuleInput, type ResolvedLighthouseEndpoint, type ServerAuthModeResult, type StandaloneDiscoveryContract, type StandaloneDiscoveryContractParseResult, type StoredLighthouseAuth, type ThroughputFilterView, type TotalWorkItemAgeOverTimeResult, type WorkItemAgeEntry, type WorkItemAgeOverTimeResult, createLighthouseAuthContext, createLighthouseClient, getClientPackageContract, getDefaultMetricsDateRange, getStandaloneDiscoveryLockfilePath, isServerVersionNewerThan, loadStandaloneDiscoveryContract, parseStandaloneDiscoveryContract, pollCliAuthSession, queryServerAuthMode, startCliAuthSession, summariseDeliveryMetricsHistory, validateLighthouseConnectivity };
package/dist/index.js CHANGED
@@ -495,6 +495,15 @@ var getDefaultMetricsDateRange = () => {
495
495
  endDate: toIsoDate(end)
496
496
  };
497
497
  };
498
+ var summariseDeliveryMetricsHistory = (history) => history.points.map((point) => ({
499
+ date: point.date,
500
+ totalWork: point.totalWork,
501
+ doneWork: point.doneWork,
502
+ remainingWork: point.remainingWork,
503
+ epicCount: point.featureBreakdown.length,
504
+ estimatedItemCount: point.estimatedItemCount,
505
+ likelihoodPercentage: point.likelihoodPercentage
506
+ }));
498
507
  var getAuthHeaders = (auth) => {
499
508
  if (auth === void 0 || auth.kind === "none") {
500
509
  return {};
@@ -760,7 +769,10 @@ var FEATURE_REQUIRES_SERVER_NEWER_THAN = {
760
769
  mcpOAuthPassThrough: "v26.6.16.14",
761
770
  blockedCountHistory: "v26.7.3.1",
762
771
  percentilesOverTime: "v26.7.11.4",
763
- processBehaviorOverTime: "v26.7.11.4"
772
+ processBehaviorOverTime: "v26.7.11.4",
773
+ // The endpoint landed in v26.6.7.1. The per-epic size fields came much later and are optional on
774
+ // the wire, so a server between the two answers fine — it just reports no sizes.
775
+ deliveryMetricsHistory: "v26.5.29.5"
764
776
  };
765
777
  var parseServerVersion = (raw) => {
766
778
  const trimmed = raw.trim().replace(/^v/iu, "");
@@ -1408,6 +1420,18 @@ var createLighthouseClient = (configuration, dependencies = {}) => {
1408
1420
  `/v1/deliveries/${deliveryId}`,
1409
1421
  { method: "DELETE" }
1410
1422
  ),
1423
+ getDeliveryMetricsHistory: async (deliveryId) => {
1424
+ const unsupported = await ensureServerSupports("deliveryMetricsHistory");
1425
+ if (unsupported) {
1426
+ return unsupported;
1427
+ }
1428
+ return requestJson(
1429
+ configuration,
1430
+ dependencies,
1431
+ `/v1/deliveries/${deliveryId}/metrics-history`,
1432
+ { method: "GET" }
1433
+ );
1434
+ },
1411
1435
  getRecurringBlackoutRules: async () => {
1412
1436
  const unsupported = await ensureServerSupports("recurringBlackoutRules");
1413
1437
  if (unsupported) {
@@ -1483,5 +1507,6 @@ export {
1483
1507
  pollCliAuthSession,
1484
1508
  queryServerAuthMode,
1485
1509
  startCliAuthSession,
1510
+ summariseDeliveryMetricsHistory,
1486
1511
  validateLighthouseConnectivity
1487
1512
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@letpeoplework/lighthouse-client",
3
- "version": "1.7.0",
3
+ "version": "1.8.0",
4
4
  "description": "Shared Lighthouse API client contracts",
5
5
  "repository": "https://github.com/LetPeopleWork/lighthouse-clients",
6
6
  "type": "module",