@everme/cli 0.33.12 → 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 +1 -1
- package/scripts/upgrade-plugins.js +265 -1
- package/sha256sums.txt +6 -6
package/package.json
CHANGED
|
@@ -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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|