@hybridlabor-api/bdb-synapse 1.0.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/LICENSE +21 -0
- package/README.md +173 -0
- package/bin/synapse +0 -0
- package/cmd/rubriceval/main.go +308 -0
- package/cmd/synapse/main.go +280 -0
- package/cmd/synapse/main_test.go +16 -0
- package/go.mod +7 -0
- package/go.sum +6 -0
- package/internal/adapter/adapter.go +1117 -0
- package/internal/adapter/adapter_test.go +518 -0
- package/internal/adapter/agy/adapter.go +193 -0
- package/internal/adapter/claudecode/adapter.go +415 -0
- package/internal/adapter/claudecode/adapter_test.go +260 -0
- package/internal/adapter/claudecode/agents.go +387 -0
- package/internal/adapter/claudecode/agents_test.go +480 -0
- package/internal/adapter/claudecode/summary_inputs_test.go +19 -0
- package/internal/adapter/codex/adapter.go +919 -0
- package/internal/adapter/codex/adapter_test.go +920 -0
- package/internal/adapter/codex/agents.go +401 -0
- package/internal/adapter/codex/agents_test.go +610 -0
- package/internal/adapter/codex/summary_inputs_test.go +20 -0
- package/internal/adapter/pi/adapter.go +483 -0
- package/internal/adapter/pi/adapter_test.go +517 -0
- package/internal/citymap/builder.go +1124 -0
- package/internal/citymap/builder_test.go +818 -0
- package/internal/judge/cache.go +180 -0
- package/internal/judge/cli.go +240 -0
- package/internal/judge/cli_test.go +68 -0
- package/internal/judge/fresh_summary_test.go +37 -0
- package/internal/judge/input.go +233 -0
- package/internal/judge/judge.go +416 -0
- package/internal/judge/judge_test.go +288 -0
- package/internal/judge/prompt.go +129 -0
- package/internal/judge/rubric.go +275 -0
- package/internal/judge/rubric_test.go +642 -0
- package/internal/model/agent.go +63 -0
- package/internal/model/agent_schema_test.go +86 -0
- package/internal/model/agent_test.go +64 -0
- package/internal/model/model.go +175 -0
- package/internal/model/report.go +166 -0
- package/internal/model/stats.go +151 -0
- package/internal/model/stats_test.go +89 -0
- package/internal/model/trace_schema_test.go +67 -0
- package/internal/server/analyze.go +286 -0
- package/internal/server/analyze_test.go +297 -0
- package/internal/server/codex_index_test.go +40 -0
- package/internal/server/hardening_test.go +147 -0
- package/internal/server/reportindex.go +91 -0
- package/internal/server/reportindex_test.go +116 -0
- package/internal/server/server.go +1099 -0
- package/internal/server/server_test.go +1389 -0
- package/internal/server/static/assets/fraunces-latin-ext-standard-italic-CGbN9UgK.woff2 +0 -0
- package/internal/server/static/assets/fraunces-latin-ext-standard-normal-CJcjJNj7.woff2 +0 -0
- package/internal/server/static/assets/fraunces-latin-standard-italic-lSdLDfvT.woff2 +0 -0
- package/internal/server/static/assets/fraunces-latin-standard-normal-DihXLNYH.woff2 +0 -0
- package/internal/server/static/assets/fraunces-vietnamese-standard-italic-DxWqP7Ku.woff2 +0 -0
- package/internal/server/static/assets/fraunces-vietnamese-standard-normal-Czevyj-6.woff2 +0 -0
- package/internal/server/static/assets/index-BNoY_BiB.css +1 -0
- package/internal/server/static/assets/index-C_adLrJr.js +3 -0
- package/internal/server/static/assets/react-gcHzaSmV.js +10 -0
- package/internal/server/static/assets/schibsted-grotesk-latin-ext-wght-normal-hsMS0n0O.woff2 +0 -0
- package/internal/server/static/assets/schibsted-grotesk-latin-wght-normal-Bb8VGrTG.woff2 +0 -0
- package/internal/server/static/assets/three-DnGjZfD1.js +4012 -0
- package/internal/server/static/index.html +26 -0
- package/internal/server/tracestore.go +173 -0
- package/internal/server/tracestore_test.go +51 -0
- package/internal/textutil/truncate.go +30 -0
- package/internal/textutil/truncate_test.go +39 -0
- package/package.json +35 -0
- package/web/e2e/agent-lens.spec.ts +688 -0
- package/web/index.html +23 -0
- package/web/package-lock.json +1933 -0
- package/web/package.json +33 -0
- package/web/playwright.config.ts +24 -0
- package/web/src/App.tsx +876 -0
- package/web/src/api/client.ts +74 -0
- package/web/src/main.tsx +12 -0
- package/web/src/playback/recorder.ts +160 -0
- package/web/src/playback/reducer.ts +91 -0
- package/web/src/scene/CityScene.tsx +638 -0
- package/web/src/scene/TreeScene.tsx +656 -0
- package/web/src/scene/dirLabels.ts +145 -0
- package/web/src/scene/sceneUtils.ts +144 -0
- package/web/src/scene/textures.ts +60 -0
- package/web/src/scene/trail.ts +79 -0
- package/web/src/scene/treeLayout.ts +169 -0
- package/web/src/state/filters.ts +40 -0
- package/web/src/state/store.ts +83 -0
- package/web/src/styles.css +2565 -0
- package/web/src/types.ts +315 -0
- package/web/src/ui/AgentsPanel.tsx +376 -0
- package/web/src/ui/Dock.tsx +104 -0
- package/web/src/ui/Hud.tsx +335 -0
- package/web/src/ui/Inspector.tsx +107 -0
- package/web/src/ui/LogoMark.tsx +38 -0
- package/web/src/ui/ReportPanel.tsx +491 -0
- package/web/src/ui/SessionRail.tsx +316 -0
- package/web/src/ui/Timeline.tsx +458 -0
- package/web/src/ui/ViewPanel.tsx +45 -0
- package/web/src/ui/shortcuts.ts +4 -0
- package/web/tsconfig.json +21 -0
- package/web/vite.config.ts +28 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { create } from "zustand";
|
|
2
|
+
import type { CityMap, SessionMeta, Trace } from "../types";
|
|
3
|
+
import { loadFilters, saveFilters } from "./filters";
|
|
4
|
+
|
|
5
|
+
export type SceneView = "tree" | "terrain";
|
|
6
|
+
|
|
7
|
+
interface AppState {
|
|
8
|
+
sessions: SessionMeta[];
|
|
9
|
+
activeSessionKey?: string;
|
|
10
|
+
trace?: Trace;
|
|
11
|
+
city?: CityMap;
|
|
12
|
+
currentSeq: number;
|
|
13
|
+
selectedPath?: string;
|
|
14
|
+
view: SceneView;
|
|
15
|
+
loading: boolean;
|
|
16
|
+
error?: string;
|
|
17
|
+
hideEmpty: boolean;
|
|
18
|
+
harnessFilter?: string;
|
|
19
|
+
railCollapsed: boolean;
|
|
20
|
+
mapOnly: boolean;
|
|
21
|
+
setView: (view: SceneView) => void;
|
|
22
|
+
setSessions: (sessions: SessionMeta[]) => void;
|
|
23
|
+
setActiveSession: (key?: string) => void;
|
|
24
|
+
setData: (trace: Trace, city: CityMap) => void;
|
|
25
|
+
setCityOnly: (city: CityMap) => void;
|
|
26
|
+
setCurrentSeq: (seq: number) => void;
|
|
27
|
+
setSelectedPath: (path?: string) => void;
|
|
28
|
+
setLoading: (loading: boolean) => void;
|
|
29
|
+
setError: (error?: string) => void;
|
|
30
|
+
setHideEmpty: (hideEmpty: boolean) => void;
|
|
31
|
+
setHarnessFilter: (harness?: string) => void;
|
|
32
|
+
setRailCollapsed: (collapsed: boolean) => void;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const initialFilters = loadFilters();
|
|
36
|
+
|
|
37
|
+
const RAIL_COLLAPSED_KEY = "mindwalk.railCollapsed";
|
|
38
|
+
|
|
39
|
+
function loadRailCollapsed(): boolean {
|
|
40
|
+
try {
|
|
41
|
+
return localStorage.getItem(RAIL_COLLAPSED_KEY) === "1";
|
|
42
|
+
} catch {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export const useAppStore = create<AppState>((set, get) => ({
|
|
48
|
+
sessions: [],
|
|
49
|
+
currentSeq: 0,
|
|
50
|
+
view: "tree",
|
|
51
|
+
loading: false,
|
|
52
|
+
hideEmpty: initialFilters.hideEmpty,
|
|
53
|
+
harnessFilter: initialFilters.harness,
|
|
54
|
+
railCollapsed: loadRailCollapsed(),
|
|
55
|
+
mapOnly: false,
|
|
56
|
+
setView: (view) => set({ view }),
|
|
57
|
+
setSessions: (sessions) => set({ sessions }),
|
|
58
|
+
setActiveSession: (activeSessionKey) =>
|
|
59
|
+
set({ activeSessionKey, trace: undefined, city: undefined, currentSeq: 0, selectedPath: undefined }),
|
|
60
|
+
setData: (trace, city) => set({ trace, city, currentSeq: Math.max(0, trace.events.length - 1) }),
|
|
61
|
+
// static full-repo map: render the city with no session/trace attached
|
|
62
|
+
setCityOnly: (city) => set({ city, trace: undefined, currentSeq: 0, selectedPath: undefined, mapOnly: true }),
|
|
63
|
+
setCurrentSeq: (currentSeq) => set({ currentSeq }),
|
|
64
|
+
setSelectedPath: (selectedPath) => set({ selectedPath }),
|
|
65
|
+
setLoading: (loading) => set({ loading }),
|
|
66
|
+
setError: (error) => set({ error }),
|
|
67
|
+
setHideEmpty: (hideEmpty) => {
|
|
68
|
+
set({ hideEmpty });
|
|
69
|
+
saveFilters({ hideEmpty, harness: get().harnessFilter });
|
|
70
|
+
},
|
|
71
|
+
setHarnessFilter: (harnessFilter) => {
|
|
72
|
+
set({ harnessFilter });
|
|
73
|
+
saveFilters({ hideEmpty: get().hideEmpty, harness: harnessFilter });
|
|
74
|
+
},
|
|
75
|
+
setRailCollapsed: (railCollapsed) => {
|
|
76
|
+
set({ railCollapsed });
|
|
77
|
+
try {
|
|
78
|
+
localStorage.setItem(RAIL_COLLAPSED_KEY, railCollapsed ? "1" : "0");
|
|
79
|
+
} catch {
|
|
80
|
+
// storage unavailable: preference resets on next load
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}));
|