dev-recall 0.2.0__tar.gz → 0.2.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 (44) hide show
  1. {dev_recall-0.2.0 → dev_recall-0.2.2}/PKG-INFO +3 -2
  2. {dev_recall-0.2.0 → dev_recall-0.2.2}/README.md +2 -1
  3. {dev_recall-0.2.0 → dev_recall-0.2.2}/dev_recall.egg-info/PKG-INFO +3 -2
  4. {dev_recall-0.2.0 → dev_recall-0.2.2}/pyproject.toml +1 -1
  5. {dev_recall-0.2.0 → dev_recall-0.2.2}/recall/_hooks.py +6 -2
  6. {dev_recall-0.2.0 → dev_recall-0.2.2}/recall/cli.py +96 -1
  7. {dev_recall-0.2.0 → dev_recall-0.2.2}/dev_recall.egg-info/SOURCES.txt +0 -0
  8. {dev_recall-0.2.0 → dev_recall-0.2.2}/dev_recall.egg-info/dependency_links.txt +0 -0
  9. {dev_recall-0.2.0 → dev_recall-0.2.2}/dev_recall.egg-info/entry_points.txt +0 -0
  10. {dev_recall-0.2.0 → dev_recall-0.2.2}/dev_recall.egg-info/requires.txt +0 -0
  11. {dev_recall-0.2.0 → dev_recall-0.2.2}/dev_recall.egg-info/top_level.txt +0 -0
  12. {dev_recall-0.2.0 → dev_recall-0.2.2}/recall/__init__.py +0 -0
  13. {dev_recall-0.2.0 → dev_recall-0.2.2}/recall/collectors/__init__.py +0 -0
  14. {dev_recall-0.2.0 → dev_recall-0.2.2}/recall/collectors/ai_chat.py +0 -0
  15. {dev_recall-0.2.0 → dev_recall-0.2.2}/recall/collectors/containers.py +0 -0
  16. {dev_recall-0.2.0 → dev_recall-0.2.2}/recall/collectors/git.py +0 -0
  17. {dev_recall-0.2.0 → dev_recall-0.2.2}/recall/collectors/linux_process.py +0 -0
  18. {dev_recall-0.2.0 → dev_recall-0.2.2}/recall/collectors/linux_session.py +0 -0
  19. {dev_recall-0.2.0 → dev_recall-0.2.2}/recall/collectors/linux_window.py +0 -0
  20. {dev_recall-0.2.0 → dev_recall-0.2.2}/recall/collectors/shell.py +0 -0
  21. {dev_recall-0.2.0 → dev_recall-0.2.2}/recall/collectors/vscode.py +0 -0
  22. {dev_recall-0.2.0 → dev_recall-0.2.2}/recall/config.py +0 -0
  23. {dev_recall-0.2.0 → dev_recall-0.2.2}/recall/daemon.py +0 -0
  24. {dev_recall-0.2.0 → dev_recall-0.2.2}/recall/daemon_main.py +0 -0
  25. {dev_recall-0.2.0 → dev_recall-0.2.2}/recall/mcp_server.py +0 -0
  26. {dev_recall-0.2.0 → dev_recall-0.2.2}/recall/models.py +0 -0
  27. {dev_recall-0.2.0 → dev_recall-0.2.2}/recall/processor/__init__.py +0 -0
  28. {dev_recall-0.2.0 → dev_recall-0.2.2}/recall/processor/embedder.py +0 -0
  29. {dev_recall-0.2.0 → dev_recall-0.2.2}/recall/processor/enricher.py +0 -0
  30. {dev_recall-0.2.0 → dev_recall-0.2.2}/recall/processor/session.py +0 -0
  31. {dev_recall-0.2.0 → dev_recall-0.2.2}/recall/query/__init__.py +0 -0
  32. {dev_recall-0.2.0 → dev_recall-0.2.2}/recall/query/context.py +0 -0
  33. {dev_recall-0.2.0 → dev_recall-0.2.2}/recall/query/llm.py +0 -0
  34. {dev_recall-0.2.0 → dev_recall-0.2.2}/recall/query/retriever.py +0 -0
  35. {dev_recall-0.2.0 → dev_recall-0.2.2}/recall/query/timeparser.py +0 -0
  36. {dev_recall-0.2.0 → dev_recall-0.2.2}/recall/storage/__init__.py +0 -0
  37. {dev_recall-0.2.0 → dev_recall-0.2.2}/recall/storage/db.py +0 -0
  38. {dev_recall-0.2.0 → dev_recall-0.2.2}/recall/storage/vectors.py +0 -0
  39. {dev_recall-0.2.0 → dev_recall-0.2.2}/setup.cfg +0 -0
  40. {dev_recall-0.2.0 → dev_recall-0.2.2}/tests/test_collectors.py +0 -0
  41. {dev_recall-0.2.0 → dev_recall-0.2.2}/tests/test_enricher.py +0 -0
  42. {dev_recall-0.2.0 → dev_recall-0.2.2}/tests/test_query.py +0 -0
  43. {dev_recall-0.2.0 → dev_recall-0.2.2}/tests/test_session.py +0 -0
  44. {dev_recall-0.2.0 → dev_recall-0.2.2}/tests/test_storage.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dev-recall
3
- Version: 0.2.0
3
+ Version: 0.2.2
4
4
  Summary: Local-first developer memory layer
5
5
  License: MIT
6
6
  Keywords: developer-tools,memory,productivity,cli
@@ -76,6 +76,7 @@ source .zshrc # or .bashrc
76
76
  | `recall privacy ignore --cmd "pattern"` | Add a privacy filter |
77
77
  | `recall daemon start/stop/status/logs` | Manage the background daemon |
78
78
  | `recall mcp-serve` | Start MCP server (for Claude Code / Copilot) |
79
+ | `recall vscode install` | Build and install VS Code extension |
79
80
 
80
81
  ---
81
82
 
@@ -109,7 +110,7 @@ source ~/.config/dev-recall/hook.zsh
109
110
  ### VS Code activity
110
111
  Install the extension:
111
112
  ```bash
112
- code --install-extension recall.recall-vscode
113
+ recall vscode install
113
114
  ```
114
115
 
115
116
  ### AI chat sessions
@@ -47,6 +47,7 @@ source .zshrc # or .bashrc
47
47
  | `recall privacy ignore --cmd "pattern"` | Add a privacy filter |
48
48
  | `recall daemon start/stop/status/logs` | Manage the background daemon |
49
49
  | `recall mcp-serve` | Start MCP server (for Claude Code / Copilot) |
50
+ | `recall vscode install` | Build and install VS Code extension |
50
51
 
51
52
  ---
52
53
 
@@ -80,7 +81,7 @@ source ~/.config/dev-recall/hook.zsh
80
81
  ### VS Code activity
81
82
  Install the extension:
82
83
  ```bash
83
- code --install-extension recall.recall-vscode
84
+ recall vscode install
84
85
  ```
85
86
 
86
87
  ### AI chat sessions
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dev-recall
3
- Version: 0.2.0
3
+ Version: 0.2.2
4
4
  Summary: Local-first developer memory layer
5
5
  License: MIT
6
6
  Keywords: developer-tools,memory,productivity,cli
@@ -76,6 +76,7 @@ source .zshrc # or .bashrc
76
76
  | `recall privacy ignore --cmd "pattern"` | Add a privacy filter |
77
77
  | `recall daemon start/stop/status/logs` | Manage the background daemon |
78
78
  | `recall mcp-serve` | Start MCP server (for Claude Code / Copilot) |
79
+ | `recall vscode install` | Build and install VS Code extension |
79
80
 
80
81
  ---
81
82
 
@@ -109,7 +110,7 @@ source ~/.config/dev-recall/hook.zsh
109
110
  ### VS Code activity
110
111
  Install the extension:
111
112
  ```bash
112
- code --install-extension recall.recall-vscode
113
+ recall vscode install
113
114
  ```
114
115
 
115
116
  ### AI chat sessions
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "dev-recall"
7
- version = "0.2.0"
7
+ version = "0.2.2"
8
8
  description = "Local-first developer memory layer"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -5,10 +5,14 @@ This module embeds the hook scripts as strings so `recall init` can
5
5
  write them to ~/.config/dev-recall/.
6
6
  """
7
7
 
8
- ZSH_HOOK = r'''# Recall shell hook source this in ~/.zshrc
8
+ # Recall shell hook, source this in ~/.zshrc
9
+ ZSH_HOOK = r'''
9
10
  # Installed by: recall init
10
11
 
11
- __devrecall_dir="${DEV_RECALL_DATA_DIR:-$HOME/.local/share/dev-recall}" {
12
+ __devrecall_dir="${DEV_RECALL_DATA_DIR:-$HOME/.local/share/dev-recall}"
13
+ __devrecall_shell_log="$__devrecall_dir/shell.tsv"
14
+
15
+ __devrecall_preexec() {
12
16
  __devrecall_cmd="$1"
13
17
  __devrecall_start_ms=$(( $(date +%s) * 1000 ))
14
18
  }
@@ -126,7 +126,12 @@ def init(yes: bool):
126
126
 
127
127
  # Step 6: VS Code extension hint
128
128
  _print_step(6, steps[5])
129
- console.print(" → Run: [cyan]code --install-extension recall.recall-vscode[/cyan] (optional)")
129
+ if yes or click.confirm(" → Would you like to build and install the VS Code extension now?", default=False):
130
+ # We can call the function directly or via a new command
131
+ ctx = click.get_current_context()
132
+ ctx.invoke(vscode_install)
133
+ else:
134
+ console.print(" → Skip. Run manually later: [cyan]recall vscode install[/cyan]")
130
135
 
131
136
  console.print()
132
137
  console.print("[bold green]Done. Recall is running.[/bold green]")
@@ -985,6 +990,96 @@ def mcp_serve():
985
990
  run_mcp_server()
986
991
 
987
992
 
993
+ # ---------------------------------------------------------------------------
994
+ # vscode
995
+ # ---------------------------------------------------------------------------
996
+
997
+
998
+ @cli.group()
999
+ def vscode():
1000
+ """Manage the Recall VS Code extension."""
1001
+ pass
1002
+
1003
+
1004
+ @vscode.command("install")
1005
+ def vscode_install():
1006
+ """Build and install the Recall VS Code extension."""
1007
+ import shutil
1008
+
1009
+ ext_dir = Path(__file__).parent.parent / "vscode-extension"
1010
+ # vsce produces name-version.vsix
1011
+ vsix_pattern = "recall-vscode-*.vsix"
1012
+
1013
+ # Check for npm and code
1014
+ if not shutil.which("npm"):
1015
+ console.print("[red]npm not found. Install Node.js to build the VS Code extension.[/red]")
1016
+ return
1017
+ if not shutil.which("code"):
1018
+ console.print("[red]'code' command not found. Make sure VS Code is in your PATH.[/red]")
1019
+ return
1020
+
1021
+ # Install dependencies and build
1022
+ console.print("[dim]Installing extension dependencies...[/dim]")
1023
+ result = subprocess.run(
1024
+ ["npm", "install"],
1025
+ cwd=ext_dir,
1026
+ capture_output=True,
1027
+ text=True,
1028
+ )
1029
+ if result.returncode != 0:
1030
+ console.print(f"[red]npm install failed:[/red] {result.stderr}")
1031
+ return
1032
+
1033
+ console.print("[dim]Compiling TypeScript...[/dim]")
1034
+ result = subprocess.run(
1035
+ ["npm", "run", "compile"],
1036
+ cwd=ext_dir,
1037
+ capture_output=True,
1038
+ text=True,
1039
+ )
1040
+ if result.returncode != 0:
1041
+ console.print(f"[red]TypeScript compilation failed:[/red] {result.stderr}")
1042
+ return
1043
+
1044
+ console.print("[dim]Packaging extension...[/dim]")
1045
+ # Remove old vsix files first to avoid ambiguity
1046
+ for old_vsix in ext_dir.glob("*.vsix"):
1047
+ old_vsix.unlink()
1048
+
1049
+ result = subprocess.run(
1050
+ ["npx", "@vscode/vsce", "package"],
1051
+ cwd=ext_dir,
1052
+ capture_output=True,
1053
+ text=True,
1054
+ )
1055
+ if result.returncode != 0:
1056
+ console.print(f"[red]vsce package failed:[/red] {result.stderr}")
1057
+ return
1058
+
1059
+ # Find the generated .vsix file
1060
+ vsix_files = list(ext_dir.glob(vsix_pattern))
1061
+ if not vsix_files:
1062
+ console.print("[red]No .vsix file generated (looked for recall-vscode-*.vsix).[/red]")
1063
+ return
1064
+
1065
+ vsix_path = vsix_files[0]
1066
+ console.print(f" → [green]✓[/green] Generated {vsix_path.name}")
1067
+
1068
+ # Install the extension
1069
+ console.print(f"[dim]Installing extension via 'code --install-extension'...[/dim]")
1070
+ result = subprocess.run(
1071
+ ["code", "--install-extension", str(vsix_path)],
1072
+ capture_output=True,
1073
+ text=True,
1074
+ )
1075
+ if result.returncode != 0:
1076
+ console.print(f"[red]Extension installation failed:[/red] {result.stderr}")
1077
+ return
1078
+
1079
+ console.print("[green]✓ VS Code extension installed successfully.[/green]")
1080
+ console.print(" → Restart VS Code (or run 'Developer: Reload Window') to activate.")
1081
+
1082
+
988
1083
  # ---------------------------------------------------------------------------
989
1084
  # Helpers
990
1085
  # ---------------------------------------------------------------------------
File without changes
File without changes
File without changes
File without changes