memra 0.2.13__tar.gz → 0.2.14__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 (150) hide show
  1. {memra-0.2.13 → memra-0.2.14}/PKG-INFO +1 -1
  2. {memra-0.2.13 → memra-0.2.14}/memra/cli.py +29 -1
  3. {memra-0.2.13 → memra-0.2.14}/memra.egg-info/SOURCES.txt +0 -54
  4. {memra-0.2.13 → memra-0.2.14}/pyproject.toml +2 -3
  5. {memra-0.2.13 → memra-0.2.14}/setup.py +1 -1
  6. memra-0.2.13/memra/discovery.py +0 -15
  7. memra-0.2.13/memra/discovery_client.py +0 -49
  8. memra-0.2.13/memra-ops/app.py +0 -808
  9. memra-0.2.13/memra-ops/config/config.py +0 -25
  10. memra-0.2.13/memra-ops/config.py +0 -34
  11. memra-0.2.13/memra-ops/logic/__init__.py +0 -1
  12. memra-0.2.13/memra-ops/logic/file_tools.py +0 -43
  13. memra-0.2.13/memra-ops/logic/invoice_tools.py +0 -668
  14. memra-0.2.13/memra-ops/logic/invoice_tools_fix.py +0 -66
  15. memra-0.2.13/memra-ops/mcp_bridge_server.py +0 -1178
  16. memra-0.2.13/memra-ops/scripts/check_database.py +0 -37
  17. memra-0.2.13/memra-ops/scripts/clear_database.py +0 -48
  18. memra-0.2.13/memra-ops/scripts/monitor_database.py +0 -67
  19. memra-0.2.13/memra-ops/scripts/release.py +0 -133
  20. memra-0.2.13/memra-ops/scripts/reset_database.py +0 -65
  21. memra-0.2.13/memra-ops/scripts/start_memra.py +0 -334
  22. memra-0.2.13/memra-ops/scripts/stop_memra.py +0 -132
  23. memra-0.2.13/memra-ops/server_tool_registry.py +0 -190
  24. memra-0.2.13/memra-ops/tests/test_llm_text_to_sql.py +0 -115
  25. memra-0.2.13/memra-ops/tests/test_llm_vs_pattern.py +0 -130
  26. memra-0.2.13/memra-ops/tests/test_mcp_schema_aware.py +0 -124
  27. memra-0.2.13/memra-ops/tests/test_schema_aware_sql.py +0 -139
  28. memra-0.2.13/memra-ops/tests/test_schema_aware_sql_simple.py +0 -66
  29. memra-0.2.13/memra-ops/tests/test_text_to_sql_demo.py +0 -140
  30. memra-0.2.13/memra-ops/tools/mcp_bridge_server.py +0 -851
  31. memra-0.2.13/memra-sdk/examples/accounts_payable.py +0 -215
  32. memra-0.2.13/memra-sdk/examples/accounts_payable_client.py +0 -217
  33. memra-0.2.13/memra-sdk/examples/accounts_payable_mcp.py +0 -200
  34. memra-0.2.13/memra-sdk/examples/ask_questions.py +0 -123
  35. memra-0.2.13/memra-sdk/examples/invoice_processing.py +0 -116
  36. memra-0.2.13/memra-sdk/examples/propane_delivery.py +0 -87
  37. memra-0.2.13/memra-sdk/examples/simple_text_to_sql.py +0 -158
  38. memra-0.2.13/memra-sdk/memra/__init__.py +0 -31
  39. memra-0.2.13/memra-sdk/memra/execution.py +0 -481
  40. memra-0.2.13/memra-sdk/memra/models.py +0 -99
  41. memra-0.2.13/memra-sdk/memra/tool_registry.py +0 -343
  42. memra-0.2.13/memra-sdk/memra/tool_registry_client.py +0 -106
  43. memra-0.2.13/memra-sdk/scripts/release.py +0 -133
  44. memra-0.2.13/memra-sdk/setup.py +0 -52
  45. memra-0.2.13/memra-workflows/accounts_payable/accounts_payable.py +0 -215
  46. memra-0.2.13/memra-workflows/accounts_payable/accounts_payable_client.py +0 -216
  47. memra-0.2.13/memra-workflows/accounts_payable/accounts_payable_mcp.py +0 -200
  48. memra-0.2.13/memra-workflows/accounts_payable/accounts_payable_smart.py +0 -221
  49. memra-0.2.13/memra-workflows/invoice_processing/invoice_processing.py +0 -116
  50. memra-0.2.13/memra-workflows/invoice_processing/smart_invoice_processor.py +0 -220
  51. memra-0.2.13/memra-workflows/logic/__init__.py +0 -1
  52. memra-0.2.13/memra-workflows/logic/file_tools.py +0 -50
  53. memra-0.2.13/memra-workflows/logic/invoice_tools.py +0 -501
  54. memra-0.2.13/memra-workflows/logic/propane_agents.py +0 -52
  55. memra-0.2.13/memra-workflows/mcp_bridge_server.py +0 -230
  56. memra-0.2.13/memra-workflows/propane_delivery/propane_delivery.py +0 -87
  57. memra-0.2.13/memra-workflows/text_to_sql/complete_invoice_workflow_with_queries.py +0 -208
  58. memra-0.2.13/memra-workflows/text_to_sql/complete_text_to_sql_system.py +0 -266
  59. memra-0.2.13/memra-workflows/text_to_sql/file_discovery_demo.py +0 -156
  60. {memra-0.2.13 → memra-0.2.14}/CHANGELOG.md +0 -0
  61. {memra-0.2.13 → memra-0.2.14}/LICENSE +0 -0
  62. {memra-0.2.13 → memra-0.2.14}/MANIFEST.in +0 -0
  63. {memra-0.2.13 → memra-0.2.14}/README.md +0 -0
  64. {memra-0.2.13 → memra-0.2.14}/demos/etl_invoice_processing/data/.DS_Store +0 -0
  65. {memra-0.2.13 → memra-0.2.14}/demos/etl_invoice_processing/data/README.md +0 -0
  66. {memra-0.2.13 → memra-0.2.14}/demos/etl_invoice_processing/data/invoices/.DS_Store +0 -0
  67. {memra-0.2.13 → memra-0.2.14}/demos/etl_invoice_processing/data/invoices/10352259401.PDF +0 -0
  68. {memra-0.2.13 → memra-0.2.14}/demos/etl_invoice_processing/data/invoices/10352259823.PDF +0 -0
  69. {memra-0.2.13 → memra-0.2.14}/demos/etl_invoice_processing/data/invoices/10352260169.PDF +0 -0
  70. {memra-0.2.13 → memra-0.2.14}/demos/etl_invoice_processing/data/invoices/10352260417.PDF +0 -0
  71. {memra-0.2.13 → memra-0.2.14}/demos/etl_invoice_processing/data/invoices/10352260599.PDF +0 -0
  72. {memra-0.2.13 → memra-0.2.14}/demos/etl_invoice_processing/data/invoices/10352260912.PDF +0 -0
  73. {memra-0.2.13 → memra-0.2.14}/demos/etl_invoice_processing/data/invoices/10352261134.PDF +0 -0
  74. {memra-0.2.13 → memra-0.2.14}/demos/etl_invoice_processing/data/invoices/10352261563.PDF +0 -0
  75. {memra-0.2.13 → memra-0.2.14}/demos/etl_invoice_processing/data/invoices/10352261647.PDF +0 -0
  76. {memra-0.2.13 → memra-0.2.14}/demos/etl_invoice_processing/data/invoices/10352261720.PDF +0 -0
  77. {memra-0.2.13 → memra-0.2.14}/demos/etl_invoice_processing/data/invoices/10352261811.PDF +0 -0
  78. {memra-0.2.13 → memra-0.2.14}/demos/etl_invoice_processing/data/invoices/10352262025.PDF +0 -0
  79. {memra-0.2.13 → memra-0.2.14}/demos/etl_invoice_processing/data/invoices/10352262454.PDF +0 -0
  80. {memra-0.2.13 → memra-0.2.14}/demos/etl_invoice_processing/data/invoices/10352262702.PDF +0 -0
  81. {memra-0.2.13 → memra-0.2.14}/demos/etl_invoice_processing/data/invoices/10352262884.PDF +0 -0
  82. {memra-0.2.13 → memra-0.2.14}/demos/etl_invoice_processing/data/invoices/10352263346.PDF +0 -0
  83. {memra-0.2.13 → memra-0.2.14}/demos/etl_invoice_processing/data/invoices/10352263429.PDF +0 -0
  84. {memra-0.2.13 → memra-0.2.14}/demos/etl_invoice_processing/data/invoices/invoice_005.pdf +0 -0
  85. {memra-0.2.13 → memra-0.2.14}/demos/etl_invoice_processing/database_monitor_agent.py +0 -0
  86. {memra-0.2.13 → memra-0.2.14}/demos/etl_invoice_processing/etl_invoice_demo.py +0 -0
  87. {memra-0.2.13 → memra-0.2.14}/demos/etl_invoice_processing/setup_demo_data.py +0 -0
  88. {memra-0.2.13 → memra-0.2.14}/demos/etl_invoice_processing/simple_pdf_processor.py +0 -0
  89. {memra-0.2.13 → memra-0.2.14}/mcp_bridge_server.py +0 -0
  90. {memra-0.2.13 → memra-0.2.14}/memra/__init__.py +0 -0
  91. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/check_after_workflow.py +0 -0
  92. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/check_database.py +0 -0
  93. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/check_recent_db.py +0 -0
  94. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/data/README.md +0 -0
  95. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/data/invoices/10352259401.PDF +0 -0
  96. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/data/invoices/10352259823.PDF +0 -0
  97. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/data/invoices/10352260169.PDF +0 -0
  98. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/data/invoices/10352260417.PDF +0 -0
  99. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/data/invoices/10352260599.PDF +0 -0
  100. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/data/invoices/10352260912.PDF +0 -0
  101. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/data/invoices/10352261134.PDF +0 -0
  102. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/data/invoices/10352261563.PDF +0 -0
  103. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/data/invoices/10352261647.PDF +0 -0
  104. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/data/invoices/10352261720.PDF +0 -0
  105. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/data/invoices/10352261811.PDF +0 -0
  106. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/data/invoices/10352262025.PDF +0 -0
  107. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/data/invoices/10352262454.PDF +0 -0
  108. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/data/invoices/10352262702.PDF +0 -0
  109. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/data/invoices/10352262884.PDF +0 -0
  110. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/data/invoices/10352263346.PDF +0 -0
  111. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/data/invoices/10352263429.PDF +0 -0
  112. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/database_monitor_agent.py +0 -0
  113. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/debug_mcp.py +0 -0
  114. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/debug_schema.py +0 -0
  115. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/etl_invoice_demo.py +0 -0
  116. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/modify_database.py +0 -0
  117. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/run_etl_batch.py +0 -0
  118. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/setup_demo_data.py +0 -0
  119. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/simple_pdf_processor.py +0 -0
  120. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/test_agent3.py +0 -0
  121. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/test_agent3_v2.py +0 -0
  122. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/test_api.py +0 -0
  123. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/test_api_client_direct.py +0 -0
  124. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/test_conversion.py +0 -0
  125. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/test_debug.py +0 -0
  126. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/test_direct_vision.py +0 -0
  127. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/test_full_response.py +0 -0
  128. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/test_memra_response.py +0 -0
  129. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/test_pdf_processor_response.py +0 -0
  130. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/test_pdfprocessor_direct.py +0 -0
  131. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/test_postgres_insert.py +0 -0
  132. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/test_remote_upload.py +0 -0
  133. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/test_schema_format.py +0 -0
  134. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/test_sql_executor.py +0 -0
  135. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/test_sql_executor_extra_fields.py +0 -0
  136. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/test_sql_executor_fix.py +0 -0
  137. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/test_updated_server.py +0 -0
  138. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/test_upload_functionality.py +0 -0
  139. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/test_upload_server.py +0 -0
  140. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/test_vision_output.py +0 -0
  141. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/test_vision_prompt.py +0 -0
  142. {memra-0.2.13 → memra-0.2.14}/memra/demos/etl_invoice_processing/test_vision_simple.py +0 -0
  143. {memra-0.2.13/memra-sdk → memra-0.2.14}/memra/discovery.py +0 -0
  144. {memra-0.2.13/memra-sdk → memra-0.2.14}/memra/discovery_client.py +0 -0
  145. {memra-0.2.13 → memra-0.2.14}/memra/execution.py +0 -0
  146. {memra-0.2.13 → memra-0.2.14}/memra/models.py +0 -0
  147. {memra-0.2.13 → memra-0.2.14}/memra/tool_registry.py +0 -0
  148. {memra-0.2.13 → memra-0.2.14}/memra/tool_registry_client.py +0 -0
  149. {memra-0.2.13 → memra-0.2.14}/requirements.txt +0 -0
  150. {memra-0.2.13 → memra-0.2.14}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: memra
3
- Version: 0.2.13
3
+ Version: 0.2.14
4
4
  Summary: Declarative framework for enterprise workflows with MCP integration - Client SDK
5
5
  Home-page: https://github.com/memra/memra-sdk
6
6
  Author: Memra
@@ -498,8 +498,32 @@ def run_etl_workflow(demo_dir):
498
498
  real_demo_script = demo_dir / "etl_invoice_demo.py"
499
499
  if real_demo_script.exists():
500
500
  print("🎯 Running real ETL workflow...")
501
+ print(f"📁 Working directory: {demo_dir}")
502
+ print(f"📄 Demo script: {real_demo_script}")
503
+
504
+ # Check if data directory exists
505
+ data_dir = demo_dir / "data"
506
+ invoices_dir = data_dir / "invoices"
507
+ if invoices_dir.exists():
508
+ pdf_files = list(invoices_dir.glob("*.PDF"))
509
+ print(f"📊 Found {len(pdf_files)} PDF files in {invoices_dir}")
510
+ if pdf_files:
511
+ print(f" First few files: {[f.name for f in pdf_files[:3]]}")
512
+ else:
513
+ print(f"⚠️ Warning: {invoices_dir} does not exist")
514
+ print(f" Available directories in {demo_dir}:")
515
+ for item in demo_dir.iterdir():
516
+ if item.is_dir():
517
+ print(f" - {item.name}/")
518
+
501
519
  print("⏱️ Processing 15 files with delays - this may take 10-15 minutes")
502
- result = subprocess.run([sys.executable, str(real_demo_script)], cwd=demo_dir, timeout=1800) # 30 minute timeout
520
+
521
+ # Set the working directory to the demo directory so the script can find data/invoices/
522
+ result = subprocess.run(
523
+ [sys.executable, str(real_demo_script)],
524
+ cwd=demo_dir, # This is crucial - sets working directory
525
+ timeout=1800 # 30 minute timeout
526
+ )
503
527
  return result.returncode == 0
504
528
  else:
505
529
  # Fallback to simplified demo
@@ -510,6 +534,10 @@ def run_etl_workflow(demo_dir):
510
534
  return result.returncode == 0
511
535
  else:
512
536
  print("❌ No demo script found")
537
+ print(f" Looking for: {real_demo_script}")
538
+ print(f" Available files in {demo_dir}:")
539
+ for item in demo_dir.iterdir():
540
+ print(f" - {item.name}")
513
541
  return False
514
542
 
515
543
  except subprocess.TimeoutExpired:
@@ -39,60 +39,6 @@ memra/execution.py
39
39
  memra/models.py
40
40
  memra/tool_registry.py
41
41
  memra/tool_registry_client.py
42
- memra-ops/app.py
43
- memra-ops/config.py
44
- memra-ops/mcp_bridge_server.py
45
- memra-ops/server_tool_registry.py
46
- memra-ops/config/config.py
47
- memra-ops/logic/__init__.py
48
- memra-ops/logic/file_tools.py
49
- memra-ops/logic/invoice_tools.py
50
- memra-ops/logic/invoice_tools_fix.py
51
- memra-ops/scripts/check_database.py
52
- memra-ops/scripts/clear_database.py
53
- memra-ops/scripts/monitor_database.py
54
- memra-ops/scripts/release.py
55
- memra-ops/scripts/reset_database.py
56
- memra-ops/scripts/start_memra.py
57
- memra-ops/scripts/stop_memra.py
58
- memra-ops/tests/test_llm_text_to_sql.py
59
- memra-ops/tests/test_llm_vs_pattern.py
60
- memra-ops/tests/test_mcp_schema_aware.py
61
- memra-ops/tests/test_schema_aware_sql.py
62
- memra-ops/tests/test_schema_aware_sql_simple.py
63
- memra-ops/tests/test_text_to_sql_demo.py
64
- memra-ops/tools/mcp_bridge_server.py
65
- memra-sdk/setup.py
66
- memra-sdk/examples/accounts_payable.py
67
- memra-sdk/examples/accounts_payable_client.py
68
- memra-sdk/examples/accounts_payable_mcp.py
69
- memra-sdk/examples/ask_questions.py
70
- memra-sdk/examples/invoice_processing.py
71
- memra-sdk/examples/propane_delivery.py
72
- memra-sdk/examples/simple_text_to_sql.py
73
- memra-sdk/memra/__init__.py
74
- memra-sdk/memra/discovery.py
75
- memra-sdk/memra/discovery_client.py
76
- memra-sdk/memra/execution.py
77
- memra-sdk/memra/models.py
78
- memra-sdk/memra/tool_registry.py
79
- memra-sdk/memra/tool_registry_client.py
80
- memra-sdk/scripts/release.py
81
- memra-workflows/mcp_bridge_server.py
82
- memra-workflows/accounts_payable/accounts_payable.py
83
- memra-workflows/accounts_payable/accounts_payable_client.py
84
- memra-workflows/accounts_payable/accounts_payable_mcp.py
85
- memra-workflows/accounts_payable/accounts_payable_smart.py
86
- memra-workflows/invoice_processing/invoice_processing.py
87
- memra-workflows/invoice_processing/smart_invoice_processor.py
88
- memra-workflows/logic/__init__.py
89
- memra-workflows/logic/file_tools.py
90
- memra-workflows/logic/invoice_tools.py
91
- memra-workflows/logic/propane_agents.py
92
- memra-workflows/propane_delivery/propane_delivery.py
93
- memra-workflows/text_to_sql/complete_invoice_workflow_with_queries.py
94
- memra-workflows/text_to_sql/complete_text_to_sql_system.py
95
- memra-workflows/text_to_sql/file_discovery_demo.py
96
42
  memra/demos/etl_invoice_processing/check_after_workflow.py
97
43
  memra/demos/etl_invoice_processing/check_database.py
98
44
  memra/demos/etl_invoice_processing/check_recent_db.py
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "memra"
7
- version = "0.2.13"
7
+ version = "0.2.14"
8
8
  description = "Declarative framework for enterprise workflows with MCP integration - Client SDK"
9
9
  readme = "README.md"
10
10
  license = {text = "MIT"}
@@ -50,8 +50,7 @@ Repository = "https://github.com/memra-platform/memra-sdk"
50
50
  memra = "memra.cli:main"
51
51
 
52
52
  [tool.setuptools.packages.find]
53
- include = ["memra*"]
54
- exclude = ["logic*", "server*", "app*", "mcp_bridge*"]
53
+ include = ["memra", "memra.*"]
55
54
 
56
55
  [tool.setuptools.package-data]
57
56
  memra = [
@@ -5,7 +5,7 @@ with open("README.md", "r", encoding="utf-8") as fh:
5
5
 
6
6
  setup(
7
7
  name="memra",
8
- version="0.2.13",
8
+ version="0.2.14",
9
9
  author="Memra",
10
10
  author_email="support@memra.com",
11
11
  description="Declarative framework for enterprise workflows with MCP integration - Client SDK",
@@ -1,15 +0,0 @@
1
- from typing import List, Dict, Any, Optional
2
- from .tool_registry import ToolRegistry
3
-
4
- def discover_tools(hosted_by: Optional[str] = None) -> List[Dict[str, Any]]:
5
- """
6
- Discover available tools in the Memra platform.
7
-
8
- Args:
9
- hosted_by: Filter tools by host ("memra" or "mcp"). If None, returns all tools.
10
-
11
- Returns:
12
- List of available tools with their metadata
13
- """
14
- registry = ToolRegistry()
15
- return registry.discover_tools(hosted_by)
@@ -1,49 +0,0 @@
1
- """
2
- Client-side tool discovery for Memra SDK
3
- Queries the Memra API to discover available tools
4
- """
5
-
6
- from typing import List, Dict, Any, Optional
7
- from .tool_registry_client import ToolRegistryClient
8
-
9
- def discover_tools(hosted_by: Optional[str] = None) -> List[Dict[str, Any]]:
10
- """
11
- Discover available tools from the Memra API
12
-
13
- Args:
14
- hosted_by: Filter tools by hosting provider ("memra" or "mcp")
15
-
16
- Returns:
17
- List of available tools with their descriptions
18
- """
19
- registry = ToolRegistryClient()
20
- return registry.discover_tools(hosted_by)
21
-
22
- def check_api_health() -> bool:
23
- """
24
- Check if the Memra API is available
25
-
26
- Returns:
27
- True if API is healthy, False otherwise
28
- """
29
- registry = ToolRegistryClient()
30
- return registry.health_check()
31
-
32
- def get_api_status() -> Dict[str, Any]:
33
- """
34
- Get detailed API status information
35
-
36
- Returns:
37
- Dictionary with API status details
38
- """
39
- registry = ToolRegistryClient()
40
-
41
- is_healthy = registry.health_check()
42
- tools = registry.discover_tools() if is_healthy else []
43
-
44
- return {
45
- "api_healthy": is_healthy,
46
- "api_url": registry.api_base,
47
- "tools_available": len(tools),
48
- "tools": tools
49
- }