WIP and under heavy development
This is an agent-centric browser and example usage of AD4M. Its a desktop GUI application that provides means for creating Perspectives and creating and linking expressions inside these Perspectives. It therefore holds a set of Languages in which expressions can be created. Languages have access to a list of storage backe-ends (currently implemented are only IPFS and Holochain - more will follow soon). Many features are still missing and currently under development.
TODO: add list of features here.
This project was the birthing place of all things Perspect3vism and thus the first AD4M implementation. In order to reuse the same AD4M run-time code in other projects, the code that is running in the Electron/Node thread (i.e. the local back-end) got extracted into other repositories under the Perspect3vism GitHub org - particularly the AD4M executor which gets pulled in as NPM package @perspect3vism/ad4m-executor and spawned in main.js.
Since some of the AD4M Languages use Holochain and include a Holochain DNA, building those needs a Holochain dev environment. The supported way of getting that is through nix-shell
. (See https://developer.holochain.org/install/ for how to install Nix)
All the Holochain dependencies are handled through Nix, as configured in default.nix.
Several sub-commands run with npm run build
use nix-shell
.
Entering the nix-shell will take a while on first run - subsequent runs will be instantanious.
npm install
npm run build
This will build all AD4M Languages as well as the UI. It will also create symbolic links from the repositories root directory to the Holochain binaries in the Nix store.
npm run build
runs these sub-commands in order:
build-ui
(running TSC and Rollup over UI code)get-languages
(download some pre-built AD4M Languages)build-languages
(build AD4M Languages in this repo - runsnix-shell
)create-symlinks
(create symbolic links for Holochain binaries - runsnix-shell
)
npm start
or
npm run dev