@defai.digital/ax-cli 3.7.2 → 3.8.2

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 (213) hide show
  1. package/README.md +148 -53
  2. package/dist/agent/context-manager.d.ts +15 -1
  3. package/dist/agent/context-manager.js +50 -19
  4. package/dist/agent/context-manager.js.map +1 -1
  5. package/dist/agent/dependency-resolver.js +13 -7
  6. package/dist/agent/dependency-resolver.js.map +1 -1
  7. package/dist/agent/llm-agent.d.ts +37 -0
  8. package/dist/agent/llm-agent.js +318 -98
  9. package/dist/agent/llm-agent.js.map +1 -1
  10. package/dist/agent/status-reporter.d.ts +114 -0
  11. package/dist/agent/status-reporter.js +335 -0
  12. package/dist/agent/status-reporter.js.map +1 -0
  13. package/dist/analyzers/best-practices/rules/typescript/no-magic-numbers.js +8 -2
  14. package/dist/analyzers/best-practices/rules/typescript/no-magic-numbers.js.map +1 -1
  15. package/dist/analyzers/best-practices/rules/typescript/no-unused-vars.js +3 -1
  16. package/dist/analyzers/best-practices/rules/typescript/no-unused-vars.js.map +1 -1
  17. package/dist/analyzers/best-practices/rules/typescript/prefer-const.js +3 -1
  18. package/dist/analyzers/best-practices/rules/typescript/prefer-const.js.map +1 -1
  19. package/dist/analyzers/best-practices/rules/typescript/prefer-readonly.js +3 -1
  20. package/dist/analyzers/best-practices/rules/typescript/prefer-readonly.js.map +1 -1
  21. package/dist/analyzers/code-smells/detectors/duplicate-code-detector.js +9 -3
  22. package/dist/analyzers/code-smells/detectors/duplicate-code-detector.js.map +1 -1
  23. package/dist/analyzers/git/churn-calculator.d.ts +2 -0
  24. package/dist/analyzers/git/churn-calculator.js +42 -8
  25. package/dist/analyzers/git/churn-calculator.js.map +1 -1
  26. package/dist/analyzers/git/hotspot-detector.js +2 -2
  27. package/dist/analyzers/git/hotspot-detector.js.map +1 -1
  28. package/dist/analyzers/metrics/metrics-analyzer.js +1 -1
  29. package/dist/analyzers/metrics/metrics-analyzer.js.map +1 -1
  30. package/dist/analyzers/security/security-analyzer.js +1 -1
  31. package/dist/analyzers/security/security-analyzer.js.map +1 -1
  32. package/dist/checkpoint/manager.d.ts +1 -0
  33. package/dist/checkpoint/manager.js +49 -9
  34. package/dist/checkpoint/manager.js.map +1 -1
  35. package/dist/checkpoint/storage.js +2 -2
  36. package/dist/checkpoint/storage.js.map +1 -1
  37. package/dist/commands/mcp-migrate.d.ts +9 -0
  38. package/dist/commands/mcp-migrate.js +172 -0
  39. package/dist/commands/mcp-migrate.js.map +1 -0
  40. package/dist/commands/status.d.ts +7 -0
  41. package/dist/commands/status.js +211 -0
  42. package/dist/commands/status.js.map +1 -0
  43. package/dist/commands/vscode.d.ts +7 -0
  44. package/dist/commands/vscode.js +363 -0
  45. package/dist/commands/vscode.js.map +1 -0
  46. package/dist/index.js +79 -30
  47. package/dist/index.js.map +1 -1
  48. package/dist/llm/client.js +33 -4
  49. package/dist/llm/client.js.map +1 -1
  50. package/dist/mcp/automatosx-loader.d.ts +84 -0
  51. package/dist/mcp/automatosx-loader.js +238 -0
  52. package/dist/mcp/automatosx-loader.js.map +1 -0
  53. package/dist/mcp/client-mutex-patch.d.ts +36 -0
  54. package/dist/mcp/client-mutex-patch.js +75 -0
  55. package/dist/mcp/client-mutex-patch.js.map +1 -0
  56. package/dist/mcp/client-v2.d.ts +229 -0
  57. package/dist/mcp/client-v2.js +740 -0
  58. package/dist/mcp/client-v2.js.map +1 -0
  59. package/dist/mcp/client.d.ts +111 -13
  60. package/dist/mcp/client.js +168 -253
  61. package/dist/mcp/client.js.map +1 -1
  62. package/dist/mcp/config-detector-v2.d.ts +83 -0
  63. package/dist/mcp/config-detector-v2.js +328 -0
  64. package/dist/mcp/config-detector-v2.js.map +1 -0
  65. package/dist/mcp/config-detector.d.ts +90 -0
  66. package/dist/mcp/config-detector.js +242 -0
  67. package/dist/mcp/config-detector.js.map +1 -0
  68. package/dist/mcp/config-migrator-v2.d.ts +89 -0
  69. package/dist/mcp/config-migrator-v2.js +288 -0
  70. package/dist/mcp/config-migrator-v2.js.map +1 -0
  71. package/dist/mcp/config-migrator.d.ts +63 -0
  72. package/dist/mcp/config-migrator.js +269 -0
  73. package/dist/mcp/config-migrator.js.map +1 -0
  74. package/dist/mcp/config-v2.d.ts +106 -0
  75. package/dist/mcp/config-v2.js +417 -0
  76. package/dist/mcp/config-v2.js.map +1 -0
  77. package/dist/mcp/config.d.ts +12 -1
  78. package/dist/mcp/config.js +95 -10
  79. package/dist/mcp/config.js.map +1 -1
  80. package/dist/mcp/error-formatter.d.ts +46 -0
  81. package/dist/mcp/error-formatter.js +244 -0
  82. package/dist/mcp/error-formatter.js.map +1 -0
  83. package/dist/mcp/health.d.ts +5 -0
  84. package/dist/mcp/health.js +22 -2
  85. package/dist/mcp/health.js.map +1 -1
  86. package/dist/mcp/invariants.d.ts +141 -0
  87. package/dist/mcp/invariants.js +243 -0
  88. package/dist/mcp/invariants.js.map +1 -0
  89. package/dist/mcp/mutex-safe.d.ts +153 -0
  90. package/dist/mcp/mutex-safe.js +260 -0
  91. package/dist/mcp/mutex-safe.js.map +1 -0
  92. package/dist/mcp/mutex.d.ts +73 -0
  93. package/dist/mcp/mutex.js +137 -0
  94. package/dist/mcp/mutex.js.map +1 -0
  95. package/dist/mcp/reconnection.d.ts +4 -0
  96. package/dist/mcp/reconnection.js +25 -1
  97. package/dist/mcp/reconnection.js.map +1 -1
  98. package/dist/mcp/transports-v2.d.ts +152 -0
  99. package/dist/mcp/transports-v2.js +481 -0
  100. package/dist/mcp/transports-v2.js.map +1 -0
  101. package/dist/mcp/type-safety.d.ts +231 -0
  102. package/dist/mcp/type-safety.js +273 -0
  103. package/dist/mcp/type-safety.js.map +1 -0
  104. package/dist/planner/task-planner.js +13 -0
  105. package/dist/planner/task-planner.js.map +1 -1
  106. package/dist/planner/types.d.ts +6 -6
  107. package/dist/schemas/confirmation-schemas.d.ts +2 -2
  108. package/dist/schemas/settings-schemas.d.ts +196 -0
  109. package/dist/schemas/settings-schemas.js +146 -5
  110. package/dist/schemas/settings-schemas.js.map +1 -1
  111. package/dist/sdk/index.d.ts +118 -2
  112. package/dist/sdk/index.js +146 -4
  113. package/dist/sdk/index.js.map +1 -1
  114. package/dist/sdk/testing.d.ts +182 -0
  115. package/dist/sdk/testing.js +231 -0
  116. package/dist/sdk/testing.js.map +1 -1
  117. package/dist/sdk/version.d.ts +114 -15
  118. package/dist/sdk/version.js +137 -15
  119. package/dist/sdk/version.js.map +1 -1
  120. package/dist/tools/bash.js +54 -9
  121. package/dist/tools/bash.js.map +1 -1
  122. package/dist/tools/registry.d.ts +146 -0
  123. package/dist/tools/registry.js +170 -0
  124. package/dist/tools/registry.js.map +1 -0
  125. package/dist/tools/search.js +12 -2
  126. package/dist/tools/search.js.map +1 -1
  127. package/dist/tools/text-editor.js +84 -26
  128. package/dist/tools/text-editor.js.map +1 -1
  129. package/dist/ui/components/chat-history.js +6 -1
  130. package/dist/ui/components/chat-history.js.map +1 -1
  131. package/dist/ui/components/chat-input.d.ts +2 -1
  132. package/dist/ui/components/chat-input.js +5 -2
  133. package/dist/ui/components/chat-input.js.map +1 -1
  134. package/dist/ui/components/chat-interface.js +187 -5
  135. package/dist/ui/components/chat-interface.js.map +1 -1
  136. package/dist/ui/components/context-breakdown.d.ts +23 -0
  137. package/dist/ui/components/context-breakdown.js +124 -0
  138. package/dist/ui/components/context-breakdown.js.map +1 -0
  139. package/dist/ui/components/keyboard-help.d.ts +17 -0
  140. package/dist/ui/components/keyboard-help.js +116 -0
  141. package/dist/ui/components/keyboard-help.js.map +1 -0
  142. package/dist/ui/components/keyboard-hints.js +2 -2
  143. package/dist/ui/components/keyboard-hints.js.map +1 -1
  144. package/dist/ui/components/quick-actions.js +43 -7
  145. package/dist/ui/components/quick-actions.js.map +1 -1
  146. package/dist/ui/components/status-bar.d.ts +3 -0
  147. package/dist/ui/components/status-bar.js +25 -16
  148. package/dist/ui/components/status-bar.js.map +1 -1
  149. package/dist/ui/components/toast-notification.d.ts +42 -0
  150. package/dist/ui/components/toast-notification.js +30 -2
  151. package/dist/ui/components/toast-notification.js.map +1 -1
  152. package/dist/ui/components/tool-group-display.js +34 -4
  153. package/dist/ui/components/tool-group-display.js.map +1 -1
  154. package/dist/ui/components/welcome-panel.js +2 -2
  155. package/dist/ui/components/welcome-panel.js.map +1 -1
  156. package/dist/ui/hooks/use-enhanced-input.d.ts +9 -1
  157. package/dist/ui/hooks/use-enhanced-input.js +901 -90
  158. package/dist/ui/hooks/use-enhanced-input.js.map +1 -1
  159. package/dist/ui/hooks/use-input-handler.d.ts +11 -1
  160. package/dist/ui/hooks/use-input-handler.js +67 -3
  161. package/dist/ui/hooks/use-input-handler.js.map +1 -1
  162. package/dist/ui/hooks/use-input-history.d.ts +1 -1
  163. package/dist/ui/hooks/use-input-history.js +50 -14
  164. package/dist/ui/hooks/use-input-history.js.map +1 -1
  165. package/dist/ui/utils/bracketed-paste-handler.d.ts +97 -0
  166. package/dist/ui/utils/bracketed-paste-handler.js +322 -0
  167. package/dist/ui/utils/bracketed-paste-handler.js.map +1 -0
  168. package/dist/ui/utils/change-summarizer.js +16 -6
  169. package/dist/ui/utils/change-summarizer.js.map +1 -1
  170. package/dist/ui/utils/tool-grouper.d.ts +10 -1
  171. package/dist/ui/utils/tool-grouper.js +143 -30
  172. package/dist/ui/utils/tool-grouper.js.map +1 -1
  173. package/dist/utils/auto-accept-logger.d.ts +173 -0
  174. package/dist/utils/auto-accept-logger.js +420 -0
  175. package/dist/utils/auto-accept-logger.js.map +1 -0
  176. package/dist/utils/background-task-manager.d.ts +11 -0
  177. package/dist/utils/background-task-manager.js +124 -38
  178. package/dist/utils/background-task-manager.js.map +1 -1
  179. package/dist/utils/confirmation-service.d.ts +1 -0
  180. package/dist/utils/confirmation-service.js +6 -1
  181. package/dist/utils/confirmation-service.js.map +1 -1
  182. package/dist/utils/encryption.d.ts +8 -0
  183. package/dist/utils/encryption.js +44 -27
  184. package/dist/utils/encryption.js.map +1 -1
  185. package/dist/utils/enhanced-error-messages.d.ts +33 -0
  186. package/dist/utils/enhanced-error-messages.js +420 -0
  187. package/dist/utils/enhanced-error-messages.js.map +1 -0
  188. package/dist/utils/error-handler.d.ts +13 -3
  189. package/dist/utils/error-handler.js +16 -4
  190. package/dist/utils/error-handler.js.map +1 -1
  191. package/dist/utils/external-editor.d.ts +47 -0
  192. package/dist/utils/external-editor.js +179 -0
  193. package/dist/utils/external-editor.js.map +1 -0
  194. package/dist/utils/history-migration.d.ts +9 -0
  195. package/dist/utils/history-migration.js +36 -0
  196. package/dist/utils/history-migration.js.map +1 -0
  197. package/dist/utils/paste-utils.js +12 -11
  198. package/dist/utils/paste-utils.js.map +1 -1
  199. package/dist/utils/rate-limiter.js +20 -1
  200. package/dist/utils/rate-limiter.js.map +1 -1
  201. package/dist/utils/safety-rules.d.ts +64 -0
  202. package/dist/utils/safety-rules.js +225 -0
  203. package/dist/utils/safety-rules.js.map +1 -0
  204. package/dist/utils/settings-manager.d.ts +89 -1
  205. package/dist/utils/settings-manager.js +359 -3
  206. package/dist/utils/settings-manager.js.map +1 -1
  207. package/dist/utils/token-counter.d.ts +2 -0
  208. package/dist/utils/token-counter.js +32 -9
  209. package/dist/utils/token-counter.js.map +1 -1
  210. package/dist/utils/version.d.ts +11 -2
  211. package/dist/utils/version.js +54 -21
  212. package/dist/utils/version.js.map +1 -1
  213. 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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"}