agentfootprint 1.15.0 → 1.17.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 (88) hide show
  1. package/dist/esm/index.js +2 -0
  2. package/dist/esm/index.js.map +1 -1
  3. package/dist/esm/lib/call/helpers.js +25 -0
  4. package/dist/esm/lib/call/helpers.js.map +1 -1
  5. package/dist/esm/lib/call/toolExecutionSubflow.js +13 -13
  6. package/dist/esm/lib/call/toolExecutionSubflow.js.map +1 -1
  7. package/dist/esm/lib/concepts/AgentBuilder.js +77 -1
  8. package/dist/esm/lib/concepts/AgentBuilder.js.map +1 -1
  9. package/dist/esm/lib/skills/defineSkill.js +13 -0
  10. package/dist/esm/lib/skills/defineSkill.js.map +1 -0
  11. package/dist/esm/lib/skills/index.js +5 -0
  12. package/dist/esm/lib/skills/index.js.map +1 -0
  13. package/dist/esm/lib/skills/registry.js +252 -0
  14. package/dist/esm/lib/skills/registry.js.map +1 -0
  15. package/dist/esm/lib/skills/renderBody.js +34 -0
  16. package/dist/esm/lib/skills/renderBody.js.map +1 -0
  17. package/dist/esm/lib/skills/surfaceMode.js +52 -0
  18. package/dist/esm/lib/skills/surfaceMode.js.map +1 -0
  19. package/dist/esm/lib/skills/types.js +2 -0
  20. package/dist/esm/lib/skills/types.js.map +1 -0
  21. package/dist/esm/providers/prompt/skillBasedPrompt.js.map +1 -1
  22. package/dist/esm/skills.barrel.js +42 -0
  23. package/dist/esm/skills.barrel.js.map +1 -0
  24. package/dist/esm/tools/ToolRegistry.js +19 -1
  25. package/dist/esm/tools/ToolRegistry.js.map +1 -1
  26. package/dist/esm/types/index.js.map +1 -1
  27. package/dist/index.js +6 -1
  28. package/dist/index.js.map +1 -1
  29. package/dist/lib/call/helpers.js +25 -0
  30. package/dist/lib/call/helpers.js.map +1 -1
  31. package/dist/lib/call/toolExecutionSubflow.js +13 -13
  32. package/dist/lib/call/toolExecutionSubflow.js.map +1 -1
  33. package/dist/lib/concepts/AgentBuilder.js +77 -1
  34. package/dist/lib/concepts/AgentBuilder.js.map +1 -1
  35. package/dist/lib/skills/defineSkill.js +17 -0
  36. package/dist/lib/skills/defineSkill.js.map +1 -0
  37. package/dist/lib/skills/index.js +15 -0
  38. package/dist/lib/skills/index.js.map +1 -0
  39. package/dist/lib/skills/registry.js +256 -0
  40. package/dist/lib/skills/registry.js.map +1 -0
  41. package/dist/lib/skills/renderBody.js +39 -0
  42. package/dist/lib/skills/renderBody.js.map +1 -0
  43. package/dist/lib/skills/surfaceMode.js +58 -0
  44. package/dist/lib/skills/surfaceMode.js.map +1 -0
  45. package/dist/lib/skills/types.js +3 -0
  46. package/dist/lib/skills/types.js.map +1 -0
  47. package/dist/providers/prompt/skillBasedPrompt.js.map +1 -1
  48. package/dist/skills.barrel.js +48 -0
  49. package/dist/skills.barrel.js.map +1 -0
  50. package/dist/tools/ToolRegistry.js +19 -1
  51. package/dist/tools/ToolRegistry.js.map +1 -1
  52. package/dist/types/core/providers.d.ts +8 -0
  53. package/dist/types/core/providers.d.ts.map +1 -1
  54. package/dist/types/index.d.ts +3 -1
  55. package/dist/types/index.d.ts.map +1 -1
  56. package/dist/types/index.js.map +1 -1
  57. package/dist/types/lib/call/helpers.d.ts.map +1 -1
  58. package/dist/types/lib/concepts/AgentBuilder.d.ts +27 -1
  59. package/dist/types/lib/concepts/AgentBuilder.d.ts.map +1 -1
  60. package/dist/types/lib/skills/defineSkill.d.ts +10 -0
  61. package/dist/types/lib/skills/defineSkill.d.ts.map +1 -0
  62. package/dist/types/lib/skills/index.d.ts +6 -0
  63. package/dist/types/lib/skills/index.d.ts.map +1 -0
  64. package/dist/types/lib/skills/registry.d.ts +98 -0
  65. package/dist/types/lib/skills/registry.d.ts.map +1 -0
  66. package/dist/types/lib/skills/renderBody.d.ts +22 -0
  67. package/dist/types/lib/skills/renderBody.d.ts.map +1 -0
  68. package/dist/types/lib/skills/surfaceMode.d.ts +34 -0
  69. package/dist/types/lib/skills/surfaceMode.d.ts.map +1 -0
  70. package/dist/types/lib/skills/types.d.ts +164 -0
  71. package/dist/types/lib/skills/types.d.ts.map +1 -0
  72. package/dist/types/providers/index.d.ts +1 -1
  73. package/dist/types/providers/index.d.ts.map +1 -1
  74. package/dist/types/providers/prompt/index.d.ts +1 -1
  75. package/dist/types/providers/prompt/index.d.ts.map +1 -1
  76. package/dist/types/providers/prompt/skillBasedPrompt.d.ts +2 -2
  77. package/dist/types/providers/prompt/skillBasedPrompt.d.ts.map +1 -1
  78. package/dist/types/providers.barrel.d.ts +1 -1
  79. package/dist/types/providers.barrel.d.ts.map +1 -1
  80. package/dist/types/skills.barrel.d.ts +43 -0
  81. package/dist/types/skills.barrel.d.ts.map +1 -0
  82. package/dist/types/tools/ToolRegistry.d.ts +12 -2
  83. package/dist/types/tools/ToolRegistry.d.ts.map +1 -1
  84. package/dist/types/types/index.d.ts +1 -1
  85. package/dist/types/types/index.d.ts.map +1 -1
  86. package/dist/types/types/tools.d.ts +44 -1
  87. package/dist/types/types/tools.d.ts.map +1 -1
  88. package/package.json +6 -1
package/dist/esm/index.js CHANGED
@@ -30,6 +30,8 @@ export { LLMError } from './types';
30
30
  export { agentLoop } from './executor';
31
31
  // ── Instructions (also available from agentfootprint/instructions) ──
32
32
  export { defineInstruction, AgentPattern, quickBind } from './instructions.barrel';
33
+ // ── Skills (also available from agentfootprint/skills) ──
34
+ export { defineSkill, SkillRegistry } from './skills.barrel';
33
35
  // ── Recorders (also available from agentfootprint/observe) ──
34
36
  export { TokenRecorder, ToolUsageRecorder, TurnRecorder, CostRecorder } from './observe.barrel';
35
37
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,+DAA+D;AAC/D,OAAO,EACL,KAAK,EACL,WAAW,EACX,OAAO,EACP,aAAa,EACb,GAAG,EACH,SAAS,EACT,SAAS,EACT,eAAe,EACf,KAAK,EACL,WAAW,EACX,QAAQ,EACR,cAAc,EACd,WAAW,EACX,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAQpB,sEAAsE;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,+DAA+D;AAC/D,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE7D,iEAAiE;AACjE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAc3E,+DAA+D;AAC/D,OAAO,EACL,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,WAAW,EACX,QAAQ,GACT,MAAM,SAAS,CAAC;AAEjB,+DAA+D;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AA0BnC,8DAA8D;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,uEAAuE;AACvE,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGnF,+DAA+D;AAC/D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,+DAA+D;AAC/D,OAAO,EACL,KAAK,EACL,WAAW,EACX,OAAO,EACP,aAAa,EACb,GAAG,EACH,SAAS,EACT,SAAS,EACT,eAAe,EACf,KAAK,EACL,WAAW,EACX,QAAQ,EACR,cAAc,EACd,WAAW,EACX,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAQpB,sEAAsE;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,+DAA+D;AAC/D,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE7D,iEAAiE;AACjE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAc3E,+DAA+D;AAC/D,OAAO,EACL,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,WAAW,EACX,QAAQ,GACT,MAAM,SAAS,CAAC;AAEjB,+DAA+D;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AA4BnC,8DAA8D;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,uEAAuE;AACvE,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGnF,2DAA2D;AAC3D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAS7D,+DAA+D;AAC/D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC"}
@@ -235,6 +235,13 @@ export async function executeToolCalls(toolCalls, registry, messages, toolProvid
235
235
  try {
236
236
  const execResult = await toolProvider.execute(toolCall, signal);
237
237
  resultContent = execResult.content;
238
+ // Apply optional decision-scope update surfaced by the inner tool.
239
+ // Shallow-merge into the shared `decision` ref so the next
240
+ // iteration's InstructionsToLLM sees the new state. See
241
+ // `ToolResult.decisionUpdate` + `ToolExecutionResult.decisionUpdate`.
242
+ if (decision && execResult.decisionUpdate) {
243
+ Object.assign(decision, execResult.decisionUpdate);
244
+ }
238
245
  }
239
246
  catch (err) {
240
247
  const msg = err instanceof Error ? err.message : String(err);
@@ -290,6 +297,11 @@ export async function executeToolCalls(toolCalls, registry, messages, toolProvid
290
297
  if (isAskHumanResult(execResult)) {
291
298
  askHumanPause = { question: execResult.question, toolCallId: toolCall.id };
292
299
  }
300
+ // Apply optional decision-scope update surfaced by the tool.
301
+ // See `ToolResult.decisionUpdate` for the full contract.
302
+ if (decision && execResult.decisionUpdate) {
303
+ Object.assign(decision, execResult.decisionUpdate);
304
+ }
293
305
  // Check for InstructedToolResult (runtime instructions/followUps)
294
306
  const instructed = execResult;
295
307
  runtimeInstructions = instructed.instructions;
@@ -405,6 +417,11 @@ async function executeOneToolCall(toolCall, registry, toolProvider, signal, inst
405
417
  try {
406
418
  const execResult = await toolProvider.execute(toolCall, signal);
407
419
  resultContent = execResult.content;
420
+ // Same merge as the sequential path — preserves decisionUpdate from
421
+ // any built-in ToolProvider (staticTools, gatedTools, etc.).
422
+ if (decision && execResult.decisionUpdate) {
423
+ Object.assign(decision, execResult.decisionUpdate);
424
+ }
408
425
  }
409
426
  catch (err) {
410
427
  const msg = err instanceof Error ? err.message : String(err);
@@ -452,6 +469,14 @@ async function executeOneToolCall(toolCall, registry, toolProvider, signal, inst
452
469
  if (isAskHumanResult(execResult)) {
453
470
  askHumanMarker = { question: execResult.question, toolCallId: toolCall.id };
454
471
  }
472
+ // Apply optional decision-scope update returned by the tool. Shallow
473
+ // merge into the shared `decision` ref so downstream
474
+ // AgentInstruction.activeWhen predicates see the new state on the
475
+ // next iteration. Used by SkillRegistry.autoActivate and any
476
+ // consumer-authored tool that flips a routing flag.
477
+ if (decision && execResult.decisionUpdate) {
478
+ Object.assign(decision, execResult.decisionUpdate);
479
+ }
455
480
  const instructed = execResult;
456
481
  runtimeInstructions = instructed.instructions;
457
482
  runtimeFollowUps = instructed.followUps;
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../src/lib/call/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../src/lib/call/helpers.ts"],"names":[],"mappings":"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"}
@@ -41,16 +41,18 @@ export function buildToolExecutionSubflow(config) {
41
41
  const messages = scope.currentMessages ?? [];
42
42
  // $getEnv() is a TypedScope proxy method — always available, not in state interface
43
43
  const signal = scope.$getEnv()?.signal;
44
- // Copy decision scope for `decide` field mutations.
45
- // decide() functions mutate the copy in-place; we write it back as updatedDecision.
46
- // currentDecision may be undefined when initial decision is {} (empty objects
47
- // are dropped by footprintjs inputMapper). Use {} as fallback when instructions are configured.
44
+ // Copy decision scope for tool-driven mutations.
45
+ // Two mutation paths feed into this ref:
46
+ // 1. `decide()` inside tool flowcharts mutates the ref in-place
47
+ // 2. `ToolResult.decisionUpdate` shallow-merged by executeToolCalls
48
+ // Always allocate `{}` when the scope arrives without a decision so
49
+ // autoActivate-style decision writes land on the first turn too
50
+ // (footprintjs inputMapper drops empty-object decisions; without an
51
+ // allocation here, a skill's `read_skill` decisionUpdate would be
52
+ // dropped on the first iteration — surfaced by the 1.17.0 test
53
+ // `autoActivate — scenario: end-to-end: read_skill flips decision`).
48
54
  const rawDecision = scope.currentDecision;
49
- const decisionRef = rawDecision
50
- ? { ...rawDecision }
51
- : instructionConfig?.decideFunctions?.size
52
- ? {}
53
- : undefined;
55
+ const decisionRef = rawDecision ? { ...rawDecision } : {};
54
56
  // `helpers.executeToolCalls` takes an `onStreamEvent` callback in its
55
57
  // instruction config for `tool_start` / `tool_end` lifecycle events.
56
58
  // We construct that callback as a thin scope-emit wrapper so events
@@ -75,11 +77,9 @@ export function buildToolExecutionSubflow(config) {
75
77
  scope.toolResultMessages = resultMessages.slice(messages.length);
76
78
  scope.updatedLoopCount = (scope.currentLoopCount ?? 0) + 1;
77
79
  // Write mutated decision as output so it flows through outputMapper.
78
- // Always write when decisionRef exists — even if no decide() ran, the
80
+ // Always writes — even if no decide() and no decisionUpdate ran, the
79
81
  // decision may need to propagate for the next iteration's InstructionsToLLM.
80
- if (decisionRef) {
81
- scope.updatedDecision = decisionRef;
82
- }
82
+ scope.updatedDecision = decisionRef;
83
83
  // If ask_human was called, store pause data on scope and return it.
84
84
  // Engine: non-void return from isPausable stage → PauseSignal with this as pauseData.
85
85
  if (askHumanPause) {
@@ -1 +1 @@
1
- {"version":3,"file":"toolExecutionSubflow.js","sourceRoot":"","sources":["../../../../src/lib/call/toolExecutionSubflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toolExecutionSubflow.js","sourceRoot":"","sources":["../../../../src/lib/call/toolExecutionSubflow.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,8 @@ export class Agent {
25
25
  agentPattern = AgentPattern.Regular;
26
26
  overrides = new Map();
27
27
  agentInstructions = [];
28
+ skillsPromptAddition;
29
+ skillsTools;
28
30
  initialDecisionScope;
29
31
  enableStreaming = false;
30
32
  enableVerboseNarrative = false;
@@ -250,6 +252,74 @@ export class Agent {
250
252
  this.agentInstructions.push(i);
251
253
  return this;
252
254
  }
255
+ /**
256
+ * Attach a `SkillRegistry` — a typed, versioned bundle of procedures
257
+ * the model can discover via `list_skills` and activate via
258
+ * `read_skill(id)`. Registry's skills are wired through the existing
259
+ * AgentInstruction pipeline (each skill IS-A AgentInstruction) so
260
+ * per-skill `activeWhen` / `prompt` / `tools` / `onToolResult` rules
261
+ * fire exactly as with plain `.instruction(...)`.
262
+ *
263
+ * Idempotent: calling `.skills()` twice REPLACES the prior registry
264
+ * (panel #6). For additive composition, compose registries yourself
265
+ * before passing them in.
266
+ *
267
+ * @example
268
+ * ```ts
269
+ * const registry = new SkillRegistry<MyDecision>({ surfaceMode: 'auto' });
270
+ * registry.register(defineSkill({ id: 'port-triage', ... }));
271
+ *
272
+ * Agent.create({ provider: anthropic('claude-sonnet-4-5') })
273
+ * .skills(registry)
274
+ * .build();
275
+ * ```
276
+ */
277
+ skills(registry) {
278
+ // Drop any previously-mounted skill state — idempotent replace.
279
+ this.agentInstructions = this.agentInstructions.filter((i) => !i.__skillMount);
280
+ if (this.skillsTools) {
281
+ for (const t of this.skillsTools)
282
+ this.registry.unregister(t.id);
283
+ }
284
+ this.skillsPromptAddition = undefined;
285
+ this.skillsTools = undefined;
286
+ // 1. Skill bodies → AgentInstructions (per-skill prompt/tools/onToolResult/activeWhen)
287
+ for (const instr of registry.toInstructions()) {
288
+ // Mark so a later .skills() call can strip this one without
289
+ // affecting hand-registered instructions.
290
+ const tagged = { ...instr, __skillMount: true };
291
+ this.agentInstructions.push(tagged);
292
+ }
293
+ // 2. Auto-generated tools (list_skills, read_skill). Always registered —
294
+ // these are the discovery path for the model and must remain callable
295
+ // regardless of any skill's `activeWhen`. The `has()` guard handles
296
+ // the edge case where a caller registered a tool with the same id
297
+ // manually BEFORE calling `.skills()`.
298
+ const { listSkills, readSkill } = registry.toTools();
299
+ this.skillsTools = [listSkills, readSkill];
300
+ if (!this.registry.has(listSkills.id))
301
+ this.registry.register(listSkills);
302
+ if (!this.registry.has(readSkill.id))
303
+ this.registry.register(readSkill);
304
+ // 3. System-prompt fragment (only under 'system-prompt' / 'both' modes).
305
+ // Stored as a separate field so it can be stripped if `.skills()` is
306
+ // called again with a different registry.
307
+ const fragment = registry.toPromptFragment();
308
+ if (fragment)
309
+ this.skillsPromptAddition = fragment;
310
+ // 4. autoActivate requires Dynamic pattern to take effect WITHIN a
311
+ // single turn — Regular (default) pattern assembles instructions
312
+ // once at turn start and loops straight back to CallLLM, so a
313
+ // decisionUpdate emitted mid-turn would only affect the NEXT
314
+ // user turn. Auto-switch to Dynamic so skill-gated tool visibility
315
+ // works as designed. Consumers who explicitly want Regular
316
+ // behavior can call `.pattern(AgentPattern.Regular)` AFTER
317
+ // `.skills(registry)` to override.
318
+ if (registry.hasAutoActivate && this.agentPattern === AgentPattern.Regular) {
319
+ this.agentPattern = AgentPattern.Dynamic;
320
+ }
321
+ return this;
322
+ }
253
323
  /**
254
324
  * Set the initial Decision Scope values.
255
325
  * Tool handlers update these values; InstructionsToLLM reads them
@@ -303,10 +373,16 @@ export class Agent {
303
373
  }
304
374
  /** Build the agent and return a runner. */
305
375
  build() {
376
+ // If `.skills(registry)` supplied a system-prompt fragment, append
377
+ // it to the user's base prompt. Separated with a blank line so the
378
+ // two blocks read as distinct sections to the model.
379
+ const effectivePrompt = this.skillsPromptAddition
380
+ ? [this.systemPromptText, this.skillsPromptAddition].filter(Boolean).join('\n\n')
381
+ : this.systemPromptText;
306
382
  return new AgentRunner({
307
383
  provider: this.provider,
308
384
  name: this.agentName,
309
- systemPromptText: this.systemPromptText,
385
+ systemPromptText: effectivePrompt,
310
386
  registry: this.registry,
311
387
  maxIterations: this.maxIter,
312
388
  recorders: [...this.recorders],
@@ -1 +1 @@
1
- {"version":3,"file":"AgentBuilder.js","sourceRoot":"","sources":["../../../../src/lib/concepts/AgentBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentBuilder.js","sourceRoot":"","sources":["../../../../src/lib/concepts/AgentBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export function defineSkill(skill) {
2
+ // Dev-mode: warn on empty description (panel #3: descriptions ≤200 chars
3
+ // are load-bearing for classification; empty strings are almost certainly
4
+ // a bug).
5
+ if (typeof process !== 'undefined' &&
6
+ process.env?.['NODE_ENV'] !== 'production' &&
7
+ skill.description.trim().length === 0) {
8
+ // eslint-disable-next-line no-console
9
+ console.warn(`[agentfootprint] defineSkill('${skill.id}'): empty description — the model classifies skills by description, an empty one will never be picked.`);
10
+ }
11
+ return skill;
12
+ }
13
+ //# sourceMappingURL=defineSkill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defineSkill.js","sourceRoot":"","sources":["../../../../src/lib/skills/defineSkill.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,WAAW,CAAsB,KAAuB;IACtE,yEAAyE;IACzE,0EAA0E;IAC1E,UAAU;IACV,IACE,OAAO,OAAO,KAAK,WAAW;QAC9B,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,YAAY;QAC1C,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EACrC,CAAC;QACD,sCAAsC;QACtC,OAAO,CAAC,IAAI,CACV,iCAAiC,KAAK,CAAC,EAAE,wGAAwG,CAClJ,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { defineSkill } from './defineSkill';
2
+ export { SkillRegistry } from './registry';
3
+ export { renderSkillBody, resolveSkillBody } from './renderBody';
4
+ export { resolveSurfaceMode, parseAnthropicVersion, isClaudeStrongAdherence } from './surfaceMode';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/skills/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,252 @@
1
+ import { defineTool } from '../../tools';
2
+ import { resolveSkillBody } from './renderBody';
3
+ import { resolveSurfaceMode } from './surfaceMode';
4
+ const DEFAULT_PROMPT_HEADER = 'Available skills — call `read_skill({ id })` to activate one:';
5
+ export class SkillRegistry {
6
+ skills = new Map();
7
+ options;
8
+ constructor(options = {}) {
9
+ this.options = {
10
+ surfaceMode: options.surfaceMode ?? 'tool-only',
11
+ promptHeader: options.promptHeader ?? DEFAULT_PROMPT_HEADER,
12
+ ...(options.providerHint && { providerHint: options.providerHint }),
13
+ ...(options.autoActivate && { autoActivate: options.autoActivate }),
14
+ };
15
+ }
16
+ /**
17
+ * True when `autoActivate` is configured — exposed so consumers
18
+ * writing custom builders can check without depending on the private
19
+ * options field.
20
+ */
21
+ get hasAutoActivate() {
22
+ return !!this.options.autoActivate;
23
+ }
24
+ /** The configured autoActivate (or undefined). Exposed for advanced use. */
25
+ get autoActivate() {
26
+ return this.options.autoActivate;
27
+ }
28
+ /**
29
+ * Register a skill.
30
+ *
31
+ * Behavior on duplicate `id`:
32
+ * - Same `version`: silent no-op (idempotent — safe to call during
33
+ * module init multiple times).
34
+ * - Different `version`: REPLACES the existing entry AND fires a
35
+ * dev-mode `console.warn`. Evals almost certainly need pinning
36
+ * to one version at a time, so the warning nudges authors to
37
+ * make the replacement intentional.
38
+ *
39
+ * Registration order is preserved by `list()` / `toPromptFragment()`.
40
+ *
41
+ * TODO(phase-2): when `refreshPolicy.afterTokens` lands, the registry
42
+ * must also expose a `hash` of its contents so the runtime can detect
43
+ * "registry changed since last read_skill surface" and re-inject.
44
+ */
45
+ register(skill) {
46
+ const existing = this.skills.get(skill.id);
47
+ if (existing) {
48
+ if (existing.version === skill.version) {
49
+ // Idempotent — same version, no-op.
50
+ return this;
51
+ }
52
+ if (typeof process !== 'undefined' && process.env?.['NODE_ENV'] !== 'production') {
53
+ // eslint-disable-next-line no-console
54
+ console.warn(`[agentfootprint] SkillRegistry: replacing skill '${skill.id}' v${existing.version} → v${skill.version}. Pin explicitly if this is not intentional.`);
55
+ }
56
+ }
57
+ this.skills.set(skill.id, skill);
58
+ return this;
59
+ }
60
+ /** Register multiple skills. */
61
+ registerAll(skills) {
62
+ for (const s of skills)
63
+ this.register(s);
64
+ return this;
65
+ }
66
+ /** Look up a skill by id. Returns undefined when unknown. */
67
+ getById(id) {
68
+ return this.skills.get(id);
69
+ }
70
+ /** All registered skills, in insertion order. */
71
+ list() {
72
+ return Array.from(this.skills.values());
73
+ }
74
+ /**
75
+ * Filter skills by scope tag and/or case-insensitive query over
76
+ * `title + description`. Used by the auto-generated `list_skills`
77
+ * tool — panel #3 (`scope` / `query` filtering in the signature
78
+ * from day one).
79
+ */
80
+ search(options = {}) {
81
+ const { scope, query } = options;
82
+ const q = query?.trim().toLowerCase();
83
+ const out = [];
84
+ for (const s of this.skills.values()) {
85
+ if (scope && !(s.scope ?? []).includes(scope))
86
+ continue;
87
+ if (q) {
88
+ const haystack = `${s.title} ${s.description}`.toLowerCase();
89
+ if (!haystack.includes(q))
90
+ continue;
91
+ }
92
+ out.push(s);
93
+ }
94
+ return out;
95
+ }
96
+ /**
97
+ * Resolve the effective surface mode for this registry, consulting
98
+ * the provider hint when `'auto'`. Stable — consumers can call this
99
+ * once at build time.
100
+ */
101
+ effectiveSurfaceMode() {
102
+ return resolveSurfaceMode(this.options.surfaceMode, this.options.providerHint);
103
+ }
104
+ /**
105
+ * Compile skills into the `AgentInstruction[]` the Agent loop already
106
+ * knows how to evaluate. Every Skill already extends AgentInstruction —
107
+ * this is a type-narrowed passthrough, with one augmentation:
108
+ *
109
+ * When `autoActivate` is configured AND a skill has no `activeWhen`
110
+ * of its own, the registry injects a default predicate of
111
+ * `(d) => d[stateField] === skill.id`
112
+ * so the skill's tools / prompt / onToolResult rules gate themselves
113
+ * automatically on activation. Consumers who want custom activation
114
+ * logic simply declare `activeWhen` on the skill and the default is
115
+ * skipped.
116
+ */
117
+ toInstructions() {
118
+ const auto = this.options.autoActivate;
119
+ if (!auto)
120
+ return Array.from(this.skills.values());
121
+ return Array.from(this.skills.values()).map((skill) => {
122
+ if (skill.activeWhen)
123
+ return skill;
124
+ const field = auto.stateField;
125
+ const skillId = skill.id;
126
+ // Inject the default gate. Cast is safe because the user declared
127
+ // stateField as a key on their TDecision type.
128
+ return {
129
+ ...skill,
130
+ activeWhen: ((d) => d[field] ===
131
+ skillId),
132
+ };
133
+ });
134
+ }
135
+ /**
136
+ * Generate the `list_skills` + `read_skill` tool pair. Both tools go
137
+ * through `defineTool()` so they appear correctly in manifest /
138
+ * narrative / toOpenAPI output (panel #6).
139
+ */
140
+ toTools() {
141
+ const registry = this;
142
+ const listSkills = defineTool({
143
+ id: 'list_skills',
144
+ description: 'List available skills. Returns {id, title, description, version} for each. Optional `scope` and `query` filters.',
145
+ inputSchema: {
146
+ type: 'object',
147
+ properties: {
148
+ scope: {
149
+ type: 'string',
150
+ description: 'Only return skills whose scope array includes this tag.',
151
+ },
152
+ query: {
153
+ type: 'string',
154
+ description: 'Case-insensitive search across title + description.',
155
+ },
156
+ },
157
+ },
158
+ handler: async (input) => {
159
+ const matches = registry.search({
160
+ ...(input?.scope && { scope: input.scope }),
161
+ ...(input?.query && { query: input.query }),
162
+ });
163
+ const entries = matches.map((s) => ({
164
+ id: s.id,
165
+ title: s.title,
166
+ description: s.description,
167
+ version: s.version,
168
+ ...(s.scope && { scope: s.scope }),
169
+ }));
170
+ return { content: JSON.stringify({ skills: entries }, null, 2) };
171
+ },
172
+ });
173
+ const readSkill = defineTool({
174
+ id: 'read_skill',
175
+ description: 'Read a skill body by id. The returned text is the procedure to follow — treat it as active guidance for the current turn.',
176
+ inputSchema: {
177
+ type: 'object',
178
+ properties: {
179
+ id: { type: 'string', description: 'The skill id returned by list_skills.' },
180
+ },
181
+ required: ['id'],
182
+ },
183
+ handler: async (input) => {
184
+ const id = input?.id;
185
+ const auto = registry.autoActivate;
186
+ if (typeof id !== 'string' || id.length === 0) {
187
+ return {
188
+ content: 'Error: read_skill requires a non-empty `id` string.',
189
+ isError: true,
190
+ };
191
+ }
192
+ const skill = registry.getById(id);
193
+ if (!skill) {
194
+ // Panel #3 + #8: unknown id is a tool-result error the model
195
+ // can recover from — NOT a thrown exception.
196
+ // autoActivate + onUnknownSkill: 'clear' → clear the field so
197
+ // the prior skill's tools/prompt disappear on a miss.
198
+ const base = {
199
+ content: `Error: skill '${id}' not found. Call list_skills to see available skills.`,
200
+ isError: true,
201
+ };
202
+ if (auto?.onUnknownSkill === 'clear') {
203
+ return {
204
+ ...base,
205
+ decisionUpdate: { [auto.stateField]: undefined },
206
+ };
207
+ }
208
+ return base;
209
+ }
210
+ try {
211
+ const body = await resolveSkillBody(skill);
212
+ // autoActivate path: also write the id into decision scope so
213
+ // `(d) => d[stateField] === id` activeWhen predicates fire on
214
+ // the next iteration. See SkillRegistryOptions.autoActivate.
215
+ if (auto) {
216
+ return {
217
+ content: body,
218
+ decisionUpdate: { [auto.stateField]: skill.id },
219
+ };
220
+ }
221
+ return { content: body };
222
+ }
223
+ catch (err) {
224
+ const msg = err instanceof Error ? err.message : String(err);
225
+ return {
226
+ content: `Error loading skill '${id}': ${msg}`,
227
+ isError: true,
228
+ };
229
+ }
230
+ },
231
+ });
232
+ return { listSkills, readSkill };
233
+ }
234
+ /**
235
+ * System-prompt fragment listing skills + their descriptions. Returns
236
+ * `null` when the effective surface mode is `'tool-only'` (no prompt
237
+ * injection) OR when the registry is empty (no ghost header).
238
+ */
239
+ toPromptFragment() {
240
+ const mode = this.effectiveSurfaceMode();
241
+ if (mode === 'tool-only')
242
+ return null;
243
+ if (this.skills.size === 0)
244
+ return null;
245
+ const lines = [this.options.promptHeader, ''];
246
+ for (const s of this.skills.values()) {
247
+ lines.push(`- ${s.id} — ${s.title}: ${s.description}`);
248
+ }
249
+ return lines.join('\n');
250
+ }
251
+ }
252
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/lib/skills/registry.ts"],"names":[],"mappings":"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"}