/** * The Fjall setup contract — the single source of truth for every command * string, step sequence and install path the onboarding surfaces show. * * Consumers (cross-system parity — every surface derives, none hand-copies): * the SKILL.md template, CLI next-step hints and gates, the MCP resolver, the * webapp wizard, and the docs lint. A rename lands here once; the fjall * parity test (`skillInvocationParity.test.ts`) proves every command below * still parses against the live commander program. * * Client-safe by construction: pure data plus pure functions, no Node * imports — the webapp renders this in the browser. */ /** The npm package end users install (the self-contained wrapper). */ export declare const PUBLIC_PACKAGE_NAME: "fjall"; export declare const INSTALL_SOURCES: readonly ["npm", "homebrew"]; export type InstallSource = (typeof INSTALL_SOURCES)[number]; export declare const SETUP_COMMANDS: { readonly install: "npm install -g fjall"; readonly upgrade: "npm install -g fjall@latest"; readonly upgradeHomebrew: "brew upgrade fjall"; readonly installSkill: "fjall agent install-skill"; readonly installHooks: "fjall agent install-hooks"; readonly uninstallHooks: "fjall agent uninstall-hooks"; readonly sessionContext: "fjall agent session-context"; readonly login: "fjall login"; readonly loginDevice: "fjall login --device"; readonly loginDeviceAgent: "fjall login --device --agent"; readonly createAccount: "fjall create account"; readonly createOrganisation: "fjall create organisation"; readonly connect: "fjall connect"; readonly connectStatus: "fjall connect status"; readonly accountDeploy: "fjall account deploy"; readonly organisationDeploy: "fjall org deploy"; readonly createApplication: "fjall create app"; readonly createApplicationAgent: "fjall apps create"; readonly deployApplication: "fjall deploy "; readonly status: "fjall status"; }; export type SetupCommandId = keyof typeof SETUP_COMMANDS; /** The upgrade command for how the CLI was installed. */ export declare function upgradeCommand(source: InstallSource): string; export declare const SETUP_MODES: readonly ["account", "organisation"]; export type SetupMode = (typeof SETUP_MODES)[number]; export declare const SETUP_STEP_IDS: readonly ["scaffold", "connect", "deploy"]; export type SetupStepId = (typeof SETUP_STEP_IDS)[number]; export interface SetupStep { readonly id: SetupStepId; readonly command: SetupCommandId; /** Short, path-neutral title — checklist rows, wizard headings. */ readonly label: string; /** One sentence on what the step leaves behind. */ readonly summary: string; } export type SetupStepSequence = readonly [SetupStep, SetupStep, SetupStep]; /** * The three steps of each setup mode, in order. Presentation-only fields * (time hints, teasers, expected-output lines) stay with the surface that * renders them. */ export declare const SETUP_STEPS: Record; /** * The prompt a person pastes into their agent, one per mode. Derived from * `SETUP_STEPS` so the prompt and the checklist can never name different * commands. */ export declare const AGENT_SETUP_PROMPTS: Record; /** The one-line install for agent hosts: CLI plus the skill file. */ export declare const AGENT_INSTALL_COMMAND: "npm install -g fjall && fjall agent install-skill"; /** * Where `fjall agent install-skill` writes SKILL.md, relative to the home * directory. The runtime `join(homedir(), ...SKILL_INSTALL_SEGMENTS)` and the * display string both derive from this tuple. */ export declare const SKILL_INSTALL_SEGMENTS: readonly [".claude", "skills", "fjall"]; export declare const SKILL_INSTALL_FILENAME: "SKILL.md"; export declare const SKILL_INSTALL_DIR: `~/${string}`; export declare const SKILL_INSTALL_PATH: `~/${string}/SKILL.md`; export { compareSemver, isNewerVersion, parseSemver, type ParsedSemver } from "./versionCurrency.js";