1.3.2 • Published 1 year ago

@darsai/api v1.3.2

Weekly downloads
-
License
UNLICENSED
Repository
-
Last release
1 year ago

@darsai/api

This package defines the api of the darsai system, generates library code for using it in multiple programming languages and also builds an CLI application.

API declaration

The api definition starts on the api-definition.ts file, which references specific commands in the api folder. Some commands are implemented in this package (usually client commands, like login and logout) The rest of the commands are built as json payloads to be sent to the api endpoints (like AWS lambda)

CLI

Before using the CLI a user acount must have been created in some of the darsai web apps: e.g. https://darsai.com/admin/ by simply logging in.

This package provides a unified command line interface to Darsai Services. To use it try:

node dist/esm/cli.js --help

To login interactively (through a web browser) using the default profile, then run a command and then logout:

node dist/esm/cli.js login
node dist/esm/cli.js list-agents
node dist/esm/cli.js logout

The auth credentials are stored in ~/.darsairc.json

If the package is installed globally, the CLI script is aliased as darsai:

npm install --global @darsai/api
darsai login
darsai list-agents
darsai logout

To install the local package globally (cli commands darsai and darsai-admin):

cd /packages/api/api
npm link
cd /packages/api/admin
npm link

API Libraries code building

pnpm build:sources

Example usage of the ts-api

import * as darsai from '@darsai/api-ts';

const config: darsai.ClientConfig = { auth: { profile: 'default' } };

// Calling createAgent using the typed client
const client: darsai.DarsaiClient = new darsai.DarsaiClient(config);

const request: darsai.CreateAgentRequest = { type: darsai.AgentType.Pepe };
client
	.createAgent(request)
	.then((response: darsai.CreateAgentResponse) => {
		console.log('createAgent 1 success', response);
	})
	.catch((err: any) => console.log('createAgent 1 error', err.message));

// Calling createAgent emulating the CLI
darsai
	.sendCommandLine(config, 'create-agent --type pepe')
	.then((response: any) => console.log('createAgent 2 success', response))
	.catch((err: any) => console.log('createAgent 2 error', err.message));