agentvibes 1.1.0 → 1.1.1
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 +3 -3
- package/package.json +1 -1
- package/src/installer.js +126 -8
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.1.
|
|
12
|
+
**Author**: Paul Preibisch ([@997Fire](https://x.com/997Fire)) | **Version**: v1.1.1
|
|
13
13
|
|
|
14
14
|
---
|
|
15
15
|
|
|
@@ -43,9 +43,9 @@
|
|
|
43
43
|
|
|
44
44
|
## 📰 Latest Release
|
|
45
45
|
|
|
46
|
-
**[v1.1.
|
|
46
|
+
**[v1.1.1 - Release Notes](https://github.com/paulpreibisch/AgentVibes/releases/tag/v1.1.1)** 🔄
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
Self-update system is here! Update AgentVibes directly from Claude Code with `/agent-vibes:update` and check your version with `/agent-vibes:version`. No more manual npm/git commands - everything happens inside your Claude session with beautiful confirmations and release notes.
|
|
49
49
|
|
|
50
50
|
[→ View All Releases](https://github.com/paulpreibisch/AgentVibes/releases)
|
|
51
51
|
|
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.1.
|
|
4
|
+
"version": "1.1.1",
|
|
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
|
@@ -489,7 +489,66 @@ program
|
|
|
489
489
|
process.exit(1);
|
|
490
490
|
}
|
|
491
491
|
|
|
492
|
-
// Show
|
|
492
|
+
// Show latest release notes from RELEASE_NOTES.md
|
|
493
|
+
try {
|
|
494
|
+
const releaseNotesPath = path.join(__dirname, '..', 'RELEASE_NOTES.md');
|
|
495
|
+
const releaseNotes = await fs.readFile(releaseNotesPath, 'utf8');
|
|
496
|
+
|
|
497
|
+
// Extract latest release summary
|
|
498
|
+
const lines = releaseNotes.split('\n');
|
|
499
|
+
|
|
500
|
+
// Find the first release version header
|
|
501
|
+
const versionIndex = lines.findIndex(line => line.match(/^## 📦 v\d+\.\d+\.\d+/));
|
|
502
|
+
|
|
503
|
+
if (versionIndex >= 0) {
|
|
504
|
+
// Extract version
|
|
505
|
+
const versionMatch = lines[versionIndex].match(/v(\d+\.\d+\.\d+)/);
|
|
506
|
+
const version = versionMatch ? versionMatch[1] : 'unknown';
|
|
507
|
+
|
|
508
|
+
// Find the AI Summary section
|
|
509
|
+
const summaryIndex = lines.findIndex((line, idx) =>
|
|
510
|
+
idx > versionIndex && line.includes('### 🤖 AI Summary')
|
|
511
|
+
);
|
|
512
|
+
|
|
513
|
+
if (summaryIndex >= 0) {
|
|
514
|
+
console.log(chalk.cyan(`📰 Latest Release (v${version}):\n`));
|
|
515
|
+
|
|
516
|
+
// Extract summary text (lines between AI Summary and next ###)
|
|
517
|
+
let summaryText = '';
|
|
518
|
+
for (let i = summaryIndex + 1; i < lines.length; i++) {
|
|
519
|
+
const line = lines[i];
|
|
520
|
+
if (line.startsWith('###') || line.startsWith('##')) break;
|
|
521
|
+
if (line.trim()) {
|
|
522
|
+
summaryText += line.trim() + ' ';
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
// Wrap text at ~80 chars for better readability
|
|
527
|
+
const words = summaryText.split(' ');
|
|
528
|
+
let currentLine = '';
|
|
529
|
+
const wrappedLines = [];
|
|
530
|
+
|
|
531
|
+
words.forEach(word => {
|
|
532
|
+
if ((currentLine + word).length > 80) {
|
|
533
|
+
wrappedLines.push(currentLine.trim());
|
|
534
|
+
currentLine = word + ' ';
|
|
535
|
+
} else {
|
|
536
|
+
currentLine += word + ' ';
|
|
537
|
+
}
|
|
538
|
+
});
|
|
539
|
+
if (currentLine.trim()) wrappedLines.push(currentLine.trim());
|
|
540
|
+
|
|
541
|
+
wrappedLines.forEach(line => {
|
|
542
|
+
console.log(chalk.white(` ${line}`));
|
|
543
|
+
});
|
|
544
|
+
console.log();
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
} catch {
|
|
548
|
+
// Release notes not available - no problem
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
// Show latest commit messages
|
|
493
552
|
try {
|
|
494
553
|
const { execSync } = await import('node:child_process');
|
|
495
554
|
const gitLog = execSync(
|
|
@@ -498,7 +557,7 @@ program
|
|
|
498
557
|
).trim();
|
|
499
558
|
|
|
500
559
|
if (gitLog) {
|
|
501
|
-
console.log(chalk.cyan('
|
|
560
|
+
console.log(chalk.cyan('📝 Latest Commit Messages:\n'));
|
|
502
561
|
const commits = gitLog.split('\n');
|
|
503
562
|
commits.forEach(commit => {
|
|
504
563
|
const [hash, ...messageParts] = commit.split(' ');
|
|
@@ -508,7 +567,7 @@ program
|
|
|
508
567
|
console.log();
|
|
509
568
|
}
|
|
510
569
|
} catch (error) {
|
|
511
|
-
// Git not available
|
|
570
|
+
// Git not available - try RELEASE_NOTES.md fallback
|
|
512
571
|
try {
|
|
513
572
|
const releaseNotesPath = path.join(__dirname, '..', 'RELEASE_NOTES.md');
|
|
514
573
|
const releaseNotes = await fs.readFile(releaseNotesPath, 'utf8');
|
|
@@ -518,7 +577,7 @@ program
|
|
|
518
577
|
const commitsIndex = lines.findIndex(line => line.includes('## 📝 Recent Commits'));
|
|
519
578
|
|
|
520
579
|
if (commitsIndex >= 0) {
|
|
521
|
-
console.log(chalk.cyan('
|
|
580
|
+
console.log(chalk.cyan('📝 Latest Commit Messages:\n'));
|
|
522
581
|
|
|
523
582
|
// Find the code block with commits (between ``` markers)
|
|
524
583
|
let inCodeBlock = false;
|
|
@@ -654,7 +713,66 @@ program
|
|
|
654
713
|
console.log(chalk.white(` • ${srcPersonalityFiles.length} personality templates (${newPersonalities} new, ${updatedPersonalities} updated)`));
|
|
655
714
|
console.log(chalk.white(` • ${outputStyleFiles.length} output styles updated\n`));
|
|
656
715
|
|
|
657
|
-
// Show
|
|
716
|
+
// Show latest release notes from RELEASE_NOTES.md
|
|
717
|
+
try {
|
|
718
|
+
const releaseNotesPath = path.join(__dirname, '..', 'RELEASE_NOTES.md');
|
|
719
|
+
const releaseNotes = await fs.readFile(releaseNotesPath, 'utf8');
|
|
720
|
+
|
|
721
|
+
// Extract latest release summary
|
|
722
|
+
const lines = releaseNotes.split('\n');
|
|
723
|
+
|
|
724
|
+
// Find the first release version header
|
|
725
|
+
const versionIndex = lines.findIndex(line => line.match(/^## 📦 v\d+\.\d+\.\d+/));
|
|
726
|
+
|
|
727
|
+
if (versionIndex >= 0) {
|
|
728
|
+
// Extract version
|
|
729
|
+
const versionMatch = lines[versionIndex].match(/v(\d+\.\d+\.\d+)/);
|
|
730
|
+
const version = versionMatch ? versionMatch[1] : 'unknown';
|
|
731
|
+
|
|
732
|
+
// Find the AI Summary section
|
|
733
|
+
const summaryIndex = lines.findIndex((line, idx) =>
|
|
734
|
+
idx > versionIndex && line.includes('### 🤖 AI Summary')
|
|
735
|
+
);
|
|
736
|
+
|
|
737
|
+
if (summaryIndex >= 0) {
|
|
738
|
+
console.log(chalk.cyan(`📰 Latest Release (v${version}):\n`));
|
|
739
|
+
|
|
740
|
+
// Extract summary text (lines between AI Summary and next ###)
|
|
741
|
+
let summaryText = '';
|
|
742
|
+
for (let i = summaryIndex + 1; i < lines.length; i++) {
|
|
743
|
+
const line = lines[i];
|
|
744
|
+
if (line.startsWith('###') || line.startsWith('##')) break;
|
|
745
|
+
if (line.trim()) {
|
|
746
|
+
summaryText += line.trim() + ' ';
|
|
747
|
+
}
|
|
748
|
+
}
|
|
749
|
+
|
|
750
|
+
// Wrap text at ~80 chars for better readability
|
|
751
|
+
const words = summaryText.split(' ');
|
|
752
|
+
let currentLine = '';
|
|
753
|
+
const wrappedLines = [];
|
|
754
|
+
|
|
755
|
+
words.forEach(word => {
|
|
756
|
+
if ((currentLine + word).length > 80) {
|
|
757
|
+
wrappedLines.push(currentLine.trim());
|
|
758
|
+
currentLine = word + ' ';
|
|
759
|
+
} else {
|
|
760
|
+
currentLine += word + ' ';
|
|
761
|
+
}
|
|
762
|
+
});
|
|
763
|
+
if (currentLine.trim()) wrappedLines.push(currentLine.trim());
|
|
764
|
+
|
|
765
|
+
wrappedLines.forEach(line => {
|
|
766
|
+
console.log(chalk.white(` ${line}`));
|
|
767
|
+
});
|
|
768
|
+
console.log();
|
|
769
|
+
}
|
|
770
|
+
}
|
|
771
|
+
} catch {
|
|
772
|
+
// Release notes not available - no problem
|
|
773
|
+
}
|
|
774
|
+
|
|
775
|
+
// Show latest commit messages
|
|
658
776
|
try {
|
|
659
777
|
const { execSync } = await import('node:child_process');
|
|
660
778
|
const gitLog = execSync(
|
|
@@ -663,7 +781,7 @@ program
|
|
|
663
781
|
).trim();
|
|
664
782
|
|
|
665
783
|
if (gitLog) {
|
|
666
|
-
console.log(chalk.cyan('📝
|
|
784
|
+
console.log(chalk.cyan('📝 Latest Commit Messages:\n'));
|
|
667
785
|
const commits = gitLog.split('\n');
|
|
668
786
|
commits.forEach(commit => {
|
|
669
787
|
const [hash, ...messageParts] = commit.split(' ');
|
|
@@ -673,7 +791,7 @@ program
|
|
|
673
791
|
console.log();
|
|
674
792
|
}
|
|
675
793
|
} catch (error) {
|
|
676
|
-
// Git not available
|
|
794
|
+
// Git not available - try RELEASE_NOTES.md fallback
|
|
677
795
|
try {
|
|
678
796
|
const releaseNotesPath = path.join(__dirname, '..', 'RELEASE_NOTES.md');
|
|
679
797
|
const releaseNotes = await fs.readFile(releaseNotesPath, 'utf8');
|
|
@@ -683,7 +801,7 @@ program
|
|
|
683
801
|
const commitsIndex = lines.findIndex(line => line.includes('## 📝 Recent Commits'));
|
|
684
802
|
|
|
685
803
|
if (commitsIndex >= 0) {
|
|
686
|
-
console.log(chalk.cyan('📝
|
|
804
|
+
console.log(chalk.cyan('📝 Latest Commit Messages:\n'));
|
|
687
805
|
|
|
688
806
|
// Find the code block with commits (between ``` markers)
|
|
689
807
|
let inCodeBlock = false;
|