/** * Org sections spec 6.12 and 13.2 (piece P4.2): the typed codes and the texts of the writer core. * Definition-time findings name the path they are about and a remedy (as `definition.ts` does); the * runtime refusals are written for a role that just tried to write and must know what to do next. */ export type WriterCode = 'writes-second-section' | 'writer-worktree-per-role' | 'writer-multiple' | 'writer-none' | 'writer-scope-uncovered' | 'writer-readonly-grant' | 'writer-readonly-git' | 'writer-sandbox-mode-overridden' | 'writer-boundary-unqualified'; export interface WriterFinding { code: WriterCode; severity: 'error' | 'warning'; /** The definition path the finding is about, e.g. `roles.qa.policy.sandbox.allowWrite`. */ path: string; /** Names the path and a remedy. */ message: string; /** Roles the finding is about, in definition order. */ roles: string[]; } /** One way a role can change the shared workspace. */ export type MutationReason = { kind: 'file-tools'; tools: string[]; scope: string[]; } | { kind: 'shell'; causes: string[]; } | { kind: 'provider'; providers: string[]; } | { kind: 'unclassified-tool'; tools: string[]; } | { kind: 'runner'; runtime: string; }; export declare function describeReason(r: MutationReason): string; export declare const READ_ONLY_REMEDY = "make the others read-only: deny Write, Edit, MultiEdit and NotebookEdit (policy.denyTools) and set policy.sandbox.mode \"required\" with policy.sandbox.denyWrite naming the workspace"; export declare function secondWriterSectionText(sections: string[]): string; export declare function worktreePerRoleText(): string; export declare function multipleWritersText(workspace: string, writers: { role: string; reasons: MutationReason[]; }[]): string; export declare function noWriterText(section: string): string; export declare function uncoveredScopeText(role: string, entries: string[], writes: string[]): string; export declare function readOnlyGrantText(role: string, key: string, entries: string[]): string; export declare function readOnlyGitText(role: string, level: string): string; export declare function sandboxModeText(role: string, mode: string): string; export declare function boundaryUnqualifiedText(role: string, workspace: string, why: string): string; /** What a role sees when its write is refused. `writer` is the sole writing role when known. */ export declare function refusalText(kind: 'outside-writes' | 'read-only', role: string, path: string, detail: { section?: string; writes: string[]; writer?: string; }): string; //# sourceMappingURL=writer-text.d.ts.map