@code-yeongyu/senpi 2026.9.26 → 2026.9.27-3

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 (404) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/dist/bun-runtime.d.ts +18 -2
  3. package/dist/bun-runtime.d.ts.map +1 -1
  4. package/dist/bun-runtime.js +60 -8
  5. package/dist/bun-runtime.js.map +1 -1
  6. package/dist/bundle/chunks/anthropic-messages-3FGAXYJS.js +8 -0
  7. package/dist/bundle/chunks/{app-server-command-ZRCKWY2X.js → app-server-command-ZVB35UIJ.js} +1 -1
  8. package/dist/bundle/chunks/azure-openai-responses-4SUOOZZ4.js +2 -0
  9. package/dist/bundle/chunks/bun-extension-importer-R4HXF3GD.js +14 -0
  10. package/dist/bundle/chunks/{chunk-KMJXSXRX.js → chunk-357I4IUU.js} +2 -2
  11. package/dist/bundle/chunks/chunk-3SIQIY57.js +8 -0
  12. package/dist/bundle/chunks/chunk-45SZOLCU.js +2 -0
  13. package/dist/bundle/chunks/{chunk-77ACEMYL.js → chunk-6J6RDMBY.js} +1 -1
  14. package/dist/bundle/chunks/{chunk-BSOJHK4W.js → chunk-7FXXRPB3.js} +2 -1
  15. package/dist/bundle/chunks/{chunk-FD34HSJJ.js → chunk-C6LQNMRB.js} +1 -1
  16. package/dist/bundle/chunks/chunk-ELM77A26.js +2 -0
  17. package/dist/bundle/chunks/chunk-GZVCRV7I.js +3 -0
  18. package/dist/bundle/chunks/{chunk-TTY5BHCG.js → chunk-H2SGCPMD.js} +1 -1
  19. package/dist/bundle/chunks/chunk-KLBKUBDV.js +2 -0
  20. package/dist/bundle/chunks/chunk-L6QV7NZI.js +2 -0
  21. package/dist/bundle/chunks/{chunk-ZKZAATFM.js → chunk-LDB5UMH2.js} +2 -2
  22. package/dist/bundle/chunks/{chunk-HZAKOVHN.js → chunk-LGKKU4VM.js} +1 -1
  23. package/dist/bundle/chunks/{chunk-6Q6DGME2.js → chunk-NMDALHXH.js} +1 -1
  24. package/dist/bundle/chunks/chunk-NNILBBOH.js +18 -0
  25. package/dist/bundle/chunks/{chunk-SUQDU5KM.js → chunk-OQRUK2DK.js} +1 -1
  26. package/dist/bundle/chunks/{chunk-OZCB6BP3.js → chunk-OZN2KUPR.js} +7 -7
  27. package/dist/bundle/chunks/{chunk-X3T45623.js → chunk-QK4QKRTF.js} +1 -1
  28. package/dist/bundle/chunks/{chunk-WM5FVFAP.js → chunk-QPZVJQC5.js} +1 -1
  29. package/dist/bundle/chunks/{chunk-Y54V65MS.js → chunk-QYAO24GB.js} +1 -1
  30. package/dist/bundle/chunks/{chunk-MKAM7IRH.js → chunk-RULGEHQM.js} +1 -1
  31. package/dist/bundle/chunks/{chunk-QGC46CGK.js → chunk-RYI6XR6Z.js} +63 -58
  32. package/dist/bundle/chunks/chunk-U3VOXCGP.js +2 -0
  33. package/dist/bundle/chunks/chunk-W3D3ZYDS.js +2 -0
  34. package/dist/bundle/chunks/{chunk-UBPMXBOJ.js → chunk-XKLR7C5B.js} +1 -1
  35. package/dist/bundle/chunks/{chunk-CLZVNQW3.js → chunk-Y7EIVDHZ.js} +1 -1
  36. package/dist/bundle/chunks/chunk-ZIVYE5YK.js +2 -0
  37. package/dist/bundle/chunks/cli-main-RONHLFWZ.js +3 -0
  38. package/dist/bundle/chunks/google-generative-ai-ZTGKZTGU.js +2 -0
  39. package/dist/bundle/chunks/google-vertex-CCZ376YK.js +2 -0
  40. package/dist/bundle/chunks/help-fast-path-5LRG6FCG.js +2 -0
  41. package/dist/bundle/chunks/host-command-JVPGQR74.js +2 -0
  42. package/dist/bundle/chunks/host-lifecycle-R4HLXLBM.js +3 -0
  43. package/dist/bundle/chunks/host-lifecycle.js +4 -4
  44. package/dist/bundle/chunks/interactive-host-runtime-FES2G62G.js +4 -0
  45. package/dist/bundle/chunks/interactive-mode-45EP2FVL.js +2 -0
  46. package/dist/bundle/chunks/{list-tips-EBRNBPBM.js → list-tips-XXMRDHN6.js} +1 -1
  47. package/dist/bundle/chunks/{multi-session-host-7YX2I7UK.js → multi-session-host-EFCMD5OT.js} +6 -6
  48. package/dist/bundle/chunks/{openai-completions-4CLXDDHJ.js → openai-completions-OP6VFNUR.js} +1 -1
  49. package/dist/bundle/chunks/openai-images-6U5FCN5S.js +2 -0
  50. package/dist/bundle/chunks/openai-responses-7PWMBGYX.js +2 -0
  51. package/dist/bundle/chunks/openrouter-images-QIKWQZUD.js +2 -0
  52. package/dist/bundle/chunks/{package-manager-cli-3ISYTEL2.js → package-manager-cli-5XJS3TYM.js} +1 -1
  53. package/dist/bundle/chunks/rotation-stream-KW7PTEC4.js +2 -0
  54. package/dist/bundle/chunks/rpc-mode-ZHYECU24.js +2 -0
  55. package/dist/bundle/chunks/session-picker-QHIYVQP4.js +2 -0
  56. package/dist/bundle/chunks/session-worker.js +281 -270
  57. package/dist/bundle/chunks/{state-store-Q5EWEAFG.js → state-store-D4GGGT3J.js} +1 -1
  58. package/dist/bundle/cli.js +1 -1
  59. package/dist/bundle/index.js +1 -1
  60. package/dist/bundle/rpc-entry.js +1 -1
  61. package/dist/cli/args.d.ts +1 -0
  62. package/dist/cli/args.d.ts.map +1 -1
  63. package/dist/cli/args.js +4 -0
  64. package/dist/cli/args.js.map +1 -1
  65. package/dist/cli/continue-moved.d.ts +15 -0
  66. package/dist/cli/continue-moved.d.ts.map +1 -0
  67. package/dist/cli/continue-moved.js +26 -0
  68. package/dist/cli/continue-moved.js.map +1 -0
  69. package/dist/cli/cross-project-session.d.ts +22 -0
  70. package/dist/cli/cross-project-session.d.ts.map +1 -0
  71. package/dist/cli/cross-project-session.js +38 -0
  72. package/dist/cli/cross-project-session.js.map +1 -0
  73. package/dist/core/agent-session-runtime.d.ts +3 -0
  74. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  75. package/dist/core/agent-session-runtime.js +43 -10
  76. package/dist/core/agent-session-runtime.js.map +1 -1
  77. package/dist/core/agent-session.d.ts.map +1 -1
  78. package/dist/core/agent-session.js +19 -5
  79. package/dist/core/agent-session.js.map +1 -1
  80. package/dist/core/extensions/builtin/anthropic-subscription/session-registry-pump.d.ts.map +1 -1
  81. package/dist/core/extensions/builtin/anthropic-subscription/session-registry-pump.js +5 -1
  82. package/dist/core/extensions/builtin/anthropic-subscription/session-registry-pump.js.map +1 -1
  83. package/dist/core/extensions/builtin/anthropic-subscription/session-turn-claim.d.ts +13 -1
  84. package/dist/core/extensions/builtin/anthropic-subscription/session-turn-claim.d.ts.map +1 -1
  85. package/dist/core/extensions/builtin/anthropic-subscription/session-turn-claim.js +25 -2
  86. package/dist/core/extensions/builtin/anthropic-subscription/session-turn-claim.js.map +1 -1
  87. package/dist/core/extensions/builtin/anthropic-subscription/session-turn-types.d.ts +1 -0
  88. package/dist/core/extensions/builtin/anthropic-subscription/session-turn-types.d.ts.map +1 -1
  89. package/dist/core/extensions/builtin/anthropic-subscription/session-turn-types.js.map +1 -1
  90. package/dist/core/extensions/builtin/index.d.ts.map +1 -1
  91. package/dist/core/extensions/builtin/index.js +2 -0
  92. package/dist/core/extensions/builtin/index.js.map +1 -1
  93. package/dist/core/extensions/builtin/mcp/catalog.d.ts +3 -0
  94. package/dist/core/extensions/builtin/mcp/catalog.d.ts.map +1 -1
  95. package/dist/core/extensions/builtin/mcp/catalog.js +9 -0
  96. package/dist/core/extensions/builtin/mcp/catalog.js.map +1 -1
  97. package/dist/core/extensions/builtin/mcp/connection-types.d.ts +2 -0
  98. package/dist/core/extensions/builtin/mcp/connection-types.d.ts.map +1 -1
  99. package/dist/core/extensions/builtin/mcp/connection-types.js.map +1 -1
  100. package/dist/core/extensions/builtin/mcp/connection.d.ts +1 -1
  101. package/dist/core/extensions/builtin/mcp/connection.d.ts.map +1 -1
  102. package/dist/core/extensions/builtin/mcp/connection.js +3 -2
  103. package/dist/core/extensions/builtin/mcp/connection.js.map +1 -1
  104. package/dist/core/extensions/builtin/mcp/expose/session.d.ts +3 -0
  105. package/dist/core/extensions/builtin/mcp/expose/session.d.ts.map +1 -1
  106. package/dist/core/extensions/builtin/mcp/expose/session.js +9 -2
  107. package/dist/core/extensions/builtin/mcp/expose/session.js.map +1 -1
  108. package/dist/core/extensions/builtin/mcp/service-register.d.ts.map +1 -1
  109. package/dist/core/extensions/builtin/mcp/service-register.js +7 -1
  110. package/dist/core/extensions/builtin/mcp/service-register.js.map +1 -1
  111. package/dist/core/extensions/builtin/mcp/service-tools-changed.d.ts +18 -0
  112. package/dist/core/extensions/builtin/mcp/service-tools-changed.d.ts.map +1 -0
  113. package/dist/core/extensions/builtin/mcp/service-tools-changed.js +61 -0
  114. package/dist/core/extensions/builtin/mcp/service-tools-changed.js.map +1 -0
  115. package/dist/core/extensions/builtin/mcp/service-types.d.ts +13 -0
  116. package/dist/core/extensions/builtin/mcp/service-types.d.ts.map +1 -1
  117. package/dist/core/extensions/builtin/mcp/service-types.js.map +1 -1
  118. package/dist/core/extensions/builtin/mcp/service.d.ts.map +1 -1
  119. package/dist/core/extensions/builtin/mcp/service.js +4 -37
  120. package/dist/core/extensions/builtin/mcp/service.js.map +1 -1
  121. package/dist/core/extensions/builtin/mcp/shared-lease.js +1 -1
  122. package/dist/core/extensions/builtin/mcp/shared-lease.js.map +1 -1
  123. package/dist/core/extensions/builtin/mcp/startup-race.d.ts.map +1 -1
  124. package/dist/core/extensions/builtin/mcp/startup-race.js +11 -1
  125. package/dist/core/extensions/builtin/mcp/startup-race.js.map +1 -1
  126. package/dist/core/extensions/builtin/permission-system/index.d.ts.map +1 -1
  127. package/dist/core/extensions/builtin/permission-system/index.js +5 -2
  128. package/dist/core/extensions/builtin/permission-system/index.js.map +1 -1
  129. package/dist/core/extensions/builtin/permission-system/parsers.d.ts +5 -0
  130. package/dist/core/extensions/builtin/permission-system/parsers.d.ts.map +1 -1
  131. package/dist/core/extensions/builtin/permission-system/parsers.js +13 -0
  132. package/dist/core/extensions/builtin/permission-system/parsers.js.map +1 -1
  133. package/dist/core/extensions/builtin/repository-identity.d.ts +6 -0
  134. package/dist/core/extensions/builtin/repository-identity.d.ts.map +1 -0
  135. package/dist/core/extensions/builtin/repository-identity.js +33 -0
  136. package/dist/core/extensions/builtin/repository-identity.js.map +1 -0
  137. package/dist/core/extensions/bun-extension-importer.d.ts.map +1 -1
  138. package/dist/core/extensions/bun-extension-importer.js +10 -4
  139. package/dist/core/extensions/bun-extension-importer.js.map +1 -1
  140. package/dist/core/extensions/bun-extension-registry.js +6 -5
  141. package/dist/core/extensions/bun-extension-registry.js.map +1 -1
  142. package/dist/core/extensions/index.d.ts +1 -1
  143. package/dist/core/extensions/index.d.ts.map +1 -1
  144. package/dist/core/extensions/index.js.map +1 -1
  145. package/dist/core/extensions/kernel-prelude.d.ts +13 -0
  146. package/dist/core/extensions/kernel-prelude.d.ts.map +1 -0
  147. package/dist/core/extensions/kernel-prelude.js +38 -0
  148. package/dist/core/extensions/kernel-prelude.js.map +1 -0
  149. package/dist/core/extensions/types.d.ts +44 -2
  150. package/dist/core/extensions/types.d.ts.map +1 -1
  151. package/dist/core/extensions/types.js.map +1 -1
  152. package/dist/core/messages.d.ts.map +1 -1
  153. package/dist/core/messages.js +4 -2
  154. package/dist/core/messages.js.map +1 -1
  155. package/dist/core/model-resolver.js +1 -1
  156. package/dist/core/model-resolver.js.map +1 -1
  157. package/dist/core/moved-sessions.d.ts +10 -0
  158. package/dist/core/moved-sessions.d.ts.map +1 -0
  159. package/dist/core/moved-sessions.js +84 -0
  160. package/dist/core/moved-sessions.js.map +1 -0
  161. package/dist/core/process-crash-record.d.ts +62 -0
  162. package/dist/core/process-crash-record.d.ts.map +1 -0
  163. package/dist/core/process-crash-record.js +216 -0
  164. package/dist/core/process-crash-record.js.map +1 -0
  165. package/dist/core/provider-rejected-images.d.ts +18 -0
  166. package/dist/core/provider-rejected-images.d.ts.map +1 -0
  167. package/dist/core/provider-rejected-images.js +107 -0
  168. package/dist/core/provider-rejected-images.js.map +1 -0
  169. package/dist/core/repository-identity.d.ts +18 -0
  170. package/dist/core/repository-identity.d.ts.map +1 -0
  171. package/dist/core/repository-identity.js +75 -0
  172. package/dist/core/repository-identity.js.map +1 -0
  173. package/dist/core/resume-target.d.ts +20 -0
  174. package/dist/core/resume-target.d.ts.map +1 -0
  175. package/dist/core/resume-target.js +30 -0
  176. package/dist/core/resume-target.js.map +1 -0
  177. package/dist/core/session-discovery.d.ts.map +1 -1
  178. package/dist/core/session-discovery.js +1 -0
  179. package/dist/core/session-discovery.js.map +1 -1
  180. package/dist/core/session-hold-errors.d.ts +20 -0
  181. package/dist/core/session-hold-errors.d.ts.map +1 -0
  182. package/dist/core/session-hold-errors.js +28 -0
  183. package/dist/core/session-hold-errors.js.map +1 -0
  184. package/dist/core/session-holders.d.ts +22 -0
  185. package/dist/core/session-holders.d.ts.map +1 -0
  186. package/dist/core/session-holders.js +234 -0
  187. package/dist/core/session-holders.js.map +1 -0
  188. package/dist/core/session-manager.d.ts +5 -0
  189. package/dist/core/session-manager.d.ts.map +1 -1
  190. package/dist/core/session-manager.js.map +1 -1
  191. package/dist/core/session-rebind.d.ts +23 -0
  192. package/dist/core/session-rebind.d.ts.map +1 -0
  193. package/dist/core/session-rebind.js +127 -0
  194. package/dist/core/session-rebind.js.map +1 -0
  195. package/dist/core/session-summary-index-file.d.ts.map +1 -1
  196. package/dist/core/session-summary-index-file.js +5 -2
  197. package/dist/core/session-summary-index-file.js.map +1 -1
  198. package/dist/core/session-summary.d.ts +3 -0
  199. package/dist/core/session-summary.d.ts.map +1 -1
  200. package/dist/core/session-summary.js +7 -0
  201. package/dist/core/session-summary.js.map +1 -1
  202. package/dist/core/session-title-generator.d.ts.map +1 -1
  203. package/dist/core/session-title-generator.js +21 -3
  204. package/dist/core/session-title-generator.js.map +1 -1
  205. package/dist/core/session-title-reasoning.d.ts +14 -0
  206. package/dist/core/session-title-reasoning.d.ts.map +1 -0
  207. package/dist/core/session-title-reasoning.js +31 -0
  208. package/dist/core/session-title-reasoning.js.map +1 -0
  209. package/dist/core/tools/path-utils.d.ts.map +1 -1
  210. package/dist/core/tools/path-utils.js +13 -0
  211. package/dist/core/tools/path-utils.js.map +1 -1
  212. package/dist/index.d.ts +1 -1
  213. package/dist/index.d.ts.map +1 -1
  214. package/dist/index.js.map +1 -1
  215. package/dist/legacy-dir-copy.d.ts +9 -0
  216. package/dist/legacy-dir-copy.d.ts.map +1 -0
  217. package/dist/legacy-dir-copy.js +69 -0
  218. package/dist/legacy-dir-copy.js.map +1 -0
  219. package/dist/legacy-senpi-dir-migration.d.ts.map +1 -1
  220. package/dist/legacy-senpi-dir-migration.js +64 -48
  221. package/dist/legacy-senpi-dir-migration.js.map +1 -1
  222. package/dist/main.d.ts +6 -0
  223. package/dist/main.d.ts.map +1 -1
  224. package/dist/main.js +129 -22
  225. package/dist/main.js.map +1 -1
  226. package/dist/migrations-state.d.ts +1 -1
  227. package/dist/migrations-state.d.ts.map +1 -1
  228. package/dist/migrations-state.js +5 -1
  229. package/dist/migrations-state.js.map +1 -1
  230. package/dist/migrations.d.ts.map +1 -1
  231. package/dist/migrations.js +4 -0
  232. package/dist/migrations.js.map +1 -1
  233. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  234. package/dist/modes/interactive/components/session-selector.js +5 -3
  235. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  236. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  237. package/dist/modes/interactive/interactive-mode.js +10 -4
  238. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  239. package/dist/modes/interactive/resume-rebind.d.ts +12 -0
  240. package/dist/modes/interactive/resume-rebind.d.ts.map +1 -0
  241. package/dist/modes/interactive/resume-rebind.js +37 -0
  242. package/dist/modes/interactive/resume-rebind.js.map +1 -0
  243. package/dist/modes/interactive/runtime-notice-presenter.d.ts +8 -0
  244. package/dist/modes/interactive/runtime-notice-presenter.d.ts.map +1 -0
  245. package/dist/modes/interactive/runtime-notice-presenter.js +69 -0
  246. package/dist/modes/interactive/runtime-notice-presenter.js.map +1 -0
  247. package/dist/modes/interactive/runtime-notice.d.ts +50 -0
  248. package/dist/modes/interactive/runtime-notice.d.ts.map +1 -0
  249. package/dist/modes/interactive/runtime-notice.js +104 -0
  250. package/dist/modes/interactive/runtime-notice.js.map +1 -0
  251. package/dist/modes/interactive/tips/catalog/computer-tips.d.ts +7 -0
  252. package/dist/modes/interactive/tips/catalog/computer-tips.d.ts.map +1 -0
  253. package/dist/modes/interactive/tips/catalog/computer-tips.js +36 -0
  254. package/dist/modes/interactive/tips/catalog/computer-tips.js.map +1 -0
  255. package/dist/modes/interactive/tips/registry.d.ts.map +1 -1
  256. package/dist/modes/interactive/tips/registry.js +2 -0
  257. package/dist/modes/interactive/tips/registry.js.map +1 -1
  258. package/dist/modes/rpc/connection-handler.d.ts.map +1 -1
  259. package/dist/modes/rpc/connection-handler.js +3 -0
  260. package/dist/modes/rpc/connection-handler.js.map +1 -1
  261. package/dist/modes/rpc/host-child-exit.d.ts.map +1 -1
  262. package/dist/modes/rpc/host-child-exit.js +4 -0
  263. package/dist/modes/rpc/host-child-exit.js.map +1 -1
  264. package/dist/modes/rpc/host-crash-record.d.ts +8 -0
  265. package/dist/modes/rpc/host-crash-record.d.ts.map +1 -1
  266. package/dist/modes/rpc/host-crash-record.js.map +1 -1
  267. package/dist/modes/rpc/host-crash-record.test.js +11 -0
  268. package/dist/modes/rpc/host-crash-record.test.js.map +1 -1
  269. package/dist/modes/rpc/rpc-client.d.ts +2 -2
  270. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  271. package/dist/modes/rpc/rpc-client.js +14 -6
  272. package/dist/modes/rpc/rpc-client.js.map +1 -1
  273. package/dist/modes/rpc/rpc-request-deadline.d.ts +17 -0
  274. package/dist/modes/rpc/rpc-request-deadline.d.ts.map +1 -0
  275. package/dist/modes/rpc/rpc-request-deadline.js +27 -0
  276. package/dist/modes/rpc/rpc-request-deadline.js.map +1 -0
  277. package/dist/modes/rpc/rpc-types.d.ts +9 -2
  278. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  279. package/dist/modes/rpc/rpc-types.js.map +1 -1
  280. package/dist/modes/rpc/session-command-router.d.ts +3 -6
  281. package/dist/modes/rpc/session-command-router.d.ts.map +1 -1
  282. package/dist/modes/rpc/session-command-router.js +9 -22
  283. package/dist/modes/rpc/session-command-router.js.map +1 -1
  284. package/dist/modes/rpc/session-path-key.d.ts +10 -0
  285. package/dist/modes/rpc/session-path-key.d.ts.map +1 -0
  286. package/dist/modes/rpc/session-path-key.js +33 -0
  287. package/dist/modes/rpc/session-path-key.js.map +1 -0
  288. package/dist/modes/rpc/session-registry.d.ts.map +1 -1
  289. package/dist/modes/rpc/session-registry.js +6 -10
  290. package/dist/modes/rpc/session-registry.js.map +1 -1
  291. package/dist/modes/rpc/session-sweep.d.ts +18 -0
  292. package/dist/modes/rpc/session-sweep.d.ts.map +1 -0
  293. package/dist/modes/rpc/session-sweep.js +32 -0
  294. package/dist/modes/rpc/session-sweep.js.map +1 -0
  295. package/dist/pi-dir-restore.d.ts +4 -0
  296. package/dist/pi-dir-restore.d.ts.map +1 -0
  297. package/dist/pi-dir-restore.js +92 -0
  298. package/dist/pi-dir-restore.js.map +1 -0
  299. package/docs/environment-variables.md +2 -0
  300. package/docs/extensions.md +27 -1
  301. package/docs/quickstart.md +7 -1
  302. package/docs/rpc.md +8 -3
  303. package/docs/sdk.md +29 -0
  304. package/docs/sessions.md +13 -0
  305. package/docs/usage.md +1 -0
  306. package/node_modules/@code-yeongyu/senpi-codemode/CHANGELOG.md +38 -0
  307. package/node_modules/@code-yeongyu/senpi-codemode/README.md +7 -0
  308. package/node_modules/@code-yeongyu/senpi-codemode/package.json +4 -4
  309. package/node_modules/@code-yeongyu/senpi-codemode/src/bridge/protocol.ts +9 -0
  310. package/node_modules/@code-yeongyu/senpi-codemode/src/bridges/schema-bridge.ts +2 -0
  311. package/node_modules/@code-yeongyu/senpi-codemode/src/extension/kernel-preludes.ts +30 -0
  312. package/node_modules/@code-yeongyu/senpi-codemode/src/index.ts +15 -1
  313. package/node_modules/@code-yeongyu/senpi-codemode/src/kernels/js/context-manager.ts +1 -1
  314. package/node_modules/@code-yeongyu/senpi-codemode/src/kernels/js/local-module-loader.ts +16 -2
  315. package/node_modules/@code-yeongyu/senpi-codemode/src/kernels/py/kernel.ts +6 -1
  316. package/node_modules/@code-yeongyu/senpi-codemode/src/kernels/py/prelude.py +15 -2
  317. package/node_modules/@code-yeongyu/senpi-codemode/src/kernels/py/transport.ts +7 -1
  318. package/node_modules/@code-yeongyu/senpi-codemode/src/kernels/shared/kernel-prelude-plan.ts +19 -0
  319. package/node_modules/@code-yeongyu/senpi-codemode/src/prompt/eval-prompt-template.ts +2 -1
  320. package/node_modules/@code-yeongyu/senpi-codemode/src/prompt/eval-prompt.ts +4 -0
  321. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/eval-tool-options.ts +11 -1
  322. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/eval-tool.ts +1 -0
  323. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/run-eval-cell.ts +1 -0
  324. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/types.ts +3 -1
  325. package/node_modules/@earendil-works/pi-agent-core/dist/agent.d.ts +2 -2
  326. package/node_modules/@earendil-works/pi-agent-core/dist/agent.d.ts.map +1 -1
  327. package/node_modules/@earendil-works/pi-agent-core/dist/agent.js +7 -0
  328. package/node_modules/@earendil-works/pi-agent-core/dist/agent.js.map +1 -1
  329. package/node_modules/@earendil-works/pi-agent-core/dist/assistant-terminal-state.d.ts.map +1 -1
  330. package/node_modules/@earendil-works/pi-agent-core/dist/assistant-terminal-state.js +3 -1
  331. package/node_modules/@earendil-works/pi-agent-core/dist/assistant-terminal-state.js.map +1 -1
  332. package/node_modules/@earendil-works/pi-agent-core/dist/types.d.ts +3 -1
  333. package/node_modules/@earendil-works/pi-agent-core/dist/types.d.ts.map +1 -1
  334. package/node_modules/@earendil-works/pi-agent-core/dist/types.js.map +1 -1
  335. package/node_modules/@earendil-works/pi-agent-core/package.json +3 -3
  336. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.d.ts.map +1 -1
  337. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js +10 -7
  338. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js.map +1 -1
  339. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.d.ts.map +1 -1
  340. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js +9 -1
  341. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js.map +1 -1
  342. package/node_modules/@earendil-works/pi-ai/dist/index.d.ts +1 -0
  343. package/node_modules/@earendil-works/pi-ai/dist/index.d.ts.map +1 -1
  344. package/node_modules/@earendil-works/pi-ai/dist/index.js +1 -0
  345. package/node_modules/@earendil-works/pi-ai/dist/index.js.map +1 -1
  346. package/node_modules/@earendil-works/pi-ai/dist/provider-diagnostic.d.ts +33 -0
  347. package/node_modules/@earendil-works/pi-ai/dist/provider-diagnostic.d.ts.map +1 -0
  348. package/node_modules/@earendil-works/pi-ai/dist/provider-diagnostic.js +56 -0
  349. package/node_modules/@earendil-works/pi-ai/dist/provider-diagnostic.js.map +1 -0
  350. package/node_modules/@earendil-works/pi-ai/dist/providers/data/.manifest.json +1 -1
  351. package/node_modules/@earendil-works/pi-ai/dist/providers/data/fireworks.json +1 -1
  352. package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode-go.json +1 -1
  353. package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode.json +1 -1
  354. package/node_modules/@earendil-works/pi-ai/dist/providers/data/openrouter.json +1 -1
  355. package/node_modules/@earendil-works/pi-ai/dist/providers/data/vercel-ai-gateway.json +1 -1
  356. package/node_modules/@earendil-works/pi-ai/dist/types.d.ts +3 -0
  357. package/node_modules/@earendil-works/pi-ai/dist/types.d.ts.map +1 -1
  358. package/node_modules/@earendil-works/pi-ai/dist/types.js.map +1 -1
  359. package/node_modules/@earendil-works/pi-ai/dist/utils/provider-diagnostic-carrier.d.ts +5 -0
  360. package/node_modules/@earendil-works/pi-ai/dist/utils/provider-diagnostic-carrier.d.ts.map +1 -0
  361. package/node_modules/@earendil-works/pi-ai/dist/utils/provider-diagnostic-carrier.js +18 -0
  362. package/node_modules/@earendil-works/pi-ai/dist/utils/provider-diagnostic-carrier.js.map +1 -0
  363. package/node_modules/@earendil-works/pi-ai/dist/utils/provider-diagnostic-sources.d.ts +26 -0
  364. package/node_modules/@earendil-works/pi-ai/dist/utils/provider-diagnostic-sources.d.ts.map +1 -0
  365. package/node_modules/@earendil-works/pi-ai/dist/utils/provider-diagnostic-sources.js +103 -0
  366. package/node_modules/@earendil-works/pi-ai/dist/utils/provider-diagnostic-sources.js.map +1 -0
  367. package/node_modules/@earendil-works/pi-ai/dist/utils/provider-diagnostic-vocabulary.d.ts +36 -0
  368. package/node_modules/@earendil-works/pi-ai/dist/utils/provider-diagnostic-vocabulary.d.ts.map +1 -0
  369. package/node_modules/@earendil-works/pi-ai/dist/utils/provider-diagnostic-vocabulary.js +129 -0
  370. package/node_modules/@earendil-works/pi-ai/dist/utils/provider-diagnostic-vocabulary.js.map +1 -0
  371. package/node_modules/@earendil-works/pi-ai/dist/utils/provider-retry.d.ts.map +1 -1
  372. package/node_modules/@earendil-works/pi-ai/dist/utils/provider-retry.js +5 -4
  373. package/node_modules/@earendil-works/pi-ai/dist/utils/provider-retry.js.map +1 -1
  374. package/node_modules/@earendil-works/pi-ai/package.json +2 -2
  375. package/node_modules/@earendil-works/pi-pty/native/prebuilds/darwin-arm64/senpi_pty.darwin-arm64.node +0 -0
  376. package/node_modules/@earendil-works/pi-pty/package.json +1 -1
  377. package/node_modules/@earendil-works/pi-telemetry/package.json +1 -1
  378. package/node_modules/@earendil-works/pi-tui/package.json +1 -1
  379. package/package.json +7 -7
  380. package/dist/bundle/chunks/anthropic-messages-UYDVRFAS.js +0 -8
  381. package/dist/bundle/chunks/azure-openai-responses-DODWR4W6.js +0 -2
  382. package/dist/bundle/chunks/bun-extension-importer-H4IJCWWQ.js +0 -14
  383. package/dist/bundle/chunks/chunk-34HMVB33.js +0 -2
  384. package/dist/bundle/chunks/chunk-3WBSBDBX.js +0 -13
  385. package/dist/bundle/chunks/chunk-L6JO4M6J.js +0 -3
  386. package/dist/bundle/chunks/chunk-SFYHCFRO.js +0 -2
  387. package/dist/bundle/chunks/chunk-T3JBT2IK.js +0 -8
  388. package/dist/bundle/chunks/chunk-TTHMOL5G.js +0 -2
  389. package/dist/bundle/chunks/chunk-UYCGOK6M.js +0 -2
  390. package/dist/bundle/chunks/chunk-ZTVQY5V6.js +0 -2
  391. package/dist/bundle/chunks/cli-main-H6JAXAXV.js +0 -3
  392. package/dist/bundle/chunks/google-generative-ai-VIEFECKJ.js +0 -2
  393. package/dist/bundle/chunks/google-vertex-Q64CKFID.js +0 -2
  394. package/dist/bundle/chunks/help-fast-path-ZGKPSDFO.js +0 -2
  395. package/dist/bundle/chunks/host-command-BMHJ4YUD.js +0 -2
  396. package/dist/bundle/chunks/host-lifecycle-2GZAGSGW.js +0 -3
  397. package/dist/bundle/chunks/interactive-host-runtime-YI75GFD5.js +0 -4
  398. package/dist/bundle/chunks/interactive-mode-HM7UQYRC.js +0 -2
  399. package/dist/bundle/chunks/openai-images-JA5N5DUU.js +0 -2
  400. package/dist/bundle/chunks/openai-responses-IBFGBAJP.js +0 -2
  401. package/dist/bundle/chunks/openrouter-images-MW5TXV7L.js +0 -2
  402. package/dist/bundle/chunks/rotation-stream-NATO6IMN.js +0 -2
  403. package/dist/bundle/chunks/rpc-mode-6PY4TN5F.js +0 -2
  404. package/dist/bundle/chunks/session-picker-BP7THCWF.js +0 -2
@@ -1,14 +0,0 @@
1
- import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url); { const __piWorkerThreads = require("node:worker_threads"); if (typeof __piWorkerThreads.markAsUncloneable !== "function") { __piWorkerThreads.markAsUncloneable = () => {}; } }
2
- import{external_exports}from"./chunk-KUPQO7MC.js";import"./chunk-IKOFCODM.js";import{readFileSync as readFileSync2,realpathSync}from"node:fs";import{createRequire,isBuiltin}from"node:module";import{dirname as dirname2,extname as extname2,resolve}from"node:path";import{fileURLToPath as fileURLToPath2}from"node:url";var a,i,r,s=1048576,f=new Uint8Array(new Uint16Array([1]).buffer)[0]===1?function(e,a2){let i2=e.length,r2=0;for(;r2<i2;)a2[r2]=e.charCodeAt(r2++)}:function(e,a2){let i2=e.length,r2=0;for(;r2<i2;){let i3=e.charCodeAt(r2);a2[r2++]=(255&i3)<<8|i3>>>8}},c="xportportlassrometavoyiedeleinstantyreturdebuggeawaithrwhileforifcatcfinallelsbreacontinsyncunctionourceefer;ypenterfacenewkeyofinfertypeofuniqueimportreadonlyabstractthencatchfinallyeclarextendsnumamespaceonstoduleequirelobal",t,b,k;function parse(l2,o2="@"){t=l2,b=o2;let w=Math.max(2<<17,2*t.length),d=2*t.length+w+(2<<17);if(d>s||!a){for(;d>s;)s*=2;i=new ArrayBuffer(s),f(c,new Uint16Array(i,16,226)),a=(function(e,a2,i2){var r2=new e.Int8Array(i2),s2=new e.Int16Array(i2),f2=new e.Int32Array(i2),c2=new e.Uint8Array(i2),t2=new e.Uint16Array(i2),b2=1344;function k2(){var e2=0,a3=0,i3=0,c3=0,k3=0,n3=0,o4=0,h3=0,w3=0,d3=0;d3=b2,b2=b2+10240|0,r2[1108]=1,r2[1106]=0,s2[550]=0,s2[551]=0,f2[141]=232,r2[1109]=0,f2[142]=0,f2[138]=0,r2[1105]=0,f2[143]=d3+2048,f2[144]=d3,r2[1110]=0,e2=(f2[120]|0)+-2|0,f2[145]=e2,a3=e2+(f2[134]<<1)|0,f2[146]=a3;e:for(;;){if(i3=e2+2|0,f2[145]=i3,e2>>>0>=a3>>>0){c3=25;break}a:do switch(s2[i3>>1]|0){case 9:case 10:case 11:case 12:case 13:case 32:break;case 101:{if((s2[551]|0)==0&&Ee(i3)|0&&(re(e2+4|0,16,10)|0)==0)if(l3()|0){f2[141]=232;break a}else if(r2[1108]|0){c3=24;break a}else{c3=11;break e}else c3=24;break}case 105:{if(a3=e2+4|0,(s2[a3>>1]|0)==109&&Ee(i3)|0&&(re(e2+6|0,26,8)|0)==0){u2(),c3=24;break a}if(Ee(i3)|0&&(re(a3,240,16)|0)==0&&(c3=s2[e2+20>>1]|0,c3<<16>>16==47|(Ce(c3)|0))){c3=19;break e}else c3=24;break}case 59:{c3=24;break}case 47:switch(s2[e2+4>>1]|0){case 47:{de();break a}case 42:{H(1);break a}default:{c3=23;break e}}default:{c3=23;break e}}while(!1);(c3|0)==24&&(c3=0,f2[141]=f2[145]),e2=f2[145]|0,a3=f2[146]|0}(c3|0)==11?(e2=f2[145]|0,f2[141]=e2,c3=26):(c3|0)==19||(c3|0)==23?(r2[1108]=0,f2[145]=e2,c3=26):(c3|0)==25&&(r2[1105]|0?e2=0:(e2=i3,c3=26));do if((c3|0)==26){e:for(;;){if(i3=e2+2|0,f2[145]=i3,e2>>>0>=(f2[146]|0)>>>0){c3=166;break}a3=s2[i3>>1]|0;a:do switch(a3<<16>>16){case 9:case 10:case 11:case 12:case 13:case 32:{(Re(a3)|0)&(f2[142]|0)!=0&&B(i3);break}case 101:{(s2[551]|0)==0&&Ee(i3)|0&&(re(e2+4|0,16,10)|0)==0?l3()|0?f2[141]=232:c3=165:c3=162;break}case 105:switch(s2[e2+4>>1]|0){case 109:{if(!(Ee(i3)|0)){c3=162;break a}if(re(e2+6|0,26,8)|0){c3=162;break a}u2(),c3=165;break a}case 110:{if(!(Ee(i3)|0)){c3=162;break a}if(!(y2(1)|0)){c3=162;break a}f2[141]=232;break a}default:{c3=162;break a}}case 99:{(s2[e2+4>>1]|0)==108&&Ee(i3)|0&&(re(e2+6|0,36,6)|0)==0&&Ce(s2[e2+12>>1]|0)|0&&(r2[1110]=1),c3=162;break}case 116:{(s2[e2+4>>1]|0)==121&&Ee(i3)|0&&y2(1)|0?f2[141]=232:c3=162;break}case 100:{(s2[e2+4>>1]|0)==101&&Ee(i3)|0&&g()|0?f2[141]=232:c3=162;break}case 40:{if(e2=s2[551]|0,e2<<16>>16==1024){c3=59;break e}i3=f2[141]|0,c3=f2[143]|0,f2[c3+((e2&65535)<<3)>>2]=1,s2[551]=e2+1<<16>>16,f2[c3+((e2&65535)<<3)+4>>2]=i3,c3=165;break}case 91:{if(e2=s2[551]|0,e2<<16>>16==1024){c3=62;break e}i3=f2[141]|0,c3=f2[143]|0,f2[c3+((e2&65535)<<3)>>2]=8,s2[551]=e2+1<<16>>16,f2[c3+((e2&65535)<<3)+4>>2]=i3,c3=165;break}case 60:{e2=(f2[142]|0)+1|0,e2>>>0>1&&(f2[142]=e2),c3=165;break}case 62:{switch(a3=f2[142]|0,a3|0){case 0:case 1:case-1:{c3=165;break a}default:}(s2[e2>>1]|0)==61||(f2[142]=a3+-1),c3=165;break}case 61:{(f2[142]|0)==1&(s2[551]|0)==0&&(s2[e2+4>>1]|0)!=62&&(f2[142]=-1),c3=165;break}case 93:{if(e2=s2[551]|0,!(e2<<16>>16)){c3=72;break e}s2[551]=e2+-1<<16>>16,c3=165;break}case 44:{if(a3=s2[550]|0,a3<<16>>16&&(n3=s2[551]|0,n3<<16>>16)&&(f2[(f2[143]|0)+((n3&65535)+-1<<3)>>2]|0)==5){if(a3=f2[(f2[144]|0)+((a3&65535)+-1<<2)>>2]|0,f2[a3+4>>2]|0){c3=165;break a}c3=f2[141]|0,f2[a3+4>>2]=c3+2,(f2[a3+44>>2]|0)!=(c3|0)&&(f2[a3+36>>2]=0),f2[145]=e2+4,D(1)|0,c3=f2[145]|0,f2[a3+16>>2]=c3,f2[145]=c3+-2,c3=165;break a}switch(f2[142]|0){case 1:case-1:break;default:{c3=165;break a}}s2[551]|0||G(),c3=165;break}case 59:{(f2[142]|0)!=0&(s2[551]|0)==0&&(f2[142]=0),c3=165;break}case 41:{if(a3=s2[551]|0,!(a3<<16>>16)){c3=87;break e}s2[551]=a3+-1<<16>>16,i3=s2[550]|0,i3<<16>>16!=0&&(f2[(f2[143]|0)+((a3+-1&65535)<<3)>>2]|0)==5&&(a3=f2[(f2[144]|0)+((i3&65535)+-1<<2)>>2]|0,(f2[a3+4>>2]|0)==0&&(c3=f2[141]|0,f2[a3+4>>2]=c3+2,(f2[a3+44>>2]|0)!=(c3|0))&&(f2[a3+36>>2]=0),f2[a3+12>>2]=e2+4,v2(a3),s2[550]=(s2[550]|0)+-1<<16>>16),c3=165;break}case 123:{if(e2=f2[141]|0,c3=f2[128]|0,(s2[e2>>1]|0)==41&(c3|0)!=0&&(f2[c3+12>>2]|0)==(e2+2|0)&&(c3=f2[129]|0,f2[128]=c3,f2[((c3|0)==0?496:c3+52|0)>>2]=0,f2[132]=(f2[132]|0)+-1),a3=s2[551]|0,a3<<16>>16==1024){c3=98;break e}c3=f2[143]|0,f2[c3+((a3&65535)<<3)>>2]=(r2[1110]|0)==0?2:6,s2[551]=a3+1<<16>>16,f2[c3+((a3&65535)<<3)+4>>2]=e2,r2[1110]=0,c3=165;break}case 125:{if(e2=s2[551]|0,!(e2<<16>>16)){c3=101;break e}c3=f2[143]|0,s2[551]=e2+-1<<16>>16,(f2[c3+((e2+-1&65535)<<3)>>2]|0)==4&&(a3=s2[550]|0,a3<<16>>16&&(o4=f2[(f2[144]|0)+((a3&65535)+-1<<2)>>2]|0,(s2[o4+48>>1]|0)==e2+-1<<16>>16<<16>>16)&&(qe(8),c3=f2[136]|0,f2[136]=c3+8,f2[c3>>2]=(f2[145]|0)+2,f2[c3+4>>2]=0,i3=f2[o4+40>>2]|0,f2[((i3|0)==0?o4+36|0:i3+4|0)>>2]=c3,f2[o4+40>>2]=c3),E()),c3=165;break}case 34:case 39:{K(a3),c3=165;break}case 92:{if(e2=fe()|0,!e2)c3=162;else{if((e2|0)<0){c3=110;break e}f2[141]=i3}break}case 47:{switch(s2[e2+4>>1]|0){case 47:{de();break}case 42:{H(1);break}default:{e2=f2[141]|0,a3=s2[e2>>1]|0;i:do if(!(ce(a3)|0))a3<<16>>16==41?(i3=s2[551]|0,Ae(f2[(f2[143]|0)+((i3&65535)<<3)+4>>2]|0)|0||(c3=123)):c3=122;else switch(a3<<16>>16){case 46:if(((s2[e2+-2>>1]|0)+-48&65535)<10){c3=122;break i}else break i;case 43:if((s2[e2+-2>>1]|0)==43){c3=122;break i}else break i;case 45:if((s2[e2+-2>>1]|0)==45){c3=122;break i}else break i;default:break i}while(!1);(c3|0)==122&&(i3=s2[551]|0,c3=123);i:do if((c3|0)==123){if(c3=0,i3<<16>>16!=0&&(h3=f2[143]|0,w3=(i3&65535)+-1|0,a3<<16>>16==102?(f2[h3+(w3<<3)>>2]|0)==1:0)){if((s2[e2+-2>>1]|0)==111&&L(e2+-4|0)|0&&ke(f2[h3+(w3<<3)+4>>2]|0,136,3)|0)break}else c3=128;if((c3|0)==128&&a3<<16>>16==125&&(c3=f2[143]|0,i3=i3&65535,ae(f2[c3+(i3<<3)+4>>2]|0)|0||(f2[c3+(i3<<3)>>2]|0)==6))break;if(!(m2(e2)|0)){switch(a3<<16>>16){case 0:break i;case 47:{if(r2[1109]|0)break i;break}default:}if(c3=f2[130]|0,c3|0&&e2>>>0>=(f2[c3>>2]|0)>>>0&&e2>>>0<=(f2[c3+4>>2]|0)>>>0){ee(),r2[1109]=0,c3=165;break a}i3=f2[120]|0;do{if(e2>>>0<=i3>>>0)break;e2=e2+-2|0,f2[141]=e2,a3=s2[e2>>1]|0}while(!(ve(a3)|0));if(xe(a3)|0){do{if(e2>>>0<=i3>>>0)break;e2=e2+-2|0,f2[141]=e2}while(xe(s2[e2>>1]|0)|0);if(ne(e2)|0){ee(),r2[1109]=0,c3=165;break a}}r2[1109]=1,c3=165;break a}}while(!1);ee(),r2[1109]=0,c3=165;break a}}if((f2[142]|0)!=0&(s2[551]|0)==0){for(a3=f2[145]|0,e2=i3;;){if(e2>>>0>a3>>>0)break a;if(Re(s2[e2>>1]|0)|0)break;e2=e2+2|0}i3=Re(s2[a3>>1]|0)|0,B(i3?a3:a3+2|0)}break}case 96:{if(e2=s2[550]|0,e2<<16>>16&&(k3=f2[(f2[144]|0)+((e2&65535)+-1<<2)>>2]|0,(f2[k3+4>>2]|0)==0)&&(f2[k3>>2]|0)==(i3|0)&&(s2[k3+48>>1]=(t2[551]|0)+1),e2=s2[551]|0,e2<<16>>16==1024){c3=159;break e}i3=f2[141]|0,c3=f2[143]|0,f2[c3+((e2&65535)<<3)>>2]=3,s2[551]=e2+1<<16>>16,f2[c3+((e2&65535)<<3)+4>>2]=i3,E(),c3=165;break}default:(a3&65535)>127&a3<<16>>16!=160|(a3<<16>>16==92|(a3<<16>>16==95|(a3<<16>>16==36|((a3+-48&65535)<10|((a3|32)+-97&65535)<26))))?c3=162:c3=165}while(!1);a:do if((c3|0)==162)for(e2=f2[145]|0;;){if(e2=e2+2|0,c3=s2[e2>>1]|0,!((c3&65535)>127&c3<<16>>16!=160|(c3<<16>>16==92|(c3<<16>>16==95|(c3<<16>>16==36|((c3+-48&65535)<10|((c3|32)+-97&65535)<26)))))){c3=165;break a}f2[145]=e2}while(!1);(c3|0)==165&&(c3=0,f2[141]=f2[145]),e2=f2[145]|0}if((c3|0)==59){je(),e2=0;break}else if((c3|0)==62){je(),e2=0;break}else if((c3|0)==72){je(),e2=0;break}else if((c3|0)==87){je(),e2=0;break}else if((c3|0)==98){je(),e2=0;break}else if((c3|0)==101){je(),e2=0;break}else if((c3|0)==110){je(),e2=0;break}else if((c3|0)==159){je(),e2=0;break}else if((c3|0)==166){if(!((r2[1105]|0)==0&&(s2[550]|s2[551])<<16>>16==0)){e2=0;break}if(f2[133]|0&&(A2(),r2[1105]|0)){e2=0;break}e2=1;break}}while(!1);return b2=d3,e2|0}function l3(){var e2=0,a3=0,i3=0,c3=0,t3=0,b3=0,k3=0,l4=0,u3=0,o4=0,d3=0,v3=0,p3=0,m3=0;d3=f2[145]|0,m3=f2[130]|0,f2[145]=d3+12,e2=D(1)|0,i3=f2[145]|0,(i3|0)==(d3+12|0)&&!(se(e2)|0)?e2=0:u3=3;e:do if((u3|0)==3){f2[131]=d3;a:do switch(e2<<16>>16){case 116:{if((s2[i3>>1]|0)==116&&(re(i3+2|0,234,6)|0)==0){if(a3=s2[i3+8>>1]|0,!(Ce(a3)|0))switch(a3<<16>>16){case 42:case 47:case 123:break;default:{u3=12;break a}}switch(f2[145]=i3+8,e2=D(1)|0,e2<<16>>16){case 42:case 123:{o4=1,u3=13;break a}default:}if(f2[145]=i3,y2(0)|0){e2=1;break e}r2[1108]=0,e2=0;break e}else u3=12;break}case 105:{if(y2(0)|0){e2=1;break e}else u3=12;break}default:o4=0,u3=13}while(!1);a:do if((u3|0)==12)r2[1108]=0,u3=55;else if((u3|0)==13){i:do switch(e2<<16>>16){case 123:{for(f2[145]=(f2[145]|0)+2,e2=D(1)|0;;){r:do if(o4)c3=1;else if(e2<<16>>16==116)if(c3=f2[145]|0,(s2[c3>>1]|0)==116&&(re(c3+2|0,234,6)|0)==0){if(e2=s2[c3+8>>1]|0,!(Ce(e2)|0))switch(e2<<16>>16){case 42:case 47:case 123:break;default:{c3=0,e2=116;break r}}f2[145]=c3+8,e2=D(1)|0;s:do switch(e2<<16>>16){case 97:{if(i3=f2[145]|0,(s2[i3+2>>1]|0)!=115){c3=1,e2=97;break r}if(!(ve(s2[i3+4>>1]|0)|0)){c3=1,e2=97;break r}if(f2[145]=i3+4,e2=D(1)|0,e2<<16>>16!=97)switch(f2[145]=i3,e2<<16>>16){case 44:case 125:{c3=1,e2=97;break r}default:break s}if(e2=f2[145]|0,(s2[e2+2>>1]|0)==115&&ve(s2[e2+4>>1]|0)|0){f2[145]=e2+4,a3=D(1)|0;f:do if(a3<<16>>16==92|(a3+-48&65535)<10)e2=1;else{c:do if(((a3&-33)+-65&65535)>=26){switch(a3<<16>>16){case 36:case 92:case 95:break c;default:}e2=(a3&65535)<128;break f}while(!1);f2[145]=i3,c3=1,e2=97;break r}while(!1);if(f2[145]=i3,a3<<16>>16!=92&e2)break s;c3=1,e2=97;break r}f2[145]=i3;break}case 44:case 125:break;default:{c3=1;break r}}while(!1);f2[145]=c3,c3=0,e2=116}else c3=0,e2=116;else c3=0;while(!1);if(i3=f2[145]|0,Qe(e2)|0?(K(e2),e2=(f2[145]|0)+2|0,f2[145]=e2):(X(e2)|0,e2=f2[145]|0),D(1)|0,u3=f2[130]|0,e2=V(i3,e2)|0,a3=f2[130]|0,(a3|0)==(u3|0)|c3&(a3|0)!=0^1||(r2[a3+25>>0]=r2[a3+25>>0]|4),e2<<16>>16==44&&(f2[145]=(f2[145]|0)+2,e2=D(1)|0),e2<<16>>16==125){u3=46;break}if(u3=f2[145]|0,(u3|0)==(i3|0)|u3>>>0>(f2[146]|0)>>>0){u3=45;break}}if((u3|0)==45){je(),e2=0;break e}else if((u3|0)==46){r2[1106]=1,f2[145]=(f2[145]|0)+2,a3=D(1)|0,i3=0,c3=1,t3=0;break i}break}case 42:{t3=f2[145]|0,f2[145]=t3+2,D(1)|0,a3=f2[145]|0,V(a3,a3)|0,a3=D(1)|0,i3=(f2[130]|0)==(m3|0),c3=0;break}default:switch(r2[1108]=0,e2<<16>>16){case 100:{if(e2=f2[145]|0,re(e2+2|0,382,12)|0){u3=58;break a}if(m3=s2[e2+14>>1]|0,!(m3<<16>>16==47|(Ce(m3)|0))){u3=58;break a}f2[145]=e2+14,h2(),e2=1;break e}case 97:{if(e2=f2[145]|0,re(e2,334,16)|0){u3=78;break a}if(m3=s2[e2+16>>1]|0,!(m3<<16>>16==47|(Ce(m3)|0))){u3=78;break a}f2[145]=e2+16,e2=D(1)|0,u3=55;break a}default:{u3=55;break a}}}while(!1);i:do if(o4)for(e2=(m3|0)==0?500:m3+32|0;;){if(e2=f2[e2>>2]|0,!e2)break i;r2[e2+25>>0]=r2[e2+25>>0]|4,e2=e2+32|0}while(!1);if(a3<<16>>16==102&&(v3=f2[145]|0,(re(v3+2|0,42,6)|0)==0)){if(f2[145]=v3+8,w2(d3,D(1)|0,0),r2[1105]|0){e2=0;break e}for(i3?(f2[(f2[128]|0)+28>>2]=8,Z(t3,t3+2|0,0,0),e2=f2[130]|0,r2[e2+24>>0]=3,o4&&(r2[e2+25>>0]=r2[e2+25>>0]|4,u3=107)):u3=107,(u3|0)==107&&(p3=f2[128]|0,o4&(p3|0)!=0)&&(r2[p3+25>>0]=1),a3=(f2[132]|0)+-1|0,e2=(m3|0)==0?500:m3+32|0;;){if(e2=f2[e2>>2]|0,!e2){e2=0;break e}f2[e2+20>>2]=a3,(r2[e2+24>>0]|0)!=3&&(r2[e2+24>>0]=2,r2[e2+25>>0]=((f2[e2+8>>2]|0)==0?2:0)|r2[e2+25>>0]&4),e2=e2+32|0}}i:do if(c3)for(e2=(m3|0)==0?500:m3+32|0;;){if(e2=f2[e2>>2]|0,!e2)break i;r2[e2+24>>0]=4,f2[133]=(f2[133]|0)+1,e2=e2+32|0}while(!1);f2[145]=(f2[145]|0)+-2,e2=0;break e}while(!1);a:do if((u3|0)==55){switch(e2<<16>>16){case 100:{u3=58;break a}case 97:{u3=78;break a}case 102:break a;case 110:case 101:{if(I(e2)|0){e2=0;break e}switch(e2<<16>>16){case 102:break a;case 108:break;default:{e2=0;break e}}break}case 99:{if(e2=f2[145]|0,(re(e2+2|0,34,8)|0)==0&&ve(s2[e2+10>>1]|0)|0){f2[145]=e2+10,e2=D(1)|0,m3=f2[145]|0,R(e2)|0,e2=f2[145]|0,Z(m3,e2,m3,e2),f2[145]=(f2[145]|0)+-2,e2=0;break e}f2[145]=e2+4;break}case 108:case 118:break;default:{e2=0;break e}}switch(f2[145]=(f2[145]|0)+6,r2[1108]=0,e2=D(1)|0,e2<<16>>16){case 110:case 101:{if(I(e2)|0){e2=0;break e}break}default:}i:for(;;){if(a3=f2[145]|0,a3>>>0>(f2[146]|0)>>>0){e2=a3,u3=96;break}if(e2=le(e2)|0,(f2[145]|0)==(a3|0)){e2=a3,u3=96;break}switch(e2<<16>>16){case 58:{u3=92;break i}case 61:{a3=n2(1)|0;break}default:a3=e2}if(e2=f2[145]|0,a3<<16>>16!=44){u3=96;break}f2[145]=e2+2,e2=D(1)|0}if((u3|0)==92){f2[142]=1,e2=0;break e}else if((u3|0)==96){f2[145]=e2+-2,e2=0;break e}}while(!1);if((u3|0)==58){switch(i3=f2[145]|0,f2[145]=i3+14,(D(1)|0)<<16>>16){case 105:{if(a3=f2[130]|0,y2(0)|0)if(e2=f2[130]|0,(e2|0)==(a3|0)){Z(i3,i3+14|0,0,0),e2=(f2[130]|0)+25|0,r2[e2>>0]=r2[e2>>0]|4,e2=1;break e}else{f2[e2>>2]=i3,f2[(f2[130]|0)+4>>2]=i3+14,e2=1;break e}break}case 97:{e2=f2[145]|0,(re(e2+2|0,192,8)|0)==0&&xe(s2[e2+10>>1]|0)|0&&(f2[145]=e2+10,D(0)|0,u3=66);break}case 102:{u3=66;break}case 99:{e2=f2[145]|0,(re(e2+2|0,34,8)|0)==0&&(m3=s2[e2+10>>1]|0,Ce(m3)|0|m3<<16>>16==123)&&(f2[145]=e2+10,c3=D(1)|0,c3<<16>>16!=123)&&(l4=c3,u3=75);break}default:}a:do if((u3|0)==66&&(t3=f2[145]|0,(re(t3+2|0,200,14)|0)==0)){if(e2=s2[t3+16>>1]|0,!(Ce(e2)|0))switch(e2<<16>>16){case 40:case 42:break;default:break a}f2[145]=t3+16,e2=D(1)|0,e2<<16>>16==42&&(f2[145]=(f2[145]|0)+2,e2=D(1)|0),e2<<16>>16!=40&&(l4=e2,u3=75)}while(!1);if((u3|0)==75&&(b3=f2[145]|0,R(l4)|0,k3=f2[145]|0,k3>>>0>b3>>>0)){Z(i3,i3+14|0,b3,k3),f2[145]=(f2[145]|0)+-2,e2=0;break}Z(i3,i3+14|0,0,0),f2[145]=i3+12,e2=0;break}else(u3|0)==78&&(f2[145]=(f2[145]|0)+10,D(0)|0);f2[145]=(f2[145]|0)+16,e2=D(1)|0,e2<<16>>16==42&&(f2[145]=(f2[145]|0)+2,e2=D(1)|0),m3=f2[145]|0,R(e2)|0,e2=f2[145]|0,Z(m3,e2,m3,e2),f2[145]=(f2[145]|0)+-2,e2=0}while(!1);return e2|0}function n2(e2){e2=e2|0;var a3=0,i3=0,c3=0,t3=0,b3=0,k3=0,n3=0,o4=0,h3=0,w3=0,d3=0,p3=0,A3=0,C2=0,x2=0;d3=s2[551]|0,a3=f2[145]|0,f2[141]=a3,h3=a3,n3=d3,w3=0;e:for(;;){for(i3=f2[146]|0,t3=n3<<16>>16==d3<<16>>16,c3=w3&e2,k3=a3;;){if(b3=k3+2|0,k3>>>0>=i3>>>0){a3=0,o4=153;break e}if(a3=s2[b3>>1]|0,!(xe(a3)|0)){if(t3){switch(a3<<16>>16){case 125:case 93:case 41:case 59:case 44:{o4=153;break e}default:}if(c3&&Re(a3)|0){o4=153;break e}}if(!(Re(a3)|0))break}k3=b3}f2[145]=b3;a:do switch(a3<<16>>16){case 101:{n3<<16>>16==0&&Ee(b3)|0&&(re(k3+4|0,16,10)|0)==0?l3()|0?f2[141]=232:o4=143:o4=140;break}case 105:switch(s2[k3+4>>1]|0){case 109:{if(!(Ee(b3)|0)){o4=140;break a}if(re(k3+6|0,26,8)|0){o4=140;break a}u2(),o4=143;break a}case 110:{if(!(Ee(b3)|0)){o4=140;break a}if(!(y2(1)|0)){o4=140;break a}f2[141]=232;break a}default:{o4=140;break a}}case 99:{(s2[k3+4>>1]|0)==108&&Ee(b3)|0&&(re(k3+6|0,36,6)|0)==0&&Ce(s2[k3+12>>1]|0)|0&&(r2[1110]=1),o4=140;break}case 116:{(s2[k3+4>>1]|0)==121&&Ee(b3)|0&&y2(1)|0?f2[141]=232:o4=140;break}case 100:{(s2[k3+4>>1]|0)==101&&Ee(b3)|0&&g()|0?f2[141]=232:o4=140;break}case 40:if(n3<<16>>16==1024){je();break a}else{o4=n3&65535,k3=f2[143]|0,f2[k3+(o4<<3)>>2]=1,s2[551]=n3+1<<16>>16,f2[k3+(o4<<3)+4>>2]=h3,o4=143;break a}case 91:if(n3<<16>>16==1024){je();break a}else{o4=n3&65535,k3=f2[143]|0,f2[k3+(o4<<3)>>2]=8,s2[551]=n3+1<<16>>16,f2[k3+(o4<<3)+4>>2]=h3,o4=143;break a}case 60:{i3=(f2[142]|0)+1|0,i3>>>0>1&&(f2[142]=i3),o4=143;break}case 62:{switch(i3=f2[142]|0,i3|0){case 0:case 1:case-1:{o4=143;break a}default:}(s2[k3>>1]|0)==61||(f2[142]=i3+-1),o4=143;break}case 61:{n3<<16>>16==0&(f2[142]|0)==1&&(s2[k3+4>>1]|0)!=62&&(f2[142]=-1),o4=143;break}case 93:if(n3<<16>>16){s2[551]=n3+-1<<16>>16,o4=143;break a}else{je();break a}case 44:{if(i3=s2[550]|0,c3=n3<<16>>16==0,!(c3|i3<<16>>16==0)&&(f2[(f2[143]|0)+((n3&65535)+-1<<3)>>2]|0)==5){if(i3=f2[(f2[144]|0)+((i3&65535)+-1<<2)>>2]|0,f2[i3+4>>2]|0){o4=143;break a}f2[i3+4>>2]=h3+2,(f2[i3+44>>2]|0)!=(h3|0)&&(f2[i3+36>>2]=0),f2[145]=k3+4,D(1)|0,o4=f2[145]|0,f2[i3+16>>2]=o4,f2[145]=o4+-2,o4=143;break a}switch(f2[142]|0){case 1:case-1:break;default:{o4=143;break a}}c3&&G(),o4=143;break}case 59:{n3<<16>>16==0&(f2[142]|0)!=0&&(f2[142]=0),o4=143;break}case 41:{if(!(n3<<16>>16)){je();break a}o4=n3+-1<<16>>16,s2[551]=o4,i3=s2[550]|0,i3<<16>>16!=0&&(f2[(f2[143]|0)+((o4&65535)<<3)>>2]|0)==5&&(i3=f2[(f2[144]|0)+((i3&65535)+-1<<2)>>2]|0,(f2[i3+4>>2]|0)==0&&(f2[i3+4>>2]=h3+2,(f2[i3+44>>2]|0)!=(h3|0))&&(f2[i3+36>>2]=0),f2[i3+12>>2]=k3+4,v2(i3),s2[550]=(s2[550]|0)+-1<<16>>16),o4=143;break}case 123:if(k3=f2[128]|0,(s2[h3>>1]|0)==41&(k3|0)!=0&&(f2[k3+12>>2]|0)==(h3+2|0)&&(k3=f2[129]|0,f2[128]=k3,f2[((k3|0)==0?496:k3+52|0)>>2]=0,f2[132]=(f2[132]|0)+-1),n3<<16>>16==1024){je();break a}else{o4=n3&65535,k3=f2[143]|0,f2[k3+(o4<<3)>>2]=(r2[1110]|0)==0?2:6,s2[551]=n3+1<<16>>16,f2[k3+(o4<<3)+4>>2]=h3,r2[1110]=0,o4=143;break a}case 125:{if(!(n3<<16>>16)){je();break a}o4=f2[143]|0,c3=n3+-1<<16>>16,s2[551]=c3,(f2[o4+((c3&65535)<<3)>>2]|0)==4&&(i3=s2[550]|0,i3<<16>>16&&(p3=f2[(f2[144]|0)+((i3&65535)+-1<<2)>>2]|0,(s2[p3+48>>1]|0)==c3<<16>>16)&&(qe(8),o4=f2[136]|0,f2[136]=o4+8,f2[o4>>2]=(f2[145]|0)+2,f2[o4+4>>2]=0,n3=f2[p3+40>>2]|0,f2[((n3|0)==0?p3+36|0:n3+4|0)>>2]=o4,f2[p3+40>>2]=o4),E()),o4=143;break}case 34:case 39:{K(a3),o4=143;break}case 92:{if(i3=fe()|0,i3)if((i3|0)<0){je();break a}else{f2[141]=b3;break a}else o4=140;break}case 47:{switch(s2[k3+4>>1]|0){case 47:{de();break}case 42:{H(1);break}default:{c3=s2[h3>>1]|0;i:do if(!(ce(c3)|0))c3<<16>>16==41&&Ae(f2[(f2[143]|0)+((n3&65535)<<3)+4>>2]|0)|0||(o4=101);else switch(c3<<16>>16){case 46:if(((s2[h3+-2>>1]|0)+-48&65535)<10){o4=101;break i}else break i;case 43:if((s2[h3+-2>>1]|0)==43){o4=101;break i}else break i;case 45:if((s2[h3+-2>>1]|0)==45){o4=101;break i}else break i;default:break i}while(!1);i:do if((o4|0)==101){if(o4=0,n3<<16>>16!=0&&(A3=f2[143]|0,x2=(n3&65535)+-1|0,c3<<16>>16==102?(f2[A3+(x2<<3)>>2]|0)==1:0)){if((s2[h3+-2>>1]|0)==111&&L(h3+-4|0)|0&&ke(f2[A3+(x2<<3)+4>>2]|0,136,3)|0)break}else o4=106;if((o4|0)==106&&c3<<16>>16==125&&(t3=f2[143]|0,i3=n3&65535,ae(f2[t3+(i3<<3)+4>>2]|0)|0||(f2[t3+(i3<<3)>>2]|0)==6))break;if(!(m2(h3)|0)){switch(c3<<16>>16){case 0:break i;case 47:{if(r2[1109]|0)break i;break}default:}if(o4=f2[130]|0,o4|0&&h3>>>0>=(f2[o4>>2]|0)>>>0&&h3>>>0<=(f2[o4+4>>2]|0)>>>0){ee(),r2[1109]=0,o4=143;break a}t3=f2[120]|0,i3=h3;do{if(i3>>>0<=t3>>>0)break;i3=i3+-2|0,f2[141]=i3,c3=s2[i3>>1]|0}while(!(ve(c3)|0));if(xe(c3)|0){do{if(i3>>>0<=t3>>>0)break;i3=i3+-2|0,f2[141]=i3}while(xe(s2[i3>>1]|0)|0);if(ne(i3)|0){ee(),r2[1109]=0,o4=143;break a}}r2[1109]=1,o4=143;break a}}while(!1);ee(),r2[1109]=0,o4=143;break a}}if((f2[142]|0)!=0&(s2[551]|0)==0){for(c3=f2[145]|0,i3=b3;;){if(i3>>>0>c3>>>0)break a;if(Re(s2[i3>>1]|0)|0)break;i3=i3+2|0}n3=Re(s2[c3>>1]|0)|0,B(n3?c3:c3+2|0)}break}case 96:if(i3=s2[550]|0,i3<<16>>16&&(C2=f2[(f2[144]|0)+((i3&65535)+-1<<2)>>2]|0,(f2[C2+4>>2]|0)==0)&&(f2[C2>>2]|0)==(b3|0)&&(s2[C2+48>>1]=(n3&65535)+1),n3<<16>>16==1024){je();break a}else{o4=n3&65535,k3=f2[143]|0,f2[k3+(o4<<3)>>2]=3,s2[551]=n3+1<<16>>16,f2[k3+(o4<<3)+4>>2]=h3,E(),o4=143;break a}default:(a3&65535)>127&a3<<16>>16!=160|(a3<<16>>16==92|(a3<<16>>16==95|(a3<<16>>16==36|((a3+-48&65535)<10|((a3|32)+-97&65535)<26))))?o4=140:o4=143}while(!1);a:do if((o4|0)==140)for(i3=f2[145]|0;;){if(i3=i3+2|0,o4=s2[i3>>1]|0,!((o4&65535)>127&o4<<16>>16!=160|(o4<<16>>16==92|(o4<<16>>16==95|(o4<<16>>16==36|((o4+-48&65535)<10|((o4|32)+-97&65535)<26)))))){o4=143;break a}f2[145]=i3}while(!1);if((o4|0)==143&&(o4=0,f2[141]=f2[145]),r2[1105]|0){a3=0;break}if(c3=f2[141]|0,(c3|0)==(h3|0))if(a3=s2[551]|0,w3&(a3<<16>>16==d3<<16>>16&e2)){if(a3=s2[f2[145]>>1]|0,Re(a3)|0)break;a3=d3,i3=1}else i3=w3;else a3<<16>>16==47?i3=(r2[1109]^1)&255:i3=(a3<<16>>16==96|(a3<<16>>16==34|(a3<<16>>16==39|((a3|32)<<16>>16==125|(a3<<16>>16==41|(ye(a3)|0))))))&1,a3=s2[551]|0,i3=(i3|0)!=0;h3=c3,n3=a3,w3=i3,a3=f2[145]|0}return(o4|0)==153&&(f2[145]=b3),a3|0}function u2(){var e2=0,a3=0,i3=0,c3=0,t3=0,b3=0,k3=0,l4=0,n3=0,u3=0,o4=0;u3=f2[145]|0,f2[145]=u3+12,e2=D(1)|0;e:do if(e2<<16>>16==116)if(i3=f2[145]|0,(s2[i3>>1]|0)==116&&(re(i3+2|0,234,6)|0)==0){if(e2=s2[i3+8>>1]|0,!(Ce(e2)|0))switch(e2<<16>>16){case 42:case 47:case 123:break;default:{e2=116,a3=1,i3=0,c3=0,o4=77;break e}}switch(f2[145]=i3+8,e2=D(1)|0,e2<<16>>16){case 102:{if(e2=f2[145]|0,re(e2+2|0,42,6)|0){e2=102,a3=1,i3=0,c3=1,o4=77;break e}if(a3=s2[e2+8>>1]|0,!(Ce(a3)|0)&&!(a3<<16>>16==47|(Qe(a3)|0))){e2=102,a3=1,i3=0,c3=1,o4=77;break e}if(f2[145]=e2+8,o4=Qe(D(1)|0)|0,f2[145]=e2,!o4){e2=102,a3=1,i3=0,c3=1,o4=77;break e}break}case 44:case 61:break;default:{c3=1,o4=12;break e}}f2[145]=i3,e2=116,a3=1,i3=0,c3=0,o4=77}else e2=116,a3=1,i3=0,c3=0,o4=77;else c3=0,o4=12;while(!1);e:do if((o4|0)==12){i3=f2[145]|0;a:do if(e2<<16>>16==46)switch(f2[145]=i3+2,(D(1)|0)<<16>>16){case 109:{if(e2=f2[145]|0,re(e2+2|0,48,6)|0||(a3=f2[141]|0,!(Se(a3)|0)&&(s2[a3>>1]|0)==46))break e;q(u3,u3,e2+8|0,2);break e}case 115:{if(e2=f2[145]|0,re(e2+2|0,214,10)|0||(a3=f2[141]|0,!(Se(a3)|0)&&(s2[a3>>1]|0)==46))break e;f2[145]=e2+12,e2=D(1)|0,t3=1,o4=40;break a}case 100:{if(e2=f2[145]|0,re(e2+2|0,224,8)|0||(a3=f2[141]|0,!(Se(a3)|0)&&(s2[a3>>1]|0)==46))break e;f2[145]=e2+10,e2=D(1)|0,t3=2,o4=40;break a}default:break e}else{do if(i3>>>0>(u3+12|0)>>>0&e2<<16>>16==115)if((re(i3+2|0,214,10)|0)==0&&Ce(s2[i3+12>>1]|0)|0){if(f2[145]=i3+12,e2=D(1)|0,a3=f2[145]|0,!(e2<<16>>16==44|(a3|0)==(i3+12|0))){if(e2<<16>>16!=102){t3=1,o4=40;break a}if(re(a3+2|0,42,6)|0){e2=102,i3=1;break}if(!(ve(s2[a3+8>>1]|0)|0)){e2=102,i3=1;break}}f2[145]=i3,e2=s2[i3>>1]|0,t3=0,o4=40;break a}else e2=115,i3=0;else{if(!(i3>>>0>(u3+10|0)>>>0&e2<<16>>16==100)){t3=0,o4=40;break a}if((re(i3+2|0,224,8)|0)==0&&Ce(s2[i3+10>>1]|0)|0)if(f2[145]=i3+10,(D(1)|0)<<16>>16==42)e2=42,i3=2;else{f2[145]=i3,e2=s2[i3>>1]|0,t3=0,o4=40;break a}else e2=100,i3=0}while(!1);a3=(i3|0)==0}while(!1);do if((o4|0)==40){if(e2<<16>>16!=40){if(a3=(t3|0)==0,!(a3&e2<<16>>16==123)){i3=t3;break}if(e2=f2[145]|0,s2[551]|0){f2[145]=e2+-2;break e}if(f2[145]=e2+2,(ge(f2[132]|0,0)|0)<<16>>16!=125){je();break e}if(f2[145]=(f2[145]|0)+2,n3=(D(1)|0)<<16>>16==102,e2=f2[145]|0,n3&&re(e2+2|0,42,6)|0){je();break e}if(f2[145]=e2+8,e2=D(1)|0,!(Qe(e2)|0)){je();break e}if(w2(u3,e2,0),e2=f2[128]|0,!(c3&(e2|0)!=0))break e;r2[e2+25>>0]=1;break e}if(e2=s2[551]|0,e2<<16>>16==1024){je();break e}if(a3=f2[145]|0,n3=f2[143]|0,f2[n3+((e2&65535)<<3)>>2]=5,s2[551]=e2+1<<16>>16,f2[n3+((e2&65535)<<3)+4>>2]=a3,(s2[f2[141]>>1]|0)==46)break e;if((s2[550]|0)==512){je();break e}switch(f2[145]=a3+2,c3=D(1)|0,q(u3,f2[145]|0,0,a3),e2=f2[141]|0,a3=s2[e2>>1]|0,a3<<16>>16!=116?(i3=f2[128]|0,r2[i3+26>>0]=0,a3<<16>>16==102&&ke(e2,282,6)|0?(r2[i3+25>>0]=1,a3=i3,e2=i3):(a3=i3,e2=i3)):(a3=(ke(e2+-2|0,112,4)|0)&1,e2=f2[128]|0,r2[e2+26>>0]=a3,a3=e2),t3|0&&(f2[a3+28>>2]=(t3|0)==1?5:7),n3=f2[144]|0,u3=s2[550]|0,s2[550]=u3+1<<16>>16,f2[n3+((u3&65535)<<2)>>2]=e2,c3<<16>>16){case 39:{K(39);break}case 34:{K(34);break}case 96:{W()|0?r2[1111]|0&&(u3=(f2[128]|0)+24|0,r2[u3>>0]=r2[u3>>0]|2):o4=59;break}default:o4=59}if((o4|0)==59){f2[145]=(f2[145]|0)+-2;break e}switch(e2=(f2[145]|0)+2|0,f2[145]=e2,(D(1)|0)<<16>>16){case 44:{f2[145]=(f2[145]|0)+2,D(1)|0,n3=f2[128]|0,f2[n3+4>>2]=e2,u3=f2[145]|0,f2[n3+16>>2]=u3,r2[n3+24>>0]=r2[n3+24>>0]|1,f2[145]=u3+-2;break e}case 41:{s2[551]=(s2[551]|0)+-1<<16>>16,u3=f2[128]|0,f2[u3+4>>2]=e2,f2[u3+12>>2]=(f2[145]|0)+2,r2[u3+24>>0]=r2[u3+24>>0]|1,v2(u3),s2[550]=(s2[550]|0)+-1<<16>>16;break e}default:{f2[145]=(f2[145]|0)+-2;break e}}}while(!1);switch(e2<<16>>16){case 42:case 39:case 34:{t3=i3,o4=79;break}default:o4=77}}while(!1);(o4|0)==77&&((f2[145]|0)==(u3+12|0)?f2[145]=u3+10:(t3=i3,o4=79));e:do if((o4|0)==79){if(!(((t3|0)!=2|e2<<16>>16==42)&(s2[551]|0)==0)){f2[145]=(f2[145]|0)+-2;break}a:do if(a3&&!(e2<<16>>16==92|(e2+-48&65535)<10)){i:do if(((e2&-33)+-65&65535)>=26){switch(e2<<16>>16){case 36:case 92:case 95:break i;default:}if((e2&65535)<=127)break a}while(!1);if(a3=f2[145]|0,X(e2)|0,(f2[145]|0)!=(a3|0)){if((D(1)|0)<<16>>16==61&&(l4=(f2[145]|0)+2|0,(s2[l4>>1]|0)!=61)){f2[145]=l4;i:do if((D(1)|0)<<16>>16==114&&(b3=f2[145]|0,(re(b3+2|0,446,12)|0)==0)&&(k3=s2[b3+14>>1]|0,!((k3+-48&65535)<10|((k3&-33)+-65&65535)<26))){switch(k3<<16>>16){case 36:case 92:case 95:break i;default:}if((k3&65535)<=127){if(f2[145]=b3+14,(D(1)|0)<<16>>16==40&&(f2[145]=(f2[145]|0)+2,n3=D(1)|0,Qe(n3)|0)){if(w2(u3,n3,0),r2[1105]|0||(e2=f2[128]|0,c3&(e2|0)!=0&&(r2[e2+25>>0]=1),f2[145]=(f2[145]|0)+2,(D(1)|0)<<16>>16==41))break e;f2[145]=(f2[145]|0)+-2;break e}f2[145]=b3}}while(!1);C(1,0),f2[145]=(f2[145]|0)+-2;break e}f2[145]=a3,e2=s2[a3>>1]|0}}while(!1);for(Qe(e2)|0||T(e2,t3,f2[132]|0,0),e2=f2[146]|0,a3=f2[145]|0;;){if(a3>>>0>=e2>>>0){o4=112;break}if(i3=s2[a3>>1]|0,Qe(i3)|0)break;n3=a3+2|0,f2[145]=n3,a3=n3}if((o4|0)==112){je();break}w2(u3,i3,t3),e2=f2[128]|0,c3&(e2|0)!=0&&(r2[e2+25>>0]=1)}while(!1)}function o3(e2,a3){e2=e2|0,a3=a3|0;var i3=0,r3=0,c3=0,t3=0,b3=0,k3=0,l4=0;e:for(;;){for(i3=D(1)|0;;){if(i3<<16>>16==125){i3=125;break e}if(t3=f2[145]|0,t3>>>0>(f2[146]|0)>>>0)break e;a:do if(a3)b3=1;else if(i3<<16>>16==116)if((s2[t3>>1]|0)==116&&(re(t3+2|0,234,6)|0)==0){if(i3=s2[t3+8>>1]|0,!(Ce(i3)|0))switch(i3<<16>>16){case 42:case 47:case 123:break;default:{b3=0,i3=116;break a}}switch(f2[145]=t3+8,i3=D(1)|0,i3<<16>>16){case 97:{l4=13;break}case 44:case 125:break;default:{t3=f2[145]|0,b3=1;break a}}i:do if((l4|0)==13){if(l4=0,c3=f2[145]|0,(s2[c3+2>>1]|0)!=115){t3=c3,b3=1,i3=97;break a}if(!(ve(s2[c3+4>>1]|0)|0)){t3=c3,b3=1,i3=97;break a}if(f2[145]=c3+4,i3=D(1)|0,i3<<16>>16!=97)switch(f2[145]=c3,i3<<16>>16){case 44:case 125:{t3=c3,b3=1,i3=97;break a}default:break i}if(i3=f2[145]|0,(s2[i3+2>>1]|0)==115&&ve(s2[i3+4>>1]|0)|0){f2[145]=i3+4,r3=D(1)|0;r:do if(r3<<16>>16==92|(r3+-48&65535)<10)i3=1;else{s:do if(((r3&-33)+-65&65535)>=26){switch(r3<<16>>16){case 36:case 92:case 95:break s;default:}i3=(r3&65535)<128;break r}while(!1);f2[145]=c3,t3=c3,b3=1,i3=97;break a}while(!1);if(f2[145]=c3,r3<<16>>16!=92&i3)break;t3=c3,b3=1,i3=97;break a}f2[145]=c3}while(!1);f2[145]=t3,b3=0,i3=116}else b3=0,i3=116;else b3=0;while(!1);if(Qe(i3)|0)K(i3),i3=(f2[145]|0)+2|0,f2[145]=i3;else if(X(i3)|0,i3=f2[145]|0,(i3|0)==(t3|0)){i3=t3;break}do if((D(1)|0)<<16>>16==97&&(k3=f2[145]|0,(s2[k3+2>>1]|0)==115)){r3=s2[k3+4>>1]|0;a:do if((r3+-48&65535)<10|((r3&-33)+-65&65535)<26)l4=35;else{switch(r3<<16>>16){case 36:case 92:case 95:{l4=35;break a}default:}(r3&65535)>127&&(l4=35)}while(!1);if((l4|0)==35&&(l4=0,!(Ce(r3)|0))){r3=i3,c3=t3;break}f2[145]=k3+4,r3=D(1)|0,c3=f2[145]|0,X(r3)|0,r3=f2[145]|0}else r3=i3,c3=t3;while(!1);if(z(c3,r3,t3,i3,0,e2,b3),i3=D(1)|0,i3<<16>>16==44){l4=38;break}}(l4|0)==38&&(l4=0,i3=f2[145]|0),f2[145]=i3+2}return i3|0}function h2(){var e2=0,a3=0,i3=0,c3=0,t3=0,b3=0;if(e2=D(1)|0,!(y2(0)|0)){t3=0,a3=0,c3=0,i3=1;e:for(;;){if(!i3){b3=33;break}a:do switch(e2<<16>>16){case 110:case 101:{if(I(e2)|0){b3=7;break e}switch(e2<<16>>16){case 109:{b3=29;break}case 102:{b3=26;break}case 108:{b3=18;break}default:i3=0}break}case 97:{e2=f2[145]|0,(re(e2,334,16)|0)==0&&(i3=s2[e2+16>>1]|0,i3<<16>>16==47|(Ce(i3)|0))?(f2[145]=e2+16,e2=t3,i3=c3,b3=32):(e2=97,i3=0);break}case 99:{if(e2=f2[145]|0,(re(e2+2|0,34,8)|0)==0&&(i3=s2[e2+10>>1]|0,i3<<16>>16==47|(Ce(i3)|0))){f2[145]=e2+10,e2=0,a3=1,i3=c3,b3=32;break a}(re(e2+2|0,428,8)|0)==0&&(i3=s2[e2+10>>1]|0,i3<<16>>16==47|(Ce(i3)|0))?(f2[145]=e2+10,e2=1,i3=c3,b3=32):(e2=99,i3=0);break}case 108:{b3=18;break}case 118:{e2=f2[145]|0,(s2[e2+2>>1]|0)==97&&(s2[e2+4>>1]|0)==114&&(i3=s2[e2+6>>1]|0,i3<<16>>16==47|(Ce(i3)|0))?(f2[145]=e2+6,e2=1,i3=c3,b3=32):(e2=118,i3=0);break}case 102:{b3=26;break}case 109:{b3=29;break}default:i3=0}while(!1);(b3|0)==18?(b3=0,e2=f2[145]|0,(s2[e2+2>>1]|0)==101&&(s2[e2+4>>1]|0)==116&&(i3=s2[e2+6>>1]|0,i3<<16>>16==47|(Ce(i3)|0))?(f2[145]=e2+6,e2=1,i3=c3,b3=32):(e2=108,i3=0)):(b3|0)==26?(b3=0,e2=f2[145]|0,(re(e2+2|0,200,14)|0)==0&&(i3=s2[e2+16>>1]|0,i3<<16>>16==47|(Ce(i3)|0))?(f2[145]=e2+16,e2=t3,i3=1,b3=32):(e2=102,i3=0)):(b3|0)==29&&(b3=0,e2=f2[145]|0,(re(e2+2|0,436,10)|0)==0&&(i3=s2[e2+12>>1]|0,i3<<16>>16==47|(Ce(i3)|0))?(f2[145]=e2+12,e2=t3,a3=1,i3=c3,b3=32):(e2=109,i3=0)),(b3|0)==32&&(b3=0,t3=e2,e2=D(1)|0,c3=i3,i3=1)}do if((b3|0)==7)b3=(f2[130]|0)+25|0,r2[b3>>0]=r2[b3>>0]|4,b3=(f2[145]|0)+2|0,f2[145]=b3,N(s2[b3>>1]|0);else if((b3|0)==33){if(t3){M(e2);break}e:do if(!(e2<<16>>16==92|(e2+-48&65535)<10)){a:do if(((e2&-33)+-65&65535)>=26){switch(e2<<16>>16){case 36:case 92:case 95:break a;default:}if((e2&65535)<=127)break e}while(!1);b3=f2[145]|0,R(e2)|0,e2=f2[145]|0,Z(b3,e2,b3,e2),e2=(f2[130]|0)+25|0,r2[e2>>0]=r2[e2>>0]|4,e2=s2[f2[145]>>1]|0}while(!1);if(a3){N(e2);break}else{C(c3,0);break}}while(!1);f2[145]=(f2[145]|0)+-2}}function w2(e2,a3,i3){e2=e2|0,a3=a3|0,i3=i3|0;var r3=0,c3=0,t3=0,b3=0,k3=0;switch(r3=(f2[145]|0)+2|0,a3<<16>>16){case 39:{K(39),c3=5;break}case 34:{K(34),c3=5;break}default:je()}do if((c3|0)==5){if(q(e2,r3,f2[145]|0,1),(i3|0)>0&&(f2[(f2[128]|0)+28>>2]=(i3|0)==1?4:6),f2[145]=(f2[145]|0)+2,b3=(D(0)|0)<<16>>16==119,t3=f2[145]|0,b3&&(s2[t3+2>>1]|0)==105&&(s2[t3+4>>1]|0)==116&&(s2[t3+6>>1]|0)==104){if(f2[145]=t3+8,(D(1)|0)<<16>>16!=123){f2[145]=t3;break}b3=f2[145]|0,r3=b3,c3=0;e:for(;;){f2[145]=r3+2,r3=D(1)|0;do if(r3<<16>>16!=39)if(a3=f2[145]|0,r3<<16>>16==34){K(34),e2=(f2[145]|0)+2|0,f2[145]=e2,r3=D(1)|0;break}else{r3=R(r3)|0,e2=f2[145]|0;break}else a3=f2[145]|0,K(39),e2=(f2[145]|0)+2|0,f2[145]=e2,r3=D(1)|0;while(!1);if(r3<<16>>16!=58){c3=21;break}switch(f2[145]=(f2[145]|0)+2,(D(1)|0)<<16>>16){case 39:{r3=f2[145]|0,K(39);break}case 34:{r3=f2[145]|0,K(34);break}default:{c3=25;break e}}switch(k3=(f2[145]|0)+2|0,qe(20),i3=f2[136]|0,f2[136]=i3+20,f2[i3>>2]=a3,f2[i3+4>>2]=e2,f2[i3+8>>2]=r3,f2[i3+12>>2]=k3,f2[i3+16>>2]=0,f2[((c3|0)==0?(f2[128]|0)+32|0:c3+16|0)>>2]=i3,f2[145]=(f2[145]|0)+2,(D(1)|0)<<16>>16){case 125:{c3=29;break e}case 44:break;default:{c3=27;break e}}r3=(f2[145]|0)+2|0,f2[145]=r3,c3=i3}if((c3|0)==21){f2[145]=t3;break}else if((c3|0)==25){f2[145]=t3;break}else if((c3|0)==27){f2[145]=t3;break}else if((c3|0)==29){k3=f2[128]|0,f2[k3+16>>2]=b3,f2[k3+12>>2]=(f2[145]|0)+2;break}}f2[145]=t3+-2}while(!1)}function d2(){var e2=0,a3=0,i3=0,r3=0,c3=0,t3=0,b3=0;e2=f2[145]|0,c3=(s2[e2>>1]|0)==123,f2[145]=e2+2,e2=D(1)|0,t3=c3?125:93;e:for(;!((t3|0)==(e2&65535|0)||(r3=f2[145]|0,r3>>>0>(f2[146]|0)>>>0));){e2<<16>>16==46&&(s2[r3+2>>1]|0)==46&&(s2[r3+4>>1]|0)==46?(f2[145]=r3+6,e2=le(D(1)|0)|0):b3=9;a:do if((b3|0)==9){b3=0;do if(c3){do if(e2<<16>>16==91)n2(0)|0,f2[145]=(f2[145]|0)+2,a3=r3;else{if(Qe(e2)|0){K(e2),f2[145]=(f2[145]|0)+2,a3=r3;break}if((e2+-48&65535)>=10){R(e2)|0,a3=f2[145]|0;break}e2=r3;i:for(;;){i3=e2+2|0,a3=s2[i3>>1]|0;r:do if((a3+-48&65535)>=10){switch(a3<<16>>16){case 67:case 68:case 70:case 97:case 65:case 99:case 100:case 102:case 46:case 66:case 69:case 79:case 88:case 95:case 98:case 101:case 110:case 111:case 120:break r;case 43:case 45:break;default:break i}switch(s2[e2>>1]|0){case 69:case 101:break;default:break i}}while(!1);e2=i3}f2[145]=i3,a3=r3}while(!1);if(e2=D(1)|0,e2<<16>>16==58){f2[145]=(f2[145]|0)+2,e2=le(D(1)|0)|0;break}a3>>>0>r3>>>0&&Z(r3,a3,r3,a3)}else if(e2<<16>>16==44){f2[145]=r3+2,e2=D(1)|0;break a}else{e2=le(e2)|0;break}while(!1);if(e2<<16>>16==61&&(e2=n2(0)|0),e2<<16>>16!=44)break e;f2[145]=(f2[145]|0)+2,e2=D(1)|0}while(!1)}}function v2(e2){e2=e2|0;var a3=0,i3=0,c3=0,t3=0,b3=0,k3=0;if((r2[e2+25>>0]|0)==0&&(r2[e2+26>>0]|0)==0){switch(k3=f2[145]|0,f2[145]=k3+2,(D(1)|0)<<16>>16){case 91:{if(f2[145]=(f2[145]|0)+2,t3=D(1)|0,Qe(t3)|0){c3=(f2[145]|0)+2|0,i3=f2[146]|0,b3=c3;e:for(;a3=s2[b3>>1]|0,!(b3>>>0>i3>>>0);){a:do if(!((a3+-48&65535)<10|((a3&-33)+-65&65535)<26)){switch(a3<<16>>16){case 36:case 92:case 95:break a;default:}if((a3&65535)<=127)break e}while(!1);if(!(a3<<16>>16!=92&((Ce(a3)|0)^1)))break;b3=b3+2|0}if(a3<<16>>16==t3<<16>>16&&(f2[145]=b3+2,(D(1)|0)<<16>>16==93)){switch(b3-c3>>1|0){case 4:{a3=(re(c3,350,8)|0)==0;break}case 5:{a3=(re(c3,358,10)|0)==0;break}case 7:{a3=(re(c3,368,14)|0)==0;break}default:a3=0}a3=a3^1}else a3=0}else a3=0;break}case 46:{f2[145]=(f2[145]|0)+2,D(1)|0,a3=f2[145]|0,i3=f2[146]|0,t3=a3;e:for(;!(t3>>>0>i3>>>0);){c3=s2[t3>>1]|0;a:do if(!((c3+-48&65535)<10|((c3&-33)+-65&65535)<26)){switch(c3<<16>>16){case 36:case 92:case 95:break a;default:}if((c3&65535)<=127)break e}while(!1);if(!(c3<<16>>16!=92&((Ce(c3)|0)^1)))break;t3=t3+2|0}if((t3|0)!=(a3|0)&&(s2[t3>>1]|0)!=92){switch(t3-a3>>1|0){case 4:{a3=(re(a3,350,8)|0)==0;break}case 5:{a3=(re(a3,358,10)|0)==0;break}case 7:{a3=(re(a3,368,14)|0)==0;break}default:a3=0}a3=a3^1}else a3=0;break}default:a3=0}f2[145]=k3,r2[e2+25>>0]=a3&1}}function p2(e2){e2=e2|0;e:do switch(e2<<16>>16){case 97:{e2=f2[145]|0,re(e2,334,16)|0?e2=0:(e2=s2[e2+16>>1]|0,e2=e2<<16>>16==47|(Ce(e2)|0));break}case 99:{if(e2=f2[145]|0,re(e2+2|0,34,8)|0&&re(e2+2|0,428,8)|0){e2=0;break e}e2=s2[e2+10>>1]|0,e2=e2<<16>>16==47|(Ce(e2)|0);break}case 101:{e2=f2[145]|0,re(e2+2|0,406,6)|0?e2=0:(e2=s2[e2+8>>1]|0,e2=e2<<16>>16==47|(Ce(e2)|0));break}case 102:{e2=f2[145]|0,re(e2+2|0,200,14)|0?e2=0:(e2=s2[e2+16>>1]|0,e2=e2<<16>>16==47|(Ce(e2)|0));break}case 103:{e2=f2[145]|0,re(e2+2|0,458,10)|0?e2=0:(e2=s2[e2+12>>1]|0,e2=e2<<16>>16==47|(Ce(e2)|0));break}case 105:{e2=f2[145]|0,(s2[e2>>1]|0)==105&&(re(e2+2|0,240,16)|0)==0?(e2=s2[e2+18>>1]|0,e2=e2<<16>>16==47|(Ce(e2)|0)):e2=0;break}case 108:{e2=f2[145]|0,(s2[e2+2>>1]|0)==101&&(s2[e2+4>>1]|0)==116?(e2=s2[e2+6>>1]|0,e2=e2<<16>>16==47|(Ce(e2)|0)):e2=0;break}case 109:{e2=f2[145]|0,re(e2+2|0,436,10)|0?e2=0:(e2=s2[e2+12>>1]|0,e2=e2<<16>>16==47|(Ce(e2)|0));break}case 110:{e2=f2[145]|0,re(e2+2|0,412,16)|0?e2=0:(e2=s2[e2+18>>1]|0,e2=e2<<16>>16==47|(Ce(e2)|0));break}case 116:{e2=f2[145]|0,(s2[e2>>1]|0)==116&&(re(e2+2|0,234,6)|0)==0?(e2=s2[e2+8>>1]|0,e2=e2<<16>>16==42|(e2<<16>>16==123|(e2<<16>>16==47|(Ce(e2)|0)))):e2=0;break}case 118:{e2=f2[145]|0,(s2[e2+2>>1]|0)==97&&(s2[e2+4>>1]|0)==114?(e2=s2[e2+6>>1]|0,e2=e2<<16>>16==47|(Ce(e2)|0)):e2=0;break}default:e2=0}while(!1);return e2|0}function y2(e2){e2=e2|0;var a3=0,i3=0,c3=0,t3=0,b3=0,k3=0,l4=0;if(b3=f2[145]|0,k3=s2[b3>>1]|0,k3<<16>>16==105)(re(b3+2|0,240,16)|0)==0&&(t3=s2[b3+18>>1]|0,t3<<16>>16==47|(Ce(t3)|0))?(a3=b3+18|0,l4=8):a3=0;else if(k3<<16>>16==116&&(re(b3+2|0,234,6)|0)==0)if(a3=s2[b3+8>>1]|0,Ce(a3)|0)a3=b3+8|0,l4=8;else switch(a3<<16>>16){case 42:case 47:case 123:{a3=b3+8|0,l4=8;break}default:a3=0}else a3=0;e:do if((l4|0)==8){f2[145]=a3,i3=D(e2^1)|0;a:do if(i3<<16>>16==92|(i3+-48&65535)<10)a3=0,l4=12;else if(((i3&-33)+-65&65535)<26)a3=1;else{switch(i3<<16>>16){case 36:case 92:case 95:{a3=1;break a}default:}a3=(i3&65535)>127,l4=12}while(!1);if((l4|0)==12&&!(i3<<16>>16==92|a3)){f2[145]=b3,a3=0;break}t3=f2[145]|0,R(i3)|0,c3=f2[145]|0,i3=D(1)|0;do if(i3<<16>>16==60)if(S()|0){i3=D(1)|0;break}else{je(),a3=1;break e}while(!1);if(!(k3<<16>>16==105|e2^1|i3<<16>>16==61)){f2[145]=b3,a3=0;break}a3^1|e2||(Z(t3,c3,t3,c3),e2=(f2[130]|0)+25|0,r2[e2>>0]=r2[e2>>0]|4);a:do if(k3<<16>>16==105)N(i3);else{i:for(;;){if(a3=f2[145]|0,a3>>>0>=(f2[146]|0)>>>0){l4=29;break}switch(i3<<16>>16){case 59:break a;case 61:break i;default:}if(Re(i3)|0){l4=29;break}f2[145]=a3+2,i3=D(0)|0}if((l4|0)==29&&i3<<16>>16!=61)break;f2[145]=a3+2,C(1,0)}while(!1);f2[145]=(f2[145]|0)+-2,a3=1}while(!1);return a3|0}function m2(e2){e2=e2|0;e:do switch(s2[e2>>1]|0){case 100:switch(s2[e2+-2>>1]|0){case 105:{e2=ke(e2+-4|0,54,2)|0;break e}case 108:{e2=ke(e2+-4|0,58,3)|0;break e}default:{e2=0;break e}}case 101:switch(s2[e2+-2>>1]|0){case 115:switch(s2[e2+-4>>1]|0){case 108:{e2=we(e2+-6|0,101)|0;break e}case 97:{e2=we(e2+-6|0,99)|0;break e}default:{e2=0;break e}}case 116:{e2=ke(e2+-4|0,64,4)|0;break e}case 117:{e2=ke(e2+-4|0,180,6)|0;break e}default:{e2=0;break e}}case 102:{if((s2[e2+-2>>1]|0)==111&&(s2[e2+-4>>1]|0)==101)switch(s2[e2+-6>>1]|0){case 99:{e2=ke(e2+-8|0,72,6)|0;break e}case 112:{e2=ke(e2+-8|0,84,2)|0;break e}default:{e2=0;break e}}else e2=0;break}case 107:{e2=ke(e2+-2|0,172,4)|0;break}case 110:{we(e2+-2|0,105)|0?e2=1:e2=ke(e2+-2|0,88,5)|0;break}case 111:{e2=we(e2+-2|0,100)|0;break}case 114:{e2=ke(e2+-2|0,98,7)|0;break}case 116:{e2=ke(e2+-2|0,112,4)|0;break}case 119:switch(s2[e2+-2>>1]|0){case 101:{e2=we(e2+-4|0,110)|0;break e}case 111:{e2=ke(e2+-4|0,120,3)|0;break e}default:{e2=0;break e}}default:e2=0}while(!1);return e2|0}function A2(){var e2=0,a3=0,i3=0,c3=0;e:do if(r2[1104]|0){for(e2=f2[133]<<1,a3=4;a3>>>0<e2>>>0;)a3=a3<<1;if(f2[149]=a3,f2[148]=a3+-1,e2=a3<<2,qe(e2),!(r2[1105]|0)){for(i3=f2[136]|0,f2[147]=i3,f2[136]=i3+e2,e2=f2[149]|0,a3=0;(a3|0)!=(e2|0);)f2[i3+(a3<<2)>>2]=0,a3=a3+1|0;for(a3=f2[148]|0,i3=f2[147]|0,e2=500;e2=f2[e2>>2]|0,!!e2;)(r2[e2+24>>0]|0)==4&&(c3=_(f2[e2+8>>2]|0,f2[e2+12>>2]|0)|0,f2[e2+20>>2]=c3,f2[e2+28>>2]=f2[i3+((a3&c3)<<2)>>2],f2[i3+((a3&c3)<<2)>>2]=e2),e2=e2+32|0;for(i3=f2[145]|0,a3=0,e2=496;;){if(e2=f2[e2>>2]|0,!e2){e2=26;break}if((f2[e2+20>>2]|0)==1&&(s2[f2[e2+8>>2]>>1]|0)==105&&J(e2,a3),!(f2[133]|0)){e2=24;break}a3=a3+1|0,e2=e2+52|0}a:do if((e2|0)==24)f2[145]=i3;else if((e2|0)==26&&(c3=f2[133]|0,f2[145]=i3,c3|0))for(a3=f2[149]|0,i3=f2[147]|0,c3=0;;){if((c3|0)==(a3|0))break a;for(e2=i3+(c3<<2)|0;e2=f2[e2>>2]|0,!!e2;)(r2[e2+24>>0]|0)==4&&(r2[e2+24>>0]=1,f2[e2+20>>2]=-1),e2=e2+28|0;c3=c3+1|0}while(!1);f2[147]=0}}else for(e2=500;;){if(e2=f2[e2>>2]|0,!e2)break e;(r2[e2+24>>0]|0)==4&&(r2[e2+24>>0]=1,f2[e2+20>>2]=-1),e2=e2+32|0}while(!1)}function g(){var e2=0,a3=0,i3=0;a3=f2[145]|0;e:do if((re(a3+2|0,382,12)|0)==0&&(e2=s2[a3+14>>1]|0,e2<<16>>16==47|(Ce(e2)|0))){if(f2[145]=a3+14,e2=D(0)|0,!(p2(e2)|0)){f2[145]=a3,e2=0;break}switch(e2<<16>>16){case 105:case 116:{if(y2(1)|0){e2=1;break e}switch(e2<<16>>16){case 109:{a3=20;break}case 108:{a3=9;break}default:a3=21}break}case 99:{(s2[(f2[145]|0)+2>>1]|0)==111?a3=9:(e2=99,a3=21);break}case 102:{e2=8,a3=10;break}case 118:case 108:{a3=9;break}case 109:{a3=20;break}default:a3=21}(a3|0)==9?(e2=e2<<16>>16==99?5:3,a3=10):(a3|0)==20&&(f2[145]=(f2[145]|0)+12,e2=D(1)|0,a3=21);do if((a3|0)==10){if(f2[145]=(f2[145]|0)+(e2<<1),e2=D(1)|0,e2<<16>>16==101&&(i3=f2[145]|0,(re(i3+2|0,406,6)|0)==0)&&(i3=s2[i3+8>>1]|0,i3<<16>>16==47|(Ce(i3)|0))){N(101);break}a:do if(e2<<16>>16==92|(e2+-48&65535)<10)e2=1;else{i:do if(((e2&-33)+-65&65535)>=26){switch(e2<<16>>16){case 36:case 92:case 95:break i;default:}if((e2&65535)<=127){e2=1;break a}}while(!1);R(e2)|0,e2=0}while(!1);C(e2,0)}else(a3|0)==21&&N(e2);while(!1);f2[145]=(f2[145]|0)+-2,e2=1}else e2=0;while(!1);return e2|0}function C(e2,a3){e2=e2|0,a3=a3|0;var i3=0,r3=0,c3=0;e:for(;i3=f2[145]|0,!(i3>>>0>(f2[146]|0)>>>0||(r3=s2[i3>>1]|0,r3<<16>>16==59|r3<<16>>16==44&a3));)a:do if(Re(r3)|0)if(e2){f2[145]=i3+2,e2=1;break}else if(j(a3)|0){e2=1;break}else break e;else{if(xe(r3)|0){f2[145]=i3+2;break}if(!(r3<<16>>16!=125|(s2[551]|0)==0))break e;switch(r3<<16>>16){case 123:case 91:case 40:case 60:if(i3=S()|0,i3){e2=e2&(i3^1);break a}else break e;default:}if(r3<<16>>16==47?c3=(s2[i3+2>>1]|0)==42:c3=0,U(r3,1)|0){if(i3=f2[145]|0,r3<<16>>16!=47){f2[145]=i3+2,e2=0;break}if(r3=(Re(s2[i3>>1]|0)|0)^1,c3^1|r3||(f2[145]=i3+-2,H(1),i3=f2[145]|0),f2[145]=i3+2,e2|r3)break;if(j(a3)|0){e2=1;break}else break e}i:do if(r3<<16>>16==92|(r3+-48&65535)<10)(r3+-48&65535)<10?i3=28:i3=29;else if(((r3&-33)+-65&65535)>=26){switch(r3<<16>>16){case 36:case 92:case 95:{i3=28;break i}default:}(r3&65535)<=127?i3=29:i3=28}else i3=28;while(!1);if((i3|0)==28){e2=f2[145]|0,R(r3)|0,e2=Q(e2,f2[145]|0)|0;break}else if((i3|0)==29){f2[145]=(f2[145]|0)+2,e2=1;break}}while(!1)}function x(e2,a3){e2=e2|0,a3=a3|0;var i3=0,r3=0,c3=0,b3=0,k3=0,l4=0;k3=f2[e2>>2]|0,i3=s2[k3>>1]|0;do if(i3<<16>>16==92)if((k3+2|0)>>>0<a3>>>0&&(s2[k3+2>>1]|0)==117){if((k3+4|0)>>>0<a3>>>0&&(s2[k3+4>>1]|0)==123){for(c3=0,r3=k3+6|0;!(r3>>>0>=a3>>>0||(i3=s2[r3>>1]|0,i3<<16>>16==125));)c3=(i3&15|c3<<4)+(((i3&65535)>>>6)*9|0)|0,r3=r3+2|0;i3=(r3|0)==(a3|0),r3=i3?k3+2|0:r3+2|0,i3=i3?92:c3;break}if((a3-(k3+4)|0)>=8){for(i3=t2[k3+4>>1]|0,i3=((i3>>>6)*9|0)+(i3&15)|0,r3=k3+6|0,c3=1;(c3|0)!=4;)l4=t2[r3>>1]|0,i3=(l4&15|i3<<4)+((l4>>>6)*9|0)|0,r3=r3+2|0,c3=c3+1|0;if((i3&-1024|0)==55296&&(k3+24|0)>>>0<=a3>>>0&&(s2[k3+12>>1]|0)==92&&(s2[k3+14>>1]|0)==117&&(b3=s2[k3+16>>1]|0,b3<<16>>16!=123)){for(r3=3,c3=(((b3&65535)>>>6)*9|0)+(b3&15)|0;(r3|0)!=6;)l4=t2[k3+12+(r3<<1)>>1]|0,r3=r3+1|0,c3=(l4&15|c3<<4)+((l4>>>6)*9|0)|0;l4=(c3&-1024|0)==56320,r3=l4?k3+24|0:k3+12|0,i3=l4?(i3<<10)+-56613888+c3|0:i3}else r3=k3+12|0}else r3=k3+2|0,i3=92}else r3=k3+2|0,i3=92;else(k3+2|0)>>>0<a3>>>0&(i3&-1024)<<16>>16==-10240?(l4=s2[k3+2>>1]|0,r3=(l4&-1024)<<16>>16==-9216?k3+4|0:k3+2|0,i3=(l4&-1024)<<16>>16==-9216?((i3&65535)<<10)+-56613888+(l4&65535)|0:i3&65535):(r3=k3+2|0,i3=i3&65535);while(!1);return f2[e2>>2]=r3,i3|0}function S(){var e2=0,a3=0,i3=0,r3=0;e2=f2[145]|0,a3=s2[e2>>1]|0;e:do switch(a3<<16>>16){case 60:{for(i3=0;;){a:for(;;){if(e2>>>0>(f2[146]|0)>>>0){e2=0;break e}switch(a3=s2[e2>>1]|0,a3<<16>>16){case 60:{r3=6;break a}case 62:{r3=7;break a}case 123:case 91:case 40:break;default:{r3=10;break a}}if(!(S()|0)){e2=0;break e}e2=f2[145]|0}if((r3|0)==6)r3=0,a3=i3+1|0;else if((r3|0)==7)if(r3=0,(s2[e2+-2>>1]|0)!=61){if(a3=i3+-1|0,!a3)break}else a3=i3;else(r3|0)==10&&(r3=0,U(a3,0)|0,e2=f2[145]|0,a3=i3);e2=e2+2|0,f2[145]=e2,i3=a3}f2[145]=e2+2,e2=1;break}case 40:{i3=41,r3=15;break}default:i3=a3<<16>>16==91?93:125,r3=15}while(!1);e:do if((r3|0)==15){for(;;){if(a3=e2+2|0,f2[145]=a3,a3>>>0>(f2[146]|0)>>>0){e2=0;break e}if(a3=s2[a3>>1]|0,(i3|0)==(a3&65535|0))break;switch(a3<<16>>16){case 123:case 91:case 40:{if(!(S()|0)){e2=0;break e}e2=(f2[145]|0)+-2|0,f2[145]=e2;break}default:U(a3,0)|0,e2=f2[145]|0}}f2[145]=e2+4,e2=1}while(!1);return e2|0}function O(){var e2=0,a3=0,i3=0,r3=0,c3=0;e:do if(s2[551]|0)e2=1;else{switch(f2[142]|0){case 0:case 1:case-1:break;default:{e2=1;break e}}switch(r3=f2[141]|0,e2=s2[r3>>1]|0,e2<<16>>16){case 44:case 61:case 46:case 58:case 63:case 38:case 124:case 60:{e2=1;break e}case 62:{if((s2[r3+-2>>1]|0)==61){e2=1;break e}break}default:}if((e2&65535)>127&e2<<16>>16!=160|(e2<<16>>16==92|(e2<<16>>16==95|(e2<<16>>16==36|((e2+-48&65535)<10|((e2|32)+-97&65535)<26))))){for(e2=f2[120]|0,i3=r3;!(i3>>>0<=e2>>>0);)if(a3=i3+-2|0,c3=s2[a3>>1]|0,(c3&65535)>127&c3<<16>>16!=160|(c3<<16>>16==92|(c3<<16>>16==95|(c3<<16>>16==36|((c3+-48&65535)<10|((c3|32)+-97&65535)<26)))))i3=a3;else break;Q(i3,r3+2|0)|0?e2=1:(r3-i3|0)==12&&(s2[i3>>1]|0)==101?e2=(re(i3+2|0,394,12)|0)==0:e2=0}else e2=0}while(!1);return e2|0}function E(){var e2=0,a3=0,i3=0,r3=0;a3=f2[146]|0,i3=f2[145]|0;e:for(;;){if(e2=i3+2|0,i3>>>0>=a3>>>0){a3=15;break}switch(s2[e2>>1]|0){case 96:{a3=8;break e}case 36:{if((s2[i3+4>>1]|0)==123){a3=5;break e}break}case 92:{e2=i3+4|0;break}default:}i3=e2}do if((a3|0)==5)if(a3=i3+4|0,f2[145]=a3,e2=s2[551]|0,e2<<16>>16==1024){je();break}else{r3=f2[143]|0,f2[r3+((e2&65535)<<3)>>2]=4,s2[551]=e2+1<<16>>16,f2[r3+((e2&65535)<<3)+4>>2]=a3;break}else(a3|0)==8?(f2[145]=e2,a3=f2[143]|0,i3=(s2[551]|0)+-1<<16>>16,s2[551]=i3,(f2[a3+((i3&65535)<<3)>>2]|0)!=3&&je(),e2=s2[550]|0,e2<<16>>16&&(r3=f2[(f2[144]|0)+((e2&65535)+-1<<2)>>2]|0,((t2[551]|0)+1|0)==(t2[r3+48>>1]|0))&&(f2[r3+44>>2]=f2[145],s2[r3+48>>1]=0)):(a3|0)==15&&(f2[145]=e2,je());while(!1)}function I(e2){e2=e2|0;var a3=0,i3=0;switch(e2<<16>>16){case 101:{e2=f2[145]|0,(re(e2+2|0,406,6)|0)==0&&(a3=s2[e2+8>>1]|0,a3<<16>>16==47|(Ce(a3)|0))?(a3=e2,e2=e2+8|0,i3=6):e2=0;break}case 110:{e2=f2[145]|0,(re(e2+2|0,412,16)|0)==0&&(a3=s2[e2+18>>1]|0,a3<<16>>16==47|(Ce(a3)|0))?(a3=e2,e2=e2+18|0,i3=6):e2=0;break}default:e2=0}if((i3|0)==6){f2[145]=e2,e2=D(1)|0;e:do if(e2<<16>>16==92|(e2+-48&65535)<10)e2=0;else{a:do if(((e2&-33)+-65&65535)>=26){switch(e2<<16>>16){case 36:case 92:case 95:break a;default:}if((e2&65535)<=127){e2=0;break e}}while(!1);a3=f2[145]|0,R(e2)|0,e2=f2[145]|0,Z(a3,e2,a3,e2),e2=1,a3=(f2[145]|0)+-2|0}while(!1);f2[145]=a3}return e2|0}function U(e2,a3){e2=e2|0,a3=a3|0;e:do if(e2<<16>>16!=47){if(Qe(e2)|0){K(e2),e2=1;break}if(e2<<16>>16==96)for(e2=f2[145]|0;;){if(a3=e2+2|0,f2[145]=a3,a3>>>0>(f2[146]|0)>>>0){e2=1;break e}switch(s2[a3>>1]|0){case 96:{e2=1;break e}case 92:{e2=e2+4|0,f2[145]=e2;break}case 36:{e2=e2+4|0,(s2[e2>>1]|0)==123?(f2[145]=e2,S()|0,e2=(f2[145]|0)+-2|0,f2[145]=e2):e2=a3;break}default:e2=a3}}else e2=0}else switch(s2[(f2[145]|0)+2>>1]|0){case 47:{de(),e2=1;break e}case 42:{H(a3^1),e2=1;break e}default:{e2=0;break e}}while(!1);return e2|0}function N(e2){e2=e2|0;var a3=0,i3=0,r3=0;e:do if(Qe(e2)|0)K(e2),f2[145]=(f2[145]|0)+2,(D(1)|0)<<16>>16==123&&S()|0;else{for(a3=e2;e2=f2[145]|0,i3=a3<<16>>16==123,!(i3|e2>>>0>=(f2[146]|0)>>>0);){switch(a3<<16>>16){case 59:break e;case 47:{r3=9;break}case 91:case 40:case 60:{if(!(S()|0))break e;break}default:a3<<16>>16==96|(Qe(a3)|0)?r3=9:r3=10}(r3|0)==9&&(U(a3,0)|0,e2=f2[145]|0,r3=10),(r3|0)==10&&(r3=0,f2[145]=e2+2),a3=D(1)|0}i3&&S()|0}while(!1)}function T(e2,a3,i3,s3){e2=e2|0,a3=a3|0,i3=i3|0,s3=s3|0,r2[1104]=1;e:do switch(a3|0){case 1:{s3=f2[145]|0,X(e2)|0,z(s3,f2[145]|0,0,0,3,i3,0);break}case 2:{he(i3,0);break}default:{switch(e2<<16>>16){case 42:case 123:break;default:{if(a3=f2[145]|0,X(e2)|0,z(a3,f2[145]|0,0,0,1,i3,s3),(D(1)|0)<<16>>16!=44)break e;f2[145]=(f2[145]|0)+2,e2=D(1)|0}}switch(e2<<16>>16){case 123:{f2[145]=(f2[145]|0)+2,ge(i3,s3)|0;break e}case 42:{he(i3,s3);break e}default:break e}}}while(!1)}function $(e2){e2=e2|0;e:do switch(e2<<16>>16){case 45:case 43:{e2=(s2[(f2[145]|0)+2>>1]|0)!=e2<<16>>16;break}case 33:{e2=(s2[(f2[145]|0)+2>>1]|0)==61;break}case 61:case 62:case 60:case 94:case 124:case 38:case 37:case 47:case 42:case 46:case 63:case 96:case 91:case 40:{e2=1;break}case 105:{if(e2=f2[145]|0,(s2[e2+2>>1]|0)==110&&ve(s2[e2+4>>1]|0)|0){e2=1;break e}(re(e2,72,12)|0)==0&&(s2[e2+12>>1]|0)==99&&(s2[e2+14>>1]|0)==101&&(s2[e2+16>>1]|0)==111&&(s2[e2+18>>1]|0)==102?e2=ve(s2[e2+20>>1]|0)|0:e2=0;break}default:e2=0}while(!1);return e2|0}function q(e2,a3,i3,c3){e2=e2|0,a3=a3|0,i3=i3|0,c3=c3|0;var t3=0,b3=0;qe(56),b3=f2[136]|0,f2[136]=b3+56,t3=f2[128]|0,f2[((t3|0)==0?496:t3+52|0)>>2]=b3,f2[129]=t3,f2[128]=b3,f2[b3+8>>2]=e2,(c3|0)==2?(e2=3,t3=i3):(e2=(c3|0)==1?1:2,t3=(c3|0)==1?i3+2|0:0),f2[b3+12>>2]=t3,f2[b3+28>>2]=e2,f2[b3>>2]=a3,f2[b3+4>>2]=i3,f2[b3+16>>2]=0,f2[b3+20>>2]=c3,r2[b3+24>>0]=(c3|0)==1&1,r2[b3+25>>0]=0,r2[b3+26>>0]=0,f2[b3+52>>2]=0,f2[b3+32>>2]=0,f2[b3+32+4>>2]=0,f2[b3+32+8>>2]=0,f2[b3+32+12>>2]=0,s2[b3+32+16>>1]=0,f2[132]=(f2[132]|0)+1,(c3|0)==1|(c3|0)==2&&(r2[1106]=1)}function P(){var e2=0,a3=0,i3=0;e2=f2[145]|0;e:for(;;){if(e2>>>0>(f2[146]|0)>>>0){e2=0;break}if(a3=s2[e2>>1]|0,a3<<16>>16==125){e2=125;break}a:do if(Qe(a3)|0)K(a3);else{switch(a3<<16>>16){case 47:break;case 92:if((fe()|0)<0){i3=11;break e}else break a;default:break a}switch(s2[e2+2>>1]|0){case 47:{de();break a}case 42:{H(1);break a}default:break a}}while(!1);e2=(f2[145]|0)+2|0,f2[145]=e2}return(i3|0)==11&&(je(),e2=0),e2|0}function j(e2){e2=e2|0;var a3=0,i3=0;i3=f2[145]|0,a3=D(1)|0;e:do if(a3<<16>>16==44&e2)a3=1;else{switch(a3<<16>>16){case 46:case 58:case 63:case 38:case 124:{f2[145]=(f2[145]|0)+2,a3=1;break e}case 61:{if(a3=f2[145]|0,(s2[a3+2>>1]|0)==62){f2[145]=a3+4,a3=1;break e}break}case 101:{if(a3=f2[145]|0,(re(a3+2|0,394,12)|0)==0&&ve(s2[a3+14>>1]|0)|0){f2[145]=a3+14,a3=1;break e}break}default:}f2[145]=i3,a3=0}while(!1);return a3|0}function B(e2){e2=e2|0;var a3=0,i3=0,c3=0;s2[551]|0||(i3=f2[145]|0,f2[145]=e2,a3=D(1)|0,(f2[142]|0)==-1?(e2=s2[f2[141]>>1]|0,e2<<16>>16==47?e2=(r2[1109]^1)&255:e2=(e2<<16>>16==96|(e2<<16>>16==34|(e2<<16>>16==39|((e2|32)<<16>>16==125|(e2<<16>>16==41|(ye(e2)|0))))))&1,!(a3<<16>>16==44|(e2|0)==0)&&!($(a3)|0)&&(c3=10)):!(O()|0)&&!(ie(a3)|0)&&(c3=10),(c3|0)==10&&(f2[142]=0),f2[145]=i3)}function M(e2){e2=e2|0;for(var a3=0,i3=0,c3=0;i3=f2[145]|0,!(i3>>>0>(f2[146]|0)>>>0||(c3=f2[130]|0,e2=le(e2)|0,a3=f2[145]|0,(a3|0)==(i3|0)));){for(i3=(c3|0)==0?500:c3+32|0;i3=f2[i3>>2]|0,!!i3;)r2[i3+25>>0]=r2[i3+25>>0]|4,i3=i3+32|0;switch(e2<<16>>16){case 61:case 58:{f2[145]=a3+2,C(1,1),e2=f2[145]|0,a3=e2,e2=s2[e2>>1]|0;break}default:}if(e2<<16>>16!=44)break;f2[145]=a3+2,e2=D(1)|0}}function z(e2,a3,i3,s3,c3,t3,b3){e2=e2|0,a3=a3|0,i3=i3|0,s3=s3|0,c3=c3|0,t3=t3|0,b3=b3|0;var k3=0,l4=0;k3=f2[147]|0;e:do if(k3|0)for(l4=_(e2,a3)|0,k3=k3+((f2[148]&l4)<<2)|0;;){if(k3=f2[k3>>2]|0,!k3)break e;do if((r2[k3+24>>0]|0)==4&&(f2[k3+20>>2]|0)==(l4|0)){if(b3&&(r2[k3+25>>0]&4)==0)break;F(f2[k3+8>>2]|0,f2[k3+12>>2]|0,e2,a3)|0&&pe(k3,i3,s3,c3,t3)}while(!1);k3=k3+28|0}while(!1)}function D(e2){e2=e2|0;var a3=0,i3=0,r3=0;i3=f2[145]|0;e:do{a3=s2[i3>>1]|0;a:do if(a3<<16>>16!=47)if(e2){if(Ce(a3)|0)break;break e}else{if(xe(a3)|0)break;break e}else switch(s2[i3+2>>1]|0){case 47:{de();break a}case 42:{H(e2);break a}default:{a3=47;break e}}while(!1);r3=f2[145]|0,i3=r3+2|0,f2[145]=i3}while(r3>>>0<(f2[146]|0)>>>0);return a3|0}function F(e2,a3,i3,r3){e2=e2|0,a3=a3|0,i3=i3|0,r3=r3|0;var s3=0,c3=0;c3=b2,b2=b2+16|0,f2[c3+4>>2]=e2,f2[c3>>2]=i3,(a3-e2|0)==(r3-i3|0)&&(re(e2,i3,a3-e2|0)|0)==0?i3=1:s3=3;e:do if((s3|0)==3){for(;e2>>>0<a3>>>0&i3>>>0<r3>>>0;){if(s3=x(c3+4|0,a3)|0,(s3|0)!=(x(c3,r3)|0)){i3=0;break e}e2=f2[c3+4>>2]|0,i3=f2[c3>>2]|0}i3=(e2|0)==(a3|0)&(i3|0)==(r3|0)}while(!1);return b2=c3,i3|0}function G(){var e2=0,a3=0,i3=0,r3=0;f2[142]=0,e2=f2[145]|0;e:for(;f2[145]=e2+2,!(e2>>>0>=(f2[146]|0)>>>0||(i3=D(1)|0,e2=f2[145]|0,i3=le(i3)|0,a3=f2[145]|0,(a3|0)==(e2|0)));)switch(i3<<16>>16){case 44:{e2=a3;break}case 58:{r3=5;break e}case 61:{r3=6;break e}default:{r3=7;break e}}(r3|0)==5?f2[142]=1:(r3|0)==6?f2[142]=-1:(r3|0)==7&&Re(i3)|0&&(f2[145]=a3+-2)}function H(e2){e2=e2|0;var a3=0,i3=0,r3=0;a3=(f2[145]|0)+2|0,f2[145]=a3,r3=f2[146]|0;e:do if(e2){for(;;){if(e2=a3+2|0,a3>>>0>=r3>>>0)break e;if((s2[e2>>1]|0)==42&&(s2[a3+4>>1]|0)==47)break;a3=e2}e2=a3+4|0}else{for(;;){if(e2=a3+2|0,a3>>>0>=r3>>>0||(i3=s2[e2>>1]|0,Re(i3)|0))break e;if(i3<<16>>16==42&&(s2[a3+4>>1]|0)==47)break;a3=e2}e2=a3+4|0}while(!1);f2[145]=e2}function J(e2,a3){e2=e2|0,a3=a3|0;var i3=0,s3=0;switch(f2[145]=(f2[e2+8>>2]|0)+12,i3=D(1)|0,s3=(r2[e2+25>>0]|0)!=0,s3&&(f2[145]=(f2[145]|0)+8,i3=D(1)|0),f2[e2+28>>2]|0){case 4:{f2[145]=(f2[145]|0)+12,T(D(1)|0,1,a3,0);break}case 6:{f2[145]=(f2[145]|0)+10,T(D(1)|0,2,a3,0);break}default:Qe(i3)|0||T(i3,0,a3,s3)}}function K(e2){e2=e2|0;var a3=0,i3=0,r3=0,c3=0;for(c3=f2[146]|0,a3=f2[145]|0;;){if(r3=a3+2|0,a3>>>0>=c3>>>0){a3=9;break}if(i3=s2[r3>>1]|0,i3<<16>>16==e2<<16>>16){a3=10;break}if(i3<<16>>16==92)i3=a3+4|0,(s2[i3>>1]|0)==13?(a3=a3+6|0,a3=(s2[a3>>1]|0)==10?a3:i3):a3=i3;else if(Re(i3)|0){a3=9;break}else a3=r3}(a3|0)==9?(f2[145]=r3,je()):(a3|0)==10&&(f2[145]=r3)}function L(e2){e2=e2|0;var a3=0,i3=0;if(a3=s2[e2>>1]|0,Ce(a3)|0)i3=3;else switch(a3<<16>>16){case 41:case 125:case 93:{i3=3;break}default:e2=0}e:do if((i3|0)==3){for(i3=f2[120]|0;!(e2>>>0<=i3>>>0||(e2=e2+-2|0,!(Ce(a3)|0)));)a3=s2[e2>>1]|0;switch(a3<<16>>16){case 41:case 125:case 93:{e2=1;break e}default:}e2=(se(a3)|0)^1}while(!1);return e2|0}function Q(e2,a3){switch(e2=e2|0,a3=a3|0,a3-e2>>1|0){case 3:{a3=(re(e2,256,6)|0)==0;break}case 5:{re(e2,262,10)|0?a3=(re(e2,272,10)|0)==0:a3=1;break}case 6:{(re(e2,282,12)|0)!=0&&(re(e2,294,12)|0)!=0?a3=(re(e2,306,12)|0)==0:a3=1;break}case 8:{re(e2,318,16)|0?a3=(re(e2,334,16)|0)==0:a3=1;break}default:a3=0}return a3|0}function R(e2){e2=e2|0;for(var a3=0;;){if(e2<<16>>16==92){if(e2=fe()|0,(e2|0)<0){e2=0;break}e2?(e2=(f2[145]|0)+2|0,f2[145]=e2,e2=s2[e2>>1]|0):(e2=92,a3=7)}else a3=7;if((a3|0)==7){if(a3=0,Ce(e2)|0||se(e2)|0)break;if(e2=(f2[145]|0)+2|0,f2[145]=e2,e2=s2[e2>>1]|0,!(e2<<16>>16)){e2=0;break}}}return e2|0}function V(e2,a3){e2=e2|0,a3=a3|0;var i3=0,r3=0,c3=0,t3=0;return i3=f2[145]|0,r3=s2[i3>>1]|0,c3=(e2|0)==(a3|0)?0:e2,t3=(e2|0)==(a3|0)?0:a3,r3<<16>>16==97&&(f2[145]=i3+4,i3=D(1)|0,e2=f2[145]|0,Qe(i3)|0?(K(i3),a3=(f2[145]|0)+2|0,f2[145]=a3):(X(i3)|0,a3=f2[145]|0),r3=D(1)|0,i3=f2[145]|0),(i3|0)!=(e2|0)&&Z(e2,a3,c3,t3),r3|0}function W(){var e2=0,a3=0,i3=0,c3=0;a3=f2[145]|0,r2[1111]=0,i3=f2[146]|0;e:for(;;){if(e2=a3+2|0,a3>>>0>=i3>>>0){e2=0;break}switch(s2[e2>>1]|0){case 96:{c3=8;break e}case 92:{e2=a3+4|0;break}case 13:{r2[1111]=1;break}case 36:{if((s2[a3+4>>1]|0)==123){e2=0;break e}break}default:}a3=e2}return(c3|0)==8&&(f2[145]=e2,e2=1),e2|0}function X(e2){e2=e2|0;e:for(;;){a:do if(!((e2+-48&65535)<10|((e2&-33)+-65&65535)<26)){switch(e2<<16>>16){case 36:case 92:case 95:break a;default:}if((e2&65535)<=127)break e}while(!1);if(Ce(e2)|0)break;if(e2<<16>>16==92&&(fe()|0)<0){e2=0;break}e2=(f2[145]|0)+2|0,f2[145]=e2,e2=s2[e2>>1]|0}return e2|0}function Y(){var e2=0,a3=0,i3=0;i3=f2[146]|0,a3=f2[145]|0;e:for(;;){if(e2=a3+2|0,a3>>>0>=i3>>>0){a3=6;break}switch(s2[e2>>1]|0){case 13:case 10:{a3=6;break e}case 93:{a3=7;break e}case 92:{e2=a3+4|0;break}default:}a3=e2}return(a3|0)==6?(f2[145]=e2,je(),e2=0):(a3|0)==7&&(f2[145]=e2,e2=93),e2|0}function Z(e2,a3,i3,s3){e2=e2|0,a3=a3|0,i3=i3|0,s3=s3|0;var c3=0,t3=0;qe(36),c3=f2[136]|0,f2[136]=c3+36,t3=f2[130]|0,f2[((t3|0)==0?500:t3+32|0)>>2]=c3,f2[130]=c3,f2[c3>>2]=e2,f2[c3+4>>2]=a3,f2[c3+8>>2]=i3,f2[c3+12>>2]=s3,f2[c3+16>>2]=f2[131],f2[c3+20>>2]=-1,r2[c3+24>>0]=1,r2[c3+25>>0]=0,f2[c3+32>>2]=0,r2[1106]=1}function _(e2,a3){e2=e2|0,a3=a3|0;var i3=0,r3=0,f3=0;for(r3=e2,f3=0;;){if(r3>>>0>=a3>>>0){r3=6;break}if(i3=s2[r3>>1]|0,i3<<16>>16==92|(i3&-1024)<<16>>16==-10240){r3=5;break}i3=(f3+(i3&65535)|0)*1025|0,r3=r3+2|0,f3=i3>>>6^i3}return(r3|0)==5?i3=be(e2,a3)|0:(r3|0)==6&&(i3=f3*9|0,i3=(i3>>>11^i3)*32769|0),i3|0}function ee(){var e2=0,a3=0;e:for(;;){if(e2=f2[145]|0,f2[145]=e2+2,e2>>>0>=(f2[146]|0)>>>0){a3=7;break}switch(s2[e2+2>>1]|0){case 13:case 10:{a3=7;break e}case 47:break e;case 91:{Y()|0;break}case 92:{f2[145]=e2+4;break}default:}}(a3|0)==7&&je()}function ae(e2){switch(e2=e2|0,s2[e2>>1]|0){case 62:{e2=(s2[e2+-2>>1]|0)==61;break}case 41:case 59:{e2=1;break}case 104:{e2=ke(e2+-2|0,146,4)|0;break}case 121:{e2=ke(e2+-2|0,154,6)|0;break}case 101:{e2=ke(e2+-2|0,166,3)|0;break}default:e2=0}return e2|0}function ie(e2){e2=e2|0;var a3=0;switch(e2<<16>>16){case 61:case 46:case 58:case 63:case 38:case 124:case 91:case 60:case 44:{e2=1;break}case 101:{e2=f2[145]|0,re(e2+2|0,394,12)|0?(e2=0,a3=4):(e2=ve(s2[e2+14>>1]|0)|0,a3=4);break}default:e2=0,a3=4}return e2|0}function re(e2,a3,i3){e2=e2|0,a3=a3|0,i3=i3|0;var s3=0,f3=0;e:do if(!i3)e2=0;else{for(;s3=r2[e2>>0]|0,f3=r2[a3>>0]|0,s3<<24>>24==f3<<24>>24;)if(i3=i3+-1|0,i3)e2=e2+1|0,a3=a3+1|0;else{e2=0;break e}e2=(s3&255)-(f3&255)|0}while(!1);return e2|0}function se(e2){e2=e2|0;e:do switch(e2<<16>>16){case 38:case 37:case 33:{e2=1;break}default:if((e2&-8)<<16>>16==40|(e2+-58&65535)<6)e2=1;else{switch(e2<<16>>16){case 91:case 93:case 94:{e2=1;break e}default:}e2=(e2+-123&65535)<4}}while(!1);return e2|0}function fe(){var e2=0,a3=0,i3=0;if(e2=f2[145]|0,a3=f2[146]|0,(e2+4|0)>>>0<=a3>>>0&&(s2[e2+2>>1]|0)==117&&(s2[e2+4>>1]|0)==123){for(i3=e2+6|0;;){if(i3>>>0>a3>>>0){e2=-1;break}if((s2[i3>>1]|0)==125){e2=1;break}else i3=i3+2|0}f2[145]=i3}else e2=0;return e2|0}function ce(e2){e2=e2|0;e:do switch(e2<<16>>16){case 38:case 37:case 33:break;default:if(!((e2+-58&65535)<6|(e2+-40&65535)<7&e2<<16>>16!=41)){switch(e2<<16>>16){case 91:case 94:break e;default:}return e2<<16>>16!=125&(e2+-123&65535)<4|0}}while(!1);return 1}function te(e2){e2=e2|0;var a3=0;a3=s2[e2>>1]|0;e:do if((a3+-9&65535)>=5){switch(a3<<16>>16){case 160:case 32:{a3=1;break e}default:}if(se(a3)|0)return a3<<16>>16!=46|(Se(e2)|0)|0;a3=0}else a3=1;while(!1);return a3|0}function be(e2,a3){e2=e2|0,a3=a3|0;var i3=0,r3=0,s3=0;for(r3=b2,b2=b2+16|0,f2[r3>>2]=e2,i3=0;!(e2>>>0>=a3>>>0);)s3=((x(r3,a3)|0)+i3|0)*1025|0,e2=f2[r3>>2]|0,i3=s3>>>6^s3;return s3=i3*9|0,b2=r3,(s3>>>11^s3)*32769|0}function ke(e2,a3,i3){e2=e2|0,a3=a3|0,i3=i3|0;var r3=0,s3=0;return s3=e2+(0-i3<<1)+2|0,r3=f2[120]|0,s3>>>0>=r3>>>0&&(re(s3,a3,i3<<1)|0)==0?(s3|0)==(r3|0)?r3=1:r3=te(e2+(0-i3<<1)|0)|0:r3=0,r3|0}function le(e2){e2=e2|0;var a3=0;switch(e2<<16>>16){case 91:case 123:{d2(),f2[145]=(f2[145]|0)+2;break}default:a3=f2[145]|0,R(e2)|0,e2=f2[145]|0,e2>>>0>a3>>>0&&Z(a3,e2,a3,e2)}return D(1)|0}function ne(e2){switch(e2=e2|0,s2[e2>>1]|0){case 107:{e2=ke(e2+-2|0,172,4)|0;break}case 101:{(s2[e2+-2>>1]|0)==117?e2=ke(e2+-4|0,180,6)|0:e2=0;break}default:e2=0}return e2|0}function ue(e2){e2=e2|0;var a3=0;return f2[134]=e2,a3=f2[120]|0,s2[a3+(e2<<1)>>1]=0,f2[135]=a3+(e2<<1)+2,f2[136]=a3+(e2<<1)+2,f2[124]=0,f2[128]=0,f2[126]=0,f2[125]=0,f2[130]=0,f2[127]=0,f2[132]=0,f2[133]=0,r2[1104]=0,a3|0}function oe(){var e2=0,a3=0;return r2[1107]|0?(e2=f2[139]|0,e2?(e2=e2+4|0,a3=5):e2=0):(r2[1107]=1,e2=(f2[126]|0)+36|0,a3=5),(a3|0)==5&&(e2=f2[e2>>2]|0,f2[139]=e2,e2=(e2|0)!=0),e2|0}function he(e2,a3){e2=e2|0,a3=a3|0;var i3=0,r3=0;f2[145]=(f2[145]|0)+2,D(1)|0,f2[145]=(f2[145]|0)+4,r3=D(1)|0,i3=f2[145]|0,X(r3)|0,z(i3,f2[145]|0,0,0,2,e2,a3)}function we(e2,a3){e2=e2|0,a3=a3|0;var i3=0;return i3=f2[120]|0,i3>>>0<=e2>>>0&&(s2[e2>>1]|0)==a3<<16>>16?(i3|0)==(e2|0)?i3=1:i3=ve(s2[e2+-2>>1]|0)|0:i3=0,i3|0}function de(){var e2=0,a3=0,i3=0;e2=f2[146]|0,i3=f2[145]|0;e:for(;a3=i3+2|0,!(i3>>>0>=e2>>>0);)switch(s2[a3>>1]|0){case 13:case 10:break e;default:i3=a3}f2[145]=a3}function ve(e2){e2=e2|0;e:do if((e2+-9&65535)<5)e2=1;else{switch(e2<<16>>16){case 32:case 160:{e2=1;break e}default:}e2=e2<<16>>16!=46&(se(e2)|0)}while(!1);return e2|0}function pe(e2,a3,i3,s3,c3){e2=e2|0,a3=a3|0,i3=i3|0,s3=s3|0,c3=c3|0,f2[e2+8>>2]=a3,f2[e2+12>>2]=i3,f2[e2+20>>2]=c3,r2[e2+25>>0]=r2[e2+25>>0]&4|s3,r2[e2+24>>0]=2,f2[133]=(f2[133]|0)+-1}function ye(e2){e2=e2|0;e:do if(((e2&-33)+-65&65535)<26|(e2+-48&65535)<10)e2=1;else{switch(e2<<16>>16){case 36:case 95:{e2=1;break e}default:}e2=(e2&65535)>127}while(!1);return e2|0}function me(){var e2=0;switch(e2=f2[(f2[126]|0)+20>>2]|0,e2|0){case 1:{e2=-1;break}case 2:{e2=-2;break}default:e2=e2-(f2[120]|0)>>1}return e2|0}function Ae(e2){return e2=e2|0,!(ke(e2,126,5)|0)&&!(ke(e2,136,3)|0)?e2=ke(e2,142,2)|0:e2=1,e2|0}function ge(e2,a3){return e2=e2|0,a3=a3|0,r2[1104]=1,f2[147]|0?e2=o3(e2,a3)|0:e2=P()|0,e2|0}function Ce(e2){switch(e2=e2|0,e2<<16>>16){case 160:case 9:case 10:case 11:case 12:case 13:case 32:{e2=1;break}default:e2=0}return e2|0}function xe(e2){switch(e2=e2|0,e2<<16>>16){case 160:case 32:case 12:case 11:case 9:{e2=1;break}default:e2=0}return e2|0}function Se(e2){return e2=e2|0,(s2[e2>>1]|0)==46&&(s2[e2+-2>>1]|0)==46?e2=(s2[e2+-4>>1]|0)==46:e2=0,e2|0}function Oe(){var e2=0;return e2=f2[140]|0,e2=f2[((e2|0)==0?(f2[126]|0)+32|0:e2+16|0)>>2]|0,f2[140]=e2,(e2|0)!=0|0}function Ee(e2){return e2=e2|0,(f2[120]|0)==(e2|0)?e2=1:e2=te(e2+-2|0)|0,e2|0}function Ie(){var e2=0;return e2=f2[(f2[127]|0)+12>>2]|0,e2?e2=e2-(f2[120]|0)>>1:e2=-1,e2|0}function Ue(){var e2=0;return e2=f2[(f2[126]|0)+12>>2]|0,e2?e2=e2-(f2[120]|0)>>1:e2=-1,e2|0}function Ne(){var e2=0;return e2=f2[(f2[127]|0)+8>>2]|0,e2?e2=e2-(f2[120]|0)>>1:e2=-1,e2|0}function Te(){var e2=0;return e2=f2[(f2[126]|0)+16>>2]|0,e2?e2=e2-(f2[120]|0)>>1:e2=-1,e2|0}function $e(){var e2=0;return e2=f2[(f2[126]|0)+4>>2]|0,e2?e2=e2-(f2[120]|0)>>1:e2=-1,e2|0}function qe(e2){e2=e2|0,((f2[136]|0)+e2|0)>>>0>(f2[137]|0)>>>0&&De()}function Pe(){var e2=0;return e2=f2[126]|0,e2=f2[((e2|0)==0?496:e2+52|0)>>2]|0,f2[126]=e2,(e2|0)!=0|0}function je(){r2[1105]=1,f2[138]=(f2[145]|0)-(f2[120]|0)>>1,f2[145]=(f2[146]|0)+2}function Be(){var e2=0;return e2=f2[127]|0,e2=f2[((e2|0)==0?500:e2+32|0)>>2]|0,f2[127]=e2,e2|0}function Me(){var e2=0;return e2=f2[126]|0,f2[e2+28>>2]|r2[e2+25>>0]<<4&255|0}function ze(){var e2=0;return e2=f2[127]|0,(r2[e2+25>>0]&4|r2[e2+24>>0])&255|0}function De(){f2[136]=f2[135],f2[138]=-1,r2[1105]=1}function Fe(){return(f2[(f2[127]|0)+16>>2]|0)-(f2[120]|0)>>1|0}function Ge(){return(f2[(f2[140]|0)+12>>2]|0)-(f2[120]|0)>>1|0}function He(){return(f2[(f2[140]|0)+8>>2]|0)-(f2[120]|0)>>1|0}function Je(){return(f2[(f2[140]|0)+4>>2]|0)-(f2[120]|0)>>1|0}function Ke(){return(f2[(f2[126]|0)+8>>2]|0)-(f2[120]|0)>>1|0}function Le(){return(f2[(f2[127]|0)+4>>2]|0)-(f2[120]|0)>>1|0}function Qe(e2){return e2=e2|0,e2<<16>>16==39|e2<<16>>16==34|0}function Re(e2){return e2=e2|0,e2<<16>>16==13|e2<<16>>16==10|0}function Ve(){return(f2[f2[140]>>2]|0)-(f2[120]|0)>>1|0}function We(){return(f2[f2[139]>>2]|0)-(f2[120]|0)>>1|0}function Xe(){return(f2[f2[126]>>2]|0)-(f2[120]|0)>>1|0}function Ye(){return(f2[f2[127]>>2]|0)-(f2[120]|0)>>1|0}function Ze(){return c2[(f2[126]|0)+24>>0]|0|0}function _e(){return r2[(f2[127]|0)+25>>0]&3|0}function ea(e2){e2=e2|0,f2[120]=e2}function aa(){return f2[(f2[127]|0)+20>>2]|0}function ia(){f2[139]=0,r2[1107]=0}function ra(e2){e2=e2|0,f2[137]=e2}function sa(){return(r2[1106]|0)!=0|0}function fa(){return(r2[1108]|0)!=0|0}function ca(){f2[140]=0}function ta(){return f2[138]|0}function ba(e2,a3){return e2=e2|0,a3=a3|0,b2=e2+a3+15&-16,a3|0}return{su:ba,ai:Te,ake:Je,aks:Ve,ave:Ge,avs:He,e:ta,ee:Le,eii:aa,eit:_e,ele:Ie,els:Ne,es:Ye,ess:Fe,et:ze,f:fa,id:me,ie:$e,ip:Ze,is:Xe,it:Me,ms:sa,p:k2,ra:Oe,re:Be,ri:Pe,rsa:ca,rt:oe,rts:ia,sa:ue,sal:ra,se:Ue,ses:ea,ss:Ke,te:We}})(typeof globalThis<"u"?globalThis:self,{},i),r=a.su(s-(2<<17),1344),a.sal(s-(2<<17))}let v=t.length+1;if(a.ses(r),a.sa(v-1),f(t,new Uint16Array(i,r,v)),!a.p()){if(a.e()===-1)return s*=2,a=void 0,parse(l2,o2);k=a.e(),h()}let p=[],y=[];for(;a.ri();){let e=a.is(),i2=a.ie(),r2=a.it(),s2=15&r2,f2=a.ai(),c2=a.id(),b2=a.ss(),k2=a.se(),l3=a.ip(),o3,h2=!1;if(1&l3?o3=n(c2===-1?e:e+1,c2===-1?i2:i2-1,!!(2&l3)):c2!==-1&&t.charCodeAt(e)===96&&(o3=u(e,i2),h2=o3!==void 0),s2===3)p.push({type:"import-meta",specifier:null,typeOnly:!1,start:e,end:i2,importStart:b2,importEnd:k2});else if(c2!==-1){let a2=s2===5?"source":s2===7?"defer":null;p.push({type:"dynamic",specifier:o3,glob:h2,phase:a2,start:e,end:i2,importStart:b2,importEnd:k2,dynamicStart:c2,attributes:null,attributesStart:f2,probablyTypeOnly:!!(16&r2)})}else{let c3=null;if(f2!==-1){for(c3=[],a.rsa();a.ra();){let e2=a.aks(),i3=a.ake(),r3=a.avs(),s3=a.ave();c3.push([A(e2,i3),A(r3,s3)])}c3=c3.length>0?c3:null}let t2=s2===4?"source":s2===6?"defer":null;p.push({type:s2===8?"reexport-star":"static",specifier:o3,phase:t2,start:e,end:i2,importStart:b2,importEnd:k2,attributes:c3,attributesStart:f2,typeOnly:!!(16&r2)})}}let m;for(;m=a.re();){let i2=a.es(),r2=a.ee(),s2=a.els(),f2=a.ele(),c2=a.et(),t2=3&c2,b2=!!(4&c2),k2=a.ess();if(t2===3){let e=a.eii();y.push({type:"reexport-all",from:p[e].specifier,importIndex:e,start:i2,end:r2,exportStart:k2,typeOnly:b2})}else{let e=A(i2,r2);if(t2===1){let a2=s2<0?void 0:A(s2,f2);y.push({type:"direct",name:e,localName:a2,start:i2,end:r2,localStart:s2,localEnd:f2,exportStart:k2,typeOnly:b2})}else{let c3=a.eii(),t3=a.eit(),l3=t3===0?A(s2,f2):t3===1?"default":null;y.push({type:"reexport",name:e,importName:l3,importNameStart:t3===0?s2:-1,importNameEnd:t3===0?f2:-1,from:p[c3].specifier,importIndex:c3,start:i2,end:r2,exportStart:k2,typeOnly:b2})}}}return[p,y,!!a.f(),!!a.ms()];function A(e,a2){let i2=t.charCodeAt(e);return i2===34||i2===39?n(e+1,a2-1):t.slice(e,a2)}}var l=/\r\n?/g;function n(e,a2,i2=!1){let r2=t.slice(e,a2),s2=r2.indexOf("\\");if(s2===-1)return i2?r2.replace(l,`
3
- `):r2;let f2=r2.slice(0,s2),c2=i2?f2.replace(l,`
4
- `):f2;for(;;){let a3=s2+1;a3>=r2.length&&(k=e+a3,h());let t2=r2.charCodeAt(a3++);switch(t2){case 13:r2.charCodeAt(a3)===10&&a3++;break;case 10:case 8232:case 8233:break;case 114:c2+="\r";break;case 110:c2+=`
5
- `;break;case 116:c2+=" ";break;case 98:c2+="\b";break;case 102:c2+="\f";break;case 118:c2+="\v";break;case 120:c2+=String.fromCharCode(o(e+a3,2)),a3+=2;break;case 117:{let i3;if(r2.charCodeAt(a3)===123){let s3=r2.indexOf("}",++a3);s3===-1&&(k=e+a3,h()),i3=o(e+a3,s3-a3),a3=s3+1}else i3=o(e+a3,4),a3+=4;i3>1114111&&(k=e+a3,h()),i3<=65535?c2+=String.fromCharCode(i3):(i3-=65536,c2+=String.fromCharCode(55296+(i3>>10),56320+(1023&i3)));break}case 48:{let i3=r2.charCodeAt(a3);i3>=48&&i3<=57&&(k=e+a3,h()),c2+="\0";break}default:t2>=49&&t2<=57&&(k=e+a3-1,h()),c2+=String.fromCharCode(t2)}let b2=r2.indexOf("\\",a3);if(b2===-1)return f2=r2.slice(a3),c2+(i2?f2.replace(l,`
6
- `):f2);f2=r2.slice(a3,b2),c2+=i2?f2.replace(l,`
7
- `):f2,s2=b2}}function u(e,i2){if(a.rts(),!a.rt())return;let r2="",s2=e+1,f2=e+1,c2=a.te();for(;f2<i2;){let e2=t.charCodeAt(f2);if(e2===96)break;e2!==92?e2!==42?e2===36&&t.charCodeAt(f2+1)===123&&f2+2<=c2?(r2+=t.slice(s2,f2)+"*",f2=s2=c2,c2=a.rt()?a.te():-1):f2++:(r2+=t.slice(s2,f2)+"\\*",s2=++f2):f2+=2}return r2+t.slice(s2,f2)}function o(e,a2){(a2<1||e+a2>t.length)&&(k=e,h());let i2=0,r2=e+a2;for(let a3=e;a3<r2;a3++){let e2=t.charCodeAt(a3),r3=32|e2,s2=e2>=48&&e2<=57?e2-48:r3>=97&&r3<=102?r3-87:-1;s2===-1&&(k=a3,h()),i2=16*i2+s2}return i2}function h(){throw Object.assign(Error(`Parse error ${b}:${t.slice(0,k).split(`
8
- `).length}:${k-t.lastIndexOf(`
9
- `,k-1)}`),{idx:k})}import{readFileSync}from"node:fs";import{extname}from"node:path";var commonJsByPath=new Map;function isCommonJsFile(path){let cached=commonJsByPath.get(path);if(cached!==void 0)return cached;let result=detect(path);return commonJsByPath.set(path,result),result}function detect(path){let extension=extname(path);if(extension===".cjs")return!0;if(extension===".mjs"||extension===".ts"||extension===".tsx"||extension===".mts")return!1;try{let[,,,hasModuleSyntax]=parse(readFileSync(path,"utf8"),path);return!hasModuleSyntax}catch{return!1}}function parseImportClause(clause){let rest=clause.trim();if(rest==="")return;let defaultBinding,namespaceBinding,named=[],braceStart=rest.indexOf("{"),head=(braceStart>=0?rest.slice(0,braceStart):rest).trim().replace(/,$/,"").trim();if(head!==""){let namespace=/^\*\s+as\s+([A-Za-z_$][\w$]*)$/.exec(head);if(namespace?.[1]!==void 0)namespaceBinding=namespace[1];else if(/^[A-Za-z_$][\w$]*$/.test(head))defaultBinding=head;else return}if(braceStart>=0){let braceEnd=rest.lastIndexOf("}");if(braceEnd<braceStart)return;rest=rest.slice(braceStart+1,braceEnd);for(let raw of rest.split(",")){let entry=raw.trim();if(entry==="")continue;let aliased=/^(?:(["'])(.+?)\1|([A-Za-z_$][\w$]*))\s+as\s+([A-Za-z_$][\w$]*)$/.exec(entry);if(aliased){named.push({imported:aliased[2]??aliased[3]??"",local:aliased[4]??""});continue}if(/^[A-Za-z_$][\w$]*$/.test(entry)){named.push({imported:entry,local:entry});continue}return}}return{defaultBinding,namespaceBinding,named}}function rewriteCommonJsImport(clause,resolvedId,alias,attributes=""){let parsed=parseImportClause(clause);if(parsed===void 0)return`import ${JSON.stringify(resolvedId)}${attributes};`;let lines=[`import ${alias} from ${JSON.stringify(resolvedId)}${attributes};`];if(parsed.defaultBinding!==void 0&&lines.push(`const ${parsed.defaultBinding} = ${alias};`),parsed.namespaceBinding!==void 0&&lines.push(`const ${parsed.namespaceBinding} = ${alias};`),parsed.named.length>0){let pattern=parsed.named.map(({imported,local})=>{let key=/^[A-Za-z_$][\w$]*$/.test(imported)?imported:JSON.stringify(imported);return key===local?key:`${key}: ${local}`}).join(", ");lines.push(`const { ${pattern} } = ${alias};`)}return lines.join(" ")}var diagnosticSchema=external_exports.object({message:external_exports.string(),position:external_exports.object({line:external_exports.number(),column:external_exports.number()}).nullish()}),ExtensionSourceError=class extends Error{constructor(filename,cause){let diagnostics=external_exports.array(diagnosticSchema).parse(cause.errors).map(({message,position})=>({message,...position?{line:position.line,column:position.column}:{}}));super(diagnostics.map(item=>`${filename}${item.line===void 0?"":`:${item.line}:${item.column}`}: ${item.message}`).join(`
10
- `),{cause}),this.name="ExtensionSourceError",this.filename=filename,this.diagnostics=diagnostics}};import{existsSync}from"node:fs";import{dirname}from"node:path";import{fileURLToPath,pathToFileURL}from"node:url";var RUNTIME_METADATA=Symbol.for("senpi.extension.runtime.metadata");function publishRuntimeMetadata(value){globalThis[RUNTIME_METADATA]=value}var importModule=new Function("specifier","options","return import(specifier, options)"),extensionNamespace="senpi-extension",RUNTIME_SPECIFIER="runtime",runtimeModulePath=resolveRuntimeModulePath();function resolveRuntimeModulePath(){try{let candidate=fileURLToPath(new URL("./extension-runtime-module.js",import.meta.url));return existsSync(candidate)?candidate:void 0}catch{return}}function splitModuleId(id){let slash=id.indexOf("/");if(!(slash<=0||slash===id.length-1))return{generation:id.slice(0,slash),filename:decodeURIComponent(id.slice(slash+1))}}var graphs=new Map,collected=new FinalizationRegistry(generation=>graphs.delete(generation)),nextGeneration=0,installed=!1,pluginRegistrations=0,registeredHosts=new Set,ExtensionModuleIdError=class extends Error{constructor(id){super(`Extension module id is not "<generation>/<encoded filename>": ${id}`),this.name="ExtensionModuleIdError"}},ExtensionGenerationDisposedError=class extends Error{constructor(generation){super(`Extension generation ${generation} has been disposed`),this.name="ExtensionGenerationDisposedError",this.generation=generation}};function graphFor(generation){let graph=graphs.get(generation)?.deref();if(!graph)throw new ExtensionGenerationDisposedError(generation);return graph}function metadata(generation,filename){let resolvePath=specifier=>{let id=graphFor(generation).resolve(specifier,filename);return id.startsWith(`${extensionNamespace}:`)?decodeURIComponent(id.slice(id.indexOf("/")+1)):void 0},require2=Object.assign(specifier=>graphFor(generation).require(specifier,filename),{resolve:specifier=>resolvePath(specifier)??graphFor(generation).resolve(specifier,filename)});return{url:pathToFileURL(filename).href,path:filename,dir:dirname(filename),require:require2,commonJs:body=>graphFor(generation).evaluateCommonJs(filename,body),import:async(specifier,options)=>importModule(graphFor(generation).resolve(specifier,filename),options),resolve:specifier=>{let path=resolvePath(specifier);return path===void 0?graphFor(generation).resolve(specifier,filename):pathToFileURL(path).href}}}function installRegistry(virtualModules){let hosts=Object.entries(virtualModules).filter(([name])=>!registeredHosts.has(name));(!installed||hosts.length>0)&&(pluginRegistrations++,Bun.plugin({name:extensionNamespace,setup(builder){for(let[name,exports]of hosts)builder.module(name,()=>({exports,loader:"object"})),registeredHosts.add(name);installed||(publishRuntimeMetadata(metadata),builder.module(`${extensionNamespace}:${RUNTIME_SPECIFIER}`,()=>({exports:{metadata},loader:"object"})),builder.onResolve({filter:/.*/,namespace:extensionNamespace},({path})=>{if(path===RUNTIME_SPECIFIER)return runtimeModulePath===void 0?{path,namespace:extensionNamespace}:{path:runtimeModulePath,namespace:"file"};let parsed=splitModuleId(path);if(parsed===void 0)throw new ExtensionModuleIdError(path);return graphFor(parsed.generation),/\.[cm]?[jt]sx?$/.test(parsed.filename)?{path,namespace:extensionNamespace}:{path:parsed.filename,namespace:"file"}}),builder.onLoad({filter:/.*/,namespace:extensionNamespace},({path})=>{let parsed=splitModuleId(path);if(parsed===void 0)throw new ExtensionModuleIdError(path);return graphFor(parsed.generation).load(parsed.filename)}),installed=!0)}}))}function registerExtensionGraph(graph,virtualModules){installRegistry(virtualModules);let generation=String(nextGeneration++);return graphs.set(generation,new WeakRef(graph)),collected.register(graph,generation,graph),{generation,dispose(){graphs.delete(generation),collected.unregister(graph)}}}function bunExtensionImporterStats(){return{generations:[...graphs.values()].filter(entry=>entry.deref()).length,plugins:pluginRegistrations}}var __rewriteRelativeImportExtension=function(path,preserveJsx){return typeof path=="string"&&/^\.\.?\//.test(path)?path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(m,tsx,d,ext,cm){return tsx?preserveJsx?".jsx":".js":d&&(!ext||!cm)?m:d+ext+"."+cm.toLowerCase()+"js"}):path};function createBunExtensionImporter(virtualModules){let sources=new Map,commonJs=new Set,commonJsModules=new Map,nativeRequire=createRequire(import.meta.url),active=!0,assertActive=()=>{if(!active)throw new ExtensionGenerationDisposedError(registration.generation)},moduleId=filename=>`${extensionNamespace}:${registration.generation}/${encodeURIComponent(filename)}`,resolveTarget=(specifier,filename)=>{if(assertActive(),Object.hasOwn(virtualModules,specifier)||isBuiltin(specifier)||specifier.startsWith("bun:"))return{id:specifier};if(specifier.startsWith(`${extensionNamespace}:`))return{id:specifier};let path=specifier.startsWith("file:")?fileURLToPath2(specifier):specifier,resolved=realpathSync(Bun.resolveSync(path,dirname2(filename)));return{id:moduleId(resolved),path:resolved}},graph={assertActive,resolve(specifier,filename){return resolveTarget(specifier,filename).id},require(specifier,filename){let id=graph.resolve(specifier,filename),evaluating=commonJsModules.get(id);if(evaluating!==void 0)return evaluating.exports;let result=nativeRequire(id);return commonJs.has(id)?result.default:result},evaluateCommonJs(filename,body){assertActive();let id=moduleId(filename),module={exports:{}};commonJsModules.set(id,module);try{body.call(module.exports,module.exports,module)}catch(error){throw commonJsModules.delete(id),error}return module.exports},load(filename){assertActive();let existing=sources.get(filename);if(existing)return existing;let source=readFileSync2(filename,"utf8"),name="__senpiExtensionMeta";for(;source.includes(name);)name+="_";let extension=extname2(filename),transpiler=new Bun.Transpiler({loader:extension===".tsx"?"tsx":extension===".jsx"?"jsx":"ts",target:"bun",define:{"import.meta":name,require:`${name}.require`,__filename:`${name}.path`,__dirname:`${name}.dir`}}),contents;try{contents=transpiler.transformSync(source)}catch(error){throw error instanceof AggregateError?new ExtensionSourceError(filename,error):error}let[imports,,,hasModuleSyntax]=parse(contents,filename),edits=[],commonJsImports=0;for(let edge of imports)if(edge.type==="dynamic")edits.push({start:edge.importStart,end:edge.dynamicStart,text:`${name}.import`});else if(edge.type==="static"||edge.type==="reexport-star"){let target=resolveTarget(edge.specifier,filename);if(target.path!==void 0&&isCommonJsFile(target.path)){let clause=contents.slice(edge.importStart+6,edge.start-1).replace(/\bfrom\s*$/,""),attributes=edge.attributesStart<0?"":contents.slice(edge.end+1,edge.importEnd).replace(/;\s*$/,"");edits.push({start:edge.importStart,end:edge.importEnd,text:rewriteCommonJsImport(clause,target.id,`${name}Cjs${commonJsImports++}`,attributes)})}else edits.push({start:edge.start-1,end:edge.end+1,text:JSON.stringify(target.id)})}for(let edit of edits.sort((a2,b2)=>b2.start-a2.start))contents=contents.slice(0,edit.start)+edit.text+contents.slice(edit.end);contents=contents.replace(/^#![^\n]*\n/,""),!hasModuleSyntax&&extension!==".mjs"&&extension!==".mts"&&(commonJs.add(moduleId(filename)),contents=`export default ${name}.commonJs(function (exports, module) {
11
- ${contents}
12
- });`),contents=`import { metadata as ${name}Factory } from "${extensionNamespace}:runtime";
13
- const ${name} = ${name}Factory(${JSON.stringify(registration.generation)}, ${JSON.stringify(filename)});
14
- ${contents}`;let prepared={contents,loader:"js"};return sources.set(filename,prepared),prepared}},registration=registerExtensionGraph(graph,virtualModules);return{async import(path,_options){assertActive();let id=moduleId(realpathSync(resolve(path))),factory=(await import(__rewriteRelativeImportExtension(id))).default;return typeof factory!="function"?factory:function(...args){return graph.assertActive(),factory.apply(this,args)}},compiledFiles(){return[...sources.keys()]},dispose(){active=!1,registration.dispose(),sources.clear(),commonJs.clear(),commonJsModules.clear()}}}export{bunExtensionImporterStats,createBunExtensionImporter};
@@ -1,2 +0,0 @@
1
- import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url); { const __piWorkerThreads = require("node:worker_threads"); if (typeof __piWorkerThreads.markAsUncloneable !== "function") { __piWorkerThreads.markAsUncloneable = () => {}; } }
2
- import{require_semver}from"./chunk-ZOFZRJSL.js";import{fetchWithRetry}from"./chunk-2SOVDETB.js";import{APP_NAME,BRAND,DISPLAY_VERSION,PACKAGE_NAME,brandProfile,envValue}from"./chunk-Y65WFI5H.js";import{__toESM}from"./chunk-IKOFCODM.js";import{close as closeInspector,url as inspectorUrl}from"node:inspector";var VM_DYNAMIC_IMPORT_CALLBACK_MISSING="ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING",INSPECTOR_IMPORT_FRAME="at importModuleDynamicallyCallback (node:internal/modules/esm/",INSPECTOR_TIMEOUT_FRAME=/\bat Timeout\._onTimeout \(<anonymous>:\d+:\d+\)/,RECOVER_INSPECTOR_VM_IMPORT=envValue("RECOVER_INSPECTOR_VM_IMPORT")==="1",INSPECTOR_VM_IMPORT_WARNING="Node Inspector dynamic import is unsupported; use require() or a target-side loader. Senpi kept running.";function hasInheritedInspectorOption(){return process.execArgv.some(argument=>argument.startsWith("--inspect"))||process.env.NODE_OPTIONS?.includes("--inspect")===!0}function releaseInheritedInspectorForChild(){inspectorUrl()!==void 0&&hasInheritedInspectorOption()&&closeInspector()}function isRecoverableInspectorVmImportError(error,origin){if(!RECOVER_INSPECTOR_VM_IMPORT||origin!=="unhandledRejection")return!1;try{return inspectorUrl()===void 0||typeof error!="object"||error===null||!("code"in error)||!("stack"in error)?!1:error.code===VM_DYNAMIC_IMPORT_CALLBACK_MISSING&&typeof error.stack=="string"&&error.stack.includes(INSPECTOR_IMPORT_FRAME)&&INSPECTOR_TIMEOUT_FRAME.test(error.stack)}catch{return!1}}var earlyRecoveryCount=0,earlyRecoveryInstalled=!1;function installEarlyInspectorVmImportRecovery(){!RECOVER_INSPECTOR_VM_IMPORT||earlyRecoveryInstalled||(earlyRecoveryInstalled=!0,process.on("uncaughtException",(error,origin)=>{let otherHandlerActive=process.listenerCount("uncaughtException")>1;if(isRecoverableInspectorVmImportError(error,origin)){otherHandlerActive||earlyRecoveryCount++;return}otherHandlerActive||(console.error(error),process.exit(1))}))}function consumeEarlyInspectorVmImportRecoveries(){let count=earlyRecoveryCount;return earlyRecoveryCount=0,count}function getPiUserAgent(version=DISPLAY_VERSION){let runtime=process.versions.bun?`bun/${process.versions.bun}`:`node/${process.version}`;return`${BRAND?.userAgent??APP_NAME}/${version} (${process.platform}; ${runtime}; ${process.arch})`}var import_semver=__toESM(require_semver(),1);var REGISTRY_BASE_URL="https://registry.npmjs.org",LATEST_VERSION_URL=`${REGISTRY_BASE_URL}/${encodeURIComponent(PACKAGE_NAME)}/latest`;function latestVersionUrl(channel){return channel?`${REGISTRY_BASE_URL}/-/package/${encodeURIComponent(channel.packageName)}/dist-tags`:LATEST_VERSION_URL}function readAvailableVersion(payload,channel){if(typeof payload!="object"||payload===null)return;let source=payload,raw=channel?source[channel.distTag]:source.version;return typeof raw=="string"&&raw.trim()?raw.trim():void 0}var DEFAULT_VERSION_CHECK_TIMEOUT_MS=1e4,RELEASE_CHANGELOG_BASE_URL="https://github.com/code-yeongyu/senpi/blob",RELEASE_CHANGELOG_PATH="packages/coding-agent/CHANGELOG.md",SENPI_CALVER_PATTERN=/^(\d{4})\.(\d{1,2})\.(\d{1,2})(?:-([2-9]\d*))?$/;function parseSenpiCalVer(version){let match=SENPI_CALVER_PATTERN.exec(version);if(match)return[Number(match[1]),Number(match[2]),Number(match[3]),Number(match[4]??1)]}function formatVersionCheckError(error){let rootMessage=error instanceof Error&&error.message?error.message:String(error),cause=error instanceof Error?error.cause:void 0,causes=cause instanceof AggregateError?cause.errors:cause===void 0?[]:[cause],codes=causes.map(value=>typeof value=="object"&&value!==null&&"code"in value&&typeof value.code=="string"?value.code:void 0).filter(code=>code!==void 0);if(codes.length>0)return`${rootMessage} (${[...new Set(codes)].join(", ")})`;let causeMessage=causes.find(value=>value instanceof Error&&!!value.message)?.message;return causeMessage?`${rootMessage} (cause: ${causeMessage})`:rootMessage}function comparePackageVersions(leftVersion,rightVersion){let leftTrimmed=leftVersion.trim(),rightTrimmed=rightVersion.trim(),leftCalVer=parseSenpiCalVer(leftTrimmed),rightCalVer=parseSenpiCalVer(rightTrimmed);if(leftCalVer&&rightCalVer){for(let index=0;index<leftCalVer.length;index++)if(leftCalVer[index]!==rightCalVer[index])return leftCalVer[index]<rightCalVer[index]?-1:1;return 0}let left=(0,import_semver.valid)(leftTrimmed),right=(0,import_semver.valid)(rightTrimmed);if(!(!left||!right))return(0,import_semver.compare)(left,right)}function isNewerPackageVersion(candidateVersion,currentVersion){let comparison=comparePackageVersions(candidateVersion,currentVersion);return comparison!==void 0&&comparison>0}function getReleaseChangelogUrl(version){let trimmedVersion=version.trim(),channel=brandProfile()?.update;if(channel?.changelogUrl)return channel.changelogUrl.replace("{version}",trimmedVersion);let tag=trimmedVersion.startsWith("v")?trimmedVersion:`v${trimmedVersion}`;return`${RELEASE_CHANGELOG_BASE_URL}/${tag}/${RELEASE_CHANGELOG_PATH}`}async function getLatestPiRelease(currentVersion,options={}){if(envValue("OFFLINE"))return;let brand=brandProfile(),channel=brand?.update;if(brand&&!channel)return;let response=await fetchWithRetry(latestVersionUrl(channel),{headers:{"User-Agent":getPiUserAgent(currentVersion),accept:"application/json"}},{maxRetries:options.retry?2:0,timeoutMs:options.timeoutMs??DEFAULT_VERSION_CHECK_TIMEOUT_MS});if(!response.ok)return;let data=await response.json(),availableVersion=readAvailableVersion(data,channel);if(!availableVersion)return;if(channel)return{version:availableVersion,packageName:channel.packageName};let packageName=typeof data.packageName=="string"&&data.packageName.trim()?data.packageName.trim():void 0,note=typeof data.note=="string"&&data.note.trim()?data.note.trim():void 0;return{version:availableVersion,packageName,note}}async function checkForNewPiVersion(currentVersion){if(!envValue("SKIP_VERSION_CHECK"))try{let latestRelease=await getLatestPiRelease(currentVersion);return latestRelease&&isNewerPackageVersion(latestRelease.version,currentVersion)?latestRelease:void 0}catch{return}}export{INSPECTOR_VM_IMPORT_WARNING,hasInheritedInspectorOption,releaseInheritedInspectorForChild,isRecoverableInspectorVmImportError,installEarlyInspectorVmImportRecovery,consumeEarlyInspectorVmImportRecoveries,getPiUserAgent,formatVersionCheckError,isNewerPackageVersion,getReleaseChangelogUrl,getLatestPiRelease,checkForNewPiVersion};
@@ -1,13 +0,0 @@
1
- import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url); { const __piWorkerThreads = require("node:worker_threads"); if (typeof __piWorkerThreads.markAsUncloneable !== "function") { __piWorkerThreads.markAsUncloneable = () => {}; } }
2
- import{HOST_INSTANCE_ID_ENV,MAX_RPC_LINE_CHARACTERS,attachJsonlLineReader,engineBuildIdentity}from"./chunk-UBPMXBOJ.js";import{envValue,getAgentDir,isBunBinary,isBundledNode}from"./chunk-Y65WFI5H.js";import{spawn}from"node:child_process";import{randomUUID}from"node:crypto";import{existsSync,readFileSync as readFileSync3,realpathSync,writeSync}from"node:fs";import{access,chmod as chmod3,mkdir as mkdir5,readFile as readFile5,rename as rename4,rm as rm5,unlink as unlink2,writeFile as writeFile6}from"node:fs/promises";import{createConnection,createServer}from"node:net";import{tmpdir}from"node:os";import{dirname as dirname3,extname,join as join4,resolve}from"node:path";import{fileURLToPath}from"node:url";import{execFile}from"node:child_process";function parseDaemonPidFile(text){let parsed;try{parsed=JSON.parse(text)}catch(error){if(error instanceof SyntaxError)return;throw error}let unguarded=parsed!==null&&isRecord(parsed)&&parsed.processStartTime===null;if(!(!isRecord(parsed)||typeof parsed.pid!="number"||!unguarded&&typeof parsed.processStartTime!="string")&&!(!Number.isInteger(parsed.pid)||parsed.pid<=0)){if(unguarded)return{pid:parsed.pid,processStartTime:null};if(!(typeof parsed.processStartTime!="string"||parsed.processStartTime.trim()===""))return{pid:parsed.pid,processStartTime:parsed.processStartTime}}}var ProcessIdentityUnreadableError=class extends Error{constructor(pid,attempts,cause){super(`process identity for live pid ${pid} stayed unreadable after ${attempts} probe attempt(s): ${cause instanceof Error?cause.message:String(cause)}`),this.name="ProcessIdentityUnreadableError",this.pid=pid,this.attempts=attempts,this.cause=cause}};async function processMatchesPidFile(pidFile,readStartTime=readProcessStartTime,isLive=processIsLive,retry={}){if(pidFile.processStartTime===null){if(!isLive(pidFile.pid))return!1;throw new ProcessIdentityUnreadableError(pidFile.pid,0,new Error("pidfile carries no process identity guard"))}let attempts=Math.max(1,retry.attempts??5),delayMs=retry.delayMs??200,lastError;for(let attempt=1;attempt<=attempts;attempt++)try{let current=await readStartTime(pidFile.pid);if(current!==void 0)return current===pidFile.processStartTime;if(!isLive(pidFile.pid))return!1;lastError=new Error("process identity probe returned no identity for a live process"),attempt<attempts&&await new Promise(resolve2=>setTimeout(resolve2,delayMs))}catch(error){if(!isLive(pidFile.pid))return!1;lastError=error,attempt<attempts&&await new Promise(resolve2=>setTimeout(resolve2,delayMs))}throw new ProcessIdentityUnreadableError(pidFile.pid,attempts,lastError)}async function readProcessIdentity(pid,platform=process.platform,timeoutMs,isLive=processIsLive){let command=platform==="win32"?{executable:"powershell.exe",args:["-NoProfile","-NonInteractive","-Command",`$process = Get-CimInstance Win32_Process -Filter "ProcessId=${String(pid)}" -ErrorAction Stop; if ($null -eq $process) { Write-Output '__SENPI_ABSENT__'; exit 0 }; $process.CreationDate.ToFileTimeUtc().ToString("D", [Globalization.CultureInfo]::InvariantCulture)`]}:{executable:"ps",args:["-o","lstart=","-p",String(pid)]};return new Promise(resolve2=>{let effectiveTimeoutMs=timeoutMs??(platform==="win32"?1e3:void 0);execFile(command.executable,command.args,{windowsHide:!0,...effectiveTimeoutMs===void 0?{}:{timeout:effectiveTimeoutMs}},(error,stdout)=>{if(error){let code="code"in error?error.code:void 0;if(platform!=="win32"&&code===1||!isLive(pid)){resolve2({kind:"absent"});return}resolve2({kind:"error",error});return}let output=stdout.trim();if(output==="__SENPI_ABSENT__")return resolve2({kind:"absent"});if(!output||platform==="win32"&&!/^\d+$/.test(output))return resolve2({kind:"error",error:new Error("invalid process identity output")});resolve2({kind:"present",identity:output})}).once("error",error=>resolve2({kind:"error",error}))})}async function stopValidatedPid(pidFile,signal){if(await processMatchesPidFile(pidFile)){try{process.kill(pidFile.pid,signal)}catch(error){if(!isNodeErrorCode(error,"ESRCH"))throw error}signal==="SIGTERM"&&await waitForGone(pidFile,1e4),signal==="SIGKILL"&&await waitForGone(pidFile,2e3)}}async function waitForGone(pidFile,timeoutMs){let deadline=Date.now()+timeoutMs;for(;Date.now()<=deadline;){if(!await processMatchesPidFile(pidFile))return!0;await delay(100)}return!await processMatchesPidFile(pidFile)}async function readProcessStartTime(pid,platform=process.platform,timeoutMs){return readProcessIdentity(pid,platform,timeoutMs).then(result=>{if(result.kind==="error")throw result.error;return result.kind==="present"?result.identity:void 0})}function processIsLive(pid){try{return process.kill(pid,0),!0}catch(error){if(isNodeErrorCode(error,"ESRCH"))return!1;if(isNodeErrorCode(error,"EPERM"))return!0;throw error}}async function waitForStartTime(pid,timeoutMs,readStartTime=readProcessStartTime,isLive=processIsLive){let deadline=Date.now()+timeoutMs;for(;Date.now()<=deadline;){let startTime;try{startTime=await readStartTime(pid)}catch{}if(startTime)return startTime;await delay(20)}if(!isLive(pid))throw new Error(`spawned daemon pid ${pid} had no process start time`)}function delay(ms){return new Promise(resolveDelay=>setTimeout(resolveDelay,ms))}function isRecord(value){return typeof value=="object"&&value!==null&&!Array.isArray(value)}function isNodeErrorCode(error,code){return error instanceof Error&&"code"in error&&error.code===code}import{appendFileSync,mkdirSync,readFileSync,writeFileSync}from"node:fs";import{join}from"node:path";var HOST_CRASH_RECORD_LIMIT=50,CRASH_RECORD_FILE_MODE=384;function hostCrashRecordFile(daemonDir){return join(daemonDir,"crashes.jsonl")}function recordHostCrash(daemonDir,record){try{mkdirSync(daemonDir,{recursive:!0,mode:448}),appendFileSync(hostCrashRecordFile(daemonDir),`${JSON.stringify(record)}
3
- `,{mode:CRASH_RECORD_FILE_MODE}),pruneHostCrashRecords(daemonDir)}catch{}}function readHostCrashRecords(daemonDir){let raw;try{raw=readFileSync(hostCrashRecordFile(daemonDir),"utf8")}catch{return[]}let records=[];for(let line of raw.split(`
4
- `))if(line.trim()!=="")try{let value=JSON.parse(line);typeof value=="object"&&value!==null&&typeof Reflect.get(value,"at")=="string"&&records.push(value)}catch{}return records}function pruneHostCrashRecords(daemonDir){let records=readHostCrashRecords(daemonDir);if(records.length<=HOST_CRASH_RECORD_LIMIT)return;let kept=records.slice(records.length-HOST_CRASH_RECORD_LIMIT);writeFileSync(hostCrashRecordFile(daemonDir),`${kept.map(r=>JSON.stringify(r)).join(`
5
- `)}
6
- `,{mode:CRASH_RECORD_FILE_MODE})}function classifyChildExit(code,signal){return code===0&&signal===null?{reason:"rpc host exited on its own idle policy",exitCode:0}:{reason:`rpc host process exited unexpectedly (${code??signal})`,exitCode:1}}function noteChildExit(daemonDir,code,signal,childStartedAt,now=Date.now()){classifyChildExit(code,signal).exitCode!==0&&recordHostCrash(daemonDir,{at:new Date(now).toISOString(),...signal===null?{code:code??void 0}:{signal},uptimeMs:Math.max(0,now-childStartedAt)})}import{createHash}from"node:crypto";import{chmod,mkdir,writeFile}from"node:fs/promises";import{basename,join as join2,win32}from"node:path";var HOST_DAEMON_LAYOUT=2,HOST_DAEMON_DIR_ENV="SENPI_RPC_HOST_DAEMON_DIR",DIRECTORY_MODE=448,HOST_STATE_FILE_MODE=384;function daemonDirectoryName(socket,platform=process.platform){let canonical=platform==="win32"?win32.normalize(socket).toLowerCase():socket;return createHash("sha256").update(canonical,"utf8").digest("hex").slice(0,16)}function createHostDaemonPaths(target){let flatDir=join2(target.agentDir??getAgentDir(),"rpc-host-daemon");return{flatDir,layoutMarker:join2(flatDir,"layout.json"),legacyPidFile:join2(flatDir,"host.pid"),...hostDaemonDirectoryPaths(join2(flatDir,daemonDirectoryName(target.socket)))}}function hostDaemonDirectoryPaths(dir){return{dir,pointerFile:join2(dir,"host.pid"),lockFile:join2(dir,"daemon.lock"),settingsFile:join2(dir,"settings.json"),stderrLog:join2(dir,"stderr.log"),generationsDir:join2(dir,"generations"),reservationsDir:join2(dir,"reservations")}}function generationPaths(paths,instanceId){let dir=join2(paths.generationsDir,instanceId);return{dir,relativeDir:`generations/${instanceId}`,pidFile:join2(dir,"host.pid"),settingsFile:join2(dir,"settings.json"),scratchDir:join2(dir,"scratch")}}var HostDaemonStateError=class extends Error{constructor(path,cause){super(`RPC daemon state directory ${path} is not usable: ${cause instanceof Error?cause.message:cause}`,{cause}),this.name="HostDaemonStateError",this.path=path}};async function createDaemonDirectories(paths){try{await mkdir(paths.flatDir,{recursive:!0,mode:DIRECTORY_MODE});for(let directory of[paths.dir,paths.generationsDir,paths.reservationsDir])await mkdir(directory,{recursive:!0,mode:DIRECTORY_MODE}),await chmod(directory,DIRECTORY_MODE);await writeFile(paths.layoutMarker,`${JSON.stringify({layout:HOST_DAEMON_LAYOUT,dir:basename(paths.dir)})}
7
- `,{mode:HOST_STATE_FILE_MODE})}catch(cause){throw new HostDaemonStateError(paths.dir,cause)}}async function createGenerationDirectory(generation){try{await mkdir(generation.scratchDir,{recursive:!0,mode:DIRECTORY_MODE}),await chmod(generation.dir,DIRECTORY_MODE)}catch(cause){throw new HostDaemonStateError(generation.dir,cause)}}import{rename as rename2,rm as rm3}from"node:fs/promises";import{readFile,writeFile as writeFile2}from"node:fs/promises";async function writeHostSettings(paths,settings){let generation=generationPaths(paths,settings.instanceId);await createGenerationDirectory(generation),await writeStateFile(paths.settingsFile,settings),await writeStateFile(generation.settingsFile,settings)}async function readHostSettings(paths){let parsed=parseJson(await readFileOrUndefined(paths.settingsFile));if(parsed)return{...typeof parsed.coldStart=="string"&&{coldStart:parsed.coldStart},...typeof parsed.idleExitMs=="number"&&{idleExitMs:parsed.idleExitMs}}}async function writeStateFile(path,content){try{await writeFile2(path,`${JSON.stringify(content)}
8
- `,{mode:HOST_STATE_FILE_MODE})}catch(cause){throw new HostDaemonStateError(path,cause)}}async function readFileOrUndefined(path){try{return await readFile(path,"utf8")}catch(error){if(isNodeErrorCode2(error,"ENOENT")||isNodeErrorCode2(error,"ENOTDIR"))return;throw error}}function parseJson(text){if(text!==void 0)try{let parsed=JSON.parse(text);return isRecord2(parsed)?parsed:void 0}catch{return}}function isRecord2(value){return typeof value=="object"&&value!==null&&!Array.isArray(value)}function isNodeErrorCode2(error,code){return error instanceof Error&&"code"in error&&error.code===code}import{readdir as readdir3,rm as rm2}from"node:fs/promises";import{readdir}from"node:fs/promises";import{readdirSync,readFileSync as readFileSync2}from"node:fs";function supportedPlatform(platform){return platform==="darwin"||platform==="linux"?platform:void 0}async function loadProcessTableReader(platform=process.platform,options={}){let supported=supportedPlatform(platform);return supported===void 0||typeof globalThis.Bun>"u"?void 0:supported==="darwin"?await darwinReader(options):linuxReader}var KINFO_PROC_STRIDE=648,KINFO_PID_OFFSET=40,KINFO_PPID_OFFSET=560,KINFO_STAT_OFFSET=36,SZOMB=5,PROC_PIDTASKINFO=4,TASKINFO_RESIDENT_OFFSET=8,TABLE_START_BYTES=1<<20,TABLE_MAX_BYTES=32<<20;function parseKernelProcessTable(table,rowCount,residentKb){if(rowCount<=0||table.byteLength<rowCount*KINFO_PROC_STRIDE)return;let view=new DataView(table.buffer,table.byteOffset,table.byteLength),rows=[],selfSeen=!1;for(let index=0;index<rowCount;index++){let base=index*KINFO_PROC_STRIDE,pid=view.getUint32(base+KINFO_PID_OFFSET,!0);if(!Number.isInteger(pid)||pid<=0)continue;let ppid=view.getUint32(base+KINFO_PPID_OFFSET,!0),zombie=table[base+KINFO_STAT_OFFSET]===SZOMB;if(pid===process.pid){if(ppid!==process.ppid||zombie)return;selfSeen=!0}rows.push({pid,ppid,state:zombie?"Z":"U",rssKb:residentKb(pid)})}return selfSeen?rows:void 0}async function darwinReader(options){let{dlopen,FFIType,ptr}=await import("bun:ffi"),library=dlopen("libSystem.B.dylib",{sysctl:{args:[FFIType.ptr,FFIType.u32,FFIType.ptr,FFIType.ptr,FFIType.ptr,FFIType.i32],returns:FFIType.i32},proc_pidinfo:{args:[FFIType.i32,FFIType.i32,FFIType.u32,FFIType.ptr,FFIType.i32],returns:FFIType.i32}}),mib=new Int32Array([1,14,0]),none=new Uint8Array(1),requested=options.initialTableBytes,table=new Uint8Array(Number.isFinite(requested)&&requested!==void 0&&requested>0?Math.min(Math.floor(requested),TABLE_MAX_BYTES):TABLE_START_BYTES),length=new Uint32Array(1),taskInfo=new Uint8Array(256),taskView=new DataView(taskInfo.buffer),residentKb=pid=>(taskInfo.fill(0),library.symbols.proc_pidinfo(pid,PROC_PIDTASKINFO,0,ptr(taskInfo),taskInfo.byteLength)>0?Math.round(Number(taskView.getBigUint64(TASKINFO_RESIDENT_OFFSET,!0))/1024):0);return()=>{for(;;){if(length[0]=table.byteLength,library.symbols.sysctl(ptr(mib),mib.length,ptr(table),ptr(length),ptr(none),0)!==0){if(table.byteLength>=TABLE_MAX_BYTES)return;let reported=length[0]>table.byteLength?length[0]:0;table=new Uint8Array(Math.min(TABLE_MAX_BYTES,Math.max(table.byteLength*2,reported)));continue}return parseKernelProcessTable(table,Math.floor(length[0]/KINFO_PROC_STRIDE),residentKb)}}}function linuxReader(){let rows=[];for(let entry of readdirSync("/proc")){let pid=Number(entry);if(!Number.isInteger(pid)||pid<=0)continue;let stat2;try{stat2=readFileSync2(`/proc/${pid}/stat`,"utf8")}catch{continue}let tail=stat2.slice(stat2.lastIndexOf(")")+2).split(" "),state=tail[0],ppid=Number(tail[1]);if(state===void 0||!Number.isInteger(ppid))continue;let rssPages=Number(tail[21]);rows.push({pid,ppid,state,rssKb:Number.isFinite(rssPages)?Math.round(rssPages*4):0})}return rows}var UNOBSERVED={rss_mb:null,open_fds:null,zombies:null},readers=new Map;function tableReader(platform){let cached=readers.get(platform);if(cached!==void 0)return cached;let loading=loadProcessTableReader(platform);return readers.set(platform,loading),loading}async function readHostProcessMetrics(pid,platform=process.platform){if(platform==="win32")return UNOBSERVED;let read=await tableReader(platform);if(read===void 0)return UNOBSERVED;let rows=read();if(rows===void 0)return UNOBSERVED;let tree=descendants(rows,pid);return tree.length===0?UNOBSERVED:{rss_mb:Math.round(tree.reduce((total,row)=>total+row.rssKb,0)/KILOBYTES_PER_MEGABYTE),open_fds:platform==="linux"?await openDescriptors(tree):null,zombies:tree.filter(row=>row.state.startsWith("Z")).length}}function descendants(rows,root){let tree=rows.filter(row=>row.pid===root);if(tree.length===0)return tree;for(let index=0;index<tree.length;index++){let parent=tree[index].pid;for(let row of rows)row.ppid===parent&&!tree.includes(row)&&tree.push(row)}return tree}var KILOBYTES_PER_MEGABYTE=1024;async function openDescriptors(tree){let total=0,counted=!1;for(let row of tree){let entries=await readdir(`/proc/${row.pid}/fd`).catch(()=>{});entries!==void 0&&(counted=!0,total+=entries.length)}return counted?total:null}import{createHash as createHash2}from"node:crypto";import{mkdir as mkdir2,readdir as readdir2,readFile as readFile2,rename,rm,writeFile as writeFile3}from"node:fs/promises";import{join as join3}from"node:path";var SESSION_PATH_RETRY_AFTER_MS=2e3;function reservationFile(dir,sessionPath){return join3(dir,`${createHash2("sha256").update(sessionPath,"utf8").digest("hex").slice(0,16)}.json`)}function createEndpointReservations(host){let told=process.env[HOST_DAEMON_DIR_ENV],dir=told!==void 0&&told.trim()!==""?told:host.socket===void 0?void 0:createHostDaemonPaths({socket:host.socket,agentDir:host.agentDir}).dir;if(dir!==void 0)return createSessionPathReservations({daemonDir:dir,instanceId:host.instanceId,...host.onFailure?{onFailure:host.onFailure}:{}})}function createSessionPathReservations(options){let paths=hostDaemonDirectoryPaths(options.daemonDir),dir=paths.reservationsDir,pid=options.pid??process.pid,startTime=readProcessStartTime(pid).then(value=>value??null,()=>null),held=new Set,report=message=>options.onFailure?.(message),publish=async(sessionPath,attached,stillHeld)=>{let owner={instanceId:options.instanceId,pid,processStartTime:await startTime,sessionPath,attached},file=reservationFile(dir,sessionPath);await mkdir2(dir,{recursive:!0,mode:448});let staging=`${file}.${pid}.tmp`;if(await writeFile3(staging,`${JSON.stringify(owner)}
9
- `,{mode:384}),stillHeld?.()===!1){await rm(staging,{force:!0});return}await rename(staging,file)};return{async claim(sessionPath,attached=!0){let existing=await readOwner(reservationFile(dir,sessionPath));if(existing&&existing.pid!==pid){let standing=await standingOwner(existing,paths.pointerFile);if(standing)return standing}try{await publish(sessionPath,attached),held.add(sessionPath)}catch(cause){report(`session path reservation for ${sessionPath} could not be written (${errorMessage(cause)})`)}},release(sessionPath){held.delete(sessionPath)&&rm(reservationFile(dir,sessionPath),{force:!0}).catch(cause=>{report(`session path reservation for ${sessionPath} could not be removed (${errorMessage(cause)})`)})},setAttached(sessionPath,attached){held.has(sessionPath)&&publish(sessionPath,attached,()=>held.has(sessionPath)).catch(cause=>{report(`session path reservation for ${sessionPath} could not be updated (${errorMessage(cause)})`)})}}}async function readSessionPathClaims(dir){let entries=await readdir2(dir).catch(()=>[]),claims=[];for(let entry of entries){if(!entry.endsWith(".json"))continue;let file=join3(dir,entry),owner=await readOwner(file);owner&&claims.push({file,owner})}return claims}async function standingOwner(owner,pointerFile){if(!await claimOwnerIsLive(owner))return;let current=await currentInstanceId(pointerFile)===owner.instanceId;return current||owner.attached!==!1?{...owner,current}:void 0}async function currentInstanceId(pointerFile){let pointer=parseJson(await readFileOrUndefined(pointerFile).catch(()=>{}));return typeof pointer?.instance_id=="string"?pointer.instance_id:void 0}async function readOwner(file){let parsed;try{parsed=JSON.parse(await readFile2(file,"utf8"))}catch{return}if(typeof parsed!="object"||parsed===null)return;let{instanceId,pid,processStartTime,sessionPath,attached}=parsed;if(!(typeof instanceId!="string"||typeof pid!="number"||typeof sessionPath!="string"))return{instanceId,pid,processStartTime:typeof processStartTime=="string"?processStartTime:null,sessionPath,...typeof attached=="boolean"?{attached}:{}}}async function claimOwnerIsLive(owner){if(!processIsLive(owner.pid))return!1;if(owner.processStartTime===null)return!0;let current=await readProcessStartTime(owner.pid).catch(()=>{});return current===void 0||current===owner.processStartTime}function errorMessage(cause){return cause instanceof Error?cause.message:String(cause)}async function pruneDeadGenerations(paths){let pointer=parseJson(await readFileOrUndefined(paths.pointerFile).catch(()=>{})),pointedAt=typeof pointer?.instance_id=="string"?pointer.instance_id:void 0,generations=[];for(let instanceId of await readdir3(paths.generationsDir).catch(()=>[])){let record=parseJson(await readFileOrUndefined(generationPaths(paths,instanceId).pidFile));typeof record?.pid!="number"||processIsLive(record.pid)||(await rm2(generationPaths(paths,instanceId).dir,{recursive:!0,force:!0}).catch(()=>{}),generations.push(instanceId))}let pointerRemoved=pointedAt!==void 0&&generations.includes(pointedAt);pointerRemoved&&await rm2(paths.pointerFile,{force:!0}).catch(()=>{});let claims=[];for(let claim of await readSessionPathClaims(paths.reservationsDir))await claimOwnerIsLive(claim.owner)||(await rm2(claim.file,{force:!0}).catch(()=>{}),claims.push(claim.owner.sessionPath));return{generations,claims,pointer:pointerRemoved}}async function readGenerationRows(paths){let pointer=parseJson(await readFileOrUndefined(paths.pointerFile).catch(()=>{})),currentId=typeof pointer?.instance_id=="string"?pointer.instance_id:void 0,claims=await readSessionPathClaims(paths.reservationsDir),rows=[];for(let instanceId of await readdir3(paths.generationsDir).catch(()=>[])){let record=parseJson(await readFileOrUndefined(generationPaths(paths,instanceId).pidFile));typeof record?.pid!="number"||!processIsLive(record.pid)||rows.push({instanceId,generation:typeof record.generation=="number"?record.generation:0,pid:record.pid,engineVersion:typeof record.engineVersion=="string"?record.engineVersion:null,rss_mb:(await readHostProcessMetrics(record.pid)).rss_mb,sessions:claims.filter(claim=>claim.owner.instanceId===instanceId).length,current:instanceId===currentId,alive:!0})}return rows.sort((left,right)=>left.generation-right.generation)}async function readHostRegistration(paths){let pointer=parseJson(await readFileOrUndefined(paths.pointerFile));if(!pointer||typeof pointer.instance_id!="string")return;let text=await readFileOrUndefined(generationPaths(paths,pointer.instance_id).pidFile),record=text===void 0?void 0:parseDaemonPidFile(text);if(record===void 0)return;let parsed=parseJson(text)??{},writer=parseWriter(parsed);return{record,...writer&&{writer},...typeof parsed.socket=="string"&&{socket:parsed.socket},instanceId:pointer.instance_id,generation:typeof parsed.generation=="number"?parsed.generation:0}}async function writeHostRegistration(paths,registration){await pruneDeadGenerations(paths);let generation=generationPaths(paths,registration.instanceId),writer={pid:process.pid,startTime:await thisProcessStartTime()},build=engineBuildIdentity();await createGenerationDirectory(generation),await writeStateFile(generation.pidFile,{...registration.record,instance_id:registration.instanceId,generation:registration.generation,engineVersion:build.text,engineOrdinal:build.ordinal,launchProfileId:registration.launchProfileId,socket:registration.socket,writer}),await writeStateFile(`${paths.pointerFile}.${process.pid}.tmp`,{layout:HOST_DAEMON_LAYOUT,instance_id:registration.instanceId,generation_dir:generation.relativeDir,writer}),await rename2(`${paths.pointerFile}.${process.pid}.tmp`,paths.pointerFile)}async function clearHostRegistration(paths){let pointer=parseJson(await readFileOrUndefined(paths.pointerFile));typeof pointer?.instance_id=="string"&&await rm3(generationPaths(paths,pointer.instance_id).dir,{recursive:!0,force:!0}),await rm3(paths.pointerFile,{force:!0}),await rm3(paths.settingsFile,{force:!0})}async function releaseGeneration(paths,owner){let generation=generationPaths(paths,owner.instanceId),record=parseDaemonPidFile(await readFileOrUndefined(generation.pidFile)??"");if(record!==void 0&&record.pid!==owner.pid)return;parseJson(await readFileOrUndefined(paths.pointerFile))?.instance_id===owner.instanceId&&(await rm3(paths.pointerFile,{force:!0}),await rm3(paths.settingsFile,{force:!0})),await rm3(generation.dir,{recursive:!0,force:!0})}async function readLegacyHostRecord(paths){let text=await readFileOrUndefined(paths.legacyPidFile);return text===void 0?void 0:parseDaemonPidFile(text)}async function provenOwner(registered,socket){let record=registered?.record;if(!record||record.processStartTime===null||registered?.socket!==void 0&&registered.socket!==socket)return;let identity={pid:record.pid,processStartTime:record.processStartTime};return await processMatchesPidFile(identity,readProcessStartTime).catch(()=>!1)?{...identity,instanceId:registered.instanceId}:void 0}async function legacyHostIsLive(paths,probe){let record=await readLegacyHostRecord(paths);if(record===void 0)return!1;try{return await processMatchesPidFile(record,probe)}catch(error){if(error instanceof ProcessIdentityUnreadableError)return!0;throw error}}async function writtenByThisProcess(writer){return writer===void 0||writer.pid!==process.pid||writer.startTime===null?!1:writer.startTime===await thisProcessStartTime()}var selfStartTime;function thisProcessStartTime(){return selfStartTime??=readProcessStartTime(process.pid).then(value=>value??null,()=>null),selfStartTime}function parseWriter(parsed){if(!isRecord2(parsed.writer)||typeof parsed.writer.pid!="number")return;let{pid,startTime}=parsed.writer;return{pid,startTime:typeof startTime=="string"?startTime:null}}import{mkdir as mkdir3,readFile as readFile3,rename as rename3,stat,unlink,writeFile as writeFile4}from"node:fs/promises";import{dirname}from"node:path";var PUBLIC_SOCKET_IDENTITY_FILE="public-socket.owner",SOCKET_IDENTITY_WAIT_MS=3e4,MAX_SOCKET_PATH_BYTES=103;function generationBindPath(publicSocket,generation){return`${publicSocket}.next-${generation}`}function sameSocketIdentity(a,b){return a.dev===b.dev&&a.ino===b.ino}async function statSocketIdentity(socketPath){try{let{dev,ino}=await stat(socketPath);return{dev,ino}}catch(cause){if(isNodeErrorCode3(cause,"ENOENT"))return;throw cause}}async function classifyEndpointOwnership(socketPath,identity){if(identity===void 0||process.platform==="win32"||socketPath.startsWith("\0"))return"unknown";let current;try{current=await statSocketIdentity(socketPath)}catch{return"unknown"}return current===void 0?"absent":sameSocketIdentity(current,identity)?"held":"replaced"}async function socketEntryReplaced(socketPath,identity){return await classifyEndpointOwnership(socketPath,identity)==="replaced"}async function writeSocketIdentityFile(path,identity){await mkdir3(dirname(path),{recursive:!0,mode:448});let tmpPath=`${path}.${process.pid}.tmp`;await writeFile4(tmpPath,`${JSON.stringify(identity)}
10
- `,{mode:384}),await rename3(tmpPath,path)}async function readSocketIdentityFile(path){let raw;try{raw=await readFile3(path,"utf8")}catch(cause){if(isNodeErrorCode3(cause,"ENOENT"))return;throw cause}let parsed;try{parsed=JSON.parse(raw)}catch{return}if(!(typeof parsed!="object"||parsed===null||typeof parsed.dev!="number"||typeof parsed.ino!="number"))return{dev:parsed.dev,ino:parsed.ino}}async function waitForSocketIdentityFile(path,timeoutMs=SOCKET_IDENTITY_WAIT_MS,intervalMs=25){let deadline=Date.now()+timeoutMs;for(;;){let identity=await readSocketIdentityFile(path);if(identity!==void 0)return identity;if(Date.now()>=deadline)return;await delayUnrefed(intervalMs)}}async function unlinkOwnedSocket(socketPath,identity,log){if(process.platform==="win32"||socketPath.startsWith("\0"))return;let current;try{current=await statSocketIdentity(socketPath)}catch(cause){log(`socket ${socketPath} ownership could not be verified (${errorMessage2(cause)}); leaving it`);return}if(current!==void 0){if(identity===void 0){log(`socket path ${socketPath} ownership unknown; leaving it`);return}if(!sameSocketIdentity(current,identity)){log(`socket path ${socketPath} now owned by another host; leaving it`);return}try{await unlink(socketPath)}catch(cause){isNodeErrorCode3(cause,"ENOENT")||log(`socket ${socketPath} removal failed (${errorMessage2(cause)})`)}}}async function shieldSocketDuringClose(socketPath,close){if(process.platform==="win32"||socketPath.startsWith("\0"))return close();let shieldPath=`${socketPath}.shield-${process.pid}`,shielded=!1;try{await statSocketIdentity(socketPath)!==void 0&&(await rename3(socketPath,shieldPath),shielded=!0)}catch{}try{await close()}finally{if(shielded)try{await rename3(shieldPath,socketPath)}catch{}}}function delayUnrefed(ms){return new Promise(resolve2=>{setTimeout(resolve2,ms).unref?.()})}function errorMessage2(cause){return cause instanceof Error?cause.message:String(cause)}function isNodeErrorCode3(cause,code){return cause instanceof Error&&"code"in cause&&cause.code===code}var SUPERSESSION_POLL_MS=1e3,ABSENT_CONFIRMATIONS=3;function watchForSupersession(endpoint,onLost){if(endpoint.identity===void 0||process.platform==="win32")return()=>{};let absentPolls=0,lost=!1,lose=loss=>{lost||(lost=!0,stop(),onLost(loss))},timer=setInterval(()=>{endpoint.settled?.()!==!0&&classifyEndpointOwnership(endpoint.path,endpoint.identity).then(ownership=>{if(endpoint.settled?.()!==!0)switch(ownership){case"replaced":lose("replaced");return;case"absent":if(absentPolls+=1,absentPolls<ABSENT_CONFIRMATIONS)return;lose("absent");return;case"held":case"unknown":absentPolls=0;return}},ignore)},SUPERSESSION_POLL_MS);timer.unref?.();let stop=()=>clearInterval(timer);return stop}function ignore(){}import{rmSync}from"node:fs";import{rm as rm4}from"node:fs/promises";import{Socket}from"node:net";var HOST_WATCH_FD_ENV="SENPI_RPC_HOST_WATCH_FD",HOST_SCRATCH_DIR_ENV="SENPI_RPC_HOST_SCRATCH_DIR",HOST_PUBLIC_SOCKET_ENV="SENPI_RPC_HOST_PUBLIC_SOCKET",HOST_WATCH_PPID_ENV="SENPI_RPC_HOST_WATCH_PPID",HOST_WATCH_PPID_INTERVAL_MS=250,HOST_CLEANUP_PATHS_ENV="SENPI_RPC_HOST_CLEANUP_PATHS";function parsePositiveInteger(value){if(value===void 0||!/^\d+$/.test(value.trim()))return;let parsed=Number(value.trim());return Number.isSafeInteger(parsed)&&parsed>0?parsed:void 0}function readHostWatchdogConfig(env=process.env){let fd=parsePositiveInteger(env[HOST_WATCH_FD_ENV]),ppid=parsePositiveInteger(env[HOST_WATCH_PPID_ENV]);if(fd===void 0&&ppid===void 0)return;let scratchDir=env[HOST_SCRATCH_DIR_ENV],cleanupPaths=env[HOST_CLEANUP_PATHS_ENV]?.split(`
11
- `).filter(Boolean),publicSocket=env[HOST_PUBLIC_SOCKET_ENV];return{fd,ppid,scratchDir:scratchDir===void 0||scratchDir===""?void 0:scratchDir,cleanupPaths,publicSocket:publicSocket===""?void 0:publicSocket}}function readHostWatchdogConfigFromBrandEnv(){return readHostWatchdogConfig({[HOST_WATCH_FD_ENV]:process.env[HOST_WATCH_FD_ENV]??envValue("RPC_HOST_WATCH_FD"),[HOST_WATCH_PPID_ENV]:process.env[HOST_WATCH_PPID_ENV]??envValue("RPC_HOST_WATCH_PPID"),[HOST_SCRATCH_DIR_ENV]:process.env[HOST_SCRATCH_DIR_ENV]??envValue("RPC_HOST_SCRATCH_DIR"),[HOST_PUBLIC_SOCKET_ENV]:process.env[HOST_PUBLIC_SOCKET_ENV]??envValue("RPC_HOST_PUBLIC_SOCKET"),[HOST_CLEANUP_PATHS_ENV]:process.env[HOST_CLEANUP_PATHS_ENV]??envValue("RPC_HOST_CLEANUP_PATHS")})}function armHostWatchdog(config,onSupervisorGone){if(!config)return()=>{};let fire=reason=>{disarm();let captured=captureBeforeCleanup(config);if(process.platform==="win32"){let cleanup=captured.then(()=>cleanupWatchdogPaths(config));onSupervisorGone(reason,cleanup)}else captured.then(()=>cleanupWatchdogPaths(config)).finally(()=>onSupervisorGone(reason))},disarmers=[],disarm=()=>{for(let stop of disarmers.splice(0))stop()};return config.fd!==void 0&&disarmers.push(watchFdForEof(config.fd,fire)),config.ppid!==void 0&&disarmers.push(watchPpid(config.ppid,fire)),disarm}function watchFdForEof(fd,fire){let stream,streamFailed=!1,fired=!1,fireOnce=reason=>{fired||(fired=!0,fire(reason))};try{stream=new Socket({fd,readable:!0,writable:!1})}catch{return()=>{}}stream.resume();let onEnd=()=>fireOnce(`supervisor pipe fd ${fd} closed`),onClose=()=>{streamFailed||onEnd()},onError=()=>{streamFailed=!0};return stream.once("end",onEnd),process.platform==="win32"&&stream.once("close",onClose),stream.once("error",onError),()=>{stream.off("end",onEnd),stream.off("close",onClose),stream.off("error",onError),stream.destroy()}}function watchPpid(supervisorPid,fire){if(supervisorPid===process.pid)return()=>{};let timer=setInterval(()=>{if(!processAlive(supervisorPid)){fire(`supervisor pid ${supervisorPid} is gone (ppid=${process.ppid})`);return}process.ppid!==supervisorPid&&fire(`supervisor pid ${supervisorPid} is gone (ppid=${process.ppid})`)},HOST_WATCH_PPID_INTERVAL_MS);return timer.unref?.(),()=>clearInterval(timer)}function processAlive(pid){try{return process.kill(pid,0),!0}catch(cause){return cause instanceof Error&&"code"in cause&&cause.code!=="ESRCH"}}function captureBeforeCleanup(config){return config.beforeCleanup===void 0?Promise.resolve():Promise.resolve().then(config.beforeCleanup).catch(()=>{})}async function cleanupWatchdogPaths(config){let paths=[...config.cleanupPaths??[],...config.scratchDir?[config.scratchDir]:[]];if(process.platform==="win32"){for(let path of paths)try{rmSync(path,{recursive:!0,force:!0,maxRetries:10,retryDelay:100})}catch{}return}await Promise.all(paths.map(async path=>{try{await rm4(path,{recursive:!0,force:!0})}catch{}}))}function activeTurnsForIdleDecision(input){return input.healthy?input.observedBusy:input.unhealthySince===void 0||input.now-input.unhealthySince<input.unknownGraceMs?1:0}function createObserverLink(options){let current,healthy=!1,unhealthySince,retry,armRetry=()=>{retry!==void 0||options.settled()||(retry=options.setTimer(()=>{retry=void 0,open().catch(armRetry)},options.retryDelayMs))};async function open(){let socket=await options.open();current=socket,healthy=!0,unhealthySince=void 0,socket.onLost(()=>{current!==socket||options.settled()||(healthy=!1,unhealthySince??=options.now(),current=void 0,armRetry())})}return{open,healthy:()=>healthy,unhealthySince:()=>unhealthySince,stop:()=>{retry?.cancel(),retry=void 0,current=void 0}}}import{createHash as createHash3,randomBytes,timingSafeEqual}from"node:crypto";import{chmod as chmod2,mkdir as mkdir4,readFile as readFile4,writeFile as writeFile5}from"node:fs/promises";import{dirname as dirname2,win32 as win322}from"node:path";var WINDOWS_PIPE_PREFIX="\\\\.\\pipe\\senpi-rpc-",SOCKET_SECRET_BYTES=32,SOCKET_SECRET_SUFFIX=".secret",SOCKET_SECRET_FILE_ENV="SENPI_RPC_SOCKET_SECRET_FILE",SOCKET_HANDSHAKE_TIMEOUT_MS=2e3;function socketSecretPath(logicalPath){if(logicalPath.toLowerCase().startsWith("\\\\.\\pipe\\"))throw new Error(`Windows RPC named-pipe addresses need a logical filesystem path for their secret: ${logicalPath}`);return`${logicalPath}${SOCKET_SECRET_SUFFIX}`}async function ensureSocketSecret(path){try{let existing=await readFile4(path);if(existing.length===SOCKET_SECRET_BYTES)return existing}catch(error){if(!isNodeErrorCode4(error,"ENOENT"))throw error}return createSocketSecret(path)}async function createSocketSecret(path){await mkdir4(dirname2(path),{recursive:!0});let secret=randomBytes(SOCKET_SECRET_BYTES);return await writeFile5(path,secret,{mode:384}),await chmod2(path,384),secret}async function readSocketSecret(path){let secret=await readFile4(path);if(secret.length!==SOCKET_SECRET_BYTES)throw new Error(`invalid RPC socket secret: ${path}`);return secret}function resolveSocketTransportAddress(socketPath,platform,secret){if(platform!=="win32"||socketPath.toLowerCase().startsWith("\\\\.\\pipe\\"))return socketPath;if(!/^[a-zA-Z]:[\\/]/.test(socketPath)&&!/^\\\\[^/]/.test(socketPath))throw new Error(`Windows RPC socket path must be drive-qualified or UNC: ${socketPath}`);let canonical=win322.normalize(socketPath).toLowerCase(),identity=Buffer.concat([Buffer.from(canonical,"utf8"),Buffer.from(secret??[])]),name=createHash3("sha256").update(identity).digest("hex").slice(0,32);return`${WINDOWS_PIPE_PREFIX}${name}`}function authenticateSocket(socket,secret,onAuthenticated){let received=Buffer.alloc(0),finish=()=>{clearTimeout(timer),socket.off("data",onData),socket.off("error",onError)},onError=()=>{finish(),socket.destroy()},timer=setTimeout(()=>{finish(),socket.destroy()},SOCKET_HANDSHAKE_TIMEOUT_MS),onData=chunk=>{if(received=Buffer.concat([received,chunk]),received.length<secret.length)return;if(finish(),!timingSafeEqual(received.subarray(0,secret.length),Buffer.from(secret))){socket.destroy();return}let remainder=received.subarray(secret.length);remainder.length>0&&socket.unshift(remainder),onAuthenticated()};socket.on("data",onData),socket.once("error",onError),socket.once("close",finish)}function sendSocketHandshake(socket,secret){socket.write(Buffer.from(secret))}function isNodeErrorCode4(error,code){return error instanceof Error&&"code"in error&&error.code===code}var HOST_COLD_START_ENV="SENPI_RPC_HOST_COLD_START",HOST_IDLE_EXIT_MS_ENV="SENPI_RPC_HOST_IDLE_EXIT_MS",DEFAULT_HOST_IDLE_EXIT_MS=15*6e4,HANDOFF_GRACE_MS_ENV="SENPI_RPC_HANDOFF_GRACE_MS",DEFAULT_HANDOFF_GRACE_MS=10*6e4,CHILD_STOP_TIMEOUT_MS=5e3,WINDOWS_SUPERVISOR_SHUTDOWN_HARD_EXIT_MS=2e3,CHILD_WATCH_FD=3;async function createInternalSocketPath(baseDir=tmpdir(),platform=process.platform){if(platform==="win32"){let dir2=join4(baseDir,`internal-${randomUUID()}`);return await mkdir5(dir2,{recursive:!0,mode:448}),{socket:`\\\\.\\pipe\\senpi-rpc-internal-${randomUUID()}`,dir:dir2,secretPath:join4(dir2,"secret")}}let dir=join4(tmpdir(),`senpi-rpc-host-internal-${randomUUID().slice(0,8)}`);return await mkdir5(dir,{recursive:!1,mode:448}),await writeFile6(join4(dir,".owner"),JSON.stringify({pid:process.pid,processStartTime:await readProcessStartTime(process.pid),createdAt:Date.now()}),{mode:384}),{socket:join4(dir,"host.sock"),dir,secretPath:join4(dir,".secret")}}function parseColdStart(value){return value==="transient"||value==="persistent"?value:void 0}function parseIdleExitMs(value){if(value===void 0||!/^\d+$/.test(value.trim()))return;let parsed=Number(value.trim());return Number.isFinite(parsed)&&parsed>0?parsed:void 0}function resolveHostPolicy(settings,env){let record=isRecord3(settings)?settings:{},coldStart=parseColdStart(env[HOST_COLD_START_ENV])??parseColdStart(asOptionalString(record.coldStart))??"transient",idleExitMs=parseIdleExitMs(env[HOST_IDLE_EXIT_MS_ENV])??parseIdleExitMs(asOptionalString(record.idleExitMs))??DEFAULT_HOST_IDLE_EXIT_MS;return{coldStart,idleExitMs}}var IdleExitDecider=class{constructor(idleExitMs,now=Date.now){this.idleExitMs=idleExitMs,this.now=now}update(activity){return activity.connections>0||activity.activeTurns>0?(this.idleSince=void 0,"active"):this.idleExitMs===Number.POSITIVE_INFINITY?"idle":this.idleSince===void 0?(this.idleSince=this.now(),"idle"):this.now()-this.idleSince>=this.idleExitMs?"exit":"idle"}},INTERNAL_SUPERVISOR_FLAG="--internal-rpc-host-supervisor",INJECTABLE_PREFIX_FLAGS=new Set(["--extension"]);function findInternalSupervisorArgs(argv){for(let index=0;index<argv.length;index++){let arg=argv[index];if(arg===INTERNAL_SUPERVISOR_FLAG)return argv.slice(index+1);if(!INJECTABLE_PREFIX_FLAGS.has(arg)||index+1>=argv.length)return;index++}}function parseSupervisorArgs(argv){let hostArgs=[],socket,childCommand,childArgs,agentDir,bindSocket,replaceIdentity;for(let index=0;index<argv.length;index++){let arg=argv[index];if(arg==="--socket"&&index+1<argv.length){socket=argv[++index];continue}if(arg==="--child-command"&&index+1<argv.length){childCommand=argv[++index];continue}if(arg==="--child-args"&&index+1<argv.length){try{let parsed=JSON.parse(argv[++index]);Array.isArray(parsed)&&parsed.every(value=>typeof value=="string")&&(childArgs=parsed)}catch{return}continue}if(arg==="--agent-dir"&&index+1<argv.length){agentDir=argv[++index];continue}if(arg==="--bind"&&index+1<argv.length){bindSocket=argv[++index];continue}if(arg==="--replace"&&index+1<argv.length){replaceIdentity=parseSocketIdentity(argv[++index]);continue}hostArgs.push(arg)}return socket===void 0?void 0:{socket,hostArgs,childCommand,childArgs,agentDir,bindSocket,replaceIdentity}}function parseSocketIdentity(value){let match=/^(\d+):(\d+)$/.exec(value);return match?{dev:Number(match[1]),ino:Number(match[2])}:void 0}function resolveCliMainPath(){let modulePath=fileURLToPath(import.meta.url),extension=modulePath.endsWith(".ts")?".ts":".js",unbundled=resolve(dirname3(modulePath),"..","..",`cli-main${extension}`);return existsSync(unbundled)?unbundled:resolveDeclaredCliEntry(modulePath)??unbundled}function resolveDeclaredCliEntry(modulePath){let dir=dirname3(modulePath);for(let depth=0;depth<8;depth+=1){let manifestPath=resolve(dir,"package.json");if(existsSync(manifestPath)){try{let declared=JSON.parse(readFileSync3(manifestPath,"utf8")).bin,candidates=typeof declared=="string"?[declared]:Object.values(declared??{});for(let candidate of candidates){let entry=resolve(dir,candidate);if(existsSync(entry))return entry}}catch{}return}let parent=dirname3(dir);if(parent===dir)return;dir=parent}}function resolveHostChildLaunch(launch,internalSocket,compiled=isBunBinary){return launch.childCommand?{command:launch.childCommand,args:[...launch.childArgs??[],"--listen",`unix://${internalSocket}`]}:{command:process.execPath,args:[...compiled?[]:[...process.execArgv,resolveCliMainPath()],"--mode","rpc","--multi-session","--listen",`unix://${internalSocket}`,...launch.hostArgs]}}function quoteWindowsShellArg(value){return`"${value.replace(/(\\*)"/g,'$1$1\\"').replace(/(\\*)$/,"$1$1").replace(/([()%!^"<>&|;,])/g,"^$1")}"`}function spawnableChildLaunch(launch,platform=process.platform){let extension=extname(launch.command).toLowerCase();return platform!=="win32"||extension!==".cmd"&&extension!==".bat"?{...launch,shell:!1}:{command:quoteWindowsShellArg(launch.command),args:launch.args.map(quoteWindowsShellArg),shell:!0}}async function runHostSupervisor(launch){let paths=createHostDaemonPaths({socket:launch.socket,agentDir:launch.agentDir??getAgentDir()}),told=process.env[HOST_INSTANCE_ID_ENV],instanceId=told!==void 0&&told.trim()!==""?told:randomUUID(),generation=generationPaths(paths,instanceId),policy=resolveHostPolicy(await readSettingsFile(paths.settingsFile),process.env),publicSocket=launch.socket,bindSocket=launch.bindSocket??publicSocket,successor=launch.bindSocket!==void 0,publicSecret=process.platform==="win32"?await ensurePublicSocketSecret(publicSocket):void 0,internal=await createInternalSocketPath(paths.dir),internalSocket=internal.socket,internalSecretPath=internal.secretPath??socketSecretPath(internalSocket),internalSecret=process.platform==="win32"?await createSocketSecret(internalSecretPath):void 0,clientSockets=new Set,busySessions=new Map,observerSocket,observerLink=createObserverLink({open:async()=>{let secret=internalSecret,next=createConnection(resolveSocketTransportAddress(internalSocket,process.platform,secret));return secret&&sendSocketHandshake(next,secret),await waitForConnect(next,5e3),observerSocket=next,attachJsonlLineReader(next,observeHostEvent,{maxLineLength:MAX_RPC_LINE_CHARACTERS}),{onLost:handler=>{next.once("close",handler),next.once("error",handler)}}},settled:()=>shuttingDown,retryDelayMs:250,now:Date.now,setTimer:(run,ms)=>{let timer=setTimeout(run,ms);return timer.unref?.(),{cancel:()=>clearTimeout(timer)}}}),childExitWatchTimer,stopSupersessionWatch,shuttingDown=!1,draining=!1,handoffGraceTimer,shutdownPromise,childLaunch=spawnableChildLaunch(resolveHostChildLaunch(launch,internalSocket)),child=spawn(childLaunch.command,childLaunch.args,{env:{...process.env,...launch.agentDir?{SENPI_CODING_AGENT_DIR:launch.agentDir}:{},[HOST_DAEMON_DIR_ENV]:paths.dir,[HOST_INSTANCE_ID_ENV]:instanceId,[HOST_WATCH_FD_ENV]:String(CHILD_WATCH_FD),[HOST_WATCH_PPID_ENV]:String(process.pid),...internal.dir?{[HOST_SCRATCH_DIR_ENV]:internal.dir}:{},...internalSecret?{[SOCKET_SECRET_FILE_ENV]:internalSecretPath}:{},[HOST_CLEANUP_PATHS_ENV]:[...successor?[]:[paths.pointerFile,generation.pidFile,paths.settingsFile],...process.platform==="win32"?[publicSocket]:[]].join(`
12
- `),...process.platform==="win32"?{}:{[HOST_PUBLIC_SOCKET_ENV]:publicSocket}},shell:childLaunch.shell,stdio:["ignore","ignore","inherit","pipe"],windowsHide:!0}),childStartedAt=Date.now();child.stdio[CHILD_WATCH_FD]?.on("error",()=>{}),child.once("exit",(code,signal)=>{if(shuttingDown)return;let{reason,exitCode}=classifyChildExit(code,signal);noteChildExit(paths.dir,code,signal,childStartedAt),shutdown(reason,exitCode)});let server=createServer(client=>{let accept=()=>{if(shuttingDown||draining){client.destroy();return}let internal2=createConnection(resolveSocketTransportAddress(internalSocket,process.platform,internalSecret));internalSecret&&sendSocketHandshake(internal2,internalSecret),clientSockets.add(client),decider.update(currentActivity());let detach=()=>{clientSockets.delete(client),decider.update(currentActivity()),internal2.destroy(),client.destroy()};client.pipe(internal2),internal2.pipe(client),client.once("close",detach),client.once("error",detach),internal2.once("end",()=>client.end(()=>client.destroy())),internal2.once("close",()=>{internal2.readableEnded||detach()}),internal2.once("error",detach)};publicSecret?authenticateSocket(client,publicSecret,accept):accept()});server.once("error",cause=>{shuttingDown||shutdown(`public socket listener failed: ${errorMessage3(cause)}`,1)});let decider=new IdleExitDecider(policy.coldStart==="persistent"?Number.POSITIVE_INFINITY:policy.idleExitMs),tickIntervalMs=Math.max(20,Math.min(1e3,policy.idleExitMs/4)),ticker=setInterval(()=>{!draining&&decider.update(currentActivity())==="exit"&&shutdown("idle",0)},tickIntervalMs);function currentActivity(){return{connections:clientSockets.size,activeTurns:activeTurnsForIdleDecision({healthy:observerLink.healthy(),unhealthySince:observerLink.unhealthySince(),now:Date.now(),unknownGraceMs:decider.idleExitMs,observedBusy:countBusySessions()})}}function countBusySessions(){let busy=0;for(let count of busySessions.values())count>0&&busy++;return busy}function observeHostEvent(line){let event;try{event=JSON.parse(line)}catch{return}if(typeof event!="object"||event===null)return;let{type,sessionId}=event;if(typeof sessionId=="string"){if(type==="agent_start")busySessions.set(sessionId,(busySessions.get(sessionId)??0)+1);else if(type==="agent_settled")busySessions.set(sessionId,Math.max(0,(busySessions.get(sessionId)??1)-1));else return;decider.update(currentActivity())}}async function shutdown(reason,exitCode){return shutdownPromise??=performShutdown(reason,exitCode),shutdownPromise}async function performShutdown(reason,exitCode){shuttingDown&&process.exit(exitCode),shuttingDown=!0,clearInterval(ticker),handoffGraceTimer&&clearTimeout(handoffGraceTimer),childExitWatchTimer&&clearInterval(childExitWatchTimer),stopSupersessionWatch?.();let hardExit=process.platform==="win32"?setTimeout(()=>process.exit(exitCode),WINDOWS_SUPERVISOR_SHUTDOWN_HARD_EXIT_MS):void 0;try{writeStderrLine(`senpi rpc host supervisor: ${reason} shutdown`);for(let client of clientSockets)client.destroy();draining||await shieldSocketDuringClose(publicSocket,()=>closeServer(server)),internal.dir&&await rm5(internal.dir,{recursive:!0,force:!0}),await stopChild(child),observerLink.stop(),observerSocket?.destroy(),publicSocketOwned&&process.platform!=="win32"&&await unlinkOwnedSocket(publicSocket,publicSocketIdentity,supervisorLog),await releaseGeneration(paths,{instanceId,pid:process.pid})}finally{hardExit&&clearTimeout(hardExit),process.exit(exitCode)}}let publicSocketOwned=!1,publicSocketIdentity;function supervisorLog(message){writeStderrLine(`senpi rpc host supervisor: ${message}`)}function drainForHandoff(){if(draining||shuttingDown)return;draining=!0,supervisorLog("draining into the next generation");let graceMs=parseIdleExitMs(process.env[HANDOFF_GRACE_MS_ENV])??DEFAULT_HANDOFF_GRACE_MS;handoffGraceTimer=setTimeout(()=>{supervisorLog(JSON.stringify({event:"handoff_grace_expired",graceMs})),requestChildDrain()},graceMs),handoffGraceTimer.unref(),requestChildDrain()}function requestChildDrain(){if(child.pid!==void 0&&child.exitCode===null&&child.signalCode===null)try{process.kill(child.pid,"SIGUSR1")}catch(cause){supervisorLog(`could not ask the host to drain: ${errorMessage3(cause)}`)}}registerSupervisorSignals(shutdown,drainForHandoff);try{await waitForListener(internalSocket,3e4,internalSecret),await observerLink.open(),await prepareSocketPath(bindSocket),await listen(server,bindSocket,publicSecret),publicSocketOwned=!0,successor&&await adoptPublicSocket(bindSocket,publicSocket,launch.replaceIdentity),publicSocketIdentity=await statSocketIdentity(publicSocket),publicSocketIdentity&&internal.dir&&await writeSocketIdentityFile(join4(internal.dir,PUBLIC_SOCKET_IDENTITY_FILE),publicSocketIdentity),stopSupersessionWatch=watchForSupersession({path:publicSocket,identity:publicSocketIdentity,settled:()=>shuttingDown||draining},loss=>{supervisorLog(loss==="absent"?"the public socket entry is gone; nothing can reach this generation; draining":"another generation owns the public socket; draining this one"),drainForHandoff()})}catch(cause){await shutdown(`startup failed: ${errorMessage3(cause)}`,1)}if(process.platform==="win32"&&child.pid!==void 0){let childStartTime=await readProcessStartTime(child.pid,process.platform,1e3).catch(()=>{}),missingIdentityChecks=0,checkingChildIdentity=!1;childExitWatchTimer=setInterval(()=>{shuttingDown||checkingChildIdentity||child.exitCode!==null||child.signalCode!==null||(checkingChildIdentity=!0,readProcessStartTime(child.pid,process.platform,1e3).then(currentStartTime=>{currentStartTime===void 0&&!processIsLive(child.pid)?missingIdentityChecks++:currentStartTime!==void 0&&(missingIdentityChecks=0),(childStartTime!==void 0&&currentStartTime!==void 0&&currentStartTime!==childStartTime||missingIdentityChecks>=2)&&shutdown("rpc host child exit observed by identity watchdog",0)}).catch(()=>{}).finally(()=>{checkingChildIdentity=!1}))},500),childExitWatchTimer.unref?.()}writeStderrLine(`senpi rpc host ready on unix://${publicSocket} (coldStart=${policy.coldStart}, idleExitMs=${policy.coldStart==="persistent"?"never":String(policy.idleExitMs)})`),await new Promise(()=>{})}function registerSupervisorSignals(shutdown,drain){for(let signal of process.platform==="win32"?["SIGTERM"]:["SIGTERM","SIGHUP"])process.on(signal,()=>{shutdown(`signal:${signal}`,signal==="SIGHUP"?129:143)});process.platform!=="win32"&&process.on("SIGUSR1",drain)}async function adoptPublicSocket(bindSocket,publicSocket,expected){if(expected===void 0)throw new Error(`${publicSocket}: a generation launch must name the entry it replaces`);let current=await statSocketIdentity(publicSocket);if(current===void 0||current.dev!==expected.dev||current.ino!==expected.ino)throw new Error(`${publicSocket}: owned by another socket entry now; refusing to replace it`);await rename4(bindSocket,publicSocket)}async function ensurePublicSocketSecret(publicSocket){let secretPath=socketSecretPath(publicSocket);try{return await ensureSocketSecret(secretPath)}catch(cause){throw new Error(`senpi rpc host supervisor: cannot provision public socket secret ${secretPath}`,{cause})}}async function readSettingsFile(settingsFile){try{return JSON.parse(await readFile5(settingsFile,"utf8"))}catch{return}}async function stopChild(child){if(!(child.exitCode!==null||child.signalCode!==null)){try{child.kill("SIGTERM")}catch{return}if(!await waitForChildExit(child,CHILD_STOP_TIMEOUT_MS)){try{child.kill("SIGKILL")}catch{return}await waitForChildExit(child,2e3)}}}function waitForChildExit(child,timeoutMs){return child.exitCode!==null||child.signalCode!==null?Promise.resolve(!0):new Promise(resolve2=>{let timer=setTimeout(()=>{child.off("exit",onExit),resolve2(!1)},timeoutMs),onExit=()=>{clearTimeout(timer),resolve2(!0)};child.once("exit",onExit)})}async function waitForListener(socketPath,timeoutMs,secret){let deadline=Date.now()+timeoutMs;for(;Date.now()<=deadline;){if(await canConnect(socketPath,secret))return;await delay2(50)}throw new Error(`${socketPath}: host did not start listening within ${timeoutMs}ms`)}function canConnect(socketPath,secret){return new Promise(resolve2=>{let socket=createConnection(resolveSocketTransportAddress(socketPath,process.platform,secret));secret&&sendSocketHandshake(socket,secret);let settle=value=>{socket.destroy(),resolve2(value)};socket.once("connect",()=>settle(!0)),socket.once("error",()=>settle(!1))})}function waitForConnect(socket,timeoutMs){return new Promise((resolve2,reject)=>{let timer=setTimeout(()=>{cleanup(),reject(new Error(`observer connection to internal host timed out after ${timeoutMs}ms`))},timeoutMs),onConnect=()=>{cleanup(),resolve2()},onError=cause=>{cleanup(),reject(cause)},cleanup=()=>{clearTimeout(timer),socket.off("connect",onConnect),socket.off("error",onError)};socket.once("connect",onConnect),socket.once("error",onError)})}async function prepareSocketPath(socketPath){if(process.platform!=="win32"){if(Buffer.byteLength(socketPath)>MAX_SOCKET_PATH_BYTES)throw new Error(`${socketPath}: socket path is ${Buffer.byteLength(socketPath)} bytes, over the ${MAX_SOCKET_PATH_BYTES}-byte limit.`);await mkdir5(dirname3(socketPath),{recursive:!0,mode:448});try{await access(socketPath)}catch(cause){if(isNodeErrorCode5(cause,"ENOENT"))return;throw cause}if(await canConnect(socketPath))throw new Error(`${socketPath}: address already in use by a live server.`);await unlink2(socketPath)}}function listen(server,socketPath,secret){return new Promise((resolve2,reject)=>{server.once("error",reject),server.listen({path:resolveSocketTransportAddress(socketPath,process.platform,secret),readableAll:!1,writableAll:!1},async()=>{server.off("error",reject);try{process.platform!=="win32"&&!socketPath.startsWith("\0")&&await chmod3(socketPath,384),resolve2()}catch(cause){reject(cause)}})})}function closeServer(server){return new Promise(resolve2=>{server.close(()=>resolve2())})}function writeStderrLine(text){try{writeSync(2,`${text}
13
- `)}catch{}}function delay2(ms){return new Promise(resolveDelay=>setTimeout(resolveDelay,ms))}function errorMessage3(cause){return cause instanceof Error?cause.message:String(cause)}function isNodeErrorCode5(cause,code){return cause instanceof Error&&"code"in cause&&cause.code===code}function isRecord3(value){return typeof value=="object"&&value!==null&&!Array.isArray(value)}function asOptionalString(value){return typeof value=="string"?value:typeof value=="number"?String(value):void 0}function isEntryScript(){let entry=process.argv[1];if(!entry)return!1;try{return fileURLToPath(import.meta.url)===realpathSync(entry)}catch{return!1}}if(!isBundledNode&&isEntryScript()){let launch=parseSupervisorArgs(process.argv.slice(2));launch||(writeStderrLine("usage: host-lifecycle.ts --socket <path> [host cli args...]"),process.exit(2)),runHostSupervisor(launch)}export{HOST_DAEMON_DIR_ENV,createHostDaemonPaths,createDaemonDirectories,writeHostSettings,readHostSettings,writeStateFile,readFileOrUndefined,parseJson,parseDaemonPidFile,ProcessIdentityUnreadableError,processMatchesPidFile,stopValidatedPid,waitForGone,readProcessStartTime,processIsLive,waitForStartTime,readHostProcessMetrics,SESSION_PATH_RETRY_AFTER_MS,createEndpointReservations,pruneDeadGenerations,readGenerationRows,readHostRegistration,writeHostRegistration,clearHostRegistration,releaseGeneration,provenOwner,legacyHostIsLive,writtenByThisProcess,SOCKET_SECRET_FILE_ENV,socketSecretPath,ensureSocketSecret,createSocketSecret,readSocketSecret,resolveSocketTransportAddress,authenticateSocket,sendSocketHandshake,classifyChildExit,PUBLIC_SOCKET_IDENTITY_FILE,MAX_SOCKET_PATH_BYTES,generationBindPath,statSocketIdentity,socketEntryReplaced,readSocketIdentityFile,waitForSocketIdentityFile,unlinkOwnedSocket,shieldSocketDuringClose,readHostWatchdogConfigFromBrandEnv,armHostWatchdog,HOST_COLD_START_ENV,HOST_IDLE_EXIT_MS_ENV,DEFAULT_HOST_IDLE_EXIT_MS,HANDOFF_GRACE_MS_ENV,DEFAULT_HANDOFF_GRACE_MS,createInternalSocketPath,parseColdStart,parseIdleExitMs,resolveHostPolicy,IdleExitDecider,INTERNAL_SUPERVISOR_FLAG,findInternalSupervisorArgs,parseSupervisorArgs,resolveCliMainPath,resolveHostChildLaunch,spawnableChildLaunch,runHostSupervisor};
@@ -1,3 +0,0 @@
1
- import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url); { const __piWorkerThreads = require("node:worker_threads"); if (typeof __piWorkerThreads.markAsUncloneable !== "function") { __piWorkerThreads.markAsUncloneable = () => {}; } }
2
- import{__commonJS,__require}from"./chunk-IKOFCODM.js";var require_polyfills=__commonJS({"node_modules/graceful-fs/polyfills.js"(exports,module){var constants=__require("constants"),origCwd=process.cwd,cwd=null,platform=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return cwd||(cwd=origCwd.call(process)),cwd};try{process.cwd()}catch{}typeof process.chdir=="function"&&(chdir=process.chdir,process.chdir=function(d){cwd=null,chdir.call(process,d)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,chdir));var chdir;module.exports=patch;function patch(fs){constants.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&patchLchmod(fs),fs.lutimes||patchLutimes(fs),fs.chown=chownFix(fs.chown),fs.fchown=chownFix(fs.fchown),fs.lchown=chownFix(fs.lchown),fs.chmod=chmodFix(fs.chmod),fs.fchmod=chmodFix(fs.fchmod),fs.lchmod=chmodFix(fs.lchmod),fs.chownSync=chownFixSync(fs.chownSync),fs.fchownSync=chownFixSync(fs.fchownSync),fs.lchownSync=chownFixSync(fs.lchownSync),fs.chmodSync=chmodFixSync(fs.chmodSync),fs.fchmodSync=chmodFixSync(fs.fchmodSync),fs.lchmodSync=chmodFixSync(fs.lchmodSync),fs.stat=statFix(fs.stat),fs.fstat=statFix(fs.fstat),fs.lstat=statFix(fs.lstat),fs.statSync=statFixSync(fs.statSync),fs.fstatSync=statFixSync(fs.fstatSync),fs.lstatSync=statFixSync(fs.lstatSync),fs.chmod&&!fs.lchmod&&(fs.lchmod=function(path,mode,cb){cb&&process.nextTick(cb)},fs.lchmodSync=function(){}),fs.chown&&!fs.lchown&&(fs.lchown=function(path,uid,gid,cb){cb&&process.nextTick(cb)},fs.lchownSync=function(){}),platform==="win32"&&(fs.rename=typeof fs.rename!="function"?fs.rename:(function(fs$rename){function rename(from,to,cb){var start=Date.now(),backoff=0;fs$rename(from,to,function CB(er){if(er&&(er.code==="EACCES"||er.code==="EPERM"||er.code==="EBUSY")&&Date.now()-start<6e4){setTimeout(function(){fs.stat(to,function(stater,st){stater&&stater.code==="ENOENT"?fs$rename(from,to,CB):cb(er)})},backoff),backoff<100&&(backoff+=10);return}cb&&cb(er)})}return Object.setPrototypeOf&&Object.setPrototypeOf(rename,fs$rename),rename})(fs.rename)),fs.read=typeof fs.read!="function"?fs.read:(function(fs$read){function read(fd,buffer,offset,length,position,callback_){var callback;if(callback_&&typeof callback_=="function"){var eagCounter=0;callback=function(er,_,__){if(er&&er.code==="EAGAIN"&&eagCounter<10)return eagCounter++,fs$read.call(fs,fd,buffer,offset,length,position,callback);callback_.apply(this,arguments)}}return fs$read.call(fs,fd,buffer,offset,length,position,callback)}return Object.setPrototypeOf&&Object.setPrototypeOf(read,fs$read),read})(fs.read),fs.readSync=typeof fs.readSync!="function"?fs.readSync:(function(fs$readSync){return function(fd,buffer,offset,length,position){for(var eagCounter=0;;)try{return fs$readSync.call(fs,fd,buffer,offset,length,position)}catch(er){if(er.code==="EAGAIN"&&eagCounter<10){eagCounter++;continue}throw er}}})(fs.readSync);function patchLchmod(fs2){fs2.lchmod=function(path,mode,callback){fs2.open(path,constants.O_WRONLY|constants.O_SYMLINK,mode,function(err,fd){if(err){callback&&callback(err);return}fs2.fchmod(fd,mode,function(err2){fs2.close(fd,function(err22){callback&&callback(err2||err22)})})})},fs2.lchmodSync=function(path,mode){var fd=fs2.openSync(path,constants.O_WRONLY|constants.O_SYMLINK,mode),threw=!0,ret;try{ret=fs2.fchmodSync(fd,mode),threw=!1}finally{if(threw)try{fs2.closeSync(fd)}catch{}else fs2.closeSync(fd)}return ret}}function patchLutimes(fs2){constants.hasOwnProperty("O_SYMLINK")&&fs2.futimes?(fs2.lutimes=function(path,at,mt,cb){fs2.open(path,constants.O_SYMLINK,function(er,fd){if(er){cb&&cb(er);return}fs2.futimes(fd,at,mt,function(er2){fs2.close(fd,function(er22){cb&&cb(er2||er22)})})})},fs2.lutimesSync=function(path,at,mt){var fd=fs2.openSync(path,constants.O_SYMLINK),ret,threw=!0;try{ret=fs2.futimesSync(fd,at,mt),threw=!1}finally{if(threw)try{fs2.closeSync(fd)}catch{}else fs2.closeSync(fd)}return ret}):fs2.futimes&&(fs2.lutimes=function(_a,_b,_c,cb){cb&&process.nextTick(cb)},fs2.lutimesSync=function(){})}function chmodFix(orig){return orig&&function(target,mode,cb){return orig.call(fs,target,mode,function(er){chownErOk(er)&&(er=null),cb&&cb.apply(this,arguments)})}}function chmodFixSync(orig){return orig&&function(target,mode){try{return orig.call(fs,target,mode)}catch(er){if(!chownErOk(er))throw er}}}function chownFix(orig){return orig&&function(target,uid,gid,cb){return orig.call(fs,target,uid,gid,function(er){chownErOk(er)&&(er=null),cb&&cb.apply(this,arguments)})}}function chownFixSync(orig){return orig&&function(target,uid,gid){try{return orig.call(fs,target,uid,gid)}catch(er){if(!chownErOk(er))throw er}}}function statFix(orig){return orig&&function(target,options,cb){typeof options=="function"&&(cb=options,options=null);function callback(er,stats){stats&&(stats.uid<0&&(stats.uid+=4294967296),stats.gid<0&&(stats.gid+=4294967296)),cb&&cb.apply(this,arguments)}return options?orig.call(fs,target,options,callback):orig.call(fs,target,callback)}}function statFixSync(orig){return orig&&function(target,options){var stats=options?orig.call(fs,target,options):orig.call(fs,target);return stats&&(stats.uid<0&&(stats.uid+=4294967296),stats.gid<0&&(stats.gid+=4294967296)),stats}}function chownErOk(er){if(!er||er.code==="ENOSYS")return!0;var nonroot=!process.getuid||process.getuid()!==0;return!!(nonroot&&(er.code==="EINVAL"||er.code==="EPERM"))}}}});var require_legacy_streams=__commonJS({"node_modules/graceful-fs/legacy-streams.js"(exports,module){var Stream=__require("stream").Stream;module.exports=legacy;function legacy(fs){return{ReadStream,WriteStream};function ReadStream(path,options){if(!(this instanceof ReadStream))return new ReadStream(path,options);Stream.call(this);var self=this;this.path=path,this.fd=null,this.readable=!0,this.paused=!1,this.flags="r",this.mode=438,this.bufferSize=64*1024,options=options||{};for(var keys=Object.keys(options),index=0,length=keys.length;index<length;index++){var key=keys[index];this[key]=options[key]}if(this.encoding&&this.setEncoding(this.encoding),this.start!==void 0){if(typeof this.start!="number")throw TypeError("start must be a Number");if(this.end===void 0)this.end=1/0;else if(typeof this.end!="number")throw TypeError("end must be a Number");if(this.start>this.end)throw new Error("start must be <= end");this.pos=this.start}if(this.fd!==null){process.nextTick(function(){self._read()});return}fs.open(this.path,this.flags,this.mode,function(err,fd){if(err){self.emit("error",err),self.readable=!1;return}self.fd=fd,self.emit("open",fd),self._read()})}function WriteStream(path,options){if(!(this instanceof WriteStream))return new WriteStream(path,options);Stream.call(this),this.path=path,this.fd=null,this.writable=!0,this.flags="w",this.encoding="binary",this.mode=438,this.bytesWritten=0,options=options||{};for(var keys=Object.keys(options),index=0,length=keys.length;index<length;index++){var key=keys[index];this[key]=options[key]}if(this.start!==void 0){if(typeof this.start!="number")throw TypeError("start must be a Number");if(this.start<0)throw new Error("start must be >= zero");this.pos=this.start}this.busy=!1,this._queue=[],this.fd===null&&(this._open=fs.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}}});var require_clone=__commonJS({"node_modules/graceful-fs/clone.js"(exports,module){"use strict";module.exports=clone;var getPrototypeOf=Object.getPrototypeOf||function(obj){return obj.__proto__};function clone(obj){if(obj===null||typeof obj!="object")return obj;if(obj instanceof Object)var copy={__proto__:getPrototypeOf(obj)};else var copy=Object.create(null);return Object.getOwnPropertyNames(obj).forEach(function(key){Object.defineProperty(copy,key,Object.getOwnPropertyDescriptor(obj,key))}),copy}}});var require_graceful_fs=__commonJS({"node_modules/graceful-fs/graceful-fs.js"(exports,module){var fs=__require("fs"),polyfills=require_polyfills(),legacy=require_legacy_streams(),clone=require_clone(),util=__require("util"),gracefulQueue,previousSymbol;typeof Symbol=="function"&&typeof Symbol.for=="function"?(gracefulQueue=Symbol.for("graceful-fs.queue"),previousSymbol=Symbol.for("graceful-fs.previous")):(gracefulQueue="___graceful-fs.queue",previousSymbol="___graceful-fs.previous");function noop(){}function publishQueue(context,queue2){Object.defineProperty(context,gracefulQueue,{get:function(){return queue2}})}var debug=noop;util.debuglog?debug=util.debuglog("gfs4"):/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&(debug=function(){var m=util.format.apply(util,arguments);m="GFS4: "+m.split(/\n/).join(`
3
- GFS4: `),console.error(m)});fs[gracefulQueue]||(queue=global[gracefulQueue]||[],publishQueue(fs,queue),fs.close=(function(fs$close){function close(fd,cb){return fs$close.call(fs,fd,function(err){err||resetQueue(),typeof cb=="function"&&cb.apply(this,arguments)})}return Object.defineProperty(close,previousSymbol,{value:fs$close}),close})(fs.close),fs.closeSync=(function(fs$closeSync){function closeSync(fd){fs$closeSync.apply(fs,arguments),resetQueue()}return Object.defineProperty(closeSync,previousSymbol,{value:fs$closeSync}),closeSync})(fs.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&process.on("exit",function(){debug(fs[gracefulQueue]),__require("assert").equal(fs[gracefulQueue].length,0)}));var queue;global[gracefulQueue]||publishQueue(global,fs[gracefulQueue]);module.exports=patch(clone(fs));process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!fs.__patched&&(module.exports=patch(fs),fs.__patched=!0);function patch(fs2){polyfills(fs2),fs2.gracefulify=patch,fs2.createReadStream=createReadStream,fs2.createWriteStream=createWriteStream;var fs$readFile=fs2.readFile;fs2.readFile=readFile;function readFile(path,options,cb){return typeof options=="function"&&(cb=options,options=null),go$readFile(path,options,cb);function go$readFile(path2,options2,cb2,startTime){return fs$readFile(path2,options2,function(err){err&&(err.code==="EMFILE"||err.code==="ENFILE")?enqueue([go$readFile,[path2,options2,cb2],err,startTime||Date.now(),Date.now()]):typeof cb2=="function"&&cb2.apply(this,arguments)})}}var fs$writeFile=fs2.writeFile;fs2.writeFile=writeFile;function writeFile(path,data,options,cb){return typeof options=="function"&&(cb=options,options=null),go$writeFile(path,data,options,cb);function go$writeFile(path2,data2,options2,cb2,startTime){return fs$writeFile(path2,data2,options2,function(err){err&&(err.code==="EMFILE"||err.code==="ENFILE")?enqueue([go$writeFile,[path2,data2,options2,cb2],err,startTime||Date.now(),Date.now()]):typeof cb2=="function"&&cb2.apply(this,arguments)})}}var fs$appendFile=fs2.appendFile;fs$appendFile&&(fs2.appendFile=appendFile);function appendFile(path,data,options,cb){return typeof options=="function"&&(cb=options,options=null),go$appendFile(path,data,options,cb);function go$appendFile(path2,data2,options2,cb2,startTime){return fs$appendFile(path2,data2,options2,function(err){err&&(err.code==="EMFILE"||err.code==="ENFILE")?enqueue([go$appendFile,[path2,data2,options2,cb2],err,startTime||Date.now(),Date.now()]):typeof cb2=="function"&&cb2.apply(this,arguments)})}}var fs$copyFile=fs2.copyFile;fs$copyFile&&(fs2.copyFile=copyFile);function copyFile(src,dest,flags,cb){return typeof flags=="function"&&(cb=flags,flags=0),go$copyFile(src,dest,flags,cb);function go$copyFile(src2,dest2,flags2,cb2,startTime){return fs$copyFile(src2,dest2,flags2,function(err){err&&(err.code==="EMFILE"||err.code==="ENFILE")?enqueue([go$copyFile,[src2,dest2,flags2,cb2],err,startTime||Date.now(),Date.now()]):typeof cb2=="function"&&cb2.apply(this,arguments)})}}var fs$readdir=fs2.readdir;fs2.readdir=readdir;var noReaddirOptionVersions=/^v[0-5]\./;function readdir(path,options,cb){typeof options=="function"&&(cb=options,options=null);var go$readdir=noReaddirOptionVersions.test(process.version)?function(path2,options2,cb2,startTime){return fs$readdir(path2,fs$readdirCallback(path2,options2,cb2,startTime))}:function(path2,options2,cb2,startTime){return fs$readdir(path2,options2,fs$readdirCallback(path2,options2,cb2,startTime))};return go$readdir(path,options,cb);function fs$readdirCallback(path2,options2,cb2,startTime){return function(err,files){err&&(err.code==="EMFILE"||err.code==="ENFILE")?enqueue([go$readdir,[path2,options2,cb2],err,startTime||Date.now(),Date.now()]):(files&&files.sort&&files.sort(),typeof cb2=="function"&&cb2.call(this,err,files))}}}if(process.version.substr(0,4)==="v0.8"){var legStreams=legacy(fs2);ReadStream=legStreams.ReadStream,WriteStream=legStreams.WriteStream}var fs$ReadStream=fs2.ReadStream;fs$ReadStream&&(ReadStream.prototype=Object.create(fs$ReadStream.prototype),ReadStream.prototype.open=ReadStream$open);var fs$WriteStream=fs2.WriteStream;fs$WriteStream&&(WriteStream.prototype=Object.create(fs$WriteStream.prototype),WriteStream.prototype.open=WriteStream$open),Object.defineProperty(fs2,"ReadStream",{get:function(){return ReadStream},set:function(val){ReadStream=val},enumerable:!0,configurable:!0}),Object.defineProperty(fs2,"WriteStream",{get:function(){return WriteStream},set:function(val){WriteStream=val},enumerable:!0,configurable:!0});var FileReadStream=ReadStream;Object.defineProperty(fs2,"FileReadStream",{get:function(){return FileReadStream},set:function(val){FileReadStream=val},enumerable:!0,configurable:!0});var FileWriteStream=WriteStream;Object.defineProperty(fs2,"FileWriteStream",{get:function(){return FileWriteStream},set:function(val){FileWriteStream=val},enumerable:!0,configurable:!0});function ReadStream(path,options){return this instanceof ReadStream?(fs$ReadStream.apply(this,arguments),this):ReadStream.apply(Object.create(ReadStream.prototype),arguments)}function ReadStream$open(){var that=this;open(that.path,that.flags,that.mode,function(err,fd){err?(that.autoClose&&that.destroy(),that.emit("error",err)):(that.fd=fd,that.emit("open",fd),that.read())})}function WriteStream(path,options){return this instanceof WriteStream?(fs$WriteStream.apply(this,arguments),this):WriteStream.apply(Object.create(WriteStream.prototype),arguments)}function WriteStream$open(){var that=this;open(that.path,that.flags,that.mode,function(err,fd){err?(that.destroy(),that.emit("error",err)):(that.fd=fd,that.emit("open",fd))})}function createReadStream(path,options){return new fs2.ReadStream(path,options)}function createWriteStream(path,options){return new fs2.WriteStream(path,options)}var fs$open=fs2.open;fs2.open=open;function open(path,flags,mode,cb){return typeof mode=="function"&&(cb=mode,mode=null),go$open(path,flags,mode,cb);function go$open(path2,flags2,mode2,cb2,startTime){return fs$open(path2,flags2,mode2,function(err,fd){err&&(err.code==="EMFILE"||err.code==="ENFILE")?enqueue([go$open,[path2,flags2,mode2,cb2],err,startTime||Date.now(),Date.now()]):typeof cb2=="function"&&cb2.apply(this,arguments)})}}return fs2}function enqueue(elem){debug("ENQUEUE",elem[0].name,elem[1]),fs[gracefulQueue].push(elem),retry()}var retryTimer;function resetQueue(){for(var now=Date.now(),i=0;i<fs[gracefulQueue].length;++i)fs[gracefulQueue][i].length>2&&(fs[gracefulQueue][i][3]=now,fs[gracefulQueue][i][4]=now);retry()}function retry(){if(clearTimeout(retryTimer),retryTimer=void 0,fs[gracefulQueue].length!==0){var elem=fs[gracefulQueue].shift(),fn=elem[0],args=elem[1],err=elem[2],startTime=elem[3],lastTime=elem[4];if(startTime===void 0)debug("RETRY",fn.name,args),fn.apply(null,args);else if(Date.now()-startTime>=6e4){debug("TIMEOUT",fn.name,args);var cb=args.pop();typeof cb=="function"&&cb.call(null,err)}else{var sinceAttempt=Date.now()-lastTime,sinceStart=Math.max(lastTime-startTime,1),desiredDelay=Math.min(sinceStart*1.2,100);sinceAttempt>=desiredDelay?(debug("RETRY",fn.name,args),fn.apply(null,args.concat([startTime]))):fs[gracefulQueue].push(elem)}retryTimer===void 0&&(retryTimer=setTimeout(retry,0))}}}});var require_retry_operation=__commonJS({"node_modules/proper-lockfile/node_modules/retry/lib/retry_operation.js"(exports,module){function RetryOperation(timeouts,options){typeof options=="boolean"&&(options={forever:options}),this._originalTimeouts=JSON.parse(JSON.stringify(timeouts)),this._timeouts=timeouts,this._options=options||{},this._maxRetryTime=options&&options.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}module.exports=RetryOperation;RetryOperation.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts};RetryOperation.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timeouts=[],this._cachedTimeouts=null};RetryOperation.prototype.retry=function(err){if(this._timeout&&clearTimeout(this._timeout),!err)return!1;var currentTime=new Date().getTime();if(err&&currentTime-this._operationStart>=this._maxRetryTime)return this._errors.unshift(new Error("RetryOperation timeout occurred")),!1;this._errors.push(err);var timeout=this._timeouts.shift();if(timeout===void 0)if(this._cachedTimeouts)this._errors.splice(this._errors.length-1,this._errors.length),this._timeouts=this._cachedTimeouts.slice(0),timeout=this._timeouts.shift();else return!1;var self=this,timer=setTimeout(function(){self._attempts++,self._operationTimeoutCb&&(self._timeout=setTimeout(function(){self._operationTimeoutCb(self._attempts)},self._operationTimeout),self._options.unref&&self._timeout.unref()),self._fn(self._attempts)},timeout);return this._options.unref&&timer.unref(),!0};RetryOperation.prototype.attempt=function(fn,timeoutOps){this._fn=fn,timeoutOps&&(timeoutOps.timeout&&(this._operationTimeout=timeoutOps.timeout),timeoutOps.cb&&(this._operationTimeoutCb=timeoutOps.cb));var self=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){self._operationTimeoutCb()},self._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)};RetryOperation.prototype.try=function(fn){console.log("Using RetryOperation.try() is deprecated"),this.attempt(fn)};RetryOperation.prototype.start=function(fn){console.log("Using RetryOperation.start() is deprecated"),this.attempt(fn)};RetryOperation.prototype.start=RetryOperation.prototype.try;RetryOperation.prototype.errors=function(){return this._errors};RetryOperation.prototype.attempts=function(){return this._attempts};RetryOperation.prototype.mainError=function(){if(this._errors.length===0)return null;for(var counts={},mainError=null,mainErrorCount=0,i=0;i<this._errors.length;i++){var error=this._errors[i],message=error.message,count=(counts[message]||0)+1;counts[message]=count,count>=mainErrorCount&&(mainError=error,mainErrorCount=count)}return mainError}}});var require_retry=__commonJS({"node_modules/proper-lockfile/node_modules/retry/lib/retry.js"(exports){var RetryOperation=require_retry_operation();exports.operation=function(options){var timeouts=exports.timeouts(options);return new RetryOperation(timeouts,{forever:options&&options.forever,unref:options&&options.unref,maxRetryTime:options&&options.maxRetryTime})};exports.timeouts=function(options){if(options instanceof Array)return[].concat(options);var opts={retries:10,factor:2,minTimeout:1*1e3,maxTimeout:1/0,randomize:!1};for(var key in options)opts[key]=options[key];if(opts.minTimeout>opts.maxTimeout)throw new Error("minTimeout is greater than maxTimeout");for(var timeouts=[],i=0;i<opts.retries;i++)timeouts.push(this.createTimeout(i,opts));return options&&options.forever&&!timeouts.length&&timeouts.push(this.createTimeout(i,opts)),timeouts.sort(function(a,b){return a-b}),timeouts};exports.createTimeout=function(attempt,opts){var random=opts.randomize?Math.random()+1:1,timeout=Math.round(random*opts.minTimeout*Math.pow(opts.factor,attempt));return timeout=Math.min(timeout,opts.maxTimeout),timeout};exports.wrap=function(obj,options,methods){if(options instanceof Array&&(methods=options,options=null),!methods){methods=[];for(var key in obj)typeof obj[key]=="function"&&methods.push(key)}for(var i=0;i<methods.length;i++){var method=methods[i],original=obj[method];obj[method]=function(original2){var op=exports.operation(options),args=Array.prototype.slice.call(arguments,1),callback=args.pop();args.push(function(err){op.retry(err)||(err&&(arguments[0]=op.mainError()),callback.apply(this,arguments))}),op.attempt(function(){original2.apply(obj,args)})}.bind(obj,original),obj[method].options=options}}}});var require_retry2=__commonJS({"node_modules/proper-lockfile/node_modules/retry/index.js"(exports,module){module.exports=require_retry()}});var require_signals=__commonJS({"node_modules/signal-exit/signals.js"(exports,module){module.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];process.platform!=="win32"&&module.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&module.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")}});var require_signal_exit=__commonJS({"node_modules/signal-exit/index.js"(exports,module){var process2=global.process,processOk=function(process3){return process3&&typeof process3=="object"&&typeof process3.removeListener=="function"&&typeof process3.emit=="function"&&typeof process3.reallyExit=="function"&&typeof process3.listeners=="function"&&typeof process3.kill=="function"&&typeof process3.pid=="number"&&typeof process3.on=="function"};processOk(process2)?(assert=__require("assert"),signals=require_signals(),isWin=/^win/i.test(process2.platform),EE=__require("events"),typeof EE!="function"&&(EE=EE.EventEmitter),process2.__signal_exit_emitter__?emitter=process2.__signal_exit_emitter__:(emitter=process2.__signal_exit_emitter__=new EE,emitter.count=0,emitter.emitted={}),emitter.infinite||(emitter.setMaxListeners(1/0),emitter.infinite=!0),module.exports=function(cb,opts){if(!processOk(global.process))return function(){};assert.equal(typeof cb,"function","a callback must be provided for exit handler"),loaded===!1&&load();var ev="exit";opts&&opts.alwaysLast&&(ev="afterexit");var remove=function(){emitter.removeListener(ev,cb),emitter.listeners("exit").length===0&&emitter.listeners("afterexit").length===0&&unload()};return emitter.on(ev,cb),remove},unload=function(){!loaded||!processOk(global.process)||(loaded=!1,signals.forEach(function(sig){try{process2.removeListener(sig,sigListeners[sig])}catch{}}),process2.emit=originalProcessEmit,process2.reallyExit=originalProcessReallyExit,emitter.count-=1)},module.exports.unload=unload,emit=function(event,code,signal){emitter.emitted[event]||(emitter.emitted[event]=!0,emitter.emit(event,code,signal))},sigListeners={},signals.forEach(function(sig){sigListeners[sig]=function(){if(processOk(global.process)){var listeners=process2.listeners(sig);listeners.length===emitter.count&&(unload(),emit("exit",null,sig),emit("afterexit",null,sig),isWin&&sig==="SIGHUP"&&(sig="SIGINT"),process2.kill(process2.pid,sig))}}}),module.exports.signals=function(){return signals},loaded=!1,load=function(){loaded||!processOk(global.process)||(loaded=!0,emitter.count+=1,signals=signals.filter(function(sig){try{return process2.on(sig,sigListeners[sig]),!0}catch{return!1}}),process2.emit=processEmit,process2.reallyExit=processReallyExit)},module.exports.load=load,originalProcessReallyExit=process2.reallyExit,processReallyExit=function(code){processOk(global.process)&&(process2.exitCode=code||0,emit("exit",process2.exitCode,null),emit("afterexit",process2.exitCode,null),originalProcessReallyExit.call(process2,process2.exitCode))},originalProcessEmit=process2.emit,processEmit=function(ev,arg){if(ev==="exit"&&processOk(global.process)){arg!==void 0&&(process2.exitCode=arg);var ret=originalProcessEmit.apply(this,arguments);return emit("exit",process2.exitCode,null),emit("afterexit",process2.exitCode,null),ret}else return originalProcessEmit.apply(this,arguments)}):module.exports=function(){return function(){}};var assert,signals,isWin,EE,emitter,unload,emit,sigListeners,loaded,load,originalProcessReallyExit,processReallyExit,originalProcessEmit,processEmit}});var require_mtime_precision=__commonJS({"node_modules/proper-lockfile/lib/mtime-precision.js"(exports,module){"use strict";var cacheSymbol=Symbol();function probe(file,fs,callback){let cachedPrecision=fs[cacheSymbol];if(cachedPrecision)return fs.stat(file,(err,stat)=>{if(err)return callback(err);callback(null,stat.mtime,cachedPrecision)});let mtime=new Date(Math.ceil(Date.now()/1e3)*1e3+5);fs.utimes(file,mtime,mtime,err=>{if(err)return callback(err);fs.stat(file,(err2,stat)=>{if(err2)return callback(err2);let precision=stat.mtime.getTime()%1e3===0?"s":"ms";Object.defineProperty(fs,cacheSymbol,{value:precision}),callback(null,stat.mtime,precision)})})}function getMtime(precision){let now=Date.now();return precision==="s"&&(now=Math.ceil(now/1e3)*1e3),new Date(now)}module.exports.probe=probe;module.exports.getMtime=getMtime}});var require_lockfile=__commonJS({"node_modules/proper-lockfile/lib/lockfile.js"(exports,module){"use strict";var path=__require("path"),fs=require_graceful_fs(),retry=require_retry2(),onExit=require_signal_exit(),mtimePrecision=require_mtime_precision(),locks={};function getLockFile(file,options){return options.lockfilePath||`${file}.lock`}function resolveCanonicalPath(file,options,callback){if(!options.realpath)return callback(null,path.resolve(file));options.fs.realpath(file,callback)}function acquireLock(file,options,callback){let lockfilePath=getLockFile(file,options);options.fs.mkdir(lockfilePath,err=>{if(!err)return mtimePrecision.probe(lockfilePath,options.fs,(err2,mtime,mtimePrecision2)=>{if(err2)return options.fs.rmdir(lockfilePath,()=>{}),callback(err2);callback(null,mtime,mtimePrecision2)});if(err.code!=="EEXIST")return callback(err);if(options.stale<=0)return callback(Object.assign(new Error("Lock file is already being held"),{code:"ELOCKED",file}));options.fs.stat(lockfilePath,(err2,stat)=>{if(err2)return err2.code==="ENOENT"?acquireLock(file,{...options,stale:0},callback):callback(err2);if(!isLockStale(stat,options))return callback(Object.assign(new Error("Lock file is already being held"),{code:"ELOCKED",file}));removeLock(file,options,err3=>{if(err3)return callback(err3);acquireLock(file,{...options,stale:0},callback)})})})}function isLockStale(stat,options){return stat.mtime.getTime()<Date.now()-options.stale}function removeLock(file,options,callback){options.fs.rmdir(getLockFile(file,options),err=>{if(err&&err.code!=="ENOENT")return callback(err);callback()})}function updateLock(file,options){let lock2=locks[file];lock2.updateTimeout||(lock2.updateDelay=lock2.updateDelay||options.update,lock2.updateTimeout=setTimeout(()=>{lock2.updateTimeout=null,options.fs.stat(lock2.lockfilePath,(err,stat)=>{let isOverThreshold=lock2.lastUpdate+options.stale<Date.now();if(err)return err.code==="ENOENT"||isOverThreshold?setLockAsCompromised(file,lock2,Object.assign(err,{code:"ECOMPROMISED"})):(lock2.updateDelay=1e3,updateLock(file,options));if(!(lock2.mtime.getTime()===stat.mtime.getTime()))return setLockAsCompromised(file,lock2,Object.assign(new Error("Unable to update lock within the stale threshold"),{code:"ECOMPROMISED"}));let mtime=mtimePrecision.getMtime(lock2.mtimePrecision);options.fs.utimes(lock2.lockfilePath,mtime,mtime,err2=>{let isOverThreshold2=lock2.lastUpdate+options.stale<Date.now();if(!lock2.released){if(err2)return err2.code==="ENOENT"||isOverThreshold2?setLockAsCompromised(file,lock2,Object.assign(err2,{code:"ECOMPROMISED"})):(lock2.updateDelay=1e3,updateLock(file,options));lock2.mtime=mtime,lock2.lastUpdate=Date.now(),lock2.updateDelay=null,updateLock(file,options)}})})},lock2.updateDelay),lock2.updateTimeout.unref&&lock2.updateTimeout.unref())}function setLockAsCompromised(file,lock2,err){lock2.released=!0,lock2.updateTimeout&&clearTimeout(lock2.updateTimeout),locks[file]===lock2&&delete locks[file],lock2.options.onCompromised(err)}function lock(file,options,callback){options={stale:1e4,update:null,realpath:!0,retries:0,fs,onCompromised:err=>{throw err},...options},options.retries=options.retries||0,options.retries=typeof options.retries=="number"?{retries:options.retries}:options.retries,options.stale=Math.max(options.stale||0,2e3),options.update=options.update==null?options.stale/2:options.update||0,options.update=Math.max(Math.min(options.update,options.stale/2),1e3),resolveCanonicalPath(file,options,(err,file2)=>{if(err)return callback(err);let operation=retry.operation(options.retries);operation.attempt(()=>{acquireLock(file2,options,(err2,mtime,mtimePrecision2)=>{if(operation.retry(err2))return;if(err2)return callback(operation.mainError());let lock2=locks[file2]={lockfilePath:getLockFile(file2,options),mtime,mtimePrecision:mtimePrecision2,options,lastUpdate:Date.now()};updateLock(file2,options),callback(null,releasedCallback=>{if(lock2.released)return releasedCallback&&releasedCallback(Object.assign(new Error("Lock is already released"),{code:"ERELEASED"}));unlock(file2,{...options,realpath:!1},releasedCallback)})})})})}function unlock(file,options,callback){options={fs,realpath:!0,...options},resolveCanonicalPath(file,options,(err,file2)=>{if(err)return callback(err);let lock2=locks[file2];if(!lock2)return callback(Object.assign(new Error("Lock is not acquired/owned by you"),{code:"ENOTACQUIRED"}));lock2.updateTimeout&&clearTimeout(lock2.updateTimeout),lock2.released=!0,delete locks[file2],removeLock(file2,options,callback)})}function check(file,options,callback){options={stale:1e4,realpath:!0,fs,...options},options.stale=Math.max(options.stale||0,2e3),resolveCanonicalPath(file,options,(err,file2)=>{if(err)return callback(err);options.fs.stat(getLockFile(file2,options),(err2,stat)=>err2?err2.code==="ENOENT"?callback(null,!1):callback(err2):callback(null,!isLockStale(stat,options)))})}function getLocks(){return locks}onExit(()=>{for(let file in locks){let options=locks[file].options;try{options.fs.rmdirSync(getLockFile(file,options))}catch{}}});module.exports.lock=lock;module.exports.unlock=unlock;module.exports.check=check;module.exports.getLocks=getLocks}});var require_adapter=__commonJS({"node_modules/proper-lockfile/lib/adapter.js"(exports,module){"use strict";var fs=require_graceful_fs();function createSyncFs(fs2){let methods=["mkdir","realpath","stat","rmdir","utimes"],newFs={...fs2};return methods.forEach(method=>{newFs[method]=(...args)=>{let callback=args.pop(),ret;try{ret=fs2[`${method}Sync`](...args)}catch(err){return callback(err)}callback(null,ret)}}),newFs}function toPromise(method){return(...args)=>new Promise((resolve,reject)=>{args.push((err,result)=>{err?reject(err):resolve(result)}),method(...args)})}function toSync(method){return(...args)=>{let err,result;if(args.push((_err,_result)=>{err=_err,result=_result}),method(...args),err)throw err;return result}}function toSyncOptions(options){if(options={...options},options.fs=createSyncFs(options.fs||fs),typeof options.retries=="number"&&options.retries>0||options.retries&&typeof options.retries.retries=="number"&&options.retries.retries>0)throw Object.assign(new Error("Cannot use retries with the sync api"),{code:"ESYNC"});return options}module.exports={toPromise,toSync,toSyncOptions}}});var require_proper_lockfile=__commonJS({"node_modules/proper-lockfile/index.js"(exports,module){"use strict";var lockfile=require_lockfile(),{toPromise,toSync,toSyncOptions}=require_adapter();async function lock(file,options){let release=await toPromise(lockfile.lock)(file,options);return toPromise(release)}function lockSync(file,options){let release=toSync(lockfile.lock)(file,toSyncOptions(options));return toSync(release)}function unlock(file,options){return toPromise(lockfile.unlock)(file,options)}function unlockSync(file,options){return toSync(lockfile.unlock)(file,toSyncOptions(options))}function check(file,options){return toPromise(lockfile.check)(file,options)}function checkSync(file,options){return toSync(lockfile.check)(file,toSyncOptions(options))}module.exports=lock;module.exports.lock=lock;module.exports.unlock=unlock;module.exports.lockSync=lockSync;module.exports.unlockSync=unlockSync;module.exports.check=check;module.exports.checkSync=checkSync}});export{require_proper_lockfile};
@@ -1,2 +0,0 @@
1
- import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url); { const __piWorkerThreads = require("node:worker_threads"); if (typeof __piWorkerThreads.markAsUncloneable !== "function") { __piWorkerThreads.markAsUncloneable = () => {}; } }
2
- function isRecord(value){return typeof value=="object"&&value!==null}function extractHttpStatus(error){if(!isRecord(error))return;let status=error.status;if(typeof status=="number")return status;let response=error.response;if(isRecord(response)&&typeof response.status=="number")return response.status}function errorMessage(error){return error instanceof Error?error.message:typeof error=="string"?error:String(error)}function isForcedToolChoiceUnsupportedError(error,sentForcedToolChoice){if(!sentForcedToolChoice||extractHttpStatus(error)!==400)return!1;let message=errorMessage(error);return/tool[_\s-]?choices?\b.*?(not\s+compatible|incompatible|not\s+supported|unsupported)/is.test(message)||/forces?\s+tool\s+use.*?(not\s+compatible|incompatible|not\s+supported|unsupported)/is.test(message)||/does\s+not\s+support\s+forced\s+tool[_\s-]?choices?/is.test(message)||/thinking\s+may\s+not\s+be\s+enabled\s+when\s+tool[_\s-]?choice\s+forces\s+tool\s+use/is.test(message)||/tool[_\s-]?choice\s+cannot\s+force\s+tool\s+use/is.test(message)}function omitToolChoiceParam(params){let nextParams={...params};return delete nextParams.tool_choice,nextParams}export{isForcedToolChoiceUnsupportedError,omitToolChoiceParam};