agentfootprint 9.91.0 → 9.92.1

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 (49) hide show
  1. package/AGENTS.md +1 -1
  2. package/CHANGELOG.md +123 -0
  3. package/CLAUDE.md +1 -1
  4. package/ai-instructions/claude-code/SKILL.md +1 -1
  5. package/dist/core/Agent.js +23 -7
  6. package/dist/core/Agent.js.map +1 -1
  7. package/dist/core/agent/buildAgentMessageApiChart.js +10 -0
  8. package/dist/core/agent/buildAgentMessageApiChart.js.map +1 -1
  9. package/dist/core/agent/buildToolRegistry.js +90 -33
  10. package/dist/core/agent/buildToolRegistry.js.map +1 -1
  11. package/dist/core/agent/stages/toolCalls.js +176 -28
  12. package/dist/core/agent/stages/toolCalls.js.map +1 -1
  13. package/dist/core/slots/buildToolsSlot.js +209 -62
  14. package/dist/core/slots/buildToolsSlot.js.map +1 -1
  15. package/dist/esm/core/Agent.js +24 -8
  16. package/dist/esm/core/Agent.js.map +1 -1
  17. package/dist/esm/core/agent/buildAgentMessageApiChart.js +10 -0
  18. package/dist/esm/core/agent/buildAgentMessageApiChart.js.map +1 -1
  19. package/dist/esm/core/agent/buildToolRegistry.d.ts +80 -31
  20. package/dist/esm/core/agent/buildToolRegistry.js +90 -33
  21. package/dist/esm/core/agent/buildToolRegistry.js.map +1 -1
  22. package/dist/esm/core/agent/stages/toolCalls.d.ts +43 -5
  23. package/dist/esm/core/agent/stages/toolCalls.js +174 -27
  24. package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
  25. package/dist/esm/core/agent/types.d.ts +15 -0
  26. package/dist/esm/core/slots/buildToolsSlot.d.ts +100 -0
  27. package/dist/esm/core/slots/buildToolsSlot.js +207 -61
  28. package/dist/esm/core/slots/buildToolsSlot.js.map +1 -1
  29. package/dist/esm/events/payloads.d.ts +92 -18
  30. package/dist/esm/events/registry.d.ts +5 -1
  31. package/dist/esm/events/registry.js +4 -0
  32. package/dist/esm/events/registry.js.map +1 -1
  33. package/dist/events/registry.js +4 -0
  34. package/dist/events/registry.js.map +1 -1
  35. package/dist/types/core/Agent.d.ts.map +1 -1
  36. package/dist/types/core/agent/buildAgentMessageApiChart.d.ts.map +1 -1
  37. package/dist/types/core/agent/buildToolRegistry.d.ts +80 -31
  38. package/dist/types/core/agent/buildToolRegistry.d.ts.map +1 -1
  39. package/dist/types/core/agent/stages/toolCalls.d.ts +43 -5
  40. package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
  41. package/dist/types/core/agent/types.d.ts +15 -0
  42. package/dist/types/core/agent/types.d.ts.map +1 -1
  43. package/dist/types/core/slots/buildToolsSlot.d.ts +100 -0
  44. package/dist/types/core/slots/buildToolsSlot.d.ts.map +1 -1
  45. package/dist/types/events/payloads.d.ts +92 -18
  46. package/dist/types/events/payloads.d.ts.map +1 -1
  47. package/dist/types/events/registry.d.ts +5 -1
  48. package/dist/types/events/registry.d.ts.map +1 -1
  49. package/package.json +1 -1
@@ -14,6 +14,8 @@ import type { FlowChart } from 'footprintjs';
14
14
  import type { LLMToolSchema } from '../../adapters/types.js';
15
15
  import { type StepPlanFor } from '../../lib/injection-engine/skillSteps.js';
16
16
  import type { Tool } from '../tools.js';
17
+ import type { ToolClaim } from '../agent/buildToolRegistry.js';
18
+ import type { ToolNameChannel } from '../../events/payloads.js';
17
19
  import type { ToolProvider } from '../../tool-providers/types.js';
18
20
  /**
19
21
  * Mutable cache shared between `buildToolsSlot` (writer) and
@@ -27,6 +29,86 @@ import type { ToolProvider } from '../../tool-providers/types.js';
27
29
  export interface ProviderToolCache {
28
30
  current: readonly Tool[];
29
31
  }
32
+ /**
33
+ * A party that put a tool name forward for the wire (9.92.0) — the vocabulary
34
+ * `tools.shadowed` and `tools.claim_swallowed` speak. `id` is the provider id or
35
+ * the skill id when the party has one; a static `.tool()` and a framework
36
+ * auto-attach carry none.
37
+ */
38
+ export interface ToolParty {
39
+ readonly channel: ToolNameChannel;
40
+ readonly id?: string;
41
+ }
42
+ /**
43
+ * WHO PUT EACH NAME ON THIS EPOCH'S WIRE (9.92.0) — written by Compose from
44
+ * the same merge that produces `scope.toolSchemas`, read by the tool-calls
45
+ * handler's `lookupTool` so that DISPATCH FOLLOWS THE OFFER: a name the model
46
+ * was served resolves to the implementation of the party whose contract it
47
+ * read, never to whichever map happened to be consulted first.
48
+ *
49
+ * The `ProviderToolCache` pattern, and for the same reason: build-closure
50
+ * plumbing shared by the slot (writer) and the handler (reader) within one
51
+ * chart, never scope state — so a run with no collision commits the exact
52
+ * bytes it always did. Overwritten every iteration; a name absent from it was
53
+ * not on the wire this epoch and dispatch falls back to the build-time map,
54
+ * which is the capability law's held-out clause unchanged.
55
+ */
56
+ export interface ServedToolParties {
57
+ current: ReadonlyMap<string, ToolParty>;
58
+ /**
59
+ * The party each name was LAST served under, across the epochs of one run
60
+ * (cleared on iteration 1). The off-wire fallback reads it: a name that
61
+ * left the wire may still be answered by the party the model last read it
62
+ * under — never by a party the model was never shown under that name.
63
+ */
64
+ readonly lastServed: Map<string, ToolParty>;
65
+ }
66
+ /** One schema put forward for the wire, by whom — and WHICH implementation. */
67
+ interface WireCandidate {
68
+ readonly schema: LLMToolSchema;
69
+ readonly party: ToolParty;
70
+ /**
71
+ * The implementation behind the contract. Identity is by implementation:
72
+ * two skills sharing ONE `Tool` reference (documented-legal) are one claim
73
+ * however many routes it arrives by, and draw nothing. Absent only on a
74
+ * chart with no claimant record (the message-API charts).
75
+ */
76
+ readonly tool?: Tool;
77
+ }
78
+ /**
79
+ * THE WIRE MERGE (9.92.0) — first occurrence wins, and the record of who won
80
+ * and who lost is produced by the SAME pass that produces the list, so the two
81
+ * cannot disagree about a name.
82
+ *
83
+ * Order is the caller's: `[static, provider, skill, step]`. A `registry`
84
+ * candidate is the static list; a `provider` candidate the resolved
85
+ * `ToolProvider` list; a `skill` candidate an active skill's `inject.tools`;
86
+ * a `framework` candidate the step tool. Two candidates from one provider
87
+ * under one name (a composed provider serving a name twice) lose to each
88
+ * other by the same rule and are reported the same way. The SAME
89
+ * implementation put forward twice — an always-visible skill's tool rides the
90
+ * static list and the active-injection list; two skills may share one `Tool`
91
+ * reference — is one claim and draws nothing: identity is by `tool`, and only
92
+ * where no implementation is known (a chart without a claimant record) by
93
+ * party + contract.
94
+ *
95
+ * @example
96
+ * ```ts
97
+ * const { merged, winners, losers } = mergeWire([
98
+ * { schema: { name: 'x', description: 'a' }, party: { channel: 'provider', id: 'p' } },
99
+ * { schema: { name: 'x', description: 'b' }, party: { channel: 'skill', id: 's' } },
100
+ * ]);
101
+ * merged.map((t) => t.description); // ['a']
102
+ * winners.get('x'); // { channel: 'provider', id: 'p' }
103
+ * losers.get('x'); // [{ channel: 'skill', id: 's' }]
104
+ * ```
105
+ */
106
+ export declare function mergeWire(candidates: readonly WireCandidate[]): {
107
+ readonly merged: readonly LLMToolSchema[];
108
+ readonly winners: ReadonlyMap<string, ToolParty>;
109
+ /** Every candidate that lost its name, in candidate order — competing losers. */
110
+ readonly losers: ReadonlyMap<string, readonly ToolParty[]>;
111
+ };
30
112
  export interface ToolsSlotConfig {
31
113
  /** Tool registry exposed to the LLM. Empty → empty slot (LLMCall case). */
32
114
  readonly tools: readonly LLMToolSchema[];
@@ -70,6 +152,23 @@ export interface ToolsSlotConfig {
70
152
  * calling `list()` a second time. Required when `toolProvider` is set.
71
153
  */
72
154
  readonly providerToolCache?: ProviderToolCache;
155
+ /**
156
+ * Every build-time claimant per tool name (9.92.0) — `buildToolRegistry`'s
157
+ * `toolClaimants`. Read for two things: the party a STATIC-list schema
158
+ * belongs to (a `.tool()`, a framework auto-attach, an always-visible
159
+ * skill's tool), and the claimants that never reached this epoch's merge
160
+ * (a scoped skill's tool while the skill is inactive, a held-out step tool,
161
+ * the framework's `skip_step` between tenures) so a dead claim can be named.
162
+ * Absent — the message-API charts — and every static schema is `registry`.
163
+ */
164
+ readonly toolClaimants?: ReadonlyMap<string, readonly ToolClaim[]>;
165
+ /**
166
+ * The record of who put each name on the wire (9.92.0), written here every
167
+ * iteration and read by dispatch. Same closure-shared shape and lifetime as
168
+ * `providerToolCache`. Absent → the record is not kept, and dispatch reads
169
+ * its build-time map first as it did before 9.92.0.
170
+ */
171
+ readonly servedTools?: ServedToolParties;
73
172
  /**
74
173
  * Rebuild `read_skill`'s SCHEMA for this iteration's cursor (8.5.0).
75
174
  *
@@ -147,3 +246,4 @@ export interface ToolsSlotConfig {
147
246
  * })
148
247
  */
149
248
  export declare function buildToolsSlot(config: ToolsSlotConfig): FlowChart;
249
+ export {};
@@ -20,6 +20,74 @@ import { buildSkipStepTool } from '../../lib/injection-engine/skillTools.js';
20
20
  import { currentStepOf, pointerOf, skipStepDescription, stepBannerPrefix, stepInProgress, } from '../../lib/injection-engine/skillSteps.js';
21
21
  import { typedEmit } from '../../recorders/core/typedEmit.js';
22
22
  import { composeSlot, fnv1a, formatOverflowWarning, slotOverflow, truncate } from './helpers.js';
23
+ const FRAMEWORK_PARTY = { channel: 'framework' };
24
+ const sameParty = (a, b) => a.channel === b.channel && a.id === b.id;
25
+ /**
26
+ * The same CONTRACT arriving twice — an always-visible skill's tool rides the
27
+ * static list AND, once the skill is active, the injection list. One claim,
28
+ * two routes; not a loser of itself.
29
+ */
30
+ const sameContract = (a, b) => a.name === b.name &&
31
+ a.description === b.description &&
32
+ JSON.stringify(a.inputSchema ?? null) === JSON.stringify(b.inputSchema ?? null);
33
+ const partyOfClaim = (c) => ({
34
+ channel: c.channel,
35
+ ...(c.id !== undefined && { id: c.id }),
36
+ });
37
+ /**
38
+ * THE WIRE MERGE (9.92.0) — first occurrence wins, and the record of who won
39
+ * and who lost is produced by the SAME pass that produces the list, so the two
40
+ * cannot disagree about a name.
41
+ *
42
+ * Order is the caller's: `[static, provider, skill, step]`. A `registry`
43
+ * candidate is the static list; a `provider` candidate the resolved
44
+ * `ToolProvider` list; a `skill` candidate an active skill's `inject.tools`;
45
+ * a `framework` candidate the step tool. Two candidates from one provider
46
+ * under one name (a composed provider serving a name twice) lose to each
47
+ * other by the same rule and are reported the same way. The SAME
48
+ * implementation put forward twice — an always-visible skill's tool rides the
49
+ * static list and the active-injection list; two skills may share one `Tool`
50
+ * reference — is one claim and draws nothing: identity is by `tool`, and only
51
+ * where no implementation is known (a chart without a claimant record) by
52
+ * party + contract.
53
+ *
54
+ * @example
55
+ * ```ts
56
+ * const { merged, winners, losers } = mergeWire([
57
+ * { schema: { name: 'x', description: 'a' }, party: { channel: 'provider', id: 'p' } },
58
+ * { schema: { name: 'x', description: 'b' }, party: { channel: 'skill', id: 's' } },
59
+ * ]);
60
+ * merged.map((t) => t.description); // ['a']
61
+ * winners.get('x'); // { channel: 'provider', id: 'p' }
62
+ * losers.get('x'); // [{ channel: 'skill', id: 's' }]
63
+ * ```
64
+ */
65
+ export function mergeWire(candidates) {
66
+ const merged = [];
67
+ const winners = new Map();
68
+ const won = new Map();
69
+ const losers = new Map();
70
+ for (const candidate of candidates) {
71
+ const { schema, party } = candidate;
72
+ const first = won.get(schema.name);
73
+ if (first !== undefined) {
74
+ const sameImplementation = (candidate.tool !== undefined && candidate.tool === first.tool) ||
75
+ (sameParty(party, first.party) && sameContract(schema, first.schema));
76
+ if (sameImplementation)
77
+ continue;
78
+ const lost = losers.get(schema.name);
79
+ if (lost === undefined)
80
+ losers.set(schema.name, [party]);
81
+ else
82
+ lost.push(party);
83
+ continue;
84
+ }
85
+ won.set(schema.name, candidate);
86
+ winners.set(schema.name, party);
87
+ merged.push(schema);
88
+ }
89
+ return { merged, winners, losers };
90
+ }
23
91
  /** Shared empty hold-out — the no-step iterations never allocate. */
24
92
  const EMPTY_NAME_SET = new Set();
25
93
  // LENS · tool-description + tool-list · request-ephemeral
@@ -45,6 +113,19 @@ export function buildToolsSlot(config) {
45
113
  const providerToolCache = config.providerToolCache;
46
114
  const hiddenSkillIdsFor = config.hiddenSkillIds;
47
115
  const stepPlanFor = config.stepPlanFor;
116
+ const toolClaimants = config.toolClaimants;
117
+ const servedTools = config.servedTools;
118
+ /** A STATIC-list schema's party and implementation: its first build-time claimant. */
119
+ const registryCandidate = (schema) => {
120
+ const first = toolClaimants?.get(schema.name)?.[0];
121
+ return first === undefined
122
+ ? { schema, party: { channel: 'registry' } }
123
+ : { schema, party: partyOfClaim(first), tool: first.tool };
124
+ };
125
+ /** The framework's own `skip_step` instance, when any skill declares steps. */
126
+ const frameworkSkipStep = toolClaimants
127
+ ?.get(buildSkipStepTool().schema.name)
128
+ ?.find((c) => c.channel === 'framework')?.tool;
48
129
  // The skip_step schema template — description is rebuilt per iteration
49
130
  // (it names the current step), everything else is static.
50
131
  const skipStepSchemaTemplate = stepPlanFor ? buildSkipStepTool().schema : undefined;
@@ -319,6 +400,11 @@ export function buildToolsSlot(config) {
319
400
  };
320
401
  });
321
402
  const providerSchemas = [];
403
+ const providerCandidates = [];
404
+ const providerParty = {
405
+ channel: 'provider',
406
+ ...(toolProvider?.id !== undefined && { id: toolProvider.id }),
407
+ };
322
408
  if (toolProvider && providerToolCache) {
323
409
  for (const t of providerToolCache.current) {
324
410
  // PARK HOLD-OUT, the same rule the registry list above and the
@@ -345,6 +431,7 @@ export function buildToolsSlot(config) {
345
431
  // banner the model reads.
346
432
  const schema = bannered(t.schema);
347
433
  providerSchemas.push(schema);
434
+ providerCandidates.push({ schema, party: providerParty, tool: t });
348
435
  const summary = `${schema.name}: ${schema.description}`;
349
436
  injections.push({
350
437
  contentSummary: truncate(summary, 80),
@@ -363,6 +450,7 @@ export function buildToolsSlot(config) {
363
450
  // the step hold-out filters this source too — by the same sole-owner
364
451
  // rule (a name in stepHoldOut is provably the stepped skill's alone).
365
452
  const dynamicSchemas = [];
453
+ const dynamicCandidates = [];
366
454
  for (const inj of activeInjections) {
367
455
  const injTools = inj.inject.tools;
368
456
  if (!injTools || injTools.length === 0)
@@ -375,6 +463,18 @@ export function buildToolsSlot(config) {
375
463
  continue;
376
464
  const schema = bannered(tool.schema);
377
465
  dynamicSchemas.push(schema);
466
+ // The implementation is the REGISTRY's reference for (name, skill), not
467
+ // the object on the active injection: `activeInjections` is committed
468
+ // state, and what comes back from scope is a copy. Identity has to be
469
+ // judged on the one reference `buildToolRegistry` kept.
470
+ const claimed = toolClaimants
471
+ ?.get(schema.name)
472
+ ?.find((c) => c.channel === 'skill' && c.id === inj.id)?.tool;
473
+ dynamicCandidates.push({
474
+ schema,
475
+ party: { channel: 'skill', id: inj.id },
476
+ tool: claimed ?? tool,
477
+ });
378
478
  const summary = `${schema.name}: ${schema.description}`;
379
479
  injections.push({
380
480
  contentSummary: truncate(summary, 80),
@@ -427,21 +527,39 @@ export function buildToolsSlot(config) {
427
527
  // registry, AND the consumer's toolProvider emits one too. Without
428
528
  // dedupe both reach the LLM and Anthropic rejects the request:
429
529
  // "tools: Tool names must be unique."
430
- const seen = new Set();
431
- const merged = [];
432
- for (const t of [...tools, ...providerSchemas, ...dynamicSchemas, ...stepSchemas]) {
433
- if (seen.has(t.name))
434
- continue;
435
- seen.add(t.name);
436
- merged.push(t);
437
- }
530
+ //
531
+ // Since 9.92.0 the same pass records WHO won each name and who lost it
532
+ // (`mergeWire`), because the record of the wire and the wire itself must
533
+ // come from one loop: dispatch resolves against the winners, and the
534
+ // report below is computed from the losers — never from a re-derivation.
535
+ const candidates = [
536
+ ...tools.map(registryCandidate),
537
+ ...providerCandidates,
538
+ ...dynamicCandidates,
539
+ ...stepSchemas.map((schema) => ({
540
+ schema,
541
+ party: FRAMEWORK_PARTY,
542
+ ...(frameworkSkipStep !== undefined && { tool: frameworkSkipStep }),
543
+ })),
544
+ ];
545
+ const { merged, winners, losers } = mergeWire(candidates);
438
546
  scope.toolSchemas = merged;
547
+ if (servedTools !== undefined) {
548
+ servedTools.current = winners;
549
+ // The run's memory of who served what (read by the off-wire fallback).
550
+ // Iteration 1 is a run's first epoch — `seed` sets it — so the memory
551
+ // of a previous run on this same built chart is dropped here.
552
+ if (iteration === 1)
553
+ servedTools.lastServed.clear();
554
+ for (const [name, party] of winners)
555
+ servedTools.lastServed.set(name, party);
556
+ }
439
557
  // ── Compose-seam integrity backstop (9.60.0) ──────────────────────
440
- // The park hold-out filters the registry and skill lists, but PROVIDER
441
- // schemas merge unfiltered — a provider tool sharing a parked member's
442
- // name stays on the wire (the shadowing seam: provider wins the wire,
443
- // skill wins dispatch). That is the recorded two-channels contradiction
444
- // still reachable today, so the final merged list is checked against
558
+ // Every list the merge reads is park-filtered — the registry and skill
559
+ // lists from 9.59.0, the provider list since the 9.60.0 fix pass (the
560
+ // comment at the provider loop above says why it has to be this layer).
561
+ // The backstop stays as the check that the MERGED wire agrees with the
562
+ // park, whatever route a name took: the final list is compared against
445
563
  // every parked map's owned names. One finding per defect (identity
446
564
  // dedup via a scope-held seen list, written only when something fires),
447
565
  // filed as a typed event; the composition itself is never altered —
@@ -491,9 +609,10 @@ export function buildToolsSlot(config) {
491
609
  }
492
610
  reportShadowedTools(scope, {
493
611
  iteration,
494
- ...(toolProvider?.id && { providerId: toolProvider.id }),
495
- providerSchemas,
496
- activeInjections,
612
+ winners,
613
+ losers,
614
+ candidates,
615
+ ...(toolClaimants !== undefined && { claimants: toolClaimants }),
497
616
  warnedShadow,
498
617
  });
499
618
  const composition = composeSlot('tools', iteration, injections, budgetCap, toolProvider ? 'registry+provider+injections' : 'registry+injections');
@@ -525,63 +644,90 @@ export function buildToolsSlot(config) {
525
644
  .addFunction('Compose', composeStage, 'compose', 'Compose tools slot')
526
645
  .build();
527
646
  }
647
+ /** How a party is named in a sentence: `provider 'hub'`, `skill 'billing'`, `framework`. */
648
+ const describeParty = (p) => p.id === undefined ? p.channel : `${p.channel} '${p.id}'`;
528
649
  /**
529
- * Report a tool name a `ToolProvider` and an active SKILL both claim (8.7.0).
650
+ * Report every tool name more than one party claimed this epoch (8.7.0;
651
+ * re-subjected 9.92.0).
530
652
  *
531
- * The two sources disagree in opposite directions, and both directions are laws of
532
- * this codebase rather than races:
653
+ * The SUBJECT is the wire crossed with dispatch: for each name on the wire,
654
+ * the party whose contract won it — which, since dispatch follows the offer,
655
+ * is also the party that answers — against every other party that claimed
656
+ * the name. Two kinds of loser, two events:
533
657
  *
534
- * • **The provider wins the LLM's tool list.** The merge above is
535
- * `[static, provider, skill]` with first-occurrence-wins, and an
536
- * `autoActivate: 'currentSkill'` skill's tools are deliberately kept OUT of the
537
- * static registry (`buildToolRegistry`), so the provider's schema — its name, its
538
- * description, its `inputSchema` — is the one the model reads.
539
- * • **The skill wins dispatch.** `lookupTool` checks `registryByName` first, and
540
- * every skill tool is in that map (`buildToolRegistry` adds autoActivate tools
541
- * explicitly so dispatch resolves once the skill is active). Provider tools are
542
- * not in it. So the skill's `execute` is what runs.
658
+ * • a COMPETING loser put a contract forward this epoch and lost the merge
659
+ * (`losers`, from `mergeWire`). The name draws ONE
660
+ * `agentfootprint.tools.shadowed` naming the wire's party in both halves —
661
+ * the shipped event, kept truthful — and one `tools.claim_swallowed` per
662
+ * loser;
663
+ * • a RESERVED loser is a build-time claimant that never reached the merge
664
+ * (`claimants`, from `buildToolRegistry`): a scoped skill's tool while the
665
+ * skill is inactive, a held-out step tool, the framework's `skip_step`
666
+ * between tenures. Its name is held by somebody else this epoch and its
667
+ * implementation cannot be reached by any call, so it draws
668
+ * `tools.claim_swallowed` — and NOT `tools.shadowed`, because no contract of
669
+ * its competed for the wire.
543
670
  *
544
- * The model therefore reads one contract and calls a different implementation, with
545
- * nothing in the trace saying so. Reported rather than refused: the provider's list
546
- * is resolved per iteration (`list(ctx)`) and the skill has to be active, so there is
547
- * no build-time moment at which this is knowable.
671
+ * Until 9.92.0 this loop walked `activeInjections` against the pre-merge
672
+ * provider list and ASSERTED `schemaFrom: 'provider'`, which could not see an
673
+ * inactive skill, a static `.tool()` or a framework auto-attach, and named the
674
+ * provider on epochs whose wire carried the skill's contract (recorded-not-
675
+ * built, entries 1 and 2). Reading the merge's own record is what makes both
676
+ * sentences true by construction.
548
677
  *
549
- * A static `.tool()` colliding with a skill tool is NOT reported here —
550
- * `buildToolRegistry` already throws on that pair at build time, which is the better
551
- * answer when the answer is available that early.
678
+ * The events fire every iteration — that is the channel that reaches
679
+ * production, where a dynamic provider can start a collision on iteration 9
680
+ * of a run nobody is watching. The console line is dev-mode only and latched
681
+ * per tool name per built chart, so a 20-iteration loop prints once.
552
682
  */
553
683
  function reportShadowedTools(scope, input) {
554
- const { iteration, providerId, providerSchemas, activeInjections, warnedShadow } = input;
555
- if (providerSchemas.length === 0)
556
- return;
557
- const providerNames = new Set(providerSchemas.map((s) => s.name));
558
- for (const inj of activeInjections) {
559
- for (const tool of inj.inject.tools ?? []) {
560
- const toolName = tool.schema.name;
561
- if (!providerNames.has(toolName))
562
- continue;
563
- // The EVENT fires every iteration — it is the channel that reaches production,
564
- // where a dynamic provider can start shadowing on iteration 9 of a run nobody
565
- // is watching. The console line is dev-mode only and latched per tool name, so
566
- // a 20-iteration loop prints once (same discipline as the overflow warning).
684
+ const { iteration, winners, losers, candidates, claimants, warnedShadow } = input;
685
+ for (const [toolName, winner] of winners) {
686
+ const competing = losers.get(toolName) ?? [];
687
+ // Reserved: every build-time claimant of the name that is neither the
688
+ // winner nor one of this epoch's candidates for it.
689
+ const putForward = candidates.filter((c) => c.schema.name === toolName);
690
+ const winning = putForward.find((c) => sameParty(c.party, winner));
691
+ const reserved = (claimants?.get(toolName) ?? [])
692
+ .filter((c) =>
693
+ // The same implementation is the same claim: a second skill sharing
694
+ // the winner's `Tool` reference lost nothing.
695
+ c.tool !== winning?.tool &&
696
+ !putForward.some((p) => p.tool === c.tool) &&
697
+ !sameParty(partyOfClaim(c), winner) &&
698
+ !putForward.some((p) => sameParty(p.party, partyOfClaim(c))))
699
+ .map(partyOfClaim);
700
+ if (competing.length === 0 && reserved.length === 0)
701
+ continue;
702
+ if (competing.length > 0) {
567
703
  typedEmit(scope, 'agentfootprint.tools.shadowed', {
568
704
  toolName,
569
705
  iteration,
570
- schemaFrom: 'provider',
571
- ...(providerId && { schemaFromId: providerId }),
572
- dispatchTo: 'skill',
573
- dispatchToId: inj.id,
706
+ schemaFrom: winner.channel,
707
+ ...(winner.id !== undefined && { schemaFromId: winner.id }),
708
+ dispatchTo: winner.channel,
709
+ ...(winner.id !== undefined && { dispatchToId: winner.id }),
710
+ });
711
+ }
712
+ for (const lost of [...competing, ...reserved]) {
713
+ typedEmit(scope, 'agentfootprint.tools.claim_swallowed', {
714
+ toolName,
715
+ iteration,
716
+ lostBy: lost.channel,
717
+ ...(lost.id !== undefined && { lostById: lost.id }),
718
+ wonBy: winner.channel,
719
+ ...(winner.id !== undefined && { wonById: winner.id }),
574
720
  });
575
- if (!isDevMode() || warnedShadow.has(toolName))
576
- continue;
577
- warnedShadow.add(toolName);
578
- // eslint-disable-next-line no-console
579
- console.warn(`agentfootprint tools: '${toolName}' is declared by BOTH the tool provider` +
580
- `${providerId ? ` '${providerId}'` : ''} and the active skill '${inj.id}'. The model ` +
581
- `is shown the PROVIDER's description, but dispatch always resolves the SKILL's ` +
582
- `implementation — so the model reads one tool's contract and calls another's. Rename ` +
583
- `one of them, or drop it from the skill's tools:[] if the provider is meant to own it.`);
584
721
  }
722
+ if (!isDevMode() || warnedShadow.has(toolName))
723
+ continue;
724
+ warnedShadow.add(toolName);
725
+ const others = [...competing, ...reserved].map(describeParty).join(', ');
726
+ // eslint-disable-next-line no-console
727
+ console.warn(`agentfootprint tools: '${toolName}' is claimed by ${describeParty(winner)} AND by ` +
728
+ `${others}. The model is shown ${describeParty(winner)}'s contract and ` +
729
+ `${describeParty(winner)}'s implementation answers; the other claim answers no call ` +
730
+ `while the name is held. Rename one of them, or drop the duplicate.`);
585
731
  }
586
732
  }
587
733
  //# sourceMappingURL=buildToolsSlot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"buildToolsSlot.js","sourceRoot":"","sources":["../../../../src/core/slots/buildToolsSlot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buildToolsSlot.js","sourceRoot":"","sources":["../../../../src/core/slots/buildToolsSlot.ts"],"names":[],"mappings":"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"}