@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.
- package/package.json +1 -1
- package/ts_build/package.json +1 -1
- package/ts_build/src/chat/CliChatService.d.ts +2 -1
- package/ts_build/src/chat/CliChatService.js +29 -3
- package/ts_build/src/chat/CliChatService.js.map +1 -1
- package/ts_build/src/chat/modules/AgentModule.js +21 -17
- package/ts_build/src/chat/modules/AgentModule.js.map +1 -1
- package/ts_build/src/chat/renderer/ConsoleRenderer.js +32 -25
- package/ts_build/src/chat/renderer/ConsoleRenderer.js.map +1 -1
- package/ts_build/src/logger.d.ts +1 -0
- package/ts_build/src/logger.js +13 -1
- package/ts_build/src/logger.js.map +1 -1
- package/ts_build/src/utils/InputQueueManager.d.ts +8 -1
- package/ts_build/src/utils/InputQueueManager.js +72 -2
- package/ts_build/src/utils/InputQueueManager.js.map +1 -1
- package/ts_build/src/utils/index.d.ts +3 -1
- package/ts_build/src/utils/index.js +11 -3
- package/ts_build/src/utils/index.js.map +1 -1
- package/CONFIG.md +0 -429
- package/PROCESSING.md +0 -450
- package/WORKER.md +0 -260
- package/autodoc/README.md +0 -324
- package/autodoc/chat-guide.md +0 -444
- package/autodoc/cli-reference.md +0 -720
- package/autodoc/config-reference.md +0 -642
- package/autodoc/embeddings-guide.md +0 -467
- package/autodoc/generate-guide.md +0 -437
- package/autodoc/language-plugin-guide.md +0 -417
- package/autodoc/modules-guide.md +0 -379
- package/autodoc/plugins-guide.md +0 -721
- package/autodoc/quickstart-guide.md +0 -126
- package/autodoc/skills-guide.md +0 -584
- package/autodoc/worker-guide.md +0 -519
- package/docs/input-queue-manager.md +0 -142
- package/docs/multi-worker-management.md +0 -142
- package/docs/shell-commands.md +0 -174
- package/jest.config.js +0 -19
- package/jest.manual.config.js +0 -19
- package/scripts/README.md +0 -119
- package/scripts/build-for-node.sh +0 -148
- package/scripts/cache-miss-debug.ts +0 -365
- package/scripts/check-isolated-deps.sh +0 -69
- package/scripts/check-model-pricing.ts +0 -509
- package/scripts/compare-openrouter-coverage.ts +0 -576
- package/scripts/migrate-usage-json.js +0 -147
- package/scripts/publish.sh +0 -86
- package/scripts/restore_keys.sh +0 -59
- package/scripts/test-repetition-hint.ts +0 -302
- package/scripts/unset_keys.sh +0 -60
- package/src/agents/base/base.ts +0 -1963
- package/src/agents/base/prompt.ts +0 -55
- package/src/agents/configurable/ConfigAgent.ts +0 -24
- package/src/agents/developer/developer.ts +0 -76
- package/src/agents/historyRollback.ts +0 -36
- package/src/agents/index.ts +0 -52
- package/src/agents/interface.ts +0 -11
- package/src/agents/patcher/codebase.md +0 -27
- package/src/agents/patcher/patcher.ts +0 -131
- package/src/agents/researcher/researcher.ts +0 -115
- package/src/agents/setup/setup.ts +0 -63
- package/src/agents/tools/addInternalTools.ts +0 -21
- package/src/agents/tools/agentCall.ts +0 -34
- package/src/agents/tools/aiClient.ts +0 -178
- package/src/agents/tools/askHuman.ts +0 -10
- package/src/agents/tools/callPlugin.ts +0 -10
- package/src/agents/tools/connectAgent.ts +0 -355
- package/src/agents/tools/embeddingSearch.ts +0 -6
- package/src/agents/tools/execCommand.ts +0 -162
- package/src/agents/tools/fileSearch.ts +0 -35
- package/src/agents/tools/finalAnswer.ts +0 -4
- package/src/agents/tools/googleSearch.ts +0 -243
- package/src/agents/tools/index.ts +0 -33
- package/src/agents/tools/language/definitions.ts +0 -105
- package/src/agents/tools/language/index.ts +0 -20
- package/src/agents/tools/lazy/definitions.ts +0 -72
- package/src/agents/tools/lazy/disableTools.ts +0 -16
- package/src/agents/tools/lazy/enableTools.ts +0 -16
- package/src/agents/tools/lazy/index.ts +0 -3
- package/src/agents/tools/lazy/listAvailableTools.ts +0 -17
- package/src/agents/tools/lintFile.ts +0 -19
- package/src/agents/tools/list.ts +0 -739
- package/src/agents/tools/loadImageAsBase64.ts +0 -83
- package/src/agents/tools/loadWebpage.ts +0 -19
- package/src/agents/tools/mcp/connectMcpServer.ts +0 -40
- package/src/agents/tools/mcp/definitions.ts +0 -67
- package/src/agents/tools/mcp/disconnectMcpServer.ts +0 -40
- package/src/agents/tools/mcp/index.ts +0 -3
- package/src/agents/tools/mcp/listAvailableMcpServers.ts +0 -28
- package/src/agents/tools/minimal/callTool.ts +0 -45
- package/src/agents/tools/minimal/definitions.ts +0 -50
- package/src/agents/tools/minimal/index.ts +0 -3
- package/src/agents/tools/minimal/inspectTools.ts +0 -27
- package/src/agents/tools/modifyFile.ts +0 -53
- package/src/agents/tools/observe.ts +0 -247
- package/src/agents/tools/patch.ts +0 -1287
- package/src/agents/tools/readBlocks.ts +0 -83
- package/src/agents/tools/readFile.ts +0 -105
- package/src/agents/tools/replyToParent.ts +0 -123
- package/src/agents/tools/runGenerate.ts +0 -210
- package/src/agents/tools/scanFile.ts +0 -16
- package/src/agents/tools/sendAgentMessage.ts +0 -139
- package/src/agents/tools/skills.ts +0 -79
- package/src/agents/tools/startAgentTask.ts +0 -393
- package/src/agents/tools/stringReplace.ts +0 -105
- package/src/agents/tools/textSearch.ts +0 -128
- package/src/agents/tools/types/fileblock.ts +0 -5
- package/src/agents/tools/visionTool.ts +0 -35
- package/src/agents/tools/waitForAgentCompleted.ts +0 -270
- package/src/agents/tools/writeFile.ts +0 -106
- package/src/agents/tools/ycmd/client.ts +0 -608
- package/src/agents/tools/ycmd/definitions.ts +0 -294
- package/src/agents/tools/ycmd/detection.ts +0 -211
- package/src/agents/tools/ycmd/index.ts +0 -11
- package/src/agents/tools/ycmd/installer.ts +0 -251
- package/src/agents/tools/ycmd/server.ts +0 -545
- package/src/agents/tools/ycmd/serverManager.ts +0 -316
- package/src/agents/tools/ycmd/tools/completion.ts +0 -113
- package/src/agents/tools/ycmd/tools/diagnostics.ts +0 -166
- package/src/agents/tools/ycmd/tools/getLocations.ts +0 -173
- package/src/agents/tools/ycmd/tools/goto.ts +0 -169
- package/src/agents/tools/ycmd/tools/refactor.ts +0 -204
- package/src/agents/tools/ycmd/tools/signature.ts +0 -174
- package/src/agents/tools/ycmd/tools/start.ts +0 -95
- package/src/agents/tools/ycmd/utils/pathUtils.ts +0 -59
- package/src/ai.ts +0 -306
- package/src/auth/browserLogin.ts +0 -406
- package/src/auth/environmentAuth.ts +0 -51
- package/src/auth/errors.ts +0 -6
- package/src/auth/jwtStore.ts +0 -70
- package/src/auth/keyAuth.ts +0 -142
- package/src/auth/keyManager.ts +0 -331
- package/src/auth/registerIdentity.ts +0 -67
- package/src/auth/spinner.ts +0 -23
- package/src/chat/CliChatService.ts +0 -438
- package/src/chat/modules/AgentModule.ts +0 -1664
- package/src/chat/modules/AskModule.ts +0 -98
- package/src/chat/modules/BaseChatModule.ts +0 -65
- package/src/chat/modules/ClipboardImageModule.ts +0 -136
- package/src/chat/modules/CustomCommandsModule.ts +0 -80
- package/src/chat/modules/InternalChatModule.ts +0 -216
- package/src/chat/modules/RemoteSyncModule.ts +0 -482
- package/src/chat/modules/RendererModule.ts +0 -139
- package/src/chat/modules/SearchModule.ts +0 -168
- package/src/chat/modules/SessionsModule.ts +0 -969
- package/src/chat/modules/SetupModule.ts +0 -185
- package/src/chat/modules/ShellCommandModule.ts +0 -98
- package/src/chat/modules/SystemModule.ts +0 -161
- package/src/chat/modules/ToolCommandModule.ts +0 -102
- package/src/chat/modules/VoiceModule.ts +0 -70
- package/src/chat/modules/index.ts +0 -8
- package/src/chat/renderer/CompactRenderer.ts +0 -229
- package/src/chat/renderer/ConsoleRenderer.ts +0 -160
- package/src/chat/renderer/FancyRenderer.ts +0 -440
- package/src/chat/renderer/PlainRenderer.ts +0 -218
- package/src/chat/renderer/index.ts +0 -6
- package/src/chat/renderer/loadRenderer.ts +0 -316
- package/src/chat/renderer/messagesToRenderEvents.ts +0 -96
- package/src/chat/renderer/types.ts +0 -99
- package/src/chat/types.ts +0 -146
- package/src/chat.ts +0 -140
- package/src/cli.ts +0 -180
- package/src/clients/anthropic.ts +0 -772
- package/src/clients/attribution.ts +0 -53
- package/src/clients/cerebras.ts +0 -10
- package/src/clients/contextLimits.ts +0 -263
- package/src/clients/copilot.ts +0 -23
- package/src/clients/deepseek.ts +0 -16
- package/src/clients/fireworks.ts +0 -71
- package/src/clients/gemini.ts +0 -1169
- package/src/clients/github.ts +0 -16
- package/src/clients/groq.ts +0 -15
- package/src/clients/http.ts +0 -719
- package/src/clients/index.ts +0 -1153
- package/src/clients/knowhow.ts +0 -130
- package/src/clients/knowhowMcp.ts +0 -118
- package/src/clients/llama.ts +0 -16
- package/src/clients/meta.ts +0 -27
- package/src/clients/mistral.ts +0 -16
- package/src/clients/nvidia.ts +0 -16
- package/src/clients/openai.ts +0 -1186
- package/src/clients/openrouter.ts +0 -24
- package/src/clients/pricing/anthropic.ts +0 -149
- package/src/clients/pricing/cerebras.ts +0 -11
- package/src/clients/pricing/copilot.ts +0 -60
- package/src/clients/pricing/deepseek.ts +0 -15
- package/src/clients/pricing/fireworks.ts +0 -182
- package/src/clients/pricing/github.ts +0 -69
- package/src/clients/pricing/google.ts +0 -385
- package/src/clients/pricing/groq.ts +0 -56
- package/src/clients/pricing/index.ts +0 -44
- package/src/clients/pricing/llama.ts +0 -18
- package/src/clients/pricing/meta.ts +0 -12
- package/src/clients/pricing/mistral.ts +0 -34
- package/src/clients/pricing/models.ts +0 -25
- package/src/clients/pricing/nvidia.ts +0 -102
- package/src/clients/pricing/openai.ts +0 -409
- package/src/clients/pricing/openrouter.ts +0 -36
- package/src/clients/pricing/qwen.ts +0 -80
- package/src/clients/pricing/types.ts +0 -125
- package/src/clients/pricing/xai.ts +0 -137
- package/src/clients/qwen.ts +0 -16
- package/src/clients/responseMetadata.ts +0 -221
- package/src/clients/types.ts +0 -531
- package/src/clients/withRetry.ts +0 -89
- package/src/clients/xai.ts +0 -693
- package/src/cloudWorker.ts +0 -394
- package/src/commands/agent.ts +0 -342
- package/src/commands/agents.ts +0 -1037
- package/src/commands/behaviors.ts +0 -47
- package/src/commands/convert.ts +0 -291
- package/src/commands/hash.ts +0 -179
- package/src/commands/mcp.ts +0 -743
- package/src/commands/misc.ts +0 -373
- package/src/commands/modules.ts +0 -704
- package/src/commands/processes.ts +0 -248
- package/src/commands/remote.ts +0 -77
- package/src/commands/replay.ts +0 -503
- package/src/commands/sandbox.ts +0 -566
- package/src/commands/services.ts +0 -168
- package/src/commands/skills.ts +0 -107
- package/src/commands/workers.ts +0 -168
- package/src/config.ts +0 -468
- package/src/conversion.ts +0 -69
- package/src/dataset/diffs/README.md +0 -12
- package/src/dataset/diffs/debug-errors.ts +0 -29
- package/src/dataset/diffs/debug.ts +0 -64
- package/src/dataset/diffs/generate.ts +0 -71
- package/src/dataset/diffs/jsonl.ts +0 -53
- package/src/dataset/diffs/test.ts +0 -194
- package/src/embeddings.ts +0 -494
- package/src/fileSync.ts +0 -369
- package/src/generate.ts +0 -529
- package/src/hashes.ts +0 -180
- package/src/index.ts +0 -261
- package/src/logger.ts +0 -197
- package/src/login.ts +0 -209
- package/src/microphone.ts +0 -141
- package/src/migrations.ts +0 -151
- package/src/plugins/AgentsMdPlugin.ts +0 -118
- package/src/plugins/GitPlugin.ts +0 -598
- package/src/plugins/LinterPlugin.ts +0 -214
- package/src/plugins/PluginBase.ts +0 -70
- package/src/plugins/SkillsPlugin.ts +0 -37
- package/src/plugins/embedding.ts +0 -82
- package/src/plugins/exec.ts +0 -70
- package/src/plugins/language.ts +0 -290
- package/src/plugins/plugins.ts +0 -175
- package/src/plugins/tmux.ts +0 -132
- package/src/plugins/types.ts +0 -36
- package/src/plugins/url.ts +0 -101
- package/src/plugins/vim.ts +0 -89
- package/src/processes/ProcessManager.ts +0 -96
- package/src/processes/managedProcessShim.ts +0 -138
- package/src/processors/Base64ImageDetector.ts +0 -502
- package/src/processors/CustomVariables.ts +0 -693
- package/src/processors/GemmaToolProcessor.ts +0 -163
- package/src/processors/HarmonyToolProcessor.ts +0 -264
- package/src/processors/JsonCompressor.ts +0 -510
- package/src/processors/MinimalToolsMessageProcessor.ts +0 -113
- package/src/processors/TokenCompressor.ts +0 -620
- package/src/processors/ToolResponseCache.ts +0 -322
- package/src/processors/XmlToolCallProcessor.ts +0 -533
- package/src/processors/index.ts +0 -14
- package/src/processors/tools/boundedToolResponse.ts +0 -49
- package/src/processors/tools/grepToolResponse.ts +0 -230
- package/src/processors/tools/index.ts +0 -23
- package/src/processors/tools/jqToolResponse.ts +0 -159
- package/src/processors/tools/listStoredToolResponses.ts +0 -124
- package/src/processors/tools/tailToolResponse.ts +0 -148
- package/src/prompts/BasicCodeDocumenter.ts +0 -1
- package/src/prompts/BasicProjectDocumenter.ts +0 -1
- package/src/prompts/EmbeddingSeachHelper.ts +0 -1
- package/src/prompts/KnowhowConfigExamples.ts +0 -376
- package/src/prompts/index.ts +0 -9
- package/src/remotes.ts +0 -110
- package/src/server/index.ts +0 -16
- package/src/services/AgentService.ts +0 -134
- package/src/services/AgentSyncFs.ts +0 -775
- package/src/services/AgentSyncKnowhowWeb.ts +0 -389
- package/src/services/BehaviorsService.ts +0 -466
- package/src/services/DockerService.ts +0 -511
- package/src/services/EmbeddingService.ts +0 -427
- package/src/services/EmbeddingsService.ts +0 -73
- package/src/services/EventService.ts +0 -279
- package/src/services/ExtensionsService.ts +0 -25
- package/src/services/KnowhowClient.ts +0 -928
- package/src/services/LazyToolsService.ts +0 -210
- package/src/services/Mcp.ts +0 -727
- package/src/services/McpServer.ts +0 -155
- package/src/services/McpWebsocketTransport.ts +0 -87
- package/src/services/MediaProcessorService.ts +0 -669
- package/src/services/MessageProcessor.ts +0 -114
- package/src/services/MinimalToolsService.ts +0 -177
- package/src/services/RuntimeReloadService.ts +0 -31
- package/src/services/S3.ts +0 -61
- package/src/services/SessionManager.ts +0 -358
- package/src/services/SkillsService.ts +0 -822
- package/src/services/SyncedAgentWatcher.ts +0 -124
- package/src/services/SyncerService.ts +0 -191
- package/src/services/TaskRegistry.ts +0 -110
- package/src/services/Tools.ts +0 -580
- package/src/services/TracingService.ts +0 -116
- package/src/services/conversion/ConversionService.ts +0 -757
- package/src/services/conversion/index.ts +0 -2
- package/src/services/conversion/types.ts +0 -87
- package/src/services/flags.ts +0 -51
- package/src/services/index.ts +0 -117
- package/src/services/modules/computerUse.ts +0 -218
- package/src/services/modules/index.ts +0 -314
- package/src/services/modules/types.ts +0 -109
- package/src/services/types.ts +0 -60
- package/src/services/watchers/FsSyncer.ts +0 -199
- package/src/services/watchers/RemoteSyncer.ts +0 -196
- package/src/services/watchers/index.ts +0 -2
- package/src/tunnel.ts +0 -243
- package/src/types.ts +0 -282
- package/src/util/Trace.ts +0 -236
- package/src/utils/InputQueueManager.ts +0 -493
- package/src/utils/errors.ts +0 -0
- package/src/utils/http.ts +0 -150
- package/src/utils/index.ts +0 -111
- package/src/worker.ts +0 -696
- package/src/workerRegistry.ts +0 -152
- package/src/workers/auth/PasskeySetup.ts +0 -181
- package/src/workers/auth/WorkerPasskeyAuth.ts +0 -190
- package/src/workers/auth/WsMiddleware.ts +0 -99
- package/src/workers/auth/authMiddleware.ts +0 -104
- package/src/workers/auth/types.ts +0 -70
- package/src/workers/tools/getChallenge.ts +0 -33
- package/src/workers/tools/index.ts +0 -20
- package/src/workers/tools/listAllowedPorts.ts +0 -30
- package/src/workers/tools/lock.ts +0 -31
- package/src/workers/tools/reloadConfig.ts +0 -84
- package/src/workers/tools/unlock.ts +0 -116
- package/tests/XmlToolCallProcessor.test.ts +0 -468
- package/tests/agents/interrupt.test.ts +0 -200
- package/tests/agents/observe-base.test.ts +0 -183
- package/tests/agents/tools/connectAgent.test.ts +0 -138
- package/tests/agents/tools/observe.test.ts +0 -179
- package/tests/agents/tools/readFile.test.ts +0 -88
- package/tests/agents/tools/replyToParent.test.ts +0 -125
- package/tests/agents/tools/sendAgentMessage.test.ts +0 -99
- package/tests/agents/tools/waitForAgentCompleted.test.ts +0 -147
- package/tests/chat/detach-attach-rendering.test.ts +0 -315
- package/tests/clients/AIClient.test.ts +0 -668
- package/tests/clients/anthropic.test.ts +0 -202
- package/tests/clients/contextLimits.test.ts +0 -97
- package/tests/clients/fireworks.test.ts +0 -65
- package/tests/clients/openai.images.test.ts +0 -105
- package/tests/clients/pricing.test.ts +0 -206
- package/tests/clients/reasoningEffort.test.ts +0 -140
- package/tests/compressor/bigstring.test.ts +0 -450
- package/tests/compressor/bigstring.txt +0 -1
- package/tests/compressor/githubjson.txt +0 -1
- package/tests/compressor/toolResponseCache.test.ts +0 -304
- package/tests/compressor/usageBase64.json +0 -159
- package/tests/compressor/usageBase64.test.ts +0 -175
- package/tests/fixtures/fake-secret.txt +0 -1
- package/tests/manual/agent-events/run-test.ts +0 -203
- package/tests/manual/browser-login/README.md +0 -189
- package/tests/manual/browser-login/test_browser_login_basic.ts +0 -115
- package/tests/manual/browser-login/test_cli_integration.ts +0 -169
- package/tests/manual/browser-login/test_cross_platform_browser.ts +0 -186
- package/tests/manual/browser-login/test_error_scenarios.ts +0 -223
- package/tests/manual/cli/no-env.sh +0 -274
- package/tests/manual/clients/completions.json +0 -1151
- package/tests/manual/clients/completions.test.ts +0 -198
- package/tests/manual/file-edits/figma.test.ts +0 -3
- package/tests/manual/file-edits/fileblocks/readwrite.test.ts +0 -100
- package/tests/manual/file-edits/patching/input.txt +0 -145
- package/tests/manual/file-edits/patching/output.txt +0 -145
- package/tests/manual/file-edits/patching/patch.txt +0 -15
- package/tests/manual/file-edits/patching/unseen.txt +0 -80
- package/tests/manual/file-edits/patching.test.ts +0 -139
- package/tests/manual/modalities/README.md +0 -157
- package/tests/manual/modalities/google.modalities.test.ts +0 -335
- package/tests/manual/modalities/openai.modalities.test.ts +0 -329
- package/tests/manual/modalities/streaming.test.ts +0 -260
- package/tests/manual/modalities/xai.modalities.test.ts +0 -294
- package/tests/manual/test-concurrent-ask.ts +0 -43
- package/tests/manual/ycmd/debug_diagnostics_test.ts +0 -127
- package/tests/manual/ycmd/fixtures/debug_diagnostics.ts +0 -26
- package/tests/manual/ycmd/fixtures/file_change_test.ts +0 -17
- package/tests/manual/ycmd/minimal_advanced_test.ts +0 -108
- package/tests/manual/ycmd/simple_diagnostics_test.ts +0 -61
- package/tests/manual/ycmd/simple_test.ts +0 -74
- package/tests/manual/ycmd/test-typescript-sample.ts +0 -34
- package/tests/manual/ycmd/test_advanced_features.ts +0 -407
- package/tests/manual/ycmd/test_advanced_with_tools.ts +0 -320
- package/tests/manual/ycmd/test_comprehensive_typescript.ts +0 -179
- package/tests/manual/ycmd/test_diagnostics_file_changes.ts +0 -249
- package/tests/manual/ycmd/test_diagnostics_fix.ts +0 -99
- package/tests/manual/ycmd/test_diagnostics_simple.ts +0 -100
- package/tests/manual/ycmd/test_diagnostics_timing.ts +0 -120
- package/tests/manual/ycmd/test_discover_commands.ts +0 -310
- package/tests/manual/ycmd/test_endpoints.ts +0 -115
- package/tests/manual/ycmd/test_final_comprehensive.ts +0 -218
- package/tests/manual/ycmd/test_final_validation.ts +0 -150
- package/tests/manual/ycmd/test_implementation.js +0 -42
- package/tests/manual/ycmd/test_individual_ycmd_tool.ts +0 -39
- package/tests/manual/ycmd/test_server_manager.ts +0 -52
- package/tests/manual/ycmd/test_simple_debug.ts +0 -86
- package/tests/manual/ycmd/test_tsserver_workflow.js +0 -83
- package/tests/manual/ycmd/test_tsserver_workflow.ts +0 -122
- package/tests/manual/ycmd/test_typescript_simple.ts +0 -48
- package/tests/manual/ycmd/test_typescript_ycmd.ts +0 -105
- package/tests/manual/ycmd/test_workspace_config.ts +0 -90
- package/tests/manual/ycmd/test_ycmd_auto_start.ts +0 -137
- package/tests/manual/ycmd/test_ycmd_comprehensive.ts +0 -73
- package/tests/manual/ycmd/test_ycmd_connection.py +0 -10
- package/tests/manual/ycmd/test_ycmd_direct.ts +0 -142
- package/tests/manual/ycmd/test_ycmd_experiment.ts +0 -48
- package/tests/manual/ycmd/test_ycmd_final.ts +0 -200
- package/tests/manual/ycmd/test_ycmd_fixed.py +0 -18
- package/tests/manual/ycmd/test_ycmd_integration.ts +0 -112
- package/tests/manual/ycmd/test_ycmd_simple.ts +0 -45
- package/tests/manual/ycmd/test_ycmd_usage.py +0 -27
- package/tests/manual/ycmd/working_simple_test.ts +0 -134
- package/tests/patching/corrupted.test.ts +0 -78
- package/tests/patching/fixtures/transcript-mangles/agent-sync-fs-nested-catch.json +0 -9
- package/tests/patching/fixtures/transcript-mangles/automation-functions-crossed.json +0 -9
- package/tests/patching/fixtures/transcript-mangles/fruit-ninja-confirmed-retirement.json +0 -8
- package/tests/patching/imports.patch.txt +0 -11
- package/tests/patching/imports.test.ts +0 -43
- package/tests/patching/imports.txt +0 -11
- package/tests/patching/interface.patch.txt +0 -15
- package/tests/patching/interface.txt +0 -7
- package/tests/patching/patchFileOutput.test.ts +0 -328
- package/tests/patching/regression-2026.test.ts +0 -752
- package/tests/patching/transcriptMangleRegression.test.ts +0 -125
- package/tests/plugins/language/languagePlugin-content-triggers.test.ts +0 -346
- package/tests/plugins/language/languagePlugin-integration.test.ts +0 -471
- package/tests/plugins/language/languagePlugin.test.ts +0 -385
- package/tests/processes/managedProcessShim.test.ts +0 -59
- package/tests/processors/Base64ImageDetector.test.ts +0 -979
- package/tests/processors/CustomVariables.test.ts +0 -981
- package/tests/processors/CustomVariablesBenchmark.test.ts +0 -237
- package/tests/processors/HarmonyToolProcessor.test.ts +0 -490
- package/tests/processors/TokenCompressor.test.ts +0 -674
- package/tests/processors/ToolResponseCache.test.ts +0 -864
- package/tests/processors/tools/boundedRetrievalTools.test.ts +0 -68
- package/tests/processors/tools/grepToolResponse.test.ts +0 -159
- package/tests/services/ConversionService.test.ts +0 -154
- package/tests/services/DockerService.test.ts +0 -24
- package/tests/services/Tools.test.ts +0 -1738
- package/tests/services/ToolsService.setFunction.test.ts +0 -68
- package/tests/services/WorkerReloadConfig.test.ts +0 -141
- package/tests/test.spec.ts +0 -163
- package/tests/unit/InputQueueManager.test.ts +0 -174
- package/tests/unit/McpWebsocketTransport.test.ts +0 -56
- package/tests/unit/agents/historyRollback.test.ts +0 -53
- package/tests/unit/agents/tools/loadImageAsBase64.test.ts +0 -44
- package/tests/unit/auth/jwtStore.test.ts +0 -55
- package/tests/unit/auth/keyAuth.test.ts +0 -152
- package/tests/unit/auth/keyManager.test.ts +0 -130
- package/tests/unit/auth/registerIdentity.test.ts +0 -99
- package/tests/unit/chat/ToolCommandModule.test.ts +0 -71
- package/tests/unit/chat/historyCommandArgs.test.ts +0 -37
- package/tests/unit/clients/AIClient.test.ts +0 -454
- package/tests/unit/clients/anthropic.responseMetadata.test.ts +0 -81
- package/tests/unit/clients/attribution.test.ts +0 -185
- package/tests/unit/clients/http.responseMetadata.test.ts +0 -86
- package/tests/unit/clients/openai.responseMetadata.test.ts +0 -90
- package/tests/unit/clients/responseMetadata.test.ts +0 -123
- package/tests/unit/clients/withRetry.test.ts +0 -319
- package/tests/unit/commands/agents.test.ts +0 -111
- package/tests/unit/commands/github-credentials.test.ts +0 -210
- package/tests/unit/commands/misc.test.ts +0 -85
- package/tests/unit/commands/remote.test.ts +0 -79
- package/tests/unit/commands/sandbox.test.ts +0 -350
- package/tests/unit/hashes.test.ts +0 -23
- package/tests/unit/input-queue.test.ts +0 -80
- package/tests/unit/login.test.ts +0 -218
- package/tests/unit/modules/moduleLoading.test.ts +0 -305
- package/tests/unit/plugins/pluginLoading.test.ts +0 -97
- package/tests/unit/services/AgentSyncKnowhowWeb.test.ts +0 -38
- package/tests/unit/services/KnowhowClient.test.ts +0 -84
- package/tests/unit/services/LazyToolsService.test.ts +0 -53
- package/tests/unit/services/Mcp.test.ts +0 -56
- package/tests/unit/services/MinimalToolsService.test.ts +0 -424
- package/tests/unit/services/RuntimeReloadService.test.ts +0 -29
- package/tests/unit/services/SessionManager.test.ts +0 -43
- package/tests/unit/services/SyncedAgentWatcher.test.ts +0 -89
- package/tests/unit/services/SyncerService.test.ts +0 -45
- package/tests/unit/tunnel.test.ts +0 -51
- package/tests/unit/util/Trace.test.ts +0 -119
- package/tests/unit/utils/http.test.ts +0 -43
- package/ts_build/tests/XmlToolCallProcessor.test.d.ts +0 -1
- package/ts_build/tests/XmlToolCallProcessor.test.js +0 -376
- package/ts_build/tests/XmlToolCallProcessor.test.js.map +0 -1
- package/ts_build/tests/agents/interrupt.test.d.ts +0 -14
- package/ts_build/tests/agents/interrupt.test.js +0 -136
- package/ts_build/tests/agents/interrupt.test.js.map +0 -1
- package/ts_build/tests/agents/observe-base.test.d.ts +0 -1
- package/ts_build/tests/agents/observe-base.test.js +0 -149
- package/ts_build/tests/agents/observe-base.test.js.map +0 -1
- package/ts_build/tests/agents/tools/connectAgent.test.d.ts +0 -1
- package/ts_build/tests/agents/tools/connectAgent.test.js +0 -142
- package/ts_build/tests/agents/tools/connectAgent.test.js.map +0 -1
- package/ts_build/tests/agents/tools/observe.test.d.ts +0 -1
- package/ts_build/tests/agents/tools/observe.test.js +0 -148
- package/ts_build/tests/agents/tools/observe.test.js.map +0 -1
- package/ts_build/tests/agents/tools/readFile.test.d.ts +0 -1
- package/ts_build/tests/agents/tools/readFile.test.js +0 -90
- package/ts_build/tests/agents/tools/readFile.test.js.map +0 -1
- package/ts_build/tests/agents/tools/replyToParent.test.d.ts +0 -1
- package/ts_build/tests/agents/tools/replyToParent.test.js +0 -116
- package/ts_build/tests/agents/tools/replyToParent.test.js.map +0 -1
- package/ts_build/tests/agents/tools/sendAgentMessage.test.d.ts +0 -1
- package/ts_build/tests/agents/tools/sendAgentMessage.test.js +0 -112
- package/ts_build/tests/agents/tools/sendAgentMessage.test.js.map +0 -1
- package/ts_build/tests/agents/tools/waitForAgentCompleted.test.d.ts +0 -1
- package/ts_build/tests/agents/tools/waitForAgentCompleted.test.js +0 -147
- package/ts_build/tests/agents/tools/waitForAgentCompleted.test.js.map +0 -1
- package/ts_build/tests/chat/detach-attach-rendering.test.d.ts +0 -1
- package/ts_build/tests/chat/detach-attach-rendering.test.js +0 -168
- package/ts_build/tests/chat/detach-attach-rendering.test.js.map +0 -1
- package/ts_build/tests/clients/AIClient.test.d.ts +0 -1
- package/ts_build/tests/clients/AIClient.test.js +0 -483
- package/ts_build/tests/clients/AIClient.test.js.map +0 -1
- package/ts_build/tests/clients/anthropic.test.d.ts +0 -1
- package/ts_build/tests/clients/anthropic.test.js +0 -159
- package/ts_build/tests/clients/anthropic.test.js.map +0 -1
- package/ts_build/tests/clients/contextLimits.test.d.ts +0 -1
- package/ts_build/tests/clients/contextLimits.test.js +0 -69
- package/ts_build/tests/clients/contextLimits.test.js.map +0 -1
- package/ts_build/tests/clients/fireworks.test.d.ts +0 -1
- package/ts_build/tests/clients/fireworks.test.js +0 -65
- package/ts_build/tests/clients/fireworks.test.js.map +0 -1
- package/ts_build/tests/clients/openai.images.test.d.ts +0 -1
- package/ts_build/tests/clients/openai.images.test.js +0 -94
- package/ts_build/tests/clients/openai.images.test.js.map +0 -1
- package/ts_build/tests/clients/pricing.test.d.ts +0 -1
- package/ts_build/tests/clients/pricing.test.js +0 -124
- package/ts_build/tests/clients/pricing.test.js.map +0 -1
- package/ts_build/tests/clients/reasoningEffort.test.d.ts +0 -1
- package/ts_build/tests/clients/reasoningEffort.test.js +0 -116
- package/ts_build/tests/clients/reasoningEffort.test.js.map +0 -1
- package/ts_build/tests/compressor/bigstring.test.d.ts +0 -1
- package/ts_build/tests/compressor/bigstring.test.js +0 -275
- package/ts_build/tests/compressor/bigstring.test.js.map +0 -1
- package/ts_build/tests/compressor/toolResponseCache.test.d.ts +0 -1
- package/ts_build/tests/compressor/toolResponseCache.test.js +0 -250
- package/ts_build/tests/compressor/toolResponseCache.test.js.map +0 -1
- package/ts_build/tests/compressor/usageBase64.test.d.ts +0 -1
- package/ts_build/tests/compressor/usageBase64.test.js +0 -109
- package/ts_build/tests/compressor/usageBase64.test.js.map +0 -1
- package/ts_build/tests/manual/agent-events/run-test.d.ts +0 -2
- package/ts_build/tests/manual/agent-events/run-test.js +0 -148
- package/ts_build/tests/manual/agent-events/run-test.js.map +0 -1
- package/ts_build/tests/manual/browser-login/test_browser_login_basic.d.ts +0 -2
- package/ts_build/tests/manual/browser-login/test_browser_login_basic.js +0 -118
- package/ts_build/tests/manual/browser-login/test_browser_login_basic.js.map +0 -1
- package/ts_build/tests/manual/browser-login/test_cli_integration.d.ts +0 -2
- package/ts_build/tests/manual/browser-login/test_cli_integration.js +0 -163
- package/ts_build/tests/manual/browser-login/test_cli_integration.js.map +0 -1
- package/ts_build/tests/manual/browser-login/test_cross_platform_browser.d.ts +0 -2
- package/ts_build/tests/manual/browser-login/test_cross_platform_browser.js +0 -169
- package/ts_build/tests/manual/browser-login/test_cross_platform_browser.js.map +0 -1
- package/ts_build/tests/manual/browser-login/test_error_scenarios.d.ts +0 -2
- package/ts_build/tests/manual/browser-login/test_error_scenarios.js +0 -207
- package/ts_build/tests/manual/browser-login/test_error_scenarios.js.map +0 -1
- package/ts_build/tests/manual/clients/completions.test.d.ts +0 -1
- package/ts_build/tests/manual/clients/completions.test.js +0 -151
- package/ts_build/tests/manual/clients/completions.test.js.map +0 -1
- package/ts_build/tests/manual/file-edits/figma.test.d.ts +0 -0
- package/ts_build/tests/manual/file-edits/figma.test.js +0 -2
- package/ts_build/tests/manual/file-edits/figma.test.js.map +0 -1
- package/ts_build/tests/manual/file-edits/fileblocks/readwrite.test.d.ts +0 -1
- package/ts_build/tests/manual/file-edits/fileblocks/readwrite.test.js +0 -110
- package/ts_build/tests/manual/file-edits/fileblocks/readwrite.test.js.map +0 -1
- package/ts_build/tests/manual/file-edits/patching.test.d.ts +0 -1
- package/ts_build/tests/manual/file-edits/patching.test.js +0 -129
- package/ts_build/tests/manual/file-edits/patching.test.js.map +0 -1
- package/ts_build/tests/manual/modalities/google.modalities.test.d.ts +0 -1
- package/ts_build/tests/manual/modalities/google.modalities.test.js +0 -262
- package/ts_build/tests/manual/modalities/google.modalities.test.js.map +0 -1
- package/ts_build/tests/manual/modalities/openai.modalities.test.d.ts +0 -1
- package/ts_build/tests/manual/modalities/openai.modalities.test.js +0 -262
- package/ts_build/tests/manual/modalities/openai.modalities.test.js.map +0 -1
- package/ts_build/tests/manual/modalities/streaming.test.d.ts +0 -1
- package/ts_build/tests/manual/modalities/streaming.test.js +0 -216
- package/ts_build/tests/manual/modalities/streaming.test.js.map +0 -1
- package/ts_build/tests/manual/modalities/xai.modalities.test.d.ts +0 -1
- package/ts_build/tests/manual/modalities/xai.modalities.test.js +0 -219
- package/ts_build/tests/manual/modalities/xai.modalities.test.js.map +0 -1
- package/ts_build/tests/manual/test-concurrent-ask.d.ts +0 -1
- package/ts_build/tests/manual/test-concurrent-ask.js +0 -22
- package/ts_build/tests/manual/test-concurrent-ask.js.map +0 -1
- package/ts_build/tests/manual/ycmd/debug_diagnostics_test.d.ts +0 -1
- package/ts_build/tests/manual/ycmd/debug_diagnostics_test.js +0 -124
- package/ts_build/tests/manual/ycmd/debug_diagnostics_test.js.map +0 -1
- package/ts_build/tests/manual/ycmd/minimal_advanced_test.d.ts +0 -2
- package/ts_build/tests/manual/ycmd/minimal_advanced_test.js +0 -114
- package/ts_build/tests/manual/ycmd/minimal_advanced_test.js.map +0 -1
- package/ts_build/tests/manual/ycmd/simple_diagnostics_test.d.ts +0 -1
- package/ts_build/tests/manual/ycmd/simple_diagnostics_test.js +0 -84
- package/ts_build/tests/manual/ycmd/simple_diagnostics_test.js.map +0 -1
- package/ts_build/tests/manual/ycmd/simple_test.d.ts +0 -2
- package/ts_build/tests/manual/ycmd/simple_test.js +0 -92
- package/ts_build/tests/manual/ycmd/simple_test.js.map +0 -1
- package/ts_build/tests/manual/ycmd/test-typescript-sample.d.ts +0 -14
- package/ts_build/tests/manual/ycmd/test-typescript-sample.js +0 -20
- package/ts_build/tests/manual/ycmd/test-typescript-sample.js.map +0 -1
- package/ts_build/tests/manual/ycmd/test_advanced_features.d.ts +0 -2
- package/ts_build/tests/manual/ycmd/test_advanced_features.js +0 -306
- package/ts_build/tests/manual/ycmd/test_advanced_features.js.map +0 -1
- package/ts_build/tests/manual/ycmd/test_advanced_with_tools.d.ts +0 -3
- package/ts_build/tests/manual/ycmd/test_advanced_with_tools.js +0 -271
- package/ts_build/tests/manual/ycmd/test_advanced_with_tools.js.map +0 -1
- package/ts_build/tests/manual/ycmd/test_comprehensive_typescript.d.ts +0 -2
- package/ts_build/tests/manual/ycmd/test_comprehensive_typescript.js +0 -196
- package/ts_build/tests/manual/ycmd/test_comprehensive_typescript.js.map +0 -1
- package/ts_build/tests/manual/ycmd/test_diagnostics_file_changes.d.ts +0 -1
- package/ts_build/tests/manual/ycmd/test_diagnostics_file_changes.js +0 -184
- package/ts_build/tests/manual/ycmd/test_diagnostics_file_changes.js.map +0 -1
- package/ts_build/tests/manual/ycmd/test_diagnostics_fix.d.ts +0 -2
- package/ts_build/tests/manual/ycmd/test_diagnostics_fix.js +0 -116
- package/ts_build/tests/manual/ycmd/test_diagnostics_fix.js.map +0 -1
- package/ts_build/tests/manual/ycmd/test_diagnostics_simple.d.ts +0 -1
- package/ts_build/tests/manual/ycmd/test_diagnostics_simple.js +0 -114
- package/ts_build/tests/manual/ycmd/test_diagnostics_simple.js.map +0 -1
- package/ts_build/tests/manual/ycmd/test_diagnostics_timing.d.ts +0 -1
- package/ts_build/tests/manual/ycmd/test_diagnostics_timing.js +0 -129
- package/ts_build/tests/manual/ycmd/test_diagnostics_timing.js.map +0 -1
- package/ts_build/tests/manual/ycmd/test_discover_commands.d.ts +0 -2
- package/ts_build/tests/manual/ycmd/test_discover_commands.js +0 -252
- package/ts_build/tests/manual/ycmd/test_discover_commands.js.map +0 -1
- package/ts_build/tests/manual/ycmd/test_endpoints.d.ts +0 -2
- package/ts_build/tests/manual/ycmd/test_endpoints.js +0 -130
- package/ts_build/tests/manual/ycmd/test_endpoints.js.map +0 -1
- package/ts_build/tests/manual/ycmd/test_final_comprehensive.d.ts +0 -2
- package/ts_build/tests/manual/ycmd/test_final_comprehensive.js +0 -231
- package/ts_build/tests/manual/ycmd/test_final_comprehensive.js.map +0 -1
- package/ts_build/tests/manual/ycmd/test_final_validation.d.ts +0 -2
- package/ts_build/tests/manual/ycmd/test_final_validation.js +0 -170
- package/ts_build/tests/manual/ycmd/test_final_validation.js.map +0 -1
- package/ts_build/tests/manual/ycmd/test_individual_ycmd_tool.d.ts +0 -2
- package/ts_build/tests/manual/ycmd/test_individual_ycmd_tool.js +0 -37
- package/ts_build/tests/manual/ycmd/test_individual_ycmd_tool.js.map +0 -1
- package/ts_build/tests/manual/ycmd/test_server_manager.d.ts +0 -1
- package/ts_build/tests/manual/ycmd/test_server_manager.js +0 -38
- package/ts_build/tests/manual/ycmd/test_server_manager.js.map +0 -1
- package/ts_build/tests/manual/ycmd/test_simple_debug.d.ts +0 -2
- package/ts_build/tests/manual/ycmd/test_simple_debug.js +0 -109
- package/ts_build/tests/manual/ycmd/test_simple_debug.js.map +0 -1
- package/ts_build/tests/manual/ycmd/test_tsserver_workflow.d.ts +0 -1
- package/ts_build/tests/manual/ycmd/test_tsserver_workflow.js +0 -138
- package/ts_build/tests/manual/ycmd/test_tsserver_workflow.js.map +0 -1
- package/ts_build/tests/manual/ycmd/test_typescript_simple.d.ts +0 -1
- package/ts_build/tests/manual/ycmd/test_typescript_simple.js +0 -76
- package/ts_build/tests/manual/ycmd/test_typescript_simple.js.map +0 -1
- package/ts_build/tests/manual/ycmd/test_typescript_ycmd.d.ts +0 -1
- package/ts_build/tests/manual/ycmd/test_typescript_ycmd.js +0 -115
- package/ts_build/tests/manual/ycmd/test_typescript_ycmd.js.map +0 -1
- package/ts_build/tests/manual/ycmd/test_workspace_config.d.ts +0 -1
- package/ts_build/tests/manual/ycmd/test_workspace_config.js +0 -99
- package/ts_build/tests/manual/ycmd/test_workspace_config.js.map +0 -1
- package/ts_build/tests/manual/ycmd/test_ycmd_auto_start.d.ts +0 -2
- package/ts_build/tests/manual/ycmd/test_ycmd_auto_start.js +0 -140
- package/ts_build/tests/manual/ycmd/test_ycmd_auto_start.js.map +0 -1
- package/ts_build/tests/manual/ycmd/test_ycmd_comprehensive.d.ts +0 -1
- package/ts_build/tests/manual/ycmd/test_ycmd_comprehensive.js +0 -93
- package/ts_build/tests/manual/ycmd/test_ycmd_comprehensive.js.map +0 -1
- package/ts_build/tests/manual/ycmd/test_ycmd_direct.d.ts +0 -2
- package/ts_build/tests/manual/ycmd/test_ycmd_direct.js +0 -159
- package/ts_build/tests/manual/ycmd/test_ycmd_direct.js.map +0 -1
- package/ts_build/tests/manual/ycmd/test_ycmd_experiment.d.ts +0 -15
- package/ts_build/tests/manual/ycmd/test_ycmd_experiment.js +0 -68
- package/ts_build/tests/manual/ycmd/test_ycmd_experiment.js.map +0 -1
- package/ts_build/tests/manual/ycmd/test_ycmd_final.d.ts +0 -2
- package/ts_build/tests/manual/ycmd/test_ycmd_final.js +0 -205
- package/ts_build/tests/manual/ycmd/test_ycmd_final.js.map +0 -1
- package/ts_build/tests/manual/ycmd/test_ycmd_integration.d.ts +0 -3
- package/ts_build/tests/manual/ycmd/test_ycmd_integration.js +0 -119
- package/ts_build/tests/manual/ycmd/test_ycmd_integration.js.map +0 -1
- package/ts_build/tests/manual/ycmd/test_ycmd_simple.d.ts +0 -2
- package/ts_build/tests/manual/ycmd/test_ycmd_simple.js +0 -36
- package/ts_build/tests/manual/ycmd/test_ycmd_simple.js.map +0 -1
- package/ts_build/tests/manual/ycmd/working_simple_test.d.ts +0 -2
- package/ts_build/tests/manual/ycmd/working_simple_test.js +0 -144
- package/ts_build/tests/manual/ycmd/working_simple_test.js.map +0 -1
- package/ts_build/tests/patching/corrupted.test.d.ts +0 -1
- package/ts_build/tests/patching/corrupted.test.js +0 -53
- package/ts_build/tests/patching/corrupted.test.js.map +0 -1
- package/ts_build/tests/patching/imports.test.d.ts +0 -1
- package/ts_build/tests/patching/imports.test.js +0 -71
- package/ts_build/tests/patching/imports.test.js.map +0 -1
- package/ts_build/tests/patching/patchFileOutput.test.d.ts +0 -1
- package/ts_build/tests/patching/patchFileOutput.test.js +0 -269
- package/ts_build/tests/patching/patchFileOutput.test.js.map +0 -1
- package/ts_build/tests/patching/regression-2026.test.d.ts +0 -1
- package/ts_build/tests/patching/regression-2026.test.js +0 -528
- package/ts_build/tests/patching/regression-2026.test.js.map +0 -1
- package/ts_build/tests/patching/transcriptMangleRegression.test.d.ts +0 -1
- package/ts_build/tests/patching/transcriptMangleRegression.test.js +0 -104
- package/ts_build/tests/patching/transcriptMangleRegression.test.js.map +0 -1
- package/ts_build/tests/plugins/language/languagePlugin-content-triggers.test.d.ts +0 -1
- package/ts_build/tests/plugins/language/languagePlugin-content-triggers.test.js +0 -294
- package/ts_build/tests/plugins/language/languagePlugin-content-triggers.test.js.map +0 -1
- package/ts_build/tests/plugins/language/languagePlugin-integration.test.d.ts +0 -1
- package/ts_build/tests/plugins/language/languagePlugin-integration.test.js +0 -343
- package/ts_build/tests/plugins/language/languagePlugin-integration.test.js.map +0 -1
- package/ts_build/tests/plugins/language/languagePlugin.test.d.ts +0 -1
- package/ts_build/tests/plugins/language/languagePlugin.test.js +0 -315
- package/ts_build/tests/plugins/language/languagePlugin.test.js.map +0 -1
- package/ts_build/tests/processes/managedProcessShim.test.d.ts +0 -1
- package/ts_build/tests/processes/managedProcessShim.test.js +0 -92
- package/ts_build/tests/processes/managedProcessShim.test.js.map +0 -1
- package/ts_build/tests/processors/Base64ImageDetector.test.d.ts +0 -1
- package/ts_build/tests/processors/Base64ImageDetector.test.js +0 -792
- package/ts_build/tests/processors/Base64ImageDetector.test.js.map +0 -1
- package/ts_build/tests/processors/CustomVariables.test.d.ts +0 -1
- package/ts_build/tests/processors/CustomVariables.test.js +0 -764
- package/ts_build/tests/processors/CustomVariables.test.js.map +0 -1
- package/ts_build/tests/processors/CustomVariablesBenchmark.test.d.ts +0 -1
- package/ts_build/tests/processors/CustomVariablesBenchmark.test.js +0 -179
- package/ts_build/tests/processors/CustomVariablesBenchmark.test.js.map +0 -1
- package/ts_build/tests/processors/HarmonyToolProcessor.test.d.ts +0 -1
- package/ts_build/tests/processors/HarmonyToolProcessor.test.js +0 -382
- package/ts_build/tests/processors/HarmonyToolProcessor.test.js.map +0 -1
- package/ts_build/tests/processors/TokenCompressor.test.d.ts +0 -1
- package/ts_build/tests/processors/TokenCompressor.test.js +0 -473
- package/ts_build/tests/processors/TokenCompressor.test.js.map +0 -1
- package/ts_build/tests/processors/ToolResponseCache.test.d.ts +0 -1
- package/ts_build/tests/processors/ToolResponseCache.test.js +0 -657
- package/ts_build/tests/processors/ToolResponseCache.test.js.map +0 -1
- package/ts_build/tests/processors/tools/boundedRetrievalTools.test.d.ts +0 -1
- package/ts_build/tests/processors/tools/boundedRetrievalTools.test.js +0 -57
- package/ts_build/tests/processors/tools/boundedRetrievalTools.test.js.map +0 -1
- package/ts_build/tests/processors/tools/grepToolResponse.test.d.ts +0 -1
- package/ts_build/tests/processors/tools/grepToolResponse.test.js +0 -77
- package/ts_build/tests/processors/tools/grepToolResponse.test.js.map +0 -1
- package/ts_build/tests/services/ConversionService.test.d.ts +0 -1
- package/ts_build/tests/services/ConversionService.test.js +0 -154
- package/ts_build/tests/services/ConversionService.test.js.map +0 -1
- package/ts_build/tests/services/DockerService.test.d.ts +0 -1
- package/ts_build/tests/services/DockerService.test.js +0 -22
- package/ts_build/tests/services/DockerService.test.js.map +0 -1
- package/ts_build/tests/services/Tools.test.d.ts +0 -1
- package/ts_build/tests/services/Tools.test.js +0 -1365
- package/ts_build/tests/services/Tools.test.js.map +0 -1
- package/ts_build/tests/services/ToolsService.setFunction.test.d.ts +0 -1
- package/ts_build/tests/services/ToolsService.setFunction.test.js +0 -51
- package/ts_build/tests/services/ToolsService.setFunction.test.js.map +0 -1
- package/ts_build/tests/services/WorkerReloadConfig.test.d.ts +0 -1
- package/ts_build/tests/services/WorkerReloadConfig.test.js +0 -86
- package/ts_build/tests/services/WorkerReloadConfig.test.js.map +0 -1
- package/ts_build/tests/test.spec.d.ts +0 -1
- package/ts_build/tests/test.spec.js +0 -139
- package/ts_build/tests/test.spec.js.map +0 -1
- package/ts_build/tests/unit/InputQueueManager.test.d.ts +0 -1
- package/ts_build/tests/unit/InputQueueManager.test.js +0 -104
- package/ts_build/tests/unit/InputQueueManager.test.js.map +0 -1
- package/ts_build/tests/unit/McpWebsocketTransport.test.d.ts +0 -1
- package/ts_build/tests/unit/McpWebsocketTransport.test.js +0 -47
- package/ts_build/tests/unit/McpWebsocketTransport.test.js.map +0 -1
- package/ts_build/tests/unit/agents/historyRollback.test.d.ts +0 -1
- package/ts_build/tests/unit/agents/historyRollback.test.js +0 -42
- package/ts_build/tests/unit/agents/historyRollback.test.js.map +0 -1
- package/ts_build/tests/unit/agents/tools/loadImageAsBase64.test.d.ts +0 -1
- package/ts_build/tests/unit/agents/tools/loadImageAsBase64.test.js +0 -67
- package/ts_build/tests/unit/agents/tools/loadImageAsBase64.test.js.map +0 -1
- package/ts_build/tests/unit/auth/jwtStore.test.d.ts +0 -1
- package/ts_build/tests/unit/auth/jwtStore.test.js +0 -46
- package/ts_build/tests/unit/auth/jwtStore.test.js.map +0 -1
- package/ts_build/tests/unit/auth/keyAuth.test.d.ts +0 -1
- package/ts_build/tests/unit/auth/keyAuth.test.js +0 -118
- package/ts_build/tests/unit/auth/keyAuth.test.js.map +0 -1
- package/ts_build/tests/unit/auth/keyManager.test.d.ts +0 -1
- package/ts_build/tests/unit/auth/keyManager.test.js +0 -96
- package/ts_build/tests/unit/auth/keyManager.test.js.map +0 -1
- package/ts_build/tests/unit/auth/registerIdentity.test.d.ts +0 -1
- package/ts_build/tests/unit/auth/registerIdentity.test.js +0 -92
- package/ts_build/tests/unit/auth/registerIdentity.test.js.map +0 -1
- package/ts_build/tests/unit/chat/ToolCommandModule.test.d.ts +0 -1
- package/ts_build/tests/unit/chat/ToolCommandModule.test.js +0 -61
- package/ts_build/tests/unit/chat/ToolCommandModule.test.js.map +0 -1
- package/ts_build/tests/unit/chat/historyCommandArgs.test.d.ts +0 -1
- package/ts_build/tests/unit/chat/historyCommandArgs.test.js +0 -29
- package/ts_build/tests/unit/chat/historyCommandArgs.test.js.map +0 -1
- package/ts_build/tests/unit/clients/AIClient.test.d.ts +0 -1
- package/ts_build/tests/unit/clients/AIClient.test.js +0 -342
- package/ts_build/tests/unit/clients/AIClient.test.js.map +0 -1
- package/ts_build/tests/unit/clients/anthropic.responseMetadata.test.d.ts +0 -1
- package/ts_build/tests/unit/clients/anthropic.responseMetadata.test.js +0 -77
- package/ts_build/tests/unit/clients/anthropic.responseMetadata.test.js.map +0 -1
- package/ts_build/tests/unit/clients/attribution.test.d.ts +0 -1
- package/ts_build/tests/unit/clients/attribution.test.js +0 -153
- package/ts_build/tests/unit/clients/attribution.test.js.map +0 -1
- package/ts_build/tests/unit/clients/http.responseMetadata.test.d.ts +0 -1
- package/ts_build/tests/unit/clients/http.responseMetadata.test.js +0 -77
- package/ts_build/tests/unit/clients/http.responseMetadata.test.js.map +0 -1
- package/ts_build/tests/unit/clients/openai.responseMetadata.test.d.ts +0 -1
- package/ts_build/tests/unit/clients/openai.responseMetadata.test.js +0 -86
- package/ts_build/tests/unit/clients/openai.responseMetadata.test.js.map +0 -1
- package/ts_build/tests/unit/clients/responseMetadata.test.d.ts +0 -1
- package/ts_build/tests/unit/clients/responseMetadata.test.js +0 -96
- package/ts_build/tests/unit/clients/responseMetadata.test.js.map +0 -1
- package/ts_build/tests/unit/clients/withRetry.test.d.ts +0 -1
- package/ts_build/tests/unit/clients/withRetry.test.js +0 -225
- package/ts_build/tests/unit/clients/withRetry.test.js.map +0 -1
- package/ts_build/tests/unit/commands/agents.test.d.ts +0 -1
- package/ts_build/tests/unit/commands/agents.test.js +0 -119
- package/ts_build/tests/unit/commands/agents.test.js.map +0 -1
- package/ts_build/tests/unit/commands/github-credentials.test.d.ts +0 -1
- package/ts_build/tests/unit/commands/github-credentials.test.js +0 -145
- package/ts_build/tests/unit/commands/github-credentials.test.js.map +0 -1
- package/ts_build/tests/unit/commands/misc.test.d.ts +0 -1
- package/ts_build/tests/unit/commands/misc.test.js +0 -70
- package/ts_build/tests/unit/commands/misc.test.js.map +0 -1
- package/ts_build/tests/unit/commands/remote.test.d.ts +0 -1
- package/ts_build/tests/unit/commands/remote.test.js +0 -70
- package/ts_build/tests/unit/commands/remote.test.js.map +0 -1
- package/ts_build/tests/unit/commands/sandbox.test.d.ts +0 -1
- package/ts_build/tests/unit/commands/sandbox.test.js +0 -258
- package/ts_build/tests/unit/commands/sandbox.test.js.map +0 -1
- package/ts_build/tests/unit/hashes.test.d.ts +0 -1
- package/ts_build/tests/unit/hashes.test.js +0 -25
- package/ts_build/tests/unit/hashes.test.js.map +0 -1
- package/ts_build/tests/unit/input-queue.test.d.ts +0 -1
- package/ts_build/tests/unit/input-queue.test.js +0 -32
- package/ts_build/tests/unit/input-queue.test.js.map +0 -1
- package/ts_build/tests/unit/login.test.d.ts +0 -1
- package/ts_build/tests/unit/login.test.js +0 -166
- package/ts_build/tests/unit/login.test.js.map +0 -1
- package/ts_build/tests/unit/modules/moduleLoading.test.d.ts +0 -1
- package/ts_build/tests/unit/modules/moduleLoading.test.js +0 -272
- package/ts_build/tests/unit/modules/moduleLoading.test.js.map +0 -1
- package/ts_build/tests/unit/plugins/pluginLoading.test.d.ts +0 -1
- package/ts_build/tests/unit/plugins/pluginLoading.test.js +0 -117
- package/ts_build/tests/unit/plugins/pluginLoading.test.js.map +0 -1
- package/ts_build/tests/unit/services/AgentSyncKnowhowWeb.test.d.ts +0 -1
- package/ts_build/tests/unit/services/AgentSyncKnowhowWeb.test.js +0 -32
- package/ts_build/tests/unit/services/AgentSyncKnowhowWeb.test.js.map +0 -1
- package/ts_build/tests/unit/services/KnowhowClient.test.d.ts +0 -1
- package/ts_build/tests/unit/services/KnowhowClient.test.js +0 -69
- package/ts_build/tests/unit/services/KnowhowClient.test.js.map +0 -1
- package/ts_build/tests/unit/services/LazyToolsService.test.d.ts +0 -1
- package/ts_build/tests/unit/services/LazyToolsService.test.js +0 -47
- package/ts_build/tests/unit/services/LazyToolsService.test.js.map +0 -1
- package/ts_build/tests/unit/services/Mcp.test.d.ts +0 -1
- package/ts_build/tests/unit/services/Mcp.test.js +0 -45
- package/ts_build/tests/unit/services/Mcp.test.js.map +0 -1
- package/ts_build/tests/unit/services/MinimalToolsService.test.d.ts +0 -1
- package/ts_build/tests/unit/services/MinimalToolsService.test.js +0 -320
- package/ts_build/tests/unit/services/MinimalToolsService.test.js.map +0 -1
- package/ts_build/tests/unit/services/RuntimeReloadService.test.d.ts +0 -1
- package/ts_build/tests/unit/services/RuntimeReloadService.test.js +0 -26
- package/ts_build/tests/unit/services/RuntimeReloadService.test.js.map +0 -1
- package/ts_build/tests/unit/services/SessionManager.test.d.ts +0 -1
- package/ts_build/tests/unit/services/SessionManager.test.js +0 -72
- package/ts_build/tests/unit/services/SessionManager.test.js.map +0 -1
- package/ts_build/tests/unit/services/SyncedAgentWatcher.test.d.ts +0 -1
- package/ts_build/tests/unit/services/SyncedAgentWatcher.test.js +0 -78
- package/ts_build/tests/unit/services/SyncedAgentWatcher.test.js.map +0 -1
- package/ts_build/tests/unit/services/SyncerService.test.d.ts +0 -1
- package/ts_build/tests/unit/services/SyncerService.test.js +0 -40
- package/ts_build/tests/unit/services/SyncerService.test.js.map +0 -1
- package/ts_build/tests/unit/tunnel.test.d.ts +0 -1
- package/ts_build/tests/unit/tunnel.test.js +0 -47
- package/ts_build/tests/unit/tunnel.test.js.map +0 -1
- package/ts_build/tests/unit/util/Trace.test.d.ts +0 -1
- package/ts_build/tests/unit/util/Trace.test.js +0 -107
- package/ts_build/tests/unit/util/Trace.test.js.map +0 -1
- package/ts_build/tests/unit/utils/http.test.d.ts +0 -1
- package/ts_build/tests/unit/utils/http.test.js +0 -69
- package/ts_build/tests/unit/utils/http.test.js.map +0 -1
- package/tsconfig.json +0 -34
- package/tslint.json +0 -11
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { ToolsService } from "../../src/services/Tools";
|
|
2
|
-
|
|
3
|
-
describe("ToolsService.setFunction bug with multiple registrations", () => {
|
|
4
|
-
let toolsService: ToolsService;
|
|
5
|
-
|
|
6
|
-
beforeEach(() => {
|
|
7
|
-
toolsService = new ToolsService();
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
it("should update function when setFunction is called multiple times with different implementations", () => {
|
|
11
|
-
// Simulate first TokenCompressor registering expandTokens
|
|
12
|
-
const storage1 = new Map();
|
|
13
|
-
storage1.set("key1", "data1");
|
|
14
|
-
|
|
15
|
-
const expandTokens1 = ({ key }: { key: string }) => {
|
|
16
|
-
const data = storage1.get(key);
|
|
17
|
-
if (!data) throw new Error(`No data found for key: ${key}`);
|
|
18
|
-
return data;
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
// Register the tool definition
|
|
22
|
-
toolsService.addTools([
|
|
23
|
-
{
|
|
24
|
-
type: "function",
|
|
25
|
-
function: {
|
|
26
|
-
name: "expandTokens",
|
|
27
|
-
description: "Retrieve compressed data",
|
|
28
|
-
parameters: {
|
|
29
|
-
type: "object",
|
|
30
|
-
properties: {
|
|
31
|
-
key: { type: "string", description: "The key" },
|
|
32
|
-
},
|
|
33
|
-
required: ["key"],
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
|
-
},
|
|
37
|
-
]);
|
|
38
|
-
|
|
39
|
-
// First registration
|
|
40
|
-
toolsService.setFunction("expandTokens", expandTokens1);
|
|
41
|
-
|
|
42
|
-
// Test first function works
|
|
43
|
-
const func1 = toolsService.getFunction("expandTokens");
|
|
44
|
-
expect(func1({ key: "key1" })).toBe("data1");
|
|
45
|
-
|
|
46
|
-
// Simulate second TokenCompressor registering expandTokens with NEW storage
|
|
47
|
-
const storage2 = new Map();
|
|
48
|
-
storage2.set("key2", "data2");
|
|
49
|
-
|
|
50
|
-
const expandTokens2 = ({ key }: { key: string }) => {
|
|
51
|
-
const data = storage2.get(key);
|
|
52
|
-
if (!data) throw new Error(`No data found for key: ${key}`);
|
|
53
|
-
return data;
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
// Second registration (simulating AgentModule creating new TokenCompressor)
|
|
57
|
-
toolsService.setFunction("expandTokens", expandTokens2);
|
|
58
|
-
|
|
59
|
-
// Test second function
|
|
60
|
-
const func2 = toolsService.getFunction("expandTokens");
|
|
61
|
-
|
|
62
|
-
// After fix: Should NOT work with old storage anymore
|
|
63
|
-
expect(() => func2({ key: "key1" })).toThrow("No data found for key: key1");
|
|
64
|
-
|
|
65
|
-
// After fix: Should work with NEW storage
|
|
66
|
-
expect(func2({ key: "key2" })).toBe("data2");
|
|
67
|
-
});
|
|
68
|
-
});
|
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tests for the worker reloadConfig message handler.
|
|
3
|
-
*
|
|
4
|
-
* We test the core logic in isolation — simulating the "reloadConfig" message
|
|
5
|
-
* arriving on the WebSocket and verifying that MCPs are torn down and
|
|
6
|
-
* re-connected, and that the tool list is rebuilt from fresh config.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import { McpService } from "../../src/services/Mcp";
|
|
10
|
-
import { ToolsService } from "../../src/services/Tools";
|
|
11
|
-
|
|
12
|
-
// ---------------------------------------------------------------------------
|
|
13
|
-
// Helpers: build the same reload logic that lives in worker.ts so we can
|
|
14
|
-
// test it in isolation without spinning up a real WebSocket server.
|
|
15
|
-
// ---------------------------------------------------------------------------
|
|
16
|
-
|
|
17
|
-
async function simulateReloadConfig(
|
|
18
|
-
Mcp: McpService,
|
|
19
|
-
Tools: ToolsService,
|
|
20
|
-
mcpServer: { withTools: (tools: unknown[]) => void },
|
|
21
|
-
getConfig: () => Promise<{ worker?: { allowedTools?: string[] } }>,
|
|
22
|
-
toolsToUseRef: { value: unknown[] }
|
|
23
|
-
) {
|
|
24
|
-
// This mirrors the handler in worker.ts
|
|
25
|
-
const freshConfig = await getConfig();
|
|
26
|
-
await Mcp.closeAll();
|
|
27
|
-
await Mcp.connectToConfigured(Tools);
|
|
28
|
-
const allowedToolNames =
|
|
29
|
-
freshConfig.worker?.allowedTools ?? Tools.getToolNames();
|
|
30
|
-
toolsToUseRef.value = Tools.getToolsByNames(allowedToolNames);
|
|
31
|
-
mcpServer.withTools(toolsToUseRef.value);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
// ---------------------------------------------------------------------------
|
|
35
|
-
// Tests
|
|
36
|
-
// ---------------------------------------------------------------------------
|
|
37
|
-
|
|
38
|
-
describe("Worker reloadConfig handler", () => {
|
|
39
|
-
let Mcp: McpService;
|
|
40
|
-
let Tools: ToolsService;
|
|
41
|
-
let mcpServer: { withTools: jest.Mock };
|
|
42
|
-
let toolsToUseRef: { value: unknown[] };
|
|
43
|
-
|
|
44
|
-
beforeEach(() => {
|
|
45
|
-
Mcp = new McpService();
|
|
46
|
-
Tools = new ToolsService();
|
|
47
|
-
mcpServer = { withTools: jest.fn() };
|
|
48
|
-
toolsToUseRef = { value: [] };
|
|
49
|
-
|
|
50
|
-
// Spy on MCP methods
|
|
51
|
-
jest.spyOn(Mcp, "closeAll").mockResolvedValue(undefined);
|
|
52
|
-
jest.spyOn(Mcp, "connectToConfigured").mockResolvedValue(undefined);
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
afterEach(() => {
|
|
56
|
-
jest.restoreAllMocks();
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
it("should call closeAll() to tear down existing MCP connections", async () => {
|
|
60
|
-
const getConfig = jest
|
|
61
|
-
.fn()
|
|
62
|
-
.mockResolvedValue({ worker: { allowedTools: [] } });
|
|
63
|
-
|
|
64
|
-
await simulateReloadConfig(Mcp, Tools, mcpServer, getConfig, toolsToUseRef);
|
|
65
|
-
|
|
66
|
-
expect(Mcp.closeAll).toHaveBeenCalledTimes(1);
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
it("should call connectToConfigured() to reconnect MCPs from fresh config", async () => {
|
|
70
|
-
const getConfig = jest
|
|
71
|
-
.fn()
|
|
72
|
-
.mockResolvedValue({ worker: { allowedTools: [] } });
|
|
73
|
-
|
|
74
|
-
await simulateReloadConfig(Mcp, Tools, mcpServer, getConfig, toolsToUseRef);
|
|
75
|
-
|
|
76
|
-
expect(Mcp.connectToConfigured).toHaveBeenCalledWith(Tools);
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
it("should rebuild the tool list from allowedTools in fresh config", async () => {
|
|
80
|
-
// Spy on getToolsByNames so we can track what names were requested
|
|
81
|
-
const toolsByNamesSpy = jest
|
|
82
|
-
.spyOn(Tools, "getToolsByNames")
|
|
83
|
-
.mockReturnValue([{ function: { name: "execCommand" } }] as ReturnType<ToolsService["getToolsByNames"]>);
|
|
84
|
-
|
|
85
|
-
const getConfig = jest
|
|
86
|
-
.fn()
|
|
87
|
-
.mockResolvedValue({ worker: { allowedTools: ["execCommand"] } });
|
|
88
|
-
|
|
89
|
-
await simulateReloadConfig(Mcp, Tools, mcpServer, getConfig, toolsToUseRef);
|
|
90
|
-
|
|
91
|
-
expect(toolsByNamesSpy).toHaveBeenCalledWith(["execCommand"]);
|
|
92
|
-
expect(toolsToUseRef.value).toHaveLength(1);
|
|
93
|
-
});
|
|
94
|
-
|
|
95
|
-
it("should fall back to all tool names when allowedTools is not set", async () => {
|
|
96
|
-
const allNames = ["execCommand", "readFile", "writeFileChunk"];
|
|
97
|
-
jest.spyOn(Tools, "getToolNames").mockReturnValue(allNames);
|
|
98
|
-
const toolsByNamesSpy = jest
|
|
99
|
-
.spyOn(Tools, "getToolsByNames")
|
|
100
|
-
.mockReturnValue([] as ReturnType<ToolsService["getToolsByNames"]>);
|
|
101
|
-
|
|
102
|
-
// Config has no worker.allowedTools
|
|
103
|
-
const getConfig = jest.fn().mockResolvedValue({});
|
|
104
|
-
|
|
105
|
-
await simulateReloadConfig(Mcp, Tools, mcpServer, getConfig, toolsToUseRef);
|
|
106
|
-
|
|
107
|
-
expect(toolsByNamesSpy).toHaveBeenCalledWith(allNames);
|
|
108
|
-
});
|
|
109
|
-
|
|
110
|
-
it("should call mcpServer.withTools() with the rebuilt tool list", async () => {
|
|
111
|
-
const fakeTools = [{ function: { name: "readFile" } }] as ReturnType<ToolsService["getToolsByNames"]>;
|
|
112
|
-
jest.spyOn(Tools, "getToolsByNames").mockReturnValue(fakeTools);
|
|
113
|
-
|
|
114
|
-
const getConfig = jest
|
|
115
|
-
.fn()
|
|
116
|
-
.mockResolvedValue({ worker: { allowedTools: ["readFile"] } });
|
|
117
|
-
|
|
118
|
-
await simulateReloadConfig(Mcp, Tools, mcpServer, getConfig, toolsToUseRef);
|
|
119
|
-
|
|
120
|
-
expect(mcpServer.withTools).toHaveBeenCalledWith(fakeTools);
|
|
121
|
-
});
|
|
122
|
-
|
|
123
|
-
it("should re-read the config on every reload (not use stale config)", async () => {
|
|
124
|
-
const getConfig = jest
|
|
125
|
-
.fn()
|
|
126
|
-
.mockResolvedValueOnce({ worker: { allowedTools: ["execCommand"] } })
|
|
127
|
-
.mockResolvedValueOnce({ worker: { allowedTools: ["readFile", "writeFileChunk"] } });
|
|
128
|
-
|
|
129
|
-
jest.spyOn(Tools, "getToolsByNames").mockReturnValue([]);
|
|
130
|
-
|
|
131
|
-
// First reload
|
|
132
|
-
await simulateReloadConfig(Mcp, Tools, mcpServer, getConfig, toolsToUseRef);
|
|
133
|
-
// Second reload
|
|
134
|
-
await simulateReloadConfig(Mcp, Tools, mcpServer, getConfig, toolsToUseRef);
|
|
135
|
-
|
|
136
|
-
expect(getConfig).toHaveBeenCalledTimes(2);
|
|
137
|
-
// Each reload should tear down and reconnect
|
|
138
|
-
expect(Mcp.closeAll).toHaveBeenCalledTimes(2);
|
|
139
|
-
expect(Mcp.connectToConfigured).toHaveBeenCalledTimes(2);
|
|
140
|
-
});
|
|
141
|
-
});
|
package/tests/test.spec.ts
DELETED
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
// Global mocks that need to be hoisted before any imports
|
|
2
|
-
jest.mock("../src/services/S3", () => ({
|
|
3
|
-
S3Service: jest.fn().mockImplementation(() => ({
|
|
4
|
-
uploadFile: jest.fn(),
|
|
5
|
-
downloadFile: jest.fn(),
|
|
6
|
-
uploadToPresignedUrl: jest.fn(),
|
|
7
|
-
downloadFromPresignedUrl: jest.fn(),
|
|
8
|
-
})),
|
|
9
|
-
}));
|
|
10
|
-
jest.mock("@aws-sdk/client-s3", () => ({
|
|
11
|
-
S3Client: jest.fn(),
|
|
12
|
-
}));
|
|
13
|
-
jest.mock("fs");
|
|
14
|
-
jest.mock("../src/plugins/plugins");
|
|
15
|
-
jest.mock("../src/utils");
|
|
16
|
-
jest.mock("../src/agents/tools/lintFile");
|
|
17
|
-
jest.mock("../src/index");
|
|
18
|
-
|
|
19
|
-
// Import modules after mocking
|
|
20
|
-
import * as fs from "fs";
|
|
21
|
-
import {
|
|
22
|
-
embeddingSearch,
|
|
23
|
-
readFile,
|
|
24
|
-
scanFile,
|
|
25
|
-
modifyFile,
|
|
26
|
-
execCommand,
|
|
27
|
-
writeFile,
|
|
28
|
-
} from "../src/agents/tools";
|
|
29
|
-
import { services } from "../src/services";
|
|
30
|
-
import { patchFile } from "../src/agents/tools/patch";
|
|
31
|
-
import { fileExists } from "../src/utils";
|
|
32
|
-
import * as utils from "../src/utils";
|
|
33
|
-
import { lintFile } from "../src/agents/tools/lintFile";
|
|
34
|
-
import { embed } from "../src/index";
|
|
35
|
-
|
|
36
|
-
const mockFs = jest.mocked(fs);
|
|
37
|
-
const mockServices = jest.mocked(services);
|
|
38
|
-
const mockUtils = jest.mocked(utils);
|
|
39
|
-
const mockLintFile = jest.mocked(lintFile);
|
|
40
|
-
const mockEmbed = jest.mocked(embed);
|
|
41
|
-
|
|
42
|
-
describe("Agent Tools Tests", () => {
|
|
43
|
-
test("searchFiles should call the embeddings plugin with the correct keyword", async () => {
|
|
44
|
-
const { Plugins } = mockServices();
|
|
45
|
-
const expectedResult = JSON.stringify({ files: ["test1.js", "test2.js"] });
|
|
46
|
-
const mocked = Plugins as jest.Mocked<typeof Plugins>;
|
|
47
|
-
const keyword = "test";
|
|
48
|
-
|
|
49
|
-
// Setting up the plugin to return the expected result
|
|
50
|
-
mocked.call.mockResolvedValue(expectedResult);
|
|
51
|
-
|
|
52
|
-
const result = await embeddingSearch(keyword);
|
|
53
|
-
|
|
54
|
-
// Verifying that the plugin was called with the correct keyword
|
|
55
|
-
expect(Plugins.call).toHaveBeenCalledWith("embeddings", keyword);
|
|
56
|
-
// Verifying that the function returns the expected result
|
|
57
|
-
expect(result).toBe(expectedResult);
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
test("readFile should return the content of a file", async () => {
|
|
61
|
-
const filePath = "test.txt";
|
|
62
|
-
const fileContent = "Hello World";
|
|
63
|
-
|
|
64
|
-
mockUtils.fileExists.mockResolvedValue(true);
|
|
65
|
-
|
|
66
|
-
// Mock readFile to return the fileContent
|
|
67
|
-
mockFs.readFileSync.mockReturnValue(fileContent);
|
|
68
|
-
|
|
69
|
-
const result = await readFile(filePath);
|
|
70
|
-
|
|
71
|
-
// Verify readFile was called with the correct file path
|
|
72
|
-
expect(mockFs.readFileSync).toHaveBeenCalledWith(filePath, "utf8");
|
|
73
|
-
// Verify the result is a patch (since readFile now returns patch format)
|
|
74
|
-
expect(result).toContain(fileContent);
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
test("scanFile should return the contents of a specified range of lines from a file", () => {
|
|
78
|
-
const filePath = "test.txt";
|
|
79
|
-
const fileContentLines = ["Line1", "Line2", "Line3", "Line4", "Line5"];
|
|
80
|
-
const startLine = 3;
|
|
81
|
-
const endLine = 3;
|
|
82
|
-
|
|
83
|
-
// Mock fs.readFileSync to return joined fileContentLines
|
|
84
|
-
mockFs.readFileSync.mockReturnValue(fileContentLines.join("\n"));
|
|
85
|
-
|
|
86
|
-
const result = scanFile(filePath, startLine, endLine);
|
|
87
|
-
|
|
88
|
-
// Verify fs.readFileSync was called with the correct file path
|
|
89
|
-
expect(mockFs.readFileSync).toHaveBeenCalledWith(filePath, "utf8");
|
|
90
|
-
// Verify that the correct range of lines is returned
|
|
91
|
-
expect(result).toBe(
|
|
92
|
-
JSON.stringify([
|
|
93
|
-
[1, "Line1"],
|
|
94
|
-
[2, "Line2"],
|
|
95
|
-
[3, "Line3"],
|
|
96
|
-
[4, "Line4"],
|
|
97
|
-
[5, "Line5"],
|
|
98
|
-
])
|
|
99
|
-
);
|
|
100
|
-
});
|
|
101
|
-
|
|
102
|
-
test("writeFile should write the full contents to a file", () => {
|
|
103
|
-
const filePath = "testWrite.txt";
|
|
104
|
-
const contentToWrite = "Writing to file";
|
|
105
|
-
|
|
106
|
-
// Mock fs.writeFileSync to not actually write to disk
|
|
107
|
-
mockFs.writeFileSync.mockImplementation(() => {});
|
|
108
|
-
|
|
109
|
-
const result = writeFile(filePath, contentToWrite);
|
|
110
|
-
|
|
111
|
-
// Verify fs.writeFileSync was called with the correct arguments
|
|
112
|
-
expect(mockFs.writeFileSync).toHaveBeenCalledWith(filePath, contentToWrite);
|
|
113
|
-
// Verify the function returns a success message
|
|
114
|
-
expect(result).toBe(`File ${filePath} written`);
|
|
115
|
-
});
|
|
116
|
-
|
|
117
|
-
test("applyPatchFile should apply a patch to a file", async () => {
|
|
118
|
-
const filePath = "testPatch.txt";
|
|
119
|
-
const originalContent = "Original content\n";
|
|
120
|
-
const patch = "@@ -1,1 +1,1 @@\n-Original content\n+Patched content\n";
|
|
121
|
-
|
|
122
|
-
// Mock fs.existsSync to return true (file exists)
|
|
123
|
-
mockFs.existsSync.mockReturnValue(true);
|
|
124
|
-
|
|
125
|
-
// Mock the utilities that patchFile uses
|
|
126
|
-
mockUtils.readFile.mockResolvedValue(originalContent);
|
|
127
|
-
mockUtils.writeFile.mockResolvedValue(undefined);
|
|
128
|
-
mockUtils.fileExists.mockResolvedValue(true);
|
|
129
|
-
mockUtils.mkdir.mockResolvedValue(undefined);
|
|
130
|
-
mockUtils.splitByNewLines.mockImplementation((text: string) =>
|
|
131
|
-
text.split(/\r?\n/)
|
|
132
|
-
);
|
|
133
|
-
mockLintFile.mockResolvedValue("");
|
|
134
|
-
mockEmbed.mockResolvedValue(undefined);
|
|
135
|
-
|
|
136
|
-
const result = await patchFile(filePath, patch);
|
|
137
|
-
|
|
138
|
-
// Verify the function returns a success message
|
|
139
|
-
expect(result).toContain("Patch applied to");
|
|
140
|
-
}, 60000); // Increase timeout to 60 seconds
|
|
141
|
-
|
|
142
|
-
test("execCommand should execute a system command and return its output", async () => {
|
|
143
|
-
const command = 'echo "Hello World"';
|
|
144
|
-
const expectedOutput = '$ echo "Hello World"\nHello World\n';
|
|
145
|
-
|
|
146
|
-
// Use the execCommand and expect it to return the correct result
|
|
147
|
-
const result = await execCommand(command);
|
|
148
|
-
expect(result).toEqual(expectedOutput);
|
|
149
|
-
});
|
|
150
|
-
|
|
151
|
-
test("execCommand should return an error message if the command fails", async () => {
|
|
152
|
-
const command = "exit 1";
|
|
153
|
-
const expectedOutput = "$ exit 1\nCommand failed: exit 1";
|
|
154
|
-
|
|
155
|
-
// Use the execCommand and expect it to return the correct result
|
|
156
|
-
const result = await execCommand(command);
|
|
157
|
-
expect(result.trim()).toEqual(expectedOutput);
|
|
158
|
-
});
|
|
159
|
-
|
|
160
|
-
test("it should run a test", () => {
|
|
161
|
-
expect(true).toEqual(true);
|
|
162
|
-
});
|
|
163
|
-
});
|
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
import { InputQueueManager } from "../../src/utils/InputQueueManager";
|
|
2
|
-
|
|
3
|
-
describe("InputQueueManager history ordering", () => {
|
|
4
|
-
test("should use only passed-in history for navigation", () => {
|
|
5
|
-
const manager = new InputQueueManager();
|
|
6
|
-
|
|
7
|
-
// Simulate history passed to ask() (oldest -> newest)
|
|
8
|
-
const history = ["old1", "old2", "old3"];
|
|
9
|
-
|
|
10
|
-
// Access the private getHistory method via reflection for testing
|
|
11
|
-
const getHistory = (manager as any).getHistory.bind(manager);
|
|
12
|
-
|
|
13
|
-
// Simulate having a current question with history
|
|
14
|
-
(manager as any).stack = [{
|
|
15
|
-
question: "test",
|
|
16
|
-
options: [],
|
|
17
|
-
history: history,
|
|
18
|
-
resolve: () => {}
|
|
19
|
-
}];
|
|
20
|
-
|
|
21
|
-
const result = getHistory();
|
|
22
|
-
|
|
23
|
-
// Should return history in oldest->newest order (same as passed in)
|
|
24
|
-
expect(result).toEqual(["old1", "old2", "old3"]);
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
test("should sanitize history entries", () => {
|
|
28
|
-
const manager = new InputQueueManager();
|
|
29
|
-
|
|
30
|
-
// History with entries that need sanitization
|
|
31
|
-
const history = ["normal", "has\nnewline", " spaces ", ""];
|
|
32
|
-
|
|
33
|
-
const getHistory = (manager as any).getHistory.bind(manager);
|
|
34
|
-
|
|
35
|
-
(manager as any).stack = [{
|
|
36
|
-
question: "test",
|
|
37
|
-
options: [],
|
|
38
|
-
history: history,
|
|
39
|
-
resolve: () => {}
|
|
40
|
-
}];
|
|
41
|
-
|
|
42
|
-
const result = getHistory();
|
|
43
|
-
|
|
44
|
-
// Should sanitize: remove newlines, trim whitespace, filter empty
|
|
45
|
-
expect(result).toEqual(["normal", "has newline", "spaces"]);
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
test("should return empty array when no history provided", () => {
|
|
49
|
-
const manager = new InputQueueManager();
|
|
50
|
-
|
|
51
|
-
const getHistory = (manager as any).getHistory.bind(manager);
|
|
52
|
-
|
|
53
|
-
// No history in stack
|
|
54
|
-
(manager as any).stack = [{
|
|
55
|
-
question: "test",
|
|
56
|
-
options: [],
|
|
57
|
-
history: undefined,
|
|
58
|
-
resolve: () => {}
|
|
59
|
-
}];
|
|
60
|
-
|
|
61
|
-
const result = getHistory();
|
|
62
|
-
|
|
63
|
-
expect(result).toEqual([]);
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
test("should return empty array when stack is empty", () => {
|
|
67
|
-
const manager = new InputQueueManager();
|
|
68
|
-
|
|
69
|
-
const getHistory = (manager as any).getHistory.bind(manager);
|
|
70
|
-
|
|
71
|
-
// Empty stack
|
|
72
|
-
(manager as any).stack = [];
|
|
73
|
-
|
|
74
|
-
const result = getHistory();
|
|
75
|
-
|
|
76
|
-
expect(result).toEqual([]);
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
test("Verify historyIndex math for first Up press", () => {
|
|
80
|
-
// History array: ["old1", "old2", "recent"]
|
|
81
|
-
// length = 3
|
|
82
|
-
// First Up: historyIndex becomes 0
|
|
83
|
-
// Index to access: length - 1 - historyIndex = 3 - 1 - 0 = 2
|
|
84
|
-
// history[2] = "recent" ✓
|
|
85
|
-
|
|
86
|
-
const history = ["old1", "old2", "recent"];
|
|
87
|
-
const historyIndex = 0; // After first Up press
|
|
88
|
-
const accessIndex = history.length - 1 - historyIndex;
|
|
89
|
-
|
|
90
|
-
expect(accessIndex).toBe(2);
|
|
91
|
-
expect(history[accessIndex]).toBe("recent");
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
test("Verify historyIndex math for multiple Up presses", () => {
|
|
95
|
-
// History array: ["old1", "old2", "recent"]
|
|
96
|
-
// length = 3
|
|
97
|
-
const history = ["old1", "old2", "recent"];
|
|
98
|
-
|
|
99
|
-
// First Up: historyIndex = 0
|
|
100
|
-
expect(history[history.length - 1 - 0]).toBe("recent");
|
|
101
|
-
|
|
102
|
-
// Second Up: historyIndex = 1
|
|
103
|
-
expect(history[history.length - 1 - 1]).toBe("old2");
|
|
104
|
-
|
|
105
|
-
// Third Up: historyIndex = 2
|
|
106
|
-
expect(history[history.length - 1 - 2]).toBe("old1");
|
|
107
|
-
});
|
|
108
|
-
|
|
109
|
-
test("onNewEntry callback is called when set", () => {
|
|
110
|
-
const manager = new InputQueueManager();
|
|
111
|
-
const entries: string[] = [];
|
|
112
|
-
|
|
113
|
-
manager.setOnNewEntry((entry) => {
|
|
114
|
-
entries.push(entry);
|
|
115
|
-
});
|
|
116
|
-
|
|
117
|
-
// Verify callback is stored (we can't easily test the actual Enter key behavior without mocking readline)
|
|
118
|
-
expect((manager as any).onNewEntry).toBeDefined();
|
|
119
|
-
});
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
describe("InputQueueManager with CliChatService integration pattern", () => {
|
|
123
|
-
test("new entries should appear in history for next ask() call", () => {
|
|
124
|
-
// This test verifies the pattern used by CliChatService:
|
|
125
|
-
// 1. ask() is called with current inputHistory
|
|
126
|
-
// 2. User types and presses Enter
|
|
127
|
-
// 3. onNewEntry callback adds entry to inputHistory
|
|
128
|
-
// 4. Next ask() call includes the new entry
|
|
129
|
-
|
|
130
|
-
const inputHistory: string[] = ["old1", "old2"];
|
|
131
|
-
const manager = new InputQueueManager();
|
|
132
|
-
|
|
133
|
-
// Set up callback (like CliChatService does)
|
|
134
|
-
manager.setOnNewEntry((entry) => {
|
|
135
|
-
if (!entry.startsWith("/") && entry.trim() !== "") {
|
|
136
|
-
inputHistory.push(entry);
|
|
137
|
-
}
|
|
138
|
-
});
|
|
139
|
-
|
|
140
|
-
// Simulate: first ask() call with current history
|
|
141
|
-
const getHistory = (manager as any).getHistory.bind(manager);
|
|
142
|
-
(manager as any).stack = [{
|
|
143
|
-
question: "test",
|
|
144
|
-
options: [],
|
|
145
|
-
history: [...inputHistory], // snapshot at time of ask()
|
|
146
|
-
resolve: () => {}
|
|
147
|
-
}];
|
|
148
|
-
|
|
149
|
-
let result = getHistory();
|
|
150
|
-
expect(result).toEqual(["old1", "old2"]);
|
|
151
|
-
|
|
152
|
-
// Simulate: user presses Enter with "new message"
|
|
153
|
-
// The callback fires (in real code this happens in the 'line' event)
|
|
154
|
-
(manager as any).onNewEntry("new message");
|
|
155
|
-
|
|
156
|
-
// inputHistory is now updated
|
|
157
|
-
expect(inputHistory).toEqual(["old1", "old2", "new message"]);
|
|
158
|
-
|
|
159
|
-
// Simulate: next ask() call with updated history
|
|
160
|
-
(manager as any).stack = [{
|
|
161
|
-
question: "test2",
|
|
162
|
-
options: [],
|
|
163
|
-
history: [...inputHistory], // new snapshot includes "new message"
|
|
164
|
-
resolve: () => {}
|
|
165
|
-
}];
|
|
166
|
-
|
|
167
|
-
result = getHistory();
|
|
168
|
-
expect(result).toEqual(["old1", "old2", "new message"]);
|
|
169
|
-
|
|
170
|
-
// Press Up: should get "new message" (the most recent)
|
|
171
|
-
const historyIndex = 0;
|
|
172
|
-
expect(result[result.length - 1 - historyIndex]).toBe("new message");
|
|
173
|
-
});
|
|
174
|
-
});
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from "events";
|
|
2
|
-
import { WebSocket } from "ws";
|
|
3
|
-
import { MCPWebSocketTransport } from "../../src/services/McpWebsocketTransport";
|
|
4
|
-
|
|
5
|
-
class TestSocket extends EventEmitter {
|
|
6
|
-
readyState = WebSocket.OPEN;
|
|
7
|
-
// Simulate send() calling the callback immediately (required by MCPWebSocketTransport.send())
|
|
8
|
-
send = jest.fn((data: string, cb?: (err?: Error) => void) => { cb?.(); });
|
|
9
|
-
close = jest.fn();
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
const flush = () => new Promise<void>((resolve) => setImmediate(resolve));
|
|
13
|
-
|
|
14
|
-
describe("MCPWebSocketTransport", () => {
|
|
15
|
-
it("delivers valid JSON-RPC frames to onmessage", async () => {
|
|
16
|
-
const socket = new TestSocket();
|
|
17
|
-
const transport = new MCPWebSocketTransport(socket as unknown as WebSocket);
|
|
18
|
-
const response = { jsonrpc: "2.0", id: 1, result: {} };
|
|
19
|
-
transport.onmessage = jest.fn();
|
|
20
|
-
transport.onerror = jest.fn();
|
|
21
|
-
|
|
22
|
-
await transport.start();
|
|
23
|
-
socket.emit("message", JSON.stringify(response));
|
|
24
|
-
await flush();
|
|
25
|
-
await flush();
|
|
26
|
-
|
|
27
|
-
expect(transport.onmessage).toHaveBeenCalledWith(response);
|
|
28
|
-
expect(transport.onerror).not.toHaveBeenCalled();
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
it("calls onerror for invalid JSON-RPC frames", async () => {
|
|
32
|
-
const socket = new TestSocket();
|
|
33
|
-
const transport = new MCPWebSocketTransport(socket as unknown as WebSocket);
|
|
34
|
-
const invalid = { notJsonRpc: true };
|
|
35
|
-
transport.onmessage = jest.fn();
|
|
36
|
-
transport.onerror = jest.fn();
|
|
37
|
-
|
|
38
|
-
await transport.start();
|
|
39
|
-
socket.emit("message", JSON.stringify(invalid));
|
|
40
|
-
await flush();
|
|
41
|
-
|
|
42
|
-
expect(transport.onmessage).not.toHaveBeenCalled();
|
|
43
|
-
expect(transport.onerror).toHaveBeenCalled();
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
it("sends serialized JSON over the socket", async () => {
|
|
47
|
-
const socket = new TestSocket();
|
|
48
|
-
const transport = new MCPWebSocketTransport(socket as unknown as WebSocket);
|
|
49
|
-
await transport.start();
|
|
50
|
-
|
|
51
|
-
const msg = { jsonrpc: "2.0" as const, method: "ping", id: 42 };
|
|
52
|
-
await transport.send(msg);
|
|
53
|
-
|
|
54
|
-
expect(socket.send).toHaveBeenCalledWith(JSON.stringify(msg), expect.any(Function));
|
|
55
|
-
});
|
|
56
|
-
});
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { rollbackAgentInteractions } from "../../../src/agents/historyRollback";
|
|
2
|
-
import { Message } from "../../../src/clients/types";
|
|
3
|
-
|
|
4
|
-
const message = (role: Message["role"], content: string): Message => ({ role, content });
|
|
5
|
-
|
|
6
|
-
describe("rollbackAgentInteractions", () => {
|
|
7
|
-
const threads: Message[][] = [[
|
|
8
|
-
message("user", "request"),
|
|
9
|
-
message("assistant", "first"),
|
|
10
|
-
message("tool", "first result"),
|
|
11
|
-
message("assistant", "second"),
|
|
12
|
-
message("tool", "second result"),
|
|
13
|
-
]];
|
|
14
|
-
|
|
15
|
-
it("clones history without changing it when rollback is zero", () => {
|
|
16
|
-
const result = rollbackAgentInteractions(threads, 0);
|
|
17
|
-
expect(result).toEqual(threads);
|
|
18
|
-
expect(result).not.toBe(threads);
|
|
19
|
-
expect(result[0]).not.toBe(threads[0]);
|
|
20
|
-
expect(result[0][0]).not.toBe(threads[0][0]);
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
it("removes the newest assistant and its following tool results", () => {
|
|
24
|
-
expect(rollbackAgentInteractions(threads, 1)).toEqual([threads[0].slice(0, 3)]);
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
it("can remove multiple interactions", () => {
|
|
28
|
-
expect(rollbackAgentInteractions(threads, 2)).toEqual([[threads[0][0]]]);
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
it("removes a trailing assistant without tools", () => {
|
|
32
|
-
const input = [[message("user", "request"), message("assistant", "tail")]];
|
|
33
|
-
expect(rollbackAgentInteractions(input, 1)).toEqual([[input[0][0]]]);
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
it.each([-1, 1.5])("rejects invalid rollback %p", (rollback) => {
|
|
37
|
-
expect(() => rollbackAgentInteractions(threads, rollback)).toThrow(
|
|
38
|
-
"rollback must be a non-negative integer"
|
|
39
|
-
);
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
it("rejects rollback beyond available interactions", () => {
|
|
43
|
-
expect(() => rollbackAgentInteractions(threads, 3)).toThrow(
|
|
44
|
-
"only has 2 assistant interaction(s)"
|
|
45
|
-
);
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
it("does not mutate input history", () => {
|
|
49
|
-
const before = JSON.stringify(threads);
|
|
50
|
-
rollbackAgentInteractions(threads, 1);
|
|
51
|
-
expect(JSON.stringify(threads)).toBe(before);
|
|
52
|
-
});
|
|
53
|
-
});
|