@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.
- package/README.md +13 -2
- package/dist/generated/metrics.d.ts +10 -0
- package/dist/generated/metrics.d.ts.map +1 -1
- package/dist/generated/metrics.js +51 -0
- package/dist/generated/metrics.js.map +1 -1
- package/dist/lib/discover.d.ts +60 -0
- package/dist/lib/discover.d.ts.map +1 -0
- package/dist/lib/discover.js +166 -0
- package/dist/lib/discover.js.map +1 -0
- package/dist/lib/graphql-transport.d.ts +24 -0
- package/dist/lib/graphql-transport.d.ts.map +1 -1
- package/dist/lib/graphql-transport.js +36 -3
- package/dist/lib/graphql-transport.js.map +1 -1
- package/dist/lib/metric-names.d.ts +2 -2
- package/dist/lib/metric-names.d.ts.map +1 -1
- package/dist/lib/metric-names.js +2 -2
- package/dist/lib/metric-names.js.map +1 -1
- package/dist/lib/query-metrics.d.ts +42 -1
- package/dist/lib/query-metrics.d.ts.map +1 -1
- package/dist/lib/query-metrics.js +169 -27
- package/dist/lib/query-metrics.js.map +1 -1
- package/dist/mcp/server.d.ts +40 -3
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +288 -36
- package/dist/mcp/server.js.map +1 -1
- package/oclif.manifest.json +1 -1
- package/package.json +1 -1
- package/plugins/dataworks/.claude-plugin/plugin.json +1 -1
- package/plugins/dataworks/.codex-plugin/plugin.json +1 -1
- package/plugins/dataworks/skills/query-dataworks-metrics/SKILL.md +62 -9
package/dist/mcp/server.js
CHANGED
|
@@ -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("
|
|
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("
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
138
|
-
|
|
139
|
-
|
|
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
|
|
170
|
-
?
|
|
171
|
-
|
|
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 ${
|
|
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
|
|
184
|
-
"otherwise pass athlete_name and let the tool resolve it.
|
|
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
|
|
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
|
-
|
|
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:
|
|
230
|
-
|
|
231
|
-
|
|
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
|
}
|
package/dist/mcp/server.js.map
CHANGED
|
@@ -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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"}
|
package/oclif.manifest.json
CHANGED
|
@@ -11719,5 +11719,5 @@
|
|
|
11719
11719
|
]
|
|
11720
11720
|
}
|
|
11721
11721
|
},
|
|
11722
|
-
"version": "1.
|
|
11722
|
+
"version": "1.6.0"
|
|
11723
11723
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dataworks",
|
|
3
|
-
"version": "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.
|
|
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",
|