@everme/cli 0.28.0 → 0.29.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@everme/cli",
3
- "version": "0.28.0",
3
+ "version": "0.29.0",
4
4
  "description": "EverMe CLI — npm wrapper that downloads and runs the platform-native evercli binary on first use.",
5
5
  "license": "Apache-2.0",
6
6
  "bin": {
@@ -96,9 +96,10 @@ function patchNpxSpec(configPath) {
96
96
  // are required: `evercli plugin install claude-code` reuses an already-present
97
97
  // global npm package without upgrading it (pluginSourceSpec short-circuits on
98
98
  // the existing `npm root -g` path), so the @latest bump must happen first; the
99
- // re-install then runs `claude plugin marketplace add` + `claude plugin install`
100
- // so Claude Code actually loads the fresh hooks/commands/MCP. Step 2 rotates the
101
- // local agent token (per-(platform, fingerprint) — other devices unaffected).
99
+ // re-install then runs marketplace add-or-update + plugin install-or-update so
100
+ // Claude Code actually loads the fresh hooks/commands/MCP, and asserts the
101
+ // cached version matches the payload. Step 2 rotates the local agent token
102
+ // (per-(platform, fingerprint) — other devices unaffected).
102
103
  function refreshClaudeCode(binPath, runner) {
103
104
  const run = runner || defaultRunner;
104
105
  run(npmCommand(), ["install", "-g", "@everme/claude-code@latest"], {
@@ -137,6 +138,52 @@ function refreshHermes(binPath, runner) {
137
138
  });
138
139
  }
139
140
 
141
+ // Codex needs BOTH refresh paths and used to get only the npx one: its
142
+ // memory-mcp spec lives in config.toml (patchNpxSpec), but its hook bundle
143
+ // ships through the marketplace cache, which Codex refreshes only when a
144
+ // `marketplace upgrade` runs against a changed manifest version. That
145
+ // upgrade lives inside `evercli plugin install codex`, so without this the
146
+ // hooks stayed pinned to whatever version first installed them.
147
+ function refreshCodex(binPath, runner) {
148
+ const run = runner || defaultRunner;
149
+ run(binPath, ["plugin", "install", "codex"], {
150
+ encoding: "utf8",
151
+ timeout: REFRESH_TIMEOUT_MS,
152
+ stdio: ["ignore", "ignore", "inherit"],
153
+ });
154
+ }
155
+
156
+ // Kimi Code mirrors claude-code's npm-first shape: evercli stages the
157
+ // bundle from the global npm package and short-circuits on an existing
158
+ // directory, so the @latest bump must happen first. Registration is the
159
+ // one step evercli cannot do headlessly (`/plugins install` is TUI-only),
160
+ // so the staged bundle only reaches Kimi Code after the user re-registers.
161
+ function refreshKimicode(binPath, runner) {
162
+ const run = runner || defaultRunner;
163
+ run(npmCommand(), ["install", "-g", "@everme/kimicode@latest"], {
164
+ encoding: "utf8",
165
+ timeout: REFRESH_TIMEOUT_MS,
166
+ stdio: ["ignore", "ignore", "inherit"],
167
+ });
168
+ run(binPath, ["plugin", "install", "kimicode"], {
169
+ encoding: "utf8",
170
+ timeout: REFRESH_TIMEOUT_MS,
171
+ stdio: ["ignore", "ignore", "inherit"],
172
+ });
173
+ }
174
+
175
+ // Raven's Python backend is embedded in the evercli binary, so the freshly
176
+ // downloaded binary is the new payload — re-running install is what
177
+ // rewrites ~/.raven/plugins/everme-memory/. Nothing to bump on npm.
178
+ function refreshRaven(binPath, runner) {
179
+ const run = runner || defaultRunner;
180
+ run(binPath, ["plugin", "install", "raven"], {
181
+ encoding: "utf8",
182
+ timeout: REFRESH_TIMEOUT_MS,
183
+ stdio: ["ignore", "ignore", "inherit"],
184
+ });
185
+ }
186
+
140
187
  function skipReason(env) {
141
188
  if (env.EVERME_SKIP_PLUGIN_UPGRADE) return "EVERME_SKIP_PLUGIN_UPGRADE is set";
142
189
  if (env.CI) return "CI environment";
@@ -166,19 +213,28 @@ function refreshPlugins(opts) {
166
213
  return;
167
214
  }
168
215
 
216
+ // The npx patch and the plugin refresh are not alternatives: codex needs
217
+ // both (npx spec in config.toml + marketplace-shipped hook bundle), so
218
+ // the two dispatches run in sequence rather than as one if/else chain.
169
219
  for (const h of hosts) {
170
220
  if (!h || h.hasEverMeEntry !== true) continue;
171
221
  try {
172
- if (NPX_PLATFORMS.has(h.platform)) {
173
- if (h.configPath && patchNpxSpec(h.configPath)) {
174
- log(`[@everme/cli] ${h.platform}: pinned memory-mcp to @latest`);
175
- }
176
- } else if (h.platform === "claude-code") {
222
+ if (NPX_PLATFORMS.has(h.platform) && h.configPath && patchNpxSpec(h.configPath)) {
223
+ log(`[@everme/cli] ${h.platform}: pinned memory-mcp to @latest`);
224
+ }
225
+ if (h.platform === "claude-code") {
177
226
  refreshClaudeCode(binPath, runner);
227
+ } else if (h.platform === "codex") {
228
+ refreshCodex(binPath, runner);
178
229
  } else if (h.platform === "openclaw") {
179
230
  refreshOpenClaw(runner);
180
231
  } else if (h.platform === "hermes") {
181
232
  refreshHermes(binPath, runner);
233
+ } else if (h.platform === "raven") {
234
+ refreshRaven(binPath, runner);
235
+ } else if (h.platform === "kimicode") {
236
+ refreshKimicode(binPath, runner);
237
+ log("[@everme/cli] kimicode: bundle staged — run `/plugins install ~/.kimi-code/everme` in the Kimi Code TUI to load it");
182
238
  }
183
239
  } catch (e) {
184
240
  log(`[@everme/cli] ${h.platform}: refresh failed (continuing): ${e.message}`);
@@ -207,8 +263,11 @@ module.exports = {
207
263
  discoverHosts,
208
264
  patchNpxSpec,
209
265
  refreshClaudeCode,
266
+ refreshCodex,
210
267
  refreshOpenClaw,
211
268
  refreshHermes,
269
+ refreshKimicode,
270
+ refreshRaven,
212
271
  skipReason,
213
272
  refreshPlugins,
214
273
  logUnconnectedHosts,
package/sha256sums.txt CHANGED
@@ -1,6 +1,6 @@
1
- f6b059faa04db0626f9c374fefa6492d6388aa3211ffbd60b87eef1643373338 evercli_darwin_amd64.tar.gz
2
- 9a311af3f73822d5df13bbb08ba997d39cb1a30018d7f8633ebf2cd636f0cf5d evercli_darwin_arm64.tar.gz
3
- af867586b9473fb4fc1d65e6f6d95b63669510020e5662b72905500cc0f149d6 evercli_linux_amd64.tar.gz
4
- bdcb79d73447293aab33f40a160ccd883fc028ffb68f732b4826e405c527c227 evercli_linux_arm64.tar.gz
5
- afd3a516b041054a4678b7c467aa45653396f7874cf4f6a2aac967774e5343fe evercli_windows_amd64.zip
6
- 7565d21ef444bb550aafbb7a0446a653d802e919f62be78055fc6e9f0a9e5a17 evercli_windows_arm64.zip
1
+ 8baf8fae3ba2fb76affbd243d7c8fd6d3cddb905f9f55201a7168793153eeae7 evercli_darwin_amd64.tar.gz
2
+ 973ee6c170867fd03f1b1d4c93e25fe389b46d531056d0a591f0bbfad35713cb evercli_darwin_arm64.tar.gz
3
+ c2d9ad36fdc9fa0210febbc62409172b90e563ee58de97bee2ea52b96296a2b9 evercli_linux_amd64.tar.gz
4
+ 09ba0fe90824ff94aef6da1f1a83151b1bd487edaaadd0cbbf2f18b2c5e11d4d evercli_linux_arm64.tar.gz
5
+ 93373d46dc554bb5bd3076de108bcde505d624d689a995ff1092f7a3951c3d67 evercli_windows_amd64.zip
6
+ f18f2313f1b2b27f3e02fb3524381e27695f4c3ba4b492453aec31e4ad78ba84 evercli_windows_arm64.zip