packages feed

A-gent-0.11.0.20: README.md

Λ-gent
======

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

`Λ-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»_

[hackage-shield]:       https://hackage.haskell.org/package/A-gent
[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
│       │   └── SystemOne.hs
│       ├── LLM.hs
│       ├── RIO.hs
│       └── Utils.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
```

Project dependencies
====================

## Tree

```
A-gent-0.11.0.20
 ├─ base-4.19.2.0
 │   ├─ ghc-bignum-1.3
 │   │   └─ ghc-prim-0.11.0
 │   │       └─ rts-1.0.2
 │   ├─ ghc-prim-0.11.0 ┄┄
 │   └─ rts-1.0.2 ┄┄
 ├─ containers-0.8
 │   ├─ array-0.5.8.0
 │   │   └─ base-4.19.2.0 ┄┄
 │   ├─ base-4.19.2.0 ┄┄
 │   ├─ deepseq-1.5.1.0
 │   │   ├─ base-4.19.2.0 ┄┄
 │   │   └─ ghc-prim-0.11.0 ┄┄
 │   └─ template-haskell-2.21.0.0
 │       ├─ base-4.19.2.0 ┄┄
 │       ├─ ghc-boot-th-9.8.4
 │       │   └─ base-4.19.2.0 ┄┄
 │       ├─ ghc-prim-0.11.0 ┄┄
 │       └─ pretty-1.1.3.6
 │           ├─ base-4.19.2.0 ┄┄
 │           ├─ deepseq-1.5.1.0 ┄┄
 │           └─ ghc-prim-0.11.0 ┄┄
 ├─ mtl-2.3.1
 │   ├─ base-4.19.2.0 ┄┄
 │   └─ transformers-0.6.1.0
 │       └─ base-4.19.2.0 ┄┄
 └─ process-1.6.25.0
     ├─ base-4.19.2.0 ┄┄
     ├─ deepseq-1.5.1.0 ┄┄
     ├─ directory-1.3.8.5
     │   ├─ base-4.19.2.0 ┄┄
     │   ├─ filepath-1.4.301.0
     │   │   ├─ base-4.19.2.0 ┄┄
     │   │   ├─ bytestring-0.12.1.0
     │   │   │   ├─ base-4.19.2.0 ┄┄
     │   │   │   ├─ deepseq-1.5.1.0 ┄┄
     │   │   │   ├─ ghc-prim-0.11.0 ┄┄
     │   │   │   └─ template-haskell-2.21.0.0 ┄┄
     │   │   ├─ deepseq-1.5.1.0 ┄┄
     │   │   ├─ exceptions-0.10.7
     │   │   │   ├─ base-4.19.2.0 ┄┄
     │   │   │   ├─ mtl-2.3.1 ┄┄
     │   │   │   ├─ stm-2.5.3.1
     │   │   │   │   ├─ array-0.5.8.0 ┄┄
     │   │   │   │   └─ base-4.19.2.0 ┄┄
     │   │   │   ├─ template-haskell-2.21.0.0 ┄┄
     │   │   │   └─ transformers-0.6.1.0 ┄┄
     │   │   └─ template-haskell-2.21.0.0 ┄┄
     │   ├─ time-1.12.2
     │   │   ├─ base-4.19.2.0 ┄┄
     │   │   └─ deepseq-1.5.1.0 ┄┄
     │   └─ unix-2.8.6.0
     │       ├─ base-4.19.2.0 ┄┄
     │       ├─ bytestring-0.12.1.0 ┄┄
     │       ├─ filepath-1.4.301.0 ┄┄
     │       └─ time-1.12.2 ┄┄
     ├─ filepath-1.4.301.0 ┄┄
     └─ unix-2.8.6.0 ┄┄
```

## Direct deps

```
PkgId (PkgName "A-gent") (Ver [0,11,0,20])
CompNameLib
  base-4.19.2.0
  containers-0.8
  mtl-2.3.1
  process-1.6.25.0
```

## Topological sort

```
A-gent-0.11.0.20
process-1.6.25.0
directory-1.3.8.5
unix-2.8.6.0
time-1.12.2
filepath-1.4.301.0
exceptions-0.10.7
stm-2.5.3.1
bytestring-0.12.1.0
mtl-2.3.1
transformers-0.6.1.0
containers-0.8
template-haskell-2.21.0.0
pretty-1.1.3.6
ghc-boot-th-9.8.4
deepseq-1.5.1.0
array-0.5.8.0
base-4.19.2.0
ghc-bignum-1.3
ghc-prim-0.11.0
rts-1.0.2
```

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