@dataworks-technology/cli 1.4.1 → 1.6.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.
@@ -5,6 +5,7 @@ import { toCliError } from "../lib/errors.js";
5
5
  import { allMetricNames, metricCatalogSummary, } from "../lib/metric-names.js";
6
6
  import { redact } from "../lib/output.js";
7
7
  import { queryMetrics, } from "../lib/query-metrics.js";
8
+ import { listAthletes, listEvents, } from "../lib/discover.js";
8
9
  const metricCategory = z.enum(["METRICS_TYPE_A", "METRICS_TYPE_B", "METRICS_TYPE_C"]);
9
10
  const _categoriesMatch = true;
10
11
  void _categoriesMatch;
@@ -15,13 +16,23 @@ export const queryMetricsInputSchema = z
15
16
  .trim()
16
17
  .min(1)
17
18
  .optional()
18
- .describe("Exact Dataworks athlete public ID. Use this instead of athlete_name when known."),
19
+ .describe("Exact Dataworks athlete public ID. Use this instead of athlete_name when known. " +
20
+ "Omit both athlete fields to query a whole event or datasource."),
21
+ athlete_ids: z
22
+ .array(z.string().trim().min(1))
23
+ .min(1)
24
+ .max(100)
25
+ .optional()
26
+ .describe("Several athlete public IDs, to compare them in one query. Rows carry the athlete they belong to, " +
27
+ "and an aggregate returns one value per athlete. Mutually exclusive with athlete_id and athlete_name; " +
28
+ "resolve names to IDs with list_athletes first."),
19
29
  athlete_name: z
20
30
  .string()
21
31
  .trim()
22
32
  .min(1)
23
33
  .optional()
24
- .describe("Athlete full or short name. The tool resolves a unique authorized athlete and never guesses when ambiguous."),
34
+ .describe("Athlete full or short name. The tool resolves a unique authorized athlete and never guesses when ambiguous. " +
35
+ "Omit it for an event-wide question such as the latest values across a race."),
25
36
  metric: z
26
37
  .string()
27
38
  .trim()
@@ -30,7 +41,9 @@ export const queryMetricsInputSchema = z
30
41
  `Known metrics — ${allMetricNames.join(", ")}. ` +
31
42
  `Aliases also accepted: gps/location/position for latlong, hr/bpm/pulse for heartrate, watts for power, ` +
32
43
  `rpm for cadence, elevation for altitude, calories for active-energy-burned, placing for rank. ` +
33
- `Anything else is treated as a custom metric and requires metric_category.`),
44
+ `Anything else is treated as a custom metric and requires metric_category. ` +
45
+ `Rows carry every column the metric's category provides: heartrate and power add rolling ` +
46
+ `max/min/avg and a seven-zone breakdown under \`extra\`.`),
34
47
  metric_category: metricCategory
35
48
  .optional()
36
49
  .describe(`Required only for a custom metric absent from the known list. Known metrics infer their own category. ` +
@@ -59,19 +72,60 @@ export const queryMetricsInputSchema = z
59
72
  .trim()
60
73
  .min(1)
61
74
  .optional()
62
- .describe("Optional exact event public ID filter."),
75
+ .describe("Event public ID. Supply it alone to query every athlete in that event, or with an athlete to narrow to one."),
76
+ event_ids: z
77
+ .array(z.string().trim().min(1))
78
+ .min(1)
79
+ .max(100)
80
+ .optional()
81
+ .describe("Several event public IDs, to span a series of races. Mutually exclusive with event_id."),
63
82
  dataset_datasource_id: z
64
83
  .string()
65
84
  .trim()
66
85
  .min(1)
67
86
  .optional()
68
- .describe("Optional exact dataset-datasource public ID filter."),
87
+ .describe("Dataset-datasource public ID. Like event_id, it can scope a query on its own."),
69
88
  tenant_id: z
70
89
  .string()
71
90
  .trim()
72
91
  .min(1)
73
92
  .optional()
74
93
  .describe("Optional authorized tenant override; otherwise use the selected CLI tenant."),
94
+ min_value: z
95
+ .number()
96
+ .optional()
97
+ .describe("Keep only samples whose value is at least this, e.g. heart rate above 180."),
98
+ max_value: z
99
+ .number()
100
+ .optional()
101
+ .describe("Keep only samples whose value is at most this."),
102
+ order_by: z
103
+ .string()
104
+ .trim()
105
+ .min(1)
106
+ .optional()
107
+ .describe("Column to sort by; defaults to `timestamp`. Use `current` to rank by value — " +
108
+ "the highest readings rather than the most recent. Must be a column of the metric's category."),
109
+ aggregate: z
110
+ .enum(["count", "avg", "sum", "max", "min"])
111
+ .optional()
112
+ .describe("Compute a value server-side over every matching sample instead of returning rows. " +
113
+ 'Use this for "maximum heart rate" rather than fetching rows and taking the max, ' +
114
+ "which would only cover the rows the limit returned. Results arrive in `aggregate.groups`, " +
115
+ "and `rows` is empty."),
116
+ aggregate_field: z
117
+ .string()
118
+ .trim()
119
+ .min(1)
120
+ .optional()
121
+ .describe("Column to aggregate; defaults to `current`, the metric value itself."),
122
+ group_by: z
123
+ .string()
124
+ .trim()
125
+ .min(1)
126
+ .optional()
127
+ .describe("Column to group an aggregate by; defaults to `athletepublicid`, giving one value per athlete. " +
128
+ "Use `eventpublicid` for one value per event."),
75
129
  timeout_ms: z
76
130
  .number()
77
131
  .int()
@@ -81,10 +135,34 @@ export const queryMetricsInputSchema = z
81
135
  .describe("Maximum time to poll an asynchronous Data Explorer query."),
82
136
  })
83
137
  .superRefine((input, context) => {
84
- if (Number(Boolean(input.athlete_id)) + Number(Boolean(input.athlete_name)) !== 1) {
138
+ const athletes = Number(Boolean(input.athlete_id)) +
139
+ Number(Boolean(input.athlete_name)) +
140
+ Number(Boolean(input.athlete_ids?.length));
141
+ if (athletes > 1) {
85
142
  context.addIssue({
86
143
  code: "custom",
87
- message: "Provide exactly one of athlete_id or athlete_name",
144
+ message: "Provide at most one of athlete_id, athlete_name, or athlete_ids",
145
+ path: ["athlete_id"],
146
+ });
147
+ return;
148
+ }
149
+ // Unscoped queries would sweep the whole tenant, so require either an athlete
150
+ // or a narrowing filter. Both together are fine: one athlete within one event.
151
+ if (input.event_id && input.event_ids?.length) {
152
+ context.addIssue({
153
+ code: "custom",
154
+ message: "Provide at most one of event_id or event_ids",
155
+ path: ["event_id"],
156
+ });
157
+ return;
158
+ }
159
+ if (athletes === 0 &&
160
+ !input.event_id &&
161
+ !input.event_ids?.length &&
162
+ !input.dataset_datasource_id) {
163
+ context.addIssue({
164
+ code: "custom",
165
+ message: "Provide athlete_id, athlete_name, athlete_ids, event_id, event_ids, or dataset_datasource_id to scope the query",
88
166
  path: ["athlete_id"],
89
167
  });
90
168
  }
@@ -93,11 +171,13 @@ const nullableString = z.string().nullable();
93
171
  export const queryMetricsOutputSchema = z.object({
94
172
  environment: z.enum(["uat", "live"]),
95
173
  tenant_id: z.string(),
96
- athlete: z.object({
174
+ athlete: z
175
+ .object({
97
176
  public_id: z.string(),
98
177
  name: nullableString,
99
178
  matched_by: z.enum(["public_id", "name", "partial_name"]),
100
- }),
179
+ })
180
+ .nullable(),
101
181
  metric: z.object({
102
182
  requested: z.string(),
103
183
  canonical: z.string(),
@@ -106,6 +186,8 @@ export const queryMetricsOutputSchema = z.object({
106
186
  }),
107
187
  filters: z.object({
108
188
  event_id: nullableString,
189
+ event_ids: z.array(z.string()).nullable(),
190
+ athlete_ids: z.array(z.string()).nullable(),
109
191
  dataset_datasource_id: nullableString,
110
192
  from: nullableString,
111
193
  to: nullableString,
@@ -117,6 +199,14 @@ export const queryMetricsOutputSchema = z.object({
117
199
  status: z.string(),
118
200
  query_execution_id: nullableString,
119
201
  query_time_ms: z.number().int().nullable(),
202
+ aggregate: z
203
+ .object({
204
+ function: z.enum(["count", "avg", "sum", "max", "min"]),
205
+ field: z.string(),
206
+ group_by: z.string(),
207
+ groups: z.array(z.object({ key: nullableString, value: z.number().nullable() })),
208
+ })
209
+ .nullable(),
120
210
  rows: z.array(z.object({
121
211
  timestamp: z.union([z.string(), z.number()]).nullable(),
122
212
  timestamp_iso: nullableString,
@@ -127,20 +217,25 @@ export const queryMetricsOutputSchema = z.object({
127
217
  position: z.object({ latitude: z.number(), longitude: z.number() }).nullable(),
128
218
  event_id: nullableString,
129
219
  dataset_datasource_id: nullableString,
220
+ extra: z.record(z.string(), z.unknown()),
130
221
  })),
131
222
  });
132
223
  function structuredOutput(output) {
133
224
  return {
134
225
  environment: output.environment,
135
226
  tenant_id: output.tenantId,
136
- athlete: {
137
- public_id: output.athlete.publicId,
138
- name: output.athlete.name,
139
- matched_by: output.athlete.matchedBy,
140
- },
227
+ athlete: output.athlete
228
+ ? {
229
+ public_id: output.athlete.publicId,
230
+ name: output.athlete.name,
231
+ matched_by: output.athlete.matchedBy,
232
+ }
233
+ : null,
141
234
  metric: output.metric,
142
235
  filters: {
143
236
  event_id: output.filters.eventId,
237
+ event_ids: output.filters.eventIds,
238
+ athlete_ids: output.filters.athleteIds,
144
239
  dataset_datasource_id: output.filters.datasetDatasourceId,
145
240
  from: output.filters.from,
146
241
  to: output.filters.to,
@@ -152,6 +247,14 @@ function structuredOutput(output) {
152
247
  status: output.status,
153
248
  query_execution_id: output.queryExecutionId,
154
249
  query_time_ms: output.queryTimeMs,
250
+ aggregate: output.aggregate
251
+ ? {
252
+ function: output.aggregate.function,
253
+ field: output.aggregate.field,
254
+ group_by: output.aggregate.groupBy,
255
+ groups: output.aggregate.groups,
256
+ }
257
+ : null,
155
258
  rows: output.rows.map((row) => ({
156
259
  timestamp: row.timestamp,
157
260
  timestamp_iso: row.timestampIso,
@@ -162,26 +265,88 @@ function structuredOutput(output) {
162
265
  position: row.position,
163
266
  event_id: row.eventId,
164
267
  dataset_datasource_id: row.datasetDatasourceId,
268
+ extra: row.extra,
165
269
  })),
166
270
  };
167
271
  }
272
+ /**
273
+ * Every failure an agent can act on must say how. An expired session is the most
274
+ * common auth failure of all and previously returned a null recovery, leaving the
275
+ * agent to work out from `dw auth status` that the session had lapsed.
276
+ */
277
+ function recoveryFor(code) {
278
+ switch (code) {
279
+ case "AUTH_REQUIRED":
280
+ case "AUTH_EXPIRED":
281
+ case "AUTH_FAILED":
282
+ case "SESSION_INVALID":
283
+ return "The Dataworks session is missing, expired, or invalid. Ask the user to run `dw auth login`, then retry.";
284
+ case "TENANT_REQUIRED":
285
+ return "Ask the user to run `dw tenant select`, then retry.";
286
+ case "ATHLETE_NOT_FOUND":
287
+ return "The athlete is not in this tenant. Do not retry with name variations; run `dw data athlete list --all --json` to see the roster, or query by event_id instead of an athlete.";
288
+ case "ATHLETE_AMBIGUOUS":
289
+ return "Present the returned candidates and ask the user which athlete they mean.";
290
+ case "METRIC_CATEGORY_REQUIRED":
291
+ return "Retry with one of the suggested canonical metric names, or supply metric_category for a genuinely custom metric.";
292
+ default:
293
+ return null;
294
+ }
295
+ }
296
+ /** One error shape for every tool, so an agent can parse failures uniformly. */
297
+ function toolError(error) {
298
+ const cliError = toCliError(error);
299
+ return {
300
+ isError: true,
301
+ content: [
302
+ {
303
+ type: "text",
304
+ text: JSON.stringify({
305
+ error: {
306
+ code: cliError.code,
307
+ message: cliError.message,
308
+ details: redact(cliError.details),
309
+ recovery: recoveryFor(cliError.code),
310
+ },
311
+ }),
312
+ },
313
+ ],
314
+ };
315
+ }
168
316
  function summary(output) {
169
- const athlete = output.athlete.name
170
- ? `${output.athlete.name} (${output.athlete.public_id})`
171
- : output.athlete.public_id;
317
+ const scope = output.athlete
318
+ ? output.athlete.name
319
+ ? `${output.athlete.name} (${output.athlete.public_id})`
320
+ : output.athlete.public_id
321
+ : (output.filters.event_id ?? output.filters.dataset_datasource_id ?? "the tenant");
322
+ if (output.aggregate) {
323
+ const groups = output.aggregate.groups;
324
+ const detail = groups.length === 1
325
+ ? `${groups[0].value}`
326
+ : `${groups.length} group${groups.length === 1 ? "" : "s"}`;
327
+ return [
328
+ `${output.aggregate.function} of ${output.aggregate.field} for ${output.metric.canonical}, grouped by ${output.aggregate.group_by}, for ${scope}: ${detail}.`,
329
+ `Environment: ${output.environment}; tenant: ${output.tenant_id}.`,
330
+ ].join("\n");
331
+ }
172
332
  return [
173
- `Returned ${output.count} ${output.metric.canonical} metric value${output.count === 1 ? "" : "s"} for ${athlete}.`,
333
+ `Returned ${output.count} ${output.metric.canonical} metric value${output.count === 1 ? "" : "s"} for ${scope}.`,
174
334
  `Environment: ${output.environment}; tenant: ${output.tenant_id}; order: ${output.order}.`,
175
335
  ].join("\n");
176
336
  }
177
- export function createDataworksMcpServer(handler = (input, options) => queryMetrics(input, options)) {
337
+ export function createDataworksMcpServer(handler = (input, options) => queryMetrics(input, options), discovery = {
338
+ listAthletes: (input) => listAthletes(input),
339
+ listEvents: (input) => listEvents(input),
340
+ }) {
178
341
  const server = new McpServer({
179
342
  name: "dataworks",
180
343
  title: "Dataworks",
181
344
  version: packageJson.version,
182
345
  }, {
183
- instructions: "Use query_metrics for read-only athlete metric requests. Prefer athlete_id when the user supplies an ID; " +
184
- "otherwise pass athlete_name and let the tool resolve it. Do not guess IDs. " +
346
+ instructions: "Use query_metrics for read-only metric requests. Prefer athlete_id when the user supplies an ID; " +
347
+ "otherwise pass athlete_name and let the tool resolve it. For a question about a race or feed rather than a " +
348
+ "person, omit the athlete and pass event_id or dataset_datasource_id. Do not guess IDs: find them with " +
349
+ "`dw data athlete list --all --json` or `dw data event list --all --json`. " +
185
350
  `Metric names are drawn from a fixed catalogue: ${allMetricNames.join(", ")}. ` +
186
351
  "Map the user's wording onto one of these rather than inventing a name — everyday phrasing such as " +
187
352
  "“heart rate”, “HR” or “BPM” all resolve to heartrate. If nothing fits, the tool " +
@@ -189,7 +354,11 @@ export function createDataworksMcpServer(handler = (input, options) => queryMetr
189
354
  });
190
355
  server.registerTool("query_metrics", {
191
356
  title: "Query athlete metrics",
192
- description: "Return normalized Dataworks metric values for one athlete. Resolves an athlete name safely, maps common aliases such as GPS and heart rate, applies optional time/event/dataset filters, polls asynchronous Data Explorer queries, and decodes GPS coordinates. Read-only. Requires an existing `dw auth login` session and selected tenant unless tenant_id is supplied.",
357
+ description: "Return normalized Dataworks metric values, scoped either to an athlete or to an event or datasource. " +
358
+ "Resolves an athlete name safely, maps metric wording onto the canonical catalogue, applies optional time filters, " +
359
+ "polls asynchronous Data Explorer queries, and decodes GPS coordinates. Provide at least one of athlete_id, " +
360
+ "athlete_name, event_id, or dataset_datasource_id. Read-only. Requires an existing `dw auth login` session and " +
361
+ "selected tenant unless tenant_id is supplied.",
193
362
  inputSchema: queryMetricsInputSchema,
194
363
  outputSchema: queryMetricsOutputSchema,
195
364
  annotations: {
@@ -202,8 +371,16 @@ export function createDataworksMcpServer(handler = (input, options) => queryMetr
202
371
  try {
203
372
  const output = structuredOutput(await handler({
204
373
  athleteId: input.athlete_id,
374
+ athleteIds: input.athlete_ids,
205
375
  athleteName: input.athlete_name,
376
+ eventIds: input.event_ids,
206
377
  metric: input.metric,
378
+ minValue: input.min_value,
379
+ maxValue: input.max_value,
380
+ orderBy: input.order_by,
381
+ aggregate: input.aggregate,
382
+ aggregateField: input.aggregate_field,
383
+ groupBy: input.group_by,
207
384
  metricCategory: input.metric_category,
208
385
  limit: input.limit,
209
386
  order: input.order,
@@ -220,28 +397,103 @@ export function createDataworksMcpServer(handler = (input, options) => queryMetr
220
397
  };
221
398
  }
222
399
  catch (error) {
223
- const cliError = toCliError(error);
400
+ return toolError(error);
401
+ }
402
+ });
403
+ const discoverySchema = {
404
+ search: z
405
+ .string()
406
+ .trim()
407
+ .min(1)
408
+ .optional()
409
+ .describe("Optional filter. Case, spaces, hyphens and underscores are ignored, and it matches on name or ID."),
410
+ limit: z
411
+ .number()
412
+ .int()
413
+ .min(1)
414
+ .max(500)
415
+ .default(50)
416
+ .describe("Maximum entries to return; defaults to 50."),
417
+ tenant_id: z
418
+ .string()
419
+ .trim()
420
+ .min(1)
421
+ .optional()
422
+ .describe("Optional authorized tenant override; otherwise use the selected CLI tenant."),
423
+ };
424
+ server.registerTool("list_athletes", {
425
+ title: "List athletes",
426
+ description: "List athletes in the authorized tenant, optionally filtered by name or ID. Use this to find an athlete_id, " +
427
+ "and to confirm whether someone is in this tenant at all rather than retrying query_metrics with name variations. " +
428
+ "Read-only.",
429
+ inputSchema: discoverySchema,
430
+ annotations: {
431
+ readOnlyHint: true,
432
+ destructiveHint: false,
433
+ idempotentHint: true,
434
+ openWorldHint: false,
435
+ },
436
+ }, async (input) => {
437
+ try {
438
+ const output = await discovery.listAthletes({
439
+ search: input.search,
440
+ limit: input.limit,
441
+ tenantId: input.tenant_id,
442
+ });
224
443
  return {
225
- isError: true,
226
444
  content: [
227
445
  {
228
446
  type: "text",
229
- text: JSON.stringify({
230
- error: {
231
- code: cliError.code,
232
- message: cliError.message,
233
- details: redact(cliError.details),
234
- recovery: cliError.code === "AUTH_REQUIRED"
235
- ? "Run `dw auth login`, then retry."
236
- : cliError.code === "TENANT_REQUIRED"
237
- ? "Run `dw tenant select`, then retry."
238
- : null,
239
- },
240
- }),
447
+ text: output.total
448
+ ? `Matched ${output.total} athlete${output.total === 1 ? "" : "s"}; returning ${output.count}.`
449
+ : `No athlete matches${output.search ? ` "${output.search}"` : ""} in tenant ${output.tenantId}.`,
241
450
  },
242
451
  ],
452
+ structuredContent: output,
243
453
  };
244
454
  }
455
+ catch (error) {
456
+ return toolError(error);
457
+ }
458
+ });
459
+ server.registerTool("list_events", {
460
+ title: "List events",
461
+ description: "List events in the authorized tenant, optionally filtered by name or ID. Use this to find an event_id for a " +
462
+ "race before calling query_metrics, rather than inferring one from an ID prefix or naming pattern. " +
463
+ "The events API currently returns nothing on this deployment, so results usually come from each dataset's " +
464
+ "event relation; `source` says which route was used. If `unavailable` is true neither route yielded an event, " +
465
+ "which is a backend problem rather than proof that no events exist — report it instead of guessing. Read-only.",
466
+ inputSchema: discoverySchema,
467
+ annotations: {
468
+ readOnlyHint: true,
469
+ destructiveHint: false,
470
+ idempotentHint: true,
471
+ openWorldHint: false,
472
+ },
473
+ }, async (input) => {
474
+ try {
475
+ const output = await discovery.listEvents({
476
+ search: input.search,
477
+ limit: input.limit,
478
+ tenantId: input.tenant_id,
479
+ });
480
+ return {
481
+ content: [
482
+ {
483
+ type: "text",
484
+ text: output.unavailable
485
+ ? `The event list is unavailable for tenant ${output.tenantId}: the API returned no list. Do not infer event IDs; report this to the user.`
486
+ : output.total
487
+ ? `Matched ${output.total} event${output.total === 1 ? "" : "s"}; returning ${output.count}.`
488
+ : `No event matches${output.search ? ` "${output.search}"` : ""} in tenant ${output.tenantId}.`,
489
+ },
490
+ ],
491
+ structuredContent: output,
492
+ };
493
+ }
494
+ catch (error) {
495
+ return toolError(error);
496
+ }
245
497
  });
246
498
  return server;
247
499
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -11719,5 +11719,5 @@
11719
11719
  ]
11720
11720
  }
11721
11721
  },
11722
- "version": "1.4.1"
11722
+ "version": "1.6.0"
11723
11723
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dataworks-technology/cli",
3
- "version": "1.4.1",
3
+ "version": "1.6.0",
4
4
  "description": "The official command-line interface for the Dataworks Data Engine",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dataworks",
3
- "version": "1.4.1",
3
+ "version": "1.6.0",
4
4
  "description": "Query athlete metrics from Dataworks using the authenticated local CLI session.",
5
5
  "author": { "name": "Dataworks Technology" },
6
6
  "homepage": "https://github.com/Dataworks-Technology/Dataworks-CLI",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dataworks",
3
- "version": "1.4.1",
3
+ "version": "1.6.0",
4
4
  "description": "Query athlete metrics from Dataworks using the authenticated local CLI session.",
5
5
  "author": { "name": "Dataworks Technology", "url": "https://dataworks.live/" },
6
6
  "homepage": "https://github.com/Dataworks-Technology/Dataworks-CLI",