A-gent-0.11.0.19: README.md
Λ-gent
======
[](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