roon-mcp 0.1.0 → 0.2.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/CHANGELOG.md +19 -0
- package/README.md +47 -11
- package/dist/RoonMcpServer.d.ts +3 -1
- package/dist/RoonMcpServer.js +215 -39
- package/dist/RoonMcpServer.js.map +1 -1
- package/dist/SearchService.d.ts +12 -0
- package/dist/SearchService.js +63 -1
- package/dist/SearchService.js.map +1 -1
- package/dist/SearchService.test.js +79 -4
- package/dist/SearchService.test.js.map +1 -1
- package/dist/TransportService.d.ts +64 -0
- package/dist/TransportService.js +216 -0
- package/dist/TransportService.js.map +1 -0
- package/dist/TransportService.test.d.ts +1 -0
- package/dist/TransportService.test.js +253 -0
- package/dist/TransportService.test.js.map +1 -0
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +37 -0
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchService.js","sourceRoot":"","sources":["../src/SearchService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SearchService.js","sourceRoot":"","sources":["../src/SearchService.ts"],"names":[],"mappings":"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"}
|
|
@@ -162,10 +162,85 @@ test("includeStreaming samples a track mix across genre-relevant albums", async
|
|
|
162
162
|
}));
|
|
163
163
|
assert.ok(albumIndices.size >= 2);
|
|
164
164
|
});
|
|
165
|
-
test("includeStreaming
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
165
|
+
test("includeStreaming for type:artist appends streaming tracks by that artist", async () => {
|
|
166
|
+
// Mirrors the live "Helene Fischer" scenario from issue #2: the artist
|
|
167
|
+
// exists in the library with subtitle "0 Albums", and streaming-side tracks
|
|
168
|
+
// for the same artist surface from a track search. The artist search
|
|
169
|
+
// returns the (empty) library node; the streaming path runs a track search
|
|
170
|
+
// filtered to that artist's subtitle.
|
|
171
|
+
const artists = {
|
|
172
|
+
title: "Artists",
|
|
173
|
+
key: "g:artists",
|
|
174
|
+
items: [{ ...item("Helene Fischer", "a:hf"), subtitle: "0 Albums" }],
|
|
175
|
+
};
|
|
176
|
+
const tracks = {
|
|
177
|
+
title: "Tracks",
|
|
178
|
+
key: "g:tracks",
|
|
179
|
+
items: [
|
|
180
|
+
{ title: "Atemlos durch die Nacht", item_key: "tk:1", subtitle: "Helene Fischer" },
|
|
181
|
+
{ title: "Herzbeben", item_key: "tk:2", subtitle: "Helene Fischer" },
|
|
182
|
+
{ title: "Other Artist Song", item_key: "tk:3", subtitle: "Other Artist" },
|
|
183
|
+
],
|
|
184
|
+
};
|
|
185
|
+
const svc = buildService([artists, tracks]);
|
|
186
|
+
const out = await svc.searchMusic({
|
|
187
|
+
query: "Helene Fischer",
|
|
188
|
+
type: "artist",
|
|
189
|
+
includeStreaming: true,
|
|
190
|
+
});
|
|
191
|
+
// Library artist comes first, then streaming tracks by the same artist.
|
|
192
|
+
// Other-artist entries are filtered out by the subtitle match in
|
|
193
|
+
// collectStreamingArtistTracks.
|
|
194
|
+
assert.equal(out.candidates[0]?.title, "Helene Fischer");
|
|
195
|
+
assert.equal(out.candidates[0]?.sourceGroup, "Artists");
|
|
196
|
+
const streaming = out.candidates.filter((c) => c.sourceGroup === "Streaming");
|
|
197
|
+
assert.equal(streaming.length, 2);
|
|
198
|
+
assert.ok(streaming.every((c) => c.type === "track"));
|
|
199
|
+
assert.ok(streaming.every((c) => c.subtitle === "Helene Fischer"));
|
|
200
|
+
assert.ok(streaming.every((c) => c.title !== "Other Artist Song"));
|
|
201
|
+
assert.match(out.message ?? "", /no library albums/i);
|
|
202
|
+
assert.match(out.message ?? "", /includeStreaming/i);
|
|
203
|
+
});
|
|
204
|
+
test("an artist with 0 Albums surfaces a hint to pass includeStreaming", async () => {
|
|
205
|
+
const empty = {
|
|
206
|
+
title: "Artists",
|
|
207
|
+
key: "g:artists",
|
|
208
|
+
items: [item("Helene Fischer", "a:hf")],
|
|
209
|
+
};
|
|
210
|
+
// The fake's `item()` doesn't set a subtitle; override to "0 Albums" so the
|
|
211
|
+
// diagnostic in performSearch fires.
|
|
212
|
+
empty.items[0].subtitle = "0 Albums";
|
|
213
|
+
const svc = buildService([empty]);
|
|
214
|
+
const out = await svc.searchMusic({ query: "Helene Fischer", type: "artist" });
|
|
215
|
+
assert.equal(out.candidates[0]?.title, "Helene Fischer");
|
|
216
|
+
assert.match(out.message ?? "", /no library albums/i);
|
|
217
|
+
assert.match(out.message ?? "", /includeStreaming/i);
|
|
218
|
+
});
|
|
219
|
+
test("streaming-artist results are capped by limit", async () => {
|
|
220
|
+
const artists = {
|
|
221
|
+
title: "Artists",
|
|
222
|
+
key: "g:artists",
|
|
223
|
+
items: [{ ...item("Tycho", "a:tycho"), subtitle: "0 Albums" }],
|
|
224
|
+
};
|
|
225
|
+
const tracks = {
|
|
226
|
+
title: "Tracks",
|
|
227
|
+
key: "g:tracks",
|
|
228
|
+
items: Array.from({ length: 10 }, (_, i) => ({
|
|
229
|
+
title: `Song ${i}`,
|
|
230
|
+
item_key: `tk:${i}`,
|
|
231
|
+
subtitle: "Tycho",
|
|
232
|
+
})),
|
|
233
|
+
};
|
|
234
|
+
const svc = buildService([artists, tracks]);
|
|
235
|
+
const out = await svc.searchMusic({ query: "Tycho", type: "artist", includeStreaming: true, limit: 3 });
|
|
236
|
+
// 1 library artist + up to 3 streaming tracks. The streaming slice is
|
|
237
|
+
// capped independently of the library slice (the limit is a per-section
|
|
238
|
+
// cap on the streaming-track result, mirroring the genre path's per-album
|
|
239
|
+
// budget).
|
|
240
|
+
const streaming = out.candidates.filter((c) => c.sourceGroup === "Streaming");
|
|
241
|
+
assert.ok(streaming.length <= 3, `expected ≤3 streaming candidates, got ${streaming.length}`);
|
|
242
|
+
assert.equal(out.candidates[0]?.sourceGroup, "Artists");
|
|
243
|
+
assert.equal(out.candidates[0]?.title, "Tycho");
|
|
169
244
|
});
|
|
170
245
|
test("limit caps the number of returned candidates", async () => {
|
|
171
246
|
const many = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchService.test.js","sourceRoot":"","sources":["../src/SearchService.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAUjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAcnE,4EAA4E;AAC5E,MAAM,UAAU;IAKK;IACA;IAGA;IARX,KAAK,GAAmB,EAAE,CAAC;IAC3B,UAAU,GAAG,CAAC,CAAC;IAEvB,YACmB,MAAkB,EAClB,OAAiB,EAAE;IACpC,4EAA4E;IAC5E,wEAAwE;IACvD,SAAuC,EAAE;QAJzC,WAAM,GAAN,MAAM,CAAY;QAClB,SAAI,GAAJ,IAAI,CAAe;QAGnB,WAAM,GAAN,MAAM,CAAmC;IACzD,CAAC;IAEJ,MAAM,CAAC,CAAgB,EAAE,EAAoD;QAC3E,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;YACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YACxD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACvC,CAAC;QACD,yEAAyE;QACzE,uEAAuE;QACvE,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC5E,OAAO,EAAE,CAAC,gBAAgB,EAAE,SAAwC,CAAC,CAAC;YACxE,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC7B,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;YAC7E,CAAC;YACD,IAAI,CAAC,KAAK,GAAG;gBACX,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,MAAe,EAAE,CAAC,CAAC;aACrF,CAAC;YACF,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;YACxD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;gBACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACzB,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YACvC,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACzB,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YACvC,CAAC;YACD,OAAO,EAAE,CAAC,gBAAgB,EAAE,SAAwC,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,CAAC,CAAc,EAAE,EAAkD;QACrE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC;QAC3D,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IACrG,CAAC;CACF;AAED,SAAS,YAAY,CACnB,MAAkB,EAClB,IAAe,EACf,MAAqC;IAErC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,EAAE,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,EAA2B,CAAC;IACpG,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC9C,OAAO,IAAI,aAAa,CAAC,MAAM,EAAE,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;AAChG,CAAC;AAED,SAAS,IAAI,CAAC,KAAa,EAAE,GAAW;IACtC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAChD,CAAC;AAED,8EAA8E;AAC9E,SAAS,IAAI,CAAC,KAAa,EAAE,GAAW;IACtC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,OAAO,GAAa;IACxB,KAAK,EAAE,SAAS;IAChB,GAAG,EAAE,WAAW;IAChB,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;CAClE,CAAC;AACF,MAAM,MAAM,GAAa;IACvB,KAAK,EAAE,QAAQ;IACf,GAAG,EAAE,UAAU;IACf,KAAK,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACjC,CAAC;AACF,MAAM,MAAM,GAAa;IACvB,KAAK,EAAE,QAAQ;IACf,GAAG,EAAE,UAAU;IACf,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;CACzC,CAAC;AAEF,IAAI,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;IACtF,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IACtD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACnC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IACxD,4EAA4E;IAC5E,4BAA4B;IAC5B,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;IAChE,MAAM,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACzC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,kDAAkD;IAClD,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/E,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;IACnE,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;IAClF,kEAAkE;IAClE,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IAC/E,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAClC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,YAAY,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;AACzD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;IACtF,4EAA4E;IAC5E,0EAA0E;IAC1E,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5E,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACnC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACrC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,iBAAiB,CAAC,CAAC;AACrD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;IACnF,MAAM,MAAM,GAAa;QACvB,KAAK,EAAE,QAAQ;QACf,GAAG,EAAE,UAAU;QACf,KAAK,EAAE,CAAC,IAAI,CAAC,wBAAwB,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;KACpF,CAAC;IACF,6CAA6C;IAC7C,MAAM,MAAM,GAAG;QACb,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC/D,QAAQ,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;KAClE,CAAC;IACF,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/F,6EAA6E;IAC7E,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;IAC3D,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC;IAEtE,2EAA2E;IAC3E,sEAAsE;IACtE,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACvB,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;QACpE,OAAO,GAAG,CAAC,CAAC,CAAC;IACf,CAAC,CAAC,CACH,CAAC;IACF,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;IACpE,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9F,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;IAC9D,MAAM,IAAI,GAAa;QACrB,KAAK,EAAE,QAAQ;QACf,GAAG,EAAE,UAAU;QACf,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;KAC1E,CAAC;IACF,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAChE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;IAC1E,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,cAAc,EAAE,mBAAmB,EAAE,CAAC,CAAC;IAC7E,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACpD,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACrC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;AACjD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;IACxE,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IACpE,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;IAC7D,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,cAAc,CAAC,CAAC,CAAC;IAClE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;IAC1E,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3D,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IACtD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"SearchService.test.js","sourceRoot":"","sources":["../src/SearchService.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { RoonClient } from "./RoonClient.js";
|
|
2
|
+
import { type RoonCallLogger } from "./logger.js";
|
|
3
|
+
import { type NowPlayingInfo, type ZoneState } from "./types.js";
|
|
4
|
+
import { ZoneService } from "./ZoneService.js";
|
|
5
|
+
/** Result of a transport control call (pause/resume/next/previous/stop). */
|
|
6
|
+
export interface ControlResult {
|
|
7
|
+
ok: true;
|
|
8
|
+
zoneId: string;
|
|
9
|
+
action: string;
|
|
10
|
+
state: ZoneState;
|
|
11
|
+
}
|
|
12
|
+
/** Result of `setVolume`. */
|
|
13
|
+
export interface SetVolumeResult {
|
|
14
|
+
ok: true;
|
|
15
|
+
zoneId: string;
|
|
16
|
+
/** The requested percent (echoed for caller convenience). */
|
|
17
|
+
level: number;
|
|
18
|
+
/**
|
|
19
|
+
* Outputs whose volume was actually changed. Incremental outputs (IR
|
|
20
|
+
* blasters and the like) have no `min`/`max` and are listed here as
|
|
21
|
+
* skipped so the caller knows the level wasn't applied there.
|
|
22
|
+
*/
|
|
23
|
+
applied: string[];
|
|
24
|
+
skipped: string[];
|
|
25
|
+
}
|
|
26
|
+
/** Result of `mute`/`unmute`. */
|
|
27
|
+
export interface MuteResult {
|
|
28
|
+
ok: true;
|
|
29
|
+
zoneId: string;
|
|
30
|
+
muted: boolean;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Transport controls: read now-playing state, run pause/resume/next/previous/
|
|
34
|
+
* stop, and set volume or mute state. All zone-targeting follows the same
|
|
35
|
+
* resolution rules as `PlaybackService` (explicit id → `ROON_DEFAULT_ZONE` →
|
|
36
|
+
* single/Office/playing heuristics → `ZONE_AMBIGUOUS`).
|
|
37
|
+
*/
|
|
38
|
+
export declare class TransportService {
|
|
39
|
+
private readonly roon;
|
|
40
|
+
private readonly zones;
|
|
41
|
+
private readonly logger;
|
|
42
|
+
constructor(roon: RoonClient, zones: ZoneService, logger?: RoonCallLogger);
|
|
43
|
+
/**
|
|
44
|
+
* Return a structured snapshot of a zone's current playback. The snapshot
|
|
45
|
+
* is always returned for a resolved zone; `title`/`artist`/`album` are
|
|
46
|
+
* `undefined` when nothing is playing. Throws on a missing zone id or
|
|
47
|
+
* ambiguous resolution, so callers can distinguish "no track" (snapshot
|
|
48
|
+
* with `title: undefined`) from "no such zone" (`ZONE_NOT_FOUND`).
|
|
49
|
+
*/
|
|
50
|
+
getNowPlaying(zoneId?: string): Promise<NowPlayingInfo | undefined>;
|
|
51
|
+
/** Run a transport verb against the resolved zone. */
|
|
52
|
+
control(zoneId: string | undefined, action: string): Promise<ControlResult>;
|
|
53
|
+
/**
|
|
54
|
+
* Set a zone's volume to a 0–100 percent level. Rescales to each output's
|
|
55
|
+
* native range and applies independently (grouped zones may mix dB and
|
|
56
|
+
* numeric scales). Outputs without a numeric range (incremental IR-style
|
|
57
|
+
* controls) are reported as `skipped` rather than guessed at.
|
|
58
|
+
*/
|
|
59
|
+
setVolume(zoneId: string | undefined, level: number): Promise<SetVolumeResult>;
|
|
60
|
+
/** Mute or unmute every output in the resolved zone. */
|
|
61
|
+
mute(zoneId: string | undefined, muted: boolean): Promise<MuteResult>;
|
|
62
|
+
private findRawZone;
|
|
63
|
+
private getZonesBody;
|
|
64
|
+
}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
import { silentLogger } from "./logger.js";
|
|
2
|
+
import { RoonMcpError } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Transport controls: read now-playing state, run pause/resume/next/previous/
|
|
5
|
+
* stop, and set volume or mute state. All zone-targeting follows the same
|
|
6
|
+
* resolution rules as `PlaybackService` (explicit id → `ROON_DEFAULT_ZONE` →
|
|
7
|
+
* single/Office/playing heuristics → `ZONE_AMBIGUOUS`).
|
|
8
|
+
*/
|
|
9
|
+
export class TransportService {
|
|
10
|
+
roon;
|
|
11
|
+
zones;
|
|
12
|
+
logger;
|
|
13
|
+
constructor(roon, zones, logger = silentLogger) {
|
|
14
|
+
this.roon = roon;
|
|
15
|
+
this.zones = zones;
|
|
16
|
+
this.logger = logger;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Return a structured snapshot of a zone's current playback. The snapshot
|
|
20
|
+
* is always returned for a resolved zone; `title`/`artist`/`album` are
|
|
21
|
+
* `undefined` when nothing is playing. Throws on a missing zone id or
|
|
22
|
+
* ambiguous resolution, so callers can distinguish "no track" (snapshot
|
|
23
|
+
* with `title: undefined`) from "no such zone" (`ZONE_NOT_FOUND`).
|
|
24
|
+
*/
|
|
25
|
+
async getNowPlaying(zoneId) {
|
|
26
|
+
const { targetId } = await this.zones.resolveTarget(zoneId);
|
|
27
|
+
const raw = await this.findRawZone(targetId);
|
|
28
|
+
if (!raw)
|
|
29
|
+
return undefined;
|
|
30
|
+
return mapNowPlaying(raw);
|
|
31
|
+
}
|
|
32
|
+
/** Run a transport verb against the resolved zone. */
|
|
33
|
+
async control(zoneId, action) {
|
|
34
|
+
if (!isTransportAction(action)) {
|
|
35
|
+
throw new RoonMcpError("BROWSE_FAILED", `Unknown action "${action}". Use one of: pause, resume, next, previous, stop.`);
|
|
36
|
+
}
|
|
37
|
+
const { targetId } = await this.zones.resolveTarget(zoneId);
|
|
38
|
+
const raw = await this.findRawZone(targetId);
|
|
39
|
+
if (!raw) {
|
|
40
|
+
throw new RoonMcpError("ZONE_NOT_FOUND", `Zone "${targetId}" disappeared.`);
|
|
41
|
+
}
|
|
42
|
+
const verb = mapControlVerb(action);
|
|
43
|
+
// Best-effort precheck: the Core reports is_<verb>_allowed on its zone
|
|
44
|
+
// state snapshot. `stop` has no corresponding flag and is always allowed.
|
|
45
|
+
// If the flag is explicitly false, refuse rather than rely on Roon to error.
|
|
46
|
+
if (verb !== "stop" && raw.state === "playing") {
|
|
47
|
+
const flag = allowedFlagFor(verb);
|
|
48
|
+
if (raw[flag] === false) {
|
|
49
|
+
throw new RoonMcpError("BROWSE_FAILED", `Action "${action}" is not available on this zone.`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
const transport = this.roon.getTransport();
|
|
53
|
+
await this.logger.call("control", { zoneId: targetId, control: verb }, () => new Promise((resolve, reject) => {
|
|
54
|
+
transport.control(targetId, verb, (error) => {
|
|
55
|
+
if (error) {
|
|
56
|
+
reject(new RoonMcpError("BROWSE_FAILED", `control(${verb}) failed: ${error}`));
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
resolve();
|
|
60
|
+
});
|
|
61
|
+
}));
|
|
62
|
+
// Re-read state so the caller can confirm the verb took effect.
|
|
63
|
+
const after = await this.findRawZone(targetId);
|
|
64
|
+
const state = after ? mapState(after.state) : mapState(raw.state);
|
|
65
|
+
return { ok: true, zoneId: targetId, action, state };
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Set a zone's volume to a 0–100 percent level. Rescales to each output's
|
|
69
|
+
* native range and applies independently (grouped zones may mix dB and
|
|
70
|
+
* numeric scales). Outputs without a numeric range (incremental IR-style
|
|
71
|
+
* controls) are reported as `skipped` rather than guessed at.
|
|
72
|
+
*/
|
|
73
|
+
async setVolume(zoneId, level) {
|
|
74
|
+
if (!Number.isFinite(level) || level < 0 || level > 100) {
|
|
75
|
+
throw new RoonMcpError("BROWSE_FAILED", `level must be between 0 and 100 (got ${level}).`);
|
|
76
|
+
}
|
|
77
|
+
const { targetId, zone } = await this.zones.resolveTarget(zoneId);
|
|
78
|
+
const raw = await this.findRawZone(targetId);
|
|
79
|
+
if (!raw) {
|
|
80
|
+
throw new RoonMcpError("ZONE_NOT_FOUND", `Zone "${targetId}" disappeared.`);
|
|
81
|
+
}
|
|
82
|
+
const transport = this.roon.getTransport();
|
|
83
|
+
const applied = [];
|
|
84
|
+
const skipped = [];
|
|
85
|
+
for (const output of raw.outputs ?? []) {
|
|
86
|
+
const v = output.volume;
|
|
87
|
+
if (!v || !hasNumericRange(v)) {
|
|
88
|
+
skipped.push(output.output_id);
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
const value = scaleToRange(level, v);
|
|
92
|
+
await this.logger.call("change_volume", { outputId: output.output_id, how: "absolute", value }, () => new Promise((resolve, reject) => {
|
|
93
|
+
transport.change_volume(output, "absolute", value, (error) => {
|
|
94
|
+
if (error) {
|
|
95
|
+
reject(new RoonMcpError("BROWSE_FAILED", `change_volume failed: ${error}`));
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
resolve();
|
|
99
|
+
});
|
|
100
|
+
}), (result) => ({ value }));
|
|
101
|
+
applied.push(output.output_id);
|
|
102
|
+
}
|
|
103
|
+
if (applied.length === 0 && skipped.length > 0) {
|
|
104
|
+
throw new RoonMcpError("BROWSE_FAILED", "Zone has no numeric-range volume outputs (only incremental controls like IR blasters).");
|
|
105
|
+
}
|
|
106
|
+
return { ok: true, zoneId: targetId, level, applied, skipped };
|
|
107
|
+
}
|
|
108
|
+
/** Mute or unmute every output in the resolved zone. */
|
|
109
|
+
async mute(zoneId, muted) {
|
|
110
|
+
const { targetId } = await this.zones.resolveTarget(zoneId);
|
|
111
|
+
const raw = await this.findRawZone(targetId);
|
|
112
|
+
if (!raw) {
|
|
113
|
+
throw new RoonMcpError("ZONE_NOT_FOUND", `Zone "${targetId}" disappeared.`);
|
|
114
|
+
}
|
|
115
|
+
const transport = this.roon.getTransport();
|
|
116
|
+
const how = muted ? "mute" : "unmute";
|
|
117
|
+
for (const output of raw.outputs ?? []) {
|
|
118
|
+
await this.logger.call("mute", { outputId: output.output_id, how }, () => new Promise((resolve, reject) => {
|
|
119
|
+
transport.mute(output, how, (error) => {
|
|
120
|
+
if (error) {
|
|
121
|
+
reject(new RoonMcpError("BROWSE_FAILED", `${how} failed: ${error}`));
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
resolve();
|
|
125
|
+
});
|
|
126
|
+
}));
|
|
127
|
+
}
|
|
128
|
+
return { ok: true, zoneId: targetId, muted };
|
|
129
|
+
}
|
|
130
|
+
async findRawZone(idOrOutput) {
|
|
131
|
+
const body = await this.getZonesBody();
|
|
132
|
+
return (body.zones ?? []).find((z) => z.zone_id === idOrOutput ||
|
|
133
|
+
(z.outputs ?? []).some((o) => o.output_id === idOrOutput));
|
|
134
|
+
}
|
|
135
|
+
async getZonesBody() {
|
|
136
|
+
await this.roon.waitForCore();
|
|
137
|
+
const transport = this.roon.getTransport();
|
|
138
|
+
return this.logger.call("get_zones", {}, () => new Promise((resolve, reject) => {
|
|
139
|
+
transport.get_zones((error, result) => {
|
|
140
|
+
if (error) {
|
|
141
|
+
reject(new RoonMcpError("BROWSE_FAILED", `get_zones failed: ${error}`));
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
resolve(result);
|
|
145
|
+
});
|
|
146
|
+
}), (body) => ({ zones: body.zones?.length ?? 0 }));
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
function isTransportAction(s) {
|
|
150
|
+
return s === "pause" || s === "resume" || s === "next" || s === "previous" || s === "stop";
|
|
151
|
+
}
|
|
152
|
+
function mapControlVerb(action) {
|
|
153
|
+
// `resume` reads naturally to a user; Roon's API uses `play` for the same effect.
|
|
154
|
+
return action === "resume" ? "play" : action;
|
|
155
|
+
}
|
|
156
|
+
/** Map a non-`stop` Roon control verb to its `is_*_allowed` zone-state flag. */
|
|
157
|
+
function allowedFlagFor(verb) {
|
|
158
|
+
switch (verb) {
|
|
159
|
+
case "pause":
|
|
160
|
+
return "is_pause_allowed";
|
|
161
|
+
case "play":
|
|
162
|
+
return "is_play_allowed";
|
|
163
|
+
case "next":
|
|
164
|
+
return "is_next_allowed";
|
|
165
|
+
case "previous":
|
|
166
|
+
return "is_previous_allowed";
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Roon volume outputs report a native `min`/`max`/`step` in their own units.
|
|
171
|
+
* Returns false for "incremental" outputs (IR blasters) which expose only
|
|
172
|
+
* +/− buttons with no numeric state, and false for any output missing min/max.
|
|
173
|
+
*/
|
|
174
|
+
function hasNumericRange(v) {
|
|
175
|
+
return typeof v.min === "number" && typeof v.max === "number" && v.max > v.min;
|
|
176
|
+
}
|
|
177
|
+
function scaleToRange(percent, v) {
|
|
178
|
+
const span = v.max - v.min;
|
|
179
|
+
const raw = v.min + (span * percent) / 100;
|
|
180
|
+
if (typeof v.step === "number" && v.step > 0) {
|
|
181
|
+
return Math.round(raw / v.step) * v.step;
|
|
182
|
+
}
|
|
183
|
+
return raw;
|
|
184
|
+
}
|
|
185
|
+
function mapState(state) {
|
|
186
|
+
switch (state) {
|
|
187
|
+
case "playing":
|
|
188
|
+
case "paused":
|
|
189
|
+
case "loading":
|
|
190
|
+
case "stopped":
|
|
191
|
+
return state;
|
|
192
|
+
default:
|
|
193
|
+
return "unknown";
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
/** Map a Roon zone (with `now_playing`) to the public `NowPlayingInfo` shape. */
|
|
197
|
+
function mapNowPlaying(raw) {
|
|
198
|
+
const np = raw.now_playing;
|
|
199
|
+
// Prefer three-line (artist + album), fall back to two-line (artist only),
|
|
200
|
+
// then one-line. Mirrors how ZoneService.nowPlayingFor picks a label.
|
|
201
|
+
const three = np?.three_line;
|
|
202
|
+
const two = np?.two_line;
|
|
203
|
+
const one = np?.one_line;
|
|
204
|
+
return {
|
|
205
|
+
zoneId: raw.zone_id,
|
|
206
|
+
displayName: raw.display_name,
|
|
207
|
+
state: mapState(raw.state),
|
|
208
|
+
title: three?.line1 ?? two?.line1 ?? one?.line1,
|
|
209
|
+
artist: three?.line2 ?? two?.line2,
|
|
210
|
+
album: three?.line3,
|
|
211
|
+
imageKey: np?.image_key,
|
|
212
|
+
lengthSec: np?.length,
|
|
213
|
+
seekPositionSec: np?.seek_position,
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
//# sourceMappingURL=TransportService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransportService.js","sourceRoot":"","sources":["../src/TransportService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|