agentfootprint 8.6.0 → 8.8.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 (241) hide show
  1. package/AGENTS.md +12 -4
  2. package/CLAUDE.md +4 -2
  3. package/README.md +1 -1
  4. package/ai-instructions/claude-code/SKILL.md +1 -1
  5. package/ai-instructions/setup.sh +0 -0
  6. package/bin/agentfootprint-lint-tools.mjs +0 -0
  7. package/dist/core/agent/AgentBuilder.js +104 -0
  8. package/dist/core/agent/AgentBuilder.js.map +1 -1
  9. package/dist/core/agent/buildAgentChart.js +12 -1
  10. package/dist/core/agent/buildAgentChart.js.map +1 -1
  11. package/dist/core/agent/buildDynamicAgentChart.js +12 -1
  12. package/dist/core/agent/buildDynamicAgentChart.js.map +1 -1
  13. package/dist/core/agent/memoryRecallInjections.js +100 -10
  14. package/dist/core/agent/memoryRecallInjections.js.map +1 -1
  15. package/dist/core/agent/stages/deliver.js.map +1 -1
  16. package/dist/core/slots/buildSystemPromptSlot.js +10 -0
  17. package/dist/core/slots/buildSystemPromptSlot.js.map +1 -1
  18. package/dist/core/slots/buildToolsSlot.js +77 -0
  19. package/dist/core/slots/buildToolsSlot.js.map +1 -1
  20. package/dist/core/slots/helpers.js +12 -10
  21. package/dist/core/slots/helpers.js.map +1 -1
  22. package/dist/esm/core/agent/AgentBuilder.js +104 -0
  23. package/dist/esm/core/agent/AgentBuilder.js.map +1 -1
  24. package/dist/esm/core/agent/buildAgentChart.js +13 -2
  25. package/dist/esm/core/agent/buildAgentChart.js.map +1 -1
  26. package/dist/esm/core/agent/buildDynamicAgentChart.js +13 -2
  27. package/dist/esm/core/agent/buildDynamicAgentChart.js.map +1 -1
  28. package/dist/esm/core/agent/memoryRecallInjections.d.ts +13 -3
  29. package/dist/esm/core/agent/memoryRecallInjections.js +101 -11
  30. package/dist/esm/core/agent/memoryRecallInjections.js.map +1 -1
  31. package/dist/esm/core/agent/stages/deliver.d.ts +6 -3
  32. package/dist/esm/core/agent/stages/deliver.js.map +1 -1
  33. package/dist/esm/core/slots/buildSystemPromptSlot.js +10 -0
  34. package/dist/esm/core/slots/buildSystemPromptSlot.js.map +1 -1
  35. package/dist/esm/core/slots/buildToolsSlot.js +78 -1
  36. package/dist/esm/core/slots/buildToolsSlot.js.map +1 -1
  37. package/dist/esm/core/slots/helpers.d.ts +11 -2
  38. package/dist/esm/core/slots/helpers.js +11 -9
  39. package/dist/esm/core/slots/helpers.js.map +1 -1
  40. package/dist/esm/events/payloads.d.ts +92 -0
  41. package/dist/esm/events/registry.d.ts +5 -1
  42. package/dist/esm/events/registry.js +4 -0
  43. package/dist/esm/events/registry.js.map +1 -1
  44. package/dist/esm/index.d.ts +2 -1
  45. package/dist/esm/index.js +6 -1
  46. package/dist/esm/index.js.map +1 -1
  47. package/dist/esm/lib/fnv1a.d.ts +16 -0
  48. package/dist/esm/lib/fnv1a.js +24 -0
  49. package/dist/esm/lib/fnv1a.js.map +1 -0
  50. package/dist/esm/lib/injection-engine/factories/defineRelevanceHint.d.ts +15 -0
  51. package/dist/esm/lib/injection-engine/factories/defineRelevanceHint.js +16 -0
  52. package/dist/esm/lib/injection-engine/factories/defineRelevanceHint.js.map +1 -1
  53. package/dist/esm/lib/injection-engine/factories/defineSkill.d.ts +9 -0
  54. package/dist/esm/lib/injection-engine/factories/defineSkill.js.map +1 -1
  55. package/dist/esm/lib/injection-engine/index.d.ts +3 -3
  56. package/dist/esm/lib/injection-engine/index.js +8 -3
  57. package/dist/esm/lib/injection-engine/index.js.map +1 -1
  58. package/dist/esm/lib/injection-engine/skillContract.d.ts +25 -2
  59. package/dist/esm/lib/injection-engine/skillContract.js +11 -4
  60. package/dist/esm/lib/injection-engine/skillContract.js.map +1 -1
  61. package/dist/esm/lib/injection-engine/skillGraph.d.ts +65 -4
  62. package/dist/esm/lib/injection-engine/skillGraph.js +36 -11
  63. package/dist/esm/lib/injection-engine/skillGraph.js.map +1 -1
  64. package/dist/esm/lib/injection-engine/skillGraphCheckup.d.ts +47 -7
  65. package/dist/esm/lib/injection-engine/skillGraphCheckup.js +165 -13
  66. package/dist/esm/lib/injection-engine/skillGraphCheckup.js.map +1 -1
  67. package/dist/esm/lib/injection-engine/skillsFromDir.d.ts +24 -0
  68. package/dist/esm/lib/injection-engine/skillsFromDir.js +19 -0
  69. package/dist/esm/lib/injection-engine/skillsFromDir.js.map +1 -1
  70. package/dist/esm/lib/injection-engine/types.d.ts +25 -0
  71. package/dist/esm/lib/injection-engine/types.js.map +1 -1
  72. package/dist/esm/lib/rag/defineRAG.d.ts +126 -26
  73. package/dist/esm/lib/rag/defineRAG.js +112 -25
  74. package/dist/esm/lib/rag/defineRAG.js.map +1 -1
  75. package/dist/esm/lib/rag/index.d.ts +1 -1
  76. package/dist/esm/lib/rag/index.js +1 -1
  77. package/dist/esm/lib/rag/index.js.map +1 -1
  78. package/dist/esm/memory/define.js +38 -2
  79. package/dist/esm/memory/define.js.map +1 -1
  80. package/dist/esm/memory/define.types.d.ts +93 -1
  81. package/dist/esm/memory/define.types.js +18 -0
  82. package/dist/esm/memory/define.types.js.map +1 -1
  83. package/dist/esm/memory/embedding/loadRelevant.d.ts +49 -15
  84. package/dist/esm/memory/embedding/loadRelevant.js +136 -7
  85. package/dist/esm/memory/embedding/loadRelevant.js.map +1 -1
  86. package/dist/esm/memory/index.d.ts +2 -1
  87. package/dist/esm/memory/index.js +2 -1
  88. package/dist/esm/memory/index.js.map +1 -1
  89. package/dist/esm/memory/pipeline/semantic.d.ts +15 -0
  90. package/dist/esm/memory/pipeline/semantic.js +3 -1
  91. package/dist/esm/memory/pipeline/semantic.js.map +1 -1
  92. package/dist/esm/memory/retrieval/index.d.ts +10 -0
  93. package/dist/esm/memory/retrieval/index.js +3 -0
  94. package/dist/esm/memory/retrieval/index.js.map +1 -0
  95. package/dist/esm/memory/retrieval/provenance.d.ts +43 -0
  96. package/dist/esm/memory/retrieval/provenance.js +60 -0
  97. package/dist/esm/memory/retrieval/provenance.js.map +1 -0
  98. package/dist/esm/memory/retrieval/topK.d.ts +67 -0
  99. package/dist/esm/memory/retrieval/topK.js +53 -0
  100. package/dist/esm/memory/retrieval/topK.js.map +1 -0
  101. package/dist/esm/memory/retrieval/types.d.ts +189 -0
  102. package/dist/esm/memory/retrieval/types.js +2 -0
  103. package/dist/esm/memory/retrieval/types.js.map +1 -0
  104. package/dist/esm/memory/stages/formatDefault.d.ts +52 -26
  105. package/dist/esm/memory/stages/formatDefault.js +118 -28
  106. package/dist/esm/memory/stages/formatDefault.js.map +1 -1
  107. package/dist/esm/memory/stages/pickByBudget.js +53 -3
  108. package/dist/esm/memory/stages/pickByBudget.js.map +1 -1
  109. package/dist/esm/memory/stages/types.d.ts +15 -0
  110. package/dist/esm/memory/wire/mountMemoryPipeline.d.ts +25 -0
  111. package/dist/esm/memory/wire/mountMemoryPipeline.js +11 -2
  112. package/dist/esm/memory/wire/mountMemoryPipeline.js.map +1 -1
  113. package/dist/esm/tool-providers/index.d.ts +1 -1
  114. package/dist/esm/tool-providers/index.js +4 -1
  115. package/dist/esm/tool-providers/index.js.map +1 -1
  116. package/dist/esm/tool-providers/skillScopedTools.d.ts +4 -0
  117. package/dist/esm/tool-providers/skillScopedTools.js +33 -2
  118. package/dist/esm/tool-providers/skillScopedTools.js.map +1 -1
  119. package/dist/esm/tool-providers/types.d.ts +25 -0
  120. package/dist/events/registry.js +4 -0
  121. package/dist/events/registry.js.map +1 -1
  122. package/dist/index.js +8 -1
  123. package/dist/index.js.map +1 -1
  124. package/dist/lib/fnv1a.js +28 -0
  125. package/dist/lib/fnv1a.js.map +1 -0
  126. package/dist/lib/injection-engine/factories/defineRelevanceHint.js +17 -1
  127. package/dist/lib/injection-engine/factories/defineRelevanceHint.js.map +1 -1
  128. package/dist/lib/injection-engine/factories/defineSkill.js.map +1 -1
  129. package/dist/lib/injection-engine/index.js +7 -1
  130. package/dist/lib/injection-engine/index.js.map +1 -1
  131. package/dist/lib/injection-engine/skillContract.js +11 -4
  132. package/dist/lib/injection-engine/skillContract.js.map +1 -1
  133. package/dist/lib/injection-engine/skillGraph.js +37 -11
  134. package/dist/lib/injection-engine/skillGraph.js.map +1 -1
  135. package/dist/lib/injection-engine/skillGraphCheckup.js +165 -13
  136. package/dist/lib/injection-engine/skillGraphCheckup.js.map +1 -1
  137. package/dist/lib/injection-engine/skillsFromDir.js +19 -0
  138. package/dist/lib/injection-engine/skillsFromDir.js.map +1 -1
  139. package/dist/lib/injection-engine/types.js.map +1 -1
  140. package/dist/lib/rag/defineRAG.js +113 -26
  141. package/dist/lib/rag/defineRAG.js.map +1 -1
  142. package/dist/lib/rag/index.js +2 -1
  143. package/dist/lib/rag/index.js.map +1 -1
  144. package/dist/memory/define.js +38 -2
  145. package/dist/memory/define.js.map +1 -1
  146. package/dist/memory/define.types.js +21 -1
  147. package/dist/memory/define.types.js.map +1 -1
  148. package/dist/memory/embedding/loadRelevant.js +138 -8
  149. package/dist/memory/embedding/loadRelevant.js.map +1 -1
  150. package/dist/memory/index.js +5 -1
  151. package/dist/memory/index.js.map +1 -1
  152. package/dist/memory/pipeline/semantic.js +2 -0
  153. package/dist/memory/pipeline/semantic.js.map +1 -1
  154. package/dist/memory/retrieval/index.js +9 -0
  155. package/dist/memory/retrieval/index.js.map +1 -0
  156. package/dist/memory/retrieval/provenance.js +65 -0
  157. package/dist/memory/retrieval/provenance.js.map +1 -0
  158. package/dist/memory/retrieval/topK.js +57 -0
  159. package/dist/memory/retrieval/topK.js.map +1 -0
  160. package/dist/memory/retrieval/types.js +3 -0
  161. package/dist/memory/retrieval/types.js.map +1 -0
  162. package/dist/memory/stages/formatDefault.js +118 -28
  163. package/dist/memory/stages/formatDefault.js.map +1 -1
  164. package/dist/memory/stages/pickByBudget.js +53 -3
  165. package/dist/memory/stages/pickByBudget.js.map +1 -1
  166. package/dist/memory/wire/mountMemoryPipeline.js +11 -2
  167. package/dist/memory/wire/mountMemoryPipeline.js.map +1 -1
  168. package/dist/tool-providers/index.js +5 -1
  169. package/dist/tool-providers/index.js.map +1 -1
  170. package/dist/tool-providers/skillScopedTools.js +35 -3
  171. package/dist/tool-providers/skillScopedTools.js.map +1 -1
  172. package/dist/types/core/agent/AgentBuilder.d.ts.map +1 -1
  173. package/dist/types/core/agent/buildAgentChart.d.ts.map +1 -1
  174. package/dist/types/core/agent/buildDynamicAgentChart.d.ts.map +1 -1
  175. package/dist/types/core/agent/memoryRecallInjections.d.ts +13 -3
  176. package/dist/types/core/agent/memoryRecallInjections.d.ts.map +1 -1
  177. package/dist/types/core/agent/stages/deliver.d.ts +6 -3
  178. package/dist/types/core/agent/stages/deliver.d.ts.map +1 -1
  179. package/dist/types/core/slots/buildSystemPromptSlot.d.ts.map +1 -1
  180. package/dist/types/core/slots/buildToolsSlot.d.ts.map +1 -1
  181. package/dist/types/core/slots/helpers.d.ts +11 -2
  182. package/dist/types/core/slots/helpers.d.ts.map +1 -1
  183. package/dist/types/events/payloads.d.ts +92 -0
  184. package/dist/types/events/payloads.d.ts.map +1 -1
  185. package/dist/types/events/registry.d.ts +5 -1
  186. package/dist/types/events/registry.d.ts.map +1 -1
  187. package/dist/types/index.d.ts +2 -1
  188. package/dist/types/index.d.ts.map +1 -1
  189. package/dist/types/lib/fnv1a.d.ts +17 -0
  190. package/dist/types/lib/fnv1a.d.ts.map +1 -0
  191. package/dist/types/lib/injection-engine/factories/defineRelevanceHint.d.ts +15 -0
  192. package/dist/types/lib/injection-engine/factories/defineRelevanceHint.d.ts.map +1 -1
  193. package/dist/types/lib/injection-engine/factories/defineSkill.d.ts +9 -0
  194. package/dist/types/lib/injection-engine/factories/defineSkill.d.ts.map +1 -1
  195. package/dist/types/lib/injection-engine/index.d.ts +3 -3
  196. package/dist/types/lib/injection-engine/index.d.ts.map +1 -1
  197. package/dist/types/lib/injection-engine/skillContract.d.ts +25 -2
  198. package/dist/types/lib/injection-engine/skillContract.d.ts.map +1 -1
  199. package/dist/types/lib/injection-engine/skillGraph.d.ts +65 -4
  200. package/dist/types/lib/injection-engine/skillGraph.d.ts.map +1 -1
  201. package/dist/types/lib/injection-engine/skillGraphCheckup.d.ts +47 -7
  202. package/dist/types/lib/injection-engine/skillGraphCheckup.d.ts.map +1 -1
  203. package/dist/types/lib/injection-engine/skillsFromDir.d.ts +24 -0
  204. package/dist/types/lib/injection-engine/skillsFromDir.d.ts.map +1 -1
  205. package/dist/types/lib/injection-engine/types.d.ts +25 -0
  206. package/dist/types/lib/injection-engine/types.d.ts.map +1 -1
  207. package/dist/types/lib/rag/defineRAG.d.ts +126 -26
  208. package/dist/types/lib/rag/defineRAG.d.ts.map +1 -1
  209. package/dist/types/lib/rag/index.d.ts +1 -1
  210. package/dist/types/lib/rag/index.d.ts.map +1 -1
  211. package/dist/types/memory/define.d.ts.map +1 -1
  212. package/dist/types/memory/define.types.d.ts +93 -1
  213. package/dist/types/memory/define.types.d.ts.map +1 -1
  214. package/dist/types/memory/embedding/loadRelevant.d.ts +49 -15
  215. package/dist/types/memory/embedding/loadRelevant.d.ts.map +1 -1
  216. package/dist/types/memory/index.d.ts +2 -1
  217. package/dist/types/memory/index.d.ts.map +1 -1
  218. package/dist/types/memory/pipeline/semantic.d.ts +15 -0
  219. package/dist/types/memory/pipeline/semantic.d.ts.map +1 -1
  220. package/dist/types/memory/retrieval/index.d.ts +11 -0
  221. package/dist/types/memory/retrieval/index.d.ts.map +1 -0
  222. package/dist/types/memory/retrieval/provenance.d.ts +44 -0
  223. package/dist/types/memory/retrieval/provenance.d.ts.map +1 -0
  224. package/dist/types/memory/retrieval/topK.d.ts +68 -0
  225. package/dist/types/memory/retrieval/topK.d.ts.map +1 -0
  226. package/dist/types/memory/retrieval/types.d.ts +190 -0
  227. package/dist/types/memory/retrieval/types.d.ts.map +1 -0
  228. package/dist/types/memory/stages/formatDefault.d.ts +52 -26
  229. package/dist/types/memory/stages/formatDefault.d.ts.map +1 -1
  230. package/dist/types/memory/stages/pickByBudget.d.ts.map +1 -1
  231. package/dist/types/memory/stages/types.d.ts +15 -0
  232. package/dist/types/memory/stages/types.d.ts.map +1 -1
  233. package/dist/types/memory/wire/mountMemoryPipeline.d.ts +25 -0
  234. package/dist/types/memory/wire/mountMemoryPipeline.d.ts.map +1 -1
  235. package/dist/types/tool-providers/index.d.ts +1 -1
  236. package/dist/types/tool-providers/index.d.ts.map +1 -1
  237. package/dist/types/tool-providers/skillScopedTools.d.ts +4 -0
  238. package/dist/types/tool-providers/skillScopedTools.d.ts.map +1 -1
  239. package/dist/types/tool-providers/types.d.ts +25 -0
  240. package/dist/types/tool-providers/types.d.ts.map +1 -1
  241. package/package.json +1 -1
@@ -9,9 +9,9 @@ exports.withMemoryRecall = exports.memoryRecallInjections = void 0;
9
9
  * (`buildSystemPromptSlot` / `buildMessagesSlot`) only iterate `activeInjections` —
10
10
  * so on the Agent path the recall was read, formatted, and persisted but NEVER
11
11
  * composed into the prompt (a dead-end key). This turns those recalls into
12
- * `'memory'`-flavored `ActiveInjection`s so the existing composers inject them:
13
- * system-role content → the system slot (`inject.systemPrompt`), everything else →
14
- * the messages slot (`inject.messages`).
12
+ * `ActiveInjection`s so the existing composers inject them: system-role content →
13
+ * the system slot (`inject.systemPrompt`), everything else → the messages slot
14
+ * (`inject.messages`).
15
15
  *
16
16
  * Only the system-role half reaches the model. The messages slot is an
17
17
  * observability projection, not a wire (see `messagesSlotRefusal.ts`), so a
@@ -20,12 +20,42 @@ exports.withMemoryRecall = exports.memoryRecallInjections = void 0;
20
20
  * `defineMemory()`; it can only be entered by a hand-built read subflow mounted
21
21
  * with `mountMemoryRead`. It is left as-is rather than silently re-homed into
22
22
  * the system slot, which would change what the model sees.
23
+ *
24
+ * ─── One injection PER CHUNK (8.8.0) ───────────────────────────────────
25
+ *
26
+ * A retrieval that put three passages in the prompt used to produce ONE
27
+ * injection, so the recording could say "the recall block went in" and
28
+ * nothing finer. Ablating a single passage was impossible; the context
29
+ * ledger credited the block, not the passage; and `retrievalScore` /
30
+ * `rankPosition` on `ContextInjectedPayload` — declared since 2.x — had
31
+ * nowhere to come from, because one record cannot carry three scores.
32
+ *
33
+ * When the read subflow lifted a retrieval record (`retrievalEvidence_<id>`),
34
+ * this splits the recall into one injection per admitted chunk, keyed by
35
+ * the chunk's own id, carrying that chunk's score and rank.
36
+ *
37
+ * **The prompt does not change by one byte.** The formatter records the
38
+ * exact fragment each chunk contributed (`promptFragment`), header on the
39
+ * first and footer on the last, and `callLLM` assembles the system prompt
40
+ * by joining every record's `rawContent` with `\n\n` — the same separator
41
+ * the formatter joined its blocks with. Splitting and re-joining is the
42
+ * identity function here, and a test pins it.
43
+ *
44
+ * Without a record (conversation memory, hand-built pipelines) the old
45
+ * single-injection path is taken unchanged.
23
46
  */
24
47
  const define_types_js_1 = require("../../memory/define.types.js");
25
- /** Build `'memory'`-flavored ActiveInjections from the per-id recall keys in `parent`. */
26
- function memoryRecallInjections(parent, memoryIds) {
48
+ function normalize(source) {
49
+ return typeof source === 'string' ? { id: source } : source;
50
+ }
51
+ function sourceOf(flavor) {
52
+ return flavor === 'rag' ? 'rag' : 'memory';
53
+ }
54
+ /** Build recall ActiveInjections from the per-id recall keys in `parent`. */
55
+ function memoryRecallInjections(parent, memories) {
27
56
  const out = [];
28
- for (const id of memoryIds) {
57
+ for (const entry of memories) {
58
+ const { id, flavor } = normalize(entry);
29
59
  const recall = parent[(0, define_types_js_1.memoryInjectionKey)(id)];
30
60
  if (!Array.isArray(recall) || recall.length === 0)
31
61
  continue;
@@ -39,9 +69,25 @@ function memoryRecallInjections(parent, memoryIds) {
39
69
  .map((m) => ({ role: m.role, content: m.content }));
40
70
  if (!systemContent && messages.length === 0)
41
71
  continue;
72
+ const perChunk = chunkInjections(parent, id, flavor, systemContent);
73
+ if (perChunk) {
74
+ out.push(...perChunk);
75
+ // A non-system recall alongside a retrieval record is not something
76
+ // any shipped formatter produces; carry it on its own record rather
77
+ // than dropping it.
78
+ if (messages.length > 0) {
79
+ out.push({
80
+ id: `memory:${id}`,
81
+ flavor: sourceOf(flavor),
82
+ description: `recall from memory '${id}'`,
83
+ inject: { messages },
84
+ });
85
+ }
86
+ continue;
87
+ }
42
88
  out.push({
43
89
  id: `memory:${id}`,
44
- flavor: 'memory',
90
+ flavor: sourceOf(flavor),
45
91
  description: `recall from memory '${id}'`,
46
92
  inject: {
47
93
  ...(systemContent ? { systemPrompt: systemContent } : {}),
@@ -52,15 +98,59 @@ function memoryRecallInjections(parent, memoryIds) {
52
98
  return out;
53
99
  }
54
100
  exports.memoryRecallInjections = memoryRecallInjections;
101
+ /**
102
+ * One injection per admitted chunk, or `undefined` when this memory left
103
+ * no usable retrieval record.
104
+ *
105
+ * Refuses to split unless the fragments rebuild the recall EXACTLY. A
106
+ * custom formatter, a hand-written `renderEntry`, or a future change to
107
+ * how blocks are joined would silently alter the prompt otherwise — so
108
+ * the guard is an equality check on the assembled bytes, not a version
109
+ * flag. Failing it falls back to the single-injection path, which is
110
+ * always correct and merely coarser.
111
+ */
112
+ function chunkInjections(parent, id, flavor, systemContent) {
113
+ const evidence = parent[(0, define_types_js_1.retrievalEvidenceKey)(id)];
114
+ const candidates = evidence?.candidates;
115
+ if (!candidates || candidates.length === 0)
116
+ return undefined;
117
+ // In PROMPT order, not score order. The record is stored best-scoring
118
+ // first; the message was assembled in the budget picker's order. Joining
119
+ // the wrong one reproduces the right bytes in a sequence the model never
120
+ // saw — which the equality check below would catch, but silently, by
121
+ // falling back to one coarse injection for every retrieval.
122
+ const admitted = candidates
123
+ .filter((c) => c.admitted && c.promptFragment !== undefined && c.promptPosition !== undefined)
124
+ .sort((a, b) => (a.promptPosition ?? 0) - (b.promptPosition ?? 0));
125
+ if (admitted.length === 0)
126
+ return undefined;
127
+ const rebuilt = admitted.map((c) => c.promptFragment ?? '').join('\n\n');
128
+ if (rebuilt !== systemContent)
129
+ return undefined;
130
+ const source = sourceOf(flavor);
131
+ return admitted.map((c) => ({
132
+ id: `memory:${id}#${c.id}`,
133
+ flavor: source,
134
+ description: c.docUri !== undefined
135
+ ? `retrieved '${c.id}' from ${c.docUri} (rank ${c.rank}, score ${c.score.toFixed(2)})`
136
+ : `retrieved '${c.id}' (rank ${c.rank}, score ${c.score.toFixed(2)})`,
137
+ retrieval: {
138
+ score: c.score,
139
+ rank: c.rank,
140
+ ...(evidence?.threshold !== undefined && { threshold: evidence.threshold }),
141
+ },
142
+ inject: { systemPrompt: c.promptFragment ?? '' },
143
+ }));
144
+ }
55
145
  /**
56
146
  * Append memory recalls to the active-injection set a slot-fork inputMapper hands to
57
147
  * the system / messages slot subflows. No-op when the agent has no memories.
58
148
  */
59
- function withMemoryRecall(activeInjections, parent, memoryIds) {
149
+ function withMemoryRecall(activeInjections, parent, memories) {
60
150
  const base = activeInjections ?? [];
61
- if (memoryIds.length === 0)
151
+ if (memories.length === 0)
62
152
  return base;
63
- const recall = memoryRecallInjections(parent, memoryIds);
153
+ const recall = memoryRecallInjections(parent, memories);
64
154
  return recall.length === 0 ? base : [...base, ...recall];
65
155
  }
66
156
  exports.withMemoryRecall = withMemoryRecall;
@@ -1 +1 @@
1
- {"version":3,"file":"memoryRecallInjections.js","sourceRoot":"","sources":["../../../src/core/agent/memoryRecallInjections.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,kEAAkE;AASlE,0FAA0F;AAC1F,SAAgB,sBAAsB,CACpC,MAA+B,EAC/B,SAA4B;IAE5B,MAAM,GAAG,GAAsB,EAAE,CAAC;IAClC,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAA,oCAAkB,EAAC,EAAE,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAC5D,MAAM,IAAI,GAAG,MAAkC,CAAC;QAChD,MAAM,aAAa,GAAG,IAAI;aACvB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;aAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;aACrB,IAAI,CAAC,MAAM,CAAC,CAAC;QAChB,MAAM,QAAQ,GAAG,IAAI;aAClB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;aAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,aAAa,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACtD,GAAG,CAAC,IAAI,CAAC;YACP,EAAE,EAAE,UAAU,EAAE,EAAE;YAClB,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE,uBAAuB,EAAE,GAAG;YACzC,MAAM,EAAE;gBACN,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7C;SACF,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AA5BD,wDA4BC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAC9B,gBAAwD,EACxD,MAA+B,EAC/B,SAA4B;IAE5B,MAAM,IAAI,GAAG,gBAAgB,IAAI,EAAE,CAAC;IACpC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzD,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC;AAC3D,CAAC;AATD,4CASC"}
1
+ {"version":3,"file":"memoryRecallInjections.js","sourceRoot":"","sources":["../../../src/core/agent/memoryRecallInjections.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"deliver.js","sourceRoot":"","sources":["../../../../src/core/agent/stages/deliver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deliver.js","sourceRoot":"","sources":["../../../../src/core/agent/stages/deliver.ts"],"names":[],"mappings":"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"}
@@ -82,6 +82,16 @@ function buildSystemPromptSlot(config) {
82
82
  sourceId: inj.id,
83
83
  reason: inj.description ?? `${inj.flavor} '${inj.id}' active`,
84
84
  rawContent: promptContent,
85
+ // Retrieval provenance (8.8.0) — present only when a retrieval
86
+ // produced this injection. These are the payload's declared
87
+ // `retrievalScore` / `rankPosition` / `threshold`, written for
88
+ // the first time; before the recall was split per chunk there
89
+ // was no single score a record could honestly carry.
90
+ ...(inj.retrieval !== undefined && {
91
+ retrievalScore: inj.retrieval.score,
92
+ rankPosition: inj.retrieval.rank,
93
+ ...(inj.retrieval.threshold !== undefined && { threshold: inj.retrieval.threshold }),
94
+ }),
85
95
  });
86
96
  }
87
97
  scope.$setValue(conventions_js_1.INJECTION_KEYS.SYSTEM_PROMPT, injections);
@@ -1 +1 @@
1
- {"version":3,"file":"buildSystemPromptSlot.js","sourceRoot":"","sources":["../../../src/core/slots/buildSystemPromptSlot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buildSystemPromptSlot.js","sourceRoot":"","sources":["../../../src/core/slots/buildSystemPromptSlot.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,9 @@ function buildToolsSlot(config) {
38
38
  // typed `context.budget_pressure` event still fires every iteration and
39
39
  // carries the per-iteration truth.
40
40
  let warnedOverflow = false;
41
+ // Same latch discipline for the provider↔skill tool-name shadow warning (8.7.0):
42
+ // one console line per offending NAME per built chart. The typed event is unlatched.
43
+ const warnedShadow = new Set();
41
44
  // Stage 1 — Discover: consult the external ToolProvider (if any) and
42
45
  // resolve its Tool[] for this iteration. ALWAYS runs (even when no
43
46
  // provider) so the trace shape is consistent across agents — the
@@ -62,9 +65,17 @@ function buildToolsSlot(config) {
62
65
  const env = scope.$getEnv();
63
66
  const activatedIds = scope.$getValue('activatedInjectionIds') ?? [];
64
67
  const identity = scope.$getValue('runIdentity');
68
+ // `activeSkillIds` is the REAL active set (8.7.0) — every skill the injection
69
+ // engine resolved for this iteration, whatever activated it. `activeSkillId`
70
+ // stays what it always was: the tail of `activatedInjectionIds`, which only
71
+ // `read_skill` writes. The two answer different questions and both are needed.
72
+ const activeSkillIds = (scope.$getValue('activeInjections') ?? [])
73
+ .filter((inj) => inj.flavor === 'skill')
74
+ .map((inj) => inj.id);
65
75
  const ctx = {
66
76
  iteration,
67
77
  ...(activatedIds.length > 0 && { activeSkillId: activatedIds[activatedIds.length - 1] }),
78
+ ...(activeSkillIds.length > 0 && { activeSkillIds }),
68
79
  ...(identity && { identity }),
69
80
  ...(env.signal && { signal: env.signal }),
70
81
  };
@@ -207,6 +218,13 @@ function buildToolsSlot(config) {
207
218
  merged.push(t);
208
219
  }
209
220
  scope.toolSchemas = merged;
221
+ reportShadowedTools(scope, {
222
+ iteration,
223
+ ...(toolProvider?.id && { providerId: toolProvider.id }),
224
+ providerSchemas,
225
+ activeInjections,
226
+ warnedShadow,
227
+ });
210
228
  const composition = (0, helpers_js_1.composeSlot)('tools', iteration, injections, budgetCap, toolProvider ? 'registry+provider+injections' : 'registry+injections');
211
229
  scope.$setValue(types_js_1.COMPOSITION_KEYS.SLOT_COMPOSED, composition);
212
230
  // Overflow is LOUD. Nothing here truncates — the full tool definitions
@@ -237,4 +255,63 @@ function buildToolsSlot(config) {
237
255
  .build();
238
256
  }
239
257
  exports.buildToolsSlot = buildToolsSlot;
258
+ /**
259
+ * Report a tool name a `ToolProvider` and an active SKILL both claim (8.7.0).
260
+ *
261
+ * The two sources disagree in opposite directions, and both directions are laws of
262
+ * this codebase rather than races:
263
+ *
264
+ * • **The provider wins the LLM's tool list.** The merge above is
265
+ * `[static, provider, skill]` with first-occurrence-wins, and an
266
+ * `autoActivate: 'currentSkill'` skill's tools are deliberately kept OUT of the
267
+ * static registry (`buildToolRegistry`), so the provider's schema — its name, its
268
+ * description, its `inputSchema` — is the one the model reads.
269
+ * • **The skill wins dispatch.** `lookupTool` checks `registryByName` first, and
270
+ * every skill tool is in that map (`buildToolRegistry` adds autoActivate tools
271
+ * explicitly so dispatch resolves once the skill is active). Provider tools are
272
+ * not in it. So the skill's `execute` is what runs.
273
+ *
274
+ * The model therefore reads one contract and calls a different implementation, with
275
+ * nothing in the trace saying so. Reported rather than refused: the provider's list
276
+ * is resolved per iteration (`list(ctx)`) and the skill has to be active, so there is
277
+ * no build-time moment at which this is knowable.
278
+ *
279
+ * A static `.tool()` colliding with a skill tool is NOT reported here —
280
+ * `buildToolRegistry` already throws on that pair at build time, which is the better
281
+ * answer when the answer is available that early.
282
+ */
283
+ function reportShadowedTools(scope, input) {
284
+ const { iteration, providerId, providerSchemas, activeInjections, warnedShadow } = input;
285
+ if (providerSchemas.length === 0)
286
+ return;
287
+ const providerNames = new Set(providerSchemas.map((s) => s.name));
288
+ for (const inj of activeInjections) {
289
+ for (const tool of inj.inject.tools ?? []) {
290
+ const toolName = tool.schema.name;
291
+ if (!providerNames.has(toolName))
292
+ continue;
293
+ // The EVENT fires every iteration — it is the channel that reaches production,
294
+ // where a dynamic provider can start shadowing on iteration 9 of a run nobody
295
+ // is watching. The console line is dev-mode only and latched per tool name, so
296
+ // a 20-iteration loop prints once (same discipline as the overflow warning).
297
+ (0, typedEmit_js_1.typedEmit)(scope, 'agentfootprint.tools.shadowed', {
298
+ toolName,
299
+ iteration,
300
+ schemaFrom: 'provider',
301
+ ...(providerId && { schemaFromId: providerId }),
302
+ dispatchTo: 'skill',
303
+ dispatchToId: inj.id,
304
+ });
305
+ if (!(0, footprintjs_1.isDevMode)() || warnedShadow.has(toolName))
306
+ continue;
307
+ warnedShadow.add(toolName);
308
+ // eslint-disable-next-line no-console
309
+ console.warn(`agentfootprint tools: '${toolName}' is declared by BOTH the tool provider` +
310
+ `${providerId ? ` '${providerId}'` : ''} and the active skill '${inj.id}'. The model ` +
311
+ `is shown the PROVIDER's description, but dispatch always resolves the SKILL's ` +
312
+ `implementation — so the model reads one tool's contract and calls another's. Rename ` +
313
+ `one of them, or drop it from the skill's tools:[] if the provider is meant to own it.`);
314
+ }
315
+ }
316
+ }
240
317
  //# 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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"}
@@ -8,16 +8,18 @@
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.formatOverflowWarning = exports.slotOverflow = exports.composeSlot = exports.breakdown = exports.truncate = exports.fnv1a = void 0;
11
- /** Non-cryptographic stable hash — sufficient for InjectionRecord dedup. */
12
- function fnv1a(input) {
13
- let h = 2166136261;
14
- for (let i = 0; i < input.length; i++) {
15
- h ^= input.charCodeAt(i);
16
- h = Math.imul(h, 16777619);
17
- }
18
- return (h >>> 0).toString(16);
19
- }
20
- exports.fnv1a = fnv1a;
11
+ /**
12
+ * Non-cryptographic stable hash — sufficient for InjectionRecord dedup.
13
+ *
14
+ * The implementation moved to `lib/fnv1a.ts` in 8.8.0 so the memory
15
+ * layer's retrieval record can hash the same way without importing
16
+ * `core/` (which imports `memory/` — the cycle is why a second copy was
17
+ * the alternative). Re-exported here under the same name: every existing
18
+ * importer of `helpers.fnv1a` is untouched, and there is still exactly
19
+ * one implementation.
20
+ */
21
+ var fnv1a_js_1 = require("../../lib/fnv1a.js");
22
+ Object.defineProperty(exports, "fnv1a", { enumerable: true, get: function () { return fnv1a_js_1.fnv1a; } });
21
23
  /** Truncate with ellipsis for contentSummary fields. */
22
24
  function truncate(s, n) {
23
25
  if (s.length <= n)
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/core/slots/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/core/slots/helpers.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AASH;;;;;;;;;GASG;AACH,+CAA2C;AAAlC,iGAAA,KAAK,OAAA;AAEd,wDAAwD;AACxD,SAAgB,QAAQ,CAAC,CAAS,EAAE,CAAS;IAC3C,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAC5B,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AACjC,CAAC;AAHD,4BAGC;AAED,gFAAgF;AAChF,SAAgB,SAAS,CACvB,UAAsC;IAEtC,MAAM,GAAG,GAAqE,EAAE,CAAC;IACjF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,CAAC,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC;QAC9D,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,QAAQ,EAAE,CAAC;YACb,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG;gBACd,KAAK,EAAE,QAAQ,CAAC,KAAK,GAAG,KAAK;gBAC7B,KAAK,EAAE,QAAQ,CAAC,KAAK,GAAG,CAAC;aAC1B,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACtC,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAjBD,8BAiBC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CACzB,IAAiB,EACjB,SAAiB,EACjB,UAAsC,EACtC,SAAiB,EACjB,gBAAyB,EACzB,OAAyD;IAEzD,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAC5B,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,EACnE,CAAC,CACF,CAAC;IACF,OAAO;QACL,IAAI;QACJ,SAAS;QACT,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC,EAAE;QAC9E,eAAe,EAAE,SAAS,CAAC,UAAU,CAAC;QACtC,GAAG,CAAC,gBAAgB,KAAK,SAAS,IAAI,EAAE,gBAAgB,EAAE,CAAC;QAC3D,YAAY,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;QACjC,gBAAgB,EAAE,OAAO,EAAE,SAAS,IAAI,EAAE;KAC3C,CAAC;AACJ,CAAC;AArBD,kCAqBC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,YAAY,CAAC,WAA4B;IACvD,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC;IACzC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO;QACL,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,SAAS,EAAE,GAAG;QACd,eAAe,EAAE,IAAI;QACrB,UAAU,EAAE,IAAI,GAAG,GAAG;QACtB,UAAU,EAAE,MAAM;KACnB,CAAC;AACJ,CAAC;AAVD,oCAUC;AAED;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,IASrC;IACC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACpE,OAAO,CACL,oBAAoB,QAAQ,CAAC,IAAI,qBAAqB;QACtD,GAAG,QAAQ,CAAC,eAAe,IAAI,QAAQ,CAAC,SAAS,YAAY,QAAQ,CAAC,UAAU,KAAK;QACrF,GAAG,SAAS,IAAI,QAAQ,yCAAyC,WAAW,aAAa;QACzF,0DAA0D,MAAM,EAAE,CACnE,CAAC;AACJ,CAAC;AAjBD,sDAiBC"}
@@ -6,12 +6,15 @@
6
6
  * Re-exported by Agent.ts so external consumers importing
7
7
  * `AgentBuilder` from `'../core/Agent.js'` continue to work.
8
8
  */
9
+ import { isDevMode } from 'footprintjs';
9
10
  import { buildDefaultInstruction, } from '../outputSchema.js';
10
11
  import { buildSchemaTool, resolveJsonSchema, SCHEMA_TOOL_NAME, } from './outputEnforcement.js';
11
12
  import { validateCannedAgainstSchema, } from '../outputFallback.js';
12
13
  import { toolOnlyDeliveryRefusal } from '../../lib/injection-engine/skillBodyDelivery.js';
13
14
  import { defineInstruction } from '../../lib/injection-engine/factories/defineInstruction.js';
14
15
  import { messagesToolRoleRefusal } from '../../lib/injection-engine/messagesSlotRefusal.js';
16
+ import { READS_ENTRY_SCORES_METADATA_KEY } from '../../lib/injection-engine/factories/defineRelevanceHint.js';
17
+ import { skillScopedToolsTarget } from '../../tool-providers/skillScopedTools.js';
15
18
  import { defaultCommentaryTemplates } from '../../recorders/observability/commentary/commentaryTemplates.js';
16
19
  import { defaultStatusTemplates } from '../../recorders/observability/status/statusTemplates.js';
17
20
  import { buildSelfExplainSkill, buildSelfExplainToolProvider, SelfExplainBinding, } from '../../lib/trace-toolpack/selfExplain.js';
@@ -639,6 +642,7 @@ export class AgentBuilder {
639
642
  throw new Error(messagesToolRoleRefusal(`Agent.injection('${injection.id}')`));
640
643
  }
641
644
  }
645
+ assertReadSkillActivation(injection);
642
646
  this.injectionList.push(injection);
643
647
  return this;
644
648
  }
@@ -1379,6 +1383,11 @@ export class AgentBuilder {
1379
1383
  const deliveryRefusal = toolOnlyDeliveryRefusal(injections);
1380
1384
  if (deliveryRefusal)
1381
1385
  throw new Error(deliveryRefusal);
1386
+ // Two dev-mode warnings about wiring that is inert rather than wrong (8.7.0).
1387
+ // Both need the WHOLE agent — one asks whether a scorer exists, the other pairs a
1388
+ // provider against an injection — so both live here, beside the refusal above.
1389
+ warnInertRelevanceHint(injections, this.skillGraphScoreEntries !== undefined);
1390
+ warnRedundantSkillScopedTools(this.toolProviderRef, injections);
1382
1391
  const agent = new Agent(opts, this.systemPromptValue, this.registry, voice, injections, this.memoryList, this.outputSchemaParser, toolProvider, this.systemPromptCachePolicy, this.cachingDisabledValue, this.cacheStrategyOverride, this.outputFallbackCfg, this.reliabilityConfig, this.thinkingHandlerValue, this.thinkingBudgetValue, this.skillGraphNextSkill, this.skillGraphReachable, this.skillGraphScoreEntries, this.checkInConfig, this.runConfigFn, this.windowStrategyValue, this.toolMiddlewareList, this.messageMiddlewareList, this.resolveOutputEnforcement(), this.skillGraphEdgeTargets, this.skillGraphExplainNextSkill, this.skillGraphIsTree);
1383
1392
  // Attach the observers collected by `.watch()` so they receive events
1384
1393
  // from the very first run. Mirrors what consumers would do post-build
@@ -1396,6 +1405,101 @@ export class AgentBuilder {
1396
1405
  return agent;
1397
1406
  }
1398
1407
  }
1408
+ /**
1409
+ * Refuse an `llm-activated` trigger whose `viaToolName` is not `'read_skill'` (8.7.0).
1410
+ *
1411
+ * `viaToolName` reads as a promise the library never kept: name a tool, and that tool
1412
+ * activates the skill. No such tool has ever been created. The one consumer of an
1413
+ * `llm-activated` trigger is the evaluator, which matches on
1414
+ * `ctx.activatedInjectionIds.includes(inj.id)` and never looks at the field
1415
+ * (`evaluator.ts`); the only writer of that array is `read_skill`. So a skill carrying
1416
+ * `viaToolName: 'open_playbook'` activated by `read_skill` exactly like every other
1417
+ * skill, and the declaration meant nothing at all — a configuration that was never
1418
+ * read is worse than one that is refused, because it looks like it worked.
1419
+ *
1420
+ * Refused HERE because `injection()` is the one funnel every flavor passes through:
1421
+ * `defineSkill`, `skillsFromDir({ viaToolName })`, `.skill()`, `.skills(registry)`,
1422
+ * `.skillGraph()` and a hand-built Injection all arrive at this line. The option
1423
+ * itself is removed in 9.0.0.
1424
+ */
1425
+ function assertReadSkillActivation(injection) {
1426
+ const trigger = injection.trigger;
1427
+ if (trigger.kind !== 'llm-activated')
1428
+ return;
1429
+ if (trigger.viaToolName === 'read_skill')
1430
+ return;
1431
+ throw new Error(`Agent.injection('${injection.id}'): viaToolName is '${trigger.viaToolName}', but ` +
1432
+ `'read_skill' is the only activation tool this library builds — nothing reads the field, ` +
1433
+ `and no tool named '${trigger.viaToolName}' is ever offered to the model. This skill would ` +
1434
+ `have activated through read_skill like every other one, so the name was decoration on a ` +
1435
+ `door that does not exist. Drop \`viaToolName\` (skills already share one activation tool ` +
1436
+ `and the model picks WHICH skill by id), or gate the skill on something the engine does ` +
1437
+ `read — a \`rule\` trigger, or a skillGraph() edge. The option is removed in 9.0.0.`);
1438
+ }
1439
+ /**
1440
+ * Dev-warn a `defineRelevanceHint()` mounted where no scorer can feed it (8.7.0).
1441
+ *
1442
+ * The hint's trigger reads `ctx.entryScores`, and only the PickEntry stage writes it
1443
+ * — which runs only when the graph was built with `.entryBy()` / `.entryByRelevance()`
1444
+ * / `start: { entries, scoredBy | byRelevance }`. Without one, the injection mounts,
1445
+ * evaluates false on every iteration for the life of the agent, and reports nothing:
1446
+ * a feature that is configured and inert looks exactly like a feature that is working
1447
+ * and simply has not been needed yet.
1448
+ *
1449
+ * Keyed on the `readsEntryScores` metadata marker, not on the id — the id is the
1450
+ * caller's to rename.
1451
+ */
1452
+ function warnInertRelevanceHint(injections, hasScorer) {
1453
+ if (hasScorer || !isDevMode())
1454
+ return;
1455
+ for (const inj of injections) {
1456
+ const meta = inj.metadata;
1457
+ if (meta?.[READS_ENTRY_SCORES_METADATA_KEY] !== true)
1458
+ continue;
1459
+ // eslint-disable-next-line no-console
1460
+ console.warn(`agentfootprint Agent: injection '${inj.id}' reads ctx.entryScores, which only an ENTRY ` +
1461
+ `SCORER produces — and this agent's skill graph has none, so the injection can never ` +
1462
+ `activate. Build the graph with .entryBy(keywordScorer()) or .entryByRelevance(embedder) ` +
1463
+ `(object form: start: { entries, scoredBy }), or drop the injection. Note .entryByRead() ` +
1464
+ `does NOT score — there the model picks, so there is no near-tie to report.`);
1465
+ }
1466
+ }
1467
+ /**
1468
+ * Dev-warn a `skillScopedTools(id, …)` pointed at a skill that already scopes its own
1469
+ * tools (8.7.0).
1470
+ *
1471
+ * `defineSkill({ tools, autoActivate: 'currentSkill' })` already narrows the LLM's
1472
+ * tool list to the active skill, with no provider at all — that is what
1473
+ * `skillScopedTools`' own header means by "you probably don't need this". Wiring both
1474
+ * gives one skill two tool sources keyed on two DIFFERENT signals (the graph's active
1475
+ * set vs. the last `read_skill` call), which is how a tool ends up visible on
1476
+ * iterations nobody expected — and it is the exact pairing that put a shadowed tool
1477
+ * name into a field agent.
1478
+ */
1479
+ function warnRedundantSkillScopedTools(provider, injections) {
1480
+ if (!isDevMode())
1481
+ return;
1482
+ const target = skillScopedToolsTarget(provider?.id);
1483
+ if (target === undefined)
1484
+ return;
1485
+ const skill = injections.find((i) => i.id === target);
1486
+ if (!skill)
1487
+ return;
1488
+ const meta = skill.metadata;
1489
+ if (meta?.autoActivate !== 'currentSkill')
1490
+ return;
1491
+ if ((skill.inject?.tools ?? []).length === 0)
1492
+ return;
1493
+ // eslint-disable-next-line no-console
1494
+ console.warn(`agentfootprint Agent: skillScopedTools('${target}') is wired, but skill '${target}' already ` +
1495
+ `carries autoActivate: 'currentSkill' with its own tools:[] — which narrows the tool list ` +
1496
+ `to that skill on its own. The two gates key on DIFFERENT signals (the provider on the ` +
1497
+ `last read_skill call, the skill on the graph's active set), so a tool can appear on ` +
1498
+ `iterations you did not expect, and a name declared on both sides shadows (the model ` +
1499
+ `reads the provider's description and the skill's implementation runs). Keep one: the ` +
1500
+ `skill's tools:[] if the tools belong to the skill, the provider if they are assembled ` +
1501
+ `elsewhere.`);
1502
+ }
1399
1503
  /**
1400
1504
  * Validate `.outputSchema(…, { retries })`.
1401
1505
  *