devez-vibe 1.5.23 → 1.5.25
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/bin/dvz.exe +0 -0
- package/bridge/claude-agent-sdk-bridge.mjs +37 -1
- package/package.json +1 -1
package/bin/dvz.exe
CHANGED
|
Binary file
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { randomUUID } from "node:crypto";
|
|
4
4
|
import { spawn } from "node:child_process";
|
|
5
|
-
import { createReadStream } from "node:fs";
|
|
5
|
+
import { createReadStream, existsSync, readdirSync } from "node:fs";
|
|
6
6
|
import { mkdir, readdir, readFile, writeFile } from "node:fs/promises";
|
|
7
7
|
import { homedir } from "node:os";
|
|
8
8
|
import { dirname, join } from "node:path";
|
|
@@ -525,6 +525,36 @@ async function retryClaudePermission(params) {
|
|
|
525
525
|
});
|
|
526
526
|
}
|
|
527
527
|
|
|
528
|
+
function subdirectories(dir) {
|
|
529
|
+
try {
|
|
530
|
+
return readdirSync(dir, { withFileTypes: true })
|
|
531
|
+
.filter((entry) => entry.isDirectory())
|
|
532
|
+
.map((entry) => entry.name);
|
|
533
|
+
} catch {
|
|
534
|
+
return [];
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
// A plugin output style marked `force-for-plugin` overrides the `outputStyle`
|
|
539
|
+
// setting, so pinning that setting is not enough on its own: every installed
|
|
540
|
+
// plugin shipping a style has to be switched off as well. Installed plugins
|
|
541
|
+
// live at plugins/cache/<marketplace>/<plugin>/<version>, which is also where
|
|
542
|
+
// the `<plugin>@<marketplace>` id the setting expects comes from.
|
|
543
|
+
function styleShippingPlugins() {
|
|
544
|
+
const root = join(homedir(), ".claude", "plugins", "cache");
|
|
545
|
+
const disabled = {};
|
|
546
|
+
for (const marketplace of subdirectories(root)) {
|
|
547
|
+
const marketplaceDir = join(root, marketplace);
|
|
548
|
+
for (const plugin of subdirectories(marketplaceDir)) {
|
|
549
|
+
const pluginDir = join(marketplaceDir, plugin);
|
|
550
|
+
const shipsStyle = subdirectories(pluginDir).some((version) =>
|
|
551
|
+
existsSync(join(pluginDir, version, "output-styles")));
|
|
552
|
+
if (shipsStyle) disabled[`${plugin}@${marketplace}`] = false;
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
return disabled;
|
|
556
|
+
}
|
|
557
|
+
|
|
528
558
|
function makeOptions(params, sessionId, resume) {
|
|
529
559
|
const options = {
|
|
530
560
|
cwd: params.cwd || process.cwd(),
|
|
@@ -537,6 +567,12 @@ function makeOptions(params, sessionId, resume) {
|
|
|
537
567
|
enableFileCheckpointing: true,
|
|
538
568
|
persistSession: true,
|
|
539
569
|
settingSources: ["user", "project", "local"],
|
|
570
|
+
// The flag settings layer outranks user/project/local, so a CLI output style
|
|
571
|
+
// never stacks on top of the DevezVibe instructions we append below.
|
|
572
|
+
settings: {
|
|
573
|
+
outputStyle: "default",
|
|
574
|
+
enabledPlugins: styleShippingPlugins(),
|
|
575
|
+
},
|
|
540
576
|
skills: "all",
|
|
541
577
|
tools: { type: "preset", preset: "claude_code" },
|
|
542
578
|
systemPrompt: {
|