agentfootprint 9.35.0 → 9.36.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/dist/core/agent/AgentBuilder.js +85 -0
- package/dist/core/agent/AgentBuilder.js.map +1 -1
- package/dist/core/agent/buildToolRegistry.js +7 -0
- package/dist/core/agent/buildToolRegistry.js.map +1 -1
- package/dist/core/agent/toolsFromActiveSkill.js +79 -0
- package/dist/core/agent/toolsFromActiveSkill.js.map +1 -0
- package/dist/esm/core/agent/AgentBuilder.d.ts +62 -0
- package/dist/esm/core/agent/AgentBuilder.js +85 -0
- package/dist/esm/core/agent/AgentBuilder.js.map +1 -1
- package/dist/esm/core/agent/buildToolRegistry.js +7 -0
- package/dist/esm/core/agent/buildToolRegistry.js.map +1 -1
- package/dist/esm/core/agent/toolsFromActiveSkill.d.ts +55 -0
- package/dist/esm/core/agent/toolsFromActiveSkill.js +75 -0
- package/dist/esm/core/agent/toolsFromActiveSkill.js.map +1 -0
- package/dist/esm/lib/injection-engine/factories/defineSkill.d.ts +7 -0
- package/dist/esm/lib/injection-engine/factories/defineSkill.js.map +1 -1
- package/dist/esm/lib/injection-engine/skillsFromDir.d.ts +80 -17
- package/dist/esm/lib/injection-engine/skillsFromDir.js +348 -46
- package/dist/esm/lib/injection-engine/skillsFromDir.js.map +1 -1
- package/dist/lib/injection-engine/factories/defineSkill.js.map +1 -1
- package/dist/lib/injection-engine/skillsFromDir.js +348 -46
- package/dist/lib/injection-engine/skillsFromDir.js.map +1 -1
- package/dist/types/core/agent/AgentBuilder.d.ts +62 -0
- package/dist/types/core/agent/AgentBuilder.d.ts.map +1 -1
- package/dist/types/core/agent/buildToolRegistry.d.ts.map +1 -1
- package/dist/types/core/agent/toolsFromActiveSkill.d.ts +56 -0
- package/dist/types/core/agent/toolsFromActiveSkill.d.ts.map +1 -0
- package/dist/types/lib/injection-engine/factories/defineSkill.d.ts +7 -0
- package/dist/types/lib/injection-engine/factories/defineSkill.d.ts.map +1 -1
- package/dist/types/lib/injection-engine/skillsFromDir.d.ts +80 -17
- package/dist/types/lib/injection-engine/skillsFromDir.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -30,21 +30,56 @@
|
|
|
30
30
|
* body (what it reads after deciding). That is the same file convention Claude
|
|
31
31
|
* Code made familiar, so a skill folder is portable between the two.
|
|
32
32
|
*
|
|
33
|
-
* ── What a SKILL.md can
|
|
34
|
-
*
|
|
35
|
-
*
|
|
33
|
+
* ── What a SKILL.md can carry (9.36.0: the whole runbook) ────────────────────
|
|
34
|
+
* A runbook you already have on disk is three things — what to do (prose),
|
|
35
|
+
* what to do it WITH (tools), and in what order (steps). This door used to
|
|
36
|
+
* carry the first and drop the other two, so the one thing the library exists
|
|
37
|
+
* to say ("extract the workflow you already have") arrived two-thirds empty.
|
|
38
|
+
* All three now cross:
|
|
36
39
|
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
40
|
+
* ---
|
|
41
|
+
* name: billing
|
|
42
|
+
* description: Use for refunds, charges and billing questions.
|
|
43
|
+
* tools: lookup_order, issue_refund
|
|
44
|
+
* steps:
|
|
45
|
+
* - lookup_order: look up the order before touching money
|
|
46
|
+
* - issue_refund: refund only what the lookup found
|
|
47
|
+
* onSkip: hold
|
|
48
|
+
* ---
|
|
49
|
+
* When handling billing: confirm identity first, then …
|
|
50
|
+
*
|
|
51
|
+
* const skills = await skillsFromDir('./skills', {
|
|
52
|
+
* tools: [lookupOrder, issueRefund], // the real Tools, from YOUR code
|
|
53
|
+
* });
|
|
54
|
+
*
|
|
55
|
+
* The remaining limits, and why each one is a decision rather than an
|
|
56
|
+
* oversight:
|
|
57
|
+
*
|
|
58
|
+
* - **the file names a tool; it never defines one.** A tool is code with an
|
|
59
|
+
* `execute`, and a markdown file has none. `tools:` is a list of NAMES,
|
|
60
|
+
* resolved against the `tools` registry the CALLER passes — so the file
|
|
61
|
+
* can only ever pick from capabilities you already handed in, and reading a
|
|
62
|
+
* directory can never introduce one. See "why this is not a code-execution
|
|
63
|
+
* vector" below.
|
|
64
|
+
* - **a name the registry does not carry is refused BY NAME at load** —
|
|
65
|
+
* never a skill that quietly loads without the tool it asked for, because
|
|
66
|
+
* that skill runs, sounds confident, and cannot do the job.
|
|
67
|
+
* - **no per-step `produces` / `consumes`** — the artifact vocabularies
|
|
68
|
+
* (9.25.0) are a build-time contract between skills, not runbook prose;
|
|
69
|
+
* declare them with `defineSkill` where the rest of the agent is declared.
|
|
70
|
+
* - **no `autoActivate`** — a directory does not decide the agent's tool
|
|
71
|
+
* posture. Say it once on the agent with `.toolsFromActiveSkill()`
|
|
72
|
+
* (9.36.0), which scopes every skill's tools to that skill's activation.
|
|
73
|
+
* Without it, a loaded skill's tools are on the wire from iteration 1, the
|
|
74
|
+
* same as any hand-written `defineSkill({ tools })`.
|
|
75
|
+
* - **no per-file `surfaceMode`, `cache` or `refreshPolicy`** — `surfaceMode`
|
|
76
|
+
* is settable for the WHOLE directory via `opts`, all of them or none; the
|
|
77
|
+
* others take `defineSkill`'s defaults.
|
|
78
|
+
* - unknown frontmatter keys are still IGNORED, not rejected, so a file
|
|
79
|
+
* carrying another tool's metadata still loads here. `name`,
|
|
80
|
+
* `description`, `tools`, `steps` and `onSkip` are the KNOWN keys — a file
|
|
81
|
+
* that used one of those five for something else is the one case this
|
|
82
|
+
* release can change, and it changes it loudly.
|
|
48
83
|
*
|
|
49
84
|
* A worked example feeding this into a graph:
|
|
50
85
|
* `examples/features/47-skills-from-dir-graph.ts`.
|
|
@@ -58,6 +93,17 @@
|
|
|
58
93
|
* only make about a path on your own disk at build time. Each file is read
|
|
59
94
|
* ONCE, here; a later edit does not reach a run already in flight.
|
|
60
95
|
*
|
|
96
|
+
* ── Why carrying tools is not a code-execution vector ───────────────────────
|
|
97
|
+
* Nothing in a SKILL.md is evaluated, imported, required or resolved as a
|
|
98
|
+
* path. `tools:` is a list of strings, and the only thing a string can do here
|
|
99
|
+
* is MATCH — against `tool.schema.name` in a registry the caller constructed in
|
|
100
|
+
* their own source, from their own imports. A hostile file can therefore ask
|
|
101
|
+
* for a tool you already gave the agent (and it would have to guess the name);
|
|
102
|
+
* it can never name a module, widen the agent's capabilities, or cause one byte
|
|
103
|
+
* of new code to run. The set of things this directory can do is a SUBSET of
|
|
104
|
+
* what the calling file already decided to do, which is the same property the
|
|
105
|
+
* local-path rule above buys for bodies.
|
|
106
|
+
*
|
|
61
107
|
* Node-only. `node:fs/promises` and `node:path` are imported lazily inside the
|
|
62
108
|
* call, the same gating `lib/tool-lint/cli.ts` uses: this module is reachable
|
|
63
109
|
* from the `agentfootprint/context` barrel, and a TOP-LEVEL node:fs
|
|
@@ -99,6 +145,9 @@ const SKILL_FILE = 'SKILL.md';
|
|
|
99
145
|
const SKILL_NAME_RE = /^[a-zA-Z0-9_-]{1,64}$/;
|
|
100
146
|
/** Anything of the form `scheme://…` — http, https, s3, git+ssh, file, … */
|
|
101
147
|
const URL_LIKE_RE = /^[a-zA-Z][a-zA-Z0-9+.-]*:\/\//;
|
|
148
|
+
/** How many registry names a refusal lists before it stops. Long enough to
|
|
149
|
+
* spot the typo, short enough that a 200-tool agent's error is still readable. */
|
|
150
|
+
const NAMES_IN_REFUSAL = 20;
|
|
102
151
|
/**
|
|
103
152
|
* Load every `SKILL.md` under `dir` as a Skill Injection.
|
|
104
153
|
*
|
|
@@ -116,8 +165,9 @@ const URL_LIKE_RE = /^[a-zA-Z][a-zA-Z0-9+.-]*:\/\//;
|
|
|
116
165
|
*
|
|
117
166
|
* @throws when `dir` is not a local path, does not exist, is not a directory,
|
|
118
167
|
* or contains no `SKILL.md` at all; when a file's frontmatter is malformed
|
|
119
|
-
* (the message names the file);
|
|
120
|
-
* (the message names both)
|
|
168
|
+
* (the message names the file); when two files claim the same skill name
|
|
169
|
+
* (the message names both); or when a file names a tool the `tools` registry
|
|
170
|
+
* does not carry, or sequences a tool the file itself did not declare.
|
|
121
171
|
*/
|
|
122
172
|
async function skillsFromDir(dir, opts = {}) {
|
|
123
173
|
assertLocalDirectoryArgument(dir);
|
|
@@ -176,15 +226,26 @@ async function skillsFromDir(dir, opts = {}) {
|
|
|
176
226
|
}
|
|
177
227
|
byName.set(skill.name, skill);
|
|
178
228
|
}
|
|
229
|
+
// The registry, indexed once for the whole directory. Built even when no file
|
|
230
|
+
// declares tools — an empty Map costs nothing and keeps the resolve path one
|
|
231
|
+
// shape. `undefined` (option omitted) is DISTINCT from an empty registry: the
|
|
232
|
+
// refusals say different things, because the fixes are different.
|
|
233
|
+
const registry = indexToolRegistry(opts.tools);
|
|
179
234
|
return parsed
|
|
180
235
|
.slice()
|
|
181
236
|
.sort((a, b) => (a.name < b.name ? -1 : a.name > b.name ? 1 : 0))
|
|
182
|
-
.map((skill) =>
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
237
|
+
.map((skill) => {
|
|
238
|
+
const tools = resolveDeclaredTools(skill, opts.tools, registry);
|
|
239
|
+
return (0, defineSkill_js_1.defineSkill)({
|
|
240
|
+
id: skill.name,
|
|
241
|
+
description: skill.description,
|
|
242
|
+
body: skill.body,
|
|
243
|
+
...(tools !== undefined && { tools }),
|
|
244
|
+
...(skill.steps !== undefined && { steps: skill.steps }),
|
|
245
|
+
...(skill.onSkip !== undefined && { onSkip: skill.onSkip }),
|
|
246
|
+
...(opts.surfaceMode !== undefined && { surfaceMode: opts.surfaceMode }),
|
|
247
|
+
});
|
|
248
|
+
});
|
|
188
249
|
}
|
|
189
250
|
exports.skillsFromDir = skillsFromDir;
|
|
190
251
|
// ─── Authorship guard ──────────────────────────────────────────────
|
|
@@ -230,16 +291,92 @@ function assertLocalDirectoryArgument(dir) {
|
|
|
230
291
|
`at build time.`);
|
|
231
292
|
}
|
|
232
293
|
}
|
|
233
|
-
// ───
|
|
294
|
+
// ─── Tool resolution (names on disk → Tools from your code) ────────
|
|
295
|
+
/**
|
|
296
|
+
* Index the caller's registry by wire name.
|
|
297
|
+
*
|
|
298
|
+
* `undefined` in, empty Map out — the CALLER's `undefined` is remembered
|
|
299
|
+
* separately by `resolveDeclaredTools`, because "you passed no registry" and
|
|
300
|
+
* "your registry does not carry that one" need different sentences.
|
|
301
|
+
*
|
|
302
|
+
* Two registry entries under one name is refused here rather than resolved by
|
|
303
|
+
* last-wins: which of the two a skill got would depend on array order, and a
|
|
304
|
+
* skill silently running the wrong `execute` is the failure this whole door is
|
|
305
|
+
* supposed to make impossible.
|
|
306
|
+
*/
|
|
307
|
+
function indexToolRegistry(tools) {
|
|
308
|
+
const index = new Map();
|
|
309
|
+
for (const tool of tools ?? []) {
|
|
310
|
+
const name = tool?.schema?.name;
|
|
311
|
+
if (typeof name !== 'string' || name.length === 0) {
|
|
312
|
+
throw new Error(`skillsFromDir: the \`tools\` registry contains an entry with no \`schema.name\`. ` +
|
|
313
|
+
`Every entry must be a Tool (defineTool(...) produces one) — a SKILL.md resolves ` +
|
|
314
|
+
`tools BY NAME, so an unnamed one can never be picked.`);
|
|
315
|
+
}
|
|
316
|
+
const prior = index.get(name);
|
|
317
|
+
if (prior !== undefined && prior !== tool) {
|
|
318
|
+
throw new Error(`skillsFromDir: the \`tools\` registry carries two different tools named '${name}'. ` +
|
|
319
|
+
`A SKILL.md names a tool by that string, so which implementation a skill got would ` +
|
|
320
|
+
`depend on array order. Rename one, or pass only the one you mean.`);
|
|
321
|
+
}
|
|
322
|
+
index.set(name, tool);
|
|
323
|
+
}
|
|
324
|
+
return index;
|
|
325
|
+
}
|
|
326
|
+
/** The registry's names, sorted and capped — the material every refusal ends with. */
|
|
327
|
+
function availableNames(registry) {
|
|
328
|
+
if (registry.size === 0)
|
|
329
|
+
return '(the registry you passed is empty)';
|
|
330
|
+
const names = [...registry.keys()].sort();
|
|
331
|
+
const shown = names.slice(0, NAMES_IN_REFUSAL).join(', ');
|
|
332
|
+
return names.length > NAMES_IN_REFUSAL
|
|
333
|
+
? `${shown}, …and ${names.length - NAMES_IN_REFUSAL} more`
|
|
334
|
+
: shown;
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Turn one file's declared tool NAMES into real Tools, or refuse by name.
|
|
338
|
+
*
|
|
339
|
+
* Undefined out means the file declared no `tools:` key — a prose-only skill,
|
|
340
|
+
* byte-identical to what this loader has always produced. It never means "the
|
|
341
|
+
* names did not resolve": that throws.
|
|
342
|
+
*/
|
|
343
|
+
function resolveDeclaredTools(skill, passed, registry) {
|
|
344
|
+
if (skill.toolNames === undefined)
|
|
345
|
+
return undefined;
|
|
346
|
+
// The commonest mistake, and the one with the most misleading failure: the
|
|
347
|
+
// file is right, the call site forgot the half a file cannot carry. Refused
|
|
348
|
+
// with the whole list it asked for, so the fix is a copy-paste.
|
|
349
|
+
if (passed === undefined) {
|
|
350
|
+
throw new Error(`skillsFromDir: '${skill.file}' declares tools '${skill.toolNames.join(', ')}', but ` +
|
|
351
|
+
`skillsFromDir was called without a tool registry. A markdown file can NAME a tool; ` +
|
|
352
|
+
`only your code can supply one. Pass them: ` +
|
|
353
|
+
`skillsFromDir(dir, { tools: [${skill.toolNames.join(', ')}] }). ` +
|
|
354
|
+
`(If \`tools\` in this file belongs to another program, rename that key — it is a ` +
|
|
355
|
+
`key this loader now reads.)`);
|
|
356
|
+
}
|
|
357
|
+
const resolved = [];
|
|
358
|
+
for (const name of skill.toolNames) {
|
|
359
|
+
const tool = registry.get(name);
|
|
360
|
+
if (tool === undefined) {
|
|
361
|
+
throw new Error(`skillsFromDir: '${skill.file}' names the tool '${name}', which the \`tools\` registry ` +
|
|
362
|
+
`passed to skillsFromDir does not carry. A skill that loads without the tool it ` +
|
|
363
|
+
`asked for still runs and still sounds sure of itself, so this is refused instead. ` +
|
|
364
|
+
`Add it to the registry, or fix the name — available: ${availableNames(registry)}.`);
|
|
365
|
+
}
|
|
366
|
+
resolved.push(tool);
|
|
367
|
+
}
|
|
368
|
+
return resolved;
|
|
369
|
+
}
|
|
234
370
|
/**
|
|
235
371
|
* Parse one `SKILL.md`. Every refusal names the file — a loader that says
|
|
236
372
|
* "malformed frontmatter" over a directory of forty files has told you nothing.
|
|
237
373
|
*
|
|
238
374
|
* The grammar is deliberately small: an opening `---` line, `key: value` lines
|
|
239
375
|
* (`#` comments and blank lines skipped, single/double quotes stripped), a
|
|
240
|
-
* closing `---` line, then the body.
|
|
241
|
-
*
|
|
242
|
-
*
|
|
376
|
+
* closing `---` line, then the body. A key with NOTHING after the colon opens a
|
|
377
|
+
* block list, whose items are the following `- …` lines. Keys other than the
|
|
378
|
+
* five known ones are IGNORED rather than rejected, so a file carrying extra
|
|
379
|
+
* frontmatter for another tool still loads here.
|
|
243
380
|
*/
|
|
244
381
|
function parseSkillFile(raw, file) {
|
|
245
382
|
// Strip a UTF-8 BOM — an editor artifact, not the author's intent.
|
|
@@ -254,25 +391,9 @@ function parseSkillFile(raw, file) {
|
|
|
254
391
|
throw new Error(`skillsFromDir: '${file}' opens a '---' frontmatter block that is never closed. ` +
|
|
255
392
|
`Add a '---' line after the last frontmatter key.`);
|
|
256
393
|
}
|
|
257
|
-
const fields =
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
if (line.trim().length === 0 || line.trimStart().startsWith('#'))
|
|
261
|
-
continue;
|
|
262
|
-
const separator = line.indexOf(':');
|
|
263
|
-
if (separator === -1) {
|
|
264
|
-
throw new Error(`skillsFromDir: '${file}' frontmatter line ${i + 1} is not 'key: value' — got ` +
|
|
265
|
-
`${JSON.stringify(line)}.`);
|
|
266
|
-
}
|
|
267
|
-
const key = line.slice(0, separator).trim();
|
|
268
|
-
if (key.length === 0) {
|
|
269
|
-
throw new Error(`skillsFromDir: '${file}' frontmatter line ${i + 1} has an empty key — got ` +
|
|
270
|
-
`${JSON.stringify(line)}.`);
|
|
271
|
-
}
|
|
272
|
-
fields.set(key, unquote(line.slice(separator + 1).trim()));
|
|
273
|
-
}
|
|
274
|
-
const name = fields.get('name') ?? '';
|
|
275
|
-
const description = fields.get('description') ?? '';
|
|
394
|
+
const fields = parseFrontmatterFields(lines, closingIndex, file);
|
|
395
|
+
const name = readScalar(fields, 'name', file);
|
|
396
|
+
const description = readScalar(fields, 'description', file);
|
|
276
397
|
const body = lines
|
|
277
398
|
.slice(closingIndex + 1)
|
|
278
399
|
.join('\n')
|
|
@@ -293,7 +414,188 @@ function parseSkillFile(raw, file) {
|
|
|
293
414
|
throw new Error(`skillsFromDir: '${file}' has no body after the closing '---'. The body is what the ` +
|
|
294
415
|
`model reads once it activates the skill.`);
|
|
295
416
|
}
|
|
296
|
-
|
|
417
|
+
const toolNames = readToolNames(fields, file);
|
|
418
|
+
const steps = readSteps(fields, file, toolNames);
|
|
419
|
+
const onSkip = readOnSkip(fields, file, steps);
|
|
420
|
+
return {
|
|
421
|
+
name,
|
|
422
|
+
description,
|
|
423
|
+
body,
|
|
424
|
+
...(toolNames !== undefined && { toolNames }),
|
|
425
|
+
...(steps !== undefined && { steps }),
|
|
426
|
+
...(onSkip !== undefined && { onSkip }),
|
|
427
|
+
file,
|
|
428
|
+
};
|
|
429
|
+
}
|
|
430
|
+
/**
|
|
431
|
+
* The frontmatter lines → `key → value` map.
|
|
432
|
+
*
|
|
433
|
+
* A `- …` line is an ITEM only while a list is open (the line above it was a
|
|
434
|
+
* key with an empty value). Anywhere else it falls through to the `key: value`
|
|
435
|
+
* rule exactly as it always did — so a stray dash in somebody's unknown key
|
|
436
|
+
* keeps loading, and only a deliberate block list is read as one.
|
|
437
|
+
*/
|
|
438
|
+
function parseFrontmatterFields(lines, closingIndex, file) {
|
|
439
|
+
const fields = new Map();
|
|
440
|
+
let openList;
|
|
441
|
+
for (let i = 1; i < closingIndex; i++) {
|
|
442
|
+
const line = lines[i] ?? '';
|
|
443
|
+
const trimmed = line.trim();
|
|
444
|
+
if (trimmed.length === 0 || trimmed.startsWith('#'))
|
|
445
|
+
continue;
|
|
446
|
+
if (openList !== undefined && (trimmed === '-' || trimmed.startsWith('- '))) {
|
|
447
|
+
const item = trimmed === '-' ? '' : trimmed.slice(2).trim();
|
|
448
|
+
const separator = item.indexOf(':');
|
|
449
|
+
openList.push(separator === -1
|
|
450
|
+
? { key: item, line: i + 1 }
|
|
451
|
+
: {
|
|
452
|
+
key: item.slice(0, separator).trim(),
|
|
453
|
+
value: unquote(item.slice(separator + 1).trim()),
|
|
454
|
+
line: i + 1,
|
|
455
|
+
});
|
|
456
|
+
continue;
|
|
457
|
+
}
|
|
458
|
+
const separator = line.indexOf(':');
|
|
459
|
+
if (separator === -1) {
|
|
460
|
+
throw new Error(`skillsFromDir: '${file}' frontmatter line ${i + 1} is not 'key: value' — got ` +
|
|
461
|
+
`${JSON.stringify(line)}.`);
|
|
462
|
+
}
|
|
463
|
+
const key = line.slice(0, separator).trim();
|
|
464
|
+
if (key.length === 0) {
|
|
465
|
+
throw new Error(`skillsFromDir: '${file}' frontmatter line ${i + 1} has an empty key — got ` +
|
|
466
|
+
`${JSON.stringify(line)}.`);
|
|
467
|
+
}
|
|
468
|
+
const value = unquote(line.slice(separator + 1).trim());
|
|
469
|
+
if (value.length === 0) {
|
|
470
|
+
// An empty value OPENS a list. With no items after it the field stays an
|
|
471
|
+
// empty list, which every reader below treats exactly as the empty string
|
|
472
|
+
// it used to be — so `name:` with nothing after it still says "missing
|
|
473
|
+
// 'name'", not something new about lists.
|
|
474
|
+
const items = [];
|
|
475
|
+
openList = items;
|
|
476
|
+
fields.set(key, { kind: 'list', items });
|
|
477
|
+
}
|
|
478
|
+
else {
|
|
479
|
+
openList = undefined;
|
|
480
|
+
fields.set(key, { kind: 'scalar', text: value });
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
return fields;
|
|
484
|
+
}
|
|
485
|
+
/** A single-valued key, as it always read. An empty block list reads as '' — a
|
|
486
|
+
* key with nothing under it never carried a value in the first place. */
|
|
487
|
+
function readScalar(fields, key, file) {
|
|
488
|
+
const field = fields.get(key);
|
|
489
|
+
if (field === undefined)
|
|
490
|
+
return '';
|
|
491
|
+
if (field.kind === 'scalar')
|
|
492
|
+
return field.text;
|
|
493
|
+
if (field.items.length === 0)
|
|
494
|
+
return '';
|
|
495
|
+
throw new Error(`skillsFromDir: '${file}' frontmatter '${key}' is a list, and '${key}' takes one value. ` +
|
|
496
|
+
`Write it as '${key}: <value>' on one line.`);
|
|
497
|
+
}
|
|
498
|
+
/**
|
|
499
|
+
* `tools:` → the declared names, or undefined when the key is absent.
|
|
500
|
+
*
|
|
501
|
+
* Two spellings, because both read naturally at the size they are for:
|
|
502
|
+
* `tools: a, b` for the two-tool skill, and a block list once there are six.
|
|
503
|
+
*/
|
|
504
|
+
function readToolNames(fields, file) {
|
|
505
|
+
const field = fields.get('tools');
|
|
506
|
+
if (field === undefined)
|
|
507
|
+
return undefined;
|
|
508
|
+
const names = field.kind === 'scalar'
|
|
509
|
+
? field.text
|
|
510
|
+
.split(',')
|
|
511
|
+
.map((n) => unquote(n.trim()))
|
|
512
|
+
.filter((n) => n.length > 0)
|
|
513
|
+
: field.items.map((item) => {
|
|
514
|
+
if (item.value !== undefined) {
|
|
515
|
+
throw new Error(`skillsFromDir: '${file}' line ${item.line}: a 'tools' item is a NAME, not a ` +
|
|
516
|
+
`pair — write '- ${item.key}'. (Did you mean to put this under 'steps', where ` +
|
|
517
|
+
`each item is '- <tool>: <why>'?)`);
|
|
518
|
+
}
|
|
519
|
+
return item.key;
|
|
520
|
+
});
|
|
521
|
+
if (names.length === 0) {
|
|
522
|
+
throw new Error(`skillsFromDir: '${file}' declares 'tools' with no names. Say what you mean and omit ` +
|
|
523
|
+
`the key — a skill with no tools is exactly what this loader has always produced. ` +
|
|
524
|
+
`Otherwise: 'tools: lookup_order, issue_refund', or a '- <name>' block list.`);
|
|
525
|
+
}
|
|
526
|
+
const seen = new Set();
|
|
527
|
+
for (const name of names) {
|
|
528
|
+
if (seen.has(name)) {
|
|
529
|
+
throw new Error(`skillsFromDir: '${file}' lists the tool '${name}' twice in 'tools'. Each tool ` +
|
|
530
|
+
`belongs to a skill once (a skill's tools must be unique within itself); repeat it ` +
|
|
531
|
+
`in 'steps' instead if the procedure runs it twice.`);
|
|
532
|
+
}
|
|
533
|
+
seen.add(name);
|
|
534
|
+
}
|
|
535
|
+
return names;
|
|
536
|
+
}
|
|
537
|
+
/**
|
|
538
|
+
* `steps:` → the procedure, as data.
|
|
539
|
+
*
|
|
540
|
+
* Validated against the file's OWN `tools` here, ahead of `defineSkill`'s
|
|
541
|
+
* identical check, for one reason: this message can name the FILE and the LINE.
|
|
542
|
+
* `defineSkill` sees a skill id and cannot.
|
|
543
|
+
*/
|
|
544
|
+
function readSteps(fields, file, toolNames) {
|
|
545
|
+
const field = fields.get('steps');
|
|
546
|
+
if (field === undefined)
|
|
547
|
+
return undefined;
|
|
548
|
+
if (field.kind === 'scalar') {
|
|
549
|
+
throw new Error(`skillsFromDir: '${file}' writes 'steps' on one line, and a procedure is an ORDERED ` +
|
|
550
|
+
`list of pairs. Write it as a block:\nsteps:\n - lookup_order: look up the order ` +
|
|
551
|
+
`first\n - issue_refund: refund only what the lookup found`);
|
|
552
|
+
}
|
|
553
|
+
if (field.items.length === 0) {
|
|
554
|
+
throw new Error(`skillsFromDir: '${file}' declares 'steps' with no items. Say what you mean and omit ` +
|
|
555
|
+
`the key — a skill without steps is byte-identical to one that never heard of them.`);
|
|
556
|
+
}
|
|
557
|
+
if (toolNames === undefined) {
|
|
558
|
+
throw new Error(`skillsFromDir: '${file}' declares 'steps' but no 'tools'. Every step runs one of the ` +
|
|
559
|
+
`skill's own tools, so a sequence with nothing to sequence can never engage. Add ` +
|
|
560
|
+
`'tools: …', or drop 'steps'.`);
|
|
561
|
+
}
|
|
562
|
+
const declared = new Set(toolNames);
|
|
563
|
+
return field.items.map((item) => {
|
|
564
|
+
if (item.value === undefined || item.value.length === 0) {
|
|
565
|
+
throw new Error(`skillsFromDir: '${file}' line ${item.line}: every step is '- <tool>: <why>' and ` +
|
|
566
|
+
`this one has no why. The note is the sentence the model reads about why the step ` +
|
|
567
|
+
`exists — a step without one is a force-march instruction, and the note is the ` +
|
|
568
|
+
`whole point.`);
|
|
569
|
+
}
|
|
570
|
+
if (item.key.length === 0) {
|
|
571
|
+
throw new Error(`skillsFromDir: '${file}' line ${item.line}: this step names no tool. Every step is ` +
|
|
572
|
+
`'- <tool>: <why>'.`);
|
|
573
|
+
}
|
|
574
|
+
if (!declared.has(item.key)) {
|
|
575
|
+
throw new Error(`skillsFromDir: '${file}' line ${item.line}: step '${item.key}' is not in this ` +
|
|
576
|
+
`file's 'tools' (${toolNames.join(', ')}). Steps may only sequence the skill's own ` +
|
|
577
|
+
`tools — add it to 'tools', or fix the name. Everything else the agent has stays ` +
|
|
578
|
+
`available as an escape hatch, unsequenced.`);
|
|
579
|
+
}
|
|
580
|
+
return { tool: item.key, note: item.value };
|
|
581
|
+
});
|
|
582
|
+
}
|
|
583
|
+
/** `onSkip:` → the skip policy. Refused here rather than at `defineSkill` so
|
|
584
|
+
* the message can name the file the author has to open. */
|
|
585
|
+
function readOnSkip(fields, file, steps) {
|
|
586
|
+
if (fields.get('onSkip') === undefined)
|
|
587
|
+
return undefined;
|
|
588
|
+
const raw = readScalar(fields, 'onSkip', file);
|
|
589
|
+
if (steps === undefined) {
|
|
590
|
+
throw new Error(`skillsFromDir: '${file}' declares 'onSkip' with no 'steps'. It says what a SKIPPED ` +
|
|
591
|
+
`step does, and this file declares no steps. Add 'steps:', or drop 'onSkip'.`);
|
|
592
|
+
}
|
|
593
|
+
if (raw !== 'advance' && raw !== 'hold') {
|
|
594
|
+
throw new Error(`skillsFromDir: '${file}' declares onSkip '${raw}', which is not a policy this ` +
|
|
595
|
+
`library has. The two are 'advance' (record the skip and move on — the default) and ` +
|
|
596
|
+
`'hold' (record the skip and keep the step current).`);
|
|
597
|
+
}
|
|
598
|
+
return raw;
|
|
297
599
|
}
|
|
298
600
|
/** Strip one layer of matching single or double quotes from a YAML-ish scalar. */
|
|
299
601
|
function unquote(value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skillsFromDir.js","sourceRoot":"","sources":["../../../src/lib/injection-engine/skillsFromDir.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skillsFromDir.js","sourceRoot":"","sources":["../../../src/lib/injection-engine/skillsFromDir.ts"],"names":[],"mappings":"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"}
|
|
@@ -197,6 +197,11 @@ export declare class AgentBuilder {
|
|
|
197
197
|
* Undefined for every agent that did not ask for it, which is what makes
|
|
198
198
|
* the feature byte-identical when unused. */
|
|
199
199
|
private evidenceGate?;
|
|
200
|
+
/** The tool posture (9.36.0) — set by `.toolsFromActiveSkill()`. False for
|
|
201
|
+
* every agent that did not ask for it, and the stamp it gates is the ONLY
|
|
202
|
+
* thing it does, which is what makes the feature byte-identical when
|
|
203
|
+
* unused. */
|
|
204
|
+
private toolsFromActiveSkillValue;
|
|
200
205
|
private outputSchemaRetries;
|
|
201
206
|
private outputSchemaStrategy;
|
|
202
207
|
private outputSchemaJson?;
|
|
@@ -924,6 +929,63 @@ export declare class AgentBuilder {
|
|
|
924
929
|
* .build();
|
|
925
930
|
*/
|
|
926
931
|
namesAndNumbersFromEvidence(opts?: NamesAndNumbersOptions): this;
|
|
932
|
+
/**
|
|
933
|
+
* Offer a skill's tools **only while that skill is active** (9.36.0). One
|
|
934
|
+
* line, for every skill on the agent.
|
|
935
|
+
*
|
|
936
|
+
* ## What it fixes
|
|
937
|
+
*
|
|
938
|
+
* By default a skill's `tools` go into the agent's STATIC tool list at build
|
|
939
|
+
* time, so the model can see and call them from iteration 1 — activated or
|
|
940
|
+
* not. Narrowing that was a per-skill field (`defineSkill({ autoActivate:
|
|
941
|
+
* 'currentSkill' })`) you had to remember on every skill; the one you forgot
|
|
942
|
+
* kept its tools on the wire for the life of the agent, and nothing said so.
|
|
943
|
+
* This says it once, for all of them.
|
|
944
|
+
*
|
|
945
|
+
* With it on, a skill's tools enter the request on the iterations where the
|
|
946
|
+
* skill is active — through the same readmission path `autoActivate` has used
|
|
947
|
+
* since v2.5 — and nowhere else. Everything else is untouched: `read_skill`,
|
|
948
|
+
* `list_skills`, your `.tool()` registry, provider tools and every other
|
|
949
|
+
* active skill's tools stay offered, because a scoped agent still has to
|
|
950
|
+
* handle the input nobody imagined.
|
|
951
|
+
*
|
|
952
|
+
* ## Not a posture dial, and why
|
|
953
|
+
*
|
|
954
|
+
* `.skillGraph({ strictness })` and `.namesAndNumbersFromEvidence({ posture })`
|
|
955
|
+
* take three values because there is a real middle there — record it, revise
|
|
956
|
+
* it, refuse it. The wire has no middle: a tool's schema is either in the
|
|
957
|
+
* request or it is not, and "record that we sent it" is just sending it. A
|
|
958
|
+
* three-value dial here would ship one behaviour under two names.
|
|
959
|
+
*
|
|
960
|
+
* ## What it does NOT do
|
|
961
|
+
*
|
|
962
|
+
* It governs the OFFER, not dispatch. A tool stays resolvable by name so an
|
|
963
|
+
* active skill's call lands — the split `autoActivate` has always had. If you
|
|
964
|
+
* need execution itself gated (an inactive skill's tool refused even when the
|
|
965
|
+
* model names it from a restored transcript), that is a `PermissionChecker`
|
|
966
|
+
* or a `gatedTools` provider, and it is a different question: authority to
|
|
967
|
+
* run, not what the model was shown.
|
|
968
|
+
*
|
|
969
|
+
* ## Interaction with the per-skill flag and with `scopeTools`
|
|
970
|
+
*
|
|
971
|
+
* All three stamp the same field, and none can contradict another:
|
|
972
|
+
* `autoActivate` has one legal value, so a skill can ask to be scoped and can
|
|
973
|
+
* never ask to be exempt. A skill that declared its own keeps it; the graph's
|
|
974
|
+
* `scopeTools: true` fills in the skills it wires; this fills in the rest.
|
|
975
|
+
* Turning it on can only remove tools from the static list, never add one.
|
|
976
|
+
*
|
|
977
|
+
* **Opt-in in 9.x.** The default is unchanged — an agent that never calls
|
|
978
|
+
* this builds byte-identical bytes and emits byte-identical events. The
|
|
979
|
+
* default flips in 10.0.0, the same ledger `skillGraph({ scopeTools })` is on.
|
|
980
|
+
*
|
|
981
|
+
* @example
|
|
982
|
+
* const skills = await skillsFromDir('./skills', { tools: [lookupOrder, issueRefund] });
|
|
983
|
+
* const agent = Agent.create({ provider, model })
|
|
984
|
+
* .skills({ list: () => skills })
|
|
985
|
+
* .toolsFromActiveSkill() // billing's tools appear when billing does
|
|
986
|
+
* .build();
|
|
987
|
+
*/
|
|
988
|
+
toolsFromActiveSkill(): this;
|
|
927
989
|
outputSchema<T>(parser: OutputSchemaParser<T>, opts?: OutputSchemaOptions): this;
|
|
928
990
|
/**
|
|
929
991
|
* 3-tier degradation for output-schema validation failures. Pairs
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/agent/AgentBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EAExB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"AgentBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/agent/AgentBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildToolRegistry.d.ts","sourceRoot":"","sources":["../../../../src/core/agent/buildToolRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAyB,KAAK,IAAI,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEvF,MAAM,WAAW,qBAAqB;IACpC;kEAC8D;IAC9D,QAAQ,CAAC,iBAAiB,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACzD;;;0CAGsC;IACtC,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACnD;;uEAEmE;IACnE,QAAQ,CAAC,WAAW,EAAE,SAAS,aAAa,EAAE,CAAC;CAChD;AAED,4EAA4E;AAC5E,MAAM,WAAW,wBAAwB;IACvC;;;;;OAKG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,SAAS,iBAAiB,EAAE,EACtC,UAAU,EAAE,SAAS,SAAS,EAAE,EAChC,OAAO,GAAE,wBAA6B,GACrC,qBAAqB,
|
|
1
|
+
{"version":3,"file":"buildToolRegistry.d.ts","sourceRoot":"","sources":["../../../../src/core/agent/buildToolRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAyB,KAAK,IAAI,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEvF,MAAM,WAAW,qBAAqB;IACpC;kEAC8D;IAC9D,QAAQ,CAAC,iBAAiB,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACzD;;;0CAGsC;IACtC,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACnD;;uEAEmE;IACnE,QAAQ,CAAC,WAAW,EAAE,SAAS,aAAa,EAAE,CAAC;CAChD;AAED,4EAA4E;AAC5E,MAAM,WAAW,wBAAwB;IACvC;;;;;OAKG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,SAAS,iBAAiB,EAAE,EACtC,UAAU,EAAE,SAAS,SAAS,EAAE,EAChC,OAAO,GAAE,wBAA6B,GACrC,qBAAqB,CAwJvB"}
|