vectorgov-cli 0.4.0__tar.gz → 0.4.2__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.4.0 → vectorgov_cli-0.4.2}/PKG-INFO +1 -1
  2. {vectorgov_cli-0.4.0 → vectorgov_cli-0.4.2}/pyproject.toml +1 -1
  3. {vectorgov_cli-0.4.0 → vectorgov_cli-0.4.2}/src/vectorgov/cli/__init__.py +1 -1
  4. {vectorgov_cli-0.4.0 → vectorgov_cli-0.4.2}/src/vectorgov/cli/commands/ask.py +24 -0
  5. {vectorgov_cli-0.4.0 → vectorgov_cli-0.4.2}/src/vectorgov/cli/commands/fs_search.py +3 -0
  6. {vectorgov_cli-0.4.0 → vectorgov_cli-0.4.2}/src/vectorgov/cli/commands/grep_cmd.py +3 -0
  7. {vectorgov_cli-0.4.0 → vectorgov_cli-0.4.2}/src/vectorgov/cli/commands/lookup.py +3 -0
  8. {vectorgov_cli-0.4.0 → vectorgov_cli-0.4.2}/src/vectorgov/cli/commands/merged.py +6 -0
  9. {vectorgov_cli-0.4.0 → vectorgov_cli-0.4.2}/src/vectorgov/cli/commands/search.py +3 -0
  10. {vectorgov_cli-0.4.0 → vectorgov_cli-0.4.2}/src/vectorgov/cli/commands/smart_search.py +3 -0
  11. {vectorgov_cli-0.4.0 → vectorgov_cli-0.4.2}/src/vectorgov/cli/utils/output.py +10 -0
  12. {vectorgov_cli-0.4.0 → vectorgov_cli-0.4.2}/.gitignore +0 -0
  13. {vectorgov_cli-0.4.0 → vectorgov_cli-0.4.2}/README.md +0 -0
  14. {vectorgov_cli-0.4.0 → vectorgov_cli-0.4.2}/src/vectorgov/cli/commands/__init__.py +0 -0
  15. {vectorgov_cli-0.4.0 → vectorgov_cli-0.4.2}/src/vectorgov/cli/commands/audit.py +0 -0
  16. {vectorgov_cli-0.4.0 → vectorgov_cli-0.4.2}/src/vectorgov/cli/commands/auth.py +0 -0
  17. {vectorgov_cli-0.4.0 → vectorgov_cli-0.4.2}/src/vectorgov/cli/commands/config.py +0 -0
  18. {vectorgov_cli-0.4.0 → vectorgov_cli-0.4.2}/src/vectorgov/cli/commands/context.py +0 -0
  19. {vectorgov_cli-0.4.0 → vectorgov_cli-0.4.2}/src/vectorgov/cli/commands/docs.py +0 -0
  20. {vectorgov_cli-0.4.0 → vectorgov_cli-0.4.2}/src/vectorgov/cli/commands/explain.py +0 -0
  21. {vectorgov_cli-0.4.0 → vectorgov_cli-0.4.2}/src/vectorgov/cli/commands/feedback.py +0 -0
  22. {vectorgov_cli-0.4.0 → vectorgov_cli-0.4.2}/src/vectorgov/cli/commands/hybrid.py +0 -0
  23. {vectorgov_cli-0.4.0 → vectorgov_cli-0.4.2}/src/vectorgov/cli/commands/init.py +0 -0
  24. {vectorgov_cli-0.4.0 → vectorgov_cli-0.4.2}/src/vectorgov/cli/commands/prompts.py +0 -0
  25. {vectorgov_cli-0.4.0 → vectorgov_cli-0.4.2}/src/vectorgov/cli/commands/quota.py +0 -0
  26. {vectorgov_cli-0.4.0 → vectorgov_cli-0.4.2}/src/vectorgov/cli/commands/read.py +0 -0
  27. {vectorgov_cli-0.4.0 → vectorgov_cli-0.4.2}/src/vectorgov/cli/commands/tokens.py +0 -0
  28. {vectorgov_cli-0.4.0 → vectorgov_cli-0.4.2}/src/vectorgov/cli/main.py +0 -0
  29. {vectorgov_cli-0.4.0 → vectorgov_cli-0.4.2}/src/vectorgov/cli/utils/__init__.py +0 -0
  30. {vectorgov_cli-0.4.0 → vectorgov_cli-0.4.2}/src/vectorgov/cli/utils/config.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vectorgov-cli
3
- Version: 0.4.0
3
+ Version: 0.4.2
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.4.0"
7
+ version = "0.4.2"
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.4.0"
10
+ __version__ = "0.4.2"
11
11
 
12
12
  from .main import app
13
13
 
@@ -115,6 +115,9 @@ def ask(
115
115
  "latency_ms": results.latency_ms,
116
116
  "query_id": results.query_id,
117
117
  "request_id": request_id,
118
+ "token_count_estimate": getattr(results, "token_count_estimate", None),
119
+ "token_count_breakdown": getattr(results, "token_count_breakdown", None),
120
+ "payload_coverage": getattr(results, "payload_coverage", None),
118
121
  "messages": messages,
119
122
  "context": results.to_context(),
120
123
  }
@@ -130,6 +133,9 @@ def ask(
130
133
  "total": results.total,
131
134
  "query_id": results.query_id,
132
135
  "request_id": request_id,
136
+ "token_count_estimate": getattr(results, "token_count_estimate", None),
137
+ "token_count_breakdown": getattr(results, "token_count_breakdown", None),
138
+ "payload_coverage": getattr(results, "payload_coverage", None),
133
139
  }
134
140
  }
135
141
  console.print_json(json.dumps(data, ensure_ascii=False))
@@ -158,6 +164,24 @@ def ask(
158
164
  console.print(f"[dim]Query ID: {results.query_id}[/dim]")
159
165
  if request_id:
160
166
  console.print(f"[dim]Request ID: {request_id}[/dim]")
167
+
168
+ # Rodape de tokens/payload (token_count_estimate, breakdown, coverage)
169
+ _tce = getattr(results, "token_count_estimate", None)
170
+ _bd = getattr(results, "token_count_breakdown", None)
171
+ _pc = getattr(results, "payload_coverage", None)
172
+ _footer_parts = []
173
+ if _pc:
174
+ _footer_parts.append(f"payload: {_pc}")
175
+ if _tce is not None:
176
+ _footer_parts.append(f"~{_tce} tokens")
177
+ if _bd and isinstance(_bd, dict):
178
+ _footer_parts.append(
179
+ f"(lei={_bd.get('law_chunks')} curadoria={_bd.get('curadoria')} "
180
+ f"estrutura={_bd.get('structure')})"
181
+ )
182
+ if _footer_parts:
183
+ console.print(f"[dim]{' | '.join(_footer_parts)}[/dim]")
184
+
161
185
  console.print("[dim]Use 'vectorgov feedback <query_id> --like' para avaliar[/dim]")
162
186
 
163
187
  # Mostra código de exemplo se solicitado
@@ -103,6 +103,9 @@ def fs_search(
103
103
  "query_id": getattr(result, "query_id", None),
104
104
  "request_id": extract_request_id(result),
105
105
  "credits": extract_credits(result),
106
+ "token_count_estimate": getattr(result, "token_count_estimate", None),
107
+ "token_count_breakdown": getattr(result, "token_count_breakdown", None),
108
+ "payload_coverage": getattr(result, "payload_coverage", None),
106
109
  }
107
110
  print(render_llm_output(hits, query, metadata))
108
111
  return
@@ -96,6 +96,9 @@ def grep(
96
96
  "query_id": None,
97
97
  "request_id": extract_request_id(result),
98
98
  "credits": extract_credits(result),
99
+ "token_count_estimate": getattr(result, "token_count_estimate", None),
100
+ "token_count_breakdown": getattr(result, "token_count_breakdown", None),
101
+ "payload_coverage": getattr(result, "payload_coverage", None),
99
102
  }
100
103
  print(render_llm_output(hits, query, metadata))
101
104
  return
@@ -443,6 +443,9 @@ def lookup( # noqa: C901
443
443
  "jurisprudencia_tcu": jurisprudencia_tcu,
444
444
  "acordao_tcu_key": acordao_tcu_key,
445
445
  "acordao_tcu_link": acordao_tcu_link,
446
+ "token_count_estimate": getattr(result, "token_count_estimate", None),
447
+ "token_count_breakdown": getattr(result, "token_count_breakdown", None),
448
+ "payload_coverage": getattr(result, "payload_coverage", None),
446
449
  }
447
450
  print(render_llm_output(hits, query, metadata))
448
451
  return
@@ -104,6 +104,9 @@ def merged(
104
104
  "token_total": getattr(result, "token_total", None),
105
105
  "token_budget": getattr(result, "token_budget", None),
106
106
  "latency_ms": getattr(result, "latency_ms", None),
107
+ "token_count_estimate": getattr(result, "token_count_estimate", None),
108
+ "token_count_breakdown": getattr(result, "token_count_breakdown", None),
109
+ "payload_coverage": getattr(result, "payload_coverage", None),
107
110
  "hits": [
108
111
  {
109
112
  "text": getattr(h, "text", str(h)),
@@ -135,6 +138,9 @@ def merged(
135
138
  "query_id": None,
136
139
  "request_id": extract_request_id(result),
137
140
  "credits": extract_credits(result),
141
+ "token_count_estimate": getattr(result, "token_count_estimate", None),
142
+ "token_count_breakdown": getattr(result, "token_count_breakdown", None),
143
+ "payload_coverage": getattr(result, "payload_coverage", None),
138
144
  }
139
145
  print(render_llm_output(hits, query, metadata))
140
146
  return
@@ -115,6 +115,9 @@ def search(
115
115
  "latency_ms": results.latency_ms,
116
116
  "query_id": results.query_id,
117
117
  "request_id": extract_request_id(results),
118
+ "token_count_estimate": getattr(results, "token_count_estimate", None),
119
+ "token_count_breakdown": getattr(results, "token_count_breakdown", None),
120
+ "payload_coverage": getattr(results, "payload_coverage", None),
118
121
  "hits": [hit_to_raw_dict(h) for h in results.hits],
119
122
  }
120
123
  print(json.dumps(data, ensure_ascii=False, indent=2))
@@ -100,6 +100,9 @@ def smart_search(
100
100
  "query_id": getattr(result, "query_id", None),
101
101
  "request_id": extract_request_id(result),
102
102
  "credits": extract_credits(result),
103
+ "token_count_estimate": getattr(result, "token_count_estimate", None),
104
+ "token_count_breakdown": getattr(result, "token_count_breakdown", None),
105
+ "payload_coverage": getattr(result, "payload_coverage", None),
103
106
  }
104
107
  print(render_llm_output(hits, query, metadata))
105
108
  return
@@ -327,6 +327,16 @@ def render_llm_output(hits: list, query: str, metadata: Optional[dict] = None) -
327
327
  parts.append(f"Total: {metadata['total']} hits")
328
328
  if metadata.get("latency_ms") is not None:
329
329
  parts.append(f"Latencia: {metadata['latency_ms']/1000:.1f}s")
330
+ if metadata.get("payload_coverage"):
331
+ parts.append(f"payload: {metadata['payload_coverage']}")
332
+ if metadata.get("token_count_estimate") is not None:
333
+ parts.append(f"~{metadata['token_count_estimate']} tokens")
334
+ _bd = metadata.get("token_count_breakdown")
335
+ if _bd:
336
+ parts.append(
337
+ f"(lei={_bd.get('law_chunks')} curadoria={_bd.get('curadoria')} "
338
+ f"estrutura={_bd.get('structure')})"
339
+ )
330
340
  credits_info = metadata.get("credits")
331
341
  if credits_info:
332
342
  cost = credits_info.get("cost", 0)
File without changes
File without changes