What is it that determines which npm packages appear in the Manage Palette feature?
The catalog generated by the flow library that the manage palette feature downloads when you open it.
OK, so if it appears in flows.nodered.org then it will appear in the palette, otherwise not, and I believe whether it appears there is determined by the node-red keyword in package.json.
That's my understanding Colin. I recently aquatinted myself with this to upload my first contrib node.
I did the node-red tag & uploaded to github, but I was unaware of the requirement to then publish to npm (not obvious to me ) . Once published, it soon after appeared in the flow library & the palette.
....and.. shouldn't it be 'Palette Manager' instead of 'Manage Palette'??
You select the 'Manage Palette' menu option to open the Palette Manager.
But we don't 'Manage Settings' to open Settings...
I just assumed (maybe wrongly) that the menu link was naming the function rather than what it does, and in that event, the link would be 'Palette Manager', or better still simply 'Palette' (as in 'Settings').
It's just a personal observation, I'm sure you're busy enough with more important issues.
It appears that a package only appears in the flows library if it contains nodes, so theme packages such as that below do not appear in the package manager as they don't contain any nodes (only stylesheets).
Correct - the flow library only indexes modules that provide nodes.
There are a small number of other types of modules that it could index - themes, context storage plugins, auth plugins. But we have not yet established a convention for how the library would identify those different types of thing. Nor is there any consideration for whether those things should then appear in the palette manager within the editor... probably not as they don't provide nodes.
It meant that I could not install the mentioned theme using the palette manager and cannot see if an update is available via that route.
Is there a good reason why not everything with the node-red keyword appears in the flows library?
The runtime does not provide apis for installing arbitrary npm modules - it provides an api to install new nodes into the palette by way of npm installing a module. And that is what the palette manager is about - managing the palette of nodes.
There may be some validity in what you say.