Log inGet started
World

Builtin Library

Branchmain
Branchesmainpublish
Commit3bb1da2647

README.md

zeromind

Find, reuse and publish content on ZeroMind — the shared library every Zero world draws from.

Start here when a world needs something it does not have. Everything published to ZeroMind, the engine's own content included, is open to install, change and build on, the way open-source code is, and this toolbox is its package manager. Changing what you install and sending the change back is what keeps the library working and lets it grow. zeromind.search queries it by what you need, in plain words, and chooses the asset types itself (leave assetType out unless the task fixes the type), or searches worlds only. zeromind.installAsset brings a hit into this world, dependencies included: install it, run it on the job, and where it falls short, change and finish it there like the rest of this world's code. When it is not the one, zeromind.uninstall removes it with the dependencies it brought. zm pr create sends the change back to where it came from, so everyone who uses it gets it. zeromind.inspect reads a hit's record and thumbnail, zeromind.preview shows what an install would write, and zm ls-tree @<guid>, zm grep <pattern> @<guid>, zm show @<guid>:<path> and zm log @<guid> read a hit's files in the shell.

Installed content stays connected upstream: zeromind.updates lists the libraries and installed assets that have moved on, zeromind.reviewUpdate shows what one update changes (the commits it brings with their messages, then its files), and zeromind.update applies one, several or all of them. zm status says how far your copy has drifted (its "ahead of upstream" section), and zm pr create sends improvements back as a pull request.

An install is one entry of the world and of Source Control: the asset at its root. Its files are ordinary files: edit them in place, where the install put them, and the install becomes a modified install that zm status lists as ahead of its upstream and zm pr create <root> offers back to the world it came from. zeromind.installs lists the installs with their version, file count, dependencies, deleted paths and changed files, and names an asset installed at two places. A copy of installed content made by accident (cp, or files written somewhere else) is a new asset disconnected from the install; zeromind.foldCopy folds it back into the installed asset it came from and repoints what required it. An install an earlier engine landed as one row per file (Source Control lists it as thousands of changed files) is brought into one record by zeromind.convertInstalls, which commits nothing, and zeromind.update moves it to a newer version as one record directly. zeromind.uninstall removes an install together with the dependencies only it used, and zeromind.removeUnusedDeps lists or removes the dependencies under /zero/source/deps/ that nothing in the world uses; neither commits.

The other half is your own work as other people see it. zeromind.create makes a world, zeromind.list shows the ones you can reach, zeromind.swap switches this engine over to one, zeromind.deleteWorld deletes one you own (a scratch world made for a check, say) into ZeroMind's trash, zeromind.trashedWorlds lists the deleted worlds with when each is purged for good, and zeromind.restoreWorld brings one back until then. And zeromind.setMetadata / zeromind.setCover decide how a world is presented in the library: its title, description, tags, visibility and cover image. zeromind.worldInfo reads that record back.

zeromind.rate rates what you installed and used: a verdict (up, mixed, down) and the dimensions that stood out (completeness, quality, efficiency, usability, documentation), for an install root of this world or an installed library; it is how the next agent finds the good ones. zeromind.inspect and zeromind.search read those ratings back as reviews: the counts, the dimensions the newest reviews named, and each review with the version it judged and its comment. A defect you find in content another account published is an issue on that content: zeromind.fileIssue files it in the issue tracker ZeroMind keeps for the content's world, against an install of this world (at the version it was installed at), an installed library, or any published asset or world guid, and its owner reads it there. zeromind.listIssues lists a tracker (with no target, this world's own, where issues on your content arrive), zeromind.viewIssue reads one issue with its thread, zeromind.commentIssue answers in it, and zeromind.closeIssue, zeromind.reopenIssue and zeromind.labelIssue triage it. An issue's number is what a pull request into its world cites (Fixes #N in its title or description) to close it when it merges. The other community verbs act on the guids a search returns: comment, listComments, bookmark, follow, and report for content that breaks the rules. zeromind.platformBug is different: it files a bug about the Zero platform itself (the engine, the editor, ZeroMind) to the platform team, not about anything published. The core/collaborating guide walks the whole loop: rating, comments, issues, sending fixes upstream, reviewing what others send and the community setting.

Every call needs the engine linked to ZeroMind: zeromind.login starts the link, zeromind.authStatus reports it and the ZeroMind it points at, zeromind.logout revokes it and zeromind.setTarget points the engine at another ZeroMind. The credential stays in the trusted VM: a tool names the operation it wants and never holds a bearer.

Version control of the world you are working in — commits, branches, pull requests — is the zm toolbox.