@tyvm/knowhow 0.0.158 → 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 +2 -2
  2. package/ts_build/package.json +2 -2
  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,704 +0,0 @@
1
- import { Command } from "commander";
2
- import { execSync } from "child_process";
3
- import * as fs from "fs";
4
- import * as path from "path";
5
- import * as os from "os";
6
- import { getConfig, getGlobalConfig, updateConfig, updateGlobalConfig } from "../config";
7
- import * as readline from "readline";
8
-
9
- // Default built-in modules that `knowhow modules setup` adds to the config.
10
- export const BUILTIN_MODULES = [
11
- "@tyvm/knowhow-module-script",
12
- "@tyvm/knowhow-module-terminal",
13
- ];
14
-
15
- /**
16
- * Returns the path to the .knowhow directory (used as npm install prefix).
17
- * For global: ~/.knowhow
18
- * For local: <cwd>/.knowhow
19
- */
20
- function getKnowhowDir(isGlobal: boolean): string {
21
- if (isGlobal) {
22
- return path.join(os.homedir(), ".knowhow");
23
- }
24
- return path.join(process.cwd(), ".knowhow");
25
- }
26
-
27
- /**
28
- * Ensures the .knowhow directory has a minimal package.json so
29
- * `npm install --prefix` works cleanly without polluting the project root.
30
- */
31
- function ensureKnowhowPackageJson(knowhowDir: string): void {
32
- const pkgPath = path.join(knowhowDir, "package.json");
33
- if (!fs.existsSync(pkgPath)) {
34
- fs.mkdirSync(knowhowDir, { recursive: true });
35
- fs.writeFileSync(
36
- pkgPath,
37
- JSON.stringify({ name: "knowhow-modules", private: true, version: "1.0.0" }, null, 2)
38
- );
39
- }
40
- }
41
-
42
- /**
43
- * Options that control how a module is installed via npm.
44
- */
45
- interface InstallOptions {
46
- /**
47
- * When true, force npm to run the module's install/build lifecycle scripts
48
- * (preinstall/install/postinstall) in the foreground.
49
- *
50
- * This matters for native modules like `isolated-vm`, whose `install` script
51
- * (`node-gyp-build || node-gyp rebuild`) selects/copies the correct prebuilt
52
- * binary (or compiles from source). npm 11 and some org/CI policies block
53
- * install scripts by default, which leaves native deps in a broken/mismatched
54
- * state that later aborts the process at require-time (e.g. the
55
- * `IsolateSpecificSize` assertion). Passing this flag ensures those scripts
56
- * actually run so the right binary is in place.
57
- */
58
- allowScripts?: boolean;
59
- }
60
-
61
- /**
62
- * Run `npm install --prefix <knowhowDir> <mod>` so that modules land in
63
- * .knowhow/node_modules rather than the project's node_modules.
64
- *
65
- * When `allowScripts` is set, we explicitly force install lifecycle scripts to
66
- * run (`--foreground-scripts --ignore-scripts=false`) so native modules build
67
- * correctly even under npm 11 / restrictive org policies that skip scripts by
68
- * default.
69
- */
70
- function npmInstallToKnowhow(
71
- mod: string,
72
- knowhowDir: string,
73
- options: InstallOptions = {}
74
- ): void {
75
- const scriptFlags = options.allowScripts
76
- ? " --foreground-scripts --ignore-scripts=false"
77
- : "";
78
- execSync(`npm install --prefix "${knowhowDir}" ${mod}${scriptFlags}`, {
79
- stdio: "inherit",
80
- encoding: "utf-8",
81
- });
82
-
83
- // When scripts weren't explicitly allowed, npm 11+ (and restrictive org/CI
84
- // policies) silently *skip* package install/build scripts. For native addons
85
- // like isolated-vm this leaves the package present but its native binary
86
- // unbuilt — which later aborts at runtime with a cryptic error. Detect that
87
- // situation now and tell the user exactly how to fix it (re-run with
88
- // --allow-scripts) rather than letting them hit the runtime crash.
89
- if (!options.allowScripts) {
90
- warnIfInstallScriptsSkipped(knowhowDir);
91
- }
92
- }
93
-
94
- /**
95
- * Names of lifecycle scripts that run during `npm install` and typically build
96
- * native code. If a freshly-installed package declares any of these AND we
97
- * installed without allowing scripts, they were skipped.
98
- */
99
- const INSTALL_LIFECYCLE_SCRIPTS = ["preinstall", "install", "postinstall"];
100
-
101
- /**
102
- * Walk the installed dependency tree under <knowhowDir>/node_modules and return
103
- * the names of packages that declare native/build install-lifecycle scripts.
104
- *
105
- * This reads the *actually installed* package.json files (rather than querying
106
- * the registry) so it works offline, reflects the real resolved tree, and
107
- * catches transitive dependencies (e.g. isolated-vm pulled in by a module).
108
- */
109
- function findPackagesWithInstallScripts(knowhowDir: string): string[] {
110
- const nodeModules = path.join(knowhowDir, "node_modules");
111
- const found = new Set<string>();
112
-
113
- const readPkgScripts = (pkgDir: string): void => {
114
- const pkgJsonPath = path.join(pkgDir, "package.json");
115
- if (!fs.existsSync(pkgJsonPath)) return;
116
- try {
117
- const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, "utf-8"));
118
- const scripts = pkg.scripts ?? {};
119
- const hasInstallScript = INSTALL_LIFECYCLE_SCRIPTS.some(
120
- (s) => typeof scripts[s] === "string" && scripts[s].trim().length > 0
121
- );
122
- if (hasInstallScript && pkg.name) {
123
- found.add(pkg.name);
124
- }
125
- } catch {
126
- // ignore malformed package.json
127
- }
128
- };
129
-
130
- const scanDir = (dir: string): void => {
131
- if (!fs.existsSync(dir)) return;
132
- let entries: fs.Dirent[] = [];
133
- try {
134
- entries = fs.readdirSync(dir, { withFileTypes: true });
135
- } catch {
136
- return;
137
- }
138
- for (const entry of entries) {
139
- if (!entry.isDirectory()) continue;
140
- if (entry.name === ".bin" || entry.name === ".cache") continue;
141
- const full = path.join(dir, entry.name);
142
- if (entry.name.startsWith("@")) {
143
- // scope directory — recurse one level into the scoped packages
144
- scanDir(full);
145
- continue;
146
- }
147
- readPkgScripts(full);
148
- // Recurse into nested node_modules for hoisting edge cases.
149
- const nested = path.join(full, "node_modules");
150
- if (fs.existsSync(nested)) scanDir(nested);
151
- }
152
- };
153
-
154
- scanDir(nodeModules);
155
- return Array.from(found).sort();
156
- }
157
-
158
- /**
159
- * Check whether the just-installed tree contains packages with install scripts
160
- * (that were skipped because --allow-scripts wasn't passed) and, if so, print a
161
- * clear warning telling the user to re-run with --allow-scripts.
162
- */
163
- function warnIfInstallScriptsSkipped(knowhowDir: string): void {
164
- let pkgsWithScripts: string[] = [];
165
- try {
166
- pkgsWithScripts = findPackagesWithInstallScripts(knowhowDir);
167
- } catch {
168
- return;
169
- }
170
- if (pkgsWithScripts.length === 0) return;
171
-
172
- console.warn(
173
- "\nāš ļø Some installed packages have native install/build scripts that may have\n" +
174
- " been skipped (npm 11+ blocks install scripts by default):\n" +
175
- pkgsWithScripts.map((p) => ` • ${p}`).join("\n") +
176
- "\n\n If a module fails to load at runtime (e.g. isolated-vm), re-run the\n" +
177
- " install with --allow-scripts so these build steps can run:\n\n" +
178
- " knowhow modules install <module> --allow-scripts\n" +
179
- " # or\n" +
180
- " knowhow modules setup --allow-scripts\n"
181
- );
182
- }
183
-
184
- /**
185
- * Returns true if a module package is already installed in the given knowhow dir.
186
- */
187
- function isModuleInstalled(mod: string, knowhowDir: string): boolean {
188
- try {
189
- require.resolve(mod, {
190
- paths: [path.join(knowhowDir, "node_modules"), knowhowDir],
191
- });
192
- return true;
193
- } catch {
194
- return false;
195
- }
196
- }
197
-
198
- interface NpmRegistryInfo {
199
- latestVersion: string;
200
- publishedAt: string;
201
- }
202
-
203
- /**
204
- * Fetch the latest version and publish time from the npm registry for a package.
205
- * Returns null if the package info can't be fetched.
206
- */
207
- async function fetchNpmRegistryInfo(mod: string): Promise<NpmRegistryInfo | null> {
208
- try {
209
- // npm view <pkg> version time --json returns either a single value or array
210
- const output = execSync(`npm view ${mod} version time --json`, {
211
- stdio: ["ignore", "pipe", "pipe"],
212
- encoding: "utf-8",
213
- });
214
- const parsed = JSON.parse(output.trim());
215
- let latestVersion: string;
216
- let timestamps: Record<string, string> = {};
217
- if (Array.isArray(parsed)) {
218
- latestVersion = parsed[0];
219
- timestamps = parsed[1] || {};
220
- } else if (parsed && typeof parsed === "object") {
221
- latestVersion = parsed["version"] || "";
222
- timestamps = parsed["time"] || {};
223
- } else {
224
- latestVersion = String(parsed);
225
- }
226
- const publishedAt = timestamps[latestVersion] || timestamps["modified"] || "";
227
- return { latestVersion, publishedAt };
228
- } catch {
229
- return null;
230
- }
231
- }
232
-
233
- /**
234
- * Simple engine range checker — handles the common cases:
235
- * ">=22" ">=22.0.0" "^20" "20.x" "*" ""
236
- * Returns true if the given nodeVersion satisfies the range.
237
- * Falls back to true (permissive) for unsupported range syntax.
238
- */
239
- function nodeSatisfiesRange(nodeVersion: string, range: string): boolean {
240
- if (!range || range === "*" || range === "") return true;
241
-
242
- // Parse "major.minor.patch" from e.g. "v20.17.0"
243
- const vMatch = nodeVersion.replace(/^v/, "").match(/^(\d+)(?:\.(\d+))?(?:\.(\d+))?/);
244
- if (!vMatch) return true;
245
- const vMajor = parseInt(vMatch[1], 10);
246
- const vMinor = parseInt(vMatch[2] ?? "0", 10);
247
- const vPatch = parseInt(vMatch[3] ?? "0", 10);
248
- const vNum = vMajor * 1_000_000 + vMinor * 1_000 + vPatch;
249
-
250
- function parseVersion(s: string): number {
251
- const m = s.trim().match(/^(\d+)(?:\.(\d+))?(?:\.(\d+))?/);
252
- if (!m) return 0;
253
- return parseInt(m[1], 10) * 1_000_000 + parseInt(m[2] ?? "0", 10) * 1_000 + parseInt(m[3] ?? "0", 10);
254
- }
255
-
256
- // Handle " || " — any segment satisfying is fine
257
- if (range.includes("||")) {
258
- return range.split("||").some((r) => nodeSatisfiesRange(nodeVersion, r.trim()));
259
- }
260
-
261
- // Handle space-separated AND conditions e.g. ">=14 <18"
262
- const parts = range.trim().split(/\s+/);
263
- for (const part of parts) {
264
- const gteMatch = part.match(/^>=(.+)/);
265
- const gtMatch = part.match(/^>(?!=)(.+)/);
266
- const lteMatch = part.match(/^<=(.+)/);
267
- const ltMatch = part.match(/^<(?!=)(.+)/);
268
- const caretMatch = part.match(/^\^(\d+)/);
269
- const tildeMatch = part.match(/^~(\d+)(?:\.(\d+))?/);
270
- const exactMatch = part.match(/^(\d+(?:\.\d+)*)/);
271
-
272
- if (gteMatch) {
273
- if (vNum < parseVersion(gteMatch[1])) return false;
274
- } else if (gtMatch) {
275
- if (vNum <= parseVersion(gtMatch[1])) return false;
276
- } else if (lteMatch) {
277
- if (vNum > parseVersion(lteMatch[1])) return false;
278
- } else if (ltMatch) {
279
- if (vNum >= parseVersion(ltMatch[1])) return false;
280
- } else if (caretMatch) {
281
- const base = parseVersion(caretMatch[1]);
282
- const baseMajor = parseInt(caretMatch[1], 10);
283
- if (vNum < base || vMajor !== baseMajor) return false;
284
- } else if (tildeMatch) {
285
- const baseMajor = parseInt(tildeMatch[1], 10);
286
- const baseMinor = parseInt(tildeMatch[2] ?? "0", 10);
287
- const base = parseVersion(`${baseMajor}.${baseMinor}`);
288
- const nextMinor = parseVersion(`${baseMajor}.${baseMinor + 1}`);
289
- if (vNum < base || vNum >= nextMinor) return false;
290
- } else if (exactMatch && !part.startsWith("v")) {
291
- // e.g. "20.x" or "20"
292
- const xMatch = part.match(/^(\d+)(?:\.x)?$/);
293
- if (xMatch) {
294
- if (vMajor !== parseInt(xMatch[1], 10)) return false;
295
- }
296
- }
297
- // Unknown operators — fall through (permissive)
298
- }
299
- return true;
300
- }
301
-
302
- /**
303
- * Fetch the latest version of a package that is compatible with the current
304
- * Node.js engine. Falls back to "@latest" if no engine info is available.
305
- *
306
- * Uses the npm registry API to get per-version engine requirements.
307
- */
308
- async function fetchLatestCompatibleVersion(mod: string): Promise<string> {
309
- const currentNode = process.version; // e.g. "v20.17.0"
310
- try {
311
- // Encode scoped package names for URL (e.g. @tyvm/pkg -> @tyvm%2Fpkg)
312
- const encodedMod = mod.replace(/^@/, "").replace("/", "%2F");
313
- const registryUrl = mod.startsWith("@")
314
- ? `https://registry.npmjs.org/@${encodedMod}`
315
- : `https://registry.npmjs.org/${mod}`;
316
-
317
- const response = await fetch(registryUrl);
318
- if (!response.ok) throw new Error(`Registry returned ${response.status}`);
319
- const pkgData = await response.json() as any;
320
-
321
- // pkgData.versions is a map of version -> package metadata
322
- const versionsMap: Record<string, any> = pkgData.versions ?? {};
323
- const allVersions = Object.keys(versionsMap);
324
-
325
- // Build per-version engine map from actual per-version metadata
326
- const enginesByVersion: Record<string, string> = {};
327
- for (const [v, meta] of Object.entries(versionsMap)) {
328
- enginesByVersion[v] = (meta as any)?.engines?.node ?? "";
329
- }
330
-
331
- if (allVersions.length === 0) return `${mod}@latest`;
332
-
333
- // Sort versions descending (simple semver numeric sort)
334
- const sorted = [...allVersions].sort((a, b) => {
335
- const pa = a.split(".").map(Number);
336
- const pb = b.split(".").map(Number);
337
- for (let i = 0; i < 3; i++) {
338
- if ((pa[i] ?? 0) !== (pb[i] ?? 0)) return (pb[i] ?? 0) - (pa[i] ?? 0);
339
- }
340
- return 0;
341
- });
342
-
343
- for (const v of sorted) {
344
- const engineRange = enginesByVersion[v] ?? "";
345
- if (nodeSatisfiesRange(currentNode, engineRange)) {
346
- return `${mod}@${v}`;
347
- }
348
- }
349
-
350
- // No compatible version found — warn and fall back to latest
351
- console.warn(`āš ļø No version of ${mod} found compatible with Node ${currentNode}. Installing latest anyway.`);
352
- return `${mod}@latest`;
353
- } catch {
354
- // Can't fetch registry info — fall back to latest
355
- return `${mod}@latest`;
356
- }
357
- }
358
-
359
- /**
360
- * Get the currently installed version of a package in .knowhow/node_modules.
361
- */
362
- function getInstalledVersion(mod: string, knowhowDir: string): string | null {
363
- try {
364
- const pkgJsonPath = path.join(knowhowDir, "node_modules", mod, "package.json");
365
- const pkgJson = JSON.parse(fs.readFileSync(pkgJsonPath, "utf-8"));
366
- return pkgJson.version ?? null;
367
- } catch {
368
- return null;
369
- }
370
- }
371
-
372
- /**
373
- * Format a date string as a human-readable relative time (e.g. "2 days ago").
374
- */
375
- function formatRelativeTime(isoDate: string): string {
376
- if (!isoDate) return "unknown";
377
- const then = new Date(isoDate).getTime();
378
- if (isNaN(then)) return "unknown";
379
- const diffMs = Date.now() - then;
380
- const diffMins = Math.floor(diffMs / 60_000);
381
- if (diffMins < 2) return "just now";
382
- if (diffMins < 60) return `${diffMins} minutes ago`;
383
- const diffHours = Math.floor(diffMins / 60);
384
- if (diffHours < 24) return `${diffHours} hour${diffHours !== 1 ? "s" : ""} ago`;
385
- const diffDays = Math.floor(diffHours / 24);
386
- if (diffDays < 30) return `${diffDays} day${diffDays !== 1 ? "s" : ""} ago`;
387
- const diffMonths = Math.floor(diffDays / 30);
388
- if (diffMonths < 12) return `${diffMonths} month${diffMonths !== 1 ? "s" : ""} ago`;
389
- const diffYears = Math.floor(diffMonths / 12);
390
- return `${diffYears} year${diffYears !== 1 ? "s" : ""} ago`;
391
- }
392
-
393
- /**
394
- * Prompt the user for a yes/no confirmation.
395
- */
396
- function promptConfirm(question: string): Promise<boolean> {
397
- return new Promise((resolve) => {
398
- const rl = readline.createInterface({
399
- input: process.stdin,
400
- output: process.stdout,
401
- });
402
- rl.question(`${question} (y/N) `, (answer) => {
403
- rl.close();
404
- resolve(
405
- answer.trim().toLowerCase() === "y" ||
406
- answer.trim().toLowerCase() === "yes"
407
- );
408
- });
409
- });
410
- }
411
-
412
- export function addModulesCommand(program: Command): void {
413
- const modulesCmd = program
414
- .command("modules")
415
- .description("Manage knowhow modules (install, add to config, list)");
416
-
417
- modulesCmd
418
- .command("setup")
419
- .description(
420
- "Add default built-in modules to your config and install them into .knowhow/node_modules"
421
- )
422
- .option("--global", "Use the global config (~/.knowhow/knowhow.json)")
423
- .option(
424
- "--allow-scripts",
425
- "Allow modules' native install/build scripts to run (needed for native deps like isolated-vm under npm 11)"
426
- )
427
- .action(async (opts) => {
428
- try {
429
- const isGlobal: boolean = opts.global ?? false;
430
- const allowScripts: boolean = opts.allowScripts ?? false;
431
- const cfg = isGlobal ? await getGlobalConfig() : await getConfig();
432
- const configLabel = isGlobal
433
- ? "~/.knowhow/knowhow.json"
434
- : ".knowhow/knowhow.json";
435
-
436
- if (!cfg.modules) cfg.modules = [];
437
-
438
- const knowhowDir = getKnowhowDir(isGlobal);
439
- ensureKnowhowPackageJson(knowhowDir);
440
-
441
- // Even if modules are already in the config, they may not be installed.
442
- // Check and install any that are missing from .knowhow/node_modules.
443
- let anyChanges = false;
444
- for (const mod of BUILTIN_MODULES) {
445
- if (!mod.startsWith(".") && !mod.startsWith("/")) {
446
- // Reinstall if the module isn't installed yet, OR if the user
447
- // explicitly passed --allow-scripts. In the latter case the whole
448
- // point is to (re-)run the native install/build scripts (e.g.
449
- // isolated-vm's node-gyp build), so skipping because the package
450
- // is "already installed" would silently do nothing — which is
451
- // exactly the confusing "Nothing to do" case we want to avoid.
452
- if (!isModuleInstalled(mod, knowhowDir) || allowScripts) {
453
- const installTarget = await fetchLatestCompatibleVersion(mod);
454
- console.log(`šŸ“¦ Installing ${installTarget}...`);
455
- npmInstallToKnowhow(installTarget, knowhowDir, { allowScripts });
456
- console.log(`āœ… Installed ${mod}`);
457
- anyChanges = true;
458
- }
459
- }
460
- if (!cfg.modules.includes(mod)) {
461
- cfg.modules.push(mod);
462
- console.log(`āœ… Added ${mod} to ${configLabel}`);
463
- anyChanges = true;
464
- }
465
- }
466
-
467
- if (!anyChanges) {
468
- console.log(
469
- `āœ… All default modules are already in ${configLabel} and installed. Nothing to do.`
470
- );
471
- } else {
472
- await (isGlobal ? updateGlobalConfig(cfg) : updateConfig(cfg));
473
- console.log(
474
- `\nšŸŽ‰ Setup complete! Modules ready in ${knowhowDir}/node_modules.`
475
- );
476
- }
477
- } catch (error: any) {
478
- console.error("Error during modules setup:", error.message ?? error);
479
- process.exit(1);
480
- }
481
- });
482
-
483
- modulesCmd
484
- .command("install [module]")
485
- .description(
486
- "Install a module into .knowhow/node_modules and add it to your config. " +
487
- "If no module name is given, installs all modules already in the config."
488
- )
489
- .option("--global", "Use the global config (~/.knowhow/knowhow.json)")
490
- .option("--latest", "Force install the latest version (bypasses package-lock)")
491
- .option(
492
- "--allow-scripts",
493
- "Allow the module's native install/build scripts to run (needed for native deps like isolated-vm under npm 11)"
494
- )
495
- .action(async (moduleName: string | undefined, opts) => {
496
- try {
497
- const isGlobal: boolean = opts.global ?? false;
498
- const allowScripts: boolean = opts.allowScripts ?? false;
499
- const cfg = isGlobal ? await getGlobalConfig() : await getConfig();
500
- const configLabel = isGlobal
501
- ? "~/.knowhow/knowhow.json"
502
- : ".knowhow/knowhow.json";
503
-
504
- if (!cfg.modules) cfg.modules = [];
505
-
506
- const knowhowDir = getKnowhowDir(isGlobal);
507
- ensureKnowhowPackageJson(knowhowDir);
508
-
509
- if (!moduleName) {
510
- // No module specified — install everything already in the config
511
- const installable = cfg.modules.filter(
512
- (m) => !m.startsWith(".") && !m.startsWith("/")
513
- );
514
- if (installable.length === 0) {
515
- console.log(`ℹ No installable modules found in ${configLabel}.`);
516
- return;
517
- }
518
- console.log(
519
- `šŸ“¦ Installing ${installable.length} module(s) from ${configLabel} into ${knowhowDir}/node_modules...`
520
- );
521
- for (const mod of installable) {
522
- console.log(` šŸ“¦ Installing ${mod}...`);
523
- const installTarget = opts.latest ? await fetchLatestCompatibleVersion(mod) : mod;
524
- npmInstallToKnowhow(installTarget, knowhowDir, { allowScripts });
525
- console.log(` āœ… Installed ${mod}`);
526
- }
527
- console.log(`\nšŸŽ‰ All modules installed!`);
528
- return;
529
- }
530
-
531
- // Install the specified module
532
- const installTarget = opts.latest ? await fetchLatestCompatibleVersion(moduleName) : moduleName;
533
- console.log(`šŸ“¦ Installing ${installTarget} into ${knowhowDir}/node_modules...`);
534
- npmInstallToKnowhow(installTarget, knowhowDir, { allowScripts });
535
- console.log(`āœ… Installed ${moduleName}`);
536
-
537
- // Add to config if not already there
538
- if (!cfg.modules.includes(moduleName)) {
539
- cfg.modules.push(moduleName);
540
- if (isGlobal) {
541
- await updateGlobalConfig(cfg);
542
- } else {
543
- await updateConfig(cfg);
544
- }
545
- console.log(`āœ… Added ${moduleName} to ${configLabel}`);
546
- } else {
547
- console.log(`ℹ ${moduleName} is already in ${configLabel}`);
548
- }
549
- } catch (error: any) {
550
- console.error("Error during module install:", error.message ?? error);
551
- process.exit(1);
552
- }
553
- });
554
-
555
- modulesCmd
556
- .command("list")
557
- .description("List all modules in your config")
558
- .option("--global", "Show global config modules only")
559
- .action(async (opts) => {
560
- try {
561
- const isGlobal: boolean = opts.global ?? false;
562
- const globalCfg = await getGlobalConfig();
563
- const localCfg = isGlobal ? null : await getConfig();
564
-
565
- const globalModules = globalCfg.modules || [];
566
- const localModules = localCfg?.modules || [];
567
-
568
- if (isGlobal) {
569
- console.log(`\n🌐 Global modules (~/.knowhow/knowhow.json):`);
570
- if (globalModules.length === 0) {
571
- console.log(" (none)");
572
- } else {
573
- globalModules.forEach((m, i) => console.log(` ${i + 1}. ${m}`));
574
- }
575
- } else {
576
- console.log(`\n🌐 Global modules (~/.knowhow/knowhow.json):`);
577
- if (globalModules.length === 0) {
578
- console.log(" (none)");
579
- } else {
580
- globalModules.forEach((m, i) => console.log(` ${i + 1}. ${m}`));
581
- }
582
- console.log(`\nšŸ“ Local modules (.knowhow/knowhow.json):`);
583
- if (localModules.length === 0) {
584
- console.log(" (none)");
585
- } else {
586
- localModules.forEach((m, i) => console.log(` ${i + 1}. ${m}`));
587
- }
588
- }
589
- } catch (error: any) {
590
- console.error("Error listing modules:", error.message ?? error);
591
- process.exit(1);
592
- }
593
- });
594
-
595
- modulesCmd
596
- .command("update")
597
- .description(
598
- "Check for updates to all modules in your config and update them. " +
599
- "Shows installed vs latest version with publish date before updating."
600
- )
601
- .option("--global", "Use the global config (~/.knowhow/knowhow.json)")
602
- .option("-y, --yes", "Skip confirmation prompt and update all outdated modules automatically")
603
- .option(
604
- "--allow-scripts",
605
- "Allow modules' native install/build scripts to run (needed for native deps like isolated-vm under npm 11)"
606
- )
607
- .action(async (opts) => {
608
- try {
609
- const isGlobal: boolean = opts.global ?? false;
610
- const skipConfirm: boolean = opts.yes ?? false;
611
- const allowScripts: boolean = opts.allowScripts ?? false;
612
- const cfg = isGlobal ? await getGlobalConfig() : await getConfig();
613
- const configLabel = isGlobal
614
- ? "~/.knowhow/knowhow.json"
615
- : ".knowhow/knowhow.json";
616
-
617
- if (!cfg.modules || cfg.modules.length === 0) {
618
- console.log(`ℹ No modules found in ${configLabel}.`);
619
- return;
620
- }
621
-
622
- const knowhowDir = getKnowhowDir(isGlobal);
623
- ensureKnowhowPackageJson(knowhowDir);
624
-
625
- // Only check npm packages (not local paths)
626
- const installable = cfg.modules.filter(
627
- (m) => !m.startsWith(".") && !m.startsWith("/")
628
- );
629
-
630
- if (installable.length === 0) {
631
- console.log(`ℹ No npm modules found in ${configLabel}.`);
632
- return;
633
- }
634
-
635
- console.log(`šŸ” Checking for updates to ${installable.length} module(s)...\n`);
636
-
637
- interface UpdateInfo {
638
- mod: string;
639
- installed: string | null;
640
- latest: string;
641
- compatibleVersion: string; // e.g. "@tyvm/knowhow-module-script@0.0.4"
642
- publishedAt: string;
643
- needsUpdate: boolean;
644
- }
645
-
646
- const updates: UpdateInfo[] = [];
647
-
648
- for (const mod of installable) {
649
- const registryInfo = await fetchNpmRegistryInfo(mod);
650
- if (!registryInfo) {
651
- console.log(` āš ļø ${mod}: could not fetch registry info (skipping)`);
652
- continue;
653
- }
654
- const installed = getInstalledVersion(mod, knowhowDir);
655
- const { latestVersion, publishedAt } = registryInfo;
656
- // Find the latest compatible version for the current Node.js engine
657
- const compatibleInstallTarget = await fetchLatestCompatibleVersion(mod);
658
- const compatibleVersion = compatibleInstallTarget.replace(/^[^@]+@/, ""); // strip "pkg@" prefix
659
- const needsUpdate = installed !== compatibleVersion;
660
- const timeAgo = formatRelativeTime(publishedAt);
661
-
662
- if (needsUpdate) {
663
- const installedStr = installed ?? "(not installed)";
664
- const versionLabel = compatibleVersion !== latestVersion
665
- ? `${compatibleVersion} (latest compatible with Node ${process.version}; absolute latest: ${latestVersion})`
666
- : compatibleVersion;
667
- console.log(` šŸ“¦ ${mod}`);
668
- console.log(` installed: ${installedStr} → latest: ${versionLabel} (published ${timeAgo})`);
669
- } else {
670
- console.log(` āœ… ${mod} v${compatibleVersion} (up to date, published ${timeAgo})`);
671
- }
672
- updates.push({ mod, installed, latest: compatibleVersion, compatibleVersion: compatibleInstallTarget, publishedAt, needsUpdate });
673
- }
674
-
675
- const toUpdate = updates.filter((u) => u.needsUpdate);
676
-
677
- if (toUpdate.length === 0) {
678
- console.log(`\nāœ… All modules are up to date!`);
679
- return;
680
- }
681
-
682
- console.log(`\n${toUpdate.length} module(s) can be updated.`);
683
-
684
- if (!skipConfirm) {
685
- const confirmed = await promptConfirm(`Update ${toUpdate.length} module(s) now?`);
686
- if (!confirmed) {
687
- console.log("Cancelled.");
688
- return;
689
- }
690
- }
691
-
692
- console.log("");
693
- for (const { mod, compatibleVersion } of toUpdate) {
694
- console.log(` šŸ“¦ Updating ${compatibleVersion}...`);
695
- npmInstallToKnowhow(compatibleVersion, knowhowDir, { allowScripts });
696
- console.log(` āœ… Updated ${mod}`);
697
- }
698
- console.log(`\nšŸŽ‰ Update complete! ${toUpdate.length} module(s) updated.`);
699
- } catch (error: any) {
700
- console.error("Error during modules update:", error.message ?? error);
701
- process.exit(1);
702
- }
703
- });
704
- }