@skillsmith/core 0.9.0 → 0.11.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 (404) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/src/analysis/tree-sitter/pythonIncremental.d.ts +23 -0
  4. package/dist/src/analysis/tree-sitter/pythonIncremental.d.ts.map +1 -1
  5. package/dist/src/analysis/tree-sitter/pythonIncremental.hardening.test.js +137 -0
  6. package/dist/src/analysis/tree-sitter/pythonIncremental.hardening.test.js.map +1 -1
  7. package/dist/src/analysis/tree-sitter/pythonIncremental.js +83 -10
  8. package/dist/src/analysis/tree-sitter/pythonIncremental.js.map +1 -1
  9. package/dist/src/analysis/tree-sitter/queryExtractionMatchesOrExceedsRegex.test.js +6 -1
  10. package/dist/src/analysis/tree-sitter/queryExtractionMatchesOrExceedsRegex.test.js.map +1 -1
  11. package/dist/src/api/client.d.ts.map +1 -1
  12. package/dist/src/api/client.js +6 -0
  13. package/dist/src/api/client.js.map +1 -1
  14. package/dist/src/api/client.test.d.ts +9 -0
  15. package/dist/src/api/client.test.d.ts.map +1 -0
  16. package/dist/src/api/client.test.js +81 -0
  17. package/dist/src/api/client.test.js.map +1 -0
  18. package/dist/src/config/audit-notify-state.d.ts +46 -0
  19. package/dist/src/config/audit-notify-state.d.ts.map +1 -0
  20. package/dist/src/config/audit-notify-state.js +55 -0
  21. package/dist/src/config/audit-notify-state.js.map +1 -0
  22. package/dist/src/config/audit-notify-state.test.d.ts +9 -0
  23. package/dist/src/config/audit-notify-state.test.d.ts.map +1 -0
  24. package/dist/src/config/audit-notify-state.test.js +63 -0
  25. package/dist/src/config/audit-notify-state.test.js.map +1 -0
  26. package/dist/src/config/index.d.ts +10 -0
  27. package/dist/src/config/index.d.ts.map +1 -1
  28. package/dist/src/config/index.js.map +1 -1
  29. package/dist/src/exports/services.d.ts +3 -1
  30. package/dist/src/exports/services.d.ts.map +1 -1
  31. package/dist/src/exports/services.js +9 -1
  32. package/dist/src/exports/services.js.map +1 -1
  33. package/dist/src/index.d.ts +6 -3
  34. package/dist/src/index.d.ts.map +1 -1
  35. package/dist/src/index.js +11 -2
  36. package/dist/src/index.js.map +1 -1
  37. package/dist/src/install/agent-config-merge.json-array.d.ts +29 -0
  38. package/dist/src/install/agent-config-merge.json-array.d.ts.map +1 -0
  39. package/dist/src/install/agent-config-merge.json-array.js +100 -0
  40. package/dist/src/install/agent-config-merge.json-array.js.map +1 -0
  41. package/dist/src/install/agent-config-merge.json.d.ts +37 -0
  42. package/dist/src/install/agent-config-merge.json.d.ts.map +1 -0
  43. package/dist/src/install/agent-config-merge.json.js +134 -0
  44. package/dist/src/install/agent-config-merge.json.js.map +1 -0
  45. package/dist/src/install/agent-config-merge.toml-block.d.ts +48 -0
  46. package/dist/src/install/agent-config-merge.toml-block.d.ts.map +1 -0
  47. package/dist/src/install/agent-config-merge.toml-block.js +107 -0
  48. package/dist/src/install/agent-config-merge.toml-block.js.map +1 -0
  49. package/dist/src/install/agent-config-merge.types.d.ts +87 -0
  50. package/dist/src/install/agent-config-merge.types.d.ts.map +1 -0
  51. package/dist/src/install/agent-config-merge.types.js +83 -0
  52. package/dist/src/install/agent-config-merge.types.js.map +1 -0
  53. package/dist/src/install/agent-config-merge.yaml.d.ts +46 -0
  54. package/dist/src/install/agent-config-merge.yaml.d.ts.map +1 -0
  55. package/dist/src/install/agent-config-merge.yaml.js +133 -0
  56. package/dist/src/install/agent-config-merge.yaml.js.map +1 -0
  57. package/dist/src/install/agent-config-merge.yaml.test.d.ts +2 -0
  58. package/dist/src/install/agent-config-merge.yaml.test.d.ts.map +1 -0
  59. package/dist/src/install/agent-config-merge.yaml.test.js +210 -0
  60. package/dist/src/install/agent-config-merge.yaml.test.js.map +1 -0
  61. package/dist/src/install/agent-harness-targets.d.ts +98 -0
  62. package/dist/src/install/agent-harness-targets.d.ts.map +1 -0
  63. package/dist/src/install/agent-harness-targets.js +154 -0
  64. package/dist/src/install/agent-harness-targets.js.map +1 -0
  65. package/dist/src/install/agent-home-relocate.d.ts +29 -0
  66. package/dist/src/install/agent-home-relocate.d.ts.map +1 -0
  67. package/dist/src/install/agent-home-relocate.js +38 -0
  68. package/dist/src/install/agent-home-relocate.js.map +1 -0
  69. package/dist/src/install/agent-manifest-path-guard.d.ts +55 -0
  70. package/dist/src/install/agent-manifest-path-guard.d.ts.map +1 -0
  71. package/dist/src/install/agent-manifest-path-guard.js +109 -0
  72. package/dist/src/install/agent-manifest-path-guard.js.map +1 -0
  73. package/dist/src/install/agent-manifest-path-guard.test.d.ts +2 -0
  74. package/dist/src/install/agent-manifest-path-guard.test.d.ts.map +1 -0
  75. package/dist/src/install/agent-manifest-path-guard.test.js +72 -0
  76. package/dist/src/install/agent-manifest-path-guard.test.js.map +1 -0
  77. package/dist/src/install/agent-manifest.d.ts +58 -0
  78. package/dist/src/install/agent-manifest.d.ts.map +1 -0
  79. package/dist/src/install/agent-manifest.js +103 -0
  80. package/dist/src/install/agent-manifest.js.map +1 -0
  81. package/dist/src/install/agent-pack-installer.d.ts +39 -0
  82. package/dist/src/install/agent-pack-installer.d.ts.map +1 -0
  83. package/dist/src/install/agent-pack-installer.entry.d.ts +55 -0
  84. package/dist/src/install/agent-pack-installer.entry.d.ts.map +1 -0
  85. package/dist/src/install/agent-pack-installer.entry.js +90 -0
  86. package/dist/src/install/agent-pack-installer.entry.js.map +1 -0
  87. package/dist/src/install/agent-pack-installer.fs-helpers.d.ts +33 -0
  88. package/dist/src/install/agent-pack-installer.fs-helpers.d.ts.map +1 -0
  89. package/dist/src/install/agent-pack-installer.fs-helpers.js +59 -0
  90. package/dist/src/install/agent-pack-installer.fs-helpers.js.map +1 -0
  91. package/dist/src/install/agent-pack-installer.harness.d.ts +66 -0
  92. package/dist/src/install/agent-pack-installer.harness.d.ts.map +1 -0
  93. package/dist/src/install/agent-pack-installer.harness.js +310 -0
  94. package/dist/src/install/agent-pack-installer.harness.js.map +1 -0
  95. package/dist/src/install/agent-pack-installer.js +221 -0
  96. package/dist/src/install/agent-pack-installer.js.map +1 -0
  97. package/dist/src/install/agent-pack-installer.preserve.test.d.ts +11 -0
  98. package/dist/src/install/agent-pack-installer.preserve.test.d.ts.map +1 -0
  99. package/dist/src/install/agent-pack-installer.preserve.test.js +72 -0
  100. package/dist/src/install/agent-pack-installer.preserve.test.js.map +1 -0
  101. package/dist/src/install/agent-pack-installer.test.d.ts +2 -0
  102. package/dist/src/install/agent-pack-installer.test.d.ts.map +1 -0
  103. package/dist/src/install/agent-pack-installer.test.js +350 -0
  104. package/dist/src/install/agent-pack-installer.test.js.map +1 -0
  105. package/dist/src/install/agent-pack-installer.types.d.ts +51 -0
  106. package/dist/src/install/agent-pack-installer.types.d.ts.map +1 -0
  107. package/dist/src/install/agent-pack-installer.types.js +16 -0
  108. package/dist/src/install/agent-pack-installer.types.js.map +1 -0
  109. package/dist/src/install/agent-pack-uninstaller.d.ts +43 -0
  110. package/dist/src/install/agent-pack-uninstaller.d.ts.map +1 -0
  111. package/dist/src/install/agent-pack-uninstaller.js +113 -0
  112. package/dist/src/install/agent-pack-uninstaller.js.map +1 -0
  113. package/dist/src/install/agent-pack-uninstaller.test.d.ts +2 -0
  114. package/dist/src/install/agent-pack-uninstaller.test.d.ts.map +1 -0
  115. package/dist/src/install/agent-pack-uninstaller.test.js +212 -0
  116. package/dist/src/install/agent-pack-uninstaller.test.js.map +1 -0
  117. package/dist/src/install/index.d.ts +7 -0
  118. package/dist/src/install/index.d.ts.map +1 -1
  119. package/dist/src/install/index.js +7 -0
  120. package/dist/src/install/index.js.map +1 -1
  121. package/dist/src/install/paths.d.ts +1 -1
  122. package/dist/src/install/paths.d.ts.map +1 -1
  123. package/dist/src/install/paths.js +4 -0
  124. package/dist/src/install/paths.js.map +1 -1
  125. package/dist/src/install/paths.test.js +15 -0
  126. package/dist/src/install/paths.test.js.map +1 -1
  127. package/dist/src/journal/hash.d.ts +13 -0
  128. package/dist/src/journal/hash.d.ts.map +1 -0
  129. package/dist/src/journal/hash.js +16 -0
  130. package/dist/src/journal/hash.js.map +1 -0
  131. package/dist/src/journal/index.d.ts +15 -0
  132. package/dist/src/journal/index.d.ts.map +1 -0
  133. package/dist/src/journal/index.js +15 -0
  134. package/dist/src/journal/index.js.map +1 -0
  135. package/dist/src/journal/journal.test.d.ts +16 -0
  136. package/dist/src/journal/journal.test.d.ts.map +1 -0
  137. package/dist/src/journal/journal.test.js +171 -0
  138. package/dist/src/journal/journal.test.js.map +1 -0
  139. package/dist/src/journal/path.d.ts +44 -0
  140. package/dist/src/journal/path.d.ts.map +1 -0
  141. package/dist/src/journal/path.js +61 -0
  142. package/dist/src/journal/path.js.map +1 -0
  143. package/dist/src/journal/reader.d.ts +38 -0
  144. package/dist/src/journal/reader.d.ts.map +1 -0
  145. package/dist/src/journal/reader.js +93 -0
  146. package/dist/src/journal/reader.js.map +1 -0
  147. package/dist/src/journal/types.d.ts +87 -0
  148. package/dist/src/journal/types.d.ts.map +1 -0
  149. package/dist/src/journal/types.js +21 -0
  150. package/dist/src/journal/types.js.map +1 -0
  151. package/dist/src/journal/writer.d.ts +52 -0
  152. package/dist/src/journal/writer.d.ts.map +1 -0
  153. package/dist/src/journal/writer.js +125 -0
  154. package/dist/src/journal/writer.js.map +1 -0
  155. package/dist/src/logging/context.d.ts +58 -0
  156. package/dist/src/logging/context.d.ts.map +1 -0
  157. package/dist/src/logging/context.js +62 -0
  158. package/dist/src/logging/context.js.map +1 -0
  159. package/dist/src/logging/context.test.d.ts +14 -0
  160. package/dist/src/logging/context.test.d.ts.map +1 -0
  161. package/dist/src/logging/context.test.js +88 -0
  162. package/dist/src/logging/context.test.js.map +1 -0
  163. package/dist/src/logging/index.d.ts +13 -0
  164. package/dist/src/logging/index.d.ts.map +1 -0
  165. package/dist/src/logging/index.js +12 -0
  166. package/dist/src/logging/index.js.map +1 -0
  167. package/dist/src/logging/logger.d.ts +71 -0
  168. package/dist/src/logging/logger.d.ts.map +1 -0
  169. package/dist/src/logging/logger.js +264 -0
  170. package/dist/src/logging/logger.js.map +1 -0
  171. package/dist/src/logging/logger.test.d.ts +9 -0
  172. package/dist/src/logging/logger.test.d.ts.map +1 -0
  173. package/dist/src/logging/logger.test.js +320 -0
  174. package/dist/src/logging/logger.test.js.map +1 -0
  175. package/dist/src/logging/redact.d.ts +35 -0
  176. package/dist/src/logging/redact.d.ts.map +1 -0
  177. package/dist/src/logging/redact.js +152 -0
  178. package/dist/src/logging/redact.js.map +1 -0
  179. package/dist/src/logging/redact.test.d.ts +8 -0
  180. package/dist/src/logging/redact.test.d.ts.map +1 -0
  181. package/dist/src/logging/redact.test.js +330 -0
  182. package/dist/src/logging/redact.test.js.map +1 -0
  183. package/dist/src/logging/rotation.d.ts +75 -0
  184. package/dist/src/logging/rotation.d.ts.map +1 -0
  185. package/dist/src/logging/rotation.js +284 -0
  186. package/dist/src/logging/rotation.js.map +1 -0
  187. package/dist/src/logging/rotation.test.d.ts +11 -0
  188. package/dist/src/logging/rotation.test.d.ts.map +1 -0
  189. package/dist/src/logging/rotation.test.js +132 -0
  190. package/dist/src/logging/rotation.test.js.map +1 -0
  191. package/dist/src/logging/types.d.ts +69 -0
  192. package/dist/src/logging/types.d.ts.map +1 -0
  193. package/dist/src/logging/types.js +9 -0
  194. package/dist/src/logging/types.js.map +1 -0
  195. package/dist/src/paywall-triggers/index.d.ts +13 -0
  196. package/dist/src/paywall-triggers/index.d.ts.map +1 -0
  197. package/dist/src/paywall-triggers/index.js +13 -0
  198. package/dist/src/paywall-triggers/index.js.map +1 -0
  199. package/dist/src/paywall-triggers/path.d.ts +47 -0
  200. package/dist/src/paywall-triggers/path.d.ts.map +1 -0
  201. package/dist/src/paywall-triggers/path.js +73 -0
  202. package/dist/src/paywall-triggers/path.js.map +1 -0
  203. package/dist/src/paywall-triggers/store.d.ts +75 -0
  204. package/dist/src/paywall-triggers/store.d.ts.map +1 -0
  205. package/dist/src/paywall-triggers/store.js +122 -0
  206. package/dist/src/paywall-triggers/store.js.map +1 -0
  207. package/dist/src/paywall-triggers/store.test.d.ts +2 -0
  208. package/dist/src/paywall-triggers/store.test.d.ts.map +1 -0
  209. package/dist/src/paywall-triggers/store.test.js +121 -0
  210. package/dist/src/paywall-triggers/store.test.js.map +1 -0
  211. package/dist/src/paywall-triggers/types.d.ts +24 -0
  212. package/dist/src/paywall-triggers/types.d.ts.map +1 -0
  213. package/dist/src/paywall-triggers/types.js +13 -0
  214. package/dist/src/paywall-triggers/types.js.map +1 -0
  215. package/dist/src/security/index.d.ts +2 -0
  216. package/dist/src/security/index.d.ts.map +1 -1
  217. package/dist/src/security/index.js +4 -0
  218. package/dist/src/security/index.js.map +1 -1
  219. package/dist/src/security/scanner/SecurityScanner.compound.d.ts +13 -0
  220. package/dist/src/security/scanner/SecurityScanner.compound.d.ts.map +1 -0
  221. package/dist/src/security/scanner/SecurityScanner.compound.js +127 -0
  222. package/dist/src/security/scanner/SecurityScanner.compound.js.map +1 -0
  223. package/dist/src/security/scanner/SecurityScanner.d.ts.map +1 -1
  224. package/dist/src/security/scanner/SecurityScanner.hostile-update.d.ts +46 -0
  225. package/dist/src/security/scanner/SecurityScanner.hostile-update.d.ts.map +1 -0
  226. package/dist/src/security/scanner/SecurityScanner.hostile-update.js +209 -0
  227. package/dist/src/security/scanner/SecurityScanner.hostile-update.js.map +1 -0
  228. package/dist/src/security/scanner/SecurityScanner.js +10 -1
  229. package/dist/src/security/scanner/SecurityScanner.js.map +1 -1
  230. package/dist/src/security/scanner/SecurityScanner.pii.d.ts +23 -0
  231. package/dist/src/security/scanner/SecurityScanner.pii.d.ts.map +1 -0
  232. package/dist/src/security/scanner/SecurityScanner.pii.js +152 -0
  233. package/dist/src/security/scanner/SecurityScanner.pii.js.map +1 -0
  234. package/dist/src/security/scanner/SecurityScanner.scanners.d.ts +5 -12
  235. package/dist/src/security/scanner/SecurityScanner.scanners.d.ts.map +1 -1
  236. package/dist/src/security/scanner/SecurityScanner.scanners.js +63 -137
  237. package/dist/src/security/scanner/SecurityScanner.scanners.js.map +1 -1
  238. package/dist/src/security/scanner/index.d.ts +2 -1
  239. package/dist/src/security/scanner/index.d.ts.map +1 -1
  240. package/dist/src/security/scanner/index.js +2 -0
  241. package/dist/src/security/scanner/index.js.map +1 -1
  242. package/dist/src/security/scanner/patterns.d.ts +2 -0
  243. package/dist/src/security/scanner/patterns.d.ts.map +1 -1
  244. package/dist/src/security/scanner/patterns.js +79 -11
  245. package/dist/src/security/scanner/patterns.js.map +1 -1
  246. package/dist/src/security/scanner/types.d.ts +23 -0
  247. package/dist/src/security/scanner/types.d.ts.map +1 -1
  248. package/dist/src/services/agent-pack/agent-pack.test.d.ts +18 -0
  249. package/dist/src/services/agent-pack/agent-pack.test.d.ts.map +1 -0
  250. package/dist/src/services/agent-pack/agent-pack.test.js +344 -0
  251. package/dist/src/services/agent-pack/agent-pack.test.js.map +1 -0
  252. package/dist/src/services/agent-pack/hooks.d.ts +29 -0
  253. package/dist/src/services/agent-pack/hooks.d.ts.map +1 -0
  254. package/dist/src/services/agent-pack/hooks.js +139 -0
  255. package/dist/src/services/agent-pack/hooks.js.map +1 -0
  256. package/dist/src/services/agent-pack/index.d.ts +26 -0
  257. package/dist/src/services/agent-pack/index.d.ts.map +1 -0
  258. package/dist/src/services/agent-pack/index.js +109 -0
  259. package/dist/src/services/agent-pack/index.js.map +1 -0
  260. package/dist/src/services/agent-pack/prompt-source.d.ts +47 -0
  261. package/dist/src/services/agent-pack/prompt-source.d.ts.map +1 -0
  262. package/dist/src/services/agent-pack/prompt-source.js +182 -0
  263. package/dist/src/services/agent-pack/prompt-source.js.map +1 -0
  264. package/dist/src/services/agent-pack/shims.d.ts +40 -0
  265. package/dist/src/services/agent-pack/shims.d.ts.map +1 -0
  266. package/dist/src/services/agent-pack/shims.js +96 -0
  267. package/dist/src/services/agent-pack/shims.js.map +1 -0
  268. package/dist/src/services/agent-pack/skill-md.d.ts +35 -0
  269. package/dist/src/services/agent-pack/skill-md.d.ts.map +1 -0
  270. package/dist/src/services/agent-pack/skill-md.js +89 -0
  271. package/dist/src/services/agent-pack/skill-md.js.map +1 -0
  272. package/dist/src/services/agent-pack/types.d.ts +118 -0
  273. package/dist/src/services/agent-pack/types.d.ts.map +1 -0
  274. package/dist/src/services/agent-pack/types.js +61 -0
  275. package/dist/src/services/agent-pack/types.js.map +1 -0
  276. package/dist/src/services/agent-tool-profile.d.ts +59 -0
  277. package/dist/src/services/agent-tool-profile.d.ts.map +1 -0
  278. package/dist/src/services/agent-tool-profile.js +76 -0
  279. package/dist/src/services/agent-tool-profile.js.map +1 -0
  280. package/dist/src/services/agent-tool-profile.test.d.ts +2 -0
  281. package/dist/src/services/agent-tool-profile.test.d.ts.map +1 -0
  282. package/dist/src/services/agent-tool-profile.test.js +28 -0
  283. package/dist/src/services/agent-tool-profile.test.js.map +1 -0
  284. package/dist/src/services/bundled-sibling-scan.d.ts +111 -0
  285. package/dist/src/services/bundled-sibling-scan.d.ts.map +1 -0
  286. package/dist/src/services/bundled-sibling-scan.js +170 -0
  287. package/dist/src/services/bundled-sibling-scan.js.map +1 -0
  288. package/dist/src/services/skill-installation.io.d.ts +16 -5
  289. package/dist/src/services/skill-installation.io.d.ts.map +1 -1
  290. package/dist/src/services/skill-installation.io.js +63 -22
  291. package/dist/src/services/skill-installation.io.js.map +1 -1
  292. package/dist/src/services/skill-installation.policy.d.ts +96 -0
  293. package/dist/src/services/skill-installation.policy.d.ts.map +1 -0
  294. package/dist/src/services/skill-installation.policy.js +144 -0
  295. package/dist/src/services/skill-installation.policy.js.map +1 -0
  296. package/dist/src/services/skill-installation.service.d.ts.map +1 -1
  297. package/dist/src/services/skill-installation.service.js +9 -3
  298. package/dist/src/services/skill-installation.service.js.map +1 -1
  299. package/dist/src/sources/index.d.ts +1 -0
  300. package/dist/src/sources/index.d.ts.map +1 -1
  301. package/dist/src/sources/index.js +4 -0
  302. package/dist/src/sources/index.js.map +1 -1
  303. package/dist/src/sync/access-token.d.ts +27 -0
  304. package/dist/src/sync/access-token.d.ts.map +1 -0
  305. package/dist/src/sync/access-token.js +40 -0
  306. package/dist/src/sync/access-token.js.map +1 -0
  307. package/dist/src/sync/audit-notify-client.d.ts +83 -0
  308. package/dist/src/sync/audit-notify-client.d.ts.map +1 -0
  309. package/dist/src/sync/audit-notify-client.js +126 -0
  310. package/dist/src/sync/audit-notify-client.js.map +1 -0
  311. package/dist/src/sync/audit-notify-client.test.d.ts +14 -0
  312. package/dist/src/sync/audit-notify-client.test.d.ts.map +1 -0
  313. package/dist/src/sync/audit-notify-client.test.js +133 -0
  314. package/dist/src/sync/audit-notify-client.test.js.map +1 -0
  315. package/dist/src/sync/index.d.ts +2 -1
  316. package/dist/src/sync/index.d.ts.map +1 -1
  317. package/dist/src/sync/index.js +3 -1
  318. package/dist/src/sync/index.js.map +1 -1
  319. package/dist/src/sync/inventory-client.d.ts +16 -0
  320. package/dist/src/sync/inventory-client.d.ts.map +1 -1
  321. package/dist/src/sync/inventory-client.js +59 -16
  322. package/dist/src/sync/inventory-client.js.map +1 -1
  323. package/dist/src/sync/inventory-client.test.js +67 -1
  324. package/dist/src/sync/inventory-client.test.js.map +1 -1
  325. package/dist/src/sync/inventory-collector.d.ts.map +1 -1
  326. package/dist/src/sync/inventory-collector.js +32 -5
  327. package/dist/src/sync/inventory-collector.js.map +1 -1
  328. package/dist/src/sync/inventory-collector.test.js +50 -1
  329. package/dist/src/sync/inventory-collector.test.js.map +1 -1
  330. package/dist/src/sync/inventory-types.d.ts +9 -0
  331. package/dist/src/sync/inventory-types.d.ts.map +1 -1
  332. package/dist/src/sync/inventory-types.js +3 -0
  333. package/dist/src/sync/inventory-types.js.map +1 -1
  334. package/dist/src/telemetry/agent-marker.d.ts +137 -0
  335. package/dist/src/telemetry/agent-marker.d.ts.map +1 -0
  336. package/dist/src/telemetry/agent-marker.js +242 -0
  337. package/dist/src/telemetry/agent-marker.js.map +1 -0
  338. package/dist/src/telemetry/agent-marker.test.d.ts +13 -0
  339. package/dist/src/telemetry/agent-marker.test.d.ts.map +1 -0
  340. package/dist/src/telemetry/agent-marker.test.js +202 -0
  341. package/dist/src/telemetry/agent-marker.test.js.map +1 -0
  342. package/dist/src/telemetry/index.d.ts +2 -1
  343. package/dist/src/telemetry/index.d.ts.map +1 -1
  344. package/dist/src/telemetry/index.js +6 -1
  345. package/dist/src/telemetry/index.js.map +1 -1
  346. package/dist/src/telemetry/posthog.d.ts +25 -0
  347. package/dist/src/telemetry/posthog.d.ts.map +1 -1
  348. package/dist/src/telemetry/posthog.js +10 -1
  349. package/dist/src/telemetry/posthog.js.map +1 -1
  350. package/dist/src/telemetry/wrap.bench.js +5 -0
  351. package/dist/src/telemetry/wrap.bench.js.map +1 -1
  352. package/dist/src/telemetry/wrap.correlation.test.d.ts +20 -0
  353. package/dist/src/telemetry/wrap.correlation.test.d.ts.map +1 -0
  354. package/dist/src/telemetry/wrap.correlation.test.js +174 -0
  355. package/dist/src/telemetry/wrap.correlation.test.js.map +1 -0
  356. package/dist/src/telemetry/wrap.d.ts +28 -7
  357. package/dist/src/telemetry/wrap.d.ts.map +1 -1
  358. package/dist/src/telemetry/wrap.gate.test.d.ts +22 -0
  359. package/dist/src/telemetry/wrap.gate.test.d.ts.map +1 -0
  360. package/dist/src/telemetry/wrap.gate.test.js +202 -0
  361. package/dist/src/telemetry/wrap.gate.test.js.map +1 -0
  362. package/dist/src/telemetry/wrap.js +196 -52
  363. package/dist/src/telemetry/wrap.js.map +1 -1
  364. package/dist/src/telemetry/wrap.marker.test.d.ts +16 -0
  365. package/dist/src/telemetry/wrap.marker.test.d.ts.map +1 -0
  366. package/dist/src/telemetry/wrap.marker.test.js +190 -0
  367. package/dist/src/telemetry/wrap.marker.test.js.map +1 -0
  368. package/dist/src/telemetry/wrap.test.js +14 -0
  369. package/dist/src/telemetry/wrap.test.js.map +1 -1
  370. package/dist/src/types.d.ts +6 -0
  371. package/dist/src/types.d.ts.map +1 -1
  372. package/dist/tests/SecurityScanner.exec.test.js +60 -0
  373. package/dist/tests/SecurityScanner.exec.test.js.map +1 -1
  374. package/dist/tests/security/ContinuousSecurity.test.js +10 -4
  375. package/dist/tests/security/ContinuousSecurity.test.js.map +1 -1
  376. package/dist/tests/security/SecurityScanner.chmod-evasion.test.d.ts +2 -0
  377. package/dist/tests/security/SecurityScanner.chmod-evasion.test.d.ts.map +1 -0
  378. package/dist/tests/security/SecurityScanner.chmod-evasion.test.js +126 -0
  379. package/dist/tests/security/SecurityScanner.chmod-evasion.test.js.map +1 -0
  380. package/dist/tests/security/chmod-compound.test.d.ts +2 -0
  381. package/dist/tests/security/chmod-compound.test.d.ts.map +1 -0
  382. package/dist/tests/security/chmod-compound.test.js +188 -0
  383. package/dist/tests/security/chmod-compound.test.js.map +1 -0
  384. package/dist/tests/security/pii-detection.test.js +24 -0
  385. package/dist/tests/security/pii-detection.test.js.map +1 -1
  386. package/dist/tests/security/scanner-regression-guard.test.d.ts +23 -7
  387. package/dist/tests/security/scanner-regression-guard.test.d.ts.map +1 -1
  388. package/dist/tests/security/scanner-regression-guard.test.js +206 -12
  389. package/dist/tests/security/scanner-regression-guard.test.js.map +1 -1
  390. package/dist/tests/security/sensitive-path-fp.test.d.ts +2 -0
  391. package/dist/tests/security/sensitive-path-fp.test.d.ts.map +1 -0
  392. package/dist/tests/security/sensitive-path-fp.test.js +142 -0
  393. package/dist/tests/security/sensitive-path-fp.test.js.map +1 -0
  394. package/dist/tests/services/bundled-sibling-scan.test.d.ts +2 -0
  395. package/dist/tests/services/bundled-sibling-scan.test.d.ts.map +1 -0
  396. package/dist/tests/services/bundled-sibling-scan.test.js +139 -0
  397. package/dist/tests/services/bundled-sibling-scan.test.js.map +1 -0
  398. package/dist/tests/unit/services/skill-installation.io.test.js +166 -0
  399. package/dist/tests/unit/services/skill-installation.io.test.js.map +1 -1
  400. package/dist/tests/unit/services/skill-installation.policy.test.d.ts +8 -0
  401. package/dist/tests/unit/services/skill-installation.policy.test.d.ts.map +1 -0
  402. package/dist/tests/unit/services/skill-installation.policy.test.js +151 -0
  403. package/dist/tests/unit/services/skill-installation.policy.test.js.map +1 -0
  404. package/package.json +28 -3
@@ -0,0 +1,202 @@
1
+ /**
2
+ * SMI-5456: Tests for the agent-mediation marker channel.
3
+ *
4
+ * Covers the P-5 shared-state invariants for the session marker file:
5
+ * - `_meta` wins over the marker file (per-field precedence)
6
+ * - marker file alone works
7
+ * - neither present ⇒ fields default false / false / null
8
+ * - stale (past-TTL) marker is ignored
9
+ * - corrupt / malformed marker file is ignored, never throws
10
+ * - `_meta` extraction is defensive (junk types dropped)
11
+ */
12
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
13
+ import { mkdtempSync, writeFileSync, rmSync, symlinkSync } from 'node:fs';
14
+ import { tmpdir } from 'node:os';
15
+ import { join } from 'node:path';
16
+ import { resolveAgentMarker, readSessionMarker, extractMarkerMeta, NO_AGENT_MARKER, AGENT_MARKER_TTL_MS, AGENT_MARKER_SCHEMA_VERSION, AGENT_MARKER_MAX_FILE_BYTES, } from './agent-marker.js';
17
+ let markerDir;
18
+ const NOW = 1_720_000_000_000; // fixed clock for deterministic TTL math
19
+ function writeMarker(name, file) {
20
+ writeFileSync(join(markerDir, name), JSON.stringify(file), 'utf-8');
21
+ }
22
+ function freshMarker(overrides = {}) {
23
+ return {
24
+ schema: AGENT_MARKER_SCHEMA_VERSION,
25
+ session_id: 'sess-1',
26
+ started_at: NOW - 1000,
27
+ harness: 'claude-code',
28
+ ...overrides,
29
+ };
30
+ }
31
+ beforeEach(() => {
32
+ markerDir = mkdtempSync(join(tmpdir(), 'skillsmith-marker-'));
33
+ process.env.SKILLSMITH_AGENT_MARKER_DIR = markerDir;
34
+ });
35
+ afterEach(() => {
36
+ delete process.env.SKILLSMITH_AGENT_MARKER_DIR;
37
+ rmSync(markerDir, { recursive: true, force: true });
38
+ });
39
+ // ---------------------------------------------------------------------------
40
+ // readSessionMarker
41
+ // ---------------------------------------------------------------------------
42
+ describe('readSessionMarker', () => {
43
+ it('returns null when the marker directory does not exist', () => {
44
+ rmSync(markerDir, { recursive: true, force: true });
45
+ expect(readSessionMarker({ now: NOW })).toBeNull();
46
+ });
47
+ it('reads a fresh marker file (presence ⇒ agent session, harness threaded)', () => {
48
+ writeMarker('a.json', freshMarker());
49
+ expect(readSessionMarker({ now: NOW })).toEqual({
50
+ agentSession: true,
51
+ nudgeOrigin: false,
52
+ triggerId: null,
53
+ harness: 'claude-code',
54
+ });
55
+ });
56
+ it('surfaces explicit nudge_origin + trigger_id from the file', () => {
57
+ writeMarker('a.json', freshMarker({ nudge_origin: true, trigger_id: 'T1' }));
58
+ expect(readSessionMarker({ now: NOW })).toEqual({
59
+ agentSession: true,
60
+ nudgeOrigin: true,
61
+ triggerId: 'T1',
62
+ harness: 'claude-code',
63
+ });
64
+ });
65
+ it('drops an out-of-vocabulary harness value but keeps the marker', () => {
66
+ writeMarker('a.json', freshMarker({ harness: 'my-cool-editor' }));
67
+ const resolved = readSessionMarker({ now: NOW });
68
+ expect(resolved?.agentSession).toBe(true);
69
+ expect(resolved?.harness).toBeUndefined();
70
+ });
71
+ it('drops a wrongly-typed harness value', () => {
72
+ writeMarker('a.json', freshMarker({ harness: 42 }));
73
+ expect(readSessionMarker({ now: NOW })?.harness).toBeUndefined();
74
+ });
75
+ it('honours an explicit agent_session:false opt-out', () => {
76
+ writeMarker('a.json', freshMarker({ agent_session: false }));
77
+ expect(readSessionMarker({ now: NOW })?.agentSession).toBe(false);
78
+ });
79
+ it('ignores a marker past the TTL', () => {
80
+ writeMarker('a.json', freshMarker({ started_at: NOW - AGENT_MARKER_TTL_MS - 1 }));
81
+ expect(readSessionMarker({ now: NOW })).toBeNull();
82
+ });
83
+ it('keeps a marker exactly at the TTL boundary', () => {
84
+ writeMarker('a.json', freshMarker({ started_at: NOW - AGENT_MARKER_TTL_MS }));
85
+ expect(readSessionMarker({ now: NOW })?.agentSession).toBe(true);
86
+ });
87
+ it('selects the freshest non-expired marker among several', () => {
88
+ writeMarker('old.json', freshMarker({ session_id: 'old', started_at: NOW - 5000 }));
89
+ writeMarker('new.json', freshMarker({ session_id: 'new', started_at: NOW - 100, trigger_id: 'T-NEW' }));
90
+ expect(readSessionMarker({ now: NOW })?.triggerId).toBe('T-NEW');
91
+ });
92
+ it('ignores corrupt JSON without throwing', () => {
93
+ writeFileSync(join(markerDir, 'bad.json'), '{ not valid json', 'utf-8');
94
+ expect(readSessionMarker({ now: NOW })).toBeNull();
95
+ });
96
+ it('ignores a marker missing session_id or started_at', () => {
97
+ writeMarker('no-session.json', { started_at: NOW - 100 });
98
+ writeMarker('no-time.json', { session_id: 'x' });
99
+ expect(readSessionMarker({ now: NOW })).toBeNull();
100
+ });
101
+ it('ignores non-.json files and falls back to a valid sibling', () => {
102
+ writeFileSync(join(markerDir, 'note.txt'), 'ignored', 'utf-8');
103
+ writeMarker('a.json', freshMarker({ trigger_id: 'T2' }));
104
+ expect(readSessionMarker({ now: NOW })?.triggerId).toBe('T2');
105
+ });
106
+ it('ignores a marker file over AGENT_MARKER_MAX_FILE_BYTES without throwing', () => {
107
+ // A well-formed marker is a few hundred bytes; pad `trigger_id` past the
108
+ // cap to simulate a corrupt/hostile oversized file on the hot read path.
109
+ const oversizedTriggerId = 'x'.repeat(AGENT_MARKER_MAX_FILE_BYTES + 1);
110
+ writeMarker('huge.json', freshMarker({ trigger_id: oversizedTriggerId }));
111
+ expect(readSessionMarker({ now: NOW })).toBeNull();
112
+ });
113
+ it('ignores a symlink instead of following it', () => {
114
+ // Target lives OUTSIDE markerDir and is otherwise perfectly valid — if the
115
+ // reader followed the symlink it would resolve `trigger_id: 'OUTSIDE'`.
116
+ // `lstat` must reject the symlink entry before `readFileSync` ever runs.
117
+ const outsideDir = mkdtempSync(join(tmpdir(), 'skillsmith-marker-outside-'));
118
+ const outsidePath = join(outsideDir, 'target.json');
119
+ writeFileSync(outsidePath, JSON.stringify(freshMarker({ trigger_id: 'OUTSIDE' })), 'utf-8');
120
+ symlinkSync(outsidePath, join(markerDir, 'link.json'));
121
+ expect(readSessionMarker({ now: NOW })).toBeNull();
122
+ rmSync(outsideDir, { recursive: true, force: true });
123
+ });
124
+ });
125
+ // ---------------------------------------------------------------------------
126
+ // extractMarkerMeta (defensive _meta validation)
127
+ // ---------------------------------------------------------------------------
128
+ describe('extractMarkerMeta', () => {
129
+ it('returns empty for non-object input', () => {
130
+ expect(extractMarkerMeta(undefined)).toEqual({});
131
+ expect(extractMarkerMeta(null)).toEqual({});
132
+ expect(extractMarkerMeta('nope')).toEqual({});
133
+ expect(extractMarkerMeta(42)).toEqual({});
134
+ });
135
+ it('extracts well-typed fields', () => {
136
+ expect(extractMarkerMeta({ agent_session: true, nudge_origin: false, trigger_id: 'T9' })).toEqual({ agentSession: true, nudgeOrigin: false, triggerId: 'T9' });
137
+ });
138
+ it('accepts an explicit null trigger_id', () => {
139
+ expect(extractMarkerMeta({ trigger_id: null })).toEqual({ triggerId: null });
140
+ });
141
+ it('drops junk / wrongly-typed values', () => {
142
+ expect(extractMarkerMeta({
143
+ agent_session: 'true', // string, not boolean
144
+ nudge_origin: 1, // number, not boolean
145
+ trigger_id: 123, // number, not string
146
+ harness: 'my-cool-editor', // string, but out of vocabulary
147
+ unrelated: 'ignored',
148
+ })).toEqual({});
149
+ });
150
+ it('accepts a vocabulary harness value', () => {
151
+ expect(extractMarkerMeta({ harness: 'opencode' })).toEqual({ harness: 'opencode' });
152
+ });
153
+ });
154
+ // ---------------------------------------------------------------------------
155
+ // resolveAgentMarker (precedence)
156
+ // ---------------------------------------------------------------------------
157
+ describe('resolveAgentMarker', () => {
158
+ it('returns the neutral default when neither _meta nor file is present', () => {
159
+ expect(resolveAgentMarker(undefined, { now: NOW })).toEqual(NO_AGENT_MARKER);
160
+ });
161
+ it('uses the marker file when _meta is absent', () => {
162
+ writeMarker('a.json', freshMarker({ nudge_origin: true, trigger_id: 'FILE' }));
163
+ expect(resolveAgentMarker(undefined, { now: NOW })).toEqual({
164
+ agentSession: true,
165
+ nudgeOrigin: true,
166
+ triggerId: 'FILE',
167
+ harness: 'claude-code',
168
+ });
169
+ });
170
+ it('lets _meta win over the marker file per field', () => {
171
+ writeMarker('a.json', freshMarker({ agent_session: true, nudge_origin: true, trigger_id: 'FILE' }));
172
+ const resolved = resolveAgentMarker({ agent_session: false, trigger_id: 'META' }, { now: NOW });
173
+ // agent_session + trigger_id come from _meta; nudge_origin + harness fall
174
+ // back to the file.
175
+ expect(resolved).toEqual({
176
+ agentSession: false,
177
+ nudgeOrigin: true,
178
+ triggerId: 'META',
179
+ harness: 'claude-code',
180
+ });
181
+ });
182
+ it('lets a _meta harness win over the file harness', () => {
183
+ writeMarker('a.json', freshMarker()); // file harness: claude-code
184
+ expect(resolveAgentMarker({ harness: 'cursor' }, { now: NOW })?.harness).toBe('cursor');
185
+ });
186
+ it('a junk _meta harness falls back to the file harness', () => {
187
+ writeMarker('a.json', freshMarker()); // file harness: claude-code
188
+ expect(resolveAgentMarker({ harness: 'my-cool-editor' }, { now: NOW })?.harness).toBe('claude-code');
189
+ });
190
+ it('lets _meta provide fields with no marker file at all', () => {
191
+ expect(resolveAgentMarker({ agent_session: true }, { now: NOW })).toEqual({
192
+ agentSession: true,
193
+ nudgeOrigin: false,
194
+ triggerId: null,
195
+ });
196
+ });
197
+ it('an expired file behaves as no file (falls through to _meta / default)', () => {
198
+ writeMarker('a.json', freshMarker({ started_at: NOW - AGENT_MARKER_TTL_MS - 1, trigger_id: 'STALE' }));
199
+ expect(resolveAgentMarker(undefined, { now: NOW })).toEqual(NO_AGENT_MARKER);
200
+ });
201
+ });
202
+ //# sourceMappingURL=agent-marker.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-marker.test.js","sourceRoot":"","sources":["../../../src/telemetry/agent-marker.test.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,8 @@ export { SkillsmithTracer, getTracer, initializeTracing, shutdownTracing, traced
10
10
  export { MetricsRegistry, getMetrics, initializeMetrics, timeAsync, timeSync, LATENCY_BUCKETS, type MetricsConfig, type MetricLabels, type Counter, type Histogram, type Gauge, type MetricsSnapshot, } from './metrics.js';
11
11
  export { exportToPrometheus, getPrometheusMetrics, createPrometheusHandler, type PrometheusExportOptions, } from './prometheus.js';
12
12
  export { initializePostHog, shutdownPostHog, flushPostHog, trackEvent, trackSkillSearch, trackSkillView, trackSkillInstall, trackSkillInvoke, trackApiError, identifyUser, isFeatureFlagEnabled, getPostHog, isPostHogEnabled, ALLOWED_TRAITS, type PostHogConfig, type SkillsmithEventType, type SkillEventProperties, type TrackSkillInvokeParams, type AllowedUserTraits, } from './posthog.js';
13
- export { withTelemetry, isTelemetered, setEmissionGate, type WithTelemetryOpts } from './wrap.js';
13
+ export { withTelemetry, isTelemetered, setEmissionGate, runWithEmissionGate, runWithMarkerContext, type WithTelemetryOpts, } from './wrap.js';
14
+ export { resolveAgentMarker, readSessionMarker, extractMarkerMeta, NO_AGENT_MARKER, AGENT_MARKER_TTL_MS, AGENT_MARKER_SCHEMA_VERSION, KNOWN_HARNESS_FRAMEWORKS, type HarnessFramework, type AgentMarker, type AgentMarkerFile, } from './agent-marker.js';
14
15
  /**
15
16
  * Initialize all telemetry (tracing + metrics)
16
17
  * Call this at application startup
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/telemetry/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,MAAM,EACN,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,WAAW,GACjB,MAAM,aAAa,CAAA;AAGpB,OAAO,EACL,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,SAAS,EACT,QAAQ,EACR,eAAe,EACf,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,KAAK,EACV,KAAK,eAAe,GACrB,MAAM,cAAc,CAAA;AAGrB,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,KAAK,uBAAuB,GAC7B,MAAM,iBAAiB,CAAA;AAGxB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,GACvB,MAAM,cAAc,CAAA;AAIrB,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAEjG;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,CAAC,EAAE;IACjD,OAAO,CAAC,EAAE,OAAO,aAAa,EAAE,YAAY,CAAA;IAC5C,OAAO,CAAC,EAAE,OAAO,cAAc,EAAE,aAAa,CAAA;CAC/C,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhB;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAGvD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/telemetry/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,MAAM,EACN,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,WAAW,GACjB,MAAM,aAAa,CAAA;AAGpB,OAAO,EACL,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,SAAS,EACT,QAAQ,EACR,eAAe,EACf,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,KAAK,EACV,KAAK,eAAe,GACrB,MAAM,cAAc,CAAA;AAGrB,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,KAAK,uBAAuB,GAC7B,MAAM,iBAAiB,CAAA;AAGxB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,GACvB,MAAM,cAAc,CAAA;AAOrB,OAAO,EACL,aAAa,EACb,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,KAAK,iBAAiB,GACvB,MAAM,WAAW,CAAA;AAGlB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,2BAA2B,EAC3B,wBAAwB,EACxB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,eAAe,GACrB,MAAM,mBAAmB,CAAA;AAE1B;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,CAAC,EAAE;IACjD,OAAO,CAAC,EAAE,OAAO,aAAa,EAAE,YAAY,CAAA;IAC5C,OAAO,CAAC,EAAE,OAAO,cAAc,EAAE,aAAa,CAAA;CAC/C,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhB;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAGvD"}
@@ -16,7 +16,12 @@ export { exportToPrometheus, getPrometheusMetrics, createPrometheusHandler, } fr
16
16
  export { initializePostHog, shutdownPostHog, flushPostHog, trackEvent, trackSkillSearch, trackSkillView, trackSkillInstall, trackSkillInvoke, trackApiError, identifyUser, isFeatureFlagEnabled, getPostHog, isPostHogEnabled, ALLOWED_TRAITS, } from './posthog.js';
17
17
  // In-process HOF + registry (SMI-5016)
18
18
  // Emission gate (SMI-5019 wire-in) — privacy-safe default-suppress.
19
- export { withTelemetry, isTelemetered, setEmissionGate } from './wrap.js';
19
+ // - `runWithEmissionGate` (SMI-5479) — AsyncLocalStorage-scoped, per-call
20
+ // primary gate; `setEmissionGate` — deprecated process-wide fallback thunk.
21
+ // Marker context (SMI-5456) — AsyncLocalStorage-scoped agent-mediation marker.
22
+ export { withTelemetry, isTelemetered, setEmissionGate, runWithEmissionGate, runWithMarkerContext, } from './wrap.js';
23
+ // Agent-mediation marker channel (SMI-5456) — `_meta` + session marker file.
24
+ export { resolveAgentMarker, readSessionMarker, extractMarkerMeta, NO_AGENT_MARKER, AGENT_MARKER_TTL_MS, AGENT_MARKER_SCHEMA_VERSION, KNOWN_HARNESS_FRAMEWORKS, } from './agent-marker.js';
20
25
  /**
21
26
  * Initialize all telemetry (tracing + metrics)
22
27
  * Call this at application startup
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/telemetry/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,iBAAiB;AACjB,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,MAAM,GAIP,MAAM,aAAa,CAAA;AAEpB,kBAAkB;AAClB,OAAO,EACL,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,SAAS,EACT,QAAQ,EACR,eAAe,GAOhB,MAAM,cAAc,CAAA;AAErB,gCAAgC;AAChC,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,GAExB,MAAM,iBAAiB,CAAA;AAExB,6BAA6B;AAC7B,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EAChB,cAAc,GAMf,MAAM,cAAc,CAAA;AAErB,uCAAuC;AACvC,oEAAoE;AACpE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAA0B,MAAM,WAAW,CAAA;AAEjG;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAGzC;IACC,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAA;IACzD,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAA;IAE1D,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;AAC7F,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAA;IACvD,MAAM,eAAe,EAAE,CAAA;AACzB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/telemetry/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,iBAAiB;AACjB,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,MAAM,GAIP,MAAM,aAAa,CAAA;AAEpB,kBAAkB;AAClB,OAAO,EACL,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,SAAS,EACT,QAAQ,EACR,eAAe,GAOhB,MAAM,cAAc,CAAA;AAErB,gCAAgC;AAChC,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,GAExB,MAAM,iBAAiB,CAAA;AAExB,6BAA6B;AAC7B,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EAChB,cAAc,GAMf,MAAM,cAAc,CAAA;AAErB,uCAAuC;AACvC,oEAAoE;AACpE,4EAA4E;AAC5E,gFAAgF;AAChF,+EAA+E;AAC/E,OAAO,EACL,aAAa,EACb,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,oBAAoB,GAErB,MAAM,WAAW,CAAA;AAElB,6EAA6E;AAC7E,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,2BAA2B,EAC3B,wBAAwB,GAIzB,MAAM,mBAAmB,CAAA;AAE1B;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAGzC;IACC,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAA;IACzD,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAA;IAE1D,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;AAC7F,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAA;IACvD,MAAM,eAAe,EAAE,CAAA;AACzB,CAAC"}
@@ -152,6 +152,31 @@ export interface TrackSkillInvokeParams {
152
152
  durationMs: number;
153
153
  success: boolean;
154
154
  distinctId?: string;
155
+ /**
156
+ * SMI-5456 agent-mediation marker fields. Per-event, non-identifying; they
157
+ * ride the same consent-gated event as the rest of the payload.
158
+ */
159
+ /** True when the invocation is part of an agent-mediated session. */
160
+ agentSession?: boolean;
161
+ /** True when the invocation originated from a nudge. */
162
+ nudgeOrigin?: boolean;
163
+ /** Paywall / nudge trigger id, or null. */
164
+ triggerId?: string | null;
165
+ /**
166
+ * SMI-5615: error capture fields, populated only when `success` is `false`.
167
+ * `errorMessage` is already redacted and truncated (<=256 chars) by the
168
+ * caller (`withTelemetry`) — no stack traces leave the machine.
169
+ */
170
+ /** The caught error's constructor name (e.g. `TypeError`), or `typeof` for non-Error throws. */
171
+ errorName?: string;
172
+ /** Redacted, truncated (<=256 char) error message. */
173
+ errorMessage?: string;
174
+ /**
175
+ * Cross-signal join key shared by a disk log line, an OTel span, and this
176
+ * PostHog event for one call — installed per-call by `withTelemetry` via
177
+ * `runWithCorrelationId`. Present regardless of success/failure.
178
+ */
179
+ correlationId?: string;
155
180
  }
156
181
  /**
157
182
  * Convenience function to track skill invocation events (SMI-5016).
@@ -1 +1 @@
1
- {"version":3,"file":"posthog.d.ts","sourceRoot":"","sources":["../../../src/telemetry/posthog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"posthog.d.ts","sourceRoot":"","sources":["../../../src/telemetry/posthog.ts"],"names":[],"mappings":"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"}
@@ -205,13 +205,22 @@ export function trackSkillInstall(distinctId, skillId, source) {
205
205
  * Mirrors `trackSkillInstall()` — positional for resolved-ID callers.
206
206
  */
207
207
  export function trackSkillInvoke(params) {
208
- const { skillId, source, framework, durationMs, success, distinctId = 'anonymous' } = params;
208
+ const { skillId, source, framework, durationMs, success, distinctId = 'anonymous', agentSession = false, nudgeOrigin = false, triggerId = null, errorName, errorMessage, correlationId, } = params;
209
209
  trackEvent(distinctId, 'skill_invoke', {
210
210
  skill_id: skillId,
211
211
  invoke_source: source,
212
212
  framework,
213
213
  duration_ms: durationMs,
214
214
  success,
215
+ // SMI-5456: agent-mediation marker (per-event booleans + trigger id).
216
+ agent_session: agentSession,
217
+ nudge_origin: nudgeOrigin,
218
+ trigger_id: triggerId,
219
+ // SMI-5615: error capture (redacted/truncated, no stack traces) +
220
+ // cross-signal correlation ID.
221
+ error_name: errorName,
222
+ error_message: errorMessage,
223
+ correlation_id: correlationId,
215
224
  });
216
225
  }
217
226
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"posthog.js","sourceRoot":"","sources":["../../../src/telemetry/posthog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"posthog.js","sourceRoot":"","sources":["../../../src/telemetry/posthog.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,11 @@ import { withTelemetry } from './wrap.js';
14
14
  vi.mock('./posthog.js', () => ({
15
15
  trackSkillInvoke: vi.fn(),
16
16
  }));
17
+ // SMI-5615: test seam for the Wave-2 `logging/redact.ts` module — see
18
+ // wrap.test.ts for rationale.
19
+ vi.mock('../logging/redact.js', () => ({
20
+ redactSensitiveData: (s) => s,
21
+ }));
17
22
  const noopHandler = async () => 42;
18
23
  const wrappedNoop = withTelemetry(noopHandler, {
19
24
  source: 'mcp-tool',
@@ -1 +1 @@
1
- {"version":3,"file":"wrap.bench.js","sourceRoot":"","sources":["../../../src/telemetry/wrap.bench.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAEzC,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7B,gBAAgB,EAAE,EAAE,CAAC,EAAE,EAAE;CAC1B,CAAC,CAAC,CAAA;AAEH,MAAM,WAAW,GAAG,KAAK,IAAqB,EAAE,CAAC,EAAE,CAAA;AAEnD,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,EAAE;IAC7C,MAAM,EAAE,UAAU;IAClB,cAAc,EAAE,GAAG,EAAE,CAAC,aAAa;CACpC,CAAC,CAAA;AAEF,MAAM,oBAAoB,GAAG,aAAa,CAAC,WAAW,EAAE;IACtD,MAAM,EAAE,UAAU;IAClB,cAAc,EAAE,GAAG,EAAE,CAAC,aAAa;IACnC,gBAAgB,EAAE,GAAG,EAAE,CAAC,QAAQ;CACjC,CAAC,CAAA;AAEF,SAAS,CAAC,KAAK,IAAI,EAAE;IACnB,wCAAwC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAO,WAAiD,EAAE,CAAA;IAC5D,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,KAAK,CACH,qCAAqC,EACrC,KAAK,IAAI,EAAE;QACT,MAAO,WAAiD,EAAE,CAAA;IAC5D,CAAC,EACD,EAAE,UAAU,EAAE,GAAG,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAC1C,CAAA;IAED,KAAK,CACH,uCAAuC,EACvC,KAAK,IAAI,EAAE;QACT,MAAO,oBAA0D,EAAE,CAAA;IACrE,CAAC,EACD,EAAE,UAAU,EAAE,GAAG,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAC1C,CAAA;AACH,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"wrap.bench.js","sourceRoot":"","sources":["../../../src/telemetry/wrap.bench.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAEzC,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7B,gBAAgB,EAAE,EAAE,CAAC,EAAE,EAAE;CAC1B,CAAC,CAAC,CAAA;AAEH,sEAAsE;AACtE,8BAA8B;AAC9B,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE,CAAC,CAAC;IACrC,mBAAmB,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC;CACtC,CAAC,CAAC,CAAA;AAEH,MAAM,WAAW,GAAG,KAAK,IAAqB,EAAE,CAAC,EAAE,CAAA;AAEnD,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,EAAE;IAC7C,MAAM,EAAE,UAAU;IAClB,cAAc,EAAE,GAAG,EAAE,CAAC,aAAa;CACpC,CAAC,CAAA;AAEF,MAAM,oBAAoB,GAAG,aAAa,CAAC,WAAW,EAAE;IACtD,MAAM,EAAE,UAAU;IAClB,cAAc,EAAE,GAAG,EAAE,CAAC,aAAa;IACnC,gBAAgB,EAAE,GAAG,EAAE,CAAC,QAAQ;CACjC,CAAC,CAAA;AAEF,SAAS,CAAC,KAAK,IAAI,EAAE;IACnB,wCAAwC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAO,WAAiD,EAAE,CAAA;IAC5D,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,KAAK,CACH,qCAAqC,EACrC,KAAK,IAAI,EAAE;QACT,MAAO,WAAiD,EAAE,CAAA;IAC5D,CAAC,EACD,EAAE,UAAU,EAAE,GAAG,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAC1C,CAAA;IAED,KAAK,CACH,uCAAuC,EACvC,KAAK,IAAI,EAAE;QACT,MAAO,oBAA0D,EAAE,CAAA;IACrE,CAAC,EACD,EAAE,UAAU,EAAE,GAAG,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAC1C,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * SMI-5615: `withTelemetry` correlation-ID + error-capture coverage. Sibling
3
+ * to `wrap.test.ts` / `wrap.marker.test.ts` / `wrap.gate.test.ts` (split per
4
+ * the 500-line file gate).
5
+ *
6
+ * Covers the Shared-State / Coordination Audit (P-5) `correlationIdStorage`
7
+ * row + the §2 error-capture extension:
8
+ * - a thrown error results in a `trackSkillInvoke` payload with
9
+ * `errorName` / `errorMessage` / `correlationId` populated
10
+ * - two concurrent, overlapping `withTelemetry`-wrapped calls each retain
11
+ * their OWN correlation ID (neither observes the other's)
12
+ * - a wrapped call invoked from inside another wrapped call's handler
13
+ * inherits the outer correlation ID (nested-call, mint-if-absent case)
14
+ * - the success-path payload shape: `correlationId` present, `errorName` /
15
+ * `errorMessage` absent
16
+ * - `errorMessage` is redacted (via the mocked `redactSensitiveData` seam)
17
+ * and truncated to <=256 chars
18
+ */
19
+ export {};
20
+ //# sourceMappingURL=wrap.correlation.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrap.correlation.test.d.ts","sourceRoot":"","sources":["../../../src/telemetry/wrap.correlation.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG"}
@@ -0,0 +1,174 @@
1
+ /**
2
+ * SMI-5615: `withTelemetry` correlation-ID + error-capture coverage. Sibling
3
+ * to `wrap.test.ts` / `wrap.marker.test.ts` / `wrap.gate.test.ts` (split per
4
+ * the 500-line file gate).
5
+ *
6
+ * Covers the Shared-State / Coordination Audit (P-5) `correlationIdStorage`
7
+ * row + the §2 error-capture extension:
8
+ * - a thrown error results in a `trackSkillInvoke` payload with
9
+ * `errorName` / `errorMessage` / `correlationId` populated
10
+ * - two concurrent, overlapping `withTelemetry`-wrapped calls each retain
11
+ * their OWN correlation ID (neither observes the other's)
12
+ * - a wrapped call invoked from inside another wrapped call's handler
13
+ * inherits the outer correlation ID (nested-call, mint-if-absent case)
14
+ * - the success-path payload shape: `correlationId` present, `errorName` /
15
+ * `errorMessage` absent
16
+ * - `errorMessage` is redacted (via the mocked `redactSensitiveData` seam)
17
+ * and truncated to <=256 chars
18
+ */
19
+ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
20
+ import { withTelemetry, setEmissionGate } from './wrap.js';
21
+ vi.mock('./posthog.js', () => ({
22
+ trackSkillInvoke: vi.fn(),
23
+ }));
24
+ // SMI-5615: isolation seam for the Wave-2 `logging/redact.ts` module (landed
25
+ // alongside this file — see docs/internal/implementation/production-error-logging.md).
26
+ // The factory below marks redacted text so tests can assert the redaction
27
+ // call site was actually exercised, distinct from a passthrough no-op.
28
+ vi.mock('../logging/redact.js', () => ({
29
+ redactSensitiveData: (s) => s.replace('SECRET_TOKEN', '[REDACTED]'),
30
+ }));
31
+ import { trackSkillInvoke } from './posthog.js';
32
+ const mockTrack = vi.mocked(trackSkillInvoke);
33
+ const BASE_OPTS = {
34
+ source: 'mcp-tool',
35
+ extractSkillId: () => 'test/skill',
36
+ };
37
+ beforeEach(() => {
38
+ mockTrack.mockReset();
39
+ setEmissionGate(() => true);
40
+ });
41
+ afterEach(() => {
42
+ setEmissionGate(undefined);
43
+ });
44
+ // ---------------------------------------------------------------------------
45
+ // Error capture on throw
46
+ // ---------------------------------------------------------------------------
47
+ describe('error capture (SMI-5615)', () => {
48
+ it('populates errorName/errorMessage/correlationId when the handler throws', async () => {
49
+ const boom = () => {
50
+ throw new TypeError('handler exploded: SECRET_TOKEN');
51
+ };
52
+ const wrapped = withTelemetry(boom, BASE_OPTS);
53
+ await expect(wrapped()).rejects.toThrow('handler exploded');
54
+ expect(mockTrack).toHaveBeenCalledOnce();
55
+ const payload = mockTrack.mock.calls[0][0];
56
+ expect(payload.success).toBe(false);
57
+ expect(payload.errorName).toBe('TypeError');
58
+ // Redacted (SECRET_TOKEN -> [REDACTED] per the mocked redact seam above).
59
+ expect(payload.errorMessage).toBe('handler exploded: [REDACTED]');
60
+ expect(payload.correlationId).toEqual(expect.any(String));
61
+ expect(payload.correlationId.length).toBeGreaterThan(0);
62
+ });
63
+ it('captures the class name for a non-Error thrown value', async () => {
64
+ const boom = () => {
65
+ throw 'a plain string failure';
66
+ };
67
+ const wrapped = withTelemetry(boom, BASE_OPTS);
68
+ await expect(wrapped()).rejects.toBe('a plain string failure');
69
+ expect(mockTrack).toHaveBeenCalledOnce();
70
+ const payload = mockTrack.mock.calls[0][0];
71
+ expect(payload.errorName).toBe('string');
72
+ expect(payload.errorMessage).toBe('a plain string failure');
73
+ });
74
+ it('truncates errorMessage to 256 characters', async () => {
75
+ const longMessage = 'x'.repeat(1000);
76
+ const boom = () => {
77
+ throw new Error(longMessage);
78
+ };
79
+ const wrapped = withTelemetry(boom, BASE_OPTS);
80
+ await expect(wrapped()).rejects.toThrow();
81
+ const payload = mockTrack.mock.calls[0][0];
82
+ expect(payload.errorMessage).toHaveLength(256);
83
+ });
84
+ it('success-path payload has correlationId but no errorName/errorMessage', async () => {
85
+ const handler = () => 'ok';
86
+ const wrapped = withTelemetry(handler, BASE_OPTS);
87
+ await wrapped();
88
+ expect(mockTrack).toHaveBeenCalledOnce();
89
+ const payload = mockTrack.mock.calls[0][0];
90
+ expect(payload.success).toBe(true);
91
+ expect(payload.correlationId).toEqual(expect.any(String));
92
+ expect(payload.errorName).toBeUndefined();
93
+ expect(payload.errorMessage).toBeUndefined();
94
+ });
95
+ });
96
+ // ---------------------------------------------------------------------------
97
+ // Concurrent calls each retain their OWN correlation ID (P-5 invariant)
98
+ // ---------------------------------------------------------------------------
99
+ describe('correlation-ID concurrency (P-5 invariant)', () => {
100
+ it('two concurrent, overlapping calls each retain their own correlation ID', async () => {
101
+ // Force interleaving with manually-resolved promises: A starts first, B
102
+ // starts second, A finishes (and emits) while B is still awaiting, then B
103
+ // finishes — B's emit must still carry B's OWN correlation ID, not A's.
104
+ let releaseA;
105
+ let releaseB;
106
+ const blockA = new Promise((r) => (releaseA = r));
107
+ const blockB = new Promise((r) => (releaseB = r));
108
+ const wrappedA = withTelemetry(async () => {
109
+ await blockA;
110
+ return 'A';
111
+ }, { ...BASE_OPTS, extractSkillId: () => 'tool-a' });
112
+ const wrappedB = withTelemetry(async () => {
113
+ await blockB;
114
+ return 'B';
115
+ }, { ...BASE_OPTS, extractSkillId: () => 'tool-b' });
116
+ const callA = wrappedA();
117
+ const callB = wrappedB();
118
+ releaseA();
119
+ await callA;
120
+ releaseB();
121
+ await callB;
122
+ expect(mockTrack).toHaveBeenCalledTimes(2);
123
+ const [payloadA, payloadB] = mockTrack.mock.calls.map((c) => c[0]);
124
+ expect(payloadA.skillId).toBe('tool-a');
125
+ expect(payloadB.skillId).toBe('tool-b');
126
+ expect(payloadA.correlationId).toEqual(expect.any(String));
127
+ expect(payloadB.correlationId).toEqual(expect.any(String));
128
+ // The heart of the invariant: neither call observes the other's ID.
129
+ expect(payloadA.correlationId).not.toBe(payloadB.correlationId);
130
+ });
131
+ it('a nested wrapped call inherits the outer correlation ID (mint-if-absent)', async () => {
132
+ const innerHandler = () => {
133
+ // Captured from the LAST trackSkillInvoke call once the inner call
134
+ // completes (below); we read it back from mockTrack after both resolve.
135
+ return 'inner';
136
+ };
137
+ const inner = withTelemetry(innerHandler, {
138
+ ...BASE_OPTS,
139
+ extractSkillId: () => 'tool-inner',
140
+ });
141
+ const outerHandler = async () => {
142
+ await inner();
143
+ return 'outer';
144
+ };
145
+ const outer = withTelemetry(outerHandler, {
146
+ ...BASE_OPTS,
147
+ extractSkillId: () => 'tool-outer',
148
+ });
149
+ await outer();
150
+ expect(mockTrack).toHaveBeenCalledTimes(2);
151
+ const calls = mockTrack.mock.calls.map((c) => c[0]);
152
+ const innerPayload = calls.find((p) => p.skillId === 'tool-inner');
153
+ const outerPayload = calls.find((p) => p.skillId === 'tool-outer');
154
+ const innerCorrelationId = innerPayload?.correlationId;
155
+ const outerCorrelationId = outerPayload?.correlationId;
156
+ expect(innerCorrelationId).toEqual(expect.any(String));
157
+ expect(outerCorrelationId).toEqual(expect.any(String));
158
+ // Mint-if-absent: the nested call inherits the outer ID rather than
159
+ // minting a fresh one, so one logical request keeps a single ID.
160
+ expect(innerCorrelationId).toBe(outerCorrelationId);
161
+ });
162
+ it('sequential (non-nested) calls each mint a fresh, distinct correlation ID', async () => {
163
+ const handler = () => 'ok';
164
+ const wrapped = withTelemetry(handler, BASE_OPTS);
165
+ await wrapped();
166
+ await wrapped();
167
+ expect(mockTrack).toHaveBeenCalledTimes(2);
168
+ const [first, second] = mockTrack.mock.calls.map((c) => c[0]);
169
+ expect(first.correlationId).toEqual(expect.any(String));
170
+ expect(second.correlationId).toEqual(expect.any(String));
171
+ expect(first.correlationId).not.toBe(second.correlationId);
172
+ });
173
+ });
174
+ //# sourceMappingURL=wrap.correlation.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrap.correlation.test.js","sourceRoot":"","sources":["../../../src/telemetry/wrap.correlation.test.ts"],"names":[],"mappings":"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"}