@hypersoniclabs/helix-mcp 0.2.15 → 0.2.16-helix3.191
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/server.js +22 -17
- package/dist/server.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/docs/items.md +8 -5
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -63,8 +63,8 @@ workflow), `read_doc({ name: "vehicles" })` the HELIX Vehicle Contract (the rule
|
|
|
63
63
|
from-scratch builds; physics from real specs; audio; add-ons; publication; QA; a complete live
|
|
64
64
|
reference package). New vehicle content follows the sealed Package workflow; the former vehicle
|
|
65
65
|
Item-first MCP publisher routes are retired. `visual_qa_item` judges a candidate `packageVersion`. `item_thumbnail`
|
|
66
|
-
re-
|
|
67
|
-
|
|
66
|
+
requests a server re-render of a published item's catalog thumbnail (with `force` / `dryRun`) and returns the
|
|
67
|
+
preview URL. The catalog card is rendered by HELIX; creators cannot override it (add images to the item page instead).
|
|
68
68
|
|
|
69
69
|
Avatar lifecycle: `get_started({ kind: "avatar" })` serves the `helix-avatars` skill. A generated avatar ("make me an
|
|
70
70
|
avatar of this character, publish it privately") is ONE blocking call, `create_avatar`, which executes the bundled CLI:
|
package/dist/server.js
CHANGED
|
@@ -2474,33 +2474,38 @@ server.registerTool('delist_item', {
|
|
|
2474
2474
|
label: 'Delist item',
|
|
2475
2475
|
timeoutMs: 2 * VEHICLE_MIN,
|
|
2476
2476
|
}));
|
|
2477
|
+
/** What creators are told whenever they try to override the catalog card. */
|
|
2478
|
+
const CATALOG_CARD_IS_PLATFORM_ONLY = 'Catalog thumbnails are rendered by HELIX; creators cannot override the catalog card. Add images to the item page instead.';
|
|
2477
2479
|
server.registerTool('item_thumbnail', {
|
|
2478
|
-
description: "
|
|
2480
|
+
description: "Request a fresh server render of an ALREADY-PUBLISHED item's catalog thumbnail (avatar, wearable, add-on, vehicle, ...) you own, and get back the preview URL — runs in-process, no CLI step. The catalog card is rendered by HELIX with the standard renderer from the item's ACTIVE Package Version, with one fixed camera and lighting preset per item type; creators CANNOT upload or override it (action=set is gone and is refused). Use this after a corrected Package Version, or when the card still shows an older mesh; pass dryRun first to see what would change without writing, and force to re-render when the server says it is already current. To correct a Package-backed mesh, seal a new Package Version and move the item onto it, then request the render here. A creator-owned item only (403 otherwise); an older backend answers 'does not support thumbnail refresh yet'. Not for worlds: use set_world_thumbnail.",
|
|
2479
2481
|
inputSchema: {
|
|
2480
|
-
action: zod_1.z
|
|
2482
|
+
action: zod_1.z
|
|
2483
|
+
.enum(['refresh', 'set'])
|
|
2484
|
+
.optional()
|
|
2485
|
+
.describe('Default and only working action: refresh (server re-render). "set" is refused: creators cannot override the catalog card.'),
|
|
2481
2486
|
itemId: zod_1.z.string().describe('Published universal item id (UUID) from the item detail page/API or an approved Creator publication receipt.'),
|
|
2482
|
-
force: zod_1.z.boolean().optional().describe('
|
|
2483
|
-
dryRun: zod_1.z.boolean().optional().describe('
|
|
2484
|
-
imagePath: zod_1.z.string().optional().describe('set only: absolute path to a png/jpg/jpeg/webp image (up to 10 MiB)'),
|
|
2487
|
+
force: zod_1.z.boolean().optional().describe('Re-render even when the stored thumbnail is already current'),
|
|
2488
|
+
dryRun: zod_1.z.boolean().optional().describe('Report what would change, write nothing'),
|
|
2485
2489
|
},
|
|
2486
|
-
}, async ({ action, itemId, force, dryRun
|
|
2490
|
+
}, async ({ action, itemId, force, dryRun }) => {
|
|
2491
|
+
if (action === 'set')
|
|
2492
|
+
return errText(`item_thumbnail action=set is not available. ${CATALOG_CARD_IS_PLATFORM_ONLY}`);
|
|
2487
2493
|
const creds = (0, helix_cli_1.loadCredentials)();
|
|
2488
2494
|
if (!creds)
|
|
2489
2495
|
return errText('Not logged in. Ask the human to run: helix login');
|
|
2490
|
-
if (action === 'set' && !imagePath)
|
|
2491
|
-
return errText('item_thumbnail action=set needs imagePath (png/jpg/webp).');
|
|
2492
|
-
if (action === 'set' && (force || dryRun))
|
|
2493
|
-
return errText('force and dryRun apply to action=refresh only; set uploads exactly the image given.');
|
|
2494
|
-
if (action === 'refresh' && imagePath)
|
|
2495
|
-
return errText('imagePath applies to action=set only; refresh re-renders on the server.');
|
|
2496
2496
|
try {
|
|
2497
|
-
const result =
|
|
2498
|
-
|
|
2499
|
-
|
|
2500
|
-
|
|
2497
|
+
const result = await (0, helix_cli_1.refreshItemThumbnail)(itemId, { force, dryRun }, creds);
|
|
2498
|
+
return text([
|
|
2499
|
+
...(0, helix_cli_1.renderItemThumbnailResult)(result),
|
|
2500
|
+
'',
|
|
2501
|
+
`Preview URL: ${result.thumbnailUrl ?? result.previousThumbnailUrl ?? '(none yet)'}`,
|
|
2502
|
+
CATALOG_CARD_IS_PLATFORM_ONLY,
|
|
2503
|
+
'',
|
|
2504
|
+
JSON.stringify(result, null, 2),
|
|
2505
|
+
].join('\n'));
|
|
2501
2506
|
}
|
|
2502
2507
|
catch (err) {
|
|
2503
|
-
return errText(`item_thumbnail
|
|
2508
|
+
return errText(`item_thumbnail refresh failed: ${(0, helix_cli_1.describeThumbnailError)(err, itemId)}`);
|
|
2504
2509
|
}
|
|
2505
2510
|
});
|
|
2506
2511
|
const distributionLimit = zod_1.z
|