— приложения A · C · D —

Справочник встроенных

879 нативных функций · тематические семейства · сгенерировано из стабильного реестра сервера

Загрузка…

Администрирование и рабочее пространство

api-create

[api-create name]

Создать рабочее пространство и сгенерировать ключ API.

clear

[clear mode?]

Очистить контекст. Режимы: 'vars', 'macros', 'kb', 'all' (по умолчанию).

file-tree

[file-tree path?]

Получить дерево каталогов в формате JSON.

freespace

[freespace path?]

JSON {path,total,used,free,total_h,used_h,free_h,percent_used} для диска, на котором находится `path` (по умолчанию: текущий каталог).

log-clear

[log-clear file]

Очистить файл журнала.

log-list

[log-list]

Список доступных файлов журналов (имя, метка, размер, mtime).

log-tail

[log-tail file n]

Прочитать последние n строк журнала.

proadmin

[proadmin email pass]

Повысить привилегии.

proai-validator

[proai-validator JSON|fichier]

Статически проверяет файл .proai (путь или встроенный JSON). Возвращает отчёт в формате Markdown.

role-define

[role-define name cap1 cap2 …]

создать/обновить пользовательскую роль (ROOT). Caps из закрытого словаря.

role-delete

[role-delete name]

удалить пользовательскую роль (ROOT). Встроенные роли защищены.

role-list

[role-list]

JSON {роль: [caps]} для всех ролей (встроенных и пользовательских).

sys-info

[sys-info]

Получить системную информацию (потоки, платформа).

user-add

[user-add email pass nom prenom]

Создать пользователя.

user-delete

[user-delete email]

Удалить пользователя.

user-list

[user-list]

Список всех пользователей (администратор).

user-role

[user-role email]

текущая роль | [user-role email роль] назначает роль (ROOT).

user-update

[user-update email pass nom prenom]

Обновить пользователя.

webdriver-config

[webdriver-config]

Показать отпечаток машины + путь к профилям. [webdriver-config path] -> Задать путь к профилям для этой машины.

workspace

[workspace list|login|go ...]

Управление контекстом рабочего пространства.

workspace-set

[workspace-set email ws]

Предоставить доступ.

workspace-unset

[workspace-unset email ws]

Отозвать доступ.

Генетические алгоритмы

genetic:add-counter

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

$store. Изменяет и возвращает store (допускает цепочку вызовов).

genetic:best

[genetic:best $pop]

Особь с наибольшей скалярной приспособленностью.

genetic:counter-size

[genetic:counter-size $store]

Целое число сохранённых исправлений.

genetic:counter-store

[genetic:counter-store [schema?]]

Пустой CounterStore. Накапливает исправления пользователей; передать в [genetic:fit-with-counter] для включения в fitness spec.

genetic:evolve

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

Эволюционировавшая популяция. fitness-spec — словарь JSON {kind, dataset, label_field, ...}; opts-json поддерживает {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]]

Обогащённый JSON. Вставляет $store.examples + counter_weight в fitness spec для использования в [genetic:evolve]. Итоговая fitness = (1-w)*holdout + w*counter.

genetic:fitness

[genetic:fitness $individual]

Скалярная приспособленность (или список для многоцелевой задачи).

genetic:lineage

[genetic:lineage $individual]

JSON {generation, parents, mutation_op}.

genetic:pareto

[genetic:pareto $pop]

Список особей на недоминируемом фронте. Используется с многоцелевыми fitness specs (kind: multi_objective) для отображения границы компромисса между целями (например, точность vs. краткость vs. стоимость).

genetic:population

[genetic:population genome1 genome2 ...]

Популяция. Каждый аргумент — полный геном (обычно список словарей правил).

Аппроксимация

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

[async expression]

Выполнить асинхронно, возвращает Promise

await

[await promise] [await promise ms]

Ождать разрешения промиса

channel

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

Создать канал; без ёмкости канал небуферизован, при capacity>0 коммуникация буферизована

channel-delete

[channel-delete name]

Удалить именованный канал из реестра (1/0).

channel-exists

[channel-exists name]

Проверить существование именованного канала (1/0).

channel-list

[channel-list]

Список всех именованных каналов (по алфавиту).

getTimeout

[getTimeout]

Получить текущее значение таймаута в секундах

host-continuation-proxies

[host-continuation-proxies]

Осмотр дескрипторов VVL-прокси активных хостовых продолжений.

host-continuation-transfer

[host-continuation-transfer proxy_id|proxy]

Вернуть решение ВМ о передаче для прокси хостового продолжения.

host-continuation-vm-proxy

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

Построить дескриптор прокси продолжения, управляемого ВМ.

host-continuations

[host-continuations]

Осмотр активных хостовых продолжений Python от блокирующих ожиданий.

promise-all

[promise-all list ms?]

Ждать выполнения всех промисов (как Promise.all)

promise-race

[promise-race list ms?]

Вернуть первый разрешённый промис

promise-state

[promise-state promise]

Получить состояние промиса без блокировки

promise-value

[promise-value promise]

Получить значение если разрешён, иначе пусто

rwait

[rwait ms]

Ждать ms миллисекунд, возвращает сигнал

semaphore

[semaphore name? n?]

Создать или получить именованный/анонимный семафор с начальным счётчиком n (по умолчанию: 1)

semaphore-delete

[semaphore-delete name]

Удалить именованный семафор из реестра (возвращает 1/0)

semaphore-exists

[semaphore-exists name]

Проверить существование именованного семафора (возвращает 1/0)

semaphore-list

[semaphore-list]

Список всех именованных семафоров (в алфавитном порядке)

setTimeout

[setTimeout ms]

Настроить таймаут для блокирующих операций (0=бесконечно)

signal

[signal]

Вернуть сигнал успешного завершения

stop

[stop]

Чисто остановить текущую параллельную ветвь

task-async

[task-async queue graph params]

Поставить задачу в очередь и вернуть Promise

Атомы и политики

atom:axes

[atom:axes $x]

JSON-словарь осей метаданных (payload_kind, effect_kind, determinism, persistence, trust_level, provenance, cost_hint, latency_hint).

atom:capabilities

[atom:capabilities $x]

Список названий протоколов возможностей, которым удовлетворяет атом (Introspectable, Identifiable, Featurizable, LLMRepresentable, Persistable, Callable, Traceable, ...).

atom:family

[atom:family $x]

Строковое имя семейства (SymbolicAtom/GroundedAtom/ReifiedAtom) или пустая строка.

atom:trace

[atom:trace $x]

JSON {family, class, runtime_id, content_hash, axes, dump, ...} структурированная трассировка любого атома.

policy:check

[policy:check $policy $atom]

JSON {allowed, matched_rule, action, axis, op, values, reason}. Обходит правила по порядку; первое совпадение побеждает. По умолчанию отказ при отсутствии совпадения.

policy:define

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

Политика. Оси: family, payload_kind, effect_kind, determinism, persistence, trust_level, provenance, cost_hint, latency_hint, capabilities. Операторы: in (по умолчанию), ==, !=, >, <, >=, <=. Действие по умолчанию: deny.

Прочее

@

[@ "Name"]

Реифицирует концепт (бесплатно). [@ "Name" ClassName] -> Реификация с шаблоном класса. [@ "Name" "lazy"] -> Без начальной загрузки.

email

[email action ...]

Клиент электронной почты на уровне протокола (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] или [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]

Возвращает данные PNG в Base64.

getResourceBase64ZIP

[getResourceBase64ZIP $res]

Возвращает PNG, сжатый ZIP и закодированный в Base64.

pis

[pis url user pass]

Клиент PIS (Partner Information System). Методы: 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. Подключение VDOM + автоматическое развёртывание plugin_gateway при его отсутствии. Команды клиента: [$tk "sites"] -> список сайтов/плагинов [$tk "site" "ИмяСайта"] -> выбрать сайт Команды сайта: [$site "pages"] -> список HTML-страниц [$site "upload" "name" $html] -> загрузить страницу [$site "upload-file" "n" "path"] -> загрузить из файла [$site "upload-dir" "path/"] -> загрузить директорию [$site "download" "name"] -> скачать страницу [$site "delete" "name"] -> удалить ресурс [$site "routing"] -> текущий код маршрутизации [$site "set-routing" $code] -> заменить маршрутизацию [$site "add-route" "/url" "f"] -> добавить маршрут [$site "auto-routing"] -> сгенерировать авто-маршрутизацию [$site "inject" "seo" "p" $m] -> внедрить SEO [$site "inject" "cookie" "p"] -> внедрить GDPR cookies [$site "inject" "mobile-menu" "p"] -> мобильное меню [$site "fix-links" "p" $map] -> исправить ссылки [$site "deploy" "dir/" $opts] -> полное развёртывание [$site "macros"] -> список серверных макросов [$site "macro-code" "name"] -> код макроса [$site "set-macro" "n" $code] -> изменить макрос [$site "kv"] -> KV-хранилище [$site "kv-get" "key"] -> прочитать значение [$site "kv-set" "k" "v"] -> записать значение [$site "status"] -> полное резюме

Реляционные базы данных

db

[db action name args...]

Операции SQLite (open, query, exec, tables).

mssql

[mssql action alias ...]

Выполняет операцию SQL Server. Действия: connect/disconnect/list/exec/query/table/begin/commit/rollback/autocommit/tables/schema. См. vvl_mssql.

pg

[pg conn_string|action ...]

Выполняет операцию PostgreSQL. См. vvl_pg для синтаксиса подключения и запросов.

CSV

CSV

[CSV "filename.csv"]

Создаёт или загружает CSV-файл (расширение необязательно).

csv-add

[csv-add $csv record]

Добавляет запись в CSV.

csv-all

[csv-all $csv]

Возвращает все записи в виде списка.

csv-autosave

[csv-autosave $csv enabled]

Переключить автосохранение на каждую мутацию. false для массовых вставок, затем [csv-save].

csv-count

[csv-count $csv]

Возвращает количество записей.

csv-create-index

[csv-create-index $csv field]

Создаёт индекс по полю для ускорения поиска.

csv-delete

[csv-delete $csv key]

Удаляет запись по первичному ключу.

csv-erase

[csv-erase $csv]

Очищает все данные и схему.

csv-filter

[csv-filter $csv lambda]

Фильтрует записи с помощью функции-предиката.

csv-find

[csv-find $csv key]

Находит запись по первичному ключу.

csv-grid

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

Быстрый нативный N-мерный поиск: фильтрует каждую ось по поле>=значение, возвращает value_field строки на наименьшем пороге первой оси.

csv-key

[csv-key $csv fieldname]

Задаёт поле первичного ключа.

csv-orderby

[csv-orderby $csv fieldname]

Задаёт порядок сортировки и сортирует данные.

csv-reload

[csv-reload $csv]

Перезагружает данные с диска.

csv-save

[csv-save $csv]

Принудительно сохраняет данные на диск (по умолчанию сохранение автоматическое).

csv-setfield

[csv-setfield $csv name type]

Добавляет или изменяет поле в схеме.

csv-update

[csv-update $csv key updates]

Обновляет запись по первичному ключу.

csv-where

[csv-where $csv field op value]

Быстрая фильтрация без lambda. Операторы: =, !=, >, <, >=, <=, contains, startswith, endswith.

csv-where-indexed

[csv-where-indexed $csv field value]

Сверхбыстрый поиск по индексированному полю (O(1)).

Символьные вычисления

proof:auto

[proof:auto P]

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

proof:check

[proof:check GOAL TERME]

Проверяет терм доказательства (натуральная дедукция; листья 'auto' разряжаются оракулом).

proof:llm

[proof:llm GOAL max?]

LLM предлагает терм доказательства, ядро LCF проверяет и возвращает ошибку (вердикт, проверенный ядром, или честная неудача).

proof:repair

[proof:repair GOAL $proposer max?]

цикл ядра породить→проверить→починить (генератор = лямбда [feedback] -> исходник терма доказательства).

symbolic

[symbolic x | x y z | EXPR]

Объявляет один или несколько символов, или реифицирует выражение.

symbolic:assume

[symbolic:assume x "positive" …]

Символ с предположениями.

symbolic:det

[symbolic:det M]

Определитель.

symbolic:diff

[symbolic:diff e var n?]

Производная.

symbolic:dsolve

[symbolic:dsolve eq func]

Решает дифференциальное уравнение.

symbolic:eq

[symbolic:eq lhs rhs]

Уравнение.

symbolic:exact

[symbolic:exact EXPR question?]

Точное приближение (результат CAS).

symbolic:expand

[symbolic:expand e]

Развёрнутая форма.

symbolic:factor

[symbolic:factor e]

Факторизованная форма.

symbolic:fn

[symbolic:fn f x [y …]]

Неопределённая функция f(x,…).

symbolic:integrate

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

Первообразная/интеграл.

symbolic:inv

[symbolic:inv M]

Обратная матрица.

symbolic:lambda

[symbolic:lambda x [y …] body]

Символическая лямбда, применяемая через [$f arg].

symbolic:latex

[symbolic:latex e]

Строка LaTeX.

symbolic:limit

[symbolic:limit e var to]

Предел.

symbolic:matrix

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

Символическая матрица.

symbolic:numeric

[symbolic:numeric e digits?]

Численное вычисление.

symbolic:parse

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

Выражение.

symbolic:rational

[symbolic:rational p q]

Точное рациональное число.

symbolic:simplify

[symbolic:simplify e]

Упрощённая форма.

symbolic:solve

[symbolic:solve eq var?]

Решения eq=0.

symbolic:solve-linear

[symbolic:solve-linear A b]

Решение A·x=b.

symbolic:solveset

[symbolic:solveset eq var]

Множество решений.

symbolic:string

[symbolic:string e digits?]

Строка SymPy.

symbolic:subs

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

Подстановка(и).

symbolic:transpose

[symbolic:transpose M]

Транспонирование.

Каталог обобщённых

generic

[generic "question" "name"?]

Обобщает решение в каталог ключевых слов. Режим трассировки следует ctx.trace (REPL :t).

generic:code

[generic:code name]

Возвращает исходный VVL-код запомненного ключевого слова.

generic:contract

[generic:contract name]

Возвращает параметры и контракт вывода.

generic:evolve

[generic:evolve name]

Регенерирует запись generic из исходного вопроса, сохраняя имя.

generic:forget

[generic:forget name]

Удаляет запись generic из каталога и все связанные артефакты.

generic:info

[generic:info name]

Возвращает полную карточку функции generic.

generic:invoke

[generic:invoke "name" ...]

Внутренний вспомогательный элемент для выполнения ключевого слова, сгенерированного generic, с сохранением приближений.

generic:list

[generic:list status?]

Перечисляет функции generic в каталоге рабочего пространства.

generic:load

[generic:load name]

Загружает запомненное ключевое слово в текущий контекст.

generic:pseudocode

[generic:pseudocode name]

Регенерирует псевдокод Markdown из данных каталога.

generic:tests

[generic:tests name]

Возвращает запомненные тесты или случаи валидации.

generic:validate

[generic:validate name]

Выполняет запомненные тесты и обновляет оценку валидации.

Строки

contains

[contains collection item]

1 если список/строка содержит элемент.

endsWith

[endsWith string suffix]

1 если строка оканчивается суффиксом.

graphemes

[graphemes string]

Список кластеров графем Unicode (= String.graphemes/1).

instr

[instr needle haystack [start] [compare]]

Находит первое вхождение (нумерация с 1), возвращает позицию или 0.

instrall

[instrall needle haystack [compare]]

Находит все вхождения, возвращает список позиций (нумерация с 1).

instrrev

[instrrev needle haystack [start] [compare]]

Находит последнее вхождение (нумерация с 1), возвращает позицию или 0.

join

[join list separator]

Объединяет элементы списка разделителем (по умолчанию пустой).

lower

[lower s]

Нижний регистр (префиксный алиас метода .lower).

mid

[mid start length string]

Извлекает подстроку (нумерация с 1, длина=0 означает до конца).

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]

Подстановка по регулярному выражению.

sha256

[sha256 string]

SHA-256 хеш в нижнем регистре (hex) от UTF-8 байт строки.

split

[split sep string]

Список частей.

startsWith

[startsWith string prefix]

1 если строка начинается с префикса.

strToLowerCase

[strToLowerCase s]

Нижний регистр.

strToUpperCase

[strToUpperCase s]

Верхний регистр.

substring

[substring s start len?]

Подстрока; start с 1 (отрицательный — с конца), длина необязательна.

trim

[trim s]

Убрать пробелы по краям (префиксный алиас .trim).

upper

[upper s]

Верхний регистр (префиксный алиас метода .upper).

Кластер распределённых вычислений

cluster:audit

[cluster:audit filters?]

Упорядоченные JSON-события жизненного цикла заданий.

cluster:await

[cluster:await job timeout_seconds?]

Ожидает DONE, FAILED или CANCELED; тайм-аут не удаляет задание.

cluster:backup

[cluster:backup]

Согласованный горячий снимок; восстановление — офлайн-операция.

cluster:call

[cluster:call function_ref arg...]

Загружает зарегистрированную функцию по её sha256, проверяет арность и выполняет локально в ВМ.

cluster:cancel

[cluster:cancel job]

Отменяет задание и его ожидающие или арендованные шарды.

cluster:drain

[cluster:drain worker_id enabled?]

На master по умолчанию включает drain (без новых аренд) или возвращает воркер в работу.

cluster:gc

[cluster:gc min_age_seconds?]

Удаляет только объекты хранилища без ссылок, старше заданного возраста.

cluster:jobs

[cluster:jobs filters?]

Список записей прогресса заданий, от новых к старым.

cluster:map

[cluster:map function_ref items options?]

Отправляет непустой список в виде персистентных шардов и возвращает дескриптор задания.

cluster:metrics

[cluster:metrics]

JSON метрик: ограниченный снимок заданий, задач, воркеров и слотов.

cluster:register

[cluster:register [keyword name `body]]

Компилирует keyword каноническим путём компиляции, проверяет результат и сохраняет его в хранилище с адресацией по содержимому.

cluster:result

[cluster:result job pagination?]

Итоговый результат задания согласно стратегии reduce.

cluster:status

[cluster:status job]

JSON прогресса для задания, видимого в текущем workspace.

cluster:workers

[cluster:workers]

JSON-представление зарегистрированных воркеров.

Вычисления / Оптимизация

optimize

[optimize "NL description" "name"]

Компилирует запрос на оптимизацию на естественном языке в блок [optimize:problem ...] через LLM, разбирает и регистрирует. Кэшируется в .optimize_nl_cache.json. Проверяйте через [optimize:code name] перед решением.

optimize:code

[optimize:code name]

Выводит зарегистрированную задачу в виде строки VVL [optimize:problem ...]. Подходит для проверки и копирования; полезно для задач, сгенерированных из NL через [optimize "..." name].

optimize:explain

[optimize:explain name]

Отображение скомпилированной модели CP-SAT в удобочитаемом виде: переменные (с источником), ограничения, целевая функция.

optimize:problem

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

Регистрирует задачу CP-SAT. Схема/класс необязательны: в режиме pure-local переменные решения объявляются через [decision $x Type [min L] [max H]] в теле. Формы тела (Sprint 1): [decision $x Type [min L] [max H]], [maximize expr], [minimize expr], [assert expr].

optimize:report

[optimize:report name]

После решения создаёт через LLM удобочитаемую сводку назначения. Объединяет вывод [optimize:code] и последний результат [optimize:solve].

optimize:solve

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

Запускает решение и возвращает VVL_OntologyInstance (режим онтологии) или строку результата (локальный режим). В Sprint 1 поддерживается только бэкенд [backend "cp-sat"].

optimize:validate

[optimize:validate name]

Структурная диагностика зарегистрированной задачи. Перечисляет каждое некомпилируемое выражение с предложением исправления. Работает даже если [optimize:problem] вернул ошибку.

optimize:why-infeasible

[optimize:why-infeasible name]

После того как [optimize:solve] вернул INFEASIBLE, выделяет минимальное множество ограничений [assert], пересечение которых неудовлетворимо, через литералы предположений CP-SAT.

Конфигурация

config-cluster

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

записывает <CLUSTER> в vvl.config.

config-cluster-show

[config-cluster-show] (admin)

конфигурация кластера, токен скрыт.

config-cluster-worker-token

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

настроить секрет, привязанный к воркеру; пустой токен удаляет его.

config-gateway-token

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

Записывает <GATEWAY><AUTHTOKEN>.

config-geo-key

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

Записывает <GEO><GOOGLE-API-KEY>.

config-jev

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

записывает <JEV> в vvl.config. Поле: account-id|token|model|provider|threshold|timeout. [config-jev show] (токен скрыт), [config-jev test] (реальный вызов).

config-llm

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

Записывает <LLM> в vvl.config. Поле: key|model|agent|max-tokens|provider|endpoint|embedding|image|vision|temperature.

config-rest

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

Записывает <REST> (вступает в силу при следующем запуске REST).

config-root-password

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

Записывает <SECURITY> (хеш root).

config-show

[config-show] (admin)

Сводка конфигурации (секреты скрыты).

setting

[setting "nom"]

Текущее значение; [setting "имя" значение] устанавливает его, применяет и записывает в <TUNING> файла vvl.config (постоянно). Заменяет переменные окружения VVL_*.

setting-reset

[setting-reset "nom"]

Удаляет значение (runtime + конфигурация), возвращая умолчание.

settings

[settings]

Перечень настроек: имя, значение, умолчание, происхождение, документация.

Контракты и проверка

contract

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

Функция с контрактом (предусловия/постусловия проверяются при вызове).

contract:info

[contract:info keyword]

контракт [keyword] в виде JSON (args, require, ensure, returns, mode).

contract:mode

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

режим контрактов keyword на уровне всей сессии.

contract:ontology

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

самовосстанавливающийся контрактный LLM-производитель: произвести -> проверить (пороговый satisfies_hybrid + ensure) -> при неудаче вернуть ошибку производителю и повторить.

contract:verify

[contract:verify $fn | keyword]

Статически проверяет requires ⟹ ensures (символьное выполнение + [proof:auto]).

contract:warnings

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

нарушения, записанные в режиме warn (keyword, вид, сообщение).

verify:approx

[verify:approx P]

VVL_Approximation (confidence = провенанс доказательства).

verify:repair

[verify:repair $proposer max?]

Цикл генерировать → проверять → исправлять (подключаемый предлагатель).

Поток управления

and

[and a b ...]

1, если ВСЕ аргументы истинны, иначе 0.

attempt

[attempt expr]

Возвращает JSON {"ok":true,"value":...} или {"ok":false,"error":{type,message}}.

break

[break] ou [break valeur]

Выходит из текущего цикла [for] / [while].

continue

[continue]

Переходит к следующей итерации цикла [for] / [while].

delay

[delay ms]

Приостанавливает выполнение. Кооперативный: проверяет сигнал остановки каждые 100 мс.

do

[do expr1 expr2 ...]

Последовательное вычисление. Останавливается по сигналу остановки, возвращает значение последнего выражения.

exit

[exit val?]

Поднимает сигнал остановки в данном контексте (возвращая значение).

if

[if cond then else?]

Условный оператор. Возвращает ветвь then, если условие истинно, иначе ветвь else (или пустое значение).

not

[not val]

1, если val ложно/пусто, иначе 0.

or

[or a b ...]

1, если истинен ХОТЯ БЫ один аргумент, иначе 0.

race

[race expr1 expr2 ...]

Параллельная гонка: побеждает первое непустое значение, проигравшие ветви отсекаются.

raise

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

Возбуждает ошибку, перехватываемую через [try] / [attempt].

silent

[silent expr1 expr2 ...]

Выполняет выражения, но всегда возвращает "".

switch

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

Сопоставляет val с вариантами. '_' соответствует любому значению.

timeout

[timeout ms expr]

Выполняет с ограничением по времени. При истечении времени поднимает StopBranchException (перехватывается через ~>).

try

[try try-body catch-body]

Выполняет тело try; при исключении связывает $__error и выполняет тело catch.

try:json

[attempt expr]

Возвращает JSON {"ok":true,"value":...} или {"ok":false,"error":{type,message}}.

when

[when cond body]

Выполняет тело только если условие истинно.

while

[while body]

Цикл, пока тело истинно. Жёсткое ограничение: 100 000 итераций.

Кредиты вызовов

billing-credit

[billing-credit ws amount expiry? note?]

Добавляет кредиты; срок — число дней или дата "YYYY-MM-DD", по умолчанию бессрочно (root).

billing-history

[billing-history ws limit?]

JSON-журнал, от новых записей к старым (по умолчанию 100 записей) (root).

billing-list

[billing-list]

JSON-обзор всех рабочих пространств: режим, баланс, потребление за 30 дней и итоги (root).

billing-mode

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

Переключает режим тарификации рабочего пространства (root).

billing-reset

[billing-reset ws note?]

Сброс: баланс рабочего пространства падает до 0 (root).

billing-set

[billing-set ws amount expiry? note?]

Принудительно устанавливает баланс в точное значение (root).

billing-status

[billing-status ws]

JSON: режим, баланс, партии кредитов (со сроком действия) и потребление рабочего пространства (root).

billing-usage

[billing-usage ws days?]

JSON: ежедневное потребление (вызовы, израсходованные кредиты, отклонённые вызовы) за N дней, по умолчанию 30 (root).

Байесовская диагностика

diagnose

[diagnose kb "obs."]

Абдуктивная диагностика по Райтеру: минимальные конфликты + минимальные множества отзыва, ранжированные по стоимости убеждения.

diagnose:repair

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

применить диагноз: факты отзываются, у правил бета-убеждение понижается («soft») или они отзываются («hard»).

diagnose:why-not

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

положительная абдукция: минимальные множества недостающих фактов для вывода цели (с ограничением глубины).

Разное

chr

[chr codepoint]

Одиночный символ по кодовой точке Unicode.

guid

[guid]

Генерирует UUID (Universally Unique Identifier).

ord

[ord char]

Кодовая точка Unicode первого символа.

random

[random n]

Случайное целое в [0, n). Аналог Orc Random(n).

timestamp

[timestamp]

Возвращает текущую метку времени в миллисекундах (epoch).

Factur-X

Factur-X

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

VVL_Pdf. Оборачивает PDF в файл Factur-X (PDF/A-3 + CII XML). <data> — это либо DSL-список [Fx-Invoice ...], либо JSON-словарь счёта, либо XML-строка/путь. Профили: MINIMUM, BASIC WL, BASIC, EN 16931, EXTENDED, XRECHNUNG. Опции: profile, lang, auto_profile, check_xsd, additional_attachments.

Файберы

fiber-alive

[fiber-alive $fiber]

Проверяет, активна ли фибра (1) или завершена (0). Альтернатива: $fiber.alive. Пример: [while [fiber-alive $gen] ...]

fiber-load

[fiber-load $json]

Восстановить фибру из JSON [fiber-save] и продолжить с места остановки.

fiber-resume

[fiber-resume $fiber]

Возобновляет выполнение фибры и возвращает следующее порождённое значение. Возвращает пустую строку, если фибра завершена. Альтернатива: $fiber.resume. Пример: [fiber-resume $gen]

fiber-save

[fiber-save $fiber]

Сериализовать ПРИОСТАНОВЛЕННУЮ фибру ВМ в JSON (переносимое продолжение). Возобновляется через [fiber-load].

fiber-to-list

[fiber-to-list $fiber]

Собирает все оставшиеся значения фибры в список. Полностью потребляет фибру. Альтернатива: $fiber.to-list. Пример: [fiber-to-list $gen]

session-load

[session-load $json]

Восстановить сессию из [session-save] в текущем контексте (переменные + возобновлённые фибры).

session-save

[session-save]

Сериализовать ВСЮ сессию (переменные + работающие фибры) в переносимый JSON.

spawn

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

Создаёт фибру/генератор из ключевого слова или лямбда-выражения. Возвращает объект фибры, лениво порождающий значения. Пример: $gen = [spawn [counter 10]]

stream-pipe

[stream-pipe $fiber lambda]

Преобразует значения фибры с помощью лямбда-функции. Возвращает новую фибру с преобразованными значениями. Пример: [stream-pipe $nums [lambda [$x] [* $x 2]]]

yield

[yield value]

Приостанавливает выполнение и возвращает значение из фибры. Может вызываться только внутри контекста фибры. Пример: [for $i [range 10] [yield $i]]

Файловая система

file-append-b64

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

Добавляет двоичные данные (декодированные из base64) в файл (создаёт его при отсутствии).

file-delete

[file-delete "path"]

Удаляет файл или каталог (надёжно, с повторными попытками в Windows).

file-read

[file-read "path"]

Читает текст из файла в рабочем пространстве (jail).

file-read-b64

[file-read-b64 "path"]

Читает двоичный файл и возвращает его содержимое в виде строки base64.

file-rename

[file-rename "old_path" "new_name"]

Переименовывает файл или каталог в том же родительском каталоге.

file-write

[file-write "path" "content"]

Записывает текст в файл рабочего пространства (jail).

file-write-b64

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

Записывает двоичный файл из строки base64.

ls

[ls "/path"?]

JSON-список {name,type,size,modified} для записей каталога.

Google API

calendarCreate

[calendarCreate summary startISO endISO desc?]

Создаёт событие.

calendarList

[calendarList max]

Список предстоящих событий.

gmailList

[gmailList query max]

Список непрочитанных писем (JSON).

gmailSend

[gmailSend to subject body]

Отправляет электронное письмо.

Гео и маршрутизация

geo:coords

[geo:coords "city or address"]

{lat, lon, name, source}. source ∈ {offline, google, google-cache}. Сначала автономная база (cities-fr.csv), затем Google Geocoding при наличии GOOGLE_MAPS_API_KEY.

geo:distance

[geo:distance "src" "dst"]

Целое число км. Псевдоним для haversine со строковыми входными данными.

geo:haversine

[geo:haversine A B]

Целое число км (ортодромия). A/B — либо JSON {lat, lon}, либо строки (разрешаются через [geo:coords]).

geo:store-info

[geo:store-info]

{offline_cities, google_api_key_configured}. Полезно для проверки состояния географического бэкенда.

route:matrix

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

Матрица км между каждой парой (src, dst). Вывод — VVL список-из-списков целых чисел, пригодный для [for] внутри [optimize:problem] как коэффициенты расстояния.

HTTP

httpDELETE

[httpDELETE url headers?]

DELETE; необязательные заголовки (JSON-словарь). Возвращает VVL_String при 2xx, VVL_Json {error,status,body} при >=400.

httpGET

[httpGET url headers?]

GET; необязательные заголовки (JSON-словарь). Возвращает VVL_String при 2xx, VVL_Json {error,status,body} при >=400.

httpPATCH

[httpPATCH url body headers?]

PATCH с телом text/JSON. Возвращает VVL_String при 2xx, VVL_Json {error,status,body} при >=400.

httpPOST

[httpPOST url body headers?]

POST с телом text/JSON и необязательными заголовками.

httpPUT

[httpPUT url body headers?]

PUT с телом text/JSON. Возвращает VVL_String при 2xx, VVL_Json {error,status,body} при >=400.

json-rpc

[json-rpc url service method args?]

Вызов точки доступа JSON-RPC 2.0. Формирует конверт, отправляет POST, возвращает разобранный результат или {error:msg}.

server

[server port host?]

Запускает минимальный HTTP-сервер VVL (только для администратора).

site

[site baseUrl domain funcDef1 funcDef2 ...]

Объявляет ключевые слова, маршрутизируемые через HTTP (ODESA).

ИИ и агенты

agent

[agent "goal" options?]

Автономный агент ReAct. Генерирует VVL, выполняет его в текущем контексте, получает обратную связь и итерирует. Используйте [§§ "под-вопрос"]/[resolve "..."] внутри цели/кода для специализированного нейро-символического решения (вычисления, оптимизация, извлечение, факты, экспертные системы). Опции: budget (int, по умолчанию 8), tools (list[str], только фильтр документации), model (str), reflect (bool, по умолчанию true — выполняет финальный вызов judge(), который может отклонить и предоставить 1 корректирующий шаг).

agentTrace

[agentTrace]

VVL_Json со структурированной трассой выполнения последнего вызова [agent]: {goal, model, steps_used, max_steps, done_signal, return_type, tool_calls[], tool_calls_count, errors[], final_code, usage_total{prompt_tokens,...}, elapsed_ms}. Возвращает <{}>, если в данном контексте не был выполнен ни один вызов [agent].

architect

[architect "goal" options?]

Высокоуровневый оркестратор. Генерирует план VVL (однопроходный или с предварительным JSON-планом), проверяет синтаксис, выполняет с автоматическим исправлением LLM при ошибках выполнения. Словарь опций: {model, budget, max_retries (по умолчанию 3), plan_first (bool), session (id), temperature, use_rag}.

architect-resume

[architect-resume "session-id"]

Загружает контрольную точку сессии [architect]: восстанавливает результаты фаз в [mem "<sid>"] и возвращает {session_id, phases, plan}.

codegen

[codegen "goal"]

VVL_Json {"ok":true,"code":"<VVL код>"} или {"ok":false,"error":...}. Генерирует VVL-код через LLM (тот же движок, что :agent / vvl_codegen). Не изменяет сессию.

intent

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

Компилирует намерение на естественном языке в единственную форму тела (soft/assert/maximize/minimize) и добавляет её к существующей задаче. Инлайн-форма: поместите [intent "..."] внутрь тела [optimize:problem ...].

semantic

[§ x] aka [semantic x]

VVL_Semantic для текста | VVL_Semantic(описание) для [§ img] (LLM с визуальным восприятием) | VVL_Img для [§ 'desc' IMG 'WxH'] (DALL-E 3). Сгенерированные изображения сохраняются в рабочей области активного пользователя.

semanticCache

[semanticCache action ...]

Управление кэшем: 'reset' (очистить всё), 'delete' op left right (удалить одну запись), 'purge' op (удалить все записи оператора), 'list' [op] (показать записи).

semanticMode

[semanticmode mode [threshold]]

Задаёт семантический режим: 'normal', 'advanced' (агентная модель для @) или 'jev' (логические операторы решает Jev, при его сомнении — LLM; необязательный порог 0.5..1)

semanticModel

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

Инспектирует или заменяет LLM-модели. Типы: 'model' (базовая, @ normal), 'agent' ([agent]/[architect], @ advanced), 'vision' ([§ img]), 'image' ([§ desc IMG size]). С 'persist' значение также записывается в vvl.config (иначе — локально для процесса).

ILP — индукция логики

ilp:bias

[ilp:bias BIAS_JSON]

Спецификация смещения. BIAS_JSON: {target, predicates:[{name,modes,role?,is_bk?}], max_body?, max_clauses?, max_vars?, types?, allow_recursion?}.

ilp:constraints

[ilp:constraints $result]

Атом ConstraintStore из LearnResult — используйте [atom:trace] для полного журнала ошибок.

ilp:explain

[ilp:explain $result]

Строка. Красивый вывод запуска LFF (программа, покрытие, время выполнения, ограничения по категориям).

ilp:induce

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

LearnResult. Полный конвейер: предложение смещения LLM + начальное заполнение гипотез LLM + уточнение LFF. 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. Запускает Learning-From-Failures над ограниченным смещением пространством гипотез. 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. Включает исправления пользователей (из [genetic:counter-store]) в наборы примеров для состязательной реиндукции.

ilp:propose-bias

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

Узел Bias. LLM предлагает объявления режимов + предикаты тела на основе естественного языка + примеров.

ilp:refine-with-ga

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

Уточнённый LearnResult. Стохастическое уточнение победителей LFF-результата через мутации удаления литерала и замены переменной; объединяет новые согласованные клаузы и повторно запускает жадное покрытие множества.

ilp:seed-hypotheses

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

Список JSON строк клауз Prolog. LLM предлагает до N кандидатных клауз Хорна для смещения.

ilp:test

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

Результат теста JSON. Проверяет программу-кандидат на {E+, E-} без обучения.

Изображения и рисование

addImage

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

Вставить res2 на res1.

blur

[blur $res value]

Применить размытие по Гауссу.

brightness

[brightness $res value]

Настроить яркость (1.0 = оригинал).

contrast

[contrast $res value]

Настроить контраст (1.0 = оригинал).

createBlackWhite

[createBlackWhite $res]

Преобразовать в чёрно-белое.

createGrayScale

[createGrayScale $res]

Преобразовать в оттенки серого.

createImage

[createImage w h bgcolor? transparency?]

Создать новое изображение (transparency: 0=непрозрачное, 100=прозрачное).

createNegative

[createNegative $res]

Инвертировать цвета (негатив).

cropImage

[cropImage $res x y w h]

Обрезать область в (x,y) размером w×h.

drawAngleArc

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

Нарисовать дугу.

drawBezier

[drawBezier $res points pen alpha?]

Нарисовать кривую Безье.

drawEllipse

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

Нарисовать эллипс.

drawLine

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

Нарисовать линию (pen: '#RRGGBB:width').

drawPolygon

[drawPolygon $res points pen fill alpha?]

Нарисовать полигон.

drawRect

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

Нарисовать прямоугольник.

drawRoundRect

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

Нарисовать прямоугольник с округлыми углами.

emboss

[emboss $res]

Применить эффект тиснения (emboss).

fillBezier

[fillBezier $res points pen fill alpha?]

Нарисовать залитую фигуру Безье.

flipImage

[flipImage $res direction]

Отразить 'horizontal' или 'vertical'.

getHeight

[getHeight $res]

Вернуть высоту изображения.

getImage

[getImage 'path']

Загрузить файл изображения в изменяемый ресурс ImageRes.

getImageURL

[getImageURL 'url']

Загрузить изображение по URL в изменяемый ресурс ImageRes.

getPixel

[getPixel $res x y]

Вернуть цвет '#RRGGBB' пикселя в заданной позиции.

getPixel32

[getPixel32 $res x y]

Вернуть 32-битное целое ARGB пикселя в заданной позиции.

getWidth

[getWidth $res]

Вернуть ширину изображения.

imageToBase64

[imageToBase64 $res format?]

Кодировать как data URI (png/jpg).

resizeImage

[resizeImage $res w h]

Изменить размер с интерполяцией ближайшего соседа.

resizeResampling

[resizeResampling $res w h]

Изменить размер с передискретизацией Ланцоша.

rotateImage

[rotateImage $res angle bgcolor?]

Повернуть на заданный угол (в градусах).

saturation

[saturation $res value]

Настроить насыщенность (1.0 = оригинал).

saveImage

[saveImage $res 'path' format?]

Сохранить изображение в файл (формат: png/jpg/bmp).

setPixel

[setPixel $res x y color]

Установить цвет пикселя в заданной позиции.

sharpen

[sharpen $res value]

Повысить резкость изображения.

Байесовский вывод

bannotate

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

Аннотировать одну клаузу. p — число или "?"; source ∈ {user, fact, LLM, learned}; label разделяет одну случайную переменную между клаузами.

bapprox

[bapprox kb "goal" ...]

VVL_Approximation, оборачивающая P[goal], чтобы она проходила через арифметику VVL и [approximation:*].

bbeliefs

[bbeliefs kb]

Все убеждения клауз в KB (JSON).

bfacts

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

Добавить вероятностные (аннотированные) факты. Использовать "0.8::rain." или "?::rain." (равномерный априорный, для обучения).

blearn

[blearn kb OBS_JSON iterations? seed?]

Байесовское (Gibbs) обучение весов клауз на основе наблюдаемых query-atoms. OBS_JSON: [{"goal":"wet(r1)","obs":true}, ...]. Сохраняет апостериорные в KB.

bposterior

[bposterior kb "clause"]

Текущее Beta-убеждение клаузы (JSON).

bprob

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

JSON {value, ci, range, confidence, assumptions}. Предиктивная вероятность с распространением эпистемической неопределённости. Отрицание точное (булево решение по мирам).

brules

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

Добавить вероятностные (аннотированные) правила.

Интроспекция переменных

parse-statements

[parse-statements code]

JSON-список инструкций верхнего уровня {start_line, end_line, text}. Используется отладчиком IDE.

vars

[vars all?]

JSON-список переменных сессии {name, type, preview, value}. "all" включает локальные $__.

JSON / XML

JSON

[JSON s]

Разбирает строку JSON s в объект JSON.

XML

[XML s]

Разбирает строку XML.

getXMLValue

[getXMLValue xml "xpath"]

Получает текстовое содержимое узла(ов).

json-decode

[json-decode string]

Разбирает строку JSON в объект VVL_Json. При ошибке разбора возвращает строку ошибки.

json-encode

[json-encode value]

Кодирует значение (строку, число…) как литерал JSON с кавычками и экранированием.

json-get-opt

[json-get-opt key json default?]

Читает значение по ключу из объекта JSON. Возвращает значение по умолчанию (или ""), если ключ отсутствует — безопасно для необязательных полей.

json-keys

[json-keys json]

Возвращает VVL_List всех имён ключей объекта JSON.

json-path-get

[json-path-get json_str path]

Читает вложенное значение по пути с точками и скобками (например 'layout.tabs[0].viewSystem.views.INIT.root'). Возвращает JSON-строку значения или 'null', если не найдено.

json-path-set

[json-path-set json_str path new_value]

Устанавливает вложенное значение по пути с точками и скобками. new_value разбирается как JSON, если возможно. Возвращает обновлённую полную строку JSON.

json-set

[json-set json_str key value]

Устанавливает ключ верхнего уровня в строке объекта JSON, возвращает обновлённую строку JSON.

jsonGetValue

[jsonGetValue key json]

Читает значение по ключу/индексу из JSON. Вызывает KeyError, если отсутствует.

jsonToList

[jsonToList jsonArray]

Преобразует массив JSON в список VVL.

object

[object [key value ...]]

Лёгкий объект в виде dict VVL_Json; сериализуется через .json.

setXMLValue

[setXMLValue value xml "xpath"]

Устанавливает текстовое содержимое узла(ов).

strToJson

[JSON s]

Разбирает строку JSON s в объект JSON.

Списки

append

[append head|tail val list]

Добавить значение в список.

chunk

[chunk n list]

Список фрагментов по n элементов; последний может быть короче (= Enum.chunk_every).

collect

[collect expr1 expr2 ...]

Вычислить выражения и вернуть значения, сохранённые через [keep].

concat

[concat l1 l2 l3...]

Сплющить на один уровень — конкатенировать переданные списки.

count-by

[count-by f serie]

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

cycle

[cycle serie]

БЕСКОНЕЧНЫЙ поток, повторяющий КОНЕЧНУЮ серию (= cycle в Haskell).

dim

[dim $var value]

Присвоить значение переменной (альтернатива $var = value).

drop

[drop n list]

Список без первых n элементов; отрицательное n отбрасывает с конца (= Enum.drop).

exist

[exist value list]

1 если значение есть в списке, иначе 0.

first

[first serie]

Первый элемент списка, первый символ строки ("" если пусто).

getType

[getType element]

Строка метки типа VVL ("NUM", "STRING", "LIST", "JSON", ...).

getValue

[getValue idx list]

Получить элемент по индексу с основанием 1.

group-by

[group-by f serie]

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

index-of

[index-of serie valeur]

Позиция значения в списке (или подстроки), начиная с 1; 0, если отсутствует. Тот же порядок аргументов, что у [contains].

insert

[insert idx value list]

Вставить значение по индексу с основанием 1.

iterate

[iterate f x]

БЕСКОНЕЧНЫЙ поток x, f(x), f(f(x))... (= iterate в Haskell).

keep

[keep value]

Добавить значение в буфер текущего [collect] и вернуть его.

last

[last serie]

Последний элемент списка, последний символ строки ("" если пусто).

length

[length x]

Получить длину списка, строки или JSON (длина массива, количество ключей словаря).

let

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

Локальные последовательные привязки (let*), вычислить тело, восстановить предыдущие привязки.

list

[list items...]

Вариадический конструктор VVL_List.

listMatch

[listMatch list default lambda_cons]

Если пусто — значение по умолчанию; иначе lambda_cons(head, tail).

match

[match target pattern1 body1 ... default?]

Сопоставление с образцом с отложенным выполнением тела.

mset

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

Деструктурирующее присваивание нескольких переменных.

pop

[pop head|tail list]

Вернуть значение головы или хвоста списка.

put

[put type idx value list]

Вставить/заменить по индексу с основанием 1 с типизацией (NUM/STRING/LIST/JSON).

remove

[remove idx list]

Удалить элемент по индексу с основанием 1.

repeat

[repeat v]

БЕСКОНЕЧНЫЙ поток одного и того же значения (= repeat в Haskell).

rest

[rest serie]

Серия без первого элемента (список или строка).

scan

[scan f init serie]

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

slice

[slice start stop step? list]

Срез с основанием 1, конец включительно. Отрицательный шаг — обратный порядок.

unique

[unique list]

Список без дубликатов, побеждает первое вхождение (= Enum.uniq).

unpack

[unpack list $headVar $tailVar]

Деструктурировать список в переменные голова/хвост. Возвращает 1 при успехе, 0 если пуст.

update

[update type idx value list]

Обновить значение по индексу с основанием 1 с типизацией.

with

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

Параллельное вычисление выражений, каждое с $alias = source.

zip

[zip a b]

Список пар, останавливается на более коротком списке (= Enum.zip).

zip-with

[zip-with f a b]

f применяется к парам, останавливается на более короткой (= zipWith).

Нечёткая логика и эксперт

expert

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

Инициализирует полную экспертную систему: генерирует онтологию + абстракции через [fuzzy:ontology], генерирует правило диспетчеризации через [fuzzy:rule], затем регистрирует ключевое слово VVL <ExpertName>, принимающее строку на естественном языке и возвращающее классифицированный экземпляр. После этого вызывающий код может использовать [<ExpertName> "произвольный ввод"] без написания какого-либо другого VVL.

expert:active

[expert:active]

JSON-список экспертов, зарегистрированных в текущей сессии (доступных для диспетчеризации роутером). Отличается от [expert:list], который перечисляет экспертов, сохранённых на диск через [expert:save]. Используется для проверки ctx._expert_registry — символьный роутер обращается к этому списку при классификации вопроса в семейство expert_system.

expert:list

[expert:list]

Возвращает JSON-список всех сохранённых экспертов.

expert:load

[expert:load "Name"]

Восстанавливает сохранённого эксперта: схему, абстракции, правила и ключевое слово. Возвращает переменную схемы для дальнейшего использования.

expert:save

[expert:save "Name"]

Сохраняет ранее построенного эксперта (схему, абстракции, правила, ключевое слово) для последующей загрузки через [expert:load].

fuzzy:and

[fuzzy:and a b ...]

T-норма AND по всем аргументам. Используйте :family <name> для переопределения.

fuzzy:degree

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

степень 0..1, в которой описание применимо к x; [fuzzy:degree [§ x] ["низкий" "средний" "высокий"]] -> позиция на шкале, 0..1. Jev в [semanticMode "jev"] (LLM, если Jev сомневается), иначе LLM.

fuzzy:degrees

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

JSON {имя: степень 0..1}, все измерены за ОДИН вызов Jev ([semanticMode "jev"]); LLM берёт только степени, в которых Jev сомневается.

fuzzy:extremely

[fuzzy:extremely x]

x**4 (сверх-концентрация).

fuzzy:family

[fuzzy:family]

Текущее семейство. [fuzzy:family "name"] -> установить ("zadeh"/"probabilistic"/"lukasiewicz").

fuzzy:few

[fuzzy:few values]

Среднее значение нижней половины (квантификатор «немногие являются»).

fuzzy:imp

[fuzzy:imp a b]

Нечёткая импликация a→b в рамках активного семейства.

fuzzy:most

[fuzzy:most values]

Среднее значение верхней половины (квантификатор «большинство являются»).

fuzzy:not

[fuzzy:not x]

1-x.

fuzzy:ontology

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

Генерирует полную онтологию (классы, атрибуты, абстракции, отношения) на основе описания на естественном языке. Сгенерированный VVL разбирается и вычисляется немедленно, так что $<Schema> привязан и готов к использованию с [ontology:fromText], [fuzzy:rule], [ontology:infer] и т.д.

fuzzy:or

[fuzzy:or a b ...]

T-конорма OR по всем аргументам. Используйте :family <name> для переопределения.

fuzzy:rule

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

Преобразует правило на естественном языке в формальную ontology:rule с использованием инфиксных операторов ~&/~|/~!/≈>. Правило затем вычисляется через [ontology:infer ...] без дополнительных вызовов LLM.

fuzzy:slightly

[fuzzy:slightly x]

x**(1/3) (сверх-дилатация).

fuzzy:somewhat

[fuzzy:somewhat x]

sqrt(x) (дилатация).

fuzzy:very

[fuzzy:very x]

x**2 (концентрация).

fuzzy:wmean

[fuzzy:wmean values weights]

Взвешенное среднее арифметическое двух VVL-списков одинаковой длины.

Пропозициональная логика

proposition

[proposition "p & q

r"] -> компилирует читаемую INFIX-пропозицию.

proposition:and

[proposition:and P Q …]

конъюнкция.

proposition:entails

[proposition:entails [P …] G]

1 если предпосылки влекут 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]

эквивалентность P<->Q.

proposition:implies

[proposition:implies P Q]

импликация 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]

отрицание.

proposition:or

[proposition:or P Q …]

дизъюнкция.

proposition:parse

[proposition:parse "p & q

r"] -> то же, что [proposition "…"] (пространство имён).

proposition:sat

[proposition:sat P]

{sat, model} (выполнимость).

proposition:symbolic

[proposition:symbolic p [q …]]

объявляет один или несколько пропозициональных символов.

proposition:valid

[proposition:valid P]

1 если тавтология, 0 в противном случае.

proposition:xor

[proposition:xor P Q …]

исключающее или.

Журналы

log

[log msg...]

Добавляет запись в файл журнала контекста (и в консоль, если нет рабочего пространства).

logImage

[logImage img options?]

Отображает изображение в REPL. Режимы: "image" (по умолчанию, term-image) или "ascii" (Pillow).

logTable

[logTable list_of_objects options?]

Отображает таблицу Rich из JSON-списка. Параметры: {box, title, styles}.

print

[print arg1 arg2 ...]

Выводит аргументы в консоль.

MCP

mcp-call

[mcp-call $client tool_name arguments?]

Вызывает инструмент MCP. Возвращает результат в формате JSON.

mcp-close

[mcp-close $client]

Закрывает MCP-соединение и завершает серверный процесс.

mcp-connect

[mcp-connect name command env?]

Подключается к MCP-серверу через stdio. Возвращает "mcp:<name>".

mcp-list

[mcp-list $client]

Перечисляет доступные инструменты на MCP-сервере. Возвращает массив JSON.

mcp-resource

[mcp-resource $client uri]

Читает ресурс с MCP-сервера. Возвращает JSON.

mcp-servers

[mcp-servers]

Перечисляет все активные MCP-соединения. Возвращает массив JSON.

Модули

module:def

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

Определяет модуль с пространством имён. Builtin RAW. Тело выполняется в изолированном контексте. Экспорты: - значения читаются через [module:get Module name]; - ключевые слова устанавливаются только под квалифицированными именами вида Module:name.

module:get

[module:get module export]

Возвращает экспортированное значение модуля. Builtin RAW. `module` и `export` могут быть словами или строками.

module:info

[module:info module]

Возвращает метаданные модуля в виде JSON. Builtin RAW. Поля результата: name, exports, keywords, path

module:list

[module:list]

Возвращает имена загруженных/определённых модулей.

module:load

[module:load "file.vvl"]

Загружает файл модуля VVL один раз. Файл разрешается по правилам пути текущего рабочего пространства и обычно содержит одну или несколько форм [module:def ...]. Использует ctx.module_cache: повторная загрузка того же пути возвращает кэшированный результат. Используйте [module:reload "file.vvl"] для принудительного повторного выполнения.

module:reload

[module:reload "file.vvl"]

Принудительно перезагружает файл модуля VVL. Повторно парсит и выполняет файл, заменяя квалифицированные экспорты ключевых слов для модулей, переопределённых этим файлом.

Мета и интроспекция

compute

[compute stack ops]

Стековый движок в стиле Uiua. Пример: [compute [] [5 "iota" 2 "*"]]

dump

[dump value]

Возвращает текстовый дамп VVL вычисленного значения. Полезно для отладки и обратных преобразований значений: $text = [dump `[a b 1]] -> "[a b 1]" [eval [load $text]] -> [a b 1] Обратное преобразование гарантировано для базовых читаемых значений: чисел, строк, списков и JSON. Платформенные ресурсы могут возвращать только диагностические дампы.

eval

[eval expr]

Короткий псевдоним для [evaluate]. RAW builtin. Предпочтителен в рабочем процессе code-as-data: $form = [load "[+ 2 3]"] [eval $form] -> 5 Используйте [load] для разбора источника без выполнения, затем [eval] для запуска загруженной формы.

evaluate

[evaluate expr]

Вычисляет исходный код VVL или ЭЛЕМЕНТЫ формы. RAW builtin.

execute

[execute expr]

ЗАПУСКАЕТ форму, повторяя до стабилизации. RAW builtin. Это «do» языка VVL.

form

[form value]

Возвращает текст для отображения человеку для вычисленного значения. В отличие от [mold]/[dump], строки не берутся в кавычки, а списки объединяются в текст: [form "hello"] -> "hello" [form `[a 10 b]] -> "a 10 b" Используйте [mold] или [dump], когда нужно представление для [load].

help

[help name?]

Перечисляет builtins или возвращает справку по конкретной команде.

import

[import "file.vvl"]

Выполняет внешний файл VVL.

inspectWord

[inspectWord name]

Проверяет, является ли слово builtin, ключевым словом или иным.

keyword

[keyword name template]

Определяет macro.

lambda

[lambda [params] body]

Определяет анонимную функцию.

load

[load source]

Разбирает строку источника VVL без выполнения. Возвращает: - единственный разобранный узел, если источник содержит одно выражение верхнего уровня; - список VVL узлов, если источник содержит несколько операторов верхнего уровня.

mem

[mem db key val?]

Хранилище ключ-значение (чтение или запись).

memSearch

[memSearch db val]

Находит ключи по значению.

mold

[mold value]

Возвращает читаемое представление VVL вычисленного значения. `mold` — название в стиле REBOL для текстовой формы, ориентированной на обратное преобразование. В настоящее время намеренно разделяет ту же семантику, что и [dump]: [mold `[a b 1]] -> "[a b 1]" [eval [load [mold `[a b 1]]]] -> [a b 1] Используйте [form], когда нужен текст для человека, а не читаемый источник.

proai-validator-json

[proai-validator-json JSON|fichier]

Структурированный отчёт валидации JSON. Возвращает JSON с полями score, valid, hasCritical, hasErrors, summary и entries[], каждый с id/severity/category/title/message/path/fix/expected/actual.

quote

[quote expr...]

Возвращает сырое(ые) выражение(я) без вычисления. RAW builtin. - Один аргумент: возвращает это сырое выражение. - Несколько аргументов: возвращает список VVL сырых выражений.

sub

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

Вызывает под-скрипт или под-граф.

type-of

[type-of value]

Возвращает стабильное строчное имя типа VVL.

version

[version]

JSON {"VAILS", "VVL", "variant"?, "branch"?, "sha"?}. "variant" появляется на экспериментальных сборках; branch/sha когда git доступен.

λ

[λ [params] body]

Псевдоним для lambda.

ODESA

odesa:call

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

внутренний форвардер для ключевых слов от [odesa:site].

odesa:site

[odesa:site URL préfixe ?token]

получает манифест сервера ODESA и устанавливает ключевые слова префикс:функция (HTTP-вызов + ре-оценка VVL).

Объекты (классы)

class

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

class-of

[class-of $obj]

Имя класса объекта (или тип Python для не-экземпляров).

implements-of

[implements-of $obj ProtocolName]

1, если объект реализует protocol/protocole.

is-a

[is-a $obj ClassName]

1, если объект является экземпляром класса, подкласса, mixin-а или реализует protocol/protocole.

method-call

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

вызывает метод по его ИМЕНИ (динамическая отправка).

methods-of

[methods-of $obj]

JSON-список имён методов.

new

[new ClassName arg1 arg2 ...]

Создаёт экземпляр. Классы VVL: позиционные аргументы передаются в init(). Классы онтологии: передавать именованные пары [attr value] -> VVL_OntologyInstance.

object-class

[object-class $obj]

Имя класса (объекта или класса). Иначе ошибка.

object-fields

[object-fields $obj]

Имена полей, отсортированные (тот же порядок, что и в VM).

object-get

[object-get $obj champ]

Значение поля, "" если отсутствует.

object-has

[object-has $obj champ]

1, если поле существует, иначе 0.

object-new

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

Экземпляр с этими полями.

object-set

[object-set $obj champ valeur]

НОВЫЙ объект; исходный не затронут.

object-to-json

[object-to-json $obj]

JSON {__vvl_object__, fields, …} — форма VM.

protocol

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

Определяет интерфейс.

relation

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

Отношение в стиле OWL.

Office COM

call

[call obj method args...]

Вызов метода.

excel-chart

[excel-chart $book spec]

Вставить диаграмму из JSON-спецификации.

excel-formula

[excel-formula $book spec]

Вставить формулы из JSON-спецификации.

excel-info

[excel-info $book]

Полная структура книги (листы + ячейки) в виде JSON.

excel-pdf

[excel-pdf $book path]

Экспортировать книгу в PDF.

excel-style

[excel-style $book spec]

Применить стили из JSON-спецификации.

excel-table

[excel-table $book spec]

Создать таблицу из JSON-спецификации.

get

[get obj prop]

Получить свойство.

office

[office app visible?]

Запустить приложение Office (word/excel/outlook/powerpoint).

outlook-folders

[outlook-folders $outlook]

Список всех папок Outlook в виде JSON [{name,path,unreadCount,itemCount}...].

outlook-list

[outlook-list $outlook folder? max?]

Список последних писем в папке (по умолчанию «Входящие», макс. 50). Возвращает список JSON.

outlook-move

[outlook-move $outlook entryId targetFolder]

Переместить письмо в другую папку по пути.

outlook-read

[outlook-read $outlook entryId]

Прочитать одно письмо по EntryID. Возвращает JSON {subject,sender,body,attachments...}.

outlook-save

[outlook-save $outlook entryId path]

Сохранить письмо как файл .msg на диске.

outlook-search

[outlook-search $outlook query folder?]

Поиск писем по запросу (фильтр DASL). Возвращает список JSON.

outlook-send

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

Отправить письмо через Outlook.

ppt-animate

[ppt-animate $pres slideIdx shapeIdx effect]

Добавить эффект анимации к фигуре.

ppt-chart

[ppt-chart $pres slideIdx spec]

Вставить диаграмму из JSON-спецификации.

ppt-duplicate

[ppt-duplicate $pres slideIdx]

Дублировать существующий слайд.

ppt-export

[ppt-export $pres path format?]

Экспортировать презентацию (по умолчанию pdf, также pptx, png).

ppt-info

[ppt-info $pres]

Полная структура презентации в виде JSON {slides:[{layout,shapes:[...]}]}.

ppt-master

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

Управлять образцом слайдов и макетами.

ppt-pdf

[ppt-pdf $pres path]

Экспортировать презентацию в файл PDF.

ppt-shape

[ppt-shape $pres slideIdx spec]

Создать или изменить фигуру из JSON-спецификации.

ppt-slide

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

Управлять слайдами (добавить, удалить, дублировать, переместить).

ppt-style

[ppt-style $pres slideIdx shapeIdx style]

Применить визуальный стиль (заливка, рамка, шрифт) к фигуре.

ppt-text

[ppt-text $pres slideIdx shapeIdx text]

Задать текстовое содержимое фигуры.

ppt-transition

[ppt-transition $pres slideIdx effect]

Задать эффект перехода слайда.

prop

[prop obj path...]

Обход пути свойств на COM-объекте.

quit

[quit obj]

Закрыть приложение Office.

set

[set obj prop val]

Установить свойство.

word-info

[word-info $doc]

Полная структура документа в виде JSON (один вызов).

word-pdf

[word-pdf $doc path]

Экспортировать документ Word в файл PDF.

word-table

[word-table $doc spec]

Создать таблицу из JSON-спецификации.

word-textbox

[word-textbox $doc spec]

Создать текстовое поле из JSON-спецификации.

Функции высшего порядка

every

[every lambda list]

1, если каждый элемент удовлетворяет предикату (= Enum.all?).

filter

[filter lambda list]

Фильтрует список по предикату. Поддерживает VVL_List и VVL_Json.

flat

[flat list] or [flat list depth]

Разворачивает вложенный список в одноуровневый список. Необязательная глубина ограничивает разворачивание.

for

[for $var list body]

Итерирует по списку или JSON-массиву. Возвращает список результатов тела.

jit

[jit]

текущий порог компиляции | [jit N] задаёт его (вызовов до компиляции горячей лямбды; 0 = JIT выключен, 1 = сразу).

map

[map lambda list]

Применяет функцию к каждому элементу списка.

pmap

[pmap lambda list]

Применяет функцию параллельно к каждому элементу списка.

reduce

[reduce lambda init? list]

Свёртка списка в одно значение (лямбда принимает аккумулятор и элемент).

some

[some lambda list]

1, если хотя бы один элемент удовлетворяет предикату (= Enum.any?).

take

[take n serie]

первые n элементов списка ИЛИ ленивого потока. Приводит поток (даже бесконечный) к n элементам.

vectorize

[vectorize]

состояние (1/0) | [vectorize 1|0] включает/выключает векторизующий уровень [map] на лету (на весь процесс).

PDF (генерация)

PDFMake

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

VVL_Pdf. Шаблон — это выражение VVL в скобках (DSL) или строка (Markdown); тип определяется автоматически. Опции: pageSize/orientation/margins/defaultStyle/title/author/input.

PDF (подпись)

pdfListKeys

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

JSON хранилищ ключей рабочего пространства.

pdfMakeGuestKey

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

Создаёт гостевой сертификат .p12 (автоматический пароль, зашифрованный).

pdfMakeUserKey

[pdfMakeUserKey "password" days?]

Создаёт .p12 для ctx.user в рабочем пространстве.

pdfRevokeKey

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

1/0. Удаляет .p12 и записывает отпечаток.

pdfSign

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

Относительный путь к подписанному PDF.

pdfVerify

[pdfVerify "signed.pdf"]

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

PDF / Изображения

IMG

[IMG "path"]

Создаёт VVL_Img и предварительно загружает его base64-представление.

PDF

[PDF "path"]

Создаёт VVL_Pdf.

imgToMatrix

[imgToMatrix "path" mode?]

JSON-матрица пикселей (режим "RGB" или "L").

matrixToImg

[matrixToImg matrix "path"]

Сохраняет матрицу как файл изображения.

pdfMeta

[pdfMeta $pdfObj]

JSON {pages, author, ...}.

pdfText

[pdfText $pdfObj max_pages?]

Текст, извлечённый из PDF.

pdfToImages

[pdfToImages $obj zoom?]

Список VVL_Img (по одному на страницу).

Разбор и диалекты

dialect:def

[dialect:def name grammar]

Регистрирует именованную грамматику разбора. Builtin RAW. Грамматика сохраняется в текущем контексте под именем `name`. Она не становится builtin-ом, ключевым словом или плагином.

dialect:list

[dialect:list]

Возвращает имена зарегистрированных диалектов.

dialect:parse

[dialect:parse name input]

Разбирает входные данные с помощью зарегистрированной грамматики. Builtin RAW. `name` может быть словом или строкой. `input` вычисляется. Возвращает ту же структуру JSON, что и [parse].

parse

[parse input grammar]

Разбирает строку или список с помощью диалекта разбора VVL. Builtin RAW. `input` вычисляется; `grammar` читается как правила. Возвращает JSON: {ok, position, captures, rest, expected?} Примитивные правила: digit number num letter space string word list any end Комбинаторы: [some rule] одно или более [any rule] ноль или более [opt rule] необязательно [repeat n rule] ровно n раз [repeat min max rule] от min до max раз [alt r1 r2 ...] альтернативы [capture name rule] захватывает потреблённый ввод [literal value] соответствие литералу [to rule] продвигается до rule без потребления [thru rule] продвигается через rule и потребляет его [rule name grammar] определяет локальное подправило [do expr...] выполняет действие VVL в текущей позиции

Хранение объектов

obj-assert

[obj-assert $instance kbname?]

Добавляет факты instance/2 + prop/3 + rel/3 в базу Prolog. Без kbname использует базу по умолчанию (см. [kb default]). Возвращает количество фактов.

obj-delete

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

Удаляет экземпляр из SQLite по его UUID.

obj-find

[obj-find ClassName field value op?]

Находит экземпляры по значению поля. op: '=' (по умолчанию), '>=', '<=', '>', '<', '!=', 'LIKE'.

obj-join

[obj-join FromClass relField ToClass filterField filterValue]

Реляционное объединение между классами через таблицу vvl_relations.

obj-load

[obj-load ClassName id]

Загружает экземпляр по UUID из SQLite.

obj-query

[obj-query ClassName "SQL WHERE clause"]

Прямой SQL-запрос к vvl_objects. Использовать с осторожностью.

obj-retract

[obj-retract $instance kbname?]

Удаляет все факты Prolog для экземпляра из базы. Без kbname использует базу по умолчанию. Возвращает количество удалённых фактов.

obj-save

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

Сохраняет экземпляр в SQLite. Генерирует UUID, индексирует скалярные поля, сохраняет ссылки :ref в vvl_relations.

Операционное планирование

planning:add-constraint

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

создаёт и фиксирует новое Ограничение (kind, params), добавляет в C, возвращает идентификатор ограничения.

planning:add-resource

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

добавить в R.

planning:add-task

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

добавляет задачу в T (идемпотентно), увеличивает версию, нормализует.

planning:assign

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

создаёт и фиксирует новое Назначение, добавляет его id в A, возвращает идентификатор назначения.

planning:code

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

возвращает VVL-код [optimize:problem ...], который сгенерировал бы [planning:problem ...], без регистрации. Инструмент инспекции DSL-десахаризатора.

planning:compile

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

Мост Фазы 2: читает Mission/Task/Resource/Reservation из онтологической базы знаний, вычисляет соответствие на основе requirements_json + skill_ids, генерирует DSL-источник [planning:problem ...] и регистрирует его. Возвращает имя задачи 'PB_<mission_id>'.

planning:compile-code

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

возвращает DSL-источник [planning:problem ...], сгенерированный из онтологии, без регистрации. Инструмент инспекции моста Фазы 2.

planning:compose

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

объединение покомпонентно + нормализация. Возвращает идентификатор нового Планирования.

planning:diff

[planning:diff $schema $p1 $p2]

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

planning:equivalent

[planning:equivalent $schema $p1 $p2]

1 если p1 ≡ p2 в нормальной форме, 0 в противном случае.

planning:from-mission

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

заполняет T (экземпляры задач миссии), R (активные ресурсы), F (подтверждённые резервирования) из базы знаний.

planning:includes

[planning:includes $schema $p1 $p2]

1 если p2 ⊑ p1 (покомпонентное подмножество), 0 в противном случае.

planning:install-algebra-classes

[planning:install-algebra-classes $schema]

добавляет онтологические классы `Planning` и `Constraint` в схему (идемпотентно). Требуется перед любым вызовом [planning:new] / [planning:compose] / и т.д.

planning:meet

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

p1 ⊓ p2 (непустой meet => перекрытие).

planning:new

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

фиксирует пустой экземпляр Planning (T=R=A=C=F=∅). Возвращает его id.

planning:normalize

[planning:normalize $schema $p_id]

применяет правила упрощения PDF § 7.4 на месте: удаление осиротевших назначений, слияние дублирующихся ограничений, отмена и удаление истёкших резервирований, удаление precedence(t,t') где t ∉ T.

planning:problem

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

DSL планирования Фазы 1. Формы тела: [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]. Десахаризует в [optimize:problem ...] и регистрирует задачу. Ёмкости > 1 не поддерживаются в V0.

planning:reify-assignments

[planning:reify-assignments $schema $problem_name]

после [planning:solve] читает последнее решение решателя и создаёт экземпляры Assignment в базе знаний (зафиксированные). Возвращает список VVL_Json словарей {task_id, resource_ids, start_ts, end_ts}.

planning:remove-constraint

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

отзывает экземпляр Constraint и удаляет из C.

planning:remove-resource

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

удаляет из R и каскадно отзывает все Назначения, использующие этот ресурс (Назначения, подкреплённые подтверждённой или активной Резервацией в F, защищены).

planning:remove-task

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

удаляет из T и каскадно отзывает все Назначения с совпадающим task_id.

planning:seed

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

создаёт и фиксирует экземпляр онтологии из словаря JSON. Обходит [new ClassName] (знает только OO-классы, а не онтологические). Поля типа список в планировании (skill_ids, requirements_json, depends_on_task_ids, …) кодируются в JSON автоматически. Возвращает Prolog id зафиксированного экземпляра.

planning:snapshot

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

глубокая копия с version+1, связанным parent_id, snapshot_ts=now.

planning:solve

[planning:solve NAME [time_limit secs]?]

решает задачу, зарегистрированную через [planning:problem ...]. Возвращает VVL_Json со значениями решений плюс __status__ / __objective__. Тот же backend, что и у [optimize:solve].

planning:subtract

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

p1 \ p2 покомпонентно (некоммутативно).

planning:unassign

[planning:unassign $schema $planning_id $task_id]

отзывает все Назначения с совпадающим task_id и удаляет их из A.

planning:validate

[planning:validate NAME]

структурная диагностика задачи, зарегистрированной через [planning:problem ...]. Та же диагностическая поверхность, что у [optimize:validate]; полезно когда десахаризатор успешно отработал, но базовая модель CP-SAT имеет мягкие проблемы.

Плагины

plugin-info

[plugin-info name]

Манифест + подписант + дайджест + статус.

plugin-inspect

[plugin-inspect "x.vvlplugin"]

Проверяет формат, дайджест, подпись и политику без установки.

plugin-install

[plugin-install "x.vvlplugin"]

Проверяет подпись и политику, записывает файл .py, создаёт запись.

plugin-load

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

Повторно проверяет дайджест по записи, затем привязывает ctx.plugins[kw].

plugin-remove

[plugin-remove "name"]

Отвязать + удалить файл(ы) + запись. Идемпотентно.

plugin-trust-add

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

Добавить доверенный открытый ключ Ed25519 (уровень: standard|high). Администратор.

plugin-trust-export

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

Перезаписывает PEM в plugins/_inbox. Администратор.

plugin-trust-get

[plugin-trust-get id]

Детали ключа + PEM. Администратор.

plugin-trust-import

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

Импортировать ключ .pub из plugins/_inbox. Администратор.

plugin-trust-list

[plugin-trust-list]

JSON-список доверенных ключей (без необработанного PEM). Администратор.

plugin-trust-remove

[plugin-trust-remove id]

Отозвать/удалить ключ. Администратор.

plugin-trust-update

[plugin-trust-update id tier]

Изменить уровень ключа. Администратор.

plugin-unload

[plugin-unload kw]

Удалить привязку сеанса.

plugin-workspace-trust

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

Включить/отключить plugins_trusted (шлюз режима inproc). Администратор.

plugins-list

[plugins-list]

Установленные + загруженные плагины (статус).

Плагины (секреты)

plugin-audit

[plugin-audit n?]

Последние события времени выполнения плагинов. Администратор.

plugin-login

[plugin-login plugin profile json]

Сохранить выделенный профиль аутентификации для плагина. Администратор.

plugin-login-list

[plugin-login-list plugin]

Список профилей аутентификации плагина. Администратор.

plugin-logout

[plugin-logout plugin profile]

Удалить профиль аутентификации плагина. Администратор.

plugin-secret-get

[plugin-secret-get plugin key]

Прочитать секрет плагина. Администратор.

plugin-secret-list

[plugin-secret-list plugin]

Список имён сохранённых секретов. Администратор.

plugin-secret-remove

[plugin-secret-remove plugin key]

Удалить секрет плагина. Администратор.

plugin-secret-set

[plugin-secret-set plugin key value]

Сохранить зашифрованный секрет для плагина. Администратор.

Реляционное программирование

=/=

[=/=]

[=/=] -> алиас [distinct]: цель/терм miniKanren (допустимо внутри [run]).

==

[==]

[==] -> алиас [unify]: цель/терм miniKanren (допустимо внутри [run]).

absent

[absent]

цель/терм miniKanren (допустимо внутри [run]).

all

[all]

цель/терм miniKanren (допустимо внутри [run]).

any

[any]

цель/терм miniKanren (допустимо внутри [run]).

any-weighted

[any-weighted]

цель/терм miniKanren (допустимо внутри [run]).

bind-csv

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

порождает класс ВМЕСТЕ с полями, выведенными из СХЕМЫ CSV (колонки + выведенные типы), и связывает его с CSV как источником.

commit

[commit]

цель/терм miniKanren (допустимо внутри [run]).

commit-once

[commit-once]

цель/терм miniKanren (допустимо внутри [run]).

conda

[conda]

[conda] -> алиас [commit]: цель/терм miniKanren (допустимо внутри [run]).

conde

[conde]

[conde] -> алиас [any]: цель/терм miniKanren (допустимо внутри [run]).

condu

[condu]

[condu] -> алиас [commit-once]: цель/терм miniKanren (допустимо внутри [run]).

conj

[conj]

[conj] -> алиас [all]: цель/терм miniKanren (допустимо внутри [run]).

cons

[cons]

цель/терм miniKanren (допустимо внутри [run]).

constrain

[constrain]

цель/терм miniKanren (допустимо внутри [run]).

defrel

[predicate nom [params] goal…]

определяет логическое отношение.

disj

[disj]

[disj] -> алиас [any]: цель/терм miniKanren (допустимо внутри [run]).

distinct

[distinct]

цель/терм miniKanren (допустимо внутри [run]).

exists

[exists]

цель/терм miniKanren (допустимо внутри [run]).

fact

[fact]

цель/терм miniKanren (допустимо внутри [run]).

fail

[fail]

цель/терм miniKanren (допустимо внутри [run]).

fresh

[fresh]

[fresh] -> алиас [exists]: цель/терм miniKanren (допустимо внутри [run]).

kb-goal

[kb-goal]

[kb-goal] -> алиас [fact]: цель/терм miniKanren (допустимо внутри [run]).

match-obj

[match-obj]

[match-obj] -> алиас [obj-match]: цель/терм miniKanren (допустимо внутри [run]).

obj-match

[obj-match]

цель/терм miniKanren (допустимо внутри [run]).

once

[once]

цель/терм miniKanren (допустимо внутри [run]).

predicate

[predicate nom [params] goal…]

определяет логическое отношение.

prob

[prob [vars] goal…]

МАРГИНАЛЬНАЯ вероятность = сумма весов всех решений.

probability

[prob [vars] goal…]

МАРГИНАЛЬНАЯ вероятность = сумма весов всех решений.

run

[run N [vars] goal…]

СПИСОК не более чем из N решений.

run*

[run-all [vars] goal…]

СПИСОК ВСЕХ решений (алиас [run-all]).

run-all

[run-all [vars] goal…]

СПИСОК ВСЕХ решений (материализуется; расходится, если отношение бесконечно — см. [run-stream]).

run-stream

[run-stream [vars] goal…]

Ленивый ПОТОК решений, потребляемый через [take].

run-weighted

[run-weighted [vars] goal…]

СПИСОК [решение вероятность] — каждый мир с его вероятностью.

s#

[s#]

[s#] -> алиас [succeed]: цель/терм miniKanren (допустимо внутри [run]).

succeed

[succeed]

цель/терм miniKanren (допустимо внутри [run]).

u#

[u#]

[u#] -> алиас [fail]: цель/терм miniKanren (допустимо внутри [run]).

unify

[unify]

цель/терм miniKanren (допустимо внутри [run]).

val

[val]

цель/терм miniKanren (допустимо внутри [run]).

without

[without]

[without] -> алиас [absent]: цель/терм miniKanren (допустимо внутри [run]).

≡

[≡]

[≡] -> алиас [unify]: цель/терм miniKanren (допустимо внутри [run]).

Prolog

facts

[facts name "fact"...]

Добавить факты в базу знаний (KB).

kb

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

Управление базами знаний.

prologExists

[prologExists name query]

1, если существует хотя бы одно решение, иначе 0.

prologFirstValue

[prologFirstValue name query var default]

Первая подстановка переменной или значение по умолчанию.

prologSolutions

[prologSolutions name query]

Список решений (каждое решение — список пар [var, value]).

prologValues

[prologValues name query var]

Список значений, связанных с переменной во всех решениях.

query

[query JSON|VVL name query...]

Выполнить запросы к KB. Возвращает JSON или список VVL.

rules

[rules name "rule"...]

Добавить правила в базу знаний (KB).

RAG

genius

[genius "question" mode?]

Запрашивает документацию VVL через RAG. mode: "hybrid" (по умолчанию) или "naive". Требует предварительного вызова :genius-learn.

ragAsk

[ragAsk kb question mode?]

Семантический поиск. Режимы: hybrid|naive|local|global (по умолчанию: hybrid).

ragAskAdvanced

[ragAskAdvanced kb question top_k? mode?]

Расширенный поиск с тонкой настройкой.

ragAskSimple

[ragAskSimple kb question top_k?]

Простой поиск без LLM (top_k=5).

ragCacheClear

[ragCacheClear]

Очищает весь кэш RAG в памяти.

ragCacheInfo

[ragCacheInfo]

Информация о кэше (загруженные экземпляры, память).

ragClear

[ragClear kb]

Удаляет всё содержимое (не удаляя саму базу).

ragClose

[ragClose kb]

Закрывает базу знаний (освобождает кэш памяти). [ragClose] без аргумента закрывает все.

ragDelete

[ragDelete kb]

Удаляет базу знаний (необратимо).

ragDocContent

[ragDocContent kb docId]

Получает содержимое документа.

ragDocs

[ragDocs kb]

Перечисляет все документы (id, статус, размер).

ragExtractJson

[ragExtractJson kb question schema?]

Структурированное извлечение в JSON.

ragInfo

[ragInfo kb]

Информация о базе знаний (размер, файлы, состояние кэша).

ragInsert

[ragInsert kb text]

Вставляет текст (возвращает 'OK').

ragInsertBatch

[ragInsertBatch kb texts]

Вставляет несколько текстов (список). Быстрее, чем несколько отдельных вызовов.

ragInsertId

[ragInsertId kb text]

Вставляет и возвращает ID (РЕКОМЕНДУЕТСЯ).

ragList

[ragList]

Перечисляет базы знаний RAG, доступные в текущем контексте.

ragRemove

[ragRemove kb text]

Удаляет по содержимому (требует ТОЧНОГО текста, предпочтительнее ragRemoveById).

ragRemoveById

[ragRemoveById kb docId]

Удаляет по ID (РЕКОМЕНДУЕТСЯ).

ragRemoveEntity

[ragRemoveEntity kb entity]

Удаляет сущность из графа.

ragRemoveRelation

[ragRemoveRelation kb src tgt]

Удаляет связь между 2 сущностями.

ragSearchContext

[ragSearchContext kb query mode?]

Возвращает только контекст (без генерации).

ragSearchDocs

[ragSearchDocs kb query]

Поиск по ключевым словам в документах (без LLM).

ragUpdate

[ragUpdate kb text]

Обновляет текст (delete+insert).

ragUpdateById

[ragUpdateById kb docId text]

Обновляет по ID.

Реестр и смарт-контракты

ed25519:keygen

[ed25519:keygen]

{private, public}: новая пара ключей Ed25519 в base64 (private = начальное значение (seed) из 32 байт). Недетерминированно: отклоняется в контракте реестра.

ed25519:public

[ed25519:public private-key]

открытый ключ в base64, соответствующий закрытому ключу.

ed25519:sign

[ed25519:sign private-key "message"]

подпись в base64 (детерминированная). Для клаузы [signed] контракта подписывается "<ledger>|<keyword>|<message>".

ed25519:verify

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

1, если подпись действительна, иначе 0.

ledger:anchor

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

закрепляет якорем голову реестра у внешнего свидетеля (служба меток времени, по умолчанию FreeTSA; Bitcoin через OpenTimestamps).

ledger:anchor-policy

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

объявляет в цепочке (подписанный блок конфигурации), как часто реестр закрепляется якорем; выполняет это планировщик сервера.

ledger:anchor-status

[ledger:anchor-status name]

политика закрепления якорем, последний якорь по каждому свидетелю, ещё не заякоренные блоки, отставание.

ledger:anchor-tick

[ledger:anchor-tick]

выполняет один проход планировщика якорей прямо сейчас; возвращает то, что было заякорено.

ledger:anchor-upgrade

[ledger:anchor-upgrade name]

получает аттестацию Bitcoin для ожидающих якорей OpenTimestamps.

ledger:anchors

[ledger:anchors name]

якоря реестра (провайдер, высота, статус, дата).

ledger:await-final

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

ждёт, пока блок (по умолчанию — голова) не станет финальным; `final` равно false, если тайм-аут (по умолчанию 30 с) истекает раньше.

ledger:block

[ledger:block name height]

блок в виде JSON.

ledger:check-anchors

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

проверяет каждый якорь по реестру (переписанная история) и по его свидетелю (подпись TSA + закреплённый корень, заголовок блока Bitcoin, ключ свидетеля).

ledger:check-checkpoint

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

на стороне свидетеля: подпись, ключ и согласованность с реестром (обнаруживает переписанную историю).

ledger:check-proof

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

проверяет [ledger:proof]: путь до корня состояния, хеш блока, подпись, отпечаток ключа.

ledger:checkpoint

[ledger:checkpoint name]

контрольная точка головы, подписанная ключом реестра, для приложений-свидетелей.

ledger:create

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

создаёт реестр (подписанный генезис-блок) в рабочем пространстве.

ledger:destroy

[ledger:destroy $self]

в методе класса реестра: объект удаляется из реестра при возврате из метода.

ledger:drop

[ledger:drop name]

полностью удаляет реестр (блоки, состояние, код). Необратимо; записывается в журнал contract.log.

ledger:exists

[ledger:exists name]

1, если реестр существует в рабочем пространстве.

ledger:finality

[ledger:finality name height?]

кворум, финальная высота, ожидающие блоки, аттестованная высота по каждой реплике; с высотой: является ли этот блок финальным.

ledger:finality-policy

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

объявляет в цепочке (подписанный блок конфигурации) реплики, на которые опирается реестр: блок становится финальным, как только k из них его аттестовали.

ledger:follow

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

на рабочем узле кластера: следовать за реестром мастера кластера. Копия доступна только для чтения; каждый блок повторно выполняется перед применением. :adopt превращает реестр, записанный здесь (бывший основной узел), в реплику.

ledger:get

[ledger:get name "slot"]

зафиксированное значение слота ("", если отсутствует).

ledger:has-object

[ledger:has-object Class key…]

1, если объект существует в своём реестре, иначе 0.

ledger:history

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

сводки блоков (вызовы, записи, хеш).

ledger:info

[ledger:info name]

высота, хеш головы, конфигурация, развёрнутые версии keyword.

ledger:init

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

начальное состояние (блок init), только до первой транзакции.

ledger:invariant

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

добавляет инвариант реестра над семействами слотов (sum(p*), count(p*), min(p*), max(p*), old(...)), проверяемый при каждой транзакции; подписанный блок конфигурации.

ledger:invariant-drop

[ledger:invariant-drop name inv-name]

удаляет инвариант реестра (подписанный блок конфигурации).

ledger:invariants

[ledger:invariants name]

инварианты реестра {имя: выражение}.

ledger:list

[ledger:list]

реестры рабочего пространства.

ledger:now

[ledger:now]

время текущего блока (в keyword реестра).

ledger:object

[ledger:object Class key…]

объект класса реестра в том виде, в каком его знает реестр (снимок; в транзакции — таким, каким его видит транзакция).

ledger:objects

[ledger:objects Class]

ключи объектов класса реестра.

ledger:promote

[ledger:promote name]

на реплике, названной в политике финальности: перехватить управление реестром, когда основной узел потерян (блок перехвата управления реестром, подписанный зарегистрированным ключом реплики). Необратимо.

ledger:proof

[ledger:proof name "slot"]

доказательство Меркла для значения слота (или его отсутствия) в подписанном состоянии головного блока; проверяется без сервера.

ledger:random

[ledger:random n]

целое число в [0, n), детерминированное (начальным значением служит хеш предыдущего блока).

ledger:replica-key

[ledger:replica-key]

узел-реплика: открытый ключ Ed25519 (base64), которым он подписывает свои аттестации; его нужно зарегистрировать в политике финальности основного узла.

ledger:replica-status

[ledger:replica-status name?]

узел-реплика: высота, отставание от основного узла, статус (new | ok | error | diverged | detached) и причина расхождения.

ledger:replicas

[ledger:replicas name]

основной узел: реплики, которые повторно выполнили реестр и подписали его голову (реплика, высота, отставание).

ledger:state

[ledger:state name "prefix"?]

зафиксированное состояние в виде JSON.

ledger:sync

[ledger:sync name?]

узел-реплика: получить, повторно выполнить и применить новые блоки основного узла прямо сейчас.

ledger:time

[ledger:time]

время текущего блока в целых секундах с начала эпохи (в keyword реестра; детерминированно).

ledger:tx

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

выполняет выражения (вызовы keyword реестра) в ОДНОЙ транзакции: всё или ничего, один блок. Известный :tx-id повторно не воспроизводится.

ledger:unfollow

[ledger:unfollow name]

узел-реплика: прекратить следовать за основным узлом; копия остаётся, только для чтения.

ledger:verify

[ledger:verify name :chain-only?]

проверяет хеши, подписи и повторно воспроизводит каждую транзакцию; {ok, error, …}.

ledger:witness

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

записывает как якорь контрподпись контрольной точки приложением-свидетелем.

oracle

[oracle "label" expression]

в keyword реестра: вычисляет недетерминированное выражение (LLM, Jev, REST, random) один раз, записывает его ответ в блок и считывает его при повторном воспроизведении.

state:del

[state:del alias]

удаляет объявленный слот состояния.

state:get

[state:get alias]

значение объявленного слота состояния в текущей транзакции.

state:has

[state:has alias]

1, если объявленный слот существует.

state:put

[state:put alias value]

записывает объявленный слот состояния (фиксируется вместе с транзакцией).

Реификация концептов

concept:approx

[concept:approx $concept "field"]

Оборачивает поле концепта в VVL_Approximation с его записанным происхождением (LLM/факт/пользователь). Распространяет достоверность через (+, -, *, /). Поле, обнаруженное LLM → "moderate"; поле, заданное пользователем → "exact".

concept:method

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

Определить пользовательский метод на концепте (переопределяет сгенерированные LLM).

concept:reset

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

Очистить кэш концептов (всех или конкретного).

concepts

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

Загружает концепты, сохранённые агентами VAILS в kb/neuro/, и открывает каждый как $<prefix><slug>. Идемпотентно: повторные запуски возвращают {status, loaded, updated, unchanged, skipped} на основе DB updated_at каждого концепта.

concepts:available

[concepts:available]

Возвращает все индексы хранилища в kb/neuro/ (загруженные или нет). Каждая запись имеет флаг "loaded".

concepts:info

[concepts:info]

Сводка сеанса. [concepts:info "/path"] → Полный индекс хранилища (+ блок сеанса, если в данный момент загружен).

concepts:list

[concepts:list]

Возвращает пути, загруженные в текущем сеансе через [concepts "/..."] (path, mode, prefix, variables, count, last_loaded_at).

Разрешение NL→VVL

resolve

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

Нейро-символьный решатель. Классифицирует подвопрос на естественном языке и направляет к нужному специалисту (вычисление, оптимизация, реляционный/Prolog запрос, индукция правил, извлечение фактов, структурированное извлечение, экспертная система). Используется внутри [agent], когда подзадача требует формулы, решателя, извлечения, фактов или проверяемого Approximation вместо написанного вручную кода.

resolve:classify

[resolve:classify "question NL"]

{family, sub_kind, confidence, reasoning} — Чистый классификатор, без диспетчеризации.

resolve:trace

[resolve:trace "question NL"]

{classification, events[], result} — То же, что resolve, но возвращает структурированный JSON трассировки.

resolveV

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

То же, что resolve, но записывает маршрутизацию и сгенерированный VVL код; используется для отладки. Псевдоним: [§§? "question"].

Онтологическая система

ontology:abstract

[ontology:abstract concept]

Пометить концепт как абстрактный (не может быть инстанцирован напрямую).

ontology:ask

[ontology:ask query]

Необработанный Prolog-запрос.

ontology:askMagic

[ontology:askMagic question]

Произвольный запрос на естественном языке к онтологии с LLM-ассистированным разрешением.

ontology:clear-rules

[ontology:clear-rules $schema]

Подробная справка для ontology:clear-rules отсутствует.

ontology:clearInstances

[ontology:clearInstances concept?]

Удалить все экземпляры концепта (или все экземпляры, если концепт не указан).

ontology:commit

[ontology:commit instance]

Записать экземпляр в базу знаний.

ontology:comprehend

[ontology:comprehend text]

LLM-извлечение концептов/отношений из текста на естественном языке.

ontology:concept-add

[ontology:concept-add name attrs?]

Добавить новый концепт в активную онтологию.

ontology:consistent

[ontology:consistent $schema]

Подробная справка для ontology:consistent отсутствует.

ontology:context

[ontology:context name?]

Переключиться на или вернуть текущий контекст онтологии.

ontology:debugLog

[ontology:debugLog on|off]

Включить/выключить подробное журналирование отладки онтологии.

ontology:define

[ontology:define name definitions...]

Определить классы и отношения.

ontology:entails

[ontology:entails $schema "goal"]

Подробная справка для ontology:entails отсутствует.

ontology:export

[ontology:export path format?]

Экспортировать активную онтологию на диск (JSON/TTL/Gherkin).

ontology:fromImage

[ontology:fromImage image]

Построить/расширить онтологию из изображения с помощью LLM-зрения.

ontology:fromText

[ontology:fromText onto class text debug?]

Извлечение с помощью ИИ.

ontology:identify

[ontology:identify entity]

Определить ближайший концепт, соответствующий заданному описанию сущности.

ontology:in-world

[ontology:in-world world body]

Вычислить тело выражений в конкретном контексте возможного мира (Zalta).

ontology:infer

[ontology:infer query]

Выполнить один шаг вывода на онтологии.

ontology:infer-fixpoint

[ontology:infer-fixpoint]

Выполнять вывод повторно до достижения фиксированной точки.

ontology:json

[ontology:json]

Сериализовать активную онтологию в JSON.

ontology:learn

[ontology:learn examples]

Обучение новым правилам/концептам на основе размеченных примеров.

ontology:listStores

[ontology:listStores]

Перечислить все именованные хранилища онтологий, загруженные в данный момент.

ontology:load

[ontology:load path]

Загрузить онтологию с диска (заменяет активное хранилище).

ontology:loadGherkin

[ontology:loadGherkin path]

Загрузить онтологию из синтаксиса Gherkin (.feature).

ontology:loadNamed

[ontology:loadNamed name path]

Загрузить онтологию в именованный слот (multi-store).

ontology:merge

[ontology:merge source target]

Объединить концепты/экземпляры из исходного хранилища в целевое.

ontology:printKB

[ontology:printKB]

Вывести все факты Prolog в консоль.

ontology:reset

[ontology:reset]

Очистить все факты.

ontology:retract-rule

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

Подробная справка для ontology:retract-rule отсутствует.

ontology:rule

[ontology:rule name body]

Определить правило вывода.

ontology:satisfies

[ontology:satisfies instance concept]

Проверить, удовлетворяет ли экземпляр предикатам концепта.

ontology:save

[ontology:save path?]

Сохранить активную онтологию на диск (путь по умолчанию = путь текущего хранилища).

ontology:saveAs

[ontology:saveAs name path]

Сохранить именованное хранилище онтологий по конкретному пути.

ontology:select

[ontology:select query]

Выбрать экземпляры, соответствующие структурному запросу.

ontology:set

[ontology:set instance attr value]

Задать атрибут для экземпляра онтологии.

ontology:storePath

[ontology:storePath name?]

Получить/задать путь на диске для именованного хранилища онтологий.

ontology:toVVL

[ontology:toVVL]

Сериализовать активную онтологию обратно в исходный код VVL.

ontology:world

[ontology:world name]

Переключиться на возможный мир (модальная логика в стиле Zalta).

Встроенные тесты

test:assert

[test:assert condition message?]

Проверяет, что условие истинно. Возвращает JSON {ok, name, detail?}. Также добавляет результат в журнал тестов текущего контекста, используемый [test:summary].

test:equals

[test:equals expected actual message?]

Проверяет структурное равенство. Числа, строки, списки и JSON в VVL сравниваются по значению. Возвращает JSON {ok, name, detail?} и записывает результат для [test:summary].

test:suite

[test:suite name body...]

Выполняет тестовые выражения и возвращает сводку. RAW builtin. Тело набора вычисляется по порядку в текущем контексте. Используйте [test:assert] и [test:equals] внутри тела.

test:summary

[test:summary]

Возвращает JSON-сводку для текущего контекста. Поля результата: total, passed, failed, ok, results.

Пакетная обработка

BATCH

[BATCH "name" "template"]

Создаёт пакет данных в формате RAG с {placeholders}.

batch-add

[batch-add $batch record]

Добавляет запись в пакет. Альтернатива: [$batch.add record]

batch-data

[batch-data $batch]

Возвращает список форматированных строк. Альтернатива: $batch.data

batch-erase

[batch-erase $batch]

Очищает все записи из пакета. Альтернатива: [$batch.erase]

Типы и математика

BINARY

[BINARY s]

Типизированное двоичное значение, закодированное в base64. Форма mold/load: <BINARY:base64>.

BOOL

[BOOL x]

Преобразует значение в булево (1/0).

DATE

[DATE s]

Проверяет формат YYYY-MM-DD и возвращает типизированное значение DATE. Форма mold/load: <DATE:YYYY-MM-DD>.

DATETIME

[DATETIME s]

Проверяет формат ISO 8601 и возвращает типизированное значение DATETIME. Форма mold/load: <DATETIME:...>.

DURATION

[DURATION s]

Проверяет длительность ISO 8601 (PT30M) или значение в секундах. Форма mold/load: <DURATION:PT30M>.

EMAIL

[EMAIL s]

Проверяет адрес электронной почты и возвращает типизированное значение EMAIL. Форма mold/load: <EMAIL:value>.

FILE

[FILE s]

Типизированный путь к файлу. Обратные косые черты нормализуются в /. Форма mold/load: <FILE:...>.

FLOAT

[FLOAT x]

Преобразует или извлекает число с плавающей точкой из строки или числа.

INT

[INT x]

Преобразует или извлекает целое число из строки или числа.

MONEY

[MONEY currency amount]

Типизированное денежное значение. Форма mold/load: <MONEY:EUR 1200>.

PATH

[PATH s]

Типизированный переносимый путь. Обратные косые черты нормализуются в /. Форма mold/load: <PATH:...>.

STRING

[STRING x]

Преобразует значение в строку.

TAG

[TAG s]

Типизированный символический тег. Допустимые символы: буквы, цифры, _ . : -. Форма mold/load: <TAG:name>.

TIME

[TIME s]

Проверяет формат HH:MM[:SS] и возвращает типизированное значение TIME. Форма mold/load: <TIME:HH:MM:SS>.

URL

[URL s]

Проверяет URL и возвращает типизированное значение URL. Форма mold/load: <URL:https://...>.

UUID

[UUID s]

Проверяет UUID и возвращает типизированное значение UUID. Форма mold/load: <UUID:...>.

abs

[abs x]

Абсолютное значение x.

average

[avg list]

Среднее арифметическое числовых элементов.

avg

[avg list]

Среднее арифметическое числовых элементов.

ceil

[ceil x]

Наименьшее целое число, большее или равное x.

convert

[convert type val]

Приводит значение к типу 'string','int','float','bool','date','json','xml','list'.

count

[count list]

Число элементов (эргономичный алиас [length]).

floor

[floor x]

Наибольшее целое число, меньшее или равное x.

max

[max list]

Наибольший элемент списка по числовому ключу.

mean

[avg list]

Среднее арифметическое числовых элементов.

min

[min list]

Наименьший элемент списка по числовому ключу.

pow

[pow base exp]

base возводится в степень exp.

range

[range start stop step]

Список целых чисел (step != 0).

reverse

[reverse list]

Обращает порядок элементов списка.

round

[round x [ndigits=0]]

x, округлённое до ndigits знаков после запятой.

sort

[sort list "desc"?|key_lambda?]

Естественная сортировка, необязательный параметр desc или ключ.

sqrt

[sqrt x]

Квадратный корень из x.

sum

[sum list]

Сумма числовых элементов. Композируется с [run-all].

UI и диалоги

_switch

[_switch x]

Вычисляет первый аргумент, если он присутствует, иначе возвращает пустую строку. Внутренний вспомогательный элемент управления потоком.

alert

[alert msg]

Показывает диалоговое окно с предупреждением (тайм-аут 60 секунд).

alertOC

[alertOC msg]

Показывает диалоговое окно OK / Отмена.

alertYN

[alertYN msg]

Показывает диалоговое окно Да / Нет.

cancelableDialog

[cancelableDialog msg fields...]

Диалоговое окно с кнопкой «Отмена».

code

[code lang instruction init]

Запрашивает ввод кода от пользователя.

dialog

[dialog msg fields...]

Диалоговое окно со сложной формой.

input

[input title default?]

Интерактивное поле ввода в терминале REPL. Используйте [inputs] для форм с несколькими полями.

inputs

[inputs title1 title2 ...]

Многопольная форма в REPL с табличным отображением (гарантированный порядок).

markdown

[markdown text]

Отображает Markdown в клиенте.

prompt

[prompt msg]

Запрашивает текстовый ввод от пользователя.

question

[question msg type]

Вопрос в виде пузыря чата.

response

[response value]

Фиксирует значение как официальный ответ задачи (ctx.task_response).

task-param

[task-param key?]

Получает параметр задачи по ключу или все параметры (JSON), если ключ не указан.

VDOM

hypervisor

[hypervisor action ...]

Управляет инфраструктурой Docker через API Portainer. Подключение: connect, connect-saved, save, disconnect, list, use Система: status, info, resources Контейнеры: containers, container, start, stop, restart, logs, exec Стеки: stacks, stack, stack-file, stack-env, stack-deploy, stack-update, stack-start, stack-stop, stack-remove Образы: images, pull, image-remove Тома: volumes, volume, networks, network Шаблоны: 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. Возвращает вызываемый объект для управления сервером VDOM. Команды: info, apps, app, types, objects, libs, actions, export, dump, sql, exec, raw, plugins... Plugin Manager (через [$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?]

Вызов API-функции на VDOM-приложении. Возвращает JSON или String.

vdomConnect

[vdomConnect url login password]

SOAP-подключение к серверу VDOM. Возвращает объект Connection.

vdomGetApp

[vdomGetApp connection appName]

Получает VDOM-приложение по имени. Возвращает объект App.

ВМ и компиляция

compile

[compile expr|file]

Компиляция VVL в подмножество ВМ на Rust. Возвращает программу с .run, .ir, .bytecode, .coverage.

vm-coverage

[vm-coverage]

JSON-сводка покрытия ВМ: нативно/хост/расширение/не поддерживается.

vm-csv-writeback

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

Применить таблицу/план записи CSV от ВМ к объекту CSV в Python и сохранить.

vm-inventory

[vm-inventory]

JSON-инвентарь среды выполнения для планирования покрытия ВМ на Rust.

vm-inventory-export

[vm-inventory-export path?]

Записать JSON-инвентарь ВМ и Markdown-отчёт покрытия.

vm-oo-store-writeback

[vm-oo-store-writeback plan]

Применить план записи хранилища ОО от ВМ к хранилищу объектов Python.

Встроенный VScript

use

[use $lib1 $lib2 ...]

Маркер библиотек для [vscript "code" [use ...]]. Каждый $lib является ссылкой [vscript "..."].

vscript

[vscript "code"]

Компилирует код VScript и возвращает вызываемую ссылку. Затем [$ref a b ...] выполняет код (аргументы с индексом 0 через args(0)/UBound(args)/argc; переменная `result` содержит возвращаемое значение). Библиотеки: [vscript "code" [use $lib1 $lib2]] внедряет определения (Function/Sub/Class/Const) из каждого $lib (сам являющегося [vscript ...]).

Голос

voice

[voice support]

Проверяет поддержку голоса [voice config "name" "client" [...options]] - Создаёт конфигурацию голоса [voice start "config" "instructions" "project"] - Запускает голосовую сессию [voice stop $session] - Останавливает голосовую сессию [voice decode type $event] - Декодирует событие (transcript, tools, audio) [voice list] - Перечисляет активные сессии [voice get "session_id"] - Получает сессию по ID

WebDriver

attr

[attr el name]

Получить атрибут.

click

[click el]

Кликнуть по элементу.

find

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

Найти элемент.

go

[go driver url]

Перейти.

jsExec

[jsExec driver script args...]

Выполнить JavaScript в браузере.

profile-info

[profile-info name]

Подробная JSON-информация о профиле: размер, размер Preferences, файлы блокировки, активность Chrome.

profile-list

[profile-list]

Список всех профилей Chrome (name, size_mb, prefs_mb, locked) в виде строк JSON.

profile-purge

[profile-purge name "force"]

Удалить весь каталог профиля. Требует "force" вторым аргументом.

profile-repair

[profile-repair name ?mode]

Исправить раздутый (>10 МБ) файл Default/Preferences. mode="keep" (по умолчанию) переименовывает в .bak; mode="clean" удаляет повреждённые Preferences и все существующие файлы Preferences.bak.*. Cookies/SSO сохраняются.

profile-unlock

[profile-unlock name]

Удалить устаревшие файлы блокировки, если ни один процесс Chrome не владеет профилем. Возвращает количество удалённых.

scrape

[scrape "url" "mode"?]

Лёгкий HTTP-запрос (без браузера). mode = "text" (по умолчанию) или "html".

scrapeLinks

[scrapeLinks url]

Отсортированный список уникальных абсолютных href (исключает самоссылки, якоря и расширения ресурсов).

screenshot

[screenshot driver path]

Сохранить экран.

switchFrame

[switchFrame driver target]

Переключиться на iframe (элемент или 'default').

text

[text el]

Получить текст элемента.

type

[type el text clear?]

Ввести текст.

wait

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

Ожидать условия.

webQuit

[webQuit driver]

Закрыть браузер.

webdriver

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

Запустить Chrome (uc) или Edge со скрытым режимом и управлением профилем.

Экосистема ProSuite

proai

[proai "question" mode?]

Запрашивает документацию ProAI Builder через RAG. Режим: "hybrid" (по умолчанию) или "naive". Требует предварительного запуска :proai-learn.

procontact

[procontact url user pass]

Клиент ProContact.

promail

[promail url user pass]

Клиент ProMail. Подкоманды: mailboxes, mails, send, fetch, archives.

proplanning

[proplanning url user pass]

Клиент ProPlanning.

prosearch

[prosearch url user pass]

Клиент ProSearch.

proshare

[proshare url user pass] или [proshare url user pass <{client: "pdv"}>] Подключение к ProShare. Возвращает клиент с командами: ФАЙЛЫ: ls, upload, uploadFile, mkdir, delete ХРАНИЛИЩЕ: storages, storage, docs, doc, view, metafields ВОРКФЛОУ: submit, submitMulti, lock, unlock ПЛАГИНЫ: macro АДМИН: users, groups, rules, updateRules, logoff Навигация: [$ps "storage" "X"] -> [$storage "ContainerY"] -> [$container "DocStorageZ"] -> $ds.docs

revolut

[revolut action ...]

API Revolut Merchant. connect: [revolut connect api_key mode?] — режим: sandbox|live (по умолчанию: 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]