catence 0.2.1-beta.25 → 0.2.1-beta.26

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.
@@ -3,7 +3,7 @@
3
3
  * Keep these values synchronized with release/manifest.json; release checks
4
4
  * deliberately reject drift before a package can be published.
5
5
  */
6
- export declare const CATENCE_RUNTIME_VERSION = "0.2.1-beta.25";
6
+ export declare const CATENCE_RUNTIME_VERSION = "0.2.1-beta.26";
7
7
  export declare const CATENCE_PROTOCOL_VERSION = 1;
8
8
  export type CatenceRuntimeCapabilities = {
9
9
  mcp: true;
@@ -3,7 +3,7 @@
3
3
  * Keep these values synchronized with release/manifest.json; release checks
4
4
  * deliberately reject drift before a package can be published.
5
5
  */
6
- export const CATENCE_RUNTIME_VERSION = '0.2.1-beta.25';
6
+ export const CATENCE_RUNTIME_VERSION = '0.2.1-beta.26';
7
7
  export const CATENCE_PROTOCOL_VERSION = 1;
8
8
  export function catenceRuntimeHealth() {
9
9
  return {
@@ -728,7 +728,11 @@ async function handleMcpRequest(request, response, paths, principal) {
728
728
  // The HTTP gate has already authenticated this request; the MCP server
729
729
  // re-enforces the principal's athlete scope on every tool and roster.
730
730
  const server = createCatenceMcpServer(paths, {}, { scope: { athleteIds: principal.athleteIds } });
731
- const transport = new StreamableHTTPServerTransport({ sessionIdGenerator: undefined });
731
+ // JSON responses mirror OpenAI's own reference implementation: a single
732
+ // request/response has no need for a stream, and a JSON body survives
733
+ // validators (and intermediaries) that would mishandle an SSE frame. The
734
+ // spec requires clients to accept both, so this stays compatible.
735
+ const transport = new StreamableHTTPServerTransport({ sessionIdGenerator: undefined, enableJsonResponse: true });
732
736
  let cleanedUp = false;
733
737
  const cleanup = async () => {
734
738
  if (cleanedUp)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "catence",
3
- "version": "0.2.1-beta.25",
3
+ "version": "0.2.1-beta.26",
4
4
  "description": "Local MCP access to normalized Garmin, Intervals.icu, and targeted Strava fitness data.",
5
5
  "license": "AGPL-3.0-or-later",
6
6
  "repository": {