%%% Hecate Plugin SDK
%%% The contract between daemon and plugins.
%%% Plugins depend on this single package — all platform deps come transitively.
{erl_opts, [
    debug_info,
    warnings_as_errors
]}.

{deps, [
    %% Event sourcing stack
    {reckon_db, "1.6.0"},
    {reckon_gater, "1.3.0"},
    {evoq, "1.9.1"},
    {reckon_evoq, "1.5.0"},

    %% Telemetry
    {telemetry, "1.3.0"},

    %% HTTP server + WebSocket
    {cowboy, "2.12.0"},

    %% Read models
    {esqlite, "0.8.8"},

    %% Mesh
    {macula, "0.20.5"},

    %% HTTP client
    {hackney, "1.20.1"},

    %% AI/ML
    {faber_tweann, "1.2.0"},
    {faber_neuroevolution, "1.2.3"},

    %% Optional — protobuf for external integrations
    {gpb, "4.21.2"}
]}.

{profiles, [
    {test, [
        {deps, [
            {meck, "0.9.2"}
        ]}
    ]}
]}.

{project_plugins, [
    rebar3_ex_doc,
    rebar3_hex
]}.

{ex_doc, [
    {source_url, <<"https://github.com/hecate-social/hecate-sdk">>},
    {extras, [
        <<"README.md">>,
        <<"guides/getting-started.md">>,
        <<"guides/implementing-a-plugin.md">>,
        <<"guides/plugin-architecture.md">>,
        <<"guides/observability.md">>,
        <<"guides/packaging.md">>,
        <<"CHANGELOG.md">>,
        <<"LICENSE">>
    ]},
    {groups_for_extras, [
        {<<"Guides">>, [
            <<"guides/getting-started.md">>,
            <<"guides/implementing-a-plugin.md">>,
            <<"guides/plugin-architecture.md">>,
            <<"guides/observability.md">>,
            <<"guides/packaging.md">>
        ]}
    ]},
    {assets, #{<<"assets">> => <<"assets">>}},
    {main, <<"README.md">>}
]}.

{hex, [{doc, ex_doc}]}.
