@tyvm/knowhow 0.0.89 → 0.0.91
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/.depcheckrc +31 -0
- package/CONFIG.md +52 -0
- package/README.md +344 -29
- package/WORKER.md +169 -334
- package/autodoc/chat-guide.md +540 -0
- package/autodoc/cli-reference.md +765 -0
- package/autodoc/config-reference.md +541 -0
- package/autodoc/embeddings-guide.md +566 -0
- package/autodoc/generate-guide.md +477 -0
- package/autodoc/language-plugin-guide.md +443 -0
- package/autodoc/modules-guide.md +352 -0
- package/autodoc/plugins-guide.md +720 -0
- package/autodoc/quickstart-guide.md +129 -0
- package/autodoc/skills-guide.md +468 -0
- package/autodoc/worker-guide.md +526 -0
- package/bin/knowhow.js +1 -1
- package/package.json +4 -32
- package/src/agents/tools/executeScript/index.ts +5 -0
- package/src/agents/tools/googleSearch.ts +2 -2
- package/src/agents/tools/index.ts +0 -3
- package/src/agents/tools/list.ts +0 -147
- package/src/agents/tools/loadWebpage.ts +3 -113
- package/src/ai.ts +33 -2
- package/src/auth/browserLogin.ts +10 -13
- package/src/cli.ts +63 -3
- package/src/clients/gemini.ts +96 -25
- package/src/clients/http.ts +7 -11
- package/src/clients/pricing/google.ts +122 -26
- package/src/config.ts +28 -4
- package/src/conversion.ts +24 -54
- package/src/index.ts +30 -3
- package/src/login.ts +5 -6
- package/src/plugins/language.ts +0 -4
- package/src/plugins/plugins.ts +0 -14
- package/src/plugins/url.ts +31 -12
- package/src/processors/TokenCompressor.ts +2 -2
- package/src/processors/ToolResponseCache.ts +3 -3
- package/src/processors/tools/grepToolResponse.ts +9 -4
- package/src/processors/tools/jqToolResponse.ts +11 -6
- package/src/processors/tools/listStoredToolResponses.ts +1 -1
- package/src/processors/tools/tailToolResponse.ts +9 -4
- package/src/services/GitHub.ts +2 -2
- package/src/services/KnowhowClient.ts +34 -34
- package/src/{plugins/downloader/downloader.ts → services/MediaProcessorService.ts} +109 -267
- package/src/services/S3.ts +16 -16
- package/src/services/index.ts +4 -4
- package/src/services/modules/index.ts +10 -2
- package/src/services/modules/types.ts +5 -2
- package/src/services/script-execution/ScriptExecutor.ts +29 -10
- package/src/services/script-execution/ScriptPolicy.ts +6 -2
- package/src/types.ts +1 -0
- package/src/utils/http.ts +127 -0
- package/src/workers/auth/PasskeySetup.ts +7 -11
- package/tests/clients/AIClient.test.ts +24 -21
- package/tests/manual/file-edits/figma.test.ts +3 -70
- package/tests/plugins/language/languagePlugin-content-triggers.test.ts +2 -0
- package/tests/plugins/language/languagePlugin.test.ts +2 -0
- package/tests/processors/ToolResponseCache.test.ts +2 -2
- package/tests/test.spec.ts +0 -14
- package/tests/unit/modules/moduleLoading.test.ts +7 -4
- package/tests/unit/plugins/pluginLoading.test.ts +6 -6
- package/ts_build/package.json +4 -32
- package/ts_build/src/agents/tools/ast/astAppendNode.d.ts +1 -1
- package/ts_build/src/agents/tools/ast/astAppendNode.js +2 -90
- package/ts_build/src/agents/tools/ast/astAppendNode.js.map +1 -1
- package/ts_build/src/agents/tools/ast/astDeleteNode.d.ts +1 -1
- package/ts_build/src/agents/tools/ast/astDeleteNode.js +2 -88
- package/ts_build/src/agents/tools/ast/astDeleteNode.js.map +1 -1
- package/ts_build/src/agents/tools/ast/astEditNode.d.ts +1 -1
- package/ts_build/src/agents/tools/ast/astEditNode.js +2 -90
- package/ts_build/src/agents/tools/ast/astEditNode.js.map +1 -1
- package/ts_build/src/agents/tools/ast/astGetPathForLine.d.ts +1 -1
- package/ts_build/src/agents/tools/ast/astGetPathForLine.js +2 -72
- package/ts_build/src/agents/tools/ast/astGetPathForLine.js.map +1 -1
- package/ts_build/src/agents/tools/ast/astListPaths.d.ts +1 -1
- package/ts_build/src/agents/tools/ast/astListPaths.js +2 -72
- package/ts_build/src/agents/tools/ast/astListPaths.js.map +1 -1
- package/ts_build/src/agents/tools/executeScript/index.d.ts +3 -2
- package/ts_build/src/agents/tools/executeScript/index.js +4 -1
- package/ts_build/src/agents/tools/executeScript/index.js.map +1 -1
- package/ts_build/src/agents/tools/googleSearch.js +2 -2
- package/ts_build/src/agents/tools/googleSearch.js.map +1 -1
- package/ts_build/src/agents/tools/index.d.ts +0 -3
- package/ts_build/src/agents/tools/index.js +0 -3
- package/ts_build/src/agents/tools/index.js.map +1 -1
- package/ts_build/src/agents/tools/list.js +0 -138
- package/ts_build/src/agents/tools/list.js.map +1 -1
- package/ts_build/src/agents/tools/loadWebpage.js +1 -89
- package/ts_build/src/agents/tools/loadWebpage.js.map +1 -1
- package/ts_build/src/agents/tools/textSearch.d.ts +1 -1
- package/ts_build/src/ai.js +18 -1
- package/ts_build/src/ai.js.map +1 -1
- package/ts_build/src/auth/browserLogin.js +7 -7
- package/ts_build/src/auth/browserLogin.js.map +1 -1
- package/ts_build/src/cli.d.ts +1 -1
- package/ts_build/src/cli.js +47 -1
- package/ts_build/src/cli.js.map +1 -1
- package/ts_build/src/clients/gemini.d.ts +1 -73
- package/ts_build/src/clients/gemini.js +57 -19
- package/ts_build/src/clients/gemini.js.map +1 -1
- package/ts_build/src/clients/http.js +5 -9
- package/ts_build/src/clients/http.js.map +1 -1
- package/ts_build/src/clients/pricing/google.d.ts +17 -73
- package/ts_build/src/clients/pricing/google.js +47 -10
- package/ts_build/src/clients/pricing/google.js.map +1 -1
- package/ts_build/src/config.js +17 -2
- package/ts_build/src/config.js.map +1 -1
- package/ts_build/src/conversion.d.ts +1 -4
- package/ts_build/src/conversion.js +12 -27
- package/ts_build/src/conversion.js.map +1 -1
- package/ts_build/src/index.d.ts +4 -0
- package/ts_build/src/index.js +19 -3
- package/ts_build/src/index.js.map +1 -1
- package/ts_build/src/login.js +5 -4
- package/ts_build/src/login.js.map +1 -1
- package/ts_build/src/plugins/downloader/downloader.js +3 -3
- package/ts_build/src/plugins/downloader/downloader.js.map +1 -1
- package/ts_build/src/plugins/language.js.map +1 -1
- package/ts_build/src/plugins/plugins.js +0 -14
- package/ts_build/src/plugins/plugins.js.map +1 -1
- package/ts_build/src/plugins/tree-sitter/editor.d.ts +3 -32
- package/ts_build/src/plugins/tree-sitter/editor.js +6 -208
- package/ts_build/src/plugins/tree-sitter/editor.js.map +1 -1
- package/ts_build/src/plugins/tree-sitter/parser.d.ts +19 -54
- package/ts_build/src/plugins/tree-sitter/parser.js +19 -293
- package/ts_build/src/plugins/tree-sitter/parser.js.map +1 -1
- package/ts_build/src/plugins/tree-sitter/simple-paths.d.ts +2 -15
- package/ts_build/src/plugins/tree-sitter/simple-paths.js +2 -324
- package/ts_build/src/plugins/tree-sitter/simple-paths.js.map +1 -1
- package/ts_build/src/plugins/url.js +27 -8
- package/ts_build/src/plugins/url.js.map +1 -1
- package/ts_build/src/processors/TokenCompressor.js +2 -2
- package/ts_build/src/processors/TokenCompressor.js.map +1 -1
- package/ts_build/src/processors/ToolResponseCache.js +3 -3
- package/ts_build/src/processors/ToolResponseCache.js.map +1 -1
- package/ts_build/src/processors/tools/grepToolResponse.d.ts +3 -1
- package/ts_build/src/processors/tools/grepToolResponse.js +8 -2
- package/ts_build/src/processors/tools/grepToolResponse.js.map +1 -1
- package/ts_build/src/processors/tools/jqToolResponse.d.ts +3 -1
- package/ts_build/src/processors/tools/jqToolResponse.js +10 -4
- package/ts_build/src/processors/tools/jqToolResponse.js.map +1 -1
- package/ts_build/src/processors/tools/listStoredToolResponses.js +1 -1
- package/ts_build/src/processors/tools/listStoredToolResponses.js.map +1 -1
- package/ts_build/src/processors/tools/tailToolResponse.d.ts +3 -1
- package/ts_build/src/processors/tools/tailToolResponse.js +8 -2
- package/ts_build/src/processors/tools/tailToolResponse.js.map +1 -1
- package/ts_build/src/services/GitHub.js +2 -2
- package/ts_build/src/services/GitHub.js.map +1 -1
- package/ts_build/src/services/KnowhowClient.d.ts +29 -29
- package/ts_build/src/services/KnowhowClient.js +33 -33
- package/ts_build/src/services/KnowhowClient.js.map +1 -1
- package/ts_build/src/services/MediaProcessorService.d.ts +22 -0
- package/ts_build/src/services/MediaProcessorService.js +215 -0
- package/ts_build/src/services/MediaProcessorService.js.map +1 -0
- package/ts_build/src/services/S3.js +12 -18
- package/ts_build/src/services/S3.js.map +1 -1
- package/ts_build/src/services/index.d.ts +3 -2
- package/ts_build/src/services/index.js +3 -3
- package/ts_build/src/services/index.js.map +1 -1
- package/ts_build/src/services/modules/index.js +10 -2
- package/ts_build/src/services/modules/index.js.map +1 -1
- package/ts_build/src/services/modules/types.d.ts +5 -2
- package/ts_build/src/services/script-execution/ScriptExecutor.js +22 -7
- package/ts_build/src/services/script-execution/ScriptExecutor.js.map +1 -1
- package/ts_build/src/services/script-execution/ScriptPolicy.d.ts +1 -1
- package/ts_build/src/services/script-execution/ScriptPolicy.js +4 -2
- package/ts_build/src/services/script-execution/ScriptPolicy.js.map +1 -1
- package/ts_build/src/types.d.ts +1 -0
- package/ts_build/src/types.js +1 -0
- package/ts_build/src/types.js.map +1 -1
- package/ts_build/src/utils/http.d.ts +27 -0
- package/ts_build/src/utils/http.js +98 -0
- package/ts_build/src/utils/http.js.map +1 -0
- package/ts_build/src/workers/auth/PasskeySetup.js +6 -7
- package/ts_build/src/workers/auth/PasskeySetup.js.map +1 -1
- package/ts_build/tests/clients/AIClient.test.js +11 -14
- package/ts_build/tests/clients/AIClient.test.js.map +1 -1
- package/ts_build/tests/manual/file-edits/figma.test.d.ts +0 -1
- package/ts_build/tests/manual/file-edits/figma.test.js +1 -46
- package/ts_build/tests/manual/file-edits/figma.test.js.map +1 -1
- package/ts_build/tests/plugins/language/languagePlugin-content-triggers.test.js +2 -0
- package/ts_build/tests/plugins/language/languagePlugin-content-triggers.test.js.map +1 -1
- package/ts_build/tests/plugins/language/languagePlugin.test.js +2 -0
- package/ts_build/tests/plugins/language/languagePlugin.test.js.map +1 -1
- package/ts_build/tests/processors/ToolResponseCache.test.js +2 -2
- package/ts_build/tests/processors/ToolResponseCache.test.js.map +1 -1
- package/ts_build/tests/test.spec.js +0 -14
- package/ts_build/tests/test.spec.js.map +1 -1
- package/ts_build/tests/tree-sitter/tree-sitter.test.d.ts +0 -1
- package/ts_build/tests/tree-sitter/tree-sitter.test.js +2 -183
- package/ts_build/tests/tree-sitter/tree-sitter.test.js.map +1 -1
- package/ts_build/tests/unit/modules/moduleLoading.test.js +6 -4
- package/ts_build/tests/unit/modules/moduleLoading.test.js.map +1 -1
- package/ts_build/tests/unit/plugins/pluginLoading.test.js +4 -4
- package/ts_build/tests/unit/plugins/pluginLoading.test.js.map +1 -1
- package/autodoc/chat.mdx +0 -20
- package/autodoc/cli.mdx +0 -11
- package/autodoc/plugins/asana.mdx +0 -47
- package/autodoc/plugins/downloader/downloader.mdx +0 -38
- package/autodoc/plugins/downloader/plugin.mdx +0 -37
- package/autodoc/plugins/downloader/types.mdx +0 -42
- package/autodoc/plugins/embedding.mdx +0 -41
- package/autodoc/plugins/figma.mdx +0 -45
- package/autodoc/plugins/github.mdx +0 -40
- package/autodoc/plugins/jira.mdx +0 -46
- package/autodoc/plugins/language.mdx +0 -37
- package/autodoc/plugins/linear.mdx +0 -35
- package/autodoc/plugins/notion.mdx +0 -38
- package/autodoc/plugins/plugins.mdx +0 -59
- package/autodoc/plugins/types.mdx +0 -51
- package/autodoc/plugins/vim.mdx +0 -39
- package/autodoc/tools/addInternalTools.mdx +0 -1
- package/autodoc/tools/agentCall.mdx +0 -1
- package/autodoc/tools/asana/definitions.mdx +0 -10
- package/autodoc/tools/asana/index.mdx +0 -12
- package/autodoc/tools/askHuman.mdx +0 -1
- package/autodoc/tools/callPlugin.mdx +0 -1
- package/autodoc/tools/embeddingSearch.mdx +0 -1
- package/autodoc/tools/execCommand.mdx +0 -1
- package/autodoc/tools/fileSearch.mdx +0 -1
- package/autodoc/tools/finalAnswer.mdx +0 -1
- package/autodoc/tools/github/definitions.mdx +0 -6
- package/autodoc/tools/github/index.mdx +0 -8
- package/autodoc/tools/index.mdx +0 -14
- package/autodoc/tools/lintFile.mdx +0 -7
- package/autodoc/tools/list.mdx +0 -16
- package/autodoc/tools/modifyFile.mdx +0 -7
- package/autodoc/tools/patch.mdx +0 -9
- package/autodoc/tools/readBlocks.mdx +0 -1
- package/autodoc/tools/readFile.mdx +0 -1
- package/autodoc/tools/scanFile.mdx +0 -1
- package/autodoc/tools/textSearch.mdx +0 -6
- package/autodoc/tools/types/fileblock.mdx +0 -1
- package/autodoc/tools/visionTool.mdx +0 -1
- package/autodoc/tools/writeFile.mdx +0 -1
- package/benchmarks/.dockerignore +0 -7
- package/benchmarks/README.md +0 -166
- package/benchmarks/docker/Dockerfile +0 -68
- package/benchmarks/example-config.yml +0 -27
- package/benchmarks/jest.config.js +0 -13
- package/benchmarks/package-lock.json +0 -4297
- package/benchmarks/package.json +0 -39
- package/benchmarks/results/27b0a06/2025-09-27/xai/xai-grok-code-fast-1.json +0 -2909
- package/benchmarks/results/4057aed/2025-08-14/anthropic/anthropic-claude-sonnet-4-20250514.json +0 -1671
- package/benchmarks/results/4542435/2025-08-05/lms/lms-openai-gpt-oss-20b.json +0 -2814
- package/benchmarks/results/4542435/2025-08-05/lms/lms-qwen-qwen3-30b-a3b-2507.json +0 -2014
- package/benchmarks/results/4fb9125/2025-08-07/anthropic/anthropic-claude-sonnet-4-20250514.json +0 -3121
- package/benchmarks/results/5766aee/2025-08-02/lms-qwen/qwen3-coder-30b.json +0 -98
- package/benchmarks/results/6d73808/2025-08-07/openai/openai-gpt-5.json +0 -3256
- package/benchmarks/results/77bf0a6/2025-08-02/lms-qwen/qwen3-30b-a3b-2507.json +0 -4298
- package/benchmarks/results/8c0d445/2025-08-03/anthropic/anthropic-claude-sonnet-4-20250514.json +0 -3031
- package/benchmarks/results/8c0d445/2025-08-03/openai/openai-gpt-4.1-2025-04-14.json +0 -2990
- package/benchmarks/results/ac6b2ab/2025-08-03/anthropic/anthropic-claude-sonnet-4-20250514.json +0 -3256
- package/benchmarks/results/ac6b2ab/2025-08-03/lms/lms-qwen-qwen3-coder-30b.json +0 -3007
- package/benchmarks/results/ac6b2ab/2025-08-03/openai/openai-gpt-4.1-2025-04-14.json +0 -3256
- package/benchmarks/results/ac6b2ab/2025-08-03/openai/openai-gpt-4.1-mini-2025-04-14.json +0 -3036
- package/benchmarks/results/ac6b2ab/2025-08-03/openai/openai-gpt-4.1-nano-2025-04-14.json +0 -3280
- package/benchmarks/results/adff675/2025-08-04/lms/lms-qwen-qwen3-30b-a3b-2507.json +0 -1920
- package/benchmarks/results/adff675/2025-08-04/lms/lms-qwen-qwen3-coder-30b.json +0 -3281
- package/benchmarks/results/b502ed9/2025-08-03/lms-qwen/qwen3-coder-30b.json +0 -2896
- package/benchmarks/results/d1a8129/2025-08-03/lms/lms-qwen-qwen3-coder-30b.json +0 -3011
- package/benchmarks/results/e60471c/2025-08-03/lms/qwen3-30b-a3b-2507.json +0 -3003
- package/benchmarks/scripts/build-and-run.sh +0 -47
- package/benchmarks/scripts/clone-exercism.sh +0 -92
- package/benchmarks/scripts/validate.sh +0 -48
- package/benchmarks/src/__tests__/runner.test.ts +0 -27
- package/benchmarks/src/cli.ts +0 -90
- package/benchmarks/src/evaluators/EvaluatorRegistry.ts +0 -64
- package/benchmarks/src/evaluators/JavaScriptEvaluator.ts +0 -183
- package/benchmarks/src/evaluators/index.ts +0 -3
- package/benchmarks/src/evaluators/types.ts +0 -22
- package/benchmarks/src/index.ts +0 -3
- package/benchmarks/src/providers.ts +0 -13
- package/benchmarks/src/runner.ts +0 -824
- package/benchmarks/src/types.ts +0 -63
- package/benchmarks/tsconfig.json +0 -19
- package/leaderboard/README.md +0 -148
- package/leaderboard/app/api/benchmark-data/route.ts +0 -131
- package/leaderboard/app/api/benchmark-detail/route.ts +0 -172
- package/leaderboard/app/details/[model]/[provider]/[language]/page.tsx +0 -501
- package/leaderboard/app/exercise/[model]/[provider]/[language]/[exercise]/page.tsx +0 -375
- package/leaderboard/app/globals.css +0 -27
- package/leaderboard/app/layout.tsx +0 -21
- package/leaderboard/app/page.tsx +0 -170
- package/leaderboard/components/LeaderboardTable.tsx +0 -168
- package/leaderboard/components/PerformanceChart.tsx +0 -109
- package/leaderboard/next-env.d.ts +0 -5
- package/leaderboard/next.config.js +0 -4
- package/leaderboard/package-lock.json +0 -6363
- package/leaderboard/package.json +0 -28
- package/leaderboard/postcss.config.js +0 -6
- package/leaderboard/tailwind.config.js +0 -17
- package/leaderboard/tsconfig.json +0 -28
- package/leaderboard/types/benchmark.ts +0 -67
- package/leaderboard/utils/dataProcessor.ts +0 -33
- package/src/agents/tools/asana/definitions.ts +0 -199
- package/src/agents/tools/asana/index.ts +0 -108
- package/src/agents/tools/ast/astAppendNode.ts +0 -90
- package/src/agents/tools/ast/astDeleteNode.ts +0 -88
- package/src/agents/tools/ast/astEditNode.ts +0 -95
- package/src/agents/tools/ast/astGetPathForLine.ts +0 -73
- package/src/agents/tools/ast/astListPaths.ts +0 -66
- package/src/agents/tools/ast/index.ts +0 -7
- package/src/agents/tools/github/definitions.ts +0 -89
- package/src/agents/tools/github/index.ts +0 -67
- package/src/chat-old.ts +0 -446
- package/src/plugins/asana.ts +0 -146
- package/src/plugins/downloader/plugin.ts +0 -103
- package/src/plugins/downloader/types.ts +0 -92
- package/src/plugins/figma.ts +0 -158
- package/src/plugins/github.ts +0 -219
- package/src/plugins/jira.ts +0 -115
- package/src/plugins/linear.ts +0 -230
- package/src/plugins/notion.ts +0 -179
- package/src/plugins/tree-sitter/editor.ts +0 -369
- package/src/plugins/tree-sitter/lang-packs/index.ts +0 -23
- package/src/plugins/tree-sitter/lang-packs/java.ts +0 -59
- package/src/plugins/tree-sitter/lang-packs/javascript.ts +0 -57
- package/src/plugins/tree-sitter/lang-packs/python.ts +0 -45
- package/src/plugins/tree-sitter/lang-packs/types.ts +0 -79
- package/src/plugins/tree-sitter/lang-packs/typescript.ts +0 -49
- package/src/plugins/tree-sitter/parser.ts +0 -470
- package/src/plugins/tree-sitter/simple-paths.ts +0 -467
- package/test-comprehensive.ts +0 -31
- package/tests/tree-sitter/editor.test.ts +0 -113
- package/tests/tree-sitter/invalid.test.ts +0 -299
- package/tests/tree-sitter/paths/common-edits.test.ts +0 -564
- package/tests/tree-sitter/paths/debug-exact-position.test.ts +0 -44
- package/tests/tree-sitter/paths/debug-line-indexing.test.ts +0 -49
- package/tests/tree-sitter/paths/debug-paths.test.ts +0 -90
- package/tests/tree-sitter/paths/paths.test.ts +0 -170
- package/tests/tree-sitter/paths/simple-paths.test.ts +0 -367
- package/tests/tree-sitter/sample-after.ts +0 -48
- package/tests/tree-sitter/sample-before.ts +0 -25
- package/tests/tree-sitter/test-files/completely-broken.ts +0 -7
- package/tests/tree-sitter/test-files/duplicate-braces.ts +0 -39
- package/tests/tree-sitter/test-files/invalid-nesting.ts +0 -39
- package/tests/tree-sitter/test-files/malformed-signature.ts +0 -39
- package/tests/tree-sitter/test-files/mismatched-parens.ts +0 -39
- package/tests/tree-sitter/test-files/missing-semicolon.ts +0 -39
- package/tests/tree-sitter/test-files/partially-broken.ts +0 -20
- package/tests/tree-sitter/test-files/specific-errors.ts +0 -14
- package/tests/tree-sitter/test-files/unclosed-string.ts +0 -39
- package/tests/tree-sitter/tree-sitter.test.ts +0 -251
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
This function enables an AI agent to:
|
|
2
|
-
|
|
3
|
-
1. **Fetch Pull Request Details**: Retrieve information about a specific pull request from a GitHub repository.
|
|
4
|
-
2. **Get Build Statuses**: Obtain the build statuses (e.g., success, failure) for the pull request.
|
|
5
|
-
3. **Retrieve Run Logs**: Fetch the logs of a specific GitHub Actions run.
|
|
6
|
-
4. **Get Failure Logs**: Identify and retrieve logs related to failed build checks for a pull request, highlighting errors and failures.
|
|
7
|
-
|
|
8
|
-
In short, it helps the AI agent monitor and diagnose issues in pull request builds on GitHub.
|
package/autodoc/tools/index.mdx
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
This function allows an AI agent to perform a variety of tasks such as:
|
|
2
|
-
|
|
3
|
-
- Adding internal tools
|
|
4
|
-
- Calling plugins
|
|
5
|
-
- Searching text and embeddings
|
|
6
|
-
- Executing commands
|
|
7
|
-
- Providing final answers
|
|
8
|
-
- Indexing data
|
|
9
|
-
- Linting, modifying, patching, reading, scanning, and writing files
|
|
10
|
-
- Using vision tools
|
|
11
|
-
- Integrating with Asana and GitHub
|
|
12
|
-
- Searching files
|
|
13
|
-
|
|
14
|
-
In short, it equips the AI with a wide range of capabilities for handling files, executing tasks, and integrating with other tools and platforms.
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
This function allows an AI agent to check a file for coding errors or style issues (linting) based on the file's extension. It does this by:
|
|
2
|
-
|
|
3
|
-
1. Getting configuration settings.
|
|
4
|
-
2. Determining the file's extension.
|
|
5
|
-
3. Finding the appropriate linting command for that extension.
|
|
6
|
-
4. Running the linting command on the file.
|
|
7
|
-
5. Returning and logging the results of the linting process.
|
package/autodoc/tools/list.mdx
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
This function provides an AI agent with a variety of tools to perform different tasks. Here's a simple breakdown of what each tool enables the AI to do:
|
|
2
|
-
|
|
3
|
-
1. **embeddingSearch**: Find files related to a user's goal using fuzzy search.
|
|
4
|
-
2. **execCommand**: Run commands in the system's terminal.
|
|
5
|
-
3. **finalAnswer**: Send the final response to the user.
|
|
6
|
-
4. **callPlugin**: Use additional plugins for extra context or information.
|
|
7
|
-
5. **visionTool**: Analyze images and answer questions about them.
|
|
8
|
-
6. **readFile**: Read the contents of a file.
|
|
9
|
-
7. **readBlocks**: Read specific parts of a file.
|
|
10
|
-
8. **patchFile**: Modify or create files using patches.
|
|
11
|
-
9. **lintFile**: Check a file for errors based on its type.
|
|
12
|
-
10. **textSearch**: Search for exact text matches in files.
|
|
13
|
-
11. **fileSearch**: Search for files by their paths.
|
|
14
|
-
12. **askHuman**: Ask a human a question and get a response.
|
|
15
|
-
|
|
16
|
-
Additionally, it includes tools for working with GitHub and Asana.
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
This function allows an AI agent to:
|
|
2
|
-
|
|
3
|
-
1. **Read and Modify Files**: It can read the content of a file and update specific parts of it based on provided instructions (`fileBlocks`).
|
|
4
|
-
2. **Track Changes**: It keeps track of the original content and the new content after modifications.
|
|
5
|
-
3. **Generate Diffs**: It creates a diff (a summary of changes) between the original and modified content.
|
|
6
|
-
4. **Linting**: It checks the modified file for any coding style or syntax issues.
|
|
7
|
-
5. **Provide Feedback**: It returns a summary of changes and linting results, asking for confirmation if the changes are correct.
|
package/autodoc/tools/patch.mdx
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
This function enables an AI agent to apply a patch to a file, ensuring the patch is correctly formatted and valid. It does the following:
|
|
2
|
-
|
|
3
|
-
1. **Parse the Patch**: Breaks down the patch into manageable parts (hunks).
|
|
4
|
-
2. **Validate and Fix Hunks**: Ensures each part of the patch is valid and fixes any issues.
|
|
5
|
-
3. **Apply the Patch**: Applies the validated and fixed patch to the original file content.
|
|
6
|
-
4. **Handle Errors**: Saves any errors encountered during the process for debugging.
|
|
7
|
-
5. **Lint the File**: Checks the updated file for any coding standard issues.
|
|
8
|
-
|
|
9
|
-
In short, it helps the AI agent to safely and correctly update files using patches.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
This function allows an AI agent to read specific parts (blocks) of a file. It takes a file path and a list of block numbers, reads the file, and returns only the blocks that match the given numbers.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
This function allows an AI agent to read a file from the filesystem, break its content into smaller chunks (blocks) of a specified size, and return these chunks as an array. If the file does not exist, it suggests possible related files. This helps the AI handle large files efficiently and manage cases where the file might be missing.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
This function allows an AI agent to read and return a specific range of lines from a text file, including a few lines before and after the specified range for context.
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
This function allows an AI agent to search for a text term in two ways:
|
|
2
|
-
|
|
3
|
-
1. **Primary Method**: It uses a command-line tool (`ag`) to search for the term.
|
|
4
|
-
2. **Fallback Method**: If the tool isn't available, it searches through pre-configured text embeddings to find matches.
|
|
5
|
-
|
|
6
|
-
In simple terms, it helps the AI find information either using a fast tool or a backup method if the tool fails.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
This function allows an AI agent to handle parts of a file by breaking it into blocks. Each block has a number, optional starting line, and some content. This helps the AI manage and process large files in smaller, more manageable pieces.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
This function allows an AI agent to analyze an image and answer a question about it.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
This function allows an AI agent to save text to a file on the computer. If successful, it confirms the file was written; if there's an error, it returns the error message.
|
package/benchmarks/.dockerignore
DELETED
package/benchmarks/README.md
DELETED
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
# Knowhow Benchmarks
|
|
2
|
-
|
|
3
|
-
A benchmarking framework for testing the Knowhow terminal agent against coding exercises from Exercism.
|
|
4
|
-
|
|
5
|
-
## Overview
|
|
6
|
-
|
|
7
|
-
This package provides tools to:
|
|
8
|
-
- Clone and setup Exercism coding exercises
|
|
9
|
-
- Run the Knowhow agent against these exercises in a controlled environment
|
|
10
|
-
- Collect metrics (turns, time, cost) and success rates
|
|
11
|
-
- Generate detailed reports
|
|
12
|
-
|
|
13
|
-
## Quick Start
|
|
14
|
-
|
|
15
|
-
### 1. Build the Docker Container
|
|
16
|
-
|
|
17
|
-
From the main Knowhow repository root:
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
docker build -f benchmarks/docker/Dockerfile -t knowhow-bench .
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
### 2. Run Benchmarks
|
|
24
|
-
|
|
25
|
-
```bash
|
|
26
|
-
# Run 5 JavaScript exercises with GPT-4o-mini
|
|
27
|
-
docker run --rm -v $(pwd)/benchmarks/results:/app/knowhow/benchmarks/results \
|
|
28
|
-
knowhow-bench run --language javascript --count 5 --model gpt-4o-mini
|
|
29
|
-
|
|
30
|
-
# Setup exercises only (without running)
|
|
31
|
-
docker run --rm knowhow-bench setup --language javascript --count 10
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## Configuration Options
|
|
35
|
-
|
|
36
|
-
### Command Line Arguments
|
|
37
|
-
|
|
38
|
-
- `--language <lang>`: Programming language to test (default: javascript)
|
|
39
|
-
- `--count <num>`: Maximum number of exercises to run (default: 10)
|
|
40
|
-
- `--model <model>`: AI model to use (default: gpt-4o-mini)
|
|
41
|
-
- `--provider <provider>`: AI provider (default: openai)
|
|
42
|
-
- `--max-turns <num>`: Maximum turns per exercise (default: 20)
|
|
43
|
-
- `--max-time <seconds>`: Maximum time per exercise (default: 300)
|
|
44
|
-
- `--max-cost <dollars>`: Maximum cost per exercise (default: 1.0)
|
|
45
|
-
- `--output <file>`: Output file for results (default: results.json)
|
|
46
|
-
|
|
47
|
-
### Example Commands
|
|
48
|
-
|
|
49
|
-
```bash
|
|
50
|
-
# Run Python exercises with custom limits
|
|
51
|
-
docker run --rm knowhow-bench run \
|
|
52
|
-
--language python \
|
|
53
|
-
--count 15 \
|
|
54
|
-
--model gpt-4 \
|
|
55
|
-
--max-turns 30 \
|
|
56
|
-
--max-time 600 \
|
|
57
|
-
--output python-results.json
|
|
58
|
-
|
|
59
|
-
# Run with Claude
|
|
60
|
-
docker run --rm knowhow-bench run \
|
|
61
|
-
--provider anthropic \
|
|
62
|
-
--model claude-3-sonnet-20240229 \
|
|
63
|
-
--count 10
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
## Results Format
|
|
67
|
-
|
|
68
|
-
The benchmark generates a JSON file with detailed results:
|
|
69
|
-
|
|
70
|
-
```json
|
|
71
|
-
{
|
|
72
|
-
"config": {
|
|
73
|
-
"language": "javascript",
|
|
74
|
-
"maxExercises": 5,
|
|
75
|
-
"model": "gpt-4o-mini",
|
|
76
|
-
"provider": "openai"
|
|
77
|
-
},
|
|
78
|
-
"exercises": [
|
|
79
|
-
{
|
|
80
|
-
"exerciseName": "hello-world",
|
|
81
|
-
"status": "success",
|
|
82
|
-
"turns": 3,
|
|
83
|
-
"timeElapsed": 45.2,
|
|
84
|
-
"cost": 0.025,
|
|
85
|
-
"startTime": "2024-01-15T10:00:00Z",
|
|
86
|
-
"endTime": "2024-01-15T10:00:45Z"
|
|
87
|
-
}
|
|
88
|
-
],
|
|
89
|
-
"summary": {
|
|
90
|
-
"totalExercises": 5,
|
|
91
|
-
"successCount": 4,
|
|
92
|
-
"failureCount": 1,
|
|
93
|
-
"successRate": 0.8,
|
|
94
|
-
"averageTurns": 4.2,
|
|
95
|
-
"averageTime": 62.5,
|
|
96
|
-
"totalCost": 0.15
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
## Supported Languages
|
|
102
|
-
|
|
103
|
-
Currently supports any language available in Exercism. Start with one language for initial testing:
|
|
104
|
-
|
|
105
|
-
- `javascript` (recommended for initial testing)
|
|
106
|
-
- `python`
|
|
107
|
-
- `java`
|
|
108
|
-
- `typescript`
|
|
109
|
-
- `go`
|
|
110
|
-
- `rust`
|
|
111
|
-
- And many more...
|
|
112
|
-
|
|
113
|
-
## Development
|
|
114
|
-
|
|
115
|
-
### Local Development
|
|
116
|
-
|
|
117
|
-
```bash
|
|
118
|
-
cd benchmarks
|
|
119
|
-
npm install
|
|
120
|
-
npm run dev setup --language javascript --count 5
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
### Building
|
|
124
|
-
|
|
125
|
-
```bash
|
|
126
|
-
npm run build
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
### Testing
|
|
130
|
-
|
|
131
|
-
```bash
|
|
132
|
-
npm test
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
## Architecture
|
|
136
|
-
|
|
137
|
-
- **Docker Container**: Isolated environment with Node.js, Git, and all dependencies
|
|
138
|
-
- **Exercise Cloning**: Based on Aider's approach, clones from Exercism repositories
|
|
139
|
-
- **Agent Integration**: Instantiates Knowhow agents programmatically
|
|
140
|
-
- **Metrics Collection**: Tracks turns, time, cost, and success rates
|
|
141
|
-
- **Result Recording**: Outputs detailed JSON reports
|
|
142
|
-
|
|
143
|
-
## Limitations (MVP)
|
|
144
|
-
|
|
145
|
-
This is an MVP implementation with the following limitations:
|
|
146
|
-
- Single language support per run
|
|
147
|
-
- Basic metrics collection
|
|
148
|
-
- Simple failure detection
|
|
149
|
-
- Minimal configuration options
|
|
150
|
-
|
|
151
|
-
Future versions will expand these capabilities based on initial results.
|
|
152
|
-
|
|
153
|
-
## Troubleshooting
|
|
154
|
-
|
|
155
|
-
### Container Build Issues
|
|
156
|
-
- Ensure Docker has enough memory allocated
|
|
157
|
-
- Check that the Knowhow codebase is properly copied into the container
|
|
158
|
-
|
|
159
|
-
### Exercise Setup Issues
|
|
160
|
-
- Verify internet connectivity for cloning repositories
|
|
161
|
-
- Check that the specified language track exists in Exercism
|
|
162
|
-
|
|
163
|
-
### Agent Execution Issues
|
|
164
|
-
- Review the output logs for specific error messages
|
|
165
|
-
- Verify model and provider configuration
|
|
166
|
-
- Check API key availability in the container environment
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
# Use Node.js 18 as base image
|
|
2
|
-
FROM node:18-bullseye
|
|
3
|
-
|
|
4
|
-
# Install system dependencies (cached layer - rarely changes)
|
|
5
|
-
RUN apt-get update && apt-get install -y \
|
|
6
|
-
git \
|
|
7
|
-
curl \
|
|
8
|
-
wget \
|
|
9
|
-
python3 \
|
|
10
|
-
python3-pip \
|
|
11
|
-
build-essential \
|
|
12
|
-
&& rm -rf /var/lib/apt/lists/*
|
|
13
|
-
|
|
14
|
-
# Set working directory
|
|
15
|
-
WORKDIR /app
|
|
16
|
-
|
|
17
|
-
# Copy package files for dependency caching
|
|
18
|
-
COPY package*.json ./
|
|
19
|
-
# Install main dependencies (cached until package.json changes)
|
|
20
|
-
RUN npm install
|
|
21
|
-
|
|
22
|
-
# Copy build configuration (cached until config changes)
|
|
23
|
-
COPY tsconfig.json ./
|
|
24
|
-
|
|
25
|
-
# Copy source code (this layer will be invalidated on source changes)
|
|
26
|
-
COPY src/ ./src/
|
|
27
|
-
|
|
28
|
-
# Build the main project (will rebuild when source changes)
|
|
29
|
-
RUN npm run compile
|
|
30
|
-
|
|
31
|
-
COPY . .
|
|
32
|
-
|
|
33
|
-
# Now set up benchmarks in a subdirectory
|
|
34
|
-
WORKDIR /app/benchmarks
|
|
35
|
-
|
|
36
|
-
# Copy benchmarks package.json for dependency caching
|
|
37
|
-
COPY benchmarks/package*.json ./
|
|
38
|
-
|
|
39
|
-
# Create a symlink to make @tyvm/knowhow available
|
|
40
|
-
RUN mkdir -p node_modules/@tyvm && \
|
|
41
|
-
ln -sf /app/dist node_modules/@tyvm/knowhow
|
|
42
|
-
|
|
43
|
-
# Install benchmarks dependencies (cached until benchmarks package.json changes)
|
|
44
|
-
RUN npm install
|
|
45
|
-
|
|
46
|
-
# Copy benchmarks source and build configuration
|
|
47
|
-
COPY benchmarks/src/ ./src/
|
|
48
|
-
COPY benchmarks/tsconfig.json ./
|
|
49
|
-
|
|
50
|
-
# Build benchmarks (will rebuild when benchmarks source changes)
|
|
51
|
-
RUN npm run build
|
|
52
|
-
|
|
53
|
-
# Make CLI executable
|
|
54
|
-
RUN chmod +x dist/cli.js
|
|
55
|
-
|
|
56
|
-
# Environment variables for AI providers
|
|
57
|
-
ENV OPENAI_API_KEY=""
|
|
58
|
-
ENV ANTHROPIC_API_KEY=""
|
|
59
|
-
ENV GEMINI_API_KEY=""
|
|
60
|
-
ENV XAI_API_KEY=""
|
|
61
|
-
ENV CONTAINER=true
|
|
62
|
-
|
|
63
|
-
# Create exercises directory and set working directory
|
|
64
|
-
RUN mkdir -p /app/exercises
|
|
65
|
-
WORKDIR /app/exercises
|
|
66
|
-
|
|
67
|
-
# Default command
|
|
68
|
-
CMD ["node", "/app/benchmarks/dist/cli.js"]
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# Example configuration for Knowhow benchmarks
|
|
2
|
-
# This shows the available options - CLI arguments override these values
|
|
3
|
-
|
|
4
|
-
language: javascript
|
|
5
|
-
maxExercises: 10
|
|
6
|
-
model: gpt-4o-mini
|
|
7
|
-
provider: openai
|
|
8
|
-
|
|
9
|
-
limits:
|
|
10
|
-
maxTurns: 20
|
|
11
|
-
maxTime: 300 # seconds
|
|
12
|
-
maxCost: 1.0 # dollars
|
|
13
|
-
|
|
14
|
-
output:
|
|
15
|
-
file: results.json
|
|
16
|
-
format: json
|
|
17
|
-
|
|
18
|
-
# Future configuration options (not yet implemented)
|
|
19
|
-
# filters:
|
|
20
|
-
# difficulty: ["easy", "medium"]
|
|
21
|
-
# topics: ["arrays", "strings"]
|
|
22
|
-
#
|
|
23
|
-
# agents:
|
|
24
|
-
# - name: "developer"
|
|
25
|
-
# config: {}
|
|
26
|
-
# - name: "patcher"
|
|
27
|
-
# config: {}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
preset: 'ts-jest',
|
|
3
|
-
testEnvironment: 'node',
|
|
4
|
-
roots: ['<rootDir>/src'],
|
|
5
|
-
testMatch: ['**/__tests__/**/*.ts', '**/?(*.)+(spec|test).ts'],
|
|
6
|
-
transform: {
|
|
7
|
-
'^.+\\.ts$': 'ts-jest',
|
|
8
|
-
},
|
|
9
|
-
collectCoverageFrom: [
|
|
10
|
-
'src/**/*.ts',
|
|
11
|
-
'!src/**/*.d.ts',
|
|
12
|
-
],
|
|
13
|
-
};
|