Files
JiboOs/docs/Runtime.js
2026-03-16 13:53:01 +02:00

199 lines
5.5 KiB
JavaScript

/**
* Enum of RunMode types.
*
* ```
* jibo.RunMode.SIMULATOR
* ```
*
* @typedef module:jibo.Runtime#RunMode
* @prop {string} SIMULATOR Running in the simulator.
* @prop {string} REMOTELY Running in remote mode.
* @prop {string} ON_ROBOT Running on the robot.
* @prop {string} UNIT_TESTS Running in dev mode, no SSM.
*/
/** Running in the simulator. */
/** Running in remote mode. */
/** Running on the robot. */
/** Running in dev mode, no SSM */
/**
* Internal object for an installed plugin
*/
/**
* @prop {jibo.animdb} animdb The Jibo Animation Database.
* @prop {jibo.bt} bt SDK behaviors and decorators.
* @prop {jibo.context} context Context Service (on robot context provider for Cloud).
* @prop {jibo.embodied} embodied Jibo Embodied Dialog.
* @prop {jibo.emotion} emotion Jibo Emotion System.
* @prop {jibo.expression} expression Jibo's expression client.
* @prop {jibo.face} face API to jibo's face.
* @prop {jibo.flow} flow API for the Jibo Flow Editor.
* @prop {jibo.globalEvents} globalEvents Typed global events for events module.
* @prop {jibo.kb} kb Knowledge Base API
* @prop {jibo.loader} loader Load skill assets.
* @prop {jibo.lps} lps Jibo's Local Perceptual Space.
* @prop {jibo.media} media Jibo's Media API (camera and pictures).
* @prop {jibo.mim} mim Jibo's multimodal interaction manager.
* @prop {jibo.sound} sound Manage playback of audio media.
* @prop {jibo.system} system Non-motion related body services.
* @prop {jibo.timer} timer Jibo's main update loop.
* @prop {jibo.tts} tts Text-to-speech.
* @prop {jibo.utils} utils Utility methods for animation, audio, and pathing.
* @prop {jibo.versions} versions Versions for skills-service-manager, platform, and jibo.
* @module jibo
* @description The Jibo SDK singleton.
*/
/**
* `true` if Jibo is currently being initialized.
* @name module:jibo.Runtime.isInitializing
* @type {Boolean}
* @readOnly
* @default false
*/
/**
* `true` if Jibo has finished being initialized.
* @name module:jibo.Runtime.isInitialized
* @type {Boolean}
* @readOnly
* @default false
*/
/**
* Runtime is running in Electron-based environment.
* @name module:jibo.Runtime.electron
* @type {Boolean}
* @readOnly
*/
/**
* Collection of installed plugins.
* @name module:jibo.Runtime._plugins
* @type {Boolean}
* @readOnly
* @private
*/
/**
* Singleton instance of jibo.
* @name module:jibo.Runtime._instance
* @type {jibo.Runtime}
* @readOnly
* @private
*/
/**
* Current version of the Jibo Runtime.
* @name module:jibo.Runtime#version
* @type {String}
* @readOnly
*/
/**
* Electron IPCRenderer context of the Jibo Runtime.
* @name module:jibo.Runtime#electronContext
* @type {Object}
* @readOnly
*/
/** For the SDK tool */
/**
* @name module:jibo.Runtime#behaviorEmitter
* @type {BehaviorEmitter}
* @private
*/
/**
* @name module:jibo.Runtime#session
* @type {SessionManager}
* @private
*/
/**
* @name module:jibo.Runtime#systemManager
* @type {SystemManager}
* @private
*/
/**
// * @name module:jibo.Runtime#visualize
// * @type {Object}
// * @private
// */
/**
* Initialization options
* @name module:jibo.Runtime#options
* @type {Object}
* @private
*/
/**
* @description
* Initializes the jibo SDK.
*
* ```
* let jibo = require('jibo');
* jibo.init('face', (e) => {
* if (e) return console.error(e);
* // Setup!
* });
* ```
* @method module:jibo.Runtime#init
* @param {Object|Function|String|HTMLElement} [options] Either the options, canvas DOM ID or DOM Element for canvas or callback
* @param {DOMElement|String} [options.display] Either the canvas DOM or DOM ID
* @param {Function} [callback] Called when the SDK is finished initializing.
*/
/**
* Register an external plugin with the jibo runtime.
* @method module:jibo.Runtime#registerPlugin
* @private
* @param {jibo.PluginConstructor} pluginClass The class definition.
* @param {String} id The identifier of the plugin.
* @param {Object} [options] Additional register options or the API name.
* @param {Boolean} [options.api=false] If the plugin is also an API on jibo.
* @param {String[]} [options.depends] The plugin dependencies.
* @param {Boolean} [options.electron=false] If the plugin is electron-only.
*/
/**
* Stores which mode the current skill is running. It can be: `jibo.RunMode.SIMULATOR`, `jibo.RunMode.REMOTELY`, or `jibo.RunMode.ON_ROBOT`.
*
* ```
* let jibo = require('jibo');
* if( jibo.runMode === jibo.RunMode.SIMULATOR ){
* // ...
* }
* ```
* @name module:jibo.Runtime.runMode
* @type {RunMode}
* @readOnly
*/
/**
* Setup plugins to create the jibo API.
* @method module:jibo.Runtime#_installPlugins
* @private
*/
/**
* Setup plugins to create the jibo API.
* @method module:jibo.Runtime#_initPlugins
* @private
*/
/**
* Gets singleton instance of Jibo.
* @name module:jibo.Runtime.instance
* @type {jibo}
* @private
* @readOnly
*/