minder-cli 0.3.4__tar.gz → 0.3.6__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 (145) hide show
  1. {minder_cli-0.3.4 → minder_cli-0.3.6}/PKG-INFO +1 -1
  2. {minder_cli-0.3.4 → minder_cli-0.3.6}/pyproject.toml +1 -1
  3. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/config.py +1 -1
  4. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/graph/state.py +1 -0
  5. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/llm/litert.py +8 -4
  6. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/tools/query.py +32 -0
  7. {minder_cli-0.3.4 → minder_cli-0.3.6}/.gitignore +0 -0
  8. {minder_cli-0.3.4 → minder_cli-0.3.6}/LICENSE +0 -0
  9. {minder_cli-0.3.4 → minder_cli-0.3.6}/README-pypi.md +0 -0
  10. {minder_cli-0.3.4 → minder_cli-0.3.6}/README.md +0 -0
  11. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/__init__.py +0 -0
  12. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/api/routers/prompts.py +0 -0
  13. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/application/__init__.py +0 -0
  14. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/application/admin/__init__.py +0 -0
  15. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/application/admin/dto.py +0 -0
  16. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/application/admin/jobs.py +0 -0
  17. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/application/admin/use_cases.py +0 -0
  18. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/auth/__init__.py +0 -0
  19. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/auth/context.py +0 -0
  20. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/auth/middleware.py +0 -0
  21. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/auth/principal.py +0 -0
  22. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/auth/rate_limiter.py +0 -0
  23. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/auth/rbac.py +0 -0
  24. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/auth/service.py +0 -0
  25. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/bootstrap/__init__.py +0 -0
  26. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/bootstrap/providers.py +0 -0
  27. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/bootstrap/transport.py +0 -0
  28. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/cache/__init__.py +0 -0
  29. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/cache/providers.py +0 -0
  30. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/chunking/__init__.py +0 -0
  31. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/chunking/code_splitter.py +0 -0
  32. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/chunking/splitter.py +0 -0
  33. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/cli.py +0 -0
  34. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/continuity.py +0 -0
  35. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/dev.py +0 -0
  36. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/embedding/__init__.py +0 -0
  37. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/embedding/base.py +0 -0
  38. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/embedding/local.py +0 -0
  39. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/embedding/openai.py +0 -0
  40. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/graph/__init__.py +0 -0
  41. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/graph/edges.py +0 -0
  42. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/graph/executor.py +0 -0
  43. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/graph/graph.py +0 -0
  44. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/graph/nodes/__init__.py +0 -0
  45. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/graph/nodes/evaluator.py +0 -0
  46. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/graph/nodes/guard.py +0 -0
  47. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/graph/nodes/llm.py +0 -0
  48. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/graph/nodes/planning.py +0 -0
  49. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/graph/nodes/reasoning.py +0 -0
  50. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/graph/nodes/reranker.py +0 -0
  51. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/graph/nodes/retriever.py +0 -0
  52. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/graph/nodes/verification.py +0 -0
  53. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/graph/nodes/workflow_planner.py +0 -0
  54. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/graph/runtime.py +0 -0
  55. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/llm/__init__.py +0 -0
  56. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/llm/base.py +0 -0
  57. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/llm/factory.py +0 -0
  58. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/llm/openai.py +0 -0
  59. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/models/__init__.py +0 -0
  60. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/models/base.py +0 -0
  61. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/models/client.py +0 -0
  62. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/models/document.py +0 -0
  63. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/models/error.py +0 -0
  64. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/models/graph.py +0 -0
  65. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/models/history.py +0 -0
  66. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/models/job.py +0 -0
  67. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/models/prompt.py +0 -0
  68. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/models/repository.py +0 -0
  69. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/models/rule.py +0 -0
  70. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/models/session.py +0 -0
  71. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/models/skill.py +0 -0
  72. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/models/user.py +0 -0
  73. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/models/workflow.py +0 -0
  74. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/observability/__init__.py +0 -0
  75. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/observability/audit.py +0 -0
  76. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/observability/logging.py +0 -0
  77. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/observability/metrics.py +0 -0
  78. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/observability/tracing.py +0 -0
  79. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/presentation/__init__.py +0 -0
  80. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/presentation/cli/__init__.py +0 -0
  81. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/presentation/cli/commands/auth.py +0 -0
  82. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/presentation/cli/commands/ide.py +0 -0
  83. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/presentation/cli/commands/mcp.py +0 -0
  84. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/presentation/cli/commands/sync.py +0 -0
  85. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/presentation/cli/commands/update.py +0 -0
  86. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/presentation/cli/main.py +0 -0
  87. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/presentation/cli/utils/common.py +0 -0
  88. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/presentation/cli/utils/config.py +0 -0
  89. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/presentation/cli/utils/git.py +0 -0
  90. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/presentation/cli/utils/version.py +0 -0
  91. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/presentation/http/__init__.py +0 -0
  92. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/presentation/http/admin/__init__.py +0 -0
  93. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/presentation/http/admin/api.py +0 -0
  94. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/presentation/http/admin/context.py +0 -0
  95. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/presentation/http/admin/dashboard.py +0 -0
  96. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/presentation/http/admin/jobs.py +0 -0
  97. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/presentation/http/admin/memories.py +0 -0
  98. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/presentation/http/admin/prompts.py +0 -0
  99. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/presentation/http/admin/routes.py +0 -0
  100. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/presentation/http/admin/runtime.py +0 -0
  101. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/presentation/http/admin/search.py +0 -0
  102. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/presentation/http/admin/skills.py +0 -0
  103. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/prompts/__init__.py +0 -0
  104. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/prompts/formatter.py +0 -0
  105. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/resources/__init__.py +0 -0
  106. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/retrieval/__init__.py +0 -0
  107. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/retrieval/hybrid.py +0 -0
  108. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/retrieval/mmr.py +0 -0
  109. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/retrieval/multi_hop.py +0 -0
  110. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/runtime.py +0 -0
  111. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/server.py +0 -0
  112. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/store/__init__.py +0 -0
  113. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/store/document.py +0 -0
  114. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/store/error.py +0 -0
  115. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/store/feedback.py +0 -0
  116. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/store/graph.py +0 -0
  117. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/store/history.py +0 -0
  118. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/store/interfaces.py +0 -0
  119. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/store/milvus/__init__.py +0 -0
  120. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/store/milvus/client.py +0 -0
  121. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/store/milvus/collections.py +0 -0
  122. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/store/milvus/vector_store.py +0 -0
  123. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/store/mongodb/__init__.py +0 -0
  124. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/store/mongodb/client.py +0 -0
  125. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/store/mongodb/indexes.py +0 -0
  126. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/store/mongodb/operational_store.py +0 -0
  127. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/store/relational.py +0 -0
  128. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/store/repo_state.py +0 -0
  129. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/store/rule.py +0 -0
  130. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/store/vector.py +0 -0
  131. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/tools/__init__.py +0 -0
  132. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/tools/auth.py +0 -0
  133. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/tools/graph.py +0 -0
  134. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/tools/ingest.py +0 -0
  135. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/tools/memory.py +0 -0
  136. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/tools/registry.py +0 -0
  137. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/tools/repo_scanner.py +0 -0
  138. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/tools/search.py +0 -0
  139. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/tools/session.py +0 -0
  140. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/tools/skills.py +0 -0
  141. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/tools/workflow.py +0 -0
  142. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/transport/__init__.py +0 -0
  143. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/transport/base.py +0 -0
  144. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/transport/sse.py +0 -0
  145. {minder_cli-0.3.4 → minder_cli-0.3.6}/src/minder/transport/stdio.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: minder-cli
3
- Version: 0.3.4
3
+ Version: 0.3.6
4
4
  Summary: Minder CLI is the command-line interface for the Minder self-hosted MCP platform.
5
5
  Project-URL: Homepage, https://github.com/hiimtrung/minder
6
6
  Project-URL: Repository, https://github.com/hiimtrung/minder
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "minder-cli"
7
- version = "0.3.4"
7
+ version = "0.3.6"
8
8
  description = "Minder CLI is the command-line interface for the Minder self-hosted MCP platform."
9
9
  readme = "README-pypi.md"
10
10
  requires-python = ">=3.14"
@@ -46,7 +46,7 @@ class LLMConfig(BaseModel):
46
46
  litert_model_path: str = "~/.minder/models/gemma-4-E2B-it.litertlm"
47
47
  litert_backend: str = "auto" # "auto" (GPU on Mac, CPU elsewhere) | "cpu" | "gpu"
48
48
  litert_cache_dir: str = "~/.minder/cache/litert"
49
- context_length: int = 131072
49
+ context_length: int = 32768
50
50
  temperature: float = 0.1
51
51
  openai_api_key: Optional[str] = None
52
52
  openai_model: str = "gpt-4o-mini"
@@ -24,3 +24,4 @@ class GraphState(BaseModel):
24
24
  transition_log: list[dict[str, Any]] = Field(default_factory=list)
25
25
  retry_count: int = 0
26
26
  metadata: dict[str, Any] = Field(default_factory=dict)
27
+ chat_history: list[dict[str, Any]] = Field(default_factory=list)
@@ -28,7 +28,7 @@ logger = logging.getLogger(__name__)
28
28
 
29
29
  _ENGINE_CACHE: dict[str, Any] = {}
30
30
  _CONVERSATION_CACHE: OrderedDict[uuid.UUID, Any] = OrderedDict()
31
- MAX_CACHED_CONVERSATIONS = 5
31
+ MAX_CACHED_CONVERSATIONS = 3
32
32
 
33
33
 
34
34
  class LiteRTModelLLM:
@@ -39,7 +39,7 @@ class LiteRTModelLLM:
39
39
  model_path: str = "~/.minder/models/gemma-4-E2B-it.litertlm",
40
40
  backend: str = "cpu",
41
41
  cache_dir: str = "~/.minder/cache/litert",
42
- context_length: int = 131072,
42
+ context_length: int = 32768,
43
43
  ) -> None:
44
44
  self._model_path = str(Path(model_path).expanduser())
45
45
  self._backend = backend
@@ -189,12 +189,14 @@ class LiteRTModelLLM:
189
189
 
190
190
  reasoning_output = getattr(state, "reasoning_output", {}) or {}
191
191
  prompt = reasoning_output.get("prompt") or state.query
192
+ chat_history = getattr(state, "chat_history", []) or []
192
193
  text = self.complete_text(
193
194
  str(prompt),
194
195
  max_tokens=256,
195
196
  temperature=0.1,
196
197
  fallback=fallback,
197
198
  session_id=state.session_id,
199
+ chat_history=chat_history,
198
200
  )
199
201
 
200
202
  return {
@@ -235,11 +237,12 @@ class LiteRTModelLLM:
235
237
  try:
236
238
  reasoning_output = getattr(state, "reasoning_output", {}) or {}
237
239
  prompt = str(reasoning_output.get("prompt") or state.query)
240
+ chat_history = getattr(state, "chat_history", []) or []
238
241
 
239
242
  # Use session cache if available. Reusing the conversation preserves the KV-cache state.
240
243
  # For linear conversations, we don't pass 'messages' to send_message_async because
241
244
  # it builds on top of the existing state in the Conversation object.
242
- conv = self._get_conversation(state.session_id, initial_messages=[])
245
+ conv = self._get_conversation(state.session_id, initial_messages=chat_history)
243
246
 
244
247
  for chunk in conv.send_message_async(prompt):
245
248
  for item in chunk.get("content", []):
@@ -267,13 +270,14 @@ class LiteRTModelLLM:
267
270
  temperature: float = 0.1,
268
271
  fallback: str = "",
269
272
  session_id: uuid.UUID | None = None,
273
+ chat_history: list[dict[str, Any]] | None = None,
270
274
  ) -> str:
271
275
  """Simple text-in/text-out completion."""
272
276
  if self.runtime != "litert":
273
277
  return fallback
274
278
 
275
279
  try:
276
- conv = self._get_conversation(session_id, initial_messages=[])
280
+ conv = self._get_conversation(session_id, initial_messages=chat_history or [])
277
281
  response = conv.send_message(prompt)
278
282
  return cast(str, response["content"][0]["text"])
279
283
  except Exception as e:
@@ -86,6 +86,21 @@ class QueryTools:
86
86
  "query_reasoning",
87
87
  self._store,
88
88
  )
89
+ chat_history = []
90
+ if session_id:
91
+ try:
92
+ history_docs = await self._store.list_history_for_session(session_id)
93
+ chat_history = [
94
+ {
95
+ "role": str(getattr(doc, "role", "")).replace("assistant", "model"),
96
+ "content": str(getattr(doc, "content", "")),
97
+ }
98
+ for doc in history_docs
99
+ if getattr(doc, "role", "") and getattr(doc, "content", "")
100
+ ]
101
+ except Exception:
102
+ pass
103
+
89
104
  state = GraphState(
90
105
  query=query,
91
106
  session_id=session_id,
@@ -93,6 +108,7 @@ class QueryTools:
93
108
  repo_id=repo_id,
94
109
  repo_path=repo_path,
95
110
  workflow_context=workflow_context,
111
+ chat_history=chat_history,
96
112
  metadata={
97
113
  "verification_payload": verification_payload,
98
114
  "max_attempts": max_attempts,
@@ -181,6 +197,21 @@ class QueryTools:
181
197
  "query_reasoning",
182
198
  self._store,
183
199
  )
200
+ chat_history = []
201
+ if session_id:
202
+ try:
203
+ history_docs = await self._store.list_history_for_session(session_id)
204
+ chat_history = [
205
+ {
206
+ "role": str(getattr(doc, "role", "")).replace("assistant", "model"),
207
+ "content": str(getattr(doc, "content", "")),
208
+ }
209
+ for doc in history_docs
210
+ if getattr(doc, "role", "") and getattr(doc, "content", "")
211
+ ]
212
+ except Exception:
213
+ pass
214
+
184
215
  state = GraphState(
185
216
  query=query,
186
217
  session_id=session_id,
@@ -188,6 +219,7 @@ class QueryTools:
188
219
  repo_id=repo_id,
189
220
  repo_path=repo_path,
190
221
  workflow_context=workflow_context,
222
+ chat_history=chat_history,
191
223
  metadata={
192
224
  "verification_payload": verification_payload,
193
225
  "max_attempts": max_attempts,
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes