@remnic/core 9.3.639 → 9.3.640
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/dist/access-cli.js +13 -13
- package/dist/access-http.js +10 -10
- package/dist/access-mcp.js +9 -9
- package/dist/access-service.js +8 -8
- package/dist/{chunk-BB6FNMMB.js → chunk-4GYGEKUB.js} +4 -4
- package/dist/{chunk-EDQVAMQI.js → chunk-6GIKAUTN.js} +2 -2
- package/dist/{chunk-4HFJQCJZ.js → chunk-7HYPN2GC.js} +2 -2
- package/dist/{chunk-Q6YIJGXJ.js → chunk-7OGJQP7T.js} +2 -2
- package/dist/{chunk-RW5DGAGO.js → chunk-7V36WCUW.js} +2 -2
- package/dist/{chunk-AFH2JXSF.js → chunk-C4YAIWDG.js} +2 -2
- package/dist/{chunk-ORFGK3XI.js → chunk-E6ZDCOHM.js} +2 -2
- package/dist/{chunk-TKWGAOLV.js → chunk-EEC4PCG5.js} +2 -2
- package/dist/{chunk-YR6GIWWY.js → chunk-GQL52GQ5.js} +2 -2
- package/dist/{chunk-77NAFXUD.js → chunk-H3HDXD3U.js} +2 -2
- package/dist/{chunk-LASA46TQ.js → chunk-HRXCPKN4.js} +2 -2
- package/dist/{chunk-4VTVCWVB.js → chunk-JFHEEDRY.js} +3 -3
- package/dist/{chunk-RAGXUVQW.js → chunk-KVUG7FF7.js} +4 -4
- package/dist/{chunk-DEDTFRH2.js → chunk-MUKXANAM.js} +14 -3
- package/dist/chunk-MUKXANAM.js.map +1 -0
- package/dist/chunk-O75CRYGF.js +15 -0
- package/dist/chunk-O75CRYGF.js.map +1 -0
- package/dist/{chunk-UI2UP7XX.js → chunk-SEOTBRO4.js} +2 -2
- package/dist/{chunk-52XI77OQ.js → chunk-UDZYZ5Q5.js} +3 -3
- package/dist/{chunk-FGRV3X3Y.js → chunk-UZBK2JR6.js} +8 -8
- package/dist/{chunk-2BHNQRE5.js → chunk-WAKPKNEX.js} +9 -9
- package/dist/{chunk-7R37SOT4.js → chunk-Y2XKJJEI.js} +2 -2
- package/dist/{chunk-BTY5XQG3.js → chunk-YMI4NRV7.js} +2 -2
- package/dist/cli.js +15 -15
- package/dist/compat/checks.js +2 -2
- package/dist/connectors/index.js +2 -2
- package/dist/conversation-index/backend.js +3 -3
- package/dist/conversation-index/faiss-adapter.js +2 -2
- package/dist/extraction.js +3 -3
- package/dist/index.js +21 -21
- package/dist/local-llm.js +2 -2
- package/dist/migrate/from-engram.js +2 -2
- package/dist/namespaces/migrate.js +7 -7
- package/dist/namespaces/search.js +6 -6
- package/dist/network/tailscale.js +2 -2
- package/dist/operator-toolkit.js +8 -8
- package/dist/orchestrator.js +12 -12
- package/dist/qmd.d.ts +3 -0
- package/dist/qmd.js +2 -2
- package/dist/runtime/child-process.js +1 -1
- package/dist/schemas.d.ts +22 -22
- package/dist/search/factory.js +5 -5
- package/dist/search/index.js +5 -5
- package/dist/summarizer.js +3 -3
- package/dist/transfer/types.d.ts +12 -12
- package/package.json +3 -1
- package/src/qmd.test.ts +35 -0
- package/src/qmd.ts +16 -1
- package/src/runtime/child-process.test.ts +15 -0
- package/src/runtime/child-process.ts +9 -22
- package/dist/chunk-DEDTFRH2.js.map +0 -1
- package/dist/chunk-NNVTUXEB.js +0 -23
- package/dist/chunk-NNVTUXEB.js.map +0 -1
- /package/dist/{chunk-BB6FNMMB.js.map → chunk-4GYGEKUB.js.map} +0 -0
- /package/dist/{chunk-EDQVAMQI.js.map → chunk-6GIKAUTN.js.map} +0 -0
- /package/dist/{chunk-4HFJQCJZ.js.map → chunk-7HYPN2GC.js.map} +0 -0
- /package/dist/{chunk-Q6YIJGXJ.js.map → chunk-7OGJQP7T.js.map} +0 -0
- /package/dist/{chunk-RW5DGAGO.js.map → chunk-7V36WCUW.js.map} +0 -0
- /package/dist/{chunk-AFH2JXSF.js.map → chunk-C4YAIWDG.js.map} +0 -0
- /package/dist/{chunk-ORFGK3XI.js.map → chunk-E6ZDCOHM.js.map} +0 -0
- /package/dist/{chunk-TKWGAOLV.js.map → chunk-EEC4PCG5.js.map} +0 -0
- /package/dist/{chunk-YR6GIWWY.js.map → chunk-GQL52GQ5.js.map} +0 -0
- /package/dist/{chunk-77NAFXUD.js.map → chunk-H3HDXD3U.js.map} +0 -0
- /package/dist/{chunk-LASA46TQ.js.map → chunk-HRXCPKN4.js.map} +0 -0
- /package/dist/{chunk-4VTVCWVB.js.map → chunk-JFHEEDRY.js.map} +0 -0
- /package/dist/{chunk-RAGXUVQW.js.map → chunk-KVUG7FF7.js.map} +0 -0
- /package/dist/{chunk-UI2UP7XX.js.map → chunk-SEOTBRO4.js.map} +0 -0
- /package/dist/{chunk-52XI77OQ.js.map → chunk-UDZYZ5Q5.js.map} +0 -0
- /package/dist/{chunk-FGRV3X3Y.js.map → chunk-UZBK2JR6.js.map} +0 -0
- /package/dist/{chunk-2BHNQRE5.js.map → chunk-WAKPKNEX.js.map} +0 -0
- /package/dist/{chunk-7R37SOT4.js.map → chunk-Y2XKJJEI.js.map} +0 -0
- /package/dist/{chunk-BTY5XQG3.js.map → chunk-YMI4NRV7.js.map} +0 -0
package/dist/schemas.d.ts
CHANGED
|
@@ -275,12 +275,12 @@ declare const EntityMentionSchema: z.ZodObject<{
|
|
|
275
275
|
title: z.ZodString;
|
|
276
276
|
facts: z.ZodArray<z.ZodString, "many">;
|
|
277
277
|
}, "strip", z.ZodTypeAny, {
|
|
278
|
-
key: string;
|
|
279
278
|
title: string;
|
|
279
|
+
key: string;
|
|
280
280
|
facts: string[];
|
|
281
281
|
}, {
|
|
282
|
-
key: string;
|
|
283
282
|
title: string;
|
|
283
|
+
key: string;
|
|
284
284
|
facts: string[];
|
|
285
285
|
}>, "many">>>;
|
|
286
286
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -288,8 +288,8 @@ declare const EntityMentionSchema: z.ZodObject<{
|
|
|
288
288
|
name: string;
|
|
289
289
|
facts: string[];
|
|
290
290
|
structuredSections?: {
|
|
291
|
-
key: string;
|
|
292
291
|
title: string;
|
|
292
|
+
key: string;
|
|
293
293
|
facts: string[];
|
|
294
294
|
}[] | null | undefined;
|
|
295
295
|
promptedByQuestion?: string | null | undefined;
|
|
@@ -298,8 +298,8 @@ declare const EntityMentionSchema: z.ZodObject<{
|
|
|
298
298
|
name: string;
|
|
299
299
|
facts: string[];
|
|
300
300
|
structuredSections?: {
|
|
301
|
-
key: string;
|
|
302
301
|
title: string;
|
|
302
|
+
key: string;
|
|
303
303
|
facts: string[];
|
|
304
304
|
}[] | null | undefined;
|
|
305
305
|
promptedByQuestion?: string | null | undefined;
|
|
@@ -584,12 +584,12 @@ declare const ProactiveExtractionResultSchema: z.ZodObject<{
|
|
|
584
584
|
title: z.ZodString;
|
|
585
585
|
facts: z.ZodArray<z.ZodString, "many">;
|
|
586
586
|
}, "strip", z.ZodTypeAny, {
|
|
587
|
-
key: string;
|
|
588
587
|
title: string;
|
|
588
|
+
key: string;
|
|
589
589
|
facts: string[];
|
|
590
590
|
}, {
|
|
591
|
-
key: string;
|
|
592
591
|
title: string;
|
|
592
|
+
key: string;
|
|
593
593
|
facts: string[];
|
|
594
594
|
}>, "many">>>;
|
|
595
595
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -597,8 +597,8 @@ declare const ProactiveExtractionResultSchema: z.ZodObject<{
|
|
|
597
597
|
name: string;
|
|
598
598
|
facts: string[];
|
|
599
599
|
structuredSections?: {
|
|
600
|
-
key: string;
|
|
601
600
|
title: string;
|
|
601
|
+
key: string;
|
|
602
602
|
facts: string[];
|
|
603
603
|
}[] | null | undefined;
|
|
604
604
|
promptedByQuestion?: string | null | undefined;
|
|
@@ -607,8 +607,8 @@ declare const ProactiveExtractionResultSchema: z.ZodObject<{
|
|
|
607
607
|
name: string;
|
|
608
608
|
facts: string[];
|
|
609
609
|
structuredSections?: {
|
|
610
|
-
key: string;
|
|
611
610
|
title: string;
|
|
611
|
+
key: string;
|
|
612
612
|
facts: string[];
|
|
613
613
|
}[] | null | undefined;
|
|
614
614
|
promptedByQuestion?: string | null | undefined;
|
|
@@ -665,8 +665,8 @@ declare const ProactiveExtractionResultSchema: z.ZodObject<{
|
|
|
665
665
|
name: string;
|
|
666
666
|
facts: string[];
|
|
667
667
|
structuredSections?: {
|
|
668
|
-
key: string;
|
|
669
668
|
title: string;
|
|
669
|
+
key: string;
|
|
670
670
|
facts: string[];
|
|
671
671
|
}[] | null | undefined;
|
|
672
672
|
promptedByQuestion?: string | null | undefined;
|
|
@@ -714,8 +714,8 @@ declare const ProactiveExtractionResultSchema: z.ZodObject<{
|
|
|
714
714
|
name: string;
|
|
715
715
|
facts: string[];
|
|
716
716
|
structuredSections?: {
|
|
717
|
-
key: string;
|
|
718
717
|
title: string;
|
|
718
|
+
key: string;
|
|
719
719
|
facts: string[];
|
|
720
720
|
}[] | null | undefined;
|
|
721
721
|
promptedByQuestion?: string | null | undefined;
|
|
@@ -952,12 +952,12 @@ declare const ExtractionResultSchema: z.ZodObject<{
|
|
|
952
952
|
title: z.ZodString;
|
|
953
953
|
facts: z.ZodArray<z.ZodString, "many">;
|
|
954
954
|
}, "strip", z.ZodTypeAny, {
|
|
955
|
-
key: string;
|
|
956
955
|
title: string;
|
|
956
|
+
key: string;
|
|
957
957
|
facts: string[];
|
|
958
958
|
}, {
|
|
959
|
-
key: string;
|
|
960
959
|
title: string;
|
|
960
|
+
key: string;
|
|
961
961
|
facts: string[];
|
|
962
962
|
}>, "many">>>;
|
|
963
963
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -965,8 +965,8 @@ declare const ExtractionResultSchema: z.ZodObject<{
|
|
|
965
965
|
name: string;
|
|
966
966
|
facts: string[];
|
|
967
967
|
structuredSections?: {
|
|
968
|
-
key: string;
|
|
969
968
|
title: string;
|
|
969
|
+
key: string;
|
|
970
970
|
facts: string[];
|
|
971
971
|
}[] | null | undefined;
|
|
972
972
|
promptedByQuestion?: string | null | undefined;
|
|
@@ -975,8 +975,8 @@ declare const ExtractionResultSchema: z.ZodObject<{
|
|
|
975
975
|
name: string;
|
|
976
976
|
facts: string[];
|
|
977
977
|
structuredSections?: {
|
|
978
|
-
key: string;
|
|
979
978
|
title: string;
|
|
979
|
+
key: string;
|
|
980
980
|
facts: string[];
|
|
981
981
|
}[] | null | undefined;
|
|
982
982
|
promptedByQuestion?: string | null | undefined;
|
|
@@ -1047,8 +1047,8 @@ declare const ExtractionResultSchema: z.ZodObject<{
|
|
|
1047
1047
|
name: string;
|
|
1048
1048
|
facts: string[];
|
|
1049
1049
|
structuredSections?: {
|
|
1050
|
-
key: string;
|
|
1051
1050
|
title: string;
|
|
1051
|
+
key: string;
|
|
1052
1052
|
facts: string[];
|
|
1053
1053
|
}[] | null | undefined;
|
|
1054
1054
|
promptedByQuestion?: string | null | undefined;
|
|
@@ -1102,8 +1102,8 @@ declare const ExtractionResultSchema: z.ZodObject<{
|
|
|
1102
1102
|
name: string;
|
|
1103
1103
|
facts: string[];
|
|
1104
1104
|
structuredSections?: {
|
|
1105
|
-
key: string;
|
|
1106
1105
|
title: string;
|
|
1106
|
+
key: string;
|
|
1107
1107
|
facts: string[];
|
|
1108
1108
|
}[] | null | undefined;
|
|
1109
1109
|
promptedByQuestion?: string | null | undefined;
|
|
@@ -1172,12 +1172,12 @@ declare const ConsolidationResultSchema: z.ZodObject<{
|
|
|
1172
1172
|
title: z.ZodString;
|
|
1173
1173
|
facts: z.ZodArray<z.ZodString, "many">;
|
|
1174
1174
|
}, "strip", z.ZodTypeAny, {
|
|
1175
|
-
key: string;
|
|
1176
1175
|
title: string;
|
|
1176
|
+
key: string;
|
|
1177
1177
|
facts: string[];
|
|
1178
1178
|
}, {
|
|
1179
|
-
key: string;
|
|
1180
1179
|
title: string;
|
|
1180
|
+
key: string;
|
|
1181
1181
|
facts: string[];
|
|
1182
1182
|
}>, "many">>>;
|
|
1183
1183
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -1185,8 +1185,8 @@ declare const ConsolidationResultSchema: z.ZodObject<{
|
|
|
1185
1185
|
name: string;
|
|
1186
1186
|
facts: string[];
|
|
1187
1187
|
structuredSections?: {
|
|
1188
|
-
key: string;
|
|
1189
1188
|
title: string;
|
|
1189
|
+
key: string;
|
|
1190
1190
|
facts: string[];
|
|
1191
1191
|
}[] | null | undefined;
|
|
1192
1192
|
promptedByQuestion?: string | null | undefined;
|
|
@@ -1195,8 +1195,8 @@ declare const ConsolidationResultSchema: z.ZodObject<{
|
|
|
1195
1195
|
name: string;
|
|
1196
1196
|
facts: string[];
|
|
1197
1197
|
structuredSections?: {
|
|
1198
|
-
key: string;
|
|
1199
1198
|
title: string;
|
|
1199
|
+
key: string;
|
|
1200
1200
|
facts: string[];
|
|
1201
1201
|
}[] | null | undefined;
|
|
1202
1202
|
promptedByQuestion?: string | null | undefined;
|
|
@@ -1215,8 +1215,8 @@ declare const ConsolidationResultSchema: z.ZodObject<{
|
|
|
1215
1215
|
name: string;
|
|
1216
1216
|
facts: string[];
|
|
1217
1217
|
structuredSections?: {
|
|
1218
|
-
key: string;
|
|
1219
1218
|
title: string;
|
|
1219
|
+
key: string;
|
|
1220
1220
|
facts: string[];
|
|
1221
1221
|
}[] | null | undefined;
|
|
1222
1222
|
promptedByQuestion?: string | null | undefined;
|
|
@@ -1235,8 +1235,8 @@ declare const ConsolidationResultSchema: z.ZodObject<{
|
|
|
1235
1235
|
name: string;
|
|
1236
1236
|
facts: string[];
|
|
1237
1237
|
structuredSections?: {
|
|
1238
|
-
key: string;
|
|
1239
1238
|
title: string;
|
|
1239
|
+
key: string;
|
|
1240
1240
|
facts: string[];
|
|
1241
1241
|
}[] | null | undefined;
|
|
1242
1242
|
promptedByQuestion?: string | null | undefined;
|
package/dist/search/factory.js
CHANGED
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
createConversationIndexRuntime,
|
|
3
3
|
createConversationSearchBackend,
|
|
4
4
|
createSearchBackend
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-KVUG7FF7.js";
|
|
6
6
|
import "../chunk-JOASJWQR.js";
|
|
7
7
|
import "../chunk-RN7MUWON.js";
|
|
8
8
|
import "../chunk-3MAONBX3.js";
|
|
@@ -11,13 +11,13 @@ import "../chunk-CYEPCZN5.js";
|
|
|
11
11
|
import "../chunk-DCGT4FPP.js";
|
|
12
12
|
import "../chunk-Q4CAQGKQ.js";
|
|
13
13
|
import "../chunk-CINZGPSJ.js";
|
|
14
|
-
import "../chunk-
|
|
15
|
-
import "../chunk-
|
|
14
|
+
import "../chunk-7OGJQP7T.js";
|
|
15
|
+
import "../chunk-E6ZDCOHM.js";
|
|
16
16
|
import "../chunk-OIF36KGD.js";
|
|
17
17
|
import "../chunk-7DTASS5T.js";
|
|
18
|
-
import "../chunk-
|
|
18
|
+
import "../chunk-MUKXANAM.js";
|
|
19
19
|
import "../chunk-FAV25DUZ.js";
|
|
20
|
-
import "../chunk-
|
|
20
|
+
import "../chunk-O75CRYGF.js";
|
|
21
21
|
import "../chunk-3ONXXHQO.js";
|
|
22
22
|
import "../chunk-CPPS65WS.js";
|
|
23
23
|
import "../chunk-JUC24CTX.js";
|
package/dist/search/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
createConversationIndexRuntime,
|
|
3
3
|
createConversationSearchBackend,
|
|
4
4
|
createSearchBackend
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-KVUG7FF7.js";
|
|
6
6
|
import {
|
|
7
7
|
RemoteSearchBackend
|
|
8
8
|
} from "../chunk-JOASJWQR.js";
|
|
@@ -25,13 +25,13 @@ import {
|
|
|
25
25
|
scanMemoryDir
|
|
26
26
|
} from "../chunk-Q4CAQGKQ.js";
|
|
27
27
|
import "../chunk-CINZGPSJ.js";
|
|
28
|
-
import "../chunk-
|
|
29
|
-
import "../chunk-
|
|
28
|
+
import "../chunk-7OGJQP7T.js";
|
|
29
|
+
import "../chunk-E6ZDCOHM.js";
|
|
30
30
|
import "../chunk-OIF36KGD.js";
|
|
31
31
|
import "../chunk-7DTASS5T.js";
|
|
32
|
-
import "../chunk-
|
|
32
|
+
import "../chunk-MUKXANAM.js";
|
|
33
33
|
import "../chunk-FAV25DUZ.js";
|
|
34
|
-
import "../chunk-
|
|
34
|
+
import "../chunk-O75CRYGF.js";
|
|
35
35
|
import "../chunk-3ONXXHQO.js";
|
|
36
36
|
import "../chunk-CPPS65WS.js";
|
|
37
37
|
import "../chunk-JUC24CTX.js";
|
package/dist/summarizer.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
HourlySummarizer
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-Y2XKJJEI.js";
|
|
4
4
|
import "./chunk-XJNBEDFE.js";
|
|
5
5
|
import "./chunk-XZ4WBBB5.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-H3HDXD3U.js";
|
|
7
7
|
import "./chunk-A3BS64GV.js";
|
|
8
8
|
import "./chunk-B5XMS73R.js";
|
|
9
9
|
import "./chunk-7SI52C65.js";
|
|
10
10
|
import "./chunk-L2EXJQJP.js";
|
|
11
11
|
import "./chunk-RK6F44Y6.js";
|
|
12
12
|
import "./chunk-FF4KLI5W.js";
|
|
13
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-O75CRYGF.js";
|
|
14
14
|
import "./chunk-RGMVMVMF.js";
|
|
15
15
|
import "./chunk-EYIEWJNI.js";
|
|
16
16
|
import "./chunk-JUC24CTX.js";
|
package/dist/transfer/types.d.ts
CHANGED
|
@@ -313,13 +313,13 @@ declare const CapsuleBlockSchema: z.ZodObject<{
|
|
|
313
313
|
peerProfiles: boolean;
|
|
314
314
|
}>;
|
|
315
315
|
}, "strip", z.ZodTypeAny, {
|
|
316
|
+
schemaVersion: string;
|
|
316
317
|
includes: {
|
|
317
318
|
procedural: boolean;
|
|
318
319
|
taxonomy: boolean;
|
|
319
320
|
identityAnchors: boolean;
|
|
320
321
|
peerProfiles: boolean;
|
|
321
322
|
};
|
|
322
|
-
schemaVersion: string;
|
|
323
323
|
id: string;
|
|
324
324
|
description: string;
|
|
325
325
|
version: string;
|
|
@@ -334,13 +334,13 @@ declare const CapsuleBlockSchema: z.ZodObject<{
|
|
|
334
334
|
directAnswerEnabled: boolean;
|
|
335
335
|
};
|
|
336
336
|
}, {
|
|
337
|
+
schemaVersion: string;
|
|
337
338
|
includes: {
|
|
338
339
|
procedural: boolean;
|
|
339
340
|
taxonomy: boolean;
|
|
340
341
|
identityAnchors: boolean;
|
|
341
342
|
peerProfiles: boolean;
|
|
342
343
|
};
|
|
343
|
-
schemaVersion: string;
|
|
344
344
|
id: string;
|
|
345
345
|
description: string;
|
|
346
346
|
version: string;
|
|
@@ -464,13 +464,13 @@ declare const ExportManifestV2Schema: z.ZodObject<{
|
|
|
464
464
|
peerProfiles: boolean;
|
|
465
465
|
}>;
|
|
466
466
|
}, "strip", z.ZodTypeAny, {
|
|
467
|
+
schemaVersion: string;
|
|
467
468
|
includes: {
|
|
468
469
|
procedural: boolean;
|
|
469
470
|
taxonomy: boolean;
|
|
470
471
|
identityAnchors: boolean;
|
|
471
472
|
peerProfiles: boolean;
|
|
472
473
|
};
|
|
473
|
-
schemaVersion: string;
|
|
474
474
|
id: string;
|
|
475
475
|
description: string;
|
|
476
476
|
version: string;
|
|
@@ -485,13 +485,13 @@ declare const ExportManifestV2Schema: z.ZodObject<{
|
|
|
485
485
|
directAnswerEnabled: boolean;
|
|
486
486
|
};
|
|
487
487
|
}, {
|
|
488
|
+
schemaVersion: string;
|
|
488
489
|
includes: {
|
|
489
490
|
procedural: boolean;
|
|
490
491
|
taxonomy: boolean;
|
|
491
492
|
identityAnchors: boolean;
|
|
492
493
|
peerProfiles: boolean;
|
|
493
494
|
};
|
|
494
|
-
schemaVersion: string;
|
|
495
495
|
id: string;
|
|
496
496
|
description: string;
|
|
497
497
|
version: string;
|
|
@@ -518,13 +518,13 @@ declare const ExportManifestV2Schema: z.ZodObject<{
|
|
|
518
518
|
pluginVersion: string;
|
|
519
519
|
includesTranscripts: boolean;
|
|
520
520
|
capsule: {
|
|
521
|
+
schemaVersion: string;
|
|
521
522
|
includes: {
|
|
522
523
|
procedural: boolean;
|
|
523
524
|
taxonomy: boolean;
|
|
524
525
|
identityAnchors: boolean;
|
|
525
526
|
peerProfiles: boolean;
|
|
526
527
|
};
|
|
527
|
-
schemaVersion: string;
|
|
528
528
|
id: string;
|
|
529
529
|
description: string;
|
|
530
530
|
version: string;
|
|
@@ -551,13 +551,13 @@ declare const ExportManifestV2Schema: z.ZodObject<{
|
|
|
551
551
|
pluginVersion: string;
|
|
552
552
|
includesTranscripts: boolean;
|
|
553
553
|
capsule: {
|
|
554
|
+
schemaVersion: string;
|
|
554
555
|
includes: {
|
|
555
556
|
procedural: boolean;
|
|
556
557
|
taxonomy: boolean;
|
|
557
558
|
identityAnchors: boolean;
|
|
558
559
|
peerProfiles: boolean;
|
|
559
560
|
};
|
|
560
|
-
schemaVersion: string;
|
|
561
561
|
id: string;
|
|
562
562
|
description: string;
|
|
563
563
|
version: string;
|
|
@@ -683,13 +683,13 @@ declare const ExportBundleV2Schema: z.ZodObject<{
|
|
|
683
683
|
peerProfiles: boolean;
|
|
684
684
|
}>;
|
|
685
685
|
}, "strip", z.ZodTypeAny, {
|
|
686
|
+
schemaVersion: string;
|
|
686
687
|
includes: {
|
|
687
688
|
procedural: boolean;
|
|
688
689
|
taxonomy: boolean;
|
|
689
690
|
identityAnchors: boolean;
|
|
690
691
|
peerProfiles: boolean;
|
|
691
692
|
};
|
|
692
|
-
schemaVersion: string;
|
|
693
693
|
id: string;
|
|
694
694
|
description: string;
|
|
695
695
|
version: string;
|
|
@@ -704,13 +704,13 @@ declare const ExportBundleV2Schema: z.ZodObject<{
|
|
|
704
704
|
directAnswerEnabled: boolean;
|
|
705
705
|
};
|
|
706
706
|
}, {
|
|
707
|
+
schemaVersion: string;
|
|
707
708
|
includes: {
|
|
708
709
|
procedural: boolean;
|
|
709
710
|
taxonomy: boolean;
|
|
710
711
|
identityAnchors: boolean;
|
|
711
712
|
peerProfiles: boolean;
|
|
712
713
|
};
|
|
713
|
-
schemaVersion: string;
|
|
714
714
|
id: string;
|
|
715
715
|
description: string;
|
|
716
716
|
version: string;
|
|
@@ -737,13 +737,13 @@ declare const ExportBundleV2Schema: z.ZodObject<{
|
|
|
737
737
|
pluginVersion: string;
|
|
738
738
|
includesTranscripts: boolean;
|
|
739
739
|
capsule: {
|
|
740
|
+
schemaVersion: string;
|
|
740
741
|
includes: {
|
|
741
742
|
procedural: boolean;
|
|
742
743
|
taxonomy: boolean;
|
|
743
744
|
identityAnchors: boolean;
|
|
744
745
|
peerProfiles: boolean;
|
|
745
746
|
};
|
|
746
|
-
schemaVersion: string;
|
|
747
747
|
id: string;
|
|
748
748
|
description: string;
|
|
749
749
|
version: string;
|
|
@@ -770,13 +770,13 @@ declare const ExportBundleV2Schema: z.ZodObject<{
|
|
|
770
770
|
pluginVersion: string;
|
|
771
771
|
includesTranscripts: boolean;
|
|
772
772
|
capsule: {
|
|
773
|
+
schemaVersion: string;
|
|
773
774
|
includes: {
|
|
774
775
|
procedural: boolean;
|
|
775
776
|
taxonomy: boolean;
|
|
776
777
|
identityAnchors: boolean;
|
|
777
778
|
peerProfiles: boolean;
|
|
778
779
|
};
|
|
779
|
-
schemaVersion: string;
|
|
780
780
|
id: string;
|
|
781
781
|
description: string;
|
|
782
782
|
version: string;
|
|
@@ -815,13 +815,13 @@ declare const ExportBundleV2Schema: z.ZodObject<{
|
|
|
815
815
|
pluginVersion: string;
|
|
816
816
|
includesTranscripts: boolean;
|
|
817
817
|
capsule: {
|
|
818
|
+
schemaVersion: string;
|
|
818
819
|
includes: {
|
|
819
820
|
procedural: boolean;
|
|
820
821
|
taxonomy: boolean;
|
|
821
822
|
identityAnchors: boolean;
|
|
822
823
|
peerProfiles: boolean;
|
|
823
824
|
};
|
|
824
|
-
schemaVersion: string;
|
|
825
825
|
id: string;
|
|
826
826
|
description: string;
|
|
827
827
|
version: string;
|
|
@@ -854,13 +854,13 @@ declare const ExportBundleV2Schema: z.ZodObject<{
|
|
|
854
854
|
pluginVersion: string;
|
|
855
855
|
includesTranscripts: boolean;
|
|
856
856
|
capsule: {
|
|
857
|
+
schemaVersion: string;
|
|
857
858
|
includes: {
|
|
858
859
|
procedural: boolean;
|
|
859
860
|
taxonomy: boolean;
|
|
860
861
|
identityAnchors: boolean;
|
|
861
862
|
peerProfiles: boolean;
|
|
862
863
|
};
|
|
863
|
-
schemaVersion: string;
|
|
864
864
|
id: string;
|
|
865
865
|
description: string;
|
|
866
866
|
version: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remnic/core",
|
|
3
|
-
"version": "9.3.
|
|
3
|
+
"version": "9.3.640",
|
|
4
4
|
"description": "Framework-agnostic Remnic memory engine — orchestrator, storage, extraction, search, trust zones",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -2873,6 +2873,7 @@
|
|
|
2873
2873
|
"@sinclair/typebox": "^0.34.0",
|
|
2874
2874
|
"apache-arrow": "^18.1.0",
|
|
2875
2875
|
"better-sqlite3": "^12.6.2",
|
|
2876
|
+
"cross-spawn": "^7.0.6",
|
|
2876
2877
|
"meilisearch": "^0.46.0",
|
|
2877
2878
|
"node-gyp": "^12.3.0",
|
|
2878
2879
|
"openai": "^6.0.0",
|
|
@@ -2885,6 +2886,7 @@
|
|
|
2885
2886
|
},
|
|
2886
2887
|
"devDependencies": {
|
|
2887
2888
|
"@types/better-sqlite3": "^7.6.13",
|
|
2889
|
+
"@types/cross-spawn": "^6.0.6",
|
|
2888
2890
|
"tsup": "^8.5.1",
|
|
2889
2891
|
"tsx": "^4.21.0",
|
|
2890
2892
|
"typescript": "^5.9.3"
|
package/src/qmd.test.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import assert from "node:assert/strict";
|
|
2
|
+
import os from "node:os";
|
|
3
|
+
import path from "node:path";
|
|
2
4
|
import test from "node:test";
|
|
3
5
|
|
|
4
6
|
import { parseConfig } from "./config.js";
|
|
@@ -148,6 +150,39 @@ test("post-install auto-upgrade probes PATH qmd before stale fallback paths", ()
|
|
|
148
150
|
]);
|
|
149
151
|
});
|
|
150
152
|
|
|
153
|
+
test("QmdClient preserves configured qmdPath diagnostics when all probes fail", async () => {
|
|
154
|
+
const { QmdClient } = await import("./qmd.js");
|
|
155
|
+
const originalPath = process.env.PATH;
|
|
156
|
+
const originalWindowsPath = process.env.Path;
|
|
157
|
+
const missingQmdPath = path.join(
|
|
158
|
+
os.tmpdir(),
|
|
159
|
+
`remnic-missing-qmd-${process.pid}-${Date.now()}`,
|
|
160
|
+
"qmd.cmd",
|
|
161
|
+
);
|
|
162
|
+
|
|
163
|
+
process.env.PATH = "";
|
|
164
|
+
process.env.Path = "";
|
|
165
|
+
try {
|
|
166
|
+
const client = new QmdClient("test-collection", 10, {
|
|
167
|
+
qmdPath: missingQmdPath,
|
|
168
|
+
qmdFallbackPaths: [],
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
assert.equal(await client.probe(), false);
|
|
172
|
+
const status = client.debugStatus();
|
|
173
|
+
|
|
174
|
+
assert.ok(status.includes(`cliPath=${missingQmdPath}`), status);
|
|
175
|
+
assert.ok(status.includes("cliPathSource=configured"), status);
|
|
176
|
+
assert.ok(status.includes("cliProbeError="), status);
|
|
177
|
+
assert.ok(!status.includes("/opt/homebrew/bin/qmd"), status);
|
|
178
|
+
} finally {
|
|
179
|
+
if (originalPath === undefined) delete process.env.PATH;
|
|
180
|
+
else process.env.PATH = originalPath;
|
|
181
|
+
if (originalWindowsPath === undefined) delete process.env.Path;
|
|
182
|
+
else process.env.Path = originalWindowsPath;
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
|
|
151
186
|
test("QmdClient applies chunk strategy to normal and forced embed args", async () => {
|
|
152
187
|
const { QmdClient } = await import("./qmd.js");
|
|
153
188
|
const client = new QmdClient("test", 5, {
|
package/src/qmd.ts
CHANGED
|
@@ -42,6 +42,8 @@ export interface QmdClientOptions {
|
|
|
42
42
|
qmdSearchStrategy?: QmdSearchStrategy;
|
|
43
43
|
/** Subprocess fallback command; default "query" keeps LLM expansion. Issue #1335. */
|
|
44
44
|
qmdSubprocessStrategy?: QmdSubprocessStrategy;
|
|
45
|
+
/** Override automatic qmd fallback probes; defaults to known install paths. */
|
|
46
|
+
qmdFallbackPaths?: string[];
|
|
45
47
|
/** Per-call daemon search timeout in ms; default 8000. Issue #1335. */
|
|
46
48
|
qmdDaemonTimeoutMs?: number;
|
|
47
49
|
}
|
|
@@ -1248,6 +1250,7 @@ export class QmdClient implements SearchBackend {
|
|
|
1248
1250
|
private readonly qmdIndexName?: string;
|
|
1249
1251
|
private readonly qmdSearchStrategy: QmdSearchStrategy;
|
|
1250
1252
|
private readonly qmdSubprocessStrategy: QmdSubprocessStrategy;
|
|
1253
|
+
private readonly qmdFallbackPaths: string[];
|
|
1251
1254
|
private readonly daemonTimeoutMs: number;
|
|
1252
1255
|
private readonly qmdRuntimeEnv: QmdRuntimeEnv;
|
|
1253
1256
|
private qmdPathSource: "auto-path" | "auto-fallback" | "configured" = "auto-path";
|
|
@@ -1303,6 +1306,9 @@ export class QmdClient implements SearchBackend {
|
|
|
1303
1306
|
: "hybrid";
|
|
1304
1307
|
// Default "query" keeps `qmd query` (LLM expansion + rerank) per gotcha #7. Issue #1335.
|
|
1305
1308
|
this.qmdSubprocessStrategy = opts?.qmdSubprocessStrategy === "search" ? "search" : "query";
|
|
1309
|
+
this.qmdFallbackPaths = opts?.qmdFallbackPaths
|
|
1310
|
+
? opts.qmdFallbackPaths.map((candidate) => candidate.trim()).filter(Boolean)
|
|
1311
|
+
: QMD_FALLBACK_PATHS;
|
|
1306
1312
|
// Default 8000ms preserves the historical hardcoded daemon timeout. Issue #1335.
|
|
1307
1313
|
// Floor of 1000ms avoids absurdly small values; callers wanting CPU-only HyDE
|
|
1308
1314
|
// headroom can raise this (e.g. 20000) without code changes.
|
|
@@ -1404,9 +1410,16 @@ export class QmdClient implements SearchBackend {
|
|
|
1404
1410
|
}
|
|
1405
1411
|
|
|
1406
1412
|
private async probeCli(): Promise<boolean> {
|
|
1413
|
+
let configuredProbeFailure: string | null = null;
|
|
1407
1414
|
const markProbeFailure = (err: unknown): void => {
|
|
1408
1415
|
this.lastCliProbeError = err instanceof Error ? err.message : String(err);
|
|
1409
1416
|
};
|
|
1417
|
+
const restoreConfiguredProbeFailure = (): void => {
|
|
1418
|
+
if (!this.configuredQmdPath || !configuredProbeFailure) return;
|
|
1419
|
+
this.qmdPath = this.configuredQmdPath;
|
|
1420
|
+
this.qmdPathSource = "configured";
|
|
1421
|
+
this.lastCliProbeError = configuredProbeFailure;
|
|
1422
|
+
};
|
|
1410
1423
|
const recordProbeSuccess = async (
|
|
1411
1424
|
result: { stdout: string; stderr: string },
|
|
1412
1425
|
qmdPath: string,
|
|
@@ -1428,6 +1441,7 @@ export class QmdClient implements SearchBackend {
|
|
|
1428
1441
|
return true;
|
|
1429
1442
|
} catch (err) {
|
|
1430
1443
|
markProbeFailure(err);
|
|
1444
|
+
configuredProbeFailure = this.lastCliProbeError;
|
|
1431
1445
|
// Do not hard-fail here: fall through to PATH/fallback probing.
|
|
1432
1446
|
// This keeps recall healthy even when configured path is stale.
|
|
1433
1447
|
this.logCliProbeWarning(
|
|
@@ -1444,7 +1458,7 @@ export class QmdClient implements SearchBackend {
|
|
|
1444
1458
|
} catch (err) {
|
|
1445
1459
|
markProbeFailure(err);
|
|
1446
1460
|
// Try fallback paths
|
|
1447
|
-
for (const fallbackPath of
|
|
1461
|
+
for (const fallbackPath of this.qmdFallbackPaths) {
|
|
1448
1462
|
try {
|
|
1449
1463
|
const result = await runQmd(["--version"], QMD_PROBE_TIMEOUT_MS, fallbackPath, undefined, this.qmdRuntimeEnv);
|
|
1450
1464
|
await recordProbeSuccess(result, fallbackPath, "auto-fallback");
|
|
@@ -1456,6 +1470,7 @@ export class QmdClient implements SearchBackend {
|
|
|
1456
1470
|
}
|
|
1457
1471
|
}
|
|
1458
1472
|
this.available = false;
|
|
1473
|
+
restoreConfiguredProbeFailure();
|
|
1459
1474
|
return false;
|
|
1460
1475
|
}
|
|
1461
1476
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import assert from "node:assert/strict";
|
|
2
|
+
import test from "node:test";
|
|
3
|
+
|
|
4
|
+
import { launchProcessSync } from "./child-process.js";
|
|
5
|
+
|
|
6
|
+
test("launchProcessSync executes commands through the shared process wrapper", () => {
|
|
7
|
+
const result = launchProcessSync(
|
|
8
|
+
process.execPath,
|
|
9
|
+
["-e", "process.stdout.write('ok')"],
|
|
10
|
+
{ encoding: "utf8" },
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
assert.equal(result.status, 0);
|
|
14
|
+
assert.equal(result.stdout, "ok");
|
|
15
|
+
});
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import crossSpawn from "cross-spawn";
|
|
2
2
|
|
|
3
|
-
const require = createRequire(import.meta.url);
|
|
4
|
-
const PROCESS_MODULE_NAME = `node:${"child"}_${"process"}`;
|
|
5
|
-
|
|
6
|
-
type ProcessModule = Record<string, unknown>;
|
|
7
3
|
type ProcessOptions = Record<string, unknown>;
|
|
8
4
|
type ProcessStream = {
|
|
9
5
|
destroyed?: boolean;
|
|
@@ -22,9 +18,12 @@ type ProcessResult = {
|
|
|
22
18
|
stderr?: string;
|
|
23
19
|
};
|
|
24
20
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
21
|
+
type SpawnApi = {
|
|
22
|
+
(command: string, args?: readonly string[], options?: ProcessOptions): CommandChildProcess;
|
|
23
|
+
sync: (command: string, args: readonly string[], options: ProcessOptions) => ProcessResult;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
const spawnApi = crossSpawn as unknown as SpawnApi;
|
|
28
27
|
|
|
29
28
|
export type CommandChildProcess = {
|
|
30
29
|
exitCode?: number | null;
|
|
@@ -43,13 +42,7 @@ export function launchProcess(
|
|
|
43
42
|
args: string[],
|
|
44
43
|
options?: ProcessOptions,
|
|
45
44
|
): CommandChildProcess {
|
|
46
|
-
|
|
47
|
-
const launch = moduleApi["spawn"] as (
|
|
48
|
-
command: string,
|
|
49
|
-
args?: readonly string[],
|
|
50
|
-
options?: ProcessOptions,
|
|
51
|
-
) => CommandChildProcess;
|
|
52
|
-
return launch(command, args, options);
|
|
45
|
+
return spawnApi(command, args, options);
|
|
53
46
|
}
|
|
54
47
|
|
|
55
48
|
export function launchProcessSync(
|
|
@@ -57,11 +50,5 @@ export function launchProcessSync(
|
|
|
57
50
|
args: string[],
|
|
58
51
|
options: ProcessOptions,
|
|
59
52
|
): ProcessResult {
|
|
60
|
-
|
|
61
|
-
const launchSync = moduleApi["spawnSync"] as (
|
|
62
|
-
command: string,
|
|
63
|
-
args: readonly string[],
|
|
64
|
-
options: ProcessOptions,
|
|
65
|
-
) => ProcessResult;
|
|
66
|
-
return launchSync(command, args, options);
|
|
53
|
+
return spawnApi.sync(command, args, options);
|
|
67
54
|
}
|