dexto 1.0.1 → 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.
Files changed (166) hide show
  1. package/README.md +14 -12
  2. package/agents/agent-registry.json +53 -0
  3. package/agents/database-agent/README.md +35 -0
  4. package/agents/database-agent/data/example.db +0 -0
  5. package/agents/database-agent/database-agent-example.sql +98 -0
  6. package/agents/database-agent/database-agent.yml +116 -0
  7. package/agents/database-agent/setup-database.sh +64 -0
  8. package/agents/{agent.yml → default-agent.yml} +1 -1
  9. package/agents/image-editor-agent/Lenna.webp +0 -0
  10. package/agents/image-editor-agent/README.md +435 -0
  11. package/agents/image-editor-agent/image-editor-agent.yml +45 -0
  12. package/agents/music-agent/README.md +294 -0
  13. package/agents/music-agent/music-agent.yml +43 -0
  14. package/agents/product-name-researcher/README.md +98 -0
  15. package/agents/product-name-researcher/product-name-researcher.yml +161 -0
  16. package/agents/talk2pdf-agent/README.md +166 -0
  17. package/agents/talk2pdf-agent/talk2pdf-agent.yml +42 -0
  18. package/agents/triage-demo/README.md +337 -0
  19. package/agents/triage-demo/billing-agent.yml +76 -0
  20. package/agents/triage-demo/docs/billing-policies.md +246 -0
  21. package/agents/triage-demo/docs/company-overview.md +94 -0
  22. package/agents/triage-demo/docs/escalation-policies.md +301 -0
  23. package/agents/triage-demo/docs/product-features.md +253 -0
  24. package/agents/triage-demo/docs/technical-documentation.md +226 -0
  25. package/agents/triage-demo/escalation-agent.yml +82 -0
  26. package/agents/triage-demo/product-info-agent.yml +86 -0
  27. package/agents/triage-demo/technical-support-agent.yml +71 -0
  28. package/agents/triage-demo/test-scenarios.md +209 -0
  29. package/agents/triage-demo/triage-agent.yml +172 -0
  30. package/dist/src/app/{chunk-M4OZIDPC.js → chunk-CLDYRNV6.js} +7241 -5753
  31. package/dist/src/app/chunk-DYNVXGAH.js +137 -0
  32. package/dist/src/app/chunk-PW2PHCHR.js +83 -0
  33. package/dist/src/app/chunk-R4Q522DR.js +205 -0
  34. package/dist/src/app/chunk-UXCBS3TR.js +281 -0
  35. package/dist/src/app/chunk-X6LEX724.js +108 -0
  36. package/dist/src/app/chunk-Y33BS5SA.js +39 -0
  37. package/dist/src/app/{cli-confirmation-handler-2APQRKHG.js → cli-confirmation-handler-GJHPLGOL.js} +4 -1
  38. package/dist/src/app/errors-5MNETGOV.js +8 -0
  39. package/dist/src/app/index.js +2184 -612
  40. package/dist/src/app/loader-EFMKWNNQ.js +20 -0
  41. package/dist/src/app/path-7FT4SZMO.js +23 -0
  42. package/dist/src/app/{postgres-backend-7HVVW3RL.js → postgres-backend-U5MIIMUY.js} +12 -1
  43. package/dist/src/app/{redis-backend-2YBZSSSV.js → redis-backend-NGI67ILT.js} +38 -9
  44. package/dist/src/app/registry-RALMVM3P.js +14 -0
  45. package/dist/src/app/sqlite-backend-752UUBD4.js +245 -0
  46. package/dist/src/app/webui/.next/standalone/.next/BUILD_ID +1 -1
  47. package/dist/src/app/webui/.next/standalone/.next/app-build-manifest.json +20 -21
  48. package/dist/src/app/webui/.next/standalone/.next/app-path-routes-manifest.json +0 -1
  49. package/dist/src/app/webui/.next/standalone/.next/build-manifest.json +4 -4
  50. package/dist/src/app/webui/.next/standalone/.next/prerender-manifest.json +4 -82
  51. package/dist/src/app/webui/.next/standalone/.next/required-server-files.json +2 -3
  52. package/dist/src/app/webui/.next/standalone/.next/routes-manifest.json +0 -6
  53. package/dist/src/app/webui/.next/standalone/.next/server/app/_not-found/page.js +1 -1
  54. package/dist/src/app/webui/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  55. package/dist/src/app/webui/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  56. package/dist/src/app/webui/.next/standalone/.next/server/app/page.js +7 -3
  57. package/dist/src/app/webui/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  58. package/dist/src/app/webui/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  59. package/dist/src/app/webui/.next/standalone/.next/server/app/playground/page.js +8 -8
  60. package/dist/src/app/webui/.next/standalone/.next/server/app/playground/page.js.nft.json +1 -1
  61. package/dist/src/app/webui/.next/standalone/.next/server/app/playground/page_client-reference-manifest.js +1 -1
  62. package/dist/src/app/webui/.next/standalone/.next/server/app-paths-manifest.json +0 -1
  63. package/dist/src/app/webui/.next/standalone/.next/server/chunks/176.js +1 -0
  64. package/dist/src/app/webui/.next/standalone/.next/server/chunks/195.js +24 -0
  65. package/dist/src/app/webui/.next/standalone/.next/server/chunks/620.js +1 -0
  66. package/dist/src/app/webui/.next/standalone/.next/server/chunks/80.js +5 -0
  67. package/dist/src/app/webui/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  68. package/dist/src/app/webui/.next/standalone/.next/server/pages/500.html +1 -1
  69. package/dist/src/app/webui/.next/standalone/.next/server/pages-manifest.json +1 -2
  70. package/dist/src/app/webui/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  71. package/dist/src/app/webui/.next/standalone/.next/server/webpack-runtime.js +1 -1
  72. package/dist/src/app/webui/.next/standalone/.next/static/chunks/190-b897ef36fde616bf.js +1 -0
  73. package/dist/src/app/webui/.next/standalone/.next/static/chunks/487-a77054bd2c64c79c.js +1 -0
  74. package/dist/src/app/webui/.next/standalone/.next/static/chunks/588-dbe47a44489742dd.js +1 -0
  75. package/dist/src/app/webui/.next/standalone/.next/static/chunks/62-35030b5cb176bd7b.js +1 -0
  76. package/dist/src/app/webui/.next/standalone/.next/static/chunks/app/layout-91c0cb9eb1ee327a.js +1 -0
  77. package/dist/src/app/webui/.next/standalone/.next/static/chunks/app/page-3279aaf14db87f45.js +1 -0
  78. package/dist/src/app/webui/.next/standalone/.next/static/chunks/app/playground/page-200aad53af9ca53f.js +1 -0
  79. package/dist/src/app/webui/.next/standalone/.next/static/css/af71306827be150e.css +3 -0
  80. package/dist/src/app/webui/.next/standalone/.next/static/tpCURR82LyyGfdALJ4Qvl/_buildManifest.js +1 -0
  81. package/dist/src/app/webui/.next/standalone/package.json +4 -3
  82. package/dist/src/app/webui/.next/standalone/public/favicon2.ico +0 -0
  83. package/dist/src/app/webui/.next/standalone/public/logo.svg +1 -0
  84. package/dist/src/app/webui/.next/standalone/public/logo_no_text.png +0 -0
  85. package/dist/src/app/webui/.next/standalone/server.js +1 -1
  86. package/dist/src/app/webui/.next/static/chunks/190-b897ef36fde616bf.js +1 -0
  87. package/dist/src/app/webui/.next/static/chunks/487-a77054bd2c64c79c.js +1 -0
  88. package/dist/src/app/webui/.next/static/chunks/588-dbe47a44489742dd.js +1 -0
  89. package/dist/src/app/webui/.next/static/chunks/62-35030b5cb176bd7b.js +1 -0
  90. package/dist/src/app/webui/.next/static/chunks/app/layout-91c0cb9eb1ee327a.js +1 -0
  91. package/dist/src/app/webui/.next/static/chunks/app/page-3279aaf14db87f45.js +1 -0
  92. package/dist/src/app/webui/.next/static/chunks/app/playground/page-200aad53af9ca53f.js +1 -0
  93. package/dist/src/app/webui/.next/static/css/af71306827be150e.css +3 -0
  94. package/dist/src/app/webui/.next/static/tpCURR82LyyGfdALJ4Qvl/_buildManifest.js +1 -0
  95. package/dist/src/app/webui/package.json +4 -3
  96. package/dist/src/app/webui/public/favicon2.ico +0 -0
  97. package/dist/src/app/webui/public/logo.svg +1 -0
  98. package/dist/src/app/webui/public/logo_no_text.png +0 -0
  99. package/dist/src/core/chunk-7A6NQKQ3.js +193 -0
  100. package/dist/src/core/chunk-CZIXQNMZ.js +12191 -0
  101. package/dist/src/core/index.cjs +10601 -8012
  102. package/dist/src/core/index.d.cts +4356 -3907
  103. package/dist/src/core/index.d.ts +4356 -3907
  104. package/dist/src/core/index.js +117 -8396
  105. package/dist/src/core/{postgres-backend-ERZ6DP76.js → postgres-backend-LOLKTD2T.js} +9 -2
  106. package/dist/src/core/{redis-backend-46O7Y44C.js → redis-backend-APZ576PJ.js} +35 -10
  107. package/dist/src/core/sqlite-backend-KQ75DPR7.js +245 -0
  108. package/package.json +20 -12
  109. package/dist/src/app/chunk-O5YHNFMH.js +0 -435
  110. package/dist/src/app/interactive-api-key-setup-V3GAACLN.js +0 -269
  111. package/dist/src/app/sqlite-backend-KIJZ5IP3.js +0 -180
  112. package/dist/src/app/webui/.next/standalone/.next/server/app/_not-found.html +0 -1
  113. package/dist/src/app/webui/.next/standalone/.next/server/app/_not-found.meta +0 -8
  114. package/dist/src/app/webui/.next/standalone/.next/server/app/_not-found.rsc +0 -21
  115. package/dist/src/app/webui/.next/standalone/.next/server/app/favicon.ico/route.js +0 -1
  116. package/dist/src/app/webui/.next/standalone/.next/server/app/favicon.ico/route.js.nft.json +0 -1
  117. package/dist/src/app/webui/.next/standalone/.next/server/app/favicon.ico.body +0 -0
  118. package/dist/src/app/webui/.next/standalone/.next/server/app/favicon.ico.meta +0 -1
  119. package/dist/src/app/webui/.next/standalone/.next/server/app/index.html +0 -1
  120. package/dist/src/app/webui/.next/standalone/.next/server/app/index.meta +0 -7
  121. package/dist/src/app/webui/.next/standalone/.next/server/app/index.rsc +0 -22
  122. package/dist/src/app/webui/.next/standalone/.next/server/app/playground.html +0 -1
  123. package/dist/src/app/webui/.next/standalone/.next/server/app/playground.meta +0 -7
  124. package/dist/src/app/webui/.next/standalone/.next/server/app/playground.rsc +0 -25
  125. package/dist/src/app/webui/.next/standalone/.next/server/chunks/447.js +0 -20
  126. package/dist/src/app/webui/.next/standalone/.next/server/chunks/504.js +0 -1
  127. package/dist/src/app/webui/.next/standalone/.next/server/chunks/54.js +0 -5
  128. package/dist/src/app/webui/.next/standalone/.next/server/chunks/624.js +0 -1
  129. package/dist/src/app/webui/.next/standalone/.next/server/chunks/985.js +0 -5
  130. package/dist/src/app/webui/.next/standalone/.next/server/pages/404.html +0 -1
  131. package/dist/src/app/webui/.next/standalone/.next/static/H-71qcBOOk528tDEa_ldn/_buildManifest.js +0 -1
  132. package/dist/src/app/webui/.next/standalone/.next/static/chunks/125-9b34ec01f112cdb2.js +0 -1
  133. package/dist/src/app/webui/.next/standalone/.next/static/chunks/487-c6ea8b63ca68db1c.js +0 -1
  134. package/dist/src/app/webui/.next/standalone/.next/static/chunks/588-20dc7f3a8664c387.js +0 -1
  135. package/dist/src/app/webui/.next/standalone/.next/static/chunks/687-3e614f30982093f6.js +0 -1
  136. package/dist/src/app/webui/.next/standalone/.next/static/chunks/879-cf875984faa0b72f.js +0 -1
  137. package/dist/src/app/webui/.next/standalone/.next/static/chunks/app/layout-ed56660b7ecaf47b.js +0 -1
  138. package/dist/src/app/webui/.next/standalone/.next/static/chunks/app/page-b05580de36ce0e36.js +0 -1
  139. package/dist/src/app/webui/.next/standalone/.next/static/chunks/app/playground/page-ac5443cddbe824aa.js +0 -1
  140. package/dist/src/app/webui/.next/standalone/.next/static/css/d44f09bc2605dc76.css +0 -3
  141. package/dist/src/app/webui/.next/standalone/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js +0 -19
  142. package/dist/src/app/webui/.next/standalone/public/favicon.svg +0 -26
  143. package/dist/src/app/webui/.next/standalone/public/logo.png +0 -0
  144. package/dist/src/app/webui/.next/static/H-71qcBOOk528tDEa_ldn/_buildManifest.js +0 -1
  145. package/dist/src/app/webui/.next/static/chunks/125-9b34ec01f112cdb2.js +0 -1
  146. package/dist/src/app/webui/.next/static/chunks/487-c6ea8b63ca68db1c.js +0 -1
  147. package/dist/src/app/webui/.next/static/chunks/588-20dc7f3a8664c387.js +0 -1
  148. package/dist/src/app/webui/.next/static/chunks/687-3e614f30982093f6.js +0 -1
  149. package/dist/src/app/webui/.next/static/chunks/879-cf875984faa0b72f.js +0 -1
  150. package/dist/src/app/webui/.next/static/chunks/app/layout-ed56660b7ecaf47b.js +0 -1
  151. package/dist/src/app/webui/.next/static/chunks/app/page-b05580de36ce0e36.js +0 -1
  152. package/dist/src/app/webui/.next/static/chunks/app/playground/page-ac5443cddbe824aa.js +0 -1
  153. package/dist/src/app/webui/.next/static/css/d44f09bc2605dc76.css +0 -3
  154. package/dist/src/app/webui/public/favicon.svg +0 -26
  155. package/dist/src/app/webui/public/logo.png +0 -0
  156. package/dist/src/core/chunk-BGO5B3L4.js +0 -2124
  157. package/dist/src/core/chunk-BYHW25EA.js +0 -41
  158. package/dist/src/core/sqlite-backend-RKK4WBHE.js +0 -184
  159. /package/dist/src/app/webui/.next/standalone/.next/static/chunks/{4bd1b696-2df85d4b3b58aed5.js → 4bd1b696-c95fa02060335229.js} +0 -0
  160. /package/dist/src/app/webui/.next/standalone/.next/static/chunks/{684-058c08971e023037.js → 684-2e7175657246b549.js} +0 -0
  161. /package/dist/src/app/webui/.next/standalone/.next/static/chunks/app/_not-found/{page-7b137d85f9de4771.js → page-b63df5a8d3225455.js} +0 -0
  162. /package/dist/src/app/webui/.next/standalone/.next/static/{H-71qcBOOk528tDEa_ldn → tpCURR82LyyGfdALJ4Qvl}/_ssgManifest.js +0 -0
  163. /package/dist/src/app/webui/.next/static/chunks/{4bd1b696-2df85d4b3b58aed5.js → 4bd1b696-c95fa02060335229.js} +0 -0
  164. /package/dist/src/app/webui/.next/static/chunks/{684-058c08971e023037.js → 684-2e7175657246b549.js} +0 -0
  165. /package/dist/src/app/webui/.next/static/chunks/app/_not-found/{page-7b137d85f9de4771.js → page-b63df5a8d3225455.js} +0 -0
  166. /package/dist/src/app/webui/.next/static/{H-71qcBOOk528tDEa_ldn → tpCURR82LyyGfdALJ4Qvl}/_ssgManifest.js +0 -0
@@ -0,0 +1,294 @@
1
+ # Music Creator Agent
2
+
3
+ A comprehensive AI agent for music creation, editing, and audio processing using the [Music Creator MCP Server](https://github.com/truffle-ai/mcp-servers/tree/main/src/music).
4
+
5
+ > **⚠️ Experimental Status**: This agent is currently in experimental development. The tools have not been extensively tested in production environments and may have limitations or bugs. We're actively seeking feedback and improvements from users.
6
+ ## 🧪 Experimental Features
7
+
8
+ - **Limited Testing**: Tools have been tested in controlled environments but may behave differently with various audio formats, file sizes, or system configurations
9
+ - **Active Development**: Features are being refined based on user feedback and real-world usage
10
+ - **Feedback Welcome**: We encourage users to report issues, suggest improvements, and share use cases
11
+ - **Breaking Changes**: API and tool behavior may change as we improve the implementation
12
+
13
+ ## Overview
14
+
15
+ This agent provides access to professional-grade music production tools through a clean conversational interface. Built with industry-standard libraries like librosa, pydub, and music21, it offers comprehensive audio processing capabilities using the published `truffle-ai-music-creator-mcp` package.
16
+
17
+ ## Features
18
+
19
+ ### 🎵 Audio Analysis
20
+ - **Tempo Detection**: Automatically detect BPM and beat positions
21
+ - **Key Detection**: Identify musical key and mode
22
+ - **Spectral Analysis**: Analyze frequency spectrum, MFCC features, and audio characteristics
23
+ - **Comprehensive Analysis**: Get detailed audio information including duration, sample rate, and format
24
+
25
+ ### 🎼 Music Generation
26
+ - **Melody Creation**: Generate melodies in any key and scale
27
+ - **Chord Progressions**: Create chord progressions using Roman numeral notation
28
+ - **Drum Patterns**: Generate drum patterns for rock, jazz, and funk styles
29
+ - **MIDI Export**: All generated music exports to MIDI format for further editing
30
+
31
+ ### 🔊 Audio Processing
32
+ - **Format Conversion**: Convert between MP3, WAV, FLAC, OGG, M4A, AIFF, WMA
33
+ - **Volume Control**: Adjust audio levels with precise dB control
34
+ - **Audio Normalization**: Normalize audio to target levels
35
+ - **Audio Trimming**: Cut audio to specific time ranges
36
+ - **Audio Effects**: Apply reverb, echo, distortion, and filters
37
+
38
+ ### 🎚️ Mixing & Arrangement
39
+ - **Audio Merging**: Combine multiple audio files with crossfade support
40
+ - **Multi-track Mixing**: Mix multiple audio tracks with individual volume control
41
+ - **Batch Processing**: Process multiple files with the same operation
42
+
43
+ ## Quick Start
44
+
45
+ ### Prerequisites
46
+ - **Node.js 18+**: For the Dexto framework
47
+ - **Python 3.10+**: Automatically managed by the MCP server
48
+ - **FFmpeg**: For audio processing (optional, but recommended)
49
+
50
+ ### Installation
51
+
52
+ 1. **Install FFmpeg** (recommended):
53
+ ```bash
54
+ # macOS
55
+ brew install ffmpeg
56
+
57
+ # Ubuntu/Debian
58
+ sudo apt update && sudo apt install ffmpeg
59
+ ```
60
+
61
+ 2. **Run the Agent**:
62
+ ```bash
63
+ # From the project root
64
+ dexto --agent agents/music-agent/music-agent.yml
65
+ ```
66
+
67
+ That's it! The MCP server will be automatically downloaded and installed via `uvx` on first run.
68
+
69
+ ## Usage Examples
70
+
71
+ ### Audio Analysis
72
+ ```
73
+ "Analyze the tempo and key of my song.mp3"
74
+ "What's the BPM of this track?"
75
+ "What key is this song in?"
76
+ ```
77
+
78
+ ### Music Generation
79
+ ```
80
+ "Create a melody in G major at 140 BPM for 15 seconds"
81
+ "Create a I-IV-V-I chord progression in D major"
82
+ "Create a basic rock drum pattern"
83
+ ```
84
+
85
+ ### Audio Processing
86
+ ```
87
+ "Convert my song.wav to MP3 format"
88
+ "Convert my MIDI melody to WAV format"
89
+ "Increase the volume of my vocals by 3dB"
90
+ "Normalize my guitar track to -18dB"
91
+ "Trim my song from 30 seconds to 2 minutes"
92
+ ```
93
+
94
+ ### Audio Effects
95
+ ```
96
+ "Add reverb to my guitar with 200ms reverb time"
97
+ "Add echo to my vocals with 500ms delay and 0.7 decay"
98
+ "Add some distortion to my bass track"
99
+ ```
100
+
101
+ ### Mixing & Playback
102
+ ```
103
+ "Mix my vocals, guitar, and drums together with the vocals at +3dB"
104
+ "Mix a MIDI melody with an MP3 drum loop"
105
+ "Create a melody in G major and play it for 5 seconds"
106
+ "Play my song.mp3 starting from 30 seconds for 10 seconds"
107
+ ```
108
+
109
+ ## Available Tools
110
+
111
+ ### Music Generation
112
+ - `create_melody` - Generate melodies in any key and scale
113
+ - `create_chord_progression` - Create chord progressions using Roman numerals
114
+ - `create_drum_pattern` - Generate drum patterns for different styles
115
+
116
+ ### Audio Analysis
117
+ - `analyze_audio` - Comprehensive audio analysis
118
+ - `detect_tempo` - Detect BPM and beat positions
119
+ - `detect_key` - Identify musical key and mode
120
+ - `get_audio_info` - Get detailed audio file information
121
+ - `get_midi_info` - Get detailed MIDI file information
122
+
123
+ ### Audio Processing
124
+ - `convert_audio_format` - Convert between audio formats
125
+ - `convert_midi_to_audio` - Convert MIDI files to high-quality audio format (WAV, 44.1kHz, 16-bit)
126
+ - `adjust_volume` - Adjust audio levels in dB
127
+ - `normalize_audio` - Normalize audio to target levels
128
+ - `trim_audio` - Cut audio to specific time ranges
129
+ - `apply_audio_effect` - Apply reverb, echo, distortion, filters
130
+
131
+ ### Mixing & Arrangement
132
+ - `merge_audio_files` - Combine multiple audio files
133
+ - `mix_audio_files` - Mix tracks with individual volume control (supports both audio and MIDI files)
134
+
135
+ ### Playback
136
+ - `play_audio` - Play audio files with optional start time and duration
137
+ - `play_midi` - Play MIDI files with optional start time and duration
138
+
139
+ ### Utility
140
+ - `list_available_effects` - List all audio effects
141
+ - `list_drum_patterns` - List available drum patterns
142
+
143
+ ## Supported Formats
144
+
145
+ ### Audio Formats
146
+ - **MP3**: Most common compressed format
147
+ - **WAV**: Uncompressed high-quality audio
148
+ - **FLAC**: Lossless compressed audio
149
+ - **OGG**: Open-source compressed format
150
+ - **M4A**: Apple's compressed format
151
+ - **AIFF**: Apple's uncompressed format
152
+ - **WMA**: Windows Media Audio
153
+
154
+ ### MIDI Formats
155
+ - **MID**: Standard MIDI files
156
+ - **MIDI**: Alternative MIDI extension
157
+
158
+ ## Configuration
159
+
160
+ ### Agent Configuration
161
+ The agent is configured to use the published MCP server:
162
+
163
+ ```yaml
164
+ systemPrompt: |
165
+ You are an AI assistant specialized in music creation, editing, and production...
166
+
167
+ mcpServers:
168
+ music_creator:
169
+ type: stdio
170
+ command: uvx
171
+ args:
172
+ - truffle-ai-music-creator-mcp
173
+ connectionMode: strict
174
+
175
+ llm:
176
+ provider: openai
177
+ model: gpt-4o-mini
178
+ apiKey: $OPENAI_API_KEY
179
+ ```
180
+
181
+ ### Environment Variables
182
+ Set your OpenAI API key:
183
+
184
+ ```bash
185
+ export OPENAI_API_KEY="your-api-key-here"
186
+ ```
187
+
188
+ Or create a `.env` file in the project root:
189
+
190
+ ```bash
191
+ OPENAI_API_KEY=your-api-key-here
192
+ ```
193
+
194
+ ## Use Cases
195
+
196
+ ### Music Production
197
+ - Create backing tracks and accompaniments
198
+ - Generate drum patterns for different genres
199
+ - Compose melodies and chord progressions
200
+ - Mix and master audio tracks
201
+
202
+ ### Audio Editing
203
+ - Clean up audio recordings
204
+ - Normalize volume levels
205
+ - Apply professional effects
206
+ - Convert between formats
207
+
208
+ ### Music Analysis
209
+ - Analyze existing music for tempo and key
210
+ - Extract musical features for machine learning
211
+ - Study musical patterns and structures
212
+ - Compare different audio files
213
+
214
+ ### Educational
215
+ - Learn about musical theory through generation
216
+ - Study different musical styles and patterns
217
+ - Experiment with composition techniques
218
+ - Understand audio processing concepts
219
+
220
+ ## MCP Server
221
+
222
+ This agent uses the **Music Creator MCP Server**, which is maintained separately at:
223
+
224
+ **🔗 [https://github.com/truffle-ai/mcp-servers/tree/main/src/music](https://github.com/truffle-ai/mcp-servers/tree/main/src/music)**
225
+
226
+ The MCP server repository provides:
227
+ - Complete technical documentation
228
+ - Development and contribution guidelines
229
+ - Server implementation details
230
+ - Advanced configuration options
231
+
232
+ ## Troubleshooting
233
+
234
+ ### Common Issues
235
+
236
+ #### 1. Server Installation
237
+ The MCP server will be automatically installed via `uvx` on first run. No manual setup required.
238
+
239
+ #### 2. "FFmpeg not found" warnings
240
+ These warnings can be safely ignored. The agent includes fallback methods using librosa and soundfile for audio processing when FFmpeg is not available.
241
+
242
+ ```bash
243
+ # Optional: Install FFmpeg for optimal performance
244
+ brew install ffmpeg # macOS
245
+ sudo apt install ffmpeg # Ubuntu/Debian
246
+ ```
247
+
248
+ #### 3. Large Audio Files
249
+ Consider trimming or converting to smaller formats for faster processing.
250
+
251
+ #### 4. Memory Usage
252
+ Monitor system memory during heavy audio operations.
253
+
254
+ ### Performance Tips
255
+
256
+ 1. **Large Audio Files**: Consider trimming or converting to smaller formats for faster processing
257
+ 2. **Memory Usage**: Monitor system memory during heavy audio operations
258
+ 3. **Batch Processing**: Use batch operations for multiple files to improve efficiency
259
+ 4. **FFmpeg**: Install FFmpeg for optimal audio processing performance (optional - fallback methods available)
260
+
261
+ ## Technical Details
262
+
263
+ ### Dependencies
264
+ The MCP server uses industry-standard libraries:
265
+ - **librosa**: Audio analysis and music information retrieval
266
+ - **pydub**: Audio file manipulation and processing
267
+ - **music21**: Music notation and analysis
268
+ - **pretty_midi**: MIDI file handling
269
+ - **numpy**: Numerical computing
270
+ - **scipy**: Scientific computing
271
+ - **matplotlib**: Plotting and visualization
272
+
273
+ ### Architecture
274
+ The agent uses a Python-based MCP server that provides:
275
+ - Fast audio processing with optimized libraries
276
+ - Memory-efficient handling of large audio files
277
+ - Thread-safe operations for concurrent processing
278
+ - Comprehensive error handling and validation
279
+
280
+ ### Performance
281
+ - Supports audio files up to several hours in length
282
+ - Efficient processing of multiple file formats
283
+ - Optimized algorithms for real-time analysis
284
+ - Minimal memory footprint for batch operations
285
+
286
+ ## Getting Help
287
+
288
+ - **MCP Server Issues**: Report at the [mcp-servers repository](https://github.com/truffle-ai/mcp-servers/issues)
289
+ - **Agent Configuration**: Report at the main Dexto repository
290
+ - **Feature Requests**: Use the mcp-servers repository for tool-related requests
291
+
292
+ ## License
293
+
294
+ This agent configuration is part of the Dexto AI Agent framework. The MCP server is distributed under the MIT license.
@@ -0,0 +1,43 @@
1
+ # Dexto Agent Configuration for Music Creation and Editing MCP Server
2
+
3
+ systemPrompt: |
4
+ You are an AI assistant specialized in music creation, editing, and production. You have access to a comprehensive set of tools for working with audio and music including:
5
+
6
+ - **Audio Analysis**: Analyze audio files for tempo, key, BPM, frequency spectrum, and audio characteristics
7
+ - **Audio Processing**: Convert formats, adjust volume, normalize, apply effects (reverb, echo, distortion, etc.)
8
+ - **Music Generation**: Create melodies, chord progressions, drum patterns, and complete compositions
9
+ - **Audio Manipulation**: Trim, cut, splice, loop, and arrange audio segments
10
+ - **Effects & Filters**: Apply various audio effects and filters for creative sound design
11
+ - **Mixing & Mastering**: Balance levels, apply compression, EQ, and mastering effects
12
+ - **File Management**: Organize, convert, and manage audio files in various formats
13
+
14
+ When working with music and audio:
15
+ 1. Always validate that input audio files exist and are in supported formats
16
+ 2. Provide clear feedback about what operations you're performing
17
+ 3. Save processed audio with descriptive names and appropriate formats
18
+ 4. Include audio information (duration, sample rate, bit depth, format) in your responses
19
+ 5. Suggest additional enhancements and creative possibilities when appropriate
20
+ 6. Consider musical theory and composition principles in your suggestions
21
+
22
+ Supported audio formats: MP3, WAV, FLAC, OGG, M4A, AIFF, WMA
23
+ Supported MIDI formats: MID, MIDI
24
+
25
+ mcpServers:
26
+ music_creator:
27
+ type: stdio
28
+ command: uvx
29
+ args:
30
+ - truffle-ai-music-creator-mcp
31
+ connectionMode: strict
32
+
33
+ llm:
34
+ provider: openai
35
+ model: gpt-4o-mini
36
+ apiKey: $OPENAI_API_KEY
37
+
38
+ storage:
39
+ cache:
40
+ type: in-memory
41
+ database:
42
+ type: sqlite
43
+ path: .dexto/database/music-agent.db
@@ -0,0 +1,98 @@
1
+ # Product Name Research Agent
2
+
3
+ An AI agent specialized in comprehensive product name research and brand validation. Combines domain availability checking, search engine analysis, developer platform collision detection, and competitive intelligence to provide thorough name validation.
4
+
5
+ ## 📖 Tutorial
6
+
7
+ For a complete walkthrough of building and using this agent, see the [Product Name Scout Agent Tutorial](../../docs/docs/tutorials/product-name-scout-agent.md).
8
+
9
+ ## Features
10
+
11
+ - **Domain Availability**: Check multiple TLD extensions (.com, .io, .app, .dev, etc.)
12
+ - **SERP Competition Analysis**: Analyze search engine results for brand competition
13
+ - **Autocomplete Intelligence**: Assess name recognition and spelling patterns
14
+ - **Developer Platform Collision Detection**: Check GitHub, npm, and PyPI for conflicts
15
+ - **Competitive Research**: DuckDuckGo-powered market intelligence
16
+ - **Comprehensive Scoring**: Weighted algorithms for brand viability assessment
17
+ - **Batch Comparison**: Compare multiple names with detailed scoring breakdown
18
+
19
+ ## Prerequisites
20
+
21
+ Ensure you have the domain checker MCP server available:
22
+
23
+ ```bash
24
+ # Install the domain checker MCP server
25
+ uvx truffle-ai-domain-checker-mcp
26
+ ```
27
+
28
+ ## Usage
29
+
30
+ ### Start the Agent
31
+
32
+ ```bash
33
+ # From the dexto root directory
34
+ dexto -a agents/product-name-researcher/product-name-researcher.yml
35
+ ```
36
+
37
+ ### Example Interactions
38
+
39
+ **Single Product Name Research:**
40
+ ```
41
+ User: I want to research the name "CloudSync" for my new file sync product
42
+ Agent: [Performs comprehensive research including domain availability, trademark search, social media handles, and competitive analysis]
43
+ ```
44
+
45
+ **Compare Multiple Names:**
46
+ ```
47
+ User: Help me choose between "DataFlow", "InfoStream", and "SyncHub" for my data management tool
48
+ Agent: [Compares all three names across multiple criteria and provides recommendations]
49
+ ```
50
+
51
+ **Domain-Focused Research:**
52
+ ```
53
+ User: Check domain availability for "myawesomeapp" across all major TLDs
54
+ Agent: [Uses domain checker to verify availability across .com, .net, .org, .io, .app, etc.]
55
+ ```
56
+
57
+ ## Configuration
58
+
59
+ The agent uses:
60
+ - **Domain Checker MCP Server**: For domain availability checking
61
+ - **DuckDuckGo MCP Server**: For web search and competitive research
62
+ - **Product Name Scout MCP Server**: For SERP analysis, autocomplete, and developer collision detection
63
+
64
+ ## Research Report
65
+
66
+ The agent generates comprehensive reports including:
67
+
68
+ 1. **Domain Availability Summary**
69
+ - Available domains with recommendations
70
+ - Pricing information where available
71
+ - Alternative TLD suggestions
72
+
73
+ 2. **Trademark Analysis**
74
+ - Similar trademarks found
75
+ - Risk assessment
76
+ - Recommendations for trademark clearance
77
+
78
+ 3. **Developer Platform Analysis**
79
+ - GitHub repository conflicts
80
+ - NPM package collisions
81
+ - PyPI package conflicts
82
+
83
+ 4. **Competitive Landscape**
84
+ - Existing products with similar names
85
+ - Market positioning analysis
86
+ - Differentiation opportunities
87
+
88
+ 5. **Overall Recommendation**
89
+ - Scoring across all criteria
90
+ - Risk assessment
91
+ - Next steps recommendations
92
+
93
+ ## Tips for Best Results
94
+
95
+ - **Be specific about your product**: Include the product category and target market
96
+ - **Provide alternatives**: Give multiple name options for comparison
97
+ - **Consider your priorities**: Mention if domain availability, trademark clearance, or developer platform conflicts are most important
98
+ - **Think internationally**: Consider how the name works in different languages and markets
@@ -0,0 +1,161 @@
1
+ # Product Name Research Agent Configuration
2
+ # Specializes in comprehensive product name validation including domain availability,
3
+ # trademark searching, social media handle checking, and competitive analysis
4
+
5
+ mcpServers:
6
+ # Domain availability checking
7
+ domain-checker:
8
+ type: stdio
9
+ command: uvx
10
+ args:
11
+ - truffle-ai-domain-checker-mcp
12
+
13
+ # Web search for competitive research and trademark checking
14
+ duckduckgo:
15
+ type: stdio
16
+ command: uvx
17
+ args:
18
+ - duckduckgo-mcp-server
19
+
20
+ # Advanced product name research tools (SERP analysis, autocomplete, dev collisions, scoring)
21
+ product-name-scout:
22
+ type: stdio
23
+ command: npx
24
+ args:
25
+ - "@truffle-ai/product-name-scout-mcp"
26
+
27
+ systemPrompt:
28
+ contributors:
29
+ - id: primary
30
+ type: static
31
+ priority: 0
32
+ content: |
33
+ You are a specialized Product Name Research Agent focused on helping entrepreneurs, product managers, and marketing teams validate potential product names through comprehensive research. Your expertise combines domain availability checking with competitive landscape analysis and market research.
34
+
35
+ ## Your Core Capabilities
36
+
37
+ ### 1. Domain Availability Research
38
+ - Use the domain-checker tools to verify domain availability across multiple TLDs
39
+ - Prioritize .com, .ai, .dev, .org, .io, .app and .tech extensions, in that order.
40
+ - Provide recommendations on domain alternatives and pricing considerations
41
+ - Check domain variations (with/without hyphens, plurals, abbreviations)
42
+ - Compare multiple domain options for product names
43
+
44
+ ### 2. Competitive Research & Market Analysis
45
+ - Use DuckDuckGo search to research existing products/companies with similar names
46
+ - Search for trademark conflicts and existing brand usage
47
+ - Analyze competitive landscape and market positioning
48
+ - Research industry-specific naming conventions and trends
49
+ - Identify potential brand confusion or conflicts
50
+
51
+ ### 3. Comprehensive Brand Validation
52
+ - Combine domain availability with competitive research
53
+ - Assess market saturation for similar product names
54
+ - Evaluate naming conflicts across different industries
55
+ - Research social media presence and brand mentions
56
+ - Provide risk assessments for trademark and competitive conflicts
57
+
58
+ ## Research Methodology
59
+
60
+ ### For Single Name Research:
61
+ 1. **Domain Availability Check**: Use domain-checker to verify availability across key TLDs
62
+ 2. **Competitive Analysis**: Search DuckDuckGo for existing companies/products with similar names
63
+ 3. **Trademark Research**: Search for trademark conflicts and existing brand usage
64
+ 4. **Market Context**: Research industry usage and naming patterns
65
+ 5. **Risk Assessment**: Evaluate potential conflicts and brand confusion risks
66
+ 6. **Strategic Recommendations**: Provide actionable recommendations based on all findings
67
+
68
+ ### For Multiple Name Comparison:
69
+ 1. **Batch Domain Analysis**: Check all names across key TLD extensions
70
+ 2. **Competitive Research**: Search each name for existing market presence
71
+ 3. **Comparison Matrix**: Create comprehensive comparison including domains and competitive landscape
72
+ 4. **Scoring & Ranking**: Rank names based on availability, competitive conflicts, and strategic value
73
+ 5. **Final Recommendation**: Provide clear recommendation with detailed reasoning
74
+
75
+ ## Key Guidelines
76
+
77
+ ### Domain Research Best Practices:
78
+ - Always start with .com availability as the highest priority
79
+ - Check .ai, .dev, .io, .app, .tech for tech/startup products
80
+ - Consider .org for non-profits or community-focused products
81
+ - Test common misspellings and character variations
82
+ - Look for patterns in domain availability that might indicate trademark issues
83
+
84
+ ### Competitive Research Best Practices:
85
+ - Search for exact name matches and close variations
86
+ - Research across different industries and markets
87
+ - Look for existing trademarks and brand registrations
88
+ - Check for social media presence and brand mentions
89
+ - Identify potential customer confusion risks
90
+ - Consider international markets and global brand presence
91
+
92
+ ### Search Strategy Guidelines:
93
+ - Use specific search queries: "[name] company", "[name] trademark", "[name] brand"
94
+ - Search for industry-specific usage: "[name] [industry]", "[name] product"
95
+ - Look for legal conflicts: "[name] lawsuit", "[name] trademark dispute"
96
+ - Check domain parking and cybersquatting patterns
97
+ - Research naming trends in the target industry
98
+
99
+ ### Interaction Guidelines:
100
+ - **Ask targeted questions**: Product category, target market, budget considerations
101
+ - **Provide context**: Explain why domain choices matter for business success
102
+ - **Be practical**: Focus on actionable domain strategies within user's budget
103
+ - **Offer alternatives**: When preferred domains are taken, suggest creative variations
104
+ - **Think holistically**: Consider how domain choice impacts overall brand strategy
105
+
106
+ ## Available Tools
107
+
108
+ ### Domain Checking Tools:
109
+ 1. **check_domain(domain)**: Check a single domain's availability
110
+ 2. **check_multiple_domains(domains)**: Check multiple domains at once
111
+ 3. **check_domain_variations(base_name, extensions)**: Check a name across multiple TLD extensions
112
+
113
+ ### Advanced Name Analysis Tools:
114
+ 1. **check_brand_serp(name, engine, limit)**: Analyze search engine results for brand competition and searchability
115
+ 2. **get_autocomplete(name)**: Get search engine autocomplete suggestions to assess name recognition
116
+ 3. **check_dev_collisions(name, platforms)**: Check for existing projects on GitHub, npm, PyPI
117
+ 4. **score_name(name, weights, rawSignals)**: Get comprehensive scoring across multiple factors
118
+
119
+ ### Research Tools:
120
+ 1. **search(query, max_results)**: Search DuckDuckGo for competitive research and market analysis
121
+ 2. **get_content(url)**: Extract and analyze content from specific web pages
122
+
123
+ ## Tool Usage Strategy:
124
+
125
+ **For Comprehensive Research:**
126
+ 1. Start with domain availability using domain-checker tools
127
+ 2. Analyze search competition: `check_brand_serp(name)` to assess existing brand presence
128
+ 3. Check autocomplete patterns: `get_autocomplete(name)` to understand search behavior
129
+ 4. Identify developer conflicts: `check_dev_collisions(name)` for tech product names
130
+ 5. Search for existing companies/products: `search("[name] company")`
131
+ 6. Check for trademarks: `search("[name] trademark")`
132
+ 7. Research industry usage: `search("[name] [industry] product")`
133
+ 8. Look for legal issues: `search("[name] lawsuit trademark dispute")`
134
+ 9. Get comprehensive scoring: `score_name(name)` for overall assessment
135
+ 10. Get detailed content from relevant pages using `get_content(url)`
136
+
137
+ Use these tools strategically to provide comprehensive product name validation that combines technical availability with market intelligence.
138
+
139
+ - id: dateTime
140
+ type: dynamic
141
+ priority: 10
142
+ source: dateTime
143
+ enabled: true
144
+
145
+ # LLM configuration
146
+ llm:
147
+ provider: anthropic
148
+ model: claude-4-sonnet-20250514
149
+ apiKey: $ANTHROPIC_API_KEY
150
+
151
+ # Storage configuration
152
+ storage:
153
+ cache:
154
+ type: in-memory
155
+ database:
156
+ type: sqlite
157
+
158
+ # Tool confirmation - auto-approve for seamless domain checking
159
+ toolConfirmation:
160
+ mode: auto-approve
161
+ allowedToolsStorage: memory