@tonyclaw/agent-inspector 3.0.45 → 3.0.47

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 (343) hide show
  1. package/.output/{nitro.json → backend/nitro.json} +3 -3
  2. package/.output/backend-public/assets/index-D4LX-sw-.js +11 -0
  3. package/.output/cli.js +8018 -5451
  4. package/.output/server/_libs/extend.mjs +4 -8
  5. package/.output/server/_libs/jszip.mjs +9 -35
  6. package/.output/server/_libs/react-dom.mjs +2 -3
  7. package/.output/server/_libs/react.mjs +1 -27
  8. package/.output/server/_libs/tanstack__react-router.mjs +1 -329
  9. package/.output/server/_libs/tanstack__router-core.mjs +42 -100
  10. package/.output/server/_libs/use-sync-external-store.mjs +1 -64
  11. package/.output/server/_libs/ws.mjs +1 -1
  12. package/.output/server/_ssr/index.mjs +4 -4
  13. package/.output/server/_ssr/{publicBasePathContext-5264L3rX.mjs → publicBasePathContext-IH2ilOfu.mjs} +52 -24
  14. package/.output/server/_ssr/{router-BJ_ltLim.mjs → router-BwZEsYfS.mjs} +19794 -19444
  15. package/.output/server/_ssr/{start-C6MjPjxp.mjs → start-COQu_AgD.mjs} +1 -1
  16. package/.output/server/_tanstack-start-manifest_v-DnbdNeun.mjs +4 -0
  17. package/.output/server/index.mjs +5 -145
  18. package/.output/{public/assets/CompareDrawer-B3_TLTJh.js → ui/assets/CompareDrawer-V-8lPASC.js} +1 -1
  19. package/.output/{public/assets/InspectorPet-Cpn6hv4P.js → ui/assets/InspectorPet-D4CVnfdf.js} +1 -1
  20. package/.output/ui/assets/ProxyViewerContainer-CO3ZVHLX.js +59 -0
  21. package/.output/{public/assets/ReplayDialog-B3EKVdJk.js → ui/assets/ReplayDialog-CpGyTLtt.js} +1 -1
  22. package/.output/{public/assets/RequestAnatomy-COOQjyUC.js → ui/assets/RequestAnatomy-BLuJL9dZ.js} +1 -1
  23. package/.output/ui/assets/ResponseView-BuSC-CH7.js +2 -0
  24. package/.output/ui/assets/StreamingChunkSequence-DeA-JJKa.js +1 -0
  25. package/.output/{public/assets/_sessionId-zbgYl7ZJ.js → ui/assets/_sessionId-8HuHFhjo.js} +1 -1
  26. package/.output/{public/assets/_sessionId-BJlM3nmt.js → ui/assets/_sessionId-Chp67th6.js} +1 -1
  27. package/.output/ui/assets/favicon-DYEkHSNl.svg +21 -0
  28. package/.output/ui/assets/index-BvXp42al.css +1 -0
  29. package/.output/{public/assets/index-xF_NY8Yb.js → ui/assets/index-DPmKK_5d.js} +5 -5
  30. package/.output/{public/assets/index-BIK4bPTv.js → ui/assets/index-atoQrlb8.js} +1 -1
  31. package/.output/ui/assets/index-nY3E1vxV.js +73 -0
  32. package/.output/{public/assets/index-D2Qw6Ri2.js → ui/assets/index-nl9-dpZn.js} +1 -1
  33. package/.output/ui/assets/json-viewer-B9kIzqeX.js +1 -0
  34. package/.output/{public/assets/jszip.min-B_rfAUCe.js → ui/assets/jszip.min-B7tfyE-I.js} +1 -1
  35. package/.output/ui/index.html +229 -0
  36. package/.output/ui/runtime-config.js +2 -0
  37. package/.output/workers/logFinalizer.worker.js +979 -414
  38. package/.output/workers/sessionWorkerEntry.js +979 -414
  39. package/README.md +182 -43
  40. package/docs/instance-control.openapi.yaml +59 -4
  41. package/package.json +40 -6
  42. package/scripts/generate-theme-scales.mjs +3 -3
  43. package/src/{router.tsx → backend/router.tsx} +3 -15
  44. package/src/backend/routes/$.ts +26 -0
  45. package/src/backend/routes/__root.ts +4 -0
  46. package/src/backend/routes/api/-instances.ts +7 -0
  47. package/src/{routes → backend/routes}/api/alerts.summary.ts +3 -3
  48. package/src/{routes → backend/routes}/api/alerts.ts +4 -4
  49. package/src/{routes → backend/routes}/api/config.paths.ts +1 -1
  50. package/src/{routes → backend/routes}/api/config.ts +11 -2
  51. package/src/{routes → backend/routes}/api/ecosystem.packages.$packageId.help.ts +1 -1
  52. package/src/{routes → backend/routes}/api/ecosystem.packages.$packageId.install.ts +1 -1
  53. package/src/{routes → backend/routes}/api/ecosystem.packages.$packageId.runner-presets.ts +1 -1
  54. package/src/{routes → backend/routes}/api/ecosystem.packages.$packageId.upgrade.ts +1 -1
  55. package/src/{routes → backend/routes}/api/ecosystem.packages.ts +5 -1
  56. package/src/{routes → backend/routes}/api/ecosystem.recipes.$recipeId.run.ts +1 -1
  57. package/src/{routes → backend/routes}/api/ecosystem.tasks.$taskId.ts +1 -1
  58. package/src/{routes → backend/routes}/api/ecosystem.tasks.ts +1 -1
  59. package/src/{routes → backend/routes}/api/groups.$groupId.evidence.ts +2 -2
  60. package/src/{routes → backend/routes}/api/groups.$groupId.sessions.ts +2 -2
  61. package/src/{routes → backend/routes}/api/groups.$groupId.ts +2 -2
  62. package/src/{routes → backend/routes}/api/groups.ts +2 -2
  63. package/src/{routes → backend/routes}/api/health.ts +3 -3
  64. package/src/{routes → backend/routes}/api/instances.$name.connection.ts +1 -1
  65. package/src/{routes → backend/routes}/api/instances.$name.restart.ts +2 -2
  66. package/src/{routes → backend/routes}/api/instances.$name.start.ts +2 -2
  67. package/src/{routes → backend/routes}/api/instances.$name.stop.ts +2 -2
  68. package/src/{routes → backend/routes}/api/instances.$name.ts +1 -1
  69. package/src/{routes → backend/routes}/api/instances.ts +1 -1
  70. package/src/{routes → backend/routes}/api/knowledge.candidates.$candidateId.promote.ts +2 -2
  71. package/src/{routes → backend/routes}/api/knowledge.candidates.$candidateId.ts +2 -2
  72. package/src/{routes → backend/routes}/api/knowledge.candidates.ts +1 -1
  73. package/src/{routes → backend/routes}/api/knowledge.project-context.ts +2 -2
  74. package/src/{routes → backend/routes}/api/knowledge.search.ts +2 -2
  75. package/src/{routes → backend/routes}/api/knowledge.sessions.$sessionId.candidates.ts +3 -3
  76. package/src/{routes → backend/routes}/api/logs.$id.body.ts +6 -6
  77. package/src/{routes → backend/routes}/api/logs.$id.chunks.ts +5 -4
  78. package/src/{routes → backend/routes}/api/logs.$id.replay.ts +12 -11
  79. package/src/{routes → backend/routes}/api/logs.$id.ts +4 -3
  80. package/src/{routes → backend/routes}/api/logs.import.ts +3 -3
  81. package/src/{routes → backend/routes}/api/logs.stream.ts +11 -7
  82. package/src/{routes → backend/routes}/api/logs.ts +17 -9
  83. package/src/{routes → backend/routes}/api/mcp.ts +1 -1
  84. package/src/{routes → backend/routes}/api/models.ts +1 -1
  85. package/src/{routes → backend/routes}/api/pi-agent.ts +2 -2
  86. package/src/{routes → backend/routes}/api/providers.$providerId.model-metadata.ts +5 -5
  87. package/src/{routes → backend/routes}/api/providers.$providerId.test.log.ts +7 -7
  88. package/src/{routes → backend/routes}/api/providers.$providerId.ts +4 -4
  89. package/src/{routes → backend/routes}/api/providers.export.ts +1 -1
  90. package/src/{routes → backend/routes}/api/providers.import.ts +3 -3
  91. package/src/{routes → backend/routes}/api/providers.scan.ts +2 -2
  92. package/src/{routes → backend/routes}/api/providers.ts +9 -4
  93. package/src/{routes → backend/routes}/api/runs.$runId.evidence.ts +2 -2
  94. package/src/{routes → backend/routes}/api/runs.$runId.ts +2 -2
  95. package/src/{routes → backend/routes}/api/runs.ts +4 -4
  96. package/src/backend/routes/api/runtime.ts +46 -0
  97. package/src/{routes → backend/routes}/api/sessions.ts +3 -3
  98. package/src/{routes → backend/routes}/proxy/$.ts +1 -1
  99. package/src/{routes → backend/routes}/readyz.ts +1 -1
  100. package/src/{start.ts → backend/start.ts} +1 -1
  101. package/src/cli/alias.ts +2 -11
  102. package/src/cli/doctor.ts +32 -9
  103. package/src/cli/instance.ts +36 -13
  104. package/src/cli/instanceApi.ts +213 -0
  105. package/src/cli/instanceArgs.ts +46 -11
  106. package/src/cli/instanceControl.ts +10 -2
  107. package/src/cli/instanceModel.ts +18 -17
  108. package/src/cli/instanceRegistry.ts +0 -9
  109. package/src/cli/networkHints.ts +27 -14
  110. package/src/cli/onboard.ts +69 -2
  111. package/src/cli/onboardTarget.ts +89 -40
  112. package/src/cli/rustBackendPackage.ts +450 -0
  113. package/src/cli/templates/codex-skill-onboard.ts +44 -14
  114. package/src/cli/templates/skill-onboard.ts +64 -28
  115. package/src/cli.ts +341 -75
  116. package/src/components/ProxyViewer.tsx +11 -9
  117. package/src/components/ProxyViewerContainer.tsx +12 -11
  118. package/src/components/pi-agent/PiAgentPanel.tsx +2 -2
  119. package/src/components/providers/ProviderCard.tsx +1 -1
  120. package/src/components/providers/ProviderTestResultsView.tsx +1 -1
  121. package/src/components/providers/SettingsDialog.tsx +159 -144
  122. package/src/components/proxy-viewer/ApplicationBar.tsx +2 -1
  123. package/src/components/proxy-viewer/LogEntry.tsx +1 -1
  124. package/src/components/proxy-viewer/log-formats/index.ts +1 -1
  125. package/src/contracts/index.ts +5 -0
  126. package/src/contracts/log.ts +33 -3
  127. package/src/knowledge/types.ts +3 -2
  128. package/src/lib/alertContract.ts +2 -2
  129. package/src/lib/apiClient.ts +30 -7
  130. package/src/lib/apiFormat.ts +29 -0
  131. package/src/lib/backendImplementation.ts +16 -0
  132. package/src/lib/basePath.ts +29 -11
  133. package/src/lib/browserRuntimeContract.ts +124 -0
  134. package/src/lib/browserRuntimeResolver.ts +244 -0
  135. package/src/{proxy → lib}/claudeCodeStrip.ts +6 -7
  136. package/src/lib/codingAgentEndpoints.ts +38 -0
  137. package/src/lib/instanceContract.ts +30 -11
  138. package/src/lib/managedInstance.ts +9 -1
  139. package/src/lib/piAgentContract.ts +3 -2
  140. package/src/lib/publicBasePathContext.ts +40 -10
  141. package/src/lib/resourceLimits.ts +2 -0
  142. package/src/lib/runContract.ts +3 -3
  143. package/src/lib/sessionInfoContract.ts +3 -2
  144. package/src/mcp/instanceHandlers.ts +2 -0
  145. package/src/mcp/server.ts +19 -24
  146. package/src/proxy/config.ts +25 -30
  147. package/src/proxy/dataDir.ts +43 -7
  148. package/src/proxy/ecosystemTasks.ts +161 -70
  149. package/src/proxy/formats/registry.ts +6 -21
  150. package/src/proxy/handler.ts +129 -29
  151. package/src/proxy/identityProxy.ts +567 -39
  152. package/src/proxy/jsonlRecovery.ts +554 -0
  153. package/src/proxy/logFinalizer.ts +25 -10
  154. package/src/proxy/logImporter.ts +2 -1
  155. package/src/proxy/logIndex.ts +191 -95
  156. package/src/proxy/logger.ts +77 -14
  157. package/src/proxy/platformCommands.ts +41 -0
  158. package/src/proxy/privateDataPath.ts +310 -88
  159. package/src/proxy/rawStreamCapture.ts +194 -13
  160. package/src/proxy/runtimeAdmission.ts +5 -2
  161. package/src/proxy/runtimeHealth.ts +14 -1
  162. package/src/proxy/runtimeShutdown.ts +11 -1
  163. package/src/proxy/schemas.ts +7 -1
  164. package/src/proxy/sessionArchive.ts +70 -14
  165. package/src/proxy/sqliteLogIndex.ts +65 -42
  166. package/src/proxy/store.ts +141 -34
  167. package/src/proxy/uiAssetServer.ts +106 -0
  168. package/src/proxy/upstream.ts +29 -2
  169. package/src/ui/bootstrap.ts +167 -0
  170. package/src/ui/index.html +38 -0
  171. package/src/ui/logsStreamClient.ts +20 -0
  172. package/src/ui/main.tsx +13 -0
  173. package/src/ui/public/runtime-config.js +2 -0
  174. package/src/ui/router.tsx +13 -0
  175. package/src/ui/routes/__root.tsx +69 -0
  176. package/src/{routes → ui/routes}/index.tsx +2 -3
  177. package/src/{routes → ui/routes}/session/$sessionId.tsx +5 -11
  178. package/src/ui/runtimeDiscovery.ts +50 -0
  179. package/styles/globals.css +1 -0
  180. package/.output/public/assets/ProxyViewerContainer-BEAhuGOJ.js +0 -126
  181. package/.output/public/assets/ResponseView-DBCjkwye.js +0 -2
  182. package/.output/public/assets/StreamingChunkSequence-CuXhDgMo.js +0 -1
  183. package/.output/public/assets/index-BZo_8koU.js +0 -70
  184. package/.output/public/assets/index-ZWschkCh.css +0 -1
  185. package/.output/public/assets/json-viewer-B-Ao6pwW.js +0 -1
  186. package/.output/server/_libs/@radix-ui/react-accessible-icon+[...].mjs +0 -1
  187. package/.output/server/_libs/@radix-ui/react-dismissable-layer+[...].mjs +0 -344
  188. package/.output/server/_libs/@radix-ui/react-navigation-menu+[...].mjs +0 -2
  189. package/.output/server/_libs/@radix-ui/react-one-time-password-field+[...].mjs +0 -2
  190. package/.output/server/_libs/@radix-ui/react-password-toggle-field+[...].mjs +0 -2
  191. package/.output/server/_libs/@radix-ui/react-use-callback-ref+[...].mjs +0 -11
  192. package/.output/server/_libs/@radix-ui/react-use-controllable-state+[...].mjs +0 -69
  193. package/.output/server/_libs/@radix-ui/react-use-effect-event+[...].mjs +0 -1
  194. package/.output/server/_libs/@radix-ui/react-use-is-hydrated+[...].mjs +0 -28
  195. package/.output/server/_libs/@radix-ui/react-use-layout-effect+[...].mjs +0 -6
  196. package/.output/server/_libs/@radix-ui/react-visually-hidden+[...].mjs +0 -34
  197. package/.output/server/_libs/aria-hidden.mjs +0 -122
  198. package/.output/server/_libs/bail.mjs +0 -8
  199. package/.output/server/_libs/character-entities.mjs +0 -2130
  200. package/.output/server/_libs/class-variance-authority.mjs +0 -44
  201. package/.output/server/_libs/clsx.mjs +0 -16
  202. package/.output/server/_libs/comma-separated-tokens.mjs +0 -10
  203. package/.output/server/_libs/decode-named-character-reference+[...].mjs +0 -8
  204. package/.output/server/_libs/dequal.mjs +0 -27
  205. package/.output/server/_libs/detect-node-es.mjs +0 -1
  206. package/.output/server/_libs/devlop.mjs +0 -8
  207. package/.output/server/_libs/diff.mjs +0 -320
  208. package/.output/server/_libs/estree-util-is-identifier-name.mjs +0 -11
  209. package/.output/server/_libs/floating-ui__core.mjs +0 -725
  210. package/.output/server/_libs/floating-ui__dom.mjs +0 -622
  211. package/.output/server/_libs/floating-ui__react-dom.mjs +0 -292
  212. package/.output/server/_libs/floating-ui__utils.mjs +0 -320
  213. package/.output/server/_libs/get-nonce.mjs +0 -9
  214. package/.output/server/_libs/hast-util-to-jsx-runtime.mjs +0 -388
  215. package/.output/server/_libs/hast-util-whitespace.mjs +0 -10
  216. package/.output/server/_libs/html-url-attributes.mjs +0 -26
  217. package/.output/server/_libs/inline-style-parser.mjs +0 -142
  218. package/.output/server/_libs/is-plain-obj.mjs +0 -10
  219. package/.output/server/_libs/lucide-react.mjs +0 -1027
  220. package/.output/server/_libs/mdast-util-from-markdown.mjs +0 -717
  221. package/.output/server/_libs/mdast-util-to-hast.mjs +0 -710
  222. package/.output/server/_libs/mdast-util-to-string.mjs +0 -38
  223. package/.output/server/_libs/micromark-core-commonmark.mjs +0 -2259
  224. package/.output/server/_libs/micromark-factory-destination.mjs +0 -94
  225. package/.output/server/_libs/micromark-factory-label.mjs +0 -63
  226. package/.output/server/_libs/micromark-factory-space.mjs +0 -24
  227. package/.output/server/_libs/micromark-factory-title.mjs +0 -65
  228. package/.output/server/_libs/micromark-factory-whitespace.mjs +0 -22
  229. package/.output/server/_libs/micromark-util-character.mjs +0 -44
  230. package/.output/server/_libs/micromark-util-chunked.mjs +0 -36
  231. package/.output/server/_libs/micromark-util-classify-character+[...].mjs +0 -12
  232. package/.output/server/_libs/micromark-util-combine-extensions+[...].mjs +0 -41
  233. package/.output/server/_libs/micromark-util-decode-numeric-character-reference+[...].mjs +0 -19
  234. package/.output/server/_libs/micromark-util-decode-string.mjs +0 -21
  235. package/.output/server/_libs/micromark-util-encode.mjs +0 -1
  236. package/.output/server/_libs/micromark-util-html-tag-name.mjs +0 -69
  237. package/.output/server/_libs/micromark-util-normalize-identifier+[...].mjs +0 -6
  238. package/.output/server/_libs/micromark-util-resolve-all.mjs +0 -15
  239. package/.output/server/_libs/micromark-util-sanitize-uri.mjs +0 -41
  240. package/.output/server/_libs/micromark-util-subtokenize.mjs +0 -346
  241. package/.output/server/_libs/micromark.mjs +0 -906
  242. package/.output/server/_libs/property-information.mjs +0 -1209
  243. package/.output/server/_libs/radix-ui.mjs +0 -1
  244. package/.output/server/_libs/radix-ui__number.mjs +0 -6
  245. package/.output/server/_libs/radix-ui__primitive.mjs +0 -11
  246. package/.output/server/_libs/radix-ui__react-accordion.mjs +0 -1
  247. package/.output/server/_libs/radix-ui__react-alert-dialog.mjs +0 -1
  248. package/.output/server/_libs/radix-ui__react-arrow.mjs +0 -23
  249. package/.output/server/_libs/radix-ui__react-aspect-ratio.mjs +0 -1
  250. package/.output/server/_libs/radix-ui__react-avatar.mjs +0 -1
  251. package/.output/server/_libs/radix-ui__react-checkbox.mjs +0 -1
  252. package/.output/server/_libs/radix-ui__react-collapsible.mjs +0 -144
  253. package/.output/server/_libs/radix-ui__react-collection.mjs +0 -69
  254. package/.output/server/_libs/radix-ui__react-compose-refs.mjs +0 -38
  255. package/.output/server/_libs/radix-ui__react-context-menu.mjs +0 -1
  256. package/.output/server/_libs/radix-ui__react-context.mjs +0 -64
  257. package/.output/server/_libs/radix-ui__react-dialog.mjs +0 -280
  258. package/.output/server/_libs/radix-ui__react-direction.mjs +0 -9
  259. package/.output/server/_libs/radix-ui__react-dropdown-menu.mjs +0 -1
  260. package/.output/server/_libs/radix-ui__react-focus-guards.mjs +0 -39
  261. package/.output/server/_libs/radix-ui__react-focus-scope.mjs +0 -210
  262. package/.output/server/_libs/radix-ui__react-form.mjs +0 -1
  263. package/.output/server/_libs/radix-ui__react-hover-card.mjs +0 -1
  264. package/.output/server/_libs/radix-ui__react-id.mjs +0 -14
  265. package/.output/server/_libs/radix-ui__react-label.mjs +0 -1
  266. package/.output/server/_libs/radix-ui__react-menu.mjs +0 -1
  267. package/.output/server/_libs/radix-ui__react-menubar.mjs +0 -1
  268. package/.output/server/_libs/radix-ui__react-popover.mjs +0 -1
  269. package/.output/server/_libs/radix-ui__react-popper.mjs +0 -340
  270. package/.output/server/_libs/radix-ui__react-portal.mjs +0 -16
  271. package/.output/server/_libs/radix-ui__react-presence.mjs +0 -173
  272. package/.output/server/_libs/radix-ui__react-primitive.mjs +0 -42
  273. package/.output/server/_libs/radix-ui__react-progress.mjs +0 -1
  274. package/.output/server/_libs/radix-ui__react-radio-group.mjs +0 -1
  275. package/.output/server/_libs/radix-ui__react-roving-focus.mjs +0 -235
  276. package/.output/server/_libs/radix-ui__react-scroll-area.mjs +0 -731
  277. package/.output/server/_libs/radix-ui__react-select.mjs +0 -1207
  278. package/.output/server/_libs/radix-ui__react-separator.mjs +0 -28
  279. package/.output/server/_libs/radix-ui__react-slider.mjs +0 -1
  280. package/.output/server/_libs/radix-ui__react-slot.mjs +0 -132
  281. package/.output/server/_libs/radix-ui__react-switch.mjs +0 -1
  282. package/.output/server/_libs/radix-ui__react-tabs.mjs +0 -194
  283. package/.output/server/_libs/radix-ui__react-toast.mjs +0 -2
  284. package/.output/server/_libs/radix-ui__react-toggle-group.mjs +0 -1
  285. package/.output/server/_libs/radix-ui__react-toggle.mjs +0 -1
  286. package/.output/server/_libs/radix-ui__react-toolbar.mjs +0 -1
  287. package/.output/server/_libs/radix-ui__react-tooltip.mjs +0 -498
  288. package/.output/server/_libs/radix-ui__react-use-previous.mjs +0 -14
  289. package/.output/server/_libs/radix-ui__react-use-size.mjs +0 -39
  290. package/.output/server/_libs/react-markdown.mjs +0 -235
  291. package/.output/server/_libs/react-remove-scroll-bar.mjs +0 -82
  292. package/.output/server/_libs/react-remove-scroll.mjs +0 -328
  293. package/.output/server/_libs/react-style-singleton.mjs +0 -69
  294. package/.output/server/_libs/remark-parse.mjs +0 -19
  295. package/.output/server/_libs/remark-rehype.mjs +0 -21
  296. package/.output/server/_libs/space-separated-tokens.mjs +0 -6
  297. package/.output/server/_libs/style-to-js.mjs +0 -72
  298. package/.output/server/_libs/style-to-object.mjs +0 -38
  299. package/.output/server/_libs/swr.mjs +0 -947
  300. package/.output/server/_libs/tailwind-merge.mjs +0 -3255
  301. package/.output/server/_libs/tanstack__react-virtual.mjs +0 -130
  302. package/.output/server/_libs/tanstack__virtual-core.mjs +0 -1319
  303. package/.output/server/_libs/three.mjs +0 -26016
  304. package/.output/server/_libs/trim-lines.mjs +0 -41
  305. package/.output/server/_libs/trough.mjs +0 -85
  306. package/.output/server/_libs/tslib.mjs +0 -1
  307. package/.output/server/_libs/ungap__structured-clone.mjs +0 -212
  308. package/.output/server/_libs/unified.mjs +0 -661
  309. package/.output/server/_libs/unist-util-is.mjs +0 -100
  310. package/.output/server/_libs/unist-util-position.mjs +0 -27
  311. package/.output/server/_libs/unist-util-stringify-position.mjs +0 -27
  312. package/.output/server/_libs/unist-util-visit-parents.mjs +0 -82
  313. package/.output/server/_libs/unist-util-visit.mjs +0 -24
  314. package/.output/server/_libs/use-callback-ref.mjs +0 -66
  315. package/.output/server/_libs/use-sidecar.mjs +0 -106
  316. package/.output/server/_libs/vfile-message.mjs +0 -138
  317. package/.output/server/_libs/vfile.mjs +0 -467
  318. package/.output/server/_sessionId-CJ99gZFV.mjs +0 -84
  319. package/.output/server/_sessionId-DEjScBpK.mjs +0 -146
  320. package/.output/server/_ssr/CompareDrawer-DtOIMeQB.mjs +0 -1060
  321. package/.output/server/_ssr/InspectorPet-CXc4oCBQ.mjs +0 -938
  322. package/.output/server/_ssr/ProxyViewerContainer-DVPlwfkt.mjs +0 -17632
  323. package/.output/server/_ssr/ReplayDialog-BQEA95qC.mjs +0 -725
  324. package/.output/server/_ssr/RequestAnatomy-BMyd8B7Q.mjs +0 -837
  325. package/.output/server/_ssr/ResponseView-qrTaEIM8.mjs +0 -757
  326. package/.output/server/_ssr/StreamingChunkSequence-BFTL8mIy.mjs +0 -274
  327. package/.output/server/_ssr/index-Bcj1Hcy4.mjs +0 -135
  328. package/.output/server/_ssr/index-DW-M7XUG.mjs +0 -84
  329. package/.output/server/_ssr/json-viewer-DiI0Yjsn.mjs +0 -483
  330. package/.output/server/_tanstack-start-manifest_v-C6pXXX9R.mjs +0 -4
  331. package/.output/server/node_modules/tslib/modules/index.js +0 -70
  332. package/.output/server/node_modules/tslib/modules/package.json +0 -3
  333. package/.output/server/node_modules/tslib/package.json +0 -47
  334. package/.output/server/node_modules/tslib/tslib.js +0 -484
  335. package/.output/server/package.json +0 -9
  336. package/src/routes/__root.tsx +0 -170
  337. package/src/routes/api/-instances.ts +0 -109
  338. /package/.output/{public → ui}/assets/agent-inspector-58K1_MsC.ico +0 -0
  339. /package/.output/{public → ui}/assets/alibaba-TTwafVwX.svg +0 -0
  340. /package/.output/{public → ui}/assets/minimax-BPMzvuL-.jpeg +0 -0
  341. /package/.output/{public → ui}/assets/qwen-mMn3f5ul.webp +0 -0
  342. /package/.output/{public → ui}/assets/zhipuai-BPNAnxo-.svg +0 -0
  343. /package/src/{routes → backend/routes}/livez.ts +0 -0
@@ -78,6 +78,9 @@ export type OnboardFlags = {
78
78
  mimoMcpUrl: string | null;
79
79
  instanceName: string | null;
80
80
  baseUrl: string | null;
81
+ controlBaseUrl: string | null;
82
+ agentBaseUrl: string | null;
83
+ uiUrl: string | null | undefined;
81
84
  mcpName: string | null;
82
85
  uninstall: boolean;
83
86
  status: boolean;
@@ -212,6 +215,9 @@ function parseFlags(argv: readonly string[]): OnboardFlags {
212
215
  mimoMcpUrl: null,
213
216
  instanceName: null,
214
217
  baseUrl: null,
218
+ controlBaseUrl: null,
219
+ agentBaseUrl: null,
220
+ uiUrl: undefined,
215
221
  mcpName: null,
216
222
  uninstall: false,
217
223
  status: false,
@@ -360,6 +366,39 @@ function parseFlags(argv: readonly string[]): OnboardFlags {
360
366
  i++;
361
367
  break;
362
368
  }
369
+ case "--control-base-url": {
370
+ const next = argv[i + 1];
371
+ if (next === undefined || next.trim().length === 0) {
372
+ process.stderr.write("agent-inspector onboard: --control-base-url requires a URL\n");
373
+ process.exit(2);
374
+ }
375
+ flags.controlBaseUrl = next;
376
+ i++;
377
+ break;
378
+ }
379
+ case "--agent-base-url": {
380
+ const next = argv[i + 1];
381
+ if (next === undefined || next.trim().length === 0) {
382
+ process.stderr.write("agent-inspector onboard: --agent-base-url requires a URL\n");
383
+ process.exit(2);
384
+ }
385
+ flags.agentBaseUrl = next;
386
+ i++;
387
+ break;
388
+ }
389
+ case "--ui-url": {
390
+ const next = argv[i + 1];
391
+ if (next === undefined || next.trim().length === 0) {
392
+ process.stderr.write("agent-inspector onboard: --ui-url requires a URL\n");
393
+ process.exit(2);
394
+ }
395
+ flags.uiUrl = next;
396
+ i++;
397
+ break;
398
+ }
399
+ case "--no-ui":
400
+ flags.uiUrl = null;
401
+ break;
363
402
  case "--mcp-name": {
364
403
  const next = argv[i + 1];
365
404
  if (next === undefined || next.trim().length === 0) {
@@ -440,7 +479,11 @@ Options:
440
479
  MiMo Code MCP transport to write (default: local)
441
480
  --mimo-mcp-url <url> Agent Inspector MCP endpoint for MiMo Code
442
481
  --instance <name> Target a registered named Inspector instance
443
- --base-url <url> Target an explicit credential-free Inspector Base URL
482
+ --base-url <url> Target an explicit credential-free backend control/agent Base URL
483
+ --control-base-url <url> Control API Base URL for a separated deployment
484
+ --agent-base-url <url> Proxy and MCP Base URL for Coding Agents
485
+ --ui-url <url> Browser UI URL for a separated deployment
486
+ --no-ui Declare that the explicit target has no browser UI
444
487
  --mcp-name <name> MCP config key (named default: agent-inspector-<instance>)
445
488
  --uninstall Remove generated files whose version matches this package
446
489
  --status Show installed onboarding file versions and suggested action
@@ -533,7 +576,22 @@ function onboardSelectionArguments(flags: OnboardFlags, target: OnboardTarget):
533
576
  if (target.kind === "instance" && target.instanceName !== null) {
534
577
  args.push("--instance", target.instanceName);
535
578
  } else if (target.kind === "base-url") {
536
- args.push("--base-url", target.baseUrl);
579
+ const usedSharedBaseUrl =
580
+ flags.baseUrl !== null &&
581
+ flags.controlBaseUrl === null &&
582
+ flags.agentBaseUrl === null &&
583
+ flags.uiUrl === undefined;
584
+ if (usedSharedBaseUrl) {
585
+ args.push("--base-url", target.baseUrl);
586
+ } else {
587
+ args.push("--control-base-url", target.controlBaseUrl);
588
+ args.push("--agent-base-url", target.agentBaseUrl);
589
+ if (target.uiUrl === null) {
590
+ args.push("--no-ui");
591
+ } else {
592
+ args.push("--ui-url", target.uiUrl);
593
+ }
594
+ }
537
595
  }
538
596
  if (flags.mcpName !== null) args.push("--mcp-name", target.mcpName);
539
597
  return args.length === 0 ? "" : ` ${args.join(" ")}`;
@@ -1202,6 +1260,9 @@ function buildPlannedFiles(
1202
1260
  version,
1203
1261
  port: onboardTarget.port,
1204
1262
  baseUrl: onboardTarget.baseUrl,
1263
+ controlBaseUrl: onboardTarget.controlBaseUrl,
1264
+ agentBaseUrl: onboardTarget.agentBaseUrl,
1265
+ uiUrl: onboardTarget.uiUrl,
1205
1266
  mcpName: onboardTarget.mcpName,
1206
1267
  targetKind: onboardTarget.kind,
1207
1268
  instanceName: onboardTarget.instanceName,
@@ -1215,6 +1276,9 @@ function buildPlannedFiles(
1215
1276
  version,
1216
1277
  port: onboardTarget.port,
1217
1278
  baseUrl: onboardTarget.baseUrl,
1279
+ controlBaseUrl: onboardTarget.controlBaseUrl,
1280
+ agentBaseUrl: onboardTarget.agentBaseUrl,
1281
+ uiUrl: onboardTarget.uiUrl,
1218
1282
  mcpName: onboardTarget.mcpName,
1219
1283
  targetKind: onboardTarget.kind,
1220
1284
  instanceName: onboardTarget.instanceName,
@@ -1449,6 +1513,9 @@ function runOnboardSync(argv: readonly string[]): number {
1449
1513
  const resolvedTarget = resolveOnboardTarget({
1450
1514
  instanceName: flags.instanceName,
1451
1515
  baseUrl: flags.baseUrl,
1516
+ controlBaseUrl: flags.controlBaseUrl,
1517
+ agentBaseUrl: flags.agentBaseUrl,
1518
+ uiUrl: flags.uiUrl,
1452
1519
  mcpName: flags.mcpName,
1453
1520
  });
1454
1521
  if (!resolvedTarget.ok) {
@@ -1,9 +1,11 @@
1
1
  import { appendBasePathToOrigin, getConfiguredBasePath } from "../lib/basePath.js";
2
+ import { normalizeBrowserRuntimeBaseUrl } from "../lib/browserRuntimeContract.js";
2
3
  import { getInstancesRoot, readInstanceRecord, validateInstanceName } from "./instanceRegistry.js";
3
4
  import { urlForHost } from "./networkHints.js";
4
5
 
5
6
  const DEFAULT_PORT = 9527;
6
7
  const DEFAULT_ORIGIN = `http://localhost:${String(DEFAULT_PORT)}`;
8
+ const AGENT_INSPECTOR_PUBLIC_ORIGIN_ENV = "AGENT_INSPECTOR_PUBLIC_ORIGIN";
7
9
  const MCP_NAME_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/u;
8
10
 
9
11
  type OnboardTargetEnv = Readonly<Record<string, string | undefined>>;
@@ -15,6 +17,10 @@ export type OnboardTarget = {
15
17
  instanceName: string | null;
16
18
  mcpName: string;
17
19
  port: number;
20
+ uiUrl: string | null;
21
+ controlBaseUrl: string;
22
+ agentBaseUrl: string;
23
+ /** @deprecated Compatibility alias for controlBaseUrl. */
18
24
  baseUrl: string;
19
25
  apiUrl: string;
20
26
  healthUrl: string;
@@ -26,6 +32,9 @@ export type OnboardTarget = {
26
32
  export type OnboardTargetOptions = {
27
33
  instanceName: string | null;
28
34
  baseUrl: string | null;
35
+ controlBaseUrl?: string | null;
36
+ agentBaseUrl?: string | null;
37
+ uiUrl?: string | null;
29
38
  mcpName: string | null;
30
39
  };
31
40
 
@@ -33,24 +42,29 @@ export type OnboardTargetResult =
33
42
  | { ok: true; target: OnboardTarget }
34
43
  | { ok: false; message: string };
35
44
 
36
- function targetFromBase(
45
+ function targetFromSurfaces(
37
46
  kind: OnboardTargetKind,
38
47
  instanceName: string | null,
39
48
  mcpName: string,
40
49
  port: number,
41
- baseUrl: string,
50
+ controlBaseUrl: string,
51
+ agentBaseUrl: string,
52
+ uiUrl: string | null,
42
53
  ): OnboardTarget {
43
54
  return {
44
55
  kind,
45
56
  instanceName,
46
57
  mcpName,
47
58
  port,
48
- baseUrl,
49
- apiUrl: `${baseUrl}/api`,
50
- healthUrl: `${baseUrl}/api/health`,
51
- anthropicProxyUrl: `${baseUrl}/proxy`,
52
- openAiProxyUrl: `${baseUrl}/proxy/v1`,
53
- mcpUrl: `${baseUrl}/api/mcp`,
59
+ uiUrl,
60
+ controlBaseUrl,
61
+ agentBaseUrl,
62
+ baseUrl: controlBaseUrl,
63
+ apiUrl: `${controlBaseUrl}/api`,
64
+ healthUrl: `${controlBaseUrl}/api/health`,
65
+ anthropicProxyUrl: `${agentBaseUrl}/proxy`,
66
+ openAiProxyUrl: `${agentBaseUrl}/proxy/v1`,
67
+ mcpUrl: `${agentBaseUrl}/api/mcp`,
54
68
  };
55
69
  }
56
70
 
@@ -60,31 +74,33 @@ function validateMcpName(rawName: string): string | null {
60
74
  }
61
75
 
62
76
  function normalizeExplicitBaseUrl(rawBaseUrl: string): { baseUrl: string; port: number } | null {
63
- const candidate = rawBaseUrl.trim();
64
- if (
65
- candidate.length === 0 ||
66
- candidate !== rawBaseUrl ||
67
- candidate.includes("?") ||
68
- candidate.includes("#")
69
- ) {
77
+ const baseUrl = normalizeBrowserRuntimeBaseUrl(rawBaseUrl);
78
+ if (baseUrl === null) return null;
79
+ try {
80
+ const parsed = new URL(baseUrl);
81
+ const defaultPort = parsed.protocol === "https:" ? 443 : 80;
82
+ const port = parsed.port === "" ? defaultPort : Number(parsed.port);
83
+ return Number.isInteger(port) && port >= 1 && port <= 65_535 ? { baseUrl, port } : null;
84
+ } catch {
70
85
  return null;
71
86
  }
87
+ }
72
88
 
89
+ function normalizePublicOrigin(rawOrigin: string): string | null {
90
+ if (rawOrigin.trim() !== rawOrigin) return null;
73
91
  try {
74
- const parsed = new URL(candidate);
92
+ const parsed = new URL(rawOrigin);
75
93
  if (
76
94
  (parsed.protocol !== "http:" && parsed.protocol !== "https:") ||
77
- parsed.hostname.length === 0 ||
78
95
  parsed.username.length > 0 ||
79
- parsed.password.length > 0
96
+ parsed.password.length > 0 ||
97
+ parsed.pathname !== "/" ||
98
+ parsed.search.length > 0 ||
99
+ parsed.hash.length > 0
80
100
  ) {
81
101
  return null;
82
102
  }
83
- const pathname = parsed.pathname.replace(/\/+$/u, "");
84
- const baseUrl = `${parsed.origin}${pathname === "" ? "" : pathname}`;
85
- const defaultPort = parsed.protocol === "https:" ? 443 : 80;
86
- const port = parsed.port === "" ? defaultPort : Number(parsed.port);
87
- return Number.isInteger(port) && port >= 1 && port <= 65_535 ? { baseUrl, port } : null;
103
+ return parsed.origin;
88
104
  } catch {
89
105
  return null;
90
106
  }
@@ -94,10 +110,16 @@ export function resolveOnboardTarget(
94
110
  options: OnboardTargetOptions,
95
111
  env: OnboardTargetEnv = process.env,
96
112
  ): OnboardTargetResult {
97
- if (options.instanceName !== null && options.baseUrl !== null) {
113
+ const hasExplicitSurface =
114
+ options.baseUrl !== null ||
115
+ (options.controlBaseUrl !== null && options.controlBaseUrl !== undefined) ||
116
+ (options.agentBaseUrl !== null && options.agentBaseUrl !== undefined) ||
117
+ options.uiUrl !== undefined;
118
+ if (options.instanceName !== null && hasExplicitSurface) {
98
119
  return {
99
120
  ok: false,
100
- message: "--instance and --base-url are mutually exclusive",
121
+ message:
122
+ "--instance and explicit --base-url/--control-base-url/--agent-base-url/--ui-url options are mutually exclusive",
101
123
  };
102
124
  }
103
125
 
@@ -110,23 +132,39 @@ export function resolveOnboardTarget(
110
132
  };
111
133
  }
112
134
 
113
- if (options.baseUrl !== null) {
114
- const explicit = normalizeExplicitBaseUrl(options.baseUrl);
115
- if (explicit === null) {
135
+ if (hasExplicitSurface) {
136
+ const sharedRaw = options.baseUrl;
137
+ const controlRaw = options.controlBaseUrl ?? sharedRaw ?? options.agentBaseUrl;
138
+ const agentRaw = options.agentBaseUrl ?? sharedRaw ?? options.controlBaseUrl;
139
+ const control =
140
+ controlRaw === null || controlRaw === undefined ? null : normalizeExplicitBaseUrl(controlRaw);
141
+ const agent =
142
+ agentRaw === null || agentRaw === undefined ? null : normalizeExplicitBaseUrl(agentRaw);
143
+ const ui =
144
+ options.uiUrl === undefined || options.uiUrl === null
145
+ ? null
146
+ : normalizeExplicitBaseUrl(options.uiUrl);
147
+ if (
148
+ control === null ||
149
+ agent === null ||
150
+ (options.uiUrl !== undefined && options.uiUrl !== null && ui === null)
151
+ ) {
116
152
  return {
117
153
  ok: false,
118
154
  message:
119
- "--base-url must be a credential-free HTTP or HTTPS URL without a query or fragment",
155
+ "Explicit UI, control, and agent Base URLs must be credential-free HTTP(S) URLs without a query or fragment",
120
156
  };
121
157
  }
122
158
  return {
123
159
  ok: true,
124
- target: targetFromBase(
160
+ target: targetFromSurfaces(
125
161
  "base-url",
126
162
  null,
127
163
  explicitMcpName ?? "agent-inspector",
128
- explicit.port,
129
- explicit.baseUrl,
164
+ control.port,
165
+ control.baseUrl,
166
+ agent.baseUrl,
167
+ ui?.baseUrl ?? null,
130
168
  ),
131
169
  };
132
170
  }
@@ -150,30 +188,41 @@ export function resolveOnboardTarget(
150
188
  const baseUrl = appendBasePathToOrigin(origin, "/", record.value.basePath);
151
189
  return {
152
190
  ok: true,
153
- target: targetFromBase(
191
+ target: targetFromSurfaces(
154
192
  "instance",
155
193
  record.value.name,
156
194
  explicitMcpName ?? `agent-inspector-${record.value.name}`,
157
195
  record.value.publicPort,
158
196
  baseUrl,
197
+ baseUrl,
198
+ record.value.uiEnabled ? baseUrl : null,
159
199
  ),
160
200
  };
161
201
  }
162
202
 
163
- const baseUrl = appendBasePathToOrigin(DEFAULT_ORIGIN, "/", getConfiguredBasePath(env));
203
+ const configuredPublicOrigin = env[AGENT_INSPECTOR_PUBLIC_ORIGIN_ENV];
204
+ const publicOrigin =
205
+ configuredPublicOrigin === undefined
206
+ ? DEFAULT_ORIGIN
207
+ : normalizePublicOrigin(configuredPublicOrigin);
208
+ if (publicOrigin === null) {
209
+ return {
210
+ ok: false,
211
+ message:
212
+ "AGENT_INSPECTOR_PUBLIC_ORIGIN must be an exact credential-free HTTP(S) origin without a path, query, or fragment",
213
+ };
214
+ }
215
+ const baseUrl = appendBasePathToOrigin(publicOrigin, "/", getConfiguredBasePath(env));
164
216
  return {
165
217
  ok: true,
166
- target: targetFromBase(
218
+ target: targetFromSurfaces(
167
219
  "default",
168
220
  null,
169
221
  explicitMcpName ?? "agent-inspector",
170
222
  DEFAULT_PORT,
171
223
  baseUrl,
224
+ baseUrl,
225
+ env["AGENT_INSPECTOR_BACKEND_ONLY"] === "1" ? null : baseUrl,
172
226
  ),
173
227
  };
174
228
  }
175
-
176
- export const onboardTargetForTests = {
177
- normalizeExplicitBaseUrl,
178
- validateMcpName,
179
- };