causantic 0.5.2 → 0.5.4
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 +56 -56
- package/config.schema.json +15 -1
- package/dist/cli/commands/archive.d.ts.map +1 -1
- package/dist/cli/commands/archive.js +53 -7
- package/dist/cli/commands/archive.js.map +1 -1
- package/dist/config/loader.d.ts +4 -0
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +18 -0
- package/dist/config/loader.js.map +1 -1
- package/dist/config/memory-config.d.ts +5 -2
- package/dist/config/memory-config.d.ts.map +1 -1
- package/dist/config/memory-config.js +3 -1
- package/dist/config/memory-config.js.map +1 -1
- package/dist/dashboard/client/assets/index-BmZeW-Jd.css +1 -0
- package/dist/dashboard/client/assets/{index-DtSi-1L8.js → index-D_X4i2Yn.js} +31 -31
- package/dist/dashboard/client/index.html +2 -2
- package/dist/dashboard/routes/search.d.ts.map +1 -1
- package/dist/dashboard/routes/search.js +62 -15
- package/dist/dashboard/routes/search.js.map +1 -1
- package/dist/eval/collection-benchmark/history.d.ts.map +1 -1
- package/dist/eval/collection-benchmark/history.js +3 -0
- package/dist/eval/collection-benchmark/history.js.map +1 -1
- package/dist/eval/collection-benchmark/reporter.d.ts.map +1 -1
- package/dist/eval/collection-benchmark/reporter.js +3 -0
- package/dist/eval/collection-benchmark/reporter.js.map +1 -1
- package/dist/eval/collection-benchmark/retrieval.d.ts.map +1 -1
- package/dist/eval/collection-benchmark/retrieval.js +25 -0
- package/dist/eval/collection-benchmark/retrieval.js.map +1 -1
- package/dist/eval/collection-benchmark/runner.d.ts.map +1 -1
- package/dist/eval/collection-benchmark/runner.js +3 -0
- package/dist/eval/collection-benchmark/runner.js.map +1 -1
- package/dist/eval/collection-benchmark/tuning.d.ts.map +1 -1
- package/dist/eval/collection-benchmark/tuning.js +15 -0
- package/dist/eval/collection-benchmark/tuning.js.map +1 -1
- package/dist/eval/collection-benchmark/types.d.ts +6 -0
- package/dist/eval/collection-benchmark/types.d.ts.map +1 -1
- package/dist/ingest/batch-ingest.d.ts +0 -4
- package/dist/ingest/batch-ingest.d.ts.map +1 -1
- package/dist/ingest/batch-ingest.js +0 -8
- package/dist/ingest/batch-ingest.js.map +1 -1
- package/dist/ingest/index.d.ts +1 -1
- package/dist/ingest/index.d.ts.map +1 -1
- package/dist/ingest/index.js +1 -1
- package/dist/ingest/index.js.map +1 -1
- package/dist/retrieval/cluster-expander.d.ts +2 -4
- package/dist/retrieval/cluster-expander.d.ts.map +1 -1
- package/dist/retrieval/cluster-expander.js +5 -5
- package/dist/retrieval/cluster-expander.js.map +1 -1
- package/dist/retrieval/mmr.d.ts +26 -0
- package/dist/retrieval/mmr.d.ts.map +1 -0
- package/dist/retrieval/mmr.js +79 -0
- package/dist/retrieval/mmr.js.map +1 -0
- package/dist/retrieval/search-assembler.d.ts.map +1 -1
- package/dist/retrieval/search-assembler.js +5 -2
- package/dist/retrieval/search-assembler.js.map +1 -1
- package/dist/storage/archive.d.ts +59 -6
- package/dist/storage/archive.d.ts.map +1 -1
- package/dist/storage/archive.js +259 -74
- package/dist/storage/archive.js.map +1 -1
- package/package.json +5 -5
- package/dist/dashboard/client/assets/index-DdImwNQ0.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-ingest.js","sourceRoot":"","sources":["../../src/ingest/batch-ingest.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"batch-ingest.js","sourceRoot":"","sources":["../../src/ingest/batch-ingest.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAyC,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,GAAG,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;AAwEzC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAW;IAChD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,UAAU,IAAI,CAAC,UAAkB;QACpC,IAAI,OAAO,CAAC;QACZ,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,oCAAoC,UAAU,EAAE,EAAE;gBAC1D,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAE9C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,2CAA2C;gBAC3C,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;oBAChE,SAAS;gBACX,CAAC;gBACD,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvB,CAAC;iBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3D,oDAAoD;gBACpD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAC5C,IAAI,iEAAiE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjF,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;IAEhB,sEAAsE;IACtE,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QAC1B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QAChD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,gCAAgC,IAAI,EAAE,EAAE;gBAC/C,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC,CAAC;YACH,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IAEF,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAC5C,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,YAAsB,EACtB,UAA8B,EAAE;IAEhC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,MAAM,EACJ,gBAAgB,EAChB,UAAU,EACV,cAAc,GAAG,YAAY,EAC7B,YAAY,GAAG,IAAI,EACnB,iBAAiB,GAAG,IAAI,EACxB,uBAAuB,GAAG,IAAI,EAC9B,iBAAiB,GAAG,IAAI,EACxB,eAAe,GAChB,GAAG,OAAO,CAAC;IAEZ,sCAAsC;IACtC,IAAI,SAAS,GAAG,YAAY,CAAC;IAC7B,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1E,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;YACrB,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,MAAM,MAAM,GAA2C,EAAE,CAAC;IAE1D,yEAAyE;IACzE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,QAAQ,EAAE,CAAC;IACpD,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;IACvC,IAAI,CAAC,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,cAAc,EAAE,CAAC;QAC1E,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,aAAa,GAAkB;QACnC,cAAc;QACd,YAAY,EAAE,YAAY;QAC1B,iBAAiB,EAAE,KAAK,EAAE,mCAAmC;QAC7D,QAAQ;QACR,uBAAuB;QACvB,iBAAiB;QACjB,eAAe;KAChB,CAAC;IAEF,oCAAoC;IACpC,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,IAAI,CAAC;QACH,8EAA8E;QAC9E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAE1B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;gBACxD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACrB,aAAa,IAAI,MAAM,CAAC,UAAU,CAAC;gBACnC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,cAAc,EAAE,CAAC;gBACnB,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACjE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YACxC,CAAC;YAED,gBAAgB,EAAE,CAAC;gBACjB,IAAI,EAAE,CAAC,GAAG,CAAC;gBACX,KAAK,EAAE,SAAS,CAAC,MAAM;gBACvB,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,aAAa;gBAC1B,YAAY,EAAE,cAAc;aAC7B,CAAC,CAAC;QACL,CAAC;QAED,sDAAsD;QACtD,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAC1B,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,UAAU,GAAG,MAAM,eAAe,EAAE,CAAC;YAC3C,iBAAiB,GAAG,UAAU,CAAC,UAAU,CAAC;QAC5C,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAC9D,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAE7D,OAAO;YACL,aAAa,EAAE,SAAS,CAAC,MAAM;YAC/B,YAAY;YACZ,YAAY;YACZ,UAAU,EAAE,MAAM,CAAC,MAAM;YACzB,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;YAC9D,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YAC5D,iBAAiB;YACjB,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1E,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1E,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YAClC,OAAO;YACP,MAAM;SACP,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAW,EACX,UAA8B,EAAE;IAEhC,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACjD,OAAO,WAAW,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC"}
|
package/dist/ingest/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export { ingestSession, chunkToInput } from './ingest-session.js';
|
|
5
5
|
export type { IngestOptions, IngestResult } from './ingest-session.js';
|
|
6
|
-
export { batchIngest, batchIngestDirectory, discoverSessions
|
|
6
|
+
export { batchIngest, batchIngestDirectory, discoverSessions } from './batch-ingest.js';
|
|
7
7
|
export type { BatchIngestOptions, BatchIngestResult } from './batch-ingest.js';
|
|
8
8
|
export { detectCausalTransitions, detectTransitions, getTimeGapMs } from './edge-detector.js';
|
|
9
9
|
export type { TransitionResult, DetectionOptions } from './edge-detector.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ingest/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAClE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGvE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ingest/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAClE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGvE,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACxF,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG/E,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC9F,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG7E,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,EACf,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG5D,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAClG,YAAY,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC"}
|
package/dist/ingest/index.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
// Main ingestion
|
|
5
5
|
export { ingestSession, chunkToInput } from './ingest-session.js';
|
|
6
6
|
// Batch ingestion
|
|
7
|
-
export { batchIngest, batchIngestDirectory, discoverSessions
|
|
7
|
+
export { batchIngest, batchIngestDirectory, discoverSessions } from './batch-ingest.js';
|
|
8
8
|
// Edge detection
|
|
9
9
|
export { detectCausalTransitions, detectTransitions, getTimeGapMs } from './edge-detector.js';
|
|
10
10
|
// Edge creation
|
package/dist/ingest/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ingest/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,iBAAiB;AACjB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGlE,kBAAkB;AAClB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ingest/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,iBAAiB;AACjB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGlE,kBAAkB;AAClB,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGxF,iBAAiB;AACjB,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG9F,gBAAgB;AAChB,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,EACf,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAG3B,wBAAwB;AACxB,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -10,16 +10,14 @@ export interface ClusterExpansionConfig {
|
|
|
10
10
|
maxClusters: number;
|
|
11
11
|
/** Max sibling chunks per cluster (default: 5) */
|
|
12
12
|
maxSiblings: number;
|
|
13
|
-
/** Score multiplier for siblings (default: 0.3) */
|
|
14
|
-
boostFactor: number;
|
|
15
13
|
}
|
|
16
14
|
export declare const DEFAULT_CLUSTER_EXPANSION: ClusterExpansionConfig;
|
|
17
15
|
/**
|
|
18
16
|
* Expand hits with cluster siblings.
|
|
19
17
|
*
|
|
20
18
|
* For each hit, looks up its cluster assignments, then fetches sibling chunks
|
|
21
|
-
* from the top clusters. Siblings get scored based on the hit's score
|
|
22
|
-
*
|
|
19
|
+
* from the top clusters. Siblings get scored based on the hit's score
|
|
20
|
+
* and their distance to the cluster centroid.
|
|
23
21
|
*
|
|
24
22
|
* @param hits - Ranked items from RRF fusion
|
|
25
23
|
* @param config - Expansion parameters
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cluster-expander.d.ts","sourceRoot":"","sources":["../../src/retrieval/cluster-expander.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,WAAW,sBAAsB;IACrC,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"cluster-expander.d.ts","sourceRoot":"","sources":["../../src/retrieval/cluster-expander.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,WAAW,sBAAsB;IACrC,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,yBAAyB,EAAE,sBAGvC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,EAAE,EAClB,MAAM,GAAE,sBAAkD,EAC1D,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAChC,UAAU,EAAE,CAqEd"}
|
|
@@ -9,14 +9,13 @@ import { vectorStore } from '../storage/vector-store.js';
|
|
|
9
9
|
export const DEFAULT_CLUSTER_EXPANSION = {
|
|
10
10
|
maxClusters: 3,
|
|
11
11
|
maxSiblings: 5,
|
|
12
|
-
boostFactor: 0.3,
|
|
13
12
|
};
|
|
14
13
|
/**
|
|
15
14
|
* Expand hits with cluster siblings.
|
|
16
15
|
*
|
|
17
16
|
* For each hit, looks up its cluster assignments, then fetches sibling chunks
|
|
18
|
-
* from the top clusters. Siblings get scored based on the hit's score
|
|
19
|
-
*
|
|
17
|
+
* from the top clusters. Siblings get scored based on the hit's score
|
|
18
|
+
* and their distance to the cluster centroid.
|
|
20
19
|
*
|
|
21
20
|
* @param hits - Ranked items from RRF fusion
|
|
22
21
|
* @param config - Expansion parameters
|
|
@@ -67,8 +66,9 @@ export function expandViaClusters(hits, config = DEFAULT_CLUSTER_EXPANSION, proj
|
|
|
67
66
|
const siblingAssignments = getChunkClusterAssignments(siblingId);
|
|
68
67
|
const siblingAssignment = siblingAssignments.find((a) => a.clusterId === assignment.clusterId);
|
|
69
68
|
const distance = siblingAssignment?.distance ?? 0.5;
|
|
70
|
-
// Score: best hit score *
|
|
71
|
-
|
|
69
|
+
// Score: best hit score * (1 - distance)
|
|
70
|
+
// MMR reranking (downstream) handles diversity — no boost penalty needed here.
|
|
71
|
+
const score = hit.score * (1 - distance);
|
|
72
72
|
if (score > 0) {
|
|
73
73
|
siblingItems.push({
|
|
74
74
|
chunkId: siblingId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cluster-expander.js","sourceRoot":"","sources":["../../src/retrieval/cluster-expander.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC7F,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"cluster-expander.js","sourceRoot":"","sources":["../../src/retrieval/cluster-expander.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maximal Marginal Relevance (MMR) reranking for diversity-aware search results.
|
|
3
|
+
*
|
|
4
|
+
* Reorders candidates using the formula:
|
|
5
|
+
* MMR(c) = lambda * relevance(c) - (1 - lambda) * max_similarity(c, Selected)
|
|
6
|
+
*
|
|
7
|
+
* This balances relevance with novelty: as selected items saturate a semantic
|
|
8
|
+
* neighbourhood, candidates from different topics become competitive.
|
|
9
|
+
*/
|
|
10
|
+
import type { RankedItem } from './rrf.js';
|
|
11
|
+
export interface MMRConfig {
|
|
12
|
+
/** 0 = pure diversity, 1 = pure relevance. Default: 0.7 */
|
|
13
|
+
lambda: number;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Reorder candidates using Maximal Marginal Relevance.
|
|
17
|
+
*
|
|
18
|
+
* First pick is always the top relevance hit (diversity = 0 when nothing selected).
|
|
19
|
+
* Subsequent picks balance relevance against redundancy with already-selected items.
|
|
20
|
+
*
|
|
21
|
+
* Short-circuits when fewer than 10 candidates (too few for diversity to matter).
|
|
22
|
+
* Candidates without embeddings are treated as novel (diversity = 0).
|
|
23
|
+
* Original RRF scores are preserved — only order changes.
|
|
24
|
+
*/
|
|
25
|
+
export declare function reorderWithMMR(candidates: RankedItem[], queryEmbedding: number[], config: MMRConfig): Promise<RankedItem[]>;
|
|
26
|
+
//# sourceMappingURL=mmr.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mmr.d.ts","sourceRoot":"","sources":["../../src/retrieval/mmr.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,WAAW,SAAS;IACxB,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;CAChB;AAKD;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,UAAU,EAAE,EACxB,cAAc,EAAE,MAAM,EAAE,EACxB,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,UAAU,EAAE,CAAC,CAgEvB"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maximal Marginal Relevance (MMR) reranking for diversity-aware search results.
|
|
3
|
+
*
|
|
4
|
+
* Reorders candidates using the formula:
|
|
5
|
+
* MMR(c) = lambda * relevance(c) - (1 - lambda) * max_similarity(c, Selected)
|
|
6
|
+
*
|
|
7
|
+
* This balances relevance with novelty: as selected items saturate a semantic
|
|
8
|
+
* neighbourhood, candidates from different topics become competitive.
|
|
9
|
+
*/
|
|
10
|
+
import { vectorStore } from '../storage/vector-store.js';
|
|
11
|
+
import { cosineSimilarity } from '../utils/angular-distance.js';
|
|
12
|
+
/** Minimum candidate count to trigger MMR. Below this, diversity doesn't matter. */
|
|
13
|
+
const MMR_THRESHOLD = 10;
|
|
14
|
+
/**
|
|
15
|
+
* Reorder candidates using Maximal Marginal Relevance.
|
|
16
|
+
*
|
|
17
|
+
* First pick is always the top relevance hit (diversity = 0 when nothing selected).
|
|
18
|
+
* Subsequent picks balance relevance against redundancy with already-selected items.
|
|
19
|
+
*
|
|
20
|
+
* Short-circuits when fewer than 10 candidates (too few for diversity to matter).
|
|
21
|
+
* Candidates without embeddings are treated as novel (diversity = 0).
|
|
22
|
+
* Original RRF scores are preserved — only order changes.
|
|
23
|
+
*/
|
|
24
|
+
export async function reorderWithMMR(candidates, queryEmbedding, config) {
|
|
25
|
+
if (candidates.length < MMR_THRESHOLD) {
|
|
26
|
+
return candidates;
|
|
27
|
+
}
|
|
28
|
+
const { lambda } = config;
|
|
29
|
+
// Fetch embeddings for all candidates
|
|
30
|
+
const embeddings = new Map();
|
|
31
|
+
for (const c of candidates) {
|
|
32
|
+
const emb = await vectorStore.get(c.chunkId);
|
|
33
|
+
if (emb) {
|
|
34
|
+
embeddings.set(c.chunkId, emb);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
// Normalize scores to [0,1] — candidates are pre-sorted by score descending
|
|
38
|
+
const maxScore = candidates[0].score;
|
|
39
|
+
const normalizedScores = new Map();
|
|
40
|
+
for (const c of candidates) {
|
|
41
|
+
normalizedScores.set(c.chunkId, maxScore > 0 ? c.score / maxScore : 0);
|
|
42
|
+
}
|
|
43
|
+
const selected = [];
|
|
44
|
+
const selectedEmbeddings = [];
|
|
45
|
+
const remaining = new Set(candidates.map((_, i) => i));
|
|
46
|
+
while (remaining.size > 0) {
|
|
47
|
+
let bestIdx = -1;
|
|
48
|
+
let bestMMR = -Infinity;
|
|
49
|
+
for (const idx of remaining) {
|
|
50
|
+
const c = candidates[idx];
|
|
51
|
+
const rel = normalizedScores.get(c.chunkId);
|
|
52
|
+
// Compute max similarity to already-selected items
|
|
53
|
+
let div = 0;
|
|
54
|
+
const cEmb = embeddings.get(c.chunkId);
|
|
55
|
+
if (cEmb && selectedEmbeddings.length > 0) {
|
|
56
|
+
for (const sEmb of selectedEmbeddings) {
|
|
57
|
+
const sim = cosineSimilarity(cEmb, sEmb);
|
|
58
|
+
if (sim > div)
|
|
59
|
+
div = sim;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// No embedding → div stays 0 (assume novel)
|
|
63
|
+
const mmr = lambda * rel - (1 - lambda) * div;
|
|
64
|
+
if (mmr > bestMMR) {
|
|
65
|
+
bestMMR = mmr;
|
|
66
|
+
bestIdx = idx;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
remaining.delete(bestIdx);
|
|
70
|
+
const picked = candidates[bestIdx];
|
|
71
|
+
selected.push(picked);
|
|
72
|
+
const pickedEmb = embeddings.get(picked.chunkId);
|
|
73
|
+
if (pickedEmb) {
|
|
74
|
+
selectedEmbeddings.push(pickedEmb);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return selected;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=mmr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mmr.js","sourceRoot":"","sources":["../../src/retrieval/mmr.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-assembler.d.ts","sourceRoot":"","sources":["../../src/retrieval/search-assembler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"search-assembler.d.ts","sourceRoot":"","sources":["../../src/retrieval/search-assembler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAiBH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAClC,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gDAAgD;IAChD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,MAAM,EAAE,KAAK,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;KAC3C,CAAC,CAAC;IACH,8BAA8B;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,gDAAgD;IAChD,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AA2BD;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CA6HnF;AA0FD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CA0BhC;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAKnD"}
|
|
@@ -15,6 +15,7 @@ import { approximateTokens } from '../utils/token-counter.js';
|
|
|
15
15
|
import { KeywordStore } from '../storage/keyword-store.js';
|
|
16
16
|
import { fuseRRF } from './rrf.js';
|
|
17
17
|
import { expandViaClusters } from './cluster-expander.js';
|
|
18
|
+
import { reorderWithMMR } from './mmr.js';
|
|
18
19
|
import { createLogger } from '../utils/logger.js';
|
|
19
20
|
const log = createLogger('search-assembler');
|
|
20
21
|
/**
|
|
@@ -46,7 +47,7 @@ export async function searchContext(request) {
|
|
|
46
47
|
const externalConfig = loadConfig();
|
|
47
48
|
const config = toRuntimeConfig(externalConfig);
|
|
48
49
|
const { query, currentSessionId, projectFilter, maxTokens = config.mcpMaxResponseTokens, vectorSearchLimit = 20, skipClusters = false, } = request;
|
|
49
|
-
const { hybridSearch, clusterExpansion } = config;
|
|
50
|
+
const { hybridSearch, clusterExpansion, mmrReranking } = config;
|
|
50
51
|
// 1. Embed query
|
|
51
52
|
const embedder = await getEmbedder();
|
|
52
53
|
const queryResult = await embedder.embed(query, true);
|
|
@@ -125,8 +126,10 @@ export async function searchContext(request) {
|
|
|
125
126
|
}
|
|
126
127
|
deduped.sort((a, b) => b.score - a.score);
|
|
127
128
|
}
|
|
129
|
+
// 7.5. MMR reranking (diversity-aware ordering)
|
|
130
|
+
const reordered = await reorderWithMMR(deduped, queryResult.embedding, mmrReranking);
|
|
128
131
|
// 8. Assemble within budget
|
|
129
|
-
const assembled = assembleWithinBudget(
|
|
132
|
+
const assembled = assembleWithinBudget(reordered, maxTokens, sourceMap);
|
|
130
133
|
return {
|
|
131
134
|
text: assembled.text,
|
|
132
135
|
tokenCount: assembled.tokenCount,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-assembler.js","sourceRoot":"","sources":["../../src/retrieval/search-assembler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAmB,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,MAAM,GAAG,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAAC;AA8C7C;;GAEG;AACH,IAAI,cAAc,GAAoB,IAAI,CAAC;AAE3C,KAAK,UAAU,WAAW;IACxB,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,cAAc,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,IAAI,kBAAkB,GAAwB,IAAI,CAAC;AAEnD,SAAS,eAAe;IACtB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,kBAAkB,GAAG,IAAI,YAAY,EAAE,CAAC;IAC1C,CAAC;IACD,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAsB;IACxD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,cAAc,GAAG,UAAU,EAAE,CAAC;IACpC,MAAM,MAAM,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IAE/C,MAAM,EACJ,KAAK,EACL,gBAAgB,EAChB,aAAa,EACb,SAAS,GAAG,MAAM,CAAC,oBAAoB,EACvC,iBAAiB,GAAG,EAAE,EACtB,YAAY,GAAG,KAAK,GACrB,GAAG,OAAO,CAAC;IAEZ,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"search-assembler.js","sourceRoot":"","sources":["../../src/retrieval/search-assembler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Export/import functionality for Causantic memory data.
|
|
3
3
|
*
|
|
4
|
-
* Supports encrypted and unencrypted archives.
|
|
4
|
+
* Supports encrypted and unencrypted archives with optional gzip compression.
|
|
5
|
+
* Archive format v1.1 adds vector embeddings and full cluster data.
|
|
5
6
|
*/
|
|
6
7
|
/** Archive metadata */
|
|
7
8
|
export interface ArchiveMetadata {
|
|
@@ -10,12 +11,16 @@ export interface ArchiveMetadata {
|
|
|
10
11
|
chunkCount: number;
|
|
11
12
|
edgeCount: number;
|
|
12
13
|
clusterCount: number;
|
|
14
|
+
vectorCount: number;
|
|
15
|
+
embeddingDimensions: number | null;
|
|
13
16
|
projects: string[];
|
|
14
17
|
}
|
|
15
18
|
/** Chunk data for export */
|
|
16
19
|
export interface ExportedChunk {
|
|
17
20
|
id: string;
|
|
21
|
+
sessionId: string;
|
|
18
22
|
sessionSlug: string;
|
|
23
|
+
projectPath: string | null;
|
|
19
24
|
content: string;
|
|
20
25
|
startTime: string;
|
|
21
26
|
endTime: string;
|
|
@@ -23,18 +28,33 @@ export interface ExportedChunk {
|
|
|
23
28
|
}
|
|
24
29
|
/** Edge data for export */
|
|
25
30
|
export interface ExportedEdge {
|
|
31
|
+
id: string;
|
|
26
32
|
source: string;
|
|
27
33
|
target: string;
|
|
28
34
|
type: string;
|
|
29
|
-
referenceType: string;
|
|
35
|
+
referenceType: string | null;
|
|
30
36
|
weight: number;
|
|
37
|
+
linkCount: number;
|
|
38
|
+
}
|
|
39
|
+
/** Cluster member with distance */
|
|
40
|
+
export interface ClusterMember {
|
|
41
|
+
chunkId: string;
|
|
42
|
+
distance: number;
|
|
31
43
|
}
|
|
32
44
|
/** Cluster data for export */
|
|
33
45
|
export interface ExportedCluster {
|
|
34
46
|
id: string;
|
|
35
|
-
name: string;
|
|
47
|
+
name: string | null;
|
|
36
48
|
description: string | null;
|
|
37
|
-
|
|
49
|
+
centroid: number[] | null;
|
|
50
|
+
exemplarIds: string[] | null;
|
|
51
|
+
membershipHash: string | null;
|
|
52
|
+
members: ClusterMember[];
|
|
53
|
+
}
|
|
54
|
+
/** Vector data for export */
|
|
55
|
+
export interface ExportedVector {
|
|
56
|
+
chunkId: string;
|
|
57
|
+
embedding: number[];
|
|
38
58
|
}
|
|
39
59
|
/** Complete archive structure */
|
|
40
60
|
export interface Archive {
|
|
@@ -45,6 +65,7 @@ export interface Archive {
|
|
|
45
65
|
chunks: ExportedChunk[];
|
|
46
66
|
edges: ExportedEdge[];
|
|
47
67
|
clusters: ExportedCluster[];
|
|
68
|
+
vectors: ExportedVector[];
|
|
48
69
|
}
|
|
49
70
|
/** Export options */
|
|
50
71
|
export interface ExportOptions {
|
|
@@ -58,6 +79,18 @@ export interface ExportOptions {
|
|
|
58
79
|
redactPaths?: boolean;
|
|
59
80
|
/** Redact code blocks */
|
|
60
81
|
redactCode?: boolean;
|
|
82
|
+
/** Skip vector embeddings */
|
|
83
|
+
noVectors?: boolean;
|
|
84
|
+
}
|
|
85
|
+
/** Export result */
|
|
86
|
+
export interface ExportResult {
|
|
87
|
+
chunkCount: number;
|
|
88
|
+
edgeCount: number;
|
|
89
|
+
clusterCount: number;
|
|
90
|
+
vectorCount: number;
|
|
91
|
+
fileSize: number;
|
|
92
|
+
compressed: boolean;
|
|
93
|
+
encrypted: boolean;
|
|
61
94
|
}
|
|
62
95
|
/** Import options */
|
|
63
96
|
export interface ImportOptions {
|
|
@@ -67,13 +100,33 @@ export interface ImportOptions {
|
|
|
67
100
|
password?: string;
|
|
68
101
|
/** Merge with existing data */
|
|
69
102
|
merge?: boolean;
|
|
103
|
+
/** Validate and report without importing */
|
|
104
|
+
dryRun?: boolean;
|
|
70
105
|
}
|
|
106
|
+
/** Import result */
|
|
107
|
+
export interface ImportResult {
|
|
108
|
+
chunkCount: number;
|
|
109
|
+
edgeCount: number;
|
|
110
|
+
clusterCount: number;
|
|
111
|
+
vectorCount: number;
|
|
112
|
+
dryRun: boolean;
|
|
113
|
+
}
|
|
114
|
+
/** Validation result */
|
|
115
|
+
export interface ValidationResult {
|
|
116
|
+
valid: boolean;
|
|
117
|
+
errors: string[];
|
|
118
|
+
warnings: string[];
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Validate an archive structure before import.
|
|
122
|
+
*/
|
|
123
|
+
export declare function validateArchive(archive: Archive): ValidationResult;
|
|
71
124
|
/**
|
|
72
125
|
* Export memory data to an archive.
|
|
73
126
|
*/
|
|
74
|
-
export declare function exportArchive(options: ExportOptions): Promise<
|
|
127
|
+
export declare function exportArchive(options: ExportOptions): Promise<ExportResult>;
|
|
75
128
|
/**
|
|
76
129
|
* Import memory data from an archive.
|
|
77
130
|
*/
|
|
78
|
-
export declare function importArchive(options: ImportOptions): Promise<
|
|
131
|
+
export declare function importArchive(options: ImportOptions): Promise<ImportResult>;
|
|
79
132
|
//# sourceMappingURL=archive.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../src/storage/archive.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../src/storage/archive.ts"],"names":[],"mappings":"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"}
|