@mnemonik/cli 7.104.10 → 7.104.12

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.
Files changed (48) hide show
  1. package/dist/digests.json +46 -46
  2. package/dist/humanReason.d.ts +2 -0
  3. package/dist/humanReason.d.ts.map +1 -1
  4. package/dist/humanReason.js +18 -3
  5. package/dist/humanReason.js.map +1 -1
  6. package/dist/install/journal.d.ts +0 -1
  7. package/dist/install/journal.d.ts.map +1 -1
  8. package/dist/install/journal.js.map +1 -1
  9. package/dist/install/journey.d.ts +3 -0
  10. package/dist/install/journey.d.ts.map +1 -1
  11. package/dist/install/journey.js +57 -38
  12. package/dist/install/journey.js.map +1 -1
  13. package/dist/install/transaction.d.ts.map +1 -1
  14. package/dist/install/transaction.js +2 -6
  15. package/dist/install/transaction.js.map +1 -1
  16. package/dist/preflight.js +2 -3
  17. package/dist/project/eligibility.d.ts +0 -1
  18. package/dist/project/eligibility.d.ts.map +1 -1
  19. package/dist/project/eligibility.js +9 -6
  20. package/dist/project/eligibility.js.map +1 -1
  21. package/dist/project.d.ts +4 -1
  22. package/dist/project.d.ts.map +1 -1
  23. package/dist/project.js +109 -58
  24. package/dist/project.js.map +1 -1
  25. package/dist/router.d.ts +1 -0
  26. package/dist/router.d.ts.map +1 -1
  27. package/dist/router.js +18 -10
  28. package/dist/router.js.map +1 -1
  29. package/dist/runtime/signers.js +2 -3
  30. package/dist/sbom.json +21 -21
  31. package/dist/scanner/discover.d.ts +2 -1
  32. package/dist/scanner/discover.d.ts.map +1 -1
  33. package/dist/scanner/discover.js +8 -12
  34. package/dist/scanner/discover.js.map +1 -1
  35. package/dist/scanner/enable.d.ts +1 -1
  36. package/dist/scanner/enable.d.ts.map +1 -1
  37. package/dist/scanner/enable.js +14 -9
  38. package/dist/scanner/enable.js.map +1 -1
  39. package/dist/scanner/picker.d.ts +1 -2
  40. package/dist/scanner/picker.d.ts.map +1 -1
  41. package/dist/scanner/picker.js +11 -34
  42. package/dist/scanner/picker.js.map +1 -1
  43. package/dist/scanner-release.json +21 -21
  44. package/dist/status.d.ts.map +1 -1
  45. package/dist/status.js +0 -1
  46. package/dist/status.js.map +1 -1
  47. package/dist/vendor/local-setup.js +7 -25
  48. package/package.json +31 -31
package/dist/project.js CHANGED
@@ -946,9 +946,8 @@ function withBase(repository, root, nested) {
946
946
  return { root, repository, nested };
947
947
  }
948
948
  async function resolveProjectIdentity(cwd, options = {}) {
949
- const repository = await resolveRepositoryRoot(cwd);
950
- if (repository.kind === "git_unavailable")
951
- return repository;
949
+ const resolved = await resolveRepositoryRoot(cwd);
950
+ const repository = resolved.kind === "git_unavailable" ? { kind: "plain", root: resolve2(cwd) } : resolved;
952
951
  if (repository.kind === "plain") {
953
952
  const { root, result } = options.selectedRoot ? { root: repository.root, result: await readIdentityFile(repository.root, options) } : await readPlainIdentity(repository.root);
954
953
  const base2 = withBase(repository, root, []);
@@ -2632,7 +2631,7 @@ var require_proper_lockfile = __commonJS({
2632
2631
  });
2633
2632
 
2634
2633
  // packages/cli/src/project.ts
2635
- import { humanReason, humanProjectAction } from "./humanReason.js";
2634
+ import { humanReason, projectActionSentence } from "./humanReason.js";
2636
2635
  import { createCliCredentials } from "./auth/credentials.js";
2637
2636
  import { createInterface } from "node:readline";
2638
2637
  import { execFile as execFile3 } from "node:child_process";
@@ -7022,12 +7021,6 @@ var step = (beforeHash) => ({
7022
7021
  beforeHash,
7023
7022
  afterHash: null
7024
7023
  });
7025
- var nonGitSelectionRequired = () => ({
7026
- status: "ACTION_REQUIRED",
7027
- state: "non_git_selection_required",
7028
- allowedActions: ["select_non_git", "cancel"],
7029
- manualAction: "mnemonik project init <path>"
7030
- });
7031
7024
  var recordedCandidate = (remote, root, state) => ({
7032
7025
  status: "project_setup_required",
7033
7026
  state,
@@ -7046,17 +7039,6 @@ function createProjectSetupExecutor(deps) {
7046
7039
  return actionRequired(resolution.kind);
7047
7040
  const root = await realpath(resolution.root);
7048
7041
  const path = recordPath(root, deps.stateDir);
7049
- if (resolution.repository.kind === "plain" && !options.nonGitSelected) {
7050
- const prior = await readBytes(path);
7051
- if (!prior)
7052
- return nonGitSelectionRequired();
7053
- try {
7054
- if (JSON.parse(prior.toString()).nonGitSelected !== true)
7055
- return nonGitSelectionRequired();
7056
- } catch {
7057
- return actionRequired("record_invalid");
7058
- }
7059
- }
7060
7042
  return withLock(path, deps.waitMs ?? 6e4, async (assertOwned) => {
7061
7043
  const fresh = await deps.resolver.resolveProjectIdentity(options.cwd, options);
7062
7044
  if (fresh.kind !== "ok" && fresh.kind !== "absent")
@@ -7074,7 +7056,6 @@ function createProjectSetupExecutor(deps) {
7074
7056
  root,
7075
7057
  scopeKey: hash2(deps.scopeKey),
7076
7058
  owner: options.owner,
7077
- ...resolution.kind !== "git_unavailable" && resolution.repository.kind === "plain" && options.nonGitSelected ? { nonGitSelected: true } : {},
7078
7059
  ...options.intent ? { intent: options.intent } : {},
7079
7060
  before: {
7080
7061
  base64: bytes && bytes.length <= MAX_ORIGINAL_BYTES ? bytes.toString("base64") : null,
@@ -7090,7 +7071,7 @@ function createProjectSetupExecutor(deps) {
7090
7071
  } catch {
7091
7072
  return actionRequired("record_invalid");
7092
7073
  }
7093
- if (!record || record.schemaVersion !== 1 || record.root !== root || !record.operationId || !record.before || record.before.base64 !== null && typeof record.before.base64 !== "string" || record.staged && typeof record.staged.content !== "string" || !record.steps?.identity || !record.steps?.remote || !record.steps?.rollback || record.ignored !== void 0 && (!record.ignored || typeof record.ignored !== "object" || record.ignored.identityHash !== null && typeof record.ignored.identityHash !== "string" || typeof record.ignored.responseHash !== "string") || record.nonGitSelected !== void 0 && record.nonGitSelected !== true || record.intent !== void 0 && (record.intent.action !== "link" || typeof record.intent.projectId !== "string" || record.intent.replace !== void 0 && record.intent.replace !== true))
7074
+ if (!record || record.schemaVersion !== 1 || record.root !== root || !record.operationId || !record.before || record.before.base64 !== null && typeof record.before.base64 !== "string" || record.staged && typeof record.staged.content !== "string" || !record.steps?.identity || !record.steps?.remote || !record.steps?.rollback || record.ignored !== void 0 && (!record.ignored || typeof record.ignored !== "object" || record.ignored.identityHash !== null && typeof record.ignored.identityHash !== "string" || typeof record.ignored.responseHash !== "string") || record.intent !== void 0 && (record.intent.action !== "link" || typeof record.intent.projectId !== "string" || record.intent.replace !== void 0 && record.intent.replace !== true))
7094
7075
  return actionRequired("record_invalid");
7095
7076
  if (record.before.base64 !== null && record.before.hash !== hash2(Buffer.from(record.before.base64, "base64")) || record.before.base64 !== null && Buffer.from(record.before.base64, "base64").length > MAX_ORIGINAL_BYTES || record.staged && hash2(record.staged.content) !== record.staged.hash || record.remote && hash2(JSON.stringify(record.remote)) !== record.steps.remote.afterHash)
7096
7077
  return actionRequired("record_invalid");
@@ -7098,7 +7079,8 @@ function createProjectSetupExecutor(deps) {
7098
7079
  record = freshRecord();
7099
7080
  recordIsNew = true;
7100
7081
  }
7101
- if (record.scopeKey !== hash2(deps.scopeKey) || options.owner !== void 0 && JSON.stringify(record.owner) !== JSON.stringify(options.owner) || JSON.stringify(record.intent) !== JSON.stringify(options.intent)) {
7082
+ const settled = record.steps.identity.complete && !record.steps.rollback.started && resolution.kind === "ok" && resolution.identity.projectId === record.remote?.projectId && (!options.intent || options.intent.projectId === record.remote?.projectId);
7083
+ if (record.scopeKey !== hash2(deps.scopeKey) || options.owner !== void 0 && JSON.stringify(record.owner) !== JSON.stringify(options.owner) || !settled && JSON.stringify(record.intent) !== JSON.stringify(options.intent)) {
7102
7084
  const replaceable = !record.remote && !record.staged && !record.steps.remote.started && !record.steps.identity.started && !record.steps.rollback.started && diskHash === record.before.hash;
7103
7085
  if (replaceable) {
7104
7086
  record = freshRecord();
@@ -7116,9 +7098,6 @@ function createProjectSetupExecutor(deps) {
7116
7098
  return actionRequired("record_missing");
7117
7099
  record = freshRecord();
7118
7100
  }
7119
- if (resolution.repository.kind === "plain" && record.nonGitSelected !== true) {
7120
- return nonGitSelectionRequired();
7121
- }
7122
7101
  if (options.intent && resolution.kind === "ok" && resolution.identity.projectId !== options.intent.projectId && !options.intent.replace)
7123
7102
  return {
7124
7103
  status: "ACTION_REQUIRED",
@@ -7221,9 +7200,10 @@ function createProjectSetupExecutor(deps) {
7221
7200
  record.evidence = evidence;
7222
7201
  await save();
7223
7202
  const identity = resolution.kind === "ok" ? resolution.identity : null;
7203
+ const linkProjectId = options.intent?.projectId ?? identity?.projectId;
7224
7204
  const issued = await deps.transport.issueSetupRequest({
7225
7205
  ...evidence,
7226
- ...options.intent ? { projectId: options.intent.projectId } : identity ? { projectId: identity.projectId } : {}
7206
+ ...linkProjectId ? { projectId: linkProjectId } : {}
7227
7207
  });
7228
7208
  if (issued.status !== "complete") {
7229
7209
  const handled = await handleAccessResponse(issued);
@@ -7235,12 +7215,12 @@ function createProjectSetupExecutor(deps) {
7235
7215
  let outcome = "linked";
7236
7216
  if (issued.status === "complete")
7237
7217
  remote2 = issued;
7238
- else if (options.intent && issued.state === "confirmation_required" && issued.requestId && issued.allowedActions.includes("link")) {
7218
+ else if (linkProjectId && issued.state === "confirmation_required" && issued.requestId && issued.allowedActions.includes("link")) {
7239
7219
  remote2 = await deps.transport.consumeSetupRequest({
7240
7220
  ...evidence,
7241
7221
  requestId: issued.requestId,
7242
7222
  action: "link",
7243
- projectId: options.intent.projectId
7223
+ projectId: linkProjectId
7244
7224
  });
7245
7225
  if (remote2.status === "ACTION_REQUIRED")
7246
7226
  return remote2;
@@ -7325,13 +7305,81 @@ import {
7325
7305
  saveCommandRecord
7326
7306
  } from "./project/records.js";
7327
7307
  async function ensureProjectRoot(root, executor) {
7328
- const resolution = await executor.resolveProjectIdentity(root);
7329
- return executor.ensureProject({
7330
- cwd: root,
7331
- allowCreate: true,
7332
- allowNestedInherit: false,
7333
- ...resolution.kind !== "git_unavailable" && resolution.repository.kind === "plain" ? { nonGitSelected: true } : {}
7334
- });
7308
+ return executor.ensureProject({ cwd: root, allowCreate: true, allowNestedInherit: false });
7309
+ }
7310
+ var refusalReasons = {
7311
+ filesystem_root: "Mnemonik does not index a whole disk.",
7312
+ home_directory: "Mnemonik does not index your whole home folder.",
7313
+ temporary_directory: "Mnemonik does not index the temporary folder.",
7314
+ mnemonik_state_directory: "That folder holds Mnemonik settings.",
7315
+ user_data_directory: "That folder holds program settings.",
7316
+ host_config_directory: "That folder holds editor settings.",
7317
+ broad_workspace_parent: "It holds several projects, and Mnemonik would index all of them.",
7318
+ not_found: "Its project file names a project this account cannot open.",
7319
+ project_access_denied: "Its project file names a project this account cannot open.",
7320
+ archived: "Its project is archived.",
7321
+ blocked: "Its project belongs to an account that is on hold.",
7322
+ deleted: "Its project was deleted.",
7323
+ fingerprint_mismatch: "Its Git remote does not match the repository this project was set up with.",
7324
+ confirmation_required: "Mnemonik has not seen this folder on this machine before.",
7325
+ nested: "It sits inside another project.",
7326
+ conflict: "It holds project files that disagree.",
7327
+ invalid_identity: "Its project file cannot be read.",
7328
+ malformed: "Its project file cannot be read.",
7329
+ unknown_version: "Its project file was written by a newer version of Mnemonik.",
7330
+ identity_too_large: "Its project file is too large to keep a copy of.",
7331
+ identity_changed: "Its project file changed while Mnemonik was working.",
7332
+ operation_context_changed: "Another Mnemonik command is part-way through connecting it.",
7333
+ rollback_in_progress: "An undo of an earlier setup is still running for that folder.",
7334
+ operation_rolled_back: "An earlier setup of that folder was undone.",
7335
+ record_invalid: "Mnemonik cannot read its own notes about that folder.",
7336
+ record_missing: "Mnemonik has no notes about that folder to finish.",
7337
+ not_staged: "Nothing was prepared for that folder yet.",
7338
+ invalid_server_result: "Mnemonik got an answer it could not use.",
7339
+ identity_exists: "It is already connected to a different project."
7340
+ };
7341
+ var AGAIN = "Run the command again.";
7342
+ var CHOOSE_ONE = "Choose a single project folder and run mnemonik add on that folder.";
7343
+ var SIGN_IN = "Sign in to the account that owns that project, then run the command again.";
7344
+ var FRESH_FILE = "Delete the .mnemonik.json file in that folder, then run the command again.";
7345
+ var refusalSteps = {
7346
+ filesystem_root: CHOOSE_ONE,
7347
+ home_directory: CHOOSE_ONE,
7348
+ temporary_directory: CHOOSE_ONE,
7349
+ mnemonik_state_directory: CHOOSE_ONE,
7350
+ user_data_directory: CHOOSE_ONE,
7351
+ host_config_directory: CHOOSE_ONE,
7352
+ broad_workspace_parent: CHOOSE_ONE,
7353
+ not_found: SIGN_IN,
7354
+ project_access_denied: SIGN_IN,
7355
+ blocked: SIGN_IN,
7356
+ archived: "Restore the project in the Mnemonik web console, then run the command again.",
7357
+ deleted: FRESH_FILE,
7358
+ invalid_identity: FRESH_FILE,
7359
+ malformed: FRESH_FILE,
7360
+ unknown_version: "Update Mnemonik on this machine, then run the command again.",
7361
+ identity_too_large: FRESH_FILE,
7362
+ fingerprint_mismatch: "Run mnemonik project setup --confirm-mismatch in that folder to connect it anyway.",
7363
+ confirmation_required: "Run mnemonik project setup in that folder to confirm it.",
7364
+ nested: "Run mnemonik project setup in that folder and choose which project it belongs to.",
7365
+ conflict: "Run mnemonik project setup in that folder and choose which project it belongs to.",
7366
+ identity_changed: AGAIN,
7367
+ operation_context_changed: "Run mnemonik project setup in that folder to finish that command.",
7368
+ rollback_in_progress: "Wait for it to finish, then run the command again.",
7369
+ operation_rolled_back: "Run mnemonik project setup in that folder to set it up again.",
7370
+ not_staged: AGAIN,
7371
+ invalid_server_result: AGAIN,
7372
+ record_invalid: "Run mnemonik doctor on this machine, then run the command again.",
7373
+ record_missing: "Run mnemonik project setup in that folder.",
7374
+ identity_exists: "Run mnemonik project link <project id> --replace in that folder."
7375
+ };
7376
+ var hasRefusalWords = (reason) => reason in refusalReasons;
7377
+ function folderRefusalMessage(reason, root) {
7378
+ const name2 = basename3(root);
7379
+ return [
7380
+ `${name2} was not connected. ${refusalReasons[reason] ?? "Mnemonik could not finish connecting it."}`,
7381
+ refusalSteps[reason] ?? `Run mnemonik status in ${name2} and follow the first step.`
7382
+ ];
7335
7383
  }
7336
7384
  function projectLimitMessage(result, roots) {
7337
7385
  if (!("state" in result) || result.state !== "project_limit_reached") return void 0;
@@ -7454,15 +7502,18 @@ async function createRealProjectRuntime(options = {}) {
7454
7502
  };
7455
7503
  }
7456
7504
  var UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/;
7505
+ var choiceLines = (actions) => actions.flatMap((action) => {
7506
+ const label = projectActionSentence(action);
7507
+ return label ? [` You can ${label.replace(/^[A-Z]/u, (c) => c.toLowerCase())}.`] : [];
7508
+ });
7457
7509
  function actionRequired2(output, json, state, details = {}) {
7458
- const result = { status: "ACTION_REQUIRED", state, ...details };
7510
+ const { quiet, ...rest } = details;
7511
+ const result = { status: "ACTION_REQUIRED", state, ...rest };
7459
7512
  if (json) output.json(result);
7460
- else {
7513
+ else if (!quiet) {
7461
7514
  output.error(humanReason(state));
7462
7515
  if (Array.isArray(details.allowedActions))
7463
- output.line(
7464
- ` Allowed actions: ${details.allowedActions.map((action) => humanProjectAction(String(action))).join("; ")}`
7465
- );
7516
+ for (const line of choiceLines(details.allowedActions.map(String))) output.line(line);
7466
7517
  }
7467
7518
  return 3;
7468
7519
  }
@@ -7521,14 +7572,17 @@ function showResult(output, json, result, root, owner, record) {
7521
7572
  owner: ownerLabel(owner)
7522
7573
  });
7523
7574
  else {
7524
- output.error(humanReason("state" in result ? result.state : result.status));
7575
+ const state = "state" in result ? result.state : result.status;
7576
+ if (hasRefusalWords(state))
7577
+ for (const line of folderRefusalMessage(state, root)) output.line(line);
7578
+ else output.error(humanReason(state));
7525
7579
  if ("candidates" in result && Array.isArray(result.candidates))
7526
7580
  for (const candidate of result.candidates)
7527
7581
  output.line(` ${candidate.displayName} (${candidate.projectId})`);
7528
7582
  if ("used" in result && "limit" in result)
7529
7583
  output.line(` Projects: ${result.used} used, limit ${result.limit}`);
7530
7584
  if ("allowedActions" in result)
7531
- output.line(` Allowed actions: ${result.allowedActions.map(humanProjectAction).join("; ")}`);
7585
+ for (const line of choiceLines(result.allowedActions)) output.line(line);
7532
7586
  }
7533
7587
  }
7534
7588
  async function finish(deps, input, result, root, reason, owner, beforeHash) {
@@ -7655,28 +7709,23 @@ async function runProjectCommandInner(input, deps, prompts) {
7655
7709
  { identityLocation }
7656
7710
  );
7657
7711
  }
7658
- let selectedNonGit = input.nonGit || input.command === "link";
7659
- let decision = await evaluateRoot(resolution, {
7660
- cwd,
7661
- home: deps.home,
7662
- nonGitSelected: selectedNonGit
7663
- });
7664
- if (!decision.allowed && decision.reason === "non_git_selection_required" && !input.nonInteractive && !input.json && await prompts.confirm(`Use non-git folder ${decision.root}?`)) {
7665
- selectedNonGit = true;
7666
- decision = await evaluateRoot(resolution, { cwd, home: deps.home, nonGitSelected: true });
7667
- }
7668
- if (!decision.allowed)
7712
+ const decision = await evaluateRoot(resolution, { cwd, home: deps.home });
7713
+ if (!decision.allowed) {
7714
+ if (!input.json)
7715
+ for (const line of folderRefusalMessage(decision.reason, decision.root))
7716
+ deps.output.line(line);
7669
7717
  return actionRequired2(deps.output, input.json, decision.reason, {
7670
7718
  root: decision.root,
7671
- allowedActions: decision.reason === "non_git_selection_required" ? ["select_non_git", "cancel"] : ["cancel"]
7719
+ allowedActions: ["cancel"],
7720
+ quiet: true
7672
7721
  });
7722
+ }
7673
7723
  deps.output.setContext({ home: deps.home, projectRoot: decision.root });
7674
7724
  const base = {
7675
7725
  cwd,
7676
7726
  owner,
7677
7727
  allowCreate: input.command !== "link",
7678
- allowNestedInherit: false,
7679
- ...selectedNonGit ? { nonGitSelected: true } : {}
7728
+ allowNestedInherit: false
7680
7729
  };
7681
7730
  if (input.command === "setup") {
7682
7731
  if ((input.nonInteractive || input.json) && !input.apply) {
@@ -7906,6 +7955,8 @@ export {
7906
7955
  createRealProjectRuntime,
7907
7956
  ensureProjectForAgent,
7908
7957
  ensureProjectRoot,
7958
+ folderRefusalMessage,
7959
+ hasRefusalWords,
7909
7960
  projectExecutor,
7910
7961
  projectLimitMessage,
7911
7962
  repositoryFingerprint,
@@ -1 +1 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"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"}
package/dist/router.d.ts CHANGED
@@ -16,6 +16,7 @@ import { type DiagnosticsDependencies } from './diagnostics.js';
16
16
  export declare const connectFolderPrompt: (name: string) => string;
17
17
  export declare const removeFolderPrompt: (name: string) => string;
18
18
  export declare const connectedFolderLine: (name: string) => string;
19
+ export declare const alreadyConnectedFolderLine: (name: string) => string;
19
20
  export declare const removedFolderLine: (name: string) => string;
20
21
  export declare function maintenanceExitCode(results: readonly Pick<HostResult, 'status'>[]): number;
21
22
  export declare const help: string;
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
package/dist/router.js CHANGED
@@ -4971,6 +4971,7 @@ import {
4971
4971
  createRealProjectRuntime,
4972
4972
  ensureProjectRoot,
4973
4973
  ensureProjectForAgent,
4974
+ folderRefusalMessage,
4974
4975
  projectLimitMessage,
4975
4976
  runProjectCommand
4976
4977
  } from "./project.js";
@@ -5004,6 +5005,7 @@ import {
5004
5005
  var connectFolderPrompt = (name2) => `Connect ${name2} to Mnemonik? [Y/n]`;
5005
5006
  var removeFolderPrompt = (name2) => `Stop indexing ${name2}? Its memories stay in your account. [y/N]`;
5006
5007
  var connectedFolderLine = (name2) => ` \u2713 Connected ${name2}.`;
5008
+ var alreadyConnectedFolderLine = (name2) => ` \u2713 ${name2} is already connected and watched.`;
5007
5009
  var removedFolderLine = (name2) => ` \u2713 ${name2} is no longer connected.`;
5008
5010
  function maintenanceExitCode(results) {
5009
5011
  if (results.some((result) => result.status === "FAILED")) return 1;
@@ -5709,7 +5711,7 @@ async function runCli(args2, deps = {}) {
5709
5711
  if (command === "roots" || command === "add" || command === "remove") {
5710
5712
  const action = command === "roots" ? subcommand : command;
5711
5713
  const actionArguments = command === "roots" ? rest : [subcommand, ...rest].filter(Boolean);
5712
- const invalid = allowed(parsed, ["accept-indexing", "apply", "no-browser"]);
5714
+ const invalid = allowed(parsed, ["accept-indexing", "apply", "no-browser", "non-git"]);
5713
5715
  if (invalid || !["add", "remove", "list"].includes(action ?? "") || actionArguments.length !== (action === "list" ? 0 : 1))
5714
5716
  return output.error(invalid ?? "Usage: mnemonik add <folder> or mnemonik remove <folder>"), 2;
5715
5717
  const stateDir = deps.installStateDir ?? stateDirectory(process.platform, process.env, deps.home);
@@ -5727,6 +5729,11 @@ async function runCli(args2, deps = {}) {
5727
5729
  const pathArgument = actionArguments[0] ?? "";
5728
5730
  const requested = action === "add" ? await realpath(pathArgument) : saved.config.roots.find((root) => root === pathArgument) ?? pathArgument;
5729
5731
  const name2 = requested.split(/[\\/]/u).filter(Boolean).at(-1) ?? requested;
5732
+ if (action === "add" && saved.config.roots.includes(requested)) {
5733
+ if (parsed.flags.has("json")) output.json(saved.config.roots);
5734
+ else output.line(alreadyConnectedFolderLine(name2));
5735
+ return 0;
5736
+ }
5730
5737
  if (!parsed.flags.has("non-interactive") && !parsed.flags.has("json")) {
5731
5738
  output.line(action === "add" ? connectFolderPrompt(name2) : removeFolderPrompt(name2));
5732
5739
  const readline = createInterface({ input: deps.input ?? process.stdin, terminal: false });
@@ -5745,13 +5752,12 @@ async function runCli(args2, deps = {}) {
5745
5752
  fetch: deps.grantFetch
5746
5753
  })).executor;
5747
5754
  const resolution = await executor.resolveProjectIdentity(requested);
5748
- const decision = await evaluateRoot(resolution, {
5749
- cwd: requested,
5750
- home: deps.home,
5751
- nonGitSelected: true
5752
- });
5753
- if (!decision.allowed)
5754
- return actionRequired2(output, parsed.flags.has("json"), decision.reason);
5755
+ const decision = await evaluateRoot(resolution, { cwd: requested, home: deps.home });
5756
+ if (!decision.allowed) {
5757
+ if (parsed.flags.has("json")) return actionRequired2(output, true, decision.reason);
5758
+ for (const line of folderRefusalMessage(decision.reason, decision.root)) output.line(line);
5759
+ return 3;
5760
+ }
5755
5761
  const project = await ensureProjectRoot(requested, executor);
5756
5762
  const limit = projectLimitMessage(project, requested);
5757
5763
  if (limit) {
@@ -5765,7 +5771,9 @@ async function runCli(args2, deps = {}) {
5765
5771
  return 3;
5766
5772
  }
5767
5773
  if (project.status !== "done") {
5768
- output.error(humanReason("project_setup_required"));
5774
+ const state = "state" in project ? String(project.state) : project.status;
5775
+ if (parsed.flags.has("json")) output.json({ status: "ACTION_REQUIRED", state });
5776
+ else for (const line of folderRefusalMessage(state, requested)) output.line(line);
5769
5777
  return 3;
5770
5778
  }
5771
5779
  }
@@ -6075,7 +6083,6 @@ Preview: ${preview.path}
6075
6083
  json: parsed.flags.has("json"),
6076
6084
  nonInteractive: parsed.flags.has("non-interactive"),
6077
6085
  apply: parsed.flags.has("apply"),
6078
- nonGit: parsed.flags.has("non-git"),
6079
6086
  confirmMismatch: parsed.flags.has("confirm-mismatch"),
6080
6087
  replace: parsed.flags.has("replace"),
6081
6088
  owner: typeof parsed.flags.get("owner") === "string" ? parsed.flags.get("owner") : void 0
@@ -6392,6 +6399,7 @@ Preview: ${preview.path}
6392
6399
  }
6393
6400
  var serializeReadiness2 = (input) => devReadiness(serializeReadiness(input));
6394
6401
  export {
6402
+ alreadyConnectedFolderLine,
6395
6403
  connectFolderPrompt,
6396
6404
  connectedFolderLine,
6397
6405
  help,