import type { BlockingClass, OperationOutcome, OperationPhase, OperationPresentation, ProgressAttempt, ProgressUnit, SettledOutcome, UnitDisposition, UnitState, UnitStateCounts, ArtifactChange, ConfiguredAgentOutcome } from "@agentxm/workspace-kernel/operations"; import type { Change, Tone } from "./doc.js"; export declare const count: (value: number, singular: string, plural?: string) => string; export declare const bytes: (value: number) => string; export declare const duration: (elapsedMs: number) => string; /** * How long is left before a handoff expires, as an open wait says it. A wait * that has run out says so rather than counting past zero. */ export declare const remainingTime: (remainingMs: number) => string; /** The word one of an open wait's keys carries. */ export declare const waitKeyWord: (action: "open" | "copy" | "stop") => string; export declare const unitState: (state: UnitState) => string; /** The process exit code a problem ends with, as its aside states it. */ export declare const exitPhrase: (code: number) => string; /** * What a result row says about a unit the operation stopped before: it was * never attempted, which is not the same as being blocked by a condition of * its own. */ export declare const NOT_TRIED = "not tried"; /** * What a planned row says in place of a version when the operation has not yet * resolved what it will move to. A dash reads as "there is none"; a plan that * has not resolved its target yet has one it does not know. */ export declare const PENDING_VERSION = "pending"; /** * What a cell or field says in place of a value there is none of: a version * nothing reported, a title a concept does not carry, an activation that does * not apply. A dash reads as "there is none" in every mode, so the marker is * the same in Unicode and ASCII output and AXM prints no symbol of its own * for it. */ export declare const ABSENT = "-"; /** Why a row rolled back when the unit was still running as the operation stopped. */ export declare const INTERRUPTED_IN_FLIGHT = "interrupted in flight"; /** * Why a row was never tried, when nothing more specific stopped it. A unit the * operation stopped before still owes the reader a reason; this is the one it * has when no blocking condition named a subject of its own. */ export declare const notTriedReason: (presentation: OperationPresentation) => string; /** * What a row says when its producer settled it unsettled and supplied no * reason. Saying so is information; a blank line beneath a failed row is not. */ export declare const UNREPORTED_REASON = "no reason was reported"; export declare const unitStateChange: (state: UnitState) => Change; /** How far a running unit has come, in the unit its producer measured. */ export declare const progressMeasure: (measure: { readonly done: number; readonly total?: number; readonly unit: ProgressUnit; }) => string; /** * That a running unit is on a later attempt, and how many its producer may * make. Both numbers count attempts (including the first); a first attempt is * not a retry and says nothing. */ export declare const retryAttempt: (attempt: ProgressAttempt) => string | undefined; export declare const disposition: (value: UnitDisposition) => string; /** * The same settlement fact as a sentence of its own, for a reason line whose * producer already finished its own sentence. */ export declare const dispositionStatement: (value: UnitDisposition) => string; /** * What became of every unit that did not settle as planned, where they were * all left in the same state. A partial operation whose closures each rolled * themselves back says it once beneath its verdict instead of repeating it on * every row, and names what the claim covers so its scope is not guessed at. */ export declare const sharedDispositionStatement: (presentation: OperationPresentation, value: UnitDisposition) => string; export declare const blockingClass: (value: BlockingClass) => string; /** What the terminal is parked on while it waits on the system rather than a person. */ export declare const systemWaitStatus: (value: BlockingClass) => string; /** * What stopping a system wait costs, where that is known. Contention for the * workspace is decided before anything is written, so leaving it changes * nothing. */ export declare const systemWaitHint: (value: BlockingClass) => string | undefined; export declare const interruptionPhrase: (signal: "SIGINT" | "SIGTERM", disposition: "none" | UnitDisposition) => string; type PublishParticipation = "publish" | "verified-existing"; /** * What a publish plan ledger says an extension will do: be uploaded, or be * skipped because the registry already holds that exact version. */ export declare const publishParticipation: (value: PublishParticipation) => string; /** Why a publish row skips an extension the registry already holds. */ export declare const ALREADY_PUBLISHED = "already published"; /** What a publish result row says became of an extension. */ export declare const publishOutcome: (value: "published" | "failed" | "unconfirmed" | "blocked" | "skipped") => string; export type PublishPhase = "selection" | "authoritative_preflight" | "authorization" | "dependency_execution" | "upload_execution"; export declare const publishPhase: (value: PublishPhase) => string; export type PublishVisibilitySource = "manifest" | "workspace" | "explicit" | "account" | "platform" | "existing"; /** * Where an extension's visibility came from: set by an input for a new * extension, or kept from the publication the registry already holds. */ export declare const publishVisibilityOrigin: (disposition: "establish" | "preserve", source: PublishVisibilitySource) => string; /** How an extension's source relates to the Git HEAD the archive was compared with. */ export declare const publishSourceState: (status: "matches-head" | "differs-from-head" | "no-head", revision: string | undefined) => string; /** The archive paths that keep a working tree from matching Git HEAD. */ export declare const publishSourceDifferences: (differenceCount: number) => string; type PublishDisposition = "included" | "excluded" | "unmanaged" | "not-authored" | "not-publishable" | "unmatched"; export declare const publishDisposition: (value: PublishDisposition) => string; type PublishReason = "selected" | "excluded" | "unmanaged" | "unmatched_selector" | "version_already_published" | "not_authored" | "not_publishable" | "invalid_workspace_source" | "authorization_failed" | "authoritative_preflight_failed" | "dependency_unavailable" | "candidate_invalid" | "stale_material" | "publish_precondition_changed" | "deleting" | "held" | "archived" | "upload_failed" | "integrity_conflict" | "settlement_unresolved" | "authorization_expired" | "blocked_by_dependency" | "interrupted" | "blocked_by_preflight" | "source_state_not_accepted"; export declare const publishReason: (value: PublishReason) => string; /** The mark a ledger row carries for an artifact that changed as planned. */ export declare const artifactChangeMark: (value: ArtifactChange) => Change; /** * What a plan ledger says will happen to one unit. The words are the * workspace's own — an extension is installed, updated, or removed — not the * invoking verb's: the title line already names the command, and one * operation such as `sync` plans all three at once. */ export declare const plannedArtifactChange: (value: ArtifactChange) => string; export declare const artifactChange: (value: ArtifactChange) => string; export declare const agentOutcome: (value: ConfiguredAgentOutcome["outcome"]) => string; /** * The title line every plan-family command opens with: what it is doing, in * the operation's own verb. The ledger beneath it carries the units and the * verdict beneath that states the outcome. */ export declare const operationTitle: (presentation: OperationPresentation, mode: "preview" | "apply") => string; /** The subject noun alone, pluralized for a count that is stated separately. */ export declare const subjectNoun: (presentation: OperationPresentation, value: number) => string; /** The header a ledger's name column carries for an operation's subject. */ export declare const subjectHeader: (presentation: OperationPresentation) => string; /** Where an operation acts, for the aside on its title line. */ export declare const scopePhrase: (scope: "project" | "user") => string; /** * What a plan ledger's verdict states: the change it would make. Units that * are already current are not part of the claim; they are part of its aside. */ export declare const planVerdict: (presentation: OperationPresentation, mode: "preview" | "apply", changing: number) => string; export declare const outcomeHeadline: (presentation: OperationPresentation, outcome: OperationOutcome, counts: UnitStateCounts) => string; export declare const phaseLabel: (phase: OperationPhase) => string; export declare const settledOutcomeTone: (outcome: SettledOutcome) => Tone; export {}; //# sourceMappingURL=phrases.d.ts.map