Core dist build report
Date: 2026-03-06
Scope
Non-destructive dist build pipeline for packages/core.
Current structure observation
packages/coredoes not have asrc/directory.- The package surface lives at package root:
index.ts- domain folders like
governance/,ledger/,kes/,tender/
- Because of that, the build pipeline was added on top of the existing layout.
- Safe deviation from the generic template:
rootDiris".", not"src"
Package configuration added
Updated files:
packages/core/package.jsonpackages/core/tsconfig.json- root
package.json
Changes:
main->dist/index.jstypes->dist/index.d.tsbuildscript ->tsc -p tsconfig.json && node ../../scripts/fix-esm-relative-imports.mjs distdevscript ->tsx index.ts- root
build:packagesnow builds:@kvary/ai-layer@kvary/memory-layer@kvary/core
Build validation
Commands executed:
npm --prefix packages/core run buildnpm run build:packagesnpm exec -- node -e "import('./packages/core/dist/index.js')..."npm exec -- node -e "import('./packages/core/dist/governance/appendGovernanceRecord.js')..."
Results:
packages/core/dist/index.jspresentpackages/core/dist/index.d.tspresent- root dist entrypoint resolved successfully
- representative subpath dist module resolved successfully
Build output count:
packages/core/dist: 234 files
Import scan
Direct imports referencing packages/core/src/*.js or packages/core/src/*.ts:
- none detected
Files importing @kvary/core package paths:
apps/web/next.config.jsapps/web/src/app/[locale]/(portal)/kes/HashVerificationPanel.tsxapps/web/src/app/[locale]/(portal)/kes/SigningSlotPanel.tsxapps/web/src/app/[locale]/(portal)/kes/page.tsxapps/web/src/app/[locale]/[country]/(portal)/kes/HashVerificationPanel.tsxapps/web/src/app/[locale]/[country]/(portal)/kes/SigningSlotPanel.tsxapps/web/src/app/[locale]/[country]/(portal)/kes/page.tsxservices/api/src/adapters/kesInput.tsservices/api/src/auctions/engine.tsservices/api/src/auctions/engine.jsservices/api/src/auctions/ledger.tsservices/api/src/auctions/rebuildSnapshot.tsservices/api/src/auctions/snapshot.tsservices/api/src/governance/buildSubjectSnapshot.tsservices/api/src/routes/kes.tsservices/api/src/routes/kes.jsservices/api/src/state/inMemoryLedger.tsservices/api/src/tenders/engine.tsservices/api/src/tenders/engine.jsservices/api/src/tenders/ledger.tsservices/api/src/tenders/snapshot.ts
Dependency graph observations
apps/webstill aliases@kvary/coreto the workspace package root innext.config.js.services/apiconsumes many@kvary/core/*subpaths.- No exact
import "@kvary/core"root-package consumers were detected. - Current runtime behavior remains source-oriented for many subpath consumers.
- This commit adds buildability and workspace orchestration, not runtime migration.
Potential cleanup candidates
Source JS files still present under packages/core:
- count: 97
- examples:
packages/core/index.jspackages/core/governance/index.jspackages/core/governance/appendGovernanceRecord.jspackages/core/ledger/appendLedgerEntry.jspackages/core/kes/appendKesProposeVersion.jspackages/core/tender/appendTenderTransition.js
These are cleanup candidates for a later phase only after subpath runtime resolution is fully migrated away from source files.
Additional notes
- Two existing TypeScript issues in
packages/coreblocked the first build:- literal narrowing in
policy/buildPolicyFreezeRecord.ts - implicit
anyintender/verifyTenderLifecycle.ts
- literal narrowing in
- They were fixed locally without changing runtime semantics.
- No files were deleted in this commit.