@tyvm/knowhow 0.0.159 → 0.0.160

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 (870) hide show
  1. package/package.json +1 -1
  2. package/ts_build/package.json +1 -1
  3. package/ts_build/src/chat/CliChatService.d.ts +2 -1
  4. package/ts_build/src/chat/CliChatService.js +29 -3
  5. package/ts_build/src/chat/CliChatService.js.map +1 -1
  6. package/ts_build/src/chat/modules/AgentModule.js +21 -17
  7. package/ts_build/src/chat/modules/AgentModule.js.map +1 -1
  8. package/ts_build/src/chat/renderer/ConsoleRenderer.js +32 -25
  9. package/ts_build/src/chat/renderer/ConsoleRenderer.js.map +1 -1
  10. package/ts_build/src/logger.d.ts +1 -0
  11. package/ts_build/src/logger.js +13 -1
  12. package/ts_build/src/logger.js.map +1 -1
  13. package/ts_build/src/utils/InputQueueManager.d.ts +8 -1
  14. package/ts_build/src/utils/InputQueueManager.js +72 -2
  15. package/ts_build/src/utils/InputQueueManager.js.map +1 -1
  16. package/ts_build/src/utils/index.d.ts +3 -1
  17. package/ts_build/src/utils/index.js +11 -3
  18. package/ts_build/src/utils/index.js.map +1 -1
  19. package/CONFIG.md +0 -429
  20. package/PROCESSING.md +0 -450
  21. package/WORKER.md +0 -260
  22. package/autodoc/README.md +0 -324
  23. package/autodoc/chat-guide.md +0 -444
  24. package/autodoc/cli-reference.md +0 -720
  25. package/autodoc/config-reference.md +0 -642
  26. package/autodoc/embeddings-guide.md +0 -467
  27. package/autodoc/generate-guide.md +0 -437
  28. package/autodoc/language-plugin-guide.md +0 -417
  29. package/autodoc/modules-guide.md +0 -379
  30. package/autodoc/plugins-guide.md +0 -721
  31. package/autodoc/quickstart-guide.md +0 -126
  32. package/autodoc/skills-guide.md +0 -584
  33. package/autodoc/worker-guide.md +0 -519
  34. package/docs/input-queue-manager.md +0 -142
  35. package/docs/multi-worker-management.md +0 -142
  36. package/docs/shell-commands.md +0 -174
  37. package/jest.config.js +0 -19
  38. package/jest.manual.config.js +0 -19
  39. package/scripts/README.md +0 -119
  40. package/scripts/build-for-node.sh +0 -148
  41. package/scripts/cache-miss-debug.ts +0 -365
  42. package/scripts/check-isolated-deps.sh +0 -69
  43. package/scripts/check-model-pricing.ts +0 -509
  44. package/scripts/compare-openrouter-coverage.ts +0 -576
  45. package/scripts/migrate-usage-json.js +0 -147
  46. package/scripts/publish.sh +0 -86
  47. package/scripts/restore_keys.sh +0 -59
  48. package/scripts/test-repetition-hint.ts +0 -302
  49. package/scripts/unset_keys.sh +0 -60
  50. package/src/agents/base/base.ts +0 -1963
  51. package/src/agents/base/prompt.ts +0 -55
  52. package/src/agents/configurable/ConfigAgent.ts +0 -24
  53. package/src/agents/developer/developer.ts +0 -76
  54. package/src/agents/historyRollback.ts +0 -36
  55. package/src/agents/index.ts +0 -52
  56. package/src/agents/interface.ts +0 -11
  57. package/src/agents/patcher/codebase.md +0 -27
  58. package/src/agents/patcher/patcher.ts +0 -131
  59. package/src/agents/researcher/researcher.ts +0 -115
  60. package/src/agents/setup/setup.ts +0 -63
  61. package/src/agents/tools/addInternalTools.ts +0 -21
  62. package/src/agents/tools/agentCall.ts +0 -34
  63. package/src/agents/tools/aiClient.ts +0 -178
  64. package/src/agents/tools/askHuman.ts +0 -10
  65. package/src/agents/tools/callPlugin.ts +0 -10
  66. package/src/agents/tools/connectAgent.ts +0 -355
  67. package/src/agents/tools/embeddingSearch.ts +0 -6
  68. package/src/agents/tools/execCommand.ts +0 -162
  69. package/src/agents/tools/fileSearch.ts +0 -35
  70. package/src/agents/tools/finalAnswer.ts +0 -4
  71. package/src/agents/tools/googleSearch.ts +0 -243
  72. package/src/agents/tools/index.ts +0 -33
  73. package/src/agents/tools/language/definitions.ts +0 -105
  74. package/src/agents/tools/language/index.ts +0 -20
  75. package/src/agents/tools/lazy/definitions.ts +0 -72
  76. package/src/agents/tools/lazy/disableTools.ts +0 -16
  77. package/src/agents/tools/lazy/enableTools.ts +0 -16
  78. package/src/agents/tools/lazy/index.ts +0 -3
  79. package/src/agents/tools/lazy/listAvailableTools.ts +0 -17
  80. package/src/agents/tools/lintFile.ts +0 -19
  81. package/src/agents/tools/list.ts +0 -739
  82. package/src/agents/tools/loadImageAsBase64.ts +0 -83
  83. package/src/agents/tools/loadWebpage.ts +0 -19
  84. package/src/agents/tools/mcp/connectMcpServer.ts +0 -40
  85. package/src/agents/tools/mcp/definitions.ts +0 -67
  86. package/src/agents/tools/mcp/disconnectMcpServer.ts +0 -40
  87. package/src/agents/tools/mcp/index.ts +0 -3
  88. package/src/agents/tools/mcp/listAvailableMcpServers.ts +0 -28
  89. package/src/agents/tools/minimal/callTool.ts +0 -45
  90. package/src/agents/tools/minimal/definitions.ts +0 -50
  91. package/src/agents/tools/minimal/index.ts +0 -3
  92. package/src/agents/tools/minimal/inspectTools.ts +0 -27
  93. package/src/agents/tools/modifyFile.ts +0 -53
  94. package/src/agents/tools/observe.ts +0 -247
  95. package/src/agents/tools/patch.ts +0 -1287
  96. package/src/agents/tools/readBlocks.ts +0 -83
  97. package/src/agents/tools/readFile.ts +0 -105
  98. package/src/agents/tools/replyToParent.ts +0 -123
  99. package/src/agents/tools/runGenerate.ts +0 -210
  100. package/src/agents/tools/scanFile.ts +0 -16
  101. package/src/agents/tools/sendAgentMessage.ts +0 -139
  102. package/src/agents/tools/skills.ts +0 -79
  103. package/src/agents/tools/startAgentTask.ts +0 -393
  104. package/src/agents/tools/stringReplace.ts +0 -105
  105. package/src/agents/tools/textSearch.ts +0 -128
  106. package/src/agents/tools/types/fileblock.ts +0 -5
  107. package/src/agents/tools/visionTool.ts +0 -35
  108. package/src/agents/tools/waitForAgentCompleted.ts +0 -270
  109. package/src/agents/tools/writeFile.ts +0 -106
  110. package/src/agents/tools/ycmd/client.ts +0 -608
  111. package/src/agents/tools/ycmd/definitions.ts +0 -294
  112. package/src/agents/tools/ycmd/detection.ts +0 -211
  113. package/src/agents/tools/ycmd/index.ts +0 -11
  114. package/src/agents/tools/ycmd/installer.ts +0 -251
  115. package/src/agents/tools/ycmd/server.ts +0 -545
  116. package/src/agents/tools/ycmd/serverManager.ts +0 -316
  117. package/src/agents/tools/ycmd/tools/completion.ts +0 -113
  118. package/src/agents/tools/ycmd/tools/diagnostics.ts +0 -166
  119. package/src/agents/tools/ycmd/tools/getLocations.ts +0 -173
  120. package/src/agents/tools/ycmd/tools/goto.ts +0 -169
  121. package/src/agents/tools/ycmd/tools/refactor.ts +0 -204
  122. package/src/agents/tools/ycmd/tools/signature.ts +0 -174
  123. package/src/agents/tools/ycmd/tools/start.ts +0 -95
  124. package/src/agents/tools/ycmd/utils/pathUtils.ts +0 -59
  125. package/src/ai.ts +0 -306
  126. package/src/auth/browserLogin.ts +0 -406
  127. package/src/auth/environmentAuth.ts +0 -51
  128. package/src/auth/errors.ts +0 -6
  129. package/src/auth/jwtStore.ts +0 -70
  130. package/src/auth/keyAuth.ts +0 -142
  131. package/src/auth/keyManager.ts +0 -331
  132. package/src/auth/registerIdentity.ts +0 -67
  133. package/src/auth/spinner.ts +0 -23
  134. package/src/chat/CliChatService.ts +0 -438
  135. package/src/chat/modules/AgentModule.ts +0 -1664
  136. package/src/chat/modules/AskModule.ts +0 -98
  137. package/src/chat/modules/BaseChatModule.ts +0 -65
  138. package/src/chat/modules/ClipboardImageModule.ts +0 -136
  139. package/src/chat/modules/CustomCommandsModule.ts +0 -80
  140. package/src/chat/modules/InternalChatModule.ts +0 -216
  141. package/src/chat/modules/RemoteSyncModule.ts +0 -482
  142. package/src/chat/modules/RendererModule.ts +0 -139
  143. package/src/chat/modules/SearchModule.ts +0 -168
  144. package/src/chat/modules/SessionsModule.ts +0 -969
  145. package/src/chat/modules/SetupModule.ts +0 -185
  146. package/src/chat/modules/ShellCommandModule.ts +0 -98
  147. package/src/chat/modules/SystemModule.ts +0 -161
  148. package/src/chat/modules/ToolCommandModule.ts +0 -102
  149. package/src/chat/modules/VoiceModule.ts +0 -70
  150. package/src/chat/modules/index.ts +0 -8
  151. package/src/chat/renderer/CompactRenderer.ts +0 -229
  152. package/src/chat/renderer/ConsoleRenderer.ts +0 -160
  153. package/src/chat/renderer/FancyRenderer.ts +0 -440
  154. package/src/chat/renderer/PlainRenderer.ts +0 -218
  155. package/src/chat/renderer/index.ts +0 -6
  156. package/src/chat/renderer/loadRenderer.ts +0 -316
  157. package/src/chat/renderer/messagesToRenderEvents.ts +0 -96
  158. package/src/chat/renderer/types.ts +0 -99
  159. package/src/chat/types.ts +0 -146
  160. package/src/chat.ts +0 -140
  161. package/src/cli.ts +0 -180
  162. package/src/clients/anthropic.ts +0 -772
  163. package/src/clients/attribution.ts +0 -53
  164. package/src/clients/cerebras.ts +0 -10
  165. package/src/clients/contextLimits.ts +0 -263
  166. package/src/clients/copilot.ts +0 -23
  167. package/src/clients/deepseek.ts +0 -16
  168. package/src/clients/fireworks.ts +0 -71
  169. package/src/clients/gemini.ts +0 -1169
  170. package/src/clients/github.ts +0 -16
  171. package/src/clients/groq.ts +0 -15
  172. package/src/clients/http.ts +0 -719
  173. package/src/clients/index.ts +0 -1153
  174. package/src/clients/knowhow.ts +0 -130
  175. package/src/clients/knowhowMcp.ts +0 -118
  176. package/src/clients/llama.ts +0 -16
  177. package/src/clients/meta.ts +0 -27
  178. package/src/clients/mistral.ts +0 -16
  179. package/src/clients/nvidia.ts +0 -16
  180. package/src/clients/openai.ts +0 -1186
  181. package/src/clients/openrouter.ts +0 -24
  182. package/src/clients/pricing/anthropic.ts +0 -149
  183. package/src/clients/pricing/cerebras.ts +0 -11
  184. package/src/clients/pricing/copilot.ts +0 -60
  185. package/src/clients/pricing/deepseek.ts +0 -15
  186. package/src/clients/pricing/fireworks.ts +0 -182
  187. package/src/clients/pricing/github.ts +0 -69
  188. package/src/clients/pricing/google.ts +0 -385
  189. package/src/clients/pricing/groq.ts +0 -56
  190. package/src/clients/pricing/index.ts +0 -44
  191. package/src/clients/pricing/llama.ts +0 -18
  192. package/src/clients/pricing/meta.ts +0 -12
  193. package/src/clients/pricing/mistral.ts +0 -34
  194. package/src/clients/pricing/models.ts +0 -25
  195. package/src/clients/pricing/nvidia.ts +0 -102
  196. package/src/clients/pricing/openai.ts +0 -409
  197. package/src/clients/pricing/openrouter.ts +0 -36
  198. package/src/clients/pricing/qwen.ts +0 -80
  199. package/src/clients/pricing/types.ts +0 -125
  200. package/src/clients/pricing/xai.ts +0 -137
  201. package/src/clients/qwen.ts +0 -16
  202. package/src/clients/responseMetadata.ts +0 -221
  203. package/src/clients/types.ts +0 -531
  204. package/src/clients/withRetry.ts +0 -89
  205. package/src/clients/xai.ts +0 -693
  206. package/src/cloudWorker.ts +0 -394
  207. package/src/commands/agent.ts +0 -342
  208. package/src/commands/agents.ts +0 -1037
  209. package/src/commands/behaviors.ts +0 -47
  210. package/src/commands/convert.ts +0 -291
  211. package/src/commands/hash.ts +0 -179
  212. package/src/commands/mcp.ts +0 -743
  213. package/src/commands/misc.ts +0 -373
  214. package/src/commands/modules.ts +0 -704
  215. package/src/commands/processes.ts +0 -248
  216. package/src/commands/remote.ts +0 -77
  217. package/src/commands/replay.ts +0 -503
  218. package/src/commands/sandbox.ts +0 -566
  219. package/src/commands/services.ts +0 -168
  220. package/src/commands/skills.ts +0 -107
  221. package/src/commands/workers.ts +0 -168
  222. package/src/config.ts +0 -468
  223. package/src/conversion.ts +0 -69
  224. package/src/dataset/diffs/README.md +0 -12
  225. package/src/dataset/diffs/debug-errors.ts +0 -29
  226. package/src/dataset/diffs/debug.ts +0 -64
  227. package/src/dataset/diffs/generate.ts +0 -71
  228. package/src/dataset/diffs/jsonl.ts +0 -53
  229. package/src/dataset/diffs/test.ts +0 -194
  230. package/src/embeddings.ts +0 -494
  231. package/src/fileSync.ts +0 -369
  232. package/src/generate.ts +0 -529
  233. package/src/hashes.ts +0 -180
  234. package/src/index.ts +0 -261
  235. package/src/logger.ts +0 -197
  236. package/src/login.ts +0 -209
  237. package/src/microphone.ts +0 -141
  238. package/src/migrations.ts +0 -151
  239. package/src/plugins/AgentsMdPlugin.ts +0 -118
  240. package/src/plugins/GitPlugin.ts +0 -598
  241. package/src/plugins/LinterPlugin.ts +0 -214
  242. package/src/plugins/PluginBase.ts +0 -70
  243. package/src/plugins/SkillsPlugin.ts +0 -37
  244. package/src/plugins/embedding.ts +0 -82
  245. package/src/plugins/exec.ts +0 -70
  246. package/src/plugins/language.ts +0 -290
  247. package/src/plugins/plugins.ts +0 -175
  248. package/src/plugins/tmux.ts +0 -132
  249. package/src/plugins/types.ts +0 -36
  250. package/src/plugins/url.ts +0 -101
  251. package/src/plugins/vim.ts +0 -89
  252. package/src/processes/ProcessManager.ts +0 -96
  253. package/src/processes/managedProcessShim.ts +0 -138
  254. package/src/processors/Base64ImageDetector.ts +0 -502
  255. package/src/processors/CustomVariables.ts +0 -693
  256. package/src/processors/GemmaToolProcessor.ts +0 -163
  257. package/src/processors/HarmonyToolProcessor.ts +0 -264
  258. package/src/processors/JsonCompressor.ts +0 -510
  259. package/src/processors/MinimalToolsMessageProcessor.ts +0 -113
  260. package/src/processors/TokenCompressor.ts +0 -620
  261. package/src/processors/ToolResponseCache.ts +0 -322
  262. package/src/processors/XmlToolCallProcessor.ts +0 -533
  263. package/src/processors/index.ts +0 -14
  264. package/src/processors/tools/boundedToolResponse.ts +0 -49
  265. package/src/processors/tools/grepToolResponse.ts +0 -230
  266. package/src/processors/tools/index.ts +0 -23
  267. package/src/processors/tools/jqToolResponse.ts +0 -159
  268. package/src/processors/tools/listStoredToolResponses.ts +0 -124
  269. package/src/processors/tools/tailToolResponse.ts +0 -148
  270. package/src/prompts/BasicCodeDocumenter.ts +0 -1
  271. package/src/prompts/BasicProjectDocumenter.ts +0 -1
  272. package/src/prompts/EmbeddingSeachHelper.ts +0 -1
  273. package/src/prompts/KnowhowConfigExamples.ts +0 -376
  274. package/src/prompts/index.ts +0 -9
  275. package/src/remotes.ts +0 -110
  276. package/src/server/index.ts +0 -16
  277. package/src/services/AgentService.ts +0 -134
  278. package/src/services/AgentSyncFs.ts +0 -775
  279. package/src/services/AgentSyncKnowhowWeb.ts +0 -389
  280. package/src/services/BehaviorsService.ts +0 -466
  281. package/src/services/DockerService.ts +0 -511
  282. package/src/services/EmbeddingService.ts +0 -427
  283. package/src/services/EmbeddingsService.ts +0 -73
  284. package/src/services/EventService.ts +0 -279
  285. package/src/services/ExtensionsService.ts +0 -25
  286. package/src/services/KnowhowClient.ts +0 -928
  287. package/src/services/LazyToolsService.ts +0 -210
  288. package/src/services/Mcp.ts +0 -727
  289. package/src/services/McpServer.ts +0 -155
  290. package/src/services/McpWebsocketTransport.ts +0 -87
  291. package/src/services/MediaProcessorService.ts +0 -669
  292. package/src/services/MessageProcessor.ts +0 -114
  293. package/src/services/MinimalToolsService.ts +0 -177
  294. package/src/services/RuntimeReloadService.ts +0 -31
  295. package/src/services/S3.ts +0 -61
  296. package/src/services/SessionManager.ts +0 -358
  297. package/src/services/SkillsService.ts +0 -822
  298. package/src/services/SyncedAgentWatcher.ts +0 -124
  299. package/src/services/SyncerService.ts +0 -191
  300. package/src/services/TaskRegistry.ts +0 -110
  301. package/src/services/Tools.ts +0 -580
  302. package/src/services/TracingService.ts +0 -116
  303. package/src/services/conversion/ConversionService.ts +0 -757
  304. package/src/services/conversion/index.ts +0 -2
  305. package/src/services/conversion/types.ts +0 -87
  306. package/src/services/flags.ts +0 -51
  307. package/src/services/index.ts +0 -117
  308. package/src/services/modules/computerUse.ts +0 -218
  309. package/src/services/modules/index.ts +0 -314
  310. package/src/services/modules/types.ts +0 -109
  311. package/src/services/types.ts +0 -60
  312. package/src/services/watchers/FsSyncer.ts +0 -199
  313. package/src/services/watchers/RemoteSyncer.ts +0 -196
  314. package/src/services/watchers/index.ts +0 -2
  315. package/src/tunnel.ts +0 -243
  316. package/src/types.ts +0 -282
  317. package/src/util/Trace.ts +0 -236
  318. package/src/utils/InputQueueManager.ts +0 -493
  319. package/src/utils/errors.ts +0 -0
  320. package/src/utils/http.ts +0 -150
  321. package/src/utils/index.ts +0 -111
  322. package/src/worker.ts +0 -696
  323. package/src/workerRegistry.ts +0 -152
  324. package/src/workers/auth/PasskeySetup.ts +0 -181
  325. package/src/workers/auth/WorkerPasskeyAuth.ts +0 -190
  326. package/src/workers/auth/WsMiddleware.ts +0 -99
  327. package/src/workers/auth/authMiddleware.ts +0 -104
  328. package/src/workers/auth/types.ts +0 -70
  329. package/src/workers/tools/getChallenge.ts +0 -33
  330. package/src/workers/tools/index.ts +0 -20
  331. package/src/workers/tools/listAllowedPorts.ts +0 -30
  332. package/src/workers/tools/lock.ts +0 -31
  333. package/src/workers/tools/reloadConfig.ts +0 -84
  334. package/src/workers/tools/unlock.ts +0 -116
  335. package/tests/XmlToolCallProcessor.test.ts +0 -468
  336. package/tests/agents/interrupt.test.ts +0 -200
  337. package/tests/agents/observe-base.test.ts +0 -183
  338. package/tests/agents/tools/connectAgent.test.ts +0 -138
  339. package/tests/agents/tools/observe.test.ts +0 -179
  340. package/tests/agents/tools/readFile.test.ts +0 -88
  341. package/tests/agents/tools/replyToParent.test.ts +0 -125
  342. package/tests/agents/tools/sendAgentMessage.test.ts +0 -99
  343. package/tests/agents/tools/waitForAgentCompleted.test.ts +0 -147
  344. package/tests/chat/detach-attach-rendering.test.ts +0 -315
  345. package/tests/clients/AIClient.test.ts +0 -668
  346. package/tests/clients/anthropic.test.ts +0 -202
  347. package/tests/clients/contextLimits.test.ts +0 -97
  348. package/tests/clients/fireworks.test.ts +0 -65
  349. package/tests/clients/openai.images.test.ts +0 -105
  350. package/tests/clients/pricing.test.ts +0 -206
  351. package/tests/clients/reasoningEffort.test.ts +0 -140
  352. package/tests/compressor/bigstring.test.ts +0 -450
  353. package/tests/compressor/bigstring.txt +0 -1
  354. package/tests/compressor/githubjson.txt +0 -1
  355. package/tests/compressor/toolResponseCache.test.ts +0 -304
  356. package/tests/compressor/usageBase64.json +0 -159
  357. package/tests/compressor/usageBase64.test.ts +0 -175
  358. package/tests/fixtures/fake-secret.txt +0 -1
  359. package/tests/manual/agent-events/run-test.ts +0 -203
  360. package/tests/manual/browser-login/README.md +0 -189
  361. package/tests/manual/browser-login/test_browser_login_basic.ts +0 -115
  362. package/tests/manual/browser-login/test_cli_integration.ts +0 -169
  363. package/tests/manual/browser-login/test_cross_platform_browser.ts +0 -186
  364. package/tests/manual/browser-login/test_error_scenarios.ts +0 -223
  365. package/tests/manual/cli/no-env.sh +0 -274
  366. package/tests/manual/clients/completions.json +0 -1151
  367. package/tests/manual/clients/completions.test.ts +0 -198
  368. package/tests/manual/file-edits/figma.test.ts +0 -3
  369. package/tests/manual/file-edits/fileblocks/readwrite.test.ts +0 -100
  370. package/tests/manual/file-edits/patching/input.txt +0 -145
  371. package/tests/manual/file-edits/patching/output.txt +0 -145
  372. package/tests/manual/file-edits/patching/patch.txt +0 -15
  373. package/tests/manual/file-edits/patching/unseen.txt +0 -80
  374. package/tests/manual/file-edits/patching.test.ts +0 -139
  375. package/tests/manual/modalities/README.md +0 -157
  376. package/tests/manual/modalities/google.modalities.test.ts +0 -335
  377. package/tests/manual/modalities/openai.modalities.test.ts +0 -329
  378. package/tests/manual/modalities/streaming.test.ts +0 -260
  379. package/tests/manual/modalities/xai.modalities.test.ts +0 -294
  380. package/tests/manual/test-concurrent-ask.ts +0 -43
  381. package/tests/manual/ycmd/debug_diagnostics_test.ts +0 -127
  382. package/tests/manual/ycmd/fixtures/debug_diagnostics.ts +0 -26
  383. package/tests/manual/ycmd/fixtures/file_change_test.ts +0 -17
  384. package/tests/manual/ycmd/minimal_advanced_test.ts +0 -108
  385. package/tests/manual/ycmd/simple_diagnostics_test.ts +0 -61
  386. package/tests/manual/ycmd/simple_test.ts +0 -74
  387. package/tests/manual/ycmd/test-typescript-sample.ts +0 -34
  388. package/tests/manual/ycmd/test_advanced_features.ts +0 -407
  389. package/tests/manual/ycmd/test_advanced_with_tools.ts +0 -320
  390. package/tests/manual/ycmd/test_comprehensive_typescript.ts +0 -179
  391. package/tests/manual/ycmd/test_diagnostics_file_changes.ts +0 -249
  392. package/tests/manual/ycmd/test_diagnostics_fix.ts +0 -99
  393. package/tests/manual/ycmd/test_diagnostics_simple.ts +0 -100
  394. package/tests/manual/ycmd/test_diagnostics_timing.ts +0 -120
  395. package/tests/manual/ycmd/test_discover_commands.ts +0 -310
  396. package/tests/manual/ycmd/test_endpoints.ts +0 -115
  397. package/tests/manual/ycmd/test_final_comprehensive.ts +0 -218
  398. package/tests/manual/ycmd/test_final_validation.ts +0 -150
  399. package/tests/manual/ycmd/test_implementation.js +0 -42
  400. package/tests/manual/ycmd/test_individual_ycmd_tool.ts +0 -39
  401. package/tests/manual/ycmd/test_server_manager.ts +0 -52
  402. package/tests/manual/ycmd/test_simple_debug.ts +0 -86
  403. package/tests/manual/ycmd/test_tsserver_workflow.js +0 -83
  404. package/tests/manual/ycmd/test_tsserver_workflow.ts +0 -122
  405. package/tests/manual/ycmd/test_typescript_simple.ts +0 -48
  406. package/tests/manual/ycmd/test_typescript_ycmd.ts +0 -105
  407. package/tests/manual/ycmd/test_workspace_config.ts +0 -90
  408. package/tests/manual/ycmd/test_ycmd_auto_start.ts +0 -137
  409. package/tests/manual/ycmd/test_ycmd_comprehensive.ts +0 -73
  410. package/tests/manual/ycmd/test_ycmd_connection.py +0 -10
  411. package/tests/manual/ycmd/test_ycmd_direct.ts +0 -142
  412. package/tests/manual/ycmd/test_ycmd_experiment.ts +0 -48
  413. package/tests/manual/ycmd/test_ycmd_final.ts +0 -200
  414. package/tests/manual/ycmd/test_ycmd_fixed.py +0 -18
  415. package/tests/manual/ycmd/test_ycmd_integration.ts +0 -112
  416. package/tests/manual/ycmd/test_ycmd_simple.ts +0 -45
  417. package/tests/manual/ycmd/test_ycmd_usage.py +0 -27
  418. package/tests/manual/ycmd/working_simple_test.ts +0 -134
  419. package/tests/patching/corrupted.test.ts +0 -78
  420. package/tests/patching/fixtures/transcript-mangles/agent-sync-fs-nested-catch.json +0 -9
  421. package/tests/patching/fixtures/transcript-mangles/automation-functions-crossed.json +0 -9
  422. package/tests/patching/fixtures/transcript-mangles/fruit-ninja-confirmed-retirement.json +0 -8
  423. package/tests/patching/imports.patch.txt +0 -11
  424. package/tests/patching/imports.test.ts +0 -43
  425. package/tests/patching/imports.txt +0 -11
  426. package/tests/patching/interface.patch.txt +0 -15
  427. package/tests/patching/interface.txt +0 -7
  428. package/tests/patching/patchFileOutput.test.ts +0 -328
  429. package/tests/patching/regression-2026.test.ts +0 -752
  430. package/tests/patching/transcriptMangleRegression.test.ts +0 -125
  431. package/tests/plugins/language/languagePlugin-content-triggers.test.ts +0 -346
  432. package/tests/plugins/language/languagePlugin-integration.test.ts +0 -471
  433. package/tests/plugins/language/languagePlugin.test.ts +0 -385
  434. package/tests/processes/managedProcessShim.test.ts +0 -59
  435. package/tests/processors/Base64ImageDetector.test.ts +0 -979
  436. package/tests/processors/CustomVariables.test.ts +0 -981
  437. package/tests/processors/CustomVariablesBenchmark.test.ts +0 -237
  438. package/tests/processors/HarmonyToolProcessor.test.ts +0 -490
  439. package/tests/processors/TokenCompressor.test.ts +0 -674
  440. package/tests/processors/ToolResponseCache.test.ts +0 -864
  441. package/tests/processors/tools/boundedRetrievalTools.test.ts +0 -68
  442. package/tests/processors/tools/grepToolResponse.test.ts +0 -159
  443. package/tests/services/ConversionService.test.ts +0 -154
  444. package/tests/services/DockerService.test.ts +0 -24
  445. package/tests/services/Tools.test.ts +0 -1738
  446. package/tests/services/ToolsService.setFunction.test.ts +0 -68
  447. package/tests/services/WorkerReloadConfig.test.ts +0 -141
  448. package/tests/test.spec.ts +0 -163
  449. package/tests/unit/InputQueueManager.test.ts +0 -174
  450. package/tests/unit/McpWebsocketTransport.test.ts +0 -56
  451. package/tests/unit/agents/historyRollback.test.ts +0 -53
  452. package/tests/unit/agents/tools/loadImageAsBase64.test.ts +0 -44
  453. package/tests/unit/auth/jwtStore.test.ts +0 -55
  454. package/tests/unit/auth/keyAuth.test.ts +0 -152
  455. package/tests/unit/auth/keyManager.test.ts +0 -130
  456. package/tests/unit/auth/registerIdentity.test.ts +0 -99
  457. package/tests/unit/chat/ToolCommandModule.test.ts +0 -71
  458. package/tests/unit/chat/historyCommandArgs.test.ts +0 -37
  459. package/tests/unit/clients/AIClient.test.ts +0 -454
  460. package/tests/unit/clients/anthropic.responseMetadata.test.ts +0 -81
  461. package/tests/unit/clients/attribution.test.ts +0 -185
  462. package/tests/unit/clients/http.responseMetadata.test.ts +0 -86
  463. package/tests/unit/clients/openai.responseMetadata.test.ts +0 -90
  464. package/tests/unit/clients/responseMetadata.test.ts +0 -123
  465. package/tests/unit/clients/withRetry.test.ts +0 -319
  466. package/tests/unit/commands/agents.test.ts +0 -111
  467. package/tests/unit/commands/github-credentials.test.ts +0 -210
  468. package/tests/unit/commands/misc.test.ts +0 -85
  469. package/tests/unit/commands/remote.test.ts +0 -79
  470. package/tests/unit/commands/sandbox.test.ts +0 -350
  471. package/tests/unit/hashes.test.ts +0 -23
  472. package/tests/unit/input-queue.test.ts +0 -80
  473. package/tests/unit/login.test.ts +0 -218
  474. package/tests/unit/modules/moduleLoading.test.ts +0 -305
  475. package/tests/unit/plugins/pluginLoading.test.ts +0 -97
  476. package/tests/unit/services/AgentSyncKnowhowWeb.test.ts +0 -38
  477. package/tests/unit/services/KnowhowClient.test.ts +0 -84
  478. package/tests/unit/services/LazyToolsService.test.ts +0 -53
  479. package/tests/unit/services/Mcp.test.ts +0 -56
  480. package/tests/unit/services/MinimalToolsService.test.ts +0 -424
  481. package/tests/unit/services/RuntimeReloadService.test.ts +0 -29
  482. package/tests/unit/services/SessionManager.test.ts +0 -43
  483. package/tests/unit/services/SyncedAgentWatcher.test.ts +0 -89
  484. package/tests/unit/services/SyncerService.test.ts +0 -45
  485. package/tests/unit/tunnel.test.ts +0 -51
  486. package/tests/unit/util/Trace.test.ts +0 -119
  487. package/tests/unit/utils/http.test.ts +0 -43
  488. package/ts_build/tests/XmlToolCallProcessor.test.d.ts +0 -1
  489. package/ts_build/tests/XmlToolCallProcessor.test.js +0 -376
  490. package/ts_build/tests/XmlToolCallProcessor.test.js.map +0 -1
  491. package/ts_build/tests/agents/interrupt.test.d.ts +0 -14
  492. package/ts_build/tests/agents/interrupt.test.js +0 -136
  493. package/ts_build/tests/agents/interrupt.test.js.map +0 -1
  494. package/ts_build/tests/agents/observe-base.test.d.ts +0 -1
  495. package/ts_build/tests/agents/observe-base.test.js +0 -149
  496. package/ts_build/tests/agents/observe-base.test.js.map +0 -1
  497. package/ts_build/tests/agents/tools/connectAgent.test.d.ts +0 -1
  498. package/ts_build/tests/agents/tools/connectAgent.test.js +0 -142
  499. package/ts_build/tests/agents/tools/connectAgent.test.js.map +0 -1
  500. package/ts_build/tests/agents/tools/observe.test.d.ts +0 -1
  501. package/ts_build/tests/agents/tools/observe.test.js +0 -148
  502. package/ts_build/tests/agents/tools/observe.test.js.map +0 -1
  503. package/ts_build/tests/agents/tools/readFile.test.d.ts +0 -1
  504. package/ts_build/tests/agents/tools/readFile.test.js +0 -90
  505. package/ts_build/tests/agents/tools/readFile.test.js.map +0 -1
  506. package/ts_build/tests/agents/tools/replyToParent.test.d.ts +0 -1
  507. package/ts_build/tests/agents/tools/replyToParent.test.js +0 -116
  508. package/ts_build/tests/agents/tools/replyToParent.test.js.map +0 -1
  509. package/ts_build/tests/agents/tools/sendAgentMessage.test.d.ts +0 -1
  510. package/ts_build/tests/agents/tools/sendAgentMessage.test.js +0 -112
  511. package/ts_build/tests/agents/tools/sendAgentMessage.test.js.map +0 -1
  512. package/ts_build/tests/agents/tools/waitForAgentCompleted.test.d.ts +0 -1
  513. package/ts_build/tests/agents/tools/waitForAgentCompleted.test.js +0 -147
  514. package/ts_build/tests/agents/tools/waitForAgentCompleted.test.js.map +0 -1
  515. package/ts_build/tests/chat/detach-attach-rendering.test.d.ts +0 -1
  516. package/ts_build/tests/chat/detach-attach-rendering.test.js +0 -168
  517. package/ts_build/tests/chat/detach-attach-rendering.test.js.map +0 -1
  518. package/ts_build/tests/clients/AIClient.test.d.ts +0 -1
  519. package/ts_build/tests/clients/AIClient.test.js +0 -483
  520. package/ts_build/tests/clients/AIClient.test.js.map +0 -1
  521. package/ts_build/tests/clients/anthropic.test.d.ts +0 -1
  522. package/ts_build/tests/clients/anthropic.test.js +0 -159
  523. package/ts_build/tests/clients/anthropic.test.js.map +0 -1
  524. package/ts_build/tests/clients/contextLimits.test.d.ts +0 -1
  525. package/ts_build/tests/clients/contextLimits.test.js +0 -69
  526. package/ts_build/tests/clients/contextLimits.test.js.map +0 -1
  527. package/ts_build/tests/clients/fireworks.test.d.ts +0 -1
  528. package/ts_build/tests/clients/fireworks.test.js +0 -65
  529. package/ts_build/tests/clients/fireworks.test.js.map +0 -1
  530. package/ts_build/tests/clients/openai.images.test.d.ts +0 -1
  531. package/ts_build/tests/clients/openai.images.test.js +0 -94
  532. package/ts_build/tests/clients/openai.images.test.js.map +0 -1
  533. package/ts_build/tests/clients/pricing.test.d.ts +0 -1
  534. package/ts_build/tests/clients/pricing.test.js +0 -124
  535. package/ts_build/tests/clients/pricing.test.js.map +0 -1
  536. package/ts_build/tests/clients/reasoningEffort.test.d.ts +0 -1
  537. package/ts_build/tests/clients/reasoningEffort.test.js +0 -116
  538. package/ts_build/tests/clients/reasoningEffort.test.js.map +0 -1
  539. package/ts_build/tests/compressor/bigstring.test.d.ts +0 -1
  540. package/ts_build/tests/compressor/bigstring.test.js +0 -275
  541. package/ts_build/tests/compressor/bigstring.test.js.map +0 -1
  542. package/ts_build/tests/compressor/toolResponseCache.test.d.ts +0 -1
  543. package/ts_build/tests/compressor/toolResponseCache.test.js +0 -250
  544. package/ts_build/tests/compressor/toolResponseCache.test.js.map +0 -1
  545. package/ts_build/tests/compressor/usageBase64.test.d.ts +0 -1
  546. package/ts_build/tests/compressor/usageBase64.test.js +0 -109
  547. package/ts_build/tests/compressor/usageBase64.test.js.map +0 -1
  548. package/ts_build/tests/manual/agent-events/run-test.d.ts +0 -2
  549. package/ts_build/tests/manual/agent-events/run-test.js +0 -148
  550. package/ts_build/tests/manual/agent-events/run-test.js.map +0 -1
  551. package/ts_build/tests/manual/browser-login/test_browser_login_basic.d.ts +0 -2
  552. package/ts_build/tests/manual/browser-login/test_browser_login_basic.js +0 -118
  553. package/ts_build/tests/manual/browser-login/test_browser_login_basic.js.map +0 -1
  554. package/ts_build/tests/manual/browser-login/test_cli_integration.d.ts +0 -2
  555. package/ts_build/tests/manual/browser-login/test_cli_integration.js +0 -163
  556. package/ts_build/tests/manual/browser-login/test_cli_integration.js.map +0 -1
  557. package/ts_build/tests/manual/browser-login/test_cross_platform_browser.d.ts +0 -2
  558. package/ts_build/tests/manual/browser-login/test_cross_platform_browser.js +0 -169
  559. package/ts_build/tests/manual/browser-login/test_cross_platform_browser.js.map +0 -1
  560. package/ts_build/tests/manual/browser-login/test_error_scenarios.d.ts +0 -2
  561. package/ts_build/tests/manual/browser-login/test_error_scenarios.js +0 -207
  562. package/ts_build/tests/manual/browser-login/test_error_scenarios.js.map +0 -1
  563. package/ts_build/tests/manual/clients/completions.test.d.ts +0 -1
  564. package/ts_build/tests/manual/clients/completions.test.js +0 -151
  565. package/ts_build/tests/manual/clients/completions.test.js.map +0 -1
  566. package/ts_build/tests/manual/file-edits/figma.test.d.ts +0 -0
  567. package/ts_build/tests/manual/file-edits/figma.test.js +0 -2
  568. package/ts_build/tests/manual/file-edits/figma.test.js.map +0 -1
  569. package/ts_build/tests/manual/file-edits/fileblocks/readwrite.test.d.ts +0 -1
  570. package/ts_build/tests/manual/file-edits/fileblocks/readwrite.test.js +0 -110
  571. package/ts_build/tests/manual/file-edits/fileblocks/readwrite.test.js.map +0 -1
  572. package/ts_build/tests/manual/file-edits/patching.test.d.ts +0 -1
  573. package/ts_build/tests/manual/file-edits/patching.test.js +0 -129
  574. package/ts_build/tests/manual/file-edits/patching.test.js.map +0 -1
  575. package/ts_build/tests/manual/modalities/google.modalities.test.d.ts +0 -1
  576. package/ts_build/tests/manual/modalities/google.modalities.test.js +0 -262
  577. package/ts_build/tests/manual/modalities/google.modalities.test.js.map +0 -1
  578. package/ts_build/tests/manual/modalities/openai.modalities.test.d.ts +0 -1
  579. package/ts_build/tests/manual/modalities/openai.modalities.test.js +0 -262
  580. package/ts_build/tests/manual/modalities/openai.modalities.test.js.map +0 -1
  581. package/ts_build/tests/manual/modalities/streaming.test.d.ts +0 -1
  582. package/ts_build/tests/manual/modalities/streaming.test.js +0 -216
  583. package/ts_build/tests/manual/modalities/streaming.test.js.map +0 -1
  584. package/ts_build/tests/manual/modalities/xai.modalities.test.d.ts +0 -1
  585. package/ts_build/tests/manual/modalities/xai.modalities.test.js +0 -219
  586. package/ts_build/tests/manual/modalities/xai.modalities.test.js.map +0 -1
  587. package/ts_build/tests/manual/test-concurrent-ask.d.ts +0 -1
  588. package/ts_build/tests/manual/test-concurrent-ask.js +0 -22
  589. package/ts_build/tests/manual/test-concurrent-ask.js.map +0 -1
  590. package/ts_build/tests/manual/ycmd/debug_diagnostics_test.d.ts +0 -1
  591. package/ts_build/tests/manual/ycmd/debug_diagnostics_test.js +0 -124
  592. package/ts_build/tests/manual/ycmd/debug_diagnostics_test.js.map +0 -1
  593. package/ts_build/tests/manual/ycmd/minimal_advanced_test.d.ts +0 -2
  594. package/ts_build/tests/manual/ycmd/minimal_advanced_test.js +0 -114
  595. package/ts_build/tests/manual/ycmd/minimal_advanced_test.js.map +0 -1
  596. package/ts_build/tests/manual/ycmd/simple_diagnostics_test.d.ts +0 -1
  597. package/ts_build/tests/manual/ycmd/simple_diagnostics_test.js +0 -84
  598. package/ts_build/tests/manual/ycmd/simple_diagnostics_test.js.map +0 -1
  599. package/ts_build/tests/manual/ycmd/simple_test.d.ts +0 -2
  600. package/ts_build/tests/manual/ycmd/simple_test.js +0 -92
  601. package/ts_build/tests/manual/ycmd/simple_test.js.map +0 -1
  602. package/ts_build/tests/manual/ycmd/test-typescript-sample.d.ts +0 -14
  603. package/ts_build/tests/manual/ycmd/test-typescript-sample.js +0 -20
  604. package/ts_build/tests/manual/ycmd/test-typescript-sample.js.map +0 -1
  605. package/ts_build/tests/manual/ycmd/test_advanced_features.d.ts +0 -2
  606. package/ts_build/tests/manual/ycmd/test_advanced_features.js +0 -306
  607. package/ts_build/tests/manual/ycmd/test_advanced_features.js.map +0 -1
  608. package/ts_build/tests/manual/ycmd/test_advanced_with_tools.d.ts +0 -3
  609. package/ts_build/tests/manual/ycmd/test_advanced_with_tools.js +0 -271
  610. package/ts_build/tests/manual/ycmd/test_advanced_with_tools.js.map +0 -1
  611. package/ts_build/tests/manual/ycmd/test_comprehensive_typescript.d.ts +0 -2
  612. package/ts_build/tests/manual/ycmd/test_comprehensive_typescript.js +0 -196
  613. package/ts_build/tests/manual/ycmd/test_comprehensive_typescript.js.map +0 -1
  614. package/ts_build/tests/manual/ycmd/test_diagnostics_file_changes.d.ts +0 -1
  615. package/ts_build/tests/manual/ycmd/test_diagnostics_file_changes.js +0 -184
  616. package/ts_build/tests/manual/ycmd/test_diagnostics_file_changes.js.map +0 -1
  617. package/ts_build/tests/manual/ycmd/test_diagnostics_fix.d.ts +0 -2
  618. package/ts_build/tests/manual/ycmd/test_diagnostics_fix.js +0 -116
  619. package/ts_build/tests/manual/ycmd/test_diagnostics_fix.js.map +0 -1
  620. package/ts_build/tests/manual/ycmd/test_diagnostics_simple.d.ts +0 -1
  621. package/ts_build/tests/manual/ycmd/test_diagnostics_simple.js +0 -114
  622. package/ts_build/tests/manual/ycmd/test_diagnostics_simple.js.map +0 -1
  623. package/ts_build/tests/manual/ycmd/test_diagnostics_timing.d.ts +0 -1
  624. package/ts_build/tests/manual/ycmd/test_diagnostics_timing.js +0 -129
  625. package/ts_build/tests/manual/ycmd/test_diagnostics_timing.js.map +0 -1
  626. package/ts_build/tests/manual/ycmd/test_discover_commands.d.ts +0 -2
  627. package/ts_build/tests/manual/ycmd/test_discover_commands.js +0 -252
  628. package/ts_build/tests/manual/ycmd/test_discover_commands.js.map +0 -1
  629. package/ts_build/tests/manual/ycmd/test_endpoints.d.ts +0 -2
  630. package/ts_build/tests/manual/ycmd/test_endpoints.js +0 -130
  631. package/ts_build/tests/manual/ycmd/test_endpoints.js.map +0 -1
  632. package/ts_build/tests/manual/ycmd/test_final_comprehensive.d.ts +0 -2
  633. package/ts_build/tests/manual/ycmd/test_final_comprehensive.js +0 -231
  634. package/ts_build/tests/manual/ycmd/test_final_comprehensive.js.map +0 -1
  635. package/ts_build/tests/manual/ycmd/test_final_validation.d.ts +0 -2
  636. package/ts_build/tests/manual/ycmd/test_final_validation.js +0 -170
  637. package/ts_build/tests/manual/ycmd/test_final_validation.js.map +0 -1
  638. package/ts_build/tests/manual/ycmd/test_individual_ycmd_tool.d.ts +0 -2
  639. package/ts_build/tests/manual/ycmd/test_individual_ycmd_tool.js +0 -37
  640. package/ts_build/tests/manual/ycmd/test_individual_ycmd_tool.js.map +0 -1
  641. package/ts_build/tests/manual/ycmd/test_server_manager.d.ts +0 -1
  642. package/ts_build/tests/manual/ycmd/test_server_manager.js +0 -38
  643. package/ts_build/tests/manual/ycmd/test_server_manager.js.map +0 -1
  644. package/ts_build/tests/manual/ycmd/test_simple_debug.d.ts +0 -2
  645. package/ts_build/tests/manual/ycmd/test_simple_debug.js +0 -109
  646. package/ts_build/tests/manual/ycmd/test_simple_debug.js.map +0 -1
  647. package/ts_build/tests/manual/ycmd/test_tsserver_workflow.d.ts +0 -1
  648. package/ts_build/tests/manual/ycmd/test_tsserver_workflow.js +0 -138
  649. package/ts_build/tests/manual/ycmd/test_tsserver_workflow.js.map +0 -1
  650. package/ts_build/tests/manual/ycmd/test_typescript_simple.d.ts +0 -1
  651. package/ts_build/tests/manual/ycmd/test_typescript_simple.js +0 -76
  652. package/ts_build/tests/manual/ycmd/test_typescript_simple.js.map +0 -1
  653. package/ts_build/tests/manual/ycmd/test_typescript_ycmd.d.ts +0 -1
  654. package/ts_build/tests/manual/ycmd/test_typescript_ycmd.js +0 -115
  655. package/ts_build/tests/manual/ycmd/test_typescript_ycmd.js.map +0 -1
  656. package/ts_build/tests/manual/ycmd/test_workspace_config.d.ts +0 -1
  657. package/ts_build/tests/manual/ycmd/test_workspace_config.js +0 -99
  658. package/ts_build/tests/manual/ycmd/test_workspace_config.js.map +0 -1
  659. package/ts_build/tests/manual/ycmd/test_ycmd_auto_start.d.ts +0 -2
  660. package/ts_build/tests/manual/ycmd/test_ycmd_auto_start.js +0 -140
  661. package/ts_build/tests/manual/ycmd/test_ycmd_auto_start.js.map +0 -1
  662. package/ts_build/tests/manual/ycmd/test_ycmd_comprehensive.d.ts +0 -1
  663. package/ts_build/tests/manual/ycmd/test_ycmd_comprehensive.js +0 -93
  664. package/ts_build/tests/manual/ycmd/test_ycmd_comprehensive.js.map +0 -1
  665. package/ts_build/tests/manual/ycmd/test_ycmd_direct.d.ts +0 -2
  666. package/ts_build/tests/manual/ycmd/test_ycmd_direct.js +0 -159
  667. package/ts_build/tests/manual/ycmd/test_ycmd_direct.js.map +0 -1
  668. package/ts_build/tests/manual/ycmd/test_ycmd_experiment.d.ts +0 -15
  669. package/ts_build/tests/manual/ycmd/test_ycmd_experiment.js +0 -68
  670. package/ts_build/tests/manual/ycmd/test_ycmd_experiment.js.map +0 -1
  671. package/ts_build/tests/manual/ycmd/test_ycmd_final.d.ts +0 -2
  672. package/ts_build/tests/manual/ycmd/test_ycmd_final.js +0 -205
  673. package/ts_build/tests/manual/ycmd/test_ycmd_final.js.map +0 -1
  674. package/ts_build/tests/manual/ycmd/test_ycmd_integration.d.ts +0 -3
  675. package/ts_build/tests/manual/ycmd/test_ycmd_integration.js +0 -119
  676. package/ts_build/tests/manual/ycmd/test_ycmd_integration.js.map +0 -1
  677. package/ts_build/tests/manual/ycmd/test_ycmd_simple.d.ts +0 -2
  678. package/ts_build/tests/manual/ycmd/test_ycmd_simple.js +0 -36
  679. package/ts_build/tests/manual/ycmd/test_ycmd_simple.js.map +0 -1
  680. package/ts_build/tests/manual/ycmd/working_simple_test.d.ts +0 -2
  681. package/ts_build/tests/manual/ycmd/working_simple_test.js +0 -144
  682. package/ts_build/tests/manual/ycmd/working_simple_test.js.map +0 -1
  683. package/ts_build/tests/patching/corrupted.test.d.ts +0 -1
  684. package/ts_build/tests/patching/corrupted.test.js +0 -53
  685. package/ts_build/tests/patching/corrupted.test.js.map +0 -1
  686. package/ts_build/tests/patching/imports.test.d.ts +0 -1
  687. package/ts_build/tests/patching/imports.test.js +0 -71
  688. package/ts_build/tests/patching/imports.test.js.map +0 -1
  689. package/ts_build/tests/patching/patchFileOutput.test.d.ts +0 -1
  690. package/ts_build/tests/patching/patchFileOutput.test.js +0 -269
  691. package/ts_build/tests/patching/patchFileOutput.test.js.map +0 -1
  692. package/ts_build/tests/patching/regression-2026.test.d.ts +0 -1
  693. package/ts_build/tests/patching/regression-2026.test.js +0 -528
  694. package/ts_build/tests/patching/regression-2026.test.js.map +0 -1
  695. package/ts_build/tests/patching/transcriptMangleRegression.test.d.ts +0 -1
  696. package/ts_build/tests/patching/transcriptMangleRegression.test.js +0 -104
  697. package/ts_build/tests/patching/transcriptMangleRegression.test.js.map +0 -1
  698. package/ts_build/tests/plugins/language/languagePlugin-content-triggers.test.d.ts +0 -1
  699. package/ts_build/tests/plugins/language/languagePlugin-content-triggers.test.js +0 -294
  700. package/ts_build/tests/plugins/language/languagePlugin-content-triggers.test.js.map +0 -1
  701. package/ts_build/tests/plugins/language/languagePlugin-integration.test.d.ts +0 -1
  702. package/ts_build/tests/plugins/language/languagePlugin-integration.test.js +0 -343
  703. package/ts_build/tests/plugins/language/languagePlugin-integration.test.js.map +0 -1
  704. package/ts_build/tests/plugins/language/languagePlugin.test.d.ts +0 -1
  705. package/ts_build/tests/plugins/language/languagePlugin.test.js +0 -315
  706. package/ts_build/tests/plugins/language/languagePlugin.test.js.map +0 -1
  707. package/ts_build/tests/processes/managedProcessShim.test.d.ts +0 -1
  708. package/ts_build/tests/processes/managedProcessShim.test.js +0 -92
  709. package/ts_build/tests/processes/managedProcessShim.test.js.map +0 -1
  710. package/ts_build/tests/processors/Base64ImageDetector.test.d.ts +0 -1
  711. package/ts_build/tests/processors/Base64ImageDetector.test.js +0 -792
  712. package/ts_build/tests/processors/Base64ImageDetector.test.js.map +0 -1
  713. package/ts_build/tests/processors/CustomVariables.test.d.ts +0 -1
  714. package/ts_build/tests/processors/CustomVariables.test.js +0 -764
  715. package/ts_build/tests/processors/CustomVariables.test.js.map +0 -1
  716. package/ts_build/tests/processors/CustomVariablesBenchmark.test.d.ts +0 -1
  717. package/ts_build/tests/processors/CustomVariablesBenchmark.test.js +0 -179
  718. package/ts_build/tests/processors/CustomVariablesBenchmark.test.js.map +0 -1
  719. package/ts_build/tests/processors/HarmonyToolProcessor.test.d.ts +0 -1
  720. package/ts_build/tests/processors/HarmonyToolProcessor.test.js +0 -382
  721. package/ts_build/tests/processors/HarmonyToolProcessor.test.js.map +0 -1
  722. package/ts_build/tests/processors/TokenCompressor.test.d.ts +0 -1
  723. package/ts_build/tests/processors/TokenCompressor.test.js +0 -473
  724. package/ts_build/tests/processors/TokenCompressor.test.js.map +0 -1
  725. package/ts_build/tests/processors/ToolResponseCache.test.d.ts +0 -1
  726. package/ts_build/tests/processors/ToolResponseCache.test.js +0 -657
  727. package/ts_build/tests/processors/ToolResponseCache.test.js.map +0 -1
  728. package/ts_build/tests/processors/tools/boundedRetrievalTools.test.d.ts +0 -1
  729. package/ts_build/tests/processors/tools/boundedRetrievalTools.test.js +0 -57
  730. package/ts_build/tests/processors/tools/boundedRetrievalTools.test.js.map +0 -1
  731. package/ts_build/tests/processors/tools/grepToolResponse.test.d.ts +0 -1
  732. package/ts_build/tests/processors/tools/grepToolResponse.test.js +0 -77
  733. package/ts_build/tests/processors/tools/grepToolResponse.test.js.map +0 -1
  734. package/ts_build/tests/services/ConversionService.test.d.ts +0 -1
  735. package/ts_build/tests/services/ConversionService.test.js +0 -154
  736. package/ts_build/tests/services/ConversionService.test.js.map +0 -1
  737. package/ts_build/tests/services/DockerService.test.d.ts +0 -1
  738. package/ts_build/tests/services/DockerService.test.js +0 -22
  739. package/ts_build/tests/services/DockerService.test.js.map +0 -1
  740. package/ts_build/tests/services/Tools.test.d.ts +0 -1
  741. package/ts_build/tests/services/Tools.test.js +0 -1365
  742. package/ts_build/tests/services/Tools.test.js.map +0 -1
  743. package/ts_build/tests/services/ToolsService.setFunction.test.d.ts +0 -1
  744. package/ts_build/tests/services/ToolsService.setFunction.test.js +0 -51
  745. package/ts_build/tests/services/ToolsService.setFunction.test.js.map +0 -1
  746. package/ts_build/tests/services/WorkerReloadConfig.test.d.ts +0 -1
  747. package/ts_build/tests/services/WorkerReloadConfig.test.js +0 -86
  748. package/ts_build/tests/services/WorkerReloadConfig.test.js.map +0 -1
  749. package/ts_build/tests/test.spec.d.ts +0 -1
  750. package/ts_build/tests/test.spec.js +0 -139
  751. package/ts_build/tests/test.spec.js.map +0 -1
  752. package/ts_build/tests/unit/InputQueueManager.test.d.ts +0 -1
  753. package/ts_build/tests/unit/InputQueueManager.test.js +0 -104
  754. package/ts_build/tests/unit/InputQueueManager.test.js.map +0 -1
  755. package/ts_build/tests/unit/McpWebsocketTransport.test.d.ts +0 -1
  756. package/ts_build/tests/unit/McpWebsocketTransport.test.js +0 -47
  757. package/ts_build/tests/unit/McpWebsocketTransport.test.js.map +0 -1
  758. package/ts_build/tests/unit/agents/historyRollback.test.d.ts +0 -1
  759. package/ts_build/tests/unit/agents/historyRollback.test.js +0 -42
  760. package/ts_build/tests/unit/agents/historyRollback.test.js.map +0 -1
  761. package/ts_build/tests/unit/agents/tools/loadImageAsBase64.test.d.ts +0 -1
  762. package/ts_build/tests/unit/agents/tools/loadImageAsBase64.test.js +0 -67
  763. package/ts_build/tests/unit/agents/tools/loadImageAsBase64.test.js.map +0 -1
  764. package/ts_build/tests/unit/auth/jwtStore.test.d.ts +0 -1
  765. package/ts_build/tests/unit/auth/jwtStore.test.js +0 -46
  766. package/ts_build/tests/unit/auth/jwtStore.test.js.map +0 -1
  767. package/ts_build/tests/unit/auth/keyAuth.test.d.ts +0 -1
  768. package/ts_build/tests/unit/auth/keyAuth.test.js +0 -118
  769. package/ts_build/tests/unit/auth/keyAuth.test.js.map +0 -1
  770. package/ts_build/tests/unit/auth/keyManager.test.d.ts +0 -1
  771. package/ts_build/tests/unit/auth/keyManager.test.js +0 -96
  772. package/ts_build/tests/unit/auth/keyManager.test.js.map +0 -1
  773. package/ts_build/tests/unit/auth/registerIdentity.test.d.ts +0 -1
  774. package/ts_build/tests/unit/auth/registerIdentity.test.js +0 -92
  775. package/ts_build/tests/unit/auth/registerIdentity.test.js.map +0 -1
  776. package/ts_build/tests/unit/chat/ToolCommandModule.test.d.ts +0 -1
  777. package/ts_build/tests/unit/chat/ToolCommandModule.test.js +0 -61
  778. package/ts_build/tests/unit/chat/ToolCommandModule.test.js.map +0 -1
  779. package/ts_build/tests/unit/chat/historyCommandArgs.test.d.ts +0 -1
  780. package/ts_build/tests/unit/chat/historyCommandArgs.test.js +0 -29
  781. package/ts_build/tests/unit/chat/historyCommandArgs.test.js.map +0 -1
  782. package/ts_build/tests/unit/clients/AIClient.test.d.ts +0 -1
  783. package/ts_build/tests/unit/clients/AIClient.test.js +0 -342
  784. package/ts_build/tests/unit/clients/AIClient.test.js.map +0 -1
  785. package/ts_build/tests/unit/clients/anthropic.responseMetadata.test.d.ts +0 -1
  786. package/ts_build/tests/unit/clients/anthropic.responseMetadata.test.js +0 -77
  787. package/ts_build/tests/unit/clients/anthropic.responseMetadata.test.js.map +0 -1
  788. package/ts_build/tests/unit/clients/attribution.test.d.ts +0 -1
  789. package/ts_build/tests/unit/clients/attribution.test.js +0 -153
  790. package/ts_build/tests/unit/clients/attribution.test.js.map +0 -1
  791. package/ts_build/tests/unit/clients/http.responseMetadata.test.d.ts +0 -1
  792. package/ts_build/tests/unit/clients/http.responseMetadata.test.js +0 -77
  793. package/ts_build/tests/unit/clients/http.responseMetadata.test.js.map +0 -1
  794. package/ts_build/tests/unit/clients/openai.responseMetadata.test.d.ts +0 -1
  795. package/ts_build/tests/unit/clients/openai.responseMetadata.test.js +0 -86
  796. package/ts_build/tests/unit/clients/openai.responseMetadata.test.js.map +0 -1
  797. package/ts_build/tests/unit/clients/responseMetadata.test.d.ts +0 -1
  798. package/ts_build/tests/unit/clients/responseMetadata.test.js +0 -96
  799. package/ts_build/tests/unit/clients/responseMetadata.test.js.map +0 -1
  800. package/ts_build/tests/unit/clients/withRetry.test.d.ts +0 -1
  801. package/ts_build/tests/unit/clients/withRetry.test.js +0 -225
  802. package/ts_build/tests/unit/clients/withRetry.test.js.map +0 -1
  803. package/ts_build/tests/unit/commands/agents.test.d.ts +0 -1
  804. package/ts_build/tests/unit/commands/agents.test.js +0 -119
  805. package/ts_build/tests/unit/commands/agents.test.js.map +0 -1
  806. package/ts_build/tests/unit/commands/github-credentials.test.d.ts +0 -1
  807. package/ts_build/tests/unit/commands/github-credentials.test.js +0 -145
  808. package/ts_build/tests/unit/commands/github-credentials.test.js.map +0 -1
  809. package/ts_build/tests/unit/commands/misc.test.d.ts +0 -1
  810. package/ts_build/tests/unit/commands/misc.test.js +0 -70
  811. package/ts_build/tests/unit/commands/misc.test.js.map +0 -1
  812. package/ts_build/tests/unit/commands/remote.test.d.ts +0 -1
  813. package/ts_build/tests/unit/commands/remote.test.js +0 -70
  814. package/ts_build/tests/unit/commands/remote.test.js.map +0 -1
  815. package/ts_build/tests/unit/commands/sandbox.test.d.ts +0 -1
  816. package/ts_build/tests/unit/commands/sandbox.test.js +0 -258
  817. package/ts_build/tests/unit/commands/sandbox.test.js.map +0 -1
  818. package/ts_build/tests/unit/hashes.test.d.ts +0 -1
  819. package/ts_build/tests/unit/hashes.test.js +0 -25
  820. package/ts_build/tests/unit/hashes.test.js.map +0 -1
  821. package/ts_build/tests/unit/input-queue.test.d.ts +0 -1
  822. package/ts_build/tests/unit/input-queue.test.js +0 -32
  823. package/ts_build/tests/unit/input-queue.test.js.map +0 -1
  824. package/ts_build/tests/unit/login.test.d.ts +0 -1
  825. package/ts_build/tests/unit/login.test.js +0 -166
  826. package/ts_build/tests/unit/login.test.js.map +0 -1
  827. package/ts_build/tests/unit/modules/moduleLoading.test.d.ts +0 -1
  828. package/ts_build/tests/unit/modules/moduleLoading.test.js +0 -272
  829. package/ts_build/tests/unit/modules/moduleLoading.test.js.map +0 -1
  830. package/ts_build/tests/unit/plugins/pluginLoading.test.d.ts +0 -1
  831. package/ts_build/tests/unit/plugins/pluginLoading.test.js +0 -117
  832. package/ts_build/tests/unit/plugins/pluginLoading.test.js.map +0 -1
  833. package/ts_build/tests/unit/services/AgentSyncKnowhowWeb.test.d.ts +0 -1
  834. package/ts_build/tests/unit/services/AgentSyncKnowhowWeb.test.js +0 -32
  835. package/ts_build/tests/unit/services/AgentSyncKnowhowWeb.test.js.map +0 -1
  836. package/ts_build/tests/unit/services/KnowhowClient.test.d.ts +0 -1
  837. package/ts_build/tests/unit/services/KnowhowClient.test.js +0 -69
  838. package/ts_build/tests/unit/services/KnowhowClient.test.js.map +0 -1
  839. package/ts_build/tests/unit/services/LazyToolsService.test.d.ts +0 -1
  840. package/ts_build/tests/unit/services/LazyToolsService.test.js +0 -47
  841. package/ts_build/tests/unit/services/LazyToolsService.test.js.map +0 -1
  842. package/ts_build/tests/unit/services/Mcp.test.d.ts +0 -1
  843. package/ts_build/tests/unit/services/Mcp.test.js +0 -45
  844. package/ts_build/tests/unit/services/Mcp.test.js.map +0 -1
  845. package/ts_build/tests/unit/services/MinimalToolsService.test.d.ts +0 -1
  846. package/ts_build/tests/unit/services/MinimalToolsService.test.js +0 -320
  847. package/ts_build/tests/unit/services/MinimalToolsService.test.js.map +0 -1
  848. package/ts_build/tests/unit/services/RuntimeReloadService.test.d.ts +0 -1
  849. package/ts_build/tests/unit/services/RuntimeReloadService.test.js +0 -26
  850. package/ts_build/tests/unit/services/RuntimeReloadService.test.js.map +0 -1
  851. package/ts_build/tests/unit/services/SessionManager.test.d.ts +0 -1
  852. package/ts_build/tests/unit/services/SessionManager.test.js +0 -72
  853. package/ts_build/tests/unit/services/SessionManager.test.js.map +0 -1
  854. package/ts_build/tests/unit/services/SyncedAgentWatcher.test.d.ts +0 -1
  855. package/ts_build/tests/unit/services/SyncedAgentWatcher.test.js +0 -78
  856. package/ts_build/tests/unit/services/SyncedAgentWatcher.test.js.map +0 -1
  857. package/ts_build/tests/unit/services/SyncerService.test.d.ts +0 -1
  858. package/ts_build/tests/unit/services/SyncerService.test.js +0 -40
  859. package/ts_build/tests/unit/services/SyncerService.test.js.map +0 -1
  860. package/ts_build/tests/unit/tunnel.test.d.ts +0 -1
  861. package/ts_build/tests/unit/tunnel.test.js +0 -47
  862. package/ts_build/tests/unit/tunnel.test.js.map +0 -1
  863. package/ts_build/tests/unit/util/Trace.test.d.ts +0 -1
  864. package/ts_build/tests/unit/util/Trace.test.js +0 -107
  865. package/ts_build/tests/unit/util/Trace.test.js.map +0 -1
  866. package/ts_build/tests/unit/utils/http.test.d.ts +0 -1
  867. package/ts_build/tests/unit/utils/http.test.js +0 -69
  868. package/ts_build/tests/unit/utils/http.test.js.map +0 -1
  869. package/tsconfig.json +0 -34
  870. package/tslint.json +0 -11
@@ -1,468 +0,0 @@
1
- import { XmlToolCallProcessor } from "../src/processors/XmlToolCallProcessor";
2
- import { Message } from "../src/clients/types";
3
- import { restoreEscapedNewLines } from "../src/utils";
4
- import { escapeNewLines } from "../src/utils";
5
-
6
- describe("XmlToolCallProcessor", () => {
7
- let processor: XmlToolCallProcessor;
8
-
9
- beforeEach(() => {
10
- processor = new XmlToolCallProcessor();
11
- });
12
-
13
- describe("JSON-based XML tool calls", () => {
14
- it("should correctly parse JSON tool calls with string arguments (no double wrapping)", () => {
15
- const message: Message = {
16
- role: "assistant",
17
- content: `I'll help you with that task.
18
-
19
- <tool_call>
20
- {"name": "writeFileChunk", "arguments": "{\"filePath\": \"test.js\", \"content\": \"console.log('hello')\", \"isContinuing\": false, \"isDone\": true}"}
21
- </tool_call>
22
-
23
- This should create the file.`,
24
- };
25
-
26
- const processorFn = processor.createProcessor();
27
- processorFn([], [message]);
28
-
29
- expect(message.tool_calls).toBeDefined();
30
- expect(message.tool_calls!.length).toBe(1);
31
-
32
- const toolCall = message.tool_calls![0];
33
- expect(toolCall.function.name).toBe("writeFileChunk");
34
-
35
- // Parse the arguments to ensure they're not double-wrapped
36
- const args = JSON.parse(toolCall.function.arguments);
37
- expect(args.filePath).toBe("test.js");
38
- expect(args.content).toBe("console.log('hello')");
39
- expect(args.isContinuing).toBe(false);
40
- expect(args.isDone).toBe(true);
41
-
42
- // Ensure arguments is not a nested JSON string
43
- expect(typeof args).toBe("object");
44
- expect(typeof args.filePath).toBe("string");
45
- });
46
-
47
- it("should handle arguments as an object as well", () => {
48
- const message: Message = {
49
- role: "assistant",
50
- content: `
51
- Sure thing!
52
-
53
- <tool_call>
54
- {"name": "writeFileChunk", "arguments": {"filePath": "accumulate.spec.js", "content": "import { describe, expect, test } from '@jest/globals';\nimport { accumulate } from './accumulate';\n\ndescribe('accumulate()', () => {\n test('accumulation empty', () => {\n const accumulator = (e) => e * e;\n expect(accumulate([], accumulator)).toEqual([]);\n });\n\n test('accumulate squares', () => {\n const accumulator = (number) => number * number;\n const result = accumulate([1, 2, 3], accumulator);\n expect(result).toEqual([1, 4, 9]);\n });\n\n test('accumulate upcases', () => {\n const accumulator = (word) => word.toUpperCase();\n const result = accumulate('hello world'.split(/\s/), accumulator);\n expect(result).toEqual(['HELLO', 'WORLD']);\n });\n\n test('accumulate reversed strings', () => {\n const accumulator = (word) => word.split('').reverse().join('');\n const result = accumulate(\n 'the quick brown fox etc'.split(/\s/),\n accumulator,\n );\n expect(result).toEqual(['eht', 'kciuq', 'nworb', 'xof', 'cte']);\n });\n\n test('accumulate recursively', () => {\n const result = accumulate('a b c'.split(/\s/), (char) =>\n accumulate('1 2 3'.split(/\s/), (digit) => char + digit),\n );\n\n expect(result).toEqual([\n ['a1', 'a2', 'a3'],\n ['b1', 'b2', 'b3'],\n ['c1', 'c2', 'c3'],\n ]);\n });\n});", "isContinuing": false, "isDone": true}}
55
- </tool_call>`,
56
- };
57
- const processorFn = processor.createProcessor();
58
- processorFn([], [message]);
59
- expect(message.tool_calls).toBeDefined();
60
- expect(message.tool_calls!.length).toBe(1);
61
- const toolCall = message.tool_calls![0];
62
- expect(toolCall.function.name).toBe("writeFileChunk");
63
- const args = JSON.parse(toolCall.function.arguments);
64
- expect(args.filePath).toBe("accumulate.spec.js");
65
- expect(args.content).toContain(
66
- `import { describe, expect, test } from '@jest/globals'`
67
- );
68
- });
69
-
70
- it("should handle complex patches", () => {
71
- const message: Message = {
72
- role: "assistant",
73
- content: `
74
- Great! The tests are running, and the first test "accumulation empty" is passing. The other tests are still skipped, so I need to unskip them.
75
-
76
- Let me modify the test file to unskip the tests:
77
-
78
- <tool_call>
79
- {"name": "patchFile", "arguments": {"filePath": "accumulate.spec.js", "patch": "Index: ./accumulate.spec.js\n===================================================================\n--- ./accumulate.spec.js\n+++ ./accumulate.spec.js\n@@ -11,7 +11,7 @@\n test('accumulation empty', () => {\n const accumulator = (e) => e * e;\n expect(accumulate([], accumulator)).toEqual([]);\n });\n-\n+ \n xtest('accumulate squares', () => {\n const accumulator = (number) => number * number;\n const result = accumulate([1, 2, 3], accumulator);\n expect(result).toEqual([1, 4, 9]);\n });\n-\n+ \n xtest('accumulate upcases', () => {\n const accumulator = (word) => word.toUpperCase();\n const result = accumulate('hello world'.split(/\s/), accumulator);\n expect(result).toEqual(['HELLO', 'WORLD']);\n });\n-\n+ \n xtest('accumulate reversed strings', () => {\n const accumulator = (word) => word.split('').reverse().join('');\n const result = accumulate(\n 'the quick brown fox etc'.split(/\s/),\n accumulator,\n );\n expect(result).toEqual(['eht', 'kciuq', 'nworb', 'xof', 'cte']);\n });\n-\n+ \n xtest('accumulate recursively', () => {\n const result = accumulate('a b c'.split(/\s/), (char) =>\n accumulate('1 2 3'.split(/\s/), (digit) => char + digit),\n );\n\n expect(result).toEqual([\n ['a1', 'a2', 'a3'],\n ['b1', 'b2', 'b3'],\n ['c1', 'c2', 'c3'],\n ]);\n });\n "}}
80
- </tool_call>
81
- `,
82
- };
83
- const processorFn = processor.createProcessor();
84
- processorFn([], [message]);
85
- expect(message.tool_calls).toBeDefined();
86
- expect(message.tool_calls!.length).toBe(1);
87
- const toolCall = message.tool_calls![0];
88
- expect(toolCall.function.name).toBe("patchFile");
89
- const args = JSON.parse(toolCall.function.arguments);
90
- expect(args.filePath).toBe("accumulate.spec.js");
91
- expect(args.patch).toContain(`Index: ./accumulate.spec.js`);
92
- });
93
-
94
- it("should handle complex patches 2", () => {
95
- const message: Message = {
96
- role: "assistant",
97
- content: `
98
- I need to implement the \`accumulate\` function that takes a collection and an operation to apply to each element. Let me implement this from scratch.
99
-
100
- The function should:
101
- 1. Take an array (or any iterable) and a function to apply
102
- 2. Apply the function to each element
103
- 3. Return a new array with the results
104
- 4. Not use built-in map functions
105
-
106
- Here's my implementation:
107
-
108
- <tool_call>
109
- {"name": "patchFile", "arguments": {"filePath": "accumulate.js", "patch": "Index: ./accumulate.js\n===================================================================\n--- ./accumulate.js\n+++ ./accumulate.js\n@@ -1,8 +1,10 @@\n //\n // This is only a SKELETON file for the 'Accumulate' exercise. It's been provided as a\n // convenience to get you started writing code faster.\n //\n+\n export const accumulate = (collection, operation) => {\n- throw new Error('Remove this line and implement the function');\n+ const result = [];\n+ for (let i = 0; i < collection.length; i++) {\n+ result.push(operation(collection[i]));\n+ }\n+ return result;\n };\n\n //\n // This is only a SKELETON file for the 'Accumulate' exercise. It's been provided as a\n // convenience to get you started writing code faster.\n //\n"}}
110
- </tool_call>
111
- `,
112
- };
113
- const processorFn = processor.createProcessor();
114
- processorFn([], [message]);
115
- expect(message.tool_calls).toBeDefined();
116
- expect(message.tool_calls!.length).toBe(1);
117
- const toolCall = message.tool_calls![0];
118
- expect(toolCall.function.name).toBe("patchFile");
119
- const args = JSON.parse(toolCall.function.arguments);
120
- expect(args.filePath).toBe("accumulate.js");
121
- expect(args.patch).toContain(`Index: ./accumulate.js`);
122
- });
123
-
124
- it("should handle complex patches 3", () => {
125
- const message: Message = {
126
- role: "assistant",
127
- content:
128
- "Great! The tests are now passing, but the test for \"accumulate squares\" is still skipped. Let me update the test file to unskip it:\n\n<tool_call>\n{\"name\": \"patchFile\", \"arguments\": {\"filePath\": \"accumulate.spec.js\", \"patch\": \"Index: ./accumulate.spec.js\\n===================================================================\\n--- ./accumulate.spec.js\\n+++ ./accumulate.spec.js\\n@@ -1,42 +1,42 @@\\n import { describe, expect, test, xtest } from '@jest/globals';\\n import { accumulate } from './accumulate';\\n\\n describe('accumulate()', () => {\\n test('accumulation empty', () => {\\n const accumulator = (e) => e * e;\\n expect(accumulate([], accumulator)).toEqual([]);\\n });\\n-\\n- xtest('accumulate squares', () => {\\n- const accumulator = (number) => number * number;\\n- const result = accumulate([1, 2, 3], accumulator);\\n- expect(result).toEqual([1, 4, 9]);\\n- });\\n+\\n+ test('accumulate squares', () => {\\n+ const accumulator = (number) => number * number;\\n+ const result = accumulate([1, 2, 3], accumulator);\\n+ expect(result).toEqual([1, 4, 9]);\\n+ });\\n\\n xtest('accumulate upcases', () => {\\n const accumulator = (word) => word.toUpperCase();\\n const result = accumulate('hello world'.split(/\\s/), accumulator);\\n expect(result).toEqual(['HELLO', 'WORLD']);\\n });\\n\\n xtest('accumulate reversed strings', () => {\\n const accumulator = (word) => word.split('').reverse().join('');\\n const result = accumulate(\\n 'the quick brown fox etc'.split(/\\s/),\\n accumulator,\\n );\\n expect(result).toEqual(['eht', 'kciuq', 'nworb', 'xof', 'cte']);\\n });\\n\\n xtest('accumulate recursively', () => {\\n const result = accumulate('a b c'.split(/\\s/), (char) =>\\n accumulate('1 2 3'.split(/\\s/), (digit) => char + digit),\\n );\\n\\n expect(result).toEqual([\\n ['a1', 'a2', 'a3'],\\n ['b1', 'b2', 'b3'],\\n ['c1', 'c2', 'c3'],\\n ]);\\n });\\n });\\n\"}}\n</tool_call>",
129
- };
130
- const processorFn = processor.createProcessor();
131
- processorFn([], [message]);
132
- expect(message.tool_calls).toBeDefined();
133
- expect(message.tool_calls!.length).toBe(1);
134
- const toolCall = message.tool_calls![0];
135
- expect(toolCall.function.name).toBe("patchFile");
136
- const args = JSON.parse(toolCall.function.arguments);
137
- expect(args.filePath).toBe("accumulate.spec.js");
138
- expect(args.patch).toContain(`Index: ./accumulate.spec.js`);
139
- });
140
-
141
- it("should produce arguments compatible with ToolsService.callTool logic", () => {
142
- const message: Message = {
143
- role: "assistant",
144
- content: `
145
- I need to implement the \`accumulate\` function that takes a collection and an operation to apply to each element. Let me implement this from scratch.
146
-
147
- The function should:
148
- 1. Take an array (or any iterable) and a function to apply
149
- 2. Apply the function to each element
150
- 3. Return a new array with the results
151
- 4. Not use built-in map functions
152
-
153
- Here's my implementation:
154
-
155
- <tool_call>
156
- {"name": "patchFile", "arguments": {"filePath": "accumulate.js", "patch": "Index: ./accumulate.js\\n===================================================================\\n--- ./accumulate.js\\n+++ ./accumulate.js\\n@@ -1,8 +1,10 @@\\n //\\n // This is only a SKELETON file for the 'Accumulate' exercise. It's been provided as a\\n // convenience to get you started writing code faster.\\n //\\n+\\n export const accumulate = (collection, operation) => {\\n- throw new Error('Remove this line and implement the function');\\n+ const result = [];\\n+ for (let i = 0; i < collection.length; i++) {\\n+ result.push(operation(collection[i]));\\n+ }\\n+ return result;\\n };\\n\\n //\\n // This is only a SKELETON file for the 'Accumulate' exercise. It's been provided as a\\n // convenience to get you started writing code faster.\\n //\\n"}}
157
- </tool_call>
158
- `,
159
- };
160
-
161
- const processorFn = processor.createProcessor();
162
- processorFn([], [message]);
163
-
164
- expect(message.tool_calls).toBeDefined();
165
- expect(message.tool_calls!.length).toBe(1);
166
-
167
- const toolCall = message.tool_calls![0];
168
- expect(toolCall.function.name).toBe("patchFile");
169
-
170
- // Now simulate the exact logic from ToolsService.callTool
171
- const functionName = toolCall.function.name;
172
- let functionArgs;
173
- let parseError: Error | null = null;
174
-
175
- try {
176
- // This is the exact logic from ToolsService.callTool line 167-170
177
- functionArgs =
178
- typeof toolCall.function.arguments === "string"
179
- ? JSON.parse(restoreEscapedNewLines(toolCall.function.arguments))
180
- : toolCall.function.arguments;
181
- } catch (error) {
182
- parseError = error as Error;
183
- }
184
-
185
- // Should not have any parsing errors
186
- expect(parseError).toBeNull();
187
- expect(functionArgs).toBeDefined();
188
- expect(typeof functionArgs).toBe("object");
189
-
190
- // Should have the correct structure
191
- expect(functionArgs.filePath).toBe("accumulate.js");
192
- expect(functionArgs.patch).toBeDefined();
193
- expect(typeof functionArgs.patch).toBe("string");
194
- expect(functionArgs.patch).toContain("Index: ./accumulate.js");
195
-
196
- // Additional validation: ensure arguments is a valid JSON string
197
- expect(typeof toolCall.function.arguments).toBe("string");
198
-
199
- // Test that the arguments can be JSON.parsed without errors
200
- let parsedArgs;
201
- expect(() => {
202
- parsedArgs = JSON.parse(toolCall.function.arguments);
203
- }).not.toThrow();
204
-
205
- // Verify the parsed structure matches what we expect
206
- expect(parsedArgs).toEqual(functionArgs);
207
-
208
- // Ensure no double-wrapping (arguments should not be a stringified JSON string)
209
- expect(typeof parsedArgs.filePath).toBe("string");
210
- expect(typeof parsedArgs.patch).toBe("string");
211
- // The patch should NOT be a JSON string, but actual string content
212
- expect(() => JSON.parse(parsedArgs.patch)).toThrow(); // Should throw because patch is actual diff content, not JSON
213
-
214
- console.log("✅ Tool call arguments format validation passed");
215
- console.log("Function name:", functionName);
216
- console.log("Arguments type:", typeof toolCall.function.arguments);
217
- console.log("Parsed args keys:", Object.keys(functionArgs));
218
- });
219
-
220
- it("should correctly parse JSON tool calls with object arguments", () => {
221
- const message: Message = {
222
- role: "assistant",
223
- content: `<tool_call>
224
- {"name": "readFile", "arguments": {"filePath": "example.txt"}}
225
- </tool_call>`,
226
- };
227
-
228
- const processorFn = processor.createProcessor();
229
- processorFn([], [message]);
230
-
231
- expect(message.tool_calls).toBeDefined();
232
- expect(message.tool_calls!.length).toBe(1);
233
-
234
- const toolCall = message.tool_calls![0];
235
- expect(toolCall.function.name).toBe("readFile");
236
-
237
- const args = JSON.parse(toolCall.function.arguments);
238
- expect(args.filePath).toBe("example.txt");
239
- });
240
- });
241
-
242
- describe("Attribute-based XML tool calls", () => {
243
- it("should correctly parse attribute-based tool calls", () => {
244
- const message: Message = {
245
- role: "assistant",
246
- content: `<tool_call name="readFile">{"filePath": "test.txt"}</tool_call>`,
247
- };
248
-
249
- const processorFn = processor.createProcessor();
250
- processorFn([], [message]);
251
-
252
- expect(message.tool_calls).toBeDefined();
253
- expect(message.tool_calls!.length).toBe(1);
254
-
255
- const toolCall = message.tool_calls![0];
256
- expect(toolCall.function.name).toBe("readFile");
257
-
258
- const args = JSON.parse(toolCall.function.arguments);
259
- expect(args.filePath).toBe("test.txt");
260
- });
261
-
262
- it("should correctly parse attribute-based tool calls with arguments attribute", () => {
263
- const message: Message = {
264
- role: "assistant",
265
- content: `<tool_call name="execCommand" arguments='{"command": "ls -la"}'/>`,
266
- };
267
-
268
- const processorFn = processor.createProcessor();
269
- processorFn([], [message]);
270
-
271
- expect(message.tool_calls).toBeDefined();
272
- expect(message.tool_calls!.length).toBe(1);
273
-
274
- const toolCall = message.tool_calls![0];
275
- expect(toolCall.function.name).toBe("execCommand");
276
-
277
- const args = JSON.parse(toolCall.function.arguments);
278
- expect(args.command).toBe("ls -la");
279
- });
280
- });
281
-
282
- describe("Nested XML tool calls", () => {
283
- it("should correctly parse nested XML parameter format", () => {
284
- const message: Message = {
285
- role: "assistant",
286
- content: `<tool_call>
287
- <invoke name="readFile">
288
- <parameter name="filePath">example.txt</parameter>
289
- </invoke>
290
- </tool_call>`,
291
- };
292
-
293
- const processorFn = processor.createProcessor();
294
- processorFn([], [message]);
295
-
296
- expect(message.tool_calls).toBeDefined();
297
- expect(message.tool_calls!.length).toBe(1);
298
-
299
- const toolCall = message.tool_calls![0];
300
- expect(toolCall.function.name).toBe("readFile");
301
-
302
- const args = JSON.parse(toolCall.function.arguments);
303
- expect(args.filePath).toBe("example.txt");
304
- });
305
- });
306
-
307
- describe("Content cleaning", () => {
308
- it("should preserve non-XML content in the message", () => {
309
- const message: Message = {
310
- role: "assistant",
311
- content: `I need to read the file first.
312
-
313
- <tool_call>
314
- {"name": "readFile", "arguments": "{\"filePath\": \"test.js\"}"}
315
- </tool_call>
316
-
317
- This will help me understand the content.`,
318
- };
319
-
320
- const processorFn = processor.createProcessor();
321
- processorFn([], [message]);
322
-
323
- // Content should still contain the non-XML parts
324
- expect(message.content).toContain("I need to read the file first.");
325
- expect(message.content).toContain(
326
- "This will help me understand the content."
327
- );
328
-
329
- // Tool calls should be extracted
330
- expect(message.tool_calls).toBeDefined();
331
- expect(message.tool_calls!.length).toBe(1);
332
- });
333
- });
334
-
335
- describe("Multiple tool calls", () => {
336
- it("should handle multiple tool calls in one message", () => {
337
- const message: Message = {
338
- role: "assistant",
339
- content: `I'll read the file and then write to another one.
340
-
341
- <tool_call>
342
- {"name": "readFile", "arguments": "{\"filePath\": \"input.txt\"}"}
343
- </tool_call>
344
-
345
- <tool_call>
346
- {"name": "writeFileChunk", "arguments": "{\"filePath\": \"output.txt\", \"content\": \"processed data\", \"isContinuing\": false, \"isDone\": true}"}
347
- </tool_call>`,
348
- };
349
-
350
- const processorFn = processor.createProcessor();
351
- processorFn([], [message]);
352
-
353
- expect(message.tool_calls).toBeDefined();
354
- expect(message.tool_calls!.length).toBe(2);
355
-
356
- // First tool call
357
- const firstCall = message.tool_calls![0];
358
- expect(firstCall.function.name).toBe("readFile");
359
- const firstArgs = JSON.parse(firstCall.function.arguments);
360
- expect(firstArgs.filePath).toBe("input.txt");
361
-
362
- // Second tool call
363
- const secondCall = message.tool_calls![1];
364
- expect(secondCall.function.name).toBe("writeFileChunk");
365
- const secondArgs = JSON.parse(secondCall.function.arguments);
366
- expect(secondArgs.filePath).toBe("output.txt");
367
- expect(secondArgs.content).toBe("processed data");
368
- expect(secondArgs.isContinuing).toBe(false);
369
- expect(secondArgs.isDone).toBe(true);
370
- });
371
- });
372
-
373
- describe("Edge cases", () => {
374
- it("should not process non-assistant messages", () => {
375
- const message: Message = {
376
- role: "user",
377
- content: `<tool_call>
378
- {"name": "readFile", "arguments": "{\"filePath\": \"test.txt\"}"}
379
- </tool_call>`,
380
- };
381
-
382
- const processorFn = processor.createProcessor();
383
- processorFn([], [message]);
384
-
385
- expect(message.tool_calls).toBeUndefined();
386
- });
387
-
388
- it("should not process messages that already have tool_calls", () => {
389
- const message: Message = {
390
- role: "assistant",
391
- content: `<tool_call>
392
- {"name": "readFile", "arguments": "{\"filePath\": \"test.txt\"}"}
393
- </tool_call>`,
394
- tool_calls: [
395
- {
396
- id: "existing_call",
397
- type: "function",
398
- function: {
399
- name: "existingTool",
400
- arguments: "{}",
401
- },
402
- },
403
- ],
404
- };
405
-
406
- const processorFn = processor.createProcessor();
407
- processorFn([], [message]);
408
-
409
- // Should still have only the original tool call
410
- expect(message.tool_calls!.length).toBe(1);
411
- expect(message.tool_calls![0].id).toBe("existing_call");
412
- });
413
-
414
- it("should handle malformed JSON gracefully", () => {
415
- const message: Message = {
416
- role: "assistant",
417
- content: `<tool_call>
418
- {"name": "readFile", "arguments": "invalid json here"}
419
- </tool_call>`,
420
- };
421
-
422
- const processorFn = processor.createProcessor();
423
- processorFn([], [message]);
424
-
425
- expect(message.tool_calls).toBeDefined();
426
- expect(message.tool_calls!.length).toBe(1);
427
-
428
- const toolCall = message.tool_calls![0];
429
- expect(toolCall.function.name).toBe("readFile");
430
- // Should fallback to wrapping in input object
431
- const args = JSON.parse(toolCall.function.arguments);
432
- expect(args.input).toBe("invalid json here");
433
- });
434
- });
435
-
436
- describe("Incomplete XML tool calls", () => {
437
- it("should handle incomplete tool calls with missing closing tags", () => {
438
- const message: Message = {
439
- role: "assistant",
440
- content: `I see the issue. Let me make a clean patch with all the changes:
441
-
442
- <tool_call>
443
- {"name": "patchFile", "arguments": {"filePath": "bank-account.js", "patch": "//=============================================================================\\n// This is the complete implementation for the Bank Account exercise\\n//=============================================================================\\n\\nexport class BankAccount {\\n constructor() {\\n this._balance = 0;\\n this._isOpen = false;\\n }\\n\\n open() {\\n if (this._isOpen) {\\n throw new ValueError();\\n }\\n this._isOpen = true;\\n this._balance = 0;\\n }\\n\\n close() {\\n if (!this._isOpen) {\\n throw new ValueError();\\n }\\n this._isOpen = false;\\n }\\n\\n deposit(amount) {\\n if (!this._isOpen || amount <= 0) {\\n throw new ValueError();\\n }\\n this._balance += amount;\\n }\\n\\n withdraw(amount) {\\n if (!this._isOpen || amount <= 0 || amount > this._balance) {\\n throw new ValueError();\\n }\\n this._balance -= amount;\\n }\\n\\n get balance() {\\n if (!this._isOpen) {\\n throw new ValueError();\\n }\\n return this._balance;\\n }\\n}\\n\\nexport class ValueError extends Error {\\n constructor() {\\n super('Bank account error');\\n }\\n}"}}`,
444
- };
445
-
446
- const processorFn = processor.createProcessor();
447
- processorFn([], [message]);
448
-
449
- expect(message.tool_calls).toBeDefined();
450
- expect(message.tool_calls!.length).toBe(1);
451
-
452
- const toolCall = message.tool_calls![0];
453
- expect(toolCall.function.name).toBe("patchFile");
454
-
455
- // Parse the arguments to ensure they're correctly extracted despite missing closing tag
456
- const args = JSON.parse(toolCall.function.arguments);
457
- expect(args.filePath).toBe("bank-account.js");
458
- expect(args.patch).toBeDefined();
459
- expect(typeof args.patch).toBe("string");
460
- expect(args.patch).toContain("export class BankAccount");
461
- expect(args.patch).toContain("export class ValueError");
462
-
463
- // Verify the processor correctly handled the incomplete XML (missing </tool_call>)
464
- expect(toolCall.id).toBeDefined();
465
- expect(toolCall.type).toBe("function");
466
- });
467
- });
468
- });
@@ -1,200 +0,0 @@
1
- /**
2
- * Tests for the BaseAgent interrupt / makeInterruptible mechanism.
3
- *
4
- * These verify the fix for the "agent gets stuck after /poke" bug:
5
- * 1. A stale (slow) operation that finishes AFTER its window was interrupted
6
- * must NOT clobber a newer interruptible window's resolver.
7
- * 2. An interrupt() arriving with no active window is a no-op — there is
8
- * nothing to interrupt, so it must NOT be queued (a queued interrupt would
9
- * pre-empt the next tool call and drop its result). Any message supplied
10
- * with the poke is still added as a pending user message.
11
- * 3. Normal (non-interrupted) resolution still works.
12
- * 4. Errors propagate when not interrupted, and are swallowed when interrupted.
13
- */
14
-
15
- // Minimal harness exposing the protected members of BaseAgent's interrupt logic.
16
- // We replicate the class shape just enough to exercise makeInterruptible/interrupt
17
- // by importing the real implementation would require constructing a full agent
18
- // (abstract, many deps). Instead we test the exact algorithm via a tiny stand-in
19
- // that mirrors src/agents/base/base.ts. If the base implementation changes, these
20
- // tests document the intended contract.
21
-
22
- class InterruptHarness {
23
- private _interruptResolve: (() => void) | null = null;
24
- private _interruptToken = 0;
25
- public pendingUserMessages: any[] = [];
26
-
27
- addPendingUserMessage(m: any) {
28
- this.pendingUserMessages.push(m);
29
- }
30
-
31
- makeInterruptible<T>(promise: Promise<T>, interruptValue: T): Promise<T> {
32
- return new Promise<T>((resolve, reject) => {
33
- const myToken = ++this._interruptToken;
34
- let settled = false;
35
-
36
- const finish = (fn: () => void) => {
37
- if (settled) return;
38
- settled = true;
39
- if (this._interruptToken === myToken) {
40
- this._interruptResolve = null;
41
- }
42
- fn();
43
- };
44
-
45
- this._interruptResolve = () => finish(() => resolve(interruptValue));
46
-
47
- promise
48
- .then((result) => {
49
- finish(() => resolve(result));
50
- })
51
- .catch((err) => {
52
- if (settled) return;
53
- finish(() => reject(err));
54
- });
55
- });
56
- }
57
-
58
- interrupt(message = "User interrupted this action you were waiting on") {
59
- if (
60
- message &&
61
- message !== "User interrupted this action you were waiting on"
62
- ) {
63
- this.addPendingUserMessage({ role: "user", content: message });
64
- }
65
- if (this._interruptResolve) {
66
- this._interruptResolve();
67
- }
68
- // No active window -> nothing to interrupt. Do NOT queue it.
69
- }
70
-
71
- get hasActiveResolver() {
72
- return this._interruptResolve !== null;
73
- }
74
- }
75
-
76
- const deferred = <T,>() => {
77
- let resolve!: (v: T) => void;
78
- let reject!: (e: any) => void;
79
- const promise = new Promise<T>((res, rej) => {
80
- resolve = res;
81
- reject = rej;
82
- });
83
- return { promise, resolve, reject };
84
- };
85
-
86
- describe("BaseAgent interrupt / makeInterruptible", () => {
87
- test("normal resolution passes through the real result", async () => {
88
- const h = new InterruptHarness();
89
- const wrapped = h.makeInterruptible(Promise.resolve("real"), "INT");
90
- await expect(wrapped).resolves.toBe("real");
91
- });
92
-
93
- test("interrupt() resolves the active window with the interrupt value", async () => {
94
- const h = new InterruptHarness();
95
- const slow = deferred<string>();
96
- const wrapped = h.makeInterruptible(slow.promise, "INT");
97
- h.interrupt();
98
- await expect(wrapped).resolves.toBe("INT");
99
- // The slow op finishing later must not throw or affect anything.
100
- slow.resolve("late");
101
- await slow.promise;
102
- });
103
-
104
- test("STALE completion does NOT clobber a newer window (the stuck bug)", async () => {
105
- const h = new InterruptHarness();
106
-
107
- // Window 1: a slow tool call (like sleep 360).
108
- const slowTool = deferred<string>();
109
- const w1 = h.makeInterruptible(slowTool.promise, "INT1");
110
-
111
- // User pokes -> window 1 resolves with the interrupt value.
112
- h.interrupt();
113
- await expect(w1).resolves.toBe("INT1");
114
-
115
- // Agent moves on to window 2 (the next AI completion).
116
- const nextOp = deferred<string>();
117
- const w2 = h.makeInterruptible(nextOp.promise, "INT2");
118
-
119
- // Now the OLD slow tool finally finishes in the background.
120
- // Before the fix, this stale .then() would null out window 2's resolver.
121
- slowTool.resolve("stale-tool-result");
122
- // Give microtasks a chance to run.
123
- await Promise.resolve();
124
- await Promise.resolve();
125
-
126
- // Window 2 must still be interruptible — resolver intact.
127
- expect(h.hasActiveResolver).toBe(true);
128
-
129
- // And interrupting window 2 must still work.
130
- h.interrupt();
131
- await expect(w2).resolves.toBe("INT2");
132
- });
133
-
134
- test("stale completion does not resolve the newer window with old result", async () => {
135
- const h = new InterruptHarness();
136
- const slowTool = deferred<string>();
137
- const w1 = h.makeInterruptible(slowTool.promise, "INT1");
138
- h.interrupt();
139
- await expect(w1).resolves.toBe("INT1");
140
-
141
- const nextOp = deferred<string>();
142
- const w2 = h.makeInterruptible(nextOp.promise, "INT2");
143
-
144
- // Old tool completes late with its (now irrelevant) result.
145
- slowTool.resolve("stale-tool-result");
146
- await Promise.resolve();
147
- await Promise.resolve();
148
-
149
- // Window 2 resolves with ITS OWN op result, not the stale one.
150
- nextOp.resolve("fresh-result");
151
- await expect(w2).resolves.toBe("fresh-result");
152
- });
153
-
154
- test("interrupt() with no active window is a no-op (NOT queued)", async () => {
155
- const h = new InterruptHarness();
156
- // No active window yet.
157
- expect(h.hasActiveResolver).toBe(false);
158
- h.interrupt(); // nothing to interrupt -> no-op
159
-
160
- // The next window must NOT be pre-empted — it should run its real op and
161
- // resolve with the real result, not the interrupt value.
162
- const op = deferred<string>();
163
- const w = h.makeInterruptible(op.promise, "INT");
164
- op.resolve("real-result");
165
- await expect(w).resolves.toBe("real-result");
166
- });
167
-
168
- test("errors propagate when not interrupted", async () => {
169
- const h = new InterruptHarness();
170
- const failing = Promise.reject(new Error("boom"));
171
- const wrapped = h.makeInterruptible(failing, "INT");
172
- await expect(wrapped).rejects.toThrow("boom");
173
- });
174
-
175
- test("errors are swallowed if the window was already interrupted", async () => {
176
- const h = new InterruptHarness();
177
- const failing = deferred<string>();
178
- const wrapped = h.makeInterruptible(failing.promise, "INT");
179
- h.interrupt();
180
- await expect(wrapped).resolves.toBe("INT");
181
- // The underlying op rejects late — must not cause an unhandled rejection
182
- // or re-settle the already-resolved window.
183
- failing.reject(new Error("late-boom"));
184
- await failing.promise.catch(() => {});
185
- });
186
-
187
- test("/poke with a message queues it as a pending user message", () => {
188
- const h = new InterruptHarness();
189
- h.interrupt("please check the logs");
190
- expect(h.pendingUserMessages).toEqual([
191
- { role: "user", content: "please check the logs" },
192
- ]);
193
- });
194
-
195
- test("/poke with the default reason does NOT add a pending user message", () => {
196
- const h = new InterruptHarness();
197
- h.interrupt();
198
- expect(h.pendingUserMessages).toEqual([]);
199
- });
200
- });