spooling 0.1.4__tar.gz → 0.1.5__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.
- {spooling-0.1.4/spooling.egg-info → spooling-0.1.5}/PKG-INFO +18 -1
- {spooling-0.1.4 → spooling-0.1.5}/README.md +17 -0
- {spooling-0.1.4 → spooling-0.1.5}/pyproject.toml +1 -1
- {spooling-0.1.4 → spooling-0.1.5}/spooling/server.py +4 -0
- {spooling-0.1.4 → spooling-0.1.5/spooling.egg-info}/PKG-INFO +18 -1
- {spooling-0.1.4 → spooling-0.1.5}/LICENSE +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/setup.cfg +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/__init__.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/agent.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/classifiers.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/cli.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/cloud.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/config.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/db.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/embeddings.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/evals.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/experiments.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/ingest.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/mcp_server.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/parser.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/pricing.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/providers/__init__.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/providers/antigravity.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/providers/base.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/providers/codex.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/providers/copilot.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/providers/cortex_code.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/providers/cursor.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/providers/gemini.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/providers/github.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/providers/gitlab.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/providers/kiro.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/providers/opencode.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/providers/session_file.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/providers/windsurf.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/redact.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/remote_otel.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/sdk.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/search.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/stats.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/subscription_pricing.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/tracing.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling/watcher.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling.egg-info/SOURCES.txt +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling.egg-info/dependency_links.txt +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling.egg-info/entry_points.txt +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling.egg-info/requires.txt +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/spooling.egg-info/top_level.txt +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/tests/test_parser.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/tests/test_pricing.py +0 -0
- {spooling-0.1.4 → spooling-0.1.5}/tests/test_redact.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: spooling
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.5
|
|
4
4
|
Summary: Local session tracker and semantic search for AI coding assistants
|
|
5
5
|
Author: Parsed Analytics, Inc.
|
|
6
6
|
License-Expression: MIT
|
|
@@ -278,6 +278,22 @@ What it does each cycle:
|
|
|
278
278
|
Cycles with no new work are silent. If a push fails the watermark is
|
|
279
279
|
not advanced, so the next cycle retries the same window.
|
|
280
280
|
|
|
281
|
+
### Cloud API endpoints (programmatic access)
|
|
282
|
+
|
|
283
|
+
The cloud API at `api.spooling.ai` uses `/v1/` endpoints. Requests require a Bearer token via the `Authorization` header:
|
|
284
|
+
|
|
285
|
+
```bash
|
|
286
|
+
# Stats
|
|
287
|
+
curl -s "https://api.spooling.ai/v1/stats" \
|
|
288
|
+
-H "Authorization: Bearer $SPOOLING_KEY"
|
|
289
|
+
|
|
290
|
+
# Search (when deployed — falls back to local search on self-hosted)
|
|
291
|
+
curl -s "https://api.spooling.ai/api/search?q=migration&limit=10" \
|
|
292
|
+
-H "Authorization: Bearer $SPOOLING_KEY"
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
**Important**: `app.spooling.ai` is the Next.js frontend. For API access, use `api.spooling.ai` directly or set `API_URL=https://api.spooling.ai` when deploying the frontend so its `/api/*` rewrites reach the backend.
|
|
296
|
+
|
|
281
297
|
### Status / logout
|
|
282
298
|
|
|
283
299
|
```bash
|
|
@@ -485,6 +501,7 @@ All optional - defaults work out of the box for local development.
|
|
|
485
501
|
| `SPOOLING_EMBEDDING_MODEL` | `all-MiniLM-L6-v2` | Sentence transformer model |
|
|
486
502
|
| `SPOOLING_UI_HOST` | `127.0.0.1` | API server host |
|
|
487
503
|
| `ANTHROPIC_API_KEY` | - | Anthropic API key (alternative to setting in UI) |
|
|
504
|
+
| `API_URL` | `http://127.0.0.1:3002` | Backend API URL for Next.js rewrites (`/api/*`→`<API_URL>/api/*`). Set to `https://api.spooling.ai` in production. |
|
|
488
505
|
|
|
489
506
|
---
|
|
490
507
|
|
|
@@ -248,6 +248,22 @@ What it does each cycle:
|
|
|
248
248
|
Cycles with no new work are silent. If a push fails the watermark is
|
|
249
249
|
not advanced, so the next cycle retries the same window.
|
|
250
250
|
|
|
251
|
+
### Cloud API endpoints (programmatic access)
|
|
252
|
+
|
|
253
|
+
The cloud API at `api.spooling.ai` uses `/v1/` endpoints. Requests require a Bearer token via the `Authorization` header:
|
|
254
|
+
|
|
255
|
+
```bash
|
|
256
|
+
# Stats
|
|
257
|
+
curl -s "https://api.spooling.ai/v1/stats" \
|
|
258
|
+
-H "Authorization: Bearer $SPOOLING_KEY"
|
|
259
|
+
|
|
260
|
+
# Search (when deployed — falls back to local search on self-hosted)
|
|
261
|
+
curl -s "https://api.spooling.ai/api/search?q=migration&limit=10" \
|
|
262
|
+
-H "Authorization: Bearer $SPOOLING_KEY"
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
**Important**: `app.spooling.ai` is the Next.js frontend. For API access, use `api.spooling.ai` directly or set `API_URL=https://api.spooling.ai` when deploying the frontend so its `/api/*` rewrites reach the backend.
|
|
266
|
+
|
|
251
267
|
### Status / logout
|
|
252
268
|
|
|
253
269
|
```bash
|
|
@@ -455,6 +471,7 @@ All optional - defaults work out of the box for local development.
|
|
|
455
471
|
| `SPOOLING_EMBEDDING_MODEL` | `all-MiniLM-L6-v2` | Sentence transformer model |
|
|
456
472
|
| `SPOOLING_UI_HOST` | `127.0.0.1` | API server host |
|
|
457
473
|
| `ANTHROPIC_API_KEY` | - | Anthropic API key (alternative to setting in UI) |
|
|
474
|
+
| `API_URL` | `http://127.0.0.1:3002` | Backend API URL for Next.js rewrites (`/api/*`→`<API_URL>/api/*`). Set to `https://api.spooling.ai` in production. |
|
|
458
475
|
|
|
459
476
|
---
|
|
460
477
|
|
|
@@ -93,6 +93,7 @@ async def api_session(session_id: str):
|
|
|
93
93
|
# --- Search ---
|
|
94
94
|
|
|
95
95
|
@app.get("/api/search")
|
|
96
|
+
@app.get("/api/v1/search")
|
|
96
97
|
async def api_search(
|
|
97
98
|
q: str = Query(...),
|
|
98
99
|
limit: int = Query(default=10),
|
|
@@ -1030,6 +1031,7 @@ async def api_delete_chat_session(session_id: str):
|
|
|
1030
1031
|
class SettingsUpdate(BaseModel):
|
|
1031
1032
|
provider: str | None = None
|
|
1032
1033
|
model: str | None = None
|
|
1034
|
+
judge_model: str | None = None
|
|
1033
1035
|
anthropic_api_key: str | None = None
|
|
1034
1036
|
ollama_url: str | None = None
|
|
1035
1037
|
openai_base_url: str | None = None
|
|
@@ -1081,6 +1083,8 @@ async def api_update_settings(body: SettingsUpdate):
|
|
|
1081
1083
|
config["provider"] = body.provider
|
|
1082
1084
|
if body.model is not None:
|
|
1083
1085
|
config["model"] = body.model
|
|
1086
|
+
if body.judge_model is not None:
|
|
1087
|
+
config["judge_model"] = body.judge_model
|
|
1084
1088
|
if body.anthropic_api_key is not None:
|
|
1085
1089
|
config["anthropic_api_key"] = body.anthropic_api_key
|
|
1086
1090
|
if body.ollama_url is not None:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: spooling
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.5
|
|
4
4
|
Summary: Local session tracker and semantic search for AI coding assistants
|
|
5
5
|
Author: Parsed Analytics, Inc.
|
|
6
6
|
License-Expression: MIT
|
|
@@ -278,6 +278,22 @@ What it does each cycle:
|
|
|
278
278
|
Cycles with no new work are silent. If a push fails the watermark is
|
|
279
279
|
not advanced, so the next cycle retries the same window.
|
|
280
280
|
|
|
281
|
+
### Cloud API endpoints (programmatic access)
|
|
282
|
+
|
|
283
|
+
The cloud API at `api.spooling.ai` uses `/v1/` endpoints. Requests require a Bearer token via the `Authorization` header:
|
|
284
|
+
|
|
285
|
+
```bash
|
|
286
|
+
# Stats
|
|
287
|
+
curl -s "https://api.spooling.ai/v1/stats" \
|
|
288
|
+
-H "Authorization: Bearer $SPOOLING_KEY"
|
|
289
|
+
|
|
290
|
+
# Search (when deployed — falls back to local search on self-hosted)
|
|
291
|
+
curl -s "https://api.spooling.ai/api/search?q=migration&limit=10" \
|
|
292
|
+
-H "Authorization: Bearer $SPOOLING_KEY"
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
**Important**: `app.spooling.ai` is the Next.js frontend. For API access, use `api.spooling.ai` directly or set `API_URL=https://api.spooling.ai` when deploying the frontend so its `/api/*` rewrites reach the backend.
|
|
296
|
+
|
|
281
297
|
### Status / logout
|
|
282
298
|
|
|
283
299
|
```bash
|
|
@@ -485,6 +501,7 @@ All optional - defaults work out of the box for local development.
|
|
|
485
501
|
| `SPOOLING_EMBEDDING_MODEL` | `all-MiniLM-L6-v2` | Sentence transformer model |
|
|
486
502
|
| `SPOOLING_UI_HOST` | `127.0.0.1` | API server host |
|
|
487
503
|
| `ANTHROPIC_API_KEY` | - | Anthropic API key (alternative to setting in UI) |
|
|
504
|
+
| `API_URL` | `http://127.0.0.1:3002` | Backend API URL for Next.js rewrites (`/api/*`→`<API_URL>/api/*`). Set to `https://api.spooling.ai` in production. |
|
|
488
505
|
|
|
489
506
|
---
|
|
490
507
|
|
|
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
|