@agimon-ai/doompi-log 0.0.1-alpha.80 → 0.0.1-alpha.81

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 (258) hide show
  1. package/dist/{src/schemas/apiContracts.cjs → apiContracts.cjs} +8 -6
  2. package/dist/apiContracts.cjs.map +1 -0
  3. package/dist/{src/schemas/apiContracts.d.mts.map → apiContracts.d.mts.map} +1 -1
  4. package/dist/{src/schemas/apiContracts.mjs → apiContracts.mjs} +2 -2
  5. package/dist/apiContracts.mjs.map +1 -0
  6. package/dist/extensions/pi.cjs +411 -32
  7. package/dist/extensions/pi.cjs.map +1 -1
  8. package/dist/extensions/pi.d.mts +2 -3
  9. package/dist/extensions/pi.d.mts.map +1 -1
  10. package/dist/extensions/pi.mjs +395 -16
  11. package/dist/extensions/pi.mjs.map +1 -1
  12. package/dist/extensions/server.cjs +656 -18
  13. package/dist/extensions/server.cjs.map +1 -1
  14. package/dist/extensions/server.d.mts +1 -1
  15. package/dist/extensions/server.d.mts.map +1 -1
  16. package/dist/extensions/server.mjs +624 -9
  17. package/dist/extensions/server.mjs.map +1 -1
  18. package/dist/extensions/web.mjs +7 -10
  19. package/dist/extensions/web.mjs.map +1 -1
  20. package/dist/{src/services/findings/index.cjs → findings-Bo4IHNpr.cjs} +7 -2
  21. package/dist/findings-Bo4IHNpr.cjs.map +1 -0
  22. package/dist/{src/services/findings/index.mjs → findings-DAKeRG4O.mjs} +2 -2
  23. package/dist/findings-DAKeRG4O.mjs.map +1 -0
  24. package/dist/{src/services/metrics/index.d.cts → index-BTk12VKU.d.mts} +21 -20
  25. package/dist/index-BTk12VKU.d.mts.map +1 -0
  26. package/dist/{src/types/piTelemetry.d.mts → index-Bxykybjr.d.mts} +12 -6
  27. package/dist/index-Bxykybjr.d.mts.map +1 -0
  28. package/dist/{src/services/findings/index.d.cts → index-CLHBiYfn.d.mts} +6 -5
  29. package/dist/index-CLHBiYfn.d.mts.map +1 -0
  30. package/dist/index.cjs +15 -15
  31. package/dist/index.d.mts +4 -6
  32. package/dist/index.mjs +4 -4
  33. package/dist/{src/tui/logMetricsOverlay.cjs → logMetricsOverlay-Bj9L8YLJ.cjs} +170 -7
  34. package/dist/logMetricsOverlay-Bj9L8YLJ.cjs.map +1 -0
  35. package/dist/logMetricsOverlay-Cd_D2KeU.d.mts +151 -0
  36. package/dist/logMetricsOverlay-Cd_D2KeU.d.mts.map +1 -0
  37. package/dist/{src/tui/logMetricsOverlay.mjs → logMetricsOverlay-osmlxd12.mjs} +162 -4
  38. package/dist/logMetricsOverlay-osmlxd12.mjs.map +1 -0
  39. package/dist/{src/tui/logRuntime.mjs → logRuntime-CCVbCzaK.mjs} +7 -8
  40. package/dist/logRuntime-CCVbCzaK.mjs.map +1 -0
  41. package/dist/{src/tui/logRuntime.cjs → logRuntime-DcD32EjA.cjs} +27 -19
  42. package/dist/logRuntime-DcD32EjA.cjs.map +1 -0
  43. package/dist/{src/services/metrics/index.cjs → metrics-C7vwHHjG.cjs} +61 -11
  44. package/dist/metrics-C7vwHHjG.cjs.map +1 -0
  45. package/dist/{src/services/metrics/index.mjs → metrics-DXTxQN4U.mjs} +2 -2
  46. package/dist/metrics-DXTxQN4U.mjs.map +1 -0
  47. package/dist/metrics.cjs +13 -13
  48. package/dist/metrics.d.mts +2 -2
  49. package/dist/metrics.mjs +2 -2
  50. package/dist/{metrics-overlay.cjs → metricsOverlay.cjs} +1 -1
  51. package/dist/metricsOverlay.d.mts +2 -0
  52. package/dist/metricsOverlay.mjs +2 -0
  53. package/dist/{src/services/metricsSource/index.mjs → metricsSource-DXZLawQu.mjs} +2 -2
  54. package/dist/metricsSource-DXZLawQu.mjs.map +1 -0
  55. package/dist/{src/services/metricsSource/index.cjs → metricsSource-DdwQNzoY.cjs} +7 -2
  56. package/dist/metricsSource-DdwQNzoY.cjs.map +1 -0
  57. package/dist/{src/types/metricsSource.d.cts → metricsSource-cZnErdv4.d.mts} +8 -7
  58. package/dist/metricsSource-cZnErdv4.d.mts.map +1 -0
  59. package/dist/metricsSource.cjs +3 -0
  60. package/dist/{src/services/metricsSource/index.d.cts → metricsSource.d.mts} +4 -3
  61. package/dist/metricsSource.d.mts.map +1 -0
  62. package/dist/metricsSource.mjs +2 -0
  63. package/dist/{src/constants/telemetry.cjs → telemetryEnabled-B6g7R7BP.mjs} +7 -9
  64. package/dist/telemetryEnabled-B6g7R7BP.mjs.map +1 -0
  65. package/dist/telemetryEnabled-BJ2BKyps.cjs +73 -0
  66. package/dist/telemetryEnabled-BJ2BKyps.cjs.map +1 -0
  67. package/package.json +25 -25
  68. package/dist/_virtual/_rolldown/runtime.cjs +0 -23
  69. package/dist/api-contracts.cjs +0 -7
  70. package/dist/api-contracts.d.cts +0 -2
  71. package/dist/api-contracts.d.mts +0 -2
  72. package/dist/api-contracts.mjs +0 -2
  73. package/dist/extensions/pi.d.cts +0 -7
  74. package/dist/extensions/pi.d.cts.map +0 -1
  75. package/dist/extensions/server.d.cts +0 -5
  76. package/dist/extensions/server.d.cts.map +0 -1
  77. package/dist/index.d.cts +0 -7
  78. package/dist/metrics-overlay.d.cts +0 -3
  79. package/dist/metrics-overlay.d.mts +0 -3
  80. package/dist/metrics-overlay.mjs +0 -2
  81. package/dist/metrics-source.cjs +0 -3
  82. package/dist/metrics-source.d.cts +0 -3
  83. package/dist/metrics-source.d.mts +0 -3
  84. package/dist/metrics-source.mjs +0 -2
  85. package/dist/metrics.d.cts +0 -3
  86. package/dist/src/constants/telemetry.cjs.map +0 -1
  87. package/dist/src/constants/telemetry.mjs +0 -15
  88. package/dist/src/constants/telemetry.mjs.map +0 -1
  89. package/dist/src/extensions/(backend)/api/log/route.server.cjs +0 -7
  90. package/dist/src/extensions/(backend)/api/log/route.server.cjs.map +0 -1
  91. package/dist/src/extensions/(backend)/api/log/route.server.mjs +0 -8
  92. package/dist/src/extensions/(backend)/api/log/route.server.mjs.map +0 -1
  93. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/piRoot.cjs +0 -25
  94. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/piRoot.cjs.map +0 -1
  95. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/piRoot.mjs +0 -25
  96. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/piRoot.mjs.map +0 -1
  97. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/serverRoot.cjs +0 -13
  98. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/serverRoot.cjs.map +0 -1
  99. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/serverRoot.mjs +0 -13
  100. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/serverRoot.mjs.map +0 -1
  101. package/dist/src/extensions/workspaces/sessions/(backend)/command/log-metrics.cli.cjs +0 -6
  102. package/dist/src/extensions/workspaces/sessions/(backend)/command/log-metrics.cli.cjs.map +0 -1
  103. package/dist/src/extensions/workspaces/sessions/(backend)/command/log-metrics.cli.mjs +0 -7
  104. package/dist/src/extensions/workspaces/sessions/(backend)/command/log-metrics.cli.mjs.map +0 -1
  105. package/dist/src/extensions/workspaces/sessions/(backend)/command/log-metrics.server.cjs +0 -6
  106. package/dist/src/extensions/workspaces/sessions/(backend)/command/log-metrics.server.cjs.map +0 -1
  107. package/dist/src/extensions/workspaces/sessions/(backend)/command/log-metrics.server.mjs +0 -7
  108. package/dist/src/extensions/workspaces/sessions/(backend)/command/log-metrics.server.mjs.map +0 -1
  109. package/dist/src/extensions/workspaces/sessions/(backend)/hook/after-provider-response.cli.cjs +0 -6
  110. package/dist/src/extensions/workspaces/sessions/(backend)/hook/after-provider-response.cli.cjs.map +0 -1
  111. package/dist/src/extensions/workspaces/sessions/(backend)/hook/after-provider-response.cli.mjs +0 -7
  112. package/dist/src/extensions/workspaces/sessions/(backend)/hook/after-provider-response.cli.mjs.map +0 -1
  113. package/dist/src/extensions/workspaces/sessions/(backend)/hook/agent-end.cli.cjs +0 -6
  114. package/dist/src/extensions/workspaces/sessions/(backend)/hook/agent-end.cli.cjs.map +0 -1
  115. package/dist/src/extensions/workspaces/sessions/(backend)/hook/agent-end.cli.mjs +0 -7
  116. package/dist/src/extensions/workspaces/sessions/(backend)/hook/agent-end.cli.mjs.map +0 -1
  117. package/dist/src/extensions/workspaces/sessions/(backend)/hook/agent-settled.cli.cjs +0 -6
  118. package/dist/src/extensions/workspaces/sessions/(backend)/hook/agent-settled.cli.cjs.map +0 -1
  119. package/dist/src/extensions/workspaces/sessions/(backend)/hook/agent-settled.cli.mjs +0 -7
  120. package/dist/src/extensions/workspaces/sessions/(backend)/hook/agent-settled.cli.mjs.map +0 -1
  121. package/dist/src/extensions/workspaces/sessions/(backend)/hook/agent-settled.server.cjs +0 -6
  122. package/dist/src/extensions/workspaces/sessions/(backend)/hook/agent-settled.server.cjs.map +0 -1
  123. package/dist/src/extensions/workspaces/sessions/(backend)/hook/agent-settled.server.mjs +0 -7
  124. package/dist/src/extensions/workspaces/sessions/(backend)/hook/agent-settled.server.mjs.map +0 -1
  125. package/dist/src/extensions/workspaces/sessions/(backend)/hook/agent-start.cli.cjs +0 -6
  126. package/dist/src/extensions/workspaces/sessions/(backend)/hook/agent-start.cli.cjs.map +0 -1
  127. package/dist/src/extensions/workspaces/sessions/(backend)/hook/agent-start.cli.mjs +0 -7
  128. package/dist/src/extensions/workspaces/sessions/(backend)/hook/agent-start.cli.mjs.map +0 -1
  129. package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.cjs +0 -6
  130. package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.cjs.map +0 -1
  131. package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.mjs +0 -7
  132. package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.mjs.map +0 -1
  133. package/dist/src/extensions/workspaces/sessions/(backend)/hook/model-select.cli.cjs +0 -6
  134. package/dist/src/extensions/workspaces/sessions/(backend)/hook/model-select.cli.cjs.map +0 -1
  135. package/dist/src/extensions/workspaces/sessions/(backend)/hook/model-select.cli.mjs +0 -7
  136. package/dist/src/extensions/workspaces/sessions/(backend)/hook/model-select.cli.mjs.map +0 -1
  137. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.cli.cjs +0 -6
  138. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.cli.cjs.map +0 -1
  139. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.cli.mjs +0 -7
  140. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.cli.mjs.map +0 -1
  141. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.cjs +0 -6
  142. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.cjs.map +0 -1
  143. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.mjs +0 -7
  144. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.mjs.map +0 -1
  145. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.cjs +0 -6
  146. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.cjs.map +0 -1
  147. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.mjs +0 -7
  148. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.mjs.map +0 -1
  149. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.server.cjs +0 -6
  150. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.server.cjs.map +0 -1
  151. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.server.mjs +0 -7
  152. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.server.mjs.map +0 -1
  153. package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.cli.cjs +0 -6
  154. package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.cli.cjs.map +0 -1
  155. package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.cli.mjs +0 -7
  156. package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.cli.mjs.map +0 -1
  157. package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-start.cli.cjs +0 -6
  158. package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-start.cli.cjs.map +0 -1
  159. package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-start.cli.mjs +0 -7
  160. package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-start.cli.mjs.map +0 -1
  161. package/dist/src/extensions/workspaces/sessions/(backend)/hook/turn-end.cli.cjs +0 -6
  162. package/dist/src/extensions/workspaces/sessions/(backend)/hook/turn-end.cli.cjs.map +0 -1
  163. package/dist/src/extensions/workspaces/sessions/(backend)/hook/turn-end.cli.mjs +0 -7
  164. package/dist/src/extensions/workspaces/sessions/(backend)/hook/turn-end.cli.mjs.map +0 -1
  165. package/dist/src/extensions/workspaces/sessions/(backend)/hook/turn-start.cli.cjs +0 -6
  166. package/dist/src/extensions/workspaces/sessions/(backend)/hook/turn-start.cli.cjs.map +0 -1
  167. package/dist/src/extensions/workspaces/sessions/(backend)/hook/turn-start.cli.mjs +0 -7
  168. package/dist/src/extensions/workspaces/sessions/(backend)/hook/turn-start.cli.mjs.map +0 -1
  169. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.cjs +0 -7
  170. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.cjs.map +0 -1
  171. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.mjs +0 -8
  172. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.mjs.map +0 -1
  173. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.cjs +0 -7
  174. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.cjs.map +0 -1
  175. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.mjs +0 -8
  176. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.mjs.map +0 -1
  177. package/dist/src/schemas/apiContracts.cjs.map +0 -1
  178. package/dist/src/schemas/apiContracts.d.cts +0 -53
  179. package/dist/src/schemas/apiContracts.d.cts.map +0 -1
  180. package/dist/src/schemas/apiContracts.mjs.map +0 -1
  181. package/dist/src/services/findings/index.cjs.map +0 -1
  182. package/dist/src/services/findings/index.d.cts.map +0 -1
  183. package/dist/src/services/findings/index.d.mts +0 -22
  184. package/dist/src/services/findings/index.d.mts.map +0 -1
  185. package/dist/src/services/findings/index.mjs.map +0 -1
  186. package/dist/src/services/hubApi/index.cjs +0 -203
  187. package/dist/src/services/hubApi/index.cjs.map +0 -1
  188. package/dist/src/services/hubApi/index.mjs +0 -202
  189. package/dist/src/services/hubApi/index.mjs.map +0 -1
  190. package/dist/src/services/issuesSource/index.cjs +0 -113
  191. package/dist/src/services/issuesSource/index.cjs.map +0 -1
  192. package/dist/src/services/issuesSource/index.mjs +0 -111
  193. package/dist/src/services/issuesSource/index.mjs.map +0 -1
  194. package/dist/src/services/metrics/index.cjs.map +0 -1
  195. package/dist/src/services/metrics/index.d.cts.map +0 -1
  196. package/dist/src/services/metrics/index.d.mts +0 -164
  197. package/dist/src/services/metrics/index.d.mts.map +0 -1
  198. package/dist/src/services/metrics/index.mjs.map +0 -1
  199. package/dist/src/services/metricsSource/index.cjs.map +0 -1
  200. package/dist/src/services/metricsSource/index.d.cts.map +0 -1
  201. package/dist/src/services/metricsSource/index.d.mts +0 -17
  202. package/dist/src/services/metricsSource/index.d.mts.map +0 -1
  203. package/dist/src/services/metricsSource/index.mjs.map +0 -1
  204. package/dist/src/services/piTelemetry/index.cjs +0 -334
  205. package/dist/src/services/piTelemetry/index.cjs.map +0 -1
  206. package/dist/src/services/piTelemetry/index.mjs +0 -334
  207. package/dist/src/services/piTelemetry/index.mjs.map +0 -1
  208. package/dist/src/services/serverTelemetry/index.cjs +0 -65
  209. package/dist/src/services/serverTelemetry/index.cjs.map +0 -1
  210. package/dist/src/services/serverTelemetry/index.mjs +0 -65
  211. package/dist/src/services/serverTelemetry/index.mjs.map +0 -1
  212. package/dist/src/services/telemetryEnabled/index.cjs +0 -8
  213. package/dist/src/services/telemetryEnabled/index.cjs.map +0 -1
  214. package/dist/src/services/telemetryEnabled/index.mjs +0 -8
  215. package/dist/src/services/telemetryEnabled/index.mjs.map +0 -1
  216. package/dist/src/tui/doomOverlay.cjs +0 -149
  217. package/dist/src/tui/doomOverlay.cjs.map +0 -1
  218. package/dist/src/tui/doomOverlay.d.cts +0 -62
  219. package/dist/src/tui/doomOverlay.d.cts.map +0 -1
  220. package/dist/src/tui/doomOverlay.d.mts +0 -62
  221. package/dist/src/tui/doomOverlay.d.mts.map +0 -1
  222. package/dist/src/tui/doomOverlay.mjs +0 -148
  223. package/dist/src/tui/doomOverlay.mjs.map +0 -1
  224. package/dist/src/tui/logMetricsOverlay.cjs.map +0 -1
  225. package/dist/src/tui/logMetricsOverlay.d.cts +0 -82
  226. package/dist/src/tui/logMetricsOverlay.d.cts.map +0 -1
  227. package/dist/src/tui/logMetricsOverlay.d.mts +0 -82
  228. package/dist/src/tui/logMetricsOverlay.d.mts.map +0 -1
  229. package/dist/src/tui/logMetricsOverlay.mjs.map +0 -1
  230. package/dist/src/tui/logRuntime.cjs.map +0 -1
  231. package/dist/src/tui/logRuntime.d.cts +0 -10
  232. package/dist/src/tui/logRuntime.d.cts.map +0 -1
  233. package/dist/src/tui/logRuntime.d.mts +0 -10
  234. package/dist/src/tui/logRuntime.d.mts.map +0 -1
  235. package/dist/src/tui/logRuntime.mjs.map +0 -1
  236. package/dist/src/tui/rendering.cjs +0 -22
  237. package/dist/src/tui/rendering.cjs.map +0 -1
  238. package/dist/src/tui/rendering.mjs +0 -20
  239. package/dist/src/tui/rendering.mjs.map +0 -1
  240. package/dist/src/types/apiRoutes.cjs +0 -41
  241. package/dist/src/types/apiRoutes.cjs.map +0 -1
  242. package/dist/src/types/apiRoutes.mjs +0 -41
  243. package/dist/src/types/apiRoutes.mjs.map +0 -1
  244. package/dist/src/types/metricsSource.d.cts.map +0 -1
  245. package/dist/src/types/metricsSource.d.mts +0 -50
  246. package/dist/src/types/metricsSource.d.mts.map +0 -1
  247. package/dist/src/types/piTelemetry.d.cts +0 -26
  248. package/dist/src/types/piTelemetry.d.cts.map +0 -1
  249. package/dist/src/types/piTelemetry.d.mts.map +0 -1
  250. package/dist/src/types/sinkStatus.d.cts +0 -12
  251. package/dist/src/types/sinkStatus.d.cts.map +0 -1
  252. package/dist/src/types/sinkStatus.d.mts +0 -12
  253. package/dist/src/types/sinkStatus.d.mts.map +0 -1
  254. package/dist/src/types/webMetrics.cjs +0 -41
  255. package/dist/src/types/webMetrics.cjs.map +0 -1
  256. package/dist/src/types/webMetrics.mjs +0 -37
  257. package/dist/src/types/webMetrics.mjs.map +0 -1
  258. /package/dist/{src/schemas/apiContracts.d.mts → apiContracts.d.mts} +0 -0
@@ -1,4 +1,8 @@
1
- let _agimon_ai_doompi_core_api_contracts = require("@agimon-ai/doompi-core/api-contracts");
1
+ Object.defineProperties(exports, {
2
+ __esModule: { value: true },
3
+ [Symbol.toStringTag]: { value: "Module" }
4
+ });
5
+ let _agimon_ai_doompi_core_apiContracts = require("@agimon-ai/doompi-core/apiContracts");
2
6
  let typebox = require("typebox");
3
7
  //#region src/schemas/apiContracts.ts
4
8
  const S = typebox.Type.String();
@@ -84,7 +88,7 @@ const IssuesResponseSchema = typebox.Type.Union([Unavailable, typebox.Type.Objec
84
88
  statusCode: Nullable
85
89
  }))
86
90
  })]);
87
- const apiContracts = (0, _agimon_ai_doompi_core_api_contracts.defineApiContract)({
91
+ const apiContracts = (0, _agimon_ai_doompi_core_apiContracts.defineApiContract)({
88
92
  version: 1,
89
93
  sockets: [],
90
94
  dynamic: [],
@@ -116,7 +120,7 @@ const apiContracts = (0, _agimon_ai_doompi_core_api_contracts.defineApiContract)
116
120
  schema: S
117
121
  }
118
122
  ],
119
- responses: (0, _agimon_ai_doompi_core_api_contracts.jsonApiResponses)(MetricsResponseSchema)
123
+ responses: (0, _agimon_ai_doompi_core_apiContracts.jsonApiResponses)(MetricsResponseSchema)
120
124
  }, {
121
125
  id: "log.issues",
122
126
  scope,
@@ -131,12 +135,10 @@ const apiContracts = (0, _agimon_ai_doompi_core_api_contracts.defineApiContract)
131
135
  required: false,
132
136
  schema: S
133
137
  }],
134
- responses: (0, _agimon_ai_doompi_core_api_contracts.jsonApiResponses)(IssuesResponseSchema)
138
+ responses: (0, _agimon_ai_doompi_core_apiContracts.jsonApiResponses)(IssuesResponseSchema)
135
139
  }])
136
140
  });
137
141
  //#endregion
138
- exports.IssuesResponseSchema = IssuesResponseSchema;
139
- exports.MetricsResponseSchema = MetricsResponseSchema;
140
142
  exports.apiContracts = apiContracts;
141
143
  exports.default = apiContracts;
142
144
 
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiContracts.cjs","names":["Type","defineApiContract","jsonApiResponses"],"sources":["../src/schemas/apiContracts.ts"],"sourcesContent":["import { defineApiContract, jsonApiResponses } from '@agimon-ai/doompi-core/apiContracts';\nimport { Type } from 'typebox';\n\nconst S = Type.String();\nconst N = Type.Number();\nconst B = Type.Boolean();\nconst O = Type.Optional;\nconst literals = <T extends string>(values: T[]) => Type.Union(values.map((value) => Type.Literal(value)));\nconst Dimension = literals(['session', 'agent', 'model', 'provider']);\nconst Period = literals(['day', 'week', 'month', 'all']);\nconst Unavailable = Type.Object({ unavailable: literals(['no-sink', 'no-data', 'no-api']), detail: S });\nconst Tokens = { totalTokens: N, inputTokens: N, outputTokens: N };\nexport const MetricsResponseSchema = Type.Union([\n Unavailable,\n Type.Object({\n generatedAt: S,\n dimension: Dimension,\n period: Period,\n bucketUnit: S,\n focus: O(S),\n transport: O(literals(['http', 'cli'])),\n totals: Type.Object({\n ...Tokens,\n cachedTokens: N,\n reasoningTokens: N,\n groupCount: N,\n failedGroups: N,\n issueCount: N,\n }),\n timeline: Type.Array(Type.Object({ label: S, ...Tokens })),\n groups: Type.Array(Type.Object({ key: S, ...Tokens, issueCount: N, failed: B })),\n tools: Type.Array(Type.Object({ name: S, calls: N, p90TotalTokens: N })),\n }),\n]);\nconst Nullable = Type.Union([S, Type.Null()]);\nexport const IssuesResponseSchema = Type.Union([\n Unavailable,\n Type.Object({\n totalIssues: N,\n uniqueIncidents: N,\n byCategory: Type.Record(S, N),\n byTool: Type.Record(S, N),\n byErrorType: Type.Record(S, N),\n samples: Type.Array(\n Type.Object({\n fingerprint: S,\n occurrenceCount: N,\n category: S,\n timestamp: S,\n level: S,\n message: S,\n detail: S,\n tool: Nullable,\n errorType: Nullable,\n agentName: Nullable,\n model: Nullable,\n statusCode: Nullable,\n }),\n ),\n }),\n]);\nexport const apiContracts = defineApiContract({\n version: 1,\n sockets: [],\n dynamic: [],\n http: (['global', 'workspace'] as const).flatMap((scope) => [\n {\n id: 'log.metrics',\n scope,\n basePath: 'log',\n path: '/metrics',\n method: 'GET',\n authentication: 'owner',\n description: 'Read usage metrics from the configured log sink.',\n parameters: [\n { name: 'dimension', in: 'query', required: false, schema: Dimension },\n { name: 'period', in: 'query', required: false, schema: Period },\n { name: 'focus', in: 'query', required: false, schema: S },\n ],\n responses: jsonApiResponses(MetricsResponseSchema),\n },\n {\n id: 'log.issues',\n scope,\n basePath: 'log',\n path: '/issues',\n method: 'GET',\n authentication: 'owner',\n description: 'Read log issue details.',\n parameters: [{ name: 'focus', in: 'query', required: false, schema: S }],\n responses: jsonApiResponses(IssuesResponseSchema),\n },\n ]),\n});\nexport default apiContracts;\n"],"mappings":";;;;;;;AAGA,MAAM,IAAIA,QAAAA,KAAK,OAAO;AACtB,MAAM,IAAIA,QAAAA,KAAK,OAAO;AACtB,MAAM,IAAIA,QAAAA,KAAK,QAAQ;AACvB,MAAM,IAAIA,QAAAA,KAAK;AACf,MAAM,YAA8B,WAAgBA,QAAAA,KAAK,MAAM,OAAO,KAAK,UAAUA,QAAAA,KAAK,QAAQ,KAAK,CAAC,CAAC;AACzG,MAAM,YAAY,SAAS;CAAC;CAAW;CAAS;CAAS;AAAU,CAAC;AACpE,MAAM,SAAS,SAAS;CAAC;CAAO;CAAQ;CAAS;AAAK,CAAC;AACvD,MAAM,cAAcA,QAAAA,KAAK,OAAO;CAAE,aAAa,SAAS;EAAC;EAAW;EAAW;CAAQ,CAAC;CAAG,QAAQ;AAAE,CAAC;AACtG,MAAM,SAAS;CAAE,aAAa;CAAG,aAAa;CAAG,cAAc;AAAE;AACjE,MAAa,wBAAwBA,QAAAA,KAAK,MAAM,CAC9C,aACAA,QAAAA,KAAK,OAAO;CACV,aAAa;CACb,WAAW;CACX,QAAQ;CACR,YAAY;CACZ,OAAO,EAAE,CAAC;CACV,WAAW,EAAE,SAAS,CAAC,QAAQ,KAAK,CAAC,CAAC;CACtC,QAAQA,QAAAA,KAAK,OAAO;EAClB,GAAG;EACH,cAAc;EACd,iBAAiB;EACjB,YAAY;EACZ,cAAc;EACd,YAAY;CACd,CAAC;CACD,UAAUA,QAAAA,KAAK,MAAMA,QAAAA,KAAK,OAAO;EAAE,OAAO;EAAG,GAAG;CAAO,CAAC,CAAC;CACzD,QAAQA,QAAAA,KAAK,MAAMA,QAAAA,KAAK,OAAO;EAAE,KAAK;EAAG,GAAG;EAAQ,YAAY;EAAG,QAAQ;CAAE,CAAC,CAAC;CAC/E,OAAOA,QAAAA,KAAK,MAAMA,QAAAA,KAAK,OAAO;EAAE,MAAM;EAAG,OAAO;EAAG,gBAAgB;CAAE,CAAC,CAAC;AACzE,CAAC,CACH,CAAC;AACD,MAAM,WAAWA,QAAAA,KAAK,MAAM,CAAC,GAAGA,QAAAA,KAAK,KAAK,CAAC,CAAC;AAC5C,MAAa,uBAAuBA,QAAAA,KAAK,MAAM,CAC7C,aACAA,QAAAA,KAAK,OAAO;CACV,aAAa;CACb,iBAAiB;CACjB,YAAYA,QAAAA,KAAK,OAAO,GAAG,CAAC;CAC5B,QAAQA,QAAAA,KAAK,OAAO,GAAG,CAAC;CACxB,aAAaA,QAAAA,KAAK,OAAO,GAAG,CAAC;CAC7B,SAASA,QAAAA,KAAK,MACZA,QAAAA,KAAK,OAAO;EACV,aAAa;EACb,iBAAiB;EACjB,UAAU;EACV,WAAW;EACX,OAAO;EACP,SAAS;EACT,QAAQ;EACR,MAAM;EACN,WAAW;EACX,WAAW;EACX,OAAO;EACP,YAAY;CACd,CAAC,CACH;AACF,CAAC,CACH,CAAC;AACD,MAAa,gBAAA,GAAeC,oCAAAA,kBAAAA,CAAkB;CAC5C,SAAS;CACT,SAAS,CAAC;CACV,SAAS,CAAC;CACV,MAAO,CAAC,UAAU,WAAW,CAAC,CAAW,SAAS,UAAU,CAC1D;EACE,IAAI;EACJ;EACA,UAAU;EACV,MAAM;EACN,QAAQ;EACR,gBAAgB;EAChB,aAAa;EACb,YAAY;GACV;IAAE,MAAM;IAAa,IAAI;IAAS,UAAU;IAAO,QAAQ;GAAU;GACrE;IAAE,MAAM;IAAU,IAAI;IAAS,UAAU;IAAO,QAAQ;GAAO;GAC/D;IAAE,MAAM;IAAS,IAAI;IAAS,UAAU;IAAO,QAAQ;GAAE;EAC3D;EACA,YAAA,GAAWC,oCAAAA,iBAAAA,CAAiB,qBAAqB;CACnD,GACA;EACE,IAAI;EACJ;EACA,UAAU;EACV,MAAM;EACN,QAAQ;EACR,gBAAgB;EAChB,aAAa;EACb,YAAY,CAAC;GAAE,MAAM;GAAS,IAAI;GAAS,UAAU;GAAO,QAAQ;EAAE,CAAC;EACvE,YAAA,GAAWA,oCAAAA,iBAAAA,CAAiB,oBAAoB;CAClD,CACF,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"apiContracts.d.mts","names":[],"sources":["../../../src/schemas/apiContracts.ts"],"mappings":";;qBA6Da"}
1
+ {"version":3,"file":"apiContracts.d.mts","names":[],"sources":["../src/schemas/apiContracts.ts"],"mappings":";;qBA6Da"}
@@ -1,4 +1,4 @@
1
- import { defineApiContract, jsonApiResponses } from "@agimon-ai/doompi-core/api-contracts";
1
+ import { defineApiContract, jsonApiResponses } from "@agimon-ai/doompi-core/apiContracts";
2
2
  import { Type } from "typebox";
3
3
  //#region src/schemas/apiContracts.ts
4
4
  const S = Type.String();
@@ -135,6 +135,6 @@ const apiContracts = defineApiContract({
135
135
  }])
136
136
  });
137
137
  //#endregion
138
- export { IssuesResponseSchema, MetricsResponseSchema, apiContracts, apiContracts as default };
138
+ export { apiContracts, apiContracts as default };
139
139
 
140
140
  //# sourceMappingURL=apiContracts.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiContracts.mjs","names":[],"sources":["../src/schemas/apiContracts.ts"],"sourcesContent":["import { defineApiContract, jsonApiResponses } from '@agimon-ai/doompi-core/apiContracts';\nimport { Type } from 'typebox';\n\nconst S = Type.String();\nconst N = Type.Number();\nconst B = Type.Boolean();\nconst O = Type.Optional;\nconst literals = <T extends string>(values: T[]) => Type.Union(values.map((value) => Type.Literal(value)));\nconst Dimension = literals(['session', 'agent', 'model', 'provider']);\nconst Period = literals(['day', 'week', 'month', 'all']);\nconst Unavailable = Type.Object({ unavailable: literals(['no-sink', 'no-data', 'no-api']), detail: S });\nconst Tokens = { totalTokens: N, inputTokens: N, outputTokens: N };\nexport const MetricsResponseSchema = Type.Union([\n Unavailable,\n Type.Object({\n generatedAt: S,\n dimension: Dimension,\n period: Period,\n bucketUnit: S,\n focus: O(S),\n transport: O(literals(['http', 'cli'])),\n totals: Type.Object({\n ...Tokens,\n cachedTokens: N,\n reasoningTokens: N,\n groupCount: N,\n failedGroups: N,\n issueCount: N,\n }),\n timeline: Type.Array(Type.Object({ label: S, ...Tokens })),\n groups: Type.Array(Type.Object({ key: S, ...Tokens, issueCount: N, failed: B })),\n tools: Type.Array(Type.Object({ name: S, calls: N, p90TotalTokens: N })),\n }),\n]);\nconst Nullable = Type.Union([S, Type.Null()]);\nexport const IssuesResponseSchema = Type.Union([\n Unavailable,\n Type.Object({\n totalIssues: N,\n uniqueIncidents: N,\n byCategory: Type.Record(S, N),\n byTool: Type.Record(S, N),\n byErrorType: Type.Record(S, N),\n samples: Type.Array(\n Type.Object({\n fingerprint: S,\n occurrenceCount: N,\n category: S,\n timestamp: S,\n level: S,\n message: S,\n detail: S,\n tool: Nullable,\n errorType: Nullable,\n agentName: Nullable,\n model: Nullable,\n statusCode: Nullable,\n }),\n ),\n }),\n]);\nexport const apiContracts = defineApiContract({\n version: 1,\n sockets: [],\n dynamic: [],\n http: (['global', 'workspace'] as const).flatMap((scope) => [\n {\n id: 'log.metrics',\n scope,\n basePath: 'log',\n path: '/metrics',\n method: 'GET',\n authentication: 'owner',\n description: 'Read usage metrics from the configured log sink.',\n parameters: [\n { name: 'dimension', in: 'query', required: false, schema: Dimension },\n { name: 'period', in: 'query', required: false, schema: Period },\n { name: 'focus', in: 'query', required: false, schema: S },\n ],\n responses: jsonApiResponses(MetricsResponseSchema),\n },\n {\n id: 'log.issues',\n scope,\n basePath: 'log',\n path: '/issues',\n method: 'GET',\n authentication: 'owner',\n description: 'Read log issue details.',\n parameters: [{ name: 'focus', in: 'query', required: false, schema: S }],\n responses: jsonApiResponses(IssuesResponseSchema),\n },\n ]),\n});\nexport default apiContracts;\n"],"mappings":";;;AAGA,MAAM,IAAI,KAAK,OAAO;AACtB,MAAM,IAAI,KAAK,OAAO;AACtB,MAAM,IAAI,KAAK,QAAQ;AACvB,MAAM,IAAI,KAAK;AACf,MAAM,YAA8B,WAAgB,KAAK,MAAM,OAAO,KAAK,UAAU,KAAK,QAAQ,KAAK,CAAC,CAAC;AACzG,MAAM,YAAY,SAAS;CAAC;CAAW;CAAS;CAAS;AAAU,CAAC;AACpE,MAAM,SAAS,SAAS;CAAC;CAAO;CAAQ;CAAS;AAAK,CAAC;AACvD,MAAM,cAAc,KAAK,OAAO;CAAE,aAAa,SAAS;EAAC;EAAW;EAAW;CAAQ,CAAC;CAAG,QAAQ;AAAE,CAAC;AACtG,MAAM,SAAS;CAAE,aAAa;CAAG,aAAa;CAAG,cAAc;AAAE;AACjE,MAAa,wBAAwB,KAAK,MAAM,CAC9C,aACA,KAAK,OAAO;CACV,aAAa;CACb,WAAW;CACX,QAAQ;CACR,YAAY;CACZ,OAAO,EAAE,CAAC;CACV,WAAW,EAAE,SAAS,CAAC,QAAQ,KAAK,CAAC,CAAC;CACtC,QAAQ,KAAK,OAAO;EAClB,GAAG;EACH,cAAc;EACd,iBAAiB;EACjB,YAAY;EACZ,cAAc;EACd,YAAY;CACd,CAAC;CACD,UAAU,KAAK,MAAM,KAAK,OAAO;EAAE,OAAO;EAAG,GAAG;CAAO,CAAC,CAAC;CACzD,QAAQ,KAAK,MAAM,KAAK,OAAO;EAAE,KAAK;EAAG,GAAG;EAAQ,YAAY;EAAG,QAAQ;CAAE,CAAC,CAAC;CAC/E,OAAO,KAAK,MAAM,KAAK,OAAO;EAAE,MAAM;EAAG,OAAO;EAAG,gBAAgB;CAAE,CAAC,CAAC;AACzE,CAAC,CACH,CAAC;AACD,MAAM,WAAW,KAAK,MAAM,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC;AAC5C,MAAa,uBAAuB,KAAK,MAAM,CAC7C,aACA,KAAK,OAAO;CACV,aAAa;CACb,iBAAiB;CACjB,YAAY,KAAK,OAAO,GAAG,CAAC;CAC5B,QAAQ,KAAK,OAAO,GAAG,CAAC;CACxB,aAAa,KAAK,OAAO,GAAG,CAAC;CAC7B,SAAS,KAAK,MACZ,KAAK,OAAO;EACV,aAAa;EACb,iBAAiB;EACjB,UAAU;EACV,WAAW;EACX,OAAO;EACP,SAAS;EACT,QAAQ;EACR,MAAM;EACN,WAAW;EACX,WAAW;EACX,OAAO;EACP,YAAY;CACd,CAAC,CACH;AACF,CAAC,CACH,CAAC;AACD,MAAa,eAAe,kBAAkB;CAC5C,SAAS;CACT,SAAS,CAAC;CACV,SAAS,CAAC;CACV,MAAO,CAAC,UAAU,WAAW,CAAC,CAAW,SAAS,UAAU,CAC1D;EACE,IAAI;EACJ;EACA,UAAU;EACV,MAAM;EACN,QAAQ;EACR,gBAAgB;EAChB,aAAa;EACb,YAAY;GACV;IAAE,MAAM;IAAa,IAAI;IAAS,UAAU;IAAO,QAAQ;GAAU;GACrE;IAAE,MAAM;IAAU,IAAI;IAAS,UAAU;IAAO,QAAQ;GAAO;GAC/D;IAAE,MAAM;IAAS,IAAI;IAAS,UAAU;IAAO,QAAQ;GAAE;EAC3D;EACA,WAAW,iBAAiB,qBAAqB;CACnD,GACA;EACE,IAAI;EACJ;EACA,UAAU;EACV,MAAM;EACN,QAAQ;EACR,gBAAgB;EAChB,aAAa;EACb,YAAY,CAAC;GAAE,MAAM;GAAS,IAAI;GAAS,UAAU;GAAO,QAAQ;EAAE,CAAC;EACvE,WAAW,iBAAiB,oBAAoB;CAClD,CACF,CAAC;AACH,CAAC"}
@@ -2,52 +2,431 @@ Object.defineProperties(exports, {
2
2
  __esModule: { value: true },
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
- const require_root_cli = require("../src/extensions/workspaces/sessions/(backend)/root.cli.cjs");
6
- const require_log_metrics_cli = require("../src/extensions/workspaces/sessions/(backend)/command/log-metrics.cli.cjs");
7
- const require_after_provider_response_cli = require("../src/extensions/workspaces/sessions/(backend)/hook/after-provider-response.cli.cjs");
8
- const require_agent_end_cli = require("../src/extensions/workspaces/sessions/(backend)/hook/agent-end.cli.cjs");
9
- const require_agent_settled_cli = require("../src/extensions/workspaces/sessions/(backend)/hook/agent-settled.cli.cjs");
10
- const require_agent_start_cli = require("../src/extensions/workspaces/sessions/(backend)/hook/agent-start.cli.cjs");
11
- const require_before_agent_start_cli = require("../src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.cjs");
12
- const require_model_select_cli = require("../src/extensions/workspaces/sessions/(backend)/hook/model-select.cli.cjs");
13
- const require_session_shutdown_cli = require("../src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.cli.cjs");
14
- const require_session_start_cli = require("../src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.cjs");
15
- const require_tool_execution_end_cli = require("../src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.cli.cjs");
16
- const require_tool_execution_start_cli = require("../src/extensions/workspaces/sessions/(backend)/hook/tool-execution-start.cli.cjs");
17
- const require_turn_end_cli = require("../src/extensions/workspaces/sessions/(backend)/hook/turn-end.cli.cjs");
18
- const require_turn_start_cli = require("../src/extensions/workspaces/sessions/(backend)/hook/turn-start.cli.cjs");
19
- let _agimon_ai_doompi_core_pi_extension = require("@agimon-ai/doompi-core/pi-extension");
20
- let _agimon_ai_doompi_core_extension_file = require("@agimon-ai/doompi-core/extension-file");
5
+ const require_telemetryEnabled = require("../telemetryEnabled-BJ2BKyps.cjs");
6
+ const require_logRuntime = require("../logRuntime-DcD32EjA.cjs");
7
+ let _agimon_ai_doompi_core_piExtension = require("@agimon-ai/doompi-core/piExtension");
8
+ let _agimon_ai_doompi_core_extensionFile = require("@agimon-ai/doompi-core/extensionFile");
9
+ let _agimon_ai_doompi_core_readiness = require("@agimon-ai/doompi-core/readiness");
10
+ let _agimon_ai_doompi_telemetry = require("@agimon-ai/doompi-telemetry");
11
+ //#region src/services/piTelemetry/index.ts
12
+ function contextAttributes(ctx) {
13
+ const attributes = {
14
+ "pi.mode": ctx.mode,
15
+ "pi.session.id": ctx.sessionManager.getSessionId()
16
+ };
17
+ if (ctx.thinkingLevel) attributes["pi.thinking_level"] = ctx.thinkingLevel;
18
+ if (ctx.model) {
19
+ attributes["gen_ai.provider.name"] = ctx.model.provider;
20
+ attributes["gen_ai.request.model"] = ctx.model.id;
21
+ }
22
+ return attributes;
23
+ }
24
+ function usageAttributes(message) {
25
+ if (message.role !== "assistant") return void 0;
26
+ const attributes = {
27
+ "gen_ai.response.model": message.responseModel ?? message.model,
28
+ "gen_ai.response.finish_reasons": message.stopReason,
29
+ "gen_ai.usage.input_tokens": message.usage.input,
30
+ "gen_ai.usage.output_tokens": message.usage.output,
31
+ "gen_ai.usage.cache_read_tokens": message.usage.cacheRead,
32
+ "gen_ai.usage.cache_write_tokens": message.usage.cacheWrite,
33
+ "gen_ai.usage.total_tokens": message.usage.totalTokens,
34
+ "gen_ai.usage.cost": message.usage.cost.total
35
+ };
36
+ if (message.usage.reasoning !== void 0) attributes["gen_ai.usage.reasoning_tokens"] = message.usage.reasoning;
37
+ return attributes;
38
+ }
39
+ function failureAttributes(message) {
40
+ if (message.role !== "assistant") return {
41
+ "error.type": "AgentError",
42
+ outcome: "error"
43
+ };
44
+ const aborted = message.stopReason === "aborted";
45
+ return {
46
+ "error.type": "ProviderError",
47
+ "error.code": message.stopReason,
48
+ outcome: aborted ? "aborted" : "error"
49
+ };
50
+ }
51
+ function statusFromTelemetry(status) {
52
+ return {
53
+ service: status.serviceName,
54
+ backend: status.backend,
55
+ endpoint: status.endpoint ?? "none",
56
+ endpointSource: status.endpointSource,
57
+ traces: status.traces,
58
+ redaction: true,
59
+ fileFallback: status.fileFallback
60
+ };
61
+ }
62
+ function createPiTelemetryRuntime(cordis, options = {}, splitReadiness = false) {
63
+ const env = options.env ?? process.env;
64
+ const metrics = options.metrics;
65
+ const toolStartedAt = /* @__PURE__ */ new Map();
66
+ const turnStartedAt = /* @__PURE__ */ new Map();
67
+ let active = true;
68
+ let sessionGeneration = 0;
69
+ let agentStartedAt;
70
+ let telemetry;
71
+ let telemetrySessionId;
72
+ let sessionReadiness;
73
+ let backgroundQueue = Promise.resolve();
74
+ const enqueue = (operation) => {
75
+ backgroundQueue = backgroundQueue.then(operation).catch(() => void 0);
76
+ };
77
+ const emit = async (level, name, attributes) => {
78
+ if (!active || !telemetry) return;
79
+ if (level === "debug") await telemetry.recordDebug(name, attributes);
80
+ else if (level === "warn") await telemetry.recordWarning(name, void 0, attributes);
81
+ else if (level === "error") await telemetry.recordError(name, void 0, attributes);
82
+ else await telemetry.recordEvent(name, attributes);
83
+ };
84
+ const getTelemetry = (ctx) => {
85
+ if (!active) throw new Error("Log telemetry runtime is disposed.");
86
+ const sessionId = ctx.sessionManager.getSessionId();
87
+ if (telemetry && telemetrySessionId !== sessionId) {
88
+ const staleTelemetry = telemetry;
89
+ telemetry = void 0;
90
+ telemetrySessionId = void 0;
91
+ enqueue(() => staleTelemetry.shutdown());
92
+ }
93
+ if (!telemetry) {
94
+ telemetrySessionId = sessionId;
95
+ telemetry = (0, _agimon_ai_doompi_telemetry.createDoomTelemetry)({
96
+ serviceName: options.serviceName ?? "pi",
97
+ packageName: require_telemetryEnabled.PACKAGE_NAME,
98
+ cwd: ctx.cwd,
99
+ env: {
100
+ ...env,
101
+ PI_SESSION_ID: sessionId
102
+ },
103
+ allowFileFallback: options.allowFileFallback,
104
+ telemetryFactory: options.telemetryFactory,
105
+ warn: options.onDiagnostic,
106
+ enableLogs: true,
107
+ enableTraces: env.AGENT_OTEL_TRACES === void 0 || require_telemetryEnabled.isEnabled(env.AGENT_OTEL_TRACES),
108
+ onRecord: (record) => {
109
+ if (active) metrics?.record(record.event, record.attributes);
110
+ },
111
+ onStatus: (status) => {
112
+ if (active) options.onSinkStatus?.(statusFromTelemetry(status));
113
+ }
114
+ });
115
+ }
116
+ if (active) options.onSinkStatus?.(statusFromTelemetry(telemetry.status()));
117
+ return telemetry;
118
+ };
119
+ const waitForSession = async (ctx) => {
120
+ const current = sessionReadiness;
121
+ if (!current) return;
122
+ if (current.sessionManager !== ctx.sessionManager) throw new Error("Log readiness belongs to a stale Pi session.");
123
+ await current.operation;
124
+ if (!active || current !== sessionReadiness) throw new Error("Log readiness belongs to a stale extension generation.");
125
+ };
126
+ const enqueueForSession = (ctx, operation) => {
127
+ const expected = sessionReadiness;
128
+ const run = async () => {
129
+ if (expected) {
130
+ if (!await expected.operation.then(() => true, () => false) || !active || expected !== sessionReadiness || expected.sessionManager !== ctx.sessionManager) return;
131
+ } else if (!active) return;
132
+ await operation();
133
+ };
134
+ if (!splitReadiness) return run();
135
+ enqueue(run);
136
+ };
137
+ return {
138
+ events: {
139
+ session_start: (event, ctx) => {
140
+ if (!active) return void 0;
141
+ const ownGeneration = ++sessionGeneration;
142
+ toolStartedAt.clear();
143
+ turnStartedAt.clear();
144
+ agentStartedAt = void 0;
145
+ const initialize = async (signal) => {
146
+ signal?.throwIfAborted();
147
+ getTelemetry(ctx);
148
+ await emit("info", "pi.session.started", {
149
+ ...contextAttributes(ctx),
150
+ "pi.session.reason": event.reason,
151
+ "pi.session.previous": event.previousSessionFile !== void 0
152
+ });
153
+ signal?.throwIfAborted();
154
+ };
155
+ const coordinator = splitReadiness ? (0, _agimon_ai_doompi_core_readiness.readDoomReadinessCoordinator)(cordis) : void 0;
156
+ if (!coordinator) return initialize();
157
+ const previous = sessionReadiness;
158
+ const operation = (async () => {
159
+ if (previous?.coordinator === coordinator) await previous.operation.catch(() => void 0);
160
+ if (!active || ownGeneration !== sessionGeneration) return;
161
+ await coordinator.start(require_telemetryEnabled.PACKAGE_NAME, `${ctx.sessionManager.getSessionId()}:${ownGeneration}`, async (signal) => {
162
+ await initialize(signal);
163
+ return { value: void 0 };
164
+ }).wait();
165
+ })();
166
+ operation.catch(() => void 0);
167
+ sessionReadiness = {
168
+ sessionManager: ctx.sessionManager,
169
+ coordinator,
170
+ operation
171
+ };
172
+ },
173
+ before_agent_start: (event, ctx) => {
174
+ if (!active) return;
175
+ return enqueueForSession(ctx, async () => {
176
+ getTelemetry(ctx);
177
+ await emit("info", "pi.user_prompt", {
178
+ ...contextAttributes(ctx),
179
+ "pi.user_message.length": event.prompt.length,
180
+ "pi.user_message.image_count": event.images?.length ?? 0
181
+ });
182
+ });
183
+ },
184
+ agent_start: (_event, ctx) => {
185
+ if (!active) return;
186
+ return enqueueForSession(ctx, async () => {
187
+ agentStartedAt = Date.now();
188
+ getTelemetry(ctx);
189
+ await emit("info", "pi.agent.started", contextAttributes(ctx));
190
+ });
191
+ },
192
+ turn_start: (event, ctx) => {
193
+ if (!active) return;
194
+ turnStartedAt.set(event.turnIndex, Date.now());
195
+ return enqueueForSession(ctx, async () => {
196
+ getTelemetry(ctx);
197
+ await emit("debug", "pi.turn.started", {
198
+ ...contextAttributes(ctx),
199
+ "pi.turn.index": event.turnIndex
200
+ });
201
+ });
202
+ },
203
+ turn_end: (event, ctx) => {
204
+ if (!active) return;
205
+ const turnStart = turnStartedAt.get(event.turnIndex);
206
+ turnStartedAt.delete(event.turnIndex);
207
+ const turnDurationMs = turnStart === void 0 ? void 0 : Date.now() - turnStart;
208
+ return enqueueForSession(ctx, async () => {
209
+ getTelemetry(ctx);
210
+ const usage = usageAttributes(event.message);
211
+ await emit("info", "pi.turn.finished", {
212
+ ...contextAttributes(ctx),
213
+ "pi.turn.index": event.turnIndex,
214
+ "pi.tool_result.count": event.toolResults.length,
215
+ ...turnDurationMs === void 0 ? {} : { "pi.turn.duration_ms": turnDurationMs },
216
+ ...usage
217
+ });
218
+ if (event.message.role === "assistant" && require_telemetryEnabled.FAILURE_STOP_REASONS.includes(event.message.stopReason)) await emit(event.message.stopReason === "aborted" ? "warn" : "error", "pi.turn.failed", {
219
+ ...contextAttributes(ctx),
220
+ "pi.turn.index": event.turnIndex,
221
+ ...failureAttributes(event.message),
222
+ ...usage
223
+ });
224
+ if (!usage) return;
225
+ for (const result of event.toolResults) await emit("debug", "pi.tool_token_sample", {
226
+ ...contextAttributes(ctx),
227
+ ...usage,
228
+ "tool.name": result.toolName,
229
+ token_attribution: "toolCallTurn"
230
+ });
231
+ });
232
+ },
233
+ tool_execution_start: (event, ctx) => {
234
+ if (!active) return;
235
+ return enqueueForSession(ctx, async () => {
236
+ toolStartedAt.set(event.toolCallId, Date.now());
237
+ getTelemetry(ctx);
238
+ await emit("debug", "pi.tool_call", {
239
+ ...contextAttributes(ctx),
240
+ "tool.name": event.toolName,
241
+ "tool.call.id": event.toolCallId
242
+ });
243
+ });
244
+ },
245
+ tool_execution_end: (event, ctx) => {
246
+ if (!active) return;
247
+ return enqueueForSession(ctx, async () => {
248
+ const startedAt = toolStartedAt.get(event.toolCallId);
249
+ toolStartedAt.delete(event.toolCallId);
250
+ getTelemetry(ctx);
251
+ await emit("info", "pi.tool_result", {
252
+ ...contextAttributes(ctx),
253
+ success: !event.isError,
254
+ "tool.name": event.toolName,
255
+ "tool.call.id": event.toolCallId,
256
+ "tool.result.error": event.isError,
257
+ ...startedAt === void 0 ? {} : { "tool.duration_ms": Date.now() - startedAt }
258
+ });
259
+ });
260
+ },
261
+ after_provider_response: (event, ctx) => {
262
+ if (!active) return;
263
+ return enqueueForSession(ctx, async () => {
264
+ getTelemetry(ctx);
265
+ const attributes = {
266
+ ...contextAttributes(ctx),
267
+ "http.response.status_code": event.status
268
+ };
269
+ if (event.status >= 400) await emit("error", "pi.api_error", attributes);
270
+ else await emit("debug", "pi.api_response", attributes);
271
+ });
272
+ },
273
+ model_select: (event, ctx) => {
274
+ if (!active) return;
275
+ return enqueueForSession(ctx, async () => {
276
+ getTelemetry(ctx);
277
+ await emit("info", "pi.model.selected", {
278
+ ...contextAttributes(ctx),
279
+ "pi.model.source": event.source,
280
+ "gen_ai.provider.name": event.model.provider,
281
+ "gen_ai.request.model": event.model.id
282
+ });
283
+ });
284
+ },
285
+ agent_end: (event, ctx) => {
286
+ if (!active) return;
287
+ const generation = sessionGeneration;
288
+ return enqueueForSession(ctx, async () => {
289
+ getTelemetry(ctx);
290
+ await emit("info", "pi.agent.finished", {
291
+ ...contextAttributes(ctx),
292
+ "pi.message.count": event.messages.length,
293
+ ...agentStartedAt === void 0 ? {} : { "pi.agent.duration_ms": Date.now() - agentStartedAt }
294
+ });
295
+ if (!active || generation !== sessionGeneration) return;
296
+ agentStartedAt = void 0;
297
+ await telemetry?.flush();
298
+ });
299
+ },
300
+ agent_settled: (_event, ctx) => {
301
+ if (!active) return;
302
+ return enqueueForSession(ctx, async () => {
303
+ getTelemetry(ctx);
304
+ await emit("debug", "pi.agent.settled", contextAttributes(ctx));
305
+ });
306
+ }
307
+ },
308
+ onDispose: async () => {
309
+ active = false;
310
+ sessionGeneration += 1;
311
+ sessionReadiness = void 0;
312
+ toolStartedAt.clear();
313
+ turnStartedAt.clear();
314
+ agentStartedAt = void 0;
315
+ const ownedTelemetry = telemetry;
316
+ telemetry = void 0;
317
+ telemetrySessionId = void 0;
318
+ await ownedTelemetry?.shutdown();
319
+ },
320
+ waitForSession,
321
+ async finishSession(reason, ctx) {
322
+ if (!active) return;
323
+ await backgroundQueue;
324
+ const current = sessionReadiness;
325
+ if (current) await current.operation.catch(() => void 0);
326
+ if (!active) return;
327
+ if (current && current !== sessionReadiness) return;
328
+ if (!telemetry) return;
329
+ getTelemetry(ctx);
330
+ await emit("info", "pi.session.finished", {
331
+ ...contextAttributes(ctx),
332
+ "pi.session.reason": reason
333
+ });
334
+ }
335
+ };
336
+ }
337
+ //#endregion
338
+ //#region src/extensions/workspaces/sessions/(backend)/_lib/piRoot.ts
339
+ const createLogPiRoot = ({ context, options }) => {
340
+ let telemetry;
341
+ const view = require_logRuntime.createLogViewRuntime((ctx) => telemetry.waitForSession(ctx), options);
342
+ telemetry = createPiTelemetryRuntime(context, view.telemetryOptions, true);
343
+ let shutdown;
344
+ return {
345
+ value: {
346
+ telemetry,
347
+ view,
348
+ sessionShutdown: (event, ctx) => shutdown ??= telemetry.finishSession(event.reason, ctx)
349
+ },
350
+ services: view.services,
351
+ async onDispose() {
352
+ await view.onDispose();
353
+ await telemetry.onDispose();
354
+ }
355
+ };
356
+ };
357
+ //#endregion
358
+ //#region src/extensions/workspaces/sessions/(backend)/root.cli.ts
359
+ var root_cli_default = (0, _agimon_ai_doompi_core_extensionFile.defineRoot)(createLogPiRoot);
360
+ //#endregion
361
+ //#region src/extensions/workspaces/sessions/(backend)/command/log-metrics.cli.ts
362
+ var log_metrics_cli_default = (0, _agimon_ai_doompi_core_extensionFile.defineRoutedContribution)((context) => [context.root.view.commands[0]], { cardinality: "many" });
363
+ //#endregion
364
+ //#region src/extensions/workspaces/sessions/(backend)/hook/after-provider-response.cli.ts
365
+ var after_provider_response_cli_default = (0, _agimon_ai_doompi_core_extensionFile.defineCliHook)((context) => context.root.telemetry.events.after_provider_response);
366
+ //#endregion
367
+ //#region src/extensions/workspaces/sessions/(backend)/hook/agent-end.cli.ts
368
+ var agent_end_cli_default = (0, _agimon_ai_doompi_core_extensionFile.defineCliHook)((context) => context.root.telemetry.events.agent_end);
369
+ //#endregion
370
+ //#region src/extensions/workspaces/sessions/(backend)/hook/agent-settled.cli.ts
371
+ var agent_settled_cli_default = (0, _agimon_ai_doompi_core_extensionFile.defineCliHook)((context) => context.root.telemetry.events.agent_settled);
372
+ //#endregion
373
+ //#region src/extensions/workspaces/sessions/(backend)/hook/agent-start.cli.ts
374
+ var agent_start_cli_default = (0, _agimon_ai_doompi_core_extensionFile.defineCliHook)((context) => context.root.telemetry.events.agent_start);
375
+ //#endregion
376
+ //#region src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.ts
377
+ var before_agent_start_cli_default = (0, _agimon_ai_doompi_core_extensionFile.defineCliHook)((context) => context.root.telemetry.events.before_agent_start);
378
+ //#endregion
379
+ //#region src/extensions/workspaces/sessions/(backend)/hook/model-select.cli.ts
380
+ var model_select_cli_default = (0, _agimon_ai_doompi_core_extensionFile.defineCliHook)((context) => context.root.telemetry.events.model_select);
381
+ //#endregion
382
+ //#region src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.cli.ts
383
+ var session_shutdown_cli_default = (0, _agimon_ai_doompi_core_extensionFile.defineCliHook)((context) => context.root.sessionShutdown);
384
+ //#endregion
385
+ //#region src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.ts
386
+ var session_start_cli_default = (0, _agimon_ai_doompi_core_extensionFile.defineCliHook)((context) => context.root.telemetry.events.session_start);
387
+ //#endregion
388
+ //#region src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.cli.ts
389
+ var tool_execution_end_cli_default = (0, _agimon_ai_doompi_core_extensionFile.defineCliHook)((context) => context.root.telemetry.events.tool_execution_end);
390
+ //#endregion
391
+ //#region src/extensions/workspaces/sessions/(backend)/hook/tool-execution-start.cli.ts
392
+ var tool_execution_start_cli_default = (0, _agimon_ai_doompi_core_extensionFile.defineCliHook)((context) => context.root.telemetry.events.tool_execution_start);
393
+ //#endregion
394
+ //#region src/extensions/workspaces/sessions/(backend)/hook/turn-end.cli.ts
395
+ var turn_end_cli_default = (0, _agimon_ai_doompi_core_extensionFile.defineCliHook)((context) => context.root.telemetry.events.turn_end);
396
+ //#endregion
397
+ //#region src/extensions/workspaces/sessions/(backend)/hook/turn-start.cli.ts
398
+ var turn_start_cli_default = (0, _agimon_ai_doompi_core_extensionFile.defineCliHook)((context) => context.root.telemetry.events.turn_start);
399
+ //#endregion
21
400
  //#region generated/pi.ts
22
401
  const at = (value, context) => typeof value === "function" ? value(context) : value;
23
402
  const many = (value, context) => {
24
403
  const resolved = typeof value === "function" ? value(context) : value;
25
404
  return Array.isArray(resolved) ? resolved : [resolved];
26
405
  };
27
- const extension = (0, _agimon_ai_doompi_core_pi_extension.definePiExtension)("@agimon-ai/doompi-log", async (context) => {
28
- const scopeSession = await require_root_cli.default(context);
406
+ const extension = (0, _agimon_ai_doompi_core_piExtension.definePiExtension)("@agimon-ai/doompi-log", async (context) => {
407
+ const scopeSession = await root_cli_default(context);
29
408
  const contextSession = {
30
409
  ...context,
31
410
  root: scopeSession.value
32
411
  };
33
412
  return {
34
- ...(0, _agimon_ai_doompi_core_extension_file.composeRootHooks)(scopeSession),
413
+ ...(0, _agimon_ai_doompi_core_extensionFile.composeRootHooks)(scopeSession),
35
414
  get commands() {
36
- return [...many(require_log_metrics_cli.default, contextSession)];
415
+ return [...many(log_metrics_cli_default, contextSession)];
37
416
  },
38
417
  events: {
39
- after_provider_response: at(require_after_provider_response_cli.default, contextSession),
40
- agent_end: at(require_agent_end_cli.default, contextSession),
41
- agent_settled: at(require_agent_settled_cli.default, contextSession),
42
- agent_start: at(require_agent_start_cli.default, contextSession),
43
- before_agent_start: at(require_before_agent_start_cli.default, contextSession),
44
- model_select: at(require_model_select_cli.default, contextSession),
45
- session_shutdown: at(require_session_shutdown_cli.default, contextSession),
46
- session_start: at(require_session_start_cli.default, contextSession),
47
- tool_execution_end: at(require_tool_execution_end_cli.default, contextSession),
48
- tool_execution_start: at(require_tool_execution_start_cli.default, contextSession),
49
- turn_end: at(require_turn_end_cli.default, contextSession),
50
- turn_start: at(require_turn_start_cli.default, contextSession)
418
+ after_provider_response: at(after_provider_response_cli_default, contextSession),
419
+ agent_end: at(agent_end_cli_default, contextSession),
420
+ agent_settled: at(agent_settled_cli_default, contextSession),
421
+ agent_start: at(agent_start_cli_default, contextSession),
422
+ before_agent_start: at(before_agent_start_cli_default, contextSession),
423
+ model_select: at(model_select_cli_default, contextSession),
424
+ session_shutdown: at(session_shutdown_cli_default, contextSession),
425
+ session_start: at(session_start_cli_default, contextSession),
426
+ tool_execution_end: at(tool_execution_end_cli_default, contextSession),
427
+ tool_execution_start: at(tool_execution_start_cli_default, contextSession),
428
+ turn_end: at(turn_end_cli_default, contextSession),
429
+ turn_start: at(turn_start_cli_default, contextSession)
51
430
  },
52
431
  services: [...scopeSession.services ?? []]
53
432
  };