superlocalmemory 4.1.21 → 4.1.23
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/.claude-plugin/marketplace.json +3 -3
- package/CHANGELOG.md +210 -0
- package/README.md +101 -33
- package/antigravity-plugin/_GENERATED.md +33 -0
- package/antigravity-plugin/agents/slm-governance-advisor.md +78 -0
- package/antigravity-plugin/agents/slm-loop-runner.md +82 -0
- package/antigravity-plugin/agents/slm-memory-advisor.md +50 -0
- package/antigravity-plugin/agents/slm-optimize-advisor.md +44 -0
- package/antigravity-plugin/commands/slm-loop.md +33 -0
- package/antigravity-plugin/hooks/hooks.json +59 -0
- package/antigravity-plugin/hooks.json +42 -0
- package/antigravity-plugin/mcp_config.json +14 -0
- package/antigravity-plugin/plugin.json +25 -0
- package/antigravity-plugin/scripts/antigravity_hook_adapter.py +85 -0
- package/antigravity-plugin/skills/slm-bot-memory/SKILL.md +146 -0
- package/antigravity-plugin/skills/slm-cache/SKILL.md +147 -0
- package/antigravity-plugin/skills/slm-compress/SKILL.md +150 -0
- package/antigravity-plugin/skills/slm-getting-started-bot/SKILL.md +146 -0
- package/antigravity-plugin/skills/slm-governance/SKILL.md +221 -0
- package/antigravity-plugin/skills/slm-graph/SKILL.md +327 -0
- package/antigravity-plugin/skills/slm-loop/SKILL.md +153 -0
- package/antigravity-plugin/skills/slm-mesh/SKILL.md +287 -0
- package/antigravity-plugin/skills/slm-profile/SKILL.md +159 -0
- package/antigravity-plugin/skills/slm-recall/SKILL.md +430 -0
- package/antigravity-plugin/skills/slm-remember/SKILL.md +370 -0
- package/antigravity-plugin/skills/slm-scope/SKILL.md +183 -0
- package/antigravity-plugin/skills/slm-session/SKILL.md +291 -0
- package/antigravity-plugin/skills/slm-status/SKILL.md +185 -0
- package/antigravity-plugin/skills/slm-web-access/SKILL.md +91 -0
- package/codex-plugin/.claude-plugin/plugin.json +19 -0
- package/codex-plugin/.codex/config.toml +40 -0
- package/codex-plugin/.codex-plugin/plugin.json +43 -0
- package/codex-plugin/.mcp.json +16 -0
- package/codex-plugin/AGENTS.md +161 -0
- package/codex-plugin/README.md +205 -0
- package/codex-plugin/_GENERATED.md +52 -0
- package/codex-plugin/agents/slm-governance-advisor.md +78 -0
- package/codex-plugin/agents/slm-loop-runner.md +82 -0
- package/codex-plugin/agents/slm-memory-advisor.md +50 -0
- package/codex-plugin/agents/slm-optimize-advisor.md +44 -0
- package/codex-plugin/commands/slm-loop.md +33 -0
- package/codex-plugin/hooks/hooks.json +59 -0
- package/codex-plugin/scripts/ensure-venv.bat +108 -0
- package/codex-plugin/scripts/ensure-venv.sh +100 -0
- package/codex-plugin/scripts/slm-launch +55 -0
- package/codex-plugin/scripts/slm-launch.bat +30 -0
- package/codex-plugin/skills/slm-bot-memory/SKILL.md +146 -0
- package/codex-plugin/skills/slm-cache/SKILL.md +147 -0
- package/codex-plugin/skills/slm-compress/SKILL.md +150 -0
- package/codex-plugin/skills/slm-getting-started-bot/SKILL.md +146 -0
- package/codex-plugin/skills/slm-governance/SKILL.md +221 -0
- package/codex-plugin/skills/slm-graph/SKILL.md +327 -0
- package/codex-plugin/skills/slm-loop/SKILL.md +153 -0
- package/codex-plugin/skills/slm-mesh/SKILL.md +287 -0
- package/codex-plugin/skills/slm-profile/SKILL.md +159 -0
- package/codex-plugin/skills/slm-recall/SKILL.md +430 -0
- package/codex-plugin/skills/slm-remember/SKILL.md +370 -0
- package/codex-plugin/skills/slm-scope/SKILL.md +183 -0
- package/codex-plugin/skills/slm-session/SKILL.md +291 -0
- package/codex-plugin/skills/slm-status/SKILL.md +185 -0
- package/codex-plugin/skills/slm-web-access/SKILL.md +91 -0
- package/copilot-plugin/.github/agents/slm-governance-advisor.agent.md +80 -0
- package/copilot-plugin/.github/agents/slm-loop-runner.agent.md +84 -0
- package/copilot-plugin/.github/agents/slm-memory-advisor.agent.md +52 -0
- package/copilot-plugin/.github/agents/slm-optimize-advisor.agent.md +46 -0
- package/copilot-plugin/.github/copilot-instructions.md +52 -0
- package/copilot-plugin/.github/hooks/slm-hooks.json +44 -0
- package/copilot-plugin/.github/prompts/slm-bot-memory.prompt.md +147 -0
- package/copilot-plugin/.github/prompts/slm-cache.prompt.md +151 -0
- package/copilot-plugin/.github/prompts/slm-compress.prompt.md +154 -0
- package/copilot-plugin/.github/prompts/slm-getting-started-bot.prompt.md +147 -0
- package/copilot-plugin/.github/prompts/slm-governance.prompt.md +224 -0
- package/copilot-plugin/.github/prompts/slm-graph.prompt.md +322 -0
- package/copilot-plugin/.github/prompts/slm-loop.prompt.md +159 -0
- package/copilot-plugin/.github/prompts/slm-mesh.prompt.md +290 -0
- package/copilot-plugin/.github/prompts/slm-profile.prompt.md +155 -0
- package/copilot-plugin/.github/prompts/slm-recall.prompt.md +434 -0
- package/copilot-plugin/.github/prompts/slm-remember.prompt.md +375 -0
- package/copilot-plugin/.github/prompts/slm-scope.prompt.md +183 -0
- package/copilot-plugin/.github/prompts/slm-session.prompt.md +291 -0
- package/copilot-plugin/.github/prompts/slm-status.prompt.md +190 -0
- package/copilot-plugin/.github/prompts/slm-web-access.prompt.md +95 -0
- package/copilot-plugin/.vscode/mcp.json +11 -0
- package/copilot-plugin/README.md +26 -0
- package/copilot-plugin/_GENERATED.md +49 -0
- package/copilot-plugin/scripts/ensure-venv.bat +122 -0
- package/copilot-plugin/scripts/ensure-venv.sh +169 -0
- package/copilot-plugin/scripts/slm-launch +207 -0
- package/copilot-plugin/scripts/slm-launch.bat +32 -0
- package/copilot-plugin/scripts/slm-resolve.sh +128 -0
- package/copilot-plugin/scripts/slm-run +76 -0
- package/copilot-plugin/scripts/torch-cpu-resolve.sh +86 -0
- package/docs/pi-dev-integration.md +0 -2
- package/hermes-plugin/README.md +30 -0
- package/hermes-plugin/_GENERATED.md +3 -0
- package/hermes-plugin/__init__.py +417 -0
- package/hermes-plugin/agents/slm-governance-advisor.md +78 -0
- package/hermes-plugin/agents/slm-loop-runner.md +82 -0
- package/hermes-plugin/agents/slm-memory-advisor.md +50 -0
- package/hermes-plugin/agents/slm-optimize-advisor.md +44 -0
- package/hermes-plugin/command-inventory.json +7 -0
- package/hermes-plugin/plugin.yaml +24 -0
- package/hermes-plugin/remote.py +390 -0
- package/hermes-plugin/skills/slm-bot-memory/SKILL.md +146 -0
- package/hermes-plugin/skills/slm-cache/SKILL.md +147 -0
- package/hermes-plugin/skills/slm-compress/SKILL.md +150 -0
- package/hermes-plugin/skills/slm-getting-started-bot/SKILL.md +146 -0
- package/hermes-plugin/skills/slm-governance/SKILL.md +221 -0
- package/hermes-plugin/skills/slm-graph/SKILL.md +327 -0
- package/hermes-plugin/skills/slm-loop/SKILL.md +153 -0
- package/hermes-plugin/skills/slm-mesh/SKILL.md +287 -0
- package/hermes-plugin/skills/slm-profile/SKILL.md +159 -0
- package/hermes-plugin/skills/slm-recall/SKILL.md +430 -0
- package/hermes-plugin/skills/slm-remember/SKILL.md +370 -0
- package/hermes-plugin/skills/slm-scope/SKILL.md +183 -0
- package/hermes-plugin/skills/slm-session/SKILL.md +291 -0
- package/hermes-plugin/skills/slm-status/SKILL.md +185 -0
- package/hermes-plugin/skills/slm-web-access/SKILL.md +91 -0
- package/package.json +9 -16
- package/plugin/.claude-plugin/plugin.json +2 -2
- package/plugin/.cursor-plugin/plugin.json +24 -0
- package/plugin/CLAUDE.md +14 -12
- package/plugin/agents/slm-governance-advisor.md +14 -16
- package/plugin/agents/slm-loop-runner.md +22 -11
- package/plugin/agents/slm-memory-advisor.md +14 -14
- package/plugin/agents/slm-optimize-advisor.md +5 -5
- package/plugin/assets/logo.svg +36 -0
- package/plugin/commands/slm-loop.md +5 -3
- package/plugin/cursor-skills/slm-bot-memory/SKILL.md +146 -0
- package/plugin/cursor-skills/slm-getting-started-bot/SKILL.md +146 -0
- package/plugin/cursor-skills/slm-recall/SKILL.md +430 -0
- package/plugin/cursor-skills/slm-remember/SKILL.md +370 -0
- package/plugin/cursor-skills/slm-scope/SKILL.md +183 -0
- package/plugin/cursor-skills/slm-session/SKILL.md +291 -0
- package/plugin/hooks/hooks.json +9 -9
- package/plugin/mcp.cursor.json +23 -0
- package/plugin/requirements-cpu-torch.txt +13 -0
- package/plugin/requirements.txt +1 -1
- package/plugin/scripts/ensure-venv.sh +45 -3
- package/plugin/scripts/slm-launch +93 -9
- package/plugin/scripts/torch-cpu-resolve.sh +86 -0
- package/plugin/skills/slm-bot-memory/SKILL.md +146 -0
- package/plugin/skills/slm-cache/SKILL.md +6 -7
- package/plugin/skills/slm-compress/SKILL.md +3 -3
- package/plugin/skills/slm-getting-started-bot/SKILL.md +146 -0
- package/plugin/skills/slm-governance/SKILL.md +126 -153
- package/plugin/skills/slm-graph/SKILL.md +27 -15
- package/plugin/skills/slm-loop/SKILL.md +74 -20
- package/plugin/skills/slm-mesh/SKILL.md +17 -12
- package/plugin/skills/slm-profile/SKILL.md +101 -91
- package/plugin/skills/slm-recall/SKILL.md +151 -54
- package/plugin/skills/slm-remember/SKILL.md +132 -35
- package/plugin/skills/slm-scope/SKILL.md +24 -17
- package/plugin/skills/slm-session/SKILL.md +77 -57
- package/plugin/skills/slm-status/SKILL.md +54 -35
- package/plugin/skills/slm-web-access/SKILL.md +91 -0
- package/plugin-src/agents/slm-governance-advisor.md +78 -0
- package/plugin-src/agents/slm-loop-runner.md +82 -0
- package/plugin-src/agents/slm-memory-advisor.md +14 -14
- package/plugin-src/agents/slm-optimize-advisor.md +5 -5
- package/plugin-src/commands/slm-loop.md +33 -0
- package/plugin-src/rules/AGENTS.md +45 -36
- package/plugin-src/rules/CLAUDE.md.fragment +47 -0
- package/plugin-src/skills/slm-bot-memory/SKILL.md +146 -0
- package/plugin-src/skills/slm-cache/SKILL.md +6 -7
- package/plugin-src/skills/slm-compress/SKILL.md +3 -3
- package/plugin-src/skills/slm-getting-started-bot/SKILL.md +146 -0
- package/plugin-src/skills/slm-governance/SKILL.md +126 -153
- package/plugin-src/skills/slm-graph/SKILL.md +27 -15
- package/plugin-src/skills/slm-loop/SKILL.md +74 -20
- package/plugin-src/skills/slm-mesh/SKILL.md +17 -12
- package/plugin-src/skills/slm-profile/SKILL.md +101 -91
- package/plugin-src/skills/slm-recall/SKILL.md +151 -54
- package/plugin-src/skills/slm-remember/SKILL.md +132 -35
- package/plugin-src/skills/slm-scope/SKILL.md +24 -17
- package/plugin-src/skills/slm-session/SKILL.md +77 -57
- package/plugin-src/skills/slm-status/SKILL.md +54 -35
- package/plugin-src/skills/slm-web-access/SKILL.md +91 -0
- package/scripts/postinstall.js +107 -0
package/scripts/postinstall.js
CHANGED
|
@@ -21,6 +21,12 @@ const MIN_PYTHON = Object.freeze([3, 12]);
|
|
|
21
21
|
const MAX_PYTHON_EXCLUSIVE = Object.freeze([3, 15]);
|
|
22
22
|
const INSTALL_TIMEOUT_MS = 15 * 60 * 1000;
|
|
23
23
|
|
|
24
|
+
// The official CPU-only wheel index (https://pytorch.org/get-started/locally/,
|
|
25
|
+
// fetched 2026-10-06). PyPI's plain `torch` wheel is CPU-only on macOS/Windows but
|
|
26
|
+
// a CUDA build on Linux (torch + triton + ~18 nvidia-* packages, ~2.6 GiB) even
|
|
27
|
+
// with no GPU present to use it.
|
|
28
|
+
const TORCH_CPU_INDEX_URL = 'https://download.pytorch.org/whl/cpu';
|
|
29
|
+
|
|
24
30
|
function parsePythonVersion(output) {
|
|
25
31
|
const match = String(output || '').match(/Python\s+(\d+)\.(\d+)(?:\.(\d+))?/i);
|
|
26
32
|
if (!match) return null;
|
|
@@ -107,6 +113,72 @@ function findSupportedPython() {
|
|
|
107
113
|
return null;
|
|
108
114
|
}
|
|
109
115
|
|
|
116
|
+
/**
|
|
117
|
+
* Is an NVIDIA GPU visible on this host? Linux-only signal: the three cheap,
|
|
118
|
+
* side-effect-free checks pip itself has no equivalent for. False on any
|
|
119
|
+
* error — a check that cannot tell is not evidence of a GPU.
|
|
120
|
+
* @param {string} platform
|
|
121
|
+
* @returns {boolean}
|
|
122
|
+
*/
|
|
123
|
+
function hasNvidiaGpu(platform = os.platform()) {
|
|
124
|
+
if (platform !== 'linux') return false;
|
|
125
|
+
if (fs.existsSync('/proc/driver/nvidia/version') || fs.existsSync('/dev/nvidia0')) {
|
|
126
|
+
return true;
|
|
127
|
+
}
|
|
128
|
+
try {
|
|
129
|
+
const probe = spawnSync('nvidia-smi', [], { stdio: 'ignore', timeout: 2000 });
|
|
130
|
+
return probe.status === 0;
|
|
131
|
+
} catch {
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Should this install pre-fetch the CPU-only torch wheel before the
|
|
138
|
+
* main package? Mirrors plugin-src/scripts/torch-cpu-resolve.sh's
|
|
139
|
+
* `torch_cpu_should_force` (same questions, same answers, separate runtime).
|
|
140
|
+
* False covers: not Linux, a GPU is visible, or the user already steered pip
|
|
141
|
+
* (their own index) or torch (SLM_TORCH_BACKEND set to anything but "cpu")
|
|
142
|
+
* themselves.
|
|
143
|
+
* @param {NodeJS.ProcessEnv} env
|
|
144
|
+
* @param {string} platform
|
|
145
|
+
* @param {(platform: string) => boolean} gpuCheck injected for testing
|
|
146
|
+
* @returns {boolean}
|
|
147
|
+
*/
|
|
148
|
+
function shouldForceCpuTorch(env = process.env, platform = os.platform(), gpuCheck = hasNvidiaGpu) {
|
|
149
|
+
if (platform !== 'linux') return false;
|
|
150
|
+
|
|
151
|
+
const backend = String(env.SLM_TORCH_BACKEND || '').trim();
|
|
152
|
+
if (backend === 'cpu') return true;
|
|
153
|
+
if (backend) return false; // cuda / cuXXX / auto / ... — the user already decided
|
|
154
|
+
|
|
155
|
+
if (env.PIP_INDEX_URL || env.PIP_EXTRA_INDEX_URL) return false;
|
|
156
|
+
|
|
157
|
+
return !gpuCheck(platform);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Read the `torch==X.Y.Z` pin shipped at plugin/requirements-cpu-torch.txt
|
|
162
|
+
* (kept equal to pyproject.toml's torch pin by
|
|
163
|
+
* tests/test_plugin_src/test_torch_cpu_pin_matches_pyproject.py). Returns
|
|
164
|
+
* null — fail-open — when the file is missing or has no such line, so a
|
|
165
|
+
* missing/stale pin file can never block an install that would otherwise
|
|
166
|
+
* succeed; it only means this optimization is skipped for this run.
|
|
167
|
+
* @param {string} packageRoot
|
|
168
|
+
* @returns {string | null}
|
|
169
|
+
*/
|
|
170
|
+
function cpuTorchPin(packageRoot) {
|
|
171
|
+
const pinFile = path.join(packageRoot, 'plugin', 'requirements-cpu-torch.txt');
|
|
172
|
+
let content;
|
|
173
|
+
try {
|
|
174
|
+
content = fs.readFileSync(pinFile, 'utf8');
|
|
175
|
+
} catch {
|
|
176
|
+
return null;
|
|
177
|
+
}
|
|
178
|
+
const match = content.match(/^torch==\S+/m);
|
|
179
|
+
return match ? match[0].trim() : null;
|
|
180
|
+
}
|
|
181
|
+
|
|
110
182
|
function runtimePythonPath(packageRoot, platform = os.platform()) {
|
|
111
183
|
return platform === 'win32'
|
|
112
184
|
? path.join(packageRoot, '.slm-venv', 'Scripts', 'python.exe')
|
|
@@ -244,6 +316,37 @@ function main(argv = process.argv.slice(2)) {
|
|
|
244
316
|
}
|
|
245
317
|
|
|
246
318
|
const runtimePython = runtimePythonPath(packageRoot);
|
|
319
|
+
|
|
320
|
+
// Pre-install the pinned CPU-only torch wheel so the main install
|
|
321
|
+
// below finds it already satisfied and never resolves the CUDA build.
|
|
322
|
+
// Best-effort: a failure here just means this run keeps the default
|
|
323
|
+
// resolution (and therefore the CUDA wheels on Linux) — it must never be
|
|
324
|
+
// the reason the whole install fails.
|
|
325
|
+
if (shouldForceCpuTorch()) {
|
|
326
|
+
const torchPin = cpuTorchPin(packageRoot);
|
|
327
|
+
if (torchPin) {
|
|
328
|
+
console.log(` Linux, no GPU detected — installing ${torchPin} from ${TORCH_CPU_INDEX_URL}`);
|
|
329
|
+
console.log(' (set SLM_TORCH_BACKEND=cuda to opt out).');
|
|
330
|
+
const installTorch = spawnSync(
|
|
331
|
+
runtimePython,
|
|
332
|
+
[
|
|
333
|
+
'-m', 'pip', 'install',
|
|
334
|
+
'--disable-pip-version-check',
|
|
335
|
+
'--no-input',
|
|
336
|
+
'--index-url', TORCH_CPU_INDEX_URL,
|
|
337
|
+
torchPin,
|
|
338
|
+
],
|
|
339
|
+
{ stdio: 'inherit', timeout: INSTALL_TIMEOUT_MS, env: process.env },
|
|
340
|
+
);
|
|
341
|
+
if (installTorch.status !== 0) {
|
|
342
|
+
console.error(
|
|
343
|
+
`SuperLocalMemory: CPU-only torch pre-install failed (${failureDetail(installTorch)}); `
|
|
344
|
+
+ 'continuing with the default index.',
|
|
345
|
+
);
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
|
|
247
350
|
const installPackage = spawnSync(
|
|
248
351
|
runtimePython,
|
|
249
352
|
[
|
|
@@ -322,7 +425,9 @@ if (require.main === module) {
|
|
|
322
425
|
}
|
|
323
426
|
|
|
324
427
|
module.exports = {
|
|
428
|
+
cpuTorchPin,
|
|
325
429
|
findSupportedPython,
|
|
430
|
+
hasNvidiaGpu,
|
|
326
431
|
isSupportedPython,
|
|
327
432
|
main,
|
|
328
433
|
parsePythonVersion,
|
|
@@ -330,5 +435,7 @@ module.exports = {
|
|
|
330
435
|
pypiSpecifier,
|
|
331
436
|
pythonCandidates,
|
|
332
437
|
runtimePythonPath,
|
|
438
|
+
shouldForceCpuTorch,
|
|
439
|
+
TORCH_CPU_INDEX_URL,
|
|
333
440
|
validateRuntimeLocation,
|
|
334
441
|
};
|