smoothie-code 1.0.0 → 1.1.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/auto-blend-hook.sh +10 -1
- package/dist/blend-cli.js +1 -1
- package/dist/index.js +1 -1
- package/docs/favicon.png +0 -0
- package/docs/favicon.svg +11 -11
- package/docs/index.html +14 -1
- package/icon.png +0 -0
- package/icon.svg +11 -11
- package/install.sh +2 -2
- package/package.json +1 -1
- package/pr-blend-hook.sh +11 -2
- package/src/blend-cli.ts +1 -1
- package/src/index.ts +1 -1
package/auto-blend-hook.sh
CHANGED
|
@@ -76,7 +76,16 @@ CONTEXT="🧃 Smoothie auto-blend results — multiple models reviewed this plan
|
|
|
76
76
|
|
|
77
77
|
$BLEND_RESULTS
|
|
78
78
|
|
|
79
|
-
|
|
79
|
+
IMPORTANT — You must do TWO things:
|
|
80
|
+
|
|
81
|
+
1. FIRST, show a brief Smoothie summary to the user so they know the blend ran. Format it like:
|
|
82
|
+
|
|
83
|
+
🧃 Smoothie reviewed this plan (N models):
|
|
84
|
+
ModelName — one-line summary of their key feedback
|
|
85
|
+
ModelName — one-line summary of their key feedback
|
|
86
|
+
(skip models that returned errors or empty responses)
|
|
87
|
+
|
|
88
|
+
2. THEN revise the plan incorporating valid suggestions. Discard irrelevant ones."
|
|
80
89
|
|
|
81
90
|
# Return: allow ExitPlanMode but inject blend results
|
|
82
91
|
node -e "
|
package/dist/blend-cli.js
CHANGED
|
@@ -42,7 +42,7 @@ async function queryCodex(prompt) {
|
|
|
42
42
|
try {
|
|
43
43
|
const tmpFile = join(PROJECT_ROOT, `.codex-out-${Date.now()}.txt`);
|
|
44
44
|
await execFile('codex', ['exec', '--full-auto', '-o', tmpFile, prompt], {
|
|
45
|
-
timeout:
|
|
45
|
+
timeout: 0,
|
|
46
46
|
});
|
|
47
47
|
let response;
|
|
48
48
|
try {
|
package/dist/index.js
CHANGED
|
@@ -33,7 +33,7 @@ async function queryCodex(prompt) {
|
|
|
33
33
|
try {
|
|
34
34
|
const tmpFile = join(PROJECT_ROOT, `.codex-out-${Date.now()}.txt`);
|
|
35
35
|
await execFile('codex', ['exec', '--full-auto', '-o', tmpFile, prompt], {
|
|
36
|
-
timeout:
|
|
36
|
+
timeout: 0,
|
|
37
37
|
});
|
|
38
38
|
let response;
|
|
39
39
|
try {
|
package/docs/favicon.png
ADDED
|
Binary file
|
package/docs/favicon.svg
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" fill="none">
|
|
2
2
|
<rect width="64" height="64" rx="14" fill="#0d1117"/>
|
|
3
|
-
<g transform="translate(12,
|
|
4
|
-
<!--
|
|
5
|
-
<
|
|
6
|
-
|
|
7
|
-
<path d="M 2 18 L 38 18 C 38 18 38 22 20 22 C 2 22 2 18 2 18"/>
|
|
3
|
+
<g transform="translate(12, 10)" stroke="#f0f6fc" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" fill="none">
|
|
4
|
+
<!-- Straw (inside viewBox now) -->
|
|
5
|
+
<line x1="24" y1="8" x2="32" y2="2"/>
|
|
6
|
+
<line x1="32" y1="2" x2="36" y2="2"/>
|
|
8
7
|
<!-- Dome -->
|
|
9
|
-
<path d="M 8
|
|
10
|
-
<!--
|
|
11
|
-
<
|
|
12
|
-
|
|
8
|
+
<path d="M 8 20 C 8 12 14 6 20 6 C 26 6 32 12 32 20"/>
|
|
9
|
+
<!-- Lid -->
|
|
10
|
+
<path d="M 2 20 L 38 20 C 38 20 38 24 20 24 C 2 24 2 20 2 20"/>
|
|
11
|
+
<!-- Cup body -->
|
|
12
|
+
<path d="M 6 24 L 10 46 L 30 46 L 34 24"/>
|
|
13
13
|
<!-- Drips -->
|
|
14
|
-
<path d="M 13
|
|
15
|
-
<path d="M 23
|
|
14
|
+
<path d="M 13 24 C 13 28 17 28 17 24" opacity="0.4" stroke-width="1.8"/>
|
|
15
|
+
<path d="M 23 24 C 23 28 27 28 27 24" opacity="0.4" stroke-width="1.8"/>
|
|
16
16
|
</g>
|
|
17
17
|
</svg>
|
package/docs/index.html
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
6
|
<title>Smoothie — Multi-model review for Claude Code</title>
|
|
7
|
+
<link rel="icon" type="image/png" href="favicon.png">
|
|
7
8
|
<link rel="icon" type="image/svg+xml" href="favicon.svg">
|
|
8
9
|
<meta name="description" content="Query multiple AI models in parallel, get one blended answer. Plugin for Claude Code, Codex CLI, and Gemini CLI.">
|
|
9
10
|
<meta property="og:title" content="Smoothie">
|
|
@@ -204,6 +205,11 @@
|
|
|
204
205
|
text-align: center;
|
|
205
206
|
border-top: 1px solid #21262d;
|
|
206
207
|
}
|
|
208
|
+
footer {
|
|
209
|
+
display: flex;
|
|
210
|
+
justify-content: center;
|
|
211
|
+
gap: 24px;
|
|
212
|
+
}
|
|
207
213
|
footer a {
|
|
208
214
|
display: inline-flex;
|
|
209
215
|
align-items: center;
|
|
@@ -287,7 +293,14 @@
|
|
|
287
293
|
<footer>
|
|
288
294
|
<a href="https://github.com/hotairbag/smoothie">
|
|
289
295
|
<svg viewBox="0 0 16 16"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"/></svg>
|
|
290
|
-
|
|
296
|
+
GitHub
|
|
297
|
+
</a>
|
|
298
|
+
<a href="https://openrouter.ai/apps?url=https%3A%2F%2Fhotairbag.github.io%2Fsmoothie">
|
|
299
|
+
<svg viewBox="0 0 16 16"><path d="M8 1a7 7 0 100 14A7 7 0 008 1zm0 1.5a5.5 5.5 0 11-.001 11.001A5.5 5.5 0 018 2.5zm0 2a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 4.5zm0 6a.75.75 0 100 1.5.75.75 0 000-1.5z"/></svg>
|
|
300
|
+
OpenRouter Usage
|
|
301
|
+
</a>
|
|
302
|
+
<a href="https://www.npmjs.com/package/smoothie-code">
|
|
303
|
+
npm
|
|
291
304
|
</a>
|
|
292
305
|
</footer>
|
|
293
306
|
|
package/icon.png
ADDED
|
Binary file
|
package/icon.svg
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" fill="none">
|
|
2
2
|
<rect width="64" height="64" rx="14" fill="#0d1117"/>
|
|
3
|
-
<g transform="translate(12,
|
|
4
|
-
<!--
|
|
5
|
-
<
|
|
6
|
-
|
|
7
|
-
<path d="M 2 18 L 38 18 C 38 18 38 22 20 22 C 2 22 2 18 2 18"/>
|
|
3
|
+
<g transform="translate(12, 10)" stroke="#f0f6fc" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" fill="none">
|
|
4
|
+
<!-- Straw (inside viewBox now) -->
|
|
5
|
+
<line x1="24" y1="8" x2="32" y2="2"/>
|
|
6
|
+
<line x1="32" y1="2" x2="36" y2="2"/>
|
|
8
7
|
<!-- Dome -->
|
|
9
|
-
<path d="M 8
|
|
10
|
-
<!--
|
|
11
|
-
<
|
|
12
|
-
|
|
8
|
+
<path d="M 8 20 C 8 12 14 6 20 6 C 26 6 32 12 32 20"/>
|
|
9
|
+
<!-- Lid -->
|
|
10
|
+
<path d="M 2 20 L 38 20 C 38 20 38 24 20 24 C 2 24 2 20 2 20"/>
|
|
11
|
+
<!-- Cup body -->
|
|
12
|
+
<path d="M 6 24 L 10 46 L 30 46 L 34 24"/>
|
|
13
13
|
<!-- Drips -->
|
|
14
|
-
<path d="M 13
|
|
15
|
-
<path d="M 23
|
|
14
|
+
<path d="M 13 24 C 13 28 17 28 17 24" opacity="0.4" stroke-width="1.8"/>
|
|
15
|
+
<path d="M 23 24 C 23 28 27 28 27 24" opacity="0.4" stroke-width="1.8"/>
|
|
16
16
|
</g>
|
|
17
17
|
</svg>
|
package/install.sh
CHANGED
|
@@ -268,7 +268,7 @@ if (!preExists) {
|
|
|
268
268
|
hooks: [{
|
|
269
269
|
type: "command",
|
|
270
270
|
command: "bash $SCRIPT_DIR/auto-blend-hook.sh",
|
|
271
|
-
timeout:
|
|
271
|
+
timeout: 600
|
|
272
272
|
}]
|
|
273
273
|
});
|
|
274
274
|
}
|
|
@@ -281,7 +281,7 @@ if (!bashHookExists) {
|
|
|
281
281
|
hooks: [{
|
|
282
282
|
type: "command",
|
|
283
283
|
command: "bash $SCRIPT_DIR/pr-blend-hook.sh",
|
|
284
|
-
timeout:
|
|
284
|
+
timeout: 600
|
|
285
285
|
}]
|
|
286
286
|
});
|
|
287
287
|
}
|
package/package.json
CHANGED
package/pr-blend-hook.sh
CHANGED
|
@@ -73,11 +73,20 @@ if [ -z "$BLEND_RESULTS" ]; then
|
|
|
73
73
|
fi
|
|
74
74
|
|
|
75
75
|
# Build the additionalContext string
|
|
76
|
-
CONTEXT="Smoothie PR review — multiple models reviewed this diff:
|
|
76
|
+
CONTEXT="🧃 Smoothie PR review — multiple models reviewed this diff:
|
|
77
77
|
|
|
78
78
|
$BLEND_RESULTS
|
|
79
79
|
|
|
80
|
-
|
|
80
|
+
IMPORTANT — You must do TWO things:
|
|
81
|
+
|
|
82
|
+
1. FIRST, show a brief Smoothie summary so the user knows the review ran:
|
|
83
|
+
|
|
84
|
+
🧃 Smoothie reviewed this PR (N models):
|
|
85
|
+
ModelName — one-line key finding
|
|
86
|
+
ModelName — one-line key finding
|
|
87
|
+
(skip models that errored or returned empty)
|
|
88
|
+
|
|
89
|
+
2. THEN address any valid issues — fix the code or note them in the PR description."
|
|
81
90
|
|
|
82
91
|
# Return: allow Bash but inject blend results
|
|
83
92
|
node -e "
|
package/src/blend-cli.ts
CHANGED
|
@@ -64,7 +64,7 @@ async function queryCodex(prompt: string): Promise<ModelResult> {
|
|
|
64
64
|
try {
|
|
65
65
|
const tmpFile = join(PROJECT_ROOT, `.codex-out-${Date.now()}.txt`);
|
|
66
66
|
await execFile('codex', ['exec', '--full-auto', '-o', tmpFile, prompt], {
|
|
67
|
-
timeout:
|
|
67
|
+
timeout: 0,
|
|
68
68
|
});
|
|
69
69
|
let response: string;
|
|
70
70
|
try {
|
package/src/index.ts
CHANGED
|
@@ -71,7 +71,7 @@ async function queryCodex(prompt: string): Promise<ModelResult> {
|
|
|
71
71
|
try {
|
|
72
72
|
const tmpFile = join(PROJECT_ROOT, `.codex-out-${Date.now()}.txt`);
|
|
73
73
|
await execFile('codex', ['exec', '--full-auto', '-o', tmpFile, prompt], {
|
|
74
|
-
timeout:
|
|
74
|
+
timeout: 0,
|
|
75
75
|
});
|
|
76
76
|
let response: string;
|
|
77
77
|
try {
|