sxng-cli 1.0.8 → 1.1.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.
Files changed (107) hide show
  1. package/README.md +10 -2
  2. package/dist/commands/graph-add.d.ts.map +1 -1
  3. package/dist/commands/graph-add.js +11 -3
  4. package/dist/commands/graph-add.js.map +1 -1
  5. package/dist/commands/graph-drill.d.ts +11 -0
  6. package/dist/commands/graph-drill.d.ts.map +1 -0
  7. package/dist/commands/graph-drill.js +26 -0
  8. package/dist/commands/graph-drill.js.map +1 -0
  9. package/dist/commands/graph-explore.d.ts +10 -0
  10. package/dist/commands/graph-explore.d.ts.map +1 -0
  11. package/dist/commands/graph-explore.js +32 -0
  12. package/dist/commands/graph-explore.js.map +1 -0
  13. package/dist/commands/graph-obfuscate.d.ts +17 -0
  14. package/dist/commands/graph-obfuscate.d.ts.map +1 -0
  15. package/dist/commands/graph-obfuscate.js +110 -0
  16. package/dist/commands/graph-obfuscate.js.map +1 -0
  17. package/dist/commands/graph-search.d.ts +11 -0
  18. package/dist/commands/graph-search.d.ts.map +1 -0
  19. package/dist/commands/graph-search.js +19 -0
  20. package/dist/commands/graph-search.js.map +1 -0
  21. package/dist/commands/graph-traverse.d.ts +10 -0
  22. package/dist/commands/graph-traverse.d.ts.map +1 -0
  23. package/dist/commands/graph-traverse.js +39 -0
  24. package/dist/commands/graph-traverse.js.map +1 -0
  25. package/dist/commands/query-graph.d.ts +2 -0
  26. package/dist/commands/query-graph.d.ts.map +1 -1
  27. package/dist/commands/query-graph.js +68 -2
  28. package/dist/commands/query-graph.js.map +1 -1
  29. package/dist/commands/session.js +1 -1
  30. package/dist/commands/session.js.map +1 -1
  31. package/dist/deep/co-occurrence.d.ts +50 -0
  32. package/dist/deep/co-occurrence.d.ts.map +1 -0
  33. package/dist/deep/co-occurrence.js +95 -0
  34. package/dist/deep/co-occurrence.js.map +1 -0
  35. package/dist/deep/degree-utils.d.ts +39 -0
  36. package/dist/deep/degree-utils.d.ts.map +1 -0
  37. package/dist/deep/degree-utils.js +42 -0
  38. package/dist/deep/degree-utils.js.map +1 -0
  39. package/dist/deep/extractor.d.ts +7 -2
  40. package/dist/deep/extractor.d.ts.map +1 -1
  41. package/dist/deep/extractor.js +143 -78
  42. package/dist/deep/extractor.js.map +1 -1
  43. package/dist/deep/graph-explore.d.ts +115 -0
  44. package/dist/deep/graph-explore.d.ts.map +1 -0
  45. package/dist/deep/graph-explore.js +586 -0
  46. package/dist/deep/graph-explore.js.map +1 -0
  47. package/dist/deep/graph-obfuscate.d.ts +51 -0
  48. package/dist/deep/graph-obfuscate.d.ts.map +1 -0
  49. package/dist/deep/graph-obfuscate.js +226 -0
  50. package/dist/deep/graph-obfuscate.js.map +1 -0
  51. package/dist/deep/graph-preprocess.d.ts +41 -0
  52. package/dist/deep/graph-preprocess.d.ts.map +1 -0
  53. package/dist/deep/graph-preprocess.js +32 -0
  54. package/dist/deep/graph-preprocess.js.map +1 -0
  55. package/dist/deep/graph-sampling.d.ts +51 -0
  56. package/dist/deep/graph-sampling.d.ts.map +1 -0
  57. package/dist/deep/graph-sampling.js +409 -0
  58. package/dist/deep/graph-sampling.js.map +1 -0
  59. package/dist/deep/graph.d.ts +24 -1
  60. package/dist/deep/graph.d.ts.map +1 -1
  61. package/dist/deep/graph.js +42 -1
  62. package/dist/deep/graph.js.map +1 -1
  63. package/dist/deep/iteration-data.d.ts +38 -0
  64. package/dist/deep/iteration-data.d.ts.map +1 -0
  65. package/dist/deep/iteration-data.js +48 -0
  66. package/dist/deep/iteration-data.js.map +1 -0
  67. package/dist/deep/path-extraction.d.ts +53 -0
  68. package/dist/deep/path-extraction.d.ts.map +1 -0
  69. package/dist/deep/path-extraction.js +229 -0
  70. package/dist/deep/path-extraction.js.map +1 -0
  71. package/dist/deep/quality-assess.d.ts +45 -0
  72. package/dist/deep/quality-assess.d.ts.map +1 -0
  73. package/dist/deep/quality-assess.js +125 -0
  74. package/dist/deep/quality-assess.js.map +1 -0
  75. package/dist/deep/query-redundancy.d.ts +39 -0
  76. package/dist/deep/query-redundancy.d.ts.map +1 -0
  77. package/dist/deep/query-redundancy.js +109 -0
  78. package/dist/deep/query-redundancy.js.map +1 -0
  79. package/dist/deep/query-suggest.d.ts +35 -0
  80. package/dist/deep/query-suggest.d.ts.map +1 -0
  81. package/dist/deep/query-suggest.js +98 -0
  82. package/dist/deep/query-suggest.js.map +1 -0
  83. package/dist/deep/recovery-analysis.d.ts +61 -0
  84. package/dist/deep/recovery-analysis.d.ts.map +1 -0
  85. package/dist/deep/recovery-analysis.js +188 -0
  86. package/dist/deep/recovery-analysis.js.map +1 -0
  87. package/dist/deep/search-strategy.d.ts +37 -0
  88. package/dist/deep/search-strategy.d.ts.map +1 -0
  89. package/dist/deep/search-strategy.js +99 -0
  90. package/dist/deep/search-strategy.js.map +1 -0
  91. package/dist/deep/session.d.ts +3 -1
  92. package/dist/deep/session.d.ts.map +1 -1
  93. package/dist/deep/session.js +4 -4
  94. package/dist/deep/session.js.map +1 -1
  95. package/dist/deep/simhash.d.ts +5 -0
  96. package/dist/deep/simhash.d.ts.map +1 -1
  97. package/dist/deep/simhash.js +16 -0
  98. package/dist/deep/simhash.js.map +1 -1
  99. package/dist/deep/tfidf.d.ts +38 -0
  100. package/dist/deep/tfidf.d.ts.map +1 -0
  101. package/dist/deep/tfidf.js +103 -0
  102. package/dist/deep/tfidf.js.map +1 -0
  103. package/dist/runCli.d.ts +3 -1
  104. package/dist/runCli.d.ts.map +1 -1
  105. package/dist/runCli.js +762 -307
  106. package/dist/runCli.js.map +1 -1
  107. package/package.json +17 -4
package/README.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # 🔍 SXNG CLI
2
2
 
3
+ > 📖 **完整文档请访问 GitHub**: https://github.com/hkwuks/sxng-cli#readme
4
+ >
5
+ > 本 README 为快速参考,详细的安装指南(包括 SearXNG 自托管配置、Docker 部署、settings.yml 配置等)请参阅 GitHub 文档。
6
+
3
7
  <p align="center">
4
8
  <b>A powerful command-line interface for <a href="https://github.com/searxng/searxng">SearXNG</a></b><br>
5
9
  Privacy-respecting web search from your terminal
@@ -34,6 +38,10 @@
34
38
 
35
39
  ## 📦 Installation
36
40
 
41
+ > ⚠️ **完整安装指南**: [GitHub - Installation](https://github.com/hkwuks/sxng-cli#installation)
42
+ >
43
+ > 包含 SearXNG 自托管配置、Docker 部署、30+ 搜索引擎 settings.yml 配置等。
44
+
37
45
  ```bash
38
46
  npm install -g sxng-cli
39
47
  ```
@@ -204,9 +212,9 @@ sxng --session <session-name> --queries "tokio vs async-std,benchmark 2024"
204
212
  | `sxng session-delete --older <hours>` | Delete old sessions |
205
213
 
206
214
  **Session Path Resolution:**
207
- - Pure name (e.g., `my-session`) → `~/.sxng/sessions/my-session`
215
+ - Pure name (e.g., `my-session`) → `~/sxng-cli/sessions/my-session`
208
216
  - Full path (e.g., `/custom/path/session`) → used as-is
209
- - `new` → auto-generate unique name under `~/.sxng/sessions/`
217
+ - `new` → auto-generate unique name under `~/sxng-cli/sessions/`
210
218
 
211
219
  ### Knowledge Graph
212
220
 
@@ -1 +1 @@
1
- {"version":3,"file":"graph-add.d.ts","sourceRoot":"","sources":["../../src/commands/graph-add.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA2BH,MAAM,WAAW,eAAe;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CAChB;AAsBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAoJ3E"}
1
+ {"version":3,"file":"graph-add.d.ts","sourceRoot":"","sources":["../../src/commands/graph-add.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA2BH,MAAM,WAAW,eAAe;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CAChB;AA0BD,wBAAsB,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CA4J3E"}
@@ -12,12 +12,12 @@ import { deserializeGraph, serializeGraph, graphStats, entityId, resultId } from
12
12
  import { DirectedGraph } from 'graphology';
13
13
  import { createSuccessEnvelope, createErrorEnvelope } from '../protocol.js';
14
14
  /** Resolve graph file path — if directory (session), use graph.json inside it.
15
- * Pure name (no separators) is resolved to ~/.sxng/sessions/<name>
15
+ * Pure name (no separators) is resolved to ~/sxng-cli/sessions/<name>
16
16
  */
17
17
  function resolveGraphFile(path) {
18
18
  // Pure name without path separators: resolve to default sessions dir
19
19
  if (!path.includes('/') && !path.includes('\\')) {
20
- path = join(homedir(), '.sxng', 'sessions', path);
20
+ path = join(homedir(), 'sxng-cli', 'sessions', path);
21
21
  }
22
22
  try {
23
23
  if (statSync(path).isDirectory()) {
@@ -80,17 +80,25 @@ export async function runGraphAdd(options) {
80
80
  label: entity.label,
81
81
  entityType: entity.entityType,
82
82
  score: entity.score,
83
+ obfuscatedLabel: entity.obfuscatedLabel,
84
+ sourceRounds: entity.sourceRounds,
85
+ frequency: entity.frequency,
86
+ reasoningPaths: entity.reasoningPaths,
83
87
  });
84
88
  entitiesAdded++;
85
89
  }
86
90
  else {
87
- // Update existing entity
91
+ // Update existing entity — merge new fields
88
92
  const existing = graph.getNodeAttributes(id);
89
93
  graph.mergeNode(id, {
90
94
  ...existing,
91
95
  label: entity.label,
92
96
  entityType: entity.entityType ?? existing.entityType,
93
97
  score: entity.score ?? existing.score,
98
+ obfuscatedLabel: entity.obfuscatedLabel ?? existing.obfuscatedLabel,
99
+ sourceRounds: entity.sourceRounds ?? existing.sourceRounds,
100
+ frequency: entity.frequency ?? existing.frequency,
101
+ reasoningPaths: entity.reasoningPaths ?? existing.reasoningPaths,
94
102
  });
95
103
  }
96
104
  }
@@ -1 +1 @@
1
- {"version":3,"file":"graph-add.js","sourceRoot":"","sources":["../../src/commands/graph-add.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph-add.js","sourceRoot":"","sources":["../../src/commands/graph-add.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * graph-drill subcommand — Follow specific relations from an entity
3
+ */
4
+ export interface GraphDrillOptions {
5
+ session: string;
6
+ seed: string;
7
+ relations: string[];
8
+ format?: 'json' | 'md';
9
+ }
10
+ export declare function runGraphDrill(options: GraphDrillOptions): Promise<number>;
11
+ //# sourceMappingURL=graph-drill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-drill.d.ts","sourceRoot":"","sources":["../../src/commands/graph-drill.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAmB/E"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * graph-drill subcommand — Follow specific relations from an entity
3
+ */
4
+ import { resolveSessionPath, loadSessionGraph } from '../deep/session.js';
5
+ import { createSuccessEnvelope, createErrorEnvelope } from '../protocol.js';
6
+ import { drillByRelations, formatDrillAsMarkdown } from '../deep/graph-explore.js';
7
+ export async function runGraphDrill(options) {
8
+ const sessionDir = resolveSessionPath(options.session);
9
+ const graph = loadSessionGraph(sessionDir);
10
+ const result = drillByRelations(graph, options.seed, options.relations);
11
+ if ('error' in result) {
12
+ const envelope = createErrorEnvelope('ENTITY_NOT_FOUND', result.error, {
13
+ details: { suggestions: result.suggestions.map(s => `${s.label} (distance: ${s.distance})`) },
14
+ });
15
+ console.log(JSON.stringify(envelope, null, 2));
16
+ return 1;
17
+ }
18
+ if (options.format === 'md') {
19
+ console.log(formatDrillAsMarkdown(result));
20
+ }
21
+ else {
22
+ console.log(JSON.stringify(createSuccessEnvelope(result), null, 2));
23
+ }
24
+ return 0;
25
+ }
26
+ //# sourceMappingURL=graph-drill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-drill.js","sourceRoot":"","sources":["../../src/commands/graph-drill.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AASnF,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAA0B;IAC1D,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAExE,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;QACpB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,kBAAkB,EAAE,MAAM,CAAC,KAAK,EAAE;YACnE,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE;SAChG,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,CAAC;IACb,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,CAAC,CAAC;AACb,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * graph-explore subcommand — List all relations around a seed entity
3
+ */
4
+ export interface GraphExploreOptions {
5
+ session: string;
6
+ seed: string;
7
+ format?: 'json' | 'md';
8
+ }
9
+ export declare function runGraphExplore(options: GraphExploreOptions): Promise<number>;
10
+ //# sourceMappingURL=graph-explore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-explore.d.ts","sourceRoot":"","sources":["../../src/commands/graph-explore.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CA0BnF"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * graph-explore subcommand — List all relations around a seed entity
3
+ */
4
+ import { resolveSessionPath, loadSessionGraph } from '../deep/session.js';
5
+ import { createSuccessEnvelope, createErrorEnvelope } from '../protocol.js';
6
+ import { exploreSeedEntity, detectDeadEnd, formatExploreAsMarkdown, formatDeadEndAsMarkdown, } from '../deep/graph-explore.js';
7
+ export async function runGraphExplore(options) {
8
+ const sessionDir = resolveSessionPath(options.session);
9
+ const graph = loadSessionGraph(sessionDir);
10
+ const result = exploreSeedEntity(graph, options.seed);
11
+ if ('error' in result) {
12
+ const envelope = createErrorEnvelope('ENTITY_NOT_FOUND', result.error, {
13
+ details: { suggestions: result.suggestions.map(s => `${s.label} (distance: ${s.distance})`) },
14
+ });
15
+ console.log(JSON.stringify(envelope, null, 2));
16
+ return 1;
17
+ }
18
+ // Check for dead end
19
+ const deadEnd = detectDeadEnd(graph, result.entity.id);
20
+ if (options.format === 'md') {
21
+ console.log(formatExploreAsMarkdown(result));
22
+ if (deadEnd) {
23
+ console.log(formatDeadEndAsMarkdown(deadEnd));
24
+ }
25
+ }
26
+ else {
27
+ const output = deadEnd ? { ...result, deadEnd } : result;
28
+ console.log(JSON.stringify(createSuccessEnvelope(output), null, 2));
29
+ }
30
+ return 0;
31
+ }
32
+ //# sourceMappingURL=graph-explore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-explore.js","sourceRoot":"","sources":["../../src/commands/graph-explore.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE1E,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EACH,iBAAiB,EAAE,aAAa,EAChC,uBAAuB,EAAE,uBAAuB,GACnD,MAAM,0BAA0B,CAAC;AAQlC,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAA4B;IAC9D,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtD,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;QACpB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,kBAAkB,EAAE,MAAM,CAAC,KAAK,EAAE;YACnE,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE;SAChG,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,CAAC;IACb,CAAC;IAED,qBAAqB;IACrB,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAEvD,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7C,IAAI,OAAO,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC;QAClD,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,CAAC,CAAC;AACb,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * graph-obfuscate subcommand - List obfuscation candidates or apply fallback rules
3
+ *
4
+ * Primary flow: Agent uses --list to get candidates, then LLM generates
5
+ * obfuscated labels, and writes them back via graph-add.
6
+ *
7
+ * Fallback: --fallback-rules applies simple rule-based obfuscation (experimental).
8
+ */
9
+ export interface GraphObfuscateOptions {
10
+ graphFile: string;
11
+ list: boolean;
12
+ fallbackRules: boolean;
13
+ format: 'json' | 'md';
14
+ skipEntityTypes?: string[];
15
+ }
16
+ export declare function runGraphObfuscateCommand(options: GraphObfuscateOptions): Promise<number>;
17
+ //# sourceMappingURL=graph-obfuscate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-obfuscate.d.ts","sourceRoot":"","sources":["../../src/commands/graph-obfuscate.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAwFH,MAAM,WAAW,qBAAqB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAkC9F"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * graph-obfuscate subcommand - List obfuscation candidates or apply fallback rules
3
+ *
4
+ * Primary flow: Agent uses --list to get candidates, then LLM generates
5
+ * obfuscated labels, and writes them back via graph-add.
6
+ *
7
+ * Fallback: --fallback-rules applies simple rule-based obfuscation (experimental).
8
+ */
9
+ import { readFileSync, writeFileSync, existsSync, statSync } from 'fs';
10
+ import { join } from 'path';
11
+ import { homedir } from 'os';
12
+ import { deserializeGraph, serializeGraph, graphStats } from '../deep/graph.js';
13
+ import { runGraphObfuscate } from '../deep/graph-obfuscate.js';
14
+ import { createSuccessEnvelope, createErrorEnvelope } from '../protocol.js';
15
+ function resolveGraphFile(path) {
16
+ if (!path.includes('/') && !path.includes('\\')) {
17
+ path = join(homedir(), 'sxng-cli', 'sessions', path);
18
+ }
19
+ try {
20
+ if (statSync(path).isDirectory()) {
21
+ return join(path, 'graph.json');
22
+ }
23
+ }
24
+ catch {
25
+ // Not a file/dir, return as-is
26
+ }
27
+ return path;
28
+ }
29
+ function loadGraph(graphFile) {
30
+ if (!existsSync(graphFile)) {
31
+ return null;
32
+ }
33
+ try {
34
+ const raw = readFileSync(graphFile, 'utf-8');
35
+ const parsed = JSON.parse(raw);
36
+ const graphData = parsed.status === 'ok' && parsed.data?.graph
37
+ ? parsed.data.graph
38
+ : (parsed.nodes && parsed.edges ? parsed : null);
39
+ return graphData ? deserializeGraph(graphData) : null;
40
+ }
41
+ catch {
42
+ return null;
43
+ }
44
+ }
45
+ function saveGraph(graphFile, graph) {
46
+ const serialized = serializeGraph(graph);
47
+ const stats = graphStats(graph);
48
+ writeFileSync(graphFile, JSON.stringify({ status: 'ok', data: { graph: serialized, stats } }, null, 2), 'utf-8');
49
+ }
50
+ function formatAsMarkdown(result) {
51
+ const lines = [];
52
+ lines.push('## Entity Obfuscation');
53
+ lines.push('');
54
+ lines.push(`**Mode:** ${result.mode}`);
55
+ lines.push(`**Total entities:** ${result.stats.totalEntities}`);
56
+ lines.push(`**Already obfuscated:** ${result.stats.alreadyObfuscated}`);
57
+ lines.push(`**Need obfuscation:** ${result.stats.needObfuscation}`);
58
+ lines.push('');
59
+ if (result.mode === 'list') {
60
+ lines.push('### Candidates');
61
+ lines.push('');
62
+ for (const c of result.candidates) {
63
+ const status = c.hasObfuscatedLabel
64
+ ? `✓ ${c.obfuscatedLabel}`
65
+ : '✗ needs obfuscation';
66
+ lines.push(`- **${c.label}** (${c.entityType ?? 'unknown'}): ${status}`);
67
+ }
68
+ lines.push('');
69
+ }
70
+ if (result.mode === 'fallback_rules' && result.fallbackResults) {
71
+ lines.push('### Fallback Rules Applied ⚠️ *experimental*');
72
+ lines.push('');
73
+ lines.push('| Original | Obfuscated | Rule |');
74
+ lines.push('|----------|------------|------|');
75
+ for (const r of result.fallbackResults) {
76
+ lines.push(`| ${r.original} | ${r.obfuscated} | ${r.rule} |`);
77
+ }
78
+ lines.push('');
79
+ lines.push('*Fallback rules are experimental — they preserve too many identifying cues for true obfuscation.*');
80
+ lines.push('');
81
+ }
82
+ return lines.join('\n');
83
+ }
84
+ export async function runGraphObfuscateCommand(options) {
85
+ const graphFile = resolveGraphFile(options.graphFile);
86
+ const graph = loadGraph(graphFile);
87
+ if (!graph) {
88
+ const envelope = createErrorEnvelope('GRAPH_LOAD_FAILED', `Failed to load graph from: ${graphFile}`, { hint: 'Ensure the file exists and contains a valid graphology graph' });
89
+ console.log(JSON.stringify(envelope, null, 2));
90
+ return 1;
91
+ }
92
+ const mode = options.fallbackRules ? 'fallback_rules' : 'list';
93
+ const config = {
94
+ mode,
95
+ skipEntityTypes: options.skipEntityTypes,
96
+ };
97
+ const result = runGraphObfuscate(graph, config);
98
+ // Save graph if fallback rules were applied (they mutate the graph)
99
+ if (mode === 'fallback_rules' && result.fallbackResults && result.fallbackResults.length > 0) {
100
+ saveGraph(graphFile, graph);
101
+ }
102
+ if (options.format === 'md') {
103
+ console.log(formatAsMarkdown(result));
104
+ }
105
+ else {
106
+ console.log(JSON.stringify(createSuccessEnvelope(result), null, 2));
107
+ }
108
+ return 0;
109
+ }
110
+ //# sourceMappingURL=graph-obfuscate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-obfuscate.js","sourceRoot":"","sources":["../../src/commands/graph-obfuscate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * graph-search subcommand — Keyword search across entity labels
3
+ */
4
+ export interface GraphSearchOptions {
5
+ session: string;
6
+ keyword: string;
7
+ limit: number;
8
+ format?: 'json' | 'md';
9
+ }
10
+ export declare function runGraphSearch(options: GraphSearchOptions): Promise<number>;
11
+ //# sourceMappingURL=graph-search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-search.d.ts","sourceRoot":"","sources":["../../src/commands/graph-search.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAWjF"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * graph-search subcommand — Keyword search across entity labels
3
+ */
4
+ import { resolveSessionPath, loadSessionGraph } from '../deep/session.js';
5
+ import { createSuccessEnvelope } from '../protocol.js';
6
+ import { searchEntities, formatSearchAsMarkdown } from '../deep/graph-explore.js';
7
+ export async function runGraphSearch(options) {
8
+ const sessionDir = resolveSessionPath(options.session);
9
+ const graph = loadSessionGraph(sessionDir);
10
+ const results = searchEntities(graph, options.keyword, options.limit);
11
+ if (options.format === 'md') {
12
+ console.log(formatSearchAsMarkdown(results, options.keyword));
13
+ }
14
+ else {
15
+ console.log(JSON.stringify(createSuccessEnvelope({ keyword: options.keyword, results }), null, 2));
16
+ }
17
+ return 0;
18
+ }
19
+ //# sourceMappingURL=graph-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-search.js","sourceRoot":"","sources":["../../src/commands/graph-search.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AASlF,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAA2B;IAC5D,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAEtE,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAClE,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACvG,CAAC;IACD,OAAO,CAAC,CAAC;AACb,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * graph-traverse subcommand — Traverse reasoning path by path node ID
3
+ */
4
+ export interface GraphTraverseOptions {
5
+ session: string;
6
+ pathId: string;
7
+ format?: 'json' | 'md';
8
+ }
9
+ export declare function runGraphTraverse(options: GraphTraverseOptions): Promise<number>;
10
+ //# sourceMappingURL=graph-traverse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-traverse.d.ts","sourceRoot":"","sources":["../../src/commands/graph-traverse.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,MAAM,WAAW,oBAAoB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAiCrF"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * graph-traverse subcommand — Traverse reasoning path by path node ID
3
+ */
4
+ import { resolveSessionPath, loadSessionGraph } from '../deep/session.js';
5
+ import { createSuccessEnvelope, createErrorEnvelope } from '../protocol.js';
6
+ import { traversePath, formatTraverseAsMarkdown } from '../deep/graph-explore.js';
7
+ export async function runGraphTraverse(options) {
8
+ const sessionDir = resolveSessionPath(options.session);
9
+ const graph = loadSessionGraph(sessionDir);
10
+ // Check if graph has any path nodes
11
+ let pathCount = 0;
12
+ graph.forEachNode((_node, attrs) => {
13
+ if (attrs.type === 'path')
14
+ pathCount++;
15
+ });
16
+ if (pathCount === 0) {
17
+ const envelope = createErrorEnvelope('NO_PATHS', '当前图谱尚无推理路径。请先通过 graph-preprocess 和 graph-add 构建语义层。', {
18
+ hint: 'Run: sxng graph-preprocess <session> then sxng graph-add <session> --data \'...\'',
19
+ });
20
+ console.log(JSON.stringify(envelope, null, 2));
21
+ return 1;
22
+ }
23
+ const result = traversePath(graph, options.pathId);
24
+ if ('error' in result) {
25
+ const envelope = createErrorEnvelope('PATH_NOT_FOUND', result.error, {
26
+ details: { availablePaths: result.availablePaths },
27
+ });
28
+ console.log(JSON.stringify(envelope, null, 2));
29
+ return 1;
30
+ }
31
+ if (options.format === 'md') {
32
+ console.log(formatTraverseAsMarkdown(result));
33
+ }
34
+ else {
35
+ console.log(JSON.stringify(createSuccessEnvelope(result), null, 2));
36
+ }
37
+ return 0;
38
+ }
39
+ //# sourceMappingURL=graph-traverse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-traverse.js","sourceRoot":"","sources":["../../src/commands/graph-traverse.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE1E,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAQlF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAA6B;IAChE,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAE3C,oCAAoC;IACpC,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,CAAC,WAAW,CAAC,CAAC,KAAa,EAAE,KAAqB,EAAE,EAAE;QACvD,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;YAAE,SAAS,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;IACH,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,UAAU,EAAE,qDAAqD,EAAE;YACpG,IAAI,EAAE,mFAAmF;SAC5F,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,CAAC;IACb,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnD,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;QACpB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,gBAAgB,EAAE,MAAM,CAAC,KAAK,EAAE;YACjE,OAAO,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE;SACrD,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,CAAC;IACb,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,CAAC,CAAC;AACb,CAAC"}
@@ -1,11 +1,13 @@
1
1
  /**
2
2
  * Query-graph subcommand - BFS subgraph extraction from knowledge graph
3
3
  */
4
+ import { SamplingStrategy } from '../deep/graph-sampling.js';
4
5
  export interface QueryGraphOptions {
5
6
  graphFile: string;
6
7
  seeds: string[];
7
8
  depth: number;
8
9
  format?: 'json' | 'md';
10
+ strategy?: SamplingStrategy;
9
11
  }
10
12
  export declare function runQueryGraph(options: QueryGraphOptions): Promise<number>;
11
13
  //# sourceMappingURL=query-graph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query-graph.d.ts","sourceRoot":"","sources":["../../src/commands/query-graph.ts"],"names":[],"mappings":"AAAA;;GAEG;AA2CH,MAAM,WAAW,iBAAiB;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAsI/E"}
1
+ {"version":3,"file":"query-graph.d.ts","sourceRoot":"","sources":["../../src/commands/query-graph.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EAAe,gBAAgB,EAAkB,MAAM,2BAA2B,CAAC;AAqC1F,MAAM,WAAW,iBAAiB;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC/B;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CA+M/E"}
@@ -6,13 +6,14 @@ import { join } from 'path';
6
6
  import { homedir } from 'os';
7
7
  import { deserializeGraph, bfsSubgraph, serializeGraph, graphStats } from '../deep/graph.js';
8
8
  import { createSuccessEnvelope, createErrorEnvelope } from '../protocol.js';
9
+ import { sampleGraph } from '../deep/graph-sampling.js';
9
10
  /** Resolve graph file path — if directory (session), use graph.json inside it.
10
- * Pure name (no separators) is resolved to ~/.sxng/sessions/<name>
11
+ * Pure name (no separators) is resolved to ~/sxng-cli/sessions/<name>
11
12
  */
12
13
  function resolveGraphFile(path) {
13
14
  // Pure name without path separators: resolve to default sessions dir
14
15
  if (!path.includes('/') && !path.includes('\\')) {
15
- path = join(homedir(), '.sxng', 'sessions', path);
16
+ path = join(homedir(), 'sxng-cli', 'sessions', path);
16
17
  }
17
18
  try {
18
19
  if (statSync(path).isDirectory()) {
@@ -100,6 +101,71 @@ export async function runQueryGraph(options) {
100
101
  console.log(JSON.stringify(envelope, null, 2));
101
102
  return 1;
102
103
  }
104
+ // If --strategy is specified, use sampling instead of BFS
105
+ if (options.strategy) {
106
+ // Filter seeds to entity nodes only for sampling
107
+ const entitySeeds = resolvedSeeds.filter(id => graph.getNodeAttributes(id).type === 'entity');
108
+ if (entitySeeds.length === 0) {
109
+ const envelope = createErrorEnvelope('NO_ENTITY_SEEDS', 'Sampling strategies require entity seed nodes (e:xxx)', { hint: 'Use --seeds with entity names like "tokio" or IDs like "e:tokio"' });
110
+ console.log(JSON.stringify(envelope, null, 2));
111
+ return 1;
112
+ }
113
+ const samplingResult = sampleGraph(graph, {
114
+ strategy: options.strategy,
115
+ seedEntities: entitySeeds,
116
+ maxHops: options.depth,
117
+ });
118
+ if (options.format === 'md') {
119
+ const lines = [];
120
+ lines.push(`Sampling: ${samplingResult.strategy} (seeds: ${entitySeeds.join(', ')}, maxHops: ${options.depth})`);
121
+ lines.push(`Entities: ${samplingResult.entities.length}, Edges: ${samplingResult.edges.length}, Hops: ${samplingResult.hopsCovered}`);
122
+ lines.push('');
123
+ if (samplingResult.entities.length > 0) {
124
+ lines.push('Entities:');
125
+ for (const e of samplingResult.entities) {
126
+ const parts = [e.label];
127
+ if (e.entityType)
128
+ parts.push(`type=${e.entityType}`);
129
+ parts.push(`degree=${e.degree}`);
130
+ if (e.score)
131
+ parts.push(`score=${e.score.toFixed(2)}`);
132
+ lines.push(` ${e.id}: ${parts.join(', ')}`);
133
+ }
134
+ }
135
+ if (samplingResult.edges.length > 0) {
136
+ lines.push('');
137
+ lines.push('Edges:');
138
+ for (const edge of samplingResult.edges) {
139
+ const srcLabel = graph.getNodeAttributes(edge.source)?.label ?? edge.source;
140
+ const tgtLabel = graph.getNodeAttributes(edge.target)?.label ?? edge.target;
141
+ lines.push(` ${srcLabel} → (${edge.relation}, w=${edge.weight.toFixed(2)}) → ${tgtLabel}`);
142
+ }
143
+ }
144
+ if (Object.keys(samplingResult.metadata).length > 0) {
145
+ lines.push('');
146
+ lines.push('Metadata:');
147
+ for (const [key, value] of Object.entries(samplingResult.metadata)) {
148
+ lines.push(` ${key}: ${value}`);
149
+ }
150
+ }
151
+ console.log(lines.join('\n'));
152
+ }
153
+ else {
154
+ const envelope = createSuccessEnvelope({
155
+ strategy: samplingResult.strategy,
156
+ seeds: entitySeeds,
157
+ maxHops: options.depth,
158
+ entityCount: samplingResult.entities.length,
159
+ edgeCount: samplingResult.edges.length,
160
+ hopsCovered: samplingResult.hopsCovered,
161
+ entities: samplingResult.entities,
162
+ edges: samplingResult.edges,
163
+ metadata: samplingResult.metadata,
164
+ });
165
+ console.log(JSON.stringify(envelope, null, 2));
166
+ }
167
+ return 0;
168
+ }
103
169
  const subgraph = bfsSubgraph(graph, resolvedSeeds, options.depth);
104
170
  const serialized = serializeGraph(subgraph);
105
171
  const stats = graphStats(subgraph);
@@ -1 +1 @@
1
- {"version":3,"file":"query-graph.js","sourceRoot":"","sources":["../../src/commands/query-graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query-graph.js","sourceRoot":"","sources":["../../src/commands/query-graph.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import { createSuccessEnvelope } from '../protocol.js';
7
7
  import { homedir } from 'os';
8
8
  /** Default session root directory */
9
9
  export function getDefaultSessionRoot() {
10
- return join(homedir(), '.sxng', 'sessions');
10
+ return join(homedir(), 'sxng-cli', 'sessions');
11
11
  }
12
12
  /** Load session meta.json */
13
13
  export function loadSessionMeta(sessionDir) {