Files
stack/scripts/mosaic
T
jason.woltje a8d9eecf65 organization: move packages/business to packages/organization (rename r2 stage B1)
git mv packages/business -> packages/organization (@mosaic/organization). The
old package stays as one-line re-export shims of each moved module, with
src/business.mjs re-exporting src/organization-config.mjs and src/cli.mjs
forwarding to the moved executable. BusinessError is OrganizationConfigError
(one constructor, name kept BusinessError); OrganizationError stays distinct.
The bus adapter gains organization-context.mjs (busOrganization), with
business.mjs (busBusiness) as the same function.

Import consumers, manifests, the lockfile, scripts/mosaic, stack-copy.sh
COPY_PATHS (both roots), seat sandbox RUNNER_FILES and the copy closure
walker (organization-imports.mjs, both roots required) move to the new path.
v1 serialization, v1 writers and the stage A fixtures are unchanged; the stage
A contract tests stay where they were and pass as before.
2026-11-09 11:47:48 -06:00

48 lines
2.4 KiB
Bash
Executable File

#!/usr/bin/env bash
# `mosaic launch <seat>` and `mosaic seat task <seat> <text>`: seat launch
# with registration for the control board. See packages/seat/README.md.
# `mosaic queue <verb>`: the work queue. See packages/queue/README.md.
# `mosaic business <verb>`: business files and role instances. See
# packages/organization/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 run in packages/organization (the old
# packages/business path is a shim of it, rename r2 stage B). Row 194 adds veto.
case "${2:-}" in
instances|instance|veto) exec node "$REPO/packages/cli/src/cli.mjs" "$@" ;;
esac
shift
exec node "$REPO/packages/organization/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
org|proxy|halt|resume|processing|usage|project|limits|inbox|decide|tasks|agents|trail|talk|stop|launches|bus|console|plugins|credentials|hosts|grants|name|names|follow|threads|thread|access|dev|run) exec node "$REPO/packages/cli/src/cli.mjs" "$@" ;;
esac
exec node "$REPO/packages/seat/src/cli.mjs" "$@"