@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.
- package/README.md +84 -35
- 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
|
|
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
|
-
##
|
|
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
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
-
|
|
73
|
+
### CLI Commands
|
|
37
74
|
|
|
38
75
|
```bash
|
|
39
|
-
roux init [directory] # Initialize
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
114
|
+
### MCP Client Integration
|
|
77
115
|
|
|
78
|
-
`roux init`
|
|
116
|
+
`roux init` creates `.mcp.json` in your project directory. MCP clients detect and offer to enable the server automatically.
|
|
79
117
|
|
|
80
|
-
|
|
118
|
+
## Roadmap
|
|
81
119
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
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
|
-
|
|
90
|
-
-
|
|
91
|
-
-
|
|
92
|
-
-
|
|
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
|
|
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
|
|
100
|
-
5. **Serving** — Exposes
|
|
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.
|
|
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
|
}
|