gaunt-sloth-assistant 1.0.0-alpha.4 → 1.0.0
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/README.md
CHANGED
|
@@ -12,11 +12,7 @@ Based on [LangChain.js](https://github.com/langchain-ai/langchainjs)
|
|
|
12
12
|
|
|
13
13
|
## Why?
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
there are great non-open source options such as Claude Code.
|
|
17
|
-
|
|
18
|
-
Gaunt Sloth does not intend to be your "Daily Driver" and is not aiming to replace your Cursor.
|
|
19
|
-
What it promises is that it is small, extendable, cross-platform and can itself be a dependency in your project.
|
|
15
|
+
Gaunt Sloth's promise is that it is small, extendable, cross-platform and can itself be a dependency in your project.
|
|
20
16
|
|
|
21
17
|
The GSloth was initially built as a code review tool, fetching PR contents and Jira contents before feeding them to
|
|
22
18
|
the LLM, but we ourselves found many more use cases which we initially did not anticipate; for example,
|
|
@@ -247,8 +243,12 @@ GitHub actions bot.
|
|
|
247
243
|
|
|
248
244
|
Gaunt Sloth supports connecting to MCP servers, including those requiring OAuth authentication.
|
|
249
245
|
|
|
250
|
-
This has been tested with the Atlassian Jira MCP server.
|
|
251
|
-
See the [MCP configuration section](./docs/CONFIGURATION.md#model-context-protocol-mcp) for detailed setup instructions.
|
|
246
|
+
This has been tested with the Atlassian Jira MCP server.
|
|
247
|
+
See the [MCP configuration section](./docs/CONFIGURATION.md#model-context-protocol-mcp) for detailed setup instructions, or the [Jira MCP example](./examples/jira-mcp) for a working configuration.
|
|
248
|
+
|
|
249
|
+
If you experience issues with the MCP auth try finding `.gsloth` dir in your home directory,
|
|
250
|
+
and delete JSON file matching the server you are trying to connect to,
|
|
251
|
+
for example for atlassian MCP the file would be `~/.gsloth/.gsloth-auth/mcp.atlassian.com_v1_sse.json`
|
|
252
252
|
|
|
253
253
|
## Uninstall
|
|
254
254
|
Uninstall global NPM package:
|
|
@@ -13,6 +13,7 @@ export declare class OAuthClientProviderImpl implements OAuthClientProvider {
|
|
|
13
13
|
private config;
|
|
14
14
|
private innerState;
|
|
15
15
|
private storagePath;
|
|
16
|
+
private storageCache?;
|
|
16
17
|
constructor(config: OAuthClientProviderConfig);
|
|
17
18
|
private loadStorageData;
|
|
18
19
|
private saveStorageData;
|
|
@@ -4,7 +4,7 @@ import * as crypto from 'node:crypto';
|
|
|
4
4
|
import { platform } from 'node:os';
|
|
5
5
|
import { execSync } from 'node:child_process';
|
|
6
6
|
import { displayInfo } from '#src/utils/consoleUtils.js';
|
|
7
|
-
import { readFileSync, writeFileSync, existsSync } from 'node:fs';
|
|
7
|
+
import { readFileSync, writeFileSync, existsSync, unlinkSync } from 'node:fs';
|
|
8
8
|
import { getOAuthStoragePath } from '#src/utils/globalConfigUtils.js';
|
|
9
9
|
/**
|
|
10
10
|
* Please note most of these "unused" methods are part of {@link OAuthClientProvider}
|
|
@@ -13,6 +13,7 @@ export class OAuthClientProviderImpl {
|
|
|
13
13
|
config;
|
|
14
14
|
innerState;
|
|
15
15
|
storagePath;
|
|
16
|
+
storageCache;
|
|
16
17
|
constructor(config) {
|
|
17
18
|
this.config = config;
|
|
18
19
|
this.innerState = crypto.randomUUID();
|
|
@@ -25,21 +26,46 @@ export class OAuthClientProviderImpl {
|
|
|
25
26
|
this.storagePath = getOAuthStoragePath(this.config.serverUrl);
|
|
26
27
|
}
|
|
27
28
|
loadStorageData() {
|
|
29
|
+
// Return cached data if available
|
|
30
|
+
if (this.storageCache !== undefined) {
|
|
31
|
+
return this.storageCache;
|
|
32
|
+
}
|
|
33
|
+
// Read from file if cache is empty
|
|
28
34
|
if (existsSync(this.storagePath)) {
|
|
29
35
|
try {
|
|
30
36
|
const data = readFileSync(this.storagePath, 'utf-8');
|
|
31
|
-
|
|
37
|
+
const parsedData = JSON.parse(data);
|
|
38
|
+
// Wipe data if the in-memory cache is empty and file info is missing tokens
|
|
39
|
+
if (parsedData.clientInformation && !parsedData.tokens) {
|
|
40
|
+
try {
|
|
41
|
+
unlinkSync(this.storagePath);
|
|
42
|
+
displayInfo('Deleted OAuth storage file (missing tokens)');
|
|
43
|
+
this.storageCache = {};
|
|
44
|
+
return this.storageCache;
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
displayInfo('Failed to delete OAuth storage file: ' + error);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
// Cache the loaded data
|
|
51
|
+
this.storageCache = parsedData;
|
|
52
|
+
return parsedData;
|
|
32
53
|
}
|
|
33
54
|
catch (error) {
|
|
34
|
-
displayInfo('Failed to load OAuth storage data:' + error);
|
|
35
|
-
|
|
55
|
+
displayInfo('Failed to load OAuth storage data: ' + error);
|
|
56
|
+
this.storageCache = {};
|
|
57
|
+
return this.storageCache;
|
|
36
58
|
}
|
|
37
59
|
}
|
|
38
|
-
|
|
60
|
+
// No file exists, cache empty object
|
|
61
|
+
this.storageCache = {};
|
|
62
|
+
return this.storageCache;
|
|
39
63
|
}
|
|
40
64
|
saveStorageData(data) {
|
|
41
65
|
try {
|
|
42
66
|
writeFileSync(this.storagePath, JSON.stringify(data, null, 2), 'utf-8');
|
|
67
|
+
// Update the cache when saving
|
|
68
|
+
this.storageCache = data;
|
|
43
69
|
}
|
|
44
70
|
catch (error) {
|
|
45
71
|
console.error('Failed to save OAuth storage data:', error);
|
|
@@ -57,7 +83,7 @@ export class OAuthClientProviderImpl {
|
|
|
57
83
|
return {
|
|
58
84
|
redirect_uris: [this.config.redirectUrl],
|
|
59
85
|
client_name: 'Gaunt Sloth Assistant',
|
|
60
|
-
client_uri: 'https://
|
|
86
|
+
client_uri: 'https://gaunt-sloth-assistant.github.io/',
|
|
61
87
|
software_id: '1dd38b83-946b-4631-8855-66ee467bfd68',
|
|
62
88
|
scope: 'mcp:read mcp:write',
|
|
63
89
|
token_endpoint_auth_method: 'none',
|
|
@@ -131,9 +157,9 @@ export class OAuthClientProviderImpl {
|
|
|
131
157
|
}
|
|
132
158
|
}
|
|
133
159
|
export async function createAuthProviderAndAuthenticate(mcpServer) {
|
|
134
|
-
const { port, server, codePromise } = await createOAuthRedirectServer('/oauth
|
|
160
|
+
const { port, server, codePromise } = await createOAuthRedirectServer('/oauth/callback');
|
|
135
161
|
const authProvider = new OAuthClientProviderImpl({
|
|
136
|
-
redirectUrl: `http://
|
|
162
|
+
redirectUrl: `http://localhost:${port}/oauth/callback`,
|
|
137
163
|
serverUrl: mcpServer.url,
|
|
138
164
|
});
|
|
139
165
|
const outcome = await auth(authProvider, { serverUrl: mcpServer.url });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OAuthClientProviderImpl.js","sourceRoot":"","sources":["../../src/mcp/OAuthClientProviderImpl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAMhE,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"OAuthClientProviderImpl.js","sourceRoot":"","sources":["../../src/mcp/OAuthClientProviderImpl.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gaunt-sloth-assistant",
|
|
3
|
-
"version": "1.0.0
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Andrew Kondratev",
|
|
@@ -40,29 +40,30 @@
|
|
|
40
40
|
"gth": "cli.js"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@langchain/anthropic": "^1.
|
|
44
|
-
"@langchain/core": "^1.0.
|
|
45
|
-
"@langchain/deepseek": "^1.0.
|
|
46
|
-
"@langchain/google-genai": "^1.0.
|
|
47
|
-
"@langchain/google-vertexai": "^1.0.
|
|
48
|
-
"@langchain/groq": "^1.0.
|
|
49
|
-
"@langchain/langgraph": "^1.0.
|
|
43
|
+
"@langchain/anthropic": "^1.1.0",
|
|
44
|
+
"@langchain/core": "^1.0.5",
|
|
45
|
+
"@langchain/deepseek": "^1.0.1",
|
|
46
|
+
"@langchain/google-genai": "^1.0.1",
|
|
47
|
+
"@langchain/google-vertexai": "^1.0.1",
|
|
48
|
+
"@langchain/groq": "^1.0.1",
|
|
49
|
+
"@langchain/langgraph": "^1.0.2",
|
|
50
50
|
"@langchain/mcp-adapters": "^1.0.0",
|
|
51
|
-
"@langchain/openai": "^1.
|
|
52
|
-
"@langchain/xai": "^1.0.
|
|
51
|
+
"@langchain/openai": "^1.1.2",
|
|
52
|
+
"@langchain/xai": "^1.0.1",
|
|
53
|
+
"@modelcontextprotocol/sdk": "^1.22.0",
|
|
53
54
|
"commander": "^14.0.2",
|
|
54
55
|
"diff": "^8.0.2",
|
|
55
56
|
"express": "^5.1.0",
|
|
56
|
-
"langchain": "^1.0.
|
|
57
|
+
"langchain": "^1.0.5",
|
|
57
58
|
"minimatch": "^10.1.1"
|
|
58
59
|
},
|
|
59
60
|
"devDependencies": {
|
|
60
61
|
"@eslint/js": "^9.34.0",
|
|
61
62
|
"@types/express": "^5.0.5",
|
|
62
|
-
"@types/node": "^24.10.
|
|
63
|
+
"@types/node": "^24.10.1",
|
|
63
64
|
"@types/uuid": "^10.0.0",
|
|
64
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
65
|
-
"@typescript-eslint/parser": "^8.
|
|
65
|
+
"@typescript-eslint/eslint-plugin": "^8.47.0",
|
|
66
|
+
"@typescript-eslint/parser": "^8.47.0",
|
|
66
67
|
"eslint": "^9.39.1",
|
|
67
68
|
"eslint-config-prettier": "^10.1.8",
|
|
68
69
|
"eslint-plugin-prettier": "^5.5.4",
|
|
@@ -72,6 +73,9 @@
|
|
|
72
73
|
"typescript": "^5.9.3",
|
|
73
74
|
"vitest": "^3.2.4"
|
|
74
75
|
},
|
|
76
|
+
"overrides": {
|
|
77
|
+
"rimraf": "^6.1.0"
|
|
78
|
+
},
|
|
75
79
|
"imports": {
|
|
76
80
|
"#src/*.js": "./dist/*.js"
|
|
77
81
|
},
|