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.
Optional integrations and import changes
Section titled “Optional integrations and import changes”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.
npm install @alneas/data-engine @alneas/ai-coreimport { 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.
Public / Private boundary (2026-10-17)
Section titled “Public / Private boundary (2026-10-17)”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.