/** * The guided path — one graph of "what to run next", shared by the journey * commands so the CLI reads as a coherent flow instead of a pile of one-off * `log.dim("Run synap …")` hints. * * Two consumers, one source of truth: * - HUMANS get a consistent, dim `Next:` block via `renderNextSteps()`. * - AGENTS get the SAME `NextStep[]` in every journey command's `--json` * output (a `nextSteps` field), so a script/agent can parse the graph and * chain the next call without scraping prose. * * `command` is a full, runnable `synap …` invocation (paste-able / executable); * `why` is a crisp one-liner. Placeholders like `` / `` stay literal * where the concrete value isn't known yet. */ export interface NextStep { /** A full runnable command, e.g. `synap market --list`. */ command: string; /** Why you'd run it next — one crisp line. */ why: string; } /** * Print a consistent, dim `Next:` block (aligned `command — why`). No-op on an * empty list. Goes to stdout via the `log.*` helpers, alongside ordinary output * detail (a next-step block is guidance, not an error). */ export declare function renderNextSteps(steps: NextStep[]): void; /** * The canonical flow graph. Each edge is a small function returning 1–3 * `NextStep`s for "you just did X → here's the sensible next move(s)." */ export declare const FLOW: { /** After switching the active pod. */ afterPodUse(podName: string): NextStep[]; /** After logging in to the Synap account (control plane). */ afterLogin(email?: string): NextStep[]; /** After pinning a project as the active lens. */ afterProjectUse(name: string): NextStep[]; /** After creating a new project. */ afterProjectNew(name: string, id: string): NextStep[]; /** After listing projects (or after orient). */ afterProjectList(): NextStep[]; /** After browsing the marketplace. */ afterMarketList(): NextStep[]; /** After a market install. `proposed` = governance queued it for approval. */ afterMarketInstall(args: { slug: string; proposed: boolean; projectName?: string; }): NextStep[]; /** After `synap launch` stands up a company/OS (pod-wide, or under a project). */ afterLaunch(projectName?: string): NextStep[]; /** After orienting on the pod. */ afterOrient(): NextStep[]; /** After `synap market update` found drift but didn't apply (no --yes / no slug). */ afterMarketUpdateCheck(slugsWithUpdates: string[]): NextStep[]; /** After `synap market installed` inventoried the pod (found drift or not). */ afterMarketInstalledCheck(slugsWithUpdates: string[]): NextStep[]; /** After `synap market update` applied one or more updates. */ afterMarketUpdateApply(): NextStep[]; };