agentfootprint 11.2.0 → 11.4.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 (259) hide show
  1. package/AGENTS.md +1 -1
  2. package/CAPABILITIES.md +4 -0
  3. package/ai-instructions/claude-code/SKILL.md +1 -1
  4. package/dist/adapters/identity/verify/claims.js +3 -3
  5. package/dist/adapters/mcp/agentcoreRuntime/invoke.js +3 -2
  6. package/dist/adapters/mcp/agentcoreRuntime/invoke.js.map +1 -1
  7. package/dist/adapters/mcp/agentcoreRuntime/sessionBusy.js +6 -5
  8. package/dist/adapters/mcp/agentcoreRuntime/sessionBusy.js.map +1 -1
  9. package/dist/adapters/mcp/agentcoreRuntime/transport.js +8 -6
  10. package/dist/adapters/mcp/agentcoreRuntime/transport.js.map +1 -1
  11. package/dist/answer-account/account.js +15 -3
  12. package/dist/answer-account/account.js.map +1 -1
  13. package/dist/answer-account/facts/howSure.js +10 -22
  14. package/dist/answer-account/facts/howSure.js.map +1 -1
  15. package/dist/core/Agent.js +26 -3
  16. package/dist/core/Agent.js.map +1 -1
  17. package/dist/core/agent/AgentBuilder.js +69 -12
  18. package/dist/core/agent/AgentBuilder.js.map +1 -1
  19. package/dist/core/agent/assessment/assess.js +15 -4
  20. package/dist/core/agent/assessment/assess.js.map +1 -1
  21. package/dist/core/agent/assessment/compose.js +153 -15
  22. package/dist/core/agent/assessment/compose.js.map +1 -1
  23. package/dist/core/agent/assessment/reasons.js +35 -1
  24. package/dist/core/agent/assessment/reasons.js.map +1 -1
  25. package/dist/core/agent/assessment/sources.js +205 -0
  26. package/dist/core/agent/assessment/sources.js.map +1 -0
  27. package/dist/core/agent/assessment/stage.js +15 -4
  28. package/dist/core/agent/assessment/stage.js.map +1 -1
  29. package/dist/core/agent/buildAgentChart.js.map +1 -1
  30. package/dist/core/agent/buildToolRegistry.js +4 -1
  31. package/dist/core/agent/buildToolRegistry.js.map +1 -1
  32. package/dist/core/agent/evidence/evidenceIndex.js +30 -2
  33. package/dist/core/agent/evidence/evidenceIndex.js.map +1 -1
  34. package/dist/core/agent/evidence/extract.js +34 -5
  35. package/dist/core/agent/evidence/extract.js.map +1 -1
  36. package/dist/core/agent/evidence/figures.js +31 -3
  37. package/dist/core/agent/evidence/figures.js.map +1 -1
  38. package/dist/core/agent/evidence/numberPrecision.js +58 -2
  39. package/dist/core/agent/evidence/numberPrecision.js.map +1 -1
  40. package/dist/core/agent/honesty/mounts.js.map +1 -1
  41. package/dist/core/agent/stages/prepareFinal.js +33 -17
  42. package/dist/core/agent/stages/prepareFinal.js.map +1 -1
  43. package/dist/core/agent/stages/route.js +2 -1
  44. package/dist/core/agent/stages/route.js.map +1 -1
  45. package/dist/core/agent/stages/toolCalls.js +14 -1
  46. package/dist/core/agent/stages/toolCalls.js.map +1 -1
  47. package/dist/core/slots/buildToolsSlot.js +1 -1
  48. package/dist/core/slots/buildToolsSlot.js.map +1 -1
  49. package/dist/esm/adapters/identity/jwks.d.ts +2 -2
  50. package/dist/esm/adapters/identity/verify/claims.d.ts +3 -3
  51. package/dist/esm/adapters/identity/verify/claims.js +3 -3
  52. package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.d.ts +3 -2
  53. package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.js +3 -2
  54. package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.js.map +1 -1
  55. package/dist/esm/adapters/mcp/agentcoreRuntime/sessionBusy.d.ts +6 -5
  56. package/dist/esm/adapters/mcp/agentcoreRuntime/sessionBusy.js +6 -5
  57. package/dist/esm/adapters/mcp/agentcoreRuntime/sessionBusy.js.map +1 -1
  58. package/dist/esm/adapters/mcp/agentcoreRuntime/transport.d.ts +3 -1
  59. package/dist/esm/adapters/mcp/agentcoreRuntime/transport.js +9 -7
  60. package/dist/esm/adapters/mcp/agentcoreRuntime/transport.js.map +1 -1
  61. package/dist/esm/answer-account/account.js +16 -4
  62. package/dist/esm/answer-account/account.js.map +1 -1
  63. package/dist/esm/answer-account/facts/howSure.js +10 -22
  64. package/dist/esm/answer-account/facts/howSure.js.map +1 -1
  65. package/dist/esm/core/Agent.d.ts +2 -1
  66. package/dist/esm/core/Agent.js +26 -3
  67. package/dist/esm/core/Agent.js.map +1 -1
  68. package/dist/esm/core/agent/AgentBuilder.d.ts +22 -1
  69. package/dist/esm/core/agent/AgentBuilder.js +69 -12
  70. package/dist/esm/core/agent/AgentBuilder.js.map +1 -1
  71. package/dist/esm/core/agent/assessment/assess.js +15 -4
  72. package/dist/esm/core/agent/assessment/assess.js.map +1 -1
  73. package/dist/esm/core/agent/assessment/compose.d.ts +82 -5
  74. package/dist/esm/core/agent/assessment/compose.js +148 -14
  75. package/dist/esm/core/agent/assessment/compose.js.map +1 -1
  76. package/dist/esm/core/agent/assessment/reasons.d.ts +17 -1
  77. package/dist/esm/core/agent/assessment/reasons.js +35 -1
  78. package/dist/esm/core/agent/assessment/reasons.js.map +1 -1
  79. package/dist/esm/core/agent/assessment/sources.d.ts +66 -0
  80. package/dist/esm/core/agent/assessment/sources.js +201 -0
  81. package/dist/esm/core/agent/assessment/sources.js.map +1 -0
  82. package/dist/esm/core/agent/assessment/stage.d.ts +17 -4
  83. package/dist/esm/core/agent/assessment/stage.js +16 -5
  84. package/dist/esm/core/agent/assessment/stage.js.map +1 -1
  85. package/dist/esm/core/agent/assessment/types.d.ts +37 -0
  86. package/dist/esm/core/agent/buildAgentChart.d.ts +8 -0
  87. package/dist/esm/core/agent/buildAgentChart.js.map +1 -1
  88. package/dist/esm/core/agent/buildToolRegistry.js +5 -2
  89. package/dist/esm/core/agent/buildToolRegistry.js.map +1 -1
  90. package/dist/esm/core/agent/evidence/evidenceIndex.d.ts +12 -2
  91. package/dist/esm/core/agent/evidence/evidenceIndex.js +30 -2
  92. package/dist/esm/core/agent/evidence/evidenceIndex.js.map +1 -1
  93. package/dist/esm/core/agent/evidence/extract.js +35 -6
  94. package/dist/esm/core/agent/evidence/extract.js.map +1 -1
  95. package/dist/esm/core/agent/evidence/figures.d.ts +6 -0
  96. package/dist/esm/core/agent/evidence/figures.js +32 -4
  97. package/dist/esm/core/agent/evidence/figures.js.map +1 -1
  98. package/dist/esm/core/agent/evidence/numberPrecision.d.ts +29 -1
  99. package/dist/esm/core/agent/evidence/numberPrecision.js +56 -1
  100. package/dist/esm/core/agent/evidence/numberPrecision.js.map +1 -1
  101. package/dist/esm/core/agent/honesty/mounts.d.ts +11 -2
  102. package/dist/esm/core/agent/honesty/mounts.js.map +1 -1
  103. package/dist/esm/core/agent/stages/prepareFinal.d.ts +19 -3
  104. package/dist/esm/core/agent/stages/prepareFinal.js +33 -17
  105. package/dist/esm/core/agent/stages/prepareFinal.js.map +1 -1
  106. package/dist/esm/core/agent/stages/route.js +2 -1
  107. package/dist/esm/core/agent/stages/route.js.map +1 -1
  108. package/dist/esm/core/agent/stages/toolCalls.js +14 -1
  109. package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
  110. package/dist/esm/core/agent/types.d.ts +16 -2
  111. package/dist/esm/core/slots/buildToolsSlot.js +1 -1
  112. package/dist/esm/core/slots/buildToolsSlot.js.map +1 -1
  113. package/dist/esm/events/payloads.d.ts +194 -0
  114. package/dist/esm/events/registry.d.ts +3 -1
  115. package/dist/esm/events/registry.js +2 -0
  116. package/dist/esm/events/registry.js.map +1 -1
  117. package/dist/esm/hosting/doorGuard.d.ts +3 -3
  118. package/dist/esm/hosting/doorGuard.js +2 -2
  119. package/dist/esm/hosting/nodeHost.d.ts +1 -1
  120. package/dist/esm/lib/displayName.d.ts +81 -0
  121. package/dist/esm/lib/displayName.js +119 -0
  122. package/dist/esm/lib/displayName.js.map +1 -0
  123. package/dist/esm/mcp/callLifetime.d.ts +49 -0
  124. package/dist/esm/mcp/callLifetime.js +99 -0
  125. package/dist/esm/mcp/callLifetime.js.map +1 -0
  126. package/dist/esm/mcp/mcpClient.d.ts +4 -1
  127. package/dist/esm/mcp/mcpClient.js +70 -28
  128. package/dist/esm/mcp/mcpClient.js.map +1 -1
  129. package/dist/esm/mcp/requestLedger.d.ts +97 -0
  130. package/dist/esm/mcp/requestLedger.js +192 -0
  131. package/dist/esm/mcp/requestLedger.js.map +1 -0
  132. package/dist/esm/mcp/seriesEvidence.d.ts +102 -0
  133. package/dist/esm/mcp/seriesEvidence.js +246 -0
  134. package/dist/esm/mcp/seriesEvidence.js.map +1 -0
  135. package/dist/esm/mcp/throttleRetry.d.ts +70 -35
  136. package/dist/esm/mcp/throttleRetry.js +181 -54
  137. package/dist/esm/mcp/throttleRetry.js.map +1 -1
  138. package/dist/esm/mcp/types.d.ts +12 -7
  139. package/dist/esm/redaction/knownStrings.js +30 -0
  140. package/dist/esm/redaction/knownStrings.js.map +1 -1
  141. package/dist/esm/security/PermissionPolicy.d.ts +1 -1
  142. package/dist/esm/security/PermissionPolicy.js +1 -1
  143. package/dist/esm/semantics/coverage/answer.d.ts +9 -1
  144. package/dist/esm/semantics/coverage/answer.js +50 -10
  145. package/dist/esm/semantics/coverage/answer.js.map +1 -1
  146. package/dist/esm/strategies/defaults/chatBubbleLiveStatus.d.ts +1 -1
  147. package/dist/esm/strategies/defaults/chatBubbleLiveStatus.js +1 -1
  148. package/dist/esm/tool-lint/analyze.d.ts +1 -1
  149. package/dist/esm/tool-lint/analyze.js +1 -1
  150. package/dist/esm/tool-lint/rules.d.ts +3 -3
  151. package/dist/esm/tool-lint/rules.js +3 -3
  152. package/dist/esm/tools/requestEvidence.d.ts +78 -0
  153. package/dist/esm/tools/requestEvidence.js +331 -0
  154. package/dist/esm/tools/requestEvidence.js.map +1 -0
  155. package/dist/esm/tools/tools.d.ts +30 -0
  156. package/dist/esm/tools/tools.js +16 -0
  157. package/dist/esm/tools/tools.js.map +1 -1
  158. package/dist/events/registry.js +2 -0
  159. package/dist/events/registry.js.map +1 -1
  160. package/dist/hosting/doorGuard.js +2 -2
  161. package/dist/lib/displayName.js +125 -0
  162. package/dist/lib/displayName.js.map +1 -0
  163. package/dist/mcp/callLifetime.js +103 -0
  164. package/dist/mcp/callLifetime.js.map +1 -0
  165. package/dist/mcp/mcpClient.js +69 -27
  166. package/dist/mcp/mcpClient.js.map +1 -1
  167. package/dist/mcp/requestLedger.js +196 -0
  168. package/dist/mcp/requestLedger.js.map +1 -0
  169. package/dist/mcp/seriesEvidence.js +251 -0
  170. package/dist/mcp/seriesEvidence.js.map +1 -0
  171. package/dist/mcp/throttleRetry.js +184 -55
  172. package/dist/mcp/throttleRetry.js.map +1 -1
  173. package/dist/redaction/knownStrings.js +30 -0
  174. package/dist/redaction/knownStrings.js.map +1 -1
  175. package/dist/security/PermissionPolicy.js +1 -1
  176. package/dist/semantics/coverage/answer.js +49 -9
  177. package/dist/semantics/coverage/answer.js.map +1 -1
  178. package/dist/strategies/defaults/chatBubbleLiveStatus.js +1 -1
  179. package/dist/tool-lint/analyze.js +1 -1
  180. package/dist/tool-lint/rules.js +3 -3
  181. package/dist/tools/requestEvidence.js +337 -0
  182. package/dist/tools/requestEvidence.js.map +1 -0
  183. package/dist/tools/tools.js +18 -1
  184. package/dist/tools/tools.js.map +1 -1
  185. package/dist/types/adapters/identity/jwks.d.ts +2 -2
  186. package/dist/types/adapters/identity/verify/claims.d.ts +3 -3
  187. package/dist/types/adapters/mcp/agentcoreRuntime/invoke.d.ts +3 -2
  188. package/dist/types/adapters/mcp/agentcoreRuntime/invoke.d.ts.map +1 -1
  189. package/dist/types/adapters/mcp/agentcoreRuntime/sessionBusy.d.ts +6 -5
  190. package/dist/types/adapters/mcp/agentcoreRuntime/sessionBusy.d.ts.map +1 -1
  191. package/dist/types/adapters/mcp/agentcoreRuntime/transport.d.ts +3 -1
  192. package/dist/types/adapters/mcp/agentcoreRuntime/transport.d.ts.map +1 -1
  193. package/dist/types/answer-account/account.d.ts.map +1 -1
  194. package/dist/types/answer-account/facts/howSure.d.ts.map +1 -1
  195. package/dist/types/core/Agent.d.ts +2 -1
  196. package/dist/types/core/Agent.d.ts.map +1 -1
  197. package/dist/types/core/agent/AgentBuilder.d.ts +22 -1
  198. package/dist/types/core/agent/AgentBuilder.d.ts.map +1 -1
  199. package/dist/types/core/agent/assessment/assess.d.ts.map +1 -1
  200. package/dist/types/core/agent/assessment/compose.d.ts +82 -5
  201. package/dist/types/core/agent/assessment/compose.d.ts.map +1 -1
  202. package/dist/types/core/agent/assessment/reasons.d.ts +17 -1
  203. package/dist/types/core/agent/assessment/reasons.d.ts.map +1 -1
  204. package/dist/types/core/agent/assessment/sources.d.ts +67 -0
  205. package/dist/types/core/agent/assessment/sources.d.ts.map +1 -0
  206. package/dist/types/core/agent/assessment/stage.d.ts +17 -4
  207. package/dist/types/core/agent/assessment/stage.d.ts.map +1 -1
  208. package/dist/types/core/agent/assessment/types.d.ts +37 -0
  209. package/dist/types/core/agent/assessment/types.d.ts.map +1 -1
  210. package/dist/types/core/agent/buildAgentChart.d.ts +8 -0
  211. package/dist/types/core/agent/buildAgentChart.d.ts.map +1 -1
  212. package/dist/types/core/agent/buildToolRegistry.d.ts.map +1 -1
  213. package/dist/types/core/agent/evidence/evidenceIndex.d.ts +12 -2
  214. package/dist/types/core/agent/evidence/evidenceIndex.d.ts.map +1 -1
  215. package/dist/types/core/agent/evidence/extract.d.ts.map +1 -1
  216. package/dist/types/core/agent/evidence/figures.d.ts +6 -0
  217. package/dist/types/core/agent/evidence/figures.d.ts.map +1 -1
  218. package/dist/types/core/agent/evidence/numberPrecision.d.ts +29 -1
  219. package/dist/types/core/agent/evidence/numberPrecision.d.ts.map +1 -1
  220. package/dist/types/core/agent/honesty/mounts.d.ts +11 -2
  221. package/dist/types/core/agent/honesty/mounts.d.ts.map +1 -1
  222. package/dist/types/core/agent/stages/prepareFinal.d.ts +19 -3
  223. package/dist/types/core/agent/stages/prepareFinal.d.ts.map +1 -1
  224. package/dist/types/core/agent/stages/route.d.ts.map +1 -1
  225. package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
  226. package/dist/types/core/agent/types.d.ts +16 -2
  227. package/dist/types/core/agent/types.d.ts.map +1 -1
  228. package/dist/types/events/payloads.d.ts +194 -0
  229. package/dist/types/events/payloads.d.ts.map +1 -1
  230. package/dist/types/events/registry.d.ts +3 -1
  231. package/dist/types/events/registry.d.ts.map +1 -1
  232. package/dist/types/hosting/doorGuard.d.ts +3 -3
  233. package/dist/types/hosting/nodeHost.d.ts +1 -1
  234. package/dist/types/lib/displayName.d.ts +82 -0
  235. package/dist/types/lib/displayName.d.ts.map +1 -0
  236. package/dist/types/mcp/callLifetime.d.ts +50 -0
  237. package/dist/types/mcp/callLifetime.d.ts.map +1 -0
  238. package/dist/types/mcp/mcpClient.d.ts +4 -1
  239. package/dist/types/mcp/mcpClient.d.ts.map +1 -1
  240. package/dist/types/mcp/requestLedger.d.ts +98 -0
  241. package/dist/types/mcp/requestLedger.d.ts.map +1 -0
  242. package/dist/types/mcp/seriesEvidence.d.ts +103 -0
  243. package/dist/types/mcp/seriesEvidence.d.ts.map +1 -0
  244. package/dist/types/mcp/throttleRetry.d.ts +70 -35
  245. package/dist/types/mcp/throttleRetry.d.ts.map +1 -1
  246. package/dist/types/mcp/types.d.ts +12 -7
  247. package/dist/types/mcp/types.d.ts.map +1 -1
  248. package/dist/types/redaction/knownStrings.d.ts.map +1 -1
  249. package/dist/types/security/PermissionPolicy.d.ts +1 -1
  250. package/dist/types/semantics/coverage/answer.d.ts +9 -1
  251. package/dist/types/semantics/coverage/answer.d.ts.map +1 -1
  252. package/dist/types/strategies/defaults/chatBubbleLiveStatus.d.ts +1 -1
  253. package/dist/types/tool-lint/analyze.d.ts +1 -1
  254. package/dist/types/tool-lint/rules.d.ts +3 -3
  255. package/dist/types/tools/requestEvidence.d.ts +79 -0
  256. package/dist/types/tools/requestEvidence.d.ts.map +1 -0
  257. package/dist/types/tools/tools.d.ts +30 -0
  258. package/dist/types/tools/tools.d.ts.map +1 -1
  259. package/package.json +1 -1
@@ -8,7 +8,7 @@
8
8
  * rendered status update.
9
9
  *
10
10
  * Use when:
11
- * - Building a chat UI (Neo, Lens, embedded widget) where the
11
+ * - Building a chat UI (the host app, Lens, embedded widget) where the
12
12
  * consumer owns rendering but not state derivation
13
13
  * - Tier-1 of compose chains (`compose([chatBubble(setLine), stdout()])`
14
14
  * so dev console mirrors what the user sees)
@@ -39,7 +39,7 @@ export declare const DEFAULT_CONFUSABILITY_THRESHOLD = 0.85;
39
39
  export declare const DEFAULT_WATCH_BAND = 0.05;
40
40
  /**
41
41
  * Threshold/band calibrated for the char-frequency `mockEmbedder` on
42
- * realistic tool prose (seed corpus: the Neo SAN catalog). The mock
42
+ * realistic tool prose (seed corpus: the host-app SAN catalog). The mock
43
43
  * compresses unrelated descriptions into ~0.85–0.97 cosine, so expect
44
44
  * false positives even at 0.94 — with the mock, the RELATIVE ordering
45
45
  * of `report.similarity.ranked` is the trustworthy signal; absolute
@@ -39,7 +39,7 @@ export const DEFAULT_CONFUSABILITY_THRESHOLD = 0.85;
39
39
  export const DEFAULT_WATCH_BAND = 0.05;
40
40
  /**
41
41
  * Threshold/band calibrated for the char-frequency `mockEmbedder` on
42
- * realistic tool prose (seed corpus: the Neo SAN catalog). The mock
42
+ * realistic tool prose (seed corpus: the host-app SAN catalog). The mock
43
43
  * compresses unrelated descriptions into ~0.85–0.97 cosine, so expect
44
44
  * false positives even at 0.94 — with the mock, the RELATIVE ordering
45
45
  * of `report.similarity.ranked` is the trustworthy signal; absolute
@@ -9,7 +9,7 @@
9
9
  * Role: `src/tool-lint/` leaf. Pure functions over `CatalogTool`;
10
10
  * no embedder, no I/O.
11
11
  *
12
- * Every rule encodes a FIELD FINDING from real catalogs (the Neo SAN
12
+ * Every rule encodes a FIELD FINDING from real catalogs (the host-app SAN
13
13
  * triage agent's 29-tool catalog was the seed corpus):
14
14
  *
15
15
  * 1. description-missing-or-short — the model can only guess from a name.
@@ -57,7 +57,7 @@ export declare function saysWhatNotWhenRule(options?: SaysWhatNotWhenRuleOptions
57
57
  * (pipe-separated literals, or comma lists behind "one of"/"allowed
58
58
  * values") should declare a JSON-Schema `enum` instead — the model picks
59
59
  * reliably from enums, and arg validators (#9) can enforce them. The
60
- * field case: Neo's `influx_get_port_ranking.metric` =
60
+ * field case: the host app's `influx_get_port_ranking.metric` =
61
61
  * `"avg_iops | peak_iops | mbps"`.
62
62
  */
63
63
  export declare function enumInProseRule(): LintRule;
@@ -68,7 +68,7 @@ export interface OptionalParamRuleOptions {
68
68
  readonly omissionCues?: readonly string[];
69
69
  }
70
70
  /**
71
- * An optional param's omission usually MEANS something (Neo:
71
+ * An optional param's omission usually MEANS something (host app:
72
72
  * `influx_get_interface_counters` without `switch_name` = fabric-wide
73
73
  * sweep) — but the model can only reason about leaving a param out if
74
74
  * the description says so. No description at all, or one with no
@@ -9,7 +9,7 @@
9
9
  * Role: `src/tool-lint/` leaf. Pure functions over `CatalogTool`;
10
10
  * no embedder, no I/O.
11
11
  *
12
- * Every rule encodes a FIELD FINDING from real catalogs (the Neo SAN
12
+ * Every rule encodes a FIELD FINDING from real catalogs (the host-app SAN
13
13
  * triage agent's 29-tool catalog was the seed corpus):
14
14
  *
15
15
  * 1. description-missing-or-short — the model can only guess from a name.
@@ -131,7 +131,7 @@ const COMMA_LIST = new RegExp(`(?:one of|allowed values?|valid values?|options|v
131
131
  * (pipe-separated literals, or comma lists behind "one of"/"allowed
132
132
  * values") should declare a JSON-Schema `enum` instead — the model picks
133
133
  * reliably from enums, and arg validators (#9) can enforce them. The
134
- * field case: Neo's `influx_get_port_ranking.metric` =
134
+ * field case: the host app's `influx_get_port_ranking.metric` =
135
135
  * `"avg_iops | peak_iops | mbps"`.
136
136
  */
137
137
  export function enumInProseRule() {
@@ -192,7 +192,7 @@ export const DEFAULT_OMISSION_CUES = [
192
192
  'fallback',
193
193
  ];
194
194
  /**
195
- * An optional param's omission usually MEANS something (Neo:
195
+ * An optional param's omission usually MEANS something (host app:
196
196
  * `influx_get_interface_counters` without `switch_name` = fabric-wide
197
197
  * sweep) — but the model can only reason about leaving a param out if
198
198
  * the description says so. No description at all, or one with no
@@ -0,0 +1,78 @@
1
+ /**
2
+ * requestEvidence — the door a tool call's REQUEST attempts enter its run by.
3
+ *
4
+ * Pattern: a per-dispatch port (the `LLMCallHooks` precedent) + one allow-list.
5
+ * Role: The seam between a retry series that runs BELOW a tool — inside
6
+ * `mcpClient`'s transport, built before any run existed — and the run
7
+ * that dispatched the call. The dispatcher builds the port for each
8
+ * call (`requestEvidenceFor`) and puts it on the call's context under
9
+ * an internal symbol; the MCP tool hands it down to the series that
10
+ * sends its request (`mcp/requestLedger.ts`); the series files ONE
11
+ * record when the request ends. Nothing here retries anything.
12
+ * Emits: agentfootprint.tools.request_attempts
13
+ *
14
+ * Why a port and not a scope: a decorator constructed by the consumer before
15
+ * any run exists can never reach a scope (`resilienceHooks` says the same of
16
+ * the provider decorators). The call is the one thing both sides share, so the
17
+ * port rides the call — and the identity on the event (`toolCallId`,
18
+ * `toolName`, `iteration`, the run's ids in the meta) is stamped HERE, from the
19
+ * dispatch, never by whatever files: a filing cannot claim another call.
20
+ *
21
+ * Why an internal symbol and not a public `ctx` field: this is the evidence
22
+ * path for the library's own retry series, not a retry API. A public member
23
+ * would invite every tool to file attempts the library cannot vouch for. The
24
+ * symbol is enumerable, so a wrapper that copies the context (`{ ...ctx }`)
25
+ * keeps it; a filing from anyone else still passes the allow-list below.
26
+ *
27
+ * The port only FILES. What cancels a call is the call's own context signal
28
+ * (`ctx.signal`), read by the MCP tool whether or not a port rides along — a
29
+ * cancellation must never depend on evidence being attributable.
30
+ *
31
+ * THE ALLOW-LIST is the whole record: numbers, the library's own words, the
32
+ * endpoint label the app declared or else the endpoint's ORIGIN. A filing with
33
+ * anything else in it — a field nobody listed, a word outside its set, a URL
34
+ * with a path, an array that is not a plain one — is refused whole, never
35
+ * trimmed into something it did not say. Values are read as DATA, through own
36
+ * property descriptors, so no getter, `toJSON` or array subclass a filing
37
+ * carries ever runs or reaches the record.
38
+ */
39
+ import type { ToolsRequestAttemptsPayload } from '../events/payloads.js';
40
+ import { type EmitableScope } from '../recorders/core/typedEmit.js';
41
+ /** At most this many attempts are listed per request; the rest are counted (`omitted`). */
42
+ export declare const MAX_REQUEST_ATTEMPT_ROWS = 100;
43
+ /** What a request's series files: the event's payload, less the identity the dispatcher stamps. */
44
+ export type RequestEvidence = Omit<ToolsRequestAttemptsPayload, 'toolCallId' | 'toolName' | 'iteration'>;
45
+ /** Where one dispatched call's request evidence goes. */
46
+ export interface RequestEvidenceSink {
47
+ /** File the request's record. Never throws; a filing outside the allow-list is refused whole. */
48
+ file(evidence: RequestEvidence): void;
49
+ }
50
+ /** @internal The context key the dispatcher puts a call's sink under. */
51
+ export declare const REQUEST_EVIDENCE: unique symbol;
52
+ /** What the dispatcher spreads into a call's context. */
53
+ export interface RequestEvidencePort {
54
+ readonly [REQUEST_EVIDENCE]: RequestEvidenceSink;
55
+ }
56
+ /** The call the sink files for — the dispatch's own identity. */
57
+ export interface RequestEvidenceCall {
58
+ readonly toolName: string;
59
+ readonly toolCallId: string;
60
+ readonly iteration: number;
61
+ }
62
+ /**
63
+ * The port for one dispatch: files `agentfootprint.tools.request_attempts`
64
+ * mid-stage through `typedEmit` (so the run's redaction rule serves it, and the
65
+ * meta carries the real `runtimeStageId`), stamped with `call`.
66
+ */
67
+ export declare function requestEvidenceFor(scope: EmitableScope, call: RequestEvidenceCall): RequestEvidencePort;
68
+ /**
69
+ * The sink a call's context carries, or `undefined` — a context from a door with
70
+ * no run (`mcpServe`, a direct `execute`), or one a wrapper rebuilt without it.
71
+ * Never throws, whatever `ctx` is.
72
+ */
73
+ export declare function requestEvidenceOf(ctx: unknown): RequestEvidenceSink | undefined;
74
+ /**
75
+ * `raw` rebuilt from allow-listed fields — a fresh plain object — or
76
+ * `undefined` when anything in it is outside the list.
77
+ */
78
+ export declare function servedRequestEvidence(raw: unknown): RequestEvidence | undefined;
@@ -0,0 +1,331 @@
1
+ /**
2
+ * requestEvidence — the door a tool call's REQUEST attempts enter its run by.
3
+ *
4
+ * Pattern: a per-dispatch port (the `LLMCallHooks` precedent) + one allow-list.
5
+ * Role: The seam between a retry series that runs BELOW a tool — inside
6
+ * `mcpClient`'s transport, built before any run existed — and the run
7
+ * that dispatched the call. The dispatcher builds the port for each
8
+ * call (`requestEvidenceFor`) and puts it on the call's context under
9
+ * an internal symbol; the MCP tool hands it down to the series that
10
+ * sends its request (`mcp/requestLedger.ts`); the series files ONE
11
+ * record when the request ends. Nothing here retries anything.
12
+ * Emits: agentfootprint.tools.request_attempts
13
+ *
14
+ * Why a port and not a scope: a decorator constructed by the consumer before
15
+ * any run exists can never reach a scope (`resilienceHooks` says the same of
16
+ * the provider decorators). The call is the one thing both sides share, so the
17
+ * port rides the call — and the identity on the event (`toolCallId`,
18
+ * `toolName`, `iteration`, the run's ids in the meta) is stamped HERE, from the
19
+ * dispatch, never by whatever files: a filing cannot claim another call.
20
+ *
21
+ * Why an internal symbol and not a public `ctx` field: this is the evidence
22
+ * path for the library's own retry series, not a retry API. A public member
23
+ * would invite every tool to file attempts the library cannot vouch for. The
24
+ * symbol is enumerable, so a wrapper that copies the context (`{ ...ctx }`)
25
+ * keeps it; a filing from anyone else still passes the allow-list below.
26
+ *
27
+ * The port only FILES. What cancels a call is the call's own context signal
28
+ * (`ctx.signal`), read by the MCP tool whether or not a port rides along — a
29
+ * cancellation must never depend on evidence being attributable.
30
+ *
31
+ * THE ALLOW-LIST is the whole record: numbers, the library's own words, the
32
+ * endpoint label the app declared or else the endpoint's ORIGIN. A filing with
33
+ * anything else in it — a field nobody listed, a word outside its set, a URL
34
+ * with a path, an array that is not a plain one — is refused whole, never
35
+ * trimmed into something it did not say. Values are read as DATA, through own
36
+ * property descriptors, so no getter, `toJSON` or array subclass a filing
37
+ * carries ever runs or reaches the record.
38
+ */
39
+ import { isDevMode } from 'footprintjs';
40
+ import { typedEmit } from '../recorders/core/typedEmit.js';
41
+ /** At most this many attempts are listed per request; the rest are counted (`omitted`). */
42
+ export const MAX_REQUEST_ATTEMPT_ROWS = 100;
43
+ /** @internal The context key the dispatcher puts a call's sink under. */
44
+ export const REQUEST_EVIDENCE = Symbol('agentfootprint.request-evidence');
45
+ /**
46
+ * The port for one dispatch: files `agentfootprint.tools.request_attempts`
47
+ * mid-stage through `typedEmit` (so the run's redaction rule serves it, and the
48
+ * meta carries the real `runtimeStageId`), stamped with `call`.
49
+ */
50
+ export function requestEvidenceFor(scope, call) {
51
+ const sink = {
52
+ file: (evidence) => {
53
+ const served = servedRequestEvidence(evidence);
54
+ if (served === undefined) {
55
+ warnOnce(call.toolName, 'a filing outside the allow-list was refused');
56
+ return;
57
+ }
58
+ try {
59
+ typedEmit(scope, 'agentfootprint.tools.request_attempts', {
60
+ toolCallId: call.toolCallId,
61
+ toolName: call.toolName,
62
+ iteration: call.iteration,
63
+ ...served,
64
+ });
65
+ }
66
+ catch (err) {
67
+ // Evidence is not the work: a sink that dies must not fail the call.
68
+ warnOnce(call.toolName, err instanceof Error ? err.message : String(err));
69
+ }
70
+ },
71
+ };
72
+ return { [REQUEST_EVIDENCE]: sink };
73
+ }
74
+ /**
75
+ * The sink a call's context carries, or `undefined` — a context from a door with
76
+ * no run (`mcpServe`, a direct `execute`), or one a wrapper rebuilt without it.
77
+ * Never throws, whatever `ctx` is.
78
+ */
79
+ export function requestEvidenceOf(ctx) {
80
+ if (ctx === null || typeof ctx !== 'object')
81
+ return undefined;
82
+ let port;
83
+ try {
84
+ port = ctx[REQUEST_EVIDENCE];
85
+ }
86
+ catch {
87
+ return undefined;
88
+ }
89
+ if (port === null || typeof port !== 'object')
90
+ return undefined;
91
+ let file;
92
+ try {
93
+ file = port.file;
94
+ }
95
+ catch {
96
+ return undefined;
97
+ }
98
+ if (typeof file !== 'function')
99
+ return undefined;
100
+ return port;
101
+ }
102
+ const ATTEMPT_OUTCOMES = {
103
+ answered: true,
104
+ refused: true,
105
+ failed: true,
106
+ 'timed-out': true,
107
+ cut: true,
108
+ };
109
+ /** An end may also be `cancelled`: no request was in flight. A row never is — a sent request is `cut`. */
110
+ const END_OUTCOMES = { ...ATTEMPT_OUTCOMES, cancelled: true };
111
+ const REMOTE = { unknown: true };
112
+ const REASONS = {
113
+ retryable: true,
114
+ answered: true,
115
+ exhausted: true,
116
+ 'wait-limit': true,
117
+ 'no-time-left': true,
118
+ 'not-replayable': true,
119
+ 'not-retryable': true,
120
+ cancelled: true,
121
+ };
122
+ const KINDS = {
123
+ throttle: true,
124
+ 'session-busy': true,
125
+ };
126
+ const CATEGORIES = {
127
+ timeout: true,
128
+ 'rate-limited': true,
129
+ server: true,
130
+ network: true,
131
+ auth: true,
132
+ permanent: true,
133
+ unknown: true,
134
+ };
135
+ const SENTENCES = {
136
+ 'The request failed before an answer arrived. Its error is not kept.': true,
137
+ 'The call ran out of time before an answer arrived.': true,
138
+ };
139
+ const DURING = { request: true, wait: true };
140
+ const ATTEMPT_FIELDS = new Set([
141
+ 'attempt',
142
+ 'outcome',
143
+ 'reason',
144
+ 'status',
145
+ 'kind',
146
+ 'failure',
147
+ 'waitMs',
148
+ 'retryAfterMs',
149
+ 'error',
150
+ 'remote',
151
+ ]);
152
+ const END_FIELDS = new Set([
153
+ 'outcome',
154
+ 'reason',
155
+ 'status',
156
+ 'kind',
157
+ 'failure',
158
+ 'during',
159
+ 'error',
160
+ 'remote',
161
+ ]);
162
+ const EVIDENCE_FIELDS = new Set(['endpoint', 'origin', 'attempts', 'omitted', 'end']);
163
+ /** Thrown inside the walk when a filing leaves the allow-list; caught at its root. */
164
+ class Refused extends Error {
165
+ name = 'Refused';
166
+ }
167
+ /**
168
+ * `raw` rebuilt from allow-listed fields — a fresh plain object — or
169
+ * `undefined` when anything in it is outside the list.
170
+ */
171
+ export function servedRequestEvidence(raw) {
172
+ try {
173
+ const evidence = record(raw, EVIDENCE_FIELDS);
174
+ const { endpoint, origin } = evidence;
175
+ if (endpoint !== undefined && origin !== undefined)
176
+ throw new Refused();
177
+ return {
178
+ ...(endpoint !== undefined && { endpoint: label(endpoint) }),
179
+ ...(origin !== undefined && { origin: originOnly(origin) }),
180
+ attempts: plainArray(evidence.attempts, MAX_REQUEST_ATTEMPT_ROWS).map(servedAttempt),
181
+ omitted: count(evidence.omitted),
182
+ end: servedEnd(evidence.end),
183
+ };
184
+ }
185
+ catch {
186
+ // `Refused`, or anything a hostile value threw while it was read: this door
187
+ // never throws, whatever it is handed.
188
+ return undefined;
189
+ }
190
+ }
191
+ function servedAttempt(raw) {
192
+ const row = record(raw, ATTEMPT_FIELDS);
193
+ const attempt = count(row.attempt);
194
+ if (attempt < 1)
195
+ throw new Refused();
196
+ return {
197
+ attempt,
198
+ outcome: word(ATTEMPT_OUTCOMES, row.outcome),
199
+ reason: word(REASONS, row.reason),
200
+ ...(row.status !== undefined && { status: status(row.status) }),
201
+ ...(row.kind !== undefined && { kind: word(KINDS, row.kind) }),
202
+ ...(row.failure !== undefined && { failure: word(CATEGORIES, row.failure) }),
203
+ ...(row.waitMs !== undefined && { waitMs: duration(row.waitMs) }),
204
+ ...(row.retryAfterMs !== undefined && { retryAfterMs: duration(row.retryAfterMs) }),
205
+ ...(row.error !== undefined && { error: servedError(row.error) }),
206
+ ...(row.remote !== undefined && { remote: word(REMOTE, row.remote) }),
207
+ };
208
+ }
209
+ function servedEnd(raw) {
210
+ const end = record(raw, END_FIELDS);
211
+ return {
212
+ outcome: word(END_OUTCOMES, end.outcome),
213
+ reason: word(REASONS, end.reason),
214
+ ...(end.status !== undefined && { status: status(end.status) }),
215
+ ...(end.kind !== undefined && { kind: word(KINDS, end.kind) }),
216
+ ...(end.failure !== undefined && { failure: word(CATEGORIES, end.failure) }),
217
+ ...(end.during !== undefined && { during: word(DURING, end.during) }),
218
+ ...(end.error !== undefined && { error: servedError(end.error) }),
219
+ ...(end.remote !== undefined && { remote: word(REMOTE, end.remote) }),
220
+ };
221
+ }
222
+ function servedError(raw) {
223
+ const error = record(raw, new Set(['message', 'code']));
224
+ return { message: word(SENTENCES, error.message), code: word(CATEGORIES, error.code) };
225
+ }
226
+ /**
227
+ * A PLAIN array's elements, copied by index into a fresh array: its prototype
228
+ * exactly `Array.prototype` (no subclass, so no `toJSON` or species of its own),
229
+ * every index from 0 to `length - 1` an own data property (no hole, no getter),
230
+ * and no other own key — a property riding on the array is refused, not
231
+ * dropped. At most `max` elements.
232
+ */
233
+ function plainArray(raw, max) {
234
+ if (!Array.isArray(raw) || Object.getPrototypeOf(raw) !== Array.prototype)
235
+ throw new Refused();
236
+ const length = Object.getOwnPropertyDescriptor(raw, 'length')?.value;
237
+ if (typeof length !== 'number' || !Number.isSafeInteger(length) || length > max) {
238
+ throw new Refused();
239
+ }
240
+ const keys = Reflect.ownKeys(raw);
241
+ if (keys.length !== length + 1)
242
+ throw new Refused();
243
+ const out = [];
244
+ for (let i = 0; i < length; i++) {
245
+ const descriptor = Object.getOwnPropertyDescriptor(raw, String(i));
246
+ if (descriptor === undefined || !('value' in descriptor))
247
+ throw new Refused();
248
+ out.push(descriptor.value);
249
+ }
250
+ return out;
251
+ }
252
+ /** A plain object whose every own key is listed; read once, by key. */
253
+ function record(raw, fields) {
254
+ if (raw === null || typeof raw !== 'object' || Array.isArray(raw))
255
+ throw new Refused();
256
+ const proto = Object.getPrototypeOf(raw);
257
+ if (proto !== Object.prototype && proto !== null)
258
+ throw new Refused();
259
+ const out = {};
260
+ for (const key of Reflect.ownKeys(raw)) {
261
+ if (typeof key !== 'string' || !fields.has(key))
262
+ throw new Refused();
263
+ const descriptor = Object.getOwnPropertyDescriptor(raw, key);
264
+ if (descriptor === undefined || !('value' in descriptor))
265
+ throw new Refused();
266
+ out[key] = descriptor.value;
267
+ }
268
+ return out;
269
+ }
270
+ function word(words, value) {
271
+ if (typeof value === 'string' && Object.prototype.hasOwnProperty.call(words, value)) {
272
+ return value;
273
+ }
274
+ throw new Refused();
275
+ }
276
+ /** A whole number ≥ 0. */
277
+ function count(value) {
278
+ if (typeof value === 'number' && Number.isSafeInteger(value) && value >= 0)
279
+ return value;
280
+ throw new Refused();
281
+ }
282
+ /** An HTTP status. */
283
+ function status(value) {
284
+ if (typeof value === 'number' && Number.isInteger(value) && value >= 100 && value <= 599) {
285
+ return value;
286
+ }
287
+ throw new Refused();
288
+ }
289
+ /** A finite length of time in ms, ≥ 0. */
290
+ function duration(value) {
291
+ if (typeof value === 'number' && Number.isFinite(value) && value >= 0)
292
+ return value;
293
+ throw new Refused();
294
+ }
295
+ /** An app-declared label: 1–128 characters, none of them control characters. */
296
+ function label(value) {
297
+ if (typeof value !== 'string' || value.length < 1 || value.length > 128)
298
+ throw new Refused();
299
+ for (let i = 0; i < value.length; i++) {
300
+ const code = value.charCodeAt(i);
301
+ if (code < 0x20 || (code >= 0x7f && code <= 0x9f))
302
+ throw new Refused();
303
+ }
304
+ return value;
305
+ }
306
+ /** An origin and nothing more: what `new URL(it)` reads back as scheme, host and port. */
307
+ function originOnly(value) {
308
+ if (typeof value !== 'string' || value.length > 2048)
309
+ throw new Refused();
310
+ let url;
311
+ try {
312
+ url = new URL(value);
313
+ }
314
+ catch {
315
+ throw new Refused();
316
+ }
317
+ if (url.host === '' || `${url.protocol}//${url.host}` !== value)
318
+ throw new Refused();
319
+ return value;
320
+ }
321
+ const warned = new Set();
322
+ /** Named in dev mode, once per tool — evidence is telemetry, never the call's failure. */
323
+ function warnOnce(toolName, why) {
324
+ if (!isDevMode() || warned.has(toolName))
325
+ return;
326
+ warned.add(toolName);
327
+ // eslint-disable-next-line no-console
328
+ console.warn(`[agentfootprint] tool '${toolName}': its request attempts were not recorded (${why}). ` +
329
+ 'The call itself is unaffected.');
330
+ }
331
+ //# sourceMappingURL=requestEvidence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestEvidence.js","sourceRoot":"","sources":["../../../src/tools/requestEvidence.ts"],"names":[],"mappings":"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"}
@@ -416,8 +416,35 @@ export interface Tool<TArgs = Record<string, unknown>, TResult = unknown> {
416
416
  * byte-identical.
417
417
  */
418
418
  readonly effects?: 'read';
419
+ /**
420
+ * THE APP'S OWN WORDS for what a call of this tool does — "loading the
421
+ * attached data" — read by a PERSON. The registered name (`schema.name`) is
422
+ * the model's vocabulary, and an app may forbid showing it, so the standing
423
+ * line (`.answerLayer({ standingLine: true })`) names a reason's calls ONLY
424
+ * by this — "Not sure — loading the attached data reported no matching
425
+ * results" — and uses it in its assumed clause; the limits block marks the
426
+ * items this call declared with it and names its `Period:` / "In progress"
427
+ * lines by it. A call whose tool declares none is counted ("and 1 other
428
+ * call"), never named there. Not every surface uses it yet: the time
429
+ * layer's limits lines and the answer account's rows still print the
430
+ * registered name (a known follow-up).
431
+ *
432
+ * One plain line of at most 60 characters (`lib/displayName.ts` — no control,
433
+ * line separator or invisible format character), stored trimmed; refused at
434
+ * `defineTool` and again at registration. Write it to read as the subject of
435
+ * a sentence ("loading the attached data", "the order lookup"). It names the
436
+ * call and changes nothing else: not the standing, not what the model sees.
437
+ * Omitted → byte-identical.
438
+ */
439
+ readonly displayName?: string;
419
440
  execute(args: TArgs, ctx: ToolExecutionContext): Promise<TResult> | TResult;
420
441
  }
442
+ /**
443
+ * Refuse a `displayName` a person should not read, at definition time — the
444
+ * rule (`lib/displayName.ts` · `displayNameProblem`) asked for a tool built by
445
+ * `defineTool` and, at registration, for one assembled by hand.
446
+ */
447
+ export declare function assertDisplayName(toolName: string, displayName: unknown): void;
421
448
  /**
422
449
  * Whether the APP declared this tool read-only: `effects: 'read'` written in
423
450
  * `defineTool`, on a local tool (no `source`). Tool metadata, an MCP
@@ -889,6 +916,9 @@ export interface DefineToolOptions<TArgs, TResult> {
889
916
  /** `'read'` — this tool changes nothing (see {@link Tool.effects}). Omitted →
890
917
  * byte-identical. */
891
918
  readonly effects?: 'read';
919
+ /** The app's own words for what a call of this tool does, read by a person
920
+ * (see {@link Tool.displayName}). Omitted → byte-identical. */
921
+ readonly displayName?: string;
892
922
  execute(args: TArgs, ctx: ToolExecutionContext): Promise<TResult> | TResult;
893
923
  }
894
924
  /**
@@ -11,11 +11,24 @@ import { RESULT_CLASSES } from '../semantics/types.js';
11
11
  import { assertResultColumns, COLUMN_TYPES, } from '../integrity/column-types/types.js';
12
12
  import { assertAskComponent } from './askComponent.js';
13
13
  import { warnIfInvalidToolName } from '../lib/toolName.js';
14
+ import { displayNameProblem } from '../lib/displayName.js';
14
15
  import { assertAskOrAssume } from './declare.js';
15
16
  import { assertToolSearch, freezeSearch, periodArgumentsOf, } from '../semantics/coverage/search/declaration.js';
16
17
  import { searchReviewItems } from '../semantics/coverage/search/review.js';
17
18
  import { rememberSearch } from './searchOf.js';
18
19
  import { isDevMode } from 'footprintjs';
20
+ /**
21
+ * Refuse a `displayName` a person should not read, at definition time — the
22
+ * rule (`lib/displayName.ts` · `displayNameProblem`) asked for a tool built by
23
+ * `defineTool` and, at registration, for one assembled by hand.
24
+ */
25
+ export function assertDisplayName(toolName, displayName) {
26
+ if (displayName === undefined)
27
+ return;
28
+ const problem = displayNameProblem(`defineTool('${toolName}'): \`displayName\``, displayName);
29
+ if (problem !== undefined)
30
+ throw new Error(problem);
31
+ }
19
32
  /** The tools whose `effects: 'read'` was written in `defineTool` — the app's own word. */
20
33
  const DECLARED_READ_ONLY = new WeakSet();
21
34
  /**
@@ -339,6 +352,8 @@ export function defineTool(options) {
339
352
  });
340
353
  warnSearchReview(options.name, options.search);
341
354
  assertToolEffects(options.name, options.effects);
355
+ // The app's words reach a person verbatim — refused HERE, naming the tool.
356
+ assertDisplayName(options.name, options.displayName);
342
357
  const tool = {
343
358
  schema: {
344
359
  name: options.name,
@@ -368,6 +383,7 @@ export function defineTool(options) {
368
383
  // Stored frozen, its value words a null-prototype map (`freezeSearch`).
369
384
  ...(options.search !== undefined && { search: freezeSearch(options.search) }),
370
385
  ...(options.effects !== undefined && { effects: options.effects }),
386
+ ...(options.displayName !== undefined && { displayName: options.displayName.trim() }),
371
387
  execute: options.execute,
372
388
  };
373
389
  // The app's own word — the one `effects: 'read'` a later check may honour.
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/tools/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/tools/tools.ts"],"names":[],"mappings":"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"}