@memfork/cli 0.1.1 → 0.1.2

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/dist/cli.js CHANGED
@@ -21,7 +21,7 @@
21
21
  import { Command } from "commander";
22
22
  import chalk from "chalk";
23
23
  import { cmdInit } from "./commands/init.js";
24
- import { cmdDoctor } from "./commands/doctor.js";
24
+ import { cmdDoctor, cmdDoctorEnv } from "./commands/doctor.js";
25
25
  import { cmdInstall } from "./commands/install.js";
26
26
  import { cmdStatus, cmdLog, cmdRecall, cmdCommit, cmdMerge, cmdProposals, cmdUi, cmdShow, cmdDiff, cmdDelegates, cmdGrant, cmdGrantMemwal, cmdRevoke, cmdBranch, cmdCheckout, } from "./commands/ops.js";
27
27
  import { cmdJoin } from "./commands/join.js";
@@ -39,7 +39,8 @@ program
39
39
  program
40
40
  .command("doctor")
41
41
  .description("verify config, credentials, Sui connection, and MemWal")
42
- .action(wrap(cmdDoctor));
42
+ .option("--env", "print MEMFORK_* env vars ready to paste into .env.local")
43
+ .action(wrap((opts) => opts.env ? cmdDoctorEnv() : cmdDoctor()));
43
44
  program
44
45
  .command("join")
45
46
  .description("onboard to an existing tree (team member setup)")
@@ -9,4 +9,5 @@
9
9
  * ✓ / ✗ Signer address matches tree owner (or has delegate)
10
10
  * ✓ / ✗ MemWal account reachable
11
11
  */
12
+ export declare function cmdDoctorEnv(): Promise<void>;
12
13
  export declare function cmdDoctor(): Promise<void>;
@@ -22,6 +22,31 @@ function printCheck(c) {
22
22
  console.log(` ${chalk.cyan("→")} ${c.fix}`);
23
23
  }
24
24
  }
25
+ export async function cmdDoctorEnv() {
26
+ let cfg;
27
+ try {
28
+ cfg = resolveConfig();
29
+ }
30
+ catch (e) {
31
+ console.error(chalk.red("✗ Could not resolve config: " + e.message));
32
+ console.error(chalk.dim(" Run `memfork init` first."));
33
+ process.exit(1);
34
+ }
35
+ console.log("");
36
+ console.log(chalk.dim("# MemForks environment variables — paste into .env.local"));
37
+ console.log(chalk.yellow("# Keep these private. Do not commit or share this output."));
38
+ console.log("");
39
+ console.log(`MEMFORK_TREE_ID=${cfg.treeId}`);
40
+ console.log(`MEMFORK_PRIVATE_KEY=${cfg.privateKey}`);
41
+ console.log(`MEMFORK_MEMWAL_ACCOUNT=${cfg.memwalAccountId}`);
42
+ console.log(`MEMFORK_MEMWAL_KEY=${cfg.memwalKey}`);
43
+ console.log(`MEMFORK_NETWORK=${cfg.network}`);
44
+ if (cfg.rpcUrl)
45
+ console.log(`MEMFORK_RPC_URL=${cfg.rpcUrl}`);
46
+ if (cfg.packageId)
47
+ console.log(`MEMFORK_PACKAGE_ID=${cfg.packageId}`);
48
+ console.log("");
49
+ }
25
50
  export async function cmdDoctor() {
26
51
  console.log("");
27
52
  console.log(chalk.bold("memfork doctor"));
@@ -21,7 +21,8 @@ import path from "node:path";
21
21
  import { fileURLToPath } from "node:url";
22
22
  import { readCredentials, readProjectConfig, MEMWAL_CONSTANTS } from "../config.js";
23
23
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
24
- const PLUGIN_ROOT = path.resolve(__dirname, "..", "..", "..", "plugins");
24
+ // dist/commands/install.js packages/cli packages repo root → plugins/
25
+ const PLUGIN_ROOT = path.resolve(__dirname, "..", "..", "..", "..", "plugins");
25
26
  function ok(s) { return chalk.green("✓") + " " + s; }
26
27
  function warn(s) { return chalk.yellow("⚠") + " " + s; }
27
28
  function tip(s) { return chalk.cyan("→") + " " + s; }
@@ -165,7 +165,7 @@ export async function cmdUi(opts = {}) {
165
165
  const appDir = findAppDir();
166
166
  if (!appDir) {
167
167
  console.log(chalk.yellow("Could not find the MemForks app directory."));
168
- console.log(chalk.dim("Build the app manually: cd app && npm run build"));
168
+ console.log(chalk.dim("Build the app manually: cd apps/visualizer && npm run build"));
169
169
  return;
170
170
  }
171
171
  const distDir = path.join(appDir, "dist");
@@ -427,9 +427,10 @@ function extractFacts(response) {
427
427
  }
428
428
  // ─── Helpers ──────────────────────────────────────────────────────────────────
429
429
  function findAppDir() {
430
+ // dist/commands/ops.js → packages/cli → packages → repo root → apps/visualizer
430
431
  const candidates = [
431
- new URL("../../../app", import.meta.url).pathname,
432
- new URL("../../../../app", import.meta.url).pathname,
432
+ new URL("../../../../apps/visualizer", import.meta.url).pathname,
433
+ new URL("../../../../../apps/visualizer", import.meta.url).pathname,
433
434
  ];
434
435
  for (const c of candidates) {
435
436
  try {
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * `memfork ui` — local HTTP server.
3
3
  *
4
- * Serves the pre-built React app from app/dist/ as static files and
4
+ * Serves the pre-built React app from apps/visualizer/dist/ as static files and
5
5
  * exposes two API routes so the React app can discover the current tree
6
6
  * config and recall MemWal facts without exposing credentials in the
7
7
  * browser bundle.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * `memfork ui` — local HTTP server.
3
3
  *
4
- * Serves the pre-built React app from app/dist/ as static files and
4
+ * Serves the pre-built React app from apps/visualizer/dist/ as static files and
5
5
  * exposes two API routes so the React app can discover the current tree
6
6
  * config and recall MemWal facts without exposing credentials in the
7
7
  * browser bundle.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memfork/cli",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "MemForks CLI — init, commit, recall, merge, install plugins",
5
5
  "type": "module",
6
6
  "bin": {