+
{
+ if (expandable) setOpen((v) => !v);
+ }}
+ title={node.text}
+ >
+
+ {expandable ? (open ? '▾' : '▸') : '·'}
+
+ {node.type}
+ {range}
+ {!expandable ? (
+ {JSON.stringify(text)}
+ ) : null}
+
+ {open
+ ? node.children.map((child, index) => (
+
+ ))
+ : null}
+
+ );
+}
diff --git a/apps/kimi-inspect/src/components/NavRail.tsx b/apps/kimi-inspect/src/components/NavRail.tsx
index ff4f9495cac..ede78fc77ad 100644
--- a/apps/kimi-inspect/src/components/NavRail.tsx
+++ b/apps/kimi-inspect/src/components/NavRail.tsx
@@ -6,7 +6,7 @@
import type { ReactNode } from 'react';
-export type AppView = 'chat' | 'models' | 'services';
+export type AppView = 'chat' | 'models' | 'services' | 'bash';
interface ViewDef {
readonly id: AppView;
@@ -58,6 +58,16 @@ const VIEWS: readonly ViewDef[] = [
),
},
+ {
+ id: 'bash',
+ title: 'Bash Parser',
+ icon: (
+