@ouro.bot/cli 0.1.0-alpha.786 → 0.1.0-alpha.787
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.json
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_note": "This changelog is maintained as part of the PR/version-bump workflow. Agent-curated, not auto-generated. Agents read this file directly via read_file to understand what changed between versions.",
|
|
3
3
|
"versions": [
|
|
4
|
+
{
|
|
5
|
+
"version": "0.1.0-alpha.787",
|
|
6
|
+
"changes": [
|
|
7
|
+
"Tolerate untitled Jellyfin catalog items in Sanctuary media reads."
|
|
8
|
+
]
|
|
9
|
+
},
|
|
4
10
|
{
|
|
5
11
|
"version": "0.1.0-alpha.786",
|
|
6
12
|
"changes": [
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<?xml version="1.0"?>
|
|
2
2
|
<Container version="2">
|
|
3
3
|
<Name>Mendelow Cloud Butler</Name>
|
|
4
|
-
<Repository>ghcr.io/ourostack/ouroboros-butler:0.1.0-alpha.
|
|
4
|
+
<Repository>ghcr.io/ourostack/ouroboros-butler:0.1.0-alpha.787</Repository>
|
|
5
5
|
<Registry>https://github.com/ourostack/ouroboros/pkgs/container/ouroboros-butler</Registry>
|
|
6
6
|
<Network>host</Network>
|
|
7
7
|
<Shell>sh</Shell>
|
|
@@ -64,6 +64,9 @@ function boundedLabel(value) {
|
|
|
64
64
|
function optionalBoundedLabel(value) {
|
|
65
65
|
return value === undefined || value === null ? null : boundedLabel(value);
|
|
66
66
|
}
|
|
67
|
+
function mediaTitle(item, type) {
|
|
68
|
+
return typeof item.Name === "string" ? boundedLabel(item.Name) : `Untitled ${type}`;
|
|
69
|
+
}
|
|
67
70
|
function basename(value) {
|
|
68
71
|
const parts = string(value).replaceAll("\\", "/").split("/");
|
|
69
72
|
return boundedLabel(parts[parts.length - 1]);
|
|
@@ -332,8 +335,8 @@ function createSanctuaryMediaOptimizationClient(options) {
|
|
|
332
335
|
const sourceIds = new Set();
|
|
333
336
|
let sourceCapped = false;
|
|
334
337
|
for (const item of catalog.items) {
|
|
335
|
-
const untrustedTitle = boundedLabel(item.Name);
|
|
336
338
|
const type = string(item.Type);
|
|
339
|
+
const untrustedTitle = mediaTitle(item, type);
|
|
337
340
|
const mediaSources = array(item.MediaSources);
|
|
338
341
|
if (mediaSources.length > 100)
|
|
339
342
|
throw new ReadFailure("invalid_response", "Jellyfin returned too many sources for one item");
|
|
@@ -469,8 +472,8 @@ function createSanctuaryMediaOptimizationClient(options) {
|
|
|
469
472
|
throw new ReadFailure("invalid_response", "Media catalog limit must be an integer from 1 to 20");
|
|
470
473
|
const catalog = await readJellyfinItems(deadline, { includeMediaSources: false });
|
|
471
474
|
const candidates = catalog.items.map((item) => {
|
|
472
|
-
const title = boundedLabel(item.Name);
|
|
473
475
|
const type = string(item.Type);
|
|
476
|
+
const title = mediaTitle(item, type);
|
|
474
477
|
const productionYear = optionalInteger(item.ProductionYear);
|
|
475
478
|
const premiereDate = optionalBoundedLabel(item.PremiereDate);
|
|
476
479
|
return { untrustedTitle: title, type, productionYear, premiereDate };
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ouro.bot/cli",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.787",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@ouro.bot/cli",
|
|
9
|
-
"version": "0.1.0-alpha.
|
|
9
|
+
"version": "0.1.0-alpha.787",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@anthropic-ai/sdk": "^0.78.0",
|
|
12
12
|
"@azure/identity": "^4.13.0",
|