@vertesia/memory-cli
v0.82.1
Published
Vertesia memory builder CLI
Downloads
816
Readme
@vertesia/memory-cli
A command-line tool for building and managing Vertesia memory packs. Memory packs are archives containing structured data for LLM context.
Features
- Build Memory Packs: Create memory archives from recipe scripts
- Export Data: Extract JSON objects from memory packs using mappings
- Gzip Compression: Optionally compress output files
- Custom Variables: Pass variables to recipe scripts via command line
Requirements
Node.js version 18 or higher is required.
Installation
npm install -g @vertesia/memory-cli
# or
pnpm add -g @vertesia/memory-cliUsage
Build a Memory Pack
Build a memory pack from a recipe script:
memo build <recipe>Options
| Option | Description |
|--------|-------------|
| -o, --out <file> | Output file (default: memory.tar) |
| -z, --gzip | Compress output with gzip |
| -i, --indent <spaces> | JSON indentation (default: 2) |
| -q, --quiet | Suppress console output |
| -t, --test | Test recipe without building |
Passing Variables
Pass custom variables to your recipe script using --var-<name>:
memo build recipe.ts --var-version 1.0.0 --var-env productionVariables are available in your recipe script via the vars object.
Export from Memory Pack
Export a JSON object from a memory pack using a mapping:
memo export <pack> --map <mapping>Examples
# Export with inline JSON mapping
memo export memory.tar --map '{"title": "$.metadata.title", "content": "$.files[0].content"}'
# Export with mapping file
memo export memory.tar --map @mapping.json
# Export with custom indentation
memo export memory.tar --map @mapping.json --indent 4Recipe Scripts
Recipe scripts are TypeScript files that define how to build a memory pack. They use the @vertesia/memory API to collect and structure data.
Example recipe (recipe.ts):
import { MemoryBuilder } from '@vertesia/memory';
const builder = new MemoryBuilder();
// Add files, metadata, and structured data
builder.addFile('README.md', readFileSync('README.md'));
builder.setMetadata({ version: vars.version });
export default builder;API
The CLI can also be used programmatically:
import { setupMemoCommand } from '@vertesia/memory-cli';
import { Command } from 'commander';
const program = new Command();
setupMemoCommand(program);
program.parse();Documentation
License
Apache-2.0
