@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,208 @@
1
+ import { v4 as uuid } from "uuid";
2
+ import { trackAgentStart, trackAgentFinish } from "./analytics.js";
3
+ /**
4
+ * TaskTracker handles all tracking-related functionality for agent tasks.
5
+ * This includes tracking task starts, finishes, tool executions, and code changes.
6
+ */
7
+ export class TaskTracker {
8
+ // Task tracking context
9
+ trackingContext;
10
+ sessionContext;
11
+ mcpManager;
12
+ constructor(sessionContext, mcpManager) {
13
+ this.sessionContext = sessionContext;
14
+ this.mcpManager = mcpManager;
15
+ }
16
+ /**
17
+ * Initialize task tracking for a new task
18
+ */
19
+ initializeTaskTracking(agentSession) {
20
+ const requestId = agentSession.requestId || uuid();
21
+ const sessionId = agentSession.sessionId;
22
+ const customModel = agentSession?.data?.custom_model || this.sessionContext?.getModel();
23
+ const executionMode = this.getExecutionMode(agentSession);
24
+ const interfaceType = this.getInterfaceType();
25
+ // Initialize tracking context
26
+ this.trackingContext = {
27
+ start: {
28
+ requestId,
29
+ sessionId,
30
+ customModel,
31
+ executionMode,
32
+ interfaceType
33
+ },
34
+ current: {
35
+ executedTools: [],
36
+ codeBlocks: [],
37
+ isFinished: false
38
+ }
39
+ };
40
+ // Fire analytics with error handling
41
+ trackAgentStart(requestId, sessionId, executionMode, interfaceType, customModel).catch(error => {
42
+ console.debug('Analytics tracking failed:', error);
43
+ });
44
+ }
45
+ /**
46
+ * Track the finish of a task
47
+ */
48
+ async trackTaskFinish(isError = false) {
49
+ if (!this.trackingContext || this.trackingContext.current.isFinished) {
50
+ return;
51
+ }
52
+ if (!this.validateTrackingState()) {
53
+ console.warn('Task tracking not properly initialized, skipping finish tracking');
54
+ return;
55
+ }
56
+ this.trackingContext.current.isFinished = true;
57
+ // Get available tools count
58
+ const availableToolsCount = this.mcpManager && this.sessionContext ?
59
+ Array.from(this.mcpManager.getEnabledTools(this.sessionContext.getAvailableTools(), this.sessionContext.getIgnoreTools()).values())
60
+ .reduce((sum, tools) => sum + tools.length, 0) : 0;
61
+ // Track with error handling
62
+ trackAgentFinish(this.trackingContext.start.requestId, this.trackingContext.start.sessionId, this.trackingContext.current.executedTools, availableToolsCount, this.trackingContext.start.executionMode, this.trackingContext.start.interfaceType, this.trackingContext.start.customModel, isError, this.trackingContext.current.codeBlocks).catch(error => {
63
+ console.debug('Analytics tracking failed:', error);
64
+ });
65
+ }
66
+ /**
67
+ * Track a tool execution
68
+ */
69
+ trackToolExecution(serverName, toolName) {
70
+ if (this.trackingContext) {
71
+ this.trackingContext.current.executedTools.push({
72
+ origin: this.getToolOrigin(serverName),
73
+ server_name: serverName,
74
+ tool_name: toolName
75
+ });
76
+ }
77
+ }
78
+ /**
79
+ * Track filesystem changes for code block analytics
80
+ */
81
+ trackFileSystemChanges(toolName, toolArgs, result) {
82
+ if (!this.trackingContext) {
83
+ return;
84
+ }
85
+ try {
86
+ if (toolName === "write_file") {
87
+ // For write_file, count the lines in the content
88
+ const content = toolArgs.content || "";
89
+ const lines = content.split('\n').length;
90
+ const codeBlock = {
91
+ code_block: lines,
92
+ application: "new_file",
93
+ display_type: "auto_applied"
94
+ };
95
+ this.trackingContext.current.codeBlocks.push(codeBlock);
96
+ }
97
+ else if (toolName === "edit_file") {
98
+ // For edit_file, count the total of added + removed lines
99
+ let totalChangedLines = 0;
100
+ if (toolArgs.edits && Array.isArray(toolArgs.edits)) {
101
+ // New format with edits array
102
+ for (const edit of toolArgs.edits) {
103
+ const oldLines = (edit.oldText || "").split('\n').length;
104
+ const newLines = (edit.newText || "").split('\n').length;
105
+ // Count both removed and added lines
106
+ totalChangedLines += oldLines + newLines;
107
+ }
108
+ }
109
+ else if (toolArgs.operations && Array.isArray(toolArgs.operations)) {
110
+ // Legacy format with operations array
111
+ for (const op of toolArgs.operations) {
112
+ const oldLines = (op.oldText || "").split('\n').length;
113
+ const newLines = (op.newText || "").split('\n').length;
114
+ // Count both removed and added lines
115
+ totalChangedLines += oldLines + newLines;
116
+ }
117
+ }
118
+ else if (toolArgs.oldText !== undefined && toolArgs.newText !== undefined) {
119
+ // Single operation (backward compatibility)
120
+ const oldLines = (toolArgs.oldText || "").split('\n').length;
121
+ const newLines = (toolArgs.newText || "").split('\n').length;
122
+ // Count both removed and added lines
123
+ totalChangedLines = oldLines + newLines;
124
+ }
125
+ if (totalChangedLines > 0) {
126
+ const codeBlock = {
127
+ code_block: totalChangedLines,
128
+ application: "modify_existing",
129
+ display_type: "auto_applied"
130
+ };
131
+ this.trackingContext.current.codeBlocks.push(codeBlock);
132
+ }
133
+ }
134
+ }
135
+ catch (error) {
136
+ console.debug("Error tracking filesystem changes:", error);
137
+ }
138
+ }
139
+ /**
140
+ * Determine the origin of a tool based on its server name
141
+ */
142
+ getToolOrigin(serverName) {
143
+ // Check if it's a builtin server (case-insensitive)
144
+ const builtinServers = ["file system", "filesystem", "git", "ripgrep"];
145
+ if (builtinServers.includes(serverName.toLowerCase())) {
146
+ return "built_in";
147
+ }
148
+ // Check if it's a backend/remote server (starts with "qodo")
149
+ if (serverName.toLowerCase().startsWith("qodo")) {
150
+ return "remote";
151
+ }
152
+ // Otherwise it's a custom server
153
+ return "custom";
154
+ }
155
+ /**
156
+ * Get the interface type. In SDK context, this is always "sdk".
157
+ */
158
+ getInterfaceType() {
159
+ return "sdk";
160
+ }
161
+ /**
162
+ * Determine execution mode from agent session
163
+ */
164
+ getExecutionMode(agentSession) {
165
+ if (agentSession.data.ci_mode === true) {
166
+ return "cmdline";
167
+ }
168
+ else if ((agentSession.command || this.sessionContext?.getCommand())?.name) {
169
+ return "agent_file";
170
+ }
171
+ else if (agentSession.data.ci_mode === false) {
172
+ // Explicitly set to false means interactive mode (chat)
173
+ return "chat";
174
+ }
175
+ else if (agentSession.data.user_request) {
176
+ // User request without ci_mode specified means command line
177
+ return "cmdline";
178
+ }
179
+ else {
180
+ return "chat";
181
+ }
182
+ }
183
+ /**
184
+ * Validate that all required tracking fields are present
185
+ */
186
+ validateTrackingState() {
187
+ return !!(this.trackingContext?.start.requestId &&
188
+ this.trackingContext?.start.sessionId &&
189
+ this.trackingContext?.start.executionMode &&
190
+ this.trackingContext?.start.interfaceType);
191
+ }
192
+ /**
193
+ * Check if there's an active tracking context
194
+ */
195
+ hasActiveTracking() {
196
+ return !!this.trackingContext && !this.trackingContext.current.isFinished;
197
+ }
198
+ /**
199
+ * Check if we should track a user request
200
+ */
201
+ shouldTrackUserRequest(data) {
202
+ // Only track if this is a user-initiated request with actual content (not tool responses or empty requests)
203
+ const hasUserContent = data.user_request && typeof data.user_request === 'string' && data.user_request.trim().length > 0;
204
+ const isUserRequest = hasUserContent && !data.tool && !data.tool_id && !data.answer;
205
+ return isUserRequest && (!this.trackingContext || this.trackingContext.current.isFinished);
206
+ }
207
+ }
208
+ //# sourceMappingURL=taskTracking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taskTracking.js","sourceRoot":"","sources":["../../src/api/taskTracking.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ import { CommandConfig, OutputSchema } from "../parser/types.js";
2
+ export interface AgentResponse {
3
+ content?: string;
4
+ error?: string;
5
+ forceStop?: boolean;
6
+ toolData?: ToolData;
7
+ }
8
+ export interface TaskBaseData {
9
+ projects_root_path: string[];
10
+ project_structure?: string;
11
+ instructions?: string;
12
+ cwd?: string;
13
+ previous_sessions_summarization?: string;
14
+ }
15
+ export interface BaseData {
16
+ session_id: string;
17
+ user_data: UserDataRequest;
18
+ agent_type: "cli";
19
+ tools: Record<string, Record<string, any>[]>;
20
+ custom_model?: string;
21
+ permissions?: string;
22
+ }
23
+ export interface TaskRequestData {
24
+ user_request?: string;
25
+ user_context?: Record<string, any>;
26
+ output_schema?: OutputSchema;
27
+ custom_model?: string;
28
+ answer?: Record<string, any>;
29
+ tool?: string;
30
+ tool_id?: string;
31
+ ci_mode?: boolean;
32
+ max_iterations?: number;
33
+ execution_strategy?: "plan" | "act";
34
+ qodomd?: string;
35
+ images?: string[];
36
+ git_sha1?: string;
37
+ }
38
+ export type AgentRequest = BaseData & TaskBaseData & TaskRequestData;
39
+ export interface AgentSession {
40
+ sessionId: string;
41
+ requestId: string;
42
+ abortController?: AbortController;
43
+ data: TaskRequestData;
44
+ command?: CommandConfig;
45
+ userEngagementCallback?: (response: AgentResponse) => void;
46
+ waitingForResponse?: boolean;
47
+ lastPacketTimestamp?: number;
48
+ }
49
+ export interface PendingToolData {
50
+ agentSession: AgentSession;
51
+ toolData: ToolData;
52
+ }
53
+ export interface ToolResult {
54
+ isError: boolean;
55
+ content: {
56
+ type: string;
57
+ text: string;
58
+ }[];
59
+ }
60
+ export interface ToolData {
61
+ server_name: string;
62
+ tool: string;
63
+ tool_args: Record<string, unknown>;
64
+ tool_reasoning?: string;
65
+ identifier?: string;
66
+ pending_approval?: boolean;
67
+ tool_result?: ToolResult;
68
+ tool_args_for_ui: any;
69
+ session_id?: string;
70
+ }
71
+ export interface PendingToolData {
72
+ agentSession: AgentSession;
73
+ toolData: ToolData;
74
+ }
75
+ export interface UserDataRequest {
76
+ extension_version: string;
77
+ os_platform: NodeJS.Platform;
78
+ os_version: string;
79
+ editor_type: "cli";
80
+ }
81
+ export interface AuthConfig {
82
+ token: string;
83
+ source: 'env' | 'file';
84
+ }
85
+ export interface APIRequest {
86
+ method: "GET" | "POST" | "DELETE";
87
+ url: string;
88
+ data?: unknown;
89
+ requestId?: string;
90
+ timeout?: number;
91
+ }
92
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import { UserDataRequest } from "./types.js";
2
+ export declare function getUserData(): UserDataRequest;
3
+ /**
4
+ * Gets the current git SHA1 commit hash from the current working directory.
5
+ * Returns undefined if not in a git repository or if git command fails.
6
+ */
7
+ export declare function getCurrentGitSha1(): string | undefined;
8
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/api/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,YAAY,CAAC;AAiC3C,wBAAgB,WAAW,IAAI,eAAe,CAO7C;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAatD"}
@@ -0,0 +1,54 @@
1
+ import { readFileSync } from 'fs';
2
+ import { fileURLToPath } from 'url';
3
+ import { dirname, resolve } from 'path';
4
+ import { execSync } from 'child_process';
5
+ // Handle version dynamically
6
+ let cachedVersion = null;
7
+ function getVersion() {
8
+ if (cachedVersion !== null)
9
+ return cachedVersion;
10
+ if (typeof __APP_VERSION__ !== 'undefined') {
11
+ cachedVersion = __APP_VERSION__;
12
+ }
13
+ else {
14
+ try {
15
+ // In development, read from package.json
16
+ const __filename = fileURLToPath(import.meta.url);
17
+ const __dirname = dirname(__filename);
18
+ const packageJsonPath = resolve(__dirname, '../../package.json');
19
+ const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf8'));
20
+ cachedVersion = packageJson.version;
21
+ }
22
+ catch {
23
+ cachedVersion = 'unknown';
24
+ }
25
+ }
26
+ return cachedVersion;
27
+ }
28
+ export function getUserData() {
29
+ return {
30
+ extension_version: getVersion(),
31
+ os_platform: process.platform,
32
+ os_version: process.version,
33
+ editor_type: "cli",
34
+ };
35
+ }
36
+ /**
37
+ * Gets the current git SHA1 commit hash from the current working directory.
38
+ * Returns undefined if not in a git repository or if git command fails.
39
+ */
40
+ export function getCurrentGitSha1() {
41
+ try {
42
+ const output = execSync('git rev-parse HEAD', {
43
+ cwd: process.cwd(),
44
+ encoding: 'utf8',
45
+ stdio: ['pipe', 'pipe', 'ignore'] // Ignore stderr to avoid noise
46
+ });
47
+ return output.trim();
48
+ }
49
+ catch (error) {
50
+ // Not in a git repository or git command failed
51
+ return undefined;
52
+ }
53
+ }
54
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/api/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAKzC,6BAA6B;AAC7B,IAAI,aAAa,GAAkB,IAAI,CAAC;AAExC,SAAS,UAAU;IACjB,IAAI,aAAa,KAAK,IAAI;QAAE,OAAO,aAAa,CAAC;IAEjD,IAAI,OAAO,eAAe,KAAK,WAAW,EAAE,CAAC;QAC3C,aAAa,GAAG,eAAe,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,yCAAyC;YACzC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;YACtC,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;YACjE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;YACtE,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,aAAa,GAAG,SAAS,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,aAAc,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO;QACL,iBAAiB,EAAE,UAAU,EAAE;QAC/B,WAAW,EAAE,OAAO,CAAC,QAAQ;QAC7B,UAAU,EAAE,OAAO,CAAC,OAAO;QAC3B,WAAW,EAAE,KAAK;KACnB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,oBAAoB,EAAE;YAC5C,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,+BAA+B;SAClE,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gDAAgD;QAChD,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -0,0 +1,74 @@
1
+ import { EventEmitter } from "events";
2
+ export declare enum ConnectionState {
3
+ DISCONNECTED = "DISCONNECTED",
4
+ CONNECTING = "CONNECTING",
5
+ CONNECTED = "CONNECTED",
6
+ RECONNECTING = "RECONNECTING",
7
+ DISCONNECTING = "DISCONNECTING",
8
+ FAILED = "FAILED"
9
+ }
10
+ export declare enum ReadyState {
11
+ IDLE = "IDLE",
12
+ WAITING_INITIAL_READY = "WAITING_INITIAL_READY",
13
+ READY = "READY",
14
+ MESSAGE_SENT = "MESSAGE_SENT",
15
+ WAITING_READY = "WAITING_READY",
16
+ CHECKPOINT_RECOVERY = "CHECKPOINT_RECOVERY"
17
+ }
18
+ export declare class WebSocketClient extends EventEmitter {
19
+ private ws?;
20
+ private shouldDebugLog;
21
+ private debug;
22
+ private state;
23
+ private sessionId?;
24
+ private requestId?;
25
+ private connectionId?;
26
+ private idleTimer?;
27
+ private autoDisconnected;
28
+ private heartbeatInterval?;
29
+ private lastPongReceived;
30
+ private lastPingSent;
31
+ private reconnectAttempts;
32
+ private reconnectTimer?;
33
+ private isReconnecting;
34
+ private messageQueue;
35
+ private isProcessingQueue;
36
+ private readyState;
37
+ private latestCheckpointId?;
38
+ private lastSentMessage?;
39
+ private readyTimer?;
40
+ private pendingOutbox;
41
+ private receivedResponsesSinceMessage;
42
+ hasReceivedResponsesSinceLastMessage(): boolean;
43
+ private connectionTimeoutTimer?;
44
+ constructor();
45
+ private setState;
46
+ private setReadyState;
47
+ private handleReadyMessage;
48
+ connect(sessionId?: string, requestId?: string): Promise<void>;
49
+ sendMessage(type: 'UserQuery' | 'IDERetrievalAnswer', data: any): Promise<void>;
50
+ private sendImmediately;
51
+ private processOutbox;
52
+ startReadyTimer(): void;
53
+ private clearReadyTimer;
54
+ private initiateCheckpointRecovery;
55
+ disconnect(): void;
56
+ getState(): ConnectionState;
57
+ keepAlive(): void;
58
+ private establishConnection;
59
+ private waitForConnection;
60
+ private buildWebSocketUrl;
61
+ private formatMessage;
62
+ private handleClose;
63
+ private attemptReconnection;
64
+ private calculateBackoffDelay;
65
+ private startIdleTimer;
66
+ private clearIdleTimer;
67
+ private resetIdleTimer;
68
+ private startHeartbeat;
69
+ private stopHeartbeat;
70
+ private processQueuedMessages;
71
+ private clearTimers;
72
+ cleanup(): void;
73
+ }
74
+ //# sourceMappingURL=websocket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../src/api/websocket.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAmBtC,oBAAY,eAAe;IACzB,YAAY,iBAAiB;IAC7B,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAC/B,MAAM,WAAW;CAClB;AAED,oBAAY,UAAU;IACpB,IAAI,SAAS;IACb,qBAAqB,0BAA0B;IAC/C,KAAK,UAAU;IACf,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAC/B,mBAAmB,wBAAwB;CAC5C;AAUD,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,EAAE,CAAC,CAAY;IAEvB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,KAAK;IAMb,OAAO,CAAC,KAAK,CAAiD;IAC9D,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAC,CAAS;IAG9B,OAAO,CAAC,SAAS,CAAC,CAAiB;IACnC,OAAO,CAAC,gBAAgB,CAAkB;IAG1C,OAAO,CAAC,iBAAiB,CAAC,CAAiB;IAC3C,OAAO,CAAC,gBAAgB,CAAsB;IAC9C,OAAO,CAAC,YAAY,CAAa;IAGjC,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,cAAc,CAAkB;IAGxC,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,iBAAiB,CAAkB;IAG3C,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,kBAAkB,CAAC,CAAS;IACpC,OAAO,CAAC,eAAe,CAAC,CAA6E;IACrG,OAAO,CAAC,UAAU,CAAC,CAAiB;IACpC,OAAO,CAAC,aAAa,CAAyF;IAC9G,OAAO,CAAC,6BAA6B,CAAkB;IAEhD,oCAAoC,IAAI,OAAO;IAKtD,OAAO,CAAC,sBAAsB,CAAC,CAAiB;;IAMhD,OAAO,CAAC,QAAQ;IAehB,OAAO,CAAC,aAAa;YAgBP,kBAAkB;IA+EnB,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB9D,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,oBAAoB,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;YA4C9E,eAAe;YAUf,aAAa;IA8BpB,eAAe,IAAI,IAAI;IAiB9B,OAAO,CAAC,eAAe;YAOT,0BAA0B;IAuDjC,UAAU,IAAI,IAAI;IAiClB,QAAQ,IAAI,eAAe;IAI3B,SAAS,IAAI,IAAI;YAQV,mBAAmB;YAsJnB,iBAAiB;IAe/B,OAAO,CAAC,iBAAiB;IA6BzB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,WAAW;YA8BL,mBAAmB;IA2BjC,OAAO,CAAC,qBAAqB;IAS7B,OAAO,CAAC,cAAc;IAoBtB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,cAAc;IAiCtB,OAAO,CAAC,aAAa;YAOP,qBAAqB;IA+BnC,OAAO,CAAC,WAAW;IAgBZ,OAAO,IAAI,IAAI;CAqBvB"}