own-rag-cli 0.0.1-snapshot → 0.0.2-snapshot

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/chroma_monitor.sh CHANGED
@@ -25,8 +25,10 @@ BOLD='\033[1m'; DIM='\033[2m'; NC='\033[0m'
25
25
  # ---------------------------------------------------------------------------
26
26
  # Configuração
27
27
  # ---------------------------------------------------------------------------
28
+ CHROMA_SCHEME="http"
28
29
  CHROMA_HOST="localhost"
29
30
  CHROMA_PORT="8000"
31
+ OWN_RAG_CONFIG_FILE="${OWN_RAG_CLI_CONFIG_FILE:-${HOME}/.own-rag-cli.json}"
30
32
  RAG_DB_DIR="${HOME}/.rag_db"
31
33
  VENV_DIR="${HOME}/.rag_venv"
32
34
  VENV_PYTHON="${VENV_DIR}/bin/python3"
@@ -219,6 +221,57 @@ log_info() { echo -e "${GREEN}[+]${NC} $*"; }
219
221
  log_warn() { echo -e "${YELLOW}[!]${NC} $*"; }
220
222
  log_error() { echo -e "${RED}[$(t err_prefix)]${NC} $*" >&2; }
221
223
 
224
+ load_chroma_endpoint_config() {
225
+ local parsed=""
226
+ if parsed="$(python3 - "${OWN_RAG_CONFIG_FILE}" <<'PYEOF'
227
+ import json
228
+ import sys
229
+ from pathlib import Path
230
+ from urllib.parse import urlparse
231
+
232
+ cfg = Path(sys.argv[1]).expanduser()
233
+ scheme = "http"
234
+ host = "localhost"
235
+ port = 8000
236
+
237
+ if cfg.exists():
238
+ try:
239
+ payload = json.loads(cfg.read_text(encoding="utf-8"))
240
+ except Exception:
241
+ payload = {}
242
+ if isinstance(payload, dict):
243
+ chroma = payload.get("chroma")
244
+ if isinstance(chroma, dict):
245
+ raw_scheme = chroma.get("scheme")
246
+ if isinstance(raw_scheme, str) and raw_scheme.strip().lower() in {"http", "https"}:
247
+ scheme = raw_scheme.strip().lower()
248
+ raw_host = chroma.get("host")
249
+ if isinstance(raw_host, str) and raw_host.strip():
250
+ candidate = raw_host.strip()
251
+ parsed = urlparse(candidate if "://" in candidate else f"//{candidate}")
252
+ if parsed.scheme in {"http", "https"}:
253
+ scheme = parsed.scheme
254
+ if parsed.hostname:
255
+ host = parsed.hostname
256
+ elif "://" not in candidate:
257
+ host = candidate.strip().strip("/")
258
+ if parsed.port and 1 <= parsed.port <= 65535:
259
+ port = parsed.port
260
+ raw_port = chroma.get("port")
261
+ try:
262
+ parsed_port = int(str(raw_port).strip())
263
+ if 1 <= parsed_port <= 65535:
264
+ port = parsed_port
265
+ except Exception:
266
+ pass
267
+
268
+ print(f"{scheme}|{host}|{port}")
269
+ PYEOF
270
+ )"; then
271
+ IFS='|' read -r CHROMA_SCHEME CHROMA_HOST CHROMA_PORT <<< "${parsed}"
272
+ fi
273
+ }
274
+
222
275
  # ---------------------------------------------------------------------------
223
276
  # Funções: venv e dependências
224
277
  # ---------------------------------------------------------------------------
@@ -253,10 +306,12 @@ ensure_venv() {
253
306
  # ---------------------------------------------------------------------------
254
307
 
255
308
  is_chroma_running() {
256
- "${VENV_PYTHON}" -c "
257
- import chromadb, sys
309
+ CHROMA_SCHEME="${CHROMA_SCHEME}" "${VENV_PYTHON}" -c "
310
+ import chromadb, os, sys
311
+ scheme = os.environ.get('CHROMA_SCHEME', 'http').strip().lower()
312
+ ssl = scheme == 'https'
258
313
  try:
259
- chromadb.HttpClient(host='${CHROMA_HOST}', port=${CHROMA_PORT}).heartbeat()
314
+ chromadb.HttpClient(host='${CHROMA_HOST}', port=${CHROMA_PORT}, ssl=ssl).heartbeat()
260
315
  sys.exit(0)
261
316
  except:
262
317
  sys.exit(1)
@@ -270,7 +325,7 @@ print_header() {
270
325
  printf " ║ %-44s║\n" "$(t header_title)"
271
326
  echo " ╚══════════════════════════════════════════════════════╝"
272
327
  echo -e "${NC}"
273
- echo -e " ${DIM}$(t db_label): ${CHROMA_HOST}:${CHROMA_PORT} | $(t data_label): ${RAG_DB_DIR}${NC}"
328
+ echo -e " ${DIM}$(t db_label): ${CHROMA_SCHEME}://${CHROMA_HOST}:${CHROMA_PORT} | $(t data_label): ${RAG_DB_DIR}${NC}"
274
329
  echo ""
275
330
  }
276
331
 
@@ -281,16 +336,21 @@ cmd_chunks() {
281
336
  ensure_venv
282
337
 
283
338
  echo ""
284
- echo -e "${BOLD}${CYAN} $(t querying_chroma) ${CHROMA_HOST}:${CHROMA_PORT}...${NC}"
339
+ echo -e "${BOLD}${CYAN} $(t querying_chroma) ${CHROMA_SCHEME}://${CHROMA_HOST}:${CHROMA_PORT}...${NC}"
285
340
  echo ""
286
341
 
287
- MONITOR_LANG="${UI_LANG}" "${VENV_PYTHON}" - << 'PYEOF'
342
+ MONITOR_LANG="${UI_LANG}" CHROMA_SCHEME="${CHROMA_SCHEME}" CHROMA_HOST="${CHROMA_HOST}" CHROMA_PORT="${CHROMA_PORT}" "${VENV_PYTHON}" - << 'PYEOF'
288
343
  import os
289
344
  import sys
290
345
  import chromadb
291
346
 
292
- CHROMA_HOST = "localhost"
293
- CHROMA_PORT = 8000
347
+ CHROMA_SCHEME = os.getenv("CHROMA_SCHEME", "http").strip().lower()
348
+ CHROMA_HOST = os.getenv("CHROMA_HOST", "localhost").strip() or "localhost"
349
+ try:
350
+ CHROMA_PORT = int(os.getenv("CHROMA_PORT", "8000"))
351
+ except Exception:
352
+ CHROMA_PORT = 8000
353
+ CHROMA_SSL = CHROMA_SCHEME == "https"
294
354
  LANG = os.getenv("MONITOR_LANG", "pt-br").lower()
295
355
  IS_EN = LANG == "en-us"
296
356
 
@@ -303,7 +363,7 @@ DIM = "\033[2m"
303
363
  NC = "\033[0m"
304
364
 
305
365
  try:
306
- client = chromadb.HttpClient(host=CHROMA_HOST, port=CHROMA_PORT)
366
+ client = chromadb.HttpClient(host=CHROMA_HOST, port=CHROMA_PORT, ssl=CHROMA_SSL)
307
367
  client.heartbeat()
308
368
  except Exception as e:
309
369
  if IS_EN:
@@ -374,11 +434,15 @@ cmd_watch() {
374
434
  LAST_COUNT=-1
375
435
 
376
436
  while true; do
377
- RESULT=$("${VENV_PYTHON}" - 2>/dev/null << 'PYEOF'
378
- import chromadb, sys
437
+ RESULT=$(CHROMA_SCHEME="${CHROMA_SCHEME}" CHROMA_HOST="${CHROMA_HOST}" CHROMA_PORT="${CHROMA_PORT}" "${VENV_PYTHON}" - 2>/dev/null << 'PYEOF'
438
+ import chromadb, os, sys
379
439
 
380
440
  try:
381
- client = chromadb.HttpClient(host="localhost", port=8000)
441
+ scheme = os.getenv("CHROMA_SCHEME", "http").strip().lower()
442
+ ssl = scheme == "https"
443
+ host = os.getenv("CHROMA_HOST", "localhost").strip() or "localhost"
444
+ port = int(os.getenv("CHROMA_PORT", "8000"))
445
+ client = chromadb.HttpClient(host=host, port=port, ssl=ssl)
382
446
  client.heartbeat()
383
447
  cols = client.list_collections()
384
448
  total = sum(c.count() for c in cols)
@@ -669,7 +733,7 @@ cmd_full() {
669
733
 
670
734
  # Coleções e chunks
671
735
  echo -e " ${BOLD}$(t collections_chunks)${NC}"
672
- MONITOR_LANG="${UI_LANG}" "${VENV_PYTHON}" - 2>/dev/null << 'PYEOF'
736
+ MONITOR_LANG="${UI_LANG}" CHROMA_SCHEME="${CHROMA_SCHEME}" CHROMA_HOST="${CHROMA_HOST}" CHROMA_PORT="${CHROMA_PORT}" "${VENV_PYTHON}" - 2>/dev/null << 'PYEOF'
673
737
  import chromadb, os, sys
674
738
 
675
739
  GREEN = "\033[0;32m"; CYAN = "\033[0;36m"
@@ -679,7 +743,11 @@ LANG = os.getenv("MONITOR_LANG", "pt-br").lower()
679
743
  IS_EN = LANG == "en-us"
680
744
 
681
745
  try:
682
- client = chromadb.HttpClient(host="localhost", port=8000)
746
+ scheme = os.getenv("CHROMA_SCHEME", "http").strip().lower()
747
+ ssl = scheme == "https"
748
+ host = os.getenv("CHROMA_HOST", "localhost").strip() or "localhost"
749
+ port = int(os.getenv("CHROMA_PORT", "8000"))
750
+ client = chromadb.HttpClient(host=host, port=port, ssl=ssl)
683
751
  client.heartbeat()
684
752
  except Exception as e:
685
753
  msg = "ChromaDB unreachable" if IS_EN else "ChromaDB inacessível"
@@ -759,18 +827,23 @@ cmd_reset() {
759
827
  exit 0
760
828
  fi
761
829
 
762
- MONITOR_LANG="${UI_LANG}" "${VENV_PYTHON}" - << 'PYEOF'
830
+ MONITOR_LANG="${UI_LANG}" CHROMA_SCHEME="${CHROMA_SCHEME}" CHROMA_HOST="${CHROMA_HOST}" CHROMA_PORT="${CHROMA_PORT}" "${VENV_PYTHON}" - << 'PYEOF'
763
831
  import os
764
832
  import sys
765
833
  import chromadb
766
834
 
767
- CHROMA_HOST = "localhost"
768
- CHROMA_PORT = 8000
835
+ CHROMA_SCHEME = os.getenv("CHROMA_SCHEME", "http").strip().lower()
836
+ CHROMA_HOST = os.getenv("CHROMA_HOST", "localhost").strip() or "localhost"
837
+ try:
838
+ CHROMA_PORT = int(os.getenv("CHROMA_PORT", "8000"))
839
+ except Exception:
840
+ CHROMA_PORT = 8000
841
+ CHROMA_SSL = CHROMA_SCHEME == "https"
769
842
  LANG = os.getenv("MONITOR_LANG", "pt-br").lower()
770
843
  IS_EN = LANG == "en-us"
771
844
 
772
845
  try:
773
- client = chromadb.HttpClient(host=CHROMA_HOST, port=CHROMA_PORT)
846
+ client = chromadb.HttpClient(host=CHROMA_HOST, port=CHROMA_PORT, ssl=CHROMA_SSL)
774
847
  client.heartbeat()
775
848
  except Exception as e:
776
849
  if IS_EN:
@@ -839,6 +912,7 @@ cmd_menu() {
839
912
  # Dispatcher
840
913
  # ---------------------------------------------------------------------------
841
914
  select_ui_language
915
+ load_chroma_endpoint_config
842
916
  case "${1:-menu}" in
843
917
  chunks) cmd_chunks ;;
844
918
  watch) cmd_watch ;;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "own-rag-cli",
3
- "version": "0.0.1-snapshot",
3
+ "version": "0.0.2-snapshot",
4
4
  "description": "Local RAG setup with ChromaDB + MCP server (Jina/BGE hybrid support).",
5
5
  "license": "MIT",
6
6
  "private": false,