/** * Org sections piece P4.9 (plan 13.2, A63 to A69): what a section lead is owed and what a role may not do across * sections. Pure, and every rule is off for an org that is not on the sections surface. * * - `taskAssignmentRefusal`: the `org_task` / `org_plan_graph` assignee bound. The same rule as the `org_send` * one in routing.ts: refused when creator and assignee are both in a section, the sections differ and the * creator is not the root. Same-section assignment (member to member, lead to member) is not bound (item 30). * - `leadFor`: who a notice about a role is addressed to: the role's section lead when it is not the role itself, * else the role's `reports_to`, else the root. A sections-off org never asks (callers keep `reports_to`). * - `leadRulesFindings`: the capacity preflight (an error) and the `reports_to` advice (a warning). */ import type { OrgDef } from '../types.js'; import type { Findings } from './definition-util.js'; /** The `max_concurrent_agents` an org gets when it sets none (types.ts). */ export declare const DEFAULT_MAX_CONCURRENT_AGENTS = 4; interface DefLike { sections?: unknown; roles: { id: string; type?: string; reports_to?: string | null; }[]; } /** The lead of a section: its declared lead, else its first member (a one-member section leads itself). */ export declare function sectionLead(def: Pick, section: string): string | undefined; /** Why `creator` may not give a task to `assignee`, or undefined when it may. */ export declare function taskAssignmentRefusal(def: DefLike, creator: string, assignee: string): string | undefined; /** The role to tell about `role`: its section lead, else its `reports_to`, else the root (`boss`). */ export declare function leadFor(def: DefLike, role: string, boss: string): string; /** Errors and warnings of the lead rules for a definition on the sections surface. */ export declare function leadRulesFindings(def: OrgDef, f: Findings): void; export {}; //# sourceMappingURL=lead-rules.d.ts.map