@cryptiklemur/lattice 1.16.4 → 1.17.0
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/client/src/components/analytics/AnalyticsView.tsx +2 -2
- package/client/src/components/sidebar/Sidebar.tsx +1 -1
- package/client/src/components/workspace/TabBar.tsx +3 -2
- package/client/src/components/workspace/WorkspaceView.tsx +2 -0
- package/client/src/stores/workspace.ts +2 -1
- package/package.json +1 -1
|
@@ -64,8 +64,8 @@ export function AnalyticsView() {
|
|
|
64
64
|
|
|
65
65
|
return (
|
|
66
66
|
<div className="flex flex-col h-full overflow-hidden bg-base-100 bg-lattice-grid">
|
|
67
|
-
<div className="flex items-center justify-between px-
|
|
68
|
-
<h1 className="text-
|
|
67
|
+
<div className="flex items-center justify-between px-2 sm:px-4 min-h-10 sm:min-h-12 border-b border-base-300 flex-shrink-0">
|
|
68
|
+
<h1 className="text-sm font-mono font-semibold text-base-content">Analytics</h1>
|
|
69
69
|
<PeriodSelector value={analytics.period} onChange={analytics.setPeriod} />
|
|
70
70
|
</div>
|
|
71
71
|
|
|
@@ -322,7 +322,7 @@ export function Sidebar({ onSessionSelect }: { onSessionSelect?: () => void }) {
|
|
|
322
322
|
})}
|
|
323
323
|
<button
|
|
324
324
|
type="button"
|
|
325
|
-
onClick={
|
|
325
|
+
onClick={function () { openTab("analytics"); }}
|
|
326
326
|
className="flex items-center gap-2 px-2 py-1.5 rounded-lg text-[11px] text-base-content/40 hover:text-base-content/70 hover:bg-base-300/30 transition-colors"
|
|
327
327
|
>
|
|
328
328
|
<BarChart3 size={12} />
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useState, useEffect, useRef } from "react";
|
|
2
|
-
import { X, Columns2, Rows2, MessageSquare, FolderOpen, TerminalSquare, StickyNote, Calendar, Bookmark } from "lucide-react";
|
|
2
|
+
import { X, Columns2, Rows2, MessageSquare, FolderOpen, TerminalSquare, StickyNote, Calendar, Bookmark, BarChart3 } from "lucide-react";
|
|
3
3
|
import { useWorkspace } from "../../hooks/useWorkspace";
|
|
4
4
|
import { useSession } from "../../hooks/useSession";
|
|
5
5
|
import type { Tab, TabType } from "../../stores/workspace";
|
|
@@ -23,6 +23,7 @@ var TAB_ICONS: Record<TabType, typeof MessageSquare> = {
|
|
|
23
23
|
notes: StickyNote,
|
|
24
24
|
tasks: Calendar,
|
|
25
25
|
bookmarks: Bookmark,
|
|
26
|
+
analytics: BarChart3,
|
|
26
27
|
};
|
|
27
28
|
|
|
28
29
|
export function TabBar({ paneId, isActivePane }: TabBarProps) {
|
|
@@ -69,7 +70,7 @@ export function TabBar({ paneId, isActivePane }: TabBarProps) {
|
|
|
69
70
|
activeTabId = workspace.activeTabId;
|
|
70
71
|
}
|
|
71
72
|
|
|
72
|
-
var shouldShow = paneTabs.length > 1 ||
|
|
73
|
+
var shouldShow = paneTabs.length > 1 || workspace.panes.length > 1;
|
|
73
74
|
|
|
74
75
|
function getTabLabel(tab: Tab): string {
|
|
75
76
|
if (tab.type === "chat" && tab.sessionId) {
|
|
@@ -10,6 +10,7 @@ import { FileBrowser } from "./FileBrowser";
|
|
|
10
10
|
import { NotesView } from "./NotesView";
|
|
11
11
|
import { ScheduledTasksView } from "./ScheduledTasksView";
|
|
12
12
|
import { BookmarksView } from "./BookmarksView";
|
|
13
|
+
import { AnalyticsView } from "../analytics/AnalyticsView";
|
|
13
14
|
import type { Pane, Tab } from "../../stores/workspace";
|
|
14
15
|
|
|
15
16
|
var NON_CHAT_COMPONENTS: Record<string, () => React.JSX.Element> = {
|
|
@@ -18,6 +19,7 @@ var NON_CHAT_COMPONENTS: Record<string, () => React.JSX.Element> = {
|
|
|
18
19
|
notes: NotesView,
|
|
19
20
|
tasks: ScheduledTasksView,
|
|
20
21
|
bookmarks: BookmarksView,
|
|
22
|
+
analytics: AnalyticsView,
|
|
21
23
|
};
|
|
22
24
|
|
|
23
25
|
function PaneContent({ pane, tabs, isActive, onFocus }: {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Store } from "@tanstack/react-store";
|
|
2
2
|
|
|
3
|
-
export type TabType = "chat" | "files" | "terminal" | "notes" | "tasks" | "bookmarks";
|
|
3
|
+
export type TabType = "chat" | "files" | "terminal" | "notes" | "tasks" | "bookmarks" | "analytics";
|
|
4
4
|
|
|
5
5
|
export interface Tab {
|
|
6
6
|
id: string;
|
|
@@ -69,6 +69,7 @@ export function openTab(type: TabType): void {
|
|
|
69
69
|
notes: "Notes",
|
|
70
70
|
tasks: "Tasks",
|
|
71
71
|
bookmarks: "Bookmarks",
|
|
72
|
+
analytics: "Analytics",
|
|
72
73
|
};
|
|
73
74
|
var tab: Tab = {
|
|
74
75
|
id: type,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cryptiklemur/lattice",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.17.0",
|
|
4
4
|
"description": "Multi-machine agentic dashboard for Claude Code. Monitor sessions, manage MCP servers and skills, orchestrate across mesh-networked nodes.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Aaron Scherer <me@aaronscherer.me>",
|