claude-memory-agent 2.2.1 → 2.2.3
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/bin/cli.js +2 -2
- package/bin/postinstall.js +14 -0
- package/install.py +14 -4
- package/package.json +1 -1
- package/requirements.txt +1 -1
package/bin/cli.js
CHANGED
|
@@ -206,7 +206,7 @@ function checkOllamaModel() {
|
|
|
206
206
|
// Print help
|
|
207
207
|
function printHelp() {
|
|
208
208
|
console.log(`
|
|
209
|
-
Claude Memory Agent v2.
|
|
209
|
+
Claude Memory Agent v2.2.3
|
|
210
210
|
Persistent semantic memory for Claude Code sessions
|
|
211
211
|
|
|
212
212
|
USAGE:
|
|
@@ -314,7 +314,7 @@ function main() {
|
|
|
314
314
|
|
|
315
315
|
case '--version':
|
|
316
316
|
case '-v':
|
|
317
|
-
console.log('claude-memory-agent v2.
|
|
317
|
+
console.log('claude-memory-agent v2.2.3');
|
|
318
318
|
break;
|
|
319
319
|
|
|
320
320
|
default:
|
package/bin/postinstall.js
CHANGED
|
@@ -7,8 +7,22 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
const path = require('path');
|
|
10
|
+
const fs = require('fs');
|
|
11
|
+
|
|
12
|
+
// Fix executable permissions on Unix (Windows npm pack doesn't preserve them)
|
|
13
|
+
function fixPermissions() {
|
|
14
|
+
if (process.platform === 'win32') return;
|
|
15
|
+
try {
|
|
16
|
+
const cliPath = path.join(__dirname, 'cli.js');
|
|
17
|
+
fs.chmodSync(cliPath, 0o755);
|
|
18
|
+
} catch (_) {
|
|
19
|
+
// Non-fatal — user can chmod manually
|
|
20
|
+
}
|
|
21
|
+
}
|
|
10
22
|
|
|
11
23
|
async function main() {
|
|
24
|
+
fixPermissions();
|
|
25
|
+
|
|
12
26
|
// Skip in CI
|
|
13
27
|
if (process.env.CI) {
|
|
14
28
|
console.log('Skipping post-install in CI environment');
|
package/install.py
CHANGED
|
@@ -91,10 +91,15 @@ def print_error(text: str):
|
|
|
91
91
|
|
|
92
92
|
|
|
93
93
|
def prompt_yes_no(question: str, default: bool = True) -> bool:
|
|
94
|
-
"""Prompt for yes/no answer."""
|
|
94
|
+
"""Prompt for yes/no answer. Returns default if stdin is not a TTY or EOF."""
|
|
95
|
+
if not sys.stdin.isatty():
|
|
96
|
+
return default
|
|
95
97
|
suffix = " [Y/n]: " if default else " [y/N]: "
|
|
96
98
|
while True:
|
|
97
|
-
|
|
99
|
+
try:
|
|
100
|
+
answer = input(question + suffix).strip().lower()
|
|
101
|
+
except EOFError:
|
|
102
|
+
return default
|
|
98
103
|
if not answer:
|
|
99
104
|
return default
|
|
100
105
|
if answer in ("y", "yes"):
|
|
@@ -105,8 +110,13 @@ def prompt_yes_no(question: str, default: bool = True) -> bool:
|
|
|
105
110
|
|
|
106
111
|
|
|
107
112
|
def prompt_value(question: str, default: str) -> str:
|
|
108
|
-
"""Prompt for a value with a default."""
|
|
109
|
-
|
|
113
|
+
"""Prompt for a value with a default. Returns default if stdin is not a TTY or EOF."""
|
|
114
|
+
if not sys.stdin.isatty():
|
|
115
|
+
return default
|
|
116
|
+
try:
|
|
117
|
+
answer = input(f"{question} [{default}]: ").strip()
|
|
118
|
+
except EOFError:
|
|
119
|
+
return default
|
|
110
120
|
return answer if answer else default
|
|
111
121
|
|
|
112
122
|
|
package/package.json
CHANGED
package/requirements.txt
CHANGED