ragfly-cli 1.17.2__tar.gz → 1.18.0__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.
- {ragfly_cli-1.17.2/ragfly_cli.egg-info → ragfly_cli-1.18.0}/PKG-INFO +43 -11
- ragfly_cli-1.18.0/README.md +88 -0
- {ragfly_cli-1.17.2 → ragfly_cli-1.18.0}/pyproject.toml +1 -1
- ragfly_cli-1.18.0/ragfly_cli/__init__.py +1 -0
- ragfly_cli-1.18.0/ragfly_cli/_runtime.py +15 -0
- ragfly_cli-1.18.0/ragfly_cli/cli.py +1231 -0
- ragfly_cli-1.18.0/ragfly_cli/codes.py +76 -0
- {ragfly_cli-1.17.2 → ragfly_cli-1.18.0}/ragfly_cli/oop/http_client.py +14 -1
- {ragfly_cli-1.17.2 → ragfly_cli-1.18.0/ragfly_cli.egg-info}/PKG-INFO +43 -11
- {ragfly_cli-1.17.2 → ragfly_cli-1.18.0}/ragfly_cli.egg-info/SOURCES.txt +2 -0
- ragfly_cli-1.17.2/README.md +0 -56
- ragfly_cli-1.17.2/ragfly_cli/__init__.py +0 -1
- ragfly_cli-1.17.2/ragfly_cli/cli.py +0 -1020
- {ragfly_cli-1.17.2 → ragfly_cli-1.18.0}/LICENSE +0 -0
- {ragfly_cli-1.17.2 → ragfly_cli-1.18.0}/ragfly_cli/__main__.py +0 -0
- {ragfly_cli-1.17.2 → ragfly_cli-1.18.0}/ragfly_cli/_http.py +0 -0
- {ragfly_cli-1.17.2 → ragfly_cli-1.18.0}/ragfly_cli/cloud_commands.py +0 -0
- {ragfly_cli-1.17.2 → ragfly_cli-1.18.0}/ragfly_cli/config.py +0 -0
- {ragfly_cli-1.17.2 → ragfly_cli-1.18.0}/ragfly_cli/grupo_activo.py +0 -0
- {ragfly_cli-1.17.2 → ragfly_cli-1.18.0}/ragfly_cli/keyring_store.py +0 -0
- {ragfly_cli-1.17.2 → ragfly_cli-1.18.0}/ragfly_cli/oop/__init__.py +0 -0
- {ragfly_cli-1.17.2 → ragfly_cli-1.18.0}/ragfly_cli/oop/cli_command.py +0 -0
- {ragfly_cli-1.17.2 → ragfly_cli-1.18.0}/ragfly_cli/version_check.py +0 -0
- {ragfly_cli-1.17.2 → ragfly_cli-1.18.0}/ragfly_cli.egg-info/dependency_links.txt +0 -0
- {ragfly_cli-1.17.2 → ragfly_cli-1.18.0}/ragfly_cli.egg-info/entry_points.txt +0 -0
- {ragfly_cli-1.17.2 → ragfly_cli-1.18.0}/ragfly_cli.egg-info/requires.txt +0 -0
- {ragfly_cli-1.17.2 → ragfly_cli-1.18.0}/ragfly_cli.egg-info/top_level.txt +0 -0
- {ragfly_cli-1.17.2 → ragfly_cli-1.18.0}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ragfly-cli
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.18.0
|
|
4
4
|
Summary: RAGfly CLI — operate RAGfly from the terminal and CI (login + cloud API). Lightweight, no desktop dependencies.
|
|
5
5
|
Author: CAB Ltda
|
|
6
6
|
License: MIT
|
|
@@ -43,9 +43,28 @@ ragfly cloud me
|
|
|
43
43
|
ragfly login
|
|
44
44
|
|
|
45
45
|
# Non-interactive / CI (API key, no expiry)
|
|
46
|
-
export
|
|
46
|
+
export RAGFLY_API_KEY=slm_live_xxxxxxxxxx
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
+
## `RAGFLY_ROOT` (optional) — open original files on disk
|
|
50
|
+
|
|
51
|
+
Searching, asking and citing need zero extra config. Only if a script or agent
|
|
52
|
+
on this machine must open the **original file** on disk, set `RAGFLY_ROOT` once:
|
|
53
|
+
it is the **parent folder** of the folder you selected when uploading your
|
|
54
|
+
documents via the web app. RAGfly never reads it nor stores your absolute
|
|
55
|
+
path — documents uploaded via browser carry a *relative* `ruta_archivo`, and
|
|
56
|
+
the real path is `$RAGFLY_ROOT + ruta_archivo`.
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# Example: you uploaded /Users/ana/Dropbox/MisDocumentos → the PARENT is the root
|
|
60
|
+
echo 'export RAGFLY_ROOT="/Users/ana/Dropbox"' >> ~/.zshrc
|
|
61
|
+
# "/MisDocumentos/letras/cancion.txt" → /Users/ana/Dropbox/MisDocumentos/letras/cancion.txt
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Not needed for documents loaded via RAGfly Desktop (their paths are already
|
|
65
|
+
absolute). Step-by-step walkthrough:
|
|
66
|
+
<https://ragfly.ai/build/mcp#setting-up-ragfly_root--once-per-machine-in-3-steps>
|
|
67
|
+
|
|
49
68
|
## Command surface
|
|
50
69
|
|
|
51
70
|
```
|
|
@@ -53,15 +72,28 @@ ragfly
|
|
|
53
72
|
├── login / logout / version
|
|
54
73
|
└── cloud ← operations against api.ragfly.ai
|
|
55
74
|
├── me
|
|
56
|
-
├──
|
|
57
|
-
├── api-key
|
|
58
|
-
├──
|
|
59
|
-
├──
|
|
60
|
-
├──
|
|
61
|
-
├──
|
|
62
|
-
├──
|
|
63
|
-
├──
|
|
64
|
-
└── chat
|
|
75
|
+
├── group list | switch | clear
|
|
76
|
+
├── api-key create | list | revoke
|
|
77
|
+
├── document list | show | edges
|
|
78
|
+
├── space list | show
|
|
79
|
+
├── queue show | runs
|
|
80
|
+
├── skill list | show | run
|
|
81
|
+
├── catalog
|
|
82
|
+
├── search
|
|
83
|
+
└── chat ask
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Codes are English on the wire: filter and read catalog codes in English
|
|
87
|
+
(`--status VECTORIZED`, `codigo_estado_doc: VECTORIZED`, skill code `SUMMARIZE_DOCUMENT`).
|
|
88
|
+
The CLI translates them to RAGfly's internal codes at its edge, using the same
|
|
89
|
+
public-code map as the MCP server (`GET /catalogo/public-codes`). The former
|
|
90
|
+
Spanish command/flag names (`documento listar`, `--estado`) still work as
|
|
91
|
+
compatibility aliases.
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
ragfly cloud document list --status VECTORIZED --limit 20
|
|
95
|
+
ragfly cloud skill run SUMMARIZE_DOCUMENT --space 12
|
|
96
|
+
ragfly cloud search "Q1 revenue"
|
|
65
97
|
```
|
|
66
98
|
|
|
67
99
|
Full reference: <https://api.ragfly.ai/docs> and `docs/integradores/CLI.md`.
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# RAGfly CLI
|
|
2
|
+
|
|
3
|
+
Operate RAGfly from the terminal and CI — `login` + the full `cloud` API surface
|
|
4
|
+
against `api.ragfly.ai`. Lightweight: depends only on `click`, `rich`, `httpx`
|
|
5
|
+
and `keyring`. **No desktop / PySide6 / OCR dependencies.**
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pip install ragfly-cli
|
|
9
|
+
ragfly version
|
|
10
|
+
ragfly login
|
|
11
|
+
ragfly cloud me
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
> This package ships the **`ragfly` binary** for scripting and automation.
|
|
15
|
+
> It is distinct from `pip install ragfly` (the **Python SDK**, import `import ragfly`)
|
|
16
|
+
> and from **RAGfly Desktop** (the DMG/exe that bundles the local file worker for
|
|
17
|
+
> `ragfly local scan/sync/daemon`).
|
|
18
|
+
|
|
19
|
+
## Authentication
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# Interactive (JWT, stored in the OS keyring)
|
|
23
|
+
ragfly login
|
|
24
|
+
|
|
25
|
+
# Non-interactive / CI (API key, no expiry)
|
|
26
|
+
export RAGFLY_API_KEY=slm_live_xxxxxxxxxx
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## `RAGFLY_ROOT` (optional) — open original files on disk
|
|
30
|
+
|
|
31
|
+
Searching, asking and citing need zero extra config. Only if a script or agent
|
|
32
|
+
on this machine must open the **original file** on disk, set `RAGFLY_ROOT` once:
|
|
33
|
+
it is the **parent folder** of the folder you selected when uploading your
|
|
34
|
+
documents via the web app. RAGfly never reads it nor stores your absolute
|
|
35
|
+
path — documents uploaded via browser carry a *relative* `ruta_archivo`, and
|
|
36
|
+
the real path is `$RAGFLY_ROOT + ruta_archivo`.
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
# Example: you uploaded /Users/ana/Dropbox/MisDocumentos → the PARENT is the root
|
|
40
|
+
echo 'export RAGFLY_ROOT="/Users/ana/Dropbox"' >> ~/.zshrc
|
|
41
|
+
# "/MisDocumentos/letras/cancion.txt" → /Users/ana/Dropbox/MisDocumentos/letras/cancion.txt
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Not needed for documents loaded via RAGfly Desktop (their paths are already
|
|
45
|
+
absolute). Step-by-step walkthrough:
|
|
46
|
+
<https://ragfly.ai/build/mcp#setting-up-ragfly_root--once-per-machine-in-3-steps>
|
|
47
|
+
|
|
48
|
+
## Command surface
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
ragfly
|
|
52
|
+
├── login / logout / version
|
|
53
|
+
└── cloud ← operations against api.ragfly.ai
|
|
54
|
+
├── me
|
|
55
|
+
├── group list | switch | clear
|
|
56
|
+
├── api-key create | list | revoke
|
|
57
|
+
├── document list | show | edges
|
|
58
|
+
├── space list | show
|
|
59
|
+
├── queue show | runs
|
|
60
|
+
├── skill list | show | run
|
|
61
|
+
├── catalog
|
|
62
|
+
├── search
|
|
63
|
+
└── chat ask
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Codes are English on the wire: filter and read catalog codes in English
|
|
67
|
+
(`--status VECTORIZED`, `codigo_estado_doc: VECTORIZED`, skill code `SUMMARIZE_DOCUMENT`).
|
|
68
|
+
The CLI translates them to RAGfly's internal codes at its edge, using the same
|
|
69
|
+
public-code map as the MCP server (`GET /catalogo/public-codes`). The former
|
|
70
|
+
Spanish command/flag names (`documento listar`, `--estado`) still work as
|
|
71
|
+
compatibility aliases.
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
ragfly cloud document list --status VECTORIZED --limit 20
|
|
75
|
+
ragfly cloud skill run SUMMARIZE_DOCUMENT --space 12
|
|
76
|
+
ragfly cloud search "Q1 revenue"
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Full reference: <https://api.ragfly.ai/docs> and `docs/integradores/CLI.md`.
|
|
80
|
+
|
|
81
|
+
> **Local operations** (`ragfly local scan/sync/daemon`) require the local file
|
|
82
|
+
> worker and ship with **RAGfly Desktop**, not with this package.
|
|
83
|
+
|
|
84
|
+
## Source
|
|
85
|
+
|
|
86
|
+
The command logic is extracted from the RAGfly Desktop client
|
|
87
|
+
(`cliente/ragfly/`). Canonical source of each module lives there; keep this
|
|
88
|
+
package's copies in sync when the cloud command surface changes.
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "ragfly-cli"
|
|
7
|
-
version = "1.
|
|
7
|
+
version = "1.18.0"
|
|
8
8
|
description = "RAGfly CLI — operate RAGfly from the terminal and CI (login + cloud API). Lightweight, no desktop dependencies."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.18.0"
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"""Estado de runtime compartido por el CLI (flags globales).
|
|
2
|
+
|
|
3
|
+
Hoy solo lleva el flag `-v/--verbose`, que la capa HTTP (`oop/http_client.py`)
|
|
4
|
+
consulta para loggear método+URL+status de cada request a **stderr** — nunca a
|
|
5
|
+
stdout, para no contaminar la salida `-o json` que se pipea a `jq`.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
VERBOSE: bool = False
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def set_verbose(value: bool) -> None:
|
|
14
|
+
global VERBOSE
|
|
15
|
+
VERBOSE = bool(value)
|