@tonyclaw/agent-inspector 2.0.11 → 2.0.12

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 (47) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/assets/{CompareDrawer-C9OWdxHM.js → CompareDrawer-ClM_uVRy.js} +1 -1
  3. package/.output/public/assets/ProxyViewerContainer-CTNNzXSa.js +114 -0
  4. package/.output/public/assets/{ReplayDialog-CwE6I1Pe.js → ReplayDialog-7rp7N_KJ.js} +1 -1
  5. package/.output/public/assets/RequestAnatomy-sL2FFo_N.js +1 -0
  6. package/.output/public/assets/ResponseView-Cjlf3b6-.js +1 -0
  7. package/.output/public/assets/{StreamingChunkSequence-CLcLZ7-W.js → StreamingChunkSequence-Ctx3sT3r.js} +1 -1
  8. package/.output/public/assets/_sessionId-DEWzDQ8-.js +1 -0
  9. package/.output/public/assets/index-DGIIhZTn.js +1 -0
  10. package/.output/public/assets/index-D_nZj9Vt.css +1 -0
  11. package/.output/public/assets/{main-D1Xanzu7.js → main-FvIQopAy.js} +2 -2
  12. package/.output/server/_libs/lucide-react.mjs +51 -39
  13. package/.output/server/{_sessionId-D3IyPpws.mjs → _sessionId-BDSgtrsI.mjs} +2 -2
  14. package/.output/server/_ssr/{CompareDrawer-BIMThqxy.mjs → CompareDrawer-Cqvv0I3x.mjs} +3 -3
  15. package/.output/server/_ssr/{ProxyViewerContainer-BiBdKWtj.mjs → ProxyViewerContainer-C0YEoG8N.mjs} +1611 -183
  16. package/.output/server/_ssr/{ReplayDialog-D_wiDyM2.mjs → ReplayDialog-CrsynUKI.mjs} +4 -4
  17. package/.output/server/_ssr/RequestAnatomy-CR_JUkcL.mjs +688 -0
  18. package/.output/server/_ssr/{ResponseView-Drk5ghmL.mjs → ResponseView-Dba2Et69.mjs} +3 -3
  19. package/.output/server/_ssr/{StreamingChunkSequence-F889rmG0.mjs → StreamingChunkSequence-BIMHLstI.mjs} +2 -2
  20. package/.output/server/_ssr/{index-CaPniq9z.mjs → index-DveIUTm5.mjs} +2 -2
  21. package/.output/server/_ssr/index.mjs +2 -2
  22. package/.output/server/_ssr/{router-C7S8FRth.mjs → router-D0yXVG0Q.mjs} +85 -22
  23. package/.output/server/{_tanstack-start-manifest_v-CVTkFOdT.mjs → _tanstack-start-manifest_v-pe0xJFuQ.mjs} +1 -1
  24. package/.output/server/index.mjs +62 -62
  25. package/package.json +1 -1
  26. package/src/components/ProxyViewer.tsx +453 -52
  27. package/src/components/providers/ProviderCard.tsx +45 -2
  28. package/src/components/providers/ProviderForm.tsx +245 -80
  29. package/src/components/providers/ProvidersPanel.tsx +7 -1
  30. package/src/components/proxy-viewer/ConversationGroup.tsx +18 -1
  31. package/src/components/proxy-viewer/LogEntry.tsx +25 -0
  32. package/src/components/proxy-viewer/TurnGroup.tsx +15 -0
  33. package/src/components/proxy-viewer/anatomy/RequestAnatomy.tsx +99 -79
  34. package/src/components/proxy-viewer/anatomy/contextIntelligence.ts +22 -4
  35. package/src/components/proxy-viewer/anatomy/sessionContextSummary.ts +196 -0
  36. package/src/components/proxy-viewer/logFocus.ts +33 -0
  37. package/src/lib/providerModelMetadata.ts +64 -12
  38. package/src/lib/utils.ts +7 -0
  39. package/src/proxy/providers.ts +25 -0
  40. package/src/routes/api/providers.ts +3 -0
  41. package/.output/public/assets/ProxyViewerContainer-CNzay4u8.js +0 -114
  42. package/.output/public/assets/RequestAnatomy-DEehC3yz.js +0 -1
  43. package/.output/public/assets/ResponseView-CE5UsuUq.js +0 -1
  44. package/.output/public/assets/_sessionId-DE__tPTo.js +0 -1
  45. package/.output/public/assets/index-BFO4Jmw5.js +0 -1
  46. package/.output/public/assets/index-CDzZ7l_S.css +0 -1
  47. package/.output/server/_ssr/RequestAnatomy-5UiMTESr.mjs +0 -1383
@@ -9,6 +9,7 @@ import {
9
9
  ProviderConfigSchema,
10
10
  ProviderModelMetadataSchema,
11
11
  type ProviderConfig,
12
+ type ProviderModelMetadata,
12
13
  } from "../lib/providerContract";
13
14
  import { withBuiltinProviderModelMetadata } from "../lib/providerModelMetadata";
14
15
 
@@ -21,6 +22,27 @@ const ProvidersStoreSchema = z.object({
21
22
 
22
23
  type ProvidersStore = z.infer<typeof ProvidersStoreSchema>;
23
24
 
25
+ function normalizeMetadataModelName(value: string): string {
26
+ return value.trim().toLowerCase().replace(/\s+/g, "-");
27
+ }
28
+
29
+ function mergeModelMetadata(
30
+ existing: readonly ProviderModelMetadata[] | undefined,
31
+ incoming: readonly ProviderModelMetadata[] | undefined,
32
+ ): ProviderModelMetadata[] | undefined {
33
+ if (existing === undefined && incoming === undefined) return undefined;
34
+
35
+ const merged = new Map<string, ProviderModelMetadata>();
36
+ for (const metadata of existing ?? []) {
37
+ merged.set(normalizeMetadataModelName(metadata.model), metadata);
38
+ }
39
+ for (const metadata of incoming ?? []) {
40
+ merged.set(normalizeMetadataModelName(metadata.model), metadata);
41
+ }
42
+
43
+ return [...merged.values()].toSorted((left, right) => left.model.localeCompare(right.model));
44
+ }
45
+
24
46
  const LegacyProviderConfigSchema = z.object({
25
47
  id: z.string().optional(),
26
48
  name: z.string().optional(),
@@ -377,6 +399,7 @@ export function addProvider(
377
399
  openaiBaseUrl?: string,
378
400
  source?: "company" | "personal",
379
401
  modelMetadataUrl?: string,
402
+ modelMetadata?: ProviderModelMetadata[],
380
403
  ): ProviderConfig {
381
404
  const providers = getProviders();
382
405
  const normalizedKey = normalizeApiKey(apiKey);
@@ -398,6 +421,7 @@ export function addProvider(
398
421
  const existingIndex = providers.findIndex((p) => p.id === existing.id);
399
422
  const newModels = (models ?? []).filter((m) => m !== "");
400
423
  existing.modelMetadataUrl = modelMetadataUrl ?? existing.modelMetadataUrl;
424
+ existing.modelMetadata = mergeModelMetadata(existing.modelMetadata, modelMetadata);
401
425
  if (newModels.length > 0) {
402
426
  const mergedModels = new Set(existing.models ?? []);
403
427
  for (const m of newModels) mergedModels.add(m);
@@ -429,6 +453,7 @@ export function addProvider(
429
453
  authHeader: authHeader ?? "bearer",
430
454
  apiDocsUrl,
431
455
  modelMetadataUrl,
456
+ modelMetadata,
432
457
  createdAt: now,
433
458
  updatedAt: now,
434
459
  anthropicBaseUrl: resolvedAnthropicUrl,
@@ -1,6 +1,7 @@
1
1
  import { createFileRoute } from "@tanstack/react-router";
2
2
  import { z } from "zod";
3
3
  import { getProviders, addProvider } from "../../proxy/providers";
4
+ import { ProviderModelMetadataSchema } from "../../lib/providerContract";
4
5
 
5
6
  const ProviderInputSchema = z.object({
6
7
  name: z.string().min(1, "Name is required"),
@@ -13,6 +14,7 @@ const ProviderInputSchema = z.object({
13
14
  authHeader: z.enum(["bearer", "x-api-key"]).optional().default("bearer"),
14
15
  apiDocsUrl: z.string().optional(),
15
16
  modelMetadataUrl: z.string().optional(),
17
+ modelMetadata: z.array(ProviderModelMetadataSchema).optional(),
16
18
  source: z.enum(["company", "personal"]).optional(),
17
19
  });
18
20
 
@@ -39,6 +41,7 @@ export const Route = createFileRoute("/api/providers")({
39
41
  parsed.data.openaiBaseUrl,
40
42
  parsed.data.source,
41
43
  parsed.data.modelMetadataUrl,
44
+ parsed.data.modelMetadata,
42
45
  );
43
46
  return Response.json(newProvider, { status: 201 });
44
47
  },