hevy-mcp 6.1.9 → 6.1.10

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/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # hevy-mcp
2
2
 
3
+ ## 6.1.10
4
+
5
+ ### Patch Changes
6
+
7
+ - [#1097](https://github.com/chrisdoc/hevy-mcp/pull/1097) [`05ee904`](https://github.com/chrisdoc/hevy-mcp/commit/05ee904e547221b64baacad93c29a19f3fb0e7d1) Thanks [@chrisdoc](https://github.com/chrisdoc)! - Extract the Hevy retry policy behind a pure, independently testable seam.
8
+
9
+ - [#1097](https://github.com/chrisdoc/hevy-mcp/pull/1097) [`05ee904`](https://github.com/chrisdoc/hevy-mcp/commit/05ee904e547221b64baacad93c29a19f3fb0e7d1) Thanks [@chrisdoc](https://github.com/chrisdoc)! - Add an Effect execution boundary that guarantees cancellation-resource cleanup.
10
+
11
+ - [#1097](https://github.com/chrisdoc/hevy-mcp/pull/1097) [`05ee904`](https://github.com/chrisdoc/hevy-mcp/commit/05ee904e547221b64baacad93c29a19f3fb0e7d1) Thanks [@chrisdoc](https://github.com/chrisdoc)! - Add the initial Effect dependency and typed foundation services for incremental adoption.
12
+
13
+ - [#1106](https://github.com/chrisdoc/hevy-mcp/pull/1106) [`10c7153`](https://github.com/chrisdoc/hevy-mcp/commit/10c71533fdf80dfc50854fbeab38218c55324cdc) Thanks [@charliecreates](https://github.com/apps/charliecreates)! - Document the minimum exercise and set requirements for routine tools.
14
+
15
+ - [#1100](https://github.com/chrisdoc/hevy-mcp/pull/1100) [`bb36134`](https://github.com/chrisdoc/hevy-mcp/commit/bb361347aef5701c13a3676b0c68458e0105f100) Thanks [@chrisdoc](https://github.com/chrisdoc)! - Add a typed Effect service layer for incremental dependency-injection adoption.
16
+
17
+ - [#1097](https://github.com/chrisdoc/hevy-mcp/pull/1097) [`05ee904`](https://github.com/chrisdoc/hevy-mcp/commit/05ee904e547221b64baacad93c29a19f3fb0e7d1) Thanks [@chrisdoc](https://github.com/chrisdoc)! - Upgrade Kubb code generation toolchain to v5.
18
+
19
+ - [#1108](https://github.com/chrisdoc/hevy-mcp/pull/1108) [`7a02c8a`](https://github.com/chrisdoc/hevy-mcp/commit/7a02c8a28afa4d9a8fea1f318038f4561ab9dc73) Thanks [@Rahulsharma0810](https://github.com/Rahulsharma0810)! - Fix `utcSecondTimestamp` reporting the same "Must use the UTC format YYYY-MM-DDTHH:mm:ssZ" validation error twice for a single invalid `start_time`/`end_time` value. The format and calendar-validity checks are now chained with `.pipe()` so the round-trip check only runs after the regex check succeeds, producing exactly one issue per invalid field while preserving the original `invalid_format` issue code and JSON Schema `pattern`.
20
+
3
21
  ## 6.1.9
4
22
 
5
23
  ### Patch Changes
package/README.md CHANGED
@@ -345,7 +345,7 @@ can request confirmation.
345
345
  | Body measurements | `create-body-measurement` | Create a dated body measurement. |
346
346
  | Body measurements | `update-body-measurement` | Update the body measurement for an existing date. |
347
347
 
348
- `create-routine` requires a top-level `routine` envelope with a required `exercises` array; fields use snake_case at every level:
348
+ `create-routine` and `update-routine` require a top-level `routine` envelope with a non-empty `exercises` array; each exercise must contain at least one set, and fields use snake_case at every level:
349
349
 
350
350
  ```json
351
351
  {
package/dist/cli.mjs CHANGED
@@ -8,8 +8,8 @@
8
8
  n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "d3aac8bf-d688-4457-b96a-ad51dafd540c", e._sentryDebugIdIdentifier = "sentry-dbid-d3aac8bf-d688-4457-b96a-ad51dafd540c");
9
9
  } catch (e) {}
10
10
  })();
11
- import { i as flushTelemetry, r as MissingHevyApiKeyError, t as runServer } from "./runtime-B8otSN_i.mjs";
12
- import { o as createSafeErrorDiagnostic } from "./src-CQ2qcHzh.mjs";
11
+ import { i as flushTelemetry, r as MissingHevyApiKeyError, t as runServer } from "./runtime-Cw-o4yzx.mjs";
12
+ import { o as createSafeErrorDiagnostic } from "./src-BRfRNT_H.mjs";
13
13
  //#region src/cli.ts
14
14
  runServer().catch(async (error) => {
15
15
  if (error instanceof MissingHevyApiKeyError) console.error(error.message);
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  // Generated with tsdown
3
3
  // https://tsdown.dev
4
- import { s as createHevyClient, t as createHevyMcpServer } from "./src-CQ2qcHzh.mjs";
4
+ import { s as createHevyClient, t as createHevyMcpServer } from "./src-BRfRNT_H.mjs";
5
5
  import { z } from "zod";
6
6
  //#region src/index.ts
7
7
  const serverConfigSchema = z.object({ apiKey: z.string().min(1, "Hevy API key is required").describe("Your Hevy API key (available in the Hevy app settings).") });
@@ -32,7 +32,7 @@ function createNodeMcpServer({ apiKey }, _transport = "stdio", lifecycleSignal)
32
32
  * does not evaluate the runtime bootstrap; it is loaded only when invoked.
33
33
  */
34
34
  async function runStdioServer() {
35
- const { runStdioServer: run } = await import("./runtime-B8otSN_i.mjs").then((n) => n.n);
35
+ const { runStdioServer: run } = await import("./runtime-Cw-o4yzx.mjs").then((n) => n.n);
36
36
  return run();
37
37
  }
38
38
  /**
@@ -40,7 +40,7 @@ async function runStdioServer() {
40
40
  * does not evaluate the runtime bootstrap; it is loaded only when invoked.
41
41
  */
42
42
  async function runServer() {
43
- const { runServer: run } = await import("./runtime-B8otSN_i.mjs").then((n) => n.n);
43
+ const { runServer: run } = await import("./runtime-Cw-o4yzx.mjs").then((n) => n.n);
44
44
  return run();
45
45
  }
46
46
  //#endregion
@@ -5,10 +5,10 @@
5
5
  try {
6
6
  var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {};
7
7
  var n = new e.Error().stack;
8
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "f8954a90-9b2d-4d05-b13b-e31d44034439", e._sentryDebugIdIdentifier = "sentry-dbid-f8954a90-9b2d-4d05-b13b-e31d44034439");
8
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "6320f0cb-18b9-40a8-a767-ffe7ac615c3e", e._sentryDebugIdIdentifier = "sentry-dbid-6320f0cb-18b9-40a8-a767-ffe7ac615c3e");
9
9
  } catch (e) {}
10
10
  })();
11
- import { a as mergeAbortSignals, c as SAFE_OBSERVATION_CODES, d as isHevyHttpError, f as bucketCount, i as createExecutionProjection, l as diagnosticEndpointIdentity, n as SAFE_USER_HASH_PATTERN, o as createSafeErrorDiagnostic, r as USER_HASH_CONTEXT, s as createHevyClient, t as createHevyMcpServer, u as metricEndpointIdentity } from "./src-CQ2qcHzh.mjs";
11
+ import { a as mergeAbortSignals, c as SAFE_OBSERVATION_CODES, d as isHevyHttpError, f as bucketCount, i as createExecutionProjection, l as diagnosticEndpointIdentity, n as SAFE_USER_HASH_PATTERN, o as createSafeErrorDiagnostic, r as USER_HASH_CONTEXT, s as createHevyClient, t as createHevyMcpServer, u as metricEndpointIdentity } from "./src-BRfRNT_H.mjs";
12
12
  import { ZodError, z } from "zod";
13
13
  import { deserializeMessage } from "@modelcontextprotocol/server";
14
14
  import * as crypto from "node:crypto";
@@ -394,7 +394,7 @@ function parseBuildString(value, fallback) {
394
394
  return z.string().parse(value ?? fallback);
395
395
  }
396
396
  const name$1 = parseBuildString(readBuildGlobal(() => "hevy-mcp"), "hevy-mcp");
397
- const version$1 = parseBuildString(readBuildGlobal(() => "6.1.9"), "dev");
397
+ const version$1 = parseBuildString(readBuildGlobal(() => "6.1.10"), "dev");
398
398
  const telemetryEnabled = process.env.HEVY_MCP_TELEMETRY !== "0";
399
399
  const collectorToken = z.string().safeParse(readBuildGlobal(() => "NH9vOela-HYreQxAbJa68cjEmORoEKM57EvneUDVcOo")).data ?? process.env.OTEL_COLLECTOR_TOKEN ?? "";
400
400
  const COLLECTOR_ENDPOINT = "https://otel.chrisdoc.dev/v1";
@@ -2699,4 +2699,4 @@ async function runServer() {
2699
2699
  //#endregion
2700
2700
  export { flushTelemetry as i, runtime_exports as n, MissingHevyApiKeyError as r, runServer as t };
2701
2701
 
2702
- //# sourceMappingURL=runtime-B8otSN_i.mjs.map
2702
+ //# sourceMappingURL=runtime-Cw-o4yzx.mjs.map