@kernel.chat/kbot 3.58.0 → 3.59.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 (48) hide show
  1. package/README.md +4 -4
  2. package/dist/agent.d.ts +2 -0
  3. package/dist/agent.d.ts.map +1 -1
  4. package/dist/agent.js +14 -8
  5. package/dist/agent.js.map +1 -1
  6. package/dist/agents/replit.js +1 -1
  7. package/dist/bootstrap.js +1 -1
  8. package/dist/integrations/ableton-live.d.ts +52 -0
  9. package/dist/integrations/ableton-live.d.ts.map +1 -0
  10. package/dist/integrations/ableton-live.js +239 -0
  11. package/dist/integrations/ableton-live.js.map +1 -0
  12. package/dist/integrations/ableton-osc-installer.d.ts +13 -0
  13. package/dist/integrations/ableton-osc-installer.d.ts.map +1 -0
  14. package/dist/integrations/ableton-osc-installer.js +190 -0
  15. package/dist/integrations/ableton-osc-installer.js.map +1 -0
  16. package/dist/learning.d.ts.map +1 -1
  17. package/dist/learning.js +20 -0
  18. package/dist/learning.js.map +1 -1
  19. package/dist/memory.d.ts +8 -6
  20. package/dist/memory.d.ts.map +1 -1
  21. package/dist/memory.js +42 -23
  22. package/dist/memory.js.map +1 -1
  23. package/dist/memory.test.js +83 -2
  24. package/dist/memory.test.js.map +1 -1
  25. package/dist/serve.d.ts.map +1 -1
  26. package/dist/serve.js +8 -0
  27. package/dist/serve.js.map +1 -1
  28. package/dist/tools/computer.d.ts.map +1 -1
  29. package/dist/tools/computer.js +815 -53
  30. package/dist/tools/computer.js.map +1 -1
  31. package/dist/tools/dj-set-builder.d.ts +2 -0
  32. package/dist/tools/dj-set-builder.d.ts.map +1 -0
  33. package/dist/tools/dj-set-builder.js +432 -0
  34. package/dist/tools/dj-set-builder.js.map +1 -0
  35. package/dist/tools/fetch.d.ts.map +1 -1
  36. package/dist/tools/fetch.js +36 -6
  37. package/dist/tools/fetch.js.map +1 -1
  38. package/dist/tools/files.d.ts.map +1 -1
  39. package/dist/tools/files.js +40 -23
  40. package/dist/tools/files.js.map +1 -1
  41. package/dist/tools/index.d.ts.map +1 -1
  42. package/dist/tools/index.js +2 -0
  43. package/dist/tools/index.js.map +1 -1
  44. package/dist/tools/serum2-preset.d.ts +11 -0
  45. package/dist/tools/serum2-preset.d.ts.map +1 -0
  46. package/dist/tools/serum2-preset.js +143 -0
  47. package/dist/tools/serum2-preset.js.map +1 -0
  48. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"computer.js","sourceRoot":"","sources":["../../src/tools/computer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"computer.js","sourceRoot":"","sources":["../../src/tools/computer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function registerDjSetBuilderTools(): void;
2
+ //# sourceMappingURL=dj-set-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dj-set-builder.d.ts","sourceRoot":"","sources":["../../src/tools/dj-set-builder.ts"],"names":[],"mappings":"AAkSA,wBAAgB,yBAAyB,IAAI,IAAI,CA2NhD"}
@@ -0,0 +1,432 @@
1
+ // kbot DJ Set Builder — Constructs complete DJ sets in Ableton Live
2
+ // Uses M4L devices (genre-morph, hat-machine, dj-fx) + music theory engine
3
+ // to build genre-blending sets from House → Tech House → UK Garage → Trap.
4
+ //
5
+ // Architecture:
6
+ // 1. Creates track layout (drums, hats, bass, pads, fx, master)
7
+ // 2. Programs MIDI clips for each genre section
8
+ // 3. Sets up M4L devices on appropriate tracks
9
+ // 4. Builds arrangement with transitions
10
+ // 5. Configures mixer (volumes, sends, panning)
11
+ import { registerTool } from './index.js';
12
+ import { ensureAbleton } from '../integrations/ableton-osc.js';
13
+ import { parseProgression, } from './music-theory.js';
14
+ const GENRE_SECTIONS = {
15
+ house: {
16
+ name: 'House',
17
+ bpm: 124,
18
+ key: 'C',
19
+ scale: 'natural_minor',
20
+ bars: 128, // ~4 min at 124 BPM
21
+ progression: 'i bVII bVI bVII', // deep house vamp
22
+ bassOctave: 2,
23
+ padVoicing: 'open',
24
+ drumStyle: 'house',
25
+ hatStyle: 0,
26
+ hatDensity: 0.4,
27
+ swing: 0.0,
28
+ },
29
+ tech_house: {
30
+ name: 'Tech House',
31
+ bpm: 126,
32
+ key: 'C',
33
+ scale: 'natural_minor',
34
+ bars: 128, // ~4 min at 126 BPM
35
+ progression: 'i bVII', // minimal two-chord
36
+ bassOctave: 2,
37
+ padVoicing: 'close',
38
+ drumStyle: 'tech_house',
39
+ hatStyle: 1,
40
+ hatDensity: 0.55,
41
+ swing: 0.15,
42
+ },
43
+ uk_garage: {
44
+ name: 'UK Garage',
45
+ bpm: 132,
46
+ key: 'F',
47
+ scale: 'natural_minor',
48
+ bars: 128, // ~4 min at 132 BPM
49
+ progression: 'i bVII bVI V', // garage classic
50
+ bassOctave: 2,
51
+ padVoicing: 'spread',
52
+ drumStyle: 'uk_garage',
53
+ hatStyle: 2,
54
+ hatDensity: 0.5,
55
+ swing: 0.25,
56
+ },
57
+ trap: {
58
+ name: 'Trap',
59
+ bpm: 140,
60
+ key: 'F',
61
+ scale: 'natural_minor',
62
+ bars: 176, // ~5 min at 140 BPM — trap gets the longest section
63
+ progression: 'i bVI bVII i', // dark trap
64
+ bassOctave: 1,
65
+ padVoicing: 'spread',
66
+ drumStyle: 'trap',
67
+ hatStyle: 3,
68
+ hatDensity: 0.7,
69
+ swing: 0.0,
70
+ },
71
+ };
72
+ const TRANSITIONS = {
73
+ house_to_tech: {
74
+ bars: 8,
75
+ technique: 'filter_sweep',
76
+ description: 'LP filter sweep down on house, bring in tech drums, HP filter sweep up to reveal',
77
+ },
78
+ tech_to_garage: {
79
+ bars: 8,
80
+ technique: 'breakdown',
81
+ description: 'Strip to just hats + reverb wash, switch kick pattern to 2-step, drop the bass',
82
+ },
83
+ garage_to_trap: {
84
+ bars: 8,
85
+ technique: 'build_drop',
86
+ description: 'HP riser, snare roll build, silence beat, drop into half-time trap with 808',
87
+ },
88
+ };
89
+ // ─── Drum Pattern Data ─────────────────────────────────────────────
90
+ // 16-step patterns for each genre (kick, snare/clap, hats)
91
+ const DRUM_PATTERNS = {
92
+ house: {
93
+ kick: makeKickPattern([0, 1, 2, 3], 100), // 4 on the floor
94
+ snare: makeSnarePattern([1, 3], 90), // clap on 2 & 4
95
+ hat: makeHatPattern([0.5, 1.5, 2.5, 3.5], 80), // offbeat 8ths
96
+ },
97
+ tech_house: {
98
+ kick: makeKickPattern([0, 1, 2, 3], 100),
99
+ snare: makeSnarePattern([1, 3], 85, [1.75, 3.75], 45), // with ghosts
100
+ hat: makeHatPattern([0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5], 75), // straight 8ths
101
+ },
102
+ uk_garage: {
103
+ kick: makeKickPattern([0, 1.5, 2.5], 100), // 2-step
104
+ snare: makeSnarePattern([1, 3], 95),
105
+ hat: makeHatPattern([0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5], 80),
106
+ },
107
+ trap: {
108
+ kick: makeKickPattern([0, 2.75], 110), // sparse 808
109
+ snare: makeSnarePattern([2], 120), // snare on 3 (half-time)
110
+ hat: makeTrapHats(), // 16th rolls with accents
111
+ },
112
+ };
113
+ // ─── Pattern Builders ──────────────────────────────────────────────
114
+ function makeKickPattern(beats, velocity) {
115
+ return beats.map(b => ({
116
+ pitch: 36, // C1 kick
117
+ start: b,
118
+ duration: 0.25,
119
+ velocity,
120
+ }));
121
+ }
122
+ function makeSnarePattern(beats, velocity, ghosts, ghostVel) {
123
+ const notes = beats.map(b => ({
124
+ pitch: 39, // D#1 clap
125
+ start: b,
126
+ duration: 0.25,
127
+ velocity,
128
+ }));
129
+ if (ghosts && ghostVel) {
130
+ for (const g of ghosts) {
131
+ notes.push({ pitch: 38, start: g, duration: 0.125, velocity: ghostVel });
132
+ }
133
+ }
134
+ return notes;
135
+ }
136
+ function makeHatPattern(beats, velocity) {
137
+ return beats.map((b, i) => ({
138
+ pitch: 42, // F#1 closed hat
139
+ start: b,
140
+ duration: 0.125,
141
+ velocity: velocity + (i % 2 === 0 ? 10 : -10), // accent pattern
142
+ }));
143
+ }
144
+ function makeTrapHats() {
145
+ const notes = [];
146
+ // Full 16th notes with velocity variation for trap feel
147
+ for (let i = 0; i < 16; i++) {
148
+ const beat = i * 0.25;
149
+ // Accent on downbeats, medium on upbeats, light on e's and a's
150
+ let vel;
151
+ if (i % 4 === 0)
152
+ vel = 100; // downbeat accent
153
+ else if (i % 4 === 2)
154
+ vel = 85; // upbeat
155
+ else if (i % 2 === 0)
156
+ vel = 75; // "and"
157
+ else
158
+ vel = 65; // "e" and "a"
159
+ notes.push({ pitch: 42, start: beat, duration: 0.0625, velocity: vel });
160
+ }
161
+ // Open hat at end
162
+ notes.push({ pitch: 46, start: 3.75, duration: 0.25, velocity: 80 });
163
+ return notes;
164
+ }
165
+ // ─── Bass Pattern Builders ─────────────────────────────────────────
166
+ function makeBassLine(key, scale, progression, octave, genre) {
167
+ const chords = parseProgression(progression, key, scale, octave);
168
+ const notes = [];
169
+ const beatsPerChord = 4; // 1 bar per chord
170
+ for (let ci = 0; ci < chords.length; ci++) {
171
+ const root = chords[ci][0]; // bass plays root
172
+ const startBeat = ci * beatsPerChord;
173
+ if (genre === 'house' || genre === 'tech_house') {
174
+ // Pumping bass: 8th notes with short-long pattern
175
+ for (let i = 0; i < 8; i++) {
176
+ notes.push({
177
+ pitch: root,
178
+ start: startBeat + i * 0.5,
179
+ duration: i % 2 === 0 ? 0.3 : 0.45,
180
+ velocity: i % 2 === 0 ? 95 : 75,
181
+ });
182
+ }
183
+ }
184
+ else if (genre === 'uk_garage') {
185
+ // Syncopated garage bass
186
+ notes.push({ pitch: root, start: startBeat, duration: 0.75, velocity: 100 });
187
+ notes.push({ pitch: root, start: startBeat + 1.5, duration: 0.5, velocity: 85 });
188
+ notes.push({ pitch: root + 12, start: startBeat + 2.5, duration: 0.5, velocity: 90 });
189
+ notes.push({ pitch: root, start: startBeat + 3, duration: 0.75, velocity: 80 });
190
+ }
191
+ else if (genre === 'trap') {
192
+ // 808 bass: long sustain, slides
193
+ notes.push({ pitch: root, start: startBeat, duration: 2, velocity: 110 });
194
+ notes.push({ pitch: root + 12, start: startBeat + 2.75, duration: 1, velocity: 95 });
195
+ }
196
+ }
197
+ return notes;
198
+ }
199
+ // ─── Pad/Chord Pattern Builder ─────────────────────────────────────
200
+ function makePadChords(key, scale, progression, octave) {
201
+ const chords = parseProgression(progression, key, scale, octave + 1); // pads one octave up
202
+ const notes = [];
203
+ const beatsPerChord = 4;
204
+ for (let ci = 0; ci < chords.length; ci++) {
205
+ const chord = chords[ci];
206
+ const startBeat = ci * beatsPerChord;
207
+ // Whole-note pads
208
+ for (const pitch of chord) {
209
+ notes.push({
210
+ pitch,
211
+ start: startBeat,
212
+ duration: beatsPerChord - 0.1,
213
+ velocity: 70,
214
+ });
215
+ }
216
+ }
217
+ return notes;
218
+ }
219
+ function buildSetStructure() {
220
+ // 20-minute set: ~660 bars total across 4 genres + transitions
221
+ // Each genre ~4 min, transitions ~30 sec, intro/outro ~30 sec
222
+ return [
223
+ { type: 'intro', bars: 16, bpm: 124, description: 'Filtered intro — hats + filter opening (~30 sec)' },
224
+ { type: 'genre', genre: 'house', bars: 128, bpm: 124, description: 'Classic house — 4-on-floor, deep bass, open pads (~4 min)' },
225
+ { type: 'transition', transitionId: 'house_to_tech', bars: 16, bpm: 125, description: 'House → Tech House via filter sweep (~30 sec)' },
226
+ { type: 'genre', genre: 'tech_house', bars: 128, bpm: 126, description: 'Minimal tech — driving, percussive, groovy (~4 min)' },
227
+ { type: 'transition', transitionId: 'tech_to_garage', bars: 16, bpm: 129, description: 'Tech → Garage via breakdown (~30 sec)' },
228
+ { type: 'genre', genre: 'uk_garage', bars: 128, bpm: 132, description: 'UK Garage — 2-step, shuffled, deep sub (~4 min)' },
229
+ { type: 'transition', transitionId: 'garage_to_trap', bars: 16, bpm: 136, description: 'Garage → Trap via build + drop (~30 sec)' },
230
+ { type: 'genre', genre: 'trap', bars: 176, bpm: 140, description: 'Half-time trap — 808, hat rolls, dark (~5 min)' },
231
+ { type: 'outro', bars: 16, bpm: 140, description: 'Outro — strip to reverb tail, filter down (~30 sec)' },
232
+ ];
233
+ }
234
+ // ─── Tool Registration ─────────────────────────────────────────────
235
+ export function registerDjSetBuilderTools() {
236
+ registerTool({
237
+ name: 'dj_set_build',
238
+ description: `Build a complete DJ set in Ableton Live that flows through House → Tech House → UK Garage → Trap.
239
+ Creates tracks, programs MIDI clips for drums/bass/pads per genre section, and sets up transitions.
240
+ Requires Ableton Live with AbletonOSC running.`,
241
+ parameters: {
242
+ sections: {
243
+ type: 'string',
244
+ description: 'Comma-separated genre sections to include: "house,tech_house,uk_garage,trap" (default: all)',
245
+ },
246
+ bars_per_section: {
247
+ type: 'number',
248
+ description: 'Bars per genre section (default: 32)',
249
+ },
250
+ key: {
251
+ type: 'string',
252
+ description: 'Musical key for the set (default: "C")',
253
+ },
254
+ },
255
+ tier: 'free',
256
+ timeout: 60_000,
257
+ async execute(args) {
258
+ const osc = await ensureAbleton();
259
+ const key = String(args.key || 'C');
260
+ const barsPerSection = Number(args.bars_per_section || 32);
261
+ const requestedSections = args.sections
262
+ ? String(args.sections).split(',').map(s => s.trim())
263
+ : ['house', 'tech_house', 'uk_garage', 'trap'];
264
+ const results = [];
265
+ results.push(`🎛 Building DJ Set: ${requestedSections.map(s => GENRE_SECTIONS[s]?.name || s).join(' → ')}`);
266
+ results.push(`Key: ${key} minor | Bars/section: ${barsPerSection}`);
267
+ results.push('');
268
+ // 1. Set initial tempo
269
+ const firstGenre = GENRE_SECTIONS[requestedSections[0]];
270
+ if (firstGenre) {
271
+ osc.send('/live/song/set/tempo', firstGenre.bpm);
272
+ results.push(`⏱ Tempo: ${firstGenre.bpm} BPM`);
273
+ }
274
+ // 2. Create tracks
275
+ const trackNames = ['Drums', 'Hi-Hats', 'Bass', 'Pads', 'FX/Riser'];
276
+ results.push('');
277
+ results.push('📐 Track Layout:');
278
+ for (let i = 0; i < trackNames.length; i++) {
279
+ try {
280
+ osc.send('/live/song/create_midi_track', i);
281
+ results.push(` Track ${i + 1}: ${trackNames[i]}`);
282
+ }
283
+ catch {
284
+ results.push(` Track ${i + 1}: ${trackNames[i]} (may already exist)`);
285
+ }
286
+ }
287
+ // 3. Program clips for each section
288
+ results.push('');
289
+ results.push('🎵 Programming clips:');
290
+ let sceneIdx = 0;
291
+ for (const sectionId of requestedSections) {
292
+ const section = GENRE_SECTIONS[sectionId];
293
+ if (!section) {
294
+ results.push(` ⚠ Unknown genre: ${sectionId}`);
295
+ continue;
296
+ }
297
+ // Override key if specified
298
+ const sectionKey = key || section.key;
299
+ // Get patterns
300
+ const drums = DRUM_PATTERNS[sectionId];
301
+ const bassNotes = makeBassLine(sectionKey, section.scale, section.progression, section.bassOctave, sectionId);
302
+ const padNotes = makePadChords(sectionKey, section.scale, section.progression, 3);
303
+ // Calculate clip length based on chord count
304
+ const chordCount = section.progression.trim().split(/\s+/).length;
305
+ const clipBars = chordCount; // 1 bar per chord
306
+ const clipBeats = clipBars * 4;
307
+ results.push(` ${section.name} (${section.bpm} BPM, ${clipBars} bars):`);
308
+ // Create scene
309
+ try {
310
+ osc.send('/live/song/create_scene', sceneIdx);
311
+ }
312
+ catch { /* scene may exist */ }
313
+ // Drums clip (track 0)
314
+ if (drums) {
315
+ try {
316
+ osc.send('/live/clip_slot/create_clip', 0, sceneIdx, clipBeats);
317
+ // Add drum notes
318
+ const allDrumNotes = [...drums.kick, ...drums.snare, ...drums.hat];
319
+ // Repeat pattern to fill clip
320
+ const repeatedNotes = [];
321
+ for (let bar = 0; bar < clipBars; bar++) {
322
+ for (const note of allDrumNotes) {
323
+ repeatedNotes.push({
324
+ ...note,
325
+ start: note.start + bar * 4,
326
+ });
327
+ }
328
+ }
329
+ // Send notes via OSC
330
+ for (const note of repeatedNotes) {
331
+ osc.send('/live/clip/add/notes', 0, sceneIdx, note.pitch, note.start, note.duration, note.velocity, 0);
332
+ }
333
+ results.push(` Drums: ${repeatedNotes.length} notes (kick + snare + hat)`);
334
+ }
335
+ catch (e) {
336
+ results.push(` Drums: error — ${e}`);
337
+ }
338
+ }
339
+ // Bass clip (track 2)
340
+ try {
341
+ osc.send('/live/clip_slot/create_clip', 2, sceneIdx, clipBeats);
342
+ for (const note of bassNotes) {
343
+ osc.send('/live/clip/add/notes', 2, sceneIdx, note.pitch, note.start, note.duration, note.velocity, 0);
344
+ }
345
+ results.push(` Bass: ${bassNotes.length} notes (${sectionId} style)`);
346
+ }
347
+ catch (e) {
348
+ results.push(` Bass: error — ${e}`);
349
+ }
350
+ // Pads clip (track 3)
351
+ try {
352
+ osc.send('/live/clip_slot/create_clip', 3, sceneIdx, clipBeats);
353
+ for (const note of padNotes) {
354
+ osc.send('/live/clip/add/notes', 3, sceneIdx, note.pitch, note.start, note.duration, note.velocity, 0);
355
+ }
356
+ results.push(` Pads: ${padNotes.length} notes (${section.progression})`);
357
+ }
358
+ catch (e) {
359
+ results.push(` Pads: error — ${e}`);
360
+ }
361
+ sceneIdx++;
362
+ }
363
+ // 4. Summary
364
+ const totalBars = requestedSections.reduce((sum, s) => sum + (GENRE_SECTIONS[s]?.bars || 32), 0);
365
+ const startBpm = GENRE_SECTIONS[requestedSections[0]]?.bpm || 124;
366
+ const endBpm = GENRE_SECTIONS[requestedSections[requestedSections.length - 1]]?.bpm || 140;
367
+ results.push('');
368
+ results.push('─'.repeat(50));
369
+ results.push(`✅ DJ Set Built:`);
370
+ results.push(` ${requestedSections.length} genre sections`);
371
+ results.push(` ${totalBars} total bars`);
372
+ results.push(` ${startBpm} → ${endBpm} BPM`);
373
+ results.push(` ${sceneIdx} scenes created`);
374
+ results.push('');
375
+ results.push('🎚 Next steps:');
376
+ results.push(' 1. Load a Drum Rack on track 1 (Drums)');
377
+ results.push(' 2. Add kbot Genre Morph M4L device before the Drum Rack');
378
+ results.push(' 3. Add kbot Hat Machine on track 2 (Hi-Hats)');
379
+ results.push(' 4. Load a bass synth on track 3 (Bass)');
380
+ results.push(' 5. Load a pad synth on track 4 (Pads)');
381
+ results.push(' 6. Add kbot DJ FX on the Master track');
382
+ results.push(' 7. Fire Scene 1 and start morphing!');
383
+ return results.join('\n');
384
+ },
385
+ });
386
+ registerTool({
387
+ name: 'dj_set_info',
388
+ description: 'Show the DJ set structure and genre flow for a House → Tech House → UK Garage → Trap set.',
389
+ parameters: {},
390
+ tier: 'free',
391
+ timeout: 5_000,
392
+ async execute() {
393
+ const structure = buildSetStructure();
394
+ const lines = [
395
+ '🎛 DJ Set Structure: House → Tech House → UK Garage → Trap',
396
+ '═'.repeat(55),
397
+ '',
398
+ ];
399
+ let totalBars = 0;
400
+ for (const section of structure) {
401
+ totalBars += section.bars;
402
+ const icon = section.type === 'genre' ? '🎵'
403
+ : section.type === 'transition' ? '🔀'
404
+ : section.type === 'intro' ? '🎬'
405
+ : '🏁';
406
+ lines.push(`${icon} ${section.description}`);
407
+ lines.push(` ${section.bars} bars @ ${section.bpm} BPM`);
408
+ lines.push('');
409
+ }
410
+ // Calculate total time (approximate, since BPM changes)
411
+ const avgBpm = 131; // rough average
412
+ const totalBeats = totalBars * 4;
413
+ const totalMinutes = totalBeats / avgBpm;
414
+ lines.push('─'.repeat(55));
415
+ lines.push(`Total: ${totalBars} bars | ~${Math.round(totalMinutes)} minutes`);
416
+ lines.push(`BPM range: 124 → 140`);
417
+ lines.push('');
418
+ lines.push('Genre Characteristics:');
419
+ lines.push(' House (124): 4-on-floor, offbeat hats, pumping bass');
420
+ lines.push(' Tech House (126): Minimal, shuffled, percussive');
421
+ lines.push(' UK Garage (132): 2-step, skippy, deep sub');
422
+ lines.push(' Trap (140): Half-time, 808, hat rolls');
423
+ lines.push('');
424
+ lines.push('M4L Devices:');
425
+ lines.push(' kbot-genre-morph: Auto-morphs drum patterns between genres');
426
+ lines.push(' kbot-hat-machine: Genre-specific hat patterns with roll mode');
427
+ lines.push(' kbot-dj-fx: Filter, echo, reverb, stutter, brake/riser');
428
+ return lines.join('\n');
429
+ },
430
+ });
431
+ }
432
+ //# sourceMappingURL=dj-set-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dj-set-builder.js","sourceRoot":"","sources":["../../src/tools/dj-set-builder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/tools/fetch.ts"],"names":[],"mappings":"AA+CA,wBAAgB,kBAAkB,IAAI,IAAI,CAsEzC"}
1
+ {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/tools/fetch.ts"],"names":[],"mappings":"AA6EA,wBAAgB,kBAAkB,IAAI,IAAI,CAuEzC"}
@@ -1,9 +1,10 @@
1
1
  // kbot Fetch Tool — URL content fetching with SSRF protection
2
2
  // Fetches web content and strips HTML → plain text.
3
+ // DNS rebinding defense: resolves hostname → IP before fetching, then checks the IP.
4
+ import { lookup } from 'node:dns/promises';
3
5
  import { registerTool } from './index.js';
4
- /** Private/reserved IP patterns — block SSRF */
5
- const BLOCKED_HOSTS = [
6
- /^localhost$/i,
6
+ /** Private/reserved IP patterns — block SSRF (applied to resolved IPs, not just hostnames) */
7
+ const BLOCKED_IP_PATTERNS = [
7
8
  /^127\.\d+\.\d+\.\d+$/,
8
9
  /^10\.\d+\.\d+\.\d+$/,
9
10
  /^172\.(1[6-9]|2\d|3[01])\.\d+\.\d+$/,
@@ -13,10 +14,38 @@ const BLOCKED_HOSTS = [
13
14
  /^fd[0-9a-f]{2}:/i,
14
15
  /^fe80:/i,
15
16
  /^169\.254\.\d+\.\d+$/,
17
+ ];
18
+ const BLOCKED_HOSTNAMES = [
19
+ /^localhost$/i,
16
20
  /\.local$/i,
17
21
  ];
22
+ function isBlockedIP(ip) {
23
+ return BLOCKED_IP_PATTERNS.some(p => p.test(ip));
24
+ }
18
25
  function isBlockedHost(hostname) {
19
- return BLOCKED_HOSTS.some(p => p.test(hostname));
26
+ return BLOCKED_HOSTNAMES.some(p => p.test(hostname));
27
+ }
28
+ /** Resolve hostname to IP and check against blocked ranges (DNS rebinding defense) */
29
+ async function checkHostSSRF(hostname) {
30
+ // Check hostname patterns first (localhost, .local)
31
+ if (isBlockedHost(hostname))
32
+ return 'Blocked host (private/reserved)';
33
+ // If it's already an IP literal, check directly
34
+ if (/^\d+\.\d+\.\d+\.\d+$/.test(hostname) || hostname.includes(':')) {
35
+ if (isBlockedIP(hostname))
36
+ return 'Blocked host (private/reserved IP range)';
37
+ return null;
38
+ }
39
+ // Resolve DNS and check the actual IP
40
+ try {
41
+ const { address } = await lookup(hostname);
42
+ if (isBlockedIP(address))
43
+ return `Blocked: ${hostname} resolves to private IP ${address}`;
44
+ }
45
+ catch {
46
+ // DNS resolution failed — let fetch handle it (could be a valid host we can't resolve locally)
47
+ }
48
+ return null;
20
49
  }
21
50
  /** Strip HTML tags and decode entities → plain text */
22
51
  function htmlToText(html) {
@@ -62,8 +91,9 @@ export function registerFetchTools() {
62
91
  if (!['http:', 'https:'].includes(parsed.protocol)) {
63
92
  return `Error: Only http/https URLs are supported`;
64
93
  }
65
- if (isBlockedHost(parsed.hostname)) {
66
- return `Error: Blocked host (private/reserved IP range)`;
94
+ const ssrfBlock = await checkHostSSRF(parsed.hostname);
95
+ if (ssrfBlock) {
96
+ return `Error: ${ssrfBlock}`;
67
97
  }
68
98
  try {
69
99
  const controller = new AbortController();
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/tools/fetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/tools/fetch.ts"],"names":[],"mappings":"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"}