@macroforge/mcp-server 0.1.33 → 0.1.35

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.
Files changed (50) hide show
  1. package/README.md +68 -0
  2. package/dist/index.d.ts +32 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +46 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/tools/docs-loader.d.ts +133 -5
  7. package/dist/tools/docs-loader.d.ts.map +1 -1
  8. package/dist/tools/docs-loader.js +131 -15
  9. package/dist/tools/docs-loader.js.map +1 -1
  10. package/dist/tools/index.d.ts +48 -1
  11. package/dist/tools/index.d.ts.map +1 -1
  12. package/dist/tools/index.js +163 -14
  13. package/dist/tools/index.js.map +1 -1
  14. package/docs/api/api-overview.md +24 -46
  15. package/docs/api/expand-sync.md +24 -51
  16. package/docs/api/native-plugin.md +24 -56
  17. package/docs/api/position-mapper.md +34 -76
  18. package/docs/api/transform-sync.md +27 -59
  19. package/docs/builtin-macros/clone.md +45 -104
  20. package/docs/builtin-macros/debug.md +33 -104
  21. package/docs/builtin-macros/default.md +78 -114
  22. package/docs/builtin-macros/deserialize.md +93 -273
  23. package/docs/builtin-macros/hash.md +58 -100
  24. package/docs/builtin-macros/macros-overview.md +42 -103
  25. package/docs/builtin-macros/ord.md +65 -133
  26. package/docs/builtin-macros/partial-eq.md +53 -179
  27. package/docs/builtin-macros/partial-ord.md +67 -159
  28. package/docs/builtin-macros/serialize.md +64 -194
  29. package/docs/concepts/architecture.md +40 -99
  30. package/docs/concepts/derive-system.md +129 -125
  31. package/docs/concepts/how-macros-work.md +52 -84
  32. package/docs/custom-macros/custom-overview.md +17 -39
  33. package/docs/custom-macros/rust-setup.md +22 -55
  34. package/docs/custom-macros/ts-macro-derive.md +43 -107
  35. package/docs/custom-macros/ts-quote.md +177 -507
  36. package/docs/getting-started/first-macro.md +108 -33
  37. package/docs/getting-started/installation.md +32 -73
  38. package/docs/integration/cli.md +70 -156
  39. package/docs/integration/configuration.md +32 -75
  40. package/docs/integration/integration-overview.md +16 -55
  41. package/docs/integration/mcp-server.md +30 -69
  42. package/docs/integration/svelte-preprocessor.md +60 -83
  43. package/docs/integration/typescript-plugin.md +32 -74
  44. package/docs/integration/vite-plugin.md +30 -79
  45. package/docs/language-servers/ls-overview.md +22 -46
  46. package/docs/language-servers/svelte.md +30 -69
  47. package/docs/language-servers/zed.md +34 -72
  48. package/docs/roadmap/roadmap.md +54 -130
  49. package/docs/sections.json +3 -262
  50. package/package.json +2 -2
@@ -1,8 +1,56 @@
1
+ /**
2
+ * @module tools
3
+ *
4
+ * MCP Tool Registry and Request Handlers
5
+ *
6
+ * This module registers and implements all MCP tools exposed by the Macroforge server.
7
+ * It serves as the main business logic layer, handling tool requests from MCP clients.
8
+ *
9
+ * ## Registered Tools
10
+ *
11
+ * | Tool | Purpose |
12
+ * |------|---------|
13
+ * | `list-sections` | List all documentation sections with metadata |
14
+ * | `get-documentation` | Retrieve full content for specific sections |
15
+ * | `macroforge-autofixer` | Validate TypeScript code with @derive decorators |
16
+ * | `expand-code` | Expand macros and show generated code |
17
+ * | `get-macro-info` | Get documentation for macros and decorators |
18
+ *
19
+ * ## Architecture
20
+ *
21
+ * The module uses:
22
+ * - `docs-loader.js` for documentation loading and search
23
+ * - `@macroforge/core` (optional) for native code validation and expansion
24
+ *
25
+ * Native bindings are loaded dynamically and gracefully degrade if unavailable.
26
+ *
27
+ * @see {@link registerTools} for the main entry point
28
+ */
1
29
  import { CallToolRequestSchema, ListToolsRequestSchema, ErrorCode, McpError, } from '@modelcontextprotocol/sdk/types.js';
2
30
  import { loadSections, getSection, searchSections } from './docs-loader.js';
31
+ /** Cached documentation sections loaded at server startup */
3
32
  let sections = [];
4
33
  /**
5
- * Register all Macroforge MCP tools with the server
34
+ * Registers all Macroforge MCP tools with the server instance.
35
+ *
36
+ * This function:
37
+ * 1. Loads documentation sections from disk
38
+ * 2. Registers a `tools/list` handler returning all available tools
39
+ * 3. Registers a `tools/call` handler routing requests to appropriate handlers
40
+ *
41
+ * The tools registered provide documentation access and code analysis capabilities
42
+ * for AI assistants working with Macroforge.
43
+ *
44
+ * @param server - The MCP Server instance to register tools with
45
+ *
46
+ * @example
47
+ * ```typescript
48
+ * import { Server } from '@modelcontextprotocol/sdk/server/index.js';
49
+ * import { registerTools } from './tools/index.js';
50
+ *
51
+ * const server = new Server({ name: 'macroforge', version: '1.0.0' }, { capabilities: { tools: {} } });
52
+ * registerTools(server);
53
+ * ```
6
54
  */
7
55
  export function registerTools(server) {
8
56
  // Load documentation sections
@@ -165,8 +213,16 @@ Use with a name parameter to get info for a specific macro or decorator.`,
165
213
  });
166
214
  }
167
215
  /**
168
- * Handle list-sections tool call
169
- * Filters out sub-chunks to show only top-level sections
216
+ * Handles the `list-sections` tool call.
217
+ *
218
+ * Returns a formatted list of all available documentation sections, filtering out
219
+ * sub-chunks to show only top-level sections. Each section displays its title,
220
+ * use cases, file path, and category.
221
+ *
222
+ * Sub-chunks (sections with a `parent_id`) are excluded from this list as they
223
+ * are accessed through their parent section via `get-documentation`.
224
+ *
225
+ * @returns MCP response with formatted text listing all sections
170
226
  */
171
227
  function handleListSections() {
172
228
  // Filter out sub-chunks (sections with parent_id) - only show top-level sections
@@ -184,8 +240,23 @@ function handleListSections() {
184
240
  };
185
241
  }
186
242
  /**
187
- * Handle get-documentation tool call
188
- * For chunked sections, returns the first chunk with a list of available sub-chunks
243
+ * Handles the `get-documentation` tool call.
244
+ *
245
+ * Retrieves full documentation content for one or more sections. Supports flexible
246
+ * lookups by ID, title, or partial match.
247
+ *
248
+ * ## Chunked Section Handling
249
+ *
250
+ * For large documentation sections that are split into chunks:
251
+ * 1. Returns the first chunk's content as the main response
252
+ * 2. Appends a list of additional chunk IDs that can be requested separately
253
+ *
254
+ * This allows clients to progressively load large documentation without
255
+ * overwhelming context windows.
256
+ *
257
+ * @param args - Tool arguments
258
+ * @param args.section - Section name(s) to retrieve (string or array of strings)
259
+ * @returns MCP response with formatted markdown documentation content
189
260
  */
190
261
  function handleGetDocumentation(args) {
191
262
  const sectionNames = Array.isArray(args.section) ? args.section : [args.section];
@@ -269,8 +340,29 @@ function handleGetDocumentation(args) {
269
340
  };
270
341
  }
271
342
  /**
272
- * Handle macroforge-autofixer tool call
273
- * Returns structured diagnostics from Macroforge's native validation
343
+ * Handles the `macroforge-autofixer` tool call.
344
+ *
345
+ * Validates TypeScript code containing @derive decorators using Macroforge's
346
+ * native Rust-based analyzer. Returns structured JSON diagnostics that clients
347
+ * can use to provide error messages and fix suggestions.
348
+ *
349
+ * ## Diagnostic Levels
350
+ *
351
+ * - `error` - Invalid code that will fail to compile
352
+ * - `warning` - Code that works but may have issues
353
+ * - `info` - Informational messages about the code
354
+ *
355
+ * ## Response Format
356
+ *
357
+ * Returns JSON with:
358
+ * - `diagnostics` - Array of issues with location, message, and help text
359
+ * - `summary` - Counts of errors, warnings, and info messages
360
+ * - `require_another_tool_call_after_fixing` - True if errors exist (should revalidate)
361
+ *
362
+ * @param args - Tool arguments
363
+ * @param args.code - TypeScript source code to validate
364
+ * @param args.filename - Optional filename for error messages (default: "input.ts")
365
+ * @returns MCP response with JSON-formatted diagnostics
274
366
  */
275
367
  async function handleAutofixer(args) {
276
368
  const filename = args.filename || 'input.ts';
@@ -339,8 +431,23 @@ async function handleAutofixer(args) {
339
431
  }
340
432
  }
341
433
  /**
342
- * Handle expand-code tool call
343
- * Returns expanded code with structured diagnostics
434
+ * Handles the `expand-code` tool call.
435
+ *
436
+ * Expands Macroforge macros in TypeScript code and returns the transformed result.
437
+ * This is useful for understanding what code the macros generate and debugging
438
+ * macro expansion issues.
439
+ *
440
+ * ## Output Format
441
+ *
442
+ * Returns human-readable markdown with:
443
+ * - The fully expanded TypeScript code in a code block
444
+ * - Any diagnostics (errors, warnings, info) with line/column locations
445
+ * - Help text for fixing issues when available
446
+ *
447
+ * @param args - Tool arguments
448
+ * @param args.code - TypeScript source code with @derive decorators to expand
449
+ * @param args.filename - Optional filename for error messages (default: "input.ts")
450
+ * @returns MCP response with formatted expanded code and diagnostics
344
451
  */
345
452
  async function handleExpandCode(args) {
346
453
  const filename = args.filename || 'input.ts';
@@ -403,8 +510,25 @@ async function handleExpandCode(args) {
403
510
  }
404
511
  }
405
512
  /**
406
- * Handle get-macro-info tool call
407
- * Returns documentation for macros and decorators from the manifest
513
+ * Handles the `get-macro-info` tool call.
514
+ *
515
+ * Retrieves documentation for Macroforge macros and field decorators from the
516
+ * native manifest. Can return info for a specific macro/decorator or the full
517
+ * manifest of all available macros and decorators.
518
+ *
519
+ * ## Usage Modes
520
+ *
521
+ * - **Without name**: Returns full manifest with all macros and decorators
522
+ * - **With name**: Returns detailed info for the specific macro or decorator
523
+ *
524
+ * ## Manifest Contents
525
+ *
526
+ * - **Macros**: @derive decorators like Debug, Serialize, Clone
527
+ * - **Decorators**: Field decorators like @serde.skip, @serde.rename
528
+ *
529
+ * @param args - Tool arguments
530
+ * @param args.name - Optional macro or decorator name to look up
531
+ * @returns MCP response with formatted macro/decorator documentation
408
532
  */
409
533
  async function handleGetMacroInfo(args) {
410
534
  try {
@@ -491,21 +615,46 @@ Available decorators: ${manifest.decorators.map(d => d.export).join(', ')}`,
491
615
  // Helper functions
492
616
  // ============================================================================
493
617
  /**
494
- * Try to import native Macroforge bindings
618
+ * Dynamically imports the native Macroforge bindings.
619
+ *
620
+ * The @macroforge/core package is an optional peer dependency that provides
621
+ * native Rust-based code analysis and expansion. This function attempts to
622
+ * load it at runtime and gracefully returns null if unavailable.
623
+ *
624
+ * Using dynamic import allows the MCP server to run and serve documentation
625
+ * even when the native bindings are not installed.
626
+ *
627
+ * @returns The Macroforge module if available, or null if not installed
628
+ *
629
+ * @example
630
+ * ```typescript
631
+ * const macroforge = await importMacroforge();
632
+ * if (macroforge) {
633
+ * const result = macroforge.expandSync(code, 'input.ts', {});
634
+ * }
635
+ * ```
495
636
  */
496
637
  async function importMacroforge() {
497
638
  try {
498
- // Dynamic import to avoid build-time errors
639
+ // Dynamic import to avoid build-time errors when @macroforge/core is not installed
499
640
  // @ts-expect-error - dynamic import of optional dependency
500
641
  const mod = await import('@macroforge/core');
501
642
  return mod;
502
643
  }
503
644
  catch {
645
+ // Package not installed - return null to indicate unavailability
504
646
  return null;
505
647
  }
506
648
  }
507
649
  /**
508
- * Normalize diagnostic level to lowercase for output
650
+ * Normalizes a diagnostic level string to lowercase.
651
+ *
652
+ * The Rust analyzer returns levels as PascalCase ('Error', 'Warning', 'Info'),
653
+ * but JSON output should use lowercase ('error', 'warning', 'info') for
654
+ * consistency with common diagnostic formats.
655
+ *
656
+ * @param level - Diagnostic level from Rust (e.g., 'Error')
657
+ * @returns Lowercase level string (e.g., 'error')
509
658
  */
510
659
  function normalizeLevel(level) {
511
660
  return level.toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,7 @@
1
1
  # API Reference
2
-
3
- *Macroforge provides a programmatic API for expanding macros in TypeScript code.*
4
-
5
- ## Overview
6
-
7
- ```typescript
2
+ <span class="stats svelte-1c8t0id">52 exported items *Macroforge provides a programmatic API for expanding macros in TypeScript code.*
3
+ ## Overview
4
+ ```
8
5
  import {
9
6
  expandSync,
10
7
  transformSync,
@@ -13,36 +10,23 @@ import {
13
10
  NativePlugin,
14
11
  PositionMapper
15
12
  } from "macroforge";
16
- ```
17
-
18
- ## Core Functions
19
-
20
- | [`expandSync()`]({base}/docs/api/expand-sync)
21
- | Expand macros synchronously
22
-
23
- | [`transformSync()`]({base}/docs/api/transform-sync)
24
- | Transform code with additional metadata
25
-
26
- | `checkSyntax()`
27
- | Validate TypeScript syntax
28
-
29
- | `parseImportSources()`
30
- | Extract import information
31
-
32
- ## Classes
33
-
34
- | [`NativePlugin`]({base}/docs/api/native-plugin)
35
- | Stateful plugin with caching
36
-
37
- | [`PositionMapper`]({base}/docs/api/position-mapper)
38
- | Maps positions between original and expanded code
39
-
40
- ## Quick Example
41
-
42
- ```typescript
13
+ ``` ## Core Functions
14
+ | Function | Description |
15
+ | --- | --- |
16
+ | [`expandSync()`](../docs/api/expand-sync) | Expand macros synchronously |
17
+ | [`transformSync()`](../docs/api/transform-sync) | Transform code with additional metadata |
18
+ | `checkSyntax()` | Validate TypeScript syntax |
19
+ | `parseImportSources()` | Extract import information |
20
+ ## Classes
21
+ | Class | Description |
22
+ | --- | --- |
23
+ | [`NativePlugin`](../docs/api/native-plugin) | Stateful plugin with caching |
24
+ | [`PositionMapper`](../docs/api/position-mapper) | Maps positions between original and expanded code |
25
+ ## Quick Example
26
+ ```
43
27
  import { expandSync } from "macroforge";
44
28
 
45
- const sourceCode = \`
29
+ const sourceCode = `
46
30
  /** @derive(Debug) */
47
31
  class User {
48
32
  name: string;
@@ -50,7 +34,7 @@ class User {
50
34
  this.name = name;
51
35
  }
52
36
  }
53
- \`;
37
+ `;
54
38
 
55
39
  const result = expandSync(sourceCode, "user.ts", {
56
40
  keepDecorators: false
@@ -62,14 +46,8 @@ console.log(result.code);
62
46
  if (result.diagnostics.length > 0) {
63
47
  console.error("Errors:", result.diagnostics);
64
48
  }
65
- ```
66
-
67
- ## Detailed Reference
68
-
69
- - [`expandSync()`]({base}/docs/api/expand-sync) - Full options and return types
70
-
71
- - [`transformSync()`]({base}/docs/api/transform-sync) - Transform with source maps
72
-
73
- - [`NativePlugin`]({base}/docs/api/native-plugin) - Caching for language servers
74
-
75
- - [`PositionMapper`]({base}/docs/api/position-mapper) - Position mapping utilities
49
+ ``` ## Detailed Reference
50
+ - [`expandSync()`](../docs/api/expand-sync) - Full options and return types
51
+ - [`transformSync()`](../docs/api/transform-sync) - Transform with source maps
52
+ - [`NativePlugin`](../docs/api/native-plugin) - Caching for language servers
53
+ - [`PositionMapper`](../docs/api/position-mapper) - Position mapping utilities
@@ -1,43 +1,26 @@
1
1
  # expandSync()
2
-
3
- *Expands macros in TypeScript code synchronously and returns the transformed output.*
4
-
5
- ## Signature
6
-
7
- ```typescript
2
+ *Synchronously expands macros in TypeScript code. This is the standalone macro expansion function that doesn't use caching. For cached expansion, use [`NativePlugin::process_file`] instead.*
3
+ ## Signature
4
+ ```
8
5
  function expandSync(
9
6
  code: string,
10
7
  filepath: string,
11
8
  options?: ExpandOptions
12
9
  ): ExpandResult
13
- ```
14
-
15
- ## Parameters
16
-
17
- | `code`
18
- | `string`
19
- | TypeScript source code to transform
20
-
21
- | `filepath`
22
- | `string`
23
- | File path (used for error reporting)
24
-
25
- | `options`
26
- | `ExpandOptions`
27
- | Optional configuration
28
-
29
- ## ExpandOptions
30
-
31
- ```typescript
10
+ ``` ## Parameters
11
+ | Parameter | Type | Description |
12
+ | --- | --- | --- |
13
+ | `code` | `string` | TypeScript source code to transform |
14
+ | `filepath` | `string` | File path (used for error reporting) |
15
+ | `options` | `ExpandOptions` | Optional configuration |
16
+ ## ExpandOptions
17
+ ```
32
18
  interface ExpandOptions {
33
19
  // Keep @derive decorators in output (default: false)
34
20
  keepDecorators?: boolean;
35
21
  }
36
- ```
37
-
38
- ## ExpandResult
39
-
40
- ```typescript
22
+ ``` ## ExpandResult
23
+ ```
41
24
  interface ExpandResult {
42
25
  // Transformed TypeScript code
43
26
  code: string;
@@ -54,11 +37,8 @@ interface ExpandResult {
54
37
  // Position mapping data for source maps
55
38
  sourceMapping?: SourceMappingResult;
56
39
  }
57
- ```
58
-
59
- ## MacroDiagnostic
60
-
61
- ```typescript
40
+ ``` ## MacroDiagnostic
41
+ ```
62
42
  interface MacroDiagnostic {
63
43
  message: string;
64
44
  severity: "error" | "warning" | "info";
@@ -67,14 +47,11 @@ interface MacroDiagnostic {
67
47
  end: number;
68
48
  };
69
49
  }
70
- ```
71
-
72
- ## Example
73
-
74
- ```typescript
50
+ ``` ## Example
51
+ ```
75
52
  import { expandSync } from "macroforge";
76
53
 
77
- const sourceCode = \`
54
+ const sourceCode = `
78
55
  /** @derive(Debug) */
79
56
  class User {
80
57
  name: string;
@@ -85,7 +62,7 @@ class User {
85
62
  this.age = age;
86
63
  }
87
64
  }
88
- \`;
65
+ `;
89
66
 
90
67
  const result = expandSync(sourceCode, "user.ts");
91
68
 
@@ -99,21 +76,17 @@ if (result.types) {
99
76
 
100
77
  if (result.diagnostics.length > 0) {
101
78
  for (const diag of result.diagnostics) {
102
- console.log(\`[\${diag.severity}] \${diag.message}\`);
79
+ console.log(`[${diag.severity}] ${diag.message}`);
103
80
  }
104
81
  }
105
- ```
106
-
107
- ## Error Handling
108
-
109
- Syntax errors and macro errors are returned in the `diagnostics` array, not thrown as exceptions:
110
-
111
- ```typescript
82
+ ``` ## Error Handling
83
+ Syntax errors and macro errors are returned in the `diagnostics` array, not thrown as exceptions:
84
+ ```
112
85
  const result = expandSync(invalidCode, "file.ts");
113
86
 
114
87
  for (const diag of result.diagnostics) {
115
88
  if (diag.severity === "error") {
116
- console.error(\`Error at \${diag.span.start}: \${diag.message}\`);
89
+ console.error(`Error at ${diag.span.start}: ${diag.message}`);
117
90
  }
118
91
  }
119
92
  ```
@@ -1,67 +1,41 @@
1
1
  # NativePlugin
2
-
3
- *A stateful plugin class with version-based caching, designed for integration with language servers and IDEs.*
4
-
5
- ## Constructor
6
-
7
- ```typescript
2
+ *The main plugin class for macro expansion with caching support. `NativePlugin` is designed to be instantiated once and reused across multiple file processing operations. It maintains a cache of expansion results keyed by filepath and version, enabling efficient incremental processing.*
3
+ ## Constructor
4
+ ```
8
5
  const plugin = new NativePlugin();
9
- ```
10
-
11
- ## Methods
12
-
13
- ### processFile()
14
-
15
- Process a file with version-based caching:
16
-
17
- ```typescript
6
+ ``` ## Methods
7
+ ### processFile()
8
+ Process a file with version-based caching:
9
+ ```
18
10
  processFile(
19
11
  filepath: string,
20
12
  code: string,
21
13
  options?: ProcessFileOptions
22
14
  ): ExpandResult
23
- ```
24
-
25
- ```typescript
15
+ ``` ```
26
16
  interface ProcessFileOptions {
27
17
  // Cache key - if unchanged, returns cached result
28
18
  version?: string;
29
19
  }
30
- ```
31
-
32
- ### getMapper()
33
-
34
- Get the position mapper for a previously processed file:
35
-
36
- ```typescript
20
+ ``` ### getMapper()
21
+ Get the position mapper for a previously processed file:
22
+ ```
37
23
  getMapper(filepath: string): NativeMapper | null
38
- ```
39
-
40
- ### mapDiagnostics()
41
-
42
- Map diagnostics from expanded positions to original positions:
43
-
44
- ```typescript
24
+ ``` ### mapDiagnostics()
25
+ Map diagnostics from expanded positions to original positions:
26
+ ```
45
27
  mapDiagnostics(
46
28
  filepath: string,
47
29
  diagnostics: JsDiagnostic[]
48
30
  ): JsDiagnostic[]
49
- ```
50
-
51
- ### log() / setLogFile()
52
-
53
- Logging utilities for debugging:
54
-
55
- ```typescript
31
+ ``` ### log() / setLogFile()
32
+ Logging utilities for debugging:
33
+ ```
56
34
  log(message: string): void
57
35
  setLogFile(path: string): void
58
- ```
59
-
60
- ## Caching Behavior
61
-
62
- The plugin caches expansion results by file path and version:
63
-
64
- ```typescript
36
+ ``` ## Caching Behavior
37
+ The plugin caches expansion results by file path and version:
38
+ ```
65
39
  const plugin = new NativePlugin();
66
40
 
67
41
  // First call - performs expansion
@@ -72,11 +46,8 @@ const result2 = plugin.processFile("user.ts", code, { version: "1" });
72
46
 
73
47
  // Different version - re-expands
74
48
  const result3 = plugin.processFile("user.ts", newCode, { version: "2" });
75
- ```
76
-
77
- ## Example: Language Server Integration
78
-
79
- ```typescript
49
+ ``` ## Example: Language Server Integration
50
+ ```
80
51
  import { NativePlugin } from "macroforge";
81
52
 
82
53
  class MacroforgeLanguageService {
@@ -99,8 +70,5 @@ class MacroforgeLanguageService {
99
70
  return this.plugin.mapDiagnostics(uri, diagnostics);
100
71
  }
101
72
  }
102
- ```
103
-
104
- ## Thread Safety
105
-
106
- The `NativePlugin` class is thread-safe and can be used from multiple async contexts. Each file is processed in an isolated thread with its own stack space.
73
+ ``` ## Thread Safety
74
+ The `NativePlugin` class is thread-safe and can be used from multiple async contexts. Each file is processed in an isolated thread with its own stack space.