@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,467 @@
1
+ import { V as VFileMessage } from "./vfile-message.mjs";
2
+ import process from "node:process";
3
+ import path from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
+ function isUrl(fileUrlOrPath) {
6
+ return Boolean(
7
+ fileUrlOrPath !== null && typeof fileUrlOrPath === "object" && "href" in fileUrlOrPath && fileUrlOrPath.href && "protocol" in fileUrlOrPath && fileUrlOrPath.protocol && // @ts-expect-error: indexing is fine.
8
+ fileUrlOrPath.auth === void 0
9
+ );
10
+ }
11
+ const order = (
12
+ /** @type {const} */
13
+ [
14
+ "history",
15
+ "path",
16
+ "basename",
17
+ "stem",
18
+ "extname",
19
+ "dirname"
20
+ ]
21
+ );
22
+ class VFile {
23
+ /**
24
+ * Create a new virtual file.
25
+ *
26
+ * `options` is treated as:
27
+ *
28
+ * * `string` or `Uint8Array` — `{value: options}`
29
+ * * `URL` — `{path: options}`
30
+ * * `VFile` — shallow copies its data over to the new file
31
+ * * `object` — all fields are shallow copied over to the new file
32
+ *
33
+ * Path related fields are set in the following order (least specific to
34
+ * most specific): `history`, `path`, `basename`, `stem`, `extname`,
35
+ * `dirname`.
36
+ *
37
+ * You cannot set `dirname` or `extname` without setting either `history`,
38
+ * `path`, `basename`, or `stem` too.
39
+ *
40
+ * @param {Compatible | null | undefined} [value]
41
+ * File value.
42
+ * @returns
43
+ * New instance.
44
+ */
45
+ constructor(value) {
46
+ let options;
47
+ if (!value) {
48
+ options = {};
49
+ } else if (isUrl(value)) {
50
+ options = { path: value };
51
+ } else if (typeof value === "string" || isUint8Array(value)) {
52
+ options = { value };
53
+ } else {
54
+ options = value;
55
+ }
56
+ this.cwd = "cwd" in options ? "" : process.cwd();
57
+ this.data = {};
58
+ this.history = [];
59
+ this.messages = [];
60
+ this.value;
61
+ this.map;
62
+ this.result;
63
+ this.stored;
64
+ let index = -1;
65
+ while (++index < order.length) {
66
+ const field2 = order[index];
67
+ if (field2 in options && options[field2] !== void 0 && options[field2] !== null) {
68
+ this[field2] = field2 === "history" ? [...options[field2]] : options[field2];
69
+ }
70
+ }
71
+ let field;
72
+ for (field in options) {
73
+ if (!order.includes(field)) {
74
+ this[field] = options[field];
75
+ }
76
+ }
77
+ }
78
+ /**
79
+ * Get the basename (including extname) (example: `'index.min.js'`).
80
+ *
81
+ * @returns {string | undefined}
82
+ * Basename.
83
+ */
84
+ get basename() {
85
+ return typeof this.path === "string" ? path.basename(this.path) : void 0;
86
+ }
87
+ /**
88
+ * Set basename (including extname) (`'index.min.js'`).
89
+ *
90
+ * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\'`
91
+ * on windows).
92
+ * Cannot be nullified (use `file.path = file.dirname` instead).
93
+ *
94
+ * @param {string} basename
95
+ * Basename.
96
+ * @returns {undefined}
97
+ * Nothing.
98
+ */
99
+ set basename(basename) {
100
+ assertNonEmpty(basename, "basename");
101
+ assertPart(basename, "basename");
102
+ this.path = path.join(this.dirname || "", basename);
103
+ }
104
+ /**
105
+ * Get the parent path (example: `'~'`).
106
+ *
107
+ * @returns {string | undefined}
108
+ * Dirname.
109
+ */
110
+ get dirname() {
111
+ return typeof this.path === "string" ? path.dirname(this.path) : void 0;
112
+ }
113
+ /**
114
+ * Set the parent path (example: `'~'`).
115
+ *
116
+ * Cannot be set if there’s no `path` yet.
117
+ *
118
+ * @param {string | undefined} dirname
119
+ * Dirname.
120
+ * @returns {undefined}
121
+ * Nothing.
122
+ */
123
+ set dirname(dirname) {
124
+ assertPath(this.basename, "dirname");
125
+ this.path = path.join(dirname || "", this.basename);
126
+ }
127
+ /**
128
+ * Get the extname (including dot) (example: `'.js'`).
129
+ *
130
+ * @returns {string | undefined}
131
+ * Extname.
132
+ */
133
+ get extname() {
134
+ return typeof this.path === "string" ? path.extname(this.path) : void 0;
135
+ }
136
+ /**
137
+ * Set the extname (including dot) (example: `'.js'`).
138
+ *
139
+ * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\'`
140
+ * on windows).
141
+ * Cannot be set if there’s no `path` yet.
142
+ *
143
+ * @param {string | undefined} extname
144
+ * Extname.
145
+ * @returns {undefined}
146
+ * Nothing.
147
+ */
148
+ set extname(extname) {
149
+ assertPart(extname, "extname");
150
+ assertPath(this.dirname, "extname");
151
+ if (extname) {
152
+ if (extname.codePointAt(0) !== 46) {
153
+ throw new Error("`extname` must start with `.`");
154
+ }
155
+ if (extname.includes(".", 1)) {
156
+ throw new Error("`extname` cannot contain multiple dots");
157
+ }
158
+ }
159
+ this.path = path.join(this.dirname, this.stem + (extname || ""));
160
+ }
161
+ /**
162
+ * Get the full path (example: `'~/index.min.js'`).
163
+ *
164
+ * @returns {string}
165
+ * Path.
166
+ */
167
+ get path() {
168
+ return this.history[this.history.length - 1];
169
+ }
170
+ /**
171
+ * Set the full path (example: `'~/index.min.js'`).
172
+ *
173
+ * Cannot be nullified.
174
+ * You can set a file URL (a `URL` object with a `file:` protocol) which will
175
+ * be turned into a path with `url.fileURLToPath`.
176
+ *
177
+ * @param {URL | string} path
178
+ * Path.
179
+ * @returns {undefined}
180
+ * Nothing.
181
+ */
182
+ set path(path2) {
183
+ if (isUrl(path2)) {
184
+ path2 = fileURLToPath(path2);
185
+ }
186
+ assertNonEmpty(path2, "path");
187
+ if (this.path !== path2) {
188
+ this.history.push(path2);
189
+ }
190
+ }
191
+ /**
192
+ * Get the stem (basename w/o extname) (example: `'index.min'`).
193
+ *
194
+ * @returns {string | undefined}
195
+ * Stem.
196
+ */
197
+ get stem() {
198
+ return typeof this.path === "string" ? path.basename(this.path, this.extname) : void 0;
199
+ }
200
+ /**
201
+ * Set the stem (basename w/o extname) (example: `'index.min'`).
202
+ *
203
+ * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\'`
204
+ * on windows).
205
+ * Cannot be nullified (use `file.path = file.dirname` instead).
206
+ *
207
+ * @param {string} stem
208
+ * Stem.
209
+ * @returns {undefined}
210
+ * Nothing.
211
+ */
212
+ set stem(stem) {
213
+ assertNonEmpty(stem, "stem");
214
+ assertPart(stem, "stem");
215
+ this.path = path.join(this.dirname || "", stem + (this.extname || ""));
216
+ }
217
+ // Normal prototypal methods.
218
+ /**
219
+ * Create a fatal message for `reason` associated with the file.
220
+ *
221
+ * The `fatal` field of the message is set to `true` (error; file not usable)
222
+ * and the `file` field is set to the current file path.
223
+ * The message is added to the `messages` field on `file`.
224
+ *
225
+ * > 🪦 **Note**: also has obsolete signatures.
226
+ *
227
+ * @overload
228
+ * @param {string} reason
229
+ * @param {MessageOptions | null | undefined} [options]
230
+ * @returns {never}
231
+ *
232
+ * @overload
233
+ * @param {string} reason
234
+ * @param {Node | NodeLike | null | undefined} parent
235
+ * @param {string | null | undefined} [origin]
236
+ * @returns {never}
237
+ *
238
+ * @overload
239
+ * @param {string} reason
240
+ * @param {Point | Position | null | undefined} place
241
+ * @param {string | null | undefined} [origin]
242
+ * @returns {never}
243
+ *
244
+ * @overload
245
+ * @param {string} reason
246
+ * @param {string | null | undefined} [origin]
247
+ * @returns {never}
248
+ *
249
+ * @overload
250
+ * @param {Error | VFileMessage} cause
251
+ * @param {Node | NodeLike | null | undefined} parent
252
+ * @param {string | null | undefined} [origin]
253
+ * @returns {never}
254
+ *
255
+ * @overload
256
+ * @param {Error | VFileMessage} cause
257
+ * @param {Point | Position | null | undefined} place
258
+ * @param {string | null | undefined} [origin]
259
+ * @returns {never}
260
+ *
261
+ * @overload
262
+ * @param {Error | VFileMessage} cause
263
+ * @param {string | null | undefined} [origin]
264
+ * @returns {never}
265
+ *
266
+ * @param {Error | VFileMessage | string} causeOrReason
267
+ * Reason for message, should use markdown.
268
+ * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]
269
+ * Configuration (optional).
270
+ * @param {string | null | undefined} [origin]
271
+ * Place in code where the message originates (example:
272
+ * `'my-package:my-rule'` or `'my-rule'`).
273
+ * @returns {never}
274
+ * Never.
275
+ * @throws {VFileMessage}
276
+ * Message.
277
+ */
278
+ fail(causeOrReason, optionsOrParentOrPlace, origin) {
279
+ const message = this.message(causeOrReason, optionsOrParentOrPlace, origin);
280
+ message.fatal = true;
281
+ throw message;
282
+ }
283
+ /**
284
+ * Create an info message for `reason` associated with the file.
285
+ *
286
+ * The `fatal` field of the message is set to `undefined` (info; change
287
+ * likely not needed) and the `file` field is set to the current file path.
288
+ * The message is added to the `messages` field on `file`.
289
+ *
290
+ * > 🪦 **Note**: also has obsolete signatures.
291
+ *
292
+ * @overload
293
+ * @param {string} reason
294
+ * @param {MessageOptions | null | undefined} [options]
295
+ * @returns {VFileMessage}
296
+ *
297
+ * @overload
298
+ * @param {string} reason
299
+ * @param {Node | NodeLike | null | undefined} parent
300
+ * @param {string | null | undefined} [origin]
301
+ * @returns {VFileMessage}
302
+ *
303
+ * @overload
304
+ * @param {string} reason
305
+ * @param {Point | Position | null | undefined} place
306
+ * @param {string | null | undefined} [origin]
307
+ * @returns {VFileMessage}
308
+ *
309
+ * @overload
310
+ * @param {string} reason
311
+ * @param {string | null | undefined} [origin]
312
+ * @returns {VFileMessage}
313
+ *
314
+ * @overload
315
+ * @param {Error | VFileMessage} cause
316
+ * @param {Node | NodeLike | null | undefined} parent
317
+ * @param {string | null | undefined} [origin]
318
+ * @returns {VFileMessage}
319
+ *
320
+ * @overload
321
+ * @param {Error | VFileMessage} cause
322
+ * @param {Point | Position | null | undefined} place
323
+ * @param {string | null | undefined} [origin]
324
+ * @returns {VFileMessage}
325
+ *
326
+ * @overload
327
+ * @param {Error | VFileMessage} cause
328
+ * @param {string | null | undefined} [origin]
329
+ * @returns {VFileMessage}
330
+ *
331
+ * @param {Error | VFileMessage | string} causeOrReason
332
+ * Reason for message, should use markdown.
333
+ * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]
334
+ * Configuration (optional).
335
+ * @param {string | null | undefined} [origin]
336
+ * Place in code where the message originates (example:
337
+ * `'my-package:my-rule'` or `'my-rule'`).
338
+ * @returns {VFileMessage}
339
+ * Message.
340
+ */
341
+ info(causeOrReason, optionsOrParentOrPlace, origin) {
342
+ const message = this.message(causeOrReason, optionsOrParentOrPlace, origin);
343
+ message.fatal = void 0;
344
+ return message;
345
+ }
346
+ /**
347
+ * Create a message for `reason` associated with the file.
348
+ *
349
+ * The `fatal` field of the message is set to `false` (warning; change may be
350
+ * needed) and the `file` field is set to the current file path.
351
+ * The message is added to the `messages` field on `file`.
352
+ *
353
+ * > 🪦 **Note**: also has obsolete signatures.
354
+ *
355
+ * @overload
356
+ * @param {string} reason
357
+ * @param {MessageOptions | null | undefined} [options]
358
+ * @returns {VFileMessage}
359
+ *
360
+ * @overload
361
+ * @param {string} reason
362
+ * @param {Node | NodeLike | null | undefined} parent
363
+ * @param {string | null | undefined} [origin]
364
+ * @returns {VFileMessage}
365
+ *
366
+ * @overload
367
+ * @param {string} reason
368
+ * @param {Point | Position | null | undefined} place
369
+ * @param {string | null | undefined} [origin]
370
+ * @returns {VFileMessage}
371
+ *
372
+ * @overload
373
+ * @param {string} reason
374
+ * @param {string | null | undefined} [origin]
375
+ * @returns {VFileMessage}
376
+ *
377
+ * @overload
378
+ * @param {Error | VFileMessage} cause
379
+ * @param {Node | NodeLike | null | undefined} parent
380
+ * @param {string | null | undefined} [origin]
381
+ * @returns {VFileMessage}
382
+ *
383
+ * @overload
384
+ * @param {Error | VFileMessage} cause
385
+ * @param {Point | Position | null | undefined} place
386
+ * @param {string | null | undefined} [origin]
387
+ * @returns {VFileMessage}
388
+ *
389
+ * @overload
390
+ * @param {Error | VFileMessage} cause
391
+ * @param {string | null | undefined} [origin]
392
+ * @returns {VFileMessage}
393
+ *
394
+ * @param {Error | VFileMessage | string} causeOrReason
395
+ * Reason for message, should use markdown.
396
+ * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]
397
+ * Configuration (optional).
398
+ * @param {string | null | undefined} [origin]
399
+ * Place in code where the message originates (example:
400
+ * `'my-package:my-rule'` or `'my-rule'`).
401
+ * @returns {VFileMessage}
402
+ * Message.
403
+ */
404
+ message(causeOrReason, optionsOrParentOrPlace, origin) {
405
+ const message = new VFileMessage(
406
+ // @ts-expect-error: the overloads are fine.
407
+ causeOrReason,
408
+ optionsOrParentOrPlace,
409
+ origin
410
+ );
411
+ if (this.path) {
412
+ message.name = this.path + ":" + message.name;
413
+ message.file = this.path;
414
+ }
415
+ message.fatal = false;
416
+ this.messages.push(message);
417
+ return message;
418
+ }
419
+ /**
420
+ * Serialize the file.
421
+ *
422
+ * > **Note**: which encodings are supported depends on the engine.
423
+ * > For info on Node.js, see:
424
+ * > <https://nodejs.org/api/util.html#whatwg-supported-encodings>.
425
+ *
426
+ * @param {string | null | undefined} [encoding='utf8']
427
+ * Character encoding to understand `value` as when it’s a `Uint8Array`
428
+ * (default: `'utf-8'`).
429
+ * @returns {string}
430
+ * Serialized file.
431
+ */
432
+ toString(encoding) {
433
+ if (this.value === void 0) {
434
+ return "";
435
+ }
436
+ if (typeof this.value === "string") {
437
+ return this.value;
438
+ }
439
+ const decoder = new TextDecoder(encoding || void 0);
440
+ return decoder.decode(this.value);
441
+ }
442
+ }
443
+ function assertPart(part, name) {
444
+ if (part && part.includes(path.sep)) {
445
+ throw new Error(
446
+ "`" + name + "` cannot be a path: did not expect `" + path.sep + "`"
447
+ );
448
+ }
449
+ }
450
+ function assertNonEmpty(part, name) {
451
+ if (!part) {
452
+ throw new Error("`" + name + "` cannot be empty");
453
+ }
454
+ }
455
+ function assertPath(path2, name) {
456
+ if (!path2) {
457
+ throw new Error("Setting `" + name + "` requires `path` to be set too");
458
+ }
459
+ }
460
+ function isUint8Array(value) {
461
+ return Boolean(
462
+ value && typeof value === "object" && "byteLength" in value && "byteOffset" in value
463
+ );
464
+ }
465
+ export {
466
+ VFile as V
467
+ };
@@ -0,0 +1,53 @@
1
+ import process from "node:process";
2
+ const IS_LINUX = process.platform === "linux";
3
+ const IS_WINDOWS = process.platform === "win32";
4
+ const Signals = ["SIGHUP", "SIGINT", "SIGTERM"];
5
+ if (!IS_WINDOWS) {
6
+ Signals.push("SIGALRM", "SIGABRT", "SIGVTALRM", "SIGXCPU", "SIGXFSZ", "SIGUSR2", "SIGTRAP", "SIGSYS", "SIGQUIT", "SIGIOT");
7
+ }
8
+ if (IS_LINUX) {
9
+ Signals.push("SIGIO", "SIGPOLL", "SIGPWR", "SIGSTKFLT");
10
+ }
11
+ class Interceptor {
12
+ /* CONSTRUCTOR */
13
+ constructor() {
14
+ this.callbacks = /* @__PURE__ */ new Set();
15
+ this.exited = false;
16
+ this.exit = (signal) => {
17
+ if (this.exited)
18
+ return;
19
+ this.exited = true;
20
+ for (const callback of this.callbacks) {
21
+ callback();
22
+ }
23
+ if (signal) {
24
+ if (IS_WINDOWS && (signal !== "SIGINT" && signal !== "SIGTERM" && signal !== "SIGKILL")) {
25
+ process.kill(process.pid, "SIGTERM");
26
+ } else {
27
+ process.kill(process.pid, signal);
28
+ }
29
+ }
30
+ };
31
+ this.hook = () => {
32
+ process.once("exit", () => this.exit());
33
+ for (const signal of Signals) {
34
+ try {
35
+ process.once(signal, () => this.exit(signal));
36
+ } catch {
37
+ }
38
+ }
39
+ };
40
+ this.register = (callback) => {
41
+ this.callbacks.add(callback);
42
+ return () => {
43
+ this.callbacks.delete(callback);
44
+ };
45
+ };
46
+ this.hook();
47
+ }
48
+ }
49
+ const Interceptor$1 = new Interceptor();
50
+ const whenExit = Interceptor$1.register;
51
+ export {
52
+ whenExit as w
53
+ };