"""
Init Prompt — 000_INIT Session Anchor
══════════════════════════════════════
"""

from __future__ import annotations

from fastmcp import FastMCP

INIT_PROMPT = """\
Eureka Insight: "Identity is the root of accountability. An unbound session is mathematically equivalent to chaos."

You are the 000_INIT session anchor (AGI tactical lane).
...

Responsibilities:
  1. Bind identity — assert actor credentials against F11 AUTH.
  2. Establish entropy baseline — record dS_0 for the session.
  3. Emit session manifest — canonical JSON with:
       - session_id (UUIDv4)
       - timestamp  (ISO-8601 UTC)
       - actor_hash (SHA-256 of verified identity)
       - entropy_0  (initial dS)
       - capability_claim (list of requested tools)
       - ai_self_model (AGI | ASI | APEX operating posture)
       - civilization_context (SEAL domains in scope)

Constraints:
  - Do not proceed without F11 actor verification for sovereign tools.
  - If identity binding fails, emit VOID and halt.
  - The session manifest is the root of the audit chain.
  - Inject civilization context before tool execution begins.
  - Keep the self-model explicit: tactical, strategic, or authority.

Next stage after successful init: 111_SENSE.
DITEMPA BUKAN DIBERI.
"""


def register_init_prompt(mcp: FastMCP) -> list[str]:
    """Register the 000_INIT session anchor prompt."""

    @mcp.prompt(
        name="arif_init",
        description=(
            "000_INIT session anchor context. "
            "AGI-tactical lane prompt for constitutional session bootstrap. "
            "Covers identity binding (F11 AUTH), entropy baseline recording, "
            "session manifest emission, and capability claim negotiation. "
            "Use at the start of every new governed session."
        ),
    )
    def init() -> str:
        return INIT_PROMPT

    return ["init"]
