Skip to content

Commit

Permalink
feat: Add playground
Browse files Browse the repository at this point in the history
Signed-off-by: Diwank Singh Tomer <[email protected]>
  • Loading branch information
creatorrr committed Apr 2, 2021
1 parent 36b0b32 commit 85062f6
Show file tree
Hide file tree
Showing 9 changed files with 452 additions and 42 deletions.
3 changes: 3 additions & 0 deletions .npmignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# Include
!/.replrc.js

# Temp files
/.tmp/**/*
/cjs/.tmp/**/*
Expand Down
90 changes: 90 additions & 0 deletions .replrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
// .replrc.js
const assert = require("assert");
const lodash = require("lodash");
const chalk = require("chalk");

// Load module
const { Mauna } = require("./");
const pkg = require("./package.json");

// Get API keys
const { MAUNA_API_KEY, MAUNA_DEVELOPER_ID } = process.env;

assert(MAUNA_DEVELOPER_ID, "Please set the MAUNA_DEVELOPER_ID environment variable");
assert(MAUNA_API_KEY, "Please set the MAUNA_API_KEY environment variable");

// Create client
const client = new Mauna({
apiKey: MAUNA_API_KEY,
developerId: MAUNA_DEVELOPER_ID
});

// Context
const clientPromise = client.initialize()
.then(c => (console.clear(), c));
const apiPromise = clientPromise.then(c => c.api);

const context = {
lodash,
MAUNA_API_KEY,
MAUNA_DEVELOPER_ID,
Mauna,
pkg,

// Authorize and return client
client: clientPromise,
api: apiPromise
};


// Theme
const theme = {
heading: chalk.bold.yellow,
link: chalk.underline.cyanBright,
normal: chalk.white,
code: chalk.greenBright,
logo: chalk.bgYellowBright.black,
codeTemplate: chalk.greenBright.italic.dim,
};

// Banner
const logo = theme.logo(`
• ┌────────────────────────────────────┐ •
• │ |\\\\/| /\\\\ |_| |\\\\| /\\\\ /\\\\ | │ •
• └────────────────────────────────────┘ •
`);

const title = theme.heading(`Welcome to ${theme.logo(" Mauna ")} SDK playground!`);

const instructions = theme.normal(`To try out an api, simply run:`);
const code_sample = theme.code(
`await api.${theme.codeTemplate("<api_name>")}({ ${theme.codeTemplate("<api_params>")} })`
);

const docs = theme.normal(
`You can see the list of APIs at ${theme.link("https://github.com/mauna-ai/sdk#readme")}`
);

const varsInfo = chalk.dim("Globals: " + theme.code(Object.keys(context).join(", ")));

const banner = `
${logo}
${title}
${instructions} ${code_sample}
${docs}
${varsInfo}
`;

const prompt = (context, pkg) => chalk`{dim ${pkg.name} ${pkg.version} > }`;

// REPL Config
console.log(chalk`{cyan.bold Logging you in...}`);

module.exports = {
banner,
prompt,
context,
enableAwait: true
};
32 changes: 27 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,35 @@

`npm install @mauna/sdk`

### Usage
### Playground

This package ships with a CLI-based playground for quickly trying out queries and APIs.
You can call it directly if installed globally. You need to set `MAUNA_DEVELOPER_ID` and `MAUNA_API_KEY` environment variables for authentication.

```bash
npm i -g @mauna/sdk

# Or if using yarn:
# yarn global add @mauna/sdk

# Set auth variables; see the Developers section on the dashboard for this
export MAUNA_DEVELOPER_ID=<developer_id>
export MAUNA_API_KEY="<developer_api_key>"

mauna-playground
```

### Usage as an SDK

```javascript
import Mauna from "@mauna/sdk";
const { Mauna } = require("@mauna/sdk");

// If using esm:
// import Mauna from "@mauna/sdk/esm";

const developerId = <int>; // Check your profile on the dashboard for this.
const apiKey = "<64 letter api key available on your mauna dashboard>";
// Check the Developers section on the dashboard for this.
const developerId = 999;
const apiKey = "<64 letter api key from your mauna dashboard>";

const client = new Mauna: ({ developerId, apiKey });

Expand All @@ -28,7 +50,7 @@ const client = new Mauna: ({ developerId, apiKey });
await client.initialize();

// See API list for more info
const result = await client.api.<apiFunction>(<apiArgs>);
const result = await client.api.chitchat({ input, history });
console.log(result);

// Do something with the result
Expand Down
8 changes: 8 additions & 0 deletions bin/playground.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/usr/bin/env node

const options = require("../.replrc.js");
const repl = require("local-repl");

repl
.start(options)
.catch(console.error);
20 changes: 10 additions & 10 deletions docs/classes/mauna.html
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ <h3>constructor</h3>
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/mauna-ai/codegen/blob/9af7b3a/src/index.ts#L16">index.ts:16</a></li>
<li>Defined in <a href="https://github.com/mauna-ai/codegen/blob/36b0b32/src/index.ts#L16">index.ts:16</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
Expand All @@ -142,7 +142,7 @@ <h3><span class="tsd-flag ts-flagOptional">Optional</span> _api</h3>
<div class="tsd-signature tsd-kind-icon">_api<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">{ </span>chitchat<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>commonsenseReasoning<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>conceptnetGrounding<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>deprecatedExtractNumericData<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>deprecatedGetSentiment<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>deprecatedParseText<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>deprecatedParseTextTokens<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>deprecatedResolveCoreferences<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>extractNumericData<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>getSentiment<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>matchIntent<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>measureSimilarity<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>paraphraseSentence<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>parseACE<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>parseContext<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>parseText<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>parseTextTokens<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>predictNextTurn<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>renderCSS<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>resolveCoreferences<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>speechToText<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>textToSpeech<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>toVec<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> }</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/mauna-ai/codegen/blob/9af7b3a/src/index.ts#L16">index.ts:16</a></li>
<li>Defined in <a href="https://github.com/mauna-ai/codegen/blob/36b0b32/src/index.ts#L16">index.ts:16</a></li>
</ul>
</aside>
</section>
Expand All @@ -152,7 +152,7 @@ <h3>api<wbr>Key</h3>
<div class="tsd-signature tsd-kind-icon">api<wbr>Key<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/mauna-ai/codegen/blob/9af7b3a/src/index.ts#L14">index.ts:14</a></li>
<li>Defined in <a href="https://github.com/mauna-ai/codegen/blob/36b0b32/src/index.ts#L14">index.ts:14</a></li>
</ul>
</aside>
</section>
Expand All @@ -162,7 +162,7 @@ <h3><span class="tsd-flag ts-flagOptional">Optional</span> client</h3>
<div class="tsd-signature tsd-kind-icon">client<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Client</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/mauna-ai/codegen/blob/9af7b3a/src/index.ts#L15">index.ts:15</a></li>
<li>Defined in <a href="https://github.com/mauna-ai/codegen/blob/36b0b32/src/index.ts#L15">index.ts:15</a></li>
</ul>
</aside>
</section>
Expand All @@ -172,7 +172,7 @@ <h3>developer<wbr>Id</h3>
<div class="tsd-signature tsd-kind-icon">developer<wbr>Id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/mauna-ai/codegen/blob/9af7b3a/src/index.ts#L13">index.ts:13</a></li>
<li>Defined in <a href="https://github.com/mauna-ai/codegen/blob/36b0b32/src/index.ts#L13">index.ts:13</a></li>
</ul>
</aside>
</section>
Expand All @@ -182,7 +182,7 @@ <h3>initialized</h3>
<div class="tsd-signature tsd-kind-icon">initialized<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/mauna-ai/codegen/blob/9af7b3a/src/index.ts#L12">index.ts:12</a></li>
<li>Defined in <a href="https://github.com/mauna-ai/codegen/blob/36b0b32/src/index.ts#L12">index.ts:12</a></li>
</ul>
</aside>
</section>
Expand All @@ -199,7 +199,7 @@ <h3>api</h3>
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/mauna-ai/codegen/blob/9af7b3a/src/index.ts#L34">index.ts:34</a></li>
<li>Defined in <a href="https://github.com/mauna-ai/codegen/blob/36b0b32/src/index.ts#L39">index.ts:39</a></li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">{ </span>chitchat<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>commonsenseReasoning<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>conceptnetGrounding<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>deprecatedExtractNumericData<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>deprecatedGetSentiment<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>deprecatedParseText<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>deprecatedParseTextTokens<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>deprecatedResolveCoreferences<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>extractNumericData<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>getSentiment<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>matchIntent<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>measureSimilarity<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>paraphraseSentence<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>parseACE<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>parseContext<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>parseText<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>parseTextTokens<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>predictNextTurn<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>renderCSS<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>resolveCoreferences<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>speechToText<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>textToSpeech<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>toVec<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> }</span></h4>
Expand Down Expand Up @@ -790,16 +790,16 @@ <h2>Methods</h2>
<a name="initialize" class="tsd-anchor"></a>
<h3>initialize</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">initialize<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
<li class="tsd-signature tsd-kind-icon">initialize<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="mauna.html" class="tsd-signature-type" data-tsd-kind="Class">Mauna</a><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/mauna-ai/codegen/blob/9af7b3a/src/index.ts#L24">index.ts:24</a></li>
<li>Defined in <a href="https://github.com/mauna-ai/codegen/blob/36b0b32/src/index.ts#L27">index.ts:27</a></li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="mauna.html" class="tsd-signature-type" data-tsd-kind="Class">Mauna</a><span class="tsd-signature-symbol">&gt;</span></h4>
</li>
</ul>
</section>
Expand Down
Loading

0 comments on commit 85062f6

Please sign in to comment.