@logixjs/core-ng 0.0.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -48,7 +48,7 @@ var EXEC_VM_EVIDENCE_TRACE_TYPE = "trace:exec-vm";
48
48
  var EXEC_VM_EVIDENCE_MODULE_ID = "@logixjs/core-ng";
49
49
  var EXEC_VM_EVIDENCE_INSTANCE_ID = "kernel:core-ng";
50
50
  var recordExecVmEvidence = (evidence) => import_effect.Effect.gen(function* () {
51
- const level = yield* import_effect.FiberRef.get(Logix.Debug.internal.currentDiagnosticsLevel);
51
+ const level = yield* import_effect.Effect.service(Logix.Debug.internal.currentDiagnosticsLevel).pipe(import_effect.Effect.orDie);
52
52
  if (level === "off") {
53
53
  return;
54
54
  }
@@ -160,7 +160,7 @@ var parseExecVmModeEnabled = (raw) => {
160
160
  const normalized = raw.trim().toLowerCase();
161
161
  return normalized !== "off" && normalized !== "0" && normalized !== "false" && normalized !== "disabled";
162
162
  };
163
- var coreNgExecVmModeLayer = import_effect3.Layer.unwrapEffect(
163
+ var coreNgExecVmModeLayer = import_effect3.Layer.unwrap(
164
164
  import_effect3.Effect.gen(function* () {
165
165
  const execVmMode = yield* import_effect3.Config.string("LOGIX_CORE_NG_EXEC_VM_MODE").pipe(import_effect3.Config.withDefault("on"));
166
166
  const enabled = parseExecVmModeEnabled(execVmMode);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/CoreNgLayer.ts","../src/RuntimeServices.impls.ts","../src/ExecVmEvidence.ts"],"sourcesContent":["import { Config, Effect, Layer } from 'effect'\nimport * as Logix from '@logixjs/core'\nimport { coreNgRuntimeServicesRegistry } from './RuntimeServices.impls.js'\n\nexport interface CoreNgKernelLayerOptions {\n readonly packageVersion?: string\n readonly buildId?: string\n readonly capabilities?: ReadonlyArray<string>\n}\n\nconst parseExecVmModeEnabled = (raw: string): boolean => {\n const normalized = raw.trim().toLowerCase()\n return normalized !== 'off' && normalized !== '0' && normalized !== 'false' && normalized !== 'disabled'\n}\n\nconst coreNgExecVmModeLayer = Layer.unwrapEffect(\n Effect.gen(function* () {\n const execVmMode = yield* Config.string('LOGIX_CORE_NG_EXEC_VM_MODE').pipe(Config.withDefault('on'))\n const enabled = parseExecVmModeEnabled(execVmMode)\n return Logix.InternalContracts.execVmModeLayer(enabled)\n }),\n) as Layer.Layer<any, never, never>\n\n/**\n * coreNgKernelLayer:\n * - Declares the requested kernel family for this runtime tree as core-ng.\n * - Provides the injectable runtime services registry for core-ng (no overrides enabled by default).\n */\nexport const coreNgKernelLayer = (options: CoreNgKernelLayerOptions = {}): Layer.Layer<any, never, never> =>\n Layer.mergeAll(\n coreNgExecVmModeLayer,\n Logix.Kernel.kernelLayer({\n kernelId: 'core-ng',\n packageName: '@logixjs/core-ng',\n ...(options.packageVersion ? { packageVersion: options.packageVersion } : {}),\n ...(options.buildId ? { buildId: options.buildId } : {}),\n ...(options.capabilities ? { capabilities: options.capabilities } : {}),\n }),\n Logix.Kernel.runtimeServicesRegistryLayer(coreNgRuntimeServicesRegistry),\n ) as Layer.Layer<any, never, never>\n\n/**\n * coreNgFullCutoverLayer:\n * - Explicitly enables the full cutover assembly (no fallback).\n * - Writes runtime_default overrides for all required serviceIds in the coverage matrix (implId=core-ng).\n *\n * Note: This layer is the entry point for \"claiming we can switch the default / enforcing perf evidence gates\".\n * For trial-only runs, keep using coreNgKernelLayer + choose overrides yourself.\n */\nexport const coreNgFullCutoverLayer = (options: CoreNgKernelLayerOptions = {}): Layer.Layer<any, never, never> => {\n const services: Logix.Kernel.RuntimeServicesOverrides = Object.fromEntries(\n Logix.Kernel.CutoverCoverageMatrix.requiredServiceIds.map((serviceId) => [\n serviceId,\n { implId: 'core-ng', notes: 'full-cutover: runtime_default override (SSoT=Kernel.CutoverCoverageMatrix)' },\n ]),\n )\n\n return Layer.mergeAll(\n coreNgKernelLayer(options),\n Logix.Kernel.fullCutoverGateModeLayer('fullCutover'),\n Logix.Kernel.runtimeDefaultServicesOverridesLayer(services),\n ) as Layer.Layer<any, never, never>\n}\n","import { Config, Effect } from 'effect'\nimport * as Logix from '@logixjs/core'\nimport { recordExecVmEvidence } from './ExecVmEvidence.js'\n\nexport const CORE_NG_IMPL_ID = 'core-ng' as const\n\nconst makeBuiltinAlias = (\n serviceId: string,\n options?: { readonly notes?: string },\n): Logix.Kernel.RuntimeServiceImpl<any> => ({\n implId: CORE_NG_IMPL_ID,\n implVersion: 'v0',\n make: Effect.gen(function* () {\n const builtins = yield* Logix.Kernel.RuntimeServiceBuiltinsTag\n const builtinMake = builtins.getBuiltinMake(serviceId)\n const impl = (yield* builtinMake) as any\n\n if (serviceId === 'transaction') {\n const execVmMode = yield* Config.string('LOGIX_CORE_NG_EXEC_VM_MODE').pipe(Config.withDefault('on'))\n const normalizedExecVmMode = execVmMode.trim().toLowerCase()\n const isExecVmEnabled =\n normalizedExecVmMode !== 'off' &&\n normalizedExecVmMode !== '0' &&\n normalizedExecVmMode !== 'false' &&\n normalizedExecVmMode !== 'disabled'\n\n const assemblyEvidence =\n typeof (impl as any)?.__logixGetExecVmAssemblyEvidence === 'function'\n ? (impl as any).__logixGetExecVmAssemblyEvidence()\n : undefined\n\n const convergeStaticIrDigest =\n typeof (assemblyEvidence as any)?.convergeStaticIrDigest === 'string'\n ? ((assemblyEvidence as any).convergeStaticIrDigest as string)\n : undefined\n let didRecordExecIrHash = typeof convergeStaticIrDigest === 'string' && convergeStaticIrDigest.length > 0\n\n const tryReadConvergeStaticIrDigest = (): string | undefined => {\n const evidence =\n typeof (impl as any)?.__logixGetExecVmAssemblyEvidence === 'function'\n ? (impl as any).__logixGetExecVmAssemblyEvidence()\n : undefined\n\n const digest =\n typeof (evidence as any)?.convergeStaticIrDigest === 'string'\n ? ((evidence as any).convergeStaticIrDigest as string)\n : undefined\n\n return typeof digest === 'string' && digest.length > 0 ? digest : undefined\n }\n\n yield* recordExecVmEvidence({\n version: 'v1',\n stage: 'assembly',\n hit: isExecVmEnabled,\n ...(!isExecVmEnabled\n ? {\n reasonCode: 'disabled',\n reasonDetail: `LOGIX_CORE_NG_EXEC_VM_MODE=${execVmMode}`,\n }\n : null),\n execIrVersion: convergeStaticIrDigest ? convergeStaticIrDigest.split(':')[0] : undefined,\n execIrHash: convergeStaticIrDigest,\n serviceId,\n implId: CORE_NG_IMPL_ID,\n })\n\n if (!isExecVmEnabled || didRecordExecIrHash) {\n return impl\n }\n\n const baseRunWithStateTransaction =\n typeof (impl as any).runWithStateTransaction === 'function' ? (impl as any).runWithStateTransaction : undefined\n\n if (!baseRunWithStateTransaction) {\n return impl\n }\n\n let retryBudget = 3\n\n const runFast = (origin: any, body: any) => baseRunWithStateTransaction(origin, body)\n\n let runWithStateTransaction: (origin: any, body: any) => any = (origin: any, body: any) =>\n baseRunWithStateTransaction(origin, body).pipe(\n Effect.tap(() => {\n if (didRecordExecIrHash || retryBudget <= 0) {\n runWithStateTransaction = runFast\n return Effect.void\n }\n\n retryBudget -= 1\n const digest = tryReadConvergeStaticIrDigest()\n if (!digest) {\n if (retryBudget <= 0) {\n runWithStateTransaction = runFast\n }\n return Effect.void\n }\n\n didRecordExecIrHash = true\n runWithStateTransaction = runFast\n return recordExecVmEvidence({\n version: 'v1',\n stage: 'assembly',\n hit: true,\n execIrVersion: digest.split(':')[0],\n execIrHash: digest,\n serviceId,\n implId: CORE_NG_IMPL_ID,\n })\n }),\n )\n\n return {\n ...impl,\n runWithStateTransaction: (origin: any, body: any) => runWithStateTransaction(origin, body),\n }\n }\n\n return impl\n }) as any,\n ...(options?.notes ? { notes: options.notes } : {}),\n})\n\n/**\n * coreNgRuntimeServicesRegistry:\n * - Registers only optional implementations on the core-ng side (no serialized override; only used at assembly time).\n * - Selection evidence is still produced and exported by @logixjs/core's RuntimeServicesEvidence.\n */\nexport const coreNgRuntimeServicesRegistry: Logix.Kernel.RuntimeServicesRegistry = {\n implsByServiceId: {\n txnQueue: [makeBuiltinAlias('txnQueue', { notes: 'full-cutover: alias builtin txnQueue' })],\n operationRunner: [makeBuiltinAlias('operationRunner', { notes: 'full-cutover: alias builtin operationRunner' })],\n transaction: [makeBuiltinAlias('transaction', { notes: 'full-cutover: alias builtin transaction ops' })],\n dispatch: [makeBuiltinAlias('dispatch', { notes: 'full-cutover: alias builtin dispatch ops' })],\n },\n}\n","import { Effect, FiberRef } from 'effect'\nimport * as Logix from '@logixjs/core'\n\nexport const EXEC_VM_EVIDENCE_TRACE_TYPE = 'trace:exec-vm' as const\nexport const EXEC_VM_EVIDENCE_MODULE_ID = '@logixjs/core-ng' as const\nexport const EXEC_VM_EVIDENCE_INSTANCE_ID = 'kernel:core-ng' as const\n\nexport type ExecVmMissReasonCode = 'not_implemented' | 'missing_capability' | 'disabled'\n\nexport interface ExecVmEvidence {\n readonly version: 'v1'\n readonly stage: 'assembly'\n /**\n * hit=true: the Exec VM mode actually took effect in this run (instead of implicitly falling back\n * to the conservative path).\n *\n * Note: for now this only wires the evidence fields and trace plumbing; the Exec VM implementation\n * will be completed in follow-up task 049.\n */\n readonly hit: boolean\n /** Miss reason code (stable enum; no free-form text). */\n readonly reasonCode?: ExecVmMissReasonCode\n /** Optional details; only emitted in light/full (not in off). */\n readonly reasonDetail?: string\n /** Exec IR version (AOT-ready; emitted in light/full, not in off). */\n readonly execIrVersion?: string\n /** Exec IR stable hash (AOT-ready; emitted in light/full, not in off). */\n readonly execIrHash?: string\n /** Evidence recording point (currently fixed to the transaction assembly phase). */\n readonly serviceId?: string\n /** The implId used by the current implementation (for diffing/debugging). */\n readonly implId?: string\n}\n\nexport const recordExecVmEvidence = (evidence: ExecVmEvidence): Effect.Effect<void, never, any> =>\n Effect.gen(function* () {\n const level = yield* FiberRef.get(Logix.Debug.internal.currentDiagnosticsLevel)\n if (level === 'off') {\n return\n }\n\n const data: ExecVmEvidence = (() => {\n if (level === 'full') return evidence\n return {\n ...evidence,\n reasonDetail: undefined,\n }\n })()\n\n yield* Logix.Debug.record({\n type: EXEC_VM_EVIDENCE_TRACE_TYPE,\n moduleId: EXEC_VM_EVIDENCE_MODULE_ID,\n instanceId: EXEC_VM_EVIDENCE_INSTANCE_ID,\n data: data as any,\n })\n })\n"],"mappings":"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","names":["import_effect","Logix","import_effect","Logix"]}
1
+ {"version":3,"sources":["../src/CoreNgLayer.ts","../src/RuntimeServices.impls.ts","../src/ExecVmEvidence.ts"],"sourcesContent":["import { Config, Effect, Layer } from 'effect'\nimport * as Logix from '@logixjs/core'\nimport { coreNgRuntimeServicesRegistry } from './RuntimeServices.impls.js'\n\nexport interface CoreNgKernelLayerOptions {\n readonly packageVersion?: string\n readonly buildId?: string\n readonly capabilities?: ReadonlyArray<string>\n}\n\nconst parseExecVmModeEnabled = (raw: string): boolean => {\n const normalized = raw.trim().toLowerCase()\n return normalized !== 'off' && normalized !== '0' && normalized !== 'false' && normalized !== 'disabled'\n}\n\nconst coreNgExecVmModeLayer = Layer.unwrap(\n Effect.gen(function* () {\n const execVmMode = yield* Config.string('LOGIX_CORE_NG_EXEC_VM_MODE').pipe(Config.withDefault('on'))\n const enabled = parseExecVmModeEnabled(execVmMode)\n return Logix.InternalContracts.execVmModeLayer(enabled)\n }),\n) as Layer.Layer<any, never, never>\n\n/**\n * coreNgKernelLayer:\n * - Declares the requested kernel family for this runtime tree as core-ng.\n * - Provides the injectable runtime services registry for core-ng (no overrides enabled by default).\n */\nexport const coreNgKernelLayer = (options: CoreNgKernelLayerOptions = {}): Layer.Layer<any, never, never> =>\n Layer.mergeAll(\n coreNgExecVmModeLayer,\n Logix.Kernel.kernelLayer({\n kernelId: 'core-ng',\n packageName: '@logixjs/core-ng',\n ...(options.packageVersion ? { packageVersion: options.packageVersion } : {}),\n ...(options.buildId ? { buildId: options.buildId } : {}),\n ...(options.capabilities ? { capabilities: options.capabilities } : {}),\n }),\n Logix.Kernel.runtimeServicesRegistryLayer(coreNgRuntimeServicesRegistry),\n ) as Layer.Layer<any, never, never>\n\n/**\n * coreNgFullCutoverLayer:\n * - Explicitly enables the full cutover assembly (no fallback).\n * - Writes runtime_default overrides for all required serviceIds in the coverage matrix (implId=core-ng).\n *\n * Note: This layer is the entry point for \"claiming we can switch the default / enforcing perf evidence gates\".\n * For trial-only runs, keep using coreNgKernelLayer + choose overrides yourself.\n */\nexport const coreNgFullCutoverLayer = (options: CoreNgKernelLayerOptions = {}): Layer.Layer<any, never, never> => {\n const services: Logix.Kernel.RuntimeServicesOverrides = Object.fromEntries(\n Logix.Kernel.CutoverCoverageMatrix.requiredServiceIds.map((serviceId) => [\n serviceId,\n { implId: 'core-ng', notes: 'full-cutover: runtime_default override (SSoT=Kernel.CutoverCoverageMatrix)' },\n ]),\n )\n\n return Layer.mergeAll(\n coreNgKernelLayer(options),\n Logix.Kernel.fullCutoverGateModeLayer('fullCutover'),\n Logix.Kernel.runtimeDefaultServicesOverridesLayer(services),\n ) as Layer.Layer<any, never, never>\n}\n","import { Config, Effect } from 'effect'\nimport * as Logix from '@logixjs/core'\nimport { recordExecVmEvidence } from './ExecVmEvidence.js'\n\nexport const CORE_NG_IMPL_ID = 'core-ng' as const\n\nconst makeBuiltinAlias = (\n serviceId: string,\n options?: { readonly notes?: string },\n): Logix.Kernel.RuntimeServiceImpl<any> => ({\n implId: CORE_NG_IMPL_ID,\n implVersion: 'v0',\n make: Effect.gen(function* () {\n const builtins = yield* Logix.Kernel.RuntimeServiceBuiltinsTag\n const builtinMake = builtins.getBuiltinMake(serviceId)\n const impl = (yield* builtinMake) as any\n\n if (serviceId === 'transaction') {\n const execVmMode = yield* Config.string('LOGIX_CORE_NG_EXEC_VM_MODE').pipe(Config.withDefault('on'))\n const normalizedExecVmMode = execVmMode.trim().toLowerCase()\n const isExecVmEnabled =\n normalizedExecVmMode !== 'off' &&\n normalizedExecVmMode !== '0' &&\n normalizedExecVmMode !== 'false' &&\n normalizedExecVmMode !== 'disabled'\n\n const assemblyEvidence =\n typeof (impl as any)?.__logixGetExecVmAssemblyEvidence === 'function'\n ? (impl as any).__logixGetExecVmAssemblyEvidence()\n : undefined\n\n const convergeStaticIrDigest =\n typeof (assemblyEvidence as any)?.convergeStaticIrDigest === 'string'\n ? ((assemblyEvidence as any).convergeStaticIrDigest as string)\n : undefined\n let didRecordExecIrHash = typeof convergeStaticIrDigest === 'string' && convergeStaticIrDigest.length > 0\n\n const tryReadConvergeStaticIrDigest = (): string | undefined => {\n const evidence =\n typeof (impl as any)?.__logixGetExecVmAssemblyEvidence === 'function'\n ? (impl as any).__logixGetExecVmAssemblyEvidence()\n : undefined\n\n const digest =\n typeof (evidence as any)?.convergeStaticIrDigest === 'string'\n ? ((evidence as any).convergeStaticIrDigest as string)\n : undefined\n\n return typeof digest === 'string' && digest.length > 0 ? digest : undefined\n }\n\n yield* recordExecVmEvidence({\n version: 'v1',\n stage: 'assembly',\n hit: isExecVmEnabled,\n ...(!isExecVmEnabled\n ? {\n reasonCode: 'disabled',\n reasonDetail: `LOGIX_CORE_NG_EXEC_VM_MODE=${execVmMode}`,\n }\n : null),\n execIrVersion: convergeStaticIrDigest ? convergeStaticIrDigest.split(':')[0] : undefined,\n execIrHash: convergeStaticIrDigest,\n serviceId,\n implId: CORE_NG_IMPL_ID,\n })\n\n if (!isExecVmEnabled || didRecordExecIrHash) {\n return impl\n }\n\n const baseRunWithStateTransaction =\n typeof (impl as any).runWithStateTransaction === 'function' ? (impl as any).runWithStateTransaction : undefined\n\n if (!baseRunWithStateTransaction) {\n return impl\n }\n\n let retryBudget = 3\n\n const runFast = (origin: any, body: any) => baseRunWithStateTransaction(origin, body)\n\n let runWithStateTransaction: (origin: any, body: any) => any = (origin: any, body: any) =>\n baseRunWithStateTransaction(origin, body).pipe(\n Effect.tap(() => {\n if (didRecordExecIrHash || retryBudget <= 0) {\n runWithStateTransaction = runFast\n return Effect.void\n }\n\n retryBudget -= 1\n const digest = tryReadConvergeStaticIrDigest()\n if (!digest) {\n if (retryBudget <= 0) {\n runWithStateTransaction = runFast\n }\n return Effect.void\n }\n\n didRecordExecIrHash = true\n runWithStateTransaction = runFast\n return recordExecVmEvidence({\n version: 'v1',\n stage: 'assembly',\n hit: true,\n execIrVersion: digest.split(':')[0],\n execIrHash: digest,\n serviceId,\n implId: CORE_NG_IMPL_ID,\n })\n }),\n )\n\n return {\n ...impl,\n runWithStateTransaction: (origin: any, body: any) => runWithStateTransaction(origin, body),\n }\n }\n\n return impl\n }) as any,\n ...(options?.notes ? { notes: options.notes } : {}),\n})\n\n/**\n * coreNgRuntimeServicesRegistry:\n * - Registers only optional implementations on the core-ng side (no serialized override; only used at assembly time).\n * - Selection evidence is still produced and exported by @logixjs/core's RuntimeServicesEvidence.\n */\nexport const coreNgRuntimeServicesRegistry: Logix.Kernel.RuntimeServicesRegistry = {\n implsByServiceId: {\n txnQueue: [makeBuiltinAlias('txnQueue', { notes: 'full-cutover: alias builtin txnQueue' })],\n operationRunner: [makeBuiltinAlias('operationRunner', { notes: 'full-cutover: alias builtin operationRunner' })],\n transaction: [makeBuiltinAlias('transaction', { notes: 'full-cutover: alias builtin transaction ops' })],\n dispatch: [makeBuiltinAlias('dispatch', { notes: 'full-cutover: alias builtin dispatch ops' })],\n },\n}\n","import { Effect } from 'effect'\nimport * as Logix from '@logixjs/core'\n\nexport const EXEC_VM_EVIDENCE_TRACE_TYPE = 'trace:exec-vm' as const\nexport const EXEC_VM_EVIDENCE_MODULE_ID = '@logixjs/core-ng' as const\nexport const EXEC_VM_EVIDENCE_INSTANCE_ID = 'kernel:core-ng' as const\n\nexport type ExecVmMissReasonCode = 'not_implemented' | 'missing_capability' | 'disabled'\n\nexport interface ExecVmEvidence {\n readonly version: 'v1'\n readonly stage: 'assembly'\n /**\n * hit=true: the Exec VM mode actually took effect in this run (instead of implicitly falling back\n * to the conservative path).\n *\n * Note: for now this only wires the evidence fields and trace plumbing; the Exec VM implementation\n * will be completed in follow-up task 049.\n */\n readonly hit: boolean\n /** Miss reason code (stable enum; no free-form text). */\n readonly reasonCode?: ExecVmMissReasonCode\n /** Optional details; only emitted in light/full (not in off). */\n readonly reasonDetail?: string\n /** Exec IR version (AOT-ready; emitted in light/full, not in off). */\n readonly execIrVersion?: string\n /** Exec IR stable hash (AOT-ready; emitted in light/full, not in off). */\n readonly execIrHash?: string\n /** Evidence recording point (currently fixed to the transaction assembly phase). */\n readonly serviceId?: string\n /** The implId used by the current implementation (for diffing/debugging). */\n readonly implId?: string\n}\n\nexport const recordExecVmEvidence = (evidence: ExecVmEvidence): Effect.Effect<void, never, any> =>\n Effect.gen(function* () {\n const level = yield* Effect.service(Logix.Debug.internal.currentDiagnosticsLevel).pipe(Effect.orDie)\n if (level === 'off') {\n return\n }\n\n const data: ExecVmEvidence = (() => {\n if (level === 'full') return evidence\n return {\n ...evidence,\n reasonDetail: undefined,\n }\n })()\n\n yield* Logix.Debug.record({\n type: EXEC_VM_EVIDENCE_TRACE_TYPE,\n moduleId: EXEC_VM_EVIDENCE_MODULE_ID,\n instanceId: EXEC_VM_EVIDENCE_INSTANCE_ID,\n data: data as any,\n })\n })\n"],"mappings":"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","names":["import_effect","Logix","import_effect","Logix"]}
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  coreNgFullCutoverLayer,
3
3
  coreNgKernelLayer
4
- } from "./chunk-HIDG4C7J.js";
5
- import "./chunk-EVS6KWPU.js";
6
- import "./chunk-AGDYNZ3J.js";
4
+ } from "./chunk-2EDOEK6F.js";
5
+ import "./chunk-7FUHRZH7.js";
6
+ import "./chunk-LKQW3BJU.js";
7
7
  export {
8
8
  coreNgFullCutoverLayer,
9
9
  coreNgKernelLayer
@@ -42,7 +42,7 @@ var EXEC_VM_EVIDENCE_TRACE_TYPE = "trace:exec-vm";
42
42
  var EXEC_VM_EVIDENCE_MODULE_ID = "@logixjs/core-ng";
43
43
  var EXEC_VM_EVIDENCE_INSTANCE_ID = "kernel:core-ng";
44
44
  var recordExecVmEvidence = (evidence) => import_effect.Effect.gen(function* () {
45
- const level = yield* import_effect.FiberRef.get(Logix.Debug.internal.currentDiagnosticsLevel);
45
+ const level = yield* import_effect.Effect.service(Logix.Debug.internal.currentDiagnosticsLevel).pipe(import_effect.Effect.orDie);
46
46
  if (level === "off") {
47
47
  return;
48
48
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ExecVmEvidence.ts"],"sourcesContent":["import { Effect, FiberRef } from 'effect'\nimport * as Logix from '@logixjs/core'\n\nexport const EXEC_VM_EVIDENCE_TRACE_TYPE = 'trace:exec-vm' as const\nexport const EXEC_VM_EVIDENCE_MODULE_ID = '@logixjs/core-ng' as const\nexport const EXEC_VM_EVIDENCE_INSTANCE_ID = 'kernel:core-ng' as const\n\nexport type ExecVmMissReasonCode = 'not_implemented' | 'missing_capability' | 'disabled'\n\nexport interface ExecVmEvidence {\n readonly version: 'v1'\n readonly stage: 'assembly'\n /**\n * hit=true: the Exec VM mode actually took effect in this run (instead of implicitly falling back\n * to the conservative path).\n *\n * Note: for now this only wires the evidence fields and trace plumbing; the Exec VM implementation\n * will be completed in follow-up task 049.\n */\n readonly hit: boolean\n /** Miss reason code (stable enum; no free-form text). */\n readonly reasonCode?: ExecVmMissReasonCode\n /** Optional details; only emitted in light/full (not in off). */\n readonly reasonDetail?: string\n /** Exec IR version (AOT-ready; emitted in light/full, not in off). */\n readonly execIrVersion?: string\n /** Exec IR stable hash (AOT-ready; emitted in light/full, not in off). */\n readonly execIrHash?: string\n /** Evidence recording point (currently fixed to the transaction assembly phase). */\n readonly serviceId?: string\n /** The implId used by the current implementation (for diffing/debugging). */\n readonly implId?: string\n}\n\nexport const recordExecVmEvidence = (evidence: ExecVmEvidence): Effect.Effect<void, never, any> =>\n Effect.gen(function* () {\n const level = yield* FiberRef.get(Logix.Debug.internal.currentDiagnosticsLevel)\n if (level === 'off') {\n return\n }\n\n const data: ExecVmEvidence = (() => {\n if (level === 'full') return evidence\n return {\n ...evidence,\n reasonDetail: undefined,\n }\n })()\n\n yield* Logix.Debug.record({\n type: EXEC_VM_EVIDENCE_TRACE_TYPE,\n moduleId: EXEC_VM_EVIDENCE_MODULE_ID,\n instanceId: EXEC_VM_EVIDENCE_INSTANCE_ID,\n data: data as any,\n })\n })\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAiC;AACjC,YAAuB;AAEhB,IAAM,8BAA8B;AACpC,IAAM,6BAA6B;AACnC,IAAM,+BAA+B;AA6BrC,IAAM,uBAAuB,CAAC,aACnC,qBAAO,IAAI,aAAa;AACtB,QAAM,QAAQ,OAAO,uBAAS,IAAU,YAAM,SAAS,uBAAuB;AAC9E,MAAI,UAAU,OAAO;AACnB;AAAA,EACF;AAEA,QAAM,QAAwB,MAAM;AAClC,QAAI,UAAU,OAAQ,QAAO;AAC7B,WAAO;AAAA,MACL,GAAG;AAAA,MACH,cAAc;AAAA,IAChB;AAAA,EACF,GAAG;AAEH,SAAa,YAAM,OAAO;AAAA,IACxB,MAAM;AAAA,IACN,UAAU;AAAA,IACV,YAAY;AAAA,IACZ;AAAA,EACF,CAAC;AACH,CAAC;","names":[]}
1
+ {"version":3,"sources":["../src/ExecVmEvidence.ts"],"sourcesContent":["import { Effect } from 'effect'\nimport * as Logix from '@logixjs/core'\n\nexport const EXEC_VM_EVIDENCE_TRACE_TYPE = 'trace:exec-vm' as const\nexport const EXEC_VM_EVIDENCE_MODULE_ID = '@logixjs/core-ng' as const\nexport const EXEC_VM_EVIDENCE_INSTANCE_ID = 'kernel:core-ng' as const\n\nexport type ExecVmMissReasonCode = 'not_implemented' | 'missing_capability' | 'disabled'\n\nexport interface ExecVmEvidence {\n readonly version: 'v1'\n readonly stage: 'assembly'\n /**\n * hit=true: the Exec VM mode actually took effect in this run (instead of implicitly falling back\n * to the conservative path).\n *\n * Note: for now this only wires the evidence fields and trace plumbing; the Exec VM implementation\n * will be completed in follow-up task 049.\n */\n readonly hit: boolean\n /** Miss reason code (stable enum; no free-form text). */\n readonly reasonCode?: ExecVmMissReasonCode\n /** Optional details; only emitted in light/full (not in off). */\n readonly reasonDetail?: string\n /** Exec IR version (AOT-ready; emitted in light/full, not in off). */\n readonly execIrVersion?: string\n /** Exec IR stable hash (AOT-ready; emitted in light/full, not in off). */\n readonly execIrHash?: string\n /** Evidence recording point (currently fixed to the transaction assembly phase). */\n readonly serviceId?: string\n /** The implId used by the current implementation (for diffing/debugging). */\n readonly implId?: string\n}\n\nexport const recordExecVmEvidence = (evidence: ExecVmEvidence): Effect.Effect<void, never, any> =>\n Effect.gen(function* () {\n const level = yield* Effect.service(Logix.Debug.internal.currentDiagnosticsLevel).pipe(Effect.orDie)\n if (level === 'off') {\n return\n }\n\n const data: ExecVmEvidence = (() => {\n if (level === 'full') return evidence\n return {\n ...evidence,\n reasonDetail: undefined,\n }\n })()\n\n yield* Logix.Debug.record({\n type: EXEC_VM_EVIDENCE_TRACE_TYPE,\n moduleId: EXEC_VM_EVIDENCE_MODULE_ID,\n instanceId: EXEC_VM_EVIDENCE_INSTANCE_ID,\n data: data as any,\n })\n })\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAuB;AACvB,YAAuB;AAEhB,IAAM,8BAA8B;AACpC,IAAM,6BAA6B;AACnC,IAAM,+BAA+B;AA6BrC,IAAM,uBAAuB,CAAC,aACnC,qBAAO,IAAI,aAAa;AACtB,QAAM,QAAQ,OAAO,qBAAO,QAAc,YAAM,SAAS,uBAAuB,EAAE,KAAK,qBAAO,KAAK;AACnG,MAAI,UAAU,OAAO;AACnB;AAAA,EACF;AAEA,QAAM,QAAwB,MAAM;AAClC,QAAI,UAAU,OAAQ,QAAO;AAC7B,WAAO;AAAA,MACL,GAAG;AAAA,MACH,cAAc;AAAA,IAChB;AAAA,EACF,GAAG;AAEH,SAAa,YAAM,OAAO;AAAA,IACxB,MAAM;AAAA,IACN,UAAU;AAAA,IACV,YAAY;AAAA,IACZ;AAAA,EACF,CAAC;AACH,CAAC;","names":[]}
@@ -3,7 +3,7 @@ import {
3
3
  EXEC_VM_EVIDENCE_MODULE_ID,
4
4
  EXEC_VM_EVIDENCE_TRACE_TYPE,
5
5
  recordExecVmEvidence
6
- } from "./chunk-AGDYNZ3J.js";
6
+ } from "./chunk-LKQW3BJU.js";
7
7
  export {
8
8
  EXEC_VM_EVIDENCE_INSTANCE_ID,
9
9
  EXEC_VM_EVIDENCE_MODULE_ID,
@@ -44,7 +44,7 @@ var EXEC_VM_EVIDENCE_TRACE_TYPE = "trace:exec-vm";
44
44
  var EXEC_VM_EVIDENCE_MODULE_ID = "@logixjs/core-ng";
45
45
  var EXEC_VM_EVIDENCE_INSTANCE_ID = "kernel:core-ng";
46
46
  var recordExecVmEvidence = (evidence) => import_effect.Effect.gen(function* () {
47
- const level = yield* import_effect.FiberRef.get(Logix.Debug.internal.currentDiagnosticsLevel);
47
+ const level = yield* import_effect.Effect.service(Logix.Debug.internal.currentDiagnosticsLevel).pipe(import_effect.Effect.orDie);
48
48
  if (level === "off") {
49
49
  return;
50
50
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/RuntimeServices.impls.ts","../src/ExecVmEvidence.ts"],"sourcesContent":["import { Config, Effect } from 'effect'\nimport * as Logix from '@logixjs/core'\nimport { recordExecVmEvidence } from './ExecVmEvidence.js'\n\nexport const CORE_NG_IMPL_ID = 'core-ng' as const\n\nconst makeBuiltinAlias = (\n serviceId: string,\n options?: { readonly notes?: string },\n): Logix.Kernel.RuntimeServiceImpl<any> => ({\n implId: CORE_NG_IMPL_ID,\n implVersion: 'v0',\n make: Effect.gen(function* () {\n const builtins = yield* Logix.Kernel.RuntimeServiceBuiltinsTag\n const builtinMake = builtins.getBuiltinMake(serviceId)\n const impl = (yield* builtinMake) as any\n\n if (serviceId === 'transaction') {\n const execVmMode = yield* Config.string('LOGIX_CORE_NG_EXEC_VM_MODE').pipe(Config.withDefault('on'))\n const normalizedExecVmMode = execVmMode.trim().toLowerCase()\n const isExecVmEnabled =\n normalizedExecVmMode !== 'off' &&\n normalizedExecVmMode !== '0' &&\n normalizedExecVmMode !== 'false' &&\n normalizedExecVmMode !== 'disabled'\n\n const assemblyEvidence =\n typeof (impl as any)?.__logixGetExecVmAssemblyEvidence === 'function'\n ? (impl as any).__logixGetExecVmAssemblyEvidence()\n : undefined\n\n const convergeStaticIrDigest =\n typeof (assemblyEvidence as any)?.convergeStaticIrDigest === 'string'\n ? ((assemblyEvidence as any).convergeStaticIrDigest as string)\n : undefined\n let didRecordExecIrHash = typeof convergeStaticIrDigest === 'string' && convergeStaticIrDigest.length > 0\n\n const tryReadConvergeStaticIrDigest = (): string | undefined => {\n const evidence =\n typeof (impl as any)?.__logixGetExecVmAssemblyEvidence === 'function'\n ? (impl as any).__logixGetExecVmAssemblyEvidence()\n : undefined\n\n const digest =\n typeof (evidence as any)?.convergeStaticIrDigest === 'string'\n ? ((evidence as any).convergeStaticIrDigest as string)\n : undefined\n\n return typeof digest === 'string' && digest.length > 0 ? digest : undefined\n }\n\n yield* recordExecVmEvidence({\n version: 'v1',\n stage: 'assembly',\n hit: isExecVmEnabled,\n ...(!isExecVmEnabled\n ? {\n reasonCode: 'disabled',\n reasonDetail: `LOGIX_CORE_NG_EXEC_VM_MODE=${execVmMode}`,\n }\n : null),\n execIrVersion: convergeStaticIrDigest ? convergeStaticIrDigest.split(':')[0] : undefined,\n execIrHash: convergeStaticIrDigest,\n serviceId,\n implId: CORE_NG_IMPL_ID,\n })\n\n if (!isExecVmEnabled || didRecordExecIrHash) {\n return impl\n }\n\n const baseRunWithStateTransaction =\n typeof (impl as any).runWithStateTransaction === 'function' ? (impl as any).runWithStateTransaction : undefined\n\n if (!baseRunWithStateTransaction) {\n return impl\n }\n\n let retryBudget = 3\n\n const runFast = (origin: any, body: any) => baseRunWithStateTransaction(origin, body)\n\n let runWithStateTransaction: (origin: any, body: any) => any = (origin: any, body: any) =>\n baseRunWithStateTransaction(origin, body).pipe(\n Effect.tap(() => {\n if (didRecordExecIrHash || retryBudget <= 0) {\n runWithStateTransaction = runFast\n return Effect.void\n }\n\n retryBudget -= 1\n const digest = tryReadConvergeStaticIrDigest()\n if (!digest) {\n if (retryBudget <= 0) {\n runWithStateTransaction = runFast\n }\n return Effect.void\n }\n\n didRecordExecIrHash = true\n runWithStateTransaction = runFast\n return recordExecVmEvidence({\n version: 'v1',\n stage: 'assembly',\n hit: true,\n execIrVersion: digest.split(':')[0],\n execIrHash: digest,\n serviceId,\n implId: CORE_NG_IMPL_ID,\n })\n }),\n )\n\n return {\n ...impl,\n runWithStateTransaction: (origin: any, body: any) => runWithStateTransaction(origin, body),\n }\n }\n\n return impl\n }) as any,\n ...(options?.notes ? { notes: options.notes } : {}),\n})\n\n/**\n * coreNgRuntimeServicesRegistry:\n * - Registers only optional implementations on the core-ng side (no serialized override; only used at assembly time).\n * - Selection evidence is still produced and exported by @logixjs/core's RuntimeServicesEvidence.\n */\nexport const coreNgRuntimeServicesRegistry: Logix.Kernel.RuntimeServicesRegistry = {\n implsByServiceId: {\n txnQueue: [makeBuiltinAlias('txnQueue', { notes: 'full-cutover: alias builtin txnQueue' })],\n operationRunner: [makeBuiltinAlias('operationRunner', { notes: 'full-cutover: alias builtin operationRunner' })],\n transaction: [makeBuiltinAlias('transaction', { notes: 'full-cutover: alias builtin transaction ops' })],\n dispatch: [makeBuiltinAlias('dispatch', { notes: 'full-cutover: alias builtin dispatch ops' })],\n },\n}\n","import { Effect, FiberRef } from 'effect'\nimport * as Logix from '@logixjs/core'\n\nexport const EXEC_VM_EVIDENCE_TRACE_TYPE = 'trace:exec-vm' as const\nexport const EXEC_VM_EVIDENCE_MODULE_ID = '@logixjs/core-ng' as const\nexport const EXEC_VM_EVIDENCE_INSTANCE_ID = 'kernel:core-ng' as const\n\nexport type ExecVmMissReasonCode = 'not_implemented' | 'missing_capability' | 'disabled'\n\nexport interface ExecVmEvidence {\n readonly version: 'v1'\n readonly stage: 'assembly'\n /**\n * hit=true: the Exec VM mode actually took effect in this run (instead of implicitly falling back\n * to the conservative path).\n *\n * Note: for now this only wires the evidence fields and trace plumbing; the Exec VM implementation\n * will be completed in follow-up task 049.\n */\n readonly hit: boolean\n /** Miss reason code (stable enum; no free-form text). */\n readonly reasonCode?: ExecVmMissReasonCode\n /** Optional details; only emitted in light/full (not in off). */\n readonly reasonDetail?: string\n /** Exec IR version (AOT-ready; emitted in light/full, not in off). */\n readonly execIrVersion?: string\n /** Exec IR stable hash (AOT-ready; emitted in light/full, not in off). */\n readonly execIrHash?: string\n /** Evidence recording point (currently fixed to the transaction assembly phase). */\n readonly serviceId?: string\n /** The implId used by the current implementation (for diffing/debugging). */\n readonly implId?: string\n}\n\nexport const recordExecVmEvidence = (evidence: ExecVmEvidence): Effect.Effect<void, never, any> =>\n Effect.gen(function* () {\n const level = yield* FiberRef.get(Logix.Debug.internal.currentDiagnosticsLevel)\n if (level === 'off') {\n return\n }\n\n const data: ExecVmEvidence = (() => {\n if (level === 'full') return evidence\n return {\n ...evidence,\n reasonDetail: undefined,\n }\n })()\n\n yield* Logix.Debug.record({\n type: EXEC_VM_EVIDENCE_TRACE_TYPE,\n moduleId: EXEC_VM_EVIDENCE_MODULE_ID,\n instanceId: EXEC_VM_EVIDENCE_INSTANCE_ID,\n data: data as any,\n })\n })\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAAA,iBAA+B;AAC/B,IAAAC,SAAuB;;;ACDvB,oBAAiC;AACjC,YAAuB;AAEhB,IAAM,8BAA8B;AACpC,IAAM,6BAA6B;AACnC,IAAM,+BAA+B;AA6BrC,IAAM,uBAAuB,CAAC,aACnC,qBAAO,IAAI,aAAa;AACtB,QAAM,QAAQ,OAAO,uBAAS,IAAU,YAAM,SAAS,uBAAuB;AAC9E,MAAI,UAAU,OAAO;AACnB;AAAA,EACF;AAEA,QAAM,QAAwB,MAAM;AAClC,QAAI,UAAU,OAAQ,QAAO;AAC7B,WAAO;AAAA,MACL,GAAG;AAAA,MACH,cAAc;AAAA,IAChB;AAAA,EACF,GAAG;AAEH,SAAa,YAAM,OAAO;AAAA,IACxB,MAAM;AAAA,IACN,UAAU;AAAA,IACV,YAAY;AAAA,IACZ;AAAA,EACF,CAAC;AACH,CAAC;;;ADnDI,IAAM,kBAAkB;AAE/B,IAAM,mBAAmB,CACvB,WACA,aAC0C;AAAA,EAC1C,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,MAAM,sBAAO,IAAI,aAAa;AAC5B,UAAM,WAAW,OAAa,cAAO;AACrC,UAAM,cAAc,SAAS,eAAe,SAAS;AACrD,UAAM,OAAQ,OAAO;AAErB,QAAI,cAAc,eAAe;AAC/B,YAAM,aAAa,OAAO,sBAAO,OAAO,4BAA4B,EAAE,KAAK,sBAAO,YAAY,IAAI,CAAC;AACnG,YAAM,uBAAuB,WAAW,KAAK,EAAE,YAAY;AAC3D,YAAM,kBACJ,yBAAyB,SACzB,yBAAyB,OACzB,yBAAyB,WACzB,yBAAyB;AAE3B,YAAM,mBACJ,OAAQ,MAAc,qCAAqC,aACtD,KAAa,iCAAiC,IAC/C;AAEN,YAAM,yBACJ,OAAQ,kBAA0B,2BAA2B,WACvD,iBAAyB,yBAC3B;AACN,UAAI,sBAAsB,OAAO,2BAA2B,YAAY,uBAAuB,SAAS;AAExG,YAAM,gCAAgC,MAA0B;AAC9D,cAAM,WACJ,OAAQ,MAAc,qCAAqC,aACtD,KAAa,iCAAiC,IAC/C;AAEN,cAAM,SACJ,OAAQ,UAAkB,2BAA2B,WAC/C,SAAiB,yBACnB;AAEN,eAAO,OAAO,WAAW,YAAY,OAAO,SAAS,IAAI,SAAS;AAAA,MACpE;AAEA,aAAO,qBAAqB;AAAA,QAC1B,SAAS;AAAA,QACT,OAAO;AAAA,QACP,KAAK;AAAA,QACL,GAAI,CAAC,kBACD;AAAA,UACE,YAAY;AAAA,UACZ,cAAc,8BAA8B,UAAU;AAAA,QACxD,IACA;AAAA,QACJ,eAAe,yBAAyB,uBAAuB,MAAM,GAAG,EAAE,CAAC,IAAI;AAAA,QAC/E,YAAY;AAAA,QACZ;AAAA,QACA,QAAQ;AAAA,MACV,CAAC;AAED,UAAI,CAAC,mBAAmB,qBAAqB;AAC3C,eAAO;AAAA,MACT;AAEA,YAAM,8BACJ,OAAQ,KAAa,4BAA4B,aAAc,KAAa,0BAA0B;AAExG,UAAI,CAAC,6BAA6B;AAChC,eAAO;AAAA,MACT;AAEA,UAAI,cAAc;AAElB,YAAM,UAAU,CAAC,QAAa,SAAc,4BAA4B,QAAQ,IAAI;AAEpF,UAAI,0BAA2D,CAAC,QAAa,SAC3E,4BAA4B,QAAQ,IAAI,EAAE;AAAA,QACxC,sBAAO,IAAI,MAAM;AACf,cAAI,uBAAuB,eAAe,GAAG;AAC3C,sCAA0B;AAC1B,mBAAO,sBAAO;AAAA,UAChB;AAEA,yBAAe;AACf,gBAAM,SAAS,8BAA8B;AAC7C,cAAI,CAAC,QAAQ;AACX,gBAAI,eAAe,GAAG;AACpB,wCAA0B;AAAA,YAC5B;AACA,mBAAO,sBAAO;AAAA,UAChB;AAEA,gCAAsB;AACtB,oCAA0B;AAC1B,iBAAO,qBAAqB;AAAA,YAC1B,SAAS;AAAA,YACT,OAAO;AAAA,YACP,KAAK;AAAA,YACL,eAAe,OAAO,MAAM,GAAG,EAAE,CAAC;AAAA,YAClC,YAAY;AAAA,YACZ;AAAA,YACA,QAAQ;AAAA,UACV,CAAC;AAAA,QACH,CAAC;AAAA,MACH;AAEF,aAAO;AAAA,QACL,GAAG;AAAA,QACH,yBAAyB,CAAC,QAAa,SAAc,wBAAwB,QAAQ,IAAI;AAAA,MAC3F;AAAA,IACF;AAEA,WAAO;AAAA,EACT,CAAC;AAAA,EACD,GAAI,SAAS,QAAQ,EAAE,OAAO,QAAQ,MAAM,IAAI,CAAC;AACnD;AAOO,IAAM,gCAAsE;AAAA,EACjF,kBAAkB;AAAA,IAChB,UAAU,CAAC,iBAAiB,YAAY,EAAE,OAAO,uCAAuC,CAAC,CAAC;AAAA,IAC1F,iBAAiB,CAAC,iBAAiB,mBAAmB,EAAE,OAAO,8CAA8C,CAAC,CAAC;AAAA,IAC/G,aAAa,CAAC,iBAAiB,eAAe,EAAE,OAAO,8CAA8C,CAAC,CAAC;AAAA,IACvG,UAAU,CAAC,iBAAiB,YAAY,EAAE,OAAO,2CAA2C,CAAC,CAAC;AAAA,EAChG;AACF;","names":["import_effect","Logix"]}
1
+ {"version":3,"sources":["../src/RuntimeServices.impls.ts","../src/ExecVmEvidence.ts"],"sourcesContent":["import { Config, Effect } from 'effect'\nimport * as Logix from '@logixjs/core'\nimport { recordExecVmEvidence } from './ExecVmEvidence.js'\n\nexport const CORE_NG_IMPL_ID = 'core-ng' as const\n\nconst makeBuiltinAlias = (\n serviceId: string,\n options?: { readonly notes?: string },\n): Logix.Kernel.RuntimeServiceImpl<any> => ({\n implId: CORE_NG_IMPL_ID,\n implVersion: 'v0',\n make: Effect.gen(function* () {\n const builtins = yield* Logix.Kernel.RuntimeServiceBuiltinsTag\n const builtinMake = builtins.getBuiltinMake(serviceId)\n const impl = (yield* builtinMake) as any\n\n if (serviceId === 'transaction') {\n const execVmMode = yield* Config.string('LOGIX_CORE_NG_EXEC_VM_MODE').pipe(Config.withDefault('on'))\n const normalizedExecVmMode = execVmMode.trim().toLowerCase()\n const isExecVmEnabled =\n normalizedExecVmMode !== 'off' &&\n normalizedExecVmMode !== '0' &&\n normalizedExecVmMode !== 'false' &&\n normalizedExecVmMode !== 'disabled'\n\n const assemblyEvidence =\n typeof (impl as any)?.__logixGetExecVmAssemblyEvidence === 'function'\n ? (impl as any).__logixGetExecVmAssemblyEvidence()\n : undefined\n\n const convergeStaticIrDigest =\n typeof (assemblyEvidence as any)?.convergeStaticIrDigest === 'string'\n ? ((assemblyEvidence as any).convergeStaticIrDigest as string)\n : undefined\n let didRecordExecIrHash = typeof convergeStaticIrDigest === 'string' && convergeStaticIrDigest.length > 0\n\n const tryReadConvergeStaticIrDigest = (): string | undefined => {\n const evidence =\n typeof (impl as any)?.__logixGetExecVmAssemblyEvidence === 'function'\n ? (impl as any).__logixGetExecVmAssemblyEvidence()\n : undefined\n\n const digest =\n typeof (evidence as any)?.convergeStaticIrDigest === 'string'\n ? ((evidence as any).convergeStaticIrDigest as string)\n : undefined\n\n return typeof digest === 'string' && digest.length > 0 ? digest : undefined\n }\n\n yield* recordExecVmEvidence({\n version: 'v1',\n stage: 'assembly',\n hit: isExecVmEnabled,\n ...(!isExecVmEnabled\n ? {\n reasonCode: 'disabled',\n reasonDetail: `LOGIX_CORE_NG_EXEC_VM_MODE=${execVmMode}`,\n }\n : null),\n execIrVersion: convergeStaticIrDigest ? convergeStaticIrDigest.split(':')[0] : undefined,\n execIrHash: convergeStaticIrDigest,\n serviceId,\n implId: CORE_NG_IMPL_ID,\n })\n\n if (!isExecVmEnabled || didRecordExecIrHash) {\n return impl\n }\n\n const baseRunWithStateTransaction =\n typeof (impl as any).runWithStateTransaction === 'function' ? (impl as any).runWithStateTransaction : undefined\n\n if (!baseRunWithStateTransaction) {\n return impl\n }\n\n let retryBudget = 3\n\n const runFast = (origin: any, body: any) => baseRunWithStateTransaction(origin, body)\n\n let runWithStateTransaction: (origin: any, body: any) => any = (origin: any, body: any) =>\n baseRunWithStateTransaction(origin, body).pipe(\n Effect.tap(() => {\n if (didRecordExecIrHash || retryBudget <= 0) {\n runWithStateTransaction = runFast\n return Effect.void\n }\n\n retryBudget -= 1\n const digest = tryReadConvergeStaticIrDigest()\n if (!digest) {\n if (retryBudget <= 0) {\n runWithStateTransaction = runFast\n }\n return Effect.void\n }\n\n didRecordExecIrHash = true\n runWithStateTransaction = runFast\n return recordExecVmEvidence({\n version: 'v1',\n stage: 'assembly',\n hit: true,\n execIrVersion: digest.split(':')[0],\n execIrHash: digest,\n serviceId,\n implId: CORE_NG_IMPL_ID,\n })\n }),\n )\n\n return {\n ...impl,\n runWithStateTransaction: (origin: any, body: any) => runWithStateTransaction(origin, body),\n }\n }\n\n return impl\n }) as any,\n ...(options?.notes ? { notes: options.notes } : {}),\n})\n\n/**\n * coreNgRuntimeServicesRegistry:\n * - Registers only optional implementations on the core-ng side (no serialized override; only used at assembly time).\n * - Selection evidence is still produced and exported by @logixjs/core's RuntimeServicesEvidence.\n */\nexport const coreNgRuntimeServicesRegistry: Logix.Kernel.RuntimeServicesRegistry = {\n implsByServiceId: {\n txnQueue: [makeBuiltinAlias('txnQueue', { notes: 'full-cutover: alias builtin txnQueue' })],\n operationRunner: [makeBuiltinAlias('operationRunner', { notes: 'full-cutover: alias builtin operationRunner' })],\n transaction: [makeBuiltinAlias('transaction', { notes: 'full-cutover: alias builtin transaction ops' })],\n dispatch: [makeBuiltinAlias('dispatch', { notes: 'full-cutover: alias builtin dispatch ops' })],\n },\n}\n","import { Effect } from 'effect'\nimport * as Logix from '@logixjs/core'\n\nexport const EXEC_VM_EVIDENCE_TRACE_TYPE = 'trace:exec-vm' as const\nexport const EXEC_VM_EVIDENCE_MODULE_ID = '@logixjs/core-ng' as const\nexport const EXEC_VM_EVIDENCE_INSTANCE_ID = 'kernel:core-ng' as const\n\nexport type ExecVmMissReasonCode = 'not_implemented' | 'missing_capability' | 'disabled'\n\nexport interface ExecVmEvidence {\n readonly version: 'v1'\n readonly stage: 'assembly'\n /**\n * hit=true: the Exec VM mode actually took effect in this run (instead of implicitly falling back\n * to the conservative path).\n *\n * Note: for now this only wires the evidence fields and trace plumbing; the Exec VM implementation\n * will be completed in follow-up task 049.\n */\n readonly hit: boolean\n /** Miss reason code (stable enum; no free-form text). */\n readonly reasonCode?: ExecVmMissReasonCode\n /** Optional details; only emitted in light/full (not in off). */\n readonly reasonDetail?: string\n /** Exec IR version (AOT-ready; emitted in light/full, not in off). */\n readonly execIrVersion?: string\n /** Exec IR stable hash (AOT-ready; emitted in light/full, not in off). */\n readonly execIrHash?: string\n /** Evidence recording point (currently fixed to the transaction assembly phase). */\n readonly serviceId?: string\n /** The implId used by the current implementation (for diffing/debugging). */\n readonly implId?: string\n}\n\nexport const recordExecVmEvidence = (evidence: ExecVmEvidence): Effect.Effect<void, never, any> =>\n Effect.gen(function* () {\n const level = yield* Effect.service(Logix.Debug.internal.currentDiagnosticsLevel).pipe(Effect.orDie)\n if (level === 'off') {\n return\n }\n\n const data: ExecVmEvidence = (() => {\n if (level === 'full') return evidence\n return {\n ...evidence,\n reasonDetail: undefined,\n }\n })()\n\n yield* Logix.Debug.record({\n type: EXEC_VM_EVIDENCE_TRACE_TYPE,\n moduleId: EXEC_VM_EVIDENCE_MODULE_ID,\n instanceId: EXEC_VM_EVIDENCE_INSTANCE_ID,\n data: data as any,\n })\n })\n"],"mappings":"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","names":["import_effect","Logix"]}
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  CORE_NG_IMPL_ID,
3
3
  coreNgRuntimeServicesRegistry
4
- } from "./chunk-EVS6KWPU.js";
5
- import "./chunk-AGDYNZ3J.js";
4
+ } from "./chunk-7FUHRZH7.js";
5
+ import "./chunk-LKQW3BJU.js";
6
6
  export {
7
7
  CORE_NG_IMPL_ID,
8
8
  coreNgRuntimeServicesRegistry
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  coreNgRuntimeServicesRegistry
3
- } from "./chunk-EVS6KWPU.js";
3
+ } from "./chunk-7FUHRZH7.js";
4
4
 
5
5
  // src/CoreNgLayer.ts
6
6
  import { Config, Effect, Layer } from "effect";
@@ -9,7 +9,7 @@ var parseExecVmModeEnabled = (raw) => {
9
9
  const normalized = raw.trim().toLowerCase();
10
10
  return normalized !== "off" && normalized !== "0" && normalized !== "false" && normalized !== "disabled";
11
11
  };
12
- var coreNgExecVmModeLayer = Layer.unwrapEffect(
12
+ var coreNgExecVmModeLayer = Layer.unwrap(
13
13
  Effect.gen(function* () {
14
14
  const execVmMode = yield* Config.string("LOGIX_CORE_NG_EXEC_VM_MODE").pipe(Config.withDefault("on"));
15
15
  const enabled = parseExecVmModeEnabled(execVmMode);
@@ -45,4 +45,4 @@ export {
45
45
  coreNgKernelLayer,
46
46
  coreNgFullCutoverLayer
47
47
  };
48
- //# sourceMappingURL=chunk-HIDG4C7J.js.map
48
+ //# sourceMappingURL=chunk-2EDOEK6F.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/CoreNgLayer.ts"],"sourcesContent":["import { Config, Effect, Layer } from 'effect'\nimport * as Logix from '@logixjs/core'\nimport { coreNgRuntimeServicesRegistry } from './RuntimeServices.impls.js'\n\nexport interface CoreNgKernelLayerOptions {\n readonly packageVersion?: string\n readonly buildId?: string\n readonly capabilities?: ReadonlyArray<string>\n}\n\nconst parseExecVmModeEnabled = (raw: string): boolean => {\n const normalized = raw.trim().toLowerCase()\n return normalized !== 'off' && normalized !== '0' && normalized !== 'false' && normalized !== 'disabled'\n}\n\nconst coreNgExecVmModeLayer = Layer.unwrap(\n Effect.gen(function* () {\n const execVmMode = yield* Config.string('LOGIX_CORE_NG_EXEC_VM_MODE').pipe(Config.withDefault('on'))\n const enabled = parseExecVmModeEnabled(execVmMode)\n return Logix.InternalContracts.execVmModeLayer(enabled)\n }),\n) as Layer.Layer<any, never, never>\n\n/**\n * coreNgKernelLayer:\n * - Declares the requested kernel family for this runtime tree as core-ng.\n * - Provides the injectable runtime services registry for core-ng (no overrides enabled by default).\n */\nexport const coreNgKernelLayer = (options: CoreNgKernelLayerOptions = {}): Layer.Layer<any, never, never> =>\n Layer.mergeAll(\n coreNgExecVmModeLayer,\n Logix.Kernel.kernelLayer({\n kernelId: 'core-ng',\n packageName: '@logixjs/core-ng',\n ...(options.packageVersion ? { packageVersion: options.packageVersion } : {}),\n ...(options.buildId ? { buildId: options.buildId } : {}),\n ...(options.capabilities ? { capabilities: options.capabilities } : {}),\n }),\n Logix.Kernel.runtimeServicesRegistryLayer(coreNgRuntimeServicesRegistry),\n ) as Layer.Layer<any, never, never>\n\n/**\n * coreNgFullCutoverLayer:\n * - Explicitly enables the full cutover assembly (no fallback).\n * - Writes runtime_default overrides for all required serviceIds in the coverage matrix (implId=core-ng).\n *\n * Note: This layer is the entry point for \"claiming we can switch the default / enforcing perf evidence gates\".\n * For trial-only runs, keep using coreNgKernelLayer + choose overrides yourself.\n */\nexport const coreNgFullCutoverLayer = (options: CoreNgKernelLayerOptions = {}): Layer.Layer<any, never, never> => {\n const services: Logix.Kernel.RuntimeServicesOverrides = Object.fromEntries(\n Logix.Kernel.CutoverCoverageMatrix.requiredServiceIds.map((serviceId) => [\n serviceId,\n { implId: 'core-ng', notes: 'full-cutover: runtime_default override (SSoT=Kernel.CutoverCoverageMatrix)' },\n ]),\n )\n\n return Layer.mergeAll(\n coreNgKernelLayer(options),\n Logix.Kernel.fullCutoverGateModeLayer('fullCutover'),\n Logix.Kernel.runtimeDefaultServicesOverridesLayer(services),\n ) as Layer.Layer<any, never, never>\n}\n"],"mappings":";;;;;AAAA,SAAS,QAAQ,QAAQ,aAAa;AACtC,YAAY,WAAW;AASvB,IAAM,yBAAyB,CAAC,QAAyB;AACvD,QAAM,aAAa,IAAI,KAAK,EAAE,YAAY;AAC1C,SAAO,eAAe,SAAS,eAAe,OAAO,eAAe,WAAW,eAAe;AAChG;AAEA,IAAM,wBAAwB,MAAM;AAAA,EAClC,OAAO,IAAI,aAAa;AACtB,UAAM,aAAa,OAAO,OAAO,OAAO,4BAA4B,EAAE,KAAK,OAAO,YAAY,IAAI,CAAC;AACnG,UAAM,UAAU,uBAAuB,UAAU;AACjD,WAAa,wBAAkB,gBAAgB,OAAO;AAAA,EACxD,CAAC;AACH;AAOO,IAAM,oBAAoB,CAAC,UAAoC,CAAC,MACrE,MAAM;AAAA,EACJ;AAAA,EACM,aAAO,YAAY;AAAA,IACvB,UAAU;AAAA,IACV,aAAa;AAAA,IACb,GAAI,QAAQ,iBAAiB,EAAE,gBAAgB,QAAQ,eAAe,IAAI,CAAC;AAAA,IAC3E,GAAI,QAAQ,UAAU,EAAE,SAAS,QAAQ,QAAQ,IAAI,CAAC;AAAA,IACtD,GAAI,QAAQ,eAAe,EAAE,cAAc,QAAQ,aAAa,IAAI,CAAC;AAAA,EACvE,CAAC;AAAA,EACK,aAAO,6BAA6B,6BAA6B;AACzE;AAUK,IAAM,yBAAyB,CAAC,UAAoC,CAAC,MAAsC;AAChH,QAAM,WAAkD,OAAO;AAAA,IACvD,aAAO,sBAAsB,mBAAmB,IAAI,CAAC,cAAc;AAAA,MACvE;AAAA,MACA,EAAE,QAAQ,WAAW,OAAO,6EAA6E;AAAA,IAC3G,CAAC;AAAA,EACH;AAEA,SAAO,MAAM;AAAA,IACX,kBAAkB,OAAO;AAAA,IACnB,aAAO,yBAAyB,aAAa;AAAA,IAC7C,aAAO,qCAAqC,QAAQ;AAAA,EAC5D;AACF;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  recordExecVmEvidence
3
- } from "./chunk-AGDYNZ3J.js";
3
+ } from "./chunk-LKQW3BJU.js";
4
4
 
5
5
  // src/RuntimeServices.impls.ts
6
6
  import { Config, Effect } from "effect";
@@ -96,4 +96,4 @@ export {
96
96
  CORE_NG_IMPL_ID,
97
97
  coreNgRuntimeServicesRegistry
98
98
  };
99
- //# sourceMappingURL=chunk-EVS6KWPU.js.map
99
+ //# sourceMappingURL=chunk-7FUHRZH7.js.map
@@ -1,11 +1,11 @@
1
1
  // src/ExecVmEvidence.ts
2
- import { Effect, FiberRef } from "effect";
2
+ import { Effect } from "effect";
3
3
  import * as Logix from "@logixjs/core";
4
4
  var EXEC_VM_EVIDENCE_TRACE_TYPE = "trace:exec-vm";
5
5
  var EXEC_VM_EVIDENCE_MODULE_ID = "@logixjs/core-ng";
6
6
  var EXEC_VM_EVIDENCE_INSTANCE_ID = "kernel:core-ng";
7
7
  var recordExecVmEvidence = (evidence) => Effect.gen(function* () {
8
- const level = yield* FiberRef.get(Logix.Debug.internal.currentDiagnosticsLevel);
8
+ const level = yield* Effect.service(Logix.Debug.internal.currentDiagnosticsLevel).pipe(Effect.orDie);
9
9
  if (level === "off") {
10
10
  return;
11
11
  }
@@ -30,4 +30,4 @@ export {
30
30
  EXEC_VM_EVIDENCE_INSTANCE_ID,
31
31
  recordExecVmEvidence
32
32
  };
33
- //# sourceMappingURL=chunk-AGDYNZ3J.js.map
33
+ //# sourceMappingURL=chunk-LKQW3BJU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ExecVmEvidence.ts"],"sourcesContent":["import { Effect } from 'effect'\nimport * as Logix from '@logixjs/core'\n\nexport const EXEC_VM_EVIDENCE_TRACE_TYPE = 'trace:exec-vm' as const\nexport const EXEC_VM_EVIDENCE_MODULE_ID = '@logixjs/core-ng' as const\nexport const EXEC_VM_EVIDENCE_INSTANCE_ID = 'kernel:core-ng' as const\n\nexport type ExecVmMissReasonCode = 'not_implemented' | 'missing_capability' | 'disabled'\n\nexport interface ExecVmEvidence {\n readonly version: 'v1'\n readonly stage: 'assembly'\n /**\n * hit=true: the Exec VM mode actually took effect in this run (instead of implicitly falling back\n * to the conservative path).\n *\n * Note: for now this only wires the evidence fields and trace plumbing; the Exec VM implementation\n * will be completed in follow-up task 049.\n */\n readonly hit: boolean\n /** Miss reason code (stable enum; no free-form text). */\n readonly reasonCode?: ExecVmMissReasonCode\n /** Optional details; only emitted in light/full (not in off). */\n readonly reasonDetail?: string\n /** Exec IR version (AOT-ready; emitted in light/full, not in off). */\n readonly execIrVersion?: string\n /** Exec IR stable hash (AOT-ready; emitted in light/full, not in off). */\n readonly execIrHash?: string\n /** Evidence recording point (currently fixed to the transaction assembly phase). */\n readonly serviceId?: string\n /** The implId used by the current implementation (for diffing/debugging). */\n readonly implId?: string\n}\n\nexport const recordExecVmEvidence = (evidence: ExecVmEvidence): Effect.Effect<void, never, any> =>\n Effect.gen(function* () {\n const level = yield* Effect.service(Logix.Debug.internal.currentDiagnosticsLevel).pipe(Effect.orDie)\n if (level === 'off') {\n return\n }\n\n const data: ExecVmEvidence = (() => {\n if (level === 'full') return evidence\n return {\n ...evidence,\n reasonDetail: undefined,\n }\n })()\n\n yield* Logix.Debug.record({\n type: EXEC_VM_EVIDENCE_TRACE_TYPE,\n moduleId: EXEC_VM_EVIDENCE_MODULE_ID,\n instanceId: EXEC_VM_EVIDENCE_INSTANCE_ID,\n data: data as any,\n })\n })\n"],"mappings":";AAAA,SAAS,cAAc;AACvB,YAAY,WAAW;AAEhB,IAAM,8BAA8B;AACpC,IAAM,6BAA6B;AACnC,IAAM,+BAA+B;AA6BrC,IAAM,uBAAuB,CAAC,aACnC,OAAO,IAAI,aAAa;AACtB,QAAM,QAAQ,OAAO,OAAO,QAAc,YAAM,SAAS,uBAAuB,EAAE,KAAK,OAAO,KAAK;AACnG,MAAI,UAAU,OAAO;AACnB;AAAA,EACF;AAEA,QAAM,QAAwB,MAAM;AAClC,QAAI,UAAU,OAAQ,QAAO;AAC7B,WAAO;AAAA,MACL,GAAG;AAAA,MACH,cAAc;AAAA,IAChB;AAAA,EACF,GAAG;AAEH,SAAa,YAAM,OAAO;AAAA,IACxB,MAAM;AAAA,IACN,UAAU;AAAA,IACV,YAAY;AAAA,IACZ;AAAA,EACF,CAAC;AACH,CAAC;","names":[]}
package/dist/index.cjs CHANGED
@@ -52,7 +52,7 @@ var EXEC_VM_EVIDENCE_TRACE_TYPE = "trace:exec-vm";
52
52
  var EXEC_VM_EVIDENCE_MODULE_ID = "@logixjs/core-ng";
53
53
  var EXEC_VM_EVIDENCE_INSTANCE_ID = "kernel:core-ng";
54
54
  var recordExecVmEvidence = (evidence) => import_effect.Effect.gen(function* () {
55
- const level = yield* import_effect.FiberRef.get(Logix.Debug.internal.currentDiagnosticsLevel);
55
+ const level = yield* import_effect.Effect.service(Logix.Debug.internal.currentDiagnosticsLevel).pipe(import_effect.Effect.orDie);
56
56
  if (level === "off") {
57
57
  return;
58
58
  }
@@ -164,7 +164,7 @@ var parseExecVmModeEnabled = (raw) => {
164
164
  const normalized = raw.trim().toLowerCase();
165
165
  return normalized !== "off" && normalized !== "0" && normalized !== "false" && normalized !== "disabled";
166
166
  };
167
- var coreNgExecVmModeLayer = import_effect3.Layer.unwrapEffect(
167
+ var coreNgExecVmModeLayer = import_effect3.Layer.unwrap(
168
168
  import_effect3.Effect.gen(function* () {
169
169
  const execVmMode = yield* import_effect3.Config.string("LOGIX_CORE_NG_EXEC_VM_MODE").pipe(import_effect3.Config.withDefault("on"));
170
170
  const enabled = parseExecVmModeEnabled(execVmMode);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/CoreNgLayer.ts","../src/RuntimeServices.impls.ts","../src/ExecVmEvidence.ts"],"sourcesContent":["// Public barrel for @logixjs/core-ng\n// Recommended usage:\n// import * as CoreNg from \"@logixjs/core-ng\"\n// Then CoreNg exposes namespaces like coreNgKernelLayer, etc.\n\nexport { coreNgKernelLayer, coreNgFullCutoverLayer } from './CoreNgLayer.js'\nexport type * from './CoreNgLayer.js'\n\nimport { CORE_NG_IMPL_ID, coreNgRuntimeServicesRegistry } from './RuntimeServices.impls.js'\n\nexport { CORE_NG_IMPL_ID, coreNgRuntimeServicesRegistry }\nexport type * from './RuntimeServices.impls.js'\n","import { Config, Effect, Layer } from 'effect'\nimport * as Logix from '@logixjs/core'\nimport { coreNgRuntimeServicesRegistry } from './RuntimeServices.impls.js'\n\nexport interface CoreNgKernelLayerOptions {\n readonly packageVersion?: string\n readonly buildId?: string\n readonly capabilities?: ReadonlyArray<string>\n}\n\nconst parseExecVmModeEnabled = (raw: string): boolean => {\n const normalized = raw.trim().toLowerCase()\n return normalized !== 'off' && normalized !== '0' && normalized !== 'false' && normalized !== 'disabled'\n}\n\nconst coreNgExecVmModeLayer = Layer.unwrapEffect(\n Effect.gen(function* () {\n const execVmMode = yield* Config.string('LOGIX_CORE_NG_EXEC_VM_MODE').pipe(Config.withDefault('on'))\n const enabled = parseExecVmModeEnabled(execVmMode)\n return Logix.InternalContracts.execVmModeLayer(enabled)\n }),\n) as Layer.Layer<any, never, never>\n\n/**\n * coreNgKernelLayer:\n * - Declares the requested kernel family for this runtime tree as core-ng.\n * - Provides the injectable runtime services registry for core-ng (no overrides enabled by default).\n */\nexport const coreNgKernelLayer = (options: CoreNgKernelLayerOptions = {}): Layer.Layer<any, never, never> =>\n Layer.mergeAll(\n coreNgExecVmModeLayer,\n Logix.Kernel.kernelLayer({\n kernelId: 'core-ng',\n packageName: '@logixjs/core-ng',\n ...(options.packageVersion ? { packageVersion: options.packageVersion } : {}),\n ...(options.buildId ? { buildId: options.buildId } : {}),\n ...(options.capabilities ? { capabilities: options.capabilities } : {}),\n }),\n Logix.Kernel.runtimeServicesRegistryLayer(coreNgRuntimeServicesRegistry),\n ) as Layer.Layer<any, never, never>\n\n/**\n * coreNgFullCutoverLayer:\n * - Explicitly enables the full cutover assembly (no fallback).\n * - Writes runtime_default overrides for all required serviceIds in the coverage matrix (implId=core-ng).\n *\n * Note: This layer is the entry point for \"claiming we can switch the default / enforcing perf evidence gates\".\n * For trial-only runs, keep using coreNgKernelLayer + choose overrides yourself.\n */\nexport const coreNgFullCutoverLayer = (options: CoreNgKernelLayerOptions = {}): Layer.Layer<any, never, never> => {\n const services: Logix.Kernel.RuntimeServicesOverrides = Object.fromEntries(\n Logix.Kernel.CutoverCoverageMatrix.requiredServiceIds.map((serviceId) => [\n serviceId,\n { implId: 'core-ng', notes: 'full-cutover: runtime_default override (SSoT=Kernel.CutoverCoverageMatrix)' },\n ]),\n )\n\n return Layer.mergeAll(\n coreNgKernelLayer(options),\n Logix.Kernel.fullCutoverGateModeLayer('fullCutover'),\n Logix.Kernel.runtimeDefaultServicesOverridesLayer(services),\n ) as Layer.Layer<any, never, never>\n}\n","import { Config, Effect } from 'effect'\nimport * as Logix from '@logixjs/core'\nimport { recordExecVmEvidence } from './ExecVmEvidence.js'\n\nexport const CORE_NG_IMPL_ID = 'core-ng' as const\n\nconst makeBuiltinAlias = (\n serviceId: string,\n options?: { readonly notes?: string },\n): Logix.Kernel.RuntimeServiceImpl<any> => ({\n implId: CORE_NG_IMPL_ID,\n implVersion: 'v0',\n make: Effect.gen(function* () {\n const builtins = yield* Logix.Kernel.RuntimeServiceBuiltinsTag\n const builtinMake = builtins.getBuiltinMake(serviceId)\n const impl = (yield* builtinMake) as any\n\n if (serviceId === 'transaction') {\n const execVmMode = yield* Config.string('LOGIX_CORE_NG_EXEC_VM_MODE').pipe(Config.withDefault('on'))\n const normalizedExecVmMode = execVmMode.trim().toLowerCase()\n const isExecVmEnabled =\n normalizedExecVmMode !== 'off' &&\n normalizedExecVmMode !== '0' &&\n normalizedExecVmMode !== 'false' &&\n normalizedExecVmMode !== 'disabled'\n\n const assemblyEvidence =\n typeof (impl as any)?.__logixGetExecVmAssemblyEvidence === 'function'\n ? (impl as any).__logixGetExecVmAssemblyEvidence()\n : undefined\n\n const convergeStaticIrDigest =\n typeof (assemblyEvidence as any)?.convergeStaticIrDigest === 'string'\n ? ((assemblyEvidence as any).convergeStaticIrDigest as string)\n : undefined\n let didRecordExecIrHash = typeof convergeStaticIrDigest === 'string' && convergeStaticIrDigest.length > 0\n\n const tryReadConvergeStaticIrDigest = (): string | undefined => {\n const evidence =\n typeof (impl as any)?.__logixGetExecVmAssemblyEvidence === 'function'\n ? (impl as any).__logixGetExecVmAssemblyEvidence()\n : undefined\n\n const digest =\n typeof (evidence as any)?.convergeStaticIrDigest === 'string'\n ? ((evidence as any).convergeStaticIrDigest as string)\n : undefined\n\n return typeof digest === 'string' && digest.length > 0 ? digest : undefined\n }\n\n yield* recordExecVmEvidence({\n version: 'v1',\n stage: 'assembly',\n hit: isExecVmEnabled,\n ...(!isExecVmEnabled\n ? {\n reasonCode: 'disabled',\n reasonDetail: `LOGIX_CORE_NG_EXEC_VM_MODE=${execVmMode}`,\n }\n : null),\n execIrVersion: convergeStaticIrDigest ? convergeStaticIrDigest.split(':')[0] : undefined,\n execIrHash: convergeStaticIrDigest,\n serviceId,\n implId: CORE_NG_IMPL_ID,\n })\n\n if (!isExecVmEnabled || didRecordExecIrHash) {\n return impl\n }\n\n const baseRunWithStateTransaction =\n typeof (impl as any).runWithStateTransaction === 'function' ? (impl as any).runWithStateTransaction : undefined\n\n if (!baseRunWithStateTransaction) {\n return impl\n }\n\n let retryBudget = 3\n\n const runFast = (origin: any, body: any) => baseRunWithStateTransaction(origin, body)\n\n let runWithStateTransaction: (origin: any, body: any) => any = (origin: any, body: any) =>\n baseRunWithStateTransaction(origin, body).pipe(\n Effect.tap(() => {\n if (didRecordExecIrHash || retryBudget <= 0) {\n runWithStateTransaction = runFast\n return Effect.void\n }\n\n retryBudget -= 1\n const digest = tryReadConvergeStaticIrDigest()\n if (!digest) {\n if (retryBudget <= 0) {\n runWithStateTransaction = runFast\n }\n return Effect.void\n }\n\n didRecordExecIrHash = true\n runWithStateTransaction = runFast\n return recordExecVmEvidence({\n version: 'v1',\n stage: 'assembly',\n hit: true,\n execIrVersion: digest.split(':')[0],\n execIrHash: digest,\n serviceId,\n implId: CORE_NG_IMPL_ID,\n })\n }),\n )\n\n return {\n ...impl,\n runWithStateTransaction: (origin: any, body: any) => runWithStateTransaction(origin, body),\n }\n }\n\n return impl\n }) as any,\n ...(options?.notes ? { notes: options.notes } : {}),\n})\n\n/**\n * coreNgRuntimeServicesRegistry:\n * - Registers only optional implementations on the core-ng side (no serialized override; only used at assembly time).\n * - Selection evidence is still produced and exported by @logixjs/core's RuntimeServicesEvidence.\n */\nexport const coreNgRuntimeServicesRegistry: Logix.Kernel.RuntimeServicesRegistry = {\n implsByServiceId: {\n txnQueue: [makeBuiltinAlias('txnQueue', { notes: 'full-cutover: alias builtin txnQueue' })],\n operationRunner: [makeBuiltinAlias('operationRunner', { notes: 'full-cutover: alias builtin operationRunner' })],\n transaction: [makeBuiltinAlias('transaction', { notes: 'full-cutover: alias builtin transaction ops' })],\n dispatch: [makeBuiltinAlias('dispatch', { notes: 'full-cutover: alias builtin dispatch ops' })],\n },\n}\n","import { Effect, FiberRef } from 'effect'\nimport * as Logix from '@logixjs/core'\n\nexport const EXEC_VM_EVIDENCE_TRACE_TYPE = 'trace:exec-vm' as const\nexport const EXEC_VM_EVIDENCE_MODULE_ID = '@logixjs/core-ng' as const\nexport const EXEC_VM_EVIDENCE_INSTANCE_ID = 'kernel:core-ng' as const\n\nexport type ExecVmMissReasonCode = 'not_implemented' | 'missing_capability' | 'disabled'\n\nexport interface ExecVmEvidence {\n readonly version: 'v1'\n readonly stage: 'assembly'\n /**\n * hit=true: the Exec VM mode actually took effect in this run (instead of implicitly falling back\n * to the conservative path).\n *\n * Note: for now this only wires the evidence fields and trace plumbing; the Exec VM implementation\n * will be completed in follow-up task 049.\n */\n readonly hit: boolean\n /** Miss reason code (stable enum; no free-form text). */\n readonly reasonCode?: ExecVmMissReasonCode\n /** Optional details; only emitted in light/full (not in off). */\n readonly reasonDetail?: string\n /** Exec IR version (AOT-ready; emitted in light/full, not in off). */\n readonly execIrVersion?: string\n /** Exec IR stable hash (AOT-ready; emitted in light/full, not in off). */\n readonly execIrHash?: string\n /** Evidence recording point (currently fixed to the transaction assembly phase). */\n readonly serviceId?: string\n /** The implId used by the current implementation (for diffing/debugging). */\n readonly implId?: string\n}\n\nexport const recordExecVmEvidence = (evidence: ExecVmEvidence): Effect.Effect<void, never, any> =>\n Effect.gen(function* () {\n const level = yield* FiberRef.get(Logix.Debug.internal.currentDiagnosticsLevel)\n if (level === 'off') {\n return\n }\n\n const data: ExecVmEvidence = (() => {\n if (level === 'full') return evidence\n return {\n ...evidence,\n reasonDetail: undefined,\n }\n })()\n\n yield* Logix.Debug.record({\n type: EXEC_VM_EVIDENCE_TRACE_TYPE,\n moduleId: EXEC_VM_EVIDENCE_MODULE_ID,\n instanceId: EXEC_VM_EVIDENCE_INSTANCE_ID,\n data: data as any,\n })\n })\n"],"mappings":"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","names":["import_effect","Logix","import_effect","Logix"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/CoreNgLayer.ts","../src/RuntimeServices.impls.ts","../src/ExecVmEvidence.ts"],"sourcesContent":["// Public barrel for @logixjs/core-ng\n// Recommended usage:\n// import * as CoreNg from \"@logixjs/core-ng\"\n// Then CoreNg exposes namespaces like coreNgKernelLayer, etc.\n\nexport { coreNgKernelLayer, coreNgFullCutoverLayer } from './CoreNgLayer.js'\nexport type * from './CoreNgLayer.js'\n\nimport { CORE_NG_IMPL_ID, coreNgRuntimeServicesRegistry } from './RuntimeServices.impls.js'\n\nexport { CORE_NG_IMPL_ID, coreNgRuntimeServicesRegistry }\nexport type * from './RuntimeServices.impls.js'\n","import { Config, Effect, Layer } from 'effect'\nimport * as Logix from '@logixjs/core'\nimport { coreNgRuntimeServicesRegistry } from './RuntimeServices.impls.js'\n\nexport interface CoreNgKernelLayerOptions {\n readonly packageVersion?: string\n readonly buildId?: string\n readonly capabilities?: ReadonlyArray<string>\n}\n\nconst parseExecVmModeEnabled = (raw: string): boolean => {\n const normalized = raw.trim().toLowerCase()\n return normalized !== 'off' && normalized !== '0' && normalized !== 'false' && normalized !== 'disabled'\n}\n\nconst coreNgExecVmModeLayer = Layer.unwrap(\n Effect.gen(function* () {\n const execVmMode = yield* Config.string('LOGIX_CORE_NG_EXEC_VM_MODE').pipe(Config.withDefault('on'))\n const enabled = parseExecVmModeEnabled(execVmMode)\n return Logix.InternalContracts.execVmModeLayer(enabled)\n }),\n) as Layer.Layer<any, never, never>\n\n/**\n * coreNgKernelLayer:\n * - Declares the requested kernel family for this runtime tree as core-ng.\n * - Provides the injectable runtime services registry for core-ng (no overrides enabled by default).\n */\nexport const coreNgKernelLayer = (options: CoreNgKernelLayerOptions = {}): Layer.Layer<any, never, never> =>\n Layer.mergeAll(\n coreNgExecVmModeLayer,\n Logix.Kernel.kernelLayer({\n kernelId: 'core-ng',\n packageName: '@logixjs/core-ng',\n ...(options.packageVersion ? { packageVersion: options.packageVersion } : {}),\n ...(options.buildId ? { buildId: options.buildId } : {}),\n ...(options.capabilities ? { capabilities: options.capabilities } : {}),\n }),\n Logix.Kernel.runtimeServicesRegistryLayer(coreNgRuntimeServicesRegistry),\n ) as Layer.Layer<any, never, never>\n\n/**\n * coreNgFullCutoverLayer:\n * - Explicitly enables the full cutover assembly (no fallback).\n * - Writes runtime_default overrides for all required serviceIds in the coverage matrix (implId=core-ng).\n *\n * Note: This layer is the entry point for \"claiming we can switch the default / enforcing perf evidence gates\".\n * For trial-only runs, keep using coreNgKernelLayer + choose overrides yourself.\n */\nexport const coreNgFullCutoverLayer = (options: CoreNgKernelLayerOptions = {}): Layer.Layer<any, never, never> => {\n const services: Logix.Kernel.RuntimeServicesOverrides = Object.fromEntries(\n Logix.Kernel.CutoverCoverageMatrix.requiredServiceIds.map((serviceId) => [\n serviceId,\n { implId: 'core-ng', notes: 'full-cutover: runtime_default override (SSoT=Kernel.CutoverCoverageMatrix)' },\n ]),\n )\n\n return Layer.mergeAll(\n coreNgKernelLayer(options),\n Logix.Kernel.fullCutoverGateModeLayer('fullCutover'),\n Logix.Kernel.runtimeDefaultServicesOverridesLayer(services),\n ) as Layer.Layer<any, never, never>\n}\n","import { Config, Effect } from 'effect'\nimport * as Logix from '@logixjs/core'\nimport { recordExecVmEvidence } from './ExecVmEvidence.js'\n\nexport const CORE_NG_IMPL_ID = 'core-ng' as const\n\nconst makeBuiltinAlias = (\n serviceId: string,\n options?: { readonly notes?: string },\n): Logix.Kernel.RuntimeServiceImpl<any> => ({\n implId: CORE_NG_IMPL_ID,\n implVersion: 'v0',\n make: Effect.gen(function* () {\n const builtins = yield* Logix.Kernel.RuntimeServiceBuiltinsTag\n const builtinMake = builtins.getBuiltinMake(serviceId)\n const impl = (yield* builtinMake) as any\n\n if (serviceId === 'transaction') {\n const execVmMode = yield* Config.string('LOGIX_CORE_NG_EXEC_VM_MODE').pipe(Config.withDefault('on'))\n const normalizedExecVmMode = execVmMode.trim().toLowerCase()\n const isExecVmEnabled =\n normalizedExecVmMode !== 'off' &&\n normalizedExecVmMode !== '0' &&\n normalizedExecVmMode !== 'false' &&\n normalizedExecVmMode !== 'disabled'\n\n const assemblyEvidence =\n typeof (impl as any)?.__logixGetExecVmAssemblyEvidence === 'function'\n ? (impl as any).__logixGetExecVmAssemblyEvidence()\n : undefined\n\n const convergeStaticIrDigest =\n typeof (assemblyEvidence as any)?.convergeStaticIrDigest === 'string'\n ? ((assemblyEvidence as any).convergeStaticIrDigest as string)\n : undefined\n let didRecordExecIrHash = typeof convergeStaticIrDigest === 'string' && convergeStaticIrDigest.length > 0\n\n const tryReadConvergeStaticIrDigest = (): string | undefined => {\n const evidence =\n typeof (impl as any)?.__logixGetExecVmAssemblyEvidence === 'function'\n ? (impl as any).__logixGetExecVmAssemblyEvidence()\n : undefined\n\n const digest =\n typeof (evidence as any)?.convergeStaticIrDigest === 'string'\n ? ((evidence as any).convergeStaticIrDigest as string)\n : undefined\n\n return typeof digest === 'string' && digest.length > 0 ? digest : undefined\n }\n\n yield* recordExecVmEvidence({\n version: 'v1',\n stage: 'assembly',\n hit: isExecVmEnabled,\n ...(!isExecVmEnabled\n ? {\n reasonCode: 'disabled',\n reasonDetail: `LOGIX_CORE_NG_EXEC_VM_MODE=${execVmMode}`,\n }\n : null),\n execIrVersion: convergeStaticIrDigest ? convergeStaticIrDigest.split(':')[0] : undefined,\n execIrHash: convergeStaticIrDigest,\n serviceId,\n implId: CORE_NG_IMPL_ID,\n })\n\n if (!isExecVmEnabled || didRecordExecIrHash) {\n return impl\n }\n\n const baseRunWithStateTransaction =\n typeof (impl as any).runWithStateTransaction === 'function' ? (impl as any).runWithStateTransaction : undefined\n\n if (!baseRunWithStateTransaction) {\n return impl\n }\n\n let retryBudget = 3\n\n const runFast = (origin: any, body: any) => baseRunWithStateTransaction(origin, body)\n\n let runWithStateTransaction: (origin: any, body: any) => any = (origin: any, body: any) =>\n baseRunWithStateTransaction(origin, body).pipe(\n Effect.tap(() => {\n if (didRecordExecIrHash || retryBudget <= 0) {\n runWithStateTransaction = runFast\n return Effect.void\n }\n\n retryBudget -= 1\n const digest = tryReadConvergeStaticIrDigest()\n if (!digest) {\n if (retryBudget <= 0) {\n runWithStateTransaction = runFast\n }\n return Effect.void\n }\n\n didRecordExecIrHash = true\n runWithStateTransaction = runFast\n return recordExecVmEvidence({\n version: 'v1',\n stage: 'assembly',\n hit: true,\n execIrVersion: digest.split(':')[0],\n execIrHash: digest,\n serviceId,\n implId: CORE_NG_IMPL_ID,\n })\n }),\n )\n\n return {\n ...impl,\n runWithStateTransaction: (origin: any, body: any) => runWithStateTransaction(origin, body),\n }\n }\n\n return impl\n }) as any,\n ...(options?.notes ? { notes: options.notes } : {}),\n})\n\n/**\n * coreNgRuntimeServicesRegistry:\n * - Registers only optional implementations on the core-ng side (no serialized override; only used at assembly time).\n * - Selection evidence is still produced and exported by @logixjs/core's RuntimeServicesEvidence.\n */\nexport const coreNgRuntimeServicesRegistry: Logix.Kernel.RuntimeServicesRegistry = {\n implsByServiceId: {\n txnQueue: [makeBuiltinAlias('txnQueue', { notes: 'full-cutover: alias builtin txnQueue' })],\n operationRunner: [makeBuiltinAlias('operationRunner', { notes: 'full-cutover: alias builtin operationRunner' })],\n transaction: [makeBuiltinAlias('transaction', { notes: 'full-cutover: alias builtin transaction ops' })],\n dispatch: [makeBuiltinAlias('dispatch', { notes: 'full-cutover: alias builtin dispatch ops' })],\n },\n}\n","import { Effect } from 'effect'\nimport * as Logix from '@logixjs/core'\n\nexport const EXEC_VM_EVIDENCE_TRACE_TYPE = 'trace:exec-vm' as const\nexport const EXEC_VM_EVIDENCE_MODULE_ID = '@logixjs/core-ng' as const\nexport const EXEC_VM_EVIDENCE_INSTANCE_ID = 'kernel:core-ng' as const\n\nexport type ExecVmMissReasonCode = 'not_implemented' | 'missing_capability' | 'disabled'\n\nexport interface ExecVmEvidence {\n readonly version: 'v1'\n readonly stage: 'assembly'\n /**\n * hit=true: the Exec VM mode actually took effect in this run (instead of implicitly falling back\n * to the conservative path).\n *\n * Note: for now this only wires the evidence fields and trace plumbing; the Exec VM implementation\n * will be completed in follow-up task 049.\n */\n readonly hit: boolean\n /** Miss reason code (stable enum; no free-form text). */\n readonly reasonCode?: ExecVmMissReasonCode\n /** Optional details; only emitted in light/full (not in off). */\n readonly reasonDetail?: string\n /** Exec IR version (AOT-ready; emitted in light/full, not in off). */\n readonly execIrVersion?: string\n /** Exec IR stable hash (AOT-ready; emitted in light/full, not in off). */\n readonly execIrHash?: string\n /** Evidence recording point (currently fixed to the transaction assembly phase). */\n readonly serviceId?: string\n /** The implId used by the current implementation (for diffing/debugging). */\n readonly implId?: string\n}\n\nexport const recordExecVmEvidence = (evidence: ExecVmEvidence): Effect.Effect<void, never, any> =>\n Effect.gen(function* () {\n const level = yield* Effect.service(Logix.Debug.internal.currentDiagnosticsLevel).pipe(Effect.orDie)\n if (level === 'off') {\n return\n }\n\n const data: ExecVmEvidence = (() => {\n if (level === 'full') return evidence\n return {\n ...evidence,\n reasonDetail: undefined,\n }\n })()\n\n yield* Logix.Debug.record({\n type: EXEC_VM_EVIDENCE_TRACE_TYPE,\n moduleId: EXEC_VM_EVIDENCE_MODULE_ID,\n instanceId: EXEC_VM_EVIDENCE_INSTANCE_ID,\n data: data as any,\n })\n })\n"],"mappings":"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","names":["import_effect","Logix","import_effect","Logix"]}
package/dist/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  coreNgFullCutoverLayer,
3
3
  coreNgKernelLayer
4
- } from "./chunk-HIDG4C7J.js";
4
+ } from "./chunk-2EDOEK6F.js";
5
5
  import {
6
6
  CORE_NG_IMPL_ID,
7
7
  coreNgRuntimeServicesRegistry
8
- } from "./chunk-EVS6KWPU.js";
9
- import "./chunk-AGDYNZ3J.js";
8
+ } from "./chunk-7FUHRZH7.js";
9
+ import "./chunk-LKQW3BJU.js";
10
10
  export {
11
11
  CORE_NG_IMPL_ID,
12
12
  coreNgFullCutoverLayer,
package/package.json CHANGED
@@ -1,6 +1,11 @@
1
1
  {
2
2
  "name": "@logixjs/core-ng",
3
- "version": "0.0.2",
3
+ "version": "1.0.0",
4
+ "repository": {
5
+ "type": "git",
6
+ "url": "https://github.com/yoyooyooo/logix",
7
+ "directory": "packages/logix-core-ng"
8
+ },
4
9
  "license": "Apache-2.0",
5
10
  "description": "Next-gen kernel implementation package for Logix",
6
11
  "files": [
@@ -28,18 +33,18 @@
28
33
  "access": "public"
29
34
  },
30
35
  "dependencies": {
31
- "effect": "^3.19.8",
32
- "@logixjs/core": "0.0.2"
36
+ "effect": "4.0.0-beta.28",
37
+ "@logixjs/core": "1.0.0"
33
38
  },
34
39
  "devDependencies": {
35
- "@effect/vitest": "^0.27.0",
40
+ "@effect/vitest": "4.0.0-beta.28",
36
41
  "tsup": "^8.0.0",
37
42
  "typescript": "^5.8.2",
38
43
  "vitest": "^4.0.15"
39
44
  },
40
45
  "peerDependencies": {
41
- "effect": "^3.19.8",
42
- "@logixjs/core": "0.0.2"
46
+ "effect": "4.0.0-beta.28",
47
+ "@logixjs/core": "1.0.0"
43
48
  },
44
49
  "scripts": {
45
50
  "build": "tsup",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/ExecVmEvidence.ts"],"sourcesContent":["import { Effect, FiberRef } from 'effect'\nimport * as Logix from '@logixjs/core'\n\nexport const EXEC_VM_EVIDENCE_TRACE_TYPE = 'trace:exec-vm' as const\nexport const EXEC_VM_EVIDENCE_MODULE_ID = '@logixjs/core-ng' as const\nexport const EXEC_VM_EVIDENCE_INSTANCE_ID = 'kernel:core-ng' as const\n\nexport type ExecVmMissReasonCode = 'not_implemented' | 'missing_capability' | 'disabled'\n\nexport interface ExecVmEvidence {\n readonly version: 'v1'\n readonly stage: 'assembly'\n /**\n * hit=true: the Exec VM mode actually took effect in this run (instead of implicitly falling back\n * to the conservative path).\n *\n * Note: for now this only wires the evidence fields and trace plumbing; the Exec VM implementation\n * will be completed in follow-up task 049.\n */\n readonly hit: boolean\n /** Miss reason code (stable enum; no free-form text). */\n readonly reasonCode?: ExecVmMissReasonCode\n /** Optional details; only emitted in light/full (not in off). */\n readonly reasonDetail?: string\n /** Exec IR version (AOT-ready; emitted in light/full, not in off). */\n readonly execIrVersion?: string\n /** Exec IR stable hash (AOT-ready; emitted in light/full, not in off). */\n readonly execIrHash?: string\n /** Evidence recording point (currently fixed to the transaction assembly phase). */\n readonly serviceId?: string\n /** The implId used by the current implementation (for diffing/debugging). */\n readonly implId?: string\n}\n\nexport const recordExecVmEvidence = (evidence: ExecVmEvidence): Effect.Effect<void, never, any> =>\n Effect.gen(function* () {\n const level = yield* FiberRef.get(Logix.Debug.internal.currentDiagnosticsLevel)\n if (level === 'off') {\n return\n }\n\n const data: ExecVmEvidence = (() => {\n if (level === 'full') return evidence\n return {\n ...evidence,\n reasonDetail: undefined,\n }\n })()\n\n yield* Logix.Debug.record({\n type: EXEC_VM_EVIDENCE_TRACE_TYPE,\n moduleId: EXEC_VM_EVIDENCE_MODULE_ID,\n instanceId: EXEC_VM_EVIDENCE_INSTANCE_ID,\n data: data as any,\n })\n })\n"],"mappings":";AAAA,SAAS,QAAQ,gBAAgB;AACjC,YAAY,WAAW;AAEhB,IAAM,8BAA8B;AACpC,IAAM,6BAA6B;AACnC,IAAM,+BAA+B;AA6BrC,IAAM,uBAAuB,CAAC,aACnC,OAAO,IAAI,aAAa;AACtB,QAAM,QAAQ,OAAO,SAAS,IAAU,YAAM,SAAS,uBAAuB;AAC9E,MAAI,UAAU,OAAO;AACnB;AAAA,EACF;AAEA,QAAM,QAAwB,MAAM;AAClC,QAAI,UAAU,OAAQ,QAAO;AAC7B,WAAO;AAAA,MACL,GAAG;AAAA,MACH,cAAc;AAAA,IAChB;AAAA,EACF,GAAG;AAEH,SAAa,YAAM,OAAO;AAAA,IACxB,MAAM;AAAA,IACN,UAAU;AAAA,IACV,YAAY;AAAA,IACZ;AAAA,EACF,CAAC;AACH,CAAC;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/CoreNgLayer.ts"],"sourcesContent":["import { Config, Effect, Layer } from 'effect'\nimport * as Logix from '@logixjs/core'\nimport { coreNgRuntimeServicesRegistry } from './RuntimeServices.impls.js'\n\nexport interface CoreNgKernelLayerOptions {\n readonly packageVersion?: string\n readonly buildId?: string\n readonly capabilities?: ReadonlyArray<string>\n}\n\nconst parseExecVmModeEnabled = (raw: string): boolean => {\n const normalized = raw.trim().toLowerCase()\n return normalized !== 'off' && normalized !== '0' && normalized !== 'false' && normalized !== 'disabled'\n}\n\nconst coreNgExecVmModeLayer = Layer.unwrapEffect(\n Effect.gen(function* () {\n const execVmMode = yield* Config.string('LOGIX_CORE_NG_EXEC_VM_MODE').pipe(Config.withDefault('on'))\n const enabled = parseExecVmModeEnabled(execVmMode)\n return Logix.InternalContracts.execVmModeLayer(enabled)\n }),\n) as Layer.Layer<any, never, never>\n\n/**\n * coreNgKernelLayer:\n * - Declares the requested kernel family for this runtime tree as core-ng.\n * - Provides the injectable runtime services registry for core-ng (no overrides enabled by default).\n */\nexport const coreNgKernelLayer = (options: CoreNgKernelLayerOptions = {}): Layer.Layer<any, never, never> =>\n Layer.mergeAll(\n coreNgExecVmModeLayer,\n Logix.Kernel.kernelLayer({\n kernelId: 'core-ng',\n packageName: '@logixjs/core-ng',\n ...(options.packageVersion ? { packageVersion: options.packageVersion } : {}),\n ...(options.buildId ? { buildId: options.buildId } : {}),\n ...(options.capabilities ? { capabilities: options.capabilities } : {}),\n }),\n Logix.Kernel.runtimeServicesRegistryLayer(coreNgRuntimeServicesRegistry),\n ) as Layer.Layer<any, never, never>\n\n/**\n * coreNgFullCutoverLayer:\n * - Explicitly enables the full cutover assembly (no fallback).\n * - Writes runtime_default overrides for all required serviceIds in the coverage matrix (implId=core-ng).\n *\n * Note: This layer is the entry point for \"claiming we can switch the default / enforcing perf evidence gates\".\n * For trial-only runs, keep using coreNgKernelLayer + choose overrides yourself.\n */\nexport const coreNgFullCutoverLayer = (options: CoreNgKernelLayerOptions = {}): Layer.Layer<any, never, never> => {\n const services: Logix.Kernel.RuntimeServicesOverrides = Object.fromEntries(\n Logix.Kernel.CutoverCoverageMatrix.requiredServiceIds.map((serviceId) => [\n serviceId,\n { implId: 'core-ng', notes: 'full-cutover: runtime_default override (SSoT=Kernel.CutoverCoverageMatrix)' },\n ]),\n )\n\n return Layer.mergeAll(\n coreNgKernelLayer(options),\n Logix.Kernel.fullCutoverGateModeLayer('fullCutover'),\n Logix.Kernel.runtimeDefaultServicesOverridesLayer(services),\n ) as Layer.Layer<any, never, never>\n}\n"],"mappings":";;;;;AAAA,SAAS,QAAQ,QAAQ,aAAa;AACtC,YAAY,WAAW;AASvB,IAAM,yBAAyB,CAAC,QAAyB;AACvD,QAAM,aAAa,IAAI,KAAK,EAAE,YAAY;AAC1C,SAAO,eAAe,SAAS,eAAe,OAAO,eAAe,WAAW,eAAe;AAChG;AAEA,IAAM,wBAAwB,MAAM;AAAA,EAClC,OAAO,IAAI,aAAa;AACtB,UAAM,aAAa,OAAO,OAAO,OAAO,4BAA4B,EAAE,KAAK,OAAO,YAAY,IAAI,CAAC;AACnG,UAAM,UAAU,uBAAuB,UAAU;AACjD,WAAa,wBAAkB,gBAAgB,OAAO;AAAA,EACxD,CAAC;AACH;AAOO,IAAM,oBAAoB,CAAC,UAAoC,CAAC,MACrE,MAAM;AAAA,EACJ;AAAA,EACM,aAAO,YAAY;AAAA,IACvB,UAAU;AAAA,IACV,aAAa;AAAA,IACb,GAAI,QAAQ,iBAAiB,EAAE,gBAAgB,QAAQ,eAAe,IAAI,CAAC;AAAA,IAC3E,GAAI,QAAQ,UAAU,EAAE,SAAS,QAAQ,QAAQ,IAAI,CAAC;AAAA,IACtD,GAAI,QAAQ,eAAe,EAAE,cAAc,QAAQ,aAAa,IAAI,CAAC;AAAA,EACvE,CAAC;AAAA,EACK,aAAO,6BAA6B,6BAA6B;AACzE;AAUK,IAAM,yBAAyB,CAAC,UAAoC,CAAC,MAAsC;AAChH,QAAM,WAAkD,OAAO;AAAA,IACvD,aAAO,sBAAsB,mBAAmB,IAAI,CAAC,cAAc;AAAA,MACvE;AAAA,MACA,EAAE,QAAQ,WAAW,OAAO,6EAA6E;AAAA,IAC3G,CAAC;AAAA,EACH;AAEA,SAAO,MAAM;AAAA,IACX,kBAAkB,OAAO;AAAA,IACnB,aAAO,yBAAyB,aAAa;AAAA,IAC7C,aAAO,qCAAqC,QAAQ;AAAA,EAC5D;AACF;","names":[]}