import { PromptModule, ModuleConfig } from './prompt-module.interface.js'; /** * The one-thread-per-answer rule every role gets (2026-09-28: an agent * answered an earlier thread's request inside the newest thread, bundled with * the newest question's answer). */ export declare const SLACK_THREAD_RULE_SECTION: string; /** * How a Claude Code agent receives an owner message mid-turn (the * agent-status PostToolUse hook's note). Without it the model may take the * note for a prompt injection in the tool output and ignore it (scratch * tests 2026-10-05, Haiku: 1 of 3 answered without this section; with it * 6 of 6 for a plain question — see specs/2026-10-05-owner-message-via-hook.md). */ export declare const OWNER_MESSAGE_MID_TURN_SECTION: string; /** * Communication module — defines how agents communicate across channels. * * Consolidates message routing (Slack, Chat UI, NOTIFY markers), * reply formatting, notification protocol, and thread-aware messaging * into a single module. Orchestrators get the full communication spec; * workers get a compact report-status-only version. * * Sources: orchestrator prompt.md §Chat & Slack Communication, * §Notification Protocol, §Markdown Content, §Communication Channels, * tool-registry reply_slack. */ export declare class CommunicationModule implements PromptModule { name: string; priority: number; maxTokens: number; compactable: boolean; /** * Always included — every agent communicates. */ shouldInclude(_config: ModuleConfig): boolean; /** * Build the communication section. * Orchestrators and TLs get full Slack/Chat/NOTIFY instructions. * Workers get a compact version focused on report-status and send-message. * * @param config - Module configuration with agent details * @returns Formatted markdown communication section */ build(config: ModuleConfig): Promise; /** * The role-specific part of the section. * * @param config - Module configuration with agent details * @returns Markdown for the agent's role */ private buildRoleSection; /** * Build a skill call example snippet. For gemini-cli runtime, uses CLI flags * to avoid shell escaping EOF errors entirely. For other runtimes, uses * inline JSON argument. * * CLI flags approach eliminates ALL quoting issues — each flag value is a * simple double-quoted string, no JSON nesting, no single-quote matching. * * @param config - Module configuration with runtime type * @param skillPath - Relative path to the skill (e.g., 'core/report-status') * @param jsonExample - Example JSON string for inline mode (non-gemini) * @param cliExample - Optional CLI flags example for gemini-cli mode * @param basePath - Optional base path override (defaults to config.agentSkillsPath). * Use config.tlSkillsPath for team-leader skills like delegate-task. * @returns Formatted bash code block */ private buildSkillExample; /** * Full orchestrator communication spec — Slack, Chat UI, NOTIFY markers, * thread management, message formatting, and notification protocol. * * Per orc-namespace convention (skill SKILL.md frontmatter excludes * orchestrator from `assignableRoles` on send-message + recall + etc.): * orc has its own send-message wrapper at `config/skills/orchestrator/send-message/` * that routes through `/terminal/{session}/deliver` (readiness-aware, * two-step delivery, retry) instead of the agent-side * `/terminal/{session}/write` (raw PTY buffer write, no readiness, no * Enter semantics). Rendering the agent-skills path here would let orc * fall back to `/write` and miss orc-specific routing — the exact * "ORC was using WRONG send-message skill" gotcha recorded in the * project knowledge base on 2026-05-05. * * Spec provenance: 4-piece skill-mistake fix dispatch piece #2 * (Sam→Quinn, post-PR #446 merge). */ private buildOrchestratorComms; /** * Build a bash example using an orc-namespaced skill path (vs the agent-side * `core/` path used by {@link buildSkillExample}). Mirrors * `buildSkillExample` for shape consistency but resolves the path under * `config/skills/orchestrator//` and never falls back to a heredoc * since orc-namespaced skills are uniformly CLI-flag-friendly. * * Spec provenance: 4-piece skill-mistake fix dispatch piece #2. * * @param orchestratorSkillsPath - Absolute path to `config/skills/orchestrator/` * @param skillName - Skill directory name under the orc-namespace (e.g. `send-message`) * @param jsonExample - Inline JSON example for non-gemini runtimes * @param cliExample - CLI flags example for gemini-cli runtimes * @param runtimeType - Runtime type to choose JSON vs CLI rendering * @returns Formatted bash code block invoking the orc-namespaced skill */ private buildOrcSkillExample; /** * Build the body of the orchestrator Communication section. Split out from * {@link buildOrchestratorComms} so the per-piece example construction stays * isolated from the long Slack/Chat/NOTIFY markdown body. */ private buildOrchestratorCommsBody; /** * TL communication — delegation-focused messaging plus basic user comms. */ private buildTLComms; /** * Worker communication — compact report-status and send-message only. */ private buildWorkerComms; } //# sourceMappingURL=communication.module.d.ts.map