@superbased/observer 1.11.0 → 1.12.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/README.md +33 -84
- package/README.template.md +5 -4
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -8,9 +8,10 @@
|
|
|
8
8
|
**Homepage:** [https://superbased.app/](https://superbased.app/)
|
|
9
9
|
|
|
10
10
|
**Capture, normalize, compress, and analyze every AI coding tool call you
|
|
11
|
-
run** — across Claude Code, Codex, Cursor, Cline / Roo Code,
|
|
12
|
-
Copilot (VS Code), GitHub Copilot CLI, OpenCode, OpenClaw, Pi,
|
|
13
|
-
Antigravity, Gemini CLI,
|
|
11
|
+
run** — across Claude Code, Codex, Cursor, Cline / Roo Code + Cline CLI,
|
|
12
|
+
GitHub Copilot (VS Code), GitHub Copilot CLI, OpenCode, OpenClaw, Pi,
|
|
13
|
+
Google Antigravity, Gemini CLI, Cowork, Nous Research's Hermes Agent, and
|
|
14
|
+
Kilo Code (legacy IDE extension + CLI) — in one local single-binary tool.
|
|
14
15
|
No telemetry, no cloud, no data leaves your machine.
|
|
15
16
|
|
|
16
17
|
<p align="center">
|
|
@@ -264,21 +265,28 @@ Pure-Go via `modernc.org/sqlite`, no CGO. WAL mode by default.
|
|
|
264
265
|
|
|
265
266
|
### 4. Local dashboard (`:8081`)
|
|
266
267
|
|
|
267
|
-
|
|
268
|
-
Actions, Search), Analyze (Cost,
|
|
269
|
-
(Compression, Cache, Suggestions,
|
|
270
|
-
(Privacy, Settings). See
|
|
268
|
+
Eighteen tabs in four groups — Monitor (Overview, Live, Sessions,
|
|
269
|
+
Actions, Trajectories, Evals, Security, Search), Analyze (Cost,
|
|
270
|
+
Analysis, Tools), Optimize (Compression, Cache, Suggestions,
|
|
271
|
+
Discovery, Patterns), Configure (Privacy, Settings). See
|
|
272
|
+
[Dashboard tour](#dashboard-tour).
|
|
271
273
|
|
|
272
|
-
|
|
274
|
+
A React + TypeScript single-page app (Vite build, Recharts charts),
|
|
275
|
+
embedded in the binary and served locally. No analytics, no external
|
|
276
|
+
requests.
|
|
273
277
|
|
|
274
278
|
### 5. MCP server (stdio) — opt-in via `observer init`
|
|
275
279
|
|
|
276
|
-
|
|
280
|
+
19 read-only tools the AI client itself can call mid-conversation —
|
|
277
281
|
`check_file_freshness`, `get_last_test_result`, `search_past_outputs`,
|
|
278
|
-
etc. (plus `retrieve_stashed` when the proxy stash
|
|
282
|
+
`search_symbols`, etc. (plus `retrieve_stashed` when the proxy stash
|
|
283
|
+
is configured).
|
|
279
284
|
Powers cross-client tool sharing: if Claude Code ran `go test`,
|
|
280
285
|
Cursor's MCP query for the latest test result will return Claude
|
|
281
|
-
Code's run.
|
|
286
|
+
Code's run. The code-aware tools (`get_symbols`, `get_relations`,
|
|
287
|
+
`search_symbols`) are backed by a native, CGO-free code-intelligence
|
|
288
|
+
engine (tree-sitter via wasm) that indexes your repo locally. See
|
|
289
|
+
[MCP tools reference](#mcp-tools-reference).
|
|
282
290
|
|
|
283
291
|
**Lifecycle**: the MCP server is a stdio subprocess spawned by your
|
|
284
292
|
AI tool — not by the observer daemon. It's registered into each AI
|
|
@@ -293,9 +301,10 @@ running `init`.
|
|
|
293
301
|
|
|
294
302
|
`observer start` opens the dashboard automatically on interactive
|
|
295
303
|
launches (suppress with `--no-open`; the URL is also printed —
|
|
296
|
-
`http://127.0.0.1:8081/` by default).
|
|
304
|
+
`http://127.0.0.1:8081/` by default). Eighteen tabs in four nav groups
|
|
297
305
|
(Monitor / Analyze / Optimize / Configure) — the tour below covers the
|
|
298
306
|
core surfaces; Live (recent sessions with a real-time action feed),
|
|
307
|
+
Trajectories + Evals (OTLP trace/span capture for your own agents),
|
|
299
308
|
Search (full-text over captured tool outputs), and Privacy (capture
|
|
300
309
|
map + scrub tester) are self-explanatory once you're in. On an empty
|
|
301
310
|
database the Overview tab leads with a three-step onboarding
|
|
@@ -365,7 +374,7 @@ the tiles: a daily-spend stacked bar with Model / Project / Tool
|
|
|
365
374
|
dimension toggle, hour-of-day heatmap, top-12 expensive sessions
|
|
366
375
|
with explanatory badges (`opus`, `lc_tier`, `many_turns`,
|
|
367
376
|
`large_prompt`), period-over-period movers (top increases / decreases
|
|
368
|
-
/ new entrants), and
|
|
377
|
+
/ new entrants), and model right-sizing hints (trivial Opus
|
|
369
378
|
sessions that could have used Sonnet).
|
|
370
379
|
|
|
371
380
|
### Sessions tab
|
|
@@ -536,7 +545,7 @@ recommendations. **On by default** and entirely local: detectors are
|
|
|
536
545
|
pure reads over data the observer already stores, recomputed fresh on
|
|
537
546
|
every view — zero LLM calls, zero network.
|
|
538
547
|
|
|
539
|
-
|
|
548
|
+
Nineteen detectors across four categories:
|
|
540
549
|
|
|
541
550
|
- **cost** — session balloons (one session's context growth dominating
|
|
542
551
|
spend), idle re-cache (cache rewrites after idle gaps), long-context
|
|
@@ -544,10 +553,7 @@ Twenty detectors across four categories:
|
|
|
544
553
|
cache-write waste, prefix thrash, read-heavy sessions on expensive
|
|
545
554
|
models, effort overprovisioning, cross-session stale reads,
|
|
546
555
|
web-search spend, spend spikes ("today is 3× your daily average" —
|
|
547
|
-
the while-it's-still-happening check, linking to the Live view)
|
|
548
|
-
routing evidence ready (the advise shadow met its promotion gate
|
|
549
|
-
with routing still not enforcing — linking to the Shadow card,
|
|
550
|
-
which owns the evidence and the consent-gated promote).
|
|
556
|
+
the while-it's-still-happening check, linking to the Live view).
|
|
551
557
|
- **latency** — fast-tier premium (sessions that paid the 2× fast-tier
|
|
552
558
|
rate without needing it).
|
|
553
559
|
- **quality** — unrecovered failures, quality regressions.
|
|
@@ -626,21 +632,6 @@ suggested from your own observed spend with a daily burn-down meter,
|
|
|
626
632
|
MCP pin approvals, and one-click **compliance evidence** downloads
|
|
627
633
|
(report / JSONL / CEF / audit verification).
|
|
628
634
|
|
|
629
|
-
### Routing tab
|
|
630
|
-
|
|
631
|
-
Model routing's transparency + adoption surface. While routing is
|
|
632
|
-
off, a **Preview savings** card replays your last 30 days under any
|
|
633
|
-
policy template — read-only, nothing enabled. Once advise mode runs,
|
|
634
|
-
the page shows the decisions feed (every decision expandable to its
|
|
635
|
-
matched rule, reason codes, and cache economics), savings with CI95
|
|
636
|
-
error bars, the expanded policy rule table (never a black box,
|
|
637
|
-
demoted rules marked), the tier map with calibration overlays, the
|
|
638
|
-
model health board, and the **advise-shadow readiness ladder** with
|
|
639
|
-
its consent-gated promote control. The **Apply to tools** card turns
|
|
640
|
-
observed sub-agent evidence into per-tool native config — dry-run
|
|
641
|
-
preview, one consent per file write, backups + per-file revert, and
|
|
642
|
-
an append-only audit ledger of everything observer changed.
|
|
643
|
-
|
|
644
635
|
### Settings tab
|
|
645
636
|
|
|
646
637
|
<p align="center">
|
|
@@ -699,7 +690,7 @@ explaining the actual algorithm.
|
|
|
699
690
|
|
|
700
691
|
Once you've run `observer init` (it's opt-in — `observer start`
|
|
701
692
|
alone does NOT register the MCP server), every connected AI client
|
|
702
|
-
gets these
|
|
693
|
+
gets these 19 tools registered as an MCP server — plus
|
|
703
694
|
`retrieve_stashed` when the proxy stash is configured. They're
|
|
704
695
|
**read-only** queries against the unified database, so any agent
|
|
705
696
|
can read any other agent's recorded work — true cross-platform
|
|
@@ -720,6 +711,12 @@ tool-call sharing.
|
|
|
720
711
|
| `get_cost_summary` | Daily / per-model / per-session cost rollups |
|
|
721
712
|
| `get_redundancy_report` | Stale rereads, repeated commands, cross-tool overlap for the project |
|
|
722
713
|
| `list_actions_around` | ±N actions adjacent to a pivot `action_id` — browse a session's local timeline cheaply |
|
|
714
|
+
| `get_file` | The file's current bytes (or at a given commit), with a path-safety gate + audit |
|
|
715
|
+
| `get_symbols` | Resolve a symbol name + range to its file path + body (codeintel-backed) |
|
|
716
|
+
| `get_relations` | Codeintel BFS — who calls / is called by this symbol |
|
|
717
|
+
| `search_symbols` | Fuzzy symbol search across the project's codeintel index (Tier-C) |
|
|
718
|
+
| `cache_status` | Live prompt-cache health: which caches are warm, expiring, or cold, with value-at-risk |
|
|
719
|
+
| `get_model_recommendation` | Evidence-backed model suggestion per turn-kind, from the local Model Value Report |
|
|
723
720
|
| `retrieve_stashed` _(conditional)_| Pulls original bytes of a tool_result the proxy compressed away. Only registered when `[compression.conversation].stash` is configured. |
|
|
724
721
|
|
|
725
722
|
**Cost trade-off**: with the MCP registered, the AI client sends the
|
|
@@ -1035,54 +1032,6 @@ Full references:
|
|
|
1035
1032
|
[guard-compliance.md](https://github.com/marmutapp/superbased-observer/blob/main/docs/guard-compliance.md)
|
|
1036
1033
|
(SOC 2 / NIST mapping).
|
|
1037
1034
|
|
|
1038
|
-
## Model routing
|
|
1039
|
-
|
|
1040
|
-
The routing layer selects the right model for each KIND of work —
|
|
1041
|
-
from your own observed evidence, never a brochure — through two
|
|
1042
|
-
channels: **A** writes each AI tool's own config (claude-code
|
|
1043
|
-
per-subagent `model:` frontmatter — dry-run first, backed up,
|
|
1044
|
-
revertable, audit-ledgered; other tools get exact paste-able
|
|
1045
|
-
snippets), and **B** rewrites the `model` field on requests already
|
|
1046
|
-
transiting the proxy. It is **opt-in, advise-first, and fail-open
|
|
1047
|
-
everywhere**: a routing failure can never break a turn that would
|
|
1048
|
-
have succeeded.
|
|
1049
|
-
|
|
1050
|
-
The adoption ladder is deliberate, and every step has a dashboard
|
|
1051
|
-
surface: **preview** what a policy would have saved over your last 30
|
|
1052
|
-
days while routing is still off (a read-only replay of recorded
|
|
1053
|
-
turns) → enable **advise** (decision rows accrue; requests untouched)
|
|
1054
|
-
→ read the **shadow** (the §R22 readiness ladder: enough decisions,
|
|
1055
|
-
real net savings after cache forfeits, zero quality flags) →
|
|
1056
|
-
**promote** to enforce through a consent dialog that restates the
|
|
1057
|
-
evidence — and warns loudly when the gate is not met. Enforce
|
|
1058
|
-
rewrites within the same provider shape only, holds switches that
|
|
1059
|
-
would forfeit a warm prompt cache worth more than they save, and
|
|
1060
|
-
auto-demotes any rule whose downshifts grade as regressing
|
|
1061
|
-
(loudly, never silently). Custom `[[routing.rules]]` are editable in
|
|
1062
|
-
a lint-gated dashboard editor with a worked recipe gallery in the
|
|
1063
|
-
docs.
|
|
1064
|
-
|
|
1065
|
-
Privacy posture: decision rows and calibration are **node-local**
|
|
1066
|
-
(never pushed to an org server); org-distributed policy fragments are
|
|
1067
|
-
signed and structurally cannot flip your enforce switch — **no remote
|
|
1068
|
-
enforce toggle exists, by design**.
|
|
1069
|
-
|
|
1070
|
-
Quick start:
|
|
1071
|
-
|
|
1072
|
-
```
|
|
1073
|
-
# Preview before enabling anything (CLI twin of the dashboard card):
|
|
1074
|
-
observer routing simulate --policy value --days 30
|
|
1075
|
-
# Then: dashboard → Routing → Preview savings → Enable advise mode.
|
|
1076
|
-
observer routing shadow # the promotion evidence, any time
|
|
1077
|
-
observer routing apply --tool claude-code # Channel A, dry-run default
|
|
1078
|
-
```
|
|
1079
|
-
|
|
1080
|
-
Full reference:
|
|
1081
|
-
[model-routing.md](https://github.com/marmutapp/superbased-observer/blob/main/docs/model-routing.md)
|
|
1082
|
-
(operator guide + the first-30-days runbook + the rules recipe
|
|
1083
|
-
gallery).
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
1035
|
## Terminology and glossary
|
|
1087
1036
|
|
|
1088
1037
|
Quick reference; the in-platform help drawer (press `?` on the
|
|
@@ -1111,7 +1060,7 @@ dashboard) has the full versions with cross-links.
|
|
|
1111
1060
|
bodies. Pass 1 = per-content-type compression, Pass 2 = drop with
|
|
1112
1061
|
marker. See [Compression mechanisms](#compression-mechanisms).
|
|
1113
1062
|
- **Cross-platform tool calling** — every AI client connected via
|
|
1114
|
-
`observer init` can call the
|
|
1063
|
+
`observer init` can call the 19 MCP tools against the unified
|
|
1115
1064
|
database. So Cursor's `get_last_test_result` can return a `go test`
|
|
1116
1065
|
Claude Code ran an hour earlier.
|
|
1117
1066
|
- **Cross-thread reread** — the parent thread re-reads a file the
|
|
@@ -1387,7 +1336,7 @@ handler, dashboard, MCP server, and CLI never make an outbound network
|
|
|
1387
1336
|
call on observer's behalf. The only code paths that touch the network
|
|
1388
1337
|
are the optional API proxy (which forwards **your** requests unchanged
|
|
1389
1338
|
to the AI provider you already use) and a handful of explicit opt-in
|
|
1390
|
-
features (message-summary LLM,
|
|
1339
|
+
features (message-summary LLM, codeintel MCP, Teams org-server).
|
|
1391
1340
|
|
|
1392
1341
|
The full privacy statement — what observer stores, what it reads,
|
|
1393
1342
|
what it never stores, the explicit list of outbound-network call sites
|
package/README.template.md
CHANGED
|
@@ -8,9 +8,10 @@
|
|
|
8
8
|
**Homepage:** [https://superbased.app/](https://superbased.app/)
|
|
9
9
|
|
|
10
10
|
**Capture, normalize, compress, and analyze every AI coding tool call you
|
|
11
|
-
run** — across Claude Code, Codex, Cursor, Cline / Roo Code,
|
|
12
|
-
Copilot (VS Code), GitHub Copilot CLI, OpenCode, OpenClaw, Pi,
|
|
13
|
-
Antigravity, Gemini CLI,
|
|
11
|
+
run** — across Claude Code, Codex, Cursor, Cline / Roo Code + Cline CLI,
|
|
12
|
+
GitHub Copilot (VS Code), GitHub Copilot CLI, OpenCode, OpenClaw, Pi,
|
|
13
|
+
Google Antigravity, Gemini CLI, Cowork, Nous Research's Hermes Agent, and
|
|
14
|
+
Kilo Code (legacy IDE extension + CLI) — in one local single-binary tool.
|
|
14
15
|
No telemetry, no cloud, no data leaves your machine.
|
|
15
16
|
|
|
16
17
|
<p align="center">
|
|
@@ -263,7 +264,7 @@ handler, dashboard, MCP server, and CLI never make an outbound network
|
|
|
263
264
|
call on observer's behalf. The only code paths that touch the network
|
|
264
265
|
are the optional API proxy (which forwards **your** requests unchanged
|
|
265
266
|
to the AI provider you already use) and a handful of explicit opt-in
|
|
266
|
-
features (message-summary LLM,
|
|
267
|
+
features (message-summary LLM, codeintel MCP, Teams org-server).
|
|
267
268
|
|
|
268
269
|
The full privacy statement — what observer stores, what it reads,
|
|
269
270
|
what it never stores, the explicit list of outbound-network call sites
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@superbased/observer",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.12.0",
|
|
4
4
|
"description": "SuperBased Observer — capture, normalize, compress, and analyze AI coding tool activity across Claude Code, Codex, Cursor, Cline/Roo, and Copilot.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
@@ -36,11 +36,11 @@
|
|
|
36
36
|
"LICENSE"
|
|
37
37
|
],
|
|
38
38
|
"optionalDependencies": {
|
|
39
|
-
"@superbased/observer-linux-x64": "1.
|
|
40
|
-
"@superbased/observer-linux-arm64": "1.
|
|
41
|
-
"@superbased/observer-darwin-x64": "1.
|
|
42
|
-
"@superbased/observer-darwin-arm64": "1.
|
|
43
|
-
"@superbased/observer-win32-x64": "1.
|
|
39
|
+
"@superbased/observer-linux-x64": "1.12.0",
|
|
40
|
+
"@superbased/observer-linux-arm64": "1.12.0",
|
|
41
|
+
"@superbased/observer-darwin-x64": "1.12.0",
|
|
42
|
+
"@superbased/observer-darwin-arm64": "1.12.0",
|
|
43
|
+
"@superbased/observer-win32-x64": "1.12.0"
|
|
44
44
|
},
|
|
45
45
|
"scripts": {
|
|
46
46
|
"test": "node bin/observer.js --version"
|