@sdux-vault/engine 0.2.0 → 0.3.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdux-vault-engine.mjs","sources":["../../../lib/src/version/version.register.ts","../../../lib/src/constants/vault-conductor.constant.ts","../../../lib/src/controllers/abstain/with-core-abstrain.controller.ts","../../../lib/src/controllers/error/with-core-error.controller.ts","../../../lib/src/types/license-event.type.ts","../../../lib/src/licensing/licensing.service.ts","../../../lib/src/controllers/license/with-core-license.controller.ts","../../../lib/src/arbitrator/arbitrator.ts","../../../lib/src/types/monitor/vault-monitor-event-category.type.ts","../../../lib/src/types/monitor/vault-monitor-field-rule.type.ts","../../../lib/src/monitor/event-policy/vault-monitor-category-field-policy.constant.ts","../../../lib/src/monitor/event-policy/vault-monitor-event-policy.constant.ts","../../../lib/src/monitor/vault-monitor-shared.state.ts","../../../lib/src/monitor/vault-monitor.helper.ts","../../../lib/src/monitor/vault-monitor.service.ts","../../../lib/src/types/controller-event.type.ts","../../../lib/src/decision-engine/decision-engine.ts","../../../lib/src/constants/vault-orchestrator.constant.ts","../../../lib/src/constants/protected-feature-cell-keys.constant.ts","../../../lib/src/types/vault-registration-license-status.type.ts","../../../lib/src/constants/known-vault-keys.constant.ts","../../../lib/src/constants/vault-license-id.constant.ts","../../../lib/src/factories/vault/vault-core.function.ts","../../../lib/src/utils/initialize-behavior.util.ts","../../../lib/src/utils/orchestrator.utils.ts","../../../lib/src/orchestrator/orchestrator.ts","../../../lib/src/types/conductor-license-status.type.ts","../../../lib/src/utils/initialize-controller.util.ts","../../../lib/src/conductor/conductor.ts","../../../lib/src/constants/vault-feature-cell.constant.ts","../../../lib/src/utils/feature-cell/feature-cell-validation.util.ts","../../../lib/src/factories/feature-cell/feature-cell.builder.ts","../../../lib/src/factories/feature-cell/feature-cell.class.ts","../../../lib/src/licensing/licensing.abstract.ts","../../../lib/src/tokens/feature-cell-token-registry.ts","../../../lib/public-api.ts","../../../lib/sdux-vault-engine.ts"],"sourcesContent":["// --- AI Model File Path (DO NOT DELETE) ---\n// FilePath: projects > engine > src > lib > utils > version > version.register.ts\n// Updated: 2026-03-03 08:09\n//\t Generated by pathcomment [tab] (see .vscode/typescript.code-snippets) or\n//\t cmd+alt+j (see .vscode/keybindings.json)\n// --- END AI MODEL FILE PATH ---\n\nimport { registerVersion } from '@sdux-vault/shared';\n\nconst SDUX_PACKAGE = '@sdux-vault/engine';\nconst SDUX_VERSION = '0.2.0';\n\nregisterVersion(SDUX_PACKAGE, SDUX_VERSION);\n","/**\n * Canonical identifier used to label the Conductor execution context.\n */\nexport const VAULT_CONDUCTOR = 'vault-conductor';\n","import {\n ControllerClassContext,\n ControllerMessageShape,\n ControllerMessageTypes,\n ControllerType,\n ControllerTypes,\n ControllerVote,\n ControllerVotes,\n defineControllerKey,\n OperationTypes,\n VaultController,\n vaultDebug,\n vaultWarn\n} from '@sdux-vault/shared';\nimport { Observable, of } from 'rxjs';\n\n/**\n * Core abstain controller responsible for participating in controller vote resolution.\n * This controller observes incoming controller messages and emits a neutral vote without modifying pipeline flow.\n *\n * --RelatedStart--\n * ControllerMessageShape\n * ControllerVote\n * ControllerVotes\n * --RelatedEnd--\n */\n@VaultController({\n type: ControllerTypes.CoreAbstain,\n key: defineControllerKey('Policy', 'CoreAbstain'),\n critical: false\n})\nexport class withCoreAbstainController<T> {\n /**\n * Static controller type identifier used by the orchestrator.\n */\n static readonly type: ControllerType;\n\n /**\n * Static controller key assigned by the decorator.\n */\n static readonly key: string;\n\n /**\n * Indicates whether this controller is critical.\n */\n static readonly critical: boolean;\n\n /**\n * Controller type identifier used for pipeline classification.\n */\n readonly type = withCoreAbstainController.type;\n\n /**\n * Indicates whether this controller instance is critical.\n */\n readonly critical = withCoreAbstainController.critical;\n\n /**\n * Unique controller key identifying this instance.\n */\n readonly key: string;\n\n #isInitialized = false;\n\n #initializationFailed = false;\n\n /**\n * Creates a new core conductor controller instance.\n *\n * @param key Unique controller identifier supplied by the factory.\n * @param controllerCtx Controller context supplying execution metadata.\n */\n constructor(\n key: string,\n readonly controllerCtx: ControllerClassContext\n ) {\n this.key = key;\n }\n\n /**\n * Handles an incoming controller message and emits a controller vote.\n *\n * @param msg Controller message supplied by the orchestrator.\n * @returns Observable emitting a controller vote or no value.\n */\n handleMessage(msg: ControllerMessageShape<T>): Observable<ControllerVote | void> {\n vaultDebug(`${this.key} handleMessage received \"${msg.type}\" for trace \"${msg.traceId}\".`);\n\n switch (msg.type) {\n case ControllerMessageTypes.Attempt: {\n const { ctx } = msg;\n\n if (this.#initializationFailed) {\n return of(ControllerVotes.Abort);\n }\n\n if (ctx.operation === OperationTypes.Initialize) {\n return of(ControllerVotes.Abstain);\n }\n\n return of(this.#isInitialized ? ControllerVotes.Abstain : ControllerVotes.Deny);\n }\n\n case ControllerMessageTypes.Finalize: {\n this.#isInitialized = true;\n\n return of();\n }\n\n case ControllerMessageTypes.Success: {\n this.#isInitialized = true;\n\n return of();\n }\n\n case ControllerMessageTypes.Failure: {\n if (msg.ctx.operation === OperationTypes.Initialize) {\n this.#initializationFailed = true;\n }\n\n return of();\n }\n\n default: {\n return of(ControllerVotes.Abstain);\n }\n }\n }\n\n /**\n * Lifecycle hook invoked when the controller instance is destroyed.\n */\n destroy(): void {\n vaultWarn(`${this.key} - destroy noop`);\n }\n\n /**\n * Lifecycle hook invoked when the controller instance is reset.\n */\n reset(): void {\n vaultWarn(`${this.key} - reset noop`);\n }\n}\n","import {\n ControllerClassContext,\n ControllerMessageShape,\n ControllerMessageTypes,\n ControllerType,\n ControllerTypes,\n ControllerVote,\n ControllerVotes,\n defineControllerKey,\n VaultController,\n vaultDebug,\n vaultWarn\n} from '@sdux-vault/shared';\nimport { Observable, of } from 'rxjs';\n\n@VaultController({\n type: ControllerTypes.Error,\n key: defineControllerKey('Policy', 'CoreError'),\n critical: false\n})\nexport class withCoreErrorController<T> {\n /**\n * Static controller type identifier used by the orchestrator.\n */\n static readonly type: ControllerType;\n\n /**\n * Static controller key assigned by the decorator.\n */\n static readonly key: string;\n\n /**\n * Indicates whether this controller is critical.\n */\n static readonly critical: boolean;\n\n /**\n * Controller type identifier used for pipeline classification.\n */\n readonly type = withCoreErrorController.type;\n\n /**\n * Indicates whether this controller instance is critical.\n */\n readonly critical = withCoreErrorController.critical;\n\n /**\n * Unique controller key identifying this instance.\n */\n readonly key: string;\n\n ctx!: ControllerClassContext;\n\n /**\n * Creates a new core conductor controller instance.\n *\n * @param key Unique controller identifier supplied by the factory.\n * @param controllerCtx Controller context supplying execution metadata.\n */\n constructor(\n key: string,\n readonly controllerCtx: ControllerClassContext\n ) {\n this.key = key;\n this.ctx = controllerCtx;\n }\n\n /**\n * Handles an incoming controller message and emits a controller vote.\n *\n * @param msg Controller message supplied by the orchestrator.\n * @returns Observable emitting a controller vote or no value.\n */\n handleMessage(msg: ControllerMessageShape<T>): Observable<ControllerVote | void> {\n vaultDebug(`${this.key} handleMessage received \"${msg.type}\" for trace \"${msg.traceId}\".`);\n\n switch (msg.type) {\n case ControllerMessageTypes.Failure: {\n vaultDebug(`${this.key} ABORT — default failure handler for trace \"${msg.traceId}\"`);\n this.ctx.requestAbort(msg.traceId);\n return of();\n }\n\n default: {\n return of(ControllerVotes.Abstain);\n }\n }\n }\n\n /**\n * Lifecycle hook invoked when the controller instance is destroyed.\n */\n destroy(): void {\n vaultWarn(`${this.key} - destroy noop`);\n }\n\n /**\n * Lifecycle hook invoked when the controller instance is reset.\n */\n reset(): void {\n vaultWarn(`${this.key} - reset noop`);\n }\n}\n","export const LicenseEventTypes = {\n RequireLicense: 'requireLicense',\n\n ValidateLicense: 'validateLicense',\n LicenseStatus: 'licenseStatus',\n\n DescribeFeature: 'describe-feature',\n DescribeBehaviors: 'describe-behaviors',\n DescribeControllers: 'describe-controllers'\n} as const;\n\nexport type LicenseEventType = (typeof LicenseEventTypes)[keyof typeof LicenseEventTypes];\n","import { DevMode } from '@sdux-vault/shared';\nimport { Observable, Subject } from 'rxjs';\nimport { LicensingServiceContract } from '../interfaces/licensing/licensing-service.interface';\nimport { LicensingBehaviorEventShape } from '../shapes/licensing/licensing-behavior-event.shape';\nimport { LicensingControllerEvent } from '../shapes/licensing/licensing-controller-event.shape';\nimport { LicensingEventShape } from '../shapes/licensing/licensing-event.shape';\nimport { LicensingFeatureDescriptionEventShape } from '../shapes/licensing/licensing-feature-description-event.shape';\nimport { LicensingValidationShape } from '../shapes/licensing/licensing-validation.shape';\nimport { LicenseEventTypes } from '../types/license-event.type';\n\n//eslint-disable-next-line\nlet singleton: LicensingServiceContract<any> | null = null;\n\nexport function InitializeLicensingService<T>(\n events$: Subject<LicensingEventShape<T>>,\n validation$: Observable<LicensingValidationShape>\n): void {\n if (singleton) return;\n singleton = new LicensingServiceInstance(events$, validation$);\n}\n\nexport function LicensingService<T>(): LicensingServiceContract<T> {\n if (!singleton) {\n throw new Error('[vault] LicensingService not initialized.');\n }\n return singleton;\n}\n\nclass LicensingServiceInstance<T> implements LicensingServiceContract<T> {\n constructor(\n private events$: Subject<LicensingEventShape<T>>,\n private validation$: Observable<LicensingValidationShape>\n ) {}\n\n describeFeature(event: LicensingFeatureDescriptionEventShape<T>): void {\n event.type = LicenseEventTypes.DescribeFeature;\n this.events$.next(event);\n }\n\n describeBehaviors(event: LicensingBehaviorEventShape): void {\n event.type = LicenseEventTypes.DescribeBehaviors;\n this.events$.next(event);\n }\n\n describeControllers(event: LicensingControllerEvent): void {\n event.type = LicenseEventTypes.DescribeControllers;\n this.events$.next(event);\n }\n\n requestLicense(featureCellKey: string, key: string): string {\n if (!key) {\n throw new Error('[vault] Cannot register controller license without a key.');\n }\n\n const licenseToken = this.#generateLicenseToken();\n this.events$.next({\n featureCellKey,\n key,\n licenseToken,\n type: LicenseEventTypes.RequireLicense\n });\n\n return licenseToken;\n }\n\n validateLicense(featureCellKey: string, key: string, licenseToken: string, valid: boolean): void {\n this.events$.next({\n featureCellKey,\n key,\n licenseToken,\n type: LicenseEventTypes.ValidateLicense,\n valid\n });\n }\n\n #generateLicenseToken(): string {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n\n const randomPart = (length: number) =>\n Array.from({ length }, () => chars[Math.floor(Math.random() * chars.length)]).join('');\n\n return `${randomPart(5)}-${randomPart(5)}`;\n }\n\n getLicenseValidation$(): Observable<LicensingValidationShape> {\n return this.validation$;\n }\n}\n\nexport const resetLicensingServiceForTests = (): void => {\n if (!DevMode.active) return;\n singleton = null;\n};\n","import {\n ControllerClassContext,\n ControllerMessageShape,\n ControllerMessageTypes,\n ControllerType,\n ControllerTypes,\n ControllerVote,\n ControllerVotes,\n defineControllerKey,\n VaultController,\n vaultDebug,\n vaultWarn\n} from '@sdux-vault/shared';\nimport { Observable, of, Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { LicensingService } from '../../licensing/licensing.service';\nimport { LicensingValidationShape } from '../../shapes/licensing/licensing-validation.shape';\n\n@VaultController({\n type: ControllerTypes.License,\n key: defineControllerKey('Policy', 'CoreLicense'),\n critical: true\n})\nexport class withCoreLicenseController<T> {\n static readonly type: ControllerType;\n static readonly key: string;\n static readonly critical: boolean;\n\n readonly type = withCoreLicenseController.type;\n readonly critical = withCoreLicenseController.critical;\n readonly key: string;\n\n #licenseApproved: boolean | null = null;\n #sub?: Subscription;\n\n constructor(\n key: string,\n readonly controllerCtx: ControllerClassContext\n ) {\n this.key = key;\n\n const featureCellKey = controllerCtx.featureCellKey;\n\n this.#sub = LicensingService()\n .getLicenseValidation$()\n .pipe(filter((licenseEvent: LicensingValidationShape) => licenseEvent.featureCellKey === featureCellKey))\n .subscribe((event) => {\n this.#licenseApproved = event.approved;\n this.#sub?.unsubscribe();\n const traceId = `${featureCellKey}::license`;\n if (event.approved) {\n controllerCtx?.licenseApproved?.(traceId);\n } else {\n controllerCtx?.licenseDenied?.(traceId);\n }\n });\n }\n\n handleMessage(msg: ControllerMessageShape<T>): Observable<ControllerVote | void> {\n vaultDebug(`${this.key} received \"${msg.type}\" for trace \"${msg.traceId}\".`);\n\n switch (msg.type) {\n case ControllerMessageTypes.Attempt: {\n if (this.#licenseApproved) {\n return of(ControllerVotes.Abstain);\n } else if (this.#licenseApproved === null) {\n return of(ControllerVotes.Deny);\n }\n\n // abort\n return of(ControllerVotes.Abort);\n }\n\n default:\n return of();\n }\n }\n\n destroy(): void {\n this.#sub?.unsubscribe();\n vaultWarn(`${this.key} - destroy unsubscribe`);\n }\n\n reset(): void {\n vaultWarn(`${this.key} - reset noop`);\n }\n}\n","import type { ControllerAttemptMessageShape, ControllerContract, ControllerMessageShape } from '@sdux-vault/shared';\n\nimport {\n ControllerDecisionShape,\n ControllerVotes,\n DecisionOutcomeTypes,\n vaultError,\n vaultWarn,\n type ControllerVote\n} from '@sdux-vault/shared';\n\nimport { catchError, forkJoin, map, Observable, of } from 'rxjs';\n\n/**\n * Pure decision engine responsible for aggregating controller votes.\n *\n * This class evaluates controller responses deterministically by normalizing\n * votes, applying priority rules, and producing a single decision outcome\n * without maintaining internal state or execution history.\n */\nexport class Arbitrator<T> {\n /**\n * Evaluates an ATTEMPT message across all provided controllers.\n *\n * Each controller vote is normalized and aggregated using deterministic\n * priority rules to produce exactly one decision outcome.\n *\n * @param controllers - The set of controllers participating in arbitration.\n * @param msg - The ATTEMPT message being evaluated.\n * @returns An observable emitting a single controller decision.\n */\n evaluateAttempt(\n controllers: ControllerContract<T>[],\n msg: ControllerAttemptMessageShape<T>\n ): Observable<ControllerDecisionShape> {\n // No controllers → treat as unanimous abstain → arbitrate\n if (controllers.length === 0) {\n return of(this.arbitrate(msg.traceId, [ControllerVotes.Abstain]));\n }\n\n try {\n const votes$ = controllers.map((controller) =>\n controller.handleMessage(msg).pipe(\n map((v) => v ?? ControllerVotes.Abstain),\n catchError((err) => {\n vaultWarn('[vault:arbitrator] controller threw during attempt:', err);\n return of(ControllerVotes.Deny);\n })\n )\n );\n\n return forkJoin(votes$).pipe(map((votes) => this.arbitrate(msg.traceId, votes)));\n } catch {\n return of(this.arbitrate(msg.traceId, [ControllerVotes.Deny]));\n }\n }\n\n /**\n * Notifies controllers of non-attempt lifecycle messages.\n *\n * These messages are forwarded to controllers for observation only and\n * do not participate in arbitration or decision-making.\n *\n * @param controllers - The controllers to notify.\n * @param msg - The lifecycle message being dispatched.\n * @returns An observable that completes when all notifications finish.\n */\n notify(controllers: ControllerContract<T>[], msg: ControllerMessageShape<T>): Observable<void> {\n if (controllers.length === 0) {\n return of(void 0);\n }\n\n try {\n const streams$ = controllers.map((controller) =>\n controller.handleMessage(msg).pipe(\n map(() => void 0),\n catchError((err) => {\n vaultWarn('[vault:arbitrator] controller threw during notify:', err);\n return of(void 0);\n })\n )\n );\n\n return forkJoin(streams$).pipe(map(() => void 0));\n } catch {\n return of(void 0);\n }\n }\n\n /**\n * Applies priority rules to a set of controller votes.\n *\n * Votes are evaluated in descending priority order to determine the\n * final controller decision for a given trace.\n *\n * @param traceId - The trace identifier associated with the decision.\n * @param votes - The normalized controller votes.\n * @returns The resolved controller decision.\n */\n private arbitrate(traceId: string, votes: ControllerVote[]): ControllerDecisionShape {\n const hasAbort = votes.includes(ControllerVotes.Abort);\n if (hasAbort) {\n return { traceId, outcome: DecisionOutcomeTypes.Abort };\n }\n\n const hasDeny = votes.includes(ControllerVotes.Deny);\n if (hasDeny) {\n return { traceId, outcome: DecisionOutcomeTypes.Deny };\n }\n\n const allAbstain = votes.every((v) => v === ControllerVotes.Abstain);\n if (allAbstain) {\n return { traceId, outcome: DecisionOutcomeTypes.Abstain };\n }\n\n vaultError(`Unknown controller vote detected`, { traceId, votes });\n\n return { traceId, outcome: DecisionOutcomeTypes.Deny };\n }\n}\n","// --- AI Model File Path ---\n// projects > engine > src > lib > types > monitor > vault-monitor-event-category.type.ts\n\nexport const VaultMonitorEventCategoryType = {\n Boundary: 'boundary',\n State: 'state',\n Error: 'error'\n} as const;\n\nexport type VaultMonitorEventCategoryType =\n (typeof VaultMonitorEventCategoryType)[keyof typeof VaultMonitorEventCategoryType];\n","// --- AI Model File Path ---\n// projects > engine > src > lib > types > monitor > vault-monitor-field-rule.type.ts\n\nexport const FieldRuleTypes = {\n Never: 'never',\n Optional: 'optional',\n Required: 'required'\n} as const;\n\nexport type FieldRuleType = (typeof FieldRuleTypes)[keyof typeof FieldRuleTypes];\n","// --- AI Model File Path (DO NOT DELETE) ---\n// FilePath: projects > engine > src > lib > monitor > event-policy > vault-monitor-category-field-policy.constant.ts\n// Updated: 2026-03-06 16:29\n//\t Generated by pathcomment [tab] (see .vscode/typescript.code-snippets) or\n//\t cmd+alt+j (see .vscode/keybindings.json)\n// --- END AI MODEL FILE PATH ---\n\nimport { VaultMonitorCategoryFieldPolicyShape } from '../../shapes/monitor/vault-monitor-category-field-policy.shape';\nimport { VaultMonitorEventCategoryType } from '../../types/monitor/vault-monitor-event-category.type';\nimport { FieldRuleTypes } from '../../types/monitor/vault-monitor-field-rule.type';\n\nexport const CATEGORY_FIELD_POLICY_CONSTANT: Record<\n VaultMonitorEventCategoryType,\n VaultMonitorCategoryFieldPolicyShape\n> = {\n [VaultMonitorEventCategoryType.Boundary]: {\n state: FieldRuleTypes.Never,\n payload: FieldRuleTypes.Optional,\n error: FieldRuleTypes.Never\n },\n\n [VaultMonitorEventCategoryType.State]: {\n state: FieldRuleTypes.Required,\n payload: FieldRuleTypes.Optional,\n error: FieldRuleTypes.Never\n },\n\n [VaultMonitorEventCategoryType.Error]: {\n state: FieldRuleTypes.Required,\n payload: FieldRuleTypes.Optional,\n error: FieldRuleTypes.Required\n }\n};\n","// --- AI Model File Path (DO NOT DELETE) ---\n// FilePath: projects > engine > src > lib > monitor > event-policy > vault-monitor-event-policy.constant.ts\n// Updated: 2026-03-06 16:30\n//\t Generated by pathcomment [tab] (see .vscode/typescript.code-snippets) or\n//\t cmd+alt+j (see .vscode/keybindings.json)\n// --- END AI MODEL FILE PATH ---\n\nimport { EventPolicyShape } from '../../shapes/monitor/vault-monitor-event-policy.shape';\nimport { VaultMonitorEventCategoryType } from '../../types/monitor/vault-monitor-event-category.type';\n\nconst EVENT_POLICY_CONSTANT: Record<string, EventPolicyShape> = {\n // ─────────────────────────────────────────────\n // STATE\n // ─────────────────────────────────────────────\n 'stage:end:core-state': { category: VaultMonitorEventCategoryType.State },\n 'stage:end:core-emit-state': { category: VaultMonitorEventCategoryType.State },\n 'lifecycle:end:merge': { category: VaultMonitorEventCategoryType.State },\n 'lifecycle:end:replace': { category: VaultMonitorEventCategoryType.State },\n 'stage:end:compute-merge': { category: VaultMonitorEventCategoryType.State },\n 'stage:end:reducer': { category: VaultMonitorEventCategoryType.State },\n 'stage:end:resolve': { category: VaultMonitorEventCategoryType.State },\n\n // ─────────────────────────────────────────────\n // ERROR\n // ─────────────────────────────────────────────\n 'lifecycle:notification:failure': { category: VaultMonitorEventCategoryType.Error },\n 'lifecycle:notification:runtime-error': { category: VaultMonitorEventCategoryType.Error },\n 'lifecycle:notification:warn': { category: VaultMonitorEventCategoryType.Error },\n 'lifecycle:notification:fatal': { category: VaultMonitorEventCategoryType.Error },\n\n // ─────────────────────────────────────────────\n // BOUNDARY\n // ─────────────────────────────────────────────\n\n 'conductor:start:abort': { category: VaultMonitorEventCategoryType.Boundary },\n 'conductor:start:deny': { category: VaultMonitorEventCategoryType.Boundary },\n 'conductor:start:revote': { category: VaultMonitorEventCategoryType.Boundary },\n 'controller:end:vote': { category: VaultMonitorEventCategoryType.Boundary },\n\n // Conductor\n 'conductor:start:license-approved': { category: VaultMonitorEventCategoryType.Boundary },\n 'conductor:start:license-attempt': { category: VaultMonitorEventCategoryType.Boundary },\n\n // Controller\n 'controller:end:attempt': { category: VaultMonitorEventCategoryType.Boundary },\n 'controller:notification:finalize': { category: VaultMonitorEventCategoryType.Boundary },\n 'controller:notification:success': { category: VaultMonitorEventCategoryType.Boundary },\n 'controller:restart:restart-controller-attempt': {\n category: VaultMonitorEventCategoryType.Boundary\n },\n 'controller:start:attempt': { category: VaultMonitorEventCategoryType.Boundary },\n 'controller:start:vote': { category: VaultMonitorEventCategoryType.Boundary },\n\n // Lifecycle (end)\n 'lifecycle:end:initialized': { category: VaultMonitorEventCategoryType.Boundary },\n\n // Lifecycle (start)\n 'lifecycle:start:core-callback-error': {\n category: VaultMonitorEventCategoryType.Boundary\n },\n 'lifecycle:start:core-error': { category: VaultMonitorEventCategoryType.Boundary },\n 'lifecycle:start:core-state': { category: VaultMonitorEventCategoryType.Boundary },\n 'lifecycle:start:global-error': { category: VaultMonitorEventCategoryType.Boundary },\n 'lifecycle:start:initialized': { category: VaultMonitorEventCategoryType.Boundary },\n 'lifecycle:start:merge': { category: VaultMonitorEventCategoryType.Boundary },\n 'lifecycle:start:replace': { category: VaultMonitorEventCategoryType.Boundary },\n\n 'lifecycle:start:error-transform': { category: VaultMonitorEventCategoryType.Boundary },\n 'lifecycle:end:error-transform': { category: VaultMonitorEventCategoryType.Boundary },\n\n 'lifecycle:end:core-callback-error': { category: VaultMonitorEventCategoryType.Boundary },\n 'lifecycle:end:core-error': { category: VaultMonitorEventCategoryType.Boundary },\n 'lifecycle:end:global-error': { category: VaultMonitorEventCategoryType.Boundary },\n\n // Stage (end)\n 'stage:end:after-tap': { category: VaultMonitorEventCategoryType.Boundary },\n 'stage:end:before-tap': { category: VaultMonitorEventCategoryType.Boundary },\n 'stage:end:encrypt': { category: VaultMonitorEventCategoryType.Boundary },\n 'stage:end:filter': { category: VaultMonitorEventCategoryType.Boundary },\n 'stage:end:load-persist': { category: VaultMonitorEventCategoryType.Boundary },\n 'stage:end:operator': { category: VaultMonitorEventCategoryType.Boundary },\n 'stage:end:persist': { category: VaultMonitorEventCategoryType.Boundary },\n\n // Stage (start)\n 'stage:start:after-tap': { category: VaultMonitorEventCategoryType.Boundary },\n 'stage:start:before-tap': { category: VaultMonitorEventCategoryType.Boundary },\n 'stage:start:compute-merge': { category: VaultMonitorEventCategoryType.Boundary },\n 'stage:start:encrypt': { category: VaultMonitorEventCategoryType.Boundary },\n 'stage:start:filter': { category: VaultMonitorEventCategoryType.Boundary },\n 'stage:start:load-persist': { category: VaultMonitorEventCategoryType.Boundary },\n 'stage:start:operator': { category: VaultMonitorEventCategoryType.Boundary },\n 'stage:start:persist': { category: VaultMonitorEventCategoryType.Boundary },\n 'stage:start:reducer': { category: VaultMonitorEventCategoryType.Boundary },\n 'stage:start:resolve': { category: VaultMonitorEventCategoryType.Boundary }\n};\n\nexport { EVENT_POLICY_CONSTANT as EVENT_POLICY };\n","import { InsightConfig } from '@sdux-vault/shared';\n\n/**\n * Holds the singleton VaultMonitorSharedState instance.\n */\nlet instance: VaultMonitorSharedStateInstance | null = null;\n\n/**\n * Returns the global VaultMonitorSharedState singleton instance.\n * This function ensures a single shared state instance is created and reused across the runtime.\n *\n * --RelatedStart--\n * VaultMonitorSharedStateInstance\n * --RelatedEnd--\n *\n * @returns The global VaultMonitorSharedState instance.\n */\nexport function VaultMonitorSharedState(): VaultMonitorSharedStateInstance {\n if (!instance) {\n instance = new VaultMonitorSharedStateInstance();\n }\n\n return instance;\n}\n\nexport class VaultMonitorSharedStateInstance {\n /**\n * Optional global insight definition that overrides per-cell insight\n * configuration for all monitor instances. When set, all monitors use\n * this definition when determining which event fields to emit.\n */\n globalInsightOverride: InsightConfig | null = null;\n\n /**\n * Registry of FeatureCell insight configurations keyed by cell ID.\n *\n * Each entry indicates whether insight is enabled and contains the\n * resolved list of {@link InsightConfig} values associated with\n * that FeatureCell.\n */\n cellRegistry = new Map<\n string,\n {\n hasInsight: boolean;\n insights: InsightConfig[];\n }\n >();\n}\n","// --- AI Model File Path (DO NOT DELETE) ---\n// FilePath: projects > engine > src > lib > monitor > vault-monitor.helper.ts\n// Updated: 2026-03-06 16:27\n//\t Generated by pathcomment [tab] (see .vscode/typescript.code-snippets) or\n//\t cmd+alt+j (see .vscode/keybindings.json)\n// --- END AI MODEL FILE PATH ---\n\nimport {\n defineBehaviorKey,\n DEVTOOLS_AGGREGATE_KEY_CONSTANT,\n DEVTOOLS_LOGGING_KEY_CONSTANT,\n EventShape,\n InsightConfig\n} from '@sdux-vault/shared';\nimport { VaultMonitorEventCategoryType } from '../types/monitor/vault-monitor-event-category.type';\nimport { FieldRuleTypes } from '../types/monitor/vault-monitor-field-rule.type';\nimport { CATEGORY_FIELD_POLICY_CONSTANT } from './event-policy/vault-monitor-category-field-policy.constant';\nimport { EVENT_POLICY } from './event-policy/vault-monitor-event-policy.constant';\nimport { VaultMonitorSharedState } from './vault-monitor-shared.state';\n\n/**\n * Abstract helper base class used by both `VaultMonitor` and\n * `VaultQueueMonitor`.\n *\n * This class centralizes access to shared monitor state and DevMode\n * utilities. All mutable state is delegated to `VaultMonitorSharedState`,\n * ensuring that every monitor instance operates on the same global registry\n * and global insight override.\n *\n * No pipeline behavior is implemented directly here; this class provides\n * shared accessors, helpers, and common metadata required by monitor\n * implementations.\n */\nexport abstract class VaultMonitorHelper {\n /**\n * Shared global monitor state. All cell registry information and\n * global insight overrides are pulled from this injected source.\n */\n protected readonly shared = VaultMonitorSharedState();\n\n /**\n * Behavior key used for DevTools/Telemetry classification in\n * Vault diagnostics. Identifies monitor-related behavior for\n * analytics, devtools, and inspector utilities.\n */\n public readonly key = defineBehaviorKey('DevTools', 'Telemetry');\n\n /**\n * Retrieves the globally-applied insight override, if any.\n *\n * @returns The active global `InsightDefinition`, or `null` if\n * no override is applied.\n */\n protected get globalInsightOverride(): InsightConfig | null {\n return this.shared.globalInsightOverride;\n }\n\n /**\n * Applies a global insight override. This value is shared across all\n * monitors, allowing system-wide inspection behavior injection.\n *\n * @param def - The insight metadata to set as the global override.\n */\n protected set globalInsightOverride(def: InsightConfig | null) {\n this.shared.globalInsightOverride = def;\n }\n\n /**\n * Provides access to the shared FeatureCell registry. This registry\n * tracks monitor metadata about every registered cell, including\n * whether it provides insights and the definitions associated with it.\n *\n * @returns The shared cell registry map.\n */\n protected get cellRegistry() {\n return this.shared.cellRegistry;\n }\n\n /**\n * Registers a FeatureCell into the shared monitor registry.\n * Each entry stores insight awareness and any provided definitions.\n *\n * @param cellKey - The unique FeatureCell identifier.\n * @param insight - Optional `InsightDefinition` describing cell-level\n * insight capabilities.\n */\n public registerCell(cellKey: string, insight?: InsightConfig): void {\n const hasInsight = !!insight;\n\n this.cellRegistry.set(cellKey, {\n hasInsight,\n insights: hasInsight ? [insight!] : []\n });\n }\n\n /**\n * Applies a global insight override shared across all monitors.\n * When set, this overrides cell-specific insight metadata for\n * system-wide inspection behavior.\n *\n * @param definition - The global insight definition to activate.\n */\n public activateGlobalInsights(definition: InsightConfig): void {\n this.globalInsightOverride = definition;\n }\n\n protected isChromeDevTools(cell: string): boolean {\n return cell === DEVTOOLS_LOGGING_KEY_CONSTANT || cell === DEVTOOLS_AGGREGATE_KEY_CONSTANT;\n }\n\n protected applyPolicy<T>(event: EventShape<T>, insight?: InsightConfig): EventShape<T> {\n const category = EVENT_POLICY[event.name]?.category ?? VaultMonitorEventCategoryType.Boundary;\n\n const policy = CATEGORY_FIELD_POLICY_CONSTANT[category];\n\n const allowState = !!insight?.wantsState;\n const allowPayload = !!insight?.wantsPayload;\n const allowErrors = !!insight?.wantsErrors;\n\n if (!event.source) {\n delete event.source;\n }\n\n // STATE\n if (!allowState || policy.state === FieldRuleTypes.Never) {\n delete event.state;\n }\n\n // PAYLOAD\n if (\n !allowPayload ||\n policy.payload === FieldRuleTypes.Never ||\n (policy.payload === FieldRuleTypes.Optional && event.payload === undefined)\n ) {\n delete event.payload;\n }\n\n // ERROR\n if (!allowErrors || policy.error === FieldRuleTypes.Never) {\n delete event.error;\n } else if (policy.error === FieldRuleTypes.Required) {\n // Optional payload allowed on Error category\n if (!allowPayload || event.payload === undefined) {\n delete event.payload;\n }\n }\n\n return event;\n }\n}\n","// --- AI Model File Path (DO NOT DELETE) ---\n// FilePath: projects > engine > src > lib > monitor > vault-monitor.service.ts\n// Updated: 2026-03-03 09:10\n//\t Generated by pathcomment [tab] (see .vscode/typescript.code-snippets) or\n//\t cmd+alt+j (see .vscode/keybindings.json)\n// --- END AI MODEL FILE PATH ---\n\nimport { EventBus } from '@sdux-vault/devtools';\nimport {\n BehaviorContext,\n ControllerContext,\n ControllerDecisionShape,\n DecisionOutcomeType,\n DevMode,\n EventBoundaryTypes,\n EventShape,\n EventTypes,\n StateSnapshotShape,\n VaultErrorShape,\n VaultMonitorContract,\n createVaultError,\n vaultError,\n vaultWarn\n} from '@sdux-vault/shared';\n\nimport { InsightConfig } from '@sdux-vault/shared';\nimport { VaultMonitorEventShape } from '../shapes/monitor/vault-monitor-event-input.shape';\nimport { VaultMonitorHelper } from './vault-monitor.helper';\n\n/**\n * Holds the singleton VaultMonitor instance.\n */\nlet instance: VaultMonitorContract | null = null;\n\n/**\n * Returns the global VaultMonitor singleton instance.\n * This function ensures a single monitor instance is created and reused across the runtime.\n *\n * --RelatedStart--\n * VaultMonitorContract\n * --RelatedEnd--\n *\n * @returns The global VaultMonitor instance.\n */\nexport function VaultMonitor(): VaultMonitorContract {\n if (!instance) {\n instance = new VaultMonitorInstance();\n }\n\n return instance;\n}\n\n/**\n * Implements the VaultMonitorContract using shared helper functionality.\n * This class provides the concrete singleton implementation backing the VaultMonitor entry point.\n *\n * --RelatedStart--\n * VaultMonitorContract\n * --RelatedEnd--\n */\nclass VaultMonitorInstance extends VaultMonitorHelper implements VaultMonitorContract {\n /**\n * Event bus used to emit structured pipeline events to DevTools.\n * This bus is consumed by the ngSDuX Chrome extension and internal\n * development utilities.\n */\n #eventBus = EventBus();\n\n /**\n * Creates a new VaultMonitor instance and exposes it globally for\n * DevTools integration. The monitor is attached to `window.sdux`\n * so that browser extensions can observe all emitted events.\n */\n constructor() {\n super();\n // This is for the chrome plugin\n window.sdux ??= {};\n window.sdux.vaultMonitorInstance = this;\n }\n\n /**\n * Maps a BehaviorContext into a StateSnapshot suitable for DevTools.\n * This ensures each pipeline event includes a normalized representation\n * of loading, value, error, and hasValue.\n *\n * @typeParam T - State value type.\n * @param ctx - Immutable behavior context provided by the orchestrator.\n * @returns A standardized StateSnapshot.\n */\n #toSnapshot<T>(ctx: Readonly<BehaviorContext<T> | ControllerContext<T>>): StateSnapshotShape<T> {\n // const src: any = ctx.incoming ?? ctx.state ?? {};\n const src: StateSnapshotShape<T> =\n (ctx as ControllerContext<T>)?.snapshot ?? (ctx as BehaviorContext<T>)?.state ?? {};\n\n return {\n isLoading: src.isLoading ?? false,\n value: src.value ?? undefined,\n error: src.error ?? null,\n hasValue: src.hasValue ?? !!src.value\n };\n }\n\n /** Emits a startAfterTap event. */\n startAfterTap<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'after-tap';\n this.#emitEventV2StageStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endAfterTap event with optional payload. */\n endAfterTap<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>, payload?: unknown) {\n const name = 'after-tap';\n this.#emitEventV2StageEnd({ cell, behaviorKey, name, ctx, payload });\n }\n\n /** Emits a startBeforeTap event. */\n startBeforeTap<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'before-tap';\n this.#emitEventV2StageStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endBeforeTap event with optional payload. */\n endBeforeTap<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>, payload?: unknown) {\n const name = 'before-tap';\n this.#emitEventV2StageEnd({ cell, behaviorKey, name, ctx, payload });\n }\n\n /** Emits a startClearPersist event. */\n startClearPersist<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'clear-persist';\n this.#emitEventV2LifecycleStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endClearPersist event. */\n endClearPersist<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'clear-persist';\n this.#emitEventV2LifecycleEnd({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a startComputeMerge event. */\n startComputeMerge<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'compute-merge';\n this.#emitEventV2StageStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endComputeMerge event. */\n endComputeMerge<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'compute-merge';\n this.#emitEventV2StageEnd({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a notifyConductorDeny event. */\n notifyConductorDeny<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'deny';\n this.#emitEventV2ConductorNotification({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a conductorCrashed event. */\n conductorCrashed<T>(cell: string, behaviorKey: string, ctx: Readonly<ControllerContext<T>>, error: unknown) {\n const errorMessage = createVaultError(error, cell);\n const name = 'fatal';\n vaultError(cell, behaviorKey, errorMessage);\n\n this.#emitEventV2LifecycleNotification({\n cell,\n behaviorKey,\n name,\n ctx,\n payload: {\n message:\n 'This has proven to be untested code in unit tests. So you win some type of prize. Please create a github issues and share your amazing gift to bring down a systm.'\n },\n error: errorMessage\n });\n }\n\n /** Emits a conductorRevote event. */\n conductorRevote<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T> | ControllerContext<T>>) {\n const name = 'revote';\n this.#emitEventV2LifecycleNotification({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a conductorAbort event. */\n conductorAbort<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T> | ControllerContext<T>>) {\n const name = 'abort';\n this.#emitEventV2LifecycleNotification({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a conductorAttempt event. */\n conductorLicenseAttempt<T>(cell: string, featureCellKey: string) {\n const name = 'license-attempt';\n this.#emitEventV2LifecycleNotification({ cell, behaviorKey: featureCellKey, name, ctx: {} as BehaviorContext<T> });\n }\n\n /** Emits a conductorApproved event. */\n conductorLicenseApproved<T>(cell: string, featureCellKey: string) {\n const name = 'license-approved';\n this.#emitEventV2LifecycleNotification({ cell, behaviorKey: featureCellKey, name, ctx: {} as BehaviorContext<T> });\n }\n\n /** Emits a conductorDenied event. */\n conductorLicenseDenied<T>(cell: string, featureCellKey: string) {\n const name = 'license-denied';\n this.#emitEventV2LifecycleNotification({ cell, behaviorKey: featureCellKey, name, ctx: {} as BehaviorContext<T> });\n }\n\n /** Emits a startControllerAttempt event. */\n startControllerAttempt<T>(cell: string, behaviorKey: string, ctx: Readonly<ControllerContext<T>>) {\n const name = 'attempt';\n this.#emitEventV2ControllerStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a endControllerAttempt event. */\n endControllerAttempt<T>(\n cell: string,\n behaviorKey: string,\n ctx: Readonly<BehaviorContext<T> | ControllerContext<T>>,\n payload: unknown\n ) {\n const name = 'attempt';\n this.#emitEventV2ControllerEnd({ cell, behaviorKey, name, ctx, payload });\n }\n\n /** Emits a restartControllerAttempt event. */\n restartControllerAttempt<T>(\n cell: string,\n behaviorKey: string,\n ctx: Readonly<BehaviorContext<T>>,\n payload: DecisionOutcomeType\n ) {\n const name = 'restart-attempt';\n this.#emitEventV2ControllerNotification({ cell, behaviorKey, name, ctx, payload });\n }\n\n /** Emits a controllerFailure event. */\n\n controllerFailure<T>(behaviorKey: string, ctx: Readonly<ControllerContext<T>>, error: unknown) {\n const errorMessage = createVaultError(error, behaviorKey);\n const name = 'failure';\n this.#emitEventV2LifecycleNotification({ cell: ctx.featureCellKey, behaviorKey, name, ctx, error: errorMessage });\n }\n\n /** Emits a controllerFinalize event. */\n controllerFinalize<T>(behaviorKey: string, ctx: Readonly<ControllerContext<T> | BehaviorContext<T>>) {\n const name = 'finalize';\n this.#emitEventV2LifecycleNotification({ cell: ctx.featureCellKey, behaviorKey, name, ctx });\n }\n\n /** Emits a controllerSuccess event. */\n controllerSuccess<T>(behaviorKey: string, ctx: Readonly<ControllerContext<T>>) {\n const name = 'success';\n this.#emitEventV2LifecycleNotification({ cell: ctx.featureCellKey, behaviorKey, name, ctx });\n }\n\n /** Emits a startControllerVote event. */\n startControllerVote<T>(cell: string, behaviorKey: string, ctx: Readonly<ControllerContext<T>>) {\n const name = 'vote';\n this.#emitEventV2ControllerStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a endControllerVote event. */\n endControllerVote<T>(\n cell: string,\n behaviorKey: string,\n ctx: Readonly<ControllerContext<T>>,\n payload: ControllerDecisionShape\n ) {\n const name = 'vote';\n this.#emitEventV2ControllerEnd({ cell, behaviorKey, name, ctx, payload });\n }\n\n /** Emits a startCallbackError event. */\n startCoreCallbackError<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'core-callback-error';\n this.#emitEventV2StageStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endCoreCallbackError event. */\n endCoreCallbackError<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'core-callback-error';\n this.#emitEventV2StageEnd({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a startStatEmit event. */\n startCoreEmitState<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'core-emit-state';\n this.#emitEventV2StageStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endCoreEmitState event. */\n endCoreEmitState<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'core-emit-state';\n this.#emitEventV2StageEnd({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a startError event. */\n startCoreError<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'core-error';\n this.#emitEventV2StageStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endCoreError event. */\n endCoreError<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'core-error';\n this.#emitEventV2StageEnd({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a startState event. */\n startCoreState<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'core-state';\n this.#emitEventV2StageStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endCoreState event. */\n endCoreState<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'core-state';\n this.#emitEventV2StageEnd({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a startDecrypt event. */\n startDecrypt<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'decrypt';\n this.#emitEventV2StageStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endDecrypt event with optional payload. */\n endDecrypt<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>, payload?: unknown) {\n const name = 'decrypt';\n this.#emitEventV2StageEnd({ cell, behaviorKey, name, ctx, payload });\n }\n\n /** Emits a startDestroy event. */\n startDestroy<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n const name = 'destroy';\n this.#emitEventV2LifecycleStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endDestroy event. */\n endDestroy<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>, payload?: unknown): void {\n const name = 'destroy';\n this.#emitEventV2LifecycleEnd({ cell, behaviorKey, name, ctx, payload });\n }\n\n /** Emits a startEncrypt event. */\n startEncrypt<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'encrypt';\n this.#emitEventV2StageStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endEncrypt event. */\n endEncrypt<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'encrypt';\n this.#emitEventV2StageEnd({ cell, behaviorKey, name, ctx });\n }\n\n /**\n * Emits an error event. Errors are logged and sent to DevTools\n * depending on configured insight preferences.\n *\n * @param error - Raw error thrown by pipeline stage.\n */\n runtimeError<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>, error: unknown): void {\n const errorMessage = createVaultError(error, cell);\n vaultError(cell, behaviorKey, errorMessage);\n const name = 'runtime-error';\n this.#emitEventV2LifecycleNotification({ cell, behaviorKey, name, ctx, error: errorMessage });\n }\n\n /** Emits a startError event. */\n startErrorTransform<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'error-transform';\n this.#emitEventV2StageStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endError event. */\n endErrorTransform<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>, payload: VaultErrorShape) {\n const name = 'error-transform';\n this.#emitEventV2StageEnd({ cell, behaviorKey, name, ctx, payload });\n }\n\n /** Emits a startFilter event. */\n startFilter<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n const name = 'filter';\n this.#emitEventV2StageStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endFilter event. */\n endFilter<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n const name = 'filter';\n this.#emitEventV2StageEnd({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a startGlobalError event. */\n startGlobalError<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n const name = 'global-error';\n this.#emitEventV2LifecycleStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endGlobalError event. */\n endGlobalError<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n const name = 'global-error';\n this.#emitEventV2LifecycleEnd({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a ingressSubscribed event. */\n ingressSubscribed<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>, source: string): void {\n const name = 'ingress-subscribed';\n this.#emitEventV2LifecycleStart({ cell, behaviorKey, name, ctx, source });\n }\n\n /** Emits an ingressCompleted event. */\n ingressCompleted<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>, source: string): void {\n const name = 'ingress-completed';\n this.#emitEventV2LifecycleEnd({ cell, behaviorKey, name, ctx, source });\n }\n\n /** Emits a startInitialized event. */\n startInitialized<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n const name = 'initialized';\n this.#emitEventV2LifecycleStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endInitialized event. */\n endInitialized<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n const name = 'initialized';\n this.#emitEventV2LifecycleEnd({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a startInterceptor event. */\n startInterceptor<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'interceptor';\n this.#emitEventV2StageStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endInterceptor event with optional payload. */\n endInterceptor<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>, payload?: unknown) {\n const name = 'interceptor';\n this.#emitEventV2StageEnd({ cell, behaviorKey, name, ctx, payload });\n }\n\n /** Emits a startLoadPersist event. */\n startLoadPersist<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'load-persist';\n this.#emitEventV2StageStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endLoadPersist event with optional payload. */\n endLoadPersist<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>, payload?: unknown) {\n const name = 'load-persist';\n this.#emitEventV2StageEnd({ cell, behaviorKey, name, ctx, payload });\n }\n\n /** Emits a startMerge event for DevTools inspection. */\n startMerge<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n const name = 'merge';\n this.#emitEventV2LifecycleStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endMerge event with an optional payload. */\n endMerge<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>, payload?: unknown): void {\n const name = 'merge';\n this.#emitEventV2LifecycleEnd({ cell, behaviorKey, name, ctx, payload });\n }\n\n /** Emits a startOperator event. */\n startOperator<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n this.#emitEventV2StageStart({\n cell,\n behaviorKey,\n name: 'operator',\n ctx\n });\n }\n\n /** Emits an endOperator event with optional payload. */\n endOperator<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>, payload?: unknown) {\n this.#emitEventV2StageEnd({\n cell,\n behaviorKey,\n name: 'operator',\n ctx,\n payload\n });\n }\n\n /** Emits a startPersist event. */\n startPersist<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'persist';\n this.#emitEventV2StageStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endPersist event. */\n endPersist<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'persist';\n this.#emitEventV2StageEnd({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a startReducer event. */\n startReducer<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n this.#emitEventV2StageStart({\n cell,\n behaviorKey,\n name: 'reducer',\n ctx\n });\n }\n\n /** Emits an endReducer event. */\n endReducer<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n this.#emitEventV2StageEnd({\n cell,\n behaviorKey,\n name: 'reducer',\n ctx\n });\n }\n\n /** Emits a startReplace event for DevTools inspection. */\n startReplace<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n const name = 'replace';\n this.#emitEventV2LifecycleStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endReplace event with an optional payload. */\n endReplace<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>, payload?: unknown): void {\n const name = 'replace';\n this.#emitEventV2LifecycleEnd({ cell, behaviorKey, name, ctx, payload });\n }\n\n /** Emits a startReset event. */\n startReset<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n const name = 'reset';\n this.#emitEventV2LifecycleStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endReset event. */\n endReset<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>, payload?: unknown): void {\n const name = 'reset';\n this.#emitEventV2LifecycleEnd({ cell, behaviorKey, name, ctx, payload });\n }\n\n /** Emits a startResolve event. */\n startResolve<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n const name = 'resolve';\n this.#emitEventV2StageStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endResolve event. */\n endResolve<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n const name = 'resolve';\n this.#emitEventV2StageEnd({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a startSetInitialValue event. */\n startSetInitialValue<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n const name = 'set-initial-value';\n this.#emitEventV2LifecycleStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endSetInitialValue event. */\n endSetInitialValue<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n const name = 'set-initial-value';\n this.#emitEventV2LifecycleEnd({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a startStepwise event. */\n startStepwise<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n const name = 'stepwise';\n this.#emitEventV2StageStart({\n cell,\n behaviorKey,\n name,\n ctx\n });\n }\n\n /** Emits an endStepwise event. */\n endStepwise<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n const name = 'stepwise';\n this.#emitEventV2StageEnd({\n cell,\n behaviorKey,\n name,\n ctx\n });\n }\n\n /**\n * Emits a warning event to DevTools and console output.\n *\n * @param message - Warning description.\n */\n warn<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>, message: string): void {\n const errorMessage = createVaultError(message, cell);\n vaultWarn(cell, behaviorKey, errorMessage);\n const name = 'warn';\n this.#emitEventV2LifecycleNotification({ cell, behaviorKey, name, ctx, error: errorMessage });\n }\n\n #buildEventName<T>(eventInput: VaultMonitorEventShape<T>): VaultMonitorEventShape<T> {\n eventInput.name = `${eventInput.type}:${eventInput.boundary}:${eventInput.name}`;\n return eventInput;\n }\n\n #emitEventV2StageStart<T>(eventInput: VaultMonitorEventShape<T>): void {\n eventInput.type = EventTypes.Stage;\n eventInput.boundary = EventBoundaryTypes.Start;\n this.#emitEventV2(this.#buildEventName(eventInput));\n }\n\n #emitEventV2StageEnd<T>(eventInput: VaultMonitorEventShape<T>): void {\n eventInput.type = EventTypes.Stage;\n eventInput.boundary = EventBoundaryTypes.End;\n this.#emitEventV2(this.#buildEventName(eventInput));\n }\n\n #emitEventV2LifecycleStart<T>(eventInput: VaultMonitorEventShape<T>): void {\n eventInput.type = EventTypes.Lifecycle;\n eventInput.boundary = EventBoundaryTypes.Start;\n this.#emitEventV2(this.#buildEventName(eventInput));\n }\n\n #emitEventV2LifecycleEnd<T>(eventInput: VaultMonitorEventShape<T>): void {\n eventInput.type = EventTypes.Lifecycle;\n eventInput.boundary = EventBoundaryTypes.End;\n this.#emitEventV2(this.#buildEventName(eventInput));\n }\n\n #emitEventV2LifecycleNotification<T>(eventInput: VaultMonitorEventShape<T>): void {\n eventInput.type = EventTypes.Lifecycle;\n eventInput.boundary = EventBoundaryTypes.Notification;\n this.#emitEventV2(this.#buildEventName(eventInput));\n }\n\n #emitEventV2ConductorNotification<T>(eventInput: VaultMonitorEventShape<T>): void {\n eventInput.type = EventTypes.Conductor;\n eventInput.boundary = EventBoundaryTypes.Notification;\n this.#emitEventV2(this.#buildEventName(eventInput));\n }\n\n #emitEventV2ControllerStart<T>(eventInput: VaultMonitorEventShape<T>): void {\n eventInput.type = EventTypes.Controller;\n eventInput.boundary = EventBoundaryTypes.Start;\n this.#emitEventV2(this.#buildEventName(eventInput));\n }\n\n #emitEventV2ControllerEnd<T>(eventInput: VaultMonitorEventShape<T>): void {\n eventInput.type = EventTypes.Controller;\n eventInput.boundary = EventBoundaryTypes.End;\n this.#emitEventV2(this.#buildEventName(eventInput));\n }\n\n #emitEventV2ControllerNotification<T>(eventInput: VaultMonitorEventShape<T>): void {\n eventInput.type = EventTypes.Controller;\n eventInput.boundary = EventBoundaryTypes.Notification;\n this.#emitEventV2(this.#buildEventName(eventInput));\n }\n\n /**\n * Emits a normalized monitoring event using a structured event input object.\n *\n * @param eventInput Aggregated monitoring event input containing context, payload, and metadata.\n */\n #emitEventV2<T>(eventInput: VaultMonitorEventShape<T>): void {\n const { cell, ctx, name, behaviorKey, source, error, payload, type, boundary } = eventInput;\n if (this.isChromeDevTools(cell) || !DevMode.active) return;\n\n let insight: InsightConfig;\n\n if (this.globalInsightOverride) {\n insight = this.globalInsightOverride;\n } else {\n const config = this.cellRegistry.get(cell);\n if (!config || !config.hasInsight) return;\n insight = config.insights[0];\n }\n\n const event: EventShape = {\n id: crypto.randomUUID(),\n cell,\n behaviorKey,\n name,\n timestamp: Date.now(),\n state: this.#toSnapshot(ctx as Readonly<BehaviorContext<T>>),\n type:\n type ??\n /* istanbul ignore next -- defensive invariant */\n EventTypes.Unknown,\n boundary:\n boundary ??\n /* istanbul ignore next -- defensive invariant */\n EventBoundaryTypes.Unknown,\n payload,\n error,\n source\n };\n\n if (ctx.traceId) {\n event.traceId = ctx.traceId;\n }\n\n this.#eventBus.nextPipeline(this.applyPolicy(event, insight));\n }\n}\n\n// If you’d like, I can also show you one tiny addition to your EventBus that would make Chrome extensions and external DevTools integration dramatically easier (like 4 lines of code). It would fit perfectly with the architecture you already wrote.\n","/**\n * Defines the set of supported controller event type identifiers.\n * This constant provides the canonical string values used to classify controller event outcomes.\n */\nexport const ControllerEventTypes = {\n /**\n * Indicates that the controller requested an abort to terminate now.\n */\n Abort: 'abort',\n\n /**\n * Indicates that the controller execution resulted in a failure.\n */\n Failure: 'failure',\n\n /**\n * Indicates that the license controller approved the FeatureCell for operation.\n */\n LicenseApproved: 'licenseApproved',\n\n /**\n * Indicates that the license controller denied the FeatureCell for operation.\n */\n LicenseDenied: 'licenseDenied',\n\n /**\n * Indicates that the controller requested a revote.\n */\n Revote: 'revote',\n\n /**\n * Indicates that the controller execution completed successfully.\n */\n Success: 'success'\n} as const;\n\n/**\n * Represents the union of all valid controller event type values.\n * This type constrains controller events to the supported identifiers defined by the event type registry.\n *\n * --RelatedStart--\n * ControllerEventTypes\n * --RelatedEnd--\n */\nexport type ControllerEventType = (typeof ControllerEventTypes)[keyof typeof ControllerEventTypes];\n","import { Subject } from 'rxjs';\n\nimport type {\n ControllerAttemptMessageShape,\n ControllerContract,\n ControllerFailMessageShape,\n ControllerFinalizeMessageShape,\n ControllerSuccessMessageShape,\n VaultErrorShape\n} from '@sdux-vault/shared';\nimport { BehaviorContext, ControllerContext, ControllerMessageTypes } from '@sdux-vault/shared';\nimport { Arbitrator } from '../arbitrator/arbitrator';\nimport { VaultMonitor } from '../monitor/vault-monitor.service';\nimport { ControllerEventShape } from '../shapes/controller/controller-event.shape';\nimport { ControllerEventTypes } from '../types/controller-event.type';\n\n/**\n * Coordinates controller arbitration and lifecycle notifications.\n *\n * This class mediates between pipeline execution and registered controllers\n * by delegating vote aggregation to the Arbitrator and emitting controller\n * lifecycle events for monitoring and diagnostics.\n */\nexport class DecisionEngine<T> {\n readonly #arbitrator = new Arbitrator<T>();\n readonly #vaultMonitor = VaultMonitor();\n\n /**\n * Creates a new decision engine instance.\n *\n * @param controllers - The controllers participating in pipeline decisions.\n * @param events$ - Subject used to emit controller lifecycle events.\n */\n constructor(\n private readonly controllers: ControllerContract<T>[],\n private readonly events$: Subject<ControllerEventShape>\n ) {}\n\n /**\n * Evaluates whether a pipeline execution attempt is permitted.\n *\n * @param ctx - The controller context for the current pipeline attempt.\n * @returns An observable emitting the aggregated controller decision.\n */\n evaluateAttempt(ctx: ControllerContext<T>) {\n const msg: ControllerAttemptMessageShape<T> = {\n type: ControllerMessageTypes.Attempt,\n traceId: ctx.traceId!,\n ctx\n };\n\n return this.#arbitrator.evaluateAttempt(this.controllers, msg);\n }\n\n /**\n * Notifies controllers that a pipeline execution completed successfully.\n *\n * @param ctx - The controller context associated with the successful run.\n */\n notifySuccess(ctx: ControllerContext<T>): void {\n if (!this.controllers.length) return;\n\n const msg: ControllerSuccessMessageShape<T> = {\n type: ControllerMessageTypes.Success,\n traceId: ctx.traceId!,\n ctx\n };\n\n this.#vaultMonitor.controllerSuccess('decision-engine', ctx);\n\n this.#arbitrator.notify(this.controllers, msg).subscribe({\n complete: () => {\n if (!this.events$.closed) {\n this.events$.next({\n traceId: ctx.traceId,\n type: ControllerEventTypes.Success\n });\n }\n }\n });\n }\n\n /**\n * Notifies controllers that a pipeline execution failed.\n *\n * @param ctx - The controller context associated with the failure.\n * @param error - The error that caused the pipeline to fail.\n */\n notifyFailure(ctx: ControllerContext<T>, error: VaultErrorShape | unknown): void {\n if (!this.controllers.length) return;\n\n const msg: ControllerFailMessageShape<T> = {\n type: ControllerMessageTypes.Failure,\n traceId: ctx.traceId!,\n ctx,\n error\n };\n\n this.#vaultMonitor.controllerFailure('decision-engine', ctx, error);\n\n this.#arbitrator.notify(this.controllers, msg).subscribe({\n complete: () => {\n if (!this.events$.closed) {\n this.events$.next({\n traceId: ctx.traceId,\n type: ControllerEventTypes.Failure\n });\n }\n }\n });\n }\n\n /**\n * Notifies controllers that a pipeline trace has finalized.\n *\n * @param ctx - The context associated with the finalized pipeline trace.\n */\n notifyFinalize(ctx: ControllerContext<T> | BehaviorContext<T>): void {\n if (!this.controllers.length) return;\n\n const msg: ControllerFinalizeMessageShape = {\n type: ControllerMessageTypes.Finalize,\n traceId: ctx.traceId\n };\n\n this.#vaultMonitor.controllerFinalize('decision-engine', ctx);\n\n this.#arbitrator.notify(this.controllers, msg).subscribe();\n }\n}\n","/**\n * Canonical identifier used to label the Orchestrator execution context.\n */\nexport const VAULT_ORCHESTRATOR = 'vault-orchestrator';\n","/**\n * Set of reserved FeatureCell API keys that behaviors are not allowed to\n * override through `extendCellAPI()`.\n *\n * These keys represent core lifecycle operations, pipeline configuration\n * methods, state mutation entry points, source adapters, tap-stage hooks,\n * identity properties, and other protected extensions used by the\n * FeatureCell runtime. Any attempt by a behavior to redefine one of these\n * keys will result in a runtime error to preserve API integrity.\n *\n * This list ensures that behaviors cannot replace, shadow, or mutate\n * critical functionality required for correct operation of the vault,\n * pipeline builder, state transitions, or devtools visibility.\n */\nexport const PROTECTED_FEATURE_CELL_KEYS = new Set<string>([\n // Core lifecycle\n 'initialize',\n 'destroy',\n 'destroyed$',\n 'reset',\n 'reset$',\n\n // Pipeline configurators\n 'reducers',\n 'operators',\n 'filters',\n 'interceptors',\n\n // State mutation\n 'mergeState',\n 'replaceState',\n\n // Tap stages\n 'beforeTaps',\n 'afterTaps',\n\n // Identity\n 'key',\n\n // State container\n 'state',\n\n // Other keys\n 'cache',\n 'persist',\n 'encrypt',\n 'beforeTap',\n 'afterTap',\n 'hydrate'\n]);\n","// --- AI Model File Path (DO NOT DELETE) ---\n// FilePath: projects > engine > src > lib > types > vault-registration-license-status.type.ts\n// Updated: 2026-03-03 10:09\n//\t Generated by pathcomment [tab] (see .vscode/typescript.code-snippets) or\n//\t cmd+alt+j (see .vscode/keybindings.json)\n// --- END AI MODEL FILE PATH ---\n\nexport const VaultRegistrationLicenseStatusTypes = {\n NotRequired: 'not-required',\n Pending: 'pending',\n Revoked: 'revoked',\n Timeout: 'timeout',\n Valid: 'valid'\n} as const;\n\nexport type VaultRegistrationLicenseStatusType =\n (typeof VaultRegistrationLicenseStatusTypes)[keyof typeof VaultRegistrationLicenseStatusTypes];\n","/**\n * Set of all known behavior and controller keys shipped with the core,\n * addon, and engine packages. Keys in this set are always permitted\n * during behavior and controller initialization regardless of license\n * status.\n *\n * Any key not present in this set is treated as a custom extension and\n * requires a valid Vault license to be registered.\n *\n * Entries follow the canonical key format produced by\n * `defineBehaviorKey()` and `defineControllerKey()`:\n *\n * `SDUX::Behavior::<Domain>::<Name>`\n * `SDUX::Controller::<Domain>::<Name>`\n */\nexport const KNOWN_VAULT_KEYS = new Set<string>([\n // ---------------------------------------------------------------------------\n // Core Behaviors (libs/core)\n // ---------------------------------------------------------------------------\n 'SDUX::Behavior::Core::Error',\n 'SDUX::Behavior::Core::ErrorCallback',\n 'SDUX::Behavior::Core::Filter',\n 'SDUX::Behavior::Core::Reducer',\n 'SDUX::Behavior::Core::BeforeTap',\n 'SDUX::Behavior::Core::AfterTap',\n 'SDUX::Behavior::Core::EmitState',\n 'SDUX::Behavior::Core::State',\n 'SDUX::Behavior::Core::Value',\n 'SDUX::Behavior::Core::Observable',\n 'SDUX::Behavior::Core::Promise',\n 'SDUX::Behavior::Core::FromStream',\n 'SDUX::Behavior::Core::FromPromise',\n 'SDUX::Behavior::Core::FromObservable',\n 'SDUX::Behavior::Core::ObjectMerge',\n 'SDUX::Behavior::Core::ArrayMerge',\n\n // ---------------------------------------------------------------------------\n // Addon Behaviors (libs/addons)\n // ---------------------------------------------------------------------------\n 'SDUX::Behavior::Persist::SessionStorage',\n 'SDUX::Behavior::Persist::LocalStorage',\n 'SDUX::Behavior::Persist::CookieStorage',\n 'SDUX::Behavior::Encrypt::Aes256',\n 'SDUX::Behavior::Policy::StepwiseFilter',\n 'SDUX::Behavior::Policy::StepwiseReducer',\n 'SDUX::Behavior::Policy::StepwiseResolve',\n 'SDUX::Behavior::Addon::DistinctUntilChanged',\n 'SDUX::Behavior::Interceptor::GlobalErrorPause',\n 'SDUX::Behavior::Merge::ArrayAppend',\n 'SDUX::Behavior::Merge::ArrayPush',\n 'SDUX::Behavior::Merge::Deep',\n 'SDUX::Behavior::Core::Query',\n 'SDUX::Behavior::Core::Lookup',\n 'SDUX::Behavior::Cache::State',\n\n // ---------------------------------------------------------------------------\n // Engine Behaviors (vault-engine)\n // ---------------------------------------------------------------------------\n 'SDUX::Behavior::Core::License',\n\n // ---------------------------------------------------------------------------\n // Engine Controllers (vault-engine)\n // ---------------------------------------------------------------------------\n 'SDUX::Controller::Policy::CoreAbstain',\n 'SDUX::Controller::Policy::CoreError',\n 'SDUX::Controller::Policy::CoreLicense',\n\n // ---------------------------------------------------------------------------\n // Addon Controllers (libs/addons)\n // ---------------------------------------------------------------------------\n 'SDUX::Controller::Policy::ReplayGlobalError',\n 'SDUX::Controller::Policy::Stepwise',\n 'SDUX::Controller::Policy::MaxFailures',\n 'SDUX::Controller::Policy::Delay',\n 'SDUX::Controller::Policy::Throttle'\n]);\n","/**\n * Canonical license identifier for the SDuX Vault engine license.\n *\n * This value must match the `licenseId` field in the `VaultLicensingShape`\n * payload supplied via `provideVault({ licenses: [...] })`.\n */\nexport const VAULT_LICENSE_ID = 'sdux-vault';\n","// --- AI Model File Path (DO NOT DELETE) ---\n// FilePath: projects > engine > src > lib > factories > vault > vault-core.function.ts\n// Updated: 2026-03-02 19:52\n//\t Generated by pathcomment [tab] (see .vscode/typescript.code-snippets) or\n//\t cmd+alt+j (see .vscode/keybindings.json)\n// --- END AI MODEL FILE PATH ---\n\nimport {\n DevMode,\n isTestEnv,\n setVaultLogLevel,\n VaultConfig,\n VaultLicensingShape,\n VaultRegistrationEntityShape,\n VaultRegistrationShape,\n vaultWarn\n} from '@sdux-vault/shared';\nimport { ReplaySubject, Subject, Subscription } from 'rxjs';\nimport { InitializeLicensingService, resetLicensingServiceForTests } from '../../licensing/licensing.service';\nimport { RegisteredFeatureCellShape } from '../../shapes/feature-cell/registered-feature-cell.shape';\nimport { LicensingBehaviorEventShape } from '../../shapes/licensing/licensing-behavior-event.shape';\nimport { LicensingControllerEvent } from '../../shapes/licensing/licensing-controller-event.shape';\nimport { LicensingEventShape } from '../../shapes/licensing/licensing-event.shape';\nimport { LicensingFeatureDescriptionEventShape } from '../../shapes/licensing/licensing-feature-description-event.shape';\nimport { LicensingValidationShape } from '../../shapes/licensing/licensing-validation.shape';\nimport { VaultShape } from '../../shapes/vault/vault.shape';\nimport { LicenseEventTypes } from '../../types/license-event.type';\nimport { VaultRegistrationLicenseStatusTypes } from '../../types/vault-registration-license-status.type';\n\nimport { initDevtoolsWidget } from '@sdux-vault/devtools';\nimport { KNOWN_VAULT_KEYS } from '../../constants/known-vault-keys.constant';\nimport { VAULT_LICENSE_ID } from '../../constants/vault-license-id.constant';\n\nlet instance: VaultCoreInstance | null = null;\n\nexport function VaultCore(config: VaultConfig = {}): void {\n if (!instance) {\n instance = new VaultCoreInstance(config);\n }\n}\n\nclass VaultCoreInstance {\n #licensingSub?: Subscription;\n #validaionSub?: Subscription;\n #licenseMap = new Map<string, unknown>();\n #terminalStatus = new Map<string, boolean>();\n\n #licenseTimeoutMs?: number;\n // eslint-disable-next-line\n #licenseTimers = new Map<string, any>();\n\n #licensingBus$ = new Subject<LicensingEventShape<unknown>>();\n #validationBus$ = new ReplaySubject<LicensingValidationShape>();\n\n #lastStatus = new Map<string, boolean>();\n\n #vaultConfig!: Readonly<VaultShape> | undefined;\n\n #registry: Map<string, VaultRegistrationShape> = new Map();\n\n constructor(config: VaultConfig) {\n InitializeLicensingService(this.#licensingBus$, this.#validationBus$.asObservable());\n this.setVaultConfig(config);\n this.#initializeLicenses(config.licenses);\n this.#subscribeToLicensingEvents();\n this.#injectDebugWidget();\n }\n\n //#region Public methods\n\n /**\n * Applies and freezes the global Vault configuration.\n *\n * This function is invoked by `provideVault()` and must never be\n * called manually in userland code.\n *\n * The configuration is:\n * - Normalized and frozen\n * - Prevented from being set multiple times (except in test environments)\n * - Used to validate license tokens asynchronously\n *\n * @param config - Raw user-supplied Vault configuration.\n * @throws If configuration is set more than once in non-test environments.\n */\n setVaultConfig(config: VaultConfig): void {\n const vaultConfig = {\n devMode: config.devMode ?? false,\n logLevel: config.logLevel ?? 'off'\n } as VaultShape;\n\n this.#vaultConfig = Object.freeze(vaultConfig);\n\n DevMode.setDevMode(this.#vaultConfig.devMode);\n setVaultLogLevel(this.#vaultConfig.logLevel!);\n\n this.#licenseTimeoutMs = config.licenseTimeoutMs ?? 15_000;\n\n this.#warnIfAccidentalDevMode();\n }\n\n resetForTesting(): void {\n this.#licensingSub?.unsubscribe();\n this.#licensingSub = undefined;\n\n this.#validaionSub?.unsubscribe();\n this.#validaionSub = undefined;\n\n this.#vaultConfig = undefined;\n this.resetFeatureCellRegistry();\n\n this.#lastStatus.clear();\n this.#licenseMap.clear();\n }\n\n resetFeatureCellRegistry(): void {\n this.#registry.clear();\n }\n\n registerCellRuntime(key: string): void {\n this.#ensureRecord(key);\n }\n\n registerBehaviors(key: string, behaviors: VaultRegistrationEntityShape[]): void {\n const record = this.#ensureRecord(key);\n record.behaviors = this.#registerEntities(behaviors);\n record.behaviorsRegistered = true;\n }\n\n registerControllers(key: string, controllers: VaultRegistrationEntityShape[]): void {\n const record = this.#ensureRecord(key);\n record.controllers = this.#registerEntities(controllers);\n record.controllersRegistered = true;\n }\n\n registerFluentApis(\n key: string,\n summary: {\n filters: number;\n reducers: number;\n beforeTaps: number;\n afterTaps: number;\n emitStateCallbacks: number;\n errorCallbacks: number;\n }\n ): void {\n const record = this.#ensureRecord(key);\n record.fluentApis = Object.freeze(summary);\n }\n\n getLicensePayload(licenseId: string): unknown | undefined {\n return this.#licenseMap.get(licenseId);\n }\n\n isAuthorizedKey(key: string): boolean {\n return KNOWN_VAULT_KEYS.has(key);\n }\n\n hasVaultLicense(): boolean {\n return this.#licenseMap.has(VAULT_LICENSE_ID);\n }\n\n //#endregion\n\n //#region private Methods\n\n #initializeLicenses(licenses?: VaultLicensingShape[]): void {\n if (!licenses?.length) return;\n\n for (const license of licenses) {\n if (!license?.licenseId) continue;\n this.#licenseMap.set(license.licenseId, license.payload);\n }\n }\n\n #registerEntities(entities: VaultRegistrationEntityShape[]): Map<string, Readonly<VaultRegistrationEntityShape>> {\n return new Map(\n entities.map((entity: VaultRegistrationEntityShape) => {\n let needsLicense: boolean;\n if (DevMode.active) {\n needsLicense = false;\n } else {\n needsLicense = entity.needsLicense ?? false;\n }\n\n const frozen: VaultRegistrationEntityShape = {\n key: entity.key,\n type: entity.type,\n critical: !!entity.critical,\n needsLicense,\n validLicense: needsLicense\n ? VaultRegistrationLicenseStatusTypes.Pending\n : VaultRegistrationLicenseStatusTypes.NotRequired\n };\n\n return [entity.key, Object.freeze(frozen)];\n })\n );\n }\n\n #subscribeToLicensingEvents(): void {\n this.#licensingSub = this.#licensingBus$.subscribe((event: LicensingEventShape<unknown>) => {\n switch (event.type) {\n case LicenseEventTypes.DescribeFeature: {\n const featureEvent = event as LicensingFeatureDescriptionEventShape<unknown>;\n this.registerFluentApis(featureEvent.featureCellKey, this.#summarizeFluent(featureEvent));\n break;\n }\n\n case LicenseEventTypes.DescribeBehaviors: {\n const behaviorEvent = event as LicensingBehaviorEventShape;\n this.registerBehaviors(behaviorEvent.featureCellKey, behaviorEvent.behaviors);\n this.#emitLicenseStatus(behaviorEvent.featureCellKey);\n break;\n }\n\n case LicenseEventTypes.DescribeControllers: {\n const controllerEvent = event as LicensingControllerEvent;\n this.registerControllers(controllerEvent.featureCellKey, controllerEvent.controllers);\n this.#emitLicenseStatus(controllerEvent.featureCellKey);\n break;\n }\n\n case LicenseEventTypes.RequireLicense: {\n this.#startLicenseTimeout(event.featureCellKey);\n this.#recordLicenses(event);\n return;\n }\n\n case LicenseEventTypes.ValidateLicense: {\n this.#handleLicenseValidation(event);\n this.#emitLicenseStatus(event.featureCellKey);\n return;\n }\n }\n });\n }\n\n #startLicenseTimeout(featureCellKey: string): void {\n if (!this.#licenseTimeoutMs) return;\n\n if (this.#licenseTimers.has(featureCellKey)) return; // already running\n\n const timer = setTimeout(() => {\n this.#expirePendingLicenses(featureCellKey);\n this.#licenseTimers.delete(featureCellKey);\n }, this.#licenseTimeoutMs);\n\n this.#licenseTimers.set(featureCellKey, timer);\n }\n\n #expirePendingLicenses(featureCellKey: string): void {\n const record = this.#registry.get(featureCellKey);\n if (!record) return;\n\n // istanbul ignore next -- defensive only not testable\n const allEntities = [...(record.behaviors?.values() ?? []), ...(record.controllers?.values() ?? [])];\n\n let changed = false;\n\n for (const entity of allEntities) {\n if (entity.needsLicense && entity.validLicense === VaultRegistrationLicenseStatusTypes.Pending) {\n const map = record.behaviors?.has(entity.key) ? record.behaviors : record.controllers;\n\n map?.set(\n entity.key,\n Object.freeze({\n ...entity,\n validLicense: VaultRegistrationLicenseStatusTypes.Timeout\n })\n );\n\n changed = true;\n }\n }\n\n if (changed) {\n this.#publishStatus(featureCellKey, false);\n }\n\n this.#clearLicenseTimer(featureCellKey);\n }\n\n // Do not evaluate until both sides registered\n #emitLicenseStatus(featureCellKey: string): void {\n const record = this.#registry.get(featureCellKey);\n if (!record) return;\n\n if (!record.behaviorsRegistered || !record.controllersRegistered) return;\n\n // istanbul ignore next -- defensive only not testable\n const allEntities = [...(record.behaviors?.values() ?? []), ...(record.controllers?.values() ?? [])];\n\n // Only entities that require a license matter\n const entities = allEntities.filter((e) => e.needsLicense);\n\n // Nothing requires a license → immediately approved\n if (entities.length === 0) {\n this.#publishStatus(featureCellKey, true);\n return;\n }\n\n // Any revoked → deny immediately\n if (\n entities.some(\n (e) =>\n e.validLicense === VaultRegistrationLicenseStatusTypes.Revoked ||\n e.validLicense === VaultRegistrationLicenseStatusTypes.Timeout\n )\n ) {\n this.#clearLicenseTimer(featureCellKey);\n this.#publishStatus(featureCellKey, false);\n return;\n }\n\n // Any pending → do nothing (still waiting)\n if (entities.some((e) => e.validLicense === VaultRegistrationLicenseStatusTypes.Pending)) {\n return;\n }\n\n // All valid\n this.#publishStatus(featureCellKey, true);\n }\n\n #clearLicenseTimer(featureCellKey: string): void {\n const timer = this.#licenseTimers.get(featureCellKey);\n if (timer) {\n clearTimeout(timer);\n this.#licenseTimers.delete(featureCellKey);\n }\n }\n\n #publishStatus(featureCellKey: string, approved: boolean): void {\n if (this.#terminalStatus.has(featureCellKey)) return;\n\n this.#terminalStatus.set(featureCellKey, approved);\n\n this.#clearLicenseTimer(featureCellKey);\n\n this.#lastStatus.set(featureCellKey, approved);\n\n this.#validationBus$.next({\n featureCellKey,\n approved\n });\n }\n\n #handleLicenseValidation(event: LicensingEventShape<unknown>): void {\n const { featureCellKey, key, licenseToken, valid } = event;\n\n if (this.#terminalStatus.has(event.featureCellKey)) return;\n\n if (!key) {\n vaultWarn('Cannot validate license without a key.');\n return;\n }\n\n const record = this.#registry.get(featureCellKey);\n if (!record) return;\n\n this.#applyLicenseValidation(record.behaviors, key, licenseToken, valid);\n this.#applyLicenseValidation(record.controllers, key, licenseToken, valid);\n }\n\n #applyLicenseValidation(\n entities: Map<string, VaultRegistrationEntityShape> | undefined,\n key: string,\n licenseId: string | undefined,\n valid: boolean | undefined\n ): void {\n if (!entities?.has(key)) return;\n\n const entity = entities.get(key)!;\n\n // Must require license\n if (!entity.needsLicense) return;\n\n // Must have previously issued key\n if (!entity.licenseId) return;\n\n // Must match exactly\n if (entity.licenseId !== licenseId) {\n // if (DevMode.active) {\n vaultWarn(`[vault] License key mismatch for \"${key}\".`);\n //}\n return;\n }\n\n entities.set(\n key,\n Object.freeze({\n ...entity,\n validLicense: valid ? VaultRegistrationLicenseStatusTypes.Valid : VaultRegistrationLicenseStatusTypes.Revoked\n })\n );\n }\n\n #recordLicenses(event: LicensingEventShape<unknown>): void {\n const { featureCellKey, key, licenseToken } = event;\n\n const record = this.#registry.get(featureCellKey);\n if (!record) return;\n\n // istanbul ignore next -- defensive only not testable\n if (!key || typeof key !== 'string') {\n throw new Error('[vault] Cannot register controller license without a key.');\n }\n\n this.#recordLicense(record.behaviors, key, licenseToken);\n this.#recordLicense(record.controllers, key, licenseToken);\n }\n\n #recordLicense(\n entities: Map<string, VaultRegistrationEntityShape> | undefined,\n key: string,\n licenseId: string | undefined\n ): void {\n if (!entities?.has(key)) return;\n\n const entity = entities.get(key)!;\n\n // Must require license\n if (!entity.needsLicense) return;\n\n // First write wins — do not overwrite\n if (entity.licenseId) return;\n\n if (!licenseId) return;\n\n entities.set(\n key,\n Object.freeze({\n ...entity,\n licenseId\n })\n );\n }\n\n #warnIfAccidentalDevMode(): void {\n if (DevMode.active && !isTestEnv.active) {\n // eslint-disable-next-line\n console.error(\n `[vault] \"Development Mode\" is enabled outside of a test environment.\\n` +\n `This can expose sensitive data because safeguards that normally remove or sanitize data are disabled.\\n` +\n `You have explicitly disabled these safeguards and are responsible for ensuring production safety.\\n` +\n `If this is intentional, you can safely ignore this message.`\n );\n }\n }\n\n #summarizeFluent(event: Partial<LicensingFeatureDescriptionEventShape<unknown>>) {\n const fluent: Partial<LicensingFeatureDescriptionEventShape<unknown>['fluentApis']> = event?.fluentApis ?? {};\n\n return {\n filters: Array.isArray(fluent?.filters) ? fluent.filters.length : 0,\n reducers: Array.isArray(fluent?.reducers) ? fluent.reducers.length : 0,\n beforeTaps: Array.isArray(fluent?.beforeTaps) ? fluent.beforeTaps.length : 0,\n afterTaps: Array.isArray(fluent?.afterTaps) ? fluent.afterTaps.length : 0,\n emitStateCallbacks: Array.isArray(fluent?.emitStateCallbacks) ? fluent.emitStateCallbacks.length : 0,\n errorCallbacks: Array.isArray(fluent?.errorCallbacks) ? fluent.errorCallbacks.length : 0\n };\n }\n\n #ensureRecord(key: string): VaultRegistrationShape {\n if (!this.#registry.has(key)) {\n this.#registry.set(key, { key, behaviorsRegistered: false, controllersRegistered: false });\n }\n\n return this.#registry.get(key)!;\n }\n\n #injectDebugWidget(): void {\n if (!DevMode.active) return;\n // istanbul ignore next line - this is defensive only\n if (typeof document === 'undefined') return;\n\n // Ensure root container exists\n globalThis.sdux ??= {};\n\n // Ensure debugWidget exists\n globalThis.sdux.debugWidget ??= {};\n\n globalThis.sdux.debugWidget.getRegistry = () => this.getRegistrySnapshot();\n\n initDevtoolsWidget();\n }\n\n //#endregion\n\n //#region Public Testing Method\n registerVaultSettled(key: string, fn: () => Promise<void>): void {\n const record = this.#ensureRecord(key);\n record.vaultSettled = fn;\n }\n\n async awaitFeatureCellSettled(key: string): Promise<void> {\n const record = this.#registry.get(key);\n\n if (!record) {\n throw new Error(`[vault] FeatureCell \"${key}\" not registered.`);\n }\n\n if (typeof record.vaultSettled === 'function') {\n await record.vaultSettled();\n await Promise.resolve(); // flush microtasks\n }\n }\n\n async awaitAllSettled(): Promise<void> {\n for (const record of this.#registry.values()) {\n if (typeof record.vaultSettled === 'function') {\n await record.vaultSettled();\n }\n }\n\n await Promise.resolve();\n }\n\n // TESTING ONLY — do not use in production code\n getRegistrySnapshot(): ReadonlyMap<string, VaultRegistrationShape> {\n // Return a shallow cloned map so tests cannot mutate internal state\n return new Map(this.#registry);\n }\n\n //#endregion\n}\n\nexport function registerFeatureCell(entry: RegisteredFeatureCellShape): void {\n if (!instance) {\n throw new Error('[vault] Vault not initialized.');\n }\n\n if (!entry) {\n throw new Error('[vault] registerFeatureCell() requires a valid entry object.');\n }\n\n if (!entry.key || typeof entry.key !== 'string') {\n throw new Error('[vault] registerFeatureCell() requires a valid \"key\" (non-empty string).');\n }\n\n instance.registerCellRuntime(entry.key);\n}\n\nexport function getLicensePayload(licenseId: string): unknown {\n if (!instance) {\n throw new Error('[vault] Vault not initialized.');\n }\n\n if (typeof licenseId !== 'string' || !licenseId.trim()) {\n throw new Error('[vault] getLicensePayload() requires a valid licenseId.');\n }\n\n return instance.getLicensePayload(licenseId);\n}\n\nexport async function vaultAllSettled(): Promise<void> {\n if (!instance) return;\n await instance.awaitAllSettled();\n}\n\nexport async function vaultSettled(key: string): Promise<void> {\n if (!instance) {\n throw new Error('[vault] Vault not initialized.');\n }\n\n await instance.awaitFeatureCellSettled(key);\n}\n\nexport function registerVaultSettled(key: string, vaultSettled?: () => Promise<void>): void {\n if (!instance) {\n throw new Error('[vault] Vault not initialized.');\n }\n\n if (!key || typeof key !== 'string') {\n throw new Error('[vault] registerVaultSettled() requires a valid \"key\" (non-empty string).');\n }\n\n if (typeof vaultSettled !== 'function') {\n // silently ignore in production; nothing to attach\n return;\n }\n\n instance.registerVaultSettled(key, vaultSettled);\n}\n\n/**\n * Resets the global Vault configuration for isolated tests.\n *\n * This function should **never** be called in production builds.\n */\nexport function resetVaultForTests(): void {\n resetLicensingServiceForTests();\n instance?.resetForTesting();\n instance = null;\n}\n\nexport function resetFeatureCellRegistry(): void {\n instance?.resetFeatureCellRegistry();\n}\n\nexport function getVaultRegistryForTests(): ReadonlyMap<string, VaultRegistrationShape> | undefined {\n if (!instance) {\n throw new Error('[vault] Vault not initialized.');\n }\n\n return instance.getRegistrySnapshot();\n}\n\nexport function isAuthorizedKey(key: string): boolean {\n if (!instance) return false;\n\n if (DevMode.active) return true;\n\n return instance.isAuthorizedKey(key);\n}\n\nexport function hasVaultLicense(): boolean {\n if (!instance) return false;\n\n if (DevMode.active) return true;\n\n return instance.hasVaultLicense();\n}\n","// projects/core/src/lib/services/vault-behavior-lifecycle.service.ts\nimport {\n BEHAVIOR_META,\n BehaviorClassContext,\n BehaviorClassContract,\n BehaviorContract,\n BehaviorMetaShape,\n FeatureCellBaseShape,\n FeatureCellExtensionContext,\n validateBehaviorKey,\n vaultDebug,\n vaultError,\n VaultMonitorContract,\n vaultWarn\n} from '@sdux-vault/shared';\nimport { PROTECTED_FEATURE_CELL_KEYS } from '../constants/protected-feature-cell-keys.constant';\nimport { getLicensePayload, hasVaultLicense, isAuthorizedKey } from '../factories/vault/vault-core.function';\nimport { BehaviorInitializeClassContract } from '../interfaces/behavior/behavior-initialization.interface';\n\n/**\n * Manages instantiation and lifecycle initialization of FeatureCell behaviors.\n *\n * This class is responsible for constructing behavior instances from declared\n * behavior classes, validating metadata and keys, enforcing criticality rules,\n * and applying behavior-defined API extensions onto a FeatureCell instance.\n */\nexport class BehaviorInitializationClass implements BehaviorInitializeClassContract {\n /** Tracks whether initialization has already been performed. */\n #initialized = false;\n\n /** FeatureCell identifier associated with this initializer. */\n #cellKey: string;\n\n /**\n * Creates a new behavior initializer for a specific FeatureCell.\n *\n * @param cellKey - The unique FeatureCell key.\n */\n constructor(cellKey: string) {\n this.#cellKey = cellKey;\n }\n\n /**\n * Instantiates and validates all behaviors declared for a FeatureCell.\n *\n * This method enforces one-time initialization, validates required behavior\n * metadata, instantiates behavior classes with their configuration, and\n * ensures behavior keys are unique and correctly formatted.\n *\n * @typeParam T - The FeatureCell state value type.\n * @param behaviorClasses - Behavior class definitions to instantiate.\n * @param behaviorConfigs - Configuration map keyed by behavior configKey.\n * @returns An ordered array of instantiated behavior objects.\n */\n initializeBehaviors<T>(\n behaviorClasses: Array<BehaviorClassContract<T>>,\n behaviorConfigs: Map<string, unknown>\n ): BehaviorContract<T>[] {\n if (this.#initialized)\n throw new Error(\n `[vault] VaultBehaviorRunner already initialized — cannot reissue core behavior ID for feature cell \"${this.#cellKey}\".`\n );\n\n this.#initialized = true;\n\n if (!behaviorClasses || behaviorClasses.length === 0) return [];\n\n const seenKeys = new Set<string>();\n\n return (\n behaviorClasses\n // eslint-disable-next-line\n .map((BehaviorClass: any) => {\n let isCritical = false;\n\n try {\n if (typeof BehaviorClass !== 'function') return;\n\n const meta = BehaviorClass[BEHAVIOR_META] as BehaviorMetaShape | undefined;\n\n if (!meta) {\n isCritical = true;\n throw new Error(`[vault] Behavior \"${BehaviorClass.name}\" missing @VaultBehavior metadata.`);\n }\n\n const behaviorKey = meta.key;\n const behaviorType = meta.type;\n\n if (!behaviorKey) {\n isCritical = true;\n throw new Error(`[vault] Behavior metadata missing \"key\".`);\n }\n\n if (!hasVaultLicense()) {\n if (!isAuthorizedKey(behaviorKey)) {\n vaultDebug(`[vault] Unlicensed behavior \"${behaviorKey}\" skipped during initialization.`);\n return;\n }\n }\n\n if (!behaviorType) {\n isCritical = true;\n throw new Error(`[vault] Behavior metadata missing \"type\" for \"${behaviorKey}\".`);\n }\n\n let behaviorConfig: unknown = undefined;\n\n if (meta.wantsConfig) {\n if (!meta.configKey) {\n isCritical = true;\n throw new Error(`[vault] Behavior \"${behaviorKey}\" declares wantsConfig but has no configKey.`);\n }\n\n behaviorConfig = behaviorConfigs.get(meta.configKey);\n }\n\n let licensePayload: unknown = undefined;\n if (meta.needsLicense) {\n if (!meta.licenseId) {\n isCritical = true;\n throw new Error(`[vault] Behavior \"${behaviorKey}\" declares needsLicense but has no licenseId.`);\n }\n\n licensePayload = getLicensePayload(meta.licenseId);\n\n if (licensePayload === undefined) {\n isCritical = true;\n throw new Error(\n `[vault] License \"${meta.licenseId}\" required by behavior \"${behaviorKey}\" is not registered in Vault config.`\n );\n }\n }\n\n let instance: BehaviorContract<T>;\n try {\n instance = new BehaviorClass(behaviorKey, {\n featureCellKey: this.#cellKey,\n behaviorConfig,\n licensePayload\n } as BehaviorClassContext) as BehaviorContract<T>;\n } catch (error) {\n isCritical = meta.critical;\n throw error;\n }\n\n if (!instance.key) {\n isCritical = true;\n throw new Error(\n `[vault] Behavior missing key for type \"${behaviorType}\". Every behavior must define a unique \"key\".`\n );\n }\n\n if (!validateBehaviorKey(instance.key)) {\n isCritical = true;\n throw new Error(\n `[vault] Behavior key \"${instance.key}\" not valid format for \"${behaviorType}\" behavior.`\n );\n }\n\n if (instance.key && seenKeys.has(instance.key)) {\n vaultWarn(`[vault] Skipping duplicate behavior with key \"${instance.key}\"`);\n return null;\n }\n\n if (instance.key) seenKeys.add(instance.key);\n\n return instance;\n } catch (err) {\n if (isCritical) {\n throw err;\n }\n\n // eslint-disable-next-line\n vaultWarn(`[vault] Non-critical behavior initialization failed: ${(err as any)?.message}`);\n return null;\n }\n })\n .filter((behavior): behavior is BehaviorContract<T> => !!behavior)\n );\n }\n\n /**\n * Applies behavior-defined API extensions to a FeatureCell instance.\n *\n * Each behavior may expose extension functions that are attached to the\n * FeatureCell. Extensions are validated to prevent overriding protected\n * core APIs or other behavior extensions without explicit permission.\n *\n * @typeParam T - The FeatureCell state value type.\n * @param cell - The FeatureCell instance to extend.\n * @param vaultMonitor - Monitor used for extension execution diagnostics.\n */\n applyBehaviorExtensions<T>(\n behaviors: BehaviorContract<T>[],\n cell: FeatureCellBaseShape<T>,\n vaultMonitor: VaultMonitorContract\n ): void {\n for (const behavior of behaviors) {\n const FeatureCellExtensionContext = {\n featureCellKey: cell.key,\n destroyed$: cell.destroyed$,\n reset$: cell.reset$,\n mergeState: cell.mergeState,\n replaceState: cell.replaceState,\n state$: cell.state$,\n vaultMonitor\n } as FeatureCellExtensionContext<T>;\n\n const extensions = behavior.extendCellAPI?.(FeatureCellExtensionContext);\n if (!extensions || typeof extensions !== 'object') continue;\n\n for (const [key, fn] of Object.entries(extensions)) {\n const alreadyDefined = cell[key as keyof FeatureCellBaseShape<T>] !== undefined;\n\n const canOverride =\n // eslint-disable-next-line\n Array.isArray((behavior as any).allowOverride) && (behavior as any).allowOverride.includes(key);\n\n if (PROTECTED_FEATURE_CELL_KEYS.has(key)) {\n throw new Error(\n `[vault] Behavior \"${behavior.key}\" attempted to overwrite core FeatureCell method \"${key}\".`\n );\n }\n\n if (alreadyDefined && !canOverride) {\n throw new Error(\n `[vault] Behavior \"${behavior.key}\" attempted to redefine method \"${key}\" already provided by another behavior.`\n );\n }\n\n if (alreadyDefined && canOverride) {\n vaultWarn(`[vault] Behavior \"${behavior.key}\" is overriding method \"${key}\" (explicitly allowed).`);\n // eslint-disable-next-line\n delete (cell as any)[key];\n }\n\n Object.defineProperty(cell, key, {\n // eslint-disable-next-line\n value: (...args: any[]) => {\n try {\n if (typeof fn !== 'function') return;\n return fn(...args);\n } catch (err) {\n vaultError(`[vault] Behavior extension \"${key}\" threw an error:`, err);\n throw err;\n }\n },\n enumerable: false,\n writable: false,\n configurable: true\n });\n }\n }\n }\n}\n","import {\n BehaviorContract,\n BehaviorTypes,\n CoreEmitStateBehaviorContract,\n ErrorCallbackBehaviorContract,\n ErrorTransformBehaviorContract,\n FinalState,\n isVaultNoop,\n VAULT_STOP\n} from '@sdux-vault/shared';\n\n/**\n * Type guard that identifies error transform behaviors.\n *\n * This function determines whether a behavior participates in the\n * error transformation stage of the pipeline based on its declared\n * behavior type.\n *\n * @typeParam T - The FeatureCell state value type.\n * @param behavior - A behavior instance to inspect.\n * @returns `true` when the behavior is an error transform behavior.\n */\nexport const isErrorTransformBehavior = <T>(\n behavior: BehaviorContract<T>\n): behavior is ErrorTransformBehaviorContract<T> => {\n return behavior.type === BehaviorTypes.ErrorTransform;\n};\n\n/**\n * Type guard that identifies the core error callback behavior.\n *\n * This function is used to detect behaviors responsible for invoking\n * legacy or observational error callbacks during pipeline execution.\n *\n * @typeParam T - The FeatureCell state value type.\n * @param behavior - A behavior instance to inspect.\n * @returns `true` when the behavior is the core error callback behavior.\n */\nexport const isCoreErrorCallbackBehavior = <T>(\n behavior: BehaviorContract<T>\n): behavior is ErrorCallbackBehaviorContract<T> => {\n return behavior.type === BehaviorTypes.CoreErrorCallback;\n};\n\n/**\n * Type guard that identifies the core emitState behavior.\n *\n * This function detects the behavior responsible for emitting finalized\n * state snapshots to observers after pipeline execution.\n *\n * @typeParam T - The FeatureCell state value type.\n * @param behavior - A behavior instance to inspect.\n * @returns `true` when the behavior is the core emitState behavior.\n */\nexport const isCoreEmitStateCallbackBehavior = <T>(\n behavior: BehaviorContract<T>\n): behavior is CoreEmitStateBehaviorContract<T> => {\n return behavior.type === BehaviorTypes.CoreEmitState;\n};\n\n/**\n * Determines whether a final pipeline value represents a STOP signal.\n *\n * A STOP signal halts the pipeline immediately without committing state\n * and is typically produced by interceptor behaviors.\n *\n * @typeParam T - The FeatureCell state value type.\n * @param current - The final pipeline result value.\n * @returns `true` when the value is the `VAULT_STOP` sentinel.\n */\nexport const isSignalStop = <T>(current: FinalState<T>): boolean => {\n return current === VAULT_STOP;\n};\n\n/**\n * Generates a compact uppercase trace identifier.\n *\n * The identifier is derived from `crypto.randomUUID()` when available,\n * with a fallback to a randomized string for environments where WebCrypto\n * is unavailable.\n *\n * @returns A five-character uppercase trace identifier.\n */\nexport const assignTraceId = (): string => {\n return crypto?.randomUUID?.() ?? Math.random().toString(36).slice(2, 7);\n};\n\n/**\n * Determines whether a pipeline result is terminal.\n *\n * Terminal values indicate that the pipeline must halt without applying\n * a new state snapshot. This includes both no-op and stop signals.\n *\n * @typeParam T - The FeatureCell state value type.\n * @param current - The final pipeline result value.\n * @returns `true` when the pipeline should not apply state.\n */\nexport const isPipelineTerminal = <T>(current: FinalState<T>): boolean => isVaultNoop(current) || isSignalStop(current);\n","// --- AI Model File Path (DO NOT DELETE) ---\n// FilePath: lib > src > orchestrator > orchestrator.ts\n// Updated: 2026-04-07 16:30\n//\t Generated by pathcomment [tab] (see .vscode/typescript.code-snippets) or\n//\t cmd+alt+j (see .vscode/keybindings.json)\n// --- END AI MODEL FILE PATH ---\n\nimport {\n AfterTapBehaviorContract,\n BeforeTapBehaviorContract,\n BEHAVIOR_META,\n BehaviorClassContract,\n BehaviorContext,\n BehaviorContract,\n BehaviorMetaShape,\n BehaviorType,\n BehaviorTypes,\n ControllerContext,\n CoreEmitStateBehaviorContract,\n CoreEmitStateCallback,\n CoreErrorBehaviorContract,\n CoreStateBehaviorContract,\n createVaultError,\n DecisionOutcomeType,\n DecisionOutcomeTypes,\n DeferredFactory,\n DeferredType,\n EncryptBehaviorContract,\n ErrorCallbackBehaviorContract,\n ErrorTransformBehaviorContract,\n FilterBehaviorContract,\n FilterFunction,\n FinalState,\n InterceptorBehaviorContract,\n isDefined,\n isFunction,\n isHttpResourceRef,\n isNullish,\n isolateValue,\n isPromise,\n isStateInputShape,\n isUndefined,\n isVaultClearState,\n isVaultContinue,\n isVaultNoop,\n MergeBehaviorContract,\n OperationType,\n OperationTypes,\n OperatorBehaviorContract,\n PersistBehaviorContract,\n PipelinePersistValue,\n PipelineUpstreamValue,\n ReduceBehaviorContract,\n ReducerFunction,\n ResolveBehaviorContract,\n ResolveType,\n ResolveTypes,\n StateInputShape,\n StateInputType,\n StepwiseBehaviorContract,\n TapCallback,\n VAULT_CLEAR_STATE,\n VAULT_CONTINUE,\n VAULT_NOOP,\n VAULT_STOP,\n vaultDebug,\n vaultError,\n VaultErrorCallback,\n VaultErrorShape,\n VaultPrivateErrorService,\n VaultPrivateErrorServiceContract,\n VaultUsagePromiseError,\n vaultWarn\n} from '@sdux-vault/shared';\n\nimport { OrchestratorConfig } from '../config/orchestrator.config';\nimport { VAULT_ORCHESTRATOR } from '../constants/vault-orchestrator.constant';\nimport { DecisionEngine } from '../decision-engine/decision-engine';\n\nimport { BehaviorInitializationClass } from '../utils/initialize-behavior.util';\nimport {\n isCoreEmitStateCallbackBehavior,\n isCoreErrorCallbackBehavior,\n isErrorTransformBehavior,\n isSignalStop\n} from '../utils/orchestrator.utils';\n\nimport { isObservable } from 'rxjs';\nimport { LicensingService } from '../licensing/licensing.service';\nimport { VaultMonitor } from '../monitor/vault-monitor.service';\n\nexport abstract class Orchestrator<T> {\n #afterTapCallbacks: TapCallback<T>[];\n #beforeTapCallbacks: TapCallback<T>[];\n #behaviors!: BehaviorContract<T>[];\n #stageBehaviors!: BehaviorContract<T>[];\n protected cellKey: string;\n protected decisionEngine!: DecisionEngine<T>;\n #coreErrorBehavior!: CoreErrorBehaviorContract<T>;\n #coreErrorCallbackBehavior!: ErrorCallbackBehaviorContract<T>;\n #emitStateCallbackBehavior!: CoreEmitStateBehaviorContract<T>;\n #emitStateCallbacks!: CoreEmitStateCallback<T>[];\n #coreStateBehavior!: CoreStateBehaviorContract<T>;\n #errorTransformBehaviors!: ErrorTransformBehaviorContract<T>[];\n #errorCallbacks: VaultErrorCallback<T>[];\n protected privateErrorService: VaultPrivateErrorServiceContract = VaultPrivateErrorService();\n #filterFunctions: FilterFunction<T>[] = [];\n #initialState: T | DeferredType<T>;\n #mergeBehavior!: MergeBehaviorContract<T>;\n #reducerFunctions: ReducerFunction<T>[];\n protected vaultMonitor = VaultMonitor();\n\n constructor(config: OrchestratorConfig<T>) {\n this.#afterTapCallbacks = config.afterTapCallbacks ?? [];\n this.#beforeTapCallbacks = config.beforeTapCallbacks ?? [];\n this.cellKey = config.cell?.key;\n this.#emitStateCallbacks = config.emitStateCallbacks ?? [];\n this.#errorCallbacks = config.errorCallbacks ?? [];\n this.#filterFunctions = config.filterCallbacks ?? [];\n this.#initialState = config.initialState;\n this.#reducerFunctions = config.reducerCallbacks ?? [];\n }\n\n protected initializeOrchestrator(config: OrchestratorConfig<T>): void {\n config.behaviors = config.behaviors ?? [];\n this.#registerBehaviors(config);\n }\n\n //#region Protected Methods\n\n protected async initializeFeatureCell(ctx: BehaviorContext<T>): Promise<void> {\n await this.#loadInitialState(ctx);\n }\n\n protected destroyBehaviors(ctx: BehaviorContext<T>): void {\n this.#destroyBehaviors(ctx);\n }\n\n protected resetBehaviors(ctx: BehaviorContext<T>): void {\n this.#resetBehaviors(ctx);\n }\n\n protected async orchestrate(ctx: BehaviorContext<T>, options?: unknown): Promise<void> {\n // no controllers → pipeline behaves exactly as before\n if (ctx.operation === OperationTypes.Replace) {\n await this.#orchestrateReplace(ctx);\n } else {\n await this.#orchestrateMerge(ctx, options);\n }\n return;\n }\n\n protected buildControllerCtx(ctx: BehaviorContext<T>): ControllerContext<T> {\n return {\n traceId: ctx.traceId,\n featureCellKey: ctx.featureCellKey,\n snapshot: ctx.lastSnapshot,\n incoming: ctx.incoming,\n operation: ctx.operation\n };\n }\n\n protected normalizeIncoming<T>(incoming: StateInputType<T>): StateInputType<T> {\n if (!incoming) return null;\n\n if (isHttpResourceRef(incoming) || isObservable(incoming) || isFunction(incoming) || isFunction(incoming)) {\n return incoming;\n }\n\n if (isStateInputShape(incoming)) {\n return isolateValue(incoming);\n }\n\n return {\n value: incoming\n } as StateInputType<T>;\n }\n\n protected controllerOutcomeNotification(type: DecisionOutcomeType, ctx: BehaviorContext<T>): void {\n switch (type) {\n case DecisionOutcomeTypes.Abort: {\n this.#coreStateBehavior.finalizeControllerAbort(ctx);\n break;\n }\n case DecisionOutcomeTypes.Deny: {\n this.#coreStateBehavior.finalizeControllerDeny(ctx);\n break;\n }\n }\n }\n\n protected prepareIncoming(\n ctx: BehaviorContext<T>,\n incoming: StateInputType<T>,\n operation: OperationType\n ): StateInputType<T> | typeof VAULT_NOOP | typeof VAULT_CLEAR_STATE {\n ctx = this.#prepIncomingForOrchestration(ctx, incoming, operation);\n\n const normalizedIncoming = this.#coreStateBehavior.preparePipelineIncoming(ctx);\n\n if (isVaultNoop(normalizedIncoming)) {\n this.vaultMonitor.startCoreState(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n this.#runStateBehaviors(ctx);\n this.vaultMonitor.endCoreState(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n }\n\n if (isVaultClearState(normalizedIncoming)) {\n this.vaultMonitor.startCoreState(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n this.#resetBehaviors(ctx);\n this.#runStateBehaviors(ctx);\n this.vaultMonitor.endCoreState(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n return;\n }\n return normalizedIncoming;\n }\n\n //#endregion\n\n //#region Private Methods\n\n #prepIncomingForOrchestration(\n ctx: BehaviorContext<T>,\n incoming: StateInputType<T>,\n operation: OperationType\n ): BehaviorContext<T> {\n ctx.incoming = this.normalizeIncoming(incoming) as StateInputShape<T>;\n ctx.resolveType = this.#getResolveType(incoming);\n ctx.operation = operation;\n return ctx;\n }\n\n #addDefaultMergeBehavior(\n behaviors: BehaviorClassContract<T>[],\n config: OrchestratorConfig<T>\n ): BehaviorClassContract<T>[] {\n const mergeBehaviors = config.behaviors.filter((behaviorClass: BehaviorClassContract) => {\n return (behaviorClass as BehaviorClassContract<T>).type === BehaviorTypes.Merge;\n });\n\n if (mergeBehaviors.length > 1) {\n const names = mergeBehaviors.map((mergeBehavior) => mergeBehavior.key).join(', ');\n\n throw new Error(\n `SDuX Error: More than one MergeBehavior was provided. Only one merge strategy can be active per FeatureCell. Received: ${names}. Fix: Remove additional merge behaviors or combine them into a single behavior.`\n );\n }\n\n if (mergeBehaviors.length === 1) {\n behaviors.push(mergeBehaviors[0]);\n behaviors = behaviors.filter((behavior) => behavior.type !== BehaviorTypes.Merge);\n }\n\n return behaviors;\n }\n\n // ---------------------------------------------------------------------------\n // NORMALIZATION\n // ---------------------------------------------------------------------------\n\n #defineDefaultBehaviors(config: OrchestratorConfig<T>): BehaviorClassContract<T>[] {\n let defaultBehaviors = config.defaultBehaviors ?? [];\n\n defaultBehaviors = this.#determineCoreCallbackErrorBehavior(defaultBehaviors, config);\n\n defaultBehaviors = this.#addDefaultMergeBehavior(defaultBehaviors, config);\n\n defaultBehaviors = this.#addCoreEmitStateCallbackBehavior(defaultBehaviors, config);\n\n return defaultBehaviors;\n }\n\n #determineCoreCallbackErrorBehavior<T>(\n behaviors: BehaviorClassContract<T>[],\n config: OrchestratorConfig<T>\n ): BehaviorClassContract<T>[] {\n if (config?.errorCallbacks?.length === 0) {\n return behaviors.filter((behavior) => behavior.type !== BehaviorTypes.CoreErrorCallback);\n }\n\n return behaviors;\n }\n\n #addCoreEmitStateCallbackBehavior<T>(\n behaviors: BehaviorClassContract<T>[],\n config: OrchestratorConfig<T>\n ): BehaviorClassContract<T>[] {\n if (config?.emitStateCallbacks?.length === 0) {\n return behaviors.filter((behavior) => behavior.type !== BehaviorTypes.CoreEmitState);\n }\n\n return behaviors;\n }\n\n #registerBehaviorsWithVault(behaviors: BehaviorClassContract<T>[]): void {\n // eslint-disable-next-line\n const behaviorMetadata = behaviors.map((behavior: any) => {\n const meta = behavior[BEHAVIOR_META] as BehaviorMetaShape;\n\n return {\n key: behavior.key,\n type: meta.type,\n critical: meta.critical,\n needsLicense: meta.needsLicense\n };\n });\n\n LicensingService().describeBehaviors({\n featureCellKey: this.cellKey,\n behaviors: behaviorMetadata\n });\n }\n\n #registerBehaviors(config: OrchestratorConfig<T>): void {\n const defaultBehaviors = this.#defineDefaultBehaviors(config);\n\n // Strip out any user-provided reducers; they are passed separately via `reducers`\n const filteredUserBehaviors = config.behaviors?.filter((behavior: BehaviorClassContract<T>) => {\n return !(\n behavior.type === BehaviorTypes.CoreAfterTap ||\n behavior.type === BehaviorTypes.CoreBeforeTap ||\n behavior.type === BehaviorTypes.CoreError ||\n behavior.type === BehaviorTypes.CoreErrorCallback ||\n behavior.type === BehaviorTypes.CoreState ||\n behavior.type === BehaviorTypes.CoreEmitState ||\n behavior.type === BehaviorTypes.Filter ||\n behavior.type === BehaviorTypes.FromObservable ||\n behavior.type === BehaviorTypes.FromPromise ||\n behavior.type === BehaviorTypes.FromStream ||\n behavior.type === BehaviorTypes.Reduce ||\n behavior.type === BehaviorTypes.Resolve\n );\n });\n\n config.operators = config.operators ?? [];\n config.interceptors = config.interceptors ?? [];\n\n const allBehaviors: BehaviorClassContract<T>[] = [\n ...defaultBehaviors,\n ...filteredUserBehaviors,\n ...config.operators,\n ...config.interceptors\n ];\n\n const behaviorInit = new BehaviorInitializationClass(this.cellKey);\n this.#registerBehaviorsWithVault(allBehaviors);\n this.#behaviors = behaviorInit.initializeBehaviors(allBehaviors, config.behaviorConfigs);\n\n this.#registerErrorBehavior();\n this.#registerMergeBehavior();\n this.#registerStageBehaviors();\n this.#registerStateBehavior();\n\n behaviorInit.applyBehaviorExtensions(this.#behaviors, config.cell, this.vaultMonitor);\n }\n\n #registerStageBehaviors(): void {\n // Remove merge behavior from the pipeline list\n this.#stageBehaviors = this.#behaviors.filter(\n (behavior) =>\n !(\n behavior.type === BehaviorTypes.CoreState ||\n behavior.type === BehaviorTypes.CoreEmitState ||\n behavior.type === BehaviorTypes.CoreError ||\n behavior.type === BehaviorTypes.ErrorTransform ||\n behavior.type === BehaviorTypes.CoreErrorCallback ||\n behavior.type === BehaviorTypes.Merge\n )\n );\n }\n\n #registerStateBehavior(): void {\n // Extract and remove errot behavior\n const coreState = this.#behaviors.filter((behaviort) => behaviort.type === BehaviorTypes.CoreState);\n\n if (coreState.length > 1) {\n throw new Error('Only one core state behavior can be registered for a FeatureCell.');\n }\n\n this.#coreStateBehavior = (coreState[0] as CoreStateBehaviorContract<T>) ?? null;\n\n this.#emitStateCallbackBehavior = this.#behaviors.filter((behavior) =>\n isCoreEmitStateCallbackBehavior(behavior)\n )[0];\n }\n\n #registerErrorBehavior(): void {\n // Extract and remove error behavior\n const coreErrors = this.#behaviors.filter((behavior) => behavior.type === BehaviorTypes.CoreError);\n\n if (coreErrors.length > 1) {\n throw new Error('Only one core error behavior can be registered for a FeatureCell.');\n }\n\n this.#coreErrorBehavior = (coreErrors[0] as CoreErrorBehaviorContract<T>) ?? null;\n\n this.#coreErrorCallbackBehavior = this.#behaviors.filter((behavior) => isCoreErrorCallbackBehavior(behavior))[0];\n\n this.#errorTransformBehaviors = this.#behaviors.filter((behavior) => isErrorTransformBehavior(behavior));\n }\n\n #registerMergeBehavior(): void {\n // Extract and remove merge behavior\n const merges = this.#behaviors.filter((behavior) => behavior.type === BehaviorTypes.Merge);\n this.#mergeBehavior = (merges[0] as MergeBehaviorContract<T>) ?? null;\n }\n\n async #runStepwise(\n behaviorType: BehaviorType,\n ctx: BehaviorContext<T>,\n current: PipelineUpstreamValue<T>\n ): Promise<typeof VAULT_NOOP | typeof VAULT_CLEAR_STATE | typeof VAULT_CONTINUE> {\n const stepwise = await this.#runUpstreamStage(behaviorType, ctx, current);\n\n if (isVaultClearState(stepwise)) {\n return VAULT_CLEAR_STATE;\n }\n\n if (isVaultNoop(stepwise)) {\n return VAULT_NOOP;\n }\n\n return VAULT_CONTINUE;\n }\n\n async #finishPipeline(\n ctx: BehaviorContext<T>,\n resolved: PipelineUpstreamValue<T>\n ): Promise<PipelineUpstreamValue<T>> {\n // Stage: operators\n let pipelineDataFlow: PipelineUpstreamValue<T>;\n\n const stepwiseResolve = await this.#runStepwise(BehaviorTypes.StepwiseResolve, ctx, resolved);\n\n if (!isVaultContinue(stepwiseResolve)) {\n return stepwiseResolve;\n }\n\n if (this.#containsOperators()) {\n pipelineDataFlow = await this.#runOperatorStage(ctx, resolved);\n\n // Halt pipeline on noop\n if (isVaultNoop(pipelineDataFlow)) return VAULT_NOOP;\n } else {\n pipelineDataFlow = resolved;\n }\n\n // Stage: filter\n pipelineDataFlow = await this.#runUpstreamStage(BehaviorTypes.Filter, ctx, pipelineDataFlow);\n\n const stepwiseFilter = await this.#runStepwise(BehaviorTypes.StepwiseFilter, ctx, pipelineDataFlow);\n\n if (!isVaultContinue(stepwiseFilter)) {\n return stepwiseFilter;\n }\n\n await this.#runUpstreamStage(BehaviorTypes.CoreBeforeTap, ctx, isolateValue(pipelineDataFlow));\n\n // Stage: reduce\n pipelineDataFlow = await this.#runUpstreamStage(BehaviorTypes.Reduce, ctx, pipelineDataFlow);\n\n const stepwiseReducer = await this.#runStepwise(BehaviorTypes.StepwiseReducer, ctx, pipelineDataFlow);\n\n if (!isVaultContinue(stepwiseReducer)) {\n return stepwiseReducer;\n }\n\n await this.#runUpstreamStage(BehaviorTypes.CoreAfterTap, ctx, isolateValue(pipelineDataFlow));\n\n // Clone AFTER reduce for purity\n const stateData = isolateValue(pipelineDataFlow);\n\n let persistPipelineValue = stateData as PipelinePersistValue<T>;\n // Stage: encrypt\n persistPipelineValue = await this.#runPersistStage(BehaviorTypes.Encrypt, ctx, persistPipelineValue);\n\n // Stage: persist\n await this.#runPersistStage(BehaviorTypes.Persist, ctx, persistPipelineValue);\n\n // Commit the *cloned* pre-encrypted snapshot to signals\n return stateData;\n }\n\n async #orchestrateReplace(ctx: BehaviorContext<T>): Promise<void> {\n this.vaultMonitor.startReplace(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n\n await this.#safeAsync(async () => {\n let finalState!: FinalState<T>;\n finalState = await this.#runInterceptorStage(ctx);\n\n if (!isSignalStop(finalState)) {\n const resolved = await this.#runUpstreamStage(BehaviorTypes.Resolve, ctx, undefined);\n\n if (isVaultClearState(resolved)) {\n finalState = VAULT_CLEAR_STATE;\n } else {\n finalState = await this.#finishPipeline(ctx, resolved);\n }\n }\n\n return this.#handleFinalState(finalState, ctx);\n }, ctx);\n }\n\n async #orchestrateMerge(ctx: BehaviorContext<T>, options?: unknown): Promise<void> {\n this.vaultMonitor.startMerge(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n\n await this.#safeAsync(async () => {\n const safeCurrent = isolateValue(ctx.lastSnapshot.value);\n\n let finalState!: FinalState<T>;\n finalState = await this.#runInterceptorStage(ctx);\n\n if (!isSignalStop(finalState)) {\n const partial = await this.#runUpstreamStage(BehaviorTypes.Resolve, ctx, undefined);\n\n const safePartial = isolateValue(partial);\n\n this.vaultMonitor.startComputeMerge(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n // eslint-disable-next-line\n const mergeResult = await this.#mergeBehavior.computeMerge(safeCurrent, safePartial, options as any);\n\n this.vaultMonitor.endComputeMerge(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n\n if (isVaultClearState(mergeResult)) {\n finalState = VAULT_CLEAR_STATE;\n } else {\n const stateResult = isolateValue(mergeResult);\n finalState = await this.#finishPipeline(ctx, stateResult);\n }\n }\n return await this.#handleFinalState(finalState, ctx);\n }, ctx);\n }\n\n async #handleFinalState(finalState: FinalState<T>, ctx: BehaviorContext<T>): Promise<FinalState<T>> {\n let payload: unknown;\n\n if (isSignalStop(finalState)) {\n payload = { pipelinePaused: true };\n } else if (isVaultClearState(finalState)) {\n payload = { pipelineStateCleared: true };\n } else if (isUndefined(finalState) || isVaultNoop(finalState)) {\n payload = { noop: true };\n }\n\n if (ctx.operation === OperationTypes.Replace) {\n this.vaultMonitor.endReplace(this.cellKey, VAULT_ORCHESTRATOR, ctx, payload);\n } else {\n this.vaultMonitor.endMerge(this.cellKey, VAULT_ORCHESTRATOR, ctx, payload);\n }\n\n return finalState;\n }\n\n async #safeAsync(fn: () => Promise<FinalState<T>>, ctx: BehaviorContext<T>): Promise<void> {\n try {\n const result = await fn();\n\n this.vaultMonitor.startCoreState(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n if (isSignalStop(result)) {\n this.#coreStateBehavior.finalizePipelineVaultStop(ctx);\n } else {\n this.#coreStateBehavior.finalizePipelineState(result, ctx);\n }\n\n await this.#runStateBehaviors(ctx);\n this.vaultMonitor.endCoreState(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n this.decisionEngine?.notifySuccess(this.buildControllerCtx(ctx));\n } catch (err) {\n const pipelineError = await this.#runErrorBehaviors(err, ctx);\n\n await this.decisionEngine?.notifyFailure(this.buildControllerCtx(ctx), pipelineError);\n }\n }\n\n async #runUpstreamStage(\n stage: BehaviorType,\n ctx: BehaviorContext<T>,\n current: PipelineUpstreamValue<T>\n ): Promise<PipelineUpstreamValue<T>> {\n let stageBehaviors: BehaviorContract<T>[];\n if (stage === BehaviorTypes.Resolve) {\n stageBehaviors = this.#stageBehaviors.filter((behavior): behavior is ResolveBehaviorContract<T> => {\n return (behavior as ResolveBehaviorContract<T>).resolveType === ctx.resolveType && behavior.type === stage;\n });\n } else {\n stageBehaviors = this.#stageBehaviors.filter((behavior) => {\n return behavior.type === stage;\n });\n }\n\n for (const behavior of stageBehaviors) {\n let next: PipelineUpstreamValue<T>;\n\n try {\n switch (stage) {\n case BehaviorTypes.Resolve:\n if (typeof (behavior as ResolveBehaviorContract<T>).computeResolve === 'function') {\n this.vaultMonitor.startResolve(this.cellKey, behavior.key, ctx);\n\n next = await (behavior as ResolveBehaviorContract<T>).computeResolve(ctx);\n\n if (isDefined(next)) current = isolateValue(next);\n\n this.vaultMonitor.endResolve(this.cellKey, behavior.key, ctx);\n }\n break;\n\n case BehaviorTypes.StepwiseResolve:\n case BehaviorTypes.StepwiseFilter:\n case BehaviorTypes.StepwiseReducer:\n if (typeof (behavior as StepwiseBehaviorContract<T>).evaluateStepwise === 'function') {\n this.vaultMonitor.startStepwise(this.cellKey, behavior.key, ctx);\n\n const safeCurrent = isolateValue(ctx.lastSnapshot.value);\n const safeCandidate = isolateValue(current);\n next = await (behavior as StepwiseBehaviorContract<T>).evaluateStepwise(\n safeCurrent,\n safeCandidate,\n ctx.featureCellKey\n );\n\n this.vaultMonitor.endStepwise(this.cellKey, behavior.key, ctx);\n }\n break;\n\n case BehaviorTypes.Filter:\n if (typeof (behavior as FilterBehaviorContract<T>).applyFilter === 'function') {\n for (const filter of this.#filterFunctions) {\n this.vaultMonitor.startFilter(this.cellKey, behavior.key, ctx);\n const safeCurrent = isolateValue(current);\n\n const nextValue = await (behavior as FilterBehaviorContract<T>).applyFilter(safeCurrent, filter);\n\n this.vaultMonitor.endFilter(this.cellKey, behavior.key, ctx);\n if (isDefined(nextValue)) {\n current = isolateValue(nextValue);\n }\n }\n }\n break;\n\n case BehaviorTypes.CoreBeforeTap:\n if (typeof (behavior as BeforeTapBehaviorContract<T>).applyBeforeTap === 'function') {\n for (const beforeTap of this.#beforeTapCallbacks) {\n this.vaultMonitor.startBeforeTap(this.cellKey, behavior.key, ctx);\n\n const safeCurrent = isolateValue(current);\n\n await (behavior as BeforeTapBehaviorContract<T>).applyBeforeTap(safeCurrent, beforeTap);\n this.vaultMonitor.endBeforeTap(this.cellKey, behavior.key, ctx);\n }\n }\n break;\n\n case BehaviorTypes.Reduce:\n if (typeof (behavior as ReduceBehaviorContract<T>).applyReducer === 'function') {\n if (isUndefined(current) && this.#reducerFunctions.length > 0) {\n throw new Error(\n `[vault] Reducer stage received undefined state in FeatureCell \"${this.cellKey}\", but reducers are registered.`\n );\n }\n\n for (const reducer of this.#reducerFunctions) {\n this.vaultMonitor.startReducer(this.cellKey, behavior.key, ctx);\n\n const safeCurrent = isolateValue(current);\n\n const nextValue = await (behavior as ReduceBehaviorContract<T>).applyReducer(safeCurrent, reducer);\n\n this.vaultMonitor.endReducer(this.cellKey, behavior.key, ctx);\n if (isDefined(nextValue)) {\n current = isolateValue(nextValue);\n }\n }\n }\n break;\n\n case BehaviorTypes.CoreAfterTap:\n if (typeof (behavior as AfterTapBehaviorContract<T>).applyAfterTap === 'function') {\n for (const afterTap of this.#afterTapCallbacks) {\n this.vaultMonitor.startAfterTap(this.cellKey, behavior.key, ctx);\n const safeCurrent = isolateValue(current);\n\n await (behavior as AfterTapBehaviorContract<T>).applyAfterTap(safeCurrent, afterTap);\n this.vaultMonitor.endAfterTap(this.cellKey, behavior.key, ctx);\n }\n }\n break;\n }\n } catch (err) {\n this.vaultMonitor.runtimeError(this.cellKey, behavior.key, ctx, err);\n throw err;\n }\n\n if (isDefined(next)) current = isolateValue(next);\n }\n\n return current;\n }\n\n async #runInterceptorStage(ctx: BehaviorContext<T>): Promise<undefined | typeof VAULT_STOP> {\n const interceptorBehaviors = this.#stageBehaviors.filter(\n (behavior): behavior is InterceptorBehaviorContract<T> => behavior.type === BehaviorTypes.Interceptor\n );\n\n for (const behavior of interceptorBehaviors) {\n try {\n this.vaultMonitor.startInterceptor(this.cellKey, behavior.key, ctx);\n\n ctx.incoming = isolateValue(ctx.incoming);\n\n const nextIncoming = await behavior.applyInterceptor(ctx);\n\n if (isSignalStop(nextIncoming)) {\n this.vaultMonitor.endInterceptor(this.cellKey, behavior.key, ctx, { pipelinePaused: true });\n return VAULT_STOP;\n }\n\n this.vaultMonitor.endInterceptor(this.cellKey, behavior.key, ctx);\n } catch (err) {\n this.vaultMonitor.runtimeError(this.cellKey, behavior.key, ctx, err);\n throw err;\n }\n }\n\n return;\n }\n\n #containsOperators(): boolean {\n const operatorBehaviors = this.#stageBehaviors.filter((behavior) => behavior.type === BehaviorTypes.Operator);\n return operatorBehaviors.length > 0;\n }\n\n async #runOperatorStage(\n ctx: BehaviorContext<T>,\n current: PipelineUpstreamValue<T>\n ): Promise<PipelineUpstreamValue<T>> {\n const operatorBehaviors = this.#stageBehaviors.filter(\n (behavior): behavior is OperatorBehaviorContract<T> => behavior.type === BehaviorTypes.Operator\n );\n\n for (const behavior of operatorBehaviors) {\n try {\n this.vaultMonitor.startOperator(this.cellKey, behavior.key, ctx);\n\n const safeCurrent = isolateValue(current);\n const next = await behavior.applyOperator(safeCurrent);\n\n if (isUndefined(next)) {\n // short-circuit pipeline — operator decided to block this write\n this.vaultMonitor.endOperator(this.cellKey, behavior.key, ctx, { noop: true });\n return undefined;\n }\n\n current = isolateValue(next);\n this.vaultMonitor.endOperator(this.cellKey, behavior.key, ctx);\n } catch (err) {\n this.vaultMonitor.runtimeError(this.cellKey, behavior.key, ctx, err);\n throw err;\n }\n }\n\n return current;\n }\n\n async #runPersistStage(\n stage: BehaviorType,\n ctx: BehaviorContext<T>,\n current: PipelinePersistValue<T>\n ): Promise<PipelinePersistValue<T>> {\n let stageBehaviors: BehaviorContract<T>[];\n stageBehaviors = this.#stageBehaviors.filter((behavior) => behavior.type === stage);\n\n for (const behavior of stageBehaviors) {\n try {\n switch (stage) {\n case BehaviorTypes.Encrypt:\n if (typeof (behavior as EncryptBehaviorContract<T>).encryptState === 'function') {\n this.vaultMonitor.startEncrypt(this.cellKey, behavior.key, ctx);\n const safeCurrent = isolateValue(current);\n\n const nextValue = await (behavior as EncryptBehaviorContract<T>).encryptState(ctx, safeCurrent);\n this.vaultMonitor.endEncrypt(this.cellKey, behavior.key, ctx);\n\n if (isDefined(nextValue)) {\n current = isolateValue(nextValue);\n }\n }\n\n break;\n\n case BehaviorTypes.Persist:\n if (typeof (behavior as PersistBehaviorContract<T>).persistState === 'function') {\n this.vaultMonitor.startPersist(this.cellKey, behavior.key, ctx);\n const safeCurrent = isolateValue(current);\n await (behavior as PersistBehaviorContract<T>).persistState(safeCurrent);\n this.vaultMonitor.endPersist(this.cellKey, behavior.key, ctx);\n }\n break;\n }\n } catch (err) {\n this.vaultMonitor.runtimeError(this.cellKey, behavior.key, ctx, err);\n throw err;\n }\n }\n\n return current;\n }\n\n #destroyBehaviors(ctx: BehaviorContext<T>): void {\n for (const behavior of this.#behaviors) {\n this.vaultMonitor.startDestroy(this.cellKey, behavior.key, ctx);\n try {\n behavior.destroy?.(ctx);\n this.vaultMonitor.endDestroy(this.cellKey, behavior.key, ctx);\n } catch (err) {\n vaultError(`${behavior.key} destroy() failed`, err);\n this.vaultMonitor.endDestroy(this.cellKey, behavior.key, ctx, { destroyFailed: true });\n }\n }\n }\n\n #resetBehaviors(ctx: BehaviorContext<T>): void {\n for (const behavior of this.#behaviors) {\n this.vaultMonitor.startReset(this.cellKey, behavior.key, ctx);\n try {\n behavior.reset?.(ctx);\n this.vaultMonitor.endReset(this.cellKey, behavior.key, ctx);\n } catch (err) {\n vaultError(`${behavior.key} reset() failed`, err);\n this.vaultMonitor.endReset(this.cellKey, behavior.key, ctx, { resetFailed: true });\n }\n }\n }\n\n async #runStateBehaviors(ctx: BehaviorContext<T>): Promise<void> {\n if (this.#emitStateCallbacks?.length > 0) {\n const lastSnapshotClone = isolateValue(ctx.lastSnapshot);\n this.vaultMonitor.startCoreEmitState(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n for (const callback of this.#emitStateCallbacks) {\n await this.#emitStateCallbackBehavior.emitState(lastSnapshotClone, callback);\n }\n this.vaultMonitor.endCoreEmitState(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n }\n }\n\n /**\n * Runs the error behaviors in sequence.\n *\n * - Starts from a normalized ResourceError produced by resourceError().\n * - Each behavior gets (rawError, currentResourceError, ctx).\n * - If a behavior returns:\n * • ResourceError → becomes the next currentResourceError\n * • VAULT_NOOP → previous ResourceError is kept\n *\n * Returns void\n */\n async #runErrorBehaviors(rawError: unknown, ctx: BehaviorContext<T>): Promise<VaultErrorShape> {\n let current: VaultErrorShape;\n\n /**\n * The order is\n *\n * Core Error\n * Transforms\n * State\n * Callbacks\n * Global Error Service\n */\n\n // ---- Core error normalization (trusted) ----\n try {\n this.vaultMonitor.startCoreError(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n\n current = await this.#coreErrorBehavior.handleError(rawError, ctx.featureCellKey);\n\n vaultDebug(`${this.cellKey} #runErrorBehaviors starting with base ResourceError: ${JSON.stringify(current)}`);\n } catch (err) {\n vaultError('[vault] Core error normalization failed', err);\n current = createVaultError(rawError, ctx.featureCellKey);\n } finally {\n this.vaultMonitor.endCoreError(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n }\n\n // ---- Error behaviors (untrusted, isolated) ----\n for (const behavior of this.#errorTransformBehaviors) {\n try {\n this.vaultMonitor.startErrorTransform(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n\n const result = await behavior.transformError(\n isolateValue(rawError),\n isolateValue(current),\n isolateValue(ctx.lastSnapshot)\n );\n\n if (!isVaultNoop(result) && !isNullish(result)) {\n current = result as VaultErrorShape;\n }\n } catch (err) {\n vaultError(`[vault] ErrorBehavior \"${behavior.key}\" threw during error handling`, err);\n } finally {\n this.vaultMonitor.endErrorTransform(this.cellKey, VAULT_ORCHESTRATOR, ctx, current);\n }\n }\n\n // ---- Commit error state (trusted, must run) ----\n try {\n this.vaultMonitor.startCoreState(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n await this.#coreStateBehavior.finalizePipelineError(current, ctx);\n await this.#runStateBehaviors(ctx);\n } catch (err) {\n vaultError('[vault] Failed to finalize error state', err);\n } finally {\n this.vaultMonitor.endCoreState(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n }\n\n try {\n this.vaultMonitor.startGlobalError(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n await this.privateErrorService.setError(isolateValue(current));\n } catch (err) {\n // istanbul ignore next -- defensive only not testable\n vaultError('[vault] global error service', err);\n } finally {\n this.vaultMonitor.endGlobalError(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n }\n\n // ---- Error callbacks (untrusted, isolated) ----\n if (this.#errorCallbacks?.length > 0) {\n this.vaultMonitor.startCoreCallbackError(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n\n for (const callback of this.#errorCallbacks) {\n try {\n await this.#coreErrorCallbackBehavior.callbackError(\n isolateValue(current),\n isolateValue(ctx.lastSnapshot),\n callback\n );\n } catch (err) {\n vaultError('[vault] Error callback threw during error handling', err);\n }\n }\n\n this.vaultMonitor.endCoreCallbackError(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n }\n\n vaultDebug(`${this.cellKey} #runErrorBehaviors completed with final ResourceError: ${JSON.stringify(current)}`);\n return current;\n }\n\n #getResolveType<TIncoming>(incoming: StateInputType<TIncoming>): ResolveType {\n if (isHttpResourceRef(incoming)) {\n return ResolveTypes.HttpResource;\n } else if (isObservable(incoming)) {\n return ResolveTypes.Observable;\n } else if (isFunction(incoming) || isFunction((incoming as DeferredFactory<T>)?.value)) {\n return ResolveTypes.Promise;\n } else if (isPromise(incoming) || isPromise((incoming as StateInputShape<T>)?.value)) {\n throw new VaultUsagePromiseError();\n } else {\n return ResolveTypes.Value;\n }\n }\n\n async #loadInitialState(ctx: BehaviorContext<T>): Promise<void> {\n const incoming = {\n value: undefined,\n loading: false,\n error: null\n } as StateInputShape<T>;\n\n let value: T | DeferredType<T> | undefined = undefined;\n\n if (isFunction(this.#initialState)) {\n value = this.#initialState;\n } else {\n const persistBehaviors = this.#getPersistedBehaviors();\n\n if (persistBehaviors.length > 0) {\n const persistedInitalValue = await this.#loadInitialPersistedState(ctx, persistBehaviors);\n if (isDefined(persistedInitalValue)) {\n vaultDebug('Persisted data loaded from storage');\n value = persistedInitalValue as T;\n }\n } else if (!isNullish(this.#initialState)) {\n this.vaultMonitor.startSetInitialValue(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n vaultDebug('Initialized data loaded from descriptor.initial');\n\n value = this.#initialState;\n\n this.vaultMonitor.endSetInitialValue(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n }\n }\n\n incoming.value = value;\n\n if (!isNullish(incoming.value)) {\n await this.orchestrate(this.#prepIncomingForOrchestration(ctx, incoming, OperationTypes.Replace));\n } else {\n this.decisionEngine?.notifySuccess(this.buildControllerCtx(ctx));\n }\n }\n\n #getPersistedBehaviors(): PersistBehaviorContract<T>[] {\n return this.#stageBehaviors.filter(\n (behavior) => behavior.type === BehaviorTypes.Persist\n ) as PersistBehaviorContract<T>[];\n }\n\n async #loadInitialPersistedState(\n ctx: BehaviorContext<T>,\n persistBehaviors: PersistBehaviorContract<T>[]\n ): Promise<PipelineUpstreamValue<T>> {\n let loaded: PipelineUpstreamValue<T> = undefined;\n\n for (const behavior of persistBehaviors) {\n try {\n this.vaultMonitor.startLoadPersist(this.cellKey, behavior.key, ctx);\n loaded = await behavior.loadState?.();\n if (isDefined(loaded)) {\n this.vaultMonitor.endLoadPersist(this.cellKey, behavior.key, ctx);\n break;\n } else {\n this.vaultMonitor.endLoadPersist(this.cellKey, behavior.key, ctx, { noop: true });\n }\n // eslint-disable-next-line\n } catch (err: any) {\n this.vaultMonitor.runtimeError(this.cellKey, behavior.key, ctx, err);\n vaultWarn(`\"[vault] persist.loadState()\" for ${behavior.key} failed with ${err.message}`);\n }\n }\n\n const decryptBehaviors = this.#stageBehaviors.filter((behavior) => {\n return behavior.type === BehaviorTypes.Encrypt;\n }) as unknown as EncryptBehaviorContract<T>[];\n\n if (isDefined(loaded) && decryptBehaviors.length > 0) {\n for (const behavior of decryptBehaviors) {\n try {\n this.vaultMonitor.startDecrypt(this.cellKey, behavior.key, ctx);\n\n const decrypted = await behavior.decryptState?.(ctx, loaded);\n\n if (isDefined(decrypted)) {\n this.vaultMonitor.endDecrypt(this.cellKey, behavior.key, ctx);\n loaded = isolateValue(decrypted);\n } else {\n this.vaultMonitor.endDecrypt(this.cellKey, behavior.key, ctx, { noop: true });\n }\n // eslint-disable-next-line\n } catch (err: any) {\n this.vaultMonitor.runtimeError(this.cellKey, behavior.key, ctx, err);\n vaultWarn(`\"[vault] encrypt.decryptState()\" for ${behavior.key} failed with ${err.message}`);\n return undefined;\n }\n }\n }\n\n return loaded;\n }\n //#endregion\n}\n","export const ConductorLicenseStatusTypes = {\n Pending: 'pending',\n Approved: 'approved',\n Denied: 'denied'\n} as const;\n\nexport type ConductorLicenseStatusType = (typeof ConductorLicenseStatusTypes)[keyof typeof ConductorLicenseStatusTypes];\n","// projects/core/src/lib/services/vault-controller-lifecycle.service.ts\nimport {\n CONTROLLER_META,\n ControllerClassContext,\n ControllerClassContract,\n ControllerContract,\n ControllerMetaShape,\n ControllerTypes,\n validateControllerKey,\n vaultDebug,\n vaultWarn\n} from '@sdux-vault/shared';\nimport { Subject } from 'rxjs';\nimport { getLicensePayload, hasVaultLicense, isAuthorizedKey } from '../factories/vault/vault-core.function';\nimport { ControllerInitializationClassContract } from '../interfaces/controller/controller-initialization.interface';\nimport { ControllerEventShape } from '../shapes/controller/controller-event.shape';\nimport { ControllerEventTypes } from '../types/controller-event.type';\n\n/**\n * Manages instantiation and validation of controllers for a FeatureCell.\n *\n * This class is responsible for constructing controller instances from\n * declared controller classes, validating required metadata, enforcing\n * uniqueness of controller keys, and wiring controller revote callbacks\n * into the controller event stream.\n */\nexport class ControllerInitializationClass implements ControllerInitializationClassContract {\n /** Tracks whether controller initialization has already occurred. */\n #initialized = false;\n\n /** FeatureCell identifier associated with this initializer. */\n #cellKey: string;\n\n /**\n * Creates a new initializer for a specific FeatureCell.\n *\n * @param cellKey - The unique FeatureCell key.\n */\n constructor(cellKey: string) {\n this.#cellKey = cellKey;\n }\n\n /**\n * Instantiates and validates all controllers declared for a FeatureCell.\n *\n * This method enforces one-time initialization, validates controller\n * metadata and key format, ensures uniqueness of controller keys, and\n * injects a revote callback that emits controller lifecycle events.\n *\n * @typeParam T - The FeatureCell state value type.\n * @param controllerClasses - Controller class definitions to instantiate.\n * @param events$ - Subject used to emit controller lifecycle events.\n * @returns An ordered array of instantiated controller objects.\n */\n initializeControllers<T>(\n controllerClasses: Array<ControllerClassContract<T>>,\n events$: Subject<ControllerEventShape>,\n controllerConfigs: Map<string, unknown>\n ): ControllerContract<T>[] {\n if (this.#initialized)\n throw new Error(\n `[vault] VaultControllerRunner already initialized — cannot reissue core controller ID for feature cell \"${this.#cellKey}\".`\n );\n\n this.#initialized = true;\n\n if (!controllerClasses || controllerClasses.length === 0) return [];\n\n const seenKeys = new Set<string>();\n\n return (\n controllerClasses\n // eslint-disable-next-line\n .map((ControllerClass: any) => {\n let isCritical = false;\n\n try {\n if (typeof ControllerClass !== 'function') return;\n\n const meta = ControllerClass[CONTROLLER_META] as ControllerMetaShape | undefined;\n\n if (!meta) {\n isCritical = true;\n throw new Error(`[vault] Controller \"${ControllerClass.name}\" missing @VaultController metadata.`);\n }\n\n const controllerKey = meta.key;\n const controllerType = meta.type;\n\n if (!controllerKey) {\n isCritical = true;\n throw new Error(`[vault] Controller metadata missing \"key\".`);\n }\n\n if (!hasVaultLicense()) {\n if (!isAuthorizedKey(controllerKey)) {\n vaultDebug(`[vault] Unlicensed controller \"${controllerKey}\" skipped during initialization.`);\n return;\n }\n }\n\n if (!controllerType) {\n isCritical = true;\n throw new Error(`[vault] Controller metadata missing \"type\" for \"${controllerKey}\".`);\n }\n\n let controllerConfig: unknown = undefined;\n\n if (meta.wantsConfig) {\n if (!meta.configKey) {\n isCritical = true;\n throw new Error(`[vault] Controller \"${controllerKey}\" declares wantsConfig but has no configKey.`);\n }\n\n controllerConfig = controllerConfigs.get(meta.configKey);\n }\n\n let licensePayload: unknown = undefined;\n if (meta.needsLicense) {\n if (!meta.licenseId) {\n isCritical = true;\n throw new Error(`[vault] Controller \"${controllerKey}\" declares needsLicense but has no licenseId.`);\n }\n\n licensePayload = getLicensePayload(meta.licenseId);\n\n if (licensePayload === undefined) {\n isCritical = true;\n throw new Error(\n `[vault] License \"${meta.licenseId}\" required by controller \"${controllerKey}\" is not registered in Vault config.`\n );\n }\n }\n\n const controllerClassContext = {\n featureCellKey: this.#cellKey,\n requestRevote: (traceId: string) => {\n events$.next({\n traceId,\n type: ControllerEventTypes.Revote\n });\n },\n requestAbort: (traceId: string) => {\n events$.next({\n traceId,\n type: ControllerEventTypes.Abort\n });\n },\n controllerConfig,\n licensePayload\n } as ControllerClassContext;\n\n if (controllerType === ControllerTypes.License) {\n controllerClassContext.licenseDenied = (traceId: string) => {\n events$.next({\n traceId,\n type: ControllerEventTypes.LicenseDenied\n });\n };\n controllerClassContext.licenseApproved = (traceId: string) => {\n events$.next({\n traceId,\n type: ControllerEventTypes.LicenseApproved\n });\n };\n }\n\n const instance = new ControllerClass(controllerKey, controllerClassContext);\n\n if (!instance.key) {\n isCritical = true;\n throw new Error(\n `[vault] Controller missing key for type \"${controllerType}\". Every controller must define a unique \"key\".`\n );\n }\n\n if (!validateControllerKey(instance.key)) {\n isCritical = true;\n throw new Error(\n `[vault] Controller key \"${instance.key}\" not valid format for \"${controllerType}\" controller.`\n );\n }\n\n if (instance.key && seenKeys.has(instance.key)) {\n vaultWarn(`[vault] Skipping duplicate controller with key \"${instance.key}\"`);\n return null;\n }\n\n if (instance.key) seenKeys.add(instance.key);\n\n return instance;\n } catch (err) {\n if (isCritical) {\n throw err;\n }\n\n // eslint-disable-next-line\n vaultWarn(`[vault] Non-critical controller initialization failed: ${(err as any)?.message}`);\n return null;\n }\n })\n .filter((controller): controller is ControllerContract<T> => !!controller)\n );\n }\n}\n","// --- AI Model File Path (DO NOT DELETE) ---\n// FilePath: lib > src > conductor > conductor.ts\n// Updated: 2026-04-07 16:29\n//\t Generated by pathcomment [tab] (see .vscode/typescript.code-snippets) or\n//\t cmd+alt+j (see .vscode/keybindings.json)\n// --- END AI MODEL FILE PATH ---\n\nimport {\n BehaviorContext,\n CONTROLLER_META,\n ControllerClassContract,\n ControllerContext,\n ControllerContract,\n ControllerDecisionShape,\n ControllerMetaShape,\n ControllerTypes,\n createVaultError,\n DecisionOutcomeType,\n DecisionOutcomeTypes,\n DevMode,\n isolateValue,\n isVaultClearState,\n isVaultNoop,\n OperationType,\n OperationTypes,\n StateInputType,\n vaultDebug,\n vaultError\n} from '@sdux-vault/shared';\n\nimport { firstValueFrom, map, Observable, Subject, tap } from 'rxjs';\nimport { ConductorConfig } from '../config/conductor.config';\nimport { VAULT_CONDUCTOR } from '../constants/vault-conductor.constant';\nimport { withCoreAbstainController } from '../controllers/abstain/with-core-abstrain.controller';\nimport { withCoreErrorController } from '../controllers/error/with-core-error.controller';\nimport { withCoreLicenseController } from '../controllers/license/with-core-license.controller';\nimport { DecisionEngine } from '../decision-engine/decision-engine';\nimport { LicensingService } from '../licensing/licensing.service';\nimport { Orchestrator } from '../orchestrator/orchestrator';\nimport { PendingAttemptShape } from '../shapes/conductor/pending-attempt.shape';\nimport { ControllerEventShape } from '../shapes/controller/controller-event.shape';\nimport { ConductorLicenseStatusType, ConductorLicenseStatusTypes } from '../types/conductor-license-status.type';\nimport { ControllerEventType, ControllerEventTypes } from '../types/controller-event.type';\nimport { ControllerInitializationClass } from '../utils/initialize-controller.util';\nimport { assignTraceId } from '../utils/orchestrator.utils';\n\nexport class Conductor<T> extends Orchestrator<T> {\n readonly #attemptQueue: PendingAttemptShape<T>[] = [];\n #controllers: ControllerContract<T>[] = [];\n readonly #events$ = new Subject<ControllerEventShape>();\n #processing = false;\n #isDenyStateForTesting = false;\n #conductorLicenseStatus: ConductorLicenseStatusType = ConductorLicenseStatusTypes.Pending;\n\n #settled$ = new Subject<void>();\n\n constructor(config: ConductorConfig<T>) {\n super(config);\n\n LicensingService<T>().describeFeature({\n featureCellKey: config.cell.key,\n fluentApis: {\n filters: config.filterCallbacks,\n reducers: config.reducerCallbacks,\n beforeTaps: config.beforeTapCallbacks,\n afterTaps: config.afterTapCallbacks,\n emitStateCallbacks: config.emitStateCallbacks,\n errorCallbacks: config.errorCallbacks\n }\n });\n\n if (DevMode.active) {\n // eslint-disable-next-line\n (this as any).vaultSettled = this.#conductorSettled.bind(this);\n }\n\n this.#registerControllers(config);\n\n this.vaultMonitor.conductorLicenseAttempt(this.cellKey, `${this.cellKey}::license`);\n\n this.initializeOrchestrator(config);\n }\n\n initialize(ctx: BehaviorContext<T>): void {\n const initCtx = this.#buildPipelineCtx(ctx, OperationTypes.Initialize, undefined);\n\n this.#enqueueAttempt({\n behaviorCtx: initCtx,\n controllerCtx: this.buildControllerCtx(initCtx),\n options: undefined\n });\n }\n\n //#region public method\n\n conduct(ctx: BehaviorContext<T>, incoming: StateInputType<T>, operation: OperationType, options?: unknown): void {\n const behaviorCtx = this.#buildPipelineCtx(ctx, operation, options);\n\n const preparedIncoming = this.prepareIncoming(behaviorCtx, incoming, operation);\n\n if (isVaultNoop(preparedIncoming) || isVaultClearState(preparedIncoming)) {\n return;\n }\n\n behaviorCtx.incoming = preparedIncoming as StateInputType<T>;\n\n const controllerCtx = this.buildControllerCtx(behaviorCtx);\n this.#enqueueAttempt({ behaviorCtx, controllerCtx, options });\n }\n\n /**\n * Resets pipeline + controller state for this FeatureCell.\n *\n * FeatureCell should call this from its own reset() method.\n */\n reset(ctx: BehaviorContext<T>): void {\n this.vaultMonitor.startReset(this.cellKey, VAULT_CONDUCTOR, ctx);\n\n ctx.traceId = ctx.traceId ?? assignTraceId();\n\n this.#resetConductor();\n this.resetBehaviors(ctx);\n this.#resetControllers(ctx);\n\n // Reset controllers as well.\n this.vaultMonitor.endReset(this.cellKey, VAULT_CONDUCTOR, ctx);\n }\n\n /**\n * Destroys pipeline + controller state for this FeatureCell.\n *\n * FeatureCell should call this from its own destroy() method.\n */\n destroy(ctx: BehaviorContext<T>): void {\n vaultDebug(`${VAULT_CONDUCTOR} - destroy`);\n ctx.traceId = ctx.traceId ?? assignTraceId();\n this.vaultMonitor.startDestroy(this.cellKey, VAULT_CONDUCTOR, ctx);\n\n this.#resetConductor();\n this.destroyBehaviors(ctx);\n this.#destroyControllers(ctx);\n\n // Tear down controllers.\n this.#events$.complete();\n this.vaultMonitor.endDestroy(this.cellKey, VAULT_CONDUCTOR, ctx);\n }\n\n //#endregion\n\n //#region Private Methods\n\n async #processEvent(ctx: BehaviorContext<T>, options?: unknown): Promise<void> {\n if (ctx.operation === OperationTypes.Initialize) {\n await this.initializeFeatureCell(ctx);\n return;\n }\n\n if (ctx.operation === OperationTypes.Replace || ctx.operation === OperationTypes.Merge) {\n await this.orchestrate(ctx, options);\n return;\n }\n\n this.vaultMonitor.runtimeError(\n this.cellKey,\n VAULT_CONDUCTOR,\n ctx,\n new Error(`Unknown operation type: \"${ctx.operation}\"`)\n );\n\n this.#completeCurrentAttempt(ctx);\n }\n\n #enqueueMicrotask(): void {\n queueMicrotask(() => {\n this.#denyAttemptCompleted();\n });\n }\n\n /**\n * Enqueue an attempt and trigger queue processing if idle.\n */\n #enqueueAttempt(pending: PendingAttemptShape<T>): void {\n if (\n this.#conductorLicenseStatus === ConductorLicenseStatusTypes.Pending ||\n this.#conductorLicenseStatus === ConductorLicenseStatusTypes.Approved\n ) {\n this.vaultMonitor.startControllerAttempt(this.cellKey, pending.behaviorCtx.traceId, pending.controllerCtx);\n this.#attemptQueue.push(pending);\n\n if (this.#conductorLicenseStatus === ConductorLicenseStatusTypes.Approved) {\n if (!this.#processing && this.#attemptQueue.length === 1) {\n this.#processQueue();\n } else {\n if (this.#isDenyStateForTesting) {\n this.#enqueueMicrotask();\n }\n }\n } else {\n this.#enqueueMicrotask();\n }\n } else {\n this.#enqueueMicrotask();\n }\n }\n\n #completeCurrentAttempt(ctx: ControllerContext<T> | BehaviorContext<T>): void {\n const head = this.#attemptQueue[0];\n /* istanbul ignore next */\n if (!head || head.finalized) return;\n head.finalized = true;\n\n /**\n * IMPORTANT: Finalization MUST occur inside a microtask.\n *\n * Why?\n * The conductor processes controller outcomes and orchestrator work\n * within the same JavaScript turn. If `notifyFinalize()` runs\n * synchronously here, it can:\n *\n * - Re-enter the pipeline before the current call stack fully drains\n * - Trigger controller/orchestrator side effects in the same tick\n * - Cause double-finalization or out-of-order queue mutation\n * - Break `vaultSettled()` determinism in DevMode\n *\n * By deferring to a microtask:\n *\n * 1. The current pipeline cycle fully drains.\n * 2. All synchronous controller emissions complete.\n * 3. The attempt is finalized in a clean turn boundary.\n * 4. Queue mutation (shift) happens atomically with finalize.\n * 5. `#processQueue()` runs only after processing state resets.\n *\n * DO NOT:\n * - Move `notifyFinalize()` outside this microtask.\n * - Split this into multiple microtasks.\n * - Make queue mutation synchronous.\n *\n * The ordering inside this microtask is intentional:\n *\n * notifyFinalize →\n * shift queue →\n * reset processing flag →\n * signal vault settled →\n * process next attempt\n *\n * This guarantees:\n * - Single active attempt at a time\n * - No reentrancy\n * - Deterministic queue progression\n * - Stable DevMode/test flushing behavior\n */\n queueMicrotask(() => {\n this.decisionEngine.notifyFinalize(ctx);\n this.#attemptQueue.shift();\n this.#processing = false;\n this.#attemptCompleted();\n\n this.#processQueue();\n });\n }\n\n #resetProcessingState(ctx: BehaviorContext<T>, outcome: DecisionOutcomeType | ControllerEventType): void {\n this.vaultMonitor.restartControllerAttempt(this.cellKey, ctx.traceId, ctx, outcome);\n this.#processing = false;\n }\n\n /**\n * Central queue processor:\n * - ensures only one attempt is processed at a time\n * - runs controllers for the active attempt\n * - on Allow → runs Orchestrator\n * - on Reset/other → calls reset() for that context\n * - then continues to the next queued attempt\n */\n async #processQueue(): Promise<void> {\n if (this.#processing) return;\n if (!this.#attemptQueue.length) return;\n\n this.#processing = true;\n const activeAttempt = this.#attemptQueue[0]!;\n\n // istanbul ignore next line - defensive only\n if (!activeAttempt) {\n // istanbul ignore next line - defensive only\n this.#processing = false;\n // istanbul ignore next line - defensive only\n return;\n }\n\n try {\n const outcome = await firstValueFrom(this.#runControllers(activeAttempt));\n\n const pending = this.#attemptQueue[0]!;\n\n if (!pending) {\n this.#processing = false;\n return;\n }\n\n const { behaviorCtx, options } = pending;\n\n let isDeny = false;\n\n switch (outcome) {\n // ───────────────────────────────────────────────\n // ALLOW → orchestrator will run → outcome will later drive CLEAR\n // ───────────────────────────────────────────────\n case DecisionOutcomeTypes.Abstain: {\n vaultDebug(\n `${this.cellKey} DecisionOutcome: \"${DecisionOutcomeTypes.Abstain} received. Process Event dispatched.`\n );\n await this.#processEvent(behaviorCtx, options);\n break;\n }\n\n // ───────────────────────────────────────────────\n // FAIL → request is dead → remove + continue\n // ───────────────────────────────────────────────\n case DecisionOutcomeTypes.Abort: {\n this.controllerOutcomeNotification(DecisionOutcomeTypes.Abort, behaviorCtx);\n this.vaultMonitor.endControllerAttempt(this.cellKey, behaviorCtx.traceId, behaviorCtx, {\n status: outcome\n });\n this.#completeCurrentAttempt(behaviorCtx);\n break;\n }\n\n // ───────────────────────────────────────────────\n // DENY → pipeline blocked → keep attempt at head, do NOT shift\n // ───────────────────────────────────────────────\n case DecisionOutcomeTypes.Deny: {\n // do nothing — wait for external change\n this.#denyAttemptCompleted();\n\n isDeny = true;\n this.#processing = false;\n\n this.vaultMonitor.notifyConductorDeny(this.cellKey, behaviorCtx.traceId, behaviorCtx);\n this.controllerOutcomeNotification(DecisionOutcomeTypes.Deny, behaviorCtx);\n\n break;\n }\n }\n\n if (isDeny) {\n this.#isDenyStateForTesting = true;\n } else {\n this.#isDenyStateForTesting = false;\n return this.#processQueue();\n }\n\n // ───────────────────────────────────────────────\n // ERROR → treat as fail, shift queue, continue\n // ───────────────────────────────────────────────\n\n /*********************************\n * Catastrophic unreachable state — controller pipeline failed outside arbitrator\n * on 2025-12-10 I made the decision to leave it though I'm not a fan of untestable\n * and should be pruned code\n *********************************/\n } catch (err) {\n //istanbul ignore next\n vaultError('[conductor] Unreachable subscription error', err);\n\n //istanbul ignore next\n this.vaultMonitor.conductorCrashed(\n this.cellKey,\n activeAttempt?.controllerCtx.traceId ?? 'unknown',\n activeAttempt?.controllerCtx ?? ({ traceId: 'unknown' } as ControllerContext<T>),\n err\n );\n\n // Try to drop the corrupted request to recover\n //istanbul ignore next\n this.#attemptQueue.shift();\n //istanbul ignore next\n this.#processQueue();\n }\n }\n\n #registerDecisionEngine(): void {\n this.decisionEngine = new DecisionEngine<T>(this.#controllers, this.#events$);\n\n this.#events$.subscribe({\n next: (event: ControllerEventShape) => {\n if (event.type === ControllerEventTypes.LicenseDenied) {\n this.vaultMonitor.conductorLicenseDenied(this.cellKey, event.traceId);\n this.#conductorLicenseStatus = ConductorLicenseStatusTypes.Denied;\n\n const error = new Error(\n `${this.cellKey} Conductor Decision Engine: The FeatureCell received a \"License Denied\". Pipeline is disabled.`\n );\n\n vaultDebug(error.message);\n\n this.privateErrorService.setError(createVaultError(error, this.cellKey));\n\n this.#attemptQueue.length = 0;\n\n return;\n }\n\n if (event.type === ControllerEventTypes.LicenseApproved) {\n this.vaultMonitor.conductorLicenseApproved(this.cellKey, event.traceId);\n this.#conductorLicenseStatus = ConductorLicenseStatusTypes.Approved;\n\n vaultDebug(`${this.cellKey} Conductor Decision Engine: License Approved.`);\n\n this.#processQueue();\n\n return;\n }\n\n const head = this.#attemptQueue[0];\n if (!head) return;\n\n // Defensive guard: with serialized pipeline execution,\n // controller events cannot arrive out of order.\n // This is retained as a safety net against future regressions.\n /* istanbul ignore next */\n if (head.controllerCtx.traceId !== event.traceId) {\n vaultDebug(`The head ctx is not the same as the event. ${head.controllerCtx.traceId} != ${event.traceId}`);\n return;\n }\n\n // For both Success and Fail, this request is DONE from the queue’s POV\n switch (event.type) {\n case ControllerEventTypes.Success: {\n this.vaultMonitor.endControllerAttempt(this.cellKey, head.behaviorCtx.traceId, head.controllerCtx, {\n status: 'success'\n });\n\n this.#completeCurrentAttempt(head.controllerCtx);\n break;\n }\n\n case ControllerEventTypes.Failure: {\n this.vaultMonitor.endControllerAttempt(this.cellKey, head.behaviorCtx.traceId, head.controllerCtx, {\n status: 'failure'\n });\n\n this.#resetProcessingState(head.behaviorCtx, event.type);\n\n break;\n }\n\n case ControllerEventTypes.Abort: {\n this.vaultMonitor.conductorAbort(this.cellKey, event.traceId, head.controllerCtx);\n vaultDebug(\n `${this.cellKey} Conductor Decision Engine: Abort request received for Behavior TraceId: ${head.controllerCtx.traceId}.`\n );\n this.#completeCurrentAttempt(head.controllerCtx);\n\n break;\n }\n\n case ControllerEventTypes.Revote: {\n vaultDebug(\n `${this.cellKey} Conductor Decision Engine: Revote request received for Behavior TraceId: ${head.controllerCtx.traceId}.`\n );\n this.vaultMonitor.conductorRevote(this.cellKey, event.traceId, head.controllerCtx);\n this.#processing = false;\n vaultDebug(\n `${this.cellKey} Conductor Decision Engine: processQueue event dispatched for Behavior TraceId: ${head.controllerCtx.traceId}.`\n );\n this.#processQueue();\n break;\n }\n }\n }\n });\n }\n\n #buildPipelineCtx(ctx: BehaviorContext<T>, operation: OperationType, options: unknown): BehaviorContext<T> {\n const traceId = assignTraceId();\n\n return {\n // shared, live references (DO NOT CLONE)\n destroyed$: ctx.destroyed$,\n reset$: ctx.reset$,\n state$: ctx.state$,\n\n featureCellKey: ctx.featureCellKey,\n state: ctx.state,\n lastSnapshot: ctx.lastSnapshot,\n options: options != null ? isolateValue(options) : options,\n\n // per-attempt immutable values\n traceId,\n operation,\n resolveType: undefined,\n incoming: undefined\n };\n }\n\n #resetConductor() {\n this.#attemptQueue.length = 0;\n this.#processing = false;\n }\n\n #destroyControllers(ctx: BehaviorContext<T>): void {\n for (const controller of this.#controllers) {\n this.vaultMonitor.startDestroy(this.cellKey, controller.key, ctx);\n try {\n controller.destroy?.();\n this.vaultMonitor.endDestroy(this.cellKey, controller.key, ctx);\n } catch (err) {\n vaultError(`${controller.key} destroy() failed`, err);\n this.vaultMonitor.endDestroy(this.cellKey, controller.key, ctx, { destroyFailed: true });\n }\n }\n }\n\n #resetControllers(ctx: BehaviorContext<T>): void {\n for (const controller of this.#controllers) {\n this.vaultMonitor.startReset(this.cellKey, controller.key, ctx);\n try {\n controller.reset?.();\n this.vaultMonitor.endReset(this.cellKey, controller.key, ctx);\n } catch (err) {\n vaultError(`${controller.key} reset() failed`, err);\n this.vaultMonitor.endReset(this.cellKey, controller.key, ctx, { resetFailed: true });\n }\n }\n }\n\n #addDefaultErrorController(controllers: ControllerClassContract<T>[], config: ConductorConfig<T>): void {\n const errorControllers = config.controllers.filter((controllerClass: ControllerClassContract) => {\n return (controllerClass as ControllerClassContract<T>).type === ControllerTypes.Error;\n });\n\n if (errorControllers.length > 1) {\n const names = errorControllers.map((errorController) => errorController.key).join(', ');\n\n throw new Error(\n `SDuX Error: More than one ErrorController was provided. Only one error policy can be active per FeatureCell. Received: ${names}. Fix: Remove additional error controllers or combine them into a single controller.`\n );\n }\n\n if (errorControllers.length === 1) {\n controllers.push(errorControllers[0]);\n } else {\n controllers.unshift(withCoreErrorController);\n }\n }\n\n #filterRestrictedControllers(controllers: ControllerClassContract<T>[]): ControllerClassContract<T>[] {\n return controllers.filter((controller) => {\n if (controller.type === ControllerTypes.License || controller.type === ControllerTypes.CoreAbstain) {\n vaultDebug(\n `${this.cellKey} Conductor: Filtering out controller \"${controller.key}\" of type \"${controller.type}\" as it is reserved for internal use.`\n );\n return false;\n }\n return true;\n });\n }\n\n // ---------------------------------------------------------------------------\n // INTERNAL SCHEDULING\n // ---------------------------------------------------------------------------\n #registerControllers(config: ConductorConfig<T>): void {\n config.controllers = config.controllers ?? [];\n\n const allControllers = this.#filterRestrictedControllers(config.controllers) as ControllerClassContract<T>[];\n\n this.#addDefaultErrorController(allControllers, config);\n\n allControllers.unshift(withCoreLicenseController);\n allControllers.unshift(withCoreAbstainController);\n\n // eslint-disable-next-line\n const controllerMetadata = allControllers.map((controller: any) => {\n const meta = controller[CONTROLLER_META] as ControllerMetaShape;\n\n return {\n key: controller.key,\n type: meta.type,\n critical: meta.critical,\n needsLicense: meta.needsLicense\n };\n });\n\n LicensingService().describeControllers({\n featureCellKey: this.cellKey,\n controllers: controllerMetadata\n });\n\n const controllerInit = new ControllerInitializationClass(config.cell.key);\n this.#controllers = controllerInit.initializeControllers(allControllers, this.#events$, config.behaviorConfigs);\n\n this.#registerDecisionEngine();\n }\n\n /**\n * Run controllers for a single pending attempt and normalize their decision.\n *\n * Returns:\n * - ControllerVotes.Allow\n * - ControllerVotes.Reset\n *\n * All more detailed opinions (Deny/Retry/Buffer/Abstain) are reduced\n * at this layer for now.\n */\n #runControllers(pending: PendingAttemptShape<T>): Observable<DecisionOutcomeType> {\n this.vaultMonitor.startControllerVote(this.cellKey, pending.controllerCtx.traceId, pending.controllerCtx);\n return this.decisionEngine.evaluateAttempt(pending.controllerCtx)?.pipe(\n tap((decision: ControllerDecisionShape) => {\n this.vaultMonitor.endControllerVote(\n this.cellKey,\n pending.controllerCtx.traceId,\n pending.controllerCtx,\n decision\n );\n }),\n map((decision: ControllerDecisionShape) => decision.outcome)\n );\n }\n\n #denyAttemptCompleted(): void {\n if (!DevMode.active) return;\n this.#settled$.next();\n }\n\n // ADD\n #attemptCompleted(): void {\n if (!DevMode.active || this.#attemptQueue.length > 0) return;\n\n queueMicrotask(() => {\n this.#settled$.next();\n });\n }\n\n #conductorSettled(): Promise<void> {\n return firstValueFrom(this.#settled$);\n }\n\n //#endregion\n}\n","/**\n * Canonical identifier used to label FeatureCell-related ownership or origin.\n */\nexport const VAULT_FEATURE_CELL = 'vault-feature-cell';\n","import { BehaviorClassContract, BehaviorTypes } from '@sdux-vault/shared';\nimport { FeatureCellConfig } from '../../config/feature-cell.config';\n\n/**\n * Validates a `FeatureCelldescriptorModel` configuration prior to FeatureCell\n * initialization. This function ensures that the descriptor is structurally\n * correct and that conflicting behaviors are not registered on the same\n * FeatureCell instance.\n *\n * The validation enforces two primary constraints:\n *\n * 1. **Initial State Shape Validation**\n * The `initial` value must represent plain unwrapped data (e.g., `{}`, `[]`,\n * or primitives). Passing a resource-like object containing fields such as\n * `{ loading, data, error }` is not permitted because FeatureCells wrap\n * values internally and would otherwise double-encapsulate resource state.\n *\n * 2. **Encryption Behavior Exclusivity**\n * A FeatureCell may register at most one encryption behavior. Multiple\n * encryption behaviors introduce conflicting state guarantees and are\n * rejected during validation.\n *\n * @typeParam T - The type representing the FeatureCell’s state shape.\n *\n * @param descriptor - The declared FeatureCell descriptor, including key and initial state.\n * @param behaviors - A list of behavior classes registered for this FeatureCell.\n *\n * @throws Error if the initial state contains resource-like fields.\n * @throws Error if more than one encryption behavior is provided.\n */\nexport function featureCellValidation<T>(\n descriptor: FeatureCellConfig<T>,\n behaviors: BehaviorClassContract<T>[] = []\n): void {\n // Prevent incorrect initialization (e.g., passing a resource object)\n if (\n typeof descriptor.initialState === 'object' &&\n descriptor.initialState !== null &&\n // eslint-disable-next-line\n 'data' in (descriptor.initialState as any)\n ) {\n throw new Error(\n `[vault] Invalid FeatureCelldescriptorModel.initial for feature \"${descriptor.key}\". Expected raw data (e.g., [] or {}), but received an object with resource fields { loading, data, error }. Pass plain data to avoid double-wrapping.`\n );\n }\n\n const encryptBehaviors = behaviors.filter((behavior) => behavior.type === BehaviorTypes.Encrypt);\n\n if (encryptBehaviors.length > 1) {\n throw new Error(`[vault] FeatureCell cannot register multiple encryption behaviors.`);\n }\n}\n","// --- AI Model File Path (DO NOT DELETE) ---\n// FilePath: projects > engine > src > lib > factories > feature-cell > feature-cell.builder.ts\n// Updated: 2026-03-02 19:52\n//\t Generated by pathcomment [tab] (see .vscode/typescript.code-snippets) or\n//\t cmd+alt+j (see .vscode/keybindings.json)\n// --- END AI MODEL FILE PATH ---\n\nimport {\n BehaviorClassContract,\n BehaviorContext,\n CellBuilderContract,\n ControllerClassContract,\n CoreEmitStateCallback,\n DeferredType,\n DevMode,\n FeatureCellBaseShape,\n FilterFunction,\n InterceptorBehaviorClassContract,\n OperationTypes,\n OperatorsBehaviorClassContract,\n ReducerFunction,\n StateEmitSnapshotShape,\n StateInputType,\n StateSnapshotShape,\n TapCallback,\n VaultErrorCallback,\n vaultWarn\n} from '@sdux-vault/shared';\nimport { Subject } from 'rxjs';\nimport { Conductor } from '../../conductor/conductor';\nimport { FeatureCellConfig } from '../../config/feature-cell.config';\nimport { FeatureCellInitializeConfig } from '../../config/feature-cell.initialize.config';\nimport { VAULT_FEATURE_CELL } from '../../constants/vault-feature-cell.constant';\nimport { VaultMonitor } from '../../monitor/vault-monitor.service';\nimport { featureCellValidation } from '../../utils/feature-cell/feature-cell-validation.util';\nimport { registerVaultSettled } from '../vault/vault-core.function';\n\nexport abstract class FeatureCellBuilder<T> {\n #cellCorrupt = false;\n #conductor!: Conductor<T>;\n #initialized = false;\n readonly #vaultMonitor = VaultMonitor();\n\n protected cell!: FeatureCellBaseShape<T>;\n\n protected readonly cellKey: string;\n\n protected readonly ctx: BehaviorContext<T>;\n\n protected readonly destroyed$ = new Subject<void>();\n\n protected readonly reset$ = new Subject<void>();\n protected readonly state$ = new Subject<StateEmitSnapshotShape<T>>();\n\n constructor(\n // kept for parity with original API, even if not used directly\n protected readonly featureCellConfiguration: FeatureCellConfig<T>,\n private readonly defaultBehaviors: BehaviorClassContract<T>[],\n protected readonly behaviors: BehaviorClassContract<T>[],\n protected readonly controllers: ControllerClassContract<T>[]\n ) {\n this.cellKey = this.featureCellConfiguration.key;\n\n this.ctx = this.#buildCtx();\n }\n\n #buildCtx(): BehaviorContext<T> {\n const destroyed$ = this.destroyed$.asObservable();\n const state$ = this.state$;\n const reset$ = this.reset$.asObservable();\n\n const lastSnapshot = {\n isLoading: false,\n value: undefined,\n error: null,\n hasValue: false\n } as StateSnapshotShape<T>;\n\n const ctx = {\n destroyed$,\n featureCellKey: this.cellKey,\n reset$,\n state$,\n\n get state(): Readonly<StateSnapshotShape<T>> {\n const snapshot = this.lastSnapshot;\n return {\n isLoading: snapshot.isLoading,\n value: snapshot.value,\n error: snapshot.error,\n hasValue: snapshot.hasValue\n };\n }\n } as BehaviorContext<T>;\n\n // 🔒 CRITICAL: Lock the reference forever\n Object.defineProperty(ctx, 'lastSnapshot', {\n value: lastSnapshot,\n writable: false, // ❗ cannot reassign\n configurable: false, // ❗ cannot redefine\n enumerable: true\n });\n\n return ctx;\n }\n\n // ---------------------------------------------------------------------------\n // INTERNAL LIFECYCLE\n // ---------------------------------------------------------------------------\n\n protected reset(): void {\n this.#vaultMonitor.startReset(this.cellKey, VAULT_FEATURE_CELL, this.ctx);\n vaultWarn(`${VAULT_FEATURE_CELL}: reset`);\n\n this.#ensureInitialized();\n this.reset$.next();\n\n this.#conductor?.reset(this.ctx);\n\n this.#vaultMonitor.endReset(this.cellKey, VAULT_FEATURE_CELL, this.ctx);\n }\n\n protected destroy(): void {\n this.#vaultMonitor.startDestroy(this.cellKey, VAULT_FEATURE_CELL, this.ctx);\n vaultWarn(`${VAULT_FEATURE_CELL}: destroy`);\n\n this.reset$.next();\n this.reset$.complete();\n\n this.#conductor?.destroy(this.ctx);\n\n this.destroyed$.next();\n this.destroyed$.complete();\n\n this.state$.complete();\n\n this.#vaultMonitor.endDestroy(this.cellKey, VAULT_FEATURE_CELL, this.ctx);\n }\n\n #ensureInitialized(): void {\n if (this.#cellCorrupt) {\n const errorMessage = `[vault] FeatureCell \"${this.featureCellConfiguration.key}\" encountered a critical initialization failure and is now in a corrupted state. Further use is blocked.`;\n\n this.#vaultMonitor.runtimeError(this.cellKey, VAULT_FEATURE_CELL, this.ctx, errorMessage);\n throw new Error(errorMessage);\n }\n if (!this.#initialized) {\n const errorMessage = `[vault] FeatureCell \"${this.featureCellConfiguration.key}\" has not been initialized. You must call cell.initialize() before using state methods.`;\n this.#vaultMonitor.runtimeError(this.cellKey, VAULT_FEATURE_CELL, this.ctx, errorMessage);\n throw new Error(errorMessage);\n }\n }\n\n #initialize(ctx: FeatureCellInitializeConfig<T>): void {\n if (this.#initialized) {\n const errorMessage = `[vault] FeatureCell \"${this.featureCellConfiguration.key}\" already initialized.`;\n\n this.#vaultMonitor.runtimeError(this.cellKey, VAULT_FEATURE_CELL, this.ctx, errorMessage);\n throw new Error(errorMessage);\n }\n\n try {\n // Register cell + start lifecycle event\n this.#vaultMonitor.registerCell(this.cellKey, this.featureCellConfiguration.insights);\n this.#vaultMonitor.startInitialized(this.cellKey, VAULT_FEATURE_CELL, this.ctx);\n\n featureCellValidation(this.featureCellConfiguration, this.behaviors);\n\n // This must proceed the orchestrator instantiation\n this.#initialized = true;\n\n // Orchestrator needs the concrete cell API\n this.#conductor = new Conductor({\n afterTapCallbacks: ctx.afterTapCallbacks,\n beforeTapCallbacks: ctx.beforeTapCallbacks,\n behaviors: this.behaviors,\n behaviorConfigs: ctx.behaviorConfigs,\n cell: this.cell,\n defaultBehaviors: this.defaultBehaviors,\n controllers: this.controllers,\n emitStateCallbacks: ctx.emitStateCallbacks,\n errorCallbacks: ctx.errorCallbacks,\n filterCallbacks: ctx.filterFunctions,\n initialState: ctx.hydrate || this.featureCellConfiguration.initialState,\n interceptors: ctx.interceptors,\n operators: ctx.operators,\n reducerCallbacks: ctx.reducerFunctions\n });\n\n this.#conductor.initialize(this.ctx);\n\n if (DevMode.active) {\n Object.defineProperty(this.cell, 'vaultSettled', {\n enumerable: false,\n configurable: false,\n writable: false,\n // eslint-disable-next-line\n value: () => (this.#conductor as any).vaultSettled()\n });\n\n // eslint-disable-next-line\n registerVaultSettled(this.cellKey, (this.#conductor as any).vaultSettled.bind(this.#conductor));\n }\n\n this.#vaultMonitor.endInitialized(this.cellKey, VAULT_FEATURE_CELL, this.ctx);\n } catch (err) {\n this.#cellCorrupt = true;\n this.#vaultMonitor.runtimeError(this.cellKey, VAULT_FEATURE_CELL, this.ctx, err);\n throw err;\n }\n }\n\n #handleCorruptionError(message: string): void {\n this.#cellCorrupt = true;\n this.#vaultMonitor.runtimeError(this.cellKey, VAULT_FEATURE_CELL, this.ctx, message);\n throw new Error(message);\n }\n\n protected setup(): CellBuilderContract<T> {\n const afterTapCallbacks: TapCallback<T>[] = [];\n const beforeTapCallbacks: TapCallback<T>[] = [];\n const errorCallbacks: VaultErrorCallback<T>[] = [];\n const filterFunctions: FilterFunction<T>[] = [];\n let hydrate: DeferredType<T>;\n const interceptors: InterceptorBehaviorClassContract<T>[] = [];\n const operators: OperatorsBehaviorClassContract<T>[] = [];\n const reducerFunctions: ReducerFunction<T>[] = [];\n const emitStateCallbacks: CoreEmitStateCallback<T>[] = [];\n const behaviorConfigs = new Map<string, unknown>();\n\n const builder: CellBuilderContract<T> = {\n behaviorConfigs,\n\n afterTaps: (incomingAfterTaps: TapCallback<T>[]): CellBuilderContract<T> => {\n if (this.#initialized) {\n this.#handleCorruptionError(\n 'Cannot call \"afterTaps\" after initialize(). Configuration must be done before initialization.'\n );\n }\n\n if (Array.isArray(incomingAfterTaps)) {\n afterTapCallbacks.push(...incomingAfterTaps);\n }\n return builder;\n },\n beforeTaps: (incomingBeforeTaps: TapCallback<T>[]): CellBuilderContract<T> => {\n if (this.#initialized) {\n this.#handleCorruptionError(\n 'Cannot call \"beforeTaps\" after initialize(). Configuration must be done before initialization.'\n );\n }\n\n if (Array.isArray(incomingBeforeTaps)) {\n beforeTapCallbacks.push(...incomingBeforeTaps);\n }\n return builder;\n },\n emitStates: (incomingEmitStates: CoreEmitStateCallback<T>[]): CellBuilderContract<T> => {\n if (this.#initialized) {\n this.#handleCorruptionError(\n 'Cannot call \"emitStates\" after initialize(). Configuration must be done before initialization.'\n );\n }\n if (Array.isArray(incomingEmitStates)) {\n emitStateCallbacks.push(...incomingEmitStates);\n }\n return builder;\n },\n errors: (incomingErrors: VaultErrorCallback<T>[]): CellBuilderContract<T> => {\n if (this.#initialized) {\n this.#handleCorruptionError(\n 'Cannot call \"errors\" after initialize(). Configuration must be done before initialization.'\n );\n }\n\n if (Array.isArray(incomingErrors)) {\n errorCallbacks.push(...incomingErrors);\n }\n\n return builder;\n },\n filters: (incomingFilters: FilterFunction<T>[]): CellBuilderContract<T> => {\n if (this.#initialized) {\n this.#handleCorruptionError(\n 'Cannot call \"filters\" after initialize(). Configuration must be done before initialization.'\n );\n }\n\n if (Array.isArray(incomingFilters)) {\n filterFunctions.push(...incomingFilters);\n }\n return builder;\n },\n hydrate: (incoming: DeferredType<T>): CellBuilderContract<T> => {\n if (this.#initialized) {\n this.#handleCorruptionError(\n 'Cannot call \"hydrate\" after initialize(). Configuration must be done before initialization.'\n );\n }\n\n hydrate = incoming;\n return builder;\n },\n initialize: () => {\n this.#initialize({\n afterTapCallbacks,\n beforeTapCallbacks,\n behaviorConfigs,\n emitStateCallbacks,\n errorCallbacks,\n filterFunctions,\n hydrate,\n interceptors,\n operators,\n reducerFunctions\n });\n },\n interceptors: (incomingInterceptors: InterceptorBehaviorClassContract<T>[]): CellBuilderContract<T> => {\n if (this.#initialized) {\n this.#handleCorruptionError(\n 'Cannot call \"interceptors\" after initialize(). Configuration must be done before initialization.'\n );\n }\n if (Array.isArray(incomingInterceptors)) {\n interceptors.push(...incomingInterceptors);\n }\n return builder;\n },\n operators: (incomingOperators: OperatorsBehaviorClassContract<T>[]): CellBuilderContract<T> => {\n if (this.#initialized) {\n this.#handleCorruptionError(\n 'Cannot call \"operators\" after initialize(). Configuration must be done before initialization.'\n );\n }\n if (Array.isArray(incomingOperators)) {\n operators.push(...incomingOperators);\n }\n return builder;\n },\n\n reducers: (incomingReducers: ReducerFunction<T>[]): CellBuilderContract<T> => {\n if (this.#initialized) {\n this.#handleCorruptionError(\n 'Cannot call \"reducers\" after initialize(). Configuration must be done before initialization.'\n );\n }\n if (Array.isArray(incomingReducers)) {\n reducerFunctions.push(...incomingReducers);\n }\n return builder;\n }\n };\n\n return builder;\n }\n\n // ---------------------------------------------------------------------------\n // STATE OPERATIONS\n // ---------------------------------------------------------------------------\n\n protected mergeState(incoming: StateInputType<T>, options?: unknown): void {\n this.#ensureInitialized();\n\n return this.#conductor.conduct(this.ctx, incoming, OperationTypes.Merge, options);\n }\n\n protected replaceState(incoming: StateInputType<T>, options?: unknown): void {\n this.#ensureInitialized();\n\n return this.#conductor.conduct(this.ctx, incoming, OperationTypes.Replace, options);\n }\n}\n","// --- AI Model File Path (DO NOT DELETE) ---\n// FilePath: projects > engine > src > lib > factories > feature-cell > feature-cell.class.ts\n// Updated: 2026-03-02 19:52\n//\t Generated by pathcomment [tab] (see .vscode/typescript.code-snippets) or\n//\t cmd+alt+j (see .vscode/keybindings.json)\n// --- END AI MODEL FILE PATH ---\n\nimport { BehaviorClassContract, ControllerClassContract, StateSnapshotShape } from '@sdux-vault/shared';\nimport { FeatureCellConfig } from '../../config/feature-cell.config';\nimport { FeatureCellShape } from '../../shapes/feature-cell/feature-cell.shape';\nimport { FeatureCellBuilder } from './feature-cell.builder';\n\nexport class FeatureCellClass<T> extends FeatureCellBuilder<T> {\n constructor(\n descriptor: FeatureCellConfig<T>,\n defaultBehaviors: BehaviorClassContract<T>[],\n behaviors: BehaviorClassContract<T>[],\n controllers: ControllerClassContract<T>[]\n ) {\n super(descriptor, defaultBehaviors, behaviors, controllers);\n }\n\n build(): FeatureCellShape<T> {\n const builder = this.setup();\n const ctx = this.ctx;\n\n const cell: FeatureCellShape<T> = {\n afterTaps: builder.afterTaps,\n beforeTaps: builder.beforeTaps,\n\n destroy: this.destroy.bind(this),\n destroyed$: this.destroyed$.asObservable(),\n\n errors: builder.errors,\n\n filters: builder.filters,\n\n hydrate: builder.hydrate,\n\n initialize: builder.initialize,\n\n interceptors: builder.interceptors,\n\n key: this.cellKey,\n\n mergeState: this.mergeState.bind(this),\n\n operators: builder.operators,\n\n reducers: builder.reducers,\n\n emitStates: builder.emitStates,\n\n replaceState: this.replaceState.bind(this),\n\n reset$: this.reset$.asObservable(),\n reset: this.reset.bind(this),\n\n state$: this.state$.asObservable(),\n\n get state(): StateSnapshotShape<T> {\n return {\n isLoading: ctx.lastSnapshot.isLoading,\n value: ctx.lastSnapshot.value,\n error: ctx.lastSnapshot.error,\n hasValue: ctx.lastSnapshot.hasValue\n } as StateSnapshotShape<T>;\n }\n };\n\n // Keep a reference for orchestrator creation\n this.cell = cell;\n\n this.behaviors.forEach((behavior: BehaviorClassContract<T>) => {\n behavior?.installFluentApi?.(this.cell, builder.behaviorConfigs);\n });\n\n this.controllers.forEach((controller: ControllerClassContract<T>) => {\n controller?.installFluentApi?.(this.cell, builder.behaviorConfigs);\n });\n\n Object.defineProperty(cell, 'ctx', {\n value: this.ctx,\n enumerable: false,\n writable: false\n });\n\n Object.defineProperty(cell, 'key', {\n value: this.featureCellConfiguration.key,\n enumerable: false,\n writable: false\n });\n\n return cell;\n }\n}\n","import { BehaviorClassContext, VaultLicenseError } from '@sdux-vault/shared';\nimport { LicensingServiceContract } from '../interfaces/licensing/licensing-service.interface';\nimport { LicensingService } from './licensing.service';\n\nexport abstract class LicensingAbstract<T> {\n static readonly needsLicense: boolean;\n static readonly key: string;\n\n #licenseToken!: string;\n #featureCellKey: string;\n #key: string;\n\n #licenseService: LicensingServiceContract<T>;\n\n constructor(ctx: BehaviorClassContext) {\n const ctor = this.constructor as typeof LicensingAbstract;\n\n if (typeof ctor.key !== 'string' || !ctor.key.trim()) {\n throw new VaultLicenseError(`LicensingClass requires a static \"key\". Did you forget @VaultBehavior?`);\n }\n\n this.#licenseService = LicensingService();\n this.#key = ctor.key;\n this.#featureCellKey = ctx.featureCellKey;\n\n if (ctor.needsLicense) {\n this.#requestLicense();\n }\n }\n\n #requestLicense(): void {\n this.#licenseToken = this.#licenseService.requestLicense(this.#featureCellKey, this.#key);\n }\n\n validateLicense(valid: boolean): void {\n if (!this.#licenseToken) {\n throw new VaultLicenseError(\n `validateLicense() called but no license was requested for \"${this.#featureCellKey}\" and \"${this.#key}\".`\n );\n }\n this.#licenseService.validateLicense(this.#featureCellKey, this.#key, this.#licenseToken, valid);\n }\n}\n","import { DevMode } from '@sdux-vault/shared';\nimport { FeatureCellToken } from '../types/feature-cell-token.type';\n\n/**\n * The feature cell tokens map\n */\nconst featureCellTokens = new Map<string, FeatureCellToken>();\n\n/**\n * Tracks whether a FeatureCell token has already been retrieved\n */\nconst featureCellTokenRequested = new Map<string, boolean>();\n\n/**\n * Internal token resolution mechanism used by both createFeatureCellToken()\n * and getFeatureCellToken().\n *\n * Enforces:\n * - unique FeatureCell keys\n * - single retrieval per key (unless dev mode)\n */\nfunction internalFeatureCellToken(key: string, isCreate: boolean): FeatureCellToken {\n // ──────────────────────────────────────────────\n // CREATE MODE\n // ──────────────────────────────────────────────\n if (isCreate) {\n if (featureCellTokens.has(key)) {\n if (!DevMode.active) {\n const existing = featureCellTokens.get(key);\n throw new Error(\n `[vault] Duplicate FeatureCell key detected: \"${key}\". ` +\n `Each FeatureCell must have a unique key. Existing token: \"${existing?.key}\"`\n );\n }\n\n return featureCellTokens.get(key)!;\n }\n\n const token: FeatureCellToken = {\n key\n };\n // const token: FeatureCellToken = { key };\n featureCellTokens.set(key, token);\n return token;\n }\n\n // ──────────────────────────────────────────────\n // RETRIEVE MODE\n // ──────────────────────────────────────────────\n if (!featureCellTokens.has(key)) {\n throw new Error(\n `[vault] FeatureCell token not found for key \"${key}\". You must call provideFeatureCell() before retrieving this FeatureCell.`\n );\n }\n\n if (featureCellTokenRequested.has(key)) {\n if (!DevMode.active) {\n throw new Error(`[vault] FeatureCell \"${key}\" can only be owned by a single consumer.`);\n }\n\n return featureCellTokens.get(key)!;\n }\n\n featureCellTokenRequested.set(key, true);\n return featureCellTokens.get(key)!;\n}\n\n/**\n * Creates a FeatureCell token for the specified key.\n */\nexport function createFeatureCellToken(key: string) {\n return internalFeatureCellToken(key, true);\n}\n\n/**\n * Retrieves the FeatureCell token associated with a key.\n */\nexport function getFeatureCellToken(key: string) {\n return internalFeatureCellToken(key, false);\n}\n\n/**\n * Clears FeatureCell token state for test isolation.\n *\n * This must be called explicitly by test utilities.\n * No framework assumptions are made.\n */\nexport function resetFeatureCellToken(): void {\n // DevMode already gates unsafe behavior\n if (!DevMode.active) return;\n\n featureCellTokens.clear();\n featureCellTokenRequested.clear();\n}\n","// --- AI Model File Path (DO NOT DELETE) ---\n// FilePath: lib > public-api.ts\n// Updated: 2026-03-30 15:42\n//\t Generated by pathcomment [tab] (see .vscode/typescript.code-snippets) or\n//\t cmd+alt+j (see .vscode/keybindings.json)\n// --- END AI MODEL FILE PATH ---\n\n/*\n * This is for version support in dev mode and tracking in the devtools\n */\n\nimport './src/version/version.register';\n\nexport { Conductor } from './src/conductor/conductor';\nexport type { ConductorConfig } from './src/config/conductor.config';\nexport type { FeatureCellConfig } from './src/config/feature-cell.config';\nexport { FeatureCellClass } from './src/factories/feature-cell/feature-cell.class';\nexport * from './src/factories/vault/vault-core.function';\nexport { registerFeatureCell, resetVaultForTests } from './src/factories/vault/vault-core.function';\nexport { LicensingAbstract } from './src/licensing/licensing.abstract';\nexport type { VaultStateRef } from './src/references/vault.reference';\nexport type { FeatureCellShape } from './src/shapes/feature-cell/feature-cell.shape';\nexport { createFeatureCellToken, getFeatureCellToken } from './src/tokens/feature-cell-token-registry';\nexport { isPipelineTerminal } from './src/utils/orchestrator.utils';\nexport { VAULT_LICENSE_ID } from './src/constants/vault-license-id.constant';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["instance","EVENT_POLICY"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sdux-vault-engine.mjs","sources":["../../../lib/src/version/version.register.ts","../../../lib/src/constants/vault-conductor.constant.ts","../../../lib/src/controllers/abstain/with-core-abstrain.controller.ts","../../../lib/src/controllers/error/with-core-error.controller.ts","../../../lib/src/types/license-event.type.ts","../../../lib/src/licensing/licensing.service.ts","../../../lib/src/controllers/license/with-core-license.controller.ts","../../../lib/src/arbitrator/arbitrator.ts","../../../lib/src/types/monitor/vault-monitor-event-category.type.ts","../../../lib/src/types/monitor/vault-monitor-field-rule.type.ts","../../../lib/src/monitor/event-policy/vault-monitor-category-field-policy.constant.ts","../../../lib/src/monitor/event-policy/vault-monitor-event-policy.constant.ts","../../../lib/src/monitor/vault-monitor-shared.state.ts","../../../lib/src/monitor/vault-monitor.helper.ts","../../../lib/src/monitor/vault-monitor.service.ts","../../../lib/src/types/controller-event.type.ts","../../../lib/src/decision-engine/decision-engine.ts","../../../lib/src/constants/vault-orchestrator.constant.ts","../../../lib/src/constants/protected-feature-cell-keys.constant.ts","../../../lib/src/types/vault-registration-license-status.type.ts","../../../lib/src/constants/known-vault-keys.constant.ts","../../../lib/src/constants/vault-license-id.constant.ts","../../../lib/src/factories/vault/vault-core.function.ts","../../../lib/src/utils/initialize-behavior.util.ts","../../../lib/src/utils/orchestrator.utils.ts","../../../lib/src/orchestrator/orchestrator.ts","../../../lib/src/types/conductor-license-status.type.ts","../../../lib/src/utils/initialize-controller.util.ts","../../../lib/src/conductor/conductor.ts","../../../lib/src/constants/vault-feature-cell.constant.ts","../../../lib/src/utils/feature-cell/feature-cell-validation.util.ts","../../../lib/src/factories/feature-cell/feature-cell.builder.ts","../../../lib/src/factories/feature-cell/feature-cell.class.ts","../../../lib/src/licensing/licensing.abstract.ts","../../../lib/src/tokens/feature-cell-token-registry.ts","../../../lib/public-api.ts","../../../lib/sdux-vault-engine.ts"],"sourcesContent":["// --- AI Model File Path (DO NOT DELETE) ---\n// FilePath: projects > engine > src > lib > utils > version > version.register.ts\n// Updated: 2026-03-03 08:09\n//\t Generated by pathcomment [tab] (see .vscode/typescript.code-snippets) or\n//\t cmd+alt+j (see .vscode/keybindings.json)\n// --- END AI MODEL FILE PATH ---\n\nimport { registerVersion } from '@sdux-vault/shared';\n\nconst SDUX_PACKAGE = '@sdux-vault/engine';\nconst SDUX_VERSION = '0.3.0';\n\nregisterVersion(SDUX_PACKAGE, SDUX_VERSION);\n","/**\n * Canonical identifier used to label the Conductor execution context.\n */\nexport const VAULT_CONDUCTOR = 'vault-conductor';\n","import {\n ControllerClassContext,\n ControllerMessageShape,\n ControllerMessageTypes,\n ControllerType,\n ControllerTypes,\n ControllerVote,\n ControllerVotes,\n defineControllerKey,\n OperationTypes,\n VaultController,\n vaultDebug,\n vaultWarn\n} from '@sdux-vault/shared';\nimport { Observable, of } from 'rxjs';\n\n/**\n * Core abstain controller responsible for participating in controller vote resolution.\n * This controller observes incoming controller messages and emits a neutral vote without modifying pipeline flow.\n *\n * --RelatedStart--\n * ControllerMessageShape\n * ControllerVote\n * ControllerVotes\n * --RelatedEnd--\n */\n@VaultController({\n type: ControllerTypes.CoreAbstain,\n key: defineControllerKey('Policy', 'CoreAbstain'),\n critical: false\n})\nexport class withCoreAbstainController<T> {\n /**\n * Static controller type identifier used by the orchestrator.\n */\n static readonly type: ControllerType;\n\n /**\n * Static controller key assigned by the decorator.\n */\n static readonly key: string;\n\n /**\n * Indicates whether this controller is critical.\n */\n static readonly critical: boolean;\n\n /**\n * Controller type identifier used for pipeline classification.\n */\n readonly type = withCoreAbstainController.type;\n\n /**\n * Indicates whether this controller instance is critical.\n */\n readonly critical = withCoreAbstainController.critical;\n\n /**\n * Unique controller key identifying this instance.\n */\n readonly key: string;\n\n #isInitialized = false;\n\n #initializationFailed = false;\n\n /**\n * Creates a new core conductor controller instance.\n *\n * @param key Unique controller identifier supplied by the factory.\n * @param controllerCtx Controller context supplying execution metadata.\n */\n constructor(\n key: string,\n readonly controllerCtx: ControllerClassContext\n ) {\n this.key = key;\n }\n\n /**\n * Handles an incoming controller message and emits a controller vote.\n *\n * @param msg Controller message supplied by the orchestrator.\n * @returns Observable emitting a controller vote or no value.\n */\n handleMessage(msg: ControllerMessageShape<T>): Observable<ControllerVote | void> {\n vaultDebug(`${this.key} handleMessage received \"${msg.type}\" for trace \"${msg.traceId}\".`);\n\n switch (msg.type) {\n case ControllerMessageTypes.Attempt: {\n const { ctx } = msg;\n\n if (this.#initializationFailed) {\n return of(ControllerVotes.Abort);\n }\n\n if (ctx.operation === OperationTypes.Initialize) {\n return of(ControllerVotes.Abstain);\n }\n\n return of(this.#isInitialized ? ControllerVotes.Abstain : ControllerVotes.Deny);\n }\n\n case ControllerMessageTypes.Finalize: {\n this.#isInitialized = true;\n\n return of();\n }\n\n case ControllerMessageTypes.Success: {\n this.#isInitialized = true;\n\n return of();\n }\n\n case ControllerMessageTypes.Failure: {\n if (msg.ctx.operation === OperationTypes.Initialize) {\n this.#initializationFailed = true;\n }\n\n return of();\n }\n\n default: {\n return of(ControllerVotes.Abstain);\n }\n }\n }\n\n /**\n * Lifecycle hook invoked when the controller instance is destroyed.\n */\n destroy(): void {\n vaultWarn(`${this.key} - destroy noop`);\n }\n\n /**\n * Lifecycle hook invoked when the controller instance is reset.\n */\n reset(): void {\n vaultWarn(`${this.key} - reset noop`);\n }\n}\n","import {\n ControllerClassContext,\n ControllerMessageShape,\n ControllerMessageTypes,\n ControllerType,\n ControllerTypes,\n ControllerVote,\n ControllerVotes,\n defineControllerKey,\n VaultController,\n vaultDebug,\n vaultWarn\n} from '@sdux-vault/shared';\nimport { Observable, of } from 'rxjs';\n\n@VaultController({\n type: ControllerTypes.Error,\n key: defineControllerKey('Policy', 'CoreError'),\n critical: false\n})\nexport class withCoreErrorController<T> {\n /**\n * Static controller type identifier used by the orchestrator.\n */\n static readonly type: ControllerType;\n\n /**\n * Static controller key assigned by the decorator.\n */\n static readonly key: string;\n\n /**\n * Indicates whether this controller is critical.\n */\n static readonly critical: boolean;\n\n /**\n * Controller type identifier used for pipeline classification.\n */\n readonly type = withCoreErrorController.type;\n\n /**\n * Indicates whether this controller instance is critical.\n */\n readonly critical = withCoreErrorController.critical;\n\n /**\n * Unique controller key identifying this instance.\n */\n readonly key: string;\n\n ctx!: ControllerClassContext;\n\n /**\n * Creates a new core conductor controller instance.\n *\n * @param key Unique controller identifier supplied by the factory.\n * @param controllerCtx Controller context supplying execution metadata.\n */\n constructor(\n key: string,\n readonly controllerCtx: ControllerClassContext\n ) {\n this.key = key;\n this.ctx = controllerCtx;\n }\n\n /**\n * Handles an incoming controller message and emits a controller vote.\n *\n * @param msg Controller message supplied by the orchestrator.\n * @returns Observable emitting a controller vote or no value.\n */\n handleMessage(msg: ControllerMessageShape<T>): Observable<ControllerVote | void> {\n vaultDebug(`${this.key} handleMessage received \"${msg.type}\" for trace \"${msg.traceId}\".`);\n\n switch (msg.type) {\n case ControllerMessageTypes.Failure: {\n vaultDebug(`${this.key} ABORT — default failure handler for trace \"${msg.traceId}\"`);\n this.ctx.requestAbort(msg.traceId);\n return of();\n }\n\n default: {\n return of(ControllerVotes.Abstain);\n }\n }\n }\n\n /**\n * Lifecycle hook invoked when the controller instance is destroyed.\n */\n destroy(): void {\n vaultWarn(`${this.key} - destroy noop`);\n }\n\n /**\n * Lifecycle hook invoked when the controller instance is reset.\n */\n reset(): void {\n vaultWarn(`${this.key} - reset noop`);\n }\n}\n","export const LicenseEventTypes = {\n RequireLicense: 'requireLicense',\n\n ValidateLicense: 'validateLicense',\n LicenseStatus: 'licenseStatus',\n\n DescribeFeature: 'describe-feature',\n DescribeBehaviors: 'describe-behaviors',\n DescribeControllers: 'describe-controllers'\n} as const;\n\nexport type LicenseEventType = (typeof LicenseEventTypes)[keyof typeof LicenseEventTypes];\n","import { DevMode } from '@sdux-vault/shared';\nimport { Observable, Subject } from 'rxjs';\nimport { LicensingServiceContract } from '../interfaces/licensing/licensing-service.interface';\nimport { LicensingBehaviorEventShape } from '../shapes/licensing/licensing-behavior-event.shape';\nimport { LicensingControllerEvent } from '../shapes/licensing/licensing-controller-event.shape';\nimport { LicensingEventShape } from '../shapes/licensing/licensing-event.shape';\nimport { LicensingFeatureDescriptionEventShape } from '../shapes/licensing/licensing-feature-description-event.shape';\nimport { LicensingValidationShape } from '../shapes/licensing/licensing-validation.shape';\nimport { LicenseEventTypes } from '../types/license-event.type';\n\n//eslint-disable-next-line\nlet singleton: LicensingServiceContract<any> | null = null;\n\nexport function InitializeLicensingService<T>(\n events$: Subject<LicensingEventShape<T>>,\n validation$: Observable<LicensingValidationShape>\n): void {\n if (singleton) return;\n singleton = new LicensingServiceInstance(events$, validation$);\n}\n\nexport function LicensingService<T>(): LicensingServiceContract<T> {\n if (!singleton) {\n throw new Error('[vault] LicensingService not initialized.');\n }\n return singleton;\n}\n\nclass LicensingServiceInstance<T> implements LicensingServiceContract<T> {\n constructor(\n private events$: Subject<LicensingEventShape<T>>,\n private validation$: Observable<LicensingValidationShape>\n ) {}\n\n describeFeature(event: LicensingFeatureDescriptionEventShape<T>): void {\n event.type = LicenseEventTypes.DescribeFeature;\n this.events$.next(event);\n }\n\n describeBehaviors(event: LicensingBehaviorEventShape): void {\n event.type = LicenseEventTypes.DescribeBehaviors;\n this.events$.next(event);\n }\n\n describeControllers(event: LicensingControllerEvent): void {\n event.type = LicenseEventTypes.DescribeControllers;\n this.events$.next(event);\n }\n\n requestLicense(featureCellKey: string, key: string): string {\n if (!key) {\n throw new Error('[vault] Cannot register controller license without a key.');\n }\n\n const licenseToken = this.#generateLicenseToken();\n this.events$.next({\n featureCellKey,\n key,\n licenseToken,\n type: LicenseEventTypes.RequireLicense\n });\n\n return licenseToken;\n }\n\n validateLicense(featureCellKey: string, key: string, licenseToken: string, valid: boolean): void {\n this.events$.next({\n featureCellKey,\n key,\n licenseToken,\n type: LicenseEventTypes.ValidateLicense,\n valid\n });\n }\n\n #generateLicenseToken(): string {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n\n const randomPart = (length: number) =>\n Array.from({ length }, () => chars[Math.floor(Math.random() * chars.length)]).join('');\n\n return `${randomPart(5)}-${randomPart(5)}`;\n }\n\n getLicenseValidation$(): Observable<LicensingValidationShape> {\n return this.validation$;\n }\n}\n\nexport const resetLicensingServiceForTests = (): void => {\n if (!DevMode.active) return;\n singleton = null;\n};\n","import {\n ControllerClassContext,\n ControllerMessageShape,\n ControllerMessageTypes,\n ControllerType,\n ControllerTypes,\n ControllerVote,\n ControllerVotes,\n defineControllerKey,\n VaultController,\n vaultDebug,\n vaultWarn\n} from '@sdux-vault/shared';\nimport { Observable, of, Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { LicensingService } from '../../licensing/licensing.service';\nimport { LicensingValidationShape } from '../../shapes/licensing/licensing-validation.shape';\n\n@VaultController({\n type: ControllerTypes.License,\n key: defineControllerKey('Policy', 'CoreLicense'),\n critical: true\n})\nexport class withCoreLicenseController<T> {\n static readonly type: ControllerType;\n static readonly key: string;\n static readonly critical: boolean;\n\n readonly type = withCoreLicenseController.type;\n readonly critical = withCoreLicenseController.critical;\n readonly key: string;\n\n #licenseApproved: boolean | null = null;\n #sub?: Subscription;\n\n constructor(\n key: string,\n readonly controllerCtx: ControllerClassContext\n ) {\n this.key = key;\n\n const featureCellKey = controllerCtx.featureCellKey;\n\n this.#sub = LicensingService()\n .getLicenseValidation$()\n .pipe(filter((licenseEvent: LicensingValidationShape) => licenseEvent.featureCellKey === featureCellKey))\n .subscribe((event) => {\n this.#licenseApproved = event.approved;\n this.#sub?.unsubscribe();\n const traceId = `${featureCellKey}::license`;\n if (event.approved) {\n controllerCtx?.licenseApproved?.(traceId);\n } else {\n controllerCtx?.licenseDenied?.(traceId);\n }\n });\n }\n\n handleMessage(msg: ControllerMessageShape<T>): Observable<ControllerVote | void> {\n vaultDebug(`${this.key} received \"${msg.type}\" for trace \"${msg.traceId}\".`);\n\n switch (msg.type) {\n case ControllerMessageTypes.Attempt: {\n if (this.#licenseApproved) {\n return of(ControllerVotes.Abstain);\n } else if (this.#licenseApproved === null) {\n return of(ControllerVotes.Deny);\n }\n\n // abort\n return of(ControllerVotes.Abort);\n }\n\n default:\n return of();\n }\n }\n\n destroy(): void {\n this.#sub?.unsubscribe();\n vaultWarn(`${this.key} - destroy unsubscribe`);\n }\n\n reset(): void {\n vaultWarn(`${this.key} - reset noop`);\n }\n}\n","import type { ControllerAttemptMessageShape, ControllerContract, ControllerMessageShape } from '@sdux-vault/shared';\n\nimport {\n ControllerDecisionShape,\n ControllerVotes,\n DecisionOutcomeTypes,\n vaultError,\n vaultWarn,\n type ControllerVote\n} from '@sdux-vault/shared';\n\nimport { catchError, forkJoin, map, Observable, of } from 'rxjs';\n\n/**\n * Pure decision engine responsible for aggregating controller votes.\n *\n * This class evaluates controller responses deterministically by normalizing\n * votes, applying priority rules, and producing a single decision outcome\n * without maintaining internal state or execution history.\n */\nexport class Arbitrator<T> {\n /**\n * Evaluates an ATTEMPT message across all provided controllers.\n *\n * Each controller vote is normalized and aggregated using deterministic\n * priority rules to produce exactly one decision outcome.\n *\n * @param controllers - The set of controllers participating in arbitration.\n * @param msg - The ATTEMPT message being evaluated.\n * @returns An observable emitting a single controller decision.\n */\n evaluateAttempt(\n controllers: ControllerContract<T>[],\n msg: ControllerAttemptMessageShape<T>\n ): Observable<ControllerDecisionShape> {\n // No controllers → treat as unanimous abstain → arbitrate\n if (controllers.length === 0) {\n return of(this.arbitrate(msg.traceId, [ControllerVotes.Abstain]));\n }\n\n try {\n const votes$ = controllers.map((controller) =>\n controller.handleMessage(msg).pipe(\n map((v) => v ?? ControllerVotes.Abstain),\n catchError((err) => {\n vaultWarn('[vault:arbitrator] controller threw during attempt:', err);\n return of(ControllerVotes.Deny);\n })\n )\n );\n\n return forkJoin(votes$).pipe(map((votes) => this.arbitrate(msg.traceId, votes)));\n } catch {\n return of(this.arbitrate(msg.traceId, [ControllerVotes.Deny]));\n }\n }\n\n /**\n * Notifies controllers of non-attempt lifecycle messages.\n *\n * These messages are forwarded to controllers for observation only and\n * do not participate in arbitration or decision-making.\n *\n * @param controllers - The controllers to notify.\n * @param msg - The lifecycle message being dispatched.\n * @returns An observable that completes when all notifications finish.\n */\n notify(controllers: ControllerContract<T>[], msg: ControllerMessageShape<T>): Observable<void> {\n if (controllers.length === 0) {\n return of(void 0);\n }\n\n try {\n const streams$ = controllers.map((controller) =>\n controller.handleMessage(msg).pipe(\n map(() => void 0),\n catchError((err) => {\n vaultWarn('[vault:arbitrator] controller threw during notify:', err);\n return of(void 0);\n })\n )\n );\n\n return forkJoin(streams$).pipe(map(() => void 0));\n } catch {\n return of(void 0);\n }\n }\n\n /**\n * Applies priority rules to a set of controller votes.\n *\n * Votes are evaluated in descending priority order to determine the\n * final controller decision for a given trace.\n *\n * @param traceId - The trace identifier associated with the decision.\n * @param votes - The normalized controller votes.\n * @returns The resolved controller decision.\n */\n private arbitrate(traceId: string, votes: ControllerVote[]): ControllerDecisionShape {\n const hasAbort = votes.includes(ControllerVotes.Abort);\n if (hasAbort) {\n return { traceId, outcome: DecisionOutcomeTypes.Abort };\n }\n\n const hasDeny = votes.includes(ControllerVotes.Deny);\n if (hasDeny) {\n return { traceId, outcome: DecisionOutcomeTypes.Deny };\n }\n\n const allAbstain = votes.every((v) => v === ControllerVotes.Abstain);\n if (allAbstain) {\n return { traceId, outcome: DecisionOutcomeTypes.Abstain };\n }\n\n vaultError(`Unknown controller vote detected`, { traceId, votes });\n\n return { traceId, outcome: DecisionOutcomeTypes.Deny };\n }\n}\n","// --- AI Model File Path ---\n// projects > engine > src > lib > types > monitor > vault-monitor-event-category.type.ts\n\nexport const VaultMonitorEventCategoryType = {\n Boundary: 'boundary',\n State: 'state',\n Error: 'error'\n} as const;\n\nexport type VaultMonitorEventCategoryType =\n (typeof VaultMonitorEventCategoryType)[keyof typeof VaultMonitorEventCategoryType];\n","// --- AI Model File Path ---\n// projects > engine > src > lib > types > monitor > vault-monitor-field-rule.type.ts\n\nexport const FieldRuleTypes = {\n Never: 'never',\n Optional: 'optional',\n Required: 'required'\n} as const;\n\nexport type FieldRuleType = (typeof FieldRuleTypes)[keyof typeof FieldRuleTypes];\n","// --- AI Model File Path (DO NOT DELETE) ---\n// FilePath: projects > engine > src > lib > monitor > event-policy > vault-monitor-category-field-policy.constant.ts\n// Updated: 2026-03-06 16:29\n//\t Generated by pathcomment [tab] (see .vscode/typescript.code-snippets) or\n//\t cmd+alt+j (see .vscode/keybindings.json)\n// --- END AI MODEL FILE PATH ---\n\nimport { VaultMonitorCategoryFieldPolicyShape } from '../../shapes/monitor/vault-monitor-category-field-policy.shape';\nimport { VaultMonitorEventCategoryType } from '../../types/monitor/vault-monitor-event-category.type';\nimport { FieldRuleTypes } from '../../types/monitor/vault-monitor-field-rule.type';\n\nexport const CATEGORY_FIELD_POLICY_CONSTANT: Record<\n VaultMonitorEventCategoryType,\n VaultMonitorCategoryFieldPolicyShape\n> = {\n [VaultMonitorEventCategoryType.Boundary]: {\n state: FieldRuleTypes.Never,\n payload: FieldRuleTypes.Optional,\n error: FieldRuleTypes.Never\n },\n\n [VaultMonitorEventCategoryType.State]: {\n state: FieldRuleTypes.Required,\n payload: FieldRuleTypes.Optional,\n error: FieldRuleTypes.Never\n },\n\n [VaultMonitorEventCategoryType.Error]: {\n state: FieldRuleTypes.Required,\n payload: FieldRuleTypes.Optional,\n error: FieldRuleTypes.Required\n }\n};\n","// --- AI Model File Path (DO NOT DELETE) ---\n// FilePath: projects > engine > src > lib > monitor > event-policy > vault-monitor-event-policy.constant.ts\n// Updated: 2026-03-06 16:30\n//\t Generated by pathcomment [tab] (see .vscode/typescript.code-snippets) or\n//\t cmd+alt+j (see .vscode/keybindings.json)\n// --- END AI MODEL FILE PATH ---\n\nimport { EventPolicyShape } from '../../shapes/monitor/vault-monitor-event-policy.shape';\nimport { VaultMonitorEventCategoryType } from '../../types/monitor/vault-monitor-event-category.type';\n\nconst EVENT_POLICY_CONSTANT: Record<string, EventPolicyShape> = {\n // ─────────────────────────────────────────────\n // STATE\n // ─────────────────────────────────────────────\n 'stage:end:core-state': { category: VaultMonitorEventCategoryType.State },\n 'stage:end:core-emit-state': { category: VaultMonitorEventCategoryType.State },\n 'lifecycle:end:merge': { category: VaultMonitorEventCategoryType.State },\n 'lifecycle:end:replace': { category: VaultMonitorEventCategoryType.State },\n 'stage:end:compute-merge': { category: VaultMonitorEventCategoryType.State },\n 'stage:end:reducer': { category: VaultMonitorEventCategoryType.State },\n 'stage:end:resolve': { category: VaultMonitorEventCategoryType.State },\n\n // ─────────────────────────────────────────────\n // ERROR\n // ─────────────────────────────────────────────\n 'lifecycle:notification:failure': { category: VaultMonitorEventCategoryType.Error },\n 'lifecycle:notification:runtime-error': { category: VaultMonitorEventCategoryType.Error },\n 'lifecycle:notification:warn': { category: VaultMonitorEventCategoryType.Error },\n 'lifecycle:notification:fatal': { category: VaultMonitorEventCategoryType.Error },\n\n // ─────────────────────────────────────────────\n // BOUNDARY\n // ─────────────────────────────────────────────\n\n 'conductor:start:abort': { category: VaultMonitorEventCategoryType.Boundary },\n 'conductor:start:deny': { category: VaultMonitorEventCategoryType.Boundary },\n 'conductor:start:revote': { category: VaultMonitorEventCategoryType.Boundary },\n 'controller:end:vote': { category: VaultMonitorEventCategoryType.Boundary },\n\n // Conductor\n 'conductor:start:license-approved': { category: VaultMonitorEventCategoryType.Boundary },\n 'conductor:start:license-attempt': { category: VaultMonitorEventCategoryType.Boundary },\n\n // Controller\n 'controller:end:attempt': { category: VaultMonitorEventCategoryType.Boundary },\n 'controller:notification:finalize': { category: VaultMonitorEventCategoryType.Boundary },\n 'controller:notification:success': { category: VaultMonitorEventCategoryType.Boundary },\n 'controller:restart:restart-controller-attempt': {\n category: VaultMonitorEventCategoryType.Boundary\n },\n 'controller:start:attempt': { category: VaultMonitorEventCategoryType.Boundary },\n 'controller:start:vote': { category: VaultMonitorEventCategoryType.Boundary },\n\n // Lifecycle (end)\n 'lifecycle:end:initialized': { category: VaultMonitorEventCategoryType.Boundary },\n\n // Lifecycle (start)\n 'lifecycle:start:core-callback-error': {\n category: VaultMonitorEventCategoryType.Boundary\n },\n 'lifecycle:start:core-error': { category: VaultMonitorEventCategoryType.Boundary },\n 'lifecycle:start:core-state': { category: VaultMonitorEventCategoryType.Boundary },\n 'lifecycle:start:global-error': { category: VaultMonitorEventCategoryType.Boundary },\n 'lifecycle:start:initialized': { category: VaultMonitorEventCategoryType.Boundary },\n 'lifecycle:start:merge': { category: VaultMonitorEventCategoryType.Boundary },\n 'lifecycle:start:replace': { category: VaultMonitorEventCategoryType.Boundary },\n\n 'lifecycle:start:error-transform': { category: VaultMonitorEventCategoryType.Boundary },\n 'lifecycle:end:error-transform': { category: VaultMonitorEventCategoryType.Boundary },\n\n 'lifecycle:end:core-callback-error': { category: VaultMonitorEventCategoryType.Boundary },\n 'lifecycle:end:core-error': { category: VaultMonitorEventCategoryType.Boundary },\n 'lifecycle:end:global-error': { category: VaultMonitorEventCategoryType.Boundary },\n\n // Stage (end)\n 'stage:end:after-tap': { category: VaultMonitorEventCategoryType.Boundary },\n 'stage:end:before-tap': { category: VaultMonitorEventCategoryType.Boundary },\n 'stage:end:encrypt': { category: VaultMonitorEventCategoryType.Boundary },\n 'stage:end:filter': { category: VaultMonitorEventCategoryType.Boundary },\n 'stage:end:load-persist': { category: VaultMonitorEventCategoryType.Boundary },\n 'stage:end:operator': { category: VaultMonitorEventCategoryType.Boundary },\n 'stage:end:persist': { category: VaultMonitorEventCategoryType.Boundary },\n\n // Stage (start)\n 'stage:start:after-tap': { category: VaultMonitorEventCategoryType.Boundary },\n 'stage:start:before-tap': { category: VaultMonitorEventCategoryType.Boundary },\n 'stage:start:compute-merge': { category: VaultMonitorEventCategoryType.Boundary },\n 'stage:start:encrypt': { category: VaultMonitorEventCategoryType.Boundary },\n 'stage:start:filter': { category: VaultMonitorEventCategoryType.Boundary },\n 'stage:start:load-persist': { category: VaultMonitorEventCategoryType.Boundary },\n 'stage:start:operator': { category: VaultMonitorEventCategoryType.Boundary },\n 'stage:start:persist': { category: VaultMonitorEventCategoryType.Boundary },\n 'stage:start:reducer': { category: VaultMonitorEventCategoryType.Boundary },\n 'stage:start:resolve': { category: VaultMonitorEventCategoryType.Boundary }\n};\n\nexport { EVENT_POLICY_CONSTANT as EVENT_POLICY };\n","import { InsightConfig } from '@sdux-vault/shared';\n\n/**\n * Holds the singleton VaultMonitorSharedState instance.\n */\nlet instance: VaultMonitorSharedStateInstance | null = null;\n\n/**\n * Returns the global VaultMonitorSharedState singleton instance.\n * This function ensures a single shared state instance is created and reused across the runtime.\n *\n * --RelatedStart--\n * VaultMonitorSharedStateInstance\n * --RelatedEnd--\n *\n * @returns The global VaultMonitorSharedState instance.\n */\nexport function VaultMonitorSharedState(): VaultMonitorSharedStateInstance {\n if (!instance) {\n instance = new VaultMonitorSharedStateInstance();\n }\n\n return instance;\n}\n\nexport class VaultMonitorSharedStateInstance {\n /**\n * Optional global insight definition that overrides per-cell insight\n * configuration for all monitor instances. When set, all monitors use\n * this definition when determining which event fields to emit.\n */\n globalInsightOverride: InsightConfig | null = null;\n\n /**\n * Registry of FeatureCell insight configurations keyed by cell ID.\n *\n * Each entry indicates whether insight is enabled and contains the\n * resolved list of {@link InsightConfig} values associated with\n * that FeatureCell.\n */\n cellRegistry = new Map<\n string,\n {\n hasInsight: boolean;\n insights: InsightConfig[];\n }\n >();\n}\n","// --- AI Model File Path (DO NOT DELETE) ---\n// FilePath: projects > engine > src > lib > monitor > vault-monitor.helper.ts\n// Updated: 2026-03-06 16:27\n//\t Generated by pathcomment [tab] (see .vscode/typescript.code-snippets) or\n//\t cmd+alt+j (see .vscode/keybindings.json)\n// --- END AI MODEL FILE PATH ---\n\nimport {\n defineBehaviorKey,\n DEVTOOLS_AGGREGATE_KEY_CONSTANT,\n DEVTOOLS_LOGGING_KEY_CONSTANT,\n EventShape,\n InsightConfig\n} from '@sdux-vault/shared';\nimport { VaultMonitorEventCategoryType } from '../types/monitor/vault-monitor-event-category.type';\nimport { FieldRuleTypes } from '../types/monitor/vault-monitor-field-rule.type';\nimport { CATEGORY_FIELD_POLICY_CONSTANT } from './event-policy/vault-monitor-category-field-policy.constant';\nimport { EVENT_POLICY } from './event-policy/vault-monitor-event-policy.constant';\nimport { VaultMonitorSharedState } from './vault-monitor-shared.state';\n\n/**\n * Abstract helper base class used by both `VaultMonitor` and\n * `VaultQueueMonitor`.\n *\n * This class centralizes access to shared monitor state and DevMode\n * utilities. All mutable state is delegated to `VaultMonitorSharedState`,\n * ensuring that every monitor instance operates on the same global registry\n * and global insight override.\n *\n * No pipeline behavior is implemented directly here; this class provides\n * shared accessors, helpers, and common metadata required by monitor\n * implementations.\n */\nexport abstract class VaultMonitorHelper {\n /**\n * Shared global monitor state. All cell registry information and\n * global insight overrides are pulled from this injected source.\n */\n protected readonly shared = VaultMonitorSharedState();\n\n /**\n * Behavior key used for DevTools/Telemetry classification in\n * Vault diagnostics. Identifies monitor-related behavior for\n * analytics, devtools, and inspector utilities.\n */\n public readonly key = defineBehaviorKey('DevTools', 'Telemetry');\n\n /**\n * Retrieves the globally-applied insight override, if any.\n *\n * @returns The active global `InsightDefinition`, or `null` if\n * no override is applied.\n */\n protected get globalInsightOverride(): InsightConfig | null {\n return this.shared.globalInsightOverride;\n }\n\n /**\n * Applies a global insight override. This value is shared across all\n * monitors, allowing system-wide inspection behavior injection.\n *\n * @param def - The insight metadata to set as the global override.\n */\n protected set globalInsightOverride(def: InsightConfig | null) {\n this.shared.globalInsightOverride = def;\n }\n\n /**\n * Provides access to the shared FeatureCell registry. This registry\n * tracks monitor metadata about every registered cell, including\n * whether it provides insights and the definitions associated with it.\n *\n * @returns The shared cell registry map.\n */\n protected get cellRegistry() {\n return this.shared.cellRegistry;\n }\n\n /**\n * Registers a FeatureCell into the shared monitor registry.\n * Each entry stores insight awareness and any provided definitions.\n *\n * @param cellKey - The unique FeatureCell identifier.\n * @param insight - Optional `InsightDefinition` describing cell-level\n * insight capabilities.\n */\n public registerCell(cellKey: string, insight?: InsightConfig): void {\n const hasInsight = !!insight;\n\n this.cellRegistry.set(cellKey, {\n hasInsight,\n insights: hasInsight ? [insight!] : []\n });\n }\n\n /**\n * Applies a global insight override shared across all monitors.\n * When set, this overrides cell-specific insight metadata for\n * system-wide inspection behavior.\n *\n * @param definition - The global insight definition to activate.\n */\n public activateGlobalInsights(definition: InsightConfig): void {\n this.globalInsightOverride = definition;\n }\n\n protected isChromeDevTools(cell: string): boolean {\n return cell === DEVTOOLS_LOGGING_KEY_CONSTANT || cell === DEVTOOLS_AGGREGATE_KEY_CONSTANT;\n }\n\n protected applyPolicy<T>(event: EventShape<T>, insight?: InsightConfig): EventShape<T> {\n const category = EVENT_POLICY[event.name]?.category ?? VaultMonitorEventCategoryType.Boundary;\n\n const policy = CATEGORY_FIELD_POLICY_CONSTANT[category];\n\n const allowState = !!insight?.wantsState;\n const allowPayload = !!insight?.wantsPayload;\n const allowErrors = !!insight?.wantsErrors;\n\n if (!event.source) {\n delete event.source;\n }\n\n // STATE\n if (!allowState || policy.state === FieldRuleTypes.Never) {\n delete event.state;\n }\n\n // PAYLOAD\n if (\n !allowPayload ||\n policy.payload === FieldRuleTypes.Never ||\n (policy.payload === FieldRuleTypes.Optional && event.payload === undefined)\n ) {\n delete event.payload;\n }\n\n // ERROR\n if (!allowErrors || policy.error === FieldRuleTypes.Never) {\n delete event.error;\n } else if (policy.error === FieldRuleTypes.Required) {\n // Optional payload allowed on Error category\n if (!allowPayload || event.payload === undefined) {\n delete event.payload;\n }\n }\n\n return event;\n }\n}\n","// --- AI Model File Path (DO NOT DELETE) ---\n// FilePath: projects > engine > src > lib > monitor > vault-monitor.service.ts\n// Updated: 2026-03-03 09:10\n//\t Generated by pathcomment [tab] (see .vscode/typescript.code-snippets) or\n//\t cmd+alt+j (see .vscode/keybindings.json)\n// --- END AI MODEL FILE PATH ---\n\nimport { EventBus } from '@sdux-vault/devtools';\nimport {\n BehaviorContext,\n ControllerContext,\n ControllerDecisionShape,\n DecisionOutcomeType,\n DevMode,\n EventBoundaryTypes,\n EventShape,\n EventTypes,\n StateSnapshotShape,\n VaultErrorShape,\n VaultMonitorContract,\n createVaultError,\n vaultError,\n vaultWarn\n} from '@sdux-vault/shared';\n\nimport { InsightConfig } from '@sdux-vault/shared';\nimport { VaultMonitorEventShape } from '../shapes/monitor/vault-monitor-event-input.shape';\nimport { VaultMonitorHelper } from './vault-monitor.helper';\n\n/**\n * Holds the singleton VaultMonitor instance.\n */\nlet instance: VaultMonitorContract | null = null;\n\n/**\n * Returns the global VaultMonitor singleton instance.\n * This function ensures a single monitor instance is created and reused across the runtime.\n *\n * --RelatedStart--\n * VaultMonitorContract\n * --RelatedEnd--\n *\n * @returns The global VaultMonitor instance.\n */\nexport function VaultMonitor(): VaultMonitorContract {\n if (!instance) {\n instance = new VaultMonitorInstance();\n }\n\n return instance;\n}\n\n/**\n * Implements the VaultMonitorContract using shared helper functionality.\n * This class provides the concrete singleton implementation backing the VaultMonitor entry point.\n *\n * --RelatedStart--\n * VaultMonitorContract\n * --RelatedEnd--\n */\nclass VaultMonitorInstance extends VaultMonitorHelper implements VaultMonitorContract {\n /**\n * Event bus used to emit structured pipeline events to DevTools.\n * This bus is consumed by the ngSDuX Chrome extension and internal\n * development utilities.\n */\n #eventBus = EventBus();\n\n /**\n * Creates a new VaultMonitor instance and exposes it globally for\n * DevTools integration. The monitor is attached to `window.sdux`\n * so that browser extensions can observe all emitted events.\n */\n constructor() {\n super();\n // This is for the chrome plugin\n window.sdux ??= {};\n window.sdux.vaultMonitorInstance = this;\n }\n\n /**\n * Maps a BehaviorContext into a StateSnapshot suitable for DevTools.\n * This ensures each pipeline event includes a normalized representation\n * of loading, value, error, and hasValue.\n *\n * @typeParam T - State value type.\n * @param ctx - Immutable behavior context provided by the orchestrator.\n * @returns A standardized StateSnapshot.\n */\n #toSnapshot<T>(ctx: Readonly<BehaviorContext<T> | ControllerContext<T>>): StateSnapshotShape<T> {\n // const src: any = ctx.incoming ?? ctx.state ?? {};\n const src: StateSnapshotShape<T> =\n (ctx as ControllerContext<T>)?.snapshot ?? (ctx as BehaviorContext<T>)?.state ?? {};\n\n return {\n isLoading: src.isLoading ?? false,\n value: src.value ?? undefined,\n error: src.error ?? null,\n hasValue: src.hasValue ?? !!src.value\n };\n }\n\n /** Emits a startAfterTap event. */\n startAfterTap<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'after-tap';\n this.#emitEventV2StageStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endAfterTap event with optional payload. */\n endAfterTap<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>, payload?: unknown) {\n const name = 'after-tap';\n this.#emitEventV2StageEnd({ cell, behaviorKey, name, ctx, payload });\n }\n\n /** Emits a startBeforeTap event. */\n startBeforeTap<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'before-tap';\n this.#emitEventV2StageStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endBeforeTap event with optional payload. */\n endBeforeTap<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>, payload?: unknown) {\n const name = 'before-tap';\n this.#emitEventV2StageEnd({ cell, behaviorKey, name, ctx, payload });\n }\n\n /** Emits a startClearPersist event. */\n startClearPersist<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'clear-persist';\n this.#emitEventV2LifecycleStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endClearPersist event. */\n endClearPersist<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'clear-persist';\n this.#emitEventV2LifecycleEnd({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a startComputeMerge event. */\n startComputeMerge<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'compute-merge';\n this.#emitEventV2StageStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endComputeMerge event. */\n endComputeMerge<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'compute-merge';\n this.#emitEventV2StageEnd({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a notifyConductorDeny event. */\n notifyConductorDeny<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'deny';\n this.#emitEventV2ConductorNotification({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a conductorCrashed event. */\n conductorCrashed<T>(cell: string, behaviorKey: string, ctx: Readonly<ControllerContext<T>>, error: unknown) {\n const errorMessage = createVaultError(error, cell);\n const name = 'fatal';\n vaultError(cell, behaviorKey, errorMessage);\n\n this.#emitEventV2LifecycleNotification({\n cell,\n behaviorKey,\n name,\n ctx,\n payload: {\n message:\n 'This has proven to be untested code in unit tests. So you win some type of prize. Please create a github issues and share your amazing gift to bring down a systm.'\n },\n error: errorMessage\n });\n }\n\n /** Emits a conductorRevote event. */\n conductorRevote<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T> | ControllerContext<T>>) {\n const name = 'revote';\n this.#emitEventV2LifecycleNotification({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a conductorAbort event. */\n conductorAbort<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T> | ControllerContext<T>>) {\n const name = 'abort';\n this.#emitEventV2LifecycleNotification({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a conductorAttempt event. */\n conductorLicenseAttempt<T>(cell: string, featureCellKey: string) {\n const name = 'license-attempt';\n this.#emitEventV2LifecycleNotification({ cell, behaviorKey: featureCellKey, name, ctx: {} as BehaviorContext<T> });\n }\n\n /** Emits a conductorApproved event. */\n conductorLicenseApproved<T>(cell: string, featureCellKey: string) {\n const name = 'license-approved';\n this.#emitEventV2LifecycleNotification({ cell, behaviorKey: featureCellKey, name, ctx: {} as BehaviorContext<T> });\n }\n\n /** Emits a conductorDenied event. */\n conductorLicenseDenied<T>(cell: string, featureCellKey: string) {\n const name = 'license-denied';\n this.#emitEventV2LifecycleNotification({ cell, behaviorKey: featureCellKey, name, ctx: {} as BehaviorContext<T> });\n }\n\n /** Emits a startControllerAttempt event. */\n startControllerAttempt<T>(cell: string, behaviorKey: string, ctx: Readonly<ControllerContext<T>>) {\n const name = 'attempt';\n this.#emitEventV2ControllerStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a endControllerAttempt event. */\n endControllerAttempt<T>(\n cell: string,\n behaviorKey: string,\n ctx: Readonly<BehaviorContext<T> | ControllerContext<T>>,\n payload: unknown\n ) {\n const name = 'attempt';\n this.#emitEventV2ControllerEnd({ cell, behaviorKey, name, ctx, payload });\n }\n\n /** Emits a restartControllerAttempt event. */\n restartControllerAttempt<T>(\n cell: string,\n behaviorKey: string,\n ctx: Readonly<BehaviorContext<T>>,\n payload: DecisionOutcomeType\n ) {\n const name = 'restart-attempt';\n this.#emitEventV2ControllerNotification({ cell, behaviorKey, name, ctx, payload });\n }\n\n /** Emits a controllerFailure event. */\n\n controllerFailure<T>(behaviorKey: string, ctx: Readonly<ControllerContext<T>>, error: unknown) {\n const errorMessage = createVaultError(error, behaviorKey);\n const name = 'failure';\n this.#emitEventV2LifecycleNotification({ cell: ctx.featureCellKey, behaviorKey, name, ctx, error: errorMessage });\n }\n\n /** Emits a controllerFinalize event. */\n controllerFinalize<T>(behaviorKey: string, ctx: Readonly<ControllerContext<T> | BehaviorContext<T>>) {\n const name = 'finalize';\n this.#emitEventV2LifecycleNotification({ cell: ctx.featureCellKey, behaviorKey, name, ctx });\n }\n\n /** Emits a controllerSuccess event. */\n controllerSuccess<T>(behaviorKey: string, ctx: Readonly<ControllerContext<T>>) {\n const name = 'success';\n this.#emitEventV2LifecycleNotification({ cell: ctx.featureCellKey, behaviorKey, name, ctx });\n }\n\n /** Emits a startControllerVote event. */\n startControllerVote<T>(cell: string, behaviorKey: string, ctx: Readonly<ControllerContext<T>>) {\n const name = 'vote';\n this.#emitEventV2ControllerStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a endControllerVote event. */\n endControllerVote<T>(\n cell: string,\n behaviorKey: string,\n ctx: Readonly<ControllerContext<T>>,\n payload: ControllerDecisionShape\n ) {\n const name = 'vote';\n this.#emitEventV2ControllerEnd({ cell, behaviorKey, name, ctx, payload });\n }\n\n /** Emits a startCallbackError event. */\n startCoreCallbackError<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'core-callback-error';\n this.#emitEventV2StageStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endCoreCallbackError event. */\n endCoreCallbackError<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'core-callback-error';\n this.#emitEventV2StageEnd({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a startStatEmit event. */\n startCoreEmitState<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'core-emit-state';\n this.#emitEventV2StageStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endCoreEmitState event. */\n endCoreEmitState<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'core-emit-state';\n this.#emitEventV2StageEnd({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a startError event. */\n startCoreError<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'core-error';\n this.#emitEventV2StageStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endCoreError event. */\n endCoreError<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'core-error';\n this.#emitEventV2StageEnd({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a startState event. */\n startCoreState<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'core-state';\n this.#emitEventV2StageStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endCoreState event. */\n endCoreState<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'core-state';\n this.#emitEventV2StageEnd({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a startDecrypt event. */\n startDecrypt<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'decrypt';\n this.#emitEventV2StageStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endDecrypt event with optional payload. */\n endDecrypt<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>, payload?: unknown) {\n const name = 'decrypt';\n this.#emitEventV2StageEnd({ cell, behaviorKey, name, ctx, payload });\n }\n\n /** Emits a startDestroy event. */\n startDestroy<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n const name = 'destroy';\n this.#emitEventV2LifecycleStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endDestroy event. */\n endDestroy<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>, payload?: unknown): void {\n const name = 'destroy';\n this.#emitEventV2LifecycleEnd({ cell, behaviorKey, name, ctx, payload });\n }\n\n /** Emits a startEncrypt event. */\n startEncrypt<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'encrypt';\n this.#emitEventV2StageStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endEncrypt event. */\n endEncrypt<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'encrypt';\n this.#emitEventV2StageEnd({ cell, behaviorKey, name, ctx });\n }\n\n /**\n * Emits an error event. Errors are logged and sent to DevTools\n * depending on configured insight preferences.\n *\n * @param error - Raw error thrown by pipeline stage.\n */\n runtimeError<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>, error: unknown): void {\n const errorMessage = createVaultError(error, cell);\n vaultError(cell, behaviorKey, errorMessage);\n const name = 'runtime-error';\n this.#emitEventV2LifecycleNotification({ cell, behaviorKey, name, ctx, error: errorMessage });\n }\n\n /** Emits a startError event. */\n startErrorTransform<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'error-transform';\n this.#emitEventV2StageStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endError event. */\n endErrorTransform<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>, payload: VaultErrorShape) {\n const name = 'error-transform';\n this.#emitEventV2StageEnd({ cell, behaviorKey, name, ctx, payload });\n }\n\n /** Emits a startFilter event. */\n startFilter<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n const name = 'filter';\n this.#emitEventV2StageStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endFilter event. */\n endFilter<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n const name = 'filter';\n this.#emitEventV2StageEnd({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a startGlobalError event. */\n startGlobalError<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n const name = 'global-error';\n this.#emitEventV2LifecycleStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endGlobalError event. */\n endGlobalError<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n const name = 'global-error';\n this.#emitEventV2LifecycleEnd({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a ingressSubscribed event. */\n ingressSubscribed<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>, source: string): void {\n const name = 'ingress-subscribed';\n this.#emitEventV2LifecycleStart({ cell, behaviorKey, name, ctx, source });\n }\n\n /** Emits an ingressCompleted event. */\n ingressCompleted<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>, source: string): void {\n const name = 'ingress-completed';\n this.#emitEventV2LifecycleEnd({ cell, behaviorKey, name, ctx, source });\n }\n\n /** Emits a startInitialized event. */\n startInitialized<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n const name = 'initialized';\n this.#emitEventV2LifecycleStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endInitialized event. */\n endInitialized<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n const name = 'initialized';\n this.#emitEventV2LifecycleEnd({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a startInterceptor event. */\n startInterceptor<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'interceptor';\n this.#emitEventV2StageStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endInterceptor event with optional payload. */\n endInterceptor<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>, payload?: unknown) {\n const name = 'interceptor';\n this.#emitEventV2StageEnd({ cell, behaviorKey, name, ctx, payload });\n }\n\n /** Emits a startLoadPersist event. */\n startLoadPersist<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'load-persist';\n this.#emitEventV2StageStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endLoadPersist event with optional payload. */\n endLoadPersist<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>, payload?: unknown) {\n const name = 'load-persist';\n this.#emitEventV2StageEnd({ cell, behaviorKey, name, ctx, payload });\n }\n\n /** Emits a startMerge event for DevTools inspection. */\n startMerge<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n const name = 'merge';\n this.#emitEventV2LifecycleStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endMerge event with an optional payload. */\n endMerge<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>, payload?: unknown): void {\n const name = 'merge';\n this.#emitEventV2LifecycleEnd({ cell, behaviorKey, name, ctx, payload });\n }\n\n /** Emits a startOperator event. */\n startOperator<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n this.#emitEventV2StageStart({\n cell,\n behaviorKey,\n name: 'operator',\n ctx\n });\n }\n\n /** Emits an endOperator event with optional payload. */\n endOperator<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>, payload?: unknown) {\n this.#emitEventV2StageEnd({\n cell,\n behaviorKey,\n name: 'operator',\n ctx,\n payload\n });\n }\n\n /** Emits a startPersist event. */\n startPersist<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'persist';\n this.#emitEventV2StageStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endPersist event. */\n endPersist<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>) {\n const name = 'persist';\n this.#emitEventV2StageEnd({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a startReducer event. */\n startReducer<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n this.#emitEventV2StageStart({\n cell,\n behaviorKey,\n name: 'reducer',\n ctx\n });\n }\n\n /** Emits an endReducer event. */\n endReducer<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n this.#emitEventV2StageEnd({\n cell,\n behaviorKey,\n name: 'reducer',\n ctx\n });\n }\n\n /** Emits a startReplace event for DevTools inspection. */\n startReplace<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n const name = 'replace';\n this.#emitEventV2LifecycleStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endReplace event with an optional payload. */\n endReplace<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>, payload?: unknown): void {\n const name = 'replace';\n this.#emitEventV2LifecycleEnd({ cell, behaviorKey, name, ctx, payload });\n }\n\n /** Emits a startReset event. */\n startReset<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n const name = 'reset';\n this.#emitEventV2LifecycleStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endReset event. */\n endReset<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>, payload?: unknown): void {\n const name = 'reset';\n this.#emitEventV2LifecycleEnd({ cell, behaviorKey, name, ctx, payload });\n }\n\n /** Emits a startResolve event. */\n startResolve<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n const name = 'resolve';\n this.#emitEventV2StageStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endResolve event. */\n endResolve<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n const name = 'resolve';\n this.#emitEventV2StageEnd({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a startSetInitialValue event. */\n startSetInitialValue<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n const name = 'set-initial-value';\n this.#emitEventV2LifecycleStart({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits an endSetInitialValue event. */\n endSetInitialValue<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n const name = 'set-initial-value';\n this.#emitEventV2LifecycleEnd({ cell, behaviorKey, name, ctx });\n }\n\n /** Emits a startStepwise event. */\n startStepwise<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n const name = 'stepwise';\n this.#emitEventV2StageStart({\n cell,\n behaviorKey,\n name,\n ctx\n });\n }\n\n /** Emits an endStepwise event. */\n endStepwise<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>): void {\n const name = 'stepwise';\n this.#emitEventV2StageEnd({\n cell,\n behaviorKey,\n name,\n ctx\n });\n }\n\n /**\n * Emits a warning event to DevTools and console output.\n *\n * @param message - Warning description.\n */\n warn<T>(cell: string, behaviorKey: string, ctx: Readonly<BehaviorContext<T>>, message: string): void {\n const errorMessage = createVaultError(message, cell);\n vaultWarn(cell, behaviorKey, errorMessage);\n const name = 'warn';\n this.#emitEventV2LifecycleNotification({ cell, behaviorKey, name, ctx, error: errorMessage });\n }\n\n #buildEventName<T>(eventInput: VaultMonitorEventShape<T>): VaultMonitorEventShape<T> {\n eventInput.name = `${eventInput.type}:${eventInput.boundary}:${eventInput.name}`;\n return eventInput;\n }\n\n #emitEventV2StageStart<T>(eventInput: VaultMonitorEventShape<T>): void {\n eventInput.type = EventTypes.Stage;\n eventInput.boundary = EventBoundaryTypes.Start;\n this.#emitEventV2(this.#buildEventName(eventInput));\n }\n\n #emitEventV2StageEnd<T>(eventInput: VaultMonitorEventShape<T>): void {\n eventInput.type = EventTypes.Stage;\n eventInput.boundary = EventBoundaryTypes.End;\n this.#emitEventV2(this.#buildEventName(eventInput));\n }\n\n #emitEventV2LifecycleStart<T>(eventInput: VaultMonitorEventShape<T>): void {\n eventInput.type = EventTypes.Lifecycle;\n eventInput.boundary = EventBoundaryTypes.Start;\n this.#emitEventV2(this.#buildEventName(eventInput));\n }\n\n #emitEventV2LifecycleEnd<T>(eventInput: VaultMonitorEventShape<T>): void {\n eventInput.type = EventTypes.Lifecycle;\n eventInput.boundary = EventBoundaryTypes.End;\n this.#emitEventV2(this.#buildEventName(eventInput));\n }\n\n #emitEventV2LifecycleNotification<T>(eventInput: VaultMonitorEventShape<T>): void {\n eventInput.type = EventTypes.Lifecycle;\n eventInput.boundary = EventBoundaryTypes.Notification;\n this.#emitEventV2(this.#buildEventName(eventInput));\n }\n\n #emitEventV2ConductorNotification<T>(eventInput: VaultMonitorEventShape<T>): void {\n eventInput.type = EventTypes.Conductor;\n eventInput.boundary = EventBoundaryTypes.Notification;\n this.#emitEventV2(this.#buildEventName(eventInput));\n }\n\n #emitEventV2ControllerStart<T>(eventInput: VaultMonitorEventShape<T>): void {\n eventInput.type = EventTypes.Controller;\n eventInput.boundary = EventBoundaryTypes.Start;\n this.#emitEventV2(this.#buildEventName(eventInput));\n }\n\n #emitEventV2ControllerEnd<T>(eventInput: VaultMonitorEventShape<T>): void {\n eventInput.type = EventTypes.Controller;\n eventInput.boundary = EventBoundaryTypes.End;\n this.#emitEventV2(this.#buildEventName(eventInput));\n }\n\n #emitEventV2ControllerNotification<T>(eventInput: VaultMonitorEventShape<T>): void {\n eventInput.type = EventTypes.Controller;\n eventInput.boundary = EventBoundaryTypes.Notification;\n this.#emitEventV2(this.#buildEventName(eventInput));\n }\n\n /**\n * Emits a normalized monitoring event using a structured event input object.\n *\n * @param eventInput Aggregated monitoring event input containing context, payload, and metadata.\n */\n #emitEventV2<T>(eventInput: VaultMonitorEventShape<T>): void {\n const { cell, ctx, name, behaviorKey, source, error, payload, type, boundary } = eventInput;\n if (this.isChromeDevTools(cell) || !DevMode.active) return;\n\n let insight: InsightConfig;\n\n if (this.globalInsightOverride) {\n insight = this.globalInsightOverride;\n } else {\n const config = this.cellRegistry.get(cell);\n if (!config || !config.hasInsight) return;\n insight = config.insights[0];\n }\n\n const event: EventShape = {\n id: crypto.randomUUID(),\n cell,\n behaviorKey,\n name,\n timestamp: Date.now(),\n state: this.#toSnapshot(ctx as Readonly<BehaviorContext<T>>),\n type:\n type ??\n /* istanbul ignore next -- defensive invariant */\n EventTypes.Unknown,\n boundary:\n boundary ??\n /* istanbul ignore next -- defensive invariant */\n EventBoundaryTypes.Unknown,\n payload,\n error,\n source\n };\n\n if (ctx.traceId) {\n event.traceId = ctx.traceId;\n }\n\n this.#eventBus.nextPipeline(this.applyPolicy(event, insight));\n }\n}\n\n// If you’d like, I can also show you one tiny addition to your EventBus that would make Chrome extensions and external DevTools integration dramatically easier (like 4 lines of code). It would fit perfectly with the architecture you already wrote.\n","/**\n * Defines the set of supported controller event type identifiers.\n * This constant provides the canonical string values used to classify controller event outcomes.\n */\nexport const ControllerEventTypes = {\n /**\n * Indicates that the controller requested an abort to terminate now.\n */\n Abort: 'abort',\n\n /**\n * Indicates that the controller execution resulted in a failure.\n */\n Failure: 'failure',\n\n /**\n * Indicates that the license controller approved the FeatureCell for operation.\n */\n LicenseApproved: 'licenseApproved',\n\n /**\n * Indicates that the license controller denied the FeatureCell for operation.\n */\n LicenseDenied: 'licenseDenied',\n\n /**\n * Indicates that the controller requested a revote.\n */\n Revote: 'revote',\n\n /**\n * Indicates that the controller execution completed successfully.\n */\n Success: 'success'\n} as const;\n\n/**\n * Represents the union of all valid controller event type values.\n * This type constrains controller events to the supported identifiers defined by the event type registry.\n *\n * --RelatedStart--\n * ControllerEventTypes\n * --RelatedEnd--\n */\nexport type ControllerEventType = (typeof ControllerEventTypes)[keyof typeof ControllerEventTypes];\n","import { Subject } from 'rxjs';\n\nimport type {\n ControllerAttemptMessageShape,\n ControllerContract,\n ControllerFailMessageShape,\n ControllerFinalizeMessageShape,\n ControllerSuccessMessageShape,\n VaultErrorShape\n} from '@sdux-vault/shared';\nimport { BehaviorContext, ControllerContext, ControllerMessageTypes } from '@sdux-vault/shared';\nimport { Arbitrator } from '../arbitrator/arbitrator';\nimport { VaultMonitor } from '../monitor/vault-monitor.service';\nimport { ControllerEventShape } from '../shapes/controller/controller-event.shape';\nimport { ControllerEventTypes } from '../types/controller-event.type';\n\n/**\n * Coordinates controller arbitration and lifecycle notifications.\n *\n * This class mediates between pipeline execution and registered controllers\n * by delegating vote aggregation to the Arbitrator and emitting controller\n * lifecycle events for monitoring and diagnostics.\n */\nexport class DecisionEngine<T> {\n readonly #arbitrator = new Arbitrator<T>();\n readonly #vaultMonitor = VaultMonitor();\n\n /**\n * Creates a new decision engine instance.\n *\n * @param controllers - The controllers participating in pipeline decisions.\n * @param events$ - Subject used to emit controller lifecycle events.\n */\n constructor(\n private readonly controllers: ControllerContract<T>[],\n private readonly events$: Subject<ControllerEventShape>\n ) {}\n\n /**\n * Evaluates whether a pipeline execution attempt is permitted.\n *\n * @param ctx - The controller context for the current pipeline attempt.\n * @returns An observable emitting the aggregated controller decision.\n */\n evaluateAttempt(ctx: ControllerContext<T>) {\n const msg: ControllerAttemptMessageShape<T> = {\n type: ControllerMessageTypes.Attempt,\n traceId: ctx.traceId!,\n ctx\n };\n\n return this.#arbitrator.evaluateAttempt(this.controllers, msg);\n }\n\n /**\n * Notifies controllers that a pipeline execution completed successfully.\n *\n * @param ctx - The controller context associated with the successful run.\n */\n notifySuccess(ctx: ControllerContext<T>): void {\n if (!this.controllers.length) return;\n\n const msg: ControllerSuccessMessageShape<T> = {\n type: ControllerMessageTypes.Success,\n traceId: ctx.traceId!,\n ctx\n };\n\n this.#vaultMonitor.controllerSuccess('decision-engine', ctx);\n\n this.#arbitrator.notify(this.controllers, msg).subscribe({\n complete: () => {\n if (!this.events$.closed) {\n this.events$.next({\n traceId: ctx.traceId,\n type: ControllerEventTypes.Success\n });\n }\n }\n });\n }\n\n /**\n * Notifies controllers that a pipeline execution failed.\n *\n * @param ctx - The controller context associated with the failure.\n * @param error - The error that caused the pipeline to fail.\n */\n notifyFailure(ctx: ControllerContext<T>, error: VaultErrorShape | unknown): void {\n if (!this.controllers.length) return;\n\n const msg: ControllerFailMessageShape<T> = {\n type: ControllerMessageTypes.Failure,\n traceId: ctx.traceId!,\n ctx,\n error\n };\n\n this.#vaultMonitor.controllerFailure('decision-engine', ctx, error);\n\n this.#arbitrator.notify(this.controllers, msg).subscribe({\n complete: () => {\n if (!this.events$.closed) {\n this.events$.next({\n traceId: ctx.traceId,\n type: ControllerEventTypes.Failure\n });\n }\n }\n });\n }\n\n /**\n * Notifies controllers that a pipeline trace has finalized.\n *\n * @param ctx - The context associated with the finalized pipeline trace.\n */\n notifyFinalize(ctx: ControllerContext<T> | BehaviorContext<T>): void {\n if (!this.controllers.length) return;\n\n const msg: ControllerFinalizeMessageShape = {\n type: ControllerMessageTypes.Finalize,\n traceId: ctx.traceId\n };\n\n this.#vaultMonitor.controllerFinalize('decision-engine', ctx);\n\n this.#arbitrator.notify(this.controllers, msg).subscribe();\n }\n}\n","/**\n * Canonical identifier used to label the Orchestrator execution context.\n */\nexport const VAULT_ORCHESTRATOR = 'vault-orchestrator';\n","/**\n * Set of reserved FeatureCell API keys that behaviors are not allowed to\n * override through `extendCellAPI()`.\n *\n * These keys represent core lifecycle operations, pipeline configuration\n * methods, state mutation entry points, source adapters, tap-stage hooks,\n * identity properties, and other protected extensions used by the\n * FeatureCell runtime. Any attempt by a behavior to redefine one of these\n * keys will result in a runtime error to preserve API integrity.\n *\n * This list ensures that behaviors cannot replace, shadow, or mutate\n * critical functionality required for correct operation of the vault,\n * pipeline builder, state transitions, or devtools visibility.\n */\nexport const PROTECTED_FEATURE_CELL_KEYS = new Set<string>([\n // Core lifecycle\n 'initialize',\n 'destroy',\n 'destroyed$',\n 'reset',\n 'reset$',\n\n // Pipeline configurators\n 'reducers',\n 'operators',\n 'filters',\n 'interceptors',\n\n // State mutation\n 'mergeState',\n 'replaceState',\n\n // Tap stages\n 'beforeTaps',\n 'afterTaps',\n\n // Identity\n 'key',\n\n // State container\n 'state',\n\n // Other keys\n 'cache',\n 'persist',\n 'encrypt',\n 'beforeTap',\n 'afterTap',\n 'hydrate'\n]);\n","// --- AI Model File Path (DO NOT DELETE) ---\n// FilePath: projects > engine > src > lib > types > vault-registration-license-status.type.ts\n// Updated: 2026-03-03 10:09\n//\t Generated by pathcomment [tab] (see .vscode/typescript.code-snippets) or\n//\t cmd+alt+j (see .vscode/keybindings.json)\n// --- END AI MODEL FILE PATH ---\n\nexport const VaultRegistrationLicenseStatusTypes = {\n NotRequired: 'not-required',\n Pending: 'pending',\n Revoked: 'revoked',\n Timeout: 'timeout',\n Valid: 'valid'\n} as const;\n\nexport type VaultRegistrationLicenseStatusType =\n (typeof VaultRegistrationLicenseStatusTypes)[keyof typeof VaultRegistrationLicenseStatusTypes];\n","/**\n * Set of all known behavior and controller keys shipped with the core,\n * addon, and engine packages. Keys in this set are always permitted\n * during behavior and controller initialization regardless of license\n * status.\n *\n * Any key not present in this set is treated as a custom extension and\n * requires a valid Vault license to be registered.\n *\n * Entries follow the canonical key format produced by\n * `defineBehaviorKey()` and `defineControllerKey()`:\n *\n * `SDUX::Behavior::<Domain>::<Name>`\n * `SDUX::Controller::<Domain>::<Name>`\n */\nexport const KNOWN_VAULT_KEYS = new Set<string>([\n // ---------------------------------------------------------------------------\n // Core Behaviors (libs/core)\n // ---------------------------------------------------------------------------\n 'SDUX::Behavior::Core::Error',\n 'SDUX::Behavior::Core::ErrorCallback',\n 'SDUX::Behavior::Core::Filter',\n 'SDUX::Behavior::Core::Reducer',\n 'SDUX::Behavior::Core::BeforeTap',\n 'SDUX::Behavior::Core::AfterTap',\n 'SDUX::Behavior::Core::EmitState',\n 'SDUX::Behavior::Core::State',\n 'SDUX::Behavior::Core::Value',\n 'SDUX::Behavior::Core::Observable',\n 'SDUX::Behavior::Core::Promise',\n 'SDUX::Behavior::Core::FromStream',\n 'SDUX::Behavior::Core::FromPromise',\n 'SDUX::Behavior::Core::FromObservable',\n 'SDUX::Behavior::Core::ObjectMerge',\n 'SDUX::Behavior::Core::ArrayMerge',\n\n // ---------------------------------------------------------------------------\n // Addon Behaviors (libs/addons)\n // ---------------------------------------------------------------------------\n 'SDUX::Behavior::Persist::SessionStorage',\n 'SDUX::Behavior::Persist::LocalStorage',\n 'SDUX::Behavior::Persist::CookieStorage',\n 'SDUX::Behavior::Encrypt::Aes256',\n 'SDUX::Behavior::Policy::StepwiseFilter',\n 'SDUX::Behavior::Policy::StepwiseReducer',\n 'SDUX::Behavior::Policy::StepwiseResolve',\n 'SDUX::Behavior::Addon::DistinctUntilChanged',\n 'SDUX::Behavior::Interceptor::GlobalErrorPause',\n 'SDUX::Behavior::Merge::ArrayAppend',\n 'SDUX::Behavior::Merge::ArrayPush',\n 'SDUX::Behavior::Merge::Deep',\n 'SDUX::Behavior::Core::Query',\n 'SDUX::Behavior::Core::Lookup',\n 'SDUX::Behavior::Cache::State',\n\n // ---------------------------------------------------------------------------\n // Engine Behaviors (vault-engine)\n // ---------------------------------------------------------------------------\n 'SDUX::Behavior::Core::License',\n\n // ---------------------------------------------------------------------------\n // Engine Controllers (vault-engine)\n // ---------------------------------------------------------------------------\n 'SDUX::Controller::Policy::CoreAbstain',\n 'SDUX::Controller::Policy::CoreError',\n 'SDUX::Controller::Policy::CoreLicense',\n\n // ---------------------------------------------------------------------------\n // Addon Controllers (libs/addons)\n // ---------------------------------------------------------------------------\n 'SDUX::Controller::Policy::ReplayGlobalError',\n 'SDUX::Controller::Policy::Stepwise',\n 'SDUX::Controller::Policy::MaxFailures',\n 'SDUX::Controller::Policy::Delay',\n 'SDUX::Controller::Policy::Throttle'\n]);\n","/**\n * Canonical license identifier for the SDuX Vault engine license.\n *\n * This value must match the `licenseId` field in the `VaultLicensingShape`\n * payload supplied via `provideVault({ licenses: [...] })`.\n */\nexport const VAULT_LICENSE_ID = 'sdux-vault';\n","// --- AI Model File Path (DO NOT DELETE) ---\n// FilePath: projects > engine > src > lib > factories > vault > vault-core.function.ts\n// Updated: 2026-03-02 19:52\n//\t Generated by pathcomment [tab] (see .vscode/typescript.code-snippets) or\n//\t cmd+alt+j (see .vscode/keybindings.json)\n// --- END AI MODEL FILE PATH ---\n\nimport {\n DevMode,\n isTestEnv,\n setVaultLogLevel,\n VaultConfig,\n VaultLicensingShape,\n VaultRegistrationEntityShape,\n VaultRegistrationShape,\n vaultWarn\n} from '@sdux-vault/shared';\nimport { ReplaySubject, Subject, Subscription } from 'rxjs';\nimport { InitializeLicensingService, resetLicensingServiceForTests } from '../../licensing/licensing.service';\nimport { RegisteredFeatureCellShape } from '../../shapes/feature-cell/registered-feature-cell.shape';\nimport { LicensingBehaviorEventShape } from '../../shapes/licensing/licensing-behavior-event.shape';\nimport { LicensingControllerEvent } from '../../shapes/licensing/licensing-controller-event.shape';\nimport { LicensingEventShape } from '../../shapes/licensing/licensing-event.shape';\nimport { LicensingFeatureDescriptionEventShape } from '../../shapes/licensing/licensing-feature-description-event.shape';\nimport { LicensingValidationShape } from '../../shapes/licensing/licensing-validation.shape';\nimport { VaultShape } from '../../shapes/vault/vault.shape';\nimport { LicenseEventTypes } from '../../types/license-event.type';\nimport { VaultRegistrationLicenseStatusTypes } from '../../types/vault-registration-license-status.type';\n\nimport { initDevtoolsWidget } from '@sdux-vault/devtools';\nimport { KNOWN_VAULT_KEYS } from '../../constants/known-vault-keys.constant';\nimport { VAULT_LICENSE_ID } from '../../constants/vault-license-id.constant';\n\nlet instance: VaultCoreInstance | null = null;\n\nexport function VaultCore(config: VaultConfig = {}): void {\n if (!instance) {\n instance = new VaultCoreInstance(config);\n }\n}\n\nclass VaultCoreInstance {\n #licensingSub?: Subscription;\n #validaionSub?: Subscription;\n #licenseMap = new Map<string, unknown>();\n #terminalStatus = new Map<string, boolean>();\n\n #bypassLicensing = true;\n #licenseTimeoutMs?: number;\n // eslint-disable-next-line\n #licenseTimers = new Map<string, any>();\n\n #licensingBus$ = new Subject<LicensingEventShape<unknown>>();\n #validationBus$ = new ReplaySubject<LicensingValidationShape>();\n\n #lastStatus = new Map<string, boolean>();\n\n #vaultConfig!: Readonly<VaultShape> | undefined;\n\n #registry: Map<string, VaultRegistrationShape> = new Map();\n\n constructor(config: VaultConfig) {\n InitializeLicensingService(this.#licensingBus$, this.#validationBus$.asObservable());\n this.setVaultConfig(config);\n this.#initializeLicenses(config.licenses);\n this.#subscribeToLicensingEvents();\n this.#injectDebugWidget();\n }\n\n //#region Public methods\n\n /**\n * Applies and freezes the global Vault configuration.\n *\n * This function is invoked by `provideVault()` and must never be\n * called manually in userland code.\n *\n * The configuration is:\n * - Normalized and frozen\n * - Prevented from being set multiple times (except in test environments)\n * - Used to validate license tokens asynchronously\n *\n * @param config - Raw user-supplied Vault configuration.\n * @throws If configuration is set more than once in non-test environments.\n */\n setVaultConfig(config: VaultConfig): void {\n const vaultConfig = {\n devMode: config.devMode ?? false,\n logLevel: config.logLevel ?? 'off'\n } as VaultShape;\n\n this.#vaultConfig = Object.freeze(vaultConfig);\n\n DevMode.setDevMode(this.#vaultConfig.devMode);\n setVaultLogLevel(this.#vaultConfig.logLevel!);\n\n this.#bypassLicensing = config.devMode ? (config.bypassLicensing ?? true) : false;\n\n this.#licenseTimeoutMs = config.licenseTimeoutMs ?? 15_000;\n\n this.#warnIfAccidentalDevMode();\n }\n\n resetForTesting(): void {\n this.#licensingSub?.unsubscribe();\n this.#licensingSub = undefined;\n\n this.#validaionSub?.unsubscribe();\n this.#validaionSub = undefined;\n\n this.#vaultConfig = undefined;\n this.resetFeatureCellRegistry();\n\n this.#lastStatus.clear();\n this.#licenseMap.clear();\n }\n\n resetFeatureCellRegistry(): void {\n this.#registry.clear();\n }\n\n registerCellRuntime(key: string): void {\n this.#ensureRecord(key);\n }\n\n registerBehaviors(key: string, behaviors: VaultRegistrationEntityShape[]): void {\n const record = this.#ensureRecord(key);\n record.behaviors = this.#registerEntities(behaviors);\n record.behaviorsRegistered = true;\n }\n\n registerControllers(key: string, controllers: VaultRegistrationEntityShape[]): void {\n const record = this.#ensureRecord(key);\n record.controllers = this.#registerEntities(controllers);\n record.controllersRegistered = true;\n }\n\n registerFluentApis(\n key: string,\n summary: {\n filters: number;\n reducers: number;\n beforeTaps: number;\n afterTaps: number;\n emitStateCallbacks: number;\n errorCallbacks: number;\n }\n ): void {\n const record = this.#ensureRecord(key);\n record.fluentApis = Object.freeze(summary);\n }\n\n getLicensePayload(licenseId: string): unknown | undefined {\n return this.#licenseMap.get(licenseId);\n }\n\n isBypassLicensing(): boolean {\n return this.#bypassLicensing;\n }\n\n isAuthorizedKey(key: string): boolean {\n return KNOWN_VAULT_KEYS.has(key);\n }\n\n hasVaultLicense(): boolean {\n return this.#licenseMap.has(VAULT_LICENSE_ID);\n }\n\n //#endregion\n\n //#region private Methods\n\n #initializeLicenses(licenses?: VaultLicensingShape[]): void {\n if (!licenses?.length) return;\n\n for (const license of licenses) {\n if (!license?.licenseId) continue;\n this.#licenseMap.set(license.licenseId, license.payload);\n }\n }\n\n #registerEntities(entities: VaultRegistrationEntityShape[]): Map<string, Readonly<VaultRegistrationEntityShape>> {\n return new Map(\n entities.map((entity: VaultRegistrationEntityShape) => {\n let needsLicense: boolean;\n if (this.#bypassLicensing) {\n needsLicense = false;\n } else {\n needsLicense = entity.needsLicense ?? false;\n }\n\n const frozen: VaultRegistrationEntityShape = {\n key: entity.key,\n type: entity.type,\n critical: !!entity.critical,\n needsLicense,\n validLicense: needsLicense\n ? VaultRegistrationLicenseStatusTypes.Pending\n : VaultRegistrationLicenseStatusTypes.NotRequired\n };\n\n return [entity.key, Object.freeze(frozen)];\n })\n );\n }\n\n #subscribeToLicensingEvents(): void {\n this.#licensingSub = this.#licensingBus$.subscribe((event: LicensingEventShape<unknown>) => {\n switch (event.type) {\n case LicenseEventTypes.DescribeFeature: {\n const featureEvent = event as LicensingFeatureDescriptionEventShape<unknown>;\n this.registerFluentApis(featureEvent.featureCellKey, this.#summarizeFluent(featureEvent));\n break;\n }\n\n case LicenseEventTypes.DescribeBehaviors: {\n const behaviorEvent = event as LicensingBehaviorEventShape;\n this.registerBehaviors(behaviorEvent.featureCellKey, behaviorEvent.behaviors);\n this.#emitLicenseStatus(behaviorEvent.featureCellKey);\n break;\n }\n\n case LicenseEventTypes.DescribeControllers: {\n const controllerEvent = event as LicensingControllerEvent;\n this.registerControllers(controllerEvent.featureCellKey, controllerEvent.controllers);\n this.#emitLicenseStatus(controllerEvent.featureCellKey);\n break;\n }\n\n case LicenseEventTypes.RequireLicense: {\n this.#startLicenseTimeout(event.featureCellKey);\n this.#recordLicenses(event);\n return;\n }\n\n case LicenseEventTypes.ValidateLicense: {\n this.#handleLicenseValidation(event);\n this.#emitLicenseStatus(event.featureCellKey);\n return;\n }\n }\n });\n }\n\n #startLicenseTimeout(featureCellKey: string): void {\n if (!this.#licenseTimeoutMs) return;\n\n if (this.#licenseTimers.has(featureCellKey)) return; // already running\n\n const timer = setTimeout(() => {\n this.#expirePendingLicenses(featureCellKey);\n this.#licenseTimers.delete(featureCellKey);\n }, this.#licenseTimeoutMs);\n\n this.#licenseTimers.set(featureCellKey, timer);\n }\n\n #expirePendingLicenses(featureCellKey: string): void {\n const record = this.#registry.get(featureCellKey);\n if (!record) return;\n\n // istanbul ignore next -- defensive only not testable\n const allEntities = [...(record.behaviors?.values() ?? []), ...(record.controllers?.values() ?? [])];\n\n let changed = false;\n\n for (const entity of allEntities) {\n if (entity.needsLicense && entity.validLicense === VaultRegistrationLicenseStatusTypes.Pending) {\n const map = record.behaviors?.has(entity.key) ? record.behaviors : record.controllers;\n\n map?.set(\n entity.key,\n Object.freeze({\n ...entity,\n validLicense: VaultRegistrationLicenseStatusTypes.Timeout\n })\n );\n\n changed = true;\n }\n }\n\n if (changed) {\n this.#publishStatus(featureCellKey, false);\n }\n\n this.#clearLicenseTimer(featureCellKey);\n }\n\n // Do not evaluate until both sides registered\n #emitLicenseStatus(featureCellKey: string): void {\n const record = this.#registry.get(featureCellKey);\n if (!record) return;\n\n if (!record.behaviorsRegistered || !record.controllersRegistered) return;\n\n // istanbul ignore next -- defensive only not testable\n const allEntities = [...(record.behaviors?.values() ?? []), ...(record.controllers?.values() ?? [])];\n\n // Only entities that require a license matter\n const entities = allEntities.filter((e) => e.needsLicense);\n\n // Nothing requires a license → immediately approved\n if (entities.length === 0) {\n this.#publishStatus(featureCellKey, true);\n return;\n }\n\n // Any revoked → deny immediately\n if (\n entities.some(\n (e) =>\n e.validLicense === VaultRegistrationLicenseStatusTypes.Revoked ||\n e.validLicense === VaultRegistrationLicenseStatusTypes.Timeout\n )\n ) {\n this.#clearLicenseTimer(featureCellKey);\n this.#publishStatus(featureCellKey, false);\n return;\n }\n\n // Any pending → do nothing (still waiting)\n if (entities.some((e) => e.validLicense === VaultRegistrationLicenseStatusTypes.Pending)) {\n return;\n }\n\n // All valid\n this.#publishStatus(featureCellKey, true);\n }\n\n #clearLicenseTimer(featureCellKey: string): void {\n const timer = this.#licenseTimers.get(featureCellKey);\n if (timer) {\n clearTimeout(timer);\n this.#licenseTimers.delete(featureCellKey);\n }\n }\n\n #publishStatus(featureCellKey: string, approved: boolean): void {\n if (this.#terminalStatus.has(featureCellKey)) return;\n\n this.#terminalStatus.set(featureCellKey, approved);\n\n this.#clearLicenseTimer(featureCellKey);\n\n this.#lastStatus.set(featureCellKey, approved);\n\n this.#validationBus$.next({\n featureCellKey,\n approved\n });\n }\n\n #handleLicenseValidation(event: LicensingEventShape<unknown>): void {\n const { featureCellKey, key, licenseToken, valid } = event;\n\n if (this.#terminalStatus.has(event.featureCellKey)) return;\n\n if (!key) {\n vaultWarn('Cannot validate license without a key.');\n return;\n }\n\n const record = this.#registry.get(featureCellKey);\n if (!record) return;\n\n this.#applyLicenseValidation(record.behaviors, key, licenseToken, valid);\n this.#applyLicenseValidation(record.controllers, key, licenseToken, valid);\n }\n\n #applyLicenseValidation(\n entities: Map<string, VaultRegistrationEntityShape> | undefined,\n key: string,\n licenseId: string | undefined,\n valid: boolean | undefined\n ): void {\n if (!entities?.has(key)) return;\n\n const entity = entities.get(key)!;\n\n // Must require license\n if (!entity.needsLicense) return;\n\n // Must have previously issued key\n if (!entity.licenseId) return;\n\n // Must match exactly\n if (entity.licenseId !== licenseId) {\n // if (DevMode.active) {\n vaultWarn(`[vault] License key mismatch for \"${key}\".`);\n //}\n return;\n }\n\n entities.set(\n key,\n Object.freeze({\n ...entity,\n validLicense: valid ? VaultRegistrationLicenseStatusTypes.Valid : VaultRegistrationLicenseStatusTypes.Revoked\n })\n );\n }\n\n #recordLicenses(event: LicensingEventShape<unknown>): void {\n const { featureCellKey, key, licenseToken } = event;\n\n const record = this.#registry.get(featureCellKey);\n if (!record) return;\n\n // istanbul ignore next -- defensive only not testable\n if (!key || typeof key !== 'string') {\n throw new Error('[vault] Cannot register controller license without a key.');\n }\n\n this.#recordLicense(record.behaviors, key, licenseToken);\n this.#recordLicense(record.controllers, key, licenseToken);\n }\n\n #recordLicense(\n entities: Map<string, VaultRegistrationEntityShape> | undefined,\n key: string,\n licenseId: string | undefined\n ): void {\n if (!entities?.has(key)) return;\n\n const entity = entities.get(key)!;\n\n // Must require license\n if (!entity.needsLicense) return;\n\n // First write wins — do not overwrite\n if (entity.licenseId) return;\n\n if (!licenseId) return;\n\n entities.set(\n key,\n Object.freeze({\n ...entity,\n licenseId\n })\n );\n }\n\n #warnIfAccidentalDevMode(): void {\n if (DevMode.active && !isTestEnv.active) {\n // eslint-disable-next-line\n console.error(\n `[vault] \"Development Mode\" is enabled outside of a test environment.\\n` +\n `This can expose sensitive data because safeguards that normally remove or sanitize data are disabled.\\n` +\n `You have explicitly disabled these safeguards and are responsible for ensuring production safety.\\n` +\n `If this is intentional, you can safely ignore this message.`\n );\n }\n }\n\n #summarizeFluent(event: Partial<LicensingFeatureDescriptionEventShape<unknown>>) {\n const fluent: Partial<LicensingFeatureDescriptionEventShape<unknown>['fluentApis']> = event?.fluentApis ?? {};\n\n return {\n filters: Array.isArray(fluent?.filters) ? fluent.filters.length : 0,\n reducers: Array.isArray(fluent?.reducers) ? fluent.reducers.length : 0,\n beforeTaps: Array.isArray(fluent?.beforeTaps) ? fluent.beforeTaps.length : 0,\n afterTaps: Array.isArray(fluent?.afterTaps) ? fluent.afterTaps.length : 0,\n emitStateCallbacks: Array.isArray(fluent?.emitStateCallbacks) ? fluent.emitStateCallbacks.length : 0,\n errorCallbacks: Array.isArray(fluent?.errorCallbacks) ? fluent.errorCallbacks.length : 0\n };\n }\n\n #ensureRecord(key: string): VaultRegistrationShape {\n if (!this.#registry.has(key)) {\n this.#registry.set(key, { key, behaviorsRegistered: false, controllersRegistered: false });\n }\n\n return this.#registry.get(key)!;\n }\n\n #injectDebugWidget(): void {\n if (!DevMode.active) return;\n // istanbul ignore next line - this is defensive only\n if (typeof document === 'undefined') return;\n\n // Ensure root container exists\n globalThis.sdux ??= {};\n\n // Ensure debugWidget exists\n globalThis.sdux.debugWidget ??= {};\n\n globalThis.sdux.debugWidget.getRegistry = () => this.getRegistrySnapshot();\n\n initDevtoolsWidget();\n }\n\n //#endregion\n\n //#region Public Testing Method\n registerVaultSettled(key: string, fn: () => Promise<void>): void {\n const record = this.#ensureRecord(key);\n record.vaultSettled = fn;\n }\n\n async awaitFeatureCellSettled(key: string): Promise<void> {\n const record = this.#registry.get(key);\n\n if (!record) {\n throw new Error(`[vault] FeatureCell \"${key}\" not registered.`);\n }\n\n if (typeof record.vaultSettled === 'function') {\n await record.vaultSettled();\n await Promise.resolve(); // flush microtasks\n }\n }\n\n async awaitAllSettled(): Promise<void> {\n for (const record of this.#registry.values()) {\n if (typeof record.vaultSettled === 'function') {\n await record.vaultSettled();\n }\n }\n\n await Promise.resolve();\n }\n\n // TESTING ONLY — do not use in production code\n getRegistrySnapshot(): ReadonlyMap<string, VaultRegistrationShape> {\n // Return a shallow cloned map so tests cannot mutate internal state\n return new Map(this.#registry);\n }\n\n //#endregion\n}\n\nexport function registerFeatureCell(entry: RegisteredFeatureCellShape): void {\n if (!instance) {\n throw new Error('[vault] Vault not initialized.');\n }\n\n if (!entry) {\n throw new Error('[vault] registerFeatureCell() requires a valid entry object.');\n }\n\n if (!entry.key || typeof entry.key !== 'string') {\n throw new Error('[vault] registerFeatureCell() requires a valid \"key\" (non-empty string).');\n }\n\n instance.registerCellRuntime(entry.key);\n}\n\nexport function getLicensePayload(licenseId: string): unknown {\n if (!instance) {\n throw new Error('[vault] Vault not initialized.');\n }\n\n if (typeof licenseId !== 'string' || !licenseId.trim()) {\n throw new Error('[vault] getLicensePayload() requires a valid licenseId.');\n }\n\n return instance.getLicensePayload(licenseId);\n}\n\nexport async function vaultAllSettled(): Promise<void> {\n if (!instance) return;\n await instance.awaitAllSettled();\n}\n\nexport async function vaultSettled(key: string): Promise<void> {\n if (!instance) {\n throw new Error('[vault] Vault not initialized.');\n }\n\n await instance.awaitFeatureCellSettled(key);\n}\n\nexport function registerVaultSettled(key: string, vaultSettled?: () => Promise<void>): void {\n if (!instance) {\n throw new Error('[vault] Vault not initialized.');\n }\n\n if (!key || typeof key !== 'string') {\n throw new Error('[vault] registerVaultSettled() requires a valid \"key\" (non-empty string).');\n }\n\n if (typeof vaultSettled !== 'function') {\n // silently ignore in production; nothing to attach\n return;\n }\n\n instance.registerVaultSettled(key, vaultSettled);\n}\n\n/**\n * Resets the global Vault configuration for isolated tests.\n *\n * This function should **never** be called in production builds.\n */\nexport function resetVaultForTests(): void {\n resetLicensingServiceForTests();\n instance?.resetForTesting();\n instance = null;\n}\n\nexport function resetFeatureCellRegistry(): void {\n instance?.resetFeatureCellRegistry();\n}\n\nexport function getVaultRegistryForTests(): ReadonlyMap<string, VaultRegistrationShape> | undefined {\n if (!instance) {\n throw new Error('[vault] Vault not initialized.');\n }\n\n return instance.getRegistrySnapshot();\n}\n\nexport function isAuthorizedKey(key: string): boolean {\n if (!instance) return false;\n\n if (instance.isBypassLicensing()) return true;\n\n return instance.isAuthorizedKey(key);\n}\n\nexport function hasVaultLicense(): boolean {\n if (!instance) return false;\n\n if (instance.isBypassLicensing()) return true;\n\n return instance.hasVaultLicense();\n}\n","// projects/core/src/lib/services/vault-behavior-lifecycle.service.ts\nimport {\n BEHAVIOR_META,\n BehaviorClassContext,\n BehaviorClassContract,\n BehaviorContract,\n BehaviorMetaShape,\n FeatureCellBaseShape,\n FeatureCellExtensionContext,\n validateBehaviorKey,\n vaultDebug,\n vaultError,\n VaultMonitorContract,\n vaultWarn\n} from '@sdux-vault/shared';\nimport { PROTECTED_FEATURE_CELL_KEYS } from '../constants/protected-feature-cell-keys.constant';\nimport { getLicensePayload, hasVaultLicense, isAuthorizedKey } from '../factories/vault/vault-core.function';\nimport { BehaviorInitializeClassContract } from '../interfaces/behavior/behavior-initialization.interface';\n\n/**\n * Manages instantiation and lifecycle initialization of FeatureCell behaviors.\n *\n * This class is responsible for constructing behavior instances from declared\n * behavior classes, validating metadata and keys, enforcing criticality rules,\n * and applying behavior-defined API extensions onto a FeatureCell instance.\n */\nexport class BehaviorInitializationClass implements BehaviorInitializeClassContract {\n /** Tracks whether initialization has already been performed. */\n #initialized = false;\n\n /** FeatureCell identifier associated with this initializer. */\n #cellKey: string;\n\n /**\n * Creates a new behavior initializer for a specific FeatureCell.\n *\n * @param cellKey - The unique FeatureCell key.\n */\n constructor(cellKey: string) {\n this.#cellKey = cellKey;\n }\n\n /**\n * Instantiates and validates all behaviors declared for a FeatureCell.\n *\n * This method enforces one-time initialization, validates required behavior\n * metadata, instantiates behavior classes with their configuration, and\n * ensures behavior keys are unique and correctly formatted.\n *\n * @typeParam T - The FeatureCell state value type.\n * @param behaviorClasses - Behavior class definitions to instantiate.\n * @param behaviorConfigs - Configuration map keyed by behavior configKey.\n * @returns An ordered array of instantiated behavior objects.\n */\n initializeBehaviors<T>(\n behaviorClasses: Array<BehaviorClassContract<T>>,\n behaviorConfigs: Map<string, unknown>\n ): BehaviorContract<T>[] {\n if (this.#initialized)\n throw new Error(\n `[vault] VaultBehaviorRunner already initialized — cannot reissue core behavior ID for feature cell \"${this.#cellKey}\".`\n );\n\n this.#initialized = true;\n\n if (!behaviorClasses || behaviorClasses.length === 0) return [];\n\n const seenKeys = new Set<string>();\n\n return (\n behaviorClasses\n // eslint-disable-next-line\n .map((BehaviorClass: any) => {\n let isCritical = false;\n\n try {\n if (typeof BehaviorClass !== 'function') return;\n\n const meta = BehaviorClass[BEHAVIOR_META] as BehaviorMetaShape | undefined;\n\n if (!meta) {\n isCritical = true;\n throw new Error(`[vault] Behavior \"${BehaviorClass.name}\" missing @VaultBehavior metadata.`);\n }\n\n const behaviorKey = meta.key;\n const behaviorType = meta.type;\n\n if (!behaviorKey) {\n isCritical = true;\n throw new Error(`[vault] Behavior metadata missing \"key\".`);\n }\n\n if (!hasVaultLicense()) {\n if (!isAuthorizedKey(behaviorKey)) {\n vaultDebug(`[vault] Unlicensed behavior \"${behaviorKey}\" skipped during initialization.`);\n return;\n }\n }\n\n if (!behaviorType) {\n isCritical = true;\n throw new Error(`[vault] Behavior metadata missing \"type\" for \"${behaviorKey}\".`);\n }\n\n let behaviorConfig: unknown = undefined;\n\n if (meta.wantsConfig) {\n if (!meta.configKey) {\n isCritical = true;\n throw new Error(`[vault] Behavior \"${behaviorKey}\" declares wantsConfig but has no configKey.`);\n }\n\n behaviorConfig = behaviorConfigs.get(meta.configKey);\n }\n\n let licensePayload: unknown = undefined;\n if (meta.needsLicense) {\n if (!meta.licenseId) {\n isCritical = true;\n throw new Error(`[vault] Behavior \"${behaviorKey}\" declares needsLicense but has no licenseId.`);\n }\n\n licensePayload = getLicensePayload(meta.licenseId);\n\n if (licensePayload === undefined) {\n isCritical = true;\n throw new Error(\n `[vault] License \"${meta.licenseId}\" required by behavior \"${behaviorKey}\" is not registered in Vault config.`\n );\n }\n }\n\n let instance: BehaviorContract<T>;\n try {\n instance = new BehaviorClass(behaviorKey, {\n featureCellKey: this.#cellKey,\n behaviorConfig,\n licensePayload\n } as BehaviorClassContext) as BehaviorContract<T>;\n } catch (error) {\n isCritical = meta.critical;\n throw error;\n }\n\n if (!instance.key) {\n isCritical = true;\n throw new Error(\n `[vault] Behavior missing key for type \"${behaviorType}\". Every behavior must define a unique \"key\".`\n );\n }\n\n if (!validateBehaviorKey(instance.key)) {\n isCritical = true;\n throw new Error(\n `[vault] Behavior key \"${instance.key}\" not valid format for \"${behaviorType}\" behavior.`\n );\n }\n\n if (instance.key && seenKeys.has(instance.key)) {\n vaultWarn(`[vault] Skipping duplicate behavior with key \"${instance.key}\"`);\n return null;\n }\n\n if (instance.key) seenKeys.add(instance.key);\n\n return instance;\n } catch (err) {\n if (isCritical) {\n throw err;\n }\n\n // eslint-disable-next-line\n vaultWarn(`[vault] Non-critical behavior initialization failed: ${(err as any)?.message}`);\n return null;\n }\n })\n .filter((behavior): behavior is BehaviorContract<T> => !!behavior)\n );\n }\n\n /**\n * Applies behavior-defined API extensions to a FeatureCell instance.\n *\n * Each behavior may expose extension functions that are attached to the\n * FeatureCell. Extensions are validated to prevent overriding protected\n * core APIs or other behavior extensions without explicit permission.\n *\n * @typeParam T - The FeatureCell state value type.\n * @param cell - The FeatureCell instance to extend.\n * @param vaultMonitor - Monitor used for extension execution diagnostics.\n */\n applyBehaviorExtensions<T>(\n behaviors: BehaviorContract<T>[],\n cell: FeatureCellBaseShape<T>,\n vaultMonitor: VaultMonitorContract\n ): void {\n for (const behavior of behaviors) {\n const FeatureCellExtensionContext = {\n featureCellKey: cell.key,\n destroyed$: cell.destroyed$,\n reset$: cell.reset$,\n mergeState: cell.mergeState,\n replaceState: cell.replaceState,\n state$: cell.state$,\n vaultMonitor\n } as FeatureCellExtensionContext<T>;\n\n const extensions = behavior.extendCellAPI?.(FeatureCellExtensionContext);\n if (!extensions || typeof extensions !== 'object') continue;\n\n for (const [key, fn] of Object.entries(extensions)) {\n const alreadyDefined = cell[key as keyof FeatureCellBaseShape<T>] !== undefined;\n\n const canOverride =\n // eslint-disable-next-line\n Array.isArray((behavior as any).allowOverride) && (behavior as any).allowOverride.includes(key);\n\n if (PROTECTED_FEATURE_CELL_KEYS.has(key)) {\n throw new Error(\n `[vault] Behavior \"${behavior.key}\" attempted to overwrite core FeatureCell method \"${key}\".`\n );\n }\n\n if (alreadyDefined && !canOverride) {\n throw new Error(\n `[vault] Behavior \"${behavior.key}\" attempted to redefine method \"${key}\" already provided by another behavior.`\n );\n }\n\n if (alreadyDefined && canOverride) {\n vaultWarn(`[vault] Behavior \"${behavior.key}\" is overriding method \"${key}\" (explicitly allowed).`);\n // eslint-disable-next-line\n delete (cell as any)[key];\n }\n\n Object.defineProperty(cell, key, {\n // eslint-disable-next-line\n value: (...args: any[]) => {\n try {\n if (typeof fn !== 'function') return;\n return fn(...args);\n } catch (err) {\n vaultError(`[vault] Behavior extension \"${key}\" threw an error:`, err);\n throw err;\n }\n },\n enumerable: false,\n writable: false,\n configurable: true\n });\n }\n }\n }\n}\n","import {\n BehaviorContract,\n BehaviorTypes,\n CoreEmitStateBehaviorContract,\n ErrorCallbackBehaviorContract,\n ErrorTransformBehaviorContract,\n FinalState,\n isVaultNoop,\n VAULT_STOP\n} from '@sdux-vault/shared';\n\n/**\n * Type guard that identifies error transform behaviors.\n *\n * This function determines whether a behavior participates in the\n * error transformation stage of the pipeline based on its declared\n * behavior type.\n *\n * @typeParam T - The FeatureCell state value type.\n * @param behavior - A behavior instance to inspect.\n * @returns `true` when the behavior is an error transform behavior.\n */\nexport const isErrorTransformBehavior = <T>(\n behavior: BehaviorContract<T>\n): behavior is ErrorTransformBehaviorContract<T> => {\n return behavior.type === BehaviorTypes.ErrorTransform;\n};\n\n/**\n * Type guard that identifies the core error callback behavior.\n *\n * This function is used to detect behaviors responsible for invoking\n * legacy or observational error callbacks during pipeline execution.\n *\n * @typeParam T - The FeatureCell state value type.\n * @param behavior - A behavior instance to inspect.\n * @returns `true` when the behavior is the core error callback behavior.\n */\nexport const isCoreErrorCallbackBehavior = <T>(\n behavior: BehaviorContract<T>\n): behavior is ErrorCallbackBehaviorContract<T> => {\n return behavior.type === BehaviorTypes.CoreErrorCallback;\n};\n\n/**\n * Type guard that identifies the core emitState behavior.\n *\n * This function detects the behavior responsible for emitting finalized\n * state snapshots to observers after pipeline execution.\n *\n * @typeParam T - The FeatureCell state value type.\n * @param behavior - A behavior instance to inspect.\n * @returns `true` when the behavior is the core emitState behavior.\n */\nexport const isCoreEmitStateCallbackBehavior = <T>(\n behavior: BehaviorContract<T>\n): behavior is CoreEmitStateBehaviorContract<T> => {\n return behavior.type === BehaviorTypes.CoreEmitState;\n};\n\n/**\n * Determines whether a final pipeline value represents a STOP signal.\n *\n * A STOP signal halts the pipeline immediately without committing state\n * and is typically produced by interceptor behaviors.\n *\n * @typeParam T - The FeatureCell state value type.\n * @param current - The final pipeline result value.\n * @returns `true` when the value is the `VAULT_STOP` sentinel.\n */\nexport const isSignalStop = <T>(current: FinalState<T>): boolean => {\n return current === VAULT_STOP;\n};\n\n/**\n * Generates a compact uppercase trace identifier.\n *\n * The identifier is derived from `crypto.randomUUID()` when available,\n * with a fallback to a randomized string for environments where WebCrypto\n * is unavailable.\n *\n * @returns A five-character uppercase trace identifier.\n */\nexport const assignTraceId = (): string => {\n return crypto?.randomUUID?.() ?? Math.random().toString(36).slice(2, 7);\n};\n\n/**\n * Determines whether a pipeline result is terminal.\n *\n * Terminal values indicate that the pipeline must halt without applying\n * a new state snapshot. This includes both no-op and stop signals.\n *\n * @typeParam T - The FeatureCell state value type.\n * @param current - The final pipeline result value.\n * @returns `true` when the pipeline should not apply state.\n */\nexport const isPipelineTerminal = <T>(current: FinalState<T>): boolean => isVaultNoop(current) || isSignalStop(current);\n","// --- AI Model File Path (DO NOT DELETE) ---\n// FilePath: lib > src > orchestrator > orchestrator.ts\n// Updated: 2026-04-07 16:30\n//\t Generated by pathcomment [tab] (see .vscode/typescript.code-snippets) or\n//\t cmd+alt+j (see .vscode/keybindings.json)\n// --- END AI MODEL FILE PATH ---\n\nimport {\n AfterTapBehaviorContract,\n BeforeTapBehaviorContract,\n BEHAVIOR_META,\n BehaviorClassContract,\n BehaviorContext,\n BehaviorContract,\n BehaviorMetaShape,\n BehaviorType,\n BehaviorTypes,\n ControllerContext,\n CoreEmitStateBehaviorContract,\n CoreEmitStateCallback,\n CoreErrorBehaviorContract,\n CoreStateBehaviorContract,\n createVaultError,\n DecisionOutcomeType,\n DecisionOutcomeTypes,\n DeferredFactory,\n DeferredType,\n EncryptBehaviorContract,\n ErrorCallbackBehaviorContract,\n ErrorTransformBehaviorContract,\n FilterBehaviorContract,\n FilterFunction,\n FinalState,\n InterceptorBehaviorContract,\n isDefined,\n isFunction,\n isHttpResourceRef,\n isNullish,\n isolateValue,\n isPromise,\n isStateInputShape,\n isUndefined,\n isVaultClearState,\n isVaultContinue,\n isVaultNoop,\n MergeBehaviorContract,\n OperationType,\n OperationTypes,\n OperatorBehaviorContract,\n PersistBehaviorContract,\n PipelinePersistValue,\n PipelineUpstreamValue,\n ReduceBehaviorContract,\n ReducerFunction,\n ResolveBehaviorContract,\n ResolveType,\n ResolveTypes,\n StateInputShape,\n StateInputType,\n StepwiseBehaviorContract,\n TapCallback,\n VAULT_CLEAR_STATE,\n VAULT_CONTINUE,\n VAULT_NOOP,\n VAULT_STOP,\n vaultDebug,\n vaultError,\n VaultErrorCallback,\n VaultErrorShape,\n VaultPrivateErrorService,\n VaultPrivateErrorServiceContract,\n VaultUsagePromiseError,\n vaultWarn\n} from '@sdux-vault/shared';\n\nimport { OrchestratorConfig } from '../config/orchestrator.config';\nimport { VAULT_ORCHESTRATOR } from '../constants/vault-orchestrator.constant';\nimport { DecisionEngine } from '../decision-engine/decision-engine';\n\nimport { BehaviorInitializationClass } from '../utils/initialize-behavior.util';\nimport {\n isCoreEmitStateCallbackBehavior,\n isCoreErrorCallbackBehavior,\n isErrorTransformBehavior,\n isSignalStop\n} from '../utils/orchestrator.utils';\n\nimport { isObservable } from 'rxjs';\nimport { LicensingService } from '../licensing/licensing.service';\nimport { VaultMonitor } from '../monitor/vault-monitor.service';\n\nexport abstract class Orchestrator<T> {\n #afterTapCallbacks: TapCallback<T>[];\n #beforeTapCallbacks: TapCallback<T>[];\n #behaviors!: BehaviorContract<T>[];\n #stageBehaviors!: BehaviorContract<T>[];\n protected cellKey: string;\n protected decisionEngine!: DecisionEngine<T>;\n #coreErrorBehavior!: CoreErrorBehaviorContract<T>;\n #coreErrorCallbackBehavior!: ErrorCallbackBehaviorContract<T>;\n #emitStateCallbackBehavior!: CoreEmitStateBehaviorContract<T>;\n #emitStateCallbacks!: CoreEmitStateCallback<T>[];\n #coreStateBehavior!: CoreStateBehaviorContract<T>;\n #errorTransformBehaviors!: ErrorTransformBehaviorContract<T>[];\n #errorCallbacks: VaultErrorCallback<T>[];\n protected privateErrorService: VaultPrivateErrorServiceContract = VaultPrivateErrorService();\n #filterFunctions: FilterFunction<T>[] = [];\n #initialState: T | DeferredType<T>;\n #mergeBehavior!: MergeBehaviorContract<T>;\n #reducerFunctions: ReducerFunction<T>[];\n protected vaultMonitor = VaultMonitor();\n\n constructor(config: OrchestratorConfig<T>) {\n this.#afterTapCallbacks = config.afterTapCallbacks ?? [];\n this.#beforeTapCallbacks = config.beforeTapCallbacks ?? [];\n this.cellKey = config.cell?.key;\n this.#emitStateCallbacks = config.emitStateCallbacks ?? [];\n this.#errorCallbacks = config.errorCallbacks ?? [];\n this.#filterFunctions = config.filterCallbacks ?? [];\n this.#initialState = config.initialState;\n this.#reducerFunctions = config.reducerCallbacks ?? [];\n }\n\n protected initializeOrchestrator(config: OrchestratorConfig<T>): void {\n config.behaviors = config.behaviors ?? [];\n this.#registerBehaviors(config);\n }\n\n //#region Protected Methods\n\n protected async initializeFeatureCell(ctx: BehaviorContext<T>): Promise<void> {\n await this.#loadInitialState(ctx);\n }\n\n protected destroyBehaviors(ctx: BehaviorContext<T>): void {\n this.#destroyBehaviors(ctx);\n }\n\n protected resetBehaviors(ctx: BehaviorContext<T>): void {\n this.#resetBehaviors(ctx);\n }\n\n protected async orchestrate(ctx: BehaviorContext<T>, options?: unknown): Promise<void> {\n // no controllers → pipeline behaves exactly as before\n if (ctx.operation === OperationTypes.Replace) {\n await this.#orchestrateReplace(ctx);\n } else {\n await this.#orchestrateMerge(ctx, options);\n }\n return;\n }\n\n protected buildControllerCtx(ctx: BehaviorContext<T>): ControllerContext<T> {\n return {\n traceId: ctx.traceId,\n featureCellKey: ctx.featureCellKey,\n snapshot: ctx.lastSnapshot,\n incoming: ctx.incoming,\n operation: ctx.operation\n };\n }\n\n protected normalizeIncoming<T>(incoming: StateInputType<T>): StateInputType<T> {\n if (!incoming) return null;\n\n if (isHttpResourceRef(incoming) || isObservable(incoming) || isFunction(incoming) || isFunction(incoming)) {\n return incoming;\n }\n\n if (isStateInputShape(incoming)) {\n return isolateValue(incoming);\n }\n\n return {\n value: incoming\n } as StateInputType<T>;\n }\n\n protected controllerOutcomeNotification(type: DecisionOutcomeType, ctx: BehaviorContext<T>): void {\n switch (type) {\n case DecisionOutcomeTypes.Abort: {\n this.#coreStateBehavior.finalizeControllerAbort(ctx);\n break;\n }\n case DecisionOutcomeTypes.Deny: {\n this.#coreStateBehavior.finalizeControllerDeny(ctx);\n break;\n }\n }\n }\n\n protected prepareIncoming(\n ctx: BehaviorContext<T>,\n incoming: StateInputType<T>,\n operation: OperationType\n ): StateInputType<T> | typeof VAULT_NOOP | typeof VAULT_CLEAR_STATE {\n ctx = this.#prepIncomingForOrchestration(ctx, incoming, operation);\n\n const normalizedIncoming = this.#coreStateBehavior.preparePipelineIncoming(ctx);\n\n if (isVaultNoop(normalizedIncoming)) {\n this.vaultMonitor.startCoreState(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n this.#runStateBehaviors(ctx);\n this.vaultMonitor.endCoreState(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n }\n\n if (isVaultClearState(normalizedIncoming)) {\n this.vaultMonitor.startCoreState(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n this.#resetBehaviors(ctx);\n this.#runStateBehaviors(ctx);\n this.vaultMonitor.endCoreState(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n return;\n }\n return normalizedIncoming;\n }\n\n //#endregion\n\n //#region Private Methods\n\n #prepIncomingForOrchestration(\n ctx: BehaviorContext<T>,\n incoming: StateInputType<T>,\n operation: OperationType\n ): BehaviorContext<T> {\n ctx.incoming = this.normalizeIncoming(incoming) as StateInputShape<T>;\n ctx.resolveType = this.#getResolveType(incoming);\n ctx.operation = operation;\n return ctx;\n }\n\n #addDefaultMergeBehavior(\n behaviors: BehaviorClassContract<T>[],\n config: OrchestratorConfig<T>\n ): BehaviorClassContract<T>[] {\n const mergeBehaviors = config.behaviors.filter((behaviorClass: BehaviorClassContract) => {\n return (behaviorClass as BehaviorClassContract<T>).type === BehaviorTypes.Merge;\n });\n\n if (mergeBehaviors.length > 1) {\n const names = mergeBehaviors.map((mergeBehavior) => mergeBehavior.key).join(', ');\n\n throw new Error(\n `SDuX Error: More than one MergeBehavior was provided. Only one merge strategy can be active per FeatureCell. Received: ${names}. Fix: Remove additional merge behaviors or combine them into a single behavior.`\n );\n }\n\n if (mergeBehaviors.length === 1) {\n behaviors.push(mergeBehaviors[0]);\n behaviors = behaviors.filter((behavior) => behavior.type !== BehaviorTypes.Merge);\n }\n\n return behaviors;\n }\n\n // ---------------------------------------------------------------------------\n // NORMALIZATION\n // ---------------------------------------------------------------------------\n\n #defineDefaultBehaviors(config: OrchestratorConfig<T>): BehaviorClassContract<T>[] {\n let defaultBehaviors = config.defaultBehaviors ?? [];\n\n defaultBehaviors = this.#determineCoreCallbackErrorBehavior(defaultBehaviors, config);\n\n defaultBehaviors = this.#addDefaultMergeBehavior(defaultBehaviors, config);\n\n defaultBehaviors = this.#addCoreEmitStateCallbackBehavior(defaultBehaviors, config);\n\n return defaultBehaviors;\n }\n\n #determineCoreCallbackErrorBehavior<T>(\n behaviors: BehaviorClassContract<T>[],\n config: OrchestratorConfig<T>\n ): BehaviorClassContract<T>[] {\n if (config?.errorCallbacks?.length === 0) {\n return behaviors.filter((behavior) => behavior.type !== BehaviorTypes.CoreErrorCallback);\n }\n\n return behaviors;\n }\n\n #addCoreEmitStateCallbackBehavior<T>(\n behaviors: BehaviorClassContract<T>[],\n config: OrchestratorConfig<T>\n ): BehaviorClassContract<T>[] {\n if (config?.emitStateCallbacks?.length === 0) {\n return behaviors.filter((behavior) => behavior.type !== BehaviorTypes.CoreEmitState);\n }\n\n return behaviors;\n }\n\n #registerBehaviorsWithVault(behaviors: BehaviorClassContract<T>[]): void {\n // eslint-disable-next-line\n const behaviorMetadata = behaviors.map((behavior: any) => {\n const meta = behavior[BEHAVIOR_META] as BehaviorMetaShape;\n\n return {\n key: behavior.key,\n type: meta.type,\n critical: meta.critical,\n needsLicense: meta.needsLicense\n };\n });\n\n LicensingService().describeBehaviors({\n featureCellKey: this.cellKey,\n behaviors: behaviorMetadata\n });\n }\n\n #registerBehaviors(config: OrchestratorConfig<T>): void {\n const defaultBehaviors = this.#defineDefaultBehaviors(config);\n\n // Strip out any user-provided reducers; they are passed separately via `reducers`\n const filteredUserBehaviors = config.behaviors?.filter((behavior: BehaviorClassContract<T>) => {\n return !(\n behavior.type === BehaviorTypes.CoreAfterTap ||\n behavior.type === BehaviorTypes.CoreBeforeTap ||\n behavior.type === BehaviorTypes.CoreError ||\n behavior.type === BehaviorTypes.CoreErrorCallback ||\n behavior.type === BehaviorTypes.CoreState ||\n behavior.type === BehaviorTypes.CoreEmitState ||\n behavior.type === BehaviorTypes.Filter ||\n behavior.type === BehaviorTypes.FromObservable ||\n behavior.type === BehaviorTypes.FromPromise ||\n behavior.type === BehaviorTypes.FromStream ||\n behavior.type === BehaviorTypes.Reduce ||\n behavior.type === BehaviorTypes.Resolve\n );\n });\n\n config.operators = config.operators ?? [];\n config.interceptors = config.interceptors ?? [];\n\n const allBehaviors: BehaviorClassContract<T>[] = [\n ...defaultBehaviors,\n ...filteredUserBehaviors,\n ...config.operators,\n ...config.interceptors\n ];\n\n const behaviorInit = new BehaviorInitializationClass(this.cellKey);\n this.#registerBehaviorsWithVault(allBehaviors);\n this.#behaviors = behaviorInit.initializeBehaviors(allBehaviors, config.behaviorConfigs);\n\n this.#registerErrorBehavior();\n this.#registerMergeBehavior();\n this.#registerStageBehaviors();\n this.#registerStateBehavior();\n\n behaviorInit.applyBehaviorExtensions(this.#behaviors, config.cell, this.vaultMonitor);\n }\n\n #registerStageBehaviors(): void {\n // Remove merge behavior from the pipeline list\n this.#stageBehaviors = this.#behaviors.filter(\n (behavior) =>\n !(\n behavior.type === BehaviorTypes.CoreState ||\n behavior.type === BehaviorTypes.CoreEmitState ||\n behavior.type === BehaviorTypes.CoreError ||\n behavior.type === BehaviorTypes.ErrorTransform ||\n behavior.type === BehaviorTypes.CoreErrorCallback ||\n behavior.type === BehaviorTypes.Merge\n )\n );\n }\n\n #registerStateBehavior(): void {\n // Extract and remove errot behavior\n const coreState = this.#behaviors.filter((behaviort) => behaviort.type === BehaviorTypes.CoreState);\n\n if (coreState.length > 1) {\n throw new Error('Only one core state behavior can be registered for a FeatureCell.');\n }\n\n this.#coreStateBehavior = (coreState[0] as CoreStateBehaviorContract<T>) ?? null;\n\n this.#emitStateCallbackBehavior = this.#behaviors.filter((behavior) =>\n isCoreEmitStateCallbackBehavior(behavior)\n )[0];\n }\n\n #registerErrorBehavior(): void {\n // Extract and remove error behavior\n const coreErrors = this.#behaviors.filter((behavior) => behavior.type === BehaviorTypes.CoreError);\n\n if (coreErrors.length > 1) {\n throw new Error('Only one core error behavior can be registered for a FeatureCell.');\n }\n\n this.#coreErrorBehavior = (coreErrors[0] as CoreErrorBehaviorContract<T>) ?? null;\n\n this.#coreErrorCallbackBehavior = this.#behaviors.filter((behavior) => isCoreErrorCallbackBehavior(behavior))[0];\n\n this.#errorTransformBehaviors = this.#behaviors.filter((behavior) => isErrorTransformBehavior(behavior));\n }\n\n #registerMergeBehavior(): void {\n // Extract and remove merge behavior\n const merges = this.#behaviors.filter((behavior) => behavior.type === BehaviorTypes.Merge);\n this.#mergeBehavior = (merges[0] as MergeBehaviorContract<T>) ?? null;\n }\n\n async #runStepwise(\n behaviorType: BehaviorType,\n ctx: BehaviorContext<T>,\n current: PipelineUpstreamValue<T>\n ): Promise<typeof VAULT_NOOP | typeof VAULT_CLEAR_STATE | typeof VAULT_CONTINUE> {\n const stepwise = await this.#runUpstreamStage(behaviorType, ctx, current);\n\n if (isVaultClearState(stepwise)) {\n return VAULT_CLEAR_STATE;\n }\n\n if (isVaultNoop(stepwise)) {\n return VAULT_NOOP;\n }\n\n return VAULT_CONTINUE;\n }\n\n async #finishPipeline(\n ctx: BehaviorContext<T>,\n resolved: PipelineUpstreamValue<T>\n ): Promise<PipelineUpstreamValue<T>> {\n // Stage: operators\n let pipelineDataFlow: PipelineUpstreamValue<T>;\n\n const stepwiseResolve = await this.#runStepwise(BehaviorTypes.StepwiseResolve, ctx, resolved);\n\n if (!isVaultContinue(stepwiseResolve)) {\n return stepwiseResolve;\n }\n\n if (this.#containsOperators()) {\n pipelineDataFlow = await this.#runOperatorStage(ctx, resolved);\n\n // Halt pipeline on noop\n if (isVaultNoop(pipelineDataFlow)) return VAULT_NOOP;\n } else {\n pipelineDataFlow = resolved;\n }\n\n // Stage: filter\n pipelineDataFlow = await this.#runUpstreamStage(BehaviorTypes.Filter, ctx, pipelineDataFlow);\n\n const stepwiseFilter = await this.#runStepwise(BehaviorTypes.StepwiseFilter, ctx, pipelineDataFlow);\n\n if (!isVaultContinue(stepwiseFilter)) {\n return stepwiseFilter;\n }\n\n await this.#runUpstreamStage(BehaviorTypes.CoreBeforeTap, ctx, isolateValue(pipelineDataFlow));\n\n // Stage: reduce\n pipelineDataFlow = await this.#runUpstreamStage(BehaviorTypes.Reduce, ctx, pipelineDataFlow);\n\n const stepwiseReducer = await this.#runStepwise(BehaviorTypes.StepwiseReducer, ctx, pipelineDataFlow);\n\n if (!isVaultContinue(stepwiseReducer)) {\n return stepwiseReducer;\n }\n\n await this.#runUpstreamStage(BehaviorTypes.CoreAfterTap, ctx, isolateValue(pipelineDataFlow));\n\n // Clone AFTER reduce for purity\n const stateData = isolateValue(pipelineDataFlow);\n\n let persistPipelineValue = stateData as PipelinePersistValue<T>;\n // Stage: encrypt\n persistPipelineValue = await this.#runPersistStage(BehaviorTypes.Encrypt, ctx, persistPipelineValue);\n\n // Stage: persist\n await this.#runPersistStage(BehaviorTypes.Persist, ctx, persistPipelineValue);\n\n // Commit the *cloned* pre-encrypted snapshot to signals\n return stateData;\n }\n\n async #orchestrateReplace(ctx: BehaviorContext<T>): Promise<void> {\n this.vaultMonitor.startReplace(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n\n await this.#safeAsync(async () => {\n let finalState!: FinalState<T>;\n finalState = await this.#runInterceptorStage(ctx);\n\n if (!isSignalStop(finalState)) {\n const resolved = await this.#runUpstreamStage(BehaviorTypes.Resolve, ctx, undefined);\n\n if (isVaultClearState(resolved)) {\n finalState = VAULT_CLEAR_STATE;\n } else {\n finalState = await this.#finishPipeline(ctx, resolved);\n }\n }\n\n return this.#handleFinalState(finalState, ctx);\n }, ctx);\n }\n\n async #orchestrateMerge(ctx: BehaviorContext<T>, options?: unknown): Promise<void> {\n this.vaultMonitor.startMerge(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n\n await this.#safeAsync(async () => {\n const safeCurrent = isolateValue(ctx.lastSnapshot.value);\n\n let finalState!: FinalState<T>;\n finalState = await this.#runInterceptorStage(ctx);\n\n if (!isSignalStop(finalState)) {\n const partial = await this.#runUpstreamStage(BehaviorTypes.Resolve, ctx, undefined);\n\n const safePartial = isolateValue(partial);\n\n this.vaultMonitor.startComputeMerge(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n // eslint-disable-next-line\n const mergeResult = await this.#mergeBehavior.computeMerge(safeCurrent, safePartial, options as any);\n\n this.vaultMonitor.endComputeMerge(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n\n if (isVaultClearState(mergeResult)) {\n finalState = VAULT_CLEAR_STATE;\n } else {\n const stateResult = isolateValue(mergeResult);\n finalState = await this.#finishPipeline(ctx, stateResult);\n }\n }\n return await this.#handleFinalState(finalState, ctx);\n }, ctx);\n }\n\n async #handleFinalState(finalState: FinalState<T>, ctx: BehaviorContext<T>): Promise<FinalState<T>> {\n let payload: unknown;\n\n if (isSignalStop(finalState)) {\n payload = { pipelinePaused: true };\n } else if (isVaultClearState(finalState)) {\n payload = { pipelineStateCleared: true };\n } else if (isUndefined(finalState) || isVaultNoop(finalState)) {\n payload = { noop: true };\n }\n\n if (ctx.operation === OperationTypes.Replace) {\n this.vaultMonitor.endReplace(this.cellKey, VAULT_ORCHESTRATOR, ctx, payload);\n } else {\n this.vaultMonitor.endMerge(this.cellKey, VAULT_ORCHESTRATOR, ctx, payload);\n }\n\n return finalState;\n }\n\n async #safeAsync(fn: () => Promise<FinalState<T>>, ctx: BehaviorContext<T>): Promise<void> {\n try {\n const result = await fn();\n\n this.vaultMonitor.startCoreState(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n if (isSignalStop(result)) {\n this.#coreStateBehavior.finalizePipelineVaultStop(ctx);\n } else {\n this.#coreStateBehavior.finalizePipelineState(result, ctx);\n }\n\n await this.#runStateBehaviors(ctx);\n this.vaultMonitor.endCoreState(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n this.decisionEngine?.notifySuccess(this.buildControllerCtx(ctx));\n } catch (err) {\n const pipelineError = await this.#runErrorBehaviors(err, ctx);\n\n await this.decisionEngine?.notifyFailure(this.buildControllerCtx(ctx), pipelineError);\n }\n }\n\n async #runUpstreamStage(\n stage: BehaviorType,\n ctx: BehaviorContext<T>,\n current: PipelineUpstreamValue<T>\n ): Promise<PipelineUpstreamValue<T>> {\n let stageBehaviors: BehaviorContract<T>[];\n if (stage === BehaviorTypes.Resolve) {\n stageBehaviors = this.#stageBehaviors.filter((behavior): behavior is ResolveBehaviorContract<T> => {\n return (behavior as ResolveBehaviorContract<T>).resolveType === ctx.resolveType && behavior.type === stage;\n });\n } else {\n stageBehaviors = this.#stageBehaviors.filter((behavior) => {\n return behavior.type === stage;\n });\n }\n\n for (const behavior of stageBehaviors) {\n let next: PipelineUpstreamValue<T>;\n\n try {\n switch (stage) {\n case BehaviorTypes.Resolve:\n if (typeof (behavior as ResolveBehaviorContract<T>).computeResolve === 'function') {\n this.vaultMonitor.startResolve(this.cellKey, behavior.key, ctx);\n\n next = await (behavior as ResolveBehaviorContract<T>).computeResolve(ctx);\n\n if (isDefined(next)) current = isolateValue(next);\n\n this.vaultMonitor.endResolve(this.cellKey, behavior.key, ctx);\n }\n break;\n\n case BehaviorTypes.StepwiseResolve:\n case BehaviorTypes.StepwiseFilter:\n case BehaviorTypes.StepwiseReducer:\n if (typeof (behavior as StepwiseBehaviorContract<T>).evaluateStepwise === 'function') {\n this.vaultMonitor.startStepwise(this.cellKey, behavior.key, ctx);\n\n const safeCurrent = isolateValue(ctx.lastSnapshot.value);\n const safeCandidate = isolateValue(current);\n next = await (behavior as StepwiseBehaviorContract<T>).evaluateStepwise(\n safeCurrent,\n safeCandidate,\n ctx.featureCellKey\n );\n\n this.vaultMonitor.endStepwise(this.cellKey, behavior.key, ctx);\n }\n break;\n\n case BehaviorTypes.Filter:\n if (typeof (behavior as FilterBehaviorContract<T>).applyFilter === 'function') {\n for (const filter of this.#filterFunctions) {\n this.vaultMonitor.startFilter(this.cellKey, behavior.key, ctx);\n const safeCurrent = isolateValue(current);\n\n const nextValue = await (behavior as FilterBehaviorContract<T>).applyFilter(safeCurrent, filter);\n\n this.vaultMonitor.endFilter(this.cellKey, behavior.key, ctx);\n if (isDefined(nextValue)) {\n current = isolateValue(nextValue);\n }\n }\n }\n break;\n\n case BehaviorTypes.CoreBeforeTap:\n if (typeof (behavior as BeforeTapBehaviorContract<T>).applyBeforeTap === 'function') {\n for (const beforeTap of this.#beforeTapCallbacks) {\n this.vaultMonitor.startBeforeTap(this.cellKey, behavior.key, ctx);\n\n const safeCurrent = isolateValue(current);\n\n await (behavior as BeforeTapBehaviorContract<T>).applyBeforeTap(safeCurrent, beforeTap);\n this.vaultMonitor.endBeforeTap(this.cellKey, behavior.key, ctx);\n }\n }\n break;\n\n case BehaviorTypes.Reduce:\n if (typeof (behavior as ReduceBehaviorContract<T>).applyReducer === 'function') {\n if (isUndefined(current) && this.#reducerFunctions.length > 0) {\n throw new Error(\n `[vault] Reducer stage received undefined state in FeatureCell \"${this.cellKey}\", but reducers are registered.`\n );\n }\n\n for (const reducer of this.#reducerFunctions) {\n this.vaultMonitor.startReducer(this.cellKey, behavior.key, ctx);\n\n const safeCurrent = isolateValue(current);\n\n const nextValue = await (behavior as ReduceBehaviorContract<T>).applyReducer(safeCurrent, reducer);\n\n this.vaultMonitor.endReducer(this.cellKey, behavior.key, ctx);\n if (isDefined(nextValue)) {\n current = isolateValue(nextValue);\n }\n }\n }\n break;\n\n case BehaviorTypes.CoreAfterTap:\n if (typeof (behavior as AfterTapBehaviorContract<T>).applyAfterTap === 'function') {\n for (const afterTap of this.#afterTapCallbacks) {\n this.vaultMonitor.startAfterTap(this.cellKey, behavior.key, ctx);\n const safeCurrent = isolateValue(current);\n\n await (behavior as AfterTapBehaviorContract<T>).applyAfterTap(safeCurrent, afterTap);\n this.vaultMonitor.endAfterTap(this.cellKey, behavior.key, ctx);\n }\n }\n break;\n }\n } catch (err) {\n this.vaultMonitor.runtimeError(this.cellKey, behavior.key, ctx, err);\n throw err;\n }\n\n if (isDefined(next)) current = isolateValue(next);\n }\n\n return current;\n }\n\n async #runInterceptorStage(ctx: BehaviorContext<T>): Promise<undefined | typeof VAULT_STOP> {\n const interceptorBehaviors = this.#stageBehaviors.filter(\n (behavior): behavior is InterceptorBehaviorContract<T> => behavior.type === BehaviorTypes.Interceptor\n );\n\n for (const behavior of interceptorBehaviors) {\n try {\n this.vaultMonitor.startInterceptor(this.cellKey, behavior.key, ctx);\n\n ctx.incoming = isolateValue(ctx.incoming);\n\n const nextIncoming = await behavior.applyInterceptor(ctx);\n\n if (isSignalStop(nextIncoming)) {\n this.vaultMonitor.endInterceptor(this.cellKey, behavior.key, ctx, { pipelinePaused: true });\n return VAULT_STOP;\n }\n\n this.vaultMonitor.endInterceptor(this.cellKey, behavior.key, ctx);\n } catch (err) {\n this.vaultMonitor.runtimeError(this.cellKey, behavior.key, ctx, err);\n throw err;\n }\n }\n\n return;\n }\n\n #containsOperators(): boolean {\n const operatorBehaviors = this.#stageBehaviors.filter((behavior) => behavior.type === BehaviorTypes.Operator);\n return operatorBehaviors.length > 0;\n }\n\n async #runOperatorStage(\n ctx: BehaviorContext<T>,\n current: PipelineUpstreamValue<T>\n ): Promise<PipelineUpstreamValue<T>> {\n const operatorBehaviors = this.#stageBehaviors.filter(\n (behavior): behavior is OperatorBehaviorContract<T> => behavior.type === BehaviorTypes.Operator\n );\n\n for (const behavior of operatorBehaviors) {\n try {\n this.vaultMonitor.startOperator(this.cellKey, behavior.key, ctx);\n\n const safeCurrent = isolateValue(current);\n const next = await behavior.applyOperator(safeCurrent);\n\n if (isUndefined(next)) {\n // short-circuit pipeline — operator decided to block this write\n this.vaultMonitor.endOperator(this.cellKey, behavior.key, ctx, { noop: true });\n return undefined;\n }\n\n current = isolateValue(next);\n this.vaultMonitor.endOperator(this.cellKey, behavior.key, ctx);\n } catch (err) {\n this.vaultMonitor.runtimeError(this.cellKey, behavior.key, ctx, err);\n throw err;\n }\n }\n\n return current;\n }\n\n async #runPersistStage(\n stage: BehaviorType,\n ctx: BehaviorContext<T>,\n current: PipelinePersistValue<T>\n ): Promise<PipelinePersistValue<T>> {\n let stageBehaviors: BehaviorContract<T>[];\n stageBehaviors = this.#stageBehaviors.filter((behavior) => behavior.type === stage);\n\n for (const behavior of stageBehaviors) {\n try {\n switch (stage) {\n case BehaviorTypes.Encrypt:\n if (typeof (behavior as EncryptBehaviorContract<T>).encryptState === 'function') {\n this.vaultMonitor.startEncrypt(this.cellKey, behavior.key, ctx);\n const safeCurrent = isolateValue(current);\n\n const nextValue = await (behavior as EncryptBehaviorContract<T>).encryptState(ctx, safeCurrent);\n this.vaultMonitor.endEncrypt(this.cellKey, behavior.key, ctx);\n\n if (isDefined(nextValue)) {\n current = isolateValue(nextValue);\n }\n }\n\n break;\n\n case BehaviorTypes.Persist:\n if (typeof (behavior as PersistBehaviorContract<T>).persistState === 'function') {\n this.vaultMonitor.startPersist(this.cellKey, behavior.key, ctx);\n const safeCurrent = isolateValue(current);\n await (behavior as PersistBehaviorContract<T>).persistState(safeCurrent);\n this.vaultMonitor.endPersist(this.cellKey, behavior.key, ctx);\n }\n break;\n }\n } catch (err) {\n this.vaultMonitor.runtimeError(this.cellKey, behavior.key, ctx, err);\n throw err;\n }\n }\n\n return current;\n }\n\n #destroyBehaviors(ctx: BehaviorContext<T>): void {\n for (const behavior of this.#behaviors) {\n this.vaultMonitor.startDestroy(this.cellKey, behavior.key, ctx);\n try {\n behavior.destroy?.(ctx);\n this.vaultMonitor.endDestroy(this.cellKey, behavior.key, ctx);\n } catch (err) {\n vaultError(`${behavior.key} destroy() failed`, err);\n this.vaultMonitor.endDestroy(this.cellKey, behavior.key, ctx, { destroyFailed: true });\n }\n }\n }\n\n #resetBehaviors(ctx: BehaviorContext<T>): void {\n for (const behavior of this.#behaviors) {\n this.vaultMonitor.startReset(this.cellKey, behavior.key, ctx);\n try {\n behavior.reset?.(ctx);\n this.vaultMonitor.endReset(this.cellKey, behavior.key, ctx);\n } catch (err) {\n vaultError(`${behavior.key} reset() failed`, err);\n this.vaultMonitor.endReset(this.cellKey, behavior.key, ctx, { resetFailed: true });\n }\n }\n }\n\n async #runStateBehaviors(ctx: BehaviorContext<T>): Promise<void> {\n if (this.#emitStateCallbacks?.length > 0) {\n const lastSnapshotClone = isolateValue(ctx.lastSnapshot);\n this.vaultMonitor.startCoreEmitState(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n for (const callback of this.#emitStateCallbacks) {\n await this.#emitStateCallbackBehavior.emitState(lastSnapshotClone, callback);\n }\n this.vaultMonitor.endCoreEmitState(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n }\n }\n\n /**\n * Runs the error behaviors in sequence.\n *\n * - Starts from a normalized ResourceError produced by resourceError().\n * - Each behavior gets (rawError, currentResourceError, ctx).\n * - If a behavior returns:\n * • ResourceError → becomes the next currentResourceError\n * • VAULT_NOOP → previous ResourceError is kept\n *\n * Returns void\n */\n async #runErrorBehaviors(rawError: unknown, ctx: BehaviorContext<T>): Promise<VaultErrorShape> {\n let current: VaultErrorShape;\n\n /**\n * The order is\n *\n * Core Error\n * Transforms\n * State\n * Callbacks\n * Global Error Service\n */\n\n // ---- Core error normalization (trusted) ----\n try {\n this.vaultMonitor.startCoreError(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n\n current = await this.#coreErrorBehavior.handleError(rawError, ctx.featureCellKey);\n\n vaultDebug(`${this.cellKey} #runErrorBehaviors starting with base ResourceError: ${JSON.stringify(current)}`);\n } catch (err) {\n vaultError('[vault] Core error normalization failed', err);\n current = createVaultError(rawError, ctx.featureCellKey);\n } finally {\n this.vaultMonitor.endCoreError(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n }\n\n // ---- Error behaviors (untrusted, isolated) ----\n for (const behavior of this.#errorTransformBehaviors) {\n try {\n this.vaultMonitor.startErrorTransform(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n\n const result = await behavior.transformError(\n isolateValue(rawError),\n isolateValue(current),\n isolateValue(ctx.lastSnapshot)\n );\n\n if (!isVaultNoop(result) && !isNullish(result)) {\n current = result as VaultErrorShape;\n }\n } catch (err) {\n vaultError(`[vault] ErrorBehavior \"${behavior.key}\" threw during error handling`, err);\n } finally {\n this.vaultMonitor.endErrorTransform(this.cellKey, VAULT_ORCHESTRATOR, ctx, current);\n }\n }\n\n // ---- Commit error state (trusted, must run) ----\n try {\n this.vaultMonitor.startCoreState(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n await this.#coreStateBehavior.finalizePipelineError(current, ctx);\n await this.#runStateBehaviors(ctx);\n } catch (err) {\n vaultError('[vault] Failed to finalize error state', err);\n } finally {\n this.vaultMonitor.endCoreState(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n }\n\n try {\n this.vaultMonitor.startGlobalError(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n await this.privateErrorService.setError(isolateValue(current));\n } catch (err) {\n // istanbul ignore next -- defensive only not testable\n vaultError('[vault] global error service', err);\n } finally {\n this.vaultMonitor.endGlobalError(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n }\n\n // ---- Error callbacks (untrusted, isolated) ----\n if (this.#errorCallbacks?.length > 0) {\n this.vaultMonitor.startCoreCallbackError(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n\n for (const callback of this.#errorCallbacks) {\n try {\n await this.#coreErrorCallbackBehavior.callbackError(\n isolateValue(current),\n isolateValue(ctx.lastSnapshot),\n callback\n );\n } catch (err) {\n vaultError('[vault] Error callback threw during error handling', err);\n }\n }\n\n this.vaultMonitor.endCoreCallbackError(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n }\n\n vaultDebug(`${this.cellKey} #runErrorBehaviors completed with final ResourceError: ${JSON.stringify(current)}`);\n return current;\n }\n\n #getResolveType<TIncoming>(incoming: StateInputType<TIncoming>): ResolveType {\n if (isHttpResourceRef(incoming)) {\n return ResolveTypes.HttpResource;\n } else if (isObservable(incoming)) {\n return ResolveTypes.Observable;\n } else if (isFunction(incoming) || isFunction((incoming as DeferredFactory<T>)?.value)) {\n return ResolveTypes.Promise;\n } else if (isPromise(incoming) || isPromise((incoming as StateInputShape<T>)?.value)) {\n throw new VaultUsagePromiseError();\n } else {\n return ResolveTypes.Value;\n }\n }\n\n async #loadInitialState(ctx: BehaviorContext<T>): Promise<void> {\n const incoming = {\n value: undefined,\n loading: false,\n error: null\n } as StateInputShape<T>;\n\n let value: T | DeferredType<T> | undefined = undefined;\n\n if (isFunction(this.#initialState)) {\n value = this.#initialState;\n } else {\n const persistBehaviors = this.#getPersistedBehaviors();\n\n if (persistBehaviors.length > 0) {\n const persistedInitalValue = await this.#loadInitialPersistedState(ctx, persistBehaviors);\n if (isDefined(persistedInitalValue)) {\n vaultDebug('Persisted data loaded from storage');\n value = persistedInitalValue as T;\n }\n } else if (!isNullish(this.#initialState)) {\n this.vaultMonitor.startSetInitialValue(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n vaultDebug('Initialized data loaded from descriptor.initial');\n\n value = this.#initialState;\n\n this.vaultMonitor.endSetInitialValue(this.cellKey, VAULT_ORCHESTRATOR, ctx);\n }\n }\n\n incoming.value = value;\n\n if (!isNullish(incoming.value)) {\n await this.orchestrate(this.#prepIncomingForOrchestration(ctx, incoming, OperationTypes.Replace));\n } else {\n this.decisionEngine?.notifySuccess(this.buildControllerCtx(ctx));\n }\n }\n\n #getPersistedBehaviors(): PersistBehaviorContract<T>[] {\n return this.#stageBehaviors.filter(\n (behavior) => behavior.type === BehaviorTypes.Persist\n ) as PersistBehaviorContract<T>[];\n }\n\n async #loadInitialPersistedState(\n ctx: BehaviorContext<T>,\n persistBehaviors: PersistBehaviorContract<T>[]\n ): Promise<PipelineUpstreamValue<T>> {\n let loaded: PipelineUpstreamValue<T> = undefined;\n\n for (const behavior of persistBehaviors) {\n try {\n this.vaultMonitor.startLoadPersist(this.cellKey, behavior.key, ctx);\n loaded = await behavior.loadState?.();\n if (isDefined(loaded)) {\n this.vaultMonitor.endLoadPersist(this.cellKey, behavior.key, ctx);\n break;\n } else {\n this.vaultMonitor.endLoadPersist(this.cellKey, behavior.key, ctx, { noop: true });\n }\n // eslint-disable-next-line\n } catch (err: any) {\n this.vaultMonitor.runtimeError(this.cellKey, behavior.key, ctx, err);\n vaultWarn(`\"[vault] persist.loadState()\" for ${behavior.key} failed with ${err.message}`);\n }\n }\n\n const decryptBehaviors = this.#stageBehaviors.filter((behavior) => {\n return behavior.type === BehaviorTypes.Encrypt;\n }) as unknown as EncryptBehaviorContract<T>[];\n\n if (isDefined(loaded) && decryptBehaviors.length > 0) {\n for (const behavior of decryptBehaviors) {\n try {\n this.vaultMonitor.startDecrypt(this.cellKey, behavior.key, ctx);\n\n const decrypted = await behavior.decryptState?.(ctx, loaded);\n\n if (isDefined(decrypted)) {\n this.vaultMonitor.endDecrypt(this.cellKey, behavior.key, ctx);\n loaded = isolateValue(decrypted);\n } else {\n this.vaultMonitor.endDecrypt(this.cellKey, behavior.key, ctx, { noop: true });\n }\n // eslint-disable-next-line\n } catch (err: any) {\n this.vaultMonitor.runtimeError(this.cellKey, behavior.key, ctx, err);\n vaultWarn(`\"[vault] encrypt.decryptState()\" for ${behavior.key} failed with ${err.message}`);\n return undefined;\n }\n }\n }\n\n return loaded;\n }\n //#endregion\n}\n","export const ConductorLicenseStatusTypes = {\n Pending: 'pending',\n Approved: 'approved',\n Denied: 'denied'\n} as const;\n\nexport type ConductorLicenseStatusType = (typeof ConductorLicenseStatusTypes)[keyof typeof ConductorLicenseStatusTypes];\n","// projects/core/src/lib/services/vault-controller-lifecycle.service.ts\nimport {\n CONTROLLER_META,\n ControllerClassContext,\n ControllerClassContract,\n ControllerContract,\n ControllerMetaShape,\n ControllerTypes,\n validateControllerKey,\n vaultDebug,\n vaultWarn\n} from '@sdux-vault/shared';\nimport { Subject } from 'rxjs';\nimport { getLicensePayload, hasVaultLicense, isAuthorizedKey } from '../factories/vault/vault-core.function';\nimport { ControllerInitializationClassContract } from '../interfaces/controller/controller-initialization.interface';\nimport { ControllerEventShape } from '../shapes/controller/controller-event.shape';\nimport { ControllerEventTypes } from '../types/controller-event.type';\n\n/**\n * Manages instantiation and validation of controllers for a FeatureCell.\n *\n * This class is responsible for constructing controller instances from\n * declared controller classes, validating required metadata, enforcing\n * uniqueness of controller keys, and wiring controller revote callbacks\n * into the controller event stream.\n */\nexport class ControllerInitializationClass implements ControllerInitializationClassContract {\n /** Tracks whether controller initialization has already occurred. */\n #initialized = false;\n\n /** FeatureCell identifier associated with this initializer. */\n #cellKey: string;\n\n /**\n * Creates a new initializer for a specific FeatureCell.\n *\n * @param cellKey - The unique FeatureCell key.\n */\n constructor(cellKey: string) {\n this.#cellKey = cellKey;\n }\n\n /**\n * Instantiates and validates all controllers declared for a FeatureCell.\n *\n * This method enforces one-time initialization, validates controller\n * metadata and key format, ensures uniqueness of controller keys, and\n * injects a revote callback that emits controller lifecycle events.\n *\n * @typeParam T - The FeatureCell state value type.\n * @param controllerClasses - Controller class definitions to instantiate.\n * @param events$ - Subject used to emit controller lifecycle events.\n * @returns An ordered array of instantiated controller objects.\n */\n initializeControllers<T>(\n controllerClasses: Array<ControllerClassContract<T>>,\n events$: Subject<ControllerEventShape>,\n controllerConfigs: Map<string, unknown>\n ): ControllerContract<T>[] {\n if (this.#initialized)\n throw new Error(\n `[vault] VaultControllerRunner already initialized — cannot reissue core controller ID for feature cell \"${this.#cellKey}\".`\n );\n\n this.#initialized = true;\n\n if (!controllerClasses || controllerClasses.length === 0) return [];\n\n const seenKeys = new Set<string>();\n\n return (\n controllerClasses\n // eslint-disable-next-line\n .map((ControllerClass: any) => {\n let isCritical = false;\n\n try {\n if (typeof ControllerClass !== 'function') return;\n\n const meta = ControllerClass[CONTROLLER_META] as ControllerMetaShape | undefined;\n\n if (!meta) {\n isCritical = true;\n throw new Error(`[vault] Controller \"${ControllerClass.name}\" missing @VaultController metadata.`);\n }\n\n const controllerKey = meta.key;\n const controllerType = meta.type;\n\n if (!controllerKey) {\n isCritical = true;\n throw new Error(`[vault] Controller metadata missing \"key\".`);\n }\n\n if (!hasVaultLicense()) {\n if (!isAuthorizedKey(controllerKey)) {\n vaultDebug(`[vault] Unlicensed controller \"${controllerKey}\" skipped during initialization.`);\n return;\n }\n }\n\n if (!controllerType) {\n isCritical = true;\n throw new Error(`[vault] Controller metadata missing \"type\" for \"${controllerKey}\".`);\n }\n\n let controllerConfig: unknown = undefined;\n\n if (meta.wantsConfig) {\n if (!meta.configKey) {\n isCritical = true;\n throw new Error(`[vault] Controller \"${controllerKey}\" declares wantsConfig but has no configKey.`);\n }\n\n controllerConfig = controllerConfigs.get(meta.configKey);\n }\n\n let licensePayload: unknown = undefined;\n if (meta.needsLicense) {\n if (!meta.licenseId) {\n isCritical = true;\n throw new Error(`[vault] Controller \"${controllerKey}\" declares needsLicense but has no licenseId.`);\n }\n\n licensePayload = getLicensePayload(meta.licenseId);\n\n if (licensePayload === undefined) {\n isCritical = true;\n throw new Error(\n `[vault] License \"${meta.licenseId}\" required by controller \"${controllerKey}\" is not registered in Vault config.`\n );\n }\n }\n\n const controllerClassContext = {\n featureCellKey: this.#cellKey,\n requestRevote: (traceId: string) => {\n events$.next({\n traceId,\n type: ControllerEventTypes.Revote\n });\n },\n requestAbort: (traceId: string) => {\n events$.next({\n traceId,\n type: ControllerEventTypes.Abort\n });\n },\n controllerConfig,\n licensePayload\n } as ControllerClassContext;\n\n if (controllerType === ControllerTypes.License) {\n controllerClassContext.licenseDenied = (traceId: string) => {\n events$.next({\n traceId,\n type: ControllerEventTypes.LicenseDenied\n });\n };\n controllerClassContext.licenseApproved = (traceId: string) => {\n events$.next({\n traceId,\n type: ControllerEventTypes.LicenseApproved\n });\n };\n }\n\n const instance = new ControllerClass(controllerKey, controllerClassContext);\n\n if (!instance.key) {\n isCritical = true;\n throw new Error(\n `[vault] Controller missing key for type \"${controllerType}\". Every controller must define a unique \"key\".`\n );\n }\n\n if (!validateControllerKey(instance.key)) {\n isCritical = true;\n throw new Error(\n `[vault] Controller key \"${instance.key}\" not valid format for \"${controllerType}\" controller.`\n );\n }\n\n if (instance.key && seenKeys.has(instance.key)) {\n vaultWarn(`[vault] Skipping duplicate controller with key \"${instance.key}\"`);\n return null;\n }\n\n if (instance.key) seenKeys.add(instance.key);\n\n return instance;\n } catch (err) {\n if (isCritical) {\n throw err;\n }\n\n // eslint-disable-next-line\n vaultWarn(`[vault] Non-critical controller initialization failed: ${(err as any)?.message}`);\n return null;\n }\n })\n .filter((controller): controller is ControllerContract<T> => !!controller)\n );\n }\n}\n","// --- AI Model File Path (DO NOT DELETE) ---\n// FilePath: lib > src > conductor > conductor.ts\n// Updated: 2026-04-07 16:29\n//\t Generated by pathcomment [tab] (see .vscode/typescript.code-snippets) or\n//\t cmd+alt+j (see .vscode/keybindings.json)\n// --- END AI MODEL FILE PATH ---\n\nimport {\n BehaviorContext,\n CONTROLLER_META,\n ControllerClassContract,\n ControllerContext,\n ControllerContract,\n ControllerDecisionShape,\n ControllerMetaShape,\n ControllerTypes,\n createVaultError,\n DecisionOutcomeType,\n DecisionOutcomeTypes,\n DevMode,\n isolateValue,\n isVaultClearState,\n isVaultNoop,\n OperationType,\n OperationTypes,\n StateInputType,\n vaultDebug,\n vaultError\n} from '@sdux-vault/shared';\n\nimport { firstValueFrom, map, Observable, Subject, tap } from 'rxjs';\nimport { ConductorConfig } from '../config/conductor.config';\nimport { VAULT_CONDUCTOR } from '../constants/vault-conductor.constant';\nimport { withCoreAbstainController } from '../controllers/abstain/with-core-abstrain.controller';\nimport { withCoreErrorController } from '../controllers/error/with-core-error.controller';\nimport { withCoreLicenseController } from '../controllers/license/with-core-license.controller';\nimport { DecisionEngine } from '../decision-engine/decision-engine';\nimport { LicensingService } from '../licensing/licensing.service';\nimport { Orchestrator } from '../orchestrator/orchestrator';\nimport { PendingAttemptShape } from '../shapes/conductor/pending-attempt.shape';\nimport { ControllerEventShape } from '../shapes/controller/controller-event.shape';\nimport { ConductorLicenseStatusType, ConductorLicenseStatusTypes } from '../types/conductor-license-status.type';\nimport { ControllerEventType, ControllerEventTypes } from '../types/controller-event.type';\nimport { ControllerInitializationClass } from '../utils/initialize-controller.util';\nimport { assignTraceId } from '../utils/orchestrator.utils';\n\nexport class Conductor<T> extends Orchestrator<T> {\n readonly #attemptQueue: PendingAttemptShape<T>[] = [];\n #controllers: ControllerContract<T>[] = [];\n readonly #events$ = new Subject<ControllerEventShape>();\n #processing = false;\n #isDenyStateForTesting = false;\n #conductorLicenseStatus: ConductorLicenseStatusType = ConductorLicenseStatusTypes.Pending;\n\n #settled$ = new Subject<void>();\n\n constructor(config: ConductorConfig<T>) {\n super(config);\n\n LicensingService<T>().describeFeature({\n featureCellKey: config.cell.key,\n fluentApis: {\n filters: config.filterCallbacks,\n reducers: config.reducerCallbacks,\n beforeTaps: config.beforeTapCallbacks,\n afterTaps: config.afterTapCallbacks,\n emitStateCallbacks: config.emitStateCallbacks,\n errorCallbacks: config.errorCallbacks\n }\n });\n\n if (DevMode.active) {\n // eslint-disable-next-line\n (this as any).vaultSettled = this.#conductorSettled.bind(this);\n }\n\n this.#registerControllers(config);\n\n this.vaultMonitor.conductorLicenseAttempt(this.cellKey, `${this.cellKey}::license`);\n\n this.initializeOrchestrator(config);\n }\n\n initialize(ctx: BehaviorContext<T>): void {\n const initCtx = this.#buildPipelineCtx(ctx, OperationTypes.Initialize, undefined);\n\n this.#enqueueAttempt({\n behaviorCtx: initCtx,\n controllerCtx: this.buildControllerCtx(initCtx),\n options: undefined\n });\n }\n\n //#region public method\n\n conduct(ctx: BehaviorContext<T>, incoming: StateInputType<T>, operation: OperationType, options?: unknown): void {\n const behaviorCtx = this.#buildPipelineCtx(ctx, operation, options);\n\n const preparedIncoming = this.prepareIncoming(behaviorCtx, incoming, operation);\n\n if (isVaultNoop(preparedIncoming) || isVaultClearState(preparedIncoming)) {\n return;\n }\n\n behaviorCtx.incoming = preparedIncoming as StateInputType<T>;\n\n const controllerCtx = this.buildControllerCtx(behaviorCtx);\n this.#enqueueAttempt({ behaviorCtx, controllerCtx, options });\n }\n\n /**\n * Resets pipeline + controller state for this FeatureCell.\n *\n * FeatureCell should call this from its own reset() method.\n */\n reset(ctx: BehaviorContext<T>): void {\n this.vaultMonitor.startReset(this.cellKey, VAULT_CONDUCTOR, ctx);\n\n ctx.traceId = ctx.traceId ?? assignTraceId();\n\n this.#resetConductor();\n this.resetBehaviors(ctx);\n this.#resetControllers(ctx);\n\n // Reset controllers as well.\n this.vaultMonitor.endReset(this.cellKey, VAULT_CONDUCTOR, ctx);\n }\n\n /**\n * Destroys pipeline + controller state for this FeatureCell.\n *\n * FeatureCell should call this from its own destroy() method.\n */\n destroy(ctx: BehaviorContext<T>): void {\n vaultDebug(`${VAULT_CONDUCTOR} - destroy`);\n ctx.traceId = ctx.traceId ?? assignTraceId();\n this.vaultMonitor.startDestroy(this.cellKey, VAULT_CONDUCTOR, ctx);\n\n this.#resetConductor();\n this.destroyBehaviors(ctx);\n this.#destroyControllers(ctx);\n\n // Tear down controllers.\n this.#events$.complete();\n this.vaultMonitor.endDestroy(this.cellKey, VAULT_CONDUCTOR, ctx);\n }\n\n //#endregion\n\n //#region Private Methods\n\n async #processEvent(ctx: BehaviorContext<T>, options?: unknown): Promise<void> {\n if (ctx.operation === OperationTypes.Initialize) {\n await this.initializeFeatureCell(ctx);\n return;\n }\n\n if (ctx.operation === OperationTypes.Replace || ctx.operation === OperationTypes.Merge) {\n await this.orchestrate(ctx, options);\n return;\n }\n\n this.vaultMonitor.runtimeError(\n this.cellKey,\n VAULT_CONDUCTOR,\n ctx,\n new Error(`Unknown operation type: \"${ctx.operation}\"`)\n );\n\n this.#completeCurrentAttempt(ctx);\n }\n\n #enqueueMicrotask(): void {\n queueMicrotask(() => {\n this.#denyAttemptCompleted();\n });\n }\n\n /**\n * Enqueue an attempt and trigger queue processing if idle.\n */\n #enqueueAttempt(pending: PendingAttemptShape<T>): void {\n if (\n this.#conductorLicenseStatus === ConductorLicenseStatusTypes.Pending ||\n this.#conductorLicenseStatus === ConductorLicenseStatusTypes.Approved\n ) {\n this.vaultMonitor.startControllerAttempt(this.cellKey, pending.behaviorCtx.traceId, pending.controllerCtx);\n this.#attemptQueue.push(pending);\n\n if (this.#conductorLicenseStatus === ConductorLicenseStatusTypes.Approved) {\n if (!this.#processing && this.#attemptQueue.length === 1) {\n this.#processQueue();\n } else {\n if (this.#isDenyStateForTesting) {\n this.#enqueueMicrotask();\n }\n }\n } else {\n this.#enqueueMicrotask();\n }\n } else {\n this.#enqueueMicrotask();\n }\n }\n\n #completeCurrentAttempt(ctx: ControllerContext<T> | BehaviorContext<T>): void {\n const head = this.#attemptQueue[0];\n /* istanbul ignore next */\n if (!head || head.finalized) return;\n head.finalized = true;\n\n /**\n * IMPORTANT: Finalization MUST occur inside a microtask.\n *\n * Why?\n * The conductor processes controller outcomes and orchestrator work\n * within the same JavaScript turn. If `notifyFinalize()` runs\n * synchronously here, it can:\n *\n * - Re-enter the pipeline before the current call stack fully drains\n * - Trigger controller/orchestrator side effects in the same tick\n * - Cause double-finalization or out-of-order queue mutation\n * - Break `vaultSettled()` determinism in DevMode\n *\n * By deferring to a microtask:\n *\n * 1. The current pipeline cycle fully drains.\n * 2. All synchronous controller emissions complete.\n * 3. The attempt is finalized in a clean turn boundary.\n * 4. Queue mutation (shift) happens atomically with finalize.\n * 5. `#processQueue()` runs only after processing state resets.\n *\n * DO NOT:\n * - Move `notifyFinalize()` outside this microtask.\n * - Split this into multiple microtasks.\n * - Make queue mutation synchronous.\n *\n * The ordering inside this microtask is intentional:\n *\n * notifyFinalize →\n * shift queue →\n * reset processing flag →\n * signal vault settled →\n * process next attempt\n *\n * This guarantees:\n * - Single active attempt at a time\n * - No reentrancy\n * - Deterministic queue progression\n * - Stable DevMode/test flushing behavior\n */\n queueMicrotask(() => {\n this.decisionEngine.notifyFinalize(ctx);\n this.#attemptQueue.shift();\n this.#processing = false;\n this.#attemptCompleted();\n\n this.#processQueue();\n });\n }\n\n #resetProcessingState(ctx: BehaviorContext<T>, outcome: DecisionOutcomeType | ControllerEventType): void {\n this.vaultMonitor.restartControllerAttempt(this.cellKey, ctx.traceId, ctx, outcome);\n this.#processing = false;\n }\n\n /**\n * Central queue processor:\n * - ensures only one attempt is processed at a time\n * - runs controllers for the active attempt\n * - on Allow → runs Orchestrator\n * - on Reset/other → calls reset() for that context\n * - then continues to the next queued attempt\n */\n async #processQueue(): Promise<void> {\n if (this.#processing) return;\n if (!this.#attemptQueue.length) return;\n\n this.#processing = true;\n const activeAttempt = this.#attemptQueue[0]!;\n\n // istanbul ignore next line - defensive only\n if (!activeAttempt) {\n // istanbul ignore next line - defensive only\n this.#processing = false;\n // istanbul ignore next line - defensive only\n return;\n }\n\n try {\n const outcome = await firstValueFrom(this.#runControllers(activeAttempt));\n\n const pending = this.#attemptQueue[0]!;\n\n if (!pending) {\n this.#processing = false;\n return;\n }\n\n const { behaviorCtx, options } = pending;\n\n let isDeny = false;\n\n switch (outcome) {\n // ───────────────────────────────────────────────\n // ALLOW → orchestrator will run → outcome will later drive CLEAR\n // ───────────────────────────────────────────────\n case DecisionOutcomeTypes.Abstain: {\n vaultDebug(\n `${this.cellKey} DecisionOutcome: \"${DecisionOutcomeTypes.Abstain} received. Process Event dispatched.`\n );\n await this.#processEvent(behaviorCtx, options);\n break;\n }\n\n // ───────────────────────────────────────────────\n // FAIL → request is dead → remove + continue\n // ───────────────────────────────────────────────\n case DecisionOutcomeTypes.Abort: {\n this.controllerOutcomeNotification(DecisionOutcomeTypes.Abort, behaviorCtx);\n this.vaultMonitor.endControllerAttempt(this.cellKey, behaviorCtx.traceId, behaviorCtx, {\n status: outcome\n });\n this.#completeCurrentAttempt(behaviorCtx);\n break;\n }\n\n // ───────────────────────────────────────────────\n // DENY → pipeline blocked → keep attempt at head, do NOT shift\n // ───────────────────────────────────────────────\n case DecisionOutcomeTypes.Deny: {\n // do nothing — wait for external change\n this.#denyAttemptCompleted();\n\n isDeny = true;\n this.#processing = false;\n\n this.vaultMonitor.notifyConductorDeny(this.cellKey, behaviorCtx.traceId, behaviorCtx);\n this.controllerOutcomeNotification(DecisionOutcomeTypes.Deny, behaviorCtx);\n\n break;\n }\n }\n\n if (isDeny) {\n this.#isDenyStateForTesting = true;\n } else {\n this.#isDenyStateForTesting = false;\n return this.#processQueue();\n }\n\n // ───────────────────────────────────────────────\n // ERROR → treat as fail, shift queue, continue\n // ───────────────────────────────────────────────\n\n /*********************************\n * Catastrophic unreachable state — controller pipeline failed outside arbitrator\n * on 2025-12-10 I made the decision to leave it though I'm not a fan of untestable\n * and should be pruned code\n *********************************/\n } catch (err) {\n //istanbul ignore next\n vaultError('[conductor] Unreachable subscription error', err);\n\n //istanbul ignore next\n this.vaultMonitor.conductorCrashed(\n this.cellKey,\n activeAttempt?.controllerCtx.traceId ?? 'unknown',\n activeAttempt?.controllerCtx ?? ({ traceId: 'unknown' } as ControllerContext<T>),\n err\n );\n\n // Try to drop the corrupted request to recover\n //istanbul ignore next\n this.#attemptQueue.shift();\n //istanbul ignore next\n this.#processQueue();\n }\n }\n\n #registerDecisionEngine(): void {\n this.decisionEngine = new DecisionEngine<T>(this.#controllers, this.#events$);\n\n this.#events$.subscribe({\n next: (event: ControllerEventShape) => {\n if (event.type === ControllerEventTypes.LicenseDenied) {\n this.vaultMonitor.conductorLicenseDenied(this.cellKey, event.traceId);\n this.#conductorLicenseStatus = ConductorLicenseStatusTypes.Denied;\n\n const error = new Error(\n `${this.cellKey} Conductor Decision Engine: The FeatureCell received a \"License Denied\". Pipeline is disabled.`\n );\n\n vaultDebug(error.message);\n\n this.privateErrorService.setError(createVaultError(error, this.cellKey));\n\n this.#attemptQueue.length = 0;\n\n return;\n }\n\n if (event.type === ControllerEventTypes.LicenseApproved) {\n this.vaultMonitor.conductorLicenseApproved(this.cellKey, event.traceId);\n this.#conductorLicenseStatus = ConductorLicenseStatusTypes.Approved;\n\n vaultDebug(`${this.cellKey} Conductor Decision Engine: License Approved.`);\n\n this.#processQueue();\n\n return;\n }\n\n const head = this.#attemptQueue[0];\n if (!head) return;\n\n // Defensive guard: with serialized pipeline execution,\n // controller events cannot arrive out of order.\n // This is retained as a safety net against future regressions.\n /* istanbul ignore next */\n if (head.controllerCtx.traceId !== event.traceId) {\n vaultDebug(`The head ctx is not the same as the event. ${head.controllerCtx.traceId} != ${event.traceId}`);\n return;\n }\n\n // For both Success and Fail, this request is DONE from the queue’s POV\n switch (event.type) {\n case ControllerEventTypes.Success: {\n this.vaultMonitor.endControllerAttempt(this.cellKey, head.behaviorCtx.traceId, head.controllerCtx, {\n status: 'success'\n });\n\n this.#completeCurrentAttempt(head.controllerCtx);\n break;\n }\n\n case ControllerEventTypes.Failure: {\n this.vaultMonitor.endControllerAttempt(this.cellKey, head.behaviorCtx.traceId, head.controllerCtx, {\n status: 'failure'\n });\n\n this.#resetProcessingState(head.behaviorCtx, event.type);\n\n break;\n }\n\n case ControllerEventTypes.Abort: {\n this.vaultMonitor.conductorAbort(this.cellKey, event.traceId, head.controllerCtx);\n vaultDebug(\n `${this.cellKey} Conductor Decision Engine: Abort request received for Behavior TraceId: ${head.controllerCtx.traceId}.`\n );\n this.#completeCurrentAttempt(head.controllerCtx);\n\n break;\n }\n\n case ControllerEventTypes.Revote: {\n vaultDebug(\n `${this.cellKey} Conductor Decision Engine: Revote request received for Behavior TraceId: ${head.controllerCtx.traceId}.`\n );\n this.vaultMonitor.conductorRevote(this.cellKey, event.traceId, head.controllerCtx);\n this.#processing = false;\n vaultDebug(\n `${this.cellKey} Conductor Decision Engine: processQueue event dispatched for Behavior TraceId: ${head.controllerCtx.traceId}.`\n );\n this.#processQueue();\n break;\n }\n }\n }\n });\n }\n\n #buildPipelineCtx(ctx: BehaviorContext<T>, operation: OperationType, options: unknown): BehaviorContext<T> {\n const traceId = assignTraceId();\n\n return {\n // shared, live references (DO NOT CLONE)\n destroyed$: ctx.destroyed$,\n reset$: ctx.reset$,\n state$: ctx.state$,\n\n featureCellKey: ctx.featureCellKey,\n state: ctx.state,\n lastSnapshot: ctx.lastSnapshot,\n options: options != null ? isolateValue(options) : options,\n\n // per-attempt immutable values\n traceId,\n operation,\n resolveType: undefined,\n incoming: undefined\n };\n }\n\n #resetConductor() {\n this.#attemptQueue.length = 0;\n this.#processing = false;\n }\n\n #destroyControllers(ctx: BehaviorContext<T>): void {\n for (const controller of this.#controllers) {\n this.vaultMonitor.startDestroy(this.cellKey, controller.key, ctx);\n try {\n controller.destroy?.();\n this.vaultMonitor.endDestroy(this.cellKey, controller.key, ctx);\n } catch (err) {\n vaultError(`${controller.key} destroy() failed`, err);\n this.vaultMonitor.endDestroy(this.cellKey, controller.key, ctx, { destroyFailed: true });\n }\n }\n }\n\n #resetControllers(ctx: BehaviorContext<T>): void {\n for (const controller of this.#controllers) {\n this.vaultMonitor.startReset(this.cellKey, controller.key, ctx);\n try {\n controller.reset?.();\n this.vaultMonitor.endReset(this.cellKey, controller.key, ctx);\n } catch (err) {\n vaultError(`${controller.key} reset() failed`, err);\n this.vaultMonitor.endReset(this.cellKey, controller.key, ctx, { resetFailed: true });\n }\n }\n }\n\n #addDefaultErrorController(controllers: ControllerClassContract<T>[], config: ConductorConfig<T>): void {\n const errorControllers = config.controllers.filter((controllerClass: ControllerClassContract) => {\n return (controllerClass as ControllerClassContract<T>).type === ControllerTypes.Error;\n });\n\n if (errorControllers.length > 1) {\n const names = errorControllers.map((errorController) => errorController.key).join(', ');\n\n throw new Error(\n `SDuX Error: More than one ErrorController was provided. Only one error policy can be active per FeatureCell. Received: ${names}. Fix: Remove additional error controllers or combine them into a single controller.`\n );\n }\n\n if (errorControllers.length === 1) {\n controllers.push(errorControllers[0]);\n } else {\n controllers.unshift(withCoreErrorController);\n }\n }\n\n #filterRestrictedControllers(controllers: ControllerClassContract<T>[]): ControllerClassContract<T>[] {\n return controllers.filter((controller) => {\n if (controller.type === ControllerTypes.License || controller.type === ControllerTypes.CoreAbstain) {\n vaultDebug(\n `${this.cellKey} Conductor: Filtering out controller \"${controller.key}\" of type \"${controller.type}\" as it is reserved for internal use.`\n );\n return false;\n }\n return true;\n });\n }\n\n // ---------------------------------------------------------------------------\n // INTERNAL SCHEDULING\n // ---------------------------------------------------------------------------\n #registerControllers(config: ConductorConfig<T>): void {\n config.controllers = config.controllers ?? [];\n\n const allControllers = this.#filterRestrictedControllers(config.controllers) as ControllerClassContract<T>[];\n\n this.#addDefaultErrorController(allControllers, config);\n\n allControllers.unshift(withCoreLicenseController);\n allControllers.unshift(withCoreAbstainController);\n\n // eslint-disable-next-line\n const controllerMetadata = allControllers.map((controller: any) => {\n const meta = controller[CONTROLLER_META] as ControllerMetaShape;\n\n return {\n key: controller.key,\n type: meta.type,\n critical: meta.critical,\n needsLicense: meta.needsLicense\n };\n });\n\n LicensingService().describeControllers({\n featureCellKey: this.cellKey,\n controllers: controllerMetadata\n });\n\n const controllerInit = new ControllerInitializationClass(config.cell.key);\n this.#controllers = controllerInit.initializeControllers(allControllers, this.#events$, config.behaviorConfigs);\n\n this.#registerDecisionEngine();\n }\n\n /**\n * Run controllers for a single pending attempt and normalize their decision.\n *\n * Returns:\n * - ControllerVotes.Allow\n * - ControllerVotes.Reset\n *\n * All more detailed opinions (Deny/Retry/Buffer/Abstain) are reduced\n * at this layer for now.\n */\n #runControllers(pending: PendingAttemptShape<T>): Observable<DecisionOutcomeType> {\n this.vaultMonitor.startControllerVote(this.cellKey, pending.controllerCtx.traceId, pending.controllerCtx);\n return this.decisionEngine.evaluateAttempt(pending.controllerCtx)?.pipe(\n tap((decision: ControllerDecisionShape) => {\n this.vaultMonitor.endControllerVote(\n this.cellKey,\n pending.controllerCtx.traceId,\n pending.controllerCtx,\n decision\n );\n }),\n map((decision: ControllerDecisionShape) => decision.outcome)\n );\n }\n\n #denyAttemptCompleted(): void {\n if (!DevMode.active) return;\n this.#settled$.next();\n }\n\n // ADD\n #attemptCompleted(): void {\n if (!DevMode.active || this.#attemptQueue.length > 0) return;\n\n queueMicrotask(() => {\n this.#settled$.next();\n });\n }\n\n #conductorSettled(): Promise<void> {\n return firstValueFrom(this.#settled$);\n }\n\n //#endregion\n}\n","/**\n * Canonical identifier used to label FeatureCell-related ownership or origin.\n */\nexport const VAULT_FEATURE_CELL = 'vault-feature-cell';\n","import { BehaviorClassContract, BehaviorTypes } from '@sdux-vault/shared';\nimport { FeatureCellConfig } from '../../config/feature-cell.config';\n\n/**\n * Validates a `FeatureCelldescriptorModel` configuration prior to FeatureCell\n * initialization. This function ensures that the descriptor is structurally\n * correct and that conflicting behaviors are not registered on the same\n * FeatureCell instance.\n *\n * The validation enforces two primary constraints:\n *\n * 1. **Initial State Shape Validation**\n * The `initial` value must represent plain unwrapped data (e.g., `{}`, `[]`,\n * or primitives). Passing a resource-like object containing fields such as\n * `{ loading, data, error }` is not permitted because FeatureCells wrap\n * values internally and would otherwise double-encapsulate resource state.\n *\n * 2. **Encryption Behavior Exclusivity**\n * A FeatureCell may register at most one encryption behavior. Multiple\n * encryption behaviors introduce conflicting state guarantees and are\n * rejected during validation.\n *\n * @typeParam T - The type representing the FeatureCell’s state shape.\n *\n * @param descriptor - The declared FeatureCell descriptor, including key and initial state.\n * @param behaviors - A list of behavior classes registered for this FeatureCell.\n *\n * @throws Error if the initial state contains resource-like fields.\n * @throws Error if more than one encryption behavior is provided.\n */\nexport function featureCellValidation<T>(\n descriptor: FeatureCellConfig<T>,\n behaviors: BehaviorClassContract<T>[] = []\n): void {\n // Prevent incorrect initialization (e.g., passing a resource object)\n if (\n typeof descriptor.initialState === 'object' &&\n descriptor.initialState !== null &&\n // eslint-disable-next-line\n 'data' in (descriptor.initialState as any)\n ) {\n throw new Error(\n `[vault] Invalid FeatureCelldescriptorModel.initial for feature \"${descriptor.key}\". Expected raw data (e.g., [] or {}), but received an object with resource fields { loading, data, error }. Pass plain data to avoid double-wrapping.`\n );\n }\n\n const encryptBehaviors = behaviors.filter((behavior) => behavior.type === BehaviorTypes.Encrypt);\n\n if (encryptBehaviors.length > 1) {\n throw new Error(`[vault] FeatureCell cannot register multiple encryption behaviors.`);\n }\n}\n","// --- AI Model File Path (DO NOT DELETE) ---\n// FilePath: projects > engine > src > lib > factories > feature-cell > feature-cell.builder.ts\n// Updated: 2026-03-02 19:52\n//\t Generated by pathcomment [tab] (see .vscode/typescript.code-snippets) or\n//\t cmd+alt+j (see .vscode/keybindings.json)\n// --- END AI MODEL FILE PATH ---\n\nimport {\n BehaviorClassContract,\n BehaviorContext,\n CellBuilderContract,\n ControllerClassContract,\n CoreEmitStateCallback,\n DeferredType,\n DevMode,\n FeatureCellBaseShape,\n FilterFunction,\n InterceptorBehaviorClassContract,\n OperationTypes,\n OperatorsBehaviorClassContract,\n ReducerFunction,\n StateEmitSnapshotShape,\n StateInputType,\n StateSnapshotShape,\n TapCallback,\n VaultErrorCallback,\n vaultWarn\n} from '@sdux-vault/shared';\nimport { Subject } from 'rxjs';\nimport { Conductor } from '../../conductor/conductor';\nimport { FeatureCellConfig } from '../../config/feature-cell.config';\nimport { FeatureCellInitializeConfig } from '../../config/feature-cell.initialize.config';\nimport { VAULT_FEATURE_CELL } from '../../constants/vault-feature-cell.constant';\nimport { VaultMonitor } from '../../monitor/vault-monitor.service';\nimport { featureCellValidation } from '../../utils/feature-cell/feature-cell-validation.util';\nimport { registerVaultSettled } from '../vault/vault-core.function';\n\nexport abstract class FeatureCellBuilder<T> {\n #cellCorrupt = false;\n #conductor!: Conductor<T>;\n #initialized = false;\n readonly #vaultMonitor = VaultMonitor();\n\n protected cell!: FeatureCellBaseShape<T>;\n\n protected readonly cellKey: string;\n\n protected readonly ctx: BehaviorContext<T>;\n\n protected readonly destroyed$ = new Subject<void>();\n\n protected readonly reset$ = new Subject<void>();\n protected readonly state$ = new Subject<StateEmitSnapshotShape<T>>();\n\n constructor(\n // kept for parity with original API, even if not used directly\n protected readonly featureCellConfiguration: FeatureCellConfig<T>,\n private readonly defaultBehaviors: BehaviorClassContract<T>[],\n protected readonly behaviors: BehaviorClassContract<T>[],\n protected readonly controllers: ControllerClassContract<T>[]\n ) {\n this.cellKey = this.featureCellConfiguration.key;\n\n this.ctx = this.#buildCtx();\n }\n\n #buildCtx(): BehaviorContext<T> {\n const destroyed$ = this.destroyed$.asObservable();\n const state$ = this.state$;\n const reset$ = this.reset$.asObservable();\n\n const lastSnapshot = {\n isLoading: false,\n value: undefined,\n error: null,\n hasValue: false\n } as StateSnapshotShape<T>;\n\n const ctx = {\n destroyed$,\n featureCellKey: this.cellKey,\n reset$,\n state$,\n\n get state(): Readonly<StateSnapshotShape<T>> {\n const snapshot = this.lastSnapshot;\n return {\n isLoading: snapshot.isLoading,\n value: snapshot.value,\n error: snapshot.error,\n hasValue: snapshot.hasValue\n };\n }\n } as BehaviorContext<T>;\n\n // 🔒 CRITICAL: Lock the reference forever\n Object.defineProperty(ctx, 'lastSnapshot', {\n value: lastSnapshot,\n writable: false, // ❗ cannot reassign\n configurable: false, // ❗ cannot redefine\n enumerable: true\n });\n\n return ctx;\n }\n\n // ---------------------------------------------------------------------------\n // INTERNAL LIFECYCLE\n // ---------------------------------------------------------------------------\n\n protected reset(): void {\n this.#vaultMonitor.startReset(this.cellKey, VAULT_FEATURE_CELL, this.ctx);\n vaultWarn(`${VAULT_FEATURE_CELL}: reset`);\n\n this.#ensureInitialized();\n this.reset$.next();\n\n this.#conductor?.reset(this.ctx);\n\n this.#vaultMonitor.endReset(this.cellKey, VAULT_FEATURE_CELL, this.ctx);\n }\n\n protected destroy(): void {\n this.#vaultMonitor.startDestroy(this.cellKey, VAULT_FEATURE_CELL, this.ctx);\n vaultWarn(`${VAULT_FEATURE_CELL}: destroy`);\n\n this.reset$.next();\n this.reset$.complete();\n\n this.#conductor?.destroy(this.ctx);\n\n this.destroyed$.next();\n this.destroyed$.complete();\n\n this.state$.complete();\n\n this.#vaultMonitor.endDestroy(this.cellKey, VAULT_FEATURE_CELL, this.ctx);\n }\n\n #ensureInitialized(): void {\n if (this.#cellCorrupt) {\n const errorMessage = `[vault] FeatureCell \"${this.featureCellConfiguration.key}\" encountered a critical initialization failure and is now in a corrupted state. Further use is blocked.`;\n\n this.#vaultMonitor.runtimeError(this.cellKey, VAULT_FEATURE_CELL, this.ctx, errorMessage);\n throw new Error(errorMessage);\n }\n if (!this.#initialized) {\n const errorMessage = `[vault] FeatureCell \"${this.featureCellConfiguration.key}\" has not been initialized. You must call cell.initialize() before using state methods.`;\n this.#vaultMonitor.runtimeError(this.cellKey, VAULT_FEATURE_CELL, this.ctx, errorMessage);\n throw new Error(errorMessage);\n }\n }\n\n #initialize(ctx: FeatureCellInitializeConfig<T>): void {\n if (this.#initialized) {\n const errorMessage = `[vault] FeatureCell \"${this.featureCellConfiguration.key}\" already initialized.`;\n\n this.#vaultMonitor.runtimeError(this.cellKey, VAULT_FEATURE_CELL, this.ctx, errorMessage);\n throw new Error(errorMessage);\n }\n\n try {\n // Register cell + start lifecycle event\n this.#vaultMonitor.registerCell(this.cellKey, this.featureCellConfiguration.insights);\n this.#vaultMonitor.startInitialized(this.cellKey, VAULT_FEATURE_CELL, this.ctx);\n\n featureCellValidation(this.featureCellConfiguration, this.behaviors);\n\n // This must proceed the orchestrator instantiation\n this.#initialized = true;\n\n // Orchestrator needs the concrete cell API\n this.#conductor = new Conductor({\n afterTapCallbacks: ctx.afterTapCallbacks,\n beforeTapCallbacks: ctx.beforeTapCallbacks,\n behaviors: this.behaviors,\n behaviorConfigs: ctx.behaviorConfigs,\n cell: this.cell,\n defaultBehaviors: this.defaultBehaviors,\n controllers: this.controllers,\n emitStateCallbacks: ctx.emitStateCallbacks,\n errorCallbacks: ctx.errorCallbacks,\n filterCallbacks: ctx.filterFunctions,\n initialState: ctx.hydrate || this.featureCellConfiguration.initialState,\n interceptors: ctx.interceptors,\n operators: ctx.operators,\n reducerCallbacks: ctx.reducerFunctions\n });\n\n this.#conductor.initialize(this.ctx);\n\n if (DevMode.active) {\n Object.defineProperty(this.cell, 'vaultSettled', {\n enumerable: false,\n configurable: false,\n writable: false,\n // eslint-disable-next-line\n value: () => (this.#conductor as any).vaultSettled()\n });\n\n // eslint-disable-next-line\n registerVaultSettled(this.cellKey, (this.#conductor as any).vaultSettled.bind(this.#conductor));\n }\n\n this.#vaultMonitor.endInitialized(this.cellKey, VAULT_FEATURE_CELL, this.ctx);\n } catch (err) {\n this.#cellCorrupt = true;\n this.#vaultMonitor.runtimeError(this.cellKey, VAULT_FEATURE_CELL, this.ctx, err);\n throw err;\n }\n }\n\n #handleCorruptionError(message: string): void {\n this.#cellCorrupt = true;\n this.#vaultMonitor.runtimeError(this.cellKey, VAULT_FEATURE_CELL, this.ctx, message);\n throw new Error(message);\n }\n\n protected setup(): CellBuilderContract<T> {\n const afterTapCallbacks: TapCallback<T>[] = [];\n const beforeTapCallbacks: TapCallback<T>[] = [];\n const errorCallbacks: VaultErrorCallback<T>[] = [];\n const filterFunctions: FilterFunction<T>[] = [];\n let hydrate: DeferredType<T>;\n const interceptors: InterceptorBehaviorClassContract<T>[] = [];\n const operators: OperatorsBehaviorClassContract<T>[] = [];\n const reducerFunctions: ReducerFunction<T>[] = [];\n const emitStateCallbacks: CoreEmitStateCallback<T>[] = [];\n const behaviorConfigs = new Map<string, unknown>();\n\n const builder: CellBuilderContract<T> = {\n behaviorConfigs,\n\n afterTaps: (incomingAfterTaps: TapCallback<T>[]): CellBuilderContract<T> => {\n if (this.#initialized) {\n this.#handleCorruptionError(\n 'Cannot call \"afterTaps\" after initialize(). Configuration must be done before initialization.'\n );\n }\n\n if (Array.isArray(incomingAfterTaps)) {\n afterTapCallbacks.push(...incomingAfterTaps);\n }\n return builder;\n },\n beforeTaps: (incomingBeforeTaps: TapCallback<T>[]): CellBuilderContract<T> => {\n if (this.#initialized) {\n this.#handleCorruptionError(\n 'Cannot call \"beforeTaps\" after initialize(). Configuration must be done before initialization.'\n );\n }\n\n if (Array.isArray(incomingBeforeTaps)) {\n beforeTapCallbacks.push(...incomingBeforeTaps);\n }\n return builder;\n },\n emitStates: (incomingEmitStates: CoreEmitStateCallback<T>[]): CellBuilderContract<T> => {\n if (this.#initialized) {\n this.#handleCorruptionError(\n 'Cannot call \"emitStates\" after initialize(). Configuration must be done before initialization.'\n );\n }\n if (Array.isArray(incomingEmitStates)) {\n emitStateCallbacks.push(...incomingEmitStates);\n }\n return builder;\n },\n errors: (incomingErrors: VaultErrorCallback<T>[]): CellBuilderContract<T> => {\n if (this.#initialized) {\n this.#handleCorruptionError(\n 'Cannot call \"errors\" after initialize(). Configuration must be done before initialization.'\n );\n }\n\n if (Array.isArray(incomingErrors)) {\n errorCallbacks.push(...incomingErrors);\n }\n\n return builder;\n },\n filters: (incomingFilters: FilterFunction<T>[]): CellBuilderContract<T> => {\n if (this.#initialized) {\n this.#handleCorruptionError(\n 'Cannot call \"filters\" after initialize(). Configuration must be done before initialization.'\n );\n }\n\n if (Array.isArray(incomingFilters)) {\n filterFunctions.push(...incomingFilters);\n }\n return builder;\n },\n hydrate: (incoming: DeferredType<T>): CellBuilderContract<T> => {\n if (this.#initialized) {\n this.#handleCorruptionError(\n 'Cannot call \"hydrate\" after initialize(). Configuration must be done before initialization.'\n );\n }\n\n hydrate = incoming;\n return builder;\n },\n initialize: () => {\n this.#initialize({\n afterTapCallbacks,\n beforeTapCallbacks,\n behaviorConfigs,\n emitStateCallbacks,\n errorCallbacks,\n filterFunctions,\n hydrate,\n interceptors,\n operators,\n reducerFunctions\n });\n },\n interceptors: (incomingInterceptors: InterceptorBehaviorClassContract<T>[]): CellBuilderContract<T> => {\n if (this.#initialized) {\n this.#handleCorruptionError(\n 'Cannot call \"interceptors\" after initialize(). Configuration must be done before initialization.'\n );\n }\n if (Array.isArray(incomingInterceptors)) {\n interceptors.push(...incomingInterceptors);\n }\n return builder;\n },\n operators: (incomingOperators: OperatorsBehaviorClassContract<T>[]): CellBuilderContract<T> => {\n if (this.#initialized) {\n this.#handleCorruptionError(\n 'Cannot call \"operators\" after initialize(). Configuration must be done before initialization.'\n );\n }\n if (Array.isArray(incomingOperators)) {\n operators.push(...incomingOperators);\n }\n return builder;\n },\n\n reducers: (incomingReducers: ReducerFunction<T>[]): CellBuilderContract<T> => {\n if (this.#initialized) {\n this.#handleCorruptionError(\n 'Cannot call \"reducers\" after initialize(). Configuration must be done before initialization.'\n );\n }\n if (Array.isArray(incomingReducers)) {\n reducerFunctions.push(...incomingReducers);\n }\n return builder;\n }\n };\n\n return builder;\n }\n\n // ---------------------------------------------------------------------------\n // STATE OPERATIONS\n // ---------------------------------------------------------------------------\n\n protected mergeState(incoming: StateInputType<T>, options?: unknown): void {\n this.#ensureInitialized();\n\n return this.#conductor.conduct(this.ctx, incoming, OperationTypes.Merge, options);\n }\n\n protected replaceState(incoming: StateInputType<T>, options?: unknown): void {\n this.#ensureInitialized();\n\n return this.#conductor.conduct(this.ctx, incoming, OperationTypes.Replace, options);\n }\n}\n","// --- AI Model File Path (DO NOT DELETE) ---\n// FilePath: projects > engine > src > lib > factories > feature-cell > feature-cell.class.ts\n// Updated: 2026-03-02 19:52\n//\t Generated by pathcomment [tab] (see .vscode/typescript.code-snippets) or\n//\t cmd+alt+j (see .vscode/keybindings.json)\n// --- END AI MODEL FILE PATH ---\n\nimport { BehaviorClassContract, ControllerClassContract, StateSnapshotShape } from '@sdux-vault/shared';\nimport { FeatureCellConfig } from '../../config/feature-cell.config';\nimport { FeatureCellShape } from '../../shapes/feature-cell/feature-cell.shape';\nimport { FeatureCellBuilder } from './feature-cell.builder';\n\nexport class FeatureCellClass<T> extends FeatureCellBuilder<T> {\n constructor(\n descriptor: FeatureCellConfig<T>,\n defaultBehaviors: BehaviorClassContract<T>[],\n behaviors: BehaviorClassContract<T>[],\n controllers: ControllerClassContract<T>[]\n ) {\n super(descriptor, defaultBehaviors, behaviors, controllers);\n }\n\n build(): FeatureCellShape<T> {\n const builder = this.setup();\n const ctx = this.ctx;\n\n const cell: FeatureCellShape<T> = {\n afterTaps: builder.afterTaps,\n beforeTaps: builder.beforeTaps,\n\n destroy: this.destroy.bind(this),\n destroyed$: this.destroyed$.asObservable(),\n\n errors: builder.errors,\n\n filters: builder.filters,\n\n hydrate: builder.hydrate,\n\n initialize: builder.initialize,\n\n interceptors: builder.interceptors,\n\n key: this.cellKey,\n\n mergeState: this.mergeState.bind(this),\n\n operators: builder.operators,\n\n reducers: builder.reducers,\n\n emitStates: builder.emitStates,\n\n replaceState: this.replaceState.bind(this),\n\n reset$: this.reset$.asObservable(),\n reset: this.reset.bind(this),\n\n state$: this.state$.asObservable(),\n\n get state(): StateSnapshotShape<T> {\n return {\n isLoading: ctx.lastSnapshot.isLoading,\n value: ctx.lastSnapshot.value,\n error: ctx.lastSnapshot.error,\n hasValue: ctx.lastSnapshot.hasValue\n } as StateSnapshotShape<T>;\n }\n };\n\n // Keep a reference for orchestrator creation\n this.cell = cell;\n\n this.behaviors.forEach((behavior: BehaviorClassContract<T>) => {\n behavior?.installFluentApi?.(this.cell, builder.behaviorConfigs);\n });\n\n this.controllers.forEach((controller: ControllerClassContract<T>) => {\n controller?.installFluentApi?.(this.cell, builder.behaviorConfigs);\n });\n\n Object.defineProperty(cell, 'ctx', {\n value: this.ctx,\n enumerable: false,\n writable: false\n });\n\n Object.defineProperty(cell, 'key', {\n value: this.featureCellConfiguration.key,\n enumerable: false,\n writable: false\n });\n\n return cell;\n }\n}\n","import { BehaviorClassContext, VaultLicenseError } from '@sdux-vault/shared';\nimport { LicensingServiceContract } from '../interfaces/licensing/licensing-service.interface';\nimport { LicensingService } from './licensing.service';\n\nexport abstract class LicensingAbstract<T> {\n static readonly needsLicense: boolean;\n static readonly key: string;\n\n #licenseToken!: string;\n #featureCellKey: string;\n #key: string;\n\n #licenseService: LicensingServiceContract<T>;\n\n constructor(ctx: BehaviorClassContext) {\n const ctor = this.constructor as typeof LicensingAbstract;\n\n if (typeof ctor.key !== 'string' || !ctor.key.trim()) {\n throw new VaultLicenseError(`LicensingClass requires a static \"key\". Did you forget @VaultBehavior?`);\n }\n\n this.#licenseService = LicensingService();\n this.#key = ctor.key;\n this.#featureCellKey = ctx.featureCellKey;\n\n if (ctor.needsLicense) {\n this.#requestLicense();\n }\n }\n\n #requestLicense(): void {\n this.#licenseToken = this.#licenseService.requestLicense(this.#featureCellKey, this.#key);\n }\n\n validateLicense(valid: boolean): void {\n if (!this.#licenseToken) {\n throw new VaultLicenseError(\n `validateLicense() called but no license was requested for \"${this.#featureCellKey}\" and \"${this.#key}\".`\n );\n }\n this.#licenseService.validateLicense(this.#featureCellKey, this.#key, this.#licenseToken, valid);\n }\n}\n","import { DevMode } from '@sdux-vault/shared';\nimport { FeatureCellToken } from '../types/feature-cell-token.type';\n\n/**\n * The feature cell tokens map\n */\nconst featureCellTokens = new Map<string, FeatureCellToken>();\n\n/**\n * Tracks whether a FeatureCell token has already been retrieved\n */\nconst featureCellTokenRequested = new Map<string, boolean>();\n\n/**\n * Internal token resolution mechanism used by both createFeatureCellToken()\n * and getFeatureCellToken().\n *\n * Enforces:\n * - unique FeatureCell keys\n * - single retrieval per key (unless dev mode)\n */\nfunction internalFeatureCellToken(key: string, isCreate: boolean): FeatureCellToken {\n // ──────────────────────────────────────────────\n // CREATE MODE\n // ──────────────────────────────────────────────\n if (isCreate) {\n if (featureCellTokens.has(key)) {\n if (!DevMode.active) {\n const existing = featureCellTokens.get(key);\n throw new Error(\n `[vault] Duplicate FeatureCell key detected: \"${key}\". ` +\n `Each FeatureCell must have a unique key. Existing token: \"${existing?.key}\"`\n );\n }\n\n return featureCellTokens.get(key)!;\n }\n\n const token: FeatureCellToken = {\n key\n };\n // const token: FeatureCellToken = { key };\n featureCellTokens.set(key, token);\n return token;\n }\n\n // ──────────────────────────────────────────────\n // RETRIEVE MODE\n // ──────────────────────────────────────────────\n if (!featureCellTokens.has(key)) {\n throw new Error(\n `[vault] FeatureCell token not found for key \"${key}\". You must call provideFeatureCell() before retrieving this FeatureCell.`\n );\n }\n\n if (featureCellTokenRequested.has(key)) {\n if (!DevMode.active) {\n throw new Error(`[vault] FeatureCell \"${key}\" can only be owned by a single consumer.`);\n }\n\n return featureCellTokens.get(key)!;\n }\n\n featureCellTokenRequested.set(key, true);\n return featureCellTokens.get(key)!;\n}\n\n/**\n * Creates a FeatureCell token for the specified key.\n */\nexport function createFeatureCellToken(key: string) {\n return internalFeatureCellToken(key, true);\n}\n\n/**\n * Retrieves the FeatureCell token associated with a key.\n */\nexport function getFeatureCellToken(key: string) {\n return internalFeatureCellToken(key, false);\n}\n\n/**\n * Clears FeatureCell token state for test isolation.\n *\n * This must be called explicitly by test utilities.\n * No framework assumptions are made.\n */\nexport function resetFeatureCellToken(): void {\n // DevMode already gates unsafe behavior\n if (!DevMode.active) return;\n\n featureCellTokens.clear();\n featureCellTokenRequested.clear();\n}\n","// --- AI Model File Path (DO NOT DELETE) ---\n// FilePath: lib > public-api.ts\n// Updated: 2026-03-30 15:42\n//\t Generated by pathcomment [tab] (see .vscode/typescript.code-snippets) or\n//\t cmd+alt+j (see .vscode/keybindings.json)\n// --- END AI MODEL FILE PATH ---\n\n/*\n * This is for version support in dev mode and tracking in the devtools\n */\n\nimport './src/version/version.register';\n\nexport { Conductor } from './src/conductor/conductor';\nexport type { ConductorConfig } from './src/config/conductor.config';\nexport type { FeatureCellConfig } from './src/config/feature-cell.config';\nexport { FeatureCellClass } from './src/factories/feature-cell/feature-cell.class';\nexport * from './src/factories/vault/vault-core.function';\nexport { registerFeatureCell, resetVaultForTests } from './src/factories/vault/vault-core.function';\nexport { LicensingAbstract } from './src/licensing/licensing.abstract';\nexport type { VaultStateRef } from './src/references/vault.reference';\nexport type { FeatureCellShape } from './src/shapes/feature-cell/feature-cell.shape';\nexport { createFeatureCellToken, getFeatureCellToken } from './src/tokens/feature-cell-token-registry';\nexport { isPipelineTerminal } from './src/utils/orchestrator.utils';\nexport { VAULT_LICENSE_ID } from './src/constants/vault-license-id.constant';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["instance","EVENT_POLICY"],"mappings":"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"}
|