agentvibes 1.0.21 ā 1.0.23
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/README.md +2 -2
- package/RELEASE_NOTES.md +14 -4
- package/package.json +1 -1
- package/src/installer.js +150 -37
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
[](https://github.com/paulpreibisch/AgentVibes/actions/workflows/publish.yml)
|
|
10
10
|
[](https://opensource.org/licenses/Apache-2.0)
|
|
11
11
|
|
|
12
|
-
**Author**: Paul Preibisch ([@997Fire](https://x.com/997Fire)) | **Version**: v1.0.
|
|
12
|
+
**Author**: Paul Preibisch ([@997Fire](https://x.com/997Fire)) | **Version**: v1.0.22
|
|
13
13
|
|
|
14
14
|
---
|
|
15
15
|
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
|
|
44
44
|
## š° Latest Release
|
|
45
45
|
|
|
46
|
-
**[v1.0.
|
|
46
|
+
**[v1.0.22 - Release Notes](https://github.com/paulpreibisch/AgentVibes/releases/tag/v1.0.22)** š
|
|
47
47
|
|
|
48
48
|
Multilingual support is here! Speak with Claude in 30+ languages including Spanish, French, German, Italian, Portuguese, Chinese, Japanese, and more. Added 6 multilingual voices, fixed slash command discovery, and improved update experience with release notes fallback.
|
|
49
49
|
|
package/RELEASE_NOTES.md
CHANGED
|
@@ -56,12 +56,22 @@ try {
|
|
|
56
56
|
- RELEASE_NOTES.md now serves as fallback documentation
|
|
57
57
|
- Better user experience for npm package installations
|
|
58
58
|
|
|
59
|
+
## š Recent Commits
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
456abb0 docs: Update version to v1.0.21 [skip ci]
|
|
63
|
+
3dfdcb5 fix: Include RELEASE_NOTES.md in npm package for installer fallback
|
|
64
|
+
96f8a9b docs: Update README and RELEASE_NOTES to v1.0.20 [skip ci]
|
|
65
|
+
5e2e3cc chore: Bump version to 1.0.20 for npm publish
|
|
66
|
+
1636b14 feat: Show release notes from RELEASE_NOTES.md when git is unavailable
|
|
67
|
+
```
|
|
68
|
+
|
|
59
69
|
## š Release Stats
|
|
60
70
|
|
|
61
|
-
- **
|
|
62
|
-
- **
|
|
63
|
-
- **
|
|
64
|
-
- **1 bug fix**:
|
|
71
|
+
- **5 commits** since v1.0.19
|
|
72
|
+
- **3 files changed**: .npmignore, README.md, RELEASE_NOTES.md
|
|
73
|
+
- **10 insertions**, **4 deletions**
|
|
74
|
+
- **1 bug fix**: RELEASE_NOTES.md now included in npm package
|
|
65
75
|
- **0 breaking changes**
|
|
66
76
|
|
|
67
77
|
## šÆ User Experience Improvements
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "agentvibes",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.23",
|
|
5
5
|
"description": "Beautiful ElevenLabs TTS voice commands for Claude Code - Add professional narration to your AI coding sessions",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"elevenlabs",
|
package/src/installer.js
CHANGED
|
@@ -278,26 +278,34 @@ async function install(options = {}) {
|
|
|
278
278
|
const releaseNotesPath = path.join(__dirname, '..', 'RELEASE_NOTES.md');
|
|
279
279
|
const releaseNotes = await fs.readFile(releaseNotesPath, 'utf8');
|
|
280
280
|
|
|
281
|
-
// Extract
|
|
281
|
+
// Extract commits from "Recent Commits" section
|
|
282
282
|
const lines = releaseNotes.split('\n');
|
|
283
|
-
const
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
283
|
+
const commitsIndex = lines.findIndex(line => line.includes('## š Recent Commits'));
|
|
284
|
+
|
|
285
|
+
if (commitsIndex >= 0) {
|
|
286
|
+
console.log(chalk.cyan('š Recent Changes:\n'));
|
|
287
|
+
|
|
288
|
+
// Find the code block with commits (between ``` markers)
|
|
289
|
+
let inCodeBlock = false;
|
|
290
|
+
for (let i = commitsIndex + 1; i < lines.length; i++) {
|
|
291
|
+
const line = lines[i];
|
|
292
|
+
|
|
293
|
+
if (line.trim() === '```') {
|
|
294
|
+
if (inCodeBlock) break; // End of code block
|
|
295
|
+
inCodeBlock = true;
|
|
296
|
+
continue;
|
|
294
297
|
}
|
|
295
|
-
}
|
|
296
298
|
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
299
|
+
if (inCodeBlock && line.trim()) {
|
|
300
|
+
// Parse commit line: "hash message"
|
|
301
|
+
const match = line.match(/^([a-f0-9]+)\s+(.+)$/);
|
|
302
|
+
if (match) {
|
|
303
|
+
const [, hash, message] = match;
|
|
304
|
+
console.log(chalk.gray(` ${hash}`) + ' ' + chalk.white(message));
|
|
305
|
+
}
|
|
306
|
+
}
|
|
300
307
|
}
|
|
308
|
+
console.log();
|
|
301
309
|
}
|
|
302
310
|
} catch {
|
|
303
311
|
// No release notes available
|
|
@@ -422,11 +430,50 @@ program
|
|
|
422
430
|
);
|
|
423
431
|
const version = packageJson.version;
|
|
424
432
|
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
433
|
+
// Generate two-tone ASCII art
|
|
434
|
+
const agentText = figlet.textSync('Agent', {
|
|
435
|
+
font: 'ANSI Shadow',
|
|
436
|
+
horizontalLayout: 'default',
|
|
437
|
+
});
|
|
438
|
+
const vibesText = figlet.textSync('Vibes', {
|
|
439
|
+
font: 'ANSI Shadow',
|
|
440
|
+
horizontalLayout: 'default',
|
|
441
|
+
});
|
|
442
|
+
|
|
443
|
+
// Add blank line for spacing
|
|
444
|
+
console.log();
|
|
445
|
+
|
|
446
|
+
// Combine the two parts with different colors
|
|
447
|
+
const agentLines = agentText.split('\n');
|
|
448
|
+
const vibesLines = vibesText.split('\n');
|
|
449
|
+
const maxLength = Math.max(...agentLines.map(line => line.length));
|
|
450
|
+
|
|
451
|
+
for (let i = 0; i < agentLines.length; i++) {
|
|
452
|
+
const agentLine = agentLines[i].padEnd(maxLength);
|
|
453
|
+
const vibesLine = vibesLines[i] || '';
|
|
454
|
+
console.log(chalk.cyan(agentLine) + chalk.magenta(vibesLine));
|
|
455
|
+
}
|
|
456
|
+
console.log();
|
|
457
|
+
|
|
458
|
+
// Welcome box
|
|
459
|
+
console.log(
|
|
460
|
+
boxen(
|
|
461
|
+
chalk.white('š¤ Beautiful ElevenLabs TTS Voice Commands for Claude Code\n\n') +
|
|
462
|
+
chalk.gray('Add professional text-to-speech narration to your AI coding sessions\n\n') +
|
|
463
|
+
chalk.cyan('š¦ https://github.com/paulpreibisch/AgentVibes'),
|
|
464
|
+
{
|
|
465
|
+
padding: 1,
|
|
466
|
+
margin: 1,
|
|
467
|
+
borderStyle: 'round',
|
|
468
|
+
borderColor: 'cyan',
|
|
469
|
+
}
|
|
470
|
+
)
|
|
471
|
+
);
|
|
472
|
+
|
|
473
|
+
console.log(chalk.cyan('š Update Details:'));
|
|
474
|
+
console.log(chalk.white(` Current directory: ${currentDir}`));
|
|
475
|
+
console.log(chalk.white(` Update location: ${targetDir}/.claude/ (project-local)`));
|
|
476
|
+
console.log(chalk.white(` Package version: ${version}\n`));
|
|
430
477
|
|
|
431
478
|
// Check if already installed
|
|
432
479
|
const commandsDir = path.join(targetDir, '.claude', 'commands', 'agent-vibes');
|
|
@@ -442,6 +489,64 @@ program
|
|
|
442
489
|
process.exit(1);
|
|
443
490
|
}
|
|
444
491
|
|
|
492
|
+
// Show recent changes from git log or RELEASE_NOTES.md
|
|
493
|
+
try {
|
|
494
|
+
const { execSync } = await import('node:child_process');
|
|
495
|
+
const gitLog = execSync(
|
|
496
|
+
'git log --oneline --no-decorate -5',
|
|
497
|
+
{ cwd: path.join(__dirname, '..'), encoding: 'utf8' }
|
|
498
|
+
).trim();
|
|
499
|
+
|
|
500
|
+
if (gitLog) {
|
|
501
|
+
console.log(chalk.cyan('š° Latest Release Notes:\n'));
|
|
502
|
+
const commits = gitLog.split('\n');
|
|
503
|
+
commits.forEach(commit => {
|
|
504
|
+
const [hash, ...messageParts] = commit.split(' ');
|
|
505
|
+
const message = messageParts.join(' ');
|
|
506
|
+
console.log(chalk.gray(` ${hash}`) + ' ' + chalk.white(message));
|
|
507
|
+
});
|
|
508
|
+
console.log();
|
|
509
|
+
}
|
|
510
|
+
} catch (error) {
|
|
511
|
+
// Git not available or not a git repo - try RELEASE_NOTES.md
|
|
512
|
+
try {
|
|
513
|
+
const releaseNotesPath = path.join(__dirname, '..', 'RELEASE_NOTES.md');
|
|
514
|
+
const releaseNotes = await fs.readFile(releaseNotesPath, 'utf8');
|
|
515
|
+
|
|
516
|
+
// Extract commits from "Recent Commits" section
|
|
517
|
+
const lines = releaseNotes.split('\n');
|
|
518
|
+
const commitsIndex = lines.findIndex(line => line.includes('## š Recent Commits'));
|
|
519
|
+
|
|
520
|
+
if (commitsIndex >= 0) {
|
|
521
|
+
console.log(chalk.cyan('š° Latest Release Notes:\n'));
|
|
522
|
+
|
|
523
|
+
// Find the code block with commits (between ``` markers)
|
|
524
|
+
let inCodeBlock = false;
|
|
525
|
+
for (let i = commitsIndex + 1; i < lines.length; i++) {
|
|
526
|
+
const line = lines[i];
|
|
527
|
+
|
|
528
|
+
if (line.trim() === '```') {
|
|
529
|
+
if (inCodeBlock) break; // End of code block
|
|
530
|
+
inCodeBlock = true;
|
|
531
|
+
continue;
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
if (inCodeBlock && line.trim()) {
|
|
535
|
+
// Parse commit line: "hash message"
|
|
536
|
+
const match = line.match(/^([a-f0-9]+)\s+(.+)$/);
|
|
537
|
+
if (match) {
|
|
538
|
+
const [, hash, message] = match;
|
|
539
|
+
console.log(chalk.gray(` ${hash}`) + ' ' + chalk.white(message));
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
console.log();
|
|
544
|
+
}
|
|
545
|
+
} catch {
|
|
546
|
+
// No release notes available
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
|
|
445
550
|
console.log(chalk.cyan('š¦ What will be updated:'));
|
|
446
551
|
console.log(chalk.gray(' ⢠Slash commands (keep your customizations)'));
|
|
447
552
|
console.log(chalk.gray(' ⢠TTS scripts'));
|
|
@@ -573,26 +678,34 @@ program
|
|
|
573
678
|
const releaseNotesPath = path.join(__dirname, '..', 'RELEASE_NOTES.md');
|
|
574
679
|
const releaseNotes = await fs.readFile(releaseNotesPath, 'utf8');
|
|
575
680
|
|
|
576
|
-
// Extract
|
|
681
|
+
// Extract commits from "Recent Commits" section
|
|
577
682
|
const lines = releaseNotes.split('\n');
|
|
578
|
-
const
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
683
|
+
const commitsIndex = lines.findIndex(line => line.includes('## š Recent Commits'));
|
|
684
|
+
|
|
685
|
+
if (commitsIndex >= 0) {
|
|
686
|
+
console.log(chalk.cyan('š Recent Changes:\n'));
|
|
687
|
+
|
|
688
|
+
// Find the code block with commits (between ``` markers)
|
|
689
|
+
let inCodeBlock = false;
|
|
690
|
+
for (let i = commitsIndex + 1; i < lines.length; i++) {
|
|
691
|
+
const line = lines[i];
|
|
692
|
+
|
|
693
|
+
if (line.trim() === '```') {
|
|
694
|
+
if (inCodeBlock) break; // End of code block
|
|
695
|
+
inCodeBlock = true;
|
|
696
|
+
continue;
|
|
589
697
|
}
|
|
590
|
-
}
|
|
591
698
|
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
699
|
+
if (inCodeBlock && line.trim()) {
|
|
700
|
+
// Parse commit line: "hash message"
|
|
701
|
+
const match = line.match(/^([a-f0-9]+)\s+(.+)$/);
|
|
702
|
+
if (match) {
|
|
703
|
+
const [, hash, message] = match;
|
|
704
|
+
console.log(chalk.gray(` ${hash}`) + ' ' + chalk.white(message));
|
|
705
|
+
}
|
|
706
|
+
}
|
|
595
707
|
}
|
|
708
|
+
console.log();
|
|
596
709
|
}
|
|
597
710
|
} catch {
|
|
598
711
|
// No release notes available
|