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.
- {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/PKG-INFO +1 -1
- {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/pyproject.toml +1 -1
- {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/__init__.py +1 -1
- {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/lookup.py +33 -11
- {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/.gitignore +0 -0
- {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/README.md +0 -0
- {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/__init__.py +0 -0
- {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/ask.py +0 -0
- {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/audit.py +0 -0
- {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/auth.py +0 -0
- {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/config.py +0 -0
- {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/context.py +0 -0
- {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/docs.py +0 -0
- {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/explain.py +0 -0
- {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/feedback.py +0 -0
- {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/fs_search.py +0 -0
- {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/grep_cmd.py +0 -0
- {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/hybrid.py +0 -0
- {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/init.py +0 -0
- {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/merged.py +0 -0
- {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/prompts.py +0 -0
- {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/quota.py +0 -0
- {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/read.py +0 -0
- {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/search.py +0 -0
- {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/smart_search.py +0 -0
- {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/commands/tokens.py +0 -0
- {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/main.py +0 -0
- {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/utils/__init__.py +0 -0
- {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/utils/config.py +0 -0
- {vectorgov_cli-0.2.6 → vectorgov_cli-0.2.7}/src/vectorgov/cli/utils/output.py +0 -0
|
@@ -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
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
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 =
|
|
295
|
-
span =
|
|
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 =
|
|
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
|
|
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
|