@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,83 +0,0 @@
|
|
|
1
|
-
import * as fs from "fs";
|
|
2
|
-
import { services, ToolsService } from "../../services";
|
|
3
|
-
import { FileBlock } from "./types/fileblock";
|
|
4
|
-
|
|
5
|
-
const BLOCK_SIZE = 500;
|
|
6
|
-
export async function readBlocks(
|
|
7
|
-
filePath: string,
|
|
8
|
-
blockNumbers: number[] = []
|
|
9
|
-
) {
|
|
10
|
-
// Get context from bound ToolsService
|
|
11
|
-
const toolService = (
|
|
12
|
-
this instanceof ToolsService ? this : services().Tools
|
|
13
|
-
) as ToolsService;
|
|
14
|
-
|
|
15
|
-
const context = toolService.getContext();
|
|
16
|
-
|
|
17
|
-
// Emit pre-read blocking event
|
|
18
|
-
if (context.Events) {
|
|
19
|
-
await context.Events.emitBlocking("file:pre-read", {
|
|
20
|
-
filePath,
|
|
21
|
-
blockNumbers,
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
const text = fs.readFileSync(filePath, "utf8");
|
|
26
|
-
|
|
27
|
-
const lines = text.split("");
|
|
28
|
-
const blocks = [] as FileBlock[];
|
|
29
|
-
|
|
30
|
-
let index = 0;
|
|
31
|
-
let lineCount = 0;
|
|
32
|
-
while (lines.length > 0) {
|
|
33
|
-
const block = lines.splice(0, BLOCK_SIZE).join("");
|
|
34
|
-
blocks.push({
|
|
35
|
-
blockNumber: index,
|
|
36
|
-
content: block,
|
|
37
|
-
startLine: lineCount + 1,
|
|
38
|
-
});
|
|
39
|
-
index++;
|
|
40
|
-
lineCount += block.split("\n").length;
|
|
41
|
-
|
|
42
|
-
if (blocks.length > 20 && lines.length > 160000) {
|
|
43
|
-
blocks.push({
|
|
44
|
-
blockNumber: index,
|
|
45
|
-
content: "File trimmed. Too large to display",
|
|
46
|
-
startLine: lineCount + 1,
|
|
47
|
-
});
|
|
48
|
-
break;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
if (blockNumbers.length === 0) {
|
|
53
|
-
// Emit post-read non-blocking event
|
|
54
|
-
if (context.Events) {
|
|
55
|
-
await context.Events.emitNonBlocking("file:post-read", {
|
|
56
|
-
filePath,
|
|
57
|
-
blockNumbers,
|
|
58
|
-
content: blocks.map((block) => block.content).join(""),
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
return blocks;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
const filtered = blocks.filter((block) =>
|
|
66
|
-
blockNumbers.includes(block.blockNumber)
|
|
67
|
-
);
|
|
68
|
-
|
|
69
|
-
if (filtered.length === 0) {
|
|
70
|
-
return blocks;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
// Emit post-read non-blocking event
|
|
74
|
-
if (context.Events) {
|
|
75
|
-
await context.Events.emitNonBlocking("file:post-read", {
|
|
76
|
-
filePath,
|
|
77
|
-
blockNumbers,
|
|
78
|
-
content: filtered.map((block) => block.content).join(""),
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
return filtered;
|
|
83
|
-
}
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import * as fs from "fs";
|
|
2
|
-
import { fileExists } from "../../utils";
|
|
3
|
-
import { services, ToolsService } from "../../services";
|
|
4
|
-
import { getConfiguredEmbeddings } from "../../embeddings";
|
|
5
|
-
import { fileSearch } from "./fileSearch";
|
|
6
|
-
|
|
7
|
-
/*
|
|
8
|
-
*export function readFile(filePath: string): string {
|
|
9
|
-
* try {
|
|
10
|
-
* const text = fs.readFileSync(filePath, "utf8");
|
|
11
|
-
* return JSON.stringify(
|
|
12
|
-
* text.split("\n").map((line, index) => [index + 1, line])
|
|
13
|
-
* );
|
|
14
|
-
* } catch (e) {
|
|
15
|
-
* return e.message;
|
|
16
|
-
* }
|
|
17
|
-
*}
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Reads the contents of a file and returns them as plain text.
|
|
22
|
-
*
|
|
23
|
-
* Optionally accepts a 1-based, inclusive line range so callers can pull just
|
|
24
|
-
* the region they care about in a single call. When a range is supplied the
|
|
25
|
-
* returned content is prefixed with real source line numbers so the output can
|
|
26
|
-
* be mapped straight back to an editable location.
|
|
27
|
-
*
|
|
28
|
-
* @param filePath The path to the file to read
|
|
29
|
-
* @param fromLine Optional 1-based start line (inclusive)
|
|
30
|
-
* @param toLine Optional 1-based end line (inclusive)
|
|
31
|
-
*/
|
|
32
|
-
export async function readFile(
|
|
33
|
-
filePath: string,
|
|
34
|
-
fromLine?: number,
|
|
35
|
-
toLine?: number
|
|
36
|
-
): Promise<string> {
|
|
37
|
-
// Get context from bound ToolsService
|
|
38
|
-
const toolService = (
|
|
39
|
-
this instanceof ToolsService ? this : services().Tools
|
|
40
|
-
) as ToolsService;
|
|
41
|
-
|
|
42
|
-
const context = toolService.getContext();
|
|
43
|
-
|
|
44
|
-
// Emit pre-read blocking event
|
|
45
|
-
if (context.Events) {
|
|
46
|
-
await context.Events.emitBlocking("file:pre-read", {
|
|
47
|
-
filePath,
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
const exists = await fileExists(filePath);
|
|
52
|
-
|
|
53
|
-
if (!exists) {
|
|
54
|
-
const fileName = filePath.split("/").pop().split(".")[0];
|
|
55
|
-
const maybeRelated = await fileSearch(fileName);
|
|
56
|
-
if (maybeRelated.length > 0) {
|
|
57
|
-
throw new Error(
|
|
58
|
-
`File not found: ${filePath}. Maybe you meant one of these files: ${maybeRelated}`
|
|
59
|
-
);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
throw new Error(`File not found: ${filePath}`);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
const text = fs.readFileSync(filePath, "utf8");
|
|
66
|
-
|
|
67
|
-
// Emit post-read non-blocking event with the full file content so listeners
|
|
68
|
-
// (e.g. indexers) always see the complete file regardless of any range slice.
|
|
69
|
-
if (context.Events) {
|
|
70
|
-
await context.Events.emitNonBlocking("file:post-read", {
|
|
71
|
-
filePath,
|
|
72
|
-
content: text,
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
const hasRange =
|
|
77
|
-
typeof fromLine === "number" || typeof toLine === "number";
|
|
78
|
-
|
|
79
|
-
if (!hasRange) {
|
|
80
|
-
return text;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
// Build a ranged read with real, 1-based source line numbers.
|
|
84
|
-
const lines = text.split("\n");
|
|
85
|
-
const totalLines = lines.length;
|
|
86
|
-
|
|
87
|
-
const start = Math.max(1, typeof fromLine === "number" ? fromLine : 1);
|
|
88
|
-
const end = Math.min(
|
|
89
|
-
totalLines,
|
|
90
|
-
typeof toLine === "number" ? toLine : totalLines
|
|
91
|
-
);
|
|
92
|
-
|
|
93
|
-
if (start > end) {
|
|
94
|
-
throw new Error(
|
|
95
|
-
`Invalid line range for ${filePath}: fromLine (${start}) is greater than toLine (${end}). File has ${totalLines} lines.`
|
|
96
|
-
);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
const numbered = [];
|
|
100
|
-
for (let i = start; i <= end; i++) {
|
|
101
|
-
numbered.push(`${i}: ${lines[i - 1]}`);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
return numbered.join("\n");
|
|
105
|
-
}
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import * as fs from "fs";
|
|
2
|
-
import * as path from "path";
|
|
3
|
-
import { Tool } from "../../clients/types";
|
|
4
|
-
import { ToolCallContext } from "../../services/Tools";
|
|
5
|
-
|
|
6
|
-
/** Resolve the agents dir lazily so tests (and cwd changes) are respected. */
|
|
7
|
-
function agentsDir(): string {
|
|
8
|
-
return path.join(process.cwd(), ".knowhow", "processes", "agents");
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Resolve the parent taskId for the calling agent.
|
|
13
|
-
*
|
|
14
|
-
* Order of resolution:
|
|
15
|
-
* 1. `_ctx.parentTaskId` if the caller carries it directly
|
|
16
|
-
* 2. `_ctx.caller.parentTaskId` if the agent instance exposes it
|
|
17
|
-
* 3. The `parentTaskId` field of the caller's own metadata.json (looked up by
|
|
18
|
-
* `_ctx.taskId`)
|
|
19
|
-
*/
|
|
20
|
-
function resolveParentTaskId(ctx?: ToolCallContext): string | undefined {
|
|
21
|
-
if (!ctx) return undefined;
|
|
22
|
-
|
|
23
|
-
if (ctx.parentTaskId) return ctx.parentTaskId as string;
|
|
24
|
-
const callerParent = (ctx.caller as any)?.parentTaskId;
|
|
25
|
-
if (callerParent) return callerParent as string;
|
|
26
|
-
|
|
27
|
-
// Fall back to reading our own metadata.json for the parentTaskId field.
|
|
28
|
-
const ownTaskId = ctx.taskId ?? (ctx.caller as any)?.currentTaskId;
|
|
29
|
-
if (!ownTaskId) return undefined;
|
|
30
|
-
|
|
31
|
-
try {
|
|
32
|
-
const metaPath = path.join(agentsDir(), ownTaskId, "metadata.json");
|
|
33
|
-
if (fs.existsSync(metaPath)) {
|
|
34
|
-
const meta = JSON.parse(fs.readFileSync(metaPath, "utf8"));
|
|
35
|
-
return meta.parentTaskId;
|
|
36
|
-
}
|
|
37
|
-
} catch {
|
|
38
|
-
// ignore — no parent metadata available
|
|
39
|
-
}
|
|
40
|
-
return undefined;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Send a message back to the parent agent that spawned this task.
|
|
45
|
-
*
|
|
46
|
-
* This is a self-referential tool: it uses the per-call context (`_ctx`) to
|
|
47
|
-
* discover which agent is calling it and which parent task spawned it, then
|
|
48
|
-
* appends the message to the parent's `input.txt` so the parent picks it up on
|
|
49
|
-
* its next sync cycle.
|
|
50
|
-
*
|
|
51
|
-
* `_ctx` is threaded in by ToolsService.callTool as the LAST positional
|
|
52
|
-
* argument. The agent effectively passes *itself* in via `_ctx.caller`.
|
|
53
|
-
*/
|
|
54
|
-
export async function replyToParent(
|
|
55
|
-
message: string,
|
|
56
|
-
_ctx?: ToolCallContext
|
|
57
|
-
): Promise<string> {
|
|
58
|
-
if (!message || !message.trim()) {
|
|
59
|
-
return "No message provided to replyToParent.";
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
const parentTaskId = resolveParentTaskId(_ctx);
|
|
63
|
-
if (!parentTaskId) {
|
|
64
|
-
return (
|
|
65
|
-
"No parent task found — this agent was not spawned with a parent taskId, " +
|
|
66
|
-
"so there is no one to reply to."
|
|
67
|
-
);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
const parentDir = path.join(agentsDir(), parentTaskId);
|
|
71
|
-
const parentInputPath = path.join(parentDir, "input.txt");
|
|
72
|
-
|
|
73
|
-
if (!fs.existsSync(parentDir)) {
|
|
74
|
-
return `Parent task directory not found: ${parentDir}`;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
const fromTaskId =
|
|
78
|
-
_ctx?.taskId ?? (_ctx?.caller as any)?.currentTaskId ?? "unknown";
|
|
79
|
-
const fromAgent = (_ctx?.caller as any)?.name ?? "child";
|
|
80
|
-
|
|
81
|
-
// Envelope with sender identity so the parent knows who is replying.
|
|
82
|
-
const envelope = `[from:${fromTaskId}] [agent:${fromAgent}] ${message}`;
|
|
83
|
-
|
|
84
|
-
try {
|
|
85
|
-
// Append rather than overwrite so we don't clobber other pending messages.
|
|
86
|
-
const existing = fs.existsSync(parentInputPath)
|
|
87
|
-
? fs.readFileSync(parentInputPath, "utf8")
|
|
88
|
-
: "";
|
|
89
|
-
const next = existing && !existing.endsWith("\n")
|
|
90
|
-
? `${existing}\n${envelope}\n`
|
|
91
|
-
: `${existing}${envelope}\n`;
|
|
92
|
-
fs.writeFileSync(parentInputPath, next, "utf8");
|
|
93
|
-
} catch (e: any) {
|
|
94
|
-
return `Failed to write to parent input.txt: ${e?.message ?? String(e)}`;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
return `Sent message to parent task ${parentTaskId}.`;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
export const replyToParentDefinition: Tool = {
|
|
101
|
-
type: "function",
|
|
102
|
-
function: {
|
|
103
|
-
name: "replyToParent",
|
|
104
|
-
description:
|
|
105
|
-
"Send a message back to the parent agent that spawned this task. Use this " +
|
|
106
|
-
"to report progress, ask a question, or alert the parent to something. The " +
|
|
107
|
-
"message is delivered to the parent's input queue and picked up on its next " +
|
|
108
|
-
"sync cycle. Only works when this agent was spawned by another agent (i.e. " +
|
|
109
|
-
"it has a parent taskId).",
|
|
110
|
-
parameters: {
|
|
111
|
-
type: "object",
|
|
112
|
-
positional: true,
|
|
113
|
-
usesContext: true,
|
|
114
|
-
properties: {
|
|
115
|
-
message: {
|
|
116
|
-
type: "string",
|
|
117
|
-
description: "The message to send back to the parent agent",
|
|
118
|
-
},
|
|
119
|
-
},
|
|
120
|
-
required: ["message"],
|
|
121
|
-
},
|
|
122
|
-
},
|
|
123
|
-
};
|
|
@@ -1,210 +0,0 @@
|
|
|
1
|
-
import { Tool } from "../../clients/types";
|
|
2
|
-
import { GenerationSource } from "../../types";
|
|
3
|
-
import { generate, GenerateOptions, buildWaves } from "../../generate";
|
|
4
|
-
|
|
5
|
-
export interface RunGenerateParams {
|
|
6
|
-
/**
|
|
7
|
-
* In-memory generation sources defining the pipeline. When provided, these
|
|
8
|
-
* are used INSTEAD of the sources in .knowhow/knowhow.json. Each source can
|
|
9
|
-
* declare `dependsOn` for explicit ordering, an `agent` for agent-driven
|
|
10
|
-
* generation, and input/output/prompt for the work itself.
|
|
11
|
-
*/
|
|
12
|
-
sources?: GenerationSource[];
|
|
13
|
-
/** Only run sources whose `name` matches exactly this value (config mode). */
|
|
14
|
-
name?: string;
|
|
15
|
-
/** Only run sources whose name/input/output contains this substring. */
|
|
16
|
-
filter?: string;
|
|
17
|
-
/** Skip hash checks and regenerate all matching sources regardless of changes. */
|
|
18
|
-
force?: boolean;
|
|
19
|
-
/** Max sources to run in parallel within a dependency wave. Default: 3. */
|
|
20
|
-
concurrency?: number;
|
|
21
|
-
/**
|
|
22
|
-
* When true, agent-driven sources create .knowhow/processes/agents/<taskId>/
|
|
23
|
-
* so they appear in `knowhow agents list`.
|
|
24
|
-
*/
|
|
25
|
-
syncFs?: boolean;
|
|
26
|
-
/**
|
|
27
|
-
* When true, agent-driven sources push their work to a remote Knowhow task
|
|
28
|
-
* (identified by the source's taskId).
|
|
29
|
-
*/
|
|
30
|
-
syncRemote?: boolean;
|
|
31
|
-
/** When true, only compute and return the execution plan (waves) without running. */
|
|
32
|
-
planOnly?: boolean;
|
|
33
|
-
/** Per-call context injected by ToolsService.callTool. */
|
|
34
|
-
_ctx?: { caller?: any; taskId?: string; [key: string]: any };
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* runGenerate — expose `knowhow generate` as an agent tool.
|
|
39
|
-
*
|
|
40
|
-
* This lets an agent orchestrate complex, multi-step pipelines at runtime
|
|
41
|
-
* without needing them defined in the config. It supports:
|
|
42
|
-
* - `dependsOn` for explicit ordering (topological waves)
|
|
43
|
-
* - automatic I/O overlap detection (source B reading source A's output runs after A)
|
|
44
|
-
* - per-source `agent` for agent-driven generation (map/reduce fan-out)
|
|
45
|
-
* - concurrency control within each dependency wave
|
|
46
|
-
* - plain summarization/analysis sources (no agent)
|
|
47
|
-
*
|
|
48
|
-
* With `planOnly: true`, it returns the computed wave plan so the agent can
|
|
49
|
-
* inspect ordering/parallelism before committing to a run.
|
|
50
|
-
*/
|
|
51
|
-
export async function runGenerate(params: RunGenerateParams): Promise<string> {
|
|
52
|
-
const {
|
|
53
|
-
sources,
|
|
54
|
-
name,
|
|
55
|
-
filter,
|
|
56
|
-
force,
|
|
57
|
-
concurrency,
|
|
58
|
-
syncFs,
|
|
59
|
-
syncRemote,
|
|
60
|
-
planOnly,
|
|
61
|
-
} = params ?? {};
|
|
62
|
-
|
|
63
|
-
// Default filesystem sync ON for agent-driven sources so they show up in
|
|
64
|
-
// `knowhow agents list` and can be attached/tailed. Pass syncFs: false to opt out.
|
|
65
|
-
const effectiveSyncFs = syncFs !== false;
|
|
66
|
-
|
|
67
|
-
const options: GenerateOptions = {
|
|
68
|
-
sources,
|
|
69
|
-
name,
|
|
70
|
-
filter,
|
|
71
|
-
force,
|
|
72
|
-
concurrency,
|
|
73
|
-
syncFs: effectiveSyncFs,
|
|
74
|
-
syncRemote,
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
// Resolve the source set for planning output.
|
|
78
|
-
const effectiveSources = sources ?? [];
|
|
79
|
-
|
|
80
|
-
if (planOnly) {
|
|
81
|
-
if (effectiveSources.length === 0) {
|
|
82
|
-
return (
|
|
83
|
-
"planOnly requires in-memory `sources` to build a plan. " +
|
|
84
|
-
"Provide sources to see how they'd be grouped into dependency waves."
|
|
85
|
-
);
|
|
86
|
-
}
|
|
87
|
-
const filtered = effectiveSources.filter((s) => {
|
|
88
|
-
if (name) return s.name === name;
|
|
89
|
-
if (filter) {
|
|
90
|
-
const needle = filter.toLowerCase();
|
|
91
|
-
return [s.name, s.input, s.output]
|
|
92
|
-
.filter(Boolean)
|
|
93
|
-
.some((v) => v!.toLowerCase().includes(needle));
|
|
94
|
-
}
|
|
95
|
-
return true;
|
|
96
|
-
});
|
|
97
|
-
const waves = buildWaves(filtered);
|
|
98
|
-
const lines: string[] = [];
|
|
99
|
-
lines.push(
|
|
100
|
-
`📋 Generation Plan (concurrency: ${concurrency ?? 3}, ${filtered.length} sources, ${waves.length} wave${waves.length !== 1 ? "s" : ""})`
|
|
101
|
-
);
|
|
102
|
-
waves.forEach((wave, i) => {
|
|
103
|
-
lines.push(`\n┌─ Wave ${i + 1}/${waves.length} (${wave.length} in parallel)`);
|
|
104
|
-
for (const s of wave) {
|
|
105
|
-
const label = s.name || "(unnamed)";
|
|
106
|
-
const io = `${s.input || "-"} → ${s.output || "-"}`;
|
|
107
|
-
const agentPart = s.agent ? ` [agent: ${s.agent}]` : "";
|
|
108
|
-
lines.push(`│ • ${label} ${io}${agentPart}`);
|
|
109
|
-
}
|
|
110
|
-
lines.push("└────────────────────────────────────────────────");
|
|
111
|
-
});
|
|
112
|
-
return lines.join("\n");
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
try {
|
|
116
|
-
await generate(options);
|
|
117
|
-
} catch (e: any) {
|
|
118
|
-
return `Generation failed: ${e?.message ?? String(e)}`;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
const count = effectiveSources.length;
|
|
122
|
-
const mode = count > 0 ? `${count} in-memory source(s)` : "config sources";
|
|
123
|
-
return (
|
|
124
|
-
`Generation complete for ${mode}` +
|
|
125
|
-
(name ? ` (name="${name}")` : filter ? ` (filter="${filter}")` : "") +
|
|
126
|
-
`. Outputs written to their configured paths. ` +
|
|
127
|
-
`If agent-driven sources used syncFs, inspect them with \`knowhow agents list\`.`
|
|
128
|
-
);
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
export const runGenerateDefinition: Tool = {
|
|
132
|
-
type: "function",
|
|
133
|
-
function: {
|
|
134
|
-
name: "runGenerate",
|
|
135
|
-
description:
|
|
136
|
-
"Run the `knowhow generate` pipeline. Accepts in-memory `sources` so you can define arbitrary " +
|
|
137
|
-
"task orchestration at runtime WITHOUT editing the config file. Supports dependency ordering via " +
|
|
138
|
-
"`dependsOn`, automatic I/O overlap detection (a source reading another's output runs after it), " +
|
|
139
|
-
"per-source `agent` for agent-driven generation (map/reduce fan-out — one agent per input), " +
|
|
140
|
-
"concurrency control within each dependency wave, and plain summarization/analysis sources. " +
|
|
141
|
-
"Use `planOnly: true` to preview how sources group into concurrent dependency waves before running. " +
|
|
142
|
-
"When `sources` is omitted, it runs the sources defined in .knowhow/knowhow.json (optionally scoped by name/filter).",
|
|
143
|
-
parameters: {
|
|
144
|
-
type: "object",
|
|
145
|
-
usesContext: true,
|
|
146
|
-
properties: {
|
|
147
|
-
sources: {
|
|
148
|
-
type: "array",
|
|
149
|
-
description:
|
|
150
|
-
"In-memory generation sources. Each item: { name?, input, output, prompt, agent?, model?, " +
|
|
151
|
-
"kind?, outputExt?, outputName?, dependsOn?: string[], syncFs?, maxTimeLimit?, maxSpendLimit? }. " +
|
|
152
|
-
"`input` is a glob or comma-separated file list; `output` is the target file/dir; `prompt` is the " +
|
|
153
|
-
"generation instruction; `agent` (optional) runs an agent per input instead of a summarization call; " +
|
|
154
|
-
"`dependsOn` lists names of sources that must finish first.",
|
|
155
|
-
items: {
|
|
156
|
-
type: "object",
|
|
157
|
-
properties: {
|
|
158
|
-
name: { type: "string" },
|
|
159
|
-
input: { type: "string" },
|
|
160
|
-
output: { type: "string" },
|
|
161
|
-
prompt: { type: "string" },
|
|
162
|
-
agent: { type: "string" },
|
|
163
|
-
model: { type: "string" },
|
|
164
|
-
kind: { type: "string" },
|
|
165
|
-
outputExt: { type: "string" },
|
|
166
|
-
outputName: { type: "string" },
|
|
167
|
-
dependsOn: { type: "array", items: { type: "string" } },
|
|
168
|
-
syncFs: { type: "boolean" },
|
|
169
|
-
maxTimeLimit: { type: "number" },
|
|
170
|
-
maxSpendLimit: { type: "number" },
|
|
171
|
-
},
|
|
172
|
-
},
|
|
173
|
-
},
|
|
174
|
-
name: {
|
|
175
|
-
type: "string",
|
|
176
|
-
description: "Only run sources whose `name` matches exactly (config mode).",
|
|
177
|
-
},
|
|
178
|
-
filter: {
|
|
179
|
-
type: "string",
|
|
180
|
-
description: "Only run sources whose name/input/output contains this substring.",
|
|
181
|
-
},
|
|
182
|
-
force: {
|
|
183
|
-
type: "boolean",
|
|
184
|
-
description: "Skip hash checks and regenerate all matching sources.",
|
|
185
|
-
},
|
|
186
|
-
concurrency: {
|
|
187
|
-
type: "number",
|
|
188
|
-
description: "Max sources to run in parallel within a dependency wave. Default: 3.",
|
|
189
|
-
},
|
|
190
|
-
syncFs: {
|
|
191
|
-
type: "boolean",
|
|
192
|
-
description:
|
|
193
|
-
"For agent-driven sources, create .knowhow/processes/agents/<taskId>/ so they appear in `knowhow agents list`. " +
|
|
194
|
-
"Defaults to true (enabled). Pass false to opt out.",
|
|
195
|
-
},
|
|
196
|
-
syncRemote: {
|
|
197
|
-
type: "boolean",
|
|
198
|
-
description:
|
|
199
|
-
"For agent-driven sources, push their work to a remote Knowhow task (identified by the source's taskId), " +
|
|
200
|
-
"in addition to fs sync.",
|
|
201
|
-
},
|
|
202
|
-
planOnly: {
|
|
203
|
-
type: "boolean",
|
|
204
|
-
description: "Return the wave execution plan without running anything (requires `sources`).",
|
|
205
|
-
},
|
|
206
|
-
},
|
|
207
|
-
required: [],
|
|
208
|
-
},
|
|
209
|
-
},
|
|
210
|
-
};
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import * as fs from "fs";
|
|
2
|
-
|
|
3
|
-
// Tool to scan a file from line A to line B
|
|
4
|
-
export function scanFile(
|
|
5
|
-
filePath: string,
|
|
6
|
-
startLine: number,
|
|
7
|
-
endLine: number
|
|
8
|
-
): string {
|
|
9
|
-
const fileContent = fs.readFileSync(filePath, "utf8");
|
|
10
|
-
const lines = fileContent.split("\n");
|
|
11
|
-
const start = Math.max(0, startLine - 5);
|
|
12
|
-
const end = Math.min(lines.length, endLine + 5);
|
|
13
|
-
return JSON.stringify(
|
|
14
|
-
lines.map((line, index) => [index + 1, line]).slice(start, end)
|
|
15
|
-
);
|
|
16
|
-
}
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
import * as fs from "fs";
|
|
2
|
-
import * as path from "path";
|
|
3
|
-
import { Tool } from "../../clients/types";
|
|
4
|
-
import { ToolCallContext } from "../../services/Tools";
|
|
5
|
-
|
|
6
|
-
/** Resolve the agents dir lazily so tests (and cwd changes) are respected. */
|
|
7
|
-
function agentsDir(): string {
|
|
8
|
-
return path.join(process.cwd(), ".knowhow", "processes", "agents");
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Append a line to a task's input.txt without clobbering other pending
|
|
13
|
-
* messages. AgentSyncFs.checkForChanges reads input.txt and turns non-slash
|
|
14
|
-
* content into a pending user message on the target agent (and honors /poke to
|
|
15
|
-
* interrupt).
|
|
16
|
-
*/
|
|
17
|
-
function appendToInput(inputPath: string, line: string): void {
|
|
18
|
-
const existing = fs.existsSync(inputPath)
|
|
19
|
-
? fs.readFileSync(inputPath, "utf8")
|
|
20
|
-
: "";
|
|
21
|
-
const next =
|
|
22
|
-
existing && !existing.endsWith("\n")
|
|
23
|
-
? `${existing}\n${line}\n`
|
|
24
|
-
: `${existing}${line}\n`;
|
|
25
|
-
fs.writeFileSync(inputPath, next, "utf8");
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export interface SendAgentMessageParams {
|
|
29
|
-
/** The taskId of the agent to send a message to. */
|
|
30
|
-
taskId: string;
|
|
31
|
-
/** The message body to deliver. */
|
|
32
|
-
message: string;
|
|
33
|
-
/**
|
|
34
|
-
* Optional sender identifier. If omitted, resolved from the calling agent's
|
|
35
|
-
* own taskId via _ctx. Included as a `[from:...]` envelope so the recipient
|
|
36
|
-
* knows who to reply to.
|
|
37
|
-
*/
|
|
38
|
-
from?: string;
|
|
39
|
-
/**
|
|
40
|
-
* When true, deliver as a `/poke` (interrupts the recipient's current step)
|
|
41
|
-
* rather than a queued user message. Default false.
|
|
42
|
-
*/
|
|
43
|
-
poke?: boolean;
|
|
44
|
-
_ctx?: ToolCallContext;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Send a message to another running agent (a child, a peer, or the parent) by
|
|
49
|
-
* appending it to that agent's input.txt. This is the "down/lateral edge" of
|
|
50
|
-
* agent-to-agent communication — the complement to replyToParent (the up edge).
|
|
51
|
-
*
|
|
52
|
-
* The recipient's AgentSyncFs picks up the message on its next sync cycle and
|
|
53
|
-
* adds it as a pending user message. If `poke` is true, it is delivered as a
|
|
54
|
-
* `/poke` command which interrupts the recipient's current step.
|
|
55
|
-
*
|
|
56
|
-
* Self-referential: the sender identity is resolved from `_ctx` (the calling
|
|
57
|
-
* agent) when `from` isn't supplied.
|
|
58
|
-
*/
|
|
59
|
-
export async function sendAgentMessage(
|
|
60
|
-
params: SendAgentMessageParams
|
|
61
|
-
): Promise<string> {
|
|
62
|
-
const { taskId, message, from, poke = false, _ctx } = params;
|
|
63
|
-
|
|
64
|
-
if (!taskId) {
|
|
65
|
-
return "sendAgentMessage: taskId is required.";
|
|
66
|
-
}
|
|
67
|
-
if (!message || !message.trim()) {
|
|
68
|
-
return "sendAgentMessage: message is required.";
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
const targetDir = path.join(agentsDir(), taskId);
|
|
72
|
-
const inputPath = path.join(targetDir, "input.txt");
|
|
73
|
-
|
|
74
|
-
if (!fs.existsSync(targetDir)) {
|
|
75
|
-
return `sendAgentMessage: target task directory not found: ${targetDir}`;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
const fromId =
|
|
79
|
-
from ??
|
|
80
|
-
_ctx?.taskId ??
|
|
81
|
-
(_ctx?.caller as any)?.currentTaskId ??
|
|
82
|
-
"unknown";
|
|
83
|
-
const fromAgent = (_ctx?.caller as any)?.name;
|
|
84
|
-
const fromLabel = fromAgent ? `${fromId}/${fromAgent}` : fromId;
|
|
85
|
-
|
|
86
|
-
try {
|
|
87
|
-
if (poke) {
|
|
88
|
-
// /poke [message] — interrupts the recipient's current step.
|
|
89
|
-
appendToInput(inputPath, `/poke [from:${fromLabel}] ${message}`);
|
|
90
|
-
} else {
|
|
91
|
-
appendToInput(inputPath, `[from:${fromLabel}] ${message}`);
|
|
92
|
-
}
|
|
93
|
-
} catch (e: any) {
|
|
94
|
-
return `sendAgentMessage: failed to write to ${inputPath}: ${
|
|
95
|
-
e?.message ?? String(e)
|
|
96
|
-
}`;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
return `Sent message to task ${taskId}${poke ? " (as /poke)" : ""}.`;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
export const sendAgentMessageDefinition: Tool = {
|
|
103
|
-
type: "function",
|
|
104
|
-
function: {
|
|
105
|
-
name: "sendAgentMessage",
|
|
106
|
-
description:
|
|
107
|
-
"Send a message to another running agent (a child you spawned, a peer, or your parent) by " +
|
|
108
|
-
"appending it to that agent's input queue. The recipient picks it up on its next sync cycle " +
|
|
109
|
-
"as a user message. This is the down/lateral communication edge (complement to replyToParent). " +
|
|
110
|
-
"Set poke:true to interrupt the recipient's current step (delivered as /poke). Your sender " +
|
|
111
|
-
"identity is attached automatically so the recipient can reply back to you.",
|
|
112
|
-
parameters: {
|
|
113
|
-
type: "object",
|
|
114
|
-
positional: false,
|
|
115
|
-
usesContext: true,
|
|
116
|
-
properties: {
|
|
117
|
-
taskId: {
|
|
118
|
-
type: "string",
|
|
119
|
-
description: "The taskId of the agent to send the message to.",
|
|
120
|
-
},
|
|
121
|
-
message: {
|
|
122
|
-
type: "string",
|
|
123
|
-
description: "The message to deliver to the recipient agent.",
|
|
124
|
-
},
|
|
125
|
-
from: {
|
|
126
|
-
type: "string",
|
|
127
|
-
description:
|
|
128
|
-
"Optional sender id. Defaults to the calling agent's own taskId.",
|
|
129
|
-
},
|
|
130
|
-
poke: {
|
|
131
|
-
type: "boolean",
|
|
132
|
-
description:
|
|
133
|
-
"When true, deliver as a /poke that interrupts the recipient's current step. Default false.",
|
|
134
|
-
},
|
|
135
|
-
},
|
|
136
|
-
required: ["taskId", "message"],
|
|
137
|
-
},
|
|
138
|
-
},
|
|
139
|
-
};
|