Sign In

@intent-driven/core

Package Overview
Dependencies
Maintainers
1
Versions
133
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@intent-driven/core

Intent-Driven Frontend — core engine, fold, intent algebra, crystallizer, materializers (pixels/voice/agent-API/document), invariants

latest
Source
npmnpm
Version
0.119.1
Version published
Maintainers
1
Created
Source

@intent-driven/core

Ядро парадигмы Intent-Driven Frontend: движок эффектов, сворачивание мира (fold), алгебра намерений, кристаллизатор v2, четыре материализации (пиксели / голос / агент / документ), инварианты, фильтрация по роли и preapproval guard.

Часть экосистемы Intent-Driven Frontend (IDF).

Установка

npm install @intent-driven/core
# или
pnpm add @intent-driven/core

Peer dependency: react@>=18.

Использование

Базовый движок

import { useEngine, crystallizeV2 } from "@intent-driven/core";

const domain = {
  DOMAIN_ID: "todo",
  INTENTS: {
    create_task: {
      label: "Создать задачу",
      particles: { effects: [{ tau: "task", alpha: "create" }] },
    },
  },
  PROJECTIONS: {
    task_list: {
      label: "Задачи",
      archetype: "feed",
      source: "task",
      slots: { title: { field: "title" } },
    },
  },
  ONTOLOGY: {
    entities: { task: { fields: { title: { type: "string" } } } },
  },
  buildEffects: (intentId, ctx, world, drafts) => [],
};

function App() {
  const { world, exec } = useEngine(domain);
  return (
    <button onClick={() => exec("create_task", { title: "Новая задача" })}>
      + Задача
    </button>
  );
}

const artifact = crystallizeV2(
  domain.INTENTS,
  domain.PROJECTIONS,
  domain.ONTOLOGY,
  domain.DOMAIN_ID,
);

Фильтрация мира по роли (§5)

import { filterWorldForRole } from "@intent-driven/core";

const visibleWorld = filterWorldForRole(world, ontology, "customer");

Проверка инвариантов (§14)

import { checkInvariants } from "@intent-driven/core";

const violations = checkInvariants(ontology, world);
if (violations.length > 0) {
  // откат через cascadeReject
}

Материализация в документ (§1)

import { materializeAsDocument, renderDocumentHtml } from "@intent-driven/core";

const doc = materializeAsDocument(artifact, world, "catalog");
const html = renderDocumentHtml(doc);

Проверка asset-boundary (§19)

import { getAssets, validateAsset, ASSET_KINDS } from "@intent-driven/core";

const assets = getAssets(ontology);
const result = validateAsset(assetDef); // { valid, errors }

Что экспортируется

Движок

ExportОписание
useEngine(domain)Главный React-hook; возвращает { world, exec, Overlay }

Fold — мир из эффектов

ExportОписание
fold(effects)Вычисляет текущий мир из подтверждённых эффектов Φ
foldDrafts(effects, drafts)Fold с учётом session-scoped черновиков Δ
applyPresentation(world, projection)Применяет presentation-трансформации
buildTypeMap(ontology)Строит карту типов из онтологии
filterByStatus(effects, status)Фильтрует эффекты по статусу
causalSort(effects)Топологическая сортировка по причинно-следственным связям

Алгебра намерений (§12)

ExportОписание
computeAlgebra(intents, world)Вычисляет связи ▷ ⇌ ⊕ ∥ между намерениями
computeAlgebraWithEvidence(...)То же с доказательствами для witness-of-proof
normalizeEntityFromTarget(target)Нормализует entity-target для алгебры

Кристаллизатор v2

ExportОписание
crystallizeV2(intents, projections, ontology, domainId)Строит артефакт (7 архетипов)
validateArtifact(artifact)Проверяет корректность артефакта
generateEditProjections(ontology)Генерирует edit-проекции для всех сущностей
findReplaceIntents(intents, entityType)Находит replace-намерения для формы
buildFormSpec(intent, ontology)Строит спецификацию формы из намерения
registerArchetype(name, fn)Регистрирует пользовательский архетип
prependArchetype(name, fn)Добавляет архетип в начало registry
selectArchetype(artifact, projection)Выбирает подходящий архетип
getArchetypes()Возвращает все зарегистрированные архетипы

Материализации (§1)

ExportОписание
materializeAsDocument(artifact, world, projId)Document-материализация (§1 4-я)
renderDocumentHtml(doc)HTML из document-графа
materializeAsVoice(artifact, world, projId)Voice-материализация (§1 3-я)
renderVoiceSsml(voiceDoc)SSML для TTS
renderVoicePlain(voiceDoc)Plain text для отладки

Фильтрация по роли (§5)

ExportОписание
filterWorldForRole(world, ontology, roleId)Viewer-scoping с m2m через role.scope
BASE_ROLESСловарь базовых ролей: owner / viewer / agent / observer
validateBase(base)Проверяет корректность base-значения
getRolesByBase(ontology, base)Возвращает роли с заданной base
isAgentRole(role)Проверяет, является ли роль агентской
isObserverRole(role)Проверяет наблюдательную роль
isOwnerRole(role)Проверяет роль владельца
auditOntologyRoles(ontology)Аудит аннотаций ролей домена

Preapproval guard (§17)

ExportОписание
checkPreapproval(intent, ctx, world, preapprovalDef)Проверяет 5 типов предикатов для agent-лимитов

Инварианты (§14)

ExportОписание
checkInvariants(ontology, world)Проверяет schema-level ∀-свойства мира
registerKind(kind, handler)Регистрирует обработчик нового вида инварианта
KIND_HANDLERSВстроенные обработчики: role-capability, referential, transition, cardinality, aggregate

Необратимость (§23)

ExportОписание
mergeIntoContext(context, irrDef)Добавляет __irr к контексту эффекта

Asset-boundary (§19)

ExportОписание
ASSET_KINDSПеречень допустимых видов внешних активов
getAssets(ontology)Возвращает ontology.assets[]
validateAsset(asset)Валидирует декларацию актива

Прочее

ExportОписание
checkComposition(intents)Проверяет корректность composition-алгебры
checkIntegrity(world, ontology)Integrity rules (referential, state machine)
parseCondition(expr) / parseConditions(exprs)Парсер условных выражений
PARTICLE_COLORS, ALPHA_LABELS, LINK_COLORSВизуальные константы для графа намерений
SLOT_STATUS_COLORS, BOOKING_STATUS_COLORSКонстанты статусов

Связь с IDF

@intent-driven/core — канонический пакет парадигмы. Все остальные пакеты экосистемы зависят от него:

  • @intent-driven/renderer использует crystallizeV2, fold, computeAlgebra для рендера
  • @intent-driven/adapter-* получают capability surface от renderer, а не от core напрямую
  • @intent-driven/canvas-kit — автономен, peer только react
  • Server-слой (server/schema/*.cjs в основном репо) — thin re-exports из core для CJS-совместимости

Манифест IDF v1.7: docs/manifesto-v1.7.md

Версии

CHANGELOG.md

0.x — нестабильный API, breaking changes возможны без bump major. После 2–3 успешных продакшн-интеграций → 1.0.0.

Лицензия

Business Source License 1.1 (BUSL-1.1).

Коротко:

  • Некоммерческое использование, обучение, исследования — свободно.
  • Внутреннее корпоративное использование и разработка ваших собственных приложений на базе @intent-driven/core (которые вы распространяете своим конечным пользователям) — свободно.
  • Hosted SaaS / PaaS, где третьи лица строят приложения поверх @intent-driven/core без установки собственного экземпляра, требует коммерческой лицензии от Licensor до Change Date.
  • Change Date: 2030-04-15 (через 4 года от первой публикации). После этой даты пакет автоматически конвертируется в Apache License 2.0.

Полный текст: LICENSE. Вопросы по коммерческой лицензии — issue в репозитории или email указанный в author.

Клиентские пакеты экосистемы (@intent-driven/renderer, @intent-driven/adapter-*, @intent-driven/canvas-kit) распространяются под MIT, но используют @intent-driven/core как peer-dependency — их потребители также соглашаются с условиями BUSL-1.1 для @intent-driven/core до Change Date.

Keywords

idf

FAQs

Package last updated on 14 May 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts