Metadata-Version: 2.4
Name: project-agent-client
Version: 0.1.3
Summary: Remote Project Agent command-line client
Requires-Python: >=3.11
Description-Content-Type: text/markdown

# Project Agent CLI

Install the client with `python -m pip install project-agent-client`, or install
from this repository with `python -m pip install ./apps/cli`. Build a wheel
with `python -m build apps/cli` for distribution. The installed
entry point is `project-agent`; do not install it into the same environment as
the legacy backend package, which exposes the same command name.

This separately packaged client forwards Task, Query, Sprint and Proposal scene
commands, Quest Task handoffs, and explicitly supported Context, Doc Hub,
Meeting, Bootstrap, Attribute, Report, Monitoring and Scheduled commands.
The service must implement and authorize each operation; this client cannot
override a service-side rejection. Scene receipts and the stdout, stderr and
exit code of bridged commands are preserved. Administrative database and
upgrade operations are not exposed through this client. The server's database
location is never selected by a client-supplied path.

Configure `PROJECT_CENTER_URL` and set `MAGIC_CAMPUS_API_KEY` to your Magic
Campus API Key (access token). You can instead set `PROJECT_CENTER_TOKEN` to
an API Key or existing service grant; a non-empty `PROJECT_CENTER_TOKEN` takes
precedence when both are set. The client sends the selected credential as
`Authorization: Bearer <token>`; it does not need Magic Campus account
API settings or service database credentials. HTTPS is required
except for a local loopback service. The client does not automatically retry a
write because a network failure can leave its outcome unknown. Legacy Doc Hub
JSON-file arguments are read on the client and sent as inline JSON; paths are
never read on the server. A valid Magic Campus API Key authenticates the caller;
the service accepts the actor supplied in the request without requiring it to
match the account behind that key. Existing business validation still applies.
The key therefore grants access to operations across projects and must be kept
within the trusted environment.

Meeting `tasks run` and `tasks resume` execute on the service, using the selected
actor. Existing plans must resolve to that actor; a resume batch with a plan
for another actor is rejected. Task writes use the service-side Quest handoff.
Meeting notifications are sent by the service's `magic-campus` executable, so
that executable and its account configuration must be available in the service
runtime; an absent executable leaves the notification pending for retry.
The meeting-assistant skill uses the same `PROJECT_CENTER_URL` and
`PROJECT_CENTER_TOKEN` for meeting state when those are set, and does not
fall back to a local database if the remote service is unavailable.

For a Magic Campus API Key or a service grant with `trustActorRefs: true`, the
runtime can set `PROJECT_CENTER_ACTOR_REF` to the current verified actor JSON
(e.g. `{"userId":"..."}`) for CLI bridge operations which need a user. A bound
actor credential does not need this variable. Operations that require an active
actor continue to apply their existing business checks.
