@gettymade/roux 0.1.0 → 0.1.2

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.
Files changed (2) hide show
  1. package/README.md +84 -35
  2. package/package.json +5 -3
package/README.md CHANGED
@@ -3,9 +3,51 @@ title: Readme
3
3
  ---
4
4
  # Roux
5
5
 
6
- A Graph Programming Interface (GPI) for knowledge bases. Query your markdown files with semantic search and graph traversal via MCP.
6
+ A **Graph Programming Interface (GPI)** for building and maintaining knowledge graphs. Semantic search, graph traversal, and AI co-authoring through a unified interface—regardless of storage backend.
7
7
 
8
- ## Quick Start
8
+ ## What It Does
9
+
10
+ - **Semantic search** — Find nodes by meaning, not just keywords
11
+ - **Graph traversal** — Follow links, find paths, identify central nodes
12
+ - **CRUD operations** — Create, read, update, delete nodes programmatically
13
+ - **AI co-authoring** — Let AI assistants read and write knowledge alongside humans
14
+
15
+ The graph is always the target structure. Data that isn't natively a graph gets transformed during ingestion. The query model stays constant regardless of source or storage.
16
+
17
+ ## Architecture
18
+
19
+ Roux is a platform of pluggable modules. GraphCore is the coordination hub—it defines provider interfaces but has zero functionality without them.
20
+
21
+ ```
22
+ ┌─────────────────────────────┐
23
+ │ External Interfaces │ MCP Server, REST API, CLI
24
+ └──────────────┬──────────────┘
25
+
26
+ ┌──────────────▼──────────────┐
27
+ │ GraphCore │ Orchestration hub
28
+ └──────────────┬──────────────┘
29
+
30
+ ┌──────────────▼──────────────┐
31
+ │ Providers │ Store, Embedding, LLM, ...
32
+ └─────────────────────────────┘
33
+ ```
34
+
35
+ **Store backends** span zero infrastructure to enterprise scale:
36
+ - File-based: DocStore (markdown directories)
37
+ - Embedded: SQLite, LevelGraph
38
+ - Standalone: SurrealDB, FalkorDB, Memgraph
39
+ - Enterprise: Neo4j, ArangoDB, Amazon Neptune
40
+
41
+ **Embedding providers** for semantic search:
42
+ - Local: transformers.js (default, zero config)
43
+ - Self-hosted: Ollama
44
+ - Cloud: OpenAI
45
+
46
+ Same queries, same results—regardless of what's plugged in.
47
+
48
+ ## Current State (v0.1.x)
49
+
50
+ Roux ships today with **DocStore**: point it at a markdown directory, query via MCP, edit in Obsidian.
9
51
 
10
52
  ```bash
11
53
  # Install
@@ -19,34 +61,27 @@ roux init
19
61
  roux serve
20
62
  ```
21
63
 
22
- ## What It Does
23
-
24
- Roux turns a folder of interconnected markdown files into a queryable knowledge graph:
25
-
26
- - **Semantic search** — Find notes by meaning, not just keywords
27
- - **Graph traversal** — Follow links, find paths between concepts, identify central nodes
28
- - **AI co-authoring** — Let Claude (or any MCP client) read, create, and update notes
29
- - **Human-editable** — Files stay as plain markdown, no lock-in
30
-
31
- ## Requirements
64
+ Then ask your AI things like:
65
+ - "Search my notes for distributed systems concepts"
66
+ - "What links to my note on consensus algorithms?"
67
+ - "Create a new note summarizing what I learned today"
32
68
 
69
+ ### Requirements
33
70
  - Node.js 20+
34
71
  - Markdown files with optional wiki-links (`[[like this]]`)
35
72
 
36
- ## CLI Commands
73
+ ### CLI Commands
37
74
 
38
75
  ```bash
39
- roux init [directory] # Initialize Roux (creates roux.yaml, .roux/, .mcp.json)
76
+ roux init [directory] # Initialize (creates roux.yaml, .roux/, .mcp.json)
40
77
  roux serve [directory] # Start MCP server with file watching
41
- roux serve --no-watch # Start without watching for file changes
78
+ roux serve --no-watch # Start without watching for changes
42
79
  roux status [directory] # Show node/edge/embedding counts
43
80
  roux viz [directory] # Generate interactive graph visualization
44
81
  roux viz --open # Generate and open in browser
45
82
  ```
46
83
 
47
- ## MCP Tools
48
-
49
- When running via `roux serve`, these tools are available to MCP clients:
84
+ ### MCP Tools
50
85
 
51
86
  | Tool | Description |
52
87
  |------|-------------|
@@ -57,11 +92,14 @@ When running via `roux serve`, these tools are available to MCP clients:
57
92
  | `get_hubs` | Most central nodes by in-degree |
58
93
  | `search_by_tags` | Filter by frontmatter tags |
59
94
  | `random_node` | Random discovery |
95
+ | `list_nodes` | List with filters and pagination |
96
+ | `resolve_nodes` | Batch name-to-ID resolution |
97
+ | `nodes_exist` | Batch existence check |
60
98
  | `create_node` | Create new markdown file |
61
99
  | `update_node` | Update existing file |
62
100
  | `delete_node` | Delete file |
63
101
 
64
- ## Configuration
102
+ ### Configuration
65
103
 
66
104
  Minimal `roux.yaml` (created by `roux init`):
67
105
 
@@ -73,34 +111,45 @@ providers:
73
111
 
74
112
  Embeddings use local transformers.js by default. No external services required.
75
113
 
76
- ## MCP Client Integration
114
+ ### MCP Client Integration
77
115
 
78
- `roux init` automatically creates `.mcp.json` in your project directory. MCP clients will detect and offer to enable the server.
116
+ `roux init` creates `.mcp.json` in your project directory. MCP clients detect and offer to enable the server automatically.
79
117
 
80
- No manual configuration needed — just:
118
+ ## Roadmap
81
119
 
82
- ```bash
83
- cd ~/my-notes
84
- roux init
85
- # Open the directory in your MCP client
86
- # It will detect .mcp.json and offer to enable the roux server
87
- ```
120
+ **Near term:**
121
+ - LLMProvider — Text generation for assisted features
122
+ - Structural embeddings — Graph-aware vectors
88
123
 
89
- Then ask your AI things like:
90
- - "Search my notes for distributed systems concepts"
91
- - "What links to my note on consensus algorithms?"
92
- - "Create a new note summarizing what I learned today"
124
+ **Medium term:**
125
+ - Neo4jStore Graph database backend for scale
126
+ - IngestionProvider Entity extraction, edge inference
127
+ - REST/GraphQL API
128
+
129
+ **Future:**
130
+ - Multi-store federation
131
+ - Multi-tenancy and access control
132
+
133
+ See [implementation-plan.md](docs/implementation-plan.md) for details.
93
134
 
94
135
  ## How It Works
95
136
 
96
- 1. **Parsing** — Reads markdown files, extracts frontmatter and wiki-links
137
+ 1. **Parsing** — Reads files, extracts frontmatter and wiki-links
97
138
  2. **Caching** — Stores parsed nodes in SQLite for fast access
98
139
  3. **Embedding** — Generates semantic vectors using local transformers.js
99
- 4. **Graph** — Builds in-memory graph from wiki-link relationships
100
- 5. **Serving** — Exposes all operations via MCP protocol
140
+ 4. **Graph** — Builds in-memory graph from link relationships
141
+ 5. **Serving** — Exposes operations via MCP protocol
101
142
 
102
143
  File changes sync automatically when running `roux serve`.
103
144
 
145
+ ## Documentation
146
+
147
+ Architecture and design decisions live in `docs/`:
148
+ - [GPI](docs/GPI.md) — The conceptual frame
149
+ - [GraphCore](docs/GraphCore.md) — The orchestration hub
150
+ - [MVP](docs/MVP.md) — Current scope and success criteria
151
+ - [Implementation Plan](docs/implementation-plan.md) — Full roadmap
152
+
104
153
  ## License
105
154
 
106
155
  MIT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gettymade/roux",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Graph Programming Interface for knowledge bases",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -21,7 +21,10 @@
21
21
  "lint:fix": "eslint src tests --fix",
22
22
  "format": "prettier --write .",
23
23
  "format:check": "prettier --check .",
24
- "typecheck": "tsc --noEmit"
24
+ "typecheck": "tsc --noEmit",
25
+ "release:patch": "npm version patch && npm publish && git push && git push --tags",
26
+ "release:minor": "npm version minor && npm publish && git push && git push --tags",
27
+ "release:major": "npm version major && npm publish && git push && git push --tags"
25
28
  },
26
29
  "keywords": [
27
30
  "graph",
@@ -61,7 +64,6 @@
61
64
  "graphology-shortest-path": "^2.1.0",
62
65
  "graphology-types": "^0.24.8",
63
66
  "gray-matter": "^4.0.3",
64
- "roux": "github:alexgetty/roux",
65
67
  "yaml": "^2.8.2"
66
68
  }
67
69
  }