drizzy-agent 0.1.2 → 0.2.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/bin/platform.test.ts +20 -20
- package/dist/cli/index.js +44 -29
- package/dist/cli/install-validators.d.ts +2 -0
- package/dist/drizzy-agent.schema.json +1 -1
- package/dist/index.js +28 -20
- package/dist/shared/tmux/tmux-utils/environment.d.ts +1 -0
- package/dist/shared/tmux/tmux-utils.d.ts +1 -1
- package/package.json +15 -15
package/bin/platform.test.ts
CHANGED
|
@@ -12,7 +12,7 @@ describe("getPlatformPackage", () => {
|
|
|
12
12
|
const result = getPlatformPackage(input);
|
|
13
13
|
|
|
14
14
|
// #then returns correct package name
|
|
15
|
-
expect(result).toBe("
|
|
15
|
+
expect(result).toBe("drizzy-agent-darwin-arm64");
|
|
16
16
|
});
|
|
17
17
|
|
|
18
18
|
test("returns darwin-x64 for macOS Intel", () => {
|
|
@@ -23,7 +23,7 @@ describe("getPlatformPackage", () => {
|
|
|
23
23
|
const result = getPlatformPackage(input);
|
|
24
24
|
|
|
25
25
|
// #then returns correct package name
|
|
26
|
-
expect(result).toBe("
|
|
26
|
+
expect(result).toBe("drizzy-agent-darwin-x64");
|
|
27
27
|
});
|
|
28
28
|
// #endregion
|
|
29
29
|
|
|
@@ -36,7 +36,7 @@ describe("getPlatformPackage", () => {
|
|
|
36
36
|
const result = getPlatformPackage(input);
|
|
37
37
|
|
|
38
38
|
// #then returns correct package name
|
|
39
|
-
expect(result).toBe("
|
|
39
|
+
expect(result).toBe("drizzy-agent-linux-x64");
|
|
40
40
|
});
|
|
41
41
|
|
|
42
42
|
test("returns linux-arm64 for Linux ARM64 with glibc", () => {
|
|
@@ -47,7 +47,7 @@ describe("getPlatformPackage", () => {
|
|
|
47
47
|
const result = getPlatformPackage(input);
|
|
48
48
|
|
|
49
49
|
// #then returns correct package name
|
|
50
|
-
expect(result).toBe("
|
|
50
|
+
expect(result).toBe("drizzy-agent-linux-arm64");
|
|
51
51
|
});
|
|
52
52
|
// #endregion
|
|
53
53
|
|
|
@@ -60,7 +60,7 @@ describe("getPlatformPackage", () => {
|
|
|
60
60
|
const result = getPlatformPackage(input);
|
|
61
61
|
|
|
62
62
|
// #then returns correct package name with musl suffix
|
|
63
|
-
expect(result).toBe("
|
|
63
|
+
expect(result).toBe("drizzy-agent-linux-x64-musl");
|
|
64
64
|
});
|
|
65
65
|
|
|
66
66
|
test("returns linux-arm64-musl for Alpine ARM64", () => {
|
|
@@ -71,7 +71,7 @@ describe("getPlatformPackage", () => {
|
|
|
71
71
|
const result = getPlatformPackage(input);
|
|
72
72
|
|
|
73
73
|
// #then returns correct package name with musl suffix
|
|
74
|
-
expect(result).toBe("
|
|
74
|
+
expect(result).toBe("drizzy-agent-linux-arm64-musl");
|
|
75
75
|
});
|
|
76
76
|
// #endregion
|
|
77
77
|
|
|
@@ -84,7 +84,7 @@ describe("getPlatformPackage", () => {
|
|
|
84
84
|
const result = getPlatformPackage(input);
|
|
85
85
|
|
|
86
86
|
// #then returns correct package name with 'windows' not 'win32'
|
|
87
|
-
expect(result).toBe("
|
|
87
|
+
expect(result).toBe("drizzy-agent-windows-x64");
|
|
88
88
|
});
|
|
89
89
|
// #endregion
|
|
90
90
|
|
|
@@ -112,38 +112,38 @@ describe("getPlatformPackage", () => {
|
|
|
112
112
|
describe("getBinaryPath", () => {
|
|
113
113
|
test("returns path without .exe for Unix platforms", () => {
|
|
114
114
|
// #given Unix platform package
|
|
115
|
-
const pkg = "
|
|
115
|
+
const pkg = "drizzy-agent-darwin-arm64";
|
|
116
116
|
const platform = "darwin";
|
|
117
117
|
|
|
118
118
|
// #when getting binary path
|
|
119
119
|
const result = getBinaryPath(pkg, platform);
|
|
120
120
|
|
|
121
121
|
// #then returns path without extension
|
|
122
|
-
expect(result).toBe("
|
|
122
|
+
expect(result).toBe("drizzy-agent-darwin-arm64/bin/drizzy-agent");
|
|
123
123
|
});
|
|
124
124
|
|
|
125
125
|
test("returns path with .exe for Windows", () => {
|
|
126
126
|
// #given Windows platform package
|
|
127
|
-
const pkg = "
|
|
127
|
+
const pkg = "drizzy-agent-windows-x64";
|
|
128
128
|
const platform = "win32";
|
|
129
129
|
|
|
130
130
|
// #when getting binary path
|
|
131
131
|
const result = getBinaryPath(pkg, platform);
|
|
132
132
|
|
|
133
133
|
// #then returns path with .exe extension
|
|
134
|
-
expect(result).toBe("
|
|
134
|
+
expect(result).toBe("drizzy-agent-windows-x64/bin/drizzy-agent.exe");
|
|
135
135
|
});
|
|
136
136
|
|
|
137
137
|
test("returns path without .exe for Linux", () => {
|
|
138
138
|
// #given Linux platform package
|
|
139
|
-
const pkg = "
|
|
139
|
+
const pkg = "drizzy-agent-linux-x64";
|
|
140
140
|
const platform = "linux";
|
|
141
141
|
|
|
142
142
|
// #when getting binary path
|
|
143
143
|
const result = getBinaryPath(pkg, platform);
|
|
144
144
|
|
|
145
145
|
// #then returns path without extension
|
|
146
|
-
expect(result).toBe("
|
|
146
|
+
expect(result).toBe("drizzy-agent-linux-x64/bin/drizzy-agent");
|
|
147
147
|
});
|
|
148
148
|
});
|
|
149
149
|
|
|
@@ -157,8 +157,8 @@ describe("getPlatformPackageCandidates", () => {
|
|
|
157
157
|
|
|
158
158
|
// #then returns modern first then baseline fallback
|
|
159
159
|
expect(result).toEqual([
|
|
160
|
-
"
|
|
161
|
-
"
|
|
160
|
+
"drizzy-agent-linux-x64",
|
|
161
|
+
"drizzy-agent-linux-x64-baseline",
|
|
162
162
|
]);
|
|
163
163
|
});
|
|
164
164
|
|
|
@@ -171,8 +171,8 @@ describe("getPlatformPackageCandidates", () => {
|
|
|
171
171
|
|
|
172
172
|
// #then returns musl modern first then musl baseline fallback
|
|
173
173
|
expect(result).toEqual([
|
|
174
|
-
"
|
|
175
|
-
"
|
|
174
|
+
"drizzy-agent-linux-x64-musl",
|
|
175
|
+
"drizzy-agent-linux-x64-musl-baseline",
|
|
176
176
|
]);
|
|
177
177
|
});
|
|
178
178
|
|
|
@@ -185,8 +185,8 @@ describe("getPlatformPackageCandidates", () => {
|
|
|
185
185
|
|
|
186
186
|
// #then baseline package is preferred first
|
|
187
187
|
expect(result).toEqual([
|
|
188
|
-
"
|
|
189
|
-
"
|
|
188
|
+
"drizzy-agent-windows-x64-baseline",
|
|
189
|
+
"drizzy-agent-windows-x64",
|
|
190
190
|
]);
|
|
191
191
|
});
|
|
192
192
|
|
|
@@ -198,6 +198,6 @@ describe("getPlatformPackageCandidates", () => {
|
|
|
198
198
|
const result = getPlatformPackageCandidates(input);
|
|
199
199
|
|
|
200
200
|
// #then baseline fallback is not included
|
|
201
|
-
expect(result).toEqual(["
|
|
201
|
+
expect(result).toEqual(["drizzy-agent-linux-arm64"]);
|
|
202
202
|
});
|
|
203
203
|
});
|
package/dist/cli/index.js
CHANGED
|
@@ -5960,6 +5960,7 @@ var init_agent_names = __esm(() => {
|
|
|
5960
5960
|
coder: "coder",
|
|
5961
5961
|
GPTCoder: "gptcoder",
|
|
5962
5962
|
gptcoder: "gptcoder",
|
|
5963
|
+
hephaestus: "gptcoder",
|
|
5963
5964
|
Planner: "planner",
|
|
5964
5965
|
planner: "planner",
|
|
5965
5966
|
"Prometheus (Planner)": "planner",
|
|
@@ -6107,7 +6108,7 @@ function migrateConfigFile(configPath, rawConfig) {
|
|
|
6107
6108
|
needsWrite = true;
|
|
6108
6109
|
}
|
|
6109
6110
|
if (copy.omo_agent) {
|
|
6110
|
-
copy.
|
|
6111
|
+
copy.coder_agent = copy.omo_agent;
|
|
6111
6112
|
delete copy.omo_agent;
|
|
6112
6113
|
needsWrite = true;
|
|
6113
6114
|
}
|
|
@@ -7826,7 +7827,7 @@ function generateModelConfig(config) {
|
|
|
7826
7827
|
};
|
|
7827
7828
|
return isOpenAiOnlyAvailability(avail) ? applyOpenAiOnlyModelCatalog(generatedConfig) : generatedConfig;
|
|
7828
7829
|
}
|
|
7829
|
-
var ZAI_MODEL = "zai-coding-plan/glm-4.7", ULTIMATE_FALLBACK = "opencode/glm-4.7-free", SCHEMA_URL = "https://raw.githubusercontent.com/
|
|
7830
|
+
var ZAI_MODEL = "zai-coding-plan/glm-4.7", ULTIMATE_FALLBACK = "opencode/glm-4.7-free", SCHEMA_URL = "https://raw.githubusercontent.com/AndreDalwin/DrizzyAgent/dev/assets/drizzy-agent.schema.json";
|
|
7830
7831
|
var init_model_fallback = __esm(() => {
|
|
7831
7832
|
init_model_fallback_requirements();
|
|
7832
7833
|
init_openai_only_model_catalog();
|
|
@@ -8978,7 +8979,7 @@ async function showVersionToast(ctx, version2, message) {
|
|
|
8978
8979
|
}
|
|
8979
8980
|
async function showLocalDevToast(ctx, version2, isCoderEnabled) {
|
|
8980
8981
|
const displayVersion = version2 ?? "dev";
|
|
8981
|
-
const message = isCoderEnabled ? "Coder running in local development mode." : "
|
|
8982
|
+
const message = isCoderEnabled ? "Coder running in local development mode." : "DrizzyAgent running in local development mode.";
|
|
8982
8983
|
await showSpinnerToast(ctx, `${displayVersion} (dev)`, message);
|
|
8983
8984
|
log(`[auto-update-checker] Local dev toast shown: v${displayVersion}`);
|
|
8984
8985
|
}
|
|
@@ -8996,8 +8997,8 @@ function createAutoUpdateCheckerHook(ctx, options = {}) {
|
|
|
8996
8997
|
return isUpdate ? `Coder on steroids is steering OpenCode.
|
|
8997
8998
|
v${latestVersion} available. Restart to apply.` : "Coder on steroids is steering OpenCode.";
|
|
8998
8999
|
}
|
|
8999
|
-
return isUpdate ? `
|
|
9000
|
-
v${latestVersion} available. Restart OpenCode to apply.` : "
|
|
9000
|
+
return isUpdate ? `DrizzyAgent is active.
|
|
9001
|
+
v${latestVersion} available. Restart OpenCode to apply.` : "DrizzyAgent is active.";
|
|
9001
9002
|
};
|
|
9002
9003
|
let hasChecked = false;
|
|
9003
9004
|
return {
|
|
@@ -9082,7 +9083,7 @@ var {
|
|
|
9082
9083
|
// package.json
|
|
9083
9084
|
var package_default = {
|
|
9084
9085
|
name: "drizzy-agent",
|
|
9085
|
-
version: "0.
|
|
9086
|
+
version: "0.2.0",
|
|
9086
9087
|
description: "DrizzyAgent - AI agent plugin for OpenCode",
|
|
9087
9088
|
main: "dist/index.js",
|
|
9088
9089
|
types: "dist/index.d.ts",
|
|
@@ -9127,12 +9128,12 @@ var package_default = {
|
|
|
9127
9128
|
license: "SUL-1.0",
|
|
9128
9129
|
repository: {
|
|
9129
9130
|
type: "git",
|
|
9130
|
-
url: "git+https://github.com/
|
|
9131
|
+
url: "git+https://github.com/AndreDalwin/DrizzyAgent.git"
|
|
9131
9132
|
},
|
|
9132
9133
|
bugs: {
|
|
9133
|
-
url: "https://github.com/
|
|
9134
|
+
url: "https://github.com/AndreDalwin/DrizzyAgent/issues"
|
|
9134
9135
|
},
|
|
9135
|
-
homepage: "https://github.com/
|
|
9136
|
+
homepage: "https://github.com/AndreDalwin/DrizzyAgent#readme",
|
|
9136
9137
|
dependencies: {
|
|
9137
9138
|
"@ast-grep/cli": "^0.41.1",
|
|
9138
9139
|
"@ast-grep/napi": "^0.41.1",
|
|
@@ -9158,17 +9159,17 @@ var package_default = {
|
|
|
9158
9159
|
typescript: "^5.7.3"
|
|
9159
9160
|
},
|
|
9160
9161
|
optionalDependencies: {
|
|
9161
|
-
"drizzy-agent-darwin-arm64": "0.
|
|
9162
|
-
"drizzy-agent-darwin-x64": "0.
|
|
9163
|
-
"drizzy-agent-darwin-x64-baseline": "0.
|
|
9164
|
-
"drizzy-agent-linux-arm64": "0.
|
|
9165
|
-
"drizzy-agent-linux-arm64-musl": "0.
|
|
9166
|
-
"drizzy-agent-linux-x64": "0.
|
|
9167
|
-
"drizzy-agent-linux-x64-baseline": "0.
|
|
9168
|
-
"drizzy-agent-linux-x64-musl": "0.
|
|
9169
|
-
"drizzy-agent-linux-x64-musl-baseline": "0.
|
|
9170
|
-
"drizzy-agent-windows-x64": "0.
|
|
9171
|
-
"drizzy-agent-windows-x64-baseline": "0.
|
|
9162
|
+
"drizzy-agent-darwin-arm64": "0.2.0",
|
|
9163
|
+
"drizzy-agent-darwin-x64": "0.2.0",
|
|
9164
|
+
"drizzy-agent-darwin-x64-baseline": "0.2.0",
|
|
9165
|
+
"drizzy-agent-linux-arm64": "0.2.0",
|
|
9166
|
+
"drizzy-agent-linux-arm64-musl": "0.2.0",
|
|
9167
|
+
"drizzy-agent-linux-x64": "0.2.0",
|
|
9168
|
+
"drizzy-agent-linux-x64-baseline": "0.2.0",
|
|
9169
|
+
"drizzy-agent-linux-x64-musl": "0.2.0",
|
|
9170
|
+
"drizzy-agent-linux-x64-musl-baseline": "0.2.0",
|
|
9171
|
+
"drizzy-agent-windows-x64": "0.2.0",
|
|
9172
|
+
"drizzy-agent-windows-x64-baseline": "0.2.0"
|
|
9172
9173
|
},
|
|
9173
9174
|
overrides: {
|
|
9174
9175
|
"@opencode-ai/sdk": "^1.2.24"
|
|
@@ -9195,6 +9196,19 @@ var SYMBOLS = {
|
|
|
9195
9196
|
warn: import_picocolors.default.yellow("[!]"),
|
|
9196
9197
|
star: import_picocolors.default.yellow("*")
|
|
9197
9198
|
};
|
|
9199
|
+
var DRIZZY_AGENT_BANNER = [
|
|
9200
|
+
" ____ _ ___ __ ",
|
|
9201
|
+
" / __ \\_____(_)_______ __ __/ | ____ ____ ____ / /_",
|
|
9202
|
+
" / / / / ___/ /_ /_ / / / / / /| |/ __ `/ _ \\/ __ \\/ __/",
|
|
9203
|
+
"/ /_/ / / / / / /_/ /_/ /_/ / ___ / /_/ / __/ / / / /_ ",
|
|
9204
|
+
"/_____/_/ /_/ /___/___/\\__, /_/ |_\\__, /\\___/_/ /_/\\__/ ",
|
|
9205
|
+
" /____/ /____/ "
|
|
9206
|
+
].join(`
|
|
9207
|
+
`);
|
|
9208
|
+
function formatBanner(mode) {
|
|
9209
|
+
return `${import_picocolors.default.magenta(DRIZZY_AGENT_BANNER)}${mode ? `
|
|
9210
|
+
${import_picocolors.default.bold(mode)}` : ""}`;
|
|
9211
|
+
}
|
|
9198
9212
|
function formatProvider(name, enabled, detail) {
|
|
9199
9213
|
const status = enabled ? SYMBOLS.check : import_picocolors.default.dim("\u25CB");
|
|
9200
9214
|
const label = enabled ? import_picocolors.default.white(name) : import_picocolors.default.dim(name);
|
|
@@ -9226,7 +9240,7 @@ function formatConfigSummary(config) {
|
|
|
9226
9240
|
function printHeader(isUpdate) {
|
|
9227
9241
|
const mode = isUpdate ? "Update" : "Install";
|
|
9228
9242
|
console.log();
|
|
9229
|
-
console.log(
|
|
9243
|
+
console.log(formatBanner(mode));
|
|
9230
9244
|
console.log();
|
|
9231
9245
|
}
|
|
9232
9246
|
function printStep(step, total, message) {
|
|
@@ -9246,9 +9260,10 @@ function printWarning(message) {
|
|
|
9246
9260
|
console.log(`${SYMBOLS.warn} ${import_picocolors.default.yellow(message)}`);
|
|
9247
9261
|
}
|
|
9248
9262
|
function printBox(content, title) {
|
|
9263
|
+
const ansiPattern = new RegExp("\\x1b\\[[0-9;]*m", "g");
|
|
9249
9264
|
const lines = content.split(`
|
|
9250
9265
|
`);
|
|
9251
|
-
const maxWidth = Math.max(...lines.map((line) => line.replace(
|
|
9266
|
+
const maxWidth = Math.max(...lines.map((line) => line.replace(ansiPattern, "").length), title?.length ?? 0) + 4;
|
|
9252
9267
|
const border = import_picocolors.default.dim("\u2500".repeat(maxWidth));
|
|
9253
9268
|
console.log();
|
|
9254
9269
|
if (title) {
|
|
@@ -9257,7 +9272,7 @@ function printBox(content, title) {
|
|
|
9257
9272
|
console.log(import_picocolors.default.dim("\u250C") + border + import_picocolors.default.dim("\u2510"));
|
|
9258
9273
|
}
|
|
9259
9274
|
for (const line of lines) {
|
|
9260
|
-
const stripped = line.replace(
|
|
9275
|
+
const stripped = line.replace(ansiPattern, "");
|
|
9261
9276
|
const padding = maxWidth - stripped.length;
|
|
9262
9277
|
console.log(import_picocolors.default.dim("\u2502") + ` ${line}${" ".repeat(padding - 1)}` + import_picocolors.default.dim("\u2502"));
|
|
9263
9278
|
}
|
|
@@ -9394,9 +9409,9 @@ async function runCliInstaller(args, version) {
|
|
|
9394
9409
|
` + `All features work like magic\u2014parallel agents, background tasks,
|
|
9395
9410
|
` + `deep exploration, and relentless execution until completion.`, "The Magic Word");
|
|
9396
9411
|
console.log(`${SYMBOLS.star} ${import_picocolors2.default.yellow("If you found this helpful, consider starring the repo!")}`);
|
|
9397
|
-
console.log(` ${import_picocolors2.default.dim("gh api --silent --method PUT /user/starred/
|
|
9412
|
+
console.log(` ${import_picocolors2.default.dim("gh api --silent --method PUT /user/starred/AndreDalwin/DrizzyAgent >/dev/null 2>&1 || true")}`);
|
|
9398
9413
|
console.log();
|
|
9399
|
-
console.log(import_picocolors2.default.dim("
|
|
9414
|
+
console.log(import_picocolors2.default.dim("DrizzyAgent is ready."));
|
|
9400
9415
|
console.log();
|
|
9401
9416
|
if ((config.hasClaude || config.hasGemini || config.hasCopilot) && !args.skipAuth) {
|
|
9402
9417
|
printBox(`Run ${import_picocolors2.default.cyan("opencode auth login")} and select your provider:
|
|
@@ -10099,7 +10114,7 @@ async function runTuiInstaller(args, version) {
|
|
|
10099
10114
|
}
|
|
10100
10115
|
const detected = detectCurrentConfig();
|
|
10101
10116
|
const isUpdate = detected.isInstalled;
|
|
10102
|
-
Ie(
|
|
10117
|
+
Ie(formatBanner(isUpdate ? "Update" : "Install"));
|
|
10103
10118
|
if (isUpdate) {
|
|
10104
10119
|
const initial = detectedToInitialValues(detected);
|
|
10105
10120
|
M2.info(`Existing configuration detected: Claude=${initial.claude}, Gemini=${initial.gemini}`);
|
|
@@ -10157,8 +10172,8 @@ async function runTuiInstaller(args, version) {
|
|
|
10157
10172
|
` + `All features work like magic\u2014parallel agents, background tasks,
|
|
10158
10173
|
` + `deep exploration, and relentless execution until completion.`, "The Magic Word");
|
|
10159
10174
|
M2.message(`${import_picocolors4.default.yellow("\u2605")} If you found this helpful, consider starring the repo!`);
|
|
10160
|
-
M2.message(` ${import_picocolors4.default.dim("gh api --silent --method PUT /user/starred/
|
|
10161
|
-
Se(import_picocolors4.default.green("
|
|
10175
|
+
M2.message(` ${import_picocolors4.default.dim("gh api --silent --method PUT /user/starred/AndreDalwin/DrizzyAgent >/dev/null 2>&1 || true")}`);
|
|
10176
|
+
Se(import_picocolors4.default.green("DrizzyAgent is ready."));
|
|
10162
10177
|
if ((config.hasClaude || config.hasGemini || config.hasCopilot) && !args.skipAuth) {
|
|
10163
10178
|
const providers = [];
|
|
10164
10179
|
if (config.hasClaude)
|
|
@@ -28801,7 +28816,7 @@ function formatStatusMark(available) {
|
|
|
28801
28816
|
}
|
|
28802
28817
|
function formatHeader() {
|
|
28803
28818
|
return `
|
|
28804
|
-
${import_picocolors18.default.
|
|
28819
|
+
${import_picocolors18.default.magenta("DrizzyAgent Doctor")}
|
|
28805
28820
|
`;
|
|
28806
28821
|
}
|
|
28807
28822
|
function formatIssue(issue2, index) {
|
|
@@ -8,6 +8,8 @@ export declare const SYMBOLS: {
|
|
|
8
8
|
warn: string;
|
|
9
9
|
star: string;
|
|
10
10
|
};
|
|
11
|
+
export declare const DRIZZY_AGENT_BANNER: string;
|
|
12
|
+
export declare function formatBanner(mode?: string): string;
|
|
11
13
|
export declare function formatConfigSummary(config: InstallConfig): string;
|
|
12
14
|
export declare function printHeader(isUpdate: boolean): void;
|
|
13
15
|
export declare function printStep(step: number, total: number, message: string): void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://raw.githubusercontent.com/
|
|
3
|
+
"$id": "https://raw.githubusercontent.com/AndreDalwin/DrizzyAgent/dev/assets/drizzy-agent.schema.json",
|
|
4
4
|
"title": "DrizzyAgent Configuration",
|
|
5
5
|
"description": "Configuration schema for the drizzy-agent plugin",
|
|
6
6
|
"type": "object",
|
package/dist/index.js
CHANGED
|
@@ -4828,7 +4828,7 @@ function isPlanAgent(agentName) {
|
|
|
4828
4828
|
if (!agentName)
|
|
4829
4829
|
return false;
|
|
4830
4830
|
const lowerName = agentName.toLowerCase().trim();
|
|
4831
|
-
return PLAN_AGENT_NAMES.some((name) => lowerName === name
|
|
4831
|
+
return PLAN_AGENT_NAMES.some((name) => lowerName === name);
|
|
4832
4832
|
}
|
|
4833
4833
|
function isPlanFamily(category) {
|
|
4834
4834
|
if (!category)
|
|
@@ -16493,6 +16493,7 @@ var AGENT_NAME_MAP = {
|
|
|
16493
16493
|
coder: "coder",
|
|
16494
16494
|
GPTCoder: "gptcoder",
|
|
16495
16495
|
gptcoder: "gptcoder",
|
|
16496
|
+
hephaestus: "gptcoder",
|
|
16496
16497
|
Planner: "planner",
|
|
16497
16498
|
planner: "planner",
|
|
16498
16499
|
"Prometheus (Planner)": "planner",
|
|
@@ -16640,7 +16641,7 @@ function migrateConfigFile(configPath, rawConfig) {
|
|
|
16640
16641
|
needsWrite = true;
|
|
16641
16642
|
}
|
|
16642
16643
|
if (copy.omo_agent) {
|
|
16643
|
-
copy.
|
|
16644
|
+
copy.coder_agent = copy.omo_agent;
|
|
16644
16645
|
delete copy.omo_agent;
|
|
16645
16646
|
needsWrite = true;
|
|
16646
16647
|
}
|
|
@@ -18412,8 +18413,12 @@ var SESSION_MISSING_GRACE_MS = 6000;
|
|
|
18412
18413
|
var SESSION_READY_POLL_INTERVAL_MS = 500;
|
|
18413
18414
|
var SESSION_READY_TIMEOUT_MS = 1e4;
|
|
18414
18415
|
// src/shared/tmux/tmux-utils/environment.ts
|
|
18416
|
+
function isInsideTmuxWithEnv(env) {
|
|
18417
|
+
const tmux = env.TMUX;
|
|
18418
|
+
return typeof tmux === "string" && tmux.length > 0;
|
|
18419
|
+
}
|
|
18415
18420
|
function isInsideTmux() {
|
|
18416
|
-
return
|
|
18421
|
+
return isInsideTmuxWithEnv(process.env);
|
|
18417
18422
|
}
|
|
18418
18423
|
function getCurrentPaneId() {
|
|
18419
18424
|
return process.env.TMUX_PANE;
|
|
@@ -41244,7 +41249,7 @@ async function showVersionToast(ctx, version2, message) {
|
|
|
41244
41249
|
}
|
|
41245
41250
|
async function showLocalDevToast(ctx, version2, isCoderEnabled) {
|
|
41246
41251
|
const displayVersion = version2 ?? "dev";
|
|
41247
|
-
const message = isCoderEnabled ? "Coder running in local development mode." : "
|
|
41252
|
+
const message = isCoderEnabled ? "Coder running in local development mode." : "DrizzyAgent running in local development mode.";
|
|
41248
41253
|
await showSpinnerToast(ctx, `${displayVersion} (dev)`, message);
|
|
41249
41254
|
log(`[auto-update-checker] Local dev toast shown: v${displayVersion}`);
|
|
41250
41255
|
}
|
|
@@ -41258,8 +41263,8 @@ function createAutoUpdateCheckerHook(ctx, options = {}) {
|
|
|
41258
41263
|
return isUpdate ? `Coder on steroids is steering OpenCode.
|
|
41259
41264
|
v${latestVersion} available. Restart to apply.` : "Coder on steroids is steering OpenCode.";
|
|
41260
41265
|
}
|
|
41261
|
-
return isUpdate ? `
|
|
41262
|
-
v${latestVersion} available. Restart OpenCode to apply.` : "
|
|
41266
|
+
return isUpdate ? `DrizzyAgent is active.
|
|
41267
|
+
v${latestVersion} available. Restart OpenCode to apply.` : "DrizzyAgent is active.";
|
|
41263
41268
|
};
|
|
41264
41269
|
let hasChecked = false;
|
|
41265
41270
|
return {
|
|
@@ -48876,13 +48881,15 @@ var OhMyOpenCodeConfigSchema = exports_external.object({
|
|
|
48876
48881
|
var BASH_CODE_BLOCK_PATTERN = /```bash\r?\n([\s\S]*?)```/g;
|
|
48877
48882
|
var LEADING_GIT_COMMAND_PATTERN = /^([ \t]*(?:[A-Za-z_][A-Za-z0-9_]*=[^ \t]+\s+)*)git(?=[ \t]|$)/gm;
|
|
48878
48883
|
var INLINE_GIT_COMMAND_PATTERN = /([;&|()][ \t]*)git(?=[ \t]|$)/g;
|
|
48884
|
+
var DEFAULT_COMMIT_FOOTER = "Developed with [DrizzyAgent](https://github.com/AndreDalwin/DrizzyAgent)";
|
|
48885
|
+
var DEFAULT_CO_AUTHORED_BY = "Co-authored-by: DrizzyBot <263155900+DrizzyBot@users.noreply.github.com>";
|
|
48879
48886
|
function injectGitMasterConfig(template, config2) {
|
|
48880
48887
|
const commitFooter = config2?.commit_footer ?? true;
|
|
48881
48888
|
const includeCoAuthoredBy = config2?.include_co_authored_by ?? true;
|
|
48882
48889
|
const gitEnvPrefix = assertValidGitEnvPrefix(config2?.git_env_prefix ?? "GIT_MASTER=1");
|
|
48883
48890
|
let result = gitEnvPrefix ? injectGitEnvPrefix(template, gitEnvPrefix) : template;
|
|
48884
48891
|
if (commitFooter || includeCoAuthoredBy) {
|
|
48885
|
-
const injection = buildCommitFooterInjection(commitFooter, includeCoAuthoredBy
|
|
48892
|
+
const injection = buildCommitFooterInjection(commitFooter, includeCoAuthoredBy);
|
|
48886
48893
|
const insertionPoint = result.indexOf("```\n</execution>");
|
|
48887
48894
|
result = insertionPoint !== -1 ? result.slice(0, insertionPoint) + "```\n\n" + injection + `
|
|
48888
48895
|
</execution>` + result.slice(insertionPoint + "```\n</execution>".length) : result + `
|
|
@@ -48936,15 +48943,14 @@ function prefixGitCommandsInBashCodeBlocks(template, prefix) {
|
|
|
48936
48943
|
function prefixGitCommandsInCodeBlock(codeBlock, prefix) {
|
|
48937
48944
|
return codeBlock.replace(LEADING_GIT_COMMAND_PATTERN, `$1${prefix} git`).replace(INLINE_GIT_COMMAND_PATTERN, `$1${prefix} git`);
|
|
48938
48945
|
}
|
|
48939
|
-
function buildCommitFooterInjection(commitFooter, includeCoAuthoredBy
|
|
48946
|
+
function buildCommitFooterInjection(commitFooter, includeCoAuthoredBy) {
|
|
48940
48947
|
const sections = [];
|
|
48941
|
-
const cmdPrefix = gitEnvPrefix ? `${gitEnvPrefix} ` : "";
|
|
48942
48948
|
sections.push("### 5.5 Commit Footer & Co-Author");
|
|
48943
48949
|
sections.push("");
|
|
48944
|
-
sections.push("Add
|
|
48950
|
+
sections.push("Add DrizzyAgent attribution to EVERY commit:");
|
|
48945
48951
|
sections.push("");
|
|
48946
48952
|
if (commitFooter) {
|
|
48947
|
-
const footerText = typeof commitFooter === "string" ? commitFooter :
|
|
48953
|
+
const footerText = typeof commitFooter === "string" ? commitFooter : DEFAULT_COMMIT_FOOTER;
|
|
48948
48954
|
sections.push("1. **Footer in commit body:**");
|
|
48949
48955
|
sections.push("```");
|
|
48950
48956
|
sections.push(footerText);
|
|
@@ -48954,26 +48960,26 @@ function buildCommitFooterInjection(commitFooter, includeCoAuthoredBy, gitEnvPre
|
|
|
48954
48960
|
if (includeCoAuthoredBy) {
|
|
48955
48961
|
sections.push(`${commitFooter ? "2" : "1"}. **Co-authored-by trailer:**`);
|
|
48956
48962
|
sections.push("```");
|
|
48957
|
-
sections.push(
|
|
48963
|
+
sections.push(DEFAULT_CO_AUTHORED_BY);
|
|
48958
48964
|
sections.push("```");
|
|
48959
48965
|
sections.push("");
|
|
48960
48966
|
}
|
|
48961
48967
|
if (commitFooter && includeCoAuthoredBy) {
|
|
48962
|
-
const footerText = typeof commitFooter === "string" ? commitFooter :
|
|
48968
|
+
const footerText = typeof commitFooter === "string" ? commitFooter : DEFAULT_COMMIT_FOOTER;
|
|
48963
48969
|
sections.push("**Example (both enabled):**");
|
|
48964
48970
|
sections.push("```bash");
|
|
48965
|
-
sections.push(
|
|
48971
|
+
sections.push(`git commit -m "{Commit Message}" -m "${footerText}" -m "${DEFAULT_CO_AUTHORED_BY}"`);
|
|
48966
48972
|
sections.push("```");
|
|
48967
48973
|
} else if (commitFooter) {
|
|
48968
|
-
const footerText = typeof commitFooter === "string" ? commitFooter :
|
|
48974
|
+
const footerText = typeof commitFooter === "string" ? commitFooter : DEFAULT_COMMIT_FOOTER;
|
|
48969
48975
|
sections.push("**Example:**");
|
|
48970
48976
|
sections.push("```bash");
|
|
48971
|
-
sections.push(
|
|
48977
|
+
sections.push(`git commit -m "{Commit Message}" -m "${footerText}"`);
|
|
48972
48978
|
sections.push("```");
|
|
48973
48979
|
} else if (includeCoAuthoredBy) {
|
|
48974
48980
|
sections.push("**Example:**");
|
|
48975
48981
|
sections.push("```bash");
|
|
48976
|
-
sections.push(
|
|
48982
|
+
sections.push(`git commit -m "{Commit Message}" -m "${DEFAULT_CO_AUTHORED_BY}"`);
|
|
48977
48983
|
sections.push("```");
|
|
48978
48984
|
}
|
|
48979
48985
|
return sections.join(`
|
|
@@ -94479,7 +94485,9 @@ function getConfiguredDefaultAgent(config4) {
|
|
|
94479
94485
|
if (typeof defaultAgent !== "string")
|
|
94480
94486
|
return;
|
|
94481
94487
|
const trimmedDefaultAgent = defaultAgent.trim();
|
|
94482
|
-
|
|
94488
|
+
if (trimmedDefaultAgent.length === 0)
|
|
94489
|
+
return;
|
|
94490
|
+
return AGENT_NAME_MAP[trimmedDefaultAgent.toLowerCase()] ?? AGENT_NAME_MAP[trimmedDefaultAgent] ?? trimmedDefaultAgent;
|
|
94483
94491
|
}
|
|
94484
94492
|
async function applyAgentConfig(params) {
|
|
94485
94493
|
const migratedDisabledAgents = (params.pluginConfig.disabled_agents ?? []).map((agent) => {
|
|
@@ -94540,14 +94548,14 @@ async function applyAgentConfig(params) {
|
|
|
94540
94548
|
const shouldDemotePlan = plannerEnabled && replacePlan;
|
|
94541
94549
|
const configuredDefaultAgent = getConfiguredDefaultAgent(params.config);
|
|
94542
94550
|
const configAgent = params.config.agent;
|
|
94543
|
-
if (isCoderEnabled && builtinAgents.
|
|
94551
|
+
if (isCoderEnabled && builtinAgents.coder) {
|
|
94544
94552
|
if (configuredDefaultAgent) {
|
|
94545
94553
|
params.config.default_agent = getAgentDisplayName(configuredDefaultAgent);
|
|
94546
94554
|
} else {
|
|
94547
94555
|
params.config.default_agent = getAgentDisplayName("coder");
|
|
94548
94556
|
}
|
|
94549
94557
|
const agentConfig = {
|
|
94550
|
-
coder: builtinAgents.
|
|
94558
|
+
coder: builtinAgents.coder
|
|
94551
94559
|
};
|
|
94552
94560
|
agentConfig["coder-junior"] = createCoderJuniorAgentWithOverrides(params.pluginConfig.agents?.["coder-junior"], undefined, useTaskSystem);
|
|
94553
94561
|
if (builderEnabled) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { isInsideTmux, getCurrentPaneId } from "./tmux-utils/environment";
|
|
1
|
+
export { isInsideTmux, isInsideTmuxWithEnv, getCurrentPaneId } from "./tmux-utils/environment";
|
|
2
2
|
export type { SplitDirection } from "./tmux-utils/environment";
|
|
3
3
|
export { isServerRunning, resetServerCheck } from "./tmux-utils/server-health";
|
|
4
4
|
export { getPaneDimensions } from "./tmux-utils/pane-dimensions";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "drizzy-agent",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "DrizzyAgent - AI agent plugin for OpenCode",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -45,12 +45,12 @@
|
|
|
45
45
|
"license": "SUL-1.0",
|
|
46
46
|
"repository": {
|
|
47
47
|
"type": "git",
|
|
48
|
-
"url": "git+https://github.com/
|
|
48
|
+
"url": "git+https://github.com/AndreDalwin/DrizzyAgent.git"
|
|
49
49
|
},
|
|
50
50
|
"bugs": {
|
|
51
|
-
"url": "https://github.com/
|
|
51
|
+
"url": "https://github.com/AndreDalwin/DrizzyAgent/issues"
|
|
52
52
|
},
|
|
53
|
-
"homepage": "https://github.com/
|
|
53
|
+
"homepage": "https://github.com/AndreDalwin/DrizzyAgent#readme",
|
|
54
54
|
"dependencies": {
|
|
55
55
|
"@ast-grep/cli": "^0.41.1",
|
|
56
56
|
"@ast-grep/napi": "^0.41.1",
|
|
@@ -76,17 +76,17 @@
|
|
|
76
76
|
"typescript": "^5.7.3"
|
|
77
77
|
},
|
|
78
78
|
"optionalDependencies": {
|
|
79
|
-
"drizzy-agent-darwin-arm64": "0.
|
|
80
|
-
"drizzy-agent-darwin-x64": "0.
|
|
81
|
-
"drizzy-agent-darwin-x64-baseline": "0.
|
|
82
|
-
"drizzy-agent-linux-arm64": "0.
|
|
83
|
-
"drizzy-agent-linux-arm64-musl": "0.
|
|
84
|
-
"drizzy-agent-linux-x64": "0.
|
|
85
|
-
"drizzy-agent-linux-x64-baseline": "0.
|
|
86
|
-
"drizzy-agent-linux-x64-musl": "0.
|
|
87
|
-
"drizzy-agent-linux-x64-musl-baseline": "0.
|
|
88
|
-
"drizzy-agent-windows-x64": "0.
|
|
89
|
-
"drizzy-agent-windows-x64-baseline": "0.
|
|
79
|
+
"drizzy-agent-darwin-arm64": "0.2.0",
|
|
80
|
+
"drizzy-agent-darwin-x64": "0.2.0",
|
|
81
|
+
"drizzy-agent-darwin-x64-baseline": "0.2.0",
|
|
82
|
+
"drizzy-agent-linux-arm64": "0.2.0",
|
|
83
|
+
"drizzy-agent-linux-arm64-musl": "0.2.0",
|
|
84
|
+
"drizzy-agent-linux-x64": "0.2.0",
|
|
85
|
+
"drizzy-agent-linux-x64-baseline": "0.2.0",
|
|
86
|
+
"drizzy-agent-linux-x64-musl": "0.2.0",
|
|
87
|
+
"drizzy-agent-linux-x64-musl-baseline": "0.2.0",
|
|
88
|
+
"drizzy-agent-windows-x64": "0.2.0",
|
|
89
|
+
"drizzy-agent-windows-x64-baseline": "0.2.0"
|
|
90
90
|
},
|
|
91
91
|
"overrides": {
|
|
92
92
|
"@opencode-ai/sdk": "^1.2.24"
|