@tyvm/knowhow 0.0.145 → 0.0.147
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/autodoc/cli-reference.md +36 -7
- package/bin/knowhow.js +8 -6
- package/package.json +1 -1
- package/src/agents/base/base.ts +24 -0
- package/src/agents/historyRollback.ts +36 -0
- package/src/agents/tools/startAgentTask.ts +41 -9
- package/src/auth/browserLogin.ts +9 -3
- package/src/auth/keyAuth.ts +115 -0
- package/src/auth/keyManager.ts +166 -0
- package/src/chat/CliChatService.ts +16 -0
- package/src/chat/modules/AgentModule.ts +144 -56
- package/src/chat/modules/AskModule.ts +2 -0
- package/src/chat/modules/BaseChatModule.ts +0 -1
- package/src/chat/modules/CustomCommandsModule.ts +2 -0
- package/src/chat/modules/InternalChatModule.ts +2 -0
- package/src/chat/modules/RemoteSyncModule.ts +4 -0
- package/src/chat/modules/RendererModule.ts +2 -0
- package/src/chat/modules/SearchModule.ts +2 -0
- package/src/chat/modules/SessionsModule.ts +110 -39
- package/src/chat/modules/SetupModule.ts +2 -0
- package/src/chat/modules/ShellCommandModule.ts +2 -0
- package/src/chat/modules/SystemModule.ts +2 -0
- package/src/chat/types.ts +5 -2
- package/src/cli.ts +1 -1
- package/src/clients/anthropic.ts +24 -0
- package/src/clients/fireworks.ts +3 -0
- package/src/clients/gemini.ts +8 -0
- package/src/clients/index.ts +2 -0
- package/src/clients/openai.ts +7 -4
- package/src/clients/types.ts +30 -7
- package/src/clients/xai.ts +23 -4
- package/src/commands/agent.ts +11 -39
- package/src/commands/agents.ts +403 -53
- package/src/commands/misc.ts +3 -2
- package/src/commands/services.ts +49 -3
- package/src/login.ts +89 -28
- package/src/plugins/plugins.ts +16 -0
- package/src/processors/TokenCompressor.ts +40 -8
- package/src/processors/ToolResponseCache.ts +17 -8
- package/src/processors/tools/boundedToolResponse.ts +49 -0
- package/src/processors/tools/grepToolResponse.ts +164 -38
- package/src/processors/tools/index.ts +2 -0
- package/src/processors/tools/jqToolResponse.ts +40 -10
- package/src/processors/tools/listStoredToolResponses.ts +51 -10
- package/src/processors/tools/tailToolResponse.ts +85 -17
- package/src/services/AgentService.ts +2 -0
- package/src/services/AgentSyncFs.ts +65 -0
- package/src/services/AgentSyncKnowhowWeb.ts +22 -4
- package/src/services/BehaviorsService.ts +2 -0
- package/src/services/DockerService.ts +2 -0
- package/src/services/EmbeddingService.ts +2 -0
- package/src/services/EmbeddingsService.ts +3 -0
- package/src/services/KnowhowClient.ts +68 -7
- package/src/services/LazyToolsService.ts +16 -0
- package/src/services/Mcp.ts +11 -2
- package/src/services/McpServer.ts +2 -0
- package/src/services/MessageProcessor.ts +2 -0
- package/src/services/MinimalToolsService.ts +2 -0
- package/src/services/RuntimeReloadService.ts +31 -0
- package/src/services/SessionManager.ts +5 -0
- package/src/services/SkillsService.ts +2 -0
- package/src/services/SyncedAgentWatcher.ts +2 -0
- package/src/services/SyncerService.ts +23 -8
- package/src/services/TaskRegistry.ts +2 -0
- package/src/services/Tools.ts +13 -0
- package/src/services/TracingService.ts +116 -0
- package/src/services/index.ts +10 -0
- package/src/services/modules/index.ts +49 -3
- package/src/services/modules/types.ts +8 -0
- package/src/types.ts +2 -0
- package/src/util/Trace.ts +236 -0
- package/src/utils/http.ts +18 -2
- package/tests/clients/fireworks.test.ts +65 -0
- package/tests/clients/reasoningEffort.test.ts +79 -0
- package/tests/compressor/toolResponseCache.test.ts +2 -1
- package/tests/manual/clients/completions.test.ts +27 -10
- package/tests/processors/TokenCompressor.test.ts +17 -3
- package/tests/processors/tools/boundedRetrievalTools.test.ts +68 -0
- package/tests/processors/tools/grepToolResponse.test.ts +88 -1
- package/tests/unit/agents/historyRollback.test.ts +53 -0
- package/tests/unit/auth/keyAuth.test.ts +102 -0
- package/tests/unit/auth/keyManager.test.ts +67 -0
- package/tests/unit/chat/historyCommandArgs.test.ts +37 -0
- package/tests/unit/commands/agents.test.ts +68 -0
- package/tests/unit/login.test.ts +119 -0
- package/tests/unit/plugins/pluginLoading.test.ts +31 -0
- package/tests/unit/services/AgentSyncKnowhowWeb.test.ts +38 -0
- package/tests/unit/services/LazyToolsService.test.ts +29 -0
- package/tests/unit/services/RuntimeReloadService.test.ts +29 -0
- package/tests/unit/services/SessionManager.test.ts +43 -0
- package/tests/unit/services/SyncerService.test.ts +45 -0
- package/tests/unit/util/Trace.test.ts +119 -0
- package/tests/unit/utils/http.test.ts +43 -0
- package/ts_build/package.json +1 -1
- package/ts_build/src/agents/base/base.d.ts +1 -0
- package/ts_build/src/agents/base/base.js +31 -2
- package/ts_build/src/agents/base/base.js.map +1 -1
- package/ts_build/src/agents/historyRollback.d.ts +2 -0
- package/ts_build/src/agents/historyRollback.js +22 -0
- package/ts_build/src/agents/historyRollback.js.map +1 -0
- package/ts_build/src/agents/tools/startAgentTask.d.ts +2 -0
- package/ts_build/src/agents/tools/startAgentTask.js +36 -9
- package/ts_build/src/agents/tools/startAgentTask.js.map +1 -1
- package/ts_build/src/auth/browserLogin.d.ts +1 -0
- package/ts_build/src/auth/browserLogin.js +5 -2
- package/ts_build/src/auth/browserLogin.js.map +1 -1
- package/ts_build/src/auth/keyAuth.d.ts +5 -0
- package/ts_build/src/auth/keyAuth.js +79 -0
- package/ts_build/src/auth/keyAuth.js.map +1 -0
- package/ts_build/src/auth/keyManager.d.ts +14 -0
- package/ts_build/src/auth/keyManager.js +145 -0
- package/ts_build/src/auth/keyManager.js.map +1 -0
- package/ts_build/src/chat/CliChatService.js +15 -0
- package/ts_build/src/chat/CliChatService.js.map +1 -1
- package/ts_build/src/chat/modules/AgentModule.d.ts +13 -1
- package/ts_build/src/chat/modules/AgentModule.js +96 -43
- package/ts_build/src/chat/modules/AgentModule.js.map +1 -1
- package/ts_build/src/chat/modules/AskModule.js +12 -2
- package/ts_build/src/chat/modules/AskModule.js.map +1 -1
- package/ts_build/src/chat/modules/BaseChatModule.js.map +1 -1
- package/ts_build/src/chat/modules/CustomCommandsModule.js +12 -2
- package/ts_build/src/chat/modules/CustomCommandsModule.js.map +1 -1
- package/ts_build/src/chat/modules/InternalChatModule.js +16 -2
- package/ts_build/src/chat/modules/InternalChatModule.js.map +1 -1
- package/ts_build/src/chat/modules/RemoteSyncModule.js +19 -2
- package/ts_build/src/chat/modules/RemoteSyncModule.js.map +1 -1
- package/ts_build/src/chat/modules/RendererModule.js +17 -2
- package/ts_build/src/chat/modules/RendererModule.js.map +1 -1
- package/ts_build/src/chat/modules/SearchModule.js +12 -2
- package/ts_build/src/chat/modules/SearchModule.js.map +1 -1
- package/ts_build/src/chat/modules/SessionsModule.d.ts +6 -0
- package/ts_build/src/chat/modules/SessionsModule.js +114 -24
- package/ts_build/src/chat/modules/SessionsModule.js.map +1 -1
- package/ts_build/src/chat/modules/SetupModule.js +17 -2
- package/ts_build/src/chat/modules/SetupModule.js.map +1 -1
- package/ts_build/src/chat/modules/ShellCommandModule.js +12 -2
- package/ts_build/src/chat/modules/ShellCommandModule.js.map +1 -1
- package/ts_build/src/chat/modules/SystemModule.js +12 -2
- package/ts_build/src/chat/modules/SystemModule.js.map +1 -1
- package/ts_build/src/chat/types.d.ts +5 -2
- package/ts_build/src/cli.js +1 -1
- package/ts_build/src/cli.js.map +1 -1
- package/ts_build/src/clients/anthropic.d.ts +1 -0
- package/ts_build/src/clients/anthropic.js +12 -0
- package/ts_build/src/clients/anthropic.js.map +1 -1
- package/ts_build/src/clients/fireworks.js +1 -0
- package/ts_build/src/clients/fireworks.js.map +1 -1
- package/ts_build/src/clients/gemini.js +8 -0
- package/ts_build/src/clients/gemini.js.map +1 -1
- package/ts_build/src/clients/index.js +19 -4
- package/ts_build/src/clients/index.js.map +1 -1
- package/ts_build/src/clients/openai.js +4 -2
- package/ts_build/src/clients/openai.js.map +1 -1
- package/ts_build/src/clients/types.d.ts +4 -1
- package/ts_build/src/clients/types.js +14 -0
- package/ts_build/src/clients/types.js.map +1 -1
- package/ts_build/src/clients/xai.d.ts +1 -0
- package/ts_build/src/clients/xai.js +23 -4
- package/ts_build/src/clients/xai.js.map +1 -1
- package/ts_build/src/commands/agent.js +7 -22
- package/ts_build/src/commands/agent.js.map +1 -1
- package/ts_build/src/commands/agents.d.ts +1 -1
- package/ts_build/src/commands/agents.js +174 -16
- package/ts_build/src/commands/agents.js.map +1 -1
- package/ts_build/src/commands/misc.js +3 -2
- package/ts_build/src/commands/misc.js.map +1 -1
- package/ts_build/src/commands/services.d.ts +2 -0
- package/ts_build/src/commands/services.js +45 -3
- package/ts_build/src/commands/services.js.map +1 -1
- package/ts_build/src/login.d.ts +1 -1
- package/ts_build/src/login.js +53 -15
- package/ts_build/src/login.js.map +1 -1
- package/ts_build/src/plugins/plugins.d.ts +1 -0
- package/ts_build/src/plugins/plugins.js +14 -0
- package/ts_build/src/plugins/plugins.js.map +1 -1
- package/ts_build/src/processors/TokenCompressor.js +15 -6
- package/ts_build/src/processors/TokenCompressor.js.map +1 -1
- package/ts_build/src/processors/ToolResponseCache.d.ts +3 -3
- package/ts_build/src/processors/ToolResponseCache.js +8 -8
- package/ts_build/src/processors/ToolResponseCache.js.map +1 -1
- package/ts_build/src/processors/tools/boundedToolResponse.d.ts +7 -0
- package/ts_build/src/processors/tools/boundedToolResponse.js +27 -0
- package/ts_build/src/processors/tools/boundedToolResponse.js.map +1 -0
- package/ts_build/src/processors/tools/grepToolResponse.d.ts +4 -0
- package/ts_build/src/processors/tools/grepToolResponse.js +101 -25
- package/ts_build/src/processors/tools/grepToolResponse.js.map +1 -1
- package/ts_build/src/processors/tools/index.d.ts +2 -2
- package/ts_build/src/processors/tools/index.js.map +1 -1
- package/ts_build/src/processors/tools/jqToolResponse.d.ts +5 -1
- package/ts_build/src/processors/tools/jqToolResponse.js +26 -9
- package/ts_build/src/processors/tools/jqToolResponse.js.map +1 -1
- package/ts_build/src/processors/tools/listStoredToolResponses.d.ts +7 -1
- package/ts_build/src/processors/tools/listStoredToolResponses.js +39 -9
- package/ts_build/src/processors/tools/listStoredToolResponses.js.map +1 -1
- package/ts_build/src/processors/tools/tailToolResponse.d.ts +5 -0
- package/ts_build/src/processors/tools/tailToolResponse.js +56 -13
- package/ts_build/src/processors/tools/tailToolResponse.js.map +1 -1
- package/ts_build/src/services/AgentService.js +18 -2
- package/ts_build/src/services/AgentService.js.map +1 -1
- package/ts_build/src/services/AgentSyncFs.d.ts +3 -0
- package/ts_build/src/services/AgentSyncFs.js +62 -15
- package/ts_build/src/services/AgentSyncFs.js.map +1 -1
- package/ts_build/src/services/AgentSyncKnowhowWeb.d.ts +2 -0
- package/ts_build/src/services/AgentSyncKnowhowWeb.js +28 -6
- package/ts_build/src/services/AgentSyncKnowhowWeb.js.map +1 -1
- package/ts_build/src/services/BehaviorsService.js +12 -2
- package/ts_build/src/services/BehaviorsService.js.map +1 -1
- package/ts_build/src/services/DockerService.js +20 -8
- package/ts_build/src/services/DockerService.js.map +1 -1
- package/ts_build/src/services/EmbeddingService.js +16 -2
- package/ts_build/src/services/EmbeddingService.js.map +1 -1
- package/ts_build/src/services/EmbeddingsService.js +12 -2
- package/ts_build/src/services/EmbeddingsService.js.map +1 -1
- package/ts_build/src/services/KnowhowClient.d.ts +7 -2
- package/ts_build/src/services/KnowhowClient.js +108 -10
- package/ts_build/src/services/KnowhowClient.js.map +1 -1
- package/ts_build/src/services/LazyToolsService.d.ts +2 -0
- package/ts_build/src/services/LazyToolsService.js +26 -2
- package/ts_build/src/services/LazyToolsService.js.map +1 -1
- package/ts_build/src/services/Mcp.js +20 -4
- package/ts_build/src/services/Mcp.js.map +1 -1
- package/ts_build/src/services/McpServer.js +17 -2
- package/ts_build/src/services/McpServer.js.map +1 -1
- package/ts_build/src/services/MessageProcessor.js +16 -2
- package/ts_build/src/services/MessageProcessor.js.map +1 -1
- package/ts_build/src/services/MinimalToolsService.js +16 -2
- package/ts_build/src/services/MinimalToolsService.js.map +1 -1
- package/ts_build/src/services/RuntimeReloadService.d.ts +12 -0
- package/ts_build/src/services/RuntimeReloadService.js +26 -0
- package/ts_build/src/services/RuntimeReloadService.js.map +1 -0
- package/ts_build/src/services/SessionManager.js +19 -2
- package/ts_build/src/services/SessionManager.js.map +1 -1
- package/ts_build/src/services/SkillsService.js +16 -2
- package/ts_build/src/services/SkillsService.js.map +1 -1
- package/ts_build/src/services/SyncedAgentWatcher.js +16 -2
- package/ts_build/src/services/SyncedAgentWatcher.js.map +1 -1
- package/ts_build/src/services/SyncerService.d.ts +1 -0
- package/ts_build/src/services/SyncerService.js +27 -5
- package/ts_build/src/services/SyncerService.js.map +1 -1
- package/ts_build/src/services/TaskRegistry.js +12 -2
- package/ts_build/src/services/TaskRegistry.js.map +1 -1
- package/ts_build/src/services/Tools.d.ts +1 -0
- package/ts_build/src/services/Tools.js +21 -2
- package/ts_build/src/services/Tools.js.map +1 -1
- package/ts_build/src/services/TracingService.d.ts +16 -0
- package/ts_build/src/services/TracingService.js +35 -0
- package/ts_build/src/services/TracingService.js.map +1 -0
- package/ts_build/src/services/index.d.ts +8 -0
- package/ts_build/src/services/index.js +9 -1
- package/ts_build/src/services/index.js.map +1 -1
- package/ts_build/src/services/modules/index.d.ts +6 -0
- package/ts_build/src/services/modules/index.js +29 -3
- package/ts_build/src/services/modules/index.js.map +1 -1
- package/ts_build/src/services/modules/types.d.ts +3 -0
- package/ts_build/src/types.d.ts +1 -0
- package/ts_build/src/types.js.map +1 -1
- package/ts_build/src/util/Trace.d.ts +11 -0
- package/ts_build/src/util/Trace.js +107 -0
- package/ts_build/src/util/Trace.js.map +1 -0
- package/ts_build/src/utils/http.d.ts +6 -2
- package/ts_build/src/utils/http.js +8 -2
- package/ts_build/src/utils/http.js.map +1 -1
- package/ts_build/tests/clients/fireworks.test.d.ts +1 -0
- package/ts_build/tests/clients/fireworks.test.js +65 -0
- package/ts_build/tests/clients/fireworks.test.js.map +1 -0
- package/ts_build/tests/clients/reasoningEffort.test.d.ts +1 -0
- package/ts_build/tests/clients/reasoningEffort.test.js +68 -0
- package/ts_build/tests/clients/reasoningEffort.test.js.map +1 -0
- package/ts_build/tests/compressor/toolResponseCache.test.js +1 -1
- package/ts_build/tests/compressor/toolResponseCache.test.js.map +1 -1
- package/ts_build/tests/manual/clients/completions.test.js +19 -6
- package/ts_build/tests/manual/clients/completions.test.js.map +1 -1
- package/ts_build/tests/processors/TokenCompressor.test.js +11 -2
- package/ts_build/tests/processors/TokenCompressor.test.js.map +1 -1
- package/ts_build/tests/processors/tools/boundedRetrievalTools.test.d.ts +1 -0
- package/ts_build/tests/processors/tools/boundedRetrievalTools.test.js +57 -0
- package/ts_build/tests/processors/tools/boundedRetrievalTools.test.js.map +1 -0
- package/ts_build/tests/processors/tools/grepToolResponse.test.js +37 -0
- package/ts_build/tests/processors/tools/grepToolResponse.test.js.map +1 -1
- package/ts_build/tests/unit/agents/historyRollback.test.d.ts +1 -0
- package/ts_build/tests/unit/agents/historyRollback.test.js +42 -0
- package/ts_build/tests/unit/agents/historyRollback.test.js.map +1 -0
- package/ts_build/tests/unit/auth/keyAuth.test.d.ts +1 -0
- package/ts_build/tests/unit/auth/keyAuth.test.js +77 -0
- package/ts_build/tests/unit/auth/keyAuth.test.js.map +1 -0
- package/ts_build/tests/unit/auth/keyManager.test.d.ts +1 -0
- package/ts_build/tests/unit/auth/keyManager.test.js +52 -0
- package/ts_build/tests/unit/auth/keyManager.test.js.map +1 -0
- package/ts_build/tests/unit/chat/historyCommandArgs.test.d.ts +1 -0
- package/ts_build/tests/unit/chat/historyCommandArgs.test.js +29 -0
- package/ts_build/tests/unit/chat/historyCommandArgs.test.js.map +1 -0
- package/ts_build/tests/unit/commands/agents.test.d.ts +1 -0
- package/ts_build/tests/unit/commands/agents.test.js +91 -0
- package/ts_build/tests/unit/commands/agents.test.js.map +1 -0
- package/ts_build/tests/unit/login.test.d.ts +1 -0
- package/ts_build/tests/unit/login.test.js +97 -0
- package/ts_build/tests/unit/login.test.js.map +1 -0
- package/ts_build/tests/unit/plugins/pluginLoading.test.js +59 -0
- package/ts_build/tests/unit/plugins/pluginLoading.test.js.map +1 -1
- package/ts_build/tests/unit/services/AgentSyncKnowhowWeb.test.d.ts +1 -0
- package/ts_build/tests/unit/services/AgentSyncKnowhowWeb.test.js +32 -0
- package/ts_build/tests/unit/services/AgentSyncKnowhowWeb.test.js.map +1 -0
- package/ts_build/tests/unit/services/LazyToolsService.test.d.ts +1 -0
- package/ts_build/tests/unit/services/LazyToolsService.test.js +27 -0
- package/ts_build/tests/unit/services/LazyToolsService.test.js.map +1 -0
- package/ts_build/tests/unit/services/RuntimeReloadService.test.d.ts +1 -0
- package/ts_build/tests/unit/services/RuntimeReloadService.test.js +26 -0
- package/ts_build/tests/unit/services/RuntimeReloadService.test.js.map +1 -0
- package/ts_build/tests/unit/services/SessionManager.test.d.ts +1 -0
- package/ts_build/tests/unit/services/SessionManager.test.js +72 -0
- package/ts_build/tests/unit/services/SessionManager.test.js.map +1 -0
- package/ts_build/tests/unit/services/SyncerService.test.d.ts +1 -0
- package/ts_build/tests/unit/services/SyncerService.test.js +40 -0
- package/ts_build/tests/unit/services/SyncerService.test.js.map +1 -0
- package/ts_build/tests/unit/util/Trace.test.d.ts +1 -0
- package/ts_build/tests/unit/util/Trace.test.js +107 -0
- package/ts_build/tests/unit/util/Trace.test.js.map +1 -0
- package/ts_build/tests/unit/utils/http.test.d.ts +1 -0
- package/ts_build/tests/unit/utils/http.test.js +69 -0
- package/ts_build/tests/unit/utils/http.test.js.map +1 -0
|
@@ -40,6 +40,7 @@ const openai_1 = require("../../../src/clients/pricing/openai");
|
|
|
40
40
|
const anthropic_1 = require("../../../src/clients/pricing/anthropic");
|
|
41
41
|
const google_1 = require("../../../src/clients/pricing/google");
|
|
42
42
|
const xai_1 = require("../../../src/clients/pricing/xai");
|
|
43
|
+
const fireworks_1 = require("../../../src/clients/pricing/fireworks");
|
|
43
44
|
const OUTPUT_FILE = path.join(__dirname, "completions.json");
|
|
44
45
|
const PROMPT = "Say hello in 5 words.";
|
|
45
46
|
function openaiEntries(models) {
|
|
@@ -54,11 +55,22 @@ function googleEntries(models) {
|
|
|
54
55
|
function xaiEntries(models) {
|
|
55
56
|
return models.map((model) => ({ provider: "xai", model, envKey: "XAI_API_KEY" }));
|
|
56
57
|
}
|
|
58
|
+
function fireworksEntries() {
|
|
59
|
+
return Object.entries(fireworks_1.FireworksTextPricing)
|
|
60
|
+
.filter(([, pricing]) => !pricing.deprecated)
|
|
61
|
+
.map(([model]) => ({
|
|
62
|
+
provider: "fireworks",
|
|
63
|
+
model,
|
|
64
|
+
envKey: "FIREWORKS_API_KEY",
|
|
65
|
+
}));
|
|
66
|
+
}
|
|
57
67
|
const TEST_MODELS = [
|
|
58
|
-
...openaiEntries([...new Set([...openai_1.OpenAiChatModels, ...openai_1.OpenAiReasoningModels, ...openai_1.OpenAiResponsesOnlyModels])])
|
|
59
|
-
|
|
60
|
-
...
|
|
61
|
-
...
|
|
68
|
+
...openaiEntries([...new Set([...openai_1.OpenAiChatModels, ...openai_1.OpenAiReasoningModels, ...openai_1.OpenAiResponsesOnlyModels])])
|
|
69
|
+
.map((entry) => ({ ...entry, reasoningEffort: "low" })),
|
|
70
|
+
...anthropicEntries(anthropic_1.AnthropicTextModels).map((entry) => ({ ...entry, reasoningEffort: "low" })),
|
|
71
|
+
...googleEntries(google_1.GoogleTextModels).map((entry) => ({ ...entry, reasoningEffort: "low" })),
|
|
72
|
+
...xaiEntries(xai_1.XaiTextModels).map((entry) => ({ ...entry, reasoningEffort: "low" })),
|
|
73
|
+
...fireworksEntries(),
|
|
62
74
|
];
|
|
63
75
|
function loadResults() {
|
|
64
76
|
if (fs.existsSync(OUTPUT_FILE)) {
|
|
@@ -89,7 +101,7 @@ describe("Text Completions – multi-provider model verification", () => {
|
|
|
89
101
|
console.log(`\n📄 Results saved to: ${OUTPUT_FILE}`);
|
|
90
102
|
console.log(` Total records: ${Object.keys(results).length}`);
|
|
91
103
|
});
|
|
92
|
-
for (const { provider, model, envKey } of TEST_MODELS) {
|
|
104
|
+
for (const { provider, model, envKey, reasoningEffort } of TEST_MODELS) {
|
|
93
105
|
const key = recordKey(provider, model);
|
|
94
106
|
test(`${provider} / ${model}`, async () => {
|
|
95
107
|
if (results[key]) {
|
|
@@ -110,7 +122,8 @@ describe("Text Completions – multi-provider model verification", () => {
|
|
|
110
122
|
model,
|
|
111
123
|
messages: [{ role: "user", content: PROMPT }],
|
|
112
124
|
max_tokens: 2000,
|
|
113
|
-
|
|
125
|
+
reasoning_summary: true,
|
|
126
|
+
reasoning_effort: reasoningEffort,
|
|
114
127
|
});
|
|
115
128
|
const durationMs = Date.now() - startMs;
|
|
116
129
|
const text = response.choices[0]?.message?.content ?? "";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completions.test.js","sourceRoot":"","sources":["../../../../tests/manual/clients/completions.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,uCAAyB;AACzB,2CAA6B;AAC7B,kDAAgD;AAEhD,gEAAyH;AACzH,sEAAiH;AACjH,gEAAuE;AACvE,0DAA0F;
|
|
1
|
+
{"version":3,"file":"completions.test.js","sourceRoot":"","sources":["../../../../tests/manual/clients/completions.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -322,15 +322,24 @@ describe("TokenCompressor", () => {
|
|
|
322
322
|
expect(result).toContain("Error: No data found for key");
|
|
323
323
|
expect(result).toContain("Available keys:");
|
|
324
324
|
});
|
|
325
|
-
it("should auto-stitch a multi-chunk chain
|
|
325
|
+
it("should auto-stitch and paginate a multi-chunk chain", () => {
|
|
326
326
|
const content = "a".repeat(40000);
|
|
327
327
|
const placeholder = tokenCompressor.compressStringInChunks(content);
|
|
328
328
|
const firstKey = placeholder.match(/Key:\s*(\S+)/)[1];
|
|
329
329
|
const toolsServiceCalls = mockToolsService.addFunctions.mock.calls;
|
|
330
330
|
const functions = toolsServiceCalls[0][0];
|
|
331
331
|
const result = functions.expandTokens(firstKey);
|
|
332
|
-
expect(result).
|
|
332
|
+
expect(result.length).toBeLessThanOrEqual(20_000);
|
|
333
|
+
expect(result).toContain("Repeat with characterOffset=");
|
|
333
334
|
expect(result).not.toContain("NEXT_CHUNK_KEY");
|
|
335
|
+
const pages = [result];
|
|
336
|
+
let offsetMatch = result.match(/characterOffset=(\d+)/);
|
|
337
|
+
while (offsetMatch) {
|
|
338
|
+
const page = functions.expandTokens(firstKey, undefined, undefined, Number(offsetMatch[1]));
|
|
339
|
+
pages.push(page);
|
|
340
|
+
offsetMatch = page.match(/Repeat with characterOffset=(\d+)/);
|
|
341
|
+
}
|
|
342
|
+
expect(pages.reduce((sum, page) => sum + (page.match(/^a+/)?.[0].length || 0), 0)).toBe(content.length);
|
|
334
343
|
});
|
|
335
344
|
it("should support a ranged read with real line numbers", () => {
|
|
336
345
|
const key = "ranged_key";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenCompressor.test.js","sourceRoot":"","sources":["../../../tests/processors/TokenCompressor.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TokenCompressor.test.js","sourceRoot":"","sources":["../../../tests/processors/TokenCompressor.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const jqToolResponse_1 = require("../../../src/processors/tools/jqToolResponse");
|
|
4
|
+
const tailToolResponse_1 = require("../../../src/processors/tools/tailToolResponse");
|
|
5
|
+
const listStoredToolResponses_1 = require("../../../src/processors/tools/listStoredToolResponses");
|
|
6
|
+
describe("bounded retrieval tools", () => {
|
|
7
|
+
it("bounds and paginates JQ output", async () => {
|
|
8
|
+
const data = JSON.stringify(Array.from({ length: 100 }, (_, i) => `value-${i}-${"x".repeat(30)}`));
|
|
9
|
+
const first = await (0, jqToolResponse_1.executeJqQuery)(data, "jq-id", ".", ["jq-id"], {}, { maxCharacters: 1000 });
|
|
10
|
+
expect(first.length).toBeLessThanOrEqual(1000);
|
|
11
|
+
expect(first).toContain("Repeat with characterOffset=");
|
|
12
|
+
const offset = Number(first.match(/characterOffset=(\d+)/)?.[1]);
|
|
13
|
+
const next = await (0, jqToolResponse_1.executeJqQuery)(data, "jq-id", ".", ["jq-id"], {}, {
|
|
14
|
+
characterOffset: offset,
|
|
15
|
+
maxCharacters: 1000,
|
|
16
|
+
});
|
|
17
|
+
expect(next).not.toBe(first);
|
|
18
|
+
});
|
|
19
|
+
it("bounds tail line lengths and supports backward pagination", async () => {
|
|
20
|
+
const data = ["first", `second ${"a".repeat(5000)}`, "third"].join("\n");
|
|
21
|
+
const result = await (0, tailToolResponse_1.executeTail)(data, "tail-id", ["tail-id"], {
|
|
22
|
+
lines: 1,
|
|
23
|
+
endLine: 2,
|
|
24
|
+
maxLineCharacters: 1000,
|
|
25
|
+
maxCharacters: 2000,
|
|
26
|
+
});
|
|
27
|
+
expect(result.length).toBeLessThanOrEqual(2000);
|
|
28
|
+
expect(result).toContain("Earlier lines available");
|
|
29
|
+
expect(result).toContain("lineCharacterOffset=1000");
|
|
30
|
+
});
|
|
31
|
+
it("paginates stored response results", async () => {
|
|
32
|
+
const storage = { a: "one", b: "two", c: "three" };
|
|
33
|
+
const metadata = {
|
|
34
|
+
a: { toolCallId: "a", originalLength: 3, storedAt: 1 },
|
|
35
|
+
b: { toolCallId: "b", originalLength: 3, storedAt: 2 },
|
|
36
|
+
c: { toolCallId: "c", originalLength: 5, storedAt: 3 },
|
|
37
|
+
};
|
|
38
|
+
const result = await (0, listStoredToolResponses_1.executeListStoredToolResponses)(storage, metadata, {}, {
|
|
39
|
+
maxResults: 1,
|
|
40
|
+
resultOffset: 1,
|
|
41
|
+
});
|
|
42
|
+
expect(result).toContain("Tool Call ID: b");
|
|
43
|
+
expect(result).not.toContain("Tool Call ID: c");
|
|
44
|
+
expect(result).toContain("resultOffset=2");
|
|
45
|
+
});
|
|
46
|
+
it("exposes pagination controls in each tool schema", () => {
|
|
47
|
+
const jqOptions = jqToolResponse_1.jqToolResponseDefinition.function.parameters.properties.options;
|
|
48
|
+
const tailOptions = tailToolResponse_1.tailToolResponseDefinition.function.parameters.properties.options;
|
|
49
|
+
const listOptions = listStoredToolResponses_1.listStoredToolResponsesDefinition.function.parameters.properties.options;
|
|
50
|
+
expect(jqOptions.properties.characterOffset).toBeDefined();
|
|
51
|
+
expect(tailOptions.properties.endLine).toBeDefined();
|
|
52
|
+
expect(tailOptions.properties.maxCharacters).toBeDefined();
|
|
53
|
+
expect(listOptions.properties.resultOffset).toBeDefined();
|
|
54
|
+
expect(listOptions.properties.maxCharacters).toBeDefined();
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
//# sourceMappingURL=boundedRetrievalTools.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boundedRetrievalTools.test.js","sourceRoot":"","sources":["../../../../tests/processors/tools/boundedRetrievalTools.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,5 +36,42 @@ describe("executeGrep", () => {
|
|
|
36
36
|
const result = await (0, grepToolResponse_1.executeGrep)(fileContent, toolCallId, "doesNotExistAnywhere", [toolCallId]);
|
|
37
37
|
expect(result).toContain("No matches found");
|
|
38
38
|
});
|
|
39
|
+
it("bounds the total response and advertises the next result page", async () => {
|
|
40
|
+
const manyMatches = Array.from({ length: 20 }, (_, index) => `match ${index} ${"x".repeat(200)}`).join("\n");
|
|
41
|
+
const result = await (0, grepToolResponse_1.executeGrep)(manyMatches, toolCallId, "match", [toolCallId], { maxCharacters: 1000, maxResults: 20 });
|
|
42
|
+
expect(result.length).toBeLessThanOrEqual(1000);
|
|
43
|
+
expect(result).toContain("More matches available");
|
|
44
|
+
expect(result).toMatch(/resultOffset=\d+/);
|
|
45
|
+
});
|
|
46
|
+
it("keeps a large log grep under the default response limit", async () => {
|
|
47
|
+
const logMatches = Array.from({ length: 500 }, (_, index) => `${index}: ${JSON.stringify({ level: 30, message: "sandbox runner", detail: "x".repeat(500) })}`).join("\n");
|
|
48
|
+
const result = await (0, grepToolResponse_1.executeGrep)(logMatches, toolCallId, "runner|sandbox", [toolCallId]);
|
|
49
|
+
expect(result.length).toBeLessThanOrEqual(20_000);
|
|
50
|
+
expect(result).toContain("More matches available");
|
|
51
|
+
});
|
|
52
|
+
it("paginates matches using resultOffset", async () => {
|
|
53
|
+
const result = await (0, grepToolResponse_1.executeGrep)(["match zero", "match one", "match two"].join("\n"), toolCallId, "match", [toolCallId], { maxResults: 1, resultOffset: 1 });
|
|
54
|
+
expect(result).not.toContain("match zero");
|
|
55
|
+
expect(result).toContain("match one");
|
|
56
|
+
expect(result).not.toContain("match two");
|
|
57
|
+
expect(result).toContain("resultOffset=2");
|
|
58
|
+
});
|
|
59
|
+
it("slices very long matching lines and lets callers page within the line", async () => {
|
|
60
|
+
const longLine = `prefix-${"a".repeat(5000)}-suffix`;
|
|
61
|
+
const firstPage = await (0, grepToolResponse_1.executeGrep)(longLine, toolCallId, "prefix", [toolCallId]);
|
|
62
|
+
expect(firstPage.length).toBeLessThan(10_000);
|
|
63
|
+
expect(firstPage).toContain("line 1 truncated");
|
|
64
|
+
expect(firstPage).toContain("lineCharacterOffset=4000");
|
|
65
|
+
expect(firstPage).not.toContain("-suffix");
|
|
66
|
+
const secondPage = await (0, grepToolResponse_1.executeGrep)(longLine, toolCallId, "prefix", [toolCallId], { lineCharacterOffset: 4000 });
|
|
67
|
+
expect(secondPage).toContain("-suffix");
|
|
68
|
+
expect(secondPage).toContain("End of matches");
|
|
69
|
+
});
|
|
70
|
+
it("exposes pagination controls in the tool schema", () => {
|
|
71
|
+
const options = grepToolResponse_1.grepToolResponseDefinition.function.parameters.properties.options;
|
|
72
|
+
expect(options.properties.resultOffset).toBeDefined();
|
|
73
|
+
expect(options.properties.lineCharacterOffset).toBeDefined();
|
|
74
|
+
expect(options.properties.maxCharacters).toBeDefined();
|
|
75
|
+
});
|
|
39
76
|
});
|
|
40
77
|
//# sourceMappingURL=grepToolResponse.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grepToolResponse.test.js","sourceRoot":"","sources":["../../../../tests/processors/tools/grepToolResponse.test.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"grepToolResponse.test.js","sourceRoot":"","sources":["../../../../tests/processors/tools/grepToolResponse.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const historyRollback_1 = require("../../../src/agents/historyRollback");
|
|
4
|
+
const message = (role, content) => ({ role, content });
|
|
5
|
+
describe("rollbackAgentInteractions", () => {
|
|
6
|
+
const threads = [[
|
|
7
|
+
message("user", "request"),
|
|
8
|
+
message("assistant", "first"),
|
|
9
|
+
message("tool", "first result"),
|
|
10
|
+
message("assistant", "second"),
|
|
11
|
+
message("tool", "second result"),
|
|
12
|
+
]];
|
|
13
|
+
it("clones history without changing it when rollback is zero", () => {
|
|
14
|
+
const result = (0, historyRollback_1.rollbackAgentInteractions)(threads, 0);
|
|
15
|
+
expect(result).toEqual(threads);
|
|
16
|
+
expect(result).not.toBe(threads);
|
|
17
|
+
expect(result[0]).not.toBe(threads[0]);
|
|
18
|
+
expect(result[0][0]).not.toBe(threads[0][0]);
|
|
19
|
+
});
|
|
20
|
+
it("removes the newest assistant and its following tool results", () => {
|
|
21
|
+
expect((0, historyRollback_1.rollbackAgentInteractions)(threads, 1)).toEqual([threads[0].slice(0, 3)]);
|
|
22
|
+
});
|
|
23
|
+
it("can remove multiple interactions", () => {
|
|
24
|
+
expect((0, historyRollback_1.rollbackAgentInteractions)(threads, 2)).toEqual([[threads[0][0]]]);
|
|
25
|
+
});
|
|
26
|
+
it("removes a trailing assistant without tools", () => {
|
|
27
|
+
const input = [[message("user", "request"), message("assistant", "tail")]];
|
|
28
|
+
expect((0, historyRollback_1.rollbackAgentInteractions)(input, 1)).toEqual([[input[0][0]]]);
|
|
29
|
+
});
|
|
30
|
+
it.each([-1, 1.5])("rejects invalid rollback %p", (rollback) => {
|
|
31
|
+
expect(() => (0, historyRollback_1.rollbackAgentInteractions)(threads, rollback)).toThrow("rollback must be a non-negative integer");
|
|
32
|
+
});
|
|
33
|
+
it("rejects rollback beyond available interactions", () => {
|
|
34
|
+
expect(() => (0, historyRollback_1.rollbackAgentInteractions)(threads, 3)).toThrow("only has 2 assistant interaction(s)");
|
|
35
|
+
});
|
|
36
|
+
it("does not mutate input history", () => {
|
|
37
|
+
const before = JSON.stringify(threads);
|
|
38
|
+
(0, historyRollback_1.rollbackAgentInteractions)(threads, 1);
|
|
39
|
+
expect(JSON.stringify(threads)).toBe(before);
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=historyRollback.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"historyRollback.test.js","sourceRoot":"","sources":["../../../../tests/unit/agents/historyRollback.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const post = jest.fn();
|
|
4
|
+
const publicKeyBase64 = Buffer.alloc(32, 7).toString("base64");
|
|
5
|
+
const keyPairExists = jest.fn(() => true);
|
|
6
|
+
const loadKeyPair = jest.fn(() => ({ publicKeyBase64 }));
|
|
7
|
+
const signMessage = jest.fn(() => "server-message-signature");
|
|
8
|
+
jest.mock("../../../src/utils/http", () => ({
|
|
9
|
+
__esModule: true,
|
|
10
|
+
default: {
|
|
11
|
+
post,
|
|
12
|
+
isHttpError: (error) => typeof error === "object" && error !== null && "status" in error,
|
|
13
|
+
},
|
|
14
|
+
}));
|
|
15
|
+
jest.mock("../../../src/auth/keyManager", () => ({
|
|
16
|
+
keyPairExists,
|
|
17
|
+
loadKeyPair,
|
|
18
|
+
signMessage,
|
|
19
|
+
}));
|
|
20
|
+
jest.mock("../../../src/auth/browserLogin", () => ({
|
|
21
|
+
getCliUserAgent: () => "test-agent",
|
|
22
|
+
}));
|
|
23
|
+
const keyAuth_1 = require("../../../src/auth/keyAuth");
|
|
24
|
+
describe("keyAuth", () => {
|
|
25
|
+
beforeEach(() => {
|
|
26
|
+
jest.clearAllMocks();
|
|
27
|
+
keyPairExists.mockReturnValue(true);
|
|
28
|
+
});
|
|
29
|
+
it("signs the exact server challenge for the selected key, org, and environment", async () => {
|
|
30
|
+
post
|
|
31
|
+
.mockResolvedValueOnce({
|
|
32
|
+
data: {
|
|
33
|
+
challengeId: "challenge_1",
|
|
34
|
+
message: "exact message from server",
|
|
35
|
+
expiresAt: "2099-01-01T00:00:00.000Z",
|
|
36
|
+
},
|
|
37
|
+
status: 201,
|
|
38
|
+
})
|
|
39
|
+
.mockResolvedValueOnce({ data: { jwt: "renewed-jwt" }, status: 200 });
|
|
40
|
+
expect((0, keyAuth_1.hasKeyPair)("/keys/work")).toBe(true);
|
|
41
|
+
await expect((0, keyAuth_1.exchangePublicKeyJwt)("org-1", "https://work.example", "/keys/work")).resolves.toBe("renewed-jwt");
|
|
42
|
+
expect(loadKeyPair).toHaveBeenCalledWith("/keys/work");
|
|
43
|
+
expect(signMessage).toHaveBeenCalledWith("exact message from server", "/keys/work");
|
|
44
|
+
expect(post.mock.calls).toEqual([
|
|
45
|
+
[
|
|
46
|
+
"https://work.example/api/public-keys/challenge",
|
|
47
|
+
{ publicKey: publicKeyBase64, orgId: "org-1" },
|
|
48
|
+
{ headers: { "User-Agent": "test-agent" } },
|
|
49
|
+
],
|
|
50
|
+
[
|
|
51
|
+
"https://work.example/api/public-keys/authenticate",
|
|
52
|
+
{ challengeId: "challenge_1", signature: "server-message-signature" },
|
|
53
|
+
{ headers: { "User-Agent": "test-agent" } },
|
|
54
|
+
],
|
|
55
|
+
]);
|
|
56
|
+
});
|
|
57
|
+
it("falls back when the key is unavailable without signing a challenge", async () => {
|
|
58
|
+
post.mockRejectedValueOnce({ status: 401 });
|
|
59
|
+
await expect((0, keyAuth_1.authenticateWithKey)("org-1", "https://work.example", "/keys/work")).resolves.toBe(false);
|
|
60
|
+
expect(post).toHaveBeenCalledTimes(1);
|
|
61
|
+
expect(signMessage).not.toHaveBeenCalled();
|
|
62
|
+
});
|
|
63
|
+
it("registers only server-owned Ed25519 key fields in the selected environment", async () => {
|
|
64
|
+
post.mockResolvedValueOnce({ data: {}, status: 201 });
|
|
65
|
+
await (0, keyAuth_1.registerPublicKey)("browser-jwt", publicKeyBase64, "https://dev.example");
|
|
66
|
+
expect(post).toHaveBeenCalledWith("https://dev.example/api/public-keys/register", {
|
|
67
|
+
publicKey: publicKeyBase64,
|
|
68
|
+
label: expect.any(String),
|
|
69
|
+
}, {
|
|
70
|
+
headers: {
|
|
71
|
+
Authorization: "Bearer browser-jwt",
|
|
72
|
+
"User-Agent": "test-agent",
|
|
73
|
+
},
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
//# sourceMappingURL=keyAuth.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyAuth.test.js","sourceRoot":"","sources":["../../../../tests/unit/auth/keyAuth.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const os_1 = __importDefault(require("os"));
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const keyManager_1 = require("../../../src/auth/keyManager");
|
|
11
|
+
describe("keyManager", () => {
|
|
12
|
+
let directory;
|
|
13
|
+
let identity;
|
|
14
|
+
beforeEach(() => {
|
|
15
|
+
directory = fs_1.default.mkdtempSync(path_1.default.join(os_1.default.tmpdir(), "knowhow-key-manager-"));
|
|
16
|
+
identity = path_1.default.join(directory, "identity");
|
|
17
|
+
});
|
|
18
|
+
afterEach(() => {
|
|
19
|
+
fs_1.default.rmSync(directory, { recursive: true, force: true });
|
|
20
|
+
});
|
|
21
|
+
it("creates an Ed25519 identity with an OpenSSH-compatible public key", () => {
|
|
22
|
+
const generated = (0, keyManager_1.generateKeyPair)(identity);
|
|
23
|
+
const publicKeyLine = fs_1.default.readFileSync(`${identity}.pub`, "utf8").trim();
|
|
24
|
+
expect(publicKeyLine).toMatch(/^ssh-ed25519 [A-Za-z0-9+/]+=* knowhow-cli$/);
|
|
25
|
+
expect(fs_1.default.statSync(identity).mode % 0o1000).toBe(0o600);
|
|
26
|
+
expect((0, keyManager_1.loadKeyPair)(identity)).toEqual(generated);
|
|
27
|
+
const challengeMessage = "exact server-provided challenge";
|
|
28
|
+
const signature = (0, keyManager_1.signMessage)(challengeMessage, identity);
|
|
29
|
+
const publicKey = crypto_1.default.createPublicKey(fs_1.default.readFileSync(identity));
|
|
30
|
+
expect(crypto_1.default.verify(null, Buffer.from(challengeMessage), publicKey, Buffer.from(signature, "base64"))).toBe(true);
|
|
31
|
+
});
|
|
32
|
+
it("loads legacy raw-base64 public keys but rejects non-Ed25519 identities", () => {
|
|
33
|
+
const generated = (0, keyManager_1.generateKeyPair)(identity);
|
|
34
|
+
fs_1.default.writeFileSync(`${identity}.pub`, generated.publicKeyBase64);
|
|
35
|
+
expect((0, keyManager_1.loadKeyPair)(identity).publicKeyBase64).toBe(generated.publicKeyBase64);
|
|
36
|
+
const rsaIdentity = path_1.default.join(directory, "rsa");
|
|
37
|
+
const rsa = crypto_1.default.generateKeyPairSync("rsa", {
|
|
38
|
+
modulusLength: 2048,
|
|
39
|
+
privateKeyEncoding: { type: "pkcs8", format: "pem" },
|
|
40
|
+
publicKeyEncoding: { type: "spki", format: "pem" },
|
|
41
|
+
});
|
|
42
|
+
fs_1.default.writeFileSync(rsaIdentity, rsa.privateKey);
|
|
43
|
+
fs_1.default.writeFileSync(`${rsaIdentity}.pub`, generated.publicKeyBase64);
|
|
44
|
+
expect(() => (0, keyManager_1.loadKeyPair)(rsaIdentity)).toThrow("must be an Ed25519 private key");
|
|
45
|
+
});
|
|
46
|
+
it("does not overwrite a partial identity", () => {
|
|
47
|
+
fs_1.default.writeFileSync(identity, "existing key");
|
|
48
|
+
expect(() => (0, keyManager_1.generateKeyPair)(identity)).toThrow("a key file already exists");
|
|
49
|
+
expect(fs_1.default.readFileSync(identity, "utf8")).toBe("existing key");
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
//# sourceMappingURL=keyManager.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyManager.test.js","sourceRoot":"","sources":["../../../../tests/unit/auth/keyManager.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const SessionsModule_1 = require("../../../src/chat/modules/SessionsModule");
|
|
4
|
+
describe("parseHistoryCommandArgs", () => {
|
|
5
|
+
it("parses an id and rollback in either order", () => {
|
|
6
|
+
expect((0, SessionsModule_1.parseHistoryCommandArgs)(["task-1", "--rollback", "2"])).toEqual({
|
|
7
|
+
id: "task-1", rollback: 2, showAll: false,
|
|
8
|
+
});
|
|
9
|
+
expect((0, SessionsModule_1.parseHistoryCommandArgs)(["--rollback", "1", "task-1"])).toEqual({
|
|
10
|
+
id: "task-1", rollback: 1, showAll: false,
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
it("supports interactive --all", () => {
|
|
14
|
+
expect((0, SessionsModule_1.parseHistoryCommandArgs)(["--all"])).toEqual({
|
|
15
|
+
id: undefined, rollback: 0, showAll: true,
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
it.each([
|
|
19
|
+
[["--rollback"]],
|
|
20
|
+
[["--rollback", "-1"]],
|
|
21
|
+
[["--rollback", "1.5"]],
|
|
22
|
+
])("rejects invalid rollback arguments: %p", (args) => {
|
|
23
|
+
expect(() => (0, SessionsModule_1.parseHistoryCommandArgs)(args)).toThrow("--rollback must be a non-negative integer");
|
|
24
|
+
});
|
|
25
|
+
it("rejects unexpected arguments", () => {
|
|
26
|
+
expect(() => (0, SessionsModule_1.parseHistoryCommandArgs)(["one", "two"])).toThrow("Unexpected argument: two");
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=historyCommandArgs.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"historyCommandArgs.test.js","sourceRoot":"","sources":["../../../../tests/unit/chat/historyCommandArgs.test.ts"],"names":[],"mappings":";;AAAA,6EAAmF;AAEnF,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,IAAA,wCAAuB,EAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACrE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK;SAC1C,CAAC,CAAC;QACH,MAAM,CAAC,IAAA,wCAAuB,EAAC,CAAC,YAAY,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACrE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK;SAC1C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,IAAA,wCAAuB,EAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACjD,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI;SAC1C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC;QACN,CAAC,CAAC,YAAY,CAAC,CAAC;QAChB,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACtB,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;KACxB,CAAC,CACA,wCAAwC,EACxC,CAAC,IAAI,EAAE,EAAE;QACP,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,wCAAuB,EAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CACjD,2CAA2C,CAC5C,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,wCAAuB,EAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAC3D,0BAA0B,CAC3B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|