packages feed

A-gent-0.11.0.19: README.md

Λ-gent
======

[![Hackage](https://img.shields.io/hackage/v/A-gent.svg)](https://hackage.haskell.org/package/A-gent)

`Λ-gent`, pronounced «_**a gent**_», where the **capital lambda** (`Λ`) is a
replacement of the letter `A` in **agent** due to their similarities and [lambda
calculus][lambda-calculus-wiki] being the backbone of [Haskell][haskell] and
`nix` {[language][nix-lang] | [package manager][nix-pkg-man] |
[command][nix-cmd]} / [NixOS][nix-nixOS].

With the substitution, we are now left with the word [gent][oxford-gent], the
abbreviation of [gentleman][oxford-gentleman], which will help us define our
[LLM][llm-wiki] **agent** as:

> _«Polite, well **educated**, has excellent manners and **always** behaves
> well»_

[haskell]:              https://www.haskell.org/
[nix-lang]:             https://wiki.nixos.org/wiki/Nix_(language)
[nix-pkg-man]:          https://wiki.nixos.org/wiki/Nix_(package_manager)
[nix-cmd]:              https://wiki.nixos.org/wiki/Nix_(command)
[nix-nixOS]:            https://wiki.nixos.org/wiki/NixOS
[lambda-calculus-wiki]: https://en.wikipedia.org/wiki/Lambda_calculus
[oxford-gent]:          https://www.oxfordlearnersdictionaries.com/definition/english/gent
[oxford-gentleman]:     https://www.oxfordlearnersdictionaries.com/definition/english/gentleman
[llm-wiki]:             https://en.wikipedia.org/wiki/Large_language_model

Project structure
=================

```sh
|-- doc
|-- src
|   |-- Agent
|   |   |-- Control
|   |   |   |-- Concurrent.hs
|   |   |   |-- IFC.hs
|   |   |   `-- MAC.hs
|   |   |-- Data
|   |   |   |-- ANSI
|   |   |   |   `-- EscapeCode.hs
|   |   |   `-- JSON.hs
|   |   |-- IO
|   |   |   |-- Effects.hs
|   |   |   `-- Restricted.hs
|   |   |-- LLM
|   |   |   |-- Action.hs
|   |   |   `-- Message.hs
|   |   `-- LLM.hs
|   |-- Internal
|   |   |-- GaloisInc
|   |   |   `-- Text
|   |   |       |-- JSON
|   |   |       |   |-- Generic.hs
|   |   |       |   |-- String.hs
|   |   |       |   `-- Types.hs
|   |   |       |-- JSON.hs
|   |   |       |-- LICENSE
|   |   |       `-- NOTES.md
|   |   |-- GlasgowUniversity
|   |   |   |-- Data
|   |   |   |   `-- Generics
|   |   |   |       `-- Aliases.hs
|   |   |   |-- LICENSE
|   |   |   `-- NOTES.md
|   |   |-- LLM
|   |   |   `-- Action.hs
|   |   |-- LLM.hs
|   |   |-- RIO.hs
|   |   `-- Utils.hs
|   `-- demo.hs
|-- uat
|   `-- TODO.md
|-- A-gent.cabal
|-- CHANGELOG.md
|-- LICENSE.md
|-- LICENSE_AGPL-3.0-only.txt
|-- LICENSE_SML-2.0.txt
|-- LICENSE_SSPL-1.0.txt
|-- README.md
|-- Setup.hs
`-- todo.org
```

Licenses
========

Source code in the [repository][gitlab-agent] is ONLY covered by a [**Server
Side Public License, v1 (SSPL-1.0)**][spdx-sspl-1].

However, as `SSPL-1.0` is not approved by the [Free Software Foundation
(FSF)][fsf] nor the [Open Source Initiative (OSI)][osi] as an open source
license (yet), the package will therefore be dual-licensed under the [**GNU
Affero General Public License v3.0 only (AGPL-3.0-only)**][spdx-agpl-3o] as well
so the [Hackage][hackage-osl] operators don't have any conflict with their
ability to operate the service.

Local versions of each of the licenses can be seen at:

* [**Server Side Public License, v1 (SSPL-1.0)**][local-sspl-1]

* [**GNU Affero General Public License v3.0 only
(AGPL-3.0-only)**][local-agpl-3o]

For organizations that can't use any of the mentioned open-source & copyleft
licenses, a commercial source-available & non-copyleft license, heavily inspired
by [Elastic License 2.0 (ELv2)][elastic-el-2], is provided:

* [**SPISE MISU License, v2 (SML-2.0)**][local-sml-2]

[gitlab-agent]: https://gitlab.com/a-gent/a-gent/

[spdx-sspl-1]:  https://spdx.org/licenses/SSPL-1.0
[spdx-agpl-3o]: https://spdx.org/licenses/AGPL-3.0-only
[hackage-osl]:  https://hackage.haskell.org/upload
[elastic-el-2]: https://www.elastic.co/blog/elastic-license-v2

[fsf]: https://www.fsf.org/
[osi]: https://opensource.org/

[local-sspl-1]:  ./LICENSE_SSPL-1.0.txt
[local-agpl-3o]: ./LICENSE_AGPL-3.0-only.txt
[local-sml-2]:   ./LICENSE_SML-2.0.txt