@tonyclaw/agent-inspector 2.0.0

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 (400) hide show
  1. package/.output/cli.js +1611 -0
  2. package/.output/nitro.json +17 -0
  3. package/.output/public/assets/CompareDrawer-CU5ZrWcL.js +1 -0
  4. package/.output/public/assets/ProxyViewerContainer-pEBqVp1d.js +101 -0
  5. package/.output/public/assets/ReplayDialog-F58yNg5j.js +1 -0
  6. package/.output/public/assets/RequestAnatomy-C9lT0qE_.js +1 -0
  7. package/.output/public/assets/ResponseView-DHJq6bnz.js +1 -0
  8. package/.output/public/assets/StreamingChunkSequence-BTgfpFUT.js +1 -0
  9. package/.output/public/assets/_sessionId-DsNRbnNm.js +1 -0
  10. package/.output/public/assets/alibaba-TTwafVwX.svg +1 -0
  11. package/.output/public/assets/index-CpWG2hFn.css +1 -0
  12. package/.output/public/assets/index-DmBV8Gve.js +1 -0
  13. package/.output/public/assets/json-viewer-CZVYLR8j.js +14 -0
  14. package/.output/public/assets/main-DHs7FBK3.js +18 -0
  15. package/.output/public/assets/minimax-BPMzvuL-.jpeg +0 -0
  16. package/.output/public/assets/qwen-CONDcHqt.png +0 -0
  17. package/.output/public/assets/zhipuai-BPNAnxo-.svg +219 -0
  18. package/.output/server/_chunks/ssr-renderer.mjs +22 -0
  19. package/.output/server/_libs/@radix-ui/react-accessible-icon+[...].mjs +1 -0
  20. package/.output/server/_libs/@radix-ui/react-dismissable-layer+[...].mjs +210 -0
  21. package/.output/server/_libs/@radix-ui/react-navigation-menu+[...].mjs +2 -0
  22. package/.output/server/_libs/@radix-ui/react-one-time-password-field+[...].mjs +2 -0
  23. package/.output/server/_libs/@radix-ui/react-password-toggle-field+[...].mjs +2 -0
  24. package/.output/server/_libs/@radix-ui/react-use-callback-ref+[...].mjs +11 -0
  25. package/.output/server/_libs/@radix-ui/react-use-controllable-state+[...].mjs +69 -0
  26. package/.output/server/_libs/@radix-ui/react-use-effect-event+[...].mjs +1 -0
  27. package/.output/server/_libs/@radix-ui/react-use-escape-keydown+[...].mjs +17 -0
  28. package/.output/server/_libs/@radix-ui/react-use-is-hydrated+[...].mjs +1 -0
  29. package/.output/server/_libs/@radix-ui/react-use-layout-effect+[...].mjs +6 -0
  30. package/.output/server/_libs/@radix-ui/react-visually-hidden+[...].mjs +34 -0
  31. package/.output/server/_libs/ajv-formats.mjs +330 -0
  32. package/.output/server/_libs/ajv.mjs +11444 -0
  33. package/.output/server/_libs/aria-hidden.mjs +122 -0
  34. package/.output/server/_libs/atomically.mjs +152 -0
  35. package/.output/server/_libs/bail.mjs +8 -0
  36. package/.output/server/_libs/cfworker__json-schema.mjs +1 -0
  37. package/.output/server/_libs/character-entities.mjs +2130 -0
  38. package/.output/server/_libs/class-variance-authority.mjs +44 -0
  39. package/.output/server/_libs/clsx.mjs +16 -0
  40. package/.output/server/_libs/comma-separated-tokens.mjs +10 -0
  41. package/.output/server/_libs/conf.mjs +635 -0
  42. package/.output/server/_libs/cookie-es.mjs +58 -0
  43. package/.output/server/_libs/core-util-is.mjs +75 -0
  44. package/.output/server/_libs/croner.mjs +1 -0
  45. package/.output/server/_libs/crossws.mjs +1 -0
  46. package/.output/server/_libs/debounce-fn.mjs +69 -0
  47. package/.output/server/_libs/decode-named-character-reference+[...].mjs +8 -0
  48. package/.output/server/_libs/dequal.mjs +27 -0
  49. package/.output/server/_libs/detect-node-es.mjs +1 -0
  50. package/.output/server/_libs/devlop.mjs +8 -0
  51. package/.output/server/_libs/diff.mjs +320 -0
  52. package/.output/server/_libs/dot-prop.mjs +265 -0
  53. package/.output/server/_libs/env-paths.mjs +57 -0
  54. package/.output/server/_libs/estree-util-is-identifier-name.mjs +11 -0
  55. package/.output/server/_libs/extend.mjs +97 -0
  56. package/.output/server/_libs/fast-deep-equal.mjs +38 -0
  57. package/.output/server/_libs/fast-uri.mjs +812 -0
  58. package/.output/server/_libs/floating-ui__core.mjs +725 -0
  59. package/.output/server/_libs/floating-ui__dom.mjs +622 -0
  60. package/.output/server/_libs/floating-ui__react-dom.mjs +292 -0
  61. package/.output/server/_libs/floating-ui__utils.mjs +320 -0
  62. package/.output/server/_libs/get-nonce.mjs +9 -0
  63. package/.output/server/_libs/h3-v2.mjs +276 -0
  64. package/.output/server/_libs/h3.mjs +408 -0
  65. package/.output/server/_libs/hast-util-to-jsx-runtime.mjs +388 -0
  66. package/.output/server/_libs/hast-util-whitespace.mjs +10 -0
  67. package/.output/server/_libs/hookable.mjs +1 -0
  68. package/.output/server/_libs/html-url-attributes.mjs +26 -0
  69. package/.output/server/_libs/immediate.mjs +74 -0
  70. package/.output/server/_libs/inherits.mjs +50 -0
  71. package/.output/server/_libs/inline-style-parser.mjs +142 -0
  72. package/.output/server/_libs/is-plain-obj.mjs +10 -0
  73. package/.output/server/_libs/isarray.mjs +14 -0
  74. package/.output/server/_libs/isbot.mjs +20 -0
  75. package/.output/server/_libs/json-schema-traverse.mjs +180 -0
  76. package/.output/server/_libs/jszip.mjs +3051 -0
  77. package/.output/server/_libs/lie.mjs +273 -0
  78. package/.output/server/_libs/lucide-react.mjs +492 -0
  79. package/.output/server/_libs/mdast-util-from-markdown.mjs +717 -0
  80. package/.output/server/_libs/mdast-util-to-hast.mjs +710 -0
  81. package/.output/server/_libs/mdast-util-to-string.mjs +38 -0
  82. package/.output/server/_libs/micromark-core-commonmark.mjs +2259 -0
  83. package/.output/server/_libs/micromark-factory-destination.mjs +94 -0
  84. package/.output/server/_libs/micromark-factory-label.mjs +63 -0
  85. package/.output/server/_libs/micromark-factory-space.mjs +24 -0
  86. package/.output/server/_libs/micromark-factory-title.mjs +65 -0
  87. package/.output/server/_libs/micromark-factory-whitespace.mjs +22 -0
  88. package/.output/server/_libs/micromark-util-character.mjs +44 -0
  89. package/.output/server/_libs/micromark-util-chunked.mjs +36 -0
  90. package/.output/server/_libs/micromark-util-classify-character+[...].mjs +12 -0
  91. package/.output/server/_libs/micromark-util-combine-extensions+[...].mjs +41 -0
  92. package/.output/server/_libs/micromark-util-decode-numeric-character-reference+[...].mjs +19 -0
  93. package/.output/server/_libs/micromark-util-decode-string.mjs +21 -0
  94. package/.output/server/_libs/micromark-util-encode.mjs +1 -0
  95. package/.output/server/_libs/micromark-util-html-tag-name.mjs +69 -0
  96. package/.output/server/_libs/micromark-util-normalize-identifier+[...].mjs +6 -0
  97. package/.output/server/_libs/micromark-util-resolve-all.mjs +15 -0
  98. package/.output/server/_libs/micromark-util-sanitize-uri.mjs +41 -0
  99. package/.output/server/_libs/micromark-util-subtokenize.mjs +346 -0
  100. package/.output/server/_libs/micromark.mjs +906 -0
  101. package/.output/server/_libs/mimic-function.mjs +47 -0
  102. package/.output/server/_libs/modelcontextprotocol__server.mjs +9738 -0
  103. package/.output/server/_libs/ocache.mjs +1 -0
  104. package/.output/server/_libs/ohash.mjs +1 -0
  105. package/.output/server/_libs/pako.mjs +4223 -0
  106. package/.output/server/_libs/process-nextick-args.mjs +48 -0
  107. package/.output/server/_libs/property-information.mjs +1209 -0
  108. package/.output/server/_libs/radix-ui.mjs +1 -0
  109. package/.output/server/_libs/radix-ui__number.mjs +6 -0
  110. package/.output/server/_libs/radix-ui__primitive.mjs +11 -0
  111. package/.output/server/_libs/radix-ui__react-accordion.mjs +1 -0
  112. package/.output/server/_libs/radix-ui__react-alert-dialog.mjs +1 -0
  113. package/.output/server/_libs/radix-ui__react-arrow.mjs +23 -0
  114. package/.output/server/_libs/radix-ui__react-aspect-ratio.mjs +1 -0
  115. package/.output/server/_libs/radix-ui__react-avatar.mjs +1 -0
  116. package/.output/server/_libs/radix-ui__react-checkbox.mjs +1 -0
  117. package/.output/server/_libs/radix-ui__react-collapsible.mjs +144 -0
  118. package/.output/server/_libs/radix-ui__react-collection.mjs +69 -0
  119. package/.output/server/_libs/radix-ui__react-compose-refs.mjs +39 -0
  120. package/.output/server/_libs/radix-ui__react-context-menu.mjs +1 -0
  121. package/.output/server/_libs/radix-ui__react-context.mjs +78 -0
  122. package/.output/server/_libs/radix-ui__react-dialog.mjs +325 -0
  123. package/.output/server/_libs/radix-ui__react-direction.mjs +9 -0
  124. package/.output/server/_libs/radix-ui__react-dropdown-menu.mjs +1 -0
  125. package/.output/server/_libs/radix-ui__react-focus-guards.mjs +29 -0
  126. package/.output/server/_libs/radix-ui__react-focus-scope.mjs +206 -0
  127. package/.output/server/_libs/radix-ui__react-form.mjs +1 -0
  128. package/.output/server/_libs/radix-ui__react-hover-card.mjs +1 -0
  129. package/.output/server/_libs/radix-ui__react-id.mjs +14 -0
  130. package/.output/server/_libs/radix-ui__react-label.mjs +1 -0
  131. package/.output/server/_libs/radix-ui__react-menu.mjs +1 -0
  132. package/.output/server/_libs/radix-ui__react-menubar.mjs +1 -0
  133. package/.output/server/_libs/radix-ui__react-popover.mjs +1 -0
  134. package/.output/server/_libs/radix-ui__react-popper.mjs +286 -0
  135. package/.output/server/_libs/radix-ui__react-portal.mjs +16 -0
  136. package/.output/server/_libs/radix-ui__react-presence.mjs +128 -0
  137. package/.output/server/_libs/radix-ui__react-primitive.mjs +42 -0
  138. package/.output/server/_libs/radix-ui__react-progress.mjs +1 -0
  139. package/.output/server/_libs/radix-ui__react-radio-group.mjs +1 -0
  140. package/.output/server/_libs/radix-ui__react-roving-focus.mjs +224 -0
  141. package/.output/server/_libs/radix-ui__react-scroll-area.mjs +721 -0
  142. package/.output/server/_libs/radix-ui__react-select.mjs +1163 -0
  143. package/.output/server/_libs/radix-ui__react-separator.mjs +28 -0
  144. package/.output/server/_libs/radix-ui__react-slider.mjs +1 -0
  145. package/.output/server/_libs/radix-ui__react-slot.mjs +99 -0
  146. package/.output/server/_libs/radix-ui__react-switch.mjs +1 -0
  147. package/.output/server/_libs/radix-ui__react-tabs.mjs +189 -0
  148. package/.output/server/_libs/radix-ui__react-toast.mjs +2 -0
  149. package/.output/server/_libs/radix-ui__react-toggle-group.mjs +1 -0
  150. package/.output/server/_libs/radix-ui__react-toggle.mjs +1 -0
  151. package/.output/server/_libs/radix-ui__react-toolbar.mjs +1 -0
  152. package/.output/server/_libs/radix-ui__react-tooltip.mjs +495 -0
  153. package/.output/server/_libs/radix-ui__react-use-previous.mjs +14 -0
  154. package/.output/server/_libs/radix-ui__react-use-size.mjs +39 -0
  155. package/.output/server/_libs/react-dom.mjs +10781 -0
  156. package/.output/server/_libs/react-markdown.mjs +147 -0
  157. package/.output/server/_libs/react-remove-scroll-bar.mjs +82 -0
  158. package/.output/server/_libs/react-remove-scroll.mjs +328 -0
  159. package/.output/server/_libs/react-style-singleton.mjs +69 -0
  160. package/.output/server/_libs/react.mjs +515 -0
  161. package/.output/server/_libs/readable-stream.mjs +1518 -0
  162. package/.output/server/_libs/remark-parse.mjs +19 -0
  163. package/.output/server/_libs/remark-rehype.mjs +21 -0
  164. package/.output/server/_libs/rou3.mjs +14 -0
  165. package/.output/server/_libs/safe-buffer.mjs +64 -0
  166. package/.output/server/_libs/semver.mjs +1938 -0
  167. package/.output/server/_libs/seroval-plugins.mjs +58 -0
  168. package/.output/server/_libs/seroval.mjs +1765 -0
  169. package/.output/server/_libs/setimmediate.mjs +152 -0
  170. package/.output/server/_libs/space-separated-tokens.mjs +6 -0
  171. package/.output/server/_libs/srvx.mjs +1029 -0
  172. package/.output/server/_libs/stubborn-fs.mjs +91 -0
  173. package/.output/server/_libs/stubborn-utils.mjs +66 -0
  174. package/.output/server/_libs/style-to-js.mjs +72 -0
  175. package/.output/server/_libs/style-to-object.mjs +38 -0
  176. package/.output/server/_libs/swr.mjs +939 -0
  177. package/.output/server/_libs/tailwind-merge.mjs +3010 -0
  178. package/.output/server/_libs/tanstack__history.mjs +217 -0
  179. package/.output/server/_libs/tanstack__react-router.mjs +1480 -0
  180. package/.output/server/_libs/tanstack__react-store.mjs +1 -0
  181. package/.output/server/_libs/tanstack__react-virtual.mjs +44 -0
  182. package/.output/server/_libs/tanstack__router-core.mjs +4827 -0
  183. package/.output/server/_libs/tanstack__store.mjs +1 -0
  184. package/.output/server/_libs/tanstack__virtual-core.mjs +1225 -0
  185. package/.output/server/_libs/tiny-invariant.mjs +12 -0
  186. package/.output/server/_libs/tiny-warning.mjs +5 -0
  187. package/.output/server/_libs/trim-lines.mjs +41 -0
  188. package/.output/server/_libs/trough.mjs +85 -0
  189. package/.output/server/_libs/tslib.mjs +1 -0
  190. package/.output/server/_libs/ufo.mjs +54 -0
  191. package/.output/server/_libs/uint8array-extras.mjs +69 -0
  192. package/.output/server/_libs/ungap__structured-clone.mjs +212 -0
  193. package/.output/server/_libs/unified.mjs +661 -0
  194. package/.output/server/_libs/unist-util-is.mjs +100 -0
  195. package/.output/server/_libs/unist-util-position.mjs +27 -0
  196. package/.output/server/_libs/unist-util-stringify-position.mjs +27 -0
  197. package/.output/server/_libs/unist-util-visit-parents.mjs +82 -0
  198. package/.output/server/_libs/unist-util-visit.mjs +24 -0
  199. package/.output/server/_libs/unstorage.mjs +1 -0
  200. package/.output/server/_libs/use-callback-ref.mjs +66 -0
  201. package/.output/server/_libs/use-sidecar.mjs +106 -0
  202. package/.output/server/_libs/use-sync-external-store.mjs +64 -0
  203. package/.output/server/_libs/util-deprecate.mjs +12 -0
  204. package/.output/server/_libs/vfile-message.mjs +138 -0
  205. package/.output/server/_libs/vfile.mjs +467 -0
  206. package/.output/server/_libs/when-exit.mjs +53 -0
  207. package/.output/server/_libs/zod.mjs +4524 -0
  208. package/.output/server/_sessionId-wMLPvC5g.mjs +123 -0
  209. package/.output/server/_ssr/CompareDrawer-BU4V0uVf.mjs +1041 -0
  210. package/.output/server/_ssr/ProxyViewerContainer-BnRwFEnn.mjs +5972 -0
  211. package/.output/server/_ssr/ReplayDialog-C7dn9pd_.mjs +322 -0
  212. package/.output/server/_ssr/RequestAnatomy-C1rWpe9-.mjs +353 -0
  213. package/.output/server/_ssr/ResponseView-hGpPaYsf.mjs +602 -0
  214. package/.output/server/_ssr/StreamingChunkSequence-BRWI1r_G.mjs +302 -0
  215. package/.output/server/_ssr/index-BKURLVPz.mjs +118 -0
  216. package/.output/server/_ssr/index.mjs +1184 -0
  217. package/.output/server/_ssr/json-viewer-BBd2DtQP.mjs +515 -0
  218. package/.output/server/_ssr/router-BcZ0D6AB.mjs +6317 -0
  219. package/.output/server/_ssr/start-HYkvq4Ni.mjs +4 -0
  220. package/.output/server/_tanstack-start-manifest_v-1y8ZVxRI.mjs +4 -0
  221. package/.output/server/index.mjs +436 -0
  222. package/.output/server/node_modules/tslib/modules/index.js +70 -0
  223. package/.output/server/node_modules/tslib/modules/package.json +3 -0
  224. package/.output/server/node_modules/tslib/package.json +47 -0
  225. package/.output/server/node_modules/tslib/tslib.js +484 -0
  226. package/.output/server/package.json +9 -0
  227. package/LICENSE +21 -0
  228. package/README.md +52 -0
  229. package/package.json +110 -0
  230. package/src/assets/favicon.svg +31 -0
  231. package/src/assets/logos/alibaba.svg +1 -0
  232. package/src/assets/logos/anthropic.svg +1 -0
  233. package/src/assets/logos/claude-code.svg +4 -0
  234. package/src/assets/logos/deepseek.svg +1 -0
  235. package/src/assets/logos/mcp.png +0 -0
  236. package/src/assets/logos/minimax.jpeg +0 -0
  237. package/src/assets/logos/openai.svg +1 -0
  238. package/src/assets/logos/opencode.svg +4 -0
  239. package/src/assets/logos/qwen.png +0 -0
  240. package/src/assets/logos/zhipuai.svg +219 -0
  241. package/src/cli/detect-tools.ts +147 -0
  242. package/src/cli/doctor.ts +521 -0
  243. package/src/cli/onboard.ts +224 -0
  244. package/src/cli/templates/command-onboard.ts +17 -0
  245. package/src/cli/templates/skill-onboard.ts +547 -0
  246. package/src/cli.ts +345 -0
  247. package/src/components/OnboardingBanner.tsx +67 -0
  248. package/src/components/ProxyViewer.tsx +545 -0
  249. package/src/components/ProxyViewerContainer.tsx +363 -0
  250. package/src/components/providers/ImportWizardDialog.tsx +349 -0
  251. package/src/components/providers/ProviderCard.tsx +474 -0
  252. package/src/components/providers/ProviderForm.tsx +494 -0
  253. package/src/components/providers/ProviderLogo.tsx +117 -0
  254. package/src/components/providers/ProvidersPanel.tsx +619 -0
  255. package/src/components/providers/SettingsDialog.tsx +202 -0
  256. package/src/components/proxy-viewer/CompareDrawer.tsx +893 -0
  257. package/src/components/proxy-viewer/ConversationGroup.tsx +107 -0
  258. package/src/components/proxy-viewer/ConversationHeader.tsx +300 -0
  259. package/src/components/proxy-viewer/LogEntry.tsx +543 -0
  260. package/src/components/proxy-viewer/LogEntryHeader.tsx +501 -0
  261. package/src/components/proxy-viewer/ReplayDialog.tsx +218 -0
  262. package/src/components/proxy-viewer/ResponseView.tsx +171 -0
  263. package/src/components/proxy-viewer/StreamingChunkSequence.tsx +188 -0
  264. package/src/components/proxy-viewer/ThreadConnector.tsx +136 -0
  265. package/src/components/proxy-viewer/TurnGroup.tsx +337 -0
  266. package/src/components/proxy-viewer/anatomy/RequestAnatomy.tsx +98 -0
  267. package/src/components/proxy-viewer/anatomy/SegmentBar.tsx +196 -0
  268. package/src/components/proxy-viewer/anatomy/tokenEstimate.ts +53 -0
  269. package/src/components/proxy-viewer/anatomy/types.ts +39 -0
  270. package/src/components/proxy-viewer/anatomy/useAnatomyJump.ts +114 -0
  271. package/src/components/proxy-viewer/cacheTrend.ts +50 -0
  272. package/src/components/proxy-viewer/diff/DiffView.tsx +321 -0
  273. package/src/components/proxy-viewer/diff/computeDiff.ts +178 -0
  274. package/src/components/proxy-viewer/diff/index.ts +3 -0
  275. package/src/components/proxy-viewer/formats/anthropic/ContentBlocks.tsx +157 -0
  276. package/src/components/proxy-viewer/formats/anthropic/ResponseView.tsx +66 -0
  277. package/src/components/proxy-viewer/formats/anthropic/thinkingExtract.ts +21 -0
  278. package/src/components/proxy-viewer/formats/index.tsx +33 -0
  279. package/src/components/proxy-viewer/formats/openai/ResponseView.tsx +170 -0
  280. package/src/components/proxy-viewer/index.ts +9 -0
  281. package/src/components/proxy-viewer/lazy.ts +37 -0
  282. package/src/components/proxy-viewer/log-formats/anthropic.ts +194 -0
  283. package/src/components/proxy-viewer/log-formats/index.ts +23 -0
  284. package/src/components/proxy-viewer/log-formats/openai.ts +167 -0
  285. package/src/components/proxy-viewer/log-formats/types.ts +40 -0
  286. package/src/components/proxy-viewer/log-formats/unknown.ts +18 -0
  287. package/src/components/proxy-viewer/logEntryVisibility.ts +39 -0
  288. package/src/components/proxy-viewer/requestDiff.ts +277 -0
  289. package/src/components/proxy-viewer/useCopyFeedback.ts +36 -0
  290. package/src/components/proxy-viewer/useKeyboardNavigation.ts +190 -0
  291. package/src/components/proxy-viewer/viewerState.ts +66 -0
  292. package/src/components/ui/badge.tsx +47 -0
  293. package/src/components/ui/button.tsx +47 -0
  294. package/src/components/ui/collapsible.tsx +21 -0
  295. package/src/components/ui/confirm-dialog.tsx +51 -0
  296. package/src/components/ui/crab-logo.tsx +95 -0
  297. package/src/components/ui/crab-variants.tsx +467 -0
  298. package/src/components/ui/dialog.tsx +129 -0
  299. package/src/components/ui/json-expansion-button.tsx +56 -0
  300. package/src/components/ui/json-viewer-bulk.ts +97 -0
  301. package/src/components/ui/json-viewer.tsx +494 -0
  302. package/src/components/ui/mcp-logo.tsx +20 -0
  303. package/src/components/ui/scroll-area.tsx +54 -0
  304. package/src/components/ui/select.tsx +178 -0
  305. package/src/components/ui/separator.tsx +28 -0
  306. package/src/components/ui/tabs.tsx +88 -0
  307. package/src/components/ui/tooltip.tsx +51 -0
  308. package/src/index.css +11 -0
  309. package/src/knowledge/candidateStore.ts +63 -0
  310. package/src/knowledge/distiller.ts +98 -0
  311. package/src/knowledge/openclawClient.ts +118 -0
  312. package/src/knowledge/redactor.ts +80 -0
  313. package/src/knowledge/types.ts +84 -0
  314. package/src/lib/apiClient.ts +49 -0
  315. package/src/lib/export-logs.ts +51 -0
  316. package/src/lib/mask.ts +4 -0
  317. package/src/lib/objectUtils.ts +22 -0
  318. package/src/lib/providerContract.ts +26 -0
  319. package/src/lib/providerTestContract.ts +107 -0
  320. package/src/lib/runtimeConfig.ts +25 -0
  321. package/src/lib/serverPort.ts +41 -0
  322. package/src/lib/sessionUrl.ts +44 -0
  323. package/src/lib/stopReason.ts +58 -0
  324. package/src/lib/useOnboarding.ts +80 -0
  325. package/src/lib/useProviders.ts +30 -0
  326. package/src/lib/useStripConfig.ts +108 -0
  327. package/src/lib/utils.ts +21 -0
  328. package/src/mcp/loopback.ts +76 -0
  329. package/src/mcp/previewExtractor.ts +166 -0
  330. package/src/mcp/server.ts +396 -0
  331. package/src/mcp/toolHandlers.ts +341 -0
  332. package/src/proxy/chunkStorage.ts +112 -0
  333. package/src/proxy/claudeCodeStrip.ts +99 -0
  334. package/src/proxy/config.ts +172 -0
  335. package/src/proxy/constants.ts +47 -0
  336. package/src/proxy/dataDir.ts +86 -0
  337. package/src/proxy/formats/anthropic/anthropicProvider.ts +75 -0
  338. package/src/proxy/formats/anthropic/handler.ts +71 -0
  339. package/src/proxy/formats/anthropic/index.ts +14 -0
  340. package/src/proxy/formats/anthropic/register.ts +4 -0
  341. package/src/proxy/formats/anthropic/schemas.ts +237 -0
  342. package/src/proxy/formats/anthropic/stream.ts +205 -0
  343. package/src/proxy/formats/handler.ts +46 -0
  344. package/src/proxy/formats/index.ts +12 -0
  345. package/src/proxy/formats/jsonSchema.ts +36 -0
  346. package/src/proxy/formats/openai/alibabaProvider.ts +38 -0
  347. package/src/proxy/formats/openai/handler.ts +96 -0
  348. package/src/proxy/formats/openai/index.ts +25 -0
  349. package/src/proxy/formats/openai/provider.ts +50 -0
  350. package/src/proxy/formats/openai/register.ts +4 -0
  351. package/src/proxy/formats/openai/schemas.ts +187 -0
  352. package/src/proxy/formats/openai/stream.ts +206 -0
  353. package/src/proxy/formats/protocol.ts +50 -0
  354. package/src/proxy/formats/providerRegistry.ts +51 -0
  355. package/src/proxy/formats/providers/index.ts +3 -0
  356. package/src/proxy/formats/registry.ts +66 -0
  357. package/src/proxy/handler.ts +334 -0
  358. package/src/proxy/logFinalizer.ts +305 -0
  359. package/src/proxy/logFinalizer.worker.ts +24 -0
  360. package/src/proxy/logIndex.ts +268 -0
  361. package/src/proxy/logger.ts +179 -0
  362. package/src/proxy/openaiOrphanToolStrip.ts +142 -0
  363. package/src/proxy/providerImporters.ts +491 -0
  364. package/src/proxy/providers.ts +613 -0
  365. package/src/proxy/schemas.ts +209 -0
  366. package/src/proxy/sessionProcess.ts +140 -0
  367. package/src/proxy/sessionRuntime.ts +85 -0
  368. package/src/proxy/sessionSupervisor.ts +283 -0
  369. package/src/proxy/sessionWorkerEntry.ts +26 -0
  370. package/src/proxy/socketTracker.ts +255 -0
  371. package/src/proxy/store.ts +412 -0
  372. package/src/proxy/upstream.ts +90 -0
  373. package/src/router.tsx +16 -0
  374. package/src/routes/__root.tsx +45 -0
  375. package/src/routes/api/config.paths.ts +14 -0
  376. package/src/routes/api/config.ts +53 -0
  377. package/src/routes/api/health.ts +15 -0
  378. package/src/routes/api/knowledge.candidates.$candidateId.promote.ts +32 -0
  379. package/src/routes/api/knowledge.candidates.ts +10 -0
  380. package/src/routes/api/knowledge.project-context.ts +18 -0
  381. package/src/routes/api/knowledge.search.ts +31 -0
  382. package/src/routes/api/knowledge.sessions.$sessionId.candidates.ts +16 -0
  383. package/src/routes/api/logs.$id.chunks.ts +36 -0
  384. package/src/routes/api/logs.$id.replay.ts +191 -0
  385. package/src/routes/api/logs.$id.ts +22 -0
  386. package/src/routes/api/logs.stream.ts +74 -0
  387. package/src/routes/api/logs.ts +59 -0
  388. package/src/routes/api/mcp.ts +25 -0
  389. package/src/routes/api/models.ts +10 -0
  390. package/src/routes/api/providers.$providerId.test.log.ts +293 -0
  391. package/src/routes/api/providers.$providerId.ts +50 -0
  392. package/src/routes/api/providers.export.ts +26 -0
  393. package/src/routes/api/providers.import.ts +47 -0
  394. package/src/routes/api/providers.scan.ts +23 -0
  395. package/src/routes/api/providers.ts +45 -0
  396. package/src/routes/api/sessions.ts +17 -0
  397. package/src/routes/index.tsx +6 -0
  398. package/src/routes/proxy/$.ts +15 -0
  399. package/src/routes/session/$sessionId.tsx +23 -0
  400. package/styles/globals.css +188 -0
@@ -0,0 +1,622 @@
1
+ import { c as computePosition$1, o as offset$1, s as shift$1, f as flip$1, a as size$1, h as hide$1, b as arrow$1, l as limitShift$1 } from "./floating-ui__core.mjs";
2
+ import { p as isElement, q as getDocumentElement, t as getOverflowAncestors, u as getComputedStyle$1, v as isHTMLElement, w as createCoords, x as round, y as getWindow, z as isTopLayer, A as getParentNode, B as isLastTraversableNode, C as isTableElement, D as isContainingBlock, E as getContainingBlock, l as max, m as min, F as getNodeName, G as isOverflowElement, H as getNodeScroll, I as getFrameElement, r as rectToClientRect, J as floor, K as isWebKit } from "./floating-ui__utils.mjs";
3
+ function getCssDimensions(element) {
4
+ const css = getComputedStyle$1(element);
5
+ let width = parseFloat(css.width) || 0;
6
+ let height = parseFloat(css.height) || 0;
7
+ const hasOffset = isHTMLElement(element);
8
+ const offsetWidth = hasOffset ? element.offsetWidth : width;
9
+ const offsetHeight = hasOffset ? element.offsetHeight : height;
10
+ const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;
11
+ if (shouldFallback) {
12
+ width = offsetWidth;
13
+ height = offsetHeight;
14
+ }
15
+ return {
16
+ width,
17
+ height,
18
+ $: shouldFallback
19
+ };
20
+ }
21
+ function unwrapElement(element) {
22
+ return !isElement(element) ? element.contextElement : element;
23
+ }
24
+ function getScale(element) {
25
+ const domElement = unwrapElement(element);
26
+ if (!isHTMLElement(domElement)) {
27
+ return createCoords(1);
28
+ }
29
+ const rect = domElement.getBoundingClientRect();
30
+ const {
31
+ width,
32
+ height,
33
+ $
34
+ } = getCssDimensions(domElement);
35
+ let x = ($ ? round(rect.width) : rect.width) / width;
36
+ let y = ($ ? round(rect.height) : rect.height) / height;
37
+ if (!x || !Number.isFinite(x)) {
38
+ x = 1;
39
+ }
40
+ if (!y || !Number.isFinite(y)) {
41
+ y = 1;
42
+ }
43
+ return {
44
+ x,
45
+ y
46
+ };
47
+ }
48
+ const noOffsets = /* @__PURE__ */ createCoords(0);
49
+ function getVisualOffsets(element) {
50
+ const win = getWindow(element);
51
+ if (!isWebKit() || !win.visualViewport) {
52
+ return noOffsets;
53
+ }
54
+ return {
55
+ x: win.visualViewport.offsetLeft,
56
+ y: win.visualViewport.offsetTop
57
+ };
58
+ }
59
+ function shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {
60
+ if (isFixed === void 0) {
61
+ isFixed = false;
62
+ }
63
+ if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {
64
+ return false;
65
+ }
66
+ return isFixed;
67
+ }
68
+ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {
69
+ if (includeScale === void 0) {
70
+ includeScale = false;
71
+ }
72
+ if (isFixedStrategy === void 0) {
73
+ isFixedStrategy = false;
74
+ }
75
+ const clientRect = element.getBoundingClientRect();
76
+ const domElement = unwrapElement(element);
77
+ let scale = createCoords(1);
78
+ if (includeScale) {
79
+ if (offsetParent) {
80
+ if (isElement(offsetParent)) {
81
+ scale = getScale(offsetParent);
82
+ }
83
+ } else {
84
+ scale = getScale(element);
85
+ }
86
+ }
87
+ const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);
88
+ let x = (clientRect.left + visualOffsets.x) / scale.x;
89
+ let y = (clientRect.top + visualOffsets.y) / scale.y;
90
+ let width = clientRect.width / scale.x;
91
+ let height = clientRect.height / scale.y;
92
+ if (domElement) {
93
+ const win = getWindow(domElement);
94
+ const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;
95
+ let currentWin = win;
96
+ let currentIFrame = getFrameElement(currentWin);
97
+ while (currentIFrame && offsetParent && offsetWin !== currentWin) {
98
+ const iframeScale = getScale(currentIFrame);
99
+ const iframeRect = currentIFrame.getBoundingClientRect();
100
+ const css = getComputedStyle$1(currentIFrame);
101
+ const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;
102
+ const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;
103
+ x *= iframeScale.x;
104
+ y *= iframeScale.y;
105
+ width *= iframeScale.x;
106
+ height *= iframeScale.y;
107
+ x += left;
108
+ y += top;
109
+ currentWin = getWindow(currentIFrame);
110
+ currentIFrame = getFrameElement(currentWin);
111
+ }
112
+ }
113
+ return rectToClientRect({
114
+ width,
115
+ height,
116
+ x,
117
+ y
118
+ });
119
+ }
120
+ function getWindowScrollBarX(element, rect) {
121
+ const leftScroll = getNodeScroll(element).scrollLeft;
122
+ if (!rect) {
123
+ return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;
124
+ }
125
+ return rect.left + leftScroll;
126
+ }
127
+ function getHTMLOffset(documentElement, scroll) {
128
+ const htmlRect = documentElement.getBoundingClientRect();
129
+ const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);
130
+ const y = htmlRect.top + scroll.scrollTop;
131
+ return {
132
+ x,
133
+ y
134
+ };
135
+ }
136
+ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
137
+ let {
138
+ elements,
139
+ rect,
140
+ offsetParent,
141
+ strategy
142
+ } = _ref;
143
+ const isFixed = strategy === "fixed";
144
+ const documentElement = getDocumentElement(offsetParent);
145
+ const topLayer = elements ? isTopLayer(elements.floating) : false;
146
+ if (offsetParent === documentElement || topLayer && isFixed) {
147
+ return rect;
148
+ }
149
+ let scroll = {
150
+ scrollLeft: 0,
151
+ scrollTop: 0
152
+ };
153
+ let scale = createCoords(1);
154
+ const offsets = createCoords(0);
155
+ const isOffsetParentAnElement = isHTMLElement(offsetParent);
156
+ if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
157
+ if (getNodeName(offsetParent) !== "body" || isOverflowElement(documentElement)) {
158
+ scroll = getNodeScroll(offsetParent);
159
+ }
160
+ if (isHTMLElement(offsetParent)) {
161
+ const offsetRect = getBoundingClientRect(offsetParent);
162
+ scale = getScale(offsetParent);
163
+ offsets.x = offsetRect.x + offsetParent.clientLeft;
164
+ offsets.y = offsetRect.y + offsetParent.clientTop;
165
+ }
166
+ }
167
+ const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
168
+ return {
169
+ width: rect.width * scale.x,
170
+ height: rect.height * scale.y,
171
+ x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,
172
+ y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y
173
+ };
174
+ }
175
+ function getClientRects(element) {
176
+ return Array.from(element.getClientRects());
177
+ }
178
+ function getDocumentRect(element) {
179
+ const html = getDocumentElement(element);
180
+ const scroll = getNodeScroll(element);
181
+ const body = element.ownerDocument.body;
182
+ const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);
183
+ const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);
184
+ let x = -scroll.scrollLeft + getWindowScrollBarX(element);
185
+ const y = -scroll.scrollTop;
186
+ if (getComputedStyle$1(body).direction === "rtl") {
187
+ x += max(html.clientWidth, body.clientWidth) - width;
188
+ }
189
+ return {
190
+ width,
191
+ height,
192
+ x,
193
+ y
194
+ };
195
+ }
196
+ const SCROLLBAR_MAX = 25;
197
+ function getViewportRect(element, strategy) {
198
+ const win = getWindow(element);
199
+ const html = getDocumentElement(element);
200
+ const visualViewport = win.visualViewport;
201
+ let width = html.clientWidth;
202
+ let height = html.clientHeight;
203
+ let x = 0;
204
+ let y = 0;
205
+ if (visualViewport) {
206
+ width = visualViewport.width;
207
+ height = visualViewport.height;
208
+ const visualViewportBased = isWebKit();
209
+ if (!visualViewportBased || visualViewportBased && strategy === "fixed") {
210
+ x = visualViewport.offsetLeft;
211
+ y = visualViewport.offsetTop;
212
+ }
213
+ }
214
+ const windowScrollbarX = getWindowScrollBarX(html);
215
+ if (windowScrollbarX <= 0) {
216
+ const doc = html.ownerDocument;
217
+ const body = doc.body;
218
+ const bodyStyles = getComputedStyle(body);
219
+ const bodyMarginInline = doc.compatMode === "CSS1Compat" ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;
220
+ const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);
221
+ if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {
222
+ width -= clippingStableScrollbarWidth;
223
+ }
224
+ } else if (windowScrollbarX <= SCROLLBAR_MAX) {
225
+ width += windowScrollbarX;
226
+ }
227
+ return {
228
+ width,
229
+ height,
230
+ x,
231
+ y
232
+ };
233
+ }
234
+ const absoluteOrFixed = /* @__PURE__ */ new Set(["absolute", "fixed"]);
235
+ function getInnerBoundingClientRect(element, strategy) {
236
+ const clientRect = getBoundingClientRect(element, true, strategy === "fixed");
237
+ const top = clientRect.top + element.clientTop;
238
+ const left = clientRect.left + element.clientLeft;
239
+ const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);
240
+ const width = element.clientWidth * scale.x;
241
+ const height = element.clientHeight * scale.y;
242
+ const x = left * scale.x;
243
+ const y = top * scale.y;
244
+ return {
245
+ width,
246
+ height,
247
+ x,
248
+ y
249
+ };
250
+ }
251
+ function getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {
252
+ let rect;
253
+ if (clippingAncestor === "viewport") {
254
+ rect = getViewportRect(element, strategy);
255
+ } else if (clippingAncestor === "document") {
256
+ rect = getDocumentRect(getDocumentElement(element));
257
+ } else if (isElement(clippingAncestor)) {
258
+ rect = getInnerBoundingClientRect(clippingAncestor, strategy);
259
+ } else {
260
+ const visualOffsets = getVisualOffsets(element);
261
+ rect = {
262
+ x: clippingAncestor.x - visualOffsets.x,
263
+ y: clippingAncestor.y - visualOffsets.y,
264
+ width: clippingAncestor.width,
265
+ height: clippingAncestor.height
266
+ };
267
+ }
268
+ return rectToClientRect(rect);
269
+ }
270
+ function hasFixedPositionAncestor(element, stopNode) {
271
+ const parentNode = getParentNode(element);
272
+ if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {
273
+ return false;
274
+ }
275
+ return getComputedStyle$1(parentNode).position === "fixed" || hasFixedPositionAncestor(parentNode, stopNode);
276
+ }
277
+ function getClippingElementAncestors(element, cache) {
278
+ const cachedResult = cache.get(element);
279
+ if (cachedResult) {
280
+ return cachedResult;
281
+ }
282
+ let result = getOverflowAncestors(element, [], false).filter((el) => isElement(el) && getNodeName(el) !== "body");
283
+ let currentContainingBlockComputedStyle = null;
284
+ const elementIsFixed = getComputedStyle$1(element).position === "fixed";
285
+ let currentNode = elementIsFixed ? getParentNode(element) : element;
286
+ while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {
287
+ const computedStyle = getComputedStyle$1(currentNode);
288
+ const currentNodeIsContaining = isContainingBlock(currentNode);
289
+ if (!currentNodeIsContaining && computedStyle.position === "fixed") {
290
+ currentContainingBlockComputedStyle = null;
291
+ }
292
+ const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === "static" && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
293
+ if (shouldDropCurrentNode) {
294
+ result = result.filter((ancestor) => ancestor !== currentNode);
295
+ } else {
296
+ currentContainingBlockComputedStyle = computedStyle;
297
+ }
298
+ currentNode = getParentNode(currentNode);
299
+ }
300
+ cache.set(element, result);
301
+ return result;
302
+ }
303
+ function getClippingRect(_ref) {
304
+ let {
305
+ element,
306
+ boundary,
307
+ rootBoundary,
308
+ strategy
309
+ } = _ref;
310
+ const elementClippingAncestors = boundary === "clippingAncestors" ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);
311
+ const clippingAncestors = [...elementClippingAncestors, rootBoundary];
312
+ const firstClippingAncestor = clippingAncestors[0];
313
+ const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {
314
+ const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);
315
+ accRect.top = max(rect.top, accRect.top);
316
+ accRect.right = min(rect.right, accRect.right);
317
+ accRect.bottom = min(rect.bottom, accRect.bottom);
318
+ accRect.left = max(rect.left, accRect.left);
319
+ return accRect;
320
+ }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));
321
+ return {
322
+ width: clippingRect.right - clippingRect.left,
323
+ height: clippingRect.bottom - clippingRect.top,
324
+ x: clippingRect.left,
325
+ y: clippingRect.top
326
+ };
327
+ }
328
+ function getDimensions(element) {
329
+ const {
330
+ width,
331
+ height
332
+ } = getCssDimensions(element);
333
+ return {
334
+ width,
335
+ height
336
+ };
337
+ }
338
+ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
339
+ const isOffsetParentAnElement = isHTMLElement(offsetParent);
340
+ const documentElement = getDocumentElement(offsetParent);
341
+ const isFixed = strategy === "fixed";
342
+ const rect = getBoundingClientRect(element, true, isFixed, offsetParent);
343
+ let scroll = {
344
+ scrollLeft: 0,
345
+ scrollTop: 0
346
+ };
347
+ const offsets = createCoords(0);
348
+ function setLeftRTLScrollbarOffset() {
349
+ offsets.x = getWindowScrollBarX(documentElement);
350
+ }
351
+ if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
352
+ if (getNodeName(offsetParent) !== "body" || isOverflowElement(documentElement)) {
353
+ scroll = getNodeScroll(offsetParent);
354
+ }
355
+ if (isOffsetParentAnElement) {
356
+ const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);
357
+ offsets.x = offsetRect.x + offsetParent.clientLeft;
358
+ offsets.y = offsetRect.y + offsetParent.clientTop;
359
+ } else if (documentElement) {
360
+ setLeftRTLScrollbarOffset();
361
+ }
362
+ }
363
+ if (isFixed && !isOffsetParentAnElement && documentElement) {
364
+ setLeftRTLScrollbarOffset();
365
+ }
366
+ const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
367
+ const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;
368
+ const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;
369
+ return {
370
+ x,
371
+ y,
372
+ width: rect.width,
373
+ height: rect.height
374
+ };
375
+ }
376
+ function isStaticPositioned(element) {
377
+ return getComputedStyle$1(element).position === "static";
378
+ }
379
+ function getTrueOffsetParent(element, polyfill) {
380
+ if (!isHTMLElement(element) || getComputedStyle$1(element).position === "fixed") {
381
+ return null;
382
+ }
383
+ if (polyfill) {
384
+ return polyfill(element);
385
+ }
386
+ let rawOffsetParent = element.offsetParent;
387
+ if (getDocumentElement(element) === rawOffsetParent) {
388
+ rawOffsetParent = rawOffsetParent.ownerDocument.body;
389
+ }
390
+ return rawOffsetParent;
391
+ }
392
+ function getOffsetParent(element, polyfill) {
393
+ const win = getWindow(element);
394
+ if (isTopLayer(element)) {
395
+ return win;
396
+ }
397
+ if (!isHTMLElement(element)) {
398
+ let svgOffsetParent = getParentNode(element);
399
+ while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {
400
+ if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {
401
+ return svgOffsetParent;
402
+ }
403
+ svgOffsetParent = getParentNode(svgOffsetParent);
404
+ }
405
+ return win;
406
+ }
407
+ let offsetParent = getTrueOffsetParent(element, polyfill);
408
+ while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {
409
+ offsetParent = getTrueOffsetParent(offsetParent, polyfill);
410
+ }
411
+ if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {
412
+ return win;
413
+ }
414
+ return offsetParent || getContainingBlock(element) || win;
415
+ }
416
+ const getElementRects = async function(data) {
417
+ const getOffsetParentFn = this.getOffsetParent || getOffsetParent;
418
+ const getDimensionsFn = this.getDimensions;
419
+ const floatingDimensions = await getDimensionsFn(data.floating);
420
+ return {
421
+ reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),
422
+ floating: {
423
+ x: 0,
424
+ y: 0,
425
+ width: floatingDimensions.width,
426
+ height: floatingDimensions.height
427
+ }
428
+ };
429
+ };
430
+ function isRTL(element) {
431
+ return getComputedStyle$1(element).direction === "rtl";
432
+ }
433
+ const platform = {
434
+ convertOffsetParentRelativeRectToViewportRelativeRect,
435
+ getDocumentElement,
436
+ getClippingRect,
437
+ getOffsetParent,
438
+ getElementRects,
439
+ getClientRects,
440
+ getDimensions,
441
+ getScale,
442
+ isElement,
443
+ isRTL
444
+ };
445
+ function rectsAreEqual(a, b) {
446
+ return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;
447
+ }
448
+ function observeMove(element, onMove) {
449
+ let io = null;
450
+ let timeoutId;
451
+ const root = getDocumentElement(element);
452
+ function cleanup() {
453
+ var _io;
454
+ clearTimeout(timeoutId);
455
+ (_io = io) == null || _io.disconnect();
456
+ io = null;
457
+ }
458
+ function refresh(skip, threshold) {
459
+ if (skip === void 0) {
460
+ skip = false;
461
+ }
462
+ if (threshold === void 0) {
463
+ threshold = 1;
464
+ }
465
+ cleanup();
466
+ const elementRectForRootMargin = element.getBoundingClientRect();
467
+ const {
468
+ left,
469
+ top,
470
+ width,
471
+ height
472
+ } = elementRectForRootMargin;
473
+ if (!skip) {
474
+ onMove();
475
+ }
476
+ if (!width || !height) {
477
+ return;
478
+ }
479
+ const insetTop = floor(top);
480
+ const insetRight = floor(root.clientWidth - (left + width));
481
+ const insetBottom = floor(root.clientHeight - (top + height));
482
+ const insetLeft = floor(left);
483
+ const rootMargin = -insetTop + "px " + -insetRight + "px " + -insetBottom + "px " + -insetLeft + "px";
484
+ const options = {
485
+ rootMargin,
486
+ threshold: max(0, min(1, threshold)) || 1
487
+ };
488
+ let isFirstUpdate = true;
489
+ function handleObserve(entries) {
490
+ const ratio = entries[0].intersectionRatio;
491
+ if (ratio !== threshold) {
492
+ if (!isFirstUpdate) {
493
+ return refresh();
494
+ }
495
+ if (!ratio) {
496
+ timeoutId = setTimeout(() => {
497
+ refresh(false, 1e-7);
498
+ }, 1e3);
499
+ } else {
500
+ refresh(false, ratio);
501
+ }
502
+ }
503
+ if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {
504
+ refresh();
505
+ }
506
+ isFirstUpdate = false;
507
+ }
508
+ try {
509
+ io = new IntersectionObserver(handleObserve, {
510
+ ...options,
511
+ // Handle <iframe>s
512
+ root: root.ownerDocument
513
+ });
514
+ } catch (_e) {
515
+ io = new IntersectionObserver(handleObserve, options);
516
+ }
517
+ io.observe(element);
518
+ }
519
+ refresh(true);
520
+ return cleanup;
521
+ }
522
+ function autoUpdate(reference, floating, update, options) {
523
+ if (options === void 0) {
524
+ options = {};
525
+ }
526
+ const {
527
+ ancestorScroll = true,
528
+ ancestorResize = true,
529
+ elementResize = typeof ResizeObserver === "function",
530
+ layoutShift = typeof IntersectionObserver === "function",
531
+ animationFrame = false
532
+ } = options;
533
+ const referenceEl = unwrapElement(reference);
534
+ const ancestors = ancestorScroll || ancestorResize ? [...referenceEl ? getOverflowAncestors(referenceEl) : [], ...getOverflowAncestors(floating)] : [];
535
+ ancestors.forEach((ancestor) => {
536
+ ancestorScroll && ancestor.addEventListener("scroll", update, {
537
+ passive: true
538
+ });
539
+ ancestorResize && ancestor.addEventListener("resize", update);
540
+ });
541
+ const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;
542
+ let reobserveFrame = -1;
543
+ let resizeObserver = null;
544
+ if (elementResize) {
545
+ resizeObserver = new ResizeObserver((_ref) => {
546
+ let [firstEntry] = _ref;
547
+ if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {
548
+ resizeObserver.unobserve(floating);
549
+ cancelAnimationFrame(reobserveFrame);
550
+ reobserveFrame = requestAnimationFrame(() => {
551
+ var _resizeObserver;
552
+ (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);
553
+ });
554
+ }
555
+ update();
556
+ });
557
+ if (referenceEl && !animationFrame) {
558
+ resizeObserver.observe(referenceEl);
559
+ }
560
+ resizeObserver.observe(floating);
561
+ }
562
+ let frameId;
563
+ let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;
564
+ if (animationFrame) {
565
+ frameLoop();
566
+ }
567
+ function frameLoop() {
568
+ const nextRefRect = getBoundingClientRect(reference);
569
+ if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {
570
+ update();
571
+ }
572
+ prevRefRect = nextRefRect;
573
+ frameId = requestAnimationFrame(frameLoop);
574
+ }
575
+ update();
576
+ return () => {
577
+ var _resizeObserver2;
578
+ ancestors.forEach((ancestor) => {
579
+ ancestorScroll && ancestor.removeEventListener("scroll", update);
580
+ ancestorResize && ancestor.removeEventListener("resize", update);
581
+ });
582
+ cleanupIo == null || cleanupIo();
583
+ (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();
584
+ resizeObserver = null;
585
+ if (animationFrame) {
586
+ cancelAnimationFrame(frameId);
587
+ }
588
+ };
589
+ }
590
+ const offset = offset$1;
591
+ const shift = shift$1;
592
+ const flip = flip$1;
593
+ const size = size$1;
594
+ const hide = hide$1;
595
+ const arrow = arrow$1;
596
+ const limitShift = limitShift$1;
597
+ const computePosition = (reference, floating, options) => {
598
+ const cache = /* @__PURE__ */ new Map();
599
+ const mergedOptions = {
600
+ platform,
601
+ ...options
602
+ };
603
+ const platformWithCache = {
604
+ ...mergedOptions.platform,
605
+ _c: cache
606
+ };
607
+ return computePosition$1(reference, floating, {
608
+ ...mergedOptions,
609
+ platform: platformWithCache
610
+ });
611
+ };
612
+ export {
613
+ size as a,
614
+ arrow as b,
615
+ computePosition as c,
616
+ autoUpdate as d,
617
+ flip as f,
618
+ hide as h,
619
+ limitShift as l,
620
+ offset as o,
621
+ shift as s
622
+ };