@uptimizr/agent-core 1.1.0 → 1.2.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.
Files changed (63) hide show
  1. package/AGENTS.md +238 -25
  2. package/README.md +57 -21
  3. package/dist/client.d.ts +22 -5
  4. package/dist/client.d.ts.map +1 -1
  5. package/dist/client.js +39 -10
  6. package/dist/client.js.map +1 -1
  7. package/dist/context.d.ts +93 -0
  8. package/dist/context.d.ts.map +1 -0
  9. package/dist/context.js +137 -0
  10. package/dist/context.js.map +1 -0
  11. package/dist/index.d.ts +10 -3
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +20 -2
  14. package/dist/index.js.map +1 -1
  15. package/dist/nonRegistryTools.d.ts +34 -0
  16. package/dist/nonRegistryTools.d.ts.map +1 -0
  17. package/dist/nonRegistryTools.js +70 -0
  18. package/dist/nonRegistryTools.js.map +1 -0
  19. package/dist/prompt.d.ts +33 -0
  20. package/dist/prompt.d.ts.map +1 -0
  21. package/dist/prompt.js +49 -0
  22. package/dist/prompt.js.map +1 -0
  23. package/dist/provider.d.ts +18 -0
  24. package/dist/provider.d.ts.map +1 -1
  25. package/dist/providers/anthropic.d.ts +18 -1
  26. package/dist/providers/anthropic.d.ts.map +1 -1
  27. package/dist/providers/anthropic.js +35 -3
  28. package/dist/providers/anthropic.js.map +1 -1
  29. package/dist/providers/openai.d.ts +14 -1
  30. package/dist/providers/openai.d.ts.map +1 -1
  31. package/dist/providers/openai.js +23 -1
  32. package/dist/providers/openai.js.map +1 -1
  33. package/dist/queryTool.d.ts +36 -0
  34. package/dist/queryTool.d.ts.map +1 -0
  35. package/dist/queryTool.js +123 -0
  36. package/dist/queryTool.js.map +1 -0
  37. package/dist/registryTools.d.ts +23 -1
  38. package/dist/registryTools.d.ts.map +1 -1
  39. package/dist/registryTools.js +185 -31
  40. package/dist/registryTools.js.map +1 -1
  41. package/dist/skills.d.ts +105 -0
  42. package/dist/skills.d.ts.map +1 -0
  43. package/dist/skills.generated.d.ts +44 -0
  44. package/dist/skills.generated.d.ts.map +1 -0
  45. package/dist/skills.generated.js +511 -0
  46. package/dist/skills.generated.js.map +1 -0
  47. package/dist/skills.js +144 -0
  48. package/dist/skills.js.map +1 -0
  49. package/dist/tools.d.ts +55 -8
  50. package/dist/tools.d.ts.map +1 -1
  51. package/dist/tools.js +41 -1
  52. package/dist/tools.js.map +1 -1
  53. package/dist/writeTools.d.ts +68 -0
  54. package/dist/writeTools.d.ts.map +1 -0
  55. package/dist/writeTools.js +256 -0
  56. package/dist/writeTools.js.map +1 -0
  57. package/llms.txt +164 -15
  58. package/package.json +7 -5
  59. package/skills/attention-hotspots/SKILL.md +88 -0
  60. package/skills/conversion-investigation/SKILL.md +97 -0
  61. package/skills/performance-regression-triage/SKILL.md +106 -0
  62. package/skills/weekly-scene-health/SKILL.md +105 -0
  63. package/skills/xr-comfort-audit/SKILL.md +95 -0
@@ -17,7 +17,7 @@
17
17
  * | `description` | `description` + `interpretation` + `caveats` |
18
18
  * | `inputSchema` | `filters` + `endpoint.pathParams`, via {@link FILTER_FIELDS} |
19
19
  * | `buildRequest` | `endpoint.path` (with `:param` substitution) + `filters` |
20
- * | `outputSchema` | `row`, wrapped as `{ rows: Row[] }` |
20
+ * | `outputSchema` | `row`, in the `format` result envelope (ADR 0051 §2) |
21
21
  *
22
22
  * **Browser safety (ADR 0050).** This module imports `@uptimizr/metrics` — the
23
23
  * registry's own dependency-free package, whose only runtime dependencies are
@@ -29,7 +29,10 @@
29
29
  * `@uptimizr/db` ever reappears in the manifest.
30
30
  */
31
31
  import { z } from "zod";
32
- import { allMetrics } from "@uptimizr/metrics";
32
+ // `REQUIRED_FILTERS` lives in the registry package (ADR 0051 §1) so the DSL's
33
+ // validator and this catalog agree on which filters a metric cannot be called
34
+ // without, instead of each carrying its own copy of the same two exceptions.
35
+ import { NARRATIVE_LIMITS, REQUIRED_FILTERS, allMetrics, resultFormatSchema, structuredEnvelopeSchema, } from "@uptimizr/metrics";
33
36
  // ---------------------------------------------------------------------------
34
37
  // Shared parameter definitions
35
38
  // ---------------------------------------------------------------------------
@@ -45,6 +48,21 @@ import { allMetrics } from "@uptimizr/metrics";
45
48
  // (`src/__tests__/shippedToolCompat.test.ts` pins that against a frozen
46
49
  // fixture). Bounds on the new fields mirror the collector's own Zod querystring
47
50
  // in `oss/apps/collector-server/src/routes/query.ts`.
51
+ /**
52
+ * The result envelope a generated tool asks the collector for when the caller
53
+ * names none (#336).
54
+ *
55
+ * `table` — the rows *plus* the `meta` block that says which metric answered,
56
+ * over what range, with which filters, how many rows came back and whether the
57
+ * row cap truncated them. An agent that omits `format` therefore gets the
58
+ * context it needs to judge the answer instead of a bare, unlabelled array; a
59
+ * caller that wants the old shape asks for `full` explicitly.
60
+ *
61
+ * The default lives **here, in the tool**, and travels as an explicit
62
+ * `format=table` on the wire. The collector's own default is still `full`, so
63
+ * the dashboard — which never sends the parameter — cannot be affected.
64
+ */
65
+ export const DEFAULT_TOOL_FORMAT = "table";
48
66
  const since = z.number().int().optional().describe("Start of the time range, epoch milliseconds.");
49
67
  const until = z.number().int().optional().describe("End of the time range, epoch milliseconds.");
50
68
  const bins = z.number().int().positive().max(500).optional().describe("Grid resolution per axis.");
@@ -206,31 +224,137 @@ const FILTER_FIELDS = {
206
224
  .max(2048)
207
225
  .optional()
208
226
  .describe("JSON funnel-step predicate for the success event. Omit to report views only."),
209
- // The shared result envelope (ADR 0051 §2). Declared literally rather than
210
- // imported from `@uptimizr/db/summary`, which would put a database driver back
211
- // on this package's dependency graph. `full` stays the default here: switching
212
- // the generated tools to `table` is a separate, documented change (#299).
213
- format: z
214
- .enum(["full", "table", "summary"])
227
+ // --- session narrative (ADR 0051 §7) ---
228
+ //
229
+ // Bounds mirror `NARRATIVE_LIMITS` in `@uptimizr/metrics`, which is also what
230
+ // the collector's querystring validates against.
231
+ minDwellMs: z
232
+ .number()
233
+ .int()
234
+ .nonnegative()
235
+ .max(NARRATIVE_LIMITS.maxMinDwellMs)
236
+ .optional()
237
+ .describe("How long (ms) a mesh must hold attention before it earns a dwell entry in a session " +
238
+ `narrative. Default ${NARRATIVE_LIMITS.defaultMinDwellMs}; raise it to keep only the ` +
239
+ "meshes that were really looked at."),
240
+ maxEntries: z
241
+ .number()
242
+ .int()
243
+ .positive()
244
+ .max(NARRATIVE_LIMITS.maxMaxEntries)
245
+ .optional()
246
+ .describe("Maximum entries in a session narrative, oldest first (default " +
247
+ `${NARRATIVE_LIMITS.defaultMaxEntries}, hard cap ${NARRATIVE_LIMITS.maxMaxEntries}). ` +
248
+ "The closing summary entry always survives and reports whether anything was dropped."),
249
+ // --- insight primitives (ADR 0051 §4) ---
250
+ // `metric` / `metrics` are the only arguments whose value is itself a
251
+ // registry metric id, so their descriptions point at the capabilities
252
+ // resource rather than listing 40 ids inline.
253
+ metric: z
254
+ .string()
255
+ .min(1)
256
+ .max(64)
257
+ .optional()
258
+ .describe("The registry metric to compute the insight over. Must be a comparable metric that has a " +
259
+ "portable bucket series; an id that has none is rejected with the list of ids that do."),
260
+ metrics: z
261
+ .string()
262
+ .min(1)
263
+ .max(1024)
264
+ .optional()
265
+ .describe("Comma-separated allowlist of registry metric ids to scan instead of the curated default " +
266
+ "set. Capped per request; a longer list is rejected rather than silently truncated."),
267
+ window: z
268
+ .number()
269
+ .int()
270
+ .positive()
271
+ .max(365)
272
+ .optional()
273
+ .describe("Baseline window length in days, counted back from `until`. Defaults to 28."),
274
+ refSince: z
275
+ .number()
276
+ .int()
277
+ .optional()
278
+ .describe("Start of the reference window a change is measured against, epoch milliseconds. Defaults " +
279
+ "to the equal-length window immediately before the current range."),
280
+ refUntil: z
281
+ .number()
282
+ .int()
283
+ .optional()
284
+ .describe("End of the reference window, epoch milliseconds. Defaults to `since`."),
285
+ // --- anomalies (#306) ---
286
+ sensitivity: z
287
+ .number()
288
+ .min(1)
289
+ .max(10)
290
+ .optional()
291
+ .describe("How far out of line a bucket must be before it is reported, in standard deviations of " +
292
+ "the trailing window (a rescaled median absolute deviation). Higher means fewer, more " +
293
+ "extreme findings. 1-10, default 3."),
294
+ // --- significance / scene health (#307) ---
295
+ weights: z
296
+ .string()
297
+ .min(1)
298
+ .max(512)
299
+ .optional()
300
+ .describe("JSON object overriding a composite score’s declared per-factor weights, as a JSON " +
301
+ "string. Factors it does not name keep their declared weight; an unknown factor id is " +
302
+ "rejected rather than ignored."),
303
+ // The shared result envelope (ADR 0051 §2), reusing the registry's own Zod
304
+ // mirror so the values a tool accepts and the shapes it returns cannot drift.
305
+ //
306
+ // **The generated tools default to `table`, not `full`** (#336) — see
307
+ // {@link DEFAULT_TOOL_FORMAT}. The default is applied by `buildRequest` and
308
+ // advertised as the JSON Schema `default` keyword rather than baked in with
309
+ // Zod's `.default()`, which would make the argument *required* in the
310
+ // schema's output view and force every model to name a format on every call.
311
+ format: resultFormatSchema
215
312
  .optional()
216
- .describe("Result envelope. `full` (default) returns the bare rows; `table` wraps them with a " +
217
- "`meta` block; `summary` returns a bounded digest top rows, a trend or merged " +
218
- "spatial clusters with shares, caveats and a plain-language reading. Prefer " +
219
- "`summary` for a large result such as a heatmap or a long leaderboard."),
313
+ .describe("Result envelope. `table` (the default the tools apply) returns the rows plus a " +
314
+ "`meta` block metric, range, applied filters, row count, and whether the row cap " +
315
+ "truncated the result; `full` returns the bare rows and nothing else; `summary` " +
316
+ "returns a bounded digest top rows, a trend or merged spatial clusters — with " +
317
+ "shares, caveats and a plain-language reading. Prefer `summary` for a large result " +
318
+ "such as a heatmap or a long leaderboard.")
319
+ .meta({ default: DEFAULT_TOOL_FORMAT }),
220
320
  };
221
321
  /**
222
- * Filters the collector declares **required** in its querystring schema, by
223
- * metric id. The registry records requiredness in prose (a `caveats` line) but
224
- * not as data, so the two exceptions are listed here; everything else is
225
- * optional. Path parameters are always required and are handled separately.
322
+ * Per-metric overrides of {@link FILTER_FIELDS}, for the one filter id whose
323
+ * *type* depends on the metric that accepts it.
226
324
  *
227
- * Keep this in step with `oss/apps/collector-server/src/routes/query.ts`
228
- * (`funnelQueryParams.steps`, `meshUvHeatmapQueryParams.mesh`). Promoting it
229
- * into the registry itself is tracked as a follow-up.
325
+ * `bucket` is a histogram bin width in FPS on `fps_histogram` and the time
326
+ * grain (`day` | `hour`) on the insight primitives. Declaring a union in the
327
+ * shared table would weaken `fps_histogram`'s advertised schema for no reason
328
+ * and change bytes a shipped MCP client already validates against; an override
329
+ * keeps every existing tool exactly as it was.
230
330
  */
231
- const REQUIRED_FILTERS = {
232
- funnel: ["steps"],
233
- mesh_uv_heatmap: ["mesh"],
331
+ const METRIC_FILTER_FIELDS = {
332
+ insight_baseline: {
333
+ bucket: z
334
+ .enum(["day", "hour"])
335
+ .optional()
336
+ .describe("Time grain of the series: `day` (default) or `hour`."),
337
+ },
338
+ insight_movers: {
339
+ bucket: z
340
+ .enum(["day", "hour"])
341
+ .optional()
342
+ .describe("Time grain of the series the spread is measured over: `day` (default) or `hour`."),
343
+ },
344
+ // --- significance / scene health (#307) ---
345
+ insight_significance: {
346
+ bucket: z
347
+ .enum(["day", "hour"])
348
+ .optional()
349
+ .describe("Time grain of the compared series: `day` (default) or `hour`. It is also the unit " +
350
+ "a Welch comparison counts observations in, so a finer grain buys statistical power."),
351
+ },
352
+ insight_scene_health: {
353
+ bucket: z
354
+ .enum(["day", "hour"])
355
+ .optional()
356
+ .describe("Time grain each factor’s series is bucketed at: `day` (default) or `hour`."),
357
+ },
234
358
  };
235
359
  /**
236
360
  * The **required** variant of each filter named in {@link REQUIRED_FILTERS} —
@@ -240,6 +364,13 @@ const REQUIRED_FILTERS = {
240
364
  const REQUIRED_FILTER_FIELDS = {
241
365
  steps,
242
366
  mesh: z.string().min(1).max(256).describe("The mesh/object name to bin. Required."),
367
+ metric: z
368
+ .string()
369
+ .min(1)
370
+ .max(64)
371
+ .describe("The registry metric the insight is computed over. Required. Must be a comparable " +
372
+ "metric with a portable bucket series; an id that has none is rejected with the list " +
373
+ "of ids that do."),
243
374
  };
244
375
  /**
245
376
  * Argument name for a filter that travels in the **path** rather than the
@@ -267,7 +398,7 @@ function filterField(metric, filter) {
267
398
  throw new Error(`no required field defined for filter '${filter}'`);
268
399
  return required;
269
400
  }
270
- return FILTER_FIELDS[filter];
401
+ return METRIC_FILTER_FIELDS[metric.id]?.[filter] ?? FILTER_FIELDS[filter];
271
402
  }
272
403
  /**
273
404
  * The row schema a tool advertises, built from the registry's `row`.
@@ -360,14 +491,24 @@ export function metricToTool(metric) {
360
491
  inputSchema[argName] = field;
361
492
  for (const filter of metric.filters)
362
493
  inputSchema[filter] = filterField(metric, filter);
363
- // Every row of the collector's response, in one bounded envelope. A single
364
- // object result (a session descriptor, a one-row summary) is reported as a
365
- // one-element `rows` array so the envelope is the same for every tool.
366
- const outputSchema = {
367
- rows: z
368
- .array(outputRowSchema(metric))
369
- .describe(`Result rows (one row per ${metric.grain}). A column is null when it has no data.`),
370
- };
494
+ // What the tool returns, as **one object schema** which is what MCP's
495
+ // `outputSchema` has to be (see `structuredEnvelopeSchema`).
496
+ //
497
+ // A metric that honours `format` can answer in any of the three envelopes, so
498
+ // its tool advertises all three (#350). The bug this replaces advertised only
499
+ // the row array, and the MCP SDK then rejected every `format=table|summary`
500
+ // result with `-32602` the very formats the guides tell agents to prefer.
501
+ // The two **resource** metrics declare no `format` filter (a stored record has
502
+ // nothing to summarise), so their tools keep exactly the `{ rows }` schema
503
+ // they shipped with.
504
+ const acceptsFormat = metric.filters.includes("format");
505
+ const row = outputRowSchema(metric);
506
+ const rowsNote = `Result rows (one row per ${metric.grain}). A column is null when it has no data.`;
507
+ const outputSchema = acceptsFormat
508
+ ? structuredEnvelopeSchema(row, metric.id).describe("The requested `format` envelope: `table` (the tools' default) is `meta` + `rows`, " +
509
+ "`full` is `rows` alone, `summary` is the `kind`-tagged digest. " +
510
+ rowsNote)
511
+ : z.object({ rows: z.array(row).describe(rowsNote) });
371
512
  // The collector client strips a leading slash; keep paths root-relative so a
372
513
  // tool's `path` reads the same as it always has (`api/v1/...`).
373
514
  const template = endpoint.path.replace(/^\//, "");
@@ -386,6 +527,12 @@ export function metricToTool(metric) {
386
527
  const params = {};
387
528
  for (const filter of metric.filters)
388
529
  params[filter] = toQueryValue(args[filter]);
530
+ // The tools default to the `table` envelope (#336). Applied here rather
531
+ // than by the collector, which still defaults to `full` for every other
532
+ // client, and only for a metric that declares the filter — the two
533
+ // resource reads have nothing to wrap.
534
+ if (acceptsFormat && params.format == null)
535
+ params.format = DEFAULT_TOOL_FORMAT;
389
536
  return { path, params };
390
537
  },
391
538
  };
@@ -394,6 +541,13 @@ export function metricToTool(metric) {
394
541
  * Generate the read-only tool catalog from the metric registry: one tool per
395
542
  * registry entry that has a collector endpoint, in registry declaration order.
396
543
  *
544
+ * **Capability-blind by design.** It generates a tool for every endpoint,
545
+ * whatever `endpoint.capability` says, because generation and *exposure* are
546
+ * separate decisions: `tools.ts` partitions the result into the `query` catalog
547
+ * (`readTools`) and the `query:raw` one (`rawTools`), and the host decides which
548
+ * of those a given API key may see (ADR 0051 §7). Pass a filtered metric list to
549
+ * generate only part of the catalog.
550
+ *
397
551
  * Pure — it reads definitions only and never touches a collector — so the whole
398
552
  * catalog is unit-testable without a live server.
399
553
  */
@@ -1 +1 @@
1
- {"version":3,"file":"registryTools.js","sourceRoot":"","sources":["../src/registryTools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registryTools.js","sourceRoot":"","sources":["../src/registryTools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * **Packaged agent skills** — the canned investigations a client can run against
3
+ * a project's analytics (ADR 0050 §7, ADR 0051 §6–§7, design sketch §G.4).
4
+ *
5
+ * A skill is a named methodology: a short title, the tools its method relies on,
6
+ * the capabilities an API key needs to follow it, the arguments it accepts, and
7
+ * a `render` that turns those arguments into the single user turn that steers an
8
+ * agent. No data is fetched here and no model is called — a skill is text plus
9
+ * metadata, so the same definition serves every consumer:
10
+ *
11
+ * - `@uptimizr/mcp` registers each one as an MCP **prompt template**
12
+ * (`prompts/list` → `prompts/get`) and lists them on `uptimizr://skills`.
13
+ * - `uptimizr agent report --skill <name>` in the collector CLI seeds its
14
+ * headless `runAgent` transcript with the rendered text (ADR 0051 §6, design
15
+ * sketch §F.4).
16
+ * - `@uptimizr/agent-eval` asks the bank the very questions a real client sends.
17
+ * - The in-browser assistant offers them as starter prompts.
18
+ *
19
+ * ### Where the text lives
20
+ *
21
+ * Not here. Each skill is an **Agent Skills file** —
22
+ * `oss/packages/agent-core/skills/<name>/SKILL.md` — with YAML frontmatter
23
+ * (`name`, `title`, `description`, `tools`, `capabilities`, `args`) and a
24
+ * Markdown body holding the methodology. Those files are the source of truth:
25
+ * they ship in the `@uptimizr/agent-core` and `@uptimizr/mcp` tarballs, and a
26
+ * user can lift one straight into their own agent.
27
+ *
28
+ * They cannot be read at runtime, because this package is browser-safe and must
29
+ * not touch `node:fs`. So `scripts/gen-agent-skills.mjs` compiles them into
30
+ * {@link GENERATED_AGENT_SKILLS} (`skills.generated.ts`) and this module turns
31
+ * that data into {@link AgentSkill} values. Reword a SKILL.md, run
32
+ * `pnpm gen:skills`, and every consumer's wording changes with it, with nothing
33
+ * to keep in step. `pnpm gen:skills:check` is the CI gate that fails on a
34
+ * hand-edited generated file.
35
+ *
36
+ * ### Body placeholders
37
+ *
38
+ * A body is a template with a deliberately tiny vocabulary — enough to scope a
39
+ * methodology, not a second templating language:
40
+ *
41
+ * - `{{scene}}` — the scene id, or the empty string.
42
+ * - `{{scope}}` — `scene "lobby"`, or `the project (all scenes)`.
43
+ * - `{{range}}` — the window, in words, defaulting to the argument's `default`.
44
+ * - `{{#name}}…{{/name}}` / `{{^name}}…{{/name}}` — a section kept only when the
45
+ * argument is, or is not, present. Sections may span lines.
46
+ */
47
+ import { type GeneratedAgentSkillArg } from "./skills.generated.js";
48
+ /** One argument a skill's {@link AgentSkill.render} accepts. */
49
+ export type AgentSkillArg = GeneratedAgentSkillArg;
50
+ /** A named, renderable investigation methodology. */
51
+ export interface AgentSkill {
52
+ /** The skill directory name under `skills/` (kebab-case). */
53
+ id: string;
54
+ /** Stable identifier (`weekly_scene_health`) — what `--skill` and MCP take. */
55
+ name: string;
56
+ /** Human title for a picker. */
57
+ title: string;
58
+ /**
59
+ * What the skill produces, its `USE FOR:` cases and its trigger phrases, as
60
+ * one paragraph — the text an MCP client shows in `prompts/list`.
61
+ */
62
+ description: string;
63
+ /**
64
+ * The tool names the skill's method relies on, in the order its text mentions
65
+ * them. Advisory: the agent may call others, or fewer. Consumers use it to
66
+ * preview a run (`--dry-run`), to describe a skill, and to drive a
67
+ * deterministic scripted provider that needs no model.
68
+ */
69
+ tools: readonly string[];
70
+ /**
71
+ * The API-key capabilities the method needs (ADR 0051 §7). Every skill needs
72
+ * `query`; one that reads raw per-session detail would also need `query:raw`.
73
+ * A host can use this to hide a skill the configured key could not complete.
74
+ */
75
+ capabilities: readonly string[];
76
+ /** The arguments `render` understands. */
77
+ args: readonly AgentSkillArg[];
78
+ /** Render the single user turn that asks for this investigation. */
79
+ render(args?: Record<string, string | undefined>): string;
80
+ }
81
+ /**
82
+ * The packaged skills, in catalog order. The text of each is the contract: it is
83
+ * what an MCP client shows its user and what the report CLI sends as the user
84
+ * turn, so changing a SKILL.md changes every consumer at once (which is the
85
+ * point).
86
+ */
87
+ export declare const AGENT_SKILLS: readonly AgentSkill[];
88
+ /** The packaged skill names, in catalog order. */
89
+ export declare const AGENT_SKILL_NAMES: readonly string[];
90
+ /**
91
+ * Resolve a skill by name, or `undefined` when nothing answers to it.
92
+ *
93
+ * The one lookup every consumer goes through, and deliberately forgiving about
94
+ * spelling: a skill's directory is kebab-case (`xr-comfort-audit`) and its id is
95
+ * snake_case (`xr_comfort_audit`), so both resolve, as do the historical names
96
+ * in {@link SKILL_ALIASES}.
97
+ */
98
+ export declare function getAgentSkill(name: string): AgentSkill | undefined;
99
+ /**
100
+ * Render one skill's user turn, throwing on an unknown name (a typo should fail
101
+ * loudly rather than silently produce an empty prompt) or on a missing required
102
+ * argument.
103
+ */
104
+ export declare function renderAgentSkill(name: string, args?: Record<string, string | undefined>): string;
105
+ //# sourceMappingURL=skills.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,uBAAuB,CAAC;AAE/B,gEAAgE;AAChE,MAAM,MAAM,aAAa,GAAG,sBAAsB,CAAC;AAEnD,qDAAqD;AACrD,MAAM,WAAW,UAAU;IACzB,6DAA6D;IAC7D,EAAE,EAAE,MAAM,CAAC;IACX,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB;;;;OAIG;IACH,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,0CAA0C;IAC1C,IAAI,EAAE,SAAS,aAAa,EAAE,CAAC;IAC/B,oEAAoE;IACpE,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,CAAC;CAC3D;AAqDD;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,SAAS,UAAU,EAA6C,CAAC;AAE5F,kDAAkD;AAClD,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAA4C,CAAC;AAe5F;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAIlE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAM,GAC5C,MAAM,CAWR"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * GENERATED FILE — do not edit.
3
+ *
4
+ * Compiled from `oss/packages/agent-core/skills/<name>/SKILL.md` by
5
+ * `scripts/gen-agent-skills.mjs`. Edit the SKILL.md file and run
6
+ * `pnpm gen:skills`; `pnpm gen:skills:check` is the CI gate.
7
+ *
8
+ * This module is data only. `skills.ts` turns it into the renderable
9
+ * {@link ./skills.js#AGENT_SKILLS} every consumer uses, which is why nothing
10
+ * here touches `node:fs` — `@uptimizr/agent-core` stays browser-safe.
11
+ */
12
+ /** One argument a skill's body can be rendered with. */
13
+ export interface GeneratedAgentSkillArg {
14
+ /** Argument name, as written in the SKILL.md frontmatter. */
15
+ name: string;
16
+ /** One-line description, surfaced by MCP's `prompts/list` and by `--list-skills`. */
17
+ description: string;
18
+ /** Whether the skill is meaningless without it. */
19
+ required: boolean;
20
+ /** Value substituted when the caller passes none. */
21
+ default?: string;
22
+ }
23
+ /** One SKILL.md, parsed. */
24
+ export interface GeneratedAgentSkill {
25
+ /** The skill directory name (kebab-case). */
26
+ id: string;
27
+ /** The stable identifier (snake_case) MCP and `--skill` take. */
28
+ name: string;
29
+ /** Human title for a picker. */
30
+ title: string;
31
+ /** What the skill produces, including its USE FOR line and trigger phrases. */
32
+ description: string;
33
+ /** The tool names the method relies on, in the order the body mentions them. */
34
+ tools: readonly string[];
35
+ /** The API-key capabilities the method needs (ADR 0051 §7). */
36
+ capabilities: readonly string[];
37
+ /** The arguments the body understands. */
38
+ args: readonly GeneratedAgentSkillArg[];
39
+ /** The methodology, as a template — `skills.ts` documents the placeholders. */
40
+ body: string;
41
+ }
42
+ /** Every packaged skill, in catalog (directory-name) order. */
43
+ export declare const GENERATED_AGENT_SKILLS: readonly GeneratedAgentSkill[];
44
+ //# sourceMappingURL=skills.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.generated.d.ts","sourceRoot":"","sources":["../src/skills.generated.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,wDAAwD;AACxD,MAAM,WAAW,sBAAsB;IACrC,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,WAAW,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,QAAQ,EAAE,OAAO,CAAC;IAClB,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,4BAA4B;AAC5B,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,WAAW,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,+DAA+D;IAC/D,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,0CAA0C;IAC1C,IAAI,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACxC,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;CACd;AAED,+DAA+D;AAC/D,eAAO,MAAM,sBAAsB,EAAE,SAAS,mBAAmB,EA6fhE,CAAC"}