#ifndef DIDACTYL_DEFAULT_EVENTS_H
#define DIDACTYL_DEFAULT_EVENTS_H

#define DIDACTYL_DEFAULT_SKILL_D_TAG "identity_and_rules"
#define DIDACTYL_DEFAULT_SKILL_KIND 31124
#define DIDACTYL_DEFAULT_SKILL_TAGS_JSON "[[\"d\",\"identity_and_rules\"],[\"app\",\"didactyl\"],[\"scope\",\"private\"],[\"description\",\"Agent identity and behavioral rules\"],[\"trigger\",\"dm\"],[\"filter\",\"{\\\"from\\\":\\\"admin\\\"}\"]]"

#define DIDACTYL_DEFAULT_DM_HISTORY_SKILL_D_TAG "dm_history"
#define DIDACTYL_DEFAULT_DM_HISTORY_SKILL_KIND 31124
#define DIDACTYL_DEFAULT_DM_HISTORY_SKILL_TAGS_JSON "[[\"d\",\"dm_history\"],[\"app\",\"didactyl\"],[\"scope\",\"private\"],[\"description\",\"DM conversation history for context continuity\"],[\"trigger\",\"dm\"],[\"filter\",\"{\\\"from\\\":\\\"admin\\\"}\"]]"

#define DIDACTYL_STARTUP_KIND_PROFILE 0
#define DIDACTYL_STARTUP_KIND_CONTACTS 3
#define DIDACTYL_STARTUP_KIND_RELAYS 10002

static const int DIDACTYL_DEFAULT_STARTUP_EVENT_KINDS[] = {
    DIDACTYL_STARTUP_KIND_PROFILE,
    DIDACTYL_STARTUP_KIND_CONTACTS,
    DIDACTYL_STARTUP_KIND_RELAYS
};

#define DIDACTYL_DEFAULT_STARTUP_EVENT_KIND_COUNT ((int)(sizeof(DIDACTYL_DEFAULT_STARTUP_EVENT_KINDS) / sizeof(DIDACTYL_DEFAULT_STARTUP_EVENT_KINDS[0])))

#define DIDACTYL_DEFAULT_KIND0_PROFILE_JSON_TEMPLATE "{\"name\":\"%s\",\"display_name\":\"%s\"}"
#define DIDACTYL_DEFAULT_KIND3_CONTENT ""
#define DIDACTYL_DEFAULT_KIND3_TAGS_JSON_TEMPLATE "[[\"p\",\"%s\"]]"
#define DIDACTYL_DEFAULT_KIND10002_CONTENT ""

static const char* DIDACTYL_DEFAULT_RELAYS[] = {
    "wss://relay.damus.io",
    "wss://nos.lol",
    "wss://relay.primal.net"
};

#define DIDACTYL_DEFAULT_RELAY_COUNT ((int)(sizeof(DIDACTYL_DEFAULT_RELAYS) / sizeof(DIDACTYL_DEFAULT_RELAYS[0])))

static const char* DIDACTYL_DEFAULT_SKILL_TEMPLATE =
    "# Didactyl Agent\n\n"
    "You are {{my_kind0_profile}}\n\n"
    "Your npub: {{my_npub}}\n\n"
    "## Rules\n\n"
    "- Communicate through encrypted Nostr direct messages\n"
    "- Keep responses concise and clear\n"
    "- Be helpful and technically accurate\n"
    "- If unsure, state uncertainty directly\n"
    "- Use tools when a request requires taking action\n"
    "- After a tool call, base your answer on the actual tool result\n"
    "- Never claim a tool was run if no tool was executed\n"
    "- Maintain your task list as short-term working memory\n"
    "- Never reveal your private key (nsec)\n"
    "- You may share your public key (npub) with anyone";

static const char* DIDACTYL_DEFAULT_DM_HISTORY_SKILL_TEMPLATE =
    "## Recent Conversation\n\n"
    "{{nostr_dm_history({\"format\":\"text\",\"limit\":12})}}";

#endif