@tonyclaw/agent-inspector 3.0.15 → 3.0.17

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 (90) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/assets/{CompareDrawer-UaIxykqz.js → CompareDrawer-Lx-WeJNC.js} +1 -1
  3. package/.output/public/assets/{ProxyViewerContainer-DlpfcX56.js → ProxyViewerContainer-BNehwMI0.js} +31 -31
  4. package/.output/public/assets/{ReplayDialog-BFFomU1m.js → ReplayDialog-CADaXFPE.js} +1 -1
  5. package/.output/public/assets/{RequestAnatomy-DKQJBt_c.js → RequestAnatomy-CGoL8ACh.js} +1 -1
  6. package/.output/public/assets/{ResponseView-D7yotmne.js → ResponseView-BSwM1dCH.js} +2 -2
  7. package/.output/public/assets/{StreamingChunkSequence-Da-6WNFG.js → StreamingChunkSequence-qhWtSx3D.js} +1 -1
  8. package/.output/public/assets/{_sessionId-ByTXLS-w.js → _sessionId-2uq_HB8p.js} +1 -1
  9. package/.output/public/assets/index-BHXN1Fsx.css +1 -0
  10. package/.output/public/assets/{index-BrM8t5mc.js → index-DPc2wzgW.js} +1 -1
  11. package/.output/public/assets/index-T0u1foYL.js +1 -0
  12. package/.output/public/assets/{json-viewer-DyjXQdVu.js → json-viewer-uIwLntt-.js} +1 -1
  13. package/.output/public/assets/{main-Zv_gjZMb.js → main-DuFBHsus.js} +7 -7
  14. package/.output/server/_libs/@opentelemetry/semantic-conventions+[...].mjs +2658 -0
  15. package/.output/server/_libs/agent-base.mjs +234 -0
  16. package/.output/server/_libs/anthropic-ai__sdk.mjs +6042 -0
  17. package/.output/server/_libs/atomically.mjs +3 -0
  18. package/.output/server/_libs/base64-js.mjs +102 -0
  19. package/.output/server/_libs/bignumber.js.mjs +1353 -0
  20. package/.output/server/_libs/buffer-equal-constant-time.mjs +38 -0
  21. package/.output/server/_libs/data-uri-to-buffer.mjs +39 -0
  22. package/.output/server/_libs/debug.mjs +547 -0
  23. package/.output/server/_libs/ecdsa-sig-formatter.mjs +162 -0
  24. package/.output/server/_libs/extend.mjs +2 -1
  25. package/.output/server/_libs/fetch-blob.mjs +287 -0
  26. package/.output/server/_libs/formdata-polyfill.mjs +88 -0
  27. package/.output/server/_libs/gaxios.mjs +927 -0
  28. package/.output/server/_libs/gcp-metadata.mjs +322 -0
  29. package/.output/server/_libs/google-auth-library.mjs +6339 -0
  30. package/.output/server/_libs/google-logging-utils.mjs +385 -0
  31. package/.output/server/_libs/google__genai.mjs +18034 -0
  32. package/.output/server/_libs/has-flag.mjs +16 -0
  33. package/.output/server/_libs/https-proxy-agent.mjs +280 -0
  34. package/.output/server/_libs/json-bigint.mjs +413 -0
  35. package/.output/server/_libs/jwa.mjs +233 -0
  36. package/.output/server/_libs/jws.mjs +298 -0
  37. package/.output/server/_libs/lucide-react.mjs +261 -226
  38. package/.output/server/_libs/mariozechner__pi-agent-core.mjs +824 -0
  39. package/.output/server/_libs/mariozechner__pi-ai.mjs +22889 -0
  40. package/.output/server/_libs/mistralai__mistralai.mjs +32045 -0
  41. package/.output/server/_libs/ms.mjs +120 -0
  42. package/.output/server/_libs/node-domexception.mjs +17 -0
  43. package/.output/server/_libs/node-fetch.mjs +1578 -0
  44. package/.output/server/_libs/ohash.mjs +1 -1
  45. package/.output/server/_libs/openai.mjs +6766 -0
  46. package/.output/server/_libs/opentelemetry__api.mjs +1678 -0
  47. package/.output/server/_libs/p-retry.mjs +87 -0
  48. package/.output/server/_libs/partial-json.mjs +244 -0
  49. package/.output/server/_libs/react-dom.mjs +5 -5
  50. package/.output/server/_libs/react-markdown.mjs +2 -2
  51. package/.output/server/_libs/react.mjs +30 -0
  52. package/.output/server/_libs/readable-stream.mjs +5 -5
  53. package/.output/server/_libs/retry.mjs +236 -0
  54. package/.output/server/_libs/safe-buffer.mjs +63 -1
  55. package/.output/server/_libs/srvx.mjs +2 -2
  56. package/.output/server/_libs/supports-color.mjs +108 -0
  57. package/.output/server/_libs/tanstack__router-core.mjs +1 -1
  58. package/.output/server/_libs/typebox.mjs +6596 -0
  59. package/.output/server/_libs/util-deprecate.mjs +2 -2
  60. package/.output/server/_libs/vfile.mjs +2 -2
  61. package/.output/server/_libs/web-streams-polyfill.mjs +4282 -0
  62. package/.output/server/_libs/ws.mjs +3715 -0
  63. package/.output/server/_libs/zod-to-json-schema.mjs +1207 -0
  64. package/.output/server/_libs/zod.mjs +597 -9
  65. package/.output/server/{_sessionId-GcFhWT0i.mjs → _sessionId-DL2JQJwR.mjs} +14 -13
  66. package/.output/server/_ssr/{CompareDrawer-BV7dw1TN.mjs → CompareDrawer-hPTOTmyU.mjs} +14 -13
  67. package/.output/server/_ssr/{ProxyViewerContainer-CcgfvaS4.mjs → ProxyViewerContainer-k0mFaufl.mjs} +161 -91
  68. package/.output/server/_ssr/{ReplayDialog-B7sBKxIO.mjs → ReplayDialog-t6QdwnZh.mjs} +15 -14
  69. package/.output/server/_ssr/{RequestAnatomy-s_9Veje2.mjs → RequestAnatomy-BnvWxyac.mjs} +14 -13
  70. package/.output/server/_ssr/{ResponseView-DsOFPCvF.mjs → ResponseView-BhhozRRl.mjs} +14 -13
  71. package/.output/server/_ssr/{StreamingChunkSequence-CyA1XtiF.mjs → StreamingChunkSequence-Dl_laTbX.mjs} +14 -13
  72. package/.output/server/_ssr/{index-CDDRt201.mjs → index-D1-t1D8F.mjs} +25 -15
  73. package/.output/server/_ssr/index.mjs +4 -4
  74. package/.output/server/_ssr/{json-viewer-BFV-xtRM.mjs → json-viewer-D5Lh2yBU.mjs} +14 -13
  75. package/.output/server/_ssr/{router-B2Q7vHPM.mjs → router-DaLFEeWW.mjs} +597 -100
  76. package/.output/server/_tanstack-start-manifest_v-DsSiD2gY.mjs +4 -0
  77. package/.output/server/index.mjs +77 -77
  78. package/package.json +4 -1
  79. package/src/components/ProxyViewer.tsx +12 -4
  80. package/src/components/pi-agent/PiAgentPanel.tsx +204 -0
  81. package/src/lib/chunkLoadRecovery.ts +83 -0
  82. package/src/lib/piAgentContract.ts +21 -0
  83. package/src/routes/__root.tsx +6 -3
  84. package/src/routes/api/pi-agent.ts +29 -0
  85. package/src/routes/index.tsx +25 -1
  86. package/src/routes/session/$sessionId.tsx +1 -0
  87. package/src/services/piAgent.ts +390 -0
  88. package/.output/public/assets/index-CGpPRty8.js +0 -1
  89. package/.output/public/assets/index-HRfrFVYw.css +0 -1
  90. package/.output/server/_tanstack-start-manifest_v-Dm_GmuRz.mjs +0 -4
@@ -1,8 +1,17 @@
1
1
  import { j as jsxRuntimeExports, r as reactExports } from "./_libs/react.mjs";
2
- import { P as ProxyViewerContainer } from "./_ssr/ProxyViewerContainer-CcgfvaS4.mjs";
3
- import { R as Route$J } from "./_ssr/router-B2Q7vHPM.mjs";
2
+ import { P as ProxyViewerContainer } from "./_ssr/ProxyViewerContainer-k0mFaufl.mjs";
3
+ import { R as Route$K } from "./_ssr/router-DaLFEeWW.mjs";
4
4
  import "./_libs/jszip.mjs";
5
+ import "node:fs";
6
+ import "node:buffer";
7
+ import "node:path";
8
+ import "node:crypto";
9
+ import "node:child_process";
10
+ import "node:url";
11
+ import "crypto";
12
+ import "node:util";
5
13
  import "./_libs/modelcontextprotocol__server.mjs";
14
+ import "node:os";
6
15
  import "./_libs/swr.mjs";
7
16
  import "./_libs/use-sync-external-store.mjs";
8
17
  import "./_libs/dequal.mjs";
@@ -21,7 +30,6 @@ import "./_libs/react-dom.mjs";
21
30
  import "util";
22
31
  import "async_hooks";
23
32
  import "stream";
24
- import "crypto";
25
33
  import "./_libs/radix-ui__react-slot.mjs";
26
34
  import "./_libs/@radix-ui/react-use-callback-ref+[...].mjs";
27
35
  import "./_libs/@radix-ui/react-use-escape-keydown+[...].mjs";
@@ -67,27 +75,20 @@ import "./_libs/tanstack__router-core.mjs";
67
75
  import "./_libs/cookie-es.mjs";
68
76
  import "./_libs/seroval.mjs";
69
77
  import "./_libs/seroval-plugins.mjs";
78
+ import "node:stream";
70
79
  import "./_libs/tanstack__history.mjs";
71
80
  import "./_libs/tiny-invariant.mjs";
72
81
  import "node:stream/web";
73
- import "node:stream";
74
82
  import "./_libs/isbot.mjs";
75
- import "node:fs";
76
83
  import "node:fs/promises";
77
84
  import "node:readline";
78
- import "node:buffer";
79
- import "node:path";
80
- import "node:crypto";
81
- import "node:child_process";
82
- import "node:url";
83
85
  import "./_libs/conf.mjs";
84
- import "node:util";
85
86
  import "node:process";
86
87
  import "node:assert";
87
88
  import "./_libs/dot-prop.mjs";
88
89
  import "./_libs/env-paths.mjs";
89
- import "node:os";
90
90
  import "./_libs/atomically.mjs";
91
+ import "node:events";
91
92
  import "./_libs/stubborn-fs.mjs";
92
93
  import "./_libs/stubborn-utils.mjs";
93
94
  import "./_libs/when-exit.mjs";
@@ -118,7 +119,7 @@ import "./_libs/pako.mjs";
118
119
  function SessionViewerRoute() {
119
120
  const {
120
121
  sessionId
121
- } = Route$J.useParams();
122
+ } = Route$K.useParams();
122
123
  return /* @__PURE__ */ jsxRuntimeExports.jsx(ClientOnlySessionViewer, { sessionId });
123
124
  }
124
125
  function ClientOnlySessionViewer({
@@ -1,9 +1,18 @@
1
1
  import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
2
- import { g as getLogFormatAdapter, r as resolveLogFormat, a as getConversationId, c as cn, B as Badge, f as formatTokens, b as copyTextToClipboard, L as LazyJsonViewerFromString } from "./ProxyViewerContainer-CcgfvaS4.mjs";
3
- import "./router-B2Q7vHPM.mjs";
2
+ import { g as getLogFormatAdapter, r as resolveLogFormat, a as getConversationId, c as cn, B as Badge, f as formatTokens, b as copyTextToClipboard, L as LazyJsonViewerFromString } from "./ProxyViewerContainer-k0mFaufl.mjs";
3
+ import "./router-DaLFEeWW.mjs";
4
+ import "node:fs";
5
+ import "node:buffer";
6
+ import "node:path";
7
+ import "node:crypto";
8
+ import "node:child_process";
9
+ import "node:url";
10
+ import "crypto";
11
+ import "node:util";
4
12
  import "../_libs/modelcontextprotocol__server.mjs";
5
13
  import "../_libs/jszip.mjs";
6
- import { X, ax as Rows3, ay as Columns2, a6 as Minus, e as Plus, a0 as Pencil, j as ChevronRight, az as Equal, b as Check, g as Copy } from "../_libs/lucide-react.mjs";
14
+ import "node:os";
15
+ import { X, az as Rows3, aA as Columns2, a8 as Minus, e as Plus, a2 as Pencil, k as ChevronRight, aB as Equal, b as Check, h as Copy } from "../_libs/lucide-react.mjs";
7
16
  import "../_libs/swr.mjs";
8
17
  import "../_libs/use-sync-external-store.mjs";
9
18
  import "../_libs/dequal.mjs";
@@ -22,7 +31,6 @@ import "../_libs/react-dom.mjs";
22
31
  import "util";
23
32
  import "async_hooks";
24
33
  import "stream";
25
- import "crypto";
26
34
  import "../_libs/radix-ui__react-slot.mjs";
27
35
  import "../_libs/@radix-ui/react-use-callback-ref+[...].mjs";
28
36
  import "../_libs/@radix-ui/react-use-escape-keydown+[...].mjs";
@@ -67,27 +75,20 @@ import "../_libs/tanstack__router-core.mjs";
67
75
  import "../_libs/cookie-es.mjs";
68
76
  import "../_libs/seroval.mjs";
69
77
  import "../_libs/seroval-plugins.mjs";
78
+ import "node:stream";
70
79
  import "../_libs/tanstack__history.mjs";
71
80
  import "../_libs/tiny-invariant.mjs";
72
81
  import "node:stream/web";
73
- import "node:stream";
74
82
  import "../_libs/isbot.mjs";
75
- import "node:fs";
76
83
  import "node:fs/promises";
77
84
  import "node:readline";
78
- import "node:buffer";
79
- import "node:path";
80
- import "node:crypto";
81
- import "node:child_process";
82
- import "node:url";
83
85
  import "../_libs/conf.mjs";
84
- import "node:util";
85
86
  import "node:process";
86
87
  import "node:assert";
87
88
  import "../_libs/dot-prop.mjs";
88
89
  import "../_libs/env-paths.mjs";
89
- import "node:os";
90
90
  import "../_libs/atomically.mjs";
91
+ import "node:events";
91
92
  import "../_libs/stubborn-fs.mjs";
92
93
  import "../_libs/stubborn-utils.mjs";
93
94
  import "../_libs/when-exit.mjs";
@@ -1,5 +1,5 @@
1
1
  import { r as reactExports, j as jsxRuntimeExports, a as React } from "../_libs/react.mjs";
2
- import { C as CapturedLogSchema, n as DeleteInspectorGroupsResponseSchema, D as DEFAULT_CAPTURE_MODE, a as DEFAULT_SLOW_RESPONSE_THRESHOLD_SECONDS, b as DEFAULT_PROVIDER_TEST_TIMEOUT_SECONDS, c as DEFAULT_TIME_DISPLAY_FORMAT, d as RuntimeConfigSchema, p as packageJson, P as ProviderConfigSchema, i as apiFormatForPath, o as GroupEvidenceExportResultSchema, q as DeleteInspectorGroupResponseSchema, l as AlertSummarySchema, m as AlertListResponseSchema, I as InspectorGroupsListResponseSchema, G as GroupEvidenceReadResponseSchema, z as createPendingProviderTestResults, B as ProviderTestResultsSchema, E as createFailedProviderTestResults, M as MAX_SLOW_RESPONSE_THRESHOLD_SECONDS, F as MAX_PROVIDER_TEST_TIMEOUT_SECONDS, T as TimeDisplayFormatSchema, t as maskApiKey, v as PATH_V1_MESSAGES, w as PATH_V1_CHAT_COMPLETIONS, x as PATH_V1_RESPONSES, r as providerHasContextMetadata, f as parseOpenAIResponse, g as parseOpenAIResponsesResponse, O as OpenAIRequestSchema, h as OpenAIResponsesRequestSchema, A as AnthropicResponseSchema$1, e as AnthropicRequestSchema, s as safeGetOwnProperty, H as resolveProviderContextWindow, j as getSessionPath, u as findProviderModelMetadata, y as previewUpstreamUrl, K as KnowledgeCandidateSchema, J as isPlainRecord, k as stripClaudeCodeBillingHeader, L as LogBodyChunkSchema } from "./router-B2Q7vHPM.mjs";
2
+ import { C as CapturedLogSchema, q as DeleteInspectorGroupsResponseSchema, D as DEFAULT_CAPTURE_MODE, a as DEFAULT_SLOW_RESPONSE_THRESHOLD_SECONDS, b as DEFAULT_PROVIDER_TEST_TIMEOUT_SECONDS, c as DEFAULT_TIME_DISPLAY_FORMAT, d as RuntimeConfigSchema, m as extractStopReason, p as packageJson, P as ProviderConfigSchema, i as apiFormatForPath, r as GroupEvidenceExportResultSchema, t as DeleteInspectorGroupResponseSchema, N as PiAgentResponseSchema, l as isTurnBoundary, n as AlertSummarySchema, o as AlertListResponseSchema, I as InspectorGroupsListResponseSchema, G as GroupEvidenceReadResponseSchema, E as createPendingProviderTestResults, F as ProviderTestResultsSchema, H as createFailedProviderTestResults, M as MAX_SLOW_RESPONSE_THRESHOLD_SECONDS, J as MAX_PROVIDER_TEST_TIMEOUT_SECONDS, T as TimeDisplayFormatSchema, v as maskApiKey, x as PATH_V1_MESSAGES, y as PATH_V1_CHAT_COMPLETIONS, z as PATH_V1_RESPONSES, u as providerHasContextMetadata, f as parseOpenAIResponse, g as parseOpenAIResponsesResponse, O as OpenAIRequestSchema, h as OpenAIResponsesRequestSchema, A as AnthropicResponseSchema$1, e as AnthropicRequestSchema, s as safeGetOwnProperty, Q as resolveProviderContextWindow, j as getSessionPath, w as findProviderModelMetadata, B as previewUpstreamUrl, K as KnowledgeCandidateSchema, S as isPlainRecord, k as stripClaudeCodeBillingHeader, L as LogBodyChunkSchema } from "./router-DaLFEeWW.mjs";
3
3
  import { u as useSWR, a as useSWRConfig } from "../_libs/swr.mjs";
4
4
  import { J as JSZip } from "../_libs/jszip.mjs";
5
5
  import { c as clsx } from "../_libs/clsx.mjs";
@@ -9,7 +9,7 @@ import { c as cva } from "../_libs/class-variance-authority.mjs";
9
9
  import { u as useWindowVirtualizer, a as useVirtualizer } from "../_libs/tanstack__react-virtual.mjs";
10
10
  import { d as diffJson, a as diffLines } from "../_libs/diff.mjs";
11
11
  import { R as Root2, T as Trigger, I as Icon, V as Value, P as Portal, C as Content2, a as Viewport, b as Item, c as ItemIndicator, d as ItemText, S as ScrollUpButton, e as ScrollDownButton } from "../_libs/radix-ui__react-select.mjs";
12
- import { T as TriangleAlert, C as CircleCheck, X, I as Info, a as ChevronDown, b as Check, P as PanelRightOpen, c as PanelRightClose, S as Search, U as Upload, D as Download, F as FileBraces, R as RefreshCw, d as Trash2, e as Plus, A as ArrowLeft, f as ChevronUp, g as Copy, h as ChevronsLeft, i as ChevronLeft, j as ChevronRight, k as ChevronsRight, l as Clapperboard, m as Flag, n as Siren, o as Timer, G as Gauge, L as LoaderCircle, p as Layers, q as FlaskConical, r as Sparkles, s as Activity, B as Beaker, N as Network, t as Terminal, u as Settings, M as Monitor, v as Rocket, w as PackageCheck, H as History, x as Scan, y as CircleAlert, z as ArrowUpRight, E as ArrowDownRight, J as Cpu, K as FolderOpen, O as Bell, Q as Clock3, V as ShieldAlert, W as EyeOff, Y as Eye, Z as ExternalLink, _ as Clock, $ as RotateCw, a0 as Pencil, a1 as MessageSquare, a2 as Zap, a3 as Wrench, a4 as Brain, a5 as CircleCheckBig, a6 as Minus, a7 as CircleQuestionMark, a8 as Server, a9 as Lock, aa as Wifi, ab as WifiOff, ac as CircleX, ad as ShieldCheck, ae as Save, af as FileSearch, ag as CloudUpload, ah as OctagonAlert, ai as Radio, aj as Globe, ak as FileTerminal, al as ChevronsUp, am as ChevronsDown, an as FileDiff, ao as RotateCcw, ap as GitCompareArrows, aq as ArrowUp, ar as ArrowDown, as as Ellipsis, at as CodeXml, au as Blocks, av as MousePointerClick, aw as FileText, ax as Rows3, ay as Columns2 } from "../_libs/lucide-react.mjs";
12
+ import { T as TriangleAlert, C as CircleCheck, X, I as Info, a as ChevronDown, b as Check, P as PanelRightOpen, c as PanelRightClose, S as Search, U as Upload, D as Download, F as FileBraces, R as RefreshCw, d as Trash2, e as Plus, B as BrainCircuit, L as LoaderCircle, f as Send, A as ArrowLeft, g as ChevronUp, h as Copy, i as ChevronsLeft, j as ChevronLeft, k as ChevronRight, l as ChevronsRight, m as Clapperboard, n as Flag, o as Siren, p as Timer, G as Gauge, q as Layers, r as FlaskConical, s as Sparkles, t as Activity, u as Beaker, N as Network, v as Terminal, w as Settings, M as Monitor, x as Rocket, y as PackageCheck, H as History, z as Scan, E as CircleAlert, J as ArrowUpRight, K as ArrowDownRight, O as Cpu, Q as FolderOpen, V as Bell, W as Clock3, Y as ShieldAlert, Z as EyeOff, _ as Eye, $ as ExternalLink, a0 as Clock, a1 as RotateCw, a2 as Pencil, a3 as MessageSquare, a4 as Zap, a5 as Wrench, a6 as Brain, a7 as CircleCheckBig, a8 as Minus, a9 as CircleQuestionMark, aa as Server, ab as Lock, ac as Wifi, ad as WifiOff, ae as CircleX, af as ShieldCheck, ag as Save, ah as FileSearch, ai as CloudUpload, aj as OctagonAlert, ak as Radio, al as Globe, am as FileTerminal, an as ChevronsUp, ao as ChevronsDown, ap as FileDiff, aq as RotateCcw, ar as GitCompareArrows, as as ArrowUp, at as ArrowDown, au as Ellipsis, av as CodeXml, aw as Blocks, ax as MousePointerClick, ay as FileText, az as Rows3, aA as Columns2 } from "../_libs/lucide-react.mjs";
13
13
  import { u as union, d as object, a as array, l as literal, n as number, c as boolean, b as string, _ as _enum } from "../_libs/zod.mjs";
14
14
  import { S as Slot } from "../_libs/radix-ui__react-slot.mjs";
15
15
  import { R as Root2$1, L as List, T as Trigger$2, C as Content$1 } from "../_libs/radix-ui__react-tabs.mjs";
@@ -389,12 +389,12 @@ async function fetchStreamingChunks(logId, signal) {
389
389
  return null;
390
390
  }
391
391
  }
392
- function isRecord$1(value) {
392
+ function isRecord(value) {
393
393
  return typeof value === "object" && value !== null && !Array.isArray(value);
394
394
  }
395
395
  function redactValue(value) {
396
396
  if (Array.isArray(value)) return value.map((item) => redactValue(item));
397
- if (!isRecord$1(value)) return value;
397
+ if (!isRecord(value)) return value;
398
398
  const result = {};
399
399
  for (const [key, item] of Object.entries(value)) {
400
400
  result[key] = SECRET_KEY_PATTERN.test(key) ? REDACTED : redactValue(item);
@@ -563,82 +563,6 @@ function formatTimestamp$2(iso, format) {
563
563
  function formatTimestampRange(startedAt, endedAt, format) {
564
564
  return `${formatTimestamp$2(startedAt, format)} - ${formatTimestamp$2(endedAt, format)}`;
565
565
  }
566
- function isRecord(value) {
567
- return typeof value === "object" && value !== null && !Array.isArray(value);
568
- }
569
- function normalizeAnthropicStopReason(value) {
570
- switch (value) {
571
- case "end_turn":
572
- case "tool_use":
573
- return value;
574
- case "max_tokens":
575
- return "length";
576
- default:
577
- return null;
578
- }
579
- }
580
- function normalizeOpenAIFinishReason(value) {
581
- switch (value) {
582
- case "stop":
583
- case "length":
584
- return value;
585
- case "max_tokens":
586
- return "length";
587
- default:
588
- return null;
589
- }
590
- }
591
- function isResponsesLengthLimitReason(value) {
592
- switch (value) {
593
- case "max_output_tokens":
594
- case "max_tokens":
595
- return true;
596
- default:
597
- return false;
598
- }
599
- }
600
- function extractStopReason(log) {
601
- if (log.responseText === null) return null;
602
- try {
603
- let json = JSON.parse(log.responseText);
604
- if (typeof json === "string") {
605
- json = JSON.parse(json);
606
- }
607
- if (!isRecord(json)) return null;
608
- if (typeof json.stop_reason === "string") {
609
- return normalizeAnthropicStopReason(json.stop_reason);
610
- }
611
- if (Array.isArray(json.choices)) {
612
- for (const choice of json.choices) {
613
- if (!isRecord(choice) || typeof choice.finish_reason !== "string") continue;
614
- const reason = normalizeOpenAIFinishReason(choice.finish_reason);
615
- if (reason !== null) return reason;
616
- }
617
- }
618
- if (Array.isArray(json.output)) {
619
- for (const item of json.output) {
620
- if (isRecord(item) && item.type === "function_call") {
621
- return "tool_use";
622
- }
623
- }
624
- if (json.status === "completed") {
625
- return "stop";
626
- }
627
- }
628
- if (json.status === "incomplete" && isRecord(json.incomplete_details)) {
629
- const reason = json.incomplete_details.reason;
630
- if (typeof reason === "string" && isResponsesLengthLimitReason(reason)) {
631
- return "length";
632
- }
633
- }
634
- return null;
635
- } catch {
636
- return null;
637
- }
638
- }
639
- function isTurnBoundary(stopReason) {
640
- return stopReason === "end_turn" || stopReason === "stop" || stopReason === "length";
641
- }
642
566
  function cn(...inputs) {
643
567
  return twMerge(clsx(inputs));
644
568
  }
@@ -2546,27 +2470,27 @@ function useCopyFeedback(text) {
2546
2470
  return { copied, copy };
2547
2471
  }
2548
2472
  const LazyCompareDrawer = reactExports.lazy(
2549
- () => import("./CompareDrawer-BV7dw1TN.mjs").then((m) => ({ default: m.CompareDrawer }))
2473
+ () => import("./CompareDrawer-hPTOTmyU.mjs").then((m) => ({ default: m.CompareDrawer }))
2550
2474
  );
2551
2475
  const LazyReplayDialog = reactExports.lazy(
2552
- () => import("./ReplayDialog-B7sBKxIO.mjs").then((m) => ({ default: m.ReplayDialog }))
2476
+ () => import("./ReplayDialog-t6QdwnZh.mjs").then((m) => ({ default: m.ReplayDialog }))
2553
2477
  );
2554
2478
  const LazyRequestAnatomy = reactExports.lazy(
2555
- () => import("./RequestAnatomy-s_9Veje2.mjs").then((m) => ({ default: m.RequestAnatomy }))
2479
+ () => import("./RequestAnatomy-BnvWxyac.mjs").then((m) => ({ default: m.RequestAnatomy }))
2556
2480
  );
2557
2481
  const LazyResponseView = reactExports.lazy(
2558
- () => import("./ResponseView-DsOFPCvF.mjs").then((m) => ({ default: m.ResponseView }))
2482
+ () => import("./ResponseView-BhhozRRl.mjs").then((m) => ({ default: m.ResponseView }))
2559
2483
  );
2560
2484
  const LazyStreamingChunkSequence = reactExports.lazy(
2561
- () => import("./StreamingChunkSequence-CyA1XtiF.mjs").then((m) => ({
2485
+ () => import("./StreamingChunkSequence-Dl_laTbX.mjs").then((m) => ({
2562
2486
  default: m.StreamingChunkSequence
2563
2487
  }))
2564
2488
  );
2565
2489
  const LazyJsonViewer = reactExports.lazy(
2566
- () => import("./json-viewer-BFV-xtRM.mjs").then((m) => ({ default: m.JsonViewer }))
2490
+ () => import("./json-viewer-D5Lh2yBU.mjs").then((m) => ({ default: m.JsonViewer }))
2567
2491
  );
2568
2492
  const LazyJsonViewerFromString = reactExports.lazy(
2569
- () => import("./json-viewer-BFV-xtRM.mjs").then((m) => ({ default: m.JsonViewerFromString }))
2493
+ () => import("./json-viewer-D5Lh2yBU.mjs").then((m) => ({ default: m.JsonViewerFromString }))
2570
2494
  );
2571
2495
  const HIGHLIGHT_DURATION_MS = 1200;
2572
2496
  const MAX_HIGHLIGHT_ATTEMPTS = 12;
@@ -11777,6 +11701,147 @@ function AgentLabDialog({ currentSessionId, logCount }) {
11777
11701
  ] })
11778
11702
  ] });
11779
11703
  }
11704
+ const DEFAULT_QUESTION = "Analyze the current Inspector session. What looks abnormal, slow, or likely to hang?";
11705
+ function providerSupportsPiAgent(provider) {
11706
+ return provider.openaiResponsesBaseUrl !== void 0 || provider.openaiBaseUrl !== void 0 || provider.anthropicBaseUrl !== void 0;
11707
+ }
11708
+ function providerProtocolLabel(provider) {
11709
+ if (provider.openaiResponsesBaseUrl !== void 0 && provider.openaiResponsesBaseUrl !== "") {
11710
+ return "Responses";
11711
+ }
11712
+ if (provider.openaiBaseUrl !== void 0 && provider.openaiBaseUrl !== "") {
11713
+ return "Chat";
11714
+ }
11715
+ return "Anthropic";
11716
+ }
11717
+ function sortProviderBySource(providers) {
11718
+ return providers.toSorted((left, right) => {
11719
+ const leftCompanyRank = left.source === "company" ? 0 : 1;
11720
+ const rightCompanyRank = right.source === "company" ? 0 : 1;
11721
+ if (leftCompanyRank !== rightCompanyRank) return leftCompanyRank - rightCompanyRank;
11722
+ return left.name.localeCompare(right.name);
11723
+ });
11724
+ }
11725
+ function PiAgentPanel({ currentSessionId, logCount }) {
11726
+ const { providers } = useProviders();
11727
+ const piProviders = reactExports.useMemo(
11728
+ () => sortProviderBySource(providers.filter(providerSupportsPiAgent)),
11729
+ [providers]
11730
+ );
11731
+ const [question, setQuestion] = reactExports.useState(DEFAULT_QUESTION);
11732
+ const [providerId, setProviderId] = reactExports.useState("__auto__");
11733
+ const [model, setModel] = reactExports.useState("__auto__");
11734
+ const [answer, setAnswer] = reactExports.useState("");
11735
+ const [status, setStatus] = reactExports.useState("");
11736
+ const [loading, setLoading] = reactExports.useState(false);
11737
+ const selectedProvider = piProviders.find((provider) => provider.id === providerId);
11738
+ const modelOptions = selectedProvider?.models ?? [];
11739
+ const canAsk = question.trim() !== "" && piProviders.length > 0 && !loading;
11740
+ const handleQuestionChange = (event) => {
11741
+ setQuestion(event.currentTarget.value);
11742
+ };
11743
+ const handleProviderChange = (value) => {
11744
+ setProviderId(value);
11745
+ setModel("__auto__");
11746
+ };
11747
+ const askPiAgent = () => {
11748
+ if (!canAsk) return;
11749
+ setLoading(true);
11750
+ setStatus("");
11751
+ setAnswer("");
11752
+ const body = {
11753
+ question: question.trim(),
11754
+ ...currentSessionId !== null ? { sessionId: currentSessionId } : {},
11755
+ ...providerId !== "__auto__" ? { providerId } : {},
11756
+ ...model !== "__auto__" ? { model } : {},
11757
+ logLimit: 24
11758
+ };
11759
+ void fetch("/api/pi-agent", {
11760
+ method: "POST",
11761
+ headers: { "content-type": "application/json" },
11762
+ body: JSON.stringify(body)
11763
+ }).then(async (response) => {
11764
+ const raw = await response.text();
11765
+ if (!response.ok) {
11766
+ setStatus(`Pi Agent failed: HTTP ${String(response.status)}`);
11767
+ setAnswer(raw);
11768
+ return;
11769
+ }
11770
+ const parsedJson = JSON.parse(raw);
11771
+ const parsed = PiAgentResponseSchema.safeParse(parsedJson);
11772
+ if (!parsed.success) {
11773
+ setStatus("Pi Agent returned an unexpected response.");
11774
+ setAnswer(raw);
11775
+ return;
11776
+ }
11777
+ setStatus(
11778
+ `${parsed.data.providerName} / ${parsed.data.model} / ${parsed.data.protocol} / ${String(
11779
+ parsed.data.logCount
11780
+ )} logs`
11781
+ );
11782
+ setAnswer(parsed.data.answer);
11783
+ }).catch((err) => {
11784
+ setStatus(err instanceof Error ? err.message : "Pi Agent request failed.");
11785
+ }).finally(() => {
11786
+ setLoading(false);
11787
+ });
11788
+ };
11789
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("section", { className: "rounded-md bg-black/20 px-3 py-3 shadow-[inset_0_0_0_1px_rgba(255,255,255,0.045)]", children: [
11790
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2", children: [
11791
+ /* @__PURE__ */ jsxRuntimeExports.jsx(BrainCircuit, { className: "size-4 text-cyan-200" }),
11792
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "min-w-0 flex-1", children: [
11793
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-xs font-semibold text-foreground", children: "Pi Agent" }),
11794
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-[11px] text-muted-foreground", children: currentSessionId === null ? "Inspector-wide analysis" : "Session analysis" })
11795
+ ] })
11796
+ ] }),
11797
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "mt-3 grid grid-cols-2 gap-2", children: [
11798
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(Select, { value: providerId, onValueChange: handleProviderChange, children: [
11799
+ /* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { className: "h-8 border-0 bg-black/25 text-xs shadow-[inset_0_0_0_1px_rgba(255,255,255,0.06)]", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, { placeholder: "Provider" }) }),
11800
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(SelectContent, { children: [
11801
+ /* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: "__auto__", children: "Auto provider" }),
11802
+ piProviders.map((provider) => /* @__PURE__ */ jsxRuntimeExports.jsxs(SelectItem, { value: provider.id, children: [
11803
+ provider.name,
11804
+ " / ",
11805
+ providerProtocolLabel(provider)
11806
+ ] }, provider.id))
11807
+ ] })
11808
+ ] }),
11809
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(Select, { value: model, onValueChange: setModel, children: [
11810
+ /* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { className: "h-8 border-0 bg-black/25 text-xs shadow-[inset_0_0_0_1px_rgba(255,255,255,0.06)]", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, { placeholder: "Model" }) }),
11811
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(SelectContent, { children: [
11812
+ /* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: "__auto__", children: "Auto model" }),
11813
+ modelOptions.map((modelName) => /* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: modelName, children: modelName }, modelName))
11814
+ ] })
11815
+ ] })
11816
+ ] }),
11817
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
11818
+ "textarea",
11819
+ {
11820
+ value: question,
11821
+ onChange: handleQuestionChange,
11822
+ className: "mt-2 min-h-24 w-full resize-y rounded-md bg-black/25 px-3 py-2 text-xs leading-5 text-foreground outline-none shadow-[inset_0_0_0_1px_rgba(255,255,255,0.06)] transition-colors placeholder:text-muted-foreground focus-visible:ring-1 focus-visible:ring-ring",
11823
+ placeholder: "Ask Pi Agent about this session..."
11824
+ }
11825
+ ),
11826
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(
11827
+ "button",
11828
+ {
11829
+ type: "button",
11830
+ onClick: askPiAgent,
11831
+ disabled: !canAsk,
11832
+ className: "mt-2 inline-flex h-8 w-full items-center justify-center gap-2 rounded-md bg-cyan-400/12 px-3 text-xs font-medium text-cyan-100 shadow-[inset_0_0_0_1px_rgba(103,232,249,0.18)] transition-colors hover:bg-cyan-400/18 disabled:cursor-not-allowed disabled:opacity-50",
11833
+ children: [
11834
+ loading ? /* @__PURE__ */ jsxRuntimeExports.jsx(LoaderCircle, { className: "size-3.5 animate-spin" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(Send, { className: "size-3.5" }),
11835
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: loading ? "Thinking..." : "Ask Pi" })
11836
+ ]
11837
+ }
11838
+ ),
11839
+ piProviders.length === 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "mt-2 text-[11px] leading-5 text-muted-foreground", children: "Configure a Provider with Responses, Chat, or Anthropic URL to enable Pi Agent." }),
11840
+ status !== "" && /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "mt-2 break-words font-mono text-[10px] text-cyan-100/70", children: status }),
11841
+ answer !== "" && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mt-3 max-h-64 overflow-y-auto whitespace-pre-wrap rounded-md bg-black/25 p-3 text-xs leading-5 text-foreground shadow-[inset_0_0_0_1px_rgba(255,255,255,0.05)]", children: answer }),
11842
+ logCount === 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "mt-2 text-[11px] leading-5 text-muted-foreground", children: "No logs are visible in this scope yet; Pi Agent can still answer Provider setup questions." })
11843
+ ] });
11844
+ }
11780
11845
  function computeCacheTrends(groups) {
11781
11846
  const result = /* @__PURE__ */ new Map();
11782
11847
  for (const group of groups) {
@@ -14815,9 +14880,8 @@ function ProxyViewer({
14815
14880
  const [importError, setImportError] = reactExports.useState(null);
14816
14881
  const [deleteDialogOpen, setDeleteDialogOpen] = reactExports.useState(false);
14817
14882
  const [deletingCurrentView, setDeletingCurrentView] = reactExports.useState(false);
14818
- const [detailsPanelCollapsed, setDetailsPanelCollapsed] = reactExports.useState(
14819
- readStoredDetailsPanelCollapsed
14820
- );
14883
+ const [detailsPanelCollapsed, setDetailsPanelCollapsed] = reactExports.useState(true);
14884
+ const [detailsPanelStorageLoaded, setDetailsPanelStorageLoaded] = reactExports.useState(false);
14821
14885
  const [comparePair, setComparePair] = reactExports.useState(null);
14822
14886
  const [crabEntrancePhase, setCrabEntrancePhase] = reactExports.useState(
14823
14887
  "hidden"
@@ -14855,11 +14919,16 @@ function ProxyViewer({
14855
14919
  };
14856
14920
  }, []);
14857
14921
  reactExports.useEffect(() => {
14922
+ setDetailsPanelCollapsed(readStoredDetailsPanelCollapsed());
14923
+ setDetailsPanelStorageLoaded(true);
14924
+ }, []);
14925
+ reactExports.useEffect(() => {
14926
+ if (!detailsPanelStorageLoaded) return;
14858
14927
  window.localStorage.setItem(
14859
14928
  DETAILS_PANEL_COLLAPSED_STORAGE_KEY,
14860
14929
  detailsPanelCollapsed ? "1" : "0"
14861
14930
  );
14862
- }, [detailsPanelCollapsed]);
14931
+ }, [detailsPanelCollapsed, detailsPanelStorageLoaded]);
14863
14932
  reactExports.useEffect(() => {
14864
14933
  if (pinnedSessionId === void 0) {
14865
14934
  document.title = "Agent Inspector";
@@ -15106,6 +15175,7 @@ function ProxyViewer({
15106
15175
  ),
15107
15176
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mt-1 text-[11px] text-muted-foreground", children: isPinnedSessionPage ? "Session workspace" : "Live workspace" })
15108
15177
  ] }) }),
15178
+ /* @__PURE__ */ jsxRuntimeExports.jsx(PiAgentPanel, { currentSessionId: labSessionId, logCount: logs.length }),
15109
15179
  hasSessionContext && sessionContextScope !== null && /* @__PURE__ */ jsxRuntimeExports.jsx(
15110
15180
  SessionContextBar,
15111
15181
  {
@@ -1,10 +1,19 @@
1
1
  import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
2
- import { u as useProviders, d as fetchJsonWithTimeout, D as Dialog, e as DialogContent, h as DialogHeader, i as DialogTitle, T as Tabs, j as TabsList, k as TabsTrigger, l as TabsContent, m as Button, n as TooltipProvider, o as Tooltip, p as TooltipTrigger, q as TooltipContent, s as dispatchLogFocusRequest, A as ApiTimeoutError } from "./ProxyViewerContainer-CcgfvaS4.mjs";
3
- import { ResponseView } from "./ResponseView-DsOFPCvF.mjs";
4
- import { C as CapturedLogSchema } from "./router-B2Q7vHPM.mjs";
2
+ import { u as useProviders, d as fetchJsonWithTimeout, D as Dialog, e as DialogContent, h as DialogHeader, i as DialogTitle, T as Tabs, j as TabsList, k as TabsTrigger, l as TabsContent, m as Button, n as TooltipProvider, o as Tooltip, p as TooltipTrigger, q as TooltipContent, s as dispatchLogFocusRequest, A as ApiTimeoutError } from "./ProxyViewerContainer-k0mFaufl.mjs";
3
+ import { ResponseView } from "./ResponseView-BhhozRRl.mjs";
4
+ import { C as CapturedLogSchema } from "./router-DaLFEeWW.mjs";
5
5
  import "../_libs/jszip.mjs";
6
+ import "node:fs";
7
+ import "node:buffer";
8
+ import "node:path";
9
+ import "node:crypto";
10
+ import "node:child_process";
11
+ import "node:url";
12
+ import "crypto";
13
+ import "node:util";
6
14
  import "../_libs/modelcontextprotocol__server.mjs";
7
- import { ao as RotateCcw, aA as Braces, aB as Minimize2 } from "../_libs/lucide-react.mjs";
15
+ import "node:os";
16
+ import { aq as RotateCcw, aC as Braces, aD as Minimize2 } from "../_libs/lucide-react.mjs";
8
17
  import { d as object, n as number, a as array, c as boolean, b as string } from "../_libs/zod.mjs";
9
18
  import "../_libs/swr.mjs";
10
19
  import "../_libs/use-sync-external-store.mjs";
@@ -24,7 +33,6 @@ import "../_libs/react-dom.mjs";
24
33
  import "util";
25
34
  import "async_hooks";
26
35
  import "stream";
27
- import "crypto";
28
36
  import "../_libs/radix-ui__react-slot.mjs";
29
37
  import "../_libs/@radix-ui/react-use-callback-ref+[...].mjs";
30
38
  import "../_libs/@radix-ui/react-use-escape-keydown+[...].mjs";
@@ -69,27 +77,20 @@ import "../_libs/tanstack__router-core.mjs";
69
77
  import "../_libs/cookie-es.mjs";
70
78
  import "../_libs/seroval.mjs";
71
79
  import "../_libs/seroval-plugins.mjs";
80
+ import "node:stream";
72
81
  import "../_libs/tanstack__history.mjs";
73
82
  import "../_libs/tiny-invariant.mjs";
74
83
  import "node:stream/web";
75
- import "node:stream";
76
84
  import "../_libs/isbot.mjs";
77
- import "node:fs";
78
85
  import "node:fs/promises";
79
86
  import "node:readline";
80
- import "node:buffer";
81
- import "node:path";
82
- import "node:crypto";
83
- import "node:child_process";
84
- import "node:url";
85
87
  import "../_libs/conf.mjs";
86
- import "node:util";
87
88
  import "node:process";
88
89
  import "node:assert";
89
90
  import "../_libs/dot-prop.mjs";
90
91
  import "../_libs/env-paths.mjs";
91
- import "node:os";
92
92
  import "../_libs/atomically.mjs";
93
+ import "node:events";
93
94
  import "../_libs/stubborn-fs.mjs";
94
95
  import "../_libs/stubborn-utils.mjs";
95
96
  import "../_libs/when-exit.mjs";
@@ -1,9 +1,18 @@
1
1
  import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
2
- import { u as useProviders, t as analyzeContextIntelligence, f as formatTokens, n as TooltipProvider, c as cn, o as Tooltip, p as TooltipTrigger, q as TooltipContent, S as SegmentBar, R as ROLE_COLOR_CLASSES, v as ANATOMY_ROLE_LABELS, w as formatContextWindowTokens, C as CONTEXT_USAGE_THRESHOLDS } from "./ProxyViewerContainer-CcgfvaS4.mjs";
3
- import "./router-B2Q7vHPM.mjs";
2
+ import { u as useProviders, t as analyzeContextIntelligence, f as formatTokens, n as TooltipProvider, c as cn, o as Tooltip, p as TooltipTrigger, q as TooltipContent, S as SegmentBar, R as ROLE_COLOR_CLASSES, v as ANATOMY_ROLE_LABELS, w as formatContextWindowTokens, C as CONTEXT_USAGE_THRESHOLDS } from "./ProxyViewerContainer-k0mFaufl.mjs";
3
+ import "./router-DaLFEeWW.mjs";
4
+ import "node:fs";
5
+ import "node:buffer";
6
+ import "node:path";
7
+ import "node:crypto";
8
+ import "node:child_process";
9
+ import "node:url";
10
+ import "crypto";
11
+ import "node:util";
4
12
  import "../_libs/modelcontextprotocol__server.mjs";
5
13
  import "../_libs/jszip.mjs";
6
- import { I as Info, a as ChevronDown, j as ChevronRight } from "../_libs/lucide-react.mjs";
14
+ import "node:os";
15
+ import { I as Info, a as ChevronDown, k as ChevronRight } from "../_libs/lucide-react.mjs";
7
16
  import "../_libs/swr.mjs";
8
17
  import "../_libs/use-sync-external-store.mjs";
9
18
  import "../_libs/dequal.mjs";
@@ -22,7 +31,6 @@ import "../_libs/react-dom.mjs";
22
31
  import "util";
23
32
  import "async_hooks";
24
33
  import "stream";
25
- import "crypto";
26
34
  import "../_libs/radix-ui__react-slot.mjs";
27
35
  import "../_libs/@radix-ui/react-use-callback-ref+[...].mjs";
28
36
  import "../_libs/@radix-ui/react-use-escape-keydown+[...].mjs";
@@ -67,27 +75,20 @@ import "../_libs/tanstack__router-core.mjs";
67
75
  import "../_libs/cookie-es.mjs";
68
76
  import "../_libs/seroval.mjs";
69
77
  import "../_libs/seroval-plugins.mjs";
78
+ import "node:stream";
70
79
  import "../_libs/tanstack__history.mjs";
71
80
  import "../_libs/tiny-invariant.mjs";
72
81
  import "node:stream/web";
73
- import "node:stream";
74
82
  import "../_libs/isbot.mjs";
75
- import "node:fs";
76
83
  import "node:fs/promises";
77
84
  import "node:readline";
78
- import "node:buffer";
79
- import "node:path";
80
- import "node:crypto";
81
- import "node:child_process";
82
- import "node:url";
83
85
  import "../_libs/conf.mjs";
84
- import "node:util";
85
86
  import "node:process";
86
87
  import "node:assert";
87
88
  import "../_libs/dot-prop.mjs";
88
89
  import "../_libs/env-paths.mjs";
89
- import "node:os";
90
90
  import "../_libs/atomically.mjs";
91
+ import "node:events";
91
92
  import "../_libs/stubborn-fs.mjs";
92
93
  import "../_libs/stubborn-utils.mjs";
93
94
  import "../_libs/when-exit.mjs";
@@ -1,9 +1,18 @@
1
1
  import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
2
- import { g as getLogFormatAdapter, f as formatTokens, c as cn, x as getStatusCategory, B as Badge, y as Collapsible, z as CollapsibleTrigger, E as CollapsibleContent, F as ScrollArea, G as LazyJsonViewer, H as safeJsonValue } from "./ProxyViewerContainer-CcgfvaS4.mjs";
3
- import { s as safeGetOwnProperty } from "./router-B2Q7vHPM.mjs";
2
+ import { g as getLogFormatAdapter, f as formatTokens, c as cn, x as getStatusCategory, B as Badge, y as Collapsible, z as CollapsibleTrigger, E as CollapsibleContent, F as ScrollArea, G as LazyJsonViewer, H as safeJsonValue } from "./ProxyViewerContainer-k0mFaufl.mjs";
3
+ import { s as safeGetOwnProperty } from "./router-DaLFEeWW.mjs";
4
4
  import "../_libs/jszip.mjs";
5
+ import "node:fs";
6
+ import "node:buffer";
7
+ import "node:path";
8
+ import "node:crypto";
9
+ import "node:child_process";
10
+ import "node:url";
11
+ import "crypto";
12
+ import "node:util";
5
13
  import "../_libs/modelcontextprotocol__server.mjs";
6
- import { a2 as Zap, T as TriangleAlert, aC as CircleStop, a4 as Brain, a as ChevronDown, j as ChevronRight, t as Terminal } from "../_libs/lucide-react.mjs";
14
+ import "node:os";
15
+ import { a4 as Zap, T as TriangleAlert, aE as CircleStop, a6 as Brain, a as ChevronDown, k as ChevronRight, v as Terminal } from "../_libs/lucide-react.mjs";
7
16
  import { R as Root } from "../_libs/radix-ui__react-separator.mjs";
8
17
  import "../_libs/swr.mjs";
9
18
  import "../_libs/use-sync-external-store.mjs";
@@ -23,7 +32,6 @@ import "../_libs/react-dom.mjs";
23
32
  import "util";
24
33
  import "async_hooks";
25
34
  import "stream";
26
- import "crypto";
27
35
  import "../_libs/radix-ui__react-slot.mjs";
28
36
  import "../_libs/@radix-ui/react-use-callback-ref+[...].mjs";
29
37
  import "../_libs/@radix-ui/react-use-escape-keydown+[...].mjs";
@@ -68,27 +76,20 @@ import "../_libs/tanstack__router-core.mjs";
68
76
  import "../_libs/cookie-es.mjs";
69
77
  import "../_libs/seroval.mjs";
70
78
  import "../_libs/seroval-plugins.mjs";
79
+ import "node:stream";
71
80
  import "../_libs/tanstack__history.mjs";
72
81
  import "../_libs/tiny-invariant.mjs";
73
82
  import "node:stream/web";
74
- import "node:stream";
75
83
  import "../_libs/isbot.mjs";
76
- import "node:fs";
77
84
  import "node:fs/promises";
78
85
  import "node:readline";
79
- import "node:buffer";
80
- import "node:path";
81
- import "node:crypto";
82
- import "node:child_process";
83
- import "node:url";
84
86
  import "../_libs/conf.mjs";
85
- import "node:util";
86
87
  import "node:process";
87
88
  import "node:assert";
88
89
  import "../_libs/dot-prop.mjs";
89
90
  import "../_libs/env-paths.mjs";
90
- import "node:os";
91
91
  import "../_libs/atomically.mjs";
92
+ import "node:events";
92
93
  import "../_libs/stubborn-fs.mjs";
93
94
  import "../_libs/stubborn-utils.mjs";
94
95
  import "../_libs/when-exit.mjs";