exomind 0.17.1 → 0.18.0

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/README.md CHANGED
@@ -100,7 +100,7 @@ emcli install # 装 skill(Claude+Codex)+ hook(Claude)+ MCP(各宿主),
100
100
  | 命令 | 说明 |
101
101
  |------|------|
102
102
  | `login` / `me` | 配置与查看登录态 |
103
- | `ingest` | 导入知识(文本 / stdin / `--file`) |
103
+ | `ingest` / `archive` | 导入/存档知识(文本 / stdin / `--file`) |
104
104
  | `query` | LLM 问答 |
105
105
  | `search` | 全文 / `--hybrid` / `--rerank` 搜索 |
106
106
  | `entity` / `relations` | 实体详情、关联实体 |
package/dist/cli.js CHANGED
@@ -3119,7 +3119,7 @@ var {
3119
3119
  // package.json
3120
3120
  var package_default = {
3121
3121
  name: "exomind",
3122
- version: "0.17.1",
3122
+ version: "0.18.0",
3123
3123
  description: "ExoMind \u8DE8\u5E73\u53F0\u547D\u4EE4\u884C\u5BA2\u6237\u7AEF \u2014 \u901A\u8FC7 REST \u4E0E ExoMind \u77E5\u8BC6\u98DE\u8F6E\u4EA4\u4E92(ingest/query/search/review),\u66FF\u4EE3 Windows \u4E0D\u53EF\u7528\u7684 MCP \u5BA2\u6237\u7AEF\u3002",
3124
3124
  bin: {
3125
3125
  exomind: "dist/cli.js",
@@ -4008,11 +4008,10 @@ function recordFile(manifest, absPath, rawContent, title) {
4008
4008
  size: rawContent.length
4009
4009
  };
4010
4010
  }
4011
- function cleanupStale(m, dir, currentFiles) {
4011
+ function cleanupStale(m, dir) {
4012
4012
  const prefix = path4.resolve(dir) + path4.sep;
4013
- const current = new Set(currentFiles);
4014
4013
  for (const key of Object.keys(m)) {
4015
- if (key.startsWith(prefix) && !current.has(key)) {
4014
+ if (key.startsWith(prefix) && !fs5.existsSync(key)) {
4016
4015
  delete m[key];
4017
4016
  }
4018
4017
  }
@@ -4276,7 +4275,7 @@ async function runDirIngestest(client, opts, dir) {
4276
4275
  await sleep(2e3);
4277
4276
  }
4278
4277
  }
4279
- cleanupStale(manifest, dir, files);
4278
+ cleanupStale(manifest, dir);
4280
4279
  saveManifest(manifest);
4281
4280
  } finally {
4282
4281
  process.removeListener("SIGINT", onSigInt);
@@ -5379,7 +5378,7 @@ program2.name(binName).description("ExoMind \u8DE8\u5E73\u53F0\u77E5\u8BC6\u98DE
5379
5378
  program2.command("login").description("\u914D\u7F6E\u670D\u52A1\u5668\u5730\u5740\u4E0E\u51ED\u8BC1,\u5199\u5165 ~/.exomind/config.json").option("--base-url <url>", "\u670D\u52A1\u5668\u5730\u5740").option("--api-key <key>", "API Key \u6216\u767B\u5F55 token(\u4E0D\u586B\u5219\u4EA4\u4E92\u8F93\u5165)").action(run(login));
5380
5379
  program2.command("me").description("\u663E\u793A\u5F53\u524D\u767B\u5F55\u6001\u4E0E\u670D\u52A1\u5668").action(run(whoami));
5381
5380
  program2.command("whoami", { hidden: true }).description("\u663E\u793A\u5F53\u524D\u767B\u5F55\u6001\u4E0E\u670D\u52A1\u5668(me \u7684\u65E7\u540D)").action(run(whoami));
5382
- program2.command("ingest [content...]").description("\u5BFC\u5165\u77E5\u8BC6: \u53C2\u6570\u6587\u672C / --file / stdin / --dir \u76EE\u5F55\u6279\u91CF(\u589E\u91CF)").option("-t, --title <title>", "\u6807\u9898(\u5355\u6587\u4EF6\u6A21\u5F0F)").option("--tag <tag>", "\u6807\u7B7E(\u53EF\u91CD\u590D)", collect, []).option("--file <path>", "\u4ECE\u6587\u4EF6\u8BFB\u53D6\u5185\u5BB9").option("--fast", "\u5FEB\u901F\u6A21\u5F0F: \u539F\u6587\u79D2\u5B58\u5E76\u53EF\u7ACB\u5373\u88AB\u68C0\u7D22,\u5B9E\u4F53/\u5173\u7CFB\u62BD\u53D6\u8F6C\u540E\u53F0(\u9002\u5408 Agent \u81EA\u52A8\u5B58\u6863)").option("--dir [path]", "\u76EE\u5F55\u6279\u91CF\u6444\u5165(\u589E\u91CF: \u5185\u5BB9\u54C8\u5E0C\u8DF3\u8FC7\u672A\u53D8\u6587\u4EF6;\u76EE\u5F55\u53EF\u5199\u5728\u524D: ingest <\u76EE\u5F55> --dir)").option("-r, --recursive", "\u9012\u5F52\u5B50\u76EE\u5F55(\u914D\u5408 --dir)").option("--pattern <glob>", "\u6587\u4EF6\u540D\u5339\u914D,\u9ED8\u8BA4 *.md", "*.md").option("--force", "\u5FFD\u7565 manifest,\u5F3A\u5236\u5168\u91CF\u91CD\u6444(\u914D\u5408 --dir)").option(
5381
+ program2.command("ingest [content...]").alias("archive").description("\u5BFC\u5165/\u5B58\u6863\u77E5\u8BC6: \u53C2\u6570\u6587\u672C / --file / stdin / --dir \u76EE\u5F55\u6279\u91CF(\u589E\u91CF)").option("-t, --title <title>", "\u6807\u9898(\u5355\u6587\u4EF6\u6A21\u5F0F)").option("--tag <tag>", "\u6807\u7B7E(\u53EF\u91CD\u590D)", collect, []).option("--file <path>", "\u4ECE\u6587\u4EF6\u8BFB\u53D6\u5185\u5BB9").option("--fast", "\u5FEB\u901F\u6A21\u5F0F: \u539F\u6587\u79D2\u5B58\u5E76\u53EF\u7ACB\u5373\u88AB\u68C0\u7D22,\u5B9E\u4F53/\u5173\u7CFB\u62BD\u53D6\u8F6C\u540E\u53F0(\u9002\u5408 Agent \u81EA\u52A8\u5B58\u6863)").option("--dir [path]", "\u76EE\u5F55\u6279\u91CF\u6444\u5165(\u589E\u91CF: \u5185\u5BB9\u54C8\u5E0C\u8DF3\u8FC7\u672A\u53D8\u6587\u4EF6;\u76EE\u5F55\u53EF\u5199\u5728\u524D: ingest <\u76EE\u5F55> --dir)").option("-r, --recursive", "\u9012\u5F52\u5B50\u76EE\u5F55(\u914D\u5408 --dir)").option("--pattern <glob>", "\u6587\u4EF6\u540D\u5339\u914D,\u9ED8\u8BA4 *.md", "*.md").option("--force", "\u5FFD\u7565 manifest,\u5F3A\u5236\u5168\u91CF\u91CD\u6444(\u914D\u5408 --dir)").option(
5383
5382
  "-c, --concurrency <n>",
5384
5383
  "\u5E76\u53D1\u6444\u5165\u6570(\u914D\u5408 --dir,\u9ED8\u8BA4 3,\u5F31\u670D\u52A1\u5668\u53CB\u597D)",
5385
5384
  (v) => parseInt(v, 10) || 3,