@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,79 +0,0 @@
|
|
|
1
|
-
import { ToolsService } from "../../services/Tools";
|
|
2
|
-
import { services } from "../../services";
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* List all skills currently loaded in memory.
|
|
6
|
-
* Returns a formatted string of name: description lines.
|
|
7
|
-
*/
|
|
8
|
-
export async function listSkills(this: ToolsService): Promise<string> {
|
|
9
|
-
const toolService =
|
|
10
|
-
this instanceof ToolsService ? (this as ToolsService) : services().Tools;
|
|
11
|
-
|
|
12
|
-
const { Behaviors } = toolService.getContext();
|
|
13
|
-
|
|
14
|
-
const skills = Behaviors.listSkills();
|
|
15
|
-
if (skills.length === 0) {
|
|
16
|
-
return "No skills available. Run `knowhow behaviors download --skills-only` to fetch skills.";
|
|
17
|
-
}
|
|
18
|
-
return skills.map((s) => `- ${s.name}: ${s.description}`).join("\n");
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Load full instructions for a named skill from memory.
|
|
23
|
-
*/
|
|
24
|
-
export async function loadSkill(
|
|
25
|
-
this: ToolsService,
|
|
26
|
-
name: string
|
|
27
|
-
): Promise<string> {
|
|
28
|
-
const toolService =
|
|
29
|
-
this instanceof ToolsService ? (this as ToolsService) : services().Tools;
|
|
30
|
-
|
|
31
|
-
const { Behaviors } = toolService.getContext();
|
|
32
|
-
|
|
33
|
-
const skill = Behaviors.findSkill(name);
|
|
34
|
-
if (!skill) {
|
|
35
|
-
const names = Behaviors.listSkills()
|
|
36
|
-
.map((s) => s.name)
|
|
37
|
-
.join(", ");
|
|
38
|
-
return `Skill "${name}" not found. Available skills: ${names || "none"}`;
|
|
39
|
-
}
|
|
40
|
-
return `## Skill: ${skill.name}\n\n${skill.instructions}`;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/** Tool definitions for listSkills + loadSkill */
|
|
44
|
-
export const skillsToolDefinitions = [
|
|
45
|
-
{
|
|
46
|
-
type: "function" as const,
|
|
47
|
-
function: {
|
|
48
|
-
name: "listSkills",
|
|
49
|
-
description:
|
|
50
|
-
"List all available skills by name and description. Call this to discover what skills are available before loading one.",
|
|
51
|
-
parameters: {
|
|
52
|
-
type: "object" as const,
|
|
53
|
-
positional: true,
|
|
54
|
-
properties: {} as Record<string, never>,
|
|
55
|
-
required: [] as string[],
|
|
56
|
-
},
|
|
57
|
-
},
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
type: "function" as const,
|
|
61
|
-
function: {
|
|
62
|
-
name: "loadSkill",
|
|
63
|
-
description:
|
|
64
|
-
"Load the full instructions for a named skill. Use this when you need to follow a specific skill's guidance.",
|
|
65
|
-
parameters: {
|
|
66
|
-
type: "object" as const,
|
|
67
|
-
positional: true,
|
|
68
|
-
properties: {
|
|
69
|
-
name: {
|
|
70
|
-
type: "string",
|
|
71
|
-
description:
|
|
72
|
-
"The skill name to load (must match exactly or approximately)",
|
|
73
|
-
},
|
|
74
|
-
},
|
|
75
|
-
required: ["name"] as string[],
|
|
76
|
-
},
|
|
77
|
-
},
|
|
78
|
-
},
|
|
79
|
-
];
|
|
@@ -1,393 +0,0 @@
|
|
|
1
|
-
import { Tool } from "../../clients/types";
|
|
2
|
-
import * as fs from "fs";
|
|
3
|
-
import * as path from "path";
|
|
4
|
-
import { spawn } from "child_process";
|
|
5
|
-
|
|
6
|
-
export interface StartAgentTaskParams {
|
|
7
|
-
messageId?: string;
|
|
8
|
-
syncFs?: boolean;
|
|
9
|
-
taskId?: string;
|
|
10
|
-
resume?: boolean;
|
|
11
|
-
forkTaskId?: string;
|
|
12
|
-
rollback?: number;
|
|
13
|
-
prompt: string;
|
|
14
|
-
/**
|
|
15
|
-
* Push this agent's work to a remote Knowhow task identified by taskId.
|
|
16
|
-
* When set (and no messageId), the spawned agent attaches to that remote task.
|
|
17
|
-
*/
|
|
18
|
-
syncRemote?: boolean;
|
|
19
|
-
provider?: string;
|
|
20
|
-
model?: string;
|
|
21
|
-
agentName?: string;
|
|
22
|
-
maxTimeLimit?: number;
|
|
23
|
-
maxSpendLimit?: number;
|
|
24
|
-
/** When true, wait for the agent subprocess to exit before resolving (for generate pipelines). */
|
|
25
|
-
waitForCompletion?: boolean;
|
|
26
|
-
/**
|
|
27
|
-
* The taskId of the parent agent that is spawning this task. Passed to the
|
|
28
|
-
* child via --parent-task-id so the child knows who to report back to. When
|
|
29
|
-
* omitted, it is auto-populated from the per-call context (`_ctx.taskId`) of
|
|
30
|
-
* the spawning agent.
|
|
31
|
-
*/
|
|
32
|
-
parentTaskId?: string;
|
|
33
|
-
/** Per-call context injected by ToolsService.callTool (contains caller + taskId). */
|
|
34
|
-
_ctx?: { caller?: any; taskId?: string; [key: string]: any };
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export interface StartAgentTaskResult {
|
|
38
|
-
success: boolean;
|
|
39
|
-
status: "started" | "completed" | "failed";
|
|
40
|
-
taskId: string;
|
|
41
|
-
pid?: number;
|
|
42
|
-
syncFs: boolean;
|
|
43
|
-
syncReady: boolean;
|
|
44
|
-
agentDir?: string;
|
|
45
|
-
logPath: string;
|
|
46
|
-
parentTaskId?: string;
|
|
47
|
-
exitCode?: number | null;
|
|
48
|
-
error?: string;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
const PROCESSES_DIR = path.join(process.cwd(), ".knowhow", "processes");
|
|
52
|
-
const AGENTS_DIR = path.join(process.cwd(), ".knowhow", "processes", "agents");
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Generate a task ID matching the format used by SessionManager.generateTaskId()
|
|
56
|
-
* Format: {epochSeconds}-{words-from-prompt}
|
|
57
|
-
*/
|
|
58
|
-
function generateTaskId(prompt: string): string {
|
|
59
|
-
const words = prompt
|
|
60
|
-
.toLowerCase()
|
|
61
|
-
.replace(/[^\w\s]/g, "")
|
|
62
|
-
.split(/\s+/)
|
|
63
|
-
.filter((word) => word.length > 2)
|
|
64
|
-
.slice(0, 9);
|
|
65
|
-
const wordPart = words.join("-") || "task";
|
|
66
|
-
const epochSeconds = Math.floor(Date.now() / 1000);
|
|
67
|
-
const fullId = `${epochSeconds}-${wordPart}`;
|
|
68
|
-
// Truncate to 80 chars to avoid ENAMETOOLONG filesystem errors
|
|
69
|
-
return fullId.slice(0, 80);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* A short capabilities note appended to a spawned subagent's prompt so it knows
|
|
74
|
-
* it can use the `knowhow agents` and related CLI commands (via its execCommand
|
|
75
|
-
* tool) to coordinate, inspect, and orchestrate other agents — things it may
|
|
76
|
-
* not have dedicated tools for.
|
|
77
|
-
*/
|
|
78
|
-
function subagentCapabilitiesNote(): string {
|
|
79
|
-
const lines = [
|
|
80
|
-
"",
|
|
81
|
-
"---",
|
|
82
|
-
"SUBAGENT ORCHESTRATION CAPABILITIES:",
|
|
83
|
-
"You are running as a knowhow agent with a synchronized task directory. In addition to your tools,",
|
|
84
|
-
"you can shell out (via execCommand) to the `knowhow agents` CLI to coordinate and inspect other agents:",
|
|
85
|
-
" • knowhow agents list — list running/recent agent tasks (with row indexes)",
|
|
86
|
-
" • knowhow agents status <id|-i N> — status, cost, last tool/message for a task",
|
|
87
|
-
" • knowhow agents tail <id|-i N> [-f] — read recent messages (read-only; -f to follow live)",
|
|
88
|
-
" • knowhow agents answer <id|-i N> — print the final answer of a COMPLETED task",
|
|
89
|
-
" • knowhow agents attach <id|-i N> — open the interactive chat attached to a running task",
|
|
90
|
-
"You can spawn more subagents with the startAgentTask tool, or run whole pipelines with the runGenerate tool",
|
|
91
|
-
"(supports dependsOn ordering, per-source agents, and concurrency for map/reduce fan-out).",
|
|
92
|
-
"To coordinate spawned subagents from your tools: use waitForAgentCompleted (join a subagent and",
|
|
93
|
-
"get a structured { status, costUsd, finalAnswer } result) and observe (stream a tool's results",
|
|
94
|
-
"back to yourself on an interval, e.g. observe waitForAgentCompleted or `agents status`).",
|
|
95
|
-
"To communicate with running agents: use sendAgentMessage (send a message or /poke to a child/peer/parent),",
|
|
96
|
-
"replyToParent (report back to whoever spawned you), and connectAgent (wire agents together with an ARRAY",
|
|
97
|
-
"of { listener, speaker } connections — enables bidirectional, pipeline, star, and mesh topologies in one call).",
|
|
98
|
-
];
|
|
99
|
-
lines.push("---", "");
|
|
100
|
-
return lines.join("\n");
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* Creates a chat task in Knowhow based on a message ID and prompt.
|
|
105
|
-
* Spawns the knowhow CLI with the prompt piped via stdin to avoid
|
|
106
|
-
* shell escaping issues with special characters (quotes, backticks,
|
|
107
|
-
* newlines, template expressions, etc.).
|
|
108
|
-
*
|
|
109
|
-
* When syncFs is true, the agent creates a directory at:
|
|
110
|
-
* .knowhow/processes/agents/{taskId}/
|
|
111
|
-
* with files: status.txt, input.txt, metadata.json
|
|
112
|
-
*
|
|
113
|
-
* To send follow-up messages to the agent, write content to:
|
|
114
|
-
* .knowhow/processes/agents/{taskId}/input.txt
|
|
115
|
-
* The agent will pick up the new content and process it as a new message.
|
|
116
|
-
*/
|
|
117
|
-
export async function startAgentTask(params: StartAgentTaskParams): Promise<StartAgentTaskResult> {
|
|
118
|
-
const {
|
|
119
|
-
messageId,
|
|
120
|
-
prompt,
|
|
121
|
-
taskId: providedTaskId,
|
|
122
|
-
resume,
|
|
123
|
-
forkTaskId,
|
|
124
|
-
rollback = 0,
|
|
125
|
-
syncFs,
|
|
126
|
-
syncRemote,
|
|
127
|
-
provider,
|
|
128
|
-
model,
|
|
129
|
-
agentName,
|
|
130
|
-
maxTimeLimit,
|
|
131
|
-
maxSpendLimit,
|
|
132
|
-
waitForCompletion,
|
|
133
|
-
parentTaskId: explicitParentTaskId,
|
|
134
|
-
_ctx,
|
|
135
|
-
} = params;
|
|
136
|
-
if (!prompt) {
|
|
137
|
-
throw new Error("prompt is required to create a chat task");
|
|
138
|
-
}
|
|
139
|
-
if (resume && forkTaskId) {
|
|
140
|
-
throw new Error("resume and forkTaskId are mutually exclusive");
|
|
141
|
-
}
|
|
142
|
-
if (resume && !providedTaskId) {
|
|
143
|
-
throw new Error("taskId is required when resuming");
|
|
144
|
-
}
|
|
145
|
-
if (!Number.isInteger(rollback) || rollback < 0) {
|
|
146
|
-
throw new Error("rollback must be a non-negative integer");
|
|
147
|
-
}
|
|
148
|
-
if (rollback > 0 && !resume && !forkTaskId) {
|
|
149
|
-
throw new Error("rollback requires resume or forkTaskId");
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
// Default filesystem synchronization ON unless the caller explicitly opts out
|
|
153
|
-
// (syncFs: false) or is using a messageId-based web sync. This ensures spawned
|
|
154
|
-
// subagents always appear in `knowhow agents list` and can be attached/tailed.
|
|
155
|
-
// If the caller explicitly passes syncFs: true, honor it even when a messageId
|
|
156
|
-
// is also provided (messageId handles remote sync; syncFs handles local fs sync).
|
|
157
|
-
const useSyncFs = syncFs === true ? true : (syncFs !== false && !messageId);
|
|
158
|
-
|
|
159
|
-
// Use provided taskId if given, otherwise generate one from the prompt
|
|
160
|
-
const taskId = providedTaskId ?? generateTaskId(prompt);
|
|
161
|
-
const agentTaskDir = path.join(AGENTS_DIR, taskId);
|
|
162
|
-
|
|
163
|
-
// Determine the parent taskId: explicit param wins, otherwise fall back to
|
|
164
|
-
// the spawning agent's taskId carried in the per-call context (`_ctx`).
|
|
165
|
-
const parentTaskId =
|
|
166
|
-
explicitParentTaskId ?? _ctx?.taskId ?? (_ctx?.caller as any)?.currentTaskId;
|
|
167
|
-
|
|
168
|
-
// Build args array (no shell escaping needed - args are passed directly)
|
|
169
|
-
const isHistoryRun = !!resume || !!forkTaskId;
|
|
170
|
-
const args: string[] = resume
|
|
171
|
-
? ["agents", "resume", providedTaskId!]
|
|
172
|
-
: forkTaskId
|
|
173
|
-
? ["agents", "fork", forkTaskId]
|
|
174
|
-
: ["agent"];
|
|
175
|
-
|
|
176
|
-
if (forkTaskId) args.push("--task-id", taskId);
|
|
177
|
-
|
|
178
|
-
if (messageId) {
|
|
179
|
-
args.push("--message-id", messageId);
|
|
180
|
-
}
|
|
181
|
-
if (useSyncFs) {
|
|
182
|
-
args.push("--sync-fs");
|
|
183
|
-
}
|
|
184
|
-
// When syncRemote is requested, pass it through so the spawned agent pushes
|
|
185
|
-
// its work to the remote task identified by --task-id rather than staying
|
|
186
|
-
// local-only.
|
|
187
|
-
if (syncRemote && !isHistoryRun) {
|
|
188
|
-
args.push("--sync-remote");
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
if (!isHistoryRun && (useSyncFs || providedTaskId)) {
|
|
192
|
-
// Pass --task-id whenever we have a known taskId (syncFs or explicit taskId)
|
|
193
|
-
args.push("--task-id", taskId);
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
if (provider) {
|
|
197
|
-
args.push("--provider", provider);
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
if (model) {
|
|
201
|
-
args.push("--model", model);
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
if (agentName) {
|
|
205
|
-
args.push("--agent-name", agentName);
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
if (maxTimeLimit !== undefined && !isHistoryRun) {
|
|
209
|
-
args.push("--max-time-limit", String(maxTimeLimit));
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
if (maxSpendLimit !== undefined && !isHistoryRun) {
|
|
213
|
-
args.push("--max-spend-limit", String(maxSpendLimit));
|
|
214
|
-
}
|
|
215
|
-
if (parentTaskId && !isHistoryRun) {
|
|
216
|
-
// Tell the child who spawned it so it can report back to the parent.
|
|
217
|
-
args.push("--parent-task-id", parentTaskId);
|
|
218
|
-
}
|
|
219
|
-
if (rollback > 0) {
|
|
220
|
-
args.push("--rollback", String(rollback));
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
const timeoutMs = maxTimeLimit ? maxTimeLimit * 60 * 1000 : 60 * 60 * 1000;
|
|
224
|
-
|
|
225
|
-
// Set up log file for background process output
|
|
226
|
-
fs.mkdirSync(PROCESSES_DIR, { recursive: true });
|
|
227
|
-
const logBaseName = `knowhow_${Math.floor(Date.now() / 1000)}`;
|
|
228
|
-
const logPath = path.join(PROCESSES_DIR, `${logBaseName}.txt`);
|
|
229
|
-
const fd = fs.openSync(logPath, "w");
|
|
230
|
-
|
|
231
|
-
const header =
|
|
232
|
-
`CMD: knowhow ${args.join(" ")}\n` +
|
|
233
|
-
`START: ${new Date().toISOString()}\n` +
|
|
234
|
-
`---\n`;
|
|
235
|
-
fs.writeSync(fd, header);
|
|
236
|
-
|
|
237
|
-
// Spawn with prompt piped via stdin - no shell escaping issues
|
|
238
|
-
const child = spawn("knowhow", args, {
|
|
239
|
-
stdio: ["pipe", fd, fd],
|
|
240
|
-
detached: true,
|
|
241
|
-
});
|
|
242
|
-
|
|
243
|
-
const pid = child.pid!;
|
|
244
|
-
fs.writeSync(fd, `PID: ${pid}\n`);
|
|
245
|
-
|
|
246
|
-
// Write prompt to stdin and close it so the process reads it
|
|
247
|
-
// Append the subagent orchestration capabilities note (unless resuming — a
|
|
248
|
-
// resumed task already has its full context and we don't want to re-inject).
|
|
249
|
-
const promptWithCaps = resume
|
|
250
|
-
? prompt
|
|
251
|
-
: prompt + subagentCapabilitiesNote();
|
|
252
|
-
child.stdin!.write(promptWithCaps, "utf8");
|
|
253
|
-
child.stdin!.end();
|
|
254
|
-
|
|
255
|
-
return new Promise<StartAgentTaskResult>((resolve) => {
|
|
256
|
-
let settled = false;
|
|
257
|
-
let exited = false;
|
|
258
|
-
const done = (result: StartAgentTaskResult) => {
|
|
259
|
-
if (settled) return;
|
|
260
|
-
settled = true;
|
|
261
|
-
try { fs.closeSync(fd); } catch {}
|
|
262
|
-
resolve(result);
|
|
263
|
-
};
|
|
264
|
-
|
|
265
|
-
child.once("error", (e) => {
|
|
266
|
-
done({
|
|
267
|
-
success: false, status: "failed", taskId, pid, syncFs: useSyncFs,
|
|
268
|
-
syncReady: false, agentDir: useSyncFs ? agentTaskDir : undefined,
|
|
269
|
-
logPath, parentTaskId, error: String(e),
|
|
270
|
-
});
|
|
271
|
-
});
|
|
272
|
-
|
|
273
|
-
child.once("exit", (code) => {
|
|
274
|
-
exited = true;
|
|
275
|
-
done({
|
|
276
|
-
success: code === 0, status: code === 0 ? "completed" : "failed",
|
|
277
|
-
taskId, pid, syncFs: useSyncFs,
|
|
278
|
-
syncReady: useSyncFs && fs.existsSync(path.join(agentTaskDir, "metadata.json")),
|
|
279
|
-
agentDir: useSyncFs ? agentTaskDir : undefined, logPath, parentTaskId,
|
|
280
|
-
exitCode: code, ...(code === 0 ? {} : { error: `Agent exited with code ${code}` }),
|
|
281
|
-
});
|
|
282
|
-
});
|
|
283
|
-
|
|
284
|
-
if (!waitForCompletion) {
|
|
285
|
-
// A spawn is not the same as an initialized fs-sync agent. Poll briefly
|
|
286
|
-
// so callers can distinguish those states without parsing log prose.
|
|
287
|
-
const deadline = Date.now() + (useSyncFs ? 5000 : 100);
|
|
288
|
-
const acknowledge = () => {
|
|
289
|
-
if (settled || exited) return;
|
|
290
|
-
const syncReady = useSyncFs && fs.existsSync(path.join(agentTaskDir, "metadata.json"));
|
|
291
|
-
if (!useSyncFs || syncReady || Date.now() >= deadline) {
|
|
292
|
-
try { child.unref(); } catch {}
|
|
293
|
-
done({
|
|
294
|
-
success: true, status: "started", taskId, pid, syncFs: useSyncFs,
|
|
295
|
-
syncReady, agentDir: useSyncFs ? agentTaskDir : undefined,
|
|
296
|
-
logPath, parentTaskId,
|
|
297
|
-
});
|
|
298
|
-
return;
|
|
299
|
-
}
|
|
300
|
-
setTimeout(acknowledge, 100);
|
|
301
|
-
};
|
|
302
|
-
setTimeout(acknowledge, 50);
|
|
303
|
-
}
|
|
304
|
-
});
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
export const startAgentTaskDefinition: Tool = {
|
|
308
|
-
type: "function",
|
|
309
|
-
function: {
|
|
310
|
-
name: "startAgentTask",
|
|
311
|
-
description:
|
|
312
|
-
"Create a new chat task in Knowhow based on a message ID and prompt. This allows worker agents to start tasks and update knowhow's backend with all CLI agent options. " +
|
|
313
|
-
"When syncFs is true, the agent creates a directory at .knowhow/processes/agents/{taskId}/ with status.txt, input.txt, and metadata.json. " +
|
|
314
|
-
"You can send follow-up messages to the running agent by writing content to .knowhow/processes/agents/{taskId}/input.txt. " +
|
|
315
|
-
"The return value includes the taskId and agent directory path when syncFs is used.",
|
|
316
|
-
parameters: {
|
|
317
|
-
type: "object",
|
|
318
|
-
usesContext: true,
|
|
319
|
-
properties: {
|
|
320
|
-
messageId: {
|
|
321
|
-
type: "string",
|
|
322
|
-
description:
|
|
323
|
-
"The ID of the message in Knowhow to associate with this task (optional)",
|
|
324
|
-
},
|
|
325
|
-
syncFs: {
|
|
326
|
-
type: "boolean",
|
|
327
|
-
description:
|
|
328
|
-
"Filesystem-based synchronization for the task. Defaults to true (enabled) when no messageId is given, " +
|
|
329
|
-
"so the spawned agent always appears in `knowhow agents list` and can be attached/tailed. Pass false to opt out.",
|
|
330
|
-
},
|
|
331
|
-
syncRemote: {
|
|
332
|
-
type: "boolean",
|
|
333
|
-
description:
|
|
334
|
-
"Push this agent's work to a remote Knowhow task identified by taskId (in addition to fs sync). " +
|
|
335
|
-
"Use this to sync a spawned subagent's progress to an already-created remote task. " +
|
|
336
|
-
"If messageId is given instead, a fresh remote task is created from that message.",
|
|
337
|
-
},
|
|
338
|
-
prompt: {
|
|
339
|
-
type: "string",
|
|
340
|
-
description: "The prompt or description for the task to be created",
|
|
341
|
-
},
|
|
342
|
-
provider: {
|
|
343
|
-
type: "string",
|
|
344
|
-
description:
|
|
345
|
-
"AI provider (openai, anthropic, google, xai). Default: openai",
|
|
346
|
-
},
|
|
347
|
-
model: {
|
|
348
|
-
type: "string",
|
|
349
|
-
description: "Specific model for the provider",
|
|
350
|
-
},
|
|
351
|
-
agentName: {
|
|
352
|
-
type: "string",
|
|
353
|
-
description: "Which agent to use. Default: Patcher",
|
|
354
|
-
},
|
|
355
|
-
maxTimeLimit: {
|
|
356
|
-
type: "number",
|
|
357
|
-
description: "Time limit for agent execution in minutes. Default: 30",
|
|
358
|
-
},
|
|
359
|
-
maxSpendLimit: {
|
|
360
|
-
type: "number",
|
|
361
|
-
description: "Cost limit for agent execution in dollars. Default: 10",
|
|
362
|
-
},
|
|
363
|
-
taskId: {
|
|
364
|
-
type: "string",
|
|
365
|
-
description:
|
|
366
|
-
"Pre-generated task ID to use for this agent run. When provided with syncFs, the agent directory will use this ID for a predictable path. Required when using resume.",
|
|
367
|
-
},
|
|
368
|
-
resume: {
|
|
369
|
-
type: "boolean",
|
|
370
|
-
description:
|
|
371
|
-
"Resume a previously started task from where it left off. Must be used together with taskId which identifies the task to resume.",
|
|
372
|
-
},
|
|
373
|
-
forkTaskId: {
|
|
374
|
-
type: "string",
|
|
375
|
-
description:
|
|
376
|
-
"Fork this existing task into a new task. The source remains unchanged; taskId optionally selects the new task ID.",
|
|
377
|
-
},
|
|
378
|
-
rollback: {
|
|
379
|
-
type: "number",
|
|
380
|
-
description:
|
|
381
|
-
"Discard this many newest agent interactions before resuming or forking. Must be a non-negative integer.",
|
|
382
|
-
},
|
|
383
|
-
parentTaskId: {
|
|
384
|
-
type: "string",
|
|
385
|
-
description:
|
|
386
|
-
"The taskId of the parent that should be notified by this child (e.g. via replyToParent). " +
|
|
387
|
-
"If omitted, it is auto-populated from the spawning agent's own taskId.",
|
|
388
|
-
},
|
|
389
|
-
},
|
|
390
|
-
required: ["prompt"],
|
|
391
|
-
},
|
|
392
|
-
},
|
|
393
|
-
};
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import * as fs from "fs";
|
|
2
|
-
import { services, ToolsService } from "../../services";
|
|
3
|
-
import { fileExists } from "../../utils";
|
|
4
|
-
|
|
5
|
-
export async function stringReplace(
|
|
6
|
-
findString: string,
|
|
7
|
-
replaceString: string,
|
|
8
|
-
filePaths: string[]
|
|
9
|
-
): Promise<string> {
|
|
10
|
-
// Get context from bound ToolsService
|
|
11
|
-
const toolService = (
|
|
12
|
-
this instanceof ToolsService ? this : services().Tools
|
|
13
|
-
) as ToolsService;
|
|
14
|
-
const context = toolService.getContext();
|
|
15
|
-
|
|
16
|
-
if (
|
|
17
|
-
!findString ||
|
|
18
|
-
replaceString === undefined ||
|
|
19
|
-
!filePaths ||
|
|
20
|
-
filePaths.length === 0
|
|
21
|
-
) {
|
|
22
|
-
throw new Error(
|
|
23
|
-
"findString, replaceString, and filePaths are all required parameters"
|
|
24
|
-
);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
const results: string[] = [];
|
|
28
|
-
let totalReplacements = 0;
|
|
29
|
-
|
|
30
|
-
for (const filePath of filePaths) {
|
|
31
|
-
try {
|
|
32
|
-
const exists = await fileExists(filePath);
|
|
33
|
-
if (!exists) {
|
|
34
|
-
results.push(`❌ File not found: ${filePath}`);
|
|
35
|
-
continue;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
const content = fs.readFileSync(filePath, "utf8");
|
|
39
|
-
const originalContent = content;
|
|
40
|
-
|
|
41
|
-
// Count occurrences before replacement
|
|
42
|
-
const matches = content.split(findString).length - 1;
|
|
43
|
-
|
|
44
|
-
if (matches === 0) {
|
|
45
|
-
results.push(`ℹ️ No matches found in: ${filePath}`);
|
|
46
|
-
continue;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
// Emit pre-edit blocking event
|
|
50
|
-
const eventResults: any[] = [];
|
|
51
|
-
if (context.Events) {
|
|
52
|
-
eventResults.push(
|
|
53
|
-
...(await context.Events.emitBlocking("file:pre-edit", {
|
|
54
|
-
filePath,
|
|
55
|
-
operation: "stringReplace",
|
|
56
|
-
findString,
|
|
57
|
-
replaceString,
|
|
58
|
-
originalContent,
|
|
59
|
-
}))
|
|
60
|
-
);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
// Perform the replacement
|
|
64
|
-
const newContent = content.replace(
|
|
65
|
-
new RegExp(findString.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "g"),
|
|
66
|
-
replaceString
|
|
67
|
-
);
|
|
68
|
-
|
|
69
|
-
// Write the modified content back to the file
|
|
70
|
-
fs.writeFileSync(filePath, newContent);
|
|
71
|
-
|
|
72
|
-
totalReplacements += matches;
|
|
73
|
-
results.push(`✅ Replaced ${matches} occurrence(s) in: ${filePath}`);
|
|
74
|
-
|
|
75
|
-
// Emit post-edit blocking event to get event results
|
|
76
|
-
if (context.Events) {
|
|
77
|
-
eventResults.push(
|
|
78
|
-
...(await context.Events.emitBlocking("file:post-edit", {
|
|
79
|
-
filePath,
|
|
80
|
-
operation: "stringReplace",
|
|
81
|
-
findString,
|
|
82
|
-
replaceString,
|
|
83
|
-
originalContent,
|
|
84
|
-
updatedContent: newContent,
|
|
85
|
-
}))
|
|
86
|
-
);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
// Format event results if any
|
|
90
|
-
if (eventResults && eventResults.length > 0) {
|
|
91
|
-
const eventResultsText = eventResults
|
|
92
|
-
.filter((r) => r && typeof r === "string" && r.trim())
|
|
93
|
-
.join("\n");
|
|
94
|
-
if (eventResultsText) {
|
|
95
|
-
results.push(eventResultsText);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
} catch (error) {
|
|
99
|
-
results.push(`❌ Error processing ${filePath}: ${error.message}`);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
const summary = `\n📊 Summary: ${totalReplacements} total replacements made across ${filePaths.length} file(s)`;
|
|
104
|
-
return results.join("\n") + summary;
|
|
105
|
-
}
|