@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,725 @@
1
+ import { g as getSideAxis, a as getAlignmentAxis, b as getSide, c as getAlignment, e as evaluate, d as getPaddingObject, r as rectToClientRect, f as clamp, h as getOppositePlacement, i as getExpandedPlacements, j as getOppositeAxisPlacements, k as getAlignmentSides, m as min, l as max, n as getAxisLength, o as getOppositeAxis, s as sides } from "./floating-ui__utils.mjs";
2
+ function computeCoordsFromPlacement(_ref, placement, rtl) {
3
+ let {
4
+ reference,
5
+ floating
6
+ } = _ref;
7
+ const sideAxis = getSideAxis(placement);
8
+ const alignmentAxis = getAlignmentAxis(placement);
9
+ const alignLength = getAxisLength(alignmentAxis);
10
+ const side = getSide(placement);
11
+ const isVertical = sideAxis === "y";
12
+ const commonX = reference.x + reference.width / 2 - floating.width / 2;
13
+ const commonY = reference.y + reference.height / 2 - floating.height / 2;
14
+ const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;
15
+ let coords;
16
+ switch (side) {
17
+ case "top":
18
+ coords = {
19
+ x: commonX,
20
+ y: reference.y - floating.height
21
+ };
22
+ break;
23
+ case "bottom":
24
+ coords = {
25
+ x: commonX,
26
+ y: reference.y + reference.height
27
+ };
28
+ break;
29
+ case "right":
30
+ coords = {
31
+ x: reference.x + reference.width,
32
+ y: commonY
33
+ };
34
+ break;
35
+ case "left":
36
+ coords = {
37
+ x: reference.x - floating.width,
38
+ y: commonY
39
+ };
40
+ break;
41
+ default:
42
+ coords = {
43
+ x: reference.x,
44
+ y: reference.y
45
+ };
46
+ }
47
+ switch (getAlignment(placement)) {
48
+ case "start":
49
+ coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);
50
+ break;
51
+ case "end":
52
+ coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);
53
+ break;
54
+ }
55
+ return coords;
56
+ }
57
+ async function detectOverflow(state, options) {
58
+ var _await$platform$isEle;
59
+ if (options === void 0) {
60
+ options = {};
61
+ }
62
+ const {
63
+ x,
64
+ y,
65
+ platform,
66
+ rects,
67
+ elements,
68
+ strategy
69
+ } = state;
70
+ const {
71
+ boundary = "clippingAncestors",
72
+ rootBoundary = "viewport",
73
+ elementContext = "floating",
74
+ altBoundary = false,
75
+ padding = 0
76
+ } = evaluate(options, state);
77
+ const paddingObject = getPaddingObject(padding);
78
+ const altContext = elementContext === "floating" ? "reference" : "floating";
79
+ const element = elements[altBoundary ? altContext : elementContext];
80
+ const clippingClientRect = rectToClientRect(await platform.getClippingRect({
81
+ element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating)),
82
+ boundary,
83
+ rootBoundary,
84
+ strategy
85
+ }));
86
+ const rect = elementContext === "floating" ? {
87
+ x,
88
+ y,
89
+ width: rects.floating.width,
90
+ height: rects.floating.height
91
+ } : rects.reference;
92
+ const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));
93
+ const offsetScale = await (platform.isElement == null ? void 0 : platform.isElement(offsetParent)) ? await (platform.getScale == null ? void 0 : platform.getScale(offsetParent)) || {
94
+ x: 1,
95
+ y: 1
96
+ } : {
97
+ x: 1,
98
+ y: 1
99
+ };
100
+ const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({
101
+ elements,
102
+ rect,
103
+ offsetParent,
104
+ strategy
105
+ }) : rect);
106
+ return {
107
+ top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,
108
+ bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,
109
+ left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,
110
+ right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x
111
+ };
112
+ }
113
+ const computePosition = async (reference, floating, config) => {
114
+ const {
115
+ placement = "bottom",
116
+ strategy = "absolute",
117
+ middleware = [],
118
+ platform
119
+ } = config;
120
+ const validMiddleware = middleware.filter(Boolean);
121
+ const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));
122
+ let rects = await platform.getElementRects({
123
+ reference,
124
+ floating,
125
+ strategy
126
+ });
127
+ let {
128
+ x,
129
+ y
130
+ } = computeCoordsFromPlacement(rects, placement, rtl);
131
+ let statefulPlacement = placement;
132
+ let middlewareData = {};
133
+ let resetCount = 0;
134
+ for (let i = 0; i < validMiddleware.length; i++) {
135
+ var _platform$detectOverf;
136
+ const {
137
+ name,
138
+ fn
139
+ } = validMiddleware[i];
140
+ const {
141
+ x: nextX,
142
+ y: nextY,
143
+ data,
144
+ reset
145
+ } = await fn({
146
+ x,
147
+ y,
148
+ initialPlacement: placement,
149
+ placement: statefulPlacement,
150
+ strategy,
151
+ middlewareData,
152
+ rects,
153
+ platform: {
154
+ ...platform,
155
+ detectOverflow: (_platform$detectOverf = platform.detectOverflow) != null ? _platform$detectOverf : detectOverflow
156
+ },
157
+ elements: {
158
+ reference,
159
+ floating
160
+ }
161
+ });
162
+ x = nextX != null ? nextX : x;
163
+ y = nextY != null ? nextY : y;
164
+ middlewareData = {
165
+ ...middlewareData,
166
+ [name]: {
167
+ ...middlewareData[name],
168
+ ...data
169
+ }
170
+ };
171
+ if (reset && resetCount <= 50) {
172
+ resetCount++;
173
+ if (typeof reset === "object") {
174
+ if (reset.placement) {
175
+ statefulPlacement = reset.placement;
176
+ }
177
+ if (reset.rects) {
178
+ rects = reset.rects === true ? await platform.getElementRects({
179
+ reference,
180
+ floating,
181
+ strategy
182
+ }) : reset.rects;
183
+ }
184
+ ({
185
+ x,
186
+ y
187
+ } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));
188
+ }
189
+ i = -1;
190
+ }
191
+ }
192
+ return {
193
+ x,
194
+ y,
195
+ placement: statefulPlacement,
196
+ strategy,
197
+ middlewareData
198
+ };
199
+ };
200
+ const arrow = (options) => ({
201
+ name: "arrow",
202
+ options,
203
+ async fn(state) {
204
+ const {
205
+ x,
206
+ y,
207
+ placement,
208
+ rects,
209
+ platform,
210
+ elements,
211
+ middlewareData
212
+ } = state;
213
+ const {
214
+ element,
215
+ padding = 0
216
+ } = evaluate(options, state) || {};
217
+ if (element == null) {
218
+ return {};
219
+ }
220
+ const paddingObject = getPaddingObject(padding);
221
+ const coords = {
222
+ x,
223
+ y
224
+ };
225
+ const axis = getAlignmentAxis(placement);
226
+ const length = getAxisLength(axis);
227
+ const arrowDimensions = await platform.getDimensions(element);
228
+ const isYAxis = axis === "y";
229
+ const minProp = isYAxis ? "top" : "left";
230
+ const maxProp = isYAxis ? "bottom" : "right";
231
+ const clientProp = isYAxis ? "clientHeight" : "clientWidth";
232
+ const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];
233
+ const startDiff = coords[axis] - rects.reference[axis];
234
+ const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));
235
+ let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;
236
+ if (!clientSize || !await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent))) {
237
+ clientSize = elements.floating[clientProp] || rects.floating[length];
238
+ }
239
+ const centerToReference = endDiff / 2 - startDiff / 2;
240
+ const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;
241
+ const minPadding = min(paddingObject[minProp], largestPossiblePadding);
242
+ const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);
243
+ const min$1 = minPadding;
244
+ const max2 = clientSize - arrowDimensions[length] - maxPadding;
245
+ const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;
246
+ const offset2 = clamp(min$1, center, max2);
247
+ const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset2 && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;
248
+ const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max2 : 0;
249
+ return {
250
+ [axis]: coords[axis] + alignmentOffset,
251
+ data: {
252
+ [axis]: offset2,
253
+ centerOffset: center - offset2 - alignmentOffset,
254
+ ...shouldAddOffset && {
255
+ alignmentOffset
256
+ }
257
+ },
258
+ reset: shouldAddOffset
259
+ };
260
+ }
261
+ });
262
+ const flip = function(options) {
263
+ if (options === void 0) {
264
+ options = {};
265
+ }
266
+ return {
267
+ name: "flip",
268
+ options,
269
+ async fn(state) {
270
+ var _middlewareData$arrow, _middlewareData$flip;
271
+ const {
272
+ placement,
273
+ middlewareData,
274
+ rects,
275
+ initialPlacement,
276
+ platform,
277
+ elements
278
+ } = state;
279
+ const {
280
+ mainAxis: checkMainAxis = true,
281
+ crossAxis: checkCrossAxis = true,
282
+ fallbackPlacements: specifiedFallbackPlacements,
283
+ fallbackStrategy = "bestFit",
284
+ fallbackAxisSideDirection = "none",
285
+ flipAlignment = true,
286
+ ...detectOverflowOptions
287
+ } = evaluate(options, state);
288
+ if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
289
+ return {};
290
+ }
291
+ const side = getSide(placement);
292
+ const initialSideAxis = getSideAxis(initialPlacement);
293
+ const isBasePlacement = getSide(initialPlacement) === initialPlacement;
294
+ const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));
295
+ const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));
296
+ const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== "none";
297
+ if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {
298
+ fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));
299
+ }
300
+ const placements = [initialPlacement, ...fallbackPlacements];
301
+ const overflow = await platform.detectOverflow(state, detectOverflowOptions);
302
+ const overflows = [];
303
+ let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];
304
+ if (checkMainAxis) {
305
+ overflows.push(overflow[side]);
306
+ }
307
+ if (checkCrossAxis) {
308
+ const sides2 = getAlignmentSides(placement, rects, rtl);
309
+ overflows.push(overflow[sides2[0]], overflow[sides2[1]]);
310
+ }
311
+ overflowsData = [...overflowsData, {
312
+ placement,
313
+ overflows
314
+ }];
315
+ if (!overflows.every((side2) => side2 <= 0)) {
316
+ var _middlewareData$flip2, _overflowsData$filter;
317
+ const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
318
+ const nextPlacement = placements[nextIndex];
319
+ if (nextPlacement) {
320
+ const ignoreCrossAxisOverflow = checkCrossAxis === "alignment" ? initialSideAxis !== getSideAxis(nextPlacement) : false;
321
+ if (!ignoreCrossAxisOverflow || // We leave the current main axis only if every placement on that axis
322
+ // overflows the main axis.
323
+ overflowsData.every((d) => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {
324
+ return {
325
+ data: {
326
+ index: nextIndex,
327
+ overflows: overflowsData
328
+ },
329
+ reset: {
330
+ placement: nextPlacement
331
+ }
332
+ };
333
+ }
334
+ }
335
+ let resetPlacement = (_overflowsData$filter = overflowsData.filter((d) => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;
336
+ if (!resetPlacement) {
337
+ switch (fallbackStrategy) {
338
+ case "bestFit": {
339
+ var _overflowsData$filter2;
340
+ const placement2 = (_overflowsData$filter2 = overflowsData.filter((d) => {
341
+ if (hasFallbackAxisSideDirection) {
342
+ const currentSideAxis = getSideAxis(d.placement);
343
+ return currentSideAxis === initialSideAxis || // Create a bias to the `y` side axis due to horizontal
344
+ // reading directions favoring greater width.
345
+ currentSideAxis === "y";
346
+ }
347
+ return true;
348
+ }).map((d) => [d.placement, d.overflows.filter((overflow2) => overflow2 > 0).reduce((acc, overflow2) => acc + overflow2, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];
349
+ if (placement2) {
350
+ resetPlacement = placement2;
351
+ }
352
+ break;
353
+ }
354
+ case "initialPlacement":
355
+ resetPlacement = initialPlacement;
356
+ break;
357
+ }
358
+ }
359
+ if (placement !== resetPlacement) {
360
+ return {
361
+ reset: {
362
+ placement: resetPlacement
363
+ }
364
+ };
365
+ }
366
+ }
367
+ return {};
368
+ }
369
+ };
370
+ };
371
+ function getSideOffsets(overflow, rect) {
372
+ return {
373
+ top: overflow.top - rect.height,
374
+ right: overflow.right - rect.width,
375
+ bottom: overflow.bottom - rect.height,
376
+ left: overflow.left - rect.width
377
+ };
378
+ }
379
+ function isAnySideFullyClipped(overflow) {
380
+ return sides.some((side) => overflow[side] >= 0);
381
+ }
382
+ const hide = function(options) {
383
+ if (options === void 0) {
384
+ options = {};
385
+ }
386
+ return {
387
+ name: "hide",
388
+ options,
389
+ async fn(state) {
390
+ const {
391
+ rects,
392
+ platform
393
+ } = state;
394
+ const {
395
+ strategy = "referenceHidden",
396
+ ...detectOverflowOptions
397
+ } = evaluate(options, state);
398
+ switch (strategy) {
399
+ case "referenceHidden": {
400
+ const overflow = await platform.detectOverflow(state, {
401
+ ...detectOverflowOptions,
402
+ elementContext: "reference"
403
+ });
404
+ const offsets = getSideOffsets(overflow, rects.reference);
405
+ return {
406
+ data: {
407
+ referenceHiddenOffsets: offsets,
408
+ referenceHidden: isAnySideFullyClipped(offsets)
409
+ }
410
+ };
411
+ }
412
+ case "escaped": {
413
+ const overflow = await platform.detectOverflow(state, {
414
+ ...detectOverflowOptions,
415
+ altBoundary: true
416
+ });
417
+ const offsets = getSideOffsets(overflow, rects.floating);
418
+ return {
419
+ data: {
420
+ escapedOffsets: offsets,
421
+ escaped: isAnySideFullyClipped(offsets)
422
+ }
423
+ };
424
+ }
425
+ default: {
426
+ return {};
427
+ }
428
+ }
429
+ }
430
+ };
431
+ };
432
+ const originSides = /* @__PURE__ */ new Set(["left", "top"]);
433
+ async function convertValueToCoords(state, options) {
434
+ const {
435
+ placement,
436
+ platform,
437
+ elements
438
+ } = state;
439
+ const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));
440
+ const side = getSide(placement);
441
+ const alignment = getAlignment(placement);
442
+ const isVertical = getSideAxis(placement) === "y";
443
+ const mainAxisMulti = originSides.has(side) ? -1 : 1;
444
+ const crossAxisMulti = rtl && isVertical ? -1 : 1;
445
+ const rawValue = evaluate(options, state);
446
+ let {
447
+ mainAxis,
448
+ crossAxis,
449
+ alignmentAxis
450
+ } = typeof rawValue === "number" ? {
451
+ mainAxis: rawValue,
452
+ crossAxis: 0,
453
+ alignmentAxis: null
454
+ } : {
455
+ mainAxis: rawValue.mainAxis || 0,
456
+ crossAxis: rawValue.crossAxis || 0,
457
+ alignmentAxis: rawValue.alignmentAxis
458
+ };
459
+ if (alignment && typeof alignmentAxis === "number") {
460
+ crossAxis = alignment === "end" ? alignmentAxis * -1 : alignmentAxis;
461
+ }
462
+ return isVertical ? {
463
+ x: crossAxis * crossAxisMulti,
464
+ y: mainAxis * mainAxisMulti
465
+ } : {
466
+ x: mainAxis * mainAxisMulti,
467
+ y: crossAxis * crossAxisMulti
468
+ };
469
+ }
470
+ const offset = function(options) {
471
+ if (options === void 0) {
472
+ options = 0;
473
+ }
474
+ return {
475
+ name: "offset",
476
+ options,
477
+ async fn(state) {
478
+ var _middlewareData$offse, _middlewareData$arrow;
479
+ const {
480
+ x,
481
+ y,
482
+ placement,
483
+ middlewareData
484
+ } = state;
485
+ const diffCoords = await convertValueToCoords(state, options);
486
+ if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
487
+ return {};
488
+ }
489
+ return {
490
+ x: x + diffCoords.x,
491
+ y: y + diffCoords.y,
492
+ data: {
493
+ ...diffCoords,
494
+ placement
495
+ }
496
+ };
497
+ }
498
+ };
499
+ };
500
+ const shift = function(options) {
501
+ if (options === void 0) {
502
+ options = {};
503
+ }
504
+ return {
505
+ name: "shift",
506
+ options,
507
+ async fn(state) {
508
+ const {
509
+ x,
510
+ y,
511
+ placement,
512
+ platform
513
+ } = state;
514
+ const {
515
+ mainAxis: checkMainAxis = true,
516
+ crossAxis: checkCrossAxis = false,
517
+ limiter = {
518
+ fn: (_ref) => {
519
+ let {
520
+ x: x2,
521
+ y: y2
522
+ } = _ref;
523
+ return {
524
+ x: x2,
525
+ y: y2
526
+ };
527
+ }
528
+ },
529
+ ...detectOverflowOptions
530
+ } = evaluate(options, state);
531
+ const coords = {
532
+ x,
533
+ y
534
+ };
535
+ const overflow = await platform.detectOverflow(state, detectOverflowOptions);
536
+ const crossAxis = getSideAxis(getSide(placement));
537
+ const mainAxis = getOppositeAxis(crossAxis);
538
+ let mainAxisCoord = coords[mainAxis];
539
+ let crossAxisCoord = coords[crossAxis];
540
+ if (checkMainAxis) {
541
+ const minSide = mainAxis === "y" ? "top" : "left";
542
+ const maxSide = mainAxis === "y" ? "bottom" : "right";
543
+ const min2 = mainAxisCoord + overflow[minSide];
544
+ const max2 = mainAxisCoord - overflow[maxSide];
545
+ mainAxisCoord = clamp(min2, mainAxisCoord, max2);
546
+ }
547
+ if (checkCrossAxis) {
548
+ const minSide = crossAxis === "y" ? "top" : "left";
549
+ const maxSide = crossAxis === "y" ? "bottom" : "right";
550
+ const min2 = crossAxisCoord + overflow[minSide];
551
+ const max2 = crossAxisCoord - overflow[maxSide];
552
+ crossAxisCoord = clamp(min2, crossAxisCoord, max2);
553
+ }
554
+ const limitedCoords = limiter.fn({
555
+ ...state,
556
+ [mainAxis]: mainAxisCoord,
557
+ [crossAxis]: crossAxisCoord
558
+ });
559
+ return {
560
+ ...limitedCoords,
561
+ data: {
562
+ x: limitedCoords.x - x,
563
+ y: limitedCoords.y - y,
564
+ enabled: {
565
+ [mainAxis]: checkMainAxis,
566
+ [crossAxis]: checkCrossAxis
567
+ }
568
+ }
569
+ };
570
+ }
571
+ };
572
+ };
573
+ const limitShift = function(options) {
574
+ if (options === void 0) {
575
+ options = {};
576
+ }
577
+ return {
578
+ options,
579
+ fn(state) {
580
+ const {
581
+ x,
582
+ y,
583
+ placement,
584
+ rects,
585
+ middlewareData
586
+ } = state;
587
+ const {
588
+ offset: offset2 = 0,
589
+ mainAxis: checkMainAxis = true,
590
+ crossAxis: checkCrossAxis = true
591
+ } = evaluate(options, state);
592
+ const coords = {
593
+ x,
594
+ y
595
+ };
596
+ const crossAxis = getSideAxis(placement);
597
+ const mainAxis = getOppositeAxis(crossAxis);
598
+ let mainAxisCoord = coords[mainAxis];
599
+ let crossAxisCoord = coords[crossAxis];
600
+ const rawOffset = evaluate(offset2, state);
601
+ const computedOffset = typeof rawOffset === "number" ? {
602
+ mainAxis: rawOffset,
603
+ crossAxis: 0
604
+ } : {
605
+ mainAxis: 0,
606
+ crossAxis: 0,
607
+ ...rawOffset
608
+ };
609
+ if (checkMainAxis) {
610
+ const len = mainAxis === "y" ? "height" : "width";
611
+ const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;
612
+ const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;
613
+ if (mainAxisCoord < limitMin) {
614
+ mainAxisCoord = limitMin;
615
+ } else if (mainAxisCoord > limitMax) {
616
+ mainAxisCoord = limitMax;
617
+ }
618
+ }
619
+ if (checkCrossAxis) {
620
+ var _middlewareData$offse, _middlewareData$offse2;
621
+ const len = mainAxis === "y" ? "width" : "height";
622
+ const isOriginSide = originSides.has(getSide(placement));
623
+ const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);
624
+ const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);
625
+ if (crossAxisCoord < limitMin) {
626
+ crossAxisCoord = limitMin;
627
+ } else if (crossAxisCoord > limitMax) {
628
+ crossAxisCoord = limitMax;
629
+ }
630
+ }
631
+ return {
632
+ [mainAxis]: mainAxisCoord,
633
+ [crossAxis]: crossAxisCoord
634
+ };
635
+ }
636
+ };
637
+ };
638
+ const size = function(options) {
639
+ if (options === void 0) {
640
+ options = {};
641
+ }
642
+ return {
643
+ name: "size",
644
+ options,
645
+ async fn(state) {
646
+ var _state$middlewareData, _state$middlewareData2;
647
+ const {
648
+ placement,
649
+ rects,
650
+ platform,
651
+ elements
652
+ } = state;
653
+ const {
654
+ apply = () => {
655
+ },
656
+ ...detectOverflowOptions
657
+ } = evaluate(options, state);
658
+ const overflow = await platform.detectOverflow(state, detectOverflowOptions);
659
+ const side = getSide(placement);
660
+ const alignment = getAlignment(placement);
661
+ const isYAxis = getSideAxis(placement) === "y";
662
+ const {
663
+ width,
664
+ height
665
+ } = rects.floating;
666
+ let heightSide;
667
+ let widthSide;
668
+ if (side === "top" || side === "bottom") {
669
+ heightSide = side;
670
+ widthSide = alignment === (await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)) ? "start" : "end") ? "left" : "right";
671
+ } else {
672
+ widthSide = side;
673
+ heightSide = alignment === "end" ? "top" : "bottom";
674
+ }
675
+ const maximumClippingHeight = height - overflow.top - overflow.bottom;
676
+ const maximumClippingWidth = width - overflow.left - overflow.right;
677
+ const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);
678
+ const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);
679
+ const noShift = !state.middlewareData.shift;
680
+ let availableHeight = overflowAvailableHeight;
681
+ let availableWidth = overflowAvailableWidth;
682
+ if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {
683
+ availableWidth = maximumClippingWidth;
684
+ }
685
+ if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {
686
+ availableHeight = maximumClippingHeight;
687
+ }
688
+ if (noShift && !alignment) {
689
+ const xMin = max(overflow.left, 0);
690
+ const xMax = max(overflow.right, 0);
691
+ const yMin = max(overflow.top, 0);
692
+ const yMax = max(overflow.bottom, 0);
693
+ if (isYAxis) {
694
+ availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));
695
+ } else {
696
+ availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));
697
+ }
698
+ }
699
+ await apply({
700
+ ...state,
701
+ availableWidth,
702
+ availableHeight
703
+ });
704
+ const nextDimensions = await platform.getDimensions(elements.floating);
705
+ if (width !== nextDimensions.width || height !== nextDimensions.height) {
706
+ return {
707
+ reset: {
708
+ rects: true
709
+ }
710
+ };
711
+ }
712
+ return {};
713
+ }
714
+ };
715
+ };
716
+ export {
717
+ size as a,
718
+ arrow as b,
719
+ computePosition as c,
720
+ flip as f,
721
+ hide as h,
722
+ limitShift as l,
723
+ offset as o,
724
+ shift as s
725
+ };