@senpi/runtime 3.0.6-dev.runtime-phase-2.20260630134410 → 3.0.6-dev.runtime-phase-2.20260630134511

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 (322) hide show
  1. package/dist/actions/{tracking-helpers.d.ts → action-events.d.ts} +24 -23
  2. package/dist/actions/action-events.d.ts.map +1 -0
  3. package/dist/actions/{tracking-helpers.js → action-events.js} +64 -82
  4. package/dist/actions/action-events.js.map +1 -0
  5. package/dist/actions/close-position/close-position.action.d.ts.map +1 -1
  6. package/dist/actions/close-position/close-position.action.js +8 -17
  7. package/dist/actions/close-position/close-position.action.js.map +1 -1
  8. package/dist/actions/event-derivation.d.ts +7 -6
  9. package/dist/actions/event-derivation.d.ts.map +1 -1
  10. package/dist/actions/event-derivation.js +6 -5
  11. package/dist/actions/event-derivation.js.map +1 -1
  12. package/dist/actions/llm-decision/openclaw-llm-decision.js +5 -5
  13. package/dist/actions/llm-decision/openclaw-llm-decision.js.map +1 -1
  14. package/dist/actions/open-position/open-position.action.d.ts.map +1 -1
  15. package/dist/actions/open-position/open-position.action.js +9 -17
  16. package/dist/actions/open-position/open-position.action.js.map +1 -1
  17. package/dist/actions/position-tracker/position-tracker.action.d.ts.map +1 -1
  18. package/dist/actions/position-tracker/position-tracker.action.js +1 -2
  19. package/dist/actions/position-tracker/position-tracker.action.js.map +1 -1
  20. package/dist/dsl/engine-client/event-mapping.d.ts.map +1 -1
  21. package/dist/dsl/engine-client/event-mapping.js +0 -3
  22. package/dist/dsl/engine-client/event-mapping.js.map +1 -1
  23. package/dist/dsl/events/build-closed-event.d.ts.map +1 -1
  24. package/dist/dsl/events/build-closed-event.js +0 -1
  25. package/dist/dsl/events/build-closed-event.js.map +1 -1
  26. package/dist/dsl/events/handlers.d.ts.map +1 -1
  27. package/dist/dsl/events/handlers.js +2 -4
  28. package/dist/dsl/events/handlers.js.map +1 -1
  29. package/dist/dsl/events/initial-state.d.ts.map +1 -1
  30. package/dist/dsl/events/initial-state.js +1 -0
  31. package/dist/dsl/events/initial-state.js.map +1 -1
  32. package/dist/dsl/monitor/create-monitor.d.ts +1 -1
  33. package/dist/dsl/monitor/create-monitor.d.ts.map +1 -1
  34. package/dist/dsl/monitor/create-monitor.js +0 -30
  35. package/dist/dsl/monitor/create-monitor.js.map +1 -1
  36. package/dist/dsl/monitor/dsl-failure-events.d.ts +42 -0
  37. package/dist/dsl/monitor/dsl-failure-events.d.ts.map +1 -0
  38. package/dist/dsl/monitor/dsl-failure-events.js +73 -0
  39. package/dist/dsl/monitor/dsl-failure-events.js.map +1 -0
  40. package/dist/dsl/monitor/process-one-position.d.ts.map +1 -1
  41. package/dist/dsl/monitor/process-one-position.js +46 -158
  42. package/dist/dsl/monitor/process-one-position.js.map +1 -1
  43. package/dist/dsl/plugin/index.js +3 -3
  44. package/dist/dsl/plugin/index.js.map +1 -1
  45. package/dist/dsl/plugin/options.d.ts +1 -1
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +45 -58
  48. package/dist/index.js.map +1 -1
  49. package/dist/runtime/__tests__/helpers/runtime-gateway-harness.d.ts +2 -0
  50. package/dist/runtime/__tests__/helpers/runtime-gateway-harness.d.ts.map +1 -1
  51. package/dist/runtime/__tests__/helpers/runtime-gateway-harness.js +24 -3
  52. package/dist/runtime/__tests__/helpers/runtime-gateway-harness.js.map +1 -1
  53. package/dist/runtime/create-runtime-context.d.ts +1 -1
  54. package/dist/runtime/create-runtime-context.d.ts.map +1 -1
  55. package/dist/runtime/create-scanner-module.d.ts +1 -1
  56. package/dist/runtime/domain-events.d.ts +4 -4
  57. package/dist/runtime/domain-events.d.ts.map +1 -1
  58. package/dist/runtime/domain-events.js +4 -4
  59. package/dist/runtime/domain-events.js.map +1 -1
  60. package/dist/runtime/lifecycle-events.d.ts +46 -3
  61. package/dist/runtime/lifecycle-events.d.ts.map +1 -1
  62. package/dist/runtime/lifecycle-events.js +66 -5
  63. package/dist/runtime/lifecycle-events.js.map +1 -1
  64. package/dist/{tracking → runtime}/position-id-registry.d.ts +14 -1
  65. package/dist/runtime/position-id-registry.d.ts.map +1 -0
  66. package/dist/{tracking → runtime}/position-id-registry.js +20 -3
  67. package/dist/runtime/position-id-registry.js.map +1 -0
  68. package/dist/runtime/run.d.ts +2 -4
  69. package/dist/runtime/run.d.ts.map +1 -1
  70. package/dist/runtime/run.js.map +1 -1
  71. package/dist/runtime/runtime-schema.d.ts +156 -419
  72. package/dist/runtime/runtime-schema.d.ts.map +1 -1
  73. package/dist/runtime/runtime-schema.js +8 -28
  74. package/dist/runtime/runtime-schema.js.map +1 -1
  75. package/dist/runtime/runtime.d.ts +10 -9
  76. package/dist/runtime/runtime.d.ts.map +1 -1
  77. package/dist/runtime/runtime.js +116 -182
  78. package/dist/runtime/runtime.js.map +1 -1
  79. package/dist/runtime/supervisor/long-running-supervisor.d.ts +3 -0
  80. package/dist/runtime/supervisor/long-running-supervisor.d.ts.map +1 -1
  81. package/dist/runtime/supervisor/long-running-supervisor.js +27 -53
  82. package/dist/runtime/supervisor/long-running-supervisor.js.map +1 -1
  83. package/dist/runtime-api/intake/intake-events.d.ts +44 -0
  84. package/dist/runtime-api/intake/intake-events.d.ts.map +1 -0
  85. package/dist/runtime-api/intake/intake-events.js +131 -0
  86. package/dist/runtime-api/intake/intake-events.js.map +1 -0
  87. package/dist/runtime-api/intake/scanner-launcher.d.ts +2 -0
  88. package/dist/runtime-api/intake/scanner-launcher.d.ts.map +1 -1
  89. package/dist/runtime-api/intake/scanner-launcher.js +58 -15
  90. package/dist/runtime-api/intake/scanner-launcher.js.map +1 -1
  91. package/dist/runtime-api/intake/supervisor-events.d.ts +61 -0
  92. package/dist/runtime-api/intake/supervisor-events.d.ts.map +1 -0
  93. package/dist/runtime-api/intake/supervisor-events.js +173 -0
  94. package/dist/runtime-api/intake/supervisor-events.js.map +1 -0
  95. package/dist/runtime-api/routes/signals.d.ts.map +1 -1
  96. package/dist/runtime-api/routes/signals.js +119 -27
  97. package/dist/runtime-api/routes/signals.js.map +1 -1
  98. package/dist/runtime-api/server.d.ts.map +1 -1
  99. package/dist/runtime-api/server.js +10 -1
  100. package/dist/runtime-api/server.js.map +1 -1
  101. package/dist/scanners/engine/data-providers.d.ts +1 -1
  102. package/dist/scanners/engine/engine.d.ts.map +1 -1
  103. package/dist/scanners/engine/engine.js +3 -0
  104. package/dist/scanners/engine/engine.js.map +1 -1
  105. package/dist/scanners/runtime-module.d.ts +1 -1
  106. package/dist/senpi/client.d.ts.map +1 -1
  107. package/dist/senpi/client.js +51 -6
  108. package/dist/senpi/client.js.map +1 -1
  109. package/dist/state/state-events.d.ts +13 -0
  110. package/dist/state/state-events.d.ts.map +1 -0
  111. package/dist/state/state-events.js +22 -0
  112. package/dist/state/state-events.js.map +1 -0
  113. package/dist/state/state-manager.d.ts.map +1 -1
  114. package/dist/state/state-manager.js +14 -1
  115. package/dist/state/state-manager.js.map +1 -1
  116. package/dist/telemetry/attributes.d.ts +13 -0
  117. package/dist/telemetry/attributes.d.ts.map +1 -0
  118. package/dist/telemetry/attributes.js +22 -0
  119. package/dist/telemetry/attributes.js.map +1 -0
  120. package/dist/{tracking → telemetry}/context.d.ts +6 -5
  121. package/dist/telemetry/context.d.ts.map +1 -0
  122. package/dist/{tracking → telemetry}/context.js +4 -4
  123. package/dist/telemetry/context.js.map +1 -0
  124. package/dist/{recording/records.d.ts → telemetry/event-builders.d.ts} +138 -32
  125. package/dist/telemetry/event-builders.d.ts.map +1 -0
  126. package/dist/{recording/wiring/record-builders.js → telemetry/event-builders.js} +90 -39
  127. package/dist/telemetry/event-builders.js.map +1 -0
  128. package/dist/telemetry/identity.d.ts +72 -0
  129. package/dist/telemetry/identity.d.ts.map +1 -0
  130. package/dist/{recording/wiring → telemetry}/identity.js +6 -2
  131. package/dist/telemetry/identity.js.map +1 -0
  132. package/dist/telemetry/metrics.d.ts +137 -15
  133. package/dist/telemetry/metrics.d.ts.map +1 -1
  134. package/dist/telemetry/metrics.js +357 -74
  135. package/dist/telemetry/metrics.js.map +1 -1
  136. package/dist/telemetry/otel-sdk.d.ts +1 -1
  137. package/dist/telemetry/otel-sdk.js +1 -1
  138. package/dist/telemetry/spans/constants.d.ts.map +1 -0
  139. package/dist/telemetry/spans/constants.js.map +1 -0
  140. package/dist/{tracking → telemetry}/spans/gen-ai.d.ts +4 -0
  141. package/dist/telemetry/spans/gen-ai.d.ts.map +1 -0
  142. package/dist/{tracking → telemetry}/spans/gen-ai.js +9 -0
  143. package/dist/telemetry/spans/gen-ai.js.map +1 -0
  144. package/dist/telemetry/spans/index.d.ts.map +1 -0
  145. package/dist/telemetry/spans/index.js.map +1 -0
  146. package/dist/telemetry/spans/redact-pii.d.ts.map +1 -0
  147. package/dist/{tracking → telemetry}/spans/redact-pii.js +4 -1
  148. package/dist/telemetry/spans/redact-pii.js.map +1 -0
  149. package/dist/telemetry/spans/sanitize-payload.d.ts.map +1 -0
  150. package/dist/telemetry/spans/sanitize-payload.js.map +1 -0
  151. package/dist/telemetry/spans/span-hooks.d.ts +18 -0
  152. package/dist/telemetry/spans/span-hooks.d.ts.map +1 -0
  153. package/dist/{tracking → telemetry}/spans/span-hooks.js +183 -28
  154. package/dist/telemetry/spans/span-hooks.js.map +1 -0
  155. package/dist/telemetry/tool-plane.d.ts +31 -0
  156. package/dist/telemetry/tool-plane.d.ts.map +1 -0
  157. package/dist/telemetry/tool-plane.js +70 -0
  158. package/dist/telemetry/tool-plane.js.map +1 -0
  159. package/dist/telemetry/trace-identity.d.ts +1 -1
  160. package/dist/telemetry/trace-identity.d.ts.map +1 -1
  161. package/dist/telemetry/trace-identity.js +3 -0
  162. package/dist/telemetry/trace-identity.js.map +1 -1
  163. package/dist/types/dsl/index.d.ts +8 -9
  164. package/dist/types/dsl/index.d.ts.map +1 -1
  165. package/dist/types/runtime.d.ts +1 -1
  166. package/dist/types/runtime.d.ts.map +1 -1
  167. package/dist/utils/event-catalog.d.ts +239 -2
  168. package/dist/utils/event-catalog.d.ts.map +1 -1
  169. package/dist/utils/event-catalog.js +53 -2
  170. package/dist/utils/event-catalog.js.map +1 -1
  171. package/dist/utils/logger.d.ts +5 -0
  172. package/dist/utils/logger.d.ts.map +1 -1
  173. package/dist/utils/logger.js +21 -12
  174. package/dist/utils/logger.js.map +1 -1
  175. package/package.json +1 -1
  176. package/dist/actions/tracking-helpers.d.ts.map +0 -1
  177. package/dist/actions/tracking-helpers.js.map +0 -1
  178. package/dist/recording/emitter.d.ts +0 -27
  179. package/dist/recording/emitter.d.ts.map +0 -1
  180. package/dist/recording/emitter.js +0 -2
  181. package/dist/recording/emitter.js.map +0 -1
  182. package/dist/recording/identity.d.ts +0 -34
  183. package/dist/recording/identity.d.ts.map +0 -1
  184. package/dist/recording/identity.js +0 -2
  185. package/dist/recording/identity.js.map +0 -1
  186. package/dist/recording/index.d.ts +0 -11
  187. package/dist/recording/index.d.ts.map +0 -1
  188. package/dist/recording/index.js +0 -2
  189. package/dist/recording/index.js.map +0 -1
  190. package/dist/recording/noop-emitter.d.ts +0 -23
  191. package/dist/recording/noop-emitter.d.ts.map +0 -1
  192. package/dist/recording/noop-emitter.js +0 -22
  193. package/dist/recording/noop-emitter.js.map +0 -1
  194. package/dist/recording/otel/attributes.d.ts +0 -37
  195. package/dist/recording/otel/attributes.d.ts.map +0 -1
  196. package/dist/recording/otel/attributes.js +0 -131
  197. package/dist/recording/otel/attributes.js.map +0 -1
  198. package/dist/recording/otel/constants.d.ts +0 -123
  199. package/dist/recording/otel/constants.d.ts.map +0 -1
  200. package/dist/recording/otel/constants.js +0 -172
  201. package/dist/recording/otel/constants.js.map +0 -1
  202. package/dist/recording/otel/ids.d.ts +0 -25
  203. package/dist/recording/otel/ids.d.ts.map +0 -1
  204. package/dist/recording/otel/ids.js +0 -37
  205. package/dist/recording/otel/ids.js.map +0 -1
  206. package/dist/recording/otel/index.d.ts +0 -13
  207. package/dist/recording/otel/index.d.ts.map +0 -1
  208. package/dist/recording/otel/index.js +0 -9
  209. package/dist/recording/otel/index.js.map +0 -1
  210. package/dist/recording/otel/mappers.d.ts +0 -100
  211. package/dist/recording/otel/mappers.d.ts.map +0 -1
  212. package/dist/recording/otel/mappers.js +0 -684
  213. package/dist/recording/otel/mappers.js.map +0 -1
  214. package/dist/recording/otel/otel-emitter.d.ts +0 -43
  215. package/dist/recording/otel/otel-emitter.d.ts.map +0 -1
  216. package/dist/recording/otel/otel-emitter.js +0 -99
  217. package/dist/recording/otel/otel-emitter.js.map +0 -1
  218. package/dist/recording/otel/redaction.d.ts +0 -47
  219. package/dist/recording/otel/redaction.d.ts.map +0 -1
  220. package/dist/recording/otel/redaction.js +0 -88
  221. package/dist/recording/otel/redaction.js.map +0 -1
  222. package/dist/recording/records.d.ts.map +0 -1
  223. package/dist/recording/records.js +0 -14
  224. package/dist/recording/records.js.map +0 -1
  225. package/dist/recording/transport/batcher.d.ts +0 -59
  226. package/dist/recording/transport/batcher.d.ts.map +0 -1
  227. package/dist/recording/transport/batcher.js +0 -234
  228. package/dist/recording/transport/batcher.js.map +0 -1
  229. package/dist/recording/transport/client.d.ts +0 -41
  230. package/dist/recording/transport/client.d.ts.map +0 -1
  231. package/dist/recording/transport/client.js +0 -69
  232. package/dist/recording/transport/client.js.map +0 -1
  233. package/dist/recording/transport/config.d.ts +0 -53
  234. package/dist/recording/transport/config.d.ts.map +0 -1
  235. package/dist/recording/transport/config.js +0 -41
  236. package/dist/recording/transport/config.js.map +0 -1
  237. package/dist/recording/transport/index.d.ts +0 -16
  238. package/dist/recording/transport/index.d.ts.map +0 -1
  239. package/dist/recording/transport/index.js +0 -12
  240. package/dist/recording/transport/index.js.map +0 -1
  241. package/dist/recording/transport/rows.d.ts +0 -88
  242. package/dist/recording/transport/rows.d.ts.map +0 -1
  243. package/dist/recording/transport/rows.js +0 -15
  244. package/dist/recording/transport/rows.js.map +0 -1
  245. package/dist/recording/wiring/emitter-factory.d.ts +0 -34
  246. package/dist/recording/wiring/emitter-factory.d.ts.map +0 -1
  247. package/dist/recording/wiring/emitter-factory.js +0 -44
  248. package/dist/recording/wiring/emitter-factory.js.map +0 -1
  249. package/dist/recording/wiring/identity.d.ts +0 -27
  250. package/dist/recording/wiring/identity.d.ts.map +0 -1
  251. package/dist/recording/wiring/identity.js.map +0 -1
  252. package/dist/recording/wiring/index.d.ts +0 -12
  253. package/dist/recording/wiring/index.d.ts.map +0 -1
  254. package/dist/recording/wiring/index.js +0 -9
  255. package/dist/recording/wiring/index.js.map +0 -1
  256. package/dist/recording/wiring/record-builders.d.ts +0 -107
  257. package/dist/recording/wiring/record-builders.d.ts.map +0 -1
  258. package/dist/recording/wiring/record-builders.js.map +0 -1
  259. package/dist/recording/wiring/subscriber.d.ts +0 -28
  260. package/dist/recording/wiring/subscriber.d.ts.map +0 -1
  261. package/dist/recording/wiring/subscriber.js +0 -173
  262. package/dist/recording/wiring/subscriber.js.map +0 -1
  263. package/dist/recording/wiring/values.d.ts +0 -19
  264. package/dist/recording/wiring/values.d.ts.map +0 -1
  265. package/dist/recording/wiring/values.js +0 -49
  266. package/dist/recording/wiring/values.js.map +0 -1
  267. package/dist/tracking/build-rehydrate-items.d.ts +0 -15
  268. package/dist/tracking/build-rehydrate-items.d.ts.map +0 -1
  269. package/dist/tracking/build-rehydrate-items.js +0 -19
  270. package/dist/tracking/build-rehydrate-items.js.map +0 -1
  271. package/dist/tracking/constants.d.ts +0 -24
  272. package/dist/tracking/constants.d.ts.map +0 -1
  273. package/dist/tracking/constants.js +0 -52
  274. package/dist/tracking/constants.js.map +0 -1
  275. package/dist/tracking/context.d.ts.map +0 -1
  276. package/dist/tracking/context.js.map +0 -1
  277. package/dist/tracking/index.d.ts +0 -16
  278. package/dist/tracking/index.d.ts.map +0 -1
  279. package/dist/tracking/index.js +0 -11
  280. package/dist/tracking/index.js.map +0 -1
  281. package/dist/tracking/plugin-event-tracker.d.ts +0 -13
  282. package/dist/tracking/plugin-event-tracker.d.ts.map +0 -1
  283. package/dist/tracking/plugin-event-tracker.js +0 -27
  284. package/dist/tracking/plugin-event-tracker.js.map +0 -1
  285. package/dist/tracking/position-id-registry.d.ts.map +0 -1
  286. package/dist/tracking/position-id-registry.js.map +0 -1
  287. package/dist/tracking/spans/constants.d.ts.map +0 -1
  288. package/dist/tracking/spans/constants.js.map +0 -1
  289. package/dist/tracking/spans/gen-ai.d.ts.map +0 -1
  290. package/dist/tracking/spans/gen-ai.js.map +0 -1
  291. package/dist/tracking/spans/index.d.ts.map +0 -1
  292. package/dist/tracking/spans/index.js.map +0 -1
  293. package/dist/tracking/spans/redact-pii.d.ts.map +0 -1
  294. package/dist/tracking/spans/redact-pii.js.map +0 -1
  295. package/dist/tracking/spans/sanitize-payload.d.ts.map +0 -1
  296. package/dist/tracking/spans/sanitize-payload.js.map +0 -1
  297. package/dist/tracking/spans/span-hooks.d.ts +0 -11
  298. package/dist/tracking/spans/span-hooks.d.ts.map +0 -1
  299. package/dist/tracking/spans/span-hooks.js.map +0 -1
  300. package/dist/tracking/tracker.d.ts +0 -30
  301. package/dist/tracking/tracker.d.ts.map +0 -1
  302. package/dist/tracking/tracker.js +0 -66
  303. package/dist/tracking/tracker.js.map +0 -1
  304. package/dist/tracking/tracking-handler.d.ts +0 -12
  305. package/dist/tracking/tracking-handler.d.ts.map +0 -1
  306. package/dist/tracking/tracking-handler.js +0 -148
  307. package/dist/tracking/tracking-handler.js.map +0 -1
  308. package/dist/tracking/transport.d.ts +0 -35
  309. package/dist/tracking/transport.d.ts.map +0 -1
  310. package/dist/tracking/transport.js +0 -133
  311. package/dist/tracking/transport.js.map +0 -1
  312. package/dist/tracking/types.d.ts +0 -21
  313. package/dist/tracking/types.d.ts.map +0 -1
  314. package/dist/tracking/types.js +0 -6
  315. package/dist/tracking/types.js.map +0 -1
  316. /package/dist/{tracking → telemetry}/spans/constants.d.ts +0 -0
  317. /package/dist/{tracking → telemetry}/spans/constants.js +0 -0
  318. /package/dist/{tracking → telemetry}/spans/index.d.ts +0 -0
  319. /package/dist/{tracking → telemetry}/spans/index.js +0 -0
  320. /package/dist/{tracking → telemetry}/spans/redact-pii.d.ts +0 -0
  321. /package/dist/{tracking → telemetry}/spans/sanitize-payload.d.ts +0 -0
  322. /package/dist/{tracking → telemetry}/spans/sanitize-payload.js +0 -0
@@ -118,6 +118,10 @@ export function initDefaultPiiRedactor() {
118
118
  * in some contexts via undocumented filters; replacing it with our own
119
119
  * custom version gives us deterministic behavior.
120
120
  * - `TURKEY_ID` — personal national ID, not a credential.
121
+ * - `CARD_AUTH_CODE` — over-broad: emits the `[AUTH_*]` label on ordinary
122
+ * auth vocabulary ("authenticate", "sensitive", "command", "credentials"),
123
+ * which made captured prompts/content unreadable. Card CVV/CVC codes are
124
+ * near-zero-likelihood in this runtime's content, so it's dropped entirely.
121
125
  */
122
126
  const ALLOWLISTED_PATTERN_TYPES = [
123
127
  // Contact PII (phones come from custom patterns below)
@@ -127,7 +131,6 @@ const ALLOWLISTED_PATTERN_TYPES = [
127
131
  "AWS_SECRET_KEY",
128
132
  "AZURE_STORAGE_KEY",
129
133
  "BEARER_TOKEN",
130
- "CARD_AUTH_CODE",
131
134
  "DOCKER_AUTH",
132
135
  "FIREBASE_API_KEY",
133
136
  "GENERIC_API_KEY",
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redact-pii.js","sourceRoot":"","sources":["../../../src/telemetry/spans/redact-pii.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,MAAM,GAAG,YAAY,CAAC,0BAA0B,CAAC,CAAC;AAOxD,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC3C,OAAO,KAAK,KAAK,MAAM,CAAC,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;AACtD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAAc,EACd,QAAqB;IAErB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACrC,IAAI,CAAC;YACH,OAAO,MAAM,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,iDAAiD,EAAE;gBAC7D,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;gBACrD,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;aAC5B,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CACvD,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5D,CAAC;IACD,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,iBAAiB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAU,CAAC,CAChG,CAAC;QACF,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;YAC7B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACX,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;gBAAE,OAAO,GAAG,IAAI,CAAC;QACrC,CAAC;QACD,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;IAC/B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8EAA8E;AAC9E,EAAE;AACF,6EAA6E;AAC7E,gFAAgF;AAChF,sBAAsB;AAEtB,IAAI,eAAe,GAAuB,IAAI,CAAC;AAE/C,MAAM,UAAU,qBAAqB,CAAC,CAAqB;IACzD,eAAe,GAAG,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,sBAAsB;IACpC,0BAA0B,EAAE;SACzB,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QACjB,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CACT,sLAAsL,CACvL,CAAC;IACJ,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACb,MAAM,CAAC,IAAI,CACT,6GAA6G,EAC7G,EAAE,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC1D,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,yBAAyB,GAAG;IAChC,uDAAuD;IACvD,OAAO;IACP,mCAAmC;IACnC,gBAAgB;IAChB,gBAAgB;IAChB,mBAAmB;IACnB,cAAc;IACd,aAAa;IACb,kBAAkB;IAClB,iBAAiB;IACjB,gBAAgB;IAChB,cAAc;IACd,gBAAgB;IAChB,gBAAgB;IAChB,WAAW;IACX,mBAAmB;IACnB,iBAAiB;IACjB,WAAW;IACX,qBAAqB;IACrB,aAAa;IACb,gBAAgB;IAChB,aAAa;IACb,YAAY;IACZ,kBAAkB;IAClB,aAAa;IACb,iBAAiB;IACjB,gBAAgB;IAChB,gBAAgB;IAChB,eAAe;CACP,CAAC;AAEX;;;;;;;;;;GAUG;AACH,MAAM,cAAc,GAOf;IACH;QACE,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,0BAA0B;QACjC,QAAQ,EAAE,EAAE;QACZ,WAAW,EAAE,kBAAkB;QAC/B,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,0DAA0D;KACxE;IACD;QACE,IAAI,EAAE,UAAU;QAChB,sEAAsE;QACtE,qEAAqE;QACrE,KAAK,EAAE,8EAA8E;QACrF,QAAQ,EAAE,EAAE;QACZ,WAAW,EAAE,gBAAgB;QAC7B,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,0EAA0E;KACxF;IACD;QACE,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,8CAA8C;QACrD,QAAQ,EAAE,EAAE;QACZ,WAAW,EAAE,gBAAgB;QAC7B,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,iEAAiE;KAC/E;IACD;QACE,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,wDAAwD;QAC/D,QAAQ,EAAE,EAAE;QACZ,WAAW,EAAE,gBAAgB;QAC7B,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,qEAAqE;KACnF;IACD;QACE,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,0DAA0D;QACjE,QAAQ,EAAE,EAAE;QACZ,WAAW,EAAE,gBAAgB;QAC7B,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,oEAAoE;KAClF;IACD;QACE,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,sDAAsD;QAC7D,QAAQ,EAAE,EAAE;QACZ,WAAW,EAAE,gBAAgB;QAC7B,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,kEAAkE;KAChF;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,KAAK,EAAE,uDAAuD;QAC9D,QAAQ,EAAE,EAAE;QACZ,WAAW,EAAE,gBAAgB;QAC7B,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,yCAAyC;KACvD;IACD;QACE,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,uDAAuD;QAC9D,QAAQ,EAAE,EAAE;QACZ,WAAW,EAAE,gBAAgB;QAC7B,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,yDAAyD;KACvE;CACF,CAAC;AAEF;;;;;GAKG;AACH,IAAI,YAAY,GAAuB,IAAI,CAAC;AAC5C,KAAK,UAAU,eAAe;IAC5B,IAAI,YAAY;QAAE,OAAO,YAAY,CAAC;IACtC,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAGjC,CAAC;IACF,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC;IAC1D,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IACD,YAAY,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC1C,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,KAAK,UAAU,mBAAmB;IAWhC,OAAO;QACL,GAAG,cAAc;QACjB;YACE,IAAI,EAAE,oBAAoB;YAC1B,KAAK,EAAE,wBAAwB;YAC/B,QAAQ,EAAE,GAAG;YACb,WAAW,EAAE,sBAAsB;YACnC,QAAQ,EAAE,UAAU;YACpB,WAAW,EAAE,0FAA0F;SACxG;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,KAAK,EAAE,kDAAkD;YACzD,QAAQ,EAAE,GAAG;YACb,WAAW,EAAE,qBAAqB;YAClC,QAAQ,EAAE,UAAU;SACrB;QACD;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,gEAAgE;YACvE,QAAQ,EAAE,GAAG;YACb,WAAW,EAAE,cAAc;YAC3B,QAAQ,EAAE,UAAU;YACpB,WAAW,EAAE,yDAAyD;SACvE;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAY,EACZ,KAAkB;IAElB,MAAM,MAAM,GAAwD,EAAE,CAAC;IACvE,MAAM,MAAM,GAAG,SAAS,CAAC;IACzB,IAAI,CAAyB,CAAC;IAC9B,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,WAAW,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACzC,MAAM,KAAK,GAA0C,EAAE,CAAC;IACxD,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QACzB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;YAChC,IAAI,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC,MAAM;gBAAE,SAAS;YACxC,IAAI,KAAK,GAAG,IAAI,CAAC;YACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;oBACnC,KAAK,GAAG,KAAK,CAAC;oBACd,MAAM;gBACR,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBACV,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBACnE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;wBACvB,KAAK,GAAG,KAAK,CAAC;wBACd,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,CAAC,IAAI,CAAC;oBACT,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK;oBACtB,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG;iBAC/B,CAAC,CAAC;gBACH,CAAC,IAAI,KAAK,CAAC;gBACX,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAO;YAAE,CAAC,EAAE,CAAC;IACpB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,IAAI,eAAe,GAAG,CAAC,CAAC;AACxB,SAAS,mBAAmB,CAC1B,IAAY,EACZ,KAA4C;IAE5C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACtC,uEAAuE;QACvE,2DAA2D;QAC3D,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,EAAE,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAClE,GAAG,IAAI,aAAa,MAAM,GAAG,CAAC;QAC9B,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;IACD,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,IAAY;IAC5D,MAAM,KAAK,GAAG,MAAM,eAAe,EAAE,CAAC;IACtC,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7C,OAAO,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B;IAC9C,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,MAAM,mBAAmB,EAAE,CAAC;IACnD,2EAA2E;IAC3E,0EAA0E;IAC1E,gEAAgE;IAChE,MAAM,OAAO,GAAG;QACd,QAAQ,EAAE,CAAC,GAAG,yBAAyB,CAAC;QACxC,cAAc;QACd,qBAAqB,EAAE,KAAK;QAC5B,eAAe,EAAE,KAAK;QACtB,WAAW,EAAE,IAAI;QACjB,SAAS,EAAE,GAAG;QACd,iEAAiE;QACjE,uEAAuE;QACvE,uEAAuE;QACvE,yEAAyE;QACzE,yBAAyB,EAAE,KAAK;QAChC,mBAAmB,EAAE,GAAG;KACoC,CAAC;IAC/D,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;IAC5C,wEAAwE;IACxE,0BAA0B;IAC1B,MAAM,eAAe,EAAE,CAAC;IACxB,OAAO;QACL,KAAK,CAAC,MAAM,CAAC,IAAY;YACvB,sEAAsE;YACtE,sEAAsE;YACtE,qDAAqD;YACrD,MAAM,WAAW,GAAG,MAAM,2BAA2B,CAAC,IAAI,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAClD,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitize-payload.d.ts","sourceRoot":"","sources":["../../../src/telemetry/spans/sanitize-payload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAWH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAY3D;AAQD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAwB5D"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitize-payload.js","sourceRoot":"","sources":["../../../src/telemetry/spans/sanitize-payload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,wBAAwB,GAC5B,+GAA+G,CAAC;AAClH,MAAM,2BAA2B,GAAG,6BAA6B,CAAC;AAClE,MAAM,0BAA0B,GAC9B,uEAAuE,CAAC;AAC1E,MAAM,oBAAoB,GAAG,4DAA4D,CAAC;AAC1F,MAAM,0BAA0B,GAC9B,yKAAyK,CAAC;AAE5K,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,MAAM,kBAAkB,GAAG,KAAK;SAC7B,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC;SACxB,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;SACrB,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzB,MAAM,sBAAsB,GAAG,kBAAkB;SAC9C,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC;SACxC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC;SACvC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC;SACvC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC;SACjC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC9B,OAAO,sBAAsB,CAAC,OAAO,CAAC,wBAAwB,EAAE,mBAAmB,CAAC,CAAC;AACvF,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC3C,OAAO,KAAK,KAAK,MAAM,CAAC,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,qBAAqB,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9B,MAAM,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,SAAS,KAAK,IAAI;gBAAE,OAAO,GAAG,IAAI,CAAC;YACvC,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAChC,CAAC;IACD,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,IAAI,GAA4B,EAAE,CAAC;QACzC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,MAAM,SAAS,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;YACtB,IAAI,SAAS,KAAK,KAAK;gBAAE,OAAO,GAAG,IAAI,CAAC;QAC1C,CAAC;QACD,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAChC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,18 @@
1
+ /** Minimal shape of the OpenClaw plugin API surface we need. */
2
+ export interface SpanHooksPluginApi {
3
+ on(hookName: string, handler: (...args: unknown[]) => void | Promise<void>, opts?: {
4
+ priority?: number;
5
+ }): void;
6
+ }
7
+ export interface RegisterSpanHooksOptions {
8
+ api: SpanHooksPluginApi;
9
+ }
10
+ /**
11
+ * Grace window the `agent_end` sweep holds a finished model span before ending it, so a
12
+ * trailing `llm_output` (observed ~1 ms later in the codex/harness flow, but timed generously)
13
+ * can finalize it with token usage + output messages first. Unref'd, so it never holds the
14
+ * process open; an orphan run with no `llm_output` lets the timer end the span.
15
+ */
16
+ export declare const MODEL_SPAN_END_GRACE_MS = 2000;
17
+ export declare function registerSpanHooks(options: RegisterSpanHooksOptions): void;
18
+ //# sourceMappingURL=span-hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"span-hooks.d.ts","sourceRoot":"","sources":["../../../src/telemetry/spans/span-hooks.ts"],"names":[],"mappings":"AA6DA,gEAAgE;AAChE,MAAM,WAAW,kBAAkB;IACjC,EAAE,CACA,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACrD,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3B,IAAI,CAAC;CACT;AAED,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,kBAAkB,CAAC;CACzB;AAED;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAW5C,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI,CA2kBzE"}
@@ -1,8 +1,9 @@
1
1
  /**
2
- * registerSpanHooks: wires the nine OpenClaw plugin hooks (llm_input/llm_output,
3
- * before/after_tool_call, the four subagent_* hooks, agent_end) to real OTel gen_ai
4
- * spans via the shared `getTracer()`:
2
+ * registerSpanHooks: wires the OpenClaw plugin hooks (llm_input/llm_output,
3
+ * model_call_ended, before/after_tool_call, the four subagent_* hooks, agent_end) to real
4
+ * OTel gen_ai spans via the shared `getTracer()`:
5
5
  * - llm_input → llm_output → `chat` (CLIENT)
6
+ * - model_call_ended → outcome/failure on the `chat` span (the only failed-turn signal)
6
7
  * - tool_call → `execute_tool` (INTERNAL), parented to the model span
7
8
  * - subagent_* lifecycle → `invoke_agent` (INTERNAL), parented to the model span
8
9
  * - agent_end → ends any still-open spans for the run
@@ -13,19 +14,29 @@
13
14
  *
14
15
  * Identity rides as `senpi.*` attributes from the `X-Senpi-*` headers (ALS doesn't cross
15
16
  * the loopback fetch). The trading trace is joined by the `traceparent` header when present
16
- * (nesting under `signal.process`), else by a `senpi.correlation_id` attribute. Handlers
17
+ * (nesting under `signal.process`), else by a `senpi.run.id` attribute. Handlers
17
18
  * never throw.
18
19
  */
19
20
  import { SpanKind, context as otelContext, propagation, trace, } from "@opentelemetry/api";
20
21
  import { getTracer } from "../../telemetry/tracing.js";
21
22
  import { HEADER_ADDRESS, HEADER_CORRELATION_ID, HEADER_RECIPE_NAME, HEADER_RUNTIME_ID, HEADER_RUNTIME_VERSION, } from "./constants.js";
22
23
  import { GEN_AI, errorTypeOf, firstNumber, normalizeGenAiMessages, recordSpanError, setDefinedAttributes, setGenAiContentAttribute, toFinishReasons, } from "./gen-ai.js";
23
- import { elapsedSeconds, recordExecuteToolDuration, recordInvokeAgentDuration, recordOperationDuration, recordTokenUsage, } from "../../telemetry/metrics.js";
24
+ import { elapsedSeconds, recordToolCall, recordInvokeAgentDuration, recordOperationDuration, recordTokenUsage, } from "../../telemetry/metrics.js";
25
+ import { emitToolCalled, offeredToolNames, requestedToolNames, } from "../../telemetry/tool-plane.js";
24
26
  import { createLogger } from "../../utils/logger.js";
25
27
  const logger = createLogger("[senpi-core][span-hooks]");
28
+ /**
29
+ * Grace window the `agent_end` sweep holds a finished model span before ending it, so a
30
+ * trailing `llm_output` (observed ~1 ms later in the codex/harness flow, but timed generously)
31
+ * can finalize it with token usage + output messages first. Unref'd, so it never holds the
32
+ * process open; an orphan run with no `llm_output` lets the timer end the span.
33
+ */
34
+ export const MODEL_SPAN_END_GRACE_MS = 2000;
26
35
  export function registerSpanHooks(options) {
27
36
  const { api } = options;
28
37
  const tracer = getTracer();
38
+ // Cap on drift events per turn so a flood of invented tool calls can't balloon the log.
39
+ const MAX_DRIFT_EVENTS_PER_TURN = 8;
29
40
  // Held model spans, keyed by (sessionKey, runId). The tool/subagent spans parent
30
41
  // off the model span for the same session/run.
31
42
  const modelSpans = new Map();
@@ -59,7 +70,10 @@ export function registerSpanHooks(options) {
59
70
  if (hit)
60
71
  return hit;
61
72
  }
62
- return lastActive;
73
+ // Last resort: the most-recent session. Only safe when unambiguous — two or more
74
+ // model spans open at once means concurrent runs share this process and `lastActive`
75
+ // could belong to either, so drop the span rather than misattribute it across runs.
76
+ return modelSpans.size <= 1 ? lastActive : null;
63
77
  };
64
78
  /** Build a parent Context for tool/subagent spans from the host model span (if any). */
65
79
  const parentContextForModel = (sessionKey, runId) => {
@@ -96,10 +110,17 @@ export function registerSpanHooks(options) {
96
110
  startMs: Date.now(),
97
111
  provider,
98
112
  model: requestModel,
113
+ // Offered tools — the baseline for the llm_output drift diff. Set only when definitions
114
+ // were delivered (undefined → no diff, i.e. conversation access off); an empty set is
115
+ // authoritative (zero tools offered, so any requested tool is drift).
116
+ offeredTools: Array.isArray(ev.tools) ? offeredToolNames(ev.tools) : undefined,
99
117
  };
100
118
  modelSpans.set(key, held);
101
119
  setDefinedAttributes(span, {
102
120
  [GEN_AI.OPERATION_NAME]: "chat",
121
+ // Session key as the conversation id, so consecutive turns of one session correlate (a
122
+ // single per-turn trace otherwise can't be tied to its neighbours — e.g. a runaway loop).
123
+ [GEN_AI.CONVERSATION_ID]: sessionKey,
103
124
  [GEN_AI.PROVIDER_NAME]: provider,
104
125
  [GEN_AI.REQUEST_MODEL]: requestModel,
105
126
  [GEN_AI.REQUEST_TEMPERATURE]: firstNumber(ev.temperature),
@@ -135,33 +156,60 @@ export function registerSpanHooks(options) {
135
156
  }
136
157
  const span = held.span;
137
158
  modelSpans.delete(sessionLlmKey(sessionKey, runId));
159
+ // Cancel any deferred teardown the agent_end sweep scheduled — we finalize the span here.
160
+ if (held.endTimer)
161
+ clearTimeout(held.endTimer);
138
162
  const ev = asRecord(event) ?? {};
139
163
  const usage = asRecord(ev.usage);
140
164
  // Token field naming varies by provider/wrapper; try every known spelling.
141
165
  const inputTokens = firstNumber(usage?.input_tokens, usage?.prompt_tokens, usage?.promptTokens, usage?.input);
142
166
  const outputTokens = firstNumber(usage?.output_tokens, usage?.completion_tokens, usage?.completionTokens, usage?.output);
167
+ // Cache + total tokens quantify context growth — the signal a silent compaction otherwise hides.
168
+ const cacheReadTokens = firstNumber(usage?.cacheRead, usage?.cache_read_input_tokens);
169
+ const cacheWriteTokens = firstNumber(usage?.cacheWrite, usage?.cache_creation_input_tokens);
170
+ const totalTokens = firstNumber(usage?.total, usage?.total_tokens);
143
171
  setDefinedAttributes(span, {
144
172
  [GEN_AI.RESPONSE_MODEL]: nonEmptyString(ev.model),
145
- [GEN_AI.RESPONSE_FINISH_REASONS]: toFinishReasons(ev.finishReason ?? ev.stopReason),
146
173
  [GEN_AI.USAGE_INPUT_TOKENS]: inputTokens,
147
174
  [GEN_AI.USAGE_OUTPUT_TOKENS]: outputTokens,
175
+ [GEN_AI.USAGE_CACHE_READ_TOKENS]: cacheReadTokens,
176
+ [GEN_AI.USAGE_CACHE_WRITE_TOKENS]: cacheWriteTokens,
177
+ [GEN_AI.USAGE_TOTAL_TOKENS]: totalTokens,
148
178
  });
149
- const error = ev.error;
150
- const errored = error !== undefined && error !== null;
179
+ // A failed turn never reaches llm_output; outcome/finish is sourced from
180
+ // model_call_ended, so this hook only carries the success-path content + usage.
151
181
  const dims = { provider: held.provider, model: held.model };
152
- recordTokenUsage(dims, { input: inputTokens, output: outputTokens });
153
- recordOperationDuration(elapsedSeconds(held.startMs), {
154
- ...dims,
155
- errorType: errored ? errorTypeOf(error) : undefined,
182
+ recordTokenUsage(dims, {
183
+ input: inputTokens,
184
+ output: outputTokens,
185
+ cacheRead: cacheReadTokens,
186
+ cacheWrite: cacheWriteTokens,
156
187
  });
188
+ recordOperationDuration(elapsedSeconds(held.startMs), dims);
157
189
  const outputMessages = buildOutputMessages(ev);
190
+ // Drift alarm: a tool the model requested but was never offered (requested − offered) is a
191
+ // coverage/contract hole — surface each invented name as an `unknown`-outcome event for the
192
+ // agent to read. Runs only when the offered set was captured (i.e. conversation access is on);
193
+ // deduped + capped so a flood of invented calls can't balloon the log.
194
+ if (held.offeredTools) {
195
+ const offered = held.offeredTools;
196
+ const seen = new Set();
197
+ for (const name of requestedToolNames(outputMessages)) {
198
+ if (offered.has(name) || seen.has(name))
199
+ continue;
200
+ if (seen.size >= MAX_DRIFT_EVENTS_PER_TURN)
201
+ break;
202
+ seen.add(name);
203
+ emitToolCalled({ name, origin: "agent", outcome: "unknown" });
204
+ // Count the drift on the metric plane (no duration — the invented call never ran).
205
+ recordToolCall({ toolName: name, origin: "agent", outcome: "unknown" });
206
+ }
207
+ }
158
208
  void (async () => {
159
209
  try {
160
210
  if (held.pending)
161
211
  await held.pending;
162
212
  await setGenAiContentAttribute(span, GEN_AI.OUTPUT_MESSAGES, outputMessages);
163
- if (errored)
164
- recordSpanError(span, error);
165
213
  }
166
214
  finally {
167
215
  try {
@@ -177,6 +225,42 @@ export function registerSpanHooks(options) {
177
225
  logger.warn("llm_output handler failed", { err: errMsg(err) });
178
226
  }
179
227
  });
228
+ // ─── Model-call outcome (enriches the held `chat` span) ────────────────────
229
+ // The provider-call result: `outcome`, `failureKind`, timing. This is the ONLY
230
+ // signal for a failed/aborted turn — `llm_output` never fires when the call
231
+ // errors, so without this a wedged turn is indistinguishable from a healthy one.
232
+ api.on("model_call_ended", (event, agentCtx) => {
233
+ try {
234
+ const sessionKey = readSessionKey(agentCtx, event);
235
+ const runId = readRunId(agentCtx, event);
236
+ if (!sessionKey || !runId)
237
+ return;
238
+ const held = modelSpans.get(sessionLlmKey(sessionKey, runId));
239
+ if (!held)
240
+ return; // span already finalized, or not one we opened — best effort.
241
+ const ev = asRecord(event) ?? {};
242
+ const outcome = nonEmptyString(ev.outcome);
243
+ const failureKind = nonEmptyString(ev.failureKind);
244
+ const errorCategory = nonEmptyString(ev.errorCategory);
245
+ setDefinedAttributes(held.span, {
246
+ "senpi.gen_ai.outcome": outcome,
247
+ "senpi.gen_ai.failure_kind": failureKind,
248
+ "senpi.gen_ai.error_category": errorCategory,
249
+ "senpi.gen_ai.model_call_duration_ms": firstNumber(ev.durationMs),
250
+ });
251
+ if (outcome === "error") {
252
+ // Mark errored so the agent_end sweep doesn't re-record the same failure.
253
+ held.errored = true;
254
+ setDefinedAttributes(held.span, {
255
+ [GEN_AI.RESPONSE_FINISH_REASONS]: toFinishReasons(failureKind ?? "error"),
256
+ });
257
+ recordSpanError(held.span, failureKind ?? errorCategory ?? "model_call_error");
258
+ }
259
+ }
260
+ catch (err) {
261
+ logger.warn("model_call_ended handler failed", { err: errMsg(err) });
262
+ }
263
+ });
180
264
  // ─── Tool (`execute_tool` span) ────────────────────────────────────────────
181
265
  api.on("before_tool_call", (event, toolCtx) => {
182
266
  try {
@@ -203,8 +287,11 @@ export function registerSpanHooks(options) {
203
287
  toolSpans.set(key, held);
204
288
  setDefinedAttributes(span, {
205
289
  [GEN_AI.OPERATION_NAME]: "execute_tool",
290
+ [GEN_AI.CONVERSATION_ID]: resolved.sessionKey,
206
291
  [GEN_AI.TOOL_NAME]: toolName,
207
292
  [GEN_AI.TOOL_CALL_ID]: toolCallId ?? undefined,
293
+ // Best-effort skill attribution from a skill-file read (no first-class skill hook exists).
294
+ "senpi.skill.name": skillNameFromToolArgs(ev?.params ?? ev?.input),
208
295
  ...identityAttributes(identity),
209
296
  });
210
297
  // Args stamping is async; the finalize (after_tool_call) awaits this so a fast
@@ -224,6 +311,21 @@ export function registerSpanHooks(options) {
224
311
  }
225
312
  const ev = asRecord(event);
226
313
  const toolName = nonEmptyString(ev?.toolName) ?? nonEmptyString(ev?.name) ?? "unknown";
314
+ const error = ev?.error;
315
+ const errored = error !== undefined && error !== null;
316
+ // Tool-plane event (narrative): a failed tool call — the agent-blind hole, greppable instead
317
+ // of span-only. A successful call already rides its span + (state-changing) its domain event,
318
+ // so it is not re-evented here. Emitted before the span lookup so a failure is never lost when
319
+ // the matching before_tool_call span wasn't registered.
320
+ if (errored) {
321
+ emitToolCalled({
322
+ name: toolName,
323
+ origin: "agent",
324
+ outcome: "error",
325
+ errorType: errorTypeOf(error),
326
+ errorMessage: error instanceof Error ? error.message : String(error),
327
+ });
328
+ }
227
329
  const toolCallId = nonEmptyString(ev?.toolCallId) ??
228
330
  nonEmptyString(asRecord(toolCtx)?.toolCallId) ??
229
331
  null;
@@ -235,12 +337,13 @@ export function registerSpanHooks(options) {
235
337
  const held = toolSpans.get(foundKey);
236
338
  const span = held.span;
237
339
  toolSpans.delete(foundKey);
238
- const error = ev?.error;
239
- const errored = error !== undefined && error !== null;
240
340
  const result = ev?.result;
241
- recordExecuteToolDuration(elapsedSeconds(held.startMs), {
341
+ recordToolCall({
242
342
  toolName: held.toolName,
343
+ origin: "agent",
344
+ outcome: errored ? "error" : "ok",
243
345
  errorType: errored ? errorTypeOf(error) : undefined,
346
+ durationSec: elapsedSeconds(held.startMs),
244
347
  });
245
348
  void (async () => {
246
349
  try {
@@ -299,6 +402,7 @@ export function registerSpanHooks(options) {
299
402
  });
300
403
  setDefinedAttributes(span, {
301
404
  [GEN_AI.OPERATION_NAME]: "invoke_agent",
405
+ [GEN_AI.CONVERSATION_ID]: nonEmptyString(hostSessionKey),
302
406
  [GEN_AI.AGENT_NAME]: agentName,
303
407
  "senpi.subagent.mode": nonEmptyString(ev?.mode),
304
408
  "senpi.subagent.requester": nonEmptyString(ev?.requester),
@@ -413,16 +517,26 @@ export function registerSpanHooks(options) {
413
517
  const llmKey = sessionLlmKey(sessionKey, runId);
414
518
  const model = modelSpans.get(llmKey);
415
519
  if (model) {
416
- modelSpans.delete(llmKey);
417
520
  const errored = outcomeError !== undefined && outcomeError !== null;
418
521
  recordOperationDuration(elapsedSeconds(model.startMs), {
419
522
  provider: model.provider,
420
523
  model: model.model,
421
524
  errorType: errored ? errorTypeOf(outcomeError) : undefined,
422
525
  });
423
- if (errored)
526
+ // Skip if model_call_ended already recorded the failure on this span.
527
+ if (errored && !model.errored)
424
528
  recordSpanError(model.span, outcomeError);
425
- endSpan(model.span);
529
+ // Defer the span end: agent_end fires ~1 ms before the trailing llm_output that
530
+ // carries token usage + output messages. Hold the span (leave it in modelSpans) a
531
+ // short grace so that llm_output can finalize it; if none arrives, the timer ends it.
532
+ if (!model.endTimer) {
533
+ model.endTimer = setTimeout(() => {
534
+ if (modelSpans.get(llmKey) === model)
535
+ modelSpans.delete(llmKey);
536
+ endSpan(model.span);
537
+ }, MODEL_SPAN_END_GRACE_MS);
538
+ model.endTimer.unref?.();
539
+ }
426
540
  }
427
541
  for (const [k, held] of toolSpans) {
428
542
  if (held.sessionKey === sessionKey && held.runId === runId) {
@@ -436,6 +550,15 @@ export function registerSpanHooks(options) {
436
550
  endSpan(held.span);
437
551
  }
438
552
  }
553
+ // Evict the session-resolution memos for this run so they can't grow unbounded
554
+ // over the lifetime of the (long-lived) host process.
555
+ for (const [id, sess] of sessionByAgentId) {
556
+ if (sess.sessionKey === sessionKey && sess.runId === runId)
557
+ sessionByAgentId.delete(id);
558
+ }
559
+ if (lastActive && lastActive.sessionKey === sessionKey && lastActive.runId === runId) {
560
+ lastActive = null;
561
+ }
439
562
  }
440
563
  catch (err) {
441
564
  logger.warn("agent_end handler failed", { err: errMsg(err) });
@@ -505,15 +628,15 @@ function identityAttributes(identity) {
505
628
  if (identity.runtimeId)
506
629
  attrs["senpi.runtime.id"] = clampHeader(identity.runtimeId);
507
630
  // Fallback join key to the trading trace when traceparent didn't thread through.
508
- if (identity.correlationId && UUID_RE.test(identity.correlationId)) {
509
- attrs["senpi.correlation_id"] = identity.correlationId;
631
+ if (identity.runId && UUID_RE.test(identity.runId)) {
632
+ attrs["senpi.run.id"] = identity.runId;
510
633
  }
511
634
  return attrs;
512
635
  }
513
636
  function readIdentity(agentCtx) {
514
637
  const headers = readHeaders(agentCtx);
515
638
  return {
516
- correlationId: headers[HEADER_CORRELATION_ID],
639
+ runId: headers[HEADER_CORRELATION_ID],
517
640
  address: headers[HEADER_ADDRESS],
518
641
  recipeName: headers[HEADER_RECIPE_NAME],
519
642
  runtimeId: headers[HEADER_RUNTIME_ID],
@@ -542,6 +665,23 @@ function asRecord(v) {
542
665
  function nonEmptyString(v) {
543
666
  return typeof v === "string" && v.length > 0 ? v : undefined;
544
667
  }
668
+ /** A skill loaded by the agent reading a file under `…/skills/<name>/…` (e.g. its SKILL.md). */
669
+ const SKILL_PATH_RE = /(?:^|\/)skills\/([^/]+)\//;
670
+ /**
671
+ * Best-effort skill attribution: there is no first-class skill-invocation hook, so a skill is
672
+ * detectable only by the agent reading its file. Returns the skill name when a tool-call arg path
673
+ * points under a `skills/<name>/` dir, else undefined. Heuristic — a real gateway skill hook,
674
+ * once it exists, would supersede this.
675
+ */
676
+ function skillNameFromToolArgs(args) {
677
+ const rec = asRecord(args);
678
+ if (!rec)
679
+ return undefined;
680
+ const path = nonEmptyString(rec.path) ?? nonEmptyString(rec.file_path) ?? nonEmptyString(rec.filePath);
681
+ if (!path)
682
+ return undefined;
683
+ return SKILL_PATH_RE.exec(path)?.[1];
684
+ }
545
685
  /** Pull request headers out of agentCtx; several common locations are checked. */
546
686
  function readHeaders(agentCtx) {
547
687
  const ctxObj = asRecord(agentCtx);
@@ -595,13 +735,28 @@ function buildInputMessages(ev) {
595
735
  }
596
736
  return normalizeGenAiMessages(messages, "user");
597
737
  }
598
- /** Output messages: the assistant text(s) / content, with the finish reason on the message. */
738
+ /**
739
+ * Output messages. Prefer the structured `lastAssistant` — it carries tool calls, which the
740
+ * text-only `assistantTexts` does not. The catch the old `assistantTexts ?? lastAssistant`
741
+ * missed: `assistantTexts` is `[]` (not nullish) on a tool-call-only turn, so `??` never fell
742
+ * through and the turn's output was dropped. Fall back to the text chunks, then any raw content.
743
+ */
599
744
  function buildOutputMessages(ev) {
600
- const content = ev.assistantTexts ?? ev.lastAssistant ?? ev.content;
745
+ const last = ev.lastAssistant;
746
+ if (last !== undefined && last !== null) {
747
+ // A full message object (has a role) passes through; a content array/string/object
748
+ // becomes the body of one assistant message.
749
+ const rec = asRecord(last);
750
+ const message = rec && typeof rec.role === "string" ? last : { role: "assistant", content: last };
751
+ return normalizeGenAiMessages([message], "assistant");
752
+ }
753
+ const texts = Array.isArray(ev.assistantTexts)
754
+ ? ev.assistantTexts.filter((t) => typeof t === "string" && t.length > 0)
755
+ : [];
756
+ const content = texts.length > 0 ? texts : ev.content;
601
757
  if (content === undefined || content === null)
602
758
  return undefined;
603
- const finish = ev.finishReason ?? ev.stopReason;
604
- return normalizeGenAiMessages([{ role: "assistant", content, ...(typeof finish === "string" ? { finish_reason: finish } : {}) }], "assistant");
759
+ return normalizeGenAiMessages([{ role: "assistant", content }], "assistant");
605
760
  }
606
761
  function errMsg(err) {
607
762
  return err instanceof Error ? err.message : String(err);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"span-hooks.js","sourceRoot":"","sources":["../../../src/telemetry/spans/span-hooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Tool-call observability plane — the events half. One origin-uniform `tool.called` record
3
+ * across every dispatch site (the gateway agent tool hook, the Senpi MCP client), so a single
4
+ * query spans agent + MCP tool use. The trace plane already covers these calls (auto HTTP/undici
5
+ * client spans + the manual `execute_tool`/`tools/call` semantic spans), so this adds events only.
6
+ *
7
+ * Anti-bloat: only abnormal calls are evented here — a failed tool call (`error`) or a drift/
8
+ * hallucinated one (`unknown`). Successful calls (and hot-path polls) stay on the span/metric
9
+ * planes: a successful state-changing call already emits a richer domain event (`position.opened`,
10
+ * `order.placed`, …), and "most-called / heaviest" is a metric-plane question. The schema lives
11
+ * here once so the keys stay identical across origins (the metric plane adds `mcp`/`decision`).
12
+ */
13
+ export type ToolOrigin = "agent" | "mcp";
14
+ export type ToolOutcome = "ok" | "error" | "unknown" | "denied";
15
+ /** Emit the origin-uniform `tool.called` event. Abnormal outcomes escalate the level to `warn`. */
16
+ export declare function emitToolCalled(opts: {
17
+ name: string;
18
+ origin: ToolOrigin;
19
+ outcome: ToolOutcome;
20
+ errorType?: string;
21
+ errorMessage?: string;
22
+ }): void;
23
+ /**
24
+ * The tool names a turn was OFFERED, from the `llm_input` `tools` definitions — the baseline the
25
+ * drift alarm diffs against. Tolerates the bare `{ name }` and OpenAI `{ function: { name } }`
26
+ * definition shapes. Empty when no definitions were captured (e.g. conversation access is off).
27
+ */
28
+ export declare function offeredToolNames(tools: unknown): Set<string>;
29
+ /** The tool names a turn REQUESTED, read from the normalized gen_ai output messages (`parts[].tool_call`). */
30
+ export declare function requestedToolNames(outputMessages: unknown): string[];
31
+ //# sourceMappingURL=tool-plane.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-plane.d.ts","sourceRoot":"","sources":["../../src/telemetry/tool-plane.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,KAAK,CAAC;AACzC,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEhE,mGAAmG;AACnG,wBAAgB,cAAc,CAAC,IAAI,EAAE;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,IAAI,CAWP;AAQD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAW5D;AAED,8GAA8G;AAC9G,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,OAAO,GAAG,MAAM,EAAE,CAYpE"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Tool-call observability plane — the events half. One origin-uniform `tool.called` record
3
+ * across every dispatch site (the gateway agent tool hook, the Senpi MCP client), so a single
4
+ * query spans agent + MCP tool use. The trace plane already covers these calls (auto HTTP/undici
5
+ * client spans + the manual `execute_tool`/`tools/call` semantic spans), so this adds events only.
6
+ *
7
+ * Anti-bloat: only abnormal calls are evented here — a failed tool call (`error`) or a drift/
8
+ * hallucinated one (`unknown`). Successful calls (and hot-path polls) stay on the span/metric
9
+ * planes: a successful state-changing call already emits a richer domain event (`position.opened`,
10
+ * `order.placed`, …), and "most-called / heaviest" is a metric-plane question. The schema lives
11
+ * here once so the keys stay identical across origins (the metric plane adds `mcp`/`decision`).
12
+ */
13
+ import { createLogger } from "../utils/logger.js";
14
+ import { EVENT_NAME, eventAttrs } from "../utils/event-catalog.js";
15
+ const logger = createLogger("[senpi][tool-plane]");
16
+ /** Emit the origin-uniform `tool.called` event. Abnormal outcomes escalate the level to `warn`. */
17
+ export function emitToolCalled(opts) {
18
+ logger.event(EVENT_NAME.toolCalled, opts.outcome === "ok" ? "info" : "warn", {
19
+ body: `tool ${opts.name} (${opts.origin}) → ${opts.outcome}`,
20
+ attributes: eventAttrs({
21
+ "gen_ai.tool.name": opts.name,
22
+ "senpi.tool.origin": opts.origin,
23
+ "senpi.tool.outcome": opts.outcome,
24
+ "error.type": opts.errorType,
25
+ }),
26
+ ...(opts.errorMessage ? { redact: { error_message: opts.errorMessage } } : {}),
27
+ });
28
+ }
29
+ // ─── Drift-alarm extractors ───────────────────────────────────────────────────
30
+ function asRecord(v) {
31
+ return v && typeof v === "object" && !Array.isArray(v) ? v : undefined;
32
+ }
33
+ /**
34
+ * The tool names a turn was OFFERED, from the `llm_input` `tools` definitions — the baseline the
35
+ * drift alarm diffs against. Tolerates the bare `{ name }` and OpenAI `{ function: { name } }`
36
+ * definition shapes. Empty when no definitions were captured (e.g. conversation access is off).
37
+ */
38
+ export function offeredToolNames(tools) {
39
+ const out = new Set();
40
+ if (!Array.isArray(tools))
41
+ return out;
42
+ for (const t of tools) {
43
+ const rec = asRecord(t);
44
+ if (!rec)
45
+ continue;
46
+ const fn = asRecord(rec.function);
47
+ const name = typeof rec.name === "string" ? rec.name : typeof fn?.name === "string" ? fn.name : undefined;
48
+ if (name)
49
+ out.add(name);
50
+ }
51
+ return out;
52
+ }
53
+ /** The tool names a turn REQUESTED, read from the normalized gen_ai output messages (`parts[].tool_call`). */
54
+ export function requestedToolNames(outputMessages) {
55
+ const out = [];
56
+ if (!Array.isArray(outputMessages))
57
+ return out;
58
+ for (const msg of outputMessages) {
59
+ const parts = asRecord(msg)?.parts;
60
+ if (!Array.isArray(parts))
61
+ continue;
62
+ for (const part of parts) {
63
+ const rec = asRecord(part);
64
+ if (rec?.type === "tool_call" && typeof rec.name === "string")
65
+ out.push(rec.name);
66
+ }
67
+ }
68
+ return out;
69
+ }
70
+ //# sourceMappingURL=tool-plane.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-plane.js","sourceRoot":"","sources":["../../src/telemetry/tool-plane.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@
11
11
  * async-context bag the logger reads at emit time (see `trackingContext.identityAttributes`).
12
12
  */
13
13
  import type { Attributes } from "@opentelemetry/api";
14
- import type { IdentityEnvelope } from "../recording/identity.js";
14
+ import type { IdentityEnvelope } from "../telemetry/identity.js";
15
15
  /**
16
16
  * Map the runtime {@link IdentityEnvelope} to its `senpi.*` trace attributes. Optional
17
17
  * envelope fields are omitted when unset rather than emitted as empty/undefined, so a
@@ -1 +1 @@
1
- {"version":3,"file":"trace-identity.d.ts","sourceRoot":"","sources":["../../src/telemetry/trace-identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAMjE;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,UAAU,CAc9E;AAED;;;;;;;;;GASG;AACH,wBAAsB,0BAA0B,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAY1F"}
1
+ {"version":3,"file":"trace-identity.d.ts","sourceRoot":"","sources":["../../src/telemetry/trace-identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAMjE;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,UAAU,CAiB9E;AAED;;;;;;;;;GASG;AACH,wBAAsB,0BAA0B,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAY1F"}