Skip to content

coasys/ad4m

Repository files navigation

Project Docs License: CAL 1.0

Logo

AD4M

The Agent-Centric Distributed Application Meta-ontology or just: *Agent-Centric DApp Meta-ontology*

  • A new meta-ontology for interoperable, decentralized application design
  • A spanning-layer to enable seamless integration between Holochain DNAs, blockchains, linked-data structures/ontologies and centralized back-ends
  • The basis for turning distinct, monolithic and siloed apps into a global, open and interoperable sense-making network

Repo Structure / History

This is the new mono-repository with all components making up a whole AD4M implementation merged back into what formerly was only the ad4m-executor.

  • core: Former ad4m repository. Holds the core ontology types, the Ad4mClient and the GraphQL schema build automatically from the core types. This package gets published as https://www.npmjs.com/package/@perspect3vism/ad4m and is thus holding most of the app/UI facing coding.
  • executor: All the code running inside an AD4M instance. UI-less GraphQL server, managing Agent keys, Perspectives and running Languages. TypeScript library without runnable main / executable.
  • host: Former ad4m-host repository. Imports and wraps executor and uses vercel/pkg to create runnable binary.
  • ui: Former ad4min repository. Tauri based system-tray icon launcher UI which is the end-user deployment including the host executable and providing and AD4M admin (AD4Min) UI interface.

  • connect: Former ad4m-connect repository. Convenience library to connect to a (local or via proxy) AD4M-executor, potentially requesting or reusing capability tokens and creating an Ad4mClient ready for the app/UI to use.
  • docs-src / docs: Documentation hosted under https://docs.ad4m.dev

The project started in August 2020 in https://github.com/lucksus/perspectivism, then got broken down into the ad4m (core), ad4m-executor and perspect3ve repositories for simultaneuous use in Flux and Perspect3ve. Other components got added over the years 2021, 2022.

In October/November 2022, these componentes were collected into a mono-repo again to avoid PR-chains across multiple repositories and to have version numbers be in lock-step.

Build

yarn install
yarn build

Testing

yarn install
yarn test

Building ad4m-host

yarn install
yarn run package-linux/macos/windows (choose version for your OS)

Building ad4min

yarn install
yarn run build-linux/macos/windows (choose version for your OS)

Publishing

Before making a PR with a set of changes, run the following command on your branch:

yarn changeset

This command will allow you to create a new set of changes, any associate them to given packages, for which you can decide if a major or minor version increment should be made.

Once your PR is merged into main, the yarn changeset publish script will be ran and your changes uploaded to npm in accordance with the version detailed in the changeset.