@tonyclaw/agent-inspector 3.0.18 → 3.0.20
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 +1257 -506
- package/.output/nitro.json +3 -3
- package/.output/public/assets/CompareDrawer-CV7rBBty.js +1 -0
- package/.output/public/assets/ProxyViewerContainer-CqRfBWJ3.js +127 -0
- package/.output/public/assets/ReplayDialog-yDeF-z9y.js +1 -0
- package/.output/public/assets/RequestAnatomy-BXxKNdgk.js +1 -0
- package/.output/public/assets/ResponseView-BIYNgUNB.js +3 -0
- package/.output/public/assets/StreamingChunkSequence-C1faiChu.js +1 -0
- package/.output/public/assets/_sessionId-B34PrfCQ.js +1 -0
- package/.output/public/assets/index-B3YOj8-_.css +1 -0
- package/.output/public/assets/index-BLwqIxup.js +12 -0
- package/.output/public/assets/{index-ClQ7Vi3J.js → index-DOspyaW6.js} +1 -1
- package/.output/public/assets/index-DT476lno.js +1 -0
- package/.output/public/assets/json-viewer-C1S08J_2.js +1 -0
- package/.output/server/_chunks/ssr-renderer.mjs +18 -2
- package/.output/server/_libs/@radix-ui/react-dismissable-layer+[...].mjs +165 -31
- package/.output/server/_libs/@radix-ui/react-use-callback-ref+[...].mjs +1 -1
- package/.output/server/_libs/@radix-ui/react-use-controllable-state+[...].mjs +2 -2
- package/.output/server/_libs/@radix-ui/react-use-is-hydrated+[...].mjs +28 -1
- package/.output/server/_libs/mistralai__mistralai.mjs +1 -1
- package/.output/server/_libs/modelcontextprotocol__server.mjs +11571 -8127
- package/.output/server/_libs/radix-ui__primitive.mjs +1 -1
- package/.output/server/_libs/radix-ui__react-collapsible.mjs +1 -1
- package/.output/server/_libs/radix-ui__react-collection.mjs +8 -8
- package/.output/server/_libs/radix-ui__react-compose-refs.mjs +0 -1
- package/.output/server/_libs/radix-ui__react-context.mjs +4 -18
- package/.output/server/_libs/radix-ui__react-dialog.mjs +41 -88
- package/.output/server/_libs/radix-ui__react-focus-guards.mjs +15 -5
- package/.output/server/_libs/radix-ui__react-focus-scope.mjs +6 -2
- package/.output/server/_libs/radix-ui__react-id.mjs +3 -3
- package/.output/server/_libs/radix-ui__react-popper.mjs +62 -8
- package/.output/server/_libs/radix-ui__react-portal.mjs +2 -2
- package/.output/server/_libs/radix-ui__react-presence.mjs +50 -5
- package/.output/server/_libs/radix-ui__react-roving-focus.mjs +15 -4
- package/.output/server/_libs/radix-ui__react-scroll-area.mjs +30 -20
- package/.output/server/_libs/radix-ui__react-select.mjs +167 -123
- package/.output/server/_libs/radix-ui__react-slot.mjs +74 -41
- package/.output/server/_libs/radix-ui__react-tabs.mjs +6 -1
- package/.output/server/_libs/radix-ui__react-tooltip.mjs +6 -3
- package/.output/server/_libs/react-dom.mjs +13 -15
- package/.output/server/_libs/react.mjs +45 -45
- package/.output/server/_libs/srvx.mjs +409 -53
- package/.output/server/_libs/swr.mjs +10 -2
- package/.output/server/_libs/tailwind-merge.mjs +286 -41
- package/.output/server/_libs/tanstack__history.mjs +9 -13
- package/.output/server/_libs/tanstack__react-router.mjs +788 -1092
- package/.output/server/_libs/tanstack__react-store.mjs +1 -1
- package/.output/server/_libs/tanstack__react-virtual.mjs +82 -7
- package/.output/server/_libs/tanstack__router-core.mjs +1841 -2060
- package/.output/server/_libs/tanstack__virtual-core.mjs +116 -45
- package/.output/server/_libs/use-sync-external-store.mjs +1 -1
- package/.output/server/_libs/zod-to-json-schema.mjs +1 -1
- package/.output/server/_libs/zod.mjs +5085 -200
- package/.output/server/{_sessionId-Bi3ZIrqT.mjs → _sessionId-CmoBbtKT.mjs} +30 -32
- package/.output/server/_ssr/{CompareDrawer-BYZS_hCR.mjs → CompareDrawer-BsXnVK4e.mjs} +29 -31
- package/.output/server/_ssr/{ProxyViewerContainer-BE4umfVs.mjs → ProxyViewerContainer-D-_7pyfx.mjs} +54 -52
- package/.output/server/_ssr/{ReplayDialog-BlID2ZH4.mjs → ReplayDialog-deDQA2M5.mjs} +30 -32
- package/.output/server/_ssr/{RequestAnatomy-CGJ2lkzT.mjs → RequestAnatomy-CX-cCRdX.mjs} +29 -31
- package/.output/server/_ssr/{ResponseView-DDjcGf7M.mjs → ResponseView-D0LJR1qj.mjs} +29 -31
- package/.output/server/_ssr/{StreamingChunkSequence-G7B8M5G2.mjs → StreamingChunkSequence-CJRECetE.mjs} +29 -31
- package/.output/server/_ssr/empty-plugin-adapters-BFgPZ6_d.mjs +6 -0
- package/.output/server/_ssr/{index-ClQ9FvRJ.mjs → index-CYWOXS4d.mjs} +31 -33
- package/.output/server/_ssr/index.mjs +1102 -784
- package/.output/server/_ssr/{json-viewer-CFbpkiBJ.mjs → json-viewer-CCneYiCn.mjs} +29 -31
- package/.output/server/_ssr/{router-Cq8LEvhE.mjs → router-D-PAN8IK.mjs} +182 -67
- package/.output/server/_tanstack-start-manifest_v-CVZ9yh4R.mjs +4 -0
- package/.output/server/index.mjs +74 -92
- package/README.md +4 -4
- package/package.json +17 -8
- package/src/cli/onboard.ts +1 -1
- package/src/cli.ts +2 -2
- package/src/components/clients/ClientLogo.tsx +5 -1
- package/src/components/proxy-viewer/RequestToolsPanel.tsx +1 -0
- package/src/components/proxy-viewer/ResponseView.tsx +1 -0
- package/src/components/proxy-viewer/StreamingChunkSequence.tsx +1 -0
- package/src/components/proxy-viewer/TurnGroup.tsx +1 -0
- package/src/components/proxy-viewer/anatomy/SegmentBar.tsx +1 -0
- package/src/components/proxy-viewer/formats/anthropic/ContentBlocks.tsx +4 -0
- package/src/components/proxy-viewer/formats/anthropic/ResponseView.tsx +1 -0
- package/src/components/proxy-viewer/formats/openai/ResponseView.tsx +2 -0
- package/src/components/ui/dialog.tsx +1 -1
- package/src/components/ui/json-viewer.tsx +2 -0
- package/src/components/ui/select.tsx +1 -1
- package/src/contracts/json.ts +7 -2
- package/src/lib/providerContract.ts +25 -5
- package/src/mcp/server.ts +12 -3
- package/src/mcp/toolHandlers.ts +6 -1
- package/src/proxy/handler.ts +17 -7
- package/src/proxy/logFinalizer.ts +76 -8
- package/src/proxy/logIndex.ts +16 -32
- package/src/proxy/providers.ts +22 -1
- package/src/proxy/sessionProcess.ts +15 -1
- package/src/proxy/upstream.ts +4 -2
- package/src/router.tsx +9 -0
- package/.output/public/assets/CompareDrawer-Daj03-RL.js +0 -1
- package/.output/public/assets/ProxyViewerContainer-BLCRQtU_.js +0 -106
- package/.output/public/assets/ReplayDialog-5FR5crdo.js +0 -1
- package/.output/public/assets/RequestAnatomy-DF0hHdQY.js +0 -1
- package/.output/public/assets/ResponseView-BwkMSsUa.js +0 -3
- package/.output/public/assets/StreamingChunkSequence-CKeUd58x.js +0 -1
- package/.output/public/assets/_sessionId-CThgXa41.js +0 -1
- package/.output/public/assets/index-BHXN1Fsx.css +0 -1
- package/.output/public/assets/index-gm3A0idN.js +0 -1
- package/.output/public/assets/json-viewer-BA-W-PZq.js +0 -1
- package/.output/public/assets/main-BnRC1932.js +0 -18
- package/.output/server/_libs/@radix-ui/react-use-escape-keydown+[...].mjs +0 -17
- package/.output/server/_libs/cfworker__json-schema.mjs +0 -1
- package/.output/server/_libs/tiny-invariant.mjs +0 -12
- package/.output/server/_libs/tiny-warning.mjs +0 -5
- package/.output/server/_tanstack-start-manifest_v-p7J0QCMh.mjs +0 -4
|
@@ -188,6 +188,11 @@ const observeWindowOffset = (instance, cb) => observeOffset(
|
|
|
188
188
|
(win) => instance.options.horizontal ? win.scrollX : win.scrollY
|
|
189
189
|
);
|
|
190
190
|
const measureElement = (element, entry, instance) => {
|
|
191
|
+
if (instance.options.useCachedMeasurements) {
|
|
192
|
+
const index = instance.indexFromElement(element);
|
|
193
|
+
const key = instance.options.getItemKey(index);
|
|
194
|
+
return instance.itemSizeCache.get(key) ?? instance.options.estimateSize(index);
|
|
195
|
+
}
|
|
191
196
|
if (entry == null ? void 0 : entry.borderBoxSize) {
|
|
192
197
|
const box = entry.borderBoxSize[0];
|
|
193
198
|
if (box) {
|
|
@@ -197,6 +202,14 @@ const measureElement = (element, entry, instance) => {
|
|
|
197
202
|
return size;
|
|
198
203
|
}
|
|
199
204
|
}
|
|
205
|
+
if (!entry) {
|
|
206
|
+
const index = instance.indexFromElement(element);
|
|
207
|
+
const key = instance.options.getItemKey(index);
|
|
208
|
+
const cachedSize = instance.itemSizeCache.get(key);
|
|
209
|
+
if (cachedSize !== void 0) {
|
|
210
|
+
return cachedSize;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
200
213
|
return element[instance.options.horizontal ? "offsetWidth" : "offsetHeight"];
|
|
201
214
|
};
|
|
202
215
|
const scrollWithAdjustments = (offset, {
|
|
@@ -324,7 +337,8 @@ class Virtualizer {
|
|
|
324
337
|
isRtl: false,
|
|
325
338
|
useScrollendEvent: false,
|
|
326
339
|
useAnimationFrameWithResizeObserver: false,
|
|
327
|
-
laneAssignmentMode: "estimate"
|
|
340
|
+
laneAssignmentMode: "estimate",
|
|
341
|
+
useCachedMeasurements: false
|
|
328
342
|
};
|
|
329
343
|
for (const key in opts2) {
|
|
330
344
|
const v = opts2[key];
|
|
@@ -333,6 +347,7 @@ class Virtualizer {
|
|
|
333
347
|
const prevOptions = this.options;
|
|
334
348
|
let anchor = null;
|
|
335
349
|
let followOnAppend = null;
|
|
350
|
+
let edgeKeysChanged = false;
|
|
336
351
|
if (prevOptions !== void 0 && prevOptions.enabled && merged.enabled && merged.anchorTo === "end" && this.scrollElement !== null) {
|
|
337
352
|
const prevCount = prevOptions.count;
|
|
338
353
|
const nextCount = merged.count;
|
|
@@ -342,6 +357,7 @@ class Virtualizer {
|
|
|
342
357
|
const didCountChange = nextCount !== prevCount;
|
|
343
358
|
const didEdgeKeysChange = didCountChange || prevCount > 0 && nextCount > 0 && (merged.getItemKey(0) !== prevFirstKey || merged.getItemKey(nextCount - 1) !== prevLastKey);
|
|
344
359
|
if (didEdgeKeysChange) {
|
|
360
|
+
edgeKeysChanged = true;
|
|
345
361
|
const item = prevCount > 0 ? this.getVirtualItemForOffset(this.getScrollOffset()) ?? measurements[0] : null;
|
|
346
362
|
if (item) {
|
|
347
363
|
anchor = [item.key, this.getScrollOffset() - item.start];
|
|
@@ -353,11 +369,38 @@ class Virtualizer {
|
|
|
353
369
|
}
|
|
354
370
|
}
|
|
355
371
|
this.options = merged;
|
|
356
|
-
if (
|
|
372
|
+
if (edgeKeysChanged) {
|
|
373
|
+
this.pendingMin = 0;
|
|
374
|
+
this.itemSizeCacheVersion++;
|
|
375
|
+
}
|
|
376
|
+
let anchorResolved = false;
|
|
377
|
+
let anchorDelta = 0;
|
|
378
|
+
if (anchor && this.scrollOffset !== null) {
|
|
379
|
+
const [anchorKey, anchorOffset] = anchor;
|
|
380
|
+
const newMeasurements = this.getMeasurements();
|
|
381
|
+
const { count, getItemKey } = this.options;
|
|
382
|
+
let idx = 0;
|
|
383
|
+
while (idx < count && getItemKey(idx) !== anchorKey) {
|
|
384
|
+
idx++;
|
|
385
|
+
}
|
|
386
|
+
if (idx < count) {
|
|
387
|
+
const anchorItem = newMeasurements[idx];
|
|
388
|
+
if (anchorItem) {
|
|
389
|
+
const newOffset = anchorItem.start + anchorOffset;
|
|
390
|
+
if (newOffset !== this.scrollOffset) {
|
|
391
|
+
anchorDelta = newOffset - this.scrollOffset;
|
|
392
|
+
this.scrollOffset = newOffset;
|
|
393
|
+
anchorResolved = true;
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
if (anchorResolved || followOnAppend) {
|
|
357
399
|
this.pendingScrollAnchor = [
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
followOnAppend
|
|
400
|
+
anchorResolved ? anchor[0] : null,
|
|
401
|
+
anchorResolved ? anchor[1] : 0,
|
|
402
|
+
followOnAppend,
|
|
403
|
+
anchorDelta
|
|
361
404
|
];
|
|
362
405
|
}
|
|
363
406
|
};
|
|
@@ -430,12 +473,16 @@ class Virtualizer {
|
|
|
430
473
|
);
|
|
431
474
|
this.unsubs.push(
|
|
432
475
|
this.options.observeElementOffset(this, (offset, isScrolling) => {
|
|
476
|
+
if (isScrolling && this._intendedScrollOffset === null && offset === this.scrollOffset) {
|
|
477
|
+
return;
|
|
478
|
+
}
|
|
433
479
|
if (this._intendedScrollOffset !== null && Math.abs(offset - this._intendedScrollOffset) < 1.5) {
|
|
434
480
|
offset = this._intendedScrollOffset;
|
|
435
481
|
}
|
|
436
482
|
this._intendedScrollOffset = null;
|
|
437
483
|
this.scrollAdjustments = 0;
|
|
438
|
-
|
|
484
|
+
const prevOffset = this.getScrollOffset();
|
|
485
|
+
this.scrollDirection = isScrolling ? prevOffset === offset ? this.scrollDirection : prevOffset < offset ? "forward" : "backward" : null;
|
|
439
486
|
this.scrollOffset = offset;
|
|
440
487
|
this.isScrolling = isScrolling;
|
|
441
488
|
this._flushIosDeferredIfReady();
|
|
@@ -494,19 +541,17 @@ class Virtualizer {
|
|
|
494
541
|
const anchor = this.pendingScrollAnchor;
|
|
495
542
|
this.pendingScrollAnchor = null;
|
|
496
543
|
if (anchor && this.scrollElement && this.options.enabled) {
|
|
497
|
-
const [key,
|
|
498
|
-
if (key !== null) {
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
index++;
|
|
503
|
-
}
|
|
504
|
-
const item = index < count ? this.getMeasurements()[index] : void 0;
|
|
505
|
-
if (item) {
|
|
506
|
-
const delta = item.start + offset - this.getScrollOffset();
|
|
507
|
-
if (!approxEqual(delta, 0)) {
|
|
508
|
-
this.applyScrollAdjustment(delta);
|
|
544
|
+
const [key, _offset, followOnAppend, anchorDelta] = anchor;
|
|
545
|
+
if (key !== null && !followOnAppend) {
|
|
546
|
+
if (isIOSWebKit() && (this.isScrolling || this._iosTouching || this._iosJustTouchEnded)) {
|
|
547
|
+
if (anchorDelta !== 0) {
|
|
548
|
+
this._iosDeferredAdjustment += anchorDelta;
|
|
509
549
|
}
|
|
550
|
+
} else {
|
|
551
|
+
this._scrollToOffset(this.getScrollOffset(), {
|
|
552
|
+
adjustments: void 0,
|
|
553
|
+
behavior: void 0
|
|
554
|
+
});
|
|
510
555
|
}
|
|
511
556
|
}
|
|
512
557
|
if (followOnAppend) {
|
|
@@ -735,16 +780,20 @@ class Virtualizer {
|
|
|
735
780
|
this.options.lanes
|
|
736
781
|
],
|
|
737
782
|
(measurements, outerSize, scrollOffset, lanes) => {
|
|
738
|
-
|
|
783
|
+
if (measurements.length === 0 || outerSize === 0) {
|
|
784
|
+
this.range = null;
|
|
785
|
+
return null;
|
|
786
|
+
}
|
|
787
|
+
this.range = calculateRangeImpl(
|
|
739
788
|
measurements,
|
|
740
789
|
outerSize,
|
|
741
790
|
scrollOffset,
|
|
742
791
|
lanes,
|
|
743
|
-
// Pass the typed array so binary search + forward-walk can
|
|
744
|
-
//
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
792
|
+
// Pass the typed array so binary search + forward-walk can read
|
|
793
|
+
// start/end directly from Float64Array, skipping the Proxy traps.
|
|
794
|
+
lanes === 1 && this._flatMeasurements != null ? this._flatMeasurements : null
|
|
795
|
+
);
|
|
796
|
+
return this.range;
|
|
748
797
|
},
|
|
749
798
|
{
|
|
750
799
|
key: false,
|
|
@@ -874,13 +923,13 @@ class Virtualizer {
|
|
|
874
923
|
delta,
|
|
875
924
|
this
|
|
876
925
|
) : (
|
|
877
|
-
// Default: adjust
|
|
878
|
-
//
|
|
879
|
-
//
|
|
880
|
-
//
|
|
881
|
-
//
|
|
882
|
-
//
|
|
883
|
-
itemStart < this.getScrollOffset() + this.scrollAdjustments && this.scrollDirection !== "backward"
|
|
926
|
+
// Default: adjust when the resize is an above-viewport item.
|
|
927
|
+
// First measurement (!has(key)): always adjust — the item
|
|
928
|
+
// has never been sized, so the estimate→actual delta must
|
|
929
|
+
// be compensated regardless of scroll direction.
|
|
930
|
+
// Re-measurement (has(key)): skip during backward scroll
|
|
931
|
+
// to avoid the "items jump while scrolling up" cascade.
|
|
932
|
+
itemStart < this.getScrollOffset() + this.scrollAdjustments && (!this.itemSizeCache.has(key) || this.scrollDirection !== "backward")
|
|
884
933
|
));
|
|
885
934
|
if (this.pendingMin === null || index < this.pendingMin) {
|
|
886
935
|
this.pendingMin = index;
|
|
@@ -1122,6 +1171,10 @@ class Virtualizer {
|
|
|
1122
1171
|
adjustments: this.scrollAdjustments += delta,
|
|
1123
1172
|
behavior
|
|
1124
1173
|
});
|
|
1174
|
+
if (this.scrollOffset !== null) {
|
|
1175
|
+
this.scrollOffset += this.scrollAdjustments;
|
|
1176
|
+
this.scrollAdjustments = 0;
|
|
1177
|
+
}
|
|
1125
1178
|
}
|
|
1126
1179
|
}
|
|
1127
1180
|
scheduleScrollReconcile() {
|
|
@@ -1197,26 +1250,44 @@ const findNearestBinarySearch = (low, high, getCurrentValue, value) => {
|
|
|
1197
1250
|
return 0;
|
|
1198
1251
|
}
|
|
1199
1252
|
};
|
|
1200
|
-
function
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1253
|
+
function findNearestBinarySearchFlat(flat, high, value) {
|
|
1254
|
+
let low = 0;
|
|
1255
|
+
while (low <= high) {
|
|
1256
|
+
const middle = (low + high) / 2 | 0;
|
|
1257
|
+
const currentValue = flat[middle * 2];
|
|
1258
|
+
if (currentValue < value) {
|
|
1259
|
+
low = middle + 1;
|
|
1260
|
+
} else if (currentValue > value) {
|
|
1261
|
+
high = middle - 1;
|
|
1262
|
+
} else {
|
|
1263
|
+
return middle;
|
|
1264
|
+
}
|
|
1265
|
+
}
|
|
1266
|
+
return low > 0 ? low - 1 : 0;
|
|
1267
|
+
}
|
|
1268
|
+
function calculateRangeImpl(measurements, outerSize, scrollOffset, lanes, flat) {
|
|
1207
1269
|
const lastIndex = measurements.length - 1;
|
|
1208
|
-
const getStart = flat ? (index) => flat[index * 2] : (index) => measurements[index].start;
|
|
1209
|
-
const getEnd = flat ? (index) => flat[index * 2] + flat[index * 2 + 1] : (index) => measurements[index].end;
|
|
1210
1270
|
if (measurements.length <= lanes) {
|
|
1211
|
-
return {
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1271
|
+
return { startIndex: 0, endIndex: lastIndex };
|
|
1272
|
+
}
|
|
1273
|
+
if (lanes === 1 && flat !== null) {
|
|
1274
|
+
const startIndex2 = findNearestBinarySearchFlat(
|
|
1275
|
+
flat,
|
|
1276
|
+
lastIndex,
|
|
1277
|
+
scrollOffset
|
|
1278
|
+
);
|
|
1279
|
+
let endIndex2 = startIndex2;
|
|
1280
|
+
const limit = scrollOffset + outerSize;
|
|
1281
|
+
while (endIndex2 < lastIndex && flat[endIndex2 * 2] + flat[endIndex2 * 2 + 1] < limit) {
|
|
1282
|
+
endIndex2++;
|
|
1283
|
+
}
|
|
1284
|
+
return { startIndex: startIndex2, endIndex: endIndex2 };
|
|
1215
1285
|
}
|
|
1286
|
+
const getStart = (index) => measurements[index].start;
|
|
1216
1287
|
let startIndex = findNearestBinarySearch(0, lastIndex, getStart, scrollOffset);
|
|
1217
1288
|
let endIndex = startIndex;
|
|
1218
1289
|
if (lanes === 1) {
|
|
1219
|
-
while (endIndex < lastIndex &&
|
|
1290
|
+
while (endIndex < lastIndex && measurements[endIndex].end < scrollOffset + outerSize) {
|
|
1220
1291
|
endIndex++;
|
|
1221
1292
|
}
|
|
1222
1293
|
} else if (lanes > 1) {
|