toolception 0.3.0 → 0.4.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.
package/README.md CHANGED
@@ -171,7 +171,7 @@ process.on("SIGTERM", async () => {
171
171
 
172
172
  ## Static startup
173
173
 
174
- Enable some or ALL toolsets at bootstrap. Note: provide a server or factory:
174
+ Enable some or ALL toolsets at bootstrap. In STATIC mode, a single server instance is created and reused for all clients:
175
175
 
176
176
  ```ts
177
177
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
@@ -181,26 +181,30 @@ const staticCatalog = {
181
181
  quotes: { name: "Quotes", description: "Market quotes", modules: ["quotes"] },
182
182
  };
183
183
 
184
+ // Load specific toolsets
184
185
  createMcpServer({
185
186
  catalog: staticCatalog,
186
187
  startup: { mode: "STATIC", toolsets: ["search", "quotes"] },
187
188
  http: { port: 3001 },
188
- server: new McpServer({
189
- name: "static-1",
190
- version: "0.0.0",
191
- capabilities: { tools: { listChanged: false } },
192
- }),
189
+ createServer: () =>
190
+ new McpServer({
191
+ name: "static-1",
192
+ version: "0.0.0",
193
+ capabilities: { tools: { listChanged: false } },
194
+ }),
193
195
  });
194
196
 
197
+ // Load ALL toolsets
195
198
  createMcpServer({
196
199
  catalog: staticCatalog,
197
200
  startup: { mode: "STATIC", toolsets: "ALL" },
198
201
  http: { port: 3002 },
199
- server: new McpServer({
200
- name: "static-2",
201
- version: "0.0.0",
202
- capabilities: { tools: { listChanged: false } },
203
- }),
202
+ createServer: () =>
203
+ new McpServer({
204
+ name: "static-2",
205
+ version: "0.0.0",
206
+ capabilities: { tools: { listChanged: false } },
207
+ }),
204
208
  });
205
209
  ```
206
210
 
@@ -664,9 +668,11 @@ Startup precedence and validation
664
668
 
665
669
  #### options.registerMetaTools (optional)
666
670
 
667
- `boolean` (default: true in DYNAMIC mode; false in STATIC unless explicitly set)
671
+ `boolean` (default: true in DYNAMIC mode; false in STATIC mode)
668
672
 
669
- - Whether to register management tools like `enable_toolset`, `disable_toolset`, `list_tools`.
673
+ - Whether to register meta-tools for toolset management.
674
+ - In DYNAMIC mode: Registers all meta-tools (`enable_toolset`, `disable_toolset`, `list_toolsets`, `describe_toolset`, `list_tools`).
675
+ - In STATIC mode: Only registers `list_tools` (other meta-tools are not applicable since toolsets are fixed at startup).
670
676
 
671
677
  #### options.exposurePolicy (optional)
672
678
 
@@ -805,13 +811,17 @@ Same as `createMcpServer` - see [options.moduleLoaders](#optionsmoduleloaders-op
805
811
 
806
812
  `ExposurePolicy` (partial support)
807
813
 
808
- Permission-based servers override certain policy fields:
814
+ Permission-based servers only support `namespaceToolsWithSetKey`. Other policy fields are ignored because toolset access is controlled by permissions:
815
+
816
+ | Field | Support |
817
+ | -------------------------- | ------------------------------------------------- |
818
+ | `namespaceToolsWithSetKey` | ✅ Supported (default: true) |
819
+ | `allowlist` | ⚠️ Ignored (determined by client permissions) |
820
+ | `denylist` | ⚠️ Ignored (use permissions instead) |
821
+ | `maxActiveToolsets` | ⚠️ Ignored (determined by permission count) |
822
+ | `onLimitExceeded` | ⚠️ Ignored (no toolset limits enforced) |
809
823
 
810
- - `allowlist`: Set automatically based on resolved permissions (cannot be manually configured)
811
- - `maxActiveToolsets`: Set automatically to match permission count
812
- - `namespaceToolsWithSetKey`: Supported (default: true)
813
- - `denylist`: Not supported (use permissions instead)
814
- - `onLimitExceeded`: Not applicable
824
+ **Note:** If you provide ignored options, the server will log warnings at startup to alert you.
815
825
 
816
826
  #### options.http (optional)
817
827
 
@@ -831,11 +841,21 @@ Same as `createMcpServer` - see [options.context](#optionscontext-optional).
831
841
 
832
842
  ### Meta-tools
833
843
 
834
- Enabled by default when mode is DYNAMIC (or when `registerMetaTools` is true):
844
+ Meta-tools are registered based on mode:
845
+
846
+ **DYNAMIC mode** (registered by default, or when `registerMetaTools` is true):
847
+
848
+ - `enable_toolset` - Enable a toolset by name
849
+ - `disable_toolset` - Disable a toolset by name (state only; tools remain registered)
850
+ - `list_toolsets` - List available toolsets with active status
851
+ - `describe_toolset` - Describe a specific toolset with definition and tools
852
+ - `list_tools` - List currently registered tool names
853
+
854
+ **STATIC mode** (when `registerMetaTools` is true):
855
+
856
+ - `list_tools` - List currently registered tool names
835
857
 
836
- - `enable_toolset`, `disable_toolset`, `list_tools`
837
- Only in DYNAMIC mode:
838
- - `list_toolsets`, `describe_toolset`
858
+ Note: In STATIC mode, `enable_toolset`, `disable_toolset`, `list_toolsets`, and `describe_toolset` are not available since toolsets are fixed at startup.
839
859
 
840
860
  ## Permission-based client integration
841
861
 
@@ -1344,17 +1364,19 @@ Note on dynamic mode: Both direct and module-produced tools are supported. Modul
1344
1364
 
1345
1365
  ## Startup modes
1346
1366
 
1347
- The server operates in one of two primary modes (legacy load-all is not recommended here):
1367
+ The server operates in one of two primary modes:
1348
1368
 
1349
- 1. Dynamic mode (startup.mode = "DYNAMIC")
1369
+ 1. **Dynamic mode** (`startup.mode = "DYNAMIC"`)
1350
1370
 
1351
- - Starts with meta-tools for runtime management: `enable_toolset`, `disable_toolset`, `list_toolsets`, `describe_toolset`, and `list_tools` (always available)
1371
+ - All meta-tools registered: `enable_toolset`, `disable_toolset`, `list_toolsets`, `describe_toolset`, `list_tools`
1352
1372
  - Tools are loaded on-demand via meta-tool calls
1373
+ - Each client gets an isolated server instance
1353
1374
  - Best for flexible, task-specific workflows where tool needs change
1354
1375
 
1355
- 2. Static mode (startup.mode = "STATIC")
1376
+ 2. **Static mode** (`startup.mode = "STATIC"`)
1356
1377
  - Pre-loads specific toolsets at startup (`toolsets` array or "ALL")
1357
- - Meta-tools limited to `list_tools` by default
1378
+ - Only `list_tools` meta-tool is available (toolsets cannot be changed at runtime)
1379
+ - A single server instance is reused for all clients
1358
1380
  - Best for known, consistent tool requirements
1359
1381
 
1360
1382
  ## License
@@ -19,14 +19,48 @@ export declare class DynamicToolManager {
19
19
  private readonly toolRegistry;
20
20
  private readonly activeToolsets;
21
21
  constructor(options: DynamicToolManagerOptions);
22
+ /**
23
+ * Sends a tool list change notification if configured.
24
+ * Logs warnings on failure instead of throwing.
25
+ * @returns Promise that resolves when notification is sent (or skipped)
26
+ * @private
27
+ */
28
+ private notifyToolsChanged;
22
29
  getAvailableToolsets(): string[];
23
30
  getActiveToolsets(): string[];
24
31
  getToolsetDefinition(name: string): ToolSetDefinition | undefined;
25
32
  isActive(name: string): boolean;
26
- enableToolset(toolsetName: string): Promise<{
33
+ /**
34
+ * Enables a single toolset by name.
35
+ * Validates the toolset, checks exposure policies, resolves tools, and registers them.
36
+ * @param toolsetName - The name of the toolset to enable
37
+ * @param skipNotification - If true, skips the tool list change notification (for batch operations)
38
+ * @returns Result object with success status and message
39
+ */
40
+ enableToolset(toolsetName: string, skipNotification?: boolean): Promise<{
27
41
  success: boolean;
28
42
  message: string;
29
43
  }>;
44
+ /**
45
+ * Checks if a toolset is allowed by the exposure policy.
46
+ * @param toolsetName - The sanitized toolset name to check
47
+ * @returns Object indicating if allowed and reason message if not
48
+ * @private
49
+ */
50
+ private checkExposurePolicy;
51
+ /**
52
+ * Registers a single tool with the MCP server.
53
+ * @param tool - The tool definition to register
54
+ * @param toolsetKey - The toolset key for tracking
55
+ * @private
56
+ */
57
+ private registerSingleTool;
58
+ /**
59
+ * Disables a toolset by name.
60
+ * Note: Due to MCP limitations, tools remain registered but the toolset is marked inactive.
61
+ * @param toolsetName - The name of the toolset to disable
62
+ * @returns Result object with success status and message
63
+ */
30
64
  disableToolset(toolsetName: string): Promise<{
31
65
  success: boolean;
32
66
  message: string;
@@ -40,6 +74,12 @@ export declare class DynamicToolManager {
40
74
  tools: string[];
41
75
  toolsetToTools: Record<string, string[]>;
42
76
  };
77
+ /**
78
+ * Enables multiple toolsets in a batch operation.
79
+ * Sends a single notification after all toolsets are processed.
80
+ * @param toolsetNames - Array of toolset names to enable
81
+ * @returns Result object with overall success status and individual results
82
+ */
43
83
  enableToolsets(toolsetNames: string[]): Promise<{
44
84
  success: boolean;
45
85
  results: Array<{
@@ -50,7 +90,10 @@ export declare class DynamicToolManager {
50
90
  }>;
51
91
  message: string;
52
92
  }>;
53
- private registerDirectTools;
93
+ /**
94
+ * Enables all available toolsets in a batch operation.
95
+ * @returns Result object with overall success status and individual results
96
+ */
54
97
  enableAllToolsets(): Promise<{
55
98
  success: boolean;
56
99
  results: Array<{
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicToolManager.d.ts","sourceRoot":"","sources":["../../src/core/DynamicToolManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EACV,cAAc,EAEd,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAChD,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAA6B;IACjE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAE5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;gBAExC,OAAO,EAAE,yBAAyB;IAUvC,oBAAoB,IAAI,MAAM,EAAE;IAIhC,iBAAiB,IAAI,MAAM,EAAE;IAI7B,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAIjE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIzB,aAAa,CACxB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IA2FpC,cAAc,CACzB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAoC1C,SAAS;;;;;;;;;IAYH,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAC3D,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,KAAK,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,OAAO,CAAC;YACjB,OAAO,EAAE,MAAM,CAAC;YAChB,IAAI,CAAC,EAAE,gBAAgB,CAAC;SACzB,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IAgCF,OAAO,CAAC,mBAAmB;IAuBd,iBAAiB,IAAI,OAAO,CAAC;QACxC,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,KAAK,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,OAAO,CAAC;YACjB,OAAO,EAAE,MAAM,CAAC;YAChB,IAAI,CAAC,EAAE,gBAAgB,CAAC;SACzB,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CAIH"}
1
+ {"version":3,"file":"DynamicToolManager.d.ts","sourceRoot":"","sources":["../../src/core/DynamicToolManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EACV,cAAc,EAEd,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAChD,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAA6B;IACjE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAE5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;gBAExC,OAAO,EAAE,yBAAyB;IAU9C;;;;;OAKG;YACW,kBAAkB;IASzB,oBAAoB,IAAI,MAAM,EAAE;IAIhC,iBAAiB,IAAI,MAAM,EAAE;IAI7B,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAIjE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAItC;;;;;;OAMG;IACU,aAAa,CACxB,WAAW,EAAE,MAAM,EACnB,gBAAgB,UAAQ,GACvB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IA4EjD;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAsC3B;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;;;;OAKG;IACU,cAAc,CACzB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAgC1C,SAAS;;;;;;;;;IAYhB;;;;;OAKG;IACU,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAC3D,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,KAAK,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,OAAO,CAAC;YACjB,OAAO,EAAE,MAAM,CAAC;YAChB,IAAI,CAAC,EAAE,gBAAgB,CAAC;SACzB,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IAuCF;;;OAGG;IACU,iBAAiB,IAAI,OAAO,CAAC;QACxC,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,KAAK,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,OAAO,CAAC;YACjB,OAAO,EAAE,MAAM,CAAC;YAChB,IAAI,CAAC,EAAE,gBAAgB,CAAC;SACzB,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CAIH"}
@@ -1,10 +1,10 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import { DynamicToolManager } from './DynamicToolManager.js';
3
- import { ExposurePolicy, Mode, ToolSetCatalog } from '../types/index.js';
3
+ import { ExposurePolicy, Mode, ModuleLoader, ToolSetCatalog } from '../types/index.js';
4
4
  export interface ServerOrchestratorOptions {
5
5
  server: McpServer;
6
6
  catalog: ToolSetCatalog;
7
- moduleLoaders?: Record<string, any>;
7
+ moduleLoaders?: Record<string, ModuleLoader>;
8
8
  exposurePolicy?: ExposurePolicy;
9
9
  context?: unknown;
10
10
  notifyToolsListChanged?: () => Promise<void> | void;
@@ -19,7 +19,29 @@ export declare class ServerOrchestrator {
19
19
  private readonly resolver;
20
20
  private readonly manager;
21
21
  private readonly toolsetValidator;
22
+ private readonly initPromise;
23
+ private initError;
22
24
  constructor(options: ServerOrchestratorOptions);
25
+ /**
26
+ * Initializes toolsets asynchronously during construction.
27
+ * Stores any errors for later retrieval via ensureReady().
28
+ * @param initial - The toolsets to initialize or "ALL"
29
+ * @returns Promise that resolves when initialization is complete
30
+ * @private
31
+ */
32
+ private initializeToolsets;
33
+ /**
34
+ * Waits for the orchestrator to be fully initialized.
35
+ * Call this before using the orchestrator to ensure all toolsets are loaded.
36
+ * @throws {Error} If initialization failed
37
+ */
38
+ ensureReady(): Promise<void>;
39
+ /**
40
+ * Checks if the orchestrator has finished initialization.
41
+ * Does not throw on error - use ensureReady() for that.
42
+ * @returns Promise that resolves to true if ready, false if initialization failed
43
+ */
44
+ isReady(): Promise<boolean>;
23
45
  private resolveStartupConfig;
24
46
  getMode(): Exclude<Mode, "ALL">;
25
47
  getManager(): DynamicToolManager;
@@ -1 +1 @@
1
- {"version":3,"file":"ServerOrchestrator.d.ts","sourceRoot":"","sources":["../../src/core/ServerOrchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAG9E,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,cAAc,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sBAAsB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACpD,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;KAAE,CAAC;IACvE,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;gBAExC,OAAO,EAAE,yBAAyB;IAoC9C,OAAO,CAAC,oBAAoB;IAqDrB,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;IAI/B,UAAU,IAAI,kBAAkB;CAGxC"}
1
+ {"version":3,"file":"ServerOrchestrator.d.ts","sourceRoot":"","sources":["../../src/core/ServerOrchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,KAAK,EACV,cAAc,EACd,IAAI,EACJ,YAAY,EACZ,cAAc,EACf,MAAM,mBAAmB,CAAC;AAG3B,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,cAAc,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC7C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sBAAsB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACpD,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;KAAE,CAAC;IACvE,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgB;IAC5C,OAAO,CAAC,SAAS,CAAsB;gBAE3B,OAAO,EAAE,yBAAyB;IAgC9C;;;;;;OAMG;YACW,kBAAkB;IAgBhC;;;;OAIG;IACU,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAOzC;;;;OAIG;IACU,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAKxC,OAAO,CAAC,oBAAoB;IAqDrB,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;IAI/B,UAAU,IAAI,kBAAkB;CAGxC"}
@@ -22,6 +22,17 @@ export declare class FastifyTransport {
22
22
  orchestrator: ServerOrchestrator;
23
23
  }, options?: FastifyTransportOptions, configSchema?: object);
24
24
  start(): Promise<void>;
25
+ /**
26
+ * Stops the Fastify server and cleans up all resources.
27
+ * Closes all client sessions and clears the cache.
28
+ */
25
29
  stop(): Promise<void>;
30
+ /**
31
+ * Cleans up resources associated with a client bundle.
32
+ * Closes all sessions within the bundle.
33
+ * @param bundle - The client bundle to clean up
34
+ * @private
35
+ */
36
+ private cleanupBundle;
26
37
  }
27
38
  //# sourceMappingURL=FastifyTransport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FastifyTransport.d.ts","sourceRoot":"","sources":["../../src/http/FastifyTransport.ts"],"names":[],"mappings":"AAAA,OAAgB,EACd,KAAK,eAAe,EAGrB,MAAM,SAAS,CAAC;AAGjB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAIxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,GAAG,CAAC,EAAE,eAAe,CAAC;CACvB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAOtB;IACF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAG3B;IACF,OAAO,CAAC,GAAG,CAAgC;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAS;IAGvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAIvB;gBAGH,cAAc,EAAE,kBAAkB,EAClC,YAAY,EAAE,MAAM;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,YAAY,EAAE,kBAAkB,CAAA;KAAE,EAC3E,OAAO,GAAE,uBAA4B,EACrC,YAAY,CAAC,EAAE,MAAM;IAeV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA8LtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAOnC"}
1
+ {"version":3,"file":"FastifyTransport.d.ts","sourceRoot":"","sources":["../../src/http/FastifyTransport.ts"],"names":[],"mappings":"AAAA,OAAgB,EACd,KAAK,eAAe,EAGrB,MAAM,SAAS,CAAC;AAGjB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAIxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,GAAG,CAAC,EAAE,eAAe,CAAC;CACvB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAOtB;IACF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAG3B;IACF,OAAO,CAAC,GAAG,CAAgC;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAS;IAGvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CASzB;gBAGD,cAAc,EAAE,kBAAkB,EAClC,YAAY,EAAE,MAAM;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,YAAY,EAAE,kBAAkB,CAAA;KAAE,EAC3E,OAAO,GAAE,uBAA4B,EACrC,YAAY,CAAC,EAAE,MAAM;IAeV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA8LnC;;;OAGG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAYlC;;;;;OAKG;IACH,OAAO,CAAC,aAAa;CAkBtB"}