@cursor/july 0.1.102 → 0.1.103

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 (715) hide show
  1. package/AGENTS.md +34 -32
  2. package/README.md +10 -12
  3. package/dist/ab.d.ts +1 -1
  4. package/dist/ab.js +1 -1
  5. package/dist/bin/agent-serve.d.ts +12 -12
  6. package/dist/bin/agent-serve.js +114 -36
  7. package/dist/channels/bitbucket/api.d.ts +176 -0
  8. package/dist/channels/bitbucket/api.d.ts.map +1 -0
  9. package/dist/channels/bitbucket/api.js +419 -0
  10. package/dist/channels/bitbucket/binding.d.ts +71 -0
  11. package/dist/channels/bitbucket/binding.d.ts.map +1 -0
  12. package/dist/channels/bitbucket/binding.js +269 -0
  13. package/dist/channels/bitbucket/bitbucket-channel.d.ts +33 -0
  14. package/dist/channels/bitbucket/bitbucket-channel.d.ts.map +1 -0
  15. package/dist/channels/bitbucket/bitbucket-channel.js +120 -0
  16. package/dist/channels/bitbucket/bitbucket-webhook.d.ts +61 -0
  17. package/dist/channels/bitbucket/bitbucket-webhook.d.ts.map +1 -0
  18. package/dist/channels/bitbucket/bitbucket-webhook.js +394 -0
  19. package/dist/channels/bitbucket/checks.d.ts +67 -0
  20. package/dist/channels/bitbucket/checks.d.ts.map +1 -0
  21. package/dist/channels/bitbucket/checks.js +102 -0
  22. package/dist/channels/bitbucket/cursor-account.d.ts +37 -0
  23. package/dist/channels/bitbucket/cursor-account.d.ts.map +1 -0
  24. package/dist/channels/bitbucket/cursor-account.js +65 -0
  25. package/dist/channels/bitbucket/defaults.d.ts +26 -0
  26. package/dist/channels/bitbucket/defaults.d.ts.map +1 -0
  27. package/dist/channels/bitbucket/defaults.js +73 -0
  28. package/dist/channels/bitbucket/events.d.ts +22 -0
  29. package/dist/channels/bitbucket/events.d.ts.map +1 -0
  30. package/dist/channels/bitbucket/events.js +64 -0
  31. package/dist/channels/bitbucket/index.d.ts +34 -0
  32. package/dist/channels/bitbucket/index.d.ts.map +1 -0
  33. package/dist/channels/bitbucket/index.js +33 -0
  34. package/dist/channels/bitbucket/replay.d.ts +63 -0
  35. package/dist/channels/bitbucket/replay.d.ts.map +1 -0
  36. package/dist/channels/bitbucket/replay.js +304 -0
  37. package/dist/channels/bitbucket/state.d.ts +35 -0
  38. package/dist/channels/bitbucket/state.d.ts.map +1 -0
  39. package/dist/channels/bitbucket/state.js +21 -0
  40. package/dist/channels/bitbucket/types.d.ts +229 -0
  41. package/dist/channels/bitbucket/types.d.ts.map +1 -0
  42. package/dist/channels/bitbucket/types.js +1 -0
  43. package/dist/channels/deployments/deployments-channel.d.ts +22 -14
  44. package/dist/channels/deployments/deployments-channel.d.ts.map +1 -1
  45. package/dist/channels/deployments/deployments-channel.js +25 -27
  46. package/dist/channels/deployments/types.d.ts +12 -6
  47. package/dist/channels/deployments/types.d.ts.map +1 -1
  48. package/dist/channels/github/binding.d.ts +6 -0
  49. package/dist/channels/github/binding.d.ts.map +1 -1
  50. package/dist/channels/github/binding.js +3 -3
  51. package/dist/channels/github/cursor-account.d.ts +7 -3
  52. package/dist/channels/github/cursor-account.d.ts.map +1 -1
  53. package/dist/channels/github/cursor-account.js +10 -6
  54. package/dist/channels/github/events.d.ts +1 -1
  55. package/dist/channels/github/events.js +1 -1
  56. package/dist/channels/github/forward.d.ts +1 -1
  57. package/dist/channels/github/forward.d.ts.map +1 -1
  58. package/dist/channels/github/forward.js +3 -2
  59. package/dist/channels/github/github-channel.d.ts +29 -39
  60. package/dist/channels/github/github-channel.d.ts.map +1 -1
  61. package/dist/channels/github/github-channel.js +68 -101
  62. package/dist/channels/github/replay.d.ts +1 -1
  63. package/dist/channels/github/replay.js +1 -1
  64. package/dist/channels/github/state.d.ts +2 -0
  65. package/dist/channels/github/state.d.ts.map +1 -1
  66. package/dist/channels/github/state.js +14 -11
  67. package/dist/channels/github/types.d.ts +2 -4
  68. package/dist/channels/github/types.d.ts.map +1 -1
  69. package/dist/channels/gitlab/api.d.ts +91 -0
  70. package/dist/channels/gitlab/api.d.ts.map +1 -0
  71. package/dist/channels/gitlab/api.js +150 -0
  72. package/dist/channels/gitlab/binding.d.ts +58 -0
  73. package/dist/channels/gitlab/binding.d.ts.map +1 -0
  74. package/dist/channels/gitlab/binding.js +139 -0
  75. package/dist/channels/gitlab/checks.d.ts +110 -0
  76. package/dist/channels/gitlab/checks.d.ts.map +1 -0
  77. package/dist/channels/gitlab/checks.js +126 -0
  78. package/dist/channels/gitlab/cursor-account.d.ts +36 -0
  79. package/dist/channels/gitlab/cursor-account.d.ts.map +1 -0
  80. package/dist/channels/gitlab/cursor-account.js +65 -0
  81. package/dist/channels/gitlab/defaults.d.ts +25 -0
  82. package/dist/channels/gitlab/defaults.d.ts.map +1 -0
  83. package/dist/channels/gitlab/defaults.js +60 -0
  84. package/dist/channels/gitlab/events.d.ts +12 -0
  85. package/dist/channels/gitlab/events.d.ts.map +1 -0
  86. package/dist/channels/gitlab/events.js +28 -0
  87. package/dist/channels/gitlab/gitlab-channel.d.ts +33 -0
  88. package/dist/channels/gitlab/gitlab-channel.d.ts.map +1 -0
  89. package/dist/channels/gitlab/gitlab-channel.js +120 -0
  90. package/dist/channels/gitlab/gitlab-webhook.d.ts +45 -0
  91. package/dist/channels/gitlab/gitlab-webhook.d.ts.map +1 -0
  92. package/dist/channels/gitlab/gitlab-webhook.js +397 -0
  93. package/dist/channels/gitlab/index.d.ts +31 -0
  94. package/dist/channels/gitlab/index.d.ts.map +1 -0
  95. package/dist/channels/gitlab/index.js +30 -0
  96. package/dist/channels/gitlab/replay.d.ts +105 -0
  97. package/dist/channels/gitlab/replay.d.ts.map +1 -0
  98. package/dist/channels/gitlab/replay.js +206 -0
  99. package/dist/channels/gitlab/state.d.ts +33 -0
  100. package/dist/channels/gitlab/state.d.ts.map +1 -0
  101. package/dist/channels/gitlab/state.js +23 -0
  102. package/dist/channels/gitlab/types.d.ts +214 -0
  103. package/dist/channels/gitlab/types.d.ts.map +1 -0
  104. package/dist/channels/gitlab/types.js +1 -0
  105. package/dist/channels/origin/api.d.ts.map +1 -1
  106. package/dist/channels/origin/api.js +4 -2
  107. package/dist/channels/origin/origin-channel.d.ts +4 -9
  108. package/dist/channels/origin/origin-channel.d.ts.map +1 -1
  109. package/dist/channels/origin/origin-channel.js +8 -48
  110. package/dist/channels/origin/types.d.ts +20 -2
  111. package/dist/channels/origin/types.d.ts.map +1 -1
  112. package/dist/channels/slack/eval-directive.d.ts.map +1 -1
  113. package/dist/channels/slack/eval-directive.js +1 -7
  114. package/dist/channels/slack/init.d.ts.map +1 -1
  115. package/dist/channels/slack/init.js +3 -3
  116. package/dist/channels/slack/setup.d.ts +1 -1
  117. package/dist/channels/slack/setup.d.ts.map +1 -1
  118. package/dist/channels/slack/setup.js +6 -13
  119. package/dist/channels/slack/types.d.ts +1 -1
  120. package/dist/channels/slack/types.d.ts.map +1 -1
  121. package/dist/channels.d.ts +1 -1
  122. package/dist/channels.d.ts.map +1 -1
  123. package/dist/client.d.ts +1 -1
  124. package/dist/client.js +1 -1
  125. package/dist/connections.d.ts +1 -1
  126. package/dist/connections.js +1 -1
  127. package/dist/docs/404.html +2 -2
  128. package/dist/docs/ab.html +4 -4
  129. package/dist/docs/assets/{app.CLA03RCz.js → app.DW9pXkpL.js} +1 -1
  130. package/dist/docs/assets/chunks/@localSearchIndexroot.nrl1ifBq.js +1 -0
  131. package/dist/docs/assets/chunks/{VPLocalSearchBox.ifxv-cJV.js → VPLocalSearchBox.CdEIUwDg.js} +1 -1
  132. package/dist/docs/assets/chunks/{theme.DWCwM6p-.js → theme.YZMHgPgg.js} +2 -2
  133. package/dist/docs/assets/concepts.md.DgEcZOfT.js +1 -0
  134. package/dist/docs/assets/{concepts.md.rPzW2HZN.lean.js → concepts.md.DgEcZOfT.lean.js} +1 -1
  135. package/dist/docs/assets/{evals.md.CPzDAwoH.js → evals.md.CbMoebP1.js} +1 -1
  136. package/dist/docs/assets/guides_cloud-agents.md.DS8RIjwx.js +9 -0
  137. package/dist/docs/assets/{guides_github.md.BtPr9GaP.js → guides_github.md.DKYiT9do.js} +1 -1
  138. package/dist/docs/assets/{guides_opentelemetry.md.BVTXDCRg.js → guides_opentelemetry.md.COh9jFVg.js} +7 -8
  139. package/dist/docs/assets/{guides_opentelemetry.md.BVTXDCRg.lean.js → guides_opentelemetry.md.COh9jFVg.lean.js} +1 -1
  140. package/dist/docs/assets/{index.md.Kiht7ell.js → index.md.D75GWhPl.js} +1 -1
  141. package/dist/docs/assets/{reference_agent-config.md.BHeYMgme.js → reference_agent-config.md.CHNpiyp4.js} +3 -3
  142. package/dist/docs/assets/{reference_channels.md.Cd2f2iyV.js → reference_channels.md.Dz8Cnudp.js} +2 -2
  143. package/dist/docs/assets/{reference_channels.md.Cd2f2iyV.lean.js → reference_channels.md.Dz8Cnudp.lean.js} +1 -1
  144. package/dist/docs/assets/{reference_cli.md.DfoeyvL0.js → reference_cli.md.CJNc_xYK.js} +1 -1
  145. package/dist/docs/assets/{reference_extensions.md.9WQMZe1l.js → reference_extensions.md.DykHW3qL.js} +11 -5
  146. package/dist/docs/assets/reference_extensions.md.DykHW3qL.lean.js +1 -0
  147. package/dist/docs/assets/reference_hooks.md.Ddt5DdgJ.js +73 -0
  148. package/dist/docs/assets/{reference_hooks.md.a8BJxMR5.lean.js → reference_hooks.md.Ddt5DdgJ.lean.js} +1 -1
  149. package/dist/docs/assets/{reference_playground.md.DnX5nL-B.js → reference_playground.md.4myJPxrf.js} +1 -1
  150. package/dist/docs/assets/{reference_project-layout.md.CA6QP6Lw.js → reference_project-layout.md.DuBu9a96.js} +2 -2
  151. package/dist/docs/assets/reference_result.md.BK5SxDrf.js +19 -0
  152. package/dist/docs/assets/reference_result.md.BK5SxDrf.lean.js +1 -0
  153. package/dist/docs/assets/{reference_sessions.md.NxFP_CAC.js → reference_sessions.md.CueyOHSL.js} +1 -1
  154. package/dist/docs/assets/{reference_sessions.md.NxFP_CAC.lean.js → reference_sessions.md.CueyOHSL.lean.js} +1 -1
  155. package/dist/docs/assets/{reference_tools.md.B1up2r9W.js → reference_tools.md.aGrn99hP.js} +1 -1
  156. package/dist/docs/assets/skills_framework-map.md.haibFyoB.js +1 -0
  157. package/dist/docs/assets/{skills_otel.md.CgiZryR3.js → skills_otel.md.CqhobH3B.js} +3 -3
  158. package/dist/docs/assets/{skills_otel.md.CgiZryR3.lean.js → skills_otel.md.CqhobH3B.lean.js} +1 -1
  159. package/dist/docs/assets/{templates_pr-autofixer.md.x5zl6-GT.js → templates_pr-autofixer.md.Bds_XWcV.js} +2 -2
  160. package/dist/docs/assets/{templates_pr-autofixer.md.x5zl6-GT.lean.js → templates_pr-autofixer.md.Bds_XWcV.lean.js} +1 -1
  161. package/dist/docs/building-with-agents.html +4 -4
  162. package/dist/docs/concepts.html +5 -5
  163. package/dist/docs/concepts.md +2 -4
  164. package/dist/docs/deployment.html +4 -4
  165. package/dist/docs/design/runtime-abstraction.md +2 -3
  166. package/dist/docs/evals.html +6 -6
  167. package/dist/docs/evals.md +9 -7
  168. package/dist/docs/guides/agent-to-agent.html +4 -4
  169. package/dist/docs/guides/cloud-agents.html +6 -6
  170. package/dist/docs/guides/cloud-agents.md +4 -6
  171. package/dist/docs/guides/convert-automation.html +4 -4
  172. package/dist/docs/guides/github.html +6 -6
  173. package/dist/docs/guides/github.md +0 -1
  174. package/dist/docs/guides/human-in-the-loop.html +4 -4
  175. package/dist/docs/guides/mcp-oauth.html +5 -5
  176. package/dist/docs/guides/opentelemetry.html +10 -11
  177. package/dist/docs/guides/opentelemetry.md +41 -17
  178. package/dist/docs/guides/slack.html +4 -4
  179. package/dist/docs/guides/webhooks.html +4 -4
  180. package/dist/docs/hashmap.json +1 -1
  181. package/dist/docs/hillclimbing.html +4 -4
  182. package/dist/docs/index.html +6 -6
  183. package/dist/docs/index.md +2 -2
  184. package/dist/docs/llms-full.txt +501 -262
  185. package/dist/docs/llms.txt +2 -2
  186. package/dist/docs/quickstart.html +4 -4
  187. package/dist/docs/reference/agent-config.html +8 -8
  188. package/dist/docs/reference/agent-config.md +6 -10
  189. package/dist/docs/reference/artifacts.html +5 -5
  190. package/dist/docs/reference/channels.html +6 -6
  191. package/dist/docs/reference/channels.md +18 -8
  192. package/dist/docs/reference/cli.html +5 -5
  193. package/dist/docs/reference/cli.md +3 -4
  194. package/dist/docs/reference/connections.html +4 -4
  195. package/dist/docs/reference/extensions.html +16 -10
  196. package/dist/docs/reference/extensions.md +86 -22
  197. package/dist/docs/reference/hooks.html +69 -10
  198. package/dist/docs/reference/hooks.md +215 -46
  199. package/dist/docs/reference/http-api.html +4 -4
  200. package/dist/docs/reference/instructions.html +4 -4
  201. package/dist/docs/reference/playground.html +5 -5
  202. package/dist/docs/reference/playground.md +3 -0
  203. package/dist/docs/reference/project-layout.html +6 -6
  204. package/dist/docs/reference/project-layout.md +2 -1
  205. package/dist/docs/reference/prompt.html +4 -4
  206. package/dist/docs/reference/result.html +45 -0
  207. package/dist/docs/reference/result.md +89 -0
  208. package/dist/docs/reference/schedules.html +4 -4
  209. package/dist/docs/reference/sessions.html +5 -5
  210. package/dist/docs/reference/sessions.md +3 -1
  211. package/dist/docs/reference/skills.html +4 -4
  212. package/dist/docs/reference/subagents.html +4 -4
  213. package/dist/docs/reference/tools.html +5 -5
  214. package/dist/docs/reference/tools.md +1 -2
  215. package/dist/docs/scaffolding-agents.html +4 -4
  216. package/dist/docs/skills/ab.html +4 -4
  217. package/dist/docs/skills/create-agent.html +4 -4
  218. package/dist/docs/skills/debug.html +4 -4
  219. package/dist/docs/skills/evals.html +4 -4
  220. package/dist/docs/skills/framework-map.html +5 -5
  221. package/dist/docs/skills/framework-map.md +3 -1
  222. package/dist/docs/skills/github.html +4 -4
  223. package/dist/docs/skills/hillclimb.html +4 -4
  224. package/dist/docs/skills/index.html +4 -4
  225. package/dist/docs/skills/mcp-auth.html +4 -4
  226. package/dist/docs/skills/otel.html +7 -7
  227. package/dist/docs/skills/otel.md +8 -3
  228. package/dist/docs/skills/setup-slack.html +4 -4
  229. package/dist/docs/storage.html +4 -4
  230. package/dist/docs/templates/agentic-owners.html +4 -4
  231. package/dist/docs/templates/agents-md.html +4 -4
  232. package/dist/docs/templates/code-wiki.html +4 -4
  233. package/dist/docs/templates/demo.html +4 -4
  234. package/dist/docs/templates/pr-autofixer.html +6 -6
  235. package/dist/docs/templates/pr-autofixer.md +0 -3
  236. package/dist/docs/templates/security-help.html +4 -4
  237. package/dist/docs/templates/security-reviewer.html +4 -4
  238. package/dist/docs/templates/triage.html +4 -4
  239. package/dist/docs/troubleshooting.html +4 -4
  240. package/dist/evals.d.ts +1 -1
  241. package/dist/evals.d.ts.map +1 -1
  242. package/dist/extensions.d.ts +20 -7
  243. package/dist/extensions.d.ts.map +1 -1
  244. package/dist/extensions.js +36 -5
  245. package/dist/files.d.ts +16 -3
  246. package/dist/files.d.ts.map +1 -1
  247. package/dist/files.js +16 -3
  248. package/dist/index.d.ts +4 -4
  249. package/dist/index.d.ts.map +1 -1
  250. package/dist/index.js +3 -3
  251. package/dist/internal/ab-snapshot.d.ts.map +1 -1
  252. package/dist/internal/ab-snapshot.js +0 -1
  253. package/dist/internal/advertise-tools.d.ts.map +1 -1
  254. package/dist/internal/advertise-tools.js +1 -3
  255. package/dist/internal/authored-alias-hooks.d.ts +4 -13
  256. package/dist/internal/authored-alias-hooks.d.ts.map +1 -1
  257. package/dist/internal/authored-alias-hooks.js +4 -20
  258. package/dist/internal/authored-loaders.d.ts +2 -3
  259. package/dist/internal/authored-loaders.d.ts.map +1 -1
  260. package/dist/internal/authored-loaders.js +6 -20
  261. package/dist/internal/channel-dispatch.d.ts +43 -0
  262. package/dist/internal/channel-dispatch.d.ts.map +1 -0
  263. package/dist/internal/channel-dispatch.js +77 -0
  264. package/dist/internal/chat-client.d.ts +1 -1
  265. package/dist/internal/chat-client.js +1 -1
  266. package/dist/internal/cli-ax.d.ts +5 -5
  267. package/dist/internal/cli-ax.d.ts.map +1 -1
  268. package/dist/internal/cli-ax.js +5 -5
  269. package/dist/internal/cli-bitbucket.d.ts +33 -0
  270. package/dist/internal/cli-bitbucket.d.ts.map +1 -0
  271. package/dist/internal/cli-bitbucket.js +359 -0
  272. package/dist/internal/cli-convert-automation.d.ts +1 -1
  273. package/dist/internal/cli-convert-automation.js +2 -2
  274. package/dist/internal/cli-cursor.d.ts +1 -1
  275. package/dist/internal/cli-cursor.d.ts.map +1 -1
  276. package/dist/internal/cli-cursor.js +2 -4
  277. package/dist/internal/cli-deploy.d.ts.map +1 -1
  278. package/dist/internal/cli-deploy.js +2 -6
  279. package/dist/internal/cli-github.d.ts +1 -1
  280. package/dist/internal/cli-github.js +3 -3
  281. package/dist/internal/cli-gitlab.d.ts +37 -0
  282. package/dist/internal/cli-gitlab.d.ts.map +1 -0
  283. package/dist/internal/cli-gitlab.js +380 -0
  284. package/dist/internal/cli-mcp.d.ts.map +1 -1
  285. package/dist/internal/cli-mcp.js +2 -6
  286. package/dist/internal/cli-slack.d.ts +1 -1
  287. package/dist/internal/cli-slack.d.ts.map +1 -1
  288. package/dist/internal/cli-slack.js +2 -4
  289. package/dist/internal/continuation-channel.d.ts +14 -0
  290. package/dist/internal/continuation-channel.d.ts.map +1 -1
  291. package/dist/internal/continuation-channel.js +56 -3
  292. package/dist/internal/continuation-identity.d.ts +14 -15
  293. package/dist/internal/continuation-identity.d.ts.map +1 -1
  294. package/dist/internal/continuation-identity.js +182 -7
  295. package/dist/internal/conversation-mirror.d.ts.map +1 -1
  296. package/dist/internal/conversation-mirror.js +4 -3
  297. package/dist/internal/convert-automation/types.d.ts +1 -1
  298. package/dist/internal/convert-automation/types.js +1 -1
  299. package/dist/internal/cursor/account-mcp.d.ts.map +1 -1
  300. package/dist/internal/cursor/account-mcp.js +1 -3
  301. package/dist/internal/cursor/backend-client.d.ts +5 -4
  302. package/dist/internal/cursor/backend-client.d.ts.map +1 -1
  303. package/dist/internal/cursor/backend-client.js +5 -6
  304. package/dist/internal/cursor/bound-secret-file.d.ts +56 -0
  305. package/dist/internal/cursor/bound-secret-file.d.ts.map +1 -0
  306. package/dist/internal/cursor/bound-secret-file.js +88 -0
  307. package/dist/internal/cursor/credentials.d.ts +39 -5
  308. package/dist/internal/cursor/credentials.d.ts.map +1 -1
  309. package/dist/internal/cursor/credentials.js +58 -8
  310. package/dist/internal/cursor/hosted-bound-secrets.d.ts +41 -0
  311. package/dist/internal/cursor/hosted-bound-secrets.d.ts.map +1 -0
  312. package/dist/internal/cursor/hosted-bound-secrets.js +54 -0
  313. package/dist/internal/cursor/hosted-deployment-secrets.d.ts +19 -5
  314. package/dist/internal/cursor/hosted-deployment-secrets.d.ts.map +1 -1
  315. package/dist/internal/cursor/hosted-deployment-secrets.js +29 -9
  316. package/dist/internal/cursor/hosted-store-secrets.d.ts +1 -1
  317. package/dist/internal/cursor/hosted-store-secrets.js +1 -1
  318. package/dist/internal/cursor-account-mcp-auth.d.ts.map +1 -1
  319. package/dist/internal/cursor-account-mcp-auth.js +2 -4
  320. package/dist/internal/cursor-deployment-relay.d.ts +6 -2
  321. package/dist/internal/cursor-deployment-relay.d.ts.map +1 -1
  322. package/dist/internal/cursor-deployment-relay.js +13 -9
  323. package/dist/internal/deploy-manifest.d.ts +1 -1
  324. package/dist/internal/deploy-manifest.d.ts.map +1 -1
  325. package/dist/internal/deploy-manifest.js +1 -1
  326. package/dist/internal/discovery/ab.d.ts +1 -1
  327. package/dist/internal/discovery/ab.d.ts.map +1 -1
  328. package/dist/internal/discovery/ab.js +21 -9
  329. package/dist/internal/discovery/agent.d.ts +6 -1
  330. package/dist/internal/discovery/agent.d.ts.map +1 -1
  331. package/dist/internal/discovery/agent.js +65 -116
  332. package/dist/internal/discovery/channels.d.ts +1 -1
  333. package/dist/internal/discovery/channels.d.ts.map +1 -1
  334. package/dist/internal/discovery/channels.js +14 -14
  335. package/dist/internal/discovery/connections.d.ts +1 -5
  336. package/dist/internal/discovery/connections.d.ts.map +1 -1
  337. package/dist/internal/discovery/connections.js +30 -44
  338. package/dist/internal/discovery/cursor-plugin.d.ts.map +1 -1
  339. package/dist/internal/discovery/cursor-plugin.js +1 -3
  340. package/dist/internal/discovery/extension-overlay.d.ts +32 -0
  341. package/dist/internal/discovery/extension-overlay.d.ts.map +1 -0
  342. package/dist/internal/discovery/extension-overlay.js +191 -0
  343. package/dist/internal/discovery/extensions.d.ts +11 -2
  344. package/dist/internal/discovery/extensions.d.ts.map +1 -1
  345. package/dist/internal/discovery/extensions.js +211 -74
  346. package/dist/internal/discovery/hooks.d.ts +1 -1
  347. package/dist/internal/discovery/hooks.d.ts.map +1 -1
  348. package/dist/internal/discovery/hooks.js +15 -2
  349. package/dist/internal/discovery/info.d.ts.map +1 -1
  350. package/dist/internal/discovery/info.js +7 -1
  351. package/dist/internal/discovery/modules.d.ts.map +1 -1
  352. package/dist/internal/discovery/modules.js +8 -2
  353. package/dist/internal/discovery/names.d.ts +1 -1
  354. package/dist/internal/discovery/names.d.ts.map +1 -1
  355. package/dist/internal/discovery/names.js +1 -0
  356. package/dist/internal/discovery/project.d.ts +0 -2
  357. package/dist/internal/discovery/project.d.ts.map +1 -1
  358. package/dist/internal/discovery/project.js +64 -10
  359. package/dist/internal/discovery/runtime.d.ts.map +1 -1
  360. package/dist/internal/discovery/runtime.js +1 -2
  361. package/dist/internal/discovery/schedules.d.ts +1 -1
  362. package/dist/internal/discovery/schedules.d.ts.map +1 -1
  363. package/dist/internal/discovery/schedules.js +23 -2
  364. package/dist/internal/discovery/services.d.ts +6 -2
  365. package/dist/internal/discovery/services.d.ts.map +1 -1
  366. package/dist/internal/discovery/services.js +31 -1
  367. package/dist/internal/discovery/skills.d.ts +1 -6
  368. package/dist/internal/discovery/skills.d.ts.map +1 -1
  369. package/dist/internal/discovery/skills.js +8 -3
  370. package/dist/internal/discovery/subagent.d.ts +3 -0
  371. package/dist/internal/discovery/subagent.d.ts.map +1 -1
  372. package/dist/internal/discovery/subagent.js +109 -0
  373. package/dist/internal/discovery.d.ts +1 -2
  374. package/dist/internal/discovery.d.ts.map +1 -1
  375. package/dist/internal/discovery.js +1 -2
  376. package/dist/internal/distribution.d.ts +10 -27
  377. package/dist/internal/distribution.d.ts.map +1 -1
  378. package/dist/internal/distribution.js +25 -73
  379. package/dist/internal/docs-site.js +1 -1
  380. package/dist/internal/eval-run-store.d.ts +0 -1
  381. package/dist/internal/eval-run-store.d.ts.map +1 -1
  382. package/dist/internal/eval-runner.d.ts.map +1 -1
  383. package/dist/internal/framework-file-storage.d.ts +8 -0
  384. package/dist/internal/framework-file-storage.d.ts.map +1 -1
  385. package/dist/internal/framework-file-storage.js +8 -8
  386. package/dist/internal/github-fanout.d.ts +1 -1
  387. package/dist/internal/github-fanout.js +1 -1
  388. package/dist/internal/guest-network.d.ts +101 -0
  389. package/dist/internal/guest-network.d.ts.map +1 -0
  390. package/dist/internal/guest-network.js +304 -0
  391. package/dist/internal/host-otel.d.ts +3 -3
  392. package/dist/internal/host-otel.d.ts.map +1 -1
  393. package/dist/internal/host-otel.js +8 -4
  394. package/dist/internal/hosted-admission-adapter.d.ts +8 -7
  395. package/dist/internal/hosted-admission-adapter.d.ts.map +1 -1
  396. package/dist/internal/hosted-delivery-protocol.d.ts +6 -0
  397. package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
  398. package/dist/internal/hosted-delivery-protocol.js +18 -5
  399. package/dist/internal/hosted-delivery.d.ts +18 -0
  400. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  401. package/dist/internal/hosted-delivery.js +248 -118
  402. package/dist/internal/http-channel.d.ts.map +1 -1
  403. package/dist/internal/http-channel.js +1 -3
  404. package/dist/internal/init-interview.d.ts.map +1 -1
  405. package/dist/internal/init-interview.js +1 -3
  406. package/dist/internal/init-project.d.ts +2 -2
  407. package/dist/internal/init-project.js +2 -2
  408. package/dist/internal/inline-stdio-define-stub.d.ts +1 -1
  409. package/dist/internal/inline-stdio-define-stub.d.ts.map +1 -1
  410. package/dist/internal/inline-stdio-define-stub.js +1 -1
  411. package/dist/internal/is-record.d.ts +2 -0
  412. package/dist/internal/is-record.d.ts.map +1 -0
  413. package/dist/internal/is-record.js +3 -0
  414. package/dist/internal/json-schema.d.ts.map +1 -1
  415. package/dist/internal/json-schema.js +18 -10
  416. package/dist/internal/local-control-plane.d.ts +1 -2
  417. package/dist/internal/local-control-plane.d.ts.map +1 -1
  418. package/dist/internal/local-control-plane.js +3 -20
  419. package/dist/internal/mcp-endpoint.d.ts.map +1 -1
  420. package/dist/internal/mcp-endpoint.js +1 -3
  421. package/dist/internal/otel/collector.d.ts +12 -3
  422. package/dist/internal/otel/collector.d.ts.map +1 -1
  423. package/dist/internal/otel/collector.js +77 -125
  424. package/dist/internal/otel/config.d.ts +0 -2
  425. package/dist/internal/otel/config.d.ts.map +1 -1
  426. package/dist/internal/otel/config.js +17 -20
  427. package/dist/internal/otel/http.d.ts +2 -0
  428. package/dist/internal/otel/http.d.ts.map +1 -1
  429. package/dist/internal/otel/http.js +7 -1
  430. package/dist/internal/otel/mcp.d.ts.map +1 -1
  431. package/dist/internal/otel/mcp.js +3 -16
  432. package/dist/internal/otel/runtime.d.ts +26 -1
  433. package/dist/internal/otel/runtime.d.ts.map +1 -1
  434. package/dist/internal/otel/runtime.js +164 -15
  435. package/dist/internal/package-inline-stdio.d.ts.map +1 -1
  436. package/dist/internal/package-inline-stdio.js +3 -11
  437. package/dist/internal/playground/toolchain.d.ts +1 -1
  438. package/dist/internal/playground/toolchain.d.ts.map +1 -1
  439. package/dist/internal/playground/toolchain.js +1 -1
  440. package/dist/internal/request-error-status.d.ts +12 -0
  441. package/dist/internal/request-error-status.d.ts.map +1 -0
  442. package/dist/internal/request-error-status.js +52 -0
  443. package/dist/internal/resolve-prod-target.d.ts +1 -1
  444. package/dist/internal/resolve-prod-target.d.ts.map +1 -1
  445. package/dist/internal/resolve-prod-target.js +3 -7
  446. package/dist/internal/result-output.d.ts +18 -0
  447. package/dist/internal/result-output.d.ts.map +1 -0
  448. package/dist/internal/result-output.js +33 -0
  449. package/dist/internal/run-client.d.ts +2 -2
  450. package/dist/internal/run-client.js +2 -2
  451. package/dist/internal/runtime-dispatch-runner.d.ts +1 -11
  452. package/dist/internal/runtime-dispatch-runner.d.ts.map +1 -1
  453. package/dist/internal/runtime-dispatch-runner.js +2 -15
  454. package/dist/internal/sdk-runner.d.ts.map +1 -1
  455. package/dist/internal/sdk-runner.js +3 -6
  456. package/dist/internal/server.d.ts.map +1 -1
  457. package/dist/internal/server.js +110 -35
  458. package/dist/internal/session-cost.d.ts +3 -3
  459. package/dist/internal/session-cost.d.ts.map +1 -1
  460. package/dist/internal/session-cost.js +3 -3
  461. package/dist/internal/session-engine.d.ts +26 -11
  462. package/dist/internal/session-engine.d.ts.map +1 -1
  463. package/dist/internal/session-engine.js +146 -76
  464. package/dist/internal/session-run-log.d.ts.map +1 -1
  465. package/dist/internal/session-run-log.js +1 -3
  466. package/dist/internal/skills-sync.d.ts +1 -4
  467. package/dist/internal/skills-sync.d.ts.map +1 -1
  468. package/dist/internal/skills-sync.js +10 -50
  469. package/dist/internal/sleep.d.ts +2 -0
  470. package/dist/internal/sleep.d.ts.map +1 -0
  471. package/dist/internal/sleep.js +3 -0
  472. package/dist/internal/store-mirror.d.ts +29 -0
  473. package/dist/internal/store-mirror.d.ts.map +1 -0
  474. package/dist/internal/store-mirror.js +70 -0
  475. package/dist/internal/tenant-slack/relay.d.ts +73 -0
  476. package/dist/internal/tenant-slack/relay.d.ts.map +1 -0
  477. package/dist/internal/tenant-slack/relay.js +138 -0
  478. package/dist/internal/testing/scm-continuation-fixtures.d.ts +33 -0
  479. package/dist/internal/testing/scm-continuation-fixtures.d.ts.map +1 -0
  480. package/dist/internal/testing/scm-continuation-fixtures.js +253 -0
  481. package/dist/internal/workspace-sync.d.ts +22 -0
  482. package/dist/internal/workspace-sync.d.ts.map +1 -0
  483. package/dist/internal/workspace-sync.js +49 -0
  484. package/dist/internal/workspace.d.ts +7 -0
  485. package/dist/internal/workspace.d.ts.map +1 -1
  486. package/dist/internal/workspace.js +13 -0
  487. package/dist/otel.d.ts +23 -1
  488. package/dist/otel.d.ts.map +1 -1
  489. package/dist/otel.js +93 -2
  490. package/dist/playground/assets/index-59KvgREd.js +67 -0
  491. package/dist/playground/assets/index-MbMxXg-y.css +1 -0
  492. package/dist/playground/index.html +2 -2
  493. package/dist/result.d.ts +24 -0
  494. package/dist/result.d.ts.map +1 -0
  495. package/dist/result.js +27 -0
  496. package/dist/storage-backends/cursor-hosted.d.ts.map +1 -1
  497. package/dist/storage-backends/cursor-hosted.js +7 -4
  498. package/dist/storage-protocol.d.ts.map +1 -1
  499. package/dist/storage-protocol.js +1 -3
  500. package/dist/types.d.ts +90 -23
  501. package/dist/types.d.ts.map +1 -1
  502. package/docs/README.md +2 -2
  503. package/docs/concepts.md +2 -4
  504. package/docs/design/runtime-abstraction.md +2 -3
  505. package/docs/evals.md +9 -7
  506. package/docs/guides/cloud-agents.md +4 -6
  507. package/docs/guides/github.md +0 -1
  508. package/docs/guides/opentelemetry.md +41 -17
  509. package/docs/reference/agent-config.md +6 -10
  510. package/docs/reference/channels.md +18 -8
  511. package/docs/reference/cli.md +3 -4
  512. package/docs/reference/extensions.md +87 -23
  513. package/docs/reference/hooks.md +215 -46
  514. package/docs/reference/playground.md +3 -0
  515. package/docs/reference/project-layout.md +2 -1
  516. package/docs/reference/result.md +94 -0
  517. package/docs/reference/sessions.md +3 -1
  518. package/docs/reference/tools.md +1 -2
  519. package/docs/templates/pr-autofixer.md +0 -3
  520. package/package.json +29 -10
  521. package/skills/framework-map/SKILL.md +3 -1
  522. package/skills/otel/SKILL.md +8 -3
  523. package/src/ab.ts +1 -1
  524. package/src/bin/agent-serve.ts +121 -21
  525. package/src/channels/bitbucket/api.ts +623 -0
  526. package/src/channels/bitbucket/binding.ts +414 -0
  527. package/src/channels/bitbucket/bitbucket-channel.ts +182 -0
  528. package/src/channels/bitbucket/bitbucket-webhook.ts +576 -0
  529. package/src/channels/bitbucket/checks.ts +154 -0
  530. package/src/channels/bitbucket/cursor-account.ts +117 -0
  531. package/src/channels/bitbucket/defaults.ts +110 -0
  532. package/src/channels/bitbucket/events.ts +84 -0
  533. package/src/channels/bitbucket/index.ts +49 -0
  534. package/src/channels/bitbucket/replay.ts +439 -0
  535. package/src/channels/bitbucket/state.ts +59 -0
  536. package/src/channels/bitbucket/types.ts +266 -0
  537. package/src/channels/deployments/deployments-channel.ts +25 -43
  538. package/src/channels/deployments/types.ts +12 -6
  539. package/src/channels/github/binding.ts +8 -1
  540. package/src/channels/github/cursor-account.ts +17 -6
  541. package/src/channels/github/events.ts +1 -1
  542. package/src/channels/github/forward.ts +3 -2
  543. package/src/channels/github/github-channel.ts +74 -221
  544. package/src/channels/github/replay.ts +1 -1
  545. package/src/channels/github/state.ts +6 -0
  546. package/src/channels/github/types.ts +2 -5
  547. package/src/channels/gitlab/api.ts +228 -0
  548. package/src/channels/gitlab/binding.ts +233 -0
  549. package/src/channels/gitlab/checks.ts +243 -0
  550. package/src/channels/gitlab/cursor-account.ts +114 -0
  551. package/src/channels/gitlab/defaults.ts +93 -0
  552. package/src/channels/gitlab/events.ts +44 -0
  553. package/src/channels/gitlab/gitlab-channel.ts +176 -0
  554. package/src/channels/gitlab/gitlab-webhook.ts +555 -0
  555. package/src/channels/gitlab/index.ts +43 -0
  556. package/src/channels/gitlab/replay.ts +347 -0
  557. package/src/channels/gitlab/state.ts +55 -0
  558. package/src/channels/gitlab/types.ts +263 -0
  559. package/src/channels/origin/api.ts +4 -2
  560. package/src/channels/origin/origin-channel.ts +19 -94
  561. package/src/channels/origin/types.ts +23 -2
  562. package/src/channels/slack/eval-directive.ts +1 -6
  563. package/src/channels/slack/init.ts +6 -3
  564. package/src/channels/slack/setup.ts +7 -6
  565. package/src/channels/slack/types.ts +1 -1
  566. package/src/channels.ts +0 -1
  567. package/src/client.ts +1 -1
  568. package/src/connections.ts +1 -1
  569. package/src/evals.ts +1 -1
  570. package/src/extensions.ts +47 -5
  571. package/src/files.ts +21 -3
  572. package/src/index.ts +20 -28
  573. package/src/internal/ab-snapshot.ts +0 -3
  574. package/src/internal/advertise-tools.ts +1 -4
  575. package/src/internal/authored-alias-hooks.ts +4 -21
  576. package/src/internal/authored-loaders.ts +6 -23
  577. package/src/internal/channel-dispatch.ts +160 -0
  578. package/src/internal/chat-client.ts +1 -1
  579. package/src/internal/cli-ax.ts +5 -5
  580. package/src/internal/cli-bitbucket.ts +477 -0
  581. package/src/internal/cli-convert-automation.ts +7 -7
  582. package/src/internal/cli-cursor.ts +2 -5
  583. package/src/internal/cli-deploy.ts +2 -8
  584. package/src/internal/cli-github.ts +3 -3
  585. package/src/internal/cli-gitlab.ts +485 -0
  586. package/src/internal/cli-mcp.ts +2 -7
  587. package/src/internal/cli-slack.ts +2 -5
  588. package/src/internal/continuation-channel.ts +82 -1
  589. package/src/internal/continuation-identity.ts +229 -11
  590. package/src/internal/conversation-mirror.ts +4 -3
  591. package/src/internal/convert-automation/types.ts +1 -1
  592. package/src/internal/cursor/account-mcp.ts +1 -4
  593. package/src/internal/cursor/backend-client.ts +9 -10
  594. package/src/internal/cursor/bound-secret-file.ts +108 -0
  595. package/src/internal/cursor/credentials.ts +75 -10
  596. package/src/internal/cursor/hosted-bound-secrets.ts +75 -0
  597. package/src/internal/cursor/hosted-deployment-secrets.ts +42 -11
  598. package/src/internal/cursor/hosted-store-secrets.ts +1 -1
  599. package/src/internal/cursor-account-mcp-auth.ts +2 -5
  600. package/src/internal/cursor-deployment-relay.ts +11 -7
  601. package/src/internal/deploy-manifest.ts +4 -2
  602. package/src/internal/discovery/ab.ts +29 -9
  603. package/src/internal/discovery/agent.ts +94 -135
  604. package/src/internal/discovery/channels.ts +15 -13
  605. package/src/internal/discovery/connections.ts +55 -50
  606. package/src/internal/discovery/cursor-plugin.ts +1 -4
  607. package/src/internal/discovery/extension-overlay.ts +274 -0
  608. package/src/internal/discovery/extensions.ts +330 -105
  609. package/src/internal/discovery/hooks.ts +20 -2
  610. package/src/internal/discovery/info.ts +7 -0
  611. package/src/internal/discovery/modules.ts +8 -2
  612. package/src/internal/discovery/names.ts +2 -1
  613. package/src/internal/discovery/project.ts +80 -9
  614. package/src/internal/discovery/runtime.ts +1 -2
  615. package/src/internal/discovery/schedules.ts +28 -2
  616. package/src/internal/discovery/services.ts +37 -1
  617. package/src/internal/discovery/skills.ts +13 -3
  618. package/src/internal/discovery/subagent.ts +107 -0
  619. package/src/internal/discovery.ts +0 -2
  620. package/src/internal/distribution.ts +35 -83
  621. package/src/internal/docs-site.ts +1 -1
  622. package/src/internal/eval-run-store.ts +0 -7
  623. package/src/internal/eval-runner.ts +0 -1
  624. package/src/internal/framework-file-storage.ts +8 -8
  625. package/src/internal/github-fanout.ts +1 -1
  626. package/src/internal/guest-network.ts +383 -0
  627. package/src/internal/host-otel.ts +8 -4
  628. package/src/internal/hosted-admission-adapter.ts +8 -8
  629. package/src/internal/hosted-delivery-protocol.ts +26 -1
  630. package/src/internal/hosted-delivery.ts +376 -192
  631. package/src/internal/http-channel.ts +1 -4
  632. package/src/internal/init-interview.ts +1 -4
  633. package/src/internal/init-project.ts +2 -2
  634. package/src/internal/inline-stdio-define-stub.ts +1 -1
  635. package/src/internal/is-record.ts +3 -0
  636. package/src/internal/json-schema.ts +19 -10
  637. package/src/internal/local-control-plane.ts +5 -24
  638. package/src/internal/mcp-endpoint.ts +1 -4
  639. package/src/internal/otel/collector.ts +94 -159
  640. package/src/internal/otel/config.ts +10 -14
  641. package/src/internal/otel/http.ts +14 -1
  642. package/src/internal/otel/mcp.ts +3 -16
  643. package/src/internal/otel/runtime.ts +240 -25
  644. package/src/internal/package-inline-stdio.ts +3 -12
  645. package/src/internal/playground/toolchain.ts +1 -1
  646. package/src/internal/request-error-status.ts +72 -0
  647. package/src/internal/resolve-prod-target.ts +3 -8
  648. package/src/internal/result-output.ts +34 -0
  649. package/src/internal/run-client.ts +2 -2
  650. package/src/internal/runtime-dispatch-runner.ts +3 -21
  651. package/src/internal/sdk-runner.ts +3 -7
  652. package/src/internal/server.ts +153 -44
  653. package/src/internal/session-cost.ts +3 -3
  654. package/src/internal/session-engine.ts +182 -74
  655. package/src/internal/session-run-log.ts +1 -4
  656. package/src/internal/skills-sync.ts +13 -63
  657. package/src/internal/sleep.ts +3 -0
  658. package/src/internal/store-mirror.ts +86 -0
  659. package/src/internal/tenant-slack/relay.ts +179 -0
  660. package/src/internal/testing/scm-continuation-fixtures.ts +286 -0
  661. package/src/internal/workspace-sync.ts +55 -0
  662. package/src/internal/workspace.ts +14 -0
  663. package/src/otel.ts +143 -3
  664. package/src/result.ts +36 -0
  665. package/src/storage-backends/cursor-hosted.ts +7 -4
  666. package/src/storage-protocol.ts +1 -4
  667. package/src/types.ts +105 -34
  668. package/templates/triage/agent/lib/types.ts +0 -2
  669. package/dist/continuation.d.ts +0 -20
  670. package/dist/continuation.d.ts.map +0 -1
  671. package/dist/continuation.js +0 -18
  672. package/dist/docs/assets/chunks/@localSearchIndexroot.FAqdWIXo.js +0 -1
  673. package/dist/docs/assets/concepts.md.rPzW2HZN.js +0 -1
  674. package/dist/docs/assets/guides_cloud-agents.md.DumwWXba.js +0 -9
  675. package/dist/docs/assets/guides_cloud-runtime.md.BRirbRAN.js +0 -9
  676. package/dist/docs/assets/guides_cloud-runtime.md.BRirbRAN.lean.js +0 -1
  677. package/dist/docs/assets/reference_extensions.md.9WQMZe1l.lean.js +0 -1
  678. package/dist/docs/assets/reference_hooks.md.a8BJxMR5.js +0 -14
  679. package/dist/docs/assets/skills_framework-map.md.DDa4MeEW.js +0 -1
  680. package/dist/docs/guides/cloud-runtime.html +0 -35
  681. package/dist/docs/guides/cloud-runtime.md +0 -117
  682. package/dist/internal/convert-automation/index.d.ts +0 -3
  683. package/dist/internal/convert-automation/index.d.ts.map +0 -1
  684. package/dist/internal/convert-automation/index.js +0 -1
  685. package/dist/internal/grokbot/runner.d.ts +0 -64
  686. package/dist/internal/grokbot/runner.d.ts.map +0 -1
  687. package/dist/internal/grokbot/runner.js +0 -282
  688. package/dist/internal/managed-delivery.d.ts +0 -80
  689. package/dist/internal/managed-delivery.d.ts.map +0 -1
  690. package/dist/internal/managed-delivery.js +0 -86
  691. package/dist/internal/review-comments.d.ts +0 -370
  692. package/dist/internal/review-comments.d.ts.map +0 -1
  693. package/dist/internal/review-comments.js +0 -921
  694. package/dist/internal/shallow-clone.d.ts +0 -176
  695. package/dist/internal/shallow-clone.d.ts.map +0 -1
  696. package/dist/internal/shallow-clone.js +0 -419
  697. package/dist/playground/assets/index-B6C9S9nG.css +0 -1
  698. package/dist/playground/assets/index-ZqNoT8Ie.js +0 -69
  699. package/docs/guides/cloud-runtime.md +0 -122
  700. package/src/continuation.ts +0 -49
  701. package/src/internal/convert-automation/index.ts +0 -10
  702. package/src/internal/grokbot/runner.ts +0 -370
  703. package/src/internal/managed-delivery.ts +0 -125
  704. package/src/internal/review-comments.ts +0 -1363
  705. package/src/internal/shallow-clone.ts +0 -609
  706. /package/dist/docs/assets/{evals.md.CPzDAwoH.lean.js → evals.md.CbMoebP1.lean.js} +0 -0
  707. /package/dist/docs/assets/{guides_cloud-agents.md.DumwWXba.lean.js → guides_cloud-agents.md.DS8RIjwx.lean.js} +0 -0
  708. /package/dist/docs/assets/{guides_github.md.BtPr9GaP.lean.js → guides_github.md.DKYiT9do.lean.js} +0 -0
  709. /package/dist/docs/assets/{index.md.Kiht7ell.lean.js → index.md.D75GWhPl.lean.js} +0 -0
  710. /package/dist/docs/assets/{reference_agent-config.md.BHeYMgme.lean.js → reference_agent-config.md.CHNpiyp4.lean.js} +0 -0
  711. /package/dist/docs/assets/{reference_cli.md.DfoeyvL0.lean.js → reference_cli.md.CJNc_xYK.lean.js} +0 -0
  712. /package/dist/docs/assets/{reference_playground.md.DnX5nL-B.lean.js → reference_playground.md.4myJPxrf.lean.js} +0 -0
  713. /package/dist/docs/assets/{reference_project-layout.md.CA6QP6Lw.lean.js → reference_project-layout.md.DuBu9a96.lean.js} +0 -0
  714. /package/dist/docs/assets/{reference_tools.md.B1up2r9W.lean.js → reference_tools.md.aGrn99hP.lean.js} +0 -0
  715. /package/dist/docs/assets/{skills_framework-map.md.DDa4MeEW.lean.js → skills_framework-map.md.haibFyoB.lean.js} +0 -0
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Scaffold a minimal agent-serve project (`agent-serve init`).
2
+ * Scaffold a minimal agent-serve project (`agent-sdk init`).
3
3
  */
4
4
 
5
5
  import { spawn } from "node:child_process";
@@ -702,7 +702,7 @@ export function initNextCommands(options: {
702
702
  }
703
703
 
704
704
  /**
705
- * Coding-agent setup guide printed by `agent-serve init`
705
+ * Coding-agent setup guide printed by `agent-sdk init`
706
706
  * with no target directory (does not scaffold).
707
707
  */
708
708
  export function printInitGuide(): void {
@@ -1,4 +1,4 @@
1
- /** Bundled stand-in for `@anysphere/agent-serve/connections` / `@cursor/july/connections`. */
1
+ /** Bundled stand-in for `@cursor/july/connections`. */
2
2
  export function defineConnection<T>(config: T): T {
3
3
  return config;
4
4
  }
@@ -0,0 +1,3 @@
1
+ export function isRecord(value: unknown): value is Record<string, unknown> {
2
+ return typeof value === "object" && value !== null && !Array.isArray(value);
3
+ }
@@ -13,12 +13,13 @@ export function isZodSchema(value: unknown): value is z.ZodTypeAny {
13
13
  return true;
14
14
  }
15
15
  // Structural check for zod instances that come from a different module
16
- // copy in the authoring project's node_modules.
16
+ // copy in the authoring project's node_modules. Zod 4 keeps `_zod`
17
+ // (and often `_def`).
17
18
  return (
18
19
  typeof value === "object" &&
19
20
  value !== null &&
20
21
  typeof (value as { safeParse?: unknown }).safeParse === "function" &&
21
- "_def" in value
22
+ ("_def" in value || "_zod" in value)
22
23
  );
23
24
  }
24
25
 
@@ -50,15 +51,23 @@ export function toolOutputJsonSchema(
50
51
  function authoredSchemaToJsonSchema(
51
52
  schema: z.ZodTypeAny | JsonSchemaObject
52
53
  ): JsonSchemaObject {
53
- if (isZodSchema(schema)) {
54
- const converted = zodToJsonSchema(schema as z.ZodTypeAny, {
55
- $refStrategy: "none",
56
- target: "jsonSchema7",
57
- }) as Record<string, unknown>;
58
- delete converted.$schema;
59
- return converted;
54
+ if (!isZodSchema(schema)) {
55
+ return schema;
60
56
  }
61
- return schema;
57
+ const converted = convertZodSchema(schema);
58
+ delete converted.$schema;
59
+ return converted;
60
+ }
61
+
62
+ function convertZodSchema(schema: z.ZodTypeAny): Record<string, unknown> {
63
+ const native = (schema as { toJSONSchema?: () => unknown }).toJSONSchema;
64
+ if (typeof native === "function") {
65
+ return native.call(schema) as Record<string, unknown>;
66
+ }
67
+ return zodToJsonSchema(schema, {
68
+ $refStrategy: "none",
69
+ target: "jsonSchema7",
70
+ }) as Record<string, unknown>;
62
71
  }
63
72
 
64
73
  export type ToolInputValidation =
@@ -9,7 +9,7 @@
9
9
  * Hosted `--no-control-plane` v2 skips that poll — the hosted CP delivers.
10
10
  */
11
11
 
12
- import { dirname, join } from "node:path";
12
+ import { join } from "node:path";
13
13
  import { type CronExpression, parseCron } from "./cron.js";
14
14
  import {
15
15
  type LocalIngressContinuation,
@@ -43,8 +43,7 @@ export async function createLocalControlPlane(opts: {
43
43
  fireReminder: (id: string, fireCount: number) => Promise<unknown>;
44
44
  /**
45
45
  * Persist reminder documents under `<stateDir>/reminders`. Local serve
46
- * passes `<stateRoot>/control-plane`; records previously stored at
47
- * `<stateRoot>/reminders` are migrated in on first boot.
46
+ * passes `<stateRoot>/control-plane`.
48
47
  */
49
48
  stateDir?: string;
50
49
  /** Arm deadline timers. Off in `--dev`. Defaults to true. */
@@ -59,31 +58,13 @@ export async function createLocalControlPlane(opts: {
59
58
  : new ReminderStore(join(opts.stateDir, "reminders"));
60
59
  const schedules = new Map<string, CronExpression>();
61
60
  const reminderTimers = new Map<string, NodeJS.Timeout>();
62
- const reminders = new Map<string, ReminderRecord>();
61
+ const reminders = new Map<string, ReminderRecord>(
62
+ ((await store?.list()) ?? []).map((record) => [record.id, record])
63
+ );
63
64
  let scheduleTimer: NodeJS.Timeout | undefined;
64
65
  let lastFiredMinute = -1;
65
66
  let scmRelay: { start(): void; stop(): Promise<void> } | undefined;
66
67
 
67
- if (store !== undefined) {
68
- for (const record of await store.list()) {
69
- reminders.set(record.id, record);
70
- }
71
- if (opts.stateDir !== undefined) {
72
- const legacyStore = new ReminderStore(
73
- join(dirname(opts.stateDir), "reminders")
74
- );
75
- for (const record of await legacyStore.list()) {
76
- if (reminders.has(record.id)) {
77
- await legacyStore.delete(record.id);
78
- continue;
79
- }
80
- reminders.set(record.id, record);
81
- await store.save(record);
82
- await legacyStore.delete(record.id);
83
- }
84
- }
85
- }
86
-
87
68
  function armScheduleTicker(): void {
88
69
  if (scheduleTimer !== undefined || schedules.size === 0) {
89
70
  return;
@@ -37,6 +37,7 @@ import type {
37
37
  TurnOutcome,
38
38
  } from "../types.js";
39
39
  import { samePrincipal } from "./auth.js";
40
+ import { describeError } from "./describe-error.js";
40
41
  import {
41
42
  SessionBusyError,
42
43
  type SessionEngine,
@@ -790,7 +791,3 @@ function raceTimeout<T>(
790
791
  );
791
792
  });
792
793
  }
793
-
794
- function describeError(error: unknown): string {
795
- return error instanceof Error ? error.message : String(error);
796
- }
@@ -12,6 +12,7 @@ import {
12
12
  type Counter,
13
13
  context,
14
14
  type Meter,
15
+ ROOT_CONTEXT,
15
16
  type Span,
16
17
  SpanKind,
17
18
  SpanStatusCode,
@@ -24,10 +25,13 @@ import type { OtelRuntime } from "./runtime.js";
24
25
 
25
26
  const CONTENT_MAX = 2_048;
26
27
 
27
- export interface OtelCallContext {
28
+ export interface OtelTurnContext {
28
29
  sessionId: string;
29
30
  session: SessionInfo;
30
31
  turnId: string;
32
+ }
33
+
34
+ export interface OtelCallContext extends OtelTurnContext {
31
35
  callId: string;
32
36
  toolName: string;
33
37
  }
@@ -35,10 +39,17 @@ export interface OtelCallContext {
35
39
  export interface OtelCollector {
36
40
  onEvent(event: SessionEvent, session: SessionInfo): void;
37
41
  close(): void;
42
+ /**
43
+ * Run `fn` under the turn span so outbound inject sees that context.
44
+ * Host files / VFS / Factory RPCs during `runner.runTurn` are not
45
+ * inside `runInCall`. Opens the turn if `turn.started` has not been
46
+ * applied yet (dispatch is async).
47
+ */
48
+ runInTurn<T>(args: OtelTurnContext, fn: () => T | Promise<T>): Promise<T>;
38
49
  /**
39
50
  * Run `fn` under the tool span so outbound inject sees that context.
40
- * Opens the session / turn / tool span if the event stream has not
41
- * reached `actions.requested` yet (dispatch is async).
51
+ * Opens the turn / tool span if the event stream has not reached
52
+ * `actions.requested` yet (dispatch is async).
42
53
  */
43
54
  runInCall<T>(args: OtelCallContext, fn: () => T | Promise<T>): Promise<T>;
44
55
  /** Merge author tags onto the session; paints open spans immediately. */
@@ -60,9 +71,10 @@ interface TurnState {
60
71
  synthetic: boolean;
61
72
  }
62
73
 
74
+ /** Per-conversation bag for in-flight turns. No session span — those
75
+ * stay open across `session.waiting` and never export on hosted
76
+ * conversational agents. Each turn is its own root. */
63
77
  interface SessionState {
64
- span: Span;
65
- ctx: Context;
66
78
  turns: Map<string, TurnState>;
67
79
  }
68
80
 
@@ -91,8 +103,11 @@ export function createOtelCollector(
91
103
  },
92
104
  close() {
93
105
  for (const [sessionId, state] of sessions) {
94
- state.span.setStatus({ code: SpanStatusCode.UNSET });
95
- state.span.end();
106
+ for (const turn of state.turns.values()) {
107
+ endOpenChildren(turn, undefined);
108
+ turn.span.setStatus({ code: SpanStatusCode.UNSET });
109
+ turn.span.end();
110
+ }
96
111
  sessions.delete(sessionId);
97
112
  }
98
113
  extraBySession.clear();
@@ -107,6 +122,12 @@ export function createOtelCollector(
107
122
  const bag = extraBySession.get(sessionId);
108
123
  return bag === undefined ? undefined : { ...bag };
109
124
  },
125
+ runInTurn(args, fn) {
126
+ const span = ensureTurnSpan(args);
127
+ return context.with(trace.setSpan(context.active(), span), () =>
128
+ Promise.resolve(fn())
129
+ );
130
+ },
110
131
  runInCall(args, fn) {
111
132
  const span = ensureCallSpan(args);
112
133
  return context.with(trace.setSpan(context.active(), span), () =>
@@ -121,49 +142,35 @@ export function createOtelCollector(
121
142
 
122
143
  switch (event.type) {
123
144
  case "session.started": {
124
- if (sessions.get(event.sessionId) !== undefined) {
145
+ if (sessions.has(event.sessionId)) {
125
146
  return;
126
147
  }
127
- openSession({
128
- sessionId: event.sessionId,
129
- session,
130
- channelId: event.data.channelId,
131
- startTime,
132
- restored: false,
133
- });
148
+ sessionState(event.sessionId);
149
+ metrics?.sessions.add(
150
+ 1,
151
+ join(event.sessionId, {
152
+ "agent_sdk.agent": agentName,
153
+ "agent_sdk.channel": event.data.channelId,
154
+ })
155
+ );
134
156
  return;
135
157
  }
136
158
  case "agent.bound": {
137
- const state = ensureSession(event, session, startTime);
138
- if (state === undefined) {
159
+ const painted = attrs({
160
+ "agent_sdk.sdk_agent_id": event.data.sdkAgentId,
161
+ "agent_sdk.sdk_agent_url":
162
+ logOpts?.toolContent === true ? event.data.url : undefined,
163
+ });
164
+ if (Object.keys(painted).length === 0) {
139
165
  return;
140
166
  }
141
- state.span.setAttribute(
142
- "agent_sdk.sdk_agent_id",
143
- event.data.sdkAgentId
144
- );
145
- // URL can identify a deployment; keep it off spans unless opted in.
146
- if (logOpts?.toolContent === true && event.data.url !== undefined) {
147
- state.span.setAttribute("agent_sdk.sdk_agent_url", event.data.url);
148
- }
167
+ const bag = extraBySession.get(event.sessionId) ?? {};
168
+ Object.assign(bag, painted);
169
+ extraBySession.set(event.sessionId, bag);
170
+ paintOpenSpans(event.sessionId, painted);
149
171
  return;
150
172
  }
151
173
  case "message.received": {
152
- const state = ensureSession(event, session, startTime);
153
- if (state === undefined) {
154
- return;
155
- }
156
- state.span.addEvent(
157
- "message.received",
158
- attrs({
159
- "agent_sdk.event": "message.received",
160
- "agent_sdk.user_prompt":
161
- logOpts?.userPrompts === true
162
- ? truncate(event.data.text)
163
- : undefined,
164
- }),
165
- startTime
166
- );
167
174
  emitLog(
168
175
  "message.received",
169
176
  SeverityNumber.INFO,
@@ -177,26 +184,11 @@ export function createOtelCollector(
177
184
  );
178
185
  return;
179
186
  }
180
- case "turn.queued": {
181
- ensureSession(event, session, startTime)?.span.addEvent(
182
- "turn.queued",
183
- attrs({
184
- "agent_sdk.turn_id": event.turnId,
185
- "agent_sdk.queue_position": event.data.position,
186
- "agent_sdk.max_running_turns": event.data.maxRunningTurns,
187
- }),
188
- startTime
189
- );
190
- return;
191
- }
192
187
  case "turn.started": {
193
188
  if (event.turnId === undefined) {
194
189
  return;
195
190
  }
196
- const state = ensureSession(event, session, startTime);
197
- if (state === undefined) {
198
- return;
199
- }
191
+ const state = sessionState(event.sessionId);
200
192
  // `runInCall` can open a synthetic turn before this event is
201
193
  // applied. Keep that entry (and its in-flight tool spans) and
202
194
  // just mark it real so `action.result` will not auto-close it.
@@ -430,16 +422,19 @@ export function createOtelCollector(
430
422
  return;
431
423
  }
432
424
  case "artifact.tagged": {
433
- ensureSession(event, session, startTime)?.span.addEvent(
434
- "artifact.tagged",
435
- attrs({
436
- "agent_sdk.artifact_id": event.data.id,
437
- "agent_sdk.artifact_kind": event.data.kind,
438
- "agent_sdk.artifact_key": event.data.key,
439
- "agent_sdk.artifact_source": event.data.source,
440
- }),
441
- startTime
442
- );
425
+ const state = sessions.get(event.sessionId);
426
+ if (state === undefined) {
427
+ return;
428
+ }
429
+ const tagged = attrs({
430
+ "agent_sdk.artifact_id": event.data.id,
431
+ "agent_sdk.artifact_kind": event.data.kind,
432
+ "agent_sdk.artifact_key": event.data.key,
433
+ "agent_sdk.artifact_source": event.data.source,
434
+ });
435
+ for (const turn of state.turns.values()) {
436
+ turn.span.addEvent("artifact.tagged", tagged, startTime);
437
+ }
443
438
  return;
444
439
  }
445
440
  case "turn.completed": {
@@ -535,14 +530,6 @@ export function createOtelCollector(
535
530
  );
536
531
  return;
537
532
  }
538
- case "session.waiting": {
539
- ensureSession(event, session, startTime)?.span.addEvent(
540
- "session.waiting",
541
- undefined,
542
- startTime
543
- );
544
- return;
545
- }
546
533
  case "session.completed": {
547
534
  endSession({
548
535
  sessionId: event.sessionId,
@@ -575,68 +562,13 @@ export function createOtelCollector(
575
562
  }
576
563
  }
577
564
 
578
- /**
579
- * Open a session span on first live event after restore/resume (no
580
- * `session.started` in this process). Fresh sessions still use the
581
- * dedicated `session.started` case.
582
- */
583
- function ensureSession(
584
- event: SessionEvent,
585
- session: SessionInfo,
586
- startTime: number | undefined
587
- ): SessionState | undefined {
588
- const existing = sessions.get(event.sessionId);
565
+ function sessionState(sessionId: string): SessionState {
566
+ const existing = sessions.get(sessionId);
589
567
  if (existing !== undefined) {
590
568
  return existing;
591
569
  }
592
- return openSession({
593
- sessionId: event.sessionId,
594
- session,
595
- channelId: session.channelId,
596
- startTime,
597
- restored: true,
598
- });
599
- }
600
-
601
- function openSession(args: {
602
- sessionId: string;
603
- session: SessionInfo;
604
- channelId: string;
605
- startTime: number | undefined;
606
- restored: boolean;
607
- }): SessionState {
608
- const parent = context.active();
609
- const span = runtime.tracer.startSpan(
610
- "agent_sdk.session",
611
- {
612
- kind: SpanKind.INTERNAL,
613
- startTime: args.startTime,
614
- attributes: join(args.sessionId, {
615
- "cursor.conversation.id": args.sessionId,
616
- "agent_sdk.agent": agentName,
617
- "agent_sdk.channel": args.channelId,
618
- "agent_sdk.session_mode": args.session.mode,
619
- "agent_sdk.session_purpose": args.session.purpose ?? "live",
620
- "agent_sdk.session_restored": args.restored ? true : undefined,
621
- }),
622
- },
623
- parent
624
- );
625
- const state: SessionState = {
626
- span,
627
- ctx: trace.setSpan(parent, span),
628
- turns: new Map(),
629
- };
630
- sessions.set(args.sessionId, state);
631
- if (!args.restored) {
632
- metrics?.sessions.add(
633
- 1,
634
- join(args.sessionId, {
635
- "agent_sdk.agent": agentName,
636
- "agent_sdk.channel": args.channelId,
637
- })
638
- );
639
- }
570
+ const state: SessionState = { turns: new Map() };
571
+ sessions.set(sessionId, state);
640
572
  return state;
641
573
  }
642
574
 
@@ -652,10 +584,7 @@ export function createOtelCollector(
652
584
  if (event.turnId === undefined) {
653
585
  return undefined;
654
586
  }
655
- const state = ensureSession(event, session, startTime);
656
- if (state === undefined) {
657
- return undefined;
658
- }
587
+ const state = sessionState(event.sessionId);
659
588
  const existing = state.turns.get(event.turnId);
660
589
  if (existing !== undefined) {
661
590
  return existing;
@@ -688,10 +617,12 @@ export function createOtelCollector(
688
617
  "agent_sdk.agent": agentName,
689
618
  "agent_sdk.turn_id": args.turnId,
690
619
  "agent_sdk.channel": args.session.channelId,
620
+ "agent_sdk.session_mode": args.session.mode,
621
+ "agent_sdk.session_purpose": args.session.purpose ?? "live",
691
622
  "agent_sdk.turn_synthetic": args.synthetic ? true : undefined,
692
623
  }),
693
624
  },
694
- args.state.ctx
625
+ ROOT_CONTEXT
695
626
  );
696
627
  const turn: TurnState = {
697
628
  span,
@@ -772,18 +703,10 @@ export function createOtelCollector(
772
703
  return span;
773
704
  }
774
705
 
775
- function ensureCallSpan(args: OtelCallContext): Span {
706
+ function ensureTurnState(args: OtelTurnContext): TurnState {
776
707
  const startTime = Date.now();
777
- const state =
778
- sessions.get(args.sessionId) ??
779
- openSession({
780
- sessionId: args.sessionId,
781
- session: args.session,
782
- channelId: args.session.channelId,
783
- startTime,
784
- restored: true,
785
- });
786
- const turn =
708
+ const state = sessionState(args.sessionId);
709
+ return (
787
710
  state.turns.get(args.turnId) ??
788
711
  openTurn({
789
712
  state,
@@ -792,13 +715,22 @@ export function createOtelCollector(
792
715
  session: args.session,
793
716
  startTime,
794
717
  synthetic: true,
795
- });
718
+ })
719
+ );
720
+ }
721
+
722
+ function ensureTurnSpan(args: OtelTurnContext): Span {
723
+ return ensureTurnState(args).span;
724
+ }
725
+
726
+ function ensureCallSpan(args: OtelCallContext): Span {
727
+ const turn = ensureTurnState(args);
796
728
  return openToolSpan({
797
729
  turn,
798
730
  sessionId: args.sessionId,
799
731
  turnId: args.turnId,
800
732
  call: { callId: args.callId, toolName: args.toolName },
801
- startTime,
733
+ startTime: Date.now(),
802
734
  });
803
735
  }
804
736
 
@@ -825,15 +757,14 @@ export function createOtelCollector(
825
757
  }
826
758
  for (const turn of state.turns.values()) {
827
759
  endOpenChildren(turn, args.endTime);
760
+ if (args.message !== undefined) {
761
+ turn.span.setStatus({ code: args.code, message: args.message });
762
+ } else {
763
+ turn.span.setStatus({ code: args.code });
764
+ }
828
765
  turn.span.end(args.endTime);
829
766
  }
830
767
  state.turns.clear();
831
- state.span.setStatus(
832
- args.message === undefined
833
- ? { code: args.code }
834
- : { code: args.code, message: args.message }
835
- );
836
- state.span.end(args.endTime);
837
768
  sessions.delete(args.sessionId);
838
769
  extraBySession.delete(args.sessionId);
839
770
  }
@@ -846,7 +777,12 @@ export function createOtelCollector(
846
777
  sessionId: string,
847
778
  rest: Record<string, AttrValue | undefined>
848
779
  ): Record<string, AttrValue> {
849
- return attrs({ ...extra(sessionId), ...rest });
780
+ return attrs({
781
+ ...extra(sessionId),
782
+ "cursor.conversation.id": sessionId,
783
+ "agent_sdk.session_id": sessionId,
784
+ ...rest,
785
+ });
850
786
  }
851
787
 
852
788
  function paintOpenSpans(
@@ -861,7 +797,6 @@ export function createOtelCollector(
861
797
  if (Object.keys(painted).length === 0) {
862
798
  return;
863
799
  }
864
- state.span.setAttributes(painted);
865
800
  for (const turn of state.turns.values()) {
866
801
  turn.span.setAttributes(painted);
867
802
  for (const span of turn.tools.values()) {
@@ -11,6 +11,7 @@ import type {
11
11
  OtelSignal,
12
12
  OtelTraceOptions,
13
13
  } from "../../otel.js";
14
+ import { resolveOtelDefinition } from "../../otel.js";
14
15
 
15
16
  export interface ResolvedOtelConfig {
16
17
  enabled: boolean;
@@ -23,16 +24,6 @@ export interface ResolvedOtelConfig {
23
24
  logs: false | OtelLogOptions;
24
25
  }
25
26
 
26
- /** True when any standard OTLP endpoint env var is set. */
27
- export function hasOtelEnv(env: NodeJS.ProcessEnv = process.env): boolean {
28
- return (
29
- nonEmpty(env.OTEL_EXPORTER_OTLP_ENDPOINT) ||
30
- nonEmpty(env.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT) ||
31
- nonEmpty(env.OTEL_EXPORTER_OTLP_METRICS_ENDPOINT) ||
32
- nonEmpty(env.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT)
33
- );
34
- }
35
-
36
27
  /**
37
28
  * Process-global authored config. OTel SDK is one per serve process — if
38
29
  * several mounts ship `agent/otel.ts`, they must be identical.
@@ -76,7 +67,8 @@ export function resolveOtelConfig(input: {
76
67
  return disabled();
77
68
  }
78
69
 
79
- const authored = input.authored ?? {};
70
+ const authored =
71
+ input.authored === undefined ? {} : resolveOtelDefinition(input.authored);
80
72
  const serve = input.serve === undefined ? {} : input.serve;
81
73
  const merged: OtelConfig = {
82
74
  serviceName: serve.serviceName ?? authored.serviceName,
@@ -101,13 +93,17 @@ export function resolveOtelConfig(input: {
101
93
  input.authored !== undefined ||
102
94
  input.serve !== undefined ||
103
95
  envExporters.length > 0;
104
- if (!optedIn || exporters.length === 0) {
96
+ if (!optedIn) {
105
97
  return disabled();
106
98
  }
107
99
 
108
100
  const traces = resolveSignal(merged.traces);
109
- const metrics = resolveSignal(merged.metrics);
110
- const logs = resolveLogs(merged.logs, env);
101
+ const metrics =
102
+ exporters.length === 0 ? false : resolveSignal(merged.metrics);
103
+ const logs = exporters.length === 0 ? false : resolveLogs(merged.logs, env);
104
+ if (exporters.length === 0 && traces === false) {
105
+ return disabled();
106
+ }
111
107
 
112
108
  return {
113
109
  enabled: traces !== false || metrics !== false || logs !== false,
@@ -19,6 +19,16 @@ interface HttpSpanHandle {
19
19
  end(statusCode: number, error?: unknown): void;
20
20
  }
21
21
 
22
+ const HTTP_SPAN_HANDLE_KEY = Symbol.for("anysphere.july.otel.httpSpanHandle");
23
+
24
+ /** End the inbound SERVER span once the Fetch status is known (hosted flush). */
25
+ export function endActiveHttpSpan(statusCode: number, error?: unknown): void {
26
+ const handle = context.active().getValue(HTTP_SPAN_HANDLE_KEY) as
27
+ | HttpSpanHandle
28
+ | undefined;
29
+ handle?.end(statusCode, error);
30
+ }
31
+
22
32
  /**
23
33
  * Instrument one inbound Node request: SERVER span, W3C extract, auto-end
24
34
  * on response finish/close, run `fn` under the span context.
@@ -41,7 +51,10 @@ export function instrumentHttp<T>(
41
51
  handle.end(res.statusCode || 499);
42
52
  }
43
53
  });
44
- return context.with(handle.context, fn);
54
+ return context.with(
55
+ handle.context.setValue(HTTP_SPAN_HANDLE_KEY, handle),
56
+ fn
57
+ );
45
58
  }
46
59
 
47
60
  function startHttpSpan(
@@ -5,31 +5,18 @@
5
5
  */
6
6
 
7
7
  import { context, SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
8
- import { formatTraceparent, injectActiveTraceContext } from "../../otel.js";
8
+ import { activeTraceparent, instrumentedFetch } from "../../otel.js";
9
9
  import { attrs } from "./attrs.js";
10
10
 
11
11
  const TRACER = "agent_sdk";
12
12
 
13
13
  export function instrumentedMcpFetch(base: typeof fetch = fetch): typeof fetch {
14
- return (input, init) => {
15
- if (input instanceof Request && init === undefined) {
16
- const headers = new Headers(input.headers);
17
- injectActiveTraceContext(headers);
18
- return base(new Request(input, { headers }));
19
- }
20
- const headers = new Headers(init?.headers);
21
- injectActiveTraceContext(headers);
22
- return base(input, { ...init, headers });
23
- };
14
+ return instrumentedFetch(base);
24
15
  }
25
16
 
26
17
  /** SEP-414 / OTel MCP carrier for `params._meta`. */
27
18
  export function mcpTraceMeta(): { traceparent: string } | undefined {
28
- const span = trace.getSpan(context.active());
29
- if (span === undefined) {
30
- return undefined;
31
- }
32
- const traceparent = formatTraceparent(span.spanContext());
19
+ const traceparent = activeTraceparent();
33
20
  if (traceparent === undefined) {
34
21
  return undefined;
35
22
  }