@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.
- package/package.json +2 -2
- package/ts_build/package.json +2 -2
- 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,314 +0,0 @@
|
|
|
1
|
-
import * as path from "path";
|
|
2
|
-
import * as os from "os";
|
|
3
|
-
import * as Module from "module";
|
|
4
|
-
|
|
5
|
-
import { getConfig, getGlobalConfig } from "../../config";
|
|
6
|
-
import { KnowhowModule, ModuleContext } from "./types";
|
|
7
|
-
import { services } from "../";
|
|
8
|
-
import { toUniqueArray } from "../../utils";
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Module resolution search paths.
|
|
12
|
-
*
|
|
13
|
-
* A module's resolution order depends on WHICH config declared it:
|
|
14
|
-
*
|
|
15
|
-
* - Modules declared in the GLOBAL config should resolve against the global
|
|
16
|
-
* install's node_modules (~/.knowhow/node_modules) — i.e. what's installed
|
|
17
|
-
* alongside the global config. We still fall back to cwd paths as a last
|
|
18
|
-
* resort so a globally-declared module can still be found if it only exists
|
|
19
|
-
* locally.
|
|
20
|
-
*
|
|
21
|
-
* - Modules declared in the LOCAL config should resolve against the local
|
|
22
|
-
* project first (cwd/.knowhow/node_modules), then the global config's
|
|
23
|
-
* node_modules (~/.knowhow/node_modules), then cwd/node_modules.
|
|
24
|
-
*/
|
|
25
|
-
function localResolvePaths(): string[] {
|
|
26
|
-
return [
|
|
27
|
-
path.join(process.cwd(), ".knowhow", "node_modules"),
|
|
28
|
-
path.join(os.homedir(), ".knowhow", "node_modules"),
|
|
29
|
-
path.join(process.cwd(), "node_modules"),
|
|
30
|
-
];
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
function globalResolvePaths(): string[] {
|
|
34
|
-
return [
|
|
35
|
-
path.join(os.homedir(), ".knowhow", "node_modules"),
|
|
36
|
-
path.join(process.cwd(), ".knowhow", "node_modules"),
|
|
37
|
-
path.join(process.cwd(), "node_modules"),
|
|
38
|
-
];
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export class ModulesService {
|
|
42
|
-
private _loadedModules: {
|
|
43
|
-
modulePath: string;
|
|
44
|
-
resolvedPath: string;
|
|
45
|
-
module: KnowhowModule;
|
|
46
|
-
params: any;
|
|
47
|
-
}[] = [];
|
|
48
|
-
|
|
49
|
-
async getDefaultContext() {
|
|
50
|
-
return { ...services() };
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
async overrideDefaultContext(overrides: Partial<ModuleContext>) {
|
|
54
|
-
const defaultContext = await this.getDefaultContext();
|
|
55
|
-
return { ...defaultContext, ...overrides };
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
async loadModulesFrom(
|
|
59
|
-
config: { modules: string[] } & any,
|
|
60
|
-
context?: Partial<ModuleContext>,
|
|
61
|
-
resolvePaths: string[] = localResolvePaths()
|
|
62
|
-
) {
|
|
63
|
-
// If no context provided, fall back to global singletons
|
|
64
|
-
if (!context) {
|
|
65
|
-
context = { ...(await this.getDefaultContext()) };
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
// Prepend the global knowhow install's own node_modules to Node's global module
|
|
69
|
-
// search paths so that locally-installed modules (loaded from .knowhow/node_modules)
|
|
70
|
-
// that depend on @tyvm/knowhow resolve to the current global version rather than
|
|
71
|
-
// a stale bundled copy.
|
|
72
|
-
const globalKnowhowNodeModules = path.join(__dirname, "../../../../node_modules");
|
|
73
|
-
const globalPaths = (Module as any).globalPaths as string[];
|
|
74
|
-
if (globalPaths && !globalPaths.includes(globalKnowhowNodeModules)) {
|
|
75
|
-
globalPaths.unshift(globalKnowhowNodeModules);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
const allModulePaths = config.modules;
|
|
79
|
-
|
|
80
|
-
// `resolvePaths` (passed in by the caller) determines the search-path order.
|
|
81
|
-
// Global-config modules resolve against ~/.knowhow/node_modules first; local-config
|
|
82
|
-
// modules resolve against cwd/.knowhow/node_modules first. See localResolvePaths()
|
|
83
|
-
// and globalResolvePaths() above.
|
|
84
|
-
|
|
85
|
-
// Two-phase load:
|
|
86
|
-
// Phase 1 (register): resolve + require EVERY module and run its optional
|
|
87
|
-
// `register()`, which may (a) register CLI subcommands on Program and
|
|
88
|
-
// (b) inject shared services into `context` (e.g. `ComputerUse`) so that
|
|
89
|
-
// sibling/adapter modules loaded later can consume them.
|
|
90
|
-
// Phase 2 (init): run every loaded module's `init()`, now that all
|
|
91
|
-
// services registered during phase 1 are present. This lets, e.g., a
|
|
92
|
-
// `-nutjs` adapter module register a driver against the base
|
|
93
|
-
// computer-use service during phase 1, and the base module resolve the
|
|
94
|
-
// best driver during phase 2.
|
|
95
|
-
const loadedModules: {
|
|
96
|
-
modulePath: string;
|
|
97
|
-
resolvedPath: string;
|
|
98
|
-
module: KnowhowModule;
|
|
99
|
-
}[] = [];
|
|
100
|
-
|
|
101
|
-
for (const modulePath of allModulePaths) {
|
|
102
|
-
// Build an ordered list of candidate resolutions for this module.
|
|
103
|
-
// Relative paths resolve to a single candidate (relative to cwd), while
|
|
104
|
-
// npm package names get one candidate per search path so we can fall
|
|
105
|
-
// back to the global install if a locally-symlinked (e.g. workspace dev)
|
|
106
|
-
// build fails to load (wrong Node ABI, broken build, etc.).
|
|
107
|
-
const candidates: string[] = [];
|
|
108
|
-
if (modulePath.startsWith(".")) {
|
|
109
|
-
candidates.push(path.resolve(process.cwd(), modulePath));
|
|
110
|
-
} else {
|
|
111
|
-
// For npm package names, resolve against each search path individually
|
|
112
|
-
// (in priority order) so each becomes its own fallback candidate.
|
|
113
|
-
for (const searchPath of resolvePaths) {
|
|
114
|
-
try {
|
|
115
|
-
const resolved = require.resolve(modulePath, {
|
|
116
|
-
paths: [searchPath],
|
|
117
|
-
});
|
|
118
|
-
if (!candidates.includes(resolved)) candidates.push(resolved);
|
|
119
|
-
} catch {
|
|
120
|
-
// this search path doesn't have the module — try the next one
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
// Finally, normal require resolution as a last resort.
|
|
124
|
-
try {
|
|
125
|
-
const resolved = require.resolve(modulePath);
|
|
126
|
-
if (!candidates.includes(resolved)) candidates.push(resolved);
|
|
127
|
-
} catch {
|
|
128
|
-
// ignore — will fall through to the bare name below
|
|
129
|
-
}
|
|
130
|
-
if (candidates.length === 0) candidates.push(modulePath);
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
// Try each candidate in order. Only if EVERY candidate fails to load do
|
|
134
|
-
// we surface an error — a failure on one candidate (e.g. a stale local
|
|
135
|
-
// workspace build) should silently fall back to the next (e.g. the
|
|
136
|
-
// global install).
|
|
137
|
-
let importedModule: KnowhowModule;
|
|
138
|
-
let loaded = false;
|
|
139
|
-
let selectedResolvedPath = modulePath;
|
|
140
|
-
const errors: { candidate: string; error: Error }[] = [];
|
|
141
|
-
for (const resolvedPath of candidates) {
|
|
142
|
-
try {
|
|
143
|
-
const rawModule = require(resolvedPath);
|
|
144
|
-
importedModule = (rawModule.default || rawModule) as KnowhowModule;
|
|
145
|
-
context.Events?.log(
|
|
146
|
-
"ModulesService",
|
|
147
|
-
`🔌 Loading module: ${modulePath} (resolved: ${resolvedPath})`
|
|
148
|
-
);
|
|
149
|
-
// Phase 1: register (optional). Injects services into `context` and
|
|
150
|
-
// registers CLI commands. Must be idempotent (may run in the early
|
|
151
|
-
// Program-only CLI phase AND the full-services phase).
|
|
152
|
-
if (typeof importedModule.register === "function") {
|
|
153
|
-
await importedModule.register({
|
|
154
|
-
config,
|
|
155
|
-
cwd: process.cwd(),
|
|
156
|
-
context: context as ModuleContext,
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
selectedResolvedPath = resolvedPath;
|
|
160
|
-
loaded = true;
|
|
161
|
-
break;
|
|
162
|
-
} catch (err: any) {
|
|
163
|
-
errors.push({ candidate: resolvedPath, error: err });
|
|
164
|
-
// try the next candidate
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
if (!loaded) {
|
|
169
|
-
// All candidates failed — report the last (most fully-resolved) error.
|
|
170
|
-
const last = errors[errors.length - 1];
|
|
171
|
-
const detail = last
|
|
172
|
-
? `${last.error.message}`
|
|
173
|
-
: "no resolvable module found";
|
|
174
|
-
process.stderr.write(
|
|
175
|
-
`\n⚠️ Failed to load module "${modulePath}": ${detail}\n` +
|
|
176
|
-
` Tried: ${candidates.join(", ") || "(none)"}\n` +
|
|
177
|
-
` Run "knowhow modules setup --global" or "knowhow modules install ${modulePath} --global" to fix this.\n\n`
|
|
178
|
-
);
|
|
179
|
-
continue;
|
|
180
|
-
}
|
|
181
|
-
loadedModules.push({
|
|
182
|
-
modulePath,
|
|
183
|
-
resolvedPath: selectedResolvedPath,
|
|
184
|
-
module: importedModule,
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
// Phase 2: init every successfully-loaded module now that all `register`
|
|
189
|
-
// phases have run and injected their services into `context`.
|
|
190
|
-
for (const { modulePath, resolvedPath, module: importedModule } of loadedModules) {
|
|
191
|
-
const initParams = { config, cwd: process.cwd(), context: context as ModuleContext };
|
|
192
|
-
try {
|
|
193
|
-
await importedModule.init({
|
|
194
|
-
config,
|
|
195
|
-
cwd: process.cwd(),
|
|
196
|
-
context: context as ModuleContext,
|
|
197
|
-
});
|
|
198
|
-
context.Events?.log(
|
|
199
|
-
"ModulesService",
|
|
200
|
-
`✅ Module initialized: ${modulePath} (tools: ${importedModule.tools.length}, agents: ${importedModule.agents.length}, plugins: ${importedModule.plugins.length}, clients: ${importedModule.clients.length})`
|
|
201
|
-
);
|
|
202
|
-
} catch (err: any) {
|
|
203
|
-
process.stderr.write(
|
|
204
|
-
`\n⚠️ Failed to init module "${modulePath}": ${err?.message || err}\n\n`
|
|
205
|
-
);
|
|
206
|
-
continue;
|
|
207
|
-
}
|
|
208
|
-
this._loadedModules.push({ modulePath, resolvedPath, module: importedModule, params: initParams });
|
|
209
|
-
|
|
210
|
-
context.Extensions?.removeOwner(modulePath);
|
|
211
|
-
for (const extension of importedModule.extensions ?? []) {
|
|
212
|
-
context.Extensions?.register(modulePath, extension);
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
// Only register tools/agents/plugins/clients if the relevant services
|
|
216
|
-
// are available in context (they may not be during early CLI command registration)
|
|
217
|
-
if (context.Agents) {
|
|
218
|
-
for (const agent of importedModule.agents) {
|
|
219
|
-
context.Agents.registerAgent(agent);
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
if (context.Tools) {
|
|
224
|
-
for (const tool of importedModule.tools) {
|
|
225
|
-
context.Tools.addTool(tool.definition);
|
|
226
|
-
context.Tools.setFunction(
|
|
227
|
-
tool.definition.function.name,
|
|
228
|
-
tool.handler
|
|
229
|
-
);
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
if (context.Plugins) {
|
|
234
|
-
for (const plugin of importedModule.plugins) {
|
|
235
|
-
context.Plugins.registerPlugin(
|
|
236
|
-
plugin.name,
|
|
237
|
-
new plugin.plugin(context as any)
|
|
238
|
-
);
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
if (context.Clients) {
|
|
243
|
-
for (const client of importedModule.clients) {
|
|
244
|
-
context.Clients.registerClient(client.provider, client.client);
|
|
245
|
-
context.Clients.registerModels(client.provider, client.models);
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
/**
|
|
252
|
-
* Call `destroy()` on every successfully-initialized module, in reverse
|
|
253
|
-
* initialization order (last-in, first-out). Errors are caught and logged
|
|
254
|
-
* so one broken module does not prevent others from cleaning up.
|
|
255
|
-
*/
|
|
256
|
-
async destroyModules() {
|
|
257
|
-
const toDestroy = [...this._loadedModules].reverse();
|
|
258
|
-
// Clear first so repeated shutdown/reload attempts cannot destroy twice.
|
|
259
|
-
this._loadedModules = [];
|
|
260
|
-
for (const { modulePath, resolvedPath, module: mod, params } of toDestroy) {
|
|
261
|
-
params.context?.Extensions?.removeOwner(modulePath);
|
|
262
|
-
if (typeof mod.destroy === "function") {
|
|
263
|
-
try {
|
|
264
|
-
await mod.destroy(params);
|
|
265
|
-
} catch (err: any) {
|
|
266
|
-
process.stderr.write(
|
|
267
|
-
`\n⚠️ Error in module destroy "${modulePath}": ${err?.message || err}\n\n`
|
|
268
|
-
);
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
// Re-require the entry point so source/configuration changes are visible.
|
|
272
|
-
if (require.cache[resolvedPath]) {
|
|
273
|
-
delete require.cache[resolvedPath];
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
async loadModulesFromConfig(context?: ModuleContext) {
|
|
279
|
-
const config = await getConfig();
|
|
280
|
-
|
|
281
|
-
const globalConfig = await getGlobalConfig();
|
|
282
|
-
|
|
283
|
-
const globalModules = toUniqueArray(globalConfig.modules || []);
|
|
284
|
-
// Local modules already loaded globally shouldn't be loaded again (a module
|
|
285
|
-
// that adds a CLI command would throw "already have command"). De-dupe local
|
|
286
|
-
// against global.
|
|
287
|
-
const localModules = toUniqueArray(config.modules || []).filter(
|
|
288
|
-
(m) => !globalModules.includes(m)
|
|
289
|
-
);
|
|
290
|
-
|
|
291
|
-
// Load global-config modules resolving against the global install's
|
|
292
|
-
// node_modules (~/.knowhow/node_modules) first.
|
|
293
|
-
// Pass a merged config so that keys defined in the global config (e.g.
|
|
294
|
-
// `tracing`) are visible to globally-declared modules during init().
|
|
295
|
-
// Local config keys take precedence so that local overrides still work.
|
|
296
|
-
if (globalModules.length > 0) {
|
|
297
|
-
await this.loadModulesFrom(
|
|
298
|
-
{ ...globalConfig, ...config, modules: globalModules },
|
|
299
|
-
context,
|
|
300
|
-
globalResolvePaths()
|
|
301
|
-
);
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
// Load local-config modules resolving against the local project's
|
|
305
|
-
// node_modules (cwd/.knowhow/node_modules) first.
|
|
306
|
-
if (localModules.length > 0) {
|
|
307
|
-
await this.loadModulesFrom(
|
|
308
|
-
{ ...config, modules: localModules },
|
|
309
|
-
context,
|
|
310
|
-
localResolvePaths()
|
|
311
|
-
);
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
}
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import { Plugin, PluginContext } from "../../plugins/types";
|
|
2
|
-
import { Command } from "commander";
|
|
3
|
-
import { IAgent } from "../../agents/interface";
|
|
4
|
-
import { Tool } from "../../clients/types";
|
|
5
|
-
import { Config } from "../../types";
|
|
6
|
-
import { GenericClient } from "../../clients/types";
|
|
7
|
-
import { AgentService } from "../AgentService";
|
|
8
|
-
import { EmbeddingsService } from "../EmbeddingsService";
|
|
9
|
-
import { PluginService } from "../../plugins/plugins";
|
|
10
|
-
import { AIClient } from "../../clients";
|
|
11
|
-
import { ToolsService } from "../Tools";
|
|
12
|
-
import { MediaProcessorService } from "../MediaProcessorService";
|
|
13
|
-
import { TunnelHandler } from "@tyvm/knowhow-tunnel";
|
|
14
|
-
import { EventService } from "../EventService";
|
|
15
|
-
import { ConversionService } from "../conversion/ConversionService";
|
|
16
|
-
import { BehaviorsService } from "../BehaviorsService";
|
|
17
|
-
import { ComputerUseService } from "./computerUse";
|
|
18
|
-
import { ExtensionsService, ModuleExtension } from "../ExtensionsService";
|
|
19
|
-
|
|
20
|
-
import { TracingService as TracingServiceType } from "../TracingService";
|
|
21
|
-
/*
|
|
22
|
-
*
|
|
23
|
-
* A a module should allow the dynamic composition of npm modules that are installed globally by referencing an array of config
|
|
24
|
-
*
|
|
25
|
-
* A module can add new commands to the chat loop, new tools, new agents, new plugins, new clients, new server features etc.
|
|
26
|
-
*
|
|
27
|
-
*/
|
|
28
|
-
export interface ModuleChatCommand {
|
|
29
|
-
name: string;
|
|
30
|
-
description: string;
|
|
31
|
-
handler: (ctx: any) => void;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export interface ModuleTool {
|
|
35
|
-
name: string;
|
|
36
|
-
handler: (...args: any[]) => any;
|
|
37
|
-
definition: Tool;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export type ModuleAgent = IAgent;
|
|
41
|
-
|
|
42
|
-
export type PluginConstructor = new (context: PluginContext) => Plugin;
|
|
43
|
-
export type ModulePlugin = { name: string; plugin: PluginConstructor };
|
|
44
|
-
|
|
45
|
-
export type ModuleClient = {
|
|
46
|
-
client: GenericClient;
|
|
47
|
-
provider: string;
|
|
48
|
-
models: string[];
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
export type InitParams = {
|
|
52
|
-
config: Config;
|
|
53
|
-
cwd: string;
|
|
54
|
-
context?: ModuleContext;
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
export interface ModuleContext {
|
|
58
|
-
Agents: AgentService;
|
|
59
|
-
Embeddings: EmbeddingsService;
|
|
60
|
-
Plugins: PluginService;
|
|
61
|
-
Clients: AIClient;
|
|
62
|
-
Tools: ToolsService;
|
|
63
|
-
Events: EventService;
|
|
64
|
-
MediaProcessor?: MediaProcessorService;
|
|
65
|
-
Conversion?: ConversionService;
|
|
66
|
-
Tunnel?: TunnelHandler;
|
|
67
|
-
Program?: Command;
|
|
68
|
-
Behaviors?: BehaviorsService;
|
|
69
|
-
ComputerUse?: ComputerUseService;
|
|
70
|
-
Extensions?: ExtensionsService;
|
|
71
|
-
[key: string]: any;
|
|
72
|
-
Tracing?: typeof TracingServiceType;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
export interface KnowhowModule {
|
|
76
|
-
/**
|
|
77
|
-
* Phase 1 (optional): called first, potentially with ONLY `Program` in
|
|
78
|
-
* context (e.g. during early CLI command registration). Use this to:
|
|
79
|
-
* - register CLI subcommands on `context.Program`
|
|
80
|
-
* - inject services into the shared context (e.g.
|
|
81
|
-
* `context.Tools?.addContext("ComputerUse", svc)`) so that OTHER modules
|
|
82
|
-
* (or a sibling adapter module) can consume them during their own init.
|
|
83
|
-
*
|
|
84
|
-
* `register` must be side-effect-light and MUST NOT assume the full service
|
|
85
|
-
* graph is present — only `Program` is guaranteed during the early phase.
|
|
86
|
-
* It may be called more than once (early CLI phase + full-services phase);
|
|
87
|
-
* implementations should be idempotent.
|
|
88
|
-
*/
|
|
89
|
-
register?: (params: InitParams) => Promise<void>;
|
|
90
|
-
/**
|
|
91
|
-
* Phase 2: called with the full service graph available. Use this to
|
|
92
|
-
* actually connect/start things (open drivers, spin up watchers, read
|
|
93
|
-
* services registered by other modules' `register` phase, etc.).
|
|
94
|
-
*/
|
|
95
|
-
init: (params: InitParams) => Promise<void>;
|
|
96
|
-
/**
|
|
97
|
-
* Phase 3 (optional): called when the CLI is shutting down. Use this to
|
|
98
|
-
* cleanly release resources — close connections, flush buffers, stop
|
|
99
|
-
* watchers, etc. Mirror of `init`.
|
|
100
|
-
*/
|
|
101
|
-
destroy?: (params: InitParams) => Promise<void>;
|
|
102
|
-
commands: ModuleChatCommand[];
|
|
103
|
-
/** Optional capabilities consumed by core or third-party services. */
|
|
104
|
-
extensions?: ModuleExtension[];
|
|
105
|
-
tools: ModuleTool[];
|
|
106
|
-
agents: ModuleAgent[];
|
|
107
|
-
plugins: ModulePlugin[];
|
|
108
|
-
clients: ModuleClient[];
|
|
109
|
-
}
|
package/src/services/types.ts
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { Tool } from "../clients/types";
|
|
2
|
-
|
|
3
|
-
export type ToolOverrideFunction = (
|
|
4
|
-
originalArgs: any[],
|
|
5
|
-
originalTool: Tool
|
|
6
|
-
) => Promise<any> | any;
|
|
7
|
-
|
|
8
|
-
export interface ToolOverrideRegistration {
|
|
9
|
-
pattern: string | RegExp;
|
|
10
|
-
override: ToolOverrideFunction;
|
|
11
|
-
priority: number;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export type ToolWrapper = (
|
|
15
|
-
originalFunction: (...args: any[]) => any,
|
|
16
|
-
originalArgs: any[],
|
|
17
|
-
originalTool: Tool
|
|
18
|
-
) => Promise<any> | any;
|
|
19
|
-
|
|
20
|
-
export interface ToolWrapperRegistration {
|
|
21
|
-
pattern: string | RegExp;
|
|
22
|
-
wrapper: ToolWrapper;
|
|
23
|
-
priority: number;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export interface PatternMatcher {
|
|
27
|
-
matches(toolName: string): boolean;
|
|
28
|
-
pattern: string | RegExp;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export class StringPatternMatcher implements PatternMatcher {
|
|
32
|
-
constructor(public pattern: string) {}
|
|
33
|
-
|
|
34
|
-
matches(toolName: string): boolean {
|
|
35
|
-
// Convert glob pattern to regex
|
|
36
|
-
const regexPattern = this.pattern
|
|
37
|
-
.replace(/[.+^${}()|[\]\\]/g, "\\$&") // Escape special regex chars except * and ?
|
|
38
|
-
.replace(/\*/g, ".*") // Convert * to .*
|
|
39
|
-
.replace(/\?/g, "."); // Convert ? to .
|
|
40
|
-
|
|
41
|
-
const regex = new RegExp(`^${regexPattern}$`);
|
|
42
|
-
return regex.test(toolName);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export class RegexPatternMatcher implements PatternMatcher {
|
|
47
|
-
constructor(public pattern: RegExp) {}
|
|
48
|
-
|
|
49
|
-
matches(toolName: string): boolean {
|
|
50
|
-
return this.pattern.test(toolName);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export function createPatternMatcher(pattern: string | RegExp): PatternMatcher {
|
|
55
|
-
if (typeof pattern === "string") {
|
|
56
|
-
return new StringPatternMatcher(pattern);
|
|
57
|
-
} else {
|
|
58
|
-
return new RegexPatternMatcher(pattern);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
@@ -1,199 +0,0 @@
|
|
|
1
|
-
import fs from "fs";
|
|
2
|
-
import fsPromises from "fs/promises";
|
|
3
|
-
import path from "path";
|
|
4
|
-
|
|
5
|
-
import { SyncedAgentWatcher } from "../SyncedAgentWatcher";
|
|
6
|
-
import { messagesToRenderEvents } from "../../chat/renderer/messagesToRenderEvents";
|
|
7
|
-
import { EventService } from "../EventService";
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Watches an agent running in another process via the filesystem.
|
|
11
|
-
* Reads .knowhow/processes/agents/<taskId>/metadata.json for changes.
|
|
12
|
-
* Sends messages by writing to .knowhow/processes/agents/<taskId>/input.txt
|
|
13
|
-
*/
|
|
14
|
-
export class FsSyncedAgentWatcher implements SyncedAgentWatcher {
|
|
15
|
-
public taskId: string = "";
|
|
16
|
-
private taskPath: string = "";
|
|
17
|
-
private watcher: fs.FSWatcher | null = null;
|
|
18
|
-
private lastThreadIndex: number = -1;
|
|
19
|
-
private lastThreadLength: number = 0;
|
|
20
|
-
private lastMessageJson: string | null = null;
|
|
21
|
-
public agentName: string = "unknown";
|
|
22
|
-
private debounceTimer: NodeJS.Timeout | null = null;
|
|
23
|
-
public agentEvents = new EventService();
|
|
24
|
-
public eventTypes = {
|
|
25
|
-
done: "done",
|
|
26
|
-
toolCall: "tool:pre_call",
|
|
27
|
-
toolUsed: "tool:post_call",
|
|
28
|
-
agentSay: "agent:say",
|
|
29
|
-
threadUpdate: "thread_update",
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
async startWatching(taskId: string): Promise<void> {
|
|
33
|
-
this.taskId = taskId;
|
|
34
|
-
this.taskPath = path.join(".knowhow/processes/agents", taskId);
|
|
35
|
-
|
|
36
|
-
// Load initial state to track current thread length (for delta rendering)
|
|
37
|
-
const metadata = await this.readMetadata();
|
|
38
|
-
if (metadata) {
|
|
39
|
-
const threads: any[][] = metadata.threads || [];
|
|
40
|
-
const lastThread = threads[threads.length - 1] || [];
|
|
41
|
-
this.agentName = metadata.agentName || taskId;
|
|
42
|
-
this.lastThreadIndex = threads.length - 1;
|
|
43
|
-
this.lastThreadLength = lastThread.length;
|
|
44
|
-
this.lastMessageJson = this.messageJson(lastThread[lastThread.length - 1]);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
// Watch the directory for metadata.json changes
|
|
48
|
-
try {
|
|
49
|
-
this.watcher = fs.watch(this.taskPath, (event, filename) => {
|
|
50
|
-
if (filename === "metadata.json" || filename === null) {
|
|
51
|
-
// Debounce rapid file writes
|
|
52
|
-
if (this.debounceTimer) clearTimeout(this.debounceTimer);
|
|
53
|
-
this.debounceTimer = setTimeout(() => {
|
|
54
|
-
this.onMetadataChanged().catch(() => {});
|
|
55
|
-
}, 200);
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
} catch (err: any) {
|
|
59
|
-
console.warn(`⚠️ Could not watch ${this.taskPath}: ${err.message}`);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
console.log(`👁️ Watching fs-synced agent: ${taskId} (${this.agentName})`);
|
|
63
|
-
console.log(
|
|
64
|
-
` Type /logs 20 to see recent messages, or type to send a message`
|
|
65
|
-
);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
private async onMetadataChanged(): Promise<void> {
|
|
69
|
-
const metadata = await this.readMetadata();
|
|
70
|
-
if (!metadata?.threads) return;
|
|
71
|
-
|
|
72
|
-
const threads: any[][] = metadata.threads;
|
|
73
|
-
const lastThread = threads[threads.length - 1] || [];
|
|
74
|
-
|
|
75
|
-
const threadIndex = threads.length - 1;
|
|
76
|
-
let newMessages: any[];
|
|
77
|
-
if (
|
|
78
|
-
threadIndex === this.lastThreadIndex &&
|
|
79
|
-
lastThread.length >= this.lastThreadLength
|
|
80
|
-
) {
|
|
81
|
-
newMessages = lastThread.slice(this.lastThreadLength);
|
|
82
|
-
} else {
|
|
83
|
-
const retainedIndex = this.findLastMessage(
|
|
84
|
-
lastThread,
|
|
85
|
-
this.lastMessageJson
|
|
86
|
-
);
|
|
87
|
-
newMessages = lastThread.slice(retainedIndex + 1);
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
this.lastThreadIndex = threadIndex;
|
|
91
|
-
this.lastThreadLength = lastThread.length;
|
|
92
|
-
this.lastMessageJson = this.messageJson(lastThread[lastThread.length - 1]);
|
|
93
|
-
|
|
94
|
-
// Only render NEW messages since last check
|
|
95
|
-
if (newMessages.length > 0) {
|
|
96
|
-
const renderEvents = messagesToRenderEvents(
|
|
97
|
-
newMessages,
|
|
98
|
-
this.taskId,
|
|
99
|
-
this.agentName
|
|
100
|
-
);
|
|
101
|
-
for (const event of renderEvents) {
|
|
102
|
-
if (event.type === "toolCall") {
|
|
103
|
-
this.agentEvents.emit(this.eventTypes.toolCall, {
|
|
104
|
-
toolCall: (event as any).toolCall,
|
|
105
|
-
});
|
|
106
|
-
} else if (event.type === "toolResult") {
|
|
107
|
-
this.agentEvents.emit(this.eventTypes.toolUsed, {
|
|
108
|
-
toolCall: (event as any).toolCall,
|
|
109
|
-
functionResp: (event as any).result,
|
|
110
|
-
});
|
|
111
|
-
} else if (event.type === "agentMessage") {
|
|
112
|
-
this.agentEvents.emit(this.eventTypes.agentSay, {
|
|
113
|
-
message: (event as any).message,
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
this.agentEvents.emit(this.eventTypes.threadUpdate, lastThread);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
// Emit done if the agent has completed and has a result
|
|
121
|
-
const status = metadata.status;
|
|
122
|
-
const result = metadata.result;
|
|
123
|
-
if ((status === "completed" || status === "killed") && result != null) {
|
|
124
|
-
this.stopWatching();
|
|
125
|
-
this.agentEvents.emit(this.eventTypes.done, result);
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
async sendMessage(message: string): Promise<void> {
|
|
130
|
-
const inputPath = path.join(this.taskPath, "input.txt");
|
|
131
|
-
await fsPromises.writeFile(inputPath, message, "utf8");
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
async getThreads(): Promise<any[][]> {
|
|
135
|
-
const metadata = await this.readMetadata();
|
|
136
|
-
return metadata?.threads || [];
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
stopWatching(): void {
|
|
140
|
-
if (this.debounceTimer) {
|
|
141
|
-
clearTimeout(this.debounceTimer);
|
|
142
|
-
this.debounceTimer = null;
|
|
143
|
-
}
|
|
144
|
-
this.watcher?.close();
|
|
145
|
-
this.watcher = null;
|
|
146
|
-
console.log(`🔌 Stopped watching agent: ${this.taskId}`);
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
async pause(): Promise<void> {
|
|
150
|
-
const statusPath = path.join(this.taskPath, "status.txt");
|
|
151
|
-
await fsPromises.writeFile(statusPath, "paused", "utf8");
|
|
152
|
-
console.log(`⏸️ Paused remote agent: ${this.taskId}`);
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
async unpause(): Promise<void> {
|
|
156
|
-
const statusPath = path.join(this.taskPath, "status.txt");
|
|
157
|
-
await fsPromises.writeFile(statusPath, "running", "utf8");
|
|
158
|
-
console.log(`▶️ Unpaused remote agent: ${this.taskId}`);
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
async kill(): Promise<void> {
|
|
162
|
-
const statusPath = path.join(this.taskPath, "status.txt");
|
|
163
|
-
await fsPromises.writeFile(statusPath, "killed", "utf8");
|
|
164
|
-
console.log(`🛑 Killed remote agent: ${this.taskId}`);
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
async interrupt(message?: string): Promise<void> {
|
|
168
|
-
const inputPath = path.join(this.taskPath, "input.txt");
|
|
169
|
-
await fsPromises.writeFile(inputPath, `/poke ${message || ""}`.trim(), "utf8");
|
|
170
|
-
console.log(`🫵 Interrupt written to input for agent: ${this.taskId}`);
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
private messageJson(message: any): string | null {
|
|
174
|
-
if (message == null) return null;
|
|
175
|
-
try {
|
|
176
|
-
return JSON.stringify(message);
|
|
177
|
-
} catch {
|
|
178
|
-
return null;
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
private findLastMessage(messages: any[], messageJson: string | null): number {
|
|
183
|
-
if (messageJson == null) return -1;
|
|
184
|
-
for (let index = messages.length - 1; index >= 0; index--) {
|
|
185
|
-
if (this.messageJson(messages[index]) === messageJson) return index;
|
|
186
|
-
}
|
|
187
|
-
return -1;
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
private async readMetadata(): Promise<any> {
|
|
191
|
-
try {
|
|
192
|
-
const metaPath = path.join(this.taskPath, "metadata.json");
|
|
193
|
-
const content = await fsPromises.readFile(metaPath, "utf8");
|
|
194
|
-
return JSON.parse(content);
|
|
195
|
-
} catch {
|
|
196
|
-
return null;
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
}
|