cover/Elixir.Tools.Sys.Agent.Schema.html

1 defmodule Tools.Sys.Agent.Schema do
2 def get(name, _state) do
3 10 %{name: name, description: desc(), parameters: params()}
4 end
5
6 10 defp desc do
7 "Read agent definition file."
8 end
9
10 defp params do
11 10 %{type: "object", properties: properties(), required: ["name"]}
12 end
13
14 defp properties do
15 10 %{name: %{type: "string", description: "Agent name to read"}}
16 end
17 end
18
19 defmodule Tools.Sys.Agent do
20 import Log, only: [log: 5, agent: 5]
21 import Utils.File, only: [file: 1]
22
23 @icon "🤖"
24
25 defdelegate spec(name, state), to: Tools.Sys.Agent.Schema, as: :get
26
27 def icon, do: @icon
28
29 def exec(_, %{"name" => name}, %{name: agent} = state) do
30 content = file("#{name}.md")
31 notify(content, name, agent)
32 {content, state}
33 end
34
35 defp notify(content, name, agent) do
36 log(@icon, name, ":", "\n#{content}\n", :white)
37 agent(@icon, name, ":", "\n#{content}\n", %{name: agent})
38 end
39 end
Line Hits Source