pi-cursor-sdk 0.4.0 → 0.5.2

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 (799) hide show
  1. package/CHANGELOG.md +80 -0
  2. package/README.md +169 -37
  3. package/dist/context-window-cache.js +0 -6
  4. package/dist/context.js +61 -34
  5. package/dist/cursor-api-key.js +34 -19
  6. package/dist/cursor-cloud-lifecycle.js +122 -98
  7. package/dist/cursor-cloud-options.js +1 -0
  8. package/dist/cursor-config.js +59 -0
  9. package/dist/cursor-custom-store-path.js +177 -0
  10. package/dist/cursor-custom-subagent-definitions.js +14 -0
  11. package/dist/cursor-durable-fs.js +97 -3
  12. package/dist/cursor-fallback-models.generated.js +288 -1
  13. package/dist/cursor-fallback-warning.js +10 -4
  14. package/dist/cursor-http1.js +8 -8
  15. package/dist/cursor-live-run-coordinator.js +31 -15
  16. package/dist/cursor-mcp-timeout-override.js +3 -1
  17. package/dist/cursor-native-replay-routing.js +1 -1
  18. package/dist/cursor-native-tool-display-registration.js +46 -22
  19. package/dist/cursor-native-tool-display-state.js +57 -22
  20. package/dist/cursor-native-tool-display-tools.js +5 -6
  21. package/dist/cursor-pi-tool-bridge-constants.js +23 -2
  22. package/dist/cursor-pi-tool-bridge-run.js +28 -3
  23. package/dist/cursor-pi-tool-bridge-server.js +1 -1
  24. package/dist/cursor-pi-tool-bridge-snapshot.js +1 -1
  25. package/dist/cursor-pi-tool-bridge.js +31 -9
  26. package/dist/cursor-provider-binding.js +118 -0
  27. package/dist/cursor-provider-errors.js +61 -33
  28. package/dist/cursor-provider-lazy.js +23 -11
  29. package/dist/cursor-provider-live-run-drain.js +25 -16
  30. package/dist/cursor-provider-run-finalizer.js +21 -9
  31. package/dist/cursor-provider-turn-coordinator.js +1 -0
  32. package/dist/cursor-provider-turn-display-router.js +4 -0
  33. package/dist/cursor-provider-turn-emit.js +1 -0
  34. package/dist/cursor-provider-turn-finalize.js +29 -20
  35. package/dist/cursor-provider-turn-prepare.js +49 -20
  36. package/dist/cursor-provider-turn-runner.js +37 -11
  37. package/dist/cursor-provider-turn-send.js +22 -9
  38. package/dist/cursor-provider-turn-summary.js +89 -0
  39. package/dist/cursor-provider-turn-tool-ledger.js +13 -7
  40. package/dist/cursor-provider.js +10 -3
  41. package/dist/cursor-question-tool.js +5 -5
  42. package/dist/cursor-request-provenance.js +53 -0
  43. package/dist/cursor-ripgrep-path.js +14 -3
  44. package/dist/cursor-runtime-state.js +50 -43
  45. package/dist/cursor-sdk-billed-usage.js +54 -75
  46. package/dist/cursor-sdk-event-debug-session.js +5 -6
  47. package/dist/cursor-sdk-event-debug.js +9 -6
  48. package/dist/cursor-sdk-output-filter.js +1 -1
  49. package/dist/cursor-sdk-process-error-guard.js +9 -10
  50. package/dist/cursor-sdk-runtime.js +13 -1
  51. package/dist/cursor-sdk-vendor-env.js +20 -0
  52. package/dist/cursor-session-agent-cleanup.js +31 -28
  53. package/dist/cursor-session-agent-lifecycle.js +18 -9
  54. package/dist/cursor-session-agent-lineage.js +28 -12
  55. package/dist/cursor-session-agent-resume.js +51 -35
  56. package/dist/cursor-session-agent.js +47 -25
  57. package/dist/cursor-session-compaction-prep.js +2 -7
  58. package/dist/cursor-session-scope.js +71 -39
  59. package/dist/cursor-session-send-policy.js +2 -2
  60. package/dist/cursor-session-settings.js +61 -0
  61. package/dist/cursor-session-store.js +235 -45
  62. package/dist/cursor-skill-tool.js +32 -49
  63. package/dist/cursor-state.js +78 -65
  64. package/dist/cursor-tool-manifest.js +1 -1
  65. package/dist/cursor-usage-accounting.js +13 -70
  66. package/dist/cursor-usage-command.js +89 -0
  67. package/dist/cursor-usage-ledger.js +512 -0
  68. package/dist/index.js +29 -35
  69. package/dist/model-discovery.js +62 -37
  70. package/dist/model-list-cache.js +12 -1
  71. package/docs/cursor-dogfood-checklist.md +3 -3
  72. package/docs/cursor-live-smoke-checklist.md +15 -15
  73. package/docs/cursor-model-ux-spec.md +124 -39
  74. package/docs/cursor-native-tool-replay.md +18 -8
  75. package/docs/cursor-native-tool-visual-audit.md +8 -8
  76. package/docs/cursor-testing-lessons.md +87 -25
  77. package/docs/cursor-tool-surfaces.md +4 -4
  78. package/docs/platform-smoke-implementation.md +10 -6
  79. package/docs/platform-smoke.md +35 -46
  80. package/node_modules/@hono/node-server/README.md +21 -10
  81. package/node_modules/@hono/node-server/dist/early-hints.cjs +1 -1
  82. package/node_modules/@hono/node-server/dist/early-hints.mjs +1 -1
  83. package/node_modules/@hono/node-server/dist/index.cjs +41 -19
  84. package/node_modules/@hono/node-server/dist/index.mjs +42 -20
  85. package/node_modules/@hono/node-server/dist/serve-static.cjs +1 -0
  86. package/node_modules/@hono/node-server/dist/serve-static.d.cts +2 -1
  87. package/node_modules/@hono/node-server/dist/serve-static.d.mts +2 -1
  88. package/node_modules/@hono/node-server/dist/serve-static.mjs +1 -0
  89. package/node_modules/@hono/node-server/package.json +3 -2
  90. package/node_modules/@modelcontextprotocol/core/dist/{auth--n_Yzytt.d.cts → auth-Anm-lwWi.d.mts} +9 -8
  91. package/node_modules/@modelcontextprotocol/core/dist/{auth-YUQV3RRv.d.mts.map → auth-Anm-lwWi.d.mts.map} +1 -1
  92. package/node_modules/@modelcontextprotocol/core/dist/{auth-CGP0BDVq.mjs → auth-BNDyLTqp.mjs} +5 -3
  93. package/node_modules/@modelcontextprotocol/core/dist/{auth-CGP0BDVq.mjs.map → auth-BNDyLTqp.mjs.map} +1 -1
  94. package/node_modules/@modelcontextprotocol/core/dist/{auth-4-zilcqg.cjs → auth-D1CeV_Jr.cjs} +5 -3
  95. package/node_modules/@modelcontextprotocol/core/dist/{auth-4-zilcqg.cjs.map → auth-D1CeV_Jr.cjs.map} +1 -1
  96. package/node_modules/@modelcontextprotocol/core/dist/{auth-YUQV3RRv.d.mts → auth-V9XJSCfa.d.cts} +9 -8
  97. package/node_modules/@modelcontextprotocol/core/dist/{auth--n_Yzytt.d.cts.map → auth-V9XJSCfa.d.cts.map} +1 -1
  98. package/node_modules/@modelcontextprotocol/core/dist/index.cjs +1 -1
  99. package/node_modules/@modelcontextprotocol/core/dist/index.d.cts +1 -1
  100. package/node_modules/@modelcontextprotocol/core/dist/index.d.mts +1 -1
  101. package/node_modules/@modelcontextprotocol/core/dist/index.mjs +1 -1
  102. package/node_modules/@modelcontextprotocol/core/dist/internal.cjs +1 -1
  103. package/node_modules/@modelcontextprotocol/core/dist/internal.d.cts +1 -1
  104. package/node_modules/@modelcontextprotocol/core/dist/internal.d.mts +1 -1
  105. package/node_modules/@modelcontextprotocol/core/dist/internal.mjs +1 -1
  106. package/node_modules/@modelcontextprotocol/core/package.json +2 -2
  107. package/node_modules/@modelcontextprotocol/hono/README.md +7 -5
  108. package/node_modules/@modelcontextprotocol/hono/dist/index.cjs.map +1 -1
  109. package/node_modules/@modelcontextprotocol/hono/dist/index.d.cts +5 -0
  110. package/node_modules/@modelcontextprotocol/hono/dist/index.d.cts.map +1 -1
  111. package/node_modules/@modelcontextprotocol/hono/dist/index.d.mts +5 -0
  112. package/node_modules/@modelcontextprotocol/hono/dist/index.d.mts.map +1 -1
  113. package/node_modules/@modelcontextprotocol/hono/dist/index.mjs.map +1 -1
  114. package/node_modules/@modelcontextprotocol/hono/package.json +4 -4
  115. package/node_modules/@modelcontextprotocol/server/README.md +1 -7
  116. package/node_modules/@modelcontextprotocol/server/dist/{createMcpHandler-Bt6U_Fqb.d.mts → createMcpHandler-D4NN8WsG.d.mts} +35 -13
  117. package/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-D4NN8WsG.d.mts.map +1 -0
  118. package/node_modules/@modelcontextprotocol/server/dist/{createMcpHandler-BLVe3qmU.d.cts → createMcpHandler-DZmmlN8e.d.cts} +35 -13
  119. package/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-DZmmlN8e.d.cts.map +1 -0
  120. package/node_modules/@modelcontextprotocol/server/dist/index.cjs +32 -5
  121. package/node_modules/@modelcontextprotocol/server/dist/index.cjs.map +1 -1
  122. package/node_modules/@modelcontextprotocol/server/dist/index.d.cts +41 -5
  123. package/node_modules/@modelcontextprotocol/server/dist/index.d.cts.map +1 -1
  124. package/node_modules/@modelcontextprotocol/server/dist/index.d.mts +41 -5
  125. package/node_modules/@modelcontextprotocol/server/dist/index.d.mts.map +1 -1
  126. package/node_modules/@modelcontextprotocol/server/dist/index.mjs +32 -5
  127. package/node_modules/@modelcontextprotocol/server/dist/index.mjs.map +1 -1
  128. package/node_modules/@modelcontextprotocol/server/dist/{mcp-DUcCQSTW.cjs → mcp-BumlNux0.cjs} +73 -23
  129. package/node_modules/@modelcontextprotocol/server/dist/mcp-BumlNux0.cjs.map +1 -0
  130. package/node_modules/@modelcontextprotocol/server/dist/{mcp-Dw2OlZ1f.mjs → mcp-DIH4cS6P.mjs} +73 -23
  131. package/node_modules/@modelcontextprotocol/server/dist/mcp-DIH4cS6P.mjs.map +1 -0
  132. package/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.cjs +1 -1
  133. package/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.mjs +1 -1
  134. package/node_modules/@modelcontextprotocol/server/dist/{src-CgFsfg3E.cjs → src-BhnGYybN.cjs} +29 -11
  135. package/node_modules/@modelcontextprotocol/server/dist/src-BhnGYybN.cjs.map +1 -0
  136. package/node_modules/@modelcontextprotocol/server/dist/{src-D-y6h4N7.mjs → src-Cqbh3MYc.mjs} +29 -11
  137. package/node_modules/@modelcontextprotocol/server/dist/src-Cqbh3MYc.mjs.map +1 -0
  138. package/node_modules/@modelcontextprotocol/server/dist/stdio.cjs +2 -2
  139. package/node_modules/@modelcontextprotocol/server/dist/stdio.d.cts +1 -1
  140. package/node_modules/@modelcontextprotocol/server/dist/stdio.d.mts +1 -1
  141. package/node_modules/@modelcontextprotocol/server/dist/stdio.mjs +2 -2
  142. package/node_modules/@modelcontextprotocol/server/package.json +4 -4
  143. package/node_modules/hono/dist/_virtual/_rolldown/runtime.js +13 -0
  144. package/node_modules/hono/dist/adapter/aws-lambda/conninfo.js +42 -23
  145. package/node_modules/hono/dist/adapter/aws-lambda/handler.js +318 -344
  146. package/node_modules/hono/dist/adapter/aws-lambda/index.js +2 -8
  147. package/node_modules/hono/dist/adapter/aws-lambda/types.js +1 -0
  148. package/node_modules/hono/dist/adapter/bun/conninfo.js +20 -25
  149. package/node_modules/hono/dist/adapter/bun/index.js +3 -13
  150. package/node_modules/hono/dist/adapter/bun/serve-static.js +27 -27
  151. package/node_modules/hono/dist/adapter/bun/server.js +11 -5
  152. package/node_modules/hono/dist/adapter/bun/ssg.js +25 -15
  153. package/node_modules/hono/dist/adapter/bun/websocket.js +61 -68
  154. package/node_modules/hono/dist/adapter/cloudflare-pages/conninfo.js +24 -9
  155. package/node_modules/hono/dist/adapter/cloudflare-pages/handler.js +59 -62
  156. package/node_modules/hono/dist/adapter/cloudflare-pages/index.js +2 -8
  157. package/node_modules/hono/dist/adapter/cloudflare-workers/conninfo.js +7 -9
  158. package/node_modules/hono/dist/adapter/cloudflare-workers/index.js +3 -8
  159. package/node_modules/hono/dist/adapter/cloudflare-workers/serve-static-module.js +5 -6
  160. package/node_modules/hono/dist/adapter/cloudflare-workers/serve-static.js +26 -20
  161. package/node_modules/hono/dist/adapter/cloudflare-workers/utils.js +21 -34
  162. package/node_modules/hono/dist/adapter/cloudflare-workers/websocket.js +31 -39
  163. package/node_modules/hono/dist/adapter/deno/conninfo.js +16 -13
  164. package/node_modules/hono/dist/adapter/deno/deno.d.js +1 -0
  165. package/node_modules/hono/dist/adapter/deno/index.js +3 -10
  166. package/node_modules/hono/dist/adapter/deno/serve-static.js +33 -38
  167. package/node_modules/hono/dist/adapter/deno/ssg.js +27 -16
  168. package/node_modules/hono/dist/adapter/deno/websocket.js +30 -30
  169. package/node_modules/hono/dist/adapter/lambda-edge/conninfo.js +7 -9
  170. package/node_modules/hono/dist/adapter/lambda-edge/handler.js +102 -101
  171. package/node_modules/hono/dist/adapter/lambda-edge/index.js +2 -6
  172. package/node_modules/hono/dist/adapter/netlify/conninfo.js +24 -9
  173. package/node_modules/hono/dist/adapter/netlify/handler.js +10 -8
  174. package/node_modules/hono/dist/adapter/netlify/index.js +3 -2
  175. package/node_modules/hono/dist/adapter/netlify/mod.js +2 -6
  176. package/node_modules/hono/dist/adapter/service-worker/handler.js +15 -19
  177. package/node_modules/hono/dist/adapter/service-worker/index.js +23 -7
  178. package/node_modules/hono/dist/adapter/service-worker/types.js +1 -0
  179. package/node_modules/hono/dist/adapter/vercel/conninfo.js +7 -10
  180. package/node_modules/hono/dist/adapter/vercel/handler.js +8 -6
  181. package/node_modules/hono/dist/adapter/vercel/index.js +2 -6
  182. package/node_modules/hono/dist/cjs/_virtual/_rolldown/runtime.js +33 -0
  183. package/node_modules/hono/dist/cjs/adapter/aws-lambda/conninfo.js +42 -44
  184. package/node_modules/hono/dist/cjs/adapter/aws-lambda/handler.js +326 -373
  185. package/node_modules/hono/dist/cjs/adapter/aws-lambda/index.js +7 -34
  186. package/node_modules/hono/dist/cjs/adapter/aws-lambda/types.js +0 -15
  187. package/node_modules/hono/dist/cjs/adapter/bun/conninfo.js +21 -47
  188. package/node_modules/hono/dist/cjs/adapter/bun/index.js +14 -45
  189. package/node_modules/hono/dist/cjs/adapter/bun/serve-static.js +29 -50
  190. package/node_modules/hono/dist/cjs/adapter/bun/server.js +11 -26
  191. package/node_modules/hono/dist/cjs/adapter/bun/ssg.js +24 -35
  192. package/node_modules/hono/dist/cjs/adapter/bun/websocket.js +63 -91
  193. package/node_modules/hono/dist/cjs/adapter/cloudflare-pages/conninfo.js +25 -31
  194. package/node_modules/hono/dist/cjs/adapter/cloudflare-pages/handler.js +61 -85
  195. package/node_modules/hono/dist/cjs/adapter/cloudflare-pages/index.js +7 -34
  196. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/conninfo.js +8 -31
  197. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/index.js +7 -33
  198. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/serve-static-module.js +7 -29
  199. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/serve-static.js +27 -42
  200. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/utils.js +21 -55
  201. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/websocket.js +33 -62
  202. package/node_modules/hono/dist/cjs/adapter/deno/conninfo.js +16 -34
  203. package/node_modules/hono/dist/cjs/adapter/deno/index.js +10 -38
  204. package/node_modules/hono/dist/cjs/adapter/deno/serve-static.js +33 -59
  205. package/node_modules/hono/dist/cjs/adapter/deno/ssg.js +27 -37
  206. package/node_modules/hono/dist/cjs/adapter/deno/websocket.js +32 -53
  207. package/node_modules/hono/dist/cjs/adapter/lambda-edge/conninfo.js +8 -31
  208. package/node_modules/hono/dist/cjs/adapter/lambda-edge/handler.js +102 -130
  209. package/node_modules/hono/dist/cjs/adapter/lambda-edge/index.js +5 -30
  210. package/node_modules/hono/dist/cjs/adapter/netlify/conninfo.js +25 -31
  211. package/node_modules/hono/dist/cjs/adapter/netlify/handler.js +10 -29
  212. package/node_modules/hono/dist/cjs/adapter/netlify/index.js +5 -21
  213. package/node_modules/hono/dist/cjs/adapter/netlify/mod.js +5 -30
  214. package/node_modules/hono/dist/cjs/adapter/service-worker/handler.js +16 -41
  215. package/node_modules/hono/dist/cjs/adapter/service-worker/index.js +25 -30
  216. package/node_modules/hono/dist/cjs/adapter/service-worker/types.js +0 -15
  217. package/node_modules/hono/dist/cjs/adapter/vercel/conninfo.js +8 -32
  218. package/node_modules/hono/dist/cjs/adapter/vercel/handler.js +8 -27
  219. package/node_modules/hono/dist/cjs/adapter/vercel/index.js +5 -30
  220. package/node_modules/hono/dist/cjs/client/client.js +139 -212
  221. package/node_modules/hono/dist/cjs/client/fetch-result-please.js +62 -80
  222. package/node_modules/hono/dist/cjs/client/index.js +7 -32
  223. package/node_modules/hono/dist/cjs/client/types.js +0 -15
  224. package/node_modules/hono/dist/cjs/client/utils.js +54 -92
  225. package/node_modules/hono/dist/cjs/compose.js +49 -66
  226. package/node_modules/hono/dist/cjs/context.js +379 -450
  227. package/node_modules/hono/dist/cjs/helper/accepts/accepts.js +47 -72
  228. package/node_modules/hono/dist/cjs/helper/accepts/index.js +3 -27
  229. package/node_modules/hono/dist/cjs/helper/adapter/index.js +33 -73
  230. package/node_modules/hono/dist/cjs/helper/conninfo/index.js +0 -15
  231. package/node_modules/hono/dist/cjs/helper/conninfo/types.js +0 -15
  232. package/node_modules/hono/dist/cjs/helper/cookie/index.js +75 -116
  233. package/node_modules/hono/dist/cjs/helper/css/common.js +165 -244
  234. package/node_modules/hono/dist/cjs/helper/css/index.js +136 -151
  235. package/node_modules/hono/dist/cjs/helper/dev/index.js +45 -71
  236. package/node_modules/hono/dist/cjs/helper/factory/index.js +30 -51
  237. package/node_modules/hono/dist/cjs/helper/html/index.js +32 -62
  238. package/node_modules/hono/dist/cjs/helper/proxy/index.js +113 -106
  239. package/node_modules/hono/dist/cjs/helper/route/index.js +123 -66
  240. package/node_modules/hono/dist/cjs/helper/ssg/index.js +19 -43
  241. package/node_modules/hono/dist/cjs/helper/ssg/middleware.js +56 -64
  242. package/node_modules/hono/dist/cjs/helper/ssg/plugins.js +55 -57
  243. package/node_modules/hono/dist/cjs/helper/ssg/ssg.js +196 -296
  244. package/node_modules/hono/dist/cjs/helper/ssg/utils.js +47 -90
  245. package/node_modules/hono/dist/cjs/helper/streaming/index.js +8 -35
  246. package/node_modules/hono/dist/cjs/helper/streaming/sse.js +53 -85
  247. package/node_modules/hono/dist/cjs/helper/streaming/stream.js +23 -53
  248. package/node_modules/hono/dist/cjs/helper/streaming/text.js +10 -32
  249. package/node_modules/hono/dist/cjs/helper/streaming/utils.js +13 -32
  250. package/node_modules/hono/dist/cjs/helper/testing/index.js +16 -31
  251. package/node_modules/hono/dist/cjs/helper/websocket/index.js +51 -76
  252. package/node_modules/hono/dist/cjs/hono-base.js +347 -403
  253. package/node_modules/hono/dist/cjs/hono.js +28 -42
  254. package/node_modules/hono/dist/cjs/http-exception.js +55 -56
  255. package/node_modules/hono/dist/cjs/index.js +22 -30
  256. package/node_modules/hono/dist/cjs/jsx/base.js +237 -366
  257. package/node_modules/hono/dist/cjs/jsx/children.js +16 -41
  258. package/node_modules/hono/dist/cjs/jsx/components.js +119 -192
  259. package/node_modules/hono/dist/cjs/jsx/constants.js +15 -42
  260. package/node_modules/hono/dist/cjs/jsx/context.js +144 -162
  261. package/node_modules/hono/dist/cjs/jsx/dom/client.js +49 -69
  262. package/node_modules/hono/dist/cjs/jsx/dom/components.js +23 -52
  263. package/node_modules/hono/dist/cjs/jsx/dom/context.js +39 -67
  264. package/node_modules/hono/dist/cjs/jsx/dom/css.js +143 -158
  265. package/node_modules/hono/dist/cjs/jsx/dom/hooks/index.js +55 -64
  266. package/node_modules/hono/dist/cjs/jsx/dom/index.js +114 -173
  267. package/node_modules/hono/dist/cjs/jsx/dom/intrinsic-element/components.js +282 -375
  268. package/node_modules/hono/dist/cjs/jsx/dom/jsx-dev-runtime.js +14 -49
  269. package/node_modules/hono/dist/cjs/jsx/dom/jsx-runtime.js +5 -32
  270. package/node_modules/hono/dist/cjs/jsx/dom/render.js +469 -623
  271. package/node_modules/hono/dist/cjs/jsx/dom/server.js +37 -64
  272. package/node_modules/hono/dist/cjs/jsx/dom/utils.js +7 -30
  273. package/node_modules/hono/dist/cjs/jsx/hooks/index.js +225 -318
  274. package/node_modules/hono/dist/cjs/jsx/index.js +86 -135
  275. package/node_modules/hono/dist/cjs/jsx/intrinsic-element/common.js +20 -43
  276. package/node_modules/hono/dist/cjs/jsx/intrinsic-element/components.js +117 -168
  277. package/node_modules/hono/dist/cjs/jsx/intrinsic-elements.js +0 -15
  278. package/node_modules/hono/dist/cjs/jsx/jsx-dev-runtime.js +14 -39
  279. package/node_modules/hono/dist/cjs/jsx/jsx-runtime.js +34 -68
  280. package/node_modules/hono/dist/cjs/jsx/streaming.js +123 -166
  281. package/node_modules/hono/dist/cjs/jsx/types.js +0 -15
  282. package/node_modules/hono/dist/cjs/jsx/utils.js +91 -175
  283. package/node_modules/hono/dist/cjs/middleware/basic-auth/index.js +98 -86
  284. package/node_modules/hono/dist/cjs/middleware/bearer-auth/index.js +92 -109
  285. package/node_modules/hono/dist/cjs/middleware/body-limit/index.js +66 -72
  286. package/node_modules/hono/dist/cjs/middleware/cache/index.js +153 -199
  287. package/node_modules/hono/dist/cjs/middleware/combine/index.js +135 -95
  288. package/node_modules/hono/dist/cjs/middleware/compress/index.js +73 -88
  289. package/node_modules/hono/dist/cjs/middleware/context-storage/index.js +49 -41
  290. package/node_modules/hono/dist/cjs/middleware/cors/index.js +107 -107
  291. package/node_modules/hono/dist/cjs/middleware/csrf/index.js +101 -72
  292. package/node_modules/hono/dist/cjs/middleware/etag/digest.js +58 -97
  293. package/node_modules/hono/dist/cjs/middleware/etag/index.js +71 -91
  294. package/node_modules/hono/dist/cjs/middleware/ip-restriction/index.js +161 -169
  295. package/node_modules/hono/dist/cjs/middleware/jsx-renderer/index.js +99 -77
  296. package/node_modules/hono/dist/cjs/middleware/jwk/index.js +3 -27
  297. package/node_modules/hono/dist/cjs/middleware/jwk/jwk.js +118 -135
  298. package/node_modules/hono/dist/cjs/middleware/jwt/index.js +9 -38
  299. package/node_modules/hono/dist/cjs/middleware/jwt/jwt.js +120 -141
  300. package/node_modules/hono/dist/cjs/middleware/language/index.js +7 -35
  301. package/node_modules/hono/dist/cjs/middleware/language/language.js +184 -182
  302. package/node_modules/hono/dist/cjs/middleware/logger/index.js +41 -62
  303. package/node_modules/hono/dist/cjs/middleware/method-not-allowed/index.js +82 -88
  304. package/node_modules/hono/dist/cjs/middleware/method-override/index.js +101 -102
  305. package/node_modules/hono/dist/cjs/middleware/mount/index.js +71 -0
  306. package/node_modules/hono/dist/cjs/middleware/powered-by/index.js +23 -30
  307. package/node_modules/hono/dist/cjs/middleware/pretty-json/index.js +38 -42
  308. package/node_modules/hono/dist/cjs/middleware/request-id/index.js +3 -27
  309. package/node_modules/hono/dist/cjs/middleware/request-id/request-id.js +34 -42
  310. package/node_modules/hono/dist/cjs/middleware/secure-headers/index.js +4 -29
  311. package/node_modules/hono/dist/cjs/middleware/secure-headers/permissions-policy.js +0 -15
  312. package/node_modules/hono/dist/cjs/middleware/secure-headers/secure-headers.js +142 -174
  313. package/node_modules/hono/dist/cjs/middleware/serve-static/index.js +56 -93
  314. package/node_modules/hono/dist/cjs/middleware/serve-static/path.js +15 -38
  315. package/node_modules/hono/dist/cjs/middleware/timeout/index.js +40 -45
  316. package/node_modules/hono/dist/cjs/middleware/timing/index.js +7 -35
  317. package/node_modules/hono/dist/cjs/middleware/timing/timing.js +177 -118
  318. package/node_modules/hono/dist/cjs/middleware/trailing-slash/index.js +85 -58
  319. package/node_modules/hono/dist/cjs/preset/quick.js +18 -37
  320. package/node_modules/hono/dist/cjs/preset/tiny.js +15 -33
  321. package/node_modules/hono/dist/cjs/request/constants.js +5 -27
  322. package/node_modules/hono/dist/cjs/request.js +334 -346
  323. package/node_modules/hono/dist/cjs/router/linear-router/index.js +3 -27
  324. package/node_modules/hono/dist/cjs/router/linear-router/router.js +95 -143
  325. package/node_modules/hono/dist/cjs/router/pattern-router/index.js +3 -27
  326. package/node_modules/hono/dist/cjs/router/pattern-router/router.js +41 -63
  327. package/node_modules/hono/dist/cjs/router/reg-exp-router/index.js +7 -34
  328. package/node_modules/hono/dist/cjs/router/reg-exp-router/matcher.js +18 -45
  329. package/node_modules/hono/dist/cjs/router/reg-exp-router/node.js +91 -135
  330. package/node_modules/hono/dist/cjs/router/reg-exp-router/prepared-router.js +92 -161
  331. package/node_modules/hono/dist/cjs/router/reg-exp-router/router.js +98 -147
  332. package/node_modules/hono/dist/cjs/router/reg-exp-router/trie.js +73 -89
  333. package/node_modules/hono/dist/cjs/router/smart-router/index.js +3 -27
  334. package/node_modules/hono/dist/cjs/router/smart-router/router.js +49 -79
  335. package/node_modules/hono/dist/cjs/router/trie-router/index.js +3 -27
  336. package/node_modules/hono/dist/cjs/router/trie-router/node.js +134 -186
  337. package/node_modules/hono/dist/cjs/router/trie-router/router.js +15 -39
  338. package/node_modules/hono/dist/cjs/router/utils.js +5 -27
  339. package/node_modules/hono/dist/cjs/router.js +37 -37
  340. package/node_modules/hono/dist/cjs/types.js +5 -28
  341. package/node_modules/hono/dist/cjs/utils/accept.js +177 -225
  342. package/node_modules/hono/dist/cjs/utils/basic-auth.js +16 -40
  343. package/node_modules/hono/dist/cjs/utils/body.js +84 -110
  344. package/node_modules/hono/dist/cjs/utils/buffer.js +43 -91
  345. package/node_modules/hono/dist/cjs/utils/color.js +35 -44
  346. package/node_modules/hono/dist/cjs/utils/compress.js +11 -26
  347. package/node_modules/hono/dist/cjs/utils/concurrent.js +29 -59
  348. package/node_modules/hono/dist/cjs/utils/constants.js +7 -26
  349. package/node_modules/hono/dist/cjs/utils/cookie.js +107 -177
  350. package/node_modules/hono/dist/cjs/utils/crypto.js +30 -61
  351. package/node_modules/hono/dist/cjs/utils/encode.js +31 -48
  352. package/node_modules/hono/dist/cjs/utils/filepath.js +23 -54
  353. package/node_modules/hono/dist/cjs/utils/handler.js +11 -33
  354. package/node_modules/hono/dist/cjs/utils/headers.js +0 -15
  355. package/node_modules/hono/dist/cjs/utils/html.js +96 -137
  356. package/node_modules/hono/dist/cjs/utils/http-status.js +0 -15
  357. package/node_modules/hono/dist/cjs/utils/ipaddr.js +213 -286
  358. package/node_modules/hono/dist/cjs/utils/jwt/index.js +14 -27
  359. package/node_modules/hono/dist/cjs/utils/jwt/jwa.js +25 -42
  360. package/node_modules/hono/dist/cjs/utils/jwt/jws.js +119 -199
  361. package/node_modules/hono/dist/cjs/utils/jwt/jwt.js +122 -206
  362. package/node_modules/hono/dist/cjs/utils/jwt/types.js +122 -159
  363. package/node_modules/hono/dist/cjs/utils/jwt/utf8.js +9 -28
  364. package/node_modules/hono/dist/cjs/utils/mime.js +75 -101
  365. package/node_modules/hono/dist/cjs/utils/stream.js +88 -111
  366. package/node_modules/hono/dist/cjs/utils/types.js +0 -15
  367. package/node_modules/hono/dist/cjs/utils/url.js +185 -234
  368. package/node_modules/hono/dist/cjs/validator/index.js +3 -27
  369. package/node_modules/hono/dist/cjs/validator/utils.js +0 -15
  370. package/node_modules/hono/dist/cjs/validator/validator.js +60 -103
  371. package/node_modules/hono/dist/client/client.js +138 -197
  372. package/node_modules/hono/dist/client/fetch-result-please.js +59 -56
  373. package/node_modules/hono/dist/client/index.js +3 -7
  374. package/node_modules/hono/dist/client/types.js +1 -0
  375. package/node_modules/hono/dist/client/utils.js +51 -68
  376. package/node_modules/hono/dist/compose.js +49 -45
  377. package/node_modules/hono/dist/context.js +376 -426
  378. package/node_modules/hono/dist/helper/accepts/accepts.js +47 -51
  379. package/node_modules/hono/dist/helper/accepts/index.js +1 -4
  380. package/node_modules/hono/dist/helper/adapter/index.js +33 -52
  381. package/node_modules/hono/dist/helper/conninfo/index.js +1 -0
  382. package/node_modules/hono/dist/helper/conninfo/types.js +1 -0
  383. package/node_modules/hono/dist/helper/cookie/index.js +74 -94
  384. package/node_modules/hono/dist/helper/css/common.js +167 -225
  385. package/node_modules/hono/dist/helper/css/index.js +132 -137
  386. package/node_modules/hono/dist/helper/dev/index.js +44 -49
  387. package/node_modules/hono/dist/helper/factory/index.js +27 -27
  388. package/node_modules/hono/dist/helper/html/index.js +30 -39
  389. package/node_modules/hono/dist/helper/proxy/index.js +116 -88
  390. package/node_modules/hono/dist/helper/route/index.js +121 -43
  391. package/node_modules/hono/dist/helper/ssg/index.js +3 -18
  392. package/node_modules/hono/dist/helper/ssg/middleware.js +53 -40
  393. package/node_modules/hono/dist/helper/ssg/plugins.js +55 -36
  394. package/node_modules/hono/dist/helper/ssg/ssg.js +198 -283
  395. package/node_modules/hono/dist/helper/ssg/utils.js +53 -75
  396. package/node_modules/hono/dist/helper/streaming/index.js +2 -8
  397. package/node_modules/hono/dist/helper/streaming/sse.js +50 -61
  398. package/node_modules/hono/dist/helper/streaming/stream.js +22 -31
  399. package/node_modules/hono/dist/helper/streaming/text.js +9 -10
  400. package/node_modules/hono/dist/helper/streaming/utils.js +9 -12
  401. package/node_modules/hono/dist/helper/testing/index.js +16 -10
  402. package/node_modules/hono/dist/helper/websocket/index.js +49 -53
  403. package/node_modules/hono/dist/hono-base.js +344 -379
  404. package/node_modules/hono/dist/hono.js +27 -20
  405. package/node_modules/hono/dist/http-exception.js +53 -33
  406. package/node_modules/hono/dist/index.js +19 -6
  407. package/node_modules/hono/dist/jsx/base.js +231 -340
  408. package/node_modules/hono/dist/jsx/children.js +16 -20
  409. package/node_modules/hono/dist/jsx/components.js +118 -170
  410. package/node_modules/hono/dist/jsx/constants.js +9 -15
  411. package/node_modules/hono/dist/jsx/context.js +153 -150
  412. package/node_modules/hono/dist/jsx/dom/client.js +45 -48
  413. package/node_modules/hono/dist/jsx/dom/components.js +21 -29
  414. package/node_modules/hono/dist/jsx/dom/context.js +37 -44
  415. package/node_modules/hono/dist/jsx/dom/css.js +142 -147
  416. package/node_modules/hono/dist/jsx/dom/hooks/index.js +52 -40
  417. package/node_modules/hono/dist/jsx/dom/index.js +71 -134
  418. package/node_modules/hono/dist/jsx/dom/intrinsic-element/components.js +275 -359
  419. package/node_modules/hono/dist/jsx/dom/jsx-dev-runtime.js +14 -18
  420. package/node_modules/hono/dist/jsx/dom/jsx-runtime.js +2 -8
  421. package/node_modules/hono/dist/jsx/dom/render.js +492 -631
  422. package/node_modules/hono/dist/jsx/dom/server.js +32 -32
  423. package/node_modules/hono/dist/jsx/dom/utils.js +6 -8
  424. package/node_modules/hono/dist/jsx/hooks/index.js +236 -308
  425. package/node_modules/hono/dist/jsx/index.js +45 -98
  426. package/node_modules/hono/dist/jsx/intrinsic-element/common.js +20 -22
  427. package/node_modules/hono/dist/jsx/intrinsic-element/components.js +113 -154
  428. package/node_modules/hono/dist/jsx/intrinsic-elements.js +1 -0
  429. package/node_modules/hono/dist/jsx/jsx-dev-runtime.js +12 -16
  430. package/node_modules/hono/dist/jsx/jsx-runtime.js +29 -42
  431. package/node_modules/hono/dist/jsx/streaming.js +120 -142
  432. package/node_modules/hono/dist/jsx/types.js +1 -0
  433. package/node_modules/hono/dist/jsx/utils.js +105 -168
  434. package/node_modules/hono/dist/middleware/basic-auth/index.js +96 -63
  435. package/node_modules/hono/dist/middleware/bearer-auth/index.js +93 -89
  436. package/node_modules/hono/dist/middleware/body-limit/index.js +66 -51
  437. package/node_modules/hono/dist/middleware/cache/index.js +165 -190
  438. package/node_modules/hono/dist/middleware/combine/index.js +134 -73
  439. package/node_modules/hono/dist/middleware/compress/index.js +75 -69
  440. package/node_modules/hono/dist/middleware/context-storage/index.js +49 -19
  441. package/node_modules/hono/dist/middleware/cors/index.js +107 -86
  442. package/node_modules/hono/dist/middleware/csrf/index.js +103 -53
  443. package/node_modules/hono/dist/middleware/etag/digest.js +59 -77
  444. package/node_modules/hono/dist/middleware/etag/index.js +71 -70
  445. package/node_modules/hono/dist/middleware/ip-restriction/index.js +163 -158
  446. package/node_modules/hono/dist/middleware/jsx-renderer/index.js +97 -54
  447. package/node_modules/hono/dist/middleware/jwk/index.js +1 -4
  448. package/node_modules/hono/dist/middleware/jwk/jwk.js +116 -112
  449. package/node_modules/hono/dist/middleware/jwt/index.js +2 -10
  450. package/node_modules/hono/dist/middleware/jwt/jwt.js +114 -114
  451. package/node_modules/hono/dist/middleware/language/index.js +2 -15
  452. package/node_modules/hono/dist/middleware/language/language.js +180 -157
  453. package/node_modules/hono/dist/middleware/logger/index.js +43 -37
  454. package/node_modules/hono/dist/middleware/method-not-allowed/index.js +81 -66
  455. package/node_modules/hono/dist/middleware/method-override/index.js +101 -81
  456. package/node_modules/hono/dist/middleware/mount/index.js +70 -0
  457. package/node_modules/hono/dist/middleware/powered-by/index.js +23 -9
  458. package/node_modules/hono/dist/middleware/pretty-json/index.js +39 -22
  459. package/node_modules/hono/dist/middleware/request-id/index.js +1 -4
  460. package/node_modules/hono/dist/middleware/request-id/request-id.js +33 -20
  461. package/node_modules/hono/dist/middleware/secure-headers/index.js +1 -5
  462. package/node_modules/hono/dist/middleware/secure-headers/permissions-policy.js +1 -0
  463. package/node_modules/hono/dist/middleware/secure-headers/secure-headers.js +144 -155
  464. package/node_modules/hono/dist/middleware/serve-static/index.js +56 -72
  465. package/node_modules/hono/dist/middleware/serve-static/path.js +15 -17
  466. package/node_modules/hono/dist/middleware/timeout/index.js +40 -23
  467. package/node_modules/hono/dist/middleware/timing/index.js +2 -9
  468. package/node_modules/hono/dist/middleware/timing/timing.js +177 -97
  469. package/node_modules/hono/dist/middleware/trailing-slash/index.js +85 -37
  470. package/node_modules/hono/dist/preset/quick.js +17 -15
  471. package/node_modules/hono/dist/preset/tiny.js +14 -11
  472. package/node_modules/hono/dist/request/constants.js +4 -5
  473. package/node_modules/hono/dist/request.js +328 -319
  474. package/node_modules/hono/dist/router/linear-router/index.js +1 -4
  475. package/node_modules/hono/dist/router/linear-router/router.js +93 -120
  476. package/node_modules/hono/dist/router/pattern-router/index.js +1 -4
  477. package/node_modules/hono/dist/router/pattern-router/router.js +39 -40
  478. package/node_modules/hono/dist/router/reg-exp-router/index.js +1 -7
  479. package/node_modules/hono/dist/router/reg-exp-router/matcher.js +17 -23
  480. package/node_modules/hono/dist/router/reg-exp-router/node.js +87 -110
  481. package/node_modules/hono/dist/router/reg-exp-router/prepared-router.js +89 -137
  482. package/node_modules/hono/dist/router/reg-exp-router/router.js +92 -129
  483. package/node_modules/hono/dist/router/reg-exp-router/trie.js +69 -64
  484. package/node_modules/hono/dist/router/smart-router/index.js +1 -4
  485. package/node_modules/hono/dist/router/smart-router/router.js +46 -55
  486. package/node_modules/hono/dist/router/trie-router/index.js +1 -4
  487. package/node_modules/hono/dist/router/trie-router/node.js +131 -162
  488. package/node_modules/hono/dist/router/trie-router/router.js +11 -14
  489. package/node_modules/hono/dist/router/utils.js +4 -5
  490. package/node_modules/hono/dist/router.js +35 -14
  491. package/node_modules/hono/dist/types/adapter/aws-lambda/conninfo.d.ts +4 -1
  492. package/node_modules/hono/dist/types/adapter/aws-lambda/handler.d.ts +150 -104
  493. package/node_modules/hono/dist/types/adapter/aws-lambda/index.d.ts +4 -8
  494. package/node_modules/hono/dist/types/adapter/aws-lambda/types.d.ts +152 -122
  495. package/node_modules/hono/dist/types/adapter/bun/conninfo.d.ts +4 -1
  496. package/node_modules/hono/dist/types/adapter/bun/index.d.ts +6 -10
  497. package/node_modules/hono/dist/types/adapter/bun/serve-static.d.ts +7 -2
  498. package/node_modules/hono/dist/types/adapter/bun/server.d.ts +4 -5
  499. package/node_modules/hono/dist/types/adapter/bun/ssg.d.ts +5 -1
  500. package/node_modules/hono/dist/types/adapter/bun/websocket.d.ts +31 -16
  501. package/node_modules/hono/dist/types/adapter/cloudflare-pages/conninfo.d.ts +4 -1
  502. package/node_modules/hono/dist/types/adapter/cloudflare-pages/handler.d.ts +29 -17
  503. package/node_modules/hono/dist/types/adapter/cloudflare-pages/index.d.ts +3 -7
  504. package/node_modules/hono/dist/types/adapter/cloudflare-workers/conninfo.d.ts +6 -1
  505. package/node_modules/hono/dist/types/adapter/cloudflare-workers/index.d.ts +4 -7
  506. package/node_modules/hono/dist/types/adapter/cloudflare-workers/serve-static-module.d.ts +5 -2
  507. package/node_modules/hono/dist/types/adapter/cloudflare-workers/serve-static.d.ts +10 -5
  508. package/node_modules/hono/dist/types/adapter/cloudflare-workers/utils.d.ts +10 -2
  509. package/node_modules/hono/dist/types/adapter/cloudflare-workers/websocket.d.ts +6 -1
  510. package/node_modules/hono/dist/types/adapter/deno/conninfo.d.ts +4 -1
  511. package/node_modules/hono/dist/types/adapter/deno/deno.d.ts +1 -0
  512. package/node_modules/hono/dist/types/adapter/deno/index.d.ts +5 -8
  513. package/node_modules/hono/dist/types/adapter/deno/serve-static.d.ts +7 -2
  514. package/node_modules/hono/dist/types/adapter/deno/ssg.d.ts +5 -1
  515. package/node_modules/hono/dist/types/adapter/deno/websocket.d.ts +6 -1
  516. package/node_modules/hono/dist/types/adapter/lambda-edge/conninfo.d.ts +6 -1
  517. package/node_modules/hono/dist/types/adapter/lambda-edge/handler.d.ts +83 -57
  518. package/node_modules/hono/dist/types/adapter/lambda-edge/index.d.ts +3 -7
  519. package/node_modules/hono/dist/types/adapter/netlify/conninfo.d.ts +4 -1
  520. package/node_modules/hono/dist/types/adapter/netlify/handler.d.ts +6 -1
  521. package/node_modules/hono/dist/types/adapter/netlify/index.d.ts +3 -5
  522. package/node_modules/hono/dist/types/adapter/netlify/mod.d.ts +3 -2
  523. package/node_modules/hono/dist/types/adapter/service-worker/handler.d.ts +9 -7
  524. package/node_modules/hono/dist/types/adapter/service-worker/index.d.ts +7 -9
  525. package/node_modules/hono/dist/types/adapter/service-worker/types.d.ts +12 -7
  526. package/node_modules/hono/dist/types/adapter/vercel/conninfo.d.ts +6 -1
  527. package/node_modules/hono/dist/types/adapter/vercel/handler.d.ts +6 -1
  528. package/node_modules/hono/dist/types/adapter/vercel/index.d.ts +3 -6
  529. package/node_modules/hono/dist/types/client/client.d.ts +5 -3
  530. package/node_modules/hono/dist/types/client/fetch-result-please.d.ts +21 -19
  531. package/node_modules/hono/dist/types/client/index.d.ts +5 -7
  532. package/node_modules/hono/dist/types/client/types.d.ts +134 -159
  533. package/node_modules/hono/dist/types/client/utils.d.ts +6 -4
  534. package/node_modules/hono/dist/types/compose.d.ts +4 -2
  535. package/node_modules/hono/dist/types/context.d.ts +335 -335
  536. package/node_modules/hono/dist/types/helper/accepts/accepts.d.ts +11 -9
  537. package/node_modules/hono/dist/types/helper/accepts/index.d.ts +2 -5
  538. package/node_modules/hono/dist/types/helper/adapter/index.d.ts +4 -6
  539. package/node_modules/hono/dist/types/helper/conninfo/index.d.ts +2 -5
  540. package/node_modules/hono/dist/types/helper/conninfo/types.d.ts +25 -23
  541. package/node_modules/hono/dist/types/helper/cookie/index.d.ts +10 -12
  542. package/node_modules/hono/dist/types/helper/css/common.d.ts +11 -9
  543. package/node_modules/hono/dist/types/helper/css/index.d.ts +26 -28
  544. package/node_modules/hono/dist/types/helper/dev/index.d.ts +10 -12
  545. package/node_modules/hono/dist/types/helper/factory/index.d.ts +26 -73
  546. package/node_modules/hono/dist/types/helper/html/index.d.ts +4 -7
  547. package/node_modules/hono/dist/types/helper/proxy/index.d.ts +19 -21
  548. package/node_modules/hono/dist/types/helper/route/index.d.ts +4 -2
  549. package/node_modules/hono/dist/types/helper/ssg/index.d.ts +4 -7
  550. package/node_modules/hono/dist/types/helper/ssg/middleware.d.ts +8 -6
  551. package/node_modules/hono/dist/types/helper/ssg/plugins.d.ts +3 -1
  552. package/node_modules/hono/dist/types/helper/ssg/ssg.d.ts +38 -36
  553. package/node_modules/hono/dist/types/helper/ssg/utils.d.ts +5 -3
  554. package/node_modules/hono/dist/types/helper/streaming/index.d.ts +4 -8
  555. package/node_modules/hono/dist/types/helper/streaming/sse.d.ts +10 -8
  556. package/node_modules/hono/dist/types/helper/streaming/stream.d.ts +4 -2
  557. package/node_modules/hono/dist/types/helper/streaming/text.d.ts +4 -2
  558. package/node_modules/hono/dist/types/helper/streaming/utils.d.ts +2 -0
  559. package/node_modules/hono/dist/types/helper/testing/index.d.ts +7 -9
  560. package/node_modules/hono/dist/types/helper/websocket/index.d.ts +30 -33
  561. package/node_modules/hono/dist/types/hono-base.d.ts +210 -210
  562. package/node_modules/hono/dist/types/hono.d.ts +11 -10
  563. package/node_modules/hono/dist/types/http-exception.d.ts +20 -22
  564. package/node_modules/hono/dist/types/index.d.ts +6 -37
  565. package/node_modules/hono/dist/types/jsx/base.d.ts +37 -35
  566. package/node_modules/hono/dist/types/jsx/children.d.ts +8 -6
  567. package/node_modules/hono/dist/types/jsx/components.d.ts +8 -5
  568. package/node_modules/hono/dist/types/jsx/constants.d.ts +2 -0
  569. package/node_modules/hono/dist/types/jsx/context.d.ts +9 -6
  570. package/node_modules/hono/dist/types/jsx/dom/client.d.ts +9 -10
  571. package/node_modules/hono/dist/types/jsx/dom/components.d.ts +9 -6
  572. package/node_modules/hono/dist/types/jsx/dom/context.d.ts +3 -1
  573. package/node_modules/hono/dist/types/jsx/dom/css.d.ts +27 -30
  574. package/node_modules/hono/dist/types/jsx/dom/hooks/index.d.ts +11 -12
  575. package/node_modules/hono/dist/types/jsx/dom/index.d.ts +79 -83
  576. package/node_modules/hono/dist/types/jsx/dom/intrinsic-element/components.d.ts +9 -5
  577. package/node_modules/hono/dist/types/jsx/dom/jsx-dev-runtime.d.ts +4 -6
  578. package/node_modules/hono/dist/types/jsx/dom/jsx-runtime.d.ts +3 -7
  579. package/node_modules/hono/dist/types/jsx/dom/render.d.ts +32 -50
  580. package/node_modules/hono/dist/types/jsx/dom/server.d.ts +87 -85
  581. package/node_modules/hono/dist/types/jsx/dom/utils.d.ts +2 -0
  582. package/node_modules/hono/dist/types/jsx/hooks/index.d.ts +16 -16
  583. package/node_modules/hono/dist/types/jsx/index.d.ts +71 -73
  584. package/node_modules/hono/dist/types/jsx/intrinsic-element/common.d.ts +3 -1
  585. package/node_modules/hono/dist/types/jsx/intrinsic-element/components.d.ts +7 -4
  586. package/node_modules/hono/dist/types/jsx/intrinsic-elements.d.ts +708 -708
  587. package/node_modules/hono/dist/types/jsx/jsx-dev-runtime.d.ts +4 -7
  588. package/node_modules/hono/dist/types/jsx/jsx-runtime.d.ts +7 -10
  589. package/node_modules/hono/dist/types/jsx/streaming.d.ts +9 -10
  590. package/node_modules/hono/dist/types/jsx/types.d.ts +12 -13
  591. package/node_modules/hono/dist/types/jsx/utils.d.ts +2 -0
  592. package/node_modules/hono/dist/types/middleware/basic-auth/index.d.ts +17 -19
  593. package/node_modules/hono/dist/types/middleware/bearer-auth/index.d.ts +46 -48
  594. package/node_modules/hono/dist/types/middleware/body-limit/index.d.ts +6 -8
  595. package/node_modules/hono/dist/types/middleware/cache/index.d.ts +13 -15
  596. package/node_modules/hono/dist/types/middleware/combine/index.d.ts +4 -6
  597. package/node_modules/hono/dist/types/middleware/compress/index.d.ts +9 -10
  598. package/node_modules/hono/dist/types/middleware/context-storage/index.d.ts +4 -6
  599. package/node_modules/hono/dist/types/middleware/cors/index.d.ts +10 -12
  600. package/node_modules/hono/dist/types/middleware/csrf/index.d.ts +6 -8
  601. package/node_modules/hono/dist/types/middleware/etag/digest.d.ts +2 -0
  602. package/node_modules/hono/dist/types/middleware/etag/index.d.ts +6 -8
  603. package/node_modules/hono/dist/types/middleware/ip-restriction/index.d.ts +11 -12
  604. package/node_modules/hono/dist/types/middleware/jsx-renderer/index.d.ts +11 -11
  605. package/node_modules/hono/dist/types/middleware/jwk/index.d.ts +2 -1
  606. package/node_modules/hono/dist/types/middleware/jwk/jwk.d.ts +20 -23
  607. package/node_modules/hono/dist/types/middleware/jwt/index.d.ts +7 -6
  608. package/node_modules/hono/dist/types/middleware/jwt/jwt.d.ts +28 -30
  609. package/node_modules/hono/dist/types/middleware/language/index.d.ts +6 -5
  610. package/node_modules/hono/dist/types/middleware/language/language.d.ts +42 -44
  611. package/node_modules/hono/dist/types/middleware/logger/index.d.ts +3 -5
  612. package/node_modules/hono/dist/types/middleware/method-not-allowed/index.d.ts +7 -9
  613. package/node_modules/hono/dist/types/middleware/method-override/index.d.ts +14 -16
  614. package/node_modules/hono/dist/types/middleware/mount/index.d.ts +46 -0
  615. package/node_modules/hono/dist/types/middleware/powered-by/index.d.ts +8 -10
  616. package/node_modules/hono/dist/types/middleware/pretty-json/index.d.ts +18 -20
  617. package/node_modules/hono/dist/types/middleware/request-id/index.d.ts +6 -5
  618. package/node_modules/hono/dist/types/middleware/request-id/request-id.d.ts +9 -11
  619. package/node_modules/hono/dist/types/middleware/secure-headers/index.d.ts +6 -6
  620. package/node_modules/hono/dist/types/middleware/secure-headers/permissions-policy.d.ts +2 -0
  621. package/node_modules/hono/dist/types/middleware/secure-headers/secure-headers.d.ts +55 -57
  622. package/node_modules/hono/dist/types/middleware/serve-static/index.d.ts +24 -24
  623. package/node_modules/hono/dist/types/middleware/serve-static/path.d.ts +2 -0
  624. package/node_modules/hono/dist/types/middleware/timeout/index.d.ts +5 -7
  625. package/node_modules/hono/dist/types/middleware/timing/index.d.ts +6 -5
  626. package/node_modules/hono/dist/types/middleware/timing/timing.d.ts +17 -20
  627. package/node_modules/hono/dist/types/middleware/trailing-slash/index.d.ts +35 -37
  628. package/node_modules/hono/dist/types/preset/quick.d.ts +6 -9
  629. package/node_modules/hono/dist/types/preset/tiny.d.ts +6 -9
  630. package/node_modules/hono/dist/types/request/constants.d.ts +2 -0
  631. package/node_modules/hono/dist/types/request.d.ts +288 -286
  632. package/node_modules/hono/dist/types/router/linear-router/index.d.ts +2 -5
  633. package/node_modules/hono/dist/types/router/linear-router/router.d.ts +7 -5
  634. package/node_modules/hono/dist/types/router/pattern-router/index.d.ts +2 -5
  635. package/node_modules/hono/dist/types/router/pattern-router/router.d.ts +7 -5
  636. package/node_modules/hono/dist/types/router/reg-exp-router/index.d.ts +3 -6
  637. package/node_modules/hono/dist/types/router/reg-exp-router/matcher.d.ts +3 -1
  638. package/node_modules/hono/dist/types/router/reg-exp-router/node.d.ts +6 -4
  639. package/node_modules/hono/dist/types/router/reg-exp-router/prepared-router.d.ts +11 -10
  640. package/node_modules/hono/dist/types/router/reg-exp-router/router.d.ts +10 -9
  641. package/node_modules/hono/dist/types/router/reg-exp-router/trie.d.ts +7 -5
  642. package/node_modules/hono/dist/types/router/smart-router/index.d.ts +2 -5
  643. package/node_modules/hono/dist/types/router/smart-router/router.d.ts +11 -9
  644. package/node_modules/hono/dist/types/router/trie-router/index.d.ts +2 -5
  645. package/node_modules/hono/dist/types/router/trie-router/node.d.ts +6 -4
  646. package/node_modules/hono/dist/types/router/trie-router/router.d.ts +7 -5
  647. package/node_modules/hono/dist/types/router/utils.d.ts +2 -0
  648. package/node_modules/hono/dist/types/router.d.ts +23 -22
  649. package/node_modules/hono/dist/types/types.d.ts +146 -505
  650. package/node_modules/hono/dist/types/utils/accept.d.ts +5 -3
  651. package/node_modules/hono/dist/types/utils/basic-auth.d.ts +4 -2
  652. package/node_modules/hono/dist/types/utils/body.d.ts +46 -50
  653. package/node_modules/hono/dist/types/utils/buffer.d.ts +7 -5
  654. package/node_modules/hono/dist/types/utils/color.d.ts +2 -0
  655. package/node_modules/hono/dist/types/utils/compress.d.ts +2 -0
  656. package/node_modules/hono/dist/types/utils/concurrent.d.ts +6 -4
  657. package/node_modules/hono/dist/types/utils/constants.d.ts +2 -0
  658. package/node_modules/hono/dist/types/utils/cookie.d.ts +20 -18
  659. package/node_modules/hono/dist/types/utils/crypto.d.ts +5 -7
  660. package/node_modules/hono/dist/types/utils/encode.d.ts +2 -0
  661. package/node_modules/hono/dist/types/utils/filepath.d.ts +5 -3
  662. package/node_modules/hono/dist/types/utils/handler.d.ts +2 -0
  663. package/node_modules/hono/dist/types/utils/headers.d.ts +2 -0
  664. package/node_modules/hono/dist/types/utils/html.d.ts +11 -9
  665. package/node_modules/hono/dist/types/utils/http-status.d.ts +2 -0
  666. package/node_modules/hono/dist/types/utils/ipaddr.d.ts +4 -6
  667. package/node_modules/hono/dist/types/utils/jwt/index.d.ts +18 -12
  668. package/node_modules/hono/dist/types/utils/jwt/jwa.d.ts +15 -13
  669. package/node_modules/hono/dist/types/utils/jwt/jws.d.ts +4 -7
  670. package/node_modules/hono/dist/types/utils/jwt/jwt.d.ts +26 -29
  671. package/node_modules/hono/dist/types/utils/jwt/types.d.ts +48 -45
  672. package/node_modules/hono/dist/types/utils/jwt/utf8.d.ts +2 -0
  673. package/node_modules/hono/dist/types/utils/mime.d.ts +60 -57
  674. package/node_modules/hono/dist/types/utils/stream.d.ts +27 -25
  675. package/node_modules/hono/dist/types/utils/types.d.ts +14 -26
  676. package/node_modules/hono/dist/types/utils/url.d.ts +2 -0
  677. package/node_modules/hono/dist/types/validator/index.d.ts +3 -7
  678. package/node_modules/hono/dist/types/validator/utils.d.ts +6 -8
  679. package/node_modules/hono/dist/types/validator/validator.d.ts +11 -9
  680. package/node_modules/hono/dist/types.js +4 -6
  681. package/node_modules/hono/dist/utils/accept.js +185 -212
  682. package/node_modules/hono/dist/utils/basic-auth.js +18 -21
  683. package/node_modules/hono/dist/utils/body.js +87 -92
  684. package/node_modules/hono/dist/utils/buffer.js +44 -71
  685. package/node_modules/hono/dist/utils/color.js +33 -21
  686. package/node_modules/hono/dist/utils/compress.js +11 -5
  687. package/node_modules/hono/dist/utils/concurrent.js +29 -38
  688. package/node_modules/hono/dist/utils/constants.js +7 -5
  689. package/node_modules/hono/dist/utils/cookie.js +114 -163
  690. package/node_modules/hono/dist/utils/crypto.js +30 -40
  691. package/node_modules/hono/dist/utils/encode.js +30 -26
  692. package/node_modules/hono/dist/utils/filepath.js +23 -33
  693. package/node_modules/hono/dist/utils/handler.js +10 -11
  694. package/node_modules/hono/dist/utils/headers.js +1 -0
  695. package/node_modules/hono/dist/utils/html.js +97 -117
  696. package/node_modules/hono/dist/utils/http-status.js +1 -0
  697. package/node_modules/hono/dist/utils/ipaddr.js +227 -279
  698. package/node_modules/hono/dist/utils/jwt/index.js +12 -4
  699. package/node_modules/hono/dist/utils/jwt/jwa.js +24 -20
  700. package/node_modules/hono/dist/utils/jwt/jws.js +115 -174
  701. package/node_modules/hono/dist/utils/jwt/jwt.js +120 -198
  702. package/node_modules/hono/dist/utils/jwt/types.js +79 -95
  703. package/node_modules/hono/dist/utils/jwt/utf8.js +9 -7
  704. package/node_modules/hono/dist/utils/mime.js +74 -79
  705. package/node_modules/hono/dist/utils/stream.js +86 -88
  706. package/node_modules/hono/dist/utils/types.js +1 -0
  707. package/node_modules/hono/dist/utils/url.js +187 -215
  708. package/node_modules/hono/dist/validator/index.js +1 -4
  709. package/node_modules/hono/dist/validator/utils.js +1 -0
  710. package/node_modules/hono/dist/validator/validator.js +61 -83
  711. package/node_modules/hono/package.json +35 -27
  712. package/package.json +16 -14
  713. package/scripts/cloud-runtime-smoke.mjs +4 -2
  714. package/scripts/lib/cursor-sdk-output-filter.d.mts +1 -0
  715. package/scripts/lib/cursor-sdk-output-filter.mjs +1 -0
  716. package/scripts/local-resume-smoke.mjs +1 -1
  717. package/scripts/platform-smoke/artifacts.mjs +7 -1
  718. package/scripts/platform-smoke/card-detect.mjs +2 -8
  719. package/scripts/platform-smoke/targets.mjs +8 -15
  720. package/scripts/platform-smoke/visual-evidence.mjs +7 -2
  721. package/scripts/tmux-live-smoke.sh +57 -90
  722. package/shared/cursor-sdk-output-filter.d.mts +3 -0
  723. package/shared/cursor-sdk-output-filter.mjs +117 -44
  724. package/src/context-window-cache.ts +0 -6
  725. package/src/context.ts +65 -33
  726. package/src/cursor-api-key.ts +37 -17
  727. package/src/cursor-cloud-lifecycle.ts +124 -98
  728. package/src/cursor-cloud-options.ts +2 -0
  729. package/src/cursor-config.ts +76 -0
  730. package/src/cursor-custom-store-path.ts +151 -0
  731. package/src/cursor-custom-subagent-definitions.ts +21 -0
  732. package/src/cursor-durable-fs.ts +65 -3
  733. package/src/cursor-fallback-models.generated.ts +288 -1
  734. package/src/cursor-fallback-warning.ts +9 -5
  735. package/src/cursor-http1.ts +8 -8
  736. package/src/cursor-live-run-coordinator.ts +33 -15
  737. package/src/cursor-mcp-timeout-override.ts +3 -1
  738. package/src/cursor-native-replay-routing.ts +2 -1
  739. package/src/cursor-native-tool-display-registration.ts +48 -24
  740. package/src/cursor-native-tool-display-state.ts +65 -21
  741. package/src/cursor-native-tool-display-tools.ts +7 -4
  742. package/src/cursor-pi-tool-bridge-constants.ts +27 -2
  743. package/src/cursor-pi-tool-bridge-run.ts +32 -3
  744. package/src/cursor-pi-tool-bridge-server.ts +1 -2
  745. package/src/cursor-pi-tool-bridge-snapshot.ts +1 -1
  746. package/src/cursor-pi-tool-bridge-types.ts +3 -0
  747. package/src/cursor-pi-tool-bridge.ts +26 -9
  748. package/src/cursor-provider-binding.ts +121 -0
  749. package/src/cursor-provider-errors.ts +59 -35
  750. package/src/cursor-provider-lazy.ts +21 -15
  751. package/src/cursor-provider-live-run-drain.ts +29 -17
  752. package/src/cursor-provider-run-finalizer.ts +26 -16
  753. package/src/cursor-provider-turn-coordinator.ts +2 -0
  754. package/src/cursor-provider-turn-display-router.ts +5 -0
  755. package/src/cursor-provider-turn-emit.ts +3 -1
  756. package/src/cursor-provider-turn-finalize.ts +38 -23
  757. package/src/cursor-provider-turn-prepare.ts +51 -27
  758. package/src/cursor-provider-turn-runner.ts +40 -13
  759. package/src/cursor-provider-turn-send.ts +23 -15
  760. package/src/cursor-provider-turn-summary.ts +94 -0
  761. package/src/cursor-provider-turn-tool-ledger.ts +12 -7
  762. package/src/cursor-provider-turn-types.ts +37 -4
  763. package/src/cursor-provider.ts +28 -4
  764. package/src/cursor-question-tool.ts +5 -5
  765. package/src/cursor-request-provenance.ts +79 -0
  766. package/src/cursor-ripgrep-path.ts +15 -5
  767. package/src/cursor-runtime-state.ts +53 -48
  768. package/src/cursor-sdk-billed-usage.ts +54 -102
  769. package/src/cursor-sdk-event-debug-session.ts +5 -5
  770. package/src/cursor-sdk-event-debug.ts +10 -6
  771. package/src/cursor-sdk-output-filter.ts +2 -0
  772. package/src/cursor-sdk-process-error-guard.ts +8 -9
  773. package/src/cursor-sdk-runtime.ts +15 -2
  774. package/src/cursor-sdk-vendor-env.ts +22 -0
  775. package/src/cursor-session-agent-cleanup.ts +30 -29
  776. package/src/cursor-session-agent-lifecycle.ts +14 -9
  777. package/src/cursor-session-agent-lineage.ts +26 -12
  778. package/src/cursor-session-agent-resume.ts +49 -36
  779. package/src/cursor-session-agent.ts +57 -27
  780. package/src/cursor-session-compaction-prep.ts +2 -7
  781. package/src/cursor-session-scope.ts +87 -39
  782. package/src/cursor-session-send-policy.ts +2 -2
  783. package/src/cursor-session-settings.ts +72 -0
  784. package/src/cursor-session-store.ts +259 -53
  785. package/src/cursor-skill-tool.ts +37 -61
  786. package/src/cursor-state.ts +81 -69
  787. package/src/cursor-tool-manifest.ts +1 -1
  788. package/src/cursor-usage-accounting.ts +17 -82
  789. package/src/cursor-usage-command.ts +76 -0
  790. package/src/cursor-usage-ledger.ts +500 -0
  791. package/src/index.ts +30 -39
  792. package/src/model-discovery.ts +76 -45
  793. package/src/model-list-cache.ts +11 -1
  794. package/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-BLVe3qmU.d.cts.map +0 -1
  795. package/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-Bt6U_Fqb.d.mts.map +0 -1
  796. package/node_modules/@modelcontextprotocol/server/dist/mcp-DUcCQSTW.cjs.map +0 -1
  797. package/node_modules/@modelcontextprotocol/server/dist/mcp-Dw2OlZ1f.mjs.map +0 -1
  798. package/node_modules/@modelcontextprotocol/server/dist/src-CgFsfg3E.cjs.map +0 -1
  799. package/node_modules/@modelcontextprotocol/server/dist/src-D-y6h4N7.mjs.map +0 -1
@@ -18,7 +18,7 @@ import {
18
18
  } from "./cursor-incomplete-tool-visibility.js";
19
19
  import type { installCursorSdkProcessErrorGuard } from "./cursor-sdk-process-error-guard.js";
20
20
  import type { CursorSdkEventDebugSink } from "./cursor-sdk-event-debug.js";
21
- import { awaitFinalizeCursorRunOutcome } from "./cursor-provider-turn-finalize.js";
21
+ import { awaitFinalizeCursorRunOutcome, recordCursorProviderTerminalUsage } from "./cursor-provider-turn-finalize.js";
22
22
  import type {
23
23
  CursorProviderTurnPrepareResult,
24
24
  CursorProviderTurnRunnerParams,
@@ -26,6 +26,7 @@ import type {
26
26
  CursorProviderTurnSendResult,
27
27
  LiveCursorProviderTurnRuntime,
28
28
  LocalCursorProviderTurnPrepareResult,
29
+ StartedCursorProviderTurn,
29
30
  } from "./cursor-provider-turn-types.js";
30
31
  import { applyCursorUsage } from "./cursor-usage-accounting.js";
31
32
  import { hasUsableText } from "./cursor-record-utils.js";
@@ -33,15 +34,15 @@ import { emitDisplayOnlyTraceBlock } from "./cursor-display-only-trace.js";
33
34
  export type CursorTurnTerminalEvent =
34
35
  | {
35
36
  kind: "direct";
36
- prepared: CursorProviderTurnPrepareResult;
37
+ prepared: StartedCursorProviderTurn;
37
38
  outcome: CursorRunOutcome;
38
39
  displayOnlyTraceBlock?: string;
39
40
  }
40
- | { kind: "error"; prepared: CursorProviderTurnPrepareResult | undefined; error: unknown };
41
+ | { kind: "error"; prepared: CursorProviderTurnPrepareResult | StartedCursorProviderTurn | undefined; error: unknown };
41
42
 
42
43
  function applyLiveRunOutcome(
43
44
  outcome: CursorRunOutcome,
44
- prepared: LocalCursorProviderTurnPrepareResult & { runtime: LiveCursorProviderTurnRuntime },
45
+ prepared: StartedCursorProviderTurn & LocalCursorProviderTurnPrepareResult & { runtime: LiveCursorProviderTurnRuntime },
45
46
  context: CursorProviderTurnRunnerParams["context"],
46
47
  ): void {
47
48
  if (prepared.runtime.liveRun.disposed) return;
@@ -63,7 +64,7 @@ function applyLiveRunOutcome(
63
64
 
64
65
  export interface CursorLiveRunCompletion {
65
66
  waitCompletion: Promise<void>;
66
- prepared: CursorProviderTurnPrepareResult;
67
+ prepared: StartedCursorProviderTurn;
67
68
  }
68
69
 
69
70
  export interface CursorRunFinalizerParams {
@@ -76,7 +77,7 @@ export interface CursorRunFinalizerParams {
76
77
 
77
78
  export interface StartCursorLiveRunCompletionParams {
78
79
  send: CursorProviderTurnSend;
79
- prepared: LocalCursorProviderTurnPrepareResult & { runtime: LiveCursorProviderTurnRuntime };
80
+ prepared: StartedCursorProviderTurn & LocalCursorProviderTurnPrepareResult & { runtime: LiveCursorProviderTurnRuntime };
80
81
  modelId: string;
81
82
  discardIncompleteTools: (outcome: IncompleteCursorToolRunOutcomeInput) => void;
82
83
  }
@@ -110,14 +111,16 @@ export class CursorRunFinalizer {
110
111
  applyLiveRunOutcome(finalized.outcome, prepared, runnerParams.context);
111
112
  })
112
113
  .catch((error: unknown) => {
113
- this.safeCleanup(() => discardIncompleteTools({ status: "error" }));
114
+ const aborted = error instanceof CursorLiveRunAbortError || runnerParams.options?.signal?.aborted === true;
115
+ this.safeCleanup(() => discardIncompleteTools({ status: aborted ? "cancelled" : "error" }));
114
116
  if (!liveRun.disposed) {
115
- cursorLiveRuns.markError(
117
+ if (aborted) cursorLiveRuns.markCancelled(liveRun, this.abortMessage());
118
+ else cursorLiveRuns.markError(
116
119
  liveRun,
117
120
  sanitizeCursorProviderError(error, this.params.resolvedApiKey() ?? runnerParams.options?.apiKey, "local"),
118
121
  );
119
122
  }
120
- this.safeCleanup(() => sdkEventDebug?.recordWaitResult({ status: "error", error: String(error) }));
123
+ this.safeCleanup(() => sdkEventDebug?.recordWaitResult({ status: aborted ? "cancelled" : "error", error: String(error) }));
121
124
  this.safeCleanup(() => sdkEventDebug?.recordError("run_wait", error));
122
125
  });
123
126
  // Mark the pooled local agent busy as soon as the SDK run exists so auto-compaction summarization
@@ -142,12 +145,12 @@ export class CursorRunFinalizer {
142
145
  sendResult: CursorProviderTurnSendResult | undefined,
143
146
  liveCompletion: CursorLiveRunCompletion | undefined,
144
147
  ): Promise<void> {
145
- this.safeCleanup(() => prepared?.restoreCursorSdkOutputFilter());
146
148
  const abortRegistration = sendResult?.abortRegistration;
147
149
  this.params.runnerParams.sdkEventDebugRef.current = undefined;
148
150
  if (liveCompletion) {
149
151
  void liveCompletion.waitCompletion
150
152
  .finally(async () => {
153
+ this.safeCleanup(() => prepared?.restoreCursorSdkOutputFilter());
151
154
  if (abortRegistration) {
152
155
  this.safeCleanup(() => abortRegistration.signal.removeEventListener("abort", abortRegistration.listener));
153
156
  }
@@ -157,6 +160,7 @@ export class CursorRunFinalizer {
157
160
  .catch(() => {});
158
161
  return;
159
162
  }
163
+ this.safeCleanup(() => prepared?.restoreCursorSdkOutputFilter());
160
164
  if (abortRegistration) {
161
165
  this.safeCleanup(() => abortRegistration.signal.removeEventListener("abort", abortRegistration.listener));
162
166
  }
@@ -166,11 +170,13 @@ export class CursorRunFinalizer {
166
170
  }
167
171
 
168
172
  private async applyDirectOutcome(
169
- prepared: CursorProviderTurnPrepareResult,
173
+ prepared: StartedCursorProviderTurn,
170
174
  outcome: CursorRunOutcome,
171
175
  displayOnlyTraceBlock: string | undefined,
172
176
  ): Promise<void> {
173
177
  const { stream, partial, model, context } = this.params.runnerParams;
178
+ // Native summaries return at terminal emission, so release their temporary resources first.
179
+ if (prepared.execution === "summary") await prepared.lifecycle.dispose().catch(() => {});
174
180
  prepared.runtime.turnCoordinator.closeTraceBlock();
175
181
  switch (classifyCursorRunEmission(outcome)) {
176
182
  case "cancelled":
@@ -189,7 +195,7 @@ export class CursorRunFinalizer {
189
195
  applyCursorUsage(partial, model, context, prepared.meta.promptInputTokens, {
190
196
  runtime: prepared.runtimeTarget,
191
197
  turn: prepared.runtime.turnCoordinator.lastSdkTurnUsage,
192
- billed: prepared.runtime.billedTurnUsage,
198
+ occupancyFloor: this.params.runnerParams.request.occupancyFloor,
193
199
  });
194
200
  if (prepared.meta.resumeNotice) emitDisplayOnlyTraceBlock(stream, partial, prepared.meta.resumeNotice);
195
201
  if (displayOnlyTraceBlock) emitDisplayOnlyTraceBlock(stream, partial, displayOnlyTraceBlock);
@@ -198,11 +204,15 @@ export class CursorRunFinalizer {
198
204
  }
199
205
  }
200
206
 
201
- private async applyErrorOutcome(prepared: CursorProviderTurnPrepareResult | undefined, error: unknown): Promise<void> {
207
+ private async applyErrorOutcome(prepared: CursorProviderTurnPrepareResult | StartedCursorProviderTurn | undefined, error: unknown): Promise<void> {
208
+ const aborted = error instanceof CursorLiveRunAbortError || this.params.runnerParams.options?.signal?.aborted === true;
209
+ if (prepared && "usage" in prepared && (!prepared.runtime.sdkRun || prepared.runtime.kind !== "live")) {
210
+ await recordCursorProviderTerminalUsage(prepared, aborted ? "abort" : "error");
211
+ }
202
212
  this.safeCleanup(() => prepared?.runtime.turnCoordinator.discardIncompleteStartedToolCalls(
203
213
  buildIncompleteCursorToolRunOutcome({
204
- status: error instanceof CursorLiveRunAbortError ? "cancelled" : "error",
205
- signalAborted: error instanceof CursorLiveRunAbortError,
214
+ status: aborted ? "cancelled" : "error",
215
+ signalAborted: aborted,
206
216
  }),
207
217
  ));
208
218
  const activeLiveRun = prepared?.runtime.liveRun;
@@ -212,7 +222,7 @@ export class CursorRunFinalizer {
212
222
  await prepared?.lifecycle.abandon();
213
223
  }
214
224
  this.safeCleanup(() => this.params.sdkEventDebug()?.recordError("provider_stream", error));
215
- if (error instanceof CursorLiveRunAbortError) {
225
+ if (aborted) {
216
226
  this.params.sdkProcessErrorGuard.suppressAbortErrors();
217
227
  this.pushTerminalError(this.params.runnerParams.partial, "aborted", this.abortMessage());
218
228
  } else {
@@ -43,6 +43,7 @@ export interface CursorSdkTurnCoordinatorOptions {
43
43
  liveRun?: CursorLiveRun;
44
44
  useNativeToolReplay: boolean;
45
45
  activeToolNames?: ReadonlySet<string>;
46
+ registeredToolNames?: ReadonlySet<string>;
46
47
  nativeReplayId: string;
47
48
  textDeltas: string[];
48
49
  debugRecorder?: CursorSdkEventDebugRecorder;
@@ -86,6 +87,7 @@ export class CursorSdkTurnCoordinator {
86
87
  liveRun: options.liveRun,
87
88
  useNativeToolReplay: options.useNativeToolReplay,
88
89
  activeToolNames: options.activeToolNames,
90
+ registeredToolNames: options.registeredToolNames,
89
91
  nativeReplayId: options.nativeReplayId,
90
92
  contentEmitter: this.contentEmitter,
91
93
  debugRecorder: options.debugRecorder,
@@ -29,6 +29,7 @@ export interface CursorTurnDisplayRouterOptions {
29
29
  liveRun?: CursorLiveRun;
30
30
  useNativeToolReplay: boolean;
31
31
  activeToolNames?: ReadonlySet<string>;
32
+ registeredToolNames?: ReadonlySet<string>;
32
33
  nativeReplayId: string;
33
34
  contentEmitter: CursorPartialContentEmitter;
34
35
  debugRecorder?: CursorSdkEventDebugRecorder;
@@ -44,6 +45,7 @@ export class CursorTurnDisplayRouter {
44
45
  private readonly liveRun?: CursorLiveRun;
45
46
  private readonly useNativeToolReplay: boolean;
46
47
  private readonly activeToolNames?: ReadonlySet<string>;
48
+ private readonly registeredToolNames?: ReadonlySet<string>;
47
49
  private readonly nativeReplayId: string;
48
50
  private readonly contentEmitter: CursorPartialContentEmitter;
49
51
  private readonly debugRecorder?: CursorSdkEventDebugRecorder;
@@ -57,6 +59,7 @@ export class CursorTurnDisplayRouter {
57
59
  this.liveRun = options.liveRun;
58
60
  this.useNativeToolReplay = options.useNativeToolReplay;
59
61
  this.activeToolNames = options.activeToolNames;
62
+ this.registeredToolNames = options.registeredToolNames;
60
63
  this.nativeReplayId = options.nativeReplayId;
61
64
  this.contentEmitter = options.contentEmitter;
62
65
  this.debugRecorder = options.debugRecorder;
@@ -75,6 +78,7 @@ export class CursorTurnDisplayRouter {
75
78
  toolName: display.toolName,
76
79
  useNativeToolReplay: this.useNativeToolReplay,
77
80
  activeToolNames: this.activeToolNames,
81
+ registeredToolNames: this.registeredToolNames,
78
82
  hasLiveRun: this.liveRun !== undefined,
79
83
  });
80
84
 
@@ -122,6 +126,7 @@ export class CursorTurnDisplayRouter {
122
126
  toolName: display.toolName,
123
127
  useNativeToolReplay: this.useNativeToolReplay,
124
128
  activeToolNames: this.activeToolNames,
129
+ registeredToolNames: this.registeredToolNames,
125
130
  hasLiveRun: this.liveRun !== undefined,
126
131
  });
127
132
 
@@ -13,12 +13,13 @@ import {
13
13
  import type {
14
14
  CursorProviderTurnPrepareResult,
15
15
  CursorProviderTurnRunnerParams,
16
+ StartedCursorProviderTurn,
16
17
  } from "./cursor-provider-turn-types.js";
17
18
  import type { CursorSdkEventDebugSink } from "./cursor-sdk-event-debug.js";
18
19
 
19
20
  export interface EmitCursorLiveTurnParams {
20
21
  params: CursorProviderTurnRunnerParams;
21
- prepared: CursorProviderTurnPrepareResult;
22
+ prepared: StartedCursorProviderTurn;
22
23
  sdkEventDebug: CursorSdkEventDebugSink | undefined;
23
24
  discardIncompleteTools: (outcome: IncompleteCursorToolRunOutcomeInput) => void;
24
25
  }
@@ -42,6 +43,7 @@ export async function emitCursorLiveTurn(emitParams: EmitCursorLiveTurnParams):
42
43
  emitter,
43
44
  signal: options?.signal,
44
45
  debugRecorder: sdkEventDebug,
46
+ occupancyFloor: params.request.occupancyFloor,
45
47
  });
46
48
  });
47
49
  } catch (caught) {
@@ -5,7 +5,6 @@ import {
5
5
  formatCursorCloudRunReport,
6
6
  type CursorCloudRunReport,
7
7
  } from "./cursor-cloud-reporting.js";
8
- import { recordCursorCloudLifecycleRun } from "./cursor-cloud-lifecycle.js";
9
8
  import { getCheckpointContextWindow, saveCachedContextWindow } from "./context-window-cache.js";
10
9
  import { scrubSensitiveText } from "./cursor-sensitive-text.js";
11
10
  import type { CursorSdkEventDebugSink } from "./cursor-sdk-event-debug.js";
@@ -15,9 +14,8 @@ import {
15
14
  resolveCursorRunOutcome,
16
15
  type CursorRunOutcome,
17
16
  } from "./cursor-provider-run-outcome.js";
18
- import type { CursorProviderTurnPrepareResult } from "./cursor-provider-turn-types.js";
17
+ import type { StartedCursorProviderTurn } from "./cursor-provider-turn-types.js";
19
18
  import { loadCursorSdk } from "./cursor-sdk-runtime.js";
20
- import { attachCursorSdkBilledTurnUsage } from "./cursor-sdk-billed-usage.js";
21
19
 
22
20
  export async function cacheSdkContextWindow(
23
21
  agentId: string,
@@ -45,7 +43,7 @@ export async function cacheSdkContextWindow(
45
43
 
46
44
  export interface BuildCursorRunOutcomeParams {
47
45
  waitResult: Awaited<ReturnType<Awaited<ReturnType<SDKAgent["send"]>>["wait"]>>;
48
- prepared: CursorProviderTurnPrepareResult;
46
+ prepared: StartedCursorProviderTurn;
49
47
  signal?: AbortSignal;
50
48
  runResultFallback?: string;
51
49
  runErrorFallback?: RunError;
@@ -117,7 +115,7 @@ function recordCursorCloudReportingError(
117
115
 
118
116
  export interface AwaitFinalizeCursorRunOutcomeParams {
119
117
  run: Awaited<ReturnType<SDKAgent["send"]>>;
120
- prepared: CursorProviderTurnPrepareResult;
118
+ prepared: StartedCursorProviderTurn;
121
119
  cursorAgentMessageOffset: number | undefined;
122
120
  modelId: string;
123
121
  signal?: AbortSignal;
@@ -137,10 +135,32 @@ export interface FinalizedCursorRunOutcome {
137
135
  displayOnlyTraceBlock?: string;
138
136
  }
139
137
 
140
- /** Single wait/finalize path for SDK runs: wait, debug capture, transcript replay, incomplete tools, artifacts, context cache. */
138
+ export async function recordCursorProviderTerminalUsage(
139
+ prepared: StartedCursorProviderTurn,
140
+ status: "success" | "error" | "abort",
141
+ waitUsage?: unknown,
142
+ ) {
143
+ if (prepared.runtime.usageTerminalRecorded) return undefined;
144
+ prepared.runtime.usageTerminalRecorded = true;
145
+ try {
146
+ return await prepared.usage.recordTerminal({ status, waitUsage, handleUsage: prepared.runtime.sdkRun?.usage });
147
+ } catch (error) {
148
+ prepared.usage.notePersistenceFailure(error);
149
+ return undefined;
150
+ }
151
+ }
152
+
153
+ /** Single wait/finalize path for SDK runs: accounting, replay, incomplete tools, artifacts, context cache. */
141
154
  export async function awaitFinalizeCursorRunOutcome(params: AwaitFinalizeCursorRunOutcomeParams): Promise<FinalizedCursorRunOutcome> {
142
155
  const apiKey = params.resolvedApiKey ?? params.optionsApiKey;
143
- const waitResult = params.waitResult ?? (await params.run.wait());
156
+ params.prepared.runtime.sdkRun = params.run;
157
+ let waitResult: Awaited<ReturnType<typeof params.run.wait>>;
158
+ try {
159
+ waitResult = params.waitResult ?? (await params.run.wait());
160
+ } catch (error) {
161
+ await recordCursorProviderTerminalUsage(params.prepared, params.signal?.aborted ? "abort" : "error");
162
+ throw error;
163
+ }
144
164
  const outcome = buildCursorRunOutcomeFromWait({
145
165
  waitResult,
146
166
  prepared: params.prepared,
@@ -150,16 +170,11 @@ export async function awaitFinalizeCursorRunOutcome(params: AwaitFinalizeCursorR
150
170
  resolvedApiKey: params.resolvedApiKey,
151
171
  optionsApiKey: params.optionsApiKey,
152
172
  });
153
- const billed = await attachCursorSdkBilledTurnUsage({
154
- agent: params.prepared.agent,
155
- agentId: params.run.agentId,
156
- runtime: params.prepared.runtimeTarget,
157
- runId: params.run.id,
158
- });
159
- params.prepared.runtime.billedTurnUsage = billed.turn;
160
- if (params.prepared.runtime.liveRun) {
161
- params.prepared.runtime.liveRun.billedTurnUsage = billed.turn;
162
- }
173
+ const billing = await recordCursorProviderTerminalUsage(
174
+ params.prepared,
175
+ outcome.kind === "finished" ? "success" : outcome.kind === "cancelled" ? "abort" : "error",
176
+ waitResult.usage,
177
+ );
163
178
  let displayOnlyTraceBlock: string | undefined;
164
179
  if (params.prepared.runtimeTarget === "cloud" && isCursorRunFinishedSuccessfully(outcome)) {
165
180
  let report: CursorCloudRunReport = { agentId: params.run.agentId, runId: params.run.id, branches: [] };
@@ -169,13 +184,13 @@ export async function awaitFinalizeCursorRunOutcome(params: AwaitFinalizeCursorR
169
184
  run: params.run,
170
185
  waitResult,
171
186
  apiKey,
172
- agentUsage: billed.agentUsage,
187
+ agentUsage: billing ? billing.status === "observed-pending-settlement" ? billing.snapshot : null : undefined,
173
188
  });
174
189
  } catch (error) {
175
190
  recordCursorCloudReportingError(params.sdkEventDebug, error, apiKey);
176
191
  }
177
192
  try {
178
- recordCursorCloudLifecycleRun(report, { apiKey });
193
+ params.prepared.recordCloudLifecycle(report, apiKey);
179
194
  } catch (error) {
180
195
  recordCursorCloudReportingError(params.sdkEventDebug, error, apiKey);
181
196
  }
@@ -195,12 +210,12 @@ export async function awaitFinalizeCursorRunOutcome(params: AwaitFinalizeCursorR
195
210
  } catch {
196
211
  // Debug reporting must never affect provider execution.
197
212
  }
198
- if (params.prepared.runtimeTarget === "local" && isCursorRunFinishedSuccessfully(outcome)) {
213
+ if (params.prepared.runtimeTarget === "local" && params.prepared.execution === "conversation" && isCursorRunFinishedSuccessfully(outcome)) {
199
214
  await replayCursorTranscriptWebToolCalls(
200
215
  params.run.agentId,
201
216
  params.prepared.cwd,
202
217
  params.cursorAgentMessageOffset,
203
- params.prepared.sessionAgentLease.store,
218
+ params.prepared.store,
204
219
  params.prepared.runtime.turnCoordinator,
205
220
  params.sdkEventDebug,
206
221
  );
@@ -211,12 +226,12 @@ export async function awaitFinalizeCursorRunOutcome(params: AwaitFinalizeCursorR
211
226
  } catch {
212
227
  // Debug artifact failures must never affect provider execution.
213
228
  }
214
- if (params.prepared.runtimeTarget === "local" && params.cacheContextWindow !== false) {
229
+ if (params.prepared.runtimeTarget === "local" && params.prepared.execution === "conversation" && params.cacheContextWindow !== false) {
215
230
  await cacheSdkContextWindow(
216
231
  params.contextWindowAgentId ?? params.run.agentId,
217
232
  params.modelId,
218
233
  params.prepared.cwd,
219
- params.prepared.sessionAgentLease.store,
234
+ params.prepared.store,
220
235
  );
221
236
  }
222
237
  return { outcome, displayOnlyTraceBlock };
@@ -1,6 +1,6 @@
1
1
  import type { Context, SimpleStreamOptions } from "@earendil-works/pi-ai";
2
2
  import { getCursorConversationMessages, resolveCursorPiContext } from "./cursor-pi-context.js";
3
- import type { AgentModeOption, ModelSelection, SDKAgent } from "@cursor/sdk";
3
+ import type { AgentModeOption, AgentOptions, ModelSelection, SDKAgent } from "@cursor/sdk";
4
4
  import { configureCursorSdkHttp1 } from "./cursor-http1.js";
5
5
  import { installCursorMcpToolTimeoutOverride } from "./cursor-mcp-timeout-override.js";
6
6
  import { ensureCursorRipgrepPath } from "./cursor-ripgrep-path.js";
@@ -13,7 +13,7 @@ import {
13
13
  type CursorSessionSendPlan,
14
14
  } from "./cursor-session-agent.js";
15
15
  import type { CursorPiBridgeToolRequest } from "./cursor-pi-tool-bridge.js";
16
- import { buildCursorPrompt, estimateCursorPromptTokens } from "./context.js";
16
+ import { buildCursorPrompt, estimateCursorPromptTokens, getCursorPendingInput } from "./context.js";
17
17
  import { getCursorPromptOptions } from "./cursor-usage-accounting.js";
18
18
  import { getActiveContextToolNames } from "./cursor-context-tools.js";
19
19
  import type { CursorLiveRun } from "./cursor-live-run-coordinator.js";
@@ -22,7 +22,6 @@ import {
22
22
  createCursorNativeReplayId,
23
23
  cursorLiveRuns,
24
24
  getActiveCursorLiveRunForCurrentScope,
25
- getPendingCursorLiveRun,
26
25
  } from "./cursor-provider-live-run-drain.js";
27
26
  import {
28
27
  getCursorProviderAgentModeOrThrow,
@@ -30,6 +29,7 @@ import {
30
29
  } from "./cursor-state.js";
31
30
  import { resolveEffectiveCursorConfig } from "./cursor-runtime-state.js";
32
31
  import type { CursorResolvedSdkConfig } from "./cursor-config.js";
32
+ import { buildCursorCustomSubagentDefinitions } from "./cursor-custom-subagent-definitions.js";
33
33
  import { buildCursorModelSelection } from "./model-discovery.js";
34
34
  import { getEffectiveCursorSettingSources } from "./cursor-setting-sources.js";
35
35
  import {
@@ -38,17 +38,14 @@ import {
38
38
  preflightCursorCloudRuntime,
39
39
  } from "./cursor-cloud-options.js";
40
40
  import { inspectCursorCloudLocalState } from "./cursor-cloud-local-state.js";
41
- import { getCursorSessionName, getCursorSessionProjectTrusted } from "./cursor-session-scope.js";
41
+ import { getCursorSessionProjectTrusted } from "./cursor-session-scope.js";
42
42
  import { resolveCursorPiToolBridgeEnabled } from "./cursor-pi-tool-bridge-env.js";
43
43
  import {
44
44
  buildCursorToolManifestText,
45
45
  resolveCursorToolManifestEnabled,
46
46
  } from "./cursor-tool-manifest.js";
47
47
  import { isCursorNativeToolDisplayRuntimeEnabled } from "./cursor-native-tool-display-state.js";
48
- import {
49
- createCursorCloudLifecyclePersistenceError,
50
- recordCursorCloudLifecycleSafely,
51
- } from "./cursor-cloud-lifecycle.js";
48
+ import { createCursorCloudLifecyclePersistenceError } from "./cursor-cloud-lifecycle.js";
52
49
  import { MISSING_CURSOR_API_KEY_MESSAGE } from "./cursor-provider-errors.js";
53
50
  import { CursorSdkTurnCoordinator } from "./cursor-provider-turn-coordinator.js";
54
51
  import { resolveCursorApiKey } from "./cursor-api-key.js";
@@ -62,6 +59,7 @@ import type {
62
59
  } from "./cursor-provider-turn-types.js";
63
60
  import type { CursorSdkEventDebugSink } from "./cursor-sdk-event-debug.js";
64
61
  import type { SessionCursorAgentLease } from "./cursor-session-agent.js";
62
+ import { prepareCursorSummaryProviderTurn } from "./cursor-provider-turn-summary.js";
65
63
 
66
64
  export interface PrepareCursorProviderTurnParams {
67
65
  params: CursorProviderTurnRunnerParams;
@@ -77,14 +75,20 @@ interface PrepareCursorProviderTurnContext extends PrepareCursorProviderTurnPara
77
75
  agentMode: AgentModeOption;
78
76
  selection: ModelSelection;
79
77
  fastEnabled: boolean | undefined;
78
+ agents: AgentOptions["agents"];
79
+ customSubagentNames: string[] | undefined;
80
80
  }
81
81
 
82
- function buildCursorCloudPromptContext(context: Context, handoff: "fresh" | "bootstrap" | "never"): Context {
82
+ function buildCursorCloudPromptContext(context: Context, handoff: "fresh" | "bootstrap" | "never", nativeSourceRoles?: readonly string[]): Context {
83
83
  if (handoff === "bootstrap") return context;
84
84
  // Fresh cloud runs omit history, not the current Pi instructions. Replay before
85
85
  // selecting the user message, otherwise transcript-only inputs lose the prompt.
86
86
  const current = resolveCursorPiContext(context);
87
87
  const messages = getCursorConversationMessages(context);
88
+ if (nativeSourceRoles) {
89
+ const { start } = getCursorPendingInput(messages, nativeSourceRoles);
90
+ return { ...current, messages: messages.slice(start) };
91
+ }
88
92
  for (let index = messages.length - 1; index >= 0; index -= 1) {
89
93
  const message = messages[index];
90
94
  if (message.role === "user") return { ...current, messages: [message] };
@@ -94,8 +98,8 @@ function buildCursorCloudPromptContext(context: Context, handoff: "fresh" | "boo
94
98
 
95
99
  const CLOUD_SEND_PLAN: CursorSessionSendPlan = { mode: "bootstrap", resetAgent: false, reason: "initial" };
96
100
 
97
- export function resolveCursorProviderTurnConfig(cwd: string) {
98
- return resolveEffectiveCursorConfig({ cwd, projectTrusted: getCursorSessionProjectTrusted() });
101
+ export function resolveCursorProviderTurnConfig(cwd: string, projectTrusted = getCursorSessionProjectTrusted(), scopeKey?: string) {
102
+ return resolveEffectiveCursorConfig({ cwd, projectTrusted, scopeKey });
99
103
  }
100
104
 
101
105
  function buildCloudCursorProviderTurnLifecycle(agent: SDKAgent): CursorProviderTurnLifecycle {
@@ -124,7 +128,7 @@ function buildLocalCursorProviderTurnLifecycle(
124
128
  async function prepareCursorCloudProviderTurn(
125
129
  prepareParams: PrepareCursorProviderTurnContext,
126
130
  ): Promise<CloudCursorProviderTurnPrepareResult> {
127
- const { params, cwd, resolvedApiKey, sdkEventDebug, throwIfAborted, resolvedConfig, agentMode, selection, fastEnabled } = prepareParams;
131
+ const { params, cwd, resolvedApiKey, sdkEventDebug, throwIfAborted, resolvedConfig, agentMode, selection, fastEnabled, agents, customSubagentNames } = prepareParams;
128
132
  const { model, context, options } = params;
129
133
 
130
134
  let restoreCursorSdkOutputFilter: (() => void) | undefined;
@@ -143,22 +147,22 @@ async function prepareCursorCloudProviderTurn(
143
147
  hasPriorContext: getCursorConversationMessages(context).length > 1,
144
148
  });
145
149
  if (!preflight.ok) throw new Error(formatCursorCloudPreflightError(preflight));
146
- if (getPendingCursorLiveRun(context) || getActiveCursorLiveRunForCurrentScope()) {
150
+ if (getActiveCursorLiveRunForCurrentScope(params.scope.scopeKey)) {
147
151
  throw new Error("Cursor cloud runtime cannot start while a local Cursor live run is pending; finish or abort the local run, then retry.");
148
152
  }
149
153
 
150
154
  const { Agent } = await loadCursorSdk();
151
155
  restoreCursorSdkOutputFilter = installCursorSdkOutputFilter();
156
+ const promptContext = buildCursorCloudPromptContext(context, resolvedConfig.cloud.contextHandoff.value, params.request.nativeSourceRoles);
157
+ const nativeSourceRoles = params.request.nativeSourceRoles;
152
158
  const promptOptions = {
153
159
  ...getCursorPromptOptions(model),
160
+ nativeSourceRoles: nativeSourceRoles?.slice(nativeSourceRoles.length - getCursorConversationMessages(promptContext).length),
154
161
  agentMode,
155
162
  includePiBridgeGuidance: false,
156
163
  includePiAskQuestionGuidance: false,
157
164
  };
158
- const prompt = buildCursorPrompt(
159
- buildCursorCloudPromptContext(context, resolvedConfig.cloud.contextHandoff.value),
160
- promptOptions,
161
- );
165
+ const prompt = buildCursorPrompt(promptContext, promptOptions);
162
166
  const promptInputTokens = estimateCursorPromptTokens(prompt, promptOptions);
163
167
  const agent = await suppressCursorSdkOutput(() =>
164
168
  Agent.create(buildCursorCloudAgentOptions({
@@ -166,11 +170,12 @@ async function prepareCursorCloudProviderTurn(
166
170
  modelSelection: selection,
167
171
  agentMode,
168
172
  resolvedConfig,
169
- name: getCursorSessionName(),
173
+ name: params.scope.sessionName,
174
+ agents,
170
175
  })),
171
176
  );
172
177
  cloudAgentForCleanup = agent;
173
- if (!recordCursorCloudLifecycleSafely({ agentId: agent.agentId }, resolvedApiKey)) {
178
+ if (!params.recordCloudLifecycle({ agentId: agent.agentId }, resolvedApiKey)) {
174
179
  throw createCursorCloudLifecyclePersistenceError(agent.agentId, "intent", undefined, resolvedApiKey);
175
180
  }
176
181
  sdkEventDebug?.recordProviderMeta({ runtime: "cloud", cloudAgentId: agent.agentId, phase: "agent_created" });
@@ -204,12 +209,15 @@ async function prepareCursorCloudProviderTurn(
204
209
  promptOptions,
205
210
  agentMode,
206
211
  localForce: false,
212
+ ...(customSubagentNames ? { customSubagentNames } : {}),
207
213
  });
208
214
 
209
215
  completed = true;
210
216
  cloudAgentForCleanup = undefined;
211
217
  return {
212
218
  runtimeTarget: "cloud",
219
+ execution: "conversation",
220
+ recordCloudLifecycle: params.recordCloudLifecycle,
213
221
  agent,
214
222
  cwd,
215
223
  payload: {
@@ -244,7 +252,7 @@ async function prepareCursorCloudProviderTurn(
244
252
  async function prepareCursorLocalProviderTurn(
245
253
  prepareParams: PrepareCursorProviderTurnContext,
246
254
  ): Promise<LocalCursorProviderTurnPrepareResult> {
247
- const { params, cwd, resolvedApiKey, sdkEventDebug, throwIfAborted, resolvedConfig, agentMode, selection, fastEnabled } = prepareParams;
255
+ const { params, cwd, resolvedApiKey, sdkEventDebug, throwIfAborted, resolvedConfig, agentMode, selection, fastEnabled, agents, customSubagentNames } = prepareParams;
248
256
  const { model, context, options } = params;
249
257
 
250
258
  let restoreCursorSdkOutputFilter: (() => void) | undefined;
@@ -272,13 +280,17 @@ async function prepareCursorLocalProviderTurn(
272
280
  let liveRunForBridgeQueue: CursorLiveRun | undefined;
273
281
 
274
282
  const sessionAgentAcquireParams = {
283
+ scope: params.scope,
284
+ bridge: params.bridge,
275
285
  apiKey: resolvedApiKey,
276
286
  agentMode,
277
287
  cwd,
278
288
  modelSelection: selection,
279
289
  settingSources,
280
290
  localSafety,
291
+ agents,
281
292
  localResume: resolvedConfig.local.resume.value,
293
+ storeRoot: resolvedConfig.local.storeRoot.value,
282
294
  useHttp1ForAgent,
283
295
  debugRecorder: sdkEventDebug,
284
296
  onBridgeToolRequest: (request: CursorPiBridgeToolRequest) => {
@@ -300,9 +312,10 @@ async function prepareCursorLocalProviderTurn(
300
312
  const buildPromptOptions = (plan: ReturnType<typeof planCursorSessionSend>) => {
301
313
  const promptOptions = {
302
314
  ...getCursorPromptOptions(model),
315
+ nativeSourceRoles: params.request.nativeSourceRoles,
303
316
  agentMode,
304
317
  includePiBridgeGuidance,
305
- includePiAskQuestionGuidance: bridgeToolNames.has("pi__cursor_ask_question"),
318
+ includePiAskQuestionGuidance: false,
306
319
  };
307
320
  if (plan.mode !== "bootstrap" || !resolveCursorToolManifestEnabled()) {
308
321
  return promptOptions;
@@ -316,7 +329,7 @@ async function prepareCursorLocalProviderTurn(
316
329
  }),
317
330
  };
318
331
  };
319
- let sendPlan = planCursorSessionSend(sessionAgentLease.sendState, context);
332
+ let sendPlan = planCursorSessionSend(sessionAgentLease.sendState, context, params.request.nativeSourceRoles);
320
333
  if (sessionAgentLease.created && sessionAgentLease.resumed && sendPlan.mode === "incremental") {
321
334
  sendPlan = { mode: "bootstrap", resetAgent: false, reason: "process_resume" };
322
335
  }
@@ -328,7 +341,7 @@ async function prepareCursorLocalProviderTurn(
328
341
  sessionAgentScopeKey = sessionAgentLease.scopeKey;
329
342
  bridgeToolNames = new Set(sessionAgentLease.bridgeRun?.snapshot.tools.map((tool) => tool.mcpToolName) ?? []);
330
343
  includePiBridgeGuidance = bridgeToolNames.size > 0;
331
- sendPlan = planCursorSessionSend(sessionAgentLease.sendState, context);
344
+ sendPlan = planCursorSessionSend(sessionAgentLease.sendState, context, params.request.nativeSourceRoles);
332
345
  promptOptions = buildPromptOptions(sendPlan);
333
346
  prompt = buildCursorSessionSendPrompt(context, promptOptions, sendPlan);
334
347
  }
@@ -341,7 +354,7 @@ async function prepareCursorLocalProviderTurn(
341
354
  };
342
355
  const sessionBridgeRun = bridgeRun;
343
356
  const promptInputTokens = estimateCursorPromptTokens(prompt, promptOptions);
344
- const useNativeToolReplay = isCursorNativeToolDisplayRuntimeEnabled();
357
+ const useNativeToolReplay = isCursorNativeToolDisplayRuntimeEnabled(params.nativeDisplay);
345
358
  const activeToolNames = getActiveContextToolNames(context);
346
359
  sdkEventDebug?.recordProviderMeta({
347
360
  model: {
@@ -364,6 +377,7 @@ async function prepareCursorLocalProviderTurn(
364
377
  activeToolNames: activeToolNames ? [...activeToolNames] : [],
365
378
  sessionAgentScopeKey,
366
379
  bridgeRunId: bridgeRun?.id,
380
+ ...(customSubagentNames ? { customSubagentNames } : {}),
367
381
  });
368
382
  const nativeReplayId = createCursorNativeReplayId();
369
383
  const textDeltas: string[] = [];
@@ -378,6 +392,7 @@ async function prepareCursorLocalProviderTurn(
378
392
  promptInputTokens,
379
393
  textDeltas,
380
394
  debugRecorder: sdkEventDebug,
395
+ nativeDisplay: params.nativeDisplay,
381
396
  })
382
397
  : undefined;
383
398
  if (liveRun) {
@@ -394,6 +409,7 @@ async function prepareCursorLocalProviderTurn(
394
409
  liveRun,
395
410
  useNativeToolReplay,
396
411
  activeToolNames,
412
+ registeredToolNames: params.nativeDisplay ? new Set(params.nativeDisplay.registeredNativeToolSources.keys()) : undefined,
397
413
  nativeReplayId,
398
414
  textDeltas,
399
415
  debugRecorder: sdkEventDebug,
@@ -402,6 +418,9 @@ async function prepareCursorLocalProviderTurn(
402
418
  completed = true;
403
419
  return {
404
420
  runtimeTarget: "local",
421
+ execution: "conversation",
422
+ store: sessionAgentLease.store,
423
+ storeIdentity: sessionAgentLease.storeIdentity,
405
424
  agent,
406
425
  cwd,
407
426
  payload: sendPayload,
@@ -449,10 +468,15 @@ export async function prepareCursorProviderTurn(
449
468
  const { params, resolvedConfig } = prepareParams;
450
469
  const { model, options } = params;
451
470
 
452
- const agentMode = getCursorProviderAgentModeOrThrow();
453
- const fastEnabled = resolvedConfig.runtime.value === "cloud" ? undefined : getEffectiveFastForModelId(model.id);
471
+ const fastEnabled = resolvedConfig.runtime.value === "cloud" ? undefined : getEffectiveFastForModelId(model.id, params.scope.scopeKey);
454
472
  const selection = buildCursorModelSelection(model.id, options?.reasoning ?? "off", fastEnabled);
455
- const context: PrepareCursorProviderTurnContext = { ...prepareParams, agentMode, selection, fastEnabled };
473
+ if (resolvedConfig.runtime.value === "local" && params.request.purpose !== "normal") {
474
+ return prepareCursorSummaryProviderTurn(prepareParams, selection);
475
+ }
476
+ const agentMode = getCursorProviderAgentModeOrThrow(params.scope.scopeKey);
477
+ const agents = buildCursorCustomSubagentDefinitions(resolvedConfig.subagents.value);
478
+ const customSubagentNames = agents ? Object.keys(agents) : undefined;
479
+ const context: PrepareCursorProviderTurnContext = { ...prepareParams, agentMode, selection, fastEnabled, agents, customSubagentNames };
456
480
 
457
481
  return resolvedConfig.runtime.value === "cloud"
458
482
  ? prepareCursorCloudProviderTurn(context)