Skip to main content

Node.js Execution Toolkit

Node.js Code Execution Toolkit

How to reach: Main sidebar > "Agents" > Select agent > "Toolkits" tab > "Code & Development" > "Node.js Code Execution"

  1. Open your agent > "Toolkits" tab > "Code & Development" category > Find "Node.js Code Execution" toolkit.
  2. Click "Add to Agent" on Node.js Code Execution, then "Configure". Click "Save".

Node.js Code Execution Toolkit​

Execute Node.js/JavaScript code in a secure sandbox environment with NPM package support and file management capabilities. Optimized for JavaScript/TypeScript workloads, API integrations, JSON processing, async operations, and web automation.

Node.js Toolkit Configuration​

Node.js Toolkit Configuration Panel

Configure the Node.js sandbox environment. This toolkit allows the agent to execute Node.js/JavaScript code, upload files, and manage files in the sandbox.

Security Information​

  • Node.js code runs in a secure, isolated sandbox environment
  • Each chat session gets its own dedicated sandbox with persistent state
  • Files uploaded to the sandbox are isolated from other users and projects
  • Sandboxes automatically clean up after the session ends

Available Tools (5/5)​

Code Execution:

  • Execute Code: Execute Node.js/JavaScript code in a secure sandbox environment

File Management:

  • Search Files: Search for files in the knowledge base to upload to sandbox
  • Upload File: Upload files from knowledge base to the Node.js sandbox
  • List Files: List all files currently available in the sandbox
  • Create Download URL: Create secure download URLs for files in the sandbox

Use Cases​

  • API Integration: Call REST APIs and handle OAuth flows.
  • JSON Processing: Parse and transform JSON data structures.
  • Web Automation: Scrape websites and automate forms.
  • Data Transformation: Convert between formats (CSV, JSON, XML, YAML).

Example Code​

Below is an example Node.js script demonstrating NPM package usage, dependency checking, and the required module.exports pattern with a main() entry point function:

const _ = require("lodash");
const PACKAGES = ["lodash", "@google-cloud/bigquery", "axios"];

const isPackageInstalled = (packageName) => {
try {
require.resolve(packageName);
return true;
} catch (e) {
return false;
}
};

const getPackageVersion = (packageName) => {
if (!isPackageInstalled(packageName)) return {
isInstalled: false,
version: null,
message: "Package is not installed",
package: packageName,
};

const version = require(`${packageName}/package.json`).version;
return {
isInstalled: true,
version,
message: `Package is installed with version ${version}`,
package: packageName,
};
};

const test = () => {
return _.map(PACKAGES, (pkg) => getPackageVersion(pkg));
};

async function main(inputText, maxLength = 100, options = {}) {
/**
* Main function that will be executed
*
* @param {string} inputText - The text to process
* @param {number} maxLength - Maximum length of output (default: 100)
* @param {object} options - Additional processing options (default: {})
*/

return { data: test() };
}

// The entry point function will be called with the arguments you define
module.exports = { main };

Key Points from Example​

  • Entry Point: The main() function is the entry point, exported via module.exports = { main }.
  • NPM Packages: Use require() to import installed packages (e.g., lodash, axios, @google-cloud/bigquery).
  • Package Checking: Use require.resolve() to check if a package is available in the sandbox.
  • Async Support: The main function can be async for handling API calls and file operations.
  • Parameters: Define parameters with defaults (e.g., maxLength = 100, options = {}) for flexible input.
  • Return Format: Return results as an object (e.g., { data: ... }) for structured output.