@tonyclaw/agent-inspector 3.1.32 → 4.0.2
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/backend/nitro.json +1 -1
- package/.output/cli.js +241 -120
- package/.output/server/_ssr/index.mjs +1 -1
- package/.output/server/_ssr/{router-oXUk3MBR.mjs → router-BBY_zWRK.mjs} +91 -3
- package/.output/server/index.mjs +1 -1
- package/.output/ui/assets/{CompareDrawer-BtfPSpkV.js → CompareDrawer-rtNElN-B.js} +1 -1
- package/.output/ui/assets/{InspectorPet-D9DPPQ3n.js → InspectorPet-QaAiuF3d.js} +1 -1
- package/.output/ui/assets/{ProxyViewerContainer-Buu8vkCK.js → ProxyViewerContainer-6twNZHwl.js} +4 -4
- package/.output/ui/assets/{ReplayDialog-BER-QzpD.js → ReplayDialog-B7KlziO2.js} +1 -1
- package/.output/ui/assets/{RequestAnatomy-C8Zwxrr7.js → RequestAnatomy-2XVFBrW4.js} +1 -1
- package/.output/ui/assets/{ResponseView-DDpKdYk6.js → ResponseView-BULgzLVB.js} +1 -1
- package/.output/ui/assets/{StreamingChunkSequence-sMPGG7Sw.js → StreamingChunkSequence-DSkvkbns.js} +1 -1
- package/.output/ui/assets/{_sessionId-e4IheHnP.js → _sessionId-D2dmJi3G.js} +1 -1
- package/.output/ui/assets/{_sessionId-C5Uv72Fx.js → _sessionId-DcS0s1Mr.js} +1 -1
- package/.output/ui/assets/{index-B__qT0Yd.js → index-B0TN1KKO.js} +2 -2
- package/.output/ui/assets/{index-Be3bTCzi.js → index-Bva1zHEs.js} +1 -1
- package/.output/ui/assets/{index-C9q__p8J.js → index-BzBExOxu.js} +1 -1
- package/.output/ui/assets/{index-CtB0deSZ.js → index-k6sRQz55.js} +1 -1
- package/.output/ui/assets/{json-viewer-Db0AFp-7.js → json-viewer-CWM4tY-j.js} +1 -1
- package/.output/ui/assets/{jszip.min-DkY0Ym_q.js → jszip.min-BkWvRFlo.js} +1 -1
- package/.output/ui/index.html +1 -1
- package/package.json +8 -13
- package/src/assets/IDE/claudecode-color.svg +0 -1
- package/src/assets/IDE/codex-color.svg +0 -1
- package/src/assets/IDE/opencode.svg +0 -1
- package/src/assets/IDE/xiaomimimo.svg +0 -1
- package/src/assets/favicon.svg +0 -21
- package/src/assets/logos/alibaba.svg +0 -1
- package/src/assets/logos/anthropic.svg +0 -1
- package/src/assets/logos/claude-code.svg +0 -4
- package/src/assets/logos/deepseek.svg +0 -1
- package/src/assets/logos/minimax.jpeg +0 -0
- package/src/assets/logos/openai.svg +0 -1
- package/src/assets/logos/opencode.svg +0 -4
- package/src/assets/logos/qwen.webp +0 -0
- package/src/assets/logos/zhipuai.svg +0 -219
- package/src/backend/router.tsx +0 -36
- package/src/backend/routes/$.ts +0 -26
- package/src/backend/routes/__root.ts +0 -4
- package/src/backend/routes/api/-instances.ts +0 -7
- package/src/backend/routes/api/alerts.summary.ts +0 -28
- package/src/backend/routes/api/alerts.ts +0 -70
- package/src/backend/routes/api/config.paths.ts +0 -14
- package/src/backend/routes/api/config.ts +0 -73
- package/src/backend/routes/api/ecosystem.packages.$packageId.help.ts +0 -11
- package/src/backend/routes/api/ecosystem.packages.$packageId.install.ts +0 -11
- package/src/backend/routes/api/ecosystem.packages.$packageId.runner-presets.ts +0 -11
- package/src/backend/routes/api/ecosystem.packages.$packageId.upgrade.ts +0 -11
- package/src/backend/routes/api/ecosystem.packages.ts +0 -21
- package/src/backend/routes/api/ecosystem.recipes.$recipeId.run.ts +0 -11
- package/src/backend/routes/api/ecosystem.tasks.$taskId.ts +0 -16
- package/src/backend/routes/api/ecosystem.tasks.ts +0 -12
- package/src/backend/routes/api/groups.$groupId.evidence.ts +0 -55
- package/src/backend/routes/api/groups.$groupId.sessions.ts +0 -50
- package/src/backend/routes/api/groups.$groupId.ts +0 -93
- package/src/backend/routes/api/groups.ts +0 -79
- package/src/backend/routes/api/health.ts +0 -22
- package/src/backend/routes/api/instances.$name.connection.ts +0 -12
- package/src/backend/routes/api/instances.$name.restart.ts +0 -23
- package/src/backend/routes/api/instances.$name.start.ts +0 -18
- package/src/backend/routes/api/instances.$name.stop.ts +0 -23
- package/src/backend/routes/api/instances.$name.ts +0 -12
- package/src/backend/routes/api/instances.ts +0 -16
- package/src/backend/routes/api/knowledge.candidates.$candidateId.promote.ts +0 -32
- package/src/backend/routes/api/knowledge.candidates.$candidateId.ts +0 -50
- package/src/backend/routes/api/knowledge.candidates.ts +0 -10
- package/src/backend/routes/api/knowledge.project-context.ts +0 -29
- package/src/backend/routes/api/knowledge.search.ts +0 -62
- package/src/backend/routes/api/knowledge.sessions.$sessionId.candidates.ts +0 -26
- package/src/backend/routes/api/logs.$id.body.ts +0 -58
- package/src/backend/routes/api/logs.$id.chunks.ts +0 -37
- package/src/backend/routes/api/logs.$id.replay.ts +0 -297
- package/src/backend/routes/api/logs.$id.ts +0 -23
- package/src/backend/routes/api/logs.import.ts +0 -39
- package/src/backend/routes/api/logs.stream.ts +0 -174
- package/src/backend/routes/api/logs.ts +0 -214
- package/src/backend/routes/api/mcp.ts +0 -25
- package/src/backend/routes/api/models.ts +0 -10
- package/src/backend/routes/api/pi-agent.ts +0 -29
- package/src/backend/routes/api/providers.$providerId.model-metadata.ts +0 -173
- package/src/backend/routes/api/providers.$providerId.test.log.ts +0 -342
- package/src/backend/routes/api/providers.$providerId.ts +0 -111
- package/src/backend/routes/api/providers.export.ts +0 -44
- package/src/backend/routes/api/providers.import.ts +0 -81
- package/src/backend/routes/api/providers.scan.ts +0 -28
- package/src/backend/routes/api/providers.ts +0 -102
- package/src/backend/routes/api/runs.$runId.evidence.ts +0 -55
- package/src/backend/routes/api/runs.$runId.ts +0 -50
- package/src/backend/routes/api/runs.ts +0 -62
- package/src/backend/routes/api/runtime.ts +0 -46
- package/src/backend/routes/api/sessions.ts +0 -51
- package/src/backend/routes/api/storage.ts +0 -56
- package/src/backend/routes/livez.ts +0 -13
- package/src/backend/routes/metrics.ts +0 -14
- package/src/backend/routes/proxy/$.ts +0 -15
- package/src/backend/routes/readyz.ts +0 -18
- package/src/backend/start.ts +0 -10
- package/src/cli/alias.ts +0 -431
- package/src/cli/detect-tools.ts +0 -123
- package/src/cli/doctor.ts +0 -836
- package/src/cli/instance.ts +0 -1071
- package/src/cli/instanceApi.ts +0 -213
- package/src/cli/instanceArgs.ts +0 -301
- package/src/cli/instanceControl.ts +0 -191
- package/src/cli/instanceModel.ts +0 -276
- package/src/cli/instanceRegistry.ts +0 -731
- package/src/cli/networkHints.ts +0 -170
- package/src/cli/onboard.ts +0 -1668
- package/src/cli/onboardTarget.ts +0 -228
- package/src/cli/rustBackendPackage.ts +0 -458
- package/src/cli/startupOutput.ts +0 -16
- package/src/cli/templates/codex-skill-onboard.ts +0 -320
- package/src/cli/templates/command-onboard.ts +0 -25
- package/src/cli/templates/skill-onboard.ts +0 -625
- package/src/cli.ts +0 -1397
- package/src/components/OnboardingBanner.tsx +0 -115
- package/src/components/ProxyViewer.tsx +0 -2259
- package/src/components/ProxyViewerContainer.tsx +0 -1076
- package/src/components/alerts/AlertsDialog.tsx +0 -615
- package/src/components/clients/ClientLogo.tsx +0 -175
- package/src/components/ecosystem/AgentLabDialog.tsx +0 -947
- package/src/components/errors/SafeErrorBoundary.tsx +0 -201
- package/src/components/groups/GroupsDialog.tsx +0 -1304
- package/src/components/inspector-pet/InspectorPet.tsx +0 -398
- package/src/components/inspector-pet/InspectorPetCrab3D.tsx +0 -455
- package/src/components/inspector-pet/inspectorPetLogic.ts +0 -272
- package/src/components/pi-agent/PiAgentPanel.tsx +0 -446
- package/src/components/pi-agent/piAgentChatLogic.ts +0 -273
- package/src/components/providers/ImportWizardDialog.tsx +0 -281
- package/src/components/providers/ProviderCard.tsx +0 -347
- package/src/components/providers/ProviderForm.tsx +0 -1183
- package/src/components/providers/ProviderLogo.tsx +0 -122
- package/src/components/providers/ProviderTestResultsView.tsx +0 -734
- package/src/components/providers/ProvidersPanel.tsx +0 -714
- package/src/components/providers/SettingsDialog.tsx +0 -1042
- package/src/components/providers/providerFormCapabilities.ts +0 -36
- package/src/components/proxy-viewer/AgentTraceSummary.tsx +0 -902
- package/src/components/proxy-viewer/AnswerMarkdown.tsx +0 -51
- package/src/components/proxy-viewer/ApplicationBar.tsx +0 -123
- package/src/components/proxy-viewer/CompareDrawer.tsx +0 -984
- package/src/components/proxy-viewer/ConversationGroup.tsx +0 -208
- package/src/components/proxy-viewer/ConversationGroupList.tsx +0 -652
- package/src/components/proxy-viewer/ConversationHeader.tsx +0 -429
- package/src/components/proxy-viewer/LiveConnectionStatus.tsx +0 -186
- package/src/components/proxy-viewer/LogEntry.tsx +0 -1419
- package/src/components/proxy-viewer/LogEntryHeader.tsx +0 -596
- package/src/components/proxy-viewer/ProviderLogoStack.tsx +0 -57
- package/src/components/proxy-viewer/RawExportWarning.tsx +0 -77
- package/src/components/proxy-viewer/ReplayDialog.tsx +0 -636
- package/src/components/proxy-viewer/RequestToolsPanel.tsx +0 -299
- package/src/components/proxy-viewer/ResponseView.tsx +0 -202
- package/src/components/proxy-viewer/SessionLoadProgressBar.tsx +0 -61
- package/src/components/proxy-viewer/StreamingChunkSequence.tsx +0 -265
- package/src/components/proxy-viewer/ThreadConnector.tsx +0 -165
- package/src/components/proxy-viewer/ToolTraceEvents.tsx +0 -64
- package/src/components/proxy-viewer/TurnGroup.tsx +0 -383
- package/src/components/proxy-viewer/TurnGroupList.tsx +0 -156
- package/src/components/proxy-viewer/accessibility.ts +0 -8
- package/src/components/proxy-viewer/anatomy/RequestAnatomy.tsx +0 -887
- package/src/components/proxy-viewer/anatomy/SegmentBar.tsx +0 -222
- package/src/components/proxy-viewer/anatomy/contextIntelligence.ts +0 -737
- package/src/components/proxy-viewer/anatomy/sessionContextSummary.ts +0 -268
- package/src/components/proxy-viewer/anatomy/tokenEstimate.ts +0 -53
- package/src/components/proxy-viewer/anatomy/types.ts +0 -41
- package/src/components/proxy-viewer/anatomy/useAnatomyJump.ts +0 -114
- package/src/components/proxy-viewer/bodyHydration.ts +0 -123
- package/src/components/proxy-viewer/cacheTrend.ts +0 -50
- package/src/components/proxy-viewer/diff/DiffView.tsx +0 -321
- package/src/components/proxy-viewer/diff/computeDiff.ts +0 -178
- package/src/components/proxy-viewer/diff/index.ts +0 -3
- package/src/components/proxy-viewer/formats/anthropic/ContentBlocks.tsx +0 -194
- package/src/components/proxy-viewer/formats/anthropic/ResponseView.tsx +0 -81
- package/src/components/proxy-viewer/formats/anthropic/thinkingExtract.ts +0 -21
- package/src/components/proxy-viewer/formats/index.tsx +0 -47
- package/src/components/proxy-viewer/formats/openai/ResponseView.tsx +0 -442
- package/src/components/proxy-viewer/index.ts +0 -9
- package/src/components/proxy-viewer/lazy.ts +0 -41
- package/src/components/proxy-viewer/liveConnectionState.ts +0 -158
- package/src/components/proxy-viewer/log-formats/anthropic.ts +0 -191
- package/src/components/proxy-viewer/log-formats/index.ts +0 -23
- package/src/components/proxy-viewer/log-formats/openai.ts +0 -256
- package/src/components/proxy-viewer/log-formats/types.ts +0 -40
- package/src/components/proxy-viewer/log-formats/unknown.ts +0 -18
- package/src/components/proxy-viewer/logEntryVisibility.ts +0 -73
- package/src/components/proxy-viewer/logFocus.ts +0 -54
- package/src/components/proxy-viewer/proxyViewerContainerLogic.ts +0 -124
- package/src/components/proxy-viewer/proxyViewerLogic.ts +0 -488
- package/src/components/proxy-viewer/replayComparison.ts +0 -131
- package/src/components/proxy-viewer/requestDiff.ts +0 -277
- package/src/components/proxy-viewer/requestTools.ts +0 -220
- package/src/components/proxy-viewer/useCopyFeedback.ts +0 -38
- package/src/components/proxy-viewer/useKeyboardNavigation.ts +0 -232
- package/src/components/proxy-viewer/viewerState.ts +0 -176
- package/src/components/ui/badge.tsx +0 -47
- package/src/components/ui/button.tsx +0 -47
- package/src/components/ui/collapsible.tsx +0 -21
- package/src/components/ui/confirm-dialog.tsx +0 -51
- package/src/components/ui/crab-logo.tsx +0 -45
- package/src/components/ui/crab-variants.tsx +0 -467
- package/src/components/ui/dialog.tsx +0 -130
- package/src/components/ui/icon-trigger.ts +0 -2
- package/src/components/ui/json-viewer-bulk.ts +0 -132
- package/src/components/ui/json-viewer.tsx +0 -508
- package/src/components/ui/scroll-area.tsx +0 -54
- package/src/components/ui/select.tsx +0 -178
- package/src/components/ui/separator.tsx +0 -28
- package/src/components/ui/tabs.tsx +0 -88
- package/src/components/ui/tooltip.tsx +0 -51
- package/src/components/ui/transient-toast.tsx +0 -105
- package/src/contracts/anthropic.ts +0 -230
- package/src/contracts/index.ts +0 -59
- package/src/contracts/json.ts +0 -37
- package/src/contracts/log.ts +0 -139
- package/src/contracts/openai.ts +0 -267
- package/src/index.css +0 -11
- package/src/knowledge/candidateStore.ts +0 -94
- package/src/knowledge/distiller.ts +0 -98
- package/src/knowledge/openclawClient.ts +0 -161
- package/src/knowledge/openclawGatewayClient.ts +0 -249
- package/src/knowledge/openclawMarkdown.ts +0 -146
- package/src/knowledge/redactor.ts +0 -80
- package/src/knowledge/types.ts +0 -83
- package/src/lib/alertContract.ts +0 -76
- package/src/lib/apiClient.ts +0 -166
- package/src/lib/apiFormat.ts +0 -29
- package/src/lib/backendImplementation.ts +0 -16
- package/src/lib/basePath.ts +0 -107
- package/src/lib/browserRuntimeContract.ts +0 -124
- package/src/lib/browserRuntimeResolver.ts +0 -333
- package/src/lib/chunkLoadRecovery.ts +0 -83
- package/src/lib/claudeCodeStrip.ts +0 -98
- package/src/lib/clipboard.ts +0 -67
- package/src/lib/codingAgentEndpoints.ts +0 -54
- package/src/lib/ecosystemContract.ts +0 -130
- package/src/lib/export-logs.ts +0 -287
- package/src/lib/groupContract.ts +0 -166
- package/src/lib/instanceContract.ts +0 -239
- package/src/lib/jsonFile.ts +0 -46
- package/src/lib/logImportContract.ts +0 -12
- package/src/lib/managedInstance.ts +0 -112
- package/src/lib/mask.ts +0 -4
- package/src/lib/objectUtils.ts +0 -22
- package/src/lib/piAgentContract.ts +0 -102
- package/src/lib/providerContract.ts +0 -125
- package/src/lib/providerImportContract.ts +0 -27
- package/src/lib/providerModelMetadata.ts +0 -458
- package/src/lib/providerTestContract.ts +0 -170
- package/src/lib/providerTestPrompt.ts +0 -100
- package/src/lib/publicBasePathContext.ts +0 -137
- package/src/lib/resourceLimits.ts +0 -345
- package/src/lib/runContract.ts +0 -164
- package/src/lib/runtimeConfig.ts +0 -43
- package/src/lib/safeDiagnostic.ts +0 -38
- package/src/lib/safeFetch.ts +0 -508
- package/src/lib/serverPort.ts +0 -47
- package/src/lib/sessionInfoContract.ts +0 -78
- package/src/lib/sessionUrl.ts +0 -46
- package/src/lib/ssrfGuard.ts +0 -133
- package/src/lib/stopReason.ts +0 -130
- package/src/lib/themeMode.ts +0 -41
- package/src/lib/timeDisplay.ts +0 -22
- package/src/lib/toolTrace.ts +0 -290
- package/src/lib/uiScale.ts +0 -117
- package/src/lib/unknown.ts +0 -27
- package/src/lib/upstreamUrl.ts +0 -150
- package/src/lib/useAlerts.ts +0 -82
- package/src/lib/useGroupEvidence.ts +0 -37
- package/src/lib/useGroups.ts +0 -32
- package/src/lib/useOnboarding.ts +0 -93
- package/src/lib/useProviders.ts +0 -30
- package/src/lib/useStripConfig.ts +0 -154
- package/src/lib/useThemeMode.ts +0 -40
- package/src/lib/useUiScale.ts +0 -52
- package/src/lib/utils.ts +0 -78
- package/src/mcp/currentContext.ts +0 -65
- package/src/mcp/instanceHandlers.ts +0 -151
- package/src/mcp/loopback.ts +0 -88
- package/src/mcp/mode.ts +0 -75
- package/src/mcp/previewExtractor.ts +0 -233
- package/src/mcp/server.ts +0 -2274
- package/src/mcp/toolHandlers.ts +0 -1533
- package/src/proxy/alerts.ts +0 -664
- package/src/proxy/chunkStorage.ts +0 -123
- package/src/proxy/config.ts +0 -218
- package/src/proxy/constants.ts +0 -66
- package/src/proxy/dataDir.ts +0 -147
- package/src/proxy/ecosystemExecutionConfirmation.ts +0 -114
- package/src/proxy/ecosystemExecutionRoute.ts +0 -116
- package/src/proxy/ecosystemRegistry.ts +0 -296
- package/src/proxy/ecosystemTasks.ts +0 -415
- package/src/proxy/evidenceAnalysis.ts +0 -526
- package/src/proxy/evidenceExporter.ts +0 -235
- package/src/proxy/formats/anthropic/anthropicProvider.ts +0 -75
- package/src/proxy/formats/anthropic/handler.ts +0 -75
- package/src/proxy/formats/anthropic/index.ts +0 -13
- package/src/proxy/formats/anthropic/register.ts +0 -4
- package/src/proxy/formats/anthropic/schemas.ts +0 -6
- package/src/proxy/formats/anthropic/stream.ts +0 -205
- package/src/proxy/formats/handler.ts +0 -46
- package/src/proxy/formats/index.ts +0 -13
- package/src/proxy/formats/jsonSchema.ts +0 -2
- package/src/proxy/formats/openai/alibabaProvider.ts +0 -34
- package/src/proxy/formats/openai/codexMetadata.ts +0 -61
- package/src/proxy/formats/openai/handler.ts +0 -133
- package/src/proxy/formats/openai/index.ts +0 -33
- package/src/proxy/formats/openai/provider.ts +0 -50
- package/src/proxy/formats/openai/register.ts +0 -4
- package/src/proxy/formats/openai/schemas.ts +0 -25
- package/src/proxy/formats/openai/stream.ts +0 -600
- package/src/proxy/formats/openai/zhipuProvider.ts +0 -31
- package/src/proxy/formats/providerAdapter.ts +0 -50
- package/src/proxy/formats/providerRegistry.ts +0 -51
- package/src/proxy/formats/providers/index.ts +0 -3
- package/src/proxy/formats/registry.ts +0 -65
- package/src/proxy/groupEvidenceExporter.ts +0 -371
- package/src/proxy/groupStore.ts +0 -336
- package/src/proxy/handler.ts +0 -729
- package/src/proxy/identityProxy.ts +0 -1842
- package/src/proxy/jsonlRecovery.ts +0 -554
- package/src/proxy/logBodyChunks.ts +0 -91
- package/src/proxy/logFinalizer.ts +0 -777
- package/src/proxy/logFinalizer.worker.ts +0 -24
- package/src/proxy/logImportUpload.ts +0 -128
- package/src/proxy/logImporter.ts +0 -813
- package/src/proxy/logIndex.ts +0 -663
- package/src/proxy/logSearch.ts +0 -122
- package/src/proxy/logger.ts +0 -537
- package/src/proxy/openaiOrphanToolStrip.ts +0 -142
- package/src/proxy/platformCommands.ts +0 -253
- package/src/proxy/privateDataPath.ts +0 -419
- package/src/proxy/providerImporters.ts +0 -578
- package/src/proxy/providerScanStore.ts +0 -87
- package/src/proxy/providerSecretStore.ts +0 -216
- package/src/proxy/providers.ts +0 -998
- package/src/proxy/rawStreamCapture.ts +0 -342
- package/src/proxy/runFailures.ts +0 -94
- package/src/proxy/runStore.ts +0 -214
- package/src/proxy/runtimeAdmission.ts +0 -55
- package/src/proxy/runtimeHealth.ts +0 -221
- package/src/proxy/runtimeMetrics.ts +0 -149
- package/src/proxy/runtimeShutdown.ts +0 -157
- package/src/proxy/schemas.ts +0 -112
- package/src/proxy/sessionArchive.ts +0 -479
- package/src/proxy/sessionInfo.ts +0 -266
- package/src/proxy/sessionProcess.ts +0 -194
- package/src/proxy/sessionRuntime.ts +0 -121
- package/src/proxy/sessionSupervisor.ts +0 -305
- package/src/proxy/sessionWorkerEntry.ts +0 -26
- package/src/proxy/shutdownCoordinator.ts +0 -90
- package/src/proxy/socketTracker.ts +0 -639
- package/src/proxy/sqliteLogIndex.ts +0 -733
- package/src/proxy/storageLifecycle.ts +0 -432
- package/src/proxy/store.ts +0 -1773
- package/src/proxy/streamTiming.ts +0 -31
- package/src/proxy/toolSchemaWarnings.ts +0 -529
- package/src/proxy/uiAssetServer.ts +0 -106
- package/src/proxy/upstream.ts +0 -127
- package/src/services/alerts.ts +0 -12
- package/src/services/groups.ts +0 -119
- package/src/services/piAgent.ts +0 -421
- package/src/services/piAgentRetrieval.ts +0 -1180
- package/src/services/result.ts +0 -17
- package/src/services/runs.ts +0 -76
- package/src/ui/bootstrap.ts +0 -167
- package/src/ui/index.html +0 -38
- package/src/ui/logsStreamClient.ts +0 -20
- package/src/ui/main.tsx +0 -13
- package/src/ui/public/runtime-config.js +0 -2
- package/src/ui/router.tsx +0 -13
- package/src/ui/routes/__root.tsx +0 -69
- package/src/ui/routes/index.tsx +0 -35
- package/src/ui/routes/session/$sessionId.tsx +0 -50
- package/src/ui/runtimeDiscovery.ts +0 -50
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pure visibility rule for the "Raw Request" tab. Extracted so it can be
|
|
3
|
-
* unit-tested without rendering React. The tab appears only when all three
|
|
4
|
-
* are true: anthropic format, full view mode, strip toggle enabled.
|
|
5
|
-
*/
|
|
6
|
-
export function shouldShowRawRequestTab(
|
|
7
|
-
apiFormat: string,
|
|
8
|
-
viewMode: "simple" | "full",
|
|
9
|
-
strip: boolean,
|
|
10
|
-
): boolean {
|
|
11
|
-
return apiFormat === "anthropic" && viewMode === "full" && strip;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Pure visibility rule for the "Diff with Raw" button in the Headers tab.
|
|
16
|
-
* The button only makes sense when the user is in full mode (where the
|
|
17
|
-
* `Raw Headers` tab is shown) and we actually captured raw headers.
|
|
18
|
-
*/
|
|
19
|
-
export function shouldShowHeadersDiffButton(
|
|
20
|
-
viewMode: "simple" | "full",
|
|
21
|
-
hasRawHeaders: boolean,
|
|
22
|
-
): boolean {
|
|
23
|
-
return viewMode === "full" && hasRawHeaders;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Pure visibility rule for the `Raw Headers` tab. Inherits the same mode
|
|
28
|
-
* constraint as `shouldShowHeadersDiffButton` (full mode required to surface
|
|
29
|
-
* raw capture data), and additionally requires that the log actually has at
|
|
30
|
-
* least one captured header — otherwise the tab would render an empty panel.
|
|
31
|
-
*/
|
|
32
|
-
export function shouldShowRawHeadersTab(
|
|
33
|
-
viewMode: "simple" | "full",
|
|
34
|
-
hasRawHeaders: boolean,
|
|
35
|
-
): boolean {
|
|
36
|
-
return viewMode === "full" && hasRawHeaders;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Pure visibility rule for the `Headers` tab. Mirrors `shouldShowRawHeadersTab`
|
|
41
|
-
* but against the processed outgoing headers (rather than the raw inbound
|
|
42
|
-
* headers). Like its sibling it requires full mode AND a non-empty capture.
|
|
43
|
-
*/
|
|
44
|
-
export function shouldShowHeadersTab(viewMode: "simple" | "full", hasHeaders: boolean): boolean {
|
|
45
|
-
return viewMode === "full" && hasHeaders;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Pure visibility rule for the raw SSE stream tab. Simple mode intentionally
|
|
50
|
-
* keeps the response surface compact: SSE is an implementation detail used to
|
|
51
|
-
* assemble the final Response view, not a standalone tab.
|
|
52
|
-
*/
|
|
53
|
-
export function shouldShowSseTab(
|
|
54
|
-
viewMode: "simple" | "full",
|
|
55
|
-
streaming: boolean | undefined,
|
|
56
|
-
): boolean {
|
|
57
|
-
return viewMode === "full" && streaming === true;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Pure visibility rule for the "Diff with Raw" button in the Request tab.
|
|
62
|
-
* Mirrors the conditions for the `Raw Request` tab itself: full mode plus
|
|
63
|
-
* the strip toggle being on for an anthropic-format request. We also need
|
|
64
|
-
* an actual raw request body to diff against.
|
|
65
|
-
*/
|
|
66
|
-
export function shouldShowRequestDiffButton(
|
|
67
|
-
apiFormat: string,
|
|
68
|
-
viewMode: "simple" | "full",
|
|
69
|
-
strip: boolean,
|
|
70
|
-
hasRawRequest: boolean,
|
|
71
|
-
): boolean {
|
|
72
|
-
return apiFormat === "anthropic" && viewMode === "full" && strip && hasRawRequest;
|
|
73
|
-
}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { safeGetOwnProperty } from "../../lib/objectUtils";
|
|
2
|
-
|
|
3
|
-
export const LOG_FOCUS_REQUEST_EVENT = "agent-inspector:focus-log";
|
|
4
|
-
|
|
5
|
-
export type LogFocusTab = "anatomy" | "request" | "response";
|
|
6
|
-
|
|
7
|
-
export type LogFocusSource = "virtualizer";
|
|
8
|
-
|
|
9
|
-
export type LogFocusRequest = {
|
|
10
|
-
logId: number;
|
|
11
|
-
tab: LogFocusTab;
|
|
12
|
-
toolCallIndex?: number;
|
|
13
|
-
source?: LogFocusSource;
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
export function dispatchLogFocusRequest(request: LogFocusRequest): void {
|
|
17
|
-
window.dispatchEvent(new CustomEvent(LOG_FOCUS_REQUEST_EVENT, { detail: request }));
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export function readLogFocusRequest(event: Event): LogFocusRequest | null {
|
|
21
|
-
if (typeof CustomEvent === "undefined" || !(event instanceof CustomEvent)) return null;
|
|
22
|
-
|
|
23
|
-
const detail: unknown = event.detail;
|
|
24
|
-
const logId = safeGetOwnProperty(detail, "logId");
|
|
25
|
-
if (typeof logId !== "number" || !Number.isInteger(logId) || logId < 0) return null;
|
|
26
|
-
|
|
27
|
-
const tab = safeGetOwnProperty(detail, "tab");
|
|
28
|
-
switch (tab) {
|
|
29
|
-
case "anatomy":
|
|
30
|
-
case "request":
|
|
31
|
-
case "response":
|
|
32
|
-
break;
|
|
33
|
-
case undefined:
|
|
34
|
-
break;
|
|
35
|
-
default:
|
|
36
|
-
return null;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
const source = safeGetOwnProperty(detail, "source");
|
|
40
|
-
const toolCallIndex = safeGetOwnProperty(detail, "toolCallIndex");
|
|
41
|
-
const focusRequest =
|
|
42
|
-
typeof toolCallIndex === "number" && Number.isInteger(toolCallIndex) && toolCallIndex >= 0
|
|
43
|
-
? { logId, tab: tab ?? "request", toolCallIndex }
|
|
44
|
-
: { logId, tab: tab ?? "request" };
|
|
45
|
-
|
|
46
|
-
switch (source) {
|
|
47
|
-
case "virtualizer":
|
|
48
|
-
return { ...focusRequest, source };
|
|
49
|
-
case undefined:
|
|
50
|
-
return focusRequest;
|
|
51
|
-
default:
|
|
52
|
-
return null;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import type { CapturedLog } from "../../contracts";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Filter logs by selected session/model. Both `__all__` and missing values
|
|
5
|
-
* pass through. Returns the input array reference when no log matches the
|
|
6
|
-
* filter, so referential equality is preserved for empty results.
|
|
7
|
-
*/
|
|
8
|
-
export function filterLogs(
|
|
9
|
-
logs: CapturedLog[],
|
|
10
|
-
selectedSession: string,
|
|
11
|
-
selectedModel: string,
|
|
12
|
-
): CapturedLog[] {
|
|
13
|
-
if (selectedSession === "__all__" && selectedModel === "__all__") return logs;
|
|
14
|
-
return logs.filter((l) => {
|
|
15
|
-
if (selectedSession !== "__all__" && l.sessionId !== selectedSession) return false;
|
|
16
|
-
if (selectedModel !== "__all__" && l.model !== selectedModel) return false;
|
|
17
|
-
return true;
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export function mergeLogsById(
|
|
22
|
-
previousLogs: readonly CapturedLog[],
|
|
23
|
-
incomingLogs: readonly CapturedLog[],
|
|
24
|
-
): CapturedLog[] {
|
|
25
|
-
if (previousLogs.length === 0) return [...incomingLogs];
|
|
26
|
-
if (incomingLogs.length === 0) return [...previousLogs];
|
|
27
|
-
|
|
28
|
-
const byId = new Map<number, CapturedLog>();
|
|
29
|
-
for (const log of previousLogs) byId.set(log.id, log);
|
|
30
|
-
for (const log of incomingLogs) byId.set(log.id, log);
|
|
31
|
-
return [...byId.values()].toSorted((left, right) => left.id - right.id);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export type IncrementalLogMergeOptions = {
|
|
35
|
-
recentLimit: number;
|
|
36
|
-
retainSessionId?: string;
|
|
37
|
-
retainIds?: ReadonlySet<number>;
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
export type IncrementalLogMergeResult = {
|
|
41
|
-
logs: CapturedLog[];
|
|
42
|
-
index: Map<number, number>;
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
function shouldRetainLog(log: CapturedLog, options: IncrementalLogMergeOptions): boolean {
|
|
46
|
-
if (options.retainIds?.has(log.id) === true) return true;
|
|
47
|
-
if (options.retainSessionId !== undefined && log.sessionId === options.retainSessionId) {
|
|
48
|
-
return true;
|
|
49
|
-
}
|
|
50
|
-
return false;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
function trimBoundedLogs(logs: CapturedLog[], options: IncrementalLogMergeOptions): CapturedLog[] {
|
|
54
|
-
const unretainedCount = logs.reduce(
|
|
55
|
-
(count, log) => count + (shouldRetainLog(log, options) ? 0 : 1),
|
|
56
|
-
0,
|
|
57
|
-
);
|
|
58
|
-
if (unretainedCount <= options.recentLimit) return logs;
|
|
59
|
-
|
|
60
|
-
let unretainedToDrop = unretainedCount - options.recentLimit;
|
|
61
|
-
const retained: CapturedLog[] = [];
|
|
62
|
-
for (const log of logs) {
|
|
63
|
-
if (unretainedToDrop > 0 && !shouldRetainLog(log, options)) {
|
|
64
|
-
unretainedToDrop -= 1;
|
|
65
|
-
continue;
|
|
66
|
-
}
|
|
67
|
-
retained.push(log);
|
|
68
|
-
}
|
|
69
|
-
return retained;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
export function buildLogIndexById(logs: readonly CapturedLog[]): Map<number, number> {
|
|
73
|
-
const index = new Map<number, number>();
|
|
74
|
-
for (let i = 0; i < logs.length; i += 1) {
|
|
75
|
-
const log = logs[i];
|
|
76
|
-
if (log !== undefined) index.set(log.id, i);
|
|
77
|
-
}
|
|
78
|
-
return index;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
export function mergeLogsIncrementally(
|
|
82
|
-
previousLogs: readonly CapturedLog[],
|
|
83
|
-
previousIndex: ReadonlyMap<number, number>,
|
|
84
|
-
incomingLogs: readonly CapturedLog[],
|
|
85
|
-
options: IncrementalLogMergeOptions,
|
|
86
|
-
): IncrementalLogMergeResult {
|
|
87
|
-
if (incomingLogs.length === 0) {
|
|
88
|
-
const logs = trimBoundedLogs([...previousLogs], options);
|
|
89
|
-
return { logs, index: buildLogIndexById(logs) };
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
const next = [...previousLogs];
|
|
93
|
-
let lastId = next.length === 0 ? Number.NEGATIVE_INFINITY : (next.at(-1)?.id ?? 0);
|
|
94
|
-
let sorted = true;
|
|
95
|
-
|
|
96
|
-
for (const log of incomingLogs) {
|
|
97
|
-
const existingIndex = previousIndex.get(log.id);
|
|
98
|
-
if (existingIndex !== undefined && existingIndex >= 0 && existingIndex < next.length) {
|
|
99
|
-
next[existingIndex] = log;
|
|
100
|
-
continue;
|
|
101
|
-
}
|
|
102
|
-
next.push(log);
|
|
103
|
-
if (log.id < lastId) sorted = false;
|
|
104
|
-
lastId = Math.max(lastId, log.id);
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
const sortedLogs = sorted ? next : next.toSorted((left, right) => left.id - right.id);
|
|
108
|
-
const logs = trimBoundedLogs(sortedLogs, options);
|
|
109
|
-
return { logs, index: buildLogIndexById(logs) };
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
export function mergeSessionIds(
|
|
113
|
-
previousSessions: readonly string[],
|
|
114
|
-
incomingSessions: readonly string[],
|
|
115
|
-
): string[] {
|
|
116
|
-
const merged = new Set<string>();
|
|
117
|
-
for (const session of previousSessions) {
|
|
118
|
-
if (session !== "") merged.add(session);
|
|
119
|
-
}
|
|
120
|
-
for (const session of incomingSessions) {
|
|
121
|
-
if (session !== "") merged.add(session);
|
|
122
|
-
}
|
|
123
|
-
return [...merged].sort();
|
|
124
|
-
}
|