@skt-ai-labs/trayambak-cli 0.6.2 → 0.6.4
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 +20 -18
- package/dist/apps/cli/src/command-registry.js +1 -1
- package/dist/apps/cli/src/commands/agent.js +1 -1
- package/dist/apps/cli/src/commands/archive.js +1 -1
- package/dist/apps/cli/src/commands/checkpoint.js +1 -1
- package/dist/apps/cli/src/commands/command-dispatch.js +1 -1
- package/dist/apps/cli/src/commands/commit.js +1 -1
- package/dist/apps/cli/src/commands/compact.js +1 -1
- package/dist/apps/cli/src/commands/config.js +1 -1
- package/dist/apps/cli/src/commands/db.js +1 -1
- package/dist/apps/cli/src/commands/doctor.js +1 -1
- package/dist/apps/cli/src/commands/download.js +1 -1
- package/dist/apps/cli/src/commands/exec.js +1 -1
- package/dist/apps/cli/src/commands/index.js +1 -1
- package/dist/apps/cli/src/commands/login.js +1 -1
- package/dist/apps/cli/src/commands/manager.js +1 -1
- package/dist/apps/cli/src/commands/marketplace.js +1 -1
- package/dist/apps/cli/src/commands/mcp.js +1 -1
- package/dist/apps/cli/src/commands/mode.js +1 -1
- package/dist/apps/cli/src/commands/models.js +1 -1
- package/dist/apps/cli/src/commands/plan.js +1 -1
- package/dist/apps/cli/src/commands/pr.js +1 -1
- package/dist/apps/cli/src/commands/registry.js +1 -1
- package/dist/apps/cli/src/commands/run.js +1 -1
- package/dist/apps/cli/src/commands/sandbox.js +1 -1
- package/dist/apps/cli/src/commands/serve.js +1 -1
- package/dist/apps/cli/src/commands/session-export.js +1 -1
- package/dist/apps/cli/src/commands/session-resume.js +1 -1
- package/dist/apps/cli/src/commands/shortcuts.js +1 -1
- package/dist/apps/cli/src/commands/slash-command.js +1 -1
- package/dist/apps/cli/src/commands/stats.js +1 -1
- package/dist/apps/cli/src/commands/streaming-gate.js +1 -1
- package/dist/apps/cli/src/commands/task.js +1 -1
- package/dist/apps/cli/src/commands/todo.js +1 -1
- package/dist/apps/cli/src/commands/uninstall.js +1 -1
- package/dist/apps/cli/src/commands/upgrade.js +1 -1
- package/dist/apps/cli/src/commands/worktree.js +1 -1
- package/dist/apps/cli/src/flags.js +1 -1
- package/dist/apps/cli/src/index.js +1 -1
- package/dist/apps/cli/src/integration/board.js +1 -1
- package/dist/apps/cli/src/integration/git-refs.js +1 -1
- package/dist/apps/cli/src/integration/index.js +1 -1
- package/dist/apps/cli/src/integration/indexing.js +1 -1
- package/dist/apps/cli/src/integration/notebook.js +1 -1
- package/dist/apps/cli/src/integration/parent-watchdog.js +1 -1
- package/dist/apps/cli/src/integration/plan.js +1 -1
- package/dist/apps/cli/src/integration/presence.js +1 -1
- package/dist/apps/cli/src/integration/project-id.js +1 -1
- package/dist/apps/cli/src/integration/rules.js +1 -1
- package/dist/apps/cli/src/integration/sandbox.js +1 -1
- package/dist/apps/cli/src/integration/task-resume.js +1 -1
- package/dist/apps/cli/src/integration/text-stream.js +1 -1
- package/dist/apps/cli/src/integration/unique-id.js +1 -1
- package/dist/apps/cli/src/integration/watcher.js +1 -1
- package/dist/apps/cli/src/logger.js +1 -1
- package/dist/apps/cli/src/session/index.js +1 -1
- package/dist/apps/cli/src/session/session-compaction.js +1 -1
- package/dist/apps/cli/src/session/session-continuation.js +1 -1
- package/dist/apps/cli/src/session/session-control.js +1 -1
- package/dist/apps/cli/src/session/session-fork.js +1 -1
- package/dist/apps/cli/src/session/session-manager.js +1 -1
- package/dist/apps/cli/src/session/session-transcript.js +1 -1
- package/dist/apps/cli/src/tui/index.js +1 -1
- package/dist/apps/cli/src/tui/tui-features.js +1 -1
- package/dist/apps/cli/src/version.js +1 -1
- package/dist/apps/runtime/src/agent/agent-loop.js +1 -1
- package/dist/apps/runtime/src/agent/agent.js +1 -1
- package/dist/apps/runtime/src/agent/auto-pilot.js +1 -1
- package/dist/apps/runtime/src/agent/loop-test-harness.js +1 -1
- package/dist/apps/runtime/src/agent/review-init.js +1 -1
- package/dist/apps/runtime/src/agent/sota.js +1 -1
- package/dist/apps/runtime/src/agent/specialist-agents.js +1 -1
- package/dist/apps/runtime/src/artifacts/artifact-manager.js +1 -1
- package/dist/apps/runtime/src/checkpoints.js +1 -1
- package/dist/apps/runtime/src/compaction.js +1 -1
- package/dist/apps/runtime/src/config.js +1 -1
- package/dist/apps/runtime/src/controller/controller.js +1 -1
- package/dist/apps/runtime/src/controller/executor.js +1 -1
- package/dist/apps/runtime/src/controller/reviewer.js +1 -1
- package/dist/apps/runtime/src/controller/roles.js +1 -1
- package/dist/apps/runtime/src/controller/router.js +1 -1
- package/dist/apps/runtime/src/controller/state.js +1 -1
- package/dist/apps/runtime/src/developer-mode/bug-fix-auto.js +1 -1
- package/dist/apps/runtime/src/developer-mode/developer-mode.js +1 -1
- package/dist/apps/runtime/src/developer-mode/rag-cache.js +1 -1
- package/dist/apps/runtime/src/developer-mode/sota-mode.js +1 -1
- package/dist/apps/runtime/src/developer-mode/subagent-orchestrator.js +1 -1
- package/dist/apps/runtime/src/evidence/evidence-store.js +1 -1
- package/dist/apps/runtime/src/github-auth.js +1 -1
- package/dist/apps/runtime/src/goals.js +1 -1
- package/dist/apps/runtime/src/index.js +1 -1
- package/dist/apps/runtime/src/knowledge/knowledge-gate.js +1 -1
- package/dist/apps/runtime/src/license.js +1 -1
- package/dist/apps/runtime/src/llama-cpp-bin.js +1 -1
- package/dist/apps/runtime/src/mistakes/mistake-detector.js +1 -1
- package/dist/apps/runtime/src/notifications.js +1 -1
- package/dist/apps/runtime/src/planner/planner.js +1 -1
- package/dist/apps/runtime/src/prompt/auto-title.js +1 -1
- package/dist/apps/runtime/src/prompt/enhance-prompt.js +1 -1
- package/dist/apps/runtime/src/prompt/power-prompt.js +1 -1
- package/dist/apps/runtime/src/prompt/rules.js +1 -1
- package/dist/apps/runtime/src/repetition/repetition-detector.js +1 -1
- package/dist/apps/runtime/src/self-improvement.js +1 -1
- package/dist/apps/runtime/src/session/session.js +1 -1
- package/dist/apps/runtime/src/tools/artifacts/artifact.js +1 -1
- package/dist/apps/runtime/src/tools/checkpoint/checkpoint.js +1 -1
- package/dist/apps/runtime/src/tools/checkpoint/rewind.js +1 -1
- package/dist/apps/runtime/src/tools/code/codemode.js +1 -1
- package/dist/apps/runtime/src/tools/code/fim.js +1 -1
- package/dist/apps/runtime/src/tools/code/next-edit.js +1 -1
- package/dist/apps/runtime/src/tools/code-search/code-search.js +1 -1
- package/dist/apps/runtime/src/tools/code-search/semantic-search.js +1 -1
- package/dist/apps/runtime/src/tools/code-search/symbols.js +1 -1
- package/dist/apps/runtime/src/tools/command-exec/bash.js +1 -1
- package/dist/apps/runtime/src/tools/command-exec/terminal.js +1 -1
- package/dist/apps/runtime/src/tools/commands/commands.js +1 -1
- package/dist/apps/runtime/src/tools/custom/custom-tools.js +1 -1
- package/dist/apps/runtime/src/tools/diagnostics/diagnostics-tool.js +1 -1
- package/dist/apps/runtime/src/tools/diagnostics/tsc-diagnostics.js +1 -1
- package/dist/apps/runtime/src/tools/directory/list-dir.js +1 -1
- package/dist/apps/runtime/src/tools/file-edit/edit-file.js +1 -1
- package/dist/apps/runtime/src/tools/file-edit/fs-walk.js +1 -1
- package/dist/apps/runtime/src/tools/file-edit/fuzzy-match.js +1 -1
- package/dist/apps/runtime/src/tools/file-edit/read-file.js +1 -1
- package/dist/apps/runtime/src/tools/file-edit/write-file.js +1 -1
- package/dist/apps/runtime/src/tools/github/github.js +1 -1
- package/dist/apps/runtime/src/tools/globber/glob.js +1 -1
- package/dist/apps/runtime/src/tools/hook-exec.js +1 -1
- package/dist/apps/runtime/src/tools/index.js +1 -1
- package/dist/apps/runtime/src/tools/manifest/read-manifest.js +1 -1
- package/dist/apps/runtime/src/tools/marketplace/marketplace.js +1 -1
- package/dist/apps/runtime/src/tools/mcp/mcp-install.js +1 -1
- package/dist/apps/runtime/src/tools/mcp/mcp-runner-tool.js +1 -1
- package/dist/apps/runtime/src/tools/mcp/mcp.js +1 -1
- package/dist/apps/runtime/src/tools/mcp/registry.js +1 -1
- package/dist/apps/runtime/src/tools/mcp/tool-search.js +1 -1
- package/dist/apps/runtime/src/tools/memory/dream.js +1 -1
- package/dist/apps/runtime/src/tools/memory/memory.js +1 -1
- package/dist/apps/runtime/src/tools/mode/mode.js +1 -1
- package/dist/apps/runtime/src/tools/pentest/pentest-tools.js +1 -1
- package/dist/apps/runtime/src/tools/pentest/security-tool-registry.js +1 -1
- package/dist/apps/runtime/src/tools/planning/todo.js +1 -1
- package/dist/apps/runtime/src/tools/planning/todoread.js +1 -1
- package/dist/apps/runtime/src/tools/regex/grep.js +1 -1
- package/dist/apps/runtime/src/tools/search/ripgrep.js +1 -1
- package/dist/apps/runtime/src/tools/skills/skill-core.js +1 -1
- package/dist/apps/runtime/src/tools/skills/skill-loading.js +1 -1
- package/dist/apps/runtime/src/tools/skills/skill-model.js +1 -1
- package/dist/apps/runtime/src/tools/skills/skill-parser.js +1 -1
- package/dist/apps/runtime/src/tools/skills/skill-selection.js +1 -1
- package/dist/apps/runtime/src/tools/skills/skills.js +1 -1
- package/dist/apps/runtime/src/tools/text/csv.js +1 -1
- package/dist/apps/runtime/src/tools/text/diff-render.js +1 -1
- package/dist/apps/runtime/src/tools/text/diff.js +1 -1
- package/dist/apps/runtime/src/tools/text/summarize.js +1 -1
- package/dist/apps/runtime/src/tools/text/yaml.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/agent-catalog.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/agent-manager.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/agent.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/ask-question.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/cron.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/debate.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/fleet.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/generate-agent.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/monitor.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/notebook-edit.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/parallel-execute.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/parallel-review.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/rules.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/send-message.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/sota-solve.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/swarm.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/tasks.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/team.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/workflow.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/worktree.js +1 -1
- package/dist/apps/runtime/src/tools/types.js +1 -1
- package/dist/apps/runtime/src/tools/web/multi-search.js +1 -1
- package/dist/apps/runtime/src/tools/web/web-search.js +1 -1
- package/dist/apps/runtime/src/tools/web/webbrowse.js +1 -1
- package/dist/apps/runtime/src/tools/web/webfetch.js +1 -1
- package/dist/apps/runtime/src/update/auto-update.js +1 -1
- package/dist/packages/acp/src/index.js +1 -1
- package/dist/packages/approval/src/index.js +1 -1
- package/dist/packages/checkpoints/src/index.js +1 -1
- package/dist/packages/cli/src/commands/registry.js +1 -1
- package/dist/packages/client/src/index.js +1 -1
- package/dist/packages/coding-agent/src/index.js +1 -1
- package/dist/packages/core/src/agent_communication.js +1 -1
- package/dist/packages/core/src/agent_registry.js +1 -1
- package/dist/packages/core/src/agents_md.js +1 -1
- package/dist/packages/core/src/analytics.js +1 -1
- package/dist/packages/core/src/approval.js +1 -1
- package/dist/packages/core/src/auth.js +1 -1
- package/dist/packages/core/src/context/compactor.js +1 -1
- package/dist/packages/core/src/cron/scheduler.js +1 -1
- package/dist/packages/core/src/curator/librarian.js +1 -1
- package/dist/packages/core/src/env_filter.js +1 -1
- package/dist/packages/core/src/extension_api.js +1 -1
- package/dist/packages/core/src/feature_flags.js +1 -1
- package/dist/packages/core/src/hook_runtime.js +1 -1
- package/dist/packages/core/src/i18n.js +1 -1
- package/dist/packages/core/src/memory/manager.js +1 -1
- package/dist/packages/core/src/memory/provider.js +1 -1
- package/dist/packages/core/src/plan_mode.js +1 -1
- package/dist/packages/core/src/process.js +1 -1
- package/dist/packages/core/src/providers/manager.js +1 -1
- package/dist/packages/core/src/providers/registry.js +1 -1
- package/dist/packages/core/src/rollout_budget.js +1 -1
- package/dist/packages/core/src/secrets.js +1 -1
- package/dist/packages/core/src/session_store.js +1 -1
- package/dist/packages/core/src/state_db.js +1 -1
- package/dist/packages/core/src/subagents.js +1 -1
- package/dist/packages/core/src/token_budget.js +1 -1
- package/dist/packages/core/src/toolsets/arsenal.js +1 -1
- package/dist/packages/core/src/validate.js +1 -1
- package/dist/packages/execpolicy/src/policy.js +1 -1
- package/dist/packages/function/src/index.js +1 -1
- package/dist/packages/harness/src/index.js +1 -1
- package/dist/packages/mcp/src/index.js +1 -1
- package/dist/packages/mcp/src/oauth-callback.js +1 -1
- package/dist/packages/mcp/src/oauth.js +1 -1
- package/dist/packages/mcp/src/spawn-resolve.js +1 -1
- package/dist/packages/mcp-server/src/index.js +1 -1
- package/dist/packages/modes/src/index.js +1 -1
- package/dist/packages/protocol/src/events.js +1 -1
- package/dist/packages/protocol/src/messages.js +1 -1
- package/dist/packages/protocol/src/permission-rules.js +1 -1
- package/dist/packages/protocol/src/permissions.js +1 -1
- package/dist/packages/protocol/src/tools.js +1 -1
- package/dist/packages/protocol/src/util/url.js +1 -1
- package/dist/packages/provider/src/anthropic.js +1 -1
- package/dist/packages/provider/src/catalog.js +1 -1
- package/dist/packages/provider/src/custom.js +1 -1
- package/dist/packages/provider/src/faux-stream.js +1 -1
- package/dist/packages/provider/src/google.js +1 -1
- package/dist/packages/provider/src/huggingface.js +1 -1
- package/dist/packages/provider/src/index.js +1 -1
- package/dist/packages/provider/src/llama-cpp.js +1 -1
- package/dist/packages/provider/src/nvidia.js +1 -1
- package/dist/packages/provider/src/ollama.js +1 -1
- package/dist/packages/provider/src/openai.js +1 -1
- package/dist/packages/provider/src/types.js +1 -1
- package/dist/packages/provider/src/xai.js +1 -1
- package/dist/packages/sandbox/src/gate.js +1 -1
- package/dist/packages/sandbox/src/index.js +1 -1
- package/dist/packages/sandbox/src/spawn.js +1 -1
- package/dist/packages/sandbox/src/types.js +1 -1
- package/dist/packages/sandbox/src/violation.js +1 -1
- package/dist/packages/schema/src/index.js +1 -1
- package/dist/packages/sdk/src/index.js +1 -1
- package/dist/packages/server/src/cors.js +1 -1
- package/dist/packages/server/src/daemon.js +1 -1
- package/dist/packages/server/src/github-app.js +1 -1
- package/dist/packages/server/src/github-autofix.js +1 -1
- package/dist/packages/server/src/github-jobs.js +1 -1
- package/dist/packages/server/src/github-oauth.js +1 -1
- package/dist/packages/server/src/index.js +1 -1
- package/dist/packages/server/src/install-ps1.js +1 -1
- package/dist/packages/server/src/license-store.js +1 -1
- package/dist/packages/session-backends/src/index.js +1 -1
- package/dist/packages/session-backends/src/transcript.js +1 -1
- package/dist/packages/telemetry/src/index.js +1 -1
- package/dist/packages/tui/src/app/app-state.js +1 -1
- package/dist/packages/tui/src/app/events.js +1 -1
- package/dist/packages/tui/src/approval-notification.js +1 -1
- package/dist/packages/tui/src/bottom_pane/composer.js +1 -1
- package/dist/packages/tui/src/bottom_pane/index.js +1 -1
- package/dist/packages/tui/src/chatwidget/chat-widget.js +1 -1
- package/dist/packages/tui/src/dialogs.js +1 -1
- package/dist/packages/tui/src/index.js +1 -1
- package/dist/packages/tui/src/ink-app/glyphs.js +1 -1
- package/dist/packages/tui/src/ink-app/utils/stringWidth.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/AgentPicker.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/App.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/CommandPalette.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/ExecToolCallItem.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/Footer.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/GroupedToolUseContent.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/MCPToolCallItem.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/MessageList.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/MessageResponse.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/MessageRow.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/ModelPicker.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/PermissionOverlay.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/PromptInput.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/ProviderPicker.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/SandboxSetup.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/SessionPicker.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/Sidebar.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/Spinner.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/SplashScreen.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/SubagentPanel.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/SubagentRow.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/SwarmToolCallItem.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/ThemePicker.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/ToolCallItem.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/ToolUseLoader.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/TrayambakLogo.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/UserToolResultMessage/UserToolCanceledMessage.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/UserToolResultMessage/UserToolErrorMessage.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/UserToolResultMessage/UserToolRejectMessage.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/UserToolResultMessage/UserToolResultMessage.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/UserToolResultMessage/UserToolSuccessMessage.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/WelcomeScreen.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/WhichKey.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/app-bootstrap.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/clipboard.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/command-palette.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/file-mention.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/footer-fit.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/fuzzy.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/glyphs.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/index.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/keys.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/mode-stack.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/model-picker.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/mouse-input.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/prompt-files.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/provider-model-support.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/resize-guard.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/restore-messages.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/scroll-math.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/session-picker-actions.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/sidebar-data.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/skt-themes.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/stdin-sanitizer.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/subagent-view.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/syntax-highlight.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/terminal-notify.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/text-format.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/theme.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/themeColors.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/types.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/use-border-pulse.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/useAppInput.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/utils/stringWidth.js +1 -1
- package/dist/packages/tui/src/keybindings.js +1 -1
- package/dist/packages/tui/src/keys.js +1 -1
- package/dist/packages/tui/src/notifications.js +1 -1
- package/dist/packages/tui/src/premium-ui.js +1 -1
- package/dist/packages/tui/src/stdin-buffer.js +1 -1
- package/dist/packages/tui/src/terminal-ui.js +1 -1
- package/dist/packages/tui/src/tui/terminal.js +1 -1
- package/dist/packages/tui/src/ui/box.js +1 -1
- package/dist/packages/tui/src/ui/dialog.js +1 -1
- package/dist/packages/tui/src/ui/footer-mode.js +1 -1
- package/dist/packages/tui/src/ui/footer.js +1 -1
- package/dist/packages/tui/src/ui/key-hint.js +1 -1
- package/dist/packages/tui/src/ui/spinner.js +1 -1
- package/dist/packages/tui/src/ui/theme.js +1 -1
- package/dist/packages/tui/src/ui/toast.js +1 -1
- package/dist/packages/tui/src/ui/tool-display.js +1 -1
- package/dist/packages/tui/src/ui/tool-palette.js +1 -1
- package/dist/skt/0-points/points.js +1 -1
- package/dist/skt/1-errors/mistake.js +1 -1
- package/dist/skt/1-errors/penalty.js +1 -1
- package/dist/skt/10-upload/upload.js +1 -1
- package/dist/skt/11-ui/components.js +1 -1
- package/dist/skt/12-control/content-control.js +1 -1
- package/dist/skt/12-control/hallucination.js +1 -1
- package/dist/skt/12-control/points.js +1 -1
- package/dist/skt/12-control/repetition.js +1 -1
- package/dist/skt/12-control/verification.js +1 -1
- package/dist/skt/13-healing/ast-validator.js +1 -1
- package/dist/skt/13-healing/healing-controller.js +1 -1
- package/dist/skt/13-healing/journal.js +1 -1
- package/dist/skt/13-healing/rollback.js +1 -1
- package/dist/skt/13-healing/scratchpad.js +1 -1
- package/dist/skt/13-healing/subprocess.js +1 -1
- package/dist/skt/13-healing/verify.js +1 -1
- package/dist/skt/14-hooks/codec.js +1 -1
- package/dist/skt/14-hooks/events.js +1 -1
- package/dist/skt/14-hooks/matcher.js +1 -1
- package/dist/skt/14-hooks/merge.js +1 -1
- package/dist/skt/14-hooks/runner.js +1 -1
- package/dist/skt/14-hooks/types.js +1 -1
- package/dist/skt/3-user/instructions.js +1 -1
- package/dist/skt/4-mem/memory.js +1 -1
- package/dist/skt/5-eval/cot-chain.js +1 -1
- package/dist/skt/5-eval/cot.js +1 -1
- package/dist/skt/5-eval/eval.js +1 -1
- package/dist/skt/6-u/improvements.js +1 -1
- package/dist/skt/6-u/reward.js +1 -1
- package/dist/skt/7-cli/autorepair.js +1 -1
- package/dist/skt/7-cli/clibugs.js +1 -1
- package/dist/skt/7-cli/reinstall.js +1 -1
- package/dist/skt/7-cli/reset.js +1 -1
- package/dist/skt/9-session/session.js +1 -1
- package/dist/skt/context.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var __createBinding=this&&this['__createBinding']||(Object['create']?function(_0x3833d4,_0x547cd5,_0x4d7235,_0xbc199a){if(_0xbc199a===undefined)_0xbc199a=_0x4d7235;var _0xf0e478=Object['getOwnPropertyDescriptor'](_0x547cd5,_0x4d7235);(!_0xf0e478||('get'in _0xf0e478?!_0x547cd5['__esModule']:_0xf0e478['writable']||_0xf0e478['configurable']))&&(_0xf0e478={'enumerable':!![],'get':function(){return _0x547cd5[_0x4d7235];}}),Object['defineProperty'](_0x3833d4,_0xbc199a,_0xf0e478);}:function(_0xd30b76,_0x54fc27,_0x70ed54,_0x2e653f){if(_0x2e653f===undefined)_0x2e653f=_0x70ed54;_0xd30b76[_0x2e653f]=_0x54fc27[_0x70ed54];}),__setModuleDefault=this&&this['__setModuleDefault']||(Object['create']?function(_0x4e835c,_0x31a7db){Object['defineProperty'](_0x4e835c,'default',{'enumerable':!![],'value':_0x31a7db});}:function(_0x1dff57,_0x37efc6){_0x1dff57['default']=_0x37efc6;}),__importStar=this&&this['__importStar']||(function(){var _0x28f129=function(_0x529762){return _0x28f129=Object['getOwnPropertyNames']||function(_0x699d68){var _0x2034d3=[];for(var _0x2e4f11 in _0x699d68)if(Object['prototype']['hasOwnProperty']['call'](_0x699d68,_0x2e4f11))_0x2034d3[_0x2034d3['length']]=_0x2e4f11;return _0x2034d3;},_0x28f129(_0x529762);};return function(_0x4e856a){if(_0x4e856a&&_0x4e856a['__esModule'])return _0x4e856a;var _0x23cc82={};if(_0x4e856a!=null){for(var _0x3788ac=_0x28f129(_0x4e856a),_0x4817cd=0x0;_0x4817cd<_0x3788ac['length'];_0x4817cd++)if(_0x3788ac[_0x4817cd]!=='default')__createBinding(_0x23cc82,_0x4e856a,_0x3788ac[_0x4817cd]);}return __setModuleDefault(_0x23cc82,_0x4e856a),_0x23cc82;};}());Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['resolveNpxCliJs']=exports['resolveNpmCliJs']=exports['resolveMcpCommand']=exports['resolveExecutable']=exports['clearOAuthCaches']=exports['authFilePath']=exports['removeMcpAuth']=exports['getMcpAuthStatus']=exports['getValidAccessToken']=exports['authorizeMcpServer']=exports['McpAuthError']=exports['McpConnection']=exports['McpError']=void 0x0,exports['createMcpConnection']=createMcpConnection;const child_process_1=require('child_process'),http=__importStar(require('http')),https=__importStar(require('https')),readline=__importStar(require('readline')),url=__importStar(require('url')),oauth_js_1=require('./oauth.js'),spawn_resolve_js_1=require('./spawn-resolve.js');class McpError extends Error{['code'];['data'];constructor(_0x13bb8d,_0x4df1bc,_0x449e42){super(_0x4df1bc),this['code']=_0x13bb8d,this['data']=_0x449e42;}}exports['McpError']=McpError;class McpConnection{['name'];['spec'];['child']=null;['rl']=null;['pending']=new Map();['nextId']=0x1;['initialized']=![];['lastRequestAt']=0x0;['lastError']='';['cachedTools']=null;['cachedToolsAt']=0x0;['cacheTtlMs']=0x493e0;['reconnecting']=![];['authAttempted']=![];constructor(_0x10ed62,_0x466b8f){this['name']=_0x10ed62,this['spec']=_0x466b8f;}get['timeoutMs'](){return this['spec']['timeoutMs']??0xea60;}get['oauthEnabled'](){return Boolean(this['spec']['url'])&&this['spec']['oauth']!==![];}get['oauthConfig'](){return typeof this['spec']['oauth']==='object'&&this['spec']['oauth']!==null?this['spec']['oauth']:{};}async['connect'](){if(this['initialized'])return;if(this['reconnecting']){const _0x51b595=Date['now']();await new Promise((_0x2ad4cd,_0x542775)=>{const _0x297df4=setInterval(()=>{if(!this['reconnecting']||Date['now']()-_0x51b595>0x7530){clearInterval(_0x297df4);if(this['reconnecting'])_0x542775(new Error('MCP\x20'+this['name']+':\x20reconnect\x20timed\x20out'));else _0x2ad4cd();}},0x32);});return;}const _0xe3d06={'protocolVersion':'2024-11-05','capabilities':{},'clientInfo':{'name':'trayambak','version':'0.3.0'}};this['spec']['url']?await this['request']('initialize',_0xe3d06):(this['spawnStdio'](),await this['request']('initialize',_0xe3d06)),await this['notify']('notifications/initialized',{}),this['initialized']=!![];}['notify'](_0x23cfa3,_0x41af48){this['lastRequestAt']=Date['now']();if(this['spec']['url'])return this['postNotificationHttp'](_0x23cfa3,_0x41af48);if(!this['child'])return Promise['resolve']();try{this['child']['stdin']['write'](JSON['stringify']({'jsonrpc':'2.0','method':_0x23cfa3,'params':_0x41af48})+'\x0a');}catch{}return Promise['resolve']();}async['httpHeaders'](){const _0x1c6bc6={...this['spec']['headers']??{}};if(this['oauthEnabled'])try{const _0x162100=await(0x0,oauth_js_1['getValidAccessToken'])(this['name'],this['spec']['url'],this['oauthConfig']);if(_0x162100)_0x1c6bc6['Authorization']='Bearer\x20'+_0x162100;}catch(_0x1bd899){this['lastError']='token\x20lookup\x20failed:\x20'+(_0x1bd899 instanceof Error?_0x1bd899['message']:String(_0x1bd899));}return _0x1c6bc6;}async['postNotificationHttp'](_0x63dd97,_0x35d29c){const _0x55dfb4=new url['URL'](this['spec']['url']),_0x104cbe=_0x55dfb4['protocol']==='https:'?https:http,_0x5be8e0=JSON['stringify']({'jsonrpc':'2.0','method':_0x63dd97,'params':_0x35d29c}),_0x378167=await this['httpHeaders']();return new Promise(_0x4d6d63=>{const _0x3394f4=_0x104cbe['request']({'hostname':_0x55dfb4['hostname'],'port':_0x55dfb4['port']||(_0x55dfb4['protocol']==='https:'?0x1bb:0x50),'path':_0x55dfb4['pathname']+_0x55dfb4['search'],'method':'POST','headers':{'Content-Type':'application/json','Accept':'application/json,\x20text/event-stream','Content-Length':String(Buffer['byteLength'](_0x5be8e0)),..._0x378167},'timeout':this['timeoutMs']},_0x488bfe=>{_0x488bfe['resume'](),_0x488bfe['on']('end',()=>_0x4d6d63());});_0x3394f4['on']('error',()=>_0x4d6d63()),_0x3394f4['on']('timeout',()=>{_0x3394f4['destroy'](),_0x4d6d63();}),_0x3394f4['end'](_0x5be8e0);});}async['status'](){const _0x2b4585=this['child']!==null&&this['child']['exitCode']===null&&!this['child']['killed'],_0x69e37=_0x2b4585||this['spec']['url']!==undefined;let _0x4a07c3='disconnected';_0x69e37&&(_0x4a07c3=this['spec']['url']?'http':'stdio');const _0x39bbd0={'name':this['name'],'connected':_0x69e37,'transport':_0x4a07c3,'initialized':this['initialized'],'lastRequestAt':this['lastRequestAt']>0x0?this['lastRequestAt']:undefined,'lastError':this['lastError']||undefined};if(_0x69e37&&this['spec']['url'])try{await this['request']('tools/list',{}),_0x39bbd0['connected']=!![];}catch(_0x36074d){_0x39bbd0['connected']=![],_0x39bbd0['lastError']=_0x36074d instanceof Error?_0x36074d['message']:String(_0x36074d);}return _0x39bbd0;}async['reconnect'](){this['reconnecting']=!![],this['close'](),this['initialized']=![],this['cachedTools']=null,this['cachedToolsAt']=0x0,this['lastError']='';try{await this['connect']();}finally{this['reconnecting']=![];}}async['listTools'](_0x2c5741){await this['connect']();const _0x2109b5=_0x2c5741??this['cacheTtlMs'],_0x3a2031=Date['now']();if(this['cachedTools']!==null&&_0x3a2031-this['cachedToolsAt']<_0x2109b5)return this['cachedTools'];const _0x329fca=[];let _0x4dd3f6;for(let _0x4a34f5=0x0;_0x4a34f5<0x32;_0x4a34f5++){const _0x5c2d4f=await this['request']('tools/list',_0x4dd3f6?{'cursor':_0x4dd3f6}:{});_0x329fca['push'](..._0x5c2d4f?.['tools']??[]),_0x4dd3f6=_0x5c2d4f?.['nextCursor'];if(!_0x4dd3f6)break;}return this['cachedTools']=_0x329fca,this['cachedToolsAt']=_0x3a2031,_0x329fca;}async['listResources'](){await this['connect']();try{const _0x935126=[];let _0x27ff3c;for(let _0x47d988=0x0;_0x47d988<0x32;_0x47d988++){const _0x57a86e=await this['request']('resources/list',_0x27ff3c?{'cursor':_0x27ff3c}:{});_0x935126['push'](..._0x57a86e?.['resources']??[]),_0x27ff3c=_0x57a86e?.['nextCursor'];if(!_0x27ff3c)break;}return _0x935126;}catch(_0xc45197){if(_0xc45197 instanceof McpError&&_0xc45197['code']===-0x7f59)return[];throw _0xc45197;}}async['readResource'](_0x5a595e){await this['connect']();try{const _0x2855ad=await this['request']('resources/read',{'uri':_0x5a595e});if(_0x2855ad?.['contents'])return _0x2855ad['contents']['map'](_0xb7e66b=>typeof _0xb7e66b['text']==='string'?_0xb7e66b['text']:typeof _0xb7e66b['blob']==='string'?'[binary\x20'+(_0xb7e66b['mimeType']??'blob')+'\x20'+(_0xb7e66b['blob']??'')['length']+'\x20chars\x20base64]':JSON['stringify'](_0xb7e66b))['join']('\x0a');return'';}catch(_0x2c69db){if(_0x2c69db instanceof McpError&&_0x2c69db['code']===-0x7f59)return'';throw _0x2c69db;}}async['listPrompts'](){await this['connect']();try{const _0x2e5b80=[];let _0x51b007;for(let _0x172ae3=0x0;_0x172ae3<0x32;_0x172ae3++){const _0x71db2b=await this['request']('prompts/list',_0x51b007?{'cursor':_0x51b007}:{});_0x2e5b80['push'](..._0x71db2b?.['prompts']??[]),_0x51b007=_0x71db2b?.['nextCursor'];if(!_0x51b007)break;}return _0x2e5b80;}catch(_0x4e9c69){if(_0x4e9c69 instanceof McpError&&_0x4e9c69['code']===-0x7f59)return[];throw _0x4e9c69;}}async['getPrompt'](_0x2b4212,_0x22cfd3){await this['connect']();try{const _0x128e1a=await this['request']('prompts/get',{'name':_0x2b4212,'arguments':_0x22cfd3??{}}),_0x25d357=_0x128e1a?.['messages']??_0x128e1a?.['prompt']?.['messages'];if(!_0x25d357)return null;return{'name':_0x2b4212,'messages':_0x25d357};}catch(_0x5a83f1){if(_0x5a83f1 instanceof McpError&&_0x5a83f1['code']===-0x7f59)return null;throw _0x5a83f1;}}async['callTool'](_0x17b0ab,_0x49d6a5){return await this['connect'](),await this['request']('tools/call',{'name':_0x17b0ab,'arguments':_0x49d6a5});}['close'](){const _0x1c3db5=this['child'];this['child']=null,this['rl']?.['close'](),this['rl']=null,this['initialized']=![],this['cachedTools']=null,this['authAttempted']=![],this['rejectAll'](new Error('MCP\x20'+this['name']+'\x20connection\x20closed'));if(_0x1c3db5&&_0x1c3db5['exitCode']===null&&!_0x1c3db5['killed']){_0x1c3db5['kill']('SIGTERM');const _0x3ffa50=setTimeout(()=>{try{if(_0x1c3db5['exitCode']===null)_0x1c3db5['kill']('SIGKILL');}catch{}},0x7d0);if(typeof _0x3ffa50['unref']==='function')_0x3ffa50['unref']();}}['stderrTail']=[];['spawnStdio'](){const _0x2e7270=this['spec'],_0x15ae5a=_0x2e7270['command']??[];if(_0x15ae5a['length']===0x0)throw new Error('MCP\x20server\x20\x27'+this['name']+'\x27\x20has\x20no\x20command\x20or\x20url');const {command:_0x5a0b45,args:_0xb8ba67}=(0x0,spawn_resolve_js_1['resolveMcpCommand'])(_0x15ae5a);this['stderrTail']=[],this['child']=(0x0,child_process_1['spawn'])(_0x5a0b45,_0xb8ba67,{'cwd':_0x2e7270['cwd'],'env':{...process.env,..._0x2e7270['env']??{}},'stdio':['pipe','pipe','pipe'],'windowsHide':!![]}),this['child']['stderr']?.['on']('data',_0x19b9c9=>{for(const _0x464eef of String(_0x19b9c9)['split']('\x0a')){const _0x782f1c=_0x464eef['trimEnd']();if(!_0x782f1c)continue;this['stderrTail']['push'](_0x782f1c['slice'](-0x1f4));if(this['stderrTail']['length']>0x14)this['stderrTail']['shift']();}}),this['rl']=readline['createInterface']({'input':this['child']['stdout']}),this['rl']['on']('line',_0x5c319c=>{try{const _0x2d6e47=JSON['parse'](_0x5c319c);if(_0x2d6e47['id']===undefined)return;const _0xeca195=this['pending']['get'](_0x2d6e47['id']);if(!_0xeca195)return;this['pending']['delete'](_0x2d6e47['id']);const _0x2ce894=_0x2d6e47;if(_0x2ce894['error']){const _0x179694=new McpError(_0x2ce894['error']['code'],_0x2ce894['error']['message'],_0x2ce894['error']['data']);_0xeca195['reject'](_0x179694);}else _0xeca195['resolve'](_0x2ce894['result']);}catch{}}),this['child']['on']('error',_0x254d28=>{this['lastError']=_0x254d28['message'],this['rejectAll'](new Error('MCP\x20'+this['name']+'\x20process\x20error:\x20'+_0x254d28['message']));}),this['child']['on']('exit',_0x132120=>{const _0x205091=this['stderrTail']['length']>0x0?'\x20Server\x20stderr:\x20'+this['stderrTail']['join']('\x20|\x20')['slice'](0x0,0x1f4):'';this['lastError']='exited\x20with\x20code\x20'+(_0x132120??'signal')+'.'+_0x205091,this['child']=null,this['initialized']=![],this['cachedTools']=null,this['rejectAll'](new Error('MCP\x20'+this['name']+'\x20exited\x20with\x20code\x20'+(_0x132120??'signal')+'.'+_0x205091));});}async['request'](_0x1c43ad,_0x44d420){this['lastRequestAt']=Date['now'](),this['lastError']='';if(!this['spec']['url']){if(!this['child'])throw new Error('MCP\x20\x27'+this['name']+'\x27\x20is\x20not\x20connected');return this['requestStdio'](_0x1c43ad,_0x44d420);}try{return await this['requestHttp'](_0x1c43ad,_0x44d420);}catch(_0x5af7da){if(!(_0x5af7da instanceof oauth_js_1['McpAuthError'])||!this['oauthEnabled']||this['authAttempted'])throw _0x5af7da;this['authAttempted']=!![];if(!process['stdin']['isTTY'])throw new oauth_js_1['McpAuthError'](_0x5af7da['message']+'\x20Run\x20`trayambak\x20mcp\x20auth\x20'+this['name']+'`\x20to\x20authorize\x20interactively.','auth-required');return await(0x0,oauth_js_1['authorizeMcpServer'])(this['name'],this['spec']['url'],this['oauthConfig']),await this['requestHttp'](_0x1c43ad,_0x44d420);}}['requestStdio'](_0x3c33c3,_0x2f7125){const _0x305352=this['nextId']++;return new Promise((_0x163da5,_0x14ea06)=>{const _0x55a23b=setTimeout(()=>{this['pending']['delete'](_0x305352);const _0x133dd9=this['stderrTail']['length']>0x0?'\x20Server\x20stderr:\x20'+this['stderrTail']['join']('\x20|\x20')['slice'](0x0,0x1f4):'';this['lastError']='timeout\x20on\x20\x27'+_0x3c33c3+'\x27.'+_0x133dd9,_0x14ea06(new Error('MCP\x20'+this['name']+':\x20timeout\x20on\x20\x27'+_0x3c33c3+'\x27.'+_0x133dd9));},this['timeoutMs']);this['pending']['set'](_0x305352,{'resolve':_0xf2aa12=>{clearTimeout(_0x55a23b),this['lastError']='',_0x163da5(_0xf2aa12);},'reject':_0x1ce7f4=>{clearTimeout(_0x55a23b),this['lastError']=_0x1ce7f4['message'],_0x14ea06(_0x1ce7f4);}});const _0x1bc6b4={'jsonrpc':'2.0','id':_0x305352,'method':_0x3c33c3,'params':_0x2f7125};this['child']['stdin']['write'](JSON['stringify'](_0x1bc6b4)+'\x0a');});}async['requestHttp'](_0x52fd9e,_0x1684c6){const _0x4623d9=new url['URL'](this['spec']['url']),_0x54ee3a=_0x4623d9['protocol']==='https:'?https:http,_0x17873c=this['nextId']++,_0x24e85a={'jsonrpc':'2.0','id':_0x17873c,'method':_0x52fd9e,'params':_0x1684c6},_0x586ca3=JSON['stringify'](_0x24e85a),_0x12e366={'Content-Type':'application/json','Accept':'application/json,\x20text/event-stream','Content-Length':String(Buffer['byteLength'](_0x586ca3)),...await this['httpHeaders']()};return new Promise((_0x43ee81,_0x459a76)=>{const _0x57aaa4=_0x54ee3a['request']({'hostname':_0x4623d9['hostname'],'port':_0x4623d9['port']||(_0x4623d9['protocol']==='https:'?0x1bb:0x50),'path':_0x4623d9['pathname']+_0x4623d9['search'],'method':'POST','headers':_0x12e366,'timeout':this['timeoutMs']},_0x11b153=>{const _0x3bf283=_0x11b153['statusCode']??0x0;let _0x2f0397='';_0x11b153['setEncoding']('utf8'),_0x11b153['on']('data',_0x50403a=>_0x2f0397+=_0x50403a),_0x11b153['on']('end',()=>{if(_0x3bf283===0x191){this['lastError']='HTTP\x20401\x20(authorization\x20required)',_0x459a76(new oauth_js_1['McpAuthError']('MCP\x20\x27'+this['name']+'\x27\x20server\x20responded\x20HTTP\x20401\x20(authorization\x20required).','auth-required'));return;}if(_0x3bf283>=0x190){this['lastError']='HTTP\x20'+_0x3bf283,_0x459a76(new Error('MCP\x20\x27'+this['name']+'\x27:\x20HTTP\x20'+_0x3bf283+'\x20from\x20'+this['spec']['url']+(_0x2f0397?':\x20'+_0x2f0397['slice'](0x0,0x12c):'')));return;}try{const _0x53ccea=_0x2f0397['split']('\x0a')['filter'](_0x222e9b=>_0x222e9b['startsWith']('data:'))['map'](_0x40adec=>_0x40adec['slice'](0x5)['trim']())['filter'](_0x4fb205=>_0x4fb205['length']>0x0&&_0x4fb205!=='[DONE]');let _0x3460f8=null,_0x2a2c66=![];for(const _0x52b21a of _0x53ccea){try{const _0x1b9643=JSON['parse'](_0x52b21a);_0x2a2c66=!![];if(_0x1b9643['id']!==undefined&&_0x1b9643['id']!==_0x17873c)continue;_0x3460f8=_0x1b9643;break;}catch{}}const _0x1d9a00=_0x3460f8??(_0x2a2c66?null:JSON['parse'](_0x2f0397));if(!_0x1d9a00)throw new Error('no\x20JSON-RPC\x20response\x20for\x20this\x20request\x20in\x20the\x20stream');if(_0x1d9a00['id']!==undefined&&_0x1d9a00['id']!==_0x17873c)return;_0x1d9a00['error']?_0x459a76(new McpError(_0x1d9a00['error']['code'],_0x1d9a00['error']['message'],_0x1d9a00['error']['data'])):(this['lastError']='',_0x43ee81(_0x1d9a00['result']));}catch(_0x144a6a){this['lastError']=_0x144a6a instanceof Error?_0x144a6a['message']:String(_0x144a6a),_0x459a76(new Error('MCP\x20'+this['name']+':\x20bad\x20response\x20from\x20'+this['spec']['url']+':\x20'+(_0x144a6a instanceof Error?_0x144a6a['message']:String(_0x144a6a))));}});});_0x57aaa4['on']('error',_0x2bac4a=>{this['lastError']=_0x2bac4a['message'],_0x459a76(new Error('MCP\x20'+this['name']+':\x20'+_0x2bac4a['message']));}),_0x57aaa4['on']('timeout',()=>{_0x57aaa4['destroy'](),this['lastError']='timeout',_0x459a76(new Error('MCP\x20'+this['name']+':\x20timeout'));}),_0x57aaa4['end'](_0x586ca3);});}['rejectAll'](_0x456a4c){for(const [,_0x2d91ae]of this['pending'])_0x2d91ae['reject'](_0x456a4c);this['pending']['clear']();}}exports['McpConnection']=McpConnection;function createMcpConnection(_0x47d66e,_0x3cb494){return new McpConnection(_0x47d66e,_0x3cb494);}var oauth_js_2=require('./oauth.js');Object['defineProperty'](exports,'McpAuthError',{'enumerable':!![],'get':function(){return oauth_js_2['McpAuthError'];}});var oauth_js_3=require('./oauth.js');Object['defineProperty'](exports,'authorizeMcpServer',{'enumerable':!![],'get':function(){return oauth_js_3['authorizeMcpServer'];}}),Object['defineProperty'](exports,'getValidAccessToken',{'enumerable':!![],'get':function(){return oauth_js_3['getValidAccessToken'];}}),Object['defineProperty'](exports,'getMcpAuthStatus',{'enumerable':!![],'get':function(){return oauth_js_3['getMcpAuthStatus'];}}),Object['defineProperty'](exports,'removeMcpAuth',{'enumerable':!![],'get':function(){return oauth_js_3['removeMcpAuth'];}}),Object['defineProperty'](exports,'authFilePath',{'enumerable':!![],'get':function(){return oauth_js_3['authFilePath'];}}),Object['defineProperty'](exports,'clearOAuthCaches',{'enumerable':!![],'get':function(){return oauth_js_3['clearOAuthCaches'];}});var spawn_resolve_js_2=require('./spawn-resolve.js');Object['defineProperty'](exports,'resolveExecutable',{'enumerable':!![],'get':function(){return spawn_resolve_js_2['resolveExecutable'];}}),Object['defineProperty'](exports,'resolveMcpCommand',{'enumerable':!![],'get':function(){return spawn_resolve_js_2['resolveMcpCommand'];}}),Object['defineProperty'](exports,'resolveNpmCliJs',{'enumerable':!![],'get':function(){return spawn_resolve_js_2['resolveNpmCliJs'];}}),Object['defineProperty'](exports,'resolveNpxCliJs',{'enumerable':!![],'get':function(){return spawn_resolve_js_2['resolveNpxCliJs'];}});
|
|
1
|
+
'use strict';var __createBinding=this&&this['__createBinding']||(Object['create']?function(_0xfd8e3e,_0x379471,_0x374cd3,_0x55fe3f){if(_0x55fe3f===undefined)_0x55fe3f=_0x374cd3;var _0xe658a0=Object['getOwnPropertyDescriptor'](_0x379471,_0x374cd3);(!_0xe658a0||('get'in _0xe658a0?!_0x379471['__esModule']:_0xe658a0['writable']||_0xe658a0['configurable']))&&(_0xe658a0={'enumerable':!![],'get':function(){return _0x379471[_0x374cd3];}}),Object['defineProperty'](_0xfd8e3e,_0x55fe3f,_0xe658a0);}:function(_0x2dc795,_0x478e9c,_0x29e560,_0x372cd0){if(_0x372cd0===undefined)_0x372cd0=_0x29e560;_0x2dc795[_0x372cd0]=_0x478e9c[_0x29e560];}),__setModuleDefault=this&&this['__setModuleDefault']||(Object['create']?function(_0x2fd8a9,_0x4c5c9a){Object['defineProperty'](_0x2fd8a9,'default',{'enumerable':!![],'value':_0x4c5c9a});}:function(_0x3f45a4,_0x5f47a4){_0x3f45a4['default']=_0x5f47a4;}),__importStar=this&&this['__importStar']||(function(){var _0x56e1f0=function(_0x4d3a93){return _0x56e1f0=Object['getOwnPropertyNames']||function(_0x4cca43){var _0x452fb3=[];for(var _0x3bc925 in _0x4cca43)if(Object['prototype']['hasOwnProperty']['call'](_0x4cca43,_0x3bc925))_0x452fb3[_0x452fb3['length']]=_0x3bc925;return _0x452fb3;},_0x56e1f0(_0x4d3a93);};return function(_0x2329d9){if(_0x2329d9&&_0x2329d9['__esModule'])return _0x2329d9;var _0x39c900={};if(_0x2329d9!=null){for(var _0x3e1555=_0x56e1f0(_0x2329d9),_0x54a657=0x0;_0x54a657<_0x3e1555['length'];_0x54a657++)if(_0x3e1555[_0x54a657]!=='default')__createBinding(_0x39c900,_0x2329d9,_0x3e1555[_0x54a657]);}return __setModuleDefault(_0x39c900,_0x2329d9),_0x39c900;};}());Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['resolveNpxCliJs']=exports['resolveNpmCliJs']=exports['resolveMcpCommand']=exports['resolveExecutable']=exports['clearOAuthCaches']=exports['authFilePath']=exports['removeMcpAuth']=exports['getMcpAuthStatus']=exports['getValidAccessToken']=exports['authorizeMcpServer']=exports['McpAuthError']=exports['McpConnection']=exports['McpError']=void 0x0,exports['createMcpConnection']=createMcpConnection;const child_process_1=require('child_process'),http=__importStar(require('http')),https=__importStar(require('https')),readline=__importStar(require('readline')),url=__importStar(require('url')),oauth_js_1=require('./oauth.js'),spawn_resolve_js_1=require('./spawn-resolve.js');class McpError extends Error{['code'];['data'];constructor(_0x40198c,_0x3fbcca,_0x572f62){super(_0x3fbcca),this['code']=_0x40198c,this['data']=_0x572f62;}}exports['McpError']=McpError;class McpConnection{['name'];['spec'];['child']=null;['rl']=null;['pending']=new Map();['nextId']=0x1;['initialized']=![];['lastRequestAt']=0x0;['lastError']='';['cachedTools']=null;['cachedToolsAt']=0x0;['cacheTtlMs']=0x493e0;['reconnecting']=![];['authAttempted']=![];constructor(_0x535de1,_0x992a49){this['name']=_0x535de1,this['spec']=_0x992a49;}get['timeoutMs'](){return this['spec']['timeoutMs']??0xea60;}get['oauthEnabled'](){return Boolean(this['spec']['url'])&&this['spec']['oauth']!==![];}get['oauthConfig'](){return typeof this['spec']['oauth']==='object'&&this['spec']['oauth']!==null?this['spec']['oauth']:{};}async['connect'](){if(this['initialized'])return;if(this['reconnecting']){const _0xec38ce=Date['now']();await new Promise((_0x156527,_0x3a4ab9)=>{const _0x1d8e4f=setInterval(()=>{if(!this['reconnecting']||Date['now']()-_0xec38ce>0x7530){clearInterval(_0x1d8e4f);if(this['reconnecting'])_0x3a4ab9(new Error('MCP\x20'+this['name']+':\x20reconnect\x20timed\x20out'));else _0x156527();}},0x32);});return;}const _0x6c20a1={'protocolVersion':'2024-11-05','capabilities':{},'clientInfo':{'name':'trayambak','version':'0.3.0'}};this['spec']['url']?await this['request']('initialize',_0x6c20a1):(this['spawnStdio'](),await this['request']('initialize',_0x6c20a1)),await this['notify']('notifications/initialized',{}),this['initialized']=!![];}['notify'](_0x33efbc,_0x5adc4b){this['lastRequestAt']=Date['now']();if(this['spec']['url'])return this['postNotificationHttp'](_0x33efbc,_0x5adc4b);if(!this['child'])return Promise['resolve']();try{this['child']['stdin']['write'](JSON['stringify']({'jsonrpc':'2.0','method':_0x33efbc,'params':_0x5adc4b})+'\x0a');}catch{}return Promise['resolve']();}async['httpHeaders'](){const _0x1394a9={...this['spec']['headers']??{}};if(this['oauthEnabled'])try{const _0x418d43=await(0x0,oauth_js_1['getValidAccessToken'])(this['name'],this['spec']['url'],this['oauthConfig']);if(_0x418d43)_0x1394a9['Authorization']='Bearer\x20'+_0x418d43;}catch(_0x33d0f7){this['lastError']='token\x20lookup\x20failed:\x20'+(_0x33d0f7 instanceof Error?_0x33d0f7['message']:String(_0x33d0f7));}return _0x1394a9;}async['postNotificationHttp'](_0x25cf25,_0x26eb44){const _0x1d552a=new url['URL'](this['spec']['url']),_0x3c994f=_0x1d552a['protocol']==='https:'?https:http,_0x572a4c=JSON['stringify']({'jsonrpc':'2.0','method':_0x25cf25,'params':_0x26eb44}),_0x57c01b=await this['httpHeaders']();return new Promise(_0x34b1a9=>{const _0x24a770=_0x3c994f['request']({'hostname':_0x1d552a['hostname'],'port':_0x1d552a['port']||(_0x1d552a['protocol']==='https:'?0x1bb:0x50),'path':_0x1d552a['pathname']+_0x1d552a['search'],'method':'POST','headers':{'Content-Type':'application/json','Accept':'application/json,\x20text/event-stream','Content-Length':String(Buffer['byteLength'](_0x572a4c)),..._0x57c01b},'timeout':this['timeoutMs']},_0x1ce239=>{_0x1ce239['resume'](),_0x1ce239['on']('end',()=>_0x34b1a9());});_0x24a770['on']('error',()=>_0x34b1a9()),_0x24a770['on']('timeout',()=>{_0x24a770['destroy'](),_0x34b1a9();}),_0x24a770['end'](_0x572a4c);});}async['status'](){const _0x1854f8=this['child']!==null&&this['child']['exitCode']===null&&!this['child']['killed'],_0x4ce006=_0x1854f8||this['spec']['url']!==undefined;let _0x104d0e='disconnected';_0x4ce006&&(_0x104d0e=this['spec']['url']?'http':'stdio');const _0xdc81b5={'name':this['name'],'connected':_0x4ce006,'transport':_0x104d0e,'initialized':this['initialized'],'lastRequestAt':this['lastRequestAt']>0x0?this['lastRequestAt']:undefined,'lastError':this['lastError']||undefined};if(_0x4ce006&&this['spec']['url'])try{await this['request']('tools/list',{}),_0xdc81b5['connected']=!![];}catch(_0x1ad3fe){_0xdc81b5['connected']=![],_0xdc81b5['lastError']=_0x1ad3fe instanceof Error?_0x1ad3fe['message']:String(_0x1ad3fe);}return _0xdc81b5;}async['reconnect'](){this['reconnecting']=!![],this['close'](),this['initialized']=![],this['cachedTools']=null,this['cachedToolsAt']=0x0,this['lastError']='';try{await this['connect']();}finally{this['reconnecting']=![];}}async['listTools'](_0x3a129d){await this['connect']();const _0x3d4331=_0x3a129d??this['cacheTtlMs'],_0x15e4f5=Date['now']();if(this['cachedTools']!==null&&_0x15e4f5-this['cachedToolsAt']<_0x3d4331)return this['cachedTools'];const _0x2be957=[];let _0x5acff9;for(let _0x5d0c42=0x0;_0x5d0c42<0x32;_0x5d0c42++){const _0x3eddfa=await this['request']('tools/list',_0x5acff9?{'cursor':_0x5acff9}:{});_0x2be957['push'](..._0x3eddfa?.['tools']??[]),_0x5acff9=_0x3eddfa?.['nextCursor'];if(!_0x5acff9)break;}return this['cachedTools']=_0x2be957,this['cachedToolsAt']=_0x15e4f5,_0x2be957;}async['listResources'](){await this['connect']();try{const _0x35ee88=[];let _0x4aad31;for(let _0x4f3fea=0x0;_0x4f3fea<0x32;_0x4f3fea++){const _0x5416a8=await this['request']('resources/list',_0x4aad31?{'cursor':_0x4aad31}:{});_0x35ee88['push'](..._0x5416a8?.['resources']??[]),_0x4aad31=_0x5416a8?.['nextCursor'];if(!_0x4aad31)break;}return _0x35ee88;}catch(_0x9e5431){if(_0x9e5431 instanceof McpError&&_0x9e5431['code']===-0x7f59)return[];throw _0x9e5431;}}async['readResource'](_0x10dca4){await this['connect']();try{const _0x226aae=await this['request']('resources/read',{'uri':_0x10dca4});if(_0x226aae?.['contents'])return _0x226aae['contents']['map'](_0x5b37f4=>typeof _0x5b37f4['text']==='string'?_0x5b37f4['text']:typeof _0x5b37f4['blob']==='string'?'[binary\x20'+(_0x5b37f4['mimeType']??'blob')+'\x20'+(_0x5b37f4['blob']??'')['length']+'\x20chars\x20base64]':JSON['stringify'](_0x5b37f4))['join']('\x0a');return'';}catch(_0xb0abc1){if(_0xb0abc1 instanceof McpError&&_0xb0abc1['code']===-0x7f59)return'';throw _0xb0abc1;}}async['listPrompts'](){await this['connect']();try{const _0x5cdc3f=[];let _0x56505;for(let _0x3e7638=0x0;_0x3e7638<0x32;_0x3e7638++){const _0x12a42f=await this['request']('prompts/list',_0x56505?{'cursor':_0x56505}:{});_0x5cdc3f['push'](..._0x12a42f?.['prompts']??[]),_0x56505=_0x12a42f?.['nextCursor'];if(!_0x56505)break;}return _0x5cdc3f;}catch(_0x50f25a){if(_0x50f25a instanceof McpError&&_0x50f25a['code']===-0x7f59)return[];throw _0x50f25a;}}async['getPrompt'](_0x49ca78,_0x160a4e){await this['connect']();try{const _0x4985fb=await this['request']('prompts/get',{'name':_0x49ca78,'arguments':_0x160a4e??{}}),_0x1fe932=_0x4985fb?.['messages']??_0x4985fb?.['prompt']?.['messages'];if(!_0x1fe932)return null;return{'name':_0x49ca78,'messages':_0x1fe932};}catch(_0xda7988){if(_0xda7988 instanceof McpError&&_0xda7988['code']===-0x7f59)return null;throw _0xda7988;}}async['callTool'](_0x59d282,_0x3ef0e5){return await this['connect'](),await this['request']('tools/call',{'name':_0x59d282,'arguments':_0x3ef0e5});}['close'](){const _0x34ea87=this['child'];this['child']=null,this['rl']?.['close'](),this['rl']=null,this['initialized']=![],this['cachedTools']=null,this['authAttempted']=![],this['rejectAll'](new Error('MCP\x20'+this['name']+'\x20connection\x20closed'));if(_0x34ea87&&_0x34ea87['exitCode']===null&&!_0x34ea87['killed']){_0x34ea87['kill']('SIGTERM');const _0x9ca76d=setTimeout(()=>{try{if(_0x34ea87['exitCode']===null)_0x34ea87['kill']('SIGKILL');}catch{}},0x7d0);if(typeof _0x9ca76d['unref']==='function')_0x9ca76d['unref']();}}['stderrTail']=[];['spawnStdio'](){const _0x30e28e=this['spec'],_0x4120e6=_0x30e28e['command']??[];if(_0x4120e6['length']===0x0)throw new Error('MCP\x20server\x20\x27'+this['name']+'\x27\x20has\x20no\x20command\x20or\x20url');const {command:_0x13526a,args:_0x3cde5b}=(0x0,spawn_resolve_js_1['resolveMcpCommand'])(_0x4120e6);this['stderrTail']=[],this['child']=(0x0,child_process_1['spawn'])(_0x13526a,_0x3cde5b,{'cwd':_0x30e28e['cwd'],'env':{...process.env,..._0x30e28e['env']??{}},'stdio':['pipe','pipe','pipe'],'windowsHide':!![]}),this['child']['stderr']?.['on']('data',_0x1ecfcc=>{for(const _0x4e746b of String(_0x1ecfcc)['split']('\x0a')){const _0x5dcf71=_0x4e746b['trimEnd']();if(!_0x5dcf71)continue;this['stderrTail']['push'](_0x5dcf71['slice'](-0x1f4));if(this['stderrTail']['length']>0x14)this['stderrTail']['shift']();}}),this['rl']=readline['createInterface']({'input':this['child']['stdout']}),this['rl']['on']('line',_0xc86a98=>{try{const _0x11a13a=JSON['parse'](_0xc86a98);if(_0x11a13a['id']===undefined)return;const _0x2afbc3=this['pending']['get'](_0x11a13a['id']);if(!_0x2afbc3)return;this['pending']['delete'](_0x11a13a['id']);const _0xb21abf=_0x11a13a;if(_0xb21abf['error']){const _0x36072e=new McpError(_0xb21abf['error']['code'],_0xb21abf['error']['message'],_0xb21abf['error']['data']);_0x2afbc3['reject'](_0x36072e);}else _0x2afbc3['resolve'](_0xb21abf['result']);}catch{}}),this['child']['on']('error',_0x359c98=>{this['lastError']=_0x359c98['message'],this['rejectAll'](new Error('MCP\x20'+this['name']+'\x20process\x20error:\x20'+_0x359c98['message']));}),this['child']['on']('exit',_0x26506c=>{const _0x23108c=this['stderrTail']['length']>0x0?'\x20Server\x20stderr:\x20'+this['stderrTail']['join']('\x20|\x20')['slice'](0x0,0x1f4):'';this['lastError']='exited\x20with\x20code\x20'+(_0x26506c??'signal')+'.'+_0x23108c,this['child']=null,this['initialized']=![],this['cachedTools']=null,this['rejectAll'](new Error('MCP\x20'+this['name']+'\x20exited\x20with\x20code\x20'+(_0x26506c??'signal')+'.'+_0x23108c));});}async['request'](_0x58686e,_0x5688a4){this['lastRequestAt']=Date['now'](),this['lastError']='';if(!this['spec']['url']){if(!this['child'])throw new Error('MCP\x20\x27'+this['name']+'\x27\x20is\x20not\x20connected');return this['requestStdio'](_0x58686e,_0x5688a4);}try{return await this['requestHttp'](_0x58686e,_0x5688a4);}catch(_0x39b534){if(!(_0x39b534 instanceof oauth_js_1['McpAuthError'])||!this['oauthEnabled']||this['authAttempted'])throw _0x39b534;this['authAttempted']=!![];if(!process['stdin']['isTTY'])throw new oauth_js_1['McpAuthError'](_0x39b534['message']+'\x20Run\x20`trayambak\x20mcp\x20auth\x20'+this['name']+'`\x20to\x20authorize\x20interactively.','auth-required');return await(0x0,oauth_js_1['authorizeMcpServer'])(this['name'],this['spec']['url'],this['oauthConfig']),await this['requestHttp'](_0x58686e,_0x5688a4);}}['requestStdio'](_0x26ca69,_0x2e6a49){const _0x32d7e3=this['nextId']++;return new Promise((_0x5c700c,_0x444433)=>{const _0x2ed1ea=setTimeout(()=>{this['pending']['delete'](_0x32d7e3);const _0x25477e=this['stderrTail']['length']>0x0?'\x20Server\x20stderr:\x20'+this['stderrTail']['join']('\x20|\x20')['slice'](0x0,0x1f4):'';this['lastError']='timeout\x20on\x20\x27'+_0x26ca69+'\x27.'+_0x25477e,_0x444433(new Error('MCP\x20'+this['name']+':\x20timeout\x20on\x20\x27'+_0x26ca69+'\x27.'+_0x25477e));},this['timeoutMs']);this['pending']['set'](_0x32d7e3,{'resolve':_0x2856a1=>{clearTimeout(_0x2ed1ea),this['lastError']='',_0x5c700c(_0x2856a1);},'reject':_0x2c1baa=>{clearTimeout(_0x2ed1ea),this['lastError']=_0x2c1baa['message'],_0x444433(_0x2c1baa);}});const _0x2df949={'jsonrpc':'2.0','id':_0x32d7e3,'method':_0x26ca69,'params':_0x2e6a49};this['child']['stdin']['write'](JSON['stringify'](_0x2df949)+'\x0a');});}async['requestHttp'](_0x3807ca,_0x34d9b3){const _0x5c7e1f=new url['URL'](this['spec']['url']),_0x270b5a=_0x5c7e1f['protocol']==='https:'?https:http,_0x516c94=this['nextId']++,_0x18eef4={'jsonrpc':'2.0','id':_0x516c94,'method':_0x3807ca,'params':_0x34d9b3},_0x486507=JSON['stringify'](_0x18eef4),_0x4f6457={'Content-Type':'application/json','Accept':'application/json,\x20text/event-stream','Content-Length':String(Buffer['byteLength'](_0x486507)),...await this['httpHeaders']()};return new Promise((_0x2f68cb,_0x4025fc)=>{const _0x5d9778=_0x270b5a['request']({'hostname':_0x5c7e1f['hostname'],'port':_0x5c7e1f['port']||(_0x5c7e1f['protocol']==='https:'?0x1bb:0x50),'path':_0x5c7e1f['pathname']+_0x5c7e1f['search'],'method':'POST','headers':_0x4f6457,'timeout':this['timeoutMs']},_0x319bb4=>{const _0x4ca337=_0x319bb4['statusCode']??0x0;let _0x1ee6ed='';_0x319bb4['setEncoding']('utf8'),_0x319bb4['on']('data',_0x284643=>_0x1ee6ed+=_0x284643),_0x319bb4['on']('end',()=>{if(_0x4ca337===0x191){this['lastError']='HTTP\x20401\x20(authorization\x20required)',_0x4025fc(new oauth_js_1['McpAuthError']('MCP\x20\x27'+this['name']+'\x27\x20server\x20responded\x20HTTP\x20401\x20(authorization\x20required).','auth-required'));return;}if(_0x4ca337>=0x190){this['lastError']='HTTP\x20'+_0x4ca337,_0x4025fc(new Error('MCP\x20\x27'+this['name']+'\x27:\x20HTTP\x20'+_0x4ca337+'\x20from\x20'+this['spec']['url']+(_0x1ee6ed?':\x20'+_0x1ee6ed['slice'](0x0,0x12c):'')));return;}try{const _0x1573a6=_0x1ee6ed['split']('\x0a')['filter'](_0x3991ed=>_0x3991ed['startsWith']('data:'))['map'](_0x35215c=>_0x35215c['slice'](0x5)['trim']())['filter'](_0x313898=>_0x313898['length']>0x0&&_0x313898!=='[DONE]');let _0x24cd6a=null,_0x4c2194=![];for(const _0x1b03ac of _0x1573a6){try{const _0x2de136=JSON['parse'](_0x1b03ac);_0x4c2194=!![];if(_0x2de136['id']!==undefined&&_0x2de136['id']!==_0x516c94)continue;_0x24cd6a=_0x2de136;break;}catch{}}const _0x3c6884=_0x24cd6a??(_0x4c2194?null:JSON['parse'](_0x1ee6ed));if(!_0x3c6884)throw new Error('no\x20JSON-RPC\x20response\x20for\x20this\x20request\x20in\x20the\x20stream');if(_0x3c6884['id']!==undefined&&_0x3c6884['id']!==_0x516c94)return;_0x3c6884['error']?_0x4025fc(new McpError(_0x3c6884['error']['code'],_0x3c6884['error']['message'],_0x3c6884['error']['data'])):(this['lastError']='',_0x2f68cb(_0x3c6884['result']));}catch(_0x2f45e5){this['lastError']=_0x2f45e5 instanceof Error?_0x2f45e5['message']:String(_0x2f45e5),_0x4025fc(new Error('MCP\x20'+this['name']+':\x20bad\x20response\x20from\x20'+this['spec']['url']+':\x20'+(_0x2f45e5 instanceof Error?_0x2f45e5['message']:String(_0x2f45e5))));}});});_0x5d9778['on']('error',_0x215580=>{this['lastError']=_0x215580['message'],_0x4025fc(new Error('MCP\x20'+this['name']+':\x20'+_0x215580['message']));}),_0x5d9778['on']('timeout',()=>{_0x5d9778['destroy'](),this['lastError']='timeout',_0x4025fc(new Error('MCP\x20'+this['name']+':\x20timeout'));}),_0x5d9778['end'](_0x486507);});}['rejectAll'](_0x2c198d){for(const [,_0x356523]of this['pending'])_0x356523['reject'](_0x2c198d);this['pending']['clear']();}}exports['McpConnection']=McpConnection;function createMcpConnection(_0x464c7a,_0xeb05cd){return new McpConnection(_0x464c7a,_0xeb05cd);}var oauth_js_2=require('./oauth.js');Object['defineProperty'](exports,'McpAuthError',{'enumerable':!![],'get':function(){return oauth_js_2['McpAuthError'];}});var oauth_js_3=require('./oauth.js');Object['defineProperty'](exports,'authorizeMcpServer',{'enumerable':!![],'get':function(){return oauth_js_3['authorizeMcpServer'];}}),Object['defineProperty'](exports,'getValidAccessToken',{'enumerable':!![],'get':function(){return oauth_js_3['getValidAccessToken'];}}),Object['defineProperty'](exports,'getMcpAuthStatus',{'enumerable':!![],'get':function(){return oauth_js_3['getMcpAuthStatus'];}}),Object['defineProperty'](exports,'removeMcpAuth',{'enumerable':!![],'get':function(){return oauth_js_3['removeMcpAuth'];}}),Object['defineProperty'](exports,'authFilePath',{'enumerable':!![],'get':function(){return oauth_js_3['authFilePath'];}}),Object['defineProperty'](exports,'clearOAuthCaches',{'enumerable':!![],'get':function(){return oauth_js_3['clearOAuthCaches'];}});var spawn_resolve_js_2=require('./spawn-resolve.js');Object['defineProperty'](exports,'resolveExecutable',{'enumerable':!![],'get':function(){return spawn_resolve_js_2['resolveExecutable'];}}),Object['defineProperty'](exports,'resolveMcpCommand',{'enumerable':!![],'get':function(){return spawn_resolve_js_2['resolveMcpCommand'];}}),Object['defineProperty'](exports,'resolveNpmCliJs',{'enumerable':!![],'get':function(){return spawn_resolve_js_2['resolveNpmCliJs'];}}),Object['defineProperty'](exports,'resolveNpxCliJs',{'enumerable':!![],'get':function(){return spawn_resolve_js_2['resolveNpxCliJs'];}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var __createBinding=this&&this['__createBinding']||(Object['create']?function(_0xcb98b9,_0x343298,_0x2fc628,_0x20146d){if(_0x20146d===undefined)_0x20146d=_0x2fc628;var _0x2d37c3=Object['getOwnPropertyDescriptor'](_0x343298,_0x2fc628);(!_0x2d37c3||('get'in _0x2d37c3?!_0x343298['__esModule']:_0x2d37c3['writable']||_0x2d37c3['configurable']))&&(_0x2d37c3={'enumerable':!![],'get':function(){return _0x343298[_0x2fc628];}}),Object['defineProperty'](_0xcb98b9,_0x20146d,_0x2d37c3);}:function(_0x2a5d9d,_0x2cd8f9,_0x35ce6c,_0x2d795d){if(_0x2d795d===undefined)_0x2d795d=_0x35ce6c;_0x2a5d9d[_0x2d795d]=_0x2cd8f9[_0x35ce6c];}),__setModuleDefault=this&&this['__setModuleDefault']||(Object['create']?function(_0x259c68,_0x4364ec){Object['defineProperty'](_0x259c68,'default',{'enumerable':!![],'value':_0x4364ec});}:function(_0x16034b,_0x413a28){_0x16034b['default']=_0x413a28;}),__importStar=this&&this['__importStar']||(function(){var _0x3aba0a=function(_0x30db32){return _0x3aba0a=Object['getOwnPropertyNames']||function(_0x2d0970){var _0x7fde8e=[];for(var _0x330024 in _0x2d0970)if(Object['prototype']['hasOwnProperty']['call'](_0x2d0970,_0x330024))_0x7fde8e[_0x7fde8e['length']]=_0x330024;return _0x7fde8e;},_0x3aba0a(_0x30db32);};return function(_0x18a3ec){if(_0x18a3ec&&_0x18a3ec['__esModule'])return _0x18a3ec;var _0x12e436={};if(_0x18a3ec!=null){for(var _0x3c423c=_0x3aba0a(_0x18a3ec),_0x1b92c1=0x0;_0x1b92c1<_0x3c423c['length'];_0x1b92c1++)if(_0x3c423c[_0x1b92c1]!=='default')__createBinding(_0x12e436,_0x18a3ec,_0x3c423c[_0x1b92c1]);}return __setModuleDefault(_0x12e436,_0x18a3ec),_0x12e436;};}());Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['OAUTH_CALLBACK_TIMEOUT_MS']=exports['OAUTH_CALLBACK_PATH']=exports['OAUTH_CALLBACK_PORT']=void 0x0,exports['parseRedirectUri']=parseRedirectUri,exports['isPortInUse']=isPortInUse,exports['ensureRunning']=ensureRunning,exports['waitForCallback']=waitForCallback,exports['cancelPending']=cancelPending,exports['stop']=stop,exports['isRunning']=isRunning;const http=__importStar(require('http')),net=__importStar(require('net'));exports['OAUTH_CALLBACK_PORT']=0x4da4,exports['OAUTH_CALLBACK_PATH']='/mcp/oauth/callback',exports['OAUTH_CALLBACK_TIMEOUT_MS']=0x5*0x3c*0x3e8;const DEFAULT_PORT_FALLBACKS=0x5;function parseRedirectUri(_0x11cb97){if(!_0x11cb97)return{'port':exports['OAUTH_CALLBACK_PORT'],'path':exports['OAUTH_CALLBACK_PATH']};try{const _0x1b33e8=new URL(_0x11cb97),_0x3db315=_0x1b33e8['port']?parseInt(_0x1b33e8['port'],0xa):_0x1b33e8['protocol']==='https:'?0x1bb:0x50,_0x1daf64=_0x1b33e8['pathname']&&_0x1b33e8['pathname']!=='/'?_0x1b33e8['pathname']:exports['OAUTH_CALLBACK_PATH'];return{'port':_0x3db315,'path':_0x1daf64};}catch{return{'port':exports['OAUTH_CALLBACK_PORT'],'path':exports['OAUTH_CALLBACK_PATH']};}}function escapeHtml(_0x49f95a){return _0x49f95a['replace'](/&/g,'&')['replace'](/</g,'<')['replace'](/>/g,'>')['replace'](/"/g,'"')['replace'](/'/g,''');}const HTML_SUCCESS='<!DOCTYPE\x20html>\x0a<html>\x0a<head>\x0a\x20\x20<title>Trayambak\x20-\x20Authorization\x20Successful</title>\x0a\x20\x20<style>\x0a\x20\x20\x20\x20body\x20{\x20font-family:\x20system-ui,\x20-apple-system,\x20sans-serif;\x20display:\x20flex;\x20justify-content:\x20center;\x20align-items:\x20center;\x20height:\x20100vh;\x20margin:\x200;\x20background:\x20#1a1a2e;\x20color:\x20#eee;\x20}\x0a\x20\x20\x20\x20.container\x20{\x20text-align:\x20center;\x20padding:\x202rem;\x20}\x0a\x20\x20\x20\x20h1\x20{\x20color:\x20#4ade80;\x20margin-bottom:\x201rem;\x20}\x0a\x20\x20\x20\x20p\x20{\x20color:\x20#aaa;\x20}\x0a\x20\x20</style>\x0a</head>\x0a<body>\x0a\x20\x20<div\x20class=\x22container\x22>\x0a\x20\x20\x20\x20<h1>Authorization\x20Successful</h1>\x0a\x20\x20\x20\x20<p>You\x20can\x20close\x20this\x20window\x20and\x20return\x20to\x20Trayambak.</p>\x0a\x20\x20</div>\x0a\x20\x20<script>setTimeout(()\x20=>\x20window.close(),\x202000);</script>\x0a</body>\x0a</html>',HTML_ERROR=_0x4ad169=>'<!DOCTYPE\x20html>\x0a<html>\x0a<head>\x0a\x20\x20<title>Trayambak\x20-\x20Authorization\x20Failed</title>\x0a\x20\x20<style>\x0a\x20\x20\x20\x20body\x20{\x20font-family:\x20system-ui,\x20-apple-system,\x20sans-serif;\x20display:\x20flex;\x20justify-content:\x20center;\x20align-items:\x20center;\x20height:\x20100vh;\x20margin:\x200;\x20background:\x20#1a1a2e;\x20color:\x20#eee;\x20}\x0a\x20\x20\x20\x20.container\x20{\x20text-align:\x20center;\x20padding:\x202rem;\x20}\x0a\x20\x20\x20\x20h1\x20{\x20color:\x20#f87171;\x20margin-bottom:\x201rem;\x20}\x0a\x20\x20\x20\x20p\x20{\x20color:\x20#aaa;\x20}\x0a\x20\x20\x20\x20.detail\x20{\x20color:\x20#fca5a5;\x20font-family:\x20monospace;\x20margin-top:\x201rem;\x20padding:\x201rem;\x20background:\x20rgba(248,113,113,0.1);\x20border-radius:\x200.5rem;\x20white-space:\x20pre-wrap;\x20}\x0a\x20\x20</style>\x0a</head>\x0a<body>\x0a\x20\x20<div\x20class=\x22container\x22>\x0a\x20\x20\x20\x20<h1>Authorization\x20Failed</h1>\x0a\x20\x20\x20\x20<p>An\x20error\x20occurred\x20during\x20authorization.</p>\x0a\x20\x20\x20\x20<pre\x20class=\x22detail\x22>'+escapeHtml(_0x4ad169)+'</pre>\x0a\x20\x20</div>\x0a</body>\x0a</html>';let server,currentPort=exports['OAUTH_CALLBACK_PORT'],currentPath=exports['OAUTH_CALLBACK_PATH'];const pendingAuths=new Map(),mcpNameToState=new Map();function cleanupStateIndex(_0x4e8468){for(const [_0x473a54,_0x2d0162]of mcpNameToState){if(_0x2d0162===_0x4e8468){mcpNameToState['delete'](_0x473a54);break;}}}function stopIfIdle(){if(pendingAuths['size']>0x0||!server)return;const _0x15034f=server;server=undefined,_0x15034f['close'](),setImmediate(()=>{;_0x15034f['closeIdleConnections']?.();});}function handleRequest(_0x1a6de9,_0x4891ad){const _0x3e5213=new URL(_0x1a6de9['url']||'/','http://127.0.0.1:'+currentPort);if(_0x3e5213['pathname']!==currentPath){_0x4891ad['writeHead'](0x194),_0x4891ad['end']('Not\x20found');return;}const _0x11699d=_0x3e5213['searchParams']['get']('code'),_0x1e5daf=_0x3e5213['searchParams']['get']('state'),_0xa796fa=_0x3e5213['searchParams']['get']('error'),_0x11c5f5=_0x3e5213['searchParams']['get']('error_description');if(!_0x1e5daf){const _0x4f8bf6='Missing\x20required\x20state\x20parameter\x20-\x20potential\x20CSRF\x20attack';_0x4891ad['writeHead'](0x190,{'Content-Type':'text/html;\x20charset=utf-8'}),_0x4891ad['end'](HTML_ERROR(_0x4f8bf6));return;}if(_0xa796fa){const _0xdda703=_0x11c5f5||_0xa796fa,_0x180859=pendingAuths['get'](_0x1e5daf);_0x180859&&(clearTimeout(_0x180859['timeout']),pendingAuths['delete'](_0x1e5daf),cleanupStateIndex(_0x1e5daf),_0x180859['reject'](new Error(_0xdda703)));_0x4891ad['writeHead'](0xc8,{'Content-Type':'text/html;\x20charset=utf-8'}),_0x4891ad['end'](HTML_ERROR(_0xdda703)),stopIfIdle();return;}if(!_0x11699d){_0x4891ad['writeHead'](0x190,{'Content-Type':'text/html;\x20charset=utf-8'}),_0x4891ad['end'](HTML_ERROR('No\x20authorization\x20code\x20provided'));return;}if(!pendingAuths['has'](_0x1e5daf)){const _0x5dd2f4='Invalid\x20or\x20expired\x20state\x20parameter\x20-\x20potential\x20CSRF\x20attack';_0x4891ad['writeHead'](0x190,{'Content-Type':'text/html;\x20charset=utf-8'}),_0x4891ad['end'](HTML_ERROR(_0x5dd2f4));return;}const _0x4adba5=pendingAuths['get'](_0x1e5daf);clearTimeout(_0x4adba5['timeout']),pendingAuths['delete'](_0x1e5daf),cleanupStateIndex(_0x1e5daf),_0x4adba5['resolve'](_0x11699d),_0x4891ad['writeHead'](0xc8,{'Content-Type':'text/html;\x20charset=utf-8'}),_0x4891ad['end'](HTML_SUCCESS),stopIfIdle();}function isPortInUse(_0x34512c=exports['OAUTH_CALLBACK_PORT']){return new Promise(_0x4e4bf2=>{const _0x1f2e5c=net['createConnection'](_0x34512c,'127.0.0.1');_0x1f2e5c['on']('connect',()=>{_0x1f2e5c['destroy'](),_0x4e4bf2(!![]);}),_0x1f2e5c['on']('error',()=>{_0x4e4bf2(![]);});});}function listen(_0x449a38,_0x1056e1){return new Promise(_0x2ee19e=>{const _0x36168e=http['createServer'](handleRequest),_0x3ec330=()=>{_0x36168e['removeListener']('listening',_0x3a739b),_0x2ee19e(![]);},_0x3a739b=()=>{_0x36168e['removeListener']('error',_0x3ec330),_0x36168e['on']('error',()=>{}),server=_0x36168e,currentPort=_0x449a38,currentPath=_0x1056e1,_0x2ee19e(!![]);};_0x36168e['once']('error',_0x3ec330),_0x36168e['once']('listening',_0x3a739b),_0x36168e['listen'](_0x449a38,'127.0.0.1');});}async function ensureRunning(_0x1c231b){const _0x1e5929=parseRedirectUri(_0x1c231b);if(server){const _0x500d21=_0x1c231b?currentPort===_0x1e5929['port']&¤tPath===_0x1e5929['path']:currentPath===exports['OAUTH_CALLBACK_PATH'];if(_0x500d21)return{'redirectUri':'http://127.0.0.1:'+currentPort+currentPath,'port':currentPort,'path':currentPath};await stop();}if(_0x1c231b){const _0xd1ebde=await listen(_0x1e5929['port'],_0x1e5929['path']);if(!_0xd1ebde)throw new Error('OAuth\x20callback\x20port\x20'+_0x1e5929['port']+'\x20is\x20already\x20in\x20use.\x20Free\x20it\x20or\x20set\x20a\x20different\x20callbackPort/redirectUri.');}else{let _0x4c5331=![];for(let _0x541f5b=exports['OAUTH_CALLBACK_PORT'];_0x541f5b<exports['OAUTH_CALLBACK_PORT']+DEFAULT_PORT_FALLBACKS&&!_0x4c5331;_0x541f5b++){_0x4c5331=await listen(_0x541f5b,exports['OAUTH_CALLBACK_PATH']);}if(!_0x4c5331)throw new Error('Could\x20not\x20bind\x20an\x20OAuth\x20callback\x20port\x20(tried\x20'+exports['OAUTH_CALLBACK_PORT']+'-'+(exports['OAUTH_CALLBACK_PORT']+DEFAULT_PORT_FALLBACKS-0x1)+'\x20on\x20127.0.0.1).');}return{'redirectUri':'http://127.0.0.1:'+currentPort+currentPath,'port':currentPort,'path':currentPath};}function waitForCallback(_0x54d641,_0x5360de,_0x337873=exports['OAUTH_CALLBACK_TIMEOUT_MS']){if(_0x5360de)mcpNameToState['set'](_0x5360de,_0x54d641);return new Promise((_0x55f803,_0x1c4e02)=>{const _0x51e99e=setTimeout(()=>{if(pendingAuths['has'](_0x54d641)){pendingAuths['delete'](_0x54d641);if(_0x5360de)mcpNameToState['delete'](_0x5360de);_0x1c4e02(new Error('OAuth\x20callback\x20timeout\x20-\x20authorization\x20took\x20too\x20long')),stopIfIdle();}},_0x337873);pendingAuths['set'](_0x54d641,{'resolve':_0x55f803,'reject':_0x1c4e02,'timeout':_0x51e99e});});}function cancelPending(_0x50d4d7){const _0x4bbed9=mcpNameToState['get'](_0x50d4d7),_0x4e0e92=_0x4bbed9??_0x50d4d7,_0xff29ca=pendingAuths['get'](_0x4e0e92);_0xff29ca&&(clearTimeout(_0xff29ca['timeout']),pendingAuths['delete'](_0x4e0e92),mcpNameToState['delete'](_0x50d4d7),_0xff29ca['reject'](new Error('Authorization\x20cancelled')),stopIfIdle());}async function stop(){if(server){const _0x59a5f1=server;server=undefined,_0x59a5f1['closeAllConnections']?.(),await new Promise(_0x1280ba=>_0x59a5f1['close'](()=>_0x1280ba()));}for(const [,_0x16be62]of pendingAuths){clearTimeout(_0x16be62['timeout']),_0x16be62['reject'](new Error('OAuth\x20callback\x20server\x20stopped'));}pendingAuths['clear'](),mcpNameToState['clear']();}function isRunning(){return server!==undefined;}
|
|
1
|
+
'use strict';var __createBinding=this&&this['__createBinding']||(Object['create']?function(_0x498bb4,_0x59215e,_0x3f7a38,_0x285992){if(_0x285992===undefined)_0x285992=_0x3f7a38;var _0x31375f=Object['getOwnPropertyDescriptor'](_0x59215e,_0x3f7a38);(!_0x31375f||('get'in _0x31375f?!_0x59215e['__esModule']:_0x31375f['writable']||_0x31375f['configurable']))&&(_0x31375f={'enumerable':!![],'get':function(){return _0x59215e[_0x3f7a38];}}),Object['defineProperty'](_0x498bb4,_0x285992,_0x31375f);}:function(_0xc1c53a,_0x68f596,_0x51aba9,_0x59e0f9){if(_0x59e0f9===undefined)_0x59e0f9=_0x51aba9;_0xc1c53a[_0x59e0f9]=_0x68f596[_0x51aba9];}),__setModuleDefault=this&&this['__setModuleDefault']||(Object['create']?function(_0x54bc72,_0xdf6374){Object['defineProperty'](_0x54bc72,'default',{'enumerable':!![],'value':_0xdf6374});}:function(_0x4590ef,_0x32942b){_0x4590ef['default']=_0x32942b;}),__importStar=this&&this['__importStar']||(function(){var _0x553b29=function(_0x151c12){return _0x553b29=Object['getOwnPropertyNames']||function(_0x45579b){var _0x1bfda1=[];for(var _0x1aae96 in _0x45579b)if(Object['prototype']['hasOwnProperty']['call'](_0x45579b,_0x1aae96))_0x1bfda1[_0x1bfda1['length']]=_0x1aae96;return _0x1bfda1;},_0x553b29(_0x151c12);};return function(_0x406c1b){if(_0x406c1b&&_0x406c1b['__esModule'])return _0x406c1b;var _0x45d8d9={};if(_0x406c1b!=null){for(var _0xfb9341=_0x553b29(_0x406c1b),_0x7167fe=0x0;_0x7167fe<_0xfb9341['length'];_0x7167fe++)if(_0xfb9341[_0x7167fe]!=='default')__createBinding(_0x45d8d9,_0x406c1b,_0xfb9341[_0x7167fe]);}return __setModuleDefault(_0x45d8d9,_0x406c1b),_0x45d8d9;};}());Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['OAUTH_CALLBACK_TIMEOUT_MS']=exports['OAUTH_CALLBACK_PATH']=exports['OAUTH_CALLBACK_PORT']=void 0x0,exports['parseRedirectUri']=parseRedirectUri,exports['isPortInUse']=isPortInUse,exports['ensureRunning']=ensureRunning,exports['waitForCallback']=waitForCallback,exports['cancelPending']=cancelPending,exports['stop']=stop,exports['isRunning']=isRunning;const http=__importStar(require('http')),net=__importStar(require('net'));exports['OAUTH_CALLBACK_PORT']=0x4da4,exports['OAUTH_CALLBACK_PATH']='/mcp/oauth/callback',exports['OAUTH_CALLBACK_TIMEOUT_MS']=0x5*0x3c*0x3e8;const DEFAULT_PORT_FALLBACKS=0x5;function parseRedirectUri(_0x19dd4f){if(!_0x19dd4f)return{'port':exports['OAUTH_CALLBACK_PORT'],'path':exports['OAUTH_CALLBACK_PATH']};try{const _0x2ad0b4=new URL(_0x19dd4f),_0xb8578b=_0x2ad0b4['port']?parseInt(_0x2ad0b4['port'],0xa):_0x2ad0b4['protocol']==='https:'?0x1bb:0x50,_0x36696c=_0x2ad0b4['pathname']&&_0x2ad0b4['pathname']!=='/'?_0x2ad0b4['pathname']:exports['OAUTH_CALLBACK_PATH'];return{'port':_0xb8578b,'path':_0x36696c};}catch{return{'port':exports['OAUTH_CALLBACK_PORT'],'path':exports['OAUTH_CALLBACK_PATH']};}}function escapeHtml(_0xa46dc5){return _0xa46dc5['replace'](/&/g,'&')['replace'](/</g,'<')['replace'](/>/g,'>')['replace'](/"/g,'"')['replace'](/'/g,''');}const HTML_SUCCESS='<!DOCTYPE\x20html>\x0a<html>\x0a<head>\x0a\x20\x20<title>Trayambak\x20-\x20Authorization\x20Successful</title>\x0a\x20\x20<style>\x0a\x20\x20\x20\x20body\x20{\x20font-family:\x20system-ui,\x20-apple-system,\x20sans-serif;\x20display:\x20flex;\x20justify-content:\x20center;\x20align-items:\x20center;\x20height:\x20100vh;\x20margin:\x200;\x20background:\x20#1a1a2e;\x20color:\x20#eee;\x20}\x0a\x20\x20\x20\x20.container\x20{\x20text-align:\x20center;\x20padding:\x202rem;\x20}\x0a\x20\x20\x20\x20h1\x20{\x20color:\x20#4ade80;\x20margin-bottom:\x201rem;\x20}\x0a\x20\x20\x20\x20p\x20{\x20color:\x20#aaa;\x20}\x0a\x20\x20</style>\x0a</head>\x0a<body>\x0a\x20\x20<div\x20class=\x22container\x22>\x0a\x20\x20\x20\x20<h1>Authorization\x20Successful</h1>\x0a\x20\x20\x20\x20<p>You\x20can\x20close\x20this\x20window\x20and\x20return\x20to\x20Trayambak.</p>\x0a\x20\x20</div>\x0a\x20\x20<script>setTimeout(()\x20=>\x20window.close(),\x202000);</script>\x0a</body>\x0a</html>',HTML_ERROR=_0x25a6ad=>'<!DOCTYPE\x20html>\x0a<html>\x0a<head>\x0a\x20\x20<title>Trayambak\x20-\x20Authorization\x20Failed</title>\x0a\x20\x20<style>\x0a\x20\x20\x20\x20body\x20{\x20font-family:\x20system-ui,\x20-apple-system,\x20sans-serif;\x20display:\x20flex;\x20justify-content:\x20center;\x20align-items:\x20center;\x20height:\x20100vh;\x20margin:\x200;\x20background:\x20#1a1a2e;\x20color:\x20#eee;\x20}\x0a\x20\x20\x20\x20.container\x20{\x20text-align:\x20center;\x20padding:\x202rem;\x20}\x0a\x20\x20\x20\x20h1\x20{\x20color:\x20#f87171;\x20margin-bottom:\x201rem;\x20}\x0a\x20\x20\x20\x20p\x20{\x20color:\x20#aaa;\x20}\x0a\x20\x20\x20\x20.detail\x20{\x20color:\x20#fca5a5;\x20font-family:\x20monospace;\x20margin-top:\x201rem;\x20padding:\x201rem;\x20background:\x20rgba(248,113,113,0.1);\x20border-radius:\x200.5rem;\x20white-space:\x20pre-wrap;\x20}\x0a\x20\x20</style>\x0a</head>\x0a<body>\x0a\x20\x20<div\x20class=\x22container\x22>\x0a\x20\x20\x20\x20<h1>Authorization\x20Failed</h1>\x0a\x20\x20\x20\x20<p>An\x20error\x20occurred\x20during\x20authorization.</p>\x0a\x20\x20\x20\x20<pre\x20class=\x22detail\x22>'+escapeHtml(_0x25a6ad)+'</pre>\x0a\x20\x20</div>\x0a</body>\x0a</html>';let server,currentPort=exports['OAUTH_CALLBACK_PORT'],currentPath=exports['OAUTH_CALLBACK_PATH'];const pendingAuths=new Map(),mcpNameToState=new Map();function cleanupStateIndex(_0x19985e){for(const [_0x3fc4ab,_0x27245b]of mcpNameToState){if(_0x27245b===_0x19985e){mcpNameToState['delete'](_0x3fc4ab);break;}}}function stopIfIdle(){if(pendingAuths['size']>0x0||!server)return;const _0x5920e7=server;server=undefined,_0x5920e7['close'](),setImmediate(()=>{;_0x5920e7['closeIdleConnections']?.();});}function handleRequest(_0x14f64c,_0xbcb85c){const _0x6c9900=new URL(_0x14f64c['url']||'/','http://127.0.0.1:'+currentPort);if(_0x6c9900['pathname']!==currentPath){_0xbcb85c['writeHead'](0x194),_0xbcb85c['end']('Not\x20found');return;}const _0x5b41b2=_0x6c9900['searchParams']['get']('code'),_0x540c06=_0x6c9900['searchParams']['get']('state'),_0x3b27ab=_0x6c9900['searchParams']['get']('error'),_0x6081f3=_0x6c9900['searchParams']['get']('error_description');if(!_0x540c06){const _0x327be2='Missing\x20required\x20state\x20parameter\x20-\x20potential\x20CSRF\x20attack';_0xbcb85c['writeHead'](0x190,{'Content-Type':'text/html;\x20charset=utf-8'}),_0xbcb85c['end'](HTML_ERROR(_0x327be2));return;}if(_0x3b27ab){const _0x2f3c94=_0x6081f3||_0x3b27ab,_0xfbe687=pendingAuths['get'](_0x540c06);_0xfbe687&&(clearTimeout(_0xfbe687['timeout']),pendingAuths['delete'](_0x540c06),cleanupStateIndex(_0x540c06),_0xfbe687['reject'](new Error(_0x2f3c94)));_0xbcb85c['writeHead'](0xc8,{'Content-Type':'text/html;\x20charset=utf-8'}),_0xbcb85c['end'](HTML_ERROR(_0x2f3c94)),stopIfIdle();return;}if(!_0x5b41b2){_0xbcb85c['writeHead'](0x190,{'Content-Type':'text/html;\x20charset=utf-8'}),_0xbcb85c['end'](HTML_ERROR('No\x20authorization\x20code\x20provided'));return;}if(!pendingAuths['has'](_0x540c06)){const _0x304c64='Invalid\x20or\x20expired\x20state\x20parameter\x20-\x20potential\x20CSRF\x20attack';_0xbcb85c['writeHead'](0x190,{'Content-Type':'text/html;\x20charset=utf-8'}),_0xbcb85c['end'](HTML_ERROR(_0x304c64));return;}const _0x17710b=pendingAuths['get'](_0x540c06);clearTimeout(_0x17710b['timeout']),pendingAuths['delete'](_0x540c06),cleanupStateIndex(_0x540c06),_0x17710b['resolve'](_0x5b41b2),_0xbcb85c['writeHead'](0xc8,{'Content-Type':'text/html;\x20charset=utf-8'}),_0xbcb85c['end'](HTML_SUCCESS),stopIfIdle();}function isPortInUse(_0x8bc229=exports['OAUTH_CALLBACK_PORT']){return new Promise(_0x53f3df=>{const _0x3bd9a9=net['createConnection'](_0x8bc229,'127.0.0.1');_0x3bd9a9['on']('connect',()=>{_0x3bd9a9['destroy'](),_0x53f3df(!![]);}),_0x3bd9a9['on']('error',()=>{_0x53f3df(![]);});});}function listen(_0x928719,_0x27b710){return new Promise(_0x3e27b4=>{const _0x1a754b=http['createServer'](handleRequest),_0x4ab2aa=()=>{_0x1a754b['removeListener']('listening',_0x349a80),_0x3e27b4(![]);},_0x349a80=()=>{_0x1a754b['removeListener']('error',_0x4ab2aa),_0x1a754b['on']('error',()=>{}),server=_0x1a754b,currentPort=_0x928719,currentPath=_0x27b710,_0x3e27b4(!![]);};_0x1a754b['once']('error',_0x4ab2aa),_0x1a754b['once']('listening',_0x349a80),_0x1a754b['listen'](_0x928719,'127.0.0.1');});}async function ensureRunning(_0xabcfb4){const _0x366f22=parseRedirectUri(_0xabcfb4);if(server){const _0x1b1c6a=_0xabcfb4?currentPort===_0x366f22['port']&¤tPath===_0x366f22['path']:currentPath===exports['OAUTH_CALLBACK_PATH'];if(_0x1b1c6a)return{'redirectUri':'http://127.0.0.1:'+currentPort+currentPath,'port':currentPort,'path':currentPath};await stop();}if(_0xabcfb4){const _0x38ec73=await listen(_0x366f22['port'],_0x366f22['path']);if(!_0x38ec73)throw new Error('OAuth\x20callback\x20port\x20'+_0x366f22['port']+'\x20is\x20already\x20in\x20use.\x20Free\x20it\x20or\x20set\x20a\x20different\x20callbackPort/redirectUri.');}else{let _0x568ece=![];for(let _0x399c80=exports['OAUTH_CALLBACK_PORT'];_0x399c80<exports['OAUTH_CALLBACK_PORT']+DEFAULT_PORT_FALLBACKS&&!_0x568ece;_0x399c80++){_0x568ece=await listen(_0x399c80,exports['OAUTH_CALLBACK_PATH']);}if(!_0x568ece)throw new Error('Could\x20not\x20bind\x20an\x20OAuth\x20callback\x20port\x20(tried\x20'+exports['OAUTH_CALLBACK_PORT']+'-'+(exports['OAUTH_CALLBACK_PORT']+DEFAULT_PORT_FALLBACKS-0x1)+'\x20on\x20127.0.0.1).');}return{'redirectUri':'http://127.0.0.1:'+currentPort+currentPath,'port':currentPort,'path':currentPath};}function waitForCallback(_0x28a807,_0x376907,_0x58eeaa=exports['OAUTH_CALLBACK_TIMEOUT_MS']){if(_0x376907)mcpNameToState['set'](_0x376907,_0x28a807);return new Promise((_0x23beee,_0x7a2344)=>{const _0x4280f7=setTimeout(()=>{if(pendingAuths['has'](_0x28a807)){pendingAuths['delete'](_0x28a807);if(_0x376907)mcpNameToState['delete'](_0x376907);_0x7a2344(new Error('OAuth\x20callback\x20timeout\x20-\x20authorization\x20took\x20too\x20long')),stopIfIdle();}},_0x58eeaa);pendingAuths['set'](_0x28a807,{'resolve':_0x23beee,'reject':_0x7a2344,'timeout':_0x4280f7});});}function cancelPending(_0x347a02){const _0x38b747=mcpNameToState['get'](_0x347a02),_0x271c0c=_0x38b747??_0x347a02,_0x153e7e=pendingAuths['get'](_0x271c0c);_0x153e7e&&(clearTimeout(_0x153e7e['timeout']),pendingAuths['delete'](_0x271c0c),mcpNameToState['delete'](_0x347a02),_0x153e7e['reject'](new Error('Authorization\x20cancelled')),stopIfIdle());}async function stop(){if(server){const _0x42e275=server;server=undefined,_0x42e275['closeAllConnections']?.(),await new Promise(_0x4cfa2f=>_0x42e275['close'](()=>_0x4cfa2f()));}for(const [,_0x1d70b6]of pendingAuths){clearTimeout(_0x1d70b6['timeout']),_0x1d70b6['reject'](new Error('OAuth\x20callback\x20server\x20stopped'));}pendingAuths['clear'](),mcpNameToState['clear']();}function isRunning(){return server!==undefined;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var __createBinding=this&&this['__createBinding']||(Object['create']?function(_0x551436,_0xd420a6,_0x5599f6,_0x33e68c){if(_0x33e68c===undefined)_0x33e68c=_0x5599f6;var _0x164310=Object['getOwnPropertyDescriptor'](_0xd420a6,_0x5599f6);(!_0x164310||('get'in _0x164310?!_0xd420a6['__esModule']:_0x164310['writable']||_0x164310['configurable']))&&(_0x164310={'enumerable':!![],'get':function(){return _0xd420a6[_0x5599f6];}}),Object['defineProperty'](_0x551436,_0x33e68c,_0x164310);}:function(_0x1c3633,_0x3029ba,_0x45a301,_0x37ac5e){if(_0x37ac5e===undefined)_0x37ac5e=_0x45a301;_0x1c3633[_0x37ac5e]=_0x3029ba[_0x45a301];}),__setModuleDefault=this&&this['__setModuleDefault']||(Object['create']?function(_0x1d3c72,_0x2979f9){Object['defineProperty'](_0x1d3c72,'default',{'enumerable':!![],'value':_0x2979f9});}:function(_0x127363,_0x59cd27){_0x127363['default']=_0x59cd27;}),__importStar=this&&this['__importStar']||(function(){var _0x34fbd3=function(_0x5f0234){return _0x34fbd3=Object['getOwnPropertyNames']||function(_0x2b774e){var _0x3ed745=[];for(var _0x41dcb4 in _0x2b774e)if(Object['prototype']['hasOwnProperty']['call'](_0x2b774e,_0x41dcb4))_0x3ed745[_0x3ed745['length']]=_0x41dcb4;return _0x3ed745;},_0x34fbd3(_0x5f0234);};return function(_0x2dadc3){if(_0x2dadc3&&_0x2dadc3['__esModule'])return _0x2dadc3;var _0x391f5f={};if(_0x2dadc3!=null){for(var _0x7c808c=_0x34fbd3(_0x2dadc3),_0xa932d9=0x0;_0xa932d9<_0x7c808c['length'];_0xa932d9++)if(_0x7c808c[_0xa932d9]!=='default')__createBinding(_0x391f5f,_0x2dadc3,_0x7c808c[_0xa932d9]);}return __setModuleDefault(_0x391f5f,_0x2dadc3),_0x391f5f;};}());Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['McpAuthError']=void 0x0,exports['authFilePath']=authFilePath,exports['getAuthEntry']=getAuthEntry,exports['getAuthEntryForUrl']=getAuthEntryForUrl,exports['setAuthEntry']=setAuthEntry,exports['removeMcpAuth']=removeMcpAuth,exports['getMcpAuthStatus']=getMcpAuthStatus,exports['generateCodeVerifier']=generateCodeVerifier,exports['computeCodeChallenge']=computeCodeChallenge,exports['generateState']=generateState,exports['discoveryCandidates']=discoveryCandidates,exports['discoverOAuthMetadata']=discoverOAuthMetadata,exports['clientMetadata']=clientMetadata,exports['registerClient']=registerClient,exports['buildAuthorizationUrl']=buildAuthorizationUrl,exports['exchangeAuthorizationCode']=exchangeAuthorizationCode,exports['refreshAccessToken']=refreshAccessToken,exports['getValidAccessToken']=getValidAccessToken,exports['openSystemBrowser']=openSystemBrowser,exports['authorizeMcpServer']=authorizeMcpServer,exports['clearOAuthCaches']=clearOAuthCaches;const child_process_1=require('child_process'),crypto=__importStar(require('crypto')),fs=__importStar(require('fs')),http=__importStar(require('http')),https=__importStar(require('https')),os=__importStar(require('os')),path=__importStar(require('path')),oauth_callback_js_1=require('./oauth-callback.js');class McpAuthError extends Error{['kind'];['authorizationUrl'];constructor(_0x25e04e,_0x4c2ae5,_0x565ea2){super(_0x25e04e),this['name']='McpAuthError',this['kind']=_0x4c2ae5,this['authorizationUrl']=_0x565ea2;}}exports['McpAuthError']=McpAuthError;function authFilePath(){return process.env.TRAYAMBAK_MCP_AUTH_FILE||path['join'](os['homedir'](),'.trayambak','mcp-auth.json');}function readAuthStore(){try{const _0x32eda7=JSON['parse'](fs['readFileSync'](authFilePath(),'utf8'));if(_0x32eda7&&typeof _0x32eda7==='object'&&!Array['isArray'](_0x32eda7))return _0x32eda7;}catch{}return{};}function writeAuthStore(_0x66b21f){const _0x3fd251=authFilePath();fs['mkdirSync'](path['dirname'](_0x3fd251),{'recursive':!![]}),fs['writeFileSync'](_0x3fd251,JSON['stringify'](_0x66b21f,null,0x2),{'encoding':'utf8','mode':0x180});try{fs['chmodSync'](_0x3fd251,0x180);}catch{}}function getAuthEntry(_0x357d94){return readAuthStore()[_0x357d94];}function getAuthEntryForUrl(_0x5b28a9,_0x3aae9f){const _0x1eb766=readAuthStore()[_0x5b28a9];if(!_0x1eb766)return undefined;if(_0x1eb766['serverUrl']&&_0x1eb766['serverUrl']!==_0x3aae9f)return undefined;return _0x1eb766;}function setAuthEntry(_0x25d36e,_0x175410){const _0x15e63e=readAuthStore();_0x15e63e[_0x25d36e]=_0x175410,writeAuthStore(_0x15e63e);}function removeMcpAuth(_0x494147){const _0x4d0d8e=readAuthStore();if(!(_0x494147 in _0x4d0d8e))return(0x0,oauth_callback_js_1['cancelPending'])(_0x494147),![];return delete _0x4d0d8e[_0x494147],writeAuthStore(_0x4d0d8e),(0x0,oauth_callback_js_1['cancelPending'])(_0x494147),!![];}function getMcpAuthStatus(_0x23f53c,_0x1a80ae){const _0x1ce141=_0x1a80ae?getAuthEntryForUrl(_0x23f53c,_0x1a80ae):getAuthEntry(_0x23f53c);if(!_0x1ce141?.['tokens'])return'not_authenticated';const _0x3cff29=_0x1ce141['tokens']['expiresAt'];if(_0x3cff29&&_0x3cff29<Math['floor'](Date['now']()/0x3e8))return'expired';return'authenticated';}function generateCodeVerifier(){return crypto['randomBytes'](0x30)['toString']('base64url');}function computeCodeChallenge(_0x259b88){return crypto['createHash']('sha256')['update'](_0x259b88)['digest']('base64url');}function generateState(){return crypto['randomBytes'](0x20)['toString']('hex');}function httpRequest(_0x1c3776,_0x51d859={}){return new Promise((_0x54cba5,_0x54a15c)=>{let _0x16375c;try{_0x16375c=new URL(_0x1c3776);}catch{_0x54a15c(new Error('Invalid\x20URL:\x20'+_0x1c3776));return;}const _0x2f9538=_0x16375c['protocol']==='https:'?https:http,_0x2ae083=_0x2f9538['request']({'hostname':_0x16375c['hostname'],'port':_0x16375c['port']||(_0x16375c['protocol']==='https:'?0x1bb:0x50),'path':_0x16375c['pathname']+_0x16375c['search'],'method':_0x51d859['method']??'GET','headers':_0x51d859['headers'],'timeout':_0x51d859['timeoutMs']??0x3a98},_0x25658a=>{let _0x54663f='';_0x25658a['setEncoding']('utf8'),_0x25658a['on']('data',_0x4e816b=>_0x54663f+=_0x4e816b),_0x25658a['on']('end',()=>{let _0x45a16f;try{const _0xbc688b=JSON['parse'](_0x54663f);if(_0xbc688b&&typeof _0xbc688b==='object')_0x45a16f=_0xbc688b;}catch{}_0x54cba5({'status':_0x25658a['statusCode']??0x0,'text':_0x54663f,'json':_0x45a16f});});});_0x2ae083['on']('error',_0x52def1=>_0x54a15c(_0x52def1)),_0x2ae083['on']('timeout',()=>{_0x2ae083['destroy'](),_0x54a15c(new Error('Timeout\x20requesting\x20'+_0x1c3776));}),_0x2ae083['end'](_0x51d859['body']);});}const META_TTL_MS=0xa*0xea60,metaCache=new Map();function discoveryCandidates(_0x58704c){const _0x5d187c=new URL(_0x58704c);_0x5d187c['search']='',_0x5d187c['hash']='';const _0x4d46fa=_0x5d187c['origin'],_0x53ad26=_0x5d187c['pathname']['replace'](/\/+$/,''),_0x202388=new Set();return _0x53ad26&&(_0x202388['add'](_0x4d46fa+'/.well-known/oauth-authorization-server'+_0x53ad26),_0x202388['add'](''+_0x4d46fa+_0x53ad26+'/.well-known/oauth-authorization-server')),_0x202388['add'](_0x4d46fa+'/.well-known/oauth-authorization-server'),_0x202388['add'](_0x4d46fa+'/.well-known/openid-configuration'),Array['from'](_0x202388);}async function discoverOAuthMetadata(_0xe2c196){const _0x17cce0=metaCache['get'](_0xe2c196);if(_0x17cce0&&Date['now']()-_0x17cce0['at']<META_TTL_MS)return _0x17cce0['meta'];const _0x35e3e5=[];for(const _0x37cddd of discoveryCandidates(_0xe2c196)){try{const _0x53ec9c=await httpRequest(_0x37cddd,{'headers':{'Accept':'application/json'}});if(_0x53ec9c['status']>=0xc8&&_0x53ec9c['status']<0x12c&&_0x53ec9c['json']){const _0x4b86d9=_0x53ec9c['json'];if(typeof _0x4b86d9['authorization_endpoint']==='string'&&_0x4b86d9['authorization_endpoint']['length']>0x0)return metaCache['set'](_0xe2c196,{'at':Date['now'](),'meta':_0x4b86d9}),_0x4b86d9;_0x35e3e5['push'](_0x37cddd+':\x20metadata\x20missing\x20authorization_endpoint');}else _0x53ec9c['status']!==0x194&&_0x53ec9c['status']!==0x191&&_0x53ec9c['status']!==0x193&&_0x35e3e5['push'](_0x37cddd+':\x20HTTP\x20'+_0x53ec9c['status']);}catch(_0x540c1d){_0x35e3e5['push'](_0x37cddd+':\x20'+(_0x540c1d instanceof Error?_0x540c1d['message']:String(_0x540c1d)));}}throw new McpAuthError('No\x20OAuth\x20metadata\x20found\x20for\x20MCP\x20server\x20at\x20'+_0xe2c196+'\x20('+(_0x35e3e5['join'](';\x20')||'no\x20endpoints\x20responded')+').','discovery');}function clientMetadata(_0x54f644,_0x2f5231){return{'redirect_uris':[_0x54f644],'client_name':'trayambak','grant_types':['authorization_code','refresh_token'],'response_types':['code'],'token_endpoint_auth_method':_0x2f5231['clientSecret']?'client_secret_post':'none',..._0x2f5231['scope']?{'scope':_0x2f5231['scope']}:{}};}async function registerClient(_0x3e9d5b,_0x5cd410){const _0x10cbd7=await httpRequest(_0x3e9d5b,{'method':'POST','headers':{'Content-Type':'application/json','Accept':'application/json'},'body':JSON['stringify'](_0x5cd410)}),_0x427552=_0x10cbd7['json'];if(!(_0x10cbd7['status']>=0xc8&&_0x10cbd7['status']<0x12c)||typeof _0x427552?.['client_id']!=='string')throw new McpAuthError('MCP\x20server\x20does\x20not\x20support\x20dynamic\x20client\x20registration\x20(HTTP\x20'+_0x10cbd7['status']+').\x20Provide\x20clientId\x20in\x20the\x20server\x27s\x20oauth\x20config.','registration');return{'clientId':_0x427552['client_id'],'clientSecret':typeof _0x427552['client_secret']==='string'?_0x427552['client_secret']:undefined,'clientIdIssuedAt':typeof _0x427552['client_id_issued_at']==='number'?_0x427552['client_id_issued_at']:undefined,'clientSecretExpiresAt':typeof _0x427552['client_secret_expires_at']==='number'?_0x427552['client_secret_expires_at']:undefined};}function resolveClientInfo(_0x396b9b,_0x132c3c,_0x2de5bf){if(_0x2de5bf['clientId'])return{'clientId':_0x2de5bf['clientId'],'clientSecret':_0x2de5bf['clientSecret']};const _0x539142=getAuthEntryForUrl(_0x396b9b,_0x132c3c)?.['clientInfo'];if(!_0x539142)return undefined;if(_0x539142['clientSecretExpiresAt']&&_0x539142['clientSecretExpiresAt']<Math['floor'](Date['now']()/0x3e8))return undefined;return _0x539142;}function buildAuthorizationUrl(_0x5a2d29,_0x17ec38){const _0x1b507c=new URL(_0x5a2d29);_0x1b507c['searchParams']['set']('response_type','code'),_0x1b507c['searchParams']['set']('client_id',_0x17ec38['clientId']),_0x1b507c['searchParams']['set']('redirect_uri',_0x17ec38['redirectUri']),_0x1b507c['searchParams']['set']('state',_0x17ec38['state']),_0x1b507c['searchParams']['set']('code_challenge',_0x17ec38['codeChallenge']),_0x1b507c['searchParams']['set']('code_challenge_method','S256');if(_0x17ec38['scope'])_0x1b507c['searchParams']['set']('scope',_0x17ec38['scope']);return _0x1b507c['toString']();}async function tokenRequest(_0x22da13,_0x720d12){const _0x322fd0=new URLSearchParams(_0x720d12)['toString'](),_0x2bb057=await httpRequest(_0x22da13,{'method':'POST','headers':{'Content-Type':'application/x-www-form-urlencoded','Accept':'application/json'},'body':_0x322fd0}),_0x164a30=_0x2bb057['json'];if(!(_0x2bb057['status']>=0xc8&&_0x2bb057['status']<0x12c)||_0x164a30?.['error']){const _0x44345c=typeof _0x164a30?.['error_description']==='string'&&_0x164a30['error_description']||typeof _0x164a30?.['error']==='string'&&_0x164a30['error']||'HTTP\x20'+_0x2bb057['status']+(_0x2bb057['text']?':\x20'+_0x2bb057['text']['slice'](0x0,0xc8):'');throw new McpAuthError('Token\x20request\x20failed:\x20'+_0x44345c,'token');}if(typeof _0x164a30?.['access_token']!=='string'||!_0x164a30['access_token'])throw new McpAuthError('Token\x20response\x20did\x20not\x20include\x20an\x20access_token.','token');return{'accessToken':_0x164a30['access_token'],'refreshToken':typeof _0x164a30['refresh_token']==='string'?_0x164a30['refresh_token']:undefined,'expiresAt':typeof _0x164a30['expires_in']==='number'?Math['floor'](Date['now']()/0x3e8)+_0x164a30['expires_in']:undefined,'scope':typeof _0x164a30['scope']==='string'?_0x164a30['scope']:undefined};}function exchangeAuthorizationCode(_0x5b7c05,_0x419931){return tokenRequest(_0x5b7c05,{'grant_type':'authorization_code','code':_0x419931['code'],'redirect_uri':_0x419931['redirectUri'],'client_id':_0x419931['clientId'],'code_verifier':_0x419931['codeVerifier'],..._0x419931['clientSecret']?{'client_secret':_0x419931['clientSecret']}:{}});}function refreshAccessToken(_0x2d7514,_0x35773c){return tokenRequest(_0x2d7514,{'grant_type':'refresh_token','refresh_token':_0x35773c['refreshToken'],'client_id':_0x35773c['clientId'],..._0x35773c['clientSecret']?{'client_secret':_0x35773c['clientSecret']}:{}});}const inflightRefresh=new Map(),REFRESH_SKEW_SECONDS=0x3c;async function getValidAccessToken(_0x55eb36,_0x221f2d,_0xeeedf={}){const _0x42504b=getAuthEntryForUrl(_0x55eb36,_0x221f2d)?.['tokens'];if(!_0x42504b)return undefined;const _0x3ac329=Math['floor'](Date['now']()/0x3e8),_0x513ed5=Boolean(_0x42504b['expiresAt'])&&_0x42504b['expiresAt']-REFRESH_SKEW_SECONDS<=_0x3ac329;if(!_0x513ed5||!_0x42504b['refreshToken'])return _0x42504b['accessToken'];const _0x65dd5e=inflightRefresh['get'](_0x55eb36);if(_0x65dd5e)return _0x65dd5e;const _0x1db591=((async()=>{try{const _0x5dcd73=await discoverOAuthMetadata(_0x221f2d);if(!_0x5dcd73['token_endpoint'])return _0x42504b['accessToken'];const _0x1aba1a=resolveClientInfo(_0x55eb36,_0x221f2d,_0xeeedf);if(!_0x1aba1a)return _0x42504b['accessToken'];const _0x1ac074=await refreshAccessToken(_0x5dcd73['token_endpoint'],{'clientId':_0x1aba1a['clientId'],'clientSecret':_0x1aba1a['clientSecret'],'refreshToken':_0x42504b['refreshToken']}),_0x370cfc=getAuthEntryForUrl(_0x55eb36,_0x221f2d)??{'serverUrl':_0x221f2d};return setAuthEntry(_0x55eb36,{..._0x370cfc,'tokens':{..._0x1ac074,'refreshToken':_0x1ac074['refreshToken']??_0x42504b['refreshToken']},'serverUrl':_0x221f2d}),_0x1ac074['accessToken'];}catch{return _0x42504b['accessToken'];}finally{inflightRefresh['delete'](_0x55eb36);}})());return inflightRefresh['set'](_0x55eb36,_0x1db591),_0x1db591;}function openSystemBrowser(_0x13f0db){if(process.env.TRAYAMBAK_NO_BROWSER==='1')return![];try{if(process['platform']==='win32')return(0x0,child_process_1['spawn'])('rundll32',['url.dll,FileProtocolHandler',_0x13f0db],{'detached':!![],'stdio':'ignore','windowsHide':!![]})['unref'](),!![];const _0x145e54=process['platform']==='darwin'?'open':'xdg-open';return(0x0,child_process_1['spawn'])(_0x145e54,[_0x13f0db],{'detached':!![],'stdio':'ignore'})['unref'](),!![];}catch{return![];}}const inflightAuth=new Map();function authorizeMcpServer(_0x5c21cc,_0x104563,_0x4889cd={},_0x4c3adf={}){const _0x34e3df=inflightAuth['get'](_0x5c21cc);if(_0x34e3df)return _0x34e3df;const _0x3790a3=runAuthorize(_0x5c21cc,_0x104563,_0x4889cd,_0x4c3adf)['finally'](()=>{inflightAuth['delete'](_0x5c21cc);});return inflightAuth['set'](_0x5c21cc,_0x3790a3),_0x3790a3;}async function runAuthorize(_0x20594b,_0xd7113d,_0x5eba5b,_0x23e4a5){const _0x39ba35=await discoverOAuthMetadata(_0xd7113d),_0x329d9b=await(0x0,oauth_callback_js_1['ensureRunning'])(_0x5eba5b['redirectUri']??(_0x5eba5b['callbackPort']?'http://127.0.0.1:'+_0x5eba5b['callbackPort']+oauth_callback_js_1['OAUTH_CALLBACK_PATH']:undefined)),_0x556f81=_0x329d9b['redirectUri'];let _0x1c8c58=resolveClientInfo(_0x20594b,_0xd7113d,_0x5eba5b);const _0x187246=!_0x1c8c58;if(!_0x1c8c58){if(!_0x39ba35['registration_endpoint'])throw new McpAuthError('MCP\x20server\x20\x27'+_0x20594b+'\x27\x20does\x20not\x20support\x20dynamic\x20client\x20registration.\x20Provide\x20clientId\x20(and\x20clientSecret)\x20in\x20its\x20oauth\x20config.','registration');_0x1c8c58=await registerClient(_0x39ba35['registration_endpoint'],clientMetadata(_0x556f81,_0x5eba5b));}if(!_0x39ba35['token_endpoint'])throw new McpAuthError('OAuth\x20metadata\x20for\x20\x27'+_0x20594b+'\x27\x20is\x20missing\x20a\x20token_endpoint.','discovery');const _0x595f39=generateState(),_0x54af7b=generateCodeVerifier(),_0x5345ab=buildAuthorizationUrl(_0x39ba35['authorization_endpoint'],{'clientId':_0x1c8c58['clientId'],'redirectUri':_0x556f81,'state':_0x595f39,'codeChallenge':computeCodeChallenge(_0x54af7b),'scope':_0x5eba5b['scope']}),_0x1b7464=_0x23e4a5['waitMs']??oauth_callback_js_1['OAUTH_CALLBACK_TIMEOUT_MS'],_0x376991=(0x0,oauth_callback_js_1['waitForCallback'])(_0x595f39,_0x20594b,_0x1b7464),_0x31cffe=_0x23e4a5['onNotice']??(_0x40edbf=>{try{process['stderr']['write'](_0x40edbf+'\x0a');}catch{}});_0x31cffe('MCP\x20\x27'+_0x20594b+'\x27\x20requires\x20authorization.\x0a'+('If\x20the\x20browser\x20did\x20not\x20open\x20automatically,\x20visit:\x0a\x20\x20'+_0x5345ab+'\x0a')+'Waiting\x20for\x20approval...');const _0x341fef=_0x23e4a5['open']??openSystemBrowser;try{await _0x341fef(_0x5345ab);}catch{}let _0x58084e;try{_0x58084e=await _0x376991;}catch(_0x515fdd){throw new McpAuthError(_0x515fdd instanceof Error?_0x515fdd['message']:String(_0x515fdd),'callback',_0x5345ab);}const _0x5ebf5c=await exchangeAuthorizationCode(_0x39ba35['token_endpoint'],{'code':_0x58084e,'redirectUri':_0x556f81,'clientId':_0x1c8c58['clientId'],'clientSecret':_0x1c8c58['clientSecret'],'codeVerifier':_0x54af7b}),_0x5df7fd=getAuthEntryForUrl(_0x20594b,_0xd7113d)??{};return setAuthEntry(_0x20594b,{..._0x5df7fd,..._0x187246&&_0x1c8c58?{'clientInfo':_0x1c8c58}:{},'tokens':_0x5ebf5c,'serverUrl':_0xd7113d}),!![];}function clearOAuthCaches(){metaCache['clear'](),inflightAuth['clear'](),inflightRefresh['clear']();}
|
|
1
|
+
'use strict';var __createBinding=this&&this['__createBinding']||(Object['create']?function(_0x411a91,_0x5113ce,_0x1de980,_0xf99000){if(_0xf99000===undefined)_0xf99000=_0x1de980;var _0x23de79=Object['getOwnPropertyDescriptor'](_0x5113ce,_0x1de980);(!_0x23de79||('get'in _0x23de79?!_0x5113ce['__esModule']:_0x23de79['writable']||_0x23de79['configurable']))&&(_0x23de79={'enumerable':!![],'get':function(){return _0x5113ce[_0x1de980];}}),Object['defineProperty'](_0x411a91,_0xf99000,_0x23de79);}:function(_0x3f17ad,_0x5a1f5f,_0x2682e1,_0x4f733e){if(_0x4f733e===undefined)_0x4f733e=_0x2682e1;_0x3f17ad[_0x4f733e]=_0x5a1f5f[_0x2682e1];}),__setModuleDefault=this&&this['__setModuleDefault']||(Object['create']?function(_0x53c3a9,_0x4a7fff){Object['defineProperty'](_0x53c3a9,'default',{'enumerable':!![],'value':_0x4a7fff});}:function(_0x3cc16a,_0x385a6c){_0x3cc16a['default']=_0x385a6c;}),__importStar=this&&this['__importStar']||(function(){var _0x154e8e=function(_0x2e0254){return _0x154e8e=Object['getOwnPropertyNames']||function(_0x5e7aa5){var _0x2ff8d8=[];for(var _0xa82c7 in _0x5e7aa5)if(Object['prototype']['hasOwnProperty']['call'](_0x5e7aa5,_0xa82c7))_0x2ff8d8[_0x2ff8d8['length']]=_0xa82c7;return _0x2ff8d8;},_0x154e8e(_0x2e0254);};return function(_0x3a2576){if(_0x3a2576&&_0x3a2576['__esModule'])return _0x3a2576;var _0x548375={};if(_0x3a2576!=null){for(var _0x2d4682=_0x154e8e(_0x3a2576),_0x1907f7=0x0;_0x1907f7<_0x2d4682['length'];_0x1907f7++)if(_0x2d4682[_0x1907f7]!=='default')__createBinding(_0x548375,_0x3a2576,_0x2d4682[_0x1907f7]);}return __setModuleDefault(_0x548375,_0x3a2576),_0x548375;};}());Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['McpAuthError']=void 0x0,exports['authFilePath']=authFilePath,exports['getAuthEntry']=getAuthEntry,exports['getAuthEntryForUrl']=getAuthEntryForUrl,exports['setAuthEntry']=setAuthEntry,exports['removeMcpAuth']=removeMcpAuth,exports['getMcpAuthStatus']=getMcpAuthStatus,exports['generateCodeVerifier']=generateCodeVerifier,exports['computeCodeChallenge']=computeCodeChallenge,exports['generateState']=generateState,exports['discoveryCandidates']=discoveryCandidates,exports['discoverOAuthMetadata']=discoverOAuthMetadata,exports['clientMetadata']=clientMetadata,exports['registerClient']=registerClient,exports['buildAuthorizationUrl']=buildAuthorizationUrl,exports['exchangeAuthorizationCode']=exchangeAuthorizationCode,exports['refreshAccessToken']=refreshAccessToken,exports['getValidAccessToken']=getValidAccessToken,exports['openSystemBrowser']=openSystemBrowser,exports['authorizeMcpServer']=authorizeMcpServer,exports['clearOAuthCaches']=clearOAuthCaches;const child_process_1=require('child_process'),crypto=__importStar(require('crypto')),fs=__importStar(require('fs')),http=__importStar(require('http')),https=__importStar(require('https')),os=__importStar(require('os')),path=__importStar(require('path')),oauth_callback_js_1=require('./oauth-callback.js');class McpAuthError extends Error{['kind'];['authorizationUrl'];constructor(_0x1baf24,_0x3fb52a,_0x99944b){super(_0x1baf24),this['name']='McpAuthError',this['kind']=_0x3fb52a,this['authorizationUrl']=_0x99944b;}}exports['McpAuthError']=McpAuthError;function authFilePath(){return process.env.TRAYAMBAK_MCP_AUTH_FILE||path['join'](os['homedir'](),'.trayambak','mcp-auth.json');}function readAuthStore(){try{const _0x520af2=JSON['parse'](fs['readFileSync'](authFilePath(),'utf8'));if(_0x520af2&&typeof _0x520af2==='object'&&!Array['isArray'](_0x520af2))return _0x520af2;}catch{}return{};}function writeAuthStore(_0x1be2f1){const _0x38e4db=authFilePath();fs['mkdirSync'](path['dirname'](_0x38e4db),{'recursive':!![]}),fs['writeFileSync'](_0x38e4db,JSON['stringify'](_0x1be2f1,null,0x2),{'encoding':'utf8','mode':0x180});try{fs['chmodSync'](_0x38e4db,0x180);}catch{}}function getAuthEntry(_0x31775e){return readAuthStore()[_0x31775e];}function getAuthEntryForUrl(_0x110003,_0x5a0bee){const _0x452983=readAuthStore()[_0x110003];if(!_0x452983)return undefined;if(_0x452983['serverUrl']&&_0x452983['serverUrl']!==_0x5a0bee)return undefined;return _0x452983;}function setAuthEntry(_0x800622,_0x31a2bc){const _0x361870=readAuthStore();_0x361870[_0x800622]=_0x31a2bc,writeAuthStore(_0x361870);}function removeMcpAuth(_0xef7127){const _0x4a4ffc=readAuthStore();if(!(_0xef7127 in _0x4a4ffc))return(0x0,oauth_callback_js_1['cancelPending'])(_0xef7127),![];return delete _0x4a4ffc[_0xef7127],writeAuthStore(_0x4a4ffc),(0x0,oauth_callback_js_1['cancelPending'])(_0xef7127),!![];}function getMcpAuthStatus(_0x4e3984,_0x1a3d91){const _0x5aa84e=_0x1a3d91?getAuthEntryForUrl(_0x4e3984,_0x1a3d91):getAuthEntry(_0x4e3984);if(!_0x5aa84e?.['tokens'])return'not_authenticated';const _0x127a40=_0x5aa84e['tokens']['expiresAt'];if(_0x127a40&&_0x127a40<Math['floor'](Date['now']()/0x3e8))return'expired';return'authenticated';}function generateCodeVerifier(){return crypto['randomBytes'](0x30)['toString']('base64url');}function computeCodeChallenge(_0x1c0891){return crypto['createHash']('sha256')['update'](_0x1c0891)['digest']('base64url');}function generateState(){return crypto['randomBytes'](0x20)['toString']('hex');}function httpRequest(_0x21b237,_0x358417={}){return new Promise((_0x442bc4,_0x56b892)=>{let _0x2ae947;try{_0x2ae947=new URL(_0x21b237);}catch{_0x56b892(new Error('Invalid\x20URL:\x20'+_0x21b237));return;}const _0xd9c0f6=_0x2ae947['protocol']==='https:'?https:http,_0xd85f0a=_0xd9c0f6['request']({'hostname':_0x2ae947['hostname'],'port':_0x2ae947['port']||(_0x2ae947['protocol']==='https:'?0x1bb:0x50),'path':_0x2ae947['pathname']+_0x2ae947['search'],'method':_0x358417['method']??'GET','headers':_0x358417['headers'],'timeout':_0x358417['timeoutMs']??0x3a98},_0x2a4ba3=>{let _0x210aa3='';_0x2a4ba3['setEncoding']('utf8'),_0x2a4ba3['on']('data',_0x3d51fd=>_0x210aa3+=_0x3d51fd),_0x2a4ba3['on']('end',()=>{let _0x24eba6;try{const _0x1d1d6f=JSON['parse'](_0x210aa3);if(_0x1d1d6f&&typeof _0x1d1d6f==='object')_0x24eba6=_0x1d1d6f;}catch{}_0x442bc4({'status':_0x2a4ba3['statusCode']??0x0,'text':_0x210aa3,'json':_0x24eba6});});});_0xd85f0a['on']('error',_0x5463c6=>_0x56b892(_0x5463c6)),_0xd85f0a['on']('timeout',()=>{_0xd85f0a['destroy'](),_0x56b892(new Error('Timeout\x20requesting\x20'+_0x21b237));}),_0xd85f0a['end'](_0x358417['body']);});}const META_TTL_MS=0xa*0xea60,metaCache=new Map();function discoveryCandidates(_0x5877fe){const _0x3e36b9=new URL(_0x5877fe);_0x3e36b9['search']='',_0x3e36b9['hash']='';const _0x5e73af=_0x3e36b9['origin'],_0x505228=_0x3e36b9['pathname']['replace'](/\/+$/,''),_0x2aa594=new Set();return _0x505228&&(_0x2aa594['add'](_0x5e73af+'/.well-known/oauth-authorization-server'+_0x505228),_0x2aa594['add'](''+_0x5e73af+_0x505228+'/.well-known/oauth-authorization-server')),_0x2aa594['add'](_0x5e73af+'/.well-known/oauth-authorization-server'),_0x2aa594['add'](_0x5e73af+'/.well-known/openid-configuration'),Array['from'](_0x2aa594);}async function discoverOAuthMetadata(_0x3742f4){const _0x4d66c3=metaCache['get'](_0x3742f4);if(_0x4d66c3&&Date['now']()-_0x4d66c3['at']<META_TTL_MS)return _0x4d66c3['meta'];const _0x5c5c0b=[];for(const _0x2b1280 of discoveryCandidates(_0x3742f4)){try{const _0x576bc9=await httpRequest(_0x2b1280,{'headers':{'Accept':'application/json'}});if(_0x576bc9['status']>=0xc8&&_0x576bc9['status']<0x12c&&_0x576bc9['json']){const _0x2345c5=_0x576bc9['json'];if(typeof _0x2345c5['authorization_endpoint']==='string'&&_0x2345c5['authorization_endpoint']['length']>0x0)return metaCache['set'](_0x3742f4,{'at':Date['now'](),'meta':_0x2345c5}),_0x2345c5;_0x5c5c0b['push'](_0x2b1280+':\x20metadata\x20missing\x20authorization_endpoint');}else _0x576bc9['status']!==0x194&&_0x576bc9['status']!==0x191&&_0x576bc9['status']!==0x193&&_0x5c5c0b['push'](_0x2b1280+':\x20HTTP\x20'+_0x576bc9['status']);}catch(_0x2df30e){_0x5c5c0b['push'](_0x2b1280+':\x20'+(_0x2df30e instanceof Error?_0x2df30e['message']:String(_0x2df30e)));}}throw new McpAuthError('No\x20OAuth\x20metadata\x20found\x20for\x20MCP\x20server\x20at\x20'+_0x3742f4+'\x20('+(_0x5c5c0b['join'](';\x20')||'no\x20endpoints\x20responded')+').','discovery');}function clientMetadata(_0x26e9a4,_0x361bd3){return{'redirect_uris':[_0x26e9a4],'client_name':'trayambak','grant_types':['authorization_code','refresh_token'],'response_types':['code'],'token_endpoint_auth_method':_0x361bd3['clientSecret']?'client_secret_post':'none',..._0x361bd3['scope']?{'scope':_0x361bd3['scope']}:{}};}async function registerClient(_0x30a711,_0x1aa135){const _0x4131eb=await httpRequest(_0x30a711,{'method':'POST','headers':{'Content-Type':'application/json','Accept':'application/json'},'body':JSON['stringify'](_0x1aa135)}),_0x5f549c=_0x4131eb['json'];if(!(_0x4131eb['status']>=0xc8&&_0x4131eb['status']<0x12c)||typeof _0x5f549c?.['client_id']!=='string')throw new McpAuthError('MCP\x20server\x20does\x20not\x20support\x20dynamic\x20client\x20registration\x20(HTTP\x20'+_0x4131eb['status']+').\x20Provide\x20clientId\x20in\x20the\x20server\x27s\x20oauth\x20config.','registration');return{'clientId':_0x5f549c['client_id'],'clientSecret':typeof _0x5f549c['client_secret']==='string'?_0x5f549c['client_secret']:undefined,'clientIdIssuedAt':typeof _0x5f549c['client_id_issued_at']==='number'?_0x5f549c['client_id_issued_at']:undefined,'clientSecretExpiresAt':typeof _0x5f549c['client_secret_expires_at']==='number'?_0x5f549c['client_secret_expires_at']:undefined};}function resolveClientInfo(_0x119861,_0x55d48a,_0x3bdaf7){if(_0x3bdaf7['clientId'])return{'clientId':_0x3bdaf7['clientId'],'clientSecret':_0x3bdaf7['clientSecret']};const _0x3a119a=getAuthEntryForUrl(_0x119861,_0x55d48a)?.['clientInfo'];if(!_0x3a119a)return undefined;if(_0x3a119a['clientSecretExpiresAt']&&_0x3a119a['clientSecretExpiresAt']<Math['floor'](Date['now']()/0x3e8))return undefined;return _0x3a119a;}function buildAuthorizationUrl(_0x31436d,_0x3ed0cc){const _0x8adfd=new URL(_0x31436d);_0x8adfd['searchParams']['set']('response_type','code'),_0x8adfd['searchParams']['set']('client_id',_0x3ed0cc['clientId']),_0x8adfd['searchParams']['set']('redirect_uri',_0x3ed0cc['redirectUri']),_0x8adfd['searchParams']['set']('state',_0x3ed0cc['state']),_0x8adfd['searchParams']['set']('code_challenge',_0x3ed0cc['codeChallenge']),_0x8adfd['searchParams']['set']('code_challenge_method','S256');if(_0x3ed0cc['scope'])_0x8adfd['searchParams']['set']('scope',_0x3ed0cc['scope']);return _0x8adfd['toString']();}async function tokenRequest(_0x52d6c6,_0x170108){const _0x1969f3=new URLSearchParams(_0x170108)['toString'](),_0xa978bd=await httpRequest(_0x52d6c6,{'method':'POST','headers':{'Content-Type':'application/x-www-form-urlencoded','Accept':'application/json'},'body':_0x1969f3}),_0x37c14c=_0xa978bd['json'];if(!(_0xa978bd['status']>=0xc8&&_0xa978bd['status']<0x12c)||_0x37c14c?.['error']){const _0x549c21=typeof _0x37c14c?.['error_description']==='string'&&_0x37c14c['error_description']||typeof _0x37c14c?.['error']==='string'&&_0x37c14c['error']||'HTTP\x20'+_0xa978bd['status']+(_0xa978bd['text']?':\x20'+_0xa978bd['text']['slice'](0x0,0xc8):'');throw new McpAuthError('Token\x20request\x20failed:\x20'+_0x549c21,'token');}if(typeof _0x37c14c?.['access_token']!=='string'||!_0x37c14c['access_token'])throw new McpAuthError('Token\x20response\x20did\x20not\x20include\x20an\x20access_token.','token');return{'accessToken':_0x37c14c['access_token'],'refreshToken':typeof _0x37c14c['refresh_token']==='string'?_0x37c14c['refresh_token']:undefined,'expiresAt':typeof _0x37c14c['expires_in']==='number'?Math['floor'](Date['now']()/0x3e8)+_0x37c14c['expires_in']:undefined,'scope':typeof _0x37c14c['scope']==='string'?_0x37c14c['scope']:undefined};}function exchangeAuthorizationCode(_0x29fd8e,_0x154039){return tokenRequest(_0x29fd8e,{'grant_type':'authorization_code','code':_0x154039['code'],'redirect_uri':_0x154039['redirectUri'],'client_id':_0x154039['clientId'],'code_verifier':_0x154039['codeVerifier'],..._0x154039['clientSecret']?{'client_secret':_0x154039['clientSecret']}:{}});}function refreshAccessToken(_0x95d764,_0x414812){return tokenRequest(_0x95d764,{'grant_type':'refresh_token','refresh_token':_0x414812['refreshToken'],'client_id':_0x414812['clientId'],..._0x414812['clientSecret']?{'client_secret':_0x414812['clientSecret']}:{}});}const inflightRefresh=new Map(),REFRESH_SKEW_SECONDS=0x3c;async function getValidAccessToken(_0x3f31fc,_0x4d7e37,_0x4a0079={}){const _0x152963=getAuthEntryForUrl(_0x3f31fc,_0x4d7e37)?.['tokens'];if(!_0x152963)return undefined;const _0xcd7794=Math['floor'](Date['now']()/0x3e8),_0x5cba38=Boolean(_0x152963['expiresAt'])&&_0x152963['expiresAt']-REFRESH_SKEW_SECONDS<=_0xcd7794;if(!_0x5cba38||!_0x152963['refreshToken'])return _0x152963['accessToken'];const _0x2d11ae=inflightRefresh['get'](_0x3f31fc);if(_0x2d11ae)return _0x2d11ae;const _0x263389=((async()=>{try{const _0x1d5f5c=await discoverOAuthMetadata(_0x4d7e37);if(!_0x1d5f5c['token_endpoint'])return _0x152963['accessToken'];const _0x285571=resolveClientInfo(_0x3f31fc,_0x4d7e37,_0x4a0079);if(!_0x285571)return _0x152963['accessToken'];const _0x3bb56d=await refreshAccessToken(_0x1d5f5c['token_endpoint'],{'clientId':_0x285571['clientId'],'clientSecret':_0x285571['clientSecret'],'refreshToken':_0x152963['refreshToken']}),_0x6b7656=getAuthEntryForUrl(_0x3f31fc,_0x4d7e37)??{'serverUrl':_0x4d7e37};return setAuthEntry(_0x3f31fc,{..._0x6b7656,'tokens':{..._0x3bb56d,'refreshToken':_0x3bb56d['refreshToken']??_0x152963['refreshToken']},'serverUrl':_0x4d7e37}),_0x3bb56d['accessToken'];}catch{return _0x152963['accessToken'];}finally{inflightRefresh['delete'](_0x3f31fc);}})());return inflightRefresh['set'](_0x3f31fc,_0x263389),_0x263389;}function openSystemBrowser(_0x4a1a61){if(process.env.TRAYAMBAK_NO_BROWSER==='1')return![];try{if(process['platform']==='win32')return(0x0,child_process_1['spawn'])('rundll32',['url.dll,FileProtocolHandler',_0x4a1a61],{'detached':!![],'stdio':'ignore','windowsHide':!![]})['unref'](),!![];const _0x4f9561=process['platform']==='darwin'?'open':'xdg-open';return(0x0,child_process_1['spawn'])(_0x4f9561,[_0x4a1a61],{'detached':!![],'stdio':'ignore'})['unref'](),!![];}catch{return![];}}const inflightAuth=new Map();function authorizeMcpServer(_0x17c070,_0x382b8b,_0x1b5785={},_0x324d3a={}){const _0x27b705=inflightAuth['get'](_0x17c070);if(_0x27b705)return _0x27b705;const _0x5b8387=runAuthorize(_0x17c070,_0x382b8b,_0x1b5785,_0x324d3a)['finally'](()=>{inflightAuth['delete'](_0x17c070);});return inflightAuth['set'](_0x17c070,_0x5b8387),_0x5b8387;}async function runAuthorize(_0x3b6c5b,_0x5e6938,_0x371f45,_0x120886){const _0x273834=await discoverOAuthMetadata(_0x5e6938),_0x54a5c6=await(0x0,oauth_callback_js_1['ensureRunning'])(_0x371f45['redirectUri']??(_0x371f45['callbackPort']?'http://127.0.0.1:'+_0x371f45['callbackPort']+oauth_callback_js_1['OAUTH_CALLBACK_PATH']:undefined)),_0x3a1ed0=_0x54a5c6['redirectUri'];let _0x25089b=resolveClientInfo(_0x3b6c5b,_0x5e6938,_0x371f45);const _0x371957=!_0x25089b;if(!_0x25089b){if(!_0x273834['registration_endpoint'])throw new McpAuthError('MCP\x20server\x20\x27'+_0x3b6c5b+'\x27\x20does\x20not\x20support\x20dynamic\x20client\x20registration.\x20Provide\x20clientId\x20(and\x20clientSecret)\x20in\x20its\x20oauth\x20config.','registration');_0x25089b=await registerClient(_0x273834['registration_endpoint'],clientMetadata(_0x3a1ed0,_0x371f45));}if(!_0x273834['token_endpoint'])throw new McpAuthError('OAuth\x20metadata\x20for\x20\x27'+_0x3b6c5b+'\x27\x20is\x20missing\x20a\x20token_endpoint.','discovery');const _0x4abe92=generateState(),_0x3955c7=generateCodeVerifier(),_0x3285dc=buildAuthorizationUrl(_0x273834['authorization_endpoint'],{'clientId':_0x25089b['clientId'],'redirectUri':_0x3a1ed0,'state':_0x4abe92,'codeChallenge':computeCodeChallenge(_0x3955c7),'scope':_0x371f45['scope']}),_0x3dcb89=_0x120886['waitMs']??oauth_callback_js_1['OAUTH_CALLBACK_TIMEOUT_MS'],_0x3e5025=(0x0,oauth_callback_js_1['waitForCallback'])(_0x4abe92,_0x3b6c5b,_0x3dcb89),_0x453872=_0x120886['onNotice']??(_0x47e308=>{try{process['stderr']['write'](_0x47e308+'\x0a');}catch{}});_0x453872('MCP\x20\x27'+_0x3b6c5b+'\x27\x20requires\x20authorization.\x0a'+('If\x20the\x20browser\x20did\x20not\x20open\x20automatically,\x20visit:\x0a\x20\x20'+_0x3285dc+'\x0a')+'Waiting\x20for\x20approval...');const _0x99bf7d=_0x120886['open']??openSystemBrowser;try{await _0x99bf7d(_0x3285dc);}catch{}let _0x4ac384;try{_0x4ac384=await _0x3e5025;}catch(_0x393c7b){throw new McpAuthError(_0x393c7b instanceof Error?_0x393c7b['message']:String(_0x393c7b),'callback',_0x3285dc);}const _0x21a2e8=await exchangeAuthorizationCode(_0x273834['token_endpoint'],{'code':_0x4ac384,'redirectUri':_0x3a1ed0,'clientId':_0x25089b['clientId'],'clientSecret':_0x25089b['clientSecret'],'codeVerifier':_0x3955c7}),_0x50ee1a=getAuthEntryForUrl(_0x3b6c5b,_0x5e6938)??{};return setAuthEntry(_0x3b6c5b,{..._0x50ee1a,..._0x371957&&_0x25089b?{'clientInfo':_0x25089b}:{},'tokens':_0x21a2e8,'serverUrl':_0x5e6938}),!![];}function clearOAuthCaches(){metaCache['clear'](),inflightAuth['clear'](),inflightRefresh['clear']();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var __createBinding=this&&this['__createBinding']||(Object['create']?function(
|
|
1
|
+
'use strict';var __createBinding=this&&this['__createBinding']||(Object['create']?function(_0x551be9,_0x5972a5,_0x5e37fc,_0x27764f){if(_0x27764f===undefined)_0x27764f=_0x5e37fc;var _0x3c5b12=Object['getOwnPropertyDescriptor'](_0x5972a5,_0x5e37fc);(!_0x3c5b12||('get'in _0x3c5b12?!_0x5972a5['__esModule']:_0x3c5b12['writable']||_0x3c5b12['configurable']))&&(_0x3c5b12={'enumerable':!![],'get':function(){return _0x5972a5[_0x5e37fc];}}),Object['defineProperty'](_0x551be9,_0x27764f,_0x3c5b12);}:function(_0x3a325a,_0x367854,_0x311f21,_0x6d1b03){if(_0x6d1b03===undefined)_0x6d1b03=_0x311f21;_0x3a325a[_0x6d1b03]=_0x367854[_0x311f21];}),__setModuleDefault=this&&this['__setModuleDefault']||(Object['create']?function(_0x4c04cc,_0xa26e63){Object['defineProperty'](_0x4c04cc,'default',{'enumerable':!![],'value':_0xa26e63});}:function(_0x1ef28b,_0x5e75a1){_0x1ef28b['default']=_0x5e75a1;}),__importStar=this&&this['__importStar']||(function(){var _0x14ac88=function(_0x1a1338){return _0x14ac88=Object['getOwnPropertyNames']||function(_0x12fb21){var _0x166b83=[];for(var _0x3b9def in _0x12fb21)if(Object['prototype']['hasOwnProperty']['call'](_0x12fb21,_0x3b9def))_0x166b83[_0x166b83['length']]=_0x3b9def;return _0x166b83;},_0x14ac88(_0x1a1338);};return function(_0x125c48){if(_0x125c48&&_0x125c48['__esModule'])return _0x125c48;var _0x5b6aa6={};if(_0x125c48!=null){for(var _0x1b7e51=_0x14ac88(_0x125c48),_0x22338d=0x0;_0x22338d<_0x1b7e51['length'];_0x22338d++)if(_0x1b7e51[_0x22338d]!=='default')__createBinding(_0x5b6aa6,_0x125c48,_0x1b7e51[_0x22338d]);}return __setModuleDefault(_0x5b6aa6,_0x125c48),_0x5b6aa6;};}());Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['canSpawnDirectly']=canSpawnDirectly,exports['resolveExecutable']=resolveExecutable,exports['resolveNpmCliJs']=resolveNpmCliJs,exports['resolveNpxCliJs']=resolveNpxCliJs,exports['resolveMcpCommand']=resolveMcpCommand;const child_process_1=require('child_process'),fs=__importStar(require('fs')),os=__importStar(require('os')),path=__importStar(require('path'));function scoreExecutable(_0x2e0bbe){const _0x3f6bbd=path['extname'](_0x2e0bbe)['toLowerCase']();if(_0x3f6bbd==='.exe'||_0x3f6bbd==='.com')return 0x0;if(_0x3f6bbd==='.bat'||_0x3f6bbd==='.cmd')return 0x1;if(_0x3f6bbd!=='')return 0x2;return 0x3;}function canSpawnDirectly(_0x4949d7){if(process['platform']!=='win32')return!![];const _0x4a469b=path['extname'](_0x4949d7)['toLowerCase']();return _0x4a469b==='.exe'||_0x4a469b==='.com';}function resolveExecutable(_0x2cc52a){if(process['platform']==='win32')try{const _0x442006=(0x0,child_process_1['execFileSync'])('where.exe',[_0x2cc52a],{'encoding':'utf8','timeout':0x1388,'windowsHide':!![],'stdio':['ignore','pipe','ignore']}),_0x34f2b9=String(_0x442006)['split'](/\r?\n/)['map'](_0x14a58a=>_0x14a58a['trim']())['filter'](Boolean)['sort']((_0x1fd425,_0x5b4788)=>scoreExecutable(_0x1fd425)-scoreExecutable(_0x5b4788));for(const _0x3ca8c9 of _0x34f2b9){try{if(fs['existsSync'](_0x3ca8c9))return _0x3ca8c9;}catch{}}}catch{}else try{const _0x1068b6=(0x0,child_process_1['execFileSync'])('command\x20-v\x20'+_0x2cc52a,{'encoding':'utf8','timeout':0x1388,'windowsHide':!![],'shell':'/bin/sh','stdio':['ignore','pipe','ignore']}),_0x3a0392=String(_0x1068b6)['trim']()['split'](/\s+/)[0x0];if(_0x3a0392&&fs['existsSync'](_0x3a0392))return _0x3a0392;}catch{}const _0x22f142=[];try{const _0x439999=path['dirname'](process['execPath']);for(const _0x6b75f6 of process['platform']==='win32'?['.cmd','.exe','']:['']){_0x22f142['push'](path['join'](_0x439999,''+_0x2cc52a+_0x6b75f6));}}catch{}if(process['platform']==='win32'){const _0x494f6f=process.env['ProgramFiles']??'C:\x5cProgram\x20Files',_0x1bbfe3=process.env['ProgramFiles(x86)']??'C:\x5cProgram\x20Files\x20(x86)';_0x22f142['push'](path['join'](_0x494f6f,'nodejs',_0x2cc52a+'.cmd'),path['join'](_0x1bbfe3,'nodejs',_0x2cc52a+'.cmd'),path['join'](os['homedir'](),'AppData','Roaming','npm',_0x2cc52a+'.cmd'));}else _0x22f142['push']('/usr/local/bin/'+_0x2cc52a,'/opt/homebrew/bin/'+_0x2cc52a,os['homedir']()+'/.local/bin/'+_0x2cc52a);for(const _0x2f0f48 of _0x22f142){try{if(!fs['existsSync'](_0x2f0f48))continue;if(process['platform']==='win32'&&scoreExecutable(_0x2f0f48)>0x1)continue;return _0x2f0f48;}catch{}}return undefined;}function npmDirCandidates(){const _0x36c1c2=[];try{_0x36c1c2['push'](path['dirname'](process['execPath']));}catch{}const _0x413f5a=process.env['ProgramFiles']??'C:\x5cProgram\x20Files';_0x36c1c2['push'](path['join'](_0x413f5a,'nodejs'));for(const _0x10c3ec of['npm','npx']){try{const _0x2f200f=resolveExecutable(_0x10c3ec);if(_0x2f200f)_0x36c1c2['push'](path['dirname'](_0x2f200f));}catch{}}return process['platform']!=='win32'&&_0x36c1c2['push']('/usr/local/lib/node_modules/npm','/opt/homebrew/lib/node_modules/npm','/usr/lib/node_modules/npm'),[...new Set(_0x36c1c2)];}function resolveNpmCliJs(){for(const _0x16b992 of npmDirCandidates()){const _0x10dad9=path['join'](_0x16b992,'node_modules','npm','bin','npm-cli.js');try{if(fs['existsSync'](_0x10dad9))return _0x10dad9;}catch{}}return undefined;}function resolveNpxCliJs(){for(const _0x58006a of npmDirCandidates()){const _0x55fceb=path['join'](_0x58006a,'node_modules','npm','bin','npx-cli.js');try{if(fs['existsSync'](_0x55fceb))return _0x55fceb;}catch{}}return undefined;}function resolveMcpCommand(_0x594df4){const [_0xe18d93,..._0xb2233d]=_0x594df4;if(!_0xe18d93)throw new Error('MCP\x20server\x20spec\x20has\x20an\x20empty\x20command');const _0x3047d3=path['basename'](_0xe18d93)['replace'](/\.(cmd|exe|bat|com)$/i,'')['toLowerCase']();if(_0x3047d3==='node')return{'command':process['execPath'],'args':_0xb2233d};if(_0x3047d3==='npx'){const _0x52cd60=resolveNpxCliJs();if(_0x52cd60)return{'command':process['execPath'],'args':[_0x52cd60,..._0xb2233d]};const _0x4d688d=resolveExecutable('npx');if(_0x4d688d&&canSpawnDirectly(_0x4d688d))return{'command':_0x4d688d,'args':_0xb2233d};throw new Error('npx\x20was\x20not\x20found.\x20Install\x20Node.js\x20(https://nodejs.org)\x20or\x20run\x20from\x20a\x20terminal\x20where\x20`npx\x20--version`\x20works,\x20then\x20retry.');}if(_0x3047d3==='npm'){const _0x5dd057=resolveNpmCliJs();if(_0x5dd057)return{'command':process['execPath'],'args':[_0x5dd057,..._0xb2233d]};const _0x4748bd=resolveExecutable('npm');if(_0x4748bd&&canSpawnDirectly(_0x4748bd))return{'command':_0x4748bd,'args':_0xb2233d};throw new Error(_0x4748bd?'npm\x20resolves\x20only\x20to\x20the\x20Windows\x20shim\x20'+_0x4748bd+',\x20which\x20cannot\x20be\x20spawned\x20without\x20a\x20shell.\x20Reinstall\x20Node.js\x20(https://nodejs.org)\x20so\x20node_modules/npm\x20is\x20present,\x20then\x20retry.':'npm\x20was\x20not\x20found.\x20Install\x20Node.js\x20(https://nodejs.org)\x20or\x20run\x20from\x20a\x20terminal\x20where\x20`npm\x20--version`\x20works,\x20then\x20retry.');}if(_0x3047d3==='uvx'){const _0x16c9b5=resolveExecutable('uvx');if(_0x16c9b5)return{'command':_0x16c9b5,'args':_0xb2233d};throw new Error('uvx\x20was\x20not\x20found.\x20Install\x20uv\x20(https://docs.astral.sh/uv/)\x20or\x20run\x20from\x20a\x20terminal\x20where\x20`uvx\x20--version`\x20works,\x20then\x20retry.');}if(_0x3047d3==='python'||_0x3047d3==='python3'||_0x3047d3==='py'){const _0x2de1a9=resolveExecutable(_0x3047d3)??resolveExecutable('python3')??resolveExecutable('python');if(_0x2de1a9)return{'command':_0x2de1a9,'args':_0xb2233d};throw new Error('python\x20was\x20not\x20found.\x20Install\x20Python\x20(https://www.python.org)\x20or\x20run\x20from\x20a\x20terminal\x20where\x20`python\x20--version`\x20works,\x20then\x20retry.');}if(path['isAbsolute'](_0xe18d93))return{'command':_0xe18d93,'args':_0xb2233d};const _0x44cffb=resolveExecutable(_0x3047d3);if(_0x44cffb){if(canSpawnDirectly(_0x44cffb))return{'command':_0x44cffb,'args':_0xb2233d};throw new Error('\x27'+_0x3047d3+'\x27\x20resolves\x20only\x20to\x20the\x20Windows\x20shim\x20'+_0x44cffb+',\x20which\x20cannot\x20be\x20spawned\x20without\x20a\x20shell.\x20Use\x20a\x20node\x20script\x20(node\x20<entry.js>)\x20or\x20a\x20native\x20executable\x20instead.');}return{'command':_0xe18d93,'args':_0xb2233d};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var __createBinding=this&&this['__createBinding']||(Object['create']?function(
|
|
1
|
+
'use strict';var __createBinding=this&&this['__createBinding']||(Object['create']?function(_0x28eb8f,_0x550e0b,_0x45b19a,_0x30b8ff){if(_0x30b8ff===undefined)_0x30b8ff=_0x45b19a;var _0x3cd4f3=Object['getOwnPropertyDescriptor'](_0x550e0b,_0x45b19a);(!_0x3cd4f3||('get'in _0x3cd4f3?!_0x550e0b['__esModule']:_0x3cd4f3['writable']||_0x3cd4f3['configurable']))&&(_0x3cd4f3={'enumerable':!![],'get':function(){return _0x550e0b[_0x45b19a];}}),Object['defineProperty'](_0x28eb8f,_0x30b8ff,_0x3cd4f3);}:function(_0x388830,_0x2f9967,_0xd91a8c,_0x38f8b7){if(_0x38f8b7===undefined)_0x38f8b7=_0xd91a8c;_0x388830[_0x38f8b7]=_0x2f9967[_0xd91a8c];}),__setModuleDefault=this&&this['__setModuleDefault']||(Object['create']?function(_0x2854eb,_0x48db4c){Object['defineProperty'](_0x2854eb,'default',{'enumerable':!![],'value':_0x48db4c});}:function(_0x335d15,_0x7fba35){_0x335d15['default']=_0x7fba35;}),__importStar=this&&this['__importStar']||(function(){var _0x5dd9ef=function(_0x2857f1){return _0x5dd9ef=Object['getOwnPropertyNames']||function(_0x2f5bc5){var _0x13f1e8=[];for(var _0x4cbccd in _0x2f5bc5)if(Object['prototype']['hasOwnProperty']['call'](_0x2f5bc5,_0x4cbccd))_0x13f1e8[_0x13f1e8['length']]=_0x4cbccd;return _0x13f1e8;},_0x5dd9ef(_0x2857f1);};return function(_0x3cae36){if(_0x3cae36&&_0x3cae36['__esModule'])return _0x3cae36;var _0x2ce37a={};if(_0x3cae36!=null){for(var _0x41470d=_0x5dd9ef(_0x3cae36),_0x5d3d75=0x0;_0x5d3d75<_0x41470d['length'];_0x5d3d75++)if(_0x41470d[_0x5d3d75]!=='default')__createBinding(_0x2ce37a,_0x3cae36,_0x41470d[_0x5d3d75]);}return __setModuleDefault(_0x2ce37a,_0x3cae36),_0x2ce37a;};}());Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['dispatchMcpServer']=dispatchMcpServer,exports['runMcpServer']=runMcpServer;const readline=__importStar(require('readline')),fs=__importStar(require('fs')),child_process_1=require('child_process'),TOOLS=[{'name':'bash','description':'Execute\x20a\x20shell\x20command','inputSchema':{'type':'object','properties':{'command':{'type':'string'}}}},{'name':'read_file','description':'Read\x20a\x20file','inputSchema':{'type':'object','properties':{'path':{'type':'string'}}}},{'name':'write_file','description':'Write\x20a\x20file','inputSchema':{'type':'object','properties':{'path':{'type':'string'},'content':{'type':'string'}}}},{'name':'grep','description':'Search\x20file\x20contents','inputSchema':{'type':'object','properties':{'pattern':{'type':'string'}}}},{'name':'glob','description':'Find\x20files\x20by\x20glob','inputSchema':{'type':'object','properties':{'pattern':{'type':'string'}}}}];function send(_0x35673e,_0x225ca9){if(_0x35673e===undefined)return;process['stdout']['write'](JSON['stringify']({'jsonrpc':'2.0','id':_0x35673e,'result':_0x225ca9})+'\x0a');}function sendError(_0x4f25e3,_0x2638b9,_0x1dafc0){if(_0x4f25e3===undefined)return;process['stdout']['write'](JSON['stringify']({'jsonrpc':'2.0','id':_0x4f25e3,'error':{'code':_0x2638b9,'message':_0x1dafc0}})+'\x0a');}function executeLocalTool(_0xc61605,_0x37af5d){if(_0xc61605==='read_file'){const _0x56991e=String(_0x37af5d['path']??'');if(!_0x56991e)throw new Error('missing\x20\x27path\x27');return fs['readFileSync'](_0x56991e,'utf8')['slice'](0x0,0x7d00);}if(_0xc61605==='bash'){const _0x1743bd=String(_0x37af5d['command']??'');if(!_0x1743bd)throw new Error('missing\x20\x27command\x27');const _0x55f85b=(0x0,child_process_1['execFileSync'])(_0x1743bd,{'shell':process['platform']==='win32'?'cmd.exe':'/bin/sh','timeout':0x2710,'maxBuffer':0x8000,'windowsHide':!![]});return String(_0x55f85b)['slice'](0x0,0x7d00);}if(_0xc61605==='grep'||_0xc61605==='glob'||_0xc61605==='write_file')throw new Error(_0xc61605+'\x20is\x20not\x20executed\x20by\x20mcp-server\x20(use\x20the\x20CLI\x20tools\x20instead)');throw new Error('unknown\x20tool:\x20'+_0xc61605);}async function dispatchMcpServer(_0x100850){switch(_0x100850['method']){case'initialize':send(_0x100850['id'],{'protocolVersion':'2024-11-05','serverInfo':{'name':'trayambak','version':'0.6.0'},'capabilities':{'tools':{}}});break;case'tools/list':send(_0x100850['id'],{'tools':TOOLS});break;case'tools/call':{const _0x46e5f6=(_0x100850['params']??{})['name'],_0x2442b9=(_0x100850['params']??{})['arguments']??{},_0x2e0cfe=TOOLS['find'](_0x37d357=>_0x37d357['name']===_0x46e5f6);if(!_0x2e0cfe)sendError(_0x100850['id'],-0x7f5a,'unknown\x20tool:\x20'+_0x46e5f6);else try{const _0x3d6cee=executeLocalTool(_0x46e5f6,_0x2442b9);send(_0x100850['id'],{'content':[{'type':'text','text':_0x3d6cee}]});}catch(_0x2b1b12){send(_0x100850['id'],{'content':[{'type':'text','text':'error:\x20'+(_0x2b1b12 instanceof Error?_0x2b1b12['message']:String(_0x2b1b12))}],'isError':!![]});}break;}case'resources/list':send(_0x100850['id'],{'resources':[]});break;case'prompts/list':send(_0x100850['id'],{'prompts':[]});break;default:sendError(_0x100850['id'],-0x7f59,'unknown\x20method:\x20'+_0x100850['method']);}}function runMcpServer(){const _0x4bc51f=readline['createInterface']({'input':process['stdin'],'crlfDelay':Infinity});_0x4bc51f['on']('line',_0x51253b=>{if(!_0x51253b['trim']())return;try{const _0x159d40=JSON['parse'](_0x51253b);dispatchMcpServer(_0x159d40)['catch'](_0xc3ddc6=>sendError(_0x159d40['id'],-0x7d00,String(_0xc3ddc6)));}catch{}});}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var __createBinding=this&&this['__createBinding']||(Object['create']?function(
|
|
1
|
+
'use strict';var __createBinding=this&&this['__createBinding']||(Object['create']?function(_0x464646,_0x1c9655,_0x5360b5,_0x1b365a){if(_0x1b365a===undefined)_0x1b365a=_0x5360b5;var _0x13390a=Object['getOwnPropertyDescriptor'](_0x1c9655,_0x5360b5);(!_0x13390a||('get'in _0x13390a?!_0x1c9655['__esModule']:_0x13390a['writable']||_0x13390a['configurable']))&&(_0x13390a={'enumerable':!![],'get':function(){return _0x1c9655[_0x5360b5];}}),Object['defineProperty'](_0x464646,_0x1b365a,_0x13390a);}:function(_0xa9ee0a,_0x4b1fd1,_0x2bc3e5,_0x1cec45){if(_0x1cec45===undefined)_0x1cec45=_0x2bc3e5;_0xa9ee0a[_0x1cec45]=_0x4b1fd1[_0x2bc3e5];}),__setModuleDefault=this&&this['__setModuleDefault']||(Object['create']?function(_0x366fab,_0x31f4cf){Object['defineProperty'](_0x366fab,'default',{'enumerable':!![],'value':_0x31f4cf});}:function(_0x220842,_0x19765f){_0x220842['default']=_0x19765f;}),__importStar=this&&this['__importStar']||(function(){var _0x1b5450=function(_0x3868ea){return _0x1b5450=Object['getOwnPropertyNames']||function(_0x27a0b5){var _0x2d8e14=[];for(var _0x3fa3ec in _0x27a0b5)if(Object['prototype']['hasOwnProperty']['call'](_0x27a0b5,_0x3fa3ec))_0x2d8e14[_0x2d8e14['length']]=_0x3fa3ec;return _0x2d8e14;},_0x1b5450(_0x3868ea);};return function(_0x11aa53){if(_0x11aa53&&_0x11aa53['__esModule'])return _0x11aa53;var _0x10a685={};if(_0x11aa53!=null){for(var _0xa729b0=_0x1b5450(_0x11aa53),_0x3db696=0x0;_0x3db696<_0xa729b0['length'];_0x3db696++)if(_0xa729b0[_0x3db696]!=='default')__createBinding(_0x10a685,_0x11aa53,_0xa729b0[_0x3db696]);}return __setModuleDefault(_0x10a685,_0x11aa53),_0x10a685;};}());Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['DEFAULT_MODES']=void 0x0,exports['getModeBySlug']=getModeBySlug,exports['loadRoomodes']=loadRoomodes;const fs=__importStar(require('fs')),path=__importStar(require('path'));exports['DEFAULT_MODES']=[{'slug':'code','name':'Code','roleDefinition':'Implement\x20features\x20and\x20fix\x20bugs.','groups':['read','edit','command','mcp']},{'slug':'architect','name':'Architect','roleDefinition':'Plan\x20high-level\x20architecture.','groups':['read','mcp','modes']},{'slug':'ask','name':'Ask','roleDefinition':'Answer\x20questions\x20about\x20the\x20codebase.','groups':['read','mcp']},{'slug':'debug','name':'Debug','roleDefinition':'Diagnose\x20failures\x20systematically.','groups':['read','edit','command','mcp']},{'slug':'orchestrator','name':'Orchestrator','roleDefinition':'Break\x20down\x20tasks\x20and\x20delegate.','groups':['read','modes','mcp']}];function getModeBySlug(_0x2d385d,_0x148f3c=[]){return[..._0x148f3c,...exports['DEFAULT_MODES']]['find'](_0x5a7fbc=>_0x5a7fbc['slug']===_0x2d385d);}function loadRoomodes(_0x273b3c=process['cwd']()){try{const _0x30407f=path['join'](_0x273b3c,'.roomodes');if(!fs['existsSync'](_0x30407f))return[];const _0x4d3dbc=JSON['parse'](fs['readFileSync'](_0x30407f,'utf8'));if(!Array['isArray'](_0x4d3dbc['customModes']))return[];return _0x4d3dbc['customModes']['filter'](_0x16c772=>typeof _0x16c772?.['slug']==='string'&&Array['isArray'](_0x16c772['groups']))['slice'](0x0,0x32);}catch{return[];}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';function
|
|
1
|
+
'use strict';function _0x48c9(){var _0x38f6a5=['6145120DGVcKs','949564GgVwlv','9448879rEePIk','1044960vRoNsW','2207514sfNgsO','3wfHXjX','788247YweqZc','2537740tEJawW','12qavtxZ','7CGRkgA','1KmqmPd','70jbHvfA'];_0x48c9=function(){return _0x38f6a5;};return _0x48c9();}(function(_0x33d5d9,_0x5232e7){var _0xebb8fa=_0x329d,_0x2067bc=_0x33d5d9();while(!![]){try{var _0x4b1d0f=parseInt(_0xebb8fa(0x1cc))/0x1*(-parseInt(_0xebb8fa(0x1c3))/0x2)+-parseInt(_0xebb8fa(0x1c7))/0x3*(-parseInt(_0xebb8fa(0x1c5))/0x4)+parseInt(_0xebb8fa(0x1c9))/0x5+parseInt(_0xebb8fa(0x1c6))/0x6*(-parseInt(_0xebb8fa(0x1cb))/0x7)+parseInt(_0xebb8fa(0x1ce))/0x8+parseInt(_0xebb8fa(0x1c8))/0x9*(-parseInt(_0xebb8fa(0x1cd))/0xa)+-parseInt(_0xebb8fa(0x1c4))/0xb*(-parseInt(_0xebb8fa(0x1ca))/0xc);if(_0x4b1d0f===_0x5232e7)break;else _0x2067bc['push'](_0x2067bc['shift']());}catch(_0x430663){_0x2067bc['push'](_0x2067bc['shift']());}}}(_0x48c9,0xe5867));function _0x329d(_0x5aa747,_0x2d37d2){_0x5aa747=_0x5aa747-0x1c3;var _0x48c9ba=_0x48c9();var _0x329db9=_0x48c9ba[_0x5aa747];return _0x329db9;}Object['defineProperty'](exports,'__esModule',{'value':!![]});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['isAssistant']=isAssistant,exports['isToolResult']=isToolResult,exports['isUser']=isUser;function isAssistant(
|
|
1
|
+
'use strict';Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['isAssistant']=isAssistant,exports['isToolResult']=isToolResult,exports['isUser']=isUser;function isAssistant(_0x501c15){return _0x501c15['role']==='assistant';}function isToolResult(_0xb41d6a){return _0xb41d6a['role']==='tool';}function isUser(_0x1be938){return _0x1be938['role']==='user';}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['DELETE_FORCE_ASK_RULES']=exports['FORCE_ASK_RULES']=void 0x0,exports['addSessionPermissionRule']=addSessionPermissionRule,exports['clearSessionPermissionRules']=clearSessionPermissionRules,exports['getSessionPermissionRules']=getSessionPermissionRules,exports['permissionSubject']=permissionSubject,exports['evaluatePermission']=evaluatePermission,exports['isPermissionDenied']=isPermissionDenied;const permissions_js_1=require('./permissions.js');exports['FORCE_ASK_RULES']=[{'tool':'*','pattern':'rm\x20-rf','action':'ask','reason':'recursive\x20force\x20delete'},{'tool':'*','pattern':'sudo\x20','action':'ask','reason':'privilege\x20escalation'},{'tool':'*','pattern':'shutdown','action':'ask','reason':'system\x20power'},{'tool':'*','pattern':'reboot','action':'ask','reason':'system\x20power'},{'tool':'*','pattern':'mkfs','action':'ask','reason':'filesystem\x20format'},{'tool':'*','pattern':'dd\x20if=','action':'ask','reason':'raw\x20disk\x20write'},{'tool':'*','pattern':'git\x20push\x20--force','action':'ask','reason':'force\x20push'},{'tool':'*','pattern':'git\x20push\x20-f','action':'ask','reason':'force\x20push'},{'tool':'*','pattern':'del\x20/s\x20/q','action':'ask','reason':'recursive\x20delete\x20(Windows)'},{'tool':'*','pattern':'Remove-Item\x20-Recurse\x20-Force','action':'ask','reason':'recursive\x20delete\x20(PowerShell)'},{'tool':'*','pattern':'format\x20','action':'ask','reason':'disk\x20format'},{'tool':'*','pattern':'\x20|\x20sh','action':'ask','reason':'pipe-to-shell\x20download'},{'tool':'*','pattern':'\x20|\x20bash','action':'ask','reason':'pipe-to-shell\x20download'},{'tool':'*','pattern':'iex\x20','action':'ask','reason':'PowerShell\x20Invoke-Expression\x20download'},{'tool':'*','pattern':'Invoke-Expression','action':'ask','reason':'PowerShell\x20Invoke-Expression\x20download'}],exports['DELETE_FORCE_ASK_RULES']=exports['FORCE_ASK_RULES']['filter'](
|
|
1
|
+
'use strict';Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['DELETE_FORCE_ASK_RULES']=exports['FORCE_ASK_RULES']=void 0x0,exports['addSessionPermissionRule']=addSessionPermissionRule,exports['clearSessionPermissionRules']=clearSessionPermissionRules,exports['getSessionPermissionRules']=getSessionPermissionRules,exports['permissionSubject']=permissionSubject,exports['evaluatePermission']=evaluatePermission,exports['isPermissionDenied']=isPermissionDenied;const permissions_js_1=require('./permissions.js');exports['FORCE_ASK_RULES']=[{'tool':'*','pattern':'rm\x20-rf','action':'ask','reason':'recursive\x20force\x20delete'},{'tool':'*','pattern':'sudo\x20','action':'ask','reason':'privilege\x20escalation'},{'tool':'*','pattern':'shutdown','action':'ask','reason':'system\x20power'},{'tool':'*','pattern':'reboot','action':'ask','reason':'system\x20power'},{'tool':'*','pattern':'mkfs','action':'ask','reason':'filesystem\x20format'},{'tool':'*','pattern':'dd\x20if=','action':'ask','reason':'raw\x20disk\x20write'},{'tool':'*','pattern':'git\x20push\x20--force','action':'ask','reason':'force\x20push'},{'tool':'*','pattern':'git\x20push\x20-f','action':'ask','reason':'force\x20push'},{'tool':'*','pattern':'del\x20/s\x20/q','action':'ask','reason':'recursive\x20delete\x20(Windows)'},{'tool':'*','pattern':'Remove-Item\x20-Recurse\x20-Force','action':'ask','reason':'recursive\x20delete\x20(PowerShell)'},{'tool':'*','pattern':'format\x20','action':'ask','reason':'disk\x20format'},{'tool':'*','pattern':'\x20|\x20sh','action':'ask','reason':'pipe-to-shell\x20download'},{'tool':'*','pattern':'\x20|\x20bash','action':'ask','reason':'pipe-to-shell\x20download'},{'tool':'*','pattern':'iex\x20','action':'ask','reason':'PowerShell\x20Invoke-Expression\x20download'},{'tool':'*','pattern':'Invoke-Expression','action':'ask','reason':'PowerShell\x20Invoke-Expression\x20download'}],exports['DELETE_FORCE_ASK_RULES']=exports['FORCE_ASK_RULES']['filter'](_0x687138=>['recursive\x20force\x20delete','recursive\x20delete\x20(Windows)','recursive\x20delete\x20(PowerShell)','disk\x20format','filesystem\x20format']['includes'](_0x687138['reason']??''));let sessionRules=[];function addSessionPermissionRule(_0x3589dd){sessionRules=sessionRules['filter'](_0x299243=>!(_0x299243['tool']===_0x3589dd['tool']&&(_0x299243['pattern']??'*')===(_0x3589dd['pattern']??'*'))),sessionRules['unshift'](_0x3589dd);}function clearSessionPermissionRules(){sessionRules=[];}function getSessionPermissionRules(){return sessionRules;}function globToRegExp(_0x5b1c71,_0x5389f2){const _0x170ce9=_0x5b1c71['replace'](/[.+?^${}()|[\]\\]/g,'\x5c$&')['replace'](/\*/g,'.*');return new RegExp(_0x5389f2?'^'+_0x170ce9+'$':_0x170ce9,'i');}function matchTool(_0x52359d,_0x1af36f){if(!_0x1af36f||_0x1af36f==='*')return!![];if(_0x1af36f['includes']('*'))return globToRegExp(_0x1af36f,!![])['test'](_0x52359d);return _0x1af36f['toLowerCase']()===_0x52359d['toLowerCase']();}function matchSubject(_0x1d2ea9,_0x1f1985){if(!_0x1f1985||_0x1f1985==='*')return!![];return globToRegExp(_0x1f1985,![])['test'](_0x1d2ea9);}function permissionSubject(_0x59e517){if(typeof _0x59e517==='string')return _0x59e517;if(_0x59e517&&typeof _0x59e517==='object'){const _0x4a5f7c=_0x59e517;for(const _0x5140c4 of['command','path','file_path','filePath','url','query','pattern']){const _0x448370=_0x4a5f7c[_0x5140c4];if(typeof _0x448370==='string'&&_0x448370['length']>0x0)return _0x448370;}try{return JSON['stringify'](_0x59e517)??'';}catch{return String(_0x59e517);}}return _0x59e517==null?'':String(_0x59e517);}function legacyToRules(_0x25dab9){return _0x25dab9['map'](_0x224897=>({'tool':_0x224897['tool'],'pattern':_0x224897['pattern'],'action':_0x224897['allow']?'allow':'deny'}));}function deriveUIMode(_0x4b3ca2){if(_0x4b3ca2['uiMode'])return _0x4b3ca2['uiMode'];if(_0x4b3ca2['mode']==='yolo'||_0x4b3ca2['askByDefault']===![])return'auto-approve';return'ask';}function evaluatePermission(_0x195364,_0x45fb51,_0x5366ff=permissions_js_1['DEFAULT_PERMISSIONS'],_0x1f9817){const _0x57f7a3=permissionSubject(_0x45fb51),_0x23ce1b=_0x1f9817?.['uiMode']??deriveUIMode(_0x5366ff);if(_0x23ce1b==='full-access')return{'action':'allow','source':'mode','layer':'mode'};const _0x25a70d=_0x23ce1b==='auto-approve'?[['session',[...sessionRules]],['config',[..._0x5366ff['rulesV2']??[]]]]:[['session',[...sessionRules]],['config',[..._0x5366ff['rulesV2']??[]]],['default',legacyToRules(_0x5366ff['rules']??[])]],_0x199279=_0x144ccc=>matchTool(_0x195364,_0x144ccc['tool'])&&matchSubject(_0x57f7a3,_0x144ccc['pattern']);for(const [_0x245453,_0x48a840]of _0x25a70d){const _0x3bf218=_0x48a840['find'](_0x15042b=>_0x15042b['action']==='deny'&&_0x199279(_0x15042b));if(_0x3bf218)return{'action':'deny','source':'deny-rule','rule':_0x3bf218,'layer':_0x245453};const _0x424565=_0x48a840['find'](_0x4cfac7=>_0x4cfac7['action']==='allow'&&_0x199279(_0x4cfac7));if(_0x424565)return{'action':'allow','source':'allow-rule','rule':_0x424565,'layer':_0x245453};}if(_0x23ce1b==='read-only'||_0x23ce1b==='plan')return permissions_js_1['READ_ONLY_TOOLS']['has'](_0x195364)?{'action':'allow','source':'read-only-tool','layer':'mode'}:{'action':'deny','source':_0x23ce1b==='plan'?'plan-mode':'read-only-mode','layer':'mode'};if(permissions_js_1['READ_ONLY_TOOLS']['has'](_0x195364))return{'action':'allow','source':'read-only-tool'};const _0x3047e8=_0x23ce1b==='auto-approve'?exports['DELETE_FORCE_ASK_RULES']:exports['FORCE_ASK_RULES'],_0x4133f1=_0x3047e8['find'](_0x5c4695=>matchTool(_0x195364,_0x5c4695['tool'])&&matchSubject(_0x57f7a3,_0x5c4695['pattern']));if(_0x4133f1)return{'action':'ask','source':'force-ask','rule':_0x4133f1,'layer':'force-ask'};if(_0x23ce1b==='auto-approve')return{'action':'allow','source':'mode','layer':'mode'};return{'action':'ask','source':'default','layer':'mode'};}function isPermissionDenied(_0x31d313,_0x12cb70,_0x5e0c44,_0x821734){return evaluatePermission(_0x31d313,_0x12cb70,_0x5e0c44,_0x821734)['action']==='deny';}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['READ_ONLY_TOOLS']=exports['DEFAULT_PERMISSIONS']=void 0x0,exports['isCommandDangerous']=isCommandDangerous,exports['isCommandAllowed']=isCommandAllowed,exports['isYoloMode']=isYoloMode,exports['togglePermissionMode']=togglePermissionMode,exports['getPermissionBadge']=getPermissionBadge,exports['getPermissionModeLabel']=getPermissionModeLabel,exports['DEFAULT_PERMISSIONS']={'mode':'default','rules':[{'tool':'bash','pattern':'rm\x20-rf\x20/','allow':![]},{'tool':'bash','pattern':'rm\x20-rf\x20~','allow':![]},{'tool':'bash','pattern':'rm\x20-rf\x20.','allow':![]},{'tool':'bash','pattern':'del\x20/s\x20/q','allow':![]},{'tool':'bash','pattern':'format','allow':![]},{'tool':'bash','pattern':'shutdown','allow':![]},{'tool':'bash','pattern':'reboot','allow':![]},{'tool':'bash','pattern':'sudo','allow':![]},{'tool':'bash','pattern':'su\x20','allow':![]}],'askByDefault':!![]},exports['READ_ONLY_TOOLS']=new Set(['read_file','list_dir','glob','grep','code_search','read_manifest','web_search','web_fetch','web_browse','memory','todo','summarize','extract','diff','csv','yaml','artifact','get_mode','tool_search']);function isCommandDangerous(
|
|
1
|
+
'use strict';Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['READ_ONLY_TOOLS']=exports['DEFAULT_PERMISSIONS']=void 0x0,exports['isCommandDangerous']=isCommandDangerous,exports['isCommandAllowed']=isCommandAllowed,exports['isYoloMode']=isYoloMode,exports['togglePermissionMode']=togglePermissionMode,exports['getPermissionBadge']=getPermissionBadge,exports['getPermissionModeLabel']=getPermissionModeLabel,exports['DEFAULT_PERMISSIONS']={'mode':'default','rules':[{'tool':'bash','pattern':'rm\x20-rf\x20/','allow':![]},{'tool':'bash','pattern':'rm\x20-rf\x20~','allow':![]},{'tool':'bash','pattern':'rm\x20-rf\x20.','allow':![]},{'tool':'bash','pattern':'del\x20/s\x20/q','allow':![]},{'tool':'bash','pattern':'format','allow':![]},{'tool':'bash','pattern':'shutdown','allow':![]},{'tool':'bash','pattern':'reboot','allow':![]},{'tool':'bash','pattern':'sudo','allow':![]},{'tool':'bash','pattern':'su\x20','allow':![]}],'askByDefault':!![]},exports['READ_ONLY_TOOLS']=new Set(['read_file','list_dir','glob','grep','code_search','read_manifest','web_search','web_fetch','web_browse','memory','todo','summarize','extract','diff','csv','yaml','artifact','get_mode','tool_search']);function isCommandDangerous(_0x16cdd8,_0x332981,_0x2225a1){for(const _0x208d5c of _0x2225a1['rules']){if((_0x208d5c['tool']===_0x16cdd8||_0x208d5c['tool']==='*')&&!_0x208d5c['allow']){if(_0x208d5c['pattern']==='*')return!![];const _0x36ec5d=_0x208d5c['pattern']['replace'](/[.*+?^${}()|[\]\\]/g,'\x5c$&')['replace'](/\s/g,'\x5cs+');if(new RegExp('\x5cb'+_0x36ec5d,'i')['test'](_0x332981))return!![];}}return![];}function isCommandAllowed(_0x463668,_0x5dc3ad,_0x2787cc){if(isCommandDangerous(_0x463668,_0x5dc3ad,_0x2787cc))return![];if(exports['READ_ONLY_TOOLS']['has'](_0x463668))return!![];return _0x2787cc['askByDefault']?![]:!![];}function isYoloMode(_0x2e7387){return _0x2e7387['mode']==='yolo'||_0x2e7387['askByDefault']===![];}function togglePermissionMode(_0x1aad4b){const _0x4edcef=isYoloMode(_0x1aad4b);return{..._0x1aad4b,'mode':_0x4edcef?'default':'yolo','askByDefault':_0x4edcef?!![]:![]};}function getPermissionBadge(_0xe5397c){return isYoloMode(_0xe5397c)?'YOLO':'ASK';}function getPermissionModeLabel(_0x2e484d){return isYoloMode(_0x2e484d)?'FULL':'ASK';}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var _0x18e70e=_0x5219;(function(_0x3d79f4,_0x5b0a42){var _0x3a2028=_0x5219,_0x10bfce=_0x3d79f4();while(!![]){try{var _0x230338=parseInt(_0x3a2028(0x6d))/0x1+parseInt(_0x3a2028(0x6f))/0x2*(parseInt(_0x3a2028(0x75))/0x3)+-parseInt(_0x3a2028(0x73))/0x4*(parseInt(_0x3a2028(0x72))/0x5)+parseInt(_0x3a2028(0x78))/0x6*(-parseInt(_0x3a2028(0x6e))/0x7)+-parseInt(_0x3a2028(0x77))/0x8*(parseInt(_0x3a2028(0x74))/0x9)+-parseInt(_0x3a2028(0x76))/0xa+parseInt(_0x3a2028(0x71))/0xb;if(_0x230338===_0x5b0a42)break;else _0x10bfce['push'](_0x10bfce['shift']());}catch(_0x178365){_0x10bfce['push'](_0x10bfce['shift']());}}}(_0x5f39,0x5ef00));function _0x5219(_0x15e167,_0xc1bae2){_0x15e167=_0x15e167-0x6d;var _0x5f39e8=_0x5f39();var _0x5219fe=_0x5f39e8[_0x15e167];return _0x5219fe;}function _0x5f39(){var _0x13acfe=['8rBiccM','12sqNyZU','696270gvmWfb','1173347mgsAeU','98030zbScUP','defineProperty','6656694QdCzny','558055rohtNI','4fbwQOY','4704219bZAAjJ','21SUGVAJ','2861210THnzPq'];_0x5f39=function(){return _0x13acfe;};return _0x5f39();}Object[_0x18e70e(0x70)](exports,'__esModule',{'value':!![]});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['normalizeUrls']=normalizeUrls;function normalizeUrls(
|
|
1
|
+
'use strict';Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['normalizeUrls']=normalizeUrls;function normalizeUrls(_0x41988b){return _0x41988b['replace'](/https?:\/\/\S+/g,_0x318086=>{const _0x5b9c9e=_0x318086['replace'](/[.,!?;:)"'\]]+$/,''),_0x32308a=_0x318086['slice'](_0x5b9c9e['length']);try{const _0x12bee3=new URL(_0x5b9c9e),_0x3fafdf=_0x5b9c9e['indexOf']('//')+0x2,_0x359593=_0x5b9c9e['indexOf']('/',_0x3fafdf),_0x1f468e=_0x359593===-0x1?_0x5b9c9e['slice'](_0x3fafdf):_0x5b9c9e['slice'](_0x3fafdf,_0x359593),_0x4b8e29=_0x1f468e['indexOf'](':'),_0xdb7a12=_0x4b8e29===-0x1?_0x1f468e:_0x1f468e['slice'](0x0,_0x4b8e29);if(_0xdb7a12===_0x12bee3['hostname'])return _0x318086;return _0x5b9c9e['replace'](_0xdb7a12,_0x12bee3['hostname'])+_0x32308a;}catch{return _0x318086;}});}
|