@tonyclaw/agent-inspector 3.0.29 → 3.0.30
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.
- package/.output/cli.js +791 -191
- package/.output/nitro.json +1 -1
- package/.output/public/assets/CompareDrawer-B6cXJohL.js +1 -0
- package/.output/public/assets/InspectorPet-mAzeGmEE.js +4108 -0
- package/.output/public/assets/ProxyViewerContainer-CkFWv_Nm.js +126 -0
- package/.output/public/assets/{ReplayDialog-CctnITbt.js → ReplayDialog-DodiTL6E.js} +1 -1
- package/.output/public/assets/{RequestAnatomy-BrN0RBbL.js → RequestAnatomy-B3IauToI.js} +1 -1
- package/.output/public/assets/ResponseView-Hn-5ordK.js +3 -0
- package/.output/public/assets/StreamingChunkSequence-vLDOVQM_.js +1 -0
- package/.output/public/assets/_sessionId-BFH4TOaI.js +1 -0
- package/.output/public/assets/{_sessionId-DKM91udC.js → _sessionId-Cj_HIFZx.js} +1 -1
- package/.output/public/assets/{index-Bq-nqolG.js → index-Bmj2lcWE.js} +1 -1
- package/.output/public/assets/index-CgJj-HBC.css +1 -0
- package/.output/public/assets/index-Ch7uqnCT.js +1 -0
- package/.output/public/assets/index-DkDdKvLl.js +76 -0
- package/.output/public/assets/{index-DPiESBo2.js → index-ZlhqCrSg.js} +6 -6
- package/.output/public/assets/{json-viewer-CfaDJwx8.js → json-viewer-BdrnVQu-.js} +1 -1
- package/.output/public/assets/jszip.min-CS_nt_o1.js +2 -0
- package/.output/public/assets/qwen-mMn3f5ul.webp +0 -0
- package/.output/server/_libs/jszip.mjs +35 -9
- package/.output/server/_libs/lucide-react.mjs +86 -86
- package/.output/server/_libs/radix-ui__react-dialog.mjs +3 -3
- package/.output/server/_libs/tanstack__react-router.mjs +1 -1
- package/.output/server/{_sessionId-CwGXPD4C.mjs → _sessionId-C5S3pGZd.mjs} +15 -15
- package/.output/server/_sessionId-g6D69lKq.mjs +81 -0
- package/.output/server/_ssr/{CompareDrawer-R_P1-VNr.mjs → CompareDrawer-CqUmGHal.mjs} +138 -103
- package/.output/server/_ssr/InspectorPet-DI0UJd01.mjs +925 -0
- package/.output/server/_ssr/{ProxyViewerContainer-DUgxRNbj.mjs → ProxyViewerContainer-CvsUmbJ3.mjs} +1157 -1613
- package/.output/server/_ssr/{ReplayDialog-De9wKKzS.mjs → ReplayDialog-DS48dpFG.mjs} +18 -18
- package/.output/server/_ssr/{RequestAnatomy-Db4MxUYo.mjs → RequestAnatomy-DxYVQU1C.mjs} +58 -58
- package/.output/server/_ssr/{ResponseView-8rDXOiNB.mjs → ResponseView-BLXW73eq.mjs} +60 -60
- package/.output/server/_ssr/{StreamingChunkSequence-N9teZHkA.mjs → StreamingChunkSequence-DD0iFuy0.mjs} +16 -16
- package/.output/server/_ssr/{index-D4DvByuW.mjs → index-B10LIaK0.mjs} +15 -15
- package/.output/server/_ssr/index-RHVJnU2p.mjs +81 -0
- package/.output/server/_ssr/index.mjs +2 -2
- package/.output/server/_ssr/{json-viewer-BjoHRbjS.mjs → json-viewer-LDu2XBaK.mjs} +58 -58
- package/.output/server/_ssr/{router-BYlePDj8.mjs → router-GKvrwifJ.mjs} +9005 -6488
- package/.output/server/_tanstack-start-manifest_v-Df2n4mbT.mjs +4 -0
- package/.output/server/index.mjs +103 -75
- package/.output/workers/logFinalizer.worker.js +16908 -0
- package/.output/workers/sessionWorkerEntry.js +16904 -0
- package/README.md +21 -5
- package/package.json +6 -2
- package/src/assets/logos/qwen.webp +0 -0
- package/src/cli.ts +85 -10
- package/src/components/OnboardingBanner.tsx +41 -21
- package/src/components/ProxyViewer.tsx +198 -269
- package/src/components/ProxyViewerContainer.tsx +128 -17
- package/src/components/ecosystem/AgentLabDialog.tsx +166 -19
- package/src/components/errors/SafeErrorBoundary.tsx +201 -0
- package/src/components/pi-agent/PiAgentPanel.tsx +4 -1
- package/src/components/providers/ImportWizardDialog.tsx +18 -42
- package/src/components/providers/ProviderLogo.tsx +1 -1
- package/src/components/providers/ProvidersPanel.tsx +8 -5
- package/src/components/providers/SettingsDialog.tsx +34 -11
- package/src/components/proxy-viewer/ApplicationBar.tsx +63 -0
- package/src/components/proxy-viewer/CompareDrawer.tsx +92 -49
- package/src/components/proxy-viewer/LiveConnectionStatus.tsx +186 -0
- package/src/components/proxy-viewer/LogEntry.tsx +283 -275
- package/src/components/proxy-viewer/RawExportWarning.tsx +77 -0
- package/src/components/proxy-viewer/SessionLoadProgressBar.tsx +61 -0
- package/src/components/proxy-viewer/ThreadConnector.tsx +16 -1
- package/src/components/proxy-viewer/TurnGroup.tsx +13 -2
- package/src/components/proxy-viewer/accessibility.ts +8 -0
- package/src/components/proxy-viewer/lazy.ts +4 -0
- package/src/components/proxy-viewer/liveConnectionState.ts +158 -0
- package/src/components/proxy-viewer/proxyViewerLogic.ts +10 -0
- package/src/components/proxy-viewer/viewerState.ts +2 -6
- package/src/components/ui/select.tsx +1 -1
- package/src/components/ui/tabs.tsx +3 -3
- package/src/components/ui/transient-toast.tsx +1 -1
- package/src/lib/apiClient.ts +17 -2
- package/src/lib/ecosystemContract.ts +34 -0
- package/src/lib/export-logs.ts +1 -1
- package/src/lib/providerContract.ts +70 -4
- package/src/lib/providerImportContract.ts +27 -0
- package/src/lib/providerModelMetadata.ts +16 -7
- package/src/lib/resourceLimits.ts +152 -0
- package/src/lib/safeDiagnostic.ts +38 -0
- package/src/lib/useProviders.ts +4 -4
- package/src/mcp/server.ts +39 -6
- package/src/mcp/toolHandlers.ts +131 -4
- package/src/proxy/chunkStorage.ts +20 -6
- package/src/proxy/config.ts +20 -6
- package/src/proxy/dataDir.ts +3 -0
- package/src/proxy/ecosystemExecutionConfirmation.ts +114 -0
- package/src/proxy/ecosystemExecutionRoute.ts +116 -0
- package/src/proxy/ecosystemTasks.ts +48 -0
- package/src/proxy/evidenceExporter.ts +23 -9
- package/src/proxy/groupEvidenceExporter.ts +26 -5
- package/src/proxy/groupStore.ts +13 -3
- package/src/proxy/handler.ts +103 -20
- package/src/proxy/identityProxy.ts +333 -14
- package/src/proxy/logFinalizer.ts +73 -6
- package/src/proxy/logImportUpload.ts +128 -0
- package/src/proxy/logImporter.ts +321 -70
- package/src/proxy/logIndex.ts +16 -6
- package/src/proxy/logger.ts +294 -41
- package/src/proxy/privateDataPath.ts +183 -0
- package/src/proxy/providerScanStore.ts +87 -0
- package/src/proxy/providerSecretStore.ts +58 -19
- package/src/proxy/providers.ts +175 -58
- package/src/proxy/rawStreamCapture.ts +66 -5
- package/src/proxy/runStore.ts +13 -3
- package/src/proxy/runtimeAdmission.ts +52 -0
- package/src/proxy/runtimeHealth.ts +206 -0
- package/src/proxy/runtimeShutdown.ts +75 -0
- package/src/proxy/sessionArchive.ts +15 -2
- package/src/proxy/sessionProcess.ts +19 -0
- package/src/proxy/sessionRuntime.ts +7 -0
- package/src/proxy/shutdownCoordinator.ts +90 -0
- package/src/proxy/sqliteLogIndex.ts +18 -2
- package/src/proxy/store.ts +18 -2
- package/src/routes/__root.tsx +18 -1
- package/src/routes/api/alerts.summary.ts +12 -8
- package/src/routes/api/alerts.ts +27 -9
- package/src/routes/api/ecosystem.packages.$packageId.help.ts +3 -8
- package/src/routes/api/ecosystem.packages.$packageId.install.ts +3 -8
- package/src/routes/api/ecosystem.packages.$packageId.runner-presets.ts +3 -11
- package/src/routes/api/ecosystem.packages.$packageId.upgrade.ts +3 -8
- package/src/routes/api/ecosystem.recipes.$recipeId.run.ts +3 -8
- package/src/routes/api/health.ts +9 -2
- package/src/routes/api/knowledge.project-context.ts +11 -0
- package/src/routes/api/knowledge.search.ts +33 -2
- package/src/routes/api/logs.$id.body.ts +16 -2
- package/src/routes/api/logs.import.ts +7 -18
- package/src/routes/api/logs.stream.ts +147 -69
- package/src/routes/api/logs.ts +55 -14
- package/src/routes/api/providers.$providerId.model-metadata.ts +22 -4
- package/src/routes/api/providers.$providerId.ts +37 -6
- package/src/routes/api/providers.export.ts +34 -16
- package/src/routes/api/providers.import.ts +42 -8
- package/src/routes/api/providers.scan.ts +13 -8
- package/src/routes/api/providers.ts +36 -5
- package/src/routes/api/runs.ts +12 -12
- package/src/routes/api/sessions.ts +15 -8
- package/src/routes/index.tsx +6 -0
- package/src/routes/livez.ts +13 -0
- package/src/routes/readyz.ts +18 -0
- package/src/routes/session/$sessionId.tsx +6 -0
- package/styles/globals.css +19 -3
- package/.output/public/assets/CompareDrawer-Cb5ccPeX.js +0 -1
- package/.output/public/assets/ProxyViewerContainer-COBe5GTT.js +0 -4234
- package/.output/public/assets/ResponseView-Cqq87lX_.js +0 -3
- package/.output/public/assets/StreamingChunkSequence-CnTa9mCr.js +0 -1
- package/.output/public/assets/index-DTLNVcgc.js +0 -76
- package/.output/public/assets/index-DliqmwUw.css +0 -1
- package/.output/public/assets/qwen-CONDcHqt.png +0 -0
- package/.output/server/_tanstack-start-manifest_v-DMCA8KK3.mjs +0 -4
- package/src/assets/logos/mcp.png +0 -0
- package/src/assets/logos/qwen.png +0 -0
- package/src/components/ui/mcp-logo.tsx +0 -20
|
@@ -1,29 +1,30 @@
|
|
|
1
1
|
import { j as jsxRuntimeExports, r as reactExports } from "./_libs/react.mjs";
|
|
2
|
-
import { P as ProxyViewerContainer } from "./_ssr/ProxyViewerContainer-
|
|
3
|
-
import { R as Route$K } from "./_ssr/router-
|
|
4
|
-
import "./_libs/jszip.mjs";
|
|
5
|
-
import "./_libs/react-dom.mjs";
|
|
6
|
-
import "node:fs";
|
|
7
|
-
import "node:buffer";
|
|
8
|
-
import "node:path";
|
|
2
|
+
import { P as ProxyViewerContainer } from "./_ssr/ProxyViewerContainer-CvsUmbJ3.mjs";
|
|
3
|
+
import { R as Route$K } from "./_ssr/router-GKvrwifJ.mjs";
|
|
9
4
|
import "node:crypto";
|
|
5
|
+
import "node:path";
|
|
6
|
+
import "node:fs";
|
|
10
7
|
import "node:child_process";
|
|
8
|
+
import "node:buffer";
|
|
11
9
|
import "node:url";
|
|
12
10
|
import "crypto";
|
|
13
11
|
import "node:util";
|
|
14
12
|
import "node:net";
|
|
15
13
|
import "./_libs/modelcontextprotocol__server.mjs";
|
|
14
|
+
import "./_libs/jszip.mjs";
|
|
16
15
|
import "node:os";
|
|
17
16
|
import "./_libs/swr.mjs";
|
|
18
17
|
import "./_libs/use-sync-external-store.mjs";
|
|
19
18
|
import "./_libs/dequal.mjs";
|
|
20
|
-
import "./_libs/clsx.mjs";
|
|
21
|
-
import "./_libs/tailwind-merge.mjs";
|
|
22
|
-
import "./_libs/class-variance-authority.mjs";
|
|
23
19
|
import "./_libs/tanstack__react-virtual.mjs";
|
|
20
|
+
import "./_libs/react-dom.mjs";
|
|
21
|
+
import "util";
|
|
22
|
+
import "async_hooks";
|
|
23
|
+
import "stream";
|
|
24
24
|
import "./_libs/tanstack__virtual-core.mjs";
|
|
25
|
+
import "./_libs/class-variance-authority.mjs";
|
|
26
|
+
import "./_libs/clsx.mjs";
|
|
25
27
|
import "./_libs/diff.mjs";
|
|
26
|
-
import "./_libs/three.mjs";
|
|
27
28
|
import "./_libs/lucide-react.mjs";
|
|
28
29
|
import "./_libs/zod.mjs";
|
|
29
30
|
import "./_libs/radix-ui__react-select.mjs";
|
|
@@ -77,7 +78,9 @@ import "node:stream";
|
|
|
77
78
|
import "./_libs/tanstack__history.mjs";
|
|
78
79
|
import "node:stream/web";
|
|
79
80
|
import "./_libs/isbot.mjs";
|
|
81
|
+
import "./_libs/tailwind-merge.mjs";
|
|
80
82
|
import "node:fs/promises";
|
|
83
|
+
import "node:worker_threads";
|
|
81
84
|
import "node:readline";
|
|
82
85
|
import "./_libs/conf.mjs";
|
|
83
86
|
import "node:process";
|
|
@@ -99,10 +102,7 @@ import "./_libs/mimic-function.mjs";
|
|
|
99
102
|
import "./_libs/semver.mjs";
|
|
100
103
|
import "./_libs/uint8array-extras.mjs";
|
|
101
104
|
import "node:dns/promises";
|
|
102
|
-
import "node:
|
|
103
|
-
import "util";
|
|
104
|
-
import "async_hooks";
|
|
105
|
-
import "stream";
|
|
105
|
+
import "node:assert/strict";
|
|
106
106
|
import "./_libs/readable-stream.mjs";
|
|
107
107
|
import "events";
|
|
108
108
|
import "node:string_decoder";
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { j as jsxRuntimeExports } from "./_libs/react.mjs";
|
|
2
|
+
import { S as SafeRouteError } from "./_ssr/router-GKvrwifJ.mjs";
|
|
3
|
+
import "node:crypto";
|
|
4
|
+
import "node:path";
|
|
5
|
+
import "node:fs";
|
|
6
|
+
import "node:child_process";
|
|
7
|
+
import "node:buffer";
|
|
8
|
+
import "node:url";
|
|
9
|
+
import "crypto";
|
|
10
|
+
import "node:util";
|
|
11
|
+
import "node:net";
|
|
12
|
+
import "./_libs/modelcontextprotocol__server.mjs";
|
|
13
|
+
import "./_libs/jszip.mjs";
|
|
14
|
+
import "node:os";
|
|
15
|
+
import "./_libs/tanstack__react-router.mjs";
|
|
16
|
+
import "./_libs/tanstack__router-core.mjs";
|
|
17
|
+
import "./_libs/cookie-es.mjs";
|
|
18
|
+
import "./_libs/seroval.mjs";
|
|
19
|
+
import "./_libs/seroval-plugins.mjs";
|
|
20
|
+
import "node:stream";
|
|
21
|
+
import "./_libs/tanstack__history.mjs";
|
|
22
|
+
import "node:stream/web";
|
|
23
|
+
import "./_libs/react-dom.mjs";
|
|
24
|
+
import "util";
|
|
25
|
+
import "async_hooks";
|
|
26
|
+
import "stream";
|
|
27
|
+
import "./_libs/isbot.mjs";
|
|
28
|
+
import "./_libs/swr.mjs";
|
|
29
|
+
import "./_libs/use-sync-external-store.mjs";
|
|
30
|
+
import "./_libs/dequal.mjs";
|
|
31
|
+
import "./_libs/class-variance-authority.mjs";
|
|
32
|
+
import "./_libs/clsx.mjs";
|
|
33
|
+
import "./_libs/tailwind-merge.mjs";
|
|
34
|
+
import "node:fs/promises";
|
|
35
|
+
import "node:worker_threads";
|
|
36
|
+
import "node:readline";
|
|
37
|
+
import "./_libs/conf.mjs";
|
|
38
|
+
import "node:process";
|
|
39
|
+
import "node:assert";
|
|
40
|
+
import "./_libs/dot-prop.mjs";
|
|
41
|
+
import "./_libs/env-paths.mjs";
|
|
42
|
+
import "./_libs/atomically.mjs";
|
|
43
|
+
import "node:events";
|
|
44
|
+
import "./_libs/stubborn-fs.mjs";
|
|
45
|
+
import "./_libs/stubborn-utils.mjs";
|
|
46
|
+
import "./_libs/when-exit.mjs";
|
|
47
|
+
import "./_libs/ajv.mjs";
|
|
48
|
+
import "./_libs/fast-deep-equal.mjs";
|
|
49
|
+
import "./_libs/json-schema-traverse.mjs";
|
|
50
|
+
import "./_libs/fast-uri.mjs";
|
|
51
|
+
import "./_libs/ajv-formats.mjs";
|
|
52
|
+
import "./_libs/debounce-fn.mjs";
|
|
53
|
+
import "./_libs/mimic-function.mjs";
|
|
54
|
+
import "./_libs/semver.mjs";
|
|
55
|
+
import "./_libs/uint8array-extras.mjs";
|
|
56
|
+
import "node:dns/promises";
|
|
57
|
+
import "node:assert/strict";
|
|
58
|
+
import "./_libs/zod.mjs";
|
|
59
|
+
import "./_libs/readable-stream.mjs";
|
|
60
|
+
import "events";
|
|
61
|
+
import "node:string_decoder";
|
|
62
|
+
import "./_libs/process-nextick-args.mjs";
|
|
63
|
+
import "./_libs/isarray.mjs";
|
|
64
|
+
import "./_libs/safe-buffer.mjs";
|
|
65
|
+
import "buffer";
|
|
66
|
+
import "./_libs/core-util-is.mjs";
|
|
67
|
+
import "./_libs/inherits.mjs";
|
|
68
|
+
import "./_libs/util-deprecate.mjs";
|
|
69
|
+
import "./_libs/lie.mjs";
|
|
70
|
+
import "./_libs/immediate.mjs";
|
|
71
|
+
import "./_libs/setimmediate.mjs";
|
|
72
|
+
import "./_libs/pako.mjs";
|
|
73
|
+
function SessionRouteError({
|
|
74
|
+
error,
|
|
75
|
+
reset
|
|
76
|
+
}) {
|
|
77
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(SafeRouteError, { error, reset, scope: "session-route" });
|
|
78
|
+
}
|
|
79
|
+
export {
|
|
80
|
+
SessionRouteError as errorComponent
|
|
81
|
+
};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
|
|
2
|
-
import {
|
|
3
|
-
import "./
|
|
4
|
-
import "node:fs";
|
|
5
|
-
import "node:buffer";
|
|
6
|
-
import "node:path";
|
|
2
|
+
import { m as cn, x as formatTokens, y as copyTextToClipboard } from "./router-GKvrwifJ.mjs";
|
|
3
|
+
import { g as getLogFormatAdapter, r as resolveLogFormat, a as getConversationId, B as Badge, L as LazyJsonViewerFromString } from "./ProxyViewerContainer-CvsUmbJ3.mjs";
|
|
7
4
|
import "node:crypto";
|
|
5
|
+
import "node:path";
|
|
6
|
+
import "node:fs";
|
|
8
7
|
import "node:child_process";
|
|
8
|
+
import "node:buffer";
|
|
9
9
|
import "node:url";
|
|
10
10
|
import "crypto";
|
|
11
11
|
import "node:util";
|
|
@@ -13,19 +13,68 @@ import "node:net";
|
|
|
13
13
|
import "../_libs/modelcontextprotocol__server.mjs";
|
|
14
14
|
import "../_libs/jszip.mjs";
|
|
15
15
|
import "node:os";
|
|
16
|
+
import { X, aD as Rows3, aE as Columns2, ad as Minus, H as Plus, a0 as Pencil, t as ChevronRight, aF as Equal, d as Check, l as Copy } from "../_libs/lucide-react.mjs";
|
|
17
|
+
import "../_libs/tanstack__react-router.mjs";
|
|
18
|
+
import "../_libs/tanstack__router-core.mjs";
|
|
19
|
+
import "../_libs/cookie-es.mjs";
|
|
20
|
+
import "../_libs/seroval.mjs";
|
|
21
|
+
import "../_libs/seroval-plugins.mjs";
|
|
22
|
+
import "node:stream";
|
|
23
|
+
import "../_libs/tanstack__history.mjs";
|
|
24
|
+
import "node:stream/web";
|
|
16
25
|
import "../_libs/react-dom.mjs";
|
|
17
|
-
import
|
|
26
|
+
import "util";
|
|
27
|
+
import "async_hooks";
|
|
28
|
+
import "stream";
|
|
29
|
+
import "../_libs/isbot.mjs";
|
|
18
30
|
import "../_libs/swr.mjs";
|
|
19
31
|
import "../_libs/use-sync-external-store.mjs";
|
|
20
32
|
import "../_libs/dequal.mjs";
|
|
33
|
+
import "../_libs/class-variance-authority.mjs";
|
|
21
34
|
import "../_libs/clsx.mjs";
|
|
22
35
|
import "../_libs/tailwind-merge.mjs";
|
|
23
|
-
import "
|
|
36
|
+
import "node:fs/promises";
|
|
37
|
+
import "node:worker_threads";
|
|
38
|
+
import "node:readline";
|
|
39
|
+
import "../_libs/conf.mjs";
|
|
40
|
+
import "node:process";
|
|
41
|
+
import "node:assert";
|
|
42
|
+
import "../_libs/dot-prop.mjs";
|
|
43
|
+
import "../_libs/env-paths.mjs";
|
|
44
|
+
import "../_libs/atomically.mjs";
|
|
45
|
+
import "node:events";
|
|
46
|
+
import "../_libs/stubborn-fs.mjs";
|
|
47
|
+
import "../_libs/stubborn-utils.mjs";
|
|
48
|
+
import "../_libs/when-exit.mjs";
|
|
49
|
+
import "../_libs/ajv.mjs";
|
|
50
|
+
import "../_libs/fast-deep-equal.mjs";
|
|
51
|
+
import "../_libs/json-schema-traverse.mjs";
|
|
52
|
+
import "../_libs/fast-uri.mjs";
|
|
53
|
+
import "../_libs/ajv-formats.mjs";
|
|
54
|
+
import "../_libs/debounce-fn.mjs";
|
|
55
|
+
import "../_libs/mimic-function.mjs";
|
|
56
|
+
import "../_libs/semver.mjs";
|
|
57
|
+
import "../_libs/uint8array-extras.mjs";
|
|
58
|
+
import "node:dns/promises";
|
|
59
|
+
import "node:assert/strict";
|
|
60
|
+
import "../_libs/zod.mjs";
|
|
61
|
+
import "../_libs/readable-stream.mjs";
|
|
62
|
+
import "events";
|
|
63
|
+
import "node:string_decoder";
|
|
64
|
+
import "../_libs/process-nextick-args.mjs";
|
|
65
|
+
import "../_libs/isarray.mjs";
|
|
66
|
+
import "../_libs/safe-buffer.mjs";
|
|
67
|
+
import "buffer";
|
|
68
|
+
import "../_libs/core-util-is.mjs";
|
|
69
|
+
import "../_libs/inherits.mjs";
|
|
70
|
+
import "../_libs/util-deprecate.mjs";
|
|
71
|
+
import "../_libs/lie.mjs";
|
|
72
|
+
import "../_libs/immediate.mjs";
|
|
73
|
+
import "../_libs/setimmediate.mjs";
|
|
74
|
+
import "../_libs/pako.mjs";
|
|
24
75
|
import "../_libs/tanstack__react-virtual.mjs";
|
|
25
76
|
import "../_libs/tanstack__virtual-core.mjs";
|
|
26
77
|
import "../_libs/diff.mjs";
|
|
27
|
-
import "../_libs/three.mjs";
|
|
28
|
-
import "../_libs/zod.mjs";
|
|
29
78
|
import "../_libs/radix-ui__react-select.mjs";
|
|
30
79
|
import "../_libs/radix-ui__number.mjs";
|
|
31
80
|
import "../_libs/radix-ui__primitive.mjs";
|
|
@@ -68,55 +117,6 @@ import "../_libs/@radix-ui/react-use-is-hydrated+[...].mjs";
|
|
|
68
117
|
import "../_libs/radix-ui__react-tooltip.mjs";
|
|
69
118
|
import "../_libs/radix-ui__react-collapsible.mjs";
|
|
70
119
|
import "../_libs/radix-ui__react-scroll-area.mjs";
|
|
71
|
-
import "../_libs/tanstack__react-router.mjs";
|
|
72
|
-
import "../_libs/tanstack__router-core.mjs";
|
|
73
|
-
import "../_libs/cookie-es.mjs";
|
|
74
|
-
import "../_libs/seroval.mjs";
|
|
75
|
-
import "../_libs/seroval-plugins.mjs";
|
|
76
|
-
import "node:stream";
|
|
77
|
-
import "../_libs/tanstack__history.mjs";
|
|
78
|
-
import "node:stream/web";
|
|
79
|
-
import "../_libs/isbot.mjs";
|
|
80
|
-
import "node:fs/promises";
|
|
81
|
-
import "node:readline";
|
|
82
|
-
import "../_libs/conf.mjs";
|
|
83
|
-
import "node:process";
|
|
84
|
-
import "node:assert";
|
|
85
|
-
import "../_libs/dot-prop.mjs";
|
|
86
|
-
import "../_libs/env-paths.mjs";
|
|
87
|
-
import "../_libs/atomically.mjs";
|
|
88
|
-
import "node:events";
|
|
89
|
-
import "../_libs/stubborn-fs.mjs";
|
|
90
|
-
import "../_libs/stubborn-utils.mjs";
|
|
91
|
-
import "../_libs/when-exit.mjs";
|
|
92
|
-
import "../_libs/ajv.mjs";
|
|
93
|
-
import "../_libs/fast-deep-equal.mjs";
|
|
94
|
-
import "../_libs/json-schema-traverse.mjs";
|
|
95
|
-
import "../_libs/fast-uri.mjs";
|
|
96
|
-
import "../_libs/ajv-formats.mjs";
|
|
97
|
-
import "../_libs/debounce-fn.mjs";
|
|
98
|
-
import "../_libs/mimic-function.mjs";
|
|
99
|
-
import "../_libs/semver.mjs";
|
|
100
|
-
import "../_libs/uint8array-extras.mjs";
|
|
101
|
-
import "node:dns/promises";
|
|
102
|
-
import "node:worker_threads";
|
|
103
|
-
import "util";
|
|
104
|
-
import "async_hooks";
|
|
105
|
-
import "stream";
|
|
106
|
-
import "../_libs/readable-stream.mjs";
|
|
107
|
-
import "events";
|
|
108
|
-
import "node:string_decoder";
|
|
109
|
-
import "../_libs/process-nextick-args.mjs";
|
|
110
|
-
import "../_libs/isarray.mjs";
|
|
111
|
-
import "../_libs/safe-buffer.mjs";
|
|
112
|
-
import "buffer";
|
|
113
|
-
import "../_libs/core-util-is.mjs";
|
|
114
|
-
import "../_libs/inherits.mjs";
|
|
115
|
-
import "../_libs/util-deprecate.mjs";
|
|
116
|
-
import "../_libs/lie.mjs";
|
|
117
|
-
import "../_libs/immediate.mjs";
|
|
118
|
-
import "../_libs/setimmediate.mjs";
|
|
119
|
-
import "../_libs/pako.mjs";
|
|
120
120
|
const ROOT_PATH = "";
|
|
121
121
|
function formatPath(segments) {
|
|
122
122
|
if (segments.length === 0) return ROOT_PATH;
|
|
@@ -287,6 +287,8 @@ function previewNode(node, maxLen = 80) {
|
|
|
287
287
|
if (s.length > maxLen) s = `${s.slice(0, maxLen - 1)}…`;
|
|
288
288
|
return s;
|
|
289
289
|
}
|
|
290
|
+
const COMPARE_RESPONSIVE_HEADER_CLASS_NAME = "flex flex-col gap-3 border-b border-border px-3 py-3 sm:flex-row sm:items-start sm:gap-4 sm:px-4";
|
|
291
|
+
const COMPARE_RESPONSIVE_SPLIT_CLASS_NAME = "grid min-w-0 grid-cols-1 gap-x-2 gap-y-0.5 px-3 py-2 text-xs md:grid-cols-[200px_minmax(0,1fr)_minmax(0,1fr)]";
|
|
290
292
|
function nodeToJsonString(node, indent = 2) {
|
|
291
293
|
return JSON.stringify(nodeToJsonValue(node), null, indent);
|
|
292
294
|
}
|
|
@@ -362,23 +364,23 @@ function groupContiguousEquals(ops) {
|
|
|
362
364
|
const KIND_VISUAL = {
|
|
363
365
|
added: {
|
|
364
366
|
icon: Plus,
|
|
365
|
-
accent: "text-
|
|
366
|
-
bg: "bg-
|
|
367
|
-
border: "border-l-
|
|
367
|
+
accent: "text-status-success",
|
|
368
|
+
bg: "bg-status-success/5 hover:bg-status-success/10",
|
|
369
|
+
border: "border-l-status-success",
|
|
368
370
|
label: "ADDED"
|
|
369
371
|
},
|
|
370
372
|
removed: {
|
|
371
373
|
icon: Minus,
|
|
372
|
-
accent: "text-
|
|
373
|
-
bg: "bg-
|
|
374
|
-
border: "border-l-
|
|
374
|
+
accent: "text-status-danger",
|
|
375
|
+
bg: "bg-status-danger/5 hover:bg-status-danger/10",
|
|
376
|
+
border: "border-l-status-danger",
|
|
375
377
|
label: "REMOVED"
|
|
376
378
|
},
|
|
377
379
|
changed: {
|
|
378
380
|
icon: Pencil,
|
|
379
|
-
accent: "text-
|
|
380
|
-
bg: "bg-
|
|
381
|
-
border: "border-l-
|
|
381
|
+
accent: "text-status-watch",
|
|
382
|
+
bg: "bg-status-watch/5 hover:bg-status-watch/10",
|
|
383
|
+
border: "border-l-status-watch",
|
|
382
384
|
label: "CHANGED"
|
|
383
385
|
},
|
|
384
386
|
equal: {
|
|
@@ -449,15 +451,15 @@ function UnifiedOpRow({
|
|
|
449
451
|
const preview = op.kind === "changed" ? [
|
|
450
452
|
{
|
|
451
453
|
text: previewNode(op.left, 400),
|
|
452
|
-
tone: "text-
|
|
454
|
+
tone: "text-status-danger line-through"
|
|
453
455
|
},
|
|
454
|
-
{ text: previewNode(op.right, 400), tone: "text-
|
|
456
|
+
{ text: previewNode(op.right, 400), tone: "text-status-success" }
|
|
455
457
|
] : op.kind === "removed" ? [
|
|
456
458
|
{
|
|
457
459
|
text: previewNode(op.value, 400),
|
|
458
|
-
tone: "text-
|
|
460
|
+
tone: "text-status-danger line-through"
|
|
459
461
|
}
|
|
460
|
-
] : op.kind === "added" ? [{ text: previewNode(op.value, 400), tone: "text-
|
|
462
|
+
] : op.kind === "added" ? [{ text: previewNode(op.value, 400), tone: "text-status-success" }] : [{ text: previewNode(op.value, 400), tone: "text-muted-foreground" }];
|
|
461
463
|
const justCopied = copiedPath === op.path && op.path !== "";
|
|
462
464
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
463
465
|
"div",
|
|
@@ -520,7 +522,7 @@ function UnifiedOpRow({
|
|
|
520
522
|
},
|
|
521
523
|
className: cn(
|
|
522
524
|
"shrink-0 p-1 rounded transition-colors cursor-pointer inline-flex items-center justify-center",
|
|
523
|
-
justCopied ? "text-
|
|
525
|
+
justCopied ? "text-status-success" : "text-muted-foreground/50 hover:text-foreground hover:bg-muted"
|
|
524
526
|
),
|
|
525
527
|
"aria-label": justCopied ? "Copied" : "Copy",
|
|
526
528
|
title: justCopied ? "Copied!" : "Copy",
|
|
@@ -557,12 +559,12 @@ function ExpandedSubtree({ op }) {
|
|
|
557
559
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "pl-5 mt-2 text-xs text-muted-foreground/70 italic", children: "Primitive values are shown inline above." });
|
|
558
560
|
}
|
|
559
561
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "pl-5 mt-2 grid grid-cols-1 md:grid-cols-2 gap-2", children: [
|
|
560
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "border border-
|
|
561
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-[10px] uppercase tracking-wider text-
|
|
562
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "rounded border border-status-danger/30 bg-status-danger/5 p-2", children: [
|
|
563
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mb-1 text-[10px] uppercase tracking-wider text-status-danger", children: "Old" }),
|
|
562
564
|
/* @__PURE__ */ jsxRuntimeExports.jsx(LazyJsonStringView, { text: nodeToJsonString(op.left), defaultExpandDepth: 0 })
|
|
563
565
|
] }),
|
|
564
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "border border-
|
|
565
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-[10px] uppercase tracking-wider text-
|
|
566
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "rounded border border-status-success/30 bg-status-success/5 p-2", children: [
|
|
567
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mb-1 text-[10px] uppercase tracking-wider text-status-success", children: "New" }),
|
|
566
568
|
/* @__PURE__ */ jsxRuntimeExports.jsx(LazyJsonStringView, { text: nodeToJsonString(op.right), defaultExpandDepth: 0 })
|
|
567
569
|
] })
|
|
568
570
|
] });
|
|
@@ -586,7 +588,7 @@ function SummaryChips({
|
|
|
586
588
|
disabled: counts.removed === 0,
|
|
587
589
|
className: cn(
|
|
588
590
|
"inline-flex items-center gap-1 px-2 py-0.5 rounded-full border cursor-pointer transition-colors",
|
|
589
|
-
counts.removed > 0 ? "border-
|
|
591
|
+
counts.removed > 0 ? "border-status-danger/40 bg-status-danger/10 text-status-danger hover:bg-status-danger/20" : "border-border text-muted-foreground/40 cursor-not-allowed"
|
|
590
592
|
),
|
|
591
593
|
title: counts.removed > 0 ? "Jump to first removed" : "No removals",
|
|
592
594
|
children: [
|
|
@@ -604,7 +606,7 @@ function SummaryChips({
|
|
|
604
606
|
disabled: counts.added === 0,
|
|
605
607
|
className: cn(
|
|
606
608
|
"inline-flex items-center gap-1 px-2 py-0.5 rounded-full border cursor-pointer transition-colors",
|
|
607
|
-
counts.added > 0 ? "border-
|
|
609
|
+
counts.added > 0 ? "border-status-success/40 bg-status-success/10 text-status-success hover:bg-status-success/20" : "border-border text-muted-foreground/40 cursor-not-allowed"
|
|
608
610
|
),
|
|
609
611
|
title: counts.added > 0 ? "Jump to first added" : "No additions",
|
|
610
612
|
children: [
|
|
@@ -622,7 +624,7 @@ function SummaryChips({
|
|
|
622
624
|
disabled: counts.changed === 0,
|
|
623
625
|
className: cn(
|
|
624
626
|
"inline-flex items-center gap-1 px-2 py-0.5 rounded-full border cursor-pointer transition-colors",
|
|
625
|
-
counts.changed > 0 ? "border-
|
|
627
|
+
counts.changed > 0 ? "border-status-watch/40 bg-status-watch/10 text-status-watch hover:bg-status-watch/20" : "border-border text-muted-foreground/40 cursor-not-allowed"
|
|
626
628
|
),
|
|
627
629
|
title: counts.changed > 0 ? "Jump to first changed" : "No changes",
|
|
628
630
|
children: [
|
|
@@ -689,23 +691,23 @@ function SideSummary({
|
|
|
689
691
|
variant: "outline",
|
|
690
692
|
className: cn(
|
|
691
693
|
"text-[10px] px-1.5 py-0 h-5 font-mono shrink-0",
|
|
692
|
-
side === "left" ? "border-
|
|
694
|
+
side === "left" ? "border-status-danger/40 text-status-danger" : "border-status-success/40 text-status-success"
|
|
693
695
|
),
|
|
694
696
|
children: side === "left" ? "← Left" : "Right →"
|
|
695
697
|
}
|
|
696
698
|
),
|
|
697
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "font-mono text-
|
|
699
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "font-mono text-status-info", title: `Log ID ${String(log.id)}`, children: [
|
|
698
700
|
"#",
|
|
699
701
|
displayNumber
|
|
700
702
|
] }),
|
|
701
|
-
log.model !== null && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "font-mono leading-snug text-muted-foreground", children: log.model })
|
|
703
|
+
log.model !== null && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "min-w-0 truncate font-mono leading-snug text-muted-foreground", children: log.model })
|
|
702
704
|
] }),
|
|
703
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-3
|
|
704
|
-
log.cacheCreationInputTokens !== null && log.cacheCreationInputTokens > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-
|
|
705
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1 font-mono text-muted-foreground", children: [
|
|
706
|
+
log.cacheCreationInputTokens !== null && log.cacheCreationInputTokens > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-status-success", children: [
|
|
705
707
|
"KV Cache +",
|
|
706
708
|
formatTokens(log.cacheCreationInputTokens)
|
|
707
709
|
] }),
|
|
708
|
-
log.cacheReadInputTokens !== null && log.cacheReadInputTokens > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-
|
|
710
|
+
log.cacheReadInputTokens !== null && log.cacheReadInputTokens > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-status-accent", children: [
|
|
709
711
|
"KV Cache ~",
|
|
710
712
|
formatTokens(log.cacheReadInputTokens)
|
|
711
713
|
] }),
|
|
@@ -724,6 +726,9 @@ function CompareDrawer({
|
|
|
724
726
|
rightDisplayNumber,
|
|
725
727
|
onClose
|
|
726
728
|
}) {
|
|
729
|
+
const panelRef = reactExports.useRef(null);
|
|
730
|
+
const closeButtonRef = reactExports.useRef(null);
|
|
731
|
+
const previousActiveElementRef = reactExports.useRef(null);
|
|
727
732
|
const ops = reactExports.useMemo(() => {
|
|
728
733
|
const leftRequest = getLogFormatAdapter(resolveLogFormat(left)).analyzeRequest(
|
|
729
734
|
left.rawRequestBody
|
|
@@ -812,6 +817,8 @@ function CompareDrawer({
|
|
|
812
817
|
}
|
|
813
818
|
};
|
|
814
819
|
reactExports.useEffect(() => {
|
|
820
|
+
previousActiveElementRef.current = document.activeElement instanceof HTMLElement ? document.activeElement : null;
|
|
821
|
+
closeButtonRef.current?.focus();
|
|
815
822
|
const onKey = (e) => {
|
|
816
823
|
if (e.key === "Escape") onClose();
|
|
817
824
|
};
|
|
@@ -821,8 +828,32 @@ function CompareDrawer({
|
|
|
821
828
|
return () => {
|
|
822
829
|
document.removeEventListener("keydown", onKey);
|
|
823
830
|
document.body.style.overflow = prevOverflow;
|
|
831
|
+
previousActiveElementRef.current?.focus();
|
|
824
832
|
};
|
|
825
833
|
}, [onClose]);
|
|
834
|
+
const handlePanelKeyDown = (event) => {
|
|
835
|
+
event.stopPropagation();
|
|
836
|
+
if (event.key !== "Tab") return;
|
|
837
|
+
const panel = panelRef.current;
|
|
838
|
+
if (panel === null) return;
|
|
839
|
+
const focusable = Array.from(
|
|
840
|
+
panel.querySelectorAll(
|
|
841
|
+
'button:not([disabled]), [href], input:not([disabled]), [tabindex]:not([tabindex="-1"])'
|
|
842
|
+
)
|
|
843
|
+
);
|
|
844
|
+
const first = focusable[0];
|
|
845
|
+
const last = focusable[focusable.length - 1];
|
|
846
|
+
if (first === void 0 || last === void 0) return;
|
|
847
|
+
if (event.shiftKey && document.activeElement === first) {
|
|
848
|
+
event.preventDefault();
|
|
849
|
+
last.focus();
|
|
850
|
+
return;
|
|
851
|
+
}
|
|
852
|
+
if (!event.shiftKey && document.activeElement === last) {
|
|
853
|
+
event.preventDefault();
|
|
854
|
+
first.focus();
|
|
855
|
+
}
|
|
856
|
+
};
|
|
826
857
|
const sameSession = getConversationId(left) === getConversationId(right);
|
|
827
858
|
const allEqual = ops.length === 1 && ops[0]?.kind === "equal";
|
|
828
859
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
@@ -846,23 +877,25 @@ function CompareDrawer({
|
|
|
846
877
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
847
878
|
"div",
|
|
848
879
|
{
|
|
880
|
+
ref: panelRef,
|
|
849
881
|
className: cn(
|
|
850
|
-
"relative bg-background border-l border-border shadow-xl",
|
|
882
|
+
"relative overflow-x-hidden bg-background border-l border-border shadow-xl",
|
|
851
883
|
"w-full md:w-[70vw] max-w-[1100px] flex flex-col h-full"
|
|
852
884
|
),
|
|
853
885
|
onClick: (e) => e.stopPropagation(),
|
|
854
|
-
onKeyDown:
|
|
886
|
+
onKeyDown: handlePanelKeyDown,
|
|
855
887
|
children: [
|
|
856
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className:
|
|
857
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex-1
|
|
888
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: COMPARE_RESPONSIVE_HEADER_CLASS_NAME, children: [
|
|
889
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid min-w-0 flex-1 grid-cols-1 gap-3 sm:grid-cols-2 sm:gap-4", children: [
|
|
858
890
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SideSummary, { log: left, side: "left", displayNumber: leftDisplayNumber }),
|
|
859
891
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SideSummary, { log: right, side: "right", displayNumber: rightDisplayNumber })
|
|
860
892
|
] }),
|
|
861
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2
|
|
893
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex w-full shrink-0 items-center justify-between gap-2 sm:w-auto sm:justify-start", children: [
|
|
862
894
|
/* @__PURE__ */ jsxRuntimeExports.jsx(ModeToggle, { mode, onChange: setMode }),
|
|
863
895
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
864
896
|
"button",
|
|
865
897
|
{
|
|
898
|
+
ref: closeButtonRef,
|
|
866
899
|
type: "button",
|
|
867
900
|
onClick: onClose,
|
|
868
901
|
"aria-label": "Close",
|
|
@@ -872,7 +905,7 @@ function CompareDrawer({
|
|
|
872
905
|
)
|
|
873
906
|
] })
|
|
874
907
|
] }),
|
|
875
|
-
!sameSession && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "px-4 py-1.5 text-xs text-
|
|
908
|
+
!sameSession && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "border-b border-border bg-warning/10 px-4 py-1.5 text-xs text-foreground", children: "Heads up: the two selected logs are from different sessions." }),
|
|
876
909
|
allEqual ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-1 min-h-0 overflow-y-auto flex items-center justify-center text-muted-foreground text-sm", children: "The two Request payloads are identical." }) : /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
877
910
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SummaryChips, { counts, onJumpTo: jumpToKind }),
|
|
878
911
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref: bodyRef, className: "flex-1 min-h-0 overflow-y-auto", children: mode === "unified" ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "px-3 py-2 space-y-0.5", children: grouped.map((g, i) => {
|
|
@@ -925,8 +958,8 @@ function SplitBody({
|
|
|
925
958
|
leftDisplayNumber,
|
|
926
959
|
rightDisplayNumber
|
|
927
960
|
}) {
|
|
928
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
|
|
929
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid grid-cols-
|
|
961
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { "data-compare-layout": "responsive-split", className: COMPARE_RESPONSIVE_SPLIT_CLASS_NAME, children: [
|
|
962
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "col-span-1 mb-2 grid grid-cols-1 gap-x-2 gap-y-1 border-b border-border pb-2 text-[10px] uppercase tracking-wider text-muted-foreground md:col-span-3 md:grid-cols-[200px_minmax(0,1fr)_minmax(0,1fr)]", children: [
|
|
930
963
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: "Path" }),
|
|
931
964
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { title: `Log ID ${String(left.id)}`, children: [
|
|
932
965
|
"Left (Log #",
|
|
@@ -944,7 +977,7 @@ function SplitBody({
|
|
|
944
977
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
945
978
|
"div",
|
|
946
979
|
{
|
|
947
|
-
className: "col-span-
|
|
980
|
+
className: "col-span-1 px-2 py-1 text-xs text-muted-foreground/60 md:col-span-3",
|
|
948
981
|
children: [
|
|
949
982
|
g.ops.length,
|
|
950
983
|
" equal siblings collapsed — switch to Unified to expand"
|
|
@@ -958,7 +991,7 @@ function SplitBody({
|
|
|
958
991
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
959
992
|
"div",
|
|
960
993
|
{
|
|
961
|
-
className: "col-span-
|
|
994
|
+
className: "col-span-1 grid min-w-0 grid-cols-1 gap-x-2 gap-y-1 px-2 py-0.5 text-muted-foreground md:col-span-3 md:grid-cols-[200px_minmax(0,1fr)_minmax(0,1fr)]",
|
|
962
995
|
children: [
|
|
963
996
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "font-mono text-xs truncate", title: op.path, children: op.path }),
|
|
964
997
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "font-mono text-xs break-all opacity-60", children: previewNode(op.value, 200) }),
|
|
@@ -972,10 +1005,10 @@ function SplitBody({
|
|
|
972
1005
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
973
1006
|
"div",
|
|
974
1007
|
{
|
|
975
|
-
className: "col-span-
|
|
1008
|
+
className: "col-span-1 rounded border-l-2 border-l-status-success bg-status-success/5 px-2 py-1 text-xs md:col-span-3",
|
|
976
1009
|
children: [
|
|
977
1010
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "font-mono text-xs text-muted-foreground mb-0.5", children: op.path }),
|
|
978
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "font-mono break-all text-
|
|
1011
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "font-mono break-all text-status-success", children: [
|
|
979
1012
|
"+ ",
|
|
980
1013
|
previewNode(op.value, 400)
|
|
981
1014
|
] })
|
|
@@ -988,10 +1021,10 @@ function SplitBody({
|
|
|
988
1021
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
989
1022
|
"div",
|
|
990
1023
|
{
|
|
991
|
-
className: "col-span-
|
|
1024
|
+
className: "col-span-1 rounded border-l-2 border-l-status-danger bg-status-danger/5 px-2 py-1 text-xs md:col-span-3",
|
|
992
1025
|
children: [
|
|
993
1026
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "font-mono text-xs text-muted-foreground mb-0.5", children: op.path }),
|
|
994
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "font-mono break-all text-
|
|
1027
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "font-mono break-all text-status-danger line-through", children: [
|
|
995
1028
|
"− ",
|
|
996
1029
|
previewNode(op.value, 400)
|
|
997
1030
|
] })
|
|
@@ -1003,12 +1036,12 @@ function SplitBody({
|
|
|
1003
1036
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
1004
1037
|
"div",
|
|
1005
1038
|
{
|
|
1006
|
-
className: "col-span-
|
|
1039
|
+
className: "col-span-1 rounded border-l-2 border-l-status-watch bg-status-watch/5 px-2 py-1 text-xs md:col-span-3",
|
|
1007
1040
|
children: [
|
|
1008
1041
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "font-mono text-xs text-muted-foreground mb-1", children: op.path }),
|
|
1009
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid grid-cols-
|
|
1010
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "font-mono text-
|
|
1011
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "font-mono text-
|
|
1042
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid grid-cols-1 gap-2 sm:grid-cols-2", children: [
|
|
1043
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "font-mono break-all text-status-danger line-through", children: previewNode(op.left, 400) }),
|
|
1044
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "font-mono break-all text-status-success", children: previewNode(op.right, 400) })
|
|
1012
1045
|
] })
|
|
1013
1046
|
]
|
|
1014
1047
|
},
|
|
@@ -1018,5 +1051,7 @@ function SplitBody({
|
|
|
1018
1051
|
] });
|
|
1019
1052
|
}
|
|
1020
1053
|
export {
|
|
1054
|
+
COMPARE_RESPONSIVE_HEADER_CLASS_NAME,
|
|
1055
|
+
COMPARE_RESPONSIVE_SPLIT_CLASS_NAME,
|
|
1021
1056
|
CompareDrawer
|
|
1022
1057
|
};
|