Vývoj na Antimatter

Tento průvodce je určen vývojářům. Pokrývá skripty a boty, které využívají API, integrace postavené na webhookách a příkazech s lomítkem, aplikace (pluginy), které přidávají funkce na server a do webové aplikace, a sestavení Antimatteru ze zdrojového kódu s cílem přispět k jeho vývoji.

Způsoby, jak Antimatter rozšířit

Vyberte nejjednodušší nástroj, který splní úkol. První čtyři nevyžadují přístup k samotnému serveru; aplikace v něm běží.

NástrojCo děláVhodné pro
REST APIVše, co aplikace dělají: zprávy, kanály, lidé, soubory, nastavení. WebSocket odesílá události v reálném čase.Skripty, synchronizace s jinými systémy, vlastní klienti.
Příchozí webhooksTajná URL, která pošle zprávu do kanálu, když jí něco pošle JSON.Upozornění, výsledky CI, monitorování, oznámení z jiných nástrojů.
Odchozí webhooksAntimatter zavolá vaši URL, když zpráva ve veřejném kanálu začíná spouštěcím slovem, nebo když někdo v menu zprávy vybere vaši akci, a poté zveřejní vaši odpověď.Jednoduché automatizace řízené chatem, které odesílají zprávu do jiného nástroje.
Příkazy s lomítkemLidé zadají /something; Antimatter zavolá na vaši URL a zobrazí vaši odpověď jim nebo do kanálu.Vyhledávání, akce spouštěné z chatu.
BotiÚčty vytvořené pro programy, s vlastními tokeny, štítkem BOT (AGENT pro AI agenty) a interaktivními zprávami a dialogy.Asistenti, oznamovací nástroje, AI agenti, které provozujete sami – cokoliv, co komunikuje s lidmi.
Aplikace (pluginy)Kód, který běží uvnitř serveru (Go) a v webové aplikaci (React): háčky pro každou zprávu, nové nabídky, panely, typy zpráv, stránky.Funkce: hlasování, poznámky, kalendáře, integrace, které vyžadují uživatelské rozhraní.

V rozhraní lidé pluginy nazývají „aplikace“. Tento průvodce používá „aplikace (pluginy)“, kde oba pojmy pomáhají, protože kód, API i konfigurace stále používají slovo „plugin“.

Kompatibilita s Mattermostem

Antimatter je fork Mattermostu. Většina toho, co funguje se serverem Mattermost, funguje i s Antimatterem.

Co je stejné

  • REST API pod /api/v4, jeho autentizace, WebSocket a formát chyb. Server hlásí verzi 12.0.0, takže klienti a aplikace, které kontrolují verzi serveru, vidí nedávnou verzi Mattermostu.
  • Webhooky a příkazy s lomítkem, včetně jejich platby kompatibilních se Slackem.
  • API a háčky serverového pluginu: Antimatter je ponechává beze změny. Serverový kód se staví na stejný Go modul, github.com/mattermost/mattermost/server/public. Antimatter pouze přidává metody pro svůj AI servis (viz AI servis).
  • Rejstřík pluginů webové aplikace: každá metoda register… z rejstříku Mattermostu existuje v obou webových rozhraní Antimatteru.
  • Klientské knihovny: Go klient model.Client4 a TypeScript klient @mattermost/client (viz Klientské knihovny).
  • Pluginové balíčky: soubor .tar.gz s manifestem plugin.json. Nainstalují se pluginy podepsané klíčem Mattermostu, stejně jako ty podepsané klíčem Antimatteru.

Co se liší

  • Dvě webová rozhraní. Nové rozhraní Fusion je výchozí; klasické rozhraní Mattermostu je stále k dispozici. Fusion vykreslí většinu komponent pluginů, některé z nich však umísťuje jinak a několik jich vynechá. Aplikace může zjistit, které rozhraní právě běží. Viz Podpora rozhraní Fusion.
  • Další API. Antimatter přidává koncové body pro své vlastní funkce: komunitní atributy, časové limity, zprávy nahoře, požadavky na zprávy, přepsání nastavení kanálů a kategorií, export kanálu, přesouvání vláken, připojení modelů, akce se zprávami a nová pole pro komunity. Viz Co Antimatter přidává do API.
  • Další funkce zpráv. Přílohy zpráv mohou zobrazovat fáze pipeline a malý graf; příspěvky mohou být vnitřní odpovědi nebo spoilery.
  • Další háčky webové aplikace pro aplikace: položka v menu „+“ kompozitoru, záložky v výběru emoji, panel ve zobrazení kanálu, patička pod kanály v bočním panelu, položka na stránkách integrací, zobrazení pro přidávání a správu ve výběru emoji a boční panel, který se znovu otevře na stejném místě v novém okně. Viz Háčky, které má pouze Antimatter.
  • Žádné licence. Každá funkce je dostupná bez licenčního klíče. Koncové body pro licenci, zkušební verzi a upgrade na podnikové edice zmizely; GET /api/v4/license/client zůstává pro klienty, které se ho ptají. Některé aplikace vytvořené pro placené edice Mattermostu si licenci ověřují samy a odmítají spustit.
  • Názvy. V rozhraní se týmy nazývají komunity, ale API i kód stále používají team. Proměnné prostředí používají předponu AM_, příkazový řádek je amctl a binární soubor serveru je antimatter.

Kde se kód nachází

Všechno je open source, v organizaci AntimatterChat na GitHubu. Každé repozitář pracuje na větvi main.

RepozitářCo obsahuje
antimatterServer (Go, v server/), oba webové rozhraní (webapp/fusion a webapp/channels), TypeScript klient a amctl.
antimatter-dockerDocker obrazy, včetně zabudovaných aplikací, a soubory compose.
antimatter-plugin-*Jedno repozitář pro každou zabudovanou aplikaci: polls, todo, notes, whiteboard, calendar, mail, gifs, memes, voice-channels, calls, boards (Kanban), playbooks, agents a metrics.
gifs-serverSelf-hosted služba pro GIF a samolepky, kterou používá aplikace GIFs.
desktop-app, mobile-app, push-proxyDesktopové a mobilní aplikace a služba, která přeposílá push oznámení na telefony.
antimatter.chatTento web a jeho dokumentace.
communityProblémy a diskuze pro všechny části Antimatter.

Před spuštěním

  • Získejte testovací server. Nejrychlejší je Docker image: viz Instalace Antimatter. Pokud chcete pracovat přímo na Antimatter, viz Kompilace ze zdrojového kódu.
  • Zkontrolujte, co server povoluje. Některé integrační funkce jsou ve výchozím nastavení vypnuté a vyžadují systémového administrátora: osobní přístupové tokeny, bot účty, přepsání uživatelského jména a ikony a nahrávání aplikací. Každá stránka uvádí, které nastavení je potřeba.
  • Znát URL vašeho webu. Příklad používá https://chat.example.com. Nahraďte ji adresou vašeho serveru.

V tomto průvodci

  • REST API: autentizace, hlavní zdroje, stránkování, chyby, limity požadavků, WebSocket, klientské knihovny a rozšíření Antimatter.
  • Webhooks: příchozí a odchozí webhooks, payloads, přílohy a karty.
  • Příkazy s lomítkem: vlastní příkazy, jejich požadavky a odpovědi, automatické doplnění.
  • Boti a interaktivní zprávy: účty botů, externí agenti, tlačítka, nabídky a dialogy.
  • Vytváření aplikací: struktura pluginu, serverové hooky, rejstřík webových aplikací, Fusion, nastavení, úložiště, překlady a balíčkování.
  • Kompilace ze zdrojového kódu: server, webové rozhraní, Docker image a aplikace.
  • Příspěvky do projektu: issues, pull requests, styl, překlady, bezpečnost a licence.
Dotazy jsou vítány v komunitních diskusích. Chyby hlášte v komunitních issues.