AI Layer Strict-Safe Rerun Report
- Date: 2026-03-06
- Package:
packages/ai-layer - Duplicate pairs scanned: 21
- Current build pipeline:
dist/vianpm --prefix packages/ai-layer run build - Current repo conclusion: all source
.jssiblings are compiled duplicates and no live repo code still depends on them.
Evidence
packages/ai-layerbuild passes todist/.- No repo matches for raw
packages/ai-layer/src/*.jsor@kvary/ai-layer/src/*imports outside prior reports/tmp artifacts. apps/webstill maps@kvary/ai-layerto source.tsfiles, but not to source.jsfiles.packages/ai-layer/srccontains no internal.jsimport specifiers, so source-TS consumers do not require sibling source.jsfiles.- Package root import resolves through
dist/index.js.
Pair Classification
| TS file | JS file | Classification | Why | Delta |
|---|---|---|---|---|
| packages/ai-layer/src/assistants/positioning/answer.ts | packages/ai-layer/src/assistants/positioning/answer.js | STRICT_SAFE_NOW | sibling .ts exists; dist build is in place; no live repo consumer references the source .js; no raw filesystem reads remain; source .ts graph has no .js specifiers. | was MANUAL_VERIFY; now cleared by dist build + consumer rescan. |
| packages/ai-layer/src/assistants/positioning/systemPrompt.ts | packages/ai-layer/src/assistants/positioning/systemPrompt.js | STRICT_SAFE_NOW | sibling .ts exists; dist build is in place; no live repo consumer references the source .js; no raw filesystem reads remain; source .ts graph has no .js specifiers. | was MANUAL_VERIFY; now cleared by dist build + consumer rescan. |
| packages/ai-layer/src/code/context/repoIndex.ts | packages/ai-layer/src/code/context/repoIndex.js | STRICT_SAFE_NOW | sibling .ts exists; dist build is in place; no live repo consumer references the source .js; no raw filesystem reads remain; source .ts graph has no .js specifiers. | was MANUAL_VERIFY; now cleared by dist build + consumer rescan. |
| packages/ai-layer/src/code/context/sessionMemory.ts | packages/ai-layer/src/code/context/sessionMemory.js | STRICT_SAFE_NOW | sibling .ts exists; dist build is in place; no live repo consumer references the source .js; no raw filesystem reads remain; source .ts graph has no .js specifiers. | was MANUAL_VERIFY; now cleared by dist build + consumer rescan. |
| packages/ai-layer/src/code/helper.ts | packages/ai-layer/src/code/helper.js | STRICT_SAFE_NOW | sibling .ts exists; dist build is in place; no live repo consumer references the source .js; no raw filesystem reads remain; source .ts graph has no .js specifiers. | was MANUAL_VERIFY; now cleared by dist build + consumer rescan. |
| packages/ai-layer/src/config.ts | packages/ai-layer/src/config.js | STRICT_SAFE_NOW | sibling .ts exists; dist build is in place; no live repo consumer references the source .js; no raw filesystem reads remain; source .ts graph has no .js specifiers. | was MANUAL_VERIFY; now cleared by dist build + consumer rescan. |
| packages/ai-layer/src/gateway/aiGateway.ts | packages/ai-layer/src/gateway/aiGateway.js | STRICT_SAFE_NOW | sibling .ts exists; dist build is in place; no live repo consumer references the source .js; no raw filesystem reads remain; source .ts graph has no .js specifiers. | was MANUAL_VERIFY; now cleared by dist build + consumer rescan. |
| packages/ai-layer/src/gateway/modelRegistry.ts | packages/ai-layer/src/gateway/modelRegistry.js | STRICT_SAFE_NOW | sibling .ts exists; dist build is in place; no live repo consumer references the source .js; no raw filesystem reads remain; source .ts graph has no .js specifiers. | was MANUAL_VERIFY; now cleared by dist build + consumer rescan. |
| packages/ai-layer/src/i18n/locale.ts | packages/ai-layer/src/i18n/locale.js | STRICT_SAFE_NOW | sibling .ts exists; dist build is in place; no live repo consumer references the source .js; no raw filesystem reads remain; source .ts graph has no .js specifiers. | was MANUAL_VERIFY; now cleared by dist build + consumer rescan. |
| packages/ai-layer/src/i18n/translate.ts | packages/ai-layer/src/i18n/translate.js | STRICT_SAFE_NOW | sibling .ts exists; dist build is in place; no live repo consumer references the source .js; no raw filesystem reads remain; source .ts graph has no .js specifiers. | was MANUAL_VERIFY; now cleared by dist build + consumer rescan. |
| packages/ai-layer/src/index.ts | packages/ai-layer/src/index.js | STRICT_SAFE_NOW | sibling .ts exists; dist build is in place; no live repo consumer references the source .js; no raw filesystem reads remain; source .ts graph has no .js specifiers. | was MANUAL_VERIFY; now cleared by dist build + consumer rescan. |
| packages/ai-layer/src/intent/classifier.ts | packages/ai-layer/src/intent/classifier.js | STRICT_SAFE_NOW | sibling .ts exists; dist build is in place; no live repo consumer references the source .js; no raw filesystem reads remain; source .ts graph has no .js specifiers. | was MANUAL_VERIFY; now cleared by dist build + consumer rescan. |
| packages/ai-layer/src/observability/auditLogger.ts | packages/ai-layer/src/observability/auditLogger.js | STRICT_SAFE_NOW | sibling .ts exists; dist build is in place; no live repo consumer references the source .js; no raw filesystem reads remain; source .ts graph has no .js specifiers. | was MANUAL_VERIFY; now cleared by dist build + consumer rescan. |
| packages/ai-layer/src/rag/chunker.ts | packages/ai-layer/src/rag/chunker.js | STRICT_SAFE_NOW | sibling .ts exists; dist build is in place; no live repo consumer references the source .js; no raw filesystem reads remain; source .ts graph has no .js specifiers. | was MANUAL_VERIFY; now cleared by dist build + consumer rescan. |
| packages/ai-layer/src/rag/document.ts | packages/ai-layer/src/rag/document.js | STRICT_SAFE_NOW | sibling .ts exists; dist build is in place; no live repo consumer references the source .js; no raw filesystem reads remain; source .ts graph has no .js specifiers. | was MANUAL_VERIFY; now cleared by dist build + consumer rescan. |
| packages/ai-layer/src/rag/embedder.ts | packages/ai-layer/src/rag/embedder.js | STRICT_SAFE_NOW | sibling .ts exists; dist build is in place; no live repo consumer references the source .js; no raw filesystem reads remain; source .ts graph has no .js specifiers. | was MANUAL_VERIFY; now cleared by dist build + consumer rescan. |
| packages/ai-layer/src/rag/pipeline.ts | packages/ai-layer/src/rag/pipeline.js | STRICT_SAFE_NOW | sibling .ts exists; dist build is in place; no live repo consumer references the source .js; no raw filesystem reads remain; source .ts graph has no .js specifiers. | was MANUAL_VERIFY; now cleared by dist build + consumer rescan. |
| packages/ai-layer/src/rag/retriever.ts | packages/ai-layer/src/rag/retriever.js | STRICT_SAFE_NOW | sibling .ts exists; dist build is in place; no live repo consumer references the source .js; no raw filesystem reads remain; source .ts graph has no .js specifiers. | was MANUAL_VERIFY; now cleared by dist build + consumer rescan. |
| packages/ai-layer/src/rag/store.ts | packages/ai-layer/src/rag/store.js | STRICT_SAFE_NOW | sibling .ts exists; dist build is in place; no live repo consumer references the source .js; no raw filesystem reads remain; source .ts graph has no .js specifiers. | was MANUAL_VERIFY; now cleared by dist build + consumer rescan. |
| packages/ai-layer/src/security/redaction.ts | packages/ai-layer/src/security/redaction.js | STRICT_SAFE_NOW | sibling .ts exists; dist build is in place; no live repo consumer references the source .js; no raw filesystem reads remain; source .ts graph has no .js specifiers. | was MANUAL_VERIFY; now cleared by dist build + consumer rescan. |
| packages/ai-layer/src/types.ts | packages/ai-layer/src/types.js | STRICT_SAFE_NOW | sibling .ts exists; dist build is in place; no live repo consumer references the source .js; no raw filesystem reads remain; source .ts graph has no .js specifiers. | was MANUAL_VERIFY; now cleared by dist build + consumer rescan. |
Blocking Surface Recheck
apps/web/tsconfig.jsonstill maps@kvary/ai-layerto../../packages/ai-layer/src/index.tsandsrc/*.apps/web/next.config.jsstill aliases@kvary/ai-layerto the package root.- These are not blockers for source
.jsdeletion because they resolve source.ts/ package root, not source.js. packages/ai-layer/package.jsonstill exposes./src/*for compatibility; repo scan found no current consumers of that export.
Updated Classification Summary
STRICT_SAFE_NOW: 21STILL_MANUAL_VERIFY: 0TEST_ONLY_SAFE: 0BLOCKED_BY_RUNTIME_USAGE: 0BLOCKED_BY_FILESYSTEM_SEMANTICS: 0