mirror of
https://github.com/dtzp555-max/ocp.git
synced 2026-07-19 09:44:07 +00:00
The npm name `ocp` is squatted (deprecated `node-ocp` v0.0.1), so the
package name is renamed to `open-claude-proxy` (verified via
`npm view open-claude-proxy` → 404, confirming availability).
### Changes
- `package.json`:
- `"name"`: `openclaw-claude-proxy` → `open-claude-proxy`
- `"bin"` map UNCHANGED: both `openclaw-claude-proxy` and `ocp`
binaries still resolve, preserving back-compat for existing installs
that reference `openclaw-claude-proxy` as a CLI command.
- `setup.mjs`: header JSDoc + start.sh banner string
- `uninstall.mjs`: header JSDoc
### Intentionally NOT changed
- `server.mjs` startup banner (line 1628):
`console.log('openclaw-claude-proxy v...')`. Editing `server.mjs`
requires `cli.js:NNNN` citation per ALIGNMENT.md Rule 1, and a
cosmetic log-string rename has no `cli.js` correspondence. Deferred
— would need an ALIGNMENT.md scope justification PR if pursued.
- `bin/openclaw-claude-proxy` symlink/path: existing installs depend on
this name; kept as a back-compat alias.
### Evidence
```
$ npm view ocp
ocp@0.0.1 | DEPRECATED — squatted by node-ocp
$ npm view open-claude-proxy
404 — available
```
Refs: audit (naming consistency).
Co-authored-by: dtzp555 <dtzp555@gmail.com>
73 lines
2.6 KiB
JavaScript
73 lines
2.6 KiB
JavaScript
#!/usr/bin/env node
|
|
/**
|
|
* OCP (Open Claude Proxy) uninstaller
|
|
*
|
|
* Stops and removes the launchd (macOS) or systemd (Linux) auto-start entry.
|
|
* Handles both legacy (ai.openclaw.proxy / openclaw-proxy) and current
|
|
* (dev.ocp.proxy / ocp-proxy) service names.
|
|
*
|
|
* Run: node uninstall.mjs
|
|
*/
|
|
import { existsSync, unlinkSync } from "node:fs";
|
|
import { execSync } from "node:child_process";
|
|
import { join } from "node:path";
|
|
import { homedir } from "node:os";
|
|
|
|
const HOME = homedir();
|
|
|
|
function log(msg) { console.log(` ✓ ${msg}`); }
|
|
function warn(msg) { console.log(` ⚠ ${msg}`); }
|
|
|
|
console.log("\n🗑 Uninstalling OCP auto-start...\n");
|
|
|
|
const platform = process.platform;
|
|
|
|
if (platform === "darwin") {
|
|
// Remove current service
|
|
const plistPath = join(HOME, "Library", "LaunchAgents", "dev.ocp.proxy.plist");
|
|
if (existsSync(plistPath)) {
|
|
try { execSync(`launchctl bootout gui/$(id -u) "${plistPath}" 2>/dev/null`); } catch { /* ignore */ }
|
|
unlinkSync(plistPath);
|
|
log(`Removed: ${plistPath}`);
|
|
}
|
|
|
|
// Remove legacy service
|
|
const legacyPath = join(HOME, "Library", "LaunchAgents", "ai.openclaw.proxy.plist");
|
|
if (existsSync(legacyPath)) {
|
|
try { execSync(`launchctl bootout gui/$(id -u) "${legacyPath}" 2>/dev/null`); } catch { /* ignore */ }
|
|
unlinkSync(legacyPath);
|
|
log(`Removed legacy: ${legacyPath}`);
|
|
}
|
|
|
|
if (!existsSync(plistPath) && !existsSync(legacyPath)) {
|
|
warn("No plist found (service may not have been installed)");
|
|
}
|
|
|
|
} else if (platform === "linux") {
|
|
// Remove current service
|
|
const servicePath = join(HOME, ".config", "systemd", "user", "ocp-proxy.service");
|
|
try { execSync(`systemctl --user stop ocp-proxy 2>/dev/null`); } catch { /* ignore */ }
|
|
try { execSync(`systemctl --user disable ocp-proxy 2>/dev/null`); } catch { /* ignore */ }
|
|
if (existsSync(servicePath)) {
|
|
unlinkSync(servicePath);
|
|
log(`Removed: ${servicePath}`);
|
|
}
|
|
|
|
// Remove legacy service
|
|
const legacyPath = join(HOME, ".config", "systemd", "user", "openclaw-proxy.service");
|
|
try { execSync(`systemctl --user stop openclaw-proxy 2>/dev/null`); } catch { /* ignore */ }
|
|
try { execSync(`systemctl --user disable openclaw-proxy 2>/dev/null`); } catch { /* ignore */ }
|
|
if (existsSync(legacyPath)) {
|
|
unlinkSync(legacyPath);
|
|
log(`Removed legacy: ${legacyPath}`);
|
|
}
|
|
|
|
try { execSync(`systemctl --user daemon-reload`); } catch { /* ignore */ }
|
|
log("systemd daemon reloaded");
|
|
|
|
} else {
|
|
warn(`Auto-start not supported on ${platform} — nothing to remove`);
|
|
}
|
|
|
|
console.log("\n✅ Auto-start removed — proxy will no longer start on login\n");
|