codecane 1.0.393 → 1.0.395

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 (571) hide show
  1. package/package.json +13 -73
  2. package/scripts/codebuff-wrapper.js +39 -0
  3. package/scripts/install.js +97 -0
  4. package/dist/__tests__/display.test.d.ts +0 -1
  5. package/dist/__tests__/display.test.js +0 -174
  6. package/dist/__tests__/display.test.js.map +0 -1
  7. package/dist/background-process-manager.d.ts +0 -50
  8. package/dist/background-process-manager.js +0 -364
  9. package/dist/background-process-manager.js.map +0 -1
  10. package/dist/browser-runner.d.ts +0 -35
  11. package/dist/browser-runner.js +0 -689
  12. package/dist/browser-runner.js.map +0 -1
  13. package/dist/chat-storage.d.ts +0 -2
  14. package/dist/chat-storage.js +0 -98
  15. package/dist/chat-storage.js.map +0 -1
  16. package/dist/checkpoints/checkpoint-manager.d.ts +0 -94
  17. package/dist/checkpoints/checkpoint-manager.js +0 -291
  18. package/dist/checkpoints/checkpoint-manager.js.map +0 -1
  19. package/dist/checkpoints/file-manager.d.ts +0 -72
  20. package/dist/checkpoints/file-manager.js +0 -443
  21. package/dist/checkpoints/file-manager.js.map +0 -1
  22. package/dist/cli-definitions.d.ts +0 -9
  23. package/dist/cli-definitions.js +0 -66
  24. package/dist/cli-definitions.js.map +0 -1
  25. package/dist/cli-handlers/api-key.d.ts +0 -25
  26. package/dist/cli-handlers/api-key.js +0 -66
  27. package/dist/cli-handlers/api-key.js.map +0 -1
  28. package/dist/cli-handlers/checkpoint.d.ts +0 -19
  29. package/dist/cli-handlers/checkpoint.js +0 -221
  30. package/dist/cli-handlers/checkpoint.js.map +0 -1
  31. package/dist/cli-handlers/diff.d.ts +0 -2
  32. package/dist/cli-handlers/diff.js +0 -31
  33. package/dist/cli-handlers/diff.js.map +0 -1
  34. package/dist/cli-handlers/easter-egg.d.ts +0 -1
  35. package/dist/cli-handlers/easter-egg.js +0 -126
  36. package/dist/cli-handlers/easter-egg.js.map +0 -1
  37. package/dist/cli-handlers/inititalization-flow.d.ts +0 -1
  38. package/dist/cli-handlers/inititalization-flow.js +0 -25
  39. package/dist/cli-handlers/inititalization-flow.js.map +0 -1
  40. package/dist/cli.d.ts +0 -68
  41. package/dist/cli.js +0 -777
  42. package/dist/cli.js.map +0 -1
  43. package/dist/client.d.ts +0 -91
  44. package/dist/client.js +0 -1325
  45. package/dist/client.js.map +0 -1
  46. package/dist/code-map/languages.d.ts +0 -12
  47. package/dist/code-map/languages.d.ts.map +0 -1
  48. package/dist/code-map/languages.js +0 -130
  49. package/dist/code-map/languages.js.map +0 -1
  50. package/dist/code-map/parse.d.ts +0 -22
  51. package/dist/code-map/parse.d.ts.map +0 -1
  52. package/dist/code-map/parse.js +0 -180
  53. package/dist/code-map/parse.js.map +0 -1
  54. package/dist/code-map/test-langs/test.d.ts +0 -12
  55. package/dist/code-map/test-langs/test.d.ts.map +0 -1
  56. package/dist/code-map/test-langs/test.js +0 -23
  57. package/dist/code-map/test-langs/test.js.map +0 -1
  58. package/dist/code-map/tree-sitter-queries/readme.md +0 -23
  59. package/dist/code-map/tree-sitter-queries/tree-sitter-c-tags.scm +0 -16
  60. package/dist/code-map/tree-sitter-queries/tree-sitter-c_sharp-tags.scm +0 -23
  61. package/dist/code-map/tree-sitter-queries/tree-sitter-cpp-tags.scm +0 -29
  62. package/dist/code-map/tree-sitter-queries/tree-sitter-go-tags.scm +0 -26
  63. package/dist/code-map/tree-sitter-queries/tree-sitter-java-tags.scm +0 -19
  64. package/dist/code-map/tree-sitter-queries/tree-sitter-javascript-tags.scm +0 -16
  65. package/dist/code-map/tree-sitter-queries/tree-sitter-php-tags.scm +0 -23
  66. package/dist/code-map/tree-sitter-queries/tree-sitter-python-tags.scm +0 -12
  67. package/dist/code-map/tree-sitter-queries/tree-sitter-ruby-tags.scm +0 -58
  68. package/dist/code-map/tree-sitter-queries/tree-sitter-rust-tags.scm +0 -26
  69. package/dist/code-map/tree-sitter-queries/tree-sitter-typescript-tags.scm +0 -22
  70. package/dist/code-map/tsconfig.tsbuildinfo +0 -1
  71. package/dist/common/actions.d.ts +0 -2673
  72. package/dist/common/actions.d.ts.map +0 -1
  73. package/dist/common/actions.js +0 -167
  74. package/dist/common/actions.js.map +0 -1
  75. package/dist/common/analytics.d.ts +0 -6
  76. package/dist/common/analytics.d.ts.map +0 -1
  77. package/dist/common/analytics.js +0 -60
  78. package/dist/common/analytics.js.map +0 -1
  79. package/dist/common/api-keys/constants.d.ts +0 -9
  80. package/dist/common/api-keys/constants.d.ts.map +0 -1
  81. package/dist/common/api-keys/constants.js +0 -26
  82. package/dist/common/api-keys/constants.js.map +0 -1
  83. package/dist/common/api-keys/crypto.d.ts +0 -25
  84. package/dist/common/api-keys/crypto.d.ts.map +0 -1
  85. package/dist/common/api-keys/crypto.js +0 -186
  86. package/dist/common/api-keys/crypto.js.map +0 -1
  87. package/dist/common/browser-actions.d.ts +0 -4416
  88. package/dist/common/browser-actions.d.ts.map +0 -1
  89. package/dist/common/browser-actions.js +0 -343
  90. package/dist/common/browser-actions.js.map +0 -1
  91. package/dist/common/constants/analytics-events.d.ts +0 -29
  92. package/dist/common/constants/analytics-events.d.ts.map +0 -1
  93. package/dist/common/constants/analytics-events.js +0 -37
  94. package/dist/common/constants/analytics-events.js.map +0 -1
  95. package/dist/common/constants/grant-priorities.d.ts +0 -3
  96. package/dist/common/constants/grant-priorities.d.ts.map +0 -1
  97. package/dist/common/constants/grant-priorities.js +0 -11
  98. package/dist/common/constants/grant-priorities.js.map +0 -1
  99. package/dist/common/constants/tools.d.ts +0 -21
  100. package/dist/common/constants/tools.d.ts.map +0 -1
  101. package/dist/common/constants/tools.js +0 -48
  102. package/dist/common/constants/tools.js.map +0 -1
  103. package/dist/common/constants.d.ts +0 -149
  104. package/dist/common/constants.d.ts.map +0 -1
  105. package/dist/common/constants.js +0 -234
  106. package/dist/common/constants.js.map +0 -1
  107. package/dist/common/db/drizzle.config.d.ts +0 -3
  108. package/dist/common/db/drizzle.config.d.ts.map +0 -1
  109. package/dist/common/db/drizzle.config.js +0 -17
  110. package/dist/common/db/drizzle.config.js.map +0 -1
  111. package/dist/common/db/env.d.mts +0 -4
  112. package/dist/common/db/env.mjs +0 -26
  113. package/dist/common/db/env.mjs.map +0 -1
  114. package/dist/common/db/index.d.ts +0 -7
  115. package/dist/common/db/index.d.ts.map +0 -1
  116. package/dist/common/db/index.js +0 -35
  117. package/dist/common/db/index.js.map +0 -1
  118. package/dist/common/db/schema.d.ts +0 -2449
  119. package/dist/common/db/schema.d.ts.map +0 -1
  120. package/dist/common/db/schema.js +0 -310
  121. package/dist/common/db/schema.js.map +0 -1
  122. package/dist/common/db/transaction.d.ts +0 -13
  123. package/dist/common/db/transaction.d.ts.map +0 -1
  124. package/dist/common/db/transaction.js +0 -36
  125. package/dist/common/db/transaction.js.map +0 -1
  126. package/dist/common/env.d.mts +0 -13
  127. package/dist/common/env.mjs +0 -43
  128. package/dist/common/env.mjs.map +0 -1
  129. package/dist/common/json-config/__tests__/constants.test.d.ts +0 -2
  130. package/dist/common/json-config/__tests__/constants.test.d.ts.map +0 -1
  131. package/dist/common/json-config/__tests__/constants.test.js +0 -273
  132. package/dist/common/json-config/__tests__/constants.test.js.map +0 -1
  133. package/dist/common/json-config/__tests__/stringify-schema.test.d.ts +0 -2
  134. package/dist/common/json-config/__tests__/stringify-schema.test.d.ts.map +0 -1
  135. package/dist/common/json-config/__tests__/stringify-schema.test.js +0 -66
  136. package/dist/common/json-config/__tests__/stringify-schema.test.js.map +0 -1
  137. package/dist/common/json-config/constants.d.ts +0 -138
  138. package/dist/common/json-config/constants.d.ts.map +0 -1
  139. package/dist/common/json-config/constants.js +0 -78
  140. package/dist/common/json-config/constants.js.map +0 -1
  141. package/dist/common/json-config/stringify-schema.d.ts +0 -10
  142. package/dist/common/json-config/stringify-schema.d.ts.map +0 -1
  143. package/dist/common/json-config/stringify-schema.js +0 -131
  144. package/dist/common/json-config/stringify-schema.js.map +0 -1
  145. package/dist/common/project-file-tree.d.ts +0 -12
  146. package/dist/common/project-file-tree.d.ts.map +0 -1
  147. package/dist/common/project-file-tree.js +0 -212
  148. package/dist/common/project-file-tree.js.map +0 -1
  149. package/dist/common/src/actions.d.ts +0 -2673
  150. package/dist/common/src/actions.d.ts.map +0 -1
  151. package/dist/common/src/actions.js +0 -167
  152. package/dist/common/src/actions.js.map +0 -1
  153. package/dist/common/src/analytics.d.ts +0 -6
  154. package/dist/common/src/analytics.d.ts.map +0 -1
  155. package/dist/common/src/analytics.js +0 -60
  156. package/dist/common/src/analytics.js.map +0 -1
  157. package/dist/common/src/api-keys/constants.d.ts +0 -9
  158. package/dist/common/src/api-keys/constants.d.ts.map +0 -1
  159. package/dist/common/src/api-keys/constants.js +0 -26
  160. package/dist/common/src/api-keys/constants.js.map +0 -1
  161. package/dist/common/src/api-keys/crypto.d.ts +0 -25
  162. package/dist/common/src/api-keys/crypto.d.ts.map +0 -1
  163. package/dist/common/src/api-keys/crypto.js +0 -186
  164. package/dist/common/src/api-keys/crypto.js.map +0 -1
  165. package/dist/common/src/browser-actions.d.ts +0 -4416
  166. package/dist/common/src/browser-actions.d.ts.map +0 -1
  167. package/dist/common/src/browser-actions.js +0 -343
  168. package/dist/common/src/browser-actions.js.map +0 -1
  169. package/dist/common/src/constants/analytics-events.d.ts +0 -28
  170. package/dist/common/src/constants/analytics-events.d.ts.map +0 -1
  171. package/dist/common/src/constants/analytics-events.js +0 -36
  172. package/dist/common/src/constants/analytics-events.js.map +0 -1
  173. package/dist/common/src/constants/grant-priorities.d.ts +0 -3
  174. package/dist/common/src/constants/grant-priorities.d.ts.map +0 -1
  175. package/dist/common/src/constants/grant-priorities.js +0 -11
  176. package/dist/common/src/constants/grant-priorities.js.map +0 -1
  177. package/dist/common/src/constants/tools.d.ts +0 -20
  178. package/dist/common/src/constants/tools.d.ts.map +0 -1
  179. package/dist/common/src/constants/tools.js +0 -47
  180. package/dist/common/src/constants/tools.js.map +0 -1
  181. package/dist/common/src/constants.d.ts +0 -152
  182. package/dist/common/src/constants.d.ts.map +0 -1
  183. package/dist/common/src/constants.js +0 -222
  184. package/dist/common/src/constants.js.map +0 -1
  185. package/dist/common/src/db/drizzle.config.d.ts +0 -3
  186. package/dist/common/src/db/drizzle.config.d.ts.map +0 -1
  187. package/dist/common/src/db/drizzle.config.js +0 -17
  188. package/dist/common/src/db/drizzle.config.js.map +0 -1
  189. package/dist/common/src/db/index.d.ts +0 -7
  190. package/dist/common/src/db/index.d.ts.map +0 -1
  191. package/dist/common/src/db/index.js +0 -35
  192. package/dist/common/src/db/index.js.map +0 -1
  193. package/dist/common/src/db/schema.d.ts +0 -2289
  194. package/dist/common/src/db/schema.d.ts.map +0 -1
  195. package/dist/common/src/db/schema.js +0 -296
  196. package/dist/common/src/db/schema.js.map +0 -1
  197. package/dist/common/src/db/transaction.d.ts +0 -13
  198. package/dist/common/src/db/transaction.d.ts.map +0 -1
  199. package/dist/common/src/db/transaction.js +0 -36
  200. package/dist/common/src/db/transaction.js.map +0 -1
  201. package/dist/common/src/json-config/__tests__/constants.test.d.ts +0 -2
  202. package/dist/common/src/json-config/__tests__/constants.test.d.ts.map +0 -1
  203. package/dist/common/src/json-config/__tests__/constants.test.js +0 -273
  204. package/dist/common/src/json-config/__tests__/constants.test.js.map +0 -1
  205. package/dist/common/src/json-config/__tests__/stringify-schema.test.d.ts +0 -2
  206. package/dist/common/src/json-config/__tests__/stringify-schema.test.d.ts.map +0 -1
  207. package/dist/common/src/json-config/__tests__/stringify-schema.test.js +0 -66
  208. package/dist/common/src/json-config/__tests__/stringify-schema.test.js.map +0 -1
  209. package/dist/common/src/json-config/constants.d.ts +0 -138
  210. package/dist/common/src/json-config/constants.d.ts.map +0 -1
  211. package/dist/common/src/json-config/constants.js +0 -78
  212. package/dist/common/src/json-config/constants.js.map +0 -1
  213. package/dist/common/src/json-config/stringify-schema.d.ts +0 -10
  214. package/dist/common/src/json-config/stringify-schema.d.ts.map +0 -1
  215. package/dist/common/src/json-config/stringify-schema.js +0 -131
  216. package/dist/common/src/json-config/stringify-schema.js.map +0 -1
  217. package/dist/common/src/project-file-tree.d.ts +0 -12
  218. package/dist/common/src/project-file-tree.d.ts.map +0 -1
  219. package/dist/common/src/project-file-tree.js +0 -212
  220. package/dist/common/src/project-file-tree.js.map +0 -1
  221. package/dist/common/src/types/agent-state.d.ts +0 -227
  222. package/dist/common/src/types/agent-state.d.ts.map +0 -1
  223. package/dist/common/src/types/agent-state.js +0 -34
  224. package/dist/common/src/types/agent-state.js.map +0 -1
  225. package/dist/common/src/types/grant.d.ts +0 -3
  226. package/dist/common/src/types/grant.d.ts.map +0 -1
  227. package/dist/common/src/types/grant.js +0 -11
  228. package/dist/common/src/types/grant.js.map +0 -1
  229. package/dist/common/src/types/message.d.ts +0 -320
  230. package/dist/common/src/types/message.d.ts.map +0 -1
  231. package/dist/common/src/types/message.js +0 -60
  232. package/dist/common/src/types/message.js.map +0 -1
  233. package/dist/common/src/types/organization.d.ts +0 -106
  234. package/dist/common/src/types/organization.d.ts.map +0 -1
  235. package/dist/common/src/types/organization.js +0 -3
  236. package/dist/common/src/types/organization.js.map +0 -1
  237. package/dist/common/src/types/referral.d.ts +0 -3
  238. package/dist/common/src/types/referral.d.ts.map +0 -1
  239. package/dist/common/src/types/referral.js +0 -5
  240. package/dist/common/src/types/referral.js.map +0 -1
  241. package/dist/common/src/types/tools.d.ts +0 -6
  242. package/dist/common/src/types/tools.d.ts.map +0 -1
  243. package/dist/common/src/types/tools.js +0 -3
  244. package/dist/common/src/types/tools.js.map +0 -1
  245. package/dist/common/src/types/usage.d.ts +0 -41
  246. package/dist/common/src/types/usage.d.ts.map +0 -1
  247. package/dist/common/src/types/usage.js +0 -16
  248. package/dist/common/src/types/usage.js.map +0 -1
  249. package/dist/common/src/util/__tests__/messages.test.d.ts +0 -2
  250. package/dist/common/src/util/__tests__/messages.test.d.ts.map +0 -1
  251. package/dist/common/src/util/__tests__/messages.test.js +0 -70
  252. package/dist/common/src/util/__tests__/messages.test.js.map +0 -1
  253. package/dist/common/src/util/__tests__/saxy.test.d.ts +0 -2
  254. package/dist/common/src/util/__tests__/saxy.test.d.ts.map +0 -1
  255. package/dist/common/src/util/__tests__/saxy.test.js +0 -906
  256. package/dist/common/src/util/__tests__/saxy.test.js.map +0 -1
  257. package/dist/common/src/util/__tests__/string.test.d.ts +0 -2
  258. package/dist/common/src/util/__tests__/string.test.d.ts.map +0 -1
  259. package/dist/common/src/util/__tests__/string.test.js +0 -82
  260. package/dist/common/src/util/__tests__/string.test.js.map +0 -1
  261. package/dist/common/src/util/array.d.ts +0 -7
  262. package/dist/common/src/util/array.d.ts.map +0 -1
  263. package/dist/common/src/util/array.js +0 -32
  264. package/dist/common/src/util/array.js.map +0 -1
  265. package/dist/common/src/util/changes.d.ts +0 -9
  266. package/dist/common/src/util/changes.d.ts.map +0 -1
  267. package/dist/common/src/util/changes.js +0 -87
  268. package/dist/common/src/util/changes.js.map +0 -1
  269. package/dist/common/src/util/credentials.d.ts +0 -26
  270. package/dist/common/src/util/credentials.d.ts.map +0 -1
  271. package/dist/common/src/util/credentials.js +0 -24
  272. package/dist/common/src/util/credentials.js.map +0 -1
  273. package/dist/common/src/util/currency.d.ts +0 -15
  274. package/dist/common/src/util/currency.d.ts.map +0 -1
  275. package/dist/common/src/util/currency.js +0 -23
  276. package/dist/common/src/util/currency.js.map +0 -1
  277. package/dist/common/src/util/dates.d.ts +0 -11
  278. package/dist/common/src/util/dates.d.ts.map +0 -1
  279. package/dist/common/src/util/dates.js +0 -22
  280. package/dist/common/src/util/dates.js.map +0 -1
  281. package/dist/common/src/util/file.d.ts +0 -163
  282. package/dist/common/src/util/file.d.ts.map +0 -1
  283. package/dist/common/src/util/file.js +0 -192
  284. package/dist/common/src/util/file.js.map +0 -1
  285. package/dist/common/src/util/git.d.ts +0 -7
  286. package/dist/common/src/util/git.d.ts.map +0 -1
  287. package/dist/common/src/util/git.js +0 -81
  288. package/dist/common/src/util/git.js.map +0 -1
  289. package/dist/common/src/util/logger.d.ts +0 -9
  290. package/dist/common/src/util/logger.d.ts.map +0 -1
  291. package/dist/common/src/util/logger.js +0 -52
  292. package/dist/common/src/util/logger.js.map +0 -1
  293. package/dist/common/src/util/lru-cache.d.ts +0 -31
  294. package/dist/common/src/util/lru-cache.d.ts.map +0 -1
  295. package/dist/common/src/util/lru-cache.js +0 -68
  296. package/dist/common/src/util/lru-cache.js.map +0 -1
  297. package/dist/common/src/util/messages.d.ts +0 -12
  298. package/dist/common/src/util/messages.d.ts.map +0 -1
  299. package/dist/common/src/util/messages.js +0 -81
  300. package/dist/common/src/util/messages.js.map +0 -1
  301. package/dist/common/src/util/min-heap.d.ts +0 -16
  302. package/dist/common/src/util/min-heap.d.ts.map +0 -1
  303. package/dist/common/src/util/min-heap.js +0 -73
  304. package/dist/common/src/util/min-heap.js.map +0 -1
  305. package/dist/common/src/util/object.d.ts +0 -19
  306. package/dist/common/src/util/object.d.ts.map +0 -1
  307. package/dist/common/src/util/object.js +0 -91
  308. package/dist/common/src/util/object.js.map +0 -1
  309. package/dist/common/src/util/patch.d.ts +0 -2
  310. package/dist/common/src/util/patch.d.ts.map +0 -1
  311. package/dist/common/src/util/patch.js +0 -215
  312. package/dist/common/src/util/patch.js.map +0 -1
  313. package/dist/common/src/util/promise.d.ts +0 -17
  314. package/dist/common/src/util/promise.d.ts.map +0 -1
  315. package/dist/common/src/util/promise.js +0 -51
  316. package/dist/common/src/util/promise.js.map +0 -1
  317. package/dist/common/src/util/random.d.ts +0 -2
  318. package/dist/common/src/util/random.d.ts.map +0 -1
  319. package/dist/common/src/util/random.js +0 -17
  320. package/dist/common/src/util/random.js.map +0 -1
  321. package/dist/common/src/util/referral.d.ts +0 -2
  322. package/dist/common/src/util/referral.d.ts.map +0 -1
  323. package/dist/common/src/util/referral.js +0 -6
  324. package/dist/common/src/util/referral.js.map +0 -1
  325. package/dist/common/src/util/saxy.d.ts +0 -179
  326. package/dist/common/src/util/saxy.d.ts.map +0 -1
  327. package/dist/common/src/util/saxy.js +0 -548
  328. package/dist/common/src/util/saxy.js.map +0 -1
  329. package/dist/common/src/util/string.d.ts +0 -80
  330. package/dist/common/src/util/string.d.ts.map +0 -1
  331. package/dist/common/src/util/string.js +0 -264
  332. package/dist/common/src/util/string.js.map +0 -1
  333. package/dist/common/src/util/stripe.d.ts +0 -4
  334. package/dist/common/src/util/stripe.d.ts.map +0 -1
  335. package/dist/common/src/util/stripe.js +0 -22
  336. package/dist/common/src/util/stripe.js.map +0 -1
  337. package/dist/common/src/util/sync-failure.d.ts +0 -2
  338. package/dist/common/src/util/sync-failure.d.ts.map +0 -1
  339. package/dist/common/src/util/sync-failure.js +0 -57
  340. package/dist/common/src/util/sync-failure.js.map +0 -1
  341. package/dist/common/src/websockets/websocket-client.d.ts +0 -43
  342. package/dist/common/src/websockets/websocket-client.d.ts.map +0 -1
  343. package/dist/common/src/websockets/websocket-client.js +0 -216
  344. package/dist/common/src/websockets/websocket-client.js.map +0 -1
  345. package/dist/common/src/websockets/websocket-schema.d.ts +0 -5159
  346. package/dist/common/src/websockets/websocket-schema.d.ts.map +0 -1
  347. package/dist/common/src/websockets/websocket-schema.js +0 -55
  348. package/dist/common/src/websockets/websocket-schema.js.map +0 -1
  349. package/dist/common/tsconfig.tsbuildinfo +0 -1
  350. package/dist/common/types/agent-state.d.ts +0 -227
  351. package/dist/common/types/agent-state.d.ts.map +0 -1
  352. package/dist/common/types/agent-state.js +0 -34
  353. package/dist/common/types/agent-state.js.map +0 -1
  354. package/dist/common/types/grant.d.ts +0 -3
  355. package/dist/common/types/grant.d.ts.map +0 -1
  356. package/dist/common/types/grant.js +0 -11
  357. package/dist/common/types/grant.js.map +0 -1
  358. package/dist/common/types/message.d.ts +0 -320
  359. package/dist/common/types/message.d.ts.map +0 -1
  360. package/dist/common/types/message.js +0 -60
  361. package/dist/common/types/message.js.map +0 -1
  362. package/dist/common/types/organization.d.ts +0 -106
  363. package/dist/common/types/organization.d.ts.map +0 -1
  364. package/dist/common/types/organization.js +0 -3
  365. package/dist/common/types/organization.js.map +0 -1
  366. package/dist/common/types/referral.d.ts +0 -3
  367. package/dist/common/types/referral.d.ts.map +0 -1
  368. package/dist/common/types/referral.js +0 -5
  369. package/dist/common/types/referral.js.map +0 -1
  370. package/dist/common/types/tools.d.ts +0 -6
  371. package/dist/common/types/tools.d.ts.map +0 -1
  372. package/dist/common/types/tools.js +0 -3
  373. package/dist/common/types/tools.js.map +0 -1
  374. package/dist/common/types/usage.d.ts +0 -41
  375. package/dist/common/types/usage.d.ts.map +0 -1
  376. package/dist/common/types/usage.js +0 -16
  377. package/dist/common/types/usage.js.map +0 -1
  378. package/dist/common/util/__tests__/messages.test.d.ts +0 -2
  379. package/dist/common/util/__tests__/messages.test.d.ts.map +0 -1
  380. package/dist/common/util/__tests__/messages.test.js +0 -70
  381. package/dist/common/util/__tests__/messages.test.js.map +0 -1
  382. package/dist/common/util/__tests__/saxy.test.d.ts +0 -2
  383. package/dist/common/util/__tests__/saxy.test.d.ts.map +0 -1
  384. package/dist/common/util/__tests__/saxy.test.js +0 -906
  385. package/dist/common/util/__tests__/saxy.test.js.map +0 -1
  386. package/dist/common/util/__tests__/string.test.d.ts +0 -2
  387. package/dist/common/util/__tests__/string.test.d.ts.map +0 -1
  388. package/dist/common/util/__tests__/string.test.js +0 -82
  389. package/dist/common/util/__tests__/string.test.js.map +0 -1
  390. package/dist/common/util/array.d.ts +0 -7
  391. package/dist/common/util/array.d.ts.map +0 -1
  392. package/dist/common/util/array.js +0 -32
  393. package/dist/common/util/array.js.map +0 -1
  394. package/dist/common/util/changes.d.ts +0 -9
  395. package/dist/common/util/changes.d.ts.map +0 -1
  396. package/dist/common/util/changes.js +0 -87
  397. package/dist/common/util/changes.js.map +0 -1
  398. package/dist/common/util/credentials.d.ts +0 -26
  399. package/dist/common/util/credentials.d.ts.map +0 -1
  400. package/dist/common/util/credentials.js +0 -24
  401. package/dist/common/util/credentials.js.map +0 -1
  402. package/dist/common/util/currency.d.ts +0 -15
  403. package/dist/common/util/currency.d.ts.map +0 -1
  404. package/dist/common/util/currency.js +0 -23
  405. package/dist/common/util/currency.js.map +0 -1
  406. package/dist/common/util/dates.d.ts +0 -11
  407. package/dist/common/util/dates.d.ts.map +0 -1
  408. package/dist/common/util/dates.js +0 -22
  409. package/dist/common/util/dates.js.map +0 -1
  410. package/dist/common/util/file.d.ts +0 -168
  411. package/dist/common/util/file.d.ts.map +0 -1
  412. package/dist/common/util/file.js +0 -215
  413. package/dist/common/util/file.js.map +0 -1
  414. package/dist/common/util/git.d.ts +0 -7
  415. package/dist/common/util/git.d.ts.map +0 -1
  416. package/dist/common/util/git.js +0 -81
  417. package/dist/common/util/git.js.map +0 -1
  418. package/dist/common/util/logger.d.ts +0 -9
  419. package/dist/common/util/logger.d.ts.map +0 -1
  420. package/dist/common/util/logger.js +0 -52
  421. package/dist/common/util/logger.js.map +0 -1
  422. package/dist/common/util/lru-cache.d.ts +0 -31
  423. package/dist/common/util/lru-cache.d.ts.map +0 -1
  424. package/dist/common/util/lru-cache.js +0 -68
  425. package/dist/common/util/lru-cache.js.map +0 -1
  426. package/dist/common/util/messages.d.ts +0 -12
  427. package/dist/common/util/messages.d.ts.map +0 -1
  428. package/dist/common/util/messages.js +0 -81
  429. package/dist/common/util/messages.js.map +0 -1
  430. package/dist/common/util/min-heap.d.ts +0 -16
  431. package/dist/common/util/min-heap.d.ts.map +0 -1
  432. package/dist/common/util/min-heap.js +0 -73
  433. package/dist/common/util/min-heap.js.map +0 -1
  434. package/dist/common/util/object.d.ts +0 -19
  435. package/dist/common/util/object.d.ts.map +0 -1
  436. package/dist/common/util/object.js +0 -91
  437. package/dist/common/util/object.js.map +0 -1
  438. package/dist/common/util/patch.d.ts +0 -2
  439. package/dist/common/util/patch.d.ts.map +0 -1
  440. package/dist/common/util/patch.js +0 -215
  441. package/dist/common/util/patch.js.map +0 -1
  442. package/dist/common/util/promise.d.ts +0 -17
  443. package/dist/common/util/promise.d.ts.map +0 -1
  444. package/dist/common/util/promise.js +0 -51
  445. package/dist/common/util/promise.js.map +0 -1
  446. package/dist/common/util/random.d.ts +0 -2
  447. package/dist/common/util/random.d.ts.map +0 -1
  448. package/dist/common/util/random.js +0 -17
  449. package/dist/common/util/random.js.map +0 -1
  450. package/dist/common/util/referral.d.ts +0 -2
  451. package/dist/common/util/referral.d.ts.map +0 -1
  452. package/dist/common/util/referral.js +0 -6
  453. package/dist/common/util/referral.js.map +0 -1
  454. package/dist/common/util/saxy.d.ts +0 -179
  455. package/dist/common/util/saxy.d.ts.map +0 -1
  456. package/dist/common/util/saxy.js +0 -548
  457. package/dist/common/util/saxy.js.map +0 -1
  458. package/dist/common/util/string.d.ts +0 -80
  459. package/dist/common/util/string.d.ts.map +0 -1
  460. package/dist/common/util/string.js +0 -264
  461. package/dist/common/util/string.js.map +0 -1
  462. package/dist/common/util/stripe.d.ts +0 -4
  463. package/dist/common/util/stripe.d.ts.map +0 -1
  464. package/dist/common/util/stripe.js +0 -22
  465. package/dist/common/util/stripe.js.map +0 -1
  466. package/dist/common/util/sync-failure.d.ts +0 -2
  467. package/dist/common/util/sync-failure.d.ts.map +0 -1
  468. package/dist/common/util/sync-failure.js +0 -57
  469. package/dist/common/util/sync-failure.js.map +0 -1
  470. package/dist/common/websockets/websocket-client.d.ts +0 -43
  471. package/dist/common/websockets/websocket-client.d.ts.map +0 -1
  472. package/dist/common/websockets/websocket-client.js +0 -216
  473. package/dist/common/websockets/websocket-client.js.map +0 -1
  474. package/dist/common/websockets/websocket-schema.d.ts +0 -5159
  475. package/dist/common/websockets/websocket-schema.d.ts.map +0 -1
  476. package/dist/common/websockets/websocket-schema.js +0 -55
  477. package/dist/common/websockets/websocket-schema.js.map +0 -1
  478. package/dist/config.d.ts +0 -4
  479. package/dist/config.js +0 -12
  480. package/dist/config.js.map +0 -1
  481. package/dist/create-template-project.d.ts +0 -1
  482. package/dist/create-template-project.js +0 -131
  483. package/dist/create-template-project.js.map +0 -1
  484. package/dist/credentials.d.ts +0 -4
  485. package/dist/credentials.js +0 -44
  486. package/dist/credentials.js.map +0 -1
  487. package/dist/dev-process-manager.d.ts +0 -10
  488. package/dist/dev-process-manager.js +0 -56
  489. package/dist/dev-process-manager.js.map +0 -1
  490. package/dist/display.d.ts +0 -9
  491. package/dist/display.js +0 -137
  492. package/dist/display.js.map +0 -1
  493. package/dist/fingerprint.d.ts +0 -1
  494. package/dist/fingerprint.js +0 -48
  495. package/dist/fingerprint.js.map +0 -1
  496. package/dist/index.d.ts +0 -2
  497. package/dist/index.js +0 -130
  498. package/dist/index.js.map +0 -1
  499. package/dist/json-config/hooks.d.ts +0 -9
  500. package/dist/json-config/hooks.js +0 -60
  501. package/dist/json-config/hooks.js.map +0 -1
  502. package/dist/json-config/parser.d.ts +0 -7
  503. package/dist/json-config/parser.js +0 -53
  504. package/dist/json-config/parser.js.map +0 -1
  505. package/dist/menu.d.ts +0 -14
  506. package/dist/menu.js +0 -344
  507. package/dist/menu.js.map +0 -1
  508. package/dist/project-files.d.ts +0 -103
  509. package/dist/project-files.js +0 -620
  510. package/dist/project-files.js.map +0 -1
  511. package/dist/startup-process-handler.d.ts +0 -1
  512. package/dist/startup-process-handler.js +0 -25
  513. package/dist/startup-process-handler.js.map +0 -1
  514. package/dist/terminal/background.d.ts +0 -12
  515. package/dist/terminal/background.js +0 -148
  516. package/dist/terminal/background.js.map +0 -1
  517. package/dist/terminal/base.d.ts +0 -48
  518. package/dist/terminal/base.js +0 -685
  519. package/dist/terminal/base.js.map +0 -1
  520. package/dist/tool-handlers.d.ts +0 -35
  521. package/dist/tool-handlers.js +0 -303
  522. package/dist/tool-handlers.js.map +0 -1
  523. package/dist/types.d.ts +0 -16
  524. package/dist/types.js +0 -3
  525. package/dist/types.js.map +0 -1
  526. package/dist/update-codebuff.d.ts +0 -1
  527. package/dist/update-codebuff.js +0 -169
  528. package/dist/update-codebuff.js.map +0 -1
  529. package/dist/utils/__tests__/background-process-manager.test.d.ts +0 -1
  530. package/dist/utils/__tests__/background-process-manager.test.js +0 -327
  531. package/dist/utils/__tests__/background-process-manager.test.js.map +0 -1
  532. package/dist/utils/__tests__/response-example-4-files.txt +0 -621
  533. package/dist/utils/__tests__/tool-renderers.test.d.ts +0 -1
  534. package/dist/utils/__tests__/tool-renderers.test.js +0 -83
  535. package/dist/utils/__tests__/tool-renderers.test.js.map +0 -1
  536. package/dist/utils/__tests__/xml-stream-parser.test.d.ts +0 -1
  537. package/dist/utils/__tests__/xml-stream-parser.test.js +0 -255
  538. package/dist/utils/__tests__/xml-stream-parser.test.js.map +0 -1
  539. package/dist/utils/analytics.d.ts +0 -7
  540. package/dist/utils/analytics.js +0 -100
  541. package/dist/utils/analytics.js.map +0 -1
  542. package/dist/utils/detect-shell.d.ts +0 -1
  543. package/dist/utils/detect-shell.js +0 -65
  544. package/dist/utils/detect-shell.js.map +0 -1
  545. package/dist/utils/git.d.ts +0 -13
  546. package/dist/utils/git.js +0 -143
  547. package/dist/utils/git.js.map +0 -1
  548. package/dist/utils/logger.d.ts +0 -21
  549. package/dist/utils/logger.js +0 -109
  550. package/dist/utils/logger.js.map +0 -1
  551. package/dist/utils/spinner.d.ts +0 -12
  552. package/dist/utils/spinner.js +0 -85
  553. package/dist/utils/spinner.js.map +0 -1
  554. package/dist/utils/system-info.d.ts +0 -8
  555. package/dist/utils/system-info.js +0 -22
  556. package/dist/utils/system-info.js.map +0 -1
  557. package/dist/utils/tool-renderers.d.ts +0 -16
  558. package/dist/utils/tool-renderers.js +0 -222
  559. package/dist/utils/tool-renderers.js.map +0 -1
  560. package/dist/utils/xml-stream-parser.d.ts +0 -9
  561. package/dist/utils/xml-stream-parser.js +0 -143
  562. package/dist/utils/xml-stream-parser.js.map +0 -1
  563. package/dist/web-scraper.d.ts +0 -3
  564. package/dist/web-scraper.js +0 -59
  565. package/dist/web-scraper.js.map +0 -1
  566. package/dist/workers/checkpoint-worker.d.ts +0 -1
  567. package/dist/workers/checkpoint-worker.js +0 -51
  568. package/dist/workers/checkpoint-worker.js.map +0 -1
  569. package/dist/workers/project-context.d.ts +0 -1
  570. package/dist/workers/project-context.js +0 -27
  571. package/dist/workers/project-context.js.map +0 -1
@@ -1,685 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.readNewTerminalOutput = exports.runCommandPtyManager = exports.runCommandPty = exports.runTerminalCommand = exports.resetShell = exports.recreateShell = exports.isCommandRunning = exports.persistentProcess = void 0;
30
- exports.killAndResetPersistentProcess = killAndResetPersistentProcess;
31
- exports.clearScreen = clearScreen;
32
- const child_process_1 = require("child_process");
33
- const os = __importStar(require("os"));
34
- const path_1 = __importDefault(require("path"));
35
- const analytics_events_1 = require("../common/constants/analytics-events");
36
- const array_1 = require("../common/util/array");
37
- const string_1 = require("../common/util/string");
38
- const picocolors_1 = require("picocolors");
39
- const file_1 = require("../common/util/file");
40
- const project_files_1 = require("../project-files");
41
- const analytics_1 = require("../utils/analytics");
42
- const detect_shell_1 = require("../utils/detect-shell");
43
- const logger_1 = require("../utils/logger");
44
- const background_1 = require("./background");
45
- let pty;
46
- const tempConsoleError = console.error;
47
- console.error = () => { };
48
- try {
49
- pty = require('@homebridge/node-pty-prebuilt-multiarch');
50
- }
51
- catch (error) {
52
- }
53
- finally {
54
- console.error = tempConsoleError;
55
- }
56
- const COMMAND_OUTPUT_LIMIT = 10_000;
57
- const promptIdentifier = '@36261@';
58
- const needleIdentifier = '@76593@';
59
- const setUpPromptIdentifierCommand = `PS1="@362""61@" && PS2="@362""61@"`;
60
- const createPersistantProcess = (dir, forceChildProcess = false) => {
61
- if (pty && process.env.NODE_ENV !== 'test' && !forceChildProcess) {
62
- const isWindows = os.platform() === 'win32';
63
- const currShell = (0, detect_shell_1.detectShell)();
64
- const shell = isWindows
65
- ? currShell === 'powershell'
66
- ? 'powershell.exe'
67
- : 'cmd.exe'
68
- : 'bash';
69
- const shellWithoutExe = shell.split('.')[0];
70
- // Prepare shell init commands
71
- let shellInitCommands = [];
72
- if (!isWindows) {
73
- shellInitCommands.push('true');
74
- // Source all relevant config files based on shell type
75
- if (currShell === 'zsh') {
76
- shellInitCommands.push('source ~/.zshenv 2>/dev/null || true', 'source ~/.zprofile 2>/dev/null || true', 'source ~/.zshrc 2>/dev/null || true', 'source ~/.zlogin 2>/dev/null || true');
77
- }
78
- else if (currShell === 'fish') {
79
- shellInitCommands.push('source ~/.config/fish/config.fish 2>/dev/null || true');
80
- }
81
- else {
82
- // Bash - source both profile and rc files
83
- shellInitCommands.push('source ~/.bash_profile 2>/dev/null || true', 'source ~/.profile 2>/dev/null || true', 'source ~/.bashrc 2>/dev/null || true');
84
- }
85
- shellInitCommands = shellInitCommands.map((c) => `(${c}) && ${setUpPromptIdentifierCommand}`);
86
- }
87
- else if (currShell === 'powershell') {
88
- // Try to source all possible PowerShell profile locations
89
- shellInitCommands.push('$profiles = @($PROFILE.AllUsersAllHosts,$PROFILE.AllUsersCurrentHost,$PROFILE.CurrentUserAllHosts,$PROFILE.CurrentUserCurrentHost)', 'foreach ($prof in $profiles) { if (Test-Path $prof) { . $prof } }');
90
- }
91
- const persistentPty = pty.spawn(shell, isWindows ? [] : ['--login'], {
92
- name: 'xterm-256color',
93
- cols: process.stdout.columns || 80,
94
- rows: process.stdout.rows || 24,
95
- cwd: dir,
96
- env: {
97
- ...process.env,
98
- PAGER: 'cat',
99
- GIT_PAGER: 'cat',
100
- GIT_TERMINAL_PROMPT: '0',
101
- ...(isWindows
102
- ? {
103
- TERM: 'cygwin',
104
- ANSICON: '1',
105
- PROMPT: promptIdentifier,
106
- }
107
- : {
108
- TERM: 'xterm-256color',
109
- // Preserve important environment variables
110
- PATH: process.env.PATH,
111
- HOME: process.env.HOME,
112
- USER: process.env.USER,
113
- SHELL: shellWithoutExe,
114
- }),
115
- LESS: '-FRX',
116
- TERM_PROGRAM: 'mintty',
117
- FORCE_COLOR: '1',
118
- // Locale settings for consistent output
119
- LANG: 'en_US.UTF-8',
120
- LC_ALL: 'en_US.UTF-8',
121
- },
122
- });
123
- persistentPty.onData((data) => {
124
- console.error('received data asdf', { data });
125
- });
126
- const setupPromise = new Promise(async (resolve) => {
127
- for (const command of shellInitCommands) {
128
- await runSinglePtyCommand(persistentPty, command, () => { });
129
- }
130
- resolve();
131
- });
132
- const persistentProcessInfo = {
133
- type: 'pty',
134
- shell,
135
- pty: persistentPty,
136
- timerId: null,
137
- globalOutputBuffer: '',
138
- globalOutputLastReadLength: 0,
139
- setupPromise,
140
- };
141
- // Add a persistent listener to capture all output for manager mode
142
- persistentPty.onData((data) => {
143
- if (persistentProcessInfo.type === 'pty') {
144
- persistentProcessInfo.globalOutputBuffer += data.toString(); // Should we use stripColors(...)?
145
- }
146
- });
147
- return persistentProcessInfo;
148
- }
149
- else {
150
- // Fallback to child_process
151
- const isWindows = os.platform() === 'win32';
152
- const currShell = (0, detect_shell_1.detectShell)();
153
- const shell = isWindows
154
- ? currShell === 'powershell'
155
- ? 'powershell.exe'
156
- : 'cmd.exe'
157
- : 'bash';
158
- const childProcess = null;
159
- return {
160
- type: 'process',
161
- shell,
162
- childProcess,
163
- timerId: null,
164
- globalOutputBuffer: '',
165
- globalOutputLastReadLength: 0,
166
- };
167
- }
168
- };
169
- exports.persistentProcess = null;
170
- process.stdout.on('resize', () => {
171
- if (!exports.persistentProcess)
172
- return;
173
- if (exports.persistentProcess.type === 'pty') {
174
- exports.persistentProcess.pty.resize(process.stdout.columns, process.stdout.rows);
175
- }
176
- });
177
- let commandIsRunning = false;
178
- const isCommandRunning = () => {
179
- return commandIsRunning;
180
- };
181
- exports.isCommandRunning = isCommandRunning;
182
- const recreateShell = (cwd, forceChildProcess = false) => {
183
- exports.persistentProcess = createPersistantProcess(cwd, forceChildProcess);
184
- };
185
- exports.recreateShell = recreateShell;
186
- const resetShell = (cwd) => {
187
- commandIsRunning = false;
188
- if (exports.persistentProcess) {
189
- if (exports.persistentProcess.timerId) {
190
- clearTimeout(exports.persistentProcess.timerId);
191
- exports.persistentProcess.timerId = null;
192
- }
193
- if (exports.persistentProcess.type === 'pty') {
194
- exports.persistentProcess.pty.kill();
195
- (0, exports.recreateShell)(cwd);
196
- }
197
- else {
198
- exports.persistentProcess.childProcess?.kill();
199
- exports.persistentProcess = {
200
- ...exports.persistentProcess,
201
- childProcess: null,
202
- };
203
- }
204
- }
205
- };
206
- exports.resetShell = resetShell;
207
- function formatResult(command, stdout, status) {
208
- return (0, array_1.buildArray)(`<command>${command}</command>`, '<terminal_command_result>', stdout &&
209
- `<output>${(0, string_1.truncateStringWithMessage)({ str: (0, string_1.stripColors)(stdout), maxLength: COMMAND_OUTPUT_LIMIT, remove: 'MIDDLE' })}</output>`, `<status>${status}</status>`, '</terminal_command_result>').join('\n');
210
- }
211
- const runTerminalCommand = async (toolCallId, command, mode, processType, timeoutSeconds, cwd, stdoutFile, stderrFile) => {
212
- const maybeTimeoutSeconds = timeoutSeconds < 0 ? null : timeoutSeconds;
213
- cwd = cwd || (mode === 'assistant' ? (0, project_files_1.getProjectRoot)() : (0, project_files_1.getWorkingDirectory)());
214
- return new Promise((resolve) => {
215
- if (!exports.persistentProcess) {
216
- throw new Error('Shell not initialized');
217
- }
218
- if (commandIsRunning) {
219
- (0, exports.resetShell)(cwd);
220
- }
221
- commandIsRunning = true;
222
- // Add special case for git log to limit output
223
- const modifiedCommand = command.trim() === 'git log' ? 'git log -n 5' : command;
224
- const resolveCommand = (value) => {
225
- commandIsRunning = false;
226
- (0, analytics_1.trackEvent)(analytics_events_1.AnalyticsEvent.TERMINAL_COMMAND_COMPLETED, {
227
- command,
228
- result: value.result,
229
- stdout: value.stdout,
230
- exitCode: value.exitCode,
231
- mode,
232
- processType,
233
- });
234
- resolve(value);
235
- };
236
- if (processType === 'BACKGROUND') {
237
- (0, background_1.runBackgroundCommand)({
238
- toolCallId,
239
- command: modifiedCommand,
240
- mode,
241
- cwd,
242
- stdoutFile,
243
- stderrFile,
244
- }, resolveCommand);
245
- }
246
- else if (exports.persistentProcess.type === 'pty') {
247
- if (mode === 'manager') {
248
- (0, exports.runCommandPtyManager)(exports.persistentProcess, modifiedCommand, cwd, maybeTimeoutSeconds, resolveCommand);
249
- }
250
- else {
251
- (0, exports.runCommandPty)(exports.persistentProcess, modifiedCommand, mode, cwd, maybeTimeoutSeconds, resolveCommand);
252
- }
253
- }
254
- else {
255
- // Fallback to child_process implementation
256
- runCommandChildProcess(exports.persistentProcess, modifiedCommand, mode, cwd, maybeTimeoutSeconds, resolveCommand);
257
- }
258
- });
259
- };
260
- exports.runTerminalCommand = runTerminalCommand;
261
- const echoLinePattern = new RegExp(`${promptIdentifier}[^\n]*\n`, 'g');
262
- const getNeedlePatternCache = {};
263
- function getNeedlePattern(middlePattern = '.*') {
264
- if (!(middlePattern in getNeedlePatternCache)) {
265
- getNeedlePatternCache[middlePattern] = new RegExp(`${needleIdentifier}(${middlePattern})${needleIdentifier}`);
266
- }
267
- return getNeedlePatternCache[middlePattern];
268
- }
269
- /**
270
- * Executes a single command in a PTY process and returns the result when complete.
271
- *
272
- * This function handles the low-level details of running a command in a pseudo-terminal,
273
- * including parsing the output to separate command echoes from actual output, detecting
274
- * command completion
275
- *
276
- * @param ptyProcess - The IPty instance to execute the command in
277
- * @param command - The shell command to execute
278
- * @param onChunk - Callback function called for each chunk of output as it's received
279
- *
280
- * @returns Promise that resolves with:
281
- * - The complete output from the command (excluding echo lines)
282
- *
283
- * @example
284
- * ```typescript
285
- * const result = await runSinglePtyCommand(
286
- * ptyProcess,
287
- * 'ls -la',
288
- * process.stdout.write
289
- * );
290
- * ```
291
- *
292
- * @internal This is a low-level utility function used by other terminal command runners.
293
- * It handles platform-specific differences between Windows and Unix-like systems.
294
- *
295
- * The function works by:
296
- * 1. Setting up a data listener on the PTY process
297
- * 2. Filtering out command echo lines (the command being typed)
298
- * 3. Detecting command completion markers (promptIdentifier)
299
- */
300
- function runSinglePtyCommand(ptyProcess, command, onChunk) {
301
- const isWindows = os.platform() === 'win32';
302
- let fullOutput = promptIdentifier;
303
- let filteredOutput = '';
304
- let buffer = promptIdentifier;
305
- let echoLinesRemaining = isWindows ? 1 : command.split('\n').length;
306
- const resultPromise = new Promise((resolve) => {
307
- const dataDisposable = ptyProcess.onData((data) => {
308
- console.error('received data asdf', { command, data });
309
- fullOutput += data;
310
- buffer += data;
311
- // Wait for pending promptIdentifier
312
- const suffix = (0, string_1.suffixPrefixOverlap)(buffer, promptIdentifier);
313
- let toProcess = buffer.slice(0, buffer.length - suffix.length);
314
- buffer = suffix;
315
- console.error('including echo lines asdf', { command, toProcess });
316
- // Remove echo lines from the output
317
- const matches = toProcess.match(echoLinePattern);
318
- if (matches) {
319
- console.error({ command, matches, echoLinesRemaining }, 'asdf');
320
- for (let i = 0; i < matches.length && echoLinesRemaining > 0; i++) {
321
- echoLinesRemaining = Math.max(echoLinesRemaining - 1, 0);
322
- toProcess = toProcess.replace(echoLinePattern, '');
323
- console.error('removing lines asdf', {
324
- command,
325
- echoLinesRemaining,
326
- toProcess,
327
- });
328
- }
329
- }
330
- // Do not process anything after a promptIdentifier (pending line)
331
- const promptIdentifierIndex = toProcess.indexOf(promptIdentifier);
332
- console.error({ command, promptIdentifierIndex }, 'asdf');
333
- if (promptIdentifierIndex !== -1) {
334
- buffer = toProcess.slice(promptIdentifierIndex) + buffer;
335
- toProcess = toProcess.slice(0, promptIdentifierIndex);
336
- }
337
- console.error('add toProcess to filteredOutput asdf', {
338
- command,
339
- buffer,
340
- toProcess,
341
- });
342
- onChunk(toProcess);
343
- filteredOutput += toProcess;
344
- const commandDone = buffer.startsWith(promptIdentifier);
345
- console.error({ commandDone, echoLinesRemaining }, 'asdf');
346
- if (commandDone && echoLinesRemaining === 0) {
347
- // Command is done
348
- dataDisposable.dispose();
349
- resolve({ filteredOutput, fullOutput });
350
- }
351
- });
352
- });
353
- // Write the command
354
- ptyProcess.write(`${command}\r`);
355
- return resultPromise;
356
- }
357
- const runCommandPty = (persistentProcess, command, mode, cwd, maybeTimeoutSeconds, resolve) => {
358
- const ptyProcess = persistentProcess.pty;
359
- if (command.trim() === 'clear') {
360
- // `clear` needs access to the main process stdout. This is a workaround.
361
- (0, child_process_1.execSync)('clear', { stdio: 'inherit' });
362
- resolve({
363
- result: formatResult(command, '', `Complete`),
364
- stdout: '',
365
- exitCode: 0,
366
- });
367
- return;
368
- }
369
- const projectRoot = (0, project_files_1.getProjectRoot)();
370
- const isWindows = os.platform() === 'win32';
371
- if (mode === 'assistant') {
372
- const displayDirectory = path_1.default.join(path_1.default.parse(projectRoot).base, path_1.default.relative(projectRoot, path_1.default.resolve(projectRoot, cwd)));
373
- console.log((0, picocolors_1.green)(`${displayDirectory} > ${command}`));
374
- }
375
- let commandOutput = '';
376
- let timer = null;
377
- if (maybeTimeoutSeconds !== null) {
378
- timer = setTimeout(() => {
379
- if (mode === 'assistant') {
380
- // Kill and recreate PTY
381
- (0, exports.resetShell)(cwd);
382
- resolve({
383
- result: formatResult(command, commandOutput, `Command timed out after ${maybeTimeoutSeconds} seconds and was terminated. Shell has been restarted.`),
384
- stdout: commandOutput,
385
- exitCode: 124,
386
- });
387
- }
388
- }, maybeTimeoutSeconds * 1000);
389
- }
390
- persistentProcess.timerId = timer;
391
- new Promise(async () => {
392
- await persistentProcess.setupPromise;
393
- let fullCombinedOutput = '';
394
- const cdCommand = `cd ${cwd}`;
395
- const { fullOutput: cdOutput } = await runSinglePtyCommand(ptyProcess, cdCommand, () => { });
396
- fullCombinedOutput += `${JSON.stringify(cdCommand).slice(1, -1)}\n${cdOutput}\n\n`;
397
- const { fullOutput: fullCommandOutput } = await runSinglePtyCommand(ptyProcess, command, (data) => {
398
- commandOutput += data;
399
- process.stdout.write(data);
400
- });
401
- fullCombinedOutput += `${JSON.stringify(command).slice(1, -1)}\n${fullCommandOutput}\n\n`;
402
- const fullExitCodeCommand = persistentProcess.shell === 'cmd.exe'
403
- ? `echo ${needleIdentifier}%ERRORLEVEL%${needleIdentifier}`
404
- : `echo ${needleIdentifier}$?${needleIdentifier}`;
405
- const { filteredOutput: exitCodeHaystack, fullOutput: fullExitCodeOutput } = await runSinglePtyCommand(ptyProcess, fullExitCodeCommand, () => { });
406
- fullCombinedOutput += `${JSON.stringify(fullExitCodeCommand).slice(1, -1)}\n${fullExitCodeOutput}\n\n`;
407
- let exitCode = null;
408
- const exitCodeMatch = exitCodeHaystack.match(getNeedlePattern('\\d+'));
409
- if (exitCodeMatch) {
410
- exitCode = parseInt(exitCodeMatch[1].trim());
411
- }
412
- else {
413
- logger_1.logger.error({ exitCodeHaystack, fullExitCodeOutput }, 'Could not find exitCode in output');
414
- }
415
- const cwdCommand = isWindows
416
- ? `echo ${needleIdentifier}%cd%${needleIdentifier}`
417
- : `echo ${needleIdentifier}$(pwd)${needleIdentifier}`;
418
- const { filteredOutput: cwdHaystack, fullOutput: fullCwdOutput } = await runSinglePtyCommand(ptyProcess, cwdCommand, () => { });
419
- fullCombinedOutput += `${JSON.stringify(cwdCommand).slice(1, -1)}\n${fullCwdOutput}\n\n`;
420
- const cwdMatch = cwdHaystack.match(getNeedlePattern());
421
- let newWorkingDirectory;
422
- if (cwdMatch) {
423
- newWorkingDirectory = cwdMatch[1].trim();
424
- }
425
- else {
426
- logger_1.logger.error({ cwdHaystack, fullExitCodeOutput }, 'Could not find cwd in output');
427
- newWorkingDirectory = cwd;
428
- }
429
- if (!exitCodeMatch || !cwdMatch) {
430
- logger_1.logger.error({ fullCombinedOutput }, 'Could not find either exitCode or cwd in output');
431
- }
432
- const statusMessage = exitCode === null
433
- ? ''
434
- : exitCode === 0
435
- ? 'Complete'
436
- : `Failed with exit code: ${exitCode}`;
437
- if (timer) {
438
- clearTimeout(timer);
439
- }
440
- if (mode === 'assistant') {
441
- await runSinglePtyCommand(ptyProcess, `cd ${(0, project_files_1.getWorkingDirectory)()}`, () => { });
442
- resolve({
443
- result: formatResult(command, commandOutput, (0, array_1.buildArray)([
444
- `cwd: ${path_1.default.resolve(projectRoot, cwd)}`,
445
- statusMessage,
446
- ]).join('\n\n')),
447
- stdout: commandOutput,
448
- exitCode,
449
- });
450
- return;
451
- }
452
- let outsideProject = false;
453
- const currentWorkingDirectory = (0, project_files_1.getWorkingDirectory)();
454
- let finalCwd = currentWorkingDirectory;
455
- if (newWorkingDirectory !== currentWorkingDirectory) {
456
- (0, analytics_1.trackEvent)(analytics_events_1.AnalyticsEvent.CHANGE_DIRECTORY, {
457
- from: currentWorkingDirectory,
458
- to: newWorkingDirectory,
459
- isSubdir: (0, file_1.isSubdir)(currentWorkingDirectory, newWorkingDirectory),
460
- });
461
- if (path_1.default.relative(projectRoot, newWorkingDirectory).startsWith('..')) {
462
- outsideProject = true;
463
- console.log(`
464
- Unable to cd outside of the project root (${projectRoot})
465
-
466
- If you want to change the project root:
467
- 1. Exit Codebuff (type "exit")
468
- 2. Navigate into the target directory (type "cd ${newWorkingDirectory}")
469
- 3. Restart Codebuff`);
470
- await runSinglePtyCommand(ptyProcess, `cd ${currentWorkingDirectory}`, () => { });
471
- }
472
- else {
473
- (0, project_files_1.setWorkingDirectory)(newWorkingDirectory);
474
- finalCwd = newWorkingDirectory;
475
- }
476
- }
477
- resolve({
478
- result: formatResult(command, commandOutput, (0, array_1.buildArray)([
479
- `cwd: ${currentWorkingDirectory}`,
480
- `${statusMessage}\n`,
481
- outsideProject &&
482
- `Detected final cwd outside project root. Reset cwd to ${currentWorkingDirectory}`,
483
- `Final **user** cwd: ${finalCwd} (Assistant's cwd is still project root)`,
484
- ]).join('\n')),
485
- stdout: commandOutput,
486
- exitCode,
487
- });
488
- });
489
- };
490
- exports.runCommandPty = runCommandPty;
491
- const runCommandChildProcess = (persistentProcess, command, mode, cwd, maybeTimeoutSeconds, resolve) => {
492
- const isWindows = os.platform() === 'win32';
493
- let commandOutput = '';
494
- if (mode === 'assistant') {
495
- console.log((0, picocolors_1.green)(`> ${command}`));
496
- }
497
- const childProcess = (0, child_process_1.spawn)(persistentProcess.shell, [isWindows ? '/c' : '-c', command], {
498
- cwd,
499
- env: {
500
- ...process.env,
501
- PAGER: 'cat',
502
- GIT_PAGER: 'cat',
503
- GIT_TERMINAL_PROMPT: '0',
504
- LESS: '-FRX',
505
- },
506
- });
507
- persistentProcess = {
508
- ...persistentProcess,
509
- childProcess,
510
- };
511
- let timer = null;
512
- if (maybeTimeoutSeconds !== null) {
513
- timer = setTimeout(() => {
514
- (0, exports.resetShell)(cwd);
515
- if (mode === 'assistant') {
516
- resolve({
517
- result: formatResult(command, commandOutput, `Command timed out after ${maybeTimeoutSeconds} seconds and was terminated.`),
518
- stdout: commandOutput,
519
- exitCode: 124,
520
- });
521
- }
522
- }, maybeTimeoutSeconds * 1000);
523
- }
524
- persistentProcess.timerId = timer;
525
- childProcess.stdout.on('data', (data) => {
526
- const output = data.toString();
527
- process.stdout.write(output);
528
- commandOutput += output;
529
- });
530
- childProcess.stderr.on('data', (data) => {
531
- const output = data.toString();
532
- process.stdout.write(output);
533
- commandOutput += output;
534
- });
535
- childProcess.on('close', (code) => {
536
- if (timer) {
537
- clearTimeout(timer);
538
- }
539
- if (command.startsWith('cd ') && mode === 'user') {
540
- const newWorkingDirectory = command.split(' ')[1];
541
- cwd = (0, project_files_1.setWorkingDirectory)(path_1.default.join(cwd, newWorkingDirectory));
542
- }
543
- if (mode === 'assistant') {
544
- console.log((0, picocolors_1.green)(`Command completed`));
545
- }
546
- resolve({
547
- result: formatResult(command, commandOutput, `complete`),
548
- stdout: commandOutput,
549
- exitCode: childProcess.exitCode,
550
- });
551
- });
552
- };
553
- function killAndResetPersistentProcess() {
554
- if (exports.persistentProcess?.type === 'pty') {
555
- exports.persistentProcess.pty.kill();
556
- exports.persistentProcess = null;
557
- }
558
- }
559
- function clearScreen() {
560
- process.stdout.write('\u001b[2J\u001b[0;0H');
561
- }
562
- // New function specifically for manager mode with settling behavior
563
- const runCommandPtyManager = (persistentProcess, command, cwd, maybeTimeoutSeconds, resolve) => {
564
- const ptyProcess = persistentProcess.pty;
565
- if (command.trim() === 'clear') {
566
- // `clear` needs access to the main process stdout. This is a workaround.
567
- (0, child_process_1.execSync)('clear', { stdio: 'inherit' });
568
- resolve({
569
- result: formatResult(command, '', `Complete`),
570
- stdout: '',
571
- exitCode: 0,
572
- });
573
- return;
574
- }
575
- const projectRoot = (0, project_files_1.getProjectRoot)();
576
- const isWindows = os.platform() === 'win32';
577
- console.log((0, picocolors_1.green)(`${cwd} > ${command}`));
578
- let commandOutput = '';
579
- let buffer = promptIdentifier;
580
- let echoLinesRemaining = isWindows ? 1 : command.split('\n').length;
581
- let timer = null;
582
- let settleTimer = null;
583
- // Use the provided timeout or default to 30 seconds for manager mode
584
- const managerTimeoutMs = maybeTimeoutSeconds !== null ? maybeTimeoutSeconds * 1000 : 30000;
585
- if (maybeTimeoutSeconds !== null) {
586
- timer = setTimeout(() => {
587
- // In manager mode, don't kill the terminal - just report what we have
588
- if (timer) {
589
- clearTimeout(timer);
590
- }
591
- if (settleTimer) {
592
- clearTimeout(settleTimer);
593
- }
594
- dataDisposable.dispose();
595
- resolve({
596
- result: formatResult(command, commandOutput, `Command timed out after ${managerTimeoutMs / 1000} seconds. Output captured so far. Terminal is still running.`),
597
- stdout: commandOutput,
598
- exitCode: null, // null indicates timeout, not failure
599
- });
600
- }, managerTimeoutMs);
601
- }
602
- persistentProcess.timerId = timer;
603
- const finishCommand = (exitCode = null) => {
604
- if (timer) {
605
- clearTimeout(timer);
606
- }
607
- if (settleTimer) {
608
- clearTimeout(settleTimer);
609
- }
610
- dataDisposable.dispose();
611
- const statusMessage = exitCode === 0
612
- ? 'Complete'
613
- : exitCode === null
614
- ? 'Comand started'
615
- : `Failed with exit code: ${exitCode}`;
616
- resolve({
617
- result: formatResult(command, undefined, `cwd: ${path_1.default.resolve(projectRoot, cwd)}\n\n${statusMessage}`),
618
- stdout: commandOutput,
619
- exitCode,
620
- });
621
- };
622
- const dataDisposable = ptyProcess.onData((data) => {
623
- buffer += data;
624
- const suffix = (0, string_1.suffixPrefixOverlap)(buffer, promptIdentifier);
625
- let toProcess = buffer.slice(0, buffer.length - suffix.length);
626
- buffer = suffix;
627
- const matches = toProcess.match(echoLinePattern);
628
- if (matches) {
629
- for (let i = 0; i < matches.length && echoLinesRemaining > 0; i++) {
630
- echoLinesRemaining = Math.max(echoLinesRemaining - 1, 0);
631
- // Process normal output line
632
- toProcess = toProcess.replace(echoLinePattern, '');
633
- }
634
- }
635
- const indexOfPromptIdentifier = toProcess.indexOf(promptIdentifier);
636
- if (indexOfPromptIdentifier !== -1) {
637
- buffer = toProcess.slice(indexOfPromptIdentifier) + buffer;
638
- toProcess = toProcess.slice(0, indexOfPromptIdentifier);
639
- }
640
- process.stdout.write(toProcess);
641
- commandOutput += toProcess;
642
- // Reset settle timer whenever we get new output
643
- if (settleTimer) {
644
- clearTimeout(settleTimer);
645
- }
646
- // Set settle timer for 3000ms - if no new output comes, finish the command
647
- settleTimer = setTimeout(() => {
648
- finishCommand();
649
- }, 3000);
650
- const commandDone = buffer.startsWith(promptIdentifier);
651
- if (commandDone && echoLinesRemaining === 0) {
652
- // Command is done
653
- const exitCode = buffer.includes('Command completed')
654
- ? 0
655
- : (() => {
656
- const match = buffer.match(/Command failed with exit code (\d+)\./);
657
- return match ? parseInt(match[1]) : null;
658
- })();
659
- finishCommand(exitCode);
660
- return;
661
- }
662
- });
663
- ptyProcess.write(`${command}`);
664
- setTimeout(() => {
665
- ptyProcess.write('\r');
666
- }, 50);
667
- };
668
- exports.runCommandPtyManager = runCommandPtyManager;
669
- // Add a function to get new terminal output since last read
670
- const readNewTerminalOutput = (options = { maxLength: COMMAND_OUTPUT_LIMIT }) => {
671
- if (!exports.persistentProcess) {
672
- return '';
673
- }
674
- const currentLength = exports.persistentProcess.globalOutputBuffer.length;
675
- const newOutput = exports.persistentProcess.globalOutputBuffer.slice(exports.persistentProcess.globalOutputLastReadLength);
676
- // Update the last read position
677
- exports.persistentProcess.globalOutputLastReadLength = currentLength;
678
- return (0, string_1.truncateStringWithMessage)({
679
- str: newOutput,
680
- maxLength: options.maxLength,
681
- remove: 'MIDDLE',
682
- });
683
- };
684
- exports.readNewTerminalOutput = readNewTerminalOutput;
685
- //# sourceMappingURL=base.js.map