ricoeur 0.1.1__tar.gz

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.
@@ -0,0 +1,13 @@
1
+ # Python-generated files
2
+ __pycache__/
3
+ *.py[oc]
4
+ build/
5
+ dist/
6
+ wheels/
7
+ *.egg-info
8
+
9
+ # Virtual environments
10
+ .venv
11
+
12
+ # Project specific
13
+ .claude/
@@ -0,0 +1 @@
1
+ 3.10
ricoeur-0.1.1/PKG-INFO ADDED
@@ -0,0 +1,178 @@
1
+ Metadata-Version: 2.4
2
+ Name: ricoeur
3
+ Version: 0.1.1
4
+ Summary: A local-first archive, search, and intelligence engine for your LLM conversation history.
5
+ Requires-Python: >=3.10
6
+ Requires-Dist: click>=8.1
7
+ Requires-Dist: rich>=13.0
8
+ Requires-Dist: tomli-w>=1.0
9
+ Requires-Dist: tomli>=2.0; python_version < '3.11'
10
+ Provides-Extra: all
11
+ Requires-Dist: bertopic>=0.16; extra == 'all'
12
+ Requires-Dist: duckdb>=0.10; extra == 'all'
13
+ Requires-Dist: fastapi>=0.110; extra == 'all'
14
+ Requires-Dist: fasttext-wheel>=0.9; extra == 'all'
15
+ Requires-Dist: mcp>=1.0; extra == 'all'
16
+ Requires-Dist: numpy>=1.24; extra == 'all'
17
+ Requires-Dist: pyarrow>=14.0; extra == 'all'
18
+ Requires-Dist: sentence-transformers>=2.2; extra == 'all'
19
+ Requires-Dist: textual>=0.40; extra == 'all'
20
+ Requires-Dist: uvicorn>=0.27; extra == 'all'
21
+ Provides-Extra: analytics
22
+ Requires-Dist: duckdb>=0.10; extra == 'analytics'
23
+ Requires-Dist: pyarrow>=14.0; extra == 'analytics'
24
+ Provides-Extra: embeddings
25
+ Requires-Dist: numpy>=1.24; extra == 'embeddings'
26
+ Requires-Dist: sentence-transformers>=2.2; extra == 'embeddings'
27
+ Provides-Extra: langdetect
28
+ Requires-Dist: fasttext-wheel>=0.9; extra == 'langdetect'
29
+ Provides-Extra: mcp
30
+ Requires-Dist: mcp>=1.0; extra == 'mcp'
31
+ Provides-Extra: serve
32
+ Requires-Dist: fastapi>=0.110; extra == 'serve'
33
+ Requires-Dist: uvicorn>=0.27; extra == 'serve'
34
+ Provides-Extra: topics
35
+ Requires-Dist: bertopic>=0.16; extra == 'topics'
36
+ Requires-Dist: numpy>=1.24; extra == 'topics'
37
+ Provides-Extra: tui
38
+ Requires-Dist: textual>=0.40; extra == 'tui'
39
+ Description-Content-Type: text/markdown
40
+
41
+ # ricoeur
42
+
43
+ **A local-first archive, search, and intelligence engine for your LLM conversation history.**
44
+
45
+ *Named after Paul Ricoeur, whose work on narrative identity argued that we understand ourselves through the stories we construct from our lived experience. ricoeur reconstructs the narrative of your intellectual life from thousands of AI conversations.*
46
+
47
+ ## Quickstart
48
+
49
+ ```bash
50
+ # Install with uv
51
+ uv sync
52
+
53
+ # Initialize the database
54
+ uv run ricoeur init
55
+
56
+ # Import your ChatGPT export
57
+ uv run ricoeur import chatgpt ~/Downloads/chatgpt-export/conversations.json
58
+
59
+ # Import your Claude export
60
+ uv run ricoeur import claude ~/Downloads/claude-export/conversations.json
61
+
62
+ # See what you've got
63
+ uv run ricoeur stats
64
+
65
+ # Search your history
66
+ uv run ricoeur search "thermal simulation"
67
+ ```
68
+
69
+ ## Commands
70
+
71
+ | Command | Description |
72
+ |---------|-------------|
73
+ | `ricoeur init` | Initialize database and config at `~/.ricoeur/` |
74
+ | `ricoeur import chatgpt <path>` | Import from ChatGPT export (.json or .zip) |
75
+ | `ricoeur import claude <path>` | Import from Claude export (.json or .zip) |
76
+ | `ricoeur search <query>` | Full-text search across all conversations |
77
+ | `ricoeur show <id>` | Display a conversation with formatting |
78
+ | `ricoeur stats` | Analytics dashboard |
79
+ | `ricoeur config show` | Print current configuration |
80
+ | `ricoeur config set <key> <value>` | Update a config value |
81
+
82
+ ## Search
83
+
84
+ ```bash
85
+ # Basic full-text search
86
+ ricoeur search "streamlit dashboard"
87
+
88
+ # Filter by platform, language, date
89
+ ricoeur search "error fix" --platform chatgpt --lang en
90
+ ricoeur search "strategie marketing" --lang fr --since 2025-01-01
91
+
92
+ # Search only in code blocks
93
+ ricoeur search "import pandas" --code
94
+
95
+ # Output formats: table (default), json, full, ids
96
+ ricoeur search "MCP" --format json
97
+ ```
98
+
99
+ ## Import options
100
+
101
+ ```bash
102
+ # Re-import safely (updates existing, adds new, never deletes)
103
+ ricoeur import chatgpt conversations.json --update
104
+
105
+ # Dry run — parse and validate without writing
106
+ ricoeur import chatgpt conversations.json --dry-run
107
+
108
+ # Only import recent conversations
109
+ ricoeur import claude conversations.json --since 2025-01-01
110
+ ```
111
+
112
+ ## Optional extras
113
+
114
+ Install additional capabilities as needed:
115
+
116
+ ```bash
117
+ # Semantic search with sentence-transformers
118
+ uv sync --extra embeddings
119
+
120
+ # Topic modeling with BERTopic
121
+ uv sync --extra topics
122
+
123
+ # Analytics with DuckDB + Parquet
124
+ uv sync --extra analytics
125
+
126
+ # Terminal UI
127
+ uv sync --extra tui
128
+
129
+ # MCP server for Claude Desktop
130
+ uv sync --extra mcp
131
+
132
+ # Web API server
133
+ uv sync --extra serve
134
+
135
+ # Everything
136
+ uv sync --extra all
137
+ ```
138
+
139
+ ## Configuration
140
+
141
+ Config lives at `~/.ricoeur/config.toml`:
142
+
143
+ ```toml
144
+ [general]
145
+ home = "~/.ricoeur"
146
+ default_language = "en"
147
+
148
+ [embeddings]
149
+ model = "st:paraphrase-multilingual-mpnet-base-v2"
150
+ batch_size = 64
151
+ device = "auto"
152
+
153
+ [topics]
154
+ min_cluster_size = 15
155
+ n_topics = "auto"
156
+
157
+ [summarize]
158
+ enabled = false
159
+ model = "ollama:llama3.2"
160
+ ```
161
+
162
+ Override the data directory with the `RICOEUR_HOME` environment variable.
163
+
164
+ ## Architecture
165
+
166
+ ```
167
+ ~/.ricoeur/
168
+ ├── config.toml # Configuration
169
+ ├── ricoeur.db # SQLite database (FTS5 search)
170
+ ├── analytics/ # Parquet files for DuckDB
171
+ ├── embeddings/ # Sentence-transformer vectors
172
+ ├── models/ # Saved BERTopic models
173
+ └── attachments/ # Extracted files
174
+ ```
175
+
176
+ ## License
177
+
178
+ MIT
@@ -0,0 +1,138 @@
1
+ # ricoeur
2
+
3
+ **A local-first archive, search, and intelligence engine for your LLM conversation history.**
4
+
5
+ *Named after Paul Ricoeur, whose work on narrative identity argued that we understand ourselves through the stories we construct from our lived experience. ricoeur reconstructs the narrative of your intellectual life from thousands of AI conversations.*
6
+
7
+ ## Quickstart
8
+
9
+ ```bash
10
+ # Install with uv
11
+ uv sync
12
+
13
+ # Initialize the database
14
+ uv run ricoeur init
15
+
16
+ # Import your ChatGPT export
17
+ uv run ricoeur import chatgpt ~/Downloads/chatgpt-export/conversations.json
18
+
19
+ # Import your Claude export
20
+ uv run ricoeur import claude ~/Downloads/claude-export/conversations.json
21
+
22
+ # See what you've got
23
+ uv run ricoeur stats
24
+
25
+ # Search your history
26
+ uv run ricoeur search "thermal simulation"
27
+ ```
28
+
29
+ ## Commands
30
+
31
+ | Command | Description |
32
+ |---------|-------------|
33
+ | `ricoeur init` | Initialize database and config at `~/.ricoeur/` |
34
+ | `ricoeur import chatgpt <path>` | Import from ChatGPT export (.json or .zip) |
35
+ | `ricoeur import claude <path>` | Import from Claude export (.json or .zip) |
36
+ | `ricoeur search <query>` | Full-text search across all conversations |
37
+ | `ricoeur show <id>` | Display a conversation with formatting |
38
+ | `ricoeur stats` | Analytics dashboard |
39
+ | `ricoeur config show` | Print current configuration |
40
+ | `ricoeur config set <key> <value>` | Update a config value |
41
+
42
+ ## Search
43
+
44
+ ```bash
45
+ # Basic full-text search
46
+ ricoeur search "streamlit dashboard"
47
+
48
+ # Filter by platform, language, date
49
+ ricoeur search "error fix" --platform chatgpt --lang en
50
+ ricoeur search "strategie marketing" --lang fr --since 2025-01-01
51
+
52
+ # Search only in code blocks
53
+ ricoeur search "import pandas" --code
54
+
55
+ # Output formats: table (default), json, full, ids
56
+ ricoeur search "MCP" --format json
57
+ ```
58
+
59
+ ## Import options
60
+
61
+ ```bash
62
+ # Re-import safely (updates existing, adds new, never deletes)
63
+ ricoeur import chatgpt conversations.json --update
64
+
65
+ # Dry run — parse and validate without writing
66
+ ricoeur import chatgpt conversations.json --dry-run
67
+
68
+ # Only import recent conversations
69
+ ricoeur import claude conversations.json --since 2025-01-01
70
+ ```
71
+
72
+ ## Optional extras
73
+
74
+ Install additional capabilities as needed:
75
+
76
+ ```bash
77
+ # Semantic search with sentence-transformers
78
+ uv sync --extra embeddings
79
+
80
+ # Topic modeling with BERTopic
81
+ uv sync --extra topics
82
+
83
+ # Analytics with DuckDB + Parquet
84
+ uv sync --extra analytics
85
+
86
+ # Terminal UI
87
+ uv sync --extra tui
88
+
89
+ # MCP server for Claude Desktop
90
+ uv sync --extra mcp
91
+
92
+ # Web API server
93
+ uv sync --extra serve
94
+
95
+ # Everything
96
+ uv sync --extra all
97
+ ```
98
+
99
+ ## Configuration
100
+
101
+ Config lives at `~/.ricoeur/config.toml`:
102
+
103
+ ```toml
104
+ [general]
105
+ home = "~/.ricoeur"
106
+ default_language = "en"
107
+
108
+ [embeddings]
109
+ model = "st:paraphrase-multilingual-mpnet-base-v2"
110
+ batch_size = 64
111
+ device = "auto"
112
+
113
+ [topics]
114
+ min_cluster_size = 15
115
+ n_topics = "auto"
116
+
117
+ [summarize]
118
+ enabled = false
119
+ model = "ollama:llama3.2"
120
+ ```
121
+
122
+ Override the data directory with the `RICOEUR_HOME` environment variable.
123
+
124
+ ## Architecture
125
+
126
+ ```
127
+ ~/.ricoeur/
128
+ ├── config.toml # Configuration
129
+ ├── ricoeur.db # SQLite database (FTS5 search)
130
+ ├── analytics/ # Parquet files for DuckDB
131
+ ├── embeddings/ # Sentence-transformer vectors
132
+ ├── models/ # Saved BERTopic models
133
+ └── attachments/ # Extracted files
134
+ ```
135
+
136
+ ## License
137
+
138
+ MIT
@@ -0,0 +1,52 @@
1
+ [project]
2
+ name = "ricoeur"
3
+ version = "0.1.1"
4
+ description = "A local-first archive, search, and intelligence engine for your LLM conversation history."
5
+ readme = "README.md"
6
+ requires-python = ">=3.10"
7
+ dependencies = [
8
+ "click>=8.1",
9
+ "rich>=13.0",
10
+ "tomli>=2.0; python_version < '3.11'",
11
+ "tomli-w>=1.0",
12
+ ]
13
+
14
+ [project.optional-dependencies]
15
+ embeddings = [
16
+ "sentence-transformers>=2.2",
17
+ "numpy>=1.24",
18
+ ]
19
+ topics = [
20
+ "bertopic>=0.16",
21
+ "numpy>=1.24",
22
+ ]
23
+ analytics = [
24
+ "duckdb>=0.10",
25
+ "pyarrow>=14.0",
26
+ ]
27
+ tui = [
28
+ "textual>=0.40",
29
+ ]
30
+ mcp = [
31
+ "mcp>=1.0",
32
+ ]
33
+ serve = [
34
+ "fastapi>=0.110",
35
+ "uvicorn>=0.27",
36
+ ]
37
+ langdetect = [
38
+ "fasttext-wheel>=0.9",
39
+ ]
40
+ all = [
41
+ "ricoeur[embeddings,topics,analytics,tui,mcp,serve,langdetect]",
42
+ ]
43
+
44
+ [project.scripts]
45
+ ricoeur = "ricoeur.cli:cli"
46
+
47
+ [build-system]
48
+ requires = ["hatchling"]
49
+ build-backend = "hatchling.build"
50
+
51
+ [tool.hatch.build.targets.wheel]
52
+ packages = ["src/ricoeur"]