@iworkforces/tracelattice 2.0.3
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.
- package/LICENSE +24 -0
- package/README.md +260 -0
- package/dist/CliLifecycle.d.ts +31 -0
- package/dist/CliLifecycle.d.ts.map +1 -0
- package/dist/CliLifecycle.js +90 -0
- package/dist/CliLifecycle.js.map +1 -0
- package/dist/ServerConfig.d.ts +290 -0
- package/dist/ServerConfig.d.ts.map +1 -0
- package/dist/ServerConfig.js +175 -0
- package/dist/ServerConfig.js.map +1 -0
- package/dist/cache/DiscoveryCache.d.ts +269 -0
- package/dist/cache/DiscoveryCache.d.ts.map +1 -0
- package/dist/cache/DiscoveryCache.js +104 -0
- package/dist/cache/DiscoveryCache.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +5177 -0
- package/dist/cli.js.map +1 -0
- package/dist/config/ConfigLoader.d.ts +270 -0
- package/dist/config/ConfigLoader.d.ts.map +1 -0
- package/dist/config/ConfigLoader.js +186 -0
- package/dist/config/ConfigLoader.js.map +1 -0
- package/dist/context/RequestContext.d.ts +43 -0
- package/dist/context/RequestContext.d.ts.map +1 -0
- package/dist/context/RequestContext.js +14 -0
- package/dist/context/RequestContext.js.map +1 -0
- package/dist/contracts/PersistenceBackend.d.ts +134 -0
- package/dist/contracts/PersistenceBackend.d.ts.map +1 -0
- package/dist/contracts/PersistenceBackend.js +6 -0
- package/dist/contracts/PersistenceBackend.js.map +1 -0
- package/dist/contracts/calibrator.d.ts +97 -0
- package/dist/contracts/calibrator.d.ts.map +1 -0
- package/dist/contracts/calibrator.js +1 -0
- package/dist/contracts/features.d.ts +35 -0
- package/dist/contracts/features.d.ts.map +1 -0
- package/dist/contracts/features.js +12 -0
- package/dist/contracts/features.js.map +1 -0
- package/dist/contracts/ids.d.ts +68 -0
- package/dist/contracts/ids.d.ts.map +1 -0
- package/dist/contracts/ids.js +40 -0
- package/dist/contracts/ids.js.map +1 -0
- package/dist/contracts/interfaces.d.ts +254 -0
- package/dist/contracts/interfaces.d.ts.map +1 -0
- package/dist/contracts/interfaces.js +1 -0
- package/dist/contracts/persistence-work.d.ts +96 -0
- package/dist/contracts/persistence-work.d.ts.map +1 -0
- package/dist/contracts/persistence-work.js +1 -0
- package/dist/contracts/reasoning-types.d.ts +21 -0
- package/dist/contracts/reasoning-types.d.ts.map +1 -0
- package/dist/contracts/reasoning-types.js +1 -0
- package/dist/contracts/strategy.d.ts +107 -0
- package/dist/contracts/strategy.d.ts.map +1 -0
- package/dist/contracts/strategy.js +1 -0
- package/dist/contracts/summary.d.ts +110 -0
- package/dist/contracts/summary.d.ts.map +1 -0
- package/dist/contracts/summary.js +1 -0
- package/dist/contracts/suspension.d.ts +215 -0
- package/dist/contracts/suspension.d.ts.map +1 -0
- package/dist/contracts/suspension.js +1 -0
- package/dist/contracts/transport.d.ts +26 -0
- package/dist/contracts/transport.d.ts.map +1 -0
- package/dist/contracts/transport.js +1 -0
- package/dist/core/CrossReferenceValidator.d.ts +18 -0
- package/dist/core/CrossReferenceValidator.d.ts.map +1 -0
- package/dist/core/CrossReferenceValidator.js +125 -0
- package/dist/core/CrossReferenceValidator.js.map +1 -0
- package/dist/core/HistoryManager.d.ts +215 -0
- package/dist/core/HistoryManager.d.ts.map +1 -0
- package/dist/core/HistoryManager.js +594 -0
- package/dist/core/HistoryManager.js.map +1 -0
- package/dist/core/IHistoryManager.d.ts +163 -0
- package/dist/core/IHistoryManager.d.ts.map +1 -0
- package/dist/core/IHistoryManager.js +1 -0
- package/dist/core/IThoughtFormatter.d.ts +51 -0
- package/dist/core/IThoughtFormatter.d.ts.map +1 -0
- package/dist/core/IThoughtFormatter.js +1 -0
- package/dist/core/InputNormalizer.d.ts +140 -0
- package/dist/core/InputNormalizer.d.ts.map +1 -0
- package/dist/core/InputNormalizer.js +95 -0
- package/dist/core/InputNormalizer.js.map +1 -0
- package/dist/core/PersistenceBuffer.d.ts +204 -0
- package/dist/core/PersistenceBuffer.d.ts.map +1 -0
- package/dist/core/PersistenceBuffer.js +382 -0
- package/dist/core/PersistenceBuffer.js.map +1 -0
- package/dist/core/PersistenceBufferErrors.d.ts +22 -0
- package/dist/core/PersistenceBufferErrors.d.ts.map +1 -0
- package/dist/core/PersistenceBufferErrors.js +30 -0
- package/dist/core/PersistenceBufferErrors.js.map +1 -0
- package/dist/core/PersistenceRestore.d.ts +21 -0
- package/dist/core/PersistenceRestore.d.ts.map +1 -0
- package/dist/core/PersistenceRestore.js +87 -0
- package/dist/core/PersistenceRestore.js.map +1 -0
- package/dist/core/PersistenceWorkQueue.d.ts +155 -0
- package/dist/core/PersistenceWorkQueue.d.ts.map +1 -0
- package/dist/core/PersistenceWorkQueue.js +298 -0
- package/dist/core/PersistenceWorkQueue.js.map +1 -0
- package/dist/core/PersistenceWriter.d.ts +55 -0
- package/dist/core/PersistenceWriter.d.ts.map +1 -0
- package/dist/core/PersistenceWriter.js +112 -0
- package/dist/core/PersistenceWriter.js.map +1 -0
- package/dist/core/SessionErrors.d.ts +37 -0
- package/dist/core/SessionErrors.d.ts.map +1 -0
- package/dist/core/SessionErrors.js +50 -0
- package/dist/core/SessionErrors.js.map +1 -0
- package/dist/core/SessionLifecycleCoordinator.d.ts +74 -0
- package/dist/core/SessionLifecycleCoordinator.d.ts.map +1 -0
- package/dist/core/SessionLifecycleCoordinator.js +222 -0
- package/dist/core/SessionLifecycleCoordinator.js.map +1 -0
- package/dist/core/SessionLock.d.ts +59 -0
- package/dist/core/SessionLock.d.ts.map +1 -0
- package/dist/core/SessionLock.js +39 -0
- package/dist/core/SessionLock.js.map +1 -0
- package/dist/core/SessionManager.d.ts +62 -0
- package/dist/core/SessionManager.d.ts.map +1 -0
- package/dist/core/SessionManager.js +75 -0
- package/dist/core/SessionManager.js.map +1 -0
- package/dist/core/SessionResetCoordinator.d.ts +37 -0
- package/dist/core/SessionResetCoordinator.d.ts.map +1 -0
- package/dist/core/SessionResetCoordinator.js +80 -0
- package/dist/core/SessionResetCoordinator.js.map +1 -0
- package/dist/core/ThoughtEvaluator.d.ts +48 -0
- package/dist/core/ThoughtEvaluator.d.ts.map +1 -0
- package/dist/core/ThoughtEvaluator.js +85 -0
- package/dist/core/ThoughtEvaluator.js.map +1 -0
- package/dist/core/ThoughtFormatter.d.ts +134 -0
- package/dist/core/ThoughtFormatter.d.ts.map +1 -0
- package/dist/core/ThoughtFormatter.js +118 -0
- package/dist/core/ThoughtFormatter.js.map +1 -0
- package/dist/core/ThoughtProcessor.d.ts +259 -0
- package/dist/core/ThoughtProcessor.d.ts.map +1 -0
- package/dist/core/ThoughtProcessor.js +451 -0
- package/dist/core/ThoughtProcessor.js.map +1 -0
- package/dist/core/ThoughtReferenceIndex.d.ts +23 -0
- package/dist/core/ThoughtReferenceIndex.d.ts.map +1 -0
- package/dist/core/ThoughtReferenceIndex.js +66 -0
- package/dist/core/ThoughtReferenceIndex.js.map +1 -0
- package/dist/core/VerificationOutcomeAdmission.d.ts +15 -0
- package/dist/core/VerificationOutcomeAdmission.d.ts.map +1 -0
- package/dist/core/VerificationOutcomeAdmission.js +28 -0
- package/dist/core/VerificationOutcomeAdmission.js.map +1 -0
- package/dist/core/compression/CompressionService.d.ts +76 -0
- package/dist/core/compression/CompressionService.d.ts.map +1 -0
- package/dist/core/compression/CompressionService.js +160 -0
- package/dist/core/compression/CompressionService.js.map +1 -0
- package/dist/core/compression/DehydrationPolicy.d.ts +75 -0
- package/dist/core/compression/DehydrationPolicy.d.ts.map +1 -0
- package/dist/core/compression/DehydrationPolicy.js +45 -0
- package/dist/core/compression/DehydrationPolicy.js.map +1 -0
- package/dist/core/compression/InMemorySummaryStore.d.ts +132 -0
- package/dist/core/compression/InMemorySummaryStore.d.ts.map +1 -0
- package/dist/core/compression/InMemorySummaryStore.js +69 -0
- package/dist/core/compression/InMemorySummaryStore.js.map +1 -0
- package/dist/core/compression/Summary.d.ts +74 -0
- package/dist/core/compression/Summary.d.ts.map +1 -0
- package/dist/core/compression/Summary.js +16 -0
- package/dist/core/compression/Summary.js.map +1 -0
- package/dist/core/evaluator/Aggregator.d.ts +40 -0
- package/dist/core/evaluator/Aggregator.d.ts.map +1 -0
- package/dist/core/evaluator/Aggregator.js +36 -0
- package/dist/core/evaluator/Aggregator.js.map +1 -0
- package/dist/core/evaluator/Calibrator.d.ts +52 -0
- package/dist/core/evaluator/Calibrator.d.ts.map +1 -0
- package/dist/core/evaluator/Calibrator.js +135 -0
- package/dist/core/evaluator/Calibrator.js.map +1 -0
- package/dist/core/evaluator/PatternDetector.d.ts +69 -0
- package/dist/core/evaluator/PatternDetector.d.ts.map +1 -0
- package/dist/core/evaluator/PatternDetector.js +192 -0
- package/dist/core/evaluator/PatternDetector.js.map +1 -0
- package/dist/core/evaluator/SignalComputer.d.ts +116 -0
- package/dist/core/evaluator/SignalComputer.d.ts.map +1 -0
- package/dist/core/evaluator/SignalComputer.js +110 -0
- package/dist/core/evaluator/SignalComputer.js.map +1 -0
- package/dist/core/evaluator/calibration-math.d.ts +39 -0
- package/dist/core/evaluator/calibration-math.d.ts.map +1 -0
- package/dist/core/evaluator/calibration-math.js +42 -0
- package/dist/core/evaluator/calibration-math.js.map +1 -0
- package/dist/core/evaluator/internals.d.ts +36 -0
- package/dist/core/evaluator/internals.d.ts.map +1 -0
- package/dist/core/evaluator/internals.js +43 -0
- package/dist/core/evaluator/internals.js.map +1 -0
- package/dist/core/graph/Edge.d.ts +58 -0
- package/dist/core/graph/Edge.d.ts.map +1 -0
- package/dist/core/graph/Edge.js +1 -0
- package/dist/core/graph/EdgeEmitter.d.ts +68 -0
- package/dist/core/graph/EdgeEmitter.d.ts.map +1 -0
- package/dist/core/graph/EdgeEmitter.js +118 -0
- package/dist/core/graph/EdgeEmitter.js.map +1 -0
- package/dist/core/graph/EdgeStore.d.ts +116 -0
- package/dist/core/graph/EdgeStore.d.ts.map +1 -0
- package/dist/core/graph/EdgeStore.js +107 -0
- package/dist/core/graph/EdgeStore.js.map +1 -0
- package/dist/core/graph/GraphView.d.ts +157 -0
- package/dist/core/graph/GraphView.d.ts.map +1 -0
- package/dist/core/graph/GraphView.js +149 -0
- package/dist/core/graph/GraphView.js.map +1 -0
- package/dist/core/ids.d.ts +33 -0
- package/dist/core/ids.d.ts.map +1 -0
- package/dist/core/ids.js +11 -0
- package/dist/core/ids.js.map +1 -0
- package/dist/core/reasoning/OutcomeRecorder.d.ts +88 -0
- package/dist/core/reasoning/OutcomeRecorder.d.ts.map +1 -0
- package/dist/core/reasoning/OutcomeRecorder.js +51 -0
- package/dist/core/reasoning/OutcomeRecorder.js.map +1 -0
- package/dist/core/reasoning/strategies/SequentialStrategy.d.ts +54 -0
- package/dist/core/reasoning/strategies/SequentialStrategy.d.ts.map +1 -0
- package/dist/core/reasoning/strategies/SequentialStrategy.js +22 -0
- package/dist/core/reasoning/strategies/SequentialStrategy.js.map +1 -0
- package/dist/core/reasoning/strategies/StrategyFactory.d.ts +25 -0
- package/dist/core/reasoning/strategies/StrategyFactory.d.ts.map +1 -0
- package/dist/core/reasoning/strategies/StrategyFactory.js +16 -0
- package/dist/core/reasoning/strategies/StrategyFactory.js.map +1 -0
- package/dist/core/reasoning/strategies/TreeOfThoughtStrategy.d.ts +58 -0
- package/dist/core/reasoning/strategies/TreeOfThoughtStrategy.d.ts.map +1 -0
- package/dist/core/reasoning/strategies/TreeOfThoughtStrategy.js +103 -0
- package/dist/core/reasoning/strategies/TreeOfThoughtStrategy.js.map +1 -0
- package/dist/core/reasoning/strategies/plateau.d.ts +18 -0
- package/dist/core/reasoning/strategies/plateau.d.ts.map +1 -0
- package/dist/core/reasoning/strategies/plateau.js +12 -0
- package/dist/core/reasoning/strategies/plateau.js.map +1 -0
- package/dist/core/reasoning/strategies/totScoring.d.ts +91 -0
- package/dist/core/reasoning/strategies/totScoring.d.ts.map +1 -0
- package/dist/core/reasoning/strategies/totScoring.js +88 -0
- package/dist/core/reasoning/strategies/totScoring.js.map +1 -0
- package/dist/core/reasoning.d.ts +179 -0
- package/dist/core/reasoning.d.ts.map +1 -0
- package/dist/core/reasoning.js +1 -0
- package/dist/core/step.d.ts +50 -0
- package/dist/core/step.d.ts.map +1 -0
- package/dist/core/step.js +1 -0
- package/dist/core/thought.d.ts +113 -0
- package/dist/core/thought.d.ts.map +1 -0
- package/dist/core/thought.js +1 -0
- package/dist/core/tools/InMemorySuspensionStore.d.ts +66 -0
- package/dist/core/tools/InMemorySuspensionStore.d.ts.map +1 -0
- package/dist/core/tools/InMemorySuspensionStore.js +121 -0
- package/dist/core/tools/InMemorySuspensionStore.js.map +1 -0
- package/dist/di/Container.d.ts +253 -0
- package/dist/di/Container.d.ts.map +1 -0
- package/dist/di/Container.js +111 -0
- package/dist/di/Container.js.map +1 -0
- package/dist/di/ServiceRegistry.d.ts +50 -0
- package/dist/di/ServiceRegistry.d.ts.map +1 -0
- package/dist/di/ServiceRegistry.js +1 -0
- package/dist/errors.d.ts +663 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +282 -0
- package/dist/errors.js.map +1 -0
- package/dist/health/HealthChecker.d.ts +73 -0
- package/dist/health/HealthChecker.d.ts.map +1 -0
- package/dist/health/HealthChecker.js +70 -0
- package/dist/health/HealthChecker.js.map +1 -0
- package/dist/lib.d.ts +273 -0
- package/dist/lib.d.ts.map +1 -0
- package/dist/lib.js +409 -0
- package/dist/lib.js.map +1 -0
- package/dist/logger/NullLogger.d.ts +154 -0
- package/dist/logger/NullLogger.d.ts.map +1 -0
- package/dist/logger/NullLogger.js +24 -0
- package/dist/logger/NullLogger.js.map +1 -0
- package/dist/logger/StructuredLogger.d.ts +327 -0
- package/dist/logger/StructuredLogger.d.ts.map +1 -0
- package/dist/logger/StructuredLogger.js +72 -0
- package/dist/logger/StructuredLogger.js.map +1 -0
- package/dist/metrics/metrics.impl.d.ts +252 -0
- package/dist/metrics/metrics.impl.d.ts.map +1 -0
- package/dist/metrics/metrics.impl.js +197 -0
- package/dist/metrics/metrics.impl.js.map +1 -0
- package/dist/persistence/FileLegacyImport.d.ts +2 -0
- package/dist/persistence/FileLegacyImport.d.ts.map +1 -0
- package/dist/persistence/FileLegacyImport.js +183 -0
- package/dist/persistence/FileLegacyImport.js.map +1 -0
- package/dist/persistence/FilePersistence.d.ts +53 -0
- package/dist/persistence/FilePersistence.d.ts.map +1 -0
- package/dist/persistence/FilePersistence.js +312 -0
- package/dist/persistence/FilePersistence.js.map +1 -0
- package/dist/persistence/FileSnapshotTypes.d.ts +29 -0
- package/dist/persistence/FileSnapshotTypes.d.ts.map +1 -0
- package/dist/persistence/FileSnapshotTypes.js +1 -0
- package/dist/persistence/FileSnapshotV2.d.ts +377 -0
- package/dist/persistence/FileSnapshotV2.d.ts.map +1 -0
- package/dist/persistence/FileSnapshotV2.js +124 -0
- package/dist/persistence/FileSnapshotV2.js.map +1 -0
- package/dist/persistence/FileSnapshotValidation.d.ts +15 -0
- package/dist/persistence/FileSnapshotValidation.d.ts.map +1 -0
- package/dist/persistence/FileSnapshotValidation.js +64 -0
- package/dist/persistence/FileSnapshotValidation.js.map +1 -0
- package/dist/persistence/FileWriter.d.ts +30 -0
- package/dist/persistence/FileWriter.d.ts.map +1 -0
- package/dist/persistence/FileWriter.js +155 -0
- package/dist/persistence/FileWriter.js.map +1 -0
- package/dist/persistence/MemoryPersistence.d.ts +45 -0
- package/dist/persistence/MemoryPersistence.d.ts.map +1 -0
- package/dist/persistence/MemoryPersistence.js +180 -0
- package/dist/persistence/MemoryPersistence.js.map +1 -0
- package/dist/persistence/PersistenceCodec.d.ts +7 -0
- package/dist/persistence/PersistenceCodec.d.ts.map +1 -0
- package/dist/persistence/PersistenceCodec.js +97 -0
- package/dist/persistence/PersistenceCodec.js.map +1 -0
- package/dist/persistence/PersistenceErrors.d.ts +23 -0
- package/dist/persistence/PersistenceErrors.d.ts.map +1 -0
- package/dist/persistence/PersistenceErrors.js +26 -0
- package/dist/persistence/PersistenceErrors.js.map +1 -0
- package/dist/persistence/PersistenceFactory.d.ts +21 -0
- package/dist/persistence/PersistenceFactory.d.ts.map +1 -0
- package/dist/persistence/PersistenceFactory.js +28 -0
- package/dist/persistence/PersistenceFactory.js.map +1 -0
- package/dist/persistence/PersistenceScope.d.ts +42 -0
- package/dist/persistence/PersistenceScope.d.ts.map +1 -0
- package/dist/persistence/PersistenceScope.js +93 -0
- package/dist/persistence/PersistenceScope.js.map +1 -0
- package/dist/persistence/SessionScopedPersistence.d.ts +4 -0
- package/dist/persistence/SessionScopedPersistence.d.ts.map +1 -0
- package/dist/persistence/SessionScopedPersistence.js +9 -0
- package/dist/persistence/SessionScopedPersistence.js.map +1 -0
- package/dist/persistence/SqliteDriver.d.ts +22 -0
- package/dist/persistence/SqliteDriver.d.ts.map +1 -0
- package/dist/persistence/SqliteDriver.js +29 -0
- package/dist/persistence/SqliteDriver.js.map +1 -0
- package/dist/persistence/SqliteLegacyImport.d.ts +14 -0
- package/dist/persistence/SqliteLegacyImport.d.ts.map +1 -0
- package/dist/persistence/SqliteLegacyImport.js +136 -0
- package/dist/persistence/SqliteLegacyImport.js.map +1 -0
- package/dist/persistence/SqliteLegacySchema.d.ts +15 -0
- package/dist/persistence/SqliteLegacySchema.d.ts.map +1 -0
- package/dist/persistence/SqliteLegacySchema.js +72 -0
- package/dist/persistence/SqliteLegacySchema.js.map +1 -0
- package/dist/persistence/SqlitePayload.d.ts +11 -0
- package/dist/persistence/SqlitePayload.d.ts.map +1 -0
- package/dist/persistence/SqlitePayload.js +86 -0
- package/dist/persistence/SqlitePayload.js.map +1 -0
- package/dist/persistence/SqlitePersistence.d.ts +49 -0
- package/dist/persistence/SqlitePersistence.d.ts.map +1 -0
- package/dist/persistence/SqlitePersistence.js +248 -0
- package/dist/persistence/SqlitePersistence.js.map +1 -0
- package/dist/persistence/SqliteSchemaV2.d.ts +14 -0
- package/dist/persistence/SqliteSchemaV2.d.ts.map +1 -0
- package/dist/persistence/SqliteSchemaV2.js +129 -0
- package/dist/persistence/SqliteSchemaV2.js.map +1 -0
- package/dist/persistence/SqliteSnapshotWriter.d.ts +17 -0
- package/dist/persistence/SqliteSnapshotWriter.d.ts.map +1 -0
- package/dist/persistence/SqliteSnapshotWriter.js +30 -0
- package/dist/persistence/SqliteSnapshotWriter.js.map +1 -0
- package/dist/pool/ConnectionPool.d.ts +203 -0
- package/dist/pool/ConnectionPool.d.ts.map +1 -0
- package/dist/pool/ConnectionPool.js +303 -0
- package/dist/pool/ConnectionPool.js.map +1 -0
- package/dist/pool/IConnectionPool.d.ts +143 -0
- package/dist/pool/IConnectionPool.d.ts.map +1 -0
- package/dist/pool/IConnectionPool.js +1 -0
- package/dist/pool/PoolErrors.d.ts +11 -0
- package/dist/pool/PoolErrors.d.ts.map +1 -0
- package/dist/pool/PoolErrors.js +16 -0
- package/dist/pool/PoolErrors.js.map +1 -0
- package/dist/registry/BaseRegistry.d.ts +219 -0
- package/dist/registry/BaseRegistry.d.ts.map +1 -0
- package/dist/registry/BaseRegistry.js +215 -0
- package/dist/registry/BaseRegistry.js.map +1 -0
- package/dist/registry/SkillRegistry.d.ts +67 -0
- package/dist/registry/SkillRegistry.d.ts.map +1 -0
- package/dist/registry/SkillRegistry.js +87 -0
- package/dist/registry/SkillRegistry.js.map +1 -0
- package/dist/registry/ToolRegistry.d.ts +70 -0
- package/dist/registry/ToolRegistry.d.ts.map +1 -0
- package/dist/registry/ToolRegistry.js +96 -0
- package/dist/registry/ToolRegistry.js.map +1 -0
- package/dist/sanitize.d.ts +164 -0
- package/dist/sanitize.d.ts.map +1 -0
- package/dist/sanitize.js +100 -0
- package/dist/sanitize.js.map +1 -0
- package/dist/schema.d.ts +562 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +251 -0
- package/dist/schema.js.map +1 -0
- package/dist/transport/BaseTransport.d.ts +166 -0
- package/dist/transport/BaseTransport.d.ts.map +1 -0
- package/dist/transport/BaseTransport.js +199 -0
- package/dist/transport/BaseTransport.js.map +1 -0
- package/dist/transport/HttpHelpers.d.ts +53 -0
- package/dist/transport/HttpHelpers.d.ts.map +1 -0
- package/dist/transport/HttpHelpers.js +44 -0
- package/dist/transport/HttpHelpers.js.map +1 -0
- package/dist/transport/HttpRequestLifecycle.d.ts +37 -0
- package/dist/transport/HttpRequestLifecycle.d.ts.map +1 -0
- package/dist/transport/HttpRequestLifecycle.js +87 -0
- package/dist/transport/HttpRequestLifecycle.js.map +1 -0
- package/dist/transport/HttpTransport.d.ts +140 -0
- package/dist/transport/HttpTransport.d.ts.map +1 -0
- package/dist/transport/HttpTransport.js +245 -0
- package/dist/transport/HttpTransport.js.map +1 -0
- package/dist/transport/SseTransport.d.ts +149 -0
- package/dist/transport/SseTransport.d.ts.map +1 -0
- package/dist/transport/SseTransport.js +470 -0
- package/dist/transport/SseTransport.js.map +1 -0
- package/dist/transport/StreamableHttpTransport.d.ts +225 -0
- package/dist/transport/StreamableHttpTransport.d.ts.map +1 -0
- package/dist/transport/StreamableHttpTransport.js +449 -0
- package/dist/transport/StreamableHttpTransport.js.map +1 -0
- package/dist/types/disposable.d.ts +22 -0
- package/dist/types/disposable.d.ts.map +1 -0
- package/dist/types/disposable.js +1 -0
- package/dist/types/server-config.d.ts +32 -0
- package/dist/types/server-config.d.ts.map +1 -0
- package/dist/types/server-config.js +1 -0
- package/dist/types/skill.d.ts +74 -0
- package/dist/types/skill.d.ts.map +1 -0
- package/dist/types/skill.js +1 -0
- package/dist/types/tool.d.ts +78 -0
- package/dist/types/tool.d.ts.map +1 -0
- package/dist/types/tool.js +1 -0
- package/dist/utils.d.ts +27 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +6 -0
- package/dist/utils.js.map +1 -0
- package/dist/watchers/SkillWatcher.d.ts +25 -0
- package/dist/watchers/SkillWatcher.d.ts.map +1 -0
- package/dist/watchers/SkillWatcher.js +96 -0
- package/dist/watchers/SkillWatcher.js.map +1 -0
- package/dist/watchers/ToolWatcher.d.ts +24 -0
- package/dist/watchers/ToolWatcher.d.ts.map +1 -0
- package/dist/watchers/ToolWatcher.js +92 -0
- package/dist/watchers/ToolWatcher.js.map +1 -0
- package/package.json +106 -0
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
import type { Logger } from '../logger/StructuredLogger.js';
|
|
2
|
+
import type { ServerConfig } from '../ServerConfig.js';
|
|
3
|
+
import type { ConfigFileOptions } from '../config/ConfigLoader.js';
|
|
4
|
+
import type { IDisposable } from '../types/disposable.js';
|
|
5
|
+
import type { ServiceKey, ServiceRegistry } from './ServiceRegistry.js';
|
|
6
|
+
/**
|
|
7
|
+
* Lightweight dependency injection container for managing service dependencies.
|
|
8
|
+
*
|
|
9
|
+
* This container supports:
|
|
10
|
+
* - Instance registration (singleton-like behavior)
|
|
11
|
+
* - Factory registration (lazy instantiation with caching)
|
|
12
|
+
* - Transient factory registration (new instance each time)
|
|
13
|
+
*
|
|
14
|
+
* The container is type-safe when using ServiceKey from ServiceRegistry.
|
|
15
|
+
* For dynamic/unknown services, use string keys with generic type parameters.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const container = new Container();
|
|
20
|
+
*
|
|
21
|
+
* // Type-safe registration with ServiceKey (recommended)
|
|
22
|
+
* container.registerInstance('Logger', new StructuredLogger());
|
|
23
|
+
*
|
|
24
|
+
* // Type inference works automatically
|
|
25
|
+
* const logger = container.resolve('Logger'); // Type: StructuredLogger
|
|
26
|
+
*
|
|
27
|
+
* // Register a factory with caching (singleton per container)
|
|
28
|
+
* container.register('HistoryManager', () =>
|
|
29
|
+
* new HistoryManager({ logger: container.resolve('Logger') })
|
|
30
|
+
* );
|
|
31
|
+
*
|
|
32
|
+
* // Register a transient factory (new instance each time)
|
|
33
|
+
* container.registerFactory('RequestContext', () =>
|
|
34
|
+
* new RequestContext()
|
|
35
|
+
* );
|
|
36
|
+
*
|
|
37
|
+
* // For dynamic services not in ServiceRegistry, use the escape hatch
|
|
38
|
+
* container.registerDynamicInstance('MyService', myService);
|
|
39
|
+
* const service = container.resolveDynamic('MyService') as MyService;
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export declare class Container {
|
|
43
|
+
private _services;
|
|
44
|
+
private _factories;
|
|
45
|
+
private _transientFactories;
|
|
46
|
+
private _resolving;
|
|
47
|
+
private _disposables;
|
|
48
|
+
/**
|
|
49
|
+
* Register a singleton instance that will be returned for all resolutions.
|
|
50
|
+
*
|
|
51
|
+
* @param name - The unique name/identifier for the service
|
|
52
|
+
* @param instance - The instance to register
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* container.registerInstance('Config', new ServerConfig({ ... }));
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
registerInstance<K extends ServiceKey>(name: K, instance: ServiceRegistry[K]): void;
|
|
60
|
+
/**
|
|
61
|
+
* Register a factory function that will be called once and cached.
|
|
62
|
+
* The first call to `resolve` will invoke the factory and cache the result.
|
|
63
|
+
* Subsequent calls will return the cached instance (singleton behavior).
|
|
64
|
+
*
|
|
65
|
+
* @param name - The unique name/identifier for the service
|
|
66
|
+
* @param factory - A factory function that creates the service
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* container.register('HistoryManager', () =>
|
|
71
|
+
* new HistoryManager({ logger: container.resolve('Logger') })
|
|
72
|
+
* );
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
register<K extends ServiceKey>(name: K, factory: () => ServiceRegistry[K]): void;
|
|
76
|
+
/**
|
|
77
|
+
* Register a transient factory function that will be called on every resolution.
|
|
78
|
+
* Each call to `resolve` will invoke the factory and return a new instance.
|
|
79
|
+
*
|
|
80
|
+
* @param name - The unique name/identifier for the service
|
|
81
|
+
* @param factory - A factory function that creates the service
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```typescript
|
|
85
|
+
* container.registerFactory('RequestContext', () =>
|
|
86
|
+
* new RequestContext()
|
|
87
|
+
* );
|
|
88
|
+
* ```
|
|
89
|
+
*/
|
|
90
|
+
registerFactory<K extends ServiceKey>(name: K, factory: () => ServiceRegistry[K]): void;
|
|
91
|
+
/**
|
|
92
|
+
* Resolve a service by name.
|
|
93
|
+
*
|
|
94
|
+
* Resolution order:
|
|
95
|
+
* 1. If a registered instance exists, return it
|
|
96
|
+
* 2. If a cached factory exists, return it
|
|
97
|
+
* 3. If a factory exists, invoke it, cache the result, and return it
|
|
98
|
+
* 4. If a transient factory exists, invoke it and return a new instance
|
|
99
|
+
* 5. Throw an error if the service is not found
|
|
100
|
+
*
|
|
101
|
+
* @param name - The name/identifier of service to resolve
|
|
102
|
+
* @returns The resolved service instance
|
|
103
|
+
* @throws {Error} If the service is not registered
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* ```typescript
|
|
107
|
+
* // Type-safe: ServiceRegistry provides autocomplete
|
|
108
|
+
* const logger = container.resolve('Logger'); // Type: StructuredLogger
|
|
109
|
+
* const config = container.resolve('Config'); // Type: ServerConfig
|
|
110
|
+
* ```
|
|
111
|
+
*/
|
|
112
|
+
resolve<K extends ServiceKey>(name: K): ServiceRegistry[K];
|
|
113
|
+
/**
|
|
114
|
+
* Resolve a service by name with an `unknown` return type.
|
|
115
|
+
* Use this when the service key is not in ServiceRegistry.
|
|
116
|
+
*
|
|
117
|
+
* @param name - The name/identifier of the service
|
|
118
|
+
* @returns The service instance as `unknown` — caller must narrow
|
|
119
|
+
*/
|
|
120
|
+
resolveDynamic(name: string): unknown;
|
|
121
|
+
/**
|
|
122
|
+
* Register a factory for a service key not present in `ServiceRegistry`.
|
|
123
|
+
* Use this for runtime-keyed registrations that cannot be expressed as typed services.
|
|
124
|
+
*
|
|
125
|
+
* @param name - Arbitrary string key
|
|
126
|
+
* @param factory - Factory returning the dynamic instance
|
|
127
|
+
*/
|
|
128
|
+
registerDynamic(name: string, factory: () => unknown): void;
|
|
129
|
+
/**
|
|
130
|
+
* Register a singleton instance for a service key not present in `ServiceRegistry`.
|
|
131
|
+
*
|
|
132
|
+
* @param name - Arbitrary string key
|
|
133
|
+
* @param instance - The instance to register
|
|
134
|
+
*/
|
|
135
|
+
registerDynamicInstance(name: string, instance: unknown): void;
|
|
136
|
+
/**
|
|
137
|
+
* Register a transient factory for a service key not present in `ServiceRegistry`.
|
|
138
|
+
* Each `resolveDynamic` call invokes the factory and returns a new instance.
|
|
139
|
+
*
|
|
140
|
+
* @param name - Arbitrary string key
|
|
141
|
+
* @param factory - Factory returning a new instance per call
|
|
142
|
+
*/
|
|
143
|
+
registerDynamicFactory(name: string, factory: () => unknown): void;
|
|
144
|
+
/**
|
|
145
|
+
* Check if a service is registered (either as instance or factory).
|
|
146
|
+
*
|
|
147
|
+
* @param name - The name/identifier of the service to check
|
|
148
|
+
* @returns `true` if the service is registered, `false` otherwise
|
|
149
|
+
*
|
|
150
|
+
* @example
|
|
151
|
+
* ```typescript
|
|
152
|
+
* if (!container.has('Logger')) {
|
|
153
|
+
* container.registerInstance('Logger', new StructuredLogger());
|
|
154
|
+
* }
|
|
155
|
+
* ```
|
|
156
|
+
*/
|
|
157
|
+
has(name: string): boolean;
|
|
158
|
+
/**
|
|
159
|
+
* Remove a registered service from the container.
|
|
160
|
+
*
|
|
161
|
+
* @param name - The name/identifier of the service to unregister
|
|
162
|
+
* @returns `true` if the service was found and removed, `false` otherwise
|
|
163
|
+
*
|
|
164
|
+
* @example
|
|
165
|
+
* ```typescript
|
|
166
|
+
* container.unregister('HistoryManager');
|
|
167
|
+
* ```
|
|
168
|
+
*/
|
|
169
|
+
unregister(name: string): boolean;
|
|
170
|
+
/**
|
|
171
|
+
* Clear all registered services and factories from the container.
|
|
172
|
+
*
|
|
173
|
+
* @example
|
|
174
|
+
* ```typescript
|
|
175
|
+
* container.clear();
|
|
176
|
+
* ```
|
|
177
|
+
*/
|
|
178
|
+
clear(): void;
|
|
179
|
+
/**
|
|
180
|
+
* Get the number of registered services (including instances, factories, and transient factories).
|
|
181
|
+
*
|
|
182
|
+
* @returns The total count of registered services
|
|
183
|
+
*
|
|
184
|
+
* @example
|
|
185
|
+
* ```typescript
|
|
186
|
+
* console.log(`Registered services: ${container.size}`);
|
|
187
|
+
* ```
|
|
188
|
+
*/
|
|
189
|
+
get size(): number;
|
|
190
|
+
/**
|
|
191
|
+
* Get an array of all registered service names.
|
|
192
|
+
*
|
|
193
|
+
* @returns An array of service names
|
|
194
|
+
*
|
|
195
|
+
* @example
|
|
196
|
+
* ```typescript
|
|
197
|
+
* const names = container.registeredServices();
|
|
198
|
+
* console.log('Registered:', names.join(', '));
|
|
199
|
+
* ```
|
|
200
|
+
*/
|
|
201
|
+
registeredServices(): string[];
|
|
202
|
+
/**
|
|
203
|
+
* Register an instance as disposable for lifecycle management.
|
|
204
|
+
* The instance will have its `dispose()` method called when the container is disposed.
|
|
205
|
+
*
|
|
206
|
+
* @param name - The service name (must already be registered)
|
|
207
|
+
* @param instance - The disposable instance to track
|
|
208
|
+
*
|
|
209
|
+
* @example
|
|
210
|
+
* ```typescript
|
|
211
|
+
* const pool = new ConnectionPool();
|
|
212
|
+
* container.registerInstance('ConnectionPool', pool);
|
|
213
|
+
* container.registerDisposable('ConnectionPool', pool);
|
|
214
|
+
* ```
|
|
215
|
+
*/
|
|
216
|
+
registerDisposable(name: string, instance: IDisposable): void;
|
|
217
|
+
/**
|
|
218
|
+
* Dispose of all registered disposable services.
|
|
219
|
+
* Calls `dispose()` on each registered disposable in reverse registration order.
|
|
220
|
+
* Errors during individual disposal are caught and logged to prevent cascading failures.
|
|
221
|
+
*
|
|
222
|
+
* @example
|
|
223
|
+
* ```typescript
|
|
224
|
+
* await container.dispose();
|
|
225
|
+
* ```
|
|
226
|
+
*/
|
|
227
|
+
dispose(): Promise<void>;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Create a pre-configured container with all default services registered.
|
|
231
|
+
*
|
|
232
|
+
* This factory function creates a container with all standard services
|
|
233
|
+
* for the ToolAwareSequentialThinkingServer.
|
|
234
|
+
*
|
|
235
|
+
* @param options - Configuration options for the container
|
|
236
|
+
* @returns A configured container ready to use
|
|
237
|
+
*
|
|
238
|
+
* @example
|
|
239
|
+
* ```typescript
|
|
240
|
+
* const container = createDefaultContainer({
|
|
241
|
+
* logger: customLogger,
|
|
242
|
+
* config: customConfig
|
|
243
|
+
* });
|
|
244
|
+
* const server = new ToolAwareSequentialThinkingServer({ container });
|
|
245
|
+
* ```
|
|
246
|
+
*/
|
|
247
|
+
export interface CreateContainerOptions {
|
|
248
|
+
logger?: Logger;
|
|
249
|
+
config?: ServerConfig;
|
|
250
|
+
fileConfig?: ConfigFileOptions;
|
|
251
|
+
}
|
|
252
|
+
export declare function createDefaultContainer(options?: CreateContainerOptions): Container;
|
|
253
|
+
//# sourceMappingURL=Container.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Container.d.ts","sourceRoot":"","sources":["../../src/di/Container.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAoB,MAAM,+BAA+B,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAExE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,qBAAa,SAAS;IACrB,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,UAAU,CAAyC;IAC3D,OAAO,CAAC,mBAAmB,CAAyC;IACpE,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,YAAY,CAAuC;IAE3D;;;;;;;;;;OAUG;IACH,gBAAgB,CAAC,CAAC,SAAS,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI;IAYnF;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,CAAC,SAAS,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI;IAYhF;;;;;;;;;;;;;OAaG;IACH,eAAe,CAAC,CAAC,SAAS,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI;IAYvF;;;;;;;;;;;;;;;;;;;;GAoBE;IACF,OAAO,CAAC,CAAC,SAAS,UAAU,EAAE,IAAI,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAoC1D;;;;;;OAMG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC;;;;;;OAMG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,GAAG,IAAI;IAW3D;;;;;OAKG;IACH,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAW9D;;;;;;OAMG;IACH,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,GAAG,IAAI;IAWlE;;;;;;;;;;;;OAYG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAM1B;;;;;;;;;;OAUG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQjC;;;;;;;OAOG;IACH,KAAK,IAAI,IAAI;IAQb;;;;;;;;;OASG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;;;;;;;OAUG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAQ9B;;;;;;;;;;;;;OAaG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI;IAI7D;;;;;;;;;OASG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAqB9B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,sBAAsB;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,UAAU,CAAC,EAAE,iBAAiB,CAAC;CAC/B;AAED,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,sBAA2B,GAAG,SAAS,CActF"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
class Container {
|
|
2
|
+
_services = new Map();
|
|
3
|
+
_factories = new Map();
|
|
4
|
+
_transientFactories = new Map();
|
|
5
|
+
_resolving = new Set();
|
|
6
|
+
_disposables = new Map();
|
|
7
|
+
registerInstance(name, instance) {
|
|
8
|
+
if (this._services.has(name) || this._factories.has(name) || this._transientFactories.has(name)) throw new Error(`Service '${name}' is already registered`);
|
|
9
|
+
this._services.set(name, instance);
|
|
10
|
+
}
|
|
11
|
+
register(name, factory) {
|
|
12
|
+
if (this._services.has(name) || this._factories.has(name) || this._transientFactories.has(name)) throw new Error(`Service '${name}' is already registered`);
|
|
13
|
+
this._factories.set(name, factory);
|
|
14
|
+
}
|
|
15
|
+
registerFactory(name, factory) {
|
|
16
|
+
if (this._services.has(name) || this._factories.has(name) || this._transientFactories.has(name)) throw new Error(`Service '${name}' is already registered`);
|
|
17
|
+
this._transientFactories.set(name, factory);
|
|
18
|
+
}
|
|
19
|
+
resolve(name) {
|
|
20
|
+
if (this._resolving.has(name)) throw new Error(`Circular dependency detected while resolving service: ${name}`);
|
|
21
|
+
this._resolving.add(name);
|
|
22
|
+
try {
|
|
23
|
+
if (this._services.has(name)) return this._services.get(name);
|
|
24
|
+
if (this._factories.has(name)) {
|
|
25
|
+
const factory = this._factories.get(name);
|
|
26
|
+
const instance = factory();
|
|
27
|
+
this._services.set(name, instance);
|
|
28
|
+
this._factories.delete(name);
|
|
29
|
+
return instance;
|
|
30
|
+
}
|
|
31
|
+
if (this._transientFactories.has(name)) {
|
|
32
|
+
const factory = this._transientFactories.get(name);
|
|
33
|
+
return factory();
|
|
34
|
+
}
|
|
35
|
+
throw new Error(`Service not found: ${name}. Did you forget to register it?`);
|
|
36
|
+
} finally{
|
|
37
|
+
this._resolving.delete(name);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
resolveDynamic(name) {
|
|
41
|
+
return this.resolve(name);
|
|
42
|
+
}
|
|
43
|
+
registerDynamic(name, factory) {
|
|
44
|
+
if (this._services.has(name) || this._factories.has(name) || this._transientFactories.has(name)) throw new Error(`Service '${name}' is already registered`);
|
|
45
|
+
this._factories.set(name, factory);
|
|
46
|
+
}
|
|
47
|
+
registerDynamicInstance(name, instance) {
|
|
48
|
+
if (this._services.has(name) || this._factories.has(name) || this._transientFactories.has(name)) throw new Error(`Service '${name}' is already registered`);
|
|
49
|
+
this._services.set(name, instance);
|
|
50
|
+
}
|
|
51
|
+
registerDynamicFactory(name, factory) {
|
|
52
|
+
if (this._services.has(name) || this._factories.has(name) || this._transientFactories.has(name)) throw new Error(`Service '${name}' is already registered`);
|
|
53
|
+
this._transientFactories.set(name, factory);
|
|
54
|
+
}
|
|
55
|
+
has(name) {
|
|
56
|
+
return this._services.has(name) || this._factories.has(name) || this._transientFactories.has(name);
|
|
57
|
+
}
|
|
58
|
+
unregister(name) {
|
|
59
|
+
const hadInstance = this._services.delete(name);
|
|
60
|
+
const hadFactory = this._factories.delete(name);
|
|
61
|
+
const hadTransient = this._transientFactories.delete(name);
|
|
62
|
+
this._disposables.delete(name);
|
|
63
|
+
return hadInstance || hadFactory || hadTransient;
|
|
64
|
+
}
|
|
65
|
+
clear() {
|
|
66
|
+
this._services.clear();
|
|
67
|
+
this._factories.clear();
|
|
68
|
+
this._transientFactories.clear();
|
|
69
|
+
this._resolving.clear();
|
|
70
|
+
this._disposables.clear();
|
|
71
|
+
}
|
|
72
|
+
get size() {
|
|
73
|
+
return this._services.size + this._factories.size + this._transientFactories.size;
|
|
74
|
+
}
|
|
75
|
+
registeredServices() {
|
|
76
|
+
const names = new Set();
|
|
77
|
+
for (const name of this._services.keys())names.add(name);
|
|
78
|
+
for (const name of this._factories.keys())names.add(name);
|
|
79
|
+
for (const name of this._transientFactories.keys())names.add(name);
|
|
80
|
+
return Array.from(names);
|
|
81
|
+
}
|
|
82
|
+
registerDisposable(name, instance) {
|
|
83
|
+
this._disposables.set(name, instance);
|
|
84
|
+
}
|
|
85
|
+
async dispose() {
|
|
86
|
+
const entries = Array.from(this._disposables.entries()).reverse();
|
|
87
|
+
const errors = [];
|
|
88
|
+
for (const [name, disposable] of entries)try {
|
|
89
|
+
await disposable.dispose();
|
|
90
|
+
} catch (error) {
|
|
91
|
+
errors.push({
|
|
92
|
+
name,
|
|
93
|
+
error
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
this._disposables.clear();
|
|
97
|
+
if (errors.length > 0) {
|
|
98
|
+
const messages = errors.map((e)=>`${e.name}: ${e.error instanceof Error ? e.error.message : String(e.error)}`);
|
|
99
|
+
throw new Error(`Failed to dispose services: ${messages.join(', ')}`);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
function createDefaultContainer(options = {}) {
|
|
104
|
+
const container = new Container();
|
|
105
|
+
if (options.logger) container.registerInstance('Logger', options.logger);
|
|
106
|
+
if (options.config) container.registerInstance('Config', options.config);
|
|
107
|
+
return container;
|
|
108
|
+
}
|
|
109
|
+
export { Container, createDefaultContainer };
|
|
110
|
+
|
|
111
|
+
//# sourceMappingURL=Container.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"di/Container.js","sources":["../../src/di/Container.ts"],"sourcesContent":["import type { Logger, StructuredLogger } from '../logger/StructuredLogger.js';\nimport type { ServerConfig } from '../ServerConfig.js';\nimport type { ConfigFileOptions } from '../config/ConfigLoader.js';\n\nimport type { IDisposable } from '../types/disposable.js';\nimport type { ServiceKey, ServiceRegistry } from './ServiceRegistry.js';\n\n/**\n * Lightweight dependency injection container for managing service dependencies.\n *\n * This container supports:\n * - Instance registration (singleton-like behavior)\n * - Factory registration (lazy instantiation with caching)\n * - Transient factory registration (new instance each time)\n *\n * The container is type-safe when using ServiceKey from ServiceRegistry.\n * For dynamic/unknown services, use string keys with generic type parameters.\n *\n * @example\n * ```typescript\n * const container = new Container();\n *\n * // Type-safe registration with ServiceKey (recommended)\n * container.registerInstance('Logger', new StructuredLogger());\n *\n * // Type inference works automatically\n * const logger = container.resolve('Logger'); // Type: StructuredLogger\n *\n * // Register a factory with caching (singleton per container)\n * container.register('HistoryManager', () =>\n * new HistoryManager({ logger: container.resolve('Logger') })\n * );\n *\n * // Register a transient factory (new instance each time)\n * container.registerFactory('RequestContext', () =>\n * new RequestContext()\n * );\n *\n * // For dynamic services not in ServiceRegistry, use the escape hatch\n * container.registerDynamicInstance('MyService', myService);\n * const service = container.resolveDynamic('MyService') as MyService;\n * ```\n */\nexport class Container {\n\tprivate _services: Map<string, unknown> = new Map();\n\tprivate _factories: Map<string, () => unknown> = new Map();\n\tprivate _transientFactories: Map<string, () => unknown> = new Map();\n\tprivate _resolving: Set<string> = new Set();\n\tprivate _disposables: Map<string, IDisposable> = new Map();\n\n\t/**\n\t * Register a singleton instance that will be returned for all resolutions.\n\t *\n\t * @param name - The unique name/identifier for the service\n\t * @param instance - The instance to register\n\t *\n\t * @example\n\t * ```typescript\n\t * container.registerInstance('Config', new ServerConfig({ ... }));\n\t * ```\n\t */\n\tregisterInstance<K extends ServiceKey>(name: K, instance: ServiceRegistry[K]): void;\n\tregisterInstance(name: string, instance: unknown): void {\n\t\tif (\n\t\t\tthis._services.has(name) ||\n\t\t\tthis._factories.has(name) ||\n\t\t\tthis._transientFactories.has(name)\n\t\t) {\n\t\t\tthrow new Error(`Service '${name}' is already registered`);\n\t\t}\n\t\tthis._services.set(name, instance);\n\t}\n\n\t/**\n\t * Register a factory function that will be called once and cached.\n\t * The first call to `resolve` will invoke the factory and cache the result.\n\t * Subsequent calls will return the cached instance (singleton behavior).\n\t *\n\t * @param name - The unique name/identifier for the service\n\t * @param factory - A factory function that creates the service\n\t *\n\t * @example\n\t * ```typescript\n\t * container.register('HistoryManager', () =>\n\t * new HistoryManager({ logger: container.resolve('Logger') })\n\t * );\n\t * ```\n\t */\n\tregister<K extends ServiceKey>(name: K, factory: () => ServiceRegistry[K]): void;\n\tregister(name: string, factory: () => unknown): void {\n\t\tif (\n\t\t\tthis._services.has(name) ||\n\t\t\tthis._factories.has(name) ||\n\t\t\tthis._transientFactories.has(name)\n\t\t) {\n\t\t\tthrow new Error(`Service '${name}' is already registered`);\n\t\t}\n\t\tthis._factories.set(name, factory);\n\t}\n\n\t/**\n\t * Register a transient factory function that will be called on every resolution.\n\t * Each call to `resolve` will invoke the factory and return a new instance.\n\t *\n\t * @param name - The unique name/identifier for the service\n\t * @param factory - A factory function that creates the service\n\t *\n\t * @example\n\t * ```typescript\n\t * container.registerFactory('RequestContext', () =>\n\t * new RequestContext()\n\t * );\n\t * ```\n\t */\n\tregisterFactory<K extends ServiceKey>(name: K, factory: () => ServiceRegistry[K]): void;\n\tregisterFactory(name: string, factory: () => unknown): void {\n\t\tif (\n\t\t\tthis._services.has(name) ||\n\t\t\tthis._factories.has(name) ||\n\t\t\tthis._transientFactories.has(name)\n\t\t) {\n\t\t\tthrow new Error(`Service '${name}' is already registered`);\n\t\t}\n\t\tthis._transientFactories.set(name, factory);\n\t}\n\n\t/**\n\t * Resolve a service by name.\n\t *\n\t * Resolution order:\n\t * 1. If a registered instance exists, return it\n\t * 2. If a cached factory exists, return it\n\t * 3. If a factory exists, invoke it, cache the result, and return it\n\t * 4. If a transient factory exists, invoke it and return a new instance\n\t * 5. Throw an error if the service is not found\n\t *\n\t * @param name - The name/identifier of service to resolve\n\t * @returns The resolved service instance\n\t * @throws {Error} If the service is not registered\n\t *\n\t * @example\n\t * ```typescript\n\t * // Type-safe: ServiceRegistry provides autocomplete\n\t * const logger = container.resolve('Logger'); // Type: StructuredLogger\n\t * const config = container.resolve('Config'); // Type: ServerConfig\n * ```\n */\n\tresolve<K extends ServiceKey>(name: K): ServiceRegistry[K];\n\tresolve(name: string): unknown {\n\t\tif (this._resolving.has(name)) {\n\t\t\tthrow new Error(`Circular dependency detected while resolving service: ${name}`);\n\t\t}\n\n\t\tthis._resolving.add(name);\n\n\t\ttry {\n\t\t\t// Check for registered instance first\n\t\t\tif (this._services.has(name)) {\n\t\t\t\treturn this._services.get(name);\n\t\t\t}\n\n\t\t\t// Check for cached factory result\n\t\t\tif (this._factories.has(name)) {\n\t\t\t\tconst factory = this._factories.get(name)!;\n\t\t\t\tconst instance = factory();\n\t\t\t\t// Cache the result for future calls (singleton behavior)\n\t\t\t\tthis._services.set(name, instance);\n\t\t\t\tthis._factories.delete(name);\n\t\t\t\treturn instance;\n\t\t\t}\n\n\t\t\t// Check for transient factory (call every time)\n\t\t\tif (this._transientFactories.has(name)) {\n\t\t\t\tconst factory = this._transientFactories.get(name)!;\n\t\t\t\treturn factory();\n\t\t\t}\n\n\t\t\tthrow new Error(`Service not found: ${name}. Did you forget to register it?`);\n\t\t} finally {\n\t\t\tthis._resolving.delete(name);\n\t\t}\n\t}\n\n\t/**\n\t * Resolve a service by name with an `unknown` return type.\n\t * Use this when the service key is not in ServiceRegistry.\n\t *\n\t * @param name - The name/identifier of the service\n\t * @returns The service instance as `unknown` — caller must narrow\n\t */\n\tresolveDynamic(name: string): unknown {\n\t\treturn this.resolve(name as never);\n\t}\n\n\t/**\n\t * Register a factory for a service key not present in `ServiceRegistry`.\n\t * Use this for runtime-keyed registrations that cannot be expressed as typed services.\n\t *\n\t * @param name - Arbitrary string key\n\t * @param factory - Factory returning the dynamic instance\n\t */\n\tregisterDynamic(name: string, factory: () => unknown): void {\n\t\tif (\n\t\t\tthis._services.has(name) ||\n\t\t\tthis._factories.has(name) ||\n\t\t\tthis._transientFactories.has(name)\n\t\t) {\n\t\t\tthrow new Error(`Service '${name}' is already registered`);\n\t\t}\n\t\tthis._factories.set(name, factory);\n\t}\n\n\t/**\n\t * Register a singleton instance for a service key not present in `ServiceRegistry`.\n\t *\n\t * @param name - Arbitrary string key\n\t * @param instance - The instance to register\n\t */\n\tregisterDynamicInstance(name: string, instance: unknown): void {\n\t\tif (\n\t\t\tthis._services.has(name) ||\n\t\t\tthis._factories.has(name) ||\n\t\t\tthis._transientFactories.has(name)\n\t\t) {\n\t\t\tthrow new Error(`Service '${name}' is already registered`);\n\t\t}\n\t\tthis._services.set(name, instance);\n\t}\n\n\t/**\n\t * Register a transient factory for a service key not present in `ServiceRegistry`.\n\t * Each `resolveDynamic` call invokes the factory and returns a new instance.\n\t *\n\t * @param name - Arbitrary string key\n\t * @param factory - Factory returning a new instance per call\n\t */\n\tregisterDynamicFactory(name: string, factory: () => unknown): void {\n\t\tif (\n\t\t\tthis._services.has(name) ||\n\t\t\tthis._factories.has(name) ||\n\t\t\tthis._transientFactories.has(name)\n\t\t) {\n\t\t\tthrow new Error(`Service '${name}' is already registered`);\n\t\t}\n\t\tthis._transientFactories.set(name, factory);\n\t}\n\n\t/**\n\t * Check if a service is registered (either as instance or factory).\n\t *\n\t * @param name - The name/identifier of the service to check\n\t * @returns `true` if the service is registered, `false` otherwise\n\t *\n\t * @example\n\t * ```typescript\n\t * if (!container.has('Logger')) {\n\t * container.registerInstance('Logger', new StructuredLogger());\n\t * }\n\t * ```\n\t */\n\thas(name: string): boolean {\n\t\treturn (\n\t\t\tthis._services.has(name) || this._factories.has(name) || this._transientFactories.has(name)\n\t\t);\n\t}\n\n\t/**\n\t * Remove a registered service from the container.\n\t *\n\t * @param name - The name/identifier of the service to unregister\n\t * @returns `true` if the service was found and removed, `false` otherwise\n\t *\n\t * @example\n\t * ```typescript\n\t * container.unregister('HistoryManager');\n\t * ```\n\t */\n\tunregister(name: string): boolean {\n\t\tconst hadInstance = this._services.delete(name);\n\t\tconst hadFactory = this._factories.delete(name);\n\t\tconst hadTransient = this._transientFactories.delete(name);\n\t\tthis._disposables.delete(name);\n\t\treturn hadInstance || hadFactory || hadTransient;\n\t}\n\n\t/**\n\t * Clear all registered services and factories from the container.\n\t *\n\t * @example\n\t * ```typescript\n\t * container.clear();\n\t * ```\n\t */\n\tclear(): void {\n\t\tthis._services.clear();\n\t\tthis._factories.clear();\n\t\tthis._transientFactories.clear();\n\t\tthis._resolving.clear();\n\t\tthis._disposables.clear();\n\t}\n\n\t/**\n\t * Get the number of registered services (including instances, factories, and transient factories).\n\t *\n\t * @returns The total count of registered services\n\t *\n\t * @example\n\t * ```typescript\n\t * console.log(`Registered services: ${container.size}`);\n\t * ```\n\t */\n\tget size(): number {\n\t\treturn this._services.size + this._factories.size + this._transientFactories.size;\n\t}\n\n\t/**\n\t * Get an array of all registered service names.\n\t *\n\t * @returns An array of service names\n\t *\n\t * @example\n\t * ```typescript\n\t * const names = container.registeredServices();\n\t * console.log('Registered:', names.join(', '));\n\t * ```\n\t */\n\tregisteredServices(): string[] {\n\t\tconst names = new Set<string>();\n\t\tfor (const name of this._services.keys()) names.add(name);\n\t\tfor (const name of this._factories.keys()) names.add(name);\n\t\tfor (const name of this._transientFactories.keys()) names.add(name);\n\t\treturn Array.from(names);\n\t}\n\n\t/**\n\t * Register an instance as disposable for lifecycle management.\n\t * The instance will have its `dispose()` method called when the container is disposed.\n\t *\n\t * @param name - The service name (must already be registered)\n\t * @param instance - The disposable instance to track\n\t *\n\t * @example\n\t * ```typescript\n\t * const pool = new ConnectionPool();\n\t * container.registerInstance('ConnectionPool', pool);\n\t * container.registerDisposable('ConnectionPool', pool);\n\t * ```\n\t */\n\tregisterDisposable(name: string, instance: IDisposable): void {\n\t\tthis._disposables.set(name, instance);\n\t}\n\n\t/**\n\t * Dispose of all registered disposable services.\n\t * Calls `dispose()` on each registered disposable in reverse registration order.\n\t * Errors during individual disposal are caught and logged to prevent cascading failures.\n\t *\n\t * @example\n\t * ```typescript\n\t * await container.dispose();\n\t * ```\n\t */\n\tasync dispose(): Promise<void> {\n\t\tconst entries = Array.from(this._disposables.entries()).reverse();\n\t\tconst errors: Array<{ name: string; error: unknown }> = [];\n\n\t\tfor (const [name, disposable] of entries) {\n\t\t\ttry {\n\t\t\t\tawait disposable.dispose();\n\t\t\t} catch (error) {\n\t\t\t\terrors.push({ name, error });\n\t\t\t}\n\t\t}\n\n\t\tthis._disposables.clear();\n\n\t\tif (errors.length > 0) {\n\t\t\tconst messages = errors.map(\n\t\t\t\t(e) => `${e.name}: ${e.error instanceof Error ? e.error.message : String(e.error)}`\n\t\t\t);\n\t\t\tthrow new Error(`Failed to dispose services: ${messages.join(', ')}`);\n\t\t}\n\t}\n}\n\n/**\n * Create a pre-configured container with all default services registered.\n *\n * This factory function creates a container with all standard services\n * for the ToolAwareSequentialThinkingServer.\n *\n * @param options - Configuration options for the container\n * @returns A configured container ready to use\n *\n * @example\n * ```typescript\n * const container = createDefaultContainer({\n * logger: customLogger,\n * config: customConfig\n * });\n * const server = new ToolAwareSequentialThinkingServer({ container });\n * ```\n */\nexport interface CreateContainerOptions {\n\tlogger?: Logger;\n\tconfig?: ServerConfig;\n\tfileConfig?: ConfigFileOptions;\n}\n\nexport function createDefaultContainer(options: CreateContainerOptions = {}): Container {\n\tconst container = new Container();\n\n\t// Register logger if provided\n\tif (options.logger) {\n\t\tcontainer.registerInstance('Logger', options.logger as StructuredLogger);\n\t}\n\n\t// Register config if provided\n\tif (options.config) {\n\t\tcontainer.registerInstance('Config', options.config);\n\t}\n\n\treturn container;\n}\n"],"names":["Container","Map","Set","name","instance","Error","factory","hadInstance","hadFactory","hadTransient","names","Array","entries","errors","disposable","error","messages","e","String","createDefaultContainer","options","container"],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service registry type definitions for the DI container.
|
|
3
|
+
*
|
|
4
|
+
* Maps service keys to their concrete types for type-safe resolution.
|
|
5
|
+
* Interface types are imported from contracts/ to reduce coupling.
|
|
6
|
+
* Concrete types are imported only where needed for DI resolution.
|
|
7
|
+
*/
|
|
8
|
+
import type { PersistenceBackend } from '../contracts/PersistenceBackend.js';
|
|
9
|
+
import type { HistoryManager } from '../core/HistoryManager.js';
|
|
10
|
+
import type { EdgeStore } from '../core/graph/EdgeStore.js';
|
|
11
|
+
import type { ICalibrator } from '../contracts/calibrator.js';
|
|
12
|
+
import type { IOutcomeRecorder, ISessionLock } from '../contracts/interfaces.js';
|
|
13
|
+
import type { IReasoningStrategy } from '../contracts/strategy.js';
|
|
14
|
+
import type { ThoughtEvaluator } from '../core/ThoughtEvaluator.js';
|
|
15
|
+
import type { IThoughtFormatter } from '../core/IThoughtFormatter.js';
|
|
16
|
+
import type { ThoughtProcessor } from '../core/ThoughtProcessor.js';
|
|
17
|
+
import type { StructuredLogger } from '../logger/StructuredLogger.js';
|
|
18
|
+
import type { Metrics } from '../metrics/metrics.impl.js';
|
|
19
|
+
import type { SkillRegistry } from '../registry/SkillRegistry.js';
|
|
20
|
+
import type { ToolRegistry } from '../registry/ToolRegistry.js';
|
|
21
|
+
import type { ServerConfig } from '../ServerConfig.js';
|
|
22
|
+
import type { ISummaryStore } from '../contracts/summary.js';
|
|
23
|
+
import type { CompressionService } from '../core/compression/CompressionService.js';
|
|
24
|
+
import type { ISuspensionStore } from '../contracts/suspension.js';
|
|
25
|
+
import type { ConfigFileOptions } from '../config/ConfigLoader.js';
|
|
26
|
+
import type { SessionLifecycleCoordinator } from '../core/SessionLifecycleCoordinator.js';
|
|
27
|
+
export interface ServiceRegistry {
|
|
28
|
+
Logger: StructuredLogger;
|
|
29
|
+
Config: ServerConfig;
|
|
30
|
+
FileConfig: ConfigFileOptions;
|
|
31
|
+
HistoryManager: HistoryManager;
|
|
32
|
+
ThoughtProcessor: ThoughtProcessor;
|
|
33
|
+
ThoughtFormatter: IThoughtFormatter;
|
|
34
|
+
ThoughtEvaluator: ThoughtEvaluator;
|
|
35
|
+
Persistence: PersistenceBackend | null;
|
|
36
|
+
ToolRegistry: ToolRegistry;
|
|
37
|
+
SkillRegistry: SkillRegistry;
|
|
38
|
+
Metrics: Metrics;
|
|
39
|
+
EdgeStore: EdgeStore;
|
|
40
|
+
reasoningStrategy: IReasoningStrategy;
|
|
41
|
+
outcomeRecorder: IOutcomeRecorder;
|
|
42
|
+
calibrator: ICalibrator;
|
|
43
|
+
summaryStore: ISummaryStore;
|
|
44
|
+
compressionService: CompressionService;
|
|
45
|
+
suspensionStore: ISuspensionStore;
|
|
46
|
+
sessionLock: ISessionLock;
|
|
47
|
+
sessionLifecycle: SessionLifecycleCoordinator;
|
|
48
|
+
}
|
|
49
|
+
export type ServiceKey = keyof ServiceRegistry;
|
|
50
|
+
//# sourceMappingURL=ServiceRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServiceRegistry.d.ts","sourceRoot":"","sources":["../../src/di/ServiceRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AAE1F,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,cAAc,EAAE,cAAc,CAAC;IAC/B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,WAAW,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACvC,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IACrB,iBAAiB,EAAE,kBAAkB,CAAC;IACtC,eAAe,EAAE,gBAAgB,CAAC;IAClC,UAAU,EAAE,WAAW,CAAC;IACxB,YAAY,EAAE,aAAa,CAAC;IAC5B,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,eAAe,EAAE,gBAAgB,CAAC;IAClC,WAAW,EAAE,YAAY,CAAC;IAC1B,gBAAgB,EAAE,2BAA2B,CAAC;CAC9C;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|