@jaggerxtrm/specialists 3.6.17 → 3.6.18
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 +29 -12
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -20747,13 +20747,22 @@ function parseMemoriesPayload(jsonText) {
|
|
|
20747
20747
|
return [];
|
|
20748
20748
|
}
|
|
20749
20749
|
function readBdMemories(cwd) {
|
|
20750
|
-
|
|
20751
|
-
|
|
20752
|
-
|
|
20753
|
-
|
|
20754
|
-
|
|
20755
|
-
|
|
20756
|
-
|
|
20750
|
+
try {
|
|
20751
|
+
const stdout = execSync("bd memories --json", {
|
|
20752
|
+
cwd,
|
|
20753
|
+
encoding: "utf8",
|
|
20754
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
20755
|
+
timeout: 5000
|
|
20756
|
+
});
|
|
20757
|
+
return parseMemoriesPayload(stdout);
|
|
20758
|
+
} catch (error2) {
|
|
20759
|
+
const commandError = error2;
|
|
20760
|
+
const stderr = typeof commandError.stderr === "string" ? commandError.stderr : commandError.stderr?.toString("utf8") ?? "";
|
|
20761
|
+
if (/no beads database found/i.test(stderr)) {
|
|
20762
|
+
return [];
|
|
20763
|
+
}
|
|
20764
|
+
throw error2;
|
|
20765
|
+
}
|
|
20757
20766
|
}
|
|
20758
20767
|
function shouldRefreshCache(args) {
|
|
20759
20768
|
if (args.cacheCount === null || args.cacheLastSyncAtMs === null)
|
|
@@ -25072,6 +25081,7 @@ function installProjectHooks(cwd) {
|
|
|
25072
25081
|
let copied = 0;
|
|
25073
25082
|
let skippedCopies = 0;
|
|
25074
25083
|
let linked = 0;
|
|
25084
|
+
let rewiredLinks = 0;
|
|
25075
25085
|
let skippedLinks = 0;
|
|
25076
25086
|
for (const file of hooks) {
|
|
25077
25087
|
const src = join10(sourceDir, file);
|
|
@@ -25083,21 +25093,25 @@ function installProjectHooks(cwd) {
|
|
|
25083
25093
|
copied++;
|
|
25084
25094
|
}
|
|
25085
25095
|
const claudeHookPath = join10(claudeHooksDir, file);
|
|
25096
|
+
const relativeTarget = `../../.xtrm/hooks/specialists/${file}`;
|
|
25086
25097
|
if (existsSync9(claudeHookPath)) {
|
|
25087
25098
|
const stats = lstatSync(claudeHookPath);
|
|
25088
25099
|
if (!stats.isSymbolicLink()) {
|
|
25089
|
-
|
|
25100
|
+
unlinkSync(claudeHookPath);
|
|
25101
|
+
symlinkSync(relativeTarget, claudeHookPath);
|
|
25102
|
+
rewiredLinks++;
|
|
25090
25103
|
continue;
|
|
25091
25104
|
}
|
|
25092
25105
|
const currentTarget = resolve4(dirname5(claudeHookPath), readlinkSync(claudeHookPath));
|
|
25093
25106
|
if (currentTarget !== xtrmDest) {
|
|
25094
|
-
|
|
25107
|
+
unlinkSync(claudeHookPath);
|
|
25108
|
+
symlinkSync(relativeTarget, claudeHookPath);
|
|
25109
|
+
rewiredLinks++;
|
|
25095
25110
|
continue;
|
|
25096
25111
|
}
|
|
25097
25112
|
skippedLinks++;
|
|
25098
25113
|
continue;
|
|
25099
25114
|
}
|
|
25100
|
-
const relativeTarget = `../../.xtrm/hooks/specialists/${file}`;
|
|
25101
25115
|
symlinkSync(relativeTarget, claudeHookPath);
|
|
25102
25116
|
linked++;
|
|
25103
25117
|
}
|
|
@@ -25107,6 +25121,8 @@ function installProjectHooks(cwd) {
|
|
|
25107
25121
|
skip(`${skippedCopies} hook${skippedCopies === 1 ? "" : "s"} already exist in .xtrm/hooks/specialists/ (not overwritten)`);
|
|
25108
25122
|
if (linked > 0)
|
|
25109
25123
|
ok(`linked ${linked} hook${linked === 1 ? "" : "s"} in .claude/hooks/ -> .xtrm/hooks/specialists/`);
|
|
25124
|
+
if (rewiredLinks > 0)
|
|
25125
|
+
ok(`rewired ${rewiredLinks} legacy hook${rewiredLinks === 1 ? "" : "s"} in .claude/hooks/ -> .xtrm/hooks/specialists/`);
|
|
25110
25126
|
if (skippedLinks > 0)
|
|
25111
25127
|
skip(`${skippedLinks} hook${skippedLinks === 1 ? "" : "s"} already present in .claude/hooks/ (left unchanged)`);
|
|
25112
25128
|
}
|
|
@@ -25499,8 +25515,9 @@ ${bold5("specialists init")}
|
|
|
25499
25515
|
} else {
|
|
25500
25516
|
skip("memories FTS cache sync skipped (not available)");
|
|
25501
25517
|
}
|
|
25502
|
-
} catch {
|
|
25503
|
-
|
|
25518
|
+
} catch (error2) {
|
|
25519
|
+
const message = error2 instanceof Error ? error2.message : String(error2);
|
|
25520
|
+
warn(`memories FTS cache sync failed during init (non-fatal): ${message}`);
|
|
25504
25521
|
}
|
|
25505
25522
|
const postconditionWarnings = validateInitPostconditions(cwd);
|
|
25506
25523
|
if (postconditionWarnings.length > 0) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jaggerxtrm/specialists",
|
|
3
|
-
"version": "3.6.
|
|
3
|
+
"version": "3.6.18",
|
|
4
4
|
"description": "OmniSpecialist — 7-tool MCP orchestration layer powered by the Specialist System. Discover and execute .specialist.yaml files across project/user/system scopes via pi.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|