@geminixiang/mikan 1.0.0-beta.7 → 1.0.0-beta.71

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 (856) hide show
  1. package/CHANGELOG.md +1052 -0
  2. package/README.md +98 -38
  3. package/dist/adapters/commands/admin.d.ts.map +1 -0
  4. package/dist/{commands → adapters/commands}/admin.js +11 -8
  5. package/dist/adapters/commands/admin.js.map +1 -0
  6. package/dist/{commands → adapters/commands}/auto-reply.d.ts +0 -3
  7. package/dist/adapters/commands/auto-reply.d.ts.map +1 -0
  8. package/dist/adapters/commands/auto-reply.js +47 -0
  9. package/dist/adapters/commands/auto-reply.js.map +1 -0
  10. package/dist/adapters/commands/login.d.ts +6 -0
  11. package/dist/adapters/commands/login.d.ts.map +1 -0
  12. package/dist/adapters/commands/login.js +166 -0
  13. package/dist/adapters/commands/login.js.map +1 -0
  14. package/dist/adapters/commands/manifest.d.ts +37 -0
  15. package/dist/adapters/commands/manifest.d.ts.map +1 -0
  16. package/dist/adapters/commands/manifest.js +155 -0
  17. package/dist/adapters/commands/manifest.js.map +1 -0
  18. package/dist/adapters/commands/model.d.ts +15 -0
  19. package/dist/adapters/commands/model.d.ts.map +1 -0
  20. package/dist/adapters/commands/model.js +153 -0
  21. package/dist/adapters/commands/model.js.map +1 -0
  22. package/dist/adapters/commands/new.d.ts.map +1 -0
  23. package/dist/adapters/commands/new.js +41 -0
  24. package/dist/adapters/commands/new.js.map +1 -0
  25. package/dist/adapters/commands/registry.d.ts +5 -0
  26. package/dist/adapters/commands/registry.d.ts.map +1 -0
  27. package/dist/adapters/commands/registry.js +43 -0
  28. package/dist/adapters/commands/registry.js.map +1 -0
  29. package/dist/adapters/commands/sandbox.d.ts.map +1 -0
  30. package/dist/adapters/commands/sandbox.js +125 -0
  31. package/dist/adapters/commands/sandbox.js.map +1 -0
  32. package/dist/adapters/commands/session-view.d.ts.map +1 -0
  33. package/dist/{commands → adapters/commands}/session-view.js +23 -16
  34. package/dist/adapters/commands/session-view.js.map +1 -0
  35. package/dist/adapters/commands/types.d.ts +145 -0
  36. package/dist/adapters/commands/types.d.ts.map +1 -0
  37. package/dist/adapters/commands/types.js.map +1 -0
  38. package/dist/adapters/commands/utils.d.ts +14 -0
  39. package/dist/adapters/commands/utils.d.ts.map +1 -0
  40. package/dist/{commands → adapters/commands}/utils.js +18 -1
  41. package/dist/adapters/commands/utils.js.map +1 -0
  42. package/dist/adapters/discord/bot.d.ts +11 -8
  43. package/dist/adapters/discord/bot.d.ts.map +1 -1
  44. package/dist/adapters/discord/bot.js +223 -256
  45. package/dist/adapters/discord/bot.js.map +1 -1
  46. package/dist/adapters/discord/components.d.ts +28 -0
  47. package/dist/adapters/discord/components.d.ts.map +1 -0
  48. package/dist/adapters/discord/components.js +32 -0
  49. package/dist/adapters/discord/components.js.map +1 -0
  50. package/dist/adapters/discord/context.d.ts +2 -6
  51. package/dist/adapters/discord/context.d.ts.map +1 -1
  52. package/dist/adapters/discord/context.js +64 -218
  53. package/dist/adapters/discord/context.js.map +1 -1
  54. package/dist/adapters/discord/format.d.ts +3 -0
  55. package/dist/adapters/discord/format.d.ts.map +1 -0
  56. package/dist/adapters/discord/format.js +84 -0
  57. package/dist/adapters/discord/format.js.map +1 -0
  58. package/dist/adapters/discord/types.d.ts +8 -1
  59. package/dist/adapters/discord/types.d.ts.map +1 -1
  60. package/dist/adapters/discord/types.js.map +1 -1
  61. package/dist/adapters/github/bot.d.ts +102 -0
  62. package/dist/adapters/github/bot.d.ts.map +1 -0
  63. package/dist/adapters/github/bot.js +720 -0
  64. package/dist/adapters/github/bot.js.map +1 -0
  65. package/dist/adapters/github/client.d.ts +122 -0
  66. package/dist/adapters/github/client.d.ts.map +1 -0
  67. package/dist/adapters/github/client.js +301 -0
  68. package/dist/adapters/github/client.js.map +1 -0
  69. package/dist/adapters/github/context.d.ts +5 -0
  70. package/dist/adapters/github/context.d.ts.map +1 -0
  71. package/dist/adapters/github/context.js +101 -0
  72. package/dist/adapters/github/context.js.map +1 -0
  73. package/dist/adapters/github/github-ops.d.ts +78 -0
  74. package/dist/adapters/github/github-ops.d.ts.map +1 -0
  75. package/dist/adapters/github/github-ops.js +337 -0
  76. package/dist/adapters/github/github-ops.js.map +1 -0
  77. package/dist/adapters/github/ids.d.ts +34 -0
  78. package/dist/adapters/github/ids.d.ts.map +1 -0
  79. package/dist/adapters/github/ids.js +57 -0
  80. package/dist/adapters/github/ids.js.map +1 -0
  81. package/dist/adapters/github/repo.d.ts +33 -0
  82. package/dist/adapters/github/repo.d.ts.map +1 -0
  83. package/dist/adapters/github/repo.js +141 -0
  84. package/dist/adapters/github/repo.js.map +1 -0
  85. package/dist/adapters/github/tool-pack.d.ts +14 -0
  86. package/dist/adapters/github/tool-pack.d.ts.map +1 -0
  87. package/dist/adapters/github/tool-pack.js +55 -0
  88. package/dist/adapters/github/tool-pack.js.map +1 -0
  89. package/dist/adapters/github/tools/checks.d.ts +18 -0
  90. package/dist/adapters/github/tools/checks.d.ts.map +1 -0
  91. package/dist/adapters/github/tools/checks.js +86 -0
  92. package/dist/adapters/github/tools/checks.js.map +1 -0
  93. package/dist/adapters/github/tools/issue.d.ts +21 -0
  94. package/dist/adapters/github/tools/issue.d.ts.map +1 -0
  95. package/dist/adapters/github/tools/issue.js +48 -0
  96. package/dist/adapters/github/tools/issue.js.map +1 -0
  97. package/dist/adapters/github/tools/pr.d.ts +22 -0
  98. package/dist/adapters/github/tools/pr.d.ts.map +1 -0
  99. package/dist/adapters/github/tools/pr.js +48 -0
  100. package/dist/adapters/github/tools/pr.js.map +1 -0
  101. package/dist/adapters/github/tools/read.d.ts +21 -0
  102. package/dist/adapters/github/tools/read.d.ts.map +1 -0
  103. package/dist/adapters/github/tools/read.js +141 -0
  104. package/dist/adapters/github/tools/read.js.map +1 -0
  105. package/dist/adapters/github/tools/review-reply.d.ts +17 -0
  106. package/dist/adapters/github/tools/review-reply.d.ts.map +1 -0
  107. package/dist/adapters/github/tools/review-reply.js +38 -0
  108. package/dist/adapters/github/tools/review-reply.js.map +1 -0
  109. package/dist/adapters/github/tools/sync.d.ts +17 -0
  110. package/dist/adapters/github/tools/sync.d.ts.map +1 -0
  111. package/dist/adapters/github/tools/sync.js +34 -0
  112. package/dist/adapters/github/tools/sync.js.map +1 -0
  113. package/dist/adapters/github/types.d.ts +345 -0
  114. package/dist/adapters/github/types.d.ts.map +1 -0
  115. package/dist/adapters/github/types.js.map +1 -0
  116. package/dist/adapters/github/webhook.d.ts +20 -0
  117. package/dist/adapters/github/webhook.d.ts.map +1 -0
  118. package/dist/adapters/github/webhook.js +78 -0
  119. package/dist/adapters/github/webhook.js.map +1 -0
  120. package/dist/adapters/index.d.ts +12 -0
  121. package/dist/adapters/index.d.ts.map +1 -0
  122. package/dist/adapters/index.js +19 -0
  123. package/dist/adapters/index.js.map +1 -0
  124. package/dist/adapters/intake.d.ts +17 -6
  125. package/dist/adapters/intake.d.ts.map +1 -1
  126. package/dist/adapters/intake.js +96 -27
  127. package/dist/adapters/intake.js.map +1 -1
  128. package/dist/adapters/markdown-tables.d.ts +19 -0
  129. package/dist/adapters/markdown-tables.d.ts.map +1 -0
  130. package/dist/adapters/markdown-tables.js +152 -0
  131. package/dist/adapters/markdown-tables.js.map +1 -0
  132. package/dist/{platform-messages.d.ts → adapters/messages.d.ts} +3 -2
  133. package/dist/adapters/messages.d.ts.map +1 -0
  134. package/dist/{platform-messages.js → adapters/messages.js} +4 -1
  135. package/dist/adapters/messages.js.map +1 -0
  136. package/dist/adapters/progressive-renderer.d.ts +7 -0
  137. package/dist/adapters/progressive-renderer.d.ts.map +1 -0
  138. package/dist/adapters/progressive-renderer.js +443 -0
  139. package/dist/adapters/progressive-renderer.js.map +1 -0
  140. package/dist/adapters/shared.d.ts +37 -11
  141. package/dist/adapters/shared.d.ts.map +1 -1
  142. package/dist/adapters/shared.js +130 -24
  143. package/dist/adapters/shared.js.map +1 -1
  144. package/dist/adapters/slack/assistant.d.ts +73 -0
  145. package/dist/adapters/slack/assistant.d.ts.map +1 -0
  146. package/dist/adapters/slack/assistant.js +205 -0
  147. package/dist/adapters/slack/assistant.js.map +1 -0
  148. package/dist/adapters/slack/auto-reply-context.d.ts +21 -0
  149. package/dist/adapters/slack/auto-reply-context.d.ts.map +1 -0
  150. package/dist/adapters/slack/auto-reply-context.js +28 -0
  151. package/dist/adapters/slack/auto-reply-context.js.map +1 -0
  152. package/dist/adapters/slack/blocks.d.ts +14 -0
  153. package/dist/adapters/slack/blocks.d.ts.map +1 -1
  154. package/dist/adapters/slack/blocks.js +104 -148
  155. package/dist/adapters/slack/blocks.js.map +1 -1
  156. package/dist/adapters/slack/bot.d.ts +154 -21
  157. package/dist/adapters/slack/bot.d.ts.map +1 -1
  158. package/dist/adapters/slack/bot.js +1037 -484
  159. package/dist/adapters/slack/bot.js.map +1 -1
  160. package/dist/adapters/slack/context.d.ts +2 -6
  161. package/dist/adapters/slack/context.d.ts.map +1 -1
  162. package/dist/adapters/slack/context.js +11 -17
  163. package/dist/adapters/slack/context.js.map +1 -1
  164. package/dist/adapters/slack/jev-context.d.ts +30 -0
  165. package/dist/adapters/slack/jev-context.d.ts.map +1 -0
  166. package/dist/adapters/slack/jev-context.js +67 -0
  167. package/dist/adapters/slack/jev-context.js.map +1 -0
  168. package/dist/adapters/slack/markdown.d.ts +3 -0
  169. package/dist/adapters/slack/markdown.d.ts.map +1 -0
  170. package/dist/adapters/slack/markdown.js +48 -0
  171. package/dist/adapters/slack/markdown.js.map +1 -0
  172. package/dist/adapters/slack/persona.d.ts +15 -0
  173. package/dist/adapters/slack/persona.d.ts.map +1 -0
  174. package/dist/adapters/slack/persona.js +22 -0
  175. package/dist/adapters/slack/persona.js.map +1 -0
  176. package/dist/adapters/slack/response-lifecycle.d.ts +1 -1
  177. package/dist/adapters/slack/response-lifecycle.d.ts.map +1 -1
  178. package/dist/adapters/slack/response-lifecycle.js +261 -345
  179. package/dist/adapters/slack/response-lifecycle.js.map +1 -1
  180. package/dist/adapters/slack/session.d.ts.map +1 -1
  181. package/dist/adapters/slack/session.js +7 -11
  182. package/dist/adapters/slack/session.js.map +1 -1
  183. package/dist/adapters/slack/stream-limits.d.ts +35 -0
  184. package/dist/adapters/slack/stream-limits.d.ts.map +1 -0
  185. package/dist/adapters/slack/stream-limits.js +56 -0
  186. package/dist/adapters/slack/stream-limits.js.map +1 -0
  187. package/dist/adapters/slack/task-intent.d.ts +32 -0
  188. package/dist/adapters/slack/task-intent.d.ts.map +1 -0
  189. package/dist/adapters/slack/task-intent.js +72 -0
  190. package/dist/adapters/slack/task-intent.js.map +1 -0
  191. package/dist/adapters/slack/task-status.d.ts +7 -0
  192. package/dist/adapters/slack/task-status.d.ts.map +1 -0
  193. package/dist/adapters/slack/task-status.js +107 -0
  194. package/dist/adapters/slack/task-status.js.map +1 -0
  195. package/dist/adapters/slack/tool-pack.d.ts +11 -0
  196. package/dist/adapters/slack/tool-pack.d.ts.map +1 -0
  197. package/dist/adapters/slack/tool-pack.js +45 -0
  198. package/dist/adapters/slack/tool-pack.js.map +1 -0
  199. package/dist/adapters/slack/tools/blockkit.d.ts +14 -0
  200. package/dist/adapters/slack/tools/blockkit.d.ts.map +1 -0
  201. package/dist/adapters/slack/tools/blockkit.js +106 -0
  202. package/dist/adapters/slack/tools/blockkit.js.map +1 -0
  203. package/dist/adapters/slack/types.d.ts +73 -2
  204. package/dist/adapters/slack/types.d.ts.map +1 -1
  205. package/dist/adapters/slack/types.js.map +1 -1
  206. package/dist/adapters/slack/update-diagnostics.d.ts +14 -0
  207. package/dist/adapters/slack/update-diagnostics.d.ts.map +1 -0
  208. package/dist/adapters/slack/update-diagnostics.js +134 -0
  209. package/dist/adapters/slack/update-diagnostics.js.map +1 -0
  210. package/dist/adapters/telegram/bot.d.ts +10 -9
  211. package/dist/adapters/telegram/bot.d.ts.map +1 -1
  212. package/dist/adapters/telegram/bot.js +133 -202
  213. package/dist/adapters/telegram/bot.js.map +1 -1
  214. package/dist/adapters/telegram/context.d.ts +2 -6
  215. package/dist/adapters/telegram/context.d.ts.map +1 -1
  216. package/dist/adapters/telegram/context.js +53 -190
  217. package/dist/adapters/telegram/context.js.map +1 -1
  218. package/dist/adapters/telegram/types.d.ts +1 -1
  219. package/dist/adapters/telegram/types.d.ts.map +1 -1
  220. package/dist/adapters/telegram/types.js.map +1 -1
  221. package/dist/adapters/types.d.ts +144 -13
  222. package/dist/adapters/types.d.ts.map +1 -1
  223. package/dist/adapters/types.js.map +1 -1
  224. package/dist/adapters/web/admin/portal.d.ts +44 -0
  225. package/dist/adapters/web/admin/portal.d.ts.map +1 -0
  226. package/dist/adapters/web/admin/portal.js +3207 -0
  227. package/dist/adapters/web/admin/portal.js.map +1 -0
  228. package/dist/{web → adapters/web}/admin/provider-models.d.ts +1 -1
  229. package/dist/adapters/web/admin/provider-models.d.ts.map +1 -0
  230. package/dist/{web → adapters/web}/admin/provider-models.js +1 -1
  231. package/dist/adapters/web/admin/provider-models.js.map +1 -0
  232. package/dist/adapters/web/admin/types.d.ts +53 -0
  233. package/dist/adapters/web/admin/types.d.ts.map +1 -0
  234. package/dist/adapters/web/admin/types.js.map +1 -0
  235. package/dist/adapters/web/login/oauth.d.ts +5 -0
  236. package/dist/adapters/web/login/oauth.d.ts.map +1 -0
  237. package/dist/{web → adapters/web}/login/oauth.js +50 -85
  238. package/dist/adapters/web/login/oauth.js.map +1 -0
  239. package/dist/{web → adapters/web}/login/portal.d.ts +9 -3
  240. package/dist/adapters/web/login/portal.d.ts.map +1 -0
  241. package/dist/{web → adapters/web}/login/portal.js +161 -119
  242. package/dist/adapters/web/login/portal.js.map +1 -0
  243. package/dist/{web → adapters/web}/login/types.d.ts +1 -12
  244. package/dist/adapters/web/login/types.d.ts.map +1 -0
  245. package/dist/adapters/web/login/types.js.map +1 -0
  246. package/dist/adapters/web/portal-shell.d.ts +22 -0
  247. package/dist/adapters/web/portal-shell.d.ts.map +1 -0
  248. package/dist/{portal-shell.js → adapters/web/portal-shell.js} +78 -2
  249. package/dist/adapters/web/portal-shell.js.map +1 -0
  250. package/dist/{web → adapters/web}/server.d.ts +14 -8
  251. package/dist/adapters/web/server.d.ts.map +1 -0
  252. package/dist/{web → adapters/web}/server.js +14 -7
  253. package/dist/adapters/web/server.js.map +1 -0
  254. package/dist/adapters/web/session-view/portal.d.ts +20 -0
  255. package/dist/adapters/web/session-view/portal.d.ts.map +1 -0
  256. package/dist/{web → adapters/web}/session-view/portal.js +633 -162
  257. package/dist/adapters/web/session-view/portal.js.map +1 -0
  258. package/dist/{web → adapters/web}/session-view/types.d.ts +11 -6
  259. package/dist/adapters/web/session-view/types.d.ts.map +1 -0
  260. package/dist/adapters/web/session-view/types.js.map +1 -0
  261. package/dist/adapters/web/token-store.d.ts.map +1 -0
  262. package/dist/{web → adapters/web}/token-store.js +1 -1
  263. package/dist/adapters/web/token-store.js.map +1 -0
  264. package/dist/adapters/web/types.d.ts.map +1 -0
  265. package/dist/adapters/web/types.js.map +1 -0
  266. package/dist/cli/arg-grammar.d.ts +11 -0
  267. package/dist/cli/arg-grammar.d.ts.map +1 -0
  268. package/dist/cli/arg-grammar.js +50 -0
  269. package/dist/cli/arg-grammar.js.map +1 -0
  270. package/dist/cli/boot.d.ts +5 -0
  271. package/dist/cli/boot.d.ts.map +1 -0
  272. package/dist/cli/boot.js +90 -0
  273. package/dist/cli/boot.js.map +1 -0
  274. package/dist/cli/download.d.ts.map +1 -0
  275. package/dist/cli/download.js +88 -0
  276. package/dist/cli/download.js.map +1 -0
  277. package/dist/cli/office.d.ts +2 -0
  278. package/dist/cli/office.d.ts.map +1 -0
  279. package/dist/cli/office.js +181 -0
  280. package/dist/cli/office.js.map +1 -0
  281. package/dist/cli/onboard.d.ts +10 -0
  282. package/dist/cli/onboard.d.ts.map +1 -0
  283. package/dist/cli/onboard.js +225 -0
  284. package/dist/cli/onboard.js.map +1 -0
  285. package/dist/cli/process-lifecycle.d.ts +19 -0
  286. package/dist/cli/process-lifecycle.d.ts.map +1 -0
  287. package/dist/cli/process-lifecycle.js +67 -0
  288. package/dist/cli/process-lifecycle.js.map +1 -0
  289. package/dist/cli/sessions.d.ts +2 -0
  290. package/dist/cli/sessions.d.ts.map +1 -0
  291. package/dist/cli/sessions.js +88 -0
  292. package/dist/cli/sessions.js.map +1 -0
  293. package/dist/cli/types.d.ts +25 -0
  294. package/dist/cli/types.d.ts.map +1 -0
  295. package/dist/cli/types.js.map +1 -0
  296. package/dist/dream/index.d.ts +20 -0
  297. package/dist/dream/index.d.ts.map +1 -0
  298. package/dist/dream/index.js +264 -0
  299. package/dist/dream/index.js.map +1 -0
  300. package/dist/dream/types.d.ts +30 -0
  301. package/dist/dream/types.d.ts.map +1 -0
  302. package/dist/dream/types.js +2 -0
  303. package/dist/dream/types.js.map +1 -0
  304. package/dist/env-manifest.d.ts +38 -0
  305. package/dist/env-manifest.d.ts.map +1 -0
  306. package/dist/env-manifest.js +260 -0
  307. package/dist/env-manifest.js.map +1 -0
  308. package/dist/events/index.d.ts +172 -0
  309. package/dist/events/index.d.ts.map +1 -0
  310. package/dist/events/index.js +340 -0
  311. package/dist/events/index.js.map +1 -0
  312. package/dist/events/scheduler.d.ts +34 -0
  313. package/dist/events/scheduler.d.ts.map +1 -0
  314. package/dist/events/scheduler.js +231 -0
  315. package/dist/events/scheduler.js.map +1 -0
  316. package/dist/file-guards.d.ts +26 -0
  317. package/dist/file-guards.d.ts.map +1 -0
  318. package/dist/file-guards.js +133 -0
  319. package/dist/file-guards.js.map +1 -0
  320. package/dist/harness/execution-env.d.ts +19 -0
  321. package/dist/harness/execution-env.d.ts.map +1 -0
  322. package/dist/harness/execution-env.js +262 -0
  323. package/dist/harness/execution-env.js.map +1 -0
  324. package/dist/harness/execution-resolver.d.ts +25 -0
  325. package/dist/harness/execution-resolver.d.ts.map +1 -0
  326. package/dist/harness/execution-resolver.js +156 -0
  327. package/dist/harness/execution-resolver.js.map +1 -0
  328. package/dist/harness/index.d.ts +18 -13
  329. package/dist/harness/index.d.ts.map +1 -1
  330. package/dist/harness/index.js +11 -11
  331. package/dist/harness/index.js.map +1 -1
  332. package/dist/harness/jev.d.ts +86 -0
  333. package/dist/harness/jev.d.ts.map +1 -0
  334. package/dist/harness/jev.js +167 -0
  335. package/dist/harness/jev.js.map +1 -0
  336. package/dist/harness/mcp.d.ts +38 -0
  337. package/dist/harness/mcp.d.ts.map +1 -0
  338. package/dist/harness/mcp.js +304 -0
  339. package/dist/harness/mcp.js.map +1 -0
  340. package/dist/harness/models.d.ts +7 -4
  341. package/dist/harness/models.d.ts.map +1 -1
  342. package/dist/harness/models.js +54 -55
  343. package/dist/harness/models.js.map +1 -1
  344. package/dist/harness/open-connector.d.ts +25 -0
  345. package/dist/harness/open-connector.d.ts.map +1 -0
  346. package/dist/harness/open-connector.js +178 -0
  347. package/dist/harness/open-connector.js.map +1 -0
  348. package/dist/harness/presenter.d.ts +31 -0
  349. package/dist/harness/presenter.d.ts.map +1 -0
  350. package/dist/harness/presenter.js +859 -0
  351. package/dist/harness/presenter.js.map +1 -0
  352. package/dist/harness/prompt.d.ts +30 -0
  353. package/dist/harness/prompt.d.ts.map +1 -0
  354. package/dist/harness/prompt.js +420 -0
  355. package/dist/harness/prompt.js.map +1 -0
  356. package/dist/harness/runner.d.ts +2 -123
  357. package/dist/harness/runner.d.ts.map +1 -1
  358. package/dist/harness/runner.js +551 -416
  359. package/dist/harness/runner.js.map +1 -1
  360. package/dist/harness/session.d.ts +122 -0
  361. package/dist/harness/session.d.ts.map +1 -0
  362. package/dist/harness/session.js +581 -0
  363. package/dist/harness/session.js.map +1 -0
  364. package/dist/harness/skills.d.ts +17 -28
  365. package/dist/harness/skills.d.ts.map +1 -1
  366. package/dist/harness/skills.js +104 -39
  367. package/dist/harness/skills.js.map +1 -1
  368. package/dist/harness/subagent-profiles.d.ts +8 -0
  369. package/dist/harness/subagent-profiles.d.ts.map +1 -0
  370. package/dist/harness/subagent-profiles.js +293 -0
  371. package/dist/harness/subagent-profiles.js.map +1 -0
  372. package/dist/harness/subagent.d.ts +64 -0
  373. package/dist/harness/subagent.d.ts.map +1 -0
  374. package/dist/harness/subagent.js +687 -0
  375. package/dist/harness/subagent.js.map +1 -0
  376. package/dist/harness/tools/attach.d.ts.map +1 -0
  377. package/dist/{adapters/slack → harness}/tools/attach.js +1 -1
  378. package/dist/harness/tools/attach.js.map +1 -0
  379. package/dist/{tools → harness/tools}/event.d.ts +4 -33
  380. package/dist/harness/tools/event.d.ts.map +1 -0
  381. package/dist/harness/tools/event.js +175 -0
  382. package/dist/harness/tools/event.js.map +1 -0
  383. package/dist/harness/tools/generate-image.d.ts +23 -0
  384. package/dist/harness/tools/generate-image.d.ts.map +1 -0
  385. package/dist/harness/tools/generate-image.js +65 -0
  386. package/dist/harness/tools/generate-image.js.map +1 -0
  387. package/dist/harness/tools/host-fn-tool.d.ts +21 -0
  388. package/dist/harness/tools/host-fn-tool.d.ts.map +1 -0
  389. package/dist/harness/tools/host-fn-tool.js +32 -0
  390. package/dist/harness/tools/host-fn-tool.js.map +1 -0
  391. package/dist/harness/tools/index.d.ts +41 -0
  392. package/dist/harness/tools/index.d.ts.map +1 -0
  393. package/dist/harness/tools/index.js +51 -0
  394. package/dist/harness/tools/index.js.map +1 -0
  395. package/dist/harness/tools/jev.d.ts +21 -0
  396. package/dist/harness/tools/jev.d.ts.map +1 -0
  397. package/dist/harness/tools/jev.js +109 -0
  398. package/dist/harness/tools/jev.js.map +1 -0
  399. package/dist/harness/tools/pi-tools.d.ts +18 -0
  400. package/dist/harness/tools/pi-tools.d.ts.map +1 -0
  401. package/dist/harness/tools/pi-tools.js +84 -0
  402. package/dist/harness/tools/pi-tools.js.map +1 -0
  403. package/dist/harness/tools/react.d.ts.map +1 -0
  404. package/dist/{tools → harness/tools}/react.js +6 -17
  405. package/dist/harness/tools/react.js.map +1 -0
  406. package/dist/{tools → harness/tools}/sandbox.d.ts +4 -4
  407. package/dist/harness/tools/sandbox.d.ts.map +1 -0
  408. package/dist/{tools → harness/tools}/sandbox.js +12 -8
  409. package/dist/harness/tools/sandbox.js.map +1 -0
  410. package/dist/harness/tools/subagent.d.ts +85 -0
  411. package/dist/harness/tools/subagent.d.ts.map +1 -0
  412. package/dist/harness/tools/subagent.js +677 -0
  413. package/dist/harness/tools/subagent.js.map +1 -0
  414. package/dist/harness/tools/task.d.ts +20 -0
  415. package/dist/harness/tools/task.d.ts.map +1 -0
  416. package/dist/harness/tools/task.js +79 -0
  417. package/dist/harness/tools/task.js.map +1 -0
  418. package/dist/harness/tools/types.d.ts +29 -0
  419. package/dist/harness/tools/types.d.ts.map +1 -0
  420. package/dist/harness/tools/types.js +2 -0
  421. package/dist/harness/tools/types.js.map +1 -0
  422. package/dist/harness/types.d.ts +384 -25
  423. package/dist/harness/types.d.ts.map +1 -1
  424. package/dist/harness/types.js +1 -1
  425. package/dist/harness/types.js.map +1 -1
  426. package/dist/index.d.ts +33 -9
  427. package/dist/index.d.ts.map +1 -1
  428. package/dist/index.js +19 -6
  429. package/dist/index.js.map +1 -1
  430. package/dist/log.d.ts.map +1 -1
  431. package/dist/log.js +4 -1
  432. package/dist/log.js.map +1 -1
  433. package/dist/main.js +357 -198
  434. package/dist/main.js.map +1 -1
  435. package/dist/observability/index.d.ts +33 -0
  436. package/dist/observability/index.d.ts.map +1 -0
  437. package/dist/observability/index.js +257 -0
  438. package/dist/observability/index.js.map +1 -0
  439. package/dist/observability/instrument.js +14 -6
  440. package/dist/observability/instrument.js.map +1 -1
  441. package/dist/observability/otel.d.ts +10 -0
  442. package/dist/observability/otel.d.ts.map +1 -0
  443. package/dist/observability/otel.js +183 -0
  444. package/dist/observability/otel.js.map +1 -0
  445. package/dist/observability/sentry.d.ts +40 -7
  446. package/dist/observability/sentry.d.ts.map +1 -1
  447. package/dist/observability/sentry.js +176 -32
  448. package/dist/observability/sentry.js.map +1 -1
  449. package/dist/observability/types.d.ts +24 -3
  450. package/dist/observability/types.d.ts.map +1 -1
  451. package/dist/observability/types.js.map +1 -1
  452. package/dist/office/index.d.ts +139 -0
  453. package/dist/office/index.d.ts.map +1 -0
  454. package/dist/office/index.js +1084 -0
  455. package/dist/office/index.js.map +1 -0
  456. package/dist/office/projection.d.ts +42 -0
  457. package/dist/office/projection.d.ts.map +1 -0
  458. package/dist/office/projection.js +182 -0
  459. package/dist/office/projection.js.map +1 -0
  460. package/dist/office/types.d.ts +116 -0
  461. package/dist/office/types.d.ts.map +1 -0
  462. package/dist/office/types.js +2 -0
  463. package/dist/office/types.js.map +1 -0
  464. package/dist/runtime/conversation-runtime.d.ts +1 -1
  465. package/dist/runtime/conversation-runtime.d.ts.map +1 -1
  466. package/dist/runtime/conversation-runtime.js +423 -152
  467. package/dist/runtime/conversation-runtime.js.map +1 -1
  468. package/dist/runtime/session-lifecycle.d.ts +76 -0
  469. package/dist/runtime/session-lifecycle.d.ts.map +1 -0
  470. package/dist/runtime/session-lifecycle.js +404 -0
  471. package/dist/runtime/session-lifecycle.js.map +1 -0
  472. package/dist/runtime/types.d.ts +63 -15
  473. package/dist/runtime/types.d.ts.map +1 -1
  474. package/dist/runtime/types.js.map +1 -1
  475. package/dist/sandbox/cloudflare.d.ts +4 -0
  476. package/dist/sandbox/cloudflare.d.ts.map +1 -1
  477. package/dist/sandbox/cloudflare.js +54 -52
  478. package/dist/sandbox/cloudflare.js.map +1 -1
  479. package/dist/sandbox/container.d.ts +3 -0
  480. package/dist/sandbox/container.d.ts.map +1 -1
  481. package/dist/sandbox/container.js +19 -7
  482. package/dist/sandbox/container.js.map +1 -1
  483. package/dist/sandbox/host.d.ts +3 -0
  484. package/dist/sandbox/host.d.ts.map +1 -1
  485. package/dist/sandbox/host.js +44 -35
  486. package/dist/sandbox/host.js.map +1 -1
  487. package/dist/sandbox/identity.d.ts +42 -0
  488. package/dist/sandbox/identity.d.ts.map +1 -0
  489. package/dist/sandbox/identity.js +77 -0
  490. package/dist/sandbox/identity.js.map +1 -0
  491. package/dist/sandbox/index.d.ts +24 -6
  492. package/dist/sandbox/index.d.ts.map +1 -1
  493. package/dist/sandbox/index.js +77 -17
  494. package/dist/sandbox/index.js.map +1 -1
  495. package/dist/sandbox/provisioner.d.ts +139 -0
  496. package/dist/sandbox/provisioner.d.ts.map +1 -0
  497. package/dist/{provisioner.js → sandbox/provisioner.js} +378 -24
  498. package/dist/sandbox/provisioner.js.map +1 -0
  499. package/dist/sandbox/types.d.ts +43 -9
  500. package/dist/sandbox/types.d.ts.map +1 -1
  501. package/dist/sandbox/types.js.map +1 -1
  502. package/dist/sandbox/utils.d.ts +24 -0
  503. package/dist/sandbox/utils.d.ts.map +1 -1
  504. package/dist/sandbox/utils.js +92 -1
  505. package/dist/sandbox/utils.js.map +1 -1
  506. package/dist/sessions/chat-history-sync.d.ts +23 -0
  507. package/dist/sessions/chat-history-sync.d.ts.map +1 -0
  508. package/dist/sessions/{agent-memory-file-manager.js → chat-history-sync.js} +239 -175
  509. package/dist/sessions/chat-history-sync.js.map +1 -0
  510. package/dist/sessions/history-line.d.ts +29 -0
  511. package/dist/sessions/history-line.d.ts.map +1 -0
  512. package/dist/sessions/history-line.js +45 -0
  513. package/dist/sessions/history-line.js.map +1 -0
  514. package/dist/sessions/migrate-common.d.ts +43 -0
  515. package/dist/sessions/migrate-common.d.ts.map +1 -0
  516. package/dist/sessions/migrate-common.js +99 -0
  517. package/dist/sessions/migrate-common.js.map +1 -0
  518. package/dist/sessions/migrate-pi-084.d.ts +8 -0
  519. package/dist/sessions/migrate-pi-084.d.ts.map +1 -0
  520. package/dist/sessions/migrate-pi-084.js +302 -0
  521. package/dist/sessions/migrate-pi-084.js.map +1 -0
  522. package/dist/sessions/migrate-v3.d.ts +15 -0
  523. package/dist/sessions/migrate-v3.d.ts.map +1 -0
  524. package/dist/sessions/migrate-v3.js +419 -0
  525. package/dist/sessions/migrate-v3.js.map +1 -0
  526. package/dist/sessions/session-key.d.ts +33 -0
  527. package/dist/sessions/session-key.d.ts.map +1 -0
  528. package/dist/sessions/session-key.js +115 -0
  529. package/dist/sessions/session-key.js.map +1 -0
  530. package/dist/sessions/session-store.d.ts +61 -0
  531. package/dist/sessions/session-store.d.ts.map +1 -0
  532. package/dist/sessions/session-store.js +684 -0
  533. package/dist/sessions/session-store.js.map +1 -0
  534. package/dist/sessions/store.d.ts +17 -10
  535. package/dist/sessions/store.d.ts.map +1 -1
  536. package/dist/sessions/store.js +182 -47
  537. package/dist/sessions/store.js.map +1 -1
  538. package/dist/sessions/types.d.ts +74 -8
  539. package/dist/sessions/types.d.ts.map +1 -1
  540. package/dist/sessions/types.js +1 -1
  541. package/dist/sessions/types.js.map +1 -1
  542. package/dist/settings/apply.d.ts +16 -0
  543. package/dist/settings/apply.d.ts.map +1 -0
  544. package/dist/settings/apply.js +60 -0
  545. package/dist/settings/apply.js.map +1 -0
  546. package/dist/settings/index.d.ts +126 -0
  547. package/dist/settings/index.d.ts.map +1 -0
  548. package/dist/settings/index.js +422 -0
  549. package/dist/settings/index.js.map +1 -0
  550. package/dist/settings/migrate.d.ts +21 -0
  551. package/dist/settings/migrate.d.ts.map +1 -0
  552. package/dist/settings/migrate.js +86 -0
  553. package/dist/settings/migrate.js.map +1 -0
  554. package/dist/types.d.ts +330 -141
  555. package/dist/types.d.ts.map +1 -1
  556. package/dist/types.js +2 -2
  557. package/dist/types.js.map +1 -1
  558. package/dist/vault/index.d.ts +52 -2
  559. package/dist/vault/index.d.ts.map +1 -1
  560. package/dist/vault/index.js +218 -86
  561. package/dist/vault/index.js.map +1 -1
  562. package/dist/vault/types.d.ts +6 -2
  563. package/dist/vault/types.d.ts.map +1 -1
  564. package/dist/vault/types.js.map +1 -1
  565. package/package.json +79 -40
  566. package/dist/adapter.d.ts +0 -2
  567. package/dist/adapter.d.ts.map +0 -1
  568. package/dist/adapter.js +0 -2
  569. package/dist/adapter.js.map +0 -1
  570. package/dist/adapters/slack/tools/attach.d.ts.map +0 -1
  571. package/dist/adapters/slack/tools/attach.js.map +0 -1
  572. package/dist/adapters/streaming.d.ts +0 -18
  573. package/dist/adapters/streaming.d.ts.map +0 -1
  574. package/dist/adapters/streaming.js +0 -44
  575. package/dist/adapters/streaming.js.map +0 -1
  576. package/dist/adapters/telegram/html.d.ts +0 -3
  577. package/dist/adapters/telegram/html.d.ts.map +0 -1
  578. package/dist/adapters/telegram/html.js +0 -98
  579. package/dist/adapters/telegram/html.js.map +0 -1
  580. package/dist/agent-events.d.ts +0 -5
  581. package/dist/agent-events.d.ts.map +0 -1
  582. package/dist/agent-events.js +0 -26
  583. package/dist/agent-events.js.map +0 -1
  584. package/dist/agent.d.ts +0 -39
  585. package/dist/agent.d.ts.map +0 -1
  586. package/dist/agent.js +0 -1291
  587. package/dist/agent.js.map +0 -1
  588. package/dist/cli/ext-git.d.ts +0 -22
  589. package/dist/cli/ext-git.d.ts.map +0 -1
  590. package/dist/cli/ext-git.js +0 -76
  591. package/dist/cli/ext-git.js.map +0 -1
  592. package/dist/cli/ext.d.ts +0 -2
  593. package/dist/cli/ext.d.ts.map +0 -1
  594. package/dist/cli/ext.js +0 -217
  595. package/dist/cli/ext.js.map +0 -1
  596. package/dist/commands/admin.d.ts.map +0 -1
  597. package/dist/commands/admin.js.map +0 -1
  598. package/dist/commands/auto-reply.d.ts.map +0 -1
  599. package/dist/commands/auto-reply.js +0 -76
  600. package/dist/commands/auto-reply.js.map +0 -1
  601. package/dist/commands/extensions.d.ts +0 -14
  602. package/dist/commands/extensions.d.ts.map +0 -1
  603. package/dist/commands/extensions.js +0 -55
  604. package/dist/commands/extensions.js.map +0 -1
  605. package/dist/commands/login.d.ts +0 -5
  606. package/dist/commands/login.d.ts.map +0 -1
  607. package/dist/commands/login.js +0 -115
  608. package/dist/commands/login.js.map +0 -1
  609. package/dist/commands/model.d.ts +0 -10
  610. package/dist/commands/model.d.ts.map +0 -1
  611. package/dist/commands/model.js +0 -102
  612. package/dist/commands/model.js.map +0 -1
  613. package/dist/commands/new.d.ts.map +0 -1
  614. package/dist/commands/new.js +0 -25
  615. package/dist/commands/new.js.map +0 -1
  616. package/dist/commands/parse.d.ts +0 -7
  617. package/dist/commands/parse.d.ts.map +0 -1
  618. package/dist/commands/parse.js +0 -14
  619. package/dist/commands/parse.js.map +0 -1
  620. package/dist/commands/registry.d.ts +0 -5
  621. package/dist/commands/registry.d.ts.map +0 -1
  622. package/dist/commands/registry.js +0 -31
  623. package/dist/commands/registry.js.map +0 -1
  624. package/dist/commands/sandbox.d.ts.map +0 -1
  625. package/dist/commands/sandbox.js +0 -78
  626. package/dist/commands/sandbox.js.map +0 -1
  627. package/dist/commands/session-view.d.ts.map +0 -1
  628. package/dist/commands/session-view.js.map +0 -1
  629. package/dist/commands/types.d.ts +0 -66
  630. package/dist/commands/types.d.ts.map +0 -1
  631. package/dist/commands/types.js.map +0 -1
  632. package/dist/commands/utils.d.ts +0 -11
  633. package/dist/commands/utils.d.ts.map +0 -1
  634. package/dist/commands/utils.js.map +0 -1
  635. package/dist/config.d.ts +0 -78
  636. package/dist/config.d.ts.map +0 -1
  637. package/dist/config.js +0 -450
  638. package/dist/config.js.map +0 -1
  639. package/dist/download.d.ts.map +0 -1
  640. package/dist/download.js +0 -89
  641. package/dist/download.js.map +0 -1
  642. package/dist/events.d.ts +0 -43
  643. package/dist/events.d.ts.map +0 -1
  644. package/dist/events.js +0 -456
  645. package/dist/events.js.map +0 -1
  646. package/dist/execution-resolver.d.ts +0 -21
  647. package/dist/execution-resolver.d.ts.map +0 -1
  648. package/dist/execution-resolver.js +0 -170
  649. package/dist/execution-resolver.js.map +0 -1
  650. package/dist/harness/auth.d.ts +0 -16
  651. package/dist/harness/auth.d.ts.map +0 -1
  652. package/dist/harness/auth.js +0 -86
  653. package/dist/harness/auth.js.map +0 -1
  654. package/dist/harness/extensions/loader.d.ts +0 -86
  655. package/dist/harness/extensions/loader.d.ts.map +0 -1
  656. package/dist/harness/extensions/loader.js +0 -525
  657. package/dist/harness/extensions/loader.js.map +0 -1
  658. package/dist/harness/extensions/registry.d.ts +0 -23
  659. package/dist/harness/extensions/registry.d.ts.map +0 -1
  660. package/dist/harness/extensions/registry.js +0 -45
  661. package/dist/harness/extensions/registry.js.map +0 -1
  662. package/dist/harness/extensions/types.d.ts +0 -248
  663. package/dist/harness/extensions/types.d.ts.map +0 -1
  664. package/dist/harness/extensions/types.js.map +0 -1
  665. package/dist/harness/session-store.d.ts +0 -77
  666. package/dist/harness/session-store.d.ts.map +0 -1
  667. package/dist/harness/session-store.js +0 -248
  668. package/dist/harness/session-store.js.map +0 -1
  669. package/dist/harness/settings.d.ts +0 -47
  670. package/dist/harness/settings.d.ts.map +0 -1
  671. package/dist/harness/settings.js +0 -29
  672. package/dist/harness/settings.js.map +0 -1
  673. package/dist/model-registry.d.ts +0 -4
  674. package/dist/model-registry.d.ts.map +0 -1
  675. package/dist/model-registry.js +0 -7
  676. package/dist/model-registry.js.map +0 -1
  677. package/dist/platform-messages.d.ts.map +0 -1
  678. package/dist/platform-messages.js.map +0 -1
  679. package/dist/portal-shell.d.ts +0 -4
  680. package/dist/portal-shell.d.ts.map +0 -1
  681. package/dist/portal-shell.js.map +0 -1
  682. package/dist/provisioner.d.ts +0 -61
  683. package/dist/provisioner.d.ts.map +0 -1
  684. package/dist/provisioner.js.map +0 -1
  685. package/dist/runtime/agent-run-controller.d.ts +0 -31
  686. package/dist/runtime/agent-run-controller.d.ts.map +0 -1
  687. package/dist/runtime/agent-run-controller.js +0 -195
  688. package/dist/runtime/agent-run-controller.js.map +0 -1
  689. package/dist/sandbox/errors.d.ts +0 -6
  690. package/dist/sandbox/errors.d.ts.map +0 -1
  691. package/dist/sandbox/errors.js +0 -11
  692. package/dist/sandbox/errors.js.map +0 -1
  693. package/dist/sandbox/firecracker.d.ts +0 -15
  694. package/dist/sandbox/firecracker.d.ts.map +0 -1
  695. package/dist/sandbox/firecracker.js +0 -212
  696. package/dist/sandbox/firecracker.js.map +0 -1
  697. package/dist/sandbox/image.d.ts +0 -3
  698. package/dist/sandbox/image.d.ts.map +0 -1
  699. package/dist/sandbox/image.js +0 -27
  700. package/dist/sandbox/image.js.map +0 -1
  701. package/dist/sandbox/path-context.d.ts +0 -3
  702. package/dist/sandbox/path-context.d.ts.map +0 -1
  703. package/dist/sandbox/path-context.js +0 -20
  704. package/dist/sandbox/path-context.js.map +0 -1
  705. package/dist/sessions/agent-memory-file-manager.d.ts +0 -19
  706. package/dist/sessions/agent-memory-file-manager.d.ts.map +0 -1
  707. package/dist/sessions/agent-memory-file-manager.js.map +0 -1
  708. package/dist/sessions/metadata.d.ts +0 -3
  709. package/dist/sessions/metadata.d.ts.map +0 -1
  710. package/dist/sessions/metadata.js +0 -11
  711. package/dist/sessions/metadata.js.map +0 -1
  712. package/dist/sessions/policy.d.ts +0 -6
  713. package/dist/sessions/policy.d.ts.map +0 -1
  714. package/dist/sessions/policy.js +0 -23
  715. package/dist/sessions/policy.js.map +0 -1
  716. package/dist/store.d.ts +0 -46
  717. package/dist/store.d.ts.map +0 -1
  718. package/dist/store.js +0 -177
  719. package/dist/store.js.map +0 -1
  720. package/dist/tools/bash.d.ts +0 -10
  721. package/dist/tools/bash.d.ts.map +0 -1
  722. package/dist/tools/bash.js +0 -80
  723. package/dist/tools/bash.js.map +0 -1
  724. package/dist/tools/edit.d.ts +0 -11
  725. package/dist/tools/edit.d.ts.map +0 -1
  726. package/dist/tools/edit.js +0 -131
  727. package/dist/tools/edit.js.map +0 -1
  728. package/dist/tools/event.d.ts.map +0 -1
  729. package/dist/tools/event.js +0 -252
  730. package/dist/tools/event.js.map +0 -1
  731. package/dist/tools/index.d.ts +0 -24
  732. package/dist/tools/index.d.ts.map +0 -1
  733. package/dist/tools/index.js +0 -31
  734. package/dist/tools/index.js.map +0 -1
  735. package/dist/tools/react.d.ts.map +0 -1
  736. package/dist/tools/react.js.map +0 -1
  737. package/dist/tools/read.d.ts +0 -11
  738. package/dist/tools/read.d.ts.map +0 -1
  739. package/dist/tools/read.js +0 -134
  740. package/dist/tools/read.js.map +0 -1
  741. package/dist/tools/sandbox.d.ts.map +0 -1
  742. package/dist/tools/sandbox.js.map +0 -1
  743. package/dist/tools/truncate.d.ts +0 -33
  744. package/dist/tools/truncate.d.ts.map +0 -1
  745. package/dist/tools/truncate.js +0 -184
  746. package/dist/tools/truncate.js.map +0 -1
  747. package/dist/tools/types.d.ts +0 -54
  748. package/dist/tools/types.d.ts.map +0 -1
  749. package/dist/tools/types.js.map +0 -1
  750. package/dist/tools/write.d.ts +0 -10
  751. package/dist/tools/write.d.ts.map +0 -1
  752. package/dist/tools/write.js +0 -29
  753. package/dist/tools/write.js.map +0 -1
  754. package/dist/trigger.d.ts +0 -22
  755. package/dist/trigger.d.ts.map +0 -1
  756. package/dist/trigger.js +0 -100
  757. package/dist/trigger.js.map +0 -1
  758. package/dist/utils/date.d.ts +0 -10
  759. package/dist/utils/date.d.ts.map +0 -1
  760. package/dist/utils/date.js +0 -23
  761. package/dist/utils/date.js.map +0 -1
  762. package/dist/utils/env.d.ts +0 -3
  763. package/dist/utils/env.d.ts.map +0 -1
  764. package/dist/utils/env.js +0 -12
  765. package/dist/utils/env.js.map +0 -1
  766. package/dist/utils/file-guards.d.ts +0 -9
  767. package/dist/utils/file-guards.d.ts.map +0 -1
  768. package/dist/utils/file-guards.js +0 -59
  769. package/dist/utils/file-guards.js.map +0 -1
  770. package/dist/utils/fs-atomic.d.ts +0 -10
  771. package/dist/utils/fs-atomic.d.ts.map +0 -1
  772. package/dist/utils/fs-atomic.js +0 -45
  773. package/dist/utils/fs-atomic.js.map +0 -1
  774. package/dist/utils/html.d.ts +0 -2
  775. package/dist/utils/html.d.ts.map +0 -1
  776. package/dist/utils/html.js +0 -4
  777. package/dist/utils/html.js.map +0 -1
  778. package/dist/utils/http-body.d.ts +0 -10
  779. package/dist/utils/http-body.d.ts.map +0 -1
  780. package/dist/utils/http-body.js +0 -34
  781. package/dist/utils/http-body.js.map +0 -1
  782. package/dist/vault/routing.d.ts +0 -3
  783. package/dist/vault/routing.d.ts.map +0 -1
  784. package/dist/vault/routing.js +0 -13
  785. package/dist/vault/routing.js.map +0 -1
  786. package/dist/web/admin/portal.d.ts +0 -5
  787. package/dist/web/admin/portal.d.ts.map +0 -1
  788. package/dist/web/admin/portal.js +0 -2572
  789. package/dist/web/admin/portal.js.map +0 -1
  790. package/dist/web/admin/provider-models.d.ts.map +0 -1
  791. package/dist/web/admin/provider-models.js.map +0 -1
  792. package/dist/web/admin/store.d.ts +0 -13
  793. package/dist/web/admin/store.d.ts.map +0 -1
  794. package/dist/web/admin/store.js +0 -14
  795. package/dist/web/admin/store.js.map +0 -1
  796. package/dist/web/admin/types.d.ts +0 -30
  797. package/dist/web/admin/types.d.ts.map +0 -1
  798. package/dist/web/admin/types.js.map +0 -1
  799. package/dist/web/agent-events/portal.d.ts +0 -3
  800. package/dist/web/agent-events/portal.d.ts.map +0 -1
  801. package/dist/web/agent-events/portal.js +0 -18
  802. package/dist/web/agent-events/portal.js.map +0 -1
  803. package/dist/web/login/oauth.d.ts +0 -6
  804. package/dist/web/login/oauth.d.ts.map +0 -1
  805. package/dist/web/login/oauth.js.map +0 -1
  806. package/dist/web/login/portal.d.ts.map +0 -1
  807. package/dist/web/login/portal.js.map +0 -1
  808. package/dist/web/login/store.d.ts +0 -8
  809. package/dist/web/login/store.d.ts.map +0 -1
  810. package/dist/web/login/store.js +0 -15
  811. package/dist/web/login/store.js.map +0 -1
  812. package/dist/web/login/types.d.ts.map +0 -1
  813. package/dist/web/login/types.js.map +0 -1
  814. package/dist/web/request.d.ts +0 -3
  815. package/dist/web/request.d.ts.map +0 -1
  816. package/dist/web/request.js +0 -13
  817. package/dist/web/request.js.map +0 -1
  818. package/dist/web/server.d.ts.map +0 -1
  819. package/dist/web/server.js.map +0 -1
  820. package/dist/web/session-view/command.d.ts +0 -4
  821. package/dist/web/session-view/command.d.ts.map +0 -1
  822. package/dist/web/session-view/command.js +0 -7
  823. package/dist/web/session-view/command.js.map +0 -1
  824. package/dist/web/session-view/portal.d.ts +0 -13
  825. package/dist/web/session-view/portal.d.ts.map +0 -1
  826. package/dist/web/session-view/portal.js.map +0 -1
  827. package/dist/web/session-view/service.d.ts +0 -6
  828. package/dist/web/session-view/service.d.ts.map +0 -1
  829. package/dist/web/session-view/service.js +0 -498
  830. package/dist/web/session-view/service.js.map +0 -1
  831. package/dist/web/session-view/store.d.ts +0 -8
  832. package/dist/web/session-view/store.d.ts.map +0 -1
  833. package/dist/web/session-view/store.js +0 -15
  834. package/dist/web/session-view/store.js.map +0 -1
  835. package/dist/web/session-view/types.d.ts.map +0 -1
  836. package/dist/web/session-view/types.js.map +0 -1
  837. package/dist/web/token-store.d.ts.map +0 -1
  838. package/dist/web/token-store.js.map +0 -1
  839. package/dist/web/types.d.ts.map +0 -1
  840. package/dist/web/types.js.map +0 -1
  841. /package/dist/{commands → adapters/commands}/admin.d.ts +0 -0
  842. /package/dist/{commands → adapters/commands}/new.d.ts +0 -0
  843. /package/dist/{commands → adapters/commands}/sandbox.d.ts +0 -0
  844. /package/dist/{commands → adapters/commands}/session-view.d.ts +0 -0
  845. /package/dist/{commands → adapters/commands}/types.js +0 -0
  846. /package/dist/{harness/extensions → adapters/github}/types.js +0 -0
  847. /package/dist/{tools → adapters/web/admin}/types.js +0 -0
  848. /package/dist/{web/admin → adapters/web/login}/types.js +0 -0
  849. /package/dist/{web/login → adapters/web/session-view}/types.js +0 -0
  850. /package/dist/{web → adapters/web}/token-store.d.ts +0 -0
  851. /package/dist/{web → adapters/web}/types.d.ts +0 -0
  852. /package/dist/{web/session-view → adapters/web}/types.js +0 -0
  853. /package/dist/{download.d.ts → cli/download.d.ts} +0 -0
  854. /package/dist/{web → cli}/types.js +0 -0
  855. /package/dist/{adapters/slack → harness}/tools/attach.d.ts +0 -0
  856. /package/dist/{tools → harness/tools}/react.d.ts +0 -0
@@ -0,0 +1,183 @@
1
+ import { metrics } from "@opentelemetry/api";
2
+ import { OTLPMetricExporter } from "@opentelemetry/exporter-metrics-otlp-proto";
3
+ import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-proto";
4
+ import { resourceFromAttributes } from "@opentelemetry/resources";
5
+ import { MeterProvider, PeriodicExportingMetricReader } from "@opentelemetry/sdk-metrics";
6
+ import { BatchSpanProcessor, NodeTracerProvider } from "@opentelemetry/sdk-trace-node";
7
+ import { SentryContextManager } from "@sentry/node";
8
+ import { SentryPropagator } from "@sentry/opentelemetry";
9
+ import { readStandardEnv } from "../env-manifest.js";
10
+ import { sanitizeTelemetryString } from "./sentry.js";
11
+ const SAFE_RESOURCE_KEYS = new Set([
12
+ "deployment.environment.name",
13
+ "openinference.project.name",
14
+ "service.namespace",
15
+ "service.version",
16
+ ]);
17
+ let tracerProvider;
18
+ let meterProvider;
19
+ let metricsEnabled = false;
20
+ export function resolveOpenTelemetryConfiguration(env = currentOpenTelemetryEnvironment()) {
21
+ if (env.OTEL_SDK_DISABLED?.toLowerCase() === "true")
22
+ return { traces: false, metrics: false };
23
+ return {
24
+ traces: protocolSupported(env.OTEL_EXPORTER_OTLP_TRACES_PROTOCOL ?? env.OTEL_EXPORTER_OTLP_PROTOCOL) &&
25
+ exporterEnabled(env.OTEL_TRACES_EXPORTER) &&
26
+ effectiveEndpointIsValid(env.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT, env.OTEL_EXPORTER_OTLP_ENDPOINT),
27
+ metrics: protocolSupported(env.OTEL_EXPORTER_OTLP_METRICS_PROTOCOL ?? env.OTEL_EXPORTER_OTLP_PROTOCOL) &&
28
+ exporterEnabled(env.OTEL_METRICS_EXPORTER) &&
29
+ effectiveEndpointIsValid(env.OTEL_EXPORTER_OTLP_METRICS_ENDPOINT, env.OTEL_EXPORTER_OTLP_ENDPOINT),
30
+ };
31
+ }
32
+ export function initializeOpenTelemetry() {
33
+ const env = currentOpenTelemetryEnvironment();
34
+ const configuration = resolveOpenTelemetryConfiguration(env);
35
+ metricsEnabled = configuration.metrics;
36
+ if (!configuration.traces && !configuration.metrics)
37
+ return false;
38
+ const resource = resourceFromAttributes(resolveOpenTelemetryResourceAttributes(env));
39
+ if (configuration.metrics) {
40
+ meterProvider = new MeterProvider({
41
+ resource,
42
+ readers: [
43
+ new PeriodicExportingMetricReader({
44
+ exporter: new OTLPMetricExporter(),
45
+ exportIntervalMillis: positiveInteger(env.OTEL_METRIC_EXPORT_INTERVAL),
46
+ exportTimeoutMillis: positiveInteger(env.OTEL_METRIC_EXPORT_TIMEOUT),
47
+ }),
48
+ ],
49
+ });
50
+ metrics.setGlobalMeterProvider(meterProvider);
51
+ }
52
+ if (configuration.traces) {
53
+ tracerProvider = new NodeTracerProvider({
54
+ resource,
55
+ spanProcessors: [new BatchSpanProcessor(new OTLPTraceExporter())],
56
+ });
57
+ tracerProvider.register({
58
+ contextManager: new SentryContextManager(),
59
+ propagator: new SentryPropagator(),
60
+ });
61
+ }
62
+ return true;
63
+ }
64
+ export function isOpenTelemetryMetricsEnabled() {
65
+ return metricsEnabled;
66
+ }
67
+ export async function shutdownOpenTelemetry() {
68
+ const providers = [tracerProvider, meterProvider].filter((provider) => provider !== undefined);
69
+ const flushResults = await Promise.allSettled(providers.map((provider) => provider.forceFlush()));
70
+ const shutdownResults = await Promise.allSettled(providers.map((provider) => provider.shutdown()));
71
+ tracerProvider = undefined;
72
+ meterProvider = undefined;
73
+ metricsEnabled = false;
74
+ const failures = [...flushResults, ...shutdownResults].flatMap((result) => result.status === "rejected" ? [result.reason] : []);
75
+ if (failures.length > 0) {
76
+ throw new AggregateError(failures, "OpenTelemetry shutdown failed");
77
+ }
78
+ }
79
+ function exporterEnabled(value) {
80
+ if (!value)
81
+ return true;
82
+ return value
83
+ .split(",")
84
+ .map((entry) => entry.trim().toLowerCase())
85
+ .includes("otlp");
86
+ }
87
+ function protocolSupported(value) {
88
+ return !value || value.trim().toLowerCase() === "http/protobuf";
89
+ }
90
+ function effectiveEndpointIsValid(signalEndpoint, baseEndpoint) {
91
+ return validEndpoint(signalEndpoint ?? baseEndpoint);
92
+ }
93
+ function validEndpoint(value) {
94
+ if (!value)
95
+ return false;
96
+ try {
97
+ const endpoint = new URL(value);
98
+ return ((endpoint.protocol === "http:" || endpoint.protocol === "https:") &&
99
+ endpoint.username === "" &&
100
+ endpoint.password === "");
101
+ }
102
+ catch {
103
+ return false;
104
+ }
105
+ }
106
+ export function resolveOpenTelemetryResourceAttributes(env = currentOpenTelemetryEnvironment()) {
107
+ const serviceName = safeResourceValue(env.OTEL_SERVICE_NAME) ?? "mikan";
108
+ const attributes = { "service.name": serviceName };
109
+ const parsed = parseResourceAttributes(env.OTEL_RESOURCE_ATTRIBUTES);
110
+ if (!parsed)
111
+ return attributes;
112
+ for (const [key, value] of Object.entries(parsed)) {
113
+ if (!SAFE_RESOURCE_KEYS.has(key))
114
+ continue;
115
+ const safeValue = safeResourceValue(value);
116
+ if (safeValue !== undefined)
117
+ attributes[key] = safeValue;
118
+ }
119
+ return attributes;
120
+ }
121
+ /** Parse OTEL_RESOURCE_ATTRIBUTES using the specification's percent-encoding rules. */
122
+ function parseResourceAttributes(value) {
123
+ if (!value)
124
+ return {};
125
+ const attributes = {};
126
+ try {
127
+ for (const rawEntry of value.split(",").filter((entry) => entry.trim() !== "")) {
128
+ const parts = rawEntry.split("=");
129
+ if (parts.length !== 2)
130
+ return undefined;
131
+ const rawKey = parts[0]?.trim();
132
+ const rawValue = parts[1]?.trim();
133
+ if (!rawKey || rawValue === undefined)
134
+ return undefined;
135
+ const key = decodeURIComponent(rawKey);
136
+ const decodedValue = decodeURIComponent(rawValue);
137
+ if (key.length > 255 || decodedValue.length > 255)
138
+ return undefined;
139
+ attributes[key] = decodedValue;
140
+ }
141
+ }
142
+ catch {
143
+ return undefined;
144
+ }
145
+ return attributes;
146
+ }
147
+ function safeResourceValue(value) {
148
+ const trimmed = value?.trim();
149
+ if (!trimmed || trimmed.length > 128)
150
+ return undefined;
151
+ if ([...trimmed].some((character) => {
152
+ const code = character.charCodeAt(0);
153
+ return code <= 31 || code === 127;
154
+ })) {
155
+ return undefined;
156
+ }
157
+ return sanitizeTelemetryString(trimmed) === trimmed ? trimmed : undefined;
158
+ }
159
+ function currentOpenTelemetryEnvironment() {
160
+ const names = [
161
+ "OTEL_SDK_DISABLED",
162
+ "OTEL_SERVICE_NAME",
163
+ "OTEL_RESOURCE_ATTRIBUTES",
164
+ "OTEL_TRACES_EXPORTER",
165
+ "OTEL_METRICS_EXPORTER",
166
+ "OTEL_EXPORTER_OTLP_ENDPOINT",
167
+ "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT",
168
+ "OTEL_EXPORTER_OTLP_METRICS_ENDPOINT",
169
+ "OTEL_EXPORTER_OTLP_PROTOCOL",
170
+ "OTEL_EXPORTER_OTLP_TRACES_PROTOCOL",
171
+ "OTEL_EXPORTER_OTLP_METRICS_PROTOCOL",
172
+ "OTEL_METRIC_EXPORT_INTERVAL",
173
+ "OTEL_METRIC_EXPORT_TIMEOUT",
174
+ ];
175
+ return Object.fromEntries(names.map((name) => [name, readStandardEnv(name)]));
176
+ }
177
+ function positiveInteger(value) {
178
+ if (!value)
179
+ return undefined;
180
+ const parsed = Number(value);
181
+ return Number.isInteger(parsed) && parsed > 0 ? parsed : undefined;
182
+ }
183
+ //# sourceMappingURL=otel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otel.js","sourceRoot":"","sources":["../../src/observability/otel.ts"],"names":[],"mappings":"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","sourcesContent":["import { metrics } from \"@opentelemetry/api\";\nimport { OTLPMetricExporter } from \"@opentelemetry/exporter-metrics-otlp-proto\";\nimport { OTLPTraceExporter } from \"@opentelemetry/exporter-trace-otlp-proto\";\nimport { resourceFromAttributes } from \"@opentelemetry/resources\";\nimport { MeterProvider, PeriodicExportingMetricReader } from \"@opentelemetry/sdk-metrics\";\nimport { BatchSpanProcessor, NodeTracerProvider } from \"@opentelemetry/sdk-trace-node\";\nimport { SentryContextManager } from \"@sentry/node\";\nimport { SentryPropagator } from \"@sentry/opentelemetry\";\nimport { readStandardEnv } from \"../env-manifest.js\";\nimport { sanitizeTelemetryString } from \"./sentry.js\";\n\nconst SAFE_RESOURCE_KEYS = new Set([\n \"deployment.environment.name\",\n \"openinference.project.name\",\n \"service.namespace\",\n \"service.version\",\n]);\n\nlet tracerProvider: NodeTracerProvider | undefined;\nlet meterProvider: MeterProvider | undefined;\nlet metricsEnabled = false;\n\nexport interface OpenTelemetryConfiguration {\n traces: boolean;\n metrics: boolean;\n}\n\nexport function resolveOpenTelemetryConfiguration(\n env: NodeJS.ProcessEnv = currentOpenTelemetryEnvironment(),\n): OpenTelemetryConfiguration {\n if (env.OTEL_SDK_DISABLED?.toLowerCase() === \"true\") return { traces: false, metrics: false };\n\n return {\n traces:\n protocolSupported(\n env.OTEL_EXPORTER_OTLP_TRACES_PROTOCOL ?? env.OTEL_EXPORTER_OTLP_PROTOCOL,\n ) &&\n exporterEnabled(env.OTEL_TRACES_EXPORTER) &&\n effectiveEndpointIsValid(\n env.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT,\n env.OTEL_EXPORTER_OTLP_ENDPOINT,\n ),\n metrics:\n protocolSupported(\n env.OTEL_EXPORTER_OTLP_METRICS_PROTOCOL ?? env.OTEL_EXPORTER_OTLP_PROTOCOL,\n ) &&\n exporterEnabled(env.OTEL_METRICS_EXPORTER) &&\n effectiveEndpointIsValid(\n env.OTEL_EXPORTER_OTLP_METRICS_ENDPOINT,\n env.OTEL_EXPORTER_OTLP_ENDPOINT,\n ),\n };\n}\n\nexport function initializeOpenTelemetry(): boolean {\n const env = currentOpenTelemetryEnvironment();\n const configuration = resolveOpenTelemetryConfiguration(env);\n metricsEnabled = configuration.metrics;\n if (!configuration.traces && !configuration.metrics) return false;\n\n const resource = resourceFromAttributes(resolveOpenTelemetryResourceAttributes(env));\n\n if (configuration.metrics) {\n meterProvider = new MeterProvider({\n resource,\n readers: [\n new PeriodicExportingMetricReader({\n exporter: new OTLPMetricExporter(),\n exportIntervalMillis: positiveInteger(env.OTEL_METRIC_EXPORT_INTERVAL),\n exportTimeoutMillis: positiveInteger(env.OTEL_METRIC_EXPORT_TIMEOUT),\n }),\n ],\n });\n metrics.setGlobalMeterProvider(meterProvider);\n }\n\n if (configuration.traces) {\n tracerProvider = new NodeTracerProvider({\n resource,\n spanProcessors: [new BatchSpanProcessor(new OTLPTraceExporter())],\n });\n tracerProvider.register({\n contextManager: new SentryContextManager(),\n propagator: new SentryPropagator(),\n });\n }\n\n return true;\n}\n\nexport function isOpenTelemetryMetricsEnabled(): boolean {\n return metricsEnabled;\n}\n\nexport async function shutdownOpenTelemetry(): Promise<void> {\n const providers = [tracerProvider, meterProvider].filter(\n (provider): provider is NodeTracerProvider | MeterProvider => provider !== undefined,\n );\n const flushResults = await Promise.allSettled(providers.map((provider) => provider.forceFlush()));\n const shutdownResults = await Promise.allSettled(\n providers.map((provider) => provider.shutdown()),\n );\n tracerProvider = undefined;\n meterProvider = undefined;\n metricsEnabled = false;\n\n const failures = [...flushResults, ...shutdownResults].flatMap((result) =>\n result.status === \"rejected\" ? [result.reason] : [],\n );\n if (failures.length > 0) {\n throw new AggregateError(failures, \"OpenTelemetry shutdown failed\");\n }\n}\n\nfunction exporterEnabled(value: string | undefined): boolean {\n if (!value) return true;\n return value\n .split(\",\")\n .map((entry) => entry.trim().toLowerCase())\n .includes(\"otlp\");\n}\n\nfunction protocolSupported(value: string | undefined): boolean {\n return !value || value.trim().toLowerCase() === \"http/protobuf\";\n}\n\nfunction effectiveEndpointIsValid(\n signalEndpoint: string | undefined,\n baseEndpoint: string | undefined,\n): boolean {\n return validEndpoint(signalEndpoint ?? baseEndpoint);\n}\n\nfunction validEndpoint(value: string | undefined): boolean {\n if (!value) return false;\n try {\n const endpoint = new URL(value);\n return (\n (endpoint.protocol === \"http:\" || endpoint.protocol === \"https:\") &&\n endpoint.username === \"\" &&\n endpoint.password === \"\"\n );\n } catch {\n return false;\n }\n}\n\nexport function resolveOpenTelemetryResourceAttributes(\n env: NodeJS.ProcessEnv = currentOpenTelemetryEnvironment(),\n): Record<string, string> {\n const serviceName = safeResourceValue(env.OTEL_SERVICE_NAME) ?? \"mikan\";\n const attributes: Record<string, string> = { \"service.name\": serviceName };\n const parsed = parseResourceAttributes(env.OTEL_RESOURCE_ATTRIBUTES);\n if (!parsed) return attributes;\n\n for (const [key, value] of Object.entries(parsed)) {\n if (!SAFE_RESOURCE_KEYS.has(key)) continue;\n const safeValue = safeResourceValue(value);\n if (safeValue !== undefined) attributes[key] = safeValue;\n }\n return attributes;\n}\n\n/** Parse OTEL_RESOURCE_ATTRIBUTES using the specification's percent-encoding rules. */\nfunction parseResourceAttributes(value: string | undefined): Record<string, string> | undefined {\n if (!value) return {};\n const attributes: Record<string, string> = {};\n try {\n for (const rawEntry of value.split(\",\").filter((entry) => entry.trim() !== \"\")) {\n const parts = rawEntry.split(\"=\");\n if (parts.length !== 2) return undefined;\n const rawKey = parts[0]?.trim();\n const rawValue = parts[1]?.trim();\n if (!rawKey || rawValue === undefined) return undefined;\n const key = decodeURIComponent(rawKey);\n const decodedValue = decodeURIComponent(rawValue);\n if (key.length > 255 || decodedValue.length > 255) return undefined;\n attributes[key] = decodedValue;\n }\n } catch {\n return undefined;\n }\n return attributes;\n}\n\nfunction safeResourceValue(value: string | undefined): string | undefined {\n const trimmed = value?.trim();\n if (!trimmed || trimmed.length > 128) return undefined;\n if (\n [...trimmed].some((character) => {\n const code = character.charCodeAt(0);\n return code <= 31 || code === 127;\n })\n ) {\n return undefined;\n }\n return sanitizeTelemetryString(trimmed) === trimmed ? trimmed : undefined;\n}\n\nfunction currentOpenTelemetryEnvironment(): NodeJS.ProcessEnv {\n const names = [\n \"OTEL_SDK_DISABLED\",\n \"OTEL_SERVICE_NAME\",\n \"OTEL_RESOURCE_ATTRIBUTES\",\n \"OTEL_TRACES_EXPORTER\",\n \"OTEL_METRICS_EXPORTER\",\n \"OTEL_EXPORTER_OTLP_ENDPOINT\",\n \"OTEL_EXPORTER_OTLP_TRACES_ENDPOINT\",\n \"OTEL_EXPORTER_OTLP_METRICS_ENDPOINT\",\n \"OTEL_EXPORTER_OTLP_PROTOCOL\",\n \"OTEL_EXPORTER_OTLP_TRACES_PROTOCOL\",\n \"OTEL_EXPORTER_OTLP_METRICS_PROTOCOL\",\n \"OTEL_METRIC_EXPORT_INTERVAL\",\n \"OTEL_METRIC_EXPORT_TIMEOUT\",\n ] as const;\n return Object.fromEntries(names.map((name) => [name, readStandardEnv(name)]));\n}\n\nfunction positiveInteger(value: string | undefined): number | undefined {\n if (!value) return undefined;\n const parsed = Number(value);\n return Number.isInteger(parsed) && parsed > 0 ? parsed : undefined;\n}\n"]}
@@ -1,30 +1,63 @@
1
1
  import type { Breadcrumb, ErrorEvent, Event, EventHint, Scope } from "@sentry/node";
2
- export type { ReportUserFacingErrorOptions, SentryAttributionAttributes, SentryRunScopeContext, SentrySpanPayload, SentryTransactionPayload, } from "./types.js";
3
- import type { ReportUserFacingErrorOptions, SentryAttributionAttributes, SentryRunScopeContext, SentrySpanPayload, SentryTransactionPayload } from "./types.js";
4
- export declare function createSentryInitOptions(dsn?: string): {
2
+ import * as Sentry from "@sentry/node";
3
+ export type { ReportUserFacingErrorOptions, SentryAttributionAttributes, SubagentOutcomeReport, SentryRunScopeContext, SentrySpanPayload, SentryTransactionPayload, } from "./types.js";
4
+ import type { ReportUserFacingErrorOptions, SentryAttributionAttributes, SubagentOutcomeReport, SentryRunScopeContext, SentrySpanPayload, SentryTransactionPayload } from "./types.js";
5
+ export declare function createSentryInitOptions(dsn?: string, customOpenTelemetry?: boolean): {
5
6
  dsn: string | undefined;
6
7
  environment: string;
7
8
  enabled: boolean;
8
9
  sendDefaultPii: boolean;
9
- tracesSampleRate: number;
10
+ tracesSampleRate: number | undefined;
11
+ skipOpenTelemetrySetup: boolean;
12
+ registerEsmLoaderHooks: boolean | undefined;
10
13
  includeLocalVariables: boolean;
11
14
  enableLogs: boolean;
15
+ integrations(defaultIntegrations: ReturnType<typeof Sentry.getDefaultIntegrations>): import("@sentry/core").Integration[];
12
16
  beforeSend(event: ErrorEvent, hint: EventHint): ErrorEvent | null;
13
17
  beforeSendSpan(span: SentrySpanPayload): SentrySpanPayload;
14
18
  beforeSendTransaction(event: SentryTransactionPayload): SentryTransactionPayload | null;
15
19
  beforeBreadcrumb(breadcrumb: Breadcrumb): Breadcrumb | null;
16
20
  };
17
- export declare function reportUserFacingError(error: unknown, options: ReportUserFacingErrorOptions): string | undefined;
21
+ export declare function captureSentryError(error: unknown, options: ReportUserFacingErrorOptions): string | undefined;
22
+ export declare function closeSentry(timeoutMs: number): Promise<boolean>;
23
+ export declare function recordSentryCounter(name: string, value: number, attributes: SentryAttributionAttributes): void;
24
+ export declare function recordSentryDistribution(name: string, value: number, options: {
25
+ unit?: string;
26
+ attributes: SentryAttributionAttributes;
27
+ }): void;
28
+ export declare function recordSentryGauge(name: string, value: number, options: {
29
+ unit?: string;
30
+ attributes: SentryAttributionAttributes;
31
+ }): void;
32
+ export declare function addSentryBreadcrumb(message: string, data?: Record<string, unknown>, options?: {
33
+ category?: string;
34
+ level?: "info" | "warning";
35
+ log?: boolean;
36
+ }): void;
37
+ export declare function withSentryRunScope<T>(context: SentryRunScopeContext, body: () => T): T;
18
38
  export declare function createRunAttributionAttributes(context: SentryRunScopeContext): SentryAttributionAttributes;
19
39
  export declare function registerTraceAttribution(span: {
20
40
  setAttributes(attributes: SentryAttributionAttributes): unknown;
21
41
  }, attributes: SentryAttributionAttributes): void;
22
- export declare function updateActiveSpanAttribution(attributes: SentryAttributionAttributes): void;
23
42
  export declare function applyRunScope(scope: Scope, context: SentryRunScopeContext): void;
24
43
  export declare function metricAttributes(attributes: Record<string, string | number | boolean | undefined>): Record<string, string | number | boolean>;
25
- export declare function addLifecycleBreadcrumb(message: string, data?: Record<string, string | number | boolean | undefined>): void;
26
44
  export declare function sanitizeEvent<T extends Event>(event: T, _hint?: EventHint): T | null;
27
45
  export declare function applySpanAttribution<T extends SentrySpanPayload>(span: T): T;
28
46
  export declare function sanitizeBreadcrumb(breadcrumb: Breadcrumb): Breadcrumb | null;
29
47
  export declare function sanitizeValue(value: unknown, key?: string, depth?: number): unknown;
48
+ export declare function sanitizeTelemetryString(value: string): string;
49
+ /**
50
+ * Record one subagent outcome: a run counter and duration for every status,
51
+ * a lifecycle breadcrumb, and a Sentry error only for statuses in
52
+ * `UNEXPECTED_SUBAGENT_STATUSES`. Fingerprinted on the error's prefix before
53
+ * the first colon so one failure class is one issue regardless of which
54
+ * tool, file, or model message follows it.
55
+ */
56
+ export declare function recordSubagentOutcome(report: SubagentOutcomeReport): string | undefined;
57
+ /**
58
+ * A subagent that never started: unknown profile, ungranted tool, or a
59
+ * harness rejection. The throw still reaches the parent model as a tool
60
+ * error; this only makes sure it also reaches Sentry.
61
+ */
62
+ export declare function reportSubagentLaunchError(error: unknown, report: Pick<SubagentOutcomeReport, "itemId" | "mode" | "profile">): string | undefined;
30
63
  //# sourceMappingURL=sentry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sentry.d.ts","sourceRoot":"","sources":["../../src/observability/sentry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AA0DpF,YAAY,EACV,4BAA4B,EAC5B,2BAA2B,EAC3B,qBAAqB,EACrB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EACV,4BAA4B,EAC5B,2BAA2B,EAC3B,qBAAqB,EACrB,iBAAiB,EACjB,wBAAwB,EACzB,MAAM,YAAY,CAAC;AASpB,wBAAgB,uBAAuB,CAAC,GAAG,CAAC,EAAE,MAAM;;;;;;;;sBAS9B,UAAU,QAAQ,SAAS,GAAG,UAAU,GAAG,IAAI;yBAG5C,iBAAiB,GAAG,iBAAiB;iCAG7B,wBAAwB,GAAG,wBAAwB,GAAG,IAAI;iCAG1D,UAAU,GAAG,UAAU,GAAG,IAAI;EAI9D;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,4BAA4B,GACpC,MAAM,GAAG,SAAS,CAkCpB;AAMD,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,qBAAqB,GAC7B,2BAA2B,CAY7B;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE;IAAE,aAAa,CAAC,UAAU,EAAE,2BAA2B,GAAG,OAAO,CAAA;CAAE,EACzE,UAAU,EAAE,2BAA2B,GACtC,IAAI,CAWN;AAED,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,2BAA2B,GAAG,IAAI,CAIzF;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAqBhF;AAED,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GAChE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAO3C;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GAC3D,IAAI,CAON;AAED,wBAAgB,aAAa,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,SAAS,GAAG,CAAC,GAAG,IAAI,CA2CpF;AAED,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,iBAAiB,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAU5E;AAsBD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI,CAU5E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,OAAO,CAwB9E"}
1
+ {"version":3,"file":"sentry.d.ts","sourceRoot":"","sources":["../../src/observability/sentry.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,15 @@
1
1
  import * as Sentry from "@sentry/node";
2
+ import { readEnv } from "../env-manifest.js";
2
3
  const REDACTED = "[REDACTED]";
3
4
  const REDACTED_PATH = "[REDACTED_PATH]";
4
5
  const MAX_STRING_LENGTH = 256;
5
6
  const MAX_DEPTH = 4;
7
+ const MAX_FINGERPRINT_CLASS_LENGTH = 80;
6
8
  const TRACE_ATTRIBUTION_TTL_MS = 5 * 60 * 1000;
7
9
  const SENSITIVE_KEYS = new Set([
8
10
  "accesstoken",
9
11
  "apikey",
12
+ "apitoken",
10
13
  "args",
11
14
  "attachment",
12
15
  "attachments",
@@ -14,6 +17,8 @@ const SENSITIVE_KEYS = new Set([
14
17
  "body",
15
18
  "clientsecret",
16
19
  "code",
20
+ "completion",
21
+ "completions",
17
22
  "content",
18
23
  "contents",
19
24
  "cookie",
@@ -38,12 +43,16 @@ const SENSITIVE_KEYS = new Set([
38
43
  "systemprompt",
39
44
  "text",
40
45
  "thinking",
46
+ "toolarguments",
47
+ "toolargs",
48
+ "toolinput",
49
+ "tooloutput",
41
50
  "token",
42
51
  "url",
43
52
  "uri",
44
53
  "workspacepath",
45
54
  ]);
46
- const ABSOLUTE_PATH_PATTERN = /(?:\/Users\/[^\s"'`]+|\/workspace\/[^\s"'`]+|\/tmp\/[^\s"'`]+|\/var\/folders\/[^\s"'`]+|[A-Za-z]:\\[^\s"'`]+)/;
55
+ const ABSOLUTE_PATH_PATTERN = /(?:(?<![A-Za-z0-9:/])\/(?!\/)[^\s"'`<>]+|[A-Za-z]:\\[^\s"'`<>]+)/;
47
56
  const TOKEN_PATTERNS = [
48
57
  /\bsk-[A-Za-z0-9_-]{12,}\b/,
49
58
  /\bxox[a-z]-[A-Za-z0-9-]{10,}\b/,
@@ -51,15 +60,39 @@ const TOKEN_PATTERNS = [
51
60
  /\bgh[pousr]_[A-Za-z0-9]{20,}\b/,
52
61
  ];
53
62
  const traceAttribution = new Map();
54
- export function createSentryInitOptions(dsn) {
63
+ export function createSentryInitOptions(dsn, customOpenTelemetry = false) {
55
64
  return {
56
65
  dsn,
57
- environment: process.env.SENTRY_ENVIRONMENT ?? "production",
58
- enabled: Boolean(dsn) && process.env.SENTRY_ENABLED !== "false",
66
+ environment: readEnv("SENTRY_ENVIRONMENT") ?? "production",
67
+ enabled: Boolean(dsn) && readEnv("SENTRY_ENABLED") !== "false",
68
+ // Also keeps gen_ai inputs/outputs off. Do not add a `dataCollection`
69
+ // block here: its mere presence switches the SDK base to all-true, and
70
+ // prompts and completions start shipping unless every key is set false.
59
71
  sendDefaultPii: false,
60
- tracesSampleRate: 1.0,
72
+ tracesSampleRate: customOpenTelemetry ? undefined : 1.0,
73
+ skipOpenTelemetrySetup: customOpenTelemetry,
74
+ registerEsmLoaderHooks: customOpenTelemetry ? false : undefined,
61
75
  includeLocalVariables: false,
62
76
  enableLogs: true,
77
+ // Sentry's OpenAI APIPromise wrapper leaks a second rejection when an
78
+ // in-flight request is aborted (for example by an agent budget limit).
79
+ // Keep all other default integrations until the upstream wrapper handles
80
+ // both withResponse() branches without an unhandled rejection.
81
+ integrations(defaultIntegrations) {
82
+ const retained = defaultIntegrations.filter((integration) => integration.name !== "OpenAI" &&
83
+ (!customOpenTelemetry ||
84
+ (integration.name !== "Http" && integration.name !== "NodeFetch")));
85
+ if (!customOpenTelemetry)
86
+ return retained;
87
+ // OTel owns span creation and W3C propagation in custom mode. Keep
88
+ // Sentry's HTTP integration for request isolation, but do not let either
89
+ // Sentry integration create spans or inject a second set of headers.
90
+ return [
91
+ ...retained,
92
+ Sentry.httpIntegration({ spans: false, tracePropagation: false }),
93
+ Sentry.nativeNodeFetchIntegration({ tracePropagation: false }),
94
+ ];
95
+ },
63
96
  beforeSend(event, hint) {
64
97
  return sanitizeEvent(event, hint);
65
98
  },
@@ -74,7 +107,7 @@ export function createSentryInitOptions(dsn) {
74
107
  },
75
108
  };
76
109
  }
77
- export function reportUserFacingError(error, options) {
110
+ export function captureSentryError(error, options) {
78
111
  if (options.expected)
79
112
  return undefined;
80
113
  const exception = error instanceof Error ? error : new Error(String(error));
@@ -111,6 +144,34 @@ export function reportUserFacingError(error, options) {
111
144
  return Sentry.captureException(exception);
112
145
  });
113
146
  }
147
+ export function closeSentry(timeoutMs) {
148
+ return Sentry.close(timeoutMs);
149
+ }
150
+ export function recordSentryCounter(name, value, attributes) {
151
+ Sentry.metrics.count(name, value, { attributes });
152
+ }
153
+ export function recordSentryDistribution(name, value, options) {
154
+ Sentry.metrics.distribution(name, value, options);
155
+ }
156
+ export function recordSentryGauge(name, value, options) {
157
+ Sentry.metrics.gauge(name, value, options);
158
+ }
159
+ export function addSentryBreadcrumb(message, data, options = {}) {
160
+ if (options.log)
161
+ Sentry.logger.info(message, data);
162
+ Sentry.addBreadcrumb({
163
+ category: options.category ?? "agent.lifecycle",
164
+ message,
165
+ level: options.level ?? "info",
166
+ data,
167
+ });
168
+ }
169
+ export function withSentryRunScope(context, body) {
170
+ return Sentry.withScope((scope) => {
171
+ applyRunScope(scope, context);
172
+ return body();
173
+ });
174
+ }
114
175
  function setOptionalTag(scope, key, value) {
115
176
  if (value !== undefined)
116
177
  scope.setTag(key, value);
@@ -122,8 +183,9 @@ export function createRunAttributionAttributes(context) {
122
183
  session_key: context.sessionKey,
123
184
  message_id: context.messageId,
124
185
  platform: context.platform,
186
+ conversation_kind: context.conversationKind,
125
187
  user_id: context.userId,
126
- thread_ts: context.threadTs,
188
+ thread_id: context.threadTs,
127
189
  provider: context.provider,
128
190
  model: context.model,
129
191
  });
@@ -140,29 +202,23 @@ export function registerTraceAttribution(span, attributes) {
140
202
  expiresAt: now + TRACE_ATTRIBUTION_TTL_MS,
141
203
  });
142
204
  }
143
- export function updateActiveSpanAttribution(attributes) {
144
- const span = Sentry.getActiveSpan();
145
- if (!span)
146
- return;
147
- registerTraceAttribution(span, attributes);
148
- }
149
205
  export function applyRunScope(scope, context) {
150
206
  const attributes = createRunAttributionAttributes(context);
151
207
  for (const [key, value] of Object.entries(attributes)) {
152
208
  scope.setTag(key, value);
153
209
  }
154
210
  scope.setAttributes(attributes);
155
- scope.setUser({
156
- id: context.userId,
157
- username: context.userName,
158
- });
211
+ // Agent Monitoring groups spans by the platform session identifier.
212
+ scope.setUser({ id: String(attributes.user_id) });
213
+ scope.setConversationId(String(attributes.session_key));
159
214
  scope.setContext("agent_run", {
160
- conversationId: context.conversationId,
161
- channelId: context.conversationId,
162
- sessionKey: context.sessionKey,
163
- messageId: context.messageId,
164
- threadTs: context.threadTs,
215
+ conversationId: attributes.conversation_id,
216
+ channelId: attributes.channel_id,
217
+ sessionKey: attributes.session_key,
218
+ messageId: attributes.message_id,
219
+ threadId: attributes.thread_id,
165
220
  platform: context.platform,
221
+ conversationKind: context.conversationKind,
166
222
  provider: context.provider,
167
223
  model: context.model,
168
224
  });
@@ -173,7 +229,7 @@ export function metricAttributes(attributes) {
173
229
  return value !== undefined;
174
230
  }));
175
231
  }
176
- export function addLifecycleBreadcrumb(message, data) {
232
+ function addLifecycleBreadcrumb(message, data) {
177
233
  Sentry.addBreadcrumb({
178
234
  category: "agent.lifecycle",
179
235
  message,
@@ -190,29 +246,33 @@ export function sanitizeEvent(event, _hint) {
190
246
  extra: sanitizeValue(event.extra),
191
247
  contexts: sanitizeValue(event.contexts),
192
248
  request: sanitizeRequest(event.request),
193
- user: undefined,
249
+ // Keep the identity applyRunScope set so Conversations show who sent each
250
+ // message; drop anything else the SDK may have attached (email, IP).
251
+ user: event.user ? { id: event.user.id, username: event.user.username } : undefined,
194
252
  server_name: undefined,
195
253
  };
196
254
  if (sanitized.message) {
197
- sanitized.message = sanitizeString(sanitized.message);
255
+ sanitized.message = sanitizeTelemetryString(sanitized.message);
198
256
  }
199
257
  if (sanitized.logentry) {
200
258
  sanitized.logentry = {
201
259
  ...sanitized.logentry,
202
- message: sanitized.logentry.message ? sanitizeString(sanitized.logentry.message) : undefined,
260
+ message: sanitized.logentry.message
261
+ ? sanitizeTelemetryString(sanitized.logentry.message)
262
+ : undefined,
203
263
  };
204
264
  }
205
265
  if (sanitized.exception?.values) {
206
266
  sanitized.exception.values = sanitized.exception.values.map((value) => ({
207
267
  ...value,
208
- value: value.value ? sanitizeString(value.value) : value.value,
268
+ value: value.value ? sanitizeTelemetryString(value.value) : value.value,
209
269
  stacktrace: value.stacktrace
210
270
  ? {
211
271
  ...value.stacktrace,
212
272
  frames: value.stacktrace.frames?.map((frame) => ({
213
273
  ...frame,
214
- filename: frame.filename ? sanitizeString(frame.filename) : frame.filename,
215
- abs_path: frame.abs_path ? sanitizeString(frame.abs_path) : frame.abs_path,
274
+ filename: frame.filename ? sanitizeTelemetryString(frame.filename) : frame.filename,
275
+ abs_path: frame.abs_path ? sanitizeTelemetryString(frame.abs_path) : frame.abs_path,
216
276
  vars: undefined,
217
277
  })),
218
278
  }
@@ -259,7 +319,7 @@ export function sanitizeBreadcrumb(breadcrumb) {
259
319
  }
260
320
  return {
261
321
  ...breadcrumb,
262
- message: breadcrumb.message ? sanitizeString(breadcrumb.message) : breadcrumb.message,
322
+ message: breadcrumb.message ? sanitizeTelemetryString(breadcrumb.message) : breadcrumb.message,
263
323
  data: sanitizeValue(breadcrumb.data),
264
324
  };
265
325
  }
@@ -272,7 +332,7 @@ export function sanitizeValue(value, key, depth = 0) {
272
332
  return summarizeValue(value, key);
273
333
  }
274
334
  if (typeof value === "string") {
275
- return sanitizeString(value);
335
+ return sanitizeTelemetryString(value);
276
336
  }
277
337
  if (Array.isArray(value)) {
278
338
  return value.slice(0, 20).map((entry) => sanitizeValue(entry, key, depth + 1));
@@ -326,7 +386,7 @@ function summarizeValue(value, key) {
326
386
  }
327
387
  return `[Redacted ${label}]`;
328
388
  }
329
- function sanitizeString(value) {
389
+ export function sanitizeTelemetryString(value) {
330
390
  let sanitized = value.replace(new RegExp(ABSOLUTE_PATH_PATTERN, "g"), REDACTED_PATH);
331
391
  for (const pattern of TOKEN_PATTERNS) {
332
392
  sanitized = sanitized.replace(new RegExp(pattern, "g"), REDACTED);
@@ -336,4 +396,88 @@ function sanitizeString(value) {
336
396
  }
337
397
  return sanitized;
338
398
  }
399
+ /**
400
+ * Subagent outcomes that page. Everything else is a bounded, expected end
401
+ * state the parent model already sees in the tool result: a budget or clock
402
+ * ran out, the caller aborted, or a dependency failed upstream.
403
+ */
404
+ const UNEXPECTED_SUBAGENT_STATUSES = new Set([
405
+ "failed",
406
+ "invalid_output",
407
+ ]);
408
+ /**
409
+ * Record one subagent outcome: a run counter and duration for every status,
410
+ * a lifecycle breadcrumb, and a Sentry error only for statuses in
411
+ * `UNEXPECTED_SUBAGENT_STATUSES`. Fingerprinted on the error's prefix before
412
+ * the first colon so one failure class is one issue regardless of which
413
+ * tool, file, or model message follows it.
414
+ */
415
+ export function recordSubagentOutcome(report) {
416
+ const attributes = metricAttributes({
417
+ status: report.status,
418
+ profile: report.profile,
419
+ mode: report.mode,
420
+ });
421
+ Sentry.metrics.count("agent.subagent.runs", 1, { attributes });
422
+ if (report.durationMs !== undefined) {
423
+ Sentry.metrics.distribution("agent.subagent.duration", report.durationMs, {
424
+ unit: "millisecond",
425
+ attributes,
426
+ });
427
+ }
428
+ addLifecycleBreadcrumb("agent.subagent.completed", {
429
+ item_id: report.itemId,
430
+ status: report.status,
431
+ profile: report.profile,
432
+ mode: report.mode,
433
+ turns: report.turns,
434
+ tool_calls: report.toolCalls,
435
+ tokens: report.tokens,
436
+ cost_usd: report.costUsd,
437
+ duration_ms: report.durationMs,
438
+ cleanup_pending: report.cleanupPending,
439
+ });
440
+ if (!UNEXPECTED_SUBAGENT_STATUSES.has(report.status))
441
+ return undefined;
442
+ const errorClass = sanitizeTelemetryString((report.error ?? report.status).split(":")[0].trim()).slice(0, MAX_FINGERPRINT_CLASS_LENGTH);
443
+ return captureSentryError(new Error(`Subagent ${report.status}: ${report.error ?? "no error detail"}`), {
444
+ domain: "subagent",
445
+ surface: "subagent_tool",
446
+ operation: "run",
447
+ severity: "error",
448
+ toolName: "subagent",
449
+ fingerprint: ["subagent", report.status, errorClass],
450
+ tags: {
451
+ subagent_status: report.status,
452
+ subagent_profile: report.profile,
453
+ subagent_mode: report.mode,
454
+ cleanup_pending: report.cleanupPending,
455
+ },
456
+ context: {
457
+ itemId: report.itemId,
458
+ error: report.error,
459
+ turns: report.turns,
460
+ toolCalls: report.toolCalls,
461
+ tokens: report.tokens,
462
+ costUsd: report.costUsd,
463
+ durationMs: report.durationMs,
464
+ },
465
+ });
466
+ }
467
+ /**
468
+ * A subagent that never started: unknown profile, ungranted tool, or a
469
+ * harness rejection. The throw still reaches the parent model as a tool
470
+ * error; this only makes sure it also reaches Sentry.
471
+ */
472
+ export function reportSubagentLaunchError(error, report) {
473
+ return captureSentryError(error, {
474
+ domain: "subagent",
475
+ surface: "subagent_tool",
476
+ operation: "launch",
477
+ severity: "error",
478
+ toolName: "subagent",
479
+ tags: { subagent_profile: report.profile, subagent_mode: report.mode },
480
+ context: { itemId: report.itemId },
481
+ });
482
+ }
339
483
  //# sourceMappingURL=sentry.js.map