dexto 1.5.6 → 1.5.7
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 +13 -0
- package/dist/agents/coding-agent/coding-agent.yml +15 -0
- package/dist/agents/coding-agent/skills/code-review.md +46 -0
- package/dist/agents/explore-agent/explore-agent.yml +2 -0
- package/dist/analytics/events.d.ts +1 -1
- package/dist/analytics/events.d.ts.map +1 -1
- package/dist/api/server-hono.d.ts.map +1 -1
- package/dist/api/server-hono.js +55 -10
- package/dist/cli/assets/dexto-logo.svg +31 -0
- package/dist/cli/auth/api-client.d.ts +49 -0
- package/dist/cli/auth/api-client.d.ts.map +1 -0
- package/dist/cli/auth/api-client.js +127 -0
- package/dist/cli/auth/constants.d.ts +23 -0
- package/dist/cli/auth/constants.d.ts.map +1 -0
- package/dist/cli/auth/constants.js +24 -0
- package/dist/cli/auth/index.d.ts +5 -0
- package/dist/cli/auth/index.d.ts.map +1 -0
- package/dist/cli/auth/index.js +6 -0
- package/dist/cli/auth/oauth.d.ts +26 -0
- package/dist/cli/auth/oauth.d.ts.map +1 -0
- package/dist/cli/auth/oauth.js +327 -0
- package/dist/cli/auth/service.d.ts +20 -0
- package/dist/cli/auth/service.d.ts.map +1 -0
- package/dist/cli/auth/service.js +147 -0
- package/dist/cli/commands/auth/index.d.ts +4 -0
- package/dist/cli/commands/auth/index.d.ts.map +1 -0
- package/dist/cli/commands/auth/index.js +4 -0
- package/dist/cli/commands/auth/login.d.ts +9 -0
- package/dist/cli/commands/auth/login.d.ts.map +1 -0
- package/dist/cli/commands/auth/login.js +255 -0
- package/dist/cli/commands/auth/logout.d.ts +5 -0
- package/dist/cli/commands/auth/logout.d.ts.map +1 -0
- package/dist/cli/commands/auth/logout.js +51 -0
- package/dist/cli/commands/auth/status.d.ts +2 -0
- package/dist/cli/commands/auth/status.d.ts.map +1 -0
- package/dist/cli/commands/auth/status.js +22 -0
- package/dist/cli/commands/billing/index.d.ts +2 -0
- package/dist/cli/commands/billing/index.d.ts.map +1 -0
- package/dist/cli/commands/billing/index.js +2 -0
- package/dist/cli/commands/billing/status.d.ts +6 -0
- package/dist/cli/commands/billing/status.d.ts.map +1 -0
- package/dist/cli/commands/billing/status.js +60 -0
- package/dist/cli/commands/index.d.ts +3 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +8 -0
- package/dist/cli/commands/interactive-commands/auth/index.d.ts +12 -0
- package/dist/cli/commands/interactive-commands/auth/index.d.ts.map +1 -0
- package/dist/cli/commands/interactive-commands/auth/index.js +20 -0
- package/dist/cli/commands/interactive-commands/command-parser.d.ts +5 -0
- package/dist/cli/commands/interactive-commands/command-parser.d.ts.map +1 -1
- package/dist/cli/commands/interactive-commands/command-parser.js +6 -0
- package/dist/cli/commands/interactive-commands/commands.d.ts +1 -0
- package/dist/cli/commands/interactive-commands/commands.d.ts.map +1 -1
- package/dist/cli/commands/interactive-commands/commands.js +8 -0
- package/dist/cli/commands/interactive-commands/mcp/index.d.ts +2 -2
- package/dist/cli/commands/interactive-commands/mcp/index.d.ts.map +1 -1
- package/dist/cli/commands/interactive-commands/mcp/index.js +4 -7
- package/dist/cli/commands/interactive-commands/model/index.d.ts +2 -2
- package/dist/cli/commands/interactive-commands/model/index.d.ts.map +1 -1
- package/dist/cli/commands/interactive-commands/model/index.js +4 -7
- package/dist/cli/commands/interactive-commands/plugin/index.d.ts +13 -0
- package/dist/cli/commands/interactive-commands/plugin/index.d.ts.map +1 -0
- package/dist/cli/commands/interactive-commands/plugin/index.js +18 -0
- package/dist/cli/commands/interactive-commands/prompt-commands.d.ts +3 -1
- package/dist/cli/commands/interactive-commands/prompt-commands.d.ts.map +1 -1
- package/dist/cli/commands/interactive-commands/prompt-commands.js +72 -36
- package/dist/cli/commands/plugin.d.ts +161 -0
- package/dist/cli/commands/plugin.d.ts.map +1 -0
- package/dist/cli/commands/plugin.js +376 -0
- package/dist/cli/commands/setup.d.ts +9 -9
- package/dist/cli/commands/setup.d.ts.map +1 -1
- package/dist/cli/commands/setup.js +228 -19
- package/dist/cli/ink-cli/InkCLIRefactored.d.ts.map +1 -1
- package/dist/cli/ink-cli/InkCLIRefactored.js +2 -1
- package/dist/cli/ink-cli/components/ApprovalPrompt.d.ts +1 -1
- package/dist/cli/ink-cli/components/ApprovalPrompt.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/ApprovalPrompt.js +80 -12
- package/dist/cli/ink-cli/components/Footer.d.ts +2 -1
- package/dist/cli/ink-cli/components/Footer.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/Footer.js +6 -2
- package/dist/cli/ink-cli/components/SlashCommandAutocomplete.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/SlashCommandAutocomplete.js +15 -7
- package/dist/cli/ink-cli/components/StatusBar.d.ts +5 -1
- package/dist/cli/ink-cli/components/StatusBar.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/StatusBar.js +2 -2
- package/dist/cli/ink-cli/components/chat/MessageItem.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/chat/MessageItem.js +14 -1
- package/dist/cli/ink-cli/components/modes/AlternateBufferCLI.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/modes/AlternateBufferCLI.js +4 -1
- package/dist/cli/ink-cli/components/modes/StaticCLI.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/modes/StaticCLI.js +4 -1
- package/dist/cli/ink-cli/components/overlays/LogLevelSelector.d.ts +1 -0
- package/dist/cli/ink-cli/components/overlays/LogLevelSelector.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/overlays/LogLevelSelector.js +30 -19
- package/dist/cli/ink-cli/components/overlays/MarketplaceAddPrompt.d.ts +20 -0
- package/dist/cli/ink-cli/components/overlays/MarketplaceAddPrompt.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/MarketplaceAddPrompt.js +81 -0
- package/dist/cli/ink-cli/components/overlays/MarketplaceBrowser.d.ts +31 -0
- package/dist/cli/ink-cli/components/overlays/MarketplaceBrowser.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/MarketplaceBrowser.js +297 -0
- package/dist/cli/ink-cli/components/overlays/McpRemoveSelector.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/overlays/McpRemoveSelector.js +7 -1
- package/dist/cli/ink-cli/components/overlays/McpServerActions.d.ts +1 -1
- package/dist/cli/ink-cli/components/overlays/McpServerActions.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/overlays/McpServerActions.js +9 -0
- package/dist/cli/ink-cli/components/overlays/McpServerList.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/overlays/McpServerList.js +9 -2
- package/dist/cli/ink-cli/components/overlays/ModelSelectorRefactored.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/overlays/ModelSelectorRefactored.js +15 -2
- package/dist/cli/ink-cli/components/overlays/PluginActions.d.ts +27 -0
- package/dist/cli/ink-cli/components/overlays/PluginActions.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/PluginActions.js +66 -0
- package/dist/cli/ink-cli/components/overlays/PluginList.d.ts +21 -0
- package/dist/cli/ink-cli/components/overlays/PluginList.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/PluginList.js +70 -0
- package/dist/cli/ink-cli/components/overlays/PluginManager.d.ts +21 -0
- package/dist/cli/ink-cli/components/overlays/PluginManager.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/PluginManager.js +63 -0
- package/dist/cli/ink-cli/components/overlays/PromptList.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/overlays/PromptList.js +4 -1
- package/dist/cli/ink-cli/components/overlays/custom-model-wizard/provider-config.d.ts +2 -1
- package/dist/cli/ink-cli/components/overlays/custom-model-wizard/provider-config.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/overlays/custom-model-wizard/provider-config.js +61 -2
- package/dist/cli/ink-cli/components/renderers/FilePreviewRenderer.d.ts +4 -2
- package/dist/cli/ink-cli/components/renderers/FilePreviewRenderer.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/renderers/FilePreviewRenderer.js +4 -4
- package/dist/cli/ink-cli/containers/InputContainer.d.ts.map +1 -1
- package/dist/cli/ink-cli/containers/InputContainer.js +30 -3
- package/dist/cli/ink-cli/containers/OverlayContainer.d.ts.map +1 -1
- package/dist/cli/ink-cli/containers/OverlayContainer.js +256 -11
- package/dist/cli/ink-cli/hooks/index.d.ts +1 -0
- package/dist/cli/ink-cli/hooks/index.d.ts.map +1 -1
- package/dist/cli/ink-cli/hooks/index.js +1 -0
- package/dist/cli/ink-cli/hooks/useCLIState.d.ts.map +1 -1
- package/dist/cli/ink-cli/hooks/useCLIState.js +2 -0
- package/dist/cli/ink-cli/hooks/useGitBranch.d.ts +13 -0
- package/dist/cli/ink-cli/hooks/useGitBranch.d.ts.map +1 -0
- package/dist/cli/ink-cli/hooks/useGitBranch.js +35 -0
- package/dist/cli/ink-cli/hooks/useInputOrchestrator.d.ts.map +1 -1
- package/dist/cli/ink-cli/hooks/useInputOrchestrator.js +47 -8
- package/dist/cli/ink-cli/services/processStream.d.ts.map +1 -1
- package/dist/cli/ink-cli/services/processStream.js +42 -10
- package/dist/cli/ink-cli/state/initialState.d.ts.map +1 -1
- package/dist/cli/ink-cli/state/initialState.js +2 -0
- package/dist/cli/ink-cli/state/types.d.ts +3 -1
- package/dist/cli/ink-cli/state/types.d.ts.map +1 -1
- package/dist/cli/ink-cli/utils/commandOverlays.d.ts.map +1 -1
- package/dist/cli/ink-cli/utils/commandOverlays.js +1 -0
- package/dist/cli/ink-cli/utils/messageFormatting.d.ts +14 -1
- package/dist/cli/ink-cli/utils/messageFormatting.d.ts.map +1 -1
- package/dist/cli/ink-cli/utils/messageFormatting.js +66 -6
- package/dist/cli/ink-cli/utils/toolUtils.d.ts +11 -0
- package/dist/cli/ink-cli/utils/toolUtils.d.ts.map +1 -1
- package/dist/cli/ink-cli/utils/toolUtils.js +17 -0
- package/dist/cli/mcp/index.d.ts +8 -0
- package/dist/cli/mcp/index.d.ts.map +1 -0
- package/dist/cli/mcp/index.js +7 -0
- package/dist/cli/mcp/oauth-factory.d.ts +6 -0
- package/dist/cli/mcp/oauth-factory.d.ts.map +1 -0
- package/dist/cli/mcp/oauth-factory.js +25 -0
- package/dist/cli/mcp/oauth-provider.d.ts +10 -0
- package/dist/cli/mcp/oauth-provider.d.ts.map +1 -0
- package/dist/cli/mcp/oauth-provider.js +77 -0
- package/dist/cli/mcp/oauth-redirect.d.ts +3 -0
- package/dist/cli/mcp/oauth-redirect.d.ts.map +1 -0
- package/dist/cli/mcp/oauth-redirect.js +4 -0
- package/dist/cli/mcp/oauth-server.d.ts +2 -0
- package/dist/cli/mcp/oauth-server.d.ts.map +1 -0
- package/dist/cli/mcp/oauth-server.js +70 -0
- package/dist/cli/mcp/oauth-store.d.ts +10 -0
- package/dist/cli/mcp/oauth-store.d.ts.map +1 -0
- package/dist/cli/mcp/oauth-store.js +27 -0
- package/dist/cli/mcp/oauth-ui.d.ts +2 -0
- package/dist/cli/mcp/oauth-ui.d.ts.map +1 -0
- package/dist/cli/mcp/oauth-ui.js +12 -0
- package/dist/cli/mcp/oauth-utils.d.ts +2 -0
- package/dist/cli/mcp/oauth-utils.d.ts.map +1 -0
- package/dist/cli/mcp/oauth-utils.js +17 -0
- package/dist/cli/utils/api-key-verification.d.ts.map +1 -1
- package/dist/cli/utils/api-key-verification.js +36 -0
- package/dist/cli/utils/config-validation.d.ts +3 -1
- package/dist/cli/utils/config-validation.d.ts.map +1 -1
- package/dist/cli/utils/config-validation.js +42 -19
- package/dist/cli/utils/dexto-auth-check.d.ts +53 -0
- package/dist/cli/utils/dexto-auth-check.d.ts.map +1 -0
- package/dist/cli/utils/dexto-auth-check.js +104 -0
- package/dist/cli/utils/dexto-setup.d.ts +8 -0
- package/dist/cli/utils/dexto-setup.d.ts.map +1 -0
- package/dist/cli/utils/dexto-setup.js +17 -0
- package/dist/cli/utils/options.d.ts.map +1 -1
- package/dist/cli/utils/options.js +5 -1
- package/dist/cli/utils/provider-setup.d.ts +4 -0
- package/dist/cli/utils/provider-setup.d.ts.map +1 -1
- package/dist/cli/utils/provider-setup.js +20 -0
- package/dist/config/cli-overrides.d.ts +17 -8
- package/dist/config/cli-overrides.d.ts.map +1 -1
- package/dist/config/cli-overrides.js +36 -22
- package/dist/config/effective-llm.d.ts +123 -0
- package/dist/config/effective-llm.d.ts.map +1 -0
- package/dist/config/effective-llm.js +171 -0
- package/dist/index.js +395 -99
- package/dist/webui/assets/index-C9JXwpvo.css +1 -0
- package/dist/webui/assets/{index-DVQWNLpT.js → index-Dl3mj53P.js} +217 -217
- package/dist/webui/index.html +2 -2
- package/package.json +9 -8
- package/dist/webui/assets/index-BglIVTSG.css +0 -1
|
@@ -24,7 +24,7 @@ import { ApprovalType as ApprovalTypeEnum, ApprovalStatus } from '@dexto/core';
|
|
|
24
24
|
import { generateMessageId } from '../utils/idGenerator.js';
|
|
25
25
|
import { checkForSplit } from '../utils/streamSplitter.js';
|
|
26
26
|
import { formatToolHeader } from '../utils/messageFormatting.js';
|
|
27
|
-
import {
|
|
27
|
+
import { isAutoApprovableInEditMode } from '../utils/toolUtils.js';
|
|
28
28
|
import { capture } from '../../../analytics/index.js';
|
|
29
29
|
import chalk from 'chalk';
|
|
30
30
|
/**
|
|
@@ -54,6 +54,9 @@ function buildErrorContent(error, prefix) {
|
|
|
54
54
|
export async function processStream(iterator, setters, options) {
|
|
55
55
|
const { setMessages, setPendingMessages, setDequeuedBuffer, setUi, setSession: _setSession, setQueuedMessages, setApproval, setApprovalQueue, } = setters;
|
|
56
56
|
const useStreaming = options?.useStreaming ?? true;
|
|
57
|
+
// Link approval IDs to tool call IDs so we can finalize tool UI when an approval
|
|
58
|
+
// is cancelled/denied (otherwise tool messages can remain stuck in "Waiting...").
|
|
59
|
+
const approvalIdToToolCallId = new Map();
|
|
57
60
|
// Track streaming state (synchronous, not React state)
|
|
58
61
|
const state = {
|
|
59
62
|
messageId: null,
|
|
@@ -532,6 +535,23 @@ export async function processStream(iterator, setters, options) {
|
|
|
532
535
|
...(toolContent && { toolContent }),
|
|
533
536
|
});
|
|
534
537
|
}
|
|
538
|
+
// Handle plan_review tool results - update UI state when plan is approved
|
|
539
|
+
if (event.toolName === 'plan_review' && event.success !== false) {
|
|
540
|
+
try {
|
|
541
|
+
const planReviewResult = event.rawResult;
|
|
542
|
+
if (planReviewResult?.approved) {
|
|
543
|
+
// User approved the plan - disable plan mode
|
|
544
|
+
setUi((prev) => ({
|
|
545
|
+
...prev,
|
|
546
|
+
planModeActive: false,
|
|
547
|
+
planModeInitialized: false,
|
|
548
|
+
}));
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
catch {
|
|
552
|
+
// Silently ignore parsing errors - plan mode state remains unchanged
|
|
553
|
+
}
|
|
554
|
+
}
|
|
535
555
|
// Track tool result analytics
|
|
536
556
|
capture('dexto_tool_result', {
|
|
537
557
|
source: 'cli',
|
|
@@ -672,7 +692,7 @@ export async function processStream(iterator, setters, options) {
|
|
|
672
692
|
if (autoApproveEdits && event.type === ApprovalTypeEnum.TOOL_CONFIRMATION) {
|
|
673
693
|
// Type is narrowed - metadata is now ToolConfirmationMetadata
|
|
674
694
|
const { toolName } = event.metadata;
|
|
675
|
-
if (
|
|
695
|
+
if (isAutoApprovableInEditMode(toolName)) {
|
|
676
696
|
// Auto-approve immediately - emit response and let tool:running handle status
|
|
677
697
|
eventBus.emit('approval:response', {
|
|
678
698
|
approvalId: event.approvalId,
|
|
@@ -689,6 +709,7 @@ export async function processStream(iterator, setters, options) {
|
|
|
689
709
|
? event.metadata.toolCallId
|
|
690
710
|
: undefined;
|
|
691
711
|
if (toolCallId) {
|
|
712
|
+
approvalIdToToolCallId.set(event.approvalId, toolCallId);
|
|
692
713
|
updatePendingStatus(`tool-${toolCallId}`, 'pending_approval');
|
|
693
714
|
}
|
|
694
715
|
// Show approval UI (moved from useAgentEvents for ordering)
|
|
@@ -723,15 +744,26 @@ export async function processStream(iterator, setters, options) {
|
|
|
723
744
|
break;
|
|
724
745
|
}
|
|
725
746
|
case 'approval:response': {
|
|
726
|
-
// Handle approval responses
|
|
727
|
-
//
|
|
728
|
-
// When user approves a tool with "remember", other pending parallel requests
|
|
729
|
-
// for the same tool are auto-approved. The handler emits approval:response
|
|
730
|
-
// for each, and we need to dismiss them from the UI.
|
|
747
|
+
// Handle approval responses.
|
|
731
748
|
//
|
|
732
|
-
//
|
|
733
|
-
//
|
|
749
|
+
// 1) Dismiss auto-approved parallel tool calls (existing behavior)
|
|
750
|
+
// 2) Finalize tool UI immediately for denied/cancelled approvals so tool
|
|
751
|
+
// messages don't remain stuck in "Waiting..." (pending_approval).
|
|
734
752
|
const { approvalId } = event;
|
|
753
|
+
const toolCallId = approvalIdToToolCallId.get(approvalId);
|
|
754
|
+
if (toolCallId) {
|
|
755
|
+
approvalIdToToolCallId.delete(approvalId);
|
|
756
|
+
// If the tool was waiting for approval and gets denied/cancelled,
|
|
757
|
+
// we may not get a corresponding llm:tool-result event (the tool never ran).
|
|
758
|
+
// Finalize it here so the UI reflects the outcome immediately.
|
|
759
|
+
if (event.status !== ApprovalStatus.APPROVED) {
|
|
760
|
+
finalizeMessage(`tool-${toolCallId}`, {
|
|
761
|
+
toolStatus: 'finished',
|
|
762
|
+
toolResult: 'Cancelled',
|
|
763
|
+
isError: true,
|
|
764
|
+
});
|
|
765
|
+
}
|
|
766
|
+
}
|
|
735
767
|
// Step 1: Remove from queue if present
|
|
736
768
|
setApprovalQueue((queue) => queue.filter((a) => a.approvalId !== approvalId));
|
|
737
769
|
// Step 2: If this is the current approval, dismiss and show next
|
|
@@ -741,7 +773,7 @@ export async function processStream(iterator, setters, options) {
|
|
|
741
773
|
if (currentApproval?.approvalId !== approvalId) {
|
|
742
774
|
return currentApproval; // Not current, nothing to do
|
|
743
775
|
}
|
|
744
|
-
// Current approval was
|
|
776
|
+
// Current approval was responded to - show next or close
|
|
745
777
|
// Note: queue was already filtered in Step 1, so we read updated queue
|
|
746
778
|
setApprovalQueue((queue) => {
|
|
747
779
|
if (queue.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initialState.d.ts","sourceRoot":"","sources":["../../../../src/cli/ink-cli/state/initialState.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,gBAAgB,GAAE,MAAW,GAAG,QAAQ,
|
|
1
|
+
{"version":3,"file":"initialState.d.ts","sourceRoot":"","sources":["../../../../src/cli/ink-cli/state/initialState.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,gBAAgB,GAAE,MAAW,GAAG,QAAQ,CA4C1E"}
|
|
@@ -270,7 +270,7 @@ export interface InputState {
|
|
|
270
270
|
/**
|
|
271
271
|
* Available overlay types
|
|
272
272
|
*/
|
|
273
|
-
export type OverlayType = 'none' | 'slash-autocomplete' | 'resource-autocomplete' | 'model-selector' | 'custom-model-wizard' | 'session-selector' | 'mcp-server-list' | 'mcp-server-actions' | 'mcp-add-choice' | 'mcp-add-selector' | 'mcp-custom-type-selector' | 'mcp-custom-wizard' | 'log-level-selector' | 'stream-selector' | 'session-subcommand-selector' | 'api-key-input' | 'search' | 'approval' | 'tool-browser' | 'prompt-list' | 'prompt-add-choice' | 'prompt-add-wizard' | 'prompt-delete-selector' | 'session-rename' | 'context-stats' | 'export-wizard';
|
|
273
|
+
export type OverlayType = 'none' | 'slash-autocomplete' | 'resource-autocomplete' | 'model-selector' | 'custom-model-wizard' | 'session-selector' | 'mcp-server-list' | 'mcp-server-actions' | 'mcp-add-choice' | 'mcp-add-selector' | 'mcp-custom-type-selector' | 'mcp-custom-wizard' | 'log-level-selector' | 'stream-selector' | 'session-subcommand-selector' | 'api-key-input' | 'search' | 'approval' | 'tool-browser' | 'prompt-list' | 'prompt-add-choice' | 'prompt-add-wizard' | 'prompt-delete-selector' | 'session-rename' | 'context-stats' | 'export-wizard' | 'plugin-manager' | 'plugin-list' | 'plugin-actions' | 'marketplace-browser' | 'marketplace-add';
|
|
274
274
|
/**
|
|
275
275
|
* MCP server type for custom wizard (null = not yet selected)
|
|
276
276
|
*/
|
|
@@ -333,6 +333,8 @@ export interface UIState {
|
|
|
333
333
|
promptAddWizard: PromptAddWizardState | null;
|
|
334
334
|
autoApproveEdits: boolean;
|
|
335
335
|
todoExpanded: boolean;
|
|
336
|
+
planModeActive: boolean;
|
|
337
|
+
planModeInitialized: boolean;
|
|
336
338
|
}
|
|
337
339
|
/**
|
|
338
340
|
* Session state management
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/cli/ink-cli/state/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/cli/ink-cli/state/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandOverlays.d.ts","sourceRoot":"","sources":["../../../../src/cli/ink-cli/utils/commandOverlays.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"commandOverlays.d.ts","sourceRoot":"","sources":["../../../../src/cli/ink-cli/utils/commandOverlays.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAiCrD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,GAAG,IAAI,CAYrF;AAED;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAU9E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE7D"}
|
|
@@ -4,6 +4,19 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type { DextoAgent, InternalMessage } from '@dexto/core';
|
|
6
6
|
import type { Message } from '../state/types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Formats a skill invocation message for clean display.
|
|
9
|
+
* Converts verbose <skill-invocation> blocks to clean /skill-name format.
|
|
10
|
+
* Works for both fork skills (just the tag) and inline skills (tag + content).
|
|
11
|
+
*
|
|
12
|
+
* @param content - The message content to check and format
|
|
13
|
+
* @returns Formatted content if it's a skill invocation, original content otherwise
|
|
14
|
+
*/
|
|
15
|
+
export declare function formatSkillInvocationMessage(content: string): string;
|
|
16
|
+
/**
|
|
17
|
+
* Checks if a message content is a skill invocation.
|
|
18
|
+
*/
|
|
19
|
+
export declare function isSkillInvocationMessage(content: string): boolean;
|
|
7
20
|
/**
|
|
8
21
|
* Convert absolute path to display-friendly relative path.
|
|
9
22
|
* Strategy:
|
|
@@ -111,7 +124,7 @@ export declare function convertHistoryToUIMessages(history: InternalMessage[], s
|
|
|
111
124
|
/**
|
|
112
125
|
* Collects startup information for display in header
|
|
113
126
|
*/
|
|
114
|
-
export declare function getStartupInfo(agent: DextoAgent): Promise<{
|
|
127
|
+
export declare function getStartupInfo(agent: DextoAgent, sessionId: string | null): Promise<{
|
|
115
128
|
connectedServers: {
|
|
116
129
|
count: number;
|
|
117
130
|
names: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messageFormatting.d.ts","sourceRoot":"","sources":["../../../../src/cli/ink-cli/utils/messageFormatting.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAyB,MAAM,aAAa,CAAC;AAEtF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"messageFormatting.d.ts","sourceRoot":"","sources":["../../../../src/cli/ink-cli/utils/messageFormatting.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAyB,MAAM,aAAa,CAAC;AAEtF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAWjD;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAYpE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,GAAE,MAAsB,GAAG,MAAM,CAmB1F;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAChC,YAAY,EAAE,MAAM,EACpB,QAAQ,GAAE,MAAW,EACrB,GAAG,GAAE,MAAsB,GAC5B,MAAM,CAWR;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAiC7E;AAsFD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA6B3D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA8BzD;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,2DAA2D;IAC3D,WAAW,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,aAAa,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC5B,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACnC,mBAAmB,CA+CrB;AA8BD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CA0EhG;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,SAAS,GAAE,MAAW,GACvB,MAAM,CAeR;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAO1D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CASvF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAO5D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAQjE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAO3D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAQhD;AAqCD;;GAEG;AACH,wBAAgB,0BAA0B,CACtC,OAAO,EAAE,eAAe,EAAE,EAC1B,SAAS,EAAE,MAAM,GAClB,OAAO,EAAE,CAqGX;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;;;;;;;;GAmB/E"}
|
|
@@ -6,6 +6,39 @@ import path from 'path';
|
|
|
6
6
|
import os from 'os';
|
|
7
7
|
import { isTextPart, isAssistantMessage, isToolMessage } from '@dexto/core';
|
|
8
8
|
import { generateMessageId } from './idGenerator.js';
|
|
9
|
+
/**
|
|
10
|
+
* Regex to detect skill invocation messages.
|
|
11
|
+
* Matches: <skill-invocation>...skill: "config:skill-name"...</skill-invocation>
|
|
12
|
+
* Works for both fork and inline skills.
|
|
13
|
+
*/
|
|
14
|
+
const SKILL_INVOCATION_REGEX = /<skill-invocation>[\s\S]*?skill:\s*"(?:config:)?([^"]+)"[\s\S]*?<\/skill-invocation>/;
|
|
15
|
+
/**
|
|
16
|
+
* Formats a skill invocation message for clean display.
|
|
17
|
+
* Converts verbose <skill-invocation> blocks to clean /skill-name format.
|
|
18
|
+
* Works for both fork skills (just the tag) and inline skills (tag + content).
|
|
19
|
+
*
|
|
20
|
+
* @param content - The message content to check and format
|
|
21
|
+
* @returns Formatted content if it's a skill invocation, original content otherwise
|
|
22
|
+
*/
|
|
23
|
+
export function formatSkillInvocationMessage(content) {
|
|
24
|
+
const match = content.match(SKILL_INVOCATION_REGEX);
|
|
25
|
+
if (match) {
|
|
26
|
+
const skillName = match[1];
|
|
27
|
+
// Extract task context if present
|
|
28
|
+
const contextMatch = content.match(/Task context:\s*(.+?)(?:\n|$)/);
|
|
29
|
+
if (contextMatch) {
|
|
30
|
+
return `/${skillName} ${contextMatch[1]}`;
|
|
31
|
+
}
|
|
32
|
+
return `/${skillName}`;
|
|
33
|
+
}
|
|
34
|
+
return content;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Checks if a message content is a skill invocation.
|
|
38
|
+
*/
|
|
39
|
+
export function isSkillInvocationMessage(content) {
|
|
40
|
+
return SKILL_INVOCATION_REGEX.test(content);
|
|
41
|
+
}
|
|
9
42
|
/**
|
|
10
43
|
* Convert absolute path to display-friendly relative path.
|
|
11
44
|
* Strategy:
|
|
@@ -111,8 +144,14 @@ const TOOL_CONFIGS = {
|
|
|
111
144
|
kill_process: { displayName: 'Kill', argsToShow: ['process_id'], primaryArg: 'process_id' },
|
|
112
145
|
// User interaction
|
|
113
146
|
ask_user: { displayName: 'Ask', argsToShow: ['question'], primaryArg: 'question' },
|
|
114
|
-
// Agent spawning - handled specially in
|
|
147
|
+
// Agent spawning - handled specially in formatToolHeader for dynamic agentId
|
|
115
148
|
spawn_agent: { displayName: 'Agent', argsToShow: ['task'], primaryArg: 'task' },
|
|
149
|
+
// Skill invocation - handled specially in formatToolHeader to show clean skill name
|
|
150
|
+
invoke_skill: { displayName: 'Skill', argsToShow: ['skill'], primaryArg: 'skill' },
|
|
151
|
+
plan_create: { displayName: 'Plan', argsToShow: [] },
|
|
152
|
+
plan_read: { displayName: 'Plan', argsToShow: [] },
|
|
153
|
+
plan_update: { displayName: 'Plan', argsToShow: [] },
|
|
154
|
+
plan_review: { displayName: 'Plan', argsToShow: [] },
|
|
116
155
|
todo_write: { displayName: 'UpdateTasks', argsToShow: [] },
|
|
117
156
|
};
|
|
118
157
|
/**
|
|
@@ -217,15 +256,30 @@ export function formatToolHeader(toolName, args = {}) {
|
|
|
217
256
|
let displayName = getToolDisplayName(toolName);
|
|
218
257
|
const argsFormatted = formatToolArgsForDisplay(toolName, args);
|
|
219
258
|
const badge = getToolTypeBadge(toolName);
|
|
220
|
-
// Special handling for spawn_agent: use agentId as display name
|
|
221
259
|
// Normalize tool name to handle all prefixes (internal--, custom--)
|
|
222
260
|
const normalizedToolName = toolName.replace(/^(?:internal--|custom--)/, '');
|
|
261
|
+
// Special handling for spawn_agent: use agentId as display name
|
|
223
262
|
const isSpawnAgent = normalizedToolName === 'spawn_agent';
|
|
224
263
|
if (isSpawnAgent && args.agentId) {
|
|
225
264
|
const agentId = String(args.agentId);
|
|
226
265
|
const agentLabel = agentId.replace(/-agent$/, '');
|
|
227
266
|
displayName = agentLabel.charAt(0).toUpperCase() + agentLabel.slice(1);
|
|
228
267
|
}
|
|
268
|
+
// Special handling for invoke_skill: show skill as /skill-name
|
|
269
|
+
const isInvokeSkill = normalizedToolName === 'invoke_skill';
|
|
270
|
+
if (isInvokeSkill && args.skill) {
|
|
271
|
+
const skillName = String(args.skill);
|
|
272
|
+
// Extract display name from skill identifier (e.g., "config:test-fork" -> "test-fork")
|
|
273
|
+
const colonIndex = skillName.indexOf(':');
|
|
274
|
+
const displaySkillName = colonIndex >= 0 ? skillName.slice(colonIndex + 1) : skillName;
|
|
275
|
+
// Override args display to show clean slash command format
|
|
276
|
+
return {
|
|
277
|
+
displayName: 'Skill',
|
|
278
|
+
argsFormatted: `/${displaySkillName}`,
|
|
279
|
+
badge,
|
|
280
|
+
header: `Skill(/${displaySkillName})`,
|
|
281
|
+
};
|
|
282
|
+
}
|
|
229
283
|
// Only show badge for MCP tools (external tools worth distinguishing)
|
|
230
284
|
const isMcpTool = badge.startsWith('MCP');
|
|
231
285
|
const badgeSuffix = isMcpTool ? ` [${badge}]` : '';
|
|
@@ -541,10 +595,14 @@ export function convertHistoryToUIMessages(history, sessionId) {
|
|
|
541
595
|
return;
|
|
542
596
|
}
|
|
543
597
|
// Handle other messages (user, system)
|
|
544
|
-
|
|
598
|
+
let textContent = extractTextContent(msg.content);
|
|
545
599
|
// Skip empty messages
|
|
546
600
|
if (!textContent)
|
|
547
601
|
return;
|
|
602
|
+
// Format skill invocation messages for cleaner display
|
|
603
|
+
if (msg.role === 'user') {
|
|
604
|
+
textContent = formatSkillInvocationMessage(textContent);
|
|
605
|
+
}
|
|
548
606
|
uiMessages.push({
|
|
549
607
|
id: `session-${sessionId}-${index}`,
|
|
550
608
|
role: msg.role,
|
|
@@ -557,13 +615,15 @@ export function convertHistoryToUIMessages(history, sessionId) {
|
|
|
557
615
|
/**
|
|
558
616
|
* Collects startup information for display in header
|
|
559
617
|
*/
|
|
560
|
-
export async function getStartupInfo(agent) {
|
|
618
|
+
export async function getStartupInfo(agent, sessionId) {
|
|
561
619
|
const connectedServers = agent.mcpManager.getClients();
|
|
562
620
|
const failedConnections = agent.mcpManager.getFailedConnections();
|
|
563
621
|
const tools = await agent.getAllTools();
|
|
564
622
|
const toolCount = Object.keys(tools).length;
|
|
565
|
-
//
|
|
566
|
-
const logFile =
|
|
623
|
+
// File logging is session-scoped. If a session already exists, show its log file.
|
|
624
|
+
const logFile = sessionId
|
|
625
|
+
? ((await agent.getSession(sessionId))?.logger.getLogFilePath() ?? null)
|
|
626
|
+
: null;
|
|
567
627
|
return {
|
|
568
628
|
connectedServers: {
|
|
569
629
|
count: connectedServers.size,
|
|
@@ -6,4 +6,15 @@
|
|
|
6
6
|
* Used for "accept all edits" mode which auto-approves these tools.
|
|
7
7
|
*/
|
|
8
8
|
export declare function isEditWriteTool(toolName: string | undefined): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Check if a tool is a plan update tool.
|
|
11
|
+
* Used for "accept all edits" mode which also auto-approves plan updates
|
|
12
|
+
* (typically marking tasks as complete during implementation).
|
|
13
|
+
*/
|
|
14
|
+
export declare function isPlanUpdateTool(toolName: string | undefined): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Check if a tool should be auto-approved in "accept all edits" mode.
|
|
17
|
+
* Includes file edit/write tools and plan update tools.
|
|
18
|
+
*/
|
|
19
|
+
export declare function isAutoApprovableInEditMode(toolName: string | undefined): boolean;
|
|
9
20
|
//# sourceMappingURL=toolUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolUtils.d.ts","sourceRoot":"","sources":["../../../../src/cli/ink-cli/utils/toolUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CASrE"}
|
|
1
|
+
{"version":3,"file":"toolUtils.d.ts","sourceRoot":"","sources":["../../../../src/cli/ink-cli/utils/toolUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CASrE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAMtE;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEhF"}
|
|
@@ -13,3 +13,20 @@ export function isEditWriteTool(toolName) {
|
|
|
13
13
|
toolName === 'edit_file' ||
|
|
14
14
|
toolName === 'write_file');
|
|
15
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Check if a tool is a plan update tool.
|
|
18
|
+
* Used for "accept all edits" mode which also auto-approves plan updates
|
|
19
|
+
* (typically marking tasks as complete during implementation).
|
|
20
|
+
*/
|
|
21
|
+
export function isPlanUpdateTool(toolName) {
|
|
22
|
+
return (toolName === 'plan_update' ||
|
|
23
|
+
toolName === 'custom--plan_update' ||
|
|
24
|
+
toolName === 'internal--plan_update');
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Check if a tool should be auto-approved in "accept all edits" mode.
|
|
28
|
+
* Includes file edit/write tools and plan update tools.
|
|
29
|
+
*/
|
|
30
|
+
export function isAutoApprovableInEditMode(toolName) {
|
|
31
|
+
return isEditWriteTool(toolName) || isPlanUpdateTool(toolName);
|
|
32
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './oauth-factory.js';
|
|
2
|
+
export * from './oauth-provider.js';
|
|
3
|
+
export * from './oauth-redirect.js';
|
|
4
|
+
export * from './oauth-store.js';
|
|
5
|
+
export * from './oauth-ui.js';
|
|
6
|
+
export * from './oauth-utils.js';
|
|
7
|
+
export * from './oauth-server.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/mcp/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { McpAuthProviderFactory } from '@dexto/core';
|
|
2
|
+
import { logger as coreLogger } from '@dexto/core';
|
|
3
|
+
export declare function createMcpAuthProviderFactory(_options: {
|
|
4
|
+
logger?: typeof coreLogger;
|
|
5
|
+
}): McpAuthProviderFactory;
|
|
6
|
+
//# sourceMappingURL=oauth-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth-factory.d.ts","sourceRoot":"","sources":["../../../src/cli/mcp/oauth-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAA4B,MAAM,aAAa,CAAC;AAGpF,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,aAAa,CAAC;AAUnD,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE;IACnD,MAAM,CAAC,EAAE,OAAO,UAAU,CAAC;CAC9B,GAAG,sBAAsB,CAgBzB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { createMcpOAuthProvider } from './oauth-provider.js';
|
|
2
|
+
import { getMcpRedirectUrl } from './oauth-redirect.js';
|
|
3
|
+
const DEFAULT_CLIENT_METADATA = {
|
|
4
|
+
client_name: 'Dexto MCP Client',
|
|
5
|
+
redirect_uris: [getMcpRedirectUrl()],
|
|
6
|
+
grant_types: ['authorization_code', 'refresh_token'],
|
|
7
|
+
response_types: ['code'],
|
|
8
|
+
token_endpoint_auth_method: 'none',
|
|
9
|
+
};
|
|
10
|
+
export function createMcpAuthProviderFactory(_options) {
|
|
11
|
+
return (serverName, config) => {
|
|
12
|
+
if (config.type !== 'http' && config.type !== 'sse') {
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
const redirectUrl = getMcpRedirectUrl();
|
|
16
|
+
return createMcpOAuthProvider({
|
|
17
|
+
serverId: serverName,
|
|
18
|
+
redirectUrl,
|
|
19
|
+
clientMetadata: {
|
|
20
|
+
...DEFAULT_CLIENT_METADATA,
|
|
21
|
+
redirect_uris: [redirectUrl],
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { OAuthClientMetadata } from '@modelcontextprotocol/sdk/shared/auth.js';
|
|
2
|
+
import type { McpAuthProvider } from '@dexto/core';
|
|
3
|
+
export type McpOAuthClientConfig = {
|
|
4
|
+
serverId: string;
|
|
5
|
+
redirectUrl: string;
|
|
6
|
+
clientMetadata: OAuthClientMetadata;
|
|
7
|
+
clientMetadataUrl?: string | undefined;
|
|
8
|
+
};
|
|
9
|
+
export declare function createMcpOAuthProvider(config: McpOAuthClientConfig): McpAuthProvider;
|
|
10
|
+
//# sourceMappingURL=oauth-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth-provider.d.ts","sourceRoot":"","sources":["../../../src/cli/mcp/oauth-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,mBAAmB,EAGtB,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAKnD,MAAM,MAAM,oBAAoB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,mBAAmB,CAAC;IACpC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1C,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,oBAAoB,GAAG,eAAe,CA6EpF"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { loadMcpAuthStore, saveMcpAuthStore } from './oauth-store.js';
|
|
2
|
+
import { createMcpCallbackServer } from './oauth-server.js';
|
|
3
|
+
import { openAuthUrl } from './oauth-ui.js';
|
|
4
|
+
export function createMcpOAuthProvider(config) {
|
|
5
|
+
let authorizationCode;
|
|
6
|
+
return {
|
|
7
|
+
get redirectUrl() {
|
|
8
|
+
return config.redirectUrl;
|
|
9
|
+
},
|
|
10
|
+
...(config.clientMetadataUrl ? { clientMetadataUrl: config.clientMetadataUrl } : {}),
|
|
11
|
+
get clientMetadata() {
|
|
12
|
+
return config.clientMetadata;
|
|
13
|
+
},
|
|
14
|
+
async clientInformation() {
|
|
15
|
+
const store = await loadMcpAuthStore(config.serverId);
|
|
16
|
+
return store.clientInformation;
|
|
17
|
+
},
|
|
18
|
+
async saveClientInformation(clientInformation) {
|
|
19
|
+
const store = await loadMcpAuthStore(config.serverId);
|
|
20
|
+
await saveMcpAuthStore(config.serverId, {
|
|
21
|
+
...store,
|
|
22
|
+
clientInformation,
|
|
23
|
+
});
|
|
24
|
+
},
|
|
25
|
+
async tokens() {
|
|
26
|
+
const store = await loadMcpAuthStore(config.serverId);
|
|
27
|
+
return store.tokens;
|
|
28
|
+
},
|
|
29
|
+
async saveTokens(tokens) {
|
|
30
|
+
const store = await loadMcpAuthStore(config.serverId);
|
|
31
|
+
await saveMcpAuthStore(config.serverId, {
|
|
32
|
+
...store,
|
|
33
|
+
tokens,
|
|
34
|
+
});
|
|
35
|
+
},
|
|
36
|
+
async redirectToAuthorization(authorizationUrl) {
|
|
37
|
+
await openAuthUrl(authorizationUrl.toString());
|
|
38
|
+
},
|
|
39
|
+
async saveCodeVerifier(codeVerifier) {
|
|
40
|
+
const store = await loadMcpAuthStore(config.serverId);
|
|
41
|
+
await saveMcpAuthStore(config.serverId, {
|
|
42
|
+
...store,
|
|
43
|
+
codeVerifier,
|
|
44
|
+
});
|
|
45
|
+
},
|
|
46
|
+
async codeVerifier() {
|
|
47
|
+
const store = await loadMcpAuthStore(config.serverId);
|
|
48
|
+
if (!store.codeVerifier) {
|
|
49
|
+
throw new Error('No code verifier saved');
|
|
50
|
+
}
|
|
51
|
+
return store.codeVerifier;
|
|
52
|
+
},
|
|
53
|
+
async waitForAuthorizationCode() {
|
|
54
|
+
if (authorizationCode) {
|
|
55
|
+
return authorizationCode;
|
|
56
|
+
}
|
|
57
|
+
const result = await createMcpCallbackServer(config.redirectUrl);
|
|
58
|
+
authorizationCode = result;
|
|
59
|
+
return result;
|
|
60
|
+
},
|
|
61
|
+
async invalidateCredentials(scope) {
|
|
62
|
+
const store = await loadMcpAuthStore(config.serverId);
|
|
63
|
+
const updated = { ...store };
|
|
64
|
+
authorizationCode = undefined;
|
|
65
|
+
if (scope === 'all' || scope === 'tokens') {
|
|
66
|
+
updated.tokens = undefined;
|
|
67
|
+
}
|
|
68
|
+
if (scope === 'all' || scope === 'client') {
|
|
69
|
+
updated.clientInformation = undefined;
|
|
70
|
+
}
|
|
71
|
+
if (scope === 'all' || scope === 'verifier') {
|
|
72
|
+
updated.codeVerifier = undefined;
|
|
73
|
+
}
|
|
74
|
+
await saveMcpAuthStore(config.serverId, updated);
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth-redirect.d.ts","sourceRoot":"","sources":["../../../src/cli/mcp/oauth-redirect.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB,oCAAoC,CAAC;AAE1E,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth-server.d.ts","sourceRoot":"","sources":["../../../src/cli/mcp/oauth-server.ts"],"names":[],"mappings":"AAaA,wBAAsB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAuElF"}
|