icvs-wasm
v0.2.2
Published
WASM bindings for InstructCanvas (.icvs) parser
Downloads
460
Readme
icvs-wasm
WASM bindings for InstructCanvas (.icvs) — a DAG-based instruction format for agentic AI tools.
Install
npm install icvs-wasmUsage
import init, { parse, validate, exportMarkdown, exportDot, mdToIcvs, convertAgent } from 'icvs-wasm';
await init();
const source = `[node: rule1]
type = rule
content = "Use 2-space indentation"
severity = must
[edge: rule1 -> rule2]
[target: claude]
resolve = [rule1]`;
// Parse
const doc = parse(source);
console.log(doc);
// Validate
const result = validate(source);
console.log(result.is_valid ? 'Valid' : 'Invalid');
// Export as Markdown
const md = exportMarkdown(source, 'claude');
// Convert to AI agent format
const tools = convertAgent(source, 'claude');
// Markdown → .icvs
const icvs = mdToIcvs('# some markdown');
// Apply template
const { applyTemplate } = await import('icvs-wasm');
const output = applyTemplate(source, '{"FRAMEWORK": "React"}');API
| Function | Description |
|----------|-------------|
| parse(input) | Parse .icvs → JSON |
| parseAndResolve(input) | Parse + resolve includes |
| validate(input) | Validate → { is_valid, errors, warnings } |
| exportMarkdown(input, target) | Export per-target Markdown |
| exportDot(input) | Export DOT graph |
| exportMerge(input) | Merge all nodes → Markdown |
| mdToIcvs(markdown) | Convert Markdown → .icvs |
| icvsToMd(input) | Convert .icvs → Markdown |
| convertAgent(input, format) | Export as Claude/OpenAI/JSON |
| applyTemplate(input, varsJson) | Apply {{ VAR }} template |
License
MIT
