vectorgov-cli 0.2.6__tar.gz → 0.2.7__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.
Files changed (30) hide show
  1. {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/PKG-INFO +1 -1
  2. {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/pyproject.toml +1 -1
  3. {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/__init__.py +1 -1
  4. {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/lookup.py +33 -11
  5. {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/.gitignore +0 -0
  6. {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/README.md +0 -0
  7. {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/__init__.py +0 -0
  8. {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/ask.py +0 -0
  9. {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/audit.py +0 -0
  10. {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/auth.py +0 -0
  11. {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/config.py +0 -0
  12. {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/context.py +0 -0
  13. {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/docs.py +0 -0
  14. {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/explain.py +0 -0
  15. {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/feedback.py +0 -0
  16. {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/fs_search.py +0 -0
  17. {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/grep_cmd.py +0 -0
  18. {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/hybrid.py +0 -0
  19. {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/init.py +0 -0
  20. {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/merged.py +0 -0
  21. {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/prompts.py +0 -0
  22. {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/quota.py +0 -0
  23. {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/read.py +0 -0
  24. {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/search.py +0 -0
  25. {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/smart_search.py +0 -0
  26. {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/tokens.py +0 -0
  27. {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/main.py +0 -0
  28. {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/utils/__init__.py +0 -0
  29. {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/utils/config.py +0 -0
  30. {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/utils/output.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vectorgov-cli
3
- Version: 0.2.6
3
+ Version: 0.2.7
4
4
  Summary: CLI para a API VectorGov - Busca semântica em legislação brasileira
5
5
  Project-URL: Homepage, https://vectorgov.io
6
6
  Project-URL: Documentation, https://vectorgov.io/documentacao
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "vectorgov-cli"
7
- version = "0.2.6"
7
+ version = "0.2.7"
8
8
  description = "CLI para a API VectorGov - Busca semântica em legislação brasileira"
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -7,7 +7,7 @@ Uso:
7
7
  vectorgov auth login
8
8
  """
9
9
 
10
- __version__ = "0.2.6"
10
+ __version__ = "0.2.7"
11
11
 
12
12
  from .main import app
13
13
 
@@ -279,22 +279,44 @@ def lookup( # noqa: C901
279
279
  print(render_llm_output(hits, query, metadata))
280
280
  return
281
281
 
282
+ # hits pode conter dict (fallback _build_match_from_raw) OU objeto
283
+ # (SDK Hit). Helper para ler campos de ambos uniformemente — usar
284
+ # getattr direto em dict não lê chaves, então str(h) acabava
285
+ # serializando o dict inteiro dentro do campo `text` do output JSON.
286
+ def _get(obj, key, default=""):
287
+ if obj is None:
288
+ return default
289
+ if isinstance(obj, dict):
290
+ return obj.get(key, default)
291
+ return getattr(obj, key, default)
292
+
282
293
  if output == "json":
283
- data = [
284
- {
285
- "source": getattr(h, "source", ""),
286
- "text": getattr(h, "text", str(h)),
287
- "span_id": getattr(h, "span_id", ""),
288
- }
289
- for h in hits
290
- ]
294
+ data = {
295
+ "status": status,
296
+ "query": query,
297
+ "evidence_url": evidence_url,
298
+ "document_url": document_url,
299
+ "total": len(hits),
300
+ "hits": [
301
+ {
302
+ "source": _get(h, "source") or _get(h, "document_id"),
303
+ "text": _get(h, "text"),
304
+ "span_id": _get(h, "span_id"),
305
+ "device_type": _get(h, "device_type"),
306
+ "document_id": _get(h, "document_id"),
307
+ "article_number": _get(h, "article_number"),
308
+ "breadcrumb": _get(h, "breadcrumb"),
309
+ }
310
+ for h in hits
311
+ ],
312
+ }
291
313
  console.print_json(json.dumps(data, ensure_ascii=False))
292
314
  else:
293
315
  for h in hits:
294
- source = getattr(h, "source", getattr(h, "document_id", ""))
295
- span = getattr(h, "span_id", "")
316
+ source = _get(h, "source") or _get(h, "document_id")
317
+ span = _get(h, "span_id")
296
318
  title = f"{source} — {span}" if span else source
297
- text = getattr(h, "text", str(h))
319
+ text = _get(h, "text") or str(h)
298
320
  console.print(Panel(text, title=title, border_style="cyan"))
299
321
 
300
322
  # Links de evidência (extraídos do result, não dos hits — o backend
File without changes
File without changes