@defai.digital/ax-cli 3.7.2 → 3.8.1
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 +128 -56
- package/dist/agent/context-manager.d.ts +15 -1
- package/dist/agent/context-manager.js +50 -19
- package/dist/agent/context-manager.js.map +1 -1
- package/dist/agent/dependency-resolver.js +13 -7
- package/dist/agent/dependency-resolver.js.map +1 -1
- package/dist/agent/llm-agent.d.ts +35 -0
- package/dist/agent/llm-agent.js +137 -4
- package/dist/agent/llm-agent.js.map +1 -1
- package/dist/agent/status-reporter.d.ts +114 -0
- package/dist/agent/status-reporter.js +335 -0
- package/dist/agent/status-reporter.js.map +1 -0
- package/dist/analyzers/best-practices/rules/typescript/no-magic-numbers.js +8 -2
- package/dist/analyzers/best-practices/rules/typescript/no-magic-numbers.js.map +1 -1
- package/dist/analyzers/best-practices/rules/typescript/no-unused-vars.js +3 -1
- package/dist/analyzers/best-practices/rules/typescript/no-unused-vars.js.map +1 -1
- package/dist/analyzers/best-practices/rules/typescript/prefer-const.js +3 -1
- package/dist/analyzers/best-practices/rules/typescript/prefer-const.js.map +1 -1
- package/dist/analyzers/best-practices/rules/typescript/prefer-readonly.js +3 -1
- package/dist/analyzers/best-practices/rules/typescript/prefer-readonly.js.map +1 -1
- package/dist/analyzers/code-smells/detectors/duplicate-code-detector.js +9 -3
- package/dist/analyzers/code-smells/detectors/duplicate-code-detector.js.map +1 -1
- package/dist/analyzers/git/churn-calculator.d.ts +1 -0
- package/dist/analyzers/git/churn-calculator.js +25 -6
- package/dist/analyzers/git/churn-calculator.js.map +1 -1
- package/dist/analyzers/git/hotspot-detector.js +2 -2
- package/dist/analyzers/git/hotspot-detector.js.map +1 -1
- package/dist/analyzers/metrics/metrics-analyzer.js +1 -1
- package/dist/analyzers/metrics/metrics-analyzer.js.map +1 -1
- package/dist/analyzers/security/security-analyzer.js +1 -1
- package/dist/analyzers/security/security-analyzer.js.map +1 -1
- package/dist/checkpoint/manager.d.ts +1 -0
- package/dist/checkpoint/manager.js +49 -9
- package/dist/checkpoint/manager.js.map +1 -1
- package/dist/checkpoint/storage.js +2 -2
- package/dist/checkpoint/storage.js.map +1 -1
- package/dist/commands/mcp-migrate.d.ts +9 -0
- package/dist/commands/mcp-migrate.js +172 -0
- package/dist/commands/mcp-migrate.js.map +1 -0
- package/dist/commands/status.d.ts +7 -0
- package/dist/commands/status.js +211 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/vscode.d.ts +7 -0
- package/dist/commands/vscode.js +363 -0
- package/dist/commands/vscode.js.map +1 -0
- package/dist/index.js +79 -30
- package/dist/index.js.map +1 -1
- package/dist/llm/client.js +22 -4
- package/dist/llm/client.js.map +1 -1
- package/dist/mcp/automatosx-loader.d.ts +84 -0
- package/dist/mcp/automatosx-loader.js +238 -0
- package/dist/mcp/automatosx-loader.js.map +1 -0
- package/dist/mcp/client-mutex-patch.d.ts +36 -0
- package/dist/mcp/client-mutex-patch.js +75 -0
- package/dist/mcp/client-mutex-patch.js.map +1 -0
- package/dist/mcp/client-v2.d.ts +229 -0
- package/dist/mcp/client-v2.js +740 -0
- package/dist/mcp/client-v2.js.map +1 -0
- package/dist/mcp/client.d.ts +111 -13
- package/dist/mcp/client.js +168 -253
- package/dist/mcp/client.js.map +1 -1
- package/dist/mcp/config-detector-v2.d.ts +83 -0
- package/dist/mcp/config-detector-v2.js +328 -0
- package/dist/mcp/config-detector-v2.js.map +1 -0
- package/dist/mcp/config-detector.d.ts +90 -0
- package/dist/mcp/config-detector.js +242 -0
- package/dist/mcp/config-detector.js.map +1 -0
- package/dist/mcp/config-migrator-v2.d.ts +89 -0
- package/dist/mcp/config-migrator-v2.js +288 -0
- package/dist/mcp/config-migrator-v2.js.map +1 -0
- package/dist/mcp/config-migrator.d.ts +63 -0
- package/dist/mcp/config-migrator.js +269 -0
- package/dist/mcp/config-migrator.js.map +1 -0
- package/dist/mcp/config-v2.d.ts +106 -0
- package/dist/mcp/config-v2.js +417 -0
- package/dist/mcp/config-v2.js.map +1 -0
- package/dist/mcp/config.d.ts +12 -1
- package/dist/mcp/config.js +95 -10
- package/dist/mcp/config.js.map +1 -1
- package/dist/mcp/error-formatter.d.ts +46 -0
- package/dist/mcp/error-formatter.js +244 -0
- package/dist/mcp/error-formatter.js.map +1 -0
- package/dist/mcp/health.d.ts +5 -0
- package/dist/mcp/health.js +22 -2
- package/dist/mcp/health.js.map +1 -1
- package/dist/mcp/invariants.d.ts +141 -0
- package/dist/mcp/invariants.js +243 -0
- package/dist/mcp/invariants.js.map +1 -0
- package/dist/mcp/mutex-safe.d.ts +153 -0
- package/dist/mcp/mutex-safe.js +260 -0
- package/dist/mcp/mutex-safe.js.map +1 -0
- package/dist/mcp/mutex.d.ts +73 -0
- package/dist/mcp/mutex.js +130 -0
- package/dist/mcp/mutex.js.map +1 -0
- package/dist/mcp/reconnection.d.ts +4 -0
- package/dist/mcp/reconnection.js +15 -0
- package/dist/mcp/reconnection.js.map +1 -1
- package/dist/mcp/transports-v2.d.ts +152 -0
- package/dist/mcp/transports-v2.js +481 -0
- package/dist/mcp/transports-v2.js.map +1 -0
- package/dist/mcp/type-safety.d.ts +231 -0
- package/dist/mcp/type-safety.js +273 -0
- package/dist/mcp/type-safety.js.map +1 -0
- package/dist/planner/task-planner.js +13 -0
- package/dist/planner/task-planner.js.map +1 -1
- package/dist/planner/types.d.ts +6 -6
- package/dist/schemas/confirmation-schemas.d.ts +2 -2
- package/dist/schemas/settings-schemas.d.ts +196 -0
- package/dist/schemas/settings-schemas.js +146 -5
- package/dist/schemas/settings-schemas.js.map +1 -1
- package/dist/sdk/index.d.ts +118 -2
- package/dist/sdk/index.js +146 -4
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/testing.d.ts +182 -0
- package/dist/sdk/testing.js +231 -0
- package/dist/sdk/testing.js.map +1 -1
- package/dist/sdk/version.d.ts +114 -15
- package/dist/sdk/version.js +137 -15
- package/dist/sdk/version.js.map +1 -1
- package/dist/tools/bash.js +54 -9
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/registry.d.ts +146 -0
- package/dist/tools/registry.js +170 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/search.js +12 -2
- package/dist/tools/search.js.map +1 -1
- package/dist/tools/text-editor.js +84 -26
- package/dist/tools/text-editor.js.map +1 -1
- package/dist/ui/components/chat-history.js +6 -1
- package/dist/ui/components/chat-history.js.map +1 -1
- package/dist/ui/components/chat-input.d.ts +2 -1
- package/dist/ui/components/chat-input.js +5 -2
- package/dist/ui/components/chat-input.js.map +1 -1
- package/dist/ui/components/chat-interface.js +187 -5
- package/dist/ui/components/chat-interface.js.map +1 -1
- package/dist/ui/components/context-breakdown.d.ts +23 -0
- package/dist/ui/components/context-breakdown.js +124 -0
- package/dist/ui/components/context-breakdown.js.map +1 -0
- package/dist/ui/components/keyboard-help.d.ts +17 -0
- package/dist/ui/components/keyboard-help.js +116 -0
- package/dist/ui/components/keyboard-help.js.map +1 -0
- package/dist/ui/components/keyboard-hints.js +2 -2
- package/dist/ui/components/keyboard-hints.js.map +1 -1
- package/dist/ui/components/quick-actions.js +43 -7
- package/dist/ui/components/quick-actions.js.map +1 -1
- package/dist/ui/components/status-bar.d.ts +3 -0
- package/dist/ui/components/status-bar.js +25 -16
- package/dist/ui/components/status-bar.js.map +1 -1
- package/dist/ui/components/toast-notification.d.ts +42 -0
- package/dist/ui/components/toast-notification.js +30 -2
- package/dist/ui/components/toast-notification.js.map +1 -1
- package/dist/ui/components/tool-group-display.js +34 -4
- package/dist/ui/components/tool-group-display.js.map +1 -1
- package/dist/ui/components/welcome-panel.js +2 -2
- package/dist/ui/components/welcome-panel.js.map +1 -1
- package/dist/ui/hooks/use-enhanced-input.d.ts +9 -1
- package/dist/ui/hooks/use-enhanced-input.js +486 -41
- package/dist/ui/hooks/use-enhanced-input.js.map +1 -1
- package/dist/ui/hooks/use-input-handler.d.ts +11 -1
- package/dist/ui/hooks/use-input-handler.js +67 -3
- package/dist/ui/hooks/use-input-handler.js.map +1 -1
- package/dist/ui/hooks/use-input-history.d.ts +1 -1
- package/dist/ui/hooks/use-input-history.js +50 -14
- package/dist/ui/hooks/use-input-history.js.map +1 -1
- package/dist/ui/utils/bracketed-paste-handler.d.ts +97 -0
- package/dist/ui/utils/bracketed-paste-handler.js +322 -0
- package/dist/ui/utils/bracketed-paste-handler.js.map +1 -0
- package/dist/ui/utils/change-summarizer.js +16 -6
- package/dist/ui/utils/change-summarizer.js.map +1 -1
- package/dist/ui/utils/tool-grouper.d.ts +10 -1
- package/dist/ui/utils/tool-grouper.js +143 -30
- package/dist/ui/utils/tool-grouper.js.map +1 -1
- package/dist/utils/auto-accept-logger.d.ts +173 -0
- package/dist/utils/auto-accept-logger.js +420 -0
- package/dist/utils/auto-accept-logger.js.map +1 -0
- package/dist/utils/background-task-manager.d.ts +11 -0
- package/dist/utils/background-task-manager.js +124 -38
- package/dist/utils/background-task-manager.js.map +1 -1
- package/dist/utils/confirmation-service.d.ts +1 -0
- package/dist/utils/confirmation-service.js +6 -1
- package/dist/utils/confirmation-service.js.map +1 -1
- package/dist/utils/encryption.d.ts +8 -0
- package/dist/utils/encryption.js +44 -27
- package/dist/utils/encryption.js.map +1 -1
- package/dist/utils/enhanced-error-messages.d.ts +33 -0
- package/dist/utils/enhanced-error-messages.js +420 -0
- package/dist/utils/enhanced-error-messages.js.map +1 -0
- package/dist/utils/error-handler.d.ts +13 -3
- package/dist/utils/error-handler.js +16 -4
- package/dist/utils/error-handler.js.map +1 -1
- package/dist/utils/external-editor.d.ts +47 -0
- package/dist/utils/external-editor.js +179 -0
- package/dist/utils/external-editor.js.map +1 -0
- package/dist/utils/history-migration.d.ts +9 -0
- package/dist/utils/history-migration.js +36 -0
- package/dist/utils/history-migration.js.map +1 -0
- package/dist/utils/paste-utils.js +12 -11
- package/dist/utils/paste-utils.js.map +1 -1
- package/dist/utils/rate-limiter.js +7 -0
- package/dist/utils/rate-limiter.js.map +1 -1
- package/dist/utils/safety-rules.d.ts +64 -0
- package/dist/utils/safety-rules.js +225 -0
- package/dist/utils/safety-rules.js.map +1 -0
- package/dist/utils/settings-manager.d.ts +89 -1
- package/dist/utils/settings-manager.js +359 -3
- package/dist/utils/settings-manager.js.map +1 -1
- package/dist/utils/token-counter.d.ts +2 -0
- package/dist/utils/token-counter.js +17 -4
- package/dist/utils/token-counter.js.map +1 -1
- package/dist/utils/version.d.ts +11 -2
- package/dist/utils/version.js +54 -21
- package/dist/utils/version.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Advanced Type Safety for MCP Implementation
|
|
3
|
+
*
|
|
4
|
+
* This file implements compile-time safety mechanisms to catch logic bugs
|
|
5
|
+
* that regular TypeScript can't detect. Uses advanced type system features:
|
|
6
|
+
*
|
|
7
|
+
* 1. Branded Types - Prevent mixing similar primitive types
|
|
8
|
+
* 2. State Machines - Enforce valid state transitions
|
|
9
|
+
* 3. Exhaustiveness Checking - Ensure all cases handled
|
|
10
|
+
* 4. Phantom Types - Encode runtime invariants in types
|
|
11
|
+
* 5. Linear Types - Ensure resources are used exactly once
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* TECHNIQUE 1: Branded Types
|
|
15
|
+
* Prevents mixing semantically different strings/numbers
|
|
16
|
+
*/
|
|
17
|
+
declare const __brand: unique symbol;
|
|
18
|
+
type Brand<T, TBrand> = T & {
|
|
19
|
+
[__brand]: TBrand;
|
|
20
|
+
};
|
|
21
|
+
export type ServerName = Brand<string, 'ServerName'>;
|
|
22
|
+
export type ConfigFilePath = Brand<string, 'ConfigFilePath'>;
|
|
23
|
+
export type ToolName = Brand<string, 'ToolName'>;
|
|
24
|
+
export type LockToken = Brand<symbol, 'LockToken'>;
|
|
25
|
+
/**
|
|
26
|
+
* Smart constructor for ServerName
|
|
27
|
+
* Validates server name format at runtime
|
|
28
|
+
*/
|
|
29
|
+
export declare function createServerName(name: string): ServerName | null;
|
|
30
|
+
/**
|
|
31
|
+
* Smart constructor for ConfigFilePath
|
|
32
|
+
*/
|
|
33
|
+
export declare function createConfigFilePath(path: string): ConfigFilePath | null;
|
|
34
|
+
/**
|
|
35
|
+
* Smart constructor for ToolName
|
|
36
|
+
* Validates tool name format at runtime
|
|
37
|
+
*/
|
|
38
|
+
export declare function createToolName(name: string): ToolName | null;
|
|
39
|
+
/**
|
|
40
|
+
* TECHNIQUE 2: State Machine Types
|
|
41
|
+
* Enforce valid state transitions at compile time
|
|
42
|
+
*/
|
|
43
|
+
export type ConnectionState = {
|
|
44
|
+
status: 'idle';
|
|
45
|
+
serverName: ServerName;
|
|
46
|
+
} | {
|
|
47
|
+
status: 'connecting';
|
|
48
|
+
serverName: ServerName;
|
|
49
|
+
startedAt: number;
|
|
50
|
+
} | {
|
|
51
|
+
status: 'connected';
|
|
52
|
+
serverName: ServerName;
|
|
53
|
+
connectedAt: number;
|
|
54
|
+
client: any;
|
|
55
|
+
} | {
|
|
56
|
+
status: 'disconnecting';
|
|
57
|
+
serverName: ServerName;
|
|
58
|
+
client: any;
|
|
59
|
+
} | {
|
|
60
|
+
status: 'failed';
|
|
61
|
+
serverName: ServerName;
|
|
62
|
+
error: Error;
|
|
63
|
+
failedAt: number;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Valid state transitions - compile-time enforced
|
|
67
|
+
*/
|
|
68
|
+
export type ValidTransition<T extends ConnectionState> = T extends {
|
|
69
|
+
status: 'idle';
|
|
70
|
+
} ? {
|
|
71
|
+
status: 'connecting';
|
|
72
|
+
serverName: T['serverName'];
|
|
73
|
+
startedAt: number;
|
|
74
|
+
} : T extends {
|
|
75
|
+
status: 'connecting';
|
|
76
|
+
} ? {
|
|
77
|
+
status: 'connected';
|
|
78
|
+
serverName: T['serverName'];
|
|
79
|
+
connectedAt: number;
|
|
80
|
+
client: any;
|
|
81
|
+
} | {
|
|
82
|
+
status: 'failed';
|
|
83
|
+
serverName: T['serverName'];
|
|
84
|
+
error: Error;
|
|
85
|
+
failedAt: number;
|
|
86
|
+
} : T extends {
|
|
87
|
+
status: 'connected';
|
|
88
|
+
} ? {
|
|
89
|
+
status: 'disconnecting';
|
|
90
|
+
serverName: T['serverName'];
|
|
91
|
+
client: T['client'];
|
|
92
|
+
} : T extends {
|
|
93
|
+
status: 'disconnecting';
|
|
94
|
+
} ? {
|
|
95
|
+
status: 'idle';
|
|
96
|
+
serverName: T['serverName'];
|
|
97
|
+
} : T extends {
|
|
98
|
+
status: 'failed';
|
|
99
|
+
} ? {
|
|
100
|
+
status: 'idle';
|
|
101
|
+
serverName: T['serverName'];
|
|
102
|
+
} : never;
|
|
103
|
+
/**
|
|
104
|
+
* Type-safe state transition
|
|
105
|
+
* PREVENTS: Invalid state transitions at compile time
|
|
106
|
+
*/
|
|
107
|
+
export declare function transition<T extends ConnectionState>(_from: T, to: ValidTransition<T>): ValidTransition<T>;
|
|
108
|
+
/**
|
|
109
|
+
* TECHNIQUE 3: Exhaustiveness Checking
|
|
110
|
+
* Ensures all cases are handled (prevents forgotten branches)
|
|
111
|
+
*/
|
|
112
|
+
export declare function assertNever(value: never): never;
|
|
113
|
+
/**
|
|
114
|
+
* Example: Handle all connection states
|
|
115
|
+
*/
|
|
116
|
+
export declare function handleConnectionState(state: ConnectionState): string;
|
|
117
|
+
/**
|
|
118
|
+
* TECHNIQUE 4: Phantom Types
|
|
119
|
+
* Encode runtime invariants in the type system
|
|
120
|
+
*/
|
|
121
|
+
export type NonEmptyArray<T> = [T, ...T[]];
|
|
122
|
+
/**
|
|
123
|
+
* Smart constructor that proves array is non-empty
|
|
124
|
+
*/
|
|
125
|
+
export declare function asNonEmpty<T>(arr: T[]): NonEmptyArray<T> | null;
|
|
126
|
+
/**
|
|
127
|
+
* Functions that require non-empty arrays can enforce it at compile time
|
|
128
|
+
*/
|
|
129
|
+
export declare function getFirstServer(servers: NonEmptyArray<ServerName>): ServerName;
|
|
130
|
+
/**
|
|
131
|
+
* TECHNIQUE 5: Result Types (Railway-Oriented Programming)
|
|
132
|
+
* Make errors explicit and force handling
|
|
133
|
+
*/
|
|
134
|
+
export type Result<T, E = Error> = {
|
|
135
|
+
success: true;
|
|
136
|
+
value: T;
|
|
137
|
+
} | {
|
|
138
|
+
success: false;
|
|
139
|
+
error: E;
|
|
140
|
+
};
|
|
141
|
+
/**
|
|
142
|
+
* Helper to create success result
|
|
143
|
+
*/
|
|
144
|
+
export declare function Ok<T>(value: T): Result<T, never>;
|
|
145
|
+
/**
|
|
146
|
+
* Helper to create error result
|
|
147
|
+
*/
|
|
148
|
+
export declare function Err<E>(error: E): Result<never, E>;
|
|
149
|
+
/**
|
|
150
|
+
* Map over result (only if success)
|
|
151
|
+
*/
|
|
152
|
+
export declare function mapResult<T, U, E>(result: Result<T, E>, fn: (value: T) => U): Result<U, E>;
|
|
153
|
+
/**
|
|
154
|
+
* Chain results (flatMap)
|
|
155
|
+
*/
|
|
156
|
+
export declare function andThen<T, U, E>(result: Result<T, E>, fn: (value: T) => Result<U, E>): Result<U, E>;
|
|
157
|
+
/**
|
|
158
|
+
* TECHNIQUE 6: Linear Types (Use-Once Pattern)
|
|
159
|
+
* Ensure resources are acquired and released exactly once
|
|
160
|
+
*/
|
|
161
|
+
export interface Disposable {
|
|
162
|
+
readonly _disposed: boolean;
|
|
163
|
+
dispose(): void;
|
|
164
|
+
}
|
|
165
|
+
export declare class LinearResource<T extends Disposable> {
|
|
166
|
+
private resource;
|
|
167
|
+
private _used;
|
|
168
|
+
constructor(resource: T);
|
|
169
|
+
/**
|
|
170
|
+
* Use the resource exactly once
|
|
171
|
+
* Compile-time: Can't call use() twice on same instance
|
|
172
|
+
* Runtime: Throws if called twice
|
|
173
|
+
*/
|
|
174
|
+
use<R>(fn: (resource: T) => R): R;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* TECHNIQUE 7: Opaque Types for Mutex Tokens
|
|
178
|
+
* Prove at compile-time that caller has acquired the lock
|
|
179
|
+
*/
|
|
180
|
+
export declare class MutexToken {
|
|
181
|
+
readonly serverName: ServerName;
|
|
182
|
+
private readonly __brand;
|
|
183
|
+
private constructor();
|
|
184
|
+
static create(serverName: ServerName): MutexToken;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Operations that require a lock must receive a token
|
|
188
|
+
* This proves at compile-time that the caller holds the lock!
|
|
189
|
+
*/
|
|
190
|
+
export declare function performCriticalOperation(serverName: ServerName, token: MutexToken, operation: () => void): void;
|
|
191
|
+
/**
|
|
192
|
+
* TECHNIQUE 8: Const Assertions for Immutability
|
|
193
|
+
* Prevent accidental mutations
|
|
194
|
+
*/
|
|
195
|
+
export declare const MCP_STATES: {
|
|
196
|
+
readonly IDLE: "idle";
|
|
197
|
+
readonly CONNECTING: "connecting";
|
|
198
|
+
readonly CONNECTED: "connected";
|
|
199
|
+
readonly DISCONNECTING: "disconnecting";
|
|
200
|
+
readonly FAILED: "failed";
|
|
201
|
+
};
|
|
202
|
+
export type MCPStateValue = typeof MCP_STATES[keyof typeof MCP_STATES];
|
|
203
|
+
/**
|
|
204
|
+
* TECHNIQUE 9: Template Literal Types for Validation
|
|
205
|
+
* Encode format validation in types
|
|
206
|
+
*/
|
|
207
|
+
export type ValidServerNamePattern = `${string}`;
|
|
208
|
+
export type AbsolutePath = `/${string}`;
|
|
209
|
+
export type RelativePath = `./${string}` | `../${string}`;
|
|
210
|
+
export type ValidConfigPath = AbsolutePath | RelativePath;
|
|
211
|
+
/**
|
|
212
|
+
* TECHNIQUE 10: Conditional Types for Smart Defaults
|
|
213
|
+
*/
|
|
214
|
+
export type WithDefaults<T, D> = {
|
|
215
|
+
[K in keyof D]: K extends keyof T ? T[K] : D[K];
|
|
216
|
+
};
|
|
217
|
+
/**
|
|
218
|
+
* TECHNIQUE 11: Recursive Type Guards
|
|
219
|
+
* Deep validation of nested structures
|
|
220
|
+
*/
|
|
221
|
+
export declare function isValidConnectionState(value: unknown): value is ConnectionState;
|
|
222
|
+
/**
|
|
223
|
+
* TECHNIQUE 12: Async Result Types
|
|
224
|
+
* Make async errors explicit
|
|
225
|
+
*/
|
|
226
|
+
export type AsyncResult<T, E = Error> = Promise<Result<T, E>>;
|
|
227
|
+
/**
|
|
228
|
+
* Wrap async function to return Result
|
|
229
|
+
*/
|
|
230
|
+
export declare function tryCatch<T>(fn: () => Promise<T>): AsyncResult<T, Error>;
|
|
231
|
+
export {};
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Advanced Type Safety for MCP Implementation
|
|
3
|
+
*
|
|
4
|
+
* This file implements compile-time safety mechanisms to catch logic bugs
|
|
5
|
+
* that regular TypeScript can't detect. Uses advanced type system features:
|
|
6
|
+
*
|
|
7
|
+
* 1. Branded Types - Prevent mixing similar primitive types
|
|
8
|
+
* 2. State Machines - Enforce valid state transitions
|
|
9
|
+
* 3. Exhaustiveness Checking - Ensure all cases handled
|
|
10
|
+
* 4. Phantom Types - Encode runtime invariants in types
|
|
11
|
+
* 5. Linear Types - Ensure resources are used exactly once
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Smart constructor for ServerName
|
|
15
|
+
* Validates server name format at runtime
|
|
16
|
+
*/
|
|
17
|
+
export function createServerName(name) {
|
|
18
|
+
// Server names must be alphanumeric with hyphens/underscores
|
|
19
|
+
if (!/^[a-z0-9-_]+$/i.test(name)) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
if (name.length < 1 || name.length > 64) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
return name;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Smart constructor for ConfigFilePath
|
|
29
|
+
*/
|
|
30
|
+
export function createConfigFilePath(path) {
|
|
31
|
+
if (!path || path.trim().length === 0) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
// Must be absolute path or relative starting with .
|
|
35
|
+
if (!path.startsWith('/') && !path.startsWith('.')) {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
return path;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Smart constructor for ToolName
|
|
42
|
+
* Validates tool name format at runtime
|
|
43
|
+
*/
|
|
44
|
+
export function createToolName(name) {
|
|
45
|
+
// Tool names can have underscores (for MCP prefix like mcp__server__tool)
|
|
46
|
+
if (!/^[a-zA-Z0-9_-]+$/.test(name)) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
if (name.length < 1 || name.length > 128) {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
return name;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Type-safe state transition
|
|
56
|
+
* PREVENTS: Invalid state transitions at compile time
|
|
57
|
+
*/
|
|
58
|
+
export function transition(_from, to) {
|
|
59
|
+
return to;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* TECHNIQUE 3: Exhaustiveness Checking
|
|
63
|
+
* Ensures all cases are handled (prevents forgotten branches)
|
|
64
|
+
*/
|
|
65
|
+
export function assertNever(value) {
|
|
66
|
+
throw new Error(`Unexpected value: ${JSON.stringify(value)}`);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Example: Handle all connection states
|
|
70
|
+
*/
|
|
71
|
+
export function handleConnectionState(state) {
|
|
72
|
+
switch (state.status) {
|
|
73
|
+
case 'idle':
|
|
74
|
+
return `Server ${state.serverName} is idle`;
|
|
75
|
+
case 'connecting':
|
|
76
|
+
return `Connecting to ${state.serverName} (started ${Date.now() - state.startedAt}ms ago)`;
|
|
77
|
+
case 'connected':
|
|
78
|
+
return `Connected to ${state.serverName} (uptime: ${Date.now() - state.connectedAt}ms)`;
|
|
79
|
+
case 'disconnecting':
|
|
80
|
+
return `Disconnecting from ${state.serverName}`;
|
|
81
|
+
case 'failed':
|
|
82
|
+
return `Connection to ${state.serverName} failed: ${state.error.message}`;
|
|
83
|
+
default:
|
|
84
|
+
// If we add a new state and forget to handle it, TypeScript error here!
|
|
85
|
+
return assertNever(state);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Smart constructor that proves array is non-empty
|
|
90
|
+
*/
|
|
91
|
+
export function asNonEmpty(arr) {
|
|
92
|
+
if (arr.length === 0) {
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
return arr;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Functions that require non-empty arrays can enforce it at compile time
|
|
99
|
+
*/
|
|
100
|
+
export function getFirstServer(servers) {
|
|
101
|
+
return servers[0]; // TypeScript knows this is safe!
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Helper to create success result
|
|
105
|
+
*/
|
|
106
|
+
export function Ok(value) {
|
|
107
|
+
return { success: true, value };
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Helper to create error result
|
|
111
|
+
*/
|
|
112
|
+
export function Err(error) {
|
|
113
|
+
return { success: false, error };
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Map over result (only if success)
|
|
117
|
+
*/
|
|
118
|
+
export function mapResult(result, fn) {
|
|
119
|
+
if (result.success) {
|
|
120
|
+
return Ok(fn(result.value));
|
|
121
|
+
}
|
|
122
|
+
return result;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Chain results (flatMap)
|
|
126
|
+
*/
|
|
127
|
+
export function andThen(result, fn) {
|
|
128
|
+
if (result.success) {
|
|
129
|
+
return fn(result.value);
|
|
130
|
+
}
|
|
131
|
+
return result;
|
|
132
|
+
}
|
|
133
|
+
// Resource handle that can only be used once
|
|
134
|
+
export class LinearResource {
|
|
135
|
+
resource;
|
|
136
|
+
_used = false;
|
|
137
|
+
constructor(resource) {
|
|
138
|
+
this.resource = resource;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Use the resource exactly once
|
|
142
|
+
* Compile-time: Can't call use() twice on same instance
|
|
143
|
+
* Runtime: Throws if called twice
|
|
144
|
+
*/
|
|
145
|
+
use(fn) {
|
|
146
|
+
if (this._used) {
|
|
147
|
+
throw new Error('Resource already used! Linear type violation.');
|
|
148
|
+
}
|
|
149
|
+
this._used = true;
|
|
150
|
+
try {
|
|
151
|
+
return fn(this.resource);
|
|
152
|
+
}
|
|
153
|
+
finally {
|
|
154
|
+
this.resource.dispose();
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* TECHNIQUE 7: Opaque Types for Mutex Tokens
|
|
160
|
+
* Prove at compile-time that caller has acquired the lock
|
|
161
|
+
*/
|
|
162
|
+
// Opaque token that proves lock is held
|
|
163
|
+
export class MutexToken {
|
|
164
|
+
serverName;
|
|
165
|
+
// @ts-expect-error - Brand field is intentionally unused (for type safety only)
|
|
166
|
+
__brand;
|
|
167
|
+
// Private constructor - can only be created by Mutex
|
|
168
|
+
constructor(serverName) {
|
|
169
|
+
this.serverName = serverName;
|
|
170
|
+
}
|
|
171
|
+
// Only Mutex can create tokens
|
|
172
|
+
static create(serverName) {
|
|
173
|
+
return new MutexToken(serverName);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Operations that require a lock must receive a token
|
|
178
|
+
* This proves at compile-time that the caller holds the lock!
|
|
179
|
+
*/
|
|
180
|
+
export function performCriticalOperation(serverName, token, operation) {
|
|
181
|
+
// Verify token matches server (runtime check)
|
|
182
|
+
if (token.serverName !== serverName) {
|
|
183
|
+
throw new Error('Token is for wrong server!');
|
|
184
|
+
}
|
|
185
|
+
// Proceed with operation - we KNOW we have the lock
|
|
186
|
+
operation();
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* TECHNIQUE 8: Const Assertions for Immutability
|
|
190
|
+
* Prevent accidental mutations
|
|
191
|
+
*/
|
|
192
|
+
export const MCP_STATES = {
|
|
193
|
+
IDLE: 'idle',
|
|
194
|
+
CONNECTING: 'connecting',
|
|
195
|
+
CONNECTED: 'connected',
|
|
196
|
+
DISCONNECTING: 'disconnecting',
|
|
197
|
+
FAILED: 'failed'
|
|
198
|
+
};
|
|
199
|
+
/**
|
|
200
|
+
* TECHNIQUE 11: Recursive Type Guards
|
|
201
|
+
* Deep validation of nested structures
|
|
202
|
+
*/
|
|
203
|
+
export function isValidConnectionState(value) {
|
|
204
|
+
if (typeof value !== 'object' || value === null) {
|
|
205
|
+
return false;
|
|
206
|
+
}
|
|
207
|
+
const state = value;
|
|
208
|
+
if (typeof state.status !== 'string') {
|
|
209
|
+
return false;
|
|
210
|
+
}
|
|
211
|
+
if (typeof state.serverName !== 'string') {
|
|
212
|
+
return false;
|
|
213
|
+
}
|
|
214
|
+
switch (state.status) {
|
|
215
|
+
case 'idle':
|
|
216
|
+
return true;
|
|
217
|
+
case 'connecting':
|
|
218
|
+
return typeof state.startedAt === 'number';
|
|
219
|
+
case 'connected':
|
|
220
|
+
return typeof state.connectedAt === 'number' && state.client !== undefined;
|
|
221
|
+
case 'disconnecting':
|
|
222
|
+
return state.client !== undefined;
|
|
223
|
+
case 'failed':
|
|
224
|
+
return state.error instanceof Error && typeof state.failedAt === 'number';
|
|
225
|
+
default:
|
|
226
|
+
return false;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Wrap async function to return Result
|
|
231
|
+
*/
|
|
232
|
+
export async function tryCatch(fn) {
|
|
233
|
+
try {
|
|
234
|
+
const value = await fn();
|
|
235
|
+
return Ok(value);
|
|
236
|
+
}
|
|
237
|
+
catch (error) {
|
|
238
|
+
return Err(error instanceof Error ? error : new Error(String(error)));
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* USAGE EXAMPLES
|
|
243
|
+
*/
|
|
244
|
+
// Example 1: Branded types prevent mixing
|
|
245
|
+
function connectToServer(name) {
|
|
246
|
+
console.log(`Connecting to ${name}`);
|
|
247
|
+
}
|
|
248
|
+
// This won't compile:
|
|
249
|
+
// connectToServer("github"); // Error: string is not ServerName
|
|
250
|
+
// This will compile:
|
|
251
|
+
const serverName = createServerName("github");
|
|
252
|
+
if (serverName) {
|
|
253
|
+
connectToServer(serverName); // ✓ Safe
|
|
254
|
+
}
|
|
255
|
+
// Example 2: State machine prevents invalid transitions
|
|
256
|
+
let state = { status: 'idle', serverName: 'github' };
|
|
257
|
+
// Valid transition
|
|
258
|
+
state = transition(state, {
|
|
259
|
+
status: 'connecting',
|
|
260
|
+
serverName: state.serverName,
|
|
261
|
+
startedAt: Date.now()
|
|
262
|
+
});
|
|
263
|
+
// Invalid transition won't compile:
|
|
264
|
+
// state = transition(state, { status: 'disconnecting', ... }); // Error!
|
|
265
|
+
// Example 3: Non-empty array
|
|
266
|
+
const servers = [];
|
|
267
|
+
// getFirstServer(servers); // Won't compile - might be empty
|
|
268
|
+
const nonEmpty = asNonEmpty(servers);
|
|
269
|
+
if (nonEmpty) {
|
|
270
|
+
getFirstServer(nonEmpty); // ✓ Safe
|
|
271
|
+
}
|
|
272
|
+
// Example 4: Result type forces error handling - see integration tests for real usage
|
|
273
|
+
//# sourceMappingURL=type-safety.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-safety.js","sourceRoot":"","sources":["../../src/mcp/type-safety.ts"],"names":[],"mappings":"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"}
|
|
@@ -290,6 +290,9 @@ export class TaskPlanner extends EventEmitter {
|
|
|
290
290
|
// Execute with retry support
|
|
291
291
|
let result;
|
|
292
292
|
let attempt = 0;
|
|
293
|
+
// ERROR HANDLING FIX: Add exponential backoff constants
|
|
294
|
+
const BASE_DELAY_MS = 1000; // 1 second
|
|
295
|
+
const MAX_DELAY_MS = 30000; // 30 seconds
|
|
293
296
|
while (attempt <= phase.maxRetries) {
|
|
294
297
|
try {
|
|
295
298
|
result = await phaseExecutor(phase, context);
|
|
@@ -303,6 +306,11 @@ export class TaskPlanner extends EventEmitter {
|
|
|
303
306
|
attempt < phase.maxRetries) {
|
|
304
307
|
attempt++;
|
|
305
308
|
phase.retryCount = attempt;
|
|
309
|
+
// ERROR HANDLING FIX: Exponential backoff with jitter to avoid hammering
|
|
310
|
+
// INTEGER OVERFLOW FIX: Cap exponent to prevent overflow (2^30 ~= 1 billion ms ~= 11 days)
|
|
311
|
+
const cappedExponent = Math.min(attempt - 1, 30);
|
|
312
|
+
const backoffDelay = Math.min(BASE_DELAY_MS * Math.pow(2, cappedExponent) + Math.random() * 1000, MAX_DELAY_MS);
|
|
313
|
+
await new Promise(resolve => setTimeout(resolve, backoffDelay));
|
|
306
314
|
continue;
|
|
307
315
|
}
|
|
308
316
|
break;
|
|
@@ -311,6 +319,11 @@ export class TaskPlanner extends EventEmitter {
|
|
|
311
319
|
if (attempt < phase.maxRetries) {
|
|
312
320
|
attempt++;
|
|
313
321
|
phase.retryCount = attempt;
|
|
322
|
+
// ERROR HANDLING FIX: Exponential backoff for errors too
|
|
323
|
+
// INTEGER OVERFLOW FIX: Cap exponent to prevent overflow
|
|
324
|
+
const cappedExponent = Math.min(attempt - 1, 30);
|
|
325
|
+
const backoffDelay = Math.min(BASE_DELAY_MS * Math.pow(2, cappedExponent), MAX_DELAY_MS);
|
|
326
|
+
await new Promise(resolve => setTimeout(resolve, backoffDelay));
|
|
314
327
|
continue;
|
|
315
328
|
}
|
|
316
329
|
throw error;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-planner.js","sourceRoot":"","sources":["../../src/planner/task-planner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"task-planner.js","sourceRoot":"","sources":["../../src/planner/task-planner.ts"],"names":[],"mappings":"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"}
|