convo-cli 0.1.0__tar.gz → 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.
- {convo_cli-0.1.0 → convo_cli-0.1.1}/.gitignore +5 -0
- convo_cli-0.1.1/CHANGELOG.md +19 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/PKG-INFO +64 -17
- {convo_cli-0.1.0 → convo_cli-0.1.1}/README.md +63 -16
- convo_cli-0.1.1/apps/web/README.md +22 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/__init__.py +1 -1
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/bootstrap.py +3 -1
- {convo_cli-0.1.0 → convo_cli-0.1.1}/pyproject.toml +2 -1
- {convo_cli-0.1.0 → convo_cli-0.1.1}/tests/test_bootstrap.py +9 -2
- {convo_cli-0.1.0 → convo_cli-0.1.1}/CODE_OF_CONDUCT.md +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/CONTRIBUTING.md +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/LICENSE +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/alembic.ini +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/__main__.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/core/__init__.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/core/config.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/core/contracts.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/core/exceptions.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/db/__init__.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/db/base.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/db/chunks.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/db/conversations.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/db/documents.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/db/models.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/db/session.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/llm/__init__.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/llm/auth.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/llm/client.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/llm/credentials.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/llm/models.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/llm/streaming.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/pipeline/__init__.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/pipeline/chat.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/pipeline/chunking.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/pipeline/embeddings.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/pipeline/index.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/pipeline/ingestion.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/pipeline/reranking.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/pipeline/routing.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/pipeline/sessions.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/pipeline/worker.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/prompts/__init__.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/prompts/answers.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/prompts/schema.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/ui/__init__.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/ui/app.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/ui/commands.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/ui/files.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/ui/models.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/ui/preview.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/ui/sessions.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/ui/theme.tcss +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/convo/ui/thinking.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/migrations/env.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/migrations/script.py.mako +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/migrations/versions/5c3b75f9c5c1_describe_your_schema_change.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/migrations/versions/732cf62e465c_create_rag_tables.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/migrations/versions/README.md +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/migrations/versions/a42e9d8f0b31_hybrid_search_and_chat_sessions.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/scripts/install.sh +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/tests/test_answers.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/tests/test_backend.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/tests/test_cli.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/tests/test_database.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/tests/test_generation.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/tests/test_preparation.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/tests/test_retrieval.py +0 -0
- {convo_cli-0.1.0 → convo_cli-0.1.1}/tests/test_ui.py +0 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.1.1 — 2026-10-16
|
|
4
|
+
|
|
5
|
+
- Fix Fedora/Podman startup by using the fully qualified `docker.io/pgvector/pgvector:pg16` image. This also supports systems where `docker` is a Podman compatibility wrapper.
|
|
6
|
+
- Cover both Docker and Podman image creation in bootstrap regression tests.
|
|
7
|
+
- Add the Convo logo and an illustrated guide to opening a project folder, signing in, selecting a file, asking questions, and resuming saved sessions.
|
|
8
|
+
- Keep README images accessible when displayed on PyPI.
|
|
9
|
+
- Update the standalone landing page to Next.js, React, TypeScript, Tailwind CSS, and npm, with Geist fonts, a pure black background, and the `#FFAD00` accent.
|
|
10
|
+
|
|
11
|
+
### Install or update
|
|
12
|
+
|
|
13
|
+
```sh
|
|
14
|
+
uv tool install --python 3.12 convo-cli
|
|
15
|
+
# Existing installation:
|
|
16
|
+
uv tool upgrade --refresh convo-cli
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Docker Desktop or Podman is required for Convo's managed local database. Existing conversations and local database data are preserved.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: convo-cli
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1
|
|
4
4
|
Summary: A local terminal RAG assistant for chatting with selected files.
|
|
5
5
|
Project-URL: Homepage, https://github.com/madvillax/convo
|
|
6
6
|
Project-URL: Repository, https://github.com/madvillax/convo
|
|
@@ -38,7 +38,11 @@ Requires-Dist: textual<9,>=8.2
|
|
|
38
38
|
Requires-Dist: transformers>=4.51
|
|
39
39
|
Description-Content-Type: text/markdown
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
<div align="center">
|
|
42
|
+
<img src="https://raw.githubusercontent.com/madvillax/convo/main/apps/web/public/favicon.svg" alt="Convo logo" width="64" height="64" />
|
|
43
|
+
<h1>Convo</h1>
|
|
44
|
+
<p><strong>Your files. A quiet conversation.</strong></p>
|
|
45
|
+
</div>
|
|
42
46
|
|
|
43
47
|
Convo is an open-source, local-first terminal app for chatting with a selected file. Qwen3 embeddings and PostgreSQL full-text search retrieve passages together; a local cross-encoder reranks them; your connected ChatGPT account returns a structured answer with supporting quotations.
|
|
44
48
|
|
|
@@ -46,28 +50,23 @@ It is released under the [MIT License](LICENSE). Contributions are welcome—see
|
|
|
46
50
|
|
|
47
51
|
## Install and start
|
|
48
52
|
|
|
49
|
-
|
|
53
|
+
Install Convo from PyPI with [uv](https://docs.astral.sh/uv/):
|
|
50
54
|
|
|
51
55
|
```sh
|
|
52
|
-
uv tool install convo-cli
|
|
53
|
-
convo
|
|
56
|
+
uv tool install --python 3.12 convo-cli
|
|
54
57
|
```
|
|
55
58
|
|
|
56
|
-
|
|
59
|
+
To update an existing installation, run `uv tool upgrade --refresh convo-cli`.
|
|
57
60
|
|
|
58
|
-
|
|
61
|
+
Convo needs Docker Desktop or Podman for its local database. The install downloads its Python dependencies. On first launch, it creates a private settings file at `~/.config/convo/.env`, pulls `docker.io/pgvector/pgvector:pg16`, starts a loopback-only `convo-postgres` container, and runs migrations. It generates a random database password and preserves existing data. Later launches restart Convo's local container if needed and apply pending migrations.
|
|
59
62
|
|
|
60
|
-
|
|
63
|
+
On macOS, Convo starts or initializes a Podman machine when Podman is installed. First use downloads a database image and, when indexing your first file, the embedding and reranker models.
|
|
61
64
|
|
|
62
|
-
|
|
65
|
+
Convo 0.1.1 fixes Fedora/Podman startup failures reporting `short-name resolution enforced but cannot prompt without a TTY`. Upgrade if you see this error on an older version. Convo now uses the full Docker Hub image name, including when the `docker` command is a Podman compatibility wrapper.
|
|
63
66
|
|
|
64
|
-
|
|
65
|
-
curl -LsSf https://raw.githubusercontent.com/madvillax/convo/main/scripts/install.sh | sh
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
It installs uv if needed, installs `convo-cli`, and adds uv's tool directory to your shell path. Then type `convo` to start. Open a new terminal if `convo` is not immediately found.
|
|
67
|
+
If you already use PostgreSQL, set `DATABASE_URL` to a `postgresql+psycopg://...` URL, run `convo --setup` once to migrate that database, then run `convo`. Explicit database connections are used as configured; startup only manages storage created by Convo.
|
|
69
68
|
|
|
70
|
-
To
|
|
69
|
+
To install from a local checkout while developing, run this from the repository root:
|
|
71
70
|
|
|
72
71
|
```sh
|
|
73
72
|
uv sync --python 3.12
|
|
@@ -90,9 +89,44 @@ For a UI preview without services or backend dependencies:
|
|
|
90
89
|
uv run convo --shell
|
|
91
90
|
```
|
|
92
91
|
|
|
93
|
-
##
|
|
92
|
+
## How to use
|
|
93
|
+
|
|
94
|
+
### 1. Open the folder you want to ask about
|
|
95
|
+
|
|
96
|
+
Run Convo from your project directory. It starts its file browser there.
|
|
97
|
+
|
|
98
|
+
```sh
|
|
99
|
+
cd ~/path/to/your/project
|
|
100
|
+
convo
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
To browse another folder, pass it directly: `convo --directory ~/Documents`.
|
|
104
|
+
|
|
105
|
+
### 2. Connect your ChatGPT account
|
|
94
106
|
|
|
95
|
-
|
|
107
|
+
In Convo, type `/login`, press Enter, and finish sign-in in your browser. Then type `/models` to choose an account model. You can type `/` at any time to see command suggestions; use ↑/↓ to move, Tab to complete, Enter to run, and Esc to close the list.
|
|
108
|
+
|
|
109
|
+
### 3. Choose a file
|
|
110
|
+
|
|
111
|
+
Type `/file` and press Enter, or use Ctrl+O. Choose a supported file from the current folder and press Enter. Convo prepares and indexes it before you ask questions.
|
|
112
|
+
|
|
113
|
+
<p align="center">
|
|
114
|
+
<img src="https://raw.githubusercontent.com/madvillax/convo/main/docs/images/file-picker.svg" alt="Convo file picker with README.md selected from a sample project folder." width="760" />
|
|
115
|
+
</p>
|
|
116
|
+
|
|
117
|
+
### 4. Ask a question
|
|
118
|
+
|
|
119
|
+
Type a question in plain language and press Enter. Convo searches the selected file and answers with numbered citations and a source block showing the file and line numbers.
|
|
120
|
+
|
|
121
|
+
<p align="center">
|
|
122
|
+
<img src="https://raw.githubusercontent.com/madvillax/convo/main/apps/web/public/images/convo-chat.png" alt="Example Convo conversation with a cited answer about a project architecture file." width="760" />
|
|
123
|
+
</p>
|
|
124
|
+
|
|
125
|
+
### 5. Come back to a conversation
|
|
126
|
+
|
|
127
|
+
Type `/sessions` to search and resume a saved conversation. Type `/new` to start another conversation while keeping the selected file, or `/reset` to start fresh without one.
|
|
128
|
+
|
|
129
|
+
## Commands and shortcuts
|
|
96
130
|
|
|
97
131
|
| Command/key | Action |
|
|
98
132
|
| --- | --- |
|
|
@@ -139,6 +173,19 @@ convo/
|
|
|
139
173
|
|
|
140
174
|
[ARCHITECTURE.md](ARCHITECTURE.md) explains the files, schema, data flow, tuning, and verification. [changes.md](changes.md) records implementation approaches and validation.
|
|
141
175
|
|
|
176
|
+
## Website
|
|
177
|
+
|
|
178
|
+
The Next.js, React, TypeScript, and Tailwind CSS landing page in [`apps/web`](apps/web/README.md) is an independent app with its own package manifest and lockfile.
|
|
179
|
+
|
|
180
|
+
```sh
|
|
181
|
+
cd apps/web
|
|
182
|
+
npm install
|
|
183
|
+
npm run dev # website at http://127.0.0.1:3000
|
|
184
|
+
npm run build # Next.js production build in .next
|
|
185
|
+
npm run start # serve the production website
|
|
186
|
+
npm run check # website checks
|
|
187
|
+
```
|
|
188
|
+
|
|
142
189
|
## Checks
|
|
143
190
|
|
|
144
191
|
```sh
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/madvillax/convo/main/apps/web/public/favicon.svg" alt="Convo logo" width="64" height="64" />
|
|
3
|
+
<h1>Convo</h1>
|
|
4
|
+
<p><strong>Your files. A quiet conversation.</strong></p>
|
|
5
|
+
</div>
|
|
2
6
|
|
|
3
7
|
Convo is an open-source, local-first terminal app for chatting with a selected file. Qwen3 embeddings and PostgreSQL full-text search retrieve passages together; a local cross-encoder reranks them; your connected ChatGPT account returns a structured answer with supporting quotations.
|
|
4
8
|
|
|
@@ -6,28 +10,23 @@ It is released under the [MIT License](LICENSE). Contributions are welcome—see
|
|
|
6
10
|
|
|
7
11
|
## Install and start
|
|
8
12
|
|
|
9
|
-
|
|
13
|
+
Install Convo from PyPI with [uv](https://docs.astral.sh/uv/):
|
|
10
14
|
|
|
11
15
|
```sh
|
|
12
|
-
uv tool install convo-cli
|
|
13
|
-
convo
|
|
16
|
+
uv tool install --python 3.12 convo-cli
|
|
14
17
|
```
|
|
15
18
|
|
|
16
|
-
|
|
19
|
+
To update an existing installation, run `uv tool upgrade --refresh convo-cli`.
|
|
17
20
|
|
|
18
|
-
|
|
21
|
+
Convo needs Docker Desktop or Podman for its local database. The install downloads its Python dependencies. On first launch, it creates a private settings file at `~/.config/convo/.env`, pulls `docker.io/pgvector/pgvector:pg16`, starts a loopback-only `convo-postgres` container, and runs migrations. It generates a random database password and preserves existing data. Later launches restart Convo's local container if needed and apply pending migrations.
|
|
19
22
|
|
|
20
|
-
|
|
23
|
+
On macOS, Convo starts or initializes a Podman machine when Podman is installed. First use downloads a database image and, when indexing your first file, the embedding and reranker models.
|
|
21
24
|
|
|
22
|
-
|
|
25
|
+
Convo 0.1.1 fixes Fedora/Podman startup failures reporting `short-name resolution enforced but cannot prompt without a TTY`. Upgrade if you see this error on an older version. Convo now uses the full Docker Hub image name, including when the `docker` command is a Podman compatibility wrapper.
|
|
23
26
|
|
|
24
|
-
|
|
25
|
-
curl -LsSf https://raw.githubusercontent.com/madvillax/convo/main/scripts/install.sh | sh
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
It installs uv if needed, installs `convo-cli`, and adds uv's tool directory to your shell path. Then type `convo` to start. Open a new terminal if `convo` is not immediately found.
|
|
27
|
+
If you already use PostgreSQL, set `DATABASE_URL` to a `postgresql+psycopg://...` URL, run `convo --setup` once to migrate that database, then run `convo`. Explicit database connections are used as configured; startup only manages storage created by Convo.
|
|
29
28
|
|
|
30
|
-
To
|
|
29
|
+
To install from a local checkout while developing, run this from the repository root:
|
|
31
30
|
|
|
32
31
|
```sh
|
|
33
32
|
uv sync --python 3.12
|
|
@@ -50,9 +49,44 @@ For a UI preview without services or backend dependencies:
|
|
|
50
49
|
uv run convo --shell
|
|
51
50
|
```
|
|
52
51
|
|
|
53
|
-
##
|
|
52
|
+
## How to use
|
|
53
|
+
|
|
54
|
+
### 1. Open the folder you want to ask about
|
|
55
|
+
|
|
56
|
+
Run Convo from your project directory. It starts its file browser there.
|
|
57
|
+
|
|
58
|
+
```sh
|
|
59
|
+
cd ~/path/to/your/project
|
|
60
|
+
convo
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
To browse another folder, pass it directly: `convo --directory ~/Documents`.
|
|
64
|
+
|
|
65
|
+
### 2. Connect your ChatGPT account
|
|
54
66
|
|
|
55
|
-
|
|
67
|
+
In Convo, type `/login`, press Enter, and finish sign-in in your browser. Then type `/models` to choose an account model. You can type `/` at any time to see command suggestions; use ↑/↓ to move, Tab to complete, Enter to run, and Esc to close the list.
|
|
68
|
+
|
|
69
|
+
### 3. Choose a file
|
|
70
|
+
|
|
71
|
+
Type `/file` and press Enter, or use Ctrl+O. Choose a supported file from the current folder and press Enter. Convo prepares and indexes it before you ask questions.
|
|
72
|
+
|
|
73
|
+
<p align="center">
|
|
74
|
+
<img src="https://raw.githubusercontent.com/madvillax/convo/main/docs/images/file-picker.svg" alt="Convo file picker with README.md selected from a sample project folder." width="760" />
|
|
75
|
+
</p>
|
|
76
|
+
|
|
77
|
+
### 4. Ask a question
|
|
78
|
+
|
|
79
|
+
Type a question in plain language and press Enter. Convo searches the selected file and answers with numbered citations and a source block showing the file and line numbers.
|
|
80
|
+
|
|
81
|
+
<p align="center">
|
|
82
|
+
<img src="https://raw.githubusercontent.com/madvillax/convo/main/apps/web/public/images/convo-chat.png" alt="Example Convo conversation with a cited answer about a project architecture file." width="760" />
|
|
83
|
+
</p>
|
|
84
|
+
|
|
85
|
+
### 5. Come back to a conversation
|
|
86
|
+
|
|
87
|
+
Type `/sessions` to search and resume a saved conversation. Type `/new` to start another conversation while keeping the selected file, or `/reset` to start fresh without one.
|
|
88
|
+
|
|
89
|
+
## Commands and shortcuts
|
|
56
90
|
|
|
57
91
|
| Command/key | Action |
|
|
58
92
|
| --- | --- |
|
|
@@ -99,6 +133,19 @@ convo/
|
|
|
99
133
|
|
|
100
134
|
[ARCHITECTURE.md](ARCHITECTURE.md) explains the files, schema, data flow, tuning, and verification. [changes.md](changes.md) records implementation approaches and validation.
|
|
101
135
|
|
|
136
|
+
## Website
|
|
137
|
+
|
|
138
|
+
The Next.js, React, TypeScript, and Tailwind CSS landing page in [`apps/web`](apps/web/README.md) is an independent app with its own package manifest and lockfile.
|
|
139
|
+
|
|
140
|
+
```sh
|
|
141
|
+
cd apps/web
|
|
142
|
+
npm install
|
|
143
|
+
npm run dev # website at http://127.0.0.1:3000
|
|
144
|
+
npm run build # Next.js production build in .next
|
|
145
|
+
npm run start # serve the production website
|
|
146
|
+
npm run check # website checks
|
|
147
|
+
```
|
|
148
|
+
|
|
102
149
|
## Checks
|
|
103
150
|
|
|
104
151
|
```sh
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Convo website
|
|
2
|
+
|
|
3
|
+
The Convo landing page is an independent Next.js App Router app using React, TypeScript, and Tailwind CSS v4. The hero and usage guide use Vercel's Geist Sans and Geist Mono through the official `geist` package and `next/font`.
|
|
4
|
+
|
|
5
|
+
Run from `apps/web` (use `cd apps/web` first when starting at the repository root):
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
npm install
|
|
9
|
+
npm run dev # http://127.0.0.1:3000
|
|
10
|
+
npm run check # ESLint and TypeScript checks
|
|
11
|
+
npm run build # Next.js production build in .next
|
|
12
|
+
npm run start # serve the production build on port 3000
|
|
13
|
+
npm run preview # alias for the production server
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
This folder has its own `package.json`, `package-lock.json`, and `node_modules`. Use Node.js and npm to install and run it. The Python CLI in `convo/` uses the repository's `pyproject.toml` and `uv.lock`. Run it from the repository root with `uv run convo`. No database or ChatGPT connection is needed to run the website.
|
|
17
|
+
|
|
18
|
+
`src/app/page.tsx` composes the page as a Server Component. Small Client Components in `src/components` handle installation tabs, command categories, and clipboard feedback. Layout and responsive styling use Tailwind utilities; `globals.css` defines the theme and shared browser defaults. `postcss.config.mjs` runs the Tailwind PostCSS plugin.
|
|
19
|
+
|
|
20
|
+
For Vercel, choose `apps/web` as the project root and the Next.js framework preset. The production build also runs on any host that supports `next start`.
|
|
21
|
+
|
|
22
|
+
This site uses real CLI commands from `convo/__main__.py` and `convo/ui/commands.py`; keep its guide in sync when those change. The terminal image is a repository screenshot in tracked public assets. Fonts are bundled from the installed `geist` package, so builds do not fetch Google Fonts.
|
|
@@ -18,7 +18,9 @@ from urllib.parse import quote
|
|
|
18
18
|
|
|
19
19
|
CONTAINER_NAME = "convo-postgres"
|
|
20
20
|
VOLUME_NAME = "convo-postgres-data"
|
|
21
|
-
|
|
21
|
+
# Podman (including Fedora's docker shim) cannot prompt for a registry when
|
|
22
|
+
# startup captures subprocess output. Always use a fully qualified image name.
|
|
23
|
+
IMAGE = "docker.io/pgvector/pgvector:pg16"
|
|
22
24
|
DATABASE_NAME = "convo"
|
|
23
25
|
DATABASE_USER = "convo"
|
|
24
26
|
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "convo-cli"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.1"
|
|
8
8
|
description = "A local terminal RAG assistant for chatting with selected files."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.11"
|
|
@@ -62,6 +62,7 @@ include = [
|
|
|
62
62
|
"tests",
|
|
63
63
|
"scripts",
|
|
64
64
|
"README.md",
|
|
65
|
+
"CHANGELOG.md",
|
|
65
66
|
"LICENSE",
|
|
66
67
|
"CONTRIBUTING.md",
|
|
67
68
|
"CODE_OF_CONDUCT.md",
|
|
@@ -10,7 +10,10 @@ from convo.core import config
|
|
|
10
10
|
from convo.core.config import user_settings_path
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
@pytest.mark.parametrize("runtime", ["docker", "podman"])
|
|
14
|
+
def test_setup_writes_private_user_settings_and_creates_loopback_container(
|
|
15
|
+
tmp_path, monkeypatch, runtime
|
|
16
|
+
):
|
|
14
17
|
commands: list[list[str]] = []
|
|
15
18
|
|
|
16
19
|
def fake_run(command, *, allow_failure=False):
|
|
@@ -21,7 +24,7 @@ def test_setup_writes_private_user_settings_and_creates_loopback_container(tmp_p
|
|
|
21
24
|
monkeypatch.setattr(bootstrap, "_run", fake_run)
|
|
22
25
|
monkeypatch.setattr(bootstrap.secrets, "token_urlsafe", lambda _size: "safe-password")
|
|
23
26
|
|
|
24
|
-
database_url = bootstrap._ensure_container(
|
|
27
|
+
database_url = bootstrap._ensure_container(runtime, None)
|
|
25
28
|
|
|
26
29
|
assert database_url == "postgresql+psycopg://convo:safe-password@localhost:5432/convo"
|
|
27
30
|
assert user_settings_path().read_text(encoding="utf-8") == (
|
|
@@ -35,6 +38,10 @@ def test_setup_writes_private_user_settings_and_creates_loopback_container(tmp_p
|
|
|
35
38
|
)
|
|
36
39
|
assert user_settings_path().stat().st_mode & 0o777 == 0o600
|
|
37
40
|
create_command = next(command for command in commands if command[1] == "run")
|
|
41
|
+
# Both Podman and its Docker-compatible shim must avoid interactive
|
|
42
|
+
# short-name registry resolution on distributions such as Fedora.
|
|
43
|
+
assert create_command[0] == runtime
|
|
44
|
+
assert create_command[-1] == "docker.io/pgvector/pgvector:pg16"
|
|
38
45
|
assert "127.0.0.1:5432:5432" in create_command
|
|
39
46
|
assert "convo-postgres-data:/var/lib/postgresql/data" in create_command
|
|
40
47
|
assert "io.convo.managed=true" in create_command
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{convo_cli-0.1.0 → convo_cli-0.1.1}/migrations/versions/5c3b75f9c5c1_describe_your_schema_change.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|