@outsidedata/dolex 0.1.2 → 0.1.4

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 CHANGED
@@ -1,18 +1,47 @@
1
- # Dolex
1
+ ```
2
+ ██████╗ ██████╗ ██╗ ███████╗ ██╗ ██╗
3
+ ██╔══██╗ ██╔═══██╗ ██║ ██╔════╝ ╚██╗██╔╝
4
+ ██║ ██║ ██║ ██║ ██║ █████╗ ╚███╔╝
5
+ ██║ ██║ ██║ ██║ ██║ ██╔══╝ ██╔██╗
6
+ ██████╔╝ ╚██████╔╝ ███████╗ ███████╗ ██╔╝ ██╗
7
+ ╚═════╝ ╚═════╝ ╚══════╝ ╚══════╝ ╚═╝ ╚═╝
8
+ ```
2
9
 
3
- **Visualization intelligence for AI.** 43 handcrafted chart patternsfar beyond bar, line, and pie.
10
+ **Your AI data analyst.** Not a chart librarya complete analytical engine that turns raw data into insight.
4
11
 
5
- Every AI assistant suggests a bar chart. Dolex suggests the *right* chart — bump charts for rankings, beeswarms for distributions, connected dot plots for two-metric comparisons, waffle charts for precise proportions.
12
+ ---
6
13
 
7
- ## Install
14
+ ## The Problem
8
15
 
9
- ```bash
10
- npm install @outsidedata/dolex
11
- ```
16
+ Right now, getting real analysis out of an AI means one of two things:
17
+
18
+ 1. **The Python REPL loop** — Claude writes a script, runs it, gets an error, fixes it, runs it again, gets a different error, and eventually produces a matplotlib chart with default styling that you'd be embarrassed to put in a deck.
19
+
20
+ 2. **"Here's a bar chart"** — every AI assistant reaches for the same three chart types because they optimize for the most likely token, not the most informative visualization.
21
+
22
+ Dolex replaces both. No Python. No REPL. No `import pandas`. No `plt.show()`. No debugging dependency conflicts. Just point it at your data and ask questions.
23
+
24
+ ## What It Actually Is
25
+
26
+ Dolex is an MCP server that gives your AI assistant a complete data analysis toolkit:
27
+
28
+ **A query engine** — point it at a CSV or SQLite file and query it with a declarative DSL. Joins across tables, aggregations (sum, avg, median, stddev, percentiles), time bucketing (group by month/quarter/year), window functions (lag, lead, rank, running totals, percent of total), filters, having clauses, sorting, and limits. Everything pandas can do, without the Python.
29
+
30
+ **43 handcrafted visualization patterns** — not chart.js defaults. Bump charts for rankings, beeswarms for distributions, Sankey diagrams for flows, ridgeline plots for comparing distributions, connected dot plots for two-metric comparisons, calendar heatmaps for temporal patterns, and 37 more. Each pattern has selection rules that encode real data visualization expertise.
31
+
32
+ **Pattern intelligence** — Dolex doesn't just render charts. It analyzes the shape of your data and your intent, scores all 43 patterns, and recommends the one that actually communicates the insight — not the obvious one.
33
+
34
+ **Multi-view dashboards** — N-panel layouts with global filter controls and cross-view interactions. Not static images — interactive HTML with linked highlighting.
35
+
36
+ **Auto-analysis planning** — give it a dataset and it generates a structured analysis plan: which columns matter, what relationships to explore, what charts to build, with ready-to-execute queries for each step.
37
+
38
+ **Offline everything** — charts render as self-contained HTML. 33 TopoJSON map files ship with the package. Zero CDN calls, zero external dependencies. Works air-gapped.
39
+
40
+ ## Install
12
41
 
13
- ## Claude Desktop
42
+ ### Claude Desktop
14
43
 
15
- Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows):
44
+ Add to your config (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
16
45
 
17
46
  ```json
18
47
  {
@@ -25,74 +54,67 @@ Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS)
25
54
  }
26
55
  ```
27
56
 
28
- Restart Claude Desktop. Dolex's 17 tools appear in the tool picker.
29
-
30
- ## Claude Code
57
+ ### Claude Code
31
58
 
32
59
  ```bash
33
60
  claude mcp add dolex -- npx @outsidedata/dolex
34
61
  ```
35
62
 
36
- ## Other MCP Clients
37
-
38
- Any MCP-compatible client (ChatGPT, VS Code, Goose, etc.) can connect via stdio:
63
+ ### Any MCP Client
39
64
 
40
65
  ```bash
41
66
  npx @outsidedata/dolex
42
67
  ```
43
68
 
44
- ## What It Does
69
+ ## The Query Engine
45
70
 
46
- You give Claude your data and ask a question. Dolex analyzes the data shape and your intent, then picks the right visualization from 43 handcrafted patterns not the obvious chart, the *informative* one.
71
+ Drop a CSV on Claude and start asking questions. No schema definition, no imports, no setup. Dolex profiles your data automatically column types, distributions, cardinality, sample values and gives the LLM everything it needs to write smart queries.
47
72
 
48
- Charts render inline in the conversation as interactive HTML. No external dependencies, no CDN calls, fully offline.
73
+ The DSL compiles to SQL under the hood but the LLM never writes raw SQL. Instead it works with a structured, validated query language:
49
74
 
50
- ### Tools
75
+ **Aggregations**: `sum`, `avg`, `min`, `max`, `count`, `count_distinct`, `median`, `stddev`, `p25`, `p75`, `percentile`
51
76
 
52
- | Tool | What it does |
53
- |------|-------------|
54
- | `visualize` | Inline data + intent ranked chart recommendations |
55
- | `visualize_from_source` | Data source + DSL query + intent → chart recommendations |
56
- | `list_patterns` | Browse all 43 patterns |
57
- | `refine_visualization` | Tweak a chart — sort, limit, flip axes, colors, title |
58
- | `add_source` | Connect CSV, SQLite, PostgreSQL, or MySQL |
59
- | `list_sources` | List connected sources |
60
- | `remove_source` | Disconnect a source |
61
- | `describe_source` | Column profiles and sample rows |
62
- | `analyze_source` | Auto-generate an analysis plan with DSL queries |
63
- | `query_source` | Run a declarative query (joins, aggregations, filters) |
64
- | `create_dashboard` | Multi-view dashboard with filters and cross-filtering |
65
- | `refine_dashboard` | Iterate on a dashboard |
66
- | `server_status` | Inspect cached data |
67
- | `clear_cache` | Clear cached specs and results |
68
- | `report_bug` | Generate a sanitized bug report |
69
- | `export_html` | Get raw HTML for a chart |
70
- | `screenshot` | Render a chart to PNG |
77
+ **Window functions**: `lag`, `lead`, `rank`, `dense_rank`, `row_number`, `running_sum`, `running_avg`, `pct_of_total` — with partition and order control
78
+
79
+ **Time bucketing**: group by `day`, `week`, `month`, `quarter`, `year` automatic date parsing
80
+
81
+ **Joins**: inner and left joins across tables within the same source, with dot-notation field references and ambiguity detection
82
+
83
+ **Filters**: before aggregation (`filter`) and after (`having`), with operators `=`, `!=`, `>`, `>=`, `<`, `<=`, `in`, `not_in`, `between`, `like`, `is_null`, `is_not_null`
71
84
 
72
- ### Patterns
85
+ Every query is validated before execution — field names are checked against the schema with fuzzy "did you mean?" suggestions for typos.
73
86
 
74
- | Category | Patterns |
75
- |----------|----------|
87
+ ## 43 Patterns
88
+
89
+ | Category | What they're for |
90
+ |----------|-----------------|
76
91
  | **Comparison** (9) | Bar, Diverging Bar, Slope Chart, Connected Dot Plot, Bump Chart, Lollipop, Bullet, Grouped Bar, Waterfall |
77
92
  | **Distribution** (7) | Histogram, Beeswarm, Violin, Ridgeline, Strip Plot, Box Plot, Density Plot |
78
93
  | **Composition** (9) | Stacked Bar, Waffle, Treemap, Sunburst, Circle Pack, Metric, Donut, Marimekko, Icicle |
79
94
  | **Time** (7) | Line, Area, Small Multiples, Sparkline Grid, Calendar Heatmap, Stream Graph, Horizon Chart |
80
95
  | **Relationship** (5) | Scatter, Connected Scatter, Parallel Coordinates, Radar, Heatmap |
81
96
  | **Flow** (4) | Sankey, Alluvial, Chord, Funnel |
82
- | **Geo** (2) | Choropleth, Proportional Symbol |
83
-
84
- ### Data Connectors
85
-
86
- - **CSV** — load local CSV files into an in-memory SQLite database
87
- - **SQLite** — read-only access to SQLite databases
88
- - **PostgreSQL** — connect to Postgres instances
89
- - **MySQL** — connect to MySQL instances
90
-
91
- All connectors support the declarative DSL query language with joins, aggregations, groupBy (with time bucketing), filters, orderBy, and limit.
97
+ | **Geo** (2) | Choropleth, Proportional Symbol — 33 offline maps (world, US, continents, 17 countries) |
92
98
 
93
- ### Offline Maps
99
+ ## Tools
94
100
 
95
- 33 TopoJSON files ship with the package — world maps, US states/counties, 6 continent maps, and 17 country subdivision maps (Germany, France, Japan, China, etc.). All map data is embedded inline in the chart HTML. No CDN calls, ever.
101
+ | Tool | What it does |
102
+ |------|-------------|
103
+ | `add_source` | Point at a CSV or SQLite file |
104
+ | `describe_source` | Profile columns, stats, sample rows |
105
+ | `analyze_source` | Auto-generate an analysis plan |
106
+ | `query_source` | Run queries with the full DSL |
107
+ | `visualize` | Inline data → ranked chart recommendations |
108
+ | `visualize_from_source` | Query + visualize in one step |
109
+ | `refine_visualization` | Iterate on a chart |
110
+ | `create_dashboard` | Multi-view dashboard with filters |
111
+ | `refine_dashboard` | Iterate on a dashboard |
112
+ | `list_patterns` | Browse all 43 patterns |
113
+ | `export_html` | Get raw HTML |
114
+ | `screenshot` | Render to PNG |
115
+ | `server_status` | Inspect server state |
116
+ | `clear_cache` | Reset |
117
+ | `report_bug` | File a bug report |
96
118
 
97
119
  ## License
98
120
 
@@ -1 +1 @@
1
- {"version":3,"file":"bug-report.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/bug-report.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAKjE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAI/B,CAAC;AAEH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,EACzC,OAAO,EAAE,OAAO,GACf;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAKlC;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAa1F;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKnD;AA0BD,UAAU,UAAU;IAClB,aAAa,EAAE,aAAa,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,IAChC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC;;;;;GA8FzD"}
1
+ {"version":3,"file":"bug-report.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/bug-report.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAUjE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAI/B,CAAC;AAEH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,EACzC,OAAO,EAAE,OAAO,GACf;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAKlC;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAa1F;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKnD;AA0BD,UAAU,UAAU;IAClB,aAAa,EAAE,aAAa,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,IAChC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC;;;;;GA8FzD"}
@@ -12,7 +12,13 @@ import { resultCacheStats } from './result-cache.js';
12
12
  import { operationLog } from './operation-log.js';
13
13
  import { formatUptime } from './shared.js';
14
14
  const require = createRequire(import.meta.url);
15
- const { version: dolexVersion } = require('../../../package.json');
15
+ let dolexVersion;
16
+ try {
17
+ dolexVersion = require('../../../../package.json').version;
18
+ }
19
+ catch {
20
+ dolexVersion = require('../../../package.json').version;
21
+ }
16
22
  export const bugReportInputSchema = z.object({
17
23
  description: z.string().describe('What went wrong — describe the issue'),
18
24
  specId: z.string().optional().describe('Spec ID from a recent visualize/refine call to include context'),
@@ -1 +1 @@
1
- {"version":3,"file":"bug-report.js","sourceRoot":"","sources":["../../../../src/mcp/tools/bug-report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bug-report.js","sourceRoot":"","sources":["../../../../src/mcp/tools/bug-report.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,12 @@
1
1
  {
2
2
  "name": "@outsidedata/dolex",
3
- "version": "0.1.2",
4
- "description": "Visualization intelligence for AI — 43 handcrafted chart patterns with React components, MCP server, and self-contained HTML builders",
3
+ "version": "0.1.4",
4
+ "description": "AI data analyst — 43 handcrafted visualization patterns, query engine with window functions, and auto-analysis planning via MCP",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
+ "engines": {
8
+ "node": ">=18.0.0"
9
+ },
7
10
  "keywords": [
8
11
  "visualization",
9
12
  "charts",
@@ -16,7 +16,12 @@ import { formatUptime } from './shared.js';
16
16
  import type { SourceManager } from '../../connectors/manager.js';
17
17
 
18
18
  const require = createRequire(import.meta.url);
19
- const { version: dolexVersion } = require('../../../package.json');
19
+ let dolexVersion: string;
20
+ try {
21
+ dolexVersion = require('../../../../package.json').version;
22
+ } catch {
23
+ dolexVersion = require('../../../package.json').version;
24
+ }
20
25
 
21
26
  export const bugReportInputSchema = z.object({
22
27
  description: z.string().describe('What went wrong — describe the issue'),