@remnic/cli 9.3.755 → 9.3.757

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 (2) hide show
  1. package/dist/index.js +27 -21
  2. package/package.json +28 -28
package/dist/index.js CHANGED
@@ -10,6 +10,7 @@ import {
10
10
  parseConfig,
11
11
  isOpenaiApiKeyDisabled,
12
12
  resolveEnvVars,
13
+ resolveRemnicConfigRecord,
13
14
  Orchestrator,
14
15
  EngramAccessService,
15
16
  initLogger,
@@ -5484,7 +5485,7 @@ function resolveMemoryDir() {
5484
5485
  if (envMemoryDir) return normalizeMemoryDirPath(envMemoryDir);
5485
5486
  const configPath = resolveConfigPath();
5486
5487
  const raw = fs7.existsSync(configPath) ? JSON.parse(fs7.readFileSync(configPath, "utf8")) : {};
5487
- const remnicCfg = raw.remnic ?? raw.engram ?? raw;
5488
+ const remnicCfg = resolveRemnicConfigRecord(raw);
5488
5489
  if (typeof remnicCfg.memoryDir === "string" && remnicCfg.memoryDir.length > 0) {
5489
5490
  return normalizeMemoryDirPath(remnicCfg.memoryDir);
5490
5491
  }
@@ -5867,7 +5868,7 @@ async function cmdQuery(queryText, json, explain) {
5867
5868
  initLogger();
5868
5869
  const configPath = resolveConfigPath();
5869
5870
  const raw = fs7.existsSync(configPath) ? JSON.parse(fs7.readFileSync(configPath, "utf8")) : {};
5870
- const remnicCfg = raw.remnic ?? raw.engram ?? raw;
5871
+ const remnicCfg = resolveRemnicConfigRecord(raw);
5871
5872
  const config = parseConfig(remnicCfg);
5872
5873
  const orchestrator = new Orchestrator(config);
5873
5874
  await orchestrator.initialize();
@@ -6038,7 +6039,7 @@ async function cmdXray(rest) {
6038
6039
  initLogger();
6039
6040
  const configPath = resolveConfigPath();
6040
6041
  const raw = fs7.existsSync(configPath) ? JSON.parse(fs7.readFileSync(configPath, "utf8")) : {};
6041
- const remnicCfg = raw.remnic ?? raw.engram ?? raw;
6042
+ const remnicCfg = resolveRemnicConfigRecord(raw);
6042
6043
  const config = parseConfig(remnicCfg);
6043
6044
  const orchestrator = new Orchestrator(config);
6044
6045
  await orchestrator.initialize();
@@ -6061,7 +6062,7 @@ async function cmdVersions(rest) {
6061
6062
  initLogger();
6062
6063
  const configPath = resolveConfigPath();
6063
6064
  const raw = fs7.existsSync(configPath) ? JSON.parse(fs7.readFileSync(configPath, "utf8")) : {};
6064
- const remnicCfg = raw.remnic ?? raw.engram ?? raw;
6065
+ const remnicCfg = resolveRemnicConfigRecord(raw);
6065
6066
  const config = parseConfig(remnicCfg);
6066
6067
  if (!config.versioningEnabled) {
6067
6068
  console.error("Page versioning is disabled (versioningEnabled = false).");
@@ -6177,7 +6178,7 @@ async function cmdEnrich(rest) {
6177
6178
  initLogger();
6178
6179
  const configPath = resolveConfigPath();
6179
6180
  const raw = fs7.existsSync(configPath) ? JSON.parse(fs7.readFileSync(configPath, "utf8")) : {};
6180
- const remnicCfg = raw.remnic ?? raw.engram ?? raw;
6181
+ const remnicCfg = resolveRemnicConfigRecord(raw);
6181
6182
  const config = parseConfig(remnicCfg);
6182
6183
  const subcommand = rest[0];
6183
6184
  if (subcommand === "audit") {
@@ -6427,7 +6428,7 @@ Shared with:
6427
6428
  }
6428
6429
  const configPath = resolveConfigPath();
6429
6430
  const raw = fs7.existsSync(configPath) ? JSON.parse(fs7.readFileSync(configPath, "utf8")) : {};
6430
- const remnicCfg = raw.remnic ?? raw.engram ?? raw;
6431
+ const remnicCfg = resolveRemnicConfigRecord(raw);
6431
6432
  const config = parseConfig(remnicCfg);
6432
6433
  const memoryDir = expandTilde(
6433
6434
  typeof memoryDirOverride === "string" && memoryDirOverride.length > 0 ? memoryDirOverride : config.memoryDir ?? resolveMemoryDir()
@@ -6444,7 +6445,7 @@ async function cmdExtensions(action, rest) {
6444
6445
  initLogger();
6445
6446
  const configPath = resolveConfigPath();
6446
6447
  const raw = fs7.existsSync(configPath) ? JSON.parse(fs7.readFileSync(configPath, "utf8")) : {};
6447
- const remnicCfg = raw.remnic ?? raw.engram ?? raw;
6448
+ const remnicCfg = resolveRemnicConfigRecord(raw);
6448
6449
  const config = parseConfig(remnicCfg);
6449
6450
  const root = resolveExtensionsRoot(config);
6450
6451
  const noopLog = { warn: () => {
@@ -6538,7 +6539,7 @@ async function cmdBriefing(rest) {
6538
6539
  initLogger();
6539
6540
  const configPath = resolveConfigPath();
6540
6541
  const raw = fs7.existsSync(configPath) ? JSON.parse(fs7.readFileSync(configPath, "utf8")) : {};
6541
- const remnicCfg = raw.remnic ?? raw.engram ?? raw;
6542
+ const remnicCfg = resolveRemnicConfigRecord(raw);
6542
6543
  const config = parseConfig(remnicCfg);
6543
6544
  if (!config.briefing.enabled) {
6544
6545
  console.error("Briefing is disabled in config (briefing.enabled = false).");
@@ -6646,14 +6647,19 @@ async function cmdDoctor() {
6646
6647
  if (configExists) {
6647
6648
  try {
6648
6649
  const raw = JSON.parse(fs7.readFileSync(configPath, "utf8"));
6649
- const remnicCfg = raw.remnic ?? raw.engram ?? raw;
6650
- standaloneOpenaiApiKeyExplicitlyFalse = typeof remnicCfg === "object" && remnicCfg !== null && !Array.isArray(remnicCfg) && isOpenaiApiKeyDisabled(remnicCfg.openaiApiKey);
6650
+ const remnicCfg = resolveRemnicConfigRecord(raw);
6651
+ standaloneOpenaiApiKeyExplicitlyFalse = isOpenaiApiKeyDisabled(remnicCfg.openaiApiKey);
6651
6652
  standaloneConfig = parseConfig(remnicCfg);
6652
6653
  } catch (err) {
6653
6654
  standaloneConfigError = err instanceof Error ? err.message : String(err);
6654
6655
  }
6655
6656
  }
6656
- const memoryDir = resolveMemoryDir();
6657
+ let memoryDir;
6658
+ try {
6659
+ memoryDir = resolveMemoryDir();
6660
+ } catch {
6661
+ memoryDir = parseConfig({}).memoryDir;
6662
+ }
6657
6663
  try {
6658
6664
  fs7.mkdirSync(memoryDir, { recursive: true });
6659
6665
  checks.push({ name: "Memory directory", ok: true, detail: memoryDir });
@@ -7007,7 +7013,7 @@ async function cmdReview(action, rest) {
7007
7013
  let tombstonesConfig = null;
7008
7014
  try {
7009
7015
  const rawCfg = fs7.existsSync(configPath) ? JSON.parse(fs7.readFileSync(configPath, "utf8")) : {};
7010
- const remnicCfg = rawCfg.remnic ?? rawCfg.engram ?? rawCfg;
7016
+ const remnicCfg = resolveRemnicConfigRecord(rawCfg);
7011
7017
  const config = parseConfig(remnicCfg);
7012
7018
  tombstonesConfig = {
7013
7019
  enabled: config.tombstonesEnabled,
@@ -8963,7 +8969,7 @@ function resolveOfflineSyncUserExcludes(rest) {
8963
8969
  const configPath = resolveConfigPath();
8964
8970
  try {
8965
8971
  const raw = fs7.existsSync(configPath) ? JSON.parse(fs7.readFileSync(configPath, "utf8")) : {};
8966
- const remnicCfg = raw.remnic ?? raw.engram ?? raw;
8972
+ const remnicCfg = resolveRemnicConfigRecord(raw);
8967
8973
  const configured = remnicCfg.offlineSyncExcludes;
8968
8974
  if (configured !== void 0 && configured !== null) {
8969
8975
  if (!Array.isArray(configured)) {
@@ -9524,7 +9530,7 @@ async function cmdConnectors(action, rest, json) {
9524
9530
  initLogger();
9525
9531
  const configPath = resolveConfigPath();
9526
9532
  const raw = fs7.existsSync(configPath) ? JSON.parse(fs7.readFileSync(configPath, "utf8")) : {};
9527
- const remnicCfg = raw.remnic ?? raw.engram ?? raw;
9533
+ const remnicCfg = resolveRemnicConfigRecord(raw);
9528
9534
  const config = parseConfig(remnicCfg);
9529
9535
  const orchestrator = new Orchestrator(config);
9530
9536
  try {
@@ -9649,7 +9655,7 @@ async function cmdConnectorsMarketplace(subAction, rest, json) {
9649
9655
  process.exit(1);
9650
9656
  }
9651
9657
  const rawConfig = fs7.existsSync(configPath) ? JSON.parse(fs7.readFileSync(configPath, "utf8")) : {};
9652
- const pluginConfig = rawConfig.remnic ?? rawConfig.engram ?? rawConfig;
9658
+ const pluginConfig = resolveRemnicConfigRecord(rawConfig);
9653
9659
  const config = parseConfig(pluginConfig);
9654
9660
  if (subAction === "generate") {
9655
9661
  let outputDir;
@@ -9878,7 +9884,7 @@ async function cmdLegacyBenchmark(action, rest, json) {
9878
9884
  initLogger();
9879
9885
  const configPath = resolveConfigPath();
9880
9886
  const raw = fs7.existsSync(configPath) ? JSON.parse(fs7.readFileSync(configPath, "utf8")) : {};
9881
- const remnicCfg = raw.remnic ?? raw.engram ?? raw;
9887
+ const remnicCfg = resolveRemnicConfigRecord(raw);
9882
9888
  const config = parseConfig(remnicCfg);
9883
9889
  const orchestrator = new Orchestrator(config);
9884
9890
  const service = new EngramAccessService(orchestrator);
@@ -10517,7 +10523,7 @@ async function daemonStatus() {
10517
10523
  try {
10518
10524
  const configPath = resolveConfigPath();
10519
10525
  const raw = fs7.existsSync(configPath) ? JSON.parse(fs7.readFileSync(configPath, "utf8")) : {};
10520
- const remnicCfg = raw.remnic ?? raw.engram ?? raw;
10526
+ const remnicCfg = resolveRemnicConfigRecord(raw);
10521
10527
  const config = parseConfig(remnicCfg);
10522
10528
  const extRoot = resolveExtensionsRoot(config);
10523
10529
  const noopLog = { warn: () => {
@@ -10707,7 +10713,7 @@ async function cmdBinary(rest) {
10707
10713
  initLogger();
10708
10714
  const configPath = resolveConfigPath();
10709
10715
  const raw = fs7.existsSync(configPath) ? JSON.parse(fs7.readFileSync(configPath, "utf8")) : {};
10710
- const remnicCfg = raw.remnic ?? raw.engram ?? raw;
10716
+ const remnicCfg = resolveRemnicConfigRecord(raw);
10711
10717
  const config = parseConfig(remnicCfg);
10712
10718
  const memoryDir = resolveMemoryDir();
10713
10719
  const blConfig = {
@@ -11110,7 +11116,7 @@ async function cmdTaxonomy(rest) {
11110
11116
  initLogger();
11111
11117
  const configPath = resolveConfigPath();
11112
11118
  const raw = fs7.existsSync(configPath) ? JSON.parse(fs7.readFileSync(configPath, "utf8")) : {};
11113
- const remnicCfg = raw.remnic ?? raw.engram ?? raw;
11119
+ const remnicCfg = resolveRemnicConfigRecord(raw);
11114
11120
  const config = parseConfig(remnicCfg);
11115
11121
  if (!config.taxonomyEnabled) {
11116
11122
  console.error(
@@ -11853,7 +11859,7 @@ Other:
11853
11859
  try {
11854
11860
  const configPath = resolveConfigPath();
11855
11861
  const raw = fs7.existsSync(configPath) ? JSON.parse(fs7.readFileSync(configPath, "utf8")) : {};
11856
- const remnicCfg = raw !== null && typeof raw === "object" ? raw.remnic ?? raw.engram ?? raw : {};
11862
+ const remnicCfg = resolveRemnicConfigRecord(raw);
11857
11863
  const config = parseConfig(remnicCfg);
11858
11864
  wearablesOrchestrator = new Orchestrator(config);
11859
11865
  await wearablesOrchestrator.initialize();
@@ -11897,7 +11903,7 @@ Other:
11897
11903
  if (!orchestratorSingleton) {
11898
11904
  const configPath = resolveConfigPath();
11899
11905
  const raw = fs7.existsSync(configPath) ? JSON.parse(fs7.readFileSync(configPath, "utf8")) : {};
11900
- const remnicCfg = raw.remnic ?? raw.engram ?? raw;
11906
+ const remnicCfg = resolveRemnicConfigRecord(raw);
11901
11907
  const config = parseConfig(remnicCfg);
11902
11908
  orchestratorSingleton = new Orchestrator(config);
11903
11909
  await orchestratorSingleton.initialize();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remnic/cli",
3
- "version": "9.3.755",
3
+ "version": "9.3.757",
4
4
  "description": "CLI for Remnic memory — init, query, doctor, daemon management",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -26,23 +26,23 @@
26
26
  },
27
27
  "dependencies": {
28
28
  "yaml": "^2.4.2",
29
- "@remnic/plugin-pi": "^9.3.755",
30
- "@remnic/server": "^9.3.755",
31
- "@remnic/core": "^9.3.755"
29
+ "@remnic/core": "^9.3.757",
30
+ "@remnic/plugin-pi": "^9.3.757",
31
+ "@remnic/server": "^9.3.757"
32
32
  },
33
33
  "peerDependencies": {
34
- "@remnic/bench": "^9.3.755",
35
- "@remnic/export-weclone": "^9.3.755",
36
- "@remnic/import-weclone": "^9.3.755",
37
- "@remnic/import-chatgpt": "^9.3.755",
38
- "@remnic/import-claude": "^9.3.755",
39
- "@remnic/import-gemini": "^9.3.755",
40
- "@remnic/import-lossless-claw": "^9.3.755",
41
- "@remnic/import-mem0": "^9.3.755",
42
- "@remnic/import-supermemory": "^9.3.755",
43
- "@remnic/connector-limitless": "^9.3.755",
44
- "@remnic/connector-bee": "^9.3.755",
45
- "@remnic/connector-omi": "^9.3.755"
34
+ "@remnic/bench": "^9.3.757",
35
+ "@remnic/export-weclone": "^9.3.757",
36
+ "@remnic/import-weclone": "^9.3.757",
37
+ "@remnic/import-chatgpt": "^9.3.757",
38
+ "@remnic/import-claude": "^9.3.757",
39
+ "@remnic/import-gemini": "^9.3.757",
40
+ "@remnic/import-lossless-claw": "^9.3.757",
41
+ "@remnic/import-mem0": "^9.3.757",
42
+ "@remnic/import-supermemory": "^9.3.757",
43
+ "@remnic/connector-limitless": "^9.3.757",
44
+ "@remnic/connector-bee": "^9.3.757",
45
+ "@remnic/connector-omi": "^9.3.757"
46
46
  },
47
47
  "peerDependenciesMeta": {
48
48
  "@remnic/bench": {
@@ -85,18 +85,18 @@
85
85
  "devDependencies": {
86
86
  "tsup": "^8.5.1",
87
87
  "typescript": "^5.9.3",
88
- "@remnic/bench": "9.3.755",
89
- "@remnic/export-weclone": "9.3.755",
90
- "@remnic/import-weclone": "9.3.755",
91
- "@remnic/import-chatgpt": "9.3.755",
92
- "@remnic/import-claude": "9.3.755",
93
- "@remnic/import-gemini": "9.3.755",
94
- "@remnic/import-mem0": "9.3.755",
95
- "@remnic/import-lossless-claw": "9.3.755",
96
- "@remnic/import-supermemory": "9.3.755",
97
- "@remnic/connector-bee": "9.3.755",
98
- "@remnic/connector-limitless": "9.3.755",
99
- "@remnic/connector-omi": "9.3.755"
88
+ "@remnic/export-weclone": "9.3.757",
89
+ "@remnic/bench": "9.3.757",
90
+ "@remnic/import-weclone": "9.3.757",
91
+ "@remnic/import-chatgpt": "9.3.757",
92
+ "@remnic/import-claude": "9.3.757",
93
+ "@remnic/import-gemini": "9.3.757",
94
+ "@remnic/import-mem0": "9.3.757",
95
+ "@remnic/import-supermemory": "9.3.757",
96
+ "@remnic/import-lossless-claw": "9.3.757",
97
+ "@remnic/connector-limitless": "9.3.757",
98
+ "@remnic/connector-bee": "9.3.757",
99
+ "@remnic/connector-omi": "9.3.757"
100
100
  },
101
101
  "license": "MIT",
102
102
  "repository": {