
Security News
GPT-6 Astra Attempts Supply Chain Attacks Against Open Source Maintainers in Testing
GPT-6 Astra hits 100% on ExploitBench and finds zero-days autonomously, while independent tests reveal scope violations and monitoring gaps.
@nomark-ai/engine
Advanced tools
The open-core preference resolution engine for AI agents. Learns what humans mean from incomplete input by building a persistent ledger of preferences, meaning maps, and defaults across sessions and platforms.
npm install @nomark-ai/engine
Requires Node.js 18+.
import { createResolver, parseLedger } from '@nomark-ai/engine'
// Parse a NOMARK ledger (JSONL format)
const entries = parseLedger(ledgerContent)
// Create a resolver scoped to a context
const resolver = createResolver({ entries, context: 'code' })
// Resolve all preference dimensions
const result = resolver.resolveAll()
for (const [dim, res] of Object.entries(result.dimensions)) {
if (res.winner) {
console.log(`${dim}: ${res.winner.target} (score: ${res.winner._score})`)
}
}
// Resolve intent from natural language
const input = resolver.resolveInput('make it shorter')
for (const match of input.meaningMaps) {
console.log(`${match.trigger} -> ${match.intent.join(', ')}`)
}
Zod-validated types for all five signal types: pref, map, asn, meta, rub. Enforces ISO dates, valid ranges, and structural correctness at parse time.
JSONL parser and writer with per-type capacity constraints. Handles [sig:type] {json} line format with built-in token estimation.
Classifies raw user input into tiers: pass-through (no extraction needed), routing (intent only), or extraction (structured preference signals).
The core scoring engine. Evaluates preferences using five weighted factors:
Unstable dimensions (winner score < 0.4) are flagged with action: 'ask'.
Time-based weight decay with contradiction acceleration. Preferences that are frequently contradicted decay faster.
Multi-factor utility scoring for capacity-bounded pruning. When the ledger approaches capacity limits, low-utility entries are pruned first.
Migrate conversation history from other platforms:
import { parseChatGPTExport, parseClaudeExport, extractSignals, runMigration } from '@nomark-ai/engine'
const conversations = parseChatGPTExport(chatgptJson)
const signals = extractSignals(conversations)
const report = runMigration(signals, existingLedger)
Supported platforms: ChatGPT, Claude.
Cross-device synchronization with Supabase (optional peer dependency):
import { createSyncClient, OfflineQueue } from '@nomark-ai/engine'
const sync = createSyncClient({
supabaseUrl: process.env.SUPABASE_URL,
supabaseKey: process.env.SUPABASE_ANON_KEY,
})
await sync.push(entries)
const remote = await sync.pull()
Includes offline queue, conflict resolution, privacy filtering, and merge strategies.
npx nomark profile # Show resolved preference profile
npx nomark import # Import from ChatGPT/Claude exports
npx nomark review # Review and manage ledger entries
| Export | Description |
|---|---|
createResolver(config) | Create a resolver instance |
parseLedger(content) | Parse JSONL ledger content |
writeLedger(entries) | Serialize entries to JSONL |
classify(input) | Classify input tier |
computeDecay(weight, decay) | Compute decayed weight |
utilityScore(entry) | Score entry utility |
pruneToCapacity(entries) | Prune entries within capacity |
| Type | Description |
|---|---|
ResolverConfig | Resolver configuration (entries, context, topic) |
ResolverResult | Full resolution output (dimensions, meaning maps, defaults) |
DimensionResult | Single dimension resolution with winner/runner-up |
LedgerEntry | Union of all signal entry types |
SigPref / SigMap / SigAsn / SigMeta / SigRub | Individual signal types |
Apache 2.0
FAQs
NOMARK Engine — open-core agent outcome quality resolver
We found that @nomark-ai/engine demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
GPT-6 Astra hits 100% on ExploitBench and finds zero-days autonomously, while independent tests reveal scope violations and monitoring gaps.

Product
Socket can now send alerts and supply chain attack notifications to Microsoft Teams, with filters that route the right updates to each channel.

Security News
pnpm 12 rewrites the package manager in Rust, cutting install times by up to 90% while preserving pnpm 11 workflows and lockfiles.