hoomanjs 1.29.2 → 1.30.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 +216 -69
- package/dist/acp/acp-agent.d.ts +5 -5
- package/dist/acp/acp-agent.js +55 -54
- package/dist/acp/acp-agent.js.map +1 -1
- package/dist/acp/approvals.d.ts +3 -3
- package/dist/acp/approvals.js +73 -115
- package/dist/acp/approvals.js.map +1 -1
- package/dist/acp/sessions/options.js +11 -25
- package/dist/acp/sessions/options.js.map +1 -1
- package/dist/acp/utils/tool-kind.js +1 -5
- package/dist/acp/utils/tool-kind.js.map +1 -1
- package/dist/chat/app.d.ts +5 -1
- package/dist/chat/app.js +322 -202
- package/dist/chat/app.js.map +1 -1
- package/dist/chat/approvals.d.ts +4 -3
- package/dist/chat/approvals.js +11 -45
- package/dist/chat/approvals.js.map +1 -1
- package/dist/chat/components/ChatMessage.d.ts +1 -2
- package/dist/chat/components/ChatMessage.js +4 -5
- package/dist/chat/components/ChatMessage.js.map +1 -1
- package/dist/chat/components/EmptyChatBanner.js +2 -3
- package/dist/chat/components/EmptyChatBanner.js.map +1 -1
- package/dist/chat/components/StatusBar.js +6 -2
- package/dist/chat/components/StatusBar.js.map +1 -1
- package/dist/chat/components/ThoughtEvent.d.ts +6 -0
- package/dist/chat/components/ThoughtEvent.js +30 -0
- package/dist/chat/components/ThoughtEvent.js.map +1 -0
- package/dist/chat/components/ToolEvent.js +1 -1
- package/dist/chat/components/ToolEvent.js.map +1 -1
- package/dist/chat/components/Transcript.d.ts +7 -2
- package/dist/chat/components/Transcript.js +6 -2
- package/dist/chat/components/Transcript.js.map +1 -1
- package/dist/chat/components/markdown/BlockRenderer.js +7 -7
- package/dist/chat/components/markdown/BlockRenderer.js.map +1 -1
- package/dist/chat/components/markdown/MarkdownMessage.js +1 -1
- package/dist/chat/components/markdown/MarkdownMessage.js.map +1 -1
- package/dist/chat/components/shared.js +2 -0
- package/dist/chat/components/shared.js.map +1 -1
- package/dist/chat/index.d.ts +4 -0
- package/dist/chat/index.js +17 -3
- package/dist/chat/index.js.map +1 -1
- package/dist/chat/steering.d.ts +20 -0
- package/dist/chat/steering.js +67 -0
- package/dist/chat/steering.js.map +1 -0
- package/dist/chat/types.d.ts +5 -1
- package/dist/cli.js +91 -13
- package/dist/cli.js.map +1 -1
- package/dist/configure/app.d.ts +1 -1
- package/dist/configure/app.js +581 -303
- package/dist/configure/app.js.map +1 -1
- package/dist/configure/components/MenuScreen.d.ts +4 -2
- package/dist/configure/components/MenuScreen.js +33 -6
- package/dist/configure/components/MenuScreen.js.map +1 -1
- package/dist/configure/components/SelectMenuItem.d.ts +1 -0
- package/dist/configure/components/SelectMenuItem.js +19 -10
- package/dist/configure/components/SelectMenuItem.js.map +1 -1
- package/dist/configure/index.js +4 -2
- package/dist/configure/index.js.map +1 -1
- package/dist/configure/types.d.ts +14 -12
- package/dist/configure/utils.d.ts +2 -0
- package/dist/configure/utils.js +21 -2
- package/dist/configure/utils.js.map +1 -1
- package/dist/core/agent/index.d.ts +3 -3
- package/dist/core/agent/index.js +20 -25
- package/dist/core/agent/index.js.map +1 -1
- package/dist/core/agent/mode-aware-tool-registry.js +2 -1
- package/dist/core/agent/mode-aware-tool-registry.js.map +1 -1
- package/dist/core/approvals/intervention.d.ts +34 -0
- package/dist/core/approvals/intervention.js +94 -0
- package/dist/core/approvals/intervention.js.map +1 -0
- package/dist/core/config.d.ts +49 -28
- package/dist/core/config.js +85 -26
- package/dist/core/config.js.map +1 -1
- package/dist/core/context/index.d.ts +11 -2
- package/dist/core/context/index.js +54 -4
- package/dist/core/context/index.js.map +1 -1
- package/dist/core/context/model-extractor.d.ts +13 -0
- package/dist/core/context/model-extractor.js +98 -0
- package/dist/core/context/model-extractor.js.map +1 -0
- package/dist/core/index.d.ts +6 -2
- package/dist/core/index.js +6 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/mcp/config.d.ts +28 -0
- package/dist/core/mcp/index.d.ts +5 -3
- package/dist/core/mcp/index.js +4 -2
- package/dist/core/mcp/index.js.map +1 -1
- package/dist/core/mcp/manager.d.ts +14 -1
- package/dist/core/mcp/manager.js +76 -4
- package/dist/core/mcp/manager.js.map +1 -1
- package/dist/core/mcp/oauth/callback-server.d.ts +16 -0
- package/dist/core/mcp/oauth/callback-server.js +134 -0
- package/dist/core/mcp/oauth/callback-server.js.map +1 -0
- package/dist/core/mcp/oauth/identity.d.ts +9 -0
- package/dist/core/mcp/oauth/identity.js +31 -0
- package/dist/core/mcp/oauth/identity.js.map +1 -0
- package/dist/core/mcp/oauth/index.d.ts +11 -0
- package/dist/core/mcp/oauth/index.js +15 -0
- package/dist/core/mcp/oauth/index.js.map +1 -0
- package/dist/core/mcp/oauth/provider.d.ts +43 -0
- package/dist/core/mcp/oauth/provider.js +203 -0
- package/dist/core/mcp/oauth/provider.js.map +1 -0
- package/dist/core/mcp/oauth/service.d.ts +29 -0
- package/dist/core/mcp/oauth/service.js +139 -0
- package/dist/core/mcp/oauth/service.js.map +1 -0
- package/dist/core/mcp/oauth/store.d.ts +14 -0
- package/dist/core/mcp/oauth/store.js +86 -0
- package/dist/core/mcp/oauth/store.js.map +1 -0
- package/dist/core/mcp/oauth/types.d.ts +87 -0
- package/dist/core/mcp/oauth/types.js +45 -0
- package/dist/core/mcp/oauth/types.js.map +1 -0
- package/dist/core/mcp/types.d.ts +56 -0
- package/dist/core/mcp/types.js +3 -0
- package/dist/core/mcp/types.js.map +1 -1
- package/dist/core/memory/file-store.d.ts +24 -0
- package/dist/core/memory/file-store.js +151 -0
- package/dist/core/memory/file-store.js.map +1 -0
- package/dist/core/memory/index.d.ts +2 -5
- package/dist/core/memory/index.js +2 -3
- package/dist/core/memory/index.js.map +1 -1
- package/dist/core/memory/runtime.d.ts +4 -0
- package/dist/core/memory/runtime.js +37 -0
- package/dist/core/memory/runtime.js.map +1 -0
- package/dist/core/models/anthropic.js +24 -1
- package/dist/core/models/anthropic.js.map +1 -1
- package/dist/core/models/moonshot.js +33 -1
- package/dist/core/models/moonshot.js.map +1 -1
- package/dist/core/modes/definitions.d.ts +19 -0
- package/dist/core/modes/definitions.js +99 -0
- package/dist/core/modes/definitions.js.map +1 -0
- package/dist/core/modes/index.d.ts +3 -0
- package/dist/core/modes/index.js +4 -0
- package/dist/core/modes/index.js.map +1 -0
- package/dist/core/modes/registry.d.ts +9 -0
- package/dist/core/modes/registry.js +57 -0
- package/dist/core/modes/registry.js.map +1 -0
- package/dist/core/modes/schema.d.ts +5 -0
- package/dist/core/modes/schema.js +6 -0
- package/dist/core/modes/schema.js.map +1 -0
- package/dist/core/prompts/agents/research.md +8 -8
- package/dist/core/prompts/bundled.d.ts +3 -0
- package/dist/core/prompts/bundled.js +14 -0
- package/dist/core/prompts/bundled.js.map +1 -0
- package/dist/core/prompts/environment.d.ts +0 -1
- package/dist/core/prompts/environment.js +0 -2
- package/dist/core/prompts/environment.js.map +1 -1
- package/dist/core/prompts/index.d.ts +1 -4
- package/dist/core/prompts/index.js +1 -7
- package/dist/core/prompts/index.js.map +1 -1
- package/dist/core/prompts/modes/agent.md +3 -0
- package/dist/core/prompts/modes/ask.md +5 -3
- package/dist/core/prompts/modes/plan.md +2 -2
- package/dist/core/prompts/session-mode-appendix.d.ts +3 -9
- package/dist/core/prompts/session-mode-appendix.js +32 -69
- package/dist/core/prompts/session-mode-appendix.js.map +1 -1
- package/dist/core/prompts/static/environment.md +2 -2
- package/dist/core/prompts/static/init.md +25 -0
- package/dist/core/prompts/static/memory.md +9 -123
- package/dist/core/prompts/static/planning.md +1 -1
- package/dist/core/prompts/static/skills.md +6 -5
- package/dist/core/prompts/static/subagents.md +2 -2
- package/dist/core/prompts/static/web-search.md +2 -1
- package/dist/core/prompts/system.js +8 -22
- package/dist/core/prompts/system.js.map +1 -1
- package/dist/core/skills/built-in/hooman-config/SKILL.md +105 -32
- package/dist/core/skills/built-in/hooman-skills/SKILL.md +1 -1
- package/dist/core/skills/index.d.ts +1 -0
- package/dist/core/skills/index.js +1 -0
- package/dist/core/skills/index.js.map +1 -1
- package/dist/core/skills/plugin.d.ts +7 -0
- package/dist/core/skills/plugin.js +40 -0
- package/dist/core/skills/plugin.js.map +1 -0
- package/dist/core/state/agent-app-state.d.ts +1 -1
- package/dist/core/state/agent-app-state.js +1 -1
- package/dist/core/state/session-mode.d.ts +2 -9
- package/dist/core/state/session-mode.js +4 -12
- package/dist/core/state/session-mode.js.map +1 -1
- package/dist/core/state/tool-approvals.d.ts +4 -8
- package/dist/core/state/tool-approvals.js +14 -76
- package/dist/core/state/tool-approvals.js.map +1 -1
- package/dist/core/subagents/index.d.ts +3 -0
- package/dist/core/subagents/index.js +4 -0
- package/dist/core/subagents/index.js.map +1 -0
- package/dist/core/subagents/research.d.ts +16 -0
- package/dist/core/subagents/research.js +58 -0
- package/dist/core/subagents/research.js.map +1 -0
- package/dist/core/{agents → subagents}/runner.d.ts +6 -5
- package/dist/core/{agents → subagents}/runner.js +8 -10
- package/dist/core/subagents/runner.js.map +1 -0
- package/dist/core/{agents/tools.d.ts → subagents/tool.d.ts} +6 -6
- package/dist/core/{agents/tools.js → subagents/tool.js} +14 -16
- package/dist/core/subagents/tool.js.map +1 -0
- package/dist/core/tools/plan.js +2 -6
- package/dist/core/tools/plan.js.map +1 -1
- package/dist/core/tools/time.js +1 -1
- package/dist/core/tools/time.js.map +1 -1
- package/dist/core/utils/browser.d.ts +1 -0
- package/dist/core/utils/browser.js +25 -0
- package/dist/core/utils/browser.js.map +1 -0
- package/dist/core/utils/paths.d.ts +2 -4
- package/dist/core/utils/paths.js +2 -4
- package/dist/core/utils/paths.js.map +1 -1
- package/dist/daemon/approvals.d.ts +2 -2
- package/dist/daemon/approvals.js +51 -56
- package/dist/daemon/approvals.js.map +1 -1
- package/dist/daemon/index.js +9 -6
- package/dist/daemon/index.js.map +1 -1
- package/dist/exec/approvals.d.ts +2 -4
- package/dist/exec/approvals.js +16 -48
- package/dist/exec/approvals.js.map +1 -1
- package/dist/index.d.ts +13 -18
- package/dist/index.js +9 -11
- package/dist/index.js.map +1 -1
- package/package.json +5 -18
- package/dist/chat/components/ScrollView.d.ts +0 -106
- package/dist/chat/components/ScrollView.js +0 -80
- package/dist/chat/components/ScrollView.js.map +0 -1
- package/dist/chat/components/TranscriptViewport.d.ts +0 -9
- package/dist/chat/components/TranscriptViewport.js +0 -124
- package/dist/chat/components/TranscriptViewport.js.map +0 -1
- package/dist/core/agents/definitions.d.ts +0 -12
- package/dist/core/agents/definitions.js +0 -20
- package/dist/core/agents/definitions.js.map +0 -1
- package/dist/core/agents/index.d.ts +0 -4
- package/dist/core/agents/index.js +0 -5
- package/dist/core/agents/index.js.map +0 -1
- package/dist/core/agents/registry.d.ts +0 -5
- package/dist/core/agents/registry.js +0 -84
- package/dist/core/agents/registry.js.map +0 -1
- package/dist/core/agents/runner.js.map +0 -1
- package/dist/core/agents/tools.js.map +0 -1
- package/dist/core/inference/embedder.d.ts +0 -26
- package/dist/core/inference/embedder.js +0 -85
- package/dist/core/inference/embedder.js.map +0 -1
- package/dist/core/inference/index.d.ts +0 -9
- package/dist/core/inference/index.js +0 -13
- package/dist/core/inference/index.js.map +0 -1
- package/dist/core/inference/loader.d.ts +0 -16
- package/dist/core/inference/loader.js +0 -129
- package/dist/core/inference/loader.js.map +0 -1
- package/dist/core/inference/reranker.d.ts +0 -28
- package/dist/core/inference/reranker.js +0 -66
- package/dist/core/inference/reranker.js.map +0 -1
- package/dist/core/memory/brain.d.ts +0 -25
- package/dist/core/memory/brain.js +0 -137
- package/dist/core/memory/brain.js.map +0 -1
- package/dist/core/memory/database.d.ts +0 -4
- package/dist/core/memory/database.js +0 -87
- package/dist/core/memory/database.js.map +0 -1
- package/dist/core/memory/tools.d.ts +0 -16
- package/dist/core/memory/tools.js +0 -110
- package/dist/core/memory/tools.js.map +0 -1
- package/dist/core/memory/types.d.ts +0 -11
- package/dist/core/memory/types.js +0 -2
- package/dist/core/memory/types.js.map +0 -1
- package/dist/core/prompts/skills.d.ts +0 -15
- package/dist/core/prompts/skills.js +0 -92
- package/dist/core/prompts/skills.js.map +0 -1
- package/dist/core/prompts/static/wiki.md +0 -25
- package/dist/core/wiki/converters.d.ts +0 -12
- package/dist/core/wiki/converters.js +0 -73
- package/dist/core/wiki/converters.js.map +0 -1
- package/dist/core/wiki/database.d.ts +0 -39
- package/dist/core/wiki/database.js +0 -177
- package/dist/core/wiki/database.js.map +0 -1
- package/dist/core/wiki/index.d.ts +0 -7
- package/dist/core/wiki/index.js +0 -5
- package/dist/core/wiki/index.js.map +0 -1
- package/dist/core/wiki/storage.d.ts +0 -38
- package/dist/core/wiki/storage.js +0 -206
- package/dist/core/wiki/storage.js.map +0 -1
- package/dist/core/wiki/tools.d.ts +0 -5
- package/dist/core/wiki/tools.js +0 -32
- package/dist/core/wiki/tools.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/core/mcp/manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/core/mcp/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type CallbackResult = {
|
|
2
|
+
code: string;
|
|
3
|
+
state: string;
|
|
4
|
+
};
|
|
5
|
+
export type CallbackServer = {
|
|
6
|
+
redirectUri: string;
|
|
7
|
+
waitForCode: (options?: {
|
|
8
|
+
signal?: AbortSignal;
|
|
9
|
+
timeoutMs?: number;
|
|
10
|
+
}) => Promise<CallbackResult>;
|
|
11
|
+
close: () => Promise<void>;
|
|
12
|
+
};
|
|
13
|
+
export declare function startCallbackServer(options?: {
|
|
14
|
+
port?: number;
|
|
15
|
+
path?: string;
|
|
16
|
+
}): Promise<CallbackServer>;
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { createServer, } from "node:http";
|
|
2
|
+
const CALLBACK_HOST = "127.0.0.1";
|
|
3
|
+
const DEFAULT_CALLBACK_PATH = "/mcp/oauth/callback";
|
|
4
|
+
const DEFAULT_TIMEOUT_MS = 5 * 60 * 1000;
|
|
5
|
+
export async function startCallbackServer(options = {}) {
|
|
6
|
+
const callbackPath = normalizePath(options.path);
|
|
7
|
+
let pending;
|
|
8
|
+
let timeout;
|
|
9
|
+
const server = createServer((req, res) => {
|
|
10
|
+
void handleRequest(req, res, callbackPath, pending, () => {
|
|
11
|
+
pending = undefined;
|
|
12
|
+
clearPendingTimeout(timeout);
|
|
13
|
+
timeout = undefined;
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
const port = await listen(server, options.port);
|
|
17
|
+
const redirectUri = `http://${CALLBACK_HOST}:${port}${callbackPath}`;
|
|
18
|
+
return {
|
|
19
|
+
redirectUri,
|
|
20
|
+
waitForCode: ({ signal, timeoutMs = DEFAULT_TIMEOUT_MS } = {}) => new Promise((resolve, reject) => {
|
|
21
|
+
pending = { resolve, reject };
|
|
22
|
+
if (signal) {
|
|
23
|
+
const onAbort = () => {
|
|
24
|
+
cleanup();
|
|
25
|
+
reject(new Error("OAuth callback aborted."));
|
|
26
|
+
};
|
|
27
|
+
if (signal.aborted) {
|
|
28
|
+
onAbort();
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
32
|
+
}
|
|
33
|
+
timeout = setTimeout(() => {
|
|
34
|
+
cleanup();
|
|
35
|
+
reject(new Error("OAuth callback timed out."));
|
|
36
|
+
}, timeoutMs);
|
|
37
|
+
}),
|
|
38
|
+
close: async () => {
|
|
39
|
+
cleanup();
|
|
40
|
+
await closeServer(server);
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
function cleanup() {
|
|
44
|
+
clearPendingTimeout(timeout);
|
|
45
|
+
timeout = undefined;
|
|
46
|
+
if (pending) {
|
|
47
|
+
pending.reject(new Error("OAuth callback server closed."));
|
|
48
|
+
pending = undefined;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
async function handleRequest(req, res, callbackPath, pending, complete) {
|
|
53
|
+
const url = new URL(req.url ?? "/", "http://127.0.0.1");
|
|
54
|
+
if (url.pathname !== callbackPath) {
|
|
55
|
+
res.writeHead(404, { "Content-Type": "text/plain; charset=utf-8" });
|
|
56
|
+
res.end("Not found");
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const state = url.searchParams.get("state");
|
|
60
|
+
const code = url.searchParams.get("code");
|
|
61
|
+
const error = url.searchParams.get("error");
|
|
62
|
+
const errorDescription = url.searchParams.get("error_description");
|
|
63
|
+
if (error) {
|
|
64
|
+
res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" });
|
|
65
|
+
res.end(renderErrorPage(errorDescription || error));
|
|
66
|
+
pending?.reject(new Error(`OAuth error: ${errorDescription || error}`));
|
|
67
|
+
complete();
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
if (!state || !code) {
|
|
71
|
+
res.writeHead(400, { "Content-Type": "text/html; charset=utf-8" });
|
|
72
|
+
res.end(renderErrorPage("Missing required code or state parameter."));
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" });
|
|
76
|
+
res.end(renderSuccessPage());
|
|
77
|
+
pending?.resolve({ code, state });
|
|
78
|
+
complete();
|
|
79
|
+
}
|
|
80
|
+
function renderSuccessPage() {
|
|
81
|
+
return `<!doctype html><html><body><h1>Authentication complete</h1><p>You can close this window and return to Hooman.</p></body></html>`;
|
|
82
|
+
}
|
|
83
|
+
function renderErrorPage(message) {
|
|
84
|
+
return `<!doctype html><html><body><h1>Authentication failed</h1><p>${escapeHtml(message)}</p></body></html>`;
|
|
85
|
+
}
|
|
86
|
+
function escapeHtml(value) {
|
|
87
|
+
return value
|
|
88
|
+
.replaceAll("&", "&")
|
|
89
|
+
.replaceAll("<", "<")
|
|
90
|
+
.replaceAll(">", ">")
|
|
91
|
+
.replaceAll('"', """)
|
|
92
|
+
.replaceAll("'", "'");
|
|
93
|
+
}
|
|
94
|
+
function clearPendingTimeout(timeout) {
|
|
95
|
+
if (timeout) {
|
|
96
|
+
clearTimeout(timeout);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
function normalizePath(value) {
|
|
100
|
+
const trimmed = value?.trim();
|
|
101
|
+
if (!trimmed) {
|
|
102
|
+
return DEFAULT_CALLBACK_PATH;
|
|
103
|
+
}
|
|
104
|
+
return trimmed.startsWith("/") ? trimmed : `/${trimmed}`;
|
|
105
|
+
}
|
|
106
|
+
async function listen(server, preferredPort) {
|
|
107
|
+
return new Promise((resolve, reject) => {
|
|
108
|
+
server.once("error", reject);
|
|
109
|
+
server.listen(preferredPort ?? 0, CALLBACK_HOST, () => {
|
|
110
|
+
server.off("error", reject);
|
|
111
|
+
const address = server.address();
|
|
112
|
+
if (!address || typeof address === "string") {
|
|
113
|
+
reject(new Error("Unable to determine OAuth callback port."));
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
resolve(address.port);
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
async function closeServer(server) {
|
|
121
|
+
if (!server.listening) {
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
await new Promise((resolve, reject) => {
|
|
125
|
+
server.close((error) => {
|
|
126
|
+
if (error) {
|
|
127
|
+
reject(error);
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
resolve();
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=callback-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callback-server.js","sourceRoot":"","sources":["../../../../src/core/mcp/oauth/callback-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Sse, StreamableHttp } from "../types.js";
|
|
2
|
+
export type OAuthRemoteTransport = StreamableHttp | Sse;
|
|
3
|
+
export declare function canonicalizeRemoteServerUrl(input: string | URL): string;
|
|
4
|
+
export declare function createRemoteTransportFingerprint(name: string, transport: OAuthRemoteTransport): string;
|
|
5
|
+
export declare function createRemoteTransportIdentity(name: string, transport: OAuthRemoteTransport): {
|
|
6
|
+
key: string;
|
|
7
|
+
serverName: string;
|
|
8
|
+
serverUrl: string;
|
|
9
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
export function canonicalizeRemoteServerUrl(input) {
|
|
3
|
+
const url = input instanceof URL ? new URL(input.toString()) : new URL(input);
|
|
4
|
+
url.hash = "";
|
|
5
|
+
url.username = "";
|
|
6
|
+
url.password = "";
|
|
7
|
+
if ((url.protocol === "https:" && url.port === "443") ||
|
|
8
|
+
(url.protocol === "http:" && url.port === "80")) {
|
|
9
|
+
url.port = "";
|
|
10
|
+
}
|
|
11
|
+
if (url.pathname !== "/") {
|
|
12
|
+
url.pathname = url.pathname.replace(/\/+$/, "") || "/";
|
|
13
|
+
}
|
|
14
|
+
return url.toString();
|
|
15
|
+
}
|
|
16
|
+
export function createRemoteTransportFingerprint(name, transport) {
|
|
17
|
+
const payload = JSON.stringify({
|
|
18
|
+
name,
|
|
19
|
+
type: transport.type,
|
|
20
|
+
url: canonicalizeRemoteServerUrl(transport.url),
|
|
21
|
+
});
|
|
22
|
+
return createHash("sha256").update(payload).digest("hex");
|
|
23
|
+
}
|
|
24
|
+
export function createRemoteTransportIdentity(name, transport) {
|
|
25
|
+
return {
|
|
26
|
+
key: createRemoteTransportFingerprint(name, transport),
|
|
27
|
+
serverName: name,
|
|
28
|
+
serverUrl: canonicalizeRemoteServerUrl(transport.url),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../../../src/core/mcp/oauth/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKzC,MAAM,UAAU,2BAA2B,CAAC,KAAmB;IAC7D,MAAM,GAAG,GAAG,KAAK,YAAY,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAC9E,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;IACd,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;IAClB,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;IAClB,IACE,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC;QACjD,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,EAC/C,CAAC;QACD,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;IAChB,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;QACzB,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;IACzD,CAAC;IACD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,IAAY,EACZ,SAA+B;IAE/B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,IAAI;QACJ,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,GAAG,EAAE,2BAA2B,CAAC,SAAS,CAAC,GAAG,CAAC;KAChD,CAAC,CAAC;IACH,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,IAAY,EACZ,SAA+B;IAM/B,OAAO;QACL,GAAG,EAAE,gCAAgC,CAAC,IAAI,EAAE,SAAS,CAAC;QACtD,UAAU,EAAE,IAAI;QAChB,SAAS,EAAE,2BAA2B,CAAC,SAAS,CAAC,GAAG,CAAC;KACtD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Service } from "./service.js";
|
|
2
|
+
import { Store } from "./store.js";
|
|
3
|
+
export { startCallbackServer, type CallbackResult } from "./callback-server.js";
|
|
4
|
+
export { canonicalizeRemoteServerUrl, createRemoteTransportFingerprint, createRemoteTransportIdentity, type OAuthRemoteTransport, } from "./identity.js";
|
|
5
|
+
export { HoomanMcpOAuthProvider } from "./provider.js";
|
|
6
|
+
export { Service as McpOAuthService, type BeginAuthorizationResult, } from "./service.js";
|
|
7
|
+
export { Store as McpOAuthStore } from "./store.js";
|
|
8
|
+
export { McpOAuthConfigSchema, StoredMcpOAuthClientSchema, StoredMcpOAuthDiscoverySchema, StoredMcpOAuthEntrySchema, StoredMcpOAuthFileSchema, StoredMcpOAuthTokensSchema, } from "./types.js";
|
|
9
|
+
export type { McpOAuthConfig, StoredMcpOAuthClient, StoredMcpOAuthDiscovery, StoredMcpOAuthEntry, StoredMcpOAuthFile, StoredMcpOAuthTokens, } from "./types.js";
|
|
10
|
+
export declare function createMcpOAuthStore(): Store;
|
|
11
|
+
export declare function createMcpOAuthService(store?: Store): Service;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Service } from "./service.js";
|
|
2
|
+
import { Store } from "./store.js";
|
|
3
|
+
export { startCallbackServer } from "./callback-server.js";
|
|
4
|
+
export { canonicalizeRemoteServerUrl, createRemoteTransportFingerprint, createRemoteTransportIdentity, } from "./identity.js";
|
|
5
|
+
export { HoomanMcpOAuthProvider } from "./provider.js";
|
|
6
|
+
export { Service as McpOAuthService, } from "./service.js";
|
|
7
|
+
export { Store as McpOAuthStore } from "./store.js";
|
|
8
|
+
export { McpOAuthConfigSchema, StoredMcpOAuthClientSchema, StoredMcpOAuthDiscoverySchema, StoredMcpOAuthEntrySchema, StoredMcpOAuthFileSchema, StoredMcpOAuthTokensSchema, } from "./types.js";
|
|
9
|
+
export function createMcpOAuthStore() {
|
|
10
|
+
return new Store();
|
|
11
|
+
}
|
|
12
|
+
export function createMcpOAuthService(store) {
|
|
13
|
+
return new Service({ store });
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/mcp/oauth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,mBAAmB,EAAuB,MAAM,sBAAsB,CAAC;AAChF,OAAO,EACL,2BAA2B,EAC3B,gCAAgC,EAChC,6BAA6B,GAE9B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EACL,OAAO,IAAI,eAAe,GAE3B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,IAAI,aAAa,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,6BAA6B,EAC7B,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,YAAY,CAAC;AAUpB,MAAM,UAAU,mBAAmB;IACjC,OAAO,IAAI,KAAK,EAAE,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,OAAO,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { OAuthClientProvider, OAuthDiscoveryState } from "@modelcontextprotocol/sdk/client/auth.js";
|
|
2
|
+
import type { OAuthClientInformationMixed, OAuthClientMetadata, OAuthTokens } from "@modelcontextprotocol/sdk/shared/auth.js";
|
|
3
|
+
import type { Sse, StreamableHttp } from "../types.js";
|
|
4
|
+
import { Store } from "./store.js";
|
|
5
|
+
import type { McpOAuthConfig } from "./types.js";
|
|
6
|
+
export type ProviderOptions = {
|
|
7
|
+
serverName: string;
|
|
8
|
+
transport: StreamableHttp | Sse;
|
|
9
|
+
store?: Store;
|
|
10
|
+
clientLabel?: string;
|
|
11
|
+
};
|
|
12
|
+
export declare class HoomanMcpOAuthProvider implements OAuthClientProvider {
|
|
13
|
+
private readonly options;
|
|
14
|
+
private readonly store;
|
|
15
|
+
private readonly clientLabel;
|
|
16
|
+
private readonly identity;
|
|
17
|
+
private _redirectUrl?;
|
|
18
|
+
private _codeVerifier?;
|
|
19
|
+
private _state?;
|
|
20
|
+
private _authorizationUrl?;
|
|
21
|
+
constructor(options: ProviderOptions);
|
|
22
|
+
get key(): string;
|
|
23
|
+
get redirectUrl(): string;
|
|
24
|
+
get clientMetadata(): OAuthClientMetadata;
|
|
25
|
+
setRedirectUrl(url: string | URL): void;
|
|
26
|
+
takeAuthorizationUrl(): URL | undefined;
|
|
27
|
+
expectedState(): string | undefined;
|
|
28
|
+
resetFlow(): void;
|
|
29
|
+
state(): string;
|
|
30
|
+
clientInformation(): Promise<OAuthClientInformationMixed | undefined>;
|
|
31
|
+
saveClientInformation(clientInformation: OAuthClientInformationMixed): Promise<void>;
|
|
32
|
+
tokens(): Promise<OAuthTokens | undefined>;
|
|
33
|
+
saveTokens(tokens: OAuthTokens): Promise<void>;
|
|
34
|
+
redirectToAuthorization(authorizationUrl: URL): Promise<void>;
|
|
35
|
+
saveCodeVerifier(codeVerifier: string): void;
|
|
36
|
+
codeVerifier(): string;
|
|
37
|
+
saveDiscoveryState(state: OAuthDiscoveryState): Promise<void>;
|
|
38
|
+
discoveryState(): Promise<OAuthDiscoveryState | undefined>;
|
|
39
|
+
invalidateCredentials(scope: "all" | "client" | "tokens" | "verifier" | "discovery"): Promise<void>;
|
|
40
|
+
oauthConfig(): McpOAuthConfig | undefined;
|
|
41
|
+
private readEntry;
|
|
42
|
+
private writeEntry;
|
|
43
|
+
}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import { randomBytes } from "node:crypto";
|
|
2
|
+
import { createRemoteTransportIdentity } from "./identity.js";
|
|
3
|
+
import { Store } from "./store.js";
|
|
4
|
+
const DEFAULT_REDIRECT_URI = "http://127.0.0.1:19876/mcp/oauth/callback";
|
|
5
|
+
export class HoomanMcpOAuthProvider {
|
|
6
|
+
options;
|
|
7
|
+
store;
|
|
8
|
+
clientLabel;
|
|
9
|
+
identity;
|
|
10
|
+
_redirectUrl;
|
|
11
|
+
_codeVerifier;
|
|
12
|
+
_state;
|
|
13
|
+
_authorizationUrl;
|
|
14
|
+
constructor(options) {
|
|
15
|
+
this.options = options;
|
|
16
|
+
this.store = options.store ?? new Store();
|
|
17
|
+
this.clientLabel = options.clientLabel ?? `Hooman (${options.serverName})`;
|
|
18
|
+
this.identity = createRemoteTransportIdentity(options.serverName, options.transport);
|
|
19
|
+
}
|
|
20
|
+
get key() {
|
|
21
|
+
return this.identity.key;
|
|
22
|
+
}
|
|
23
|
+
get redirectUrl() {
|
|
24
|
+
return (this._redirectUrl ??
|
|
25
|
+
this.options.transport.oauth?.redirectUri ??
|
|
26
|
+
DEFAULT_REDIRECT_URI);
|
|
27
|
+
}
|
|
28
|
+
get clientMetadata() {
|
|
29
|
+
return {
|
|
30
|
+
redirect_uris: [this.redirectUrl],
|
|
31
|
+
token_endpoint_auth_method: this.options.transport.oauth?.clientSecret
|
|
32
|
+
? "client_secret_post"
|
|
33
|
+
: "none",
|
|
34
|
+
grant_types: ["authorization_code", "refresh_token"],
|
|
35
|
+
response_types: ["code"],
|
|
36
|
+
client_name: this.clientLabel,
|
|
37
|
+
...(this.options.transport.oauth?.scopes?.length
|
|
38
|
+
? { scope: this.options.transport.oauth.scopes.join(" ") }
|
|
39
|
+
: {}),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
setRedirectUrl(url) {
|
|
43
|
+
this._redirectUrl = String(url);
|
|
44
|
+
}
|
|
45
|
+
takeAuthorizationUrl() {
|
|
46
|
+
const url = this._authorizationUrl;
|
|
47
|
+
this._authorizationUrl = undefined;
|
|
48
|
+
return url;
|
|
49
|
+
}
|
|
50
|
+
expectedState() {
|
|
51
|
+
return this._state;
|
|
52
|
+
}
|
|
53
|
+
resetFlow() {
|
|
54
|
+
this._redirectUrl = undefined;
|
|
55
|
+
this._codeVerifier = undefined;
|
|
56
|
+
this._state = undefined;
|
|
57
|
+
this._authorizationUrl = undefined;
|
|
58
|
+
}
|
|
59
|
+
state() {
|
|
60
|
+
this._state ??= randomBytes(16).toString("hex");
|
|
61
|
+
return this._state;
|
|
62
|
+
}
|
|
63
|
+
async clientInformation() {
|
|
64
|
+
const oauth = this.options.transport.oauth;
|
|
65
|
+
if (oauth?.clientId) {
|
|
66
|
+
return {
|
|
67
|
+
client_id: oauth.clientId,
|
|
68
|
+
client_secret: oauth.clientSecret,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
const entry = await this.store.get(this.key);
|
|
72
|
+
if (!entry?.client) {
|
|
73
|
+
return undefined;
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
client_id: entry.client.clientId,
|
|
77
|
+
client_secret: entry.client.clientSecret,
|
|
78
|
+
client_id_issued_at: entry.client.clientIdIssuedAt,
|
|
79
|
+
client_secret_expires_at: entry.client.clientSecretExpiresAt,
|
|
80
|
+
...(entry.client.redirectUris
|
|
81
|
+
? { redirect_uris: entry.client.redirectUris }
|
|
82
|
+
: {}),
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
async saveClientInformation(clientInformation) {
|
|
86
|
+
const existing = await this.readEntry();
|
|
87
|
+
const redirectUris = "redirect_uris" in clientInformation
|
|
88
|
+
? [...clientInformation.redirect_uris]
|
|
89
|
+
: existing?.client?.redirectUris;
|
|
90
|
+
await this.writeEntry({
|
|
91
|
+
...existing,
|
|
92
|
+
client: {
|
|
93
|
+
clientId: clientInformation.client_id,
|
|
94
|
+
clientSecret: clientInformation.client_secret,
|
|
95
|
+
clientIdIssuedAt: clientInformation.client_id_issued_at,
|
|
96
|
+
clientSecretExpiresAt: clientInformation.client_secret_expires_at,
|
|
97
|
+
...(redirectUris ? { redirectUris } : {}),
|
|
98
|
+
},
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
async tokens() {
|
|
102
|
+
const entry = await this.store.get(this.key);
|
|
103
|
+
if (!entry?.tokens) {
|
|
104
|
+
return undefined;
|
|
105
|
+
}
|
|
106
|
+
return {
|
|
107
|
+
access_token: entry.tokens.accessToken,
|
|
108
|
+
token_type: entry.tokens.tokenType ?? "Bearer",
|
|
109
|
+
refresh_token: entry.tokens.refreshToken,
|
|
110
|
+
expires_in: entry.tokens.expiresAt !== undefined
|
|
111
|
+
? Math.max(0, Math.floor((entry.tokens.expiresAt - Date.now()) / 1000))
|
|
112
|
+
: undefined,
|
|
113
|
+
scope: entry.tokens.scope,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
async saveTokens(tokens) {
|
|
117
|
+
const existing = await this.readEntry();
|
|
118
|
+
await this.writeEntry({
|
|
119
|
+
...existing,
|
|
120
|
+
tokens: {
|
|
121
|
+
accessToken: tokens.access_token,
|
|
122
|
+
refreshToken: tokens.refresh_token,
|
|
123
|
+
expiresAt: tokens.expires_in !== undefined
|
|
124
|
+
? Date.now() + tokens.expires_in * 1000
|
|
125
|
+
: undefined,
|
|
126
|
+
scope: tokens.scope,
|
|
127
|
+
tokenType: tokens.token_type,
|
|
128
|
+
},
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
async redirectToAuthorization(authorizationUrl) {
|
|
132
|
+
this._authorizationUrl = authorizationUrl;
|
|
133
|
+
}
|
|
134
|
+
saveCodeVerifier(codeVerifier) {
|
|
135
|
+
this._codeVerifier = codeVerifier;
|
|
136
|
+
}
|
|
137
|
+
codeVerifier() {
|
|
138
|
+
if (!this._codeVerifier) {
|
|
139
|
+
throw new Error("OAuth code verifier is not initialized.");
|
|
140
|
+
}
|
|
141
|
+
return this._codeVerifier;
|
|
142
|
+
}
|
|
143
|
+
async saveDiscoveryState(state) {
|
|
144
|
+
const existing = await this.readEntry();
|
|
145
|
+
await this.writeEntry({
|
|
146
|
+
...existing,
|
|
147
|
+
discovery: {
|
|
148
|
+
authorizationServerUrl: state.authorizationServerUrl,
|
|
149
|
+
resourceMetadataUrl: state.resourceMetadataUrl,
|
|
150
|
+
},
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
async discoveryState() {
|
|
154
|
+
const entry = await this.store.get(this.key);
|
|
155
|
+
if (!entry?.discovery?.authorizationServerUrl) {
|
|
156
|
+
return undefined;
|
|
157
|
+
}
|
|
158
|
+
return {
|
|
159
|
+
authorizationServerUrl: entry.discovery.authorizationServerUrl,
|
|
160
|
+
resourceMetadataUrl: entry.discovery.resourceMetadataUrl,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
async invalidateCredentials(scope) {
|
|
164
|
+
if (scope === "verifier") {
|
|
165
|
+
this._codeVerifier = undefined;
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
if (scope === "all") {
|
|
169
|
+
await this.store.delete(this.key);
|
|
170
|
+
this.resetFlow();
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
const existing = await this.readEntry();
|
|
174
|
+
if (!existing) {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
if (scope === "client") {
|
|
178
|
+
delete existing.client;
|
|
179
|
+
}
|
|
180
|
+
else if (scope === "tokens") {
|
|
181
|
+
delete existing.tokens;
|
|
182
|
+
}
|
|
183
|
+
else if (scope === "discovery") {
|
|
184
|
+
delete existing.discovery;
|
|
185
|
+
}
|
|
186
|
+
await this.writeEntry(existing);
|
|
187
|
+
}
|
|
188
|
+
oauthConfig() {
|
|
189
|
+
return this.options.transport.oauth;
|
|
190
|
+
}
|
|
191
|
+
async readEntry() {
|
|
192
|
+
return this.store.get(this.key);
|
|
193
|
+
}
|
|
194
|
+
async writeEntry(value) {
|
|
195
|
+
await this.store.set(this.key, {
|
|
196
|
+
serverName: this.identity.serverName,
|
|
197
|
+
serverUrl: this.identity.serverUrl,
|
|
198
|
+
updatedAt: Date.now(),
|
|
199
|
+
...value,
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../src/core/mcp/oauth/provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Sse, StreamableHttp } from "../types.js";
|
|
2
|
+
import { HoomanMcpOAuthProvider } from "./provider.js";
|
|
3
|
+
import { Store } from "./store.js";
|
|
4
|
+
export type OAuthRemoteTransport = StreamableHttp | Sse;
|
|
5
|
+
export type ServiceOptions = {
|
|
6
|
+
store?: Store;
|
|
7
|
+
clientLabel?: string;
|
|
8
|
+
};
|
|
9
|
+
export type BeginAuthorizationResult = {
|
|
10
|
+
authorizationUrl: URL;
|
|
11
|
+
complete: (options?: {
|
|
12
|
+
signal?: AbortSignal;
|
|
13
|
+
timeoutMs?: number;
|
|
14
|
+
}) => Promise<void>;
|
|
15
|
+
cancel: () => Promise<void>;
|
|
16
|
+
};
|
|
17
|
+
export declare class Service {
|
|
18
|
+
private readonly store;
|
|
19
|
+
private readonly clientLabel?;
|
|
20
|
+
private readonly providers;
|
|
21
|
+
constructor(options?: ServiceOptions);
|
|
22
|
+
getProvider(serverName: string, transport: OAuthRemoteTransport): HoomanMcpOAuthProvider;
|
|
23
|
+
hasTokens(serverName: string, transport: OAuthRemoteTransport): Promise<boolean>;
|
|
24
|
+
beginAuthorization(serverName: string, transport: OAuthRemoteTransport): Promise<BeginAuthorizationResult>;
|
|
25
|
+
authenticate(serverName: string, transport: OAuthRemoteTransport): Promise<void>;
|
|
26
|
+
logout(serverName: string, transport: OAuthRemoteTransport, scope?: "all" | "client" | "tokens" | "discovery"): Promise<void>;
|
|
27
|
+
status(serverName: string, transport: OAuthRemoteTransport): Promise<"authenticated" | "expired" | "unauthenticated">;
|
|
28
|
+
private createCallbackServer;
|
|
29
|
+
}
|