66 lines
3.5 KiB
Markdown
66 lines
3.5 KiB
Markdown
# Filbert development TUI
|
|
|
|
From any terminal, run:
|
|
|
|
```sh
|
|
/mnt/storage/src/mosaic-stack/agents/filbert/launch.sh
|
|
```
|
|
|
|
The agent launcher is a thin shim to `scripts/agent.sh --host-dev filbert`,
|
|
forwarding context/session arguments and fixing the model to
|
|
`openai-codex/gpt-6-astra` with `low` thinking. `scripts/agent.sh` is the common entry
|
|
point; `scripts/agent-host-dev.sh` implements its native development mode.
|
|
The host launcher opens the repository as Filbert's workspace.
|
|
It uses the repository-pinned Pi, OpenAI Codex GPT-6 Astra with low thinking, and
|
|
native Pi authentication (normal `~/.pi/agent`, or `PI_CODING_AGENT_DIR` if
|
|
explicitly set). It never copies credentials. Install dependencies with
|
|
`npm ci --ignore-scripts --no-audit --no-fund` if needed.
|
|
|
|
`--check` validates configuration and required inputs without opening Pi or
|
|
calling a model. `--fresh` starts a new conversation without deleting earlier
|
|
ones. Normal launches continue the latest conversation under
|
|
`.pi/state/filbert/sessions/`; the first launch creates one. A launcher lock
|
|
rejects simultaneous launches through this script. It does not exclude Pi
|
|
processes started another way. Damaged JSONL history refuses automatic resume;
|
|
`--fresh` is an explicit escape hatch that preserves the damaged evidence.
|
|
|
|
The current files are combined into a private launch snapshot under
|
|
`.pi/state/filbert/launches/`:
|
|
|
|
- `contracts/CONSTITUTION.md` and `contracts/STANDARDS.md`
|
|
- `agents/filbert/SOUL.md`
|
|
- `<configured dataRoot>/user/USER.md`, the deployment's live user profile
|
|
- the repository's `AGENTS.md` and Filbert's `CONTEXT.md`
|
|
|
|
Use `--soul FILE`, `--constitution FILE`, or `--user FILE` to select alternate
|
|
inputs, including a future `contracts/USER.md`. Relative paths resolve from
|
|
the repository root. Missing or empty inputs refuse launch. Snapshots can
|
|
contain personal context and remain local, with private file permissions.
|
|
Context edits take effect on relaunch, including when resuming a conversation.
|
|
|
|
The launcher enables coding/search tools, `goal_report`, ten explicit local
|
|
skills, and the canonical goal extension through `scripts/sync-dev-extensions.sh`.
|
|
Ambient context, skills, extensions, templates, and themes are disabled.
|
|
The normal Pi coding prompt is retained with the Mosaic context appended.
|
|
Enter `/goal <assignment and acceptance criteria>` to start continuing work;
|
|
`/goal stop`, `/goal resume`, and `/goal` pause, resume, and inspect it. A new
|
|
process does not automatically adopt a previous process's goal.
|
|
|
|
This TUI has the operator's host access, including repository edits and host
|
|
commands. Its tool list is not OS isolation. It creates no managed role or
|
|
fleet registration. Worker dispatch still uses the governed Mosaic task runner.
|
|
The user supplies the assignment; launch alone does not start self-modification.
|
|
|
|
## Deployment findings
|
|
|
|
The existing `scripts/agent.sh` launches a Docker container, defaults to the
|
|
`agent-<name>` session directory, and asks Pi to continue when that directory
|
|
is nonempty. Its default workspace is `<dataRoot>/workspaces/<name>`, not this
|
|
checkout. `src/load-contracts.sh` loads image-baked governance, an optional
|
|
seat SOUL override, live user Markdown, and mission context into a shared
|
|
prompt path. A seat override requires `agent.json`; a standalone SOUL is not
|
|
discovered. `adapters/pi/adapter.sh` disables extensions. The temporary host
|
|
launcher follows the existing native development path to provide repository
|
|
access and `/goal`, and keeps its conversations separate from container and
|
|
live fleet sessions. It does not invoke release alignment on startup.
|