trustgraph-cli 2.10.1__tar.gz → 2.10.3__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 (123) hide show
  1. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/PKG-INFO +1 -1
  2. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/pyproject.toml +1 -0
  3. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/invoke_graph_rag.py +75 -5
  4. trustgraph_cli-2.10.3/trustgraph/cli/mint_token.py +70 -0
  5. trustgraph_cli-2.10.3/trustgraph/cli_version.py +1 -0
  6. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph_cli.egg-info/PKG-INFO +1 -1
  7. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph_cli.egg-info/SOURCES.txt +1 -0
  8. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph_cli.egg-info/entry_points.txt +1 -0
  9. trustgraph_cli-2.10.1/trustgraph/cli_version.py +0 -1
  10. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/README.md +0 -0
  11. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/setup.cfg +0 -0
  12. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/__init__.py +0 -0
  13. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/_iam.py +0 -0
  14. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/add_library_document.py +0 -0
  15. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/bootstrap_iam.py +0 -0
  16. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/change_password.py +0 -0
  17. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/create_api_key.py +0 -0
  18. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/create_user.py +0 -0
  19. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/create_workspace.py +0 -0
  20. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/delete_collection.py +0 -0
  21. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/delete_config_item.py +0 -0
  22. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/delete_flow_blueprint.py +0 -0
  23. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/delete_kg_core.py +0 -0
  24. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/delete_mcp_tool.py +0 -0
  25. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/delete_tool.py +0 -0
  26. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/delete_user.py +0 -0
  27. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/describe_image.py +0 -0
  28. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/disable_user.py +0 -0
  29. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/dump_msgpack.py +0 -0
  30. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/dump_queues.py +0 -0
  31. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/enable_user.py +0 -0
  32. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/export_workspace.py +0 -0
  33. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/export_workspace_config.py +0 -0
  34. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/get_config_item.py +0 -0
  35. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/get_de_core.py +0 -0
  36. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/get_document_content.py +0 -0
  37. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/get_flow_blueprint.py +0 -0
  38. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/get_kg_core.py +0 -0
  39. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/graph_to_turtle.py +0 -0
  40. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/import_workspace.py +0 -0
  41. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/import_workspace_config.py +0 -0
  42. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/init_pulsar_manager.py +0 -0
  43. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/invoke_agent.py +0 -0
  44. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/invoke_document_embeddings.py +0 -0
  45. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/invoke_document_rag.py +0 -0
  46. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/invoke_embeddings.py +0 -0
  47. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/invoke_graph_embeddings.py +0 -0
  48. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/invoke_llm.py +0 -0
  49. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/invoke_mcp_tool.py +0 -0
  50. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/invoke_nlp_query.py +0 -0
  51. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/invoke_prompt.py +0 -0
  52. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/invoke_reranker.py +0 -0
  53. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/invoke_row_embeddings.py +0 -0
  54. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/invoke_rows_query.py +0 -0
  55. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/invoke_sparql_query.py +0 -0
  56. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/invoke_structured_query.py +0 -0
  57. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/list_api_keys.py +0 -0
  58. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/list_collections.py +0 -0
  59. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/list_config_items.py +0 -0
  60. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/list_explain_traces.py +0 -0
  61. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/list_my_workspaces.py +0 -0
  62. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/list_users.py +0 -0
  63. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/list_workspaces.py +0 -0
  64. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/load_doc_embeds.py +0 -0
  65. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/load_kg_core.py +0 -0
  66. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/load_knowledge.py +0 -0
  67. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/load_sample_documents.py +0 -0
  68. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/load_structured_data.py +0 -0
  69. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/load_turtle.py +0 -0
  70. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/login.py +0 -0
  71. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/monitor_prompts.py +0 -0
  72. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/nquads.py +0 -0
  73. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/put_config_item.py +0 -0
  74. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/put_de_core.py +0 -0
  75. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/put_flow_blueprint.py +0 -0
  76. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/put_kg_core.py +0 -0
  77. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/query_graph.py +0 -0
  78. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/remove_library_document.py +0 -0
  79. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/reset_password.py +0 -0
  80. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/revoke_api_key.py +0 -0
  81. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/sample_documents/__init__.py +0 -0
  82. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/sample_documents/belgian-beer.md +0 -0
  83. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/sample_documents/bronze-age-collapse.pdf +0 -0
  84. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/sample_documents/corporate-scandals.pdf +0 -0
  85. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/sample_documents/history-of-pets.md +0 -0
  86. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/sample_documents/metadata.json +0 -0
  87. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/sample_documents/mil-fortifications-america-19th-c.md +0 -0
  88. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/sample_documents/recipes.md +0 -0
  89. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/sample_documents/trade-routes-europe.md +0 -0
  90. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/save_doc_embeds.py +0 -0
  91. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/set_collection.py +0 -0
  92. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/set_mcp_tool.py +0 -0
  93. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/set_prompt.py +0 -0
  94. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/set_token_costs.py +0 -0
  95. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/set_tool.py +0 -0
  96. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/show_config.py +0 -0
  97. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/show_explain_trace.py +0 -0
  98. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/show_extraction_provenance.py +0 -0
  99. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/show_flow_blueprints.py +0 -0
  100. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/show_flow_state.py +0 -0
  101. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/show_flows.py +0 -0
  102. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/show_graph.py +0 -0
  103. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/show_kg_cores.py +0 -0
  104. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/show_library_documents.py +0 -0
  105. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/show_library_processing.py +0 -0
  106. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/show_mcp_tools.py +0 -0
  107. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/show_parameter_types.py +0 -0
  108. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/show_processor_state.py +0 -0
  109. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/show_prompts.py +0 -0
  110. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/show_token_costs.py +0 -0
  111. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/show_token_rate.py +0 -0
  112. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/show_tools.py +0 -0
  113. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/start_flow.py +0 -0
  114. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/start_library_processing.py +0 -0
  115. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/stop_flow.py +0 -0
  116. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/stop_library_processing.py +0 -0
  117. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/unload_kg_core.py +0 -0
  118. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/update_user.py +0 -0
  119. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/verify_system_status.py +0 -0
  120. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph/cli/whoami.py +0 -0
  121. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph_cli.egg-info/dependency_links.txt +0 -0
  122. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph_cli.egg-info/requires.txt +0 -0
  123. {trustgraph_cli-2.10.1 → trustgraph_cli-2.10.3}/trustgraph_cli.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: trustgraph-cli
3
- Version: 2.10.1
3
+ Version: 2.10.3
4
4
  Summary: TrustGraph provides a means to run a pipeline of flexible AI processing components in a flexible means to achieve a processing pipeline.
5
5
  Author-email: "trustgraph.ai" <security@trustgraph.ai>
6
6
  Project-URL: Homepage, https://github.com/trustgraph-ai/trustgraph
@@ -44,6 +44,7 @@ tg-get-document-content = "trustgraph.cli.get_document_content:main"
44
44
  tg-graph-to-turtle = "trustgraph.cli.graph_to_turtle:main"
45
45
  tg-bootstrap-iam = "trustgraph.cli.bootstrap_iam:main"
46
46
  tg-login = "trustgraph.cli.login:main"
47
+ tg-mint-token = "trustgraph.cli.mint_token:main"
47
48
  tg-create-user = "trustgraph.cli.create_user:main"
48
49
  tg-list-users = "trustgraph.cli.list_users:main"
49
50
  tg-whoami = "trustgraph.cli.whoami:main"
@@ -3,6 +3,7 @@ Uses the GraphRAG service to answer a question
3
3
  """
4
4
 
5
5
  import argparse
6
+ import json
6
7
  import os
7
8
  import sys
8
9
  from trustgraph.api import (
@@ -48,6 +49,8 @@ def _question_explainable_api(
48
49
  max_subgraph_size, max_path_length, edge_score_limit=30,
49
50
  edge_limit=25, max_reranker_input=350, token=None, debug=False,
50
51
  workspace="default",
52
+ grounding_seeds=None, graph_seeds=None, languages=None,
53
+ traversal_instructions=None,
51
54
  ):
52
55
  """Execute graph RAG with explainability using the new API classes."""
53
56
  api = Api(url=url, token=token, workspace=workspace)
@@ -61,7 +64,7 @@ def _question_explainable_api(
61
64
  # Stream GraphRAG with explainability - process events as they arrive
62
65
  for item in flow.graph_rag_explain(
63
66
  query=question_text,
64
- collection=collection,
67
+ collection=collection,
65
68
  entity_limit=entity_limit,
66
69
  triple_limit=triple_limit,
67
70
  max_subgraph_size=max_subgraph_size,
@@ -69,6 +72,10 @@ def _question_explainable_api(
69
72
  edge_score_limit=edge_score_limit,
70
73
  edge_limit=edge_limit,
71
74
  max_reranker_input=max_reranker_input,
75
+ grounding_seeds=grounding_seeds,
76
+ graph_seeds=graph_seeds,
77
+ languages=languages,
78
+ traversal_instructions=traversal_instructions,
72
79
  ):
73
80
  if isinstance(item, RAGChunk):
74
81
  # Print response content
@@ -164,6 +171,8 @@ def question(
164
171
  edge_limit=25, max_reranker_input=350, streaming=True, token=None,
165
172
  explainable=False, debug=False, show_usage=False,
166
173
  workspace="default",
174
+ grounding_seeds=None, graph_seeds=None, languages=None,
175
+ traversal_instructions=None,
167
176
  ):
168
177
 
169
178
  # Explainable mode uses the API to capture and process provenance events
@@ -172,7 +181,7 @@ def question(
172
181
  url=url,
173
182
  flow_id=flow_id,
174
183
  question_text=question,
175
- collection=collection,
184
+ collection=collection,
176
185
  entity_limit=entity_limit,
177
186
  triple_limit=triple_limit,
178
187
  max_subgraph_size=max_subgraph_size,
@@ -183,6 +192,10 @@ def question(
183
192
  token=token,
184
193
  debug=debug,
185
194
  workspace=workspace,
195
+ grounding_seeds=grounding_seeds,
196
+ graph_seeds=graph_seeds,
197
+ languages=languages,
198
+ traversal_instructions=traversal_instructions,
186
199
  )
187
200
  return
188
201
 
@@ -197,7 +210,7 @@ def question(
197
210
  try:
198
211
  response = flow.graph_rag(
199
212
  query=question,
200
- collection=collection,
213
+ collection=collection,
201
214
  entity_limit=entity_limit,
202
215
  triple_limit=triple_limit,
203
216
  max_subgraph_size=max_subgraph_size,
@@ -205,7 +218,11 @@ def question(
205
218
  edge_score_limit=edge_score_limit,
206
219
  edge_limit=edge_limit,
207
220
  max_reranker_input=max_reranker_input,
208
- streaming=True
221
+ streaming=True,
222
+ grounding_seeds=grounding_seeds,
223
+ graph_seeds=graph_seeds,
224
+ languages=languages,
225
+ traversal_instructions=traversal_instructions,
209
226
  )
210
227
 
211
228
  # Stream output
@@ -233,7 +250,7 @@ def question(
233
250
  flow = api.flow().id(flow_id)
234
251
  result = flow.graph_rag(
235
252
  query=question,
236
- collection=collection,
253
+ collection=collection,
237
254
  entity_limit=entity_limit,
238
255
  triple_limit=triple_limit,
239
256
  max_subgraph_size=max_subgraph_size,
@@ -241,6 +258,10 @@ def question(
241
258
  edge_score_limit=edge_score_limit,
242
259
  edge_limit=edge_limit,
243
260
  max_reranker_input=max_reranker_input,
261
+ grounding_seeds=grounding_seeds,
262
+ graph_seeds=graph_seeds,
263
+ languages=languages,
264
+ traversal_instructions=traversal_instructions,
244
265
  )
245
266
  print(result.text)
246
267
 
@@ -370,10 +391,55 @@ def main():
370
391
  help='Show token usage and model on stderr'
371
392
  )
372
393
 
394
+ parser.add_argument(
395
+ '--grounding-seeds',
396
+ type=str,
397
+ default=None,
398
+ help='JSON list of concept strings to bypass LLM grounding (e.g. \'["graphrag", "retrieval"]\')'
399
+ )
400
+
401
+ parser.add_argument(
402
+ '--graph-seeds',
403
+ type=str,
404
+ default=None,
405
+ help='JSON list of entity IRIs as traversal starting points (e.g. \'["http://example.org/Person/Jane"]\')'
406
+ )
407
+
408
+ parser.add_argument(
409
+ '--languages',
410
+ type=str,
411
+ default=None,
412
+ help='JSON list of language tags to filter by (e.g. \'["en", ""]\')'
413
+ )
414
+
415
+ parser.add_argument(
416
+ '--traversal-instructions',
417
+ type=str,
418
+ default=None,
419
+ help='JSON list of per-hop traversal restrictions (e.g. \'[{"types": ["http://example.org/Person"]}, {"relationships": ["http://example.org/worksFor"]}]\')'
420
+ )
421
+
373
422
  args = parser.parse_args()
374
423
 
375
424
  try:
376
425
 
426
+ grounding_seeds = (
427
+ json.loads(args.grounding_seeds)
428
+ if args.grounding_seeds else None
429
+ )
430
+ graph_seeds = (
431
+ json.loads(args.graph_seeds)
432
+ if args.graph_seeds else None
433
+ )
434
+ languages = (
435
+ json.loads(args.languages)
436
+ if args.languages else None
437
+ )
438
+ traversal_instructions = (
439
+ json.loads(args.traversal_instructions)
440
+ if args.traversal_instructions else None
441
+ )
442
+
377
443
  question(
378
444
  url=args.url,
379
445
  flow_id=args.flow_id,
@@ -392,6 +458,10 @@ def main():
392
458
  debug=args.debug,
393
459
  show_usage=args.show_usage,
394
460
  workspace=args.workspace,
461
+ grounding_seeds=grounding_seeds,
462
+ graph_seeds=graph_seeds,
463
+ languages=languages,
464
+ traversal_instructions=traversal_instructions,
395
465
  )
396
466
 
397
467
  except Exception as e:
@@ -0,0 +1,70 @@
1
+ """
2
+ Mint a JWT containing a caller-supplied UserContext. Requires an
3
+ admin auth token. Prints the resulting JWT to stdout.
4
+ """
5
+
6
+ import argparse
7
+ import json
8
+ import sys
9
+
10
+ from ._iam import DEFAULT_URL, DEFAULT_TOKEN, call_auth, run_main
11
+
12
+
13
+ def do_mint_token(args):
14
+ try:
15
+ user_context = json.loads(args.user_context)
16
+ except json.JSONDecodeError as e:
17
+ print(f"Invalid JSON for --user-context: {e}", file=sys.stderr)
18
+ sys.exit(1)
19
+
20
+ if not isinstance(user_context, dict):
21
+ print("--user-context must be a JSON object", file=sys.stderr)
22
+ sys.exit(1)
23
+
24
+ body = {
25
+ "user_id": args.user_id,
26
+ "workspace": args.workspace,
27
+ "user_context": user_context,
28
+ }
29
+
30
+ resp = call_auth(
31
+ args.api_url, "/api/v1/auth/mint-token", args.token, body,
32
+ )
33
+
34
+ jwt = resp.get("jwt", "")
35
+ expires = resp.get("jwt_expires", "")
36
+
37
+ if expires:
38
+ print(f"JWT expires: {expires}", file=sys.stderr)
39
+ print(jwt)
40
+
41
+
42
+ def main():
43
+ parser = argparse.ArgumentParser(
44
+ prog="tg-mint-token", description=__doc__,
45
+ )
46
+ parser.add_argument(
47
+ "-u", "--api-url", default=DEFAULT_URL,
48
+ help=f"API URL (default: {DEFAULT_URL})",
49
+ )
50
+ parser.add_argument(
51
+ "-t", "--token", default=DEFAULT_TOKEN,
52
+ help="Admin auth token (JWT or API key)",
53
+ )
54
+ parser.add_argument(
55
+ "--user-id", required=True,
56
+ help="User ID for the minted token's subject",
57
+ )
58
+ parser.add_argument(
59
+ "-w", "--workspace", required=True,
60
+ help="Target workspace for the minted token",
61
+ )
62
+ parser.add_argument(
63
+ "--user-context", required=True,
64
+ help="UserContext as a JSON string",
65
+ )
66
+ run_main(do_mint_token, parser)
67
+
68
+
69
+ if __name__ == "__main__":
70
+ main()
@@ -0,0 +1 @@
1
+ __version__ = "2.10.3"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: trustgraph-cli
3
- Version: 2.10.1
3
+ Version: 2.10.3
4
4
  Summary: TrustGraph provides a means to run a pipeline of flexible AI processing components in a flexible means to achieve a processing pipeline.
5
5
  Author-email: "trustgraph.ai" <security@trustgraph.ai>
6
6
  Project-URL: Homepage, https://github.com/trustgraph-ai/trustgraph
@@ -61,6 +61,7 @@ trustgraph/cli/load_sample_documents.py
61
61
  trustgraph/cli/load_structured_data.py
62
62
  trustgraph/cli/load_turtle.py
63
63
  trustgraph/cli/login.py
64
+ trustgraph/cli/mint_token.py
64
65
  trustgraph/cli/monitor_prompts.py
65
66
  trustgraph/cli/nquads.py
66
67
  trustgraph/cli/put_config_item.py
@@ -56,6 +56,7 @@ tg-load-sample-documents = trustgraph.cli.load_sample_documents:main
56
56
  tg-load-structured-data = trustgraph.cli.load_structured_data:main
57
57
  tg-load-turtle = trustgraph.cli.load_turtle:main
58
58
  tg-login = trustgraph.cli.login:main
59
+ tg-mint-token = trustgraph.cli.mint_token:main
59
60
  tg-monitor-prompts = trustgraph.cli.monitor_prompts:main
60
61
  tg-put-config-item = trustgraph.cli.put_config_item:main
61
62
  tg-put-de-core = trustgraph.cli.put_de_core:main
@@ -1 +0,0 @@
1
- __version__ = "2.10.1"