stackprep-pro 0.2.14__tar.gz → 0.2.16__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: stackprep-pro
3
- Version: 0.2.14
3
+ Version: 0.2.16
4
4
  Summary: stackprep-pro — interview & certification prep MCP server for any AI client
5
5
  Project-URL: Homepage, https://github.com/youngpada1/stackprep-pro
6
6
  Project-URL: Repository, https://github.com/youngpada1/stackprep-pro
@@ -166,6 +166,7 @@ Point this at any Dropbox, Google Drive, or OneDrive folder for cross-platform s
166
166
  | `submit_answer` | Record the result of an answered question. | `session_id`, `result`, `question` |
167
167
  | `flag_for_study` | Manually flag the current question for the study pack. | `session_id`, `question` |
168
168
  | `save_session` | Save an in-progress session so the user can continue it later. | `session_id`, `session_name` |
169
+ | `discard_session` | Permanently delete a session. Call this when the user is exiting and answers NO to saving the | `session_id` |
169
170
  | `end_session` | End the session. Returns the score and flagged topics so the AI can generate a study plan and study pack. | `session_id` |
170
171
  | `save_study_pack` | Save the study pack content to disk. | `session_id`, `name`, `content` |
171
172
  | `list_sessions` | List saved sessions. Call this silently when the user wants to continue. Never mention this tool to the user. | `mode` |
@@ -146,6 +146,7 @@ Point this at any Dropbox, Google Drive, or OneDrive folder for cross-platform s
146
146
  | `submit_answer` | Record the result of an answered question. | `session_id`, `result`, `question` |
147
147
  | `flag_for_study` | Manually flag the current question for the study pack. | `session_id`, `question` |
148
148
  | `save_session` | Save an in-progress session so the user can continue it later. | `session_id`, `session_name` |
149
+ | `discard_session` | Permanently delete a session. Call this when the user is exiting and answers NO to saving the | `session_id` |
149
150
  | `end_session` | End the session. Returns the score and flagged topics so the AI can generate a study plan and study pack. | `session_id` |
150
151
  | `save_study_pack` | Save the study pack content to disk. | `session_id`, `name`, `content` |
151
152
  | `list_sessions` | List saved sessions. Call this silently when the user wants to continue. Never mention this tool to the user. | `mode` |
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "stackprep-pro"
3
- version = "0.2.14"
3
+ version = "0.2.16"
4
4
  description = "stackprep-pro — interview & certification prep MCP server for any AI client"
5
5
  readme = "README.md"
6
6
  license = { text = "MIT" }
@@ -293,6 +293,18 @@ def save_session(session_id: str, session_name: str) -> str:
293
293
  return f"Session saved as '{name}'. You can continue it later."
294
294
 
295
295
 
296
+ @mcp.tool()
297
+ def discard_session(session_id: str) -> str:
298
+ """Permanently delete a session. Call this when the user is exiting and answers NO to saving the
299
+ session — it removes the session file from disk so it does NOT appear in the continue list later.
300
+
301
+ Args:
302
+ session_id: The session ID to delete
303
+ """
304
+ _delete_session(session_id)
305
+ return "Session discarded. Nothing was saved."
306
+
307
+
296
308
  @mcp.tool()
297
309
  def end_session(session_id: str) -> str:
298
310
  """End the session. Returns the score and flagged topics so the AI can generate a study plan and study pack.
@@ -392,6 +404,10 @@ def list_sessions(mode: str = "") -> str:
392
404
  continue
393
405
  if mode and data.get("mode", "") != mode:
394
406
  continue
407
+ # Only show sessions the user explicitly saved (named). Unnamed auto-persisted
408
+ # sessions are not surfaced unless the user named them via save_session.
409
+ if not data.get("session_name", "").strip():
410
+ continue
395
411
  rows.append((f.stem, data))
396
412
 
397
413
  if not rows:
@@ -7,6 +7,19 @@ description: Certification prep skill for the stackprep-pro MCP server. Activate
7
7
 
8
8
  Adaptive certification exam prep — one question at a time, with instant feedback and doc links.
9
9
 
10
+ ## ⛔ EXIT RULE (READ FIRST — NEVER SKIP)
11
+
12
+ The instant the user says ANYTHING meaning they want to stop — "exit", "quit", "stop", "leave", "X",
13
+ "done for now", "bye", "that's enough" — you MUST NOT just end the conversation. You MUST first ask:
14
+
15
+ > "Do you want to save this session so you can continue later? (y/n)"
16
+
17
+ - **Yes** → ask "What would you like to name this session?" (the user MUST give the name — never invent one),
18
+ then call `save_session(session_id, session_name=<that name>)`. It stays resumable under that name.
19
+ - **No** → call `discard_session(session_id)` to permanently delete it, then end. It will NOT appear later.
20
+
21
+ This is mandatory EVERY time, no matter how few questions were answered.
22
+
10
23
  ## Session setup
11
24
 
12
25
  Inputs arrive via MCP (certification name, extra topics). After looking up the latest official exam guide, present a clean, structured overview in this exact layout:
@@ -7,6 +7,19 @@ description: Interview prep skill for the stackprep-pro MCP server. Activated wh
7
7
 
8
8
  Adaptive technical interview prep — one question at a time, with instant feedback and doc links.
9
9
 
10
+ ## ⛔ EXIT RULE (READ FIRST — NEVER SKIP)
11
+
12
+ The instant the user says ANYTHING meaning they want to stop — "exit", "quit", "stop", "leave", "X",
13
+ "done for now", "bye", "that's enough" — you MUST NOT just end the conversation. You MUST first ask:
14
+
15
+ > "Do you want to save this session so you can continue later? (y/n)"
16
+
17
+ - **Yes** → ask "What would you like to name this session?" (the user MUST give the name — never invent one),
18
+ then call `save_session(session_id, session_name=<that name>)`. It stays resumable under that name.
19
+ - **No** → call `discard_session(session_id)` to permanently delete it, then end. It will NOT appear later.
20
+
21
+ This is mandatory EVERY time, no matter how few questions were answered.
22
+
10
23
  ## Session setup
11
24
 
12
25
  Inputs arrive via MCP (CV, job description, extra topics). After analysing the CV and JD, present a clean, structured overview in this exact layout:
@@ -723,7 +723,7 @@ wheels = [
723
723
 
724
724
  [[package]]
725
725
  name = "stackprep-pro"
726
- version = "0.2.14"
726
+ version = "0.2.16"
727
727
  source = { editable = "." }
728
728
  dependencies = [
729
729
  { name = "mcp", extra = ["cli"] },
File without changes
File without changes