— appendices A · C · D —

Builtins reference

879 native functions · thematic families · generated from the server's stable registry

Loading…

Admin & workspace

api-create

[api-create name]

Create workspace & generate API key.

clear

[clear mode?]

Clear the context. Modes: 'vars', 'macros', 'kb', 'all' (default).

file-tree

[file-tree path?]

Get JSON directory tree.

freespace

[freespace path?]

JSON {path,total,used,free,total_h,used_h,free_h,percent_used} for the disk hosting `path` (default: cwd).

log-clear

[log-clear file]

Empty a log file.

log-list

[log-list]

List available log files (name, label, size, mtime).

log-tail

[log-tail file n]

Read last n lines of log.

proadmin

[proadmin email pass]

Elevate privileges.

proai-validator

[proai-validator JSON|fichier]

Statically validates a .proai file (path or inline JSON). Returns the Markdown report.

role-define

[role-define name cap1 cap2 …]

create/update a custom role (ROOT). Caps from the closed vocabulary.

role-delete

[role-delete name]

delete a custom role (ROOT). Built-in roles are protected.

role-list

[role-list]

JSON {role: [caps]} of every role (built-in + custom).

sys-info

[sys-info]

Get system threads/platform info.

user-add

[user-add email pass nom prenom]

Create user.

user-delete

[user-delete email]

Delete user.

user-list

[user-list]

List all users (admin).

user-role

[user-role email]

current role | [user-role email role] assigns the role (ROOT).

user-update

[user-update email pass nom prenom]

Update user.

webdriver-config

[webdriver-config]

Show machine fingerprint + profiles path. [webdriver-config path] -> Set profiles path for this machine.

workspace

[workspace list|login|go ...]

Manage workspace context.

workspace-set

[workspace-set email ws]

Grant access.

workspace-unset

[workspace-unset email ws]

Revoke access.

Genetic algorithms

genetic:add-counter

[genetic:add-counter $store $record $expected [$actual] [$weight=5.0]]

$store. Mutates and returns the store (chainable).

genetic:best

[genetic:best $pop]

the Individual with the highest scalar fitness.

genetic:counter-size

[genetic:counter-size $store]

integer count of stored corrections.

genetic:counter-store

[genetic:counter-store [schema?]]

empty CounterStore. Accumulates human corrections; pass to [genetic:fit-with-counter] to fold them into a fitness spec.

genetic:evolve

[genetic:evolve $pop $fitness-spec [opts-json]]

evolved Population. fitness-spec is a JSON dict {kind, dataset, label_field, ...}; opts-json supports {generations, mutation_rate, crossover_rate, elitism, tournament_k, seed, plateau_window}.

genetic:fit-with-counter

[genetic:fit-with-counter $fit-spec-json $store [weight=0.5]]

enriched JSON. Injects $store.examples + counter_weight into a fitness spec for use by [genetic:evolve]. Final fitness = (1-w)*holdout + w*counter.

genetic:fitness

[genetic:fitness $individual]

scalar fitness (or list for multi-objective).

genetic:lineage

[genetic:lineage $individual]

JSON {generation, parents, mutation_op}.

genetic:pareto

[genetic:pareto $pop]

list of Individuals on the non-dominated front. Use with multi-objective fitness specs (kind: multi_objective) to expose the trade-off frontier between objectives (e.g. precision vs parsimony vs cost).

genetic:population

[genetic:population genome1 genome2 ...]

Population. Each argument is a complete genome (typically a list of rule dicts).

Approximation

approximation:confidence

[approximation:confidence $approx]

'exact'|'high'|'moderate'|'low'.

approximation:from-ilp

[approximation:from-ilp $learn_result [value?]]

VVL_Approximation. Wraps an ILP LearnResult so its trust level propagates through arithmetic BinOps.

approximation:llm-weight

[approximation:llm-weight LOGPROB]

calibrated weight in [0, 1]. Pass an OpenAI top_logprob. Buckets: ≥-0.5 → 0.3, [-2, -0.5) → 0.7, <-2 → 1.0.

approximation:make

[approximation:make VALUE ASSUMPTIONS_JSON [QUESTION?]]

VVL_Approximation. Each assumption: {name, value, source: user|fact|LLM|computation, concept?, weight?}.

approximation:range

[approximation:range $approx]

'low - high' string sized by Σ weight_llm.

approximation:revise

[approximation:revise $approx OVERRIDES_JSON]

new VVL_Approximation. Re-runs the stored code with assumption values overridden. Keys are either bare names or 'Concept.field'. Overridden assumptions are re-tagged source='user' so confidence improves.

approximation:scalars

[approximation:scalars $approx]

JSON list of {name, value, range, confidence}. Per-field range estimates for Concept-shaped results.

approximation:sensitivity

[approximation:sensitivity $approx [pct=0.10]]

JSON list of records ranked by impact. Each LLM-source numeric assumption is perturbed by ±pct, the stored code is re-run, and the result delta is captured. Tells you which LLM estimates dominate the final answer.

approximation:trace

[approximation:trace $approx]

JSON {value, confidence, n_*, w_*, range, assumptions}.

approximation:value

[approximation:value $approx]

numeric value (or string if non-numeric).

Async & concurrency

async

[async expression]

Execute asynchronously, returns Promise

await

[await promise] [await promise ms]

Wait for promise resolution

channel

[channel capacity?] | [channel name capacity?]

Create a channel; if no capacity the channel is not buffered, if capacity>0 buffer the communication

channel-delete

[channel-delete name]

Delete a named channel from registry (returns 1/0).

channel-exists

[channel-exists name]

Check if a named channel exists (returns 1/0).

channel-list

[channel-list]

List all named channels (sorted alphabetically).

getTimeout

[getTimeout]

Get current timeout setting in seconds

host-continuation-proxies

[host-continuation-proxies]

Inspect VVL proxy descriptors for active host continuations.

host-continuation-transfer

[host-continuation-transfer proxy_id|proxy]

Return VM transfer decision for a host-continuation proxy.

host-continuation-vm-proxy

[host-continuation-vm-proxy proxy_id vm_task_id resource_kind? operation?]

Build a VM-managed continuation proxy descriptor.

host-continuations

[host-continuations]

Inspect active Python host continuations created by blocking waiters.

promise-all

[promise-all list ms?]

Wait for all promises (like Promise.all)

promise-race

[promise-race list ms?]

Return first resolved promise

promise-state

[promise-state promise]

Get promise state without blocking

promise-value

[promise-value promise]

Get value if resolved, else empty

rwait

[rwait ms]

Wait for ms milliseconds, returns signal

semaphore

[semaphore name? n?]

Create or retrieve a named/anonymous semaphore with initial count n (default: 1)

semaphore-delete

[semaphore-delete name]

Delete a named semaphore from registry (returns 1/0)

semaphore-exists

[semaphore-exists name]

Check if a named semaphore exists (returns 1/0)

semaphore-list

[semaphore-list]

List all named semaphores (sorted alphabetically)

setTimeout

[setTimeout ms]

Configure timeout for blocking operations (0=infinite)

signal

[signal]

Return a successful completion signal

stop

[stop]

Stop current parallel branch cleanly

task-async

[task-async queue graph params]

Enqueue task and return Promise

Atoms & policies

atom:axes

[atom:axes $x]

JSON dict of metadata axes (payload_kind, effect_kind, determinism, persistence, trust_level, provenance, cost_hint, latency_hint).

atom:capabilities

[atom:capabilities $x]

list of capability protocol names the atom satisfies (Introspectable, Identifiable, Featurizable, LLMRepresentable, Persistable, Callable, Traceable, ...).

atom:family

[atom:family $x]

string family name (SymbolicAtom/GroundedAtom/ReifiedAtom) or ''.

atom:trace

[atom:trace $x]

JSON {family, class, runtime_id, content_hash, axes, dump, ...} structured trace of any atom.

policy:check

[policy:check $policy $atom]

JSON {allowed, matched_rule, action, axis, op, values, reason}. Walks rules in order; first match wins. No-match defaults to deny.

policy:define

[policy:define [list "allow|deny" AXIS [OP] VALUES...] ...]

Policy. Axes: family, payload_kind, effect_kind, determinism, persistence, trust_level, provenance, cost_hint, latency_hint, capabilities. Ops: in (default), ==, !=, >, <, >=, <=. Default action: deny.

Other

@

[@ "Name"]

Reify concept (free). [@ "Name" ClassName] -> Reify with class template. [@ "Name" "lazy"] -> No bootstrap.

email

[email action ...]

Protocol-level email (SMTP/IMAP/POP3). connect: [email connect name protocol host port user pass] disconnect: [email disconnect name] list: [email list] send: [email send name to subject body] or [email send name <{spec}>] folders: [email folders name] inbox: [email inbox name folder? limit?] search: [email search name criteria folder? limit?] read: [email read name uid folder?] flag: [email flag name uid flag folder?] unflag: [email unflag name uid flag folder?] move: [email move name uid dest source?] delete: [email delete name uid folder?] save: [email save name uid dir folder?] pop-list: [email pop-list name] pop-read: [email pop-read name index] pop-delete: [email pop-delete name index]

getResourceBase64

[getResourceBase64 $res]

Return base64 PNG data.

getResourceBase64ZIP

[getResourceBase64ZIP $res]

Return base64 ZIP-compressed PNG.

pis

[pis url user pass]

Client PIS (Partner Information System). Methods: ping, partners, partner, clients, distributors, create_partner, save_partner, search_partner, change_partner, locations, location, create_location, save_location, location_state, location_parts, search_location, parts, part, create_part, create_parts, update_part, search_part, unconfirmed_parts, orders, order, client_orders, create_order, assign_order, set_order_state, search_order, systems, system, client_systems, save_system, copy_system, release_system, search_system, systems_by_parts, contacts, contact, create_contact, save_contact, remove_contact, approve_contact, send_approve_mail, user_exists, search_user, part_types, part_type, search_parttype, templates, template, search_template, countries, has_backup, backups, activate_space, me, raw

tekitisy

[tekitisy url login password]

Tekitisy site management client. VDOM connection + auto-deployment of plugin_gateway if absent. Client commands: [$tk "sites"] -> list of sites/plugins [$tk "site" "SiteName"] -> select a site Site commands: [$site "pages"] -> list HTML pages [$site "upload" "name" $html] -> upload a page [$site "upload-file" "n" "path"] -> upload from file [$site "upload-dir" "path/"] -> upload a directory [$site "download" "name"] -> download a page [$site "delete" "name"] -> delete a resource [$site "routing"] -> current routing code [$site "set-routing" $code] -> replace routing [$site "add-route" "/url" "f"] -> add a route [$site "auto-routing"] -> generate auto routing [$site "inject" "seo" "p" $m] -> inject SEO [$site "inject" "cookie" "p"] -> inject GDPR cookies [$site "inject" "mobile-menu" "p"] -> mobile menu [$site "fix-links" "p" $map] -> fix links [$site "deploy" "dir/" $opts] -> full deployment [$site "macros"] -> list server macros [$site "macro-code" "name"] -> macro code [$site "set-macro" "n" $code] -> edit macro [$site "kv"] -> KV storage [$site "kv-get" "key"] -> read value [$site "kv-set" "k" "v"] -> write value [$site "status"] -> full summary

Relational databases

db

[db action name args...]

SQLite operations (open, query, exec, tables).

mssql

[mssql action alias ...]

Execute a SQL Server operation. Actions: connect/disconnect/list/exec/query/table/begin/commit/rollback/autocommit/tables/schema. See vvl_mssql.

pg

[pg conn_string|action ...]

Execute a PostgreSQL operation. See vvl_pg for connection/query syntax.

CSV

CSV

[CSV "filename.csv"]

Create or load a CSV file (extension optional).

csv-add

[csv-add $csv record]

Add a record to the CSV.

csv-all

[csv-all $csv]

Get all records as a list.

csv-autosave

[csv-autosave $csv enabled]

Toggle per-mutation auto-save. Set false for bulk inserts, then [csv-save].

csv-count

[csv-count $csv]

Get the number of records.

csv-create-index

[csv-create-index $csv field]

Create an index on a field to speed up lookups.

csv-delete

[csv-delete $csv key]

Delete a record by primary key.

csv-erase

[csv-erase $csv]

Clear all data and schema.

csv-filter

[csv-filter $csv lambda]

Filter records using a predicate function.

csv-find

[csv-find $csv key]

Find a record by primary key.

csv-grid

[csv-grid $csv field1 val1 [field2 val2 ...] value_field]

Fast native N-D grid lookup: filters each axis by field>=value, returns value_field of the row at the lowest tier of the first axis.

csv-key

[csv-key $csv fieldname]

Set the primary key field.

csv-orderby

[csv-orderby $csv fieldname]

Set sort order and sort data.

csv-reload

[csv-reload $csv]

Reload data from disk.

csv-save

[csv-save $csv]

Force save to disk (auto-save by default).

csv-setfield

[csv-setfield $csv name type]

Add/modify a field in the schema.

csv-update

[csv-update $csv key updates]

Update a record by primary key.

csv-where

[csv-where $csv field op value]

Fast filtering without lambda. Ops: =, !=, >, <, >=, <=, contains, startswith, endswith.

csv-where-indexed

[csv-where-indexed $csv field value]

Ultra-fast lookup on an indexed field (O(1)).

Symbolic computation

proof:auto

[proof:auto P]

{status: proved|refuted|unknown, by, justification, counterexample?}.

proof:check

[proof:check GOAL TERME]

Checks a proof term (natural deduction; 'auto' leaves discharged by the oracle).

proof:llm

[proof:llm GOAL max?]

the LLM proposes a proof term, the LCF kernel checks it and feeds the error back (kernel-checked verdict or honest failure).

proof:repair

[proof:repair GOAL $proposer max?]

kernel loop generate→check→repair (proposer = lambda [feedback] -> source of a proof term).

symbolic

[symbolic x | x y z | EXPR]

Declares one or more symbols, or reifies an expression.

symbolic:assume

[symbolic:assume x "positive" …]

Symbol with assumptions.

symbolic:det

[symbolic:det M]

Determinant.

symbolic:diff

[symbolic:diff e var n?]

Derivative.

symbolic:dsolve

[symbolic:dsolve eq func]

Solves a differential equation.

symbolic:eq

[symbolic:eq lhs rhs]

Equation.

symbolic:exact

[symbolic:exact EXPR question?]

Exact approximation (CAS result).

symbolic:expand

[symbolic:expand e]

Expanded form.

symbolic:factor

[symbolic:factor e]

Factored form.

symbolic:fn

[symbolic:fn f x [y …]]

Undefined function f(x,…).

symbolic:integrate

[symbolic:integrate e var (a b)?]

Antiderivative/integral.

symbolic:inv

[symbolic:inv M]

Inverse matrix.

symbolic:lambda

[symbolic:lambda x [y …] body]

Symbolic lambda, applied via [$f arg].

symbolic:latex

[symbolic:latex e]

LaTeX string.

symbolic:limit

[symbolic:limit e var to]

Limit.

symbolic:matrix

[symbolic:matrix <[[...]]>]

Symbolic matrix.

symbolic:numeric

[symbolic:numeric e digits?]

Numerical evaluation.

symbolic:parse

[symbolic:parse "x**2-1"]

Expression.

symbolic:rational

[symbolic:rational p q]

Exact rational.

symbolic:simplify

[symbolic:simplify e]

Simplified form.

symbolic:solve

[symbolic:solve eq var?]

Solutions of eq=0.

symbolic:solve-linear

[symbolic:solve-linear A b]

Solution of A·x=b.

symbolic:solveset

[symbolic:solveset eq var]

Solution set.

symbolic:string

[symbolic:string e digits?]

SymPy string.

symbolic:subs

[symbolic:subs e var val [var val …]]

Substitution(s).

symbolic:transpose

[symbolic:transpose M]

Transpose.

Generic catalog

generic

[generic "question" "name"?]

Generalises a resolution into a keyword catalogue. Trace mode follows ctx.trace (REPL :t).

generic:code

[generic:code name]

Returns the VVL source code of the memorised keyword.

generic:contract

[generic:contract name]

Returns the parameters and the output contract.

generic:evolve

[generic:evolve name]

Regenerates the generic entry from the source question while preserving the name.

generic:forget

[generic:forget name]

Removes a generic entry from the catalogue and its artefacts.

generic:info

[generic:info name]

Returns the complete record of a generic function.

generic:invoke

[generic:invoke "name" ...]

Internal helper for executing a generic-generated keyword with approximation preservation.

generic:list

[generic:list status?]

Lists the generic functions in the workspace catalogue.

generic:load

[generic:load name]

Loads the memorised keyword into the current context.

generic:pseudocode

[generic:pseudocode name]

Regenerates a Markdown pseudocode from the catalogue.

generic:tests

[generic:tests name]

Returns the memorised tests or validation cases.

generic:validate

[generic:validate name]

Executes the memorised tests and updates the validation score.

Strings

contains

[contains collection item]

1 if list/string contains item.

endsWith

[endsWith string suffix]

1 if string ends with suffix.

graphemes

[graphemes string]

List of Unicode grapheme clusters (= String.graphemes/1).

instr

[instr needle haystack [start] [compare]]

Find first occurrence (1-based), returns position or 0.

instrall

[instrall needle haystack [compare]]

Find all occurrences, returns list of positions (1-based).

instrrev

[instrrev needle haystack [start] [compare]]

Find last occurrence (1-based), returns position or 0.

join

[join list separator]

Join list elements with separator (default empty).

lower

[lower s]

Lowercase (prefix alias of the .lower method).

mid

[mid start length string]

Extract substring (1-based, length=0 means until end).

pad-end

[pad-end s largeur motif?]

Complete s A DROITE jusqu'a `largeur` grapheme(s) (= padEnd / ljust). Motif par defaut " ".

pad-start

[pad-start s largeur motif?]

Complete s A GAUCHE jusqu'a `largeur` grapheme(s) (= padStart / rjust). Motif par defaut " ".

replace

[replace regex new string]

Regex substitution.

sha256

[sha256 string]

Lowercase hex digest of the UTF-8 bytes of string.

split

[split sep string]

List of parts.

startsWith

[startsWith string prefix]

1 if string starts with prefix.

strToLowerCase

[strToLowerCase s]

Lowercase.

strToUpperCase

[strToUpperCase s]

Uppercase.

substring

[substring s start len?]

Substring; start is 1-based (negative counts from the end), optional length.

trim

[trim s]

Strip leading/trailing whitespace (prefix alias of .trim).

upper

[upper s]

Uppercase (prefix alias of the .upper method).

Distributed compute cluster

cluster:audit

[cluster:audit filters?]

Ordered JSON events of the job lifecycle.

cluster:await

[cluster:await job timeout_seconds?]

Waits for DONE, FAILED or CANCELED; a timeout does not delete the job.

cluster:backup

[cluster:backup]

Consistent hot snapshot; restoring is an offline operation.

cluster:call

[cluster:call function_ref arg...]

Loads a registered function by its sha256, checks its arity and runs it locally in the VM.

cluster:cancel

[cluster:cancel job]

Cancels the job and its pending or leased shards.

cluster:drain

[cluster:drain worker_id enabled?]

On master, enables drain by default (no new leases) or resumes the worker.

cluster:gc

[cluster:gc min_age_seconds?]

Removes only unreferenced store objects older than the given age.

cluster:jobs

[cluster:jobs filters?]

List of job progress records, newest first.

cluster:map

[cluster:map function_ref items options?]

Submits a non-empty list as persistent shards and returns the job handle.

cluster:metrics

[cluster:metrics]

Metrics JSON: bounded snapshot of jobs, tasks, workers and slots.

cluster:register

[cluster:register [keyword name `body]]

Compiles the keyword through the canonical compilation path, audits the result and stores it in the content-addressed store.

cluster:result

[cluster:result job pagination?]

Final result of the job, per the reduce strategy.

cluster:status

[cluster:status job]

Progress JSON for a job visible in the current workspace.

cluster:workers

[cluster:workers]

JSON view of the registered workers.

Compute / Optimization

optimize

[optimize "NL description" "name"]

Compile a natural-language optimization request to a [optimize:problem ...] block via LLM, parse, and register. Cached in .optimize_nl_cache.json. Inspect via [optimize:code name] before solving.

optimize:code

[optimize:code name]

Dump the registered problem as a VVL [optimize:problem ...] string. Inspectable, copy-paste'able, useful for problems generated from NL via [optimize "..." name].

optimize:explain

[optimize:explain name]

Human-readable rendering of the compiled CP-SAT model: variables (with source), constraints, objective.

optimize:problem

[optimize:problem name (schema class)? body...]

Register a CP-SAT problem. Schema/class are optional: in pure-local mode, declare decision vars via [decision $x Type [min L] [max H]] in the body. Body forms (Sprint 1): [decision $x Type [min L] [max H]], [maximize expr], [minimize expr], [assert expr].

optimize:report

[optimize:report name]

After solving, render a human-readable summary of the assignment via LLM. Combines [optimize:code] output and the last [optimize:solve] result.

optimize:solve

[optimize:solve name [time_limit secs] [backend "cp-sat"]]

Solve and return a VVL_OntologyInstance (ontology mode) or a result string (local mode). Only [backend "cp-sat"] is supported in Sprint 1.

optimize:validate

[optimize:validate name]

Structural diagnosis of the registered problem. Lists every non-compilable expression with an actionable fix suggestion. Works even when [optimize:problem] returned an error.

optimize:why-infeasible

[optimize:why-infeasible name]

After [optimize:solve] returns INFEASIBLE, isolate the minimal set of [assert] constraints whose intersection is unsatisfiable, via CP-SAT assumption literals.

Configuration

config-cluster

[config-cluster <field> <value>] (admin)

writes <CLUSTER> into vvl.config.

config-cluster-show

[config-cluster-show] (admin)

cluster configuration, token masked.

config-cluster-worker-token

[config-cluster-worker-token <worker-id> <token> [previous-token]] (admin)

configure a worker-bound secret; an empty token removes it.

config-gateway-token

[config-gateway-token <token>] (admin)

Writes <GATEWAY><AUTHTOKEN>.

config-geo-key

[config-geo-key <key>] (admin)

Writes <GEO><GOOGLE-API-KEY>.

config-jev

[config-jev <field> <value>] (admin)

writes <JEV> in vvl.config. field: account-id|token|model|provider|threshold|timeout. [config-jev show] (token masked), [config-jev test] (real call).

config-llm

[config-llm <field> <value>] (admin)

Writes <LLM> in vvl.config. field: key|model|agent|max-tokens|provider|endpoint|embedding|image|vision|temperature.

config-rest

[config-rest <host> <port>] (admin)

Writes <REST> (takes effect at next REST startup).

config-root-password

[config-root-password <pwd> [user]] (admin)

Writes <SECURITY> (root hash).

config-show

[config-show] (admin)

Summary of config (secrets masked).

setting

[setting "nom"]

Current value; [setting "name" value] sets it, applies it and writes it into <TUNING> in vvl.config (persistent). Replaces the VVL_* environment variables.

setting-reset

[setting-reset "nom"]

Removes the value (runtime + config), returning to the default.

settings

[settings]

Inventory of the settings: name, value, default, origin, documentation.

Contracts & verification

contract

[contract [params] [require "…"]… [ensure "…"]… body]

contract function (pre/post conditions verified at call time).

contract:info

[contract:info keyword]

the contract of a [keyword] as JSON (args, require, ensure, returns, mode).

contract:mode

[contract:mode] / [contract:mode "enforce"|"warn"|"off"]

session-wide mode of keyword contracts.

contract:ontology

[contract:ontology [params] [into <abstract>] [satisfies s] [require "…"]… [ensure "…"]… [retry n] [on-fail graceful|raise] [commit] body]

self-repairing contractual LLM producer: produce -> validate (thresholded satisfies_hybrid + ensure) -> on failure, feed the error back into the producer and retry.

contract:verify

[contract:verify $fn | keyword]

statically verifies requires ⟹ ensures (symbolic execution + [proof:auto]).

contract:warnings

[contract:warnings] / [contract:warnings clear]

violations recorded in warn mode (keyword, kind, message).

verify:approx

[verify:approx P]

VVL_Approximation (confidence = proof provenance).

verify:repair

[verify:repair $proposer max?]

generate → verify → repair loop (pluggable proposer).

Control flow

and

[and a b ...]

1 if ALL arguments are true, otherwise 0.

attempt

[attempt expr]

Return JSON {"ok":true,"value":...} or {"ok":false,"error":{type,message}}.

break

[break] ou [break valeur]

Leaves the current [for] / [while] loop.

continue

[continue]

Moves on to the next iteration of the [for] / [while] loop.

delay

[delay ms]

Pause execution. Cooperative: checks stop signal every 100ms.

do

[do expr1 expr2 ...]

Sequential evaluation. Stops on stop_signal, returns last expression's value.

exit

[exit val?]

Raise the stop signal in this context (returns the value).

if

[if cond then else?]

Conditional. Returns then-branch if cond truthy, else-branch otherwise (or empty).

not

[not val]

1 if val is falsy/empty, else 0.

or

[or a b ...]

1 if AT LEAST one argument is true, otherwise 0.

race

[race expr1 expr2 ...]

Parallel race: the first non-null value wins, losing branches are pruned.

raise

[raise "message"] ou [raise "type" "message"]

Raises an error, catchable by [try] / [attempt].

silent

[silent expr1 expr2 ...]

Execute exprs but always return "".

switch

[switch val case1 body1 ... _ default?]

Match val against cases. '_' matches anything.

timeout

[timeout ms expr]

Execute with time limit. Raises StopBranchException on timeout (catchable via ~>).

try

[try try-body catch-body]

Run try-body, on exception bind $__error and run catch-body.

try:json

[attempt expr]

Return JSON {"ok":true,"value":...} or {"ok":false,"error":{type,message}}.

when

[when cond body]

Execute body only if cond is truthy.

while

[while body]

Loop while body is truthy. Hard cap at 100k iterations.

Call credits

billing-credit

[billing-credit ws amount expiry? note?]

Add credits; expiry = days (number) or "YYYY-MM-DD", default never (root).

billing-history

[billing-history ws limit?]

JSON ledger, newest first (default 100 entries) (root).

billing-list

[billing-list]

JSON overview of every workspace: mode, balance, 30-day usage and totals (root).

billing-mode

[billing-mode ws "metered"|"unlimited" low_threshold?]

Switch the billing mode of a workspace (root).

billing-reset

[billing-reset ws note?]

RAZ: the balance of the workspace drops to 0 (root).

billing-set

[billing-set ws amount expiry? note?]

Force the balance to an exact value (root).

billing-status

[billing-status ws]

JSON: mode, balance, credit lots (with expiry) and usage of a workspace (root).

billing-usage

[billing-usage ws days?]

JSON daily consumption (calls, credits spent, rejected) over N days, default 30 (root).

Bayesian diagnosis

diagnose

[diagnose kb "obs."]

Reiter-style abductive diagnosis: minimal conflicts + minimal revocation sets ranked by belief cost.

diagnose:repair

[diagnose:repair kb "obs." mode? pick?]

apply a diagnosis: facts are retracted, rules get their Beta belief degraded ("soft") or retracted ("hard").

diagnose:why-not

[diagnose:why-not kb "goal." depth?]

positive abduction: minimal missing-fact sets that would derive the goal (depth-bounded).

Miscellaneous

chr

[chr codepoint]

Single character from Unicode codepoint.

guid

[guid]

Generate a UUID (Universally Unique Identifier).

ord

[ord char]

Unicode codepoint of first character.

random

[random n]

Random integer in [0, n). Equivalent to Orc Random(n).

timestamp

[timestamp]

Return current timestamp in milliseconds (epoch).

Factur-X

Factur-X

[Factur-X $pdf <data> "out.pdf" $options?]

VVL_Pdf. Wraps a PDF into Factur-X (PDF/A-3 + CII XML). <data> is either a [Fx-Invoice ...] DSL list, a Json invoice dict, or an XML string/path. Profiles: MINIMUM, BASIC WL, BASIC, EN 16931, EXTENDED, XRECHNUNG. Options: profile, lang, auto_profile, check_xsd, additional_attachments.

Fibers

fiber-alive

[fiber-alive $fiber]

Check if a fiber is still active (1) or completed (0). Alternative: $fiber.alive. Example: [while [fiber-alive $gen] ...]

fiber-load

[fiber-load $json]

Rebuild a fiber from [fiber-save] JSON and resume where it stopped.

fiber-resume

[fiber-resume $fiber]

Resume execution of a fiber and return the next yielded value. Returns empty string if fiber is complete. Alternative: $fiber.resume. Example: [fiber-resume $gen]

fiber-save

[fiber-save $fiber]

Serialise a SUSPENDED VM fiber to JSON (transportable continuation). Resumable via [fiber-load].

fiber-to-list

[fiber-to-list $fiber]

Collect all remaining values from a fiber into a list. Consumes the fiber completely. Alternative: $fiber.to-list. Example: [fiber-to-list $gen]

session-load

[session-load $json]

Restore a session from [session-save] into the current context (variables + resumed fibers).

session-save

[session-save]

Serialise the WHOLE session (variables + running fibers) to transportable JSON.

spawn

[spawn keyword args...] or [spawn lambda args...]

Create a fiber/generator from a keyword or lambda. Returns a fiber object that yields values lazily. Example: $gen = [spawn [counter 10]]

stream-pipe

[stream-pipe $fiber lambda]

Transform a fiber's values through a lambda function. Returns a new fiber with transformed values. Example: [stream-pipe $nums [lambda [$x] [* $x 2]]]

yield

[yield value]

Suspend execution and return a value from a fiber. Can only be called inside a fiber context. Example: [for $i [range 10] [yield $i]]

Filesystem

file-append-b64

[file-append-b64 "path" "base64_content"]

Append binary data (base64-decoded) to a file (creates it if absent).

file-delete

[file-delete "path"]

Delete file or directory (robust, with retries on Windows).

file-read

[file-read "path"]

Read text from workspace (jail).

file-read-b64

[file-read-b64 "path"]

Read binary file as base64 string.

file-rename

[file-rename "old_path" "new_name"]

Rename file/dir within same parent.

file-write

[file-write "path" "content"]

Write text in workspace (jail).

file-write-b64

[file-write-b64 "path" "base64_content"]

Write binary file from base64.

ls

[ls "/path"?]

JSON list of {name,type,size,modified} for directory entries.

Google APIs

calendarCreate

[calendarCreate summary startISO endISO desc?]

Create event.

calendarList

[calendarList max]

List upcoming events.

gmailList

[gmailList query max]

List unread emails (JSON).

gmailSend

[gmailSend to subject body]

Send an email.

Geo & routing

geo:coords

[geo:coords "city or address"]

{lat, lon, name, source}. source ∈ {offline, google, google-cache}. Offline first (cities-fr.csv), Google Geocoding fallback if GOOGLE_MAPS_API_KEY is set.

geo:distance

[geo:distance "src" "dst"]

integer km. Alias for haversine with string inputs.

geo:haversine

[geo:haversine A B]

integer km (great-circle). A/B are either {lat, lon} JSON or strings (resolved via [geo:coords]).

geo:store-info

[geo:store-info]

{offline_cities, google_api_key_configured}. Useful to verify the geo backend status.

route:matrix

[route:matrix [list src...] [list dst...]]

matrix of km between every (src, dst) pair. Output is a VVL list-of-lists of integers, consumable by [for] inside [optimize:problem] for distance coefficients.

HTTP

httpDELETE

[httpDELETE url headers?]

DELETE; optional headers (JSON dict). Returns VVL_String on 2xx, VVL_Json {error,status,body} on >=400.

httpGET

[httpGET url headers?]

GET; optional headers (JSON dict). Returns VVL_String on 2xx, VVL_Json {error,status,body} on >=400.

httpPATCH

[httpPATCH url body headers?]

PATCH with text/JSON body. Returns VVL_String on 2xx, VVL_Json {error,status,body} on >=400.

httpPOST

[httpPOST url body headers?]

POST with text/JSON body and optional headers.

httpPUT

[httpPUT url body headers?]

PUT with text/JSON body. Returns VVL_String on 2xx, VVL_Json {error,status,body} on >=400.

json-rpc

[json-rpc url service method args?]

Call a JSON-RPC 2.0 endpoint. Builds the envelope, POSTs, returns the parsed result or {error:msg}.

server

[server port host?]

Run a minimal VVL HTTP server (admin only).

site

[site baseUrl domain funcDef1 funcDef2 ...]

Declare HTTP-routed keywords (ODESA).

AI & agents

agent

[agent "goal" options?]

Autonomous ReAct agent. Generates VVL, executes it in the current context, receives feedback, and iterates. Use [§§ "sub-question"]/[resolve "..."] inside the goal/code for specialized neuro-symbolic solving (calculation, optimization, extraction, facts, expert systems). Options: budget (int, default 8), tools (list[str], documentation filter only), model (str), reflect (bool, default true — runs a final judge() call that can reject and grant 1 corrective step).

agentTrace

[agentTrace]

VVL_Json with the structured execution trace of the most recent [agent] call: {goal, model, steps_used, max_steps, done_signal, return_type, tool_calls[], tool_calls_count, errors[], final_code, usage_total{prompt_tokens,...}, elapsed_ms}. Returns <{}> if no [agent] call has run in this context.

architect

[architect "goal" options?]

High-level orchestrator. Generates a VVL plan (single-shot or plan-first JSON), lints it, executes with LLM auto-fix on runtime errors. Options dict: {model, budget, max_retries (default 3), plan_first (bool), session (id), temperature, use_rag}.

architect-resume

[architect-resume "session-id"]

Load a checkpointed architect session: rehydrates phase results into [mem "<sid>"] and returns {session_id, phases, plan}.

codegen

[codegen "goal"]

VVL_Json {"ok":true,"code":"<VVL code>"} or {"ok":false,"error":...}. Generates VVL code via the LLM (same engine as :agent / vvl_codegen). Does not alter the session.

intent

[intent "NL" "ProblemName"] (post-hoc)

compile a natural-language intention to a single body form (soft/assert/maximize/minimize) and add it to an existing problem. Inline form: place [intent "..."] inside an [optimize:problem ...] body.

semantic

[§ x] aka [semantic x]

VVL_Semantic for text | VVL_Semantic(description) for [§ img] (vision LLM) | VVL_Img for [§ 'desc' IMG 'WxH'] (DALL-E 3). Generated images are saved under the active user workspace.

semanticCache

[semanticCache action ...]

Cache management: 'reset' (clear all), 'delete' op left right (remove one entry), 'purge' op (remove all for operator), 'list' [op] (show entries).

semanticMode

[semanticmode mode [threshold]]

Set semantic mode: 'normal', 'advanced' (agent model for @) or 'jev' (boolean operators decided by Jev, LLM fallback when Jev is unsure; optional threshold 0.5..1)

semanticModel

[semanticModel] | [semanticModel kind] | [semanticModel kind name] | [semanticModel kind name persist]

Inspect or override LLM models. Kinds: 'model' (base, @ normal), 'agent' ([agent]/[architect], @ advanced), 'vision' ([§ img]), 'image' ([§ desc IMG size]). With 'persist' the value is also written to vvl.config (otherwise process-local).

ILP — logic induction

ilp:bias

[ilp:bias BIAS_JSON]

Bias spec. BIAS_JSON: {target, predicates:[{name,modes,role?,is_bk?}], max_body?, max_clauses?, max_vars?, types?, allow_recursion?}.

ilp:constraints

[ilp:constraints $result]

the ConstraintStore atom from a LearnResult — [atom:trace] it for the full failure log.

ilp:explain

[ilp:explain $result]

string. Pretty-prints an LFF run (program, coverage, elapsed, constraints by kind).

ilp:induce

[ilp:induce DESCRIPTION HEAD_NAME HEAD_ARITY POS NEG [OPTS?] [KB_NAME?]]

LearnResult. Full pipeline: LLM bias proposal + LLM hypothesis seeding + LFF refinement. opts: {n_seeds, max_body, max_iter, beam_width, seed}.

ilp:learn

[ilp:learn $bias HEAD_PRED POS_JSON NEG_JSON [BK_JSON] [OPTS_JSON] [KB_NAME]]

LearnResult atom. Runs Learning-From-Failures over the bias-bounded hypothesis space. opts: {max_body, max_iter, beam_width, seed}.

ilp:learn-with-counter

[ilp:learn-with-counter $bias HEAD_NAME POS NEG $store [WEIGHT?] [OPTS?] [KB_NAME?]]

LearnResult. Folds human corrections (from a [genetic:counter-store]) into the example sets for adversarial re-induction.

ilp:propose-bias

[ilp:propose-bias DESCRIPTION HEAD_NAME HEAD_ARITY POS NEG [KB_NAME?]]

Bias node. LLM proposes mode declarations + body predicates from natural language + sample examples.

ilp:refine-with-ga

[ilp:refine-with-ga $result HEAD_NAME POS NEG [OPTS?] [KB_NAME?]]

refined LearnResult. Stochastic refinement of an LFF result's winners via drop-literal and swap-variable mutations; merges new consistent clauses and re-runs greedy set-cover.

ilp:seed-hypotheses

[ilp:seed-hypotheses $bias DESCRIPTION POS NEG [N?]]

JSON list of Prolog clause strings. LLM proposes up to N candidate Horn clauses for the bias.

ilp:test

[ilp:test CLAUSES_JSON HEAD_PRED POS_JSON NEG_JSON [BK_JSON] [KB_NAME]]

JSON test outcome. Tests a candidate program against {E+, E-} without learning.

Images & drawing

addImage

[addImage $res1 $res2 x y alpha? alphacolor?]

Paste res2 onto res1.

blur

[blur $res value]

Apply Gaussian blur.

brightness

[brightness $res value]

Adjust brightness (1.0=original).

contrast

[contrast $res value]

Adjust contrast (1.0=original).

createBlackWhite

[createBlackWhite $res]

Convert to black and white.

createGrayScale

[createGrayScale $res]

Convert to grayscale.

createImage

[createImage w h bgcolor? transparency?]

Create new image (transparency: 0=opaque, 100=transparent).

createNegative

[createNegative $res]

Invert colors (negative).

cropImage

[cropImage $res x y w h]

Crop region at (x,y) with size w*h.

drawAngleArc

[drawAngleArc $res x y radius startAngle endAngle pen fill alpha?]

Draw arc.

drawBezier

[drawBezier $res points pen alpha?]

Draw Bezier curve.

drawEllipse

[drawEllipse $res x1 y1 x2 y2 pen fill alpha?]

Draw ellipse.

drawLine

[drawLine $res x1 y1 x2 y2 pen alpha?]

Draw line (pen: '#RRGGBB:width').

drawPolygon

[drawPolygon $res points pen fill alpha?]

Draw polygon.

drawRect

[drawRect $res x1 y1 x2 y2 pen fill alpha?]

Draw rectangle.

drawRoundRect

[drawRoundRect $res x1 y1 x2 y2 radius pen fill alpha?]

Draw rounded rectangle.

emboss

[emboss $res]

Apply emboss effect.

fillBezier

[fillBezier $res points pen fill alpha?]

Draw filled Bezier shape.

flipImage

[flipImage $res direction]

Flip 'horizontal' or 'vertical'.

getHeight

[getHeight $res]

Return height of image.

getImage

[getImage 'path']

Load image file into a mutable ImageRes resource.

getImageURL

[getImageURL 'url']

Download an image from a URL into a mutable ImageRes resource.

getPixel

[getPixel $res x y]

Return '#RRGGBB' color at pixel position.

getPixel32

[getPixel32 $res x y]

Return 32-bit ARGB integer at pixel position.

getWidth

[getWidth $res]

Return width of image.

imageToBase64

[imageToBase64 $res format?]

Encode as data URI (png/jpg).

resizeImage

[resizeImage $res w h]

Resize with nearest-neighbor interpolation.

resizeResampling

[resizeResampling $res w h]

Resize with Lanczos resampling.

rotateImage

[rotateImage $res angle bgcolor?]

Rotate by angle degrees.

saturation

[saturation $res value]

Adjust saturation (1.0=original).

saveImage

[saveImage $res 'path' format?]

Save image to file (format: png/jpg/bmp).

setPixel

[setPixel $res x y color]

Set pixel color at position.

sharpen

[sharpen $res value]

Sharpen image.

Bayesian inference

bannotate

[bannotate kb "clause" p source? label?]

Annotate one clause. p is a number or "?"; source in {user,fact,LLM,learned}; label shares one random variable across clauses.

bapprox

[bapprox kb "goal" ...]

VVL_Approximation wrapping P[goal] so it flows through VVL arithmetic and [approximation:*].

bbeliefs

[bbeliefs kb]

all clause beliefs in the KB (JSON).

bfacts

[bfacts kb "p::fact" ...]

Add probabilistic (annotated) facts. Use "0.8::rain." or "?::rain." (uniform prior, to be learned).

blearn

[blearn kb OBS_JSON iterations? seed?]

Bayesian (Gibbs) learning of clause weights from observed query-atoms. OBS_JSON: [{"goal":"wet(r1)","obs":true}, ...]. Commits posteriors to the KB.

bposterior

[bposterior kb "clause"]

current Beta belief of a clause (JSON).

bprob

[bprob kb "goal" n_outer? n_inner? seed?]

JSON {value, ci, range, confidence, assumptions}. Predictive probability with epistemic uncertainty propagation. Negation is exact (per-world boolean solve).

brules

[brules kb "p::head:-body." ...]

Add probabilistic (annotated) rules.

Variable introspection

parse-statements

[parse-statements code]

JSON list of top-level statements {start_line, end_line, text}. Used by the IDE debugger.

vars

[vars all?]

JSON list of session variables {name, type, preview, value}. "all" includes $__ locals.

JSON / XML

JSON

[JSON s]

Parse JSON string s into a JSON object.

XML

[XML s]

Parse XML string.

getXMLValue

[getXMLValue xml "xpath"]

Get text content of node(s).

json-decode

[json-decode string]

Parse a JSON string into a VVL_Json object. Returns an error string on parse failure.

json-encode

[json-encode value]

JSON-encode a value (string, number...) as a JSON literal with surrounding quotes and proper escaping.

json-get-opt

[json-get-opt key json default?]

Get value by key from JSON object. Returns default (or "") if key is absent — safe for optional fields.

json-keys

[json-keys json]

Returns VVL_List of all key names from a JSON object.

json-path-get

[json-path-get json_str path]

Get nested value at dot+bracket path (e.g. 'layout.tabs[0].viewSystem.views.INIT.root'). Returns JSON string of the value, or 'null' if not found.

json-path-set

[json-path-set json_str path new_value]

Set nested value at dot+bracket path. new_value is parsed as JSON if possible. Returns updated full JSON string.

json-set

[json-set json_str key value]

Set a top-level key in a JSON object string, return updated JSON string.

jsonGetValue

[jsonGetValue key json]

Get value by key/index from JSON. Raises KeyError if missing.

jsonToList

[jsonToList jsonArray]

Convert JSON array to VVL list.

object

[object [key value ...]]

Lightweight object as VVL_Json dict; serializable with .json.

setXMLValue

[setXMLValue value xml "xpath"]

Set text content of node(s).

strToJson

[JSON s]

Parse JSON string s into a JSON object.

Lists

append

[append head|tail val list]

Add value to list.

chunk

[chunk n list]

List of n-sized chunks, the last one may be shorter (= Enum.chunk_every).

collect

[collect expr1 expr2 ...]

Evaluate expressions and return values kept with [keep].

concat

[concat l1 l2 l3...]

Flatten one level — concatenate the given lists.

count-by

[count-by f serie]

paires [cle nombre] (= SELECT cle, COUNT(*) GROUP BY cle).

cycle

[cycle serie]

INFINITE stream repeating a FINITE series (= Haskell's cycle).

dim

[dim $var value]

Assign value to variable (alternative to $var = value).

drop

[drop n list]

List without the first n items; a negative n drops from the end (= Enum.drop).

exist

[exist value list]

1 if value is in list, else 0.

first

[first serie]

First element of a list, first character of a string ("" if empty).

getType

[getType element]

VVL type tag string ("NUM", "STRING", "LIST", "JSON", ...).

getValue

[getValue idx list]

Get element at 1-based index.

group-by

[group-by f serie]

paires [cle elements], dans l'ordre de premiere apparition (= GROUP BY).

index-of

[index-of serie valeur]

1-based position of the value in the list (or of the substring), 0 if absent. Same argument order as [contains].

insert

[insert idx value list]

Insert value at 1-based index.

iterate

[iterate f x]

INFINITE stream x, f(x), f(f(x))... (= Haskell's iterate).

keep

[keep value]

Append value to the current [collect] buffer and return it.

last

[last serie]

Last element of a list, last character of a string ("" if empty).

length

[length x]

Get length of list, string, or JSON (array length, dict key count).

let

[let [[$x expr1] [$y expr2] ...] body]

Local sequential bindings (let*), evaluate body, restore prior bindings.

list

[list items...]

Variadic constructor of a VVL_List.

listMatch

[listMatch list default lambda_cons]

If empty, default; else lambda_cons(head, tail).

match

[match target pattern1 body1 ... default?]

Pattern matching with deferred body execution.

mset

[mset [$vars...] $values]

Multi-variable destructuring assignment.

pop

[pop head|tail list]

Return head/tail value of list.

put

[put type idx value list]

Insert/replace at 1-based index with typing (NUM/STRING/LIST/JSON).

remove

[remove idx list]

Delete element at 1-based index.

repeat

[repeat v]

INFINITE stream of the same value (= Haskell's repeat).

rest

[rest serie]

The series minus its first element (list or string).

scan

[scan f init serie]

les resultats INTERMEDIAIRES du pli (= scanl / Enum.scan / +\).

slice

[slice start stop step? list]

Slice 1-based, stop inclusive. Negative step reverses.

unique

[unique list]

List without duplicates, first occurrence wins (= Enum.uniq).

unpack

[unpack list $headVar $tailVar]

Destructure list into head/tail variables. Returns 1 on success, 0 on empty.

update

[update type idx value list]

Update value at 1-based index with typing.

with

[with $source $alias expr1 expr2 ...]

Parallel eval of expressions, each with $alias = source.

zip

[zip a b]

List of pairs, stops at the shorter list (= Enum.zip).

zip-with

[zip-with f a b]

f applied to the pairs, stops at the shorter one (= zipWith).

Fuzzy logic & expert

expert

[expert "NL describing domain AND rules" "ExpertName"]

Bootstraps a complete expert system: generates the ontology + abstracts via [fuzzy:ontology], generates a dispatcher rule via [fuzzy:rule], then registers a VVL keyword <ExpertName> that takes one NL string and returns the classified instance. The caller can then use [<ExpertName> "free-form input"] without writing any other VVL.

expert:active

[expert:active]

JSON list of experts currently registered in the session (the ones the router can dispatch to). Distinct from [expert:list] which lists experts persisted to disk via [expert:save]. Use this to inspect ctx._expert_registry — the symbolic router consults this list when classifying a question into the expert_system family.

expert:list

[expert:list]

Returns a JSON list of every saved expert.

expert:load

[expert:load "Name"]

Restore a saved expert: schema, abstracts, rules, and the keyword. Returns the schema variable for further use.

expert:save

[expert:save "Name"]

Persist a previously-built expert (schema, abstracts, rules, keyword) so it can be reloaded via [expert:load].

fuzzy:and

[fuzzy:and a b ...]

T-norm AND across all arguments. Use :family <name> to override.

fuzzy:degree

[fuzzy:degree [§ x] "spam"]

degree 0..1 that the description applies to x; [fuzzy:degree [§ x] ["low" "mid" "high"]] -> position on the scale, 0..1. Jev in [semanticMode "jev"] (LLM when Jev is unsure), else the LLM.

fuzzy:degrees

[fuzzy:degrees [§ x] `[name "predicate" name2 ["low" "high"] ...]]

JSON {name: degree 0..1}, all measured in ONE Jev call ([semanticMode "jev"]); the LLM only takes the degrees Jev is unsure about.

fuzzy:extremely

[fuzzy:extremely x]

x**4 (super-concentration).

fuzzy:family

[fuzzy:family]

Current family. [fuzzy:family "name"] -> set ("zadeh"/"probabilistic"/"lukasiewicz").

fuzzy:few

[fuzzy:few values]

Average of the bottom half (quantifier 'few are').

fuzzy:imp

[fuzzy:imp a b]

Fuzzy implication a->b under active family.

fuzzy:most

[fuzzy:most values]

Average of the top half (quantifier 'most are').

fuzzy:not

[fuzzy:not x]

1-x.

fuzzy:ontology

[fuzzy:ontology "NL description of the domain"]

Generates a full ontology (classes, attributes, abstracts, relations) from a natural-language description. The generated VVL is parsed and evaluated immediately so $<Schema> is bound and ready for use with [ontology:fromText], [fuzzy:rule], [ontology:infer], etc.

fuzzy:or

[fuzzy:or a b ...]

T-conorm OR across all arguments. Use :family <name> to override.

fuzzy:rule

[fuzzy:rule "rule in NL" $schemaVar?]

Translates the NL rule into a formal ontology:rule using ~&/~|/~!/≈> infix operators. The rule is then evaluated by [ontology:infer ...] without any further LLM calls.

fuzzy:slightly

[fuzzy:slightly x]

x**(1/3) (super-dilation).

fuzzy:somewhat

[fuzzy:somewhat x]

sqrt(x) (dilation).

fuzzy:very

[fuzzy:very x]

x**2 (concentration).

fuzzy:wmean

[fuzzy:wmean values weights]

Weighted arithmetic mean of two equal-length VVL lists.

Propositional logic

proposition

[proposition "p & q

r"] -> compile a readable INFIX proposition.

proposition:and

[proposition:and P Q …]

conjunction.

proposition:entails

[proposition:entails [P …] G]

1 if the premises entail G.

proposition:eq

[proposition:eq a b]

a = b.

proposition:ge

[proposition:ge a b]

a ≥ b.

proposition:gt

[proposition:gt a b]

a > b.

proposition:iff

[proposition:iff P Q]

equivalence P<->Q.

proposition:implies

[proposition:implies P Q]

implication P->Q.

proposition:le

[proposition:le a b]

a ≤ b.

proposition:lt

[proposition:lt a b]

a < b.

proposition:ne

[proposition:ne a b]

a ≠ b.

proposition:not

[proposition:not P]

negation.

proposition:or

[proposition:or P Q …]

disjunction.

proposition:parse

[proposition:parse "p & q

r"] -> same as [proposition "…"] (namespaced form).

proposition:sat

[proposition:sat P]

{sat, model} (satisfiability).

proposition:symbolic

[proposition:symbolic p [q …]]

declares one or more propositional symbol(s).

proposition:valid

[proposition:valid P]

1 if tautology, 0 otherwise.

proposition:xor

[proposition:xor P Q …]

exclusive or.

Logs

log

[log msg...]

Append to context log file (and console if no workspace).

logImage

[logImage img options?]

Display image in REPL. Modes: "image" (default, term-image) or "ascii" (Pillow).

logTable

[logTable list_of_objects options?]

Display Rich table from JSON list. Options: {box, title, styles}.

print

[print arg1 arg2 ...]

Print arguments to console.

MCP

mcp-call

[mcp-call $client tool_name arguments?]

Call an MCP tool. Returns JSON result.

mcp-close

[mcp-close $client]

Close MCP connection and terminate server process.

mcp-connect

[mcp-connect name command env?]

Connect to an MCP server via stdio. Returns "mcp:<name>".

mcp-list

[mcp-list $client]

List tools available on the MCP server. Returns JSON array.

mcp-resource

[mcp-resource $client uri]

Read a resource from the MCP server. Returns JSON.

mcp-servers

[mcp-servers]

List all active MCP connections. Returns JSON array.

Modules

module:def

[module:def name [export a b ...] body...]

Define a namespaced module. RAW builtin. The body executes in an isolated context. Exports: - values are read with [module:get Module name]; - keywords are installed only under qualified names such as Module:name.

module:get

[module:get module export]

Return an exported module value. RAW builtin. `module` and `export` may be words or strings.

module:info

[module:info module]

Return module metadata as JSON. RAW builtin. Result fields: name, exports, keywords, path

module:list

[module:list]

Return loaded/defined module names.

module:load

[module:load "file.vvl"]

Load a VVL module file once. The file is resolved through the current workspace path rules and usually contains one or more [module:def ...] forms. Uses ctx.module_cache: loading the same path again returns the cached result. Use [module:reload "file.vvl"] to force re-execution.

module:reload

[module:reload "file.vvl"]

Force reload of a VVL module file. Re-parses and re-executes the file, replacing qualified keyword exports for modules redefined by that file.

Meta & introspection

compute

[compute stack ops]

Uiua-style stack engine. Ex: [compute [] [5 "iota" 2 "*"]]

dump

[dump value]

Return the VVL textual dump of an evaluated value. Useful for debugging and for core value round-trips: $text = [dump `[a b 1]] -> "[a b 1]" [eval [load $text]] -> [a b 1] Round-trip is guaranteed for core readable values such as numbers, strings, lists and JSON. Platform resources may return diagnostic dumps only.

eval

[eval expr]

Short alias for [evaluate]. RAW builtin. Preferred in the code-as-data workflow: $form = [load "[+ 2 3]"] [eval $form] -> 5 Use [load] to parse source without executing it, then [eval] to run the loaded form.

evaluate

[evaluate expr]

Evaluates VVL source, or the ELEMENTS of a form. RAW builtin.

execute

[execute expr]

LAUNCHES a form, repeating until stable. RAW builtin. This is VVL's "do".

form

[form value]

Return human-facing text for an evaluated value. Unlike [mold]/[dump], strings are not quoted and lists are joined as text: [form "hello"] -> "hello" [form `[a 10 b]] -> "a 10 b" Use [mold] or [dump] when you need a representation intended for [load].

help

[help name?]

List builtins or get help for specific command.

import

[import "file.vvl"]

Execute external VVL file.

inspectWord

[inspectWord name]

Check if word is builtin, keyword or other.

keyword

[keyword name template]

Define a macro.

lambda

[lambda [params] body]

Define an anonymous function.

load

[load source]

Parse VVL source string without executing it. Returns: - the single parsed node when the source has one top-level expression; - a VVL list of nodes when the source has several top-level statements.

mem

[mem db key val?]

Key-Value store (get or set).

memSearch

[memSearch db val]

Find keys by value.

mold

[mold value]

Return the readable VVL representation of an evaluated value. `mold` is the REBOL-style name for the round-trip-oriented textual form. For now it intentionally shares the same semantics as [dump]: [mold `[a b 1]] -> "[a b 1]" [eval [load [mold `[a b 1]]]] -> [a b 1] Use [form] when you want human-facing text instead of readable source.

proai-validator-json

[proai-validator-json JSON|fichier]

Structured JSON validation report. Returns JSON with score, valid, hasCritical, hasErrors, summary, and entries[] each with id/severity/category/title/message/path/fix/expected/actual.

quote

[quote expr...]

Return raw expression(s) without evaluating them. RAW builtin. - One argument: returns that raw expression. - Several arguments: returns a VVL list of the raw expressions.

sub

[sub "file.vvl" args...] or [sub graphName args...]

Call sub-script or sub-graph.

type-of

[type-of value]

Return a stable lowercase VVL type name.

version

[version]

JSON {"VAILS", "VVL", "variant"?, "branch"?, "sha"?}. "variant" appears on experimental builds; branch/sha when git is reachable.

λ

[λ [params] body]

Alias for lambda.

ODESA

odesa:call

[odesa:call URL token fonction [param valeur] …]

internal forwarder for keywords installed by [odesa:site].

odesa:site

[odesa:site URL préfixe ?token]

fetches the manifest of an ODESA server and installs prefix:function keywords (HTTP call + VVL re-eval).

Objects (classes)

class

[class Name : Parent? [field f default :ann?]* [method m [params] body]* [mixin M]* [implements P]*]

class-of

[class-of $obj]

Name of the object's class (or Python type for non-instances).

implements-of

[implements-of $obj ProtocolName]

1 if the object implements the protocol.

is-a

[is-a $obj ClassName]

1 if instance of class, subclass, mixin, or implements protocol.

method-call

[method-call $obj "nom" args...]

calls the method by its NAME (dynamic dispatch).

methods-of

[methods-of $obj]

JSON list of method names.

new

[new ClassName arg1 arg2 ...]

Create instance. VVL classes: positional args are passed to init(). Ontology classes: pass named pairs [attr value] -> VVL_OntologyInstance.

object-class

[object-class $obj]

Name of the class (object or class). An error otherwise.

object-fields

[object-fields $obj]

Field names, sorted (same order as the VM).

object-get

[object-get $obj champ]

Value of the field, "" if absent.

object-has

[object-has $obj champ]

1 if the field exists, 0 otherwise.

object-new

[object-new Classe] ou [object-new Classe <{...}>]

An instance carrying those fields.

object-set

[object-set $obj champ valeur]

A NEW object; the source is untouched.

object-to-json

[object-to-json $obj]

JSON {__vvl_object__, fields, …}, the VM's shape.

protocol

[protocol Name [requires methodA] [requires methodB] ...]

Define an interface.

relation

[relation Name [domain Class] [range Class] [cardinality ...] [inverse R] [symmetric true] [transitive true]]

OWL-style relation.

Office COM

call

[call obj method args...]

Call method.

excel-chart

[excel-chart $book spec]

Insert chart from JSON spec.

excel-formula

[excel-formula $book spec]

Insert formulas from JSON spec.

excel-info

[excel-info $book]

Full workbook structure (sheets + cells) as JSON.

excel-pdf

[excel-pdf $book path]

Export workbook as PDF.

excel-style

[excel-style $book spec]

Apply styles from JSON spec.

excel-table

[excel-table $book spec]

Create table from JSON spec.

get

[get obj prop]

Get property.

office

[office app visible?]

Launch Office app (word/excel/outlook/powerpoint).

outlook-folders

[outlook-folders $outlook]

List all Outlook mail folders as JSON [{name,path,unreadCount,itemCount}...].

outlook-list

[outlook-list $outlook folder? max?]

List recent emails in folder (default Inbox, max 50). Returns JSON list.

outlook-move

[outlook-move $outlook entryId targetFolder]

Move an email to another folder by path.

outlook-read

[outlook-read $outlook entryId]

Read a single email by EntryID. Returns JSON {subject,sender,body,attachments...}.

outlook-save

[outlook-save $outlook entryId path]

Save an email as .msg file on disk.

outlook-search

[outlook-search $outlook query folder?]

Search emails matching query (DASL filter). Returns JSON list.

outlook-send

[outlook-send $outlook to subject body cc? bcc? attachments?]

Send an email via Outlook.

ppt-animate

[ppt-animate $pres slideIdx shapeIdx effect]

Add an animation effect to a shape.

ppt-chart

[ppt-chart $pres slideIdx spec]

Insert a chart from a JSON spec.

ppt-duplicate

[ppt-duplicate $pres slideIdx]

Duplicate an existing slide.

ppt-export

[ppt-export $pres path format?]

Export the presentation (default pdf, also pptx, png).

ppt-info

[ppt-info $pres]

Full presentation structure as JSON {slides:[{layout,shapes:[...]}]}.

ppt-master

[ppt-master $pres action params...]

Manipulate the slide master and layouts.

ppt-pdf

[ppt-pdf $pres path]

Export the presentation as a PDF file.

ppt-shape

[ppt-shape $pres slideIdx spec]

Create or modify a shape from a JSON spec.

ppt-slide

[ppt-slide $pres action params...]

Manage slides (add, delete, duplicate, move).

ppt-style

[ppt-style $pres slideIdx shapeIdx style]

Apply visual style (fill, border, font) to a shape.

ppt-text

[ppt-text $pres slideIdx shapeIdx text]

Set text content of a shape.

ppt-transition

[ppt-transition $pres slideIdx effect]

Set the slide transition effect.

prop

[prop obj path...]

Walk property path on COM object.

quit

[quit obj]

Quit Office app.

set

[set obj prop val]

Set property.

word-info

[word-info $doc]

Full document structure as JSON (one call).

word-pdf

[word-pdf $doc path]

Export a Word document as a PDF file.

word-table

[word-table $doc spec]

Create table from JSON spec.

word-textbox

[word-textbox $doc spec]

Create text box from JSON spec.

Higher-order

every

[every lambda list]

1 if every item satisfies the predicate (= Enum.all?).

filter

[filter lambda list]

Filter list by predicate. Supports VVL_List and VVL_Json.

flat

[flat list] or [flat list depth]

Flatten nested list to single-level list. Optional depth limits flattening.

for

[for $var list body]

Loop over list/json-array. Returns list of body results.

jit

[jit]

current compilation threshold | [jit N] sets it (calls before a hot lambda is compiled; 0 = JIT off, 1 = compile immediately).

map

[map lambda list]

Apply function to each element of a list.

pmap

[pmap lambda list]

Apply function in parallel to each element of a list.

reduce

[reduce lambda init? list]

Fold a list into one value (the lambda takes acc, item).

some

[some lambda list]

1 if at least one item satisfies the predicate (= Enum.any?).

take

[take n serie]

the first n elements of a list OR a lazy stream. Forces a stream (even infinite) to n elements.

vectorize

[vectorize]

state (1/0) | [vectorize 1|0] enables/disables the vectorising tier of [map] at runtime (process-wide).

PDF (generation)

PDFMake

[PDFMake <template> $data "out.pdf" $options?]

VVL_Pdf. Template is a VVL bracket expression (DSL) or a string (Markdown); type-detected. Options: pageSize/orientation/margins/defaultStyle/title/author/input.

PDF (signing)

pdfListKeys

[pdfListKeys "users"|"guests"|"all"?]

JSON of workspace keystores.

pdfMakeGuestKey

[pdfMakeGuestKey "email" "Nom Prénom" days?]

Creates a guest .p12 certificate (auto password, encrypted).

pdfMakeUserKey

[pdfMakeUserKey "password" days?]

Creates a .p12 for ctx.user in the workspace.

pdfRevokeKey

[pdfRevokeKey "user:email"|"guest:id"]

1/0. Deletes the .p12 and logs the fingerprint.

pdfSign

[pdfSign $pdf "out.pdf" "user:email"|"guest:id" password?]

Relative path of the signed PDF.

pdfVerify

[pdfVerify "signed.pdf"]

JSON {valid, signers:[{cn,email,trust,fingerprint,revoked,...}]}.

PDF / Images

IMG

[IMG "path"]

Creates a VVL_Img and preloads its base64 representation.

PDF

[PDF "path"]

Creates a VVL_Pdf.

imgToMatrix

[imgToMatrix "path" mode?]

JSON pixel matrix (mode "RGB" or "L").

matrixToImg

[matrixToImg matrix "path"]

Save matrix as image file.

pdfMeta

[pdfMeta $pdfObj]

JSON {pages, author, ...}.

pdfText

[pdfText $pdfObj max_pages?]

Text extracted from the PDF.

pdfToImages

[pdfToImages $obj zoom?]

List of VVL_Img (one per page).

Parsing & dialects

dialect:def

[dialect:def name grammar]

Register a named parse grammar. RAW builtin. The grammar is stored in the current context under `name`. It does not become a builtin, keyword or plugin.

dialect:list

[dialect:list]

Return registered dialect names.

dialect:parse

[dialect:parse name input]

Parse input using a registered grammar. RAW builtin. `name` may be a word or string. `input` is evaluated. Returns the same JSON shape as [parse].

parse

[parse input grammar]

Parse a string or list with the VVL parse dialect. RAW builtin. `input` is evaluated; `grammar` is read as rules. Returns JSON: {ok, position, captures, rest, expected?} Primitive rules: digit number num letter space string word list any end Combinators: [some rule] one or more [any rule] zero or more [opt rule] optional [repeat n rule] exactly n [repeat min max rule] between min and max [alt r1 r2 ...] alternatives [capture name rule] capture consumed input [literal value] match a literal value [to rule] advance up to rule without consuming it [thru rule] advance through rule and consume it [rule name grammar] define a local subrule [do expr...] execute VVL action at current parse position

Object persistence

obj-assert

[obj-assert $instance kbname?]

Inject instance/2 + prop/3 + rel/3 facts into a Prolog KB. Without kbname, uses the default KB (see [kb default]). Returns fact count.

obj-delete

[obj-delete $instance] or [$instance.delete]

Delete instance from SQLite by its UUID.

obj-find

[obj-find ClassName field value op?]

Find instances by field value. op: '=' (default), '>=', '<=', '>', '<', '!=', 'LIKE'.

obj-join

[obj-join FromClass relField ToClass filterField filterValue]

Cross-class relational join via vvl_relations table.

obj-load

[obj-load ClassName id]

Load instance by UUID from SQLite.

obj-query

[obj-query ClassName "SQL WHERE clause"]

Raw SQL query on vvl_objects. Use with caution.

obj-retract

[obj-retract $instance kbname?]

Remove all Prolog facts for an instance from a KB. Without kbname, uses the default KB. Returns retracted count.

obj-save

[obj-save $instance] or [$instance.save]

Save instance to SQLite. Generates UUID, indexes scalar fields, stores :ref links in vvl_relations.

Operational planning

planning:add-constraint

[planning:add-constraint $schema $planning_id $kind <{params}>?]

create + commit a new Constraint (kind, params), add to C, return the constraint id.

planning:add-resource

[planning:add-resource $schema $planning_id $resource_id]

add to R.

planning:add-task

[planning:add-task $schema $planning_id $task_id]

add the task to T (idempotent), bump version, normalize.

planning:assign

[planning:assign $schema $planning_id $task_id $resource_ids $start_ts $end_ts]

create + commit a new Assignment, add its id to A, return the assignment id.

planning:code

[planning:code NAME [horizon L H] body...]

returns the [optimize:problem ...] VVL code that [planning:problem ...] would generate, without registering. Inspector for the DSL desugarer.

planning:compile

[planning:compile $schema $mission_id $h_start_ts $h_end_ts]

Phase 2 bridge: read Mission/Task/Resource/Reservation from the ontology KB, compute eligibility from requirements_json + skill_ids, generate the [planning:problem ...] DSL source and register it. Returns the problem name 'PB_<mission_id>'.

planning:compile-code

[planning:compile-code $schema $mission_id $h_start_ts $h_end_ts]

returns the [planning:problem ...] DSL source generated from the ontology, without registering. Inspector for the Phase 2 bridge.

planning:compose

[planning:compose $schema $p1 $p2 [as $new_id]?]

union component-wise + normalize. Returns the new Planning id.

planning:diff

[planning:diff $schema $p1 $p2]

<{from, to, added: {comp:[...]}, removed: {comp:[...]}, modified}>.

planning:equivalent

[planning:equivalent $schema $p1 $p2]

1 if p1 ≡ p2 under normal form, 0 otherwise.

planning:from-mission

[planning:from-mission $schema $mission_id $h_start_ts $h_end_ts [as $id]?]

populate T (Task instances of the mission), R (active Resources), F (confirmed Reservations) from the KB.

planning:includes

[planning:includes $schema $p1 $p2]

1 if p2 ⊑ p1 (component-wise subset), 0 otherwise.

planning:install-algebra-classes

[planning:install-algebra-classes $schema]

add `Planning` and `Constraint` ontology classes to the schema (idempotent). Required before any [planning:new] / [planning:compose] / etc.

planning:meet

[planning:meet $schema $p1 $p2 [as $new_id]?]

p1 ⊓ p2 (non-empty meet => overlap).

planning:new

[planning:new $schema $id $mission_id $h_start_ts $h_end_ts]

commit an empty Planning instance (T=R=A=C=F=∅). Returns its id.

planning:normalize

[planning:normalize $schema $p_id]

apply PDF § 7.4 simplification rules in place: drop orphan assignments, merge duplicate constraints, cancel + drop expired reservations, drop precedence(t,t') with t ∉ T.

planning:problem

[planning:problem NAME [horizon L H] body...]

Phase 1 planning DSL. Body forms: [task ID [duration N] [window L H]?], [resource ID [kind K]? [capacity N]?], [fixed-reservation R L H], [precedence T1 T2], [on-resource-group T ROLE [resources R1 R2 ...]], [no-overlap-resource R], [objective minimize-makespan]. Desugars to [optimize:problem ...] and registers the problem. Capacities > 1 are not supported in V0.

planning:reify-assignments

[planning:reify-assignments $schema $problem_name]

after [planning:solve], read the solver's last solution and create Assignment instances in the KB (committed). Returns a VVL_Json list of {task_id, resource_ids, start_ts, end_ts} dicts.

planning:remove-constraint

[planning:remove-constraint $schema $planning_id $constraint_id]

retract the Constraint instance and remove from C.

planning:remove-resource

[planning:remove-resource $schema $planning_id $resource_id]

remove from R and cascade-retract every Assignment using this resource (Assignments backed by a confirmed/running Reservation in F are protected).

planning:remove-task

[planning:remove-task $schema $planning_id $task_id]

remove from T and cascade-retract every Assignment whose task_id matches.

planning:seed

[planning:seed $schema "ClassName" <{key: val, ...}>]

create and commit an ontology instance from a JSON-style dict. Bypasses [new ClassName] (which only knows OO classes, not ontology classes). List-typed planning fields (skill_ids, requirements_json, depends_on_task_ids, …) are JSON-encoded automatically. Returns the prolog id of the committed instance.

planning:snapshot

[planning:snapshot $schema $p_id [as $new_id]?]

deep-copy with version+1, parent_id chained, snapshot_ts=now.

planning:solve

[planning:solve NAME [time_limit secs]?]

solve a problem registered via [planning:problem ...]. Returns a VVL_Json with the decision values plus __status__ / __objective__. Same backend as [optimize:solve].

planning:subtract

[planning:subtract $schema $p1 $p2 [as $new_id]?]

p1 \ p2 component-wise (non-commutative).

planning:unassign

[planning:unassign $schema $planning_id $task_id]

retract every Assignment whose task_id matches and remove from A.

planning:validate

[planning:validate NAME]

structural diagnostic of a problem registered via [planning:problem ...]. Same diagnostic surface as [optimize:validate]; useful when the planning desugarer succeeded but the underlying CP-SAT model has soft issues.

Plugins

plugin-info

[plugin-info name]

Manifest + signer + digest + status.

plugin-inspect

[plugin-inspect "x.vvlplugin"]

Verifies format, digest, signature, and policy without installing.

plugin-install

[plugin-install "x.vvlplugin"]

Verifies signature & policy, writes the .py file, creates the record.

plugin-load

[plugin-load "name" as kw (mode "inproc")?]

Re-verifies the digest against the record then binds ctx.plugins[kw].

plugin-remove

[plugin-remove "name"]

Unbind + delete file(s) + record. Idempotent.

plugin-trust-add

[plugin-trust-add id "<PEM>" tier]

Add a trusted Ed25519 public key (tier: standard|high). Admin.

plugin-trust-export

[plugin-trust-export id "out.pub"]

Rewrites the PEM into plugins/_inbox. Admin.

plugin-trust-get

[plugin-trust-get id]

Key detail + PEM. Admin.

plugin-trust-import

[plugin-trust-import "author.pub" id tier]

Import a .pub key from plugins/_inbox. Admin.

plugin-trust-list

[plugin-trust-list]

JSON list of trusted keys (without raw PEM). Admin.

plugin-trust-remove

[plugin-trust-remove id]

Revoke/delete a key. Admin.

plugin-trust-update

[plugin-trust-update id tier]

Change the tier of a key. Admin.

plugin-unload

[plugin-unload kw]

Remove the session binding.

plugin-workspace-trust

[plugin-workspace-trust [name] 0|1]

Enable/disable plugins_trusted (inproc mode gate). Admin.

plugins-list

[plugins-list]

Installed + loaded plugins (status).

Plugins (secrets)

plugin-audit

[plugin-audit n?]

Latest plugin runtime events. Admin.

plugin-login

[plugin-login plugin profile json]

Store a dedicated authentication profile for a plugin. Admin.

plugin-login-list

[plugin-login-list plugin]

List the authentication profiles of a plugin. Admin.

plugin-logout

[plugin-logout plugin profile]

Delete a plugin authentication profile. Admin.

plugin-secret-get

[plugin-secret-get plugin key]

Read a plugin secret. Admin.

plugin-secret-list

[plugin-secret-list plugin]

List the names of stored secrets. Admin.

plugin-secret-remove

[plugin-secret-remove plugin key]

Delete a plugin secret. Admin.

plugin-secret-set

[plugin-secret-set plugin key value]

Store an encrypted secret for a plugin. Admin.

Relational programming (miniKanren)

=/=

[=/=]

[=/=] -> alias of [distinct]: miniKanren goal/term (valid inside [run]).

==

[==]

[==] -> alias of [unify]: miniKanren goal/term (valid inside [run]).

absent

[absent]

miniKanren goal/term (valid inside [run]).

all

[all]

miniKanren goal/term (valid inside [run]).

any

[any]

miniKanren goal/term (valid inside [run]).

any-weighted

[any-weighted]

miniKanren goal/term (valid inside [run]).

bind-csv

[bind-csv Classe $csv ["pk"]]

generates the class WITH its fields derived from the CSV SCHEMA (columns + inferred types) and binds it to the CSV as its source.

commit

[commit]

miniKanren goal/term (valid inside [run]).

commit-once

[commit-once]

miniKanren goal/term (valid inside [run]).

conda

[conda]

[conda] -> alias of [commit]: miniKanren goal/term (valid inside [run]).

conde

[conde]

[conde] -> alias of [any]: miniKanren goal/term (valid inside [run]).

condu

[condu]

[condu] -> alias of [commit-once]: miniKanren goal/term (valid inside [run]).

conj

[conj]

[conj] -> alias of [all]: miniKanren goal/term (valid inside [run]).

cons

[cons]

miniKanren goal/term (valid inside [run]).

constrain

[constrain]

miniKanren goal/term (valid inside [run]).

defrel

[predicate nom [params] goal…]

defines a logic relation.

disj

[disj]

[disj] -> alias of [any]: miniKanren goal/term (valid inside [run]).

distinct

[distinct]

miniKanren goal/term (valid inside [run]).

exists

[exists]

miniKanren goal/term (valid inside [run]).

fact

[fact]

miniKanren goal/term (valid inside [run]).

fail

[fail]

miniKanren goal/term (valid inside [run]).

fresh

[fresh]

[fresh] -> alias of [exists]: miniKanren goal/term (valid inside [run]).

kb-goal

[kb-goal]

[kb-goal] -> alias of [fact]: miniKanren goal/term (valid inside [run]).

match-obj

[match-obj]

[match-obj] -> alias of [obj-match]: miniKanren goal/term (valid inside [run]).

obj-match

[obj-match]

miniKanren goal/term (valid inside [run]).

once

[once]

miniKanren goal/term (valid inside [run]).

predicate

[predicate nom [params] goal…]

defines a logic relation.

prob

[prob [vars] goal…]

MARGINAL probability = sum of the weights of every solution.

probability

[prob [vars] goal…]

MARGINAL probability = sum of the weights of every solution.

run

[run N [vars] goal…]

LIST of at most N solutions.

run*

[run-all [vars] goal…]

LIST of ALL solutions (alias of [run-all]).

run-all

[run-all [vars] goal…]

LIST of ALL solutions (materialised; diverges if the relation is infinite — see [run-stream]).

run-stream

[run-stream [vars] goal…]

Lazy STREAM of solutions, consumable with [take].

run-weighted

[run-weighted [vars] goal…]

LIST of [solution probability] — each world with its probability.

s#

[s#]

[s#] -> alias of [succeed]: miniKanren goal/term (valid inside [run]).

succeed

[succeed]

miniKanren goal/term (valid inside [run]).

u#

[u#]

[u#] -> alias of [fail]: miniKanren goal/term (valid inside [run]).

unify

[unify]

miniKanren goal/term (valid inside [run]).

val

[val]

miniKanren goal/term (valid inside [run]).

without

[without]

[without] -> alias of [absent]: miniKanren goal/term (valid inside [run]).

≡

[≡]

[≡] -> alias of [unify]: miniKanren goal/term (valid inside [run]).

Prolog

facts

[facts name "fact"...]

Add facts to KB.

kb

[kb set|reset|default|dump|delete|list|save|load name?]

Manage Knowledge Bases.

prologExists

[prologExists name query]

1 if at least one solution exists, else 0.

prologFirstValue

[prologFirstValue name query var default]

First binding of var, or default.

prologSolutions

[prologSolutions name query]

List of solutions (each solution = list of [var,value] pairs).

prologValues

[prologValues name query var]

List of values bound to var across solutions.

query

[query JSON|VVL name query...]

Run queries against the KB. Returns JSON or VVL list.

rules

[rules name "rule"...]

Add rules to KB.

RAG

genius

[genius "question" mode?]

Ask VVL documentation via RAG. mode: "hybrid" (default) or "naive". Requires :genius-learn first.

ragAsk

[ragAsk kb question mode?]

Semantic search. Modes: hybrid|naive|local|global (default: hybrid).

ragAskAdvanced

[ragAskAdvanced kb question top_k? mode?]

Advanced search with fine-grained control.

ragAskSimple

[ragAskSimple kb question top_k?]

Simple search without LLM (top_k=5).

ragCacheClear

[ragCacheClear]

Clears the entire in-memory RAG cache.

ragCacheInfo

[ragCacheInfo]

Cache info (loaded instances, memory).

ragClear

[ragClear kb]

Clears all content (without destroying the base).

ragClose

[ragClose kb]

Closes the KB (frees memory cache). [ragClose] with no argument closes all.

ragDelete

[ragDelete kb]

Deletes a KB (irreversible).

ragDocContent

[ragDocContent kb docId]

Retrieves the content of a document.

ragDocs

[ragDocs kb]

Lists all documents (id, status, size).

ragExtractJson

[ragExtractJson kb question schema?]

Structured extraction in JSON.

ragInfo

[ragInfo kb]

Info about a KB (size, files, cache state).

ragInsert

[ragInsert kb text]

Inserts text (returns 'OK').

ragInsertBatch

[ragInsertBatch kb texts]

Inserts multiple texts (list). Faster than multiple calls.

ragInsertId

[ragInsertId kb text]

Inserts and returns the ID (RECOMMENDED).

ragList

[ragList]

Lists the RAG KBs available in the current context.

ragRemove

[ragRemove kb text]

Removes by content (requires EXACT text, prefer ragRemoveById).

ragRemoveById

[ragRemoveById kb docId]

Removes by ID (RECOMMENDED).

ragRemoveEntity

[ragRemoveEntity kb entity]

Removes an entity from the graph.

ragRemoveRelation

[ragRemoveRelation kb src tgt]

Removes a relation between 2 entities.

ragSearchContext

[ragSearchContext kb query mode?]

Retrieves only the context (without generation).

ragSearchDocs

[ragSearchDocs kb query]

Keyword search in documents (without LLM).

ragUpdate

[ragUpdate kb text]

Updates a text (delete+insert).

ragUpdateById

[ragUpdateById kb docId text]

Updates by ID.

Ledger & smart contracts

ed25519:keygen

[ed25519:keygen]

{private, public}: a new Ed25519 key pair, base64 (private = 32-byte seed). Not deterministic: refused in a ledger contract.

ed25519:public

[ed25519:public private-key]

the base64 public key of a private key.

ed25519:sign

[ed25519:sign private-key "message"]

base64 signature (deterministic). For a [signed] contract clause, sign "<ledger>|<keyword>|<message>".

ed25519:verify

[ed25519:verify public-key "message" signature]

1 if the signature is valid, else 0.

ledger:anchor

[ledger:anchor name :to "rfc3161"|"opentimestamps" :url "…"?]

anchor the head of the ledger at an external witness (time-stamping authority, FreeTSA by default; Bitcoin through OpenTimestamps).

ledger:anchor-policy

[ledger:anchor-policy name :to ["rfc3161" "opentimestamps"] :every seconds? :blocks n? | :off]

declare in the chain (signed config block) how often the ledger is anchored; the server scheduler does it.

ledger:anchor-status

[ledger:anchor-status name]

anchoring policy, last anchor per witness, blocks not anchored yet, lateness.

ledger:anchor-tick

[ledger:anchor-tick]

run one pass of the anchoring scheduler now; returns what was anchored.

ledger:anchor-upgrade

[ledger:anchor-upgrade name]

fetch the Bitcoin attestation of the pending OpenTimestamps anchors.

ledger:anchors

[ledger:anchors name]

the anchors of the ledger (provider, height, status, date).

ledger:await-final

[ledger:await-final name height? :timeout seconds]

wait until the block (default: the head) is final; `final` is false if the timeout (default 30 s) expires first.

ledger:block

[ledger:block name height]

a block as JSON.

ledger:check-anchors

[ledger:check-anchors name :offline? :trust "sha256:…"?]

check every anchor against the ledger (rewritten history) and its witness (TSA signature + pinned root, Bitcoin block header, witness key).

ledger:check-checkpoint

[ledger:check-checkpoint checkpoint :key "sha256:…"?]

witness side: signature, key, and consistency with the ledger (detects a rewritten history).

ledger:check-proof

[ledger:check-proof proof :key "sha256:…"?]

check a [ledger:proof]: path to the state root, block hash, signature, key fingerprint.

ledger:checkpoint

[ledger:checkpoint name]

a checkpoint of the head signed by the ledger key, for the witness applications.

ledger:create

[ledger:create name :signer "key"? :frozen?]

create a ledger (signed genesis block) in the workspace.

ledger:destroy

[ledger:destroy $self]

in a method of a ledger class: the object is removed from the ledger when the method returns.

ledger:drop

[ledger:drop name]

delete a ledger entirely (blocks, state, code). Irreversible; journaled in contract.log.

ledger:exists

[ledger:exists name]

1 if the ledger exists in the workspace.

ledger:finality

[ledger:finality name height?]

quorum, final height, pending blocks, attested height per replica; with a height: whether that block is final.

ledger:finality-policy

[ledger:finality-policy name :quorum k :replicas {"node": "public key" …} | :off]

declare in the chain (signed config block) the replicas the ledger relies on: a block is final once k of them attested it.

ledger:follow

[ledger:follow name :key "sha256:…"? :adopt?]

on a cluster worker node: follow the ledger of the cluster master. The copy is read-only; every block is re-executed before it is applied. :adopt turns a ledger written here (a former primary) into a replica.

ledger:get

[ledger:get name "slot"]

committed value of a slot ("" if absent).

ledger:has-object

[ledger:has-object Class key…]

1 if the object exists in its ledger, else 0.

ledger:history

[ledger:history name :from h? :limit n? :slot "s"?]

block summaries (calls, writes, hash).

ledger:info

[ledger:info name]

height, head hash, configuration, deployed keyword versions.

ledger:init

[ledger:init name [["slot" value] …]]

initial state (an init block), only before the first transaction.

ledger:invariant

[ledger:invariant name inv-name "expr"]

add a ledger invariant over slot families (sum(p*), count(p*), min(p*), max(p*), old(...)), checked at every transaction; a signed config block.

ledger:invariant-drop

[ledger:invariant-drop name inv-name]

remove a ledger invariant (a signed config block).

ledger:invariants

[ledger:invariants name]

the ledger invariants {name: expression}.

ledger:list

[ledger:list]

the ledgers of the workspace.

ledger:now

[ledger:now]

time of the current block (in a ledger keyword).

ledger:object

[ledger:object Class key…]

the object of a ledger class as the ledger knows it (a snapshot; in a transaction: as the transaction sees it).

ledger:objects

[ledger:objects Class]

the keys of the objects of a ledger class.

ledger:promote

[ledger:promote name]

on a replica named in the finality policy: take the ledger over when the primary is lost (a takeover block signed with the replica's registered key). Irreversible.

ledger:proof

[ledger:proof name "slot"]

Merkle proof of the slot value (or absence) in the signed state of the head block; checkable without the server.

ledger:random

[ledger:random n]

integer in [0, n), deterministic (seeded by the previous block hash).

ledger:replica-key

[ledger:replica-key]

replica node: the Ed25519 public key (base64) it signs its attestations with; to register in the finality policy of the primary.

ledger:replica-status

[ledger:replica-status name?]

replica node: height, lag behind the primary, status (new | ok | error | diverged | detached) and the reason of a divergence.

ledger:replicas

[ledger:replicas name]

primary: the replicas that re-executed the ledger and signed its head (replica, height, lag).

ledger:state

[ledger:state name "prefix"?]

committed state as JSON.

ledger:sync

[ledger:sync name?]

replica node: pull, re-execute and apply the new blocks of the primary now.

ledger:time

[ledger:time]

time of the current block in whole seconds since the epoch (in a ledger keyword; deterministic).

ledger:tx

[ledger:tx name :tx-id "id"? [expr …]]

run the expressions (ledger keyword calls) in ONE transaction: all or nothing, one block. A known :tx-id is not replayed.

ledger:unfollow

[ledger:unfollow name]

replica node: stop following the primary; the copy stays, read-only.

ledger:verify

[ledger:verify name :chain-only?]

check hashes, signatures and replay every transaction; {ok, error, …}.

ledger:witness

[ledger:witness name checkpoint witness-name public-key signature]

record the countersignature of a checkpoint by a witness application as an anchor.

oracle

[oracle "label" expression]

in a ledger keyword: evaluate a non-deterministic expression (LLM, Jev, REST, random) once, record its answer in the block, read it back on replay.

state:del

[state:del alias]

delete a declared state slot.

state:get

[state:get alias]

value of a declared state slot in the current transaction.

state:has

[state:has alias]

1 if the declared slot exists.

state:put

[state:put alias value]

write a declared state slot (committed with the transaction).

Concept reification

concept:approx

[concept:approx $concept "field"]

Wrap a concept field as a VVL_Approximation carrying its recorded provenance (LLM/fact/user). Propagates confidence through (+ - * /). LLM-discovered field -> "moderate"; user-set field -> "exact".

concept:method

[concept:method $concept "name" [lambda [$params] body]]

Define a user method on a concept (overrides LLM-generated).

concept:reset

[concept:reset] or [concept:reset "Name"]

Clear concept cache (all or specific).

concepts

[concepts "/path"] or [concepts "/path" as "prefix_"]

Load concepts persisted by VAILS Agents under kb/neuro/, expose each as $<prefix><slug>. Idempotent: re-runs report {status, loaded, updated, unchanged, skipped} based on the DB updated_at of each concept.

concepts:available

[concepts:available]

Returns every storage index under kb/neuro/ (loaded or not). Each entry has a "loaded" flag.

concepts:info

[concepts:info]

Session summary. [concepts:info "/path"] -> Full index of a storage (+ session block if currently loaded).

concepts:list

[concepts:list]

Returns the paths loaded in the current session via [concepts "/..."] (path, mode, prefix, variables, count, last_loaded_at).

NL→VVL resolution

resolve

[resolve "question NL"] or [§§ "question"]

Neuro-symbolic resolver. Classifies a natural-language sub-question and dispatches to the right specialist (calculation, optimization, relational/Prolog query, rule induction, factual retrieval, structured extraction, expert system). Use inside [agent] when a sub-task needs a formula, solver, extraction, facts, or auditable Approximation instead of hand-rolled code.

resolve:classify

[resolve:classify "question NL"]

{family, sub_kind, confidence, reasoning} - Pure classifier, no dispatch.

resolve:trace

[resolve:trace "question NL"]

{classification, events[], result} - Same as resolve but returns structured trace JSON.

resolveV

[resolveV "question NL"] or [§§? "question"]

Same as resolve but logs routing and generated VVL code; use for debugging. Alias: [§§? "question"].

Ontology system

ontology:abstract

[ontology:abstract concept]

Mark a concept as abstract (cannot be instantiated directly).

ontology:ask

[ontology:ask query]

Raw Prolog query.

ontology:askMagic

[ontology:askMagic question]

Free-form natural-language query against the ontology with LLM-assisted resolution.

ontology:clear-rules

[ontology:clear-rules $schema]

No detailed help for ontology:clear-rules

ontology:clearInstances

[ontology:clearInstances concept?]

Remove all instances of a concept (or all instances if no concept given).

ontology:commit

[ontology:commit instance]

Write instance to Knowledge Base.

ontology:comprehend

[ontology:comprehend text]

LLM-driven extraction of concepts/relations from natural-language text.

ontology:concept-add

[ontology:concept-add name attrs?]

Add a new concept to the active ontology.

ontology:consistent

[ontology:consistent $schema]

No detailed help for ontology:consistent

ontology:context

[ontology:context name?]

Switch to or return the current ontology context.

ontology:debugLog

[ontology:debugLog on|off]

Toggle verbose ontology debug logging.

ontology:define

[ontology:define name definitions...]

Define classes and relations.

ontology:entails

[ontology:entails $schema "goal"]

No detailed help for ontology:entails

ontology:export

[ontology:export path format?]

Export the active ontology to disk (JSON/TTL/Gherkin).

ontology:fromImage

[ontology:fromImage image]

Build/extend the ontology from an image via vision LLM.

ontology:fromText

[ontology:fromText onto class text debug?]

AI extraction.

ontology:identify

[ontology:identify entity]

Identify the closest concept matching the given entity description.

ontology:in-world

[ontology:in-world world body]

Evaluate body in a specific possible-world context (Zalta).

ontology:infer

[ontology:infer query]

Run a single inference step on the ontology.

ontology:infer-fixpoint

[ontology:infer-fixpoint]

Run inference repeatedly until reaching a fixed point.

ontology:json

[ontology:json]

Serialize the active ontology to JSON.

ontology:learn

[ontology:learn examples]

Learn new rules/concepts from labelled examples.

ontology:listStores

[ontology:listStores]

List all named ontology stores currently loaded.

ontology:load

[ontology:load path]

Load an ontology from disk (replaces the active store).

ontology:loadGherkin

[ontology:loadGherkin path]

Load an ontology from Gherkin (.feature) syntax.

ontology:loadNamed

[ontology:loadNamed name path]

Load an ontology under a named slot (multi-store).

ontology:merge

[ontology:merge source target]

Merge concepts/instances from source store into target.

ontology:printKB

[ontology:printKB]

Dump all Prolog facts to console.

ontology:reset

[ontology:reset]

Clear all facts.

ontology:retract-rule

[ontology:retract-rule "Name" $schema]

No detailed help for ontology:retract-rule

ontology:rule

[ontology:rule name body]

Define an inference rule.

ontology:satisfies

[ontology:satisfies instance concept]

Check whether an instance satisfies a concept's predicates.

ontology:save

[ontology:save path?]

Save the active ontology to disk (default path = current store path).

ontology:saveAs

[ontology:saveAs name path]

Save a named ontology store to a specific path.

ontology:select

[ontology:select query]

Select instances matching a structural query.

ontology:set

[ontology:set instance attr value]

Set an attribute on an ontology instance.

ontology:storePath

[ontology:storePath name?]

Get/set the on-disk path for a named ontology store.

ontology:toVVL

[ontology:toVVL]

Serialize the active ontology back to VVL source code.

ontology:world

[ontology:world name]

Switch to a possible world (Zalta-style modal logic).

Built-in tests

test:assert

[test:assert condition message?]

Assert that condition is truthy. Returns JSON {ok, name, detail?}. Also appends the result to the current context test log used by [test:summary].

test:equals

[test:equals expected actual message?]

Assert structural equality. VVL numbers, strings, lists and JSON are compared by plain value. Returns JSON {ok, name, detail?} and records the result for [test:summary].

test:suite

[test:suite name body...]

Run test expressions and return a summary. RAW builtin. The suite body is evaluated in order in the current context. Use [test:assert] and [test:equals] inside the body.

test:summary

[test:summary]

Return JSON summary for the current context. Result fields: total, passed, failed, ok, results.

Batch processing

BATCH

[BATCH "name" "template"]

Create a batch for RAG-formatted data with {placeholders}.

batch-add

[batch-add $batch record]

Add a record to the batch. Alternative: [$batch.add record]

batch-data

[batch-data $batch]

Get formatted strings list. Alternative: $batch.data

batch-erase

[batch-erase $batch]

Clear all records from the batch. Alternative: [$batch.erase]

Types & Math

BINARY

[BINARY s]

Typed binary value encoded as base64. mold/load form: <BINARY:base64>.

BOOL

[BOOL x]

Convert to boolean (1/0).

DATE

[DATE s]

Validate YYYY-MM-DD and return a typed DATE value. mold/load form: <DATE:YYYY-MM-DD>.

DATETIME

[DATETIME s]

Validate ISO 8601 and return a typed DATETIME value. mold/load form: <DATETIME:...>.

DURATION

[DURATION s]

Validate ISO 8601 duration (PT30M) or seconds. mold/load form: <DURATION:PT30M>.

EMAIL

[EMAIL s]

Validate and return a typed EMAIL value. mold/load form: <EMAIL:value>.

FILE

[FILE s]

Typed file path value. Backslashes normalize to /. mold/load form: <FILE:...>.

FLOAT

[FLOAT x]

Convert/Extract float from string/number.

INT

[INT x]

Convert/Extract integer from string/number.

MONEY

[MONEY currency amount]

Typed money value. mold/load form: <MONEY:EUR 1200>.

PATH

[PATH s]

Typed portable path value. Backslashes normalize to /. mold/load form: <PATH:...>.

STRING

[STRING x]

Convert to string.

TAG

[TAG s]

Typed symbolic tag value. Allowed chars: letters, digits, _, ., :, -. mold/load form: <TAG:name>.

TIME

[TIME s]

Validate HH:MM[:SS] and return a typed TIME value. mold/load form: <TIME:HH:MM:SS>.

URL

[URL s]

Validate and return a typed URL value. mold/load form: <URL:https://...>.

UUID

[UUID s]

Validate and return a typed UUID value. mold/load form: <UUID:...>.

abs

[abs x]

Absolute value of x.

average

[avg list]

Arithmetic mean of the numeric elements.

avg

[avg list]

Arithmetic mean of the numeric elements.

ceil

[ceil x]

Smallest integer >= x.

convert

[convert type val]

Cast to 'string','int','float','bool','date','json','xml','list'.

count

[count list]

Number of elements (ergonomic alias of [length]).

floor

[floor x]

Largest integer <= x.

max

[max list]

Largest element by numeric key.

mean

[avg list]

Arithmetic mean of the numeric elements.

min

[min list]

Smallest element by numeric key.

pow

[pow base exp]

base raised to the power exp.

range

[range start stop step]

List of integers (step != 0).

reverse

[reverse list]

Reverse list order.

round

[round x [ndigits=0]]

x rounded to ndigits decimal places.

sort

[sort list "desc"?|key_lambda?]

Natural sort, optional desc/key.

sqrt

[sqrt x]

Square root of x.

sum

[sum list]

Sum of the numeric elements. Composes with [run-all].

UI & dialogs

_switch

[_switch x]

Evaluate first arg if present, else empty string. Internal flow helper.

alert

[alert msg]

Show alert dialog (60s timeout).

alertOC

[alertOC msg]

Show OK/CANCEL alert.

alertYN

[alertYN msg]

Show YES/NO alert.

cancelableDialog

[cancelableDialog msg fields...]

Dialog with Cancel option.

code

[code lang instruction init]

Request code from user.

dialog

[dialog msg fields...]

Complex form dialog.

input

[input title default?]

Interactive input field in REPL terminal. Use [inputs] for multi-field forms.

inputs

[inputs title1 title2 ...]

Multi-field form in REPL with nice table display (guaranteed order).

markdown

[markdown text]

Render markdown in client.

prompt

[prompt msg]

Ask user for text input.

question

[question msg type]

Chat bubble question.

response

[response value]

Capture the value as the task's response (ctx.task_response).

task-param

[task-param key?]

Get task parameter by key, or all params (JSON) if no key.

VDOM

hypervisor

[hypervisor action ...]

Manage Docker infrastructure via Portainer API. Connection: connect, connect-saved, save, disconnect, list, use System: status, info, resources Containers: containers, container, start, stop, restart, logs, exec Stacks: stacks, stack, stack-file, stack-env, stack-deploy, stack-update, stack-start, stack-stop, stack-remove Images: images, pull, image-remove Volumes: volumes, volume, networks, network Templates: templates, template, template-create, template-update, template-remove ProSuite: ps-deploy, ps-update, ps-health, ps-instances, ps-scale

vdomAdmin

[vdomAdmin url login password]

VDOM administration client. Returns a callable object to manage the VDOM server. Commands: info, apps, app, types, objects, libs, actions, export, dump, sql, exec, raw, plugins... Plugin Manager (via [$admin "plugins" $app $api_obj macros_db_id]): list, plugin, macros, macro, setMacro, createMacro, deleteMacro, reloadMacro, reloadEngine, timers, createTimer, updateTimer, deleteTimer, events, createEvent, deleteEvent, kv, kvGet, kvSet, kvDelete, resources, downloadResource, uploadResource, deleteResource, renameResource, databases, downloadDb, uploadDb, deleteDb, queryDb, call, webhook, dump, push

vdomCall

[vdomCall app funcName params?]

Call an API function on a VDOM application. Returns JSON or String.

vdomConnect

[vdomConnect url login password]

SOAP connection to a VDOM server. Returns a Connection object.

vdomGetApp

[vdomGetApp connection appName]

Retrieve a VDOM application by name. Returns an App object.

VM & compilation

compile

[compile expr|file]

Compile VVL to the Rust VM subset. Returns a compiled program with .run, .ir, .bytecode, .coverage.

vm-coverage

[vm-coverage]

JSON summary of native/host/expand/unsupported VM coverage.

vm-csv-writeback

[vm-csv-writeback $csv table-or-plan]

Apply a VM-owned CSV table/writeback plan to a Python CSV object and persist it.

vm-inventory

[vm-inventory]

JSON runtime inventory for Rust VM coverage planning.

vm-inventory-export

[vm-inventory-export path?]

Write VM inventory JSON and coverage Markdown.

vm-oo-store-writeback

[vm-oo-store-writeback plan]

Apply a VM-owned OO store writeback plan to the Python object store.

Embedded VScript

use

[use $lib1 $lib2 ...]

Library marker for [vscript "code" [use ...]]. Each $lib is a [vscript "..."] reference.

vscript

[vscript "code"]

Compile VScript code and return a callable reference. Then [$ref a b ...] executes it (0-based args via args(0)/UBound(args)/argc; `result` variable holds the return value). Libraries: [vscript "code" [use $lib1 $lib2]] injects definitions (Function/Sub/Class/Const) from each $lib (itself a [vscript ...]).

Voice

voice

[voice support]

Check if voice is supported [voice config "name" "client" [...options]] - Create a voice configuration [voice start "config" "instructions" "project"] - Start a voice session [voice stop $session] - Stop a voice session [voice decode type $event] - Decode an event (transcript, tools, audio) [voice list] - List active sessions [voice get "session_id"] - Get a session by ID

WebDriver

attr

[attr el name]

Get attribute.

click

[click el]

Click element.

find

[find driver ['css'|'xpath' sel]]

Find element.

go

[go driver url]

Navigate.

jsExec

[jsExec driver script args...]

Execute JavaScript in browser.

profile-info

[profile-info name]

Detailed JSON info for a profile: size, Preferences size, lock files, Chrome activity.

profile-list

[profile-list]

List all Chrome profiles (name, size_mb, prefs_mb, locked) as JSON strings.

profile-purge

[profile-purge name "force"]

Delete entire profile directory. Requires "force" as 2nd arg.

profile-repair

[profile-repair name ?mode]

Repair oversized (>10MB) Default/Preferences. mode="keep" (default) renames to .bak; mode="clean" deletes corrupted Preferences and all existing Preferences.bak.* files. Cookies/SSO preserved.

profile-unlock

[profile-unlock name]

Remove stale lock files if no Chrome process owns the profile. Returns count removed.

scrape

[scrape "url" "mode"?]

Light HTTP fetch (no browser). mode = "text" (default) or "html".

scrapeLinks

[scrapeLinks url]

Sorted, deduplicated list of absolute hrefs (excludes self/anchors/asset extensions).

screenshot

[screenshot driver path]

Save screen.

switchFrame

[switchFrame driver target]

Switch to iframe (element or 'default').

text

[text el]

Get element text.

type

[type el text clear?]

Type text.

wait

[wait driver 'ready'|['css' sel] ms]

Wait for condition.

webQuit

[webQuit driver]

Close browser.

webdriver

[webdriver browser ?profile ?flags ?"auto-correct"]

Launch Chrome (uc) or Edge with stealth + profile mgmt.

ProSuite ecosystem

proai

[proai "question" mode?]

Ask ProAI Builder documentation via RAG. mode: "hybrid" (default) or "naive". Requires :proai-learn first.

procontact

[procontact url user pass]

Client ProContact.

promail

[promail url user pass]

Client ProMail. Sub-commands: mailboxes, mails, send, fetch, archives.

proplanning

[proplanning url user pass]

Client ProPlanning.

prosearch

[prosearch url user pass]

Client ProSearch.

proshare

[proshare url user pass] or [proshare url user pass <{client: "pdv"}>] Connect to ProShare. Returns a client with commands: FILES: ls, upload, uploadFile, mkdir, delete STORAGE: storages, storage, docs, doc, view, metafields WORKFLOW: submit, submitMulti, lock, unlock PLUGINS: macro ADMIN: users, groups, rules, updateRules, logoff Navigation: [$ps "storage" "X"] -> [$storage "ContainerY"] -> [$container "DocStorageZ"] -> $ds.docs

revolut

[revolut action ...]

Revolut Merchant API. connect: [revolut connect api_key mode?] — mode: sandbox|live (default: live) order: [revolut order client amount currency description? metadata?] get: [revolut get client order_id] list: [revolut list client limit?] capture: [revolut capture client order_id amount?] refund: [revolut refund client order_id amount? reason?] cancel: [revolut cancel client order_id]