Skip to content

Releases: DazzleLib/dazzlecmd-lib

v0.8.55 - Standalone Engine Library

Choose a tag to compare

@djdarcy djdarcy released this 24 Jun 14:53
v0.8.55
a4a35fb

dazzlecmd-lib v0.8.55

The aggregator/dispatch engine behind the dazzlecmd pattern: tool discovery, kit/FQCN dispatch, the runtime registry, and the DazzleEntity continuum object model. A standalone framework — it does not require dazzlecmd to be installed; dazzlecmd is just its first consumer.

This is the inaugural release as a standalone DazzleLib library, extracted from the dazzlecmd monorepo.

What's inside

Build your own dz-pattern CLI in ~10 lines:

from dazzlecmd_lib import AggregatorEngine

def main():
    engine = AggregatorEngine(
        name="my-tools", command="mt", tools_dir="tools",
        manifest=".mt.json", version_info=("1.0", "1.0.0_main_1"),
    )
    return engine.run()

That gives you mt list, mt info <tool>, mt kit, mt version, mt tree, and mt setup for free.

Public API:

  • AggregatorEngine — configurable CLI tool aggregator (discovery + dispatch)
  • FQCNIndex — dual-index lookup for Fully-Qualified Collection Names (kit:tool, aggregator:kit:tool)
  • RunnerRegistry — extensible runtime dispatch (Python, PowerShell, passthrough, …)
  • MetaCommandRegistry — per-engine meta-command registry (override/extend the stock commands)
  • default_meta_commands — stock list / info / kit / version / tree / setup
  • ConfigManager — per-aggregator config reading/writing
  • the mode subsystem — embedded / submodule / symlink tool-source detection and the dev↔publish toggle
  • the DazzleEntity object model and the kit/continuum machinery

The DazzleLib stack

dazzlecmd-lib builds on the dazzle-lib bedrock (Protocols, continuum/state primitives, the closed composition algebra), with dazzle-filekit for cross-platform metadata preservation and unctools for Windows volume routing. Consumers built on it include dazzlecmd, amdead, and wtf-windows.

Installation

pip install dazzlecmd-lib

To develop against a local checkout alongside a consumer, install editable with --no-deps so the local copy wins over the PyPI copy:

pip install -e C:/code/dazzlecmd-lib --no-deps

Notes

  • Pre-1.0: the library reserves the right to make breaking changes during MINOR bumps until 1.0. Consumers should pin dazzlecmd-lib>=0.X.Y,<1.0.
  • This release also carries the submodule mode-detection fix for aggregators that live in a repository subdirectory (dz mode reports submodule-backed tools correctly).
  • History through 0.8.55 lives in the dazzlecmd monorepo git log (under packages/dazzlecmd-lib/), from which this repository was extracted. See the CHANGELOG.

Platform Support

Platform Status
Windows 10/11 Tested (primary)
Linux Tested (CI)
macOS Tested (CI)
BSD Expected to work

Requirements

Python 3.9–3.13. Runtime deps: pydantic>=2.0, dazzle-lib>=0.6.0, dazzle-filekit>=0.2.2, unctools>=0.1.0 (Windows).