AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗A client-side React toolkit for live monitoring and event dashboards, extracted from three Sigilint prototypes:
| Prototype | What it contributed |
|---|---|
offshore-platform-monitor | Schematic with sensor markers, status-only colour, alert lifecycle, raw feed, derived-state tiles, simulator |
well-site-monitor | Area banner, collapsible overlay card, binary sensors, detail drawer, saved views, live/paused |
release-dashboard | Environment matrix, event stream conventions, view hash, CloudEvents, filter facets, multiple layouts |
The prototypes are unchanged. This is a separate library to build new dashboards on, and to refactor the prototypes onto later. See docs/EXTRACTION.md.
src/core, plain TypeScript, no framework):
Dashboard store: search and facet filters, saved views,
client-side alert engine, live/paused queueing, derived summary tiles,
and an editable header.src/react):
useSyncExternalStore.DashboardApp,
which composes all of them.src/styles/toolkit.css): design tokens for light and dark,
and every component's styles. All classes are prefixed dt-.server/relay.mjs): a dependency-free Node server that
accepts webhooks and serves them to dashboards.No Next.js and no server rendering: it runs entirely in the browser, built with Vite.
npm install
npm test # core, relay and source tests (Vitest)
npm run dev # examples on http://127.0.0.1:5180/
npm run mock-server # mock service for the live-service example (port 8790)
| Example | Shows |
|---|---|
/sensor-site/ | A drawn site with sensors, scenarios on the simulator, derived tiles, weather card, area banner |
/well-pad/ | Overhead view of one well on private land: fenceline ESP32 emissions nodes, gate sensor, ESP-NOW gateway, game-cam stills, RRC and operator records, guided tour |
/release-matrix/ | Builds, deployments and test runs in a components × environments matrix |
/live-service/?source=polling (or sse, webhook, simulator) | The same dashboard fed by a real HTTP service, including test webhooks |
import { createRoot } from "react-dom/client";
import "@sigilint/dashboard-toolkit/styles.css";
import { createDashboard, createSource, localViewStorage,
DashboardProvider, DashboardApp, EntityTable } from "@sigilint/dashboard-toolkit";
const dashboard = createDashboard({
// swap "polling" for "sse", "webhook" or a simulator spec; the UI doesn't change
source: createSource({ kind: "polling", baseUrl: "/api", managesAlerts: true }),
categories: [
{ key: "process", label: "Process", code: "P", shape: "square" },
{ key: "safety", label: "Safety", code: "S", shape: "circle" },
],
groups: [{ key: "PUMPS", label: "Pump room", description: "Duty and standby pumps" }],
header: { title: "LIFT STATION 7", subtitle: "Live" },
views: { storage: localViewStorage("lift-views") },
derived: ({ value }) => [
{ key: "flow", label: "Flow", value: `${value("FT-101")} gpm`, severity: value("FT-101") < 300 ? "warning" : "normal" },
],
});
createRoot(document.getElementById("root")!).render(
<DashboardProvider dashboard={dashboard} storageKey="lift">
<DashboardApp main={<EntityTable />} />
</DashboardProvider>,
);
| Document | Covers |
|---|---|
| Architecture | Layers, data model, the Dashboard store, React bindings, folder layout, design decisions |
| Data sources | Simulator, polling, SSE, WebSocket, webhooks and the relay, manual push; the wire protocol; writing a source |
| Core API | createDashboard, state, actions and queries; filters, views, alerts, severity, formatting |
| Components | Hooks and every component's props; composing your own layout |
| Design | Tokens, colour and shape encoding, layout and breakpoints, accessibility, theming |
| Extraction | What came from which prototype, what stayed behind, and how each prototype could move onto the toolkit |
| Roadmap | Known gaps and next steps |
Version 0.1, private. The core and relay have a test suite (22 tests). The React components have been checked in headless Chrome through the three examples but have no component tests yet. The package ships as TypeScript source, so consuming apps compile it with their own bundler; there's no prebuilt library bundle yet.
Live at https://toolkit.sigilint.com, also served at https://sigilint-dashboard-toolkit.netlify.app. It is the Netlify site sigilint-dashboard-toolkit, which deploys automatically on every push to main of Sigilint/dashboard-toolkit. Build settings are in netlify.toml: npm ci && npm run build on Node 24, publishing dist/examples. The live-service example needs the mock server, so it shows no data there. See DEPLOYMENT.md in Sigilint/sigilint-web for how all the Sigilint sites are hosted.