/**
 * Server-level instructions sent to agents on MCP handshake.
 * Keep under 3200 chars — this is context budget, not documentation.
 * Bumped from 2000 in 2026-05-11 (ADR-140 Phase 2b skills paragraph).
 * Bumped to 2400 then restored to 2300 in 2026-05-13 (deeplink hint + paragraph trims net -180 chars).
 * Bumped from 2300 in 2026-05-17 (ADR-241 first-session coaching line).
 * Bumped to 2900 in 2026-05-25 (ADR-247 first-call identity paragraph, ~470 chars).
 *
 * Two variants per ADR-211 Phase 1 Primitive C:
 *   - SERVER_INSTRUCTIONS / SERVER_INSTRUCTIONS_AUTHENTICATED: full surface
 *     guidance. Selected when the binary has a connection key (PICA_API_KEY).
 *   - SERVER_INSTRUCTIONS_UNAUTHENTICATED: short lobby guidance pointing the
 *     agent at pica_signup_start (or pica_sign_in for existing users).
 *     Selected when the binary boots without PICA_API_KEY. The lobby
 *     surface is the 3 tools {pica_signup_start, pica_sign_in,
 *     pica_sign_out} — none of the catalog tools are reachable, so we
 *     skip the catalog-tool guidance.
 *
 * Block playbook: "document the high level of your server"
 * Lowin: "instructions are context — design them as context"
 */
export declare const SERVER_INSTRUCTIONS = "withPICA helps people look after their songs, and everything that comes with them (people, splits, codes, recordings, agreements, files), on their own terms: the user holds the record and decides; PICA remembers and shows what's missing. Asked what PICA is, say that plainly, in their words. Tools are pica_<domain>_<verb>, 300+, from npm as @withpica/mcp-server (not @picahq/mcp, unrelated).\n\nFirst-call identity: If your auth is a Bearer API key (not a cookie session and not a pica_grant_* token), call pica_introduce_self FIRST with agent_name + optional agent_role / on_behalf_of / model_hint. PICA stamps the declaration onto every audit row that follows so the user can later reconstruct what their agent did. Cookie and pica_grant_* callers are exempt \u2014 your identity is already on file. Declaration is valid 24h per credential.\n\nOn the first user message of a session \u2014 unless it names a single concrete action (e.g. \"register work X\") \u2014 call pica_skill_get(\"first-session\") and follow it.\n\nStart here:\n- pica_dashboard_briefing \u2014 daily summary of what needs attention\n- pica_search_all \u2014 find any entity by name, ISWC, ISRC, or IPI\n- pica_works_query / pica_people_query \u2014 browse the catalog\n- pica_subscription_status \u2014 \"what's my plan / am I paying?\"; pica_billing_pay \u2014 a pay link for residency or a tab. On a connector call them through pica_execute {tool: \"<name>\", args: {...}}\n\nThe catalog is ALWAYS accessible via the tools above \u2014 zero setup, no integration required. Call pica_works_query directly for catalog content.\n\nClients: an organisation acts for a client catalogue by passing catalogue: <id from pica_portfolio_list>, per call; omit it for its own. Who can see a catalogue: pica_relationships_list.\n\nSpotify/YouTube URLs: call pica_import_streaming_link (Spotify/Deezer) or pica_import_youtube_link directly.\n\nAfter 3-5 catalog mutations or major state changes, call pica_dashboard_briefing and surface the delta to the user.\n\nKey patterns:\n- Read tools are safe to call freely (readOnlyHint=true)\n- many _inspect tools take a \"sections\" argument (e.g., pica_works_inspect sections: [\"health\", \"completeness\"]) \u2014 check the tool's schema\n- Write tools confirm what changed \u2014 share https://withpica.com/inspect/<feature>/<id> so the user can review (feature: works, people, recordings, releases, agreements; for audio files link the parent work). Destructive tools (delete/merge) need two-step confirmation with a token\n- Errors include \"suggestion\" and \"next_tool\" for recovery\n- Enrichment: use pica_resolve_work / pica_resolve_person / pica_resolve_recording \u2014 fan out over Spotify, MusicBrainz, MLC, ISNI, Discogs, YouTube\n\nRoyalty/streaming statements (PDF/image/xlsx): use pica_statements_pending \u2192 pica_documents_inspect \u2192 pica_statement_ingest_document (imports after owner approval). CSV statements go through pica_import_analyze / pica_import_execute instead.\n\nMost query tools accept \"limit\"; defaults vary \u2014 read the tool's schema. IDs are UUIDs \u2014 use a _query tool first when unsure.\n\nSkills: pica_skill_list discovers methodologies (catalog-audit, register-my-works, prepare-for-sync). pica_skill_get(name) loads one. Trigger phrases like \"audit my catalog\" map directly. Bodies load lazily \u2014 not at handshake.\n\nProvenance: when a fact comes from a source, cite it via pica_enrichment_propose sources[].url. Citations persist verbatim and propagate to applied entities.";
/** Alias for the authenticated default — names the variant explicitly when paired with the unauthenticated one. */
/**
 * How many leading characters of SERVER_INSTRUCTIONS a client was observed to
 * surface before cutting the rest. Measured 2026-09-04 on Claude Code's
 * rendering of the claude.ai connector ("[truncated]" after exactly this
 * many characters); ChatGPT surfaces none of it (docs/follow-ups
 * 2026-08-26). Anything that must reach an agent that never calls
 * pica_discover — the pay path above all — has to sit inside this window;
 * server-instructions.test.ts pins that it does.
 */
export declare const INSTRUCTIONS_OBSERVED_VISIBLE_CHARS = 2000;
export declare const SERVER_INSTRUCTIONS_AUTHENTICATED = "withPICA helps people look after their songs, and everything that comes with them (people, splits, codes, recordings, agreements, files), on their own terms: the user holds the record and decides; PICA remembers and shows what's missing. Asked what PICA is, say that plainly, in their words. Tools are pica_<domain>_<verb>, 300+, from npm as @withpica/mcp-server (not @picahq/mcp, unrelated).\n\nFirst-call identity: If your auth is a Bearer API key (not a cookie session and not a pica_grant_* token), call pica_introduce_self FIRST with agent_name + optional agent_role / on_behalf_of / model_hint. PICA stamps the declaration onto every audit row that follows so the user can later reconstruct what their agent did. Cookie and pica_grant_* callers are exempt \u2014 your identity is already on file. Declaration is valid 24h per credential.\n\nOn the first user message of a session \u2014 unless it names a single concrete action (e.g. \"register work X\") \u2014 call pica_skill_get(\"first-session\") and follow it.\n\nStart here:\n- pica_dashboard_briefing \u2014 daily summary of what needs attention\n- pica_search_all \u2014 find any entity by name, ISWC, ISRC, or IPI\n- pica_works_query / pica_people_query \u2014 browse the catalog\n- pica_subscription_status \u2014 \"what's my plan / am I paying?\"; pica_billing_pay \u2014 a pay link for residency or a tab. On a connector call them through pica_execute {tool: \"<name>\", args: {...}}\n\nThe catalog is ALWAYS accessible via the tools above \u2014 zero setup, no integration required. Call pica_works_query directly for catalog content.\n\nClients: an organisation acts for a client catalogue by passing catalogue: <id from pica_portfolio_list>, per call; omit it for its own. Who can see a catalogue: pica_relationships_list.\n\nSpotify/YouTube URLs: call pica_import_streaming_link (Spotify/Deezer) or pica_import_youtube_link directly.\n\nAfter 3-5 catalog mutations or major state changes, call pica_dashboard_briefing and surface the delta to the user.\n\nKey patterns:\n- Read tools are safe to call freely (readOnlyHint=true)\n- many _inspect tools take a \"sections\" argument (e.g., pica_works_inspect sections: [\"health\", \"completeness\"]) \u2014 check the tool's schema\n- Write tools confirm what changed \u2014 share https://withpica.com/inspect/<feature>/<id> so the user can review (feature: works, people, recordings, releases, agreements; for audio files link the parent work). Destructive tools (delete/merge) need two-step confirmation with a token\n- Errors include \"suggestion\" and \"next_tool\" for recovery\n- Enrichment: use pica_resolve_work / pica_resolve_person / pica_resolve_recording \u2014 fan out over Spotify, MusicBrainz, MLC, ISNI, Discogs, YouTube\n\nRoyalty/streaming statements (PDF/image/xlsx): use pica_statements_pending \u2192 pica_documents_inspect \u2192 pica_statement_ingest_document (imports after owner approval). CSV statements go through pica_import_analyze / pica_import_execute instead.\n\nMost query tools accept \"limit\"; defaults vary \u2014 read the tool's schema. IDs are UUIDs \u2014 use a _query tool first when unsure.\n\nSkills: pica_skill_list discovers methodologies (catalog-audit, register-my-works, prepare-for-sync). pica_skill_get(name) loads one. Trigger phrases like \"audit my catalog\" map directly. Bodies load lazily \u2014 not at handshake.\n\nProvenance: when a fact comes from a source, cite it via pica_enrichment_propose sources[].url. Citations persist verbatim and propagate to applied entities.";
/**
 * Returns the authenticated handshake instructions.
 *
 * Historically appended a state-conditional trial-ending nudge (ADR-210
 * Phase 3 / coordinator D3) keyed off `billing_state === 'trial'` +
 * `trial_days_remaining`. Removed 2026-07-04 (discoverability audit P1-6):
 * ADR-276 replaced the expiring-trial model with a non-expiring free-runway
 * allowance, so a day-count nudge no longer describes real account state —
 * dead messaging that would mislead an agent if it ever fired.
 */
export declare function getAuthenticatedInstructions(): string;
/**
 * Lobby instructions sent on handshake when the server has no connection key
 * (stdio without PICA_API_KEY) or no Bearer token (HTTP /api/mcp anonymous mode).
 *
 * Lobby tool surface is exactly three tools:
 *   - pica_signup_start — for new users (mints a 15-min JWT-bound /onboard URL)
 *   - pica_sign_in       — for existing users (sends a magic link)
 *   - pica_sign_out      — for clearing stale credentials
 *
 * Authority: ADR-211 Phase 1 § Primitive C. Catalog-tool guidance omitted
 * because none of the catalog tools are reachable in lobby mode.
 *
 * Kept byte-for-byte identical to lib/mcp/server-instructions.ts —
 * `__tests__/mcp-server-instructions-unauth-parity.test.ts` enforces.
 */
export declare const SERVER_INSTRUCTIONS_UNAUTHENTICATED = "You are connected to withPICA but no user is authenticated yet. Three tools are available:\n\n- pica_signup_start \u2014 for users new to withPICA. Ask for the user's email, then call this tool. It returns a single-use 15-minute signup link the user clicks to verify email, name their catalog, and start their free runway.\n- pica_sign_in \u2014 for users who already have a withPICA account. Sends a magic link to their inbox (device-code flow on stdio).\n- pica_sign_out \u2014 clears saved credentials.\n\nDo not promise catalog data, exports, or analyses until the user is signed in \u2014 none of those tools are reachable from this lobby. After signup or sign-in, the connection's tool surface refreshes automatically; ask the user what they want to do next.";
//# sourceMappingURL=server-instructions.d.ts.map