drizzy-agent 0.1.0 → 0.1.2
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/cli/doctor/constants.d.ts +1 -1
- package/dist/cli/index.js +138 -128
- package/dist/drizzy-agent.schema.json +3 -3
- package/dist/index.js +31 -27
- package/package.json +13 -13
|
@@ -25,5 +25,5 @@ export declare const EXIT_CODES: {
|
|
|
25
25
|
readonly FAILURE: 1;
|
|
26
26
|
};
|
|
27
27
|
export declare const MIN_OPENCODE_VERSION = "1.0.150";
|
|
28
|
-
export declare const PACKAGE_NAME = "
|
|
28
|
+
export declare const PACKAGE_NAME = "drizzy-agent";
|
|
29
29
|
export declare const OPENCODE_BINARIES: readonly ["opencode", "opencode-desktop"];
|
package/dist/cli/index.js
CHANGED
|
@@ -4930,7 +4930,7 @@ function log(message, data) {
|
|
|
4930
4930
|
}
|
|
4931
4931
|
var logFile;
|
|
4932
4932
|
var init_logger = __esm(() => {
|
|
4933
|
-
logFile = path.join(os.tmpdir(), "
|
|
4933
|
+
logFile = path.join(os.tmpdir(), "drizzy-agent.log");
|
|
4934
4934
|
});
|
|
4935
4935
|
|
|
4936
4936
|
// src/shared/deep-merge.ts
|
|
@@ -5022,7 +5022,7 @@ function getCacheDir() {
|
|
|
5022
5022
|
return process.env.XDG_CACHE_HOME ?? path2.join(os2.homedir(), ".cache");
|
|
5023
5023
|
}
|
|
5024
5024
|
function getOmoOpenCodeCacheDir() {
|
|
5025
|
-
return path2.join(getCacheDir(), "
|
|
5025
|
+
return path2.join(getCacheDir(), "drizzy-agent");
|
|
5026
5026
|
}
|
|
5027
5027
|
function getOpenCodeCacheDir() {
|
|
5028
5028
|
return path2.join(getCacheDir(), "opencode");
|
|
@@ -6266,7 +6266,7 @@ function getOpenCodeConfigPaths(options) {
|
|
|
6266
6266
|
configJson: join3(configDir, "opencode.json"),
|
|
6267
6267
|
configJsonc: join3(configDir, "opencode.jsonc"),
|
|
6268
6268
|
packageJson: join3(configDir, "package.json"),
|
|
6269
|
-
omoConfig: join3(configDir, "
|
|
6269
|
+
omoConfig: join3(configDir, "drizzy-agent.json")
|
|
6270
6270
|
};
|
|
6271
6271
|
}
|
|
6272
6272
|
var TAURI_APP_IDENTIFIER = "ai.opencode.desktop", TAURI_APP_IDENTIFIER_DEV = "ai.opencode.desktop.dev";
|
|
@@ -7184,7 +7184,7 @@ async function getPluginNameWithVersion(currentVersion) {
|
|
|
7184
7184
|
}
|
|
7185
7185
|
return getFallbackEntry(currentVersion);
|
|
7186
7186
|
}
|
|
7187
|
-
var PACKAGE_NAME = "
|
|
7187
|
+
var PACKAGE_NAME = "drizzy-agent", PRIORITIZED_TAGS;
|
|
7188
7188
|
var init_plugin_name_with_version = __esm(() => {
|
|
7189
7189
|
PRIORITIZED_TAGS = ["latest", "beta", "next"];
|
|
7190
7190
|
});
|
|
@@ -7351,7 +7351,7 @@ async function addPluginToOpenCodeConfig(currentVersion) {
|
|
|
7351
7351
|
};
|
|
7352
7352
|
}
|
|
7353
7353
|
}
|
|
7354
|
-
var PACKAGE_NAME2 = "
|
|
7354
|
+
var PACKAGE_NAME2 = "drizzy-agent";
|
|
7355
7355
|
var init_add_plugin_to_opencode_config = __esm(() => {
|
|
7356
7356
|
init_config_context();
|
|
7357
7357
|
init_ensure_config_directory_exists();
|
|
@@ -7728,7 +7728,7 @@ function resolveModelFromChain(fallbackChain, availability) {
|
|
|
7728
7728
|
return null;
|
|
7729
7729
|
}
|
|
7730
7730
|
function getCoderFallbackChain() {
|
|
7731
|
-
return CLI_AGENT_MODEL_REQUIREMENTS.
|
|
7731
|
+
return CLI_AGENT_MODEL_REQUIREMENTS.coder.fallbackChain;
|
|
7732
7732
|
}
|
|
7733
7733
|
function isAnyFallbackEntryAvailable(fallbackChain, availability) {
|
|
7734
7734
|
return fallbackChain.some((entry) => entry.providers.some((provider) => isProviderAvailable(provider, availability)));
|
|
@@ -7826,7 +7826,7 @@ function generateModelConfig(config) {
|
|
|
7826
7826
|
};
|
|
7827
7827
|
return isOpenAiOnlyAvailability(avail) ? applyOpenAiOnlyModelCatalog(generatedConfig) : generatedConfig;
|
|
7828
7828
|
}
|
|
7829
|
-
var ZAI_MODEL = "zai-coding-plan/glm-4.7", ULTIMATE_FALLBACK = "opencode/glm-4.7-free", SCHEMA_URL = "https://raw.githubusercontent.com/
|
|
7829
|
+
var ZAI_MODEL = "zai-coding-plan/glm-4.7", ULTIMATE_FALLBACK = "opencode/glm-4.7-free", SCHEMA_URL = "https://raw.githubusercontent.com/yourusername/drizzy-agent/dev/assets/drizzy-agent.schema.json";
|
|
7830
7830
|
var init_model_fallback = __esm(() => {
|
|
7831
7831
|
init_model_fallback_requirements();
|
|
7832
7832
|
init_openai_only_model_catalog();
|
|
@@ -7860,6 +7860,7 @@ function deepMergeRecord(target, source) {
|
|
|
7860
7860
|
|
|
7861
7861
|
// src/cli/config-manager/write-omo-config.ts
|
|
7862
7862
|
import { existsSync as existsSync7, readFileSync as readFileSync6, statSync as statSync2, writeFileSync as writeFileSync4 } from "fs";
|
|
7863
|
+
import { join as join7 } from "path";
|
|
7863
7864
|
function isEmptyOrWhitespace2(content) {
|
|
7864
7865
|
return content.trim().length === 0;
|
|
7865
7866
|
}
|
|
@@ -7874,12 +7875,14 @@ function writeOmoConfig(installConfig) {
|
|
|
7874
7875
|
};
|
|
7875
7876
|
}
|
|
7876
7877
|
const omoConfigPath = getOmoConfigPath();
|
|
7878
|
+
const legacyConfigPath = join7(getConfigDir(), "oh-my-opencode.json");
|
|
7879
|
+
const existingConfigPath = existsSync7(omoConfigPath) ? omoConfigPath : existsSync7(legacyConfigPath) ? legacyConfigPath : omoConfigPath;
|
|
7877
7880
|
try {
|
|
7878
7881
|
const newConfig = generateOmoConfig(installConfig);
|
|
7879
|
-
if (existsSync7(
|
|
7882
|
+
if (existsSync7(existingConfigPath)) {
|
|
7880
7883
|
try {
|
|
7881
|
-
const stat = statSync2(
|
|
7882
|
-
const content = readFileSync6(
|
|
7884
|
+
const stat = statSync2(existingConfigPath);
|
|
7885
|
+
const content = readFileSync6(existingConfigPath, "utf-8");
|
|
7883
7886
|
if (stat.size === 0 || isEmptyOrWhitespace2(content)) {
|
|
7884
7887
|
writeFileSync4(omoConfigPath, JSON.stringify(newConfig, null, 2) + `
|
|
7885
7888
|
`);
|
|
@@ -7911,7 +7914,7 @@ function writeOmoConfig(installConfig) {
|
|
|
7911
7914
|
return {
|
|
7912
7915
|
success: false,
|
|
7913
7916
|
configPath: omoConfigPath,
|
|
7914
|
-
error: formatErrorWithSuggestion(err, "write
|
|
7917
|
+
error: formatErrorWithSuggestion(err, "write drizzy-agent config")
|
|
7915
7918
|
};
|
|
7916
7919
|
}
|
|
7917
7920
|
}
|
|
@@ -8020,13 +8023,16 @@ var init_opencode_binary = __esm(() => {
|
|
|
8020
8023
|
|
|
8021
8024
|
// src/cli/config-manager/detect-current-config.ts
|
|
8022
8025
|
import { existsSync as existsSync8, readFileSync as readFileSync7 } from "fs";
|
|
8026
|
+
import { join as join8 } from "path";
|
|
8023
8027
|
function detectProvidersFromOmoConfig() {
|
|
8024
8028
|
const omoConfigPath = getOmoConfigPath();
|
|
8025
|
-
|
|
8029
|
+
const legacyConfigPath = join8(getConfigDir(), "oh-my-opencode.json");
|
|
8030
|
+
const configPath = existsSync8(omoConfigPath) ? omoConfigPath : legacyConfigPath;
|
|
8031
|
+
if (!existsSync8(configPath)) {
|
|
8026
8032
|
return { hasOpenAI: true, hasOpencodeZen: true, hasZaiCodingPlan: false, hasKimiForCoding: false };
|
|
8027
8033
|
}
|
|
8028
8034
|
try {
|
|
8029
|
-
const content = readFileSync7(
|
|
8035
|
+
const content = readFileSync7(configPath, "utf-8");
|
|
8030
8036
|
const omoConfig = parseJsonc(content);
|
|
8031
8037
|
if (!omoConfig || typeof omoConfig !== "object") {
|
|
8032
8038
|
return { hasOpenAI: true, hasOpencodeZen: true, hasZaiCodingPlan: false, hasKimiForCoding: false };
|
|
@@ -8063,7 +8069,7 @@ function detectCurrentConfig() {
|
|
|
8063
8069
|
}
|
|
8064
8070
|
const openCodeConfig = parseResult.config;
|
|
8065
8071
|
const plugins = openCodeConfig.plugin ?? [];
|
|
8066
|
-
result.isInstalled = plugins.some((p) => p.startsWith("
|
|
8072
|
+
result.isInstalled = plugins.some((p) => p.startsWith("drizzy-agent"));
|
|
8067
8073
|
if (!result.isInstalled) {
|
|
8068
8074
|
return result;
|
|
8069
8075
|
}
|
|
@@ -9076,8 +9082,8 @@ var {
|
|
|
9076
9082
|
// package.json
|
|
9077
9083
|
var package_default = {
|
|
9078
9084
|
name: "drizzy-agent",
|
|
9079
|
-
version: "0.1.
|
|
9080
|
-
description: "DrizzyAgent - AI
|
|
9085
|
+
version: "0.1.2",
|
|
9086
|
+
description: "DrizzyAgent - AI agent plugin for OpenCode",
|
|
9081
9087
|
main: "dist/index.js",
|
|
9082
9088
|
types: "dist/index.d.ts",
|
|
9083
9089
|
type: "module",
|
|
@@ -9152,17 +9158,17 @@ var package_default = {
|
|
|
9152
9158
|
typescript: "^5.7.3"
|
|
9153
9159
|
},
|
|
9154
9160
|
optionalDependencies: {
|
|
9155
|
-
"drizzy-agent-darwin-arm64": "0.1.
|
|
9156
|
-
"drizzy-agent-darwin-x64": "0.1.
|
|
9157
|
-
"drizzy-agent-darwin-x64-baseline": "0.1.
|
|
9158
|
-
"drizzy-agent-linux-arm64": "0.1.
|
|
9159
|
-
"drizzy-agent-linux-arm64-musl": "0.1.
|
|
9160
|
-
"drizzy-agent-linux-x64": "0.1.
|
|
9161
|
-
"drizzy-agent-linux-x64-baseline": "0.1.
|
|
9162
|
-
"drizzy-agent-linux-x64-musl": "0.1.
|
|
9163
|
-
"drizzy-agent-linux-x64-musl-baseline": "0.1.
|
|
9164
|
-
"drizzy-agent-windows-x64": "0.1.
|
|
9165
|
-
"drizzy-agent-windows-x64-baseline": "0.1.
|
|
9161
|
+
"drizzy-agent-darwin-arm64": "0.1.2",
|
|
9162
|
+
"drizzy-agent-darwin-x64": "0.1.2",
|
|
9163
|
+
"drizzy-agent-darwin-x64-baseline": "0.1.2",
|
|
9164
|
+
"drizzy-agent-linux-arm64": "0.1.2",
|
|
9165
|
+
"drizzy-agent-linux-arm64-musl": "0.1.2",
|
|
9166
|
+
"drizzy-agent-linux-x64": "0.1.2",
|
|
9167
|
+
"drizzy-agent-linux-x64-baseline": "0.1.2",
|
|
9168
|
+
"drizzy-agent-linux-x64-musl": "0.1.2",
|
|
9169
|
+
"drizzy-agent-linux-x64-musl-baseline": "0.1.2",
|
|
9170
|
+
"drizzy-agent-windows-x64": "0.1.2",
|
|
9171
|
+
"drizzy-agent-windows-x64-baseline": "0.1.2"
|
|
9166
9172
|
},
|
|
9167
9173
|
overrides: {
|
|
9168
9174
|
"@opencode-ai/sdk": "^1.2.24"
|
|
@@ -9327,7 +9333,7 @@ async function runCliInstaller(args, version) {
|
|
|
9327
9333
|
console.log(` ${SYMBOLS.bullet} ${err}`);
|
|
9328
9334
|
}
|
|
9329
9335
|
console.log();
|
|
9330
|
-
printInfo("Usage: bunx
|
|
9336
|
+
printInfo("Usage: bunx drizzy-agent install --no-tui --claude=<no|yes|max20> --gemini=<no|yes> --copilot=<no|yes>");
|
|
9331
9337
|
console.log();
|
|
9332
9338
|
return 1;
|
|
9333
9339
|
}
|
|
@@ -9350,14 +9356,14 @@ async function runCliInstaller(args, version) {
|
|
|
9350
9356
|
printInfo(`Current config: Claude=${initial.claude}, Gemini=${initial.gemini}`);
|
|
9351
9357
|
}
|
|
9352
9358
|
const config = argsToConfig(args);
|
|
9353
|
-
printStep(step++, totalSteps, "Adding
|
|
9359
|
+
printStep(step++, totalSteps, "Adding drizzy-agent plugin...");
|
|
9354
9360
|
const pluginResult = await addPluginToOpenCodeConfig(version);
|
|
9355
9361
|
if (!pluginResult.success) {
|
|
9356
9362
|
printError(`Failed: ${pluginResult.error}`);
|
|
9357
9363
|
return 1;
|
|
9358
9364
|
}
|
|
9359
9365
|
printSuccess(`Plugin ${isUpdate ? "verified" : "added"} ${SYMBOLS.arrow} ${import_picocolors2.default.dim(pluginResult.configPath)}`);
|
|
9360
|
-
printStep(step++, totalSteps, "Writing
|
|
9366
|
+
printStep(step++, totalSteps, "Writing drizzy-agent configuration...");
|
|
9361
9367
|
const omoResult = writeOmoConfig(config);
|
|
9362
9368
|
if (!omoResult.success) {
|
|
9363
9369
|
printError(`Failed: ${omoResult.error}`);
|
|
@@ -9388,7 +9394,7 @@ async function runCliInstaller(args, version) {
|
|
|
9388
9394
|
` + `All features work like magic\u2014parallel agents, background tasks,
|
|
9389
9395
|
` + `deep exploration, and relentless execution until completion.`, "The Magic Word");
|
|
9390
9396
|
console.log(`${SYMBOLS.star} ${import_picocolors2.default.yellow("If you found this helpful, consider starring the repo!")}`);
|
|
9391
|
-
console.log(` ${import_picocolors2.default.dim("gh api --silent --method PUT /user/starred/
|
|
9397
|
+
console.log(` ${import_picocolors2.default.dim("gh api --silent --method PUT /user/starred/yourusername/drizzy-agent >/dev/null 2>&1 || true")}`);
|
|
9392
9398
|
console.log();
|
|
9393
9399
|
console.log(import_picocolors2.default.dim("oMoMoMoMo... Enjoy!"));
|
|
9394
9400
|
console.log();
|
|
@@ -10112,7 +10118,7 @@ async function runTuiInstaller(args, version) {
|
|
|
10112
10118
|
const config = await promptInstallConfig(detected);
|
|
10113
10119
|
if (!config)
|
|
10114
10120
|
return 1;
|
|
10115
|
-
spinner.start("Adding
|
|
10121
|
+
spinner.start("Adding drizzy-agent to OpenCode config");
|
|
10116
10122
|
const pluginResult = await addPluginToOpenCodeConfig(version);
|
|
10117
10123
|
if (!pluginResult.success) {
|
|
10118
10124
|
spinner.stop(`Failed to add plugin: ${pluginResult.error}`);
|
|
@@ -10120,7 +10126,7 @@ async function runTuiInstaller(args, version) {
|
|
|
10120
10126
|
return 1;
|
|
10121
10127
|
}
|
|
10122
10128
|
spinner.stop(`Plugin added to ${import_picocolors4.default.cyan(pluginResult.configPath)}`);
|
|
10123
|
-
spinner.start("Writing
|
|
10129
|
+
spinner.start("Writing drizzy-agent configuration");
|
|
10124
10130
|
const omoResult = writeOmoConfig(config);
|
|
10125
10131
|
if (!omoResult.success) {
|
|
10126
10132
|
spinner.stop(`Failed to write config: ${omoResult.error}`);
|
|
@@ -10151,7 +10157,7 @@ async function runTuiInstaller(args, version) {
|
|
|
10151
10157
|
` + `All features work like magic\u2014parallel agents, background tasks,
|
|
10152
10158
|
` + `deep exploration, and relentless execution until completion.`, "The Magic Word");
|
|
10153
10159
|
M2.message(`${import_picocolors4.default.yellow("\u2605")} If you found this helpful, consider starring the repo!`);
|
|
10154
|
-
M2.message(` ${import_picocolors4.default.dim("gh api --silent --method PUT /user/starred/
|
|
10160
|
+
M2.message(` ${import_picocolors4.default.dim("gh api --silent --method PUT /user/starred/yourusername/drizzy-agent >/dev/null 2>&1 || true")}`);
|
|
10155
10161
|
Se(import_picocolors4.default.green("oMoMoMoMo... Enjoy!"));
|
|
10156
10162
|
if ((config.hasClaude || config.hasGemini || config.hasCopilot) && !args.skipAuth) {
|
|
10157
10163
|
const providers = [];
|
|
@@ -24964,12 +24970,16 @@ function mergeConfigs(base, override) {
|
|
|
24964
24970
|
}
|
|
24965
24971
|
function loadPluginConfig(directory, ctx) {
|
|
24966
24972
|
const configDir = getOpenCodeConfigDir({ binary: "opencode" });
|
|
24967
|
-
const userBasePath = path3.join(configDir, "
|
|
24973
|
+
const userBasePath = path3.join(configDir, "drizzy-agent");
|
|
24974
|
+
const legacyUserBasePath = path3.join(configDir, "oh-my-opencode");
|
|
24968
24975
|
const userDetected = detectConfigFile(userBasePath);
|
|
24969
|
-
const
|
|
24970
|
-
const
|
|
24976
|
+
const legacyUserDetected = detectConfigFile(legacyUserBasePath);
|
|
24977
|
+
const userConfigPath = userDetected.format !== "none" ? userDetected.path : legacyUserDetected.format !== "none" ? legacyUserDetected.path : userBasePath + ".json";
|
|
24978
|
+
const projectBasePath = path3.join(directory, ".opencode", "drizzy-agent");
|
|
24979
|
+
const legacyProjectBasePath = path3.join(directory, ".opencode", "oh-my-opencode");
|
|
24971
24980
|
const projectDetected = detectConfigFile(projectBasePath);
|
|
24972
|
-
const
|
|
24981
|
+
const legacyProjectDetected = detectConfigFile(legacyProjectBasePath);
|
|
24982
|
+
const projectConfigPath = projectDetected.format !== "none" ? projectDetected.path : legacyProjectDetected.format !== "none" ? legacyProjectDetected.path : projectBasePath + ".json";
|
|
24973
24983
|
let config2 = loadConfigFromPath(userConfigPath, ctx) ?? {};
|
|
24974
24984
|
const projectConfig = loadConfigFromPath(projectConfigPath, ctx);
|
|
24975
24985
|
if (projectConfig) {
|
|
@@ -26435,7 +26445,7 @@ var import_picocolors9 = __toESM(require_picocolors(), 1);
|
|
|
26435
26445
|
|
|
26436
26446
|
// src/cli/run/opencode-binary-resolver.ts
|
|
26437
26447
|
init_spawn_with_windows_hide();
|
|
26438
|
-
import { delimiter, dirname, join as
|
|
26448
|
+
import { delimiter, dirname, join as join10 } from "path";
|
|
26439
26449
|
var OPENCODE_COMMANDS = ["opencode", "opencode-desktop"];
|
|
26440
26450
|
var WINDOWS_SUFFIXES = ["", ".exe", ".cmd", ".bat", ".ps1"];
|
|
26441
26451
|
function getCommandCandidates(platform) {
|
|
@@ -26458,7 +26468,7 @@ function collectCandidateBinaryPaths(pathEnv, which = Bun.which, platform = proc
|
|
|
26458
26468
|
}
|
|
26459
26469
|
for (const entry of (pathEnv ?? "").split(delimiter).filter(Boolean)) {
|
|
26460
26470
|
for (const command of commandCandidates) {
|
|
26461
|
-
addCandidate(
|
|
26471
|
+
addCandidate(join10(entry, command));
|
|
26462
26472
|
}
|
|
26463
26473
|
}
|
|
26464
26474
|
return candidates;
|
|
@@ -26609,7 +26619,7 @@ async function resolveSession(options) {
|
|
|
26609
26619
|
for (let attempt = 1;attempt <= SESSION_CREATE_MAX_RETRIES; attempt++) {
|
|
26610
26620
|
const res = await client3.session.create({
|
|
26611
26621
|
body: {
|
|
26612
|
-
title: "
|
|
26622
|
+
title: "drizzy-agent run",
|
|
26613
26623
|
permission: [
|
|
26614
26624
|
{ permission: "question", action: "deny", pattern: "*" }
|
|
26615
26625
|
]
|
|
@@ -26795,9 +26805,9 @@ var NOTEPAD_DIR = "notepads";
|
|
|
26795
26805
|
var NOTEPAD_BASE_PATH = `${BOULDER_DIR}/${NOTEPAD_DIR}`;
|
|
26796
26806
|
// src/features/boulder-state/storage.ts
|
|
26797
26807
|
import { existsSync as existsSync11, readFileSync as readFileSync9, writeFileSync as writeFileSync5, mkdirSync as mkdirSync3, readdirSync } from "fs";
|
|
26798
|
-
import { dirname as dirname2, join as
|
|
26808
|
+
import { dirname as dirname2, join as join11, basename } from "path";
|
|
26799
26809
|
function getBoulderFilePath(directory) {
|
|
26800
|
-
return
|
|
26810
|
+
return join11(directory, BOULDER_DIR, BOULDER_FILE);
|
|
26801
26811
|
}
|
|
26802
26812
|
function readBoulderState(directory) {
|
|
26803
26813
|
const filePath = getBoulderFilePath(directory);
|
|
@@ -26841,9 +26851,9 @@ function getPlanProgress(planPath) {
|
|
|
26841
26851
|
var CONTINUATION_MARKER_DIR = ".drizzy/run-continuation";
|
|
26842
26852
|
// src/features/run-continuation-state/storage.ts
|
|
26843
26853
|
import { existsSync as existsSync12, mkdirSync as mkdirSync4, readFileSync as readFileSync10, rmSync, writeFileSync as writeFileSync6 } from "fs";
|
|
26844
|
-
import { join as
|
|
26854
|
+
import { join as join12 } from "path";
|
|
26845
26855
|
function getMarkerPath(directory, sessionID) {
|
|
26846
|
-
return
|
|
26856
|
+
return join12(directory, CONTINUATION_MARKER_DIR, `${sessionID}.json`);
|
|
26847
26857
|
}
|
|
26848
26858
|
function readContinuationMarker(directory, sessionID) {
|
|
26849
26859
|
const markerPath = getMarkerPath(directory, sessionID);
|
|
@@ -26876,7 +26886,7 @@ function getActiveContinuationMarkerReason(marker) {
|
|
|
26876
26886
|
// src/hooks/ralph-loop/storage.ts
|
|
26877
26887
|
init_frontmatter();
|
|
26878
26888
|
import { existsSync as existsSync13, readFileSync as readFileSync11, writeFileSync as writeFileSync7, unlinkSync, mkdirSync as mkdirSync5 } from "fs";
|
|
26879
|
-
import { dirname as dirname3, join as
|
|
26889
|
+
import { dirname as dirname3, join as join13 } from "path";
|
|
26880
26890
|
|
|
26881
26891
|
// src/hooks/ralph-loop/constants.ts
|
|
26882
26892
|
var DEFAULT_STATE_FILE = ".drizzy/ralph-loop.local.md";
|
|
@@ -26885,7 +26895,7 @@ var DEFAULT_COMPLETION_PROMISE = "DONE";
|
|
|
26885
26895
|
|
|
26886
26896
|
// src/hooks/ralph-loop/storage.ts
|
|
26887
26897
|
function getStateFilePath(directory, customPath) {
|
|
26888
|
-
return customPath ?
|
|
26898
|
+
return customPath ? join13(directory, customPath) : join13(directory, DEFAULT_STATE_FILE);
|
|
26889
26899
|
}
|
|
26890
26900
|
function readState(directory, customPath) {
|
|
26891
26901
|
const filePath = getStateFilePath(directory, customPath);
|
|
@@ -27427,7 +27437,7 @@ var SYMBOLS2 = {
|
|
|
27427
27437
|
function formatVersionOutput(info) {
|
|
27428
27438
|
const lines = [];
|
|
27429
27439
|
lines.push("");
|
|
27430
|
-
lines.push(import_picocolors16.default.bold(import_picocolors16.default.white("
|
|
27440
|
+
lines.push(import_picocolors16.default.bold(import_picocolors16.default.white("drizzy-agent Version Information")));
|
|
27431
27441
|
lines.push(import_picocolors16.default.dim("\u2500".repeat(50)));
|
|
27432
27442
|
lines.push("");
|
|
27433
27443
|
if (info.currentVersion) {
|
|
@@ -27445,7 +27455,7 @@ function formatVersionOutput(info) {
|
|
|
27445
27455
|
break;
|
|
27446
27456
|
case "outdated":
|
|
27447
27457
|
lines.push(` ${SYMBOLS2.warn} ${import_picocolors16.default.yellow("Update available")}`);
|
|
27448
|
-
lines.push(` ${import_picocolors16.default.dim("Run:")} ${import_picocolors16.default.cyan("cd ~/.config/opencode && bun update
|
|
27458
|
+
lines.push(` ${import_picocolors16.default.dim("Run:")} ${import_picocolors16.default.cyan("cd ~/.config/opencode && bun update drizzy-agent")}`);
|
|
27449
27459
|
break;
|
|
27450
27460
|
case "local-dev":
|
|
27451
27461
|
lines.push(` ${SYMBOLS2.dev} ${import_picocolors16.default.cyan("Running in local development mode")}`);
|
|
@@ -27593,7 +27603,7 @@ var EXIT_CODES = {
|
|
|
27593
27603
|
FAILURE: 1
|
|
27594
27604
|
};
|
|
27595
27605
|
var MIN_OPENCODE_VERSION = "1.0.150";
|
|
27596
|
-
var PACKAGE_NAME4 = "
|
|
27606
|
+
var PACKAGE_NAME4 = "drizzy-agent";
|
|
27597
27607
|
var OPENCODE_BINARIES2 = ["opencode", "opencode-desktop"];
|
|
27598
27608
|
|
|
27599
27609
|
// src/cli/doctor/checks/system.ts
|
|
@@ -27603,24 +27613,24 @@ import { existsSync as existsSync23, readFileSync as readFileSync21 } from "fs";
|
|
|
27603
27613
|
init_spawn_with_windows_hide();
|
|
27604
27614
|
import { existsSync as existsSync20 } from "fs";
|
|
27605
27615
|
import { homedir as homedir5 } from "os";
|
|
27606
|
-
import { join as
|
|
27616
|
+
import { join as join19 } from "path";
|
|
27607
27617
|
function getDesktopAppPaths(platform) {
|
|
27608
27618
|
const home = homedir5();
|
|
27609
27619
|
switch (platform) {
|
|
27610
27620
|
case "darwin":
|
|
27611
27621
|
return [
|
|
27612
27622
|
"/Applications/OpenCode.app/Contents/MacOS/OpenCode",
|
|
27613
|
-
|
|
27623
|
+
join19(home, "Applications", "OpenCode.app", "Contents", "MacOS", "OpenCode")
|
|
27614
27624
|
];
|
|
27615
27625
|
case "win32": {
|
|
27616
27626
|
const programFiles = process.env.ProgramFiles;
|
|
27617
27627
|
const localAppData = process.env.LOCALAPPDATA;
|
|
27618
27628
|
const paths = [];
|
|
27619
27629
|
if (programFiles) {
|
|
27620
|
-
paths.push(
|
|
27630
|
+
paths.push(join19(programFiles, "OpenCode", "OpenCode.exe"));
|
|
27621
27631
|
}
|
|
27622
27632
|
if (localAppData) {
|
|
27623
|
-
paths.push(
|
|
27633
|
+
paths.push(join19(localAppData, "OpenCode", "OpenCode.exe"));
|
|
27624
27634
|
}
|
|
27625
27635
|
return paths;
|
|
27626
27636
|
}
|
|
@@ -27628,8 +27638,8 @@ function getDesktopAppPaths(platform) {
|
|
|
27628
27638
|
return [
|
|
27629
27639
|
"/usr/bin/opencode",
|
|
27630
27640
|
"/usr/lib/opencode/opencode",
|
|
27631
|
-
|
|
27632
|
-
|
|
27641
|
+
join19(home, "Applications", "opencode-desktop-linux-x86_64.AppImage"),
|
|
27642
|
+
join19(home, "Applications", "opencode-desktop-linux-aarch64.AppImage")
|
|
27633
27643
|
];
|
|
27634
27644
|
default:
|
|
27635
27645
|
return [];
|
|
@@ -27769,21 +27779,21 @@ init_checker();
|
|
|
27769
27779
|
init_auto_update_checker();
|
|
27770
27780
|
import { existsSync as existsSync22, readFileSync as readFileSync20 } from "fs";
|
|
27771
27781
|
import { homedir as homedir6 } from "os";
|
|
27772
|
-
import { join as
|
|
27782
|
+
import { join as join20 } from "path";
|
|
27773
27783
|
init_shared();
|
|
27774
27784
|
function getPlatformDefaultCacheDir(platform = process.platform) {
|
|
27775
27785
|
if (platform === "darwin")
|
|
27776
|
-
return
|
|
27786
|
+
return join20(homedir6(), "Library", "Caches");
|
|
27777
27787
|
if (platform === "win32")
|
|
27778
|
-
return process.env.LOCALAPPDATA ??
|
|
27779
|
-
return
|
|
27788
|
+
return process.env.LOCALAPPDATA ?? join20(homedir6(), "AppData", "Local");
|
|
27789
|
+
return join20(homedir6(), ".cache");
|
|
27780
27790
|
}
|
|
27781
27791
|
function resolveOpenCodeCacheDir() {
|
|
27782
27792
|
const xdgCacheHome = process.env.XDG_CACHE_HOME;
|
|
27783
27793
|
if (xdgCacheHome)
|
|
27784
|
-
return
|
|
27794
|
+
return join20(xdgCacheHome, "opencode");
|
|
27785
27795
|
const fromShared = getOpenCodeCacheDir();
|
|
27786
|
-
const platformDefault =
|
|
27796
|
+
const platformDefault = join20(getPlatformDefaultCacheDir(), "opencode");
|
|
27787
27797
|
if (existsSync22(fromShared) || !existsSync22(platformDefault))
|
|
27788
27798
|
return fromShared;
|
|
27789
27799
|
return platformDefault;
|
|
@@ -27811,12 +27821,12 @@ function getLoadedPluginVersion() {
|
|
|
27811
27821
|
{
|
|
27812
27822
|
cacheDir: configPaths.configDir,
|
|
27813
27823
|
cachePackagePath: configPaths.packageJson,
|
|
27814
|
-
installedPackagePath:
|
|
27824
|
+
installedPackagePath: join20(configPaths.configDir, "node_modules", PACKAGE_NAME4, "package.json")
|
|
27815
27825
|
},
|
|
27816
27826
|
{
|
|
27817
27827
|
cacheDir,
|
|
27818
|
-
cachePackagePath:
|
|
27819
|
-
installedPackagePath:
|
|
27828
|
+
cachePackagePath: join20(cacheDir, "package.json"),
|
|
27829
|
+
installedPackagePath: join20(cacheDir, "node_modules", PACKAGE_NAME4, "package.json")
|
|
27820
27830
|
}
|
|
27821
27831
|
];
|
|
27822
27832
|
const selectedCandidate = candidates.find((candidate) => existsSync22(candidate.installedPackagePath)) ?? candidates[0];
|
|
@@ -27911,9 +27921,9 @@ async function checkSystem() {
|
|
|
27911
27921
|
}
|
|
27912
27922
|
if (!pluginInfo.registered) {
|
|
27913
27923
|
issues.push({
|
|
27914
|
-
title: "
|
|
27924
|
+
title: "drizzy-agent is not registered",
|
|
27915
27925
|
description: "Plugin entry is missing from OpenCode configuration.",
|
|
27916
|
-
fix: "Run: bunx
|
|
27926
|
+
fix: "Run: bunx drizzy-agent install",
|
|
27917
27927
|
severity: "error",
|
|
27918
27928
|
affects: ["all agents"]
|
|
27919
27929
|
});
|
|
@@ -27931,7 +27941,7 @@ async function checkSystem() {
|
|
|
27931
27941
|
issues.push({
|
|
27932
27942
|
title: "Loaded plugin is outdated",
|
|
27933
27943
|
description: `Loaded ${systemInfo.loadedVersion}, latest ${latestVersion}.`,
|
|
27934
|
-
fix: `Update: cd "${loadedInfo.cacheDir}" && bun add
|
|
27944
|
+
fix: `Update: cd "${loadedInfo.cacheDir}" && bun add drizzy-agent@${installTag}`,
|
|
27935
27945
|
severity: "warning",
|
|
27936
27946
|
affects: ["plugin features"]
|
|
27937
27947
|
});
|
|
@@ -27953,22 +27963,22 @@ async function checkSystem() {
|
|
|
27953
27963
|
|
|
27954
27964
|
// src/cli/doctor/checks/config.ts
|
|
27955
27965
|
import { readFileSync as readFileSync24 } from "fs";
|
|
27956
|
-
import { join as
|
|
27966
|
+
import { join as join24 } from "path";
|
|
27957
27967
|
init_shared();
|
|
27958
27968
|
|
|
27959
27969
|
// src/cli/doctor/checks/model-resolution-cache.ts
|
|
27960
27970
|
init_shared();
|
|
27961
27971
|
import { existsSync as existsSync24, readFileSync as readFileSync22 } from "fs";
|
|
27962
27972
|
import { homedir as homedir7 } from "os";
|
|
27963
|
-
import { join as
|
|
27973
|
+
import { join as join21 } from "path";
|
|
27964
27974
|
function getOpenCodeCacheDir2() {
|
|
27965
27975
|
const xdgCache = process.env.XDG_CACHE_HOME;
|
|
27966
27976
|
if (xdgCache)
|
|
27967
|
-
return
|
|
27968
|
-
return
|
|
27977
|
+
return join21(xdgCache, "opencode");
|
|
27978
|
+
return join21(homedir7(), ".cache", "opencode");
|
|
27969
27979
|
}
|
|
27970
27980
|
function loadAvailableModelsFromCache() {
|
|
27971
|
-
const cacheFile =
|
|
27981
|
+
const cacheFile = join21(getOpenCodeCacheDir2(), "models.json");
|
|
27972
27982
|
if (!existsSync24(cacheFile)) {
|
|
27973
27983
|
return { providers: [], modelCount: 0, cacheExists: false };
|
|
27974
27984
|
}
|
|
@@ -27995,10 +28005,10 @@ init_model_requirements();
|
|
|
27995
28005
|
// src/cli/doctor/checks/model-resolution-config.ts
|
|
27996
28006
|
init_shared();
|
|
27997
28007
|
import { readFileSync as readFileSync23 } from "fs";
|
|
27998
|
-
import { join as
|
|
27999
|
-
var PACKAGE_NAME5 = "
|
|
28000
|
-
var USER_CONFIG_BASE =
|
|
28001
|
-
var PROJECT_CONFIG_BASE =
|
|
28008
|
+
import { join as join22 } from "path";
|
|
28009
|
+
var PACKAGE_NAME5 = "drizzy-agent";
|
|
28010
|
+
var USER_CONFIG_BASE = join22(getOpenCodeConfigPaths({ binary: "opencode", version: null }).configDir, PACKAGE_NAME5);
|
|
28011
|
+
var PROJECT_CONFIG_BASE = join22(process.cwd(), ".opencode", PACKAGE_NAME5);
|
|
28002
28012
|
function loadOmoConfig() {
|
|
28003
28013
|
const projectDetected = detectConfigFile(PROJECT_CONFIG_BASE);
|
|
28004
28014
|
if (projectDetected.format !== "none") {
|
|
@@ -28023,7 +28033,7 @@ function loadOmoConfig() {
|
|
|
28023
28033
|
|
|
28024
28034
|
// src/cli/doctor/checks/model-resolution-details.ts
|
|
28025
28035
|
init_shared();
|
|
28026
|
-
import { join as
|
|
28036
|
+
import { join as join23 } from "path";
|
|
28027
28037
|
|
|
28028
28038
|
// src/cli/doctor/checks/model-resolution-variant.ts
|
|
28029
28039
|
function formatModelWithVariant(model, variant) {
|
|
@@ -28062,7 +28072,7 @@ function getCategoryEffectiveVariant(categoryName, requirement, config2) {
|
|
|
28062
28072
|
// src/cli/doctor/checks/model-resolution-details.ts
|
|
28063
28073
|
function buildModelResolutionDetails(options) {
|
|
28064
28074
|
const details = [];
|
|
28065
|
-
const cacheFile =
|
|
28075
|
+
const cacheFile = join23(getOpenCodeCacheDir(), "models.json");
|
|
28066
28076
|
details.push("\u2550\u2550\u2550 Available Models (from cache) \u2550\u2550\u2550");
|
|
28067
28077
|
details.push("");
|
|
28068
28078
|
if (options.available.cacheExists) {
|
|
@@ -28174,8 +28184,8 @@ async function checkModels() {
|
|
|
28174
28184
|
}
|
|
28175
28185
|
|
|
28176
28186
|
// src/cli/doctor/checks/config.ts
|
|
28177
|
-
var USER_CONFIG_BASE2 =
|
|
28178
|
-
var PROJECT_CONFIG_BASE2 =
|
|
28187
|
+
var USER_CONFIG_BASE2 = join24(getOpenCodeConfigDir({ binary: "opencode" }), PACKAGE_NAME4);
|
|
28188
|
+
var PROJECT_CONFIG_BASE2 = join24(process.cwd(), ".opencode", PACKAGE_NAME4);
|
|
28179
28189
|
function findConfigPath() {
|
|
28180
28190
|
const projectConfig = detectConfigFile(PROJECT_CONFIG_BASE2);
|
|
28181
28191
|
if (projectConfig.format !== "none")
|
|
@@ -28297,7 +28307,7 @@ async function checkConfig() {
|
|
|
28297
28307
|
init_spawn_with_windows_hide();
|
|
28298
28308
|
import { existsSync as existsSync25 } from "fs";
|
|
28299
28309
|
import { createRequire } from "module";
|
|
28300
|
-
import { dirname as dirname6, join as
|
|
28310
|
+
import { dirname as dirname6, join as join25 } from "path";
|
|
28301
28311
|
async function checkBinaryExists(binary2) {
|
|
28302
28312
|
try {
|
|
28303
28313
|
const path10 = Bun.which(binary2);
|
|
@@ -28354,11 +28364,11 @@ async function checkAstGrepNapi() {
|
|
|
28354
28364
|
};
|
|
28355
28365
|
} catch {
|
|
28356
28366
|
const { existsSync: existsSync26 } = await import("fs");
|
|
28357
|
-
const { join:
|
|
28367
|
+
const { join: join26 } = await import("path");
|
|
28358
28368
|
const { homedir: homedir8 } = await import("os");
|
|
28359
28369
|
const pathsToCheck = [
|
|
28360
|
-
|
|
28361
|
-
|
|
28370
|
+
join26(homedir8(), ".config", "opencode", "node_modules", "@ast-grep", "napi"),
|
|
28371
|
+
join26(process.cwd(), "node_modules", "@ast-grep", "napi")
|
|
28362
28372
|
];
|
|
28363
28373
|
for (const napiPath of pathsToCheck) {
|
|
28364
28374
|
if (existsSync26(napiPath)) {
|
|
@@ -28386,7 +28396,7 @@ function findCommentCheckerPackageBinary() {
|
|
|
28386
28396
|
try {
|
|
28387
28397
|
const require2 = createRequire(import.meta.url);
|
|
28388
28398
|
const pkgPath = require2.resolve("@code-yeongyu/comment-checker/package.json");
|
|
28389
|
-
const binaryPath =
|
|
28399
|
+
const binaryPath = join25(dirname6(pkgPath), "bin", binaryName);
|
|
28390
28400
|
if (existsSync25(binaryPath))
|
|
28391
28401
|
return binaryPath;
|
|
28392
28402
|
} catch {}
|
|
@@ -28506,20 +28516,20 @@ init_jsonc_parser();
|
|
|
28506
28516
|
|
|
28507
28517
|
// src/tools/lsp/server-installation.ts
|
|
28508
28518
|
import { existsSync as existsSync26 } from "fs";
|
|
28509
|
-
import { delimiter as delimiter2, join as
|
|
28519
|
+
import { delimiter as delimiter2, join as join27 } from "path";
|
|
28510
28520
|
|
|
28511
28521
|
// src/tools/lsp/server-path-bases.ts
|
|
28512
28522
|
init_shared();
|
|
28513
|
-
import { join as
|
|
28523
|
+
import { join as join26 } from "path";
|
|
28514
28524
|
function getLspServerAdditionalPathBases(workingDirectory) {
|
|
28515
28525
|
const configDir = getOpenCodeConfigDir({ binary: "opencode" });
|
|
28516
|
-
const dataDir =
|
|
28526
|
+
const dataDir = join26(getDataDir(), "opencode");
|
|
28517
28527
|
return [
|
|
28518
|
-
|
|
28519
|
-
|
|
28520
|
-
|
|
28521
|
-
|
|
28522
|
-
|
|
28528
|
+
join26(workingDirectory, "node_modules", ".bin"),
|
|
28529
|
+
join26(configDir, "bin"),
|
|
28530
|
+
join26(configDir, "node_modules", ".bin"),
|
|
28531
|
+
join26(dataDir, "bin"),
|
|
28532
|
+
join26(dataDir, "bin", "node_modules", ".bin")
|
|
28523
28533
|
];
|
|
28524
28534
|
}
|
|
28525
28535
|
|
|
@@ -28550,14 +28560,14 @@ function isServerInstalled(command) {
|
|
|
28550
28560
|
const paths = pathEnv.split(delimiter2);
|
|
28551
28561
|
for (const p2 of paths) {
|
|
28552
28562
|
for (const suffix of exts) {
|
|
28553
|
-
if (existsSync26(
|
|
28563
|
+
if (existsSync26(join27(p2, cmd + suffix))) {
|
|
28554
28564
|
return true;
|
|
28555
28565
|
}
|
|
28556
28566
|
}
|
|
28557
28567
|
}
|
|
28558
28568
|
for (const base of getLspServerAdditionalPathBases(process.cwd())) {
|
|
28559
28569
|
for (const suffix of exts) {
|
|
28560
|
-
if (existsSync26(
|
|
28570
|
+
if (existsSync26(join27(base, cmd + suffix))) {
|
|
28561
28571
|
return true;
|
|
28562
28572
|
}
|
|
28563
28573
|
}
|
|
@@ -28593,13 +28603,13 @@ function getLspServerStats(servers) {
|
|
|
28593
28603
|
init_shared();
|
|
28594
28604
|
import { existsSync as existsSync27, readFileSync as readFileSync25 } from "fs";
|
|
28595
28605
|
import { homedir as homedir8 } from "os";
|
|
28596
|
-
import { join as
|
|
28606
|
+
import { join as join28 } from "path";
|
|
28597
28607
|
var BUILTIN_MCP_SERVERS = ["context7", "grep_app"];
|
|
28598
28608
|
function getMcpConfigPaths() {
|
|
28599
28609
|
return [
|
|
28600
|
-
|
|
28601
|
-
|
|
28602
|
-
|
|
28610
|
+
join28(homedir8(), ".claude", ".mcp.json"),
|
|
28611
|
+
join28(process.cwd(), ".mcp.json"),
|
|
28612
|
+
join28(process.cwd(), ".claude", ".mcp.json")
|
|
28603
28613
|
];
|
|
28604
28614
|
}
|
|
28605
28615
|
function loadUserMcpConfig() {
|
|
@@ -28817,7 +28827,7 @@ function formatDefault(result) {
|
|
|
28817
28827
|
if (allIssues.length === 0) {
|
|
28818
28828
|
const opencodeVer = result.systemInfo.opencodeVersion ?? "unknown";
|
|
28819
28829
|
const pluginVer = result.systemInfo.pluginVersion ?? "unknown";
|
|
28820
|
-
lines.push(` ${import_picocolors19.default.green(SYMBOLS3.check)} ${import_picocolors19.default.green(`System OK (opencode ${opencodeVer} \xB7
|
|
28830
|
+
lines.push(` ${import_picocolors19.default.green(SYMBOLS3.check)} ${import_picocolors19.default.green(`System OK (opencode ${opencodeVer} \xB7 drizzy-agent ${pluginVer})`)}`);
|
|
28821
28831
|
} else {
|
|
28822
28832
|
const issueCount = allIssues.filter((i2) => i2.severity === "error").length;
|
|
28823
28833
|
const warnCount = allIssues.filter((i2) => i2.severity === "warning").length;
|
|
@@ -28870,7 +28880,7 @@ function formatVerbose(result) {
|
|
|
28870
28880
|
lines.push(`${import_picocolors21.default.bold("System Information")}`);
|
|
28871
28881
|
lines.push(`${import_picocolors21.default.dim("\u2500".repeat(40))}`);
|
|
28872
28882
|
lines.push(` ${formatStatusSymbol("pass")} opencode ${systemInfo.opencodeVersion ?? "unknown"}`);
|
|
28873
|
-
lines.push(` ${formatStatusSymbol("pass")}
|
|
28883
|
+
lines.push(` ${formatStatusSymbol("pass")} drizzy-agent ${systemInfo.pluginVersion ?? "unknown"}`);
|
|
28874
28884
|
if (systemInfo.loadedVersion) {
|
|
28875
28885
|
lines.push(` ${formatStatusSymbol("pass")} loaded ${systemInfo.loadedVersion}`);
|
|
28876
28886
|
}
|
|
@@ -29011,10 +29021,10 @@ async function doctor(options = { mode: "default" }) {
|
|
|
29011
29021
|
// src/features/mcp-oauth/storage.ts
|
|
29012
29022
|
init_shared();
|
|
29013
29023
|
import { chmodSync, existsSync as existsSync28, mkdirSync as mkdirSync6, readFileSync as readFileSync26, unlinkSync as unlinkSync4, writeFileSync as writeFileSync10 } from "fs";
|
|
29014
|
-
import { dirname as dirname7, join as
|
|
29024
|
+
import { dirname as dirname7, join as join29 } from "path";
|
|
29015
29025
|
var STORAGE_FILE_NAME = "mcp-oauth.json";
|
|
29016
29026
|
function getMcpOauthStoragePath() {
|
|
29017
|
-
return
|
|
29027
|
+
return join29(getOpenCodeConfigDir({ binary: "opencode" }), STORAGE_FILE_NAME);
|
|
29018
29028
|
}
|
|
29019
29029
|
function normalizeHost(serverHost) {
|
|
29020
29030
|
let host = serverHost.trim();
|
|
@@ -29633,12 +29643,12 @@ function createMcpOAuthCommand() {
|
|
|
29633
29643
|
// src/cli/cli-program.ts
|
|
29634
29644
|
var VERSION2 = package_default.version;
|
|
29635
29645
|
var program2 = new Command;
|
|
29636
|
-
program2.name("
|
|
29637
|
-
program2.command("install").description("Install and configure
|
|
29646
|
+
program2.name("drizzy-agent").description("DrizzyAgent for OpenCode - multi-model orchestration, tools, and workflows").version(VERSION2, "-v, --version", "Show version number").enablePositionalOptions();
|
|
29647
|
+
program2.command("install").description("Install and configure DrizzyAgent with interactive setup").option("--no-tui", "Run in non-interactive mode (requires all options)").option("--claude <value>", "Claude subscription: no, yes, max20").option("--openai <value>", "OpenAI/ChatGPT subscription: no, yes (default: no)").option("--gemini <value>", "Gemini integration: no, yes").option("--copilot <value>", "GitHub Copilot subscription: no, yes").option("--opencode-zen <value>", "OpenCode Zen access: no, yes (default: no)").option("--zai-coding-plan <value>", "Z.ai Coding Plan subscription: no, yes (default: no)").option("--kimi-for-coding <value>", "Kimi For Coding subscription: no, yes (default: no)").option("--skip-auth", "Skip authentication setup hints").addHelpText("after", `
|
|
29638
29648
|
Examples:
|
|
29639
|
-
$ bunx
|
|
29640
|
-
$ bunx
|
|
29641
|
-
$ bunx
|
|
29649
|
+
$ bunx drizzy-agent install
|
|
29650
|
+
$ bunx drizzy-agent install --no-tui --claude=max20 --openai=yes --gemini=yes --copilot=no
|
|
29651
|
+
$ bunx drizzy-agent install --no-tui --claude=no --gemini=no --copilot=yes --opencode-zen=yes
|
|
29642
29652
|
|
|
29643
29653
|
Model Providers (Priority: Native > Copilot > OpenCode Zen > Z.ai > Kimi):
|
|
29644
29654
|
Claude Native anthropic/ models (Opus, Sonnet, Haiku)
|
|
@@ -29665,20 +29675,20 @@ Model Providers (Priority: Native > Copilot > OpenCode Zen > Z.ai > Kimi):
|
|
|
29665
29675
|
});
|
|
29666
29676
|
program2.command("run <message>").allowUnknownOption().passThroughOptions().description("Run opencode with todo/background task completion enforcement").option("-a, --agent <name>", "Agent to use (default: from CLI/env/config, fallback: Coder)").option("-m, --model <provider/model>", "Model override (e.g., anthropic/claude-sonnet-4)").option("-d, --directory <path>", "Working directory").option("-p, --port <port>", "Server port (attaches if port already in use)", parseInt).option("--attach <url>", "Attach to existing opencode server URL").option("--on-complete <command>", "Shell command to run after completion").option("--json", "Output structured JSON result to stdout").option("--no-timestamp", "Disable timestamp prefix in run output").option("--verbose", "Show full event stream (default: messages/tools only)").option("--session-id <id>", "Resume existing session instead of creating new one").addHelpText("after", `
|
|
29667
29677
|
Examples:
|
|
29668
|
-
$ bunx
|
|
29669
|
-
$ bunx
|
|
29670
|
-
$ bunx
|
|
29671
|
-
$ bunx
|
|
29672
|
-
$ bunx
|
|
29673
|
-
$ bunx
|
|
29674
|
-
$ bunx
|
|
29675
|
-
$ bunx
|
|
29676
|
-
$ bunx
|
|
29678
|
+
$ bunx drizzy-agent run "Fix the bug in index.ts"
|
|
29679
|
+
$ bunx drizzy-agent run --agent Coder "Implement feature X"
|
|
29680
|
+
$ bunx drizzy-agent run --port 4321 "Fix the bug"
|
|
29681
|
+
$ bunx drizzy-agent run --attach http://127.0.0.1:4321 "Fix the bug"
|
|
29682
|
+
$ bunx drizzy-agent run --json "Fix the bug" | jq .sessionId
|
|
29683
|
+
$ bunx drizzy-agent run --on-complete "notify-send Done" "Fix the bug"
|
|
29684
|
+
$ bunx drizzy-agent run --session-id ses_abc123 "Continue the work"
|
|
29685
|
+
$ bunx drizzy-agent run --model anthropic/claude-sonnet-4 "Fix the bug"
|
|
29686
|
+
$ bunx drizzy-agent run --agent Coder --model openai/gpt-5.4 "Implement feature X"
|
|
29677
29687
|
|
|
29678
29688
|
Agent resolution order:
|
|
29679
29689
|
1) --agent flag
|
|
29680
29690
|
2) OPENCODE_DEFAULT_AGENT
|
|
29681
|
-
3)
|
|
29691
|
+
3) drizzy-agent.json "default_run_agent"
|
|
29682
29692
|
4) Coder (fallback)
|
|
29683
29693
|
|
|
29684
29694
|
Available core agents:
|
|
@@ -29710,9 +29720,9 @@ Unlike 'opencode run', this command waits until:
|
|
|
29710
29720
|
});
|
|
29711
29721
|
program2.command("get-local-version").description("Show current installed version and check for updates").option("-d, --directory <path>", "Working directory to check config from").option("--json", "Output in JSON format for scripting").addHelpText("after", `
|
|
29712
29722
|
Examples:
|
|
29713
|
-
$ bunx
|
|
29714
|
-
$ bunx
|
|
29715
|
-
$ bunx
|
|
29723
|
+
$ bunx drizzy-agent get-local-version
|
|
29724
|
+
$ bunx drizzy-agent get-local-version --json
|
|
29725
|
+
$ bunx drizzy-agent get-local-version --directory /path/to/project
|
|
29716
29726
|
|
|
29717
29727
|
This command shows:
|
|
29718
29728
|
- Current installed version
|
|
@@ -29727,12 +29737,12 @@ This command shows:
|
|
|
29727
29737
|
const exitCode = await getLocalVersion(versionOptions);
|
|
29728
29738
|
process.exit(exitCode);
|
|
29729
29739
|
});
|
|
29730
|
-
program2.command("doctor").description("Check
|
|
29740
|
+
program2.command("doctor").description("Check DrizzyAgent installation health and diagnose issues").option("--status", "Show compact system dashboard").option("--verbose", "Show detailed diagnostic information").option("--json", "Output results in JSON format").addHelpText("after", `
|
|
29731
29741
|
Examples:
|
|
29732
|
-
$ bunx
|
|
29733
|
-
$ bunx
|
|
29734
|
-
$ bunx
|
|
29735
|
-
$ bunx
|
|
29742
|
+
$ bunx drizzy-agent doctor # Show problems only
|
|
29743
|
+
$ bunx drizzy-agent doctor --status # Compact dashboard
|
|
29744
|
+
$ bunx drizzy-agent doctor --verbose # Deep diagnostics
|
|
29745
|
+
$ bunx drizzy-agent doctor --json # JSON output
|
|
29736
29746
|
`).action(async (options) => {
|
|
29737
29747
|
const mode = options.status ? "status" : options.verbose ? "verbose" : "default";
|
|
29738
29748
|
const doctorOptions = {
|
|
@@ -29743,7 +29753,7 @@ Examples:
|
|
|
29743
29753
|
process.exit(exitCode);
|
|
29744
29754
|
});
|
|
29745
29755
|
program2.command("version").description("Show version information").action(() => {
|
|
29746
|
-
console.log(`
|
|
29756
|
+
console.log(`drizzy-agent v${VERSION2}`);
|
|
29747
29757
|
});
|
|
29748
29758
|
program2.addCommand(createMcpOAuthCommand());
|
|
29749
29759
|
function runCli() {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://raw.githubusercontent.com/
|
|
4
|
-
"title": "
|
|
5
|
-
"description": "Configuration schema for
|
|
3
|
+
"$id": "https://raw.githubusercontent.com/yourusername/drizzy-agent/dev/assets/drizzy-agent.schema.json",
|
|
4
|
+
"title": "DrizzyAgent Configuration",
|
|
5
|
+
"description": "Configuration schema for the drizzy-agent plugin",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"properties": {
|
|
8
8
|
"$schema": {
|
package/dist/index.js
CHANGED
|
@@ -68,7 +68,7 @@ function getLogFilePath() {
|
|
|
68
68
|
}
|
|
69
69
|
var logFile;
|
|
70
70
|
var init_logger = __esm(() => {
|
|
71
|
-
logFile = path.join(os.tmpdir(), "
|
|
71
|
+
logFile = path.join(os.tmpdir(), "drizzy-agent.log");
|
|
72
72
|
});
|
|
73
73
|
|
|
74
74
|
// src/shared/truncate-description.ts
|
|
@@ -15578,7 +15578,7 @@ function getCacheDir() {
|
|
|
15578
15578
|
return process.env.XDG_CACHE_HOME ?? path2.join(os2.homedir(), ".cache");
|
|
15579
15579
|
}
|
|
15580
15580
|
function getOmoOpenCodeCacheDir() {
|
|
15581
|
-
return path2.join(getCacheDir(), "
|
|
15581
|
+
return path2.join(getCacheDir(), "drizzy-agent");
|
|
15582
15582
|
}
|
|
15583
15583
|
function getOpenCodeCacheDir() {
|
|
15584
15584
|
return path2.join(getCacheDir(), "opencode");
|
|
@@ -16785,7 +16785,7 @@ function getOpenCodeConfigPaths(options) {
|
|
|
16785
16785
|
configJson: join5(configDir, "opencode.json"),
|
|
16786
16786
|
configJsonc: join5(configDir, "opencode.jsonc"),
|
|
16787
16787
|
packageJson: join5(configDir, "package.json"),
|
|
16788
|
-
omoConfig: join5(configDir, "
|
|
16788
|
+
omoConfig: join5(configDir, "drizzy-agent.json")
|
|
16789
16789
|
};
|
|
16790
16790
|
}
|
|
16791
16791
|
// src/shared/opencode-version.ts
|
|
@@ -16985,16 +16985,16 @@ function detectExternalNotificationPlugin(directory) {
|
|
|
16985
16985
|
};
|
|
16986
16986
|
}
|
|
16987
16987
|
function getNotificationConflictWarning(pluginName) {
|
|
16988
|
-
return `[
|
|
16988
|
+
return `[drizzy-agent] External notification plugin detected: ${pluginName}
|
|
16989
16989
|
|
|
16990
|
-
Both
|
|
16990
|
+
Both drizzy-agent and ${pluginName} listen to session.idle events.
|
|
16991
16991
|
Running both simultaneously can cause crashes on Windows.
|
|
16992
16992
|
|
|
16993
|
-
|
|
16993
|
+
drizzy-agent's session-notification has been auto-disabled.
|
|
16994
16994
|
|
|
16995
|
-
To use
|
|
16995
|
+
To use drizzy-agent's notifications instead, either:
|
|
16996
16996
|
1. Remove ${pluginName} from your opencode.json plugins
|
|
16997
|
-
2. Or set "notification": { "force_enable": true } in
|
|
16997
|
+
2. Or set "notification": { "force_enable": true } in drizzy-agent.json`;
|
|
16998
16998
|
}
|
|
16999
16999
|
// src/shared/zip-extractor.ts
|
|
17000
17000
|
var {spawn: spawn2, spawnSync } = globalThis.Bun;
|
|
@@ -52264,12 +52264,16 @@ function mergeConfigs(base, override) {
|
|
|
52264
52264
|
}
|
|
52265
52265
|
function loadPluginConfig(directory, ctx) {
|
|
52266
52266
|
const configDir = getOpenCodeConfigDir({ binary: "opencode" });
|
|
52267
|
-
const userBasePath = path11.join(configDir, "
|
|
52267
|
+
const userBasePath = path11.join(configDir, "drizzy-agent");
|
|
52268
|
+
const legacyUserBasePath = path11.join(configDir, "oh-my-opencode");
|
|
52268
52269
|
const userDetected = detectConfigFile(userBasePath);
|
|
52269
|
-
const
|
|
52270
|
-
const
|
|
52270
|
+
const legacyUserDetected = detectConfigFile(legacyUserBasePath);
|
|
52271
|
+
const userConfigPath = userDetected.format !== "none" ? userDetected.path : legacyUserDetected.format !== "none" ? legacyUserDetected.path : userBasePath + ".json";
|
|
52272
|
+
const projectBasePath = path11.join(directory, ".opencode", "drizzy-agent");
|
|
52273
|
+
const legacyProjectBasePath = path11.join(directory, ".opencode", "oh-my-opencode");
|
|
52271
52274
|
const projectDetected = detectConfigFile(projectBasePath);
|
|
52272
|
-
const
|
|
52275
|
+
const legacyProjectDetected = detectConfigFile(legacyProjectBasePath);
|
|
52276
|
+
const projectConfigPath = projectDetected.format !== "none" ? projectDetected.path : legacyProjectDetected.format !== "none" ? legacyProjectDetected.path : projectBasePath + ".json";
|
|
52273
52277
|
let config2 = loadConfigFromPath2(userConfigPath, ctx) ?? {};
|
|
52274
52278
|
const projectConfig = loadConfigFromPath2(projectConfigPath, ctx);
|
|
52275
52279
|
if (projectConfig) {
|
|
@@ -72050,7 +72054,7 @@ function createCallOmoAgent(ctx, backgroundManager, disabledAgents = [], agentOv
|
|
|
72050
72054
|
const normalizedAgent = args.subagent_type.toLowerCase();
|
|
72051
72055
|
args = { ...args, subagent_type: normalizedAgent };
|
|
72052
72056
|
if (disabledAgents.some((disabled) => disabled.toLowerCase() === normalizedAgent)) {
|
|
72053
|
-
return `Error: Agent "${normalizedAgent}" is disabled via disabled_agents configuration. Remove it from disabled_agents in your
|
|
72057
|
+
return `Error: Agent "${normalizedAgent}" is disabled via disabled_agents configuration. Remove it from disabled_agents in your drizzy-agent.json to use it.`;
|
|
72054
72058
|
}
|
|
72055
72059
|
const fallbackChain = resolveFallbackChainForCallOmoAgent({
|
|
72056
72060
|
subagentType: args.subagent_type,
|
|
@@ -86818,7 +86822,7 @@ function createCoderAgent(model, availableAgents, availableToolNames, availableS
|
|
|
86818
86822
|
if (isGpt5_4Model(model)) {
|
|
86819
86823
|
const prompt2 = buildGpt54CoderPrompt(model, agents, tools, skills2, categories2, useTaskSystem);
|
|
86820
86824
|
return {
|
|
86821
|
-
description: "Powerful AI orchestrator. Plans obsessively with todos, assesses search complexity before exploration, delegates strategically via category+skills combinations. Uses explore for internal code (parallel-friendly), librarian for external docs. (Coder -
|
|
86825
|
+
description: "Powerful AI orchestrator. Plans obsessively with todos, assesses search complexity before exploration, delegates strategically via category+skills combinations. Uses explore for internal code (parallel-friendly), librarian for external docs. (Coder - DrizzyAgent)",
|
|
86822
86826
|
mode: MODE,
|
|
86823
86827
|
model,
|
|
86824
86828
|
maxTokens: 64000,
|
|
@@ -86854,7 +86858,7 @@ ${buildGeminiVerificationOverride()}
|
|
|
86854
86858
|
call_omo_agent: "deny"
|
|
86855
86859
|
};
|
|
86856
86860
|
const base = {
|
|
86857
|
-
description: "Powerful AI orchestrator. Plans obsessively with todos, assesses search complexity before exploration, delegates strategically via category+skills combinations. Uses explore for internal code (parallel-friendly), librarian for external docs. (Coder -
|
|
86861
|
+
description: "Powerful AI orchestrator. Plans obsessively with todos, assesses search complexity before exploration, delegates strategically via category+skills combinations. Uses explore for internal code (parallel-friendly), librarian for external docs. (Coder - DrizzyAgent)",
|
|
86858
86862
|
mode: MODE,
|
|
86859
86863
|
model,
|
|
86860
86864
|
maxTokens: 64000,
|
|
@@ -87099,7 +87103,7 @@ function createOracleAgent(model) {
|
|
|
87099
87103
|
"task"
|
|
87100
87104
|
]);
|
|
87101
87105
|
const base = {
|
|
87102
|
-
description: "Read-only consultation agent. High-IQ reasoning specialist for debugging hard problems and high-difficulty architecture design. (Oracle -
|
|
87106
|
+
description: "Read-only consultation agent. High-IQ reasoning specialist for debugging hard problems and high-difficulty architecture design. (Oracle - DrizzyAgent)",
|
|
87103
87107
|
mode: MODE2,
|
|
87104
87108
|
model,
|
|
87105
87109
|
temperature: 0.1,
|
|
@@ -87148,7 +87152,7 @@ function createLibrarianAgent(model) {
|
|
|
87148
87152
|
"call_omo_agent"
|
|
87149
87153
|
]);
|
|
87150
87154
|
return {
|
|
87151
|
-
description: "Specialized codebase understanding agent for multi-repository analysis, searching remote codebases, retrieving official documentation, and finding implementation examples using GitHub CLI, Context7, and Web Search. MUST BE USED when users ask to look up code in remote repositories, explain library internals, or find usage examples in open source. (Librarian -
|
|
87155
|
+
description: "Specialized codebase understanding agent for multi-repository analysis, searching remote codebases, retrieving official documentation, and finding implementation examples using GitHub CLI, Context7, and Web Search. MUST BE USED when users ask to look up code in remote repositories, explain library internals, or find usage examples in open source. (Librarian - DrizzyAgent)",
|
|
87152
87156
|
mode: MODE3,
|
|
87153
87157
|
model,
|
|
87154
87158
|
temperature: 0.1,
|
|
@@ -87465,7 +87469,7 @@ function createExploreAgent(model) {
|
|
|
87465
87469
|
"call_omo_agent"
|
|
87466
87470
|
]);
|
|
87467
87471
|
return {
|
|
87468
|
-
description: 'Contextual grep for codebases. Answers "Where is X?", "Which file has Y?", "Find the code that does Z". Fire multiple in parallel for broad searches. Specify thoroughness: "quick" for basic, "medium" for moderate, "very thorough" for comprehensive analysis. (Explore -
|
|
87472
|
+
description: 'Contextual grep for codebases. Answers "Where is X?", "Which file has Y?", "Find the code that does Z". Fire multiple in parallel for broad searches. Specify thoroughness: "quick" for basic, "medium" for moderate, "very thorough" for comprehensive analysis. (Explore - DrizzyAgent)',
|
|
87469
87473
|
mode: MODE4,
|
|
87470
87474
|
model,
|
|
87471
87475
|
temperature: 0.1,
|
|
@@ -87885,7 +87889,7 @@ var planConsultantRestrictions = createAgentToolRestrictions([
|
|
|
87885
87889
|
]);
|
|
87886
87890
|
function createPlanConsultantAgent(model) {
|
|
87887
87891
|
return {
|
|
87888
|
-
description: "Pre-planning consultant that analyzes requests to identify hidden intentions, ambiguities, and AI failure points. (Plan Consultant -
|
|
87892
|
+
description: "Pre-planning consultant that analyzes requests to identify hidden intentions, ambiguities, and AI failure points. (Plan Consultant - DrizzyAgent)",
|
|
87889
87893
|
mode: MODE6,
|
|
87890
87894
|
model,
|
|
87891
87895
|
temperature: 0.3,
|
|
@@ -87920,7 +87924,7 @@ var planConsultantPromptMetadata = {
|
|
|
87920
87924
|
// src/agents/atlas/default.ts
|
|
87921
87925
|
var ATLAS_SYSTEM_PROMPT = `
|
|
87922
87926
|
<identity>
|
|
87923
|
-
You are Atlas - the Master Orchestrator from
|
|
87927
|
+
You are Atlas - the Master Orchestrator from DrizzyAgent.
|
|
87924
87928
|
|
|
87925
87929
|
In Greek mythology, Atlas holds up the celestial heavens. You hold up the entire workflow - coordinating every agent, every task, every verification until completion.
|
|
87926
87930
|
|
|
@@ -88361,7 +88365,7 @@ function getDefaultAtlasPrompt() {
|
|
|
88361
88365
|
// src/agents/atlas/gpt.ts
|
|
88362
88366
|
var ATLAS_GPT_SYSTEM_PROMPT = `
|
|
88363
88367
|
<identity>
|
|
88364
|
-
You are Atlas - Master Orchestrator from
|
|
88368
|
+
You are Atlas - Master Orchestrator from DrizzyAgent.
|
|
88365
88369
|
Role: Conductor, not musician. General, not soldier.
|
|
88366
88370
|
You DELEGATE, COORDINATE, and VERIFY. You NEVER write code yourself.
|
|
88367
88371
|
</identity>
|
|
@@ -88775,7 +88779,7 @@ function getGptAtlasPrompt() {
|
|
|
88775
88779
|
// src/agents/atlas/gemini.ts
|
|
88776
88780
|
var ATLAS_GEMINI_SYSTEM_PROMPT = `
|
|
88777
88781
|
<identity>
|
|
88778
|
-
You are Atlas - Master Orchestrator from
|
|
88782
|
+
You are Atlas - Master Orchestrator from DrizzyAgent.
|
|
88779
88783
|
Role: Conductor, not musician. General, not soldier.
|
|
88780
88784
|
You DELEGATE, COORDINATE, and VERIFY. You NEVER write code yourself.
|
|
88781
88785
|
|
|
@@ -89311,7 +89315,7 @@ function buildDynamicOrchestratorPrompt(ctx) {
|
|
|
89311
89315
|
}
|
|
89312
89316
|
function createAtlasAgent(ctx) {
|
|
89313
89317
|
const baseConfig = {
|
|
89314
|
-
description: "Orchestrates work via task() to complete ALL tasks in a todo list until fully done. (Atlas -
|
|
89318
|
+
description: "Orchestrates work via task() to complete ALL tasks in a todo list until fully done. (Atlas - DrizzyAgent)",
|
|
89315
89319
|
mode: MODE7,
|
|
89316
89320
|
...ctx.model ? { model: ctx.model } : {},
|
|
89317
89321
|
temperature: 0.1,
|
|
@@ -89603,7 +89607,7 @@ function createPlanReviewerAgent(model) {
|
|
|
89603
89607
|
"task"
|
|
89604
89608
|
]);
|
|
89605
89609
|
const base = {
|
|
89606
|
-
description: "Expert reviewer for evaluating work plans against rigorous clarity, verifiability, and completeness standards. (Plan Reviewer -
|
|
89610
|
+
description: "Expert reviewer for evaluating work plans against rigorous clarity, verifiability, and completeness standards. (Plan Reviewer - DrizzyAgent)",
|
|
89607
89611
|
mode: MODE8,
|
|
89608
89612
|
model,
|
|
89609
89613
|
temperature: 0.1,
|
|
@@ -90864,7 +90868,7 @@ function buildDefaultCoderJuniorPrompt(useTaskSystem, promptAppend) {
|
|
|
90864
90868
|
const todoDiscipline = buildTodoDisciplineSection4(useTaskSystem);
|
|
90865
90869
|
const verificationText = useTaskSystem ? "All tasks marked completed" : "All todos marked completed";
|
|
90866
90870
|
const prompt = `<Role>
|
|
90867
|
-
Coder-Junior - Focused executor from
|
|
90871
|
+
Coder-Junior - Focused executor from DrizzyAgent.
|
|
90868
90872
|
Execute tasks directly.
|
|
90869
90873
|
</Role>
|
|
90870
90874
|
|
|
@@ -91561,7 +91565,7 @@ function createCoderJuniorAgentWithOverrides(override, systemDefaultModel, useTa
|
|
|
91561
91565
|
merged.call_omo_agent = "allow";
|
|
91562
91566
|
const toolsConfig = { permission: { ...merged, ...basePermission } };
|
|
91563
91567
|
const base = {
|
|
91564
|
-
description: override?.description ?? "Focused task executor. Same discipline, no delegation. (Coder-Junior -
|
|
91568
|
+
description: override?.description ?? "Focused task executor. Same discipline, no delegation. (Coder-Junior - DrizzyAgent)",
|
|
91565
91569
|
mode: MODE11,
|
|
91566
91570
|
model,
|
|
91567
91571
|
temperature,
|
|
@@ -94424,7 +94428,7 @@ async function buildPlannerAgentConfig(params) {
|
|
|
94424
94428
|
mode: "all",
|
|
94425
94429
|
prompt: getPlannerPrompt(resolvedModel),
|
|
94426
94430
|
permission: PLANNER_PERMISSION,
|
|
94427
|
-
description: `${params.configAgentPlan?.description ?? "Plan agent"} (Planner -
|
|
94431
|
+
description: `${params.configAgentPlan?.description ?? "Plan agent"} (Planner - DrizzyAgent)`,
|
|
94428
94432
|
color: params.configAgentPlan?.color ?? "#FF5722",
|
|
94429
94433
|
...temperatureToUse !== undefined ? { temperature: temperatureToUse } : {},
|
|
94430
94434
|
...topPToUse !== undefined ? { top_p: topPToUse } : {},
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "drizzy-agent",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "DrizzyAgent - AI
|
|
3
|
+
"version": "0.1.2",
|
|
4
|
+
"description": "DrizzyAgent - AI agent plugin for OpenCode",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"type": "module",
|
|
@@ -76,17 +76,17 @@
|
|
|
76
76
|
"typescript": "^5.7.3"
|
|
77
77
|
},
|
|
78
78
|
"optionalDependencies": {
|
|
79
|
-
"drizzy-agent-darwin-arm64": "0.1.
|
|
80
|
-
"drizzy-agent-darwin-x64": "0.1.
|
|
81
|
-
"drizzy-agent-darwin-x64-baseline": "0.1.
|
|
82
|
-
"drizzy-agent-linux-arm64": "0.1.
|
|
83
|
-
"drizzy-agent-linux-arm64-musl": "0.1.
|
|
84
|
-
"drizzy-agent-linux-x64": "0.1.
|
|
85
|
-
"drizzy-agent-linux-x64-baseline": "0.1.
|
|
86
|
-
"drizzy-agent-linux-x64-musl": "0.1.
|
|
87
|
-
"drizzy-agent-linux-x64-musl-baseline": "0.1.
|
|
88
|
-
"drizzy-agent-windows-x64": "0.1.
|
|
89
|
-
"drizzy-agent-windows-x64-baseline": "0.1.
|
|
79
|
+
"drizzy-agent-darwin-arm64": "0.1.2",
|
|
80
|
+
"drizzy-agent-darwin-x64": "0.1.2",
|
|
81
|
+
"drizzy-agent-darwin-x64-baseline": "0.1.2",
|
|
82
|
+
"drizzy-agent-linux-arm64": "0.1.2",
|
|
83
|
+
"drizzy-agent-linux-arm64-musl": "0.1.2",
|
|
84
|
+
"drizzy-agent-linux-x64": "0.1.2",
|
|
85
|
+
"drizzy-agent-linux-x64-baseline": "0.1.2",
|
|
86
|
+
"drizzy-agent-linux-x64-musl": "0.1.2",
|
|
87
|
+
"drizzy-agent-linux-x64-musl-baseline": "0.1.2",
|
|
88
|
+
"drizzy-agent-windows-x64": "0.1.2",
|
|
89
|
+
"drizzy-agent-windows-x64-baseline": "0.1.2"
|
|
90
90
|
},
|
|
91
91
|
"overrides": {
|
|
92
92
|
"@opencode-ai/sdk": "^1.2.24"
|