@velvetmonkey/flywheel-memory 2.3.3 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +22 -14
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -10389,10 +10389,10 @@ async function initToolRouting() {
|
|
|
10389
10389
|
function hasToolRouting() {
|
|
10390
10390
|
return routingIndex !== null && routingIndex.length > 0;
|
|
10391
10391
|
}
|
|
10392
|
-
function getToolRoutingMode(
|
|
10392
|
+
function getToolRoutingMode(isFullToolset) {
|
|
10393
10393
|
const env = process.env.FLYWHEEL_TOOL_ROUTING?.trim().toLowerCase();
|
|
10394
10394
|
if (env === "pattern" || env === "hybrid" || env === "semantic") return env;
|
|
10395
|
-
return
|
|
10395
|
+
return isFullToolset ? "hybrid" : "pattern";
|
|
10396
10396
|
}
|
|
10397
10397
|
async function getSemanticActivations(query) {
|
|
10398
10398
|
return rankAndCollapse(query, routingIndex, hasToolRouting(), manifestModel ?? "");
|
|
@@ -11738,6 +11738,7 @@ var ALL_CATEGORIES = [
|
|
|
11738
11738
|
var PRESETS = {
|
|
11739
11739
|
// Presets
|
|
11740
11740
|
full: [...ALL_CATEGORIES],
|
|
11741
|
+
auto: [...ALL_CATEGORIES],
|
|
11741
11742
|
agent: ["search", "read", "write", "tasks", "memory"],
|
|
11742
11743
|
// Composable bundles (one per category)
|
|
11743
11744
|
graph: ["graph"],
|
|
@@ -11816,16 +11817,19 @@ function resolveToolConfig(envValue) {
|
|
|
11816
11817
|
return {
|
|
11817
11818
|
categories: new Set(PRESETS[DEFAULT_PRESET]),
|
|
11818
11819
|
preset: DEFAULT_PRESET,
|
|
11819
|
-
isFullToolset: true
|
|
11820
|
+
isFullToolset: true,
|
|
11821
|
+
enableProgressiveDisclosure: false
|
|
11820
11822
|
};
|
|
11821
11823
|
}
|
|
11822
11824
|
const lowerValue = raw.toLowerCase();
|
|
11823
11825
|
if (PRESETS[lowerValue]) {
|
|
11824
11826
|
const cats = new Set(PRESETS[lowerValue]);
|
|
11827
|
+
const isFullToolset = cats.size === ALL_CATEGORIES.length && ALL_CATEGORIES.every((c) => cats.has(c));
|
|
11825
11828
|
return {
|
|
11826
11829
|
categories: cats,
|
|
11827
11830
|
preset: lowerValue,
|
|
11828
|
-
isFullToolset
|
|
11831
|
+
isFullToolset,
|
|
11832
|
+
enableProgressiveDisclosure: lowerValue === "auto"
|
|
11829
11833
|
};
|
|
11830
11834
|
}
|
|
11831
11835
|
if (DEPRECATED_ALIASES[lowerValue]) {
|
|
@@ -11835,7 +11839,8 @@ function resolveToolConfig(envValue) {
|
|
|
11835
11839
|
return {
|
|
11836
11840
|
categories: cats,
|
|
11837
11841
|
preset: resolved,
|
|
11838
|
-
isFullToolset: cats.size === ALL_CATEGORIES.length && ALL_CATEGORIES.every((c) => cats.has(c))
|
|
11842
|
+
isFullToolset: cats.size === ALL_CATEGORIES.length && ALL_CATEGORIES.every((c) => cats.has(c)),
|
|
11843
|
+
enableProgressiveDisclosure: resolved === "auto"
|
|
11839
11844
|
};
|
|
11840
11845
|
}
|
|
11841
11846
|
}
|
|
@@ -11843,7 +11848,8 @@ function resolveToolConfig(envValue) {
|
|
|
11843
11848
|
return {
|
|
11844
11849
|
categories,
|
|
11845
11850
|
preset: null,
|
|
11846
|
-
isFullToolset: categories.size === ALL_CATEGORIES.length && ALL_CATEGORIES.every((c) => categories.has(c))
|
|
11851
|
+
isFullToolset: categories.size === ALL_CATEGORIES.length && ALL_CATEGORIES.every((c) => categories.has(c)),
|
|
11852
|
+
enableProgressiveDisclosure: false
|
|
11847
11853
|
};
|
|
11848
11854
|
}
|
|
11849
11855
|
var TOOL_CATEGORY = {
|
|
@@ -26758,7 +26764,7 @@ function unionSignalsByCategory(signals) {
|
|
|
26758
26764
|
}
|
|
26759
26765
|
return Array.from(best.entries()).map(([category, tier]) => ({ category, tier }));
|
|
26760
26766
|
}
|
|
26761
|
-
async function getActivationSignals(toolName, params, searchMethod,
|
|
26767
|
+
async function getActivationSignals(toolName, params, searchMethod, isFullToolset = false) {
|
|
26762
26768
|
if (toolName !== "search" && toolName !== "brief") return [];
|
|
26763
26769
|
if (!params || typeof params !== "object") return [];
|
|
26764
26770
|
const raw = [
|
|
@@ -26766,7 +26772,7 @@ async function getActivationSignals(toolName, params, searchMethod, toolTierMode
|
|
|
26766
26772
|
typeof params.focus === "string" ? params.focus : ""
|
|
26767
26773
|
].filter(Boolean).join(" ");
|
|
26768
26774
|
if (!raw) return [];
|
|
26769
|
-
const routingMode = getToolRoutingMode(
|
|
26775
|
+
const routingMode = getToolRoutingMode(isFullToolset);
|
|
26770
26776
|
const patternSignals = routingMode !== "semantic" ? getPatternSignals(raw) : [];
|
|
26771
26777
|
let semanticSignals = [];
|
|
26772
26778
|
if (routingMode !== "pattern" && searchMethod === "hybrid" && hasToolRouting()) {
|
|
@@ -26790,7 +26796,7 @@ function extractSearchMethod(result) {
|
|
|
26790
26796
|
}
|
|
26791
26797
|
return void 0;
|
|
26792
26798
|
}
|
|
26793
|
-
function applyToolGating(targetServer, categories, getDb4, registry, getVaultPath, vaultCallbacks, tierMode = "off", onTierStateChange) {
|
|
26799
|
+
function applyToolGating(targetServer, categories, getDb4, registry, getVaultPath, vaultCallbacks, tierMode = "off", onTierStateChange, isFullToolset = false) {
|
|
26794
26800
|
let _registered = 0;
|
|
26795
26801
|
let _skipped = 0;
|
|
26796
26802
|
let tierOverride = "auto";
|
|
@@ -26851,7 +26857,7 @@ function applyToolGating(targetServer, categories, getDb4, registry, getVaultPat
|
|
|
26851
26857
|
async function maybeActivateFromContext(toolName, params, searchMethod) {
|
|
26852
26858
|
if (tierMode !== "tiered" || tierOverride === "full") return [];
|
|
26853
26859
|
const newlyEnabled = [];
|
|
26854
|
-
for (const { category, tier } of await getActivationSignals(toolName, params, searchMethod,
|
|
26860
|
+
for (const { category, tier } of await getActivationSignals(toolName, params, searchMethod, isFullToolset)) {
|
|
26855
26861
|
newlyEnabled.push(...enableCategory(category, tier));
|
|
26856
26862
|
}
|
|
26857
26863
|
return newlyEnabled;
|
|
@@ -27283,7 +27289,7 @@ function registerAllTools(targetServer, ctx, controller) {
|
|
|
27283
27289
|
registerCalibrationExportTools(targetServer, gvi, gsd, gcf);
|
|
27284
27290
|
registerMemoryTools(targetServer, gsd);
|
|
27285
27291
|
registerBriefTools(targetServer, gsd);
|
|
27286
|
-
if (controller) {
|
|
27292
|
+
if (controller && controller.mode === "tiered") {
|
|
27287
27293
|
registerDiscoveryTools(targetServer, controller);
|
|
27288
27294
|
}
|
|
27289
27295
|
registerVaultResources(targetServer, () => gvi() ?? null);
|
|
@@ -27318,7 +27324,7 @@ function getWatcherStatus() {
|
|
|
27318
27324
|
}
|
|
27319
27325
|
var toolConfig = resolveToolConfig();
|
|
27320
27326
|
var enabledCategories = toolConfig.categories;
|
|
27321
|
-
var toolTierMode = toolConfig.
|
|
27327
|
+
var toolTierMode = toolConfig.enableProgressiveDisclosure ? "tiered" : "off";
|
|
27322
27328
|
var runtimeToolTierOverride = INITIAL_TIER_OVERRIDE;
|
|
27323
27329
|
var runtimeActiveCategoryTiers = /* @__PURE__ */ new Map();
|
|
27324
27330
|
var primaryToolTierController = null;
|
|
@@ -27369,7 +27375,8 @@ function createConfiguredServer() {
|
|
|
27369
27375
|
ctx.getVaultPath,
|
|
27370
27376
|
buildVaultCallbacks(),
|
|
27371
27377
|
toolTierMode,
|
|
27372
|
-
handleTierStateChange
|
|
27378
|
+
handleTierStateChange,
|
|
27379
|
+
toolConfig.isFullToolset
|
|
27373
27380
|
);
|
|
27374
27381
|
registerAllTools(s, ctx, toolTierController);
|
|
27375
27382
|
toolTierController.setOverride(runtimeToolTierOverride);
|
|
@@ -27422,7 +27429,8 @@ var _gatingResult = applyToolGating(
|
|
|
27422
27429
|
_registryCtx.getVaultPath,
|
|
27423
27430
|
buildVaultCallbacks(),
|
|
27424
27431
|
toolTierMode,
|
|
27425
|
-
handleTierStateChange
|
|
27432
|
+
handleTierStateChange,
|
|
27433
|
+
toolConfig.isFullToolset
|
|
27426
27434
|
);
|
|
27427
27435
|
registerAllTools(server, _registryCtx, _gatingResult);
|
|
27428
27436
|
_gatingResult.setOverride(runtimeToolTierOverride);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@velvetmonkey/flywheel-memory",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.4.0",
|
|
4
4
|
"description": "MCP tools that search, write, and auto-link your Obsidian vault — and learn from your edits.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"dependencies": {
|
|
56
56
|
"@huggingface/transformers": "^3.8.1",
|
|
57
57
|
"@modelcontextprotocol/sdk": "^1.25.1",
|
|
58
|
-
"@velvetmonkey/vault-core": "^2.
|
|
58
|
+
"@velvetmonkey/vault-core": "^2.4.0",
|
|
59
59
|
"better-sqlite3": "^12.0.0",
|
|
60
60
|
"chokidar": "^4.0.0",
|
|
61
61
|
"gray-matter": "^4.0.3",
|