pi-cursor-sdk 0.5.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 (723) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/README.md +110 -30
  3. package/dist/context.js +53 -34
  4. package/dist/cursor-api-key.js +34 -19
  5. package/dist/cursor-cloud-options.js +1 -0
  6. package/dist/cursor-config.js +59 -0
  7. package/dist/cursor-custom-store-path.js +177 -0
  8. package/dist/cursor-custom-subagent-definitions.js +14 -0
  9. package/dist/cursor-fallback-models.generated.js +1 -1
  10. package/dist/cursor-fallback-warning.js +8 -2
  11. package/dist/cursor-live-run-coordinator.js +22 -2
  12. package/dist/cursor-mcp-timeout-override.js +3 -1
  13. package/dist/cursor-pi-tool-bridge-run.js +21 -0
  14. package/dist/cursor-pi-tool-bridge-server.js +1 -1
  15. package/dist/cursor-provider-binding.js +70 -10
  16. package/dist/cursor-provider-errors.js +33 -26
  17. package/dist/cursor-provider-live-run-drain.js +10 -4
  18. package/dist/cursor-provider-run-finalizer.js +2 -1
  19. package/dist/cursor-provider-turn-prepare.js +25 -9
  20. package/dist/cursor-provider-turn-summary.js +1 -1
  21. package/dist/cursor-provider-turn-tool-ledger.js +13 -7
  22. package/dist/cursor-provider.js +2 -1
  23. package/dist/cursor-question-tool.js +5 -5
  24. package/dist/cursor-request-provenance.js +13 -2
  25. package/dist/cursor-sdk-output-filter.js +1 -1
  26. package/dist/cursor-sdk-process-error-guard.js +1 -3
  27. package/dist/cursor-sdk-runtime.js +13 -14
  28. package/dist/cursor-sdk-vendor-env.js +20 -0
  29. package/dist/cursor-session-agent-cleanup.js +29 -26
  30. package/dist/cursor-session-agent.js +38 -16
  31. package/dist/cursor-session-send-policy.js +2 -2
  32. package/dist/cursor-session-store.js +235 -45
  33. package/dist/cursor-state.js +6 -3
  34. package/dist/cursor-tool-manifest.js +1 -1
  35. package/dist/index.js +21 -19
  36. package/dist/model-discovery.js +51 -18
  37. package/dist/model-list-cache.js +12 -1
  38. package/docs/cursor-live-smoke-checklist.md +2 -2
  39. package/docs/cursor-model-ux-spec.md +70 -26
  40. package/docs/cursor-native-tool-replay.md +13 -5
  41. package/docs/cursor-native-tool-visual-audit.md +1 -1
  42. package/docs/cursor-testing-lessons.md +43 -5
  43. package/docs/cursor-tool-surfaces.md +3 -3
  44. package/node_modules/@hono/node-server/README.md +21 -10
  45. package/node_modules/@hono/node-server/dist/early-hints.cjs +1 -1
  46. package/node_modules/@hono/node-server/dist/early-hints.mjs +1 -1
  47. package/node_modules/@hono/node-server/dist/index.cjs +41 -19
  48. package/node_modules/@hono/node-server/dist/index.mjs +42 -20
  49. package/node_modules/@hono/node-server/dist/serve-static.cjs +1 -0
  50. package/node_modules/@hono/node-server/dist/serve-static.d.cts +2 -1
  51. package/node_modules/@hono/node-server/dist/serve-static.d.mts +2 -1
  52. package/node_modules/@hono/node-server/dist/serve-static.mjs +1 -0
  53. package/node_modules/@hono/node-server/package.json +3 -2
  54. package/node_modules/@modelcontextprotocol/core/dist/{auth--n_Yzytt.d.cts → auth-Anm-lwWi.d.mts} +9 -8
  55. package/node_modules/@modelcontextprotocol/core/dist/{auth-YUQV3RRv.d.mts.map → auth-Anm-lwWi.d.mts.map} +1 -1
  56. package/node_modules/@modelcontextprotocol/core/dist/{auth-CGP0BDVq.mjs → auth-BNDyLTqp.mjs} +5 -3
  57. package/node_modules/@modelcontextprotocol/core/dist/{auth-CGP0BDVq.mjs.map → auth-BNDyLTqp.mjs.map} +1 -1
  58. package/node_modules/@modelcontextprotocol/core/dist/{auth-4-zilcqg.cjs → auth-D1CeV_Jr.cjs} +5 -3
  59. package/node_modules/@modelcontextprotocol/core/dist/{auth-4-zilcqg.cjs.map → auth-D1CeV_Jr.cjs.map} +1 -1
  60. package/node_modules/@modelcontextprotocol/core/dist/{auth-YUQV3RRv.d.mts → auth-V9XJSCfa.d.cts} +9 -8
  61. package/node_modules/@modelcontextprotocol/core/dist/{auth--n_Yzytt.d.cts.map → auth-V9XJSCfa.d.cts.map} +1 -1
  62. package/node_modules/@modelcontextprotocol/core/dist/index.cjs +1 -1
  63. package/node_modules/@modelcontextprotocol/core/dist/index.d.cts +1 -1
  64. package/node_modules/@modelcontextprotocol/core/dist/index.d.mts +1 -1
  65. package/node_modules/@modelcontextprotocol/core/dist/index.mjs +1 -1
  66. package/node_modules/@modelcontextprotocol/core/dist/internal.cjs +1 -1
  67. package/node_modules/@modelcontextprotocol/core/dist/internal.d.cts +1 -1
  68. package/node_modules/@modelcontextprotocol/core/dist/internal.d.mts +1 -1
  69. package/node_modules/@modelcontextprotocol/core/dist/internal.mjs +1 -1
  70. package/node_modules/@modelcontextprotocol/core/package.json +2 -2
  71. package/node_modules/@modelcontextprotocol/hono/README.md +7 -5
  72. package/node_modules/@modelcontextprotocol/hono/dist/index.cjs.map +1 -1
  73. package/node_modules/@modelcontextprotocol/hono/dist/index.d.cts +5 -0
  74. package/node_modules/@modelcontextprotocol/hono/dist/index.d.cts.map +1 -1
  75. package/node_modules/@modelcontextprotocol/hono/dist/index.d.mts +5 -0
  76. package/node_modules/@modelcontextprotocol/hono/dist/index.d.mts.map +1 -1
  77. package/node_modules/@modelcontextprotocol/hono/dist/index.mjs.map +1 -1
  78. package/node_modules/@modelcontextprotocol/hono/package.json +4 -4
  79. package/node_modules/@modelcontextprotocol/server/README.md +1 -7
  80. package/node_modules/@modelcontextprotocol/server/dist/{createMcpHandler-Bt6U_Fqb.d.mts → createMcpHandler-D4NN8WsG.d.mts} +35 -13
  81. package/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-D4NN8WsG.d.mts.map +1 -0
  82. package/node_modules/@modelcontextprotocol/server/dist/{createMcpHandler-BLVe3qmU.d.cts → createMcpHandler-DZmmlN8e.d.cts} +35 -13
  83. package/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-DZmmlN8e.d.cts.map +1 -0
  84. package/node_modules/@modelcontextprotocol/server/dist/index.cjs +32 -5
  85. package/node_modules/@modelcontextprotocol/server/dist/index.cjs.map +1 -1
  86. package/node_modules/@modelcontextprotocol/server/dist/index.d.cts +41 -5
  87. package/node_modules/@modelcontextprotocol/server/dist/index.d.cts.map +1 -1
  88. package/node_modules/@modelcontextprotocol/server/dist/index.d.mts +41 -5
  89. package/node_modules/@modelcontextprotocol/server/dist/index.d.mts.map +1 -1
  90. package/node_modules/@modelcontextprotocol/server/dist/index.mjs +32 -5
  91. package/node_modules/@modelcontextprotocol/server/dist/index.mjs.map +1 -1
  92. package/node_modules/@modelcontextprotocol/server/dist/{mcp-DUcCQSTW.cjs → mcp-BumlNux0.cjs} +73 -23
  93. package/node_modules/@modelcontextprotocol/server/dist/mcp-BumlNux0.cjs.map +1 -0
  94. package/node_modules/@modelcontextprotocol/server/dist/{mcp-Dw2OlZ1f.mjs → mcp-DIH4cS6P.mjs} +73 -23
  95. package/node_modules/@modelcontextprotocol/server/dist/mcp-DIH4cS6P.mjs.map +1 -0
  96. package/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.cjs +1 -1
  97. package/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.mjs +1 -1
  98. package/node_modules/@modelcontextprotocol/server/dist/{src-CgFsfg3E.cjs → src-BhnGYybN.cjs} +29 -11
  99. package/node_modules/@modelcontextprotocol/server/dist/src-BhnGYybN.cjs.map +1 -0
  100. package/node_modules/@modelcontextprotocol/server/dist/{src-D-y6h4N7.mjs → src-Cqbh3MYc.mjs} +29 -11
  101. package/node_modules/@modelcontextprotocol/server/dist/src-Cqbh3MYc.mjs.map +1 -0
  102. package/node_modules/@modelcontextprotocol/server/dist/stdio.cjs +2 -2
  103. package/node_modules/@modelcontextprotocol/server/dist/stdio.d.cts +1 -1
  104. package/node_modules/@modelcontextprotocol/server/dist/stdio.d.mts +1 -1
  105. package/node_modules/@modelcontextprotocol/server/dist/stdio.mjs +2 -2
  106. package/node_modules/@modelcontextprotocol/server/package.json +4 -4
  107. package/node_modules/hono/dist/_virtual/_rolldown/runtime.js +13 -0
  108. package/node_modules/hono/dist/adapter/aws-lambda/conninfo.js +42 -23
  109. package/node_modules/hono/dist/adapter/aws-lambda/handler.js +318 -344
  110. package/node_modules/hono/dist/adapter/aws-lambda/index.js +2 -8
  111. package/node_modules/hono/dist/adapter/aws-lambda/types.js +1 -0
  112. package/node_modules/hono/dist/adapter/bun/conninfo.js +20 -25
  113. package/node_modules/hono/dist/adapter/bun/index.js +3 -13
  114. package/node_modules/hono/dist/adapter/bun/serve-static.js +27 -27
  115. package/node_modules/hono/dist/adapter/bun/server.js +11 -5
  116. package/node_modules/hono/dist/adapter/bun/ssg.js +25 -15
  117. package/node_modules/hono/dist/adapter/bun/websocket.js +61 -68
  118. package/node_modules/hono/dist/adapter/cloudflare-pages/conninfo.js +24 -9
  119. package/node_modules/hono/dist/adapter/cloudflare-pages/handler.js +59 -62
  120. package/node_modules/hono/dist/adapter/cloudflare-pages/index.js +2 -8
  121. package/node_modules/hono/dist/adapter/cloudflare-workers/conninfo.js +7 -9
  122. package/node_modules/hono/dist/adapter/cloudflare-workers/index.js +3 -8
  123. package/node_modules/hono/dist/adapter/cloudflare-workers/serve-static-module.js +5 -6
  124. package/node_modules/hono/dist/adapter/cloudflare-workers/serve-static.js +26 -20
  125. package/node_modules/hono/dist/adapter/cloudflare-workers/utils.js +21 -34
  126. package/node_modules/hono/dist/adapter/cloudflare-workers/websocket.js +31 -39
  127. package/node_modules/hono/dist/adapter/deno/conninfo.js +16 -13
  128. package/node_modules/hono/dist/adapter/deno/deno.d.js +1 -0
  129. package/node_modules/hono/dist/adapter/deno/index.js +3 -10
  130. package/node_modules/hono/dist/adapter/deno/serve-static.js +33 -38
  131. package/node_modules/hono/dist/adapter/deno/ssg.js +27 -16
  132. package/node_modules/hono/dist/adapter/deno/websocket.js +30 -30
  133. package/node_modules/hono/dist/adapter/lambda-edge/conninfo.js +7 -9
  134. package/node_modules/hono/dist/adapter/lambda-edge/handler.js +102 -101
  135. package/node_modules/hono/dist/adapter/lambda-edge/index.js +2 -6
  136. package/node_modules/hono/dist/adapter/netlify/conninfo.js +24 -9
  137. package/node_modules/hono/dist/adapter/netlify/handler.js +10 -8
  138. package/node_modules/hono/dist/adapter/netlify/index.js +3 -2
  139. package/node_modules/hono/dist/adapter/netlify/mod.js +2 -6
  140. package/node_modules/hono/dist/adapter/service-worker/handler.js +15 -19
  141. package/node_modules/hono/dist/adapter/service-worker/index.js +23 -7
  142. package/node_modules/hono/dist/adapter/service-worker/types.js +1 -0
  143. package/node_modules/hono/dist/adapter/vercel/conninfo.js +7 -10
  144. package/node_modules/hono/dist/adapter/vercel/handler.js +8 -6
  145. package/node_modules/hono/dist/adapter/vercel/index.js +2 -6
  146. package/node_modules/hono/dist/cjs/_virtual/_rolldown/runtime.js +33 -0
  147. package/node_modules/hono/dist/cjs/adapter/aws-lambda/conninfo.js +42 -44
  148. package/node_modules/hono/dist/cjs/adapter/aws-lambda/handler.js +326 -373
  149. package/node_modules/hono/dist/cjs/adapter/aws-lambda/index.js +7 -34
  150. package/node_modules/hono/dist/cjs/adapter/aws-lambda/types.js +0 -15
  151. package/node_modules/hono/dist/cjs/adapter/bun/conninfo.js +21 -47
  152. package/node_modules/hono/dist/cjs/adapter/bun/index.js +14 -45
  153. package/node_modules/hono/dist/cjs/adapter/bun/serve-static.js +29 -50
  154. package/node_modules/hono/dist/cjs/adapter/bun/server.js +11 -26
  155. package/node_modules/hono/dist/cjs/adapter/bun/ssg.js +24 -35
  156. package/node_modules/hono/dist/cjs/adapter/bun/websocket.js +63 -91
  157. package/node_modules/hono/dist/cjs/adapter/cloudflare-pages/conninfo.js +25 -31
  158. package/node_modules/hono/dist/cjs/adapter/cloudflare-pages/handler.js +61 -85
  159. package/node_modules/hono/dist/cjs/adapter/cloudflare-pages/index.js +7 -34
  160. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/conninfo.js +8 -31
  161. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/index.js +7 -33
  162. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/serve-static-module.js +7 -29
  163. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/serve-static.js +27 -42
  164. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/utils.js +21 -55
  165. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/websocket.js +33 -62
  166. package/node_modules/hono/dist/cjs/adapter/deno/conninfo.js +16 -34
  167. package/node_modules/hono/dist/cjs/adapter/deno/index.js +10 -38
  168. package/node_modules/hono/dist/cjs/adapter/deno/serve-static.js +33 -59
  169. package/node_modules/hono/dist/cjs/adapter/deno/ssg.js +27 -37
  170. package/node_modules/hono/dist/cjs/adapter/deno/websocket.js +32 -53
  171. package/node_modules/hono/dist/cjs/adapter/lambda-edge/conninfo.js +8 -31
  172. package/node_modules/hono/dist/cjs/adapter/lambda-edge/handler.js +102 -130
  173. package/node_modules/hono/dist/cjs/adapter/lambda-edge/index.js +5 -30
  174. package/node_modules/hono/dist/cjs/adapter/netlify/conninfo.js +25 -31
  175. package/node_modules/hono/dist/cjs/adapter/netlify/handler.js +10 -29
  176. package/node_modules/hono/dist/cjs/adapter/netlify/index.js +5 -21
  177. package/node_modules/hono/dist/cjs/adapter/netlify/mod.js +5 -30
  178. package/node_modules/hono/dist/cjs/adapter/service-worker/handler.js +16 -41
  179. package/node_modules/hono/dist/cjs/adapter/service-worker/index.js +25 -30
  180. package/node_modules/hono/dist/cjs/adapter/service-worker/types.js +0 -15
  181. package/node_modules/hono/dist/cjs/adapter/vercel/conninfo.js +8 -32
  182. package/node_modules/hono/dist/cjs/adapter/vercel/handler.js +8 -27
  183. package/node_modules/hono/dist/cjs/adapter/vercel/index.js +5 -30
  184. package/node_modules/hono/dist/cjs/client/client.js +139 -212
  185. package/node_modules/hono/dist/cjs/client/fetch-result-please.js +62 -80
  186. package/node_modules/hono/dist/cjs/client/index.js +7 -32
  187. package/node_modules/hono/dist/cjs/client/types.js +0 -15
  188. package/node_modules/hono/dist/cjs/client/utils.js +54 -92
  189. package/node_modules/hono/dist/cjs/compose.js +49 -66
  190. package/node_modules/hono/dist/cjs/context.js +379 -450
  191. package/node_modules/hono/dist/cjs/helper/accepts/accepts.js +47 -72
  192. package/node_modules/hono/dist/cjs/helper/accepts/index.js +3 -27
  193. package/node_modules/hono/dist/cjs/helper/adapter/index.js +33 -73
  194. package/node_modules/hono/dist/cjs/helper/conninfo/index.js +0 -15
  195. package/node_modules/hono/dist/cjs/helper/conninfo/types.js +0 -15
  196. package/node_modules/hono/dist/cjs/helper/cookie/index.js +75 -116
  197. package/node_modules/hono/dist/cjs/helper/css/common.js +165 -244
  198. package/node_modules/hono/dist/cjs/helper/css/index.js +136 -151
  199. package/node_modules/hono/dist/cjs/helper/dev/index.js +45 -71
  200. package/node_modules/hono/dist/cjs/helper/factory/index.js +30 -51
  201. package/node_modules/hono/dist/cjs/helper/html/index.js +32 -62
  202. package/node_modules/hono/dist/cjs/helper/proxy/index.js +113 -106
  203. package/node_modules/hono/dist/cjs/helper/route/index.js +123 -66
  204. package/node_modules/hono/dist/cjs/helper/ssg/index.js +19 -43
  205. package/node_modules/hono/dist/cjs/helper/ssg/middleware.js +56 -64
  206. package/node_modules/hono/dist/cjs/helper/ssg/plugins.js +55 -57
  207. package/node_modules/hono/dist/cjs/helper/ssg/ssg.js +196 -296
  208. package/node_modules/hono/dist/cjs/helper/ssg/utils.js +47 -90
  209. package/node_modules/hono/dist/cjs/helper/streaming/index.js +8 -35
  210. package/node_modules/hono/dist/cjs/helper/streaming/sse.js +53 -85
  211. package/node_modules/hono/dist/cjs/helper/streaming/stream.js +23 -53
  212. package/node_modules/hono/dist/cjs/helper/streaming/text.js +10 -32
  213. package/node_modules/hono/dist/cjs/helper/streaming/utils.js +13 -32
  214. package/node_modules/hono/dist/cjs/helper/testing/index.js +16 -31
  215. package/node_modules/hono/dist/cjs/helper/websocket/index.js +51 -76
  216. package/node_modules/hono/dist/cjs/hono-base.js +347 -403
  217. package/node_modules/hono/dist/cjs/hono.js +28 -42
  218. package/node_modules/hono/dist/cjs/http-exception.js +55 -56
  219. package/node_modules/hono/dist/cjs/index.js +22 -30
  220. package/node_modules/hono/dist/cjs/jsx/base.js +237 -366
  221. package/node_modules/hono/dist/cjs/jsx/children.js +16 -41
  222. package/node_modules/hono/dist/cjs/jsx/components.js +119 -192
  223. package/node_modules/hono/dist/cjs/jsx/constants.js +15 -42
  224. package/node_modules/hono/dist/cjs/jsx/context.js +144 -162
  225. package/node_modules/hono/dist/cjs/jsx/dom/client.js +49 -69
  226. package/node_modules/hono/dist/cjs/jsx/dom/components.js +23 -52
  227. package/node_modules/hono/dist/cjs/jsx/dom/context.js +39 -67
  228. package/node_modules/hono/dist/cjs/jsx/dom/css.js +143 -158
  229. package/node_modules/hono/dist/cjs/jsx/dom/hooks/index.js +55 -64
  230. package/node_modules/hono/dist/cjs/jsx/dom/index.js +114 -173
  231. package/node_modules/hono/dist/cjs/jsx/dom/intrinsic-element/components.js +282 -375
  232. package/node_modules/hono/dist/cjs/jsx/dom/jsx-dev-runtime.js +14 -49
  233. package/node_modules/hono/dist/cjs/jsx/dom/jsx-runtime.js +5 -32
  234. package/node_modules/hono/dist/cjs/jsx/dom/render.js +469 -623
  235. package/node_modules/hono/dist/cjs/jsx/dom/server.js +37 -64
  236. package/node_modules/hono/dist/cjs/jsx/dom/utils.js +7 -30
  237. package/node_modules/hono/dist/cjs/jsx/hooks/index.js +225 -318
  238. package/node_modules/hono/dist/cjs/jsx/index.js +86 -135
  239. package/node_modules/hono/dist/cjs/jsx/intrinsic-element/common.js +20 -43
  240. package/node_modules/hono/dist/cjs/jsx/intrinsic-element/components.js +117 -168
  241. package/node_modules/hono/dist/cjs/jsx/intrinsic-elements.js +0 -15
  242. package/node_modules/hono/dist/cjs/jsx/jsx-dev-runtime.js +14 -39
  243. package/node_modules/hono/dist/cjs/jsx/jsx-runtime.js +34 -68
  244. package/node_modules/hono/dist/cjs/jsx/streaming.js +123 -166
  245. package/node_modules/hono/dist/cjs/jsx/types.js +0 -15
  246. package/node_modules/hono/dist/cjs/jsx/utils.js +91 -175
  247. package/node_modules/hono/dist/cjs/middleware/basic-auth/index.js +98 -86
  248. package/node_modules/hono/dist/cjs/middleware/bearer-auth/index.js +92 -109
  249. package/node_modules/hono/dist/cjs/middleware/body-limit/index.js +66 -72
  250. package/node_modules/hono/dist/cjs/middleware/cache/index.js +153 -199
  251. package/node_modules/hono/dist/cjs/middleware/combine/index.js +135 -95
  252. package/node_modules/hono/dist/cjs/middleware/compress/index.js +73 -88
  253. package/node_modules/hono/dist/cjs/middleware/context-storage/index.js +49 -41
  254. package/node_modules/hono/dist/cjs/middleware/cors/index.js +107 -107
  255. package/node_modules/hono/dist/cjs/middleware/csrf/index.js +101 -72
  256. package/node_modules/hono/dist/cjs/middleware/etag/digest.js +58 -97
  257. package/node_modules/hono/dist/cjs/middleware/etag/index.js +71 -91
  258. package/node_modules/hono/dist/cjs/middleware/ip-restriction/index.js +161 -169
  259. package/node_modules/hono/dist/cjs/middleware/jsx-renderer/index.js +99 -77
  260. package/node_modules/hono/dist/cjs/middleware/jwk/index.js +3 -27
  261. package/node_modules/hono/dist/cjs/middleware/jwk/jwk.js +118 -135
  262. package/node_modules/hono/dist/cjs/middleware/jwt/index.js +9 -38
  263. package/node_modules/hono/dist/cjs/middleware/jwt/jwt.js +120 -141
  264. package/node_modules/hono/dist/cjs/middleware/language/index.js +7 -35
  265. package/node_modules/hono/dist/cjs/middleware/language/language.js +184 -182
  266. package/node_modules/hono/dist/cjs/middleware/logger/index.js +41 -62
  267. package/node_modules/hono/dist/cjs/middleware/method-not-allowed/index.js +82 -88
  268. package/node_modules/hono/dist/cjs/middleware/method-override/index.js +101 -102
  269. package/node_modules/hono/dist/cjs/middleware/mount/index.js +71 -0
  270. package/node_modules/hono/dist/cjs/middleware/powered-by/index.js +23 -30
  271. package/node_modules/hono/dist/cjs/middleware/pretty-json/index.js +38 -42
  272. package/node_modules/hono/dist/cjs/middleware/request-id/index.js +3 -27
  273. package/node_modules/hono/dist/cjs/middleware/request-id/request-id.js +34 -42
  274. package/node_modules/hono/dist/cjs/middleware/secure-headers/index.js +4 -29
  275. package/node_modules/hono/dist/cjs/middleware/secure-headers/permissions-policy.js +0 -15
  276. package/node_modules/hono/dist/cjs/middleware/secure-headers/secure-headers.js +142 -174
  277. package/node_modules/hono/dist/cjs/middleware/serve-static/index.js +56 -93
  278. package/node_modules/hono/dist/cjs/middleware/serve-static/path.js +15 -38
  279. package/node_modules/hono/dist/cjs/middleware/timeout/index.js +40 -45
  280. package/node_modules/hono/dist/cjs/middleware/timing/index.js +7 -35
  281. package/node_modules/hono/dist/cjs/middleware/timing/timing.js +177 -118
  282. package/node_modules/hono/dist/cjs/middleware/trailing-slash/index.js +85 -58
  283. package/node_modules/hono/dist/cjs/preset/quick.js +18 -37
  284. package/node_modules/hono/dist/cjs/preset/tiny.js +15 -33
  285. package/node_modules/hono/dist/cjs/request/constants.js +5 -27
  286. package/node_modules/hono/dist/cjs/request.js +334 -346
  287. package/node_modules/hono/dist/cjs/router/linear-router/index.js +3 -27
  288. package/node_modules/hono/dist/cjs/router/linear-router/router.js +95 -143
  289. package/node_modules/hono/dist/cjs/router/pattern-router/index.js +3 -27
  290. package/node_modules/hono/dist/cjs/router/pattern-router/router.js +41 -63
  291. package/node_modules/hono/dist/cjs/router/reg-exp-router/index.js +7 -34
  292. package/node_modules/hono/dist/cjs/router/reg-exp-router/matcher.js +18 -45
  293. package/node_modules/hono/dist/cjs/router/reg-exp-router/node.js +91 -135
  294. package/node_modules/hono/dist/cjs/router/reg-exp-router/prepared-router.js +92 -161
  295. package/node_modules/hono/dist/cjs/router/reg-exp-router/router.js +98 -147
  296. package/node_modules/hono/dist/cjs/router/reg-exp-router/trie.js +73 -89
  297. package/node_modules/hono/dist/cjs/router/smart-router/index.js +3 -27
  298. package/node_modules/hono/dist/cjs/router/smart-router/router.js +49 -79
  299. package/node_modules/hono/dist/cjs/router/trie-router/index.js +3 -27
  300. package/node_modules/hono/dist/cjs/router/trie-router/node.js +134 -186
  301. package/node_modules/hono/dist/cjs/router/trie-router/router.js +15 -39
  302. package/node_modules/hono/dist/cjs/router/utils.js +5 -27
  303. package/node_modules/hono/dist/cjs/router.js +37 -37
  304. package/node_modules/hono/dist/cjs/types.js +5 -28
  305. package/node_modules/hono/dist/cjs/utils/accept.js +177 -225
  306. package/node_modules/hono/dist/cjs/utils/basic-auth.js +16 -40
  307. package/node_modules/hono/dist/cjs/utils/body.js +84 -110
  308. package/node_modules/hono/dist/cjs/utils/buffer.js +43 -91
  309. package/node_modules/hono/dist/cjs/utils/color.js +35 -44
  310. package/node_modules/hono/dist/cjs/utils/compress.js +11 -26
  311. package/node_modules/hono/dist/cjs/utils/concurrent.js +29 -59
  312. package/node_modules/hono/dist/cjs/utils/constants.js +7 -26
  313. package/node_modules/hono/dist/cjs/utils/cookie.js +107 -177
  314. package/node_modules/hono/dist/cjs/utils/crypto.js +30 -61
  315. package/node_modules/hono/dist/cjs/utils/encode.js +31 -48
  316. package/node_modules/hono/dist/cjs/utils/filepath.js +23 -54
  317. package/node_modules/hono/dist/cjs/utils/handler.js +11 -33
  318. package/node_modules/hono/dist/cjs/utils/headers.js +0 -15
  319. package/node_modules/hono/dist/cjs/utils/html.js +96 -137
  320. package/node_modules/hono/dist/cjs/utils/http-status.js +0 -15
  321. package/node_modules/hono/dist/cjs/utils/ipaddr.js +213 -286
  322. package/node_modules/hono/dist/cjs/utils/jwt/index.js +14 -27
  323. package/node_modules/hono/dist/cjs/utils/jwt/jwa.js +25 -42
  324. package/node_modules/hono/dist/cjs/utils/jwt/jws.js +119 -199
  325. package/node_modules/hono/dist/cjs/utils/jwt/jwt.js +122 -206
  326. package/node_modules/hono/dist/cjs/utils/jwt/types.js +122 -159
  327. package/node_modules/hono/dist/cjs/utils/jwt/utf8.js +9 -28
  328. package/node_modules/hono/dist/cjs/utils/mime.js +75 -101
  329. package/node_modules/hono/dist/cjs/utils/stream.js +88 -111
  330. package/node_modules/hono/dist/cjs/utils/types.js +0 -15
  331. package/node_modules/hono/dist/cjs/utils/url.js +185 -234
  332. package/node_modules/hono/dist/cjs/validator/index.js +3 -27
  333. package/node_modules/hono/dist/cjs/validator/utils.js +0 -15
  334. package/node_modules/hono/dist/cjs/validator/validator.js +60 -103
  335. package/node_modules/hono/dist/client/client.js +138 -197
  336. package/node_modules/hono/dist/client/fetch-result-please.js +59 -56
  337. package/node_modules/hono/dist/client/index.js +3 -7
  338. package/node_modules/hono/dist/client/types.js +1 -0
  339. package/node_modules/hono/dist/client/utils.js +51 -68
  340. package/node_modules/hono/dist/compose.js +49 -45
  341. package/node_modules/hono/dist/context.js +376 -426
  342. package/node_modules/hono/dist/helper/accepts/accepts.js +47 -51
  343. package/node_modules/hono/dist/helper/accepts/index.js +1 -4
  344. package/node_modules/hono/dist/helper/adapter/index.js +33 -52
  345. package/node_modules/hono/dist/helper/conninfo/index.js +1 -0
  346. package/node_modules/hono/dist/helper/conninfo/types.js +1 -0
  347. package/node_modules/hono/dist/helper/cookie/index.js +74 -94
  348. package/node_modules/hono/dist/helper/css/common.js +167 -225
  349. package/node_modules/hono/dist/helper/css/index.js +132 -137
  350. package/node_modules/hono/dist/helper/dev/index.js +44 -49
  351. package/node_modules/hono/dist/helper/factory/index.js +27 -27
  352. package/node_modules/hono/dist/helper/html/index.js +30 -39
  353. package/node_modules/hono/dist/helper/proxy/index.js +116 -88
  354. package/node_modules/hono/dist/helper/route/index.js +121 -43
  355. package/node_modules/hono/dist/helper/ssg/index.js +3 -18
  356. package/node_modules/hono/dist/helper/ssg/middleware.js +53 -40
  357. package/node_modules/hono/dist/helper/ssg/plugins.js +55 -36
  358. package/node_modules/hono/dist/helper/ssg/ssg.js +198 -283
  359. package/node_modules/hono/dist/helper/ssg/utils.js +53 -75
  360. package/node_modules/hono/dist/helper/streaming/index.js +2 -8
  361. package/node_modules/hono/dist/helper/streaming/sse.js +50 -61
  362. package/node_modules/hono/dist/helper/streaming/stream.js +22 -31
  363. package/node_modules/hono/dist/helper/streaming/text.js +9 -10
  364. package/node_modules/hono/dist/helper/streaming/utils.js +9 -12
  365. package/node_modules/hono/dist/helper/testing/index.js +16 -10
  366. package/node_modules/hono/dist/helper/websocket/index.js +49 -53
  367. package/node_modules/hono/dist/hono-base.js +344 -379
  368. package/node_modules/hono/dist/hono.js +27 -20
  369. package/node_modules/hono/dist/http-exception.js +53 -33
  370. package/node_modules/hono/dist/index.js +19 -6
  371. package/node_modules/hono/dist/jsx/base.js +231 -340
  372. package/node_modules/hono/dist/jsx/children.js +16 -20
  373. package/node_modules/hono/dist/jsx/components.js +118 -170
  374. package/node_modules/hono/dist/jsx/constants.js +9 -15
  375. package/node_modules/hono/dist/jsx/context.js +153 -150
  376. package/node_modules/hono/dist/jsx/dom/client.js +45 -48
  377. package/node_modules/hono/dist/jsx/dom/components.js +21 -29
  378. package/node_modules/hono/dist/jsx/dom/context.js +37 -44
  379. package/node_modules/hono/dist/jsx/dom/css.js +142 -147
  380. package/node_modules/hono/dist/jsx/dom/hooks/index.js +52 -40
  381. package/node_modules/hono/dist/jsx/dom/index.js +71 -134
  382. package/node_modules/hono/dist/jsx/dom/intrinsic-element/components.js +275 -359
  383. package/node_modules/hono/dist/jsx/dom/jsx-dev-runtime.js +14 -18
  384. package/node_modules/hono/dist/jsx/dom/jsx-runtime.js +2 -8
  385. package/node_modules/hono/dist/jsx/dom/render.js +492 -631
  386. package/node_modules/hono/dist/jsx/dom/server.js +32 -32
  387. package/node_modules/hono/dist/jsx/dom/utils.js +6 -8
  388. package/node_modules/hono/dist/jsx/hooks/index.js +236 -308
  389. package/node_modules/hono/dist/jsx/index.js +45 -98
  390. package/node_modules/hono/dist/jsx/intrinsic-element/common.js +20 -22
  391. package/node_modules/hono/dist/jsx/intrinsic-element/components.js +113 -154
  392. package/node_modules/hono/dist/jsx/intrinsic-elements.js +1 -0
  393. package/node_modules/hono/dist/jsx/jsx-dev-runtime.js +12 -16
  394. package/node_modules/hono/dist/jsx/jsx-runtime.js +29 -42
  395. package/node_modules/hono/dist/jsx/streaming.js +120 -142
  396. package/node_modules/hono/dist/jsx/types.js +1 -0
  397. package/node_modules/hono/dist/jsx/utils.js +105 -168
  398. package/node_modules/hono/dist/middleware/basic-auth/index.js +96 -63
  399. package/node_modules/hono/dist/middleware/bearer-auth/index.js +93 -89
  400. package/node_modules/hono/dist/middleware/body-limit/index.js +66 -51
  401. package/node_modules/hono/dist/middleware/cache/index.js +165 -190
  402. package/node_modules/hono/dist/middleware/combine/index.js +134 -73
  403. package/node_modules/hono/dist/middleware/compress/index.js +75 -69
  404. package/node_modules/hono/dist/middleware/context-storage/index.js +49 -19
  405. package/node_modules/hono/dist/middleware/cors/index.js +107 -86
  406. package/node_modules/hono/dist/middleware/csrf/index.js +103 -53
  407. package/node_modules/hono/dist/middleware/etag/digest.js +59 -77
  408. package/node_modules/hono/dist/middleware/etag/index.js +71 -70
  409. package/node_modules/hono/dist/middleware/ip-restriction/index.js +163 -158
  410. package/node_modules/hono/dist/middleware/jsx-renderer/index.js +97 -54
  411. package/node_modules/hono/dist/middleware/jwk/index.js +1 -4
  412. package/node_modules/hono/dist/middleware/jwk/jwk.js +116 -112
  413. package/node_modules/hono/dist/middleware/jwt/index.js +2 -10
  414. package/node_modules/hono/dist/middleware/jwt/jwt.js +114 -114
  415. package/node_modules/hono/dist/middleware/language/index.js +2 -15
  416. package/node_modules/hono/dist/middleware/language/language.js +180 -157
  417. package/node_modules/hono/dist/middleware/logger/index.js +43 -37
  418. package/node_modules/hono/dist/middleware/method-not-allowed/index.js +81 -66
  419. package/node_modules/hono/dist/middleware/method-override/index.js +101 -81
  420. package/node_modules/hono/dist/middleware/mount/index.js +70 -0
  421. package/node_modules/hono/dist/middleware/powered-by/index.js +23 -9
  422. package/node_modules/hono/dist/middleware/pretty-json/index.js +39 -22
  423. package/node_modules/hono/dist/middleware/request-id/index.js +1 -4
  424. package/node_modules/hono/dist/middleware/request-id/request-id.js +33 -20
  425. package/node_modules/hono/dist/middleware/secure-headers/index.js +1 -5
  426. package/node_modules/hono/dist/middleware/secure-headers/permissions-policy.js +1 -0
  427. package/node_modules/hono/dist/middleware/secure-headers/secure-headers.js +144 -155
  428. package/node_modules/hono/dist/middleware/serve-static/index.js +56 -72
  429. package/node_modules/hono/dist/middleware/serve-static/path.js +15 -17
  430. package/node_modules/hono/dist/middleware/timeout/index.js +40 -23
  431. package/node_modules/hono/dist/middleware/timing/index.js +2 -9
  432. package/node_modules/hono/dist/middleware/timing/timing.js +177 -97
  433. package/node_modules/hono/dist/middleware/trailing-slash/index.js +85 -37
  434. package/node_modules/hono/dist/preset/quick.js +17 -15
  435. package/node_modules/hono/dist/preset/tiny.js +14 -11
  436. package/node_modules/hono/dist/request/constants.js +4 -5
  437. package/node_modules/hono/dist/request.js +328 -319
  438. package/node_modules/hono/dist/router/linear-router/index.js +1 -4
  439. package/node_modules/hono/dist/router/linear-router/router.js +93 -120
  440. package/node_modules/hono/dist/router/pattern-router/index.js +1 -4
  441. package/node_modules/hono/dist/router/pattern-router/router.js +39 -40
  442. package/node_modules/hono/dist/router/reg-exp-router/index.js +1 -7
  443. package/node_modules/hono/dist/router/reg-exp-router/matcher.js +17 -23
  444. package/node_modules/hono/dist/router/reg-exp-router/node.js +87 -110
  445. package/node_modules/hono/dist/router/reg-exp-router/prepared-router.js +89 -137
  446. package/node_modules/hono/dist/router/reg-exp-router/router.js +92 -129
  447. package/node_modules/hono/dist/router/reg-exp-router/trie.js +69 -64
  448. package/node_modules/hono/dist/router/smart-router/index.js +1 -4
  449. package/node_modules/hono/dist/router/smart-router/router.js +46 -55
  450. package/node_modules/hono/dist/router/trie-router/index.js +1 -4
  451. package/node_modules/hono/dist/router/trie-router/node.js +131 -162
  452. package/node_modules/hono/dist/router/trie-router/router.js +11 -14
  453. package/node_modules/hono/dist/router/utils.js +4 -5
  454. package/node_modules/hono/dist/router.js +35 -14
  455. package/node_modules/hono/dist/types/adapter/aws-lambda/conninfo.d.ts +4 -1
  456. package/node_modules/hono/dist/types/adapter/aws-lambda/handler.d.ts +150 -104
  457. package/node_modules/hono/dist/types/adapter/aws-lambda/index.d.ts +4 -8
  458. package/node_modules/hono/dist/types/adapter/aws-lambda/types.d.ts +152 -122
  459. package/node_modules/hono/dist/types/adapter/bun/conninfo.d.ts +4 -1
  460. package/node_modules/hono/dist/types/adapter/bun/index.d.ts +6 -10
  461. package/node_modules/hono/dist/types/adapter/bun/serve-static.d.ts +7 -2
  462. package/node_modules/hono/dist/types/adapter/bun/server.d.ts +4 -5
  463. package/node_modules/hono/dist/types/adapter/bun/ssg.d.ts +5 -1
  464. package/node_modules/hono/dist/types/adapter/bun/websocket.d.ts +31 -16
  465. package/node_modules/hono/dist/types/adapter/cloudflare-pages/conninfo.d.ts +4 -1
  466. package/node_modules/hono/dist/types/adapter/cloudflare-pages/handler.d.ts +29 -17
  467. package/node_modules/hono/dist/types/adapter/cloudflare-pages/index.d.ts +3 -7
  468. package/node_modules/hono/dist/types/adapter/cloudflare-workers/conninfo.d.ts +6 -1
  469. package/node_modules/hono/dist/types/adapter/cloudflare-workers/index.d.ts +4 -7
  470. package/node_modules/hono/dist/types/adapter/cloudflare-workers/serve-static-module.d.ts +5 -2
  471. package/node_modules/hono/dist/types/adapter/cloudflare-workers/serve-static.d.ts +10 -5
  472. package/node_modules/hono/dist/types/adapter/cloudflare-workers/utils.d.ts +10 -2
  473. package/node_modules/hono/dist/types/adapter/cloudflare-workers/websocket.d.ts +6 -1
  474. package/node_modules/hono/dist/types/adapter/deno/conninfo.d.ts +4 -1
  475. package/node_modules/hono/dist/types/adapter/deno/deno.d.ts +1 -0
  476. package/node_modules/hono/dist/types/adapter/deno/index.d.ts +5 -8
  477. package/node_modules/hono/dist/types/adapter/deno/serve-static.d.ts +7 -2
  478. package/node_modules/hono/dist/types/adapter/deno/ssg.d.ts +5 -1
  479. package/node_modules/hono/dist/types/adapter/deno/websocket.d.ts +6 -1
  480. package/node_modules/hono/dist/types/adapter/lambda-edge/conninfo.d.ts +6 -1
  481. package/node_modules/hono/dist/types/adapter/lambda-edge/handler.d.ts +83 -57
  482. package/node_modules/hono/dist/types/adapter/lambda-edge/index.d.ts +3 -7
  483. package/node_modules/hono/dist/types/adapter/netlify/conninfo.d.ts +4 -1
  484. package/node_modules/hono/dist/types/adapter/netlify/handler.d.ts +6 -1
  485. package/node_modules/hono/dist/types/adapter/netlify/index.d.ts +3 -5
  486. package/node_modules/hono/dist/types/adapter/netlify/mod.d.ts +3 -2
  487. package/node_modules/hono/dist/types/adapter/service-worker/handler.d.ts +9 -7
  488. package/node_modules/hono/dist/types/adapter/service-worker/index.d.ts +7 -9
  489. package/node_modules/hono/dist/types/adapter/service-worker/types.d.ts +12 -7
  490. package/node_modules/hono/dist/types/adapter/vercel/conninfo.d.ts +6 -1
  491. package/node_modules/hono/dist/types/adapter/vercel/handler.d.ts +6 -1
  492. package/node_modules/hono/dist/types/adapter/vercel/index.d.ts +3 -6
  493. package/node_modules/hono/dist/types/client/client.d.ts +5 -3
  494. package/node_modules/hono/dist/types/client/fetch-result-please.d.ts +21 -19
  495. package/node_modules/hono/dist/types/client/index.d.ts +5 -7
  496. package/node_modules/hono/dist/types/client/types.d.ts +134 -159
  497. package/node_modules/hono/dist/types/client/utils.d.ts +6 -4
  498. package/node_modules/hono/dist/types/compose.d.ts +4 -2
  499. package/node_modules/hono/dist/types/context.d.ts +335 -335
  500. package/node_modules/hono/dist/types/helper/accepts/accepts.d.ts +11 -9
  501. package/node_modules/hono/dist/types/helper/accepts/index.d.ts +2 -5
  502. package/node_modules/hono/dist/types/helper/adapter/index.d.ts +4 -6
  503. package/node_modules/hono/dist/types/helper/conninfo/index.d.ts +2 -5
  504. package/node_modules/hono/dist/types/helper/conninfo/types.d.ts +25 -23
  505. package/node_modules/hono/dist/types/helper/cookie/index.d.ts +10 -12
  506. package/node_modules/hono/dist/types/helper/css/common.d.ts +11 -9
  507. package/node_modules/hono/dist/types/helper/css/index.d.ts +26 -28
  508. package/node_modules/hono/dist/types/helper/dev/index.d.ts +10 -12
  509. package/node_modules/hono/dist/types/helper/factory/index.d.ts +26 -73
  510. package/node_modules/hono/dist/types/helper/html/index.d.ts +4 -7
  511. package/node_modules/hono/dist/types/helper/proxy/index.d.ts +19 -21
  512. package/node_modules/hono/dist/types/helper/route/index.d.ts +4 -2
  513. package/node_modules/hono/dist/types/helper/ssg/index.d.ts +4 -7
  514. package/node_modules/hono/dist/types/helper/ssg/middleware.d.ts +8 -6
  515. package/node_modules/hono/dist/types/helper/ssg/plugins.d.ts +3 -1
  516. package/node_modules/hono/dist/types/helper/ssg/ssg.d.ts +38 -36
  517. package/node_modules/hono/dist/types/helper/ssg/utils.d.ts +5 -3
  518. package/node_modules/hono/dist/types/helper/streaming/index.d.ts +4 -8
  519. package/node_modules/hono/dist/types/helper/streaming/sse.d.ts +10 -8
  520. package/node_modules/hono/dist/types/helper/streaming/stream.d.ts +4 -2
  521. package/node_modules/hono/dist/types/helper/streaming/text.d.ts +4 -2
  522. package/node_modules/hono/dist/types/helper/streaming/utils.d.ts +2 -0
  523. package/node_modules/hono/dist/types/helper/testing/index.d.ts +7 -9
  524. package/node_modules/hono/dist/types/helper/websocket/index.d.ts +30 -33
  525. package/node_modules/hono/dist/types/hono-base.d.ts +210 -210
  526. package/node_modules/hono/dist/types/hono.d.ts +11 -10
  527. package/node_modules/hono/dist/types/http-exception.d.ts +20 -22
  528. package/node_modules/hono/dist/types/index.d.ts +6 -37
  529. package/node_modules/hono/dist/types/jsx/base.d.ts +37 -35
  530. package/node_modules/hono/dist/types/jsx/children.d.ts +8 -6
  531. package/node_modules/hono/dist/types/jsx/components.d.ts +8 -5
  532. package/node_modules/hono/dist/types/jsx/constants.d.ts +2 -0
  533. package/node_modules/hono/dist/types/jsx/context.d.ts +9 -6
  534. package/node_modules/hono/dist/types/jsx/dom/client.d.ts +9 -10
  535. package/node_modules/hono/dist/types/jsx/dom/components.d.ts +9 -6
  536. package/node_modules/hono/dist/types/jsx/dom/context.d.ts +3 -1
  537. package/node_modules/hono/dist/types/jsx/dom/css.d.ts +27 -30
  538. package/node_modules/hono/dist/types/jsx/dom/hooks/index.d.ts +11 -12
  539. package/node_modules/hono/dist/types/jsx/dom/index.d.ts +79 -83
  540. package/node_modules/hono/dist/types/jsx/dom/intrinsic-element/components.d.ts +9 -5
  541. package/node_modules/hono/dist/types/jsx/dom/jsx-dev-runtime.d.ts +4 -6
  542. package/node_modules/hono/dist/types/jsx/dom/jsx-runtime.d.ts +3 -7
  543. package/node_modules/hono/dist/types/jsx/dom/render.d.ts +32 -50
  544. package/node_modules/hono/dist/types/jsx/dom/server.d.ts +87 -85
  545. package/node_modules/hono/dist/types/jsx/dom/utils.d.ts +2 -0
  546. package/node_modules/hono/dist/types/jsx/hooks/index.d.ts +16 -16
  547. package/node_modules/hono/dist/types/jsx/index.d.ts +71 -73
  548. package/node_modules/hono/dist/types/jsx/intrinsic-element/common.d.ts +3 -1
  549. package/node_modules/hono/dist/types/jsx/intrinsic-element/components.d.ts +7 -4
  550. package/node_modules/hono/dist/types/jsx/intrinsic-elements.d.ts +708 -708
  551. package/node_modules/hono/dist/types/jsx/jsx-dev-runtime.d.ts +4 -7
  552. package/node_modules/hono/dist/types/jsx/jsx-runtime.d.ts +7 -10
  553. package/node_modules/hono/dist/types/jsx/streaming.d.ts +9 -10
  554. package/node_modules/hono/dist/types/jsx/types.d.ts +12 -13
  555. package/node_modules/hono/dist/types/jsx/utils.d.ts +2 -0
  556. package/node_modules/hono/dist/types/middleware/basic-auth/index.d.ts +17 -19
  557. package/node_modules/hono/dist/types/middleware/bearer-auth/index.d.ts +46 -48
  558. package/node_modules/hono/dist/types/middleware/body-limit/index.d.ts +6 -8
  559. package/node_modules/hono/dist/types/middleware/cache/index.d.ts +13 -15
  560. package/node_modules/hono/dist/types/middleware/combine/index.d.ts +4 -6
  561. package/node_modules/hono/dist/types/middleware/compress/index.d.ts +9 -10
  562. package/node_modules/hono/dist/types/middleware/context-storage/index.d.ts +4 -6
  563. package/node_modules/hono/dist/types/middleware/cors/index.d.ts +10 -12
  564. package/node_modules/hono/dist/types/middleware/csrf/index.d.ts +6 -8
  565. package/node_modules/hono/dist/types/middleware/etag/digest.d.ts +2 -0
  566. package/node_modules/hono/dist/types/middleware/etag/index.d.ts +6 -8
  567. package/node_modules/hono/dist/types/middleware/ip-restriction/index.d.ts +11 -12
  568. package/node_modules/hono/dist/types/middleware/jsx-renderer/index.d.ts +11 -11
  569. package/node_modules/hono/dist/types/middleware/jwk/index.d.ts +2 -1
  570. package/node_modules/hono/dist/types/middleware/jwk/jwk.d.ts +20 -23
  571. package/node_modules/hono/dist/types/middleware/jwt/index.d.ts +7 -6
  572. package/node_modules/hono/dist/types/middleware/jwt/jwt.d.ts +28 -30
  573. package/node_modules/hono/dist/types/middleware/language/index.d.ts +6 -5
  574. package/node_modules/hono/dist/types/middleware/language/language.d.ts +42 -44
  575. package/node_modules/hono/dist/types/middleware/logger/index.d.ts +3 -5
  576. package/node_modules/hono/dist/types/middleware/method-not-allowed/index.d.ts +7 -9
  577. package/node_modules/hono/dist/types/middleware/method-override/index.d.ts +14 -16
  578. package/node_modules/hono/dist/types/middleware/mount/index.d.ts +46 -0
  579. package/node_modules/hono/dist/types/middleware/powered-by/index.d.ts +8 -10
  580. package/node_modules/hono/dist/types/middleware/pretty-json/index.d.ts +18 -20
  581. package/node_modules/hono/dist/types/middleware/request-id/index.d.ts +6 -5
  582. package/node_modules/hono/dist/types/middleware/request-id/request-id.d.ts +9 -11
  583. package/node_modules/hono/dist/types/middleware/secure-headers/index.d.ts +6 -6
  584. package/node_modules/hono/dist/types/middleware/secure-headers/permissions-policy.d.ts +2 -0
  585. package/node_modules/hono/dist/types/middleware/secure-headers/secure-headers.d.ts +55 -57
  586. package/node_modules/hono/dist/types/middleware/serve-static/index.d.ts +24 -24
  587. package/node_modules/hono/dist/types/middleware/serve-static/path.d.ts +2 -0
  588. package/node_modules/hono/dist/types/middleware/timeout/index.d.ts +5 -7
  589. package/node_modules/hono/dist/types/middleware/timing/index.d.ts +6 -5
  590. package/node_modules/hono/dist/types/middleware/timing/timing.d.ts +17 -20
  591. package/node_modules/hono/dist/types/middleware/trailing-slash/index.d.ts +35 -37
  592. package/node_modules/hono/dist/types/preset/quick.d.ts +6 -9
  593. package/node_modules/hono/dist/types/preset/tiny.d.ts +6 -9
  594. package/node_modules/hono/dist/types/request/constants.d.ts +2 -0
  595. package/node_modules/hono/dist/types/request.d.ts +288 -286
  596. package/node_modules/hono/dist/types/router/linear-router/index.d.ts +2 -5
  597. package/node_modules/hono/dist/types/router/linear-router/router.d.ts +7 -5
  598. package/node_modules/hono/dist/types/router/pattern-router/index.d.ts +2 -5
  599. package/node_modules/hono/dist/types/router/pattern-router/router.d.ts +7 -5
  600. package/node_modules/hono/dist/types/router/reg-exp-router/index.d.ts +3 -6
  601. package/node_modules/hono/dist/types/router/reg-exp-router/matcher.d.ts +3 -1
  602. package/node_modules/hono/dist/types/router/reg-exp-router/node.d.ts +6 -4
  603. package/node_modules/hono/dist/types/router/reg-exp-router/prepared-router.d.ts +11 -10
  604. package/node_modules/hono/dist/types/router/reg-exp-router/router.d.ts +10 -9
  605. package/node_modules/hono/dist/types/router/reg-exp-router/trie.d.ts +7 -5
  606. package/node_modules/hono/dist/types/router/smart-router/index.d.ts +2 -5
  607. package/node_modules/hono/dist/types/router/smart-router/router.d.ts +11 -9
  608. package/node_modules/hono/dist/types/router/trie-router/index.d.ts +2 -5
  609. package/node_modules/hono/dist/types/router/trie-router/node.d.ts +6 -4
  610. package/node_modules/hono/dist/types/router/trie-router/router.d.ts +7 -5
  611. package/node_modules/hono/dist/types/router/utils.d.ts +2 -0
  612. package/node_modules/hono/dist/types/router.d.ts +23 -22
  613. package/node_modules/hono/dist/types/types.d.ts +146 -505
  614. package/node_modules/hono/dist/types/utils/accept.d.ts +5 -3
  615. package/node_modules/hono/dist/types/utils/basic-auth.d.ts +4 -2
  616. package/node_modules/hono/dist/types/utils/body.d.ts +46 -50
  617. package/node_modules/hono/dist/types/utils/buffer.d.ts +7 -5
  618. package/node_modules/hono/dist/types/utils/color.d.ts +2 -0
  619. package/node_modules/hono/dist/types/utils/compress.d.ts +2 -0
  620. package/node_modules/hono/dist/types/utils/concurrent.d.ts +6 -4
  621. package/node_modules/hono/dist/types/utils/constants.d.ts +2 -0
  622. package/node_modules/hono/dist/types/utils/cookie.d.ts +20 -18
  623. package/node_modules/hono/dist/types/utils/crypto.d.ts +5 -7
  624. package/node_modules/hono/dist/types/utils/encode.d.ts +2 -0
  625. package/node_modules/hono/dist/types/utils/filepath.d.ts +5 -3
  626. package/node_modules/hono/dist/types/utils/handler.d.ts +2 -0
  627. package/node_modules/hono/dist/types/utils/headers.d.ts +2 -0
  628. package/node_modules/hono/dist/types/utils/html.d.ts +11 -9
  629. package/node_modules/hono/dist/types/utils/http-status.d.ts +2 -0
  630. package/node_modules/hono/dist/types/utils/ipaddr.d.ts +4 -6
  631. package/node_modules/hono/dist/types/utils/jwt/index.d.ts +18 -12
  632. package/node_modules/hono/dist/types/utils/jwt/jwa.d.ts +15 -13
  633. package/node_modules/hono/dist/types/utils/jwt/jws.d.ts +4 -7
  634. package/node_modules/hono/dist/types/utils/jwt/jwt.d.ts +26 -29
  635. package/node_modules/hono/dist/types/utils/jwt/types.d.ts +48 -45
  636. package/node_modules/hono/dist/types/utils/jwt/utf8.d.ts +2 -0
  637. package/node_modules/hono/dist/types/utils/mime.d.ts +60 -57
  638. package/node_modules/hono/dist/types/utils/stream.d.ts +27 -25
  639. package/node_modules/hono/dist/types/utils/types.d.ts +14 -26
  640. package/node_modules/hono/dist/types/utils/url.d.ts +2 -0
  641. package/node_modules/hono/dist/types/validator/index.d.ts +3 -7
  642. package/node_modules/hono/dist/types/validator/utils.d.ts +6 -8
  643. package/node_modules/hono/dist/types/validator/validator.d.ts +11 -9
  644. package/node_modules/hono/dist/types.js +4 -6
  645. package/node_modules/hono/dist/utils/accept.js +185 -212
  646. package/node_modules/hono/dist/utils/basic-auth.js +18 -21
  647. package/node_modules/hono/dist/utils/body.js +87 -92
  648. package/node_modules/hono/dist/utils/buffer.js +44 -71
  649. package/node_modules/hono/dist/utils/color.js +33 -21
  650. package/node_modules/hono/dist/utils/compress.js +11 -5
  651. package/node_modules/hono/dist/utils/concurrent.js +29 -38
  652. package/node_modules/hono/dist/utils/constants.js +7 -5
  653. package/node_modules/hono/dist/utils/cookie.js +114 -163
  654. package/node_modules/hono/dist/utils/crypto.js +30 -40
  655. package/node_modules/hono/dist/utils/encode.js +30 -26
  656. package/node_modules/hono/dist/utils/filepath.js +23 -33
  657. package/node_modules/hono/dist/utils/handler.js +10 -11
  658. package/node_modules/hono/dist/utils/headers.js +1 -0
  659. package/node_modules/hono/dist/utils/html.js +97 -117
  660. package/node_modules/hono/dist/utils/http-status.js +1 -0
  661. package/node_modules/hono/dist/utils/ipaddr.js +227 -279
  662. package/node_modules/hono/dist/utils/jwt/index.js +12 -4
  663. package/node_modules/hono/dist/utils/jwt/jwa.js +24 -20
  664. package/node_modules/hono/dist/utils/jwt/jws.js +115 -174
  665. package/node_modules/hono/dist/utils/jwt/jwt.js +120 -198
  666. package/node_modules/hono/dist/utils/jwt/types.js +79 -95
  667. package/node_modules/hono/dist/utils/jwt/utf8.js +9 -7
  668. package/node_modules/hono/dist/utils/mime.js +74 -79
  669. package/node_modules/hono/dist/utils/stream.js +86 -88
  670. package/node_modules/hono/dist/utils/types.js +1 -0
  671. package/node_modules/hono/dist/utils/url.js +187 -215
  672. package/node_modules/hono/dist/validator/index.js +1 -4
  673. package/node_modules/hono/dist/validator/utils.js +1 -0
  674. package/node_modules/hono/dist/validator/validator.js +61 -83
  675. package/node_modules/hono/package.json +35 -27
  676. package/package.json +16 -14
  677. package/scripts/lib/cursor-sdk-output-filter.d.mts +1 -0
  678. package/scripts/lib/cursor-sdk-output-filter.mjs +1 -0
  679. package/scripts/platform-smoke/artifacts.mjs +7 -1
  680. package/shared/cursor-sdk-output-filter.d.mts +3 -0
  681. package/shared/cursor-sdk-output-filter.mjs +117 -44
  682. package/src/context.ts +57 -33
  683. package/src/cursor-api-key.ts +37 -17
  684. package/src/cursor-cloud-options.ts +2 -0
  685. package/src/cursor-config.ts +76 -0
  686. package/src/cursor-custom-store-path.ts +151 -0
  687. package/src/cursor-custom-subagent-definitions.ts +21 -0
  688. package/src/cursor-fallback-models.generated.ts +1 -1
  689. package/src/cursor-fallback-warning.ts +7 -3
  690. package/src/cursor-live-run-coordinator.ts +21 -2
  691. package/src/cursor-mcp-timeout-override.ts +3 -1
  692. package/src/cursor-pi-tool-bridge-run.ts +21 -0
  693. package/src/cursor-pi-tool-bridge-server.ts +1 -2
  694. package/src/cursor-pi-tool-bridge-types.ts +3 -0
  695. package/src/cursor-provider-binding.ts +70 -11
  696. package/src/cursor-provider-errors.ts +32 -28
  697. package/src/cursor-provider-live-run-drain.ts +9 -4
  698. package/src/cursor-provider-run-finalizer.ts +2 -1
  699. package/src/cursor-provider-turn-prepare.ts +28 -13
  700. package/src/cursor-provider-turn-summary.ts +1 -1
  701. package/src/cursor-provider-turn-tool-ledger.ts +12 -7
  702. package/src/cursor-provider.ts +3 -1
  703. package/src/cursor-question-tool.ts +5 -5
  704. package/src/cursor-request-provenance.ts +18 -3
  705. package/src/cursor-sdk-output-filter.ts +2 -0
  706. package/src/cursor-sdk-process-error-guard.ts +1 -2
  707. package/src/cursor-sdk-runtime.ts +14 -15
  708. package/src/cursor-sdk-vendor-env.ts +22 -0
  709. package/src/cursor-session-agent-cleanup.ts +28 -27
  710. package/src/cursor-session-agent.ts +44 -17
  711. package/src/cursor-session-send-policy.ts +2 -2
  712. package/src/cursor-session-store.ts +259 -53
  713. package/src/cursor-state.ts +7 -2
  714. package/src/cursor-tool-manifest.ts +1 -1
  715. package/src/index.ts +19 -19
  716. package/src/model-discovery.ts +62 -23
  717. package/src/model-list-cache.ts +11 -1
  718. package/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-BLVe3qmU.d.cts.map +0 -1
  719. package/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-Bt6U_Fqb.d.mts.map +0 -1
  720. package/node_modules/@modelcontextprotocol/server/dist/mcp-DUcCQSTW.cjs.map +0 -1
  721. package/node_modules/@modelcontextprotocol/server/dist/mcp-Dw2OlZ1f.mjs.map +0 -1
  722. package/node_modules/@modelcontextprotocol/server/dist/src-CgFsfg3E.cjs.map +0 -1
  723. package/node_modules/@modelcontextprotocol/server/dist/src-D-y6h4N7.mjs.map +0 -1
@@ -1,19 +1,18 @@
1
- import { existsSync } from "node:fs";
2
- import { join } from "node:path";
3
- import { resolveCursorSdkPlatformPackageDirectory } from "./cursor-ripgrep-path.js";
1
+ // Vendor env must initialize before the static @cursor/sdk import below so
2
+ // tree-sitter natives resolve when Pi lives outside this package's node_modules.
3
+ import "./cursor-sdk-vendor-env.js";
4
+ import * as CursorSdk from "@cursor/sdk";
4
5
 
5
- export type CursorSdkModule = typeof import("@cursor/sdk");
6
+ export type CursorSdkModule = typeof CursorSdk;
6
7
 
8
+ /**
9
+ * Load the Cursor SDK module.
10
+ *
11
+ * Uses a static import so Pi's compiled-Bun extension graph includes @cursor/sdk
12
+ * (a runtime dynamic bare import is omitted from that graph; see #228).
13
+ * `loadCursorSdk` remains async for call-site compatibility and so vendor-env
14
+ * side effects (imported above) always run before callers receive the module.
15
+ */
7
16
  export async function loadCursorSdk(): Promise<CursorSdkModule> {
8
- // The SDK searches launcher ancestors, which miss Pi's separately installed extension packages.
9
- if (process.env.CURSOR_TREE_SITTER_VENDOR_DIR === undefined) {
10
- const packageDirectory = resolveCursorSdkPlatformPackageDirectory();
11
- if (packageDirectory) {
12
- const vendor = join(packageDirectory, "vendor");
13
- if (existsSync(join(vendor, "tree-sitter", "index.js")) && existsSync(join(vendor, "tree-sitter-bash", "index.js"))) {
14
- process.env.CURSOR_TREE_SITTER_VENDOR_DIR = vendor;
15
- }
16
- }
17
- }
18
- return import("@cursor/sdk");
17
+ return CursorSdk;
19
18
  }
@@ -0,0 +1,22 @@
1
+ import { existsSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { resolveCursorSdkPlatformPackageDirectory } from "./cursor-ripgrep-path.js";
4
+
5
+ /**
6
+ * Ensure CURSOR_TREE_SITTER_VENDOR_DIR is set before @cursor/sdk first loads.
7
+ * Must run as a side effect of importing this module (before a static SDK import).
8
+ */
9
+ export function ensureCursorTreeSitterVendorDir(): void {
10
+ if (process.env.CURSOR_TREE_SITTER_VENDOR_DIR !== undefined) return;
11
+ const packageDirectory = resolveCursorSdkPlatformPackageDirectory();
12
+ if (!packageDirectory) return;
13
+ const vendor = join(packageDirectory, "vendor");
14
+ if (
15
+ existsSync(join(vendor, "tree-sitter", "index.js")) &&
16
+ existsSync(join(vendor, "tree-sitter-bash", "index.js"))
17
+ ) {
18
+ process.env.CURSOR_TREE_SITTER_VENDOR_DIR = vendor;
19
+ }
20
+ }
21
+
22
+ ensureCursorTreeSitterVendorDir();
@@ -16,9 +16,9 @@ import {
16
16
  type CursorSessionAgentResumeScope,
17
17
  } from "./cursor-session-agent-resume.js";
18
18
  import {
19
- cursorSessionStoreIdentitiesEqual,
20
- getCursorSessionStoreIdentities,
19
+ withCursorSessionStoreIdentities,
21
20
  openCursorSessionStore,
21
+ resolveCursorSessionStoreIdentity,
22
22
  } from "./cursor-session-store.js";
23
23
 
24
24
  export const CURSOR_SESSION_AGENT_CLEANUP_ENTRY_TYPE = "cursor-sdk-agent-cleanup";
@@ -264,7 +264,7 @@ function appendDurableCleanupEntry(
264
264
  return fsyncExistingRegularFile(sessionFile);
265
265
  }
266
266
 
267
- export async function runCursorSessionAgentCleanupCommand(pi: LocalResumeCleanupApi, args: string, ctx: LocalResumeCleanupCommandContext): Promise<void> {
267
+ export async function runCursorSessionAgentCleanupCommand(pi: LocalResumeCleanupApi, args: string, ctx: LocalResumeCleanupCommandContext, storeRoot?: string): Promise<void> {
268
268
  const usage = "Usage: /cursor-local-resume-cleanup [--dry-run|--yes]";
269
269
  const tokens = args.trim().split(/\s+/).filter(Boolean);
270
270
  const dryRun = tokens.length === 0 || (tokens.length === 1 && tokens[0] === "--dry-run");
@@ -299,7 +299,7 @@ export async function runCursorSessionAgentCleanupCommand(pi: LocalResumeCleanup
299
299
  return;
300
300
  }
301
301
 
302
- if (!appendDurableCleanupEntry(pi, ctx, { action: "delete", phase: "intent", ...baseEntry })) {
302
+ if (!scope.sessionFile || !appendDurableCleanupEntry(pi, ctx, { action: "delete", phase: "intent", ...baseEntry })) {
303
303
  ctx.ui.notify("Cleanup intent could not be durably recorded. No agents were deleted.", "error");
304
304
  return;
305
305
  }
@@ -308,31 +308,32 @@ export async function runCursorSessionAgentCleanupCommand(pi: LocalResumeCleanup
308
308
  const failedAgentIds: CursorSessionAgentCleanupFailure[] = [];
309
309
  const openedStores = new Map<string, Awaited<ReturnType<typeof openCursorSessionStore>>>();
310
310
  try {
311
- const operations = await getSdkOperations();
312
- const identities = await getCursorSessionStoreIdentities(ctx.cwd, scope.scopeKey, scope.sessionFile !== undefined);
313
- for (const candidate of plan.candidates) {
314
- const { agentId } = candidate;
315
- try {
316
- const identity = candidate.storeIdentity ?? identities.defaultStore;
317
- if (
318
- !cursorSessionStoreIdentitiesEqual(identity, identities.defaultStore) &&
319
- !cursorSessionStoreIdentitiesEqual(identity, identities.sessionStore)
320
- ) throw new InvalidCursorSessionStoreIdentityError("Recorded Cursor local store identity is not valid for this pi session");
321
- let openedStore = openedStores.get(identity.stateRoot);
322
- if (!openedStore) {
323
- openedStore = await openCursorSessionStore(ctx.cwd, identity);
324
- openedStores.set(identity.stateRoot, openedStore);
311
+ await withCursorSessionStoreIdentities(ctx.cwd, scope.scopeKey, storeRoot, async (identities) => {
312
+ const operations = await getSdkOperations();
313
+ for (const candidate of plan.candidates) {
314
+ const { agentId } = candidate;
315
+ try {
316
+ const identity = await resolveCursorSessionStoreIdentity({
317
+ cwd: ctx.cwd, scopeKey: scope.scopeKey,
318
+ identities, recordedIdentity: candidate.storeIdentity, agentId,
319
+ });
320
+ if (!identity) throw new InvalidCursorSessionStoreIdentityError("Recorded Cursor local store identity is not valid for this pi session");
321
+ let openedStore = openedStores.get(identity.stateRoot);
322
+ if (!openedStore) {
323
+ openedStore = await openCursorSessionStore(ctx.cwd, identity, identities.workspaceRoot, identities.storeRoot);
324
+ openedStores.set(identity.stateRoot, openedStore);
325
+ }
326
+ await operations.delete(agentId, { cwd: ctx.cwd, store: openedStore.store });
327
+ deletedAgentIds.push(agentId);
328
+ } catch (error) {
329
+ failedAgentIds.push({
330
+ agentId,
331
+ error: scrubSensitiveText(getString(asRecord(error), "message") ?? String(error)),
332
+ ...(error instanceof InvalidCursorSessionStoreIdentityError ? { retryable: false } : {}),
333
+ });
325
334
  }
326
- await operations.delete(agentId, { cwd: ctx.cwd, store: openedStore.store });
327
- deletedAgentIds.push(agentId);
328
- } catch (error) {
329
- failedAgentIds.push({
330
- agentId,
331
- error: scrubSensitiveText(getString(asRecord(error), "message") ?? String(error)),
332
- ...(error instanceof InvalidCursorSessionStoreIdentityError ? { retryable: false } : {}),
333
- });
334
335
  }
335
- }
336
+ });
336
337
  } catch (error) {
337
338
  const message = scrubSensitiveText(getString(asRecord(error), "message") ?? String(error));
338
339
  failedAgentIds.push(...plan.candidateAgentIds.map((agentId) => ({ agentId, error: message })));
@@ -1,6 +1,7 @@
1
1
  import { createHash } from "node:crypto";
2
- import type { AgentModeOption, LocalAgentOptions, LocalAgentStore, ModelSelection, SDKAgent, SettingSource } from "@cursor/sdk";
2
+ import type { AgentModeOption, AgentOptions, LocalAgentOptions, LocalAgentStore, ModelSelection, SDKAgent, SettingSource } from "@cursor/sdk";
3
3
  import type { Context } from "@earendil-works/pi-ai";
4
+ import { normalizeCursorCustomStoreRoot } from "./cursor-custom-store-path.js";
4
5
  import {
5
6
  getRegisteredCursorPiToolBridge,
6
7
  type CursorPiToolBridge,
@@ -47,6 +48,7 @@ export interface SessionCursorAgentLease {
47
48
 
48
49
  interface SessionCursorAgentPoolEntryBase {
49
50
  poolKey: string;
51
+ storeRoot: string | undefined;
50
52
  instanceId: number;
51
53
  scopeKey: string;
52
54
  sendState: SessionCursorAgentSendState;
@@ -113,10 +115,14 @@ function assertScopeAcceptsAcquire(scopeKey: string): void {
113
115
  terminalDisposedScopeGenerations.delete(scopeKey);
114
116
  }
115
117
 
116
- function rethrowSupersededWhenReplacedByDifferentPoolKey(scopeKey: string, poolKey: string, error: unknown): void {
118
+ function samePoolIdentity(entry: SessionCursorAgentPoolEntryBase, poolKey: string, capturedStoreRoot: string | undefined): boolean {
119
+ return entry.poolKey === poolKey && entry.storeRoot === capturedStoreRoot;
120
+ }
121
+
122
+ function rethrowSupersededWhenReplacedByDifferentPoolIdentity(scopeKey: string, poolKey: string, storeRoot: string | undefined, error: unknown): void {
117
123
  if (!(error instanceof SessionCursorAgentCreationSupersededError)) return;
118
124
  const replacement = sessionAgentsByScope.get(scopeKey);
119
- if (replacement && replacement.poolKey !== poolKey) {
125
+ if (replacement && !samePoolIdentity(replacement, poolKey, storeRoot)) {
120
126
  throw error;
121
127
  }
122
128
  }
@@ -130,10 +136,12 @@ interface SessionCursorAgentCreateParams {
130
136
  modelSelection: ModelSelection;
131
137
  settingSources?: SettingSource[];
132
138
  localSafety?: CursorLocalSafetyOptions;
139
+ agents?: AgentOptions["agents"];
133
140
  useHttp1ForAgent?: boolean;
134
141
  onBridgeToolRequest?: (request: CursorPiBridgeToolRequest) => void;
135
142
  debugRecorder?: CursorSdkEventDebugRecorder;
136
143
  localResume?: boolean;
144
+ storeRoot?: string;
137
145
  forceCreate?: boolean;
138
146
  createAgent?: CursorSdkModule["Agent"]["create"];
139
147
  resumeAgent?: CursorSdkModule["Agent"]["resume"];
@@ -213,6 +221,21 @@ function buildBridgePoolKeySuffix(registeredBridge: CursorPiToolBridge | undefin
213
221
  return registeredBridge.getToolSurfaceSignature();
214
222
  }
215
223
 
224
+ function buildCustomSubagentPoolKeySuffix(agents: AgentOptions["agents"]): string[] {
225
+ const definitions = Object.entries(agents ?? {}).sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0);
226
+ if (!definitions.length) return [];
227
+ const content = definitions.map(([name, entry]) => [
228
+ name, entry.description, entry.prompt,
229
+ entry.model === undefined ? null : entry.model === "inherit" ? "inherit" : {
230
+ id: entry.model.id,
231
+ params: [...(entry.model.params ?? [])].sort((a, b) =>
232
+ a.id < b.id ? -1 : a.id > b.id ? 1 : a.value < b.value ? -1 : a.value > b.value ? 1 : 0)
233
+ .map(({ id, value }) => ({ id, value })),
234
+ },
235
+ ]);
236
+ return [`subagents:${createHash("sha256").update(JSON.stringify(content)).digest("hex")}`];
237
+ }
238
+
216
239
  function buildSessionAgentPoolKey(scopeKey: string, params: SessionCursorAgentCreateParams): string {
217
240
  return [
218
241
  scopeKey,
@@ -227,6 +250,7 @@ function buildSessionAgentPoolKey(scopeKey: string, params: SessionCursorAgentCr
227
250
  : "http1:off",
228
251
  buildApiKeyPoolKeyFingerprint(params.apiKey),
229
252
  buildBridgePoolKeySuffix("bridge" in params ? params.bridge : getRegisteredCursorPiToolBridge()),
253
+ ...buildCustomSubagentPoolKeySuffix(params.agents),
230
254
  ].join("\0");
231
255
  }
232
256
 
@@ -410,10 +434,10 @@ function leaseFromEntry(
410
434
  };
411
435
  }
412
436
 
413
- function getCurrentReadyPoolEntry(scopeKey: string, poolKey: string): SessionCursorAgentReadyEntry | undefined {
437
+ function getCurrentReadyPoolEntry(scopeKey: string, poolKey: string, storeRoot: string | undefined): SessionCursorAgentReadyEntry | undefined {
414
438
  const current = sessionAgentsByScope.get(scopeKey);
415
439
  if (current?.status !== "ready") return undefined;
416
- if (current.poolKey !== poolKey) return undefined;
440
+ if (!samePoolIdentity(current, poolKey, storeRoot)) return undefined;
417
441
  return current;
418
442
  }
419
443
 
@@ -432,7 +456,7 @@ async function tryLeaseReadyEntry(
432
456
  await disposePoolEntryForScope(scopeKey);
433
457
  return undefined;
434
458
  }
435
- const readyEntry = getCurrentReadyPoolEntry(scopeKey, poolKey);
459
+ const readyEntry = getCurrentReadyPoolEntry(scopeKey, poolKey, params.storeRoot);
436
460
  if (!readyEntry) return undefined;
437
461
  return leaseFromEntry(readyEntry, scopeKey, params, created);
438
462
  }
@@ -473,11 +497,10 @@ async function createSessionAgentEntry(
473
497
  cwd: params.cwd,
474
498
  scopeKey,
475
499
  persistent: persistentStore,
476
- hasResumeHandle: resumeHandle !== undefined,
477
- resumeIdentity: resumeHandle?.storeIdentity,
500
+ storeRoot: params.storeRoot,
501
+ resume: resumeHandle ? { identity: resumeHandle.storeIdentity, agentId: resumeHandle.agentId } : undefined,
478
502
  });
479
503
  sessionStore = storeSelection.sessionStore;
480
- const { identities } = storeSelection;
481
504
  const resumeAttemptAllowed = storeSelection.resumeAttemptAllowed;
482
505
  let resumeNotice = storeSelection.resumeFallback ? LOCAL_RESUME_FALLBACK_NOTICE : undefined;
483
506
  const buildAgentOptions = () => ({
@@ -491,6 +514,7 @@ async function createSessionAgentEntry(
491
514
  store: sessionStore!.store,
492
515
  }),
493
516
  ...(bridgeRun?.mcpServers ? { mcpServers: bridgeRun.mcpServers } : {}),
517
+ ...(params.agents && Object.keys(params.agents).length ? { agents: params.agents } : {}),
494
518
  });
495
519
  let agent: SDKAgent | undefined;
496
520
  let effectiveSendState = sendState;
@@ -502,9 +526,11 @@ async function createSessionAgentEntry(
502
526
  resumed = true;
503
527
  } catch {
504
528
  if (persistentStore) resumeNotice = LOCAL_RESUME_FALLBACK_NOTICE;
505
- if (!cursorSessionStoreIdentitiesEqual(sessionStore.identity, identities.sessionStore)) {
529
+ if (storeSelection.persistent && !cursorSessionStoreIdentitiesEqual(sessionStore.identity, storeSelection.identities.sessionStore)) {
530
+ const { identities } = storeSelection;
531
+ const replacement = await openCursorSessionStore(params.cwd, identities.sessionStore, identities.workspaceRoot, identities.storeRoot);
506
532
  await sessionStore.dispose().catch(() => undefined);
507
- sessionStore = await openCursorSessionStore(params.cwd, identities.sessionStore);
533
+ sessionStore = replacement;
508
534
  }
509
535
  }
510
536
  }
@@ -515,6 +541,7 @@ async function createSessionAgentEntry(
515
541
  return {
516
542
  status: "ready",
517
543
  poolKey: resolvedPoolKey,
544
+ storeRoot: params.storeRoot,
518
545
  instanceId,
519
546
  scopeKey,
520
547
  agent,
@@ -552,6 +579,7 @@ export async function acquireSessionCursorAgent(input: SessionCursorAgentCreateP
552
579
  const params = { ...input, bridge: "bridge" in input ? input.bridge : getRegisteredCursorPiToolBridge() };
553
580
  const scopeKey = params.scope?.scopeKey ?? getCursorSessionScopeKey();
554
581
  const persistentStore = (params.scope ? params.scope.sessionFile : getCursorSessionFile()) !== undefined;
582
+ params.storeRoot = persistentStore && params.storeRoot !== undefined ? normalizeCursorCustomStoreRoot(params.storeRoot) : undefined;
555
583
 
556
584
  while (true) {
557
585
  assertScopeAcceptsAcquire(scopeKey);
@@ -562,7 +590,7 @@ export async function acquireSessionCursorAgent(input: SessionCursorAgentCreateP
562
590
  const poolKey = buildSessionAgentPoolKey(scopeKey, params);
563
591
  const state = getSessionCursorAgentPoolState(scopeKey);
564
592
 
565
- if ((state.status === "ready" || state.status === "busy") && state.poolKey !== poolKey) {
593
+ if ((state.status === "ready" || state.status === "busy") && !samePoolIdentity(state, poolKey, params.storeRoot)) {
566
594
  await disposePoolEntryForScope(scopeKey);
567
595
  continue;
568
596
  }
@@ -579,7 +607,7 @@ export async function acquireSessionCursorAgent(input: SessionCursorAgentCreateP
579
607
  }
580
608
 
581
609
  if (state.status === "creating") {
582
- if (state.poolKey !== poolKey) {
610
+ if (!samePoolIdentity(state, poolKey, params.storeRoot)) {
583
611
  await disposePoolEntryForScope(scopeKey);
584
612
  continue;
585
613
  }
@@ -588,7 +616,7 @@ export async function acquireSessionCursorAgent(input: SessionCursorAgentCreateP
588
616
  } catch (error) {
589
617
  if (error instanceof SessionCursorAgentCreationSupersededError) {
590
618
  assertScopeAcceptsAcquire(scopeKey);
591
- rethrowSupersededWhenReplacedByDifferentPoolKey(scopeKey, poolKey, error);
619
+ rethrowSupersededWhenReplacedByDifferentPoolIdentity(scopeKey, poolKey, params.storeRoot, error);
592
620
  continue;
593
621
  }
594
622
  throw error;
@@ -618,6 +646,7 @@ export async function acquireSessionCursorAgent(input: SessionCursorAgentCreateP
618
646
  placeholder = {
619
647
  status: "creating",
620
648
  poolKey,
649
+ storeRoot: params.storeRoot,
621
650
  instanceId,
622
651
  scopeKey,
623
652
  sendState,
@@ -637,7 +666,7 @@ export async function acquireSessionCursorAgent(input: SessionCursorAgentCreateP
637
666
  }
638
667
  if (error instanceof SessionCursorAgentCreationSupersededError) {
639
668
  assertScopeAcceptsAcquire(scopeKey);
640
- rethrowSupersededWhenReplacedByDifferentPoolKey(scopeKey, poolKey, error);
669
+ rethrowSupersededWhenReplacedByDifferentPoolIdentity(scopeKey, poolKey, params.storeRoot, error);
641
670
  continue;
642
671
  }
643
672
  throw error;
@@ -680,8 +709,6 @@ export const __testUtils = {
680
709
  resetSessionCursorAgent,
681
710
  refreshSessionCursorAgentConfig,
682
711
  disposeAllSessionCursorAgents,
683
- buildApiKeyPoolKeyFingerprint,
684
- buildSessionAgentPoolKey,
685
712
  setDeadTransportAgentDisposeTimeoutMs(ms: number): number {
686
713
  const previous = deadTransportAgentDisposeTimeoutMs;
687
714
  deadTransportAgentDisposeTimeoutMs = ms;
@@ -21,14 +21,14 @@ export interface CursorSessionSendPlan {
21
21
  reason: CursorSessionSendReason;
22
22
  }
23
23
 
24
- export function planCursorSessionSend(sendState: SessionCursorAgentSendState, context: Context): CursorSessionSendPlan {
24
+ export function planCursorSessionSend(sendState: SessionCursorAgentSendState, context: Context, nativeSourceRoles?: readonly string[]): CursorSessionSendPlan {
25
25
  if (!sendState.bootstrapped) {
26
26
  return { mode: "bootstrap", resetAgent: false, reason: "initial" };
27
27
  }
28
28
  if (sendState.incrementalSendCount >= MAX_COMPLETED_INCREMENTAL_SENDS_BEFORE_REBOOTSTRAP) {
29
29
  return { mode: "bootstrap", resetAgent: true, reason: "incremental_threshold" };
30
30
  }
31
- if (shouldBootstrapCursorContext(sendState, context)) {
31
+ if (shouldBootstrapCursorContext(sendState, context, nativeSourceRoles)) {
32
32
  return { mode: "bootstrap", resetAgent: true, reason: "context_divergence" };
33
33
  }
34
34
  return { mode: "incremental", resetAgent: false, reason: "incremental" };