@everme/cli 0.33.13 → 0.33.14

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.33.13",
3
+ "version": "0.33.14",
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": {
@@ -23,7 +23,7 @@ const MCP_SPEC_PAIRS = [
23
23
  ["'@everme/memory-mcp'", "'@everme/memory-mcp@latest'"],
24
24
  ];
25
25
 
26
- const NPX_PLATFORMS = new Set(["cursor", "claude-desktop", "codex", "opencode"]);
26
+ const NPX_PLATFORMS = new Set(["cursor", "claude-desktop", "codex", "opencode", "kilocode"]);
27
27
 
28
28
  const LIST_TIMEOUT_MS = 15000;
29
29
  const REFRESH_TIMEOUT_MS = 60000;
@@ -131,6 +131,17 @@ function refreshOpenClaw(runner) {
131
131
  });
132
132
  }
133
133
 
134
+ // AstrBot's plugin is embedded in evercli like Hermes's provider; a re-install
135
+ // rewrites data/plugins/astrbot_plugin_everme/ under the detected AstrBot root.
136
+ function refreshAstrBot(binPath, runner) {
137
+ const run = runner || defaultRunner;
138
+ run(binPath, ["plugin", "install", "astrbot"], {
139
+ encoding: "utf8",
140
+ timeout: REFRESH_TIMEOUT_MS,
141
+ stdio: ["ignore", "ignore", "inherit"],
142
+ });
143
+ }
144
+
134
145
  function refreshHermes(binPath, runner) {
135
146
  const run = runner || defaultRunner;
136
147
  run(binPath, ["plugin", "install", "hermes"], {
@@ -225,6 +236,158 @@ function refreshQwenWork(binPath, runner) {
225
236
  });
226
237
  }
227
238
 
239
+ // Qoder CLI runs a staged copy under ~/.qoder/everme (or ~/.qoder-cn/everme),
240
+ // same shape as QwenWork.
241
+ function refreshQoder(binPath, runner) {
242
+ const run = runner || defaultRunner;
243
+ run(npmCommand(), ["install", "-g", "@everme/qoder@latest"], {
244
+ encoding: "utf8",
245
+ timeout: REFRESH_TIMEOUT_MS,
246
+ stdio: ["ignore", "ignore", "inherit"],
247
+ });
248
+ run(binPath, ["plugin", "install", "qoder"], {
249
+ encoding: "utf8",
250
+ timeout: REFRESH_TIMEOUT_MS,
251
+ stdio: ["ignore", "ignore", "inherit"],
252
+ });
253
+ }
254
+
255
+ // Copilot CLI runs a staged copy under ~/.copilot/everme, same shape as
256
+ // QwenWork.
257
+ function refreshCopilotCLI(binPath, runner) {
258
+ const run = runner || defaultRunner;
259
+ run(npmCommand(), ["install", "-g", "@everme/copilot@latest"], {
260
+ encoding: "utf8",
261
+ timeout: REFRESH_TIMEOUT_MS,
262
+ stdio: ["ignore", "ignore", "inherit"],
263
+ });
264
+ run(binPath, ["plugin", "install", "copilot-cli"], {
265
+ encoding: "utf8",
266
+ timeout: REFRESH_TIMEOUT_MS,
267
+ stdio: ["ignore", "ignore", "inherit"],
268
+ });
269
+ }
270
+
271
+ // OpenCode and Kilo Code run a staged copy of @everme/opencode under their
272
+ // config dir, same shape as QwenWork: bump the global package first so the
273
+ // re-stage copies the new code, then let evercli re-point the plugin entry.
274
+ function refreshOpenCodeFamily(platform, binPath, runner) {
275
+ const run = runner || defaultRunner;
276
+ run(npmCommand(), ["install", "-g", "@everme/opencode@latest"], {
277
+ encoding: "utf8",
278
+ timeout: REFRESH_TIMEOUT_MS,
279
+ stdio: ["ignore", "ignore", "inherit"],
280
+ });
281
+ run(binPath, ["plugin", "install", platform], {
282
+ encoding: "utf8",
283
+ timeout: REFRESH_TIMEOUT_MS,
284
+ stdio: ["ignore", "ignore", "inherit"],
285
+ });
286
+ }
287
+
288
+ // Qwen Code runs a staged copy under ~/.qwen/everme (or $QWEN_HOME/everme),
289
+ // same shape as QwenWork.
290
+ function refreshQwenCode(binPath, runner) {
291
+ const run = runner || defaultRunner;
292
+ run(npmCommand(), ["install", "-g", "@everme/qwencode@latest"], {
293
+ encoding: "utf8",
294
+ timeout: REFRESH_TIMEOUT_MS,
295
+ stdio: ["ignore", "ignore", "inherit"],
296
+ });
297
+ run(binPath, ["plugin", "install", "qwencode"], {
298
+ encoding: "utf8",
299
+ timeout: REFRESH_TIMEOUT_MS,
300
+ stdio: ["ignore", "ignore", "inherit"],
301
+ });
302
+ }
303
+
304
+ // Cline CLI loads a staged copy from ~/.cline/plugins/everme: bump the global
305
+ // package first so the re-stage copies the new code.
306
+ function refreshCline(binPath, runner) {
307
+ const run = runner || defaultRunner;
308
+ run(npmCommand(), ["install", "-g", "@everme/cline@latest"], {
309
+ encoding: "utf8",
310
+ timeout: REFRESH_TIMEOUT_MS,
311
+ stdio: ["ignore", "ignore", "inherit"],
312
+ });
313
+ run(binPath, ["plugin", "install", "cline"], {
314
+ encoding: "utf8",
315
+ timeout: REFRESH_TIMEOUT_MS,
316
+ stdio: ["ignore", "ignore", "inherit"],
317
+ });
318
+ }
319
+
320
+ // Grok Build runs a staged copy under <grok-home>/everme, same shape as
321
+ // QwenWork: bump the global package first so the re-stage copies the new code,
322
+ // then let evercli replace the stage and rewrite hooks/everme.json.
323
+ function refreshGrokBuild(binPath, runner) {
324
+ const run = runner || defaultRunner;
325
+ run(npmCommand(), ["install", "-g", "@everme/grok-build@latest"], {
326
+ encoding: "utf8",
327
+ timeout: REFRESH_TIMEOUT_MS,
328
+ stdio: ["ignore", "ignore", "inherit"],
329
+ });
330
+ run(binPath, ["plugin", "install", "grok-build"], {
331
+ encoding: "utf8",
332
+ timeout: REFRESH_TIMEOUT_MS,
333
+ stdio: ["ignore", "ignore", "inherit"],
334
+ });
335
+ }
336
+
337
+ // PicoClaw runs staged copies of two bundles under ~/.picoclaw (the process
338
+ // hook and memory-mcp). Bump both global packages, then re-stage them with
339
+ // `plugin upgrade`, which writes no credential: a re-install would rotate the
340
+ // token for no reason.
341
+ function refreshPicoClaw(binPath, runner) {
342
+ const run = runner || defaultRunner;
343
+ run(npmCommand(), ["install", "-g", "@everme/picoclaw@latest", "@everme/memory-mcp@latest"], {
344
+ encoding: "utf8",
345
+ timeout: REFRESH_TIMEOUT_MS,
346
+ stdio: ["ignore", "ignore", "inherit"],
347
+ });
348
+ run(binPath, ["plugin", "upgrade", "--platform", "picoclaw", "--no-prompt"], {
349
+ encoding: "utf8",
350
+ timeout: REFRESH_TIMEOUT_MS,
351
+ stdio: ["ignore", "ignore", "inherit"],
352
+ });
353
+ }
354
+
355
+ // NanoClaw copies the bundle into every agent group's state volume. `plugin
356
+ // upgrade` re-copies it into the groups that are already wired without
357
+ // touching their credentials (a reinstall would rotate the token), so bump
358
+ // the global package first and then let evercli re-copy it.
359
+ function refreshNanoClaw(binPath, runner) {
360
+ const run = runner || defaultRunner;
361
+ run(npmCommand(), ["install", "-g", "@everme/nanoclaw@latest"], {
362
+ encoding: "utf8",
363
+ timeout: REFRESH_TIMEOUT_MS,
364
+ stdio: ["ignore", "ignore", "inherit"],
365
+ });
366
+ run(binPath, ["plugin", "upgrade", "--platform", "nanoclaw"], {
367
+ encoding: "utf8",
368
+ timeout: REFRESH_TIMEOUT_MS,
369
+ stdio: ["ignore", "ignore", "inherit"],
370
+ });
371
+ }
372
+
373
+ // ZeroClaw runs a staged copy under ~/.zeroclaw/everme, plus a Lucid wrapper
374
+ // and skill evercli generates from it. Bump the global package, then let
375
+ // `plugin upgrade` re-stage it: that path never mints a token or rewrites
376
+ // everme.env, unlike a re-install.
377
+ function refreshZeroclaw(binPath, runner) {
378
+ const run = runner || defaultRunner;
379
+ run(npmCommand(), ["install", "-g", "@everme/zeroclaw@latest"], {
380
+ encoding: "utf8",
381
+ timeout: REFRESH_TIMEOUT_MS,
382
+ stdio: ["ignore", "ignore", "inherit"],
383
+ });
384
+ run(binPath, ["plugin", "upgrade", "--platform", "zeroclaw"], {
385
+ encoding: "utf8",
386
+ timeout: REFRESH_TIMEOUT_MS,
387
+ stdio: ["ignore", "ignore", "inherit"],
388
+ });
389
+ }
390
+
228
391
  // Pi records an unpinned npm source, but installing it again is not its update
229
392
  // contract. Use Pi's package-specific update command so the registered package
230
393
  // moves to the latest npm version without rewriting EverMe credentials.
@@ -237,9 +400,43 @@ function refreshPi(runner) {
237
400
  });
238
401
  }
239
402
 
403
+ // oh-my-pi installs npm plugins with bun into ~/.omp/plugins; installing the
404
+ // same unpinned name again moves it to the latest version.
405
+ function refreshOmp(runner) {
406
+ const run = runner || defaultRunner;
407
+ run("omp", ["plugin", "install", "@everme/pi"], {
408
+ encoding: "utf8",
409
+ timeout: PI_REFRESH_TIMEOUT_MS,
410
+ stdio: ["ignore", "ignore", "inherit"],
411
+ });
412
+ }
413
+
414
+ // LobsterAI's plugin dir is written by evercli with the app's bundled
415
+ // OpenClaw; `plugin upgrade` reinstalls the latest published bundle there and
416
+ // leaves the credentials in LobsterAI's openclaw.json alone.
417
+ function refreshLobsterAI(binPath, runner) {
418
+ const run = runner || defaultRunner;
419
+ run(binPath, ["plugin", "upgrade", "--platform", "lobsterai"], {
420
+ encoding: "utf8",
421
+ timeout: REFRESH_TIMEOUT_MS,
422
+ stdio: ["ignore", "ignore", "inherit"],
423
+ });
424
+ }
425
+
240
426
  // Raven's Python backend is embedded in the evercli binary, so the freshly
241
427
  // downloaded binary is the new payload — re-running install is what
242
428
  // rewrites ~/.raven/plugins/everme-memory/. Nothing to bump on npm.
429
+ // CowAgent's plugin is embedded in evercli. `plugin upgrade` rewrites the
430
+ // code files only, so the owner's everme.env and config.json stay as they are.
431
+ function refreshCowAgent(binPath, runner) {
432
+ const run = runner || defaultRunner;
433
+ run(binPath, ["plugin", "upgrade", "--platform", "cowagent"], {
434
+ encoding: "utf8",
435
+ timeout: REFRESH_TIMEOUT_MS,
436
+ stdio: ["ignore", "ignore", "inherit"],
437
+ });
438
+ }
439
+
243
440
  function refreshRaven(binPath, runner) {
244
441
  const run = runner || defaultRunner;
245
442
  run(binPath, ["plugin", "install", "raven"], {
@@ -249,6 +446,18 @@ function refreshRaven(binPath, runner) {
249
446
  });
250
447
  }
251
448
 
449
+ // nanobot's package ships inside the evercli binary, like raven's, but it
450
+ // has a payload-only refresh: `plugin upgrade --platform nanobot` rewrites the
451
+ // package in the site-packages recorded at install and keeps the token.
452
+ function refreshNanobot(binPath, runner) {
453
+ const run = runner || defaultRunner;
454
+ run(binPath, ["plugin", "upgrade", "--platform", "nanobot", "--no-prompt"], {
455
+ encoding: "utf8",
456
+ timeout: REFRESH_TIMEOUT_MS,
457
+ stdio: ["ignore", "ignore", "inherit"],
458
+ });
459
+ }
460
+
252
461
  function refreshDSH(binPath, runner) {
253
462
  const run = runner || defaultRunner;
254
463
  run(binPath, ["plugin", "install", "dsh"], {
@@ -314,8 +523,14 @@ function refreshPlugins(opts) {
314
523
  refreshOpenClaw(runner);
315
524
  } else if (h.platform === "hermes") {
316
525
  refreshHermes(binPath, runner);
526
+ } else if (h.platform === "astrbot") {
527
+ refreshAstrBot(binPath, runner);
528
+ log("[@everme/cli] astrbot: plugin re-staged — restart AstrBot or reload astrbot_plugin_everme in the WebUI");
317
529
  } else if (h.platform === "raven") {
318
530
  refreshRaven(binPath, runner);
531
+ } else if (h.platform === "nanobot") {
532
+ refreshNanobot(binPath, runner);
533
+ log("[@everme/cli] nanobot: package refreshed — restart nanobot to load it");
319
534
  } else if (h.platform === "dsh") {
320
535
  if (shouldRefreshDSH(h)) {
321
536
  refreshDSH(binPath, runner);
@@ -329,9 +544,44 @@ function refreshPlugins(opts) {
329
544
  refreshMinimaxCode(binPath, runner);
330
545
  } else if (h.platform === "pi") {
331
546
  refreshPi(runner);
547
+ } else if (h.platform === "omp") {
548
+ refreshOmp(runner);
549
+ } else if (h.platform === "lobsterai") {
550
+ refreshLobsterAI(binPath, runner);
551
+ log("[@everme/cli] lobsterai: plugin reinstalled — restart LobsterAI so its gateway loads it");
552
+ } else if (h.platform === "picoclaw") {
553
+ refreshPicoClaw(binPath, runner);
554
+ log("[@everme/cli] picoclaw: hook re-staged — restart the PicoClaw gateway so it starts the new hook process");
332
555
  } else if (h.platform === "qwenwork") {
333
556
  refreshQwenWork(binPath, runner);
334
557
  log("[@everme/cli] qwenwork: hooks re-staged — restart QwenWork so it re-reads settings.json");
558
+ } else if (h.platform === "qoder") {
559
+ refreshQoder(binPath, runner);
560
+ log("[@everme/cli] qoder: hooks re-staged — start a new Qoder CLI session to load them");
561
+ } else if (h.platform === "copilot-cli") {
562
+ refreshCopilotCLI(binPath, runner);
563
+ log("[@everme/cli] copilot-cli: hooks re-staged — start a new Copilot CLI session to load them");
564
+ } else if (h.platform === "opencode" || h.platform === "kilocode") {
565
+ refreshOpenCodeFamily(h.platform, binPath, runner);
566
+ log(`[@everme/cli] ${h.platform}: plugin re-staged — restart the host to load it`);
567
+ } else if (h.platform === "qwencode") {
568
+ refreshQwenCode(binPath, runner);
569
+ log("[@everme/cli] qwencode: hooks re-staged — start a new Qwen Code session to load them");
570
+ } else if (h.platform === "cline") {
571
+ refreshCline(binPath, runner);
572
+ log("[@everme/cli] cline: plugin re-staged — start a new Cline CLI session to load it");
573
+ } else if (h.platform === "grok-build") {
574
+ refreshGrokBuild(binPath, runner);
575
+ log("[@everme/cli] grok-build: hook re-staged — start a new grok session to load it");
576
+ } else if (h.platform === "cowagent") {
577
+ refreshCowAgent(binPath, runner);
578
+ log("[@everme/cli] cowagent: plugin code refreshed — restart CowAgent to load it");
579
+ } else if (h.platform === "nanoclaw") {
580
+ refreshNanoClaw(binPath, runner);
581
+ log("[@everme/cli] nanoclaw: bundle re-copied — restart the agent groups (`ncl groups restart --id <id>`) so their containers load it");
582
+ } else if (h.platform === "zeroclaw") {
583
+ refreshZeroclaw(binPath, runner);
584
+ log("[@everme/cli] zeroclaw: bridge re-staged — start a new ZeroClaw session or run `zeroclaw service restart`");
335
585
  } else if (h.platform === "workbuddy") {
336
586
  refreshWorkBuddy(binPath, runner);
337
587
  log("[@everme/cli] workbuddy: hooks re-staged — quit WorkBuddy completely (Cmd+Q) and reopen it so the engine re-reads settings.json");
@@ -358,7 +608,15 @@ function logUnconnectedHosts(hosts, log) {
358
608
  module.exports = {
359
609
  NPX_PLATFORMS,
360
610
  refreshQwenWork,
611
+ refreshQoder,
612
+ refreshCopilotCLI,
613
+ refreshOpenCodeFamily,
614
+ refreshQwenCode,
615
+ refreshCline,
616
+ refreshNanoClaw,
361
617
  refreshWorkBuddy,
618
+ refreshGrokBuild,
619
+ refreshZeroclaw,
362
620
  LIST_TIMEOUT_MS,
363
621
  REFRESH_TIMEOUT_MS,
364
622
  DSH_REFRESH_TIMEOUT_MS,
@@ -370,10 +628,16 @@ module.exports = {
370
628
  refreshCodex,
371
629
  refreshOpenClaw,
372
630
  refreshHermes,
631
+ refreshAstrBot,
373
632
  refreshKimicode,
374
633
  refreshMinimaxCode,
375
634
  refreshPi,
635
+ refreshOmp,
636
+ refreshLobsterAI,
637
+ refreshPicoClaw,
376
638
  refreshRaven,
639
+ refreshNanobot,
640
+ refreshCowAgent,
377
641
  refreshDSH,
378
642
  shouldRefreshDSH,
379
643
  skipReason,
package/sha256sums.txt CHANGED
@@ -1,6 +1,6 @@
1
- e12f426d7c5d7a9030814bbd8fb3b4bdf70574a5326c5bff13a995151b4963d7 evercli_darwin_amd64.tar.gz
2
- 0ec7f28552264e2d31aea662796d617fb9ff650773f5c3aab397f72673ceef13 evercli_darwin_arm64.tar.gz
3
- 7e6e795955679856cf6de3ce267618d020c0eb40e520c2efadcd2cf841a09ae0 evercli_linux_amd64.tar.gz
4
- 73b93bed6e877ee7609276934dc14698c9b55a980ad21f71c02773017a912db8 evercli_linux_arm64.tar.gz
5
- af34139511f0632f509b2722a779e1df9d54a67c9714aaa3ac54e89cfa3cfa46 evercli_windows_amd64.zip
6
- a02d9f3bacbeb804d570c06e2de04bcfd9656790514c75248279fefb9249dcbe evercli_windows_arm64.zip
1
+ bceb72c3fe351dc027a1138f586b2a960e502b64001750fd6b8d3c04d8763c1e evercli_darwin_amd64.tar.gz
2
+ fc1a75acfbbba44f20f7ed21bc3aaab8196dd78cb1f8fe61a1f17b31067de12d evercli_darwin_arm64.tar.gz
3
+ cfba5d64f3e0cdb0a92c48c63198258d9e0d8c98b2834f764c509fd2e8a8c9ad evercli_linux_amd64.tar.gz
4
+ 96b2dbdaee543c5c753e46f78c82be2004a656aff1478c508dcfd2940098337e evercli_linux_arm64.tar.gz
5
+ a35e0416b77329fffef7386281b7d06c7c1c34d0a2777cece5ab8cb76e417d04 evercli_windows_amd64.zip
6
+ 3344781d7eb0e6f08da8e17ee5b380caf7eb35f3537fecae5cb555c7bc0e6ef7 evercli_windows_arm64.zip