This SDK includes a command-line intertace (CLI) to help you create and package custom components and event handlers.
Usage: bots-node-sdk [command] [arguments][options]
bots-node-sdk Options:
-h --help Display help and usage information
-v --version Print version information
Commands:
init Create and initialize a component package
init component Add a component to a package
service Start a service with one or more component packages
pack Create a deployable component artifact
For standalone usage, there are a three ways you can execute CLI commands.
- Globally install the Bots Node SDK using
npm install -g @oracle/bots-node-sdk, and usebots-node-sdkto invoke the commands. - Install the Bots Nods SDK locally as a project dependency, as described later in this section, and use
$(npm bin)/bots-node-sdkto invoke the commands. - Use
npxto invoke the commands. For example:npx @oracle/bots-node-sdk
Global Usage:
Here are two ways to create fresh component service package in an empty directory. In this example, the SDK was installed globally.
# Run in an empty directory
bots-node-sdk init
# or specify a specific path to create and populate the directory
bots-node-sdk init my-projectWhen you use the bots-node-sdk init command to create the package, it lists @oracle/bots-node-sdk as a devDependency in the package.json file. The package file also points to some bots-node-sdk scripts.
Local Usage:
Here's an example of installing @oracle/bots-node-sdk as a
dependency to your project and using the CLI commands accordingly.
mkdir bot-quickstart
cd bot-quickstart
npm init -y
npm install --save-dev @oracle/bots-node-sdk
$(npm bin)/bots-node-sdk init| Command | Description |
|---|---|
init |
Generates source code for custom component service or event handler projects |
init component |
Adds a component to an existing project |
service |
Starts a local server and hosts the component package(s) |
pack |
Validates a project and creates a deployable component package |
Use this command to scaffold new projects.
When neither [dest] nor --name are provided, the command writes the artifacts are to the current directory. If you only provide --name, then the command creates a directory with the same name and writes the artifacts to that directory. If you don't provide --name then the component package is named my-component-service.
| Option | Description | Default |
|---|---|---|
-l --language |
The language to use: [t]ypescript or [j]avascript |
javascript |
-c --component-name |
The name for the initial component in your project | helloWorld |
-t --component-type |
The type of component to create: [c]ustom or [e]ntityEventHandler or [s]qlQueryEventHandler |
custom |
-s --skip-install |
Skip invoking the npm install command to install named dependencies after code generation |
The command isn't skipped |
-r --run |
Start the component service after the command completes | The service isn't started |
-n --name |
The name for the component package. | my-component-service |
Run this command in the component package's top-level directory to create a custom component or event handler. The component's language is the same as the language that you specified when you ran the init command to create the component package.
If dest isn't specified, then the component is written to the components directory for JavaScript and the src/components directory for TypeScript. If this directory doesn't exist, it will be created.
The component name and type arguments are required, and type must be either [c]ustom or [e]ntityEventHandler or [s]qlQueryEventHandler or llm[T]ransformationEventHandler or [l]lmComponent.
For example, to create a new entity event handler component named resolvePizza, you can use this command:
bots-node-sdk init component resolvePizza eStarts a server with one or more component packages. If no packages are provided, then it starts a service for the package that's in the current folder.
If you need to use the @oracle/bots-node-sdk dev dependency instead of the globally-installed Bots Node SDK, use npm start instead.
NOTE: This command fails if none of the component packages' package.json files specify
expressas adevDependency.
| Option | Description | Default |
|---|---|---|
-P --port <number> |
The port to use for the service runtime | 3000 |
-r --route <path> |
The service endpoint for the components | /components |
NOTE: Open a node debugger port on the service with
node --inspect $(which bots-node-sdk) service ., or, if on Windows,node --inspect node_modules/@oracle/bots-node-sdk/bin/sdk.js service .
You also can use a node supervisor in the same way.
This command packages the components as a .tgz file that can be hosted as an express service, uploaded to a skill's embedded container in Digital Assistant, or uploaded to Oracle Mobile Hub.
| Option | Description | Default |
|---|---|---|
-d --dry-run |
Validate the project but don't create a .tgz file. |
false |
-s --service <type> |
The service type to use in the packaging: embedded, express, or mobile-apiThe command uses standard npm pack for embedded. |
embedded |
-e --endpoint <url> |
The endpoint to use for the components' metadata | /components |