@booboo-brain/panel 0.5.1 → 0.5.3
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/README.md +52 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +90 -4
- package/dist-app/assets/index-BhChad7x.js +586 -0
- package/dist-app/index.html +1 -1
- package/package.json +2 -2
- package/dist-app/assets/index-zRekZLo0.js +0 -562
package/README.md
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# @booboo-brain/panel
|
|
2
|
+
|
|
3
|
+
The [Booboo](https://github.com/jessedu29260-netizen/booboo) **organigram** — your agent
|
|
4
|
+
fleet as a real org chart, where the chart is the **authority**, not a diagram. Drag an
|
|
5
|
+
agent under a new parent, hit apply, and the org file changes: validated before every
|
|
6
|
+
write (a cycle can never land), versioned in git. Agents that boot with `booboo_boot`
|
|
7
|
+
obey the new shape next session.
|
|
8
|
+
|
|
9
|
+
## Standalone (no React app needed)
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
booboo panel --org org.booboo.json [--snapshot brain.json] [--port 8990] [--no-open]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
The package ships a prebuilt static app (`dist-app/`) that the
|
|
16
|
+
[`@booboo-brain/cli`](https://www.npmjs.com/package/@booboo-brain/cli) `panel` command
|
|
17
|
+
serves directly. Pass `--snapshot` to light up live memory/report counts on each dossier.
|
|
18
|
+
|
|
19
|
+
Five tabs over one org file + one snapshot:
|
|
20
|
+
|
|
21
|
+
| Tab | What it shows |
|
|
22
|
+
|-----|---------------|
|
|
23
|
+
| **organigram** | the drag-drop hierarchy — every agent a card: rules, skills, buckets, latest reports |
|
|
24
|
+
| **buckets** | each memory bucket with live counts and the agents that reach it |
|
|
25
|
+
| **reports** | what the fleet closed, newest first, filterable per agent |
|
|
26
|
+
| **rules** | who declares each rule, who inherits it (rules inherit top-down) |
|
|
27
|
+
| **graph** | the 3D brain, embedded ([`@booboo-brain/viewer`](https://www.npmjs.com/package/@booboo-brain/viewer)) |
|
|
28
|
+
|
|
29
|
+
Reports and buckets fill two ways: **live**, when an agent calls `booboo_remember` /
|
|
30
|
+
`booboo_report` over MCP (durable journal writes, no rebuild), or **in bulk** from your
|
|
31
|
+
own tables via config — see the repo's
|
|
32
|
+
[docs/CONFIG.md](https://github.com/jessedu29260-netizen/booboo/blob/main/docs/CONFIG.md).
|
|
33
|
+
|
|
34
|
+
## As a React component
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
npm install @booboo-brain/panel react react-dom
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
```tsx
|
|
41
|
+
import { Panel } from "@booboo-brain/panel";
|
|
42
|
+
|
|
43
|
+
// Standalone default: same-origin /api/*. A host app injects its own backend:
|
|
44
|
+
export function OrgPage() {
|
|
45
|
+
return <Panel api={(path, init) => fetch(`/my-backend${path}`, init).then((r) => r.json())} />;
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
`Panel` mounts the full five-tab app; the `api` prop (`ApiFn`) routes every read/write so
|
|
50
|
+
you can back it with anything that speaks the same `/api/*` shape the CLI serves.
|
|
51
|
+
|
|
52
|
+
Part of [Booboo](https://github.com/jessedu29260-netizen/booboo) — the unified operational brain. MIT.
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -511,10 +511,34 @@ body { font-family: var(--font); color: var(--ink); background: var(--bg); overf
|
|
|
511
511
|
.pnl-fatal.calm { color: var(--ink-2); }
|
|
512
512
|
|
|
513
513
|
@media (max-width: 760px) {
|
|
514
|
-
|
|
515
|
-
.
|
|
514
|
+
/* compact chrome */
|
|
515
|
+
.bar { gap: 8px 14px; padding: 9px 12px; }
|
|
516
|
+
.bar-brand { font-size: 13px; }
|
|
517
|
+
.bar-stats { gap: 11px; font-size: 11px; }
|
|
518
|
+
.bar-stats b { font-size: 12.5px; }
|
|
519
|
+
.bar-actions { gap: 6px; }
|
|
520
|
+
.btn { padding: 6px 11px; font-size: 11.5px; }
|
|
521
|
+
.tabs { padding: 0 4px; }
|
|
522
|
+
.tab { padding: 10px 9px 9px; font-size: 11.5px; }
|
|
523
|
+
.tree { padding: 12px 8px 40px; }
|
|
524
|
+
.tree-hint { display: none; }
|
|
516
525
|
.ag { max-width: 100%; }
|
|
517
526
|
.ag-role { display: none; }
|
|
527
|
+
.screen { padding: 18px 13px 60px; }
|
|
528
|
+
/* the dossier becomes a BOTTOM SHEET inside the pane — the chart above stays
|
|
529
|
+
tappable to switch agents; the ✕ closes. ABSOLUTE (not fixed) so it can
|
|
530
|
+
never overlap an embedding host's chrome. */
|
|
531
|
+
.doss {
|
|
532
|
+
position: absolute; left: 0; right: 0; bottom: 0; top: 34%;
|
|
533
|
+
width: auto; z-index: 6; border-radius: 16px 16px 0 0;
|
|
534
|
+
border-top: 1px solid var(--line);
|
|
535
|
+
box-shadow: 0 -18px 50px rgba(0, 0, 0, 0.55);
|
|
536
|
+
}
|
|
537
|
+
.doss { animation: sheetup 0.25s ease both; }
|
|
538
|
+
@keyframes sheetup { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
|
|
539
|
+
.doss-close { display: grid; }
|
|
540
|
+
/* zoom control clears the sheet — top-right of the chart */
|
|
541
|
+
.zoomer { top: 4px; right: 8px; bottom: auto; }
|
|
518
542
|
}
|
|
519
543
|
`;
|
|
520
544
|
|
|
@@ -873,6 +897,7 @@ function Dossier({
|
|
|
873
897
|
onAdd,
|
|
874
898
|
onRemove,
|
|
875
899
|
onSelect,
|
|
900
|
+
onClose,
|
|
876
901
|
health = null
|
|
877
902
|
}) {
|
|
878
903
|
const api = useApi();
|
|
@@ -963,7 +988,8 @@ function Dossier({
|
|
|
963
988
|
] }),
|
|
964
989
|
/* @__PURE__ */ jsxs("div", { className: "doss-head-actions", children: [
|
|
965
990
|
!edit && /* @__PURE__ */ jsx("button", { className: "doss-3d", title: "edit this agent", onClick: startEdit, children: "\u270E edit" }),
|
|
966
|
-
hasSnapshot && /* @__PURE__ */ jsx("button", { className: "doss-3d", title: "see the whole brain in 3D", onClick: () => nav("/graph"), children: "\u25C9 3D" })
|
|
991
|
+
hasSnapshot && /* @__PURE__ */ jsx("button", { className: "doss-3d", title: "see the whole brain in 3D", onClick: () => nav("/graph"), children: "\u25C9 3D" }),
|
|
992
|
+
/* @__PURE__ */ jsx("button", { className: "doss-close", title: "close the dossier", "aria-label": "close the dossier", onClick: onClose, children: "\u2715" })
|
|
967
993
|
] })
|
|
968
994
|
] }),
|
|
969
995
|
edit && /* @__PURE__ */ jsxs("div", { className: "doss-edit", children: [
|
|
@@ -1275,6 +1301,7 @@ function OrgScreen({
|
|
|
1275
1301
|
onAdd,
|
|
1276
1302
|
onRemove,
|
|
1277
1303
|
onSelect: setSelected,
|
|
1304
|
+
onClose: () => setSelected(null),
|
|
1278
1305
|
health
|
|
1279
1306
|
}
|
|
1280
1307
|
)
|
|
@@ -1707,8 +1734,67 @@ function Panel({ api = defaultApi } = {}) {
|
|
|
1707
1734
|
] });
|
|
1708
1735
|
}
|
|
1709
1736
|
|
|
1737
|
+
// package.json
|
|
1738
|
+
var package_default = {
|
|
1739
|
+
name: "@booboo-brain/panel",
|
|
1740
|
+
version: "0.5.3",
|
|
1741
|
+
description: "Booboo panel \u2014 the organigram. Run your agents like a company: a drag-drop hierarchy your agents boot from, with buckets, reports, rules and the 3D graph, over one org file + snapshot.",
|
|
1742
|
+
license: "MIT",
|
|
1743
|
+
repository: {
|
|
1744
|
+
type: "git",
|
|
1745
|
+
url: "git+https://github.com/jessedu29260-netizen/booboo.git",
|
|
1746
|
+
directory: "packages/panel"
|
|
1747
|
+
},
|
|
1748
|
+
bugs: {
|
|
1749
|
+
url: "https://github.com/jessedu29260-netizen/booboo/issues"
|
|
1750
|
+
},
|
|
1751
|
+
homepage: "https://github.com/jessedu29260-netizen/booboo#readme",
|
|
1752
|
+
type: "module",
|
|
1753
|
+
main: "./dist/index.js",
|
|
1754
|
+
module: "./dist/index.js",
|
|
1755
|
+
types: "./dist/index.d.ts",
|
|
1756
|
+
exports: {
|
|
1757
|
+
".": {
|
|
1758
|
+
types: "./dist/index.d.ts",
|
|
1759
|
+
import: "./dist/index.js"
|
|
1760
|
+
},
|
|
1761
|
+
"./package.json": "./package.json"
|
|
1762
|
+
},
|
|
1763
|
+
files: [
|
|
1764
|
+
"dist",
|
|
1765
|
+
"dist-app"
|
|
1766
|
+
],
|
|
1767
|
+
scripts: {
|
|
1768
|
+
build: "tsup src/index.ts --format esm --dts --clean --external react,react-dom,@booboo-brain/spec && vite build --config vite.app.config.ts",
|
|
1769
|
+
dev: "vite"
|
|
1770
|
+
},
|
|
1771
|
+
peerDependencies: {
|
|
1772
|
+
react: ">=18",
|
|
1773
|
+
"react-dom": ">=18"
|
|
1774
|
+
},
|
|
1775
|
+
dependencies: {
|
|
1776
|
+
"@booboo-brain/spec": "workspace:*"
|
|
1777
|
+
},
|
|
1778
|
+
devDependencies: {
|
|
1779
|
+
react: "^19.0.0",
|
|
1780
|
+
"react-dom": "^19.0.0",
|
|
1781
|
+
"@types/react": "^19.0.0",
|
|
1782
|
+
"@types/react-dom": "^19.0.0",
|
|
1783
|
+
vite: "^6.0.0",
|
|
1784
|
+
"@vitejs/plugin-react": "^4.3.0",
|
|
1785
|
+
tsup: "^8",
|
|
1786
|
+
typescript: "^5"
|
|
1787
|
+
},
|
|
1788
|
+
publishConfig: {
|
|
1789
|
+
access: "public"
|
|
1790
|
+
},
|
|
1791
|
+
engines: {
|
|
1792
|
+
node: ">=18"
|
|
1793
|
+
}
|
|
1794
|
+
};
|
|
1795
|
+
|
|
1710
1796
|
// src/index.ts
|
|
1711
|
-
var PANEL_VERSION =
|
|
1797
|
+
var PANEL_VERSION = package_default.version;
|
|
1712
1798
|
export {
|
|
1713
1799
|
PANEL_VERSION,
|
|
1714
1800
|
Panel
|