Skip to content

Package separation and migration

Canonical package Responsibility
universal-storage File/object storage
data-access Record CRUD and provider adapters
ai-core Actions, proposals, generative UI, chat and agent output
task-graph Task types, graph calculation and in-memory adapter
data-engine Schema/DDL, generic utilities, Postgres graph DB/HTTP and schema integration
react-ai React bindings, depending on ai-core only (plus React peers)
business-jp Japanese business documents, legacy EDI checks, holiday data and regional defaults

AI and graph features reuse their canonical packages through optional integration entries.

Japanese engine APIs moved before the first public release. Import legal parsing, Japanese PDF presets, Japanese invoice workbook, EDI checks/factories/labels and regional date/finance/CSV defaults from business-jp. Engine no longer exports /legal-document, Japanese PDF presets/converters or invoice Excel templates. There is no optional peer workaround or engine → business-jp dependency.

Generic EDI constructors now require currency and document context explicitly; invoice calculation requires defaultTaxRate and roundTax. Generic date formatting uses the host locale unless specified; Japanese holiday data is supplied only by business-jp. Generic CSV Date cells accept dateLocale/dateOptions/dateFormatter. Generic PDF themes use sans-serif. These are intentional pre-release API changes, not transparent aliases. The private app-core/react-tools facades retain their existing paths and Japanese defaults through business-jp.

Independent foundations (storage/data-access/ai-core/task-graph) release first. react-ai follows ai-core; engine follows the foundations; business-jp follows engine. Generate real registry locks after dependencies exist. Public npm identities use @alneas/; private @dataarthub/ stays on GitHub Packages. Use exact npm versions and per-scope registry settings; production tarball URLs and public closure overrides are unnecessary. GitHub repositories remain under dataarthub. Local tarball fixtures verify development sources, not production registry URLs. The integrated docs reads local package guides from the same public monorepo checkout.

Installing @alneas/data-engine alone installs none of ai-core, task-graph, data-access, universal-storage or business-jp. The root entry, schema/DDL, CSV/encoding, dates, generic PDF/Excel, finance, EDI and calendar utilities work without those packages. Runtime dependencies such as AJV and Zod remain required.

Entry Explicitly install
root, /schema/*, /csv, /encoding, /date-utils, /pdf, /excel, /finance, /edi, /google-calendar, /notifications/messages, /notifications/slack, /notifications/google-chat No other ALNEAS package
/integrations/ai @alneas/ai-core@0.1.0
/integrations/task-graph (calculation and Postgres DB/HTTP adapters) @alneas/task-graph@0.1.0
/integrations/supabase data-access plus compatible @supabase/supabase-js
/editor, /notifications @alneas/universal-storage@0.1.0
/content (complete entry and declarations) data-access and universal-storage

These integrations use optional peers. Install the required peer explicitly before importing its entry, including for TypeScript declaration resolution; optional does not mean an integration works without its implementation. Use universal-storage’s portable/server entries directly. The engine development environment installs all peers as devDependencies for tests; this does not make them production dependencies. Integration exports preserve canonical AI/graph function and class identities. General schema validation is engine-owned and backed directly by AJV; it no longer imports ai-core’s validator. Both adapters have conformance tests, but their function identities are independent.

Terminal window
npm install @alneas/data-engine @alneas/ai-core
import { createAjvValidator } from '@alneas/data-engine';
import { ActionRegistry } from '@alneas/data-engine/integrations/ai';
// For graph composition, separately install @alneas/task-graph, then use:
// import { PostgresGraphAdapter } from '@alneas/data-engine/integrations/task-graph';

Before the first release, AI, storage and record exports and the content/editor/ notifications namespaces were removed from the engine root. Use the explicit entries above. Graph/agent exports moved from /data-access to /integrations/task-graph; proposals use @alneas/ai-core/proposal or /integrations/ai. Regional resolveSealLabel and fallback seal SVG/data URL functions moved from engine /pdf to @alneas/business-jp/pdf/stamp (also exported by business-jp /pdf). There is no engine compatibility re-export that would introduce a regional peer. Private app-core/react-tools facades retain their previous names and paths.

test:consumer verifies the engine tarball alone with npm, each optional peer in isolation, and the full integration set. It checks absent packages on disk, Node/Bun ESM/CJS execution, strict NodeNext declarations without skipLibCheck, and browser bundling of the generic root. The regional standalone consumer checks that engine/schema dependencies are absent; the integration consumer explicitly installs engine/business-jp only.

Generic notification adapters accept a NotificationMessages policy as their second constructor argument. Defaults use English labels and no implicit currency; localized approval button labels can also be supplied to client card builders. Japanese reminder text/yen presets are exported by business-jp /notifications. The generic policy/type entry /notifications/messages needs no other ALNEAS package.

Provider classes are available from /notifications/slack, /notifications/line and /notifications/google-chat. The createNotificationService(database, organizationId, messages) factory also accepts the policy as its third argument. LINE requires universal-storage for webhook signature support; Slack/Google Chat entries do not require another ALNEAS package.

AI, record and storage pass-through entries were removed before initial publication. Import @alneas/ai-core/*, @alneas/data-access/* and @alneas/universal-storage directly. React developers may use @alneas/react-ai/{action,proposal,generative-ui,ai-chat} for hooks and the corresponding ai-core contracts together. Oracle Enterprise connection adapters, Oracle-specific RLS/graph, DB drift/audit and autonomous graph agents are private premium APIs. Only the private compatibility facades retain their previous imports.

Public schema SQL generation remains in data-engine:

Public entry Included helper / scope
/schema/compiler generateRLSFromJSONSchema and generateRLSFromJSONSchemaMultiple generate PostgreSQL RLS SQL from x-rls. generateMigrationFromJSONSchema includes this SQL by default (includeRLS: true); pass false to omit it.
/schema/json-extensions (also /schema) generateJsonExtensionSql generates virtual/generated columns and validation constraint SQL, including the oracle dialect. buildJsonMergeExpression also supports Oracle SQL expressions.

These helpers return SQL strings; they do not connect to Oracle, apply policies, or provide the private Oracle Enterprise runtime. Review generated SQL against the target database version, schema and authorization requirements before applying it. Oracle-dialect SQL output alone does not certify a real Oracle deployment. Generic Postgres introspection uses /schema/server or /schema/introspection and its optional pg peer. It defaults to the public schema; pass schemaName explicitly for a different namespace. GitMarkdownAdapter uses /content/git-markdown on Node. File records use /integrations/files with data-access and universal-storage peers; Supabase schema composition uses /integrations/supabase with data-access and its SDK. The engine root still resolves without these optional peers.