@qodo/sdk 0.1.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.
Files changed (303) hide show
  1. package/LICENSE +118 -0
  2. package/README.md +121 -0
  3. package/dist/api/agent.d.ts +69 -0
  4. package/dist/api/agent.d.ts.map +1 -0
  5. package/dist/api/agent.js +1034 -0
  6. package/dist/api/agent.js.map +1 -0
  7. package/dist/api/analytics.d.ts +43 -0
  8. package/dist/api/analytics.d.ts.map +1 -0
  9. package/dist/api/analytics.js +163 -0
  10. package/dist/api/analytics.js.map +1 -0
  11. package/dist/api/http.d.ts +5 -0
  12. package/dist/api/http.d.ts.map +1 -0
  13. package/dist/api/http.js +59 -0
  14. package/dist/api/http.js.map +1 -0
  15. package/dist/api/index.d.ts +12 -0
  16. package/dist/api/index.d.ts.map +1 -0
  17. package/dist/api/index.js +17 -0
  18. package/dist/api/index.js.map +1 -0
  19. package/dist/api/taskTracking.d.ts +54 -0
  20. package/dist/api/taskTracking.d.ts.map +1 -0
  21. package/dist/api/taskTracking.js +208 -0
  22. package/dist/api/taskTracking.js.map +1 -0
  23. package/dist/api/types.d.ts +92 -0
  24. package/dist/api/types.d.ts.map +1 -0
  25. package/dist/api/types.js +2 -0
  26. package/dist/api/types.js.map +1 -0
  27. package/dist/api/utils.d.ts +8 -0
  28. package/dist/api/utils.d.ts.map +1 -0
  29. package/dist/api/utils.js +54 -0
  30. package/dist/api/utils.js.map +1 -0
  31. package/dist/api/websocket.d.ts +74 -0
  32. package/dist/api/websocket.d.ts.map +1 -0
  33. package/dist/api/websocket.js +685 -0
  34. package/dist/api/websocket.js.map +1 -0
  35. package/dist/auth/index.d.ts +25 -0
  36. package/dist/auth/index.d.ts.map +1 -0
  37. package/dist/auth/index.js +85 -0
  38. package/dist/auth/index.js.map +1 -0
  39. package/dist/clients/index.d.ts +8 -0
  40. package/dist/clients/index.d.ts.map +1 -0
  41. package/dist/clients/index.js +7 -0
  42. package/dist/clients/index.js.map +1 -0
  43. package/dist/clients/info/InfoClient.d.ts +37 -0
  44. package/dist/clients/info/InfoClient.d.ts.map +1 -0
  45. package/dist/clients/info/InfoClient.js +69 -0
  46. package/dist/clients/info/InfoClient.js.map +1 -0
  47. package/dist/clients/info/index.d.ts +4 -0
  48. package/dist/clients/info/index.d.ts.map +1 -0
  49. package/dist/clients/info/index.js +2 -0
  50. package/dist/clients/info/index.js.map +1 -0
  51. package/dist/clients/info/types.d.ts +21 -0
  52. package/dist/clients/info/types.d.ts.map +1 -0
  53. package/dist/clients/info/types.js +2 -0
  54. package/dist/clients/info/types.js.map +1 -0
  55. package/dist/clients/sessions/SessionsClient.d.ts +34 -0
  56. package/dist/clients/sessions/SessionsClient.d.ts.map +1 -0
  57. package/dist/clients/sessions/SessionsClient.js +71 -0
  58. package/dist/clients/sessions/SessionsClient.js.map +1 -0
  59. package/dist/clients/sessions/index.d.ts +4 -0
  60. package/dist/clients/sessions/index.d.ts.map +1 -0
  61. package/dist/clients/sessions/index.js +2 -0
  62. package/dist/clients/sessions/index.js.map +1 -0
  63. package/dist/clients/sessions/types.d.ts +20 -0
  64. package/dist/clients/sessions/types.d.ts.map +1 -0
  65. package/dist/clients/sessions/types.js +2 -0
  66. package/dist/clients/sessions/types.js.map +1 -0
  67. package/dist/config/ConfigManager.d.ts +43 -0
  68. package/dist/config/ConfigManager.d.ts.map +1 -0
  69. package/dist/config/ConfigManager.js +472 -0
  70. package/dist/config/ConfigManager.js.map +1 -0
  71. package/dist/config/index.d.ts +6 -0
  72. package/dist/config/index.d.ts.map +1 -0
  73. package/dist/config/index.js +7 -0
  74. package/dist/config/index.js.map +1 -0
  75. package/dist/config/urlConfig.d.ts +15 -0
  76. package/dist/config/urlConfig.d.ts.map +1 -0
  77. package/dist/config/urlConfig.js +75 -0
  78. package/dist/config/urlConfig.js.map +1 -0
  79. package/dist/constants/errors.d.ts +2 -0
  80. package/dist/constants/errors.d.ts.map +1 -0
  81. package/dist/constants/errors.js +2 -0
  82. package/dist/constants/errors.js.map +1 -0
  83. package/dist/constants/index.d.ts +7 -0
  84. package/dist/constants/index.d.ts.map +1 -0
  85. package/dist/constants/index.js +11 -0
  86. package/dist/constants/index.js.map +1 -0
  87. package/dist/constants/tools.d.ts +4 -0
  88. package/dist/constants/tools.d.ts.map +1 -0
  89. package/dist/constants/tools.js +4 -0
  90. package/dist/constants/tools.js.map +1 -0
  91. package/dist/constants/versions.d.ts +2 -0
  92. package/dist/constants/versions.d.ts.map +1 -0
  93. package/dist/constants/versions.js +2 -0
  94. package/dist/constants/versions.js.map +1 -0
  95. package/dist/context/buildUserContext.d.ts +18 -0
  96. package/dist/context/buildUserContext.d.ts.map +1 -0
  97. package/dist/context/buildUserContext.js +34 -0
  98. package/dist/context/buildUserContext.js.map +1 -0
  99. package/dist/context/index.d.ts +9 -0
  100. package/dist/context/index.d.ts.map +1 -0
  101. package/dist/context/index.js +9 -0
  102. package/dist/context/index.js.map +1 -0
  103. package/dist/context/messageManager.d.ts +42 -0
  104. package/dist/context/messageManager.d.ts.map +1 -0
  105. package/dist/context/messageManager.js +322 -0
  106. package/dist/context/messageManager.js.map +1 -0
  107. package/dist/context/taskFocus.d.ts +2 -0
  108. package/dist/context/taskFocus.d.ts.map +1 -0
  109. package/dist/context/taskFocus.js +26 -0
  110. package/dist/context/taskFocus.js.map +1 -0
  111. package/dist/context/userInput.d.ts +3 -0
  112. package/dist/context/userInput.d.ts.map +1 -0
  113. package/dist/context/userInput.js +20 -0
  114. package/dist/context/userInput.js.map +1 -0
  115. package/dist/index.d.ts +18 -0
  116. package/dist/index.d.ts.map +1 -0
  117. package/dist/index.js +21 -0
  118. package/dist/index.js.map +1 -0
  119. package/dist/mcp/MCPManager.d.ts +125 -0
  120. package/dist/mcp/MCPManager.d.ts.map +1 -0
  121. package/dist/mcp/MCPManager.js +616 -0
  122. package/dist/mcp/MCPManager.js.map +1 -0
  123. package/dist/mcp/approvedTools.d.ts +4 -0
  124. package/dist/mcp/approvedTools.d.ts.map +1 -0
  125. package/dist/mcp/approvedTools.js +19 -0
  126. package/dist/mcp/approvedTools.js.map +1 -0
  127. package/dist/mcp/baseServer.d.ts +75 -0
  128. package/dist/mcp/baseServer.d.ts.map +1 -0
  129. package/dist/mcp/baseServer.js +107 -0
  130. package/dist/mcp/baseServer.js.map +1 -0
  131. package/dist/mcp/builtinServers.d.ts +15 -0
  132. package/dist/mcp/builtinServers.d.ts.map +1 -0
  133. package/dist/mcp/builtinServers.js +155 -0
  134. package/dist/mcp/builtinServers.js.map +1 -0
  135. package/dist/mcp/dynamicBEServer.d.ts +20 -0
  136. package/dist/mcp/dynamicBEServer.d.ts.map +1 -0
  137. package/dist/mcp/dynamicBEServer.js +52 -0
  138. package/dist/mcp/dynamicBEServer.js.map +1 -0
  139. package/dist/mcp/index.d.ts +19 -0
  140. package/dist/mcp/index.d.ts.map +1 -0
  141. package/dist/mcp/index.js +24 -0
  142. package/dist/mcp/index.js.map +1 -0
  143. package/dist/mcp/mcpInitialization.d.ts +2 -0
  144. package/dist/mcp/mcpInitialization.d.ts.map +1 -0
  145. package/dist/mcp/mcpInitialization.js +56 -0
  146. package/dist/mcp/mcpInitialization.js.map +1 -0
  147. package/dist/mcp/servers/filesystem.d.ts +75 -0
  148. package/dist/mcp/servers/filesystem.d.ts.map +1 -0
  149. package/dist/mcp/servers/filesystem.js +992 -0
  150. package/dist/mcp/servers/filesystem.js.map +1 -0
  151. package/dist/mcp/servers/gerrit.d.ts +19 -0
  152. package/dist/mcp/servers/gerrit.d.ts.map +1 -0
  153. package/dist/mcp/servers/gerrit.js +515 -0
  154. package/dist/mcp/servers/gerrit.js.map +1 -0
  155. package/dist/mcp/servers/git.d.ts +18 -0
  156. package/dist/mcp/servers/git.d.ts.map +1 -0
  157. package/dist/mcp/servers/git.js +441 -0
  158. package/dist/mcp/servers/git.js.map +1 -0
  159. package/dist/mcp/servers/ripgrep.d.ts +34 -0
  160. package/dist/mcp/servers/ripgrep.d.ts.map +1 -0
  161. package/dist/mcp/servers/ripgrep.js +517 -0
  162. package/dist/mcp/servers/ripgrep.js.map +1 -0
  163. package/dist/mcp/servers/shell.d.ts +20 -0
  164. package/dist/mcp/servers/shell.d.ts.map +1 -0
  165. package/dist/mcp/servers/shell.js +603 -0
  166. package/dist/mcp/servers/shell.js.map +1 -0
  167. package/dist/mcp/serversRegistry.d.ts +55 -0
  168. package/dist/mcp/serversRegistry.d.ts.map +1 -0
  169. package/dist/mcp/serversRegistry.js +410 -0
  170. package/dist/mcp/serversRegistry.js.map +1 -0
  171. package/dist/mcp/toolProcessor.d.ts +42 -0
  172. package/dist/mcp/toolProcessor.d.ts.map +1 -0
  173. package/dist/mcp/toolProcessor.js +200 -0
  174. package/dist/mcp/toolProcessor.js.map +1 -0
  175. package/dist/mcp/types.d.ts +29 -0
  176. package/dist/mcp/types.d.ts.map +1 -0
  177. package/dist/mcp/types.js +2 -0
  178. package/dist/mcp/types.js.map +1 -0
  179. package/dist/parser/index.d.ts +72 -0
  180. package/dist/parser/index.d.ts.map +1 -0
  181. package/dist/parser/index.js +967 -0
  182. package/dist/parser/index.js.map +1 -0
  183. package/dist/parser/types.d.ts +153 -0
  184. package/dist/parser/types.d.ts.map +1 -0
  185. package/dist/parser/types.js +6 -0
  186. package/dist/parser/types.js.map +1 -0
  187. package/dist/parser/utils.d.ts +18 -0
  188. package/dist/parser/utils.d.ts.map +1 -0
  189. package/dist/parser/utils.js +64 -0
  190. package/dist/parser/utils.js.map +1 -0
  191. package/dist/sdk/QodoSDK.d.ts +152 -0
  192. package/dist/sdk/QodoSDK.d.ts.map +1 -0
  193. package/dist/sdk/QodoSDK.js +786 -0
  194. package/dist/sdk/QodoSDK.js.map +1 -0
  195. package/dist/sdk/bootstrap.d.ts +16 -0
  196. package/dist/sdk/bootstrap.d.ts.map +1 -0
  197. package/dist/sdk/bootstrap.js +21 -0
  198. package/dist/sdk/bootstrap.js.map +1 -0
  199. package/dist/sdk/builders.d.ts +54 -0
  200. package/dist/sdk/builders.d.ts.map +1 -0
  201. package/dist/sdk/builders.js +117 -0
  202. package/dist/sdk/builders.js.map +1 -0
  203. package/dist/sdk/defaults.d.ts +11 -0
  204. package/dist/sdk/defaults.d.ts.map +1 -0
  205. package/dist/sdk/defaults.js +39 -0
  206. package/dist/sdk/defaults.js.map +1 -0
  207. package/dist/sdk/discovery.d.ts +2 -0
  208. package/dist/sdk/discovery.d.ts.map +1 -0
  209. package/dist/sdk/discovery.js +25 -0
  210. package/dist/sdk/discovery.js.map +1 -0
  211. package/dist/sdk/events.d.ts +168 -0
  212. package/dist/sdk/events.d.ts.map +1 -0
  213. package/dist/sdk/events.js +52 -0
  214. package/dist/sdk/events.js.map +1 -0
  215. package/dist/sdk/index.d.ts +17 -0
  216. package/dist/sdk/index.d.ts.map +1 -0
  217. package/dist/sdk/index.js +17 -0
  218. package/dist/sdk/index.js.map +1 -0
  219. package/dist/sdk/runner/AgentRunner.d.ts +22 -0
  220. package/dist/sdk/runner/AgentRunner.d.ts.map +1 -0
  221. package/dist/sdk/runner/AgentRunner.js +222 -0
  222. package/dist/sdk/runner/AgentRunner.js.map +1 -0
  223. package/dist/sdk/runner/finalize.d.ts +9 -0
  224. package/dist/sdk/runner/finalize.d.ts.map +1 -0
  225. package/dist/sdk/runner/finalize.js +115 -0
  226. package/dist/sdk/runner/finalize.js.map +1 -0
  227. package/dist/sdk/runner/formats.d.ts +7 -0
  228. package/dist/sdk/runner/formats.d.ts.map +1 -0
  229. package/dist/sdk/runner/formats.js +91 -0
  230. package/dist/sdk/runner/formats.js.map +1 -0
  231. package/dist/sdk/runner/index.d.ts +9 -0
  232. package/dist/sdk/runner/index.d.ts.map +1 -0
  233. package/dist/sdk/runner/index.js +9 -0
  234. package/dist/sdk/runner/index.js.map +1 -0
  235. package/dist/sdk/runner/progress.d.ts +3 -0
  236. package/dist/sdk/runner/progress.d.ts.map +1 -0
  237. package/dist/sdk/runner/progress.js +16 -0
  238. package/dist/sdk/runner/progress.js.map +1 -0
  239. package/dist/sdk/schemas.d.ts +50 -0
  240. package/dist/sdk/schemas.d.ts.map +1 -0
  241. package/dist/sdk/schemas.js +145 -0
  242. package/dist/sdk/schemas.js.map +1 -0
  243. package/dist/session/SessionContext.d.ts +86 -0
  244. package/dist/session/SessionContext.d.ts.map +1 -0
  245. package/dist/session/SessionContext.js +395 -0
  246. package/dist/session/SessionContext.js.map +1 -0
  247. package/dist/session/environment.d.ts +42 -0
  248. package/dist/session/environment.d.ts.map +1 -0
  249. package/dist/session/environment.js +27 -0
  250. package/dist/session/environment.js.map +1 -0
  251. package/dist/session/history.d.ts +3 -0
  252. package/dist/session/history.d.ts.map +1 -0
  253. package/dist/session/history.js +67 -0
  254. package/dist/session/history.js.map +1 -0
  255. package/dist/session/index.d.ts +10 -0
  256. package/dist/session/index.d.ts.map +1 -0
  257. package/dist/session/index.js +9 -0
  258. package/dist/session/index.js.map +1 -0
  259. package/dist/session/serverData.d.ts +38 -0
  260. package/dist/session/serverData.d.ts.map +1 -0
  261. package/dist/session/serverData.js +241 -0
  262. package/dist/session/serverData.js.map +1 -0
  263. package/dist/tracking/Tracker.d.ts +55 -0
  264. package/dist/tracking/Tracker.d.ts.map +1 -0
  265. package/dist/tracking/Tracker.js +217 -0
  266. package/dist/tracking/Tracker.js.map +1 -0
  267. package/dist/tracking/index.d.ts +8 -0
  268. package/dist/tracking/index.d.ts.map +1 -0
  269. package/dist/tracking/index.js +8 -0
  270. package/dist/tracking/index.js.map +1 -0
  271. package/dist/tracking/schemas.d.ts +292 -0
  272. package/dist/tracking/schemas.d.ts.map +1 -0
  273. package/dist/tracking/schemas.js +91 -0
  274. package/dist/tracking/schemas.js.map +1 -0
  275. package/dist/types.d.ts +4 -0
  276. package/dist/types.d.ts.map +1 -0
  277. package/dist/types.js +2 -0
  278. package/dist/types.js.map +1 -0
  279. package/dist/utils/extractSetFlags.d.ts +6 -0
  280. package/dist/utils/extractSetFlags.d.ts.map +1 -0
  281. package/dist/utils/extractSetFlags.js +16 -0
  282. package/dist/utils/extractSetFlags.js.map +1 -0
  283. package/dist/utils/formatTimeAgo.d.ts +2 -0
  284. package/dist/utils/formatTimeAgo.d.ts.map +1 -0
  285. package/dist/utils/formatTimeAgo.js +20 -0
  286. package/dist/utils/formatTimeAgo.js.map +1 -0
  287. package/dist/utils/index.d.ts +12 -0
  288. package/dist/utils/index.d.ts.map +1 -0
  289. package/dist/utils/index.js +12 -0
  290. package/dist/utils/index.js.map +1 -0
  291. package/dist/utils/machineId.d.ts +14 -0
  292. package/dist/utils/machineId.d.ts.map +1 -0
  293. package/dist/utils/machineId.js +66 -0
  294. package/dist/utils/machineId.js.map +1 -0
  295. package/dist/utils/pathUtils.d.ts +22 -0
  296. package/dist/utils/pathUtils.d.ts.map +1 -0
  297. package/dist/utils/pathUtils.js +54 -0
  298. package/dist/utils/pathUtils.js.map +1 -0
  299. package/dist/version.d.ts +2 -0
  300. package/dist/version.d.ts.map +1 -0
  301. package/dist/version.js +23 -0
  302. package/dist/version.js.map +1 -0
  303. package/package.json +93 -0
@@ -0,0 +1,292 @@
1
+ /**
2
+ * Analytics event for user actions
3
+ */
4
+ export interface ActionEvent {
5
+ /**
6
+ * Event type identifier
7
+ */
8
+ event: 'Action';
9
+ /**
10
+ * Schema version for this event
11
+ */
12
+ schema_version: '1.0.1';
13
+ properties: {
14
+ /**
15
+ * Unix timestamp with fractional seconds (e.g., from mixpanel)
16
+ */
17
+ time?: number;
18
+ /**
19
+ * Distinct user identifier
20
+ */
21
+ distinct_id?: string;
22
+ /**
23
+ * Whether this is an internal event
24
+ */
25
+ internal_event?: false;
26
+ chat_message: {
27
+ /**
28
+ * Chat session identifier
29
+ */
30
+ chat_id?: string;
31
+ /**
32
+ * Execution mode
33
+ */
34
+ execution_mode: string;
35
+ /**
36
+ * Interface type
37
+ */
38
+ interface: string;
39
+ };
40
+ /**
41
+ * Custom model identifier
42
+ */
43
+ custom_model?: string;
44
+ /**
45
+ * User email address
46
+ */
47
+ email?: string;
48
+ /**
49
+ * Operation type
50
+ */
51
+ operation: string;
52
+ /**
53
+ * Product identifier
54
+ */
55
+ product: 'qodo_command';
56
+ qodo_gen: {
57
+ /**
58
+ * CLI version
59
+ */
60
+ cli_version: string;
61
+ /**
62
+ * Operating system platform
63
+ */
64
+ os_platform: string;
65
+ /**
66
+ * Operating system version
67
+ */
68
+ os_version: string;
69
+ /**
70
+ * Source identifier
71
+ */
72
+ source: string;
73
+ };
74
+ /**
75
+ * Request identifier
76
+ */
77
+ request_id: string;
78
+ service?: {
79
+ /**
80
+ * Service base URL
81
+ */
82
+ base_url: string;
83
+ };
84
+ user_data?: {
85
+ /**
86
+ * Organization identifier
87
+ */
88
+ organization_id?: string;
89
+ /**
90
+ * Team identifier
91
+ */
92
+ team_id?: string;
93
+ /**
94
+ * User tier level
95
+ */
96
+ tier_level?: number;
97
+ };
98
+ };
99
+ }
100
+ /**
101
+ * Analytics event for system responses
102
+ */
103
+ export interface ResponseEvent {
104
+ /**
105
+ * Event type identifier
106
+ */
107
+ event: 'Response';
108
+ /**
109
+ * Schema version for this event
110
+ */
111
+ schema_version: '1.0.1';
112
+ properties: {
113
+ /**
114
+ * Unix timestamp with fractional seconds (e.g., from mixpanel)
115
+ */
116
+ time?: number;
117
+ /**
118
+ * Distinct user identifier
119
+ */
120
+ distinct_id?: string;
121
+ chat_message: {
122
+ /**
123
+ * Chat session identifier
124
+ */
125
+ chat_id?: string;
126
+ /**
127
+ * Execution mode
128
+ */
129
+ execution_mode: string;
130
+ /**
131
+ * Interface type
132
+ */
133
+ interface: string;
134
+ /**
135
+ * Code blocks in the message
136
+ */
137
+ code_blocks?: {
138
+ /**
139
+ * Application name
140
+ */
141
+ application?: string;
142
+ /**
143
+ * Code block number
144
+ */
145
+ code_block?: number;
146
+ /**
147
+ * Display type
148
+ */
149
+ display_type?: string;
150
+ }[];
151
+ /**
152
+ * Number of code blocks
153
+ */
154
+ code_blocks_count?: number;
155
+ mcp?: {
156
+ /**
157
+ * Number of tools
158
+ */
159
+ tools_count?: number;
160
+ /**
161
+ * Executed tools
162
+ */
163
+ tools_executed?: {
164
+ /**
165
+ * Tool origin
166
+ */
167
+ origin?: string;
168
+ /**
169
+ * Server name
170
+ */
171
+ server_name?: string;
172
+ /**
173
+ * Tool name
174
+ */
175
+ tool_name?: string;
176
+ }[];
177
+ /**
178
+ * Number of executed tools
179
+ */
180
+ tools_executed_count?: number;
181
+ };
182
+ };
183
+ /**
184
+ * Custom model identifier
185
+ */
186
+ custom_model?: string;
187
+ /**
188
+ * User email address
189
+ */
190
+ email?: string;
191
+ /**
192
+ * Whether this is an internal event
193
+ */
194
+ internal_event?: false;
195
+ /**
196
+ * Operation type
197
+ */
198
+ operation: string;
199
+ /**
200
+ * Product identifier
201
+ */
202
+ product: 'qodo_command';
203
+ qodo_gen: {
204
+ /**
205
+ * CLI version
206
+ */
207
+ cli_version: string;
208
+ /**
209
+ * Operating system platform
210
+ */
211
+ os_platform: string;
212
+ /**
213
+ * Operating system version
214
+ */
215
+ os_version: string;
216
+ /**
217
+ * Source identifier
218
+ */
219
+ source: string;
220
+ };
221
+ /**
222
+ * Request identifier
223
+ */
224
+ request_id: string;
225
+ service?: {
226
+ /**
227
+ * Service base URL
228
+ */
229
+ base_url: string;
230
+ };
231
+ user_data?: {
232
+ /**
233
+ * Organization identifier
234
+ */
235
+ organization_id?: string;
236
+ /**
237
+ * Team identifier
238
+ */
239
+ team_id?: string;
240
+ /**
241
+ * User tier level
242
+ */
243
+ tier_level?: number;
244
+ };
245
+ };
246
+ }
247
+ export type AnalyticsEvent = ActionEvent | ResponseEvent;
248
+ export declare class ActionEventHelper {
249
+ /**
250
+ * Create a Action event
251
+ */
252
+ static create(data: Omit<ActionEvent['properties'], 'custom_model'> & {
253
+ custom_model?: string;
254
+ }): ActionEvent;
255
+ /**
256
+ * Convert to JSON string
257
+ */
258
+ static toJSON(event: ActionEvent): string;
259
+ }
260
+ export declare class ResponseEventHelper {
261
+ /**
262
+ * Create a Response event
263
+ */
264
+ static create(data: Omit<ResponseEvent['properties'], 'custom_model'> & {
265
+ custom_model?: string;
266
+ }): ResponseEvent;
267
+ /**
268
+ * Convert to JSON string
269
+ */
270
+ static toJSON(event: ResponseEvent): string;
271
+ }
272
+ export declare class AnalyticsUtils {
273
+ static _knownEvents: Set<string>;
274
+ /**
275
+ * Parse JSON string to appropriate event type (minimal runtime checks)
276
+ */
277
+ static parseEvent(json: string): AnalyticsEvent;
278
+ /**
279
+ * Convert event to JSON string
280
+ */
281
+ static eventToJson(event: AnalyticsEvent): string;
282
+ /**
283
+ * Type guard to check if object is ActionEvent (moderate checks only)
284
+ */
285
+ static isActionEvent(event: any): event is ActionEvent;
286
+ /**
287
+ * Type guard to check if object is ResponseEvent (moderate checks only)
288
+ */
289
+ static isResponseEvent(event: any): event is ResponseEvent;
290
+ static _versions: Record<string, string>;
291
+ }
292
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/tracking/schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ // Generated TypeScript interfaces for Analytics Events
2
+ // This file provides strongly-typed interfaces and helper classes
3
+ // Event creation helpers
4
+ export class ActionEventHelper {
5
+ /**
6
+ * Create a Action event
7
+ */
8
+ static create(data) {
9
+ const properties = { ...data };
10
+ // Only include optional fields if they are defined
11
+ if (data.custom_model !== undefined) {
12
+ properties.custom_model = data.custom_model;
13
+ }
14
+ return {
15
+ event: "Action",
16
+ schema_version: "1.0.1",
17
+ properties
18
+ };
19
+ }
20
+ /**
21
+ * Convert to JSON string
22
+ */
23
+ static toJSON(event) {
24
+ return JSON.stringify(event, null, 2);
25
+ }
26
+ }
27
+ export class ResponseEventHelper {
28
+ /**
29
+ * Create a Response event
30
+ */
31
+ static create(data) {
32
+ const properties = { ...data };
33
+ // Only include optional fields if they are defined
34
+ if (data.custom_model !== undefined) {
35
+ properties.custom_model = data.custom_model;
36
+ }
37
+ return {
38
+ event: "Response",
39
+ schema_version: "1.0.1",
40
+ properties
41
+ };
42
+ }
43
+ /**
44
+ * Convert to JSON string
45
+ */
46
+ static toJSON(event) {
47
+ return JSON.stringify(event, null, 2);
48
+ }
49
+ }
50
+ // Utility functions
51
+ export class AnalyticsUtils {
52
+ static _knownEvents = new Set(['Action', 'Response']);
53
+ /**
54
+ * Parse JSON string to appropriate event type (minimal runtime checks)
55
+ */
56
+ static parseEvent(json) {
57
+ let parsed;
58
+ try {
59
+ parsed = JSON.parse(json);
60
+ }
61
+ catch (e) {
62
+ throw new Error('Invalid JSON for analytics event: ' + e.message);
63
+ }
64
+ return parsed;
65
+ }
66
+ /**
67
+ * Convert event to JSON string
68
+ */
69
+ static eventToJson(event) {
70
+ return JSON.stringify(event, null, 2);
71
+ }
72
+ /**
73
+ * Type guard to check if object is ActionEvent (moderate checks only)
74
+ */
75
+ static isActionEvent(event) {
76
+ return (typeof event?.schema_version === 'string' &&
77
+ event?.properties !== null &&
78
+ typeof event?.properties === 'object');
79
+ }
80
+ /**
81
+ * Type guard to check if object is ResponseEvent (moderate checks only)
82
+ */
83
+ static isResponseEvent(event) {
84
+ return (typeof event?.schema_version === 'string' &&
85
+ event?.properties !== null &&
86
+ typeof event?.properties === 'object');
87
+ }
88
+ // Internal: versions map emitted from schemas (used by parseEvent optional check)
89
+ static _versions = { "Action": "1.0.1", "Response": "1.0.1" };
90
+ }
91
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/tracking/schemas.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,kEAAkE;AA8PlE,yBAAyB;AACzB,MAAM,OAAO,iBAAiB;IAC5B;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,IAAiF;QAC7F,MAAM,UAAU,GAA8B,EAAE,GAAG,IAAI,EAA+B,CAAC;QAEvF,mDAAmD;QACnD,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACnC,UAAkB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvD,CAAC;QAED,OAAO;YACL,KAAK,EAAE,QAAQ;YACf,cAAc,EAAE,OAAO;YACvB,UAAU;SACI,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,KAAkB;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;CACF;AAED,MAAM,OAAO,mBAAmB;IAC9B;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,IAAmF;QAC/F,MAAM,UAAU,GAAgC,EAAE,GAAG,IAAI,EAAiC,CAAC;QAE3F,mDAAmD;QACnD,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACnC,UAAkB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvD,CAAC;QAED,OAAO;YACL,KAAK,EAAE,UAAU;YACjB,cAAc,EAAE,OAAO;YACvB,UAAU;SACM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,KAAoB;QAChC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;CACF;AAED,oBAAoB;AACpB,MAAM,OAAO,cAAc;IACzB,MAAM,CAAC,YAAY,GAAG,IAAI,GAAG,CAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;IAC9D;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,IAAY;QAC5B,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAI,CAAW,CAAC,OAAO,CAAC,CAAC;QAC/E,CAAC;QACD,OAAO,MAAwB,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,KAAqB;QACtC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,KAAU;QAC7B,OAAO,CACL,OAAO,KAAK,EAAE,cAAc,KAAK,QAAQ;YACzC,KAAK,EAAE,UAAU,KAAK,IAAI;YAC1B,OAAO,KAAK,EAAE,UAAU,KAAK,QAAQ,CACtC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,KAAU;QAC/B,OAAO,CACL,OAAO,KAAK,EAAE,cAAc,KAAK,QAAQ;YACzC,KAAK,EAAE,UAAU,KAAK,IAAI;YAC1B,OAAO,KAAK,EAAE,UAAU,KAAK,QAAQ,CACtC,CAAC;IACJ,CAAC;IAED,kFAAkF;IAClF,MAAM,CAAC,SAAS,GAA2B,EAAC,QAAQ,EAAC,OAAO,EAAC,UAAU,EAAC,OAAO,EAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export type Flags = {
2
+ [key: string]: string | number | boolean;
3
+ };
4
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GAAG;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CAC1C,CAAA"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { Flags } from "../types.js";
2
+ /**
3
+ * Extract only the key-value pairs from --set flags
4
+ */
5
+ export declare function extractSetFlags(flags: Record<string, any>): Flags;
6
+ //# sourceMappingURL=extractSetFlags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractSetFlags.d.ts","sourceRoot":"","sources":["../../src/utils/extractSetFlags.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAYjE"}
@@ -0,0 +1,16 @@
1
+ import { toCamelCase } from "../parser/utils.js";
2
+ /**
3
+ * Extract only the key-value pairs from --set flags
4
+ */
5
+ export function extractSetFlags(flags) {
6
+ const setFlags = flags.set ? (Array.isArray(flags.set) ? flags.set : [flags.set]) : [];
7
+ const parsedSetArgs = {};
8
+ for (const setArg of setFlags) {
9
+ const [key, ...valueParts] = setArg.split('=');
10
+ if (key && valueParts.length > 0) {
11
+ parsedSetArgs[toCamelCase(key)] = valueParts.join('=');
12
+ }
13
+ }
14
+ return parsedSetArgs;
15
+ }
16
+ //# sourceMappingURL=extractSetFlags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractSetFlags.js","sourceRoot":"","sources":["../../src/utils/extractSetFlags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAA0B;IACxD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvF,MAAM,aAAa,GAAU,EAAE,CAAC;IAEhC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function formatTimeAgo(timestamp: number): string;
2
+ //# sourceMappingURL=formatTimeAgo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatTimeAgo.d.ts","sourceRoot":"","sources":["../../src/utils/formatTimeAgo.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAgBvD"}
@@ -0,0 +1,20 @@
1
+ export function formatTimeAgo(timestamp) {
2
+ const now = Math.floor(Date.now() / 1000); // Current time in seconds
3
+ const diff = now - timestamp;
4
+ if (diff < 60) {
5
+ return `${diff} seconds ago`;
6
+ }
7
+ else if (diff < 3600) {
8
+ const minutes = Math.floor(diff / 60);
9
+ return `${minutes} minute${minutes > 1 ? 's' : ''} ago`;
10
+ }
11
+ else if (diff < 86400) {
12
+ const hours = Math.floor(diff / 3600);
13
+ return `${hours} hour${hours > 1 ? 's' : ''} ago`;
14
+ }
15
+ else {
16
+ const days = Math.floor(diff / 86400);
17
+ return `${days} day${days > 1 ? 's' : ''} ago`;
18
+ }
19
+ }
20
+ //# sourceMappingURL=formatTimeAgo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatTimeAgo.js","sourceRoot":"","sources":["../../src/utils/formatTimeAgo.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAAC,SAAiB;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,0BAA0B;IACrE,MAAM,IAAI,GAAG,GAAG,GAAG,SAAS,CAAC;IAE7B,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC;QACd,OAAO,GAAG,IAAI,cAAc,CAAC;IAC/B,CAAC;SAAM,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QACtC,OAAO,GAAG,OAAO,UAAU,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IAC1D,CAAC;SAAM,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QACtC,OAAO,GAAG,KAAK,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IACpD,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;QACtC,OAAO,GAAG,IAAI,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IACjD,CAAC;AACH,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Utility functions that remain in utils/
3
+ * Most utilities have been moved to dedicated modules:
4
+ * - Session management: src/session/
5
+ * - Config management: src/config/
6
+ * - Context utilities: src/context/
7
+ */
8
+ export { extractSetFlags } from './extractSetFlags.js';
9
+ export { canonicalizePathSync, normalizeDriveLetter } from './pathUtils.js';
10
+ export { formatTimeAgo } from './formatTimeAgo.js';
11
+ export { generateMachineSpecificKeyName } from './machineId.js';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Utility functions that remain in utils/
3
+ * Most utilities have been moved to dedicated modules:
4
+ * - Session management: src/session/
5
+ * - Config management: src/config/
6
+ * - Context utilities: src/context/
7
+ */
8
+ export { extractSetFlags } from './extractSetFlags.js';
9
+ export { canonicalizePathSync, normalizeDriveLetter } from './pathUtils.js';
10
+ export { formatTimeAgo } from './formatTimeAgo.js';
11
+ export { generateMachineSpecificKeyName } from './machineId.js';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Generates a consistent, machine-specific key name for CLI authentication.
3
+ * This ensures that different machines don't overwrite each other's API keys.
4
+ *
5
+ * The key name is generated using:
6
+ * - Hostname (primary identifier)
7
+ * - Platform (OS type)
8
+ * - Architecture (CPU architecture)
9
+ * - Network interfaces MAC addresses (for additional uniqueness)
10
+ *
11
+ * @returns A short, consistent machine-specific key name
12
+ */
13
+ export declare function generateMachineSpecificKeyName(): string;
14
+ //# sourceMappingURL=machineId.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"machineId.d.ts","sourceRoot":"","sources":["../../src/utils/machineId.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;GAWG;AACH,wBAAgB,8BAA8B,IAAI,MAAM,CA0DvD"}
@@ -0,0 +1,66 @@
1
+ import os from 'node:os';
2
+ import crypto from 'node:crypto';
3
+ /**
4
+ * Generates a consistent, machine-specific key name for CLI authentication.
5
+ * This ensures that different machines don't overwrite each other's API keys.
6
+ *
7
+ * The key name is generated using:
8
+ * - Hostname (primary identifier)
9
+ * - Platform (OS type)
10
+ * - Architecture (CPU architecture)
11
+ * - Network interfaces MAC addresses (for additional uniqueness)
12
+ *
13
+ * @returns A short, consistent machine-specific key name
14
+ */
15
+ export function generateMachineSpecificKeyName() {
16
+ try {
17
+ // Get basic machine identifiers
18
+ const hostname = os.hostname();
19
+ const platform = os.platform();
20
+ const arch = os.arch();
21
+ // Get network interfaces for additional uniqueness
22
+ const networkInterfaces = os.networkInterfaces();
23
+ const macAddresses = [];
24
+ // Extract MAC addresses from network interfaces
25
+ for (const interfaceName in networkInterfaces) {
26
+ const interfaces = networkInterfaces[interfaceName];
27
+ if (interfaces) {
28
+ for (const iface of interfaces) {
29
+ if (iface.mac && iface.mac !== '00:00:00:00:00:00') {
30
+ macAddresses.push(iface.mac);
31
+ }
32
+ }
33
+ }
34
+ }
35
+ // Sort MAC addresses for consistency
36
+ macAddresses.sort();
37
+ // Create a unique string combining all identifiers
38
+ const machineString = [
39
+ hostname,
40
+ platform,
41
+ arch,
42
+ ...macAddresses
43
+ ].join('|');
44
+ // Create a hash of the machine string for a shorter, consistent identifier
45
+ const hash = crypto.createHash('sha256').update(machineString).digest('hex');
46
+ // Take first 8 characters of hash and combine with hostname for readability
47
+ const shortHash = hash.substring(0, 8);
48
+ // Clean hostname (remove special characters, limit length)
49
+ const cleanHostname = hostname
50
+ .replace(/[^a-zA-Z0-9-]/g, '')
51
+ .substring(0, 16)
52
+ .toLowerCase();
53
+ // Return format: cli_<hostname>_<hash>
54
+ return `cli_${cleanHostname}_${shortHash}`;
55
+ }
56
+ catch (error) {
57
+ // Fallback: if anything fails, use a basic identifier
58
+ console.warn('Warning: Could not generate machine-specific key name, using fallback');
59
+ const fallbackHash = crypto.createHash('sha256')
60
+ .update(os.hostname() + os.platform() + os.arch())
61
+ .digest('hex')
62
+ .substring(0, 8);
63
+ return `cli_fallback_${fallbackHash}`;
64
+ }
65
+ }
66
+ //# sourceMappingURL=machineId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"machineId.js","sourceRoot":"","sources":["../../src/utils/machineId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,8BAA8B;IAC5C,IAAI,CAAC;QACH,gCAAgC;QAChC,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;QAEvB,mDAAmD;QACnD,MAAM,iBAAiB,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC;QACjD,MAAM,YAAY,GAAa,EAAE,CAAC;QAElC,gDAAgD;QAChD,KAAK,MAAM,aAAa,IAAI,iBAAiB,EAAE,CAAC;YAC9C,MAAM,UAAU,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;YACpD,IAAI,UAAU,EAAE,CAAC;gBACf,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;oBAC/B,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,mBAAmB,EAAE,CAAC;wBACnD,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC/B,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,qCAAqC;QACrC,YAAY,CAAC,IAAI,EAAE,CAAC;QAEpB,mDAAmD;QACnD,MAAM,aAAa,GAAG;YACpB,QAAQ;YACR,QAAQ;YACR,IAAI;YACJ,GAAG,YAAY;SAChB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEZ,2EAA2E;QAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE7E,4EAA4E;QAC5E,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEvC,2DAA2D;QAC3D,MAAM,aAAa,GAAG,QAAQ;aAC3B,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;aAC7B,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;aAChB,WAAW,EAAE,CAAC;QAEjB,uCAAuC;QACvC,OAAO,OAAO,aAAa,IAAI,SAAS,EAAE,CAAC;IAE7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,sDAAsD;QACtD,OAAO,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAC;QACtF,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;aAC7C,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;aACjD,MAAM,CAAC,KAAK,CAAC;aACb,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACnB,OAAO,gBAAgB,YAAY,EAAE,CAAC;IACxC,CAAC;AACH,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Normalize Windows drive letters to a consistent form (uppercase) so that
3
+ * comparisons like C:\repo vs c:\repo behave identically. On non-Windows
4
+ * platforms this is a no-op.
5
+ */
6
+ export declare function normalizeDriveLetter(p: string): string;
7
+ /**
8
+ * Canonicalize a path by resolving symlinks and virtual drives (e.g. Windows
9
+ * `subst`), then normalizing the drive letter where applicable.
10
+ *
11
+ * - First attempts fs.realpath to collapse aliases like S:\repo to the
12
+ * underlying physical path (e.g. C:\long\path\repo).
13
+ * - On failure (non-existent path, permission issues), falls back to
14
+ * path.resolve so callers can still perform their own access checks.
15
+ */
16
+ export declare function canonicalizePath(p: string): Promise<string>;
17
+ /**
18
+ * Synchronous variant of canonicalizePath for use in constructors and other
19
+ * non-async call sites.
20
+ */
21
+ export declare function canonicalizePathSync(p: string): string;
22
+ //# sourceMappingURL=pathUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pathUtils.d.ts","sourceRoot":"","sources":["../../src/utils/pathUtils.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAMtD;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQjE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAatD"}