@xdarkicex/openclaw-memory-libravdb 1.4.76 → 1.4.79
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/context-engine.js +10 -4
- package/dist/grpc-client.d.ts +1 -0
- package/dist/grpc-client.js +27 -1
- package/dist/index.js +133 -25
- package/dist/sidecar.d.ts +4 -0
- package/dist/sidecar.js +29 -24
- package/dist/types.d.ts +2 -5
- package/openclaw.plugin.json +55 -1
- package/package.json +2 -2
package/dist/context-engine.js
CHANGED
|
@@ -441,7 +441,6 @@ export function buildContextEngineFactory(runtime, cfg, logger = console) {
|
|
|
441
441
|
continuityMinTurns: cfg.continuityMinTurns,
|
|
442
442
|
continuityTailBudgetTokens: cfg.continuityTailBudgetTokens,
|
|
443
443
|
continuityPriorContextTokens: cfg.continuityPriorContextTokens,
|
|
444
|
-
compactThreshold: getDynamicCompactThreshold(tokenBudget),
|
|
445
444
|
compactSessionTokenBudget: cfg.compactSessionTokenBudget,
|
|
446
445
|
section7Theta1: cfg.section7Theta1,
|
|
447
446
|
section7Kappa: cfg.section7Kappa,
|
|
@@ -449,17 +448,24 @@ export function buildContextEngineFactory(runtime, cfg, logger = console) {
|
|
|
449
448
|
section7HopThreshold: cfg.section7HopThreshold,
|
|
450
449
|
section7CoarseTopK: cfg.section7CoarseTopK,
|
|
451
450
|
section7SecondPassTopK: cfg.section7SecondPassTopK,
|
|
452
|
-
|
|
451
|
+
// deprecated in libravdb-contracts — no daemon handler (daemon v1.4.68)
|
|
452
|
+
// section7AuthorityRecencyLambda: cfg.section7AuthorityRecencyLambda,
|
|
453
453
|
section7AuthorityRecencyWeight: cfg.section7AuthorityRecencyWeight,
|
|
454
454
|
section7AuthorityFrequencyWeight: cfg.section7AuthorityFrequencyWeight,
|
|
455
455
|
section7AuthorityAuthoredWeight: cfg.section7AuthorityAuthoredWeight,
|
|
456
|
+
section7AuthoritySalienceWeight: cfg.section7AuthoritySalienceWeight,
|
|
457
|
+
section7RecencyAccessLambda: cfg.section7RecencyAccessLambda,
|
|
456
458
|
recoveryFloorScore: cfg.recoveryFloorScore,
|
|
457
459
|
recoveryMinTopK: cfg.recoveryMinTopK,
|
|
458
460
|
recoveryMinConfidenceMean: cfg.recoveryMinConfidenceMean,
|
|
459
|
-
|
|
461
|
+
// deprecated in libravdb-contracts — no daemon handler (daemon v1.4.68)
|
|
462
|
+
// recencyLambdaSession: cfg.recencyLambdaSession,
|
|
460
463
|
recencyLambdaUser: cfg.recencyLambdaUser,
|
|
461
|
-
|
|
464
|
+
// deprecated in libravdb-contracts — no daemon handler (daemon v1.4.68)
|
|
465
|
+
// recencyLambdaGlobal: cfg.recencyLambdaGlobal,
|
|
462
466
|
ingestionGateThreshold: cfg.ingestionGateThreshold,
|
|
467
|
+
// deprecated in libravdb-contracts — no daemon handler (daemon v1.4.68)
|
|
468
|
+
// compactThreshold: getDynamicCompactThreshold(tokenBudget),
|
|
463
469
|
});
|
|
464
470
|
async function augmentWithExactRecall(assembled, args) {
|
|
465
471
|
if (cfg.crossSessionRecall === false)
|
package/dist/grpc-client.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export interface GrpcClientOptions {
|
|
|
4
4
|
timeoutMs?: number;
|
|
5
5
|
}
|
|
6
6
|
export declare function resolveGrpcTarget(endpoint: string): string;
|
|
7
|
+
export declare function resolveGrpcCredentialMode(endpoint: string): "insecure" | "tls";
|
|
7
8
|
export declare class GrpcKernelClient {
|
|
8
9
|
private client;
|
|
9
10
|
private readonly secret;
|
package/dist/grpc-client.js
CHANGED
|
@@ -10,6 +10,32 @@ const PROTO_PATH = path.resolve(__dirname, "./proto/intelligence_kernel/v1/kerne
|
|
|
10
10
|
export function resolveGrpcTarget(endpoint) {
|
|
11
11
|
return endpoint.startsWith("tcp:") ? endpoint.substring(4) : endpoint;
|
|
12
12
|
}
|
|
13
|
+
export function resolveGrpcCredentialMode(endpoint) {
|
|
14
|
+
const target = resolveGrpcTarget(endpoint).trim();
|
|
15
|
+
if (target.startsWith("unix:")) {
|
|
16
|
+
return "insecure";
|
|
17
|
+
}
|
|
18
|
+
const host = extractGrpcHost(target);
|
|
19
|
+
return isLoopbackHost(host) ? "insecure" : "tls";
|
|
20
|
+
}
|
|
21
|
+
function resolveGrpcCredentials(endpoint) {
|
|
22
|
+
return resolveGrpcCredentialMode(endpoint) === "insecure"
|
|
23
|
+
? grpc.credentials.createInsecure()
|
|
24
|
+
: grpc.credentials.createSsl();
|
|
25
|
+
}
|
|
26
|
+
function extractGrpcHost(target) {
|
|
27
|
+
const withoutDnsPrefix = target.startsWith("dns:///") ? target.slice("dns:///".length) : target;
|
|
28
|
+
if (withoutDnsPrefix.startsWith("[")) {
|
|
29
|
+
const closeBracket = withoutDnsPrefix.indexOf("]");
|
|
30
|
+
return closeBracket > 0 ? withoutDnsPrefix.slice(1, closeBracket) : withoutDnsPrefix;
|
|
31
|
+
}
|
|
32
|
+
const portSeparator = withoutDnsPrefix.lastIndexOf(":");
|
|
33
|
+
return portSeparator > 0 ? withoutDnsPrefix.slice(0, portSeparator) : withoutDnsPrefix;
|
|
34
|
+
}
|
|
35
|
+
function isLoopbackHost(host) {
|
|
36
|
+
const normalized = host.toLowerCase();
|
|
37
|
+
return normalized === "localhost" || normalized === "127.0.0.1" || normalized === "::1";
|
|
38
|
+
}
|
|
13
39
|
export class GrpcKernelClient {
|
|
14
40
|
client;
|
|
15
41
|
secret;
|
|
@@ -28,7 +54,7 @@ export class GrpcKernelClient {
|
|
|
28
54
|
const protoDescriptor = grpc.loadPackageDefinition(packageDefinition);
|
|
29
55
|
const kernelService = protoDescriptor.intelligence_kernel.v1.IntelligenceKernel;
|
|
30
56
|
const target = resolveGrpcTarget(options.endpoint);
|
|
31
|
-
this.client = new kernelService(target,
|
|
57
|
+
this.client = new kernelService(target, resolveGrpcCredentials(options.endpoint));
|
|
32
58
|
}
|
|
33
59
|
getMetadata(signed = true) {
|
|
34
60
|
const md = new grpc.Metadata();
|
package/dist/index.js
CHANGED
|
@@ -34137,7 +34137,6 @@ function buildContextEngineFactory(runtime, cfg, logger = console) {
|
|
|
34137
34137
|
continuityMinTurns: cfg.continuityMinTurns,
|
|
34138
34138
|
continuityTailBudgetTokens: cfg.continuityTailBudgetTokens,
|
|
34139
34139
|
continuityPriorContextTokens: cfg.continuityPriorContextTokens,
|
|
34140
|
-
compactThreshold: getDynamicCompactThreshold(tokenBudget),
|
|
34141
34140
|
compactSessionTokenBudget: cfg.compactSessionTokenBudget,
|
|
34142
34141
|
section7Theta1: cfg.section7Theta1,
|
|
34143
34142
|
section7Kappa: cfg.section7Kappa,
|
|
@@ -34145,17 +34144,24 @@ function buildContextEngineFactory(runtime, cfg, logger = console) {
|
|
|
34145
34144
|
section7HopThreshold: cfg.section7HopThreshold,
|
|
34146
34145
|
section7CoarseTopK: cfg.section7CoarseTopK,
|
|
34147
34146
|
section7SecondPassTopK: cfg.section7SecondPassTopK,
|
|
34148
|
-
|
|
34147
|
+
// deprecated in libravdb-contracts — no daemon handler (daemon v1.4.68)
|
|
34148
|
+
// section7AuthorityRecencyLambda: cfg.section7AuthorityRecencyLambda,
|
|
34149
34149
|
section7AuthorityRecencyWeight: cfg.section7AuthorityRecencyWeight,
|
|
34150
34150
|
section7AuthorityFrequencyWeight: cfg.section7AuthorityFrequencyWeight,
|
|
34151
34151
|
section7AuthorityAuthoredWeight: cfg.section7AuthorityAuthoredWeight,
|
|
34152
|
+
section7AuthoritySalienceWeight: cfg.section7AuthoritySalienceWeight,
|
|
34153
|
+
section7RecencyAccessLambda: cfg.section7RecencyAccessLambda,
|
|
34152
34154
|
recoveryFloorScore: cfg.recoveryFloorScore,
|
|
34153
34155
|
recoveryMinTopK: cfg.recoveryMinTopK,
|
|
34154
34156
|
recoveryMinConfidenceMean: cfg.recoveryMinConfidenceMean,
|
|
34155
|
-
|
|
34157
|
+
// deprecated in libravdb-contracts — no daemon handler (daemon v1.4.68)
|
|
34158
|
+
// recencyLambdaSession: cfg.recencyLambdaSession,
|
|
34156
34159
|
recencyLambdaUser: cfg.recencyLambdaUser,
|
|
34157
|
-
|
|
34160
|
+
// deprecated in libravdb-contracts — no daemon handler (daemon v1.4.68)
|
|
34161
|
+
// recencyLambdaGlobal: cfg.recencyLambdaGlobal,
|
|
34158
34162
|
ingestionGateThreshold: cfg.ingestionGateThreshold
|
|
34163
|
+
// deprecated in libravdb-contracts — no daemon handler (daemon v1.4.68)
|
|
34164
|
+
// compactThreshold: getDynamicCompactThreshold(tokenBudget),
|
|
34159
34165
|
});
|
|
34160
34166
|
async function augmentWithExactRecall(assembled, args) {
|
|
34161
34167
|
if (cfg.crossSessionRecall === false) return assembled;
|
|
@@ -34624,7 +34630,7 @@ import path2 from "node:path";
|
|
|
34624
34630
|
var proxy_exports = {};
|
|
34625
34631
|
__reExport(proxy_exports, __toESM(require_cjs(), 1));
|
|
34626
34632
|
|
|
34627
|
-
// node_modules/.pnpm/@xdarkicex+libravdb-contracts@0.0.
|
|
34633
|
+
// node_modules/.pnpm/@xdarkicex+libravdb-contracts@0.0.7/node_modules/@xdarkicex/libravdb-contracts/gen/js/libravdb/ipc/v1/rpc_pb.js
|
|
34628
34634
|
var IngestMode;
|
|
34629
34635
|
(function(IngestMode2) {
|
|
34630
34636
|
IngestMode2[IngestMode2["REPLACE"] = 0] = "REPLACE";
|
|
@@ -35241,6 +35247,61 @@ var AssembleContextInternalResponse = class _AssembleContextInternalResponse ext
|
|
|
35241
35247
|
return proxy_exports.proto3.util.equals(_AssembleContextInternalResponse, a, b);
|
|
35242
35248
|
}
|
|
35243
35249
|
};
|
|
35250
|
+
var PredictedContext = class _PredictedContext extends proxy_exports.Message {
|
|
35251
|
+
/**
|
|
35252
|
+
* @generated from field: string id = 1;
|
|
35253
|
+
*/
|
|
35254
|
+
id = "";
|
|
35255
|
+
/**
|
|
35256
|
+
* @generated from field: string text = 2;
|
|
35257
|
+
*/
|
|
35258
|
+
text = "";
|
|
35259
|
+
/**
|
|
35260
|
+
* @generated from field: string reason = 3;
|
|
35261
|
+
*/
|
|
35262
|
+
reason = "";
|
|
35263
|
+
constructor(data) {
|
|
35264
|
+
super();
|
|
35265
|
+
proxy_exports.proto3.util.initPartial(data, this);
|
|
35266
|
+
}
|
|
35267
|
+
static runtime = proxy_exports.proto3;
|
|
35268
|
+
static typeName = "libravdb.ipc.v1.PredictedContext";
|
|
35269
|
+
static fields = proxy_exports.proto3.util.newFieldList(() => [
|
|
35270
|
+
{
|
|
35271
|
+
no: 1,
|
|
35272
|
+
name: "id",
|
|
35273
|
+
kind: "scalar",
|
|
35274
|
+
T: 9
|
|
35275
|
+
/* ScalarType.STRING */
|
|
35276
|
+
},
|
|
35277
|
+
{
|
|
35278
|
+
no: 2,
|
|
35279
|
+
name: "text",
|
|
35280
|
+
kind: "scalar",
|
|
35281
|
+
T: 9
|
|
35282
|
+
/* ScalarType.STRING */
|
|
35283
|
+
},
|
|
35284
|
+
{
|
|
35285
|
+
no: 3,
|
|
35286
|
+
name: "reason",
|
|
35287
|
+
kind: "scalar",
|
|
35288
|
+
T: 9
|
|
35289
|
+
/* ScalarType.STRING */
|
|
35290
|
+
}
|
|
35291
|
+
]);
|
|
35292
|
+
static fromBinary(bytes, options) {
|
|
35293
|
+
return new _PredictedContext().fromBinary(bytes, options);
|
|
35294
|
+
}
|
|
35295
|
+
static fromJson(jsonValue, options) {
|
|
35296
|
+
return new _PredictedContext().fromJson(jsonValue, options);
|
|
35297
|
+
}
|
|
35298
|
+
static fromJsonString(jsonString, options) {
|
|
35299
|
+
return new _PredictedContext().fromJsonString(jsonString, options);
|
|
35300
|
+
}
|
|
35301
|
+
static equals(a, b) {
|
|
35302
|
+
return proxy_exports.proto3.util.equals(_PredictedContext, a, b);
|
|
35303
|
+
}
|
|
35304
|
+
};
|
|
35244
35305
|
var AssemblyDebug = class _AssemblyDebug extends proxy_exports.Message {
|
|
35245
35306
|
/**
|
|
35246
35307
|
* @generated from field: bool recovery_trigger_fired = 1;
|
|
@@ -35461,6 +35522,14 @@ var AssembleConfigOverrides = class _AssembleConfigOverrides extends proxy_expor
|
|
|
35461
35522
|
* @generated from field: optional double section7_authority_authored_weight = 22;
|
|
35462
35523
|
*/
|
|
35463
35524
|
section7AuthorityAuthoredWeight;
|
|
35525
|
+
/**
|
|
35526
|
+
* @generated from field: optional double section7_authority_salience_weight = 30;
|
|
35527
|
+
*/
|
|
35528
|
+
section7AuthoritySalienceWeight;
|
|
35529
|
+
/**
|
|
35530
|
+
* @generated from field: optional double section7_recency_access_lambda = 31;
|
|
35531
|
+
*/
|
|
35532
|
+
section7RecencyAccessLambda;
|
|
35464
35533
|
/**
|
|
35465
35534
|
* @generated from field: optional double recovery_floor_score = 23;
|
|
35466
35535
|
*/
|
|
@@ -35518,6 +35587,8 @@ var AssembleConfigOverrides = class _AssembleConfigOverrides extends proxy_expor
|
|
|
35518
35587
|
{ no: 20, name: "section7_authority_recency_weight", kind: "scalar", T: 1, opt: true },
|
|
35519
35588
|
{ no: 21, name: "section7_authority_frequency_weight", kind: "scalar", T: 1, opt: true },
|
|
35520
35589
|
{ no: 22, name: "section7_authority_authored_weight", kind: "scalar", T: 1, opt: true },
|
|
35590
|
+
{ no: 30, name: "section7_authority_salience_weight", kind: "scalar", T: 1, opt: true },
|
|
35591
|
+
{ no: 31, name: "section7_recency_access_lambda", kind: "scalar", T: 1, opt: true },
|
|
35521
35592
|
{ no: 23, name: "recovery_floor_score", kind: "scalar", T: 1, opt: true },
|
|
35522
35593
|
{ no: 24, name: "recovery_min_top_k", kind: "scalar", T: 5, opt: true },
|
|
35523
35594
|
{ no: 25, name: "recovery_min_confidence_mean", kind: "scalar", T: 1, opt: true },
|
|
@@ -38092,6 +38163,10 @@ var AfterTurnKernelResponse = class _AfterTurnKernelResponse extends proxy_expor
|
|
|
38092
38163
|
* @generated from field: bool ok = 1;
|
|
38093
38164
|
*/
|
|
38094
38165
|
ok = false;
|
|
38166
|
+
/**
|
|
38167
|
+
* @generated from field: repeated libravdb.ipc.v1.PredictedContext predictions = 2;
|
|
38168
|
+
*/
|
|
38169
|
+
predictions = [];
|
|
38095
38170
|
constructor(data) {
|
|
38096
38171
|
super();
|
|
38097
38172
|
proxy_exports.proto3.util.initPartial(data, this);
|
|
@@ -38105,7 +38180,8 @@ var AfterTurnKernelResponse = class _AfterTurnKernelResponse extends proxy_expor
|
|
|
38105
38180
|
kind: "scalar",
|
|
38106
38181
|
T: 8
|
|
38107
38182
|
/* ScalarType.BOOL */
|
|
38108
|
-
}
|
|
38183
|
+
},
|
|
38184
|
+
{ no: 2, name: "predictions", kind: "message", T: PredictedContext, repeated: true }
|
|
38109
38185
|
]);
|
|
38110
38186
|
static fromBinary(bytes, options) {
|
|
38111
38187
|
return new _AfterTurnKernelResponse().fromBinary(bytes, options);
|
|
@@ -39590,6 +39666,30 @@ var PROTO_PATH = path3.resolve(__dirname2, "./proto/intelligence_kernel/v1/kerne
|
|
|
39590
39666
|
function resolveGrpcTarget(endpoint) {
|
|
39591
39667
|
return endpoint.startsWith("tcp:") ? endpoint.substring(4) : endpoint;
|
|
39592
39668
|
}
|
|
39669
|
+
function resolveGrpcCredentialMode(endpoint) {
|
|
39670
|
+
const target = resolveGrpcTarget(endpoint).trim();
|
|
39671
|
+
if (target.startsWith("unix:")) {
|
|
39672
|
+
return "insecure";
|
|
39673
|
+
}
|
|
39674
|
+
const host = extractGrpcHost(target);
|
|
39675
|
+
return isLoopbackHost(host) ? "insecure" : "tls";
|
|
39676
|
+
}
|
|
39677
|
+
function resolveGrpcCredentials(endpoint) {
|
|
39678
|
+
return resolveGrpcCredentialMode(endpoint) === "insecure" ? grpc.credentials.createInsecure() : grpc.credentials.createSsl();
|
|
39679
|
+
}
|
|
39680
|
+
function extractGrpcHost(target) {
|
|
39681
|
+
const withoutDnsPrefix = target.startsWith("dns:///") ? target.slice("dns:///".length) : target;
|
|
39682
|
+
if (withoutDnsPrefix.startsWith("[")) {
|
|
39683
|
+
const closeBracket = withoutDnsPrefix.indexOf("]");
|
|
39684
|
+
return closeBracket > 0 ? withoutDnsPrefix.slice(1, closeBracket) : withoutDnsPrefix;
|
|
39685
|
+
}
|
|
39686
|
+
const portSeparator = withoutDnsPrefix.lastIndexOf(":");
|
|
39687
|
+
return portSeparator > 0 ? withoutDnsPrefix.slice(0, portSeparator) : withoutDnsPrefix;
|
|
39688
|
+
}
|
|
39689
|
+
function isLoopbackHost(host) {
|
|
39690
|
+
const normalized = host.toLowerCase();
|
|
39691
|
+
return normalized === "localhost" || normalized === "127.0.0.1" || normalized === "::1";
|
|
39692
|
+
}
|
|
39593
39693
|
var GrpcKernelClient = class {
|
|
39594
39694
|
client;
|
|
39595
39695
|
secret;
|
|
@@ -39608,7 +39708,7 @@ var GrpcKernelClient = class {
|
|
|
39608
39708
|
const protoDescriptor = grpc.loadPackageDefinition(packageDefinition);
|
|
39609
39709
|
const kernelService = protoDescriptor.intelligence_kernel.v1.IntelligenceKernel;
|
|
39610
39710
|
const target = resolveGrpcTarget(options.endpoint);
|
|
39611
|
-
this.client = new kernelService(target,
|
|
39711
|
+
this.client = new kernelService(target, resolveGrpcCredentials(options.endpoint));
|
|
39612
39712
|
}
|
|
39613
39713
|
getMetadata(signed = true) {
|
|
39614
39714
|
const md = new grpc.Metadata();
|
|
@@ -39935,6 +40035,28 @@ function computeStartupConnectRetryDelay(attempt, waitedMs = 0) {
|
|
|
39935
40035
|
function isTcpEndpoint(endpoint) {
|
|
39936
40036
|
return endpoint.startsWith("tcp:");
|
|
39937
40037
|
}
|
|
40038
|
+
function parseTcpEndpoint(endpoint) {
|
|
40039
|
+
if (!isTcpEndpoint(endpoint)) {
|
|
40040
|
+
return null;
|
|
40041
|
+
}
|
|
40042
|
+
const address = endpoint.slice("tcp:".length).trim();
|
|
40043
|
+
const separator = address.lastIndexOf(":");
|
|
40044
|
+
if (separator <= 0 || separator === address.length - 1) {
|
|
40045
|
+
return null;
|
|
40046
|
+
}
|
|
40047
|
+
let host = address.slice(0, separator).trim();
|
|
40048
|
+
const port = Number(address.slice(separator + 1).trim());
|
|
40049
|
+
if (host.startsWith("[") || host.endsWith("]")) {
|
|
40050
|
+
if (!host.startsWith("[") || !host.endsWith("]")) {
|
|
40051
|
+
return null;
|
|
40052
|
+
}
|
|
40053
|
+
host = host.slice(1, -1).trim();
|
|
40054
|
+
}
|
|
40055
|
+
if (host.length === 0 || !Number.isInteger(port) || port <= 0 || port > 65535) {
|
|
40056
|
+
return null;
|
|
40057
|
+
}
|
|
40058
|
+
return { host, port };
|
|
40059
|
+
}
|
|
39938
40060
|
function resolveEndpoint(cfg) {
|
|
39939
40061
|
const endpoint = resolveConfiguredEndpoint(cfg);
|
|
39940
40062
|
return endpoint.replace(/^unix:/, "");
|
|
@@ -39992,15 +40114,11 @@ function createDefaultRuntime() {
|
|
|
39992
40114
|
},
|
|
39993
40115
|
createSocket(endpoint) {
|
|
39994
40116
|
if (isTcpEndpoint(endpoint)) {
|
|
39995
|
-
const
|
|
39996
|
-
|
|
39997
|
-
if (separator <= 0) {
|
|
40117
|
+
const parsed = parseTcpEndpoint(endpoint);
|
|
40118
|
+
if (!parsed) {
|
|
39998
40119
|
throw new Error(`Invalid TCP sidecar endpoint: ${endpoint}`);
|
|
39999
40120
|
}
|
|
40000
|
-
return net.connect(
|
|
40001
|
-
host: address.slice(0, separator),
|
|
40002
|
-
port: Number(address.slice(separator + 1))
|
|
40003
|
-
});
|
|
40121
|
+
return net.connect(parsed);
|
|
40004
40122
|
}
|
|
40005
40123
|
return net.connect(endpoint);
|
|
40006
40124
|
},
|
|
@@ -40039,17 +40157,7 @@ function isConfiguredEndpoint(value) {
|
|
|
40039
40157
|
if (value.startsWith("unix:")) {
|
|
40040
40158
|
return value.slice("unix:".length).trim().length > 0;
|
|
40041
40159
|
}
|
|
40042
|
-
|
|
40043
|
-
return false;
|
|
40044
|
-
}
|
|
40045
|
-
const address = value.slice("tcp:".length);
|
|
40046
|
-
const separator = address.lastIndexOf(":");
|
|
40047
|
-
if (separator <= 0 || separator === address.length - 1) {
|
|
40048
|
-
return false;
|
|
40049
|
-
}
|
|
40050
|
-
const host = address.slice(0, separator).trim();
|
|
40051
|
-
const port = Number(address.slice(separator + 1));
|
|
40052
|
-
return host.length > 0 && Number.isInteger(port) && port > 0 && port <= 65535;
|
|
40160
|
+
return parseTcpEndpoint(value) !== null;
|
|
40053
40161
|
}
|
|
40054
40162
|
function normalizeConfiguredEndpoint(value) {
|
|
40055
40163
|
const trimmed = value?.trim();
|
package/dist/sidecar.d.ts
CHANGED
|
@@ -27,6 +27,10 @@ export declare function startSidecar(cfg: PluginConfig, logger?: LoggerLike, run
|
|
|
27
27
|
export declare function computeBackoffMs(retries: number): number;
|
|
28
28
|
export declare function computeStartupConnectRetryDelay(attempt: number, waitedMs?: number): number;
|
|
29
29
|
export declare function isTcpEndpoint(endpoint: string): boolean;
|
|
30
|
+
export declare function parseTcpEndpoint(endpoint: string): {
|
|
31
|
+
host: string;
|
|
32
|
+
port: number;
|
|
33
|
+
} | null;
|
|
30
34
|
export declare function resolveEndpoint(cfg: PluginConfig): string;
|
|
31
35
|
export declare function resolveConfiguredEndpoint(cfg: PluginConfig): string;
|
|
32
36
|
export declare function daemonProvisioningHint(): string;
|
package/dist/sidecar.js
CHANGED
|
@@ -342,6 +342,28 @@ export function computeStartupConnectRetryDelay(attempt, waitedMs = 0) {
|
|
|
342
342
|
export function isTcpEndpoint(endpoint) {
|
|
343
343
|
return endpoint.startsWith("tcp:");
|
|
344
344
|
}
|
|
345
|
+
export function parseTcpEndpoint(endpoint) {
|
|
346
|
+
if (!isTcpEndpoint(endpoint)) {
|
|
347
|
+
return null;
|
|
348
|
+
}
|
|
349
|
+
const address = endpoint.slice("tcp:".length).trim();
|
|
350
|
+
const separator = address.lastIndexOf(":");
|
|
351
|
+
if (separator <= 0 || separator === address.length - 1) {
|
|
352
|
+
return null;
|
|
353
|
+
}
|
|
354
|
+
let host = address.slice(0, separator).trim();
|
|
355
|
+
const port = Number(address.slice(separator + 1).trim());
|
|
356
|
+
if (host.startsWith("[") || host.endsWith("]")) {
|
|
357
|
+
if (!host.startsWith("[") || !host.endsWith("]")) {
|
|
358
|
+
return null;
|
|
359
|
+
}
|
|
360
|
+
host = host.slice(1, -1).trim();
|
|
361
|
+
}
|
|
362
|
+
if (host.length === 0 || !Number.isInteger(port) || port <= 0 || port > 65535) {
|
|
363
|
+
return null;
|
|
364
|
+
}
|
|
365
|
+
return { host, port };
|
|
366
|
+
}
|
|
345
367
|
export function resolveEndpoint(cfg) {
|
|
346
368
|
const endpoint = resolveConfiguredEndpoint(cfg);
|
|
347
369
|
return endpoint.replace(/^unix:/, "");
|
|
@@ -465,15 +487,11 @@ function createDefaultRuntime() {
|
|
|
465
487
|
},
|
|
466
488
|
createSocket(endpoint) {
|
|
467
489
|
if (isTcpEndpoint(endpoint)) {
|
|
468
|
-
const
|
|
469
|
-
|
|
470
|
-
if (separator <= 0) {
|
|
490
|
+
const parsed = parseTcpEndpoint(endpoint);
|
|
491
|
+
if (!parsed) {
|
|
471
492
|
throw new Error(`Invalid TCP sidecar endpoint: ${endpoint}`);
|
|
472
493
|
}
|
|
473
|
-
return net.connect(
|
|
474
|
-
host: address.slice(0, separator),
|
|
475
|
-
port: Number(address.slice(separator + 1)),
|
|
476
|
-
});
|
|
494
|
+
return net.connect(parsed);
|
|
477
495
|
}
|
|
478
496
|
return net.connect(endpoint);
|
|
479
497
|
},
|
|
@@ -515,17 +533,7 @@ function isConfiguredEndpoint(value) {
|
|
|
515
533
|
if (value.startsWith("unix:")) {
|
|
516
534
|
return value.slice("unix:".length).trim().length > 0;
|
|
517
535
|
}
|
|
518
|
-
|
|
519
|
-
return false;
|
|
520
|
-
}
|
|
521
|
-
const address = value.slice("tcp:".length);
|
|
522
|
-
const separator = address.lastIndexOf(":");
|
|
523
|
-
if (separator <= 0 || separator === address.length - 1) {
|
|
524
|
-
return false;
|
|
525
|
-
}
|
|
526
|
-
const host = address.slice(0, separator).trim();
|
|
527
|
-
const port = Number(address.slice(separator + 1));
|
|
528
|
-
return host.length > 0 && Number.isInteger(port) && port > 0 && port <= 65535;
|
|
536
|
+
return parseTcpEndpoint(value) !== null;
|
|
529
537
|
}
|
|
530
538
|
function normalizeConfiguredEndpoint(value) {
|
|
531
539
|
const trimmed = value?.trim();
|
|
@@ -547,15 +555,12 @@ export async function probeSidecarEndpoint(cfg) {
|
|
|
547
555
|
try {
|
|
548
556
|
await new Promise((resolve, reject) => {
|
|
549
557
|
if (isTcpEndpoint(endpoint)) {
|
|
550
|
-
const
|
|
551
|
-
|
|
552
|
-
if (separator <= 0) {
|
|
558
|
+
const parsed = parseTcpEndpoint(endpoint);
|
|
559
|
+
if (!parsed) {
|
|
553
560
|
reject(new Error("invalid tcp endpoint"));
|
|
554
561
|
return;
|
|
555
562
|
}
|
|
556
|
-
const
|
|
557
|
-
const port = Number(address.slice(separator + 1));
|
|
558
|
-
const socket = net.connect({ host, port }, () => {
|
|
563
|
+
const socket = net.connect(parsed, () => {
|
|
559
564
|
socket.destroy();
|
|
560
565
|
resolve();
|
|
561
566
|
});
|
package/dist/types.d.ts
CHANGED
|
@@ -63,7 +63,6 @@ export interface PluginConfig {
|
|
|
63
63
|
authoredHardBudgetFraction?: number;
|
|
64
64
|
authoredSoftBudgetFraction?: number;
|
|
65
65
|
elevatedGuidanceBudgetFraction?: number;
|
|
66
|
-
section7StartupTokenBudgetTokens?: number;
|
|
67
66
|
continuityMinTurns?: number;
|
|
68
67
|
continuityTailBudgetTokens?: number;
|
|
69
68
|
continuityPriorContextTokens?: number;
|
|
@@ -80,10 +79,8 @@ export interface PluginConfig {
|
|
|
80
79
|
section7AuthorityRecencyWeight?: number;
|
|
81
80
|
section7AuthorityFrequencyWeight?: number;
|
|
82
81
|
section7AuthorityAuthoredWeight?: number;
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
summaryExpansionTokenBudget?: number;
|
|
86
|
-
summaryExpansionPenaltyFactor?: number;
|
|
82
|
+
section7AuthoritySalienceWeight?: number;
|
|
83
|
+
section7RecencyAccessLambda?: number;
|
|
87
84
|
recoveryFloorScore?: number;
|
|
88
85
|
recoveryMinTopK?: number;
|
|
89
86
|
recoveryMinConfidenceMean?: number;
|
package/openclaw.plugin.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"id": "libravdb-memory",
|
|
3
3
|
"name": "LibraVDB Memory",
|
|
4
4
|
"description": "Persistent vector memory with three-tier hybrid scoring",
|
|
5
|
-
"version": "1.4.
|
|
5
|
+
"version": "1.4.79",
|
|
6
6
|
"kind": [
|
|
7
7
|
"memory",
|
|
8
8
|
"context-engine"
|
|
@@ -64,6 +64,42 @@
|
|
|
64
64
|
"useSessionSummarySearchExperiment": {
|
|
65
65
|
"type": "boolean"
|
|
66
66
|
},
|
|
67
|
+
"section7CoarseTopK": {
|
|
68
|
+
"type": "number"
|
|
69
|
+
},
|
|
70
|
+
"section7SecondPassTopK": {
|
|
71
|
+
"type": "number"
|
|
72
|
+
},
|
|
73
|
+
"section7Theta1": {
|
|
74
|
+
"type": "number"
|
|
75
|
+
},
|
|
76
|
+
"section7Kappa": {
|
|
77
|
+
"type": "number"
|
|
78
|
+
},
|
|
79
|
+
"section7HopEta": {
|
|
80
|
+
"type": "number"
|
|
81
|
+
},
|
|
82
|
+
"section7HopThreshold": {
|
|
83
|
+
"type": "number"
|
|
84
|
+
},
|
|
85
|
+
"section7AuthorityRecencyLambda": {
|
|
86
|
+
"type": "number"
|
|
87
|
+
},
|
|
88
|
+
"section7AuthorityRecencyWeight": {
|
|
89
|
+
"type": "number"
|
|
90
|
+
},
|
|
91
|
+
"section7AuthorityFrequencyWeight": {
|
|
92
|
+
"type": "number"
|
|
93
|
+
},
|
|
94
|
+
"section7AuthorityAuthoredWeight": {
|
|
95
|
+
"type": "number"
|
|
96
|
+
},
|
|
97
|
+
"section7AuthoritySalienceWeight": {
|
|
98
|
+
"type": "number"
|
|
99
|
+
},
|
|
100
|
+
"section7RecencyAccessLambda": {
|
|
101
|
+
"type": "number"
|
|
102
|
+
},
|
|
67
103
|
"embeddingRuntimePath": {
|
|
68
104
|
"type": "string"
|
|
69
105
|
},
|
|
@@ -260,6 +296,24 @@
|
|
|
260
296
|
"default": 2000,
|
|
261
297
|
"description": "Auto-trigger compaction when the session accumulates this many tokens since the last compaction. Set to 0 to disable auto-compaction."
|
|
262
298
|
},
|
|
299
|
+
"continuityMinTurns": {
|
|
300
|
+
"type": "number"
|
|
301
|
+
},
|
|
302
|
+
"continuityTailBudgetTokens": {
|
|
303
|
+
"type": "number"
|
|
304
|
+
},
|
|
305
|
+
"continuityPriorContextTokens": {
|
|
306
|
+
"type": "number"
|
|
307
|
+
},
|
|
308
|
+
"recoveryFloorScore": {
|
|
309
|
+
"type": "number"
|
|
310
|
+
},
|
|
311
|
+
"recoveryMinTopK": {
|
|
312
|
+
"type": "number"
|
|
313
|
+
},
|
|
314
|
+
"recoveryMinConfidenceMean": {
|
|
315
|
+
"type": "number"
|
|
316
|
+
},
|
|
263
317
|
"ollamaUrl": {
|
|
264
318
|
"type": "string"
|
|
265
319
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xdarkicex/openclaw-memory-libravdb",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.79",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"@grpc/proto-loader": "^0.8.0",
|
|
71
71
|
"@openclaw/plugin-inspector": "0.3.7",
|
|
72
72
|
"@types/node": "^20.11.0",
|
|
73
|
-
"@xdarkicex/libravdb-contracts": "^0.0.
|
|
73
|
+
"@xdarkicex/libravdb-contracts": "^0.0.7",
|
|
74
74
|
"esbuild": "^0.27.0",
|
|
75
75
|
"openclaw": "2026.4.11",
|
|
76
76
|
"typescript": "^6.0.3"
|