skills/east-node-io/SKILL.md
I/O platform functions for the East language on Node.js. Use when writing East programs that need SQL databases (SQLite, PostgreSQL, MySQL), NoSQL databases (Redis, MongoDB), S3 storage, file transfers (FTP, SFTP), file format parsing (XLSX, XML), or compression (Gzip, Zip, Tar). Triggers for: (1) Writing East programs with @elaraai/east-node-io, (2) Database operations with SQL.SQLite, SQL.Postgres, SQL.MySQL, NoSQL.Redis, NoSQL.MongoDB, (3) Cloud storage with Storage.S3, (4) File transfers with Transfer.FTP, Transfer.SFTP, (5) Format parsing with Format.XLSX, Format.XML, (6) Compression with Compression.Gzip, Compression.Zip, Compression.Tar.
npx skillsauth add elaraai/east-plugin east-node-ioInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
I/O platform functions for the East language on Node.js. Enables East programs to interact with databases, cloud storage, file transfers, and data formats.
import { East, StringType, NullType } from "@elaraai/east";
import { SQL, Storage } from "@elaraai/east-node-io";
const queryDatabase = East.function([StringType], NullType, ($, userId) => {
const config = $.let({
host: "localhost",
port: 5432n,
database: "myapp",
user: "postgres",
password: "secret",
ssl: East.variant('none', null),
maxConnections: East.variant('none', null),
});
const conn = $.let(SQL.Postgres.connect(config));
$(SQL.Postgres.query(conn, "SELECT * FROM users WHERE id = $1", [East.variant("Integer", 42n)]));
$(SQL.Postgres.close(conn));
});
// Compile with specific module Implementation
const compiled = East.compileAsync(queryDatabase.toIR(), SQL.Postgres.Implementation);
await compiled("user123");
Task → What do you need?
│
├─ SQL Database
│ ├─ SQL.SQLite (embedded, placeholder: ?)
│ │ └─ .connect(), .query(), .select(), .close()
│ ├─ SQL.Postgres (placeholder: $1, $2, ...)
│ │ └─ .connect(), .query(), .select(), .close()
│ ├─ SQL.MySQL (placeholder: ?)
│ │ └─ .connect(), .query(), .select(), .close()
│ └─ SQL.Access (read-only, .mdb/.accdb)
│ └─ .open(), .tables(), .query(), .close()
│
├─ NoSQL Database
│ ├─ NoSQL.Redis (key-value cache)
│ │ └─ .connect(), .get(), .set(), .setex(), .del(), .close()
│ └─ NoSQL.MongoDB (document store)
│ └─ .connect(), .insertOne(), .findOne(), .find(), .updateOne(), .deleteOne(), .close()
│
├─ Storage.S3 (S3-compatible object storage)
│ └─ .putObject(), .getObject(), .deleteObject(), .headObject(), .listObjects(), .presignUrl()
│
├─ Transfer (file transfers)
│ ├─ Transfer.FTP
│ │ └─ .connect(), .put(), .get(), .list(), .delete(), .close()
│ └─ Transfer.SFTP
│ └─ .connect(), .put(), .get(), .list(), .delete(), .close()
│
├─ Format (file parsing)
│ ├─ Format.XLSX (Excel spreadsheets)
│ │ └─ .read(), .write(), .info()
│ └─ Format.XML
│ └─ .parse(), .serialize()
│
└─ Compression
├─ Compression.Gzip (single file)
│ └─ .compress(), .decompress()
├─ Compression.Zip (archive)
│ └─ .compress(), .decompress()
└─ Compression.Tar (archive)
└─ .create(), .extract()
Use specific module implementations:
// Single module
const compiled = East.compileAsync(myFunction.toIR(), SQL.Postgres.Implementation);
// Multiple modules
const compiled = East.compileAsync(
myFunction.toIR(),
[...SQL.Postgres.Implementation, ...Storage.S3.Implementation]
);
| Module | Import | Purpose |
|--------|--------|---------|
| SQL.SQLite | import { SQL } from "@elaraai/east-node-io" | SQLite database (placeholder: ?) |
| SQL.Postgres | import { SQL } from "@elaraai/east-node-io" | PostgreSQL database (placeholder: $1, $2) |
| SQL.MySQL | import { SQL } from "@elaraai/east-node-io" | MySQL database (placeholder: ?) |
| SQL.Access | import { SQL } from "@elaraai/east-node-io" | Microsoft Access database (read-only, .mdb/.accdb) |
| Storage.S3 | import { Storage } from "@elaraai/east-node-io" | S3 and S3-compatible storage |
| Transfer.FTP | import { Transfer } from "@elaraai/east-node-io" | FTP file transfers |
| Transfer.SFTP | import { Transfer } from "@elaraai/east-node-io" | SFTP file transfers |
| NoSQL.Redis | import { NoSQL } from "@elaraai/east-node-io" | Redis key-value store |
| NoSQL.MongoDB | import { NoSQL } from "@elaraai/east-node-io" | MongoDB document database |
| Format.XLSX | import { Format } from "@elaraai/east-node-io" | Excel spreadsheet parsing |
| Format.XML | import { Format } from "@elaraai/east-node-io" | XML parsing and serialization |
| Compression.Gzip | import { Compression } from "@elaraai/east-node-io" | Gzip compression |
| Compression.Zip | import { Compression } from "@elaraai/east-node-io" | ZIP archive creation/extraction |
| Compression.Tar | import { Compression } from "@elaraai/east-node-io" | TAR archive creation/extraction |
import { SQL, Storage, NoSQL, Format } from "@elaraai/east-node-io";
// Access types via Module.SubModule.Types.TypeName
const postgresConfig = SQL.Postgres.Types.Config;
const sqlResult = SQL.Postgres.Types.Result;
const s3Config = Storage.S3.Types.Config;
const redisConfig = NoSQL.Redis.Types.Config;
const xlsxSheet = Format.XLSX.Types.Sheet;
All connection-based modules follow the same pattern:
// 1. Create config
const config = $.let({ /* connection options */ });
// 2. Connect
const conn = $.let(Module.connect(config));
// 3. Perform operations
$(Module.operation(conn, ...args));
// 4. Close connection
$(Module.close(conn));
development
East programming language - a statically typed, expression-based language embedded in TypeScript. Use when writing East programs with @elaraai/east. Triggers for: (1) Writing East functions with East.function() or East.asyncFunction(), (2) Defining types (IntegerType, StringType, ArrayType, StructType, VariantType, etc.), (3) Using platform functions with East.platform() or East.asyncPlatform(), (4) Compiling East programs with East.compile(), (5) Working with East expressions (arithmetic, collections, control flow), (6) Serializing East IR with .toIR() and EastIR.fromJSON(), (7) Standard library operations (formatting, rounding, generation).
tools
--- name: east-ui description: UI component definitions for the East language. Use when building UIs with @elaraai/east-ui. Triggers for: (1) Creating UI components with Stack, Box, Grid, Card, Text, Button, (2) Building forms with Input, Select, Checkbox, Switch, Slider, (3) Displaying data with Table, DataList, Chart, Badge, Tag, Stat, (4) Using overlays like Dialog, Drawer, Popover, Tooltip, Menu, (5) Working with UIComponentType, (6) Styling with variants (FontWeight, TextAlign, ColorScheme,
development
Data science and machine learning platform functions for the East language (TypeScript types). Use when writing East programs that need optimization (MADS, Optuna, SimAnneal, Scipy, Optimization, GoogleOr), machine learning (XGBoost, LightGBM, NGBoost, Torch MLP, Lightning, GP), Bayesian inference (PyMC), simulation (Simulation DES), ML utilities (Sklearn preprocessing, metrics, splits), conformal prediction (MAPIE), or model explainability (SHAP). Triggers for: (1) Writing East programs with @elaraai/east-py-datascience, (2) Derivative-free optimization with MADS, (3) Bayesian optimization with Optuna, (4) Discrete/combinatorial optimization with SimAnneal, (5) Gradient boosting with XGBoost or LightGBM, (6) Probabilistic predictions with NGBoost or GP, (7) Neural networks with Torch MLP or Lightning, (8) Data preprocessing and metrics with Sklearn, (9) Conformal prediction intervals with MAPIE, (10) Model explainability with Shap, (11) Iterative coordinate descent with Optimization, (12) Constraint programming, vehicle routing, LP/MIP, or graph algorithms with GoogleOr, (13) Bayesian regression, hierarchical models, and multi-layer estimation with PyMC, (14) Economic ontology simulation via discrete event simulation with Simulation.
development
Node.js platform functions for the East language. Use when writing East programs that need Console I/O, FileSystem operations, HTTP Fetch requests, Cryptography, Time operations, Path manipulation, Random number generation, or Testing. Triggers for: (1) Writing East programs with @elaraai/east-node-std, (2) Using platform functions like Console.log, FileSystem.readFile, Fetch.get, Crypto.uuid, Time.now, Path.join, Random.normal, (3) Testing East code with describeEast and Assert.