@alcyone-labs/arg-parser 2.4.2 → 2.6.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 +286 -70
- package/dist/core/ArgParserBase.d.ts.map +1 -1
- package/dist/core/FlagManager.d.ts.map +1 -1
- package/dist/core/dxt-path-resolver.d.ts +100 -0
- package/dist/core/dxt-path-resolver.d.ts.map +1 -0
- package/dist/core/log-path-utils.d.ts.map +1 -1
- package/dist/core/types.d.ts +73 -4
- package/dist/core/types.d.ts.map +1 -1
- package/dist/dxt/DxtGenerator.d.ts +6 -0
- package/dist/dxt/DxtGenerator.d.ts.map +1 -1
- package/dist/index.cjs +708 -193
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.min.mjs +5559 -5175
- package/dist/index.min.mjs.map +1 -1
- package/dist/index.mjs +708 -193
- package/dist/index.mjs.map +1 -1
- package/dist/mcp/mcp-integration.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -25,7 +25,9 @@ A modern, type-safe command line argument parser with built-in MCP (Model Contex
|
|
|
25
25
|
- [Runtime Type Validation](#runtime-type-validation)
|
|
26
26
|
- [Automatic Type Processing](#automatic-type-processing)
|
|
27
27
|
- [Async Custom Parser Support](#async-custom-parser-support)
|
|
28
|
+
- [Zod Schema Flags (Structured JSON Validation)](#zod-schema-flags-structured-json-validation)
|
|
28
29
|
- [Type Conversion Examples](#type-conversion-examples)
|
|
30
|
+
- [DXT Package User Configuration & Path Handling](#dxt-package-user-configuration--path-handling)
|
|
29
31
|
- [Hierarchical CLIs (Sub-Commands)](#hierarchical-clis-sub-commands)
|
|
30
32
|
- [MCP Exposure Control](#mcp-exposure-control)
|
|
31
33
|
- [Flag Inheritance (`inheritParentFlags`)](#flag-inheritance-inheritparentflags)
|
|
@@ -69,6 +71,10 @@ A modern, type-safe command line argument parser with built-in MCP (Model Contex
|
|
|
69
71
|
- [Typical Errors](#typical-errors)
|
|
70
72
|
- [System Flags & Configuration](#system-flags--configuration)
|
|
71
73
|
- [Changelog](#changelog)
|
|
74
|
+
- [v2.6.0](#v260)
|
|
75
|
+
- [v2.5.0](#v250)
|
|
76
|
+
- [v2.4.2](#v242)
|
|
77
|
+
- [v2.4.1](#v241)
|
|
72
78
|
- [v2.4.0](#v240)
|
|
73
79
|
- [v2.3.0](#v230)
|
|
74
80
|
- [v2.2.1](#v221)
|
|
@@ -82,69 +88,6 @@ A modern, type-safe command line argument parser with built-in MCP (Model Contex
|
|
|
82
88
|
- [Backlog](#backlog)
|
|
83
89
|
- [(known) Bugs / DX improvement points](#known-bugs--dx-improvement-points)
|
|
84
90
|
|
|
85
|
-
- [Features Overview](#features-overview)
|
|
86
|
-
- [Installation](#installation)
|
|
87
|
-
- [Quick Start: The Unified `addTool` API](#quick-start-the-unified-addtool-api)
|
|
88
|
-
- [How to Run It](#how-to-run-it)
|
|
89
|
-
- [Setting Up System-Wide CLI Access](#setting-up-system-wide-cli-access)
|
|
90
|
-
- [Parsing Command-Line Arguments](#parsing-command-line-arguments)
|
|
91
|
-
- [Automatic Argument Detection](#automatic-argument-detection)
|
|
92
|
-
- [Cannonical Usage Pattern](#cannonical-usage-pattern)
|
|
93
|
-
- [Top-level await](#top-level-await)
|
|
94
|
-
- [Promise-based parsing](#promise-based-parsing)
|
|
95
|
-
- [Migrating from v1.x to the v2.0 `addTool` API](#migrating-from-v1x-to-the-v20-addtool-api)
|
|
96
|
-
- [Before v2.0: Separate Definitions](#before-v20-separate-definitions)
|
|
97
|
-
- [After v2.0: The Unified `addTool()` Method](#after-v20-the-unified-addtool-method)
|
|
98
|
-
- [Core Concepts](#core-concepts)
|
|
99
|
-
- [Defining Flags](#defining-flags)
|
|
100
|
-
- [Type Handling and Validation](#type-handling-and-validation)
|
|
101
|
-
- [Supported Type Formats](#supported-type-formats)
|
|
102
|
-
- [Runtime Type Validation](#runtime-type-validation)
|
|
103
|
-
- [Automatic Type Processing](#automatic-type-processing)
|
|
104
|
-
- [Async Custom Parser Support](#async-custom-parser-support)
|
|
105
|
-
- [Type Conversion Examples](#type-conversion-examples)
|
|
106
|
-
- [Hierarchical CLIs (Sub-Commands)](#hierarchical-clis-sub-commands)
|
|
107
|
-
- [MCP Exposure Control](#mcp-exposure-control)
|
|
108
|
-
- [Flag Inheritance (`inheritParentFlags`)](#flag-inheritance-inheritparentflags)
|
|
109
|
-
- [MCP & Claude Desktop Integration](#mcp--claude-desktop-integration)
|
|
110
|
-
- [Output Schema Support](#output-schema-support)
|
|
111
|
-
- [Basic Usage](#basic-usage)
|
|
112
|
-
- [Predefined Schema Patterns](#predefined-schema-patterns)
|
|
113
|
-
- [Custom Zod Schemas](#custom-zod-schemas)
|
|
114
|
-
- [MCP Version Compatibility](#mcp-version-compatibility)
|
|
115
|
-
- [Automatic Error Handling](#automatic-error-handling)
|
|
116
|
-
- [Writing Effective MCP Tool Descriptions](#writing-effective-mcp-tool-descriptions)
|
|
117
|
-
- [Best Practices for Tool Descriptions](#best-practices-for-tool-descriptions)
|
|
118
|
-
- [Complete Example: Well-Documented Tool](#complete-example-well-documented-tool)
|
|
119
|
-
- [Parameter Description Guidelines](#parameter-description-guidelines)
|
|
120
|
-
- [Common Pitfalls to Avoid](#common-pitfalls-to-avoid)
|
|
121
|
-
- [Automatic MCP Server Mode (`--s-mcp-serve`)](#automatic-mcp-server-mode---s-mcp-serve)
|
|
122
|
-
- [MCP Transports](#mcp-transports)
|
|
123
|
-
- [MCP Log Path Configuration](#mcp-log-path-configuration)
|
|
124
|
-
- [MCP Resources - Real-Time Data Feeds](#mcp-resources---real-time-data-feeds) ⭐
|
|
125
|
-
- [Automatic Console Safety](#automatic-console-safety)
|
|
126
|
-
- [Generating DXT Packages (`--s-build-dxt`)](#generating-dxt-packages---s-build-dxt)
|
|
127
|
-
- [Logo Configuration](#logo-configuration)
|
|
128
|
-
- [Supported Logo Sources](#supported-logo-sources)
|
|
129
|
-
- [How DXT Generation Works](#how-dxt-generation-works)
|
|
130
|
-
- [DXT Bundling Strategies](#dxt-bundling-strategies)
|
|
131
|
-
- [Standard Approach (Recommended for Most Projects)](#standard-approach-recommended-for-most-projects)
|
|
132
|
-
- [Native Dependencies Approach](#native-dependencies-approach)
|
|
133
|
-
- [Typical Errors](#typical-errors)
|
|
134
|
-
- [System Flags & Configuration](#system-flags--configuration)
|
|
135
|
-
- [Changelog](#changelog)
|
|
136
|
-
- [v2.3.0](#v230)
|
|
137
|
-
- [v2.2.1](#v221)
|
|
138
|
-
- [v2.2.0](#v220)
|
|
139
|
-
- [v2.1.1](#v211)
|
|
140
|
-
- [v2.1.0](#v210)
|
|
141
|
-
- [v2.0.0](#v200)
|
|
142
|
-
- [v1.3.0](#v130)
|
|
143
|
-
- [v1.2.0](#v120)
|
|
144
|
-
- [v1.1.0](#v110)
|
|
145
|
-
- [Backlog](#backlog)
|
|
146
|
-
- [(known) Bugs / DX improvement points](#known-bugs--dx-improvement-points)
|
|
147
|
-
|
|
148
91
|
## Features Overview
|
|
149
92
|
|
|
150
93
|
- **Unified Tool Architecture**: Define tools once with `addTool()` and they automatically function as both CLI subcommands and MCP tools.
|
|
@@ -447,7 +390,7 @@ const cli = ArgParser.withMcp({
|
|
|
447
390
|
// parse() is async and works with both sync and async handlers
|
|
448
391
|
async function main() {
|
|
449
392
|
try {
|
|
450
|
-
// Option 1: Auto-detection
|
|
393
|
+
// Option 1: Auto-detection - convenient for simple scripts
|
|
451
394
|
const result = await cli.parse();
|
|
452
395
|
|
|
453
396
|
// Option 2: Explicit arguments - full control
|
|
@@ -604,7 +547,14 @@ Flags are defined using the `IFlag` interface within the `flags` array of a tool
|
|
|
604
547
|
interface IFlag {
|
|
605
548
|
name: string; // Internal name (e.g., 'verbose')
|
|
606
549
|
options: string[]; // Command-line options (e.g., ['--verbose', '-v'])
|
|
607
|
-
type:
|
|
550
|
+
type:
|
|
551
|
+
| "string"
|
|
552
|
+
| "number"
|
|
553
|
+
| "boolean"
|
|
554
|
+
| "array"
|
|
555
|
+
| "object"
|
|
556
|
+
| Function
|
|
557
|
+
| ZodSchema;
|
|
608
558
|
description?: string; // Help text
|
|
609
559
|
mandatory?: boolean | ((args: any) => boolean); // Whether the flag is required
|
|
610
560
|
defaultValue?: any; // Default value if not provided
|
|
@@ -613,9 +563,153 @@ interface IFlag {
|
|
|
613
563
|
validate?: (value: any, parsedArgs?: any) => boolean | string | void; // Custom validation function
|
|
614
564
|
allowMultiple?: boolean; // Allow the flag to be provided multiple times
|
|
615
565
|
env?: string; // Links the flag to an environment variable for DXT packages, will automatically generate user_config entries in the DXT manifest and fill the flag value to the ENV value if found (process.env)
|
|
566
|
+
dxtOptions?: DxtOptions; // Customizes how this flag appears in DXT package user_config
|
|
567
|
+
}
|
|
568
|
+
|
|
569
|
+
interface DxtOptions {
|
|
570
|
+
type?: "string" | "directory" | "file" | "boolean" | "number"; // UI input type in Claude Desktop
|
|
571
|
+
title?: string; // Display name in Claude Desktop (defaults to formatted flag name)
|
|
572
|
+
sensitive?: boolean; // Whether to hide the value in UI (defaults to true for security)
|
|
573
|
+
default?: any; // Default value for the user_config entry
|
|
574
|
+
min?: number; // Minimum value (for number types)
|
|
575
|
+
max?: number; // Maximum value (for number types)
|
|
576
|
+
}
|
|
577
|
+
```
|
|
578
|
+
|
|
579
|
+
### DXT Package User Configuration & Path Handling
|
|
580
|
+
|
|
581
|
+
ArgParser v2.5.0 introduces comprehensive DXT (Desktop Extension Toolkit) support with rich user interfaces, automatic path resolution, and context-aware development tools.
|
|
582
|
+
|
|
583
|
+
#### Enhanced dxtOptions
|
|
584
|
+
|
|
585
|
+
When generating DXT packages with `--s-build-dxt`, you can create rich user configuration interfaces using `dxtOptions`:
|
|
586
|
+
|
|
587
|
+
```typescript
|
|
588
|
+
import { ArgParser, DxtPathResolver } from "@alcyone-labs/arg-parser";
|
|
589
|
+
|
|
590
|
+
const parser = new ArgParser()
|
|
591
|
+
.withMcp({
|
|
592
|
+
name: "file-processor",
|
|
593
|
+
version: "1.0.0",
|
|
594
|
+
logPath: "${HOME}/logs/file-processor.log", // DXT variables supported!
|
|
595
|
+
})
|
|
596
|
+
.addFlag({
|
|
597
|
+
name: "input-file",
|
|
598
|
+
description: "File to process",
|
|
599
|
+
type: "string",
|
|
600
|
+
mandatory: true,
|
|
601
|
+
dxtOptions: {
|
|
602
|
+
type: "file",
|
|
603
|
+
title: "Select Input File",
|
|
604
|
+
},
|
|
605
|
+
})
|
|
606
|
+
.addFlag({
|
|
607
|
+
name: "output-dir",
|
|
608
|
+
description: "Output directory for processed files",
|
|
609
|
+
type: "string",
|
|
610
|
+
dxtOptions: {
|
|
611
|
+
type: "directory",
|
|
612
|
+
localDefault: "${DOCUMENTS}/processed-files", // Smart defaults with DXT variables
|
|
613
|
+
title: "Output Directory",
|
|
614
|
+
},
|
|
615
|
+
})
|
|
616
|
+
.addFlag({
|
|
617
|
+
name: "api-key",
|
|
618
|
+
description: "API authentication key",
|
|
619
|
+
type: "string",
|
|
620
|
+
env: "API_KEY",
|
|
621
|
+
dxtOptions: {
|
|
622
|
+
type: "string",
|
|
623
|
+
sensitive: true, // Excluded from DXT manifest for security
|
|
624
|
+
title: "API Key",
|
|
625
|
+
},
|
|
626
|
+
})
|
|
627
|
+
.addFlag({
|
|
628
|
+
name: "quality",
|
|
629
|
+
description: "Processing quality (1-100)",
|
|
630
|
+
type: "number",
|
|
631
|
+
dxtOptions: {
|
|
632
|
+
type: "number",
|
|
633
|
+
min: 1,
|
|
634
|
+
max: 100,
|
|
635
|
+
localDefault: 85,
|
|
636
|
+
title: "Quality (%)",
|
|
637
|
+
},
|
|
638
|
+
})
|
|
639
|
+
.addFlag({
|
|
640
|
+
name: "parallel",
|
|
641
|
+
description: "Enable parallel processing",
|
|
642
|
+
type: "boolean",
|
|
643
|
+
dxtOptions: {
|
|
644
|
+
type: "boolean",
|
|
645
|
+
localDefault: true,
|
|
646
|
+
title: "Parallel Processing",
|
|
647
|
+
},
|
|
648
|
+
});
|
|
649
|
+
```
|
|
650
|
+
|
|
651
|
+
#### DXT Variables & Path Resolution
|
|
652
|
+
|
|
653
|
+
ArgParser automatically resolves paths based on your runtime environment:
|
|
654
|
+
|
|
655
|
+
```typescript
|
|
656
|
+
// DXT variables work everywhere - in flags, MCP config, and code
|
|
657
|
+
const logPath = "${HOME}/logs/app.log";
|
|
658
|
+
const configPath = "${DOCUMENTS}/myapp/config.json";
|
|
659
|
+
const resourcePath = "${__dirname}/templates/default.hbs";
|
|
660
|
+
|
|
661
|
+
// Helper functions for common patterns
|
|
662
|
+
const userDataPath = DxtPathResolver.createUserDataPath("cache.db");
|
|
663
|
+
const tempPath = DxtPathResolver.createTempPath("processing.tmp");
|
|
664
|
+
const configPath = DxtPathResolver.createConfigPath("settings.json");
|
|
665
|
+
|
|
666
|
+
// Context detection
|
|
667
|
+
const context = DxtPathResolver.detectContext();
|
|
668
|
+
if (context.isDxt) {
|
|
669
|
+
console.log("Running in DXT environment");
|
|
670
|
+
} else {
|
|
671
|
+
console.log("Running in development");
|
|
616
672
|
}
|
|
617
673
|
```
|
|
618
674
|
|
|
675
|
+
**Supported DXT Variables:**
|
|
676
|
+
|
|
677
|
+
- `${HOME}` - User's home directory
|
|
678
|
+
- `${DOCUMENTS}` - Documents folder
|
|
679
|
+
- `${DOWNLOADS}` - Downloads folder
|
|
680
|
+
- `${DESKTOP}` - Desktop folder
|
|
681
|
+
- `${__dirname}` - Entry point directory (DXT package root in DXT)
|
|
682
|
+
- `${pathSeparator}` - Platform-specific path separator
|
|
683
|
+
- `${DXT_DIR}` - DXT package directory (DXT only)
|
|
684
|
+
- `${EXTENSION_DIR}` - Extension root directory (DXT only)
|
|
685
|
+
|
|
686
|
+
#### dxtOptions Properties
|
|
687
|
+
|
|
688
|
+
| Property | Type | Description |
|
|
689
|
+
| -------------- | ------------------------------------------------------------ | ------------------------------------------------ |
|
|
690
|
+
| `type` | `'string' \| 'file' \| 'directory' \| 'boolean' \| 'number'` | UI component type |
|
|
691
|
+
| `sensitive` | `boolean` | Mark as sensitive (excluded from manifest) |
|
|
692
|
+
| `localDefault` | `string \| number \| boolean` | Default for development (supports DXT variables) |
|
|
693
|
+
| `multiple` | `boolean` | Allow multiple values |
|
|
694
|
+
| `min` / `max` | `number` | Validation constraints |
|
|
695
|
+
| `title` | `string` | Custom display name |
|
|
696
|
+
|
|
697
|
+
#### Security & Best Practices
|
|
698
|
+
|
|
699
|
+
- **Sensitive Data**: Use `sensitive: true` for passwords, API keys, tokens
|
|
700
|
+
- **Smart Defaults**: Use DXT variables in `localDefault` for portable paths
|
|
701
|
+
- **Type Safety**: Match `dxtOptions.type` with flag `type` for validation
|
|
702
|
+
- **Cross-Platform**: Use `${pathSeparator}` for platform-independent paths
|
|
703
|
+
|
|
704
|
+
#### Comprehensive Documentation
|
|
705
|
+
|
|
706
|
+
For detailed guides and examples:
|
|
707
|
+
|
|
708
|
+
- **[DXT Path Handling Guide](./docs/DXT_PATH_HANDLING.md)** - Complete path resolution guide
|
|
709
|
+
- **[dxtOptions API Documentation](./docs/DXT_OPTIONS_API.md)** - Full API reference with examples
|
|
710
|
+
- **[DXT Migration Guide](./docs/DXT_MIGRATION.md)** - Migrate existing applications
|
|
711
|
+
- **[DXT Practical Examples](./docs/DXT_EXAMPLES.md)** - Real-world usage patterns
|
|
712
|
+
|
|
619
713
|
### Type Handling and Validation
|
|
620
714
|
|
|
621
715
|
ArgParser provides **strong typing** for flag definitions with comprehensive validation at both compile-time and runtime. The `type` property accepts multiple formats and ensures type safety throughout your application.
|
|
@@ -756,6 +850,79 @@ const result = await parser.parse(process.argv.slice(2));
|
|
|
756
850
|
// Async custom parser functions
|
|
757
851
|
--config "./settings.json" → parsed JSON from file (async)
|
|
758
852
|
--user-id "123" → user data from API (async)
|
|
853
|
+
|
|
854
|
+
// Zod schema validation (structured JSON)
|
|
855
|
+
--config '{"host":"localhost","port":5432}' → validated object
|
|
856
|
+
--deployment '{"env":"prod","region":"us-east-1"}' → validated object
|
|
857
|
+
```
|
|
858
|
+
|
|
859
|
+
#### Zod Schema Flags (Structured JSON Validation)
|
|
860
|
+
|
|
861
|
+
**Since v2.5.0** - You can now use Zod schemas as flag types for structured JSON input with automatic validation and proper MCP JSON Schema generation:
|
|
862
|
+
|
|
863
|
+
```typescript
|
|
864
|
+
import { z } from "zod";
|
|
865
|
+
|
|
866
|
+
const DatabaseConfigSchema = z.object({
|
|
867
|
+
host: z.string().describe("Database host address"),
|
|
868
|
+
port: z.number().min(1).max(65535).describe("Database port number"),
|
|
869
|
+
credentials: z.object({
|
|
870
|
+
username: z.string().describe("Database username"),
|
|
871
|
+
password: z.string().describe("Database password"),
|
|
872
|
+
}),
|
|
873
|
+
ssl: z.boolean().optional().describe("Enable SSL connection"),
|
|
874
|
+
});
|
|
875
|
+
|
|
876
|
+
const cli = ArgParser.withMcp({
|
|
877
|
+
appName: "Database CLI",
|
|
878
|
+
appCommandName: "db-cli",
|
|
879
|
+
}).addTool({
|
|
880
|
+
name: "connect",
|
|
881
|
+
description: "Connect to database with structured configuration",
|
|
882
|
+
flags: [
|
|
883
|
+
{
|
|
884
|
+
name: "config",
|
|
885
|
+
options: ["--config", "-c"],
|
|
886
|
+
type: DatabaseConfigSchema, // 🎉 Zod schema as type!
|
|
887
|
+
description: "Database configuration as JSON object",
|
|
888
|
+
mandatory: true,
|
|
889
|
+
},
|
|
890
|
+
],
|
|
891
|
+
handler: async (ctx) => {
|
|
892
|
+
// ctx.args.config is fully typed and validated!
|
|
893
|
+
const { host, port, credentials, ssl } = ctx.args.config;
|
|
894
|
+
console.log(`Connecting to ${host}:${port} as ${credentials.username}`);
|
|
895
|
+
return { success: true };
|
|
896
|
+
},
|
|
897
|
+
});
|
|
898
|
+
|
|
899
|
+
// CLI usage with JSON validation:
|
|
900
|
+
// db-cli connect --config '{"host":"localhost","port":5432,"credentials":{"username":"admin","password":"secret"},"ssl":true}'
|
|
901
|
+
|
|
902
|
+
// MCP usage: Generates proper JSON Schema for MCP clients
|
|
903
|
+
// db-cli --s-mcp-serve
|
|
904
|
+
```
|
|
905
|
+
|
|
906
|
+
**Example with Complex Nested Schema:**
|
|
907
|
+
|
|
908
|
+
```typescript
|
|
909
|
+
const DeploymentSchema = z.object({
|
|
910
|
+
environment: z.enum(["dev", "staging", "prod"]),
|
|
911
|
+
region: z.string(),
|
|
912
|
+
scaling: z.object({
|
|
913
|
+
minInstances: z.number().min(1),
|
|
914
|
+
maxInstances: z.number().min(1),
|
|
915
|
+
targetCpu: z.number().min(10).max(100),
|
|
916
|
+
}),
|
|
917
|
+
monitoring: z.object({
|
|
918
|
+
enabled: z.boolean(),
|
|
919
|
+
alertEmail: z.string().email().optional(),
|
|
920
|
+
metrics: z.array(z.string()),
|
|
921
|
+
}),
|
|
922
|
+
});
|
|
923
|
+
|
|
924
|
+
// This generates comprehensive JSON Schema for MCP clients
|
|
925
|
+
// while providing full validation and type safety for CLI usage
|
|
759
926
|
```
|
|
760
927
|
|
|
761
928
|
### Hierarchical CLIs (Sub-Commands)
|
|
@@ -1329,9 +1496,9 @@ const cli = ArgParser.withMcp({
|
|
|
1329
1496
|
ctx.logger.mcpError(`Shutting down: ${ctx.reason}`);
|
|
1330
1497
|
await cleanupResources();
|
|
1331
1498
|
await closeDatabase();
|
|
1332
|
-
}
|
|
1333
|
-
}
|
|
1334
|
-
}
|
|
1499
|
+
},
|
|
1500
|
+
},
|
|
1501
|
+
},
|
|
1335
1502
|
});
|
|
1336
1503
|
```
|
|
1337
1504
|
|
|
@@ -1344,6 +1511,7 @@ const cli = ArgParser.withMcp({
|
|
|
1344
1511
|
**Context Properties:**
|
|
1345
1512
|
|
|
1346
1513
|
Each lifecycle event receives a context object with:
|
|
1514
|
+
|
|
1347
1515
|
- `getFlag(name)`: Access parsed CLI flags and environment variables
|
|
1348
1516
|
- `logger`: MCP-compliant logger instance for the current context
|
|
1349
1517
|
- `serverInfo`: Server information (name, version, description)
|
|
@@ -1746,6 +1914,54 @@ ArgParser includes built-in `--s-*` flags for development, debugging, and config
|
|
|
1746
1914
|
|
|
1747
1915
|
## Changelog
|
|
1748
1916
|
|
|
1917
|
+
### v2.6.0
|
|
1918
|
+
|
|
1919
|
+
**Feat**
|
|
1920
|
+
|
|
1921
|
+
**DXT**:
|
|
1922
|
+
|
|
1923
|
+
- Improve how paths and dynamic variables are handled when bundling into a DXT, to improve compatibility and reduce paths that will fail in a sandbox when the CLI / MCP expects path available on the system. Dynamic path resolution with `${VARIABLE}` syntax supporting `${HOME}`, `${DOCUMENTS}`, `${__dirname}`, `${DXT_DIR}`, and more. Context-aware path resolution with `DxtPathResolver.createUserDataPath()`, `createTempPath()`, `createConfigPath()`.
|
|
1924
|
+
- Add new IFlag.dxtOption set of options for each flag to allow finer control on how the flags are perceived on the DXT manifest / Claude Desktop.
|
|
1925
|
+
|
|
1926
|
+
Read more her: [DXT Package User Configuration & Path Handling](#dxt-package-user-configuration--path-handling)
|
|
1927
|
+
|
|
1928
|
+
**Fixes and Changes**
|
|
1929
|
+
|
|
1930
|
+
**DXT**:
|
|
1931
|
+
|
|
1932
|
+
- Improve handling of sensitive env variable, they were previously always showing as sensitive.
|
|
1933
|
+
|
|
1934
|
+
**Known Limitations**
|
|
1935
|
+
|
|
1936
|
+
**DXT**:
|
|
1937
|
+
|
|
1938
|
+
The DXT bundling / packing / unpacking / launching process is notoriously early and brittle. There are many reasons something is not working, but **MOST** importantly it will not work if:
|
|
1939
|
+
|
|
1940
|
+
1. You are bundling a package in a mono-repo (you will need to temporarily create a pnpm-workspace.yaml file for example to break the hierarchy)
|
|
1941
|
+
2. You do _not_ hard-install your node_modules as detailed in the documentation (it will only work if the node_modules are hard installed)
|
|
1942
|
+
3. In some cases if your CLI entrypoint does not run a main loop (see documentation for working examples)
|
|
1943
|
+
4. If you use PATH-dependent variables (for example relying on ~/.config/path/to/some.json). This has been addressed in v2.6.0, but you have to make sure you use the correct patterns (see documentation)
|
|
1944
|
+
|
|
1945
|
+
### v2.5.0
|
|
1946
|
+
|
|
1947
|
+
**Feat**
|
|
1948
|
+
|
|
1949
|
+
- **Zod Schema Flags**: You can now use Zod schemas as flag types for structured JSON input validation. This enables complex object validation with automatic JSON Schema generation for MCP clients while maintaining full type safety and CLI compatibility.
|
|
1950
|
+
- **Improved MCP Tool Documentation**: Zod schema descriptions automatically become MCP tool parameter documentation
|
|
1951
|
+
|
|
1952
|
+
### v2.4.2
|
|
1953
|
+
|
|
1954
|
+
**Fixes and Changes**
|
|
1955
|
+
|
|
1956
|
+
- add missing MCP lifecycle event documentation
|
|
1957
|
+
- fix the behavior of the withMcp() options.mcp.log that was not working as expected
|
|
1958
|
+
|
|
1959
|
+
### v2.4.1
|
|
1960
|
+
|
|
1961
|
+
**Fixes and Changes**
|
|
1962
|
+
|
|
1963
|
+
- switch to NPM version of @alcyone-labs/modelcontextprotocol-sdk to freeze the dependency and avoid side-effects
|
|
1964
|
+
|
|
1749
1965
|
### v2.4.0
|
|
1750
1966
|
|
|
1751
1967
|
**Feat**
|
|
@@ -1754,7 +1970,7 @@ ArgParser includes built-in `--s-*` flags for development, debugging, and config
|
|
|
1754
1970
|
- MCP client now sanitizes the method names to ensure spec-compliants MCP behavior, names that collision will be logged
|
|
1755
1971
|
- There were some use-cases where the DXT bundling failed, this new release addresses all of them, namely:
|
|
1756
1972
|
1. Output structure will match that of the input so relative files (for example DB migrations) will work
|
|
1757
|
-
2.
|
|
1973
|
+
2. Deeper folder structure was previously not working
|
|
1758
1974
|
- DXT bundling now supports including resources via options: `{dxt: {include: ['TSDown blob-like paths']}`
|
|
1759
1975
|
- Logger was improved to support log level via `options:{ log: {} }` so you can set it to level: 'debug' and the MCP log will contain 100% of the console output, logPath setting was not impacted
|
|
1760
1976
|
|
|
@@ -1848,8 +2064,8 @@ Make sure to clearly identify if you need to include the node_modules or not. In
|
|
|
1848
2064
|
- [x] Upgrade to Zod/V4 (V4 does not support functions well, this will take more time, not a priority)
|
|
1849
2065
|
- [ ] Add System flags to args.systemArgs
|
|
1850
2066
|
- [ ] Improve flag options collision prevention
|
|
1851
|
-
- [ ] Add support for locales / translations
|
|
1852
2067
|
- [ ] (potentially) add support for fully typed parsed output, this has proven very challenging
|
|
2068
|
+
- [ ] Add support for locales / translations
|
|
1853
2069
|
|
|
1854
2070
|
### (known) Bugs / DX improvement points
|
|
1855
2071
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArgParserBase.d.ts","sourceRoot":"","sources":["../../src/core/ArgParserBase.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,aAAa,EACb,uBAAuB,EACxB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EACV,KAAK,EACL,eAAe,EACf,WAAW,EACX,WAAW,EACX,aAAa,EACb,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB,qBAAa,cAAe,SAAQ,KAAK;IAI9B,QAAQ,EAAE,MAAM,EAAE;IAHpB,YAAY,EAAE,MAAM,EAAE,CAAC;gBAE5B,OAAO,EAAE,MAAM,EACR,QAAQ,GAAE,MAAM,EAAO;CAMjC;AAED,MAAM,WAAW,gBAAgB,CAAC,cAAc,GAAG,GAAG;IACpD;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,CACR,GAAG,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,KAC3B,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAE9C;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,KAAK,sBAAsB,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;IACzC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,gBAAgB,CAAC,EAAE;QAAE,OAAO,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,eAAe,CAAA;KAAE,CAAC;CACpE,CAAC;AAOF,qBAAa,aAAa,CAAC,cAAc,GAAG,GAAG;;gBA+B3C,OAAO,GAAE,gBAAgB,CAAC,cAAc,CAAM,EAC9C,YAAY,CAAC,EAAE,SAAS,KAAK,EAAE;IAoEjC,IAAI,KAAK,IAAI,aAAa,EAAE,CAE3B;IAED,IAAI,SAAS,IAAI,MAAM,EAAE,CAExB;IAEM,UAAU,IAAI,MAAM,GAAG,SAAS;IAIhC,iBAAiB,IAAI,MAAM,GAAG,SAAS;IAIvC,iBAAiB,IAAI,MAAM;IAI3B,cAAc,IAAI,MAAM,GAAG,SAAS;IAIpC,WAAW,IAAI,OAAO;IAI7B;;;OAGG;IACH,OAAO,CAAC,WAAW;IA0BZ,UAAU,IAAI,CAAC,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,CAAC,GAAG,SAAS;IAI1D,cAAc,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;YAInC,YAAY;
|
|
1
|
+
{"version":3,"file":"ArgParserBase.d.ts","sourceRoot":"","sources":["../../src/core/ArgParserBase.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlagManager.d.ts","sourceRoot":"","sources":["../../src/core/FlagManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEpD,qBAAa,WAAW;;gBAKpB,OAAO,GAAE;QAAE,sBAAsB,CAAC,EAAE,OAAO,CAAA;KAAO,EAClD,YAAY,GAAE,SAAS,KAAK,EAAO;IAMrC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG,aAAa;
|
|
1
|
+
{"version":3,"file":"FlagManager.d.ts","sourceRoot":"","sources":["../../src/core/FlagManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEpD,qBAAa,WAAW;;gBAKpB,OAAO,GAAE;QAAE,sBAAsB,CAAC,EAAE,OAAO,CAAA;KAAO,EAClD,YAAY,GAAE,SAAS,KAAK,EAAO;IAMrC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG,aAAa;IA0C5C,OAAO,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI;IAoB1B,+BAA+B,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI;IAQnE,QAAQ,CAAC,KAAK,EAAE,SAAS,KAAK,EAAE,GAAG,IAAI;IAOvC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI9B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIhD,IAAI,KAAK,IAAI,aAAa,EAAE,CAE3B;IAED,IAAI,SAAS,IAAI,MAAM,EAAE,CAExB;CACF"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context information for path resolution
|
|
3
|
+
*/
|
|
4
|
+
export interface IPathContext {
|
|
5
|
+
/** Whether the code is running in a DXT environment */
|
|
6
|
+
isDxt: boolean;
|
|
7
|
+
/** DXT extension directory (when running in DXT) */
|
|
8
|
+
extensionDir?: string;
|
|
9
|
+
/** User's home directory */
|
|
10
|
+
userHome?: string;
|
|
11
|
+
/** Current working directory */
|
|
12
|
+
cwd?: string;
|
|
13
|
+
/** Entry point directory */
|
|
14
|
+
entryDir?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Configuration for DXT variable substitution
|
|
18
|
+
*/
|
|
19
|
+
export interface IDxtVariableConfig {
|
|
20
|
+
/** Custom variable values to override defaults */
|
|
21
|
+
customVariables?: Record<string, string>;
|
|
22
|
+
/** Whether to allow undefined variables (default: false) */
|
|
23
|
+
allowUndefined?: boolean;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* DXT-aware path resolver with context detection and variable substitution
|
|
27
|
+
*/
|
|
28
|
+
export declare class DxtPathResolver {
|
|
29
|
+
private static _cachedContext;
|
|
30
|
+
/**
|
|
31
|
+
* Detects the current execution context
|
|
32
|
+
* @param forceRefresh - Force refresh of cached context
|
|
33
|
+
* @returns Path context information
|
|
34
|
+
*/
|
|
35
|
+
static detectContext(forceRefresh?: boolean): IPathContext;
|
|
36
|
+
/**
|
|
37
|
+
* Checks if the current environment is a DXT environment
|
|
38
|
+
* @returns True if running in DXT, false otherwise
|
|
39
|
+
*/
|
|
40
|
+
static isDxtEnvironment(): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Detects the DXT extension directory
|
|
43
|
+
* @returns DXT extension directory path or undefined
|
|
44
|
+
*/
|
|
45
|
+
private static detectDxtExtensionDir;
|
|
46
|
+
/**
|
|
47
|
+
* Resolves a path with DXT variable substitution
|
|
48
|
+
* @param inputPath - Path that may contain DXT variables
|
|
49
|
+
* @param context - Optional context (will be detected if not provided)
|
|
50
|
+
* @param config - Optional configuration for variable substitution
|
|
51
|
+
* @returns Resolved absolute path
|
|
52
|
+
*/
|
|
53
|
+
static resolvePath(inputPath: string, context?: IPathContext, config?: IDxtVariableConfig): string;
|
|
54
|
+
/**
|
|
55
|
+
* Substitutes DXT variables in a path string
|
|
56
|
+
* @param inputPath - Path containing variables like ${HOME}, ${__dirname}, etc.
|
|
57
|
+
* @param context - Path context
|
|
58
|
+
* @param config - Variable substitution configuration
|
|
59
|
+
* @returns Path with variables substituted
|
|
60
|
+
*/
|
|
61
|
+
static substituteVariables(inputPath: string, context: IPathContext, config?: IDxtVariableConfig): string;
|
|
62
|
+
/**
|
|
63
|
+
* Creates a path for user data storage
|
|
64
|
+
* @param filename - Name of the file or subdirectory
|
|
65
|
+
* @param context - Optional context (will be detected if not provided)
|
|
66
|
+
* @returns Absolute path for user data
|
|
67
|
+
*/
|
|
68
|
+
static createUserDataPath(filename: string, context?: IPathContext): string;
|
|
69
|
+
/**
|
|
70
|
+
* Creates a path for temporary files
|
|
71
|
+
* @param filename - Name of the temporary file
|
|
72
|
+
* @param context - Optional context (will be detected if not provided)
|
|
73
|
+
* @returns Absolute path for temporary file
|
|
74
|
+
*/
|
|
75
|
+
static createTempPath(filename: string, context?: IPathContext): string;
|
|
76
|
+
/**
|
|
77
|
+
* Creates a path for configuration files
|
|
78
|
+
* @param filename - Name of the configuration file
|
|
79
|
+
* @param context - Optional context (will be detected if not provided)
|
|
80
|
+
* @returns Absolute path for configuration file
|
|
81
|
+
*/
|
|
82
|
+
static createConfigPath(filename: string, context?: IPathContext): string;
|
|
83
|
+
/**
|
|
84
|
+
* Gets the application name for directory creation
|
|
85
|
+
* @param context - Path context
|
|
86
|
+
* @returns Application name or default
|
|
87
|
+
*/
|
|
88
|
+
private static getAppName;
|
|
89
|
+
/**
|
|
90
|
+
* Ensures a directory exists, creating it if necessary
|
|
91
|
+
* @param dirPath - Directory path to ensure
|
|
92
|
+
* @returns True if directory exists or was created successfully
|
|
93
|
+
*/
|
|
94
|
+
static ensureDirectory(dirPath: string): boolean;
|
|
95
|
+
/**
|
|
96
|
+
* Clears the cached context (useful for testing)
|
|
97
|
+
*/
|
|
98
|
+
static clearCache(): void;
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=dxt-path-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dxt-path-resolver.d.ts","sourceRoot":"","sources":["../../src/core/dxt-path-resolver.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,uDAAuD;IACvD,KAAK,EAAE,OAAO,CAAC;IACf,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,kDAAkD;IAClD,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,4DAA4D;IAC5D,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,cAAc,CAA6B;IAE1D;;;;OAIG;WACW,aAAa,CAAC,YAAY,UAAQ,GAAG,YAAY;IA0B/D;;;OAGG;WACW,gBAAgB,IAAI,OAAO;IAwCzC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IA6BpC;;;;;;OAMG;WACW,WAAW,CACvB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,YAAY,EACtB,MAAM,CAAC,EAAE,kBAAkB,GAC1B,MAAM;IAmBT;;;;;;OAMG;WACW,mBAAmB,CAC/B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,YAAY,EACrB,MAAM,CAAC,EAAE,kBAAkB,GAC1B,MAAM;IAuDT;;;;;OAKG;WACW,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM;IAgBlF;;;;;OAKG;WACW,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM;IAc9E;;;;;OAKG;WACW,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM;IAgBhF;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAezB;;;;OAIG;WACW,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAYvD;;OAEG;WACW,UAAU,IAAI,IAAI;CAGjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-path-utils.d.ts","sourceRoot":"","sources":["../../src/core/log-path-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"log-path-utils.d.ts","sourceRoot":"","sources":["../../src/core/log-path-utils.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,UAAU,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,UAAU,CAAC;IAC1C,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,aAAa,CAAC;AAE7C;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CA0BhD;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAMzE;AAYD;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,EAChB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,MAAM,CAiFR;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAKzD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAKvD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,aAAa,CAM3E;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD"}
|