total-agent-memory 0.1.0 → 1.1.0

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.
package/README.md CHANGED
@@ -7,8 +7,10 @@
7
7
  npx -y total-agent-memory
8
8
  ```
9
9
 
10
- That's it. One command bootstraps a Python virtual env in `~/.claude-memory/`,
11
- installs the MCP server, and prints next-step instructions for wiring your IDE.
10
+ That's it. One command bootstraps a Python virtual env in `~/.tam/` (legacy
11
+ `~/.claude-memory/` is migrated automatically with a symlink kept for
12
+ backward-compat), installs the MCP server, and prints next-step instructions
13
+ for wiring your IDE.
12
14
 
13
15
  ## Quick start
14
16
 
@@ -37,7 +39,7 @@ Alias: `tam` (same binary).
37
39
  | `status` | Print install paths, DB size. |
38
40
  | `doctor` | Diagnose Python/uv/git on PATH. |
39
41
  | `upgrade` | Pull the latest server version. |
40
- | `uninstall` | Remove `~/.claude-memory` (needs `--yes`). |
42
+ | `uninstall` | Remove `~/.tam` (needs `--yes`). Also removes `~/.claude-memory` if it's a symlink to `~/.tam`. |
41
43
 
42
44
  ## Options
43
45
 
@@ -45,7 +47,7 @@ Alias: `tam` (same binary).
45
47
  |---|---|
46
48
  | `--server-version 11.2.2` | Pin a specific server release. |
47
49
  | `--source pypi\|git` | Force install source. Default: PyPI with GitHub fallback. |
48
- | `--memory-dir /path` | Override install dir (default `~/.claude-memory`). |
50
+ | `--memory-dir /path` | Override install dir (default `~/.tam`). |
49
51
  | `--yes` | Skip prompts (needed for `uninstall`). |
50
52
  | `--no-color` | Disable ANSI. |
51
53
  | `--verbose` | Print every shell command. |
@@ -59,9 +61,9 @@ Alias: `tam` (same binary).
59
61
  ## What gets installed
60
62
 
61
63
  ```
62
- ~/.claude-memory/
64
+ ~/.tam/
63
65
  ├── .venv/ # isolated Python env
64
- │ └── bin/claude-total-memory # MCP server entry-point
66
+ │ └── bin/total-agent-memory # MCP server entry-point (legacy claude-total-memory also installed)
65
67
  └── memory.db # SQLite — your memory lives here
66
68
  ```
67
69
 
@@ -71,7 +73,7 @@ Nothing global is touched. Uninstall with `tam uninstall --yes`.
71
73
 
72
74
  - Site: <https://totalmemory.dev>
73
75
  - Server source: <https://github.com/vbcherepanov/total-agent-memory>
74
- - PyPI package: `claude-total-memory`
76
+ - PyPI package: `total-agent-memory` (legacy `claude-total-memory` is now a deprecation shim)
75
77
 
76
78
  ## License
77
79
 
package/bin/cli.js CHANGED
@@ -16,7 +16,7 @@ ${bold('Usage:')} total-agent-memory <command> [options]
16
16
  ${dim('alias:')} tam <command> [options]
17
17
 
18
18
  ${bold('Commands:')}
19
- install Install Python server into ~/.claude-memory (idempotent)
19
+ install Install Python server into ~/.tam (idempotent)
20
20
  start Start the MCP server (default if no command)
21
21
  connect <ide> Wire memory into an IDE config
22
22
  ${dim('claude-code | codex | cursor | cline | continue')}
@@ -25,7 +25,7 @@ ${bold('Commands:')}
25
25
  status Health check + tool count + DB stats
26
26
  doctor Diagnose environment (python, uv, ports, configs)
27
27
  upgrade Upgrade to the latest server version
28
- uninstall Remove ~/.claude-memory and IDE wirings
28
+ uninstall Remove ~/.tam and IDE wirings
29
29
  version Print version
30
30
  help Show this message
31
31
 
@@ -33,7 +33,7 @@ ${bold('Options:')}
33
33
  --version, -v Print npm wrapper version
34
34
  --server-version <v> Pin server version (default: latest)
35
35
  --source <pypi|git> Where to install from (default: auto)
36
- --memory-dir <path> Override install dir (default: ~/.claude-memory)
36
+ --memory-dir <path> Override install dir (default: ~/.tam)
37
37
  --yes, -y Skip prompts
38
38
  --no-color Disable ANSI colors
39
39
  --verbose Print every shell command
package/lib/commands.js CHANGED
@@ -11,7 +11,7 @@ const { run, runOrThrow } = require('./sh');
11
11
  const { c, bold, ok, fail, warn, info, banner, step } = require('./style');
12
12
 
13
13
  async function ensureInstalled(ctx) {
14
- const bin = venvBin(ctx.flags, 'claude-total-memory');
14
+ const bin = venvBin(ctx.flags, 'total-agent-memory');
15
15
  if (exists(bin)) return bin;
16
16
  process.stdout.write(`${info('Server not installed yet — installing now…')}\n`);
17
17
  const code = await install(ctx);
@@ -85,7 +85,7 @@ async function cmdStatus(ctx) {
85
85
  printReport(env);
86
86
  const dir = memoryDir(ctx.flags);
87
87
  const venv = venvDir(ctx.flags);
88
- const bin = venvBin(ctx.flags, 'claude-total-memory');
88
+ const bin = venvBin(ctx.flags, 'total-agent-memory');
89
89
  const db = path.join(dir, 'memory.db');
90
90
  process.stdout.write(`\n${bold('Install')}\n`);
91
91
  process.stdout.write(` ${exists(dir) ? ok(`memory dir : ${dir}`) : warn(`memory dir : ${dir} (missing)`)}\n`);
package/lib/ide.js CHANGED
@@ -18,7 +18,7 @@ const SUPPORTED = [
18
18
  ];
19
19
 
20
20
  function mcpEntry(flags) {
21
- const bin = venvBin(flags, 'claude-total-memory');
21
+ const bin = venvBin(flags, 'total-agent-memory');
22
22
  return {
23
23
  command: bin,
24
24
  args: [],
@@ -113,7 +113,7 @@ function wireOpenCode(flags) {
113
113
  }
114
114
  function wireCodex(flags) {
115
115
  ensureDir(path.dirname(codexPath()));
116
- const bin = venvBin(flags, 'claude-total-memory');
116
+ const bin = venvBin(flags, 'total-agent-memory');
117
117
  const block = `
118
118
 
119
119
  [mcp_servers.total-agent-memory]
package/lib/install.js CHANGED
@@ -7,10 +7,10 @@ const { memoryDir, venvDir, venvBin, ensureDir, exists } = require('./paths');
7
7
  const { diagnose, pickInstaller, printReport, printRemediation } = require('./doctor');
8
8
  const { c, bold, ok, fail, warn, info, step } = require('./style');
9
9
 
10
- const PYPI_PACKAGE = 'claude-total-memory';
10
+ const PYPI_PACKAGE = 'total-agent-memory';
11
11
  // Pinned to the latest stable release at the time of the wrapper release.
12
12
  // Override via `--server-version` or env TAM_SERVER_VERSION.
13
- const DEFAULT_SERVER_VERSION = '11.2.2';
13
+ const DEFAULT_SERVER_VERSION = '12.2.0';
14
14
  const GIT_URL = 'https://github.com/vbcherepanov/total-agent-memory.git';
15
15
 
16
16
  function pinned(flags) {
@@ -81,10 +81,10 @@ async function pipInstall(flags, env, source) {
81
81
  process.stdout.write(` ${warn('TAM_INSTALL_DRY=1 — skipping real pip install')}\n`);
82
82
  // Drop a marker file so subsequent steps don't barf on missing bin.
83
83
  const fs = require('fs');
84
- const markerDir = path.dirname(venvBin(flags, 'claude-total-memory'));
84
+ const markerDir = path.dirname(venvBin(flags, 'total-agent-memory'));
85
85
  fs.mkdirSync(markerDir, { recursive: true });
86
- fs.writeFileSync(venvBin(flags, 'claude-total-memory'), '#!/bin/sh\necho "dry-run shim"\n');
87
- fs.chmodSync(venvBin(flags, 'claude-total-memory'), 0o755);
86
+ fs.writeFileSync(venvBin(flags, 'total-agent-memory'), '#!/bin/sh\necho "dry-run shim"\n');
87
+ fs.chmodSync(venvBin(flags, 'total-agent-memory'), 0o755);
88
88
  return;
89
89
  }
90
90
 
@@ -122,7 +122,7 @@ async function install(ctx) {
122
122
  await pipInstall(flags, env, source);
123
123
 
124
124
  // Verify entry-point present.
125
- const bin = venvBin(flags, 'claude-total-memory');
125
+ const bin = venvBin(flags, 'total-agent-memory');
126
126
  if (!exists(bin)) {
127
127
  process.stderr.write(`\n${fail(`entry-point ${bin} not found after install`)}\n`);
128
128
  return 1;
package/lib/paths.js CHANGED
@@ -8,10 +8,24 @@ function home() {
8
8
  return process.env.HOME || process.env.USERPROFILE || os.homedir();
9
9
  }
10
10
 
11
+ let _warnedLegacyEnv = false;
12
+
11
13
  function memoryDir(flags) {
12
14
  if (flags && typeof flags['memory-dir'] === 'string') return flags['memory-dir'];
13
- if (process.env.CLAUDE_MEMORY_DIR) return process.env.CLAUDE_MEMORY_DIR;
14
- return path.join(home(), '.claude-memory');
15
+ if (process.env.TAM_MEMORY_DIR) return process.env.TAM_MEMORY_DIR;
16
+ if (process.env.CLAUDE_MEMORY_DIR) {
17
+ if (!_warnedLegacyEnv) {
18
+ // eslint-disable-next-line no-console
19
+ console.warn(' ⚠ CLAUDE_MEMORY_DIR is deprecated, please switch to TAM_MEMORY_DIR');
20
+ _warnedLegacyEnv = true;
21
+ }
22
+ return process.env.CLAUDE_MEMORY_DIR;
23
+ }
24
+ const tam = path.join(home(), '.tam');
25
+ const legacy = path.join(home(), '.claude-memory');
26
+ if (fs.existsSync(tam)) return tam;
27
+ if (fs.existsSync(legacy)) return legacy; // Python server will migrate on first run.
28
+ return tam;
15
29
  }
16
30
 
17
31
  function venvDir(flags) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "total-agent-memory",
3
- "version": "0.1.0",
3
+ "version": "1.1.0",
4
4
  "description": "Persistent memory for Claude Code, Codex CLI, Cursor and any MCP client. Local-first, hits #5 on LoCoMo. One command to install.",
5
5
  "keywords": [
6
6
  "mcp",