briefcase-wasm
v2.5.3
Published
WebAssembly bindings for Briefcase AI
Maintainers
Readme
Briefcase AI WebAssembly
WebAssembly bindings for Briefcase AI.
Install
npm install briefcase-wasmWhat this package exports
The generated module exports these primary symbols:
initversiontest_functionalityJsDecisionSnapshotJsMemoryStorageWasmInputWasmOutputWasmModelParametersWasmDecisionSnapshotWasmDriftCalculatorWasmCostCalculatorWasmSanitizerJsBriefcaseClient
Js* classes are lightweight JS-oriented wrappers. Wasm* classes mirror more of the Rust model types.
Quick Start (JS wrappers)
import { init, version, JsDecisionSnapshot, JsMemoryStorage } from 'briefcase-wasm';
init();
console.log(version());
const decision = new JsDecisionSnapshot('chat_completion')
.add_input('prompt', 'Summarize this text', 'string')
.add_output('response', 'Summary output', 'string')
.add_tag('env', 'test');
const storage = new JsMemoryStorage();
const id = storage.save_decision(decision);
const loaded = storage.load_decision(id);
console.log(loaded.to_json());Quick Start (Wasm model wrappers)
import { WasmInput, WasmOutput, WasmDecisionSnapshot } from 'briefcase-wasm';
const input = new WasmInput('prompt', 'hello', 'string');
const output = new WasmOutput('response', 'hi', 'string');
output.withConfidence(0.93);
const decision = new WasmDecisionSnapshot('chat_completion');
decision.addInput(input);
decision.addOutput(output);
decision.addTag('model', 'gpt-4');
console.log(decision.toObject());Drift, Cost, and Sanitization
import {
WasmDriftCalculator,
WasmCostCalculator,
WasmSanitizer,
} from 'briefcase-wasm';
const drift = new WasmDriftCalculator();
const driftMetrics = drift.calculateDrift(['A', 'A', 'B']).toObject();
const cost = new WasmCostCalculator();
const estimate = cost.estimateCost('gpt-4', 1200, 300).toObject();
const sanitizer = new WasmSanitizer();
const sanitized = sanitizer.sanitize('Email me at [email protected]').toObject();
console.log({ driftMetrics, estimate, sanitized });Notes
- This package does not expose
SqliteBackend. - If you need local persistence in the browser runtime, use
JsMemoryStorageand sync to your own backend. - For Python bindings, use
briefcase-ai.
License
GPL-3.0. See the project LICENSE file.
