#!/usr/bin/env bash # `mosaic launch ` and `mosaic seat task `: seat launch # with registration for the control board. See packages/seat/README.md. # `mosaic queue `: the work queue. See packages/queue/README.md. # `mosaic business `: business files and role instances. See # packages/business/README.md. # `mosaic inbox|decide|tasks|agents|trail|talk|stop|launches` and # `mosaic bus start|stop|status`: the human commands, managed sessions and # the bus host. See packages/cli/README.md. # This is the repository wrapper; run it by path from the checkout. A host # may also put `mosaic` on PATH as a wrapper that runs a pinned copy's # scripts/mosaic (scripts/stack-copy.sh wrapper, docs/TOOLS.md "Stack # copies"). On Jason's host the estate CLI it replaced is `mosaic-old`. # On a pinned host the human commands and --tester go through # that `mosaic`, and from a checkout they exit 3. Queue commands stay on # scripts/mosaic queue in the canonical checkout, because a copy refuses # them. See packages/cli/README.md "One pinned copy". set -euo pipefail REPO="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" # No argument: the full-screen app on a terminal (packages/cli/README.md). if [ $# -eq 0 ]; then exec node "$REPO/packages/cli/src/cli.mjs" fi if [ "${1:-}" = queue ]; then shift exec node "$REPO/packages/queue/src/cli.mjs" "$@" fi if [ "${1:-}" = business ]; then # Row 165 (#1662): the human's role instance commands need the human proof, # so they run in packages/cli. validate and resolve stay in packages/business. Row 194 adds veto. case "${2:-}" in instances|instance|veto) exec node "$REPO/packages/cli/src/cli.mjs" "$@" ;; esac shift exec node "$REPO/packages/business/src/cli.mjs" "$@" fi # `mosaic library survey`: names and counts from a writing repo, never its text # (packages/library/README.md). Other library verbs are bus verbs. if [ "${1:-}" = library ] && [ "${2:-}" = survey ]; then shift exec node "$REPO/packages/library/src/survey.mjs" "$@" fi case "${1:-}" in halt|resume|processing|usage|project|limits|inbox|decide|tasks|agents|trail|talk|stop|launches|bus|plugins|credentials|hosts|grants|name|names|follow|threads|thread|access) exec node "$REPO/packages/cli/src/cli.mjs" "$@" ;; esac exec node "$REPO/packages/seat/src/cli.mjs" "$@"