# mycroft

> node app template for mycroft

Latest version **0.1.4** (published 2014-04-15) · 0 weekly downloads

## Install

```sh
npm install mycroft
pnpm add mycroft
yarn add mycroft
bun add mycroft
```

Provides the command `mycroft-node`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.4 |
| Published | 2014-04-15 |
| First published | 2014-03-31 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 7 |
| Known vulnerabilities | 0 (+12 in 3 direct dependencies) |
| Install scripts | no |
| GitHub stars | 3 |
| Author | Society of Software Engineers |
| Maintainers | rit-sse |

## Links

- npm: https://www.npmjs.com/package/mycroft
- Repository: https://github.com/rit-sse-mycroft/template-node
- Issues: https://github.com/rit-sse-mycroft/template-node/issues
- npm.io page: https://npm.io/package/mycroft

## Dependencies (7)

- [uuid](https://npm.io/package/uuid.md) ~1.4.1
- [async](https://npm.io/package/async.md) ~0.2.10
- [prompt](https://npm.io/package/prompt.md) ~0.2.12
- [minimist](https://npm.io/package/minimist.md) ~0.0.8
- [handlebars](https://npm.io/package/handlebars.md) ~2.0.0
- [metalsmith](https://npm.io/package/metalsmith.md) ~0.4.0
- [consolidate](https://npm.io/package/consolidate.md) ~0.10.0

## Recent versions

- 0.1.4 (latest) — 2014-04-15
- 0.1.3 — 2014-04-15
- 0.1.2 — 2014-04-14
- 0.1.1 — 2014-03-31
- 0.1.0 — 2014-03-31
- 0.0.1 — 2014-03-31

## README

template-node
=============

mycroft.js is a mycroft client application module/class/template/interface used to interact with the mycroft ai core server. It exports the Mycroft object.

# Generator
To generate a new node application, run the following and follow the prompts.

```
mycroft-node new [foldername]
```

#Example
```js
var MycroftClient = require('mycroft');

var cli = new MycroftClient();
cli.on('MANIFEST_OK', function(reply) {
  cli.up();
});
```

#MycroftClient
##Constructor
```
var cli = new MycroftClient(name, manifestfile, hostname, port);
```
All arguments are optional.

##Fields
```
name //name of the application 
status //current status, eg. 'down', 'up', or 'in_use'
host //hostname as passed to the constructor or 'localhost'
manifest_loc //manifest file location as passed to the contructor
port //port as passed to the contructor or 1847
dependencies //dependency list as mantained by APP_DEPENDENCY messages
```

##Functions
###connect(certificate)
Connects to the mycroft server. `certificate` is the location of the certificate file. If it is not passed, it will connect without using TLS.
###sendManifest(path)
Sends the manifest to the connected server. `path` is an optional override to a manifest file.
###up
Sends `APP_UP` to the connected server.
###down
Sends `APP_DOWN` to the connected server.
###in_use
Sends `APP_IN_USE` to the connected server.
###query(capability, action, data, instanceId, priority)
Sends a `MSG_QUERY` to the server. `capability` is the capability to send to, `action` is the action field of the query (optional). `data` is that data of the query (optional). `priority` is the message priority (defaults to 30). `instanceId` is an array of instanceIds to send to (must be an array, defaults to `[]`).
###sendSuccess(id, message)
Sends a `MSG_QUERY_SUCCES` to the connected server for specified `id` with the given `message`.
###sendFail(id, message)
Sends a `MSG_QUERY_FAIL` to the connected server for specified `id` with the given `message`.
###broadcast(content)
Sends a `MSG_BROADCAST` to the connected server with the given `content` (should be a JSON object).
###_sendMsg(type, data)
Sends any old message with type string `type` and data block `data`. Used internally, external use should be limited.

##Events
The client fires events for all message types it recieves, as it recieves them. (For example, `APP_DEPENDENCY` or `MSG_QUERY`) Additionally, it also fires:

* `CONNECTION_CLOSED` - Emitted when the connection is closed
* `CONNECTION_ERROR` - Emitted when the connection errors
* `MANIFEST_ERROR` - Emitted when the manifest cannot be loaded

---
_Source: https://npm.io/package/mycroft · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
