@tyvm/knowhow 0.0.90 → 0.0.92
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 +30 -0
- package/bin/knowhow.js +1 -1
- package/package.json +8 -34
- package/src/agents/configurable/ConfigAgent.ts +2 -2
- 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/auth/browserLogin.ts +10 -13
- package/src/chat/modules/AgentModule.ts +0 -1
- package/src/chat/types.ts +1 -1
- 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/conversion.ts +24 -54
- package/src/index.ts +15 -20
- 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/services/EmbeddingsService.ts +70 -0
- package/src/services/KnowhowClient.ts +34 -34
- package/src/{plugins/downloader/downloader.ts → services/MediaProcessorService.ts} +109 -267
- package/src/services/S3.ts +19 -87
- package/src/services/index.ts +8 -8
- package/src/services/modules/index.ts +12 -3
- package/src/services/modules/types.ts +8 -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 +12 -4
- package/tests/unit/plugins/pluginLoading.test.ts +6 -6
- package/ts_build/package.json +8 -34
- 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/auth/browserLogin.js +7 -7
- package/ts_build/src/auth/browserLogin.js.map +1 -1
- package/ts_build/src/chat/modules/AgentModule.js.map +1 -1
- package/ts_build/src/chat/types.d.ts +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/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 +15 -14
- 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/services/EmbeddingsService.d.ts +14 -0
- package/ts_build/src/services/EmbeddingsService.js +33 -0
- package/ts_build/src/services/EmbeddingsService.js.map +1 -0
- 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.d.ts +0 -4
- package/ts_build/src/services/S3.js +14 -60
- package/ts_build/src/services/S3.js.map +1 -1
- package/ts_build/src/services/index.d.ts +6 -5
- package/ts_build/src/services/index.js +6 -6
- package/ts_build/src/services/index.js.map +1 -1
- package/ts_build/src/services/modules/index.js +12 -3
- package/ts_build/src/services/modules/index.js.map +1 -1
- package/ts_build/src/services/modules/types.d.ts +8 -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 +11 -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/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/src/services/GitHub.ts +0 -59
- 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,331 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SimplePathResolver = void 0;
|
|
4
|
-
const tree_sitter_1 = require("tree-sitter");
|
|
5
4
|
class SimplePathResolver {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
constructor(parser) {
|
|
9
|
-
this.parser = parser;
|
|
10
|
-
this.languagePack = parser.getLanguagePack();
|
|
11
|
-
}
|
|
12
|
-
executeQuery(tree, queryString) {
|
|
13
|
-
try {
|
|
14
|
-
const language = this.parser.parser.getLanguage();
|
|
15
|
-
if (!language)
|
|
16
|
-
return [];
|
|
17
|
-
const query = new tree_sitter_1.Query(language, queryString);
|
|
18
|
-
const matches = query.matches(tree.rootNode);
|
|
19
|
-
return matches.map((match) => {
|
|
20
|
-
const captures = {};
|
|
21
|
-
for (const capture of match.captures) {
|
|
22
|
-
captures[capture.name] = capture.node;
|
|
23
|
-
}
|
|
24
|
-
return {
|
|
25
|
-
node: match.captures[0]?.node,
|
|
26
|
-
captures,
|
|
27
|
-
};
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
catch (error) {
|
|
31
|
-
console.warn("Failed to execute tree-sitter query:", error);
|
|
32
|
-
console.warn("Query that failed:", JSON.stringify(queryString));
|
|
33
|
-
return [];
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
findNodesByQuery(tree, queryType) {
|
|
37
|
-
if (!this.languagePack || !this.languagePack.queries[queryType]) {
|
|
38
|
-
return [];
|
|
39
|
-
}
|
|
40
|
-
return this.executeQuery(tree, this.languagePack.queries[queryType]);
|
|
41
|
-
}
|
|
42
|
-
parseSimplePath(simplePath) {
|
|
43
|
-
const blockPattern = /^(\w+)\s*\(\s*["'`]([^"'`]*)["'`]\s*\)$/;
|
|
44
|
-
const blockMatch = simplePath.match(blockPattern);
|
|
45
|
-
if (blockMatch) {
|
|
46
|
-
return {
|
|
47
|
-
type: "block",
|
|
48
|
-
functionName: blockMatch[1],
|
|
49
|
-
argument: blockMatch[2],
|
|
50
|
-
parts: [blockMatch[1]],
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
const parameterlessBlockPattern = /^(\w+)\s*\(\s*\)$/;
|
|
54
|
-
const parameterlessMatch = simplePath.match(parameterlessBlockPattern);
|
|
55
|
-
if (parameterlessMatch) {
|
|
56
|
-
return {
|
|
57
|
-
type: "block",
|
|
58
|
-
functionName: parameterlessMatch[1],
|
|
59
|
-
parts: [parameterlessMatch[1]],
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
return {
|
|
63
|
-
type: "regular",
|
|
64
|
-
parts: simplePath.split("."),
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
findBlockMatches(tree, functionName, argument, simplePath) {
|
|
68
|
-
const matches = [];
|
|
69
|
-
const blockMatches = this.findNodesByQuery(tree, "blocks");
|
|
70
|
-
for (const match of blockMatches) {
|
|
71
|
-
const calleeNode = match.captures.callee;
|
|
72
|
-
const nameNode = match.captures.name;
|
|
73
|
-
if (!calleeNode || calleeNode.text !== functionName) {
|
|
74
|
-
continue;
|
|
75
|
-
}
|
|
76
|
-
if (!argument) {
|
|
77
|
-
matches.push({
|
|
78
|
-
node: match.node,
|
|
79
|
-
path: this.getNodePath(tree.rootNode, match.node),
|
|
80
|
-
simplePath,
|
|
81
|
-
description: `${functionName} block`,
|
|
82
|
-
});
|
|
83
|
-
continue;
|
|
84
|
-
}
|
|
85
|
-
if (nameNode) {
|
|
86
|
-
let nameText = nameNode.text;
|
|
87
|
-
if ((nameText.startsWith('"') && nameText.endsWith('"')) ||
|
|
88
|
-
(nameText.startsWith("'") && nameText.endsWith("'")) ||
|
|
89
|
-
(nameText.startsWith("`") && nameText.endsWith("`"))) {
|
|
90
|
-
nameText = nameText.slice(1, -1);
|
|
91
|
-
}
|
|
92
|
-
if (nameText === argument) {
|
|
93
|
-
matches.push({
|
|
94
|
-
node: match.node,
|
|
95
|
-
path: this.getNodePath(tree.rootNode, match.node),
|
|
96
|
-
simplePath,
|
|
97
|
-
description: `${functionName} block: ${argument}`,
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
return matches;
|
|
103
|
-
}
|
|
104
|
-
findBySimplePath(tree, simplePath) {
|
|
105
|
-
if (!tree.rootNode) {
|
|
106
|
-
return [];
|
|
107
|
-
}
|
|
108
|
-
const matches = [];
|
|
109
|
-
const pathInfo = this.parseSimplePath(simplePath);
|
|
110
|
-
const parts = pathInfo.parts;
|
|
111
|
-
if (pathInfo.type === "block") {
|
|
112
|
-
return this.findBlockMatches(tree, pathInfo.functionName, pathInfo.argument, simplePath);
|
|
113
|
-
}
|
|
114
|
-
if (parts.length === 1) {
|
|
115
|
-
const singleName = parts[0];
|
|
116
|
-
const classMatches = this.findNodesByQuery(tree, "classes");
|
|
117
|
-
for (const match of classMatches) {
|
|
118
|
-
const nameNode = match.captures.name;
|
|
119
|
-
if (nameNode && nameNode.text === singleName) {
|
|
120
|
-
matches.push({
|
|
121
|
-
node: match.node,
|
|
122
|
-
path: this.getNodePath(tree.rootNode, match.node),
|
|
123
|
-
simplePath,
|
|
124
|
-
description: `Class declaration: ${singleName}`,
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
const methodMatches = this.findNodesByQuery(tree, "methods");
|
|
129
|
-
for (const match of methodMatches) {
|
|
130
|
-
const nameNode = match.captures.name;
|
|
131
|
-
if (nameNode && nameNode.text === singleName) {
|
|
132
|
-
const className = this.findContainingClassName(tree, match.node);
|
|
133
|
-
const description = className
|
|
134
|
-
? `${singleName} method in class ${className}`
|
|
135
|
-
: `Method declaration: ${singleName}`;
|
|
136
|
-
matches.push({
|
|
137
|
-
node: match.node,
|
|
138
|
-
path: this.getNodePath(tree.rootNode, match.node),
|
|
139
|
-
simplePath,
|
|
140
|
-
description,
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
const propertyMatches = this.findNodesByQuery(tree, "properties");
|
|
145
|
-
for (const match of propertyMatches) {
|
|
146
|
-
const nameNode = match.captures.name;
|
|
147
|
-
if (nameNode && nameNode.text === singleName) {
|
|
148
|
-
matches.push({
|
|
149
|
-
node: match.node,
|
|
150
|
-
path: this.getNodePath(tree.rootNode, match.node),
|
|
151
|
-
simplePath,
|
|
152
|
-
description: `Property declaration: ${singleName}`,
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
const blockMatches = this.findNodesByQuery(tree, "blocks");
|
|
157
|
-
for (const match of blockMatches) {
|
|
158
|
-
const calleeNode = match.captures.callee;
|
|
159
|
-
const nameNode = match.captures.name;
|
|
160
|
-
if (calleeNode && calleeNode.text === singleName) {
|
|
161
|
-
matches.push({
|
|
162
|
-
node: match.node,
|
|
163
|
-
path: this.getNodePath(tree.rootNode, match.node),
|
|
164
|
-
simplePath,
|
|
165
|
-
description: `${singleName} block`,
|
|
166
|
-
});
|
|
167
|
-
continue;
|
|
168
|
-
}
|
|
169
|
-
if (nameNode && nameNode.text === singleName && calleeNode) {
|
|
170
|
-
matches.push({
|
|
171
|
-
node: match.node,
|
|
172
|
-
path: this.getNodePath(tree.rootNode, match.node),
|
|
173
|
-
simplePath,
|
|
174
|
-
description: `${calleeNode.text} block: ${singleName}`,
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
else if (parts.length === 2) {
|
|
180
|
-
const [className, memberName] = parts;
|
|
181
|
-
const classMatches = this.findNodesByQuery(tree, "classes");
|
|
182
|
-
for (const classMatch of classMatches) {
|
|
183
|
-
const classNameNode = classMatch.captures.name;
|
|
184
|
-
if (classNameNode && classNameNode.text === className) {
|
|
185
|
-
const methodMatches = this.findNodesByQuery(tree, "methods");
|
|
186
|
-
for (const methodMatch of methodMatches) {
|
|
187
|
-
const methodNameNode = methodMatch.captures.name;
|
|
188
|
-
if (methodNameNode && methodNameNode.text === memberName) {
|
|
189
|
-
if (this.isNodeWithinNode(methodMatch.node, classMatch.node)) {
|
|
190
|
-
matches.push({
|
|
191
|
-
node: methodMatch.node,
|
|
192
|
-
path: this.getNodePath(tree.rootNode, methodMatch.node),
|
|
193
|
-
simplePath,
|
|
194
|
-
description: `${memberName} method in class ${className}`,
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
const propertyMatches = this.findNodesByQuery(tree, "properties");
|
|
200
|
-
for (const propertyMatch of propertyMatches) {
|
|
201
|
-
const propertyNameNode = propertyMatch.captures.name;
|
|
202
|
-
if (propertyNameNode && propertyNameNode.text === memberName) {
|
|
203
|
-
if (this.isNodeWithinNode(propertyMatch.node, classMatch.node)) {
|
|
204
|
-
matches.push({
|
|
205
|
-
node: propertyMatch.node,
|
|
206
|
-
path: this.getNodePath(tree.rootNode, propertyMatch.node),
|
|
207
|
-
simplePath,
|
|
208
|
-
description: `Property ${memberName} in class ${className}`,
|
|
209
|
-
});
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
return matches;
|
|
217
|
-
}
|
|
218
|
-
findContainingClassName(tree, methodNode) {
|
|
219
|
-
if (!this.languagePack)
|
|
220
|
-
return null;
|
|
221
|
-
const classMatches = this.findNodesByQuery(tree, "classes");
|
|
222
|
-
for (const classMatch of classMatches) {
|
|
223
|
-
if (this.isNodeWithinNode(methodNode, classMatch.node)) {
|
|
224
|
-
const nameNode = classMatch.captures.name;
|
|
225
|
-
return nameNode ? nameNode.text : null;
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
return null;
|
|
229
|
-
}
|
|
230
|
-
getParser() {
|
|
231
|
-
return this.parser;
|
|
232
|
-
}
|
|
233
|
-
getNodePath(rootNode, targetNode) {
|
|
234
|
-
const path = [];
|
|
235
|
-
let current = targetNode;
|
|
236
|
-
while (current && current !== rootNode) {
|
|
237
|
-
if (current.parent) {
|
|
238
|
-
const siblings = current.parent.children;
|
|
239
|
-
const index = siblings.indexOf(current);
|
|
240
|
-
path.unshift(`${current.type}[${index}]`);
|
|
241
|
-
current = current.parent;
|
|
242
|
-
}
|
|
243
|
-
else {
|
|
244
|
-
break;
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
return path.join("/");
|
|
248
|
-
}
|
|
249
|
-
getAllSimplePaths(tree) {
|
|
250
|
-
const paths = [];
|
|
251
|
-
if (!this.languagePack || !tree.rootNode) {
|
|
252
|
-
return paths;
|
|
253
|
-
}
|
|
254
|
-
const classMatches = this.findNodesByQuery(tree, "classes");
|
|
255
|
-
for (const classMatch of classMatches) {
|
|
256
|
-
const classNameNode = classMatch.captures.name;
|
|
257
|
-
if (classNameNode && classNameNode.text) {
|
|
258
|
-
const className = classNameNode.text;
|
|
259
|
-
paths.push(className);
|
|
260
|
-
const methodMatches = this.findNodesByQuery(tree, "methods");
|
|
261
|
-
for (const methodMatch of methodMatches) {
|
|
262
|
-
const methodNameNode = methodMatch.captures.name;
|
|
263
|
-
if (methodNameNode &&
|
|
264
|
-
methodNameNode.text &&
|
|
265
|
-
this.isNodeWithinNode(methodMatch.node, classMatch.node)) {
|
|
266
|
-
const methodName = methodNameNode.text;
|
|
267
|
-
paths.push(`${className}.${methodName}`);
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
const propertyMatches = this.findNodesByQuery(tree, "properties");
|
|
271
|
-
for (const propertyMatch of propertyMatches) {
|
|
272
|
-
const propertyNameNode = propertyMatch.captures.name;
|
|
273
|
-
if (propertyNameNode &&
|
|
274
|
-
propertyNameNode.text &&
|
|
275
|
-
this.isNodeWithinNode(propertyMatch.node, classMatch.node)) {
|
|
276
|
-
const propertyName = propertyNameNode.text;
|
|
277
|
-
paths.push(`${className}.${propertyName}`);
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
const standaloneMethods = this.findNodesByQuery(tree, "methods");
|
|
283
|
-
for (const methodMatch of standaloneMethods) {
|
|
284
|
-
const methodNameNode = methodMatch.captures.name;
|
|
285
|
-
if (methodNameNode && methodNameNode.text) {
|
|
286
|
-
const methodName = methodNameNode.text;
|
|
287
|
-
let isWithinClass = false;
|
|
288
|
-
for (const classMatch of classMatches) {
|
|
289
|
-
if (this.isNodeWithinNode(methodMatch.node, classMatch.node)) {
|
|
290
|
-
isWithinClass = true;
|
|
291
|
-
break;
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
if (!isWithinClass) {
|
|
295
|
-
paths.push(methodName);
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
const blockMatches = this.findNodesByQuery(tree, "blocks");
|
|
300
|
-
for (const blockMatch of blockMatches) {
|
|
301
|
-
const calleeNode = blockMatch.captures.callee;
|
|
302
|
-
const nameNode = blockMatch.captures.name;
|
|
303
|
-
if (calleeNode && calleeNode.text) {
|
|
304
|
-
const callee = calleeNode.text;
|
|
305
|
-
if (nameNode && nameNode.text) {
|
|
306
|
-
let name = nameNode.text;
|
|
307
|
-
if ((name.startsWith('"') && name.endsWith('"')) ||
|
|
308
|
-
(name.startsWith("'") && name.endsWith("'"))) {
|
|
309
|
-
name = name.slice(1, -1);
|
|
310
|
-
}
|
|
311
|
-
paths.push(`${callee}("${name}")`);
|
|
312
|
-
}
|
|
313
|
-
else {
|
|
314
|
-
paths.push(`${callee}()`);
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
return paths;
|
|
319
|
-
}
|
|
320
|
-
isNodeWithinNode(childNode, parentNode) {
|
|
321
|
-
let current = childNode.parent;
|
|
322
|
-
while (current) {
|
|
323
|
-
if (current === parentNode) {
|
|
324
|
-
return true;
|
|
325
|
-
}
|
|
326
|
-
current = current.parent;
|
|
327
|
-
}
|
|
328
|
-
return false;
|
|
5
|
+
constructor(..._args) {
|
|
6
|
+
throw new Error("Tree-sitter SimplePathResolver has been moved to @tyvm/knowhow-module-ast. Install that package and add it to your knowhow.json modules.");
|
|
329
7
|
}
|
|
330
8
|
}
|
|
331
9
|
exports.SimplePathResolver = SimplePathResolver;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple-paths.js","sourceRoot":"","sources":["../../../../src/plugins/tree-sitter/simple-paths.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"simple-paths.js","sourceRoot":"","sources":["../../../../src/plugins/tree-sitter/simple-paths.ts"],"names":[],"mappings":";;;AAYA,MAAa,kBAAkB;IAC7B,YAAY,GAAG,KAAY;QACzB,MAAM,IAAI,KAAK,CACb,0IAA0I,CAC3I,CAAC;IACJ,CAAC;CACF;AAND,gDAMC"}
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.UrlPlugin = void 0;
|
|
7
4
|
const PluginBase_1 = require("./PluginBase");
|
|
8
|
-
const loadWebpage_1 = __importDefault(require("../agents/tools/loadWebpage"));
|
|
9
5
|
class UrlPlugin extends PluginBase_1.PluginBase {
|
|
10
6
|
static meta = {
|
|
11
7
|
key: "url",
|
|
@@ -18,7 +14,7 @@ class UrlPlugin extends PluginBase_1.PluginBase {
|
|
|
18
14
|
}
|
|
19
15
|
async embed(userPrompt) {
|
|
20
16
|
const urls = this.extractUrls(userPrompt);
|
|
21
|
-
const embeddings = await Promise.all(urls.map(this.fetchAndParseUrl));
|
|
17
|
+
const embeddings = await Promise.all(urls.map((url) => this.fetchAndParseUrl(url)));
|
|
22
18
|
return embeddings.filter((e) => e !== null);
|
|
23
19
|
}
|
|
24
20
|
extractUrls(userPrompt) {
|
|
@@ -28,8 +24,31 @@ class UrlPlugin extends PluginBase_1.PluginBase {
|
|
|
28
24
|
}
|
|
29
25
|
async fetchAndParseUrl(url) {
|
|
30
26
|
try {
|
|
31
|
-
const
|
|
32
|
-
|
|
27
|
+
const response = await fetch(url, {
|
|
28
|
+
headers: {
|
|
29
|
+
"User-Agent": "Mozilla/5.0 (compatible; KnowhowBot/1.0)",
|
|
30
|
+
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
if (!response.ok) {
|
|
34
|
+
this.log(`URL PLUGIN: Failed to fetch ${url}: ${response.status}`, "warn");
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
const contentType = response.headers.get("content-type") || "";
|
|
38
|
+
let text = "";
|
|
39
|
+
if (contentType.includes("text/html") || contentType.includes("text/plain")) {
|
|
40
|
+
const html = await response.text();
|
|
41
|
+
text = html
|
|
42
|
+
.replace(/<script[^>]*>[\s\S]*?<\/script>/gi, "")
|
|
43
|
+
.replace(/<style[^>]*>[\s\S]*?<\/style>/gi, "")
|
|
44
|
+
.replace(/<[^>]+>/g, " ")
|
|
45
|
+
.replace(/\s+/g, " ")
|
|
46
|
+
.trim();
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
text = await response.text();
|
|
50
|
+
}
|
|
51
|
+
this.log(`URL PLUGIN: Fetched content from ${url}: ${text.substring(0, 100)}`);
|
|
33
52
|
return {
|
|
34
53
|
id: url + "-url",
|
|
35
54
|
text,
|
|
@@ -49,7 +68,7 @@ class UrlPlugin extends PluginBase_1.PluginBase {
|
|
|
49
68
|
if (urls.length > 10) {
|
|
50
69
|
return "URL PLUGIN: Too many URLs detected. Skipping like unintentional bulk browse.";
|
|
51
70
|
}
|
|
52
|
-
const results = await Promise.all(urls.map(this.fetchAndParseUrl));
|
|
71
|
+
const results = await Promise.all(urls.map((url) => this.fetchAndParseUrl(url)));
|
|
53
72
|
const validResults = results.filter((r) => r !== null);
|
|
54
73
|
if (validResults.length === 0) {
|
|
55
74
|
return "URL PLUGIN: Failed to fetch or parse any URLs.";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url.js","sourceRoot":"","sources":["../../../src/plugins/url.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"url.js","sourceRoot":"","sources":["../../../src/plugins/url.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
type DownloaderFn = (remote: string, filePath: string, destinationPath: string) => Promise<void>;
|
|
2
|
+
type UploaderFn = (localPath: string, remote: string, remoteKey: string) => Promise<void>;
|
|
3
|
+
export interface EmbeddingsResolver {
|
|
4
|
+
download: DownloaderFn;
|
|
5
|
+
upload?: UploaderFn;
|
|
6
|
+
}
|
|
7
|
+
export declare class EmbeddingsService {
|
|
8
|
+
private resolvers;
|
|
9
|
+
registerResolver(remoteType: string, resolver: EmbeddingsResolver): void;
|
|
10
|
+
hasResolver(remoteType: string): boolean;
|
|
11
|
+
download(remoteType: string, remote: string, filePath: string, destinationPath: string): Promise<void>;
|
|
12
|
+
upload(remoteType: string, localPath: string, remote: string, remoteKey: string): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EmbeddingsService = void 0;
|
|
4
|
+
class EmbeddingsService {
|
|
5
|
+
resolvers = new Map();
|
|
6
|
+
registerResolver(remoteType, resolver) {
|
|
7
|
+
this.resolvers.set(remoteType, resolver);
|
|
8
|
+
}
|
|
9
|
+
hasResolver(remoteType) {
|
|
10
|
+
return this.resolvers.has(remoteType);
|
|
11
|
+
}
|
|
12
|
+
async download(remoteType, remote, filePath, destinationPath) {
|
|
13
|
+
const resolver = this.resolvers.get(remoteType);
|
|
14
|
+
if (!resolver) {
|
|
15
|
+
throw new Error(`No resolver registered for remoteType: "${remoteType}". ` +
|
|
16
|
+
`Install and configure the appropriate knowhow module (e.g. @tyvm/knowhow-module-github).`);
|
|
17
|
+
}
|
|
18
|
+
await resolver.download(remote, filePath, destinationPath);
|
|
19
|
+
}
|
|
20
|
+
async upload(remoteType, localPath, remote, remoteKey) {
|
|
21
|
+
const resolver = this.resolvers.get(remoteType);
|
|
22
|
+
if (!resolver) {
|
|
23
|
+
throw new Error(`No resolver registered for remoteType: "${remoteType}". ` +
|
|
24
|
+
`Install and configure the appropriate knowhow module (e.g. @tyvm/knowhow-module-s3).`);
|
|
25
|
+
}
|
|
26
|
+
if (!resolver.upload) {
|
|
27
|
+
throw new Error(`Resolver for remoteType: "${remoteType}" does not support uploads.`);
|
|
28
|
+
}
|
|
29
|
+
await resolver.upload(localPath, remote, remoteKey);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.EmbeddingsService = EmbeddingsService;
|
|
33
|
+
//# sourceMappingURL=EmbeddingsService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmbeddingsService.js","sourceRoot":"","sources":["../../../src/services/EmbeddingsService.ts"],"names":[],"mappings":";;;AAsBA,MAAa,iBAAiB;IACpB,SAAS,GAAG,IAAI,GAAG,EAA8B,CAAC;IAE1D,gBAAgB,CAAC,UAAkB,EAAE,QAA4B;QAC/D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,WAAW,CAAC,UAAkB;QAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,UAAkB,EAClB,MAAc,EACd,QAAgB,EAChB,eAAuB;QAEvB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,IAAI,KAAK,CACb,2CAA2C,UAAU,KAAK;gBACxD,0FAA0F,CAC7F,CAAC;SACH;QACD,MAAM,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,MAAM,CACV,UAAkB,EAClB,SAAiB,EACjB,MAAc,EACd,SAAiB;QAEjB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,IAAI,KAAK,CACb,2CAA2C,UAAU,KAAK;gBACxD,sFAAsF,CACzF,CAAC;SACH;QACD,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YACpB,MAAM,IAAI,KAAK,CACb,6BAA6B,UAAU,6BAA6B,CACrE,CAAC;SACH;QACD,MAAM,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACtD,CAAC;CACF;AA/CD,8CA+CC"}
|
|
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.GitHubService = void 0;
|
|
7
7
|
const rest_1 = require("@octokit/rest");
|
|
8
|
-
const
|
|
8
|
+
const http_1 = __importDefault(require("../utils/http"));
|
|
9
9
|
class GitHubService {
|
|
10
10
|
octokit;
|
|
11
11
|
constructor() {
|
|
@@ -23,7 +23,7 @@ class GitHubService {
|
|
|
23
23
|
return sha;
|
|
24
24
|
}
|
|
25
25
|
async getLfsContent(downloadUrl) {
|
|
26
|
-
const response = await
|
|
26
|
+
const response = await http_1.default.get(downloadUrl);
|
|
27
27
|
return JSON.stringify(response.data);
|
|
28
28
|
}
|
|
29
29
|
async getFileContent(owner, repo, path) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GitHub.js","sourceRoot":"","sources":["../../../src/services/GitHub.ts"],"names":[],"mappings":";;;;;;AAAA,wCAAwC;AACxC,
|
|
1
|
+
{"version":3,"file":"GitHub.js","sourceRoot":"","sources":["../../../src/services/GitHub.ts"],"names":[],"mappings":";;;;;;AAAA,wCAAwC;AACxC,yDAAiC;AAEjC,MAAa,aAAa;IACxB,OAAO,CAAU;IAEjB;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,cAAO,CAAC;YACzB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;SAC/B,CAAC,CAAC;IACL,CAAC;IAEO,SAAS,CAAC,OAAe;QAC/B,OAAO,OAAO,CAAC,UAAU,CAAC,4CAA4C,CAAC,CAAC;IAC1E,CAAC;IAEO,oBAAoB,CAAC,OAAe;QAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QACvE,MAAM,MAAM,GAAG,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,WAAmB;QAC7C,MAAM,QAAQ,GAAG,MAAM,cAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,KAAa,EACb,IAAY,EACZ,IAAY;QAEZ,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;YACnD,KAAK;YACL,IAAI;YACJ,IAAI;SACL,CAAC,CAAC;QACH,IAAI,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,EAAE;YACxB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;SAClE;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAC5B,CAAC,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC;YAC7C,CAAC,CAAC,OAAO,CAAC;IACd,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,UAAkB,EAClB,QAAgB,EAChB,eAAuB;QAEvB,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACjE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACzB,EAAE,CAAC,aAAa,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;CACF;AAtDD,sCAsDC"}
|
|
@@ -65,12 +65,12 @@ export declare const KNOWHOW_API_URL: string;
|
|
|
65
65
|
export declare class KnowhowSimpleClient {
|
|
66
66
|
private baseUrl;
|
|
67
67
|
private jwt;
|
|
68
|
-
headers:
|
|
68
|
+
headers: Record<string, string>;
|
|
69
69
|
jwtValidated: boolean;
|
|
70
70
|
constructor(baseUrl?: string, jwt?: string);
|
|
71
71
|
setJwt(jwt: string): void;
|
|
72
72
|
checkJwt(): Promise<void>;
|
|
73
|
-
me(): Promise<import("
|
|
73
|
+
me(): Promise<import("../utils/http").HttpResponse<any>>;
|
|
74
74
|
getPresignedUploadUrl(source: Config["embedSources"][0]): Promise<any>;
|
|
75
75
|
getPresignedDownloadUrl(source: Config["embedSources"][0]): Promise<any>;
|
|
76
76
|
updateEmbeddingMetadata(id: string, data: {
|
|
@@ -78,42 +78,42 @@ export declare class KnowhowSimpleClient {
|
|
|
78
78
|
outputPath?: string;
|
|
79
79
|
chunkSize?: number;
|
|
80
80
|
remoteType?: string;
|
|
81
|
-
}): Promise<import("
|
|
82
|
-
createChatCompletion(options: CompletionOptions): Promise<import("
|
|
83
|
-
createEmbedding(options: EmbeddingOptions): Promise<import("
|
|
84
|
-
getModels(): Promise<import("
|
|
85
|
-
createAudioTranscription(options: AudioTranscriptionOptions): Promise<import("
|
|
86
|
-
createAudioGeneration(options: AudioGenerationOptions): Promise<import("
|
|
87
|
-
createImageGeneration(options: ImageGenerationOptions): Promise<import("
|
|
88
|
-
createVideoGeneration(options: VideoGenerationOptions): Promise<import("
|
|
89
|
-
getVideoStatus(options: VideoStatusOptions): Promise<import("
|
|
90
|
-
downloadVideo(options: FileDownloadOptions): Promise<import("
|
|
91
|
-
uploadFile(options: FileUploadOptions): Promise<import("
|
|
92
|
-
downloadFile(options: FileDownloadOptions): Promise<import("
|
|
93
|
-
createChatTask(request: CreateMessageTaskRequest): Promise<import("
|
|
94
|
-
updateChatTask(taskId: string, updates: UpdateOrgTaskRequest): Promise<import("
|
|
95
|
-
getTaskDetails(taskId: string): Promise<import("
|
|
96
|
-
getPendingMessages(taskId: string): Promise<import("
|
|
97
|
-
markMessagesAsProcessed(taskId: string, messageIds: string[]): Promise<import("
|
|
98
|
-
sendMessageToAgent(taskId: string, message: string, role?: "user" | "system"): Promise<import("
|
|
99
|
-
pauseAgent(taskId: string): Promise<import("
|
|
100
|
-
resumeAgent(taskId: string): Promise<import("
|
|
81
|
+
}): Promise<import("../utils/http").HttpResponse<any>>;
|
|
82
|
+
createChatCompletion(options: CompletionOptions): Promise<import("../utils/http").HttpResponse<CompletionResponse>>;
|
|
83
|
+
createEmbedding(options: EmbeddingOptions): Promise<import("../utils/http").HttpResponse<EmbeddingResponse>>;
|
|
84
|
+
getModels(): Promise<import("../utils/http").HttpResponse<any>>;
|
|
85
|
+
createAudioTranscription(options: AudioTranscriptionOptions): Promise<import("../utils/http").HttpResponse<AudioTranscriptionResponse>>;
|
|
86
|
+
createAudioGeneration(options: AudioGenerationOptions): Promise<import("../utils/http").HttpResponse<AudioGenerationResponse>>;
|
|
87
|
+
createImageGeneration(options: ImageGenerationOptions): Promise<import("../utils/http").HttpResponse<ImageGenerationResponse>>;
|
|
88
|
+
createVideoGeneration(options: VideoGenerationOptions): Promise<import("../utils/http").HttpResponse<VideoGenerationResponse>>;
|
|
89
|
+
getVideoStatus(options: VideoStatusOptions): Promise<import("../utils/http").HttpResponse<VideoStatusResponse>>;
|
|
90
|
+
downloadVideo(options: FileDownloadOptions): Promise<import("../utils/http").HttpResponse<ArrayBuffer>>;
|
|
91
|
+
uploadFile(options: FileUploadOptions): Promise<import("../utils/http").HttpResponse<FileUploadResponse>>;
|
|
92
|
+
downloadFile(options: FileDownloadOptions): Promise<import("../utils/http").HttpResponse<ArrayBuffer>>;
|
|
93
|
+
createChatTask(request: CreateMessageTaskRequest): Promise<import("../utils/http").HttpResponse<CreateMessageTaskResponse>>;
|
|
94
|
+
updateChatTask(taskId: string, updates: UpdateOrgTaskRequest): Promise<import("../utils/http").HttpResponse<UpdateOrgTaskResponse>>;
|
|
95
|
+
getTaskDetails(taskId: string): Promise<import("../utils/http").HttpResponse<TaskDetailsResponse>>;
|
|
96
|
+
getPendingMessages(taskId: string): Promise<import("../utils/http").HttpResponse<PendingMessage[]>>;
|
|
97
|
+
markMessagesAsProcessed(taskId: string, messageIds: string[]): Promise<import("../utils/http").HttpResponse<MarkProcessedResponse>>;
|
|
98
|
+
sendMessageToAgent(taskId: string, message: string, role?: "user" | "system"): Promise<import("../utils/http").HttpResponse<SendMessageResponse>>;
|
|
99
|
+
pauseAgent(taskId: string): Promise<import("../utils/http").HttpResponse<StatusResponse>>;
|
|
100
|
+
resumeAgent(taskId: string): Promise<import("../utils/http").HttpResponse<StatusResponse>>;
|
|
101
101
|
getTaskThreads(taskId: string): Promise<any[][]>;
|
|
102
|
-
killAgent(taskId: string): Promise<import("
|
|
103
|
-
listOrgFiles(): Promise<import("
|
|
102
|
+
killAgent(taskId: string): Promise<import("../utils/http").HttpResponse<StatusResponse>>;
|
|
103
|
+
listOrgFiles(): Promise<import("../utils/http").HttpResponse<{
|
|
104
104
|
id: string;
|
|
105
105
|
fileName: string;
|
|
106
106
|
folderPath: string;
|
|
107
107
|
name: string;
|
|
108
|
-
}[]
|
|
109
|
-
createOrgFile(fileName: string, folderPath: string): Promise<import("
|
|
108
|
+
}[]>>;
|
|
109
|
+
createOrgFile(fileName: string, folderPath: string): Promise<import("../utils/http").HttpResponse<{
|
|
110
110
|
id: string;
|
|
111
111
|
fileName: string;
|
|
112
112
|
folderPath: string;
|
|
113
113
|
name: string;
|
|
114
|
-
}
|
|
115
|
-
getOrgFileText(fileId: string): Promise<import("
|
|
116
|
-
updateOrgFileText(fileId: string, text: string): Promise<import("
|
|
114
|
+
}>>;
|
|
115
|
+
getOrgFileText(fileId: string): Promise<import("../utils/http").HttpResponse<string>>;
|
|
116
|
+
updateOrgFileText(fileId: string, text: string): Promise<import("../utils/http").HttpResponse<any>>;
|
|
117
117
|
findOrgFileByPath(remotePath: string): Promise<{
|
|
118
118
|
id: string;
|
|
119
119
|
fileName: string;
|